pax_global_header00006660000000000000000000000064147434755400014527gustar00rootroot0000000000000052 comment=720ac6fa12f8c1010c588d64efdc83a5f5ef4181 rtpengine-mr12.5.1.22/000077500000000000000000000000001474347554000143715ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/000077500000000000000000000000001474347554000157315ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/ISSUE_TEMPLATE/000077500000000000000000000000001474347554000201145ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000046441474347554000230170ustar00rootroot00000000000000--- # vi: ts=2 sw=2 et: name: Bug Report description: Report a problem labels: ["bug"] body: - type: markdown attributes: value: Thanks for taking the time to fill out this bug report! - type: input id: version attributes: label: rtpengine version the issue has been seen with description: | Please use `rtpengine --version` to get the rtpengine version. placeholder: '12.2.0.0+0~mr12.2.0.0+0~20231205160601.20604+bookworm~1.gbpa75a82' validations: required: false - type: input id: distro attributes: label: Used distribution and its version description: | Please use `lsb_release -a` to get the distribution information. placeholder: Debian 12 validations: required: false - type: input id: kernel attributes: label: Linux kernel version used description: | Please use `uname -r` to get linux kernel version. placeholder: 6.1.0-13-amd64 validations: required: false - type: dropdown id: architecture attributes: label: CPU architecture issue was seen on (see `uname -m`) options: - x86_64 - aarch64 - arm - i686 - other validations: required: false - type: textarea id: expected-behaviour attributes: label: Expected behaviour you didn't see validations: required: false - type: textarea id: unexpected-behaviour attributes: label: Unexpected behaviour you saw validations: required: false - type: textarea id: steps-to-reproduce attributes: label: Steps to reproduce the problem validations: required: false - type: textarea id: logs attributes: label: Additional program output to the terminal or logs illustrating the issue description: | Please paste relevant program terminal or log output here. Where copy/paste is not possible, a photo of the screen might do too, but text is always much preferred. placeholder: This will be automatically formatted into code, so no need for backticks. render: shell validations: required: false - type: textarea id: additional-information attributes: label: Anything else? description: | Links? References? Anything that will give us more context about the issue you are encountering! validations: required: false rtpengine-mr12.5.1.22/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000003641474347554000221070ustar00rootroot00000000000000--- # vi: ts=2 sw=2 et: blank_issues_enabled: true contact_links: - name: rtpengine mailing list url: https://rtpengine.com/mailing-list about: Please ask questions on the mailing list. The issue tracker here is NOT a support forum. rtpengine-mr12.5.1.22/.github/ISSUE_TEMPLATE/feature_request.yml000066400000000000000000000025021474347554000240410ustar00rootroot00000000000000--- # vi: ts=2 sw=2 et: name: Feature request description: Suggest an improvement labels: ["feature"] body: - type: markdown attributes: value: Thanks for taking the time to fill out this feature request! - type: textarea id: description attributes: label: Is your feature request related to a problem? Please describe description: A clear and concise description of what the problem is. validations: required: false - type: textarea id: solution attributes: label: Describe the solution you'd like description: A clear and concise description of what you want to happen. validations: required: false - type: textarea id: alternatives attributes: label: Describe alternatives you've considered description: A clear and concise description of any alternative solutions or features you've considered. validations: required: false - type: input id: version attributes: label: The rtpengine version you checked that didn't have the feature you are asking for description: If this is not the most recently released upstream version, then please check first if it has that feature already. placeholder: '12.2.0.0+0~mr12.2.0.0+0~20231205160601.20604+bookworm~1.gbpa75a82' validations: required: false rtpengine-mr12.5.1.22/.github/actions/000077500000000000000000000000001474347554000173715ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/actions/debpkg-bookworm/000077500000000000000000000000001474347554000224625ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/actions/debpkg-bookworm/Dockerfile000066400000000000000000000005621474347554000244570ustar00rootroot00000000000000FROM debian:bookworm COPY entrypoint.sh /entrypoint.sh # avoid "debconf: (TERM is not set, so the dialog frontend is not usable.)" ENV DEBIAN_FRONTEND noninteractive # disable man-db to speed up builds RUN echo 'man-db man-db/auto-update boolean false' | debconf-set-selections RUN apt-get update && apt-get -y install build-essential ENTRYPOINT ["/entrypoint.sh"] rtpengine-mr12.5.1.22/.github/actions/debpkg-bookworm/action.yml000066400000000000000000000002361474347554000244630ustar00rootroot00000000000000name: "Build Docker image based on Debian/bookworm" description: "Build Docker image based on Debian/bookworm" runs: using: 'docker' image: 'Dockerfile' rtpengine-mr12.5.1.22/.github/actions/debpkg-bookworm/entrypoint.sh000077500000000000000000000006611474347554000252370ustar00rootroot00000000000000#!/bin/bash set -eu -o pipefail echo "*** Starting execution of '$0' ***" echo "** Installing build dependencies **" apt-get -y build-dep -Ppkg.ngcp-rtpengine.nobcg729 . echo "** Building Debian package **" dpkg-buildpackage -Ppkg.ngcp-rtpengine.nobcg729 # We're inside /github/workspace/ echo "** Copying Debian package files to workspace **" cp ../*.deb ../*.buildinfo ../workspace/ echo "*** Finished execution of '$0' ***" rtpengine-mr12.5.1.22/.github/actions/debpkg-sid/000077500000000000000000000000001474347554000214025ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/actions/debpkg-sid/Dockerfile000066400000000000000000000005551474347554000234010ustar00rootroot00000000000000FROM debian:sid COPY entrypoint.sh /entrypoint.sh # avoid "debconf: (TERM is not set, so the dialog frontend is not usable.)" ENV DEBIAN_FRONTEND noninteractive # disable man-db to speed up builds RUN echo 'man-db man-db/auto-update boolean false' | debconf-set-selections RUN apt-get update && apt-get -y install build-essential ENTRYPOINT ["/entrypoint.sh"] rtpengine-mr12.5.1.22/.github/actions/debpkg-sid/action.yml000066400000000000000000000002241474347554000234000ustar00rootroot00000000000000name: "Build Docker image based on Debian/sid" description: "Build Docker image based on Debian/sid" runs: using: 'docker' image: 'Dockerfile' rtpengine-mr12.5.1.22/.github/actions/debpkg-sid/entrypoint.sh000077500000000000000000000006611474347554000241570ustar00rootroot00000000000000#!/bin/bash set -eu -o pipefail echo "*** Starting execution of '$0' ***" echo "** Installing build dependencies **" apt-get -y build-dep -Ppkg.ngcp-rtpengine.nobcg729 . echo "** Building Debian package **" dpkg-buildpackage -Ppkg.ngcp-rtpengine.nobcg729 # We're inside /github/workspace/ echo "** Copying Debian package files to workspace **" cp ../*.deb ../*.buildinfo ../workspace/ echo "*** Finished execution of '$0' ***" rtpengine-mr12.5.1.22/.github/workflows/000077500000000000000000000000001474347554000177665ustar00rootroot00000000000000rtpengine-mr12.5.1.22/.github/workflows/coverity.yml000066400000000000000000000042051474347554000223560ustar00rootroot00000000000000name: Coverity Scan on: push: branches: - coverity_scan schedule: - cron: '13 4 */2 * *' workflow_dispatch: jobs: build: runs-on: ubuntu-20.04 env: COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} COVERITY_SCAN_PROG_URL: https://scan.coverity.com/download/cxx/linux64 COVERITY_SCAN_PROJECT_NAME: sipwise/rtpengine COVERITY_SCAN_NOTIFICATION_EMAIL: development@sipwise.com steps: - name: Checkout source uses: actions/checkout@v3 - name: Update APT cache run: | sudo apt-get update - name: Get build dependencies run: | echo "Generating Debian source for usage on Ubuntu/focal / ubuntu-20.04" cd pkg/deb/ ./generator.sh ./backports/focal rm -rf debian mv focal debian echo "Installing Debian packages" sudo apt-get install -q -y --no-install-recommends git ca-certificates curl sudo apt-get build-dep -q -y -Ppkg.ngcp-rtpengine.nobcg729 . - name: Get coverity scan run: | curl -o cov-analysis.tgz \ $COVERITY_SCAN_PROG_URL \ --form project=$COVERITY_SCAN_PROJECT_NAME \ --form token=$COVERITY_SCAN_TOKEN tar xfz cov-analysis.tgz # We need to disable glib deprecation warnings, as coverity-scan does # not support __attributes__ in enums. - name: Analyze run: | DEB_BUILD_PROFILES="pkg.ngcp-rtpengine.nobcg729" \ CPPFLAGS="-DGLIB_DISABLE_DEPRECATION_WARNINGS" \ cov-analysis-*/bin/cov-build --dir cov-int make -j4 coverity - name: Submit result run: | tar cfz cov-int.tar.gz cov-int curl \ https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME \ --form token=$COVERITY_SCAN_TOKEN \ --form email=$COVERITY_SCAN_NOTIFICATION_EMAIL \ --form file=@cov-int.tar.gz \ --form version="`git describe --tags --always`" \ --form description="`git describe --tags --always` / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" rtpengine-mr12.5.1.22/.github/workflows/debpkg.yml000066400000000000000000000022771474347554000217550ustar00rootroot00000000000000name: Debian Packaging on: push: pull_request: schedule: - cron: '0 8 * * *' jobs: build-deb-bookworm: runs-on: ubuntu-latest name: Debian pipeline for bookworm steps: - name: Checkout source uses: actions/checkout@v3 - name: Execute Docker debpkg action uses: ./.github/actions/debpkg-bookworm - name: Store Debian package artifacts uses: actions/upload-artifact@v3 with: name: Debian binary package files path: '*.deb' - name: Store Debian package build info uses: actions/upload-artifact@v3 with: name: Debian buildinfo file path: '*.buildinfo' build-deb-sid: runs-on: ubuntu-latest name: Debian pipeline for sid steps: - name: Checkout source uses: actions/checkout@v3 - name: Execute Docker debpkg action uses: ./.github/actions/debpkg-sid - name: Store Debian package artifacts uses: actions/upload-artifact@v3 with: name: Debian binary package files path: '*.deb' - name: Store Debian package build info uses: actions/upload-artifact@v3 with: name: Debian buildinfo file path: '*.buildinfo' rtpengine-mr12.5.1.22/.github/workflows/shellcheck.yml000066400000000000000000000014421474347554000226170ustar00rootroot00000000000000name: Shellcheck on: push: pull_request: schedule: - cron: '0 8 * * *' jobs: test: runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v3 - name: Display original shellcheck version run: shellcheck --version - name: Update shellcheck to latest stable version run: | wget -qO- https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.linux.x86_64.tar.xz | tar -xJv sudo cp shellcheck-stable/shellcheck /usr/bin/ - name: Display current shellcheck version run: shellcheck --version - name: Shellcheck execution run: shellcheck --exclude=SC1090,SC1091 debian/*.init debian/*.post* debian/*.pre* debian/*-setup el/*.init tests/simulator-tcp.sh utils/patch-kernel rtpengine-mr12.5.1.22/.github/workflows/unit-tests.yml000066400000000000000000000014041474347554000226270ustar00rootroot00000000000000name: Unit Tests on: push: pull_request: schedule: - cron: '0 8 * * *' jobs: test: runs-on: ubuntu-22.04 name: Run unit tests steps: - name: Checkout source uses: actions/checkout@v3 - name: Update APT cache run: | sudo apt-get update - name: Get build dependencies run: | echo "Generating Debian source for usage on Ubuntu/jammy / ubuntu-22.04" cd pkg/deb/ ./generator.sh ./backports/jammy rm -rf debian mv jammy debian echo "Installing Debian packages" sudo apt-get build-dep -q -y -Ppkg.ngcp-rtpengine.nobcg729 . - name: Run unit tests with sanitizers enabled run: | make asan-check rtpengine-mr12.5.1.22/.gitignore000066400000000000000000000000331474347554000163550ustar00rootroot00000000000000.*.sw? *.strhash.c docs/_* rtpengine-mr12.5.1.22/.gitreview000066400000000000000000000001021474347554000163700ustar00rootroot00000000000000[gerrit] host=gerrit.mgm.sipwise.com port=29418 project=rtpengine rtpengine-mr12.5.1.22/.mailmap000066400000000000000000000006141474347554000160130ustar00rootroot00000000000000 Pawel Kuzak Stefan Mititelu Sipwise Jenkins Builder Balajee SV Balajee SV rtpengine-mr12.5.1.22/.readthedocs.yaml000066400000000000000000000002501474347554000176150ustar00rootroot00000000000000version: 2 build: os: ubuntu-22.04 tools: python: "3.10" sphinx: configuration: docs/conf.py python: install: - requirements: docs/requirements.txt rtpengine-mr12.5.1.22/.travis.yml000066400000000000000000000014161474347554000165040ustar00rootroot00000000000000language: c compiler: - gcc - clang before_install: - sudo apt-get update - sudo apt-get -y install devscripts equivs # workarounds for Ubuntu xenial/16.04 LTS, # `apt-get -y build-dep -Ppkg.ngcp-rtpengine.nobcg729 .` # as well as several Build-Deps aren't available - sed -i '/libbcg729-dev/d' debian/control - sed -i 's/default-libmysqlclient-dev/libmysqlclient-dev/' debian/control - sed -i 's/libiptc-dev/iptables-dev/' debian/control - sed -i 's/debhelper-compat.*/debhelper,/' debian/control - mk-build-deps --build-dep --install --remove --root-cmd sudo script: - make -C iptables-extension # `dpkg-parsechangelog [...] -STimestamp` is not available # on Ubuntu xenial/16.04 LTS - RELEASE_DATE=travis-$(date +%s) make -C daemon -j$(nproc) rtpengine-mr12.5.1.22/LICENSE000066400000000000000000001045131474347554000154020ustar00rootroot00000000000000 GNU 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. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . rtpengine-mr12.5.1.22/Makefile000066400000000000000000000033331474347554000160330ustar00rootroot00000000000000RTPENGINE_ROOT_DIR=. with_transcoding ?= yes ifeq ($(DO_ASAN_FLAGS),1) ASAN_FLAGS = -ggdb -O0 -fsanitize=address -fsanitize=leak -fsanitize=undefined CFLAGS ?= -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes CFLAGS += $(ASAN_FLAGS) CFLAGS += -DASAN_BUILD LDFLAGS += $(ASAN_FLAGS) export CFLAGS export LDFLAGS export ASAN_OPTIONS=verify_asan_link_order=0 export UBSAN_OPTIONS=print_stacktrace=1 export G_SLICE=always-malloc endif include lib/lib.Makefile .PHONY: all distclean clean coverity all: $(MAKE) -C daemon ifeq ($(with_transcoding),yes) $(MAKE) -C recording-daemon $(MAKE) -C perf-tester endif install: $(MAKE) -C daemon install ifeq ($(with_transcoding),yes) $(MAKE) -C recording-daemon install $(MAKE) -C perf-tester install endif mkdir -p $(DESTDIR)/usr/libexec/rtpengine/ $(DESTDIR)/usr/bin $(DESTDIR)/usr/share/man/man1 install -m 0755 utils/rtpengine-get-table $(DESTDIR)/usr/libexec/rtpengine/ install -m 0755 utils/rtpengine-ctl utils/rtpengine-ng-client $(DESTDIR)/usr/bin/ install -m 0644 utils/rtpengine-ctl.1 utils/rtpengine-ng-client.1 $(DESTDIR)/usr/share/man/man1 coverity: $(MAKE) -C daemon ifeq ($(with_transcoding),yes) $(MAKE) -C recording-daemon $(MAKE) -C perf-tester endif .PHONY: with-kernel with-kernel: all $(MAKE) -C kernel-module install-with-kernel: all install $(MAKE) -C kernel-module install distclean clean: $(MAKE) -C daemon clean $(MAKE) -C recording-daemon clean $(MAKE) -C perf-tester clean $(MAKE) -C kernel-module clean $(MAKE) -C t clean .DEFAULT: $(MAKE) -C daemon $@ $(MAKE) -C recording-daemon $@ $(MAKE) -C perf-tester $(MAKE) -C kernel-module $@ .PHONY: check asan-check check: all $(MAKE) -C t asan-check: DO_ASAN_FLAGS=1 $(MAKE) check rtpengine-mr12.5.1.22/README.md000066400000000000000000000113261474347554000156530ustar00rootroot00000000000000![Code Testing](https://github.com/sipwise/rtpengine/workflows/Code%20Testing/badge.svg) ![Debian Package CI](https://github.com/sipwise/rtpengine/workflows/Debian%20Packaging/badge.svg) ![Coverity](https://img.shields.io/coverity/scan/sipwise-rtpengine.svg) # What is rtpengine? The [Sipwise](http://www.sipwise.com/) NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic. It's meant to be used with the [Kamailio SIP proxy](http://www.kamailio.org/) and forms a drop-in replacement for any of the other available RTP and media proxies. Currently the only supported platform is GNU/Linux. # Mailing List For general questions, discussion, requests for support, and community chat, join our [mailing list](https://rtpengine.com/mailing-list). Please do not use the Github issue tracker for this purpose. # Features * Media traffic running over either IPv4 or IPv6 * Bridging between IPv4 and IPv6 user agents * Bridging between different IP networks or interfaces * TOS/QoS field setting * Customizable port range * Multi-threaded * Advertising different addresses for operation behind NAT * In-kernel packet forwarding for low-latency and low-CPU performance * Automatic fallback to normal userspace operation if kernel module is unavailable * Support for *Kamailio*'s *rtpproxy* module * Legacy support for old *OpenSER* *mediaproxy* module * HTTP, HTTPS, and WebSocket (WS and WSS) interfaces When used through the *rtpengine* module (or its older counterpart called *rtpproxy-ng*), the following additional features are available: - Full SDP parsing and rewriting - Supports non-standard RTCP ports (RFC 3605) - ICE (RFC 5245) support: + Bridging between ICE-enabled and ICE-unaware user agents + Optionally acting only as additional ICE relay/candidate + Optionally forcing relay of media streams by removing other ICE candidates + Optionally act as an "ICE lite" peer only - SRTP (RFC 3711) support: + Support for SDES (RFC 4568) and DTLS-SRTP (RFC 5764) + AES-CM and AES-F8 ciphers, both in userspace and in kernel + HMAC-SHA1 packet authentication + Bridging between RTP and SRTP user agents + Opportunistic SRTP (RFC 8643) + Legacy non-RFC (dual `m=` line) best-effort SRTP + AES-GCM Authenticated Encryption (AEAD) (RFC 7714) + `a=tls-id` as per RFC 8842 - Support for RTCP profile with feedback extensions (RTP/AVPF, RFC 4585 and 5124) - Arbitrary bridging between any of the supported RTP profiles (RTP/AVP, RTP/AVPF, RTP/SAVP, RTP/SAVPF) - RTP/RTCP multiplexing (RFC 5761) and demultiplexing - Breaking of BUNDLE'd media streams (draft-ietf-mmusic-sdp-bundle-negotiation) - Recording of media streams, decrypted if possible - Transcoding and repacketization - Transcoding between RFC 2833/4733 DTMF event packets and in-band DTMF tones (and vice versa) - Injection of DTMF events or PCM DTMF tones into running audio streams - Playback of pre-recorded streams/announcements - Transcoding between T.38 and PCM (G.711 or other audio codecs) - Silence detection and comfort noise (RFC 3389) payloads * Media forking * Publish/subscribe mechanism for N-to-N media forwarding There is also limited support for *rtpengine* to be used as a drop-in replacement for *Janus* using the native Janus control protocol (see below). *Rtpengine* does not (yet) support: * ZRTP, although ZRTP passes through *rtpengine* just fine # Documentation Check our general documentation here: * [Read-the-Docs](https://rtpengine.readthedocs.io/en/latest/) For quick access, documentation for usage: * [Compiling and Installing](https://rtpengine.readthedocs.io/en/latest/compiling_and_installing.html) * [Usage](https://rtpengine.readthedocs.io/en/latest/usage.html) * [Transcoding](https://rtpengine.readthedocs.io/en/latest/transcoding.html) * [Call recording](https://rtpengine.readthedocs.io/en/latest/call_recording.html) * [The NG Control Protocol](https://rtpengine.readthedocs.io/en/latest/ng_control_protocol.html) * [The TCP-NG Control Protocol](https://rtpengine.readthedocs.io/en/latest/tcpng_control_protocol.html) * [HTTP/WebSocket support](https://rtpengine.readthedocs.io/en/latest/http_websocket_support.html) * [Janus Interface and Replacement Functionality](https://rtpengine.readthedocs.io/en/latest/janus_interface_and_replacement.html) For quick access, documentation for development: * [Architecture Overview](https://rtpengine.readthedocs.io/en/latest/architecture.html) * [Unit-tests](https://rtpengine.readthedocs.io/en/latest/tests.html) * [Troubleshooting Overview](https://rtpengine.readthedocs.io/en/latest/troubleshooting.html) * [Glossary](https://rtpengine.readthedocs.io/en/latest/glossary.html) # Sponsors * [Dataport AöR](https://www.dataport.de/) # Contribution Every bit matters. Join us. Make the rtpengine community stronger. rtpengine-mr12.5.1.22/daemon/000077500000000000000000000000001474347554000156345ustar00rootroot00000000000000rtpengine-mr12.5.1.22/daemon/.gitignore000066400000000000000000000005601474347554000176250ustar00rootroot00000000000000.depend *.8 *.o rtpengine core core.* .ycm_extra_conf.pyc auxlib.c loglib.c rtplib.c codeclib.c resample.c str.c fix_frame_channel_layout.h socket.c streambuf.c ssllib.c dtmflib.c *-test dtmf_rx_fillin.h *-test.c spandsp_logging.h mvr2s_x64_avx512.S mvr2s_x64_avx2.S mix_buffer.c mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S poller.c bufferpool.c uring.c rtpengine-mr12.5.1.22/daemon/.ycm_extra_conf.py000066400000000000000000000100701474347554000212620ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' repl_tmpl = '(int)((x)[a]?(((long)((x)[a])<" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/daemon/Makefile000066400000000000000000000105521474347554000172770ustar00rootroot00000000000000TARGET= rtpengine with_iptables_option ?= yes with_transcoding ?= yes CFLAGS?= -g -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes -Werror=return-type \ -Wshadow CFLAGS+= -pthread -fno-strict-aliasing CFLAGS+= -std=c11 CFLAGS+= $(shell pkg-config --cflags glib-2.0) CFLAGS+= $(shell pkg-config --cflags gthread-2.0) CFLAGS+= $(shell pkg-config --cflags zlib) CFLAGS+= $(shell pkg-config --cflags openssl) CFLAGS+= $(shell pkg-config --cflags libevent_pthreads) CFLAGS+= -DPCRE2_CODE_UNIT_WIDTH=8 CFLAGS+= $(shell pkg-config --cflags libpcre2-8) CFLAGS+= $(shell pkg-config xmlrpc_client --cflags 2> /dev/null || xmlrpc-c-config client --cflags) CFLAGS+= $(shell pkg-config xmlrpc --cflags 2> /dev/null) CFLAGS+= $(shell pkg-config xmlrpc_util --cflags 2> /dev/null) CFLAGS+= $(shell pkg-config --cflags json-glib-1.0) CFLAGS+= $(shell pkg-config --cflags libwebsockets) CFLAGS+= $(shell pkg-config --cflags libnftnl) CFLAGS+= $(shell pkg-config --cflags libmnl) ifeq ($(with_iptables_option),yes) CFLAGS+= $(shell pkg-config --cflags libiptc) CFLAGS+= -DWITH_IPTABLES_OPTION endif CFLAGS+= -I. -I../kernel-module/ -I../lib/ -I../include/ CFLAGS+= -D_GNU_SOURCE ifeq ($(with_transcoding),yes) CFLAGS+= $(shell pkg-config --cflags libavcodec) CFLAGS+= $(shell pkg-config --cflags libavformat) CFLAGS+= $(shell pkg-config --cflags libavutil) CFLAGS+= $(shell pkg-config --cflags libswresample) CFLAGS+= $(shell pkg-config --cflags libavfilter) CFLAGS+= $(shell pkg-config --cflags spandsp) CFLAGS+= $(shell pkg-config --cflags opus) CFLAGS+= -DWITH_TRANSCODING CFLAGS+= $(shell mysql_config --cflags) else CFLAGS+= -DWITHOUT_CODECLIB endif ifeq ($(without_nftables),yes) CFLAGS+= -DWITHOUT_NFTABLES endif ### compile time options: #CFLAGS+= -DSRTCP_KEY_DERIVATION_RFC_COMPLIANCE #CFLAGS+= -DSTRICT_SDES_KEY_LIFETIME LDLIBS= -lm -ldl LDLIBS+= $(shell pkg-config --libs glib-2.0) LDLIBS+= $(shell pkg-config --libs gthread-2.0) LDLIBS+= $(shell pkg-config --libs zlib) LDLIBS+= $(shell pkg-config --libs libpcre2-8) LDLIBS+= $(shell pkg-config --libs libcrypto) LDLIBS+= $(shell pkg-config --libs openssl) LDLIBS+= $(shell pkg-config --libs libevent_pthreads) LDLIBS+= -lpcap LDLIBS+= $(shell pkg-config xmlrpc_client --libs 2> /dev/null || xmlrpc-c-config client --libs) LDLIBS+= $(shell pkg-config xmlrpc --libs 2> /dev/null) LDLIBS+= $(shell pkg-config xmlrpc_util --libs 2> /dev/null) LDLIBS+= -lhiredis LDLIBS+= $(shell pkg-config --libs json-glib-1.0) LDLIBS+= $(shell pkg-config --libs libwebsockets) LDLIBS+= $(shell pkg-config --libs libnftnl) LDLIBS+= $(shell pkg-config --libs libmnl) ifeq ($(with_iptables_option),yes) LDLIBS+= $(shell pkg-config --libs libiptc) endif ifeq ($(with_transcoding),yes) LDLIBS+= $(shell pkg-config --libs libavcodec) LDLIBS+= $(shell pkg-config --libs libavformat) LDLIBS+= $(shell pkg-config --libs libavutil) LDLIBS+= $(shell pkg-config --libs libswresample) LDLIBS+= $(shell pkg-config --libs libavfilter) LDLIBS+= $(shell pkg-config --libs spandsp) LDLIBS+= $(shell pkg-config --libs opus) LDLIBS+= $(shell mysql_config --libs) endif ifeq ($(with_transcoding),yes) include ../lib/g729.Makefile include ../lib/codec-chain.Makefile endif include ../lib/mqtt.Makefile SRCS= main.c kernel.c helpers.c control_tcp.c call.c control_udp.c redis.c \ bencode.c cookie_cache.c udp_listener.c control_ng_flags_parser.c control_ng.strhash.c sdp.strhash.c stun.c rtcp.c \ crypto.c rtp.c call_interfaces.strhash.c dtls.c log.c cli.c graphite.c ice.c \ media_socket.c homer.c recording.c statistics.c cdr.c ssrc.c iptables.c tcp_listener.c \ codec.c load.c dtmf.c timerthread.c media_player.c jitter_buffer.c t38.c websocket.c \ mqtt.c janus.strhash.c audio_player.c ifneq ($(without_nftables),yes) SRCS+= nftables.c endif LIBSRCS= loglib.c auxlib.c rtplib.c str.c socket.c streambuf.c ssllib.c dtmflib.c mix_buffer.c poller.c \ bufferpool.c ifeq ($(with_transcoding),yes) LIBSRCS+= codeclib.strhash.c resample.c LIBASM= mvr2s_x64_avx2.S mvr2s_x64_avx512.S mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S endif ifneq ($(have_liburing),yes) LIBSRCS+= uring.c endif OBJS= $(SRCS:.c=.o) $(LIBSRCS:.c=.o) $(LIBASM:.S=.o) MDS= rtpengine.ronn MANS= $(MDS:.ronn=.8) include ../lib/common.Makefile install: $(TARGET) $(MANS) install -m 0755 -D $(TARGET) $(DESTDIR)/usr/bin/$(TARGET) install -m 0644 -D $(TARGET).8 $(DESTDIR)/usr/share/man/man8/$(TARGET).8 rtpengine-mr12.5.1.22/daemon/audio_player.c000066400000000000000000000120571474347554000204620ustar00rootroot00000000000000#ifdef WITH_TRANSCODING #include "audio_player.h" #include "call.h" #include "media_player.h" #include "mix_buffer.h" #include "codec.h" struct audio_player { struct media_player *mp; struct mix_buffer mb; struct timeval last_run; unsigned int ptime_us; unsigned int ptime; // in samples unsigned long long pts; }; // call is locked in R and mp is locked static bool audio_player_run(struct media_player *mp) { if (!mp || !mp->media) return false; struct audio_player *ap = mp->media->audio_player; if (!ap || !ap->ptime_us) return false; ap->last_run = rtpe_now; // equals mp->next_run unsigned int size; void *buf = mix_buffer_read_fast(&ap->mb, ap->ptime, &size); if (!buf) { if (!size) { // error or not active: just reschedule timeval_add_usec(&mp->next_run, ap->ptime_us); timerthread_obj_schedule_abs(&mp->tt_obj, &mp->next_run); return false; } buf = g_alloca(size); mix_buffer_read_slow(&ap->mb, buf, ap->ptime); } media_player_add_packet(mp, buf, size, ap->ptime_us, ap->pts); ap->pts += ap->ptime; return false; } // call locked in W bool audio_player_setup(struct call_media *m, const rtp_payload_type *dst_pt, unsigned int size_ms, unsigned int delay_ms) { if (!dst_pt) return false; unsigned int bufsize_ms = size_ms; if (!bufsize_ms) bufsize_ms = rtpe_config.audio_buffer_length; if (!bufsize_ms) return false; unsigned int clockrate = fraction_mult(dst_pt->clock_rate, &dst_pt->codec_def->default_clockrate_fact); unsigned int ptime_ms = m->ptime; if (!ptime_ms) ptime_ms = 20; unsigned int ptime_us = ptime_ms * 1000; unsigned int ptime_smp = ptime_ms * clockrate / 1000; // in samples // TODO: shortcut this to avoid the detour of avframe -> avpacket -> avframe (all in s16) rtp_payload_type src_pt = { .payload_type = -1, .encoding = STR_CONST_INIT("PCM-S16LE"), // XXX support flp .channels = dst_pt->channels, .clock_rate = clockrate, .ptime = ptime_ms, }; struct audio_player *ap; struct media_player *mp = NULL; // check if objects exists and parameters are still the same if ((ap = m->audio_player) && (mp = ap->mp)) { if (!media_player_pt_match(mp, &src_pt, dst_pt)) { /* do reset below */ } if (ap->ptime != ptime_smp || ap->ptime_us != ptime_us) { /* do reset below */ } else // everything matched return true; ilogs(transcoding, LOG_DEBUG, "Resetting audio player for new parameters"); } else ilogs(transcoding, LOG_DEBUG, "Creating new audio player"); // create ap and mp objects, or reset them if needed if (ap) { mix_buffer_destroy(&ap->mb); ZERO(ap->mb); } else ap = m->audio_player = g_slice_alloc0(sizeof(*m->audio_player)); if (mp) media_player_stop(mp); else { media_player_new(&mp, m->monologue); ap->mp = mp; } if (!mp) goto error; // set everything up src_pt.codec_def = codec_find_by_av(AV_CODEC_ID_PCM_S16LE), // XXX shortcut this? mp->run_func = audio_player_run; ap->ptime_us = ptime_us; ap->ptime = ptime_smp; if (media_player_setup(mp, &src_pt, dst_pt)) goto error; bufsize_ms = MAX(bufsize_ms, ptime_ms * 2); // make sure the buf size is at least 2 frames mix_buffer_init_active(&ap->mb, AV_SAMPLE_FMT_S16, clockrate, dst_pt->channels, bufsize_ms, delay_ms, false); return true; error: audio_player_free(m); return false; } void audio_player_activate(struct call_media *m) { if (!m) return; struct audio_player *ap = m->audio_player; if (!ap) return; mix_buffer_activate(&ap->mb); } // call locked in W void audio_player_start(struct call_media *m) { struct audio_player *ap; if (!m || !(ap = m->audio_player)) return; struct media_player *mp = ap->mp; if (!mp) return; media_player_set_media(mp, m); if (mp->next_run.tv_sec) // already running? return; ilogs(transcoding, LOG_DEBUG, "Starting audio player"); ap->last_run = rtpe_now; mp->next_run = rtpe_now; timeval_add_usec(&mp->next_run, ap->ptime_us); timerthread_obj_schedule_abs(&mp->tt_obj, &mp->next_run); } void audio_player_add_frame(struct audio_player *ap, uint32_t ssrc, AVFrame *frame) { bool ret = mix_buffer_write(&ap->mb, ssrc, frame->extended_data[0], frame->nb_samples); if (!ret) ilogs(transcoding, LOG_WARN | LOG_FLAG_LIMIT, "Failed to add samples to mix buffer"); av_frame_free(&frame); } void audio_player_stop(struct call_media *m) { struct audio_player *ap = m->audio_player; if (!ap) return; ilogs(transcoding, LOG_DEBUG, "Stopping audio player"); media_player_stop(ap->mp); media_player_put(&ap->mp); } bool audio_player_is_active(struct call_media *m) { if (!m->audio_player) return false; if (!m->audio_player->mp) return false; if (!m->audio_player->mp->next_run.tv_sec) return false; return true; } bool audio_player_pt_match(struct call_media *m, const rtp_payload_type *pt) { return rtp_payload_type_eq_exact(&m->audio_player->mp->coder.handler->dest_pt, pt); } void audio_player_free(struct call_media *m) { struct audio_player *ap = m->audio_player; if (!ap) return; mix_buffer_destroy(&ap->mb); media_player_put(&ap->mp); g_slice_free1(sizeof(*ap), ap); m->audio_player = NULL; } #endif rtpengine-mr12.5.1.22/daemon/bencode.c000066400000000000000000000521761474347554000174120ustar00rootroot00000000000000#include "bencode.h" #include #include #include #include #include #include #include #include #include "helpers.h" /* set to 0 for alloc debugging, e.g. through valgrind */ #define BENCODE_MIN_BUFFER_PIECE_LEN 512 #define BENCODE_HASH_BUCKETS 31 /* prime numbers work best */ #define BENCODE_ALLOC_ALIGN 8 struct __bencode_buffer_piece { char *tail; unsigned int left; struct __bencode_buffer_piece *next; char buf[0]; }; struct __bencode_free_list { void *ptr; free_func_t func; struct __bencode_free_list *next; }; struct __bencode_hash { struct bencode_item *buckets[BENCODE_HASH_BUCKETS]; }; static bencode_item_t __bencode_end_marker = { .type = BENCODE_END_MARKER, .iov = { { .iov_base = "e", .iov_len = 1, }, }, .iov_cnt = 1, .str_len = 1, }; static bencode_item_t *__bencode_decode(bencode_buffer_t *buf, const char *s, const char *end); static void __bencode_item_init(bencode_item_t *item) { item->last_child = item->parent = item->child = item->sibling = NULL; } static void __bencode_container_init(bencode_item_t *cont) { cont->iov[0].iov_len = 1; cont->iov[1].iov_base = "e"; cont->iov[1].iov_len = 1; cont->iov_cnt = 2; cont->str_len = 2; } static void __bencode_dictionary_init(bencode_item_t *dict) { dict->type = BENCODE_DICTIONARY; dict->iov[0].iov_base = "d"; dict->value = 0; __bencode_container_init(dict); } static void __bencode_list_init(bencode_item_t *list) { list->type = BENCODE_LIST; list->iov[0].iov_base = "l"; __bencode_container_init(list); } static struct __bencode_buffer_piece *__bencode_piece_new(unsigned int size) { struct __bencode_buffer_piece *ret; if (size < BENCODE_MIN_BUFFER_PIECE_LEN) size = BENCODE_MIN_BUFFER_PIECE_LEN; ret = BENCODE_MALLOC(sizeof(*ret) + size + BENCODE_ALLOC_ALIGN); if (!ret) return NULL; ret->tail = ret->buf; ret->left = size; ret->next = NULL; return ret; } int bencode_buffer_init(bencode_buffer_t *buf) { buf->pieces = __bencode_piece_new(0); if (!buf->pieces) return -1; buf->free_list = NULL; buf->error = 0; return 0; } void *bencode_buffer_alloc(bencode_buffer_t *buf, unsigned int size) { struct __bencode_buffer_piece *piece; void *ret; unsigned int align_size = ((size + BENCODE_ALLOC_ALIGN - 1) / BENCODE_ALLOC_ALIGN) * BENCODE_ALLOC_ALIGN; if (!buf) return NULL; if (buf->error) return NULL; piece = buf->pieces; if (size <= piece->left) goto alloc; piece = __bencode_piece_new(size); if (!piece) { buf->error = 1; return NULL; } piece->next = buf->pieces; buf->pieces = piece; assert(size <= piece->left); alloc: if (piece->left >= align_size) piece->left -= align_size; else piece->left = 0; ret = piece->tail; piece->tail += align_size; return ret; } void bencode_buffer_free(bencode_buffer_t *buf) { struct __bencode_free_list *fl; struct __bencode_buffer_piece *piece, *next; for (fl = buf->free_list; fl; fl = fl->next) fl->func(fl->ptr); for (piece = buf->pieces; piece; piece = next) { next = piece->next; BENCODE_FREE(piece); } } static bencode_item_t *__bencode_item_alloc(bencode_buffer_t *buf, unsigned int payload) { bencode_item_t *ret; ret = bencode_buffer_alloc(buf, sizeof(struct bencode_item) + payload); if (!ret) return NULL; ret->buffer = buf; __bencode_item_init(ret); return ret; } bencode_item_t *bencode_dictionary(bencode_buffer_t *buf) { bencode_item_t *ret; ret = __bencode_item_alloc(buf, 0); if (!ret) return NULL; __bencode_dictionary_init(ret); return ret; } bencode_item_t *bencode_list(bencode_buffer_t *buf) { bencode_item_t *ret; ret = __bencode_item_alloc(buf, 0); if (!ret) return NULL; __bencode_list_init(ret); return ret; } static void __bencode_container_add(bencode_item_t *parent, bencode_item_t *child) { if (!parent) return; if (!child) return; assert(child->parent == NULL); assert(child->sibling == NULL); child->parent = parent; if (parent->last_child) parent->last_child->sibling = child; parent->last_child = child; if (!parent->child) parent->child = child; while (parent) { parent->iov_cnt += child->iov_cnt; parent->str_len += child->str_len; parent = parent->parent; } } static bencode_item_t *__bencode_string_alloc(bencode_buffer_t *buf, const void *base, size_t str_len, size_t iov_len, unsigned int iov_cnt, bencode_type_t type) { bencode_item_t *ret; int len_len; assert(str_len <= 99999); ret = __bencode_item_alloc(buf, 7); if (!ret) return NULL; len_len = sprintf(ret->__buf, "%zu:", str_len); ret->type = type; ret->iov[0].iov_base = ret->__buf; ret->iov[0].iov_len = len_len; ret->iov[1].iov_base = (void *) base; ret->iov[1].iov_len = iov_len; ret->iov_cnt = iov_cnt + 1; ret->str_len = len_len + str_len; return ret; } bencode_item_t *bencode_string_len_dup(bencode_buffer_t *buf, const char *s, size_t len) { char *sd = bencode_buffer_alloc(buf, len); if (!sd) return NULL; memcpy(sd, s, len); return bencode_string_len(buf, sd, len); } bencode_item_t *bencode_string_len(bencode_buffer_t *buf, const char *s, size_t len) { return __bencode_string_alloc(buf, s, len, len, 1, BENCODE_STRING); } bencode_item_t *bencode_integer(bencode_buffer_t *buf, long long int i) { bencode_item_t *ret; int alen, rlen; alen = 8; while (1) { ret = __bencode_item_alloc(buf, alen + 3); if (!ret) return NULL; rlen = snprintf(ret->__buf, alen, "i%llde", i); if (rlen < alen) break; alen <<= 1; } ret->type = BENCODE_INTEGER; ret->iov[0].iov_base = ret->__buf; ret->iov[0].iov_len = rlen; ret->iov[1].iov_base = NULL; ret->iov[1].iov_len = 0; ret->iov_cnt = 1; ret->str_len = rlen; ret->value = i; return ret; } bencode_item_t *bencode_dictionary_add_len(bencode_item_t *dict, const char *key, size_t keylen, bencode_item_t *val) { bencode_item_t *s; if (!dict || !val) return NULL; assert(dict->type == BENCODE_DICTIONARY); s = bencode_string_len(dict->buffer, key, keylen); if (!s) return NULL; __bencode_container_add(dict, s); __bencode_container_add(dict, val); return val; } bencode_item_t *bencode_list_add(bencode_item_t *list, bencode_item_t *item) { if (!list || !item) return NULL; assert(list->type == BENCODE_LIST); __bencode_container_add(list, item); return item; } static int __bencode_iovec_cpy(struct iovec *out, const struct iovec *in, int num) { memcpy(out, in, num * sizeof(*out)); return num; } static int __bencode_str_cpy(char *out, const struct iovec *in, int num) { char *orig = out; while (--num >= 0) { memcpy(out, in->iov_base, in->iov_len); out += in->iov_len; in++; } return out - orig; } static int __bencode_iovec_dump(struct iovec *out, bencode_item_t *item) { bencode_item_t *child; struct iovec *orig = out; assert(item->iov[0].iov_base != NULL); out += __bencode_iovec_cpy(out, &item->iov[0], 1); child = item->child; while (child) { out += __bencode_iovec_dump(out, child); child = child->sibling; } if (item->iov[1].iov_base) out += __bencode_iovec_cpy(out, &item->iov[1], 1); assert((out - orig) == item->iov_cnt); (void) orig; return item->iov_cnt; } static size_t __bencode_str_dump(char *out, bencode_item_t *item) { char *orig = out; bencode_item_t *child; assert(item->iov[0].iov_base != NULL); out += __bencode_str_cpy(out, &item->iov[0], 1); child = item->child; while (child) { out += __bencode_str_dump(out, child); child = child->sibling; } if (item->iov[1].iov_base) out += __bencode_str_cpy(out, &item->iov[1], 1); assert((out - orig) == item->str_len); (void) orig; *out = '\0'; return item->str_len; } struct iovec *bencode_iovec(bencode_item_t *root, int *cnt, unsigned int head, unsigned int tail) { struct iovec *ret; if (!root) return NULL; assert(cnt != NULL); assert(root->iov_cnt > 0); ret = bencode_buffer_alloc(root->buffer, sizeof(*ret) * (root->iov_cnt + head + tail)); if (!ret) return NULL; *cnt = __bencode_iovec_dump(ret + head, root); return ret; } char *bencode_collapse(bencode_item_t *root, size_t *len) { char *ret; size_t l; if (!root) return NULL; assert(root->str_len > 0); ret = bencode_buffer_alloc(root->buffer, root->str_len + 1); if (!ret) return NULL; l = __bencode_str_dump(ret, root); if (len) *len = l; return ret; } char *bencode_collapse_dup(bencode_item_t *root, size_t *len) { char *ret; int l; if (!root) return NULL; assert(root->str_len > 0); ret = BENCODE_MALLOC(root->str_len + 1); if (!ret) return NULL; l = __bencode_str_dump(ret, root); if (len) *len = l; return ret; } static unsigned int __bencode_hash_str_len(const unsigned char *s, int len) { unsigned long ul; unsigned int ui; unsigned short us; if (len >= sizeof(ul)) { memcpy(&ul, s, sizeof(ul)); return ul % BENCODE_HASH_BUCKETS; } if (len >= sizeof(ui)) { memcpy(&ui, s, sizeof(ui)); return ui % BENCODE_HASH_BUCKETS; } if (len >= sizeof(us)) { memcpy(&us, s, sizeof(us)); return us % BENCODE_HASH_BUCKETS; } if (len >= sizeof(*s)) return *s % BENCODE_HASH_BUCKETS; return 0; } static unsigned int __bencode_hash_str(bencode_item_t *s) { assert(s->type == BENCODE_STRING); return __bencode_hash_str_len(s->iov[1].iov_base, s->iov[1].iov_len); } static void __bencode_hash_insert(bencode_item_t *key, struct __bencode_hash *hash) { unsigned int bucket, i; i = bucket = __bencode_hash_str(key); while (1) { if (!hash->buckets[i]) { hash->buckets[i] = key; break; } i++; if (i >= BENCODE_HASH_BUCKETS) i = 0; if (i == bucket) break; } } static bencode_item_t *__bencode_decode_dictionary(bencode_buffer_t *buf, const char *s, const char *end) { bencode_item_t *ret, *key, *value; struct __bencode_hash *hash; if (*s != 'd') return NULL; s++; ret = __bencode_item_alloc(buf, sizeof(*hash)); if (!ret) return NULL; __bencode_dictionary_init(ret); ret->value = 1; hash = (void *) ret->__buf; memset(hash, 0, sizeof(*hash)); while (s < end) { key = __bencode_decode(buf, s, end); if (!key) return NULL; s += key->str_len; if (key->type == BENCODE_END_MARKER) break; if (key->type != BENCODE_STRING) return NULL; __bencode_container_add(ret, key); if (s >= end) return NULL; value = __bencode_decode(buf, s, end); if (!value) return NULL; s += value->str_len; if (value->type == BENCODE_END_MARKER) return NULL; __bencode_container_add(ret, value); __bencode_hash_insert(key, hash); } return ret; } static bencode_item_t *__bencode_decode_list(bencode_buffer_t *buf, const char *s, const char *end) { bencode_item_t *ret, *item; if (*s != 'l') return NULL; s++; ret = __bencode_item_alloc(buf, 0); if (!ret) return NULL; __bencode_list_init(ret); while (s < end) { item = __bencode_decode(buf, s, end); if (!item) return NULL; s += item->str_len; if (item->type == BENCODE_END_MARKER) break; __bencode_container_add(ret, item); } return ret; } static bencode_item_t *__bencode_decode_integer(bencode_buffer_t *buf, const char *s, const char *end) { long long int i; const char *orig = s; char *convend; bencode_item_t *ret; if (*s != 'i') return NULL; s++; if (s >= end) return NULL; if (*s == '0') { i = 0; s++; goto done; } i = strtoll(s, &convend, 10); if (convend == s) return NULL; s += (convend - s); done: if (s >= end) return NULL; if (*s != 'e') return NULL; s++; ret = __bencode_item_alloc(buf, 0); if (!ret) return NULL; ret->type = BENCODE_INTEGER; ret->iov[0].iov_base = (void *) orig; ret->iov[0].iov_len = s - orig; ret->iov[1].iov_base = NULL; ret->iov[1].iov_len = 0; ret->iov_cnt = 1; ret->str_len = s - orig; ret->value = i; return ret; } static bencode_item_t *__bencode_decode_string(bencode_buffer_t *buf, const char *s, const char *end) { unsigned long int sl; char *convend; const char *orig = s; bencode_item_t *ret; if (*s == '0') { sl = 0; s++; goto colon; } sl = strtoul(s, &convend, 10); if (convend == s) return NULL; s += (convend - s); colon: if (s >= end) return NULL; if (*s != ':') return NULL; s++; if (s + sl > end) return NULL; ret = __bencode_item_alloc(buf, 0); if (!ret) return NULL; ret->type = BENCODE_STRING; ret->iov[0].iov_base = (void *) orig; ret->iov[0].iov_len = s - orig; ret->iov[1].iov_base = (void *) s; ret->iov[1].iov_len = sl; ret->iov_cnt = 2; ret->str_len = s - orig + sl; return ret; } static bencode_item_t *__bencode_decode(bencode_buffer_t *buf, const char *s, const char *end) { if (s >= end) return NULL; switch (*s) { case 'd': return __bencode_decode_dictionary(buf, s, end); case 'l': return __bencode_decode_list(buf, s, end); case 'i': return __bencode_decode_integer(buf, s, end); case 'e': return &__bencode_end_marker; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return __bencode_decode_string(buf, s, end); default: return NULL; } } bencode_item_t *bencode_decode(bencode_buffer_t *buf, const char *s, size_t len) { assert(s != NULL); return __bencode_decode(buf, s, s + len); } static int __bencode_dictionary_key_match(bencode_item_t *key, const char *keystr, size_t keylen) { assert(key->type == BENCODE_STRING); if (keylen != key->iov[1].iov_len) return 0; if (memcmp(keystr, key->iov[1].iov_base, keylen)) return 0; return 1; } bencode_item_t *bencode_dictionary_get_len(bencode_item_t *dict, const char *keystr, size_t keylen) { bencode_item_t *key; unsigned int bucket, i; struct __bencode_hash *hash; if (!dict) return NULL; if (dict->type != BENCODE_DICTIONARY) return NULL; /* try hash lookup first if possible */ if (dict->value == 1) { hash = (void *) dict->__buf; i = bucket = __bencode_hash_str_len((const unsigned char *) keystr, keylen); while (1) { key = hash->buckets[i]; if (!key) return NULL; /* would be there, but isn't */ assert(key->sibling != NULL); if (__bencode_dictionary_key_match(key, keystr, keylen)) return key->sibling; i++; if (i >= BENCODE_HASH_BUCKETS) i = 0; if (i == bucket) break; /* fall back to regular lookup */ } } for (key = dict->child; key; key = key->sibling->sibling) { assert(key->sibling != NULL); if (__bencode_dictionary_key_match(key, keystr, keylen)) return key->sibling; } return NULL; } void bencode_buffer_destroy_add(bencode_buffer_t *buf, free_func_t func, void *p) { struct __bencode_free_list *li; if (!p) return; li = bencode_buffer_alloc(buf, sizeof(*li)); if (!li) return; li->ptr = p; li->func = func; li->next = buf->free_list; buf->free_list = li; } static ssize_t __bencode_string(const char *s, ssize_t offset, size_t len) { size_t pos; unsigned long sl; char *end; for (pos = offset; s[pos] != ':' && isdigit(s[pos]) && pos < len; ++pos); if (pos == len) return -1; sl = strtoul(s + offset, &end, 10); if (s + offset == end || end != s + pos) return -2; if (pos + sl > len) return -1; return pos + sl + 1; } static ssize_t __bencode_integer(const char *s, ssize_t offset, size_t len) { size_t pos; if (s[offset + 1] == '-') { if (offset + 3 < len && s[offset + 2] == '0' && s[offset + 3] == 'e') { return -2; } ++offset; } if (s[offset + 1] == 'e') return -2; if (s[offset + 1] == '0') { if (offset + 2 < len && s[offset + 2] == 'e') return offset + 3; return -2; } for (pos = offset + 1; s[pos] != 'e' && pos < len; ++pos) { if (s[pos] < '0' || s[pos] > '9') return -2; } if (pos == len) return -1; return pos + 1; } static ssize_t __bencode_next(const char *s, ssize_t offset, size_t len); static ssize_t __bencode_list(const char *s, ssize_t offset, size_t len) { for (++offset; s[offset] != 'e' && offset < len;) { offset = __bencode_next(s, offset, len); if (offset < 0) return offset; } if (offset == len) return -1; return offset + 1; } static ssize_t __bencode_dictionary(const char *s, ssize_t offset, size_t len) { for (++offset; s[offset] != 'e' && offset < len;) { offset = __bencode_string(s, offset, len); if (offset < 0) return offset; offset = __bencode_next(s, offset, len); if (offset < 0) return offset; } if (offset == len) return -1; return offset + 1; } static ssize_t __bencode_next(const char *s, ssize_t offset, size_t len) { if (offset >= len) return -1; switch(s[offset]) { case 'i': return __bencode_integer(s, offset, len); case 'l': return __bencode_list(s, offset, len); case 'd': return __bencode_dictionary(s, offset, len); case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return __bencode_string(s, offset, len); } return -2; } ssize_t bencode_valid(const char *s, size_t len) { return __bencode_next(s, 0, len); } static bencode_item_t *bencode_convert_json_node(bencode_buffer_t *buf, JsonNode *node); static bencode_item_t *bencode_convert_json_dict(bencode_buffer_t *buf, JsonNode *node) { JsonObject *obj = json_node_get_object(node); if (!obj) return NULL; bencode_item_t *dict = bencode_dictionary(buf); if (!dict) return NULL; JsonObjectIter iter; json_object_iter_init(&iter, obj); const char *key; JsonNode *value; while (json_object_iter_next(&iter, &key, &value)) { if (!key || !value) return NULL; bencode_item_t *b_val = bencode_convert_json_node(buf, value); if (!b_val) return NULL; bencode_dictionary_add(dict, key, b_val); } return dict; } static bencode_item_t *bencode_convert_json_array(bencode_buffer_t *buf, JsonNode *node) { JsonArray *arr = json_node_get_array(node); if (!arr) return NULL; bencode_item_t *list = bencode_list(buf); if (!list) return NULL; guint len = json_array_get_length(arr); for (guint i = 0; i < len; i++) { JsonNode *el = json_array_get_element(arr, i); if (!el) return NULL; bencode_item_t *it = bencode_convert_json_node(buf, el); if (!it) return NULL; bencode_list_add(list, it); } return list; } static bencode_item_t *bencode_convert_json_value(bencode_buffer_t *buf, JsonNode *node) { GType type = json_node_get_value_type(node); switch (type) { case G_TYPE_STRING:; const char *s = json_node_get_string(node); if (!s) return NULL; return bencode_string(buf, s); case G_TYPE_INT: case G_TYPE_UINT: case G_TYPE_LONG: case G_TYPE_ULONG: case G_TYPE_INT64: case G_TYPE_UINT64: case G_TYPE_BOOLEAN:; gint64 i = json_node_get_int(node); return bencode_integer(buf, i); // everything else is unsupported } return NULL; } static bencode_item_t *bencode_convert_json_node(bencode_buffer_t *buf, JsonNode *node) { JsonNodeType type = json_node_get_node_type(node); switch (type) { case JSON_NODE_OBJECT: return bencode_convert_json_dict(buf, node); case JSON_NODE_ARRAY: return bencode_convert_json_array(buf, node); case JSON_NODE_VALUE: return bencode_convert_json_value(buf, node); default: return NULL; } } bencode_item_t *bencode_convert_json(bencode_buffer_t *buf, JsonParser *json) { JsonNode *root = json_parser_get_root(json); if (!root) return NULL; return bencode_convert_json_node(buf, root); } gboolean bencode_collapse_json_item(bencode_item_t *item, JsonBuilder *builder); gboolean bencode_collapse_json_list(bencode_item_t *item, JsonBuilder *builder) { json_builder_begin_array(builder); for (bencode_item_t *el = item->child; el; el = el->sibling) { if (!bencode_collapse_json_item(el, builder)) return FALSE; } json_builder_end_array(builder); return TRUE; } gboolean bencode_collapse_json_string(bencode_item_t *item, JsonBuilder *builder) { char buf[item->iov[1].iov_len + 1]; memcpy(buf, item->iov[1].iov_base, item->iov[1].iov_len); buf[item->iov[1].iov_len] = '\0'; json_builder_add_string_value(builder, buf); return TRUE; } gboolean bencode_collapse_json_dict(bencode_item_t *item, JsonBuilder *builder) { json_builder_begin_object(builder); bencode_item_t *val; for (bencode_item_t *key = item->child; key; key = val->sibling) { val = key->sibling; if (key->type != BENCODE_STRING) return FALSE; char buf[key->iov[1].iov_len + 1]; memcpy(buf, key->iov[1].iov_base, key->iov[1].iov_len); buf[key->iov[1].iov_len] = '\0'; json_builder_set_member_name(builder, buf); if (!bencode_collapse_json_item(val, builder)) return FALSE; } json_builder_end_object(builder); return TRUE; } gboolean bencode_collapse_json_int(bencode_item_t *item, JsonBuilder *builder) { json_builder_add_int_value(builder, item->value); return TRUE; } gboolean bencode_collapse_json_item(bencode_item_t *item, JsonBuilder *builder) { switch (item->type) { case BENCODE_LIST: return bencode_collapse_json_list(item, builder); case BENCODE_STRING: return bencode_collapse_json_string(item, builder); case BENCODE_DICTIONARY: return bencode_collapse_json_dict(item, builder); case BENCODE_INTEGER: return bencode_collapse_json_int(item, builder); default: return FALSE; } } str *bencode_collapse_str_json(bencode_item_t *root, str *out) { JsonBuilder *builder = json_builder_new(); if (!bencode_collapse_json_item(root, builder)) goto err; char *result = glib_json_print(builder); out->s = result; out->len = strlen(result); bencode_buffer_destroy_add(root->buffer, free, result); return out; err: g_object_unref(builder); return NULL; } rtpengine-mr12.5.1.22/daemon/call.c000066400000000000000000004477531474347554000167370ustar00rootroot00000000000000#include "call.h" #include #include #include #include #include #include #include #include #include #include #include #include "poller.h" #include "helpers.h" #include "log.h" #include "kernel.h" #include "control_tcp.h" #include "streambuf.h" #include "redis.h" #include "str.h" #include "stun.h" #include "rtcp.h" #include "rtp.h" #include "call_interfaces.h" #include "ice.h" #include "log_funcs.h" #include "rtplib.h" #include "cdr.h" #include "ssrc.h" #include "main.h" #include "graphite.h" #include "codec.h" #include "media_player.h" #include "jitter_buffer.h" #include "mqtt.h" #include "janus.h" #include "audio_player.h" #include "bufferpool.h" #include "xt_RTPENGINE.h" struct iterator_helper { uint64_t count; GSList *del_timeout; GSList *del_scheduled; uint64_t transcoded_media; uint64_t user_streams; uint64_t kernel_streams; uint64_t user_kernel_streams; }; struct xmlrpc_helper { enum xmlrpc_format fmt; GQueue strings; }; rwlock_t rtpe_callhash_lock; rtpe_calls_ht rtpe_callhash; struct call_iterator_list rtpe_call_iterators[NUM_CALL_ITERATORS]; static struct mqtt_timer *global_mqtt_timer; unsigned int call_socket_cpu_affinity = 0; /** * locally needed static declarations */ static struct timeval add_ongoing_calls_dur_in_interval(struct timeval *interval_start, struct timeval *interval_duration); static void __call_free(void *p); static void __call_cleanup(call_t *c); static void __monologue_stop(struct call_monologue *ml); static void media_stop(struct call_media *m); static void __subscribe_medias_both_ways(struct call_media * a, struct call_media * b); /* called with call->master_lock held in R */ static int call_timer_delete_monologues(call_t *c) { struct call_monologue *ml; int ret = 0; time_t min_deleted = 0; bool update = false; /* we need a write lock here */ rwlock_unlock_r(&c->master_lock); rwlock_lock_w(&c->master_lock); for (__auto_type i = c->monologues.head; i; i = i->next) { ml = i->data; if (!ml->deleted) continue; if (ml->deleted > rtpe_now.tv_sec) { if (!min_deleted || ml->deleted < min_deleted) min_deleted = ml->deleted; continue; } monologue_destroy(ml); update = true; } c->ml_deleted = min_deleted; rwlock_unlock_w(&c->master_lock); if (update) redis_update_onekey(c, rtpe_redis_write); rwlock_lock_r(&c->master_lock); // coverity[missing_unlock : FALSE] return ret; } void call_make_own_foreign(call_t *c, bool foreign) { statistics_update_foreignown_dec(c); bf_set_clear(&c->call_flags, CALL_FLAG_FOREIGN, foreign); statistics_update_foreignown_inc(c); } /* called with hashlock held */ static void call_timer_iterator(call_t *c, struct iterator_helper *hlp) { unsigned int check; bool good = false; bool do_update = false; bool has_srtp = false; struct packet_stream *ps; stream_fd *sfd; int tmp_t_reason = UNKNOWN; struct call_monologue *ml; enum call_stream_state css; uint64_t timestamp; hlp->count++; rwlock_lock_r(&c->master_lock); log_info_call(c); // final timeout applicable to all calls (own and foreign) if (atomic_get_na(&rtpe_config.final_timeout) && rtpe_now.tv_sec >= (c->created.tv_sec + atomic_get_na(&rtpe_config.final_timeout))) { ilog(LOG_INFO, "Closing call due to final timeout"); tmp_t_reason = FINAL_TIMEOUT; for (__auto_type it = c->monologues.head; it; it = it->next) { ml = it->data; gettimeofday(&(ml->terminated),NULL); ml->term_reason = tmp_t_reason; } goto delete; } // other timeouts not applicable to foreign calls if (IS_FOREIGN_CALL(c)) { goto out; } if (c->deleted && rtpe_now.tv_sec >= c->deleted && c->last_signal <= c->deleted) goto delete; if (c->ml_deleted && rtpe_now.tv_sec >= c->ml_deleted) { if (call_timer_delete_monologues(c)) goto delete; } // conference: call can be created without participants added if (!c->streams.head) goto out; // ignore media timeout if call was recently taken over if (CALL_ISSET(c, FOREIGN_MEDIA) && rtpe_now.tv_sec - c->last_signal <= atomic_get_na(&rtpe_config.timeout)) goto out; for (__auto_type it = c->streams.head; it; it = it->next) { ps = it->data; timestamp = packet_stream_last_packet(ps); if (!ps->media) goto next; sfd = ps->selected_sfd; if (!sfd) goto no_sfd; /* valid stream */ css = call_stream_state_machine(ps); if (css == CSS_ICE) timestamp = atomic64_get_na(&ps->media->ice_agent->last_activity); if (PS_ISSET(ps, RTP)) { if (rtpe_now.tv_sec - atomic64_get_na(&ps->stats_in->last_packet) < 2) { // kernel activity if (rtpe_now.tv_sec - atomic64_get_na(&ps->last_packet) < 2) hlp->user_kernel_streams++; // user activity else hlp->kernel_streams++; } else if (rtpe_now.tv_sec - atomic64_get_na(&ps->last_packet) < 2) hlp->user_streams++; // user activity } bool active_media = (rtpe_now.tv_sec - packet_stream_last_packet(ps) < 1); if (active_media) CALL_CLEAR(sfd->call, FOREIGN_MEDIA); for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_in); u++) { struct ssrc_ctx *ctx = ps->ssrc_in[u]; if (!ctx) break; if (rtpe_now.tv_sec - atomic64_get_na(&ctx->stats->last_packet) < 2) payload_tracker_add(&ctx->tracker, atomic_get_na(&ctx->stats->last_pt)); } for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_out); u++) { struct ssrc_ctx *ctx = ps->ssrc_out[u]; if (!ctx) break; if (rtpe_now.tv_sec - atomic64_get_na(&ctx->stats->last_packet) < 2) payload_tracker_add(&ctx->tracker, atomic_get_na(&ctx->stats->last_pt)); } no_sfd: if (good) goto next; check = atomic_get_na(&rtpe_config.timeout); tmp_t_reason = TIMEOUT; if (!MEDIA_ISSET(ps->media, RECV) || !sfd) { check = atomic_get_na(&rtpe_config.silent_timeout); tmp_t_reason = SILENT_TIMEOUT; } else if (!PS_ISSET(ps, FILLED)) { check = atomic_get_na(&rtpe_config.offer_timeout); tmp_t_reason = OFFER_TIMEOUT; } if (timestamp > rtpe_now.tv_sec || rtpe_now.tv_sec - timestamp < check) good = true; next: ; } for (__auto_type it = c->medias.head; it; it = it->next) { struct call_media *media = it->data; if (media->protocol && media->protocol->srtp) has_srtp = true; if (rtpe_config.measure_rtp) ssrc_collect_metrics(media); if (MEDIA_ISSET(media, TRANSCODING)) hlp->transcoded_media++; } if (good) { if (IS_FOREIGN_CALL(c)) goto out; // update every 5 minutes if (has_srtp && rtpe_now.tv_sec - atomic64_get_na(&c->last_redis_update) > 60*5) do_update = true; goto out; } if (c->ml_deleted) goto out; for (__auto_type it = c->monologues.head; it; it = it->next) { ml = it->data; gettimeofday(&(ml->terminated),NULL); ml->term_reason = tmp_t_reason; } ilog(LOG_INFO, "Closing call due to timeout"); hlp->del_timeout = g_slist_prepend(hlp->del_timeout, obj_get(c)); goto out; delete: hlp->del_scheduled = g_slist_prepend(hlp->del_scheduled, obj_get(c)); goto out; out: rwlock_unlock_r(&c->master_lock); if (do_update) redis_update_onekey(c, rtpe_redis_write); log_info_pop(); } void xmlrpc_kill_calls(void *p) { struct xmlrpc_helper *xh = p; xmlrpc_env e; xmlrpc_client *c; xmlrpc_value *r; pid_t pid; sigset_t ss; int i = 0; int status; str *tag, *tag2 = NULL, *tag3 = NULL; const char *url; int els_per_ent = 2; if (xh->fmt == XF_KAMAILIO) els_per_ent = 4; while (xh->strings.length >= els_per_ent) { usleep(10000); url = xh->strings.head->data; tag = xh->strings.head->next->data; if (xh->fmt == XF_KAMAILIO) { tag2 = xh->strings.head->next->next->data; tag3 = xh->strings.head->next->next->next->data; } ilog(LOG_INFO, "Forking child to close call with tag " STR_FORMAT_M " via XMLRPC call to %s", STR_FMT_M(tag), url); pid = fork(); if (pid) { retry: pid = waitpid(pid, &status, 0); if ((pid > 0 && WIFEXITED(status) && WEXITSTATUS(status) == 0) || i >= 3) { for (int j = 0; j < els_per_ent; j++) free(g_queue_pop_head(&xh->strings)); i = 0; } else { if (pid == -1 && errno == EINTR) goto retry; ilog(LOG_INFO, "XMLRPC child exited with status %i", status); i++; } continue; } /* child process */ alarm(1); /* syslog functions contain a lock, which may be locked at this point and can't be unlocked */ rlim(RLIMIT_CORE, 0); sigemptyset(&ss); sigprocmask(SIG_SETMASK, &ss, NULL); closelog(); for (i = 0; i < 100; i++) { if (i == 2 && rtpe_config.common.log_stderr) continue; close(i); } if (!rtpe_config.common.log_stderr) { openlog("rtpengine/child", LOG_PID | LOG_NDELAY, LOG_DAEMON); } ilog(LOG_INFO, "Initiating XMLRPC call for tag " STR_FORMAT_M "", STR_FMT_M(tag)); alarm(5); xmlrpc_env_init(&e); xmlrpc_client_setup_global_const(&e); xmlrpc_client_create(&e, XMLRPC_CLIENT_NO_FLAGS, "ngcp-rtpengine", RTPENGINE_VERSION, NULL, 0, &c); if (e.fault_occurred) goto fault; r = NULL; switch (xh->fmt) { case XF_SEMS: xmlrpc_client_call2f(&e, c, url, "di", &r, "(ssss)", "sbc", "postControlCmd", tag->s, "teardown"); break; case XF_CALLID: xmlrpc_client_call2f(&e, c, url, "teardown", &r, "(s)", tag->s); break; case XF_KAMAILIO: xmlrpc_client_call2f(&e, c, url, "dlg.terminate_dlg", &r, "(sss)", tag->s, tag2->s, tag3->s); break; } if (r) xmlrpc_DECREF(r); if (e.fault_occurred) { if (strcasestr(e.fault_string, "dialog not found")) ; else goto fault; } xmlrpc_client_destroy(c); for (int j = 0; j < els_per_ent; j++) free(g_queue_pop_head(&xh->strings)); xmlrpc_env_clean(&e); _exit(0); fault: ilog(LOG_WARNING, "XMLRPC fault occurred: %s", e.fault_string); _exit(1); } g_slice_free1(sizeof(*xh), xh); } void kill_calls_timer(GSList *list, const char *url) { call_t *ca; struct call_monologue *cm; char *url_prefix = NULL, *url_suffix = NULL; struct xmlrpc_helper *xh = NULL; char url_buf[128]; if (!list) return; /* if url is NULL, it's the scheduled deletions, otherwise it's the timeouts */ if (url) { xh = g_slice_alloc(sizeof(*xh)); url_prefix = NULL; url_suffix = strstr(url, "%%"); if (url_suffix) { url_prefix = strndup(url, url_suffix - url); url_suffix = strdup(url_suffix + 2); } else url_suffix = strdup(url); g_queue_init(&xh->strings); xh->fmt = rtpe_config.fmt; } while (list) { GHashTable *dup_tags = NULL; ca = list->data; log_info_call(ca); if (!url) goto destroy; if (rtpe_config.fmt == XF_KAMAILIO) dup_tags = g_hash_table_new((GHashFunc) str_hash, (GEqualFunc) str_equal); rwlock_lock_r(&ca->master_lock); const sockaddr_t *cb_addr; if (ca->xmlrpc_callback.family) cb_addr = &ca->xmlrpc_callback; else cb_addr = &ca->created_from_addr; if (url_prefix) { snprintf(url_buf, sizeof(url_buf), "%s%s%s", url_prefix, sockaddr_print_p_buf(cb_addr), url_suffix); } else snprintf(url_buf, sizeof(url_buf), "%s", url_suffix); switch (rtpe_config.fmt) { case XF_SEMS: for (__auto_type csl = ca->monologues.head; csl; csl = csl->next) { cm = csl->data; if (!cm->tag.s || !cm->tag.len) continue; g_queue_push_tail(&xh->strings, strdup(url_buf)); g_queue_push_tail(&xh->strings, str_dup(&cm->tag)); } break; case XF_CALLID: g_queue_push_tail(&xh->strings, strdup(url_buf)); g_queue_push_tail(&xh->strings, str_dup(&ca->callid)); break; case XF_KAMAILIO: for (__auto_type csl = ca->monologues.head; csl; csl = csl->next) { cm = csl->data; if (!cm->tag.s || !cm->tag.len) continue; for (unsigned int i = 0; i < cm->medias->len; i++) { struct call_media *media = cm->medias->pdata[i]; if (!media) continue; for (__auto_type l = media->media_subscribers.head; l; l = l->next) { struct media_subscription * ms = l->data; struct call_monologue * sub_ml = ms->monologue; if (!sub_ml->tag.s || !sub_ml->tag.len) continue; str *from_tag = g_hash_table_lookup(dup_tags, &sub_ml->tag); if (from_tag && !str_cmp_str(from_tag, &cm->tag)) continue; from_tag = str_dup(&cm->tag); str *to_tag = str_dup(&sub_ml->tag); g_queue_push_tail(&xh->strings, strdup(url_buf)); g_queue_push_tail(&xh->strings, str_dup(&ca->callid)); g_queue_push_tail(&xh->strings, from_tag); g_queue_push_tail(&xh->strings, to_tag); g_hash_table_insert(dup_tags, from_tag, to_tag); } } } break; } rwlock_unlock_r(&ca->master_lock); destroy: call_destroy(ca); obj_put(ca); list = g_slist_delete_link(list, list); log_info_pop(); if (dup_tags) g_hash_table_destroy(dup_tags); } if (xh) thread_create_detach_prio(xmlrpc_kill_calls, xh, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "XMLRPC"); if (url_prefix) free(url_prefix); if (url_suffix) free(url_suffix); } enum thread_looper_action call_timer(void) { struct iterator_helper hlp; ZERO(hlp); ITERATE_CALL_LIST_START(CALL_ITERATOR_TIMER, c); call_timer_iterator(c, &hlp); ITERATE_CALL_LIST_NEXT_END(c); /* stats derived while iterating calls */ RTPE_GAUGE_SET(transcoded_media, hlp.transcoded_media); /* TODO: move out from here? */ RTPE_GAUGE_SET(userspace_streams, hlp.user_streams); RTPE_GAUGE_SET(kernel_only_streams, hlp.kernel_streams); RTPE_GAUGE_SET(kernel_user_streams, hlp.user_kernel_streams); kill_calls_timer(hlp.del_scheduled, NULL); kill_calls_timer(hlp.del_timeout, rtpe_config.b2b_url); /* add thread scope (local) sockets to the global list, in order to release them later */ append_thread_lpr_to_glob_lpr(); return TLA_CONTINUE; } int call_init(void) { rtpe_callhash = rtpe_calls_ht_new(); if (!t_hash_table_is_set(rtpe_callhash)) return -1; rwlock_init(&rtpe_callhash_lock); for (int i = 0; i < NUM_CALL_ITERATORS; i++) mutex_init(&rtpe_call_iterators[i].lock); if (mqtt_publish_scope() != MPS_NONE) mqtt_timer_start(&global_mqtt_timer, NULL, NULL); return 0; } static void __call_iterator_remove(call_t *c) { for (unsigned int i = 0; i < NUM_CALL_ITERATORS; i++) { call_t *prev_call, *next_call; while (1) { mutex_lock(&rtpe_call_iterators[i].lock); // lock this entry mutex_lock(&c->iterator[i].next_lock); mutex_lock(&c->iterator[i].prev_lock); // try lock adjacent entries prev_call = c->iterator[i].link.prev ? c->iterator[i].link.prev->data : NULL; next_call = c->iterator[i].link.next ? c->iterator[i].link.next->data : NULL; if (prev_call) { if (mutex_trylock(&prev_call->iterator[i].next_lock)) { mutex_unlock(&c->iterator[i].next_lock); mutex_unlock(&c->iterator[i].prev_lock); mutex_unlock(&rtpe_call_iterators[i].lock); continue; // try again } } if (next_call) { if (mutex_trylock(&next_call->iterator[i].prev_lock)) { if (prev_call) mutex_unlock(&prev_call->iterator[i].next_lock); mutex_unlock(&c->iterator[i].next_lock); mutex_unlock(&c->iterator[i].prev_lock); mutex_unlock(&rtpe_call_iterators[i].lock); continue; // try again } } break; // we can remove now } if (c->iterator[i].link.data) obj_put(c->iterator[i].link.data); rtpe_call_iterators[i].first = t_list_remove_link(rtpe_call_iterators[i].first, &c->iterator[i].link); ZERO(c->iterator[i].link); if (prev_call) mutex_unlock(&prev_call->iterator[i].next_lock); if (next_call) mutex_unlock(&next_call->iterator[i].prev_lock); mutex_unlock(&c->iterator[i].next_lock); mutex_unlock(&c->iterator[i].prev_lock); mutex_unlock(&rtpe_call_iterators[i].lock); } } void call_free(void) { mqtt_timer_stop(&global_mqtt_timer); rtpe_calls_ht_iter iter; t_hash_table_iter_init(&iter, rtpe_callhash); call_t *c; while (t_hash_table_iter_next(&iter, NULL, &c)) { __call_iterator_remove(c); __call_cleanup(c); obj_put(c); } t_hash_table_destroy(rtpe_callhash); } struct call_media *call_media_new(call_t *call) { struct call_media *med; med = uid_slice_alloc0(med, &call->medias.q); med->call = call; codec_store_init(&med->codecs, med); med->media_subscribers_ht = subscription_ht_new(); med->media_subscriptions_ht = subscription_ht_new(); mutex_init(&med->dtmf_lock); med->sdp_attr_print = sdp_insert_media_attributes; med->bandwidth_as = med->bandwidth_rr = med->bandwidth_rs = -1; return med; } __attribute__((nonnull(1, 2, 3))) static struct call_media *__get_media(struct call_monologue *ml, const struct stream_params *sp, const sdp_ng_flags *flags, unsigned int index) { struct call_media *med; call_t *call; if (sp->media_id.len) { // in this case, the media sections can be out of order and the media ID // string is used to determine which media section to operate on. med = g_hash_table_lookup(ml->media_ids, &sp->media_id); if (med) { if (med->type_id == sp->type_id) return med; ilogs(ice, LOG_WARN, "Ignoring media ID '" STR_FORMAT "' as media type doesn't match. " "Was media ID changed?", STR_FMT(&sp->media_id)); med = NULL; } if (flags->trickle_ice) ilogs(ice, LOG_ERR, "Received trickle ICE SDP fragment with unknown media ID '" STR_FORMAT "'", STR_FMT(&sp->media_id)); } unsigned int want_index = index; if (want_index == 0) want_index = sp->index; assert(want_index > 0); unsigned int arr_index = want_index - 1; // check if we have an existing media struct. resize array if needed if (arr_index >= ml->medias->len) t_ptr_array_set_size(ml->medias, want_index); if (ml->medias->pdata[arr_index]) { __C_DBG("found existing call_media for stream #%u", want_index); return ml->medias->pdata[arr_index]; } __C_DBG("allocating new call_media for stream #%u", want_index); call = ml->call; med = call_media_new(call); med->monologue = ml; med->index = want_index; call_str_cpy(ml->call, &med->type, &sp->type); med->type_id = sp->type_id; ml->medias->pdata[arr_index] = med; return med; } static int __media_want_interfaces(struct call_media *media) { unsigned int want_interfaces = media->logical_intf->list.length; if (rtpe_config.save_interface_ports || !MEDIA_ISSET(media, ICE)) want_interfaces = 1; return want_interfaces; } static void __endpoint_map_truncate(struct endpoint_map *em, unsigned int num_intfs) { while (em->intf_sfds.length > num_intfs) { struct sfd_intf_list *il = t_queue_pop_tail(&em->intf_sfds); free_sfd_intf_list(il); } } static struct endpoint_map *__hunt_endpoint_map(struct call_media *media, unsigned int num_ports, const struct endpoint *ep, const sdp_ng_flags *flags, bool always_reuse, unsigned int want_interfaces) { for (__auto_type l = media->endpoint_maps.tail; l; l = l->prev) { struct endpoint_map *em = l->data; if (em->logical_intf != media->logical_intf) continue; // any of our sockets shut down? for (__auto_type k = em->intf_sfds.head; k; k = k->next) { struct sfd_intf_list *il = k->data; for (__auto_type j = il->list.head; j; j = j->next) { stream_fd *sfd = j->data; if (sfd->socket.fd == -1) return NULL; } } if ((em->wildcard || always_reuse) && em->num_ports >= num_ports && em->intf_sfds.length >= want_interfaces) { __C_DBG("found a wildcard endpoint map%s", ep ? " and filling it in" : ""); if (ep) { em->endpoint = *ep; em->wildcard = 0; } __endpoint_map_truncate(em, want_interfaces); return em; } if (!ep) /* creating wildcard map */ break; if (is_addr_unspecified(&ep->address) || is_addr_unspecified(&em->endpoint.address)) { /* handle zero endpoint address: only compare ports */ if (ep->port != em->endpoint.port) continue; } else if (memcmp(&em->endpoint, ep, sizeof(*ep))) continue; if (em->num_ports >= num_ports && em->intf_sfds.length >= want_interfaces) { if (is_addr_unspecified(&em->endpoint.address)) em->endpoint.address = ep->address; __endpoint_map_truncate(em, want_interfaces); return em; } /* endpoint matches, but not enough ports. flush existing ports * and allocate a new set. */ __C_DBG("endpoint matches, doesn't have enough ports"); t_queue_clear_full(&em->intf_sfds, free_sfd_intf_list); return em; } return NULL; } static struct endpoint_map *__latch_endpoint_map(struct call_media *media) { // simply look for the endpoint map matching the current port if (!media->streams.length) return NULL; struct packet_stream *first_ps = media->streams.head->data; if (!first_ps->sfds.length) return NULL; stream_fd *matcher = first_ps->sfds.head->data; for (__auto_type l = media->endpoint_maps.tail; l; l = l->prev) { struct endpoint_map *em = l->data; if (!em->intf_sfds.length) continue; struct sfd_intf_list *em_il = em->intf_sfds.head->data; if (!em_il->list.length) continue; stream_fd *first = em_il->list.head->data; if (first == matcher) return em; } return NULL; } static struct endpoint_map *__get_endpoint_map(struct call_media *media, unsigned int num_ports, const struct endpoint *ep, const sdp_ng_flags *flags, bool always_reuse) { stream_fd *sfd; socket_intf_list_q intf_sockets = TYPED_GQUEUE_INIT; unsigned int want_interfaces = __media_want_interfaces(media); bool port_latching = false; if (flags && flags->port_latching) port_latching = true; else if (MEDIA_ISSET(media, ICE) && (!flags || !flags->no_port_latching)) port_latching = true; else if (!MEDIA_ISSET(media, RECV) && (!flags || !flags->no_port_latching)) port_latching = true; struct endpoint_map *em = NULL; if (port_latching) em = __latch_endpoint_map(media); if (!em) em = __hunt_endpoint_map(media, num_ports, ep, flags, always_reuse, want_interfaces); if (em) { if (em->intf_sfds.length) return em; // fall through } else { __C_DBG("allocating new %sendpoint map", ep ? "" : "wildcard "); em = uid_slice_alloc0(em, &media->call->endpoint_maps.q); if (ep) em->endpoint = *ep; else em->wildcard = 1; em->logical_intf = media->logical_intf; em->num_ports = num_ports; t_queue_init(&em->intf_sfds); t_queue_push_tail(&media->endpoint_maps, em); } if (num_ports > 16) return NULL; if (get_consecutive_ports(&intf_sockets, num_ports, want_interfaces, media)) return NULL; __C_DBG("allocating stream_fds for %u ports", num_ports); struct socket_intf_list *il; while ((il = t_queue_pop_head(&intf_sockets))) { if (il->list.length != num_ports) goto next_il; struct sfd_intf_list *em_il = g_slice_alloc0(sizeof(*em_il)); em_il->local_intf = il->local_intf; t_queue_push_tail(&em->intf_sfds, em_il); socket_t *sock; while ((sock = t_queue_pop_head(&il->list))) { set_tos(sock, media->call->tos); if (media->call->cpu_affinity >= 0) { if (socket_cpu_affinity(sock, media->call->cpu_affinity)) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Failed to set socket CPU " "affinity: %s", strerror(errno)); } sfd = stream_fd_new(sock, media->call, il->local_intf); t_queue_push_tail(&em_il->list, sfd); // not referenced } next_il: free_socket_intf_list(il); } return em; } static void __assign_stream_fds(struct call_media *media, sfd_intf_list_q *intf_sfds) { int reset_ice = 0; for (__auto_type k = media->streams.head; k; k = k->next) { struct packet_stream *ps = k->data; // use opaque pointer to detect changes void *old_selected_sfd = ps->selected_sfd; t_queue_clear(&ps->sfds); bool sfd_found = false; stream_fd *intf_sfd = NULL; for (__auto_type l = intf_sfds->head; l; l = l->next) { struct sfd_intf_list *il = l->data; stream_fd *sfd = t_queue_peek_nth(&il->list, ps->component - 1); if (!sfd) sfd = ps->selected_sfd; if (!sfd) { // create a dummy sfd. needed to hold RTCP crypto context when // RTCP-mux is in use socket_t *sock = g_slice_alloc(sizeof(*sock)); dummy_socket(sock, &il->local_intf->spec->local_address.addr); sfd = stream_fd_new(sock, media->call, il->local_intf); } sfd->stream = ps; t_queue_push_tail(&ps->sfds, sfd); if (ps->selected_sfd == sfd) sfd_found = true; if (ps->selected_sfd && sfd->local_intf == ps->selected_sfd->local_intf) intf_sfd = sfd; } if (!ps->selected_sfd || !sfd_found) { if (intf_sfd) ps->selected_sfd = intf_sfd; else ps->selected_sfd = t_queue_peek_nth(&ps->sfds, 0); } if (old_selected_sfd && ps->selected_sfd && old_selected_sfd != ps->selected_sfd) reset_ice = 1; } if (reset_ice && media->ice_agent) ice_restart(media->ice_agent); } static int __wildcard_endpoint_map(struct call_media *media, unsigned int num_ports) { struct endpoint_map *em; em = __get_endpoint_map(media, num_ports, NULL, NULL, false); if (!em) return -1; __assign_stream_fds(media, &em->intf_sfds); return 0; } static void __rtp_stats_free(void *p) { bufferpool_unref(p); } struct packet_stream *__packet_stream_new(call_t *call) { struct packet_stream *stream; stream = uid_slice_alloc0(stream, &call->streams.q); mutex_init(&stream->in_lock); mutex_init(&stream->out_lock); stream->call = call; atomic64_set_na(&stream->last_packet, rtpe_now.tv_sec); stream->rtp_stats = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, __rtp_stats_free); recording_init_stream(stream); stream->send_timer = send_timer_new(stream); stream->stats_in = bufferpool_alloc0(shm_bufferpool, sizeof(*stream->stats_in)); stream->stats_out = bufferpool_alloc0(shm_bufferpool, sizeof(*stream->stats_out)); if (rtpe_config.jb_length && !CALL_ISSET(call, DISABLE_JB)) stream->jb = jitter_buffer_new(call); return stream; } static int __num_media_streams(struct call_media *media, unsigned int num_ports) { struct packet_stream *stream; call_t *call = media->call; int ret = 0; // we need at least two, one for RTP and one for RTCP as they hold the crypto context if (num_ports < 2) num_ports = 2; __C_DBG("allocating %i new packet_streams", num_ports - media->streams.length); while (media->streams.length < num_ports) { stream = __packet_stream_new(call); stream->media = media; t_queue_push_tail(&media->streams, stream); stream->component = media->streams.length; ret++; } t_queue_truncate(&media->streams, num_ports); return ret; } __attribute__((nonnull(1, 2, 4))) static void __fill_stream(struct packet_stream *ps, const struct endpoint *epp, unsigned int port_off, const struct stream_params *sp, const sdp_ng_flags *flags) { struct endpoint ep; struct call_media *media = ps->media; atomic64_set_na(&ps->last_packet, rtpe_now.tv_sec); ep = *epp; ep.port += port_off; /* if the endpoint hasn't changed, we do nothing */ if (PS_ISSET(ps, FILLED) && !memcmp(&ps->advertised_endpoint, &ep, sizeof(ep))) return; ps->advertised_endpoint = ep; /* ignore endpoint changes if we're ICE-enabled and ICE data hasn't changed */ if (PS_ISSET(ps, FILLED) && MEDIA_ISSET(media, ICE) && media->ice_agent && !ice_ufrag_cmp(media->ice_agent, &sp->ice_ufrag)) return; if (!MEDIA_ISSET(media, ICE)) { if (PS_ISSET(ps, FILLED) && ps->selected_sfd && ep.address.family != ps->selected_sfd->socket.family) { if (ep.address.family && !is_trickle_ice_address(&ep)) ilog(LOG_WARN, "Ignoring updated remote endpoint %s%s%s as the local " "socket is %s", FMT_M(endpoint_print_buf(&ep)), ps->selected_sfd->socket.family->name); return; } ps->endpoint = ep; if (PS_ISSET(ps, FILLED) && !MEDIA_ISSET(media, DTLS)) { /* we reset crypto params whenever the endpoint changes */ call_stream_crypto_reset(ps); dtls_shutdown(ps); } } else { // ICE if (!PS_ISSET(ps, FILLED)) ps->endpoint = ep; } /* endpont-learning setup */ if (flags) ps->el_flags = flags->el_option; if (ps->selected_sfd) ilog(LOG_DEBUG, "set FILLED flag for stream, local %s remote %s%s%s", endpoint_print_buf(&ps->selected_sfd->socket.local), FMT_M(endpoint_print_buf(&ps->endpoint))); else ilog(LOG_DEBUG, "set FILLED flag for stream, remote %s%s%s", FMT_M(endpoint_print_buf(&ps->endpoint))); PS_SET(ps, FILLED); if (flags && flags->pierce_nat) PS_SET(ps, PIERCE_NAT); if (flags && flags->nat_wait) PS_SET(ps, NAT_WAIT); } void call_stream_crypto_reset(struct packet_stream *ps) { ilog(LOG_DEBUG, "Resetting crypto context"); crypto_reset(&ps->crypto); if (PS_ISSET(ps, RTP)) { mutex_lock(&ps->in_lock); for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_in); u++) { if (!ps->ssrc_in[u]) // end of list break; atomic_set_na(&ps->ssrc_in[u]->stats->ext_seq, 0); } mutex_unlock(&ps->in_lock); mutex_lock(&ps->out_lock); for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_out); u++) { if (!ps->ssrc_out[u]) // end of list break; atomic_set_na(&ps->ssrc_out[u]->stats->ext_seq, 0); } mutex_unlock(&ps->out_lock); } } /* called with call locked in R or W, but ps not locked */ enum call_stream_state call_stream_state_machine(struct packet_stream *ps) { struct call_media *media = ps->media; if (!ps->selected_sfd || !ps->sfds.length) return CSS_SHUTDOWN; if (MEDIA_ISSET(media, PASSTHRU)) return CSS_RUNNING; enum call_stream_state ret = CSS_RUNNING; if (MEDIA_ISSET(media, ICE) && !ice_has_finished(media)) { if (!MEDIA_ISSET(media, DTLS)) return CSS_ICE; /* handled by ICE timer */ if (!ice_is_usable(media)) return CSS_ICE; /* handled by ICE timer */ // special case: ICE was able to communicate and DTLS is in use. // we can now start DTLS if necessary. ret = CSS_ICE; } if (MEDIA_ISSET(media, DTLS)) { mutex_lock(&ps->in_lock); struct dtls_connection *d = dtls_ptr(ps->selected_sfd); if (d && d->init && !d->connected) { int dret = dtls(ps->selected_sfd, NULL, NULL); mutex_unlock(&ps->in_lock); if (dret == 1) call_media_unkernelize(media, "DTLS connected"); return CSS_DTLS; } mutex_unlock(&ps->in_lock); } if (PS_ISSET(ps, PIERCE_NAT) && PS_ISSET(ps, FILLED) && !PS_ISSET(ps, CONFIRMED)) { for (__auto_type l = ps->sfds.head; l; l = l->next) { static const str fake_rtp = STR_CONST_INIT("\x80\x7f\xff\xff\x00\x00\x00\x00" "\x00\x00\x00\x00"); stream_fd *sfd = l->data; if (sfd->socket.fd == -1 || ps->endpoint.address.family == NULL) continue; socket_sendto(&sfd->socket, fake_rtp.s, fake_rtp.len, &ps->endpoint); atomic64_inc_na(&ps->stats_out->packets); atomic64_add_na(&ps->stats_out->bytes, fake_rtp.len); } ret = CSS_PIERCE_NAT; } return ret; } void call_media_state_machine(struct call_media *m) { for (__auto_type l = m->streams.head; l; l = l->next) call_stream_state_machine(l->data); } int __init_stream(struct packet_stream *ps) { struct call_media *media = ps->media; call_t *call = ps->call; int dtls_active = -1; g_autoptr(char) paramsbuf = NULL; struct dtls_connection *dtls_conn = NULL; if (MEDIA_ISSET(media, DTLS)) { dtls_conn = dtls_ptr(ps->selected_sfd); if (dtls_conn) dtls_active = dtls_is_active(dtls_conn); } else dtls_shutdown(ps); if (MEDIA_ISSET(media, SDES) && dtls_active == -1) { for (__auto_type l = ps->sfds.head; l; l = l->next) { stream_fd *sfd = l->data; struct crypto_params_sdes *cps = media->sdes_in.head ? media->sdes_in.head->data : NULL; crypto_init(&sfd->crypto, cps ? &cps->params : NULL); ilogs(crypto, LOG_DEBUG, "[%s] Initialized incoming SRTP with SDES crypto params: %s%s%s", endpoint_print_buf(&sfd->socket.local), FMT_M(crypto_params_sdes_dump(cps, ¶msbuf))); } struct crypto_params_sdes *cps = media->sdes_out.head ? media->sdes_out.head->data : NULL; crypto_init(&ps->crypto, cps ? &cps->params : NULL); ilogs(crypto, LOG_DEBUG, "[%i] Initialized outgoing SRTP with SDES crypto params: %s%s%s", ps->component, FMT_M(crypto_params_sdes_dump(cps, ¶msbuf))); } if (MEDIA_ISSET(media, DTLS) && !PS_ISSET(ps, FALLBACK_RTCP)) { // we try to retain our role if possible, but must handle a role switch if ((dtls_active && !MEDIA_ISSET(media, SETUP_ACTIVE)) || (!dtls_active && !MEDIA_ISSET(media, SETUP_PASSIVE))) dtls_active = -1; if (dtls_active == -1) dtls_active = (PS_ISSET(ps, FILLED) && MEDIA_ISSET(media, SETUP_ACTIVE)); dtls_connection_init(&ps->ice_dtls, ps, dtls_active, call->dtls_cert); for (__auto_type l = ps->sfds.head; l; l = l->next) { stream_fd *sfd = l->data; dtls_connection_init(&sfd->dtls, ps, dtls_active, call->dtls_cert); } if (!PS_ISSET(ps, FINGERPRINT_VERIFIED) && media->fingerprint.hash_func && media->fingerprint.digest_len && ps->dtls_cert) { if (dtls_verify_cert(ps)) return -1; } call_stream_state_machine(ps); } return 0; } void __rtp_stats_update(GHashTable *dst, struct codec_store *cs) { struct rtp_stats *rs; rtp_payload_type *pt; codecs_ht src = cs->codecs; /* "src" is a call_media->codecs table, while "dst" is a * packet_stream->rtp_stats table */ codecs_ht_iter iter; t_hash_table_iter_init(&iter, src); while (t_hash_table_iter_next(&iter, NULL, &pt)) { rs = g_hash_table_lookup(dst, GINT_TO_POINTER(pt->payload_type)); if (rs) continue; rs = bufferpool_alloc0(shm_bufferpool, sizeof(*rs)); rs->payload_type = pt->payload_type; rs->clock_rate = pt->clock_rate; g_hash_table_insert(dst, GINT_TO_POINTER(rs->payload_type), rs); } /* we leave previously added but now removed payload types in place */ } void free_sink_handler(struct sink_handler *sh) { g_slice_free1(sizeof(*sh), sh); } /** * A transfer of flags from the subscription to the sink handlers (sink_handler) is done * using the __init_streams() through __add_sink_handler(). */ void __add_sink_handler(sink_handler_q *q, struct packet_stream *sink, const struct sink_attrs *attrs) { struct sink_handler *sh = g_slice_alloc0(sizeof(*sh)); sh->sink = sink; sh->kernel_output_idx = -1; if (attrs) sh->attrs = *attrs; t_queue_push_tail(q, sh); } // called once before calling __init_streams once for each sink static void __reset_streams(struct call_media *media) { for (__auto_type l = media->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; t_queue_clear_full(&ps->rtp_sinks, free_sink_handler); t_queue_clear_full(&ps->rtcp_sinks, free_sink_handler); t_queue_clear_full(&ps->rtp_mirrors, free_sink_handler); } } /** Called once on media A for each sink media B. * B can be NULL. * attrs can be NULL. * TODO: this function seems to do two things - stream init (with B NULL) and sink init - split up? */ __attribute__((nonnull(1))) static int __init_streams(struct call_media *A, struct call_media *B, const struct stream_params *sp, const sdp_ng_flags *flags, const struct sink_attrs *attrs) { struct packet_stream *a, *ax, *b; unsigned int port_off = 0; __auto_type la = A->streams.head; __auto_type lb = B ? B->streams.head : NULL; if (B) __C_DBG("Sink init media %u -> %u", A->index, B->index); else __C_DBG("Stream init media %u", A->index); while (la) { a = la->data; b = lb ? lb->data : NULL; /* RTP */ // reflect media - pretend reflection also for blackhole, as otherwise // we get SSRC flip-flops on the opposite side // XXX still necessary for blackhole? if (attrs && attrs->egress && b) __add_sink_handler(&a->rtp_mirrors, b, attrs); else if (MEDIA_ISSET(A, ECHO) || MEDIA_ISSET(A, BLACKHOLE)) __add_sink_handler(&a->rtp_sinks, a, attrs); else if (b && MEDIA_ISSET(B, SEND)) __add_sink_handler(&a->rtp_sinks, b, attrs); PS_SET(a, RTP); /* XXX technically not correct, could be udptl too */ __rtp_stats_update(a->rtp_stats, &A->codecs); if (sp) { __fill_stream(a, &sp->rtp_endpoint, port_off, sp, flags); bf_copy_same(&a->ps_flags, &sp->sp_flags, SHARED_FLAG_STRICT_SOURCE | SHARED_FLAG_MEDIA_HANDOVER); } bf_copy_same(&a->ps_flags, &A->media_flags, SHARED_FLAG_ICE); if (b) { PS_CLEAR(b, ZERO_ADDR); if (is_addr_unspecified(&a->advertised_endpoint.address) && !(is_trickle_ice_address(&a->advertised_endpoint) && MEDIA_ISSET(A, TRICKLE_ICE)) && !(flags && flags->replace_zero_address)) PS_SET(b, ZERO_ADDR); } if (__init_stream(a)) return -1; /* RTCP */ if (B && lb && b && !MEDIA_ISSET(B, RTCP_MUX)) { lb = lb->next; assert(lb != NULL); b = lb->data; } if (!MEDIA_ISSET(A, RTCP_MUX)) PS_CLEAR(a, RTCP); else { if (MEDIA_ISSET(A, ECHO) || MEDIA_ISSET(A, BLACKHOLE)) { /* RTCP sink handler added below */ } else if (b) __add_sink_handler(&a->rtcp_sinks, b, attrs); PS_SET(a, RTCP); PS_CLEAR(a, IMPLICIT_RTCP); } ax = a; /* if muxing, this is the fallback RTCP port. it also contains the RTCP * crypto context */ la = la->next; assert(la != NULL); a = la->data; if (attrs && attrs->egress) goto no_rtcp; if (MEDIA_ISSET(A, ECHO) || MEDIA_ISSET(A, BLACKHOLE)) { __add_sink_handler(&a->rtcp_sinks, a, attrs); if (MEDIA_ISSET(A, RTCP_MUX)) __add_sink_handler(&ax->rtcp_sinks, a, attrs); } else if (b) __add_sink_handler(&a->rtcp_sinks, b, attrs); PS_CLEAR(a, RTP); PS_SET(a, RTCP); a->rtcp_sibling = NULL; bf_copy(&a->ps_flags, PS_FLAG_FALLBACK_RTCP, &ax->ps_flags, PS_FLAG_RTCP); ax->rtcp_sibling = a; if (sp) { if (!SP_ISSET(sp, IMPLICIT_RTCP)) { __fill_stream(a, &sp->rtcp_endpoint, port_off, sp, flags); PS_CLEAR(a, IMPLICIT_RTCP); } else { __fill_stream(a, &sp->rtp_endpoint, port_off + 1, sp, flags); PS_SET(a, IMPLICIT_RTCP); } bf_copy_same(&a->ps_flags, &sp->sp_flags, SHARED_FLAG_STRICT_SOURCE | SHARED_FLAG_MEDIA_HANDOVER); } bf_copy_same(&a->ps_flags, &A->media_flags, SHARED_FLAG_ICE); PS_CLEAR(a, ZERO_ADDR); if (b) { if (is_addr_unspecified(&b->advertised_endpoint.address) && !(is_trickle_ice_address(&b->advertised_endpoint) && MEDIA_ISSET(B, TRICKLE_ICE)) && !(flags && flags->replace_zero_address)) PS_SET(a, ZERO_ADDR); } if (__init_stream(a)) return -1; no_rtcp: recording_setup_stream(ax); // RTP recording_setup_stream(a); // RTCP la = la->next; lb = lb ? lb->next : NULL; port_off += 2; } return 0; } __attribute__((nonnull(1, 2, 3))) static void __ice_offer(const sdp_ng_flags *flags, struct call_media *this, struct call_media *other, bool ice_restart) { // the default is to pass through the offering client's choice if (!MEDIA_ISSET(this, INITIALIZED)) bf_copy_same(&this->media_flags, &other->media_flags, MEDIA_FLAG_ICE); // unless instructed not to if (flags->ice_option == ICE_REMOVE) MEDIA_CLEAR(this, ICE); else if (flags->ice_option != ICE_DEFAULT) MEDIA_SET(this, ICE); if (flags->ice_reject) MEDIA_CLEAR(other, ICE); if (flags->passthrough_on) { ilog(LOG_DEBUG, "enabling passthrough mode"); MEDIA_SET(this, PASSTHRU); MEDIA_SET(other, PASSTHRU); return; } if (flags->passthrough_off) { ilog(LOG_DEBUG, "disabling passthrough mode"); MEDIA_CLEAR(this, PASSTHRU); MEDIA_CLEAR(other, PASSTHRU); return; } if (flags->ice_option != ICE_FORCE && flags->ice_option != ICE_DEFAULT) { /* special case: if doing ICE on both sides and ice_force is not set, we cannot * be sure that media will pass through us, so we have to disable certain features */ if (MEDIA_ISSET(this, ICE) && MEDIA_ISSET(other, ICE)) { ilog(LOG_DEBUG, "enabling passthrough mode"); MEDIA_SET(this, PASSTHRU); MEDIA_SET(other, PASSTHRU); return; } // if this is an answer, may see our ICE offer being rejected. if the original offer // wasn't forcing ICE, then we're only acting as a passthrough and so we must disable // ICE on the remote side as well. we can use the presence of an ICE agent as a test // to see whether ICE was originally forced or not. if (flags->opmode == OP_ANSWER && !MEDIA_ISSET(other, ICE) && !this->ice_agent) { MEDIA_CLEAR(this, ICE); return; } } if (flags->opmode == OP_OFFER) { switch (flags->ice_lite_option) { case ICE_LITE_OFF: MEDIA_CLEAR(this, ICE_LITE_SELF); MEDIA_CLEAR(other, ICE_LITE_SELF); break; case ICE_LITE_FWD: MEDIA_SET(this, ICE_LITE_SELF); MEDIA_CLEAR(other, ICE_LITE_SELF); break; case ICE_LITE_BKW: MEDIA_CLEAR(this, ICE_LITE_SELF); MEDIA_SET(other, ICE_LITE_SELF); break; case ICE_LITE_BOTH: MEDIA_SET(this, ICE_LITE_SELF); MEDIA_SET(other, ICE_LITE_SELF); break; default: break; } if (flags->trickle_ice) MEDIA_SET(this, TRICKLE_ICE); } else if (flags->opmode == OP_REQUEST) { // leave source media (`other`) alone switch (flags->ice_lite_option) { case ICE_LITE_OFF: case ICE_LITE_BKW: MEDIA_CLEAR(this, ICE_LITE_SELF); break; case ICE_LITE_FWD: case ICE_LITE_BOTH: MEDIA_SET(this, ICE_LITE_SELF); break; default: break; } if (flags->trickle_ice) MEDIA_SET(this, TRICKLE_ICE); } /* determine roles (even if we don't actually do ICE) */ /* this = receiver, other = sender */ /* ICE_CONTROLLING is from our POV, the other ICE flags are from peer's POV */ if (MEDIA_ISSET(this, ICE_LITE_PEER) && !MEDIA_ISSET(this, ICE_LITE_SELF)) MEDIA_SET(this, ICE_CONTROLLING); else if (!MEDIA_ISSET(this, INITIALIZED) || ice_restart) { if (MEDIA_ISSET(this, ICE_LITE_SELF)) MEDIA_CLEAR(this, ICE_CONTROLLING); else if (flags->opmode == OP_OFFER || flags->opmode == OP_REQUEST) MEDIA_SET(this, ICE_CONTROLLING); else MEDIA_CLEAR(this, ICE_CONTROLLING); } if (flags->opmode == OP_OFFER) { /* roles are reversed for the other side */ if (MEDIA_ISSET(other, ICE_LITE_PEER) && !MEDIA_ISSET(other, ICE_LITE_SELF)) MEDIA_SET(other, ICE_CONTROLLING); else if (!MEDIA_ISSET(other, INITIALIZED) || ice_restart) { if (MEDIA_ISSET(other, ICE_LITE_SELF)) MEDIA_CLEAR(other, ICE_CONTROLLING); else if (flags->opmode == OP_OFFER) MEDIA_CLEAR(other, ICE_CONTROLLING); else MEDIA_SET(other, ICE_CONTROLLING); } } } static void __sdes_flags(struct crypto_params_sdes *cps, const sdp_ng_flags *flags) { if (!cps) return; if (flags->sdes_unencrypted_srtp && flags->opmode == OP_OFFER) cps->params.session_params.unencrypted_srtp = 1; else if (flags->sdes_encrypted_srtp) cps->params.session_params.unencrypted_srtp = 0; if (flags->sdes_unencrypted_srtcp && flags->opmode == OP_OFFER) cps->params.session_params.unencrypted_srtcp = 1; else if (flags->sdes_encrypted_srtcp) cps->params.session_params.unencrypted_srtcp = 0; if (flags->sdes_unauthenticated_srtp && flags->opmode == OP_OFFER) cps->params.session_params.unauthenticated_srtp = 1; else if (flags->sdes_authenticated_srtp) cps->params.session_params.unauthenticated_srtp = 0; } static bool reorder_sdes_preferences(sdes_q *sdes_in, const str_q *offered_order) { if (!sdes_in || !sdes_in->length || !offered_order || !offered_order->length) return false; // nothing to do ilog(LOG_DEBUG, "The crypto suites for the offerer may be re-ordered"); bool ret = false; sdes_list *insert_pos = sdes_in->head; // first preffered suite goes first in the list for (str_list *l = offered_order->head; l; l = l->next) { str * cs_name = l->data; // find matching suites in `sdes_in` after the current insert position and // move them up __auto_type elem = t_list_find_custom(insert_pos->next, cs_name, crypto_params_sdes_cmp); if (!elem) continue; // found a match: remove from list at current position and insert at // the insert position, then advance insert position __auto_type cps_found = elem->data; ilog(LOG_DEBUG, "Reordering suites for offerer, prioritising: %s (cps tag: %d)", cps_found->params.crypto_suite->name, cps_found->tag); t_queue_delete_link(sdes_in, elem); t_queue_insert_before(sdes_in, insert_pos, cps_found); insert_pos = insert_pos->next; ret = true; } return ret; } /** * Only generates SDES parameters for outgoing SDP, which is our media "out" direction. * `this` is the receiver of the message. * `other` is the sender and can be NULL. */ __attribute__((nonnull(1, 2))) static void __generate_crypto(const sdp_ng_flags *flags, struct call_media *this, struct call_media *other) { /* SDES options, which will be present in the outgoing offer */ sdes_q *cpq = &this->sdes_out; /* SDES options coming to us for processing */ sdes_q *cpq_in = &this->sdes_in; sdes_q *offered_cpq = other ? &other->sdes_in : NULL; /* requested order of crypto suites - generated offer */ const str_q *cpq_order = &flags->sdes_order; /* preferred crypto suites for the offerer - generated answer */ const str_q *offered_order = &flags->sdes_offerer_pref; bool is_offer = (flags->opmode == OP_OFFER || flags->opmode == OP_REQUEST); if (!this->protocol || !this->protocol->srtp || MEDIA_ISSET(this, PASSTHRU)) { crypto_params_sdes_queue_clear(cpq); // reorder received SDES suites towards offerer based on preference reorder_sdes_preferences(offered_cpq, offered_order); /* clear crypto for the this leg b/c we are in passthrough mode */ MEDIA_CLEAR(this, DTLS); MEDIA_CLEAR(this, SDES); MEDIA_CLEAR(this, SETUP_PASSIVE); MEDIA_CLEAR(this, SETUP_ACTIVE); if (other && (MEDIA_ISSET(this, PASSTHRU) || !other->protocol)) { /* clear crypto for the other leg as well b/c passthrough only * works if it is done for both legs */ MEDIA_CLEAR(other, DTLS); MEDIA_CLEAR(other, SDES); MEDIA_CLEAR(other, SETUP_PASSIVE); MEDIA_CLEAR(other, SETUP_ACTIVE); } return; } if (is_offer) { /* we always must offer actpass */ MEDIA_SET(this, SETUP_PASSIVE); MEDIA_SET(this, SETUP_ACTIVE); } else { if (flags->dtls_passive && MEDIA_ISSET(this, SETUP_PASSIVE)) MEDIA_CLEAR(this, SETUP_ACTIVE); /* if we can be active, we will, otherwise we'll be passive */ if (MEDIA_ISSET(this, SETUP_ACTIVE)) MEDIA_CLEAR(this, SETUP_PASSIVE); } if (is_offer) { // if neither is enabled yet... if (!MEDIA_ISSET2(this, DTLS, SDES)) { /* we offer both DTLS and SDES by default */ /* unless this is overridden by flags */ if (!flags->dtls_off) MEDIA_SET(this, DTLS); if (!flags->sdes_off) MEDIA_SET(this, SDES); else goto skip_sdes; } } else { /* if both SDES and DTLS are supported, we may use the flags to select one * over the other */ if (MEDIA_ARESET2(this, DTLS, SDES) && flags->dtls_off) { MEDIA_CLEAR(this, DTLS); this->fingerprint.hash_func = NULL; } /* flags->sdes_off is ignored as we prefer DTLS by default */ /* if we're talking to someone understanding DTLS, then skip the SDES stuff */ if (MEDIA_ISSET(this, DTLS)) { MEDIA_CLEAR(this, SDES); goto skip_sdes; } } /* SDES parameters below */ /* OP_OFFER */ if (is_offer) { /* generate full set of params * re-create the entire list - steal for later flushing */ sdes_q cpq_orig = *cpq; /* re-initialize it, in order to fill it out later, taking into account * all the provided SDES flags and parameters */ t_queue_init(cpq); /* if we were offered some crypto suites, copy those first into our offer */ unsigned int c_tag = 1; /* tag for next crypto suite generated by us */ unsigned long types_offered = 0; /* make sure our bit field is large enough */ assert(num_crypto_suites <= sizeof(types_offered) * 8); /* always consider by default that offerer doesn't need re-ordering */ MEDIA_CLEAR(other, REORDER_FORCED); /* add offered crypto parameters */ for (__auto_type l = offered_cpq ? offered_cpq->head : NULL; l; l = l->next) { struct crypto_params_sdes *offered_cps = l->data; if (!flags->sdes_nonew && crypto_params_sdes_check_limitations(flags->sdes_only, flags->sdes_no, offered_cps->params.crypto_suite)) { ilogs(crypto, LOG_DEBUG, "Not offering crypto suite '%s'", offered_cps->params.crypto_suite->name); continue; } struct crypto_params_sdes *cps = g_slice_alloc0(sizeof(*cps)); t_queue_push_tail(cpq, cps); cps->tag = offered_cps->tag; /* our own offered tags will be higher than the ones we received */ if (cps->tag >= c_tag) c_tag = cps->tag + 1; crypto_params_copy(&cps->params, &offered_cps->params, 1); /* we use a bit field to keep track of which types we've seen here */ types_offered |= 1 << cps->params.crypto_suite->idx; __sdes_flags(cps, flags); } /* if we had any suites added before, re-add those that aren't there yet */ struct crypto_params_sdes *cps_orig; while ((cps_orig = t_queue_pop_head(&cpq_orig))) { if ((types_offered & (1 << cps_orig->params.crypto_suite->idx))) { crypto_params_sdes_free(cps_orig); continue; } /* make sure our tag is higher than what we've seen */ if (cps_orig->tag < c_tag) cps_orig->tag = c_tag; if (cps_orig->tag >= c_tag) c_tag = cps_orig->tag + 1; t_queue_push_tail(cpq, cps_orig); types_offered |= 1 << cps_orig->params.crypto_suite->idx; } /* don't add any new crypto suites into the outgoing offer, if `SDES-nonew` is set */ if (!flags->sdes_nonew) { /* generate crypto suite offers for any types that we haven't seen above. * IMPORTANT: for re-invites, this always creates new crypto keys for suites * that weren't accepted before, instead of re-using the same keys (and * suites) that were previously offered but not accepted */ for (unsigned int i = 0; i < num_crypto_suites; i++) { if ((types_offered & (1 << i))) continue; if (crypto_params_sdes_check_limitations(flags->sdes_only, flags->sdes_no, &crypto_suites[i])) { ilogs(crypto, LOG_DEBUG, "Not offering crypto suite '%s'", crypto_suites[i].name); continue; } struct crypto_params_sdes *cps = g_slice_alloc0(sizeof(*cps)); t_queue_push_tail(cpq, cps); cps->tag = c_tag++; cps->params.crypto_suite = &crypto_suites[i]; random_string((unsigned char *) cps->params.master_key, cps->params.crypto_suite->master_key_len); random_string((unsigned char *) cps->params.master_salt, cps->params.crypto_suite->master_salt_len); /* mki = mki_len = 0 */ __sdes_flags(cps, flags); } } /* order the crypto suites list before to send out, if needed */ if (cpq_order && cpq_order->head) { ilog(LOG_DEBUG, "The crypto suites in the outbound SDP will be re-ordered."); sdes_q cpq_orig_list = *cpq; t_queue_init(cpq); /* re-initialize sdes_out */ /* first add those mentioned in the order list, * but only, if they were previously generated/added to the sdes_out */ for (auto_iter(l, cpq_order->head); l; l = l->next) { str * cs_name = l->data; struct crypto_params_sdes * cps_order; __auto_type elem = t_queue_find_custom(&cpq_orig_list, cs_name, crypto_params_sdes_cmp); if (!elem) continue; cps_order = elem->data; ilog(LOG_DEBUG, "New suites order, adding: %s (cps tag: %d)", cps_order->params.crypto_suite->name, cps_order->tag); t_queue_push_tail(cpq, cps_order); t_queue_delete_link(&cpq_orig_list, elem); } /* now add the rest */ while ((cps_orig = t_queue_pop_head(&cpq_orig_list))) { ilog(LOG_DEBUG, "New suites order, adding: %s (cps tag: %d)", cps_orig->params.crypto_suite->name, cps_orig->tag); t_queue_push_tail(cpq, cps_orig); } } /* set preferences list of crypto suites for the offerer, if given */ if (reorder_sdes_preferences(offered_cpq, offered_order)) { /* affects a proper handling of crypto suites ordering, * when sending processed answer to the media session originator */ MEDIA_SET(other, REORDER_FORCED); } } /* OP_ANSWER */ else { /* we pick the first supported crypto suite */ struct crypto_params_sdes *cps = cpq->head ? cpq->head->data : NULL; struct crypto_params_sdes *cps_in = cpq_in->head ? cpq_in->head->data : NULL; struct crypto_params_sdes *offered_cps = (offered_cpq && offered_cpq->head) ? offered_cpq->head->data : NULL; if (flags->sdes_static && cps) { /* reverse logic: instead of looking for a matching crypto suite to put in * our answer, we want to leave what we already had. however, this is only * valid if the currently present crypto suite matches the offer */ for (__auto_type l = cpq_in->head; l; l = l->next) { struct crypto_params_sdes *check_cps = l->data; if (check_cps->params.crypto_suite == cps->params.crypto_suite && check_cps->tag == cps->tag) { ilogs(crypto, LOG_DEBUG, "Found matching existing crypto suite %u:%s", check_cps->tag, check_cps->params.crypto_suite->name); goto cps_match; } } } /* don't try to match, if the offerer requested some suite preferences */ if (offered_cps && !MEDIA_ISSET(this, REORDER_FORCED) ) { ilogs(crypto, LOG_DEBUG, "Looking for matching crypto suite to offered %u:%s", offered_cps->tag, offered_cps->params.crypto_suite->name); /* check if we can do SRTP<>SRTP passthrough. the crypto suite that was accepted * must have been present in what was offered to us */ for (__auto_type l = cpq_in->head; l; l = l->next) { struct crypto_params_sdes *check_cps = l->data; if (check_cps->params.crypto_suite == offered_cps->params.crypto_suite) { ilogs(crypto, LOG_DEBUG, "Found matching crypto suite %u:%s", check_cps->tag, check_cps->params.crypto_suite->name); cps_in = check_cps; break; } } } cps_match: if (cps_in && (!cps || cps->params.crypto_suite != cps_in->params.crypto_suite)) { crypto_params_sdes_queue_clear(cpq); cps = g_slice_alloc0(sizeof(*cps)); t_queue_push_tail(cpq, cps); cps->tag = cps_in->tag; cps->params.crypto_suite = cps_in->params.crypto_suite; if (offered_cps && offered_cps->params.crypto_suite == cps->params.crypto_suite) { // SRTP<>SRTP passthrough cps->params.session_params = cps_in->params.session_params; // XXX verify crypto_params_copy(&cps->params, &offered_cps->params, 1); ilogs(crypto, LOG_DEBUG, "Copied crypto params from %i:%s for SRTP passthrough", cps_in->tag, cps_in->params.crypto_suite->name); } else { random_string((unsigned char *) cps->params.master_key, cps->params.crypto_suite->master_key_len); random_string((unsigned char *) cps->params.master_salt, cps->params.crypto_suite->master_salt_len); /* mki = mki_len = 0 */ cps->params.session_params = cps_in->params.session_params; ilogs(crypto, LOG_DEBUG, "Creating new SRTP crypto params for %i:%s", cps->tag, cps->params.crypto_suite->name); } // flush out crypto suites we ended up not using - leave only one if (!t_queue_remove(cpq_in, cps_in)) ilogs(crypto, LOG_ERR, "BUG: incoming crypto suite not found in queue"); crypto_params_sdes_queue_clear(cpq_in); t_queue_push_tail(cpq_in, cps_in); __sdes_flags(cps, flags); __sdes_flags(cps_in, flags); } } skip_sdes: if (is_offer) { if (MEDIA_ISSET(this, DTLS) && !this->fp_hash_func && flags->dtls_fingerprint.len) this->fp_hash_func = dtls_find_hash_func(&flags->dtls_fingerprint); } } /** * Only accepts or declines proposed crypto suites. Does not generate. * * For an answer, uses the incoming received list of SDES crypto suites to prune * the list of (generated) outgoing crypto suites to contain only the one that was * accepted. */ static void __sdes_accept(struct call_media *media, const sdp_ng_flags *flags) { if (!media->sdes_in.length) return; /* if 'flags->sdes_nonew' is set, don't prune anything, just pass all coming. * 'flags->sdes_nonew' takes precedence over 'sdes_only' and 'sdes_no'. */ if (flags && (t_hash_table_is_set(flags->sdes_only) || t_hash_table_is_set(flags->sdes_no)) && !flags->sdes_nonew) { __auto_type l = media->sdes_in.tail; while (l) { struct crypto_params_sdes *offered_cps = l->data; if (!crypto_params_sdes_check_limitations(flags->sdes_only, flags->sdes_no, offered_cps->params.crypto_suite)) { l = l->prev; continue; } /* stop the iteration intentionally, if only one suite is left * this helps with a case, when the offerer left with no suites, * which can be allowed, but we need to still have at least something */ if (l->next == NULL) { l = l->prev; break; } ilogs(crypto, LOG_DEBUG, "Dropping offered crypto suite '%s' from offer due to %s", offered_cps->params.crypto_suite->name, t_hash_table_is_set(flags->sdes_only) ? "not being in SDES-only" : "SDES-no"); __auto_type prev = l->prev; t_queue_delete_link(&media->sdes_in, l); crypto_params_sdes_free(offered_cps); l = prev; } } if (media->sdes_in.head == NULL) return; /* now prune those suites, which weren't accepted */ /* currently incoming suites */ struct crypto_params_sdes *cps_in = media->sdes_in.head->data; /* outgoing suites */ __auto_type l = media->sdes_out.head; while (l) { struct crypto_params_sdes *cps_out = l->data; if (cps_out->params.crypto_suite != cps_in->params.crypto_suite) goto del_next; if (cps_out->tag != cps_in->tag) goto del_next; /* this one's good */ l = l->next; continue; del_next: /* mismatch, prune this one out */ crypto_params_sdes_free(cps_out); __auto_type next = l->next; t_queue_delete_link(&media->sdes_out, l); l = next; } } static void __disable_streams(struct call_media *media, unsigned int num_ports) { struct packet_stream *ps; __num_media_streams(media, num_ports); for (__auto_type l = media->streams.head; l; l = l->next) { ps = l->data; t_queue_clear(&ps->sfds); ps->selected_sfd = NULL; } } static void __rtcp_mux_set(const sdp_ng_flags *flags, struct call_media *media) { if (flags->rtcp_mux_offer || flags->rtcp_mux_require) MEDIA_SET(media, RTCP_MUX); else if (flags->rtcp_mux_demux) MEDIA_CLEAR(media, RTCP_MUX); } __attribute__((nonnull(1, 2, 3))) static void __rtcp_mux_logic(sdp_ng_flags *flags, struct call_media *media, struct call_media *other_media) { if (flags->opmode == OP_ANSWER) { /* default is to go with the client's choice, unless we were instructed not * to do that in the offer (see below) */ if (!MEDIA_ISSET(other_media, RTCP_MUX_OVERRIDE)) bf_copy_same(&media->media_flags, &other_media->media_flags, MEDIA_FLAG_RTCP_MUX); return; } if (flags->opmode != OP_OFFER) return; /* default is to pass through the client's choice, unless our peer is already * talking rtcp-mux, then we stick to that */ if (!MEDIA_ISSET(media, RTCP_MUX)) bf_copy_same(&media->media_flags, &other_media->media_flags, MEDIA_FLAG_RTCP_MUX); else { // mux already in use - unless we were instructed to do something else, // keep using it and don't offer a fallback choice: this is needed as the // fallback port might already be closed flags->rtcp_mux_require = 1; } /* in our offer, we can override the client's choice */ __rtcp_mux_set(flags, media); /* we can also control what's going to happen in the answer. it * depends on what was offered, but by default we go with the other * client's choice */ MEDIA_CLEAR(media, RTCP_MUX_OVERRIDE); if (MEDIA_ISSET(other_media, RTCP_MUX)) { if (!MEDIA_ISSET(media, RTCP_MUX)) { /* rtcp-mux was offered, but we don't offer it ourselves. * the answer will not accept rtcp-mux (wasn't offered). * the default is to accept the offer, unless we want to * explicitly reject it. */ MEDIA_SET(media, RTCP_MUX_OVERRIDE); if (flags->rtcp_mux_reject) MEDIA_CLEAR(other_media, RTCP_MUX); } else { /* rtcp-mux was offered and we offer it too. default is * to go with the other client's choice, unless we want to * either explicitly accept it (possibly demux) or reject * it (possible reverse demux). */ if (flags->rtcp_mux_accept) MEDIA_SET(media, RTCP_MUX_OVERRIDE); else if (flags->rtcp_mux_reject) { MEDIA_SET(media, RTCP_MUX_OVERRIDE); MEDIA_CLEAR(other_media, RTCP_MUX); } } } else { /* rtcp-mux was not offered. we may offer it, but since it wasn't * offered to us, we must not accept it. */ MEDIA_SET(media, RTCP_MUX_OVERRIDE); } } static void __dtls_restart(struct call_media *m) { struct packet_stream *ps; for (__auto_type l = m->streams.head; l; l = l->next) { ps = l->data; PS_CLEAR(ps, FINGERPRINT_VERIFIED); dtls_shutdown(ps); __init_stream(ps); } } static void __fingerprint_changed(struct call_media *m) { if (!m->fingerprint.hash_func || !m->fingerprint.digest_len) return; ilogs(crypto, LOG_INFO, "DTLS fingerprint changed, restarting DTLS"); __dtls_restart(m); } static void __set_all_tos(call_t *c) { for (__auto_type l = c->stream_fds.head; l; l = l->next) { stream_fd *sfd = l->data; if (sfd->socket.fd == -1) continue; set_tos(&sfd->socket, c->tos); } } static void __tos_change(call_t *call, const sdp_ng_flags *flags) { unsigned char new_tos; /* Handle TOS= parameter. Negative value = no change, not present or too large = * revert to default, otherwise set specified value. We only do it in an offer, but * then for both directions. */ if (flags && (flags->opmode != OP_OFFER || flags->tos < 0)) return; if (!flags || flags->tos > 255) new_tos = rtpe_config.default_tos; else new_tos = flags->tos; if (new_tos == call->tos) return; call->tos = new_tos; __set_all_tos(call); } static void __init_interface(struct call_media *media, const str *ifname, int num_ports) { if (!media->logical_intf) media->logical_intf = media->monologue->logical_intf; if (!media->desired_family) media->desired_family = media->monologue->desired_family; if (!media->logical_intf) goto get; if (media->logical_intf->preferred_family != media->desired_family) goto get; if (!ifname || !ifname->s) return; if (!str_cmp_str(&media->logical_intf->name, ifname)) return; if (g_hash_table_lookup(media->logical_intf->rr_specs, ifname)) return; get: media->logical_intf = get_logical_interface(ifname, media->desired_family, num_ports); if (G_UNLIKELY(!media->logical_intf)) { /* legacy support */ if (!str_cmp(ifname, "internal")) media->desired_family = get_socket_family_enum(SF_IP4); else if (!str_cmp(ifname, "external")) media->desired_family = get_socket_family_enum(SF_IP6); else ilog(LOG_WARNING, "Interface '"STR_FORMAT"' not found, using default", STR_FMT(ifname)); media->logical_intf = get_logical_interface(NULL, media->desired_family, num_ports); if (!media->logical_intf) { ilog(LOG_WARNING, "Requested address family (%s) not supported", media->desired_family->name); media->logical_intf = get_logical_interface(NULL, NULL, 0); } } media->monologue->logical_intf = media->logical_intf; media->monologue->desired_family = media->desired_family; } // process received a=setup and related attributes __attribute__((nonnull(1, 2, 3))) static void __dtls_logic(const sdp_ng_flags *flags, struct call_media *other_media, struct stream_params *sp) { uint64_t tmp; call_t *call = other_media->call; /* active and passive are from our POV */ tmp = atomic64_get_na(&other_media->media_flags); bf_copy(&other_media->media_flags, MEDIA_FLAG_SETUP_PASSIVE, &sp->sp_flags, SP_FLAG_SETUP_ACTIVE); bf_copy(&other_media->media_flags, MEDIA_FLAG_SETUP_ACTIVE, &sp->sp_flags, SP_FLAG_SETUP_PASSIVE); /* Allow overriding preference of DTLS over SDES */ if ((flags->opmode == OP_OFFER || flags->opmode == OP_PUBLISH) && flags->sdes_prefer && MEDIA_ISSET(other_media, SDES)) { MEDIA_CLEAR(other_media, DTLS); MEDIA_CLEAR(other_media, SETUP_ACTIVE); MEDIA_CLEAR(other_media, SETUP_PASSIVE); } /* Special case: if this is an offer and actpass is being offered (as it should), * we would normally choose to be active. However, if this is a reinvite and we * were passive previously, we should retain this role. */ if ((flags->opmode == OP_OFFER || flags->opmode == OP_PUBLISH) && MEDIA_ARESET2(other_media, SETUP_ACTIVE, SETUP_PASSIVE) && (tmp & (MEDIA_FLAG_SETUP_ACTIVE | MEDIA_FLAG_SETUP_PASSIVE)) == MEDIA_FLAG_SETUP_PASSIVE) MEDIA_CLEAR(other_media, SETUP_ACTIVE); /* if passive mode is requested, honour it if we can */ if (flags->dtls_reverse_passive && MEDIA_ISSET(other_media, SETUP_PASSIVE)) MEDIA_CLEAR(other_media, SETUP_ACTIVE); // restart DTLS? if (memcmp(&other_media->fingerprint, &sp->fingerprint, sizeof(sp->fingerprint))) { __fingerprint_changed(other_media); other_media->fingerprint = sp->fingerprint; } else if (other_media->tls_id.len && (sp->tls_id.len == 0 || str_cmp_str(&other_media->tls_id, &sp->tls_id))) { // previously seen tls-id and new tls-id is different or not present ilogs(crypto, LOG_INFO, "TLS-ID changed, restarting DTLS"); __dtls_restart(other_media); } else if (ice_is_restart(other_media->ice_agent, sp) && !other_media->tls_id.len && !sp->tls_id.len) { ilogs(crypto, LOG_INFO, "ICE restart without TLS-ID, restarting DTLS"); __dtls_restart(other_media); } call_str_cpy(call, &other_media->tls_id, &sp->tls_id); MEDIA_CLEAR(other_media, DTLS); if (MEDIA_ISSET2(other_media, SETUP_PASSIVE, SETUP_ACTIVE) && other_media->fingerprint.hash_func) MEDIA_SET(other_media, DTLS); } static void __ice_start(struct call_media *media) { if (MEDIA_ISSET(media, PASSTHRU)) { ice_shutdown(&media->ice_agent); return; } if (!MEDIA_ISSET(media, ICE)) /* don't init new ICE agent but leave it running if there is one */ return; ice_agent_init(&media->ice_agent, media); } __attribute__((nonnull(1, 2))) static void __endpoint_loop_protect(struct stream_params *sp, struct call_media *media) { struct intf_address intf_addr; /* check if the advertised endpoint is one of our own addresses. this can * happen by mistake, or it's expected when ICE is in use and passthrough * mode is enabled (in particular when using ICE=force-relay). we still * accept such an endpoint, but flag it for potential loop, which we will * check for later. * */ intf_addr.type = socktype_udp; // if (other_media->protocol && other_media->protocol->tcp) // intf_addr.type = socktype_tcp; intf_addr.addr = sp->rtp_endpoint.address; if (!intf_addr.addr.family) // dummy/empty address return; if (!is_local_endpoint(&intf_addr, sp->rtp_endpoint.port)) return; ilog(LOG_DEBUG, "Detected local endpoint advertised by remote client, " "enabling loop checking"); MEDIA_SET(media, LOOP_CHECK); } __attribute__((nonnull(2, 3, 4))) static void __update_media_id(struct call_media *media, struct call_media *other_media, struct stream_params *sp, const sdp_ng_flags *flags) { call_t *call = other_media->call; struct call_monologue *ml = media ? media->monologue : NULL; struct call_monologue *other_ml = other_media->monologue; if (flags->opmode == OP_OFFER || flags->opmode == OP_PUBLISH || flags->opmode == OP_REQUEST || IS_OP_OTHER(flags->opmode)) { if (!other_media->media_id.s) { // incoming side: we copy what we received if (sp->media_id.s) call_str_cpy(call, &other_media->media_id, &sp->media_id); if (other_media->media_id.s) g_hash_table_insert(other_ml->media_ids, &other_media->media_id, other_media); } else { // RFC 5888 allows changing the media ID in a re-invite // (section 9.1), so handle this here. if (sp->media_id.s) { if (str_cmp_str(&other_media->media_id, &sp->media_id)) { // mismatch - update g_hash_table_remove(other_ml->media_ids, &other_media->media_id); call_str_cpy(call, &other_media->media_id, &sp->media_id); g_hash_table_insert(other_ml->media_ids, &other_media->media_id, other_media); } } else { // we already have a media ID, but re-invite offer did not specify // one. we keep what we already have. ; } } if (media && !media->media_id.s) { // outgoing side: we copy from the other side if (other_media->media_id.s) call_str_cpy(call, &media->media_id, &other_media->media_id); else if (flags->generate_mid) { // or generate one char buf[64]; snprintf(buf, sizeof(buf), "%u", other_media->index); call_str_cpy_c(call, &media->media_id, buf); } if (media->media_id.s) g_hash_table_insert(ml->media_ids, &media->media_id, media); } else { // we already have a media ID. keep what we have and ignore what's // happening on the other side. ; } } else if (flags->opmode == OP_ANSWER) { // in normal cases, if the answer contains a media ID, it must match // the media ID previously sent in the offer, as the order of the media // sections must remain intact (RFC 5888 section 9.1). check this. if (sp->media_id.s) { if (!other_media->media_id.s) ilog(LOG_INFO, "Received answer SDP with media ID ('" STR_FORMAT "') when no media ID was offered", STR_FMT(&sp->media_id)); else if (str_cmp_str(&other_media->media_id, &sp->media_id)) ilog(LOG_WARN, "Received answer SDP with mismatched media ID ('" STR_FORMAT "') when the offered media ID was '" STR_FORMAT "'", STR_FMT(&sp->media_id), STR_FMT(&other_media->media_id)); } } } static void __t38_reset(struct call_media *media, struct call_media *other_media) { ilog(LOG_DEBUG, "Stopping T.38 gateway and resetting %s/" STR_FORMAT " to %s/" STR_FORMAT, media->protocol->name, STR_FMT(&media->format_str), other_media->protocol->name, STR_FMT(&other_media->format_str)); media->protocol = other_media->protocol; media->type_id = other_media->type_id; call_str_cpy(media->call, &media->type, &other_media->type); call_str_cpy(media->call, &media->format_str, &other_media->format_str); } __attribute__((nonnull(2, 3, 4))) static void __update_media_protocol(struct call_media *media, struct call_media *other_media, struct stream_params *sp, sdp_ng_flags *flags) { // is the media type still the same? if (str_cmp_str(&other_media->type, &sp->type)) { ilog(LOG_DEBUG, "Updating media type from '" STR_FORMAT "' to '" STR_FORMAT "'", STR_FMT(&other_media->type), STR_FMT(&sp->type)); call_str_cpy(other_media->call, &other_media->type, &sp->type); other_media->type_id = codec_get_type(&other_media->type); if (media) { call_str_cpy(media->call, &media->type, &sp->type); media->type_id = other_media->type_id; } } /* deduct protocol from stream parameters received */ call_str_cpy(other_media->call, &other_media->protocol_str, &sp->protocol_str); if (other_media->protocol != sp->protocol) { other_media->protocol = sp->protocol; /* If the endpoint changes the protocol, we reset the other side's * protocol as well. this lets us remember our previous overrides, * but also lets endpoints re-negotiate. * Answers are a special case: handle OSRTP answer/accept, but otherwise * answer with the same protocol that was offered, unless we're instructed * not to. */ if (media) { if (flags->opmode == OP_ANSWER) { // OSRTP? if (other_media->protocol && other_media->protocol->rtp && !other_media->protocol->srtp && media->protocol && media->protocol->osrtp) { // accept it? if (flags->osrtp_accept_rfc) ; else media->protocol = NULL; // reject } // pass through any other protocol change? else if (!flags->protocol_accept) ; else media->protocol = NULL; } else media->protocol = NULL; } } /* default is to leave the protocol unchanged */ if (media && !media->protocol) media->protocol = other_media->protocol; // handler overrides requested by the user /* allow override of outgoing protocol even if we know it already */ /* but only if this is an RTP-based protocol */ if (media && flags->transport_protocol && proto_is_rtp(other_media->protocol)) media->protocol = flags->transport_protocol; // OSRTP offer requested? if (media && media->protocol && media->protocol->rtp && !media->protocol->srtp && media->protocol->osrtp_proto && flags->osrtp_offer && flags->opmode == OP_OFFER) { media->protocol = &transport_protocols[media->protocol->osrtp_proto]; } // T.38 decoder? if (media && other_media->type_id == MT_IMAGE && proto_is(other_media->protocol, PROTO_UDPTL) && flags->t38_decode) { media->protocol = flags->transport_protocol; if (!media->protocol) media->protocol = &transport_protocols[PROTO_RTP_AVP]; media->type_id = MT_AUDIO; call_str_cpy_c(media->call, &media->type, "audio"); return; } // T.38 encoder? if (media && other_media->type_id == MT_AUDIO && proto_is_rtp(other_media->protocol) && flags->t38_force) { media->protocol = &transport_protocols[PROTO_UDPTL]; media->type_id = MT_IMAGE; call_str_cpy_c(media->call, &media->type, "image"); call_str_cpy_c(media->call, &media->format_str, "t38"); return; } // previous T.38 gateway but now stopping? if (media && flags->t38_stop) { if (other_media->type_id == MT_AUDIO && proto_is_rtp(other_media->protocol) && media->type_id == MT_IMAGE && proto_is(media->protocol, PROTO_UDPTL)) __t38_reset(media, other_media); else if (media->type_id == MT_AUDIO && proto_is_rtp(media->protocol) && other_media->type_id == MT_IMAGE && proto_is(other_media->protocol, PROTO_UDPTL)) __t38_reset(media, other_media); // drop through for protocol override } } __attribute__((nonnull(1, 2, 3, 4))) static void codecs_offer(struct call_media *media, struct call_media *other_media, struct stream_params *sp, sdp_ng_flags *flags) { ilogs(codec, LOG_DEBUG, "Updating codecs for offerer " STR_FORMAT " #%u", STR_FMT(&other_media->monologue->tag), other_media->index); if (flags->reuse_codec) codec_store_populate_reuse(&other_media->codecs, &sp->codecs, .codec_set = flags->codec_set); else codec_store_populate(&other_media->codecs, &sp->codecs, .codec_set = flags->codec_set, .allow_asymmetric = !!flags->allow_asymmetric_codecs); codec_store_strip(&other_media->codecs, &flags->codec_strip, flags->codec_except); codec_store_offer(&other_media->codecs, &flags->codec_offer, &sp->codecs); if (!other_media->codecs.strip_full) codec_store_offer(&other_media->codecs, &flags->codec_transcode, &sp->codecs); codec_store_check_empty(&other_media->codecs, &sp->codecs); codec_store_accept(&other_media->codecs, &flags->codec_accept, NULL); codec_store_accept(&other_media->codecs, &flags->codec_consume, &sp->codecs); codec_store_track(&other_media->codecs, &flags->codec_mask); // we don't update the answerer side if the offer is not RTP but is going // to RTP (i.e. T.38 transcoding) - instead we leave the existing codec list // intact bool update_answerer = true; if (proto_is_rtp(media->protocol) && !proto_is_rtp(other_media->protocol)) update_answerer = false; if (update_answerer) { // update/create answer/receiver side ilogs(codec, LOG_DEBUG, "Updating offer codecs for answerer " STR_FORMAT " #%u", STR_FMT(&media->monologue->tag), media->index); if ((flags->static_codecs) && media->codecs.codec_prefs.length) ilogs(codec, LOG_DEBUG, "Leaving answerer codecs alone"); else if (flags->reuse_codec) codec_store_populate_reuse(&media->codecs, &sp->codecs, .merge_cs = &sp->codecs); else codec_store_populate(&media->codecs, &sp->codecs, .allow_asymmetric = !!(flags->allow_asymmetric_codecs), .merge_cs = &sp->codecs); } codec_store_strip(&media->codecs, &flags->codec_strip, flags->codec_except); codec_store_strip(&media->codecs, &flags->codec_consume, flags->codec_except); codec_store_strip(&media->codecs, &flags->codec_mask, flags->codec_except); codec_store_offer(&media->codecs, &flags->codec_offer, &sp->codecs); codec_store_transcode(&media->codecs, &flags->codec_transcode, &sp->codecs); codec_store_check_empty(&media->codecs, &sp->codecs); codec_store_synthesise(&media->codecs, &other_media->codecs); // update supp codecs based on actions so far codec_tracker_update(&media->codecs, &sp->codecs); // set up handlers codec_handlers_update(media, other_media, .flags = flags, .sp = sp, .allow_asymmetric = !!(flags->allow_asymmetric_codecs)); // updating the handlers may have removed some codecs, so run update the supp codecs again codec_tracker_update(&media->codecs, &sp->codecs); // finally set up handlers again based on final results codec_handlers_update(media, other_media, .flags = flags, .sp = sp, .allow_asymmetric = !!(flags->allow_asymmetric_codecs), .reset_transcoding = true); } __attribute__((nonnull(1, 2, 3, 4))) static void codecs_answer(struct call_media *media, struct call_media *other_media, struct stream_params *sp, sdp_ng_flags *flags) { ilogs(codec, LOG_DEBUG, "Updating codecs for answerer " STR_FORMAT " #%u", STR_FMT(&other_media->monologue->tag), other_media->index); bool codec_answer_only = true; // don't do codec answer for a rejected media section if (other_media->streams.length == 0) codec_answer_only = false; else if (sp->rtp_endpoint.port == 0) codec_answer_only = false; if (flags->reuse_codec) codec_store_populate_reuse(&other_media->codecs, &sp->codecs, .codec_set = flags->codec_set, .answer_only = codec_answer_only); else codec_store_populate(&other_media->codecs, &sp->codecs, .codec_set = flags->codec_set, .answer_only = codec_answer_only, .allow_asymmetric = !!flags->allow_asymmetric_codecs); codec_store_strip(&other_media->codecs, &flags->codec_strip, flags->codec_except); codec_store_offer(&other_media->codecs, &flags->codec_offer, &sp->codecs); codec_store_check_empty(&other_media->codecs, &sp->codecs); // update callee side codec handlers again (second pass after the offer) as we // might need to update some handlers, e.g. when supplemental codecs have been // rejected codec_handlers_update(other_media, media, .allow_asymmetric = !!flags->allow_asymmetric_codecs); // finally set up our caller side codecs ilogs(codec, LOG_DEBUG, "Codec answer for " STR_FORMAT " #%u", STR_FMT(&other_media->monologue->tag), other_media->index); codec_store_answer(&media->codecs, &other_media->codecs, flags, .allow_asymmetric = !!flags->allow_asymmetric_codecs); // set up handlers codec_handlers_update(media, other_media, .flags = flags, .sp = sp, .allow_asymmetric = !!flags->allow_asymmetric_codecs); // updating the handlers may have removed some codecs, so run update the supp codecs again codec_tracker_update(&media->codecs, NULL); codec_tracker_update(&other_media->codecs, NULL); // finally set up handlers again based on final results codec_handlers_update(media, other_media, .flags = flags, .sp = sp, .allow_asymmetric = !!flags->allow_asymmetric_codecs, .reset_transcoding = true); codec_handlers_update(other_media, media, .allow_asymmetric = !!flags->allow_asymmetric_codecs, .reset_transcoding = true); // activate audio player if needed (not done by codec_handlers_update without `flags`) audio_player_activate(media); } void codecs_offer_answer(struct call_media *media, struct call_media *other_media, struct stream_params *sp, sdp_ng_flags *flags) { if (flags->opmode != OP_ANSWER) codecs_offer(media, other_media, sp, flags); else codecs_answer(media, other_media, sp, flags); } /* called with call->master_lock held in W */ static void __update_init_subscribers(struct call_media *media, struct stream_params *sp, sdp_ng_flags *flags, enum call_opmode opmode) { if (!media) return; recording_setup_media(media); /* should be set on media directly? Currently absent */ if (flags && flags->block_short) ML_SET(media->monologue, BLOCK_SHORT); __ice_start(media); /* update all subscribers */ __reset_streams(media); for (__auto_type l = media->media_subscribers.head; l; l = l->next) { struct media_subscription * ms = l->data; struct call_media * sub_media = ms->media; if (!sub_media) continue; if (__init_streams(media, sub_media, sp, flags, &ms->attrs)) ilog(LOG_WARN, "Error initialising streams"); } /* we are now ready to fire up ICE if so desired and requested */ ice_update(media->ice_agent, sp, opmode == OP_OFFER); /* sp == NULL: update in case rtcp-mux changed */ recording_setup_media(media); t38_gateway_start(media->t38_gateway); audio_player_start(media); if (mqtt_publish_scope() == MPS_MEDIA) mqtt_timer_start(&media->mqtt_timer, media->call, media); } /* called with call->master_lock held in W */ void update_init_subscribers(struct call_monologue *ml, enum call_opmode opmode) { for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; __update_init_subscribers(media, NULL, NULL, opmode); } } __attribute__((nonnull(1, 3))) static void __call_monologue_init_from_flags(struct call_monologue *ml, struct call_monologue *other_ml, sdp_ng_flags *flags) { call_t *call = ml->call; call->last_signal = rtpe_now.tv_sec; call->deleted = 0; // consume session attributes t_queue_clear_full(&ml->sdp_attributes, sdp_attr_free); ml->sdp_attributes = flags->session_attributes; t_queue_init(&flags->session_attributes); /* consume sdp session parts */ { /* for cases with origin replacements, keep the very first used origin */ if (other_ml && !other_ml->session_last_sdp_orig && flags->session_sdp_orig.parsed) other_ml->session_last_sdp_orig = sdp_orig_dup(&flags->session_sdp_orig); /* origin (name, version etc.) */ if (!ml->session_sdp_orig && flags->session_sdp_orig.parsed) ml->session_sdp_orig = sdp_orig_dup(&flags->session_sdp_orig); /* sdp session name */ if (flags->session_sdp_name.len && (!ml->sdp_session_name || /* if not set yet */ (ml->sdp_session_name && !flags->replace_sess_name))) /* replace_sess_name = do not replace if possible*/ { ml->sdp_session_name = call_strdup_len(call, flags->session_sdp_name.s, flags->session_sdp_name.len); } /* sdp session timing */ if (flags->session_timing.len) ml->sdp_session_timing = call_strdup_len(call, flags->session_timing.s, flags->session_timing.len); /* sdp bandwidth per session level * 0 value is supported (e.g. b=RR:0 and b=RS:0), to be able to disable rtcp */ if (flags->session_rr >= 0) ml->sdp_session_rr = flags->session_rr; if (flags->session_rs >= 0) ml->sdp_session_rs = flags->session_rs; } // reset offer ipv4/ipv6/mixed media stats if (flags->opmode == OP_OFFER) { statistics_update_ip46_inc_dec(call, CMC_DECREMENT); CALL_CLEAR(call, IPV4_OFFER); CALL_CLEAR(call, IPV6_OFFER); // reset answer ipv4/ipv6/mixed media stats } else if (flags->opmode == OP_ANSWER) { statistics_update_ip46_inc_dec(call, CMC_DECREMENT); CALL_CLEAR(call, IPV4_ANSWER); CALL_CLEAR(call, IPV6_ANSWER); } __tos_change(call, flags); if (flags->label.s) { call_str_cpy(call, &ml->label, &flags->label); t_hash_table_replace(call->labels, &ml->label, ml); } if (flags->recording_vsc) { #define SET_VSC(x,t) \ if (flags->vsc_ ## x ## _rec.len) \ dtmf_trigger_set(ml, DTMF_TRIGGER_ ## t ## _REC, &flags->vsc_ ## x ## _rec, false); \ else \ dtmf_trigger_set(ml, DTMF_TRIGGER_ ## t ## _REC, &rtpe_config.vsc_ ## x ## _rec, false); SET_VSC(start, START) SET_VSC(stop, STOP) SET_VSC(pause, PAUSE) SET_VSC(start_stop, START_STOP) SET_VSC(pause_resume, PAUSE_RESUME) SET_VSC(start_pause_resume, START_PAUSE_RESUME) #undef SET_VSC } #ifdef WITH_TRANSCODING if (flags->recording_announcement) { media_player_new(&ml->rec_player, ml); bool ret = true; media_player_opts_t opts = MPO( .repeat = flags->repeat_times, .start_pos = flags->start_pos, .block_egress = !!flags->block_egress, ); if (flags->file.len) ret = media_player_init_file(ml->rec_player, &flags->file, opts); else if (flags->blob.len) ret = media_player_init_blob(ml->rec_player, &flags->blob, opts); else if (flags->db_id > 0) ret = media_player_init_db(ml->rec_player, flags->db_id, opts); if (!ret) ilog(LOG_WARN, "Failed to initialise media player for recording announcement"); } #endif } __attribute__((nonnull(2, 3))) static void __update_media_label(struct call_media *media, struct call_media *other_media, sdp_ng_flags *flags) { if (!media) return; call_t *call = media->call; if (flags->siprec && flags->opmode == OP_REQUEST) { if (!media->label.len) { char buf[64]; snprintf(buf, sizeof(buf), "%u", other_media->unique_id); call_str_cpy_c(call, &media->label, buf); } // put same label on both sides if (!other_media->label.len) other_media->label = media->label; } } // `media` can be NULL __attribute__((nonnull(1, 3, 4))) static void __media_init_from_flags(struct call_media *other_media, struct call_media *media, struct stream_params *sp, sdp_ng_flags *flags) { call_t *call = other_media->call; __auto_type additional_attributes = &sp->attributes; /* attributes in str format */ if (flags->opmode == OP_OFFER && flags->reset) { if (media) MEDIA_CLEAR(media, INITIALIZED); MEDIA_CLEAR(other_media, INITIALIZED); if (media && media->ice_agent) ice_restart(media->ice_agent); if (other_media->ice_agent) ice_restart(other_media->ice_agent); } if (flags->generate_rtcp) { if (media) MEDIA_SET(media, RTCP_GEN); MEDIA_SET(other_media, RTCP_GEN); } else if (flags->generate_rtcp_off) { if (media) MEDIA_CLEAR(media, RTCP_GEN); MEDIA_CLEAR(other_media, RTCP_GEN); } switch (flags->media_echo) { case MEO_FWD: if (media) { MEDIA_SET(media, ECHO); MEDIA_CLEAR(media, BLACKHOLE); } MEDIA_SET(other_media, BLACKHOLE); MEDIA_CLEAR(other_media, ECHO); break; case MEO_BKW: if (media) { MEDIA_SET(media, BLACKHOLE); MEDIA_CLEAR(media, ECHO); } MEDIA_SET(other_media, ECHO); MEDIA_CLEAR(other_media, BLACKHOLE); break; case MEO_BOTH: if (media) { MEDIA_SET(media, ECHO); MEDIA_CLEAR(media, BLACKHOLE); } MEDIA_SET(other_media, ECHO); MEDIA_CLEAR(other_media, BLACKHOLE); break; case MEO_BLACKHOLE: if (media) { MEDIA_SET(media, BLACKHOLE); MEDIA_CLEAR(media, ECHO); } MEDIA_SET(other_media, BLACKHOLE); MEDIA_CLEAR(other_media, ECHO); case MEO_DEFAULT: break; } __update_media_label(media, other_media, flags); __update_media_protocol(media, other_media, sp, flags); __update_media_id(media, other_media, sp, flags); __endpoint_loop_protect(sp, other_media); if (sp->rtp_endpoint.port) { /* copy parameters advertised by the sender of this message */ bf_copy_same(&other_media->media_flags, &sp->sp_flags, SHARED_FLAG_RTCP_MUX | SHARED_FLAG_ASYMMETRIC | SHARED_FLAG_UNIDIRECTIONAL | SHARED_FLAG_ICE | SHARED_FLAG_TRICKLE_ICE | SHARED_FLAG_ICE_LITE_PEER | SHARED_FLAG_RTCP_FB | SHARED_FLAG_LEGACY_OSRTP | SHARED_FLAG_LEGACY_OSRTP_REV); // duplicate the entire queue of offered crypto params crypto_params_sdes_queue_clear(&other_media->sdes_in); crypto_params_sdes_queue_copy(&other_media->sdes_in, &sp->sdes_params); if (other_media->sdes_in.length) { MEDIA_SET(other_media, SDES); __sdes_accept(other_media, flags); } } if (flags->opmode == OP_OFFER || flags->opmode == OP_ANSWER || flags->opmode == OP_PUBLISH) { /* moved as plain text attributes, required later by sdp_create() * extmap * other (unknown type) */ t_queue_clear_full(&other_media->sdp_attributes, sdp_attr_free); other_media->sdp_attributes = *additional_attributes; t_queue_init(additional_attributes); } // codec and RTP payload types handling if (sp->ptime > 0) { if (media && !MEDIA_ISSET(media, PTIME_OVERRIDE)) media->ptime = sp->ptime; if (!MEDIA_ISSET(other_media, PTIME_OVERRIDE)) other_media->ptime = sp->ptime; } if (media && flags->ptime > 0) { media->ptime = flags->ptime; MEDIA_SET(media, PTIME_OVERRIDE); MEDIA_SET(other_media, PTIME_OVERRIDE); } if (flags->rev_ptime > 0) { other_media->ptime = flags->rev_ptime; if (media) MEDIA_SET(media, PTIME_OVERRIDE); MEDIA_SET(other_media, PTIME_OVERRIDE); } if (str_cmp_str(&other_media->format_str, &sp->format_str)) call_str_cpy(call, &other_media->format_str, &sp->format_str); if (media && str_cmp_str(&media->format_str, &sp->format_str)) { // update opposite side format string only if protocols match if (media->protocol == other_media->protocol) call_str_cpy(call, &media->format_str, &sp->format_str); } /* deduct address family from stream parameters received */ if (!other_media->desired_family || !MEDIA_ISSET(other_media, ICE)) other_media->desired_family = sp->rtp_endpoint.address.family; /* for outgoing SDP, use "direction"/DF or default to what was offered */ if (media && (!media->desired_family || !MEDIA_ISSET(media, ICE))) { if (!media->desired_family) media->desired_family = other_media->desired_family; if (sp->desired_family) media->desired_family = sp->desired_family; } /* bandwidth */ other_media->bandwidth_as = sp->media_session_as; other_media->bandwidth_rr = sp->media_session_rr; other_media->bandwidth_rs = sp->media_session_rs; } unsigned int proto_num_ports(unsigned int sp_ports, struct call_media *media, sdp_ng_flags *flags, bool allow_offer_split) { if (sp_ports == 0) return 2; if (sp_ports != 2) return sp_ports; if (!proto_is_rtp(media->protocol)) return sp_ports; if (!MEDIA_ISSET(media, RTCP_MUX)) return sp_ports; if (!flags) return sp_ports; if (flags->opmode == OP_ANSWER || flags->opmode == OP_PUBLISH) return sp_ports / 2; if (flags->opmode == OP_OFFER) { if (allow_offer_split) return sp_ports / 2; return sp_ports; } return sp_ports; } static int __sub_is_transcoding(const struct media_subscription *ms, gconstpointer dummy) { return ms->attrs.transcoding ? 0 : 1; } /** * Set transcoding flag if any media flows are transcoding, otherwise unset it. */ static void media_update_transcoding_flag(struct call_media *media) { if (!media) return; MEDIA_CLEAR(media, TRANSCODING); if (t_queue_find_custom(&media->media_subscribers, NULL, __sub_is_transcoding)) MEDIA_SET(media, TRANSCODING); } /* called with call->master_lock held in W */ int monologue_offer_answer(struct call_monologue *monologues[2], sdp_streams_q *streams, sdp_ng_flags *flags) { struct call_media *media, *other_media; struct endpoint_map *em; struct call_monologue *other_ml = monologues[0]; struct call_monologue *monologue = monologues[1]; unsigned int num_ports_this, num_ports_other; /* we must have a complete dialogue, even though the to-tag (monologue->tag) * may not be known yet */ if (!other_ml) { ilog(LOG_ERROR, "Incomplete dialogue association"); return -1; } __call_monologue_init_from_flags(other_ml, monologue, flags); if (flags->exclude_recording) { ML_SET(monologue, NO_RECORDING); ML_SET(other_ml, NO_RECORDING); } __C_DBG("this="STR_FORMAT" other="STR_FORMAT, STR_FMT(&monologue->tag), STR_FMT(&other_ml->tag)); for (__auto_type sp_iter = streams->head; sp_iter; sp_iter = sp_iter->next) { struct stream_params *sp = sp_iter->data; __C_DBG("processing media stream #%u", sp->index); assert(sp->index > 0); /* first, check for existence of call_media struct on both sides of * the dialogue */ media = __get_media(monologue, sp, flags, 0); other_media = __get_media(other_ml, sp, flags, 0); media->media_sdp_id = sp->media_sdp_id; other_media->media_sdp_id = sp->media_sdp_id; /* OTHER is the side which has sent the message. SDP parameters in * "sp" are as advertised by OTHER side. The message will be sent to * THIS side. Parameters sent to THIS side may be overridden by * what's in "flags". If this is an answer, or if we have talked to * THIS side (recipient) before, then the structs will be populated with * details already. */ /* if medias still not subscribed to each other, do it now */ if (!call_get_media_subscription(media->media_subscribers_ht, other_media) && !call_get_media_subscription(other_media->media_subscribers_ht, media)) { __subscribe_medias_both_ways(media, other_media); } struct media_subscription * ms = call_get_media_subscription(media->media_subscribers_ht, other_media); if (ms) ms->attrs.transcoding = 0; __media_init_from_flags(other_media, media, sp, flags); codecs_offer_answer(media, other_media, sp, flags); /* send and recv are from our POV */ bf_copy_same(&media->media_flags, &sp->sp_flags, SP_FLAG_SEND | SP_FLAG_RECV); bf_copy(&other_media->media_flags, MEDIA_FLAG_RECV, &sp->sp_flags, SP_FLAG_SEND); bf_copy(&other_media->media_flags, MEDIA_FLAG_SEND, &sp->sp_flags, SP_FLAG_RECV); if (sp->rtp_endpoint.port) { /* DTLS stuff */ __dtls_logic(flags, other_media, sp); /* control rtcp-mux */ __rtcp_mux_logic(flags, media, other_media); /* SDES and DTLS */ __generate_crypto(flags, media, other_media); } if (media->desired_family->af == AF_INET) { if (flags->opmode == OP_OFFER) { CALL_SET(media->call, IPV4_OFFER); } else if (flags->opmode == OP_ANSWER) { CALL_SET(media->call, IPV4_ANSWER); } } else if (media->desired_family->af == AF_INET6) { if (flags->opmode == OP_OFFER) { CALL_SET(media->call, IPV6_OFFER); } else if (flags->opmode == OP_ANSWER) { CALL_SET(media->call, IPV6_ANSWER); } } num_ports_this = proto_num_ports(sp->num_ports, media, flags, flags->rtcp_mux_require ? true : false); num_ports_other = proto_num_ports(sp->num_ports, other_media, flags, (flags->rtcp_mux_demux || flags->rtcp_mux_accept) ? true : false); /* local interface selection */ __init_interface(media, &sp->direction[1], num_ports_this); __init_interface(other_media, &sp->direction[0], num_ports_other); if (media->logical_intf == NULL || other_media->logical_intf == NULL) { goto error_intf; } /* ICE stuff - must come after interface and address family selection */ __ice_offer(flags, media, other_media, ice_is_restart(other_media->ice_agent, sp)); /* we now know what's being advertised by the other side */ MEDIA_SET(other_media, INITIALIZED); if (!sp->rtp_endpoint.port) { /* Zero port: stream has been rejected. * RFC 3264, chapter 6: * If a stream is rejected, the offerer and answerer MUST NOT * generate media (or RTCP packets) for that stream. */ __disable_streams(media, num_ports_this); __disable_streams(other_media, num_ports_other); continue; } if (is_addr_unspecified(&sp->rtp_endpoint.address) && !MEDIA_ISSET(other_media, TRICKLE_ICE)) { /* Zero endpoint address, equivalent to setting the media stream * to sendonly or inactive */ MEDIA_CLEAR(media, RECV); MEDIA_CLEAR(other_media, SEND); } /* get that many ports for each side, and one packet stream for each port, then * assign the ports to the streams */ em = __get_endpoint_map(media, num_ports_this, &sp->rtp_endpoint, flags, false); if (!em) { goto error_ports; } if (flags->disable_jb && media->call) CALL_SET(media->call, DISABLE_JB); __num_media_streams(media, num_ports_this); __assign_stream_fds(media, &em->intf_sfds); if (__num_media_streams(other_media, num_ports_other)) { /* new streams created on OTHER side. normally only happens in * initial offer. create a wildcard endpoint_map to be filled in * when the answer comes. */ if (__wildcard_endpoint_map(other_media, num_ports_other)) goto error_ports; } __update_init_subscribers(other_media, sp, flags, flags->opmode); __update_init_subscribers(media, NULL, NULL, flags->opmode); media_update_transcoding_flag(media); media_update_transcoding_flag(other_media); } // set ipv4/ipv6/mixed media stats if (flags->opmode == OP_OFFER || flags->opmode == OP_ANSWER) { statistics_update_ip46_inc_dec(monologue->call, CMC_INCREMENT); } return 0; error_ports: ilog(LOG_ERR, "Error allocating media ports"); return ERROR_NO_FREE_PORTS; error_intf: ilog(LOG_ERR, "Error finding logical interface with free ports"); return ERROR_NO_FREE_LOGS; } void media_subscriptions_clear(subscription_q *q) { t_queue_clear_full(q, media_subscription_free); } static void __unsubscribe_media_link(struct call_media * which, subscription_list * which_cm_link) { struct media_subscription * ms = which_cm_link->data; struct media_subscription * rev_ms = ms->link->data; struct call_media * from = ms->media; ilog(LOG_DEBUG, "Unsubscribing media with monologue tag '" STR_FORMAT_M "' (index: %d) " "from media with monologue tag '" STR_FORMAT_M "' (index: %d)", STR_FMT_M(&which->monologue->tag), which->index, STR_FMT_M(&from->monologue->tag), from->index); t_queue_delete_link(&from->media_subscribers, ms->link); t_queue_delete_link(&which->media_subscriptions, which_cm_link); t_hash_table_remove(which->media_subscriptions_ht, ms->media); t_hash_table_remove(from->media_subscribers_ht, rev_ms->media); g_slice_free1(sizeof(*ms), ms); g_slice_free1(sizeof(*rev_ms), rev_ms); } /** * Unsubscribe one particular media subscriber from this call media. */ static bool __unsubscribe_media(struct call_media * which, struct call_media * from) { subscription_list * l = t_hash_table_lookup(which->media_subscriptions_ht, from); if (!l) { ilog(LOG_DEBUG, "Media with monologue tag '" STR_FORMAT_M "' (index: %d) " "is not subscribed to media with monologue tag '" STR_FORMAT_M "' " "(index: %d). Cannot remove this media subscriber.", STR_FMT_M(&which->monologue->tag), which->index, STR_FMT_M(&from->monologue->tag), from->index); return false; } __unsubscribe_media_link(which, l); return true; } /** * Deletes all offer/answer media subscriptions. */ static void __unsubscribe_all_offer_answer_medias(struct call_media * cm) { for (__auto_type l = cm->media_subscribers.head; l; ) { struct media_subscription * ms = l->data; if (!ms->attrs.offer_answer) { l = l->next; continue; } __auto_type next = l->next; struct call_media * other_cm = ms->media; __unsubscribe_media(other_cm, cm); __unsubscribe_media(cm, other_cm); l = next; } } static void __unsubscribe_medias_from_all(struct call_monologue *ml) { for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type subcription = media->media_subscriptions.head; subcription; ) { __auto_type next = subcription->next; __unsubscribe_media_link(media, subcription); subcription = next; } } } /** * Check whether this monologue medias are subscribed to a single other monologue medias. */ struct call_monologue * ml_medias_subscribed_to_single_ml(struct call_monologue *ml) { /* detect monologues multiplicity */ struct call_monologue * return_ml = NULL; for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type l = media->media_subscriptions.head; l; l = l->next) { struct media_subscription * ms = l->data; if (!return_ml) return_ml = ms->monologue; else if (ms->monologue != return_ml) return NULL; } } return return_ml; } void __add_media_subscription(struct call_media * which, struct call_media * to, const struct sink_attrs *attrs) { if (t_hash_table_lookup(which->media_subscriptions_ht, to)) { ilog(LOG_DEBUG, "Media with monologue tag '" STR_FORMAT_M "' (index: %d) is already subscribed" " to media with monologue tag '" STR_FORMAT_M "' (index: %d)", STR_FMT_M(&which->monologue->tag), which->index, STR_FMT_M(&to->monologue->tag), to->index); return; } ilog(LOG_DEBUG, "Subscribing media with monologue tag '" STR_FORMAT_M "' (index: %d) " "to media with monologue tag '" STR_FORMAT_M "' (index: %d)", STR_FMT_M(&which->monologue->tag), which->index, STR_FMT_M(&to->monologue->tag), to->index); struct media_subscription *which_ms = g_slice_alloc0(sizeof(*which_ms)); struct media_subscription *to_rev_ms = g_slice_alloc0(sizeof(*to_rev_ms)); which_ms->media = to; to_rev_ms->media = which; which_ms->monologue = to->monologue; to_rev_ms->monologue = which->monologue; /* preserve attributes if they were present previously */ if (attrs) { which_ms->attrs = * attrs; to_rev_ms->attrs = * attrs; } /* keep offer-answer subscriptions first in the list */ if (!attrs || !attrs->offer_answer) { t_queue_push_tail(&which->media_subscriptions, which_ms); t_queue_push_tail(&to->media_subscribers, to_rev_ms); which_ms->link = to->media_subscribers.tail; to_rev_ms->link = which->media_subscriptions.tail; } else { t_queue_push_head(&which->media_subscriptions, which_ms); t_queue_push_head(&to->media_subscribers, to_rev_ms); which_ms->link = to->media_subscribers.head; to_rev_ms->link = which->media_subscriptions.head; } t_hash_table_insert(which->media_subscriptions_ht, to, to_rev_ms->link); t_hash_table_insert(to->media_subscribers_ht, which, which_ms->link); } /** * Subscribe medias to each other. */ static void __subscribe_medias_both_ways(struct call_media * a, struct call_media * b) { if (!a || !b) return; /* retrieve previous subscriptions to retain attributes */ struct media_subscription *a_ms = call_get_media_subscription(a->media_subscriptions_ht, b); struct media_subscription *b_ms = call_get_media_subscription(b->media_subscriptions_ht, a); /* copy out attributes */ struct sink_attrs a_attrs = {0,}; struct sink_attrs b_attrs = {0,}; if (a_ms) a_attrs = a_ms->attrs; if (b_ms) b_attrs = b_ms->attrs; /* override/reset some attributes */ a_attrs.offer_answer = b_attrs.offer_answer = true; a_attrs.egress = b_attrs.egress = false; a_attrs.rtcp_only = b_attrs.rtcp_only = false; /* release existing subscriptions both ways */ __unsubscribe_all_offer_answer_medias(a); __unsubscribe_all_offer_answer_medias(b); /* (re)create, preserving existing attributes if there have been any */ __add_media_subscription(a, b, &a_attrs); __add_media_subscription(b, a, &b_attrs); } /** * Retrieve exsisting media subscriptions for a call monologue. */ struct media_subscription *call_get_media_subscription(subscription_ht ht, struct call_media * cm) { subscription_list *l = t_hash_table_lookup(ht, cm); if (!l) return NULL; return l->data; } /** * Retrieve top most media subscription of top media for a given call monologue. * It's useful for offer/answer model cases, * where most of cases single-to-single subscription model is used. */ struct media_subscription *call_get_top_media_subscription(struct call_monologue *ml) { for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; __auto_type subcription = media->media_subscriptions.head; if (subcription) return subcription->data; } return NULL; } /* called with call->master_lock held in W */ __attribute__((nonnull(1, 2, 3))) int monologue_publish(struct call_monologue *ml, sdp_streams_q *streams, sdp_ng_flags *flags) { __call_monologue_init_from_flags(ml, NULL, flags); if (flags->exclude_recording) ML_SET(ml, NO_RECORDING); for (__auto_type l = streams->head; l; l = l->next) { struct stream_params *sp = l->data; struct call_media *media = __get_media(ml, sp, flags, 0); __media_init_from_flags(media, NULL, sp, flags); codec_store_populate(&media->codecs, &sp->codecs, .allow_asymmetric = !!flags->allow_asymmetric_codecs); if (codec_store_accept_one(&media->codecs, &flags->codec_accept, !!flags->accept_any)) return -1; // the most we can do is receive bf_copy(&media->media_flags, MEDIA_FLAG_RECV, &sp->sp_flags, SP_FLAG_SEND); if (sp->rtp_endpoint.port) { __dtls_logic(flags, media, sp); __generate_crypto(flags, media, NULL); } unsigned int num_ports = proto_num_ports(sp->num_ports, media, flags, true); /* local interface selection */ __init_interface(media, &flags->interface, num_ports); if (media->logical_intf == NULL) return -1; // XXX return error code /* ICE stuff - must come after interface and address family selection */ __ice_offer(flags, media, media, ice_is_restart(media->ice_agent, sp)); MEDIA_SET(media, INITIALIZED); if (!sp->rtp_endpoint.port) { /* Zero port: stream has been rejected. * RFC 3264, chapter 6: * If a stream is rejected, the offerer and answerer MUST NOT * generate media (or RTCP packets) for that stream. */ __disable_streams(media, num_ports); continue; } struct endpoint_map *em = __get_endpoint_map(media, num_ports, NULL, flags, true); if (!em) return -1; // XXX error - no ports __num_media_streams(media, num_ports); __assign_stream_fds(media, &em->intf_sfds); // XXX this should be covered by __update_init_subscribers ? if (__init_streams(media, NULL, sp, flags, NULL)) return -1; __ice_start(media); ice_update(media->ice_agent, sp, false); } return 0; } /* called with call->master_lock held in W */ __attribute__((nonnull(1, 2, 3, 4))) static int monologue_subscribe_request1(struct call_monologue *src_ml, struct call_monologue *dst_ml, sdp_ng_flags *flags, unsigned int *index) { unsigned int idx_diff = 0, rev_idx_diff = 0; for (__auto_type l = src_ml->last_in_sdp_streams.head; l; l = l->next) { struct stream_params *sp = l->data; struct call_media *dst_media = __get_media(dst_ml, sp, flags, (*index)++); struct call_media *src_media = __get_media(src_ml, sp, flags, 0); /* subscribe dst_ml (subscriber) to src_ml, don't forget to carry the egress flag, if required */ __add_media_subscription(dst_media, src_media, &(struct sink_attrs) { .egress = !!flags->egress }); /* mirroring, so vice-versa: src_media gets subscribed to dst_media (subscriber) */ if (flags->rtcp_mirror) __add_media_subscription(src_media, dst_media, &(struct sink_attrs) { .egress = !!flags->egress, .rtcp_only = true }); // track media index difference if one ml is subscribed to multiple other mls if (idx_diff == 0 && dst_media->index > src_media->index) idx_diff = dst_media->index - src_media->index; if (rev_idx_diff == 0 && src_media->index > dst_media->index) rev_idx_diff = src_media->index - dst_media->index; __media_init_from_flags(src_media, dst_media, sp, flags); codec_store_populate(&dst_media->codecs, &src_media->codecs, .allow_asymmetric = !!flags->allow_asymmetric_codecs); codec_store_strip(&dst_media->codecs, &flags->codec_strip, flags->codec_except); codec_store_strip(&dst_media->codecs, &flags->codec_consume, flags->codec_except); codec_store_strip(&dst_media->codecs, &flags->codec_mask, flags->codec_except); codec_store_offer(&dst_media->codecs, &flags->codec_offer, &sp->codecs); codec_store_transcode(&dst_media->codecs, &flags->codec_transcode, &sp->codecs); codec_store_synthesise(&dst_media->codecs, &src_media->codecs); codec_handlers_update(dst_media, src_media, .flags = flags, .sp = sp, .allow_asymmetric = !!flags->allow_asymmetric_codecs); if (!flags->inactive) bf_copy(&dst_media->media_flags, MEDIA_FLAG_SEND, &src_media->media_flags, SP_FLAG_RECV); else MEDIA_CLEAR(dst_media, SEND); MEDIA_CLEAR(dst_media, RECV); __rtcp_mux_set(flags, dst_media); __generate_crypto(flags, dst_media, src_media); unsigned int num_ports = proto_num_ports(sp->num_ports, dst_media, flags, false); // interface selection __init_interface(dst_media, &flags->interface, num_ports); if (dst_media->logical_intf == NULL) return -1; // XXX return error code __ice_offer(flags, dst_media, src_media, ice_is_restart(src_media->ice_agent, sp)); struct endpoint_map *em = __get_endpoint_map(dst_media, num_ports, NULL, flags, true); if (!em) return -1; // XXX error - no ports __num_media_streams(dst_media, num_ports); __assign_stream_fds(dst_media, &em->intf_sfds); if (__init_streams(dst_media, NULL, NULL, flags, NULL)) return -1; __update_init_subscribers(src_media, NULL, NULL, flags->opmode); __update_init_subscribers(dst_media, NULL, NULL, flags->opmode); } return 0; } /* called with call->master_lock held in W */ __attribute__((nonnull(1, 2, 3))) int monologue_subscribe_request(const subscription_q *srms, struct call_monologue *dst_ml, sdp_ng_flags *flags) { unsigned int index = 1; /* running counter for output/dst medias */ __unsubscribe_medias_from_all(dst_ml); __call_monologue_init_from_flags(dst_ml, NULL, flags); g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (auto_iter(sl, srms->head); sl; sl = sl->next) { struct media_subscription *ms = sl->data; struct call_monologue *src_ml = ms->monologue; if (!src_ml) continue; if (!g_queue_find(&mls, src_ml)) { int ret = monologue_subscribe_request1(src_ml, dst_ml, flags, &index); g_queue_push_tail(&mls, src_ml); if (ret) return -1; } /* update last used origin: copy from source to the dest monologue */ if (src_ml && src_ml->session_last_sdp_orig && !dst_ml->session_last_sdp_orig) dst_ml->session_last_sdp_orig = sdp_orig_dup(src_ml->session_last_sdp_orig); } return 0; } /* called with call->master_lock held in W */ __attribute__((nonnull(1, 2, 3))) int monologue_subscribe_answer(struct call_monologue *dst_ml, sdp_ng_flags *flags, sdp_streams_q *streams) { struct media_subscription *rev_ms = NULL; for (__auto_type l = streams->head; l; l = l->next) { struct stream_params * sp = l->data; struct call_media * dst_media = __get_media(dst_ml, sp, flags, 0); if (!dst_media) continue; /* set src_media based on subscription (assuming it is one-to-one) * TODO: this should probably be reworked to support one-to-multi subscriptions. */ __auto_type src_ml_media_it = dst_media->media_subscriptions.head; struct media_subscription * ms = src_ml_media_it->data; struct call_media * src_media = ms->media; if (!src_media) continue; rev_ms = call_get_media_subscription(src_media->media_subscribers_ht, dst_media); if (rev_ms) rev_ms->attrs.transcoding = 0; __media_init_from_flags(dst_media, NULL, sp, flags); if (flags->allow_transcoding) { codec_store_populate(&dst_media->codecs, &sp->codecs, .codec_set = flags->codec_set, .answer_only = true, .allow_asymmetric = !!flags->allow_asymmetric_codecs); codec_store_strip(&dst_media->codecs, &flags->codec_strip, flags->codec_except); codec_store_offer(&dst_media->codecs, &flags->codec_offer, &sp->codecs); } else { codec_store_populate(&dst_media->codecs, &sp->codecs, .answer_only = true, .allow_asymmetric = !!flags->allow_asymmetric_codecs); if (!codec_store_is_full_answer(&src_media->codecs, &dst_media->codecs)) return -1; } codec_handlers_update(src_media, dst_media, .flags = flags, .allow_asymmetric = !!flags->allow_asymmetric_codecs); codec_handlers_update(dst_media, src_media, .flags = flags, .sp = sp, .allow_asymmetric = !!flags->allow_asymmetric_codecs, .reset_transcoding = true); __dtls_logic(flags, dst_media, sp); if (__init_streams(dst_media, NULL, sp, flags, NULL)) return -1; MEDIA_CLEAR(dst_media, RECV); bf_copy(&dst_media->media_flags, MEDIA_FLAG_SEND, &sp->sp_flags, SP_FLAG_RECV); /* TODO: check answer SDP parameters */ MEDIA_SET(dst_media, INITIALIZED); __update_init_subscribers(dst_media, sp, flags, flags->opmode); __media_unconfirm(dst_media, "subscribe answer event"); } /* TODO: move inside the cycle above, to reduce iterations amount */ g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (int i = 0; i < dst_ml->medias->len; i++) { struct call_media * dst_media = dst_ml->medias->pdata[i]; if (!dst_media) continue; /* TODO: probably we should take care about subscribers as well? */ for (__auto_type sub = dst_media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; if (!g_queue_find(&mls, ms->monologue)) { media_update_transcoding_flag(ms->media); __update_init_subscribers(ms->media, NULL, NULL, flags->opmode); __media_unconfirm(ms->media, "subscribe answer event"); g_queue_push_tail(&mls, ms->monologue); } } } return 0; } /* called with call->master_lock held in W */ __attribute__((nonnull(1, 2))) int monologue_unsubscribe(struct call_monologue *dst_ml, sdp_ng_flags *flags) { for (unsigned int i = 0; i < dst_ml->medias->len; i++) { struct call_media *media = dst_ml->medias->pdata[i]; if (!media) continue; __media_unconfirm(media, "media unsubscribe"); /* TODO: should we care about subscribers as well? */ for (__auto_type l = media->media_subscriptions.head; l; ) { __auto_type next = l->next; struct media_subscription * ms = l->data; struct call_media * src_media = ms->media; if (!src_media) continue; __media_unconfirm(src_media, "media unsubscribe"); __unsubscribe_media_link(media, l); __update_init_subscribers(src_media, NULL, NULL, flags->opmode); l = next; } __update_init_subscribers(media, NULL, NULL, flags->opmode); } return 0; } static int __rtp_stats_sort(const void *ap, const void *bp) { const struct rtp_stats *a = ap, *b = bp; /* descending order */ if (atomic64_get(&a->packets) > atomic64_get(&b->packets)) return -1; if (atomic64_get(&a->packets) < atomic64_get(&b->packets)) return 1; return 0; } const rtp_payload_type *__rtp_stats_codec(struct call_media *m) { struct packet_stream *ps; GList *values; struct rtp_stats *rtp_s; const rtp_payload_type *rtp_pt = NULL; /* we only use the primary packet stream for the time being */ if (!m->streams.head) return NULL; ps = m->streams.head->data; values = g_hash_table_get_values(ps->rtp_stats); if (!values) return NULL; values = g_list_sort(values, __rtp_stats_sort); /* payload type with the most packets */ rtp_s = values->data; if (atomic64_get(&rtp_s->packets) == 0) goto out; rtp_pt = get_rtp_payload_type(rtp_s->payload_type, &m->codecs); out: g_list_free(values); return rtp_pt; /* may be NULL */ } void add_total_calls_duration_in_interval(struct timeval *interval_tv) { struct timeval ongoing_calls_dur = add_ongoing_calls_dur_in_interval( &rtpe_latest_graphite_interval_start, interval_tv); RTPE_STATS_ADD(total_calls_duration_intv, timeval_us(&ongoing_calls_dur)); } static struct timeval add_ongoing_calls_dur_in_interval(struct timeval *interval_start, struct timeval *interval_duration) { struct timeval call_duration, res = {0}; struct call_monologue *ml; ITERATE_CALL_LIST_START(CALL_ITERATOR_GRAPHITE, call); if (!call->monologues.head || IS_FOREIGN_CALL(call)) goto next; ml = call->monologues.head->data; if (timercmp(interval_start, &ml->started, >)) { timeval_add(&res, &res, interval_duration); } else { timeval_subtract(&call_duration, &rtpe_now, &ml->started); timeval_add(&res, &res, &call_duration); } next: ; ITERATE_CALL_LIST_NEXT_END(call); return res; } static void __call_cleanup(call_t *c) { for (__auto_type l = c->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; send_timer_put(&ps->send_timer); jb_put(&ps->jb); __unkernelize(ps, "final call cleanup"); dtls_shutdown(ps); ps->selected_sfd = NULL; t_queue_clear(&ps->sfds); crypto_cleanup(&ps->crypto); t_queue_clear_full(&ps->rtp_sinks, free_sink_handler); t_queue_clear_full(&ps->rtcp_sinks, free_sink_handler); t_queue_clear_full(&ps->rtp_mirrors, free_sink_handler); } for (__auto_type l = c->medias.head; l; l = l->next) { struct call_media *md = l->data; ice_shutdown(&md->ice_agent); media_stop(md); t38_gateway_put(&md->t38_gateway); audio_player_free(md); } for (__auto_type l = c->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; __monologue_stop(ml); media_player_put(&ml->player); media_player_put(&ml->rec_player); if (ml->tone_freqs) g_array_free(ml->tone_freqs, true); if (ml->janus_session) obj_put_o((void *) ml->janus_session); ml->janus_session = NULL; } while (c->stream_fds.head) { stream_fd *sfd = t_queue_pop_head(&c->stream_fds); stream_fd_release(sfd); obj_put(sfd); } recording_finish(c, false); } /* called lock-free, but must hold a reference to the call */ void call_destroy(call_t *c) { struct packet_stream *ps=0; struct call_monologue *ml; struct call_media *md; GList *k; const rtp_payload_type *rtp_pt; if (!c) { return; } rwlock_lock_w(&rtpe_callhash_lock); call_t *call_ht = NULL; t_hash_table_steal_extended(rtpe_callhash, &c->callid, NULL, &call_ht); if (call_ht) { if (call_ht != c) { t_hash_table_insert(rtpe_callhash, &call_ht->callid, call_ht); call_ht = NULL; } else RTPE_GAUGE_DEC(total_sessions); } rwlock_unlock_w(&rtpe_callhash_lock); // if call not found in callhash => previously deleted if (!call_ht) return; obj_put(c); statistics_update_ip46_inc_dec(c, CMC_DECREMENT); statistics_update_foreignown_dec(c); redis_delete(c, rtpe_redis_write); __call_iterator_remove(c); rwlock_lock_w(&c->master_lock); /* at this point, no more packet streams can be added */ mqtt_timer_stop(&c->mqtt_timer); if (!IS_OWN_CALL(c)) goto no_stats_output; ///// stats output ilog(LOG_INFO, "Final packet stats:"); for (__auto_type l = c->monologues.head; l; l = l->next) { ml = l->data; // stats output only - no cleanups ilog(LOG_INFO, "--- Tag '" STR_FORMAT_M "'%s"STR_FORMAT"%s, created " "%u:%02u ago for branch '" STR_FORMAT_M "'", STR_FMT_M(&ml->tag), ml->label.s ? " (label '" : "", STR_FMT(ml->label.s ? &ml->label : &STR_EMPTY), ml->label.s ? "')" : "", (unsigned int) (rtpe_now.tv_sec - ml->created) / 60, (unsigned int) (rtpe_now.tv_sec - ml->created) % 60, STR_FMT_M(&ml->viabranch)); for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type ll = media->media_subscriptions.head; ll; ll = ll->next) { struct media_subscription * ms = ll->data; ilog(LOG_DEBUG, "--- subscribed to media with monologue tag '" STR_FORMAT_M "' (index: %d)", STR_FMT_M(&ms->monologue->tag), ms->media->index); } } for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type ll = media->media_subscribers.head; ll; ll = ll->next) { struct media_subscription * ms = ll->data; ilog(LOG_DEBUG, "--- subscription for media with monologue tag '" STR_FORMAT_M "' (index: %d)", STR_FMT_M(&ms->monologue->tag), ms->media->index); } } for (unsigned int m = 0; m < ml->medias->len; m++) { md = ml->medias->pdata[m]; if (!md) continue; // stats output only - no cleanups #define MLL_PREFIX "------ Media #%u ("STR_FORMAT" over %s) using " /* media log line prefix */ #define MLL_COMMON /* common args */ \ md->index, \ STR_FMT(&md->type), \ md->protocol ? md->protocol->name : "(unknown)" if (proto_is_rtp(md->protocol)) { rtp_pt = __rtp_stats_codec(md); if (!rtp_pt) ilog(LOG_INFO, MLL_PREFIX "unknown codec", MLL_COMMON); else ilog(LOG_INFO, MLL_PREFIX STR_FORMAT, MLL_COMMON, STR_FMT(&rtp_pt->encoding_with_params)); } else { ilog(LOG_INFO, MLL_PREFIX STR_FORMAT, MLL_COMMON, STR_FMT(&md->format_str)); } for (__auto_type o = md->streams.head; o; o = o->next) { ps = o->data; // stats output only - no cleanups if (PS_ISSET(ps, FALLBACK_RTCP)) continue; char *addr = sockaddr_print_buf(&ps->endpoint.address); endpoint_t *local_endpoint = packet_stream_local_addr(ps); char *local_addr = sockaddr_print_buf(&local_endpoint->address); ilog(LOG_INFO, "--------- Port %15s:%-5u <> %s%15s:%-5u%s%s, SSRC %s%" PRIx32 "%s, in " UINT64F " p, " UINT64F " b, " UINT64F " e, " UINT64F " ts, " "out " UINT64F " p, " UINT64F " b, " UINT64F " e", local_addr, (unsigned int) local_endpoint->port, FMT_M(addr, ps->endpoint.port), (!PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP)) ? " (RTCP)" : "", FMT_M(ps->ssrc_in[0] ? ps->ssrc_in[0]->parent->h.ssrc : 0), atomic64_get_na(&ps->stats_in->packets), atomic64_get_na(&ps->stats_in->bytes), atomic64_get_na(&ps->stats_in->errors), rtpe_now.tv_sec - packet_stream_last_packet(ps), atomic64_get_na(&ps->stats_out->packets), atomic64_get_na(&ps->stats_out->bytes), atomic64_get_na(&ps->stats_out->errors)); } } k = g_hash_table_get_values(ml->ssrc_hash->ht); while (k) { struct ssrc_entry_call *se = k->data; // stats output only - no cleanups if (!se->stats_blocks.length || !se->lowest_mos || !se->highest_mos) goto next_k; int mos_samples = (se->stats_blocks.length - se->no_mos_count); if (mos_samples < 1) mos_samples = 1; ilog(LOG_INFO, "--- SSRC %s%" PRIx32 "%s", FMT_M(se->h.ssrc)); ilog(LOG_INFO, "------ Average MOS %" PRIu64 ".%" PRIu64 ", " "lowest MOS %" PRIu64 ".%" PRIu64 " (at %u:%02u), " "highest MOS %" PRIu64 ".%" PRIu64 " (at %u:%02u) lost:%u", se->average_mos.mos / mos_samples / 10, se->average_mos.mos / mos_samples % 10, se->lowest_mos->mos / 10, se->lowest_mos->mos % 10, (unsigned int) (timeval_diff(&se->lowest_mos->reported, &c->created) / 1000000) / 60, (unsigned int) (timeval_diff(&se->lowest_mos->reported, &c->created) / 1000000) % 60, se->highest_mos->mos / 10, se->highest_mos->mos % 10, (unsigned int) (timeval_diff(&se->highest_mos->reported, &c->created) / 1000000) / 60, (unsigned int) (timeval_diff(&se->highest_mos->reported, &c->created) / 1000000) % 60, (unsigned int) se->packets_lost); ilog(LOG_INFO, "------ respective (avg/min/max) jitter %" PRIu64 "/%" PRIu64 "/%" PRIu64 " ms, " "RTT-e2e %" PRIu64 ".%" PRIu64 "/%" PRIu64 ".%" PRIu64 "/%" PRIu64 ".%" PRIu64 " ms, " "RTT-dsct %" PRIu32 ".%" PRIu32 "/%" PRIu32 ".%" PRIu32 "/%" PRIu32 ".%" PRIu32 " ms, " "packet loss %" PRIu64 "/%" PRIu64 "/%" PRIu64 "%%", se->average_mos.jitter / mos_samples, se->lowest_mos->jitter, se->highest_mos->jitter, se->average_mos.rtt / mos_samples / 1000, (se->average_mos.rtt / mos_samples / 100) % 10, se->lowest_mos->rtt / 1000, (se->lowest_mos->rtt / 100) % 10, se->highest_mos->rtt / 1000, (se->highest_mos->rtt / 100) % 10, se->average_mos.rtt_leg / mos_samples / 1000, (se->average_mos.rtt_leg / mos_samples / 100) % 10, se->lowest_mos->rtt_leg / 1000, (se->lowest_mos->rtt_leg / 100) % 10, se->highest_mos->rtt_leg / 1000, (se->highest_mos->rtt_leg / 100) % 10, se->average_mos.packetloss / mos_samples, se->lowest_mos->packetloss, se->highest_mos->packetloss); next_k: k = g_list_delete_link(k, k); } } no_stats_output: // cleanups statistics_update_oneway(c); cdr_update_entry(c); __call_cleanup(c); rwlock_unlock_w(&c->master_lock); } int call_stream_address46(char *o, struct packet_stream *ps, enum stream_address_format format, int *len, const struct local_intf *ifa, bool keep_unspec) { int l = 0; const struct intf_address *ifa_addr; if (!ifa) { if (ps->selected_sfd) ifa = ps->selected_sfd->local_intf; else ifa = get_any_interface_address(ps->media->logical_intf, ps->media->desired_family); } ifa_addr = &ifa->spec->local_address; if (format == SAF_NG) l += sprintf(o + l, "%s ", ifa_addr->addr.family->rfc_name); if (PS_ISSET(ps, ZERO_ADDR) && keep_unspec) l += sprintf(o + l, "%s", ifa_addr->addr.family->unspec_string); else l += sprintf(o + l, "%s", sockaddr_print_buf(&ifa->advertised_address.addr)); *len = l; return ifa_addr->addr.family->af; } void media_subscription_free(struct media_subscription *p) { g_slice_free1(sizeof(*p), p); } void call_media_free(struct call_media **mdp) { struct call_media *md = *mdp; crypto_params_sdes_queue_clear(&md->sdes_in); crypto_params_sdes_queue_clear(&md->sdes_out); t_queue_clear(&md->streams); t_queue_clear(&md->endpoint_maps); codec_store_cleanup(&md->codecs); codec_handlers_free(md); codec_handler_free(&md->t38_handler); t38_gateway_put(&md->t38_gateway); t_queue_clear_full(&md->sdp_attributes, sdp_attr_free); t_queue_clear_full(&md->dtmf_recv, dtmf_event_free); t_queue_clear_full(&md->dtmf_send, dtmf_event_free); t_hash_table_destroy(md->media_subscribers_ht); t_hash_table_destroy(md->media_subscriptions_ht); t_queue_clear_full(&md->media_subscribers, media_subscription_free); t_queue_clear_full(&md->media_subscriptions, media_subscription_free); mutex_destroy(&md->dtmf_lock); g_slice_free1(sizeof(*md), md); *mdp = NULL; } void __monologue_free(struct call_monologue *m) { t_ptr_array_free(m->medias, true); g_hash_table_destroy(m->associated_tags); g_hash_table_destroy(m->media_ids); free_ssrc_hash(&m->ssrc_hash); if (m->last_out_sdp) g_string_free(m->last_out_sdp, TRUE); str_free_dup(&m->last_in_sdp); if (m->session_sdp_orig) sdp_orig_free(m->session_sdp_orig); if (m->session_last_sdp_orig) sdp_orig_free(m->session_last_sdp_orig); sdp_sessions_clear(&m->last_in_sdp_parsed); t_queue_clear_full(&m->sdp_attributes, sdp_attr_free); sdp_streams_clear(&m->last_in_sdp_streams); g_slice_free1(sizeof(*m), m); } static void __call_free(void *p) { call_t *c = p; struct call_monologue *m; struct call_media *md; struct packet_stream *ps; struct endpoint_map *em; //ilog(LOG_DEBUG, "freeing main call struct"); if (c->dtls_cert) obj_put(c->dtls_cert); mqtt_timer_stop(&c->mqtt_timer); while (c->monologues.head) { m = t_queue_pop_head(&c->monologues); __monologue_free(m); } while (c->medias.head) { md = t_queue_pop_head(&c->medias); call_media_free(&md); } while (c->endpoint_maps.head) { em = t_queue_pop_head(&c->endpoint_maps); t_queue_clear_full(&em->intf_sfds, free_sfd_intf_list); g_slice_free1(sizeof(*em), em); } t_hash_table_destroy(c->tags); t_hash_table_destroy(c->viabranches); t_hash_table_destroy(c->labels); while (c->streams.head) { ps = t_queue_pop_head(&c->streams); crypto_cleanup(&ps->crypto); t_queue_clear(&ps->sfds); g_hash_table_destroy(ps->rtp_stats); for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_in); u++) ssrc_ctx_put(&ps->ssrc_in[u]); for (unsigned int u = 0; u < G_N_ELEMENTS(ps->ssrc_out); u++) ssrc_ctx_put(&ps->ssrc_out[u]); bufferpool_unref(ps->stats_in); bufferpool_unref(ps->stats_out); g_slice_free1(sizeof(*ps), ps); } call_buffer_free(&c->buffer); mutex_destroy(&c->buffer_lock); rwlock_destroy(&c->master_lock); assert(c->stream_fds.head == NULL); } static call_t *call_create(const str *callid) { call_t *c; ilog(LOG_NOTICE, "Creating new call"); c = obj_alloc0("call", sizeof(*c), __call_free); mutex_init(&c->buffer_lock); call_buffer_init(&c->buffer); rwlock_init(&c->master_lock); c->tags = tags_ht_new(); c->viabranches = tags_ht_new(); c->labels = labels_ht_new(); call_str_cpy(c, &c->callid, callid); c->created = rtpe_now; c->dtls_cert = dtls_cert(); c->tos = rtpe_config.default_tos; c->poller = rtpe_get_poller(); if (rtpe_config.cpu_affinity) c->cpu_affinity = call_socket_cpu_affinity++ % rtpe_config.cpu_affinity; else c->cpu_affinity = -1; for (int i = 0; i < NUM_CALL_ITERATORS; i++) { mutex_init(&c->iterator[i].next_lock); mutex_init(&c->iterator[i].prev_lock); } return c; } /* returns call with master_lock held in W */ call_t *call_get_or_create(const str *callid, bool exclusive) { call_t *c; restart: rwlock_lock_r(&rtpe_callhash_lock); c = t_hash_table_lookup(rtpe_callhash, callid); if (!c) { rwlock_unlock_r(&rtpe_callhash_lock); /* completely new call-id, create call */ c = call_create(callid); rwlock_lock_w(&rtpe_callhash_lock); if (t_hash_table_lookup(rtpe_callhash, callid)) { /* preempted */ rwlock_unlock_w(&rtpe_callhash_lock); obj_put(c); goto restart; } t_hash_table_insert(rtpe_callhash, &c->callid, obj_get(c)); RTPE_GAUGE_INC(total_sessions); rwlock_lock_w(&c->master_lock); rwlock_unlock_w(&rtpe_callhash_lock); for (int i = 0; i < NUM_CALL_ITERATORS; i++) { c->iterator[i].link.data = obj_get(c); call_t *first_call; while (1) { // lock the list mutex_lock(&rtpe_call_iterators[i].lock); // if there is a first entry, lock that first_call = NULL; if (rtpe_call_iterators[i].first) { first_call = rtpe_call_iterators[i].first->data; // coverity[lock_order : FALSE] if (mutex_trylock(&first_call->iterator[i].prev_lock)) { mutex_unlock(&rtpe_call_iterators[i].lock); continue; // retry } } // we can insert now break; } rtpe_call_iterators[i].first = t_list_insert_before_link(rtpe_call_iterators[i].first, rtpe_call_iterators[i].first, &c->iterator[i].link); if (first_call) mutex_unlock(&first_call->iterator[i].prev_lock); mutex_unlock(&rtpe_call_iterators[i].lock); } if (mqtt_publish_scope() == MPS_CALL) mqtt_timer_start(&c->mqtt_timer, c, NULL); } else { if (exclusive) c = NULL; else { obj_hold(c); rwlock_lock_w(&c->master_lock); } rwlock_unlock_r(&rtpe_callhash_lock); } if (c) log_info_call(c); return c; } /** returns call with master_lock held in W, or NULL if not found * * The lookup of a call is performed via its call-ID. * A reference to the call object is returned with * the reference-count increased by one. * * Therefore the code must use obj_put() on the call after call_get() * and after it's done operating on the object. */ call_t *call_get(const str *callid) { call_t *ret; rwlock_lock_r(&rtpe_callhash_lock); ret = t_hash_table_lookup(rtpe_callhash, callid); if (!ret) { rwlock_unlock_r(&rtpe_callhash_lock); return NULL; } rwlock_lock_w(&ret->master_lock); obj_hold(ret); rwlock_unlock_r(&rtpe_callhash_lock); log_info_call(ret); return ret; } /* returns call with master_lock held in W, or possibly NULL iff opmode == OP_ANSWER */ call_t *call_get_opmode(const str *callid, enum call_opmode opmode) { if (opmode == OP_OFFER) return call_get_or_create(callid, false); return call_get(callid); } /** * Create a new monologue, without assigning a tag to that. * Allocate all required hash tables for it. * * Also give the non reference-counted ptr to the call it belongs to. * * Must be called with call->master_lock held in W. */ struct call_monologue *__monologue_create(call_t *call) { struct call_monologue *ret; __C_DBG("creating new monologue"); ret = uid_slice_alloc0(ret, &call->monologues.q); ret->call = call; ret->created = rtpe_now.tv_sec; ret->associated_tags = g_hash_table_new(g_direct_hash, g_direct_equal); ret->medias = medias_arr_new(); ret->media_ids = g_hash_table_new((GHashFunc) str_hash, (GEqualFunc) str_equal); ret->ssrc_hash = create_ssrc_hash_call(); ret->sdp_attr_print = sdp_insert_monologue_attributes; /* explicitely set b=RR/b=RS to -1 so it's not considered as 0 inadvertently */ ret->sdp_session_rr = ret->sdp_session_rs = -1; gettimeofday(&ret->started, NULL); return ret; } /** * Assign a new tag to the given monologue. * Additionally, remove older monologue tag from the correlated call tags, * and add a newer one. * * Must be called with call->master_lock held in W. */ void __monologue_tag(struct call_monologue *ml, const str *tag) { call_t *call = ml->call; __C_DBG("tagging monologue with '"STR_FORMAT"'", STR_FMT(tag)); if (ml->tag.s) t_hash_table_remove(call->tags, &ml->tag); /* remove tag from tags of the call object */ call_str_cpy(call, &ml->tag, tag); t_hash_table_insert(call->tags, &ml->tag, ml); /* and insert a new one */ } void __monologue_viabranch(struct call_monologue *ml, const str *viabranch) { call_t *call = ml->call; if (!viabranch || !viabranch->len) return; __C_DBG("tagging monologue with viabranch '"STR_FORMAT"'", STR_FMT(viabranch)); if (ml->viabranch.s) t_hash_table_remove(call->viabranches, &ml->viabranch); call_str_cpy(call, &ml->viabranch, viabranch); t_hash_table_insert(call->viabranches, &ml->viabranch, ml); } static void __unconfirm_sinks(sink_handler_q *q, const char *reason) { for (__auto_type l = q->head; l; l = l->next) { struct sink_handler *sh = l->data; __stream_unconfirm(sh->sink, reason); } } /** * Unconfirms sinks and streams of all monologue medias. * must be called with call->master_lock held in W */ void __monologue_unconfirm(struct call_monologue *monologue, const char *reason) { if (!monologue) return; for (unsigned int i = 0; i < monologue->medias->len; i++) { struct call_media *media = monologue->medias->pdata[i]; if (!media) continue; __media_unconfirm(media, reason); } } /** * Unconfirms sinks and streams of given media. * must be called with call->master_lock held in W */ void __media_unconfirm(struct call_media *media, const char *reason) { if (!media) return; for (__auto_type m = media->streams.head; m; m = m->next) { struct packet_stream *stream = m->data; __stream_unconfirm(stream, reason); __unconfirm_sinks(&stream->rtp_sinks, reason); __unconfirm_sinks(&stream->rtcp_sinks, reason); } } /** * Unconfirms all monologue medias and its subscribers/subscriptions. */ void dialogue_unconfirm(struct call_monologue *ml, const char *reason) { __monologue_unconfirm(ml, reason); /* TODO: this seems to be doing similar work as `__monologue_unconfirm()` * but works instead on subscriptions additionally. For the future * this should probably be deprecated and `__monologue_unconfirm()` * has to take the work on subscribers/subscriptions as well. */ for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type l = media->media_subscriptions.head; l; l = l->next) { struct media_subscription * ms = l->data; if (!ms->media) continue; __media_unconfirm(ms->media, reason); } for (__auto_type l = media->media_subscribers.head; l; l = l->next) { struct media_subscription * ms = l->data; if (!ms->media) continue; __media_unconfirm(ms->media, reason); } } } static void __unkernelize_sinks(sink_handler_q *q, const char *reason) { for (__auto_type l = q->head; l; l = l->next) { struct sink_handler *sh = l->data; unkernelize(sh->sink, reason); } } /** * Unkernelizes sinks and streams of given media. * call locked in R */ void call_media_unkernelize(struct call_media *media, const char *reason) { if (!media) return; for (__auto_type m = media->streams.head; m; m = m->next) { struct packet_stream *stream = m->data; unkernelize(stream, reason); __unkernelize_sinks(&stream->rtp_sinks, reason); __unkernelize_sinks(&stream->rtcp_sinks, reason); } } /* must be called with call->master_lock held in W */ static void __tags_unassociate_all(struct call_monologue *a) { GHashTableIter iter; g_hash_table_iter_init(&iter, a->associated_tags); struct call_monologue *b; while (g_hash_table_iter_next(&iter, (void **) &b, NULL)) g_hash_table_remove(b->associated_tags, a); g_hash_table_remove_all(a->associated_tags); } void monologue_destroy(struct call_monologue *monologue) { call_t *call; call = monologue->call; ilog(LOG_DEBUG, "Destroying monologue '" STR_FORMAT "' (" STR_FORMAT ")", STR_FMT(&monologue->tag), STR_FMT0(&monologue->viabranch)); __monologue_unconfirm(monologue, "destroying monologue"); __tags_unassociate_all(monologue); t_hash_table_remove(call->tags, &monologue->tag); if (monologue->viabranch.s) t_hash_table_remove(call->viabranches, &monologue->viabranch); // close sockets for (unsigned int i = 0; i < monologue->medias->len; i++) { struct call_media *m = monologue->medias->pdata[i]; if (!m) continue; for (__auto_type k = m->streams.head; k; k = k->next) { struct packet_stream *ps = k->data; if (ps->selected_sfd && ps->selected_sfd->socket.local.port) ps->last_local_endpoint = ps->selected_sfd->socket.local; ps->selected_sfd = NULL; stream_fd *sfd; while ((sfd = t_queue_pop_head(&ps->sfds))) stream_fd_release(sfd); } } monologue->deleted = 0; } /* must be called with call->master_lock held in W */ static void __tags_unassociate(struct call_monologue *a, struct call_monologue *b) { g_hash_table_remove(a->associated_tags, b); g_hash_table_remove(b->associated_tags, a); } /** * Marks the monologue for destruction, or destroys it immediately. * It also iterates through the associated monologues and does the same for them. * * Returns `true`, if we need to update Redis. */ static bool monologue_delete_iter(struct call_monologue *a, int delete_delay) { call_t *call = a->call; if (!call) return 0; GList *associated = g_hash_table_get_values(a->associated_tags); bool update_redis = false; if (delete_delay > 0) { ilog(LOG_INFO, "Scheduling deletion of call branch '" STR_FORMAT_M "' " "(via-branch '" STR_FORMAT_M "') in %d seconds", STR_FMT_M(&a->tag), STR_FMT0_M(&a->viabranch), delete_delay); a->deleted = rtpe_now.tv_sec + delete_delay; if (!call->ml_deleted || call->ml_deleted > a->deleted) call->ml_deleted = a->deleted; } else { ilog(LOG_INFO, "Deleting call branch '" STR_FORMAT_M "' (via-branch '" STR_FORMAT_M "')", STR_FMT_M(&a->tag), STR_FMT0_M(&a->viabranch)); monologue_destroy(a); update_redis = true; } /* Look into all associated monologues: cascade deletion to those, * which have no other associations left */ for (GList *l = associated; l; l = l->next) { struct call_monologue *b = l->data; __tags_unassociate(a, b); if (g_hash_table_size(b->associated_tags) == 0) monologue_delete_iter(b, delete_delay); /* schedule deletion of B */ } g_list_free(associated); return update_redis; } /** * Based on the tag lookup the monologue in the 'tags' GHashTable of the call. * * Must be called with call->master_lock held in W. */ struct call_monologue *call_get_monologue(call_t *call, const str *fromtag) { return t_hash_table_lookup(call->tags, fromtag); } /** * Based on the monologue tag, try to lookup the monologue in the 'tags' GHashTable. * If not found create a new one (call_monologue) and associate with a given tag. * * Must be called with call->master_lock held in W. */ struct call_monologue *call_get_or_create_monologue(call_t *call, const str *fromtag) { struct call_monologue *ret = call_get_monologue(call, fromtag); if (!ret) { ret = __monologue_create(call); __monologue_tag(ret, fromtag); } return ret; } /** * Must be called with call->master_lock held in W. * * Also cancel scheduled deletion during offer/answer: * * Unmark a monologue that has been scheduled for deletion when it's * associated with another one, which happens during offer/answer. */ static void __tags_associate(struct call_monologue *a, struct call_monologue *b) { a->deleted = 0; b->deleted = 0; g_hash_table_insert(a->associated_tags, b, b); g_hash_table_insert(b->associated_tags, a, a); } /** * Check whether the call object contains some other monologues, which can have own associations. */ static bool call_monologues_associations_left(call_t * c) { for (__auto_type l = c->monologues.head; l; l = l->next) { struct call_monologue * ml = l->data; if (g_hash_table_size(ml->associated_tags) > 0) return true; } return false; } /** * Based on given From-tag create a new monologue for this dialog, * if given tag wasn't present in 'tags' of this call. * * In case this is an initial offer, create both dialog sides (monologues), * even though the tag will be empty for the monologue requiring the To-tag. * * Otherwise, try to lookup the 'other side' using via branch value, and tag it * using the given To-tag, if this associated monologue didn't have a tag before. * * Must be called with call->master_lock held in W. * * `dialogue` must be initialised to zero. */ static int call_get_monologue_new(struct call_monologue *monologues[2], call_t *call, const str *fromtag, const str *totag, const str *viabranch) { struct call_monologue *ret, *os = NULL; /* ret - initial offer, os - other side */ __C_DBG("getting monologue for tag '"STR_FORMAT"' in call '"STR_FORMAT"'", STR_FMT(fromtag), STR_FMT(&call->callid)); ret = call_get_monologue(call, fromtag); if (!ret) { /* this is a brand new offer */ ret = __monologue_create(call); __monologue_tag(ret, fromtag); goto new_branch; } __C_DBG("found existing monologue"); /* unkernelize existing monologue medias, which are subscribed to something */ dialogue_unconfirm(ret, "signalling on existing monologue"); /* If to-tag is present, retrieve it. * Create a new monologue for the other side, if the monologue with such to-tag not found. */ if (totag && totag->s) { struct call_monologue * monologue = call_get_monologue(call, totag); if (!monologue) goto new_branch; } if (!viabranch) { /* dialogue complete */ goto have_dialogue; } else { os = t_hash_table_lookup(call->viabranches, viabranch); if (os) { /* previously seen branch, use it */ __monologue_unconfirm(os, "dialogue/branch association changed"); goto have_dialogue; } } /* we need both sides of the dialogue even in the initial offer, so create * another monologue without to-tag (to be filled in later) */ new_branch: __C_DBG("create new \"other side\" monologue for viabranch "STR_FORMAT, STR_FMT0(viabranch)); os = __monologue_create(call); __monologue_viabranch(os, viabranch); have_dialogue: for (unsigned int i = 0; i < ret->medias->len; i++) { struct call_media *media = ret->medias->pdata[i]; if (!media) continue; for (__auto_type l = media->media_subscriptions.head; l; l = l->next) { struct media_subscription * ms = l->data; if (!ms->attrs.offer_answer) continue; if (!os) os = ms->monologue; if (totag && totag->s && !ms->monologue->tag.s) __monologue_tag(ms->monologue, totag); /* There should be only one monologue? * TODO: check if there's more than one-to-one mapping */ goto finish; } } finish: if (G_UNLIKELY(!os)) return -1; __tags_associate(ret, os); monologues[0] = ret; monologues[1] = os; return 0; } /** * Using the From-tag / To-tag get call monologues (dialog). Where: * - dialogue[0] is a monologue associated with the From-tag * - dialogue[1] is a monologue associated with the To-tag * * The request will be treated as a brand new offer, * in case the To-tag is still not know for this call. * * The function must be called with call->master_lock held in W. * * `dialogue` must be initialised to zero. */ static int call_get_dialogue(struct call_monologue *monologues[2], call_t *call, const str *fromtag, const str *totag, const str *viabranch) { struct call_monologue *ft, *tt; __C_DBG("getting dialogue for tags '"STR_FORMAT"'<>'"STR_FORMAT"' in call '"STR_FORMAT"'", STR_FMT(fromtag), STR_FMT(totag), STR_FMT(&call->callid)); /* we start with the to-tag. if it's not known, we treat it as a branched offer */ tt = call_get_monologue(call, totag); if (!tt) return call_get_monologue_new(monologues, call, fromtag, totag, viabranch); /* if the from-tag is known already, return that */ ft = call_get_monologue(call, fromtag); if (ft) { __C_DBG("found existing dialogue"); /* detect whether given ft's medias * already seen as subscribers of tt's medias, otherwise setup tags */ for (unsigned int i = 0; i < ft->medias->len; i++) { struct call_media *media = ft->medias->pdata[i]; if (!media) continue; /* try to find tt in subscriptions of ft */ for (__auto_type l = media->media_subscriptions.head; l; l = l->next) { struct media_subscription * ms = l->data; if (ms->monologue && ms->monologue == tt) goto done; } } /* it seems ft hasn't seen tt before */ goto tag_setup; } /* try to determine the monologue from the viabranch, * or using the top most tt's subscription, if there is one. * Otherwise just create a brand-new one. */ if (viabranch) ft = t_hash_table_lookup(call->viabranches, viabranch); /* top most subscription of tt */ if (!ft) { struct call_media *media = tt->medias->len ? tt->medias->pdata[0] : NULL; if (media && media->media_subscriptions.head) { struct media_subscription * ms = media->media_subscriptions.head->data; if (ms->monologue) ft = ms->monologue; } } /* otherwise create a brand-new one. * The lookup of the offer monologue from the answer monologue is only valid, * if the offer monologue belongs to an unanswered call (empty tag), * hence `ft->tag` has to be empty at this stage. */ if (!ft || ft->tag.s) ft = __monologue_create(call); tag_setup: if (ft == tt) return -1; // it's a hard error to have a monologue talking to itself /* the fromtag monologue may be newly created, or half-complete from the totag, or * derived from the viabranch. */ if (!ft->tag.s || str_cmp_str(&ft->tag, fromtag)) __monologue_tag(ft, fromtag); dialogue_unconfirm(ft, "dialogue signalling event"); dialogue_unconfirm(tt, "dialogue signalling event"); done: __monologue_unconfirm(ft, "dialogue signalling event"); dialogue_unconfirm(ft, "dialogue signalling event"); __tags_associate(ft, tt); /* just provide gotten dialogs, * which have all needed information about subscribers/subscriptions */ monologues[0] = ft; monologues[1] = tt; return 0; } /* fromtag and totag strictly correspond to the directionality of the message, not to the actual * SIP headers. IOW, the fromtag corresponds to the monologue sending this message, even if the * tag is actually from the TO header of the SIP message (as it would be in a 200 OK) */ int call_get_mono_dialogue(struct call_monologue *monologues[2], call_t *call, const str *fromtag, const str *totag, const str *viabranch) { /* initial offer */ if (!totag || !totag->s) return call_get_monologue_new(monologues, call, fromtag, NULL, viabranch); return call_get_dialogue(monologues, call, fromtag, totag, viabranch); } static void media_stop(struct call_media *m) { if (!m) return; t38_gateway_stop(m->t38_gateway); audio_player_stop(m); codec_handlers_stop(&m->codec_handlers_store, NULL); rtcp_timer_stop(&m->rtcp_timer); mqtt_timer_stop(&m->mqtt_timer); } /** * Stops media player of given monologue. */ static void __monologue_stop(struct call_monologue *ml) { media_player_stop(ml->player); media_player_stop(ml->rec_player); } /** * Stops media player and all medias of given monolgue. * If asked, stops all media subscribers as well. */ static void monologue_stop(struct call_monologue *ml, bool stop_media_subsribers) { /* monologue itself */ __monologue_stop(ml); for (unsigned int i = 0; i < ml->medias->len; i++) { media_stop(ml->medias->pdata[i]); } /* monologue's subscribers */ if (stop_media_subsribers) { g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type l = media->media_subscribers.head; l; l = l->next) { struct media_subscription * ms = l->data; media_stop(ms->media); if (!g_queue_find(&mls, ms->monologue)) { __monologue_stop(ms->monologue); g_queue_push_tail(&mls, ms->monologue); } } } } } // call must be locked in W. // unlocks the call and releases the reference prior to returning, even on error. int call_delete_branch(call_t *c, const str *branch, const str *fromtag, const str *totag, bencode_item_t *output, int delete_delay) { struct call_monologue *ml; int ret; const str *match_tag; bool update = false; if (delete_delay < 0) delete_delay = rtpe_config.delete_delay; for (__auto_type i = c->monologues.head; i; i = i->next) { ml = i->data; gettimeofday(&(ml->terminated), NULL); ml->term_reason = REGULAR; } if (!fromtag || !fromtag->len) goto del_all; if ((!totag || !totag->len) && branch && branch->len) { // try a via-branch match ml = t_hash_table_lookup(c->viabranches, branch); if (ml) goto do_delete; } match_tag = (totag && totag->len) ? totag : fromtag; ml = call_get_monologue(c, match_tag); if (!ml) { if (branch && branch->len) { // also try a via-branch match here ml = t_hash_table_lookup(c->viabranches, branch); if (ml) goto do_delete; } /* IMPORTANT! * last resort: try the from-tag, if we tried the to-tag before and see, * if the associated dialogue has an empty tag (unknown). * If that condition is met, then we delete the entire call. * * A use case for that is: `delete` done with from-tag and to-tag, * right away after an `offer` without the to-tag and without use of via-branch. * Then, looking up the offer side of the call through the from-tag * and then checking, if the call has not been answered (answer side has an empty to-tag), * gives a clue whether to delete an entire call. */ if (match_tag == totag) { ml = call_get_monologue(c, fromtag); if (ml) { struct call_monologue * sub_ml = ml_medias_subscribed_to_single_ml(ml); if (sub_ml && !sub_ml->tag.len) goto do_delete; } } ilog(LOG_INFO, "Tag '"STR_FORMAT"' in delete message not found, ignoring", STR_FMT(match_tag)); goto err; } do_delete: c->destroyed = rtpe_now; /* stop media player and all medias of ml. * same for media subscribers */ monologue_stop(ml, true); /* check, if we have some associated monologues left, which have own associations * which means they need a media to flow */ update = monologue_delete_iter(ml, delete_delay); /* if there are no associated dialogs, which still require media, then additionally * ensure, whether we can afford to destroy the whole call now. * Maybe some of them still need a media to flow */ bool del_stop = false; del_stop = call_monologues_associations_left(c); if (!del_stop) goto del_all; if (output) ng_call_stats(c, fromtag, totag, output, NULL); goto success_unlock; del_all: if (output) ng_call_stats(c, fromtag, totag, output, NULL); for (__auto_type i = c->monologues.head; i; i = i->next) { ml = i->data; monologue_stop(ml, false); } c->destroyed = rtpe_now; if (delete_delay > 0) { ilog(LOG_INFO, "Scheduling deletion of entire call in %d seconds", delete_delay); c->deleted = rtpe_now.tv_sec + delete_delay; rwlock_unlock_w(&c->master_lock); } else { ilog(LOG_INFO, "Deleting entire call"); rwlock_unlock_w(&c->master_lock); call_destroy(c); update = false; } goto success; success_unlock: rwlock_unlock_w(&c->master_lock); success: ret = 0; goto out; err: rwlock_unlock_w(&c->master_lock); ret = -1; goto out; out: if (update) redis_update_onekey(c, rtpe_redis_write); obj_put(c); return ret; } int call_delete_branch_by_id(const str *callid, const str *branch, const str *fromtag, const str *totag, bencode_item_t *output, int delete_delay) { call_t *c = call_get(callid); if (!c) { ilog(LOG_INFO, "Call-ID to delete not found"); return -1; } return call_delete_branch(c, branch, fromtag, totag, output, delete_delay); } rtpengine-mr12.5.1.22/daemon/call_interfaces.c000066400000000000000000003451321474347554000211260ustar00rootroot00000000000000#include "call_interfaces.h" #include #include #include #include #include #include #include "call.h" #include "helpers.h" #include "log.h" #include "redis.h" #include "sdp.h" #include "bencode.h" #include "str.h" #include "control_tcp.h" #include "control_udp.h" #include "control_ng.h" #include "rtp.h" #include "ice.h" #include "recording.h" #include "rtplib.h" #include "ssrc.h" #include "tcp_listener.h" #include "streambuf.h" #include "main.h" #include "load.h" #include "media_player.h" #include "dtmf.h" #include "codec.h" #include "dtmf.h" #include "control_ng_flags_parser.h" static pcre2_code *info_re; static pcre2_code *streams_re; bool trust_address_def; bool dtls_passive_def; enum basic_errors { NG_ERROR_NO_SDP_BODY = 1, NG_ERROR_NO_CALL_ID = 2, NG_ERROR_NO_FROM_TAG = 3, NG_ERROR_NO_TO_TAG = 4 }; static const char* _ng_basic_errors[] = { [NG_ERROR_NO_SDP_BODY] = "No SDP body in message", [NG_ERROR_NO_CALL_ID] = "No call-id in message", [NG_ERROR_NO_FROM_TAG] = "No from-tag in message", [NG_ERROR_NO_TO_TAG] = "No to-tag in message", }; INLINE int call_ng_flags_prefix(sdp_ng_flags *out, str *s_ori, const char *prefix, void (*cb)(sdp_ng_flags *, str *, helper_arg), helper_arg); static void call_ng_flags_str_ht(sdp_ng_flags *out, str *s, helper_arg); static void call_ng_flags_str_q_multi(sdp_ng_flags *out, str *s, helper_arg); static void call_ng_flags_str_list(sdp_ng_flags *out, bencode_item_t *list, void (*callback)(sdp_ng_flags *, str *, helper_arg), helper_arg); static void call_ng_flags_list(sdp_ng_flags *out, bencode_item_t *list, void (*str_callback)(sdp_ng_flags *, str *, helper_arg), void (*item_callback)(sdp_ng_flags *, bencode_item_t *, helper_arg), helper_arg); static void call_ng_flags_esc_str_list(sdp_ng_flags *out, str *s, helper_arg); static void ng_stats_ssrc(bencode_item_t *dict, struct ssrc_hash *ht); static str *str_dup_escape(const str *s); static void call_set_dtmf_block(call_t *call, struct call_monologue *monologue, sdp_ng_flags *flags); static int call_stream_address_gstring(GString *o, struct packet_stream *ps, enum stream_address_format format) { int len, ret; char buf[64]; /* 64 bytes ought to be enough for anybody */ ret = call_stream_address46(buf, ps, format, &len, NULL, true); g_string_append_len(o, buf, len); return ret; } static str *streams_print(medias_arr *s, int start, int end, const char *prefix, enum stream_address_format format) { GString *o; int i, af, port; struct call_media *media; struct packet_stream *ps; o = g_string_new_str(); if (prefix) g_string_append_printf(o, "%s ", prefix); for (i = start; i <= end; i++) { if (s->len <= i || (media = s->pdata[i - 1]) == NULL) { ilog(LOG_WARNING, "Requested media index %i not found", i); break; } if (!media->streams.head) { ilog(LOG_WARNING, "Media has no streams"); break; } ps = media->streams.head->data; if (format == SAF_TCP) call_stream_address_gstring(o, ps, format); port = ps->selected_sfd ? ps->selected_sfd->socket.local.port : 0; g_string_append_printf(o, (format == 1) ? "%i " : " %i", port); if (format == SAF_UDP) { af = call_stream_address_gstring(o, ps, format); g_string_append_printf(o, " %c", (af == AF_INET) ? '4' : '6'); } } g_string_append(o, "\n"); return g_string_free_str(o); } static int addr_parse_udp(struct stream_params *sp, char **out) { const char *cp; char c; int i; ZERO(*sp); SP_SET(sp, SEND); SP_SET(sp, RECV); sp->protocol = &transport_protocols[PROTO_UNKNOWN]; if (out[RE_UDP_UL_ADDR4] && *out[RE_UDP_UL_ADDR4]) { if (sockaddr_parse_any(&sp->rtp_endpoint.address, out[RE_UDP_UL_ADDR4])) goto fail; } else if (out[RE_UDP_UL_ADDR6] && *out[RE_UDP_UL_ADDR6]) { if (sockaddr_parse_any(&sp->rtp_endpoint.address, out[RE_UDP_UL_ADDR6])) goto fail; } else goto fail; sp->rtp_endpoint.port = atoi(out[RE_UDP_UL_PORT]); if (!sp->rtp_endpoint.port && strcmp(out[RE_UDP_UL_PORT], "0")) goto fail; if (out[RE_UDP_UL_FLAGS] && *out[RE_UDP_UL_FLAGS]) { i = 0; for (cp =out[RE_UDP_UL_FLAGS]; *cp && i < 2; cp++) { c = chrtoupper(*cp); if (c == 'E') str_init(&sp->direction[i++], "external"); else if (c == 'I') str_init(&sp->direction[i++], "internal"); } } if (out[RE_UDP_UL_NUM] && *out[RE_UDP_UL_NUM]) sp->index = atoi(out[RE_UDP_UL_NUM]); if (!sp->index) sp->index = 1; sp->consecutive_ports = 1; sp->rtcp_endpoint = sp->rtp_endpoint; sp->rtcp_endpoint.port++; return 0; fail: return -1; } static void updated_created_from(call_t *c, const char *addr, const endpoint_t *sin) { if (!c->created_from && addr) { c->created_from = call_strdup(c, addr); if (sin) c->created_from_addr = sin->address; } } static str *call_update_lookup_udp(char **out, enum call_opmode opmode, const char* addr, const endpoint_t *sin) { call_t *c; struct call_monologue *monologues[2]; /* subscriber lists of both monologues */ sdp_streams_q q = TYPED_GQUEUE_INIT; struct stream_params sp; str *ret; int i; g_auto(sdp_ng_flags) flags; call_ng_flags_init(&flags, opmode); str callid = STR_INIT(out[RE_UDP_UL_CALLID]); str fromtag = STR_INIT(out[RE_UDP_UL_FROMTAG]); str totag = STR_INIT(out[RE_UDP_UL_TOTAG]); if (opmode == OP_ANSWER) str_swap(&fromtag, &totag); c = call_get_opmode(&callid, opmode); if (!c) { ilog(LOG_WARNING, "[" STR_FORMAT_M "] Got UDP LOOKUP for unknown call-id", STR_FMT_M(&callid)); return str_sprintf("%s 0 0.0.0.0\n", out[RE_UDP_COOKIE]); } updated_created_from(c, addr, sin); if (call_get_mono_dialogue(monologues, c, &fromtag, &totag, NULL)) goto ml_fail; struct call_monologue *from_ml = monologues[0]; struct call_monologue *to_ml = monologues[1]; if (opmode == OP_OFFER) { from_ml->tagtype = FROM_TAG; } else { from_ml->tagtype = TO_TAG; } if (addr_parse_udp(&sp, out)) goto addr_fail; t_queue_push_tail(&q, &sp); i = monologue_offer_answer(monologues, &q, &flags); t_queue_clear(&q); if (i) goto unlock_fail; ret = streams_print(to_ml->medias, sp.index, sp.index, out[RE_UDP_COOKIE], SAF_UDP); rwlock_unlock_w(&c->master_lock); redis_update_onekey(c, rtpe_redis_write); gettimeofday(&(from_ml->started), NULL); ilog(LOG_INFO, "Returning to SIP proxy: "STR_FORMAT"", STR_FMT(ret)); goto out; ml_fail: ilog(LOG_ERR, "Invalid dialogue association"); goto unlock_fail; addr_fail: ilog(LOG_ERR, "Failed to parse a media stream: %s%s/%s:%s%s", FMT_M(out[RE_UDP_UL_ADDR4], out[RE_UDP_UL_ADDR6], out[RE_UDP_UL_PORT])); goto unlock_fail; unlock_fail: rwlock_unlock_w(&c->master_lock); ret = str_sprintf("%s E8\n", out[RE_UDP_COOKIE]); out: obj_put(c); return ret; } str *call_update_udp(char **out, const char* addr, const endpoint_t *sin) { return call_update_lookup_udp(out, OP_OFFER, addr, sin); } str *call_lookup_udp(char **out) { return call_update_lookup_udp(out, OP_ANSWER, NULL, NULL); } static bool info_parse_func(char **a, void **ret, void *p) { if (!a[0] || !a[1]) return false; GHashTable *ih = p; g_hash_table_replace(ih, strdup(a[0]), strdup(a[1])); return false; } static void info_parse(const char *s, GHashTable *ih) { pcre2_multi_match(info_re, s, 3, info_parse_func, ih, NULL); } static bool streams_parse_func(char **a, void **ret, void *p) { if (!a[0] || !a[1]) return false; struct stream_params *sp; int *i; i = p; sp = g_slice_alloc0(sizeof(*sp)); SP_SET(sp, SEND); SP_SET(sp, RECV); sp->protocol = &transport_protocols[PROTO_UNKNOWN]; if (endpoint_parse_port_any(&sp->rtp_endpoint, a[0], atoi(a[1]))) goto fail; sp->index = ++(*i); sp->consecutive_ports = 1; sp->rtcp_endpoint = sp->rtp_endpoint; sp->rtcp_endpoint.port++; if (!sp->rtp_endpoint.port && strcmp(a[1], "0")) goto fail; *ret = sp; return true; fail: ilog(LOG_WARNING, "Failed to parse a media stream: %s%s:%s%s", FMT_M(a[0], a[1])); g_slice_free1(sizeof(*sp), sp); return false; } static void streams_parse(const char *s, sdp_streams_q *q) { int i; i = 0; pcre2_multi_match(streams_re, s, 4, streams_parse_func, &i, &q->q); } void call_unlock_release(call_t *c) { rwlock_unlock_w(&c->master_lock); obj_put(c); } INLINE void call_unlock_release_update(call_t **c) { if (!*c) return; rwlock_unlock_w(&(*c)->master_lock); redis_update_onekey(*c, rtpe_redis_write); obj_release(*c); } static str *call_request_lookup_tcp(char **out, enum call_opmode opmode) { call_t *c; struct call_monologue *monologues[2]; g_auto(sdp_streams_q) s = TYPED_GQUEUE_INIT; str *ret = NULL; GHashTable *infohash; g_auto(sdp_ng_flags) flags; call_ng_flags_init(&flags, opmode); str callid = STR_INIT(out[RE_TCP_RL_CALLID]); infohash = g_hash_table_new_full(g_str_hash, g_str_equal, free, free); c = call_get_opmode(&callid, opmode); if (!c) { ilog(LOG_WARNING, "[" STR_FORMAT_M "] Got LOOKUP for unknown call-id", STR_FMT_M(&callid)); goto out; } info_parse(out[RE_TCP_RL_INFO], infohash); streams_parse(out[RE_TCP_RL_STREAMS], &s); str fromtag = STR_INIT(g_hash_table_lookup(infohash, "fromtag")); if (!fromtag.s) { ilog(LOG_WARNING, "No from-tag in message"); goto out2; } str totag = STR_INIT(g_hash_table_lookup(infohash, "totag")); if (opmode == OP_ANSWER) { if (!totag.s) { ilog(LOG_WARNING, "No to-tag in message"); goto out2; } str_swap(&fromtag, &totag); } if (call_get_mono_dialogue(monologues, c, &fromtag, &totag, NULL)) { ilog(LOG_WARNING, "Invalid dialogue association"); goto out2; } if (monologue_offer_answer(monologues, &s, &flags)) goto out2; ret = streams_print(monologues[1]->medias, 1, s.length, NULL, SAF_TCP); out2: call_unlock_release_update(&c); ilog(LOG_INFO, "Returning to SIP proxy: "STR_FORMAT"", STR_FMT0(ret)); out: g_hash_table_destroy(infohash); return ret; } str *call_request_tcp(char **out) { return call_request_lookup_tcp(out, OP_OFFER); } str *call_lookup_tcp(char **out) { return call_request_lookup_tcp(out, OP_ANSWER); } str *call_delete_udp(char **out) { __C_DBG("got delete for callid '%s' and viabranch '%s'", out[RE_UDP_DQ_CALLID], out[RE_UDP_DQ_VIABRANCH]); str callid = STR_INIT(out[RE_UDP_DQ_CALLID]); str branch = STR_INIT(out[RE_UDP_DQ_VIABRANCH]); str fromtag = STR_INIT(out[RE_UDP_DQ_FROMTAG]); str totag = STR_INIT(out[RE_UDP_DQ_TOTAG]); if (call_delete_branch_by_id(&callid, &branch, &fromtag, &totag, NULL, -1)) return str_sprintf("%s E8\n", out[RE_UDP_COOKIE]); return str_sprintf("%s 0\n", out[RE_UDP_COOKIE]); } str *call_query_udp(char **out) { g_autoptr(call_t) c = NULL; str *ret; struct call_stats stats; __C_DBG("got query for callid '%s'", out[RE_UDP_DQ_CALLID]); str callid = STR_INIT(out[RE_UDP_DQ_CALLID]); str fromtag = STR_INIT(out[RE_UDP_DQ_FROMTAG]); str totag = STR_INIT(out[RE_UDP_DQ_TOTAG]); c = call_get_opmode(&callid, OP_QUERY); if (!c) { ilog(LOG_INFO, "[" STR_FORMAT_M "] Call-ID to query not found", STR_FMT_M(&callid)); goto err; } ng_call_stats(c, &fromtag, &totag, NULL, &stats); rwlock_unlock_w(&c->master_lock); ret = str_sprintf("%s %lld "UINT64F" "UINT64F" "UINT64F" "UINT64F"\n", out[RE_UDP_COOKIE], (long long int) atomic_get_na(&rtpe_config.silent_timeout) - (rtpe_now.tv_sec - stats.last_packet), atomic64_get_na(&stats.totals[0].packets), atomic64_get_na(&stats.totals[1].packets), atomic64_get_na(&stats.totals[2].packets), atomic64_get_na(&stats.totals[3].packets)); goto out; err: ret = str_sprintf("%s E8\n", out[RE_UDP_COOKIE]); out: return ret; } void call_delete_tcp(char **out) { str callid = STR_INIT(out[RE_TCP_D_CALLID]); call_delete_branch_by_id(&callid, NULL, NULL, NULL, NULL, -1); } static void call_status_iterator(call_t *c, struct streambuf_stream *s) { // GList *l; // struct callstream *cs; // struct peer *p; // struct streamrelay *r1, *r2; // struct streamrelay *rx1, *rx2; // char addr1[64], addr2[64], addr3[64]; // mutex_lock(&c->master_lock); streambuf_printf(s->outbuf, "session "STR_FORMAT" - - - - %lli\n", STR_FMT(&c->callid), timeval_diff(&rtpe_now, &c->created) / 1000000); /* XXX restore function */ // mutex_unlock(&c->master_lock); } void calls_status_tcp(struct streambuf_stream *s) { rwlock_lock_r(&rtpe_callhash_lock); streambuf_printf(s->outbuf, "proxy %u "UINT64F"/%i/%i\n", t_hash_table_size(rtpe_callhash), atomic64_get(&rtpe_stats_rate.bytes_user) + atomic64_get(&rtpe_stats_rate.bytes_kernel), 0, 0); rwlock_unlock_r(&rtpe_callhash_lock); ITERATE_CALL_LIST_START(CALL_ITERATOR_MAIN, c); call_status_iterator(c, s); ITERATE_CALL_LIST_NEXT_END(c); } static void call_release_ref(void *p) { call_t *c = p; obj_put(c); } INLINE void call_bencode_hold_ref(call_t *c, bencode_item_t *bi) { /* We cannot guarantee that the "call" structures are still around at the time * when the bencode reply is finally read and sent out. Since we use scatter/gather * to avoid duplication of strings and stuff, we reserve a reference to the call * structs and have it released when the bencode buffer is destroyed. This is * necessary every time the bencode response may reference strings contained * within the call structs. */ bencode_buffer_destroy_add(bi->buffer, call_release_ref, obj_get(c)); } INLINE void str_hyphenate(str *s_ori) { str s; s = *s_ori; while (s.len) { if (!str_chr_str(&s, &s, ' ')) break; *s.s = '-'; str_shift(&s, 1); } } INLINE char *bencode_get_alt(bencode_item_t *i, const char *one, const char *two, str *out) { char *o; if ((o = bencode_dictionary_get_str(i, one, out))) return o; return bencode_dictionary_get_str(i, two, out); } INLINE void ng_sdes_option(sdp_ng_flags *out, str *s, helper_arg dummy) { str_hyphenate(s); /* Accept only certain individual crypto suites */ if (call_ng_flags_prefix(out, s, "only-", call_ng_flags_str_ht, &out->sdes_only)) return; /* Exclude individual crypto suites */ if (call_ng_flags_prefix(out, s, "no-", call_ng_flags_str_ht, &out->sdes_no)) return; /* Order individual crypto suites */ if (call_ng_flags_prefix(out, s, "order:", call_ng_flags_str_q_multi, &out->sdes_order)) return; /* Crypto suite preferences for the offerer */ if (call_ng_flags_prefix(out, s, "offerer_pref:", call_ng_flags_str_q_multi, &out->sdes_offerer_pref)) return; switch (__csh_lookup(s)) { case CSH_LOOKUP("no"): case CSH_LOOKUP("off"): case CSH_LOOKUP("disabled"): case CSH_LOOKUP("disable"): out->sdes_off = 1; break; case CSH_LOOKUP("unencrypted_srtp"): case CSH_LOOKUP("UNENCRYPTED_SRTP"): out->sdes_unencrypted_srtp = 1; break; case CSH_LOOKUP("unencrypted_srtcp"): case CSH_LOOKUP("UNENCRYPTED_SRTCP"): out->sdes_unencrypted_srtcp = 1; break; case CSH_LOOKUP("unauthenticated_srtp"): case CSH_LOOKUP("UNAUTHENTICATED_SRTP"): out->sdes_unauthenticated_srtp = 1; break; case CSH_LOOKUP("encrypted_srtp"): case CSH_LOOKUP("ENCRYPTED_SRTP"): out->sdes_encrypted_srtp = 1; break; case CSH_LOOKUP("encrypted_srtcp"): case CSH_LOOKUP("ENCRYPTED_SRTCP"): out->sdes_encrypted_srtcp = 1; break; case CSH_LOOKUP("authenticated_srtp"): case CSH_LOOKUP("AUTHENTICATED_SRTP"): out->sdes_authenticated_srtp = 1; break; case CSH_LOOKUP("lifetime"): out->sdes_lifetime = 1; break; case CSH_LOOKUP("pad"): out->sdes_pad = 1; break; case CSH_LOOKUP("static"): out->sdes_static = 1; break; case CSH_LOOKUP("nonew"): out->sdes_nonew = 1; break; case CSH_LOOKUP("prefer"): case CSH_LOOKUP("priority"): out->sdes_prefer = 1; break; default: ilog(LOG_WARN, "Unknown 'SDES' flag encountered: '"STR_FORMAT"'", STR_FMT(s)); } } INLINE void ng_osrtp_option(sdp_ng_flags *out, str *s, helper_arg dummy) { switch (__csh_lookup(s)) { case CSH_LOOKUP("accept-rfc"): case CSH_LOOKUP("accept-RFC"): out->osrtp_accept_rfc = 1; break; case CSH_LOOKUP("accept-legacy"): out->osrtp_accept_legacy = 1; break; case CSH_LOOKUP("accept"): out->osrtp_accept_rfc = 1; out->osrtp_accept_legacy = 1; break; case CSH_LOOKUP("offer-legacy"): out->osrtp_offer_legacy = 1; break; case CSH_LOOKUP("offer"): case CSH_LOOKUP("offer-RFC"): case CSH_LOOKUP("offer-rfc"): out->osrtp_offer = 1; break; default: ilog(LOG_WARN, "Unknown 'OSRTP' flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } static void call_ng_flags_str_pair_ht(sdp_ng_flags *out, str *s, helper_arg arg) { str *s_copy = str_dup_escape(s); str token; if (!str_token(&token, s_copy, '>')) { ilog(LOG_WARN, "SDP manipulations: Ignoring invalid token '" STR_FORMAT "'", STR_FMT(s)); free(s_copy); return; } str_case_value_ht *ht = arg.svt; if (!t_hash_table_is_set(*ht)) *ht = str_case_value_ht_new(); t_hash_table_replace(*ht, str_dup(&token), s_copy); } static void call_ng_flags_item_pair_ht(sdp_ng_flags *out, bencode_item_t *it, helper_arg arg) { str from; str to; if (it->type != BENCODE_LIST || !it->child || !it->child->sibling || !bencode_get_str(it->child, &from) || !bencode_get_str(it->child->sibling, &to) || from.len == 0 || to.len == 0) { ilog(LOG_WARN, "SDP manipulations: Ignoring invalid contents of string-pair list"); return; } str * s_copy_from = str_dup_escape(&from); str * s_copy_to = str_dup_escape(&to); str_case_value_ht *ht = arg.svt; if (!t_hash_table_is_set(*ht)) *ht = str_case_value_ht_new(); t_hash_table_replace(*ht, s_copy_from, s_copy_to); } INLINE void ng_sdp_attr_manipulations(sdp_ng_flags *flags, bencode_item_t *value) { if (!value || value->type != BENCODE_DICTIONARY) { ilog(LOG_WARN, "SDP manipulations: Wrong type for this type of command."); return; } for (bencode_item_t *it = value->child; it; it = it->sibling) { bencode_item_t *command_action = it->sibling ? it->sibling : NULL; str media_type; if (!command_action) /* if no action, makes no sense to continue */ continue; /* detect media type */ if (!bencode_get_str(it, &media_type)) continue; struct sdp_manipulations *sm = sdp_manipulations_get_by_name(flags, &media_type); if (!sm) { ilog(LOG_WARN, "SDP manipulations: unsupported SDP section '" STR_FORMAT "' targeted.", STR_FMT(&media_type)); continue; } for (bencode_item_t *it_c = command_action->child; it_c; it_c = it_c->sibling) { bencode_item_t *command_value = it_c->sibling ? it_c->sibling : NULL; if (!command_value) /* if no value, makes no sense to check further */ continue; /* detect command type */ str command_type; if (!bencode_get_str(it_c, &command_type)) continue; switch (__csh_lookup(&command_type)) { case CSH_LOOKUP("substitute"): call_ng_flags_list(NULL, command_value, call_ng_flags_str_pair_ht, call_ng_flags_item_pair_ht, &sm->subst_commands); break; case CSH_LOOKUP("add"): call_ng_flags_str_list(NULL, command_value, call_ng_flags_esc_str_list, &sm->add_commands); break; /* CMD_REM commands */ case CSH_LOOKUP("remove"): call_ng_flags_str_list(NULL, command_value, call_ng_flags_str_ht, &sm->rem_commands); break; default: ilog(LOG_WARN, "SDP manipulations: Unknown SDP manipulation command type."); continue; } } } } INLINE void ng_el_option(sdp_ng_flags *out, str *s, helper_arg dummy) { switch (__csh_lookup(s)) { case CSH_LOOKUP("off"): out->el_option = EL_OFF; break; case CSH_LOOKUP("immediate"): out->el_option = EL_IMMEDIATE; break; case CSH_LOOKUP("delayed"): out->el_option = EL_DELAYED; break; case CSH_LOOKUP("heuristic"): out->el_option = EL_HEURISTIC; break; default: ilog(LOG_WARN, "Unknown 'endpoint-learning' flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } #ifdef WITH_TRANSCODING INLINE void ng_t38_option(sdp_ng_flags *out, str *s, helper_arg dummy) { str_hyphenate(s); switch (__csh_lookup(s)) { case CSH_LOOKUP("decode"): out->t38_decode = 1; break; case CSH_LOOKUP("force"): out->t38_force = 1; break; case CSH_LOOKUP("stop"): out->t38_stop = 1; break; case CSH_LOOKUP("no-ecm"): case CSH_LOOKUP("no-ECM"): out->t38_no_ecm = 1; break; case CSH_LOOKUP("no-V17"): case CSH_LOOKUP("no-V.17"): case CSH_LOOKUP("no-v17"): case CSH_LOOKUP("no-v.17"): out->t38_no_v17 = 1; break; case CSH_LOOKUP("no-V.27ter"): case CSH_LOOKUP("no-V27ter"): case CSH_LOOKUP("no-v.27ter"): case CSH_LOOKUP("no-v27ter"): out->t38_no_v27ter = 1; break; case CSH_LOOKUP("no-V29"): case CSH_LOOKUP("no-V.29"): case CSH_LOOKUP("no-v29"): case CSH_LOOKUP("no-v.29"): out->t38_no_v29 = 1; break; case CSH_LOOKUP("no-V34"): case CSH_LOOKUP("no-V.34"): case CSH_LOOKUP("no-v34"): case CSH_LOOKUP("no-v.34"): out->t38_no_v34 = 1; break; case CSH_LOOKUP("no-IAF"): case CSH_LOOKUP("no-iaf"): out->t38_no_iaf = 1; break; case CSH_LOOKUP("FEC"): case CSH_LOOKUP("fec"): out->t38_fec = 1; break; default: ilog(LOG_WARN, "Unknown 'T.38' flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } #endif static void call_ng_flags_list(sdp_ng_flags *out, bencode_item_t *list, void (*str_callback)(sdp_ng_flags *, str *, helper_arg), void (*item_callback)(sdp_ng_flags *, bencode_item_t *, helper_arg), helper_arg arg) { str s; if (list->type != BENCODE_LIST) { if (bencode_get_str(list, &s)) { str token; while (str_token_sep(&token, &s, ',')) str_callback(out, &token, arg); } else ilog(LOG_DEBUG, "Ignoring non-list non-string value"); return; } for (bencode_item_t *it = list->child; it; it = it->sibling) { if (bencode_get_str(it, &s)) str_callback(out, &s, arg); else if (item_callback) item_callback(out, it, arg); else ilog(LOG_DEBUG, "Ignoring non-string value in list"); } } static void call_ng_flags_str_list(sdp_ng_flags *out, bencode_item_t *list, void (*callback)(sdp_ng_flags *, str *, helper_arg), helper_arg arg) { call_ng_flags_list(out, list, callback, NULL, arg); } static void call_ng_flags_rtcp_mux(sdp_ng_flags *out, str *s, helper_arg dummy) { switch (__csh_lookup(s)) { case CSH_LOOKUP("accept"): out->rtcp_mux_accept = 1; break; case CSH_LOOKUP("demux"): out->rtcp_mux_demux = 1; break; case CSH_LOOKUP("offer"): out->rtcp_mux_offer = 1; break; case CSH_LOOKUP("reject"): out->rtcp_mux_reject = 1; break; case CSH_LOOKUP("require"): out->rtcp_mux_require = 1; break; default: ilog(LOG_WARN, "Unknown 'rtcp-mux' flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } static void call_ng_flags_replace(sdp_ng_flags *out, str *s, helper_arg arg) { str_hyphenate(s); switch (__csh_lookup(s)) { case CSH_LOOKUP("force-increment-sdp-ver"): out->force_inc_sdp_ver = 1; out->replace_sdp_version = 1; break; case CSH_LOOKUP("origin"): out->replace_origin = 1; break; case CSH_LOOKUP("origin-full"): case CSH_LOOKUP("origin_full"): out->replace_origin_full = 1; break; case CSH_LOOKUP("sdp-version"): case CSH_LOOKUP("SDP-version"): out->replace_sdp_version = 1; break; /* TODO: after a while remove silent support for this flag */ case CSH_LOOKUP("session-connection"): ilog(LOG_INFO, "replace-session-connection flag encountered, but not supported anymore."); break; case CSH_LOOKUP("session-name"): out->replace_sess_name = 1; break; case CSH_LOOKUP("username"): out->replace_username = 1; break; case CSH_LOOKUP("zero-address"): out->replace_zero_address = 1; break; default: ilog(LOG_WARN, "Unknown 'replace' flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } static void call_ng_flags_supports(sdp_ng_flags *out, str *s, helper_arg dummy) { if (!str_cmp(s, "load limit")) out->supports_load_limit = 1; else ilog(LOG_INFO | LOG_FLAG_LIMIT, "Optional feature '" STR_FORMAT "' not supported", STR_FMT(s)); } static str *str_dup_escape(const str *s) { str *ret = str_dup(s); int i; while ((i = str_str(ret, "--")) >= 0) { ret->s[i] = '='; memmove(&ret->s[i + 1], &ret->s[i + 2], ret->len - i - 2); ret->len--; } while ((i = str_str(ret, "..")) >= 0) { ret->s[i] = ' '; memmove(&ret->s[i + 1], &ret->s[i + 2], ret->len - i - 2); ret->len--; } return ret; } static void call_ng_flags_esc_str_list(sdp_ng_flags *out, str *s, helper_arg arg) { str *s_copy = str_dup_escape(s); t_queue_push_tail(arg.q, s_copy); } /** * Stores flag's value in the given GhashTable. */ static void call_ng_flags_str_ht(sdp_ng_flags *out, str *s, helper_arg arg) { str *s_copy = str_dup_escape(s); str_case_ht *ht = arg.sct; if (!t_hash_table_is_set(*ht)) *ht = str_case_ht_new(); t_hash_table_replace(*ht, s_copy, s_copy); } /** * Parses one-row flags separated by 'delimiter'. * Stores parsed flag's values then in the given GQueue. */ static void call_ng_flags_str_q_multi(sdp_ng_flags *out, str *s, helper_arg arg) { str *s_copy = str_dup_escape(s); str token; str_q *q = arg.q; if (s_copy->len == 0) ilog(LOG_DEBUG, "Hm, nothing to parse."); while (str_token_sep(&token, s_copy, ';')) { str * ret = str_dup(&token); t_queue_push_tail(q, ret); } free(s_copy); } #ifdef WITH_TRANSCODING static void call_ng_flags_str_ht_split(sdp_ng_flags *out, str *s, helper_arg arg) { str_case_value_ht *ht = arg.svt; if (!t_hash_table_is_set(*ht)) *ht = str_case_value_ht_new(); str splitter = *s; while (1) { t_hash_table_replace(*ht, str_dup_escape(&splitter), str_dup_escape(s)); char *c = memrchr(splitter.s, '/', splitter.len); if (!c) break; splitter.len = c - splitter.s; } } #endif struct sdp_attr_helper { void (*fn)(sdp_ng_flags *out, str *s, helper_arg); size_t offset; }; static const struct sdp_attr_helper sdp_attr_helper_add = { .fn = call_ng_flags_esc_str_list, .offset = G_STRUCT_OFFSET(struct sdp_manipulations, add_commands), }; static const struct sdp_attr_helper sdp_attr_helper_remove = { .fn = call_ng_flags_str_ht, .offset = G_STRUCT_OFFSET(struct sdp_manipulations, rem_commands), }; static const struct sdp_attr_helper sdp_attr_helper_substitute = { .fn = call_ng_flags_str_pair_ht, .offset = G_STRUCT_OFFSET(struct sdp_manipulations, subst_commands), }; static void call_ng_flags_sdp_attr_helper(sdp_ng_flags *out, str *s, helper_arg arg) { // get media type str token; if (!str_token(&token, s, '-')) return; struct sdp_manipulations *sm = sdp_manipulations_get_by_name(out, &token); if (!sm) { ilog(LOG_WARN, "SDP manipulations: unsupported SDP section '" STR_FORMAT "' targeted.", STR_FMT(&token)); return; } const struct sdp_attr_helper *h = arg.attr_helper; h->fn(out, s, &G_STRUCT_MEMBER(void *, sm, h->offset)); } // helper to alias values from other dictionaries into the "flags" dictionary INLINE int call_ng_flags_prefix(sdp_ng_flags *out, str *s_ori, const char *prefix, void (*cb)(sdp_ng_flags *, str *, helper_arg), helper_arg arg) { size_t len = strlen(prefix); str s = *s_ori; if (len > 0) if (str_shift_cmp(&s, prefix)) return 0; cb(out, &s, arg); return 1; } void call_ng_flags_flags(sdp_ng_flags *out, str *s, helper_arg dummy) { str_hyphenate(s); switch (__csh_lookup(s)) { case CSH_LOOKUP("all"): out->all = ALL_ALL; break; case CSH_LOOKUP("allow-asymmetric-codecs"): case CSH_LOOKUP("allow-asymmetric-codec"): out->allow_asymmetric_codecs = 1; break; case CSH_LOOKUP("allow-transcoding"): out->allow_transcoding = 1; break; case CSH_LOOKUP("always-transcode"):; static const str str_all = STR_CONST_INIT("all"); call_ng_flags_esc_str_list(out, (str *) &str_all, &out->codec_accept); break; case CSH_LOOKUP("asymmetric"): out->asymmetric = 1; break; case CSH_LOOKUP("asymmetric-codecs"): ilog(LOG_INFO, "Ignoring obsolete flag `asymmetric-codecs`"); break; case CSH_LOOKUP("audio-player"): case CSH_LOOKUP("player"): out->audio_player = AP_TRANSCODING; break; case CSH_LOOKUP("block-dtmf"): case CSH_LOOKUP("block-DTMF"): out->block_dtmf = 1; break; case CSH_LOOKUP("block-egress"): out->block_egress = 1; break; case CSH_LOOKUP("block-short"): case CSH_LOOKUP("block-shorts"): case CSH_LOOKUP("block-short-packets"): out->block_short = 1; break; case CSH_LOOKUP("debug"): case CSH_LOOKUP("debugging"): out->debug = 1; break; case CSH_LOOKUP("detect-DTMF"): case CSH_LOOKUP("detect-dtmf"): out->detect_dtmf = 1; break; case CSH_LOOKUP("directional"): out->directional = 1; break; case CSH_LOOKUP("discard-recording"): out->discard_recording = 1; break; case CSH_LOOKUP("early-media"): out->early_media = 1; break; case CSH_LOOKUP("egress"): out->egress = 1; break; case CSH_LOOKUP("exclude-recording"): out->exclude_recording = 1; break; case CSH_LOOKUP("fatal"): out->fatal = 1; break; case CSH_LOOKUP("fragment"): out->fragment = 1; break; case CSH_LOOKUP("full-rtcp-attribute"): case CSH_LOOKUP("full-RTCP-attribute"): out->full_rtcp_attr = 1; break; case CSH_LOOKUP("generate-mid"): out->generate_mid = 1; break; case CSH_LOOKUP("generate-RTCP"): case CSH_LOOKUP("generate-rtcp"): out->generate_rtcp = 1; break; case CSH_LOOKUP("ICE-reject"): case CSH_LOOKUP("ice-reject"): case CSH_LOOKUP("reject-ice"): case CSH_LOOKUP("reject-ICE"): out->ice_reject = 1; break; case CSH_LOOKUP("inactive"): out->inactive = 1; break; case CSH_LOOKUP("inject-DTMF"): case CSH_LOOKUP("inject-dtmf"): out->inject_dtmf = 1; break; case CSH_LOOKUP("loop-protect"): out->loop_protect = 1; break; case CSH_LOOKUP("media-handover"): out->media_handover = 1; break; case CSH_LOOKUP("mirror-RTCP"): case CSH_LOOKUP("mirror-rtcp"): case CSH_LOOKUP("RTCP-mirror"): case CSH_LOOKUP("rtcp-mirror"): out->rtcp_mirror = 1; break; case CSH_LOOKUP("NAT-wait"): case CSH_LOOKUP("nat-wait"): out->nat_wait = 1; break; case CSH_LOOKUP("no-codec-renegotiation"): case CSH_LOOKUP("reuse-codecs"): out->reuse_codec = 1; break; case CSH_LOOKUP("no-passthrough"): out->passthrough_off = 1; break; case CSH_LOOKUP("no-player"): case CSH_LOOKUP("no-audio-player"): out->audio_player = AP_OFF; break; case CSH_LOOKUP("no-port-latching"): out->no_port_latching = 1; break; case CSH_LOOKUP("no-redis-update"): out->no_redis_update = 1; break; case CSH_LOOKUP("no-rtcp-attribute"): case CSH_LOOKUP("no-RTCP-attribute"): out->no_rtcp_attr = 1; break; case CSH_LOOKUP("no-jitter-buffer"): out->disable_jb = 1; break; case CSH_LOOKUP("original-sendrecv"): out->original_sendrecv = 1; break; case CSH_LOOKUP("pad-crypto"): out->sdes_pad = 1; break; case CSH_LOOKUP("passthrough"): out->passthrough_on = 1; break; case CSH_LOOKUP("pierce-NAT"): case CSH_LOOKUP("pierce-nat"): out->pierce_nat = 1; break; case CSH_LOOKUP("port-latching"): out->port_latching = 1; break; case CSH_LOOKUP("record-call"): out->record_call = 1; break; case CSH_LOOKUP("recording-vsc"): case CSH_LOOKUP("recording-VSC"): out->recording_vsc = 1; break; case CSH_LOOKUP("recording-announcement"): out->recording_announcement = 1; break; case CSH_LOOKUP("reorder-codecs"): ilog(LOG_INFO, "Ignoring obsolete flag `reorder-codecs`"); break; case CSH_LOOKUP("reset"): out->reset = 1; break; case CSH_LOOKUP("single-codec"): out->single_codec = 1; break; case CSH_LOOKUP("SIP-source-address"): case CSH_LOOKUP("sip-source-address"): out->trust_address = 0; break; case CSH_LOOKUP("SIPREC"): case CSH_LOOKUP("siprec"): out->siprec = 1; break; case CSH_LOOKUP("skip-recording-db"): case CSH_LOOKUP("skip-recording-database"): out->skip_recording_db = 1; break; case CSH_LOOKUP("static-codec"): case CSH_LOOKUP("static-codecs"): out->static_codecs = 1; break; case CSH_LOOKUP("strict-source"): out->strict_source = 1; break; case CSH_LOOKUP("strip-extmap"): out->strip_extmap = 1; break; case CSH_LOOKUP("symmetric-codecs"): ilog(LOG_INFO, "Ignoring obsolete flag `symmetric-codecs`"); break; case CSH_LOOKUP("to-tag"): case CSH_LOOKUP("to_tag"): /* including the “To†tag in the “delete†message allows to be more selective * about monologues within a dialog to be torn down. */ out->to_tag_flag = 1; break; case CSH_LOOKUP("trickle-ICE"): case CSH_LOOKUP("trickle-ice"): out->trickle_ice = 1; break; case CSH_LOOKUP("trust-address"): out->trust_address = 1; break; case CSH_LOOKUP("unidirectional"): out->unidirectional = 1; break; case CSH_LOOKUP("webrtc"): case CSH_LOOKUP("webRTC"): case CSH_LOOKUP("WebRTC"): case CSH_LOOKUP("WebRtc"): ng_flags_webrtc(out); break; default: /* handle values aliases from other dictionaries */ if (call_ng_flags_prefix(out, s, "endpoint-learning-", ng_el_option, NULL)) return; if (call_ng_flags_prefix(out, s, "from-tags-", call_ng_flags_esc_str_list, &out->from_tags)) return; /* OSRTP */ if (call_ng_flags_prefix(out, s, "OSRTP-", ng_osrtp_option, NULL)) return; /* replacing SDP body parts */ if (call_ng_flags_prefix(out, s, "replace-", call_ng_flags_replace, NULL)) return; /* rtcp-mux */ if (call_ng_flags_prefix(out, s, "rtcp-mux-", call_ng_flags_rtcp_mux, NULL)) return; /* codec manipulations */ { if (call_ng_flags_prefix(out, s, "codec-except-", call_ng_flags_str_ht, &out->codec_except)) return; if (call_ng_flags_prefix(out, s, "codec-offer-", call_ng_flags_esc_str_list, &out->codec_offer)) return; if (call_ng_flags_prefix(out, s, "codec-strip-", call_ng_flags_esc_str_list, &out->codec_strip)) return; } /* SDES */ { if (call_ng_flags_prefix(out, s, "SDES-", ng_sdes_option, NULL)) return; if (call_ng_flags_prefix(out, s, "SDES-offerer_pref:", call_ng_flags_str_q_multi, &out->sdes_offerer_pref)) return; if (call_ng_flags_prefix(out, s, "SDES-no-", call_ng_flags_str_ht, &out->sdes_no)) return; if (call_ng_flags_prefix(out, s, "SDES-only-", call_ng_flags_str_ht, &out->sdes_only)) return; if (call_ng_flags_prefix(out, s, "SDES-order:", call_ng_flags_str_q_multi, &out->sdes_order)) return; } /* SDP attributes manipulations */ { if (call_ng_flags_prefix(out, s, "sdp-attr-add-", call_ng_flags_sdp_attr_helper, &sdp_attr_helper_add)) return; if (call_ng_flags_prefix(out, s, "sdp-attr-remove-", call_ng_flags_sdp_attr_helper, &sdp_attr_helper_remove)) return; if (call_ng_flags_prefix(out, s, "sdp-attr-substitute-", call_ng_flags_sdp_attr_helper, &sdp_attr_helper_substitute)) return; } #ifdef WITH_TRANSCODING /* transcoding */ { if (out->opmode == OP_OFFER || out->opmode == OP_REQUEST || out->opmode == OP_PUBLISH) { if (call_ng_flags_prefix(out, s, "transcode-", call_ng_flags_esc_str_list, &out->codec_transcode)) return; if (call_ng_flags_prefix(out, s, "codec-transcode-", call_ng_flags_esc_str_list, &out->codec_transcode)) return; if (call_ng_flags_prefix(out, s, "codec-mask-", call_ng_flags_esc_str_list, &out->codec_mask)) return; if (call_ng_flags_prefix(out, s, "T38-", ng_t38_option, NULL)) return; if (call_ng_flags_prefix(out, s, "T.38-", ng_t38_option, NULL)) return; } if (call_ng_flags_prefix(out, s, "codec-accept-", call_ng_flags_esc_str_list, &out->codec_accept)) return; if (call_ng_flags_prefix(out, s, "codec-consume-", call_ng_flags_esc_str_list, &out->codec_consume)) return; if (call_ng_flags_prefix(out, s, "codec-set-", call_ng_flags_str_ht_split, &out->codec_set)) return; } #endif ilog(LOG_WARN, "Unknown flag encountered: '" STR_FORMAT "'", STR_FMT(s)); } } void call_ng_flags_init(sdp_ng_flags *out, enum call_opmode opmode) { ZERO(*out); out->opmode = opmode; out->trust_address = trust_address_def; out->dtls_passive = dtls_passive_def; out->dtls_reverse_passive = dtls_passive_def; out->el_option = rtpe_config.endpoint_learning; out->tos = 256; out->delay_buffer = -1; out->delete_delay = -1; out->volume = 9999; out->digit = -1; out->frequencies = g_array_new(false, false, sizeof(int)); } static void call_ng_dict_iter(sdp_ng_flags *out, bencode_item_t *input, enum call_opmode opmode, void (*callback)(sdp_ng_flags *, str *key, bencode_item_t *value, enum call_opmode _opmode)) { if (input->type != BENCODE_DICTIONARY) return; bencode_item_t *value = NULL; for (bencode_item_t *key = input->child; key; key = value->sibling) { value = key->sibling; if (!value) break; str k; if (!bencode_get_str(key, &k)) continue; callback(out, &k, value, opmode); } } void call_ng_direction_flag(sdp_ng_flags *out, bencode_item_t *value) { if (value->type != BENCODE_LIST) return; int diridx = 0; for (bencode_item_t *cit = value->child; cit && diridx < 2; cit = cit->sibling) bencode_get_str(cit, &out->direction[diridx++]); } void call_ng_codec_flags(sdp_ng_flags *out, str *key, bencode_item_t *value, enum call_opmode opmode) { switch (__csh_lookup(key)) { case CSH_LOOKUP("except"): call_ng_flags_str_list(out, value, call_ng_flags_str_ht, &out->codec_except); return; case CSH_LOOKUP("offer"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_offer); return; case CSH_LOOKUP("strip"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_strip); return; } #ifdef WITH_TRANSCODING if (out->opmode == OP_OFFER || out->opmode == OP_REQUEST || out->opmode == OP_PUBLISH) { switch (__csh_lookup(key)) { case CSH_LOOKUP("accept"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_accept); return; case CSH_LOOKUP("consume"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_consume); return; case CSH_LOOKUP("mask"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_mask); return; case CSH_LOOKUP("set"): call_ng_flags_str_list(out, value, call_ng_flags_str_ht_split, &out->codec_set); return; case CSH_LOOKUP("transcode"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->codec_transcode); return; } } else { // silence warnings switch (__csh_lookup(key)) { case CSH_LOOKUP("accept"): case CSH_LOOKUP("consume"): case CSH_LOOKUP("mask"): case CSH_LOOKUP("set"): case CSH_LOOKUP("transcode"): return; } } #endif ilog(LOG_WARN, "Unknown 'codec' operation encountered: '" STR_FORMAT "'", STR_FMT(key)); } #ifdef WITH_TRANSCODING static void call_ng_parse_block_mode(str *s, enum block_dtmf_mode *output) { switch (__csh_lookup(s)) { case CSH_LOOKUP("drop"): *output = BLOCK_DTMF_DROP; break; case CSH_LOOKUP("DTMF"): case CSH_LOOKUP("dtmf"): *output = BLOCK_DTMF_DTMF; break; case CSH_LOOKUP("off"): *output = BLOCK_DTMF_OFF; break; case CSH_LOOKUP("random"): *output = BLOCK_DTMF_RANDOM; break; case CSH_LOOKUP("silence"): *output = BLOCK_DTMF_SILENCE; break; case CSH_LOOKUP("tone"): *output = BLOCK_DTMF_TONE; break; case CSH_LOOKUP("zero"): *output = BLOCK_DTMF_ZERO; break; default: ilog(LOG_WARN, "Unknown DTMF block mode encountered: '" STR_FORMAT "'", STR_FMT(s)); } } #endif static void call_ng_flags_freqs(sdp_ng_flags *out, bencode_item_t *value) { unsigned int val; switch (value->type) { case BENCODE_INTEGER:; val = value->value; g_array_append_val(out->frequencies, val); break; case BENCODE_LIST: for (bencode_item_t *it = value->child; it; it = it->sibling) call_ng_flags_freqs(out, it); break; case BENCODE_STRING:; str s, token; bencode_get_str(value, &s); while (str_token_sep(&token, &s, ',')) { val = str_to_i(&token, 0); g_array_append_val(out->frequencies, val); } break; default: ilog(LOG_WARN, "Invalid content type in `frequencies` list"); } } void call_ng_main_flags(sdp_ng_flags *out, str *key, bencode_item_t *value, enum call_opmode opmode) { str s = STR_NULL; bencode_item_t *it; bencode_get_str(value, &s); switch (__csh_lookup(key)) { case CSH_LOOKUP("address"): out->address = s; break; case CSH_LOOKUP("address family"): case CSH_LOOKUP("address-family"): if (bencode_get_str(value, &out->address_family_str)) out->address_family = get_socket_family_rfc(&out->address_family_str); break; case CSH_LOOKUP("all"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("all"): out->all = ALL_ALL; break; case CSH_LOOKUP("none"): out->all = ALL_NONE; break; case CSH_LOOKUP("offer-answer"): out->all = ALL_OFFER_ANSWER; break; case CSH_LOOKUP("not-offer-answer"): case CSH_LOOKUP("non-offer-answer"): case CSH_LOOKUP("except-offer-answer"): out->all = ALL_NON_OFFER_ANSWER; break; case CSH_LOOKUP("flows"): out->all = ALL_FLOWS; break; default: ilog(LOG_WARN, "Unknown 'all' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("audio-player"): case CSH_LOOKUP("player"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("default"): out->audio_player = AP_DEFAULT; break; case CSH_LOOKUP("on"): case CSH_LOOKUP("yes"): case CSH_LOOKUP("enable"): case CSH_LOOKUP("enabled"): case CSH_LOOKUP("transcode"): case CSH_LOOKUP("transcoding"): out->audio_player = AP_TRANSCODING; break; case CSH_LOOKUP("no"): case CSH_LOOKUP("off"): case CSH_LOOKUP("disable"): case CSH_LOOKUP("disabled"): out->audio_player = AP_OFF; break; case CSH_LOOKUP("force"): case CSH_LOOKUP("forced"): case CSH_LOOKUP("always"): case CSH_LOOKUP("everything"): out->audio_player = AP_FORCE; break; default: ilog(LOG_WARN, "Unknown 'audio-player' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("blob"): out->blob = s; break; case CSH_LOOKUP("call-id"): case CSH_LOOKUP("call-ID"): case CSH_LOOKUP("call id"): case CSH_LOOKUP("call ID"): out->call_id = s; break; case CSH_LOOKUP("code"): case CSH_LOOKUP("digit"): out->digit = bencode_get_integer_str(value, out->digit); if (s.len == 1) out->digit = s.s[0]; break; case CSH_LOOKUP("codec"): call_ng_dict_iter(out, value, opmode, call_ng_codec_flags); break; case CSH_LOOKUP("command"): break; case CSH_LOOKUP("db-id"): out->db_id = bencode_get_integer_str(value, out->db_id); break; case CSH_LOOKUP("delete delay"): case CSH_LOOKUP("delete-delay"): case CSH_LOOKUP("delete_delay"): out->delete_delay = bencode_get_integer_str(value, out->delete_delay); break; case CSH_LOOKUP("direction"): call_ng_direction_flag(out, value); break; case CSH_LOOKUP("drop-traffic"): case CSH_LOOKUP("drop traffic"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("start"): out->drop_traffic_start = 1; break; case CSH_LOOKUP("stop"): out->drop_traffic_stop = 1; break; default: ilog(LOG_WARN, "Unknown 'drop-traffic' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("DTLS"): case CSH_LOOKUP("dtls"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("passive"): out->dtls_passive = 1; break; case CSH_LOOKUP("active"): out->dtls_passive = 0; break; case CSH_LOOKUP("no"): case CSH_LOOKUP("off"): case CSH_LOOKUP("disabled"): case CSH_LOOKUP("disable"): out->dtls_off = 1; break; default: ilog(LOG_WARN, "Unknown 'DTLS' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("DTLS fingerprint"): case CSH_LOOKUP("DTLS-fingerprint"): case CSH_LOOKUP("dtls fingerprint"): case CSH_LOOKUP("dtls-fingerprint"): out->dtls_fingerprint = s; break; case CSH_LOOKUP("DTLS-reverse"): case CSH_LOOKUP("dtls-reverse"): case CSH_LOOKUP("DTLS reverse"): case CSH_LOOKUP("dtls reverse"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("passive"): out->dtls_reverse_passive = 1; break; case CSH_LOOKUP("active"): out->dtls_reverse_passive = 0; break; default: ilog(LOG_WARN, "Unknown 'DTLS-reverse' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("DTMF-delay"): case CSH_LOOKUP("DTMF delay"): case CSH_LOOKUP("dtmf-delay"): case CSH_LOOKUP("dtmf delay"): out->dtmf_delay = bencode_get_integer_str(value, out->dtmf_delay); break; case CSH_LOOKUP("dtmf-log-dest"): case CSH_LOOKUP("DTMF-log-dest"): case CSH_LOOKUP("dtmf-log-destination"): case CSH_LOOKUP("DTMF-log-destination"): if (endpoint_parse_any_str(&out->dtmf_log_dest, &s)) ilog(LOG_WARN, "Failed to parse 'dtmf-log-dest' address '" STR_FORMAT "'", STR_FMT(&s)); break; case CSH_LOOKUP("duration"): out->duration = bencode_get_integer_str(value, out->duration); break; #ifdef WITH_TRANSCODING case CSH_LOOKUP("DTMF-security"): case CSH_LOOKUP("dtmf-security"): case CSH_LOOKUP("DTMF security"): case CSH_LOOKUP("dtmf security"): call_ng_parse_block_mode(&s, &out->block_dtmf_mode); break; case CSH_LOOKUP("DTMF-security-trigger"): case CSH_LOOKUP("dtmf-security-trigger"): case CSH_LOOKUP("DTMF security trigger"): case CSH_LOOKUP("dtmf security trigger"): call_ng_parse_block_mode(&s, &out->block_dtmf_mode_trigger); break; case CSH_LOOKUP("DTMF-security-trigger-end"): case CSH_LOOKUP("dtmf-security-trigger-end"): case CSH_LOOKUP("DTMF security trigger end"): case CSH_LOOKUP("dtmf security trigger end"): call_ng_parse_block_mode(&s, &out->block_dtmf_mode_trigger_end); break; case CSH_LOOKUP("delay-buffer"): case CSH_LOOKUP("delay buffer"): out->delay_buffer = bencode_get_integer_str(value, out->delay_buffer); break; #endif case CSH_LOOKUP("endpoint-learning"): case CSH_LOOKUP("endpoint learning"): call_ng_flags_str_list(out, value, ng_el_option, NULL); break; case CSH_LOOKUP("file"): out->file = s; break; case CSH_LOOKUP("frequency"): case CSH_LOOKUP("frequencies"): call_ng_flags_freqs(out, value); break; case CSH_LOOKUP("from-interface"): out->direction[0] = s; break; case CSH_LOOKUP("from-label"): case CSH_LOOKUP("label"): out->label = s; break; case CSH_LOOKUP("from-tag"): out->from_tag = s; break; case CSH_LOOKUP("from-tags"): call_ng_flags_str_list(out, value, call_ng_flags_esc_str_list, &out->from_tags); break; case CSH_LOOKUP("flags"): call_ng_flags_str_list(out, value, call_ng_flags_flags, NULL); break; case CSH_LOOKUP("generate RTCP"): case CSH_LOOKUP("generate-RTCP"): case CSH_LOOKUP("generate rtcp"): case CSH_LOOKUP("generate-rtcp"): if (!str_cmp(&s, "on")) out->generate_rtcp = 1; else if (!str_cmp(&s, "off")) out->generate_rtcp_off = 1; break; case CSH_LOOKUP("ICE"): case CSH_LOOKUP("ice"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("remove"): out->ice_option = ICE_REMOVE; break; case CSH_LOOKUP("force"): out->ice_option = ICE_FORCE; break; case CSH_LOOKUP("default"): out->ice_option = ICE_DEFAULT; break; case CSH_LOOKUP("optional"): out->ice_option = ICE_OPTIONAL; break; case CSH_LOOKUP("force_relay"): case CSH_LOOKUP("force-relay"): case CSH_LOOKUP("force relay"): out->ice_option = ICE_FORCE_RELAY; break; default: ilog(LOG_WARN, "Unknown 'ICE' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("ICE-lite"): case CSH_LOOKUP("ice-lite"): case CSH_LOOKUP("ICE lite"): case CSH_LOOKUP("ice lite"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("off"): case CSH_LOOKUP("none"): case CSH_LOOKUP("no"): out->ice_lite_option = ICE_LITE_OFF; break; case CSH_LOOKUP("forward"): case CSH_LOOKUP("offer"): case CSH_LOOKUP("fwd"): case CSH_LOOKUP("fw"): out->ice_lite_option = ICE_LITE_FWD; break; case CSH_LOOKUP("backward"): case CSH_LOOKUP("backwards"): case CSH_LOOKUP("reverse"): case CSH_LOOKUP("answer"): case CSH_LOOKUP("back"): case CSH_LOOKUP("bkw"): case CSH_LOOKUP("bk"): out->ice_lite_option = ICE_LITE_BKW; break; case CSH_LOOKUP("both"): out->ice_lite_option = ICE_LITE_BOTH; break; default: ilog(LOG_WARN, "Unknown 'ICE-lite' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("interface"): out->interface = s; break; case CSH_LOOKUP("media address"): case CSH_LOOKUP("media-address"): out->media_address = s; break; case CSH_LOOKUP("media echo"): case CSH_LOOKUP("media-echo"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("blackhole"): case CSH_LOOKUP("sinkhole"): out->media_echo = MEO_BLACKHOLE; break; case CSH_LOOKUP("forward"): case CSH_LOOKUP("fwd"): case CSH_LOOKUP("fw"): out->media_echo = MEO_FWD; break; case CSH_LOOKUP("backward"): case CSH_LOOKUP("backwards"): case CSH_LOOKUP("reverse"): case CSH_LOOKUP("back"): case CSH_LOOKUP("bkw"): case CSH_LOOKUP("bk"): out->media_echo = MEO_BKW; break; case CSH_LOOKUP("both"): out->media_echo = MEO_BOTH; break; default: ilog(LOG_WARN, "Unknown 'media-echo' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("metadata"): out->metadata = s; break; case CSH_LOOKUP("OSRTP"): case CSH_LOOKUP("osrtp"): call_ng_flags_str_list(out, value, ng_osrtp_option, NULL); break; case CSH_LOOKUP("output-destination"): case CSH_LOOKUP("output-dest"): case CSH_LOOKUP("output-file"): case CSH_LOOKUP("recording-destination"): case CSH_LOOKUP("recording-dest"): case CSH_LOOKUP("recording-file"): case CSH_LOOKUP("output destination"): case CSH_LOOKUP("output dest"): case CSH_LOOKUP("output file"): case CSH_LOOKUP("recording destination"): case CSH_LOOKUP("recording dest"): case CSH_LOOKUP("recording file"): out->recording_file = s; break; case CSH_LOOKUP("passthrough"): case CSH_LOOKUP("passthru"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("on"): case CSH_LOOKUP("yes"): case CSH_LOOKUP("enable"): case CSH_LOOKUP("enabled"): out->passthrough_on = 1; break; case CSH_LOOKUP("no"): case CSH_LOOKUP("off"): case CSH_LOOKUP("disable"): case CSH_LOOKUP("disabled"): out->passthrough_off = 1; break; default: ilog(LOG_WARN, "Unknown 'passthrough' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("pause"): out->pause = bencode_get_integer_str(value, out->pause); break; case CSH_LOOKUP("ptime"): if (out->opmode == OP_OFFER) out->ptime = bencode_get_integer_str(value, 0); break; case CSH_LOOKUP("ptime-reverse"): case CSH_LOOKUP("ptime reverse"): case CSH_LOOKUP("reverse ptime"): case CSH_LOOKUP("reverse-ptime"): if (out->opmode == OP_OFFER) out->rev_ptime = bencode_get_integer_str(value, 0); break; case CSH_LOOKUP("received from"): case CSH_LOOKUP("received-from"): if (value->type != BENCODE_LIST) break; if ((it = value->child)) { bencode_get_str(it, &out->received_from_family); bencode_get_str(it->sibling, &out->received_from_address); } break; case CSH_LOOKUP("record call"): case CSH_LOOKUP("record-call"): out->record_call_str = s; break; case CSH_LOOKUP("recording path"): case CSH_LOOKUP("recording dir"): case CSH_LOOKUP("recording directory"): case CSH_LOOKUP("recording folder"): case CSH_LOOKUP("output path"): case CSH_LOOKUP("output dir"): case CSH_LOOKUP("output directory"): case CSH_LOOKUP("output folder"): case CSH_LOOKUP("recording-path"): case CSH_LOOKUP("recording-dir"): case CSH_LOOKUP("recording-directory"): case CSH_LOOKUP("recording-folder"): case CSH_LOOKUP("output-path"): case CSH_LOOKUP("output-dir"): case CSH_LOOKUP("output-directory"): case CSH_LOOKUP("output-folder"): out->recording_path = s; break; case CSH_LOOKUP("recording pattern"): case CSH_LOOKUP("recording-pattern"): case CSH_LOOKUP("output pattern"): case CSH_LOOKUP("output-pattern"): out->recording_pattern = s; break; case CSH_LOOKUP("repeat-times"): out->repeat_times = bencode_get_integer_str(value, out->repeat_times); break; case CSH_LOOKUP("replace"): call_ng_flags_str_list(out, value, call_ng_flags_replace, NULL); break; case CSH_LOOKUP("rtcp-mux"): case CSH_LOOKUP("RTCP-mux"): call_ng_flags_str_list(out, value, call_ng_flags_rtcp_mux, NULL); break; case CSH_LOOKUP("rtpp-flags"): case CSH_LOOKUP("rtpp_flags"):; /* s - list of rtpp flags */ parse_rtpp_flags(&s, value->buffer, opmode, out); break; case CSH_LOOKUP("SDES"): case CSH_LOOKUP("sdes"): call_ng_flags_str_list(out, value, ng_sdes_option, NULL); break; case CSH_LOOKUP("SDP"): case CSH_LOOKUP("sdp"): out->sdp = s; break; case CSH_LOOKUP("sdp-attr"): case CSH_LOOKUP("SDP-attr"): if (value->type != BENCODE_DICTIONARY) break; ng_sdp_attr_manipulations(out, value); break; case CSH_LOOKUP("set-label"): out->set_label = s; break; case CSH_LOOKUP("sip-message-type"): case CSH_LOOKUP("sip_message_type"): case CSH_LOOKUP("SIP-message-type"): case CSH_LOOKUP("SIP_message_type"): switch (__csh_lookup(&s)) { case CSH_LOOKUP("request"): case CSH_LOOKUP("sip-request"): case CSH_LOOKUP("sip_request"): case CSH_LOOKUP("SIP-request"): case CSH_LOOKUP("SIP_request"): out->message_type = SIP_REQUEST; break; case CSH_LOOKUP("reply"): case CSH_LOOKUP("sip-response"): case CSH_LOOKUP("sip_response"): case CSH_LOOKUP("SIP-response"): case CSH_LOOKUP("SIP_response"): case CSH_LOOKUP("sip-reply"): case CSH_LOOKUP("sip_reply"): case CSH_LOOKUP("SIP-reply"): case CSH_LOOKUP("SIP_reply"): out->message_type = SIP_REPLY; break; default: ilog(LOG_WARN, "Unknown 'sip-message-type' flag encountered: '" STR_FORMAT "'", STR_FMT(&s)); } break; case CSH_LOOKUP("start-pos"): out->start_pos = bencode_get_integer_str(value, out->start_pos); break; case CSH_LOOKUP("supports"): call_ng_flags_str_list(out, value, call_ng_flags_supports, NULL); break; #ifdef WITH_TRANSCODING case CSH_LOOKUP("T38"): case CSH_LOOKUP("T.38"): case CSH_LOOKUP("t38"): case CSH_LOOKUP("t.38"): call_ng_flags_str_list(out, value, ng_t38_option, NULL); break; #endif case CSH_LOOKUP("to-interface"): out->direction[1] = s; break; case CSH_LOOKUP("to-label"): out->to_label = s; break; case CSH_LOOKUP("to-tag"): out->to_tag = s; break; case CSH_LOOKUP("TOS"): case CSH_LOOKUP("tos"): out->tos = bencode_get_integer_str(value, out->tos); break; case CSH_LOOKUP("transport protocol"): case CSH_LOOKUP("transport-protocol"): if (!str_cmp(&s, "accept")) out->protocol_accept = 1; else out->transport_protocol = transport_protocol(&s); break; case CSH_LOOKUP("trigger"): out->trigger = s; break; case CSH_LOOKUP("trigger-end"): case CSH_LOOKUP("trigger end"): case CSH_LOOKUP("end trigger"): case CSH_LOOKUP("end-trigger"): out->trigger_end = s; break; case CSH_LOOKUP("trigger-end-time"): case CSH_LOOKUP("trigger end time"): case CSH_LOOKUP("end-trigger-time"): case CSH_LOOKUP("end trigger time"): out->trigger_end_ms = bencode_get_integer_str(value, out->trigger_end_ms); break; case CSH_LOOKUP("trigger-end-digits"): case CSH_LOOKUP("trigger end digits"): case CSH_LOOKUP("end-trigger-digits"): case CSH_LOOKUP("end trigger digits"): out->trigger_end_digits = bencode_get_integer_str(value, out->trigger_end_digits); break; case CSH_LOOKUP("via-branch"): out->via_branch = s; break; case CSH_LOOKUP("volume"): out->volume = bencode_get_integer_str(value, out->volume); break; case CSH_LOOKUP("vsc-pause-rec"): case CSH_LOOKUP("VSC-pause-rec"): case CSH_LOOKUP("vsc-pause-recording"): case CSH_LOOKUP("VSC-pause-recording"): out->vsc_pause_rec = s; break; case CSH_LOOKUP("vsc-pause-resume-rec"): case CSH_LOOKUP("VSC-pause-resume-rec"): case CSH_LOOKUP("vsc-pause-resume-recording"): case CSH_LOOKUP("VSC-pause-resume-recording"): out->vsc_pause_resume_rec = s; break; case CSH_LOOKUP("vsc-start-pause-resume-rec"): case CSH_LOOKUP("VSC-start-pause-resume-rec"): case CSH_LOOKUP("vsc-start-pause-resume-recording"): case CSH_LOOKUP("VSC-start-pause-resume-recording"): out->vsc_start_pause_resume_rec = s; break; case CSH_LOOKUP("vsc-start-rec"): case CSH_LOOKUP("VSC-start-rec"): case CSH_LOOKUP("vsc-start-recording"): case CSH_LOOKUP("VSC-start-recording"): out->vsc_start_rec = s; break; case CSH_LOOKUP("vsc-start-stop-rec"): case CSH_LOOKUP("VSC-start-stop-rec"): case CSH_LOOKUP("vsc-start-stop-recording"): case CSH_LOOKUP("VSC-start-stop-recording"): out->vsc_start_stop_rec = s; break; case CSH_LOOKUP("vsc-stop-rec"): case CSH_LOOKUP("VSC-stop-rec"): case CSH_LOOKUP("vsc-stop-recording"): case CSH_LOOKUP("VSC-stop-recording"): out->vsc_stop_rec = s; break; case CSH_LOOKUP("xmlrpc-callback"): case CSH_LOOKUP("XMLRPC-callback"): if (sockaddr_parse_any_str(&out->xmlrpc_callback, &s)) ilog(LOG_WARN, "Failed to parse 'xmlrpc-callback' address '" STR_FORMAT "'", STR_FMT(&s)); break; default: ilog(LOG_WARN, "Unknown dictionary key encountered: '" STR_FORMAT "'", STR_FMT(key)); } } static void call_ng_process_flags(sdp_ng_flags *out, bencode_item_t *input, enum call_opmode opmode) { call_ng_flags_init(out, opmode); call_ng_dict_iter(out, input, opmode, call_ng_main_flags); } static void ng_sdp_attr_manipulations_free(struct sdp_manipulations * array[__MT_MAX]) { for (int i = 0; i < __MT_MAX; i++) { struct sdp_manipulations *sdp_manipulations = array[i]; if (!sdp_manipulations) continue; str_case_ht_destroy_ptr(&sdp_manipulations->rem_commands); str_case_value_ht_destroy_ptr(&sdp_manipulations->subst_commands); t_queue_clear_full(&sdp_manipulations->add_commands, str_free); g_slice_free1(sizeof(*sdp_manipulations), sdp_manipulations); array[i] = NULL; } } void call_ng_free_flags(sdp_ng_flags *flags) { str_case_ht_destroy_ptr(&flags->codec_except); str_case_value_ht_destroy_ptr(&flags->codec_set); str_case_ht_destroy_ptr(&flags->sdes_no); str_case_ht_destroy_ptr(&flags->sdes_only); if (flags->frequencies) g_array_free(flags->frequencies, true); t_queue_clear_full(&flags->from_tags, str_free); t_queue_clear_full(&flags->codec_offer, str_free); t_queue_clear_full(&flags->codec_transcode, str_free); t_queue_clear_full(&flags->codec_strip, str_free); t_queue_clear_full(&flags->codec_accept, str_free); t_queue_clear_full(&flags->codec_consume, str_free); t_queue_clear_full(&flags->codec_mask, str_free); t_queue_clear_full(&flags->sdes_order, str_free); t_queue_clear_full(&flags->sdes_offerer_pref, str_free); t_queue_clear_full(&flags->session_attributes, sdp_attr_free); ng_sdp_attr_manipulations_free(flags->sdp_manipulations); } static enum load_limit_reasons call_offer_session_limit(void) { enum load_limit_reasons ret = LOAD_LIMIT_NONE; if (atomic_get_na(&rtpe_config.max_sessions) >= 0) { rwlock_lock_r(&rtpe_callhash_lock); if (t_hash_table_size(rtpe_callhash) - atomic64_get(&rtpe_stats_gauge.foreign_sessions) >= rtpe_config.max_sessions) { /* foreign calls can't get rejected * total_rejected_sess applies only to "own" sessions */ RTPE_STATS_INC(rejected_sess); ilog(LOG_ERROR, "Parallel session limit reached (%i)",rtpe_config.max_sessions); ret = LOAD_LIMIT_MAX_SESSIONS; } rwlock_unlock_r(&rtpe_callhash_lock); } if (ret == LOAD_LIMIT_NONE && atomic_get_na(&rtpe_config.load_limit)) { int loadavg = g_atomic_int_get(&load_average); if (loadavg >= atomic_get_na(&rtpe_config.load_limit)) { ilog(LOG_WARN, "Load limit exceeded (%.2f > %.2f)", (double) loadavg / 100.0, (double) rtpe_config.load_limit / 100.0); ret = LOAD_LIMIT_LOAD; } } if (ret == LOAD_LIMIT_NONE && atomic_get_na(&rtpe_config.cpu_limit)) { int cpu = g_atomic_int_get(&cpu_usage); if (cpu >= atomic_get_na(&rtpe_config.cpu_limit)) { ilog(LOG_WARN, "CPU usage limit exceeded (%.1f%% > %.1f%%)", (double) cpu / 100.0, (double) rtpe_config.cpu_limit / 100.0); ret = LOAD_LIMIT_CPU; } } if (ret == LOAD_LIMIT_NONE && atomic_get_na(&rtpe_config.bw_limit)) { uint64_t bw = atomic64_get(&rtpe_stats_rate.bytes_user) + atomic64_get(&rtpe_stats_rate.bytes_kernel); if (bw >= atomic_get_na(&rtpe_config.bw_limit)) { ilog(LOG_WARN, "Bandwidth limit exceeded (%" PRIu64 " > %" PRIu64 ")", bw, rtpe_config.bw_limit); ret = LOAD_LIMIT_BW; } } return ret; } void save_last_sdp(struct call_monologue *ml, str *sdp, sdp_sessions_q *parsed, sdp_streams_q *streams) { str_free_dup(&ml->last_in_sdp); ml->last_in_sdp = *sdp; *sdp = STR_NULL; sdp_sessions_clear(&ml->last_in_sdp_parsed); ml->last_in_sdp_parsed = *parsed; t_queue_init(parsed); sdp_streams_clear(&ml->last_in_sdp_streams); ml->last_in_sdp_streams = *streams; t_queue_init(streams); } static enum basic_errors call_ng_basic_checks(sdp_ng_flags *flags, enum call_opmode opmode) { if (!flags->sdp.s) return NG_ERROR_NO_SDP_BODY; if (!flags->call_id.s) return NG_ERROR_NO_CALL_ID; if (!flags->from_tag.s) return NG_ERROR_NO_FROM_TAG; if (opmode == OP_ANSWER && !flags->to_tag.s) return NG_ERROR_NO_TO_TAG; return 0; } static const char *call_offer_answer_ng(ng_buffer *ngbuf, bencode_item_t *input, bencode_item_t *output, enum call_opmode opmode, const char* addr, const endpoint_t *sin) { const char *errstr; g_auto(str) sdp = STR_NULL; g_auto(sdp_sessions_q) parsed = TYPED_GQUEUE_INIT; g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; g_autoptr(call_t) call = NULL; struct call_monologue * monologues[2]; int ret; g_auto(sdp_ng_flags) flags; struct sdp_chopper *chopper; call_ng_process_flags(&flags, input, opmode); if ((ret = call_ng_basic_checks(&flags, opmode)) > 0) return _ng_basic_errors[ret]; /* for answer: swap To against From tag */ if (opmode == OP_ANSWER) str_swap(&flags.to_tag, &flags.from_tag); str_init_dup_str(&sdp, &flags.sdp); errstr = "Failed to parse SDP"; if (sdp_parse(&sdp, &parsed, &flags)) goto out; if (flags.loop_protect && sdp_is_duplicate(&parsed)) { ilog(LOG_INFO, "Ignoring message as SDP has already been processed by us"); bencode_dictionary_add_str(output, "sdp", &flags.sdp); errstr = NULL; goto out; } errstr = "Incomplete SDP specification"; if (sdp_streams(&parsed, &streams, &flags)) goto out; /* OP_ANSWER; OP_OFFER && !IS_FOREIGN_CALL */ call = call_get(&flags.call_id); // SDP fragments for trickle ICE must always operate on an existing call if (opmode == OP_OFFER && trickle_ice_update(ngbuf, call, &flags, &streams)) { errstr = NULL; // SDP fragments for trickle ICE are consumed with no replacement returned goto out; } if (opmode == OP_OFFER && !call) { enum load_limit_reasons limit = call_offer_session_limit(); if (limit != LOAD_LIMIT_NONE) { if (!flags.supports_load_limit) errstr = "Parallel session limit reached"; // legacy protocol else errstr = magic_load_limit_strings[limit]; goto out; } call = call_get_or_create(&flags.call_id, false); } errstr = "Unknown call-id"; if (!call) goto out; if (flags.debug) CALL_SET(call, DEBUG); if (rtpe_config.active_switchover && IS_FOREIGN_CALL(call)) call_make_own_foreign(call, false); updated_created_from(call, addr, sin); if (flags.xmlrpc_callback.family) call->xmlrpc_callback = flags.xmlrpc_callback; if (flags.dtmf_log_dest.address.family) call->dtmf_log_dest = flags.dtmf_log_dest; /* At least the random ICE strings are contained within the call struct, so we * need to hold a ref until we're done sending the reply */ call_bencode_hold_ref(call, output); errstr = "Invalid dialogue association"; if (call_get_mono_dialogue(monologues, call, &flags.from_tag, &flags.to_tag, flags.via_branch.s ? &flags.via_branch : NULL)) { goto out; } struct call_monologue *from_ml = monologues[0]; struct call_monologue *to_ml = monologues[1]; if (opmode == OP_OFFER) { from_ml->tagtype = FROM_TAG; } else { from_ml->tagtype = TO_TAG; } chopper = sdp_chopper_new(&sdp); bencode_buffer_destroy_add(output->buffer, (free_func_t) sdp_chopper_destroy, chopper); if (flags.drop_traffic_start) { CALL_SET(call, DROP_TRAFFIC); } else if (flags.drop_traffic_stop) { CALL_CLEAR(call, DROP_TRAFFIC); } if (flags.block_dtmf) call_set_dtmf_block(call, monologues[0], &flags); /* offer/answer model processing */ if ((ret = monologue_offer_answer(monologues, &streams, &flags)) == 0) { /* if all fine, prepare an outer sdp and save it */ if ((ret = sdp_replace(chopper, &parsed, to_ml, &flags)) == 0) { save_last_sdp(from_ml, &sdp, &parsed, &streams); } } update_metadata_monologue(from_ml, &flags); detect_setup_recording(call, &flags); struct recording *recording = call->recording; if (recording != NULL) { meta_write_sdp_before(recording, &sdp, from_ml, opmode); meta_write_sdp_after(recording, chopper->output, from_ml, opmode); recording_response(recording, output); } dequeue_sdp_fragments(from_ml); rwlock_unlock_w(&call->master_lock); if (!flags.no_redis_update) { redis_update_onekey(call, rtpe_redis_write); } else { ilog(LOG_DEBUG, "Not updating Redis due to present no-redis-update flag"); } gettimeofday(&(from_ml->started), NULL); errstr = "Error rewriting SDP"; if (ret == ERROR_NO_FREE_PORTS || ret == ERROR_NO_FREE_LOGS) { ilog(LOG_ERR, "Destroying call"); errstr = "Ran out of ports"; call_destroy(call); } obj_release(call); if (ret) goto out; if (chopper->output->len) bencode_dictionary_add_string_len(output, "sdp", chopper->output->str, chopper->output->len); errstr = NULL; out: return errstr; } const char *call_offer_ng(ng_buffer *ngbuf, bencode_item_t *input, bencode_item_t *output, const char* addr, const endpoint_t *sin) { return call_offer_answer_ng(ngbuf, input, output, OP_OFFER, addr, sin); } const char *call_answer_ng(ng_buffer *ngbuf, bencode_item_t *input, bencode_item_t *output) { return call_offer_answer_ng(ngbuf, input, output, OP_ANSWER, NULL, NULL); } const char *call_delete_ng(bencode_item_t *input, bencode_item_t *output) { g_auto(sdp_ng_flags) rtpp_flags; call_ng_process_flags(&rtpp_flags, input, OP_DELETE); if (!rtpp_flags.call_id.len) return "No call-id in message"; call_t *c = call_get(&rtpp_flags.call_id); if (!c) goto err; if (rtpp_flags.discard_recording) recording_discard(c); if (call_delete_branch(c, &rtpp_flags.via_branch, &rtpp_flags.from_tag, (rtpp_flags.to_tag_flag ? &rtpp_flags.to_tag : NULL), output, rtpp_flags.delete_delay)) { goto err; } return NULL; err: if (rtpp_flags.fatal) return "Call-ID not found or tags didn't match"; bencode_dictionary_add_string(output, "warning", "Call-ID not found or tags didn't match"); return NULL; } static void ng_stats(bencode_item_t *d, const struct stream_stats *s, struct stream_stats *totals) { bencode_dictionary_add_integer(d, "packets", atomic64_get_na(&s->packets)); bencode_dictionary_add_integer(d, "bytes", atomic64_get_na(&s->bytes)); bencode_dictionary_add_integer(d, "errors", atomic64_get_na(&s->errors)); if (!totals) return; atomic64_add_na(&totals->packets, atomic64_get(&s->packets)); atomic64_add_na(&totals->bytes, atomic64_get(&s->bytes)); atomic64_add_na(&totals->errors, atomic64_get(&s->errors)); } static void ng_stats_endpoint(bencode_item_t *dict, const endpoint_t *ep) { if (!ep->address.family) return; bencode_dictionary_add_string(dict, "family", ep->address.family->name); bencode_dictionary_add_string_dup(dict, "address", sockaddr_print_buf(&ep->address)); bencode_dictionary_add_integer(dict, "port", ep->port); } static void ng_stats_stream_ssrc(bencode_item_t *dict, struct ssrc_ctx *const ssrcs[RTPE_NUM_SSRC_TRACKING], const char *label) { bencode_item_t *list = bencode_dictionary_add_list(dict, label); for (int i = 0; i < RTPE_NUM_SSRC_TRACKING; i++) { struct ssrc_ctx *c = ssrcs[i]; if (!c) break; bencode_item_t *ssrc = bencode_list_add_dictionary(list); bencode_dictionary_add_integer(ssrc, "SSRC", ssrcs[i]->parent->h.ssrc); bencode_dictionary_add_integer(ssrc, "bytes", atomic64_get_na(&c->stats->bytes)); bencode_dictionary_add_integer(ssrc, "packets", atomic64_get_na(&c->stats->packets)); bencode_dictionary_add_integer(ssrc, "last RTP timestamp", atomic_get_na(&c->stats->timestamp)); bencode_dictionary_add_integer(ssrc, "last RTP seq", atomic_get_na(&c->stats->ext_seq)); } } #define BF_PS(k, f) if (PS_ISSET(ps, f)) bencode_list_add_string(flags, k) static void ng_stats_stream(bencode_item_t *list, const struct packet_stream *ps, struct call_stats *totals) { bencode_item_t *dict = NULL, *flags; struct stream_stats *s; if (!list) goto stats; dict = bencode_list_add_dictionary(list); if (ps->selected_sfd) { bencode_dictionary_add_integer(dict, "local port", ps->selected_sfd->socket.local.port); bencode_dictionary_add_string_dup(dict, "local address", sockaddr_print_buf(&ps->selected_sfd->socket.local.address)); bencode_dictionary_add_string(dict, "family", ps->selected_sfd->socket.local.address.family->name); } ng_stats_endpoint(bencode_dictionary_add_dictionary(dict, "endpoint"), &ps->endpoint); ng_stats_endpoint(bencode_dictionary_add_dictionary(dict, "advertised endpoint"), &ps->advertised_endpoint); if (ps->crypto.params.crypto_suite) bencode_dictionary_add_string(dict, "crypto suite", ps->crypto.params.crypto_suite->name); bencode_dictionary_add_integer(dict, "last packet", packet_stream_last_packet(ps)); bencode_dictionary_add_integer(dict, "last kernel packet", atomic64_get_na(&ps->stats_in->last_packet)); bencode_dictionary_add_integer(dict, "last user packet", atomic64_get_na(&ps->last_packet)); flags = bencode_dictionary_add_list(dict, "flags"); BF_PS("RTP", RTP); BF_PS("RTCP", RTCP); BF_PS("fallback RTCP", FALLBACK_RTCP); BF_PS("filled", FILLED); BF_PS("confirmed", CONFIRMED); BF_PS("kernelized", KERNELIZED); BF_PS("no kernel support", NO_KERNEL_SUPPORT); BF_PS("DTLS fingerprint verified", FINGERPRINT_VERIFIED); BF_PS("strict source address", STRICT_SOURCE); BF_PS("media handover", MEDIA_HANDOVER); BF_PS("ICE", ICE); ng_stats_stream_ssrc(dict, ps->ssrc_in, "ingress SSRCs"); ng_stats_stream_ssrc(dict, ps->ssrc_out, "egress SSRCs"); stats: if (totals->last_packet < packet_stream_last_packet(ps)) totals->last_packet = packet_stream_last_packet(ps); /* XXX distinguish between input and output */ s = &totals->totals[0]; if (!PS_ISSET(ps, RTP)) s = &totals->totals[1]; ng_stats(bencode_dictionary_add_dictionary(dict, "stats"), ps->stats_in, s); ng_stats(bencode_dictionary_add_dictionary(dict, "stats_out"), ps->stats_out, NULL); } #define BF_M(k, f) if (MEDIA_ISSET(m, f)) bencode_list_add_string(flags, k) static void ng_stats_media(bencode_item_t *list, const struct call_media *m, struct call_stats *totals) { bencode_item_t *dict, *streams = NULL, *flags; struct packet_stream *ps; const rtp_payload_type *rtp_pt = NULL; if (!list) goto stats; rtp_pt = __rtp_stats_codec((struct call_media *)m); dict = bencode_list_add_dictionary(list); bencode_dictionary_add_integer(dict, "index", m->index); bencode_dictionary_add_str(dict, "type", &m->type); if (m->protocol) bencode_dictionary_add_string(dict, "protocol", m->protocol->name); if (rtp_pt) bencode_dictionary_add_str_dup(dict, "codec", &rtp_pt->encoding_with_params); streams = bencode_dictionary_add_list(dict, "streams"); flags = bencode_dictionary_add_list(dict, "flags"); BF_M("initialized", INITIALIZED); BF_M("asymmetric", ASYMMETRIC); BF_M("send", SEND); BF_M("recv", RECV); BF_M("rtcp-mux", RTCP_MUX); BF_M("DTLS-SRTP", DTLS); BF_M("DTLS role active", SETUP_ACTIVE); BF_M("DTLS role passive", SETUP_PASSIVE); BF_M("SDES", SDES); BF_M("passthrough", PASSTHRU); BF_M("ICE", ICE); BF_M("trickle ICE", TRICKLE_ICE); BF_M("ICE controlling", ICE_CONTROLLING); BF_M("ICE-lite peer", ICE_LITE_PEER); BF_M("ICE-lite self", ICE_LITE_SELF); BF_M("unidirectional", UNIDIRECTIONAL); BF_M("loop check", LOOP_CHECK); BF_M("generator/sink", GENERATOR); BF_M("ptime-override", PTIME_OVERRIDE); BF_M("RTCP feedback", RTCP_FB); BF_M("RTCP generator", RTCP_GEN); BF_M("echo", ECHO); BF_M("blackhole", BLACKHOLE); BF_M("SDES reordered", REORDER_FORCED); BF_M("audio player", AUDIO_PLAYER); BF_M("legacy OSRTP", LEGACY_OSRTP); BF_M("reverse legacy OSRTP", LEGACY_OSRTP_REV); BF_M("transcoding", TRANSCODING); BF_M("block egress", BLOCK_EGRESS); stats: for (auto_iter(l, m->streams.head); l; l = l->next) { ps = l->data; ng_stats_stream(streams, ps, totals); } } static void ng_stats_monologue(bencode_item_t *dict, const struct call_monologue *ml, struct call_stats *totals, bencode_item_t *ssrc) { bencode_item_t *sub, *medias = NULL; struct call_media *m; g_auto(GQueue) mls_subscriptions = G_QUEUE_INIT; /* to avoid duplications */ g_auto(GQueue) mls_subscribers = G_QUEUE_INIT; /* to avoid duplications */ if (!ml) return; if (!dict) goto stats; if (ml->tag.len) sub = bencode_dictionary_add_dictionary(dict, ml->tag.s); else { char *buf = bencode_buffer_alloc(dict->buffer, 32); snprintf(buf, 32, "", ml->unique_id); sub = bencode_dictionary_add_dictionary(dict, buf); } bencode_dictionary_add_str(sub, "tag", &ml->tag); if (ml->viabranch.s) bencode_dictionary_add_str(sub, "via-branch", &ml->viabranch); if (ml->label.s) bencode_dictionary_add_str(sub, "label", &ml->label); bencode_dictionary_add_integer(sub, "created", ml->created); bencode_item_t *b_subscriptions = bencode_dictionary_add_list(sub, "subscriptions"); bencode_item_t *b_subscribers = bencode_dictionary_add_list(sub, "subscribers"); for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type subscription = media->media_subscriptions.head; subscription; subscription = subscription->next) { struct media_subscription * ms = subscription->data; if (!g_queue_find(&mls_subscriptions, ms->monologue)) { bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscriptions); bencode_dictionary_add_str(sub1, "tag", &ms->monologue->tag); bencode_dictionary_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); g_queue_push_tail(&mls_subscriptions, ms->monologue); } } for (__auto_type subscriber = media->media_subscribers.head; subscriber; subscriber = subscriber->next) { struct media_subscription * ms = subscriber->data; if (!g_queue_find(&mls_subscribers, ms->monologue)) { bencode_item_t *sub1 = bencode_list_add_dictionary(b_subscribers); bencode_dictionary_add_str(sub1, "tag", &ms->monologue->tag); bencode_dictionary_add_string(sub1, "type", ms->attrs.offer_answer ? "offer/answer" : "pub/sub"); g_queue_push_tail(&mls_subscribers, ms->monologue); } } } ng_stats_ssrc(ssrc, ml->ssrc_hash); medias = bencode_dictionary_add_list(sub, "medias"); bencode_item_t *list = bencode_dictionary_add_list(sub, "VSC"); for (unsigned int i = 0; i < ml->num_dtmf_triggers; i++) { const struct dtmf_trigger_state *state = &ml->dtmf_trigger_state[i]; if (state->trigger.len == 0) continue; bencode_item_t *vsc = bencode_list_add_dictionary(list); const char *type = dtmf_trigger_types[state->type]; if (type) bencode_dictionary_add_string(vsc, "type", type); bencode_dictionary_add_str(vsc, "trigger", &state->trigger); bencode_dictionary_add_integer(vsc, "active", !state->inactive); } if (ml->call->recording) { bencode_item_t *rec = bencode_dictionary_add_dictionary(sub, "recording"); bencode_dictionary_add_integer(rec, "excluded", !!ML_ISSET(ml, NO_RECORDING)); bencode_dictionary_add_integer(rec, "forwarding", !!ML_ISSET(ml, REC_FORWARDING)); } stats: for (unsigned int i = 0; i < ml->medias->len; i++) { m = ml->medias->pdata[i]; if (!m) continue; ng_stats_media(medias, m, totals); } } static void ng_stats_ssrc_mos_entry_common(bencode_item_t *subent, struct ssrc_stats_block *sb, unsigned int div) { bencode_dictionary_add_integer(subent, "MOS", sb->mos / div); bencode_dictionary_add_integer(subent, "round-trip time", sb->rtt / div); bencode_dictionary_add_integer(subent, "round-trip time leg", sb->rtt_leg / div); bencode_dictionary_add_integer(subent, "jitter", sb->jitter / div); bencode_dictionary_add_integer(subent, "packet loss", sb->packetloss / div); } static void ng_stats_ssrc_mos_entry(bencode_item_t *subent, struct ssrc_stats_block *sb) { ng_stats_ssrc_mos_entry_common(subent, sb, 1); bencode_dictionary_add_integer(subent, "reported at", sb->reported.tv_sec); } static void ng_stats_ssrc_mos_entry_dict(bencode_item_t *ent, const char *label, struct ssrc_stats_block *sb) { bencode_item_t *subent = bencode_dictionary_add_dictionary(ent, label); ng_stats_ssrc_mos_entry(subent, sb); } static void ng_stats_ssrc_mos_entry_dict_avg(bencode_item_t *ent, const char *label, struct ssrc_stats_block *sb, unsigned int div) { bencode_item_t *subent = bencode_dictionary_add_dictionary(ent, label); ng_stats_ssrc_mos_entry_common(subent, sb, div); bencode_dictionary_add_integer(subent, "samples", div); } static void ng_stats_ssrc(bencode_item_t *dict, struct ssrc_hash *ht) { GList *ll = g_hash_table_get_values(ht->ht); for (GList *l = ll; l; l = l->next) { struct ssrc_entry_call *se = l->data; char *tmp = bencode_buffer_alloc(dict->buffer, 12); snprintf(tmp, 12, "%" PRIu32, se->h.ssrc); if (bencode_dictionary_get(dict, tmp)) continue; if (!se->stats_blocks.length || !se->lowest_mos || !se->highest_mos) continue; bencode_item_t *ent = bencode_dictionary_add_dictionary(dict, tmp); bencode_dictionary_add_integer(ent, "cumulative loss", se->packets_lost); int mos_samples = se->stats_blocks.length - se->no_mos_count; if (mos_samples < 1) mos_samples = 1; ng_stats_ssrc_mos_entry_dict_avg(ent, "average MOS", &se->average_mos, mos_samples); ng_stats_ssrc_mos_entry_dict(ent, "lowest MOS", se->lowest_mos); ng_stats_ssrc_mos_entry_dict(ent, "highest MOS", se->highest_mos); bencode_item_t *progdict = bencode_dictionary_add_dictionary(ent, "MOS progression"); // aim for about 10 entries to the list GList *listent = se->stats_blocks.head; struct ssrc_stats_block *sb = listent->data; int interval = ((struct ssrc_stats_block *) se->stats_blocks.tail->data)->reported.tv_sec - sb->reported.tv_sec; interval /= 10; bencode_dictionary_add_integer(progdict, "interval", interval); time_t next_step = sb->reported.tv_sec; bencode_item_t *entlist = bencode_dictionary_add_list(progdict, "entries"); for (; listent; listent = listent->next) { sb = listent->data; if (sb->reported.tv_sec < next_step) continue; next_step += interval; bencode_item_t *cent = bencode_list_add_dictionary(entlist); ng_stats_ssrc_mos_entry(cent, sb); } } g_list_free(ll); } /* call must be locked */ void ng_call_stats(call_t *call, const str *fromtag, const str *totag, bencode_item_t *output, struct call_stats *totals) { bencode_item_t *tags = NULL, *dict; const str *match_tag; struct call_monologue *ml; struct call_stats t_b; bencode_item_t *ssrc = NULL; if (!totals) totals = &t_b; ZERO(*totals); if (!output) goto stats; call_bencode_hold_ref(call, output); bencode_dictionary_add_integer(output, "created", call->created.tv_sec); bencode_dictionary_add_integer(output, "created_us", call->created.tv_usec); bencode_dictionary_add_integer(output, "last signal", call->last_signal); bencode_dictionary_add_integer(output, "last redis update", atomic64_get_na(&call->last_redis_update)); ssrc = bencode_dictionary_add_dictionary(output, "SSRC"); tags = bencode_dictionary_add_dictionary(output, "tags"); stats: match_tag = (totag && totag->s && totag->len) ? totag : fromtag; if (!match_tag || !match_tag->len) { for (__auto_type l = call->monologues.head; l; l = l->next) { ml = l->data; ng_stats_monologue(tags, ml, totals, ssrc); } } else { ml = call_get_monologue(call, match_tag); if (ml) { ng_stats_monologue(tags, ml, totals, ssrc); g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type subscription = media->media_subscriptions.head; subscription; subscription = subscription->next) { struct media_subscription * ms = subscription->data; if (!g_queue_find(&mls, ms->monologue)) { ng_stats_monologue(tags, ms->monologue, totals, ssrc); g_queue_push_tail(&mls, ms->monologue); } } } } } if (!output) return; dict = bencode_dictionary_add_dictionary(output, "totals"); ng_stats(bencode_dictionary_add_dictionary(dict, "RTP"), &totals->totals[0], NULL); ng_stats(bencode_dictionary_add_dictionary(dict, "RTCP"), &totals->totals[1], NULL); if (call->recording) { bencode_item_t *rec = bencode_dictionary_add_dictionary(output, "recording"); bencode_dictionary_add_integer(rec, "call recording", !!CALL_ISSET(call, RECORDING_ON)); bencode_dictionary_add_integer(rec, "forwarding", !!CALL_ISSET(call, REC_FORWARDING)); } } static void ng_list_calls(bencode_item_t *output, long long int limit) { rtpe_calls_ht_iter iter; rwlock_lock_r(&rtpe_callhash_lock); t_hash_table_iter_init (&iter, rtpe_callhash); str *key; while (limit-- && t_hash_table_iter_next (&iter, &key, NULL)) { bencode_list_add_str_dup(output, key); } rwlock_unlock_r(&rtpe_callhash_lock); } const char *call_query_ng(bencode_item_t *input, bencode_item_t *output) { str callid, fromtag, totag; call_t *call; if (!bencode_dictionary_get_str(input, "call-id", &callid)) return "No call-id in message"; call = call_get_opmode(&callid, OP_QUERY); if (!call) return "Unknown call-id"; bencode_dictionary_get_str(input, "from-tag", &fromtag); bencode_dictionary_get_str(input, "to-tag", &totag); ng_call_stats(call, &fromtag, &totag, output, NULL); rwlock_unlock_w(&call->master_lock); obj_put(call); return NULL; } const char *call_list_ng(bencode_item_t *input, bencode_item_t *output) { bencode_item_t *calls = NULL; long long int limit; limit = bencode_dictionary_get_int_str(input, "limit", 32); if (limit < 0) { return "invalid limit, must be >= 0"; } calls = bencode_dictionary_add_list(output, "calls"); ng_list_calls(calls, limit); return NULL; } static const char *call_recording_common_ng(bencode_item_t *input, bencode_item_t *output, enum call_opmode opmode, void (*fn)(bencode_item_t *input, call_t *call)) { g_auto(sdp_ng_flags) flags; g_autoptr(call_t) call = NULL; call_ng_process_flags(&flags, input, opmode); if (!bencode_dictionary_get_str(input, "call-id", &flags.call_id)) return "No call-id in message"; call = call_get_opmode(&flags.call_id, opmode); if (!call) return "Unknown call-id"; struct call_monologue *ml = NULL; if (bencode_dictionary_get_str(input, "from-tag", &flags.from_tag)) { if (flags.from_tag.s) { ml = call_get_monologue(call, &flags.from_tag); if (!ml) ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", STR_FMT_M(&flags.from_tag)); } } if (ml) update_metadata_monologue(ml, &flags); else update_metadata_call(call, &flags); fn(input, call); return NULL; } static void start_recording_fn(bencode_item_t *input, call_t *call) { recording_start(call); } const char *call_start_recording_ng(bencode_item_t *input, bencode_item_t *output) { return call_recording_common_ng(input, output, OP_START_RECORDING, start_recording_fn); } static void pause_recording_fn(bencode_item_t *input, call_t *call) { recording_pause(call); } const char *call_pause_recording_ng(bencode_item_t *input, bencode_item_t *output) { return call_recording_common_ng(input, output, OP_PAUSE_RECORDING, pause_recording_fn); } static void stop_recording_fn(bencode_item_t *input, call_t *call) { // support alternative usage for "pause" call: either `pause=yes` ... str pause; if (bencode_dictionary_get_str(input, "pause", &pause)) { if (!str_cmp(&pause, "yes") || !str_cmp(&pause, "on") || !str_cmp(&pause, "true")) { pause_recording_fn(input, call); return; } } // ... or `flags=[pause]` bencode_item_t *item = bencode_dictionary_get(input, "flags"); if (item && item->type == BENCODE_LIST && item->child) { for (bencode_item_t *child = item->child; child; child = child->sibling) { if (bencode_strcmp(child, "pause") == 0) { pause_recording_fn(input, call); return; } if (bencode_strcmp(child, "discard-recording") == 0) { recording_discard(call); return; } } } recording_stop(call); } const char *call_stop_recording_ng(bencode_item_t *input, bencode_item_t *output) { return call_recording_common_ng(input, output, OP_STOP_RECORDING, stop_recording_fn); } static const char *media_block_match1(call_t *call, struct call_monologue **monologue, sdp_ng_flags *flags, enum call_opmode opmode) { if (flags->label.s) { *monologue = t_hash_table_lookup(call->labels, &flags->label); if (!*monologue) return "No monologue matching the given label"; } else if (flags->address.s) { sockaddr_t addr; if (sockaddr_parse_any_str(&addr, &flags->address)) return "Failed to parse network address"; // walk our structures to find a matching stream for (__auto_type l = call->monologues.head; l; l = l->next) { *monologue = l->data; for (unsigned int k = 0; k < (*monologue)->medias->len; k++) { struct call_media *media = (*monologue)->medias->pdata[k]; if (!media) continue; if (!media->streams.head) continue; struct packet_stream *ps = media->streams.head->data; if (!sockaddr_eq(&addr, &ps->advertised_endpoint.address)) continue; ilog(LOG_DEBUG, "Matched address %s%s%s to tag '" STR_FORMAT_M "'", FMT_M(sockaddr_print_buf(&addr)), STR_FMT_M(&(*monologue)->tag)); goto found; } } return "Failed to match address to any tag"; found: ; } /* ignore from-tag, if directional is not set */ else if (flags->from_tag.s && (!IS_OP_DIRECTIONAL(opmode) || (IS_OP_DIRECTIONAL(opmode) && flags->directional))) { *monologue = call_get_monologue(call, &flags->from_tag); if (!*monologue) return "From-tag given, but no such tag exists"; } if (*monologue) __monologue_unconfirm(*monologue, "media blocking signalling event"); return NULL; } static const char *media_block_match(call_t **call, struct call_monologue **monologue, sdp_ng_flags *flags, bencode_item_t *input, enum call_opmode opmode) { *call = NULL; *monologue = NULL; call_ng_process_flags(flags, input, opmode); if (!flags->call_id.s) return "No call-id in message"; *call = call_get_opmode(&flags->call_id, opmode); if (!*call) return "Unknown call-ID"; // directional? if (flags->all == ALL_ALL) // explicitly non-directional, so skip the rest return NULL; const char *err = media_block_match1(*call, monologue, flags, opmode); if (err) return err; // for generic ops, handle set-label here if given if (IS_OP_OTHER(opmode) && flags->set_label.len && *monologue) { call_str_cpy(*call, &(*monologue)->label, &flags->set_label); t_hash_table_replace((*call)->labels, &(*monologue)->label, *monologue); } return NULL; } void add_media_to_sub_list(subscription_q *q, struct call_media *media, struct call_monologue *ml) { struct media_subscription *ms = g_slice_alloc0(sizeof(*ms)); ms->media = media; ms->monologue = ml; t_queue_push_tail(q, ms); } static const char *media_block_match_mult(call_t **call, subscription_q *medias, sdp_ng_flags *flags, bencode_item_t *input, enum call_opmode opmode) { call_ng_process_flags(flags, input, opmode); if (!flags->call_id.s) return "No call-id in message"; *call = call_get_opmode(&flags->call_id, opmode); if (!*call) return "Unknown call-ID"; if (flags->all == ALL_ALL) { for (__auto_type l = (*call)->medias.head; l; l = l->next) { struct call_media *media = l->data; if (!media || (media->monologue->tagtype != FROM_TAG && media->monologue->tagtype != TO_TAG)) { continue; } add_media_to_sub_list(medias, media, media->monologue); } return NULL; } /* is a single ml given? */ struct call_monologue *ml = NULL; const char *err = media_block_match1(*call, &ml, flags, opmode); if (err) return err; if (ml) { for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; add_media_to_sub_list(medias, media, ml); } return NULL; } /* handle from-tag list */ for (__auto_type l = flags->from_tags.head; l; l = l->next) { str *s = l->data; struct call_monologue *mlf = call_get_monologue(*call, s); if (!mlf) { ilog(LOG_WARN, "Given from-tag " STR_FORMAT_M " not found", STR_FMT_M(s)); } else { for (int i = 0; i < mlf->medias->len; i++) { struct call_media * media = mlf->medias->pdata[i]; if (!media) continue; add_media_to_sub_list(medias, media, mlf); } } } if (!medias->length) return "No medias found (no monologues matched)"; return NULL; } // XXX these are all identical - unify and use a flags int and/or callback const char *call_start_forwarding_ng(bencode_item_t *input, bencode_item_t *output) { g_autoptr(call_t) call = NULL; struct call_monologue *monologue; const char *errstr = NULL; g_auto(sdp_ng_flags) flags; errstr = media_block_match(&call, &monologue, &flags, input, OP_START_FORWARDING); if (errstr) return errstr; if (monologue) { ilog(LOG_INFO, "Start forwarding for single party (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); ML_SET(monologue, REC_FORWARDING); } else { ilog(LOG_INFO, "Start forwarding (entire call)"); CALL_SET(call, REC_FORWARDING); } if (monologue) update_metadata_monologue(monologue, &flags); else update_metadata_call(call, &flags); recording_start_daemon(call); return NULL; } const char *call_stop_forwarding_ng(bencode_item_t *input, bencode_item_t *output) { g_autoptr(call_t) call = NULL; struct call_monologue *monologue; const char *errstr = NULL; g_auto(sdp_ng_flags) flags; errstr = media_block_match(&call, &monologue, &flags, input, OP_STOP_FORWARDING); if (errstr) return errstr; if (monologue) { ilog(LOG_INFO, "Stop forwarding for single party (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); ML_CLEAR(monologue, REC_FORWARDING); } else { ilog(LOG_INFO, "Stop forwarding (entire call)"); CALL_CLEAR(call, REC_FORWARDING); if (flags.all == ALL_ALL) { for (__auto_type l = call->monologues.head; l; l = l->next) { monologue = l->data; ML_CLEAR(monologue, REC_FORWARDING); } } } if (monologue) update_metadata_monologue(monologue, &flags); else update_metadata_call(call, &flags); recording_stop_daemon(call); return NULL; } static void call_monologue_set_block_mode(struct call_monologue *ml, sdp_ng_flags *flags) { if (flags->delay_buffer >= 0) { for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; media->buffer_delay = flags->delay_buffer; } } bf_set_clear(&ml->ml_flags, ML_FLAG_DETECT_DTMF, flags->detect_dtmf); if (flags->volume >= 0 && flags->volume <= 63) ml->tone_vol = flags->volume; else if (flags->volume < 0 && flags->volume >= -63) ml->tone_vol = -1 * flags->volume; if (flags->frequencies && flags->frequencies->len > 0) { if (ml->tone_freqs) g_array_free(ml->tone_freqs, true); ml->tone_freqs = flags->frequencies; flags->frequencies = NULL; } if (flags->block_dtmf_mode == BLOCK_DTMF_ZERO) ml->dtmf_digit = '0'; else { char digit = dtmf_code_to_char(flags->digit); if (digit) ml->dtmf_digit = digit; else if (dtmf_code_from_char(flags->digit) != -1) ml->dtmf_digit = flags->digit; } dtmf_trigger_set(ml, DTMF_TRIGGER_BLOCK, &flags->trigger, false); dtmf_trigger_set(ml, DTMF_TRIGGER_UNBLOCK, &flags->trigger_end, false); ml->block_dtmf_trigger = flags->block_dtmf_mode_trigger; ml->dtmf_trigger_digits = flags->trigger_end_digits; ml->block_dtmf_trigger_end_ms = flags->trigger_end_ms; ml->dtmf_delay = flags->dtmf_delay; codec_update_all_handlers(ml); } static void call_set_dtmf_block(call_t *call, struct call_monologue *monologue, sdp_ng_flags *flags) { enum block_dtmf_mode mode = BLOCK_DTMF_DROP; // special case default: if there's a trigger, default block mode is none if (flags->block_dtmf_mode_trigger || flags->trigger.len) mode = BLOCK_DTMF_OFF; if (flags->block_dtmf_mode) mode = flags->block_dtmf_mode; if (monologue) { ilog(LOG_INFO, "Blocking directional DTMF (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); monologue->block_dtmf = mode; } else { ilog(LOG_INFO, "Blocking DTMF (entire call)"); call->block_dtmf = mode; } if (is_dtmf_replace_mode(mode) || flags->delay_buffer >= 0 || flags->trigger.len) { if (monologue) call_monologue_set_block_mode(monologue, flags); else { for (__auto_type l = call->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; call_monologue_set_block_mode(ml, flags); } } } } const char *call_block_dtmf_ng(bencode_item_t *input, bencode_item_t *output) { g_autoptr(call_t) call = NULL; struct call_monologue *monologue; const char *errstr = NULL; g_auto(sdp_ng_flags) flags; errstr = media_block_match(&call, &monologue, &flags, input, OP_BLOCK_DTMF); if (errstr) return errstr; call_set_dtmf_block(call, monologue, &flags); return NULL; } const char *call_unblock_dtmf_ng(bencode_item_t *input, bencode_item_t *output) { g_autoptr(call_t) call = NULL; struct call_monologue *monologue; const char *errstr = NULL; g_auto(sdp_ng_flags) flags; errstr = media_block_match(&call, &monologue, &flags, input, OP_UNBLOCK_DTMF); if (errstr) return errstr; if (monologue) { ilog(LOG_INFO, "Unblocking directional DTMF (tag '" STR_FORMAT_M "')", STR_FMT_M(&monologue->tag)); enum block_dtmf_mode prev_mode = monologue->block_dtmf; monologue->block_dtmf = BLOCK_DTMF_OFF; if (is_dtmf_replace_mode(prev_mode) || flags.delay_buffer >= 0) { if (flags.delay_buffer >= 0) { for (unsigned int i = 0; i < monologue->medias->len; i++) { struct call_media *media = monologue->medias->pdata[i]; if (!media) continue; media->buffer_delay = flags.delay_buffer; } } bf_set_clear(&monologue->ml_flags, ML_FLAG_DETECT_DTMF, flags.detect_dtmf); codec_update_all_handlers(monologue); } } else { ilog(LOG_INFO, "Unblocking DTMF (entire call)"); enum block_dtmf_mode prev_mode = call->block_dtmf; call->block_dtmf = BLOCK_DTMF_OFF; if (flags.all == ALL_ALL || is_dtmf_replace_mode(prev_mode) || flags.delay_buffer >= 0) { for (__auto_type l = call->monologues.head; l; l = l->next) { monologue = l->data; enum block_dtmf_mode prev_ml_mode = BLOCK_DTMF_OFF; if (flags.all == ALL_ALL) { prev_ml_mode = monologue->block_dtmf; monologue->block_dtmf = BLOCK_DTMF_OFF; } if (flags.delay_buffer >= 0) { for (unsigned int i = 0; i < monologue->medias->len; i++) { struct call_media *media = monologue->medias->pdata[i]; if (!media) continue; media->buffer_delay = flags.delay_buffer; } } bf_set_clear(&monologue->ml_flags, ML_FLAG_DETECT_DTMF, flags.detect_dtmf); if (is_dtmf_replace_mode(prev_ml_mode) || is_dtmf_replace_mode(prev_mode) || flags.delay_buffer >= 0) codec_update_all_handlers(monologue); } } } return NULL; } static const char *call_block_silence_media(bencode_item_t *input, bool on_off, const char *ucase_verb, const char *lcase_verb, unsigned int call_flag, unsigned int ml_flag, size_t attr_offset) { g_autoptr(call_t) call = NULL; struct call_monologue *monologue; const char *errstr = NULL; g_auto(sdp_ng_flags) flags; bool found_subscriptions = false; errstr = media_block_match(&call, &monologue, &flags, input, OP_BLOCK_SILENCE_MEDIA); if (errstr) return errstr; /* from-monologue is given */ if (monologue) { /* potential sinks (medias) towards from-monologue, * not particularly subscribed */ bool sinks = false; /* to-monologue is given */ if (flags.to_tag.len || flags.to_label.len) { struct call_monologue *sink_ml = NULL; /* to-monologue is given, check using to-tag */ if (flags.to_tag.len) { sink_ml = t_hash_table_lookup(call->tags, &flags.to_tag); if (!sink_ml) { ilog(LOG_WARN, "Media flow '" STR_FORMAT_M "' -> '" STR_FORMAT_M "' doesn't " "exist for media %s (to-tag not found)", STR_FMT_M(&monologue->tag), STR_FMT_M(&flags.to_tag), lcase_verb); return "Media flow not found (to-tag not found)"; } /* to-monologue is given, check using to-label */ } else { sink_ml = t_hash_table_lookup(call->labels, &flags.to_label); if (!sink_ml) { ilog(LOG_WARN, "Media flow '" STR_FORMAT_M "' -> label '" STR_FORMAT "' doesn't " "exist for media %s (to-label not found)", STR_FMT_M(&monologue->tag), STR_FMT(&flags.to_label), lcase_verb); return "Media flow not found (to-label not found)"; } } /* now check if any sink ml media is susbcribed to any of monologue medias */ for (int i = 0; i < sink_ml->medias->len; i++) { struct call_media * sink_md = monologue->medias->pdata[i]; if (!sink_md) continue; for (int j = 0; j < monologue->medias->len; j++) { struct call_media * ml_media = monologue->medias->pdata[j]; if (!ml_media) continue; subscription_list * ll = t_hash_table_lookup(ml_media->media_subscriptions_ht, sink_md); if (ll) { found_subscriptions = true; G_STRUCT_MEMBER(bool, &ll->data->attrs, attr_offset) = on_off; ilog(LOG_INFO, "%s directional media flow: " "monologue tag '" STR_FORMAT_M "' -> '" STR_FORMAT_M "' / " "media index '%d' -> '%d'", ucase_verb, STR_FMT_M(&monologue->tag), STR_FMT_M(&ll->data->monologue->tag), ml_media->index, ll->data->media->index); } } sinks = true; } /* one of the "all" flags is given, to-subscriptions */ } else if (flags.all == ALL_OFFER_ANSWER || flags.all == ALL_NON_OFFER_ANSWER || flags.all == ALL_FLOWS) { for (int i = 0; i < monologue->medias->len; i++) { struct call_media * ml_media = monologue->medias->pdata[i]; if (!ml_media) continue; for (__auto_type sub = ml_media->media_subscribers.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct call_media * sub_md = ms->media; if (!sub_md || (flags.all == ALL_OFFER_ANSWER && !ms->attrs.offer_answer) || (flags.all == ALL_NON_OFFER_ANSWER && ms->attrs.offer_answer)) { continue; } ilog(LOG_INFO, "%s directional media flow: " "monologue tag '" STR_FORMAT_M "' -> '" STR_FORMAT_M "' / " "media index '%d' -> '%d'", ucase_verb, STR_FMT_M(&monologue->tag), STR_FMT_M(&sub_md->monologue->tag), ml_media->index, sub_md->index); found_subscriptions = true; G_STRUCT_MEMBER(bool, &ms->attrs, attr_offset) = on_off; sinks = true; } } /* having an empty sinks list is an error, as "all" would be nothing */ if (!sinks) { ilog(LOG_WARN, "No eligible media subscriptions found for '" STR_FORMAT_M "' " "for media %s", STR_FMT_M(&monologue->tag), lcase_verb); return "No eligible media subscriptions found"; } } /* media sinks */ if (sinks) { if (!found_subscriptions) { /* no one of sink medias is subscribed to monologue medias */ ilog(LOG_WARN, "Media flow '" STR_FORMAT_M "' -> '" STR_FORMAT_M "' doesn't " "exist for media %s (to-tag not subscribed)", STR_FMT_M(&monologue->tag), STR_FMT_M(&flags.to_tag), lcase_verb); return "Media flow not found (to-tag not subscribed)"; } update_init_subscribers(monologue, OP_BLOCK_SILENCE_MEDIA); } else { /* it seems no to-monologue is given and no "all" flag is given as well. * In this case the from-monologue itself is flagged, * and not any of the media flows (subscription objects) */ ilog(LOG_INFO, "%s directional media (tag '" STR_FORMAT_M "')", ucase_verb, STR_FMT_M(&monologue->tag)); bf_set_clear(&monologue->ml_flags, ml_flag, on_off); } __monologue_unconfirm(monologue, "media silencing signalling event"); } else { bf_set_clear(&call->call_flags, call_flag, on_off); if (!on_off) { ilog(LOG_INFO, "%s media (entire call and participants)", ucase_verb); if (flags.all == ALL_ALL) { for (__auto_type l = call->monologues.head; l; l = l->next) { monologue = l->data; bf_set_clear(&monologue->ml_flags, ml_flag, on_off); } } } else { ilog(LOG_INFO, "%s media (entire call)", ucase_verb); } __call_unkernelize(call, "media silencing signalling event"); } return NULL; } #define CALL_BLOCK_SILENCE_MEDIA(input, on_off, ucase_verb, lcase_verb, member_name, flag) \ call_block_silence_media(input, on_off, ucase_verb, lcase_verb, \ CALL_FLAG_ ## flag, \ ML_FLAG_ ## flag, \ G_STRUCT_OFFSET(struct sink_attrs, member_name)) const char *call_block_media_ng(bencode_item_t *input, bencode_item_t *output) { return CALL_BLOCK_SILENCE_MEDIA(input, true, "Blocking", "blocking", block_media, BLOCK_MEDIA); } const char *call_unblock_media_ng(bencode_item_t *input, bencode_item_t *output) { return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unblocking", "unblocking", block_media, BLOCK_MEDIA); } const char *call_silence_media_ng(bencode_item_t *input, bencode_item_t *output) { return CALL_BLOCK_SILENCE_MEDIA(input, true, "Silencing", "silencing", silence_media, SILENCE_MEDIA); } const char *call_unsilence_media_ng(bencode_item_t *input, bencode_item_t *output) { return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unsilencing", "unsilencing", silence_media, SILENCE_MEDIA); } #ifdef WITH_TRANSCODING static const char *play_media_select_party(call_t **call, monologues_q *monologues, bencode_item_t *input, sdp_ng_flags *flags) { struct call_monologue *monologue; t_queue_init(monologues); const char *err = media_block_match(call, &monologue, flags, input, OP_PLAY_MEDIA); if (err) return err; if (flags->all == ALL_ALL) t_queue_append(monologues, &(*call)->monologues); else if (!monologue) return "No participant party specified"; else t_queue_push_tail(monologues, monologue); return NULL; } #endif const char *call_play_media_ng(bencode_item_t *input, bencode_item_t *output) { #ifdef WITH_TRANSCODING g_autoptr(call_t) call = NULL; g_auto(monologues_q) monologues; const char *err = NULL; g_auto(sdp_ng_flags) flags; err = play_media_select_party(&call, &monologues, input, &flags); if (err) return err; flags.opmode = OP_PLAY_MEDIA; for (__auto_type l = monologues.head; l; l = l->next) { struct call_monologue *monologue = l->data; // if mixing is enabled, codec handlers of all sources must be updated codec_update_all_source_handlers(monologue, &flags); // this starts the audio player if needed update_init_subscribers(monologue, OP_PLAY_MEDIA); // media_player_new() now knows that audio player is in use // TODO: player options can have changed if already exists media_player_new(&monologue->player, monologue); media_player_opts_t opts = MPO( .repeat = flags.repeat_times, .start_pos = flags.start_pos, .block_egress = !!flags.block_egress, ); if (flags.file.len) { if (!media_player_play_file(monologue->player, &flags.file, opts)) return "Failed to start media playback from file"; } else if (flags.blob.len) { if (!media_player_play_blob(monologue->player, &flags.blob, opts)) return "Failed to start media playback from blob"; } else if (flags.db_id > 0) { if (!media_player_play_db(monologue->player, flags.db_id, opts)) return "Failed to start media playback from database"; } else return "No media file specified"; if (l == monologues.head && monologue->player->coder.duration) bencode_dictionary_add_integer(output, "duration", monologue->player->coder.duration); } return NULL; #else return "unsupported"; #endif } const char *call_stop_media_ng(bencode_item_t *input, bencode_item_t *output) { #ifdef WITH_TRANSCODING g_autoptr(call_t) call = NULL; g_auto(monologues_q) monologues; const char *err = NULL; long long last_frame_pos = 0; g_auto(sdp_ng_flags) flags; err = play_media_select_party(&call, &monologues, input, &flags); if (err) return err; for (__auto_type l = monologues.head; l; l = l->next) { struct call_monologue *monologue = l->data; if (!monologue->player) return "Not currently playing media"; last_frame_pos = media_player_stop(monologue->player); // restore to non-mixing if needed codec_update_all_source_handlers(monologue, NULL); update_init_subscribers(monologue, OP_STOP_MEDIA); } bencode_dictionary_add_integer(output, "last-frame-pos", last_frame_pos); return NULL; #else return "unsupported"; #endif } const char *call_play_dtmf_ng(bencode_item_t *input, bencode_item_t *output) { #ifdef WITH_TRANSCODING g_autoptr(call_t) call = NULL; g_auto(monologues_q) monologues; const char *err = NULL; g_auto(sdp_ng_flags) flags; err = play_media_select_party(&call, &monologues, input, &flags); if (err) return err; // validate input parameters if (!flags.duration) flags.duration = 250; if (flags.duration < 100) { flags.duration = 100; ilog(LOG_WARN, "Invalid duration (%lli ms) specified, using 100 ms instead", flags.duration); } else if (flags.duration > 5000) { flags.duration = 5000; ilog(LOG_WARN, "Invalid duration (%lli ms) specified, using 5000 ms instead", flags.duration); } if (!flags.pause) flags.pause = 100; if (flags.pause < 100) { flags.pause = 100; ilog(LOG_WARN, "Invalid pause (%lli ms) specified, using 100 ms instead", flags.pause); } else if (flags.pause > 5000) { flags.pause = 5000; ilog(LOG_WARN, "Invalid pause (%lli ms) specified, using 5000 ms instead", flags.pause); } int code; if (dtmf_code_to_char(flags.digit)) code = flags.digit; // already a code else code = dtmf_code_from_char(flags.digit); // convert digit to code if (code < 0) return "Out of range 'code' specified"; else if (code > 15) return "Out of range 'code' specified"; if (flags.volume > 0) flags.volume *= -1; for (__auto_type l = monologues.head; l; l = l->next) { struct call_monologue *monologue = l->data; // find a usable output media struct call_media *media; for (unsigned int i = 0; i < monologue->medias->len; i++) { media = monologue->medias->pdata[i]; if (!media) continue; if (media->type_id != MT_AUDIO) continue; goto found; } return "Monologue has no media capable of DTMF injection"; // XXX fall back to generating a secondary stream found: ML_SET(monologue, DTMF_INJECTION_ACTIVE); dialogue_unconfirm(monologue, "DTMF playback"); for (unsigned int i = 0; i < monologue->medias->len; i++) { struct call_media *ml_media = monologue->medias->pdata[i]; if (!ml_media) continue; struct call_media * ms_media_sink = NULL; for (__auto_type ll = ml_media->media_subscribers.head; ll; ll = ll->next) { struct media_subscription * ms = ll->data; ms_media_sink = ms->media; if (!ms_media_sink || ms_media_sink->type_id != MT_AUDIO) continue; goto found_sink; } return "There is no sink media capable of DTMF playback"; found_sink: err = dtmf_inject(media, code, flags.volume, flags.duration, flags.pause, ms_media_sink); if (err) return err; } } return NULL; #else return "unsupported"; #endif } const char *call_publish_ng(ng_buffer *ngbuf, bencode_item_t *input, bencode_item_t *output, const char *addr, const endpoint_t *sin) { g_auto(sdp_ng_flags) flags; g_auto(sdp_sessions_q) parsed = TYPED_GQUEUE_INIT; g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; g_auto(str) sdp_in = STR_NULL; g_auto(str) sdp_out = STR_NULL; g_autoptr(call_t) call = NULL; int ret; call_ng_process_flags(&flags, input, OP_PUBLISH); if ((ret = call_ng_basic_checks(&flags, OP_PUBLISH)) > 0) return _ng_basic_errors[ret]; str_init_dup_str(&sdp_in, &flags.sdp); if (sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; if (sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; call = call_get_or_create(&flags.call_id, false); if (trickle_ice_update(ngbuf, call, &flags, &streams)) return NULL; updated_created_from(call, addr, sin); struct call_monologue *ml = call_get_or_create_monologue(call, &flags.from_tag); ret = monologue_publish(ml, &streams, &flags); if (ret) ilog(LOG_ERR, "Publish error"); // XXX close call? handle errors? ret = sdp_create(&sdp_out, ml, &flags); if (!ret) { save_last_sdp(ml, &sdp_in, &parsed, &streams); bencode_buffer_destroy_add(output->buffer, g_free, sdp_out.s); bencode_dictionary_add_str(output, "sdp", &sdp_out); sdp_out = STR_NULL; // ownership passed to output } if (ret) return "Failed to create SDP"; dequeue_sdp_fragments(ml); call_unlock_release_update(&call); return NULL; } const char *call_subscribe_request_ng(bencode_item_t *input, bencode_item_t *output) { const char *err = NULL; g_auto(sdp_ng_flags) flags; char rand_buf[65]; g_autoptr(call_t) call = NULL; g_auto(subscription_q) srms = TYPED_GQUEUE_INIT; g_auto(str) sdp_out = STR_NULL; /* get source monologue */ err = media_block_match_mult(&call, &srms, &flags, input, OP_REQUEST); if (err) return err; if (flags.sdp.len) ilog(LOG_INFO, "Subscribe-request with SDP received - ignoring SDP"); if (!srms.length) return "No call participants specified (no medias found)"; /* the `label=` option was possibly used above to select the from-tag -- * switch it out with `to-label=` or `set-label=` for monologue_subscribe_request * below which sets the label based on `label` for a newly created monologue */ flags.label = flags.to_label; if (flags.set_label.len) // set-label takes priority flags.label = flags.set_label; /* get destination monologue */ if (!flags.to_tag.len) { /* generate one */ flags.to_tag = STR_CONST_INIT(rand_buf); rand_hex_str(flags.to_tag.s, flags.to_tag.len / 2); } struct call_monologue *dest_ml = call_get_or_create_monologue(call, &flags.to_tag); int ret = monologue_subscribe_request(&srms, dest_ml, &flags); if (ret) return "Failed to request subscription"; /* create new SDP */ ret = sdp_create(&sdp_out, dest_ml, &flags); if (ret) return "Failed to create SDP"; /* place return output SDP */ if (sdp_out.len) { bencode_buffer_destroy_add(output->buffer, g_free, sdp_out.s); bencode_dictionary_add_str(output, "sdp", &sdp_out); sdp_out = STR_NULL; /* ownership passed to output */ } /* add single response ml tag if there's just one, but always add a list * TODO: deprecate it, since initially added for monologue subscriptions. */ if (srms.length == 1) { struct media_subscription *ms = srms.head->data; struct call_monologue *source_ml = ms->monologue; bencode_dictionary_add_str_dup(output, "from-tag", &source_ml->tag); } bencode_item_t *tag_medias = NULL, *media_labels = NULL; if (flags.siprec) { tag_medias = bencode_dictionary_add_list(output, "tag-medias"); media_labels = bencode_dictionary_add_dictionary(output, "media-labels"); } bencode_item_t *from_list = bencode_dictionary_add_list(output, "from-tags"); for (__auto_type l = srms.head; l; l = l->next) { struct media_subscription *ms = l->data; struct call_monologue *source_ml = ms->monologue; bencode_list_add_str_dup(from_list, &source_ml->tag); if (tag_medias) { bencode_item_t *tag_label = bencode_list_add_dictionary(tag_medias); bencode_dictionary_add_str(tag_label, "tag", &source_ml->tag); if (source_ml->label.len) bencode_dictionary_add_str(tag_label, "label", &source_ml->label); bencode_item_t *medias = bencode_dictionary_add_list(tag_label, "medias"); for (unsigned int i = 0; i < source_ml->medias->len; i++) { struct call_media *media = source_ml->medias->pdata[i]; if (!media) continue; bencode_item_t *med_ent = bencode_list_add_dictionary(medias); bencode_dictionary_add_integer(med_ent, "index", media->index); bencode_dictionary_add_str(med_ent, "type", &media->type); bencode_dictionary_add_str(med_ent, "label", &media->label); bencode_dictionary_add_string(med_ent, "mode", sdp_get_sendrecv(media)); if (media_labels) { bencode_item_t *label = bencode_dictionary_add_dictionary(media_labels, media->label.s); bencode_dictionary_add_str(label, "tag", &source_ml->tag); bencode_dictionary_add_integer(label, "index", media->index); bencode_dictionary_add_str(label, "type", &media->type); if (source_ml->label.len) bencode_dictionary_add_str(label, "label", &source_ml->label); bencode_dictionary_add_string(label, "mode", sdp_get_sendrecv(media)); } } } } bencode_dictionary_add_str_dup(output, "to-tag", &dest_ml->tag); dequeue_sdp_fragments(dest_ml); call_unlock_release_update(&call); return NULL; } const char *call_subscribe_answer_ng(ng_buffer *ngbuf, bencode_item_t *input, bencode_item_t *output) { g_auto(sdp_ng_flags) flags; g_auto(sdp_sessions_q) parsed = TYPED_GQUEUE_INIT; g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; g_autoptr(call_t) call = NULL; call_ng_process_flags(&flags, input, OP_REQ_ANSWER); if (!flags.call_id.s) return "No call-id in message"; call = call_get_opmode(&flags.call_id, OP_REQ_ANSWER); if (!call) return "Unknown call-ID"; if (trickle_ice_update(ngbuf, call, &flags, &streams)) return NULL; if (!flags.to_tag.s) return "No to-tag in message"; if (!flags.sdp.len) return "No SDP body in message"; // get destination monologue struct call_monologue *dest_ml = call_get_monologue(call, &flags.to_tag); if (!dest_ml) return "To-tag not found"; if (sdp_parse(&flags.sdp, &parsed, &flags)) return "Failed to parse SDP"; if (sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; int ret = monologue_subscribe_answer(dest_ml, &flags, &streams); if (ret) return "Failed to process subscription answer"; call_unlock_release_update(&call); return NULL; } const char *call_unsubscribe_ng(bencode_item_t *input, bencode_item_t *output) { g_auto(sdp_ng_flags) flags; g_autoptr(call_t) call = NULL; call_ng_process_flags(&flags, input, OP_REQ_ANSWER); if (!flags.call_id.s) return "No call-id in message"; call = call_get_opmode(&flags.call_id, OP_REQ_ANSWER); if (!call) return "Unknown call-ID"; if (!flags.to_tag.s) return "No to-tag in message"; // get destination monologue struct call_monologue *dest_ml = call_get_or_create_monologue(call, &flags.to_tag); if (!dest_ml) return "To-tag not found"; int ret = monologue_unsubscribe(dest_ml, &flags); if (ret) return "Failed to unsubscribe"; call_unlock_release_update(&call); return NULL; } void call_interfaces_free(void) { if (info_re) { pcre2_code_free(info_re); info_re = NULL; } if (streams_re) { pcre2_code_free(streams_re); streams_re= NULL; } } int call_interfaces_init(void) { int errcode; PCRE2_SIZE erroff; info_re = pcre2_compile((PCRE2_SPTR8) "^([^:,]+)(?::(.*?))?(?:$|,)", PCRE2_ZERO_TERMINATED, PCRE2_DOLLAR_ENDONLY | PCRE2_DOTALL, &errcode, &erroff, NULL); if (!info_re) return -1; streams_re = pcre2_compile((PCRE2_SPTR8) "^([\\d.]+):(\\d+)(?::(.*?))?(?:$|,)", PCRE2_ZERO_TERMINATED, PCRE2_DOLLAR_ENDONLY | PCRE2_DOTALL, &errcode, &erroff, NULL); if (!streams_re) return -1; return 0; } rtpengine-mr12.5.1.22/daemon/cdr.c000066400000000000000000000141041474347554000165500ustar00rootroot00000000000000#include "cdr.h" #include #include "rtplib.h" #include "call.h" #include "poller.h" #include "str.h" #define CDRBUFREMAINDER cdrbufend-cdrbufcur static const char * const __term_reason_texts[] = { [TIMEOUT] = "TIMEOUT", [REGULAR] = "REGULAR", [FORCED] = "FORCED", [SILENT_TIMEOUT] = "SILENT_TIMEOUT", [FINAL_TIMEOUT] = "FINAL_TIMEOUT", [OFFER_TIMEOUT] = "OFFER_TIMEOUT", }; static const char * const __tag_type_texts[] = { [FROM_TAG] = "FROM_TAG", [TO_TAG] = "TO_TAG", }; static const char *const __opmode_texts[] = { [OP_OFFER] = "offer", [OP_ANSWER] = "answer", }; const char * get_tag_type_text(enum tag_type t) { return get_enum_array_text(__tag_type_texts, t, "UNKNOWN"); } const char *get_opmode_text(enum call_opmode m) { return get_enum_array_text(__opmode_texts, m, "other"); } static const char * get_term_reason_text(enum termination_reason t) { return get_enum_array_text(__term_reason_texts, t, "UNKNOWN"); } void cdr_update_entry(call_t * c) { struct call_monologue *ml; struct timeval tim_result_duration; int cdrlinecnt = 0; g_autoptr(GString) cdr = g_string_new(""); struct call_media *md; const rtp_payload_type *rtp_pt; struct packet_stream *ps=0; if (!IS_OWN_CALL(c)) return; /* CDRs and statistics */ if (_log_facility_cdr) { g_string_append_printf(cdr, "ci=%s, ",c->callid.s); g_string_append_printf(cdr, "created_from=%s, ", c->created_from); g_string_append_printf(cdr, "last_signal=%llu, ", (unsigned long long)c->last_signal); g_string_append_printf(cdr, "tos=%u, ", (unsigned int)c->tos); } for (__auto_type l = c->monologues.head; l; l = l->next) { ml = l->data; if (!ml->terminated.tv_sec) { gettimeofday(&ml->terminated, NULL); ml->term_reason = UNKNOWN; } timeval_subtract(&tim_result_duration,&ml->terminated,&ml->started); if (_log_facility_cdr) { g_string_append_printf(cdr, "ml%i_start_time=%" TIME_T_INT_FMT ".%06" TIME_T_INT_FMT ", " "ml%i_end_time=%" TIME_T_INT_FMT ".%06" TIME_T_INT_FMT ", " "ml%i_duration=%" TIME_T_INT_FMT ".%06" TIME_T_INT_FMT ", " "ml%i_termination=%s, " "ml%i_local_tag=%s, " "ml%i_local_tag_type=%s, ", cdrlinecnt, ml->started.tv_sec, ml->started.tv_usec, cdrlinecnt, ml->terminated.tv_sec, ml->terminated.tv_usec, cdrlinecnt, tim_result_duration.tv_sec, tim_result_duration.tv_usec, cdrlinecnt, get_term_reason_text(ml->term_reason), cdrlinecnt, ml->tag.s, cdrlinecnt, get_tag_type_text(ml->tagtype)); g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type sub = media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; if (!g_queue_find(&mls, ms->monologue)) { g_string_append_printf(cdr, "ml%i_remote_tag=%s, ", cdrlinecnt, ms->monologue->tag.s); g_queue_push_tail(&mls, ms->monologue); } } } } for (unsigned int i = 0; i < ml->medias->len; i++) { md = ml->medias->pdata[i]; if (!md) continue; rtp_pt = __rtp_stats_codec(md); /* add PayloadType(codec) info in CDR logging */ if (_log_facility_cdr && rtp_pt) { g_string_append_printf(cdr, "payload_type=%u, ", rtp_pt->payload_type); } else if (_log_facility_cdr && !rtp_pt) { g_string_append_printf(cdr, "payload_type=unknown, "); } for (__auto_type o = md->streams.head; o; o = o->next) { ps = o->data; if (PS_ISSET(ps, FALLBACK_RTCP)) continue; char *addr = sockaddr_print_buf(&ps->endpoint.address); char *local_addr = sockaddr_print_buf(&ps->last_local_endpoint.address); if (_log_facility_cdr) { const char* protocol = (!PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP)) ? "rtcp" : "rtp"; if(!PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP)) { g_string_append_printf(cdr, "ml%i_midx%u_%s_endpoint_ip=%s, " "ml%i_midx%u_%s_endpoint_port=%u, " "ml%i_midx%u_%s_local_relay_ip=%s, " "ml%i_midx%u_%s_local_relay_port=%u, " "ml%i_midx%u_%s_relayed_packets="UINT64F", " "ml%i_midx%u_%s_relayed_bytes="UINT64F", " "ml%i_midx%u_%s_relayed_errors="UINT64F", " "ml%i_midx%u_%s_last_packet="UINT64F", " "ml%i_midx%u_%s_in_tos_tclass=%" PRIu8 ", ", cdrlinecnt, md->index, protocol, addr, cdrlinecnt, md->index, protocol, ps->endpoint.port, cdrlinecnt, md->index, protocol, local_addr, cdrlinecnt, md->index, protocol, ps->last_local_endpoint.port, cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->packets), cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->bytes), cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->errors), cdrlinecnt, md->index, protocol, packet_stream_last_packet(ps), cdrlinecnt, md->index, protocol, atomic_get_na(&ps->stats_in->tos)); } else { g_string_append_printf(cdr, "ml%i_midx%u_%s_endpoint_ip=%s, " "ml%i_midx%u_%s_endpoint_port=%u, " "ml%i_midx%u_%s_local_relay_ip=%s, " "ml%i_midx%u_%s_local_relay_port=%u, " "ml%i_midx%u_%s_relayed_packets="UINT64F", " "ml%i_midx%u_%s_relayed_bytes="UINT64F", " "ml%i_midx%u_%s_relayed_errors="UINT64F", " "ml%i_midx%u_%s_last_packet="UINT64F", " "ml%i_midx%u_%s_in_tos_tclass=%" PRIu8 ", ", cdrlinecnt, md->index, protocol, addr, cdrlinecnt, md->index, protocol, ps->endpoint.port, cdrlinecnt, md->index, protocol, local_addr, cdrlinecnt, md->index, protocol, ps->last_local_endpoint.port, cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->packets), cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->bytes), cdrlinecnt, md->index, protocol, atomic64_get_na(&ps->stats_in->errors), cdrlinecnt, md->index, protocol, packet_stream_last_packet(ps), cdrlinecnt, md->index, protocol, atomic_get_na(&ps->stats_in->tos)); } } } } if (_log_facility_cdr) ++cdrlinecnt; } /* log it */ cdrlog(cdr->str); } rtpengine-mr12.5.1.22/daemon/cli.c000066400000000000000000001661131474347554000165570ustar00rootroot00000000000000#include "cli.h" #include #include #include #include #include #include #include #include #include #include #include #include "poller.h" #include "helpers.h" #include "log.h" #include "log_funcs.h" #include "call.h" #include "socket.h" #include "redis.h" #include "control_ng.h" #include "media_socket.h" #include "cdr.h" #include "streambuf.h" #include "tcp_listener.h" #include "str.h" #include "statistics.h" #include "main.h" #include "media_socket.h" #include "rtplib.h" #include "ssrc.h" #include "codec.h" typedef void (*cli_handler_func)(str *, struct cli_writer *); typedef struct { const char *cmd; cli_handler_func handler; } cli_handler_t; static void cli_incoming_list(str *instr, struct cli_writer *cw); static void cli_incoming_set(str *instr, struct cli_writer *cw); static void cli_incoming_params(str *instr, struct cli_writer *cw); static void cli_incoming_terminate(str *instr, struct cli_writer *cw); static void cli_incoming_ksadd(str *instr, struct cli_writer *cw); static void cli_incoming_ksrm(str *instr, struct cli_writer *cw); static void cli_incoming_kslist(str *instr, struct cli_writer *cw); static void cli_incoming_active(str *instr, struct cli_writer *cw); static void cli_incoming_standby(str *instr, struct cli_writer *cw); static void cli_incoming_debug(str *instr, struct cli_writer *cw); static void cli_incoming_call(str *instr, struct cli_writer *cw); static void cli_incoming_set_maxopenfiles(str *instr, struct cli_writer *cw); static void cli_incoming_set_maxsessions(str *instr, struct cli_writer *cw); static void cli_incoming_set_maxcpu(str *instr, struct cli_writer *cw); static void cli_incoming_set_maxload(str *instr, struct cli_writer *cw); static void cli_incoming_set_maxbw(str *instr, struct cli_writer *cw); static void cli_incoming_set_timeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_silenttimeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_offertimeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_finaltimeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_loglevel(str *instr, struct cli_writer *cw); static void cli_incoming_set_redisallowederrors(str *instr, struct cli_writer *cw); static void cli_incoming_set_redisdisabletime(str *instr, struct cli_writer *cw); static void cli_incoming_set_redisdisable(str *instr, struct cli_writer *cw); static void cli_incoming_set_redisconnecttimeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_rediscmdtimeout(str *instr, struct cli_writer *cw); static void cli_incoming_set_controltos(str *instr, struct cli_writer *cw); static void cli_incoming_set_deletedelay(str *instr, struct cli_writer *cw); static void cli_incoming_params_start(str *instr, struct cli_writer *cw); static void cli_incoming_params_current(str *instr, struct cli_writer *cw); static void cli_incoming_params_diff(str *instr, struct cli_writer *cw); static void cli_incoming_params_revert(str *instr, struct cli_writer *cw); static void cli_incoming_list_numsessions(str *instr, struct cli_writer *cw); static void cli_incoming_list_maxsessions(str *instr, struct cli_writer *cw); static void cli_incoming_list_maxcpu(str *instr, struct cli_writer *cw); static void cli_incoming_list_maxload(str *instr, struct cli_writer *cw); static void cli_incoming_list_maxbw(str *instr, struct cli_writer *cw); static void cli_incoming_list_maxopenfiles(str *instr, struct cli_writer *cw); static void cli_incoming_list_totals(str *instr, struct cli_writer *cw); static void cli_incoming_list_counters(str *instr, struct cli_writer *cw); static void cli_incoming_list_sessions(str *instr, struct cli_writer *cw); static void cli_incoming_list_timeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_silenttimeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_offertimeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_finaltimeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_loglevel(str *instr, struct cli_writer *cw); static void cli_incoming_list_loglevels(str *instr, struct cli_writer *cw); static void cli_incoming_list_redisallowederrors(str *instr, struct cli_writer *cw); static void cli_incoming_list_redisdisabletime(str *instr, struct cli_writer *cw); static void cli_incoming_list_redisconnecttimeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_rediscmdtimeout(str *instr, struct cli_writer *cw); static void cli_incoming_list_controltos(str *instr, struct cli_writer *cw); static void cli_incoming_list_deletedelay(str *instr, struct cli_writer *cw); static void cli_incoming_list_interfaces(str *instr, struct cli_writer *cw); static void cli_incoming_list_jsonstats(str *instr, struct cli_writer *cw); static void cli_incoming_list_transcoders(str *instr, struct cli_writer *cw); static void cli_incoming_call_info(str *instr, struct cli_writer *cw); static void cli_incoming_call_terminate(str *instr, struct cli_writer *cw); static void cli_incoming_call_debug(str *instr, struct cli_writer *cw); static void cli_incoming_call_tag(str *instr, struct cli_writer *cw); static void cli_incoming_tag_info(str *instr, struct cli_writer *cw); #ifdef WITH_TRANSCODING static void cli_incoming_tag_delay(str *instr, struct cli_writer *cw); static void cli_incoming_tag_detdtmf(str *instr, struct cli_writer *cw); #endif static const cli_handler_t cli_top_handlers[] = { { "list", cli_incoming_list }, { "terminate", cli_incoming_terminate }, { "set", cli_incoming_set }, { "get", cli_incoming_list }, { "params", cli_incoming_params }, { "ksadd", cli_incoming_ksadd }, { "ksrm", cli_incoming_ksrm }, { "kslist", cli_incoming_kslist }, { "active", cli_incoming_active }, { "standby", cli_incoming_standby }, { "debug", cli_incoming_debug }, { "call", cli_incoming_call }, { NULL, }, }; static const cli_handler_t cli_set_handlers[] = { { "maxopenfiles", cli_incoming_set_maxopenfiles }, { "maxsessions", cli_incoming_set_maxsessions }, { "maxcpu", cli_incoming_set_maxcpu }, { "maxload", cli_incoming_set_maxload }, { "maxbw", cli_incoming_set_maxbw }, { "timeout", cli_incoming_set_timeout }, { "silenttimeout", cli_incoming_set_silenttimeout }, { "offertimeout", cli_incoming_set_offertimeout }, { "finaltimeout", cli_incoming_set_finaltimeout }, { "loglevel", cli_incoming_set_loglevel }, { "redisallowederrors", cli_incoming_set_redisallowederrors }, { "redisdisabletime", cli_incoming_set_redisdisabletime }, { "redisdisable", cli_incoming_set_redisdisable }, { "redisconnecttimeout", cli_incoming_set_redisconnecttimeout }, { "rediscmdtimeout", cli_incoming_set_rediscmdtimeout }, { "controltos", cli_incoming_set_controltos }, { "deletedelay", cli_incoming_set_deletedelay }, { NULL, }, }; static const cli_handler_t cli_list_handlers[] = { { "numsessions", cli_incoming_list_numsessions }, { "sessions", cli_incoming_list_sessions }, { "totals", cli_incoming_list_totals }, { "counters", cli_incoming_list_counters }, { "maxopenfiles", cli_incoming_list_maxopenfiles }, { "maxsessions", cli_incoming_list_maxsessions }, { "maxcpu", cli_incoming_list_maxcpu }, { "maxload", cli_incoming_list_maxload }, { "maxbw", cli_incoming_list_maxbw }, { "timeout", cli_incoming_list_timeout }, { "silenttimeout", cli_incoming_list_silenttimeout }, { "offertimeout", cli_incoming_list_offertimeout }, { "finaltimeout", cli_incoming_list_finaltimeout }, { "loglevels", cli_incoming_list_loglevels }, { "loglevel", cli_incoming_list_loglevel }, { "redisallowederrors", cli_incoming_list_redisallowederrors }, { "redisdisabletime", cli_incoming_list_redisdisabletime }, { "redisconnecttimeout", cli_incoming_list_redisconnecttimeout }, { "rediscmdtimeout", cli_incoming_list_rediscmdtimeout }, { "controltos", cli_incoming_list_controltos }, { "deletedelay", cli_incoming_list_deletedelay }, { "interfaces", cli_incoming_list_interfaces }, { "jsonstats", cli_incoming_list_jsonstats }, { "transcoders", cli_incoming_list_transcoders }, { NULL, }, }; static const cli_handler_t cli_call_handlers[] = { { "info", cli_incoming_call_info }, { "terminate", cli_incoming_call_terminate }, { "debug", cli_incoming_call_debug }, { "tag", cli_incoming_call_tag }, { NULL, }, }; static const cli_handler_t cli_tag_handlers[] = { { "info", cli_incoming_tag_info }, #ifdef WITH_TRANSCODING { "delay", cli_incoming_tag_delay }, { "detect-dtmf", cli_incoming_tag_detdtmf }, #endif { NULL, }, }; static const cli_handler_t cli_params_handlers[] = { { "start", cli_incoming_params_start }, { "current", cli_incoming_params_current }, { "diff", cli_incoming_params_diff }, { "revert", cli_incoming_params_revert }, { NULL, }, }; static void cli_list_call_info(struct cli_writer *cw, call_t *c); static void cli_list_tag_info(struct cli_writer *cw, struct call_monologue *ml); static void cli_handler_do(const cli_handler_t *handlers, str *instr, struct cli_writer *cw) { const cli_handler_t *h; if (!str_cmp(instr, "help")) { cw->cw_printf(cw, "Available sub-commands at this level:\n"); for (h = handlers; h->cmd; h++) cw->cw_printf(cw, "\t%s\n", h->cmd); return; } for (h = handlers; h->cmd; h++) { if (str_shift_cmp(instr, h->cmd)) continue; h->handler(instr, cw); return; } cw->cw_printf(cw, "%s:" STR_FORMAT "\n", "Unknown or incomplete command:", STR_FMT(instr)); } static void destroy_own_foreign_calls(bool foreign_call, unsigned int uint_keyspace_db) { struct call_monologue *ml = NULL; call_q calls = TYPED_GQUEUE_INIT; ITERATE_CALL_LIST_START(CALL_ITERATOR_MAIN, c); // match foreign_call flag if (foreign_call && !IS_FOREIGN_CALL(c)) goto next; if (!foreign_call && IS_FOREIGN_CALL(c)) goto next; // match uint_keyspace_db, if some given if ((uint_keyspace_db != UNDEFINED) && !(uint_keyspace_db == c->redis_hosted_db)) goto next; // increase ref counter obj_get(c); // save call reference t_queue_push_tail(&calls, c); next:; ITERATE_CALL_LIST_NEXT_END(c); // destroy calls call_t *c = NULL; while ((c = t_queue_pop_head(&calls))) { if (!c->ml_deleted) { for (__auto_type i = c->monologues.head; i; i = i->next) { ml = i->data; gettimeofday(&(ml->terminated), NULL); ml->term_reason = FORCED; } } call_destroy(c); // decrease ref counter obj_put(c); } } static void destroy_all_foreign_calls(void) { destroy_own_foreign_calls(true, UNDEFINED); } static void destroy_all_own_calls(void) { destroy_own_foreign_calls(false, UNDEFINED); } static void destroy_keyspace_foreign_calls(unsigned int uint_keyspace_db) { destroy_own_foreign_calls(true, uint_keyspace_db); } static void cli_endpoints_print(struct cli_writer *cw, const GQueue *q, const char *name) { for (GList *l = q->head; l; l = l->next) { endpoint_t *e = l->data; cw->cw_printf(cw, "%s = %s\n", name, endpoint_print_buf(e)); } } static void cli_incoming_params_start(str *instr, struct cli_writer *cw) { int count = 0; struct intf_config *ifa; for (unsigned int i = 0; i < num_log_levels; i++) cw->cw_printf(cw, "log-level-%s = %d\n", log_level_names[i], g_atomic_int_get(&initial_rtpe_config.common.log_levels[i])); cw->cw_printf(cw, "table = %d\nmax-sessions = %d\ntimeout = %d\nsilent-timeout = %d\n" "final-timeout = %d\noffer-timeout = %d\n" "delete-delay = %d\nredis-expires = %d\ntos = %d\ncontrol-tos = %d\ngraphite-interval = %d\nredis-num-threads = %d\n" "homer-protocol = %d\nhomer-id = %d\nno-fallback = %d\nport-min = %d\nport-max = %d\nredis = %s:%d/%d\n" "redis-write = %s:%d/%d\nno-redis-required = %d\nnum-threads = %d\nxmlrpc-format = %d\nlog_format = %d\n" "redis_allowed_errors = %d\nredis_disable_time = %d\nredis_cmd_timeout = %d\nredis_connect_timeout = %d\n" "max-cpu = %.1f\n" "max-load = %.2f\n" "max-bandwidth = %" PRIu64 "\n" "max-recv-iters = %d\n", initial_rtpe_config.kernel_table, initial_rtpe_config.max_sessions, initial_rtpe_config.timeout, initial_rtpe_config.silent_timeout, initial_rtpe_config.final_timeout, initial_rtpe_config.offer_timeout, initial_rtpe_config.delete_delay, initial_rtpe_config.redis_expires_secs, initial_rtpe_config.default_tos, initial_rtpe_config.control_tos, initial_rtpe_config.graphite_interval, initial_rtpe_config.redis_num_threads, initial_rtpe_config.homer_protocol, initial_rtpe_config.homer_id, initial_rtpe_config.no_fallback, initial_rtpe_config.port_min, initial_rtpe_config.port_max, sockaddr_print_buf(&initial_rtpe_config.redis_ep.address), initial_rtpe_config.redis_ep.port, initial_rtpe_config.redis_db, sockaddr_print_buf(&initial_rtpe_config.redis_write_ep.address), initial_rtpe_config.redis_write_ep.port, initial_rtpe_config.redis_write_db, initial_rtpe_config.no_redis_required, initial_rtpe_config.num_threads, initial_rtpe_config.fmt, initial_rtpe_config.log_format, initial_rtpe_config.redis_allowed_errors, initial_rtpe_config.redis_disable_time, initial_rtpe_config.redis_cmd_timeout, initial_rtpe_config.redis_connect_timeout, (double) initial_rtpe_config.cpu_limit / 100, (double) initial_rtpe_config.load_limit / 100, initial_rtpe_config.bw_limit, initial_rtpe_config.max_recv_iters); for (__auto_type s = initial_rtpe_config.interfaces.head; s ; s = s->next) { ifa = s->data; cw->cw_printf(cw,"interface[%d] = %s\\%s \n", count, ifa->name.s, sockaddr_print_buf(&(ifa->local_address.addr))); ++count; } count=0; for (__auto_type s = initial_rtpe_config.redis_subscribed_keyspaces.head; s ; s = s->next) { cw->cw_printf(cw,"keyspace[%d] = %d \n", count, GPOINTER_TO_UINT(s->data)); ++count; } cw->cw_printf(cw, "b2b_url = %s\nredis-auth = %s\nredis-write-auth = %s\nrecording-dir = %s\nrecording-method = %s\n" "recording-format = %s\niptables-chain = %s\n", initial_rtpe_config.b2b_url, initial_rtpe_config.redis_auth, initial_rtpe_config.redis_write_auth, initial_rtpe_config.spooldir, initial_rtpe_config.rec_method, initial_rtpe_config.rec_format, initial_rtpe_config.iptables_chain); cli_endpoints_print(cw, &initial_rtpe_config.tcp_listen_ep, "listen-tcp"); cli_endpoints_print(cw, &initial_rtpe_config.udp_listen_ep, "listen-udp"); cli_endpoints_print(cw, &initial_rtpe_config.ng_listen_ep, "listen-ng"); cli_endpoints_print(cw, &initial_rtpe_config.cli_listen_ep, "listen-cli"); cli_endpoints_print(cw, &initial_rtpe_config.ng_tcp_listen_ep, "listen-tcp-ng"); } static void cli_incoming_params_current(str *instr, struct cli_writer *cw) { int count = 0; struct intf_config *ifa; for (unsigned int i = 0; i < num_log_levels; i++) cw->cw_printf(cw, "log-level-%s = %d\n", log_level_names[i], g_atomic_int_get(&rtpe_config.common.log_levels[i])); cw->cw_printf(cw, "table = %d\nmax-sessions = %d\ntimeout = %d\nsilent-timeout = %d\n" "final-timeout = %d\noffer-timeout = %d\n" "delete-delay = %d\nredis-expires = %d\ntos = %d\ncontrol-tos = %d\ngraphite-interval = %d\nredis-num-threads = %d\n" "homer-protocol = %d\nhomer-id = %d\nno-fallback = %d\nport-min = %d\nport-max = %d\nredis-db = %d\n" "redis-write-db = %d\nno-redis-required = %d\nnum-threads = %d\nxmlrpc-format = %d\nlog_format = %d\n" "redis_allowed_errors = %d\nredis_disable_time = %d\nredis_cmd_timeout = %d\nredis_connect_timeout = %d\n" "max-cpu = %.1f\n" "max-load = %.2f\n" "max-bw = %" PRIu64 "\n" "max-recv-iters = %d\n", rtpe_config.kernel_table, rtpe_config.max_sessions, rtpe_config.timeout, rtpe_config.silent_timeout, rtpe_config.final_timeout, rtpe_config.offer_timeout, rtpe_config.delete_delay, rtpe_config.redis_expires_secs, rtpe_config.default_tos, rtpe_config.control_tos, rtpe_config.graphite_interval, rtpe_config.redis_num_threads, rtpe_config.homer_protocol, rtpe_config.homer_id, rtpe_config.no_fallback, rtpe_config.port_min, rtpe_config.port_max, rtpe_config.redis_db, rtpe_config.redis_write_db, rtpe_config.no_redis_required, rtpe_config.num_threads, rtpe_config.fmt, rtpe_config.log_format, rtpe_config.redis_allowed_errors, rtpe_config.redis_disable_time, rtpe_config.redis_cmd_timeout, rtpe_config.redis_connect_timeout, (double) rtpe_config.cpu_limit / 100, (double) rtpe_config.load_limit / 100, rtpe_config.bw_limit, rtpe_config.max_recv_iters); for (__auto_type c = rtpe_config.interfaces.head; c ; c = c->next) { ifa = c->data; cw->cw_printf(cw,"interface[%d] = %s\\%s \n", count, ifa->name.s, sockaddr_print_buf(&(ifa->local_address.addr))); ++count; } count=0; for (__auto_type c = rtpe_config.redis_subscribed_keyspaces.head; c ; c = c->next) { cw->cw_printf(cw,"keyspace[%d] = %d \n", count, GPOINTER_TO_UINT(c->data)); ++count; } cw->cw_printf(cw, "b2b_url = %s\nredis-auth = %s\nredis-write-auth = %s\nrecording-dir = %s\nrecording-method = %s\n" "recording-format = %s\niptables-chain = %s\n", rtpe_config.b2b_url, rtpe_config.redis_auth, rtpe_config.redis_write_auth, rtpe_config.spooldir, rtpe_config.rec_method, rtpe_config.rec_format, rtpe_config.iptables_chain); cli_endpoints_print(cw, &rtpe_config.tcp_listen_ep, "listen-tcp"); cli_endpoints_print(cw, &rtpe_config.udp_listen_ep, "listen-udp"); cli_endpoints_print(cw, &rtpe_config.ng_listen_ep, "listen-ng"); cli_endpoints_print(cw, &rtpe_config.cli_listen_ep, "listen-cli"); cli_endpoints_print(cw, &rtpe_config.ng_tcp_listen_ep, "listen-tcp-ng"); } #define int_diff_print(struct_member, option_string) \ if (initial_rtpe_config.struct_member != atomic_get_na(&rtpe_config.struct_member)) { \ if (strcmp(option, "diff") == 0) \ cw->cw_printf(cw, "%s: %lld => %lld\n", option_string, \ (long long)initial_rtpe_config.struct_member, \ (long long)atomic_get_na(&rtpe_config.struct_member)); \ else if (strcmp(option, "revert") == 0) \ rtpe_config.struct_member = initial_rtpe_config.struct_member; \ } static void cli_incoming_diff_or_revert(struct cli_writer *cw, char* option) { #define ll(system, descr) \ int_diff_print(common.log_levels[log_level_index_ ## system], "log-level-" #system); #include "loglevels.h" #undef ll int_diff_print(max_sessions, "max-sessions"); int_diff_print(cpu_limit, "max-cpu"); int_diff_print(load_limit, "max-load"); int_diff_print(bw_limit, "max-bw"); int_diff_print(timeout, "timeout"); int_diff_print(silent_timeout, "silent-timeout"); int_diff_print(final_timeout, "final-timeout"); int_diff_print(control_tos, "control-tos"); int_diff_print(redis_allowed_errors, "redis_allowed_errors"); int_diff_print(redis_disable_time, "redis_disable_time"); int_diff_print(redis_cmd_timeout, "redis_cmd_timeout"); int_diff_print(redis_connect_timeout, "redis_connect_timeout-db"); } static void cli_incoming_params_diff(str *instr, struct cli_writer *cw) { cli_incoming_diff_or_revert(cw, "diff"); } static void cli_incoming_params_revert(str *instr, struct cli_writer *cw) { cli_incoming_diff_or_revert(cw, "revert"); } static void cli_incoming_list_counters(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "\nCurrent per-second counters:\n\n"); cw->cw_printf(cw, " Packets per second (userspace) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.packets_user)); cw->cw_printf(cw, " Bytes per second (userspace) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.bytes_user)); cw->cw_printf(cw, " Errors per second (userspace) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.errors_user)); cw->cw_printf(cw, " Packets per second (kernel) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.packets_kernel)); cw->cw_printf(cw, " Bytes per second (kernel) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.bytes_kernel)); cw->cw_printf(cw, " Errors per second (kernel) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.errors_kernel)); cw->cw_printf(cw, " Packets per second (total) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.packets_user) + atomic64_get_na(&rtpe_stats_rate.packets_kernel)); cw->cw_printf(cw, " Bytes per second (total) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.bytes_user) + atomic64_get_na(&rtpe_stats_rate.bytes_kernel)); cw->cw_printf(cw, " Errors per second (total) :%" PRIu64 "\n", atomic64_get_na(&rtpe_stats_rate.errors_user) + atomic64_get_na(&rtpe_stats_rate.errors_kernel)); } static void cli_incoming_list_totals(str *instr, struct cli_writer *cw) { g_autoptr(stats_metric_q) metrics = statistics_gather_metrics(NULL); for (__auto_type l = metrics->head; l; l = l->next) { stats_metric *m = l->data; if (!m->descr) continue; if (m->value_long) { if (!strcmp(m->descr, "")) cw->cw_printf(cw, "%s\n", m->value_long); else cw->cw_printf(cw, " %-48s:%s\n", m->descr, m->value_long); } else cw->cw_printf(cw, "%s\n", m->descr); } } static void cli_incoming_list_numsessions(str *instr, struct cli_writer *cw) { rwlock_lock_r(&rtpe_callhash_lock); cw->cw_printf(cw, "Current sessions own: "UINT64F"\n", t_hash_table_size(rtpe_callhash) - atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); cw->cw_printf(cw, "Current sessions foreign: "UINT64F"\n", atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); cw->cw_printf(cw, "Current sessions total: %i\n", t_hash_table_size(rtpe_callhash)); rwlock_unlock_r(&rtpe_callhash_lock); cw->cw_printf(cw, "Current transcoded media: "UINT64F"\n", atomic64_get_na(&rtpe_stats_gauge.transcoded_media)); cw->cw_printf(cw, "Current sessions ipv4 only media: " UINT64F "\n", atomic64_get_na(&rtpe_stats_gauge.ipv4_sessions)); cw->cw_printf(cw, "Current sessions ipv6 only media: " UINT64F "\n", atomic64_get_na(&rtpe_stats_gauge.ipv6_sessions)); cw->cw_printf(cw, "Current sessions ip mixed media: " UINT64F "\n", atomic64_get_na(&rtpe_stats_gauge.mixed_sessions)); } static void cli_incoming_list_maxsessions(str *instr, struct cli_writer *cw) { /* don't lock anything while reading the value */ cw->cw_printf(cw, "Maximum sessions configured on rtpengine: %d\n", rtpe_config.max_sessions); return ; } static void cli_incoming_list_maxcpu(str *instr, struct cli_writer *cw) { /* don't lock anything while reading the value */ cw->cw_printf(cw, "Maximum CPU usage configured on rtpengine: %.1f\n", (double) rtpe_config.cpu_limit / 100.0); return ; } static void cli_incoming_list_maxload(str *instr, struct cli_writer *cw) { /* don't lock anything while reading the value */ cw->cw_printf(cw, "Maximum load average configured on rtpengine: %.2f\n", (double) rtpe_config.load_limit / 100.0); return ; } static void cli_incoming_list_maxbw(str *instr, struct cli_writer *cw) { /* don't lock anything while reading the value */ cw->cw_printf(cw, "Maximum bandwidth configured on rtpengine: %" PRIu64 "\n", rtpe_config.bw_limit); return ; } static void cli_incoming_list_maxopenfiles(str *instr, struct cli_writer *cw) { struct rlimit rlim; pid_t pid = getpid(); if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) { cw->cw_printf(cw, "Fail getting rtpengine configured limits; cat /proc/%u/limits\n", pid); return ; } if (rlim.rlim_cur == RLIM_INFINITY) { cw->cw_printf(cw, "Maximum open-files configured on rtpengine: infinite; cat /proc/%u/limits\n", pid); } else { cw->cw_printf(cw, "Maximum open-files configured on rtpengine: %lld; cat /proc/%u/limits\n", (long long) rlim.rlim_cur, pid); } return ; } static void cli_incoming_list_timeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "TIMEOUT=%u\n", rtpe_config.timeout); } static void cli_incoming_list_silenttimeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "SILENT_TIMEOUT=%u\n", rtpe_config.silent_timeout); } static void cli_incoming_list_finaltimeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "FINAL_TIMEOUT=%u\n", rtpe_config.final_timeout); } static void cli_incoming_list_offertimeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "OFFER_TIMEOUT=%u\n", rtpe_config.offer_timeout); } static void cli_incoming_list_callid(str *instr, struct cli_writer *cw) { call_t *c = 0; if (instr->len == 0) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } c = call_get(instr); if (!c) { cw->cw_printf(cw, "\nCall ID not found (" STR_FORMAT ").\n\n", STR_FMT(instr)); return; } cli_list_call_info(cw, c); rwlock_unlock_w(&c->master_lock); // because of call_get(..) obj_put(c); } static void cli_list_call_info(struct cli_writer *cw, call_t *c) { struct call_monologue *ml; cw->cw_printf(cw, "\n" "callid: %s\n" "deletionmark: %s\n" "created: %i\n" "proxy: %s\n" "tos: %u\n" "last_signal: %llu\n" "redis_keyspace: %i\n" "last redis update: %llu\n" "foreign: %s\n" "recording: %s\n" "\n", c->callid.s, c->ml_deleted ? "yes" : "no", (int) c->created.tv_sec, c->created_from, (unsigned int) c->tos, (unsigned long long) c->last_signal, c->redis_hosted_db, (unsigned long long) atomic64_get_na(&c->last_redis_update), IS_FOREIGN_CALL(c) ? "yes" : "no", c->recording ? "yes" : "no"); for (__auto_type l = c->monologues.head; l; l = l->next) { ml = l->data; cli_list_tag_info(cw, ml); } cw->cw_printf(cw, "\n"); } static void cli_list_tag_info(struct cli_writer *cw, struct call_monologue *ml) { struct call_media *md; struct packet_stream *ps; struct timeval tim_result_duration; struct timeval now; char *local_addr; if (!ml->terminated.tv_sec) gettimeofday(&now, NULL); else now = ml->terminated; timeval_subtract(&tim_result_duration, &now, &ml->started); cw->cw_printf(cw, "--- Tag '" STR_FORMAT "', type: %s, label '" STR_FORMAT "', " "branch '" STR_FORMAT "', " "callduration " "%" TIME_T_INT_FMT ".%06" TIME_T_INT_FMT "\n", STR_FMT(&ml->tag), get_tag_type_text(ml->tagtype), STR_FMT(ml->label.s ? &ml->label : &STR_EMPTY), STR_FMT(&ml->viabranch), tim_result_duration.tv_sec, tim_result_duration.tv_usec); for (int i = 0; i < ml->medias->len; i++) { struct call_media * media = ml->medias->pdata[i]; if (!media) continue; for (__auto_type sub = media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct call_media * sub_media = ms->media; if (!sub_media) continue; cw->cw_printf(cw, "--- subscribed to media with monologue tag '" STR_FORMAT_M "' (index: %d)\n", STR_FMT_M(&ms->monologue->tag), sub_media->index); } for (__auto_type sub = media->media_subscribers.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct call_media * sub_media = ms->media; if (!sub_media) continue; cw->cw_printf(cw, "--- subscription of media with monologue tag '" STR_FORMAT_M "' (index: %d)\n", STR_FMT_M(&ms->monologue->tag), sub_media->index); } } for (unsigned int k = 0; k < ml->medias->len; k++) { md = ml->medias->pdata[k]; if (!md) continue; const rtp_payload_type *rtp_pt = __rtp_stats_codec(md); cw->cw_printf(cw, "------ Media #%u (" STR_FORMAT " over %s) using ", md->index, STR_FMT(&md->type), md->protocol ? md->protocol->name : "(unknown)"); if (!rtp_pt) cw->cw_printf(cw, "unknown codec\n"); else cw->cw_printf(cw, STR_FORMAT "\n", STR_FMT(&rtp_pt->encoding_with_params)); for (__auto_type o = md->streams.head; o; o = o->next) { ps = o->data; if (PS_ISSET(ps, FALLBACK_RTCP)) continue; endpoint_t *local_endpoint = packet_stream_local_addr(ps); local_addr = sockaddr_print_buf(&local_endpoint->address); cw->cw_printf(cw, "-------- Port %15s:%-5u <> %15s:%-5u%s, SSRC %" PRIx32 ", " "" UINT64F " p, " UINT64F " b, " UINT64F " e, " UINT64F " uts " UINT64F " kts", local_addr, (unsigned int) local_endpoint->port, sockaddr_print_buf(&ps->endpoint.address), ps->endpoint.port, (!PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP)) ? " (RTCP)" : "", ps->ssrc_in[0] ? ps->ssrc_in[0]->parent->h.ssrc : 0, atomic64_get_na(&ps->stats_in->packets), atomic64_get_na(&ps->stats_in->bytes), atomic64_get_na(&ps->stats_in->errors), atomic64_get_na(&ps->last_packet), atomic64_get_na(&ps->stats_in->last_packet)); cw->cw_printf(cw, "\n"); } } } static void cli_incoming_list_sessions(str *instr, struct cli_writer *cw) { bool found = false; enum { all, own, foreign, recording } which = -1; static const char *keywords[] = { [all] = "all", [own] = "own", [foreign] = "foreign", [recording] = "recording", }; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } for (unsigned int i = 0; i < G_N_ELEMENTS(keywords); i++) { if (str_cmp(instr, keywords[i]) == 0) { which = i; break; } } if (which == -1) { // list session for callid cli_incoming_list_callid(instr, cw); return; } ITERATE_CALL_LIST_START(CALL_ITERATOR_MAIN, call); switch (which) { case all: break; case foreign: if (!IS_FOREIGN_CALL(call)) goto next; break; case own: if (IS_FOREIGN_CALL(call)) goto next; break; case recording: if (!call->recording) goto next; break; } found = true; cw->cw_printf(cw, "ID: %60s | del:%s | creat:%12li | prx:%s | redis:%2i | frgn:%s | rec:%s\n", call->callid.s, call->ml_deleted ? "y" : "n", (long) call->created.tv_sec, call->created_from, call->redis_hosted_db, IS_FOREIGN_CALL(call) ? "y" : "n", call->recording ? "y" : "n"); next:; ITERATE_CALL_LIST_NEXT_END(call); if (!found) { if (which == all) cw->cw_printf(cw, "No sessions on this media relay.\n"); else cw->cw_printf(cw, "No %s sessions on this media relay.\n", keywords[which]); } return; } static void cli_incoming_set_maxopenfiles(str *instr, struct cli_writer *cw) { unsigned long open_files_num; pid_t pid; char *endptr; // limit the minimum number of open files to avoid rtpengine freeze for low open_files_num values unsigned long min_open_files_num = (1 << 16); if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; open_files_num = strtoul(instr->s, &endptr, 10); if ((errno == ERANGE && (open_files_num == ULONG_MAX)) || (errno != 0 && open_files_num == 0)) { cw->cw_printf(cw, "Fail setting open_files to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting open_files to %s; no digists found\n", instr->s); return; } else if (open_files_num < min_open_files_num) { cw->cw_printf(cw, "Fail setting open_files to %lu; can't set it under %lu\n", open_files_num, min_open_files_num); return; } else if (rlim(RLIMIT_NOFILE, open_files_num) == -1){ cw->cw_printf(cw, "Fail setting open_files to %lu; errno = %d\n", open_files_num, errno); return; } else { pid = getpid(); cw->cw_printf(cw, "Success setting open_files to %lu; cat /proc/%u/limits\n", open_files_num, pid); } } static void cli_incoming_set_maxsessions(str *instr, struct cli_writer *cw) { long maxsessions_num; int disabled = -1; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; maxsessions_num = strtol(instr->s, &endptr, 10); if ((errno == ERANGE && (maxsessions_num == LONG_MAX || maxsessions_num == LONG_MIN)) || (errno != 0 && maxsessions_num == 0)) { cw->cw_printf(cw, "Fail setting maxsessions to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting maxsessions to %s; no digists found\n", instr->s); return; } else if (maxsessions_num < disabled) { cw->cw_printf(cw, "Fail setting maxsessions to %ld; either positive or -1 values allowed\n", maxsessions_num); } else if (maxsessions_num == disabled) { atomic_set_na(&rtpe_config.max_sessions, maxsessions_num); cw->cw_printf(cw, "Success setting maxsessions to %ld; disable feature\n", maxsessions_num); } else { atomic_set_na(&rtpe_config.max_sessions, maxsessions_num); cw->cw_printf(cw, "Success setting maxsessions to %ld\n", maxsessions_num); } return; } // XXX lots of code duplication, unify those set functions static void cli_incoming_set_maxcpu(str *instr, struct cli_writer *cw) { char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; double num = strtod(instr->s, &endptr); if ((errno == ERANGE && (num == HUGE_VAL || num == -HUGE_VAL)) || (errno != 0 && num == 0) || isnan(num) || !isfinite(num)) { cw->cw_printf(cw, "Fail setting maxcpu to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting maxcpu to %s; no digists found\n", instr->s); return; } else { atomic_set_na(&rtpe_config.cpu_limit, (int) (num * 100)); cw->cw_printf(cw, "Success setting maxcpu to %.1f\n", num); } return; } static void cli_incoming_set_maxload(str *instr, struct cli_writer *cw) { char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; double num = strtod(instr->s, &endptr); if ((errno == ERANGE && (num == HUGE_VAL || num == -HUGE_VAL)) || (errno != 0 && num == 0) || isnan(num) || !isfinite(num)) { cw->cw_printf(cw, "Fail setting maxload to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting maxload to %s; no digists found\n", instr->s); return; } else { atomic_set_na(&rtpe_config.load_limit, (int) (num * 100)); cw->cw_printf(cw, "Success setting maxload to %.2f\n", num); } return; } static void cli_incoming_set_maxbw(str *instr, struct cli_writer *cw) { char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; uint64_t num = strtoull(instr->s, &endptr, 10); if ((errno == ERANGE && (num == ULLONG_MAX)) || (errno != 0 && num == 0) ) { cw->cw_printf(cw, "Fail setting maxbw to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting maxbw to %s; no digists found\n", instr->s); return; } else { atomic_set_na(&rtpe_config.bw_limit, num); cw->cw_printf(cw, "Success setting maxbw to %" PRIu64 "\n", num); } return; } static void cli_incoming_set_gentimeout(str *instr, struct cli_writer *cw, int *conf_timeout) { long timeout_num; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; timeout_num = strtol(instr->s, &endptr, 10); if ((errno == ERANGE && (timeout_num == ULONG_MAX)) || (errno != 0 && timeout_num == 0) || timeout_num < 0 || timeout_num >= INT_MAX) { cw->cw_printf(cw, "Fail setting timeout to %s; errno=%d\n", instr->s, errno); return; } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail setting timeout to %s; no digists found\n", instr->s); return; } else { atomic_set_na(conf_timeout, timeout_num); cw->cw_printf(cw, "Success setting timeout to %lu\n", timeout_num); } } static void cli_incoming_set_timeout(str *instr, struct cli_writer *cw) { cli_incoming_set_gentimeout(instr, cw, &rtpe_config.timeout); } static void cli_incoming_set_silenttimeout(str *instr, struct cli_writer *cw) { cli_incoming_set_gentimeout(instr, cw, &rtpe_config.silent_timeout); } static void cli_incoming_set_finaltimeout(str *instr, struct cli_writer *cw) { cli_incoming_set_gentimeout(instr, cw, &rtpe_config.final_timeout); } static void cli_incoming_set_offertimeout(str *instr, struct cli_writer *cw) { cli_incoming_set_gentimeout(instr, cw, &rtpe_config.offer_timeout); } static void cli_incoming_list(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } cli_handler_do(cli_list_handlers, instr, cw); } static void cli_incoming_set(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } cli_handler_do(cli_set_handlers, instr, cw); } static void cli_incoming_params(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } cli_handler_do(cli_params_handlers, instr, cw); } static void cli_incoming_terminate(str *instr, struct cli_writer *cw) { call_t * c=0; struct call_monologue *ml; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } // --- terminate all calls if (!str_memcmp(instr,"all")) { // destroy own calls destroy_all_own_calls(); // destroy foreign calls destroy_all_foreign_calls(); // update cli ilog(LOG_INFO,"All calls terminated by operator."); cw->cw_printf(cw, "%s\n", "All calls terminated by operator."); return; // --- terminate own calls } else if (!str_memcmp(instr,"own")) { // destroy own calls destroy_all_own_calls(); // update cli ilog(LOG_INFO,"All own calls terminated by operator."); cw->cw_printf(cw, "%s\n", "All own calls terminated by operator."); return; // --- terminate foreign calls } else if (!str_memcmp(instr,"foreign")) { // destroy foreign calls destroy_all_foreign_calls(); // update cli ilog(LOG_INFO,"All foreign calls terminated by operator."); cw->cw_printf(cw, "%s\n", "All foreign calls terminated by operator."); return; } // --- terminate a dedicated call id c = call_get(instr); if (!c) { cw->cw_printf(cw, "\nCall Id not found (%s).\n\n",instr->s); return; } if (!c->ml_deleted) { for (__auto_type i = c->monologues.head; i; i = i->next) { ml = i->data; gettimeofday(&(ml->terminated), NULL); ml->term_reason = FORCED; } } cw->cw_printf(cw, "\nCall Id (%s) successfully terminated by operator.\n\n",instr->s); ilog(LOG_WARN, "Call Id (%s) successfully terminated by operator.",instr->s); rwlock_unlock_w(&c->master_lock); call_destroy(c); obj_put(c); } static void cli_incoming_ksadd(str *instr, struct cli_writer *cw) { unsigned long uint_keyspace_db; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; uint_keyspace_db = strtoul(instr->s, &endptr, 10); if ((errno == ERANGE && (uint_keyspace_db == ULONG_MAX)) || (errno != 0 && uint_keyspace_db == 0)) { cw->cw_printf(cw, "Fail adding keyspace %s to redis notifications; errono=%d\n", instr->s, errno); } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail adding keyspace %s to redis notifications; no digists found\n", instr->s); } else { rwlock_lock_w(&rtpe_config.keyspaces_lock); if (!g_queue_find(&rtpe_config.redis_subscribed_keyspaces, GUINT_TO_POINTER(uint_keyspace_db))) { g_queue_push_tail(&rtpe_config.redis_subscribed_keyspaces, GUINT_TO_POINTER(uint_keyspace_db)); redis_notify_subscribe_action(rtpe_redis_notify, SUBSCRIBE_KEYSPACE, uint_keyspace_db); cw->cw_printf(cw, "Success adding keyspace %lu to redis notifications.\n", uint_keyspace_db); } else { cw->cw_printf(cw, "Keyspace %lu is already among redis notifications.\n", uint_keyspace_db); } rwlock_unlock_w(&rtpe_config.keyspaces_lock); } } static void cli_incoming_ksrm(str *instr, struct cli_writer *cw) { GList *l; unsigned long uint_keyspace_db; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; uint_keyspace_db = strtoul(instr->s, &endptr, 10); rwlock_lock_w(&rtpe_config.keyspaces_lock); if ((errno == ERANGE && (uint_keyspace_db == ULONG_MAX)) || (errno != 0 && uint_keyspace_db == 0)) { cw->cw_printf(cw, "Fail removing keyspace %s to redis notifications; errono=%d\n", instr->s, errno); } else if (endptr == instr->s) { cw->cw_printf(cw, "Fail removing keyspace %s to redis notifications; no digists found\n", instr->s); } else if ((l = g_queue_find(&rtpe_config.redis_subscribed_keyspaces, GUINT_TO_POINTER(uint_keyspace_db)))) { // remove this keyspace redis_notify_subscribe_action(rtpe_redis_notify, UNSUBSCRIBE_KEYSPACE, uint_keyspace_db); g_queue_remove(&rtpe_config.redis_subscribed_keyspaces, l->data); cw->cw_printf(cw, "Successfully unsubscribed from keyspace %lu.\n", uint_keyspace_db); // destroy foreign calls for this keyspace destroy_keyspace_foreign_calls(uint_keyspace_db); // update cli cw->cw_printf(cw, "Successfully removed all foreign calls for keyspace %lu.\n", uint_keyspace_db); } else { cw->cw_printf(cw, "Keyspace %lu is not among redis notifications.\n", uint_keyspace_db); } rwlock_unlock_w(&rtpe_config.keyspaces_lock); } static void cli_incoming_kslist(str *instr, struct cli_writer *cw) { GList *l; cw->cw_printf(cw, "\nSubscribed-on keyspaces:\n"); rwlock_lock_r(&rtpe_config.keyspaces_lock); for (l = rtpe_config.redis_subscribed_keyspaces.head; l; l = l->next) { cw->cw_printf(cw, "%u ", GPOINTER_TO_UINT(l->data)); } rwlock_unlock_r(&rtpe_config.keyspaces_lock); cw->cw_printf(cw, "\n"); } static void cli_incoming_active_standby(struct cli_writer *cw, bool foreign) { ITERATE_CALL_LIST_START(CALL_ITERATOR_MAIN, c); rwlock_lock_w(&c->master_lock); call_make_own_foreign(c, foreign); c->last_signal = MAX(c->last_signal, rtpe_now.tv_sec); if (!foreign) { CALL_SET(c, FOREIGN_MEDIA); // ignore timeout until we have media c->last_signal++; // we are authoritative now } rwlock_unlock_w(&c->master_lock); redis_update_onekey(c, rtpe_redis_write); ITERATE_CALL_LIST_NEXT_END(c); cw->cw_printf(cw, "Ok, all calls set to '%s'\n", foreign ? "foreign (standby)" : "owned (active)"); } static void cli_incoming_active(str *instr, struct cli_writer *cw) { cli_incoming_active_standby(cw, false); } static void cli_incoming_standby(str *instr, struct cli_writer *cw) { cli_incoming_active_standby(cw, true); } static void cli_incoming_debug(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "No call ID specified\n"); return; } str callid; if (!str_token_sep(&callid, instr, ' ')) callid = STR_NULL; if (!callid.len) { cw->cw_printf(cw, "No call ID specified\n"); return; } int flag = 1; if (instr->len) { if (!str_cmp(instr, "on") || !str_cmp(instr, "enable")) ; else if (!str_cmp(instr, "off") || !str_cmp(instr, "disable")) flag = 0; else { cw->cw_printf(cw, "Invalid on/off flag ('" STR_FORMAT "') specified\n", STR_FMT(instr)); return; } } call_t *c = call_get(&callid); if (!c) { cw->cw_printf(cw, "Call ID '" STR_FORMAT "' not found\n", STR_FMT(&callid)); return; } bf_set_clear(&c->call_flags, CALL_FLAG_DEBUG, flag); cw->cw_printf(cw, "%s debugging for call '" STR_FORMAT "'\n", flag ? "Enabled" : "Disabled", STR_FMT(&callid)); rwlock_unlock_w(&c->master_lock); obj_put(c); } static void cli_incoming(struct streambuf_stream *s) { ilogs(control, LOG_INFO, "New cli connection from %s", s->addr); } static void cli_streambuf_printf(struct cli_writer *cw, const char *fmt, ...) { va_list va; va_start(va, fmt); streambuf_vprintf(cw->ptr, fmt, va); va_end(va); } static void cli_stream_readable(struct streambuf_stream *s) { static const int MAXINPUT = 1024; char *inbuf; str instr; inbuf = streambuf_getline(s->inbuf); if (!inbuf) { if (streambuf_bufsize(s->inbuf) > MAXINPUT) { ilogs(control, LOG_INFO, "Buffer length exceeded in CLI connection from %s", s->addr); streambuf_stream_close(s); } return; } str_init(&instr, inbuf); struct cli_writer cw = { .cw_printf = cli_streambuf_printf, .ptr = s->outbuf, }; cli_handle(&instr, &cw); free(inbuf); streambuf_stream_shutdown(s); log_info_reset(); } void cli_handle(str *instr, struct cli_writer *cw) { ilogs(control, LOG_INFO, "Got CLI command: " STR_FORMAT_M, STR_FMT_M(instr)); cli_handler_do(cli_top_handlers, instr, cw); release_closed_sockets(); } static void cli_free(void *p) { struct cli *c = p; streambuf_listener_shutdown(&c->listener); } struct cli *cli_new(const endpoint_t *ep) { struct cli *c; c = obj_alloc0("cli", sizeof(*c), cli_free); if (streambuf_listener_init(&c->listener, ep, cli_incoming, cli_stream_readable, NULL, &c->obj)) { ilogs(control, LOG_ERR, "Failed to open TCP control port: %s", strerror(errno)); goto fail; } return c; fail: // XXX streambuf_listener_close ... obj_put(c); return NULL; } static void cli_incoming_list_loglevel(str *instr, struct cli_writer *cw) { if (instr && instr->len) str_shift(instr, 1); for (unsigned int i = 0; i < num_log_levels; i++) { if (instr && instr->len) { if (str_cmp(instr, log_level_names[i])) continue; } if (instr && instr->len) cw->cw_printf(cw, "%i\n", __get_log_level(i)); else cw->cw_printf(cw, "%s = %i\n", log_level_names[i], __get_log_level(i)); } } static void cli_incoming_list_loglevels(str *instr, struct cli_writer *cw) { for (unsigned int i = 0; i < num_log_levels; i++) cw->cw_printf(cw, "%s - %s\n", log_level_names[i], log_level_descriptions[i]); } static void cli_incoming_set_loglevel(str *instr, struct cli_writer *cw) { int nl; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } str subsys = STR_NULL; if (instr->len && (instr->s[0] < '0' || instr->s[0] > '9')) if (!str_token_sep(&subsys, instr, ' ')) subsys = STR_NULL; if (!instr->len) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } nl = atoi(instr->s); for (unsigned int i = 0; i < num_log_levels; i++) { if (subsys.len) { if (str_cmp(&subsys, log_level_names[i])) continue; } g_atomic_int_set(&rtpe_config.common.log_levels[i], nl); } cw->cw_printf(cw, "Success setting loglevel to %i\n", nl); } static void cli_incoming_list_redisallowederrors(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.redis_allowed_errors)); } static void cli_incoming_set_redisallowederrors(str *instr, struct cli_writer *cw) { long allowed_errors; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; allowed_errors = strtol(instr->s, &endptr, 10); atomic_set_na(&rtpe_config.redis_allowed_errors, allowed_errors); cw->cw_printf(cw, "Success setting redis-allowed-errors to %ld\n", allowed_errors); } static void cli_incoming_list_redisdisabletime(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.redis_disable_time)); } static void cli_incoming_set_redisdisable(str *instr, struct cli_writer *cw) { int disable = 0; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; disable = strtol(instr->s, &endptr, 10); if (disable < 0) { cw->cw_printf(cw, "Invalid redis-disable value %d, must be >= 0\n", disable); return; } // disable write redis if (disable > 0) { // check if NOT previously disabled if (!rtpe_redis_write_disabled && rtpe_redis) { rtpe_redis_write_disabled = rtpe_redis_write; rtpe_redis_write = rtpe_redis; cw->cw_printf(cw, "Success disable redis write\n"); } else { cw->cw_printf(cw, "No redis write to disable\n"); } // enable write redis } else { // check if previously disabled if (rtpe_redis_write_disabled) { rtpe_redis_write = rtpe_redis_write_disabled; rtpe_redis_write_disabled = NULL; cw->cw_printf(cw, "Success re-enable redis write\n"); } else { cw->cw_printf(cw, "No redis write to re-enable\n"); } } } static void cli_incoming_set_redisdisabletime(str *instr, struct cli_writer *cw) { long seconds; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; seconds = strtol(instr->s, &endptr, 10); if (seconds < 0) { cw->cw_printf(cw, "Invalid redis-disable-time value %ld, must be >= 0\n", seconds); return; } atomic_set_na(&rtpe_config.redis_disable_time, seconds); cw->cw_printf(cw, "Success setting redis-disable-time to %ld\n", seconds); } static void cli_incoming_list_redisconnecttimeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.redis_connect_timeout)); } static void cli_incoming_set_redisconnecttimeout(str *instr, struct cli_writer *cw) { long timeout; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return ; } errno = 0; timeout = strtol(instr->s, &endptr, 10); if (timeout <= 0) { cw->cw_printf(cw, "Invalid redis-connect-timeout value %ld, must be > 0\n", timeout); return; } atomic_set_na(&rtpe_config.redis_connect_timeout, timeout); cw->cw_printf(cw, "Success setting redis-connect-timeout to %ld\n", timeout); } static void cli_incoming_list_deletedelay(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.delete_delay)); } static void cli_incoming_set_deletedelay(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } int seconds = str_to_i(instr, -1); if (seconds == -1) { cw->cw_printf(cw, "Invalid delete-delay value\n"); return; } atomic_set_na(&rtpe_config.delete_delay, seconds); cw->cw_printf(cw, "Success setting delete-delay to %d\n", seconds); } static void cli_incoming_call(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "More parameters required.\n"); return; } str callid; if (!str_token_sep(&callid, instr, ' ')) callid = STR_NULL; if (!callid.len) { cw->cw_printf(cw, "No call ID specified\n"); return; } cw->call = call_get(&callid); if (!cw->call) { cw->cw_printf(cw, "No such call '" STR_FORMAT "'\n", STR_FMT(&callid)); return; } cli_handler_do(cli_call_handlers, instr, cw); if (cw->call) { rwlock_unlock_w(&cw->call->master_lock); obj_release(cw->call); } } static void cli_incoming_call_info(str *instr, struct cli_writer *cw) { cli_list_call_info(cw, cw->call); } static void cli_incoming_call_terminate(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "\nCall '" STR_FORMAT "' terminated.\n\n", STR_FMT(&cw->call->callid)); ilog(LOG_WARN, "Call " STR_FORMAT_M " terminated by operator", STR_FMT_M(&cw->call->callid)); rwlock_unlock_w(&cw->call->master_lock); call_destroy(cw->call); obj_release(cw->call); } static void cli_incoming_call_debug(str *instr, struct cli_writer *cw) { str_shift(instr, 1); int flag = 1; if (instr->len) { if (!str_cmp(instr, "on") || !str_cmp(instr, "enable")) ; else if (!str_cmp(instr, "off") || !str_cmp(instr, "disable")) flag = 0; else { cw->cw_printf(cw, "Invalid on/off flag ('" STR_FORMAT "') specified\n", STR_FMT(instr)); return; } } bf_set_clear(&cw->call->call_flags, CALL_FLAG_DEBUG, flag); cw->cw_printf(cw, "%s debugging for call '" STR_FORMAT "'\n", flag ? "Enabled" : "Disabled", STR_FMT(&cw->call->callid)); } static void cli_incoming_call_tag(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "More parameters required.\n"); return; } str tag; if (!str_token_sep(&tag, instr, ' ')) tag = STR_NULL; if (!tag.len) { cw->cw_printf(cw, "No tag specified\n"); return; } cw->ml = call_get_monologue(cw->call, &tag); if (!cw->ml) { cw->cw_printf(cw, "No such tag '" STR_FORMAT "'\n", STR_FMT(&tag)); return; } cli_handler_do(cli_tag_handlers, instr, cw); cw->ml = NULL; } static void cli_incoming_tag_info(str *instr, struct cli_writer *cw) { cli_list_tag_info(cw, cw->ml); } #ifdef WITH_TRANSCODING static void cli_incoming_tag_delay(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "More parameters required.\n"); return; } int delay = str_to_i(instr, 1); if (delay < 0) { cw->cw_printf(cw, "Invalid delay %i\n", delay); return; } cw->cw_printf(cw, "Setting delay to %i\n", delay); for (unsigned int k = 0; k < cw->ml->medias->len; k++) { struct call_media *m = cw->ml->medias->pdata[k]; if (!m) continue; m->buffer_delay = delay; } codec_update_all_handlers(cw->ml); } static void cli_incoming_tag_detdtmf(str *instr, struct cli_writer *cw) { if (str_shift(instr, 1)) { cw->cw_printf(cw, "More parameters required.\n"); return; } int onoff = str_to_i(instr, 1); if (onoff != 0 && onoff != 1) { cw->cw_printf(cw, "Invalid setting %i\n", onoff); return; } cw->cw_printf(cw, "%s audio DTMF detection\n", onoff ? "Enabling" : "Disabling"); bf_set_clear(&cw->ml->ml_flags, ML_FLAG_DETECT_DTMF, onoff); codec_update_all_handlers(cw->ml); } #endif static void cli_incoming_list_rediscmdtimeout(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.redis_cmd_timeout)); } static void cli_incoming_set_rediscmdtimeout(str *instr, struct cli_writer *cw) { long timeout; char *endptr; int fail = 0; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return; } errno = 0; timeout = strtol(instr->s, &endptr, 10); if (timeout < 0) { cw->cw_printf(cw, "Invalid redis-cmd-timeout value %ld, must be >= 0\n", timeout); return; } if (atomic_get_na(&rtpe_config.redis_cmd_timeout) == timeout) { cw->cw_printf(cw, "Success setting redis-cmd-timeout to %ld\n", timeout); return; } atomic_set_na(&rtpe_config.redis_cmd_timeout, timeout); if (timeout == 0) { cw->cw_printf(cw, "Warning: Setting redis-cmd-timeout to 0 (no timeout) will require a redis reconnect\n"); if (rtpe_redis && redis_reconnect(rtpe_redis)) { cw->cw_printf(cw, "Failed reconnecting to redis\n"); fail = 1; } if (rtpe_redis && redis_reconnect(rtpe_redis_write)) { cw->cw_printf(cw, "Failed reconnecting to redis-write\n"); fail = 1; } if (rtpe_redis && redis_reconnect(rtpe_redis_notify)) { cw->cw_printf(cw, "Failed reconnecting to redis-notify\n"); fail = 1; } } else { if (rtpe_redis && redis_set_timeout(rtpe_redis, timeout)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis %ld\n", timeout); fail = 1; } if (rtpe_redis_write && redis_set_timeout(rtpe_redis_write, timeout)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-write %ld\n", timeout); fail = 1; } if (rtpe_redis_notify && redis_set_timeout(rtpe_redis_notify, timeout)) { cw->cw_printf(cw, "Failed setting redis-cmd-timeout for redis-notify %ld\n", timeout); fail = 1; } } if (!fail) cw->cw_printf(cw, "Success setting redis-cmd-timeout to %ld\n", timeout); } static void cli_incoming_list_interfaces(str *instr, struct cli_writer *cw) { for (GList *l = all_local_interfaces.head; l; l = l->next) { struct local_intf *lif = l->data; // only show first-order interface entries: socket families must match if (lif->logical->preferred_family != lif->spec->local_address.addr.family) continue; cw->cw_printf(cw, "Interface '%s' address '%s' (%s)\n", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr), lif->spec->local_address.addr.family->name); cw->cw_printf(cw, " Port range: %5u - %5u\n", lif->spec->port_pool.min, lif->spec->port_pool.max); unsigned int f = g_hash_table_size(lif->spec->port_pool.free_ports_ht); unsigned int r = lif->spec->port_pool.max - lif->spec->port_pool.min + 1; cw->cw_printf(cw, " Ports used: %5u / %5u (%5.1f%%)\n", r - f, r, (double) (r - f) * 100.0 / r); cw->cw_printf(cw, " Packets/bytes/errors:\n"); cw->cw_printf(cw, " Ingress: %10" PRIu64 " / %10" PRIu64 " / %10" PRIu64 "\n", atomic64_get_na(&lif->stats->in.packets), atomic64_get_na(&lif->stats->in.bytes), atomic64_get_na(&lif->stats->in.errors)); cw->cw_printf(cw, " Egress: %10" PRIu64 " / %10" PRIu64 " / %10" PRIu64 "\n", atomic64_get_na(&lif->stats->out.packets), atomic64_get_na(&lif->stats->out.bytes), atomic64_get_na(&lif->stats->out.errors)); cw->cw_printf(cw, " Packets lost/duplicates: %10" PRIu64 " / %10" PRIu64 "\n", atomic64_get_na(&lif->stats->s.packets_lost), atomic64_get_na(&lif->stats->s.duplicates)); cw->cw_printf(cw, " MOS: avg %3.1f, packet loss avg %3.0f%%\n", (double) atomic64_get_na(&lif->stats->sampled.sums.mos) / atomic64_get_na(&lif->stats->sampled.counts.mos) / 10., (double) atomic64_get_na(&lif->stats->sampled.sums.packetloss) / atomic64_get_na(&lif->stats->sampled.counts.packetloss)); cw->cw_printf(cw, " Jitter: avg %3.0f (measured %3.0f)\n", (double) atomic64_get_na(&lif->stats->sampled.sums.jitter) / atomic64_get_na(&lif->stats->sampled.counts.jitter), (double) atomic64_get_na(&lif->stats->sampled.sums.jitter_measured) / atomic64_get_na(&lif->stats->sampled.counts.jitter_measured)); cw->cw_printf(cw, " RTT: e2e %3.0f, dsct %3.0f\n", (double) atomic64_get_na(&lif->stats->sampled.sums.rtt_e2e) / atomic64_get_na(&lif->stats->sampled.counts.rtt_e2e), (double) atomic64_get_na(&lif->stats->sampled.sums.rtt_dsct) / atomic64_get_na(&lif->stats->sampled.counts.rtt_dsct)); } } static void cli_incoming_list_jsonstats(str *instr, struct cli_writer *cw) { g_autoptr(stats_metric_q) metrics = statistics_gather_metrics(NULL); for (__auto_type l = metrics->head; l; l = l->next) { stats_metric *m = l->data; if (!m->label) continue; if (m->is_follow_up) cw->cw_printf(cw, ","); if (m->value_short) cw->cw_printf(cw, "\"%s\":%s", m->label, m->value_short); else if (m->is_bracket) cw->cw_printf(cw, "%s", m->label); else cw->cw_printf(cw, "\"%s\":", m->label); } } static void cli_incoming_list_transcoders(str *instr, struct cli_writer *cw) { mutex_lock(&rtpe_codec_stats_lock); if (t_hash_table_size(rtpe_codec_stats) == 0) cw->cw_printf(cw, "No stats entries\n"); else { int last_tv_sec = rtpe_now.tv_sec - 1; unsigned int idx = last_tv_sec & 1; codec_stats_ht_iter iter; t_hash_table_iter_init(&iter, rtpe_codec_stats); char *chain; struct codec_stats *stats_entry; while (t_hash_table_iter_next(&iter, &chain, &stats_entry)) { cw->cw_printf(cw, "%s: %i transcoders\n", chain, g_atomic_int_get(&stats_entry->num_transcoders)); if (g_atomic_int_get(&stats_entry->last_tv_sec[idx]) != last_tv_sec) continue; cw->cw_printf(cw, " " UINT64F " packets/s\n", atomic64_get(&stats_entry->packets_input[idx])); cw->cw_printf(cw, " " UINT64F " bytes/s\n", atomic64_get(&stats_entry->bytes_input[idx])); cw->cw_printf(cw, " " UINT64F " samples/s\n", atomic64_get(&stats_entry->pcm_samples[idx])); } } mutex_unlock(&rtpe_codec_stats_lock); } static void cli_incoming_list_controltos(str *instr, struct cli_writer *cw) { cw->cw_printf(cw, "%d\n", atomic_get_na(&rtpe_config.control_tos)); } static void cli_incoming_set_controltos(str *instr, struct cli_writer *cw) { long tos; char *endptr; if (str_shift(instr, 1)) { cw->cw_printf(cw, "%s\n", "More parameters required."); return ; } errno = 0; tos = strtol(instr->s, &endptr, 10); if (tos < 0 || tos > 255) { cw->cw_printf(cw, "Invalid control-tos value %ld, must be between 0 and 255\n", tos); return; } atomic_set_na(&rtpe_config.control_tos, tos); for (GList *l = rtpe_control_ng.head; l; l = l->next) { struct control_ng *c = l->data; if (c->udp_listener.fd != -1) { set_tos(&c->udp_listener, tos); } } cw->cw_printf(cw, "Success setting redis-connect-timeout to %ld\n", tos); } rtpengine-mr12.5.1.22/daemon/codec.c000066400000000000000000005536551474347554000171000ustar00rootroot00000000000000#include "codec.h" #include #include #include #include #include "call.h" #include "log.h" #include "rtplib.h" #include "codeclib.h" #include "ssrc.h" #include "rtcp.h" #include "call_interfaces.h" #include "dtmf.h" #include "dtmflib.h" #include "t38.h" #include "media_player.h" #include "timerthread.h" #include "log_funcs.h" #include "mqtt.h" #include "audio_player.h" #ifdef WITH_TRANSCODING #include "fix_frame_channel_layout.h" #endif #include "bufferpool.h" struct codec_timer { struct timerthread_obj tt_obj; struct timeval next; void (*timer_func)(struct codec_timer *); }; struct mqtt_timer { struct codec_timer ct; struct mqtt_timer **self; call_t *call; struct call_media *media; }; struct timer_callback { struct codec_timer ct; void (*timer_callback_func)(call_t *, codec_timer_callback_arg_t); call_t *call; codec_timer_callback_arg_t arg; }; typedef void (*raw_input_func_t)(struct media_packet *mp, unsigned int); static void __buffer_delay_raw(struct delay_buffer *dbuf, struct codec_handler *handler, raw_input_func_t input_func, struct media_packet *mp, unsigned int clockrate); static codec_handler_func handler_func_passthrough; static struct timerthread codec_timers_thread; static void rtp_payload_type_copy(rtp_payload_type *dst, const rtp_payload_type *src); static void codec_store_add_raw_order(struct codec_store *cs, rtp_payload_type *pt); static rtp_payload_type *codec_store_find_compatible(struct codec_store *cs, const rtp_payload_type *pt); static void __rtp_payload_type_add_name(codec_names_ht, rtp_payload_type *pt); static void codec_calc_lost(struct ssrc_ctx *ssrc, uint16_t seq); static struct codec_handler codec_handler_stub = { .source_pt.payload_type = -1, .dest_pt.payload_type = -1, .handler_func = handler_func_passthrough, .kernelize = 1, .passthrough = 1, }; static void __ht_queue_del(codec_names_ht ht, const str *key, int pt) { GQueue *q = t_hash_table_lookup(ht, key); if (!q) return; g_queue_remove_all(q, GINT_TO_POINTER(pt)); } static rtp_pt_list *__codec_store_delete_link(rtp_pt_list *link, struct codec_store *cs) { rtp_payload_type *pt = link->data; t_hash_table_remove(cs->codecs, GINT_TO_POINTER(pt->payload_type)); __ht_queue_del(cs->codec_names, &pt->encoding, pt->payload_type); __ht_queue_del(cs->codec_names, &pt->encoding_with_params, pt->payload_type); __ht_queue_del(cs->codec_names, &pt->encoding_with_full_params, pt->payload_type); __auto_type next = link->next; if (cs->supp_link == link) cs->supp_link = next; t_queue_delete_link(&cs->codec_prefs, link); payload_type_free(pt); return next; } #ifdef WITH_TRANSCODING #include #include #include #include #include "resample.h" #include "dtmf_rx_fillin.h" struct codec_ssrc_handler; struct transcode_packet; struct dtx_packet; TYPED_GQUEUE(dtx_packet, struct dtx_packet) typedef enum { TCC_ERR = -1, TCC_OK = 0, // not consumed, must be freed TCC_CONSUMED = 1, // ok, don't free } tc_code; struct dtx_buffer { struct codec_timer ct; mutex_t lock; struct codec_ssrc_handler *csh; int ptime; // ms per packet int tspp; // timestamp increment per packet unsigned int clockrate; call_t *call; dtx_packet_q packets; struct media_packet last_mp; unsigned long head_ts; uint32_t ssrc; time_t start; }; struct dtx_packet { struct transcode_packet *packet; struct media_packet mp; struct codec_ssrc_handler *decoder_handler; // holds reference struct codec_ssrc_handler *input_handler; // holds reference tc_code (*dtx_func)(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp); }; typedef int (*encoder_input_func_t)(encoder_t *enc, AVFrame *frame, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2); typedef int (*packet_input_func_t)(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, unsigned long ts_delay, int payload_type, struct media_packet *mp); struct delay_frame; TYPED_GQUEUE(delay_frame, struct delay_frame) struct delay_buffer { struct codec_timer ct; call_t *call; struct codec_handler *handler; mutex_t lock; unsigned int delay; delay_frame_q frames; // in reverse order: newest packet first, oldest last }; struct delay_frame { AVFrame *frame; struct media_packet mp; struct transcode_packet *packet; unsigned long ts_delay; int payload_type; unsigned int clockrate; uint32_t ts; encoder_input_func_t encoder_func; raw_input_func_t raw_func; packet_input_func_t packet_func; struct codec_handler *handler; struct codec_ssrc_handler *ch; struct codec_ssrc_handler *input_ch; int seq_adj; }; struct silence_event { uint64_t start; uint64_t end; }; TYPED_GQUEUE(silence_event, struct silence_event) struct transcode_job { struct media_packet mp; struct codec_ssrc_handler *ch; struct codec_ssrc_handler *input_ch; struct transcode_packet *packet; bool done; // needed for in-order processing }; TYPED_GQUEUE(transcode_job, struct transcode_job); struct codec_ssrc_handler { struct ssrc_entry h; // must be first struct codec_handler *handler; decoder_t *decoder; encoder_t *encoder; codec_cc_t *chain; format_t encoder_format; int bitrate; int ptime; int bytes_per_packet; struct codec_scheduler csch; GString *sample_buffer; struct dtx_buffer *dtx_buffer; transcode_job_q async_jobs; // DTMF DSP stuff dtmf_rx_state_t *dtmf_dsp; resample_t dtmf_resampler; format_t dtmf_format; uint64_t dtmf_ts, last_dtmf_event_ts; dtmf_event_q dtmf_events; struct dtmf_event dtmf_event; // for replacing PCM with DTMF event struct dtmf_event dtmf_state; // state tracker for DTMF actions // silence detection silence_event_q silence_events; // DTMF audio suppression unsigned long dtmf_start_ts; // DTMF send delay unsigned long dtmf_first_duration; uint64_t skip_pts; unsigned int rtp_mark:1; }; struct transcode_packet { seq_packet_t p; // must be first unsigned long ts; str *payload; struct codec_handler *handler; unsigned int marker:1, bypass_seq:1; tc_code (*packet_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *); int (*dup_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *); struct rtp_header rtp; }; struct codec_tracker { GHashTable *touched; // 8000, 16000, etc, for each audio codec that was touched (added, removed, etc) int all_touched; }; struct rtcp_timer { struct codec_timer ct; call_t *call; struct call_media *media; }; static mutex_t transcode_lock = MUTEX_STATIC_INIT; static cond_t transcode_cond = COND_STATIC_INIT; static transcode_job_q transcode_jobs = TYPED_GQUEUE_INIT; static tc_code (*__rtp_decode)(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp); static void transcode_job_free(struct transcode_job *j); static void packet_encoded_tx(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *inout, char *buf, unsigned int pkt_len, const struct fraction *cr_fact); static void packet_encoded_tx_seq_own(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *inout, char *buf, unsigned int pkt_len, const struct fraction *cr_fact); static codec_handler_func handler_func_passthrough_ssrc; static codec_handler_func handler_func_transcode; static codec_handler_func handler_func_playback; static codec_handler_func handler_func_inject_dtmf; static codec_handler_func handler_func_dtmf; static codec_handler_func handler_func_t38; static struct ssrc_entry *__ssrc_handler_transcode_new(void *p); static struct ssrc_entry *__ssrc_handler_decode_new(void *p); static struct ssrc_entry *__ssrc_handler_new(void *p); static void __ssrc_handler_stop(void *p, void *dummy); static void __free_ssrc_handler(void *); static void __transcode_packet_free(struct transcode_packet *); static tc_code packet_decode(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *); static int packet_encoded_rtp(encoder_t *enc, void *u1, void *u2); static int packet_decoded_fifo(decoder_t *decoder, AVFrame *frame, void *u1, void *u2); static int packet_decoded_direct(decoder_t *decoder, AVFrame *frame, void *u1, void *u2); static int packet_decoded_audio_player(decoder_t *decoder, AVFrame *frame, void *u1, void *u2); static void codec_touched(struct codec_store *cs, rtp_payload_type *pt); static bool __buffer_dtx(struct dtx_buffer *dtxb, struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_handler, struct transcode_packet *packet, struct media_packet *mp, tc_code (*dtx_func)(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp)); static void __dtx_shutdown(struct dtx_buffer *dtxb); static struct codec_handler *__input_handler(struct codec_handler *h, struct media_packet *mp); static void __delay_frame_process(struct delay_buffer *, struct delay_frame *dframe); static void __dtx_restart(struct codec_handler *h); static void __delay_buffer_setup(struct delay_buffer **dbufp, struct codec_handler *h, call_t *call, unsigned int delay); static void __delay_buffer_shutdown(struct delay_buffer *dbuf, bool); static void delay_buffer_stop(struct delay_buffer **pcmbp); static tc_code __buffer_delay_packet(struct delay_buffer *dbuf, struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, unsigned long ts_delay, int payload_type, packet_input_func_t packet_func, struct media_packet *mp, unsigned int clockrate); static void __buffer_delay_seq(struct delay_buffer *dbuf, struct media_packet *mp, int seq_adj); static struct codec_handler codec_handler_stub_ssrc = { .source_pt.payload_type = -1, .dest_pt.payload_type = -1, .handler_func = handler_func_passthrough_ssrc, .kernelize = 1, .passthrough = 1, }; static void __handler_shutdown(struct codec_handler *handler) { ssrc_hash_foreach(handler->ssrc_hash, __ssrc_handler_stop, (void *) true); free_ssrc_hash(&handler->ssrc_hash); if (handler->delay_buffer) { __delay_buffer_shutdown(handler->delay_buffer, true); delay_buffer_stop(&handler->delay_buffer); } if (handler->ssrc_handler) obj_put(&handler->ssrc_handler->h); handler->ssrc_handler = NULL; handler->kernelize = 0; handler->transcoder = 0; handler->output_handler = handler; // reset to default handler->packet_decoded = packet_decoded_fifo; handler->dtmf_payload_type = -1; handler->real_dtmf_payload_type = -1; handler->cn_payload_type = -1; handler->pcm_dtmf_detect = 0; handler->passthrough = 0; handler->payload_len = 0; codec_handler_free(&handler->dtmf_injector); if (handler->stats_entry) { g_atomic_int_add(&handler->stats_entry->num_transcoders, -1); handler->stats_entry = NULL; g_free(handler->stats_chain); } } static void __codec_handler_free(struct codec_handler *h) { __handler_shutdown(h); payload_type_clear(&h->source_pt); payload_type_clear(&h->dest_pt); g_slice_free1(sizeof(*h), h); } void codec_handler_free(struct codec_handler **handler) { if (!handler || !*handler) return; __codec_handler_free(*handler); *handler = NULL; } static struct codec_handler *__handler_new(const rtp_payload_type *pt, struct call_media *media, struct call_media *sink) { struct codec_handler *handler = g_slice_alloc0(sizeof(*handler)); handler->source_pt.payload_type = -1; if (pt) rtp_payload_type_copy(&handler->source_pt, pt); handler->dest_pt.payload_type = -1; handler->output_handler = handler; // default handler->dtmf_payload_type = -1; handler->real_dtmf_payload_type = -1; handler->cn_payload_type = -1; handler->packet_encoded = packet_encoded_rtp; handler->packet_decoded = packet_decoded_fifo; handler->media = media; handler->sink = sink; return handler; } static void __make_passthrough(struct codec_handler *handler, int dtmf_pt, int cn_pt) { __handler_shutdown(handler); ilogs(codec, LOG_DEBUG, "Using passthrough handler for " STR_FORMAT "/" STR_FORMAT " (%i) with DTMF %i, CN %i", STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT0(&handler->source_pt.format_parameters), handler->source_pt.payload_type, dtmf_pt, cn_pt); if (handler->source_pt.codec_def && handler->source_pt.codec_def->dtmf) handler->handler_func = handler_func_dtmf; else { handler->handler_func = handler_func_passthrough; handler->kernelize = 1; } rtp_payload_type_copy(&handler->dest_pt, &handler->source_pt); handler->ssrc_hash = create_ssrc_hash_full(__ssrc_handler_new, handler); handler->dtmf_payload_type = dtmf_pt; handler->cn_payload_type = cn_pt; handler->passthrough = 1; #ifdef WITH_TRANSCODING if (handler->media->buffer_delay) { __delay_buffer_setup(&handler->delay_buffer, handler, handler->media->call, handler->media->buffer_delay); handler->kernelize = 0; } #endif } // converts existing passthrough handler to SSRC passthrough static void __convert_passthrough_ssrc(struct codec_handler *handler) { ilogs(codec, LOG_DEBUG, "Using passthrough handler with new SSRC for " STR_FORMAT "/" STR_FORMAT, STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT0(&handler->source_pt.format_parameters)); if (handler->handler_func == handler_func_passthrough) handler->handler_func = handler_func_passthrough_ssrc; } static void __reset_sequencer(void *p, void *dummy) { struct ssrc_entry_call *s = p; if (s->sequencers) g_hash_table_destroy(s->sequencers); s->sequencers = NULL; } static bool __make_transcoder_full(struct codec_handler *handler, rtp_payload_type *dest, GHashTable *output_transcoders, int dtmf_payload_type, bool pcm_dtmf_detect, int cn_payload_type, int (*packet_decoded)(decoder_t *, AVFrame *, void *, void *), struct ssrc_entry *(*ssrc_handler_new_func)(void *p)) { if (!handler->source_pt.codec_def) return false; if (!dest->codec_def) return false; // don't reset handler if it already matches what we want if (!handler->transcoder) goto reset; if (!rtp_payload_type_eq_exact(dest, &handler->dest_pt)) goto reset; if (handler->handler_func != handler_func_transcode) goto reset; if (handler->packet_decoded != packet_decoded) goto reset; if (handler->cn_payload_type != cn_payload_type) goto reset; if (handler->dtmf_payload_type != dtmf_payload_type) goto reset; if ((pcm_dtmf_detect ? 1 : 0) != handler->pcm_dtmf_detect) goto reset; ilogs(codec, LOG_DEBUG, "Leaving transcode context for " STR_FORMAT "/" STR_FORMAT " (%i) -> " STR_FORMAT "/" STR_FORMAT " (%i) intact", STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT0(&handler->source_pt.format_parameters), handler->source_pt.payload_type, STR_FMT(&dest->encoding_with_params), STR_FMT0(&dest->format_parameters), dest->payload_type); goto no_handler_reset; reset: __handler_shutdown(handler); rtp_payload_type_copy(&handler->dest_pt, dest); if (dest->codec_def->format_answer) dest->codec_def->format_answer(&handler->dest_pt, &handler->source_pt); handler->handler_func = handler_func_transcode; handler->packet_decoded = packet_decoded; handler->transcoder = 1; handler->dtmf_payload_type = dtmf_payload_type; handler->cn_payload_type = cn_payload_type; handler->pcm_dtmf_detect = pcm_dtmf_detect ? 1 : 0; // DTMF transcoder/scaler? if (handler->source_pt.codec_def && handler->source_pt.codec_def->dtmf) handler->handler_func = handler_func_dtmf; ilogs(codec, LOG_DEBUG, "Created transcode context for " STR_FORMAT "/" STR_FORMAT " (%i) -> " STR_FORMAT "/" STR_FORMAT " (%i) with DTMF output %i and CN output %i", STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT0(&handler->source_pt.format_parameters), handler->source_pt.payload_type, STR_FMT(&dest->encoding_with_params), STR_FMT0(&dest->format_parameters), dest->payload_type, dtmf_payload_type, cn_payload_type); handler->ssrc_hash = create_ssrc_hash_full(ssrc_handler_new_func, handler); // stats entry handler->stats_chain = g_strdup_printf(STR_FORMAT " -> " STR_FORMAT, STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT(&dest->encoding_with_params)); mutex_lock(&rtpe_codec_stats_lock); struct codec_stats *stats_entry = t_hash_table_lookup(rtpe_codec_stats, handler->stats_chain); if (!stats_entry) { stats_entry = g_slice_alloc0(sizeof(*stats_entry)); stats_entry->chain = strdup(handler->stats_chain); t_hash_table_insert(rtpe_codec_stats, stats_entry->chain, stats_entry); stats_entry->chain_brief = g_strdup_printf(STR_FORMAT "_" STR_FORMAT, STR_FMT(&handler->source_pt.encoding_with_params), STR_FMT(&dest->encoding_with_params)); } handler->stats_entry = stats_entry; mutex_unlock(&rtpe_codec_stats_lock); g_atomic_int_inc(&stats_entry->num_transcoders); ssrc_hash_foreach(handler->media->monologue->ssrc_hash, __reset_sequencer, NULL); no_handler_reset: __delay_buffer_setup(&handler->delay_buffer, handler, handler->media->call, handler->media->buffer_delay); __dtx_restart(handler); // check if we have multiple decoders transcoding to the same output PT struct codec_handler *output_handler = NULL; if (output_transcoders) output_handler = g_hash_table_lookup(output_transcoders, GINT_TO_POINTER(dest->payload_type)); if (output_handler) { ilogs(codec, LOG_DEBUG, "Using existing encoder context"); handler->output_handler = output_handler; } else { if (output_transcoders) g_hash_table_insert(output_transcoders, GINT_TO_POINTER(dest->payload_type), handler); handler->output_handler = handler; // make sure we don't have a stale pointer } return true; } static void __make_transcoder(struct codec_handler *handler, rtp_payload_type *dest, GHashTable *output_transcoders, int dtmf_payload_type, bool pcm_dtmf_detect, int cn_payload_type) { __make_transcoder_full(handler, dest, output_transcoders, dtmf_payload_type, pcm_dtmf_detect, cn_payload_type, packet_decoded_fifo, __ssrc_handler_transcode_new); } static bool __make_audio_player_decoder(struct codec_handler *handler, rtp_payload_type *dest, bool pcm_dtmf_detect) { return __make_transcoder_full(handler, dest, NULL, -1, pcm_dtmf_detect, -1, packet_decoded_audio_player, __ssrc_handler_decode_new); } // used for generic playback (audio_player, t38_gateway) struct codec_handler *codec_handler_make_playback(const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt, unsigned long last_ts, struct call_media *media, uint32_t ssrc) { struct codec_handler *handler = __handler_new(src_pt, media, NULL); rtp_payload_type_copy(&handler->dest_pt, dst_pt); handler->handler_func = handler_func_playback; handler->ssrc_handler = (void *) __ssrc_handler_transcode_new(handler); if (!handler->ssrc_handler) { codec_handler_free(&handler); return NULL; } handler->ssrc_handler->csch.first_ts = last_ts; handler->ssrc_handler->h.ssrc = ssrc; while (handler->ssrc_handler->csch.first_ts == 0) handler->ssrc_handler->csch.first_ts = ssl_random(); handler->ssrc_handler->rtp_mark = 1; ilogs(codec, LOG_DEBUG, "Created media playback context for " STR_FORMAT "/" STR_FORMAT " -> " STR_FORMAT "/" STR_FORMAT "", STR_FMT(&src_pt->encoding_with_params), STR_FMT0(&src_pt->format_parameters), STR_FMT(&dst_pt->encoding_with_params), STR_FMT0(&dst_pt->format_parameters)); return handler; } // used for "play media" player struct codec_handler *codec_handler_make_media_player(const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt, unsigned long last_ts, struct call_media *media, uint32_t ssrc) { struct codec_handler *h = codec_handler_make_playback(src_pt, dst_pt, last_ts, media, ssrc); if (!h) return NULL; if (audio_player_is_active(media)) { h->packet_decoded = packet_decoded_audio_player; if (!audio_player_pt_match(media, dst_pt)) ilogs(codec, LOG_WARN, "Codec mismatch between audio player and media player (wanted: " STR_FORMAT "/" STR_FORMAT ")", STR_FMT(&dst_pt->encoding_with_params), STR_FMT0(&dst_pt->format_parameters)); } return h; } struct codec_handler *codec_handler_make_dummy(const rtp_payload_type *dst_pt, struct call_media *media) { struct codec_handler *handler = __handler_new(NULL, media, NULL); rtp_payload_type_copy(&handler->dest_pt, dst_pt); return handler; } // does not init/parse a=fmtp static void ensure_codec_def_type(rtp_payload_type *pt, enum media_type type) { if (pt->codec_def) return; pt->codec_def = codec_find(&pt->encoding, type); if (!pt->codec_def) return; if (!pt->codec_def->support_encoding || !pt->codec_def->support_decoding) pt->codec_def = NULL; } // does init/parse a=fmtp void ensure_codec_def(rtp_payload_type *pt, struct call_media *media) { if (!media) return; ensure_codec_def_type(pt, media->type_id); if (pt->codec_def) codec_parse_fmtp(pt->codec_def, &pt->format, &pt->format_parameters, NULL); } // only called from codec_handlers_update() static void __make_passthrough_gsl(struct codec_handler *handler, GSList **handlers, rtp_payload_type *dtmf_pt, rtp_payload_type *cn_pt, bool use_ssrc_passthrough) { __make_passthrough(handler, dtmf_pt ? dtmf_pt->payload_type : -1, cn_pt ? cn_pt->payload_type : -1); if (use_ssrc_passthrough) __convert_passthrough_ssrc(handler); *handlers = g_slist_prepend(*handlers, handler); } static void __track_supp_codec(GHashTable *supplemental_sinks, rtp_payload_type *pt) { if (!pt->codec_def || !pt->codec_def->supplemental) return; GHashTable *supp_sinks = g_hash_table_lookup(supplemental_sinks, pt->codec_def->rtpname); if (!supp_sinks) return; if (!g_hash_table_lookup(supp_sinks, GUINT_TO_POINTER(pt->clock_rate))) g_hash_table_insert(supp_sinks, GUINT_TO_POINTER(pt->clock_rate), pt); } static void __check_codec_list(GHashTable **supplemental_sinks, rtp_payload_type **pref_dest_codec, struct call_media *sink, rtp_pt_q *sink_list) { // first initialise and populate the list of supp sinks GHashTable *ss = *supplemental_sinks = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, (GDestroyNotify) g_hash_table_destroy); for (GList *l = codec_supplemental_codecs->head; l; l = l->next) { codec_def_t *def = l->data; g_hash_table_replace(ss, (void *) def->rtpname, g_hash_table_new(g_direct_hash, g_direct_equal)); } rtp_payload_type *pdc = NULL; rtp_payload_type *first_tc_codec = NULL; for (__auto_type l = sink->codecs.codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; ensure_codec_def(pt, sink); if (!pt->codec_def) // not supported, next continue; // fix up ptime if (pt->ptime <= 0) pt->ptime = pt->codec_def->default_ptime; if (sink->ptime > 0) pt->ptime = sink->ptime; if (!pdc && !pt->codec_def->supplemental) pdc = pt; if (pt->accepted) { // codec is explicitly marked as accepted if (!first_tc_codec && !pt->codec_def->supplemental) first_tc_codec = pt; } __track_supp_codec(ss, pt); } if (first_tc_codec) pdc = first_tc_codec; if (pdc && pref_dest_codec) { *pref_dest_codec = pdc; ilogs(codec, LOG_DEBUG, "Default sink codec is " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&(*pref_dest_codec)->encoding_with_params), STR_FMT0(&(*pref_dest_codec)->format_parameters), (*pref_dest_codec)->payload_type); } } static rtp_payload_type *__supp_payload_type(GHashTable *supplemental_sinks, int clockrate, const char *codec) { GHashTable *supp_sinks = g_hash_table_lookup(supplemental_sinks, codec); if (!supp_sinks) return NULL; if (!g_hash_table_size(supp_sinks)) return NULL; // find the codec entry with a matching clock rate rtp_payload_type *pt = g_hash_table_lookup(supp_sinks, GUINT_TO_POINTER(clockrate)); return pt; } static int __unused_pt_number(struct call_media *media, struct call_media *other_media, struct codec_store *extra_cs, rtp_payload_type *pt) { int num = pt ? pt->payload_type : -1; rtp_payload_type *pt_match; if (num < 0) num = 96; // default first dynamic payload type number while (1) { if ((pt_match = t_hash_table_lookup(media->codecs.codecs, GINT_TO_POINTER(num)))) goto next; if (other_media) { if ((pt_match = t_hash_table_lookup(other_media->codecs.codecs, GINT_TO_POINTER(num)))) goto next; } if (extra_cs) { if ((pt_match = t_hash_table_lookup(extra_cs->codecs, GINT_TO_POINTER(num)))) goto next; } // OK break; next: // is this actually the same? if (pt && rtp_payload_type_eq_nf(pt, pt_match)) break; num++; if (num < 96) // if an RFC type was taken already num = 96; else if (num >= 128) return -1; } return num; } static void __check_dtmf_injector(struct call_media *receiver, struct call_media *sink, struct codec_handler *parent, GHashTable *output_transcoders) { if (!ML_ISSET(sink->monologue, INJECT_DTMF)) return; if (parent->dtmf_payload_type != -1) return; if (parent->dtmf_injector) return; if (parent->source_pt.codec_def->supplemental) return; // synthesise input rtp payload type rtp_payload_type src_pt = { .payload_type = -1, .clock_rate = parent->source_pt.clock_rate, .channels = parent->source_pt.channels, }; str_init(&src_pt.encoding, "DTMF injector"); str_init(&src_pt.encoding_with_params, "DTMF injector"); str_init(&src_pt.encoding_with_full_params, "DTMF injector"); static const str tp_event = STR_CONST_INIT("telephone-event"); src_pt.codec_def = codec_find(&tp_event, MT_AUDIO); if (!src_pt.codec_def) { ilogs(codec, LOG_ERR, "RTP payload type 'telephone-event' is not defined"); return; } parent->dtmf_injector = __handler_new(&src_pt, receiver, sink); __make_transcoder(parent->dtmf_injector, &parent->dest_pt, output_transcoders, -1, 0, -1); parent->dtmf_injector->handler_func = handler_func_inject_dtmf; } static struct codec_handler *__get_pt_handler(struct call_media *receiver, rtp_payload_type *pt, struct call_media *sink) { ensure_codec_def(pt, receiver); struct codec_handler *handler; handler = codec_handler_lookup(receiver->codec_handlers, pt->payload_type, sink); if (handler) { // make sure existing handler matches this PT if (!rtp_payload_type_eq_exact(pt, &handler->source_pt)) { ilogs(codec, LOG_DEBUG, "Resetting codec handler for PT %i", pt->payload_type); t_hash_table_remove(receiver->codec_handlers, handler); __handler_shutdown(handler); handler = NULL; g_atomic_pointer_set(&receiver->codec_handler_cache, NULL); } } if (!handler) { ilogs(codec, LOG_DEBUG, "Creating codec handler for " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); handler = __handler_new(pt, receiver, sink); t_hash_table_insert(receiver->codec_handlers, handler, handler); t_queue_push_tail(&receiver->codec_handlers_store, handler); } // figure out our ptime if (pt->ptime <= 0 && pt->codec_def) pt->ptime = pt->codec_def->default_ptime; if (receiver->ptime > 0) pt->ptime = receiver->ptime; return handler; } static void __check_t38_decoder(struct call_media *t38_media) { if (t38_media->t38_handler) return; ilogs(codec, LOG_DEBUG, "Creating T.38 packet handler"); t38_media->t38_handler = __handler_new(NULL, t38_media, NULL); t38_media->t38_handler->handler_func = handler_func_t38; } static int packet_encoded_t38(encoder_t *enc, void *u1, void *u2) { struct media_packet *mp = u2; if (!mp->media) return 0; return t38_gateway_input_samples(mp->media->t38_gateway, (int16_t *) enc->avpkt->data, enc->avpkt->size / 2); } static void __generator_stop(struct call_media *media) { if (media->t38_gateway) { t38_gateway_stop(media->t38_gateway); t38_gateway_put(&media->t38_gateway); } } static void __generator_stop_all(struct call_media *media) { __generator_stop(media); audio_player_stop(media); } static void __t38_options_from_flags(struct t38_options *t_opts, const sdp_ng_flags *flags) { #define t38_opt(name) t_opts->name = flags ? flags->t38_ ## name : 0 t38_opt(no_ecm); t38_opt(no_v17); t38_opt(no_v27ter); t38_opt(no_v29); t38_opt(no_v34); t38_opt(no_iaf); } static void __check_t38_gateway(struct call_media *pcm_media, struct call_media *t38_media, const struct stream_params *sp, const sdp_ng_flags *flags) { struct t38_options t_opts = {0,}; if (sp) t_opts = sp->t38_options; else { // create our own options if (flags && flags->t38_fec) t_opts.fec_span = 3; t_opts.max_ec_entries = 3; } __t38_options_from_flags(&t_opts, flags); MEDIA_SET(pcm_media, GENERATOR); MEDIA_SET(t38_media, GENERATOR); if (t38_gateway_pair(t38_media, pcm_media, &t_opts)) return; // need a packet handler on the T.38 side __check_t38_decoder(t38_media); // for each codec type supported by the pcm_media, we create a codec handler that // links to the T.38 encoder for (__auto_type l = pcm_media->codecs.codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; struct codec_handler *handler = __get_pt_handler(pcm_media, pt, t38_media); if (!pt->codec_def) { // should not happen ilogs(codec, LOG_WARN, "Unsupported codec " STR_FORMAT "/" STR_FORMAT " for T.38 transcoding", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); continue; } ilogs(codec, LOG_DEBUG, "Creating T.38 encoder for " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); __make_transcoder(handler, &pcm_media->t38_gateway->pcm_pt, NULL, -1, false, -1); handler->packet_decoded = packet_decoded_direct; handler->packet_encoded = packet_encoded_t38; } } // call must be locked in W static int codec_handler_udptl_update(struct call_media *receiver, struct call_media *sink, const sdp_ng_flags *flags) { // anything to do? if (proto_is(sink->protocol, PROTO_UDPTL)) return 0; if (sink->type_id == MT_AUDIO && proto_is_rtp(sink->protocol) && receiver->type_id == MT_IMAGE) { if (!str_cmp(&receiver->format_str, "t38")) { __check_t38_gateway(sink, receiver, NULL, flags); return 1; } } ilogs(codec, LOG_WARN, "Unsupported non-RTP protocol: " STR_FORMAT "/" STR_FORMAT " -> " STR_FORMAT "/" STR_FORMAT, STR_FMT(&receiver->type), STR_FMT(&receiver->format_str), STR_FMT(&sink->type), STR_FMT(&sink->format_str)); return 0; } // call must be locked in W // for transcoding RTP types to non-RTP static int codec_handler_non_rtp_update(struct call_media *receiver, struct call_media *sink, const sdp_ng_flags *flags, const struct stream_params *sp) { if (proto_is(sink->protocol, PROTO_UDPTL) && !str_cmp(&sink->format_str, "t38")) { __check_t38_gateway(receiver, sink, sp, flags); return 1; } ilogs(codec, LOG_WARN, "Unsupported non-RTP protocol: " STR_FORMAT "/" STR_FORMAT " -> " STR_FORMAT "/" STR_FORMAT, STR_FMT(&receiver->type), STR_FMT(&receiver->format_str), STR_FMT(&sink->type), STR_FMT(&sink->format_str)); return 0; } static void __rtcp_timer_free(void *p) { struct rtcp_timer *rt = p; if (rt->call) obj_put(rt->call); } static void __rtcp_timer_run(struct codec_timer *); // master lock held in W static void __codec_rtcp_timer_schedule(struct call_media *media) { struct rtcp_timer *rt = media->rtcp_timer; if (!rt) { media->rtcp_timer = rt = obj_alloc0("rtcp_timer", sizeof(*rt), __rtcp_timer_free); rt->ct.tt_obj.tt = &codec_timers_thread; rt->call = obj_get(media->call); rt->media = media; rt->ct.next = rtpe_now; rt->ct.timer_func = __rtcp_timer_run; } timeval_add_usec(&rt->ct.next, rtpe_config.rtcp_interval * 1000 + (ssl_random() % 1000000)); timerthread_obj_schedule_abs(&rt->ct.tt_obj, &rt->ct.next); } // no lock held static void __rtcp_timer_run(struct codec_timer *ct) { struct rtcp_timer *rt = (void *) ct; // check scheduling rwlock_lock_w(&rt->call->master_lock); struct call_media *media = rt->media; log_info_media(media); if (media->rtcp_timer != rt || !proto_is_rtp(media->protocol) || !MEDIA_ISSET(media, RTCP_GEN)) { if (media->rtcp_timer == rt) rtcp_timer_stop(&media->rtcp_timer); rwlock_unlock_w(&rt->call->master_lock); goto out; } __codec_rtcp_timer_schedule(media); // switch locks to be more graceful rwlock_unlock_w(&rt->call->master_lock); rwlock_lock_r(&rt->call->master_lock); // copy out references to SSRCs for lock-free handling struct ssrc_ctx *ssrc_out[RTPE_NUM_SSRC_TRACKING] = {NULL,}; if (media->streams.head) { struct packet_stream *ps = media->streams.head->data; mutex_lock(&ps->out_lock); for (unsigned int u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) { if (!ps->ssrc_out[u]) // end of list break; ssrc_out[u] = ps->ssrc_out[u]; ssrc_ctx_hold(ssrc_out[u]); } mutex_unlock(&ps->out_lock); } for (unsigned int u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) { if (!ssrc_out[u]) // end of list break; // coverity[use : FALSE] rtcp_send_report(media, ssrc_out[u]); } rwlock_unlock_r(&rt->call->master_lock); for (unsigned int u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) { if (!ssrc_out[u]) // end of list break; ssrc_ctx_put(&ssrc_out[u]); } out: log_info_pop(); } // master lock held in W static void __codec_rtcp_timer(struct call_media *receiver) { if (receiver->rtcp_timer) // already scheduled return; __codec_rtcp_timer_schedule(receiver); // XXX unify with media player into a generic RTCP player } static unsigned int __codec_handler_hash(const struct codec_handler *h) { return h->source_pt.payload_type ^ GPOINTER_TO_UINT(h->sink); } static int __codec_handler_eq(const struct codec_handler *h, const struct codec_handler *j) { return h->source_pt.payload_type == j->source_pt.payload_type && h->sink == j->sink; } TYPED_GHASHTABLE_IMPL(codec_handlers_ht, __codec_handler_hash, __codec_handler_eq, NULL, NULL) /** * receiver - media / sink - other_media * call must be locked in W */ void __codec_handlers_update(struct call_media *receiver, struct call_media *sink, struct chu_args a) { struct call_monologue *monologue = receiver->monologue; struct call_monologue *other_monologue = sink->monologue; if (!monologue || !other_monologue) return; /* required for updating the transcoding attrs of subscriber */ struct media_subscription * ms = call_get_media_subscription(receiver->media_subscribers_ht, sink); ilogs(codec, LOG_DEBUG, "Setting up codec handlers for " STR_FORMAT_M " #%u -> " STR_FORMAT_M " #%u", STR_FMT_M(&monologue->tag), receiver->index, STR_FMT_M(&other_monologue->tag), sink->index); if (a.reset_transcoding && ms) ms->attrs.transcoding = 0; MEDIA_CLEAR(receiver, GENERATOR); MEDIA_CLEAR(sink, GENERATOR); if (!t_hash_table_is_set(receiver->codec_handlers)) receiver->codec_handlers = codec_handlers_ht_new(); if (!t_hash_table_is_set(sink->codec_handlers)) sink->codec_handlers = codec_handlers_ht_new(); // non-RTP protocol? if (proto_is(receiver->protocol, PROTO_UDPTL)) { if (codec_handler_udptl_update(receiver, sink, a.flags)) { if (a.reset_transcoding && ms) ms->attrs.transcoding = 1; return; } } // everything else is unsupported: pass through if (proto_is_not_rtp(receiver->protocol)) { __generator_stop_all(receiver); __generator_stop_all(sink); codec_handlers_stop(&receiver->codec_handlers_store, sink); return; } // should we transcode to a non-RTP protocol? if (proto_is_not_rtp(sink->protocol)) { if (codec_handler_non_rtp_update(receiver, sink, a.flags, a.sp)) { if (a.reset_transcoding && ms) ms->attrs.transcoding = 1; return; } } // we're doing some kind of media passthrough - shut down local generators __generator_stop(receiver); __generator_stop(sink); codec_handlers_stop(&receiver->codec_handlers_store, sink); bool is_transcoding = false; receiver->rtcp_handler = NULL; receiver->dtmf_count = 0; GSList *passthrough_handlers = NULL; // default choice of audio player usage is based on whether it was in use previously, // overridden by signalling flags, overridden by global option bool use_audio_player = !!MEDIA_ISSET(sink, AUDIO_PLAYER); bool implicit_audio_player = false; if (a.flags && a.flags->audio_player == AP_FORCE) use_audio_player = true; else if (a.flags && a.flags->audio_player == AP_OFF) use_audio_player = false; else if (rtpe_config.use_audio_player == UAP_ALWAYS) use_audio_player = true; else if (rtpe_config.use_audio_player == UAP_PLAY_MEDIA) { // check for implicitly enabled player if ((a.flags && a.flags->opmode == OP_PLAY_MEDIA) || (media_player_is_active(other_monologue))) { use_audio_player = true; implicit_audio_player = true; } } // first gather info about what we can send g_autoptr(GHashTable) supplemental_sinks = NULL; rtp_payload_type *pref_dest_codec = NULL; __check_codec_list(&supplemental_sinks, &pref_dest_codec, sink, &sink->codecs.codec_prefs); // then do the same with what we can receive g_autoptr(GHashTable) supplemental_recvs = NULL; __check_codec_list(&supplemental_recvs, NULL, receiver, &receiver->codecs.codec_prefs); // if multiple input codecs transcode to the same output codec, we want to make sure // that all the decoders output their media to the same encoder. we use the destination // payload type to keep track of this. g_autoptr(GHashTable) output_transcoders = g_hash_table_new(g_direct_hash, g_direct_equal); enum block_dtmf_mode dtmf_block_mode = dtmf_get_block_mode(NULL, monologue); bool do_pcm_dtmf_blocking = is_pcm_dtmf_block_mode(dtmf_block_mode); bool do_dtmf_blocking = is_dtmf_replace_mode(dtmf_block_mode); if (monologue->dtmf_delay) // received DTMF must be replaced by silence initially, therefore: do_pcm_dtmf_blocking = true; bool do_dtmf_detect = false; if (monologue->num_dtmf_triggers) do_dtmf_detect = true; if (a.flags && a.flags->inject_dtmf) ML_SET(other_monologue, INJECT_DTMF); bool use_ssrc_passthrough = MEDIA_ISSET(receiver, ECHO) || ML_ISSET(other_monologue, INJECT_DTMF); // do we have to force everything through the transcoding engine even if codecs match? bool force_transcoding = do_pcm_dtmf_blocking || do_dtmf_blocking || use_audio_player; for (__auto_type l = receiver->codecs.codec_prefs.head; l; ) { rtp_payload_type *pt = l->data; rtp_payload_type *sink_pt = NULL; ilogs(codec, LOG_DEBUG, "Checking receiver codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_full_params), STR_FMT0(&pt->format_parameters), pt->payload_type); struct codec_handler *handler = __get_pt_handler(receiver, pt, sink); // check our own support for this codec if (!pt->codec_def) { // not supported ilogs(codec, LOG_DEBUG, "No codec support for " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); __make_passthrough_gsl(handler, &passthrough_handlers, NULL, NULL, use_ssrc_passthrough); goto next; } // fill matching supp codecs rtp_payload_type *recv_dtmf_pt = __supp_payload_type(supplemental_recvs, pt->clock_rate, "telephone-event"); rtp_payload_type *recv_cn_pt = __supp_payload_type(supplemental_recvs, pt->clock_rate, "CN"); bool pcm_dtmf_detect = false; // find the matching sink codec if (!sink_pt) { // can we send the same codec that we want to receive? sink_pt = t_hash_table_lookup(sink->codecs.codecs, GINT_TO_POINTER(pt->payload_type)); // is it actually the same? if (sink_pt && !rtp_payload_type_eq_compat(pt, sink_pt)) sink_pt = NULL; } if (!sink_pt) { // no matching/identical output codec. maybe we have the same output codec, // but with a different payload type or a different format? if (!a.allow_asymmetric) sink_pt = codec_store_find_compatible(&sink->codecs, pt); else sink_pt = pt; } if (sink_pt && !pt->codec_def->supplemental) { // we have a matching output codec. do we actually want to use it, or // do we want to transcode to something else? // ignore the preference here - for now, all `for_transcoding` codecs // take preference if (pref_dest_codec && pref_dest_codec->for_transcoding) sink_pt = pref_dest_codec; } // ignore DTMF sink if we're blocking DTMF in PCM replacement mode if (do_pcm_dtmf_blocking && sink_pt && sink_pt->codec_def && sink_pt->codec_def->dtmf) sink_pt = NULL; // still no output? pick the preferred sink codec if (!sink_pt) sink_pt = pref_dest_codec; if (!sink_pt) { ilogs(codec, LOG_DEBUG, "No suitable output codec for " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); __make_passthrough_gsl(handler, &passthrough_handlers, recv_dtmf_pt, recv_cn_pt, use_ssrc_passthrough); goto next; } // sink_pt has been determined here now. ilogs(codec, LOG_DEBUG, "Sink codec for " STR_FORMAT "/" STR_FORMAT " is " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_full_params), STR_FMT0(&sink_pt->format_parameters), sink_pt->payload_type); sink_pt_fixed:; // we have found a usable output codec. gather matching output supp codecs rtp_payload_type *sink_dtmf_pt = NULL; rtp_payload_type *sink_cn_pt = NULL; if (!a.allow_asymmetric) { sink_dtmf_pt = __supp_payload_type(supplemental_sinks, sink_pt->clock_rate, "telephone-event"); sink_cn_pt = __supp_payload_type(supplemental_sinks, sink_pt->clock_rate, "CN"); } else { sink_dtmf_pt = recv_dtmf_pt; sink_cn_pt = recv_cn_pt; } rtp_payload_type *real_sink_dtmf_pt = NULL; // for DTMF delay // XXX synthesise missing supp codecs according to codec tracker XXX needed? if (!a.flags) { // second pass going through the offerer codecs during an answer: // if an answer rejected a supplemental codec that isn't marked for transcoding, // reject it on the sink side as well if (sink_dtmf_pt && !recv_dtmf_pt && !sink_dtmf_pt->for_transcoding) sink_dtmf_pt = NULL; if (sink_cn_pt && !recv_cn_pt && !sink_cn_pt->for_transcoding) sink_cn_pt = NULL; } // do we need DTMF detection? if (!pt->codec_def->supplemental && !recv_dtmf_pt && sink_dtmf_pt && sink_dtmf_pt->for_transcoding) pcm_dtmf_detect = true; if (ML_ISSET(monologue, DETECT_DTMF)) pcm_dtmf_detect = true; // special mode for DTMF blocking if (do_pcm_dtmf_blocking) { real_sink_dtmf_pt = sink_dtmf_pt; // remember for DTMF delay sink_dtmf_pt = NULL; // always transcode DTMF to PCM // enable DSP if we expect DTMF to be carried as PCM if (!recv_dtmf_pt) pcm_dtmf_detect = true; } else if (do_dtmf_blocking && !pcm_dtmf_detect) { // we only need the DSP if there's no DTMF payload present, as otherwise // we expect DTMF event packets if (!recv_dtmf_pt) pcm_dtmf_detect = true; } // same logic if we need to detect DTMF if (do_dtmf_detect && !pcm_dtmf_detect) { if (!recv_dtmf_pt) pcm_dtmf_detect = true; } if (pcm_dtmf_detect) { if (sink_dtmf_pt) ilogs(codec, LOG_DEBUG, "Enabling PCM DTMF detection from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT "/" STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_params), STR_FMT0(&sink_pt->format_parameters), STR_FMT(&sink_dtmf_pt->encoding_with_params), STR_FMT0(&sink_dtmf_pt->format_parameters)); else ilogs(codec, LOG_DEBUG, "Enabling PCM DTMF detection from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_params), STR_FMT0(&sink_pt->format_parameters)); } // we can now decide whether we can do passthrough, or transcode // different codecs? this will only be true for non-supplemental codecs if (!a.allow_asymmetric && pt->payload_type != sink_pt->payload_type) goto transcode; if (!rtp_payload_type_fmt_eq_nf(pt, sink_pt)) goto transcode; // supplemental codecs are always matched up. we want them as passthrough if // possible. skip checks that are only applicable for real codecs if (!pt->codec_def->supplemental) { // different ptime? if (sink_pt->ptime && pt->ptime && sink_pt->ptime != pt->ptime) { if (MEDIA_ISSET(sink, PTIME_OVERRIDE) || MEDIA_ISSET(receiver, PTIME_OVERRIDE)) { ilogs(codec, LOG_DEBUG, "Mismatched ptime between source and sink (%i <> %i), " "enabling transcoding", sink_pt->ptime, pt->ptime); goto transcode; } ilogs(codec, LOG_DEBUG, "Mismatched ptime between source and sink (%i <> %i), " "but no override requested", sink_pt->ptime, pt->ptime); } if (force_transcoding) goto transcode; // compare supplemental codecs // DTMF if (pcm_dtmf_detect) goto transcode; if (recv_dtmf_pt && (recv_dtmf_pt->for_transcoding || do_pcm_dtmf_blocking) && !sink_dtmf_pt) { ilogs(codec, LOG_DEBUG, "Transcoding DTMF events to PCM from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_params), STR_FMT0(&sink_pt->format_parameters)); goto transcode; } // CN if (!recv_cn_pt && sink_cn_pt && sink_cn_pt->for_transcoding) { ilogs(codec, LOG_DEBUG, "Enabling CN silence detection from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT "/" STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_params), STR_FMT0(&sink_pt->format_parameters), STR_FMT(&sink_cn_pt->encoding_with_params), STR_FMT0(&sink_cn_pt->format_parameters)); goto transcode; } if (recv_cn_pt && recv_cn_pt->for_transcoding && !sink_cn_pt) { ilogs(codec, LOG_DEBUG, "Transcoding CN packets to PCM from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT, STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&sink_pt->encoding_with_params), STR_FMT0(&sink_pt->format_parameters)); goto transcode; } } // force transcoding if we want DTMF injection and there's no DTMF PT if (!sink_dtmf_pt && ML_ISSET(other_monologue, INJECT_DTMF)) goto transcode; // everything matches - we can do passthrough ilogs(codec, LOG_DEBUG, "Sink supports codec " STR_FORMAT "/" STR_FORMAT " (%i) for passthrough (to %i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type, sink_pt->payload_type); __make_passthrough_gsl(handler, &passthrough_handlers, sink_dtmf_pt, sink_cn_pt, use_ssrc_passthrough); goto next; transcode: // enable audio player if not explicitly disabled if (rtpe_config.use_audio_player == UAP_TRANSCODING && (!a.flags || a.flags->audio_player != AP_OFF)) use_audio_player = true; else if (a.flags && a.flags->audio_player == AP_TRANSCODING) use_audio_player = true; if (use_audio_player) { // when using the audio player, everything must decode to the same // format that is appropriate for the audio player if (sink_pt != pref_dest_codec && pref_dest_codec) { ilogs(codec, LOG_DEBUG, "Switching sink codec for " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT " (%i) due to usage of audio player", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&pref_dest_codec->encoding_with_full_params), STR_FMT0(&pref_dest_codec->format_parameters), pref_dest_codec->payload_type); sink_pt = pref_dest_codec; force_transcoding = true; goto sink_pt_fixed; } } // look up the reverse side of this payload type, which is the decoder to our // encoder. if any codec options such as bitrate were set during an offer, // they're in the decoder PT. copy them to the encoder PT. rtp_payload_type *reverse_pt = t_hash_table_lookup(sink->codecs.codecs, GINT_TO_POINTER(sink_pt->payload_type)); if (reverse_pt) { if (!sink_pt->bitrate) sink_pt->bitrate = reverse_pt->bitrate; if (!sink_pt->codec_opts.len) { str_free_dup(&sink_pt->codec_opts); str_init_dup_str(&sink_pt->codec_opts, &reverse_pt->codec_opts); } } is_transcoding = true; if (!use_audio_player) __make_transcoder(handler, sink_pt, output_transcoders, sink_dtmf_pt ? sink_dtmf_pt->payload_type : -1, pcm_dtmf_detect, sink_cn_pt ? sink_cn_pt->payload_type : -1); else __make_audio_player_decoder(handler, sink_pt, pcm_dtmf_detect); // for DTMF delay: we pretend that there is no output DTMF payload type (sink_dtmf_pt == NULL) // so that DTMF is converted to audio (so it can be replaced with silence). we still want // to output DTMF event packets when we can though, so we need to remember the DTMF payload // type here. handler->real_dtmf_payload_type = real_sink_dtmf_pt ? real_sink_dtmf_pt->payload_type : -1; __check_dtmf_injector(receiver, sink, handler, output_transcoders); next: l = l->next; } if (!use_audio_player) { MEDIA_CLEAR(sink, AUDIO_PLAYER); audio_player_stop(sink); } else if (!implicit_audio_player) MEDIA_SET(sink, AUDIO_PLAYER); if (is_transcoding) { if (a.reset_transcoding && ms) ms->attrs.transcoding = 1; for (__auto_type l = receiver->codecs.codec_prefs.head; l; ) { rtp_payload_type *pt = l->data; if (pt->codec_def) { // supported l = l->next; continue; } ilogs(codec, LOG_DEBUG, "Stripping unsupported codec " STR_FORMAT " due to active transcoding", STR_FMT(&pt->encoding)); codec_touched(&receiver->codecs, pt); l = __codec_store_delete_link(l, &receiver->codecs); } if (!use_audio_player) { // we have to translate RTCP packets receiver->rtcp_handler = rtcp_transcode_handler; // at least some payload types will be transcoded, which will result in SSRC // change. for payload types which we don't actually transcode, we still // must substitute the SSRC while (passthrough_handlers) { struct codec_handler *handler = passthrough_handlers->data; __convert_passthrough_ssrc(handler); passthrough_handlers = g_slist_delete_link(passthrough_handlers, passthrough_handlers); } } else { receiver->rtcp_handler = rtcp_sink_handler; MEDIA_CLEAR(receiver, RTCP_GEN); // change all passthrough handlers also to transcoders while (passthrough_handlers) { struct codec_handler *handler = passthrough_handlers->data; if (!__make_audio_player_decoder(handler, pref_dest_codec, false)) __convert_passthrough_ssrc(handler); passthrough_handlers = g_slist_delete_link(passthrough_handlers, passthrough_handlers); } audio_player_setup(sink, pref_dest_codec, rtpe_config.audio_buffer_length, rtpe_config.audio_buffer_delay); if (a.flags && (a.flags->early_media || a.flags->opmode == OP_ANSWER)) audio_player_activate(sink); } } g_slist_free(passthrough_handlers); if (MEDIA_ISSET(receiver, RTCP_GEN)) { receiver->rtcp_handler = rtcp_sink_handler; __codec_rtcp_timer(receiver); } if (MEDIA_ISSET(sink, RTCP_GEN)) { sink->rtcp_handler = rtcp_sink_handler; __codec_rtcp_timer(sink); } } static struct codec_handler *codec_handler_get_rtp(struct call_media *m, int payload_type, struct call_media *sink) { struct codec_handler *h; if (payload_type < 0) return NULL; struct codec_handler lookup = __codec_handler_lookup_struct(payload_type, sink); h = g_atomic_pointer_get(&m->codec_handler_cache); if (G_LIKELY(h) && G_LIKELY(__codec_handler_eq(&lookup, h))) return h; if (G_UNLIKELY(!t_hash_table_is_set(m->codec_handlers))) return NULL; h = t_hash_table_lookup(m->codec_handlers, &lookup); if (!h) return NULL; g_atomic_pointer_set(&m->codec_handler_cache, h); return h; } static struct codec_handler *codec_handler_get_udptl(struct call_media *m) { if (m->t38_handler) return m->t38_handler; return NULL; } #endif static void __mqtt_timer_free(void *p) { struct mqtt_timer *mqt = p; if (mqt->call) obj_put(mqt->call); } static void __codec_mqtt_timer_schedule(struct mqtt_timer *mqt); INLINE bool __mqtt_timer_common_call(struct mqtt_timer *mqt) { call_t *call = mqt->call; rwlock_lock_w(&call->master_lock); if (!*mqt->self) { rwlock_unlock_w(&call->master_lock); return false; } log_info_call(call); __codec_mqtt_timer_schedule(mqt); rwlock_unlock_w(&call->master_lock); return true; } static void __mqtt_timer_run_media(struct codec_timer *ct) { struct mqtt_timer *mqt = (struct mqtt_timer *) ct; if (!__mqtt_timer_common_call(mqt)) return; mqtt_timer_run_media(mqt->call, mqt->media); log_info_pop(); } static void __mqtt_timer_run_call(struct codec_timer *ct) { struct mqtt_timer *mqt = (struct mqtt_timer *) ct; if (!__mqtt_timer_common_call(mqt)) return; mqtt_timer_run_call(mqt->call); log_info_pop(); } static void __mqtt_timer_run_global(struct codec_timer *ct) { struct mqtt_timer *mqt = (struct mqtt_timer *) ct; if (!*mqt->self) return; __codec_mqtt_timer_schedule(mqt); mqtt_timer_run_global(); } static void __mqtt_timer_run_summary(struct codec_timer *ct) { struct mqtt_timer *mqt = (struct mqtt_timer *) ct; if (!*mqt->self) return; __codec_mqtt_timer_schedule(mqt); mqtt_timer_run_summary(); } static void __codec_mqtt_timer_schedule(struct mqtt_timer *mqt) { timeval_add_usec(&mqt->ct.next, rtpe_config.mqtt_publish_interval * 1000); timerthread_obj_schedule_abs(&mqt->ct.tt_obj, &mqt->ct.next); } // master lock held in W void mqtt_timer_start(struct mqtt_timer **mqtp, call_t *call, struct call_media *media) { if (*mqtp) // already scheduled return; struct mqtt_timer *mqt = *mqtp = obj_alloc0("mqtt_timer", sizeof(*mqt), __mqtt_timer_free); mqt->ct.tt_obj.tt = &codec_timers_thread; mqt->call = call ? obj_get(call) : NULL; mqt->self = mqtp; mqt->media = media; mqt->ct.next = rtpe_now; if (media) mqt->ct.timer_func = __mqtt_timer_run_media; else if (call) mqt->ct.timer_func = __mqtt_timer_run_call; else { // global or summary mqt->ct.timer_func = mqtt_publish_scope() == MPS_GLOBAL ? __mqtt_timer_run_global : __mqtt_timer_run_summary; } __codec_mqtt_timer_schedule(mqt); } // master lock held in W static void codec_timer_stop(struct codec_timer **ctp) { if (!ctp || !*ctp) return; obj_put(&(*ctp)->tt_obj); *ctp = NULL; } // master lock held in W void rtcp_timer_stop(struct rtcp_timer **rtp) { codec_timer_stop((struct codec_timer **) rtp); } void mqtt_timer_stop(struct mqtt_timer **mqtp) { codec_timer_stop((struct codec_timer **) mqtp); } // call must be locked in R struct codec_handler *codec_handler_get(struct call_media *m, int payload_type, struct call_media *sink, struct sink_handler *sh) { #ifdef WITH_TRANSCODING struct codec_handler *ret = NULL; if (!m->protocol) goto out; if (m->protocol->rtp) ret = codec_handler_get_rtp(m, payload_type, sink); else if (m->protocol->index == PROTO_UDPTL) ret = codec_handler_get_udptl(m); out: if (ret) return ret; if (sh && sh->attrs.transcoding) return &codec_handler_stub_ssrc; #endif return &codec_handler_stub; } void codec_handlers_free(struct call_media *m) { codec_handlers_ht_destroy_ptr(&m->codec_handlers); m->codec_handler_cache = NULL; #ifdef WITH_TRANSCODING t_queue_clear_full(&m->codec_handlers_store, __codec_handler_free); #endif } static void codec_add_raw_packet_common(struct media_packet *mp, unsigned int clockrate, struct codec_packet *p) { p->clockrate = clockrate; if (mp->rtp && mp->ssrc_out) { ssrc_ctx_hold(mp->ssrc_out); p->ssrc_out = mp->ssrc_out; if (!p->rtp) p->rtp = mp->rtp; } t_queue_push_tail(&mp->packets_out, p); } void codec_add_raw_packet(struct media_packet *mp, unsigned int clockrate) { struct codec_packet *p = g_slice_alloc0(sizeof(*p)); p->s = mp->raw; p->free_func = NULL; codec_add_raw_packet_common(mp, clockrate, p); } #ifdef WITH_TRANSCODING static void codec_add_raw_packet_dup(struct media_packet *mp, unsigned int clockrate) { struct codec_packet *p = g_slice_alloc0(sizeof(*p)); // don't just duplicate the string. need to ensure enough room // if encryption is enabled on this stream p->s.s = bufferpool_alloc(media_bufferpool, mp->raw.len + RTP_BUFFER_TAIL_ROOM); memcpy(p->s.s, mp->raw.s, mp->raw.len); p->s.len = mp->raw.len; p->free_func = bufferpool_unref; p->rtp = (struct rtp_header *) p->s.s; codec_add_raw_packet_common(mp, clockrate, p); } #endif static bool handler_silence_block(struct codec_handler *h, struct media_packet *mp) { if (CALL_ISSET(mp->call, BLOCK_MEDIA) || ML_ISSET(mp->media->monologue, BLOCK_MEDIA) || mp->sink.attrs.block_media || MEDIA_ISSET(mp->media_out, BLOCK_EGRESS)) return false; if (CALL_ISSET(mp->call, SILENCE_MEDIA) || ML_ISSET(mp->media->monologue, SILENCE_MEDIA) || mp->sink.attrs.silence_media) { if (h->source_pt.codec_def && h->source_pt.codec_def->silence_pattern.len) { if (h->source_pt.codec_def->silence_pattern.len == 1) memset(mp->payload.s, h->source_pt.codec_def->silence_pattern.s[0], mp->payload.len); else { for (size_t pos = 0; pos < mp->payload.len; pos += h->source_pt.codec_def->silence_pattern.len) memcpy(&mp->payload.s[pos], h->source_pt.codec_def->silence_pattern.s, h->source_pt.codec_def->silence_pattern.len); } } } return true; } static int handler_func_passthrough(struct codec_handler *h, struct media_packet *mp) { if (!handler_silence_block(h, mp)) return 0; uint32_t ts = 0; if (mp->rtp) { ts = ntohl(mp->rtp->timestamp); codec_calc_jitter(mp->ssrc_in, ts, h->source_pt.clock_rate, &mp->tv); codec_calc_lost(mp->ssrc_in, ntohs(mp->rtp->seq_num)); if (ML_ISSET(mp->media->monologue, BLOCK_SHORT) && h->source_pt.codec_def && h->source_pt.codec_def->fixed_sizes) { if (!h->payload_len) h->payload_len = mp->payload.len; else if (mp->payload.len < h->payload_len) return 0; } } ML_CLEAR(mp->media->monologue, DTMF_INJECTION_ACTIVE); __buffer_delay_raw(h->delay_buffer, h, codec_add_raw_packet, mp, h->source_pt.clock_rate); return 0; } #ifdef WITH_TRANSCODING static void __ssrc_lock_both(struct media_packet *mp) { struct ssrc_ctx *ssrc_in = mp->ssrc_in; struct ssrc_entry_call *ssrc_in_p = ssrc_in->parent; struct ssrc_ctx *ssrc_out = mp->ssrc_out; struct ssrc_entry_call *ssrc_out_p = ssrc_out->parent; // we need a nested lock here - both input and output SSRC needs to be locked. // we don't know the lock order, so try both, and keep trying until we succeed. while (1) { mutex_lock(&ssrc_in_p->h.lock); if (ssrc_in_p == ssrc_out_p) break; if (!mutex_trylock(&ssrc_out_p->h.lock)) break; mutex_unlock(&ssrc_in_p->h.lock); mutex_lock(&ssrc_out_p->h.lock); if (!mutex_trylock(&ssrc_in_p->h.lock)) break; mutex_unlock(&ssrc_out_p->h.lock); } } static void __ssrc_unlock_both(struct media_packet *mp) { struct ssrc_ctx *ssrc_in = mp->ssrc_in; struct ssrc_entry_call *ssrc_in_p = ssrc_in->parent; struct ssrc_ctx *ssrc_out = mp->ssrc_out; struct ssrc_entry_call *ssrc_out_p = ssrc_out->parent; mutex_unlock(&ssrc_in_p->h.lock); if (ssrc_in_p != ssrc_out_p) mutex_unlock(&ssrc_out_p->h.lock); } static void __seq_free(void *p) { packet_sequencer_t *seq = p; packet_sequencer_destroy(seq); g_slice_free1(sizeof(*seq), seq); } static int __handler_func_sequencer(struct media_packet *mp, struct transcode_packet *packet) { struct codec_handler *h = packet->handler; if (G_UNLIKELY(!h->ssrc_hash)) { if (!packet->packet_func || !h->input_handler->ssrc_hash) { h->handler_func(h, mp); __transcode_packet_free(packet); return 0; } } struct ssrc_ctx *ssrc_in = mp->ssrc_in; struct ssrc_entry_call *ssrc_in_p = ssrc_in->parent; struct ssrc_ctx *ssrc_out = mp->ssrc_out; struct ssrc_entry_call *ssrc_out_p = ssrc_out->parent; struct codec_ssrc_handler *ch = get_ssrc(ssrc_in_p->h.ssrc, h->ssrc_hash); if (G_UNLIKELY(!ch)) { __transcode_packet_free(packet); return 0; } // save RTP pointer - we clobber it below XXX this shouldn't be necessary to do struct rtp_header *orig_rtp = mp->rtp; packet->p.seq = ntohs(mp->rtp->seq_num); packet->payload = str_dup(&mp->payload); uint32_t packet_ts = ntohl(mp->rtp->timestamp); packet->ts = packet_ts; packet->marker = (mp->rtp->m_pt & 0x80) ? 1 : 0; atomic64_inc_na(&ssrc_in->stats->packets); atomic64_add_na(&ssrc_in->stats->bytes, mp->payload.len); atomic64_inc_na(&mp->sfd->local_intf->stats->in.packets); atomic64_add_na(&mp->sfd->local_intf->stats->in.bytes, mp->payload.len); struct codec_ssrc_handler *input_ch = get_ssrc(ssrc_in_p->h.ssrc, h->input_handler->ssrc_hash); if (packet->bypass_seq) { // bypass sequencer __ssrc_lock_both(mp); tc_code code = packet->packet_func(ch, input_ch ?: ch, packet, mp); if (code != TCC_CONSUMED) __transcode_packet_free(packet); goto out; } if (G_UNLIKELY(!input_ch)) { __transcode_packet_free(packet); goto out_ch; } __ssrc_lock_both(mp); // get sequencer appropriate for our output if (!ssrc_in_p->sequencers) ssrc_in_p->sequencers = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, __seq_free); packet_sequencer_t *seq = g_hash_table_lookup(ssrc_in_p->sequencers, mp->media_out); if (!seq) { seq = g_slice_alloc0(sizeof(*seq)); packet_sequencer_init(seq, (GDestroyNotify) __transcode_packet_free); g_hash_table_insert(ssrc_in_p->sequencers, mp->media_out, seq); } uint16_t seq_ori = seq->seq; int seq_ret = packet_sequencer_insert(seq, &packet->p); if (seq_ret < 0) { // dupe int func_ret = 0; if (packet->dup_func) func_ret = packet->dup_func(ch, input_ch, packet, mp); else ilogs(transcoding, LOG_DEBUG, "Ignoring duplicate RTP packet"); if (func_ret != 1) __transcode_packet_free(packet); ssrc_in_p->duplicates++; atomic64_inc_na(&mp->sfd->local_intf->stats->s.duplicates); RTPE_STATS_INC(rtp_duplicates); goto out; } if (seq_ret == 1) RTPE_STATS_INC(rtp_seq_resets); else if (seq_ret == 2) RTPE_STATS_INC(rtp_reordered); // got a new packet, run decoder while (1) { tc_code func_ret = TCC_OK; packet = packet_sequencer_next_packet(seq); if (G_UNLIKELY(!packet)) { if (!ch || !h->dest_pt.clock_rate || !ch->handler || !h->dest_pt.codec_def) break; uint32_t ts_diff = packet_ts - ch->csch.last_ts; // if packet TS is larger than last tracked TS, we can force the next packet if packets were lost and the TS // difference is too large. if packet TS is the same or lower (can happen for supplement codecs) we can wait // for the next packet if (ts_diff == 0 || ts_diff >= 0x80000000) break; unsigned long long ts_diff_us = (unsigned long long) ts_diff * 1000000 / h->dest_pt.clock_rate; if (ts_diff_us >= 60000) { // arbitrary value packet = packet_sequencer_force_next_packet(seq); if (!packet) break; ilogs(transcoding, LOG_DEBUG, "Timestamp difference too large (%llu ms) after lost packet, " "forcing next packet", ts_diff_us / 1000); RTPE_STATS_INC(rtp_skips); } else break; } if (ch) { uint32_t ts_diff = ch->csch.last_ts - packet->ts; if (ts_diff < 0x80000000) { // ch->last_ts >= packet->ts // multiple consecutive packets with same TS: this could be a compound packet, e.g. a large video frame, or // it could be a supplemental audio codec with static timestamps, in which case we adjust the TS forward // by one frame length. This is needed so that the next real audio packet (with real TS) is not mistakenly // seen as overdue if (h->source_pt.codec_def && h->source_pt.codec_def->supplemental) ch->csch.last_ts += h->source_pt.clock_rate * (ch->ptime ?: 20) / 1000; } else ch->csch.last_ts = packet->ts; if (input_ch) input_ch->csch.last_ts = ch->csch.last_ts; } // new packet might have different handlers h = packet->handler; if (ch) obj_put(&ch->h); if (input_ch) obj_put(&input_ch->h); input_ch = NULL; ch = get_ssrc(ssrc_in_p->h.ssrc, h->ssrc_hash); if (G_UNLIKELY(!ch)) goto next; input_ch = get_ssrc(ssrc_in_p->h.ssrc, h->input_handler->ssrc_hash); if (G_UNLIKELY(!input_ch)) { obj_put(&ch->h); ch = NULL; goto next; } ssrc_in_p->packets_lost = seq->lost_count; atomic_set_na(&ssrc_in->stats->ext_seq, seq->ext_seq); ilogs(transcoding, LOG_DEBUG, "Processing RTP packet: seq %u, TS %lu", packet->p.seq, packet->ts); if (seq_ret == 1) { // seq reset - update output seq. we keep our output seq clean ssrc_out_p->seq_diff -= packet->p.seq - seq_ori; seq_ret = 0; } // we might be working with a different packet now mp->rtp = &packet->rtp; func_ret = packet->packet_func(ch, input_ch, packet, mp); if (func_ret == TCC_ERR) ilogs(transcoding, LOG_WARN | LOG_FLAG_LIMIT, "Decoder error while processing RTP packet"); next: if (func_ret != TCC_CONSUMED) __transcode_packet_free(packet); } out: __ssrc_unlock_both(mp); if (input_ch) obj_put(&input_ch->h); out_ch: if (ch) obj_put(&ch->h); mp->rtp = orig_rtp; return 0; } void codec_output_rtp(struct media_packet *mp, struct codec_scheduler *csch, struct codec_handler *handler, char *buf, // bufferpool_alloc'd, room for rtp_header + filled-in payload unsigned int payload_len, unsigned long payload_ts, int marker, int seq, int seq_inc, int payload_type, unsigned long ts_delay) { struct rtp_header *rh = (void *) buf; struct ssrc_ctx *ssrc_out = mp->ssrc_out; struct ssrc_entry_call *ssrc_out_p = ssrc_out->parent; // reconstruct RTP header unsigned long ts = payload_ts; ZERO(*rh); rh->v_p_x_cc = 0x80; if (payload_type == -1) payload_type = handler->dest_pt.payload_type; rh->m_pt = payload_type | (marker ? 0x80 : 0); if (seq != -1) rh->seq_num = htons(seq); else rh->seq_num = htons(ntohs(mp->rtp->seq_num) + (ssrc_out_p->seq_diff += seq_inc)); rh->timestamp = htonl(ts); rh->ssrc = htonl(ssrc_out_p->h.ssrc); // add to output queue struct codec_packet *p = g_slice_alloc0(sizeof(*p)); p->s.s = buf; p->s.len = payload_len + sizeof(struct rtp_header); payload_tracker_add(&ssrc_out->tracker, handler->dest_pt.payload_type); p->free_func = bufferpool_unref; p->ttq_entry.source = handler; p->rtp = rh; p->ts = ts; p->clockrate = handler->dest_pt.clock_rate; ssrc_ctx_hold(ssrc_out); p->ssrc_out = ssrc_out; long long ts_diff_us = 0; // ignore scheduling if a sequence number was supplied. in that case we're just doing // passthrough forwarding (or are handling some other prepared RTP stream) and want // to send the packet out immediately. if (seq != -1) { p->ttq_entry.when = rtpe_now; goto send; } // this packet is dynamically allocated, so we're able to schedule it. // determine scheduled time to send if (csch->first_send.tv_sec && handler->dest_pt.clock_rate) { // scale first_send from first_send_ts to ts p->ttq_entry.when = csch->first_send; uint32_t ts_diff = (uint32_t) ts - (uint32_t) csch->first_send_ts; // allow for wrap-around ts_diff += ts_delay; ts_diff_us = (unsigned long long) ts_diff * 1000000 / handler->dest_pt.clock_rate; timeval_add_usec(&p->ttq_entry.when, ts_diff_us); // how far in the future is this? ts_diff_us = timeval_diff(&p->ttq_entry.when, &rtpe_now); if (ts_diff_us > 1000000 || ts_diff_us < -1000000) // more than one second, can't be right csch->first_send.tv_sec = 0; // fix it up below } if (!csch->first_send.tv_sec || !p->ttq_entry.when.tv_sec) { p->ttq_entry.when = csch->first_send = rtpe_now; csch->first_send_ts = ts; } ts_diff_us = timeval_diff(&p->ttq_entry.when, &rtpe_now); csch->output_skew = csch->output_skew * 15 / 16 + ts_diff_us / 16; if (csch->output_skew > 50000 && ts_diff_us > 10000) { // arbitrary value, 50 ms, 10 ms shift ilogs(transcoding, LOG_DEBUG, "Steady clock skew of %li.%01li ms detected, shifting send timer back by 10 ms", csch->output_skew / 1000, (csch->output_skew % 1000) / 100); timeval_add_usec(&p->ttq_entry.when, -10000); csch->output_skew -= 10000; csch->first_send_ts += handler->dest_pt.clock_rate / 100; ts_diff_us = timeval_diff(&p->ttq_entry.when, &rtpe_now); } else if (ts_diff_us < 0) { ts_diff_us *= -1; ilogs(transcoding, LOG_DEBUG, "Negative clock skew of %lli.%01lli ms detected, shifting send timer forward", ts_diff_us / 1000, (ts_diff_us % 1000) / 100); timeval_add_usec(&p->ttq_entry.when, ts_diff_us); csch->output_skew += ts_diff_us; csch->first_send_ts -= (long long) handler->dest_pt.clock_rate * ts_diff_us / 1000000; ts_diff_us = timeval_diff(&p->ttq_entry.when, &rtpe_now); // should be 0 now } send: ilogs(transcoding, LOG_DEBUG, "Scheduling to send RTP packet (seq %u TS %lu) in %s%lli.%01lli ms (at %lu.%06lu)", ntohs(rh->seq_num), ts, ts_diff_us < 0 ? "-" : "", llabs(ts_diff_us / 1000), llabs((ts_diff_us % 1000) / 100), (long unsigned) p->ttq_entry.when.tv_sec, (long unsigned) p->ttq_entry.when.tv_usec); t_queue_push_tail(&mp->packets_out, p); } // returns new reference static struct codec_ssrc_handler *__output_ssrc_handler(struct codec_ssrc_handler *ch, struct media_packet *mp) { struct codec_handler *handler = ch->handler; if (handler->output_handler == handler) { obj_get(&ch->h); return ch; } // our encoder is in a different codec handler ilogs(transcoding, LOG_DEBUG, "Switching context from decoder to encoder"); handler = handler->output_handler; struct codec_ssrc_handler *new_ch = get_ssrc(mp->ssrc_in->parent->h.ssrc, handler->ssrc_hash); if (G_UNLIKELY(!new_ch)) { ilogs(transcoding, LOG_ERR | LOG_FLAG_LIMIT, "Switched from input to output codec context, but no codec handler present"); obj_get(&ch->h); return ch; } return new_ch; } static int codec_add_dtmf_packet(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, unsigned long ts_delay, int payload_type, struct media_packet *mp) { struct codec_handler *h = ch->handler; struct codec_ssrc_handler *output_ch = NULL; // grab our underlying PCM transcoder output_ch = __output_ssrc_handler(input_ch, mp); if (G_UNLIKELY(!output_ch->encoder)) goto skip; ch->csch = output_ch->csch; // the correct output TS is the encoder's FIFO PTS at the start of the DTMF // event. however, we must shift the FIFO PTS forward as the DTMF event goes on // as the DTMF event replaces the audio samples. therefore we must remember // the TS at the start of the event and the last seen event duration. if (ch->dtmf_ts != packet->ts) { // this is a new event ch->dtmf_ts = packet->ts; // start TS ch->last_dtmf_event_ts = 0; // last DTMF event duration } unsigned long ts = fraction_divl(output_ch->encoder->next_pts, &output_ch->encoder->clockrate_fact); // roll back TS to start of event ts -= ch->last_dtmf_event_ts; // adjust to output RTP TS unsigned long packet_ts = ts + output_ch->csch.first_ts; ilogs(transcoding, LOG_DEBUG, "Scaling DTMF packet timestamp and duration: TS %lu -> %lu " "(%u -> %u)", packet->ts, packet_ts, h->source_pt.clock_rate, h->dest_pt.clock_rate); packet->ts = packet_ts; if (packet->payload->len >= sizeof(struct telephone_event_payload)) { struct telephone_event_payload *dtmf = (void *) packet->payload->s; unsigned int duration = av_rescale(ntohs(dtmf->duration), h->dest_pt.clock_rate, h->source_pt.clock_rate); dtmf->duration = htons(duration); // we can't directly use the RTP TS to schedule the send, as we have to adjust it // by the duration if (ch->dtmf_first_duration == 0 || duration < ch->dtmf_first_duration) ch->dtmf_first_duration = duration; ts_delay = duration - ch->dtmf_first_duration; // shift forward our output RTP TS output_ch->encoder->next_pts = fraction_multl(ts + duration, &output_ch->encoder->clockrate_fact); output_ch->encoder->packet_pts += fraction_multl(duration - ch->last_dtmf_event_ts, &output_ch->encoder->clockrate_fact); ch->last_dtmf_event_ts = duration; } payload_type = h->dtmf_payload_type; if (payload_type == -1) payload_type = h->real_dtmf_payload_type; skip: obj_put(&output_ch->h); char *buf = bufferpool_alloc(media_bufferpool, packet->payload->len + sizeof(struct rtp_header) + RTP_BUFFER_TAIL_ROOM); memcpy(buf + sizeof(struct rtp_header), packet->payload->s, packet->payload->len); if (packet->bypass_seq) // inject original seq codec_output_rtp(mp, &ch->csch, packet->handler ? : h, buf, packet->payload->len, packet->ts, packet->marker, packet->p.seq, -1, payload_type, ts_delay); else // use our own sequencing codec_output_rtp(mp, &ch->csch, packet->handler ? : h, buf, packet->payload->len, packet->ts, packet->marker, -1, 0, payload_type, ts_delay); mp->ssrc_out->parent->seq_diff++; return 0; } // forwards DTMF input to DTMF output, plus rescaling duration static tc_code packet_dtmf_fwd(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { int payload_type = -1; // take from handler's output config unsigned long ts_delay = 0; struct codec_handler *h = ch->handler; struct codec_handler *input_h = input_ch->handler; tc_code ret = __buffer_delay_packet(input_h->delay_buffer, ch, input_ch, packet, ts_delay, payload_type, codec_add_dtmf_packet, mp, h->source_pt.clock_rate); __buffer_delay_seq(input_h->delay_buffer, mp, -1); return ret; } // returns the codec handler for the primary payload type - mostly determined by guessing static struct codec_handler *__input_handler(struct codec_handler *h, struct media_packet *mp) { if (!mp->ssrc_in) return h; for (int i = 0; i < mp->ssrc_in->tracker.most_len; i++) { int prim_pt = mp->ssrc_in->tracker.most[i]; if (prim_pt == 255) continue; struct codec_handler *sequencer_h = codec_handler_get(mp->media, prim_pt, mp->media_out, NULL); if (sequencer_h == h) continue; if (sequencer_h->source_pt.codec_def && sequencer_h->source_pt.codec_def->supplemental) continue; ilogs(transcoding, LOG_DEBUG, "Primary RTP payload type for handling %s is %i", h->source_pt.codec_def->rtpname, prim_pt); return sequencer_h; } return h; } // returns: -1 = error, 0 = processed ok, 1 = duplicate, already processed static int packet_dtmf_event(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { LOCK(&mp->media->dtmf_lock); if (mp->media->dtmf_ts == packet->ts) return 1; // ignore already processed events int ret = dtmf_event_packet(mp, packet->payload, ch->handler->source_pt.clock_rate, packet->ts); if (G_UNLIKELY(ret == -1)) // error return -1; if (ret == 1) { // END event mp->media->dtmf_ts = packet->ts; input_ch->dtmf_start_ts = 0; } else input_ch->dtmf_start_ts = packet->ts ? packet->ts : 1; return 0; } static tc_code packet_dtmf(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { int dtmf_event_processed = packet_dtmf_event(ch, input_ch, packet, mp); if (dtmf_event_processed == -1) return TCC_ERR; enum block_dtmf_mode block_dtmf = dtmf_get_block_mode(mp->call, mp->media->monologue); bool do_blocking = block_dtmf == BLOCK_DTMF_DROP; if (packet->payload->len >= sizeof(struct telephone_event_payload)) { struct telephone_event_payload *dtmf = (void *) packet->payload->s; struct codec_handler *h = input_ch->handler; // fudge up TS and duration values uint64_t duration = (uint64_t) h->source_pt.clock_rate * h->source_pt.ptime / 1000; uint64_t ts = packet->ts + ntohs(dtmf->duration) - duration; // remember this as last "encoder" TS atomic_set_na(&mp->ssrc_in->stats->timestamp, ts); // provide an uninitialised buffer as potential output storage for DTMF char buf[sizeof(struct telephone_event_payload)]; str ev_pl = STR_INIT_LEN(buf, sizeof(buf)); int is_dtmf = dtmf_event_payload(&ev_pl, &ts, duration, &input_ch->dtmf_event, &input_ch->dtmf_events); if (is_dtmf) { // generate appropriate transcode_packets unsigned int copies = 1; if (dtmf_event_processed == 1) // discard duplicate end packets copies = 0; else if (is_dtmf == 3) // end event copies = 3; // fix up RTP header struct rtp_header r; r = *mp->rtp; r.m_pt = h->dtmf_payload_type; r.timestamp = htonl(ts); for (; copies > 0; copies--) { struct transcode_packet *dup = g_slice_alloc(sizeof(*dup)); *dup = *packet; dup->payload = str_dup(&ev_pl); dup->rtp = r; dup->bypass_seq = 0; dup->ts = ts; if (is_dtmf == 1) dup->marker = 1; tc_code ret = TCC_OK; if (__buffer_dtx(input_ch->dtx_buffer, ch, input_ch, dup, mp, packet_dtmf_fwd)) ret = TCC_CONSUMED; else ret = packet_dtmf_fwd(ch, input_ch, dup, mp); mp->ssrc_out->parent->seq_diff++; if (ret != TCC_CONSUMED) __transcode_packet_free(dup); } mp->ssrc_out->parent->seq_diff--; // discard the received event do_blocking = true; } else if (!input_ch->dtmf_events.length) ML_CLEAR(mp->media->monologue, DTMF_INJECTION_ACTIVE); } tc_code ret = TCC_OK; if (do_blocking) { } else { // pass through if (__buffer_dtx(input_ch->dtx_buffer, ch, input_ch, packet, mp, packet_dtmf_fwd)) ret = TCC_CONSUMED; else ret = packet_dtmf_fwd(ch, input_ch, packet, mp); } return ret; } static tc_code packet_dtmf_dup(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { enum block_dtmf_mode block_dtmf = dtmf_get_block_mode(mp->call, mp->media->monologue); tc_code ret = TCC_OK; if (block_dtmf == BLOCK_DTMF_DROP) { } else // pass through ret = packet_dtmf_fwd(ch, input_ch, packet, mp); return ret; } static int __handler_func_supplemental(struct codec_handler *h, struct media_packet *mp, tc_code (*packet_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *), int (*dup_func)(struct codec_ssrc_handler *, struct codec_ssrc_handler *, struct transcode_packet *, struct media_packet *)) { if (G_UNLIKELY(!mp->rtp)) return handler_func_passthrough(h, mp); assert((mp->rtp->m_pt & 0x7f) == h->source_pt.payload_type); // create new packet and insert it into sequencer queue ilogs(transcoding, LOG_DEBUG, "Received %s supplemental RTP packet: SSRC %" PRIx32 ", PT %u, seq %u, TS %u, len %zu", h->source_pt.codec_def->rtpname, ntohl(mp->rtp->ssrc), mp->rtp->m_pt, ntohs(mp->rtp->seq_num), ntohl(mp->rtp->timestamp), mp->payload.len); // determine the primary audio codec used by this SSRC, as the sequence numbers // and timing info is shared with it. we'll need to use the same sequencer struct codec_handler *sequencer_h = __input_handler(h, mp); h->input_handler = sequencer_h; h->output_handler = sequencer_h; struct transcode_packet *packet = g_slice_alloc0(sizeof(*packet)); packet->packet_func = packet_func; packet->dup_func = dup_func; packet->handler = h; packet->rtp = *mp->rtp; if (sequencer_h->passthrough || sequencer_h->kernelize) { // bypass sequencer, directly pass it to forwarding function packet->bypass_seq = 1; } return __handler_func_sequencer(mp, packet); } static int handler_func_dtmf(struct codec_handler *h, struct media_packet *mp) { // DTMF input - can we do DTMF output? if (h->dtmf_payload_type == -1) return handler_func_transcode(h, mp); return __handler_func_supplemental(h, mp, packet_dtmf, packet_dtmf_dup); } static int handler_func_t38(struct codec_handler *h, struct media_packet *mp) { if (!mp->media) return 0; return t38_gateway_input_udptl(mp->media->t38_gateway, &mp->raw); } #endif void codec_packet_free(void *pp) { struct codec_packet *p = pp; if (p->free_func) p->free_func(p->s.s); if (p->plain_free_func && p->plain.s) p->plain_free_func(p->plain.s); ssrc_ctx_put(&p->ssrc_out); g_slice_free1(sizeof(*p), p); } bool codec_packet_copy(struct codec_packet *p) { char *buf = bufferpool_alloc(media_bufferpool, p->s.len + RTP_BUFFER_TAIL_ROOM); memcpy(buf, p->s.s, p->s.len); p->s.s = buf; p->free_func = bufferpool_unref; return true; } struct codec_packet *codec_packet_dup(struct codec_packet *p) { struct codec_packet *dup = g_slice_alloc0(sizeof(*p)); *dup = *p; codec_packet_copy(dup); if (dup->ssrc_out) ssrc_ctx_hold(dup->ssrc_out); if (dup->rtp) dup->rtp = (void *) dup->s.s; return dup; } rtp_payload_type *codec_make_payload_type(const str *codec_str, enum media_type type) { str codec_fmt = *codec_str; str codec, parms, chans, opts, extra_opts, fmt_params, codec_opts; if (!str_token_sep(&codec, &codec_fmt, '/')) return NULL; str_token_sep(&parms, &codec_fmt, '/'); str_token_sep(&chans, &codec_fmt, '/'); str_token_sep(&opts, &codec_fmt, '/'); str_token_sep(&extra_opts, &codec_fmt, '/'); str_token_sep(&fmt_params, &codec_fmt, '/'); str_token_sep(&codec_opts, &codec_fmt, '/'); int clockrate = str_to_i(&parms, 0); int channels = str_to_i(&chans, 0); int bitrate = str_to_i(&opts, 0); int ptime = str_to_i(&extra_opts, 0); if (clockrate && !channels) channels = 1; rtp_payload_type *pt = g_slice_alloc0(sizeof(*pt)); pt->payload_type = -1; pt->encoding = codec; pt->clock_rate = clockrate; pt->channels = channels; pt->bitrate = bitrate; pt->ptime = ptime; pt->format_parameters = fmt_params; pt->codec_opts = codec_opts; codec_init_payload_type(pt, type); return pt; } void codec_init_payload_type(rtp_payload_type *pt, enum media_type type) { #ifdef WITH_TRANSCODING ensure_codec_def_type(pt, type); codec_def_t *def = pt->codec_def; if (def) { if (!pt->clock_rate) pt->clock_rate = def->default_clockrate; if (!pt->channels) pt->channels = def->default_channels; if (pt->ptime <= 0) pt->ptime = def->default_ptime; if (!pt->format_parameters.s && def->default_fmtp) str_init(&pt->format_parameters, (char *) def->default_fmtp); codec_parse_fmtp(def, &pt->format, &pt->format_parameters, NULL); if (def->init) def->init(pt); if (pt->payload_type == -1 && def->rfc_payload_type >= 0) { const rtp_payload_type *rfc_pt = rtp_get_rfc_payload_type(def->rfc_payload_type); // only use the RFC payload type if all parameters match if (rfc_pt && (pt->clock_rate == 0 || pt->clock_rate == rfc_pt->clock_rate) && (pt->channels == 0 || pt->channels == rfc_pt->channels)) { pt->payload_type = rfc_pt->payload_type; if (!pt->clock_rate) pt->clock_rate = rfc_pt->clock_rate; if (!pt->channels) pt->channels = rfc_pt->channels; } } } #endif // init params strings char full_encoding[64]; char full_full_encoding[64]; char params[32] = ""; snprintf(full_full_encoding, sizeof(full_full_encoding), STR_FORMAT "/%u/%i", STR_FMT(&pt->encoding), pt->clock_rate, pt->channels); if (pt->channels > 1) { strcpy(full_encoding, full_full_encoding); snprintf(params, sizeof(params), "%i", pt->channels); } else snprintf(full_encoding, sizeof(full_encoding), STR_FORMAT "/%u", STR_FMT(&pt->encoding), pt->clock_rate); // allocate strings str_init_dup_str(&pt->encoding, &pt->encoding); str_init_dup(&pt->encoding_with_params, full_encoding); str_init_dup(&pt->encoding_with_full_params, full_full_encoding); str_init_dup(&pt->encoding_parameters, params); str_init_dup_str(&pt->format_parameters, &pt->format_parameters); str_init_dup_str(&pt->codec_opts, &pt->codec_opts); // allocate everything from the rtcp-fb list for (GList *l = pt->rtcp_fb.head; l; l = l->next) { str *fb = l->data; l->data = str_dup(fb); } } #ifdef WITH_TRANSCODING static int handler_func_passthrough_ssrc(struct codec_handler *h, struct media_packet *mp) { if (G_UNLIKELY(!mp->rtp)) return handler_func_passthrough(h, mp); if (!handler_silence_block(h, mp)) return 0; uint32_t ts = ntohl(mp->rtp->timestamp); codec_calc_jitter(mp->ssrc_in, ts, h->source_pt.clock_rate, &mp->tv); codec_calc_lost(mp->ssrc_in, ntohs(mp->rtp->seq_num)); // save original payload in case DTMF mangles it str orig_raw = mp->raw; // provide an uninitialised buffer as potential output storage for DTMF char buf[sizeof(*mp->rtp) + sizeof(struct telephone_event_payload) + RTP_BUFFER_TAIL_ROOM]; // default function to return packets void (*add_packet_fn)(struct media_packet *mp, unsigned int clockrate) = codec_add_raw_packet; unsigned int duplicates = 0; // check for DTMF injection if (h->dtmf_payload_type != -1) { struct codec_ssrc_handler *ch = get_ssrc(mp->ssrc_in->parent->h.ssrc, h->ssrc_hash); if (ch) { uint64_t ts64 = ntohl(mp->rtp->timestamp); str ev_pl = { .s = buf + sizeof(*mp->rtp) }; int is_dtmf = dtmf_event_payload(&ev_pl, &ts64, (uint64_t) h->source_pt.clock_rate * h->source_pt.ptime / 1000, &ch->dtmf_event, &ch->dtmf_events); if (is_dtmf) { // fix up RTP header struct rtp_header *r = (void *) buf; *r = *mp->rtp; r->m_pt = h->dtmf_payload_type; r->timestamp = htonl(ts64); if (is_dtmf == 1) r->m_pt |= 0x80; else if (is_dtmf == 3) // end event duplicates = 2; mp->rtp = r; mp->raw.s = buf; mp->raw.len = ev_pl.len + sizeof(*mp->rtp); add_packet_fn = codec_add_raw_packet_dup; } else if (!ch->dtmf_events.length) ML_CLEAR(mp->media->monologue, DTMF_INJECTION_ACTIVE); obj_put(&ch->h); } } // substitute out SSRC etc mp->rtp->ssrc = htonl(mp->ssrc_out->parent->h.ssrc); // to track our seq unsigned short seq = ntohs(mp->rtp->seq_num); while (true) { mp->rtp->seq_num = htons(seq + mp->ssrc_out->parent->seq_diff); // keep track of other stats here? __buffer_delay_raw(h->delay_buffer, h, add_packet_fn, mp, h->source_pt.clock_rate); if (duplicates == 0) break; duplicates--; mp->ssrc_out->parent->seq_diff++; } // restore original in case it was mangled mp->raw = orig_raw; return 0; } static void __transcode_packet_free(struct transcode_packet *p) { free(p->payload); g_slice_free1(sizeof(*p), p); } static struct ssrc_entry *__ssrc_handler_new(void *p) { // XXX combine with __ssrc_handler_transcode_new struct codec_handler *h = p; struct codec_ssrc_handler *ch = obj_alloc0("codec_ssrc_handler", sizeof(*ch), __free_ssrc_handler); ch->handler = h; ch->ptime = h->source_pt.ptime; if (!ch->ptime) ch->ptime = 20; return &ch->h; } static void __dtmf_dsp_callback(void *ptr, int code, int level, int delay) { struct codec_ssrc_handler *ch = ptr; uint64_t ts = ch->last_dtmf_event_ts + delay; ch->last_dtmf_event_ts = ts; ts = av_rescale(ts, ch->encoder_format.clockrate, ch->dtmf_format.clockrate); codec_add_dtmf_event(ch, code, level, ts, false); } void codec_add_dtmf_event(struct codec_ssrc_handler *ch, int code, int level, uint64_t ts, bool injected) { struct dtmf_event new_ev = { .code = code, .volume = level, .ts = ts }; ilogs(transcoding, LOG_DEBUG, "DTMF event state change: code %i, volume %i, TS %lu", new_ev.code, new_ev.volume, (unsigned long) ts); dtmf_dsp_event(&new_ev, &ch->dtmf_state, ch->handler->media, ch->handler->source_pt.clock_rate, ts + ch->csch.first_ts, injected); // add to queue if we're doing PCM -> DTMF event conversion // this does not capture events when doing DTMF delay (dtmf_payload_type == -1) // unless this is an injected event, in which case we check the real payload type if (ch->handler->dtmf_payload_type != -1 || (injected && ch->handler->real_dtmf_payload_type != -1)) { struct dtmf_event *ev = g_slice_alloc(sizeof(*ev)); *ev = new_ev; t_queue_push_tail(&ch->dtmf_events, ev); } } uint64_t codec_last_dtmf_event(struct codec_ssrc_handler *ch) { struct dtmf_event *ev = t_queue_peek_tail(&ch->dtmf_events); if (!ev) ev = &ch->dtmf_state; return ev->ts; } uint64_t codec_encoder_pts(struct codec_ssrc_handler *ch, struct ssrc_ctx *ssrc_in) { if (!ch || !ch->encoder) { if (!ssrc_in) return 0; uint64_t cur = atomic_get_na(&ssrc_in->stats->timestamp); // return the TS of the next expected packet if (ch) cur += (uint64_t) ch->ptime * ch->handler->source_pt.clock_rate / 1000; return cur; } return ch->encoder->fifo_pts; } void codec_decoder_skip_pts(struct codec_ssrc_handler *ch, uint64_t pts) { ilogs(transcoding, LOG_DEBUG, "Skipping next %" PRIu64 " samples", pts); ch->skip_pts += pts; } uint64_t codec_decoder_unskip_pts(struct codec_ssrc_handler *ch) { uint64_t prev = ch->skip_pts; ilogs(transcoding, LOG_DEBUG, "Un-skipping next %" PRIu64 " samples", prev); ch->skip_pts = 0; return prev; } static int codec_decoder_event(enum codec_event event, void *ptr, void *data) { struct call_media *media = data; if (!media) return 0; switch (event) { case CE_AMR_CMR_RECV: // ignore locking and races for this media->encoder_callback.amr.cmr_in = GPOINTER_TO_UINT(ptr); media->encoder_callback.amr.cmr_in_ts = rtpe_now; break; case CE_AMR_SEND_CMR: // ignore locking and races for this media->encoder_callback.amr.cmr_out = GPOINTER_TO_UINT(ptr); media->encoder_callback.amr.cmr_out_ts = rtpe_now; break; case CE_EVS_CMR_RECV: // ignore locking and races for this media->encoder_callback.evs.cmr_in = GPOINTER_TO_UINT(ptr); media->encoder_callback.evs.cmr_in_ts = rtpe_now; break; default: break; } return 0; } // must be locked static void __delay_buffer_schedule(struct delay_buffer *dbuf) { if (dbuf->ct.next.tv_sec) // already scheduled? return; struct delay_frame *dframe = t_queue_peek_tail(&dbuf->frames); if (!dframe) return; struct timeval to_run = dframe->mp.tv; timeval_add_usec(&to_run, dbuf->delay * 1000); dbuf->ct.next = to_run; timerthread_obj_schedule_abs(&dbuf->ct.tt_obj, &dbuf->ct.next); } static bool __buffer_delay_do_direct(struct delay_buffer *dbuf) { if (!dbuf) return true; LOCK(&dbuf->lock); if (dbuf->delay == 0 && dbuf->frames.length == 0) return true; return false; } static int delay_frame_cmp(const struct delay_frame *a, const struct delay_frame *b, void *ptr) { return -1 * timeval_cmp(&a->mp.tv, &b->mp.tv); } // consumes frame // `frame` can be NULL (discarded/lost packet) static void __buffer_delay_frame(struct delay_buffer *dbuf, struct codec_ssrc_handler *ch, encoder_input_func_t input_func, AVFrame *frame, struct media_packet *mp, uint32_t ts) { if (__buffer_delay_do_direct(dbuf)) { // input now if (frame) { input_func(ch->encoder, frame, ch->handler->packet_encoded, ch, mp); av_frame_free(&frame); } return; } struct delay_frame *dframe = g_slice_alloc0(sizeof(*dframe)); dframe->frame = frame; dframe->encoder_func = input_func; dframe->ts = ts; dframe->ch = obj_get(&ch->h); dframe->handler = ch->handler; media_packet_copy(&dframe->mp, mp); LOCK(&dbuf->lock); t_queue_insert_sorted(&dbuf->frames, dframe, delay_frame_cmp, NULL); __delay_buffer_schedule(dbuf); } static void __buffer_delay_raw(struct delay_buffer *dbuf, struct codec_handler *handler, raw_input_func_t input_func, struct media_packet *mp, unsigned int clockrate) { if (__buffer_delay_do_direct(dbuf)) { // direct passthrough input_func(mp, clockrate); return; } struct delay_frame *dframe = g_slice_alloc0(sizeof(*dframe)); dframe->raw_func = input_func; dframe->clockrate = clockrate; dframe->handler = handler; media_packet_copy(&dframe->mp, mp); // also copy packet payload dframe->mp.raw = mp->raw; dframe->mp.raw.s = g_malloc(mp->raw.len + RTP_BUFFER_TAIL_ROOM); memcpy(dframe->mp.raw.s, mp->raw.s, mp->raw.len); LOCK(&dbuf->lock); t_queue_insert_sorted(&dbuf->frames, dframe, delay_frame_cmp, NULL); __delay_buffer_schedule(dbuf); } static tc_code __buffer_delay_packet(struct delay_buffer *dbuf, struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, unsigned long ts_delay, int payload_type, packet_input_func_t packet_func, struct media_packet *mp, unsigned int clockrate) { if (__buffer_delay_do_direct(dbuf)) { // direct passthrough packet_func(ch, input_ch, packet, ts_delay, payload_type, mp); return TCC_OK; } struct delay_frame *dframe = g_slice_alloc0(sizeof(*dframe)); dframe->packet_func = packet_func; dframe->clockrate = clockrate; dframe->ch = ch ? obj_get(&ch->h) : NULL; dframe->input_ch = input_ch ? obj_get(&input_ch->h) : NULL; dframe->ts_delay = ts_delay; dframe->payload_type = payload_type; dframe->packet = packet; dframe->ts = packet->ts; dframe->handler = ch->handler; media_packet_copy(&dframe->mp, mp); LOCK(&dbuf->lock); t_queue_insert_sorted(&dbuf->frames, dframe, delay_frame_cmp, NULL); __delay_buffer_schedule(dbuf); return TCC_CONSUMED; } static void __buffer_delay_seq(struct delay_buffer *dbuf, struct media_packet *mp, int seq_adj) { if (!mp->ssrc_out) return; if (__buffer_delay_do_direct(dbuf)) { mp->ssrc_out->parent->seq_diff += seq_adj; return; } LOCK(&dbuf->lock); // peg the adjustment to the most recent frame if any struct delay_frame *dframe = t_queue_peek_head(&dbuf->frames); if (!dframe) { mp->ssrc_out->parent->seq_diff += seq_adj; return; } dframe->seq_adj += seq_adj; } // consumes `packet` if buffered (returns true) // `packet` can be NULL (discarded packet for seq tracking) static bool __buffer_dtx(struct dtx_buffer *dtxb, struct codec_ssrc_handler *decoder_handler, struct codec_ssrc_handler *input_handler, struct transcode_packet *packet, struct media_packet *mp, tc_code (*dtx_func)(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp)) { if (!dtxb || !mp->sfd || !mp->ssrc_in || !mp->ssrc_out) return false; unsigned long ts = packet ? packet->ts : 0; // allocate packet object struct dtx_packet *dtxp = g_slice_alloc0(sizeof(*dtxp)); dtxp->packet = packet; dtxp->dtx_func = dtx_func; if (decoder_handler) dtxp->decoder_handler = obj_get(&decoder_handler->h); if (input_handler) dtxp->input_handler = obj_get(&input_handler->h); media_packet_copy(&dtxp->mp, mp); // add to processing queue mutex_lock(&dtxb->lock); dtxb->start = rtpe_now.tv_sec; t_queue_push_tail(&dtxb->packets, dtxp); ilogs(dtx, LOG_DEBUG, "Adding packet (TS %lu) to DTX buffer; now %i packets in DTX queue", ts, dtxb->packets.length); // schedule timer if not running yet if (!dtxb->ct.next.tv_sec) { if (!dtxb->ssrc) dtxb->ssrc = mp->ssrc_in->parent->h.ssrc; dtxb->ct.next = mp->tv; timeval_add_usec(&dtxb->ct.next, rtpe_config.dtx_delay * 1000); timerthread_obj_schedule_abs(&dtxb->ct.tt_obj, &dtxb->ct.next); } // packet now consumed if there was one bool ret = packet ? true : false; packet = NULL; mutex_unlock(&dtxb->lock); return ret; } static void send_buffered(struct media_packet *mp, unsigned int log_sys) { struct sink_handler *sh = &mp->sink; struct packet_stream *sink = sh->sink; if (!sink) media_socket_dequeue(mp, NULL); // just free else { if (sh->handler && media_packet_encrypt(sh->handler->out->rtp_crypt, sink, mp)) ilogsn(log_sys, LOG_ERR | LOG_FLAG_LIMIT, "Error encrypting buffered RTP media"); mutex_lock(&sink->out_lock); if (media_socket_dequeue(mp, sink)) ilogsn(log_sys, LOG_ERR | LOG_FLAG_LIMIT, "Error sending buffered media to RTP sink"); mutex_unlock(&sink->out_lock); } } static void delay_frame_free(struct delay_frame *dframe) { av_frame_free(&dframe->frame); g_free(dframe->mp.raw.s); media_packet_release(&dframe->mp); if (dframe->ch) obj_put(&dframe->ch->h); if (dframe->input_ch) obj_put(&dframe->input_ch->h); if (dframe->packet) __transcode_packet_free(dframe->packet); g_slice_free1(sizeof(*dframe), dframe); } static void delay_frame_send(struct delay_frame *dframe) { send_buffered(&dframe->mp, log_level_index_transcoding); } static void delay_frame_flush(struct delay_buffer *dbuf, struct delay_frame *dframe) { // call is locked in W here __delay_frame_process(dbuf, dframe); delay_frame_send(dframe); delay_frame_free(dframe); } static void dtx_packet_free(struct dtx_packet *dtxp) { if (dtxp->packet) __transcode_packet_free(dtxp->packet); media_packet_release(&dtxp->mp); if (dtxp->decoder_handler) obj_put(&dtxp->decoder_handler->h); if (dtxp->input_handler) obj_put(&dtxp->input_handler->h); g_slice_free1(sizeof(*dtxp), dtxp); } static void delay_buffer_stop(struct delay_buffer **pcmbp) { codec_timer_stop((struct codec_timer **) pcmbp); } static void dtx_buffer_stop(struct dtx_buffer **dtxbp) { codec_timer_stop((struct codec_timer **) dtxbp); } static void delay_frame_manipulate(struct delay_frame *dframe) { struct call_media *media = dframe->mp.media; if (!media) return; AVFrame *frame = dframe->frame; struct call_monologue *ml = media->monologue; enum block_dtmf_mode mode = dtmf_get_block_mode(dframe->mp.call, ml); if (mode == BLOCK_DTMF_OFF && media->monologue->dtmf_delay == 0) return; mutex_lock(&media->dtmf_lock); struct dtmf_event *dtmf_recv = is_in_dtmf_event(&media->dtmf_recv, dframe->ts, frame->sample_rate, media->buffer_delay, media->buffer_delay); struct dtmf_event *dtmf_send = is_in_dtmf_event(&media->dtmf_send, dframe->ts, frame->sample_rate, 0, 0); mutex_unlock(&media->dtmf_lock); if (mode == BLOCK_DTMF_OFF) { if (!dtmf_send) { mode = BLOCK_DTMF_SILENCE; if (dframe->ch->handler->real_dtmf_payload_type != -1) { // add end event to queue if (dframe->ch->dtmf_event.code) { struct dtmf_event *ev = g_slice_alloc0(sizeof(*ev)); uint64_t ts = dframe->ch->encoder ? dframe->ch->encoder->next_pts : dframe->ts; *ev = (struct dtmf_event) { .code = 0, .volume = 0, .ts = ts }; t_queue_push_tail(&dframe->ch->dtmf_events, ev); } } if (!dtmf_recv) return; } else mode = dtmf_send->block_dtmf; } else if (!dtmf_recv) return; // XXX this should be used for DTMF injection instead of a separate codec handler switch (mode) { case BLOCK_DTMF_OFF: // DTMF delay mode: play original DTMF // `dtmf_send` is valid ONLY HERE if (dframe->ch->handler->real_dtmf_payload_type != -1) { // add event to handler queue so the packet can be translated // to DTMF event packet. memset(frame->extended_data[0], 0, frame->linesize[0]); // XXX quite some redundant operations here: first the incoming // DTMF event is decoded to audio, which is then later (maybe) replaced // by silence. when the delayed DTMF is reproduced, the frame samples // are first filled with silence, and then replaced // by the DTMF event packet in packet_encoded_rtp(). if (dframe->ch->dtmf_event.code != dtmf_send->code) { // XXX this should be switched to proper state tracking instead // of using start/stop events struct dtmf_event *ev = g_slice_alloc0(sizeof(*ev)); uint64_t ts = dframe->ch->encoder ? dframe->ch->encoder->next_pts : dframe->ts; *ev = (struct dtmf_event) { .code = dtmf_send->code, .volume = -1 * dtmf_send->volume, .ts = ts }; t_queue_push_tail(&dframe->ch->dtmf_events, ev); } } else { // fill with DTMF PCM frame_fill_dtmf_samples(frame->format, frame->extended_data[0], dframe->ts, frame->nb_samples, dtmf_code_from_char(dtmf_send->code), dtmf_send->volume, frame->sample_rate, GET_CHANNELS(frame)); } break; case BLOCK_DTMF_SILENCE: memset(frame->extended_data[0], 0, frame->linesize[0]); break; case BLOCK_DTMF_TONE:; unsigned int freq = 0; if (ml->tone_freqs && ml->tone_freqs->len) freq = g_array_index(ml->tone_freqs, unsigned int, dtmf_recv->index % ml->tone_freqs->len); frame_fill_tone_samples(frame->format, frame->extended_data[0], dframe->ts, frame->nb_samples, freq ?: 400, ml->tone_vol ? : 10, frame->sample_rate, GET_CHANNELS(frame)); break; case BLOCK_DTMF_ZERO: case BLOCK_DTMF_DTMF: // if we have DTMF output, use silence, otherwise use a DTMF zero if (dframe->ch->handler->dtmf_payload_type != -1) memset(frame->extended_data[0], 0, frame->linesize[0]); else frame_fill_dtmf_samples(frame->format, frame->extended_data[0], dframe->ts, frame->nb_samples, dtmf_code_from_char(ml->dtmf_digit), ml->tone_vol ? : 10, frame->sample_rate, GET_CHANNELS(frame)); break; case BLOCK_DTMF_RANDOM: frame_fill_dtmf_samples(frame->format, frame->extended_data[0], dframe->ts, frame->nb_samples, dtmf_recv->rand_code - '0', 10, frame->sample_rate, GET_CHANNELS(frame)); break; default: break; } } static void delay_packet_manipulate(struct delay_frame *dframe) { struct call_media *media = dframe->mp.media; if (!media) return; if (!dframe->handler) return; struct media_packet *mp = &dframe->mp; if (is_in_dtmf_event(&media->dtmf_recv, dframe->ts, dframe->clockrate, media->buffer_delay, media->buffer_delay)) { // is this a DTMF event packet? if (!dframe->handler->source_pt.codec_def || !dframe->handler->source_pt.codec_def->dtmf) return; struct call_monologue *ml = media->monologue; enum block_dtmf_mode mode = dtmf_get_block_mode(dframe->mp.call, ml); // this can be a "raw" or "packet" - get the appropriate payload str *payload = &mp->raw; if (dframe->packet) payload = dframe->packet->payload; struct telephone_event_payload *dtmf = (void *) payload->s; if (payload->len < sizeof(*dtmf)) return; switch (mode) { case BLOCK_DTMF_ZERO: case BLOCK_DTMF_DTMF: dtmf->event = dtmf_code_from_char(ml->dtmf_digit); break; default: break; } } } static void __delay_frame_process(struct delay_buffer *dbuf, struct delay_frame *dframe) { struct codec_ssrc_handler *csh = dframe->ch; if (csh && csh->handler && csh->encoder && dframe->encoder_func) { delay_frame_manipulate(dframe); dframe->encoder_func(csh->encoder, dframe->frame, csh->handler->packet_encoded, csh, &dframe->mp); } else if (dframe->raw_func) { delay_packet_manipulate(dframe); dframe->raw_func(&dframe->mp, dframe->clockrate); } else if (dframe->packet_func && dframe->packet) { delay_packet_manipulate(dframe); dframe->packet_func(csh, dframe->input_ch, dframe->packet, dframe->ts_delay, dframe->payload_type, &dframe->mp); } if (dframe->seq_adj) dframe->mp.ssrc_out->parent->seq_diff += dframe->seq_adj; } static void __delay_send_later(struct codec_timer *ct) { struct delay_buffer *dbuf = (void *) ct; call_t *call = NULL; struct delay_frame *dframe = NULL; { // short-term lock - copy out references to all relevant objects LOCK(&dbuf->lock); call = dbuf->call; if (call) obj_get(call); dframe = t_queue_pop_tail(&dbuf->frames); } if (!call) // do nothing goto out; // we can now do a top-down lock rwlock_lock_r(&call->master_lock); log_info_call(call); if (!dframe) goto out; __ssrc_lock_both(&dframe->mp); __delay_frame_process(dbuf, dframe); __ssrc_unlock_both(&dframe->mp); delay_frame_send(dframe); { // schedule next run LOCK(&dbuf->lock); dbuf->ct.next.tv_sec = 0; __delay_buffer_schedule(dbuf); } out: // release all references if (call) { rwlock_unlock_r(&call->master_lock); obj_put(call); log_info_pop(); } if (dframe) delay_frame_free(dframe); } static bool __dtx_drift_shift(struct dtx_buffer *dtxb, unsigned long ts, long tv_diff, long ts_diff, struct codec_ssrc_handler *ch) { bool discard = false; if (tv_diff < rtpe_config.dtx_delay * 1000) { // timer underflow ilogs(dtx, LOG_DEBUG, "Packet reception time has caught up with DTX timer " "(%li ms < %i ms), " "pushing DTX timer forward my %i ms", tv_diff / 1000, rtpe_config.dtx_delay, rtpe_config.dtx_shift); timeval_add_usec(&dtxb->ct.next, rtpe_config.dtx_shift * 1000); } else if (ts_diff < dtxb->tspp) { // TS underflow // special case: DTMF timestamps are static if (ts_diff == 0 && ch->handler->source_pt.codec_def->dtmf) { ; } else { ilogs(dtx, LOG_DEBUG, "Packet timestamps have caught up with DTX timer " "(TS %lu, diff %li), " "pushing DTX timer forward by %i ms and discarding packet", ts, ts_diff, rtpe_config.dtx_shift); timeval_add_usec(&dtxb->ct.next, rtpe_config.dtx_shift * 1000); discard = true; } } else if (dtxb->packets.length >= rtpe_config.dtx_buffer) { // inspect TS is most recent packet struct dtx_packet *dtxp_last = t_queue_peek_tail(&dtxb->packets); ts_diff = dtxp_last->packet ? dtxp_last->packet->ts - ts : 0; long long ts_diff_us = (long long) ts_diff * 1000000 / dtxb->clockrate; if (ts_diff_us >= (long long) rtpe_config.dtx_lag * 1000) { // overflow ilogs(dtx, LOG_DEBUG, "DTX timer queue overflowing (%i packets in queue, " "%lli ms delay), speeding up DTX timer by %i ms", dtxb->packets.length, ts_diff_us / 1000, rtpe_config.dtx_shift); timeval_add_usec(&dtxb->ct.next, rtpe_config.dtx_shift * -1000); } } return discard; } static bool __dtx_drift_drop(struct dtx_buffer *dtxb, unsigned long ts, long tv_diff, long ts_diff, struct codec_ssrc_handler *ch) { bool discard = false; if (ts_diff < dtxb->tspp) { // TS underflow // special case: DTMF timestamps are static if (ts_diff == 0 && ch->handler->source_pt.codec_def->dtmf) { ; } else { ilogs(dtx, LOG_DEBUG, "Packet timestamps have caught up with DTX timer " "(TS %lu, diff %li), " "adjusting input TS clock back by one frame (%i)", ts, ts_diff, dtxb->tspp); dtxb->head_ts -= dtxb->tspp; } } else if (dtxb->packets.length >= rtpe_config.dtx_buffer) { // inspect TS is most recent packet struct dtx_packet *dtxp_last = t_queue_peek_tail(&dtxb->packets); ts_diff = dtxp_last->packet ? dtxp_last->packet->ts - ts : 0; long long ts_diff_us = (long long) ts_diff * 1000000 / dtxb->clockrate; if (ts_diff_us >= (long long) rtpe_config.dtx_lag * 1000) { // overflow ilogs(dtx, LOG_DEBUG, "DTX timer queue overflowing (%i packets in queue, " "%lli ms delay), discarding packet", dtxb->packets.length, ts_diff_us / 1000); discard = true; } } return discard; } static bool __dtx_handle_drift(struct dtx_buffer *dtxb, unsigned long ts, long tv_diff, long ts_diff, struct codec_ssrc_handler *ch) { if (rtpe_config.dtx_shift) return __dtx_drift_shift(dtxb, ts, tv_diff, ts_diff, ch); return __dtx_drift_drop(dtxb, ts, tv_diff, ts_diff, ch); } static void __dtx_send_later(struct codec_timer *ct) { struct dtx_buffer *dtxb = (void *) ct; struct media_packet mp_copy = {0,}; int ret = 0; unsigned long ts; int p_left = 0; long tv_diff = -1, ts_diff = 0; mutex_lock(&dtxb->lock); if (dtxb->call) log_info_call(dtxb->call); // vars assigned in the loop struct dtx_packet *dtxp; call_t *call; struct codec_ssrc_handler *ch; struct packet_stream *ps; struct codec_ssrc_handler *input_ch; while (true) { // do we have a packet? dtxp = t_queue_peek_head(&dtxb->packets); if (dtxp) { // inspect head packet and check TS, see if it's ready to be decoded ts = dtxp->packet ? dtxp->packet->ts : dtxb->head_ts; ts_diff = ts - dtxb->head_ts; long long ts_diff_us = (long long) ts_diff * 1000000 / dtxb->clockrate; if (!dtxb->head_ts) ; // first packet else if (ts_diff < 0) ilogs(dtx, LOG_DEBUG, "DTX timestamp reset (from %lu to %lu)", dtxb->head_ts, ts); else if (ts_diff_us > MAX(20 * rtpe_config.dtx_delay, 200000)) ilogs(dtx, LOG_DEBUG, "DTX timestamp reset (from %lu to %lu = %lli ms)", dtxb->head_ts, ts, ts_diff_us); else if (ts_diff >= dtxb->tspp * 2) { ilogs(dtx, LOG_DEBUG, "First packet in DTX buffer not ready yet (packet TS %lu, " "DTX TS %lu, diff %li)", ts, dtxb->head_ts, ts_diff); dtxp = NULL; } // go or no go? if (dtxp) t_queue_pop_head(&dtxb->packets); } p_left = dtxb->packets.length; if (dtxp) { // save the `mp` for possible future DTX media_packet_release(&dtxb->last_mp); media_packet_copy(&dtxb->last_mp, &dtxp->mp); media_packet_copy(&mp_copy, &dtxp->mp); if (dtxb->head_ts) ts_diff = dtxp->packet ? dtxp->packet->ts - dtxb->head_ts : 0; else ts_diff = dtxb->tspp; // first packet if (dtxp->packet) ts = dtxb->head_ts = dtxp->packet->ts; else ts = dtxb->head_ts; tv_diff = timeval_diff(&rtpe_now, &mp_copy.tv); } else { // no packet ready to decode: DTX media_packet_copy(&mp_copy, &dtxb->last_mp); // shift forward TS dtxb->head_ts += dtxb->tspp; ts = dtxb->head_ts; } ps = mp_copy.stream; log_info_stream_fd(mp_copy.sfd); // copy out other fields so we can unlock ch = (dtxp && dtxp->decoder_handler) ? obj_get(&dtxp->decoder_handler->h) : NULL; if (!ch && dtxb->csh) ch = obj_get(&dtxb->csh->h); input_ch = (dtxp && dtxp->input_handler) ? obj_get(&dtxp->input_handler->h) : NULL; call = dtxb->call ? obj_get(dtxb->call) : NULL; // check but DTX buffer shutdown conditions bool shutdown = false; if (!call) shutdown = true; else if (!ch) shutdown = true; else if (!ps) shutdown = true; else if (!ps->ssrc_in[0]) shutdown = true; else if (dtxb->ssrc != ps->ssrc_in[0]->parent->h.ssrc) shutdown = true; else if (dtxb->ct.next.tv_sec == 0) shutdown = true; else { shutdown = true; // default if no most used PTs are known for (int i = 0; i < ps->ssrc_in[0]->tracker.most_len; i++) { unsigned char most_pt = ps->ssrc_in[0]->tracker.most[i]; shutdown = false; // we are good if the most used PT is // either us if (ch->handler->source_pt.payload_type == most_pt) break; // or our input PT (which is the audio PT if we are supplemental) if (ch->handler->input_handler && ch->handler->input_handler->source_pt.payload_type == most_pt) break; // looks like codec change, but... shutdown = true; // another possibility is that the most used PT is actually a supplemental type. check this, // and if true move on to the next most used PT. rtp_payload_type *pt = t_hash_table_lookup(ps->media->codecs.codecs, GUINT_TO_POINTER(most_pt)); if (pt && pt->codec_def && pt->codec_def->supplemental) continue; // all other cases: codec change break; } } if (shutdown) { ilogs(dtx, LOG_DEBUG, "DTX buffer for %lx has been shut down", (unsigned long) dtxb->ssrc); dtxb->ct.next.tv_sec = 0; dtxb->head_ts = 0; mutex_unlock(&dtxb->lock); goto out; // shut down } if (!dtxp) // we need to do DTX break; bool discard = __dtx_handle_drift(dtxb, ts, tv_diff, ts_diff, ch); if (!discard) break; // release and try again mutex_unlock(&dtxb->lock); if (call && mp_copy.ssrc_out) { // packet consumed - track seq rwlock_lock_r(&call->master_lock); __ssrc_lock_both(&mp_copy); mp_copy.ssrc_out->parent->seq_diff--; __ssrc_unlock_both(&mp_copy); rwlock_unlock_r(&call->master_lock); } if (call) obj_put(call); if (ch) obj_put(&ch->h); if (input_ch) obj_put(&input_ch->h); if (dtxp) dtx_packet_free(dtxp); media_packet_release(&mp_copy); call = NULL; ch = NULL; input_ch = NULL; dtxp = NULL; ps = NULL; mutex_lock(&dtxb->lock); } int ptime = dtxb->ptime; time_t dtxb_start = dtxb->start; mutex_unlock(&dtxb->lock); rwlock_lock_r(&call->master_lock); __ssrc_lock_both(&mp_copy); if (dtxp) { ilogs(dtx, LOG_DEBUG, "Decoding DTX-buffered RTP packet (TS %lu) now; " "%i packets left in queue", ts, p_left); mp_copy.ptime = -1; tc_code tcc = dtxp->dtx_func(ch, input_ch, dtxp->packet, &mp_copy); if (tcc >= TCC_OK) { if (mp_copy.ptime > 0) ptime = mp_copy.ptime; if (tcc == TCC_CONSUMED) dtxp->packet = NULL; } else ilogs(dtx, LOG_WARN | LOG_FLAG_LIMIT, "Decoder error while processing buffered RTP packet"); } else { int diff = rtpe_now.tv_sec - dtxb_start; if (rtpe_config.max_dtx <= 0 || diff < rtpe_config.max_dtx) { ilogs(dtx, LOG_DEBUG, "RTP media for TS %lu missing, triggering DTX", ts); // synthetic packet mp_copy.rtp->seq_num = htons(ntohs(mp_copy.rtp->seq_num) + 1); ret = decoder_dtx(ch->decoder, ts, ptime, ch->handler->packet_decoded, ch, &mp_copy); if (ret) ilogs(dtx, LOG_WARN | LOG_FLAG_LIMIT, "Decoder error handling DTX/lost packet"); } else { ilogs(dtx, LOG_DEBUG, "Stopping DTX at TS %lu", ts); mutex_lock(&dtxb->lock); __dtx_shutdown(dtxb); mutex_unlock(&dtxb->lock); } } mutex_lock(&dtxb->lock); if (ptime != dtxb->ptime) { dtxb->ptime = ptime; dtxb->tspp = ptime * dtxb->clockrate / 1000; } // schedule next run timeval_add_usec(&dtxb->ct.next, dtxb->ptime * 1000); timerthread_obj_schedule_abs(&dtxb->ct.tt_obj, &dtxb->ct.next); mutex_unlock(&dtxb->lock); __ssrc_unlock_both(&mp_copy); if (mp_copy.packets_out.length && ret == 0) send_buffered(&mp_copy, log_level_index_dtx); rwlock_unlock_r(&call->master_lock); out: if (call) { obj_put(call); log_info_pop(); } if (ch) obj_put(&ch->h); if (input_ch) obj_put(&input_ch->h); if (dtxp) dtx_packet_free(dtxp); media_packet_release(&mp_copy); } static void __dtx_shutdown(struct dtx_buffer *dtxb) { if (dtxb->csh) obj_put(&dtxb->csh->h); dtxb->csh = NULL; obj_release(dtxb->call); t_queue_clear_full(&dtxb->packets, dtx_packet_free); } static void __delay_buffer_shutdown(struct delay_buffer *dbuf, bool flush) { if (flush) { while (dbuf->frames.length) { struct delay_frame *dframe = t_queue_pop_tail(&dbuf->frames); delay_frame_flush(dbuf, dframe); } } else t_queue_clear_full(&dbuf->frames, delay_frame_free); obj_release(dbuf->call); } static void __dtx_free(void *p) { struct dtx_buffer *dtxb = p; __dtx_shutdown(dtxb); media_packet_release(&dtxb->last_mp); mutex_destroy(&dtxb->lock); } static void __delay_buffer_free(void *p) { struct delay_buffer *dbuf = p; __delay_buffer_shutdown(dbuf, false); mutex_destroy(&dbuf->lock); } static void __dtx_setup(struct codec_ssrc_handler *ch) { if (!ch->decoder) return; if (!decoder_has_dtx(ch->decoder)) return; if (!rtpe_config.dtx_delay) return; struct dtx_buffer *dtx = ch->dtx_buffer; if (!dtx) { dtx = ch->dtx_buffer = obj_alloc0("dtx_buffer", sizeof(*dtx), __dtx_free); dtx->ct.tt_obj.tt = &codec_timers_thread; dtx->ct.timer_func = __dtx_send_later; mutex_init(&dtx->lock); } if (!dtx->csh) dtx->csh = obj_get(&ch->h); if (!dtx->call) dtx->call = obj_get(ch->handler->media->call); dtx->ptime = ch->ptime; if (dtx->ptime <= 0) dtx->ptime = ch->handler->source_pt.codec_def->default_ptime; if (dtx->ptime <= 0) dtx->ptime = 20; ilogs(dtx, LOG_DEBUG, "Using DTX ptime %i based on handler=%i codec=%i", dtx->ptime, ch->ptime, ch->handler->source_pt.codec_def->default_ptime); dtx->clockrate = ch->handler->source_pt.clock_rate; dtx->tspp = dtx->ptime * dtx->clockrate / 1000; } static void __dtx_buffer_restart(void *p, void *arg) { struct codec_ssrc_handler *ch = p; __dtx_setup(ch); } static void __dtx_restart(struct codec_handler *h) { ssrc_hash_foreach(h->ssrc_hash, __dtx_buffer_restart, NULL); } static void __delay_buffer_setup(struct delay_buffer **dbufp, struct codec_handler *h, call_t *call, unsigned int delay) { if (!dbufp) return; struct delay_buffer *dbuf = *dbufp; if (!dbuf) { if (!delay) return; dbuf = obj_alloc0("delay_buffer", sizeof(*dbuf), __delay_buffer_free); dbuf->ct.tt_obj.tt = &codec_timers_thread; dbuf->ct.timer_func = __delay_send_later; dbuf->handler = h; mutex_init(&dbuf->lock); } if (!dbuf->call) dbuf->call = obj_get(call); dbuf->delay = delay; *dbufp = dbuf; } static void __ssrc_handler_stop(void *p, void *arg) { struct codec_ssrc_handler *ch = p; if (ch->dtx_buffer) { mutex_lock(&ch->dtx_buffer->lock); __dtx_shutdown(ch->dtx_buffer); mutex_unlock(&ch->dtx_buffer->lock); dtx_buffer_stop(&ch->dtx_buffer); } codec_cc_stop(ch->chain); } void codec_handlers_stop(codec_handlers_q *q, struct call_media *sink) { for (__auto_type l = q->head; l; l = l->next) { struct codec_handler *h = l->data; if (sink && h->sink != sink) continue; if (h->delay_buffer) { mutex_lock(&h->delay_buffer->lock); __delay_buffer_shutdown(h->delay_buffer, true); mutex_unlock(&h->delay_buffer->lock); delay_buffer_stop(&h->delay_buffer); } ssrc_hash_foreach(h->ssrc_hash, __ssrc_handler_stop, (void *) true); } } static void silence_event_free(struct silence_event *p) { g_slice_free1(sizeof(*p), p); } #define __silence_detect_type(type) \ static void __silence_detect_ ## type(struct codec_ssrc_handler *ch, AVFrame *frame, type thres) { \ type *s = (void *) frame->data[0]; \ struct silence_event *last = t_queue_peek_tail(&ch->silence_events); \ \ if (last && last->end) /* last event finished? */ \ last = NULL; \ \ for (unsigned int i = 0; i < frame->nb_samples; i++) { \ if (s[i] <= thres && s[1] >= -thres) { \ /* silence */ \ if (!last) { \ /* new event */ \ last = g_slice_alloc0(sizeof(*last)); \ last->start = frame->pts + i; \ t_queue_push_tail(&ch->silence_events, last); \ } \ } \ else { \ /* not silence */ \ if (last && !last->end) { \ /* close off event */ \ last->end = frame->pts + i; \ last = NULL; \ } \ } \ } \ } __silence_detect_type(double) __silence_detect_type(float) __silence_detect_type(int32_t) __silence_detect_type(int16_t) static void __silence_detect(struct codec_ssrc_handler *ch, AVFrame *frame) { if (!rtpe_config.silence_detect_int) return; if (ch->handler->cn_payload_type < 0) return; switch (frame->format) { case AV_SAMPLE_FMT_DBL: __silence_detect_double(ch, frame, rtpe_config.silence_detect_double); break; case AV_SAMPLE_FMT_FLT: __silence_detect_float(ch, frame, rtpe_config.silence_detect_double); break; case AV_SAMPLE_FMT_S32: __silence_detect_int32_t(ch, frame, rtpe_config.silence_detect_int); break; case AV_SAMPLE_FMT_S16: __silence_detect_int16_t(ch, frame, rtpe_config.silence_detect_int >> 16); break; default: ilogs(transcoding, LOG_WARN | LOG_FLAG_LIMIT, "Unsupported sample format %i for silence detection", frame->format); } } static int is_silence_event(str *inout, silence_event_q *events, uint64_t pts, uint64_t duration) { uint64_t end = pts + duration; while (events->length) { struct silence_event *first = t_queue_peek_head(events); if (first->start > pts) // future event return 0; if (!first->end) // ongoing event goto silence; if (first->end > end) // event finished with end in the future goto silence; // event has ended: remove it t_queue_pop_head(events); // does the event fill the entire span? if (first->end == end) { silence_event_free(first); goto silence; } // keep going, there might be more silence_event_free(first); } return 0; silence: // replace with CN payload inout->len = rtpe_config.cn_payload.len; memcpy(inout->s, rtpe_config.cn_payload.s, inout->len); return 1; } static void *async_chain_start(void *x, void *y, void *z) { struct codec_ssrc_handler *ch = x; struct codec_ssrc_handler *input_ch = y; struct media_packet *mp = z; struct transcode_job *j = g_new0(__typeof(*j), 1); //printf("call %p inc refs %p %p job %p\n", mp->call, ch, input_ch, j); media_packet_copy(&j->mp, mp); j->ch = obj_get(&ch->h); j->input_ch = obj_get(&input_ch->h); return j; } static void async_chain_finish(AVPacket *pkt, void *async_cb_obj) { struct transcode_job *j = async_cb_obj; struct call *call = j->mp.call; gettimeofday(&rtpe_now, NULL); if (pkt) { rwlock_lock_r(&call->master_lock); __ssrc_lock_both(&j->mp); static const struct fraction chain_fact = {1,1}; packet_encoded_packetize(pkt, j->ch, &j->mp, packetizer_passthrough, NULL, &chain_fact, packet_encoded_tx_seq_own); __ssrc_unlock_both(&j->mp); send_buffered(&j->mp, log_level_index_transcoding); rwlock_unlock_r(&call->master_lock); } transcode_job_free(j); } static bool __ssrc_handler_decode_common(struct codec_ssrc_handler *ch, struct codec_handler *h, const format_t *enc_format) { if (h->pcm_dtmf_detect) { ilogs(codec, LOG_DEBUG, "Inserting DTMF DSP for output payload type %i", h->dtmf_payload_type); ch->dtmf_format = (format_t) { .clockrate = 8000, .channels = 1, .format = AV_SAMPLE_FMT_S16 }; ch->dtmf_dsp = dtmf_rx_init(NULL, NULL, NULL); if (!ch->dtmf_dsp) ilogs(codec, LOG_ERR, "Failed to allocate DTMF RX context"); else dtmf_rx_set_realtime_callback(ch->dtmf_dsp, __dtmf_dsp_callback, ch); } ch->decoder = decoder_new_fmtp(h->source_pt.codec_def, h->source_pt.clock_rate, h->source_pt.channels, h->source_pt.ptime, enc_format, &h->source_pt.format, &h->source_pt.format_parameters, &h->source_pt.codec_opts); if (!ch->decoder) return false; if (rtpe_config.dtx_cn_params.len) { if (ch->decoder->def->amr) { if (rtpe_config.amr_cn_dtx) decoder_set_cn_dtx(ch->decoder, &rtpe_config.dtx_cn_params); } else decoder_set_cn_dtx(ch->decoder, &rtpe_config.dtx_cn_params); } ch->decoder->event_data = h->media; ch->decoder->event_func = codec_decoder_event; __dtx_setup(ch); return true; } static struct ssrc_entry *__ssrc_handler_transcode_new(void *p) { struct codec_handler *h = p; if (!h->source_pt.codec_def || !h->dest_pt.codec_def) return NULL; ilogs(codec, LOG_DEBUG, "Creating SSRC transcoder from %s/%u/%i to " "%s/%u/%i", h->source_pt.codec_def->rtpname, h->source_pt.clock_rate, h->source_pt.channels, h->dest_pt.codec_def->rtpname, h->dest_pt.clock_rate, h->dest_pt.channels); struct codec_ssrc_handler *ch = obj_alloc0("codec_ssrc_handler", sizeof(*ch), __free_ssrc_handler); ch->handler = h; ch->ptime = h->dest_pt.ptime; ch->sample_buffer = g_string_new(""); ch->bitrate = h->dest_pt.bitrate ? : h->dest_pt.codec_def->default_bitrate; format_t dec_format = { .clockrate = h->source_pt.clock_rate, .channels = h->source_pt.channels, .format = -1, }; format_t enc_format = { .clockrate = h->dest_pt.clock_rate, .channels = h->dest_pt.channels, .format = -1, }; // see if there's a complete codec chain usable for this if (!h->pcm_dtmf_detect) ch->chain = codec_cc_new(h->source_pt.codec_def, &dec_format, h->dest_pt.codec_def, &enc_format, ch->bitrate, ch->ptime, async_chain_start, async_chain_finish); if (ch->chain) { ilogs(codec, LOG_DEBUG, "Using codec chain to transcode from " STR_FORMAT "/" STR_FORMAT " to " STR_FORMAT "/" STR_FORMAT, STR_FMT(&h->source_pt.encoding_with_params), STR_FMT0(&h->source_pt.format_parameters), STR_FMT(&h->dest_pt.encoding_with_params), STR_FMT0(&h->dest_pt.format_parameters)); return &ch->h; } ch->encoder = encoder_new(); if (!ch->encoder) goto err; if (encoder_config_fmtp(ch->encoder, h->dest_pt.codec_def, ch->bitrate, ch->ptime, &dec_format, &enc_format, &ch->encoder_format, &h->dest_pt.format, &h->dest_pt.format_parameters, &h->dest_pt.codec_opts)) goto err; if (!__ssrc_handler_decode_common(ch, h, &ch->encoder_format)) goto err; ch->bytes_per_packet = (ch->encoder->samples_per_packet ? : ch->encoder->samples_per_frame) * h->dest_pt.codec_def->bits_per_sample / 8; ilogs(codec, LOG_DEBUG, "Encoder created with clockrate %i, %i channels, using sample format %i " "(ptime %i for %i samples per frame and %i samples (%i bytes) per packet, bitrate %i)", ch->encoder_format.clockrate, ch->encoder_format.channels, ch->encoder_format.format, ch->ptime, ch->encoder->samples_per_frame, ch->encoder->samples_per_packet, ch->bytes_per_packet, ch->bitrate); return &ch->h; err: obj_put(&ch->h); return NULL; } static struct ssrc_entry *__ssrc_handler_decode_new(void *p) { struct codec_handler *h = p; ilogs(codec, LOG_DEBUG, "Creating SSRC decoder for %s/%u/%i", h->source_pt.codec_def->rtpname, h->source_pt.clock_rate, h->source_pt.channels); struct codec_ssrc_handler *ch = obj_alloc0("codec_ssrc_handler", sizeof(*ch), __free_ssrc_handler); ch->handler = h; ch->ptime = h->dest_pt.ptime; format_t dest_format = { .clockrate = h->dest_pt.clock_rate, .channels = h->dest_pt.channels, .format = AV_SAMPLE_FMT_S16, }; if (!__ssrc_handler_decode_common(ch, h, &dest_format)) goto err; return &ch->h; err: obj_put(&ch->h); return NULL; } static int __encoder_flush(encoder_t *enc, void *u1, void *u2) { int *going = u1; *going = 1; return 0; } static void __free_ssrc_handler(void *chp) { struct codec_ssrc_handler *ch = chp; if (ch->decoder) decoder_close(ch->decoder); if (ch->encoder) { // flush out queue to avoid ffmpeg warnings int going; do { going = 0; encoder_input_data(ch->encoder, NULL, __encoder_flush, &going, NULL); } while (going); encoder_free(ch->encoder); } codec_cc_free(&ch->chain); if (ch->sample_buffer) g_string_free(ch->sample_buffer, TRUE); if (ch->dtmf_dsp) dtmf_rx_free(ch->dtmf_dsp); resample_shutdown(&ch->dtmf_resampler); t_queue_clear_full(&ch->dtmf_events, dtmf_event_free); t_queue_clear_full(&ch->silence_events, silence_event_free); t_queue_clear(&ch->async_jobs); dtx_buffer_stop(&ch->dtx_buffer); } void packet_encoded_packetize(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, packetizer_f pkt_f, void *pkt_f_data, const struct fraction *cr_fact, void (*tx_f)(AVPacket *, struct codec_ssrc_handler *, struct media_packet *, str *, char *, unsigned int, const struct fraction *cr_fact)) { // run this through our packetizer AVPacket *in_pkt = pkt; while (true) { // figure out how big of a buffer we need unsigned int payload_len = MAX(MAX(pkt->size, ch->bytes_per_packet), sizeof(struct telephone_event_payload)); unsigned int pkt_len = sizeof(struct rtp_header) + payload_len + RTP_BUFFER_TAIL_ROOM; // prepare our buffers char *buf = bufferpool_alloc(media_bufferpool, pkt_len); char *payload = buf + sizeof(struct rtp_header); // tell our packetizer how much we want str inout = STR_INIT_LEN(payload, payload_len); // and request a packet if (in_pkt) ilogs(transcoding, LOG_DEBUG, "Adding %i bytes to packetizer", in_pkt->size); int ret = pkt_f(in_pkt, ch->sample_buffer, &inout, pkt_f_data); if (G_UNLIKELY(ret == -1 || pkt->pts == AV_NOPTS_VALUE)) { // nothing bufferpool_unref(buf); break; } ilogs(transcoding, LOG_DEBUG, "Received packet of %zu bytes from packetizer", inout.len); tx_f(pkt, ch, mp, &inout, buf, pkt_len, cr_fact); if (ret == 0) { // no more to go break; } // loop around and get more in_pkt = NULL; } } static int packet_encoded_rtp(encoder_t *enc, void *u1, void *u2) { struct codec_ssrc_handler *ch = u1; struct media_packet *mp = u2; ilogs(transcoding, LOG_DEBUG, "RTP media successfully encoded: TS %llu, len %i", (unsigned long long) enc->avpkt->pts, enc->avpkt->size); packet_encoded_packetize(enc->avpkt, ch, mp, enc->def->packetizer, enc, &enc->clockrate_fact, packet_encoded_tx); return 0; } static void __codec_output_rtp_seq_passthrough(struct media_packet *mp, struct codec_scheduler *csch, struct codec_handler *handler, char *buf, // bufferpool_alloc'd, room for rtp_header + filled-in payload unsigned int payload_len, unsigned long payload_ts, int marker, int payload_type, unsigned long ts_delay) { codec_output_rtp(mp, csch, handler, buf, payload_len, payload_ts, marker, -1, 0, payload_type, ts_delay); } static void __codec_output_rtp_seq_own(struct media_packet *mp, struct codec_scheduler *csch, struct codec_handler *handler, char *buf, // bufferpool_alloc'd, room for rtp_header + filled-in payload unsigned int payload_len, unsigned long payload_ts, int marker, int payload_type, unsigned long ts_delay) { // XXX this bypasses the send timer codec_output_rtp(mp, csch, handler, buf, payload_len, payload_ts, marker, mp->ssrc_out->seq_out++, 0, payload_type, ts_delay); } static void __packet_encoded_tx(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *inout, char *buf, unsigned int pkt_len, const struct fraction *cr_fact, __typeof(__codec_output_rtp_seq_passthrough) func) { // check special payloads unsigned int repeats = 0; unsigned long ts_delay = 0; int payload_type = -1; int dtmf_pt = ch->handler->dtmf_payload_type; if (dtmf_pt == -1) dtmf_pt = ch->handler->real_dtmf_payload_type; int is_dtmf = 0; if (dtmf_pt != -1) is_dtmf = dtmf_event_payload(inout, (uint64_t *) &pkt->pts, pkt->duration, &ch->dtmf_event, &ch->dtmf_events); if (is_dtmf) { payload_type = dtmf_pt; if (is_dtmf == 1) ch->rtp_mark = 1; // DTMF start event else if (is_dtmf == 3) repeats = 2; // DTMF end event // we need to pass a ts_delay to codec_output_rtp to ensure the calculated time // to send the packet is offset by the event duration of the DTMF packets // but we need to reduce it by one packet duration so that the delay is offset // from the first event packet struct telephone_event_payload *ev_pt = (void *) inout->s; ts_delay = ntohs(ev_pt->duration) - (ch->handler->dest_pt.ptime * ch->handler->dest_pt.clock_rate / 1000); } else { if (is_silence_event(inout, &ch->silence_events, pkt->pts, pkt->duration)) payload_type = ch->handler->cn_payload_type; } // ready to send do { char *send_buf = buf; if (repeats > 0) { // need to duplicate the payload as codec_output_rtp consumes it send_buf = bufferpool_alloc(media_bufferpool, pkt_len); memcpy(send_buf, buf, pkt_len); } func(mp, &ch->csch, ch->handler, send_buf, inout->len, ch->csch.first_ts + fraction_divl(pkt->pts, cr_fact), ch->rtp_mark ? 1 : 0, payload_type, ts_delay); mp->ssrc_out->parent->seq_diff++; ch->rtp_mark = 0; } while (repeats--); } static void packet_encoded_tx(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *inout, char *buf, unsigned int pkt_len, const struct fraction *cr_fact) { __packet_encoded_tx(pkt, ch, mp, inout, buf, pkt_len, cr_fact, __codec_output_rtp_seq_passthrough); } static void packet_encoded_tx_seq_own(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *inout, char *buf, unsigned int pkt_len, const struct fraction *cr_fact) { __packet_encoded_tx(pkt, ch, mp, inout, buf, pkt_len, cr_fact, __codec_output_rtp_seq_own); } static void __dtmf_detect(struct codec_ssrc_handler *ch, AVFrame *frame) { if (!ch->dtmf_dsp) return; if (!ch->handler->pcm_dtmf_detect) { ch->dtmf_event.code = 0; return; } AVFrame *dsp_frame = resample_frame(&ch->dtmf_resampler, frame, &ch->dtmf_format); if (!dsp_frame) { ilogs(transcoding, LOG_ERR | LOG_FLAG_LIMIT, "Failed to resample audio for DTMF DSP"); return; } ilogs(transcoding, LOG_DEBUG, "DTMF detect, TS %lu -> %lu, %u -> %u samples", (unsigned long) frame->pts, (unsigned long) dsp_frame->pts, frame->nb_samples, dsp_frame->nb_samples); if (dsp_frame->pts > ch->dtmf_ts) dtmf_rx_fillin(ch->dtmf_dsp, dsp_frame->pts - ch->dtmf_ts); else if (dsp_frame->pts < ch->dtmf_ts) ilogs(transcoding, LOG_ERR | LOG_FLAG_LIMIT, "DTMF TS seems to run backwards (%lu < %lu)", (unsigned long) dsp_frame->pts, (unsigned long) ch->dtmf_ts); int num_samples = dsp_frame->nb_samples; int16_t *samples = (void *) dsp_frame->extended_data[0]; while (num_samples > 0) { int ret = dtmf_rx(ch->dtmf_dsp, samples, num_samples); if (ret < 0 || ret >= num_samples) { ilogs(transcoding, LOG_ERR | LOG_FLAG_LIMIT, "DTMF DSP returned error %i", ret); break; } samples += num_samples - ret; num_samples = ret; } ch->dtmf_ts = dsp_frame->pts + dsp_frame->nb_samples; av_frame_free(&dsp_frame); } static int packet_decoded_common(decoder_t *decoder, AVFrame *frame, void *u1, void *u2, encoder_input_func_t input_func) { struct codec_ssrc_handler *ch = u1; struct media_packet *mp = u2; ilogs(transcoding, LOG_DEBUG, "RTP media successfully decoded: TS %llu, samples %u", (unsigned long long) frame->pts, frame->nb_samples); // switch from input codec context to output context if necessary struct codec_ssrc_handler *new_ch = __output_ssrc_handler(ch, mp); if (new_ch != ch) { // copy some essential parameters if (!new_ch->csch.first_ts) new_ch->csch.first_ts = ch->csch.first_ts; if (decoder->def->supplemental) { // supp codecs return bogus timestamps. Adjust the frame's TS to be in // line with the primary decoder frame->pts -= new_ch->csch.first_ts; } ch = new_ch; } struct codec_handler *h = ch->handler; if (h->stats_entry) { int idx = rtpe_now.tv_sec & 1; atomic64_add(&h->stats_entry->pcm_samples[idx], frame->nb_samples); atomic64_add(&h->stats_entry->pcm_samples[2], frame->nb_samples); } if (ch->skip_pts) { if (frame->nb_samples <= 0) ; else if (frame->nb_samples < ch->skip_pts) ch->skip_pts -= frame->nb_samples; else ch->skip_pts = 0; ilogs(transcoding, LOG_DEBUG, "Discarding %i samples", frame->nb_samples); goto discard; } if (G_UNLIKELY(!ch->encoder)) { ilogs(transcoding, LOG_INFO | LOG_FLAG_LIMIT, "Discarding decoded %i PCM samples due to lack of output encoder", frame->nb_samples); goto discard; } __dtmf_detect(ch, frame); __silence_detect(ch, frame); // locking deliberately ignored if (mp->media_out) ch->encoder->callback = mp->media_out->encoder_callback; uint32_t ts = frame->pts + ch->csch.first_ts; __buffer_delay_frame(h->input_handler ? h->input_handler->delay_buffer : h->delay_buffer, ch, input_func, frame, mp, ts); frame = NULL; // consumed discard: av_frame_free(&frame); obj_put(&new_ch->h); return 0; } static int packet_decoded_fifo(decoder_t *decoder, AVFrame *frame, void *u1, void *u2) { return packet_decoded_common(decoder, frame, u1, u2, encoder_input_fifo); } static int packet_decoded_direct(decoder_t *decoder, AVFrame *frame, void *u1, void *u2) { return packet_decoded_common(decoder, frame, u1, u2, encoder_input_data); } static int packet_decoded_audio_player(decoder_t *decoder, AVFrame *frame, void *u1, void *u2) { struct codec_ssrc_handler *ch = u1; struct media_packet *mp = u2; ilogs(transcoding, LOG_DEBUG, "RTP media decoded for audio player: TS %llu, samples %u", (unsigned long long) frame->pts, frame->nb_samples); struct call_media *m = mp->media_out; if (!m || !m->audio_player) { // discard XXX log? return 0; } audio_player_add_frame(m->audio_player, ch->h.ssrc, frame); // XXX error checking/reporting return 0; } static tc_code __rtp_decode_direct(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { tc_code code = TCC_OK; if (packet) { #ifdef HAVE_CODEC_CHAIN if (ch->chain) { #else if (false) { #endif static const struct fraction chain_fact = {1,1}; AVPacket *pkt = codec_cc_input_data(ch->chain, packet->payload, packet->ts, /* x, y, z: */ ch, input_ch, mp); if (pkt) { packet_encoded_packetize(pkt, ch, mp, packetizer_passthrough, NULL, &chain_fact, packet_encoded_tx); av_packet_unref(pkt); } } else { int ret = decoder_input_data_ptime(ch->decoder, packet->payload, packet->ts, &mp->ptime, ch->handler->packet_decoded, ch, mp); code = ret == 0 ? TCC_OK : TCC_ERR; } } __buffer_delay_seq(input_ch->handler->delay_buffer, mp, -1); return code; } static tc_code __rtp_decode_async(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { struct transcode_job *j = g_new(__typeof(*j), 1); media_packet_copy(&j->mp, mp); j->ch = obj_get(&ch->h); j->input_ch = obj_get(&input_ch->h); j->packet = packet; j->done = false; // append-only here, with the SSRC handler locked t_queue_push_tail(&ch->async_jobs, j); // if this is the first job for this SSRC handler, notify async worker if (ch->async_jobs.length == 1) { LOCK(&transcode_lock); t_queue_push_tail(&transcode_jobs, j); cond_signal(&transcode_cond); } return TCC_CONSUMED; } static tc_code packet_decode(struct codec_ssrc_handler *ch, struct codec_ssrc_handler *input_ch, struct transcode_packet *packet, struct media_packet *mp) { tc_code ret = TCC_OK; if (!ch->csch.first_ts) ch->csch.first_ts = packet->ts; if (ch->decoder && ch->decoder->def->dtmf) { if (packet_dtmf_event(ch, input_ch, packet, mp) == -1) goto out; } else { if (input_ch->dtmf_start_ts && !rtpe_config.dtmf_no_suppress) { if ((packet->ts > input_ch->dtmf_start_ts && packet->ts - input_ch->dtmf_start_ts > 80000) || (packet->ts < input_ch->dtmf_start_ts && input_ch->dtmf_start_ts - packet->ts > 80000)) { ilogs(transcoding, LOG_DEBUG, "Resetting decoder DTMF state due to TS discrepancy"); input_ch->dtmf_start_ts = 0; } else packet = NULL; } } if (__buffer_dtx(input_ch->dtx_buffer, ch, input_ch, packet, mp, __rtp_decode)) ret = TCC_CONSUMED; else { ilogs(transcoding, LOG_DEBUG, "Decoding RTP packet now"); ret = __rtp_decode(ch, input_ch, packet, mp); } out: return ret; } #else // dummy/stub static void __buffer_delay_raw(struct delay_buffer *dbuf, struct codec_handler *handler, raw_input_func_t input_func, struct media_packet *mp, unsigned int clockrate) { input_func(mp, clockrate); } #endif void codec_update_all_handlers(struct call_monologue *ml) { for (int i = 0; i < ml->medias->len; i++) { struct call_media * source_media = ml->medias->pdata[i]; if (!source_media) continue; for (__auto_type sub = source_media->media_subscribers.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct call_media * sink_media = ms->media; if (!sink_media) continue; codec_handlers_update(source_media, sink_media); } } dialogue_unconfirm(ml, "updating codec handlers"); } void codec_update_all_source_handlers(struct call_monologue *ml, const sdp_ng_flags *flags) { for (int i = 0; i < ml->medias->len; i++) { struct call_media * sink_media = ml->medias->pdata[i]; if (!sink_media) continue; for (__auto_type sub = sink_media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct call_media * source_media = ms->media; if (!source_media) continue; codec_handlers_update(source_media, sink_media, .flags = flags); } } dialogue_unconfirm(ml, "updating codec source handlers"); } void codec_calc_jitter(struct ssrc_ctx *ssrc, unsigned long ts, unsigned int clockrate, const struct timeval *tv) { if (!ssrc || !clockrate) return; struct ssrc_entry_call *sec = ssrc->parent; // RFC 3550 A.8 uint32_t transit = (((timeval_us(tv) / 1000) * clockrate) / 1000) - ts; mutex_lock(&sec->h.lock); int32_t d = 0; if (sec->transit) d = transit - sec->transit; sec->transit = transit; if (d < 0) d = -d; // ignore implausibly large values if (d < 100000) sec->jitter += d - ((sec->jitter + 8) >> 4); mutex_unlock(&sec->h.lock); } static void codec_calc_lost(struct ssrc_ctx *ssrc, uint16_t seq) { struct ssrc_entry_call *s = ssrc->parent; LOCK(&s->h.lock); // XXX shared code from kernel module uint32_t last_seq = s->last_seq_tracked; uint32_t new_seq = last_seq; // old seq or seq reset? uint16_t old_seq_trunc = last_seq & 0xffff; uint16_t seq_diff = seq - old_seq_trunc; if (seq_diff == 0 || seq_diff >= 0xfeff) // old/dup seq - ignore ; else if (seq_diff > 0x100) { // reset seq and loss tracker new_seq = seq; s->last_seq_tracked = seq; s->lost_bits = -1; } else { // seq wrap? new_seq = (last_seq & 0xffff0000) | seq; while (new_seq < last_seq) { new_seq += 0x10000; if ((new_seq & 0xffff0000) == 0) // ext seq wrapped break; } seq_diff = new_seq - last_seq; s->last_seq_tracked = new_seq; // shift loss tracker bit field and count losses if (seq_diff >= (sizeof(s->lost_bits) * 8)) { // complete loss s->packets_lost += sizeof(s->lost_bits) * 8; s->lost_bits = -1; } else { while (seq_diff) { // shift out one bit and see if we lost it if ((s->lost_bits & 0x80000000) == 0) s->packets_lost++; s->lost_bits <<= 1; seq_diff--; } } } // track this frame as being seen seq_diff = (new_seq & 0xffff) - seq; if (seq_diff < (sizeof(s->lost_bits) * 8)) s->lost_bits |= (1 << seq_diff); } #ifdef WITH_TRANSCODING static int handler_func_transcode(struct codec_handler *h, struct media_packet *mp) { if (G_UNLIKELY(!mp->rtp)) return handler_func_passthrough(h, mp); if (!handler_silence_block(h, mp)) return 0; // use main codec handler for supp codecs if (h->source_pt.codec_def->supplemental) { h->input_handler = __input_handler(h, mp); h->output_handler = h->input_handler; } else h->input_handler = h; // create new packet and insert it into sequencer queue ilogs(transcoding, LOG_DEBUG, "Received RTP packet: SSRC %" PRIx32 ", PT %u, seq %u, TS %u, len %zu", ntohl(mp->rtp->ssrc), mp->rtp->m_pt, ntohs(mp->rtp->seq_num), ntohl(mp->rtp->timestamp), mp->payload.len); codec_calc_jitter(mp->ssrc_in, ntohl(mp->rtp->timestamp), h->input_handler->source_pt.clock_rate, &mp->tv); if (h->stats_entry) { unsigned int idx = rtpe_now.tv_sec & 1; int last_tv_sec = g_atomic_int_get(&h->stats_entry->last_tv_sec[idx]); if (last_tv_sec != (int) rtpe_now.tv_sec) { if (g_atomic_int_compare_and_exchange(&h->stats_entry->last_tv_sec[idx], last_tv_sec, rtpe_now.tv_sec)) { // new second - zero out stats. slight race condition here atomic64_set(&h->stats_entry->packets_input[idx], 0); atomic64_set(&h->stats_entry->bytes_input[idx], 0); atomic64_set(&h->stats_entry->pcm_samples[idx], 0); } } atomic64_inc(&h->stats_entry->packets_input[idx]); atomic64_add(&h->stats_entry->bytes_input[idx], mp->payload.len); atomic64_inc(&h->stats_entry->packets_input[2]); atomic64_add(&h->stats_entry->bytes_input[2], mp->payload.len); } struct transcode_packet *packet = g_slice_alloc0(sizeof(*packet)); packet->packet_func = packet_decode; packet->rtp = *mp->rtp; packet->handler = h; int ret = __handler_func_sequencer(mp, packet); return ret; } static int handler_func_playback(struct codec_handler *h, struct media_packet *mp) { decoder_input_data(h->ssrc_handler->decoder, &mp->payload, mp->rtp->timestamp, h->packet_decoded, h->ssrc_handler, mp); return 0; } static int handler_func_inject_dtmf(struct codec_handler *h, struct media_packet *mp) { h->input_handler = __input_handler(h, mp); h->output_handler = h->input_handler; struct codec_ssrc_handler *ch = get_ssrc(mp->ssrc_in->parent->h.ssrc, h->ssrc_hash); if (!ch) return 0; decoder_input_data(ch->decoder, &mp->payload, mp->rtp->timestamp, h->packet_decoded, ch, mp); obj_put(&ch->h); return 0; } #endif static rtp_payload_type *codec_make_payload_type_sup(const str *codec_str, struct call_media *media) { rtp_payload_type *ret = codec_make_payload_type(codec_str, media ? media->type_id : MT_UNKNOWN); if (!ret) goto err2; #ifndef WITH_TRANSCODING return ret; #else // check for type mismatch and don't warn if it is if (!ret->codec_def || (media && media->type_id && ret->codec_def->media_type != media->type_id)) { payload_type_free(ret); return NULL; } // we must support both encoding and decoding if (!ret->codec_def->support_decoding) goto err; if (!ret->codec_def->support_encoding) goto err; if (ret->codec_def->default_channels <= 0 || ret->codec_def->default_clockrate < 0) goto err; return ret; err: payload_type_free(ret); #endif err2: ilogs(codec, LOG_WARN, "Codec '" STR_FORMAT "' requested for transcoding is not supported", STR_FMT(codec_str)); return NULL; } #ifdef WITH_TRANSCODING static rtp_payload_type *codec_add_payload_type_pt(rtp_payload_type *pt, struct call_media *media, struct call_media *other_media, struct codec_store *extra_cs) { if (!pt) return NULL; pt->payload_type = __unused_pt_number(media, other_media, extra_cs, pt); if (pt->payload_type < 0) { ilogs(codec, LOG_WARN, "Ran out of RTP payload type numbers while adding codec '" STR_FORMAT "/" STR_FORMAT "' for transcoding", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); payload_type_free(pt); return NULL; } return pt; } static rtp_payload_type *codec_add_payload_type(const str *codec, struct call_media *media, struct call_media *other_media, struct codec_store *extra_cs) { rtp_payload_type *pt = codec_make_payload_type_sup(codec, media); return codec_add_payload_type_pt(pt, media, other_media, extra_cs); } #endif void payload_type_clear(rtp_payload_type *p) { g_queue_clear_full(&p->rtcp_fb, free); str_free_dup(&p->encoding); str_free_dup(&p->encoding_parameters); str_free_dup(&p->encoding_with_params); str_free_dup(&p->encoding_with_full_params); str_free_dup(&p->format_parameters); str_free_dup(&p->codec_opts); ZERO(*p); p->payload_type = -1; } void payload_type_free(rtp_payload_type *p) { payload_type_clear(p); g_slice_free1(sizeof(*p), p); } void payload_type_destroy(rtp_payload_type **p) { if (*p) payload_type_free(*p); *p = NULL; } // dst must be pre-initialised (zeroed) static void rtp_payload_type_copy(rtp_payload_type *dst, const rtp_payload_type *src) { payload_type_clear(dst); *dst = *src; // make shallow copy of lists g_queue_init(&dst->rtcp_fb); g_queue_append(&dst->rtcp_fb, &src->rtcp_fb); // duplicate contents codec_init_payload_type(dst, MT_UNKNOWN); } rtp_payload_type *rtp_payload_type_dup(const rtp_payload_type *pt) { rtp_payload_type *pt_copy = g_slice_alloc0(sizeof(*pt)); rtp_payload_type_copy(pt_copy, pt); return pt_copy; } static void __rtp_payload_type_add_name(codec_names_ht ht, rtp_payload_type *pt) { GQueue *q = codec_names_ht_lookup_insert(ht, str_dup(&pt->encoding)); g_queue_push_tail(q, GINT_TO_POINTER(pt->payload_type)); q = codec_names_ht_lookup_insert(ht, str_dup(&pt->encoding_with_params)); g_queue_push_tail(q, GINT_TO_POINTER(pt->payload_type)); q = codec_names_ht_lookup_insert(ht, str_dup(&pt->encoding_with_full_params)); g_queue_push_tail(q, GINT_TO_POINTER(pt->payload_type)); } #ifdef WITH_TRANSCODING static void __insert_codec_tracker(GHashTable *all_clockrates, GHashTable *all_supp_codecs, struct codec_tracker *sct, rtp_pt_list *link) { rtp_payload_type *pt = link->data; if (!pt->codec_def || !pt->codec_def->supplemental) g_hash_table_replace(all_clockrates, GUINT_TO_POINTER(pt->clock_rate), GUINT_TO_POINTER(GPOINTER_TO_UINT( g_hash_table_lookup(all_clockrates, GUINT_TO_POINTER(pt->clock_rate))) + 1)); else { GHashTable *clockrates = g_hash_table_lookup(all_supp_codecs, &pt->encoding); if (!clockrates) { clockrates = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) g_queue_free); g_hash_table_replace(all_supp_codecs, str_dup(&pt->encoding), clockrates); } GQueue *entries = g_hash_table_lookup_queue_new(clockrates, GUINT_TO_POINTER(pt->clock_rate), NULL); g_queue_push_tail(entries, link); } } #endif static int __codec_options_set1(call_t *call, rtp_payload_type *pt, const str *enc, str_case_value_ht codec_set) { str *pt_str = t_hash_table_lookup(codec_set, enc); if (!pt_str) return 0; rtp_payload_type *pt_parsed = codec_make_payload_type(pt_str, MT_UNKNOWN); if (!pt_parsed) return 0; // match parameters if (pt->clock_rate != pt_parsed->clock_rate || pt->channels != pt_parsed->channels) { payload_type_free(pt_parsed); return 0; } // match - apply options if (pt_parsed->bitrate) pt->bitrate = pt_parsed->bitrate; if (!pt->codec_opts.len && pt_parsed->codec_opts.len) { str_free_dup(&pt->codec_opts); pt->codec_opts = pt_parsed->codec_opts; pt_parsed->codec_opts = STR_NULL; } payload_type_free(pt_parsed); return 1; } static void __codec_options_set(call_t *call, rtp_payload_type *pt, str_case_value_ht codec_set) { if (!call) return; if (!t_hash_table_is_set(codec_set)) return; if (__codec_options_set1(call, pt, &pt->encoding_with_full_params, codec_set)) return; if (__codec_options_set1(call, pt, &pt->encoding_with_params, codec_set)) return; if (__codec_options_set1(call, pt, &pt->encoding, codec_set)) return; } static void codec_tracker_destroy(struct codec_tracker **sct) { #ifdef WITH_TRANSCODING if (!*sct) return; g_hash_table_destroy((*sct)->touched); g_slice_free1(sizeof(**sct), *sct); *sct = NULL; #endif } static struct codec_tracker *codec_tracker_init(void) { #ifdef WITH_TRANSCODING struct codec_tracker *ret = g_slice_alloc0(sizeof(*ret)); ret->touched = g_hash_table_new(g_direct_hash, g_direct_equal); return ret; #else return NULL; #endif } static void codec_tracker_move(struct codec_tracker **dst, struct codec_tracker **src) { #ifdef WITH_TRANSCODING codec_tracker_destroy(dst); *dst = *src; *src = NULL; #endif } static void codec_touched_real(struct codec_store *cs, rtp_payload_type *pt) { #ifdef WITH_TRANSCODING if (pt->codec_def && pt->codec_def->supplemental) return; g_hash_table_replace(cs->tracker->touched, GUINT_TO_POINTER(pt->clock_rate), (void *) 0x1); #endif } static void codec_touched(struct codec_store *cs, rtp_payload_type *pt) { #ifdef WITH_TRANSCODING if (pt->codec_def && pt->codec_def->supplemental) { cs->tracker->all_touched = 1; return; } g_hash_table_replace(cs->tracker->touched, GUINT_TO_POINTER(pt->clock_rate), (void *) 0x1); #endif } static bool is_codec_touched_rate(struct codec_tracker *tracker, unsigned int clock_rate) { #ifdef WITH_TRANSCODING if (!tracker || !tracker->touched) return false; if (tracker->all_touched) return true; return g_hash_table_lookup(tracker->touched, GUINT_TO_POINTER(clock_rate)) ? true : false; #else return false; #endif } static bool is_codec_touched(struct codec_store *cs, rtp_payload_type *pt) { if (!cs) return false; return is_codec_touched_rate(cs->tracker, pt->clock_rate); } #ifdef WITH_TRANSCODING static int ptr_cmp(const void *a, const void *b) { if (a < b) return -1; if (a > b) return 1; return 0; } void codec_tracker_update(struct codec_store *cs, struct codec_store *orig_cs) { if (!cs) return; struct codec_tracker *sct = cs->tracker; if (!sct) return; ilogs(codec, LOG_DEBUG, "Updating supplemental codecs for " STR_FORMAT " #%u", STR_FMT(&cs->media->monologue->tag), cs->media->index); // build our tables GHashTable *all_clockrates = g_hash_table_new(g_direct_hash, g_direct_equal); GHashTable *all_supp_codecs = g_hash_table_new_full((GHashFunc) str_case_hash, (GEqualFunc) str_case_equal, free, (GDestroyNotify) g_hash_table_destroy); for (__auto_type l = cs->codec_prefs.head; l; l = l->next) __insert_codec_tracker(all_clockrates, all_supp_codecs, sct, l); // get all supported audio clock rates GList *clockrates = g_hash_table_get_keys(all_clockrates); // and to ensure consistent results clockrates = g_list_sort(clockrates, ptr_cmp); // for each supplemental codec supported ... GList *supp_codecs = g_hash_table_get_keys(all_supp_codecs); for (GList *l = supp_codecs; l; l = l->next) { // ... compare the list of clock rates against the clock rates supported by the audio codecs str *supp_codec = l->data; GHashTable *supp_clockrates = g_hash_table_lookup(all_supp_codecs, supp_codec); // iterate audio clock rates and check against supp clockrates for (GList *k = clockrates; k; k = k->next) { unsigned int clockrate = GPOINTER_TO_UINT(k->data); // has it been removed? if (!g_hash_table_lookup(all_clockrates, GUINT_TO_POINTER(clockrate))) continue; // is this already supported? if (g_hash_table_lookup(supp_clockrates, GUINT_TO_POINTER(clockrate))) { // good, remember this g_hash_table_remove(supp_clockrates, GUINT_TO_POINTER(clockrate)); continue; } // ignore if we haven't touched anything with that clock rate if (!is_codec_touched_rate(sct, clockrate)) continue; g_autoptr(char) pt_s = g_strdup_printf(STR_FORMAT "/%u", STR_FMT(supp_codec), clockrate); str pt_str = STR_INIT(pt_s); // see if we have a matching PT from before rtp_payload_type *pt = NULL; if (orig_cs) { GQueue *ptq = t_hash_table_lookup(orig_cs->codec_names, &pt_str); if (ptq) { for (GList *n = ptq->head; n; n = n->next) { pt = t_hash_table_lookup(orig_cs->codecs, n->data); if (!pt) continue; pt = rtp_payload_type_dup(pt); break; } } } if (!pt) pt = codec_add_payload_type(&pt_str, cs->media, NULL, NULL); if (!pt) continue; ilogs(codec, LOG_DEBUG, "Adding supplemental codec " STR_FORMAT " for clock rate %u (%i)", STR_FMT(supp_codec), clockrate, pt->payload_type); pt->for_transcoding = 1; codec_store_add_raw_order(cs, pt); } // finally check which clock rates are left over and remove those GList *to_remove = g_hash_table_get_keys(supp_clockrates); while (to_remove) { unsigned int clockrate = GPOINTER_TO_UINT(to_remove->data); to_remove = g_list_delete_link(to_remove, to_remove); // ignore if we haven't touched anything with that clock rate if (!is_codec_touched_rate(sct, clockrate)) continue; GQueue *entries = g_hash_table_lookup(supp_clockrates, GUINT_TO_POINTER(clockrate)); for (GList *j = entries->head; j; j = j->next) { rtp_pt_list *link = j->data; rtp_payload_type *pt = link->data; ilogs(codec, LOG_DEBUG, "Eliminating supplemental codec " STR_FORMAT "/" STR_FORMAT " (%i) with " "stray clock rate %u", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type, clockrate); __codec_store_delete_link(link, cs); } } } g_list_free(supp_codecs); g_list_free(clockrates); g_hash_table_destroy(all_clockrates); g_hash_table_destroy(all_supp_codecs); } #endif void codec_store_cleanup(struct codec_store *cs) { if (t_hash_table_is_set(cs->codecs)) t_hash_table_destroy(cs->codecs); if (t_hash_table_is_set(cs->codec_names)) t_hash_table_destroy(cs->codec_names); t_queue_clear_full(&cs->codec_prefs, payload_type_free); cs->supp_link = NULL; codec_tracker_destroy(&cs->tracker); ZERO(*cs); } void codec_store_init(struct codec_store *cs, struct call_media *media) { if (!media) media = cs->media; codec_store_cleanup(cs); cs->codecs = codecs_ht_new(); cs->codec_names = codec_names_ht_new(); cs->media = media; cs->tracker = codec_tracker_init(); } static void codec_store_move(struct codec_store *dst, struct codec_store *src) { *dst = *src; ZERO(*src); codec_store_init(src, dst->media); } // `out_compat` must be initialised already, or NULL // either `codec` or `pt_parsed` must be given (or both) static void codec_store_find_matching_codecs(rtp_pt_q *out_compat, rtp_payload_type **out_exact, struct codec_store *cs, const str *codec, rtp_payload_type *pt_parsed) { g_autoptr(rtp_payload_type) pt_store = NULL; rtp_payload_type *pt = NULL; if (pt_parsed) pt = pt_parsed; else { // parse out the codec params if any are given, otherwise just go with the name if (str_chr(codec, '/')) pt = pt_store = codec_make_payload_type_sup(codec, cs->media); } GQueue *pts = t_hash_table_lookup(cs->codec_names, codec); if (pt) { if (!pts) pts = t_hash_table_lookup(cs->codec_names, &pt->encoding_with_params); if (!pts) pts = t_hash_table_lookup(cs->codec_names, &pt->encoding); } if (!pts) return; // no matches // see if given format parameters match for (GList *k = pts->head; k; k = k->next) { rtp_payload_type *pt2 = t_hash_table_lookup(cs->codecs, k->data); if (!pt2) continue; ensure_codec_def(pt2, cs->media); int match; if (pt) match = rtp_payload_type_fmt_cmp(pt, pt2); else match = (str_cmp_str(codec, &pt2->encoding) == 0) ? 0 : -1; if (match == 0) { if (out_exact && !*out_exact) *out_exact = pt2; if (out_compat) t_queue_push_head(out_compat, pt2); } else if (out_compat && match == 1) t_queue_push_tail(out_compat, pt2); } } __attribute__((nonnull(1, 2))) static void codec_store_add_raw_link(struct codec_store *cs, rtp_payload_type *pt, rtp_pt_list *link) { // cs->media may be NULL ensure_codec_def(pt, cs->media); if (cs->media && cs->media->ptime > 0) pt->ptime = cs->media->ptime; ilogs(internals, LOG_DEBUG, "Adding codec '" STR_FORMAT "'/'" STR_FORMAT "'/'" STR_FORMAT "'/'" STR_FORMAT "' at pos %p", STR_FMT(&pt->encoding), STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), STR_FMT(&pt->encoding_with_full_params), link); t_hash_table_insert(cs->codecs, GINT_TO_POINTER(pt->payload_type), pt); __rtp_payload_type_add_name(cs->codec_names, pt); if (!link) { t_queue_push_tail(&cs->codec_prefs, pt); pt->prefs_link = cs->codec_prefs.tail; } else { t_queue_insert_before(&cs->codec_prefs, link, pt); pt->prefs_link = link->prev; } if (!cs->supp_link && pt->codec_def && pt->codec_def->supplemental) cs->supp_link = pt->prefs_link; } // appends to the end, but before supplemental codecs __attribute__((nonnull(1, 2))) static void codec_store_add_raw_order(struct codec_store *cs, rtp_payload_type *pt) { codec_store_add_raw_link(cs, pt, cs->supp_link); } // appends to the end __attribute__((nonnull(1, 2))) void codec_store_add_raw(struct codec_store *cs, rtp_payload_type *pt) { codec_store_add_raw_link(cs, pt, NULL); } __attribute__((nonnull(1, 2))) static rtp_payload_type *codec_store_add_link(struct codec_store *cs, rtp_payload_type *pt, rtp_pt_list *link) { if (!cs->media) return NULL; ensure_codec_def(pt, cs->media); if (proto_is_not_rtp(cs->media->protocol)) return NULL; rtp_payload_type *copy = rtp_payload_type_dup(pt); codec_store_add_raw_link(cs, copy, link); return copy; } // appends to the end, but before supplemental codecs __attribute__((nonnull(1, 2))) static rtp_payload_type *codec_store_add_order(struct codec_store *cs, rtp_payload_type *pt) { return codec_store_add_link(cs, pt, cs->supp_link); } // always add to end __attribute__((nonnull(1, 2))) static void codec_store_add_end(struct codec_store *cs, rtp_payload_type *pt) { codec_store_add_link(cs, pt, NULL); } static rtp_payload_type *codec_store_find_compatible_q(struct codec_store *cs, GQueue *q, const rtp_payload_type *pt) { if (!q) return NULL; for (GList *l = q->head; l; l = l->next) { rtp_payload_type *ret = t_hash_table_lookup(cs->codecs, l->data); if (rtp_payload_type_fmt_eq_compat(ret, pt)) return ret; } return NULL; } static rtp_payload_type *codec_store_find_compatible(struct codec_store *cs, const rtp_payload_type *pt) { rtp_payload_type *ret; ret = codec_store_find_compatible_q(cs, t_hash_table_lookup(cs->codec_names, &pt->encoding_with_full_params), pt); if (ret) return ret; ret = codec_store_find_compatible_q(cs, t_hash_table_lookup(cs->codec_names, &pt->encoding_with_params), pt); if (ret) return ret; ret = codec_store_find_compatible_q(cs, t_hash_table_lookup(cs->codec_names, &pt->encoding), pt); if (ret) return ret; return NULL; } void __codec_store_populate_reuse(struct codec_store *dst, struct codec_store *src, struct codec_store_args a) { struct call_media *media = dst->media; call_t *call = media ? media->call : NULL; for (__auto_type l = src->codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; rtp_payload_type *orig_pt = t_hash_table_lookup(dst->codecs, GINT_TO_POINTER(pt->payload_type)); pt->reverse_payload_type = pt->payload_type; if (orig_pt) ilogs(codec, LOG_DEBUG, "Retaining codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); else { if (!a.answer_only) { ilogs(codec, LOG_DEBUG, "Adding codec " STR_FORMAT "/" STR_FORMAT " (%i) to end of list", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); __codec_options_set(call, pt, a.codec_set); codec_store_add_end(dst, pt); } else ilogs(codec, LOG_DEBUG, "Not adding stray answer codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); } } for (__auto_type l = dst->codec_prefs.head; l;) { rtp_payload_type *pt = l->data; rtp_payload_type *orig_pt = t_hash_table_lookup(src->codecs, GINT_TO_POINTER(pt->payload_type)); if(!orig_pt){ if (a.merge_cs) codec_store_add_raw_link(src, rtp_payload_type_dup(pt), src->codec_prefs.head); l = __codec_store_delete_link(l, dst); }else{ l = l->next; } } } void codec_store_check_empty(struct codec_store *dst, struct codec_store *src) { if (dst->codec_prefs.length) return; ilog(LOG_WARN, "Usage error: List of codecs empty. Restoring original list of codecs. " "Results may be unexpected."); codec_store_populate(dst, src); } static void codec_store_merge(struct codec_store *dst, struct codec_store *src) { while (src->codec_prefs.length) { rtp_payload_type *pt = t_queue_pop_tail(&src->codec_prefs); // src codecs take preference over existing entries in dst: if there's // a collision in payload types, remove the existing entry in dst, // then replace with the entry from src rtp_payload_type *old_pt = t_hash_table_lookup(dst->codecs, GINT_TO_POINTER(pt->payload_type)); if (old_pt) __codec_store_delete_link(old_pt->prefs_link, dst); codec_store_add_raw_link(dst, pt, dst->codec_prefs.head); } codec_store_cleanup(src); } void __codec_store_populate(struct codec_store *dst, struct codec_store *src, struct codec_store_args a) { // start fresh struct codec_store orig_dst; codec_store_move(&orig_dst, dst); struct call_media *media = dst->media; call_t *call = media ? media->call : NULL; for (__auto_type l = src->codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; rtp_payload_type *orig_pt = t_hash_table_lookup(orig_dst.codecs, GINT_TO_POINTER(pt->payload_type)); if (orig_pt && !rtp_payload_type_eq_compat(orig_pt, pt)) orig_pt = NULL; if (a.answer_only && !orig_pt) { if (a.allow_asymmetric) orig_pt = codec_store_find_compatible(&orig_dst, pt); if (!orig_pt) { ilogs(codec, LOG_DEBUG, "Not adding stray answer codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); continue; } if (orig_pt->codec_def && orig_pt->codec_def->supplemental) orig_pt = NULL; } ilogs(codec, LOG_DEBUG, "Adding codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); pt->reverse_payload_type = pt->payload_type; if (orig_pt) { // carry over existing options pt->payload_type = orig_pt->payload_type; pt->ptime = orig_pt->ptime; pt->for_transcoding = orig_pt->for_transcoding; pt->accepted = orig_pt->accepted; pt->bitrate = orig_pt->bitrate; str_free_dup(&pt->codec_opts); pt->codec_opts = orig_pt->codec_opts; orig_pt->codec_opts = STR_NULL; if (pt->for_transcoding) codec_touched(dst, pt); } __codec_options_set(call, pt, a.codec_set); codec_store_add_end(dst, pt); } if (a.merge_cs) codec_store_merge(a.merge_cs, &orig_dst); else codec_store_cleanup(&orig_dst); } void codec_store_strip(struct codec_store *cs, str_q *strip, str_case_ht except) { for (__auto_type l = strip->head; l; l = l->next) { str *codec = l->data; if (!str_cmp(codec, "all") || !str_cmp(codec, "full")) { if (!str_cmp(codec, "all")) cs->strip_all = 1; else cs->strip_full = 1; // strip all except ... __auto_type link = cs->codec_prefs.head; while (link) { __auto_type next = link->next; rtp_payload_type *pt = link->data; if (t_hash_table_is_set(except) && t_hash_table_lookup(except, &pt->encoding)) ; else if (t_hash_table_is_set(except) && t_hash_table_lookup(except, &pt->encoding_with_params)) ; else if (t_hash_table_is_set(except) && t_hash_table_lookup(except, &pt->encoding_with_full_params)) ; else { ilogs(codec, LOG_DEBUG, "Stripping codec " STR_FORMAT "/" STR_FORMAT " (%i) due to strip=all or strip=full", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); codec_touched_real(cs, pt); next = __codec_store_delete_link(link, cs); } link = next; } continue; } // strip just this one GQueue *pts = t_hash_table_lookup(cs->codec_names, codec); if (!pts || !pts->length) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT " not present for stripping", STR_FMT(codec)); continue; } while (pts->length) { int pt_num = GPOINTER_TO_INT(pts->head->data); rtp_payload_type *pt = t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num)); if (pt) { ilogs(codec, LOG_DEBUG, "Stripping codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt_num); codec_touched_real(cs, pt); __codec_store_delete_link(pt->prefs_link, cs); // this removes pts->head } else { ilogs(codec, LOG_DEBUG, "PT %i missing for stripping " STR_FORMAT, pt_num, STR_FMT(codec)); break; // should not happen - don't continue } } } } void codec_store_offer(struct codec_store *cs, str_q *offer, struct codec_store *orig) { // restore stripped codecs in order: codecs must be present in `orig` but not present // in `cs` for (__auto_type l = offer->head; l; l = l->next) { str *codec = l->data; GQueue *pts = t_hash_table_lookup(cs->codec_names, codec); if (pts && pts->length) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT " already present (%i)", STR_FMT(codec), GPOINTER_TO_INT(pts->head->data)); continue; } GQueue *orig_list = t_hash_table_lookup(orig->codec_names, codec); if (!orig_list || !orig_list->length) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT " not present for offering", STR_FMT(codec)); continue; } for (GList *k = orig_list->head; k; k = k->next) { int pt_num = GPOINTER_TO_INT(k->data); rtp_payload_type *orig_pt = t_hash_table_lookup(orig->codecs, GINT_TO_POINTER(pt_num)); if (!orig_pt) { ilogs(codec, LOG_DEBUG, "PT %i missing for offering " STR_FORMAT, pt_num, STR_FMT(codec)); continue; } if (t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num))) { ilogs(codec, LOG_DEBUG, "PT %i (" STR_FORMAT ") already preset", pt_num, STR_FMT(codec)); continue; } ilogs(codec, LOG_DEBUG, "Re-adding stripped codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&orig_pt->encoding_with_params), STR_FMT0(&orig_pt->format_parameters), orig_pt->payload_type); codec_touched(cs, orig_pt); codec_store_add_order(cs, orig_pt); } } } void codec_store_accept(struct codec_store *cs, str_q *accept, struct codec_store *orig) { // mark codecs as `for transcoding` for (__auto_type l = accept->head; l; l = l->next) { str *codec = l->data; g_auto(rtp_pt_q) pts_matched = TYPED_GQUEUE_INIT; rtp_pt_q *pts = &pts_matched; if (!str_cmp(codec, "all") || !str_cmp(codec, "full")) pts = &cs->codec_prefs; else codec_store_find_matching_codecs(&pts_matched, NULL, cs, codec, NULL); if (!pts->length) { pts = &pts_matched; // special case: strip=all, consume=X if (orig) codec_store_find_matching_codecs(&pts_matched, NULL, orig, codec, NULL); if (!pts->length) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT " not present for accepting", STR_FMT(codec)); continue; } // re-add from orig, then mark as accepted below rtp_pt_q pt_readded = TYPED_GQUEUE_INIT; // XXX duplicate code for (__auto_type k = pts->head; k; k = k->next) { rtp_payload_type *orig_pt = k->data; if (t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(orig_pt->payload_type))) { ilogs(codec, LOG_DEBUG, "PT %i (" STR_FORMAT ") already preset", orig_pt->payload_type, STR_FMT(codec)); continue; } ilogs(codec, LOG_DEBUG, "Re-adding stripped codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&orig_pt->encoding_with_params), STR_FMT0(&orig_pt->format_parameters), orig_pt->payload_type); codec_touched(cs, orig_pt); rtp_payload_type *added = codec_store_add_order(cs, orig_pt); if (added) t_queue_push_tail(&pt_readded, added); } t_queue_clear(&pts_matched); pts_matched = pt_readded; if (!pts_matched.length) continue; } for (__auto_type k = pts->head; k; k = k->next) { rtp_payload_type *fpt = k->data; int pt_num = fpt->payload_type; rtp_payload_type *pt = t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num)); if (!pt) { ilogs(codec, LOG_DEBUG, "PT %i missing for accepting " STR_FORMAT, pt_num, STR_FMT(codec)); continue; } ilogs(codec, LOG_DEBUG, "Accepting codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); pt->for_transcoding = 1; pt->accepted = 1; codec_touched(cs, pt); } } } int codec_store_accept_one(struct codec_store *cs, str_q *accept, bool accept_any) { // local codec-accept routine: accept first supported codec, or first from "accept" list // if given rtp_payload_type *accept_pt = NULL; for (__auto_type l = accept->head; l; l = l->next) { // iterate through list and look for the first supported codec str *codec = l->data; if (!str_cmp(codec, "any")) { accept_any = true; continue; } GQueue *pts = t_hash_table_lookup(cs->codec_names, codec); if (!pts) continue; for (GList *k = pts->head; k; k = k->next) { int pt_num = GPOINTER_TO_INT(k->data); rtp_payload_type *pt = t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num)); if (!pt) { ilogs(codec, LOG_DEBUG, "PT %i missing for accepting " STR_FORMAT, pt_num, STR_FMT(codec)); continue; } accept_pt = pt; break; } if (accept_pt) break; } if (!accept_pt) { // none found yet - pick the first one for (__auto_type l = cs->codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; if (!accept_any) { ensure_codec_def(pt, cs->media); if (!pt->codec_def) continue; } accept_pt = pt; break; } } if (!accept_pt) { ilogs(codec, LOG_WARN, "No acceptable codecs found from publisher"); return -1; } // delete all codecs except the accepted one __auto_type link = cs->codec_prefs.head; while (link) { rtp_payload_type *pt = link->data; if (pt == accept_pt) { link = link->next; continue; } link = __codec_store_delete_link(link, cs); } return 0; } void codec_store_track(struct codec_store *cs, str_q *q) { #ifdef WITH_TRANSCODING // just track all codecs from the list as "touched" for (__auto_type l = q->head; l; l = l->next) { str *codec = l->data; if (!str_cmp(codec, "all") || !str_cmp(codec, "full")) { cs->tracker->all_touched = 1; continue; } GQueue *pts = t_hash_table_lookup(cs->codec_names, codec); if (!pts) continue; for (GList *k = pts->head; k; k = k->next) { int pt_num = GPOINTER_TO_INT(k->data); rtp_payload_type *pt = t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num)); codec_touched(cs, pt); } } #endif } void codec_store_transcode(struct codec_store *cs, str_q *offer, struct codec_store *orig) { #ifdef WITH_TRANSCODING // special case of codec_store_offer(): synthesise codecs that were not already present for (__auto_type l = offer->head; l; l = l->next) { str *codec = l->data; // parse out given codec string g_autoptr(rtp_payload_type) pt = codec_make_payload_type_sup(codec, cs->media); // find matching existing PT if one exists rtp_payload_type *pt_match = NULL; codec_store_find_matching_codecs(NULL, &pt_match, cs, codec, pt); if (pt_match) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT " already present (%i)", STR_FMT(codec), pt_match->payload_type); continue; } GQueue *orig_list = t_hash_table_lookup(orig->codec_names, codec); if (!orig_list || !orig_list->length || cs->strip_full) { ilogs(codec, LOG_DEBUG, "Adding codec " STR_FORMAT " for transcoding", STR_FMT(codec)); // create new payload type pt = codec_add_payload_type_pt(pt, cs->media, NULL, orig); if (!pt) continue; pt->for_transcoding = 1; ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT "/" STR_FORMAT " added for transcoding with payload " "type %i", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); codec_touched(cs, pt); codec_store_add_raw_order(cs, pt); pt = NULL; continue; } // XXX duplicate code for (GList *k = orig_list->head; k; k = k->next) { int pt_num = GPOINTER_TO_INT(k->data); rtp_payload_type *orig_pt = t_hash_table_lookup(orig->codecs, GINT_TO_POINTER(pt_num)); if (!orig_pt) { ilogs(codec, LOG_DEBUG, "PT %i missing for offering " STR_FORMAT, pt_num, STR_FMT(codec)); continue; } if (t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(pt_num))) { ilogs(codec, LOG_DEBUG, "PT %i (" STR_FORMAT ") already preset", pt_num, STR_FMT(codec)); continue; } ilogs(codec, LOG_DEBUG, "Re-adding stripped codec " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&orig_pt->encoding_with_params), STR_FMT0(&orig_pt->format_parameters), orig_pt->payload_type); codec_touched(cs, orig_pt); codec_store_add_order(cs, orig_pt); } } #endif } void __codec_store_answer(struct codec_store *dst, struct codec_store *src, sdp_ng_flags *flags, struct codec_store_args a) { // retain existing setup for supplemental codecs, but start fresh otherwise struct codec_store orig_dst; codec_store_move(&orig_dst, dst); struct call_media *src_media = src->media; struct call_media *dst_media = dst->media; if (!dst_media || !src_media) goto out; #ifdef WITH_TRANSCODING // synthetic answer for T.38: if (dst_media->type_id == MT_AUDIO && src_media->type_id == MT_IMAGE && dst->codec_prefs.length == 0) { if (dst_media->t38_gateway && dst_media->t38_gateway->pcm_player && dst_media->t38_gateway->pcm_player->coder.handler) { codec_store_add_order(dst, &dst_media->t38_gateway->pcm_player->coder.handler->dest_pt); goto out; } } #endif unsigned int num_codecs = 0; //int codec_order = 0; // to track whether we've added supplemental codecs based on their media codecs GQueue supp_codecs = G_QUEUE_INIT; // postpone actually adding them until the end // populate dst via output PTs from src's codec handlers for (__auto_type l = src->codec_prefs.head; l; l = l->next) { bool add_codec = true; if (flags->single_codec && num_codecs >= 1) add_codec = false; rtp_payload_type *pt = l->data; struct codec_handler *h = codec_handler_get(src_media, pt->payload_type, dst_media, NULL); bool is_supp = false; if (pt->codec_def && pt->codec_def->supplemental) is_supp = true; if (!h || h->dest_pt.payload_type == -1) { // passthrough or missing if (pt->for_transcoding) ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT "/" STR_FORMAT " (%i) is being transcoded", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); else { if (add_codec) { ilogs(codec, LOG_DEBUG, "Codec " STR_FORMAT "/" STR_FORMAT " (%i) is passthrough", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); if (!is_supp) num_codecs++; codec_store_add_end(dst, pt); } else ilogs(codec, LOG_DEBUG, "Skipping passthrough codec " STR_FORMAT "/" STR_FORMAT " (%i) due to single-codec flag", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); } continue; } // supp codecs are handled in-line with their main media codecs if (is_supp) { if (pt->for_transcoding) continue; if (is_codec_touched(dst, pt)) continue; if (is_codec_touched(src, pt)) continue; if (is_codec_touched(&orig_dst, pt)) continue; // except those that were not touched - we pass those through regardless } if (!add_codec && !is_supp) { ilogs(codec, LOG_DEBUG, "Skipping reverse codec for " STR_FORMAT "/" STR_FORMAT " (%i) = " STR_FORMAT "/" STR_FORMAT " (%i) due to single-codec flag", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type, STR_FMT(&h->dest_pt.encoding_with_params), STR_FMT0(&h->dest_pt.format_parameters), h->dest_pt.payload_type); continue; } ilogs(codec, LOG_DEBUG, "Reverse codec for " STR_FORMAT "/" STR_FORMAT " (%i) is " STR_FORMAT "/" STR_FORMAT " (%i)", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type, STR_FMT(&h->dest_pt.encoding_with_params), STR_FMT0(&h->dest_pt.format_parameters), h->dest_pt.payload_type); if (!t_hash_table_lookup(dst->codecs, GINT_TO_POINTER(h->dest_pt.payload_type))) { if (h->passthrough) { rtp_payload_type copy = *pt; copy.payload_type = pt->reverse_payload_type; codec_store_add_end(dst, ©); } else codec_store_add_end(dst, &h->dest_pt); if (!is_supp) num_codecs++; } // handle associated supplemental codecs if (h->cn_payload_type != -1) { pt = t_hash_table_lookup(orig_dst.codecs, GINT_TO_POINTER(h->cn_payload_type)); if (a.allow_asymmetric) { struct rtp_payload_type *src_pt = t_hash_table_lookup(src->codecs, GINT_TO_POINTER(h->cn_payload_type)); if (src_pt && (!pt || !rtp_payload_type_eq_compat(src_pt, pt))) pt = src_pt; } if (!pt) ilogs(codec, LOG_DEBUG, "CN payload type %i is missing", h->cn_payload_type); else g_queue_push_tail(&supp_codecs, rtp_payload_type_dup(pt)); } int dtmf_payload_type = h->dtmf_payload_type; if (dtmf_payload_type == -1) dtmf_payload_type = h->real_dtmf_payload_type; if (dtmf_payload_type != -1) { pt = t_hash_table_lookup(orig_dst.codecs, GINT_TO_POINTER(dtmf_payload_type)); if (a.allow_asymmetric) { struct rtp_payload_type *src_pt = t_hash_table_lookup(src->codecs, GINT_TO_POINTER(dtmf_payload_type)); if (src_pt && (!pt || !rtp_payload_type_eq_compat(src_pt, pt))) pt = src_pt; } if (!pt) ilogs(codec, LOG_DEBUG, "DTMF payload type %i is missing", dtmf_payload_type); else g_queue_push_tail(&supp_codecs, rtp_payload_type_dup(pt)); } } while (supp_codecs.length) { rtp_payload_type *pt = g_queue_pop_head(&supp_codecs); if (t_hash_table_lookup(dst->codecs, GINT_TO_POINTER(pt->payload_type))) { ilogs(codec, LOG_DEBUG, STR_FORMAT " payload type %i already present, skip", STR_FMT(&pt->encoding_with_full_params), pt->payload_type); payload_type_free(pt); continue; } ilogs(codec, LOG_DEBUG, "Adding " STR_FORMAT "/" STR_FORMAT " payload type %i", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters), pt->payload_type); codec_store_add_raw(dst, pt); } out: codec_tracker_move(&dst->tracker, &orig_dst.tracker); codec_store_cleanup(&orig_dst); } // offer codecs for non-RTP transcoding scenarios void codec_store_synthesise(struct codec_store *dst, struct codec_store *opposite) { if (!dst->media || !opposite->media) return; if (dst->media->type_id == MT_AUDIO && opposite->media->type_id == MT_IMAGE) { // audio <> T.38 transcoder if (!dst->codec_prefs.length) { // no codecs given: add defaults static const str PCMU_str = STR_CONST_INIT("PCMU"); static const str PCMA_str = STR_CONST_INIT("PCMA"); codec_store_add_raw_order(dst, codec_make_payload_type(&PCMU_str, MT_AUDIO)); codec_store_add_raw_order(dst, codec_make_payload_type(&PCMA_str, MT_AUDIO)); ilogs(codec, LOG_DEBUG, "Using default codecs PCMU and PCMA for T.38 gateway"); } else { // we already have a list of codecs - make sure they're all supported by us for (__auto_type l = dst->codec_prefs.head; l;) { rtp_payload_type *pt = l->data; if (pt->codec_def) { l = l->next; continue; } ilogs(codec, LOG_DEBUG, "Eliminating unsupported codec " STR_FORMAT "/" STR_FORMAT " for T.38 transcoding", STR_FMT(&pt->encoding_with_params), STR_FMT0(&pt->format_parameters)); codec_touched(dst, pt); l = __codec_store_delete_link(l, dst); } } } } // check all codecs listed in the source are also be present in the answer (dst) bool codec_store_is_full_answer(const struct codec_store *src, const struct codec_store *dst) { for (auto_iter(l, src->codec_prefs.head); l; l = l->next) { const rtp_payload_type *src_pt = l->data; const rtp_payload_type *dst_pt = t_hash_table_lookup(dst->codecs, GINT_TO_POINTER(src_pt->payload_type)); if (!dst_pt || !rtp_payload_type_eq_compat(src_pt, dst_pt)) { ilogs(codec, LOG_DEBUG, "Source codec " STR_FORMAT "/" STR_FORMAT " is not present in the answer", STR_FMT(&src_pt->encoding_with_params), STR_FMT0(&src_pt->format_parameters)); return false; } } return true; } static void __codec_timer_callback_free(void *p) { struct timer_callback *cb = p; if (cb->call) obj_put(cb->call); } static void __codec_timer_callback_fire(struct codec_timer *ct) { struct timer_callback *cb = (void *) ct; log_info_call(cb->call); cb->timer_callback_func(cb->call, cb->arg); codec_timer_stop(&ct); log_info_pop(); } void codec_timer_callback(call_t *c, void (*func)(call_t *, codec_timer_callback_arg_t), codec_timer_callback_arg_t a, uint64_t delay) { struct timer_callback *cb = obj_alloc0("codec_timer_callback", sizeof(*cb), __codec_timer_callback_free); cb->ct.tt_obj.tt = &codec_timers_thread; cb->call = obj_get(c); cb->timer_callback_func = func; cb->arg = a; cb->ct.timer_func = __codec_timer_callback_fire; cb->ct.next = rtpe_now; timeval_add_usec(&cb->ct.next, delay); timerthread_obj_schedule_abs(&cb->ct.tt_obj, &cb->ct.next); } static void codec_timers_run(void *p) { struct codec_timer *ct = p; ct->timer_func(ct); } #ifdef WITH_TRANSCODING static void transcode_job_free(struct transcode_job *j) { media_packet_release(&j->mp); obj_put(&j->ch->h); obj_put(&j->input_ch->h); if (j->packet) __transcode_packet_free(j->packet); g_free(j); } static void transcode_job_do(struct transcode_job *ref_j) { struct call *call = ref_j->mp.call; rwlock_lock_r(&call->master_lock); __ssrc_lock_both(&ref_j->mp); // the first job in the queue must be the one that was given to async worker transcode_job_list *list = ref_j->ch->async_jobs.head; // given: // assert(list->data == ref_j); do { // nothing can remove entries while we're running. prepare to run job __ssrc_unlock_both(&ref_j->mp); struct transcode_job *j = list->data; __ssrc_lock_both(&j->mp); tc_code ret = __rtp_decode_direct(j->ch, j->input_ch, j->packet, &j->mp); if (ret == TCC_CONSUMED) j->packet = NULL; // unlock and send __ssrc_unlock_both(&j->mp); send_buffered(&j->mp, log_level_index_transcoding); // reacquire primary lock and see if we're done. new jobs might have been // added in the meantime. __ssrc_lock_both(&ref_j->mp); list = list->next; } while (list); // we've reached the end of the list while holding the SSRC handler lock. // we will run no more jobs here. we take over the list for cleanup and // then release the lock, guaranteeing that anything added afterwards will // run later and will result in a new job given to the async worker threads. transcode_job_q q = ref_j->ch->async_jobs; t_queue_init(&ref_j->ch->async_jobs); __ssrc_unlock_both(&ref_j->mp); while ((ref_j = t_queue_pop_head(&q))) transcode_job_free(ref_j); rwlock_unlock_r(&call->master_lock); } static void codec_worker(void *d) { struct thread_waker waker = { .lock = &transcode_lock, .cond = &transcode_cond }; thread_waker_add(&waker); mutex_lock(&transcode_lock); while (!rtpe_shutdown) { // wait once, but then loop in case of shutdown if (transcode_jobs.length == 0) cond_wait(&transcode_cond, &transcode_lock); if (transcode_jobs.length == 0) continue; struct transcode_job *j = t_queue_pop_head(&transcode_jobs); mutex_unlock(&transcode_lock); gettimeofday(&rtpe_now, NULL); transcode_job_do(j); mutex_lock(&transcode_lock); } mutex_unlock(&transcode_lock); thread_waker_del(&waker); } #endif void codecs_init(void) { timerthread_init(&codec_timers_thread, rtpe_config.media_num_threads, codec_timers_run); #ifdef WITH_TRANSCODING if (rtpe_config.codec_num_threads) { for (unsigned int i = 0; i < rtpe_config.codec_num_threads; i++) thread_create_detach(codec_worker, NULL, "transcode"); __rtp_decode = __rtp_decode_async; } else __rtp_decode = __rtp_decode_direct; #endif } void codecs_cleanup(void) { timerthread_free(&codec_timers_thread); } void codec_timers_launch(void) { timerthread_launch(&codec_timers_thread, rtpe_config.scheduling, rtpe_config.priority, "codec timer"); } rtpengine-mr12.5.1.22/daemon/control_ng.c000066400000000000000000000502001474347554000201410ustar00rootroot00000000000000#include "control_ng.h" #include #include #include #include #include #include "obj.h" #include "poller.h" #include "bencode.h" #include "log.h" #include "cookie_cache.h" #include "call.h" #include "sdp.h" #include "call_interfaces.h" #include "socket.h" #include "log_funcs.h" #include "main.h" #include "statistics.h" #include "streambuf.h" #include "str.h" #include "homer.h" #include "tcp_listener.h" #include "main.h" mutex_t rtpe_cngs_lock; mutex_t tcp_connections_lock; GHashTable *rtpe_cngs_hash; GHashTable *tcp_connections_hash; static struct cookie_cache ng_cookie_cache; static bool trace_ng = false; const char magic_load_limit_strings[__LOAD_LIMIT_MAX][64] = { [LOAD_LIMIT_MAX_SESSIONS] = "Parallel session limit reached", [LOAD_LIMIT_CPU] = "CPU usage limit exceeded", [LOAD_LIMIT_LOAD] = "Load limit exceeded", [LOAD_LIMIT_BW] = "Bandwidth limit exceeded", }; const char *ng_command_strings[NGC_COUNT] = { "ping", "offer", "answer", "delete", "query", "list", "start recording", "stop recording", "pause recording", "start forwarding", "stop forwarding", "block DTMF", "unblock DTMF", "block media", "unblock media", "play media", "stop media", "play DTMF", "statistics", "silence media", "unsilence media", "publish", "subscribe request", "subscribe answer", "unsubscribe", }; const char *ng_command_strings_esc[NGC_COUNT] = { "ping", "offer", "answer", "delete", "query", "list", "start_recording", "stop_recording", "pause_recording", "start_forwarding", "stop_forwarding", "block_DTMF", "unblock_DTMF", "block_media", "unblock_media", "play_media", "stop_media", "play_DTMF", "statistics", "silence_media", "unsilence_media", "publish", "subscribe_request", "subscribe_answer", "unsubscribe", }; const char *ng_command_strings_short[NGC_COUNT] = { "Ping", "Offer", "Answer", "Delete", "Query", "List", "StartRec", "StopRec", "PauseRec", "StartFwd", "StopFwd", "BlkDTMF", "UnblkDTMF", "BlkMedia", "UnblkMedia", "PlayMedia", "StopMedia", "PlayDTMF", "Stats", "SlnMedia", "UnslnMedia", "Pub", "SubReq", "SubAns", "Unsub", }; typedef struct ng_ctx { str callid; int command; str cookie; bool should_trace; const endpoint_t *sin_ep; const endpoint_t *local_ep; } ng_ctx; #define CH(func, ...) do { \ if (trace_ng) \ func( __VA_ARGS__); \ } while (0) void init_ng_tracing(void) { if (rtpe_config.homer_ng_on && has_homer()) trace_ng = true; } static GString *create_homer_msg(str *cookie, str *data) { GString *msg = g_string_sized_new(cookie->len + 1 + data->len); g_string_append_printf(msg, "%.*s %.*s", STR_FMT(cookie), STR_FMT(data)); return msg; } static bool should_trace_msg(enum ng_command command) { switch (command) { case NGC_PING: return false; default: return true; } } static void homer_fill_values(ng_ctx *hctx, str *callid, int command) { if (hctx) { hctx->command = command; hctx->callid = *callid; } } static void homer_trace_msg_in(ng_ctx *hctx, str *data) { if (hctx) { hctx->should_trace = should_trace_msg(hctx->command); if (hctx->should_trace) { struct timeval tv; gettimeofday(&tv, NULL); GString *msg = create_homer_msg(&hctx->cookie, data); homer_send(msg, &hctx->callid, hctx->sin_ep, hctx->local_ep, &tv, rtpe_config.homer_ng_capt_proto); } } } static void homer_trace_msg_out(ng_ctx *hctx, str *data) { if (hctx && hctx->should_trace) { struct timeval tv; gettimeofday(&tv, NULL); GString *msg = create_homer_msg(&hctx->cookie, data); homer_send(msg, &hctx->callid, hctx->local_ep, hctx->sin_ep, &tv, rtpe_config.homer_ng_capt_proto); } } static void pretty_print(bencode_item_t *el, GString *s) { bencode_item_t *chld; const char *sep; switch (el->type) { case BENCODE_STRING: g_string_append(s, "\""); g_string_append_len(s, el->iov[1].iov_base, el->iov[1].iov_len); g_string_append(s, "\""); break; case BENCODE_INTEGER: g_string_append_printf(s, "%lli", el->value); break; case BENCODE_LIST: g_string_append(s, "[ "); sep = ""; for (chld = el->child; chld; chld = chld->sibling) { g_string_append(s, sep); pretty_print(chld, s); sep = ", "; } g_string_append(s, " ]"); break; case BENCODE_DICTIONARY: g_string_append(s, "{ "); sep = ""; for (chld = el->child; chld; chld = chld->sibling) { g_string_append(s, sep); pretty_print(chld, s); g_string_append(s, ": "); chld = chld->sibling; pretty_print(chld, s); sep = ", "; } g_string_append(s, " }"); break; default: abort(); } } struct control_ng_stats* get_control_ng_stats(const sockaddr_t *addr) { struct control_ng_stats* cur; mutex_lock(&rtpe_cngs_lock); cur = g_hash_table_lookup(rtpe_cngs_hash, addr); if (!cur) { cur = g_slice_alloc0(sizeof(struct control_ng_stats)); cur->proxy = *addr; ilogs(control, LOG_DEBUG,"Adding a proxy for control ng stats:%s", sockaddr_print_buf(addr)); for (int i = 0; i < NGC_COUNT; i++) { struct ng_command_stats *c = &cur->cmd[i]; mutex_init(&c->lock); } g_hash_table_insert(rtpe_cngs_hash, &cur->proxy, cur); } mutex_unlock(&rtpe_cngs_lock); return cur; } static void __ng_buffer_free(void *p) { ng_buffer *ngbuf = p; bencode_buffer_free(&ngbuf->buffer); if (ngbuf->ref) obj_put_o(ngbuf->ref); } ng_buffer *ng_buffer_new(struct obj *ref) { ng_buffer *ngbuf = obj_alloc0("ng_buffer", sizeof(*ngbuf), __ng_buffer_free); if (ref) ngbuf->ref = obj_get_o(ref); // hold until we're done int ret = bencode_buffer_init(&ngbuf->buffer); assert(ret == 0); (void) ret; return ngbuf; } static void control_ng_process_payload(ng_ctx *hctx, str *reply, str *data, const endpoint_t *sin, char *addr, struct obj *ref, struct ng_buffer **ngbufp) { bencode_item_t *dict, *resp; str cmd = STR_NULL, callid; const char *errstr, *resultstr; GString *log_str; struct timeval cmd_start, cmd_stop, cmd_process_time; struct control_ng_stats* cur = get_control_ng_stats(&sin->address); enum ng_command command = -1; struct ng_buffer *ngbuf = *ngbufp = ng_buffer_new(ref); resp = bencode_dictionary(&ngbuf->buffer); assert(resp != NULL); str *(*collapse_func)(bencode_item_t *root, str *out) = bencode_collapse_str; errstr = "Invalid data (no payload)"; if (data->len <= 0) goto err_send; /* Bencode dictionary */ if (data->s[0] == 'd') { dict = bencode_decode_expect_str(&ngbuf->buffer, data, BENCODE_DICTIONARY); errstr = "Could not decode bencode dictionary"; if (!dict) goto err_send; } /* JSON */ else if (data->s[0] == '{') { collapse_func = bencode_collapse_str_json; JsonParser *json = json_parser_new(); bencode_buffer_destroy_add(&ngbuf->buffer, g_object_unref, json); errstr = "Failed to parse JSON document"; if (!json_parser_load_from_data(json, data->s, data->len, NULL)) goto err_send; dict = bencode_convert_json(&ngbuf->buffer, json); errstr = "Could not decode bencode dictionary"; if (!dict || dict->type != BENCODE_DICTIONARY) goto err_send; } else { errstr = "Invalid NG data format"; goto err_send; } bencode_dictionary_get_str(dict, "command", &cmd); errstr = "Dictionary contains no key \"command\""; if (!cmd.s) goto err_send; bencode_dictionary_get_str(dict, "call-id", &callid); log_info_str(&callid); ilogs(control, LOG_INFO, "Received command '"STR_FORMAT"' from %s", STR_FMT(&cmd), addr); if (get_log_level(control) >= LOG_DEBUG) { log_str = g_string_sized_new(256); g_string_append_printf(log_str, "Dump for '"STR_FORMAT"' from %s: %s", STR_FMT(&cmd), addr, rtpe_config.common.log_mark_prefix); pretty_print(dict, log_str); g_string_append(log_str, rtpe_config.common.log_mark_suffix); ilogs(control, LOG_DEBUG, "%.*s", (int) log_str->len, log_str->str); g_string_free(log_str, TRUE); } errstr = NULL; resultstr = "ok"; // start command timer gettimeofday(&cmd_start, NULL); switch (__csh_lookup(&cmd)) { case CSH_LOOKUP("ping"): resultstr = "pong"; command = NGC_PING; break; case CSH_LOOKUP("offer"): errstr = call_offer_ng(ngbuf, dict, resp, addr, sin); command = NGC_OFFER; break; case CSH_LOOKUP("answer"): errstr = call_answer_ng(ngbuf, dict, resp); command = NGC_ANSWER; break; case CSH_LOOKUP("delete"): errstr = call_delete_ng(dict, resp); command = NGC_DELETE; break; case CSH_LOOKUP("query"): errstr = call_query_ng(dict, resp); command = NGC_QUERY; break; case CSH_LOOKUP("list"): errstr = call_list_ng(dict, resp); command = NGC_LIST; break; case CSH_LOOKUP("start recording"): errstr = call_start_recording_ng(dict, resp); command = NGC_START_RECORDING; break; case CSH_LOOKUP("stop recording"): errstr = call_stop_recording_ng(dict, resp); command = NGC_STOP_RECORDING; break; case CSH_LOOKUP("pause recording"): errstr = call_pause_recording_ng(dict, resp); command = NGC_PAUSE_RECORDING; break; case CSH_LOOKUP("start forwarding"): errstr = call_start_forwarding_ng(dict, resp); command = NGC_START_FORWARDING; break; case CSH_LOOKUP("stop forwarding"): errstr = call_stop_forwarding_ng(dict, resp); command = NGC_STOP_FORWARDING; break; case CSH_LOOKUP("block DTMF"): errstr = call_block_dtmf_ng(dict, resp); command = NGC_BLOCK_DTMF; break; case CSH_LOOKUP("unblock DTMF"): errstr = call_unblock_dtmf_ng(dict, resp); command = NGC_UNBLOCK_DTMF; break; case CSH_LOOKUP("block media"): errstr = call_block_media_ng(dict, resp); command = NGC_BLOCK_MEDIA; break; case CSH_LOOKUP("unblock media"): errstr = call_unblock_media_ng(dict, resp); command = NGC_UNBLOCK_MEDIA; break; case CSH_LOOKUP("silence media"): errstr = call_silence_media_ng(dict, resp); command = NGC_SILENCE_MEDIA; break; case CSH_LOOKUP("unsilence media"): errstr = call_unsilence_media_ng(dict, resp); command = NGC_UNSILENCE_MEDIA; break; case CSH_LOOKUP("play media"): errstr = call_play_media_ng(dict, resp); command = NGC_PLAY_MEDIA; break; case CSH_LOOKUP("stop media"): errstr = call_stop_media_ng(dict, resp); command = NGC_STOP_MEDIA; break; case CSH_LOOKUP("play DTMF"): errstr = call_play_dtmf_ng(dict, resp); command = NGC_PLAY_DTMF; break; case CSH_LOOKUP("statistics"): errstr = statistics_ng(dict, resp); command = NGC_STATISTICS; break; case CSH_LOOKUP("publish"): errstr = call_publish_ng(ngbuf, dict, resp, addr, sin); command = NGC_PUBLISH; break; case CSH_LOOKUP("subscribe request"): errstr = call_subscribe_request_ng(dict, resp); command = NGC_SUBSCRIBE_REQ; break; case CSH_LOOKUP("subscribe answer"): errstr = call_subscribe_answer_ng(ngbuf, dict, resp); command = NGC_SUBSCRIBE_ANS; break; case CSH_LOOKUP("unsubscribe"): errstr = call_unsubscribe_ng(dict, resp); command = NGC_UNSUBSCRIBE; break; default: errstr = "Unrecognized command"; } CH(homer_fill_values, hctx, &callid, command); CH(homer_trace_msg_in, hctx, data); // stop command timer gettimeofday(&cmd_stop, NULL); //print command duration timeval_from_us(&cmd_process_time, timeval_diff(&cmd_stop, &cmd_start)); if (command >= 0 && command < NGC_COUNT) { mutex_lock(&cur->cmd[command].lock); cur->cmd[command].count++; timeval_add(&cur->cmd[command].time, &cur->cmd[command].time, &cmd_process_time); mutex_unlock(&cur->cmd[command].lock); } if (errstr) goto err_send; bencode_dictionary_add_string(resp, "result", resultstr); // update interval statistics RTPE_STATS_INC(ng_commands[command]); RTPE_STATS_SAMPLE(ng_command_times[command], timeval_us(&cmd_process_time)); goto send_resp; err_send: if (errstr < magic_load_limit_strings[0] || errstr > magic_load_limit_strings[__LOAD_LIMIT_MAX-1]) { ilogs(control, LOG_WARNING, "Protocol error in packet from %s: %s [" STR_FORMAT_M "]", addr, errstr, STR_FMT_M(data)); bencode_dictionary_add_string(resp, "result", "error"); bencode_dictionary_add_string(resp, "error-reason", errstr); g_atomic_int_inc(&cur->errors); cmd = STR_NULL; } else { bencode_dictionary_add_string(resp, "result", "load limit"); bencode_dictionary_add_string(resp, "message", errstr); } send_resp: collapse_func(resp, reply); if (cmd.s) { ilogs(control, LOG_INFO, "Replying to '"STR_FORMAT"' from %s (elapsed time %llu.%06llu sec)", STR_FMT(&cmd), addr, (unsigned long long)cmd_process_time.tv_sec, (unsigned long long)cmd_process_time.tv_usec); if (get_log_level(control) >= LOG_DEBUG) { dict = bencode_decode_expect_str(&ngbuf->buffer, reply, BENCODE_DICTIONARY); if (dict) { log_str = g_string_sized_new(256); g_string_append_printf(log_str, "Response dump for '"STR_FORMAT"' to %s: %s", STR_FMT(&cmd), addr, rtpe_config.common.log_mark_prefix); pretty_print(dict, log_str); g_string_append(log_str, rtpe_config.common.log_mark_suffix); ilogs(control, LOG_DEBUG, "%.*s", (int) log_str->len, log_str->str); g_string_free(log_str, TRUE); } } } release_closed_sockets(); log_info_pop_until(&callid); CH(homer_trace_msg_out ,hctx, reply); } int control_ng_process(str *buf, const endpoint_t *sin, char *addr, const sockaddr_t *local, void (*cb)(str *, str *, const endpoint_t *, const sockaddr_t *, void *), void *p1, struct obj *ref) { str data; str_chr_str(&data, buf, ' '); if (!data.s || data.s == buf->s) { ilogs(control, LOG_WARNING, "Received invalid NG data (no cookie) from %s: " STR_FORMAT_M, addr, STR_FMT_M(buf)); return -1; } str cookie = *buf; cookie.len -= data.len; *data.s++ = '\0'; data.len--; cache_entry *cached = cookie_cache_lookup(&ng_cookie_cache, &cookie); if (cached) { ilogs(control, LOG_INFO, "Detected command from %s as a duplicate", addr); ng_ctx hctx = {.sin_ep = sin, .local_ep = p1 ? &(((socket_t*)p1)->local) : NULL, .cookie = cookie, .command = cached->command, .callid = *cached->callid, .should_trace = should_trace_msg(cached->command)}; CH(homer_trace_msg_in, &hctx, &data); cb(&cookie, cached->reply, sin, local, p1); CH(homer_trace_msg_out, &hctx, cached->reply); cache_entry_free(cached); return 0; } str reply; g_autoptr(ng_buffer) ngbuf = NULL; ng_ctx hctx = {.sin_ep = sin, .local_ep = p1 ? &(((socket_t*)p1)->local) : NULL, .cookie = cookie, .command = -1}; control_ng_process_payload(trace_ng ? &hctx : NULL, &reply, &data, sin, addr, ref, &ngbuf); cb(&cookie, &reply, sin, local, p1); cache_entry ce = {.reply = &reply, .command = hctx.command, .callid = &hctx.callid}; cookie_cache_insert(&ng_cookie_cache, &cookie, &ce); return 0; } int control_ng_process_plain(str *data, const endpoint_t *sin, char *addr, const sockaddr_t *local, void (*cb)(str *, str *, const endpoint_t *, const sockaddr_t *, void *), void *p1, struct obj *ref) { g_autoptr(ng_buffer) ngbuf = NULL; str reply; control_ng_process_payload(NULL, &reply, data, sin, addr, ref, &ngbuf); cb(NULL, &reply, sin, local, p1); return 0; } INLINE void control_ng_send_generic(str *cookie, str *body, const endpoint_t *sin, const sockaddr_t *from, void *p1) { socket_t *ul = p1; struct iovec iov[3]; unsigned int iovlen; iovlen = 3; iov[0].iov_base = cookie->s; iov[0].iov_len = cookie->len; iov[1].iov_base = " "; iov[1].iov_len = 1; iov[2].iov_base = body->s; iov[2].iov_len = body->len; socket_sendiov(ul, iov, iovlen, sin, from); } static void control_ng_send(str *cookie, str *body, const endpoint_t *sin, const sockaddr_t *from, void *p1) { control_ng_send_generic(cookie, body, sin, NULL, p1); } static void control_ng_send_from(str *cookie, str *body, const endpoint_t *sin, const sockaddr_t *from, void *p1) { control_ng_send_generic(cookie, body, sin, from, p1); } static void control_ng_incoming(struct obj *obj, struct udp_buffer *udp_buf) { control_ng_process(&udp_buf->str, &udp_buf->sin, udp_buf->addr, &udp_buf->local_addr, control_ng_send_from, udp_buf->listener, &udp_buf->obj); } static void control_incoming(struct streambuf_stream *s) { ilog(LOG_INFO, "New TCP control ng connection from %s", s->addr); mutex_lock(&tcp_connections_lock); g_hash_table_insert(tcp_connections_hash, s->addr, s); mutex_unlock(&tcp_connections_lock); ilog(LOG_DEBUG, "TCP connections map size: %d", g_hash_table_size(tcp_connections_hash)); } static void control_closed(struct streambuf_stream *s) { ilog(LOG_INFO, "TCP control ng connection from %s is closing", s->addr); mutex_lock(&tcp_connections_lock); g_hash_table_remove(tcp_connections_hash, s->addr); mutex_unlock(&tcp_connections_lock); ilog(LOG_DEBUG, "TCP connections map size: %d", g_hash_table_size(tcp_connections_hash)); } static str *chunk_message(struct streambuf *b) { char *p = NULL; int len, to_del, bsize; str *ret = NULL; mutex_lock(&b->lock); for (;;) { if (b->eof) break; p = memchr(b->buf->str, ' ', b->buf->len); if (!p) break; len = p - b->buf->str; if (len == b->buf->len) break; ++p; /* bencode dictionary here */ bsize = bencode_valid(p, b->buf->str + b->buf->len - p); if (bsize < 0) break; /* not enough data to parse bencoded dictionary */ p += bsize; len = p - b->buf->str; to_del = len; ret = str_alloc(len); memcpy(ret->s, b->buf->str, len); ret->len = len; g_string_erase(b->buf, 0, to_del); break; } mutex_unlock(&b->lock); return ret; } static void control_stream_readable(struct streambuf_stream *s) { str *data; ilog(LOG_DEBUG, "Got %zu bytes from %s", s->inbuf->buf->len, s->addr); while ((data = chunk_message(s->inbuf))) { ilog(LOG_DEBUG, "Got control ng message from %s", s->addr); control_ng_process(data, &s->sock.remote, s->addr, NULL, control_ng_send, &s->sock, s->parent); free(data); } if (streambuf_bufsize(s->inbuf) > 1024) { ilog(LOG_WARNING, "Buffer length exceeded in control connection from %s", s->addr); goto close; } return; close: streambuf_stream_close(s); } void control_ng_free(void *p) { struct control_ng *c = p; // XXX this should go elsewhere if (rtpe_cngs_hash) { GList *ll = g_hash_table_get_values(rtpe_cngs_hash); for (GList *l = ll; l; l = l->next) { struct control_ng_stats *s = l->data; g_slice_free1(sizeof(*s), s); } g_list_free(ll); g_hash_table_destroy(rtpe_cngs_hash); rtpe_cngs_hash = NULL; } rtpe_poller_del_item(rtpe_control_poller, c->udp_listener.fd); reset_socket(&c->udp_listener); streambuf_listener_shutdown(&c->tcp_listener); if (tcp_connections_hash) g_hash_table_destroy(tcp_connections_hash); } struct control_ng *control_ng_new(const endpoint_t *ep) { struct control_ng *c; c = obj_alloc0("control_ng", sizeof(*c), control_ng_free); c->udp_listener.fd = -1; if (udp_listener_init(&c->udp_listener, ep, control_ng_incoming, &c->obj)) goto fail2; if (rtpe_config.control_tos) set_tos(&c->udp_listener, rtpe_config.control_tos); if (rtpe_config.control_pmtu) set_pmtu_disc(&c->udp_listener, rtpe_config.control_pmtu == PMTU_DISC_WANT ? IP_PMTUDISC_WANT : IP_PMTUDISC_DONT); return c; fail2: obj_put(c); return NULL; } struct control_ng *control_ng_tcp_new(const endpoint_t *ep) { struct control_ng * ctrl_ng = obj_alloc0("control_ng", sizeof(*ctrl_ng), NULL); ctrl_ng->udp_listener.fd = -1; if (streambuf_listener_init(&ctrl_ng->tcp_listener, ep, control_incoming, control_stream_readable, control_closed, &ctrl_ng->obj)) { ilog(LOG_ERR, "Failed to open TCP control port: %s", strerror(errno)); goto fail; } tcp_connections_hash = g_hash_table_new(g_str_hash, g_str_equal); mutex_init(&tcp_connections_lock); return ctrl_ng; fail: obj_put(ctrl_ng); return NULL; } static void notify_tcp_client(gpointer key, gpointer value, gpointer user_data) { struct streambuf_stream *s = (struct streambuf_stream *)value; str *to_send = (str *)user_data; char cookie_buf[17]; str cookie = STR_CONST_INIT(cookie_buf); rand_hex_str(cookie_buf, cookie.len / 2); control_ng_send(&cookie, to_send, &s->sock.remote, NULL, &s->sock); } void notify_ng_tcp_clients(str *data) { mutex_lock(&tcp_connections_lock); g_hash_table_foreach(tcp_connections_hash, notify_tcp_client, data); mutex_unlock(&tcp_connections_lock); } void control_ng_init(void) { mutex_init(&rtpe_cngs_lock); rtpe_cngs_hash = g_hash_table_new(sockaddr_t_hash, sockaddr_t_eq); cookie_cache_init(&ng_cookie_cache); } void control_ng_cleanup(void) { cookie_cache_cleanup(&ng_cookie_cache); } rtpengine-mr12.5.1.22/daemon/control_ng_flags_parser.c000066400000000000000000000201541474347554000226760ustar00rootroot00000000000000#include "control_ng_flags_parser.h" #include #include #include #include #include "log.h" #include "log_funcs.h" /** * Data structures. */ static const char *transports[] = { [0x00] = "RTP/AVP", [0x01] = "RTP/SAVP", [0x02] = "RTP/AVPF", [0x03] = "RTP/SAVPF", [0x04] = "UDP/TLS/RTP/SAVP", [0x06] = "UDP/TLS/RTP/SAVPF", }; /** * Helpers. */ static int get_ip_type(char *str_addr) { struct addrinfo hint, *info = NULL; int ret; memset(&hint, '\0', sizeof hint); hint.ai_family = PF_UNSPEC; hint.ai_flags = AI_NUMERICHOST; ret = getaddrinfo(str_addr, NULL, &hint, &info); if(ret) { /* Invalid ip addinfos */ return -1; } if(info->ai_family == AF_INET) { ilogs(control, LOG_DEBUG, "%s is an ipv4 addinfos", str_addr); } else if(info->ai_family == AF_INET6) { ilogs(control, LOG_DEBUG, "%s is an ipv6 addinfos", str_addr); } else { ilogs(control, LOG_DEBUG, "%s is an unknown addinfos format AF=%d", str_addr, info->ai_family); freeaddrinfo(info); return -1; } ret = info->ai_family; freeaddrinfo(info); return ret; } /* parsing of key and val from string */ static bool get_key_val(str * key, str * val, str *in_out) { if (!str_token_sep(key, in_out, ' ')) return false; // key=value ? str k; if (!str_token_sep(&k, key, '=')) return true; *val = *key; *key = k; return true; } static inline int str_eq(const str *p, const char *q) { int l = strlen(q); if(p->len != l) return 0; if(memcmp(p->s, q, l)) return 0; return 1; } static inline int str_prefix(const str *p, const char *q, str *out) { int l = strlen(q); if(p->len < l) return 0; if(memcmp(p->s, q, l)) return 0; *out = *p; out->s += l; out->len -= l; return 1; } /* handle either "foo-bar" or "foo=bar" from flags */ static int str_key_val_prefix(const str * p, const char * q, const str * v, str * out) { if(str_eq(p, q)) { if(!v->s || !v->len) return 0; *out = *v; return 1; } if(!str_prefix(p, q, out)) return 0; if(out->len < 2) return 0; if(*out->s != '-') return 0; out->s++; out->len--; return 1; } /** * Work with bencode objects. */ /* parse `received-from` */ static bool parse_received_from(str * key, str * val, bencode_buffer_t * buf, sdp_ng_flags * out, enum call_opmode opmode) { bencode_item_t * item; int ip_af = AF_UNSPEC; str ipfamily, s; if(str_key_val_prefix(key, "received-from", val, &s)) { item = bencode_list(buf); ip_af = get_ip_type(s.s); ipfamily.len = 3; ipfamily.s = (ip_af == AF_INET) ? "IP4" : "IP6"; bencode_list_add_str(item, &ipfamily); bencode_list_add_str(item, &s); call_ng_main_flags(out, &STR_CONST_INIT("received-from"), item, opmode); return true; } return false; } static bool parse_codec_to_dict(str * key, str * val, const char *cmp1, const char *cmp2, const char * dictstr, sdp_ng_flags * out, bencode_buffer_t * buf, enum call_opmode opmode) { str s; bencode_item_t * dictp; if(!str_key_val_prefix(key, cmp1, val, &s)) { if(!cmp2) return false; if(!str_key_val_prefix(key, cmp2, val, &s)) return false; } dictp = bencode_list(buf); bencode_list_add_str(dictp, &s); call_ng_codec_flags(out, &STR_INIT(dictstr), dictp, opmode); return true; } /* parse codec related flags */ static bool parse_codecs(enum call_opmode opmode, sdp_ng_flags * out, bencode_buffer_t * buf, str * key, str * val) { if (parse_codec_to_dict(key, val, "transcode", "codec-transcode", "transcode", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-strip", NULL, "strip", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-offer", NULL, "offer", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-mask", NULL, "mask", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-set", NULL, "set", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-accept", NULL, "accept", out, buf, opmode) || parse_codec_to_dict(key, val, "codec-except", NULL, "except", out, buf, opmode)) { return true; } return false; } /* prase transport, such as for example RTP/AVP */ static void parse_transports(sdp_ng_flags *out, bencode_buffer_t *buf, enum call_opmode opmode, unsigned int transport) { const char * val = transports[transport & 0x007]; if (!val) return; call_ng_main_flags(out, &STR_CONST_INIT("transport-protocol"), bencode_string(buf, val), opmode); } #if 0 static bool parse_str_flag(str * key, str * val, const char * name, bencode_item_t * root_dict) { if(str_eq(key, name)) { if (val->s) { bencode_dictionary_str_add_str(root_dict, key, val); return true; } } return false; } #endif /** * Parse flags from bencode string into given bencode dictionary. * * Params: * @param rtpp_flags - raw str rtpp_flags * @param dict - root dict to store encoded flags */ void parse_rtpp_flags(const str * rtpp_flags, bencode_buffer_t * buf, enum call_opmode opmode, sdp_ng_flags * out) { str remainder, key, val; bencode_item_t * direction; unsigned int transport = 0; if (!rtpp_flags->s) return; remainder = *rtpp_flags; direction = bencode_list(buf); while (remainder.len) { /* skip spaces */ while (remainder.len && remainder.s[0] == ' ') str_shift(&remainder, 1); /* set key and val */ if (!get_key_val(&key, &val, &remainder)) break; /* specific received-from parsing */ if (parse_received_from(&key, &val, buf, out, opmode)) goto next; /* codecs have own specific parsing as well */ if (parse_codecs(opmode, out, buf, &key, &val)) goto next; /* parse other generic flags */ switch (key.len) { case 3: /* transport */ if (!val.s && str_eq(&key, "RTP")) transport = (transport | 0x100) & ~0x001; else if (!val.s && str_eq(&key, "AVP")) transport = (transport | 0x100) & ~0x002; /* other non-defined flags */ else goto generic; goto next; break; case 4: /* transport */ if (!val.s && str_eq(&key, "SRTP")) transport |= 0x101; else if (!val.s && str_eq(&key, "AVPF")) transport |= 0x102; else if (!val.s && str_eq(&key, "DTLS")) transport |= 0x104; /* other non-defined flags */ else goto generic; goto next; break; case 7: /* transport */ if (!val.s && str_eq(&key, "RTP/AVP")) transport = 0x100; /* other non-defined flags */ else goto generic; goto next; break; case 8: /* transport */ if (!val.s && str_eq(&key, "RTP/AVPF")) transport = 0x102; else if (!val.s && str_eq(&key, "RTP/SAVP")) transport = 0x101; /* from-tag can be overriden, but originally has to be provided */ else if (val.s && str_eq(&key, "from-tag")) { out->directional = 1; /* explicitly add directional for this case */ goto generic; } /* direction */ else if (str_eq(&key, "internal") || str_eq(&key, "external")) bencode_list_add_str(direction, &key); /* other non-defined flags */ else goto generic; goto next; break; case 9: /* transport */ if (!val.s && str_eq(&key, "RTP/SAVPF")) transport = 0x103; /* direction */ else if (str_eq(&key, "direction")) bencode_list_add_str(direction, &val); else goto generic; goto next; break; case 12: if (val.s && str_eq(&key, "delete-delay")) { call_ng_main_flags(out, &key, bencode_integer(buf, atoi(val.s)), opmode); } else goto generic; goto next; break; case 16: /* transport */ if (!val.s && str_eq(&key, "UDP/TLS/RTP/SAVP")) transport = 0x104; else goto generic; goto next; break; case 17: /* transport */ if (!val.s && str_eq(&key, "UDP/TLS/RTP/SAVPF")) transport = 0x106; else goto generic; goto next; break; } generic: /* generic one key flags */ if (!val.s) call_ng_flags_flags(out, &key, NULL); /* generic flags with value, but no particular processing */ else call_ng_main_flags(out, &key, bencode_str(buf, &val), opmode); next:; } /* define transport */ if (transport) parse_transports(out, buf, opmode, transport); /* add directions to the root dict */ if (direction && direction->child) call_ng_direction_flag(out, direction); } rtpengine-mr12.5.1.22/daemon/control_tcp.c000066400000000000000000000110671474347554000203330ustar00rootroot00000000000000#include "control_tcp.h" #include #include #include #include #include #include #include #include #include #include "poller.h" #include "helpers.h" #include "streambuf.h" #include "log.h" #include "call.h" #include "call_interfaces.h" #include "socket.h" #include "log_funcs.h" #include "tcp_listener.h" struct control_tcp { struct obj obj; struct streambuf_listener listener; pcre2_code *parse_re; }; //static void control_stream_closed(int fd, void *p, uintptr_t u) { static void control_stream_closed(struct streambuf_stream *s) { ilogs(control, LOG_INFO, "Control connection from %s closed", s->addr); } static void control_list(struct control_tcp *c, struct streambuf_stream *s) { if (!c->listener.listener.family) return; mutex_lock(&c->listener.lock); tcp_streams_ht_iter iter; t_hash_table_iter_init(&iter, c->listener.streams); struct streambuf_stream *cl; while (t_hash_table_iter_next(&iter, NULL, &cl)) streambuf_printf(s->outbuf, "%s\n", cl->addr); mutex_unlock(&c->listener.lock); streambuf_printf(s->outbuf, "End.\n"); } static int control_stream_parse(struct streambuf_stream *s, char *line) { int ret; char **out; struct control_tcp *c = (void *) s->parent; str *output = NULL; pcre2_match_data *md = pcre2_match_data_create(20, NULL); ret = pcre2_match(c->parse_re, (PCRE2_SPTR8) line, PCRE2_ZERO_TERMINATED, 0, 0, md, NULL); if (ret <= 0) { ilogs(control, LOG_WARNING, "Unable to parse command line from %s: %s", s->addr, line); return -1; } ilogs(control, LOG_INFO, "Got valid command from %s: %s", s->addr, line); pcre2_substring_list_get(md, (PCRE2_UCHAR ***) &out, NULL); if (out[RE_TCP_RL_CALLID]) log_info_c_string(out[RE_TCP_RL_CALLID]); else if (out[RE_TCP_D_CALLID]) log_info_c_string(out[RE_TCP_D_CALLID]); if (!strcmp(out[RE_TCP_RL_CMD], "request")) output = call_request_tcp(out); else if (!strcmp(out[RE_TCP_RL_CMD], "lookup")) output = call_lookup_tcp(out); else if (!strcmp(out[RE_TCP_D_CMD], "delete")) call_delete_tcp(out); else if (!strcmp(out[RE_TCP_DIV_CMD], "status")) calls_status_tcp(s); else if (!strcmp(out[RE_TCP_DIV_CMD], "build") || !strcmp(out[RE_TCP_DIV_CMD], "version")) streambuf_printf(s->outbuf, "Version: %s\n", RTPENGINE_VERSION); else if (!strcmp(out[RE_TCP_DIV_CMD], "controls")) control_list(c, s); else if (!strcmp(out[RE_TCP_DIV_CMD], "quit") || !strcmp(out[RE_TCP_DIV_CMD], "exit")) {} if (output) { streambuf_write_str(s->outbuf, output); free(output); } pcre2_substring_list_free((SUBSTRING_FREE_ARG) out); pcre2_match_data_free(md); log_info_pop(); return 1; } //static void control_stream_readable(int fd, void *p, uintptr_t u) { static void control_stream_readable(struct streambuf_stream *s) { char *line; int ret; while ((line = streambuf_getline(s->inbuf))) { ilogs(control, LOG_DEBUG, "Got control line from %s: %s", s->addr, line); ret = control_stream_parse(s, line); free(line); if (ret == 1) { streambuf_stream_shutdown(s); break; } if (ret) goto close; } if (streambuf_bufsize(s->inbuf) > 1024) { ilogs(control, LOG_WARNING, "Buffer length exceeded in control connection from %s", s->addr); goto close; } return; close: streambuf_stream_close(s); } static void control_incoming(struct streambuf_stream *s) { ilogs(control, LOG_INFO, "New TCP control connection from %s", s->addr); } static void control_tcp_free(void *p) { struct control_tcp *c = p; streambuf_listener_shutdown(&c->listener); pcre2_code_free(c->parse_re); } struct control_tcp *control_tcp_new(const endpoint_t *ep) { struct control_tcp *c; c = obj_alloc0("control", sizeof(*c), control_tcp_free); if (streambuf_listener_init(&c->listener, ep, control_incoming, control_stream_readable, control_stream_closed, &c->obj)) { ilogs(control, LOG_ERR, "Failed to open TCP control port: %s", strerror(errno)); goto fail; } int errcode; PCRE2_SIZE erroff; c->parse_re = pcre2_compile( /* reqtype callid streams ip fromdom fromtype todom totype agent info |reqtype callid info | reqtype */ (PCRE2_SPTR8) "^(?:(request|lookup)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+info=(\\S*)|(delete)\\s+(\\S+)\\s+info=(\\S*)|(build|version|controls|quit|exit|status))$", PCRE2_ZERO_TERMINATED, PCRE2_DOLLAR_ENDONLY | PCRE2_DOTALL, &errcode, &erroff, NULL); obj_put(c); return c; fail: // XXX streambuf_listener_close ... obj_put(c); return NULL; } rtpengine-mr12.5.1.22/daemon/control_udp.c000066400000000000000000000131731474347554000203350ustar00rootroot00000000000000#include "control_udp.h" #include #include #include #include #include #include #include #include #include #include #include "poller.h" #include "helpers.h" #include "log.h" #include "call.h" #include "udp_listener.h" #include "call_interfaces.h" #include "socket.h" #include "log_funcs.h" static void control_udp_incoming(struct obj *obj, struct udp_buffer *udp_buf) { struct control_udp *u = (void *) obj; int ret; char **out; struct iovec iov[10]; unsigned int iovlen; str cookie, *reply = NULL; cache_entry *ce; pcre2_match_data *md = pcre2_match_data_create(30, NULL); ret = pcre2_match(u->parse_re, (PCRE2_SPTR8) udp_buf->str.s, udp_buf->str.len, 0, 0, md, NULL); if (ret <= 0) { ret = pcre2_match(u->fallback_re, (PCRE2_SPTR8) udp_buf->str.s, udp_buf->str.len, 0, 0, md, NULL); if (ret <= 0) { ilogs(control, LOG_WARNING, "Unable to parse command line from udp:%s: %.*s", udp_buf->addr, STR_FMT(&udp_buf->str)); return; } ilogs(control, LOG_WARNING, "Failed to properly parse UDP command line '%.*s' from %s, using fallback RE", STR_FMT(&udp_buf->str), udp_buf->addr); pcre2_substring_list_get(md, (PCRE2_UCHAR ***) &out, NULL); iov[0].iov_base = (void *) out[RE_UDP_COOKIE]; iov[0].iov_len = strlen(out[RE_UDP_COOKIE]); if (out[RE_UDP_UL_CMD] && (chrtoupper(out[RE_UDP_UL_CMD][0]) == 'U' || chrtoupper(out[RE_UDP_UL_CMD][0]) == 'L')) { iov[1].iov_base = (void *) out[4]; iov[1].iov_len = strlen(out[4]); iov[2].iov_base = (void *) out[3]; iov[2].iov_len = strlen(out[3]); iov[3].iov_base = "\n"; iov[3].iov_len = 1; iovlen = 4; } else { iov[1].iov_base = " E8\n"; iov[1].iov_len = 4; iovlen = 2; } socket_sendiov(udp_buf->listener, iov, iovlen, &udp_buf->sin, &udp_buf->local_addr); pcre2_substring_list_free((SUBSTRING_FREE_ARG) out); pcre2_match_data_free(md); return; } ilogs(control, LOG_INFO, "Got valid command from udp:%s: %.*s", udp_buf->addr, STR_FMT(&udp_buf->str)); pcre2_substring_list_get(md, (PCRE2_UCHAR ***) &out, NULL); str_init(&cookie, (void *) out[RE_UDP_COOKIE]); ce = cookie_cache_lookup(&u->cookie_cache, &cookie); if (ce) { reply = ce->reply; ilogs(control, LOG_INFO, "Detected command from udp:%s as a duplicate", udp_buf->addr); socket_sendto_from(udp_buf->listener, reply->s, reply->len, &udp_buf->sin, &udp_buf->local_addr); cache_entry_free(ce); goto out; } if (out[RE_UDP_UL_CALLID]) log_info_c_string(out[RE_UDP_UL_CALLID]); else if (out[RE_UDP_DQ_CALLID]) log_info_c_string(out[RE_UDP_DQ_CALLID]); if (chrtoupper(out[RE_UDP_UL_CMD][0]) == 'U') reply = call_update_udp(out, udp_buf->addr, &udp_buf->sin); else if (chrtoupper(out[RE_UDP_UL_CMD][0]) == 'L') reply = call_lookup_udp(out); else if (chrtoupper(out[RE_UDP_DQ_CMD][0]) == 'D') reply = call_delete_udp(out); else if (chrtoupper(out[RE_UDP_DQ_CMD][0]) == 'Q') reply = call_query_udp(out); else if (chrtoupper(out[RE_UDP_V_CMD][0]) == 'V') { iovlen = 2; iov[0].iov_base = (void *) out[RE_UDP_COOKIE]; iov[0].iov_len = strlen(out[RE_UDP_COOKIE]); iov[1].iov_base = " "; iov[1].iov_len = 1; if (chrtoupper(out[RE_UDP_V_FLAGS][0]) == 'F') { ret = 0; if (!strcmp(out[RE_UDP_V_PARMS], "20040107")) ret = 1; else if (!strcmp(out[RE_UDP_V_PARMS], "20050322")) ret = 1; else if (!strcmp(out[RE_UDP_V_PARMS], "20060704")) ret = 1; iov[2].iov_base = ret ? "1\n" : "0\n"; iov[2].iov_len = 2; iovlen++; } else { iov[2].iov_base = "20040107\n"; iov[2].iov_len = 9; iovlen++; } socket_sendiov(udp_buf->listener, iov, iovlen, &udp_buf->sin, &udp_buf->local_addr); } if (reply) { socket_sendto_from(udp_buf->listener, reply->s, reply->len, &udp_buf->sin, &udp_buf->local_addr); str callid = STR_NULL; cache_entry new_ce = {.reply = reply, .callid = &callid}; cookie_cache_insert(&u->cookie_cache, &cookie, &new_ce); free(reply); } else cookie_cache_remove(&u->cookie_cache, &cookie); out: pcre2_substring_list_free((SUBSTRING_FREE_ARG) out); pcre2_match_data_free(md); log_info_pop(); } void control_udp_free(void *p) { struct control_udp *u = p; pcre2_code_free(u->parse_re); pcre2_code_free(u->fallback_re); close_socket(&u->udp_listener); cookie_cache_cleanup(&u->cookie_cache); } struct control_udp *control_udp_new(const endpoint_t *ep) { struct control_udp *c; PCRE2_SIZE erroff; int errcode; c = obj_alloc0("control_udp", sizeof(*c), control_udp_free); c->parse_re = pcre2_compile( /* cookie cmd flags callid viabranch:5 */ (PCRE2_SPTR8) "^(\\S+)\\s+(?:([ul])(\\S*)\\s+([^;]+)(?:;(\\S+))?\\s+" \ /* addr4 addr6:7 */ "(?:([\\d.]+)|([\\da-f:]+(?::ffff:[\\d.]+)?))" \ /* port fromtag num totag:11 */ "\\s+(\\d+)\\s+(\\S+?);(\\d+)(?:\\s+(\\S+?);\\d+(?:\\s+.*)?)?\r?\n?$" \ /* "d/q" flags callid viabranch fromtag totag:17 */ "|([dq])(\\S*)\\s+([^;\\s]+)(?:;(\\S+))?\\s+(\\S+?)(?:;\\d+)?(?:\\s+(\\S+?)(?:;\\d+)?)?\r?\n?$" \ /* v flags params:20 */ "|(v)(\\S*)(?:\\s+(\\S+))?)", PCRE2_ZERO_TERMINATED, PCRE2_DOLLAR_ENDONLY | PCRE2_DOTALL | PCRE2_CASELESS, &errcode, &erroff, NULL); /* cookie cmd flags callid addr port */ c->fallback_re = pcre2_compile((PCRE2_SPTR8) "^(\\S+)(?:\\s+(\\S)\\S*\\s+\\S+(\\s+\\S+)(\\s+\\S+))?", PCRE2_ZERO_TERMINATED, PCRE2_DOLLAR_ENDONLY | PCRE2_DOTALL | PCRE2_CASELESS, &errcode, &erroff, NULL); if (!c->parse_re || !c->fallback_re) goto fail2; cookie_cache_init(&c->cookie_cache); if (udp_listener_init(&c->udp_listener, ep, control_udp_incoming, &c->obj)) goto fail2; return c; fail2: obj_put(c); return NULL; } rtpengine-mr12.5.1.22/daemon/cookie_cache.c000066400000000000000000000051131474347554000203740ustar00rootroot00000000000000#include "cookie_cache.h" #include #include #include "compat.h" #include "helpers.h" #include "poller.h" #include "str.h" INLINE void cookie_cache_state_init(struct cookie_cache_state *s) { s->in_use = g_hash_table_new((GHashFunc) str_hash, (GEqualFunc) str_equal); s->cookies = g_hash_table_new_full((GHashFunc) str_hash, (GEqualFunc) str_equal, free, cache_entry_free); } INLINE void cookie_cache_state_cleanup(struct cookie_cache_state *s) { g_hash_table_destroy(s->cookies); g_hash_table_destroy(s->in_use); } void cookie_cache_init(struct cookie_cache *c) { cookie_cache_state_init(&c->current); cookie_cache_state_init(&c->old); c->swap_time = rtpe_now.tv_sec; mutex_init(&c->lock); cond_init(&c->cond); } /* lock must be held */ static void __cookie_cache_check_swap(struct cookie_cache *c) { if (rtpe_now.tv_sec - c->swap_time >= 30) { g_hash_table_remove_all(c->old.cookies); swap_ptrs(&c->old.cookies, &c->current.cookies); c->swap_time = rtpe_now.tv_sec; } } cache_entry *cookie_cache_lookup(struct cookie_cache *c, const str *s) { cache_entry *ret; mutex_lock(&c->lock); __cookie_cache_check_swap(c); restart: ret = g_hash_table_lookup(c->current.cookies, s); if (!ret) ret = g_hash_table_lookup(c->old.cookies, s); if (ret) { ret = cache_entry_dup(ret); mutex_unlock(&c->lock); return ret; } // is it being worked on right now by another thread? void *p = g_hash_table_lookup(c->current.in_use, s); if (!p) p = g_hash_table_lookup(c->old.in_use, s); if (p) { cond_wait(&c->cond, &c->lock); goto restart; } // caller is required to call cookie_cache_insert or cookie_cache_remove // before `s` runs out of scope g_hash_table_replace(c->current.in_use, (void *) s, (void *) 0x1); mutex_unlock(&c->lock); return NULL; } void cookie_cache_insert(struct cookie_cache *c, const str *s, const struct cache_entry *entry) { mutex_lock(&c->lock); g_hash_table_remove(c->current.in_use, s); g_hash_table_remove(c->old.in_use, s); g_hash_table_replace(c->current.cookies, str_dup(s), cache_entry_dup(entry)); g_hash_table_remove(c->old.cookies, s); cond_broadcast(&c->cond); mutex_unlock(&c->lock); } void cookie_cache_remove(struct cookie_cache *c, const str *s) { mutex_lock(&c->lock); g_hash_table_remove(c->current.in_use, s); g_hash_table_remove(c->old.in_use, s); g_hash_table_remove(c->current.cookies, s); g_hash_table_remove(c->old.cookies, s); cond_broadcast(&c->cond); mutex_unlock(&c->lock); } void cookie_cache_cleanup(struct cookie_cache *c) { cookie_cache_state_cleanup(&c->current); cookie_cache_state_cleanup(&c->old); } rtpengine-mr12.5.1.22/daemon/crypto.c000066400000000000000000000702031474347554000173220ustar00rootroot00000000000000#include "crypto.h" #include #include #include #include #include "str.h" #include "helpers.h" #include "rtp.h" #include "rtcp.h" #include "log.h" #include "rtplib.h" #include "rtcplib.h" #include "main.h" #include "ssllib.h" #include "types.h" #include "xt_RTPENGINE.h" __thread GString *crypto_debug_string; static int aes_cm_encrypt_rtp(struct crypto_context *, struct rtp_header *, str *, uint32_t); static int aes_cm_encrypt_rtcp(struct crypto_context *, struct rtcp_packet *, str *, uint32_t); static int aes_gcm_encrypt_rtp(struct crypto_context *, struct rtp_header *, str *, uint32_t); static int aes_gcm_decrypt_rtp(struct crypto_context *, struct rtp_header *, str *, uint32_t); static int aes_gcm_encrypt_rtcp(struct crypto_context *, struct rtcp_packet *, str *, uint32_t); static int aes_gcm_decrypt_rtcp(struct crypto_context *, struct rtcp_packet *, str *, uint32_t); static int hmac_sha1_rtp(struct crypto_context *, char *out, str *in, uint32_t); static int hmac_sha1_rtcp(struct crypto_context *, char *out, str *in); static int aes_f8_encrypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx); static int aes_f8_encrypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx); static int aes_cm_session_key_init(struct crypto_context *c); static int aes_gcm_session_key_init(struct crypto_context *c); static int aes_f8_session_key_init(struct crypto_context *c); static int evp_session_key_cleanup(struct crypto_context *c); static int null_crypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx); static int null_crypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx); /* all lengths are in bytes */ struct crypto_suite __crypto_suites[] = { { .name = "AEAD_AES_256_GCM", .dtls_name = "SRTP_AEAD_AES_256_GCM", .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AEAD_AES_GCM_256, .kernel_hmac = REH_NULL, .srtp_auth_tag = 0, .srtcp_auth_tag = 0, .srtp_auth_key_len = 0, .srtcp_auth_key_len = 0, .encrypt_rtp = aes_gcm_encrypt_rtp, .decrypt_rtp = aes_gcm_decrypt_rtp, .encrypt_rtcp = aes_gcm_encrypt_rtcp, .decrypt_rtcp = aes_gcm_decrypt_rtcp, .session_key_init = aes_gcm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, .aead_evp = EVP_aes_256_gcm, }, { .name = "AEAD_AES_128_GCM", .dtls_name = "SRTP_AEAD_AES_128_GCM", .master_key_len = 16, .master_salt_len = 12, .session_key_len = 16, .session_salt_len = 12, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AEAD_AES_GCM_128, .kernel_hmac = REH_NULL, .srtp_auth_tag = 0, .srtcp_auth_tag = 0, .srtp_auth_key_len = 0, .srtcp_auth_key_len = 0, .encrypt_rtp = aes_gcm_encrypt_rtp, .decrypt_rtp = aes_gcm_decrypt_rtp, .encrypt_rtcp = aes_gcm_encrypt_rtcp, .decrypt_rtcp = aes_gcm_decrypt_rtcp, .session_key_init = aes_gcm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, .aead_evp = EVP_aes_128_gcm, }, { .name = "AES_256_CM_HMAC_SHA1_80", //.dtls_name = "SRTP_AES128_CM_SHA1_80", .master_key_len = 32, .master_salt_len = 14, .session_key_len = 32, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_256, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "AES_256_CM_HMAC_SHA1_32", //.dtls_name = "SRTP_AES128_CM_SHA1_32", .master_key_len = 32, .master_salt_len = 14, .session_key_len = 32, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_256, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "AES_192_CM_HMAC_SHA1_80", //.dtls_name = "SRTP_AES128_CM_SHA1_80", .master_key_len = 24, .master_salt_len = 14, .session_key_len = 24, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_192, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "AES_192_CM_HMAC_SHA1_32", //.dtls_name = "SRTP_AES128_CM_SHA1_32", .master_key_len = 24, .master_salt_len = 14, .session_key_len = 24, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_192, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "AES_CM_128_HMAC_SHA1_80", .dtls_name = "SRTP_AES128_CM_SHA1_80", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_128, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "AES_CM_128_HMAC_SHA1_32", .dtls_name = "SRTP_AES128_CM_SHA1_32", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_CM_128, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_cm_encrypt_rtp, .decrypt_rtp = aes_cm_encrypt_rtp, .encrypt_rtcp = aes_cm_encrypt_rtcp, .decrypt_rtcp = aes_cm_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "F8_128_HMAC_SHA1_80", // .dtls_name = "SRTP_AES128_F8_SHA1_80", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_F8, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_f8_encrypt_rtp, .decrypt_rtp = aes_f8_encrypt_rtp, .encrypt_rtcp = aes_f8_encrypt_rtcp, .decrypt_rtcp = aes_f8_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_f8_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "F8_128_HMAC_SHA1_32", // .dtls_name = "SRTP_AES128_F8_SHA1_32", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_AES_F8, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = aes_f8_encrypt_rtp, .decrypt_rtp = aes_f8_encrypt_rtp, .encrypt_rtcp = aes_f8_encrypt_rtcp, .decrypt_rtcp = aes_f8_encrypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_init = aes_f8_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "NULL_HMAC_SHA1_80", // .dtls_name = "SRTP_NULL_SHA1_80", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 0, .session_salt_len = 0, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_NULL, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = null_crypt_rtp, .decrypt_rtp = null_crypt_rtp, .encrypt_rtcp = null_crypt_rtcp, .decrypt_rtcp = null_crypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_cleanup = evp_session_key_cleanup, }, { .name = "NULL_HMAC_SHA1_32", // .dtls_name = "SRTP_NULL_SHA1_32", .master_key_len = 16, .master_salt_len = 14, .session_key_len = 0, .session_salt_len = 0, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, .kernel_cipher = REC_NULL, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, .srtp_auth_key_len = 20, .srtcp_auth_key_len = 20, .encrypt_rtp = null_crypt_rtp, .decrypt_rtp = null_crypt_rtp, .encrypt_rtcp = null_crypt_rtcp, .decrypt_rtcp = null_crypt_rtcp, .hash_rtp = hmac_sha1_rtp, .hash_rtcp = hmac_sha1_rtcp, .session_key_cleanup = evp_session_key_cleanup, }, }; /* those crypto suites we can */ const struct crypto_suite *crypto_suites = __crypto_suites; const unsigned int num_crypto_suites = G_N_ELEMENTS(__crypto_suites); const struct crypto_suite * crypto_find_suite(const str *s) { int i; const struct crypto_suite *cs; for (i = 0; i < num_crypto_suites; i++) { cs = &crypto_suites[i]; if (str_casecmp_str(&cs->name_str, s) == 0) return cs; } return NULL; } /* rfc 3711 section 4.1 and 4.1.1 * "in" and "out" MAY point to the same buffer */ static void aes_ctr(unsigned char *out, str *in, EVP_CIPHER_CTX *ecc, const unsigned char *iv) { unsigned char ivx[16]; unsigned char key_block[16]; unsigned char *p, *q; unsigned int left; int outlen, i; gboolean aligned = TRUE; uint64_t *pi, *qi, *ki; if (!ecc) return; memcpy(ivx, iv, 16); pi = (void *) in->s; qi = (void *) out; ki = (void *) key_block; left = in->len; if ((GPOINTER_TO_UINT(pi) % sizeof(*pi)) != 0) aligned = FALSE; if ((GPOINTER_TO_UINT(qi) % sizeof(*qi)) != 0) aligned = FALSE; while (left) { EVP_EncryptUpdate(ecc, key_block, &outlen, ivx, 16); assert(outlen == 16); if (left < 16 || !aligned) { p = (void *) pi; q = (void *) qi; for (i = 0; i < 16; i++) { *q++ = *p++ ^ key_block[i]; left--; if (!left) goto done; } } else { qi[0] = pi[0] ^ ki[0]; qi[1] = pi[1] ^ ki[1]; left -= 16; } qi += 2; pi += 2; for (i = 15; i >= 0; i--) { ivx[i]++; if (G_LIKELY(ivx[i])) break; } } done: ; } static void aes_ctr_no_ctx(unsigned char *out, str *in, const unsigned char *key, const EVP_CIPHER *ciph, const unsigned char *iv) { EVP_CIPHER_CTX *ctx; unsigned char block[16]; int len; #if OPENSSL_VERSION_NUMBER >= 0x10100000L ctx = EVP_CIPHER_CTX_new(); #else EVP_CIPHER_CTX ctx_s; ctx = &ctx_s; EVP_CIPHER_CTX_init(ctx); #endif EVP_EncryptInit_ex(ctx, ciph, NULL, key, NULL); aes_ctr(out, in, ctx, iv); EVP_EncryptFinal_ex(ctx, block, &len); #if OPENSSL_VERSION_NUMBER >= 0x10100000L EVP_CIPHER_CTX_free(ctx); #else EVP_CIPHER_CTX_cleanup(ctx); #endif } /* rfc 3711 section 4.3.1 and 4.3.3 * key: 128 bits * x: 112 bits * n <= 256 * out->len := n / 8 */ static void prf_n(str *out, const unsigned char *key, const EVP_CIPHER *ciph, const unsigned char *x) { unsigned char iv[16]; unsigned char o[32]; unsigned char in[32]; str in_s; assert(sizeof(o) >= out->len); ZERO(iv); memcpy(iv, x, 14); /* iv[14] = iv[15] = 0; := x << 16 */ ZERO(in); /* outputs the key stream */ str_init_len(&in_s, (void *) in, out->len > 16 ? 32 : 16); aes_ctr_no_ctx(o, &in_s, key, ciph, iv); memcpy(out->s, o, out->len); } /* rfc 3711 section 4.3.1 */ int crypto_gen_session_key(struct crypto_context *c, str *out, unsigned char label, unsigned int index_len) { unsigned char key_id[7]; /* [ label, 48-bit ROC || SEQ ] */ unsigned char x[14]; int i; if (!out->len) return 0; ZERO(key_id); /* key_id[1..6] := r; or 1..4 for rtcp * key_derivation_rate == 0 --> r == 0 */ key_id[0] = label; assert(sizeof(x) >= c->params.crypto_suite->master_salt_len); memcpy(x, c->params.master_salt, c->params.crypto_suite->master_salt_len); // AEAD uses 12 bytes master salt; pad on the right to get 14 // Errata: https://www.rfc-editor.org/errata_search.php?rfc=7714 if (c->params.crypto_suite->master_salt_len == 12) x[12] = x[13] = '\x00'; for (i = 13 - index_len; i < 14; i++) x[i] = key_id[i - (13 - index_len)] ^ x[i]; prf_n(out, c->params.master_key, c->params.crypto_suite->aes_evp, x); ilogs(srtp, LOG_DEBUG, "Generated session key: master key " "%02x%02x%02x%02x..., " "master salt " "%02x%02x%02x%02x..., " "label %02x, length %zu, result " "%02x%02x%02x%02x...", c->params.master_key[0], c->params.master_key[1], c->params.master_key[2], c->params.master_key[3], c->params.master_salt[0], c->params.master_salt[1], c->params.master_salt[2], c->params.master_salt[3], label, out->len, (unsigned char) out->s[0], (unsigned char) out->s[1], (unsigned char) out->s[2], (unsigned char) out->s[3]); return 0; } /* * All versions of libsrtp w/openssl prior to 1.6 and 2.1 have * a bug in iv generation for AES-256 SRTCP only (SRTP is ok). * https://github.com/cisco/libsrtp/issues/264 * Example: FreeSWITCH 1.6.x. * The bug is equivalent to: * * // idx <= 16 - no left shift * // ivi[1] ^= ssrc - don't use ssrc * // ivi[2] ^= idxh - don't use idxh */ /* rfc 3711 section 4.1.1 */ static int aes_cm_encrypt(struct crypto_context *c, uint32_t ssrc, str *s, uint32_t idx) { unsigned char iv[16]; uint32_t *ivi; uint32_t idxh, idxl; memcpy(iv, c->session_salt, 14); iv[14] = iv[15] = '\0'; ivi = (void *) iv; idxh = htonl((idx & 0xffff0000ULL) >> 16); idxl = htonl((idx & 0x0000ffffULL) << 16); ivi[1] ^= ssrc; ivi[2] ^= idxh; ivi[3] ^= idxl; aes_ctr((void *) s->s, s, c->session_key_ctx[0], iv); return 0; } /* rfc 3711 section 4.1 */ static int aes_cm_encrypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx) { return aes_cm_encrypt(c, r->ssrc, s, idx); } /* rfc 3711 sections 3.4 and 4.1 */ static int aes_cm_encrypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx) { return aes_cm_encrypt(c, r->ssrc, s, idx); } /* rfc 7714 section 8 */ union aes_gcm_rtp_iv { unsigned char bytes[12]; struct { uint16_t zeros; uint32_t ssrc; uint32_t roq; uint16_t seq; } __attribute__((__packed__)); } __attribute__((__packed__)); _Static_assert(offsetof(union aes_gcm_rtp_iv, seq) == 10, "union aes_gcm_rtp_iv not packed"); static int aes_gcm_encrypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx) { union aes_gcm_rtp_iv iv; int len, ciphertext_len; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->ssrc; iv.roq ^= htonl((idx & 0xffffff0000ULL) >> 16); iv.seq ^= htons( idx & 0x000000ffffULL); EVP_EncryptInit_ex(c->session_key_ctx[0], c->params.crypto_suite->aead_evp(), NULL, (const unsigned char *) c->session_key, iv.bytes); // nominally 12 bytes of AAD EVP_EncryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)r, s->s - (char *)r); EVP_EncryptUpdate(c->session_key_ctx[0], (unsigned char *) s->s, &len, (const unsigned char *) s->s, s->len); ciphertext_len = len; if (!EVP_EncryptFinal_ex(c->session_key_ctx[0], (unsigned char *) s->s+len, &len)) return 1; ciphertext_len += len; // append the tag to the str buffer EVP_CIPHER_CTX_ctrl(c->session_key_ctx[0], EVP_CTRL_GCM_GET_TAG, 16, s->s+ciphertext_len); s->len = ciphertext_len + 16; return 0; } static int aes_gcm_decrypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx) { union aes_gcm_rtp_iv iv; int len, plaintext_len; if (s->len < 16) return -1; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->ssrc; iv.roq ^= htonl((idx & 0xffff0000ULL) >> 16); iv.seq ^= htons( idx & 0x0000ffffULL); EVP_DecryptInit_ex(c->session_key_ctx[0], c->params.crypto_suite->aead_evp(), NULL, (const unsigned char *) c->session_key, iv.bytes); // nominally 12 bytes of AAD EVP_DecryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)r, s->s - (char *)r); // decrypt partial buffer - the last 16 bytes are the tag EVP_DecryptUpdate(c->session_key_ctx[0], (unsigned char *) s->s, &len, (const unsigned char *) s->s, s->len-16); plaintext_len = len; EVP_CIPHER_CTX_ctrl(c->session_key_ctx[0], EVP_CTRL_GCM_SET_TAG, 16, s->s + s->len-16); if (!EVP_DecryptFinal_ex(c->session_key_ctx[0], (unsigned char *) s->s+len, &len)) return 1; plaintext_len += len; s->len = plaintext_len; return 0; } /* rfc 7714 section 9 */ union aes_gcm_rtcp_iv { unsigned char bytes[12]; struct { uint16_t zeros_a; uint32_t ssrc; uint16_t zeros_b; uint32_t srtcp; } __attribute__((__packed__)); } __attribute__((__packed__)); _Static_assert(offsetof(union aes_gcm_rtcp_iv, srtcp) == 8, "union aes_gcm_rtcp_iv not packed"); static int aes_gcm_encrypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx) { union aes_gcm_rtcp_iv iv; uint32_t e_idx; int len, ciphertext_len; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->ssrc; iv.srtcp ^= htonl(idx & 0x007fffffffULL); e_idx = htonl((idx & 0x007fffffffULL) | 0x80000000ULL); EVP_EncryptInit_ex(c->session_key_ctx[0], c->params.crypto_suite->aead_evp(), NULL, (const unsigned char *) c->session_key, iv.bytes); // nominally 8 + 4 bytes of AAD EVP_EncryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)r, s->s - (char *)r); EVP_EncryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)&e_idx, 4); EVP_EncryptUpdate(c->session_key_ctx[0], (unsigned char *) s->s, &len, (const unsigned char *) s->s, s->len); ciphertext_len = len; if (!EVP_EncryptFinal_ex(c->session_key_ctx[0], (unsigned char *) s->s+len, &len)) return 1; ciphertext_len += len; // append the tag to the str buffer EVP_CIPHER_CTX_ctrl(c->session_key_ctx[0], EVP_CTRL_GCM_GET_TAG, 16, s->s+ciphertext_len); s->len = ciphertext_len + 16; return 0; } static int aes_gcm_decrypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx) { union aes_gcm_rtcp_iv iv; uint32_t e_idx; int len, plaintext_len; if (s->len < 16) return -1; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->ssrc; iv.srtcp ^= htonl(idx & 0x007fffffffULL); e_idx = htonl((idx & 0x007fffffffULL) | 0x80000000ULL); EVP_DecryptInit_ex(c->session_key_ctx[0], c->params.crypto_suite->aead_evp(), NULL, (const unsigned char *) c->session_key, iv.bytes); // nominally 8 + 4 bytes of AAD EVP_DecryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)r, s->s - (char *)r); EVP_DecryptUpdate(c->session_key_ctx[0], NULL, &len, (void *)&e_idx, 4); // decrypt partial buffer - the last 16 bytes are the tag EVP_DecryptUpdate(c->session_key_ctx[0], (unsigned char *) s->s, &len, (const unsigned char *) s->s, s->len-16); plaintext_len = len; EVP_CIPHER_CTX_ctrl(c->session_key_ctx[0], EVP_CTRL_GCM_SET_TAG, 16, s->s + s->len-16); if (!EVP_DecryptFinal_ex(c->session_key_ctx[0], (unsigned char *) s->s+len, &len)) return 1; plaintext_len += len; s->len = plaintext_len; return 0; } /* rfc 3711 sections 4.1.2 and 4.1.2.1 * encrypts in place */ static void aes_128_f8_encrypt(struct crypto_context *c, unsigned char *iv, str *s) { unsigned char key_block[16], last_key_block[16], /* S(j), S(j-1) */ ivx[16], /* IV' */ x[16]; int i, outlen, left; uint32_t j; unsigned char *p; uint64_t *pi, *ki, *lki, *xi; uint32_t *xu; EVP_EncryptUpdate(c->session_key_ctx[1], ivx, &outlen, iv, 16); assert(outlen == 16); pi = (void *) s->s; ki = (void *) key_block; lki = (void *) last_key_block; xi = (void *) x; xu = (void *) x; left = s->len; j = 0; ZERO(last_key_block); while (left) { /* S(j) = E(k_e, IV' XOR j XOR S(j-1)) */ memcpy(x, ivx, 16); xu[3] ^= htonl(j); xi[0] ^= lki[0]; xi[1] ^= lki[1]; EVP_EncryptUpdate(c->session_key_ctx[0], key_block, &outlen, x, 16); assert(outlen == 16); if (G_UNLIKELY(left < 16)) { p = (void *) pi; for (i = 0; i < 16; i++) { *p++ ^= key_block[i]; left--; if (!left) goto done; } abort(); } *pi++ ^= ki[0]; *pi++ ^= ki[1]; left -= 16; if (!left) break; j++; memcpy(last_key_block, key_block, 16); } done: ; } /* rfc 3711 section 4.1.2.2 */ static int aes_f8_encrypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx) { unsigned char iv[16]; uint32_t roc; iv[0] = '\0'; memcpy(&iv[1], &r->m_pt, 11); /* m, pt, seq, ts, ssrc */ roc = htonl((idx & 0xffffffff0000ULL) >> 16); memcpy(&iv[12], &roc, sizeof(roc)); aes_128_f8_encrypt(c, iv, s); return 0; } /* rfc 3711 section 4.1.2.3 */ static int aes_f8_encrypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx) { unsigned char iv[16]; uint32_t i; memset(iv, 0, 4); i = htonl(0x80000000ULL | idx); memcpy(&iv[4], &i, 4); memcpy(&iv[8], r, 8); /* v, p, rc, pt, length, ssrc */ aes_128_f8_encrypt(c, iv, s); return 0; } /* rfc 3711, sections 4.2 and 4.2.1 */ static int hmac_sha1_rtp(struct crypto_context *c, char *out, str *in, uint32_t index) { unsigned char hmac[20]; uint32_t roc; roc = htonl((index & 0xffffffff0000ULL) >> 16); #if OPENSSL_VERSION_NUMBER >= 0x30000000L EVP_MAC_CTX *hc; hc = EVP_MAC_CTX_dup(rtpe_hmac_sha1_base); EVP_MAC_init(hc, (unsigned char *) c->session_auth_key, c->params.crypto_suite->srtp_auth_key_len, NULL); EVP_MAC_update(hc, (unsigned char *) in->s, in->len); EVP_MAC_update(hc, (unsigned char *) &roc, sizeof(roc)); size_t outsize = sizeof(hmac); EVP_MAC_final(hc, hmac, &outsize, outsize); EVP_MAC_CTX_free(hc); #else // <3.0 HMAC_CTX *hc; #if OPENSSL_VERSION_NUMBER >= 0x10100000L hc = HMAC_CTX_new(); #else HMAC_CTX hc_s; HMAC_CTX_init(&hc_s); hc = &hc_s; #endif HMAC_Init_ex(hc, c->session_auth_key, c->params.crypto_suite->srtp_auth_key_len, EVP_sha1(), NULL); HMAC_Update(hc, (unsigned char *) in->s, in->len); HMAC_Update(hc, (unsigned char *) &roc, sizeof(roc)); HMAC_Final(hc, hmac, NULL); #if OPENSSL_VERSION_NUMBER >= 0x10100000L HMAC_CTX_free(hc); #else HMAC_CTX_cleanup(hc); #endif #endif assert(sizeof(hmac) >= c->params.crypto_suite->srtp_auth_tag); memcpy(out, hmac, c->params.crypto_suite->srtp_auth_tag); return 0; } /* rfc 3711, sections 4.2 and 4.2.1 */ static int hmac_sha1_rtcp(struct crypto_context *c, char *out, str *in) { unsigned char hmac[20]; if (!HMAC(EVP_sha1(), c->session_auth_key, c->params.crypto_suite->srtcp_auth_key_len, (unsigned char *) in->s, in->len, hmac, NULL)) { memset(out, 0, c->params.crypto_suite->srtcp_auth_tag); return 1; } assert(sizeof(hmac) >= c->params.crypto_suite->srtcp_auth_tag); memcpy(out, hmac, c->params.crypto_suite->srtcp_auth_tag); return 0; } static int aes_cm_session_key_init(struct crypto_context *c) { evp_session_key_cleanup(c); #if OPENSSL_VERSION_NUMBER >= 0x10100000L c->session_key_ctx[0] = EVP_CIPHER_CTX_new(); #else c->session_key_ctx[0] = g_slice_alloc(sizeof(EVP_CIPHER_CTX)); EVP_CIPHER_CTX_init(c->session_key_ctx[0]); #endif EVP_EncryptInit_ex(c->session_key_ctx[0], c->params.crypto_suite->aes_evp, NULL, (unsigned char *) c->session_key, NULL); return 0; } static int aes_gcm_session_key_init(struct crypto_context *c) { evp_session_key_cleanup(c); #if OPENSSL_VERSION_NUMBER >= 0x10100000L c->session_key_ctx[0] = EVP_CIPHER_CTX_new(); #else c->session_key_ctx[0] = g_slice_alloc(sizeof(EVP_CIPHER_CTX)); EVP_CIPHER_CTX_init(c->session_key_ctx[0]); #endif return 0; } static int aes_f8_session_key_init(struct crypto_context *c) { unsigned char m[16]; int i; int k_e_len, k_s_len; /* n_e, n_s */ unsigned char *key; aes_cm_session_key_init(c); k_e_len = c->params.crypto_suite->session_key_len; k_s_len = c->params.crypto_suite->session_salt_len; key = (unsigned char *) c->session_key; /* m = k_s || 0x555..5 */ memcpy(m, c->session_salt, k_s_len); for (i = k_s_len; i < k_e_len; i++) m[i] = 0x55; /* IV' = E(k_e XOR m, IV) */ for (i = 0; i < k_e_len; i++) m[i] ^= key[i]; #if OPENSSL_VERSION_NUMBER >= 0x10100000L c->session_key_ctx[1] = EVP_CIPHER_CTX_new(); #else c->session_key_ctx[1] = g_slice_alloc(sizeof(EVP_CIPHER_CTX)); EVP_CIPHER_CTX_init(c->session_key_ctx[1]); #endif EVP_EncryptInit_ex(c->session_key_ctx[1], EVP_aes_128_ecb(), NULL, m, NULL); return 0; } static int evp_session_key_cleanup(struct crypto_context *c) { unsigned char block[16]; int len, i; for (i = 0; i < G_N_ELEMENTS(c->session_key_ctx); i++) { if (!c->session_key_ctx[i]) continue; EVP_EncryptFinal_ex(c->session_key_ctx[i], block, &len); #if OPENSSL_VERSION_NUMBER >= 0x10100000L EVP_CIPHER_CTX_free(c->session_key_ctx[i]); #else EVP_CIPHER_CTX_cleanup(c->session_key_ctx[i]); g_slice_free1(sizeof(EVP_CIPHER_CTX), c->session_key_ctx[i]); #endif c->session_key_ctx[i] = NULL; } return 0; } static int null_crypt_rtp(struct crypto_context *c, struct rtp_header *r, str *s, uint32_t idx) { return 0; } static int null_crypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str *s, uint32_t idx) { return 0; } static void dump_key(struct crypto_context *c, int log_level) { char *k, *s; if (!c->params.crypto_suite) return; k = g_base64_encode(c->params.master_key, c->params.crypto_suite->master_key_len); s = g_base64_encode(c->params.master_salt, c->params.crypto_suite->master_salt_len); ilogs(srtp, log_level, "--- %s key %s%s%s salt %s%s%s", c->params.crypto_suite->name, FMT_M(k), FMT_M(s)); g_free(k); g_free(s); } void crypto_dump_keys(struct crypto_context *in, struct crypto_context *out) { int log_level = LOG_DEBUG; if (rtpe_config.log_keys) log_level = LOG_ERROR; if (get_log_level(core) < log_level) return; ilogs(srtp, log_level, "SRTP keys, incoming:"); dump_key(in, log_level); ilogs(srtp, log_level, "SRTP keys, outgoing:"); dump_key(out, log_level); } char *crypto_params_sdes_dump(const struct crypto_params_sdes *cps, char **buf) { if (*buf) g_free(*buf); GString *s = g_string_new(""); if (!cps || !cps->params.crypto_suite) { g_string_append(s, ""); goto out; } g_string_append_printf(s, "suite %s, tag %u, key ", cps->params.crypto_suite->name, cps->tag); char *b = g_base64_encode(cps->params.master_key, cps->params.crypto_suite->master_key_len); g_string_append_printf(s, "%s salt ", b); g_free(b); b = g_base64_encode(cps->params.master_salt, cps->params.crypto_suite->master_salt_len); g_string_append_printf(s, "%s", b); g_free(b); out: *buf = g_string_free(s, FALSE); return *buf; } void crypto_init_main(void) { struct crypto_suite *cs; for (unsigned int i = 0; i < num_crypto_suites; i++) { cs = &__crypto_suites[i]; cs->idx = i; str_init(&cs->name_str, (char *) cs->name); switch(cs->master_key_len) { case 16: cs->aes_evp = EVP_aes_128_ecb(); break; case 24: cs->aes_evp = EVP_aes_192_ecb(); break; case 32: cs->aes_evp = EVP_aes_256_ecb(); break; } } } void __crypto_debug_printf(const char *fmt, ...) { va_list va; va_start(va, fmt); g_string_append_vprintf(crypto_debug_string, fmt, va); va_end(va); } rtpengine-mr12.5.1.22/daemon/dtls.c000066400000000000000000000533521474347554000167560ustar00rootroot00000000000000#include "dtls.h" #include #include #include #include #include #include #include #include #include #include #include #include "str.h" #include "helpers.h" #include "crypto.h" #include "log.h" #include "call.h" #include "poller.h" #include "ice.h" #if OPENSSL_VERSION_NUMBER >= 0x10002000L #define X509_getm_notBefore X509_get_notBefore #define X509_getm_notAfter X509_get_notAfter #endif #define DTLS_DEBUG 0 #if DTLS_DEBUG #define __DBG(x...) ilog(LOG_DEBUG, x) #else #define __DBG(x...) ilogs(internals, LOG_DEBUG, x) #endif #define CERT_EXPIRY_TIME (60*60*24*30) /* 30 days */ struct dtls_connection *dtls_ptr(stream_fd *sfd) { if (!sfd) return NULL; struct packet_stream *ps = sfd->stream; if (PS_ISSET(ps, ICE)) // ignore which sfd we were given return &ps->ice_dtls; return &sfd->dtls; } static char ciphers_str[1024]; static unsigned int sha_1_func(unsigned char *, X509 *); static unsigned int sha_224_func(unsigned char *, X509 *); static unsigned int sha_256_func(unsigned char *, X509 *); static unsigned int sha_384_func(unsigned char *, X509 *); static unsigned int sha_512_func(unsigned char *, X509 *); static const struct dtls_hash_func hash_funcs[] = { { .name = "sha-256", .num_bytes = 256 / 8, .__func = sha_256_func, }, { .name = "sha-1", .num_bytes = 160 / 8, .__func = sha_1_func, }, { .name = "sha-224", .num_bytes = 224 / 8, .__func = sha_224_func, }, { .name = "sha-384", .num_bytes = 384 / 8, .__func = sha_384_func, }, { .name = "sha-512", .num_bytes = 512 / 8, .__func = sha_512_func, }, }; const int num_hash_funcs = G_N_ELEMENTS(hash_funcs); static struct dtls_cert *__dtls_cert; static rwlock_t __dtls_cert_lock; const struct dtls_hash_func *dtls_find_hash_func(const str *s) { int i; const struct dtls_hash_func *hf; for (i = 0; i < num_hash_funcs; i++) { hf = &hash_funcs[i]; if (strlen(hf->name) != s->len) continue; if (!strncasecmp(s->s, hf->name, s->len)) return hf; } return NULL; } static void cert_free(void *p) { struct dtls_cert *cert = p; if (cert->pkey) EVP_PKEY_free(cert->pkey); if (cert->x509) X509_free(cert->x509); g_queue_clear_full(&cert->fingerprints, free); } static void buf_dump_free(char *buf, size_t len) { char *p, *f; int llen; p = buf; while (len) { f = memchr(p, '\n', len); if (f) llen = f - p; else llen = len; ilogs(srtp, LOG_DEBUG, "--- %.*s", llen, p); if (!f) break; len -= llen + 1; p = f + 1; } free(buf); } static void dump_cert(struct dtls_cert *cert) { FILE *fp; char *buf; size_t len; if (get_log_level(core) < LOG_DEBUG) return; /* cert */ fp = open_memstream(&buf, &len); if (!fp) { ilogs(crypto, LOG_ERROR, "Failed to allocate memory to dump DTLS certificate"); return; } PEM_write_X509(fp, cert->x509); fclose(fp); ilogs(srtp, LOG_DEBUG, "Dump of DTLS certificate:"); buf_dump_free(buf, len); /* key */ fp = open_memstream(&buf, &len); if (!fp) { ilogs(crypto, LOG_ERROR, "Failed to allocate memory to dump DTLS private key"); return; } PEM_write_PrivateKey(fp, cert->pkey, NULL, NULL, 0, 0, NULL); fclose(fp); ilogs(srtp, LOG_DEBUG, "Dump of DTLS private key:"); buf_dump_free(buf, len); } static int cert_init(void) { X509 *x509 = NULL; EVP_PKEY *pkey = NULL; BIGNUM *serial_number = NULL; #if OPENSSL_VERSION_NUMBER < 0x30000000L RSA *rsa = NULL; EC_KEY *ec_key = NULL; BIGNUM *exponent = NULL; #endif ASN1_INTEGER *asn1_serial_number; X509_NAME *name; struct dtls_cert *new_cert; ilogs(crypto, LOG_INFO, "Generating new DTLS certificate"); /* objects */ serial_number = BN_new(); name = X509_NAME_new(); x509 = X509_new(); if (!serial_number || !name || !x509) goto err; #if OPENSSL_VERSION_NUMBER < 0x30000000L pkey = EVP_PKEY_new(); if (!pkey) goto err; #endif /* key */ if (rtpe_config.dtls_cert_cipher == DCC_RSA) { ilogs(crypto, LOG_DEBUG, "Using %i-bit RSA key for DTLS certificate", rtpe_config.dtls_rsa_key_size); #if OPENSSL_VERSION_NUMBER >= 0x30000000L pkey = EVP_RSA_gen(rtpe_config.dtls_rsa_key_size); #else // <3.0 exponent = BN_new(); rsa = RSA_new(); if (!exponent || !rsa) goto err; if (!BN_set_word(exponent, 0x10001)) goto err; if (!RSA_generate_key_ex(rsa, rtpe_config.dtls_rsa_key_size, exponent, NULL)) goto err; if (!EVP_PKEY_assign_RSA(pkey, rsa)) goto err; rsa = NULL; #endif } else if (rtpe_config.dtls_cert_cipher == DCC_EC_PRIME256v1) { ilogs(crypto, LOG_DEBUG, "Using EC-prime256v1 key for DTLS certificate"); #if OPENSSL_VERSION_NUMBER >= 0x30000000L pkey = EVP_EC_gen("prime256v1"); #else ec_key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); if (!ec_key) goto err; if (!EC_KEY_generate_key(ec_key)) goto err; if (!EVP_PKEY_assign_EC_KEY(pkey, ec_key)) goto err; ec_key = NULL; #endif } else abort(); #if OPENSSL_VERSION_NUMBER >= 0x30000000L if (!pkey) goto err; #endif /* x509 cert */ if (!X509_set_pubkey(x509, pkey)) goto err; /* serial */ #if OPENSSL_VERSION_NUMBER < 0x10100000L if (!BN_pseudo_rand(serial_number, 64, 0, 0)) goto err; #else if (!BN_rand(serial_number, 64, 0, 0)) goto err; #endif asn1_serial_number = X509_get_serialNumber(x509); if (!asn1_serial_number) goto err; if (!BN_to_ASN1_INTEGER(serial_number, asn1_serial_number)) goto err; /* version 1 */ if (!X509_set_version(x509, 0L)) goto err; /* common name */ const char *cn = rtpe_config.software_id ?: "rtpengine"; size_t cn_len = MIN(strlen(cn), 63); if (!X509_NAME_add_entry_by_NID(name, NID_commonName, MBSTRING_UTF8, (unsigned char *) cn, cn_len, -1, 0)) goto err; if (!X509_set_subject_name(x509, name)) goto err; if (!X509_set_issuer_name(x509, name)) goto err; /* cert lifetime */ if (!X509_gmtime_adj(X509_getm_notBefore(x509), -60*60*24)) goto err; if (!X509_gmtime_adj(X509_getm_notAfter(x509), CERT_EXPIRY_TIME)) goto err; /* sign it */ if (!X509_sign(x509, pkey, rtpe_config.dtls_signature == DSIG_SHA1 ? EVP_sha1() : EVP_sha256())) goto err; /* digest */ new_cert = obj_alloc0("dtls_cert", sizeof(*new_cert), cert_free); for (int i = 0; i < num_hash_funcs; i++) { struct dtls_fingerprint *fp = malloc(sizeof(*fp)); fp->hash_func = &hash_funcs[i]; dtls_fingerprint_hash(fp, x509); g_queue_push_tail(&new_cert->fingerprints, fp); } new_cert->x509 = x509; new_cert->pkey = pkey; new_cert->expires = time(NULL) + CERT_EXPIRY_TIME; dump_cert(new_cert); /* swap out certs */ rwlock_lock_w(&__dtls_cert_lock); if (__dtls_cert) obj_put(__dtls_cert); __dtls_cert = new_cert; rwlock_unlock_w(&__dtls_cert_lock); /* cleanup */ #if OPENSSL_VERSION_NUMBER < 0x30000000L BN_free(exponent); #endif BN_free(serial_number); X509_NAME_free(name); return 0; err: ilogs(crypto, LOG_ERROR, "Failed to generate DTLS certificate"); if (pkey) EVP_PKEY_free(pkey); #if OPENSSL_VERSION_NUMBER < 0x30000000L if (exponent) BN_free(exponent); if (rsa) RSA_free(rsa); if (ec_key) EC_KEY_free(ec_key); #endif if (x509) X509_free(x509); if (serial_number) BN_free(serial_number); return -1; } int dtls_init(void) { int i; char *p; rwlock_init(&__dtls_cert_lock); if (cert_init()) return -1; p = ciphers_str; for (i = 0; i < num_crypto_suites; i++) { if (!crypto_suites[i].dtls_name) continue; p += sprintf(p, "%s:", crypto_suites[i].dtls_name); } assert(p != ciphers_str); assert(p - ciphers_str < sizeof(ciphers_str)); p[-1] = '\0'; return 0; } static enum thread_looper_action __dtls_timer(void) { struct dtls_cert *c; long int left; c = dtls_cert(); if (!c) return TLA_BREAK; left = c->expires - rtpe_now.tv_sec; if (left > CERT_EXPIRY_TIME/2) goto out; cert_init(); out: obj_put(c); return TLA_CONTINUE; } void dtls_timer(void) { thread_create_looper(__dtls_timer, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "DTLS refresh", ((long long) CERT_EXPIRY_TIME / 7) * 1000000); } static unsigned int generic_func(unsigned char *o, X509 *x, const EVP_MD *md) { unsigned int n; assert(md != NULL); X509_digest(x, md, o, &n); return n; } static unsigned int sha_1_func(unsigned char *o, X509 *x) { const EVP_MD *md; md = EVP_sha1(); return generic_func(o, x, md); } static unsigned int sha_224_func(unsigned char *o, X509 *x) { const EVP_MD *md; md = EVP_sha224(); return generic_func(o, x, md); } static unsigned int sha_256_func(unsigned char *o, X509 *x) { const EVP_MD *md; md = EVP_sha256(); return generic_func(o, x, md); } static unsigned int sha_384_func(unsigned char *o, X509 *x) { const EVP_MD *md; md = EVP_sha384(); return generic_func(o, x, md); } static unsigned int sha_512_func(unsigned char *o, X509 *x) { const EVP_MD *md; md = EVP_sha512(); return generic_func(o, x, md); } struct dtls_cert *dtls_cert(void) { struct dtls_cert *ret; rwlock_lock_r(&__dtls_cert_lock); ret = __dtls_cert ? obj_get(__dtls_cert) : NULL; rwlock_unlock_r(&__dtls_cert_lock); return ret; } void dtls_cert_free(void) { rwlock_lock_w(&__dtls_cert_lock); if (__dtls_cert) obj_put(__dtls_cert); __dtls_cert = NULL; rwlock_unlock_w(&__dtls_cert_lock); return ; } static int verify_callback(int ok, X509_STORE_CTX *store) { SSL *ssl; struct dtls_connection *d; struct packet_stream *ps; struct call_media *media; ssl = X509_STORE_CTX_get_ex_data(store, SSL_get_ex_data_X509_STORE_CTX_idx()); d = SSL_get_app_data(ssl); if (d->ssl != ssl) return 0; ps = d->ptr; if (!ps) return 0; if (PS_ISSET(ps, FINGERPRINT_VERIFIED)) return 1; media = ps->media; if (!media) return 0; if (ps->dtls_cert) X509_free(ps->dtls_cert); ps->dtls_cert = NULL; #if OPENSSL_VERSION_NUMBER >= 0x10100010L X509 *cert = X509_STORE_CTX_get0_cert(store); if (!cert) cert = X509_STORE_CTX_get_current_cert(store); #else X509 *cert = X509_STORE_CTX_get_current_cert(store); #endif if (!cert) return 0; ps->dtls_cert = X509_dup(cert); if (!media->fingerprint.hash_func || !media->fingerprint.digest_len) return 1; /* delay verification */ if (dtls_verify_cert(ps)) return 0; return 1; } int dtls_verify_cert(struct packet_stream *ps) { unsigned char fp[DTLS_MAX_DIGEST_LEN]; struct call_media *media; media = ps->media; if (!media) return -1; if (!ps->dtls_cert) return -1; dtls_hash(media->fingerprint.hash_func, ps->dtls_cert, fp); if (memcmp(media->fingerprint.digest, fp, media->fingerprint.hash_func->num_bytes)) { ilogs(crypto, LOG_WARNING, "DTLS: Peer certificate rejected - fingerprint mismatch"); __DBG("fingerprint expected: %02x%02x%02x%02x%02x%02x%02x%02x received: %02x%02x%02x%02x%02x%02x%02x%02x", media->fingerprint.digest[0], media->fingerprint.digest[1], media->fingerprint.digest[2], media->fingerprint.digest[3], media->fingerprint.digest[4], media->fingerprint.digest[5], media->fingerprint.digest[6], media->fingerprint.digest[7], fp[0], fp[1], fp[2], fp[3], fp[4], fp[5], fp[6], fp[7]); return -1; } PS_SET(ps, FINGERPRINT_VERIFIED); ilogs(crypto, LOG_INFO, "DTLS: Peer certificate accepted"); return 0; } static int try_connect(struct dtls_connection *d) { int ret, code; unsigned char buf[0x10000]; __DBG("try_connect(%i)", d->active); if (d->connected) ret = SSL_read(d->ssl, buf, sizeof(buf)); /* retransmission after connected - handshake lost */ else if (d->active) ret = SSL_connect(d->ssl); else ret = SSL_accept(d->ssl); code = SSL_get_error(d->ssl, ret); ret = 0; switch (code) { case SSL_ERROR_NONE: if (d->connected) { ilogs(crypto, LOG_INFO, "DTLS data received after handshake, code: %i", code); } else { ilogs(crypto, LOG_DEBUG, "DTLS handshake successful"); d->connected = 1; ret = 1; } break; case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: if (d->connected) { ilogs(crypto, LOG_INFO, "DTLS data received after handshake, code: %i", code); } break; case SSL_ERROR_ZERO_RETURN: if (d->connected) { ilogs(crypto, LOG_INFO, "DTLS peer has closed the connection"); ret = -2; } break; default: ret = ERR_peek_last_error(); ilogs(crypto, LOG_ERROR, "DTLS error: %i (%s)", code, ERR_reason_error_string(ret)); ret = -1; break; } return ret; } static long dtls_bio_callback(BIO *bio, int oper, const char *argp, size_t len, int argi, long argl, int ret, size_t *proc) { if (oper == (BIO_CB_CTRL | BIO_CB_RETURN)) { if (argi == BIO_CTRL_DGRAM_QUERY_MTU) return rtpe_config.dtls_mtu; // this is with overhead already subtracted if (argi == BIO_CTRL_DGRAM_GET_MTU_OVERHEAD) return DTLS_MTU_OVERHEAD; return ret; } if (oper != BIO_CB_WRITE) return ret; if (!argp || len <= 0) return ret; struct packet_stream *ps = (struct packet_stream *) BIO_get_callback_arg(bio); if (!ps) return ret; struct stream_fd *sfd = ps->selected_sfd; if (!sfd) return ret; struct dtls_connection *d = dtls_ptr(sfd); if (!d) return ret; __DBG("dtls packet output: len %zu %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", len, argp[0], argp[1], argp[2], argp[3], argp[4], argp[5], argp[6], argp[7], argp[8], argp[9], argp[10], argp[11], argp[12], argp[13], argp[14], argp[15]); const endpoint_t *fsin = &ps->endpoint; if (fsin->port == 9 || fsin->address.family == NULL) return ret; ilogs(srtp, LOG_DEBUG, "Sending DTLS packet"); socket_sendto(&sfd->socket, argp, len, fsin); atomic64_inc_na(&ps->stats_out->packets); atomic64_add_na(&ps->stats_out->bytes, len); return ret; } int dtls_connection_init(struct dtls_connection *d, struct packet_stream *ps, int active, struct dtls_cert *cert) { if (!cert) { ilogs(crypto, LOG_ERR, "Cannot establish DTLS: no certificate available"); return -1; } unsigned long err; if (d->init) { if ((d->active && active) || (!d->active && !active)) goto done; dtls_connection_cleanup(d); } d->ptr = ps; ilogs(crypto, LOG_DEBUG, "Creating %s DTLS connection context", active ? "active" : "passive"); #if OPENSSL_VERSION_NUMBER >= 0x10002000L d->ssl_ctx = SSL_CTX_new(active ? DTLS_client_method() : DTLS_server_method()); #else d->ssl_ctx = SSL_CTX_new(active ? DTLSv1_client_method() : DTLSv1_server_method()); #endif if (!d->ssl_ctx) goto error; if (SSL_CTX_use_certificate(d->ssl_ctx, cert->x509) != 1) goto error; if (SSL_CTX_use_PrivateKey(d->ssl_ctx, cert->pkey) != 1) goto error; SSL_CTX_set_verify(d->ssl_ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, verify_callback); SSL_CTX_set_verify_depth(d->ssl_ctx, 4); SSL_CTX_set_cipher_list(d->ssl_ctx, rtpe_config.dtls_ciphers); if (SSL_CTX_set_tlsext_use_srtp(d->ssl_ctx, ciphers_str)) goto error; if (SSL_CTX_set_read_ahead(d->ssl_ctx, 1)) goto error; d->ssl = SSL_new(d->ssl_ctx); if (!d->ssl) goto error; d->r_bio = BIO_new(BIO_s_mem()); d->w_bio = BIO_new(BIO_s_mem()); if (!d->r_bio || !d->w_bio) goto error; BIO_set_callback_ex(d->w_bio, dtls_bio_callback); BIO_set_callback_arg(d->w_bio, (char *) ps); #if defined(BIO_CTRL_DGRAM_SET_MTU) BIO_ctrl(d->w_bio, BIO_CTRL_DGRAM_SET_MTU, rtpe_config.dtls_mtu, NULL); BIO_ctrl(d->r_bio, BIO_CTRL_DGRAM_SET_MTU, rtpe_config.dtls_mtu, NULL); #endif SSL_set_app_data(d->ssl, d); SSL_set_bio(d->ssl, d->r_bio, d->w_bio); d->init = 1; SSL_set_mode(d->ssl, SSL_MODE_ENABLE_PARTIAL_WRITE | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); #if OPENSSL_VERSION_NUMBER >= 0x30000000L int ec_groups[1] = { NID_X9_62_prime256v1 }; SSL_set1_groups(d->ssl, &ec_groups, G_N_ELEMENTS(ec_groups)); #else // <3.0 EC_KEY* ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); if (ecdh == NULL) goto error; SSL_set_options(d->ssl, SSL_OP_SINGLE_ECDH_USE); SSL_set_tmp_ecdh(d->ssl, ecdh); EC_KEY_free(ecdh); #endif #if defined(SSL_OP_NO_QUERY_MTU) SSL_CTX_set_options(d->ssl_ctx, SSL_OP_NO_QUERY_MTU); SSL_set_mtu(d->ssl, rtpe_config.dtls_mtu); #if defined(DTLS_set_link_mtu) || defined(DTLS_CTRL_SET_LINK_MTU) || OPENSSL_VERSION_NUMBER >= 0x10100000L DTLS_set_link_mtu(d->ssl, rtpe_config.dtls_mtu); #endif #endif d->active = active ? -1 : 0; random_string(d->tls_id, sizeof(d->tls_id)); done: return 0; error: err = ERR_peek_last_error(); if (!d->init) { if (d->r_bio) BIO_free(d->r_bio); if (d->w_bio) BIO_free(d->w_bio); } if (d->ssl) SSL_free(d->ssl); if (d->ssl_ctx) SSL_CTX_free(d->ssl_ctx); ZERO(*d); ilogs(crypto, LOG_ERROR, "Failed to init DTLS connection: %s", ERR_reason_error_string(err)); return -1; } static int dtls_setup_crypto(struct packet_stream *ps, struct dtls_connection *d) { const char *err; SRTP_PROTECTION_PROFILE *spp; int i; const struct crypto_suite *cs; unsigned char keys[2 * (SRTP_MAX_MASTER_KEY_LEN + SRTP_MAX_MASTER_SALT_LEN)]; struct crypto_params client, server; err = "no SRTP protection profile negotiated"; spp = SSL_get_selected_srtp_profile(d->ssl); if (!spp) goto error; for (i = 0; i < num_crypto_suites; i++) { cs = &crypto_suites[i]; if (!cs->dtls_name) continue; if (!strcmp(cs->dtls_name, spp->name)) goto found; } err = "unknown SRTP protection profile negotiated"; goto error; found: i = SSL_export_keying_material(d->ssl, keys, sizeof(keys), "EXTRACTOR-dtls_srtp", strlen("EXTRACTOR-dtls_srtp"), NULL, 0, 0); err = "failed to export keying material"; if (i != 1) goto error; /* got everything XXX except MKI */ ZERO(client); ZERO(server); i = 0; client.crypto_suite = server.crypto_suite = cs; memcpy(client.master_key, &keys[i], cs->master_key_len); i += cs->master_key_len; memcpy(server.master_key, &keys[i], cs->master_key_len); i += cs->master_key_len; memcpy(client.master_salt, &keys[i], cs->master_salt_len); i += cs->master_salt_len; memcpy(server.master_salt, &keys[i], cs->master_salt_len); ilogs(crypto, LOG_INFO, "DTLS-SRTP successfully negotiated using %s", cs->name); if (d->active) { /* we're the client */ crypto_init(&ps->crypto, &client); if (ps->selected_sfd) crypto_init(&ps->selected_sfd->crypto, &server); } else { /* we're the server */ crypto_init(&ps->crypto, &server); if (ps->selected_sfd) crypto_init(&ps->selected_sfd->crypto, &client); } // it's possible that ps->selected_sfd is not from ps->sfds list (?) for (__auto_type l = ps->sfds.head; l; l = l->next) { stream_fd *sfd = l->data; if (d->active) /* we're the client */ crypto_init(&sfd->crypto, &server); else /* we're the server */ crypto_init(&sfd->crypto, &client); } if (ps->selected_sfd) crypto_dump_keys(&ps->crypto, &ps->selected_sfd->crypto); return 0; error: if (!spp) ilogs(crypto, LOG_ERROR, "Failed to set up SRTP after DTLS negotiation: %s", err); else ilogs(crypto, LOG_ERROR, "Failed to set up SRTP after DTLS negotiation: %s (profile \"%s\")", err, spp->name); return -1; } /* called with call locked in W or R with ps->in_lock held */ int dtls(stream_fd *sfd, const str *s, const endpoint_t *fsin) { struct packet_stream *ps = sfd->stream; int ret; if (!ps) return 0; if (!MEDIA_ISSET(ps->media, DTLS)) return 0; struct dtls_connection *d = dtls_ptr(sfd); if (!d) return 0; if (s) __DBG("dtls packet input: len %zu %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", s->len, (unsigned char) s->s[0], (unsigned char) s->s[1], (unsigned char) s->s[2], (unsigned char) s->s[3], (unsigned char) s->s[4], (unsigned char) s->s[5], (unsigned char) s->s[6], (unsigned char) s->s[7], (unsigned char) s->s[8], (unsigned char) s->s[9], (unsigned char) s->s[10], (unsigned char) s->s[11], (unsigned char) s->s[12], (unsigned char) s->s[13], (unsigned char) s->s[14], (unsigned char) s->s[15]); if (!d->init || !d->ssl) return -1; if (s) { ilogs(srtp, LOG_DEBUG, "Processing incoming DTLS packet"); BIO_write(d->r_bio, s->s, s->len); /* we understand this as preference of DTLS over SDES */ MEDIA_CLEAR(ps->media, SDES); } int dret = 0; ret = try_connect(d); if (ret == -1) { ilogs(srtp, LOG_ERROR, "DTLS error on local port %u", sfd->socket.local.port); /* fatal error */ dtls_connection_cleanup(d); return 0; } if (ret == -2) { /* peer close connection */ dtls_connection_cleanup(d); return 0; } else if (ret == 1) { /* connected! */ dret = 1; mutex_lock(&ps->out_lock); // nested lock! if (dtls_setup_crypto(ps, d)) {} /* XXX ?? */ mutex_unlock(&ps->out_lock); if (PS_ISSET(ps, RTP) && PS_ISSET(ps, RTCP) && ps->rtcp_sibling && MEDIA_ISSET(ps->media, RTCP_MUX) && ps->rtcp_sibling != ps) { // nested locks! mutex_lock(&ps->rtcp_sibling->in_lock); mutex_lock(&ps->rtcp_sibling->out_lock); if (dtls_setup_crypto(ps->rtcp_sibling, d)) {} /* XXX ?? */ mutex_unlock(&ps->rtcp_sibling->out_lock); mutex_unlock(&ps->rtcp_sibling->in_lock); } } return dret; } /* call must be locked */ void dtls_shutdown(struct packet_stream *ps) { if (!ps) return; __DBG("dtls_shutdown"); bool had_dtls = false; if (ps->ice_dtls.init) { if (ps->ice_dtls.connected && ps->ice_dtls.ssl) { had_dtls = true; SSL_shutdown(ps->ice_dtls.ssl); } dtls_connection_cleanup(&ps->ice_dtls); } for (__auto_type l = ps->sfds.head; l; l = l->next) { stream_fd *sfd = l->data; struct dtls_connection *d = &sfd->dtls; if (!d->init) continue; if (d->connected && d->ssl) { had_dtls = true; SSL_shutdown(d->ssl); dtls(sfd, NULL, &ps->endpoint); } dtls_connection_cleanup(d); } if (ps->dtls_cert) { X509_free(ps->dtls_cert); ps->dtls_cert = NULL; } if (had_dtls) ilogs(crypto, LOG_DEBUG, "Reuse SRTP crypto key"); } void dtls_connection_cleanup(struct dtls_connection *c) { if (c->ssl_ctx || c->ssl) ilogs(crypto, LOG_DEBUG, "Resetting DTLS connection context"); if (c->ssl_ctx) SSL_CTX_free(c->ssl_ctx); if (c->ssl) SSL_free(c->ssl); if (!c->init) { if (c->r_bio) BIO_free(c->r_bio); if (c->w_bio) BIO_free(c->w_bio); } ZERO(*c); } rtpengine-mr12.5.1.22/daemon/dtmf.c000066400000000000000000000757411474347554000167500ustar00rootroot00000000000000#include "dtmf.h" #include #include "bencode.h" #include "control_ng.h" #include "media_socket.h" #include "log.h" #include "call.h" #include "dtmflib.h" #include "main.h" #include "rtplib.h" #include "codec.h" #include "ssrc.h" static socket_t dtmf_log_sock; static void dtmf_trigger_block_action(struct call_media *, struct call_monologue *); static void dtmf_trigger_block_digit(struct call_media *, struct call_monologue *); static void dtmf_trigger_unblock_action(struct call_media *, struct call_monologue *); static void dtmf_trigger_start_rec(struct call_media *, struct call_monologue *); static void dtmf_trigger_stop_rec(struct call_media *, struct call_monologue *); static void dtmf_trigger_start_stop_rec(struct call_media *, struct call_monologue *); static void dtmf_trigger_pause_rec(struct call_media *, struct call_monologue *); static void dtmf_trigger_pause_resume_rec(struct call_media *, struct call_monologue *); static void dtmf_trigger_start_pause_resume_rec(struct call_media *, struct call_monologue *); struct dtmf_trigger_action dtmf_trigger_actions[__NUM_DTMF_TRIGGERS] = { [DTMF_TRIGGER_BLOCK] = { .matched = dtmf_trigger_block_action, .repeatable = false, .digit = dtmf_trigger_block_digit, }, [DTMF_TRIGGER_UNBLOCK] = { .matched = dtmf_trigger_unblock_action, .repeatable = false, }, [DTMF_TRIGGER_START_REC] = { .matched = dtmf_trigger_start_rec, .repeatable = true, }, [DTMF_TRIGGER_STOP_REC] = { .matched = dtmf_trigger_stop_rec, .repeatable = true, }, [DTMF_TRIGGER_START_STOP_REC] = { .matched = dtmf_trigger_start_stop_rec, .repeatable = true, }, [DTMF_TRIGGER_PAUSE_REC] = { .matched = dtmf_trigger_pause_rec, .repeatable = true, }, [DTMF_TRIGGER_PAUSE_RESUME_REC] = { .matched = dtmf_trigger_pause_resume_rec, .repeatable = true, }, [DTMF_TRIGGER_START_PAUSE_RESUME_REC] = { .matched = dtmf_trigger_start_pause_resume_rec, .repeatable = true, }, }; const char *dtmf_trigger_types[__NUM_DTMF_TRIGGERS] = { [DTMF_TRIGGER_BLOCK] = "block DTMF", [DTMF_TRIGGER_UNBLOCK] = "unblock DTMF", [DTMF_TRIGGER_START_REC] = "start recording", [DTMF_TRIGGER_STOP_REC] = "stop recording", [DTMF_TRIGGER_START_STOP_REC] = "start/stop recording", [DTMF_TRIGGER_PAUSE_REC] = "pause recording", [DTMF_TRIGGER_PAUSE_RESUME_REC] = "pause/resume recording", [DTMF_TRIGGER_START_PAUSE_RESUME_REC] = "start/pause/resume recording", }; bool dtmf_init(void) { ilog(LOG_DEBUG, "log dtmf over ng %d", rtpe_config.dtmf_via_ng); ilog(LOG_DEBUG, "no log injected dtmf %d", rtpe_config.dtmf_no_log_injects); if (open_v46_socket(&dtmf_log_sock, SOCK_DGRAM)) { ilog(LOG_ERR, "Failed to open/connect DTMF logging socket: %s", strerror(errno)); return false; } return true; } static unsigned int dtmf_volume_from_dsp(int vol) { if (vol > 0) return 0; else if (vol >= -63) return -1 * vol; else return 63; } char dtmf_code_to_char(int code) { static const char codes[] = "0123456789*#ABCD"; if (code < 0 || code > 15) return 0; return codes[code]; } static void dtmf_bencode_and_notify(struct call_media *media, unsigned int event, unsigned int volume, unsigned int duration, const endpoint_t *fsin, int clockrate) { call_t *call = media->call; struct call_monologue *ml = media->monologue; bencode_buffer_t bencbuf; bencode_item_t *notify, *data, *tags; str encoded_data; int ret = bencode_buffer_init(&bencbuf); assert(ret == 0); notify = bencode_dictionary(&bencbuf); bencode_dictionary_add_string(notify, "notify", "onDTMF"); data = bencode_dictionary_add_dictionary(notify, "data"); tags = bencode_dictionary_add_list(data, "tags"); bencode_dictionary_add_string_len(data, "callid", call->callid.s, call->callid.len); bencode_dictionary_add_string_len(data, "source_tag", ml->tag.s, ml->tag.len); if (ml->label.s) { bencode_dictionary_add_string_len(data, "source_label", ml->label.s, ml->label.len); } tags_ht_iter iter; t_hash_table_iter_init(&iter, call->tags); struct call_monologue *tml; while (t_hash_table_iter_next(&iter, NULL, &tml)) bencode_list_add_str(tags, &tml->tag); bencode_dictionary_add_string(data, "type", "DTMF"); bencode_dictionary_add_string(data, "source_ip", sockaddr_print_buf(&fsin->address)); bencode_dictionary_add_integer(data, "timestamp", rtpe_now.tv_sec); bencode_dictionary_add_integer(data, "event", event); bencode_dictionary_add_integer(data, "duration", ((long long) duration * (1000000LL / clockrate)) / 1000LL); bencode_dictionary_add_integer(data, "volume", volume); bencode_collapse_str(notify, &encoded_data); notify_ng_tcp_clients(&encoded_data); bencode_buffer_free(&bencbuf); } static GString *dtmf_json_print(struct call_media *media, unsigned int event, unsigned int volume, unsigned int duration, const endpoint_t *fsin, int clockrate) { call_t *call = media->call; struct call_monologue *ml = media->monologue; GString *buf = g_string_new(""); if (!clockrate) clockrate = 8000; g_string_append_printf(buf, "{" "\"callid\":\"" STR_FORMAT "\"," "\"source_tag\":\"" STR_FORMAT "\"," "\"source_label\":\"" STR_FORMAT "\"," "\"tags\":[", STR_FMT(&call->callid), STR_FMT(&ml->tag), STR_FMT(ml->label.s ? &ml->label : &STR_EMPTY)); tags_ht_iter iter; t_hash_table_iter_init(&iter, call->tags); int i = 0; struct call_monologue *tml; while (t_hash_table_iter_next(&iter, NULL, &tml)) { if (i != 0) g_string_append(buf, ","); g_string_append_printf(buf, "\"" STR_FORMAT "\"", STR_FMT(&tml->tag)); i++; } g_string_append_printf(buf, "]," "\"type\":\"DTMF\",\"timestamp\":%lu,\"source_ip\":\"%s\"," "\"event\":%u,\"duration\":%u,\"volume\":%u}", (unsigned long) rtpe_now.tv_sec, sockaddr_print_buf(&fsin->address), (unsigned int) event, (duration * (1000000 / clockrate)) / 1000, (unsigned int) volume); return buf; } bool dtmf_do_logging(const call_t *c, bool injected) { if (injected && rtpe_config.dtmf_no_log_injects) return false; if (_log_facility_dtmf) return true; if (rtpe_config.dtmf_udp_ep.port) return true; if (c->dtmf_log_dest.address.family) return true; if (rtpe_config.dtmf_via_ng) return true; return false; } // media->dtmf_lock must be held static void dtmf_end_event(struct call_media *media, unsigned int event, unsigned int volume, unsigned int duration, const endpoint_t *fsin, int clockrate, bool rfc_event, uint64_t ts, bool injected) { if (!clockrate) clockrate = 8000; // don't add to recv list when it's injected, it can cause the list TS's to be out // of order breaking the dtmf-security and letting the generated PCM frames through if (!injected) { struct dtmf_event *ev = g_slice_alloc0(sizeof(*ev)); *ev = (struct dtmf_event) { .code = 0, .ts = ts, .volume = 0 }; t_queue_push_tail(&media->dtmf_recv, ev); } // only add to send list if injected, a delayed send, or not being blocked if (injected || !media->monologue->block_dtmf || media->monologue->dtmf_delay) { struct dtmf_event *ev = g_slice_alloc0(sizeof(*ev)); *ev = (struct dtmf_event) { .code = 0, .ts = ts + media->monologue->dtmf_delay * clockrate / 1000, .volume = 0, .block_dtmf = media->monologue->block_dtmf }; t_queue_push_tail(&media->dtmf_send, ev); } if (!dtmf_do_logging(media->call, injected)) return; GString *buf = dtmf_json_print(media, event, volume, duration, fsin, clockrate); if (_log_facility_dtmf) dtmflog(buf); const endpoint_t *udp_dst = NULL; if (media->call->dtmf_log_dest.address.family) udp_dst = &media->call->dtmf_log_dest; else if (rtpe_config.dtmf_udp_ep.address.family) udp_dst = &rtpe_config.dtmf_udp_ep; if (udp_dst) if (socket_sendto(&dtmf_log_sock, buf->str, buf->len, udp_dst) < 0) ilog(LOG_ERR, "Error sending DTMF event info to UDP destination %s: %s", endpoint_print_buf(udp_dst), strerror(errno)); if (rtpe_config.dtmf_via_ng) dtmf_bencode_and_notify(media, event, volume, duration, fsin, clockrate); g_string_free(buf, TRUE); } static struct dtmf_trigger_state *dtmf_get_trigger_state(struct call_monologue *ml, enum dtmf_trigger_type type) { // Look up entry in ->dtmf_triger_state. If trigger is set already, its index // is stored in dtmf_trigger_index. If it isn't, grab a new entry. // The index must be less then num_triggers and the type of the entry pointed // to by the index must match the requested type. Everything else is invalid // and requires a new entry. // This keeps all set triggers at the front of the list and doesn't pollute // the list with unset entries, while still allowing quick lookup. // trigger_state[trigger_index[type]].type == type // trigger_index[trigger_state[idx].type] == idx unsigned int idx = ml->dtmf_trigger_index[type]; if (idx >= ml->num_dtmf_triggers) return NULL; struct dtmf_trigger_state *state = &ml->dtmf_trigger_state[idx]; if (state->type != type) return NULL; return state; } void dtmf_trigger_set(struct call_monologue *ml, enum dtmf_trigger_type trigger_type, const str *s, bool inactive) { struct dtmf_trigger_state *state = dtmf_get_trigger_state(ml, trigger_type); if (!state) { // Trigger doesn't exist yet. Do we actually want to set a trigger? if (s->len == 0) return; // nothing to do // fill in a new entry assert(ml->num_dtmf_triggers < __NUM_DTMF_TRIGGERS); state = &ml->dtmf_trigger_state[ml->num_dtmf_triggers]; ml->dtmf_trigger_index[trigger_type] = ml->num_dtmf_triggers; state->type = trigger_type; ml->num_dtmf_triggers++; // Trigger is set below } else { // Trigger is already set. Do we want to delete it? if (s->len == 0) { // Shift down remaining items and adjust indexes unsigned int idx = state - ml->dtmf_trigger_state; for (unsigned int i = idx; i < ml->num_dtmf_triggers - 1; i++) { assert(ml->dtmf_trigger_index[ml->dtmf_trigger_state[i].type] == i); assert(ml->dtmf_trigger_index[ml->dtmf_trigger_state[i + 1].type] == i + 1); ml->dtmf_trigger_state[i] = ml->dtmf_trigger_state[i + 1]; ml->dtmf_trigger_index[ml->dtmf_trigger_state[i].type] = i; } ml->num_dtmf_triggers--; return; } // Replace existing trigger below } ilog(LOG_DEBUG, "Setting DTMF trigger '%s' (at idx %u) to '" STR_FORMAT "'", dtmf_trigger_types[trigger_type], (unsigned int) (state - ml->dtmf_trigger_state), STR_FMT(s)); call_str_cpy(ml->call, &state->trigger, s); state->matched = 0; state->inactive = inactive; } static void dtmf_trigger_set_block(call_t *c, codec_timer_callback_arg_t a) { struct call_monologue *ml = a.ml; rwlock_lock_w(&c->master_lock); struct dtmf_trigger_state *end_trigger = dtmf_get_trigger_state(ml, DTMF_TRIGGER_UNBLOCK); if (end_trigger) ilog(LOG_INFO, "Setting DTMF block mode to %i and enabling end trigger '" STR_FORMAT "'", ml->block_dtmf_trigger, STR_FMT(&end_trigger->trigger)); else ilog(LOG_INFO, "Setting DTMF block mode to %i", ml->block_dtmf_trigger); ml->block_dtmf = ml->block_dtmf_trigger; // enable end trigger if (end_trigger) { end_trigger->inactive = false; ml->dtmf_trigger_digits *= -1; // negative means it's active } codec_update_all_handlers(ml); rwlock_unlock_w(&c->master_lock); } static void dtmf_trigger_unset_block(call_t *c, codec_timer_callback_arg_t a) { struct call_monologue *ml = a.ml; ilog(LOG_INFO, "Setting DTMF block mode to %i", ml->block_dtmf_trigger_end); rwlock_lock_w(&c->master_lock); ml->block_dtmf = ml->block_dtmf_trigger_end; dtmf_trigger_set(ml, DTMF_TRIGGER_BLOCK, NULL, false); codec_update_all_handlers(ml); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_block_digit(struct call_media *media, struct call_monologue *ml) { if (ml->dtmf_trigger_digits >= 0) return; // end trigger is active ml->dtmf_trigger_digits++; if (ml->dtmf_trigger_digits == 0) { // got all digits codec_timer_callback(ml->call, dtmf_trigger_unset_block, ml, 0); } } // dtmf_lock must be held static void dtmf_trigger_block_action(struct call_media *media, struct call_monologue *ml) { ilog(LOG_INFO, "DTMF trigger matched, setting block mode to %i", ml->block_dtmf_trigger); // We only hold a read-lock on the call here and cannot switch to a write-lock // easily, which is needed to reset the codec handlers. Therefore we do this // asynchronously: codec_timer_callback(ml->call, dtmf_trigger_set_block, ml, 0); // set up unblock triggers if (ml->block_dtmf_trigger_end_ms) codec_timer_callback(ml->call, dtmf_trigger_unset_block, ml, ml->block_dtmf_trigger_end_ms * 1000); } // dtmf_lock must be held static void dtmf_trigger_unblock_action(struct call_media *media, struct call_monologue *ml) { ilog(LOG_INFO, "DTMF trigger matched, setting block mode to %i", ml->block_dtmf_trigger); // We only hold a read-lock on the call here and cannot switch to a write-lock // easily, which is needed to reset the codec handlers. Therefore we do this // asynchronously: codec_timer_callback(ml->call, dtmf_trigger_unset_block, ml, 0); } // dtmf_lock must be held static bool dtmf_check_1_trigger(struct call_media *media, struct call_monologue *ml, char event, uint64_t ts, int clockrate, unsigned int i) { struct dtmf_trigger_state *state = &ml->dtmf_trigger_state[i]; struct dtmf_trigger_action *action = &dtmf_trigger_actions[state->type]; if (state->matched >= state->trigger.len) // is the trigger done already? return false; if (action->digit) action->digit(media, ml); // is the new event a match? if (state->trigger.s[state->matched] == event) { state->matched++; if (state->matched == state->trigger.len) { // trigger is finished state->matched = 0; // reset ilog(LOG_INFO, "DTMF VSC '%s' ('" STR_FORMAT "') triggered", dtmf_trigger_types[state->type], STR_FMT(&state->trigger)); action->matched(media, ml); if (!action->repeatable) dtmf_trigger_set(ml, state->type, NULL, false); return true; } return false; } // can we do a partial match? for (size_t off = 1; off < state->matched; off++) { // look for repeating prefix: trigger "ABCABD", matched 5, prefix at offset 3: [AB]C[AB] if (memcmp(state->trigger.s + off, state->trigger.s, state->matched - off)) continue; // is the new event a match? unsigned int next_match_idx = state->trigger.len - off; if (state->trigger.s[next_match_idx] == event) { // got a partial match state->matched = next_match_idx; return false; } } // no partial match... reset completely if (event == state->trigger.s[0]) state->matched = 1; else state->matched = 0; return false; } // dtmf_lock must be held static void dtmf_check_trigger(struct call_media *media, char event, uint64_t ts, int clockrate) { if (!clockrate) clockrate = 8000; struct call_monologue *ml = media->monologue; if (!ml->num_dtmf_triggers) return; // nothing to do // check delay from previous event bool reset = false; struct dtmf_event *last_ev = t_queue_peek_tail(&media->dtmf_recv); if (last_ev) { uint32_t ts_diff = ts - last_ev->ts; uint64_t ts_diff_ms = (uint64_t) ts_diff * 1000 / clockrate; if (ts_diff_ms > rtpe_config.dtmf_digit_delay) { // delay too long: restart event trigger reset = true; } } for (unsigned int i = 0; i < ml->num_dtmf_triggers; i++) { if (reset) ml->dtmf_trigger_state[i].matched = 0; if (dtmf_check_1_trigger(media, ml, event, ts, clockrate, i)) break; // triggers should be unique, so only act on one } } // media->dtmf_lock must be held static void dtmf_code_event(struct call_media *media, char event, uint64_t ts, int clockrate, int volume, bool injected) { struct dtmf_event *ev = t_queue_peek_tail(&media->dtmf_recv); if (ev && ev->code == event) return; // start of new event // check trigger before setting new dtmf_start dtmf_check_trigger(media, event, ts, clockrate); // don't add to recv list when it's injected, it can cause the list TS's to be out // of order breaking the dtmf-security and letting the generated PCM frames through if (!injected) { ev = g_slice_alloc0(sizeof(*ev)); *ev = (struct dtmf_event) { .code = event, .ts = ts, .volume = volume, .rand_code = '0' + (ssl_random() % 10), .index = media->dtmf_count }; t_queue_push_tail(&media->dtmf_recv, ev); } // only add to send list if injected, a delayed send, or not being blocked if (injected || !media->monologue->block_dtmf || media->monologue->dtmf_delay) { ev = g_slice_alloc0(sizeof(*ev)); *ev = (struct dtmf_event) { .code = event, .ts = ts + media->monologue->dtmf_delay * clockrate / 1000, .volume = volume, .block_dtmf = media->monologue->block_dtmf }; t_queue_push_tail(&media->dtmf_send, ev); } media->dtmf_count++; } struct dtmf_event *is_in_dtmf_event(dtmf_event_q *events, uint32_t this_ts, int clockrate, unsigned int head, unsigned int trail) { if (!clockrate) clockrate = 8000; uint32_t cutoff = clockrate * 10; uint32_t neg = ~(clockrate * 100); uint32_t start_ts = this_ts + head * clockrate / 1000; uint32_t end_ts = this_ts - trail * clockrate / 1000; // go backwards through our list of DTMF events for (__auto_type l = events->tail; l; l = l->prev) { struct dtmf_event *ev = l->data; uint32_t ts = ev->ts; // truncate to 32 bits if (ev->code) { // start event: check TS against our shifted start TS. // start_ts must be larger than ts, but not much larger. uint32_t start_diff = start_ts - ts; // much too large? that means start_ts < ts. keep looking, we're close. if (start_diff >= neg) continue; // diff >= 0 and less than 10 seconds? that's a match. if (start_diff <= cutoff) return ev; // anything else is a bad/outdated TS. stop. break; } else { // stop event: check TS against our shifted end TS. uint32_t end_diff = end_ts - ts; if (end_diff >= neg) continue; if (end_diff == 0) // for end events, we wait until after the end continue; if (end_diff <= cutoff) return NULL; break; } } return NULL; } // media->dtmf_lock must be held int dtmf_event_packet(struct media_packet *mp, str *payload, int clockrate, uint64_t ts) { struct telephone_event_payload *dtmf; if (payload->len < sizeof(*dtmf)) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Short DTMF event packet (len %zu)", payload->len); return -1; } dtmf = (void *) payload->s; uint16_t duration = ntohs(dtmf->duration); ilog(LOG_DEBUG, "DTMF event packet: event %u, volume %u, end %u, duration %u", dtmf->event, dtmf->volume, dtmf->end, duration); if (!dtmf->end) { dtmf_code_event(mp->media, dtmf_code_to_char(dtmf->event), ts, clockrate, dtmf->volume, false); return 0; } dtmf_end_event(mp->media, dtmf->event, dtmf->volume, duration, &mp->fsin, clockrate, true, ts + duration - 1, false); return 1; } void dtmf_dsp_event(const struct dtmf_event *new_event, struct dtmf_event *cur_event_p, struct call_media *media, int clockrate, uint64_t ts, bool injected) { // update state tracker regardless of outcome struct dtmf_event cur_event = *cur_event_p; *cur_event_p = *new_event; if (!media) return; bool end_event; if (cur_event.code != 0 && new_event->code == 0) end_event = true; else if (cur_event.code == 0 && new_event->code != 0) end_event = false; // start of a new code else return; // don't care if (!media->streams.length) return; // we don't have a real fsin so just use the stream address struct packet_stream *ps = media->streams.head->data; LOCK(&media->dtmf_lock); if (end_event) { unsigned int duration = new_event->ts - cur_event.ts; ilog(LOG_DEBUG, "DTMF DSP end event: event %i, volume %i, duration %u", cur_event.code, cur_event.volume, duration); dtmf_end_event(media, dtmf_code_from_char(cur_event.code), dtmf_volume_from_dsp(cur_event.volume), duration, &ps->endpoint, clockrate, false, ts, injected); } else { ilog(LOG_DEBUG, "DTMF DSP code event: event %i, volume %i", new_event->code, new_event->volume); int code = dtmf_code_from_char(new_event->code); // for validation if (code != -1) dtmf_code_event(media, (char) new_event->code, ts, clockrate, dtmf_volume_from_dsp(new_event->volume), injected); } } void dtmf_event_free(struct dtmf_event *e) { g_slice_free1(sizeof(*e), e); } // returns: 0 = no DTMF. 1 = DTMF start event. 2 = DTMF in progress. 3 = DTMF end event. int dtmf_event_payload(str *buf, uint64_t *pts, uint64_t duration, struct dtmf_event *cur_event, dtmf_event_q *events) { // do we have a relevant state change? struct dtmf_event prev_event = *cur_event; struct dtmf_event *ev = t_queue_peek_head(events); while (events->length) { ilog(LOG_DEBUG, "Next DTMF event starts at %" PRIu64 ". PTS now %" PRIu64, ev->ts, *pts); if (ev->ts > *pts) break; // future event ilog(LOG_DEBUG, "DTMF state change at %" PRIu64 ": %i -> %i, duration %" PRIu64, ev->ts, cur_event->code, ev->code, duration); t_queue_pop_head(events); *cur_event = *ev; dtmf_event_free(ev); ev = t_queue_peek_head(events); if (ev && ev->code == 0 && cur_event->ts < *pts) { // if the start event ts was before *pts we need // to adjust the end event_ts to ensure we're not shortening // the event ilog(LOG_DEBUG, "Delayed send of DTMF, adjusting end event_ts by " "%" PRIu64 " - %" PRIu64 " = %" PRIu64, *pts, cur_event->ts, *pts - cur_event->ts); ev->ts += *pts - cur_event->ts; } cur_event->ts = *pts; // canonicalise start TS } int ret = 2; // normal: in progress if (cur_event->code == 0) { if (prev_event.code == 0) return 0; // state change from DTMF back to audio. send DTMF end code. ret = 3; cur_event = &prev_event; } else if (prev_event.code == 0) ret = 1; // start event int dtmf_code = dtmf_code_from_char(cur_event->code); if (dtmf_code == -1) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Unknown DTMF event code %i", cur_event->code); return 0; } // replace audio RTP frame with DTMF payload struct telephone_event_payload *ev_pt = (void *) buf->s; buf->len = sizeof(*ev_pt); ZERO(*ev_pt); ev_pt->event = dtmf_code; ev_pt->volume = dtmf_volume_from_dsp(cur_event->volume); ev_pt->end = (ret == 3) ? 1 : 0; ev_pt->duration = htons(*pts - cur_event->ts + duration); // fix up timestamp *pts = cur_event->ts; return ret; } int dtmf_code_from_char(char c) { if (c >= '0' && c <= '9') return c - '0'; else if (c == '*') return 10; else if (c == '#') return 11; else if (c >= 'A' && c <= 'D') return c - 'A' + 12; return -1; } #ifdef WITH_TRANSCODING // takes over the csh reference static const char *dtmf_inject_pcm(struct call_media *media, struct call_media *sink, struct call_monologue *monologue, struct packet_stream *ps, struct ssrc_ctx *ssrc_in, struct codec_handler *ch, struct codec_ssrc_handler *csh, int code, int volume, int duration, int pause) { call_t *call = monologue->call; for (__auto_type l = ps->rtp_sinks.head; l; l = l->next) { struct sink_handler *sh = l->data; struct packet_stream *sink_ps = sh->sink; struct call_monologue *sink_ml = sink_ps->media->monologue; packet_sequencer_t *seq = g_hash_table_lookup(ssrc_in->parent->sequencers, sink_ps->media); if (!seq) continue; struct ssrc_ctx *ssrc_out = get_ssrc_ctx(sh->attrs.transcoding ? ssrc_in->ssrc_map_out : ssrc_in->parent->h.ssrc, sink_ml->ssrc_hash, SSRC_DIR_OUTPUT, monologue); if (!ssrc_out) return "No output SSRC context present"; // XXX generate stream int duration_samples = duration * ch->dest_pt.clock_rate / 1000; int pause_samples = pause * ch->dest_pt.clock_rate / 1000; // we generate PCM DTMF by simulating a detected RFC event packet // XXX this shouldn't require faking an actual RTP packet struct telephone_event_payload tep = { .event = code, .volume = -1 * volume, .end = 1, .duration = htons(duration_samples), }; struct rtp_header rtp = { .m_pt = 0xff, .timestamp = 0, .seq_num = htons(seq->seq), .ssrc = htonl(ssrc_in->parent->h.ssrc), }; struct media_packet packet = { .tv = rtpe_now, .call = call, .media = media, .media_out = sink, .rtp = &rtp, .ssrc_in = ssrc_in, .ssrc_out = ssrc_out, .raw = { (void *) &tep, sizeof(tep) }, .payload = { (void *) &tep, sizeof(tep) }, }; // keep track of how much PCM we've generated uint64_t encoder_pts = codec_encoder_pts(csh, NULL); uint64_t skip_pts = codec_decoder_unskip_pts(csh); // reset to zero to take up our new samples ch->dtmf_injector->handler_func(ch->dtmf_injector, &packet); // insert pause tep.event = 0xff; tep.duration = htons(pause_samples); rtp.seq_num = htons(seq->seq); ch->dtmf_injector->handler_func(ch->dtmf_injector, &packet); // skip generated samples uint64_t pts_offset = codec_encoder_pts(csh, NULL) - encoder_pts; skip_pts += av_rescale(pts_offset, ch->dest_pt.clock_rate, ch->source_pt.clock_rate); codec_decoder_skip_pts(csh, skip_pts); // ready packets for send // XXX handle encryption? media_socket_dequeue(&packet, sink_ps); obj_put_o((struct obj *) csh); ssrc_ctx_put(&ssrc_out); } return 0; } const char *dtmf_inject(struct call_media *media, int code, int volume, int duration, int pause, struct call_media *sink) { struct call_monologue *monologue = media->monologue; if (!media->streams.head) return "Media doesn't have an RTP stream"; struct packet_stream *ps = media->streams.head->data; struct ssrc_ctx *ssrc_in = ps->ssrc_in[0]; if (!ssrc_in) return "No SSRC context present for DTMF injection"; // XXX fall back to generating stream // create RFC DTMF events. we do this by simulating a detected PCM DTMF event // find payload type to use struct codec_handler *ch = NULL; struct codec_ssrc_handler *csh = NULL; int pt = -1; int ch_pt = -1; for (int i = 0; i < ssrc_in->tracker.most_len; i++) { pt = ssrc_in->tracker.most[i]; if (pt == 255) continue; ch = codec_handler_get(media, pt, sink, NULL); if (!ch) continue; // for DTMF delay, payload type will be -1 but the real payload type will be correct // and as we're specifically injecting we want to make sure we end up checking the right pt ch_pt = ch->real_dtmf_payload_type != -1 ? ch->real_dtmf_payload_type : ch->dtmf_payload_type; // skip DTMF PTs if (pt == ch_pt) continue; if (ch->output_handler && ch->output_handler->ssrc_hash) // context switch if we have multiple inputs going to one output ch = ch->output_handler; ilog(LOG_DEBUG, "DTMF injection: Using PT %i/%i -> %i (%i), SSRC %" PRIx32, pt, ch->source_pt.payload_type, ch->dest_pt.payload_type, ch_pt, ssrc_in->parent->h.ssrc); if (!ch->ssrc_hash) continue; csh = get_ssrc(ssrc_in->parent->h.ssrc, ch->ssrc_hash); if (!csh) continue; break; } if (pt < 0 || pt == 255) return "No RTP payload type found to be in use"; // XXX generate stream if (!ch) return "No matching codec handler"; if (!ch->ssrc_hash) return "No suitable codec handler present"; if (!csh) return "No matching codec SSRC handler"; // if we don't have a DTMF payload type, we have to generate PCM if (ch_pt == -1 && ch->dtmf_injector) return dtmf_inject_pcm(media, sink, monologue, ps, ssrc_in, ch, csh, code, volume, duration, pause); ilog(LOG_DEBUG, "Injecting RFC DTMF event #%i for %i ms (vol %i) from '" STR_FORMAT "' (media #%u) " "into RTP PT %i, SSRC %" PRIx32, code, duration, volume, STR_FMT(&monologue->tag), media->index, pt, ssrc_in->parent->h.ssrc); // synthesise start and stop events // the num_samples needs to be based on the the previous packet timestamp so we need to // reduce it by one packets worth or we'll generate one too many packets than requested uint64_t num_samples = (uint64_t) (duration - ch->dest_pt.ptime) * ch->dest_pt.clock_rate / 1000; uint64_t start_pts = codec_encoder_pts(csh, ssrc_in); // get the last event end time, and increase by the required pause // conversely to the above, we need to add the last packet num samples to its TS before adding // a pause so we dont generate one packet too few // if that's later than start_pts, we need to adjust it uint64_t last_end_pts = codec_last_dtmf_event(csh); if (last_end_pts) { last_end_pts += (pause + ch->dest_pt.ptime) * ch->dest_pt.clock_rate / 1000; if (last_end_pts > start_pts) start_pts = last_end_pts; } codec_add_dtmf_event(csh, dtmf_code_to_char(code), volume, start_pts, true); codec_add_dtmf_event(csh, 0, 0, start_pts + num_samples, true); obj_put_o((struct obj *) csh); return NULL; } #endif enum block_dtmf_mode dtmf_get_block_mode(call_t *call, struct call_monologue *ml) { if (!call) { if (!ml) return BLOCK_DTMF_OFF; call = ml->call; } if (call && call->block_dtmf) return call->block_dtmf; if (!ml) return BLOCK_DTMF_OFF; return ml->block_dtmf; } bool is_pcm_dtmf_block_mode(enum block_dtmf_mode mode) { if (mode >= BLOCK_DTMF___PCM_REPLACE_START && mode <= BLOCK_DTMF___PCM_REPLACE_END) return true; return false; } bool is_dtmf_replace_mode(enum block_dtmf_mode mode) { if (mode >= BLOCK_DTMF___REPLACE_START && mode <= BLOCK_DTMF___REPLACE_END) return true; return false; } static void dtmf_trigger_do_start_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); recording_start(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_start_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_start_rec, ml, 0); } static void dtmf_trigger_do_stop_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); recording_stop(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_stop_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_stop_rec, ml, 0); } static void dtmf_trigger_do_start_stop_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); if (c->recording) recording_stop(c); else recording_start(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_start_stop_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_start_stop_rec, ml, 0); } static void dtmf_trigger_do_pause_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); recording_pause(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_pause_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_pause_rec, ml, 0); } static void dtmf_trigger_do_pause_resume_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); if (!c->recording) { rwlock_unlock_w(&c->master_lock); return; } if (CALL_SET(c, RECORDING_ON)) recording_pause(c); else recording_start(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_pause_resume_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_pause_resume_rec, ml, 0); } static void dtmf_trigger_do_start_pause_resume_rec(call_t *c, codec_timer_callback_arg_t a) { rwlock_lock_w(&c->master_lock); if (CALL_SET(c, RECORDING_ON)) recording_pause(c); else recording_start(c); rwlock_unlock_w(&c->master_lock); } // dtmf_lock must be held static void dtmf_trigger_start_pause_resume_rec(struct call_media *media, struct call_monologue *ml) { codec_timer_callback(ml->call, dtmf_trigger_do_start_pause_resume_rec, ml, 0); } rtpengine-mr12.5.1.22/daemon/graphite.c000066400000000000000000000324451474347554000176130ustar00rootroot00000000000000#include "graphite.h" #include #include #include #include #include #include #include #include #include #include #include #include "log.h" #include "call.h" #include "socket.h" #include "statistics.h" #include "main.h" struct timeval rtpe_latest_graphite_interval_start; static socket_t graphite_sock; static int connection_state = STATE_DISCONNECTED; //struct totalstats totalstats_prev; static time_t next_run; // HEAD: static time_t rtpe_now, next_run; static char* graphite_prefix = NULL; static struct timeval graphite_interval_tv; struct global_stats_counter rtpe_stats_graphite_diff; // per-interval increases static struct global_stats_counter rtpe_stats_graphite_intv; // copied out when graphite stats run struct global_gauge_min_max rtpe_gauge_graphite_min_max; struct global_gauge_min_max rtpe_gauge_graphite_min_max_sampled; struct global_rate_min_max rtpe_rate_graphite_min_max; struct global_rate_min_max_avg rtpe_rate_graphite_min_max_avg_sampled; struct global_sampled_min_max rtpe_sampled_graphite_min_max; struct global_sampled_min_max rtpe_sampled_graphite_min_max_sampled; static struct global_stats_sampled rtpe_sampled_graphite_min_max_diff; static struct global_stats_sampled rtpe_sampled_graphite_min_max_intv; struct global_sampled_avg rtpe_sampled_graphite_avg; void set_graphite_interval_tv(struct timeval *tv) { graphite_interval_tv = *tv; } void set_prefix(char* prefix) { graphite_prefix = g_strdup(prefix); } void free_prefix(void) { g_free(graphite_prefix); } static int connect_to_graphite_server(const endpoint_t *graphite_ep) { int rc; if (!graphite_ep) { ilog(LOG_ERROR, "NULL graphite_ep"); return -1; } ilog(LOG_INFO, "Connecting to graphite server %s", endpoint_print_buf(graphite_ep)); rc = connect_socket_nb(&graphite_sock, SOCK_STREAM, graphite_ep); if (rtpe_config.graphite_timeout > 0 && !(graphite_sock.fd < 0)) { usertimeout(graphite_sock.fd, rtpe_config.graphite_timeout * 1000); } if (rc == -1) { ilog(LOG_ERROR,"Couldn't make socket for connecting to graphite."); return -1; } if (rc == 0) ilog(LOG_INFO, "Graphite server connected."); else { /* EINPROGRESS */ ilog(LOG_INFO, "Connection to graphite is in progress."); connection_state = STATE_IN_PROGRESS; } return 0; } GString *print_graphite_data(void) { long long time_diff_us = timeval_diff(&rtpe_now, &rtpe_latest_graphite_interval_start); rtpe_latest_graphite_interval_start = rtpe_now; stats_counters_calc_diff(rtpe_stats, &rtpe_stats_graphite_intv, &rtpe_stats_graphite_diff); stats_rate_min_max_avg_sample(&rtpe_rate_graphite_min_max, &rtpe_rate_graphite_min_max_avg_sampled, time_diff_us, &rtpe_stats_graphite_diff); stats_gauge_min_max_sample(&rtpe_gauge_graphite_min_max_sampled, &rtpe_gauge_graphite_min_max, &rtpe_stats_gauge); stats_sampled_calc_diff(&rtpe_stats_sampled, &rtpe_sampled_graphite_min_max_intv, &rtpe_sampled_graphite_min_max_diff); stats_sampled_min_max_sample(&rtpe_sampled_graphite_min_max, &rtpe_sampled_graphite_min_max_sampled); stats_sampled_avg(&rtpe_sampled_graphite_avg, &rtpe_sampled_graphite_min_max_diff); GString *graph_str = g_string_new(""); #define GPF(fmt, ...) \ if (graphite_prefix) \ g_string_append(graph_str, graphite_prefix); \ g_string_append_printf(graph_str, fmt " %llu\n", ##__VA_ARGS__, (unsigned long long)rtpe_now.tv_sec) for (int i = 0; i < NGC_COUNT; i++) { GPF("%s_time_min %.6f", ng_command_strings_esc[i], (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.min.ng_command_times[i]) / 1000000.0); GPF("%s_time_max %.6f", ng_command_strings_esc[i], (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.max.ng_command_times[i]) / 1000000.0); GPF("%s_time_avg %.6f", ng_command_strings_esc[i], (double) atomic64_get_na(&rtpe_sampled_graphite_avg.avg.ng_command_times[i]) / 1000000.0); GPF("%ss_ps_min " UINT64F, ng_command_strings_esc[i], atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.min.ng_commands[i])); GPF("%ss_ps_max " UINT64F, ng_command_strings_esc[i], atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.max.ng_commands[i])); GPF("%ss_ps_avg " UINT64F, ng_command_strings_esc[i], atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.avg.ng_commands[i])); ilog(LOG_DEBUG, "Min/Max/Avg %s processing delay: %.6f/%.6f/%.6f sec", ng_command_strings[i], (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.min.ng_command_times[i]) / 1000000.0, (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.max.ng_command_times[i]) / 1000000.0, (double) atomic64_get_na(&rtpe_sampled_graphite_avg.avg.ng_command_times[i]) / 1000000.0); GPF("%s_count %" PRIu64, ng_command_strings_esc[i], atomic64_get_na(&rtpe_stats->ng_commands[i])); } GPF("call_dur %.6f", (double) atomic64_get_na(&rtpe_stats_graphite_diff.total_calls_duration_intv) / 1000000.0); struct timeval avg_duration; uint64_t managed_sess = atomic64_get_na(&rtpe_stats_graphite_diff.managed_sess); if (managed_sess) timeval_from_us(&avg_duration, atomic64_get_na(&rtpe_stats_graphite_diff.call_duration) / managed_sess); else avg_duration = (struct timeval) {0,0}; GPF("average_call_dur %llu.%06llu",(unsigned long long)avg_duration.tv_sec,(unsigned long long)avg_duration.tv_usec); GPF("forced_term_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.forced_term_sess)); GPF("managed_sess "UINT64F, atomic64_get_na(&rtpe_stats->managed_sess)); GPF("managed_sess_min "UINT64F, atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.min.total_sessions)); GPF("managed_sess_max "UINT64F, atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.max.total_sessions)); GPF("current_sessions_total "UINT64F, atomic64_get_na(&rtpe_stats_gauge.total_sessions)); GPF("current_sessions_own "UINT64F, atomic64_get_na(&rtpe_stats_gauge.total_sessions) - atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); GPF("current_sessions_foreign "UINT64F, atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); GPF("current_transcoded_media "UINT64F, atomic64_get_na(&rtpe_stats_gauge.transcoded_media)); GPF("current_sessions_ipv4 "UINT64F, atomic64_get_na(&rtpe_stats_gauge.ipv4_sessions)); GPF("current_sessions_ipv6 "UINT64F, atomic64_get_na(&rtpe_stats_gauge.ipv6_sessions)); GPF("current_sessions_mixed "UINT64F, atomic64_get_na(&rtpe_stats_gauge.mixed_sessions)); GPF("nopacket_relayed_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.nopacket_relayed_sess)); GPF("oneway_stream_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.oneway_stream_sess)); GPF("regular_term_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.regular_term_sess)); GPF("relayed_errors_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.errors_user)); GPF("relayed_packets_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.packets_user)); GPF("relayed_bytes_user "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.bytes_user)); GPF("relayed_errors_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.errors_kernel)); GPF("relayed_packets_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.packets_kernel)); GPF("relayed_bytes_kernel "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.bytes_kernel)); GPF("relayed_errors "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.errors_user) + atomic64_get_na(&rtpe_stats_graphite_diff.errors_kernel)); GPF("relayed_packets "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.packets_user) + atomic64_get_na(&rtpe_stats_graphite_diff.packets_kernel)); GPF("relayed_bytes "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.bytes_user) + atomic64_get_na(&rtpe_stats_graphite_diff.bytes_kernel)); GPF("silent_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.silent_timeout_sess)); GPF("final_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.final_timeout_sess)); GPF("offer_timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.offer_timeout_sess)); GPF("timeout_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.timeout_sess)); GPF("reject_sess "UINT64F, atomic64_get_na(&rtpe_stats_graphite_diff.rejected_sess)); for (GList *l = all_local_interfaces.head; l; l = l->next) { struct local_intf *lif = l->data; // only show first-order interface entries: socket families must match if (lif->logical->preferred_family != lif->spec->local_address.addr.family) continue; int num_ports = lif->spec->port_pool.max - lif->spec->port_pool.min + 1; GPF("ports_free_%s_%s %i", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr), g_hash_table_size(lif->spec->port_pool.free_ports_ht)); GPF("ports_used_%s_%s %i", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr), num_ports - g_hash_table_size(lif->spec->port_pool.free_ports_ht)); } mutex_lock(&rtpe_codec_stats_lock); int last_tv_sec = rtpe_now.tv_sec - 1; unsigned int idx = last_tv_sec & 1; codec_stats_ht_iter iter; t_hash_table_iter_init(&iter, rtpe_codec_stats); char *chain; struct codec_stats *stats_entry; while (t_hash_table_iter_next(&iter, &chain, &stats_entry)) { GPF("transcoder_%s %i", stats_entry->chain_brief, g_atomic_int_get(&stats_entry->num_transcoders)); if (g_atomic_int_get(&stats_entry->last_tv_sec[idx]) != last_tv_sec) continue; GPF("transcoder_%s_packets %llu", stats_entry->chain_brief, (unsigned long long) atomic64_get(&stats_entry->packets_input[idx])); GPF("transcoder_%s_bytes %llu", stats_entry->chain_brief, (unsigned long long) atomic64_get(&stats_entry->bytes_input[idx])); GPF("transcoder_%s_samples %llu", stats_entry->chain_brief, (unsigned long long) atomic64_get(&stats_entry->pcm_samples[idx])); } mutex_unlock(&rtpe_codec_stats_lock); ilog(LOG_DEBUG, "min_sessions:%llu max_sessions:%llu, call_dur_per_interval:%.6f at time %llu\n", (unsigned long long) atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.min.total_sessions), (unsigned long long) atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.max.total_sessions), (double) atomic64_get_na(&rtpe_stats_graphite_diff.total_calls_duration_intv) / 1000000.0, (unsigned long long ) rtpe_now.tv_sec); return graph_str; } static int send_graphite_data(void) { if (graphite_sock.fd < 0) { ilog(LOG_ERROR,"Graphite socket is not connected."); return -1; } GString *graph_str = print_graphite_data(); size_t sent = 0; int blockings = 10; // let it block that many times while (sent < graph_str->len) { int rc = write(graphite_sock.fd, graph_str->str + sent, graph_str->len - sent); if (rc<0) { if (blockings <= 0 || (errno != EWOULDBLOCK && errno != EAGAIN && errno != EINTR)) { ilog(LOG_ERROR,"Could not write to graphite socket (%s). " \ "Disconnecting graphite server.", strerror(errno)); goto error; } rc = 0; } if (rc == 0) { // poor man's blocking handling blockings--; usleep(500000); continue; } sent += rc; } g_string_free(graph_str, TRUE); return 0; error: g_string_free(graph_str, TRUE); close_socket(&graphite_sock); return -1; } static void graphite_loop_run(endpoint_t *graphite_ep, int seconds) { int rc=0; struct pollfd wfds[1]; if (!graphite_ep) { ilog(LOG_ERROR, "NULL graphite_ep"); return ; } if (connection_state == STATE_IN_PROGRESS && graphite_sock.fd >= 0) { wfds[0].fd=graphite_sock.fd; wfds[0].events = POLLOUT | POLLERR | POLLHUP | POLLNVAL; rc = poll(wfds,1,1000); if (rc == -1) { ilog(LOG_ERROR,"Error on the socket."); close_socket(&graphite_sock); connection_state = STATE_DISCONNECTED; return; } else if (rc==0) { // timeout return; } else { if (!(wfds[0].revents & POLLOUT)) { ilog(LOG_WARN,"fd is active but not ready for writing, poll events=%x",wfds[0].revents); close_socket(&graphite_sock); connection_state = STATE_DISCONNECTED; return; } rc = socket_error(&graphite_sock); if (rc < 0) ilog(LOG_ERROR,"getsockopt failure."); if (rc != 0) { ilog(LOG_ERROR,"Socket connect failed. fd: %i, Reason: %s\n",graphite_sock.fd, strerror(rc)); close_socket(&graphite_sock); connection_state = STATE_DISCONNECTED; return; } ilog(LOG_INFO, "Graphite server connected."); connection_state = STATE_CONNECTED; next_run=0; // fake next run to skip sleep after reconnect } } gettimeofday(&rtpe_now, NULL); if (rtpe_now.tv_sec < next_run) { usleep(100000); return; } next_run = rtpe_now.tv_sec + seconds; if (graphite_sock.fd < 0 && connection_state == STATE_DISCONNECTED) { connect_to_graphite_server(graphite_ep); } if (graphite_sock.fd >= 0 && connection_state == STATE_CONNECTED) { add_total_calls_duration_in_interval(&graphite_interval_tv); gettimeofday(&rtpe_now, NULL); rc = send_graphite_data(); if (rc < 0) { ilog(LOG_ERROR,"Sending graphite data failed."); close_socket(&graphite_sock); connection_state = STATE_DISCONNECTED; } } } void graphite_loop(void *d) { if (rtpe_config.graphite_interval <= 0) { ilog(LOG_WARNING,"Graphite send interval was not set. Setting it to 1 second."); rtpe_config.graphite_interval=1; } connect_to_graphite_server(&rtpe_config.graphite_ep); while (!rtpe_shutdown) graphite_loop_run(&rtpe_config.graphite_ep, rtpe_config.graphite_interval); // time in seconds } rtpengine-mr12.5.1.22/daemon/helpers.c000066400000000000000000000204061474347554000174440ustar00rootroot00000000000000#include "helpers.h" #include #include #include #include #include #include #include #include #include #include "log.h" #include "main.h" #include "bufferpool.h" #include "media_socket.h" #include "uring.h" #include "poller.h" #if 0 #define BSDB(x...) fprintf(stderr, x) #else #define BSDB(x...) ((void)0) #endif struct detach_thread { void (*func)(void *); void *data; const char *scheduler; int priority; }; struct scheduler { const char *name; int num; int nice; }; struct looper_thread { enum thread_looper_action (*f)(void); const char *name; long long interval_us; }; static mutex_t threads_lists_lock = MUTEX_STATIC_INIT; static GList *threads_to_join; static GList *threads_running; static cond_t threads_cond = COND_STATIC_INIT; static mutex_t thread_wakers_lock = MUTEX_STATIC_INIT; static GList *thread_wakers; static const struct scheduler schedulers[] = { { "default", -1, 1 }, { "none", -1, 1 }, #ifdef SCHED_FIFO { "fifo", SCHED_FIFO, 0 }, #endif #ifdef SCHED_RR { "rr", SCHED_RR, 0 }, #endif //#ifdef SCHED_DEADLINE // { "deadline", SCHED_DEADLINE, 0 }, //#endif #ifdef SCHED_OTHER { "other", SCHED_OTHER, 1 }, #endif #ifdef SCHED_BATCH { "batch", SCHED_BATCH, 1 }, #endif #ifdef SCHED_IDLE { "idle", SCHED_IDLE, 0 }, #endif }; int pcre2_multi_match(pcre2_code *re, const char *s, unsigned int num, parse_func f, void *p, GQueue *q) { size_t start, len, next; char **el; unsigned int i; void *ins; el = malloc(sizeof(*el) * num); pcre2_match_data *md = pcre2_match_data_create(num, NULL); for (start = 0, len = strlen(s); pcre2_match(re, (PCRE2_SPTR8) s + start, len - start, 0, 0, md, NULL) >= 0; start += next) { PCRE2_SIZE *ovec = pcre2_get_ovector_pointer(md); uint32_t count = pcre2_get_ovector_count(md); next = ovec[1]; for (i = 0; i < num; i++) { size_t *ov = ovec + 2 + i*2; el[i] = (i + 1 >= count) ? NULL : g_strndup(s + start + ov[0], ov[1] - ov[0]); } if (f(el, &ins, p)) g_queue_push_tail(q, ins); for (i = 0; i < num; i++) g_free(el[i]); } free(el); pcre2_match_data_free(md); return q ? q->length : 0; } static void thread_join_me(void) { pthread_t *me; me = g_slice_alloc(sizeof(*me)); *me = pthread_self(); mutex_lock(&threads_lists_lock); threads_to_join = g_list_prepend(threads_to_join, me); cond_broadcast(&threads_cond); mutex_unlock(&threads_lists_lock); } static gint thread_equal(gconstpointer a, gconstpointer b) { const pthread_t *x = a, *y = b; return !pthread_equal(*x, *y); } void threads_join_all(bool cancel) { pthread_t *t; GList *l; while (1) { if (cancel) { mutex_lock(&thread_wakers_lock); for (l = thread_wakers; l; l = l->next) { struct thread_waker *wk = l->data; wk->func(wk); } mutex_unlock(&thread_wakers_lock); mutex_lock(&threads_lists_lock); for (l = threads_running; l; l = l->next) { t = l->data; pthread_cancel(*t); } mutex_unlock(&threads_lists_lock); } mutex_lock(&threads_lists_lock); while (threads_to_join) { t = threads_to_join->data; pthread_join(*t, NULL); threads_to_join = g_list_delete_link(threads_to_join, threads_to_join); l = g_list_find_custom(threads_running, t, thread_equal); if (l) { g_slice_free1(sizeof(*t), l->data); threads_running = g_list_delete_link(threads_running, l); } else abort(); g_slice_free1(sizeof(*t), t); } if ((!cancel && rtpe_shutdown) || (cancel && !threads_running)) { mutex_unlock(&threads_lists_lock); break; } cond_wait(&threads_cond, &threads_lists_lock); mutex_unlock(&threads_lists_lock); } } static void thread_waker_wake_cond(struct thread_waker *wk) { mutex_lock(wk->lock); cond_broadcast(wk->cond); mutex_unlock(wk->lock); } void thread_waker_add(struct thread_waker *wk) { wk->func = thread_waker_wake_cond; thread_waker_add_generic(wk); } void thread_waker_add_generic(struct thread_waker *wk) { mutex_lock(&thread_wakers_lock); thread_wakers = g_list_prepend(thread_wakers, wk); mutex_unlock(&thread_wakers_lock); } void thread_waker_del(struct thread_waker *wk) { mutex_lock(&thread_wakers_lock); thread_wakers = g_list_remove(thread_wakers, wk); mutex_unlock(&thread_wakers_lock); } static void thread_detach_cleanup(void *dtp) { struct detach_thread *dt = dtp; g_slice_free1(sizeof(*dt), dt); bufferpool_destroy(media_bufferpool); #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) uring_thread_cleanup(); #endif thread_join_me(); } static void *thread_detach_func(void *d) { struct detach_thread *dt = d; pthread_t *t; pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); t = g_slice_alloc(sizeof(*t)); *t = pthread_self(); mutex_lock(&threads_lists_lock); threads_running = g_list_prepend(threads_running, t); mutex_unlock(&threads_lists_lock); const struct scheduler *scheduler = NULL; if (dt->scheduler) { for (int i = 0; i < G_N_ELEMENTS(schedulers); i++) { if (!strcmp(dt->scheduler, schedulers[i].name)) { scheduler = &schedulers[i]; break; } } if (!scheduler) ilog(LOG_ERR, "Specified scheduler policy '%s' not found", dt->scheduler); else if (scheduler->num != -1) { struct sched_param param = { 0 }; if (!scheduler->nice) param.sched_priority = dt->priority; ilog(LOG_DEBUG, "Setting thread scheduling parameters to '%s' (%i) / %i", dt->scheduler, scheduler->num, param.sched_priority); if (pthread_setschedparam(*t, scheduler->num, ¶m)) ilog(LOG_ERR, "Failed to set thread scheduling parameters to '%s' (%i) / %i: %s", dt->scheduler, scheduler->num, param.sched_priority, strerror(errno)); } } if ((!scheduler && dt->priority) || (scheduler && scheduler->nice)) { ilog(LOG_DEBUG, "Setting thread nice value to %i", dt->priority); if (setpriority(PRIO_PROCESS, 0, dt->priority)) ilog(LOG_ERR, "Failed to set thread nice value to %i: %s", dt->priority, strerror(errno)); } media_bufferpool = bufferpool_new(g_malloc, g_free, 64 * 65536); #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) uring_thread_init(); #endif thread_cleanup_push(thread_detach_cleanup, dt); dt->func(dt->data); thread_cleanup_pop(true); return NULL; } void thread_create_detach_prio(void (*f)(void *), void *d, const char *scheduler, int priority, const char *name) { struct detach_thread *dt; dt = g_slice_alloc(sizeof(*dt)); dt->func = f; dt->data = d; dt->scheduler = scheduler; dt->priority = priority; if (thread_create(thread_detach_func, dt, true, NULL, name)) abort(); } static void thread_looper_helper(void *fp) { // move object to stack and free it, so we can be cancelled without having a leak struct looper_thread *lhp = fp; struct looper_thread lh = *lhp; g_slice_free1(sizeof(*lhp), lhp); long long interval_us = lh.interval_us; #ifdef ASAN_BUILD interval_us = MIN(interval_us, 100000); #endif static const long long warn_limit_pct = 20; // 20% long long warn_limit_us = interval_us * warn_limit_pct / 100; struct timespec interval_ts = { .tv_sec = interval_us / 1000000, .tv_nsec = (interval_us % 1000000) * 1000, }; while (!rtpe_shutdown) { gettimeofday(&rtpe_now, NULL); enum thread_looper_action ret = lh.f(); uring_thread_loop(); struct timeval stop; gettimeofday(&stop, NULL); long long duration_us = timeval_diff(&stop, &rtpe_now); if (duration_us > warn_limit_us) ilog(LOG_WARN, "Run time of timer \"%s\": %lli.%06lli sec, " "exceeding limit of %lli%% (%lli.%06lli sec)", lh.name, duration_us / 1000000, duration_us % 1000000, warn_limit_pct, warn_limit_us / 1000000, warn_limit_us % 1000000); if (ret == TLA_BREAK) break; struct timespec sleeptime = interval_ts; struct timespec remtime; while (true) { thread_cancel_enable(); int res = nanosleep(&sleeptime, &remtime); thread_cancel_disable(); if (res == -1 && errno == EINTR) { sleeptime = remtime; continue; } break; } } } void thread_create_looper(enum thread_looper_action (*f)(void), const char *scheduler, int priority, const char *name, long long interval_us) { struct looper_thread *lh = g_slice_alloc(sizeof(*lh)); *lh = (__typeof__(*lh)) { .f = f, .name = name, .interval_us = interval_us, }; thread_create_detach_prio(thread_looper_helper, lh, scheduler, priority, name); } rtpengine-mr12.5.1.22/daemon/homer.c000066400000000000000000000347001474347554000171160ustar00rootroot00000000000000#include "homer.h" #include #include #include #include #include #include #include #include #include "log.h" #include "helpers.h" #include "str.h" #include "types.h" #define SEND_QUEUE_LIMIT 200 TYPED_GQUEUE(gstring, GString) struct homer_sender { mutex_t lock; endpoint_t endpoint; int protocol; int capture_id; socket_t socket; time_t retry; gstring_q send_queue; GString *partial; int (*state)(struct homer_sender *); }; static struct homer_sender *main_homer_sender; static int send_hepv3 (GString *s, const str *id, int, const endpoint_t *src, const endpoint_t *dst, const struct timeval *, int hep_capture_proto); // state handlers static int __established(struct homer_sender *hs); static int __in_progress(struct homer_sender *hs); static int __no_socket(struct homer_sender *hs); static void __reset(struct homer_sender *hs) { close_socket(&hs->socket); hs->state = __no_socket; hs->retry = time(NULL) + 30; // discard partially written packet if (hs->partial) g_string_free(hs->partial, TRUE); hs->partial = NULL; } static int __attempt_send(struct homer_sender *hs, GString *gs) { int ret; ret = write(hs->socket.fd, gs->str, gs->len); if (ret == gs->len) { // full write g_string_free(gs, TRUE); return 0; } if (ret < 0) { if (errno != EWOULDBLOCK && errno != EAGAIN) { ilog(LOG_ERR, "Write error to Homer at %s: %s", endpoint_print_buf(&hs->endpoint), strerror(errno)); __reset(hs); return 1; } ilog(LOG_DEBUG, "Home write blocked"); // XXX use poller for blocked writes? return 2; } // partial write ilog(LOG_DEBUG, "Home write blocked (partial write)"); g_string_erase(gs, 0, ret); return 3; } static int __established(struct homer_sender *hs) { char buf[16]; int ret; GString *gs; // test connection with a dummy read ret = read(hs->socket.fd, buf, sizeof(buf)); if (ret < 0) { if (errno != EWOULDBLOCK && errno != EAGAIN) { ilog(LOG_ERR, "Connection error from Homer at %s: %s", endpoint_print_buf(&hs->endpoint), strerror(errno)); __reset(hs); return -1; } } // XXX handle return data from Homer? if (hs->partial) { ilog(LOG_DEBUG, "dequeue partial packet to Homer"); ret = __attempt_send(hs, hs->partial); if (ret == 3 || ret == 2) // partial write or not sent at all return 0; if (ret == 1) // write error, takes care of deleting hs->partial return -1; // ret == 0 -> sent OK, drop through to unqueue hs->partial = NULL; } // unqueue as much as we can while ((gs = t_queue_pop_head(&hs->send_queue))) { ilog(LOG_DEBUG, "dequeue send queue to Homer"); ret = __attempt_send(hs, gs); if (ret == 0) // everything sent OK continue; if (ret == 3) { // partial write hs->partial = gs; return 0; } t_queue_push_head(&hs->send_queue, gs); if (ret == 1) // write error return -1; // ret == 2 -> blocked return 0; } // everything unqueued return 0; } static int __check_conn(struct homer_sender *hs, int ret) { if (ret == 0) { ilog(LOG_INFO, "Connection to Homer at %s has been established", endpoint_print_buf(&hs->endpoint)); hs->state = __established; return hs->state(hs); } if (ret == 1) { ilog(LOG_DEBUG, "connection to Homer is in progress"); hs->state = __in_progress; return 0; } ilog(LOG_ERR, "Failed to connect to Homer at %s: %s", endpoint_print_buf(&hs->endpoint), strerror(errno)); __reset(hs); return -1; } static int __in_progress(struct homer_sender *hs) { int ret; ilog(LOG_DEBUG, "connection to Homer is in progress - checking"); ret = connect_socket_retry(&hs->socket); return __check_conn(hs, ret); } static int __no_socket(struct homer_sender *hs) { int ret; if (hs->retry > time(NULL)) return 0; ilog(LOG_INFO, "Connecting to Homer at %s", endpoint_print_buf(&hs->endpoint)); ret = connect_socket_nb(&hs->socket, hs->protocol, &hs->endpoint); return __check_conn(hs, ret); } void homer_sender_init(const endpoint_t *ep, int protocol, int capture_id) { struct homer_sender *ret; if (is_addr_unspecified(&ep->address)) return; if (main_homer_sender) return; ret = malloc(sizeof(*ret)); ZERO(*ret); mutex_init(&ret->lock); ret->endpoint = *ep; ret->protocol = protocol; ret->capture_id = capture_id; ret->retry = time(NULL); ret->state = __no_socket; main_homer_sender = ret; return; } // takes over the GString int homer_send(GString *s, const str *id, const endpoint_t *src, const endpoint_t *dst, const struct timeval *tv, int hep_capture_proto) { if (!main_homer_sender) goto out; if (!s) goto out; if (!s->len) // empty write, shouldn't happen goto out; ilog(LOG_DEBUG, "JSON to send to Homer: '"STR_FORMAT"'", G_STR_FMT(s)); if (send_hepv3(s, id, main_homer_sender->capture_id, src, dst, tv, hep_capture_proto)) goto out; mutex_lock(&main_homer_sender->lock); if (main_homer_sender->send_queue.length < SEND_QUEUE_LIMIT) { t_queue_push_tail(&main_homer_sender->send_queue, s); s = NULL; } else ilog(LOG_ERR, "Send queue length limit (%i) reached, dropping Homer message", SEND_QUEUE_LIMIT); main_homer_sender->state(main_homer_sender); mutex_unlock(&main_homer_sender->lock); out: if (s) g_string_free(s, TRUE); return 0; } // from captagent transport_hep.[ch] struct hep_chunk { uint16_t vendor_id; uint16_t type_id; uint16_t length; } __attribute__((packed)); typedef struct hep_chunk hep_chunk_t; struct hep_chunk_uint8 { hep_chunk_t chunk; uint8_t data; } __attribute__((packed)); typedef struct hep_chunk_uint8 hep_chunk_uint8_t; struct hep_chunk_uint16 { hep_chunk_t chunk; uint16_t data; } __attribute__((packed)); typedef struct hep_chunk_uint16 hep_chunk_uint16_t; struct hep_chunk_uint32 { hep_chunk_t chunk; uint32_t data; } __attribute__((packed)); typedef struct hep_chunk_uint32 hep_chunk_uint32_t; struct hep_chunk_str { hep_chunk_t chunk; char *data; } __attribute__((packed)); typedef struct hep_chunk_str hep_chunk_str_t; struct hep_chunk_ip4 { hep_chunk_t chunk; struct in_addr data; } __attribute__((packed)); typedef struct hep_chunk_ip4 hep_chunk_ip4_t; struct hep_chunk_ip6 { hep_chunk_t chunk; struct in6_addr data; } __attribute__((packed)); typedef struct hep_chunk_ip6 hep_chunk_ip6_t; struct hep_ctrl { char id[4]; uint16_t length; } __attribute__((packed)); typedef struct hep_ctrl hep_ctrl_t; struct hep_chunk_payload { hep_chunk_t chunk; char *data; } __attribute__((packed)); typedef struct hep_chunk_payload hep_chunk_payload_t; /* Structure of HEP */ struct hep_generic { hep_ctrl_t header; hep_chunk_uint8_t ip_family; hep_chunk_uint8_t ip_proto; hep_chunk_uint16_t src_port; hep_chunk_uint16_t dst_port; hep_chunk_uint32_t time_sec; hep_chunk_uint32_t time_usec; hep_chunk_uint8_t proto_t; hep_chunk_uint32_t capt_id; } __attribute__((packed)); typedef struct hep_generic hep_generic_t; // modifies the GString in place static int send_hepv3 (GString *s, const str *id, int capt_id, const endpoint_t *src, const endpoint_t *dst, const struct timeval *tv, int hep_capture_proto) { struct hep_generic *hg=NULL; void* buffer; unsigned int buflen=0, iplen=0,tlen=0; hep_chunk_ip4_t src_ip4, dst_ip4; hep_chunk_ip6_t src_ip6, dst_ip6; hep_chunk_t payload_chunk; //hep_chunk_t authkey_chunk; hep_chunk_t correlation_chunk; //static int errors = 0; hg = malloc(sizeof(struct hep_generic)); memset(hg, 0, sizeof(struct hep_generic)); /* header set */ memcpy(hg->header.id, "\x48\x45\x50\x33", 4); /* IP proto */ hg->ip_family.chunk.vendor_id = htons(0x0000); hg->ip_family.chunk.type_id = htons(0x0001); hg->ip_family.data = src->address.family->af; hg->ip_family.chunk.length = htons(sizeof(hg->ip_family)); /* Proto ID */ hg->ip_proto.chunk.vendor_id = htons(0x0000); hg->ip_proto.chunk.type_id = htons(0x0002); hg->ip_proto.data = IPPROTO_UDP; hg->ip_proto.chunk.length = htons(sizeof(hg->ip_proto)); /* IPv4 */ if(hg->ip_family.data == AF_INET) { /* SRC IP */ src_ip4.chunk.vendor_id = htons(0x0000); src_ip4.chunk.type_id = htons(0x0003); src_ip4.data = src->address.ipv4; src_ip4.chunk.length = htons(sizeof(src_ip4)); /* DST IP */ dst_ip4.chunk.vendor_id = htons(0x0000); dst_ip4.chunk.type_id = htons(0x0004); dst_ip4.data = dst->address.ipv4; dst_ip4.chunk.length = htons(sizeof(dst_ip4)); iplen = sizeof(dst_ip4) + sizeof(src_ip4); } /* IPv6 */ else if(hg->ip_family.data == AF_INET6) { /* SRC IPv6 */ src_ip6.chunk.vendor_id = htons(0x0000); src_ip6.chunk.type_id = htons(0x0005); src_ip6.data = src->address.ipv6; src_ip6.chunk.length = htons(sizeof(src_ip6)); /* DST IPv6 */ dst_ip6.chunk.vendor_id = htons(0x0000); dst_ip6.chunk.type_id = htons(0x0006); dst_ip6.data = dst->address.ipv6; dst_ip6.chunk.length = htons(sizeof(dst_ip6)); iplen = sizeof(dst_ip6) + sizeof(src_ip6); } /* SRC PORT */ hg->src_port.chunk.vendor_id = htons(0x0000); hg->src_port.chunk.type_id = htons(0x0007); hg->src_port.data = htons(src->port); hg->src_port.chunk.length = htons(sizeof(hg->src_port)); /* DST PORT */ hg->dst_port.chunk.vendor_id = htons(0x0000); hg->dst_port.chunk.type_id = htons(0x0008); hg->dst_port.data = htons(dst->port); hg->dst_port.chunk.length = htons(sizeof(hg->dst_port)); /* TIMESTAMP SEC */ hg->time_sec.chunk.vendor_id = htons(0x0000); hg->time_sec.chunk.type_id = htons(0x0009); hg->time_sec.data = htonl(tv->tv_sec); hg->time_sec.chunk.length = htons(sizeof(hg->time_sec)); /* TIMESTAMP USEC */ hg->time_usec.chunk.vendor_id = htons(0x0000); hg->time_usec.chunk.type_id = htons(0x000a); hg->time_usec.data = htonl(tv->tv_usec); hg->time_usec.chunk.length = htons(sizeof(hg->time_usec)); /* Protocol TYPE */ hg->proto_t.chunk.vendor_id = htons(0x0000); hg->proto_t.chunk.type_id = htons(0x000b); hg->proto_t.data = hep_capture_proto; hg->proto_t.chunk.length = htons(sizeof(hg->proto_t)); /* Capture ID */ hg->capt_id.chunk.vendor_id = htons(0x0000); hg->capt_id.chunk.type_id = htons(0x000c); hg->capt_id.data = htonl(capt_id); hg->capt_id.chunk.length = htons(sizeof(hg->capt_id)); /* Payload */ payload_chunk.vendor_id = htons(0x0000); payload_chunk.type_id = 0 ? htons(0x0010) : htons(0x000f); payload_chunk.length = htons(sizeof(payload_chunk) + s->len); tlen = sizeof(struct hep_generic) + s->len + iplen + sizeof(hep_chunk_t); #if 0 /* auth key */ if(profile_transport[idx].capt_password != NULL) { tlen += sizeof(hep_chunk_t); /* Auth key */ authkey_chunk.vendor_id = htons(0x0000); authkey_chunk.type_id = htons(0x000e); authkey_chunk.length = htons(sizeof(authkey_chunk) + strlen(profile_transport[idx].capt_password)); tlen += strlen(profile_transport[idx].capt_password); } #endif /* correlation key */ //if(rcinfo->correlation_id.s && rcinfo->correlation_id.len > 0) { tlen += sizeof(hep_chunk_t); /* Correlation key */ correlation_chunk.vendor_id = htons(0x0000); correlation_chunk.type_id = htons(0x0011); correlation_chunk.length = htons(sizeof(correlation_chunk) + id->len); tlen += id->len; //} /* total */ hg->header.length = htons(tlen); buffer = (void*)malloc(tlen); if (buffer==0){ ilog(LOG_ERR, "ERROR: out of memory"); free(hg); return -1; } memcpy((void*) buffer, hg, sizeof(struct hep_generic)); buflen = sizeof(struct hep_generic); /* IPv4 */ if(hg->ip_family.data == AF_INET) { /* SRC IP */ memcpy((void*) buffer+buflen, &src_ip4, sizeof(struct hep_chunk_ip4)); buflen += sizeof(struct hep_chunk_ip4); memcpy((void*) buffer+buflen, &dst_ip4, sizeof(struct hep_chunk_ip4)); buflen += sizeof(struct hep_chunk_ip4); } /* IPv6 */ else if(hg->ip_family.data == AF_INET6) { /* SRC IPv6 */ memcpy((void*) buffer+buflen, &src_ip6, sizeof(struct hep_chunk_ip6)); buflen += sizeof(struct hep_chunk_ip6); memcpy((void*) buffer+buflen, &dst_ip6, sizeof(struct hep_chunk_ip6)); buflen += sizeof(struct hep_chunk_ip6); } #if 0 /* AUTH KEY CHUNK */ if(profile_transport[idx].capt_password != NULL) { memcpy((void*) buffer+buflen, &authkey_chunk, sizeof(struct hep_chunk)); buflen += sizeof(struct hep_chunk); /* Now copying payload self */ memcpy((void*) buffer+buflen, profile_transport[idx].capt_password, strlen(profile_transport[idx].capt_password)); buflen+=strlen(profile_transport[idx].capt_password); } #endif /* Correlation KEY CHUNK */ //if(rcinfo->correlation_id.s && rcinfo->correlation_id.len > 0) { memcpy((void*) buffer+buflen, &correlation_chunk, sizeof(struct hep_chunk)); buflen += sizeof(struct hep_chunk); /* Now copying payload self */ memcpy((void*) buffer+buflen, id->s, id->len); buflen+= id->len; //} /* PAYLOAD CHUNK */ memcpy((void*) buffer+buflen, &payload_chunk, sizeof(struct hep_chunk)); buflen += sizeof(struct hep_chunk); /* Now copying payload self */ memcpy((void*) buffer+buflen, s->str, s->len); buflen+=s->len; #if 0 /* make sleep after 100 errors */ if(errors > 50) { LERR( "HEP server is down... retrying after sleep..."); if(!profile_transport[idx].usessl) { sleep(2); if(init_hepsocket_blocking(idx)) { profile_transport[idx].initfails++; } errors=0; } #ifdef USE_SSL else { sleep(2); if(initSSL(idx)) profile_transport[idx].initfails++; errors=0; } #endif /* USE SSL */ } /* send this packet out of our socket */ if(send_data(buffer, buflen, idx)) { errors++; stats.errors_total++; } #endif g_string_truncate(s, 0); g_string_append_len(s, buffer, buflen); /* FREE */ free(buffer); free(hg); return 0; } int has_homer(void) { return main_homer_sender ? 1 : 0; } rtpengine-mr12.5.1.22/daemon/ice.c000066400000000000000000001275001474347554000165450ustar00rootroot00000000000000#include "ice.h" #include #include #include #include "str.h" #include "call.h" #include "helpers.h" #include "log.h" #include "obj.h" #include "stun.h" #include "poller.h" #include "log_funcs.h" #include "timerthread.h" #include "call_interfaces.h" #if __DEBUG #define ICE_DEBUG 1 #else #define ICE_DEBUG 0 #endif #if ICE_DEBUG #define __DBG(x...) ilogs(ice, LOG_DEBUG, x) #else #define __DBG(x...) ilogs(internals, LOG_DEBUG, x) #endif #define PAIR_FORMAT STR_FORMAT_M ":" STR_FORMAT_M ":%lu" #define PAIR_FMT(p) \ STR_FMT_M(&(p)->local_intf->ice_foundation), \ STR_FMT_M(&(p)->remote_candidate->foundation), \ (p)->remote_candidate->component_id struct fragment_key { str call_id; str from_tag; }; struct sdp_fragment { ng_buffer *ngbuf; struct timeval received; sdp_streams_q streams; sdp_ng_flags flags; }; static void __ice_agent_free(void *p); static void create_random_ice_string(call_t *call, str *s, int len); static void __do_ice_checks(struct ice_agent *ag); static struct ice_candidate_pair *__pair_lookup(struct ice_agent *, struct ice_candidate *cand, const struct local_intf *ifa); static void __recalc_pair_prios(struct ice_agent *ag); static void __role_change(struct ice_agent *ag, int new_controlling); static void __get_complete_components(candidate_pair_q *out, struct ice_agent *ag, GTree *t, unsigned int); static void __agent_schedule(struct ice_agent *ag, unsigned long); static void __agent_schedule_abs(struct ice_agent *ag, const struct timeval *tv); static void __agent_deschedule(struct ice_agent *ag); static void __ice_agent_free_components(struct ice_agent *ag); static void __agent_shutdown(struct ice_agent *ag); static void ice_agents_timer_run(void *); static uint64_t tie_breaker; static struct timerthread ice_agents_timer_thread; static const char ice_chars[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; const unsigned int ice_type_preferences[] = { [ICT_UNKNOWN] = 0, [ICT_HOST] = 126, [ICT_SRFLX] = 100, [ICT_PRFLX] = 110, [ICT_RELAY] = 0, }; const char * const ice_type_strings[] = { [ICT_UNKNOWN] = "unknown", [ICT_HOST] = "host", [ICT_SRFLX] = "srflx", [ICT_PRFLX] = "prflx", [ICT_RELAY] = "relay", }; static unsigned int frag_key_hash(const struct fragment_key *A); static int frag_key_eq(const struct fragment_key *A, const struct fragment_key *B); static void fragment_key_free(struct fragment_key *); TYPED_GQUEUE(fragment, struct sdp_fragment) TYPED_GHASHTABLE(fragments_ht, struct fragment_key, fragment_q, frag_key_hash, frag_key_eq, fragment_key_free, NULL) TYPED_GHASHTABLE_LOOKUP_INSERT(fragments_ht, fragment_key_free, fragment_q_new) static mutex_t sdp_fragments_lock; static fragments_ht sdp_fragments; static void ice_update_media_streams(struct call_monologue *ml, sdp_streams_q *streams) { for (__auto_type l = streams->head; l; l = l->next) { struct stream_params *sp = l->data; struct call_media *media = NULL; if (sp->media_id.len) media = g_hash_table_lookup(ml->media_ids, &sp->media_id); else if (sp->index > 0) { unsigned int arr_idx = sp->index - 1; if (arr_idx < ml->medias->len) media = ml->medias->pdata[arr_idx]; } if (!media) { ilogs(ice, LOG_WARN, "No matching media for trickle ICE update found"); continue; } if (!media->ice_agent) { ilogs(ice, LOG_WARN, "Media for trickle ICE update is not ICE-enabled"); continue; } if (!MEDIA_ISSET(media, TRICKLE_ICE)) { ilogs(ice, LOG_WARN, "Media for trickle ICE update is not trickle-ICE-enabled"); continue; } ice_update(media->ice_agent, sp, false); } } static unsigned int frag_key_hash(const struct fragment_key *a) { return str_hash(&a->call_id) ^ str_hash(&a->from_tag); } static int frag_key_eq(const struct fragment_key *a, const struct fragment_key *b) { return str_equal(&a->call_id, &b->call_id) && str_equal(&a->from_tag, &b->from_tag); } static void fragment_free(struct sdp_fragment *frag) { sdp_streams_clear(&frag->streams); call_ng_free_flags(&frag->flags); obj_put(frag->ngbuf); g_slice_free1(sizeof(*frag), frag); } static void fragment_key_free(struct fragment_key *k) { g_free(k->call_id.s); g_free(k->from_tag.s); g_slice_free1(sizeof(*k), k); } static void queue_sdp_fragment(ng_buffer *ngbuf, sdp_streams_q *streams, sdp_ng_flags *flags) { ilog(LOG_DEBUG, "Queuing up SDP fragment for " STR_FORMAT_M "/" STR_FORMAT_M, STR_FMT_M(&flags->call_id), STR_FMT_M(&flags->from_tag)); struct fragment_key *k = g_slice_alloc0(sizeof(*k)); str_init_dup_str(&k->call_id, &flags->call_id); str_init_dup_str(&k->from_tag, &flags->from_tag); struct sdp_fragment *frag = g_slice_alloc0(sizeof(*frag)); frag->received = rtpe_now; frag->ngbuf = obj_get(ngbuf); frag->streams = *streams; frag->flags = *flags; t_queue_init(streams); ZERO(*flags); mutex_lock(&sdp_fragments_lock); fragment_q *frags = fragments_ht_lookup_insert(sdp_fragments, k); t_queue_push_tail(frags, frag); mutex_unlock(&sdp_fragments_lock); } bool trickle_ice_update(ng_buffer *ngbuf, call_t *call, sdp_ng_flags *flags, sdp_streams_q *streams) { if (!flags->fragment) return false; if (!call) { queue_sdp_fragment(ngbuf, streams, flags); return true; } struct call_monologue *ml = call_get_monologue(call, &flags->from_tag); if (!ml) { queue_sdp_fragment(ngbuf, streams, flags); return true; } ice_update_media_streams(ml, streams); return true; } #define MAX_FRAG_AGE 3000000 void dequeue_sdp_fragments(struct call_monologue *monologue) { struct fragment_key k; ZERO(k); k.call_id = monologue->call->callid; k.from_tag = monologue->tag; fragment_q *frags = NULL; { LOCK(&sdp_fragments_lock); t_hash_table_steal_extended(sdp_fragments, &k, NULL, &frags); if (!frags) return; // we own the queue now } struct sdp_fragment *frag; while ((frag = t_queue_pop_head(frags))) { if (timeval_diff(&rtpe_now, &frag->received) > MAX_FRAG_AGE) goto next; ilog(LOG_DEBUG, "Dequeuing SDP fragment for " STR_FORMAT_M "/" STR_FORMAT_M, STR_FMT_M(&k.call_id), STR_FMT_M(&k.from_tag)); ice_update_media_streams(monologue, &frag->streams); next: fragment_free(frag); } t_queue_free(frags); } static gboolean fragment_check_cleanup(struct fragment_key *key, fragment_q *frags, void *p) { bool all = GPOINTER_TO_INT(p); if (!key || !frags) return TRUE; while (frags->length) { struct sdp_fragment *frag = frags->head->data; if (!all && timeval_diff(&rtpe_now, &frag->received) <= MAX_FRAG_AGE) break; t_queue_pop_head(frags); fragment_free(frag); } if (!frags->length) { t_queue_free(frags); return TRUE; } return FALSE; } static void fragments_cleanup(bool all) { mutex_lock(&sdp_fragments_lock); t_hash_table_foreach_remove(sdp_fragments, fragment_check_cleanup, GINT_TO_POINTER(all)); mutex_unlock(&sdp_fragments_lock); } enum ice_candidate_type ice_candidate_type(const str *s) { int i; for (i = 1; i < G_N_ELEMENTS(ice_type_strings); i++) { if (!str_cmp(s, ice_type_strings[i])) return i; } return ICT_UNKNOWN; } bool ice_has_related(enum ice_candidate_type t) { if (t == ICT_HOST) return false; /* ignoring ICT_UNKNOWN */ return true; } static uint64_t __ice_pair_priority(const struct local_intf *ifa, struct ice_candidate *cand, int controlling) { uint64_t g, d; g = ice_priority(ICT_HOST, ifa->unique_id, cand->component_id); d = cand->priority; if (!controlling) { uint64_t t = g; g = d; d = t; } return (MIN(g,d) << 32) + (MAX(g,d) << 1) + (g > d ? 1 : 0); } static void __do_ice_pair_priority(struct ice_candidate_pair *pair) { pair->pair_priority = __ice_pair_priority(pair->local_intf, pair->remote_candidate, AGENT_ISSET(pair->agent, CONTROLLING)); } static void __new_stun_transaction(struct ice_candidate_pair *pair) { struct ice_agent *ag = pair->agent; t_hash_table_remove(ag->transaction_hash, pair->stun_transaction); random_string((void *) pair->stun_transaction, sizeof(pair->stun_transaction)); t_hash_table_insert(ag->transaction_hash, pair->stun_transaction, pair); } /* agent must be locked */ static void __all_pairs_list(struct ice_agent *ag) { t_queue_clear(&ag->all_pairs_list); g_tree_get_values(&ag->all_pairs_list.q, ag->all_pairs); } static void __tree_coll_callback(void *oo, void *nn) { struct ice_candidate_pair *o = oo, *n = nn; ilogs(ice, LOG_WARN | LOG_FLAG_LIMIT, "Priority collision between candidate pairs " PAIR_FORMAT " and " PAIR_FORMAT " - ICE will likely fail", PAIR_FMT(o), PAIR_FMT(n)); } /* agent must be locked */ static struct ice_candidate_pair *__pair_candidate(stream_fd *sfd, struct ice_agent *ag, struct ice_candidate *cand) { struct ice_candidate_pair *pair; if (sfd->socket.family != cand->endpoint.address.family) return NULL; pair = g_slice_alloc0(sizeof(*pair)); pair->agent = ag; pair->remote_candidate = cand; pair->local_intf = sfd->local_intf; pair->sfd = sfd; if (cand->component_id != 1) PAIR_SET(pair, FROZEN); __do_ice_pair_priority(pair); __new_stun_transaction(pair); t_queue_push_tail(&ag->candidate_pairs, pair); t_hash_table_insert(ag->pair_hash, pair, pair); g_tree_insert_coll(ag->all_pairs, pair, pair, __tree_coll_callback); ilogs(ice, LOG_DEBUG, "Created candidate pair "PAIR_FORMAT" between %s and %s%s%s, type %s", PAIR_FMT(pair), sockaddr_print_buf(&sfd->socket.local.address), FMT_M(endpoint_print_buf(&cand->endpoint)), ice_candidate_type_str(cand->type)); return pair; } static unsigned int __pair_hash(const struct ice_candidate_pair *pair) { return g_direct_hash(pair->local_intf) ^ g_direct_hash(pair->remote_candidate); } static int __pair_equal(const struct ice_candidate_pair *A, const struct ice_candidate_pair *B) { return A->local_intf == B->local_intf && A->remote_candidate == B->remote_candidate; } static unsigned int __cand_hash(const struct ice_candidate *cand) { return endpoint_hash(&cand->endpoint) ^ cand->component_id; } static int __cand_equal(const struct ice_candidate *A, const struct ice_candidate *B) { return endpoint_eq(&A->endpoint, &B->endpoint) && A->component_id == B->component_id; } static unsigned int __found_hash(const struct ice_candidate *cand) { return str_hash(&cand->foundation) ^ cand->component_id; } static int __found_equal(const struct ice_candidate *A, const struct ice_candidate *B) { return str_equal(&A->foundation, &B->foundation) && A->component_id == B->component_id; } static unsigned int __trans_hash(const uint32_t *tp) { return tp[0] ^ tp[1] ^ tp[2]; } static int __trans_equal(const uint32_t *A, const uint32_t *B) { return A[0] == B[0] && A[1] == B[1] && A[2] == B[2]; } static int __pair_prio_cmp(const void *a, const void *b) { const struct ice_candidate_pair *A = a, *B = b; /* highest priority first */ if (A->pair_priority < B->pair_priority) return 1; if (A->pair_priority > B->pair_priority) return -1; /* lowest component first */ if (A->remote_candidate->component_id < B->remote_candidate->component_id) return -1; if (A->remote_candidate->component_id > B->remote_candidate->component_id) return 1; /* highest local preference first, which is lowest unique_id first */ if (A->local_intf->unique_id < B->local_intf->unique_id) return -1; if (A->local_intf->unique_id > B->local_intf->unique_id) return 1; return 0; } TYPED_GHASHTABLE_IMPL(candidate_ht, __cand_hash, __cand_equal, NULL, NULL) TYPED_GHASHTABLE_IMPL(candidate_pair_ht, __pair_hash, __pair_equal, NULL, NULL) TYPED_GHASHTABLE_IMPL(foundation_ht, __found_hash, __found_equal, NULL, NULL) TYPED_GHASHTABLE_IMPL(priority_ht, g_direct_hash, g_direct_equal, NULL, NULL) TYPED_GHASHTABLE_IMPL(transaction_ht, __trans_hash, __trans_equal, NULL, NULL) static void __ice_agent_initialize(struct ice_agent *ag) { struct call_media *media = ag->media; call_t *call = ag->call; ag->candidate_hash = candidate_ht_new(); ag->cand_prio_hash = priority_ht_new(); ag->pair_hash = candidate_pair_ht_new(); ag->transaction_hash = transaction_ht_new(); ag->foundation_hash = foundation_ht_new(); atomic64_set_na(&ag->agent_flags, 0); bf_copy(&ag->agent_flags, ICE_AGENT_CONTROLLING, &media->media_flags, MEDIA_FLAG_ICE_CONTROLLING); bf_copy(&ag->agent_flags, ICE_AGENT_LITE_SELF, &media->media_flags, MEDIA_FLAG_ICE_LITE_SELF); ag->logical_intf = media->logical_intf; ag->desired_family = media->desired_family; ag->nominated_pairs = g_tree_new(__pair_prio_cmp); ag->valid_pairs = g_tree_new(__pair_prio_cmp); ag->succeeded_pairs = g_tree_new(__pair_prio_cmp); ag->all_pairs = g_tree_new(__pair_prio_cmp); create_random_ice_string(call, &ag->ufrag[1], 8); create_random_ice_string(call, &ag->pwd[1], 26); atomic64_set_na(&ag->last_activity, rtpe_now.tv_sec); } static struct ice_agent *__ice_agent_new(struct call_media *media) { struct ice_agent *ag; call_t *call = media->call; ag = obj_alloc0("ice_agent", sizeof(*ag), __ice_agent_free); ag->tt_obj.tt = &ice_agents_timer_thread; ag->tt_obj.thread = &ice_agents_timer_thread.threads[0]; // there's only one thread ag->call = obj_get(call); ag->media = media; mutex_init(&ag->lock); __ice_agent_initialize(ag); return ag; } /* called with the call lock held in W */ void ice_agent_init(struct ice_agent **agp, struct call_media *media) { struct ice_agent *ag; if (*agp) ag = *agp; else *agp = ag = __ice_agent_new(media); } static int __copy_cand(call_t *call, struct ice_candidate *dst, const struct ice_candidate *src) { int eq = (dst->priority == src->priority); *dst = *src; call_str_cpy(call, &dst->foundation, &src->foundation); return eq ? 0 : 1; } static void __ice_reset(struct ice_agent *ag) { __agent_deschedule(ag); AGENT_CLEAR3(ag, COMPLETED, NOMINATING, USABLE); __ice_agent_free_components(ag); ZERO(ag->active_components); ZERO(ag->start_nominating); ZERO(ag->tt_obj.last_run); __ice_agent_initialize(ag); } /* if the other side did a restart */ static void __ice_restart(struct ice_agent *ag) { ilogs(ice, LOG_DEBUG, "ICE restart detected, resetting ICE agent"); ag->ufrag[0] = STR_NULL; ag->pwd[0] = STR_NULL; ag->ufrag[1] = STR_NULL; ag->pwd[1] = STR_NULL; __ice_reset(ag); } /* if we're doing a restart */ void ice_restart(struct ice_agent *ag) { ilogs(ice, LOG_DEBUG, "Restarting ICE and resetting ICE agent"); ag->ufrag[1] = STR_NULL; ag->pwd[1] = STR_NULL; __ice_reset(ag); } /* called with the call lock held in W, hence agent doesn't need to be locked */ void ice_update(struct ice_agent *ag, struct stream_params *sp, bool allow_reset) { struct ice_candidate *cand, *dup; struct call_media *media; call_t *call; int recalc = 0; unsigned int comps; struct packet_stream *components[MAX_COMPONENTS], *ps; candidate_q *candidates; stream_fd *sfd; if (!ag) return; log_info_ice_agent(ag); atomic64_set_na(&ag->last_activity, rtpe_now.tv_sec); media = ag->media; call = media->call; __role_change(ag, MEDIA_ISSET(media, ICE_CONTROLLING)); if (sp) { if (ice_is_restart(ag, sp)) { if (!allow_reset) ilog(LOG_WARN, "ICE restart detected, but reset not allowed at this point"); else __ice_restart(ag); } /* update remote info */ if (sp->ice_ufrag.s) call_str_cpy(call, &ag->ufrag[0], &sp->ice_ufrag); if (sp->ice_pwd.s) call_str_cpy(call, &ag->pwd[0], &sp->ice_pwd); candidates = &sp->ice_candidates; } else /* this is a dummy update in case rtcp-mux has changed */ candidates = &ag->remote_candidates; /* get our component streams */ ZERO(components); comps = 0; for (__auto_type l = media->streams.head; l; l = l->next) components[comps++] = l->data; if (comps == 2 && (MEDIA_ISSET(media, RTCP_MUX) || !proto_is_rtp(media->protocol))) components[1] = NULL; comps = 0; for (__auto_type l = candidates->head; l; l = l->next) { if (ag->remote_candidates.length >= MAX_ICE_CANDIDATES) { ilogs(ice, LOG_WARNING, "Maxmimum number of ICE candidates exceeded"); break; } cand = l->data; /* skip invalid */ if (!cand->component_id || cand->component_id > G_N_ELEMENTS(components)) continue; ps = components[cand->component_id - 1]; if (ps) /* only count active components */ comps = MAX(comps, cand->component_id); dup = t_hash_table_lookup(ag->candidate_hash, cand); if (!sp && dup) /* this isn't a real update, so only check pairings */ goto pair; /* check for duplicates */ if (dup) { /* if this is peer reflexive, we've learned it through STUN. * otherwise it's simply one we've seen before. */ if (dup->type == ICT_PRFLX) { ilogs(ice, LOG_DEBUG, "Replacing previously learned prflx ICE candidate with " STR_FORMAT_M ":%lu", STR_FMT_M(&cand->foundation), cand->component_id); } else { /* if the new one has higher priority then the old one, then we * update it, otherwise we just drop it */ if (cand->priority <= dup->priority) { ilogs(ice, LOG_DEBUG, "Dropping new ICE candidate " STR_FORMAT_M " in favour of " STR_FORMAT_M ":%lu", STR_FMT_M(&cand->foundation), STR_FMT_M(&dup->foundation), cand->component_id); continue; } ilogs(ice, LOG_DEBUG, "Replacing known ICE candidate " STR_FORMAT_M " with higher " "priority " STR_FORMAT_M ":%lu", STR_FMT_M(&dup->foundation), STR_FMT_M(&cand->foundation), cand->component_id); } /* priority and foundation may change */ t_hash_table_remove(ag->foundation_hash, dup); recalc += __copy_cand(call, dup, cand); } else { ilogs(ice, LOG_DEBUG, "Learning new ICE candidate " STR_FORMAT_M ":%lu", STR_FMT_M(&cand->foundation), cand->component_id); dup = g_slice_alloc(sizeof(*dup)); __copy_cand(call, dup, cand); t_hash_table_insert(ag->candidate_hash, dup, dup); t_hash_table_insert(ag->cand_prio_hash, GUINT_TO_POINTER(dup->priority), dup); t_queue_push_tail(&ag->remote_candidates, dup); } t_hash_table_insert(ag->foundation_hash, dup, dup); pair: if (!ps) continue; for (__auto_type k = ps->sfds.head; k; k = k->next) { sfd = k->data; /* skip duplicates here also */ if (__pair_lookup(ag, dup, sfd->local_intf)) continue; __pair_candidate(sfd, ag, dup); } } if (comps) ag->active_components = comps; if (!ag->active_components) { /* determine components for tricke-ice case */ comps = 2; if (!components[1]) comps = 1; ag->active_components = comps; } /* if we're here, we can start our ICE checks */ if (recalc) __recalc_pair_prios(ag); else __all_pairs_list(ag); if (comps) __do_ice_checks(ag); else __agent_shutdown(ag); log_info_pop(); } static void ice_candidate_free(struct ice_candidate *p) { g_slice_free1(sizeof(*p), p); } void ice_candidates_free(candidate_q *q) { t_queue_clear_full(q, ice_candidate_free); } static void ice_candidate_pair_free(struct ice_candidate_pair *p) { g_slice_free1(sizeof(struct ice_candidate_pair), p); } static void ice_candidate_pairs_free(candidate_pair_q *q) { t_queue_clear_full(q, ice_candidate_pair_free); } /* call must be locked */ void ice_shutdown(struct ice_agent **agp) { struct ice_agent *ag; if (!agp) { ilogs(ice, LOG_ERR, "ice agp is NULL"); return ; } ag = *agp; if (!ag) return; __agent_deschedule(ag); *agp = NULL; obj_put(&ag->tt_obj); } static void __ice_agent_free_components(struct ice_agent *ag) { if (!ag) { ilogs(ice, LOG_ERR, "ice ag is NULL"); return; } t_queue_clear(&ag->triggered); t_hash_table_destroy(ag->candidate_hash); t_hash_table_destroy(ag->cand_prio_hash); t_hash_table_destroy(ag->pair_hash); t_hash_table_destroy(ag->transaction_hash); t_hash_table_destroy(ag->foundation_hash); g_tree_destroy(ag->all_pairs); t_queue_clear(&ag->all_pairs_list); g_tree_destroy(ag->nominated_pairs); g_tree_destroy(ag->succeeded_pairs); g_tree_destroy(ag->valid_pairs); ice_candidates_free(&ag->remote_candidates); ice_candidate_pairs_free(&ag->candidate_pairs); } static void __ice_agent_free(void *p) { struct ice_agent *ag = p; if (!ag) { ilogs(ice, LOG_ERR, "ice ag is NULL"); return; } __DBG("freeing ice_agent"); __ice_agent_free_components(ag); mutex_destroy(&ag->lock); obj_put(ag->call); } static void __agent_schedule(struct ice_agent *ag, unsigned long usec) { struct timeval nxt; nxt = rtpe_now; timeval_add_usec(&nxt, usec); __agent_schedule_abs(ag, &nxt); } static void __agent_schedule_abs(struct ice_agent *ag, const struct timeval *tv) { struct timeval nxt; long long diff; if (!ag) return; nxt = *tv; struct timerthread_thread *tt = ag->tt_obj.thread; mutex_lock(&tt->lock); if (ag->tt_obj.last_run.tv_sec) { /* make sure we don't run more often than we should */ diff = timeval_diff(&nxt, &ag->tt_obj.last_run); if (diff < TIMER_RUN_INTERVAL * 1000) timeval_add_usec(&nxt, TIMER_RUN_INTERVAL * 1000 - diff); } timerthread_obj_schedule_abs_nl(&ag->tt_obj, &nxt); mutex_unlock(&tt->lock); } static void __agent_deschedule(struct ice_agent *ag) { if (ag) timerthread_obj_deschedule(&ag->tt_obj); } void ice_init(void) { random_string((void *) &tie_breaker, sizeof(tie_breaker)); timerthread_init(&ice_agents_timer_thread, 1, ice_agents_timer_run); sdp_fragments = fragments_ht_new(); mutex_init(&sdp_fragments_lock); } void ice_free(void) { timerthread_free(&ice_agents_timer_thread); fragments_cleanup(true); t_hash_table_destroy_ptr(&sdp_fragments); mutex_destroy(&sdp_fragments_lock); } enum thread_looper_action ice_slow_timer(void) { fragments_cleanup(false); return TLA_CONTINUE; } static void __fail_pair(struct ice_candidate_pair *pair) { ilogs(ice, LOG_DEBUG, "Setting ICE candidate pair "PAIR_FORMAT" as failed", PAIR_FMT(pair)); PAIR_SET(pair, FAILED); PAIR_CLEAR(pair, IN_PROGRESS); } /* agent must NOT be locked, but call must be locked in R */ static void __do_ice_check(struct ice_candidate_pair *pair) { stream_fd *sfd = pair->sfd; struct ice_agent *ag = pair->agent; uint32_t prio, transact[3]; if (AGENT_ISSET(ag, LITE_SELF)) PAIR_SET(pair, SUCCEEDED); if (PAIR_ISSET(pair, SUCCEEDED) && !PAIR_ISSET(pair, TO_USE)) return; if (!ag->pwd[0].s) return; prio = ice_priority(ICT_PRFLX, pair->local_intf->unique_id, pair->remote_candidate->component_id); mutex_lock(&ag->lock); pair->retransmit = rtpe_now; if (!PAIR_SET(pair, IN_PROGRESS)) { PAIR_CLEAR2(pair, FROZEN, FAILED); pair->retransmit_ms = STUN_RETRANSMIT_INTERVAL; pair->retransmits = 0; } else if (pair->retransmits > STUN_MAX_RETRANSMITS) { __fail_pair(pair); mutex_unlock(&ag->lock); return; } else { pair->retransmit_ms *= 2; pair->retransmits++; } timeval_add_usec(&pair->retransmit, pair->retransmit_ms * 1000); __agent_schedule_abs(pair->agent, &pair->retransmit); memcpy(transact, pair->stun_transaction, sizeof(transact)); pair->was_controlling = AGENT_ISSET(ag, CONTROLLING); pair->was_nominated = PAIR_ISSET(pair, TO_USE); mutex_unlock(&ag->lock); ilogs(ice, LOG_DEBUG, "Sending %sICE/STUN request for candidate pair "PAIR_FORMAT" from %s to %s%s%s", PAIR_ISSET(pair, TO_USE) ? "nominating " : "", PAIR_FMT(pair), sockaddr_print_buf(&pair->local_intf->spec->local_address.addr), FMT_M(endpoint_print_buf(&pair->remote_candidate->endpoint))); stun_binding_request(&pair->remote_candidate->endpoint, transact, &ag->pwd[0], ag->ufrag, AGENT_ISSET(ag, CONTROLLING), tie_breaker, prio, &sfd->socket, PAIR_ISSET(pair, TO_USE)); } static int __component_find(const void *a, const void *b) { const struct ice_candidate_pair *A = a; unsigned int comp = GPOINTER_TO_UINT(b); if (A->remote_candidate->component_id == comp) return TRUE; return FALSE; } static struct ice_candidate_pair *__get_pair_by_component(GTree *t, unsigned int component) { return g_tree_find_first(t, __component_find, GUINT_TO_POINTER(component)); } static void __get_pairs_by_component(candidate_pair_q *out, GTree *t, unsigned int component) { g_tree_find_all(&out->q, t, __component_find, GUINT_TO_POINTER(component)); } static void __get_complete_succeeded_pairs(candidate_pair_q *out, struct ice_agent *ag) { __get_complete_components(out, ag, ag->succeeded_pairs, ICE_PAIR_SUCCEEDED); } static void __get_complete_valid_pairs(candidate_pair_q *out, struct ice_agent *ag) { __get_complete_components(out, ag, ag->valid_pairs, ICE_PAIR_VALID); } static void __nominate_pairs(struct ice_agent *ag) { candidate_pair_q complete; struct ice_candidate_pair *pair; ilogs(ice, LOG_DEBUG, "Start nominating ICE pairs"); AGENT_SET(ag, NOMINATING); ZERO(ag->start_nominating); __get_complete_succeeded_pairs(&complete, ag); for (__auto_type l = complete.head; l; l = l->next) { pair = l->data; ilogs(ice, LOG_DEBUG, "Nominating ICE pair "PAIR_FORMAT, PAIR_FMT(pair)); PAIR_CLEAR(pair, IN_PROGRESS); PAIR_SET2(pair, NOMINATED, TO_USE); pair->retransmits = 0; __new_stun_transaction(pair); t_queue_push_tail(&ag->triggered, pair); } t_queue_clear(&complete); } /* call must be locked R or W, agent must not be locked */ static void __do_ice_checks(struct ice_agent *ag) { struct ice_candidate_pair *pair, *highest = NULL, *frozen = NULL, *valid; stream_fd *sfd; GQueue retransmits = G_QUEUE_INIT; struct timeval next_run = {0,0}; int have_more = 0; if (!ag) { ilogs(ice, LOG_ERR, "ice ag is NULL"); return; } if (!ag->pwd[0].s) return; atomic64_set_na(&ag->last_activity, rtpe_now.tv_sec); __DBG("running checks, call "STR_FORMAT" tag "STR_FORMAT"", STR_FMT(&ag->call->callid), STR_FMT(&ag->media->monologue->tag)); mutex_lock(&ag->lock); /* check if we're done and should start nominating pairs */ if (AGENT_ISSET(ag, CONTROLLING) && !AGENT_ISSET(ag, NOMINATING) && ag->start_nominating.tv_sec) { if (timeval_cmp(&rtpe_now, &ag->start_nominating) >= 0) __nominate_pairs(ag); timeval_lowest(&next_run, &ag->start_nominating); } /* triggered checks are preferred */ pair = t_queue_pop_head(&ag->triggered); if (pair) { __DBG("running triggered check on " PAIR_FORMAT, PAIR_FMT(pair)); PAIR_CLEAR(pair, TRIGGERED); next_run = rtpe_now; goto check; } /* find the highest-priority non-frozen non-in-progress pair */ for (__auto_type l = ag->all_pairs_list.head; l; l = l->next) { pair = l->data; __DBG("considering checking " PAIR_FORMAT, PAIR_FMT(pair)); /* skip dead streams */ sfd = pair->sfd; if (!sfd || !sfd->stream || !sfd->stream->selected_sfd) continue; if (PAIR_ISSET(pair, FAILED)) continue; if (PAIR_ISSET(pair, SUCCEEDED) && !PAIR_ISSET(pair, TO_USE)) continue; valid = __get_pair_by_component(ag->valid_pairs, pair->remote_candidate->component_id); if (PAIR_ISSET(pair, IN_PROGRESS)) { /* handle retransmits */ /* but only if our priority is lower than any valid pair */ if (valid && valid->pair_priority > pair->pair_priority) continue; if (timeval_cmp(&pair->retransmit, &rtpe_now) <= 0) g_queue_push_tail(&retransmits, pair); /* can't run check directly due to locks */ else timeval_lowest(&next_run, &pair->retransmit); continue; } /* don't do anything else if we already have a valid pair */ if (valid) continue; /* or if we're in or past the final phase */ if (AGENT_ISSET2(ag, NOMINATING, COMPLETED)) continue; have_more = 1; /* remember the first frozen pair in case we find nothing else */ if (PAIR_ISSET(pair, FROZEN)) { __DBG("pair " PAIR_FORMAT " is frozen", PAIR_FMT(pair)); if (!frozen) frozen = pair; continue; } if (!highest) highest = pair; } if (highest) { pair = highest; __DBG("checking highest priority pair " PAIR_FORMAT, PAIR_FMT(pair)); } else if (frozen) { pair = frozen; __DBG("checking highest priority frozen pair " PAIR_FORMAT, PAIR_FMT(pair)); } else pair = NULL; check: mutex_unlock(&ag->lock); if (pair) __do_ice_check(pair); while ((pair = g_queue_pop_head(&retransmits))) __do_ice_check(pair); /* determine when to run next */ if (have_more) __agent_schedule(ag, 0); else if (next_run.tv_sec) __agent_schedule_abs(ag, &next_run); /* for retransmits */ } static void __agent_shutdown(struct ice_agent *ag) { ilogs(ice, LOG_DEBUG, "Shutting down ICE agent (nothing to do)"); __agent_deschedule(ag); } /* agent must be locked for these */ static struct ice_candidate *__cand_lookup(struct ice_agent *ag, const endpoint_t *sin, unsigned int component) { struct ice_candidate d; d.endpoint = *sin; d.component_id = component; return t_hash_table_lookup(ag->candidate_hash, &d); } static struct ice_candidate *__foundation_lookup(struct ice_agent *ag, const str *foundation, unsigned int component) { struct ice_candidate d; d.foundation = *foundation; d.component_id = component; return t_hash_table_lookup(ag->foundation_hash, &d); } static struct ice_candidate_pair *__pair_lookup(struct ice_agent *ag, struct ice_candidate *cand, const struct local_intf *ifa) { struct ice_candidate_pair p; p.local_intf = ifa; p.remote_candidate = cand; return t_hash_table_lookup(ag->pair_hash, &p); } static void __cand_ice_foundation(call_t *call, struct ice_candidate *cand) { char buf[64]; int len; len = sprintf(buf, "%x%x%x", endpoint_hash(&cand->endpoint), cand->type, g_direct_hash(cand->transport)); call_str_cpy_len(call, &cand->foundation, buf, len); } /* agent must be locked */ static struct ice_candidate_pair *__learned_candidate(struct ice_agent *ag, stream_fd *sfd, const endpoint_t *src, unsigned long priority) { struct ice_candidate *cand, *old_cand; struct ice_candidate_pair *pair; call_t *call = ag->call; struct packet_stream *ps = sfd->stream; cand = g_slice_alloc0(sizeof(*cand)); cand->component_id = ps->component; cand->transport = sfd->local_intf->spec->local_address.type; // XXX add socket type into socket_t? cand->priority = priority; cand->endpoint = *src; cand->type = ICT_PRFLX; // check if we've already learned another candidate that belongs to this one. use the priority number // together with the component to guess a matching other candidate. unsigned long prio_base = priority + ps->component; struct ice_candidate *known_cand = NULL; for (unsigned int comp = 1; comp <= ag->active_components; comp++) { if (comp == ps->component) continue; unsigned long prio = prio_base - comp; known_cand = t_hash_table_lookup(ag->cand_prio_hash, GUINT_TO_POINTER(prio)); if (known_cand) break; } if (known_cand) { // got one. use the previously learned generated ICE foundation string also for this one: cand->foundation = known_cand->foundation; } else { // make new: __cand_ice_foundation(call, cand); } old_cand = __foundation_lookup(ag, &cand->foundation, ps->component); if (old_cand && old_cand->priority > priority) { /* this is possible if two distinct requests are received from the same NAT IP * address, but from different ports. we cannot distinguish such candidates and * will drop the one with the lower priority */ g_slice_free1(sizeof(*cand), cand); pair = __pair_lookup(ag, old_cand, sfd->local_intf); if (pair) goto out; /* nothing to do */ cand = old_cand; goto pair; } t_queue_push_tail(&ag->remote_candidates, cand); t_hash_table_insert(ag->candidate_hash, cand, cand); t_hash_table_insert(ag->cand_prio_hash, GUINT_TO_POINTER(cand->priority), cand); t_hash_table_insert(ag->foundation_hash, cand, cand); pair: pair = __pair_candidate(sfd, ag, cand); PAIR_SET(pair, LEARNED); __all_pairs_list(ag); out: return pair; } /* agent must NOT be locked */ static void __trigger_check(struct ice_candidate_pair *pair) { struct ice_agent *ag = pair->agent; ilogs(ice, LOG_DEBUG, "Triggering check for "PAIR_FORMAT, PAIR_FMT(pair)); mutex_lock(&ag->lock); pair->retransmits = 0; if (PAIR_CLEAR(pair, FAILED)) PAIR_CLEAR(pair, IN_PROGRESS); if (ag->triggered.length < 4 * MAX_ICE_CANDIDATES && !PAIR_SET(pair, TRIGGERED)) t_queue_push_tail(&ag->triggered, pair); mutex_unlock(&ag->lock); __agent_schedule(ag, 0); } /* agent must be locked */ /* also regenerates all_pairs_list */ static void __recalc_pair_prios(struct ice_agent *ag) { struct ice_candidate_pair *pair; GQueue nominated, valid, succ, all; ilogs(ice, LOG_DEBUG, "Recalculating all ICE pair priorities"); g_tree_find_remove_all(&nominated, ag->nominated_pairs); g_tree_find_remove_all(&succ, ag->succeeded_pairs); g_tree_find_remove_all(&valid, ag->valid_pairs); g_tree_find_remove_all(&all, ag->all_pairs); for (__auto_type l = ag->candidate_pairs.head; l; l = l->next) { pair = l->data; __do_ice_pair_priority(pair); /* this changes the packets, so we must keep these from being seen as retransmits */ __new_stun_transaction(pair); } g_tree_add_all(ag->nominated_pairs, &nominated, __tree_coll_callback); g_tree_add_all(ag->succeeded_pairs, &succ, __tree_coll_callback); g_tree_add_all(ag->valid_pairs, &valid, __tree_coll_callback); g_tree_add_all(ag->all_pairs, &all, __tree_coll_callback); __all_pairs_list(ag); } /* agent must NOT be locked */ static void __role_change(struct ice_agent *ag, int new_controlling) { if (new_controlling && !AGENT_SET(ag, CONTROLLING)) ; else if (!new_controlling && AGENT_CLEAR(ag, CONTROLLING)) ; else return; ilogs(ice, LOG_DEBUG, "ICE role change, now %s", new_controlling ? "controlling" : "controlled"); /* recalc priorities and resort list */ mutex_lock(&ag->lock); __recalc_pair_prios(ag); mutex_unlock(&ag->lock); } /* initializes "out" */ static void __get_complete_components(candidate_pair_q *out, struct ice_agent *ag, GTree *t, unsigned int flag) { candidate_pair_q compo1 = TYPED_GQUEUE_INIT; struct ice_candidate_pair *pair1, *pairX; struct ice_candidate *cand; unsigned int i; __get_pairs_by_component(&compo1, t, 1); t_queue_init(out); for (__auto_type l = compo1.head; l; l = l->next) { pair1 = l->data; t_queue_clear(out); t_queue_push_tail(out, pair1); for (i = 2; i <= ag->active_components; i++) { cand = __foundation_lookup(ag, &pair1->remote_candidate->foundation, i); if (!cand) goto next_foundation; pairX = __pair_lookup(ag, cand, pair1->local_intf); if (!pairX) goto next_foundation; if (!bf_isset(&pairX->pair_flags, flag)) goto next_foundation; t_queue_push_tail(out, pairX); } goto found; next_foundation: ; } /* nothing found */ t_queue_clear(out); found: t_queue_clear(&compo1); } /* call(W) or call(R)+agent must be locked - no in_lock or out_lock must be held */ static int __check_valid(struct ice_agent *ag) { struct call_media *media; struct packet_stream *ps; packet_stream_list *l; candidate_pair_list *k; candidate_pair_q all_compos; struct ice_candidate_pair *pair; // const struct local_intf *ifa; stream_fd *sfd; int is_complete = 1; if (!ag) { ilogs(ice, LOG_ERR, "ice ag is NULL"); return 0; } media = ag->media; __get_complete_valid_pairs(&all_compos, ag); if (!all_compos.length) { is_complete = 0; __get_complete_succeeded_pairs(&all_compos, ag); if (!all_compos.length) { ilogs(ice, LOG_DEBUG, "ICE not completed yet and no usable candidates"); return 0; } } pair = all_compos.head->data; if (is_complete) { ilogs(ice, LOG_DEBUG, "ICE completed, using pair " PAIR_FORMAT, PAIR_FMT(pair)); AGENT_SET(ag, COMPLETED); } else { ilogs(ice, LOG_DEBUG, "ICE not completed yet, but can use pair " PAIR_FORMAT, PAIR_FMT(pair)); AGENT_SET(ag, USABLE); } for (l = media->streams.head, k = all_compos.head; l && k; l = l->next, k = k->next) { ps = l->data; pair = k->data; mutex_lock(&ps->out_lock); if (memcmp(&ps->endpoint, &pair->remote_candidate->endpoint, sizeof(ps->endpoint))) { ilogs(ice, LOG_INFO, "ICE negotiated: new peer for component %u is %s%s%s", ps->component, FMT_M(endpoint_print_buf(&pair->remote_candidate->endpoint))); ps->endpoint = pair->remote_candidate->endpoint; PS_SET(ps, FILLED); } else ilogs(ice, LOG_INFO, "ICE negotiated: peer for component %u is %s%s%s", ps->component, FMT_M(endpoint_print_buf(&pair->remote_candidate->endpoint))); mutex_unlock(&ps->out_lock); for (__auto_type m = ps->sfds.head; m; m = m->next) { sfd = m->data; if (sfd->local_intf != pair->local_intf) continue; ps->selected_sfd = sfd; if (ps->component == 1) ilogs(ice, LOG_INFO, "ICE negotiated: local interface %s", sockaddr_print_buf(&pair->local_intf->spec->local_address.addr)); break; } } call_media_unkernelize(media, "ICE negotiation event"); t_queue_clear(&all_compos); return 1; } /* call is locked in R */ /* return values: * 1 = ICE completed, interfaces selected * 0 = packet processed * -1 = generic error, process packet as normal * -2 = role conflict */ int ice_request(stream_fd *sfd, const endpoint_t *src, struct stun_attrs *attrs) { struct packet_stream *ps = sfd->stream; struct call_media *media = ps->media; struct ice_agent *ag; const char *err; struct ice_candidate *cand; struct ice_candidate_pair *pair; int ret; __DBG("received ICE request from %s on %s", endpoint_print_buf(src), endpoint_print_buf(&sfd->socket.local)); ag = media->ice_agent; if (!ag) return -1; atomic64_set_na(&ag->last_activity, rtpe_now.tv_sec); /* determine candidate pair */ { LOCK(&ag->lock); cand = __cand_lookup(ag, src, ps->component); if (!cand) pair = __learned_candidate(ag, sfd, src, attrs->priority); else pair = __pair_lookup(ag, cand, sfd->local_intf); err = "Failed to determine ICE candidate from STUN request"; if (!pair) goto err; } if (!AGENT_ISSET(ag, LITE_SELF)) { /* determine role conflict */ if (attrs->controlling && AGENT_ISSET(ag, CONTROLLING)) { if (tie_breaker >= attrs->tiebreaker) return -2; else __role_change(ag, 0); } else if (attrs->controlled && !AGENT_ISSET(ag, CONTROLLING)) { if (tie_breaker >= attrs->tiebreaker) __role_change(ag, 1); else return -2; } } else PAIR_SET(pair, SUCCEEDED); if (PAIR_ISSET(pair, SUCCEEDED)) ; else __trigger_check(pair); ret = 0; if (attrs->use && !PAIR_SET(pair, NOMINATED)) { ilogs(ice, LOG_DEBUG, "ICE pair "PAIR_FORMAT" has been nominated by peer", PAIR_FMT(pair)); LOCK(&ag->lock); // coverity[use : FALSE] g_tree_insert_coll(ag->nominated_pairs, pair, pair, __tree_coll_callback); if (PAIR_ISSET(pair, SUCCEEDED)) { PAIR_SET(pair, VALID); g_tree_insert_coll(ag->valid_pairs, pair, pair, __tree_coll_callback); } if (!AGENT_ISSET(ag, CONTROLLING)) ret = __check_valid(ag); } return ret; err: ilogs(ice, LOG_NOTICE | LOG_FLAG_LIMIT, "%s (from %s%s%s on interface %s)", err, FMT_M(endpoint_print_buf(src)), endpoint_print_buf(&sfd->socket.local)); return 0; } static int __check_succeeded_complete(struct ice_agent *ag) { candidate_pair_q complete; int ret; __get_complete_succeeded_pairs(&complete, ag); if (complete.length) { struct ice_candidate_pair *pair = complete.head->data; ilogs(ice, LOG_DEBUG, "Best succeeded ICE pair with all components is "PAIR_FORMAT, PAIR_FMT(pair)); ret = 1; } else { ilogs(ice, LOG_DEBUG, "No succeeded ICE pairs with all components yet"); ret = 0; } t_queue_clear(&complete); return ret; } /* call is locked in R */ int ice_response(stream_fd *sfd, const endpoint_t *src, struct stun_attrs *attrs, void *transaction) { struct ice_candidate_pair *pair, *opair; struct ice_agent *ag; struct packet_stream *ps = sfd->stream; struct call_media *media = ps->media; const char *err; unsigned int component; struct ice_candidate *cand; const struct local_intf *ifa; int ret, was_ctl; __DBG("received ICE response from %s on %s", endpoint_print_buf(src), endpoint_print_buf(&sfd->socket.local)); ag = media->ice_agent; if (!ag) return -1; atomic64_set_na(&ag->last_activity, rtpe_now.tv_sec); { LOCK(&ag->lock); pair = t_hash_table_lookup(ag->transaction_hash, transaction); err = "ICE/STUN response with unknown transaction received"; if (!pair) goto err; was_ctl = pair->was_controlling; } ifa = pair->local_intf; ilogs(ice, LOG_DEBUG, "Received ICE/STUN response code %u for candidate pair "PAIR_FORMAT" from %s%s%s to %s", attrs->error_code, PAIR_FMT(pair), FMT_M(endpoint_print_buf(&pair->remote_candidate->endpoint)), sockaddr_print_buf(&ifa->spec->local_address.addr)); /* verify endpoints */ err = "ICE/STUN response received, but source address didn't match remote candidate address"; if (!endpoint_eq(src, &pair->remote_candidate->endpoint)) goto err; err = "ICE/STUN response received, but destination address didn't match local interface address"; if (pair->sfd != sfd) goto err; PAIR_CLEAR(pair, IN_PROGRESS); ret = 0; /* handle all errors */ if (attrs->error_code) { err = "ICE/STUN error received"; if (attrs->error_code != 487) goto err; __role_change(ag, !was_ctl); __trigger_check(pair); goto out; } /* we don't discover peer reflexive here (RFC 5245 7.1.3.2.1) as we don't expect to be behind NAT */ /* we also skip parts of 7.1.3.2.2 as we don't do server reflexive */ { LOCK(&ag->lock); /* check if we're in the final (controlling) phase */ if (pair->was_nominated && PAIR_CLEAR(pair, TO_USE)) { ilogs(ice, LOG_DEBUG, "Setting nominated ICE candidate pair "PAIR_FORMAT" as valid", PAIR_FMT(pair)); PAIR_SET(pair, VALID); g_tree_insert_coll(ag->valid_pairs, pair, pair, __tree_coll_callback); ret = __check_valid(ag); goto out; } if (PAIR_SET(pair, SUCCEEDED)) goto out; ilogs(ice, LOG_DEBUG, "Setting ICE candidate pair "PAIR_FORMAT" as succeeded", PAIR_FMT(pair)); g_tree_insert_coll(ag->succeeded_pairs, pair, pair, __tree_coll_callback); if (!ag->start_nominating.tv_sec) { if (__check_succeeded_complete(ag)) { ag->start_nominating = rtpe_now; timeval_add_usec(&ag->start_nominating, 100000); __agent_schedule_abs(ag, &ag->start_nominating); } } /* now unfreeze all other pairs from the same foundation */ for (component = 1; component <= MAX_COMPONENTS; component++) { if (component == ps->component) continue; cand = __foundation_lookup(ag, &pair->remote_candidate->foundation, component); if (!cand) continue; opair = __pair_lookup(ag, cand, ifa); if (!opair) continue; if (PAIR_ISSET(opair, FAILED)) continue; if (!PAIR_CLEAR(opair, FROZEN)) continue; ilogs(ice, LOG_DEBUG, "Unfreezing related ICE pair "PAIR_FORMAT, PAIR_FMT(opair)); } /* if this was previously nominated by the peer, it's now valid */ if (PAIR_ISSET(pair, NOMINATED)) { PAIR_SET(pair, VALID); g_tree_insert_coll(ag->valid_pairs, pair, pair, __tree_coll_callback); } ret = __check_valid(ag); } out: return ret; err: if (err) ilogs(ice, LOG_NOTICE | LOG_FLAG_LIMIT, "%s (from %s%s%s on interface %s)", err, FMT_M(endpoint_print_buf(src)), endpoint_print_buf(&sfd->socket.local)); if (pair && attrs->error_code) __fail_pair(pair); return 0; } void ice_thread_launch(void) { timerthread_launch(&ice_agents_timer_thread, NULL, 0, "ICE"); } static void ice_agents_timer_run(void *ptr) { struct ice_agent *ag = ptr; call_t *call; call = ag->call; log_info_ice_agent(ag); rwlock_lock_r(&call->master_lock); /* and run our checks */ __do_ice_checks(ag); /* finally, release our reference and start over */ log_info_pop(); rwlock_unlock_r(&call->master_lock); } static void random_ice_string(char *buf, int len) { while (len--) *buf++ = ice_chars[ssl_random() % strlen(ice_chars)]; } static void create_random_ice_string(call_t *call, str *s, int len) { char buf[30]; assert(len < sizeof(buf)); if (s->s) return; random_ice_string(buf, len); call_str_cpy_len(call, s, buf, len); } void ice_foundation(str *s) { str_init_len(s, malloc(ICE_FOUNDATION_LENGTH), ICE_FOUNDATION_LENGTH); random_ice_string(s->s, ICE_FOUNDATION_LENGTH); } void ice_remote_candidates(candidate_q *out, struct ice_agent *ag) { candidate_pair_q all_compos; struct ice_candidate_pair *pair; t_queue_init(out); mutex_lock(&ag->lock); __get_complete_valid_pairs(&all_compos, ag); mutex_unlock(&ag->lock); for (__auto_type l = all_compos.head; l; l = l->next) { pair = l->data; t_queue_push_tail(out, pair->remote_candidate); } t_queue_clear(&all_compos); } bool ice_peer_address_known(struct ice_agent *ag, const endpoint_t *sin, struct packet_stream *ps, const struct local_intf *ifa) { LOCK(&ag->lock); struct ice_candidate *cand = __cand_lookup(ag, sin, ps->component); if (!cand) return false; struct ice_candidate_pair *pair = __pair_lookup(ag, cand, ifa); if (!pair) return false; if (!PAIR_ISSET(pair, VALID)) return false; return true; } rtpengine-mr12.5.1.22/daemon/iptables.c000066400000000000000000000223521474347554000176070ustar00rootroot00000000000000#include "iptables.h" #include "main.h" #include "str.h" int (*iptables_add_rule)(const socket_t *local_sock, const str *comment); int (*iptables_del_rule)(const socket_t *local_sock); #ifdef WITH_IPTABLES_OPTION #include #include #include #include #include #include #include #include #include #include #include #include #include #include "helpers.h" #include "log.h" #include "socket.h" #undef __ALIGN_KERNEL #define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof(x))(a) - 1) #define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask)) #undef XT_ALIGN #define XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _xt_align)) #ifndef XT_LOCK_NAME #define XT_LOCK_NAME "/run/xtables.lock" #endif struct ipt_matches { struct xt_entry_match udp_match; struct xt_udp udp; struct xt_entry_match comment_match; struct xt_comment_info comment; struct xt_standard_target target; }; struct ipv4_ipt_entry { struct ipt_entry entry; struct ipt_matches matches; }; struct ipv6_ipt_entry { struct ip6t_entry entry; struct ipt_matches matches; }; static mutex_t __xt_lock; static int __xt_lock_fd = -1; static void xt_lock(void) { mutex_lock(&__xt_lock); __xt_lock_fd = open(XT_LOCK_NAME, O_CREAT, 0600); if (__xt_lock_fd == -1) { ilog(LOG_WARN, "Could not open xtables lock file '%s': %s", XT_LOCK_NAME, strerror(errno)); // as per iptables source code, continue anyway return; } if (flock(__xt_lock_fd, LOCK_EX)) { ilog(LOG_WARN, "Failed to acquire lock file '%s': %s", XT_LOCK_NAME, strerror(errno)); close(__xt_lock_fd); __xt_lock_fd = -1; } } static void xt_unlock(void) { if (__xt_lock_fd != -1) close(__xt_lock_fd); __xt_lock_fd = -1; // coverity[missing_lock : FALSE] mutex_unlock(&__xt_lock); } static void ip46tables_fill_matches(struct ipt_matches *matches, const socket_t *local_sock, const str *comment) { matches->target.target.u.user.target_size = XT_ALIGN(sizeof(struct xt_standard_target)); strcpy(matches->target.target.u.user.name, "ACCEPT"); strcpy(matches->udp_match.u.user.name, "udp"); matches->udp_match.u.match_size = XT_ALIGN(sizeof(struct xt_entry_match)) + XT_ALIGN(sizeof(struct xt_udp)); matches->udp.dpts[0] = matches->udp.dpts[1] = local_sock->local.port; matches->udp.spts[0] = 0; matches->udp.spts[1] = 0xffff; matches->comment_match.u.match_size = XT_ALIGN(sizeof(struct xt_entry_match)) + XT_ALIGN(sizeof(struct xt_comment_info)); strcpy(matches->comment_match.u.user.name, "comment"); if (comment) str_ncpy(matches->comment.comment, sizeof(matches->comment.comment), comment); } static void ip4_fill_entry(struct ipv4_ipt_entry *entry, const socket_t *local_sock, const str *comment) { ZERO(*entry); entry->entry.ip.proto = IPPROTO_UDP; entry->entry.ip.dst = local_sock->local.address.ipv4; memset(&entry->entry.ip.dmsk, 0xff, sizeof(entry->entry.ip.dmsk)); entry->entry.target_offset = G_STRUCT_OFFSET(struct ipv4_ipt_entry, matches.target); ip46tables_fill_matches(&entry->matches, local_sock, comment); entry->entry.next_offset = entry->entry.target_offset + entry->matches.target.target.u.user.target_size; } static void ip6_fill_entry(struct ipv6_ipt_entry *entry, const socket_t *local_sock, const str *comment) { ZERO(*entry); entry->entry.ipv6.proto = IPPROTO_UDP; entry->entry.ipv6.dst = local_sock->local.address.ipv6; entry->entry.ipv6.flags |= IP6T_F_PROTO; memset(&entry->entry.ipv6.dmsk, 0xff, sizeof(entry->entry.ipv6.dmsk)); entry->entry.target_offset = G_STRUCT_OFFSET(struct ipv6_ipt_entry, matches.target); ip46tables_fill_matches(&entry->matches, local_sock, comment); entry->entry.next_offset = entry->entry.target_offset + entry->matches.target.target.u.user.target_size; } static const char *ip4tables_add_rule(const socket_t *local_sock, const str *comment) { struct xtc_handle *h; struct ipv4_ipt_entry entry; const char *err; xt_lock(); err = "could not initialize iptables"; h = iptc_init("filter"); if (!h) goto err2; ip4_fill_entry(&entry, local_sock, comment); err = "failed to append iptables entry"; if (!iptc_append_entry(rtpe_config.iptables_chain, &entry.entry, h)) goto err; err = "failed to commit iptables changes"; if (!iptc_commit(h)) goto err; err = NULL; err: iptc_free(h); err2: xt_unlock(); return err; } static const char *ip6tables_add_rule(const socket_t *local_sock, const str *comment) { struct xtc_handle *h; struct ipv6_ipt_entry entry; const char *err; xt_lock(); err = "could not initialize ip6tables"; h = ip6tc_init("filter"); if (!h) goto err2; ip6_fill_entry(&entry, local_sock, comment); err = "failed to append ip6tables entry"; if (!ip6tc_append_entry(rtpe_config.iptables_chain, &entry.entry, h)) goto err; err = "failed to commit ip6tables changes"; if (!ip6tc_commit(h)) goto err; err = NULL; err: ip6tc_free(h); err2: xt_unlock(); return err; } static const char *ip4tables_del_rule(const socket_t *local_sock) { struct xtc_handle *h; struct ipv4_ipt_entry entry, mask; const char *err; xt_lock(); err = "could not initialize iptables"; h = iptc_init("filter"); if (!h) goto err2; ip4_fill_entry(&entry, local_sock, NULL); // match everything except the comment memset(&mask, 0, sizeof(mask)); memset(&mask.entry, 0xff, sizeof(mask.entry)); memset(&mask.matches.udp_match, 0xff, sizeof(mask.matches.udp_match)); memset(&mask.matches.udp, 0xff, sizeof(mask.matches.udp)); memset(&mask.matches.comment_match, 0xff, sizeof(mask.matches.comment_match)); memset(&mask.matches.target, 0xff, sizeof(mask.matches.target)); err = "failed to delete iptables entry"; if (!iptc_delete_entry(rtpe_config.iptables_chain, &entry.entry, (unsigned char *) &mask, h)) goto err; err = "failed to commit iptables changes"; if (!iptc_commit(h)) goto err; err = NULL; err: iptc_free(h); err2: xt_unlock(); return err; } static const char *ip6tables_del_rule(const socket_t *local_sock) { struct xtc_handle *h; struct ipv6_ipt_entry entry, mask; const char *err; xt_lock(); err = "could not initialize ip6tables"; h = ip6tc_init("filter"); if (!h) goto err2; ip6_fill_entry(&entry, local_sock, NULL); // match everything except the comment memset(&mask, 0, sizeof(mask)); memset(&mask.entry, 0xff, sizeof(mask.entry)); memset(&mask.matches.udp_match, 0xff, sizeof(mask.matches.udp_match)); memset(&mask.matches.udp, 0xff, sizeof(mask.matches.udp)); memset(&mask.matches.comment_match, 0xff, sizeof(mask.matches.comment_match)); memset(&mask.matches.target, 0xff, sizeof(mask.matches.target)); err = "failed to delete ip6tables entry"; if (!ip6tc_delete_entry(rtpe_config.iptables_chain, &entry.entry, (unsigned char *) &mask, h)) goto err; err = "failed to commit ip6tables changes"; if (!ip6tc_commit(h)) goto err; err = NULL; err: ip6tc_free(h); err2: xt_unlock(); return err; } static int __iptables_add_rule(const socket_t *local_sock, const str *comment) { const char *err; switch (local_sock->family->af) { case AF_INET: err = ip4tables_add_rule(local_sock, comment); break; case AF_INET6: err = ip6tables_add_rule(local_sock, comment); break; default: err = "unsupported socket family"; break; }; if (err) ilog(LOG_ERROR, "Error adding iptables rule (for '" STR_FORMAT_M "'): %s (%s)", STR_FMT_M(comment), err, strerror(errno)); return 0; } static int __iptables_del_rule(const socket_t *local_sock) { const char *err; if (!local_sock || !local_sock->family) return 0; switch (local_sock->family->af) { case AF_INET: err = ip4tables_del_rule(local_sock); break; case AF_INET6: err = ip6tables_del_rule(local_sock); break; default: err = "unsupported socket family"; break; }; if (err) ilog(LOG_ERROR, "Error deleting iptables rule: %s (%s)", err, strerror(errno)); return 0; } #endif // WITH_IPTABLES_OPTION static int __iptables_stub(void) { return 0; } void iptables_init(void) { if (rtpe_config.iptables_chain && !rtpe_config.iptables_chain[0]) rtpe_config.iptables_chain = NULL; if (!rtpe_config.iptables_chain) { iptables_add_rule = (void *) __iptables_stub; iptables_del_rule = (void *) __iptables_stub; return; } #ifdef WITH_IPTABLES_OPTION mutex_init(&__xt_lock); iptables_add_rule = __iptables_add_rule; iptables_del_rule = __iptables_del_rule; // flush chains const char *err; struct xtc_handle *h; xt_lock(); err = "could not initialize iptables"; h = iptc_init("filter"); if (!h) goto out; err = "could not flush iptables chain"; if (!iptc_flush_entries(rtpe_config.iptables_chain, h)) goto err2; err = "could not commit iptables changes"; if (!iptc_commit(h)) goto err2; iptc_free(h); err = "could not initialize ip6tables"; h = ip6tc_init("filter"); if (!h) goto out; err = "could not flush ip6tables chain"; if (!ip6tc_flush_entries(rtpe_config.iptables_chain, h)) goto err1; err = "could not commit iptables changes"; if (!ip6tc_commit(h)) goto err1; ip6tc_free(h); err = NULL; goto out; err1: ip6tc_free(h); goto out; err2: iptc_free(h); goto out; out: xt_unlock(); if (err) ilog(LOG_ERROR, "Failed to flush iptables chain: %s (%s)", err, strerror(errno)); #endif // WITH_IPTABLES_OPTION } rtpengine-mr12.5.1.22/daemon/janus.c000066400000000000000000001600521474347554000171240ustar00rootroot00000000000000#include "janus.h" #include #include #include "websocket.h" #include "log.h" #include "main.h" #include "obj.h" #include "call.h" #include "sdp.h" #include "call_interfaces.h" #include "rtplib.h" #include "ice.h" #include "log_funcs.h" TYPED_GHASHTABLE(janus_handles_set, uint64_t, void, int64_hash, int64_eq, NULL, NULL) TYPED_DIRECT_FUNCS(websocket_conn_direct_hash, websocket_conn_direct_eq, struct websocket_conn) TYPED_GHASHTABLE(janus_websockets_ht, struct websocket_conn, struct websocket_conn, websocket_conn_direct_hash, websocket_conn_direct_eq, NULL, NULL) struct janus_session { // "login" session struct obj obj; uint64_t id; mutex_t lock; time_t last_act; janus_websockets_ht websockets; // controlling transports, websocket_conn -> websocket_conn janus_handles_set handles; // handle ID -> 0x1. handle ID owned by janus_handles }; TYPED_GHASHTABLE(janus_sessions_ht, uint64_t, struct janus_session, int64_hash, int64_eq, NULL, __obj_put) struct janus_handle { // corresponds to a conference participant uint64_t id; struct janus_session *session; // holds a reference uint64_t room; }; TYPED_GHASHTABLE(janus_handles_ht, uint64_t, struct janus_handle, int64_hash, int64_eq, NULL, NULL) TYPED_GHASHTABLE(janus_feeds_ht, uint64_t, uint64_t, int64_hash, int64_eq, g_free, g_free) struct janus_room { uint64_t id; str call_id; int num_publishers; uint64_t handle_id; // controlling handle which created the room janus_feeds_ht publishers; // handle ID -> feed ID janus_feeds_ht subscribers; // handle ID -> subscribed feed ID janus_feeds_ht feeds; // feed ID -> handle ID }; TYPED_GHASHTABLE(janus_rooms_ht, uint64_t, struct janus_room, int64_hash, int64_eq, NULL, NULL) TYPED_GHASHTABLE(janus_tokens_ht, char, time_t, c_str_hash, c_str_equal, g_free, g_free) static mutex_t janus_lock; static janus_tokens_ht janus_tokens; // auth tokens, currently mostly unused static janus_sessions_ht janus_sessions; // session ID -> session. holds a session reference static janus_handles_ht janus_handles; // handle ID -> handle static janus_rooms_ht janus_rooms; // room ID -> room static void __janus_session_free(void *p) { struct janus_session *s = p; if (t_hash_table_size(s->websockets) != 0) ilog(LOG_WARN, "Janus session is leaking %i WS references", t_hash_table_size(s->websockets)); t_hash_table_destroy(s->websockets); if (t_hash_table_size(s->handles) != 0) ilog(LOG_WARN, "Janus session is leaking %i handle references", t_hash_table_size(s->handles)); t_hash_table_destroy(s->handles); mutex_destroy(&s->lock); } // XXX we have several hash tables that hold references to objs - unify all these static struct janus_session *janus_get_session(uint64_t id) { mutex_lock(&janus_lock); struct janus_session *ret = t_hash_table_lookup(janus_sessions, &id); if (ret) obj_hold(ret); mutex_unlock(&janus_lock); if (!ret) return NULL; mutex_lock(&ret->lock); ret->last_act = rtpe_now.tv_sec; mutex_unlock(&ret->lock); return ret; } static uint64_t *uint64_dup(uint64_t u) { uint64_t *ret = g_malloc(sizeof(*ret)); *ret = u; return ret; } INLINE uint64_t janus_random(void) { return ssl_random() & 0x7ffffffffffffLL; } static uint64_t jr_str_int(JsonReader *r) { uint64_t ret = json_reader_get_int_value(r); if (ret) return ret; const char *s = json_reader_get_string_value(r); if (!s || !*s) return 0; char *ep; ret = strtoull(s, &ep, 10); if (*ep) return 0; return ret; } static struct call_monologue *janus_get_monologue(uint64_t handle_id, call_t *call, struct call_monologue *(*fn)(call_t *, const str *)) { g_autoptr(char) handle_buf = NULL; handle_buf = g_strdup_printf("%" PRIu64, handle_id); str handle_str = STR_INIT(handle_buf); return fn(call, &handle_str); } // frees 'builder' // sends a single final response message to a received websocket message. requires a response code static void janus_send_json_sync_response(struct websocket_message *wm, JsonBuilder *builder, int code) { char *result = glib_json_print(builder); if (wm->method == M_WEBSOCKET) websocket_write_text(wm->wc, result, true); else { websocket_http_response(wm->wc, code, "application/json", strlen(result)); websocket_write_http(wm->wc, result, true); } g_free(result); } // frees 'builder' // sends an asynchronous notification to all websockets connected to a session // session must be locked already static void janus_send_json_async(struct janus_session *session, JsonBuilder *builder) { char *result = glib_json_print(builder); janus_websockets_ht_iter iter; t_hash_table_iter_init(&iter, session->websockets); struct websocket_conn *wc; while (t_hash_table_iter_next(&iter, NULL, &wc)) { // lock order constraint: janus_session lock first, websocket_conn lock second websocket_write_text(wc, result, true); } g_free(result); } // session is locked static void janus_send_ack(struct websocket_message *wm, const char *transaction, struct janus_session *session) { // build and send an early ack JsonBuilder *ack = json_builder_new(); json_builder_begin_object(ack); // { json_builder_set_member_name(ack, "janus"); json_builder_add_string_value(ack, "ack"); json_builder_set_member_name(ack, "transaction"); json_builder_add_string_value(ack, transaction); json_builder_set_member_name(ack, "session_id"); json_builder_add_int_value(ack, session->id); json_builder_end_object(ack); // } janus_send_json_async(session, ack); } // returns g_malloc'd string INLINE char *janus_call_id(uint64_t room_id) { return g_strdup_printf("janus %" PRIu64, room_id); } // global janus_lock is held static const char *janus_videoroom_create(struct janus_session *session, struct janus_handle *handle, JsonBuilder *builder, JsonReader *reader, int *retcode) { *retcode = 436; if (handle->room != 0) return "User already exists in a room"; // create new videoroom struct janus_room *room = g_slice_alloc0(sizeof(*room)); if (json_reader_read_member(reader, "publishers")) room->num_publishers = jr_str_int(reader); json_reader_end_member(reader); if (room->num_publishers <= 0) room->num_publishers = 3; room->handle_id = handle->id; // controlling handle // XXX optimise for 64-bit archs room->publishers = janus_feeds_ht_new(); room->subscribers = janus_feeds_ht_new(); room->feeds = janus_feeds_ht_new(); uint64_t room_id = 0; if (json_reader_read_member(reader, "room")) { room_id = jr_str_int(reader); if (!room_id) return "Invalid room ID requested"; } json_reader_end_member(reader); if (room_id) { *retcode = 512; if (t_hash_table_lookup(janus_rooms, &room_id)) return "Requested room already exists"; } while (1) { if (!room_id) room_id = janus_random(); room->id = room_id; if (t_hash_table_lookup(janus_rooms, &room->id)) continue; room->call_id.s = janus_call_id(room_id); room->call_id.len = strlen(room->call_id.s); call_t *call = call_get_or_create(&room->call_id, true); if (!call) { ilog(LOG_WARN, "Call with reserved Janus ID '" STR_FORMAT "' already exists", STR_FMT(&room->call_id)); g_free(room->call_id.s); continue; } if (!call->created_from) call->created_from = "janus"; t_hash_table_insert(janus_rooms, &room->id, room); rwlock_unlock_w(&call->master_lock); obj_put(call); break; } handle->room = room_id; ilog(LOG_INFO, "Created new videoroom with ID %" PRIu64, room_id); json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "created"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "permanent"); json_builder_add_boolean_value(builder, false); return NULL; } // global janus_lock is held static const char *janus_videoroom_exists(struct janus_session *session, JsonBuilder *builder, uint64_t room_id) { struct janus_room *room = NULL; bool exists = false; if (room_id) room = t_hash_table_lookup(janus_rooms, &room_id); if (room) { call_t *call = call_get(&room->call_id); if (call) { exists = true; rwlock_unlock_w(&call->master_lock); obj_put(call); } } json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "success"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "exists"); json_builder_add_boolean_value(builder, exists); return NULL; } // global janus_lock is held static const char *janus_videoroom_destroy(struct janus_session *session, JsonBuilder *builder, int *retcode, uint64_t room_id) { struct janus_room *room = NULL; if (room_id) t_hash_table_steal_extended(janus_rooms, &room_id, NULL, &room); *retcode = 426; if (!room) return "No such room"; ilog(LOG_INFO, "Destroying videoroom with ID %" PRIu64, room_id); call_t *call = call_get(&room->call_id); // XXX if call is destroyed separately, room persist -> room should be destroyed too if (call) { rwlock_unlock_w(&call->master_lock); call_destroy(call); obj_put(call); } g_free(room->call_id.s); t_hash_table_destroy(room->publishers); t_hash_table_destroy(room->subscribers); t_hash_table_destroy(room->feeds); g_slice_free1(sizeof(*room), room); //XXX notify? json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "destroyed"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "permanent"); json_builder_add_boolean_value(builder, false); return NULL; } // adds fields "streams": [...] and "audio_codec" etc into the builder at the current position static void janus_add_publisher_details(JsonBuilder *builder, struct call_monologue *ml) { json_builder_set_member_name(builder, "streams"); json_builder_begin_array(builder); const char *a_codec = NULL, *v_codec = NULL; for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; const char *codec = NULL; for (__auto_type k = media->codecs.codec_prefs.head; k; k = k->next) { rtp_payload_type *pt = k->data; codec = pt->encoding.s; // XXX check codec support? break; } json_builder_begin_object(builder); json_builder_set_member_name(builder, "type"); json_builder_add_string_value(builder, media->type.s); json_builder_set_member_name(builder, "mindex"); json_builder_add_int_value(builder, media->index - 1); json_builder_set_member_name(builder, "mid"); if (media->media_id.s) json_builder_add_string_value(builder, media->media_id.s); else json_builder_add_null_value(builder); if (!MEDIA_ISSET2(media, SEND, RECV)) { json_builder_set_member_name(builder, "disabled"); json_builder_add_boolean_value(builder, true); } else if (codec) { json_builder_set_member_name(builder, "codec"); json_builder_add_string_value(builder, codec); if (media->type_id == MT_AUDIO && !a_codec) a_codec = codec; else if (media->type_id == MT_VIDEO && !v_codec) v_codec = codec; } json_builder_end_object(builder); } json_builder_end_array(builder); if (a_codec) { json_builder_set_member_name(builder, "audio_codec"); json_builder_add_string_value(builder, a_codec); } if (v_codec) { json_builder_set_member_name(builder, "video_codec"); json_builder_add_string_value(builder, v_codec); } // TODO add "display" } static void janus_publishers_list(JsonBuilder *builder, call_t *call, struct janus_room *room, uint64_t feed_id) { json_builder_begin_array(builder); // [ janus_feeds_ht_iter iter; t_hash_table_iter_init(&iter, room->publishers); uint64_t *feed_id_ptr, *handle_id_ptr; while (t_hash_table_iter_next(&iter, &handle_id_ptr, &feed_id_ptr)) { if (*feed_id_ptr == feed_id) // skip self continue; // get monologue struct call_monologue *ml = janus_get_monologue(*handle_id_ptr, call, call_get_monologue); if (!ml) continue; json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "id"); json_builder_add_int_value(builder, *feed_id_ptr); janus_add_publisher_details(builder, ml); json_builder_end_object(builder); // } } json_builder_end_array(builder); // ] } // global janus_lock is held static const char *janus_videoroom_join_sub(struct janus_handle *handle, struct janus_room *room, int *retcode, uint64_t feed_id, call_t *call, subscription_q *medias) { // does the feed actually exist? get the feed handle *retcode = 512; uint64_t *feed_handle = t_hash_table_lookup(room->feeds, &feed_id); if (!feed_handle) return "No such feed exists"; if (!t_hash_table_lookup(room->publishers, feed_handle)) return "No such feed handle exists"; // handle ID points to the subscribed feed t_hash_table_insert(room->subscribers, uint64_dup(handle->id), uint64_dup(feed_id)); // add the subscription struct call_monologue *source_ml = janus_get_monologue(*feed_handle, call, call_get_monologue); if (!source_ml) return "Feed not found"; for (int i = 0; i < source_ml->medias->len; i++) { struct call_media * media = source_ml->medias->pdata[i]; if (!media) continue; add_media_to_sub_list(medias, media, source_ml); } return NULL; } TYPED_GQUEUE(janus_ret_streams, uint64_t); static void janus_clear_ret_streams(janus_ret_streams_q *q) { uint64_t *id; while ((id = t_queue_pop_head(q))) g_slice_free1(sizeof(*id), id); } G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(janus_ret_streams_q, janus_clear_ret_streams); static int int64_cmp(const uint64_t *a, const void *b) { return !(*a == *(uint64_t *) b); } // global janus_lock is held static const char *janus_videoroom_join(struct websocket_message *wm, struct janus_session *session, const char *transaction, struct janus_handle *handle, JsonBuilder *builder, JsonReader *reader, const char **successp, int *retcode, char **jsep_type_out, str *jsep_sdp_out, uint64_t room_id) { janus_send_ack(wm, transaction, session); *retcode = 456; if (!json_reader_read_member(reader, "ptype")) return "JSON object does not contain 'message.ptype' key"; const char *ptype = json_reader_get_string_value(reader); if (!ptype) return "JSON object does not contain 'message.ptype' key"; json_reader_end_member(reader); bool plain_offer = false; if (json_reader_read_member(reader, "plain")) plain_offer = json_reader_get_boolean_value(reader); json_reader_end_member(reader); *retcode = 436; if (handle->room != 0 && handle->room != room_id) return "User already exists in a different room"; *retcode = 430; bool is_pub = false; if (!strcmp(ptype, "publisher")) is_pub = true; else if (!strcmp(ptype, "subscriber") || !strcmp(ptype, "listener")) is_pub = false; else return "Invalid 'ptype'"; struct janus_room *room = NULL; if (room_id) room = t_hash_table_lookup(janus_rooms, &room_id); *retcode = 426; if (!room) return "No such room"; g_autoptr(call_t) call = NULL; *retcode = 426; call = call_get(&room->call_id); if (!call) return "No such room"; *retcode = 436; if (!is_pub && t_hash_table_lookup(room->subscribers, &handle->id)) return "User already exists in the room as a subscriber"; if (is_pub && t_hash_table_lookup(room->publishers, &handle->id)) return "User already exists in the room as a publisher"; uint64_t feed_id = 0; // set for single feed IDs, otherwise remains 0 g_autoptr(GString) feed_ids = g_string_new("feeds "); // for log output g_auto(janus_ret_streams_q) ret_streams = TYPED_GQUEUE_INIT; // return list for multiple subs if (is_pub) { if (json_reader_read_member(reader, "id")) { feed_id = jr_str_int(reader); if (!feed_id) return "Invalid feed ID requested"; if (t_hash_table_lookup(room->feeds, &feed_id)) return "Feed already exists"; } json_reader_end_member(reader); // random feed ID? while (!feed_id) { feed_id = janus_random(); if (feed_id && t_hash_table_lookup(room->feeds, &feed_id)) feed_id = 0; } // feed ID points to the handle t_hash_table_insert(room->feeds, uint64_dup(feed_id), uint64_dup(handle->id)); // handle ID points to the feed t_hash_table_insert(room->publishers, uint64_dup(handle->id), uint64_dup(feed_id)); } else { // subscriber g_auto(subscription_q) srms = TYPED_GQUEUE_INIT; // get single feed ID if there is one if (json_reader_read_member(reader, "feed")) { *retcode = 456; feed_id = jr_str_int(reader); if (!feed_id) return "JSON object contains invalid 'message.feed' key"; const char *ret = janus_videoroom_join_sub(handle, room, retcode, feed_id, call, &srms); if (ret) return ret; } json_reader_end_member(reader); // handle list of subscriptions if given if (json_reader_read_member(reader, "streams")) { *retcode = 456; if (!json_reader_is_array(reader)) return "Invalid 'message.streams' key (not an array)"; int eles = json_reader_count_elements(reader); if (eles < 0) return "Invalid 'message.streams' key (invalid array)"; for (int i = 0; i < eles; i++) { if (!json_reader_read_element(reader, i)) return "Invalid 'message.streams' key (cannot read element)"; if (!json_reader_is_object(reader)) return "Invalid 'message.streams' key (contains not an object)"; if (!json_reader_read_member(reader, "feed")) return "Invalid 'message.streams' key (doesn't contain 'feed')"; uint64_t fid = jr_str_int(reader); // leave `feed_id` zero if (!fid) return "Invalid 'message.streams' key (contains invalid 'feed')"; // check for duplicate feed IDs. the "streams" list actually contains one // element for each media section ("streams":[{"feed":74515332221,"mid":"0"}, // {"feed":74515332221,"mid":"1"}]) but this isn't supported right now. // instead always expect all media sections to be subscribed to, in order, // and so simply honour each unique feed ID given. // TODO: fix this up if (!t_queue_find_custom(&ret_streams, &fid, int64_cmp)) { const char *ret = janus_videoroom_join_sub(handle, room, retcode, fid, call, &srms); if (ret) return ret; g_string_append_printf(feed_ids, "%" PRIu64 ", ", fid); uint64_t *fidp = g_slice_alloc(sizeof(*fidp)); *fidp = fid; t_queue_push_tail(&ret_streams, fidp); } json_reader_end_member(reader); json_reader_end_element(reader); } } json_reader_end_member(reader); *retcode = 456; if (!srms.length) return "No feeds to subscribe to given"; struct call_monologue *dest_ml = janus_get_monologue(handle->id, call, call_get_or_create_monologue); g_auto(sdp_ng_flags) flags; call_ng_flags_init(&flags, OP_REQUEST); flags.generate_mid = 1; flags.rtcp_mirror = 1; flags.replace_origin_full = 1; if (!plain_offer) ng_flags_webrtc(&flags); else { flags.transport_protocol = &transport_protocols[PROTO_RTP_AVP]; flags.ice_option = ICE_REMOVE; flags.rtcp_mux_demux = 1; } int ret = monologue_subscribe_request(&srms, dest_ml, &flags); if (ret) return "Subscribe error"; /* create SDP */ ret = sdp_create(jsep_sdp_out, dest_ml, &flags); if (!dest_ml->janus_session) dest_ml->janus_session = obj_get(session); dequeue_sdp_fragments(dest_ml); if (ret) return "Error generating SDP"; *jsep_type_out = "offer"; } handle->room = room_id; // single or multiple feed IDs? if (feed_id) g_string_printf(feed_ids, "feed %" PRIu64, feed_id); else if (feed_ids->len >= 2) // truncate trailing ", " g_string_truncate(feed_ids, feed_ids->len - 2); ilog(LOG_INFO, "Handle %" PRIu64 " has joined room %" PRIu64 " as %s (%s)", handle->id, room_id, is_pub ? "publisher" : "subscriber", feed_ids->str); *successp = "event"; if (is_pub) { json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "joined"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "id"); json_builder_add_int_value(builder, feed_id); json_builder_set_member_name(builder, "publishers"); janus_publishers_list(builder, call, room, feed_id); } else { // subscriber json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "attached"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); // output format: single feed ID or multiple? if (feed_id) { json_builder_set_member_name(builder, "id"); json_builder_add_int_value(builder, feed_id); } else { json_builder_set_member_name(builder, "streams"); json_builder_begin_array(builder); uint64_t idx = 0; for (__auto_type l = ret_streams.head; l; l = l->next) { uint64_t *fidp = l->data; json_builder_begin_object(builder); json_builder_set_member_name(builder, "mindex"); json_builder_add_int_value(builder, idx++); json_builder_set_member_name(builder, "feed_id"); json_builder_add_int_value(builder, *fidp); json_builder_end_object(builder); } json_builder_end_array(builder); } } return NULL; } // callback function for janus_notify_publishers() static void janus_notify_publishers_joined(JsonBuilder *event, void *ptr, uint64_t u64, struct janus_room *room, uint64_t publisher_feed) { json_builder_set_member_name(event, "publishers"); janus_publishers_list(event, ptr, room, publisher_feed); } // callback function for janus_notify_publishers() static void janus_notify_publishers_unpublished(JsonBuilder *event, void *ptr, uint64_t u64, struct janus_room *room, uint64_t publisher_feed) { json_builder_set_member_name(event, "unpublished"); json_builder_add_int_value(event, u64); } // callback function for janus_notify_publishers() static void janus_notify_publishers_leaving(JsonBuilder *event, void *ptr, uint64_t u64, struct janus_room *room, uint64_t publisher_feed) { json_builder_set_member_name(event, "leaving"); json_builder_add_int_value(event, u64); } // global janus_lock is held static void janus_notify_publishers(uint64_t room_id, uint64_t except, void *ptr, uint64_t u64, void (*callback)(JsonBuilder *event, void *ptr, uint64_t u64, struct janus_room *room, uint64_t publisher_feed)) { struct janus_room *room = t_hash_table_lookup(janus_rooms, &room_id); if (!room) return; janus_feeds_ht_iter iter; t_hash_table_iter_init(&iter, room->publishers); uint64_t *handle_id, *feed_id; while (t_hash_table_iter_next(&iter, &handle_id, &feed_id)) { if (*handle_id == except) continue; // look up the handle and determine which session it belongs to struct janus_handle *handle = t_hash_table_lookup(janus_handles, handle_id); if (!handle) continue; if (!handle->session) continue; // send to the handle's session JsonBuilder *event = json_builder_new(); json_builder_begin_object(event); // { json_builder_set_member_name(event, "janus"); json_builder_add_string_value(event, "event"); json_builder_set_member_name(event, "session_id"); json_builder_add_int_value(event, handle->session->id); json_builder_set_member_name(event, "sender"); json_builder_add_int_value(event, handle->id); // destination of notification json_builder_set_member_name(event, "plugindata"); json_builder_begin_object(event); // { json_builder_set_member_name(event, "plugin"); json_builder_add_string_value(event, "janus.plugin.videoroom"); json_builder_set_member_name(event, "data"); json_builder_begin_object(event); // { json_builder_set_member_name(event, "videoroom"); json_builder_add_string_value(event, "event"); json_builder_set_member_name(event, "room"); json_builder_add_int_value(event, room_id); callback(event, ptr, u64, room, *feed_id); json_builder_end_object(event); // } json_builder_end_object(event); // } json_builder_end_object(event); // } janus_send_json_async(handle->session, event); } } // global janus_lock is held static const char *janus_videoroom_configure(struct websocket_message *wm, struct janus_session *session, const char *jsep_type, const char *jsep_sdp, const char *transaction, struct janus_handle *handle, JsonBuilder *builder, JsonReader *reader, const char **successp, int *retcode, char **jsep_type_out, str *jsep_sdp_out, uint64_t room_id) { janus_send_ack(wm, transaction, session); *retcode = 456; if (!room_id) room_id = handle->room; if (!room_id) return "JSON object does not contain 'message.room' key"; int has_audio = -1; // tri-state -1/0/1 if (json_reader_read_member(reader, "audio")) has_audio = !!json_reader_get_boolean_value(reader); // 0/1 json_reader_end_member(reader); int has_video = -1; // tri-state -1/0/1 if (json_reader_read_member(reader, "video")) has_video = !!json_reader_get_boolean_value(reader); // 0/1 json_reader_end_member(reader); // exit "body" json_reader_end_member(reader); *retcode = 512; if (handle->room != room_id) return "Not in the room"; struct janus_room *room = t_hash_table_lookup(janus_rooms, &room_id); *retcode = 426; if (!room) return "No such room"; g_autoptr(call_t) call = call_get(&room->call_id); // XXX if call is destroyed separately, room persists -> room should be destroyed too if (!call) return "No such room"; *retcode = 512; if (!t_hash_table_lookup(room->publishers, &handle->id)) return "Not a publisher"; struct call_monologue *ml = NULL; if (jsep_type && jsep_sdp) { if (strcmp(jsep_type, "offer")) return "Not an offer"; g_auto(str) sdp_in = STR_INIT_DUP(jsep_sdp); g_auto(sdp_ng_flags) flags; g_auto(sdp_sessions_q) parsed = TYPED_GQUEUE_INIT; g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; call_ng_flags_init(&flags, OP_PUBLISH); *retcode = 512; if (sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; if (sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; ml = janus_get_monologue(handle->id, call, call_get_or_create_monologue); // accept unsupported codecs if necessary flags.accept_any = 1; flags.replace_origin_full = 1; int ret = monologue_publish(ml, &streams, &flags); if (ret) return "Publish error"; // XXX check there's only one audio and one video stream? g_auto(str) sdp_out = STR_NULL; ret = sdp_create(&sdp_out, ml, &flags); if (ret) return "Publish error"; if (!ml->janus_session) ml->janus_session = obj_get(session); save_last_sdp(ml, &sdp_in, &parsed, &streams); *jsep_sdp_out = sdp_out; sdp_out = STR_NULL; // ownership passed to output dequeue_sdp_fragments(ml); *jsep_type_out = "answer"; } else { // reconfigure existing publisher ml = janus_get_monologue(handle->id, call, call_get_monologue); if (!ml) return "Not an existing publisher"; } *successp = "event"; json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "event"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "configured"); json_builder_add_string_value(builder, "ok"); // apply audio/video bool flags for (unsigned int i = 0; i < ml->medias->len; i++) { struct call_media *media = ml->medias->pdata[i]; if (!media) continue; if (media->type_id == MT_AUDIO) { if (has_audio == 0) MEDIA_CLEAR(media, RECV); else if (has_audio == 1) MEDIA_SET(media, RECV); } else if (media->type_id == MT_VIDEO) { if (has_video == 0) MEDIA_CLEAR(media, RECV); else if (has_video == 1) MEDIA_SET(media, RECV); } } janus_add_publisher_details(builder, ml); janus_notify_publishers(room_id, handle->id, call, 0, janus_notify_publishers_joined); return NULL; } // global janus_lock is held static const char *janus_videoroom_start(struct websocket_message *wm, struct janus_session *session, const char *jsep_type, const char *jsep_sdp, const char *transaction, struct janus_handle *handle, JsonBuilder *builder, JsonReader *reader, const char **successp, int *retcode, uint64_t room_id) { janus_send_ack(wm, transaction, session); *retcode = 456; if (!room_id) return "JSON object does not contain 'message.room' key"; json_reader_end_member(reader); if (handle->room != room_id) return "Not in the room"; if (!jsep_type || !jsep_sdp) return "No SDP"; if (strcmp(jsep_type, "answer")) return "Not an answer"; g_auto(str) sdp_in = STR_INIT_DUP(jsep_sdp); g_auto(sdp_ng_flags) flags; g_auto(sdp_sessions_q) parsed = TYPED_GQUEUE_INIT; g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; call_ng_flags_init(&flags, OP_PUBLISH); *retcode = 512; if (sdp_parse(&sdp_in, &parsed, &flags)) return "Failed to parse SDP"; if (sdp_streams(&parsed, &streams, &flags)) return "Incomplete SDP specification"; struct janus_room *room = t_hash_table_lookup(janus_rooms, &room_id); *retcode = 426; if (!room) return "No such room"; g_autoptr(call_t) call = call_get(&room->call_id); if (!call) return "No such room"; *retcode = 456; uint64_t *feed_id = t_hash_table_lookup(room->subscribers, &handle->id); if (!feed_id) return "Not a subscriber"; *retcode = 512; uint64_t *feed_handle = t_hash_table_lookup(room->feeds, feed_id); if (!feed_handle) return "No such feed exists"; struct call_monologue *source_ml = janus_get_monologue(*feed_handle, call, call_get_monologue); if (!source_ml) return "Feed not found"; // XXX verify that dest_ml is subscribed to source_ml struct call_monologue *dest_ml = janus_get_monologue(handle->id, call, call_get_monologue); if (!dest_ml) return "Subscriber not found"; int ret = monologue_subscribe_answer(dest_ml, &flags, &streams); if (ret) return "Failed to process subscription answer"; *successp = "event"; json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "event"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "started"); json_builder_add_string_value(builder, "ok"); return NULL; } // global janus_lock is held static const char *janus_videoroom_unpublish(struct websocket_message *wm, struct janus_session *session, const char *transaction, struct janus_handle *handle, JsonBuilder *builder, const char **successp, int *retcode) { janus_send_ack(wm, transaction, session); // get all our info uint64_t room_id = handle->room; *retcode = 512; if (!room_id) return "Not in any room"; struct janus_room *room = NULL; if (room_id) room = t_hash_table_lookup(janus_rooms, &room_id); *retcode = 426; if (!room) return "No such room"; g_autoptr(call_t) call = call_get(&room->call_id); if (!call) return "No such room"; uint64_t *feed_id = t_hash_table_lookup(room->publishers, &handle->id); *retcode = 512; if (!feed_id) return "Not a publisher"; // all is ok // notify other publishers janus_notify_publishers(room_id, handle->id, NULL, *feed_id, janus_notify_publishers_unpublished); struct call_monologue *ml = janus_get_monologue(handle->id, call, call_get_monologue); if (ml) monologue_destroy(ml); *successp = "event"; json_builder_set_member_name(builder, "videoroom"); json_builder_add_string_value(builder, "event"); json_builder_set_member_name(builder, "room"); json_builder_add_int_value(builder, room_id); json_builder_set_member_name(builder, "unpublished"); json_builder_add_string_value(builder, "ok"); return NULL; } // global janus_lock is held // TODO: more granular locking static const char *janus_videoroom(struct websocket_message *wm, struct janus_session *session, const char *jsep_type, const char *jsep_sdp, const char *transaction, struct janus_handle *handle, JsonBuilder *builder, JsonReader *reader, const char **successp, int *retcodep, char **jsep_type_out, str *jsep_sdp_out) { uint64_t room_id = 0; if (json_reader_read_member(reader, "room")) room_id = jr_str_int(reader); json_reader_end_member(reader); int retcode = 456; const char *err = "JSON object does not contain 'message.request' key"; if (!json_reader_read_member(reader, "request")) goto err; const char *req = json_reader_get_string_value(reader); if (!req) goto err; str req_str = STR_INIT(req); json_reader_end_member(reader); switch (__csh_lookup(&req_str)) { case CSH_LOOKUP("create"): err = janus_videoroom_create(session, handle, builder, reader, &retcode); break; case CSH_LOOKUP("exists"): err = janus_videoroom_exists(session, builder, room_id); break; case CSH_LOOKUP("destroy"): err = janus_videoroom_destroy(session, builder, &retcode, room_id); break; case CSH_LOOKUP("join"): err = janus_videoroom_join(wm, session, transaction, handle, builder, reader, successp, &retcode, jsep_type_out, jsep_sdp_out, room_id); break; case CSH_LOOKUP("configure"): err = janus_videoroom_configure(wm, session, jsep_type, jsep_sdp, transaction, handle, builder, reader, successp, &retcode, jsep_type_out, jsep_sdp_out, room_id); break; case CSH_LOOKUP("start"): err = janus_videoroom_start(wm, session, jsep_type, jsep_sdp, transaction, handle, builder, reader, successp, &retcode, room_id); break; case CSH_LOOKUP("unpublish"): err = janus_videoroom_unpublish(wm, session, transaction, handle, builder, successp, &retcode); break; default: retcode = 423; err = "Unknown videoroom request"; break; } err: if (err) *retcodep = retcode; return err; } static const char *janus_add_token(JsonReader *reader, JsonBuilder *builder, bool authorised, int *retcode) { *retcode = 403; if (!authorised) return "Janus 'admin_secret' key not provided or incorrect"; const char *token = NULL; if (json_reader_read_member(reader, "token")) token = json_reader_get_string_value(reader); json_reader_end_member(reader); *retcode = 456; if (!token) return "JSON object does not contain 'token' key"; time_t *now = g_malloc(sizeof(*now)); *now = rtpe_now.tv_sec; mutex_lock(&janus_lock); t_hash_table_replace(janus_tokens, g_strdup(token), now); mutex_unlock(&janus_lock); json_builder_set_member_name(builder, "data"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "plugins"); json_builder_begin_array(builder); // [ json_builder_add_string_value(builder, "janus.plugin.videoroom"); json_builder_end_array(builder); // ] json_builder_end_object(builder); // } return NULL; } static const char *janus_create(JsonReader *reader, JsonBuilder *builder, struct websocket_message *wm) { if (wm->method != M_WEBSOCKET) return "Unsupported transport protocol"; uint64_t session_id = 0; if (json_reader_read_member(reader, "id")) session_id = jr_str_int(reader); json_reader_end_member(reader); struct janus_session *session = obj_alloc0("janus_session", sizeof(*session), __janus_session_free); mutex_init(&session->lock); mutex_lock(&session->lock); // not really necessary but Coverity complains session->last_act = rtpe_now.tv_sec; session->websockets = janus_websockets_ht_new(); session->handles = janus_handles_set_new(); t_hash_table_insert(session->websockets, wm->wc, wm->wc); do { while (!session_id) session_id = janus_random(); mutex_lock(&janus_lock); if (t_hash_table_lookup(janus_sessions, &session_id)) session_id = 0; // pick a random one else { session->id = session_id; t_hash_table_insert(janus_sessions, &session->id, obj_get(session)); } mutex_unlock(&janus_lock); } while (!session_id); mutex_unlock(&session->lock); ilog(LOG_INFO, "Created new Janus session with ID %" PRIu64, session_id); websocket_conn_add_session(wm->wc, obj_get(session)); json_builder_set_member_name(builder, "data"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "id"); json_builder_add_int_value(builder, session_id); json_builder_end_object(builder); // } obj_put(session); return NULL; } void janus_detach_websocket(struct janus_session *session, struct websocket_conn *wc) { LOCK(&session->lock); t_hash_table_remove(session->websockets, wc); } // call is locked in some way void janus_rtc_up(struct call_monologue *ml) { struct janus_session *session = ml->janus_session; if (!session) return; // the monologue tag is the handle ID uint64_t handle = str_to_ui(&ml->tag, 0); if (!handle) return; // build json JsonBuilder *builder = json_builder_new(); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "janus"); json_builder_add_string_value(builder, "webrtcup"); json_builder_set_member_name(builder, "session_id"); json_builder_add_int_value(builder, session->id); json_builder_set_member_name(builder, "sender"); json_builder_add_int_value(builder, handle); json_builder_end_object(builder); // } LOCK(&session->lock); janus_send_json_async(session, builder); } // call is locked in some way void janus_media_up(struct call_media *media) { struct call_monologue *ml = media->monologue; if (!ml) return; struct janus_session *session = ml->janus_session; if (!session) return; // the monologue tag is the handle ID uint64_t handle = str_to_ui(&ml->tag, 0); if (!handle) return; // build json JsonBuilder *builder = json_builder_new(); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "janus"); json_builder_add_string_value(builder, "media"); json_builder_set_member_name(builder, "session_id"); json_builder_add_int_value(builder, session->id); json_builder_set_member_name(builder, "sender"); json_builder_add_int_value(builder, handle); json_builder_set_member_name(builder, "mid"); if (media->media_id.s) json_builder_add_string_value(builder, media->media_id.s); else json_builder_add_null_value(builder); json_builder_set_member_name(builder, "type"); json_builder_add_string_value(builder, media->type.s); json_builder_set_member_name(builder, "receiving"); json_builder_add_boolean_value(builder, true); json_builder_end_object(builder); // } LOCK(&session->lock); janus_send_json_async(session, builder); } static const char *janus_attach(JsonReader *reader, JsonBuilder *builder, struct janus_session *session, int *retcode) { *retcode = 458; if (!session) return "Session ID not found"; // verify the plugin *retcode = 456; if (!json_reader_read_member(reader, "plugin")) return "No plugin given"; const char *plugin = json_reader_get_string_value(reader); if (!plugin) return "No plugin given"; *retcode = 460; if (strcmp(plugin, "janus.plugin.videoroom")) return "Unsupported plugin"; json_reader_end_member(reader); struct janus_handle *handle = g_slice_alloc0(sizeof(*handle)); mutex_lock(&janus_lock); handle->session = obj_get(session); uint64_t handle_id = 0; while (1) { handle_id = handle->id = janus_random(); if (t_hash_table_lookup(janus_handles, &handle->id)) continue; t_hash_table_insert(janus_handles, &handle->id, handle); break; } mutex_unlock(&janus_lock); mutex_lock(&session->lock); assert(t_hash_table_lookup(session->handles, &handle_id) == NULL); t_hash_table_insert(session->handles, &handle->id, (void *) 0x1); mutex_unlock(&session->lock); json_builder_set_member_name(builder, "data"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "id"); json_builder_add_int_value(builder, handle_id); json_builder_end_object(builder); // } return NULL; } static void janus_destroy_handle(struct janus_handle *handle) { uint64_t room_id = handle->room; uint64_t handle_id = handle->id; // destroy handle if (handle->session) obj_put(handle->session); g_slice_free1(sizeof(*handle), handle); if (!room_id) return; struct janus_room *room = t_hash_table_lookup(janus_rooms, &room_id); if (!room) return; uint64_t *feed = t_hash_table_lookup(room->publishers, &handle_id); if (feed) { // was a publisher - send notifies janus_notify_publishers(room_id, handle_id, NULL, *feed, janus_notify_publishers_unpublished); janus_notify_publishers(room_id, handle_id, NULL, *feed, janus_notify_publishers_leaving); call_t *call = call_get(&room->call_id); if (call) { // remove publisher monologue struct call_monologue *ml = janus_get_monologue(handle_id, call, call_get_monologue); if (ml) monologue_destroy(ml); rwlock_unlock_w(&call->master_lock); obj_put(call); } t_hash_table_remove(room->publishers, &handle_id); feed = NULL; } if (t_hash_table_remove(room->subscribers, &handle_id)) { // was a subscriber call_t *call = call_get(&room->call_id); if (call) { // remove subscriber monologue struct call_monologue *ml = janus_get_monologue(handle_id, call, call_get_monologue); if (ml) monologue_destroy(ml); rwlock_unlock_w(&call->master_lock); obj_put(call); } } } static const char *janus_detach(struct websocket_message *wm, JsonReader *reader, JsonBuilder *builder, struct janus_session *session, uint64_t handle_id, int *retcode) { *retcode = 458; if (!session) return "Session ID not found"; *retcode = 457; if (!handle_id) return "Unhandled request method"; // remove handle from session first as the handle ID in the hash is owned by the // janus_handle object, which is owned by janus_handles { LOCK(&session->lock); bool exists = t_hash_table_remove(session->handles, &handle_id); *retcode = 463; if (!exists) return "Could not detach handle from plugin"; } LOCK(&janus_lock); struct janus_handle *handle = NULL; t_hash_table_steal_extended(janus_handles, &handle_id, NULL, &handle); *retcode = 463; if (!handle) return "Could not detach handle from plugin"; if (handle->session != session) { t_hash_table_insert(janus_handles, &handle->id, handle); return "Invalid session/handle association"; } janus_destroy_handle(handle); return NULL; } // janus_lock must be held static void janus_session_cleanup(struct janus_session *session) { janus_handles_set_iter iter; t_hash_table_iter_init(&iter, session->handles); uint64_t *handle_id; while (t_hash_table_iter_next(&iter, &handle_id, NULL)) { struct janus_handle *handle = NULL; t_hash_table_steal_extended(janus_handles, handle_id, NULL, &handle); if (!handle) // bug? continue; janus_destroy_handle(handle); } } static const char *janus_destroy(struct websocket_message *wm, JsonReader *reader, JsonBuilder *builder, struct janus_session *session, int *retcode) { *retcode = 458; if (!session) return "Session ID not found"; LOCK(&janus_lock); struct janus_session *ht_session = NULL; t_hash_table_steal_extended(janus_sessions, &session->id, NULL, &ht_session); if (ht_session != session) { if (ht_session) // return wrongly stolen session t_hash_table_insert(janus_sessions, &ht_session->id, ht_session); return "Sesssion ID not found"; // already removed/destroyed } janus_session_cleanup(session); obj_put(session); return NULL; } static const char *janus_message(struct websocket_message *wm, JsonReader *reader, JsonBuilder *builder, struct janus_session *session, const char *transaction, uint64_t handle_id, const char **successp, int *retcode) { // we only pretend to support one plugin so ignore the handle // and just go straight to the message *retcode = 458; if (!session) return "Session ID not found"; *retcode = 457; if (!handle_id) return "No plugin handle given"; const char *jsep_type = NULL, *jsep_sdp = NULL; if (json_reader_read_member(reader, "jsep")) { if (json_reader_read_member(reader, "type")) jsep_type = json_reader_get_string_value(reader); json_reader_end_member(reader); if (json_reader_read_member(reader, "sdp")) jsep_sdp = json_reader_get_string_value(reader); json_reader_end_member(reader); } json_reader_end_member(reader); *retcode = 456; if (!json_reader_read_member(reader, "body")) return "JSON object does not contain 'body' key"; json_builder_set_member_name(builder, "plugindata"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "plugin"); json_builder_add_string_value(builder, "janus.plugin.videoroom"); json_builder_set_member_name(builder, "data"); json_builder_begin_object(builder); // { char *jsep_type_out = NULL; g_auto(str) jsep_sdp_out = STR_NULL; LOCK(&janus_lock); struct janus_handle *handle = t_hash_table_lookup(janus_handles, &handle_id); const char *err = NULL; if (!handle || handle->session != session) { *retcode = 457; err = "No plugin handle given or invalid handle"; } else err = janus_videoroom(wm, session, jsep_type, jsep_sdp, transaction, handle, builder, reader, successp, retcode, &jsep_type_out, &jsep_sdp_out); json_builder_end_object(builder); // } json_builder_end_object(builder); // } if (jsep_type_out && jsep_sdp_out.len) { json_builder_set_member_name(builder, "jsep"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "type"); json_builder_add_string_value(builder, jsep_type_out); json_builder_set_member_name(builder, "sdp"); json_builder_add_string_value(builder, jsep_sdp_out.s); json_builder_end_object(builder); // } } return err; } static const char *janus_trickle(JsonReader *reader, struct janus_session *session, uint64_t handle_id, const char **successp, int *retcode) { *retcode = 458; if (!session) return "Session ID not found"; *retcode = 457; if (!handle_id) return "Unhandled request method"; *retcode = 456; if (!json_reader_read_member(reader, "candidate")) return "JSON object does not contain 'candidate' key"; const char *candidate = NULL; if (json_reader_read_member(reader, "candidate")) candidate = json_reader_get_string_value(reader); json_reader_end_member(reader); if (!candidate) { if (json_reader_read_member(reader, "completed")) { *successp = "ack"; return NULL; } return "ICE candidate string missing"; } const char *ufrag = NULL; if (json_reader_read_member(reader, "usernameFragment")) ufrag = json_reader_get_string_value(reader); json_reader_end_member(reader); const char *sdp_mid = NULL; int64_t sdp_m_line = -1; if (json_reader_read_member(reader, "sdpMid")) sdp_mid = json_reader_get_string_value(reader); json_reader_end_member(reader); if (json_reader_read_member(reader, "sdpMLineIndex")) { // make sure what we're reading is an int JsonNode *node = json_reader_get_value(reader); if (node && json_node_get_value_type(node) == G_TYPE_INT64) sdp_m_line = json_node_get_int(node); } json_reader_end_member(reader); json_reader_end_member(reader); if (!sdp_mid && sdp_m_line < 0) return "Neither sdpMid nor sdpMLineIndex given"; // fetch call g_autoptr(char) call_id = NULL; g_autoptr(call_t) call = NULL; { LOCK(&janus_lock); struct janus_handle *handle = t_hash_table_lookup(janus_handles, &handle_id); if (!handle || !handle->room || handle->session != session) return "Unhandled request method"; call_id = janus_call_id(handle->room); struct janus_room *room = t_hash_table_lookup(janus_rooms, &handle->room); if (room) call = call_get(&room->call_id); } // set up "streams" structures to use an trickle ICE update. these must be // allocated in case of delayed trickle ICE updates. it's using a refcounted // ng_buffer as storage. *successp = "ack"; // top-level structures first, with auto cleanup g_auto(sdp_streams_q) streams = TYPED_GQUEUE_INIT; g_autoptr(ng_buffer) ngbuf = ng_buffer_new(NULL); g_auto(sdp_ng_flags) flags; call_ng_flags_init(&flags, OP_OTHER); // then the contained structures, and add them in struct stream_params *sp = g_slice_alloc0(sizeof(*sp)); t_queue_push_tail(&streams, sp); struct ice_candidate *cand = g_slice_alloc0(sizeof(*cand)); t_queue_push_tail(&sp->ice_candidates, cand); // allocate and parse candidate str cand_str; bencode_strdup_str(&ngbuf->buffer, &cand_str, candidate); str_shift_cmp(&cand_str, "candidate:"); // skip prefix if (!cand_str.len) // end of candidates return NULL; *retcode = 466; int ret = sdp_parse_candidate(cand, &cand_str); if (ret < 0) return "Failed to parse trickle candidate"; if (ret > 0) return NULL; // unsupported candidate type, accept and ignore it // set required signalling flags flags.fragment = 1; g_autoptr(char) handle_buf = NULL; handle_buf = g_strdup_printf("%" PRIu64, handle_id); bencode_strdup_str(&ngbuf->buffer, &flags.from_tag, handle_buf); bencode_strdup_str(&ngbuf->buffer, &flags.call_id, call_id); // populate and allocate a=mid if (sdp_mid) bencode_strdup_str(&ngbuf->buffer, &sp->media_id, sdp_mid); // check m= line index if (sdp_m_line >= 0) sp->index = sdp_m_line + 1; // ufrag can be given in-line or separately sp->ice_ufrag = cand->ufrag; if (!sp->ice_ufrag.len && ufrag) bencode_strdup_str(&ngbuf->buffer, &sp->ice_ufrag, ufrag); // finally do the update trickle_ice_update(ngbuf, call, &flags, &streams); return NULL; } static const char *janus_server_info(JsonBuilder *builder) { json_builder_set_member_name(builder, "name"); json_builder_add_string_value(builder, "rtpengine Janus interface"); json_builder_set_member_name(builder, "version_string"); json_builder_add_string_value(builder, RTPENGINE_VERSION); json_builder_set_member_name(builder, "plugins"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "janus.plugin.videoroom"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "name"); json_builder_add_string_value(builder, "rtpengine Janus videoroom"); json_builder_end_object(builder); // } json_builder_end_object(builder); // } return "server_info"; } static void janus_finish_response(JsonBuilder *builder, const char *success, const char *err, int retcode) { json_builder_set_member_name(builder, "janus"); if (err) { json_builder_add_string_value(builder, "error"); json_builder_set_member_name(builder, "error"); json_builder_begin_object(builder); // { json_builder_set_member_name(builder, "code"); json_builder_add_int_value(builder, retcode); json_builder_set_member_name(builder, "reason"); json_builder_add_string_value(builder, err); json_builder_end_object(builder); // } ilog(LOG_WARN, "Janus processing returning error (code %i): %s", retcode, err); } else json_builder_add_string_value(builder, success); } static const char *websocket_janus_process_json(struct websocket_message *wm, uint64_t session_id, uint64_t handle_id) { JsonParser *parser = NULL; JsonReader *reader = NULL; const char *err = NULL; int retcode = 200; const char *transaction = NULL; const char *success = "success"; struct janus_session *session = NULL; ilog(LOG_DEBUG, "Processing Janus message: '%.*s'", (int) wm->body->len, wm->body->str); // prepare response JsonBuilder *builder = json_builder_new(); json_builder_begin_object(builder); // { // start parsing message parser = json_parser_new(); retcode = 454; err = "Failed to parse JSON"; if (!json_parser_load_from_data(parser, wm->body->str, wm->body->len, NULL)) goto err; reader = json_reader_new(json_parser_get_root(parser)); if (!reader) goto err; retcode = 455; err = "JSON string is not an object"; if (!json_reader_is_object(reader)) goto err; retcode = 456; err = "JSON object does not contain 'janus' key"; if (!json_reader_read_member(reader, "janus")) goto err; const char *janus_cmd = json_reader_get_string_value(reader); err = "'janus' key does not contain a string"; if (!janus_cmd) goto err; json_reader_end_member(reader); retcode = 456; err = "JSON object does not contain 'transaction' key"; if (!json_reader_read_member(reader, "transaction")) goto err; transaction = json_reader_get_string_value(reader); err = "'transaction' key does not contain a string"; json_reader_end_member(reader); bool authorised = false; if (json_reader_read_member(reader, "admin_secret")) { const char *admin_secret = json_reader_get_string_value(reader); if (janus_cmd && rtpe_config.janus_secret && !strcmp(admin_secret, rtpe_config.janus_secret)) authorised = true; } json_reader_end_member(reader); if (json_reader_read_member(reader, "session_id")) session_id = jr_str_int(reader); json_reader_end_member(reader); if (session_id) session = janus_get_session(session_id); if (json_reader_read_member(reader, "handle_id")) handle_id = jr_str_int(reader); json_reader_end_member(reader); ilog(LOG_DEBUG, "Processing '%s' type Janus message", janus_cmd); str janus_cmd_str = STR_INIT(janus_cmd); err = NULL; switch (__csh_lookup(&janus_cmd_str)) { case CSH_LOOKUP("add_token"): err = janus_add_token(reader, builder, authorised, &retcode); break; case CSH_LOOKUP("ping"): success = "pong"; break; case CSH_LOOKUP("keepalive"): if (!session) { retcode = 458; err = "Session ID not found"; } else success = "ack"; break; case CSH_LOOKUP("info"): success = janus_server_info(builder); break; case CSH_LOOKUP("get_status"): // dummy output json_builder_set_member_name(builder, "status"); json_builder_begin_object(builder); json_builder_set_member_name(builder, "token_auth"); json_builder_add_boolean_value(builder, false); json_builder_end_object(builder); break; case CSH_LOOKUP("list_sessions"): // dummy output json_builder_set_member_name(builder, "sessions"); json_builder_begin_array(builder); json_builder_end_array(builder); break; case CSH_LOOKUP("create"): // create new session err = janus_create(reader, builder, wm); session_id = 0; // don't add it to the reply break; case CSH_LOOKUP("attach"): // attach to a plugin, obtains handle err = janus_attach(reader, builder, session, &retcode); break; case CSH_LOOKUP("detach"): err = janus_detach(wm, reader, builder, session, handle_id, &retcode); break; case CSH_LOOKUP("destroy"): // destroy session err = janus_destroy(wm, reader, builder, session, &retcode); break; case CSH_LOOKUP("message"): err = janus_message(wm, reader, builder, session, transaction, handle_id, &success, &retcode); break; case CSH_LOOKUP("trickle"): err = janus_trickle(reader, session, handle_id, &success, &retcode); handle_id = 0; // don't include sender break; default: retcode = 457; err = "Unhandled request method"; goto err; } // done err: janus_finish_response(builder, success, err, retcode); if (transaction) { json_builder_set_member_name(builder, "transaction"); json_builder_add_string_value(builder, transaction); } if (session_id) { json_builder_set_member_name(builder, "session_id"); json_builder_add_int_value(builder, session_id); } if (handle_id) { json_builder_set_member_name(builder, "sender"); json_builder_add_int_value(builder, handle_id); } json_builder_end_object(builder); // } janus_send_json_sync_response(wm, builder, 200); if (reader) g_object_unref(reader); if (parser) g_object_unref(parser); if (session) obj_put(session); log_info_reset(); return NULL; } const char *websocket_janus_process(struct websocket_message *wm) { return websocket_janus_process_json(wm, 0, 0); } const char *websocket_janus_get(struct websocket_message *wm) { str uri = STR_INIT(wm->uri); ilog(LOG_DEBUG, "Processing Janus GET: '%s'", wm->uri); JsonBuilder *builder = json_builder_new(); json_builder_begin_object(builder); // { int retcode = 200; const char *success = "success"; const char *err = NULL; switch (__csh_lookup(&uri)) { case CSH_LOOKUP("/admin/info"): success = janus_server_info(builder); break; default: retcode = 457; err = "Unhandled request method"; break; } janus_finish_response(builder, success, err, retcode); json_builder_end_object(builder); // } janus_send_json_sync_response(wm, builder, 200); return NULL; } const char *websocket_janus_post(struct websocket_message *wm) { str uri = STR_INIT(wm->uri); ilog(LOG_DEBUG, "Processing Janus POST: '%s'", wm->uri); uint64_t session_id = 0; uint64_t handle_id = 0; str_shift_cmp(&uri, "/"); // parse out session ID and handle ID if given str s; if (!str_token_sep(&s, &uri, '/')) goto done; if (str_cmp(&s, "janus")) goto done; if (!str_token_sep(&s, &uri, '/')) goto done; session_id = str_to_ui(&s, 0); if (!str_token_sep(&s, &uri, '/')) goto done; handle_id = str_to_ui(&s, 0); done: return websocket_janus_process_json(wm, session_id, handle_id); } void janus_init(void) { mutex_init(&janus_lock); janus_tokens = janus_tokens_ht_new(); janus_sessions = janus_sessions_ht_new(); janus_handles = janus_handles_ht_new(); janus_rooms = janus_rooms_ht_new(); // XXX timer thread to clean up orphaned sessions } void janus_free(void) { mutex_destroy(&janus_lock); t_hash_table_destroy(janus_tokens); t_hash_table_destroy(janus_sessions); t_hash_table_destroy(janus_handles); t_hash_table_destroy(janus_rooms); } rtpengine-mr12.5.1.22/daemon/jitter_buffer.c000066400000000000000000000300071474347554000206320ustar00rootroot00000000000000#include "jitter_buffer.h" #include #include #include "timerthread.h" #include "media_socket.h" #include "call.h" #include "codec.h" #include "main.h" #include "rtcplib.h" #include "bufferpool.h" #define INITIAL_PACKETS 0x1E #define CONT_SEQ_COUNT 0x1F4 #define CONT_MISS_COUNT 0x0A #define CLOCK_DRIFT_MULT 0x28 #define DELAY_FACTOR 0x64 #define COMFORT_NOISE 0x0D static struct timerthread jitter_buffer_thread; void jitter_buffer_init(void) { //ilog(LOG_DEBUG, "jitter_buffer_init"); unsigned int num_threads = rtpe_config.jb_length > 0 ? rtpe_config.media_num_threads : 0; timerthread_init(&jitter_buffer_thread, num_threads, timerthread_queue_run); } void jitter_buffer_init_free(void) { //ilog(LOG_DEBUG, "jitter_buffer_free"); timerthread_free(&jitter_buffer_thread); } static void jitter_buffer_flush(struct jitter_buffer *jb) { mutex_unlock(&jb->lock); timerthread_queue_flush_data(&jb->ttq); mutex_lock(&jb->lock); } // jb is locked static void reset_jitter_buffer(struct jitter_buffer *jb) { //ilog(LOG_INFO, "reset_jitter_buffer"); jb->first_send_ts = 0; jb->first_send.tv_sec = 0; jb->first_send.tv_usec = 0; jb->first_seq = 0; jb->rtptime_delta = 0; jb->buffer_len = 0; jb->cont_frames = 0; jb->cont_miss = 0; jb->next_exp_seq = 0; jb->clock_rate = 0; jb->payload_type = 0; jb->clock_drift_val = 0; jb->prev_seq_ts = rtpe_now; jb->prev_seq = 0; jb->num_resets++; if(g_tree_nnodes(jb->ttq.entries) > 0) jitter_buffer_flush(jb); //disable jitter buffer in case of more than 2 resets if(jb->num_resets >= 2) jb->disabled = 1; } static rtp_payload_type *codec_rtp_pt(struct media_packet *mp, int payload_type) { rtp_payload_type *rtp_pt = NULL; struct codec_handler *transcoder = codec_handler_get(mp->media, payload_type, mp->media_out, NULL); if(transcoder) { if(transcoder->source_pt.payload_type == payload_type) rtp_pt = &transcoder->source_pt; if(transcoder->dest_pt.payload_type == payload_type) rtp_pt = &transcoder->dest_pt; } return rtp_pt; } static int get_clock_rate(struct media_packet *mp, int payload_type) { struct jitter_buffer *jb = mp->stream->jb; int clock_rate = 0; if(jb->clock_rate && jb->payload_type == payload_type) return jb->clock_rate; const rtp_payload_type *rtp_pt = codec_rtp_pt(mp, payload_type); if(rtp_pt) { if(rtp_pt->codec_def && !rtp_pt->codec_def->dtmf) { clock_rate = jb->clock_rate = rtp_pt->clock_rate; jb->payload_type = payload_type; } else clock_rate = jb->clock_rate; //dtmf packet continue with same clockrate } else ilog(LOG_DEBUG, "clock_rate not present payload_type = %d", payload_type); return clock_rate; } static struct jb_packet* get_jb_packet(struct media_packet *mp, const str *s) { if (rtp_payload(&mp->rtp, &mp->payload, s)) return NULL; char *buf = bufferpool_alloc(media_bufferpool, s->len + RTP_BUFFER_HEAD_ROOM + RTP_BUFFER_TAIL_ROOM); if (!buf) { ilog(LOG_ERROR, "Failed to allocate memory: %s", strerror(errno)); return NULL; } struct jb_packet *p = g_slice_alloc0(sizeof(*p)); p->buf = buf; media_packet_copy(&p->mp, mp); str_init_len(&p->mp.raw, buf + RTP_BUFFER_HEAD_ROOM, s->len); memcpy(p->mp.raw.s, s->s, s->len); return p; } // jb is locked static void check_buffered_packets(struct jitter_buffer *jb) { if (g_tree_nnodes(jb->ttq.entries) >= (3* rtpe_config.jb_length)) { ilog(LOG_DEBUG, "Jitter reset due to buffer overflow"); reset_jitter_buffer(jb); } } // jb is locked static int queue_packet(struct media_packet *mp, struct jb_packet *p) { struct jitter_buffer *jb = mp->stream->jb; unsigned long ts = ntohl(mp->rtp->timestamp); int payload_type = (mp->rtp->m_pt & 0x7f); int clockrate = get_clock_rate(mp, payload_type); int curr_seq = ntohs(mp->rtp->seq_num); if(!clockrate || !jb->first_send.tv_sec) { ilog(LOG_DEBUG, "Jitter reset due to clockrate"); reset_jitter_buffer(jb); return 1; } long ts_diff = (uint32_t) ts - (uint32_t) jb->first_send_ts; int seq_diff = curr_seq - jb->first_seq; if(seq_diff < 0) { jb->first_send.tv_sec = 0; return 1; } if(!jb->rtptime_delta && seq_diff) { jb->rtptime_delta = ts_diff/seq_diff; } p->ttq_entry.when = jb->first_send; long long ts_diff_us = (long long) (ts_diff + (jb->rtptime_delta * jb->buffer_len))* 1000000 / clockrate; ts_diff_us += ((long long) jb->clock_drift_val * seq_diff); ts_diff_us += ((long long) jb->dtmf_mult_factor * DELAY_FACTOR); timeval_add_usec(&p->ttq_entry.when, ts_diff_us); ts_diff_us = timeval_diff(&p->ttq_entry.when, &rtpe_now); if (ts_diff_us > 1000000) { // more than one second, can't be right ilog(LOG_DEBUG, "Partial reset due to timestamp"); jb->first_send.tv_sec = 0; p->ttq_entry.when = rtpe_now; } if(jb->prev_seq_ts.tv_sec == 0) jb->prev_seq_ts = rtpe_now; if((timeval_diff(&p->ttq_entry.when, &jb->prev_seq_ts) < 0) && (curr_seq > jb->prev_seq)) { p->ttq_entry.when = jb->prev_seq_ts; timeval_add_usec(&p->ttq_entry.when, DELAY_FACTOR); } if(timeval_diff(&p->ttq_entry.when, &jb->prev_seq_ts) > 0) { jb->prev_seq_ts = p->ttq_entry.when; jb->prev_seq = curr_seq; } if(seq_diff > 3000) //readjust after 3k packets jb->first_send.tv_sec = 0; timerthread_queue_push(&jb->ttq, &p->ttq_entry); return 0; } static int handle_clock_drift(struct media_packet *mp) { ilog(LOG_DEBUG, "handle_clock_drift"); struct jitter_buffer *jb = mp->stream->jb; int seq_diff = ntohs(mp->rtp->seq_num) - jb->first_seq; if(((seq_diff % CLOCK_DRIFT_MULT) != 0) || !seq_diff) return 0; unsigned long ts = ntohl(mp->rtp->timestamp); int payload_type = (mp->rtp->m_pt & 0x7f); int clockrate = get_clock_rate(mp, payload_type); if(!clockrate) { return 0; } long ts_diff = (uint32_t) ts - (uint32_t) jb->first_send_ts; long long ts_diff_us = (long long) (ts_diff)* 1000000 / clockrate; struct timeval to_send = jb->first_send; timeval_add_usec(&to_send, ts_diff_us); long long time_diff = timeval_diff(&rtpe_now, &to_send); jb->clock_drift_val = time_diff/seq_diff; if(jb->clock_drift_val < -10000 || jb->clock_drift_val > 10000) { //disable jb if clock drift greater than 10 ms jb->disabled = 1; jitter_buffer_flush(jb); ilog(LOG_DEBUG, "JB disabled due to clock drift"); return 1; } return 0; } int buffer_packet(struct media_packet *mp, const str *s) { struct jb_packet *p = NULL; int ret = 1; // must call stream_packet mp->call = mp->sfd->call; call_t *call = mp->call; rwlock_lock_r(&call->master_lock); mp->stream = mp->sfd->stream; mp->media = mp->stream->media; struct jitter_buffer *jb = mp->stream->jb; if (!jb || jb->disabled || !PS_ISSET(mp->sfd->stream, RTP)) goto end; if(jb->initial_pkts < INITIAL_PACKETS) { //Ignore initial Payload Type 126 if any jb->initial_pkts++; goto end; } p = get_jb_packet(mp, s); if (!p) goto end; if (PS_ISSET(mp->sfd->stream, RTCP) && rtcp_demux_is_rtcp((void *) &p->mp.raw)){ ilog(LOG_DEBUG, "Discarding from JB. This is RTCP packet. SSRC %u Payload %d", ntohl(p->mp.rtp->ssrc), (p->mp.rtp->m_pt & 0x7f)); goto end; } ilog(LOG_DEBUG, "Handling JB packet on: %s:%d (RTP SSRC %u Payload: %d)", sockaddr_print_buf(&mp->stream->endpoint.address), mp->stream->endpoint.port, ntohl(p->mp.rtp->ssrc), (p->mp.rtp->m_pt & 0x7f)); mp = &p->mp; mutex_lock(&jb->lock); int payload_type = (mp->rtp->m_pt & 0x7f); int seq = ntohs(mp->rtp->seq_num); int marker = (mp->rtp->m_pt & 0x80) ? 1 : 0; int dtmf = 0; const rtp_payload_type *rtp_pt = codec_rtp_pt(mp, payload_type); if(rtp_pt) { if(rtp_pt->codec_def && rtp_pt->codec_def->dtmf) dtmf = 1; } if(marker || (jb->ssrc != ntohl(mp->rtp->ssrc)) || seq == 0 ) { //marker or ssrc change or sequence wrap jb->first_send.tv_sec = 0; } if(jb->clock_rate && jb->payload_type != payload_type) { //reset in case of payload change if(!dtmf) jb->first_send.tv_sec = 0; else jb->dtmf_mult_factor++; } if(!dtmf && jb->dtmf_mult_factor) { //reset after DTMF ends jb->first_send.tv_sec = 0; jb->dtmf_mult_factor=0; } if (jb->first_send.tv_sec) { if(rtpe_config.jb_clock_drift) { if(handle_clock_drift(mp)) goto end_unlock; } ret = queue_packet(mp,p); } else { // store data from first packet and use for successive packets and queue the first packet unsigned long ts = ntohl(mp->rtp->timestamp); payload_type = (mp->rtp->m_pt & 0x7f); int clockrate = get_clock_rate(mp, payload_type); if(!clockrate){ if(jb->rtptime_delta && payload_type != COMFORT_NOISE) { //ignore CN ilog(LOG_DEBUG, "Jitter reset due to unknown payload = %d", payload_type); reset_jitter_buffer(jb); } goto end_unlock; } p->ttq_entry.when = jb->first_send = rtpe_now; jb->first_send_ts = ts; jb->first_seq = ntohs(mp->rtp->seq_num); jb->ssrc = ntohl(mp->rtp->ssrc); if(jb->rtptime_delta) ret = queue_packet(mp,p); if(!dtmf) jb->rtptime_delta = 0; } // packet consumed? if (ret == 0) p = NULL; check_buffered_packets(jb); end_unlock: mutex_unlock(&jb->lock); end: rwlock_unlock_r(&call->master_lock); if (p) jb_packet_free(&p); return ret; } static void increment_buffer(struct jitter_buffer *jb) { if(jb->buffer_len < rtpe_config.jb_length) jb->buffer_len++; } static void decrement_buffer(struct jitter_buffer *jb) { if(jb->buffer_len > 0) jb->buffer_len--; } static void set_jitter_values(struct media_packet *mp) { struct jitter_buffer *jb = mp->stream->jb; if(!jb || !mp->rtp) return; int curr_seq = ntohs(mp->rtp->seq_num); int payload_type = (mp->rtp->m_pt & 0x7f); int dtmf = 0; const rtp_payload_type *rtp_pt = codec_rtp_pt(mp, payload_type); if(rtp_pt) { if(rtp_pt->codec_def && rtp_pt->codec_def->dtmf) dtmf = 1; } if(jb->next_exp_seq && !dtmf) { mutex_lock(&jb->lock); if(curr_seq > jb->next_exp_seq) { int marker = (mp->rtp->m_pt & 0x80) ? 1 : 0; if(!marker) { ilog(LOG_DEBUG, "missing seq exp seq =%d, received seq= %d", jb->next_exp_seq, curr_seq); increment_buffer(jb); jb->cont_frames = 0; jb->cont_miss++; } } else if(curr_seq < jb->next_exp_seq) { //Might be duplicate or sequence already crossed jb->cont_frames = 0; if((curr_seq == 0) || (jb->next_exp_seq - curr_seq) > 65500) //sequence wrap jb->next_exp_seq = 0; } else { jb->cont_frames++; jb->cont_miss = 0; if(jb->cont_frames >= CONT_SEQ_COUNT) { decrement_buffer(jb); jb->cont_frames = 0; } } if(jb->cont_miss >= CONT_MISS_COUNT) reset_jitter_buffer(jb); mutex_unlock(&jb->lock); } if(curr_seq >= jb->next_exp_seq) jb->next_exp_seq = curr_seq + 1; } static void __jb_send_later(struct timerthread_queue *ttq, void *p) { struct jb_packet *cp = p; set_jitter_values(&cp->mp); play_buffered(p); }; // jb and call are locked static void __jb_send_now(struct timerthread_queue *ttq, void *p) { struct jitter_buffer *jb = (void *) ttq; mutex_unlock(&jb->lock); rwlock_unlock_r(&jb->call->master_lock); __jb_send_later(ttq, p); rwlock_lock_r(&jb->call->master_lock); mutex_lock(&jb->lock); }; static void __jb_free(void *p) { struct jitter_buffer *jb = p; jitter_buffer_free(&jb); } void __jb_packet_free(void *p) { struct jb_packet *jbp = p; jb_packet_free(&jbp); } void jitter_buffer_launch(void) { timerthread_launch(&jitter_buffer_thread, rtpe_config.scheduling, rtpe_config.priority, "jitter buffer"); } struct jitter_buffer *jitter_buffer_new(call_t *c) { ilog(LOG_DEBUG, "creating jitter_buffer"); struct jitter_buffer *jb = timerthread_queue_new("jitter_buffer", sizeof(*jb), &jitter_buffer_thread, __jb_send_now, __jb_send_later, __jb_free, __jb_packet_free); mutex_init(&jb->lock); jb->call = obj_get(c); return jb; } void jitter_buffer_free(struct jitter_buffer **jbp) { if (!jbp || !*jbp) return; ilog(LOG_DEBUG, "freeing jitter_buffer"); mutex_destroy(&(*jbp)->lock); if ((*jbp)->call) obj_put((*jbp)->call); } void jb_packet_free(struct jb_packet **jbp) { if (!jbp || !*jbp) return; bufferpool_unref((*jbp)->buf); media_packet_release(&(*jbp)->mp); g_slice_free1(sizeof(**jbp), *jbp); *jbp = NULL; } rtpengine-mr12.5.1.22/daemon/kernel.c000066400000000000000000000205371474347554000172670ustar00rootroot00000000000000#include "kernel.h" #include #include #include #include #include #include #include #include #include #include "helpers.h" #include "log.h" #include "bufferpool.h" #include "main.h" #include "statistics.h" #include "xt_RTPENGINE.h" #define PREFIX "/proc/rtpengine" #define MMAP_PAGE_SIZE (4096 * 16) struct kernel_interface kernel; static bool kernel_action_table(const char *action, unsigned int id) { char s[64]; int saved_errno; int fd; int i; ssize_t ret; fd = open(PREFIX "/control", O_WRONLY | O_TRUNC); if (fd == -1) return false; i = snprintf(s, sizeof(s), "%s %u\n", action, id); if (i >= sizeof(s)) goto fail; ret = write(fd, s, strlen(s)); if (ret == -1) goto fail; close(fd); return true; fail: saved_errno = errno; close(fd); errno = saved_errno; return false; } static bool kernel_create_table(unsigned int id) { return kernel_action_table("add", id); } static bool kernel_delete_table(unsigned int id) { return kernel_action_table("del", id); } static void *kernel_alloc(size_t len) { void *b = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, kernel.fd, 0); assert(b != NULL && b != MAP_FAILED); return b; } static void kernel_free(void *p, size_t len) { munmap(p, len); } static int kernel_open_table(unsigned int id) { char s[64]; int fd; sprintf(s, PREFIX "/%u/control", id); fd = open(s, O_RDWR | O_TRUNC); if (fd == -1) return -1; return fd; } bool kernel_init_table(void) { if (!kernel.is_open) return true; ssize_t ret; struct rtpengine_command_init cmd = { .cmd = REMG_INIT, .init = { .last_cmd = __REMG_LAST, .msg_size = { [REMG_INIT] = sizeof(struct rtpengine_command_init), [REMG_ADD_TARGET] = sizeof(struct rtpengine_command_add_target), [REMG_DEL_TARGET] = sizeof(struct rtpengine_command_del_target), [REMG_ADD_DESTINATION] = sizeof(struct rtpengine_command_destination), [REMG_ADD_CALL] = sizeof(struct rtpengine_command_add_call), [REMG_DEL_CALL] = sizeof(struct rtpengine_command_del_call), [REMG_ADD_STREAM] = sizeof(struct rtpengine_command_add_stream), [REMG_DEL_STREAM] = sizeof(struct rtpengine_command_del_stream), [REMG_PACKET] = sizeof(struct rtpengine_command_packet), [REMG_INIT_PLAY_STREAMS] = sizeof(struct rtpengine_command_init_play_streams), [REMG_GET_PACKET_STREAM] = sizeof(struct rtpengine_command_get_packet_stream), [REMG_PLAY_STREAM_PACKET] = sizeof(struct rtpengine_command_play_stream_packet), [REMG_PLAY_STREAM] = sizeof(struct rtpengine_command_play_stream), [REMG_STOP_STREAM] = sizeof(struct rtpengine_command_stop_stream), [REMG_FREE_PACKET_STREAM] = sizeof(struct rtpengine_command_free_packet_stream), }, .rtpe_stats = rtpe_stats, }, }; ret = write(kernel.fd, &cmd, sizeof(cmd)); if (ret <= 0) return false; return true; } bool kernel_setup_table(unsigned int id) { if (kernel.is_wanted) abort(); kernel.is_wanted = true; if (!kernel_delete_table(id) && errno != ENOENT) { ilog(LOG_ERR, "FAILED TO DELETE KERNEL TABLE %i (%s), KERNEL FORWARDING DISABLED", id, strerror(errno)); return false; } if (!kernel_create_table(id)) { ilog(LOG_ERR, "FAILED TO CREATE KERNEL TABLE %i (%s), KERNEL FORWARDING DISABLED", id, strerror(errno)); return false; } int fd = kernel_open_table(id); if (fd == -1) { ilog(LOG_ERR, "FAILED TO OPEN KERNEL TABLE %i (%s), KERNEL FORWARDING DISABLED", id, strerror(errno)); return false; } kernel.fd = fd; kernel.table = id; kernel.is_open = true; shm_bufferpool = bufferpool_new2(kernel_alloc, kernel_free, MMAP_PAGE_SIZE); return true; } void kernel_shutdown_table(void) { if (!kernel.is_open) return; // ignore errors close(kernel.fd); kernel_delete_table(kernel.table); } void kernel_add_stream(struct rtpengine_target_info *mti) { ssize_t ret; if (!kernel.is_open) return; struct rtpengine_command_add_target cmd = { .cmd = REMG_ADD_TARGET, .target = *mti, }; ret = write(kernel.fd, &cmd, sizeof(cmd)); if (ret == sizeof(cmd)) return; ilog(LOG_ERROR, "Failed to push relay stream to kernel: %s", strerror(errno)); } void kernel_add_destination(struct rtpengine_destination_info *mdi) { ssize_t ret; if (!kernel.is_open) return; struct rtpengine_command_destination cmd = { .cmd = REMG_ADD_DESTINATION, .destination = *mdi, }; ret = write(kernel.fd, &cmd, sizeof(cmd)); if (ret == sizeof(cmd)) return; ilog(LOG_ERROR, "Failed to push relay stream destination to kernel: %s", strerror(errno)); } bool kernel_del_stream(struct rtpengine_command_del_target *cmd) { ssize_t ret; if (!kernel.is_open) return false; cmd->cmd = REMG_DEL_TARGET; ret = write(kernel.fd, cmd, sizeof(*cmd)); if (ret == sizeof(*cmd)) return true; ilog(LOG_ERROR, "Failed to delete relay stream from kernel: %s", strerror(errno)); return false; } unsigned int kernel_add_call(const char *id) { ssize_t ret; if (!kernel.is_open) return UNINIT_IDX; struct rtpengine_command_add_call cmd = { .cmd = REMG_ADD_CALL, }; snprintf(cmd.call.call_id, sizeof(cmd.call.call_id), "%s", id); ret = read(kernel.fd, &cmd, sizeof(cmd)); if (ret != sizeof(cmd)) return UNINIT_IDX; return cmd.call.call_idx; } void kernel_del_call(unsigned int idx) { ssize_t ret; if (!kernel.is_open) return; struct rtpengine_command_del_call cmd = { .cmd = REMG_DEL_CALL, .call_idx = idx, }; ret = write(kernel.fd, &cmd, sizeof(cmd)); if (ret == sizeof(cmd)) return; ilog(LOG_ERROR, "Failed to delete intercept call from kernel: %s", strerror(errno)); } unsigned int kernel_add_intercept_stream(unsigned int call_idx, const char *id) { ssize_t ret; if (!kernel.is_open) return UNINIT_IDX; struct rtpengine_command_add_stream cmd = { .cmd = REMG_ADD_STREAM, .stream.idx.call_idx = call_idx, }; snprintf(cmd.stream.stream_name, sizeof(cmd.stream.stream_name), "%s", id); ret = read(kernel.fd, &cmd, sizeof(cmd)); if (ret != sizeof(cmd)) return UNINIT_IDX; return cmd.stream.idx.stream_idx; } bool kernel_init_player(int num_media, int num_sessions) { if (num_media <= 0 || num_sessions <= 0) return false; if (!kernel.is_open) return false; struct rtpengine_command_init_play_streams ips = { .cmd = REMG_INIT_PLAY_STREAMS, .num_packet_streams = num_media, .num_play_streams = num_sessions, }; ssize_t ret = write(kernel.fd, &ips, sizeof(ips)); if (ret != sizeof(ips)) return false; kernel.use_player = true; return true; } unsigned int kernel_get_packet_stream(void) { if (!kernel.use_player) return -1; struct rtpengine_command_get_packet_stream gps = { .cmd = REMG_GET_PACKET_STREAM }; ssize_t ret = read(kernel.fd, &gps, sizeof(gps)); if (ret != sizeof(gps)) return -1; return gps.packet_stream_idx; } bool kernel_add_stream_packet(unsigned int idx, const char *buf, size_t len, unsigned long delay_ms, uint32_t ts, uint32_t dur) { if (!kernel.use_player) return false; size_t total_len = len + sizeof(struct rtpengine_command_play_stream_packet); struct rtpengine_command_play_stream_packet *cmd = alloca(total_len); *cmd = (__typeof__(*cmd)) { .cmd = REMG_PLAY_STREAM_PACKET, .play_stream_packet.packet_stream_idx = idx, .play_stream_packet.delay_ms = delay_ms, .play_stream_packet.delay_ts = ts, .play_stream_packet.duration_ts = dur, }; memcpy(&cmd->play_stream_packet.data, buf, len); ssize_t ret = write(kernel.fd, cmd, total_len); if (ret != total_len) return false; return true; } unsigned int kernel_start_stream_player(struct rtpengine_play_stream_info *info) { if (!kernel.use_player) return -1; struct rtpengine_command_play_stream ps = { .cmd = REMG_PLAY_STREAM, .info = *info, }; ssize_t ret = read(kernel.fd, &ps, sizeof(ps)); if (ret == sizeof(ps)) return ps.play_idx; return -1; } bool kernel_stop_stream_player(unsigned int idx) { if (!kernel.use_player) return false; struct rtpengine_command_stop_stream ss = { .cmd = REMG_STOP_STREAM, .play_idx = idx, }; ssize_t ret = write(kernel.fd, &ss, sizeof(ss)); if (ret == sizeof(ss)) return true; return false; } bool kernel_free_packet_stream(unsigned int idx) { if (!kernel.use_player) return false; struct rtpengine_command_free_packet_stream fps = { .cmd = REMG_FREE_PACKET_STREAM, .packet_stream_idx = idx, }; ssize_t ret = write(kernel.fd, &fps, sizeof(fps)); if (ret == sizeof(fps)) return true; return false; } rtpengine-mr12.5.1.22/daemon/load.c000066400000000000000000000025651474347554000167270ustar00rootroot00000000000000#include "load.h" #include #include #include #include #include #include #include "helpers.h" #include "log.h" #include "main.h" int load_average; // times 100 int cpu_usage; // percent times 100 (0 - 9999) static long used_last, idle_last; enum thread_looper_action load_thread(void) { // anything to do? if (!rtpe_config.load_limit && !rtpe_config.cpu_limit) return TLA_BREAK; if (rtpe_config.load_limit) { double loadavg; if (getloadavg(&loadavg, 1) >= 1) g_atomic_int_set(&load_average, (int) (loadavg * 100.0)); else ilog(LOG_WARN, "Failed to obtain load average: %s", strerror(errno)); } if (rtpe_config.cpu_limit) { FILE *f; f = fopen("/proc/stat", "r"); if (f) { long user_now, nice_now, system_now, idle_now; if (fscanf(f, "cpu %li %li %li %li", &user_now, &nice_now, &system_now, &idle_now) == 4) { long used_now = user_now + nice_now + system_now; long used_secs = used_now - used_last; long idle_secs = idle_now - idle_last; long total_secs = used_secs + idle_secs; if (total_secs > 0 && used_last && idle_last) g_atomic_int_set(&cpu_usage, (int) (used_secs * 10000 / total_secs)); used_last = used_now; idle_last = idle_now; } else ilog(LOG_WARN, "Failed to obtain CPU usage"); fclose(f); } } return TLA_CONTINUE; } rtpengine-mr12.5.1.22/daemon/log.c000066400000000000000000000122221474347554000165600ustar00rootroot00000000000000#include "log.h" #include #include #include #include #include "str.h" #include "call.h" #include "poller.h" #include "ice.h" #include "loglib.h" #include "main.h" __thread struct log_info log_info; __thread GSList *log_info_stack; int _log_facility_cdr = 0; int _log_facility_rtcp = 0; int _log_facility_dtmf = 0; typedef void (ilog_prefix_func)(char *prefix, size_t prefix_len); static ilog_prefix_func ilog_prefix_default; static ilog_prefix_func ilog_prefix_parsable; static ilog_prefix_func *ilog_prefix = ilog_prefix_default; static ilog_prefix_func * const ilog_prefix_funcs[__LF_LAST] = { [LF_DEFAULT] = ilog_prefix_default, [LF_PARSABLE] = ilog_prefix_parsable, }; static void ilog_prefix_default(char *prefix, size_t prefix_len) { switch (log_info.e) { case LOG_INFO_NONE: prefix[0] = 0; break; case LOG_INFO_CALL: snprintf(prefix, prefix_len, "[" STR_FORMAT_M "]: ", STR_FMT_M(&log_info.call->callid)); break; case LOG_INFO_STREAM_FD: if (log_info.stream_fd->call) { if (log_info.stream_fd->stream) snprintf(prefix, prefix_len, "[" STR_FORMAT_M "/" STR_FORMAT_M "/%u port %5u]: ", STR_FMT_M(&log_info.stream_fd->call->callid), STR_FMT_M(&log_info.stream_fd->stream->media->monologue->tag), log_info.stream_fd->stream->media->index, log_info.stream_fd->socket.local.port); else snprintf(prefix, prefix_len, "[" STR_FORMAT_M " port %5u]: ", STR_FMT_M(&log_info.stream_fd->call->callid), log_info.stream_fd->socket.local.port); } else snprintf(prefix, prefix_len, "[no call, port %5u]: ", log_info.stream_fd->socket.local.port); break; case LOG_INFO_STR: snprintf(prefix, prefix_len, "[" STR_FORMAT_M "]: ", STR_FMT_M(log_info.str)); break; case LOG_INFO_C_STRING: snprintf(prefix, prefix_len, "[%s%s%s]: ", FMT_M(log_info.cstr)); break; case LOG_INFO_ICE_AGENT: snprintf(prefix, prefix_len, "[" STR_FORMAT_M "/" STR_FORMAT_M "/%u]: ", STR_FMT_M(&log_info.ice_agent->call->callid), STR_FMT_M(&log_info.ice_agent->media->monologue->tag), log_info.ice_agent->media->index); break; case LOG_INFO_MEDIA: snprintf(prefix, prefix_len, "[" STR_FORMAT_M "/" STR_FORMAT_M "/%u]: ", STR_FMT_M(&log_info.call->callid), STR_FMT_M(&log_info.media->monologue->tag), log_info.media->index); break; } } static void ilog_prefix_parsable(char *prefix, size_t prefix_len) { switch (log_info.e) { case LOG_INFO_NONE: prefix[0] = 0; break; case LOG_INFO_CALL: snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\"]: ", STR_FMT(&log_info.call->callid)); break; case LOG_INFO_STREAM_FD: if (log_info.stream_fd->call) { if (log_info.stream_fd->stream) snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\" tag=\""STR_FORMAT"\" index=\"%u\" port=\"%5u\"]: ", STR_FMT(&log_info.stream_fd->call->callid), STR_FMT(&log_info.stream_fd->stream->media->monologue->tag), log_info.stream_fd->stream->media->index, log_info.stream_fd->socket.local.port); else snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\" port=\"%5u\"]: ", STR_FMT(&log_info.stream_fd->call->callid), log_info.stream_fd->socket.local.port); } break; case LOG_INFO_STR: snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\"]: ", STR_FMT(log_info.str)); break; case LOG_INFO_C_STRING: snprintf(prefix, prefix_len, "[ID=\"%s\"]: ", log_info.cstr); break; case LOG_INFO_ICE_AGENT: snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\" tag=\""STR_FORMAT"\" index=\"%u\"]: ", STR_FMT(&log_info.ice_agent->call->callid), STR_FMT(&log_info.ice_agent->media->monologue->tag), log_info.ice_agent->media->index); break; case LOG_INFO_MEDIA: snprintf(prefix, prefix_len, "[ID=\""STR_FORMAT"\" tag=\""STR_FORMAT"\" index=\"%u\"]: ", STR_FMT(&log_info.call->callid), STR_FMT(&log_info.media->monologue->tag), log_info.media->index); break; } } void __ilog(int prio, const char *fmt, ...) { char prefix[300]; va_list ap; ilog_prefix(prefix, sizeof(prefix)); va_start(ap, fmt); __vpilog(prio, prefix, fmt, ap); va_end(ap); } void log_format(enum log_format f) { if (f >= __LF_LAST) die("Invalid log format enum"); ilog_prefix = ilog_prefix_funcs[f]; if (!ilog_prefix) die("Invalid log format enum"); } void cdrlog(const char* cdrbuffer) { if (_log_facility_cdr) { syslog(LOG_INFO | _log_facility_cdr, "%s", cdrbuffer); } } void dtmflog(GString *s) { if (_log_facility_dtmf) { syslog(LOG_INFO | _log_facility_dtmf, "%s", s->str); } } void rtcplog(const char* cdrbuffer) { syslog(LOG_INFO | _log_facility_rtcp, "%s", cdrbuffer); } int get_local_log_level(unsigned int subsystem_idx) { call_t *call = NULL; switch (log_info.e) { case LOG_INFO_CALL: case LOG_INFO_MEDIA: call = log_info.call; break; case LOG_INFO_STREAM_FD: call = log_info.stream_fd->call; break; case LOG_INFO_ICE_AGENT: call = log_info.ice_agent->call; break; default: break; } if (!call) return -1; if (CALL_ISSET(call, FOREIGN)) return 5 | LOG_FLAG_MAX; if (CALL_ISSET(call, DEBUG)) return 8; return -1; } rtpengine-mr12.5.1.22/daemon/log.h000066400000000000000000000020031474347554000165610ustar00rootroot00000000000000#ifndef __LOG_H__ #define __LOG_H__ #include "str.h" #include "loglib.h" #include "types.h" struct ice_agent; enum log_format; struct log_info { union { call_t *call; stream_fd *stream_fd; const str *str; const char *cstr; struct ice_agent *ice_agent; void *ptr; }; union { struct call_media *media; }; enum { LOG_INFO_NONE = 0, LOG_INFO_CALL, LOG_INFO_STREAM_FD, LOG_INFO_STR, LOG_INFO_C_STRING, LOG_INFO_ICE_AGENT, LOG_INFO_MEDIA, } e; }; extern int _log_facility_cdr; extern int _log_facility_rtcp; extern int _log_facility_dtmf; extern __thread struct log_info log_info; extern __thread GSList *log_info_stack; void cdrlog(const char* cdrbuffer); void rtcplog(const char* cdrbuffer); void dtmflog(GString *s); void log_format(enum log_format); void __ilog(int prio, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); // call debug #ifdef __DEBUG #define __C_DBG(x...) ilog(LOG_DEBUG, x) #else #define __C_DBG(x...) ilogs(internals, LOG_DEBUG, x) #endif #endif rtpengine-mr12.5.1.22/daemon/log_funcs.h000066400000000000000000000051151474347554000177660ustar00rootroot00000000000000#ifndef __LOG_FUNCS_H__ #define __LOG_FUNCS_H__ #include "helpers.h" #include "obj.h" #include "call.h" #include "media_socket.h" #include "ice.h" #include "log.h" INLINE void __log_info_release(struct log_info *li) { switch (li->e) { case LOG_INFO_NONE: return; case LOG_INFO_CALL: case LOG_INFO_MEDIA: obj_put(li->call); break; case LOG_INFO_STREAM_FD: obj_put(li->stream_fd); break; case LOG_INFO_ICE_AGENT: obj_put(&li->ice_agent->tt_obj); break; case LOG_INFO_STR: case LOG_INFO_C_STRING: break; } } INLINE void __log_info_push(void) { struct log_info *copy = g_slice_alloc(sizeof(*copy)); *copy = log_info; log_info_stack = g_slist_prepend(log_info_stack, copy); ZERO(log_info); } // should be paired with any invocation of log_info_X() INLINE void log_info_pop(void) { __log_info_release(&log_info); if (!log_info_stack) { ZERO(log_info); return; } struct log_info *next = log_info_stack->data; log_info = *next; g_slice_free1(sizeof(*next), next); log_info_stack = g_slist_delete_link(log_info_stack, log_info_stack); } // should be used with non-refcounted log info pieces INLINE void log_info_pop_until(void *p) { assert(p != NULL); while (log_info.ptr) { void *prev = log_info.ptr; log_info_pop(); if (prev == p) break; } } // clears current log context and entire stack INLINE void log_info_reset(void) { __log_info_release(&log_info); ZERO(log_info); while (log_info_stack) { struct log_info *element = log_info_stack->data; __log_info_release(element); g_slice_free1(sizeof(*element), element); log_info_stack = g_slist_delete_link(log_info_stack, log_info_stack); } } INLINE void log_info_call(call_t *c) { if (!c) return; __log_info_push(); log_info.e = LOG_INFO_CALL; log_info.call = obj_get(c); } INLINE void log_info_stream_fd(stream_fd *sfd) { if (!sfd) return; __log_info_push(); log_info.e = LOG_INFO_STREAM_FD; log_info.stream_fd = obj_get(sfd); } INLINE void log_info_str(const str *s) { if (!s || !s->s) return; __log_info_push(); log_info.e = LOG_INFO_STR; log_info.str = s; } INLINE void log_info_c_string(const char *s) { if (!s) return; __log_info_push(); log_info.e = LOG_INFO_C_STRING; log_info.cstr = s; } INLINE void log_info_ice_agent(struct ice_agent *ag) { if (!ag) return; __log_info_push(); log_info.e = LOG_INFO_ICE_AGENT; log_info.ice_agent = obj_get(&ag->tt_obj); } INLINE void log_info_media(struct call_media *m) { if (!m) return; if (!m->call) return; __log_info_push(); log_info.e = LOG_INFO_MEDIA; log_info.call = obj_get(m->call); log_info.media = m; } #endif rtpengine-mr12.5.1.22/daemon/loglevels.h000066400000000000000000000011001474347554000177710ustar00rootroot00000000000000ll(core, "Everything that isn't part of another subsystem") ll(spandsp, "Log messages generated by SpanDSP directly") ll(ffmpeg, "Log messages generated by ffmpeg directly") ll(transcoding, "Media and RTP transcoding") ll(codec, "Codec negotiation") ll(rtcp, "RTCP handling") ll(ice, "ICE negotiation") ll(crypto, "Negotiation of SRTP, crypto suites, DTLS, SDES") ll(srtp, "SRTP encryption and decryption") ll(internals, "Noisy low-level internals") ll(http, "HTTP, HTTPS, Websockets") ll(control, "Control protocols including SDP exchanges, CLI") ll(dtx, "DTX timer/buffer") rtpengine-mr12.5.1.22/daemon/main.c000066400000000000000000001756021474347554000167370ustar00rootroot00000000000000#include "main.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_MQTT #include #endif #ifndef WITHOUT_NFTABLES #include #endif #include "poller.h" #include "control_tcp.h" #include "control_udp.h" #include "control_ng.h" #include "helpers.h" #include "log.h" #include "call.h" #include "kernel.h" #include "redis.h" #include "sdp.h" #include "dtls.h" #include "call_interfaces.h" #include "cli.h" #include "graphite.h" #include "ice.h" #include "socket.h" #include "media_socket.h" #include "homer.h" #include "recording.h" #include "auxlib.h" #include "rtcp.h" #include "iptables.h" #include "statistics.h" #include "codeclib.h" #include "load.h" #include "ssllib.h" #include "media_player.h" #include "dtmf.h" #include "jitter_buffer.h" #include "websocket.h" #include "codec.h" #include "mqtt.h" #include "janus.h" #include "nftables.h" #include "bufferpool.h" #include "log_funcs.h" #include "uring.h" struct poller **rtpe_pollers; struct poller *rtpe_control_poller; static unsigned int num_rtpe_pollers; static unsigned int num_poller_threads; unsigned int num_media_pollers; unsigned int rtpe_poller_rr_iter; struct rtpengine_config initial_rtpe_config; static GQueue rtpe_tcp = G_QUEUE_INIT; static GQueue rtpe_udp = G_QUEUE_INIT; static GQueue rtpe_cli = G_QUEUE_INIT; GQueue rtpe_control_ng = G_QUEUE_INIT; GQueue rtpe_control_ng_tcp = G_QUEUE_INIT; struct bufferpool *shm_bufferpool; struct rtpengine_config rtpe_config = { // non-zero defaults .kernel_table = -1, .max_sessions = -1, .delete_delay = 30, .redis_subscribed_keyspaces = G_QUEUE_INIT, .redis_expires_secs = 86400, .interfaces = TYPED_GQUEUE_INIT, .homer_protocol = SOCK_DGRAM, .homer_id = 2001, .homer_ng_capt_proto = 0x3d, // first available value in HEP proto specification .port_min = 30000, .port_max = 40000, .redis_db = -1, .redis_write_db = -1, .redis_allowed_errors = -1, .redis_disable_time = 10, .redis_connect_timeout = 1000, .media_num_threads = -1, .dtls_rsa_key_size = 2048, .dtls_mtu = 1200, // chrome default mtu .max_dtx = 30, .dtx_shift = 5, .dtx_buffer = 10, .dtx_lag = 100, .audio_buffer_delay = 5, .audio_buffer_length = 500, .mqtt_port = 1883, .mqtt_keepalive = 30, .mqtt_publish_interval = 5000, .dtmf_digit_delay = 2500, .rtcp_interval = 5000, .common = { .log_levels = { [log_level_index_internals] = -1, }, }, .max_recv_iters = MAX_RECV_ITERS, .kernel_player_media = 128, }; static void sighandler(gpointer x) { sigset_t ss; int ret; struct timespec ts; sigemptyset(&ss); sigaddset(&ss, SIGINT); sigaddset(&ss, SIGTERM); sigaddset(&ss, SIGUSR1); sigaddset(&ss, SIGUSR2); ts.tv_sec = thread_sleep_time / 1000; ts.tv_nsec = (thread_sleep_time % 1000) * 1000 * 1000; while (!rtpe_shutdown) { thread_cancel_enable(); ret = sigtimedwait(&ss, NULL, &ts); thread_cancel_disable(); if (ret == -1) { if (errno == EAGAIN || errno == EINTR) continue; abort(); } if (ret == SIGINT || ret == SIGTERM) rtpe_shutdown = true; else if (ret == SIGUSR1) { for (unsigned int i = 0; i < num_log_levels; i++) { g_atomic_int_add(&rtpe_config.common.log_levels[i], -1); ilogsn(i, __get_log_level(i), "Decreased '%s' log level to %d\n", log_level_names[i], __get_log_level(i)); } } else if (ret == SIGUSR2) { for (unsigned int i = 0; i < num_log_levels; i++) { g_atomic_int_add(&rtpe_config.common.log_levels[i], 1); ilogsn(i, __get_log_level(i), "Increased '%s' log level to %d\n", log_level_names[i], __get_log_level(i)); } } else abort(); } } static void signals(void) { sigset_t ss; sigfillset(&ss); sigdelset(&ss, SIGABRT); sigdelset(&ss, SIGSEGV); sigdelset(&ss, SIGQUIT); sigprocmask(SIG_SETMASK, &ss, NULL); pthread_sigmask(SIG_SETMASK, &ss, NULL); } static void __find_if_name(char *s, struct ifaddrs *ifas, GQueue *addrs) { sockaddr_t *addr; for (struct ifaddrs *ifa = ifas; ifa; ifa = ifa->ifa_next) { if (!strcmp(s, "any")) { if ((ifa->ifa_flags & IFF_LOOPBACK)) continue; } else if (strcmp(ifa->ifa_name, s)) continue; if (!(ifa->ifa_flags & IFF_UP)) continue; if (!ifa->ifa_addr) continue; addr = g_slice_alloc(sizeof(*addr)); if (ifa->ifa_addr->sa_family == AF_INET) { struct sockaddr_in *sin = (void *) ifa->ifa_addr; addr->family = get_socket_family_enum(SF_IP4); addr->ipv4 = sin->sin_addr; } else if (ifa->ifa_addr->sa_family == AF_INET6) { struct sockaddr_in6 *sin = (void *) ifa->ifa_addr; if (sin->sin6_scope_id) { // link-local g_slice_free1(sizeof(*addr), addr); continue; } addr->family = get_socket_family_enum(SF_IP6); addr->ipv6 = sin->sin6_addr; } else { g_slice_free1(sizeof(*addr), addr); continue; } // got one ilog(LOG_DEBUG, "Determined address %s for interface '%s'", sockaddr_print_buf(addr), s); g_queue_push_tail(addrs, addr); } } static void __resolve_ifname(char *s, GQueue *addrs) { struct addrinfo hints = { .ai_family = AF_UNSPEC, .ai_socktype = SOCK_DGRAM, }; struct addrinfo *res = NULL; int status = getaddrinfo(s, NULL, &hints, &res); if (status) { ilog(LOG_ERR, "Failed to resolve '%s' as a DNS host name: %s", s, gai_strerror(status)); return; } for (struct addrinfo *r = res; r; r = r->ai_next) { sockaddr_t *addr = g_slice_alloc0(sizeof(*addr)); if (r->ai_family == AF_INET) { struct sockaddr_in *sin = (void *) r->ai_addr; assert(r->ai_addrlen >= sizeof(*sin)); addr->family = __get_socket_family_enum(SF_IP4); addr->ipv4 = sin->sin_addr; } else if (r->ai_family == AF_INET6) { struct sockaddr_in6 *sin = (void *) r->ai_addr; assert(r->ai_addrlen >= sizeof(*sin)); addr->family = __get_socket_family_enum(SF_IP6); addr->ipv6 = sin->sin6_addr; } else { g_slice_free1(sizeof(*addr), addr); continue; } ilog(LOG_DEBUG, "Determined address %s for host name '%s'", sockaddr_print_buf(addr), s); g_queue_push_tail(addrs, addr); } freeaddrinfo(res); } static int if_addr_parse(intf_config_q *q, char *s, struct ifaddrs *ifas) { str name; char *c; sockaddr_t *addr, adv; GQueue addrs = G_QUEUE_INIT; struct intf_config *ifa; while (*s == ' ') s++; /* name */ c = strpbrk(s, "/="); if (c) { char cc = *c; *c++ = 0; str_init(&name, s); s = c; if (cc == '=') { // foo=bar ifa = g_slice_alloc0(sizeof(*ifa)); str_init_dup_str(&ifa->name, &name); str_init_dup(&ifa->alias, s); t_queue_push_tail(q, ifa); return 0; } } else str_init(&name, "default"); /* advertised address */ c = strchr(s, '!'); if (c) *c++ = 0; /* address */ addr = g_slice_alloc(sizeof(*addr)); if (!sockaddr_parse_any(addr, s)) { if (is_addr_unspecified(addr)) return -1; g_queue_push_tail(&addrs, addr); } else { g_slice_free1(sizeof(*addr), addr); // could be an interface name? ilog(LOG_DEBUG, "Could not parse '%s' as network address, checking to see if " "it's an interface", s); __find_if_name(s, ifas, &addrs); if (!addrs.length) { ilog(LOG_DEBUG, "'%s' is not an interface, attempting to resolve it as DNS host name", s); __resolve_ifname(s, &addrs); } } if (!addrs.length) // nothing found return -1; ZERO(adv); if (c) { if (sockaddr_parse_any(&adv, c)) { ilog(LOG_DEBUG, "Could not parse '%s' as an address, attempting DNS lookup", c); if (sockaddr_getaddrinfo(&adv, c)) { ilog(LOG_WARN, "DNS lookup for '%s' failed", c); return -1; } } if (is_addr_unspecified(&adv)) return -1; } while ((addr = g_queue_pop_head(&addrs))) { ifa = g_slice_alloc0(sizeof(*ifa)); str_init_dup_str(&ifa->name, &name); ifa->local_address.addr = *addr; ifa->local_address.type = socktype_udp; ifa->advertised_address.addr = adv; if (is_addr_unspecified(&ifa->advertised_address.addr)) ifa->advertised_address.addr = *addr; ifa->advertised_address.type = ifa->local_address.type; ifa->port_min = rtpe_config.port_min; ifa->port_max = rtpe_config.port_max; // handle "base:suffix" separation for round-robin selection ifa->name_rr_spec = ifa->name; str_token(&ifa->name_base, &ifa->name_rr_spec, ':'); // sets name_rr_spec to null string if no ':' found t_queue_push_tail(q, ifa); g_slice_free1(sizeof(*addr), addr); } return 0; } static int redis_ep_parse(endpoint_t *ep, int *db, char **auth, const char *auth_env, char *s) { char *sl; long l; sl = strrchr(s, '@'); if (sl) { *sl = 0; *auth = g_strdup(s); s = sl+1; } else if ((sl = getenv(auth_env))) *auth = g_strdup(sl); sl = strchr(s, '/'); if (!sl) return -1; *sl = 0; sl++; if (!*sl) return -1; l = strtol(sl, &sl, 10); if (*sl != 0) return -1; if (l < 0) return -1; *db = l; if (endpoint_parse_any_getaddrinfo_full(ep, s)) return -1; return 0; } static void parse_cn_payload(str *out, char **in, const char *def, const char *name) { if (!in || !*in) { if (def) str_init_dup(out, def); return; } int len = g_strv_length(in); if (len < 1) die("Invalid CN payload specified (--%s)", name); out->s = malloc(len); for (int i = 0; i < len; i++) { char *endp; long p = strtol(in[i], &endp, 0); if (endp == in[i] || *endp != '\0') die("Invalid CN payload specified (--%s)", name); if (p < 0 || p > 254) die("Invalid CN payload specified (--%s)", name); if (i == 0 && p > 127) die("Invalid CN payload specified (--%s)", name); out->s[i] = p; } out->len = len; } static endpoint_t *endpoint_dup(const endpoint_t *e) { endpoint_t *r = g_slice_alloc(sizeof(*r)); *r = *e; return r; } static void endpoint_list_dup(GQueue *out, const GQueue *in) { g_queue_init(out); for (GList *l = in->head; l; l = l->next) g_queue_push_tail(out, endpoint_dup(l->data)); } static void parse_listen_list(GQueue *out, char **epv, const char *option) { if (!epv) return; for (; *epv; epv++) { char *ep = *epv; endpoint_t x, y; if (endpoint_parse_any_getaddrinfo_alt(&x, &y, ep)) die("Invalid IP or port '%s' ('%s')", ep, option); if (x.port) g_queue_push_tail(out, endpoint_dup(&x)); if (y.port) g_queue_push_tail(out, endpoint_dup(&y)); } } static void create_listeners(const GQueue *endpoints_in, GQueue *objects_out, void *(*constructor)(const endpoint_t *), bool exclude_port, const char *name) { for (GList *l = endpoints_in->head; l; l = l->next) { endpoint_t *e = l->data; if (exclude_port) interfaces_exclude_port(e->port); void *o = constructor(e); if (!o) die("Failed to open %s connection port (%s): %s", name, endpoint_print_buf(e), strerror(errno)); g_queue_push_tail(objects_out, o); } } static void release_listeners(GQueue *q) { while (q->length) { struct obj *o = g_queue_pop_head(q); obj_release(o); } } static void options(int *argc, char ***argv) { g_autoptr(char_p) if_a = NULL; g_autoptr(char_p) ks_a = NULL; unsigned long uint_keyspace_db; str str_keyspace_db; char **iter; g_autoptr(char_p) listenps = NULL; g_autoptr(char_p) listenudps = NULL; g_autoptr(char_p) listenngs = NULL; g_autoptr(char_p) listenngtcps = NULL; g_autoptr(char_p) listencli = NULL; g_autoptr(char) graphitep = NULL; g_autoptr(char) graphite_prefix_s = NULL; g_autoptr(char) redisps = NULL; g_autoptr(char) redisps_write = NULL; g_autoptr(char) log_facility_cdr_s = NULL; g_autoptr(char) log_facility_rtcp_s = NULL; g_autoptr(char) log_facility_dtmf_s = NULL; g_autoptr(char) log_format = NULL; bool sip_source = false; g_autoptr(char) homerp = NULL; g_autoptr(char) homerproto = NULL; char *endptr; bool codecs = false; double max_load = 0; double max_cpu = 0; g_autoptr(char) dtmf_udp_ep = NULL; g_autoptr(char) endpoint_learning = NULL; g_autoptr(char) dtls_sig = NULL; double silence_detect = 0; g_autoptr(char_p) cn_payload = NULL; g_autoptr(char_p) dtx_cn_params = NULL; bool debug_srtp = false; g_autoptr(char) amr_dtx = NULL; #ifdef HAVE_MQTT g_autoptr(char) mqtt_publish_scope = NULL; #endif g_autoptr(char) mos = NULL; g_autoptr(char) dcc = NULL; g_autoptr(char) use_audio_player = NULL; g_autoptr(char) control_pmtu = NULL; #ifndef WITHOUT_NFTABLES bool nftables_start = false; bool nftables_stop = false; bool nftables_status = false; g_autoptr(char) nftables_family = NULL; #endif GOptionEntry e[] = { { "table", 't', 0, G_OPTION_ARG_INT, &rtpe_config.kernel_table, "Kernel table to use", "INT" }, { "no-fallback",'F', 0, G_OPTION_ARG_NONE, &rtpe_config.no_fallback, "Only start when kernel module is available", NULL }, #ifndef WITHOUT_NFTABLES { "nftables-chain",0,0, G_OPTION_ARG_STRING, &rtpe_config.nftables_chain, "Name of nftables chain to manage", "STR" }, { "nftables-base-chain",0,0, G_OPTION_ARG_STRING,&rtpe_config.nftables_base_chain,"Name of nftables base chain to use", "STR" }, { "nftables-append",0,0, G_OPTION_ARG_NONE, &rtpe_config.nftables_append, "Append instead of prepend created rules", NULL }, { "nftables-family",0,0, G_OPTION_ARG_STRING, &nftables_family, "Address family/ies to manage via nftables", "ip|ip6|ip,ip6" }, { "nftables-start",0,0, G_OPTION_ARG_NONE, &nftables_start, "Just add nftables rules and exit", NULL }, { "nftables-stop",0, 0, G_OPTION_ARG_NONE, &nftables_stop, "Just remove nftables rules and exit", NULL }, { "nftables-status",0, 0, G_OPTION_ARG_NONE, &nftables_status, "Check nftables rules, print result and exit", NULL }, #endif { "interface", 'i', 0, G_OPTION_ARG_STRING_ARRAY,&if_a, "Local interface for RTP", "[NAME/]IP[!IP]"}, { "save-interface-ports",'S', 0, G_OPTION_ARG_NONE, &rtpe_config.save_interface_ports, "Bind ports only on first available interface of desired family", NULL }, { "subscribe-keyspace", 'k', 0, G_OPTION_ARG_STRING_ARRAY,&ks_a, "Subscription keyspace list", "INT INT ..."}, { "listen-ng", 'n', 0, G_OPTION_ARG_STRING_ARRAY, &listenngs, "UDP ports to listen on, NG protocol","[IP46|HOSTNAME:]PORT ..." }, { "listen-tcp-ng", 'N', 0, G_OPTION_ARG_STRING_ARRAY,&listenngtcps,"TCP ports to listen on, NG protocol","[IP46|HOSTNAME:]PORT ..." }, { "listen-cli", 'c', 0, G_OPTION_ARG_STRING_ARRAY, &listencli, "TCP port to listen on, CLI", "[IP46|HOSTNAME:]PORT ..." }, { "listen-tcp", 'l', 0, G_OPTION_ARG_STRING_ARRAY, &listenps, "TCP ports to listen on, legacy","[IP:]PORT ..." }, { "listen-udp", 'u', 0, G_OPTION_ARG_STRING_ARRAY, &listenudps, "UDP ports to listen on, legacy","[IP46|HOSTNAME:]PORT ..." }, { "graphite", 'g', 0, G_OPTION_ARG_STRING, &graphitep, "Address of the graphite server", "IP46|HOSTNAME:PORT" }, { "graphite-interval", 'G', 0, G_OPTION_ARG_INT, &rtpe_config.graphite_interval, "Graphite send interval in seconds", "INT" }, { "graphite-prefix",0, 0, G_OPTION_ARG_STRING, &graphite_prefix_s, "Prefix for graphite line", "STRING"}, { "graphite-timeout", 0, 0, G_OPTION_ARG_INT, &rtpe_config.graphite_timeout, "Graphite socket timeout interval in seconds", "INT" }, { "tos", 'T', 0, G_OPTION_ARG_INT, &rtpe_config.default_tos, "Default TOS value to set on streams", "INT" }, { "control-tos",0 , 0, G_OPTION_ARG_INT, &rtpe_config.control_tos, "Default TOS value to set on control-ng", "INT" }, { "control-pmtu", 0,0, G_OPTION_ARG_STRING, &control_pmtu, "Path MTU discovery behaviour on UDP control sockets", "want|dont" }, { "timeout", 'o', 0, G_OPTION_ARG_INT, &rtpe_config.timeout, "RTP timeout", "SECS" }, { "silent-timeout",'s',0,G_OPTION_ARG_INT, &rtpe_config.silent_timeout,"RTP timeout for muted", "SECS" }, { "final-timeout",'a',0,G_OPTION_ARG_INT, &rtpe_config.final_timeout, "Call timeout", "SECS" }, { "offer-timeout",0,0, G_OPTION_ARG_INT, &rtpe_config.offer_timeout, "Timeout for incomplete one-sided calls", "SECS" }, { "port-min", 'm', 0, G_OPTION_ARG_INT, &rtpe_config.port_min, "Lowest port to use for RTP", "INT" }, { "port-max", 'M', 0, G_OPTION_ARG_INT, &rtpe_config.port_max, "Highest port to use for RTP", "INT" }, { "redis", 'r', 0, G_OPTION_ARG_STRING, &redisps, "Connect to Redis database", "[PW@]IP:PORT/INT" }, { "redis-write",'w', 0, G_OPTION_ARG_STRING, &redisps_write, "Connect to Redis write database", "[PW@]IP:PORT/INT" }, { "redis-num-threads", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_num_threads, "Number of Redis restore threads", "INT" }, { "redis-expires", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_expires_secs, "Expire time in seconds for redis keys", "INT" }, { "no-redis-required", 'q', 0, G_OPTION_ARG_NONE, &rtpe_config.no_redis_required, "Start no matter of redis connection state", NULL }, { "redis-allowed-errors", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_allowed_errors, "Number of allowed errors before redis is temporarily disabled", "INT" }, { "redis-disable-time", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_disable_time, "Number of seconds redis communication is disabled because of errors", "INT" }, { "redis-cmd-timeout", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_cmd_timeout, "Sets a timeout in milliseconds for redis commands", "INT" }, { "redis-connect-timeout", 0, 0, G_OPTION_ARG_INT, &rtpe_config.redis_connect_timeout, "Sets a timeout in milliseconds for redis connections", "INT" }, #if 0 // temporarily disabled, see discussion on https://github.com/sipwise/rtpengine/commit/2ebf5a1526c1ce8093b3011a1e23c333b3f99400 // related to Change-Id: I83d9b9a844f4f494ad37b44f5d1312f272beff3f { "redis-delete-async", 'y', 0, G_OPTION_ARG_INT, &rtpe_config.redis_delete_async, "Enable asynchronous redis delete", NULL }, { "redis-delete-async-interval", 'y', 0, G_OPTION_ARG_INT, &rtpe_config.redis_delete_async_interval, "Set asynchronous redis delete interval (seconds)", NULL }, #endif { "active-switchover", 0,0,G_OPTION_ARG_NONE, &rtpe_config.active_switchover, "Use call activity as indicator of active/standby state", NULL }, { "b2b-url", 'b', 0, G_OPTION_ARG_STRING, &rtpe_config.b2b_url, "XMLRPC URL of B2B UA" , "STRING" }, { "log-facility-cdr",0, 0, G_OPTION_ARG_STRING, &log_facility_cdr_s, "Syslog facility to use for logging CDRs", "daemon|local0|...|local7"}, { "log-facility-rtcp",0, 0, G_OPTION_ARG_STRING, &log_facility_rtcp_s, "Syslog facility to use for logging RTCP", "daemon|local0|...|local7"}, #ifdef WITH_TRANSCODING { "log-facility-dtmf",0, 0, G_OPTION_ARG_STRING, &log_facility_dtmf_s, "Syslog facility to use for logging DTMF", "daemon|local0|...|local7"}, { "dtmf-log-dest", 0,0, G_OPTION_ARG_STRING, &dtmf_udp_ep, "Destination address for DTMF logging via UDP", "IP46|HOSTNAME:PORT" }, { "dtmf-log-ng-tcp", 0,0, G_OPTION_ARG_NONE, &rtpe_config.dtmf_via_ng, "DTMF logging via TCP NG protocol", NULL }, { "dtmf-no-suppress", 0,0,G_OPTION_ARG_NONE, &rtpe_config.dtmf_no_suppress, "Disable audio suppression during DTMF events", NULL }, { "dtmf-digit-delay", 0,0,G_OPTION_ARG_INT, &rtpe_config.dtmf_digit_delay, "Delay in ms between DTMF digit for trigger detection", NULL }, { "dtmf-no-log-injects", 0,0,G_OPTION_ARG_NONE, &rtpe_config.dtmf_no_log_injects, "Disable DTMF logging for events created by inject-DTMF function", NULL}, #endif { "log-format", 0, 0, G_OPTION_ARG_STRING, &log_format, "Log prefix format", "default|parsable"}, { "xmlrpc-format",'x', 0, G_OPTION_ARG_INT, &rtpe_config.fmt, "XMLRPC timeout request format to use. 0: SEMS DI, 1: call-id only, 2: Kamailio", "INT" }, { "num-threads", 0, 0, G_OPTION_ARG_INT, &rtpe_config.num_threads, "Number of worker threads to create", "INT" }, { "media-num-threads", 0, 0, G_OPTION_ARG_INT, &rtpe_config.media_num_threads, "Number of worker threads for media playback", "INT" }, #ifdef WITH_TRANSCODING { "codec-num-threads", 0, 0, G_OPTION_ARG_INT, &rtpe_config.codec_num_threads, "Number of transcoding threads for asynchronous operation", "INT" }, #endif { "delete-delay", 'd', 0, G_OPTION_ARG_INT, &rtpe_config.delete_delay, "Delay for deleting a session from memory.", "INT" }, { "sip-source", 0, 0, G_OPTION_ARG_NONE, &sip_source, "Use SIP source address by default", NULL }, { "dtls-passive", 0, 0, G_OPTION_ARG_NONE, &dtls_passive_def,"Always prefer DTLS passive role", NULL }, { "max-sessions", 0, 0, G_OPTION_ARG_INT, &rtpe_config.max_sessions, "Limit of maximum number of sessions", "INT" }, { "max-load", 0, 0, G_OPTION_ARG_DOUBLE, &max_load, "Reject new sessions if load averages exceeds this value", "FLOAT" }, { "max-cpu", 0, 0, G_OPTION_ARG_DOUBLE, &max_cpu, "Reject new sessions if CPU usage (in percent) exceeds this value", "FLOAT" }, { "max-bandwidth",0, 0, G_OPTION_ARG_INT64, &rtpe_config.bw_limit, "Reject new sessions if bandwidth usage (in bytes per second) exceeds this value", "INT" }, { "homer", 0, 0, G_OPTION_ARG_STRING, &homerp, "Address of Homer server for RTCP stats","IP46|HOSTNAME:PORT"}, { "homer-protocol",0,0,G_OPTION_ARG_STRING, &homerproto, "Transport protocol for Homer (default udp)", "udp|tcp" }, { "homer-id", 0, 0, G_OPTION_ARG_INT, &rtpe_config.homer_id, "'Capture ID' to use within the HEP protocol", "INT" }, { "homer-disable-rtcp-stats", 0, 0, G_OPTION_ARG_NONE, &rtpe_config.homer_rtcp_off, "Disable RTCP stats tracing to Homer (enabled by default if homer server enabled)", NULL }, { "homer-enable-ng", 0, 0, G_OPTION_ARG_NONE, &rtpe_config.homer_ng_on, "Enable NG tracing to Homer", NULL }, { "homer-ng-capture-proto", 0, 0, G_OPTION_ARG_INT, &rtpe_config.homer_ng_capt_proto, "'Capture protocol type' to use within the HEP protocol (default is 0x3d). Further used by the Homer capture and UI.", "UINT8" }, { "recording-dir", 0, 0, G_OPTION_ARG_STRING, &rtpe_config.spooldir, "Directory for storing pcap and metadata files", "FILE" }, { "recording-method",0, 0, G_OPTION_ARG_STRING, &rtpe_config.rec_method, "Strategy for call recording", "pcap|proc|all" }, { "recording-format",0, 0, G_OPTION_ARG_STRING, &rtpe_config.rec_format, "File format for stored pcap files", "raw|eth" }, { "record-egress",0, 0, G_OPTION_ARG_NONE, &rtpe_config.rec_egress, "Recording egress media instead of ingress", NULL }, #ifdef WITH_IPTABLES_OPTION { "iptables-chain",0,0, G_OPTION_ARG_STRING, &rtpe_config.iptables_chain,"Add explicit firewall rules to this iptables chain","STRING" }, #endif { "codecs", 0, 0, G_OPTION_ARG_NONE, &codecs, "Print a list of supported codecs and exit", NULL }, { "scheduling", 0, 0, G_OPTION_ARG_STRING, &rtpe_config.scheduling,"Thread scheduling policy", "default|none|fifo|rr|other|batch|idle" }, { "priority", 0, 0, G_OPTION_ARG_INT, &rtpe_config.priority, "Thread scheduling priority", "INT" }, { "idle-scheduling",0, 0,G_OPTION_ARG_STRING, &rtpe_config.idle_scheduling,"Idle thread scheduling policy", "default|none|fifo|rr|other|batch|idle" }, { "idle-priority",0, 0, G_OPTION_ARG_INT, &rtpe_config.idle_priority,"Idle thread scheduling priority", "INT" }, { "log-srtp-keys",'F', 0, G_OPTION_ARG_NONE, &rtpe_config.log_keys, "Log SRTP keys to error log", NULL }, { "mysql-host", 0, 0, G_OPTION_ARG_STRING, &rtpe_config.mysql_host,"MySQL host for stored media files","HOST|IP" }, { "mysql-port", 0, 0, G_OPTION_ARG_INT, &rtpe_config.mysql_port,"MySQL port" ,"INT" }, { "mysql-user", 0, 0, G_OPTION_ARG_STRING, &rtpe_config.mysql_user,"MySQL connection credentials", "USERNAME" }, { "mysql-pass", 0, 0, G_OPTION_ARG_STRING, &rtpe_config.mysql_pass,"MySQL connection credentials", "PASSWORD" }, { "mysql-query",0, 0, G_OPTION_ARG_STRING, &rtpe_config.mysql_query,"MySQL select query", "STRING" }, { "endpoint-learning",0,0,G_OPTION_ARG_STRING, &endpoint_learning, "RTP endpoint learning algorithm", "delayed|immediate|off|heuristic" }, { "jitter-buffer",0, 0, G_OPTION_ARG_INT, &rtpe_config.jb_length, "Size of jitter buffer", "INT" }, { "jb-clock-drift",0,0, G_OPTION_ARG_NONE, &rtpe_config.jb_clock_drift,"Compensate for source clock drift",NULL }, { "debug-srtp",0,0, G_OPTION_ARG_NONE, &debug_srtp, "Log raw encryption details for SRTP", NULL }, { "reject-invalid-sdp",0,0, G_OPTION_ARG_NONE, &rtpe_config.reject_invalid_sdp,"Refuse to process SDP bodies with broken syntax", NULL }, { "dtls-rsa-key-size",0, 0, G_OPTION_ARG_INT,&rtpe_config.dtls_rsa_key_size,"Size of RSA key for DTLS", "INT" }, { "dtls-cert-cipher",0, 0,G_OPTION_ARG_STRING, &dcc, "Cipher to use for the DTLS certificate","RSA" }, { "dtls-mtu",0, 0, G_OPTION_ARG_INT,&rtpe_config.dtls_mtu,"DTLS MTU", "INT" }, { "dtls-ciphers",0, 0, G_OPTION_ARG_STRING, &rtpe_config.dtls_ciphers,"List of ciphers for DTLS", "STRING" }, { "dtls-signature",0, 0,G_OPTION_ARG_STRING, &dtls_sig, "Signature algorithm for DTLS", "SHA-256|SHA-1" }, { "listen-http", 0,0, G_OPTION_ARG_STRING_ARRAY,&rtpe_config.http_ifs,"Interface for HTTP and WS", "[IP46|HOSTNAME:]PORT"}, { "listen-https", 0,0, G_OPTION_ARG_STRING_ARRAY,&rtpe_config.https_ifs,"Interface for HTTPS and WSS", "[IP46|HOSTNAME:]PORT"}, { "https-cert", 0,0, G_OPTION_ARG_STRING, &rtpe_config.https_cert,"Certificate for HTTPS and WSS","FILE"}, { "https-key", 0,0, G_OPTION_ARG_STRING, &rtpe_config.https_key, "Private key for HTTPS and WSS","FILE"}, { "http-threads", 0,0, G_OPTION_ARG_INT, &rtpe_config.http_threads,"Number of worker threads for HTTP and WS","INT"}, { "software-id", 0,0, G_OPTION_ARG_STRING, &rtpe_config.software_id,"Identification string of this software presented to external systems","STRING"}, { "poller-per-thread", 0,0, G_OPTION_ARG_NONE, &rtpe_config.poller_per_thread, "Use poller per thread", NULL }, #ifdef WITH_TRANSCODING { "dtx-delay", 0,0, G_OPTION_ARG_INT, &rtpe_config.dtx_delay, "Delay in milliseconds to trigger DTX handling","INT"}, { "max-dtx", 0,0, G_OPTION_ARG_INT, &rtpe_config.max_dtx, "Maximum duration of DTX handling", "INT"}, { "dtx-buffer", 0,0, G_OPTION_ARG_INT, &rtpe_config.dtx_buffer,"Maxmium number of packets held in DTX buffer", "INT"}, { "dtx-lag", 0,0, G_OPTION_ARG_INT, &rtpe_config.dtx_lag, "Maxmium time span in milliseconds held in DTX buffer", "INT"}, { "dtx-shift", 0,0, G_OPTION_ARG_INT, &rtpe_config.dtx_shift, "Length of time (in ms) to shift DTX buffer after over/underflow", "INT"}, { "dtx-cn-params",0,0, G_OPTION_ARG_STRING_ARRAY,&dtx_cn_params, "Parameters for CN generated from DTX","INT INT INT ..."}, { "amr-dtx", 0,0, G_OPTION_ARG_STRING, &amr_dtx, "DTX mechanism to use for AMR and AMR-WB","native|CN"}, { "silence-detect",0,0, G_OPTION_ARG_DOUBLE, &silence_detect, "Audio level threshold in percent for silence detection","FLOAT"}, { "cn-payload",0,0, G_OPTION_ARG_STRING_ARRAY,&cn_payload, "Comfort noise parameters to replace silence with","INT INT INT ..."}, { "player-cache",0,0, G_OPTION_ARG_NONE, &rtpe_config.player_cache,"Cache media files for playback in memory",NULL}, { "kernel-player",0,0, G_OPTION_ARG_INT, &rtpe_config.kernel_player,"Max number of kernel media player streams","INT"}, { "kernel-player-media",0,0,G_OPTION_ARG_INT, &rtpe_config.kernel_player_media,"Max number of kernel media files","INT"}, { "audio-buffer-length",0,0, G_OPTION_ARG_INT,&rtpe_config.audio_buffer_length,"Length in milliseconds of audio buffer","INT"}, { "audio-buffer-delay",0,0, G_OPTION_ARG_INT,&rtpe_config.audio_buffer_delay,"Initial delay in milliseconds for buffered audio","INT"}, { "audio-player",0,0, G_OPTION_ARG_STRING, &use_audio_player, "When to enable the internal audio player","on-demand|play-media|transcoding|always"}, #endif #ifdef HAVE_MQTT { "mqtt-host",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_host, "Mosquitto broker host or address", "HOST|IP"}, { "mqtt-port",0,0, G_OPTION_ARG_INT, &rtpe_config.mqtt_port, "Mosquitto broker port number", "INT"}, { "mqtt-tls-alpn",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_tls_alpn, "Mosquitto broker TLS ALPN", "STRING"}, { "mqtt-id",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_id, "Mosquitto client ID", "STRING"}, { "mqtt-keepalive",0,0, G_OPTION_ARG_INT, &rtpe_config.mqtt_keepalive,"Seconds between mosquitto keepalives","INT"}, { "mqtt-user",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_user, "Username for mosquitto auth", "USERNAME"}, { "mqtt-pass",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_pass, "Password for mosquitto auth", "PASSWORD"}, { "mqtt-cafile",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_cafile,"CA file for mosquitto auth", "FILE"}, { "mqtt-capath",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_capath,"CA path for mosquitto auth", "PATH"}, { "mqtt-certfile",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_certfile,"Certificate file for mosquitto auth","FILE"}, { "mqtt-keyfile",0,0, G_OPTION_ARG_STRING, &rtpe_config.mqtt_keyfile,"Key file for mosquitto auth", "FILE"}, { "mqtt-publish-qos",0,0,G_OPTION_ARG_INT, &rtpe_config.mqtt_publish_qos,"Mosquitto publish QoS", "0|1|2"}, { "mqtt-publish-topic",0,0,G_OPTION_ARG_STRING, &rtpe_config.mqtt_publish_topic,"Mosquitto publish topic", "STRING"}, { "mqtt-publish-interval",0,0,G_OPTION_ARG_INT, &rtpe_config.mqtt_publish_interval,"Publish timer interval", "MILLISECONDS"}, { "mqtt-publish-scope",0,0,G_OPTION_ARG_STRING, &mqtt_publish_scope, "Scope for published mosquitto messages","global|summary|call|media"}, #endif { "mos",0,0, G_OPTION_ARG_STRING, &mos, "Type of MOS calculation","CQ|LQ"}, { "measure-rtp",0,0, G_OPTION_ARG_NONE, &rtpe_config.measure_rtp,"Enable measuring RTP statistics and VoIP metrics",NULL}, #ifdef SO_INCOMING_CPU { "socket-cpu-affinity",0,0,G_OPTION_ARG_INT, &rtpe_config.cpu_affinity,"CPU affinity for media sockets","INT"}, #endif { "janus-secret", 0,0, G_OPTION_ARG_STRING, &rtpe_config.janus_secret,"Admin secret for Janus protocol","STRING"}, { "rtcp-interval", 0,0, G_OPTION_ARG_INT, &rtpe_config.rtcp_interval,"Delay in milliseconds between RTCP packets when generate-rtcp flag is on, where random dispersion < 1 sec is added on top","INT"}, { "max-recv-iters", 0, 0, G_OPTION_ARG_INT, &rtpe_config.max_recv_iters, "Maximum continuous reading cycles in UDP poller loop.", "INT"}, { "vsc-start-rec",0,0, G_OPTION_ARG_STRING, &rtpe_config.vsc_start_rec.s,"DTMF VSC to start recording.", "STRING"}, { "vsc-stop-rec",0,0, G_OPTION_ARG_STRING, &rtpe_config.vsc_stop_rec.s,"DTMF VSC to stop recording.", "STRING"}, { "vsc-start-stop-rec",0,0,G_OPTION_ARG_STRING, &rtpe_config.vsc_start_stop_rec.s,"DTMF VSC to start/stop recording.", "STRING"}, { "vsc-pause-rec",0,0, G_OPTION_ARG_STRING, &rtpe_config.vsc_pause_rec.s,"DTMF VSC to pause recording.", "STRING"}, { "vsc-pause-resume-rec",0,0,G_OPTION_ARG_STRING,&rtpe_config.vsc_pause_resume_rec.s,"DTMF VSC to pause/resume recording.", "STRING"}, { "vsc-start-pause-resume-rec",0,0,G_OPTION_ARG_STRING,&rtpe_config.vsc_start_pause_resume_rec.s,"DTMF VSC to start/pause/resume recording.", "STRING"}, { NULL, } }; config_load(argc, argv, e, " - next-generation media proxy", "/etc/rtpengine/rtpengine.conf", "rtpengine", &rtpe_config.common); // default values, if not configured if (rtpe_config.rec_method == NULL) rtpe_config.rec_method = g_strdup("pcap"); if (rtpe_config.rec_format == NULL) rtpe_config.rec_format = g_strdup("raw"); if (rtpe_config.dtls_ciphers == NULL) rtpe_config.dtls_ciphers = g_strdup("DEFAULT:!NULL:!aNULL:!SHA256:!SHA384:!aECDH:!AESGCM+AES256:!aPSK"); #ifndef WITHOUT_NFTABLES if (rtpe_config.nftables_chain == NULL) rtpe_config.nftables_chain = g_strdup("rtpengine"); if (rtpe_config.nftables_base_chain == NULL) rtpe_config.nftables_base_chain = g_strdup("INPUT"); if (!nftables_family || !strcmp(nftables_family, "ip,ip6") || !strcmp(nftables_family, "ip4,ip6") || !strcmp(nftables_family, "ip6,ip") || !strcmp(nftables_family, "ip6,ip4")) rtpe_config.nftables_family = 0; // default else if (!strcmp(nftables_family, "ip") || !strcmp(nftables_family, "ip4")) rtpe_config.nftables_family = NFPROTO_IPV4; else if (!strcmp(nftables_family, "ip6")) rtpe_config.nftables_family = NFPROTO_IPV6; else die("Invalid value for 'nftables-family' ('%s')", nftables_family); #endif if (codecs) { codeclib_init(1); exit(0); } #ifndef WITHOUT_NFTABLES int nftables_actions = nftables_start + nftables_stop + nftables_status; if (nftables_actions) { if (!rtpe_config.nftables_chain || !rtpe_config.nftables_chain[0]) die("Cannot do nftables setup without knowing which nftables chain (--nftables-chain=...)"); if (rtpe_config.kernel_table < 0) die("Cannot do nftables setup without configured kernel table number"); if (nftables_actions > 1) die("Cannot do more than one of --nftables-start, --nftables-stop or --nftables-status"); const char *err; if (nftables_status) { int xv = nftables_check(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args){.family = rtpe_config.nftables_family}); exit(xv); } if (nftables_start) err = nftables_setup(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args) {.table = rtpe_config.kernel_table, .append = rtpe_config.nftables_append, .family = rtpe_config.nftables_family}); else // nftables_stop err = nftables_shutdown(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args){.family = rtpe_config.nftables_family}); if (err) die("Failed to perform nftables action: %s (%s)", err, strerror(errno)); printf("Success\n"); exit(0); } #endif if (!if_a) die("Missing option --interface"); struct ifaddrs *ifas; if (getifaddrs(&ifas)) { ifas = NULL; ilog(LOG_WARN, "Failed to retrieve list of network interfaces: %s", strerror(errno)); } for (iter = if_a; *iter; iter++) { int ret = if_addr_parse(&rtpe_config.interfaces, *iter, ifas); if (ret) die("Invalid interface specification: '%s'", *iter); } if (ifas) freeifaddrs(ifas); if (!rtpe_config.interfaces.length) die("Cannot start without any configured interfaces"); if (ks_a) { for (iter = ks_a; *iter; iter++) { str_keyspace_db.s = *iter; str_keyspace_db.len = strlen(*iter); uint_keyspace_db = strtoul(str_keyspace_db.s, &endptr, 10); if ((errno == ERANGE && (uint_keyspace_db == ULONG_MAX)) || (errno != 0 && uint_keyspace_db == 0)) { ilog(LOG_ERR, "Fail adding keyspace '" STR_FORMAT "' to redis notifications; errono=%d\n", STR_FMT(&str_keyspace_db), errno); } else if (endptr == str_keyspace_db.s) { ilog(LOG_ERR, "Fail adding keyspace '" STR_FORMAT "' to redis notifications; no digits found\n", STR_FMT(&str_keyspace_db)); } else { g_queue_push_tail(&rtpe_config.redis_subscribed_keyspaces, GUINT_TO_POINTER(uint_keyspace_db)); } } } parse_listen_list(&rtpe_config.tcp_listen_ep, listenps, "listen-tcp"); parse_listen_list(&rtpe_config.udp_listen_ep, listenudps, "listen-udp"); parse_listen_list(&rtpe_config.ng_listen_ep, listenngs, "listen-ng"); parse_listen_list(&rtpe_config.ng_tcp_listen_ep, listenngtcps, "listen-tcp-ng"); parse_listen_list(&rtpe_config.cli_listen_ep, listencli, "listen-cli"); if (!rtpe_config.tcp_listen_ep.length && !rtpe_config.udp_listen_ep.length && !rtpe_config.ng_listen_ep.length && !rtpe_config.ng_tcp_listen_ep.length && !(rtpe_config.http_ifs && rtpe_config.http_ifs[0]) && !(rtpe_config.https_ifs && rtpe_config.https_ifs[0])) die("Missing option --listen-tcp, --listen-udp, --listen-ng, --listen-tcp-ng, " "--listen-http, or --listen-https"); if (graphitep) {if (endpoint_parse_any_getaddrinfo_full(&rtpe_config.graphite_ep, graphitep)) die("Invalid IP or port '%s' (--graphite)", graphitep); } if (graphite_prefix_s) set_prefix(graphite_prefix_s); if (homerp) { if (endpoint_parse_any_getaddrinfo_full(&rtpe_config.homer_ep, homerp)) die("Invalid IP or port '%s' (--homer)", homerp); } if (homerproto) { if (!strcmp(homerproto, "tcp")) rtpe_config.homer_protocol = SOCK_STREAM; else if (!strcmp(homerproto, "udp")) rtpe_config.homer_protocol = SOCK_DGRAM; else die("Invalid protocol '%s' (--homer-protocol)", homerproto); } if (rtpe_config.homer_ng_capt_proto <0 || rtpe_config.homer_ng_capt_proto > 255) die("Invalid homer-ng-capture-proto value"); if (rtpe_config.default_tos < 0 || rtpe_config.default_tos > 255) die("Invalid TOS value"); if (rtpe_config.control_tos < 0 || rtpe_config.control_tos > 255) die("Invalid control-ng TOS value"); if (rtpe_config.max_recv_iters < 1) die("Invalid max-recv-iters value"); if (rtpe_config.timeout <= 0) rtpe_config.timeout = 60; if (rtpe_config.silent_timeout <= 0) rtpe_config.silent_timeout = 3600; if (rtpe_config.offer_timeout <= 0) rtpe_config.offer_timeout = 3600; if (rtpe_config.final_timeout <= 0) rtpe_config.final_timeout = 0; if (rtpe_config.rtcp_interval <= 0) rtpe_config.rtcp_interval = 5000; if (redisps) if (redis_ep_parse(&rtpe_config.redis_ep, &rtpe_config.redis_db, &rtpe_config.redis_auth, "RTPENGINE_REDIS_AUTH_PW", redisps)) die("Invalid Redis endpoint [IP:PORT/INT] '%s' (--redis)", redisps); if (redisps_write) if (redis_ep_parse(&rtpe_config.redis_write_ep, &rtpe_config.redis_write_db, &rtpe_config.redis_write_auth, "RTPENGINE_REDIS_WRITE_AUTH_PW", redisps_write)) die("Invalid Redis endpoint [IP:PORT/INT] '%s' (--redis-write)", redisps_write); if (rtpe_config.fmt > 2) die("Invalid XMLRPC format"); // XXX unify the log facility options if (log_facility_cdr_s) { if (!parse_log_facility(log_facility_cdr_s, &_log_facility_cdr)) { print_available_log_facilities(); die ("Invalid log facility for CDR '%s' (--log-facility-cdr)", log_facility_cdr_s); } } if (log_facility_rtcp_s) { if (!parse_log_facility(log_facility_rtcp_s, &_log_facility_rtcp)) { print_available_log_facilities(); die ("Invalid log facility for RTCP '%s' (--log-facility-rtcp)n", log_facility_rtcp_s); } } if (log_facility_dtmf_s) { if (!parse_log_facility(log_facility_dtmf_s, &_log_facility_dtmf)) { print_available_log_facilities(); die ("Invalid log facility for DTMF '%s' (--log-facility-dtmf)n", log_facility_dtmf_s); } } if (log_format) { if (!strcmp(log_format, "default")) rtpe_config.log_format = LF_DEFAULT; else if (!strcmp(log_format, "parsable")) rtpe_config.log_format = LF_PARSABLE; else die("Invalid --log-format option"); } if (debug_srtp) rtpe_config.common.log_levels[log_level_index_srtp] = LOG_DEBUG; if (dtmf_udp_ep) { if (endpoint_parse_any_getaddrinfo_full(&rtpe_config.dtmf_udp_ep, dtmf_udp_ep)) die("Invalid IP or port '%s' (--dtmf-log-dest)", dtmf_udp_ep); } if (!sip_source) trust_address_def = true; rtpe_config.cpu_limit = max_cpu * 100; rtpe_config.load_limit = max_load * 100; if (rtpe_config.mysql_query) { // require exactly one %llu placeholder and allow no other % placeholders if (!strstr(rtpe_config.mysql_query, "%llu")) die("No '%%llu' present in --mysql-query='%s'", rtpe_config.mysql_query); const char *front = rtpe_config.mysql_query; unsigned int count = 0; const char *match; while ((match = strchr(front, '%'))) { front = match + 1; count++; } if (count != 1) die("Too many '%%' placeholders (%u) present in --mysql-query='%s'", count, rtpe_config.mysql_query); } enum endpoint_learning el_config = EL_DELAYED; if (endpoint_learning) { if (!strcasecmp(endpoint_learning, "delayed")) el_config = EL_DELAYED; else if (!strcasecmp(endpoint_learning, "immediate")) el_config = EL_IMMEDIATE; else if (!strcasecmp(endpoint_learning, "off")) el_config = EL_OFF; else if (!strcasecmp(endpoint_learning, "heuristic")) el_config = EL_HEURISTIC; else die("Invalid --endpoint-learning option ('%s')", endpoint_learning); } rtpe_config.endpoint_learning = el_config; if (dtls_sig) { if (!strcasecmp(dtls_sig, "sha-1")) rtpe_config.dtls_signature = DSIG_SHA1; else if (!strcasecmp(dtls_sig, "sha1")) rtpe_config.dtls_signature = DSIG_SHA1; else if (!strcasecmp(dtls_sig, "sha-256")) rtpe_config.dtls_signature = DSIG_SHA256; else if (!strcasecmp(dtls_sig, "sha256")) rtpe_config.dtls_signature = DSIG_SHA256; else die("Invalid --dtls-signature option ('%s')", dtls_sig); } if (rtpe_config.dtls_rsa_key_size < 0) die("Invalid --dtls-rsa-key-size (%i)", rtpe_config.dtls_rsa_key_size); if (rtpe_config.dtls_mtu < 576) /* The Internet Protocol requires that hosts must be able to process IP datagrams of at least 576 bytes (for IPv4) or 1280 bytes (for IPv6). However, this does not preclude link layers with an MTU smaller than this minimum MTU from conveying IP data. Internet IPv4 path MTU is 68 bytes.*/ die("Invalid --dtls-mtu (%i)", rtpe_config.dtls_mtu); rtpe_config.dtls_mtu -= DTLS_MTU_OVERHEAD; if (rtpe_config.jb_length < 0) die("Invalid negative jitter buffer size"); if (silence_detect > 0) { rtpe_config.silence_detect_double = silence_detect / 100.0; rtpe_config.silence_detect_int = (int) ((silence_detect / 100.0) * UINT32_MAX); } parse_cn_payload(&rtpe_config.cn_payload, cn_payload, "\x20", "cn-payload"); parse_cn_payload(&rtpe_config.dtx_cn_params, dtx_cn_params, NULL, "dtx-cn-params"); if (amr_dtx) { if (!strcasecmp(amr_dtx, "native")) {} else if (!strcasecmp(amr_dtx, "CN")) rtpe_config.amr_cn_dtx = 1; else die("Invalid --amr-dtx ('%s')", amr_dtx); } if (use_audio_player) { if (!strcasecmp(use_audio_player, "on-demand") || !strcasecmp(use_audio_player, "on demand") || !strcasecmp(use_audio_player, "off") || !strcasecmp(use_audio_player, "no") || !strcasecmp(use_audio_player, "never")) rtpe_config.use_audio_player = UAP_ON_DEMAND; else if (!strcasecmp(use_audio_player, "play-media") || !strcasecmp(use_audio_player, "play media") || !strcasecmp(use_audio_player, "media player") || !strcasecmp(use_audio_player, "media-player")) rtpe_config.use_audio_player = UAP_PLAY_MEDIA; else if (!strcasecmp(use_audio_player, "transcoding") || !strcasecmp(use_audio_player, "transcode")) rtpe_config.use_audio_player = UAP_TRANSCODING; else if (!strcasecmp(use_audio_player, "always") || !strcasecmp(use_audio_player, "everything") || !strcasecmp(use_audio_player, "force") || !strcasecmp(use_audio_player, "forced")) rtpe_config.use_audio_player = UAP_ALWAYS; else die("Invalid --audio-player option ('%s')", use_audio_player); } if (!rtpe_config.software_id) rtpe_config.software_id = g_strdup_printf("rtpengine-%s", RTPENGINE_VERSION); g_strcanon(rtpe_config.software_id, "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890-", '-'); #ifdef HAVE_MQTT if (mqtt_publish_scope) { if (!strcmp(mqtt_publish_scope, "global")) rtpe_config.mqtt_publish_scope = MPS_GLOBAL; else if (!strcmp(mqtt_publish_scope, "call")) rtpe_config.mqtt_publish_scope = MPS_CALL; else if (!strcmp(mqtt_publish_scope, "media")) rtpe_config.mqtt_publish_scope = MPS_MEDIA; else if (!strcmp(mqtt_publish_scope, "summary")) rtpe_config.mqtt_publish_scope = MPS_SUMMARY; else die("Invalid --mqtt-publish-scope option ('%s')", mqtt_publish_scope); } #endif if (mos) { if (!strcasecmp(mos, "cq")) rtpe_config.mos = MOS_CQ; else if (!strcasecmp(mos, "lq")) rtpe_config.mos = MOS_LQ; else die("Invalid --mos option ('%s')", mos); } if (dcc) { if (!strcasecmp(dcc, "rsa")) rtpe_config.dtls_cert_cipher = DCC_RSA; else if (!strcasecmp(dcc, "prime256v1")) rtpe_config.dtls_cert_cipher = DCC_EC_PRIME256v1; else if (!strcasecmp(dcc, "ec_prime256v1")) rtpe_config.dtls_cert_cipher = DCC_EC_PRIME256v1; else if (!strcasecmp(dcc, "ec-prime256v1")) rtpe_config.dtls_cert_cipher = DCC_EC_PRIME256v1; else die("Invalid --dtls-cert-cipher option ('%s')", dcc); } if (control_pmtu) { if (!strcasecmp(control_pmtu, "want")) rtpe_config.control_pmtu = PMTU_DISC_WANT; else if (!strcasecmp(control_pmtu, "dont")) rtpe_config.control_pmtu = PMTU_DISC_DONT; else if (!strcasecmp(control_pmtu, "don't")) rtpe_config.control_pmtu = PMTU_DISC_DONT; else die("Invalid --control-pmtu option ('%s')", control_pmtu); } #define STR_LEN_INIT(x) if (rtpe_config.x.s) rtpe_config.x.len = strlen(rtpe_config.x.s) STR_LEN_INIT(vsc_start_rec); STR_LEN_INIT(vsc_stop_rec); STR_LEN_INIT(vsc_start_stop_rec); STR_LEN_INIT(vsc_pause_rec); STR_LEN_INIT(vsc_pause_resume_rec); STR_LEN_INIT(vsc_start_pause_resume_rec); #undef STR_LEN_INIT if (rtpe_config.num_threads < 1) rtpe_config.num_threads = num_cpu_cores(4); if (rtpe_config.media_num_threads < 0) rtpe_config.media_num_threads = rtpe_config.num_threads; if (rtpe_config.max_sessions < -1) rtpe_config.max_sessions = -1; if (rtpe_config.redis_num_threads < 1) rtpe_config.redis_num_threads = num_cpu_cores(REDIS_RESTORE_NUM_THREADS); if (rtpe_config.cpu_affinity < 0) { rtpe_config.cpu_affinity = num_cpu_cores(0); if (rtpe_config.cpu_affinity <= 0) die("Number of CPU cores is unknown, cannot auto-set socket CPU affinity"); } } static void fill_initial_rtpe_cfg(struct rtpengine_config* ini_rtpe_cfg) { struct intf_config* gptr_data; for (__auto_type l = rtpe_config.interfaces.head; l ; l=l->next) { gptr_data = g_slice_alloc0(sizeof(*gptr_data)); memcpy(gptr_data, l->data, sizeof(*gptr_data)); str_init_dup_str(&gptr_data->name, &l->data->name); str_init_dup_str(&gptr_data->alias, &l->data->alias); t_queue_push_tail(&ini_rtpe_cfg->interfaces, gptr_data); } for (__auto_type l = rtpe_config.redis_subscribed_keyspaces.head; l ; l = l->next) { // l->data has been assigned to a variable before being given into the queue structure not to get a shallow copy unsigned int num = GPOINTER_TO_UINT(l->data); g_queue_push_tail(&ini_rtpe_cfg->redis_subscribed_keyspaces, GINT_TO_POINTER(num)); } ini_rtpe_cfg->kernel_table = rtpe_config.kernel_table; ini_rtpe_cfg->max_sessions = rtpe_config.max_sessions; ini_rtpe_cfg->cpu_limit = rtpe_config.cpu_limit; ini_rtpe_cfg->load_limit = rtpe_config.load_limit; ini_rtpe_cfg->bw_limit = rtpe_config.bw_limit; ini_rtpe_cfg->timeout = rtpe_config.timeout; ini_rtpe_cfg->silent_timeout = rtpe_config.silent_timeout; ini_rtpe_cfg->offer_timeout = rtpe_config.offer_timeout; ini_rtpe_cfg->final_timeout = rtpe_config.final_timeout; ini_rtpe_cfg->delete_delay = rtpe_config.delete_delay; ini_rtpe_cfg->redis_expires_secs = rtpe_config.redis_expires_secs; ini_rtpe_cfg->default_tos = rtpe_config.default_tos; ini_rtpe_cfg->control_tos = rtpe_config.control_tos; ini_rtpe_cfg->graphite_interval = rtpe_config.graphite_interval; ini_rtpe_cfg->graphite_timeout= rtpe_config.graphite_timeout; ini_rtpe_cfg->redis_num_threads = rtpe_config.redis_num_threads; ini_rtpe_cfg->homer_protocol = rtpe_config.homer_protocol; ini_rtpe_cfg->homer_id = rtpe_config.homer_id; ini_rtpe_cfg->homer_ng_capt_proto = rtpe_config.homer_ng_capt_proto; ini_rtpe_cfg->no_fallback = rtpe_config.no_fallback; ini_rtpe_cfg->port_min = rtpe_config.port_min; ini_rtpe_cfg->port_max = rtpe_config.port_max; ini_rtpe_cfg->redis_db = rtpe_config.redis_db; ini_rtpe_cfg->redis_write_db = rtpe_config.redis_write_db; ini_rtpe_cfg->no_redis_required = rtpe_config.no_redis_required; ini_rtpe_cfg->num_threads = rtpe_config.num_threads; ini_rtpe_cfg->media_num_threads = rtpe_config.media_num_threads; ini_rtpe_cfg->fmt = rtpe_config.fmt; ini_rtpe_cfg->log_format = rtpe_config.log_format; ini_rtpe_cfg->redis_allowed_errors = rtpe_config.redis_allowed_errors; ini_rtpe_cfg->redis_disable_time = rtpe_config.redis_disable_time; ini_rtpe_cfg->redis_cmd_timeout = rtpe_config.redis_cmd_timeout; ini_rtpe_cfg->redis_connect_timeout = rtpe_config.redis_connect_timeout; ini_rtpe_cfg->redis_delete_async = rtpe_config.redis_delete_async; ini_rtpe_cfg->redis_delete_async_interval = rtpe_config.redis_delete_async_interval; memcpy(&ini_rtpe_cfg->common.log_levels, &rtpe_config.common.log_levels, sizeof(ini_rtpe_cfg->common.log_levels)); ini_rtpe_cfg->graphite_ep = rtpe_config.graphite_ep; endpoint_list_dup(&ini_rtpe_cfg->tcp_listen_ep, &rtpe_config.tcp_listen_ep); endpoint_list_dup(&ini_rtpe_cfg->udp_listen_ep, &rtpe_config.udp_listen_ep); endpoint_list_dup(&ini_rtpe_cfg->ng_listen_ep, &rtpe_config.ng_listen_ep); endpoint_list_dup(&ini_rtpe_cfg->ng_tcp_listen_ep, &rtpe_config.ng_tcp_listen_ep); endpoint_list_dup(&ini_rtpe_cfg->cli_listen_ep, &rtpe_config.cli_listen_ep); ini_rtpe_cfg->redis_ep = rtpe_config.redis_ep; ini_rtpe_cfg->redis_write_ep = rtpe_config.redis_write_ep; ini_rtpe_cfg->homer_ep = rtpe_config.homer_ep; ini_rtpe_cfg->endpoint_learning = rtpe_config.endpoint_learning; ini_rtpe_cfg->b2b_url = g_strdup(rtpe_config.b2b_url); ini_rtpe_cfg->redis_auth = g_strdup(rtpe_config.redis_auth); ini_rtpe_cfg->redis_write_auth = g_strdup(rtpe_config.redis_write_auth); ini_rtpe_cfg->spooldir = g_strdup(rtpe_config.spooldir); ini_rtpe_cfg->iptables_chain = g_strdup(rtpe_config.iptables_chain); ini_rtpe_cfg->rec_method = g_strdup(rtpe_config.rec_method); ini_rtpe_cfg->rec_format = g_strdup(rtpe_config.rec_format); ini_rtpe_cfg->jb_length = rtpe_config.jb_length; ini_rtpe_cfg->jb_clock_drift = rtpe_config.jb_clock_drift; ini_rtpe_cfg->rtcp_interval = rtpe_config.rtcp_interval; ini_rtpe_cfg->max_recv_iters = rtpe_config.max_recv_iters; } static void free_config_interfaces(struct intf_config *i) { str_free_dup(&i->name); str_free_dup(&i->alias); g_slice_free1(sizeof(*i), i); } static void unfill_initial_rtpe_cfg(struct rtpengine_config* ini_rtpe_cfg) { // clear queues t_queue_clear_full(&ini_rtpe_cfg->interfaces, free_config_interfaces); g_queue_clear(&ini_rtpe_cfg->redis_subscribed_keyspaces); // free g_strdup g_free(ini_rtpe_cfg->b2b_url); g_free(ini_rtpe_cfg->redis_auth); g_free(ini_rtpe_cfg->redis_write_auth); g_free(ini_rtpe_cfg->spooldir); g_free(ini_rtpe_cfg->iptables_chain); g_free(ini_rtpe_cfg->rec_method); g_free(ini_rtpe_cfg->rec_format); } static void options_free(void) { // clear queues t_queue_clear_full(&rtpe_config.interfaces, free_config_interfaces); g_queue_clear(&rtpe_config.redis_subscribed_keyspaces); // free config options g_free(rtpe_config.b2b_url); g_free(rtpe_config.spooldir); g_free(rtpe_config.rec_method); g_free(rtpe_config.rec_format); g_free(rtpe_config.iptables_chain); g_free(rtpe_config.scheduling); g_free(rtpe_config.idle_scheduling); g_free(rtpe_config.mysql_host); g_free(rtpe_config.mysql_user); g_free(rtpe_config.mysql_pass); g_free(rtpe_config.mysql_query); g_free(rtpe_config.dtls_ciphers); g_strfreev(rtpe_config.http_ifs); g_strfreev(rtpe_config.https_ifs); g_free(rtpe_config.https_cert); g_free(rtpe_config.https_key); g_free(rtpe_config.software_id); if (rtpe_config.cn_payload.s) g_free(rtpe_config.cn_payload.s); if (rtpe_config.dtx_cn_params.s) g_free(rtpe_config.dtx_cn_params.s); g_free(rtpe_config.mqtt_user); g_free(rtpe_config.mqtt_pass); g_free(rtpe_config.mqtt_cafile); g_free(rtpe_config.mqtt_certfile); g_free(rtpe_config.mqtt_keyfile); g_free(rtpe_config.mqtt_publish_topic); g_free(rtpe_config.janus_secret); // free common config options config_load_free(&rtpe_config.common); } static void early_init(void) { socket_init(); // needed for socktype_udp } #ifdef WITH_TRANSCODING static void clib_init(void) { media_bufferpool = bufferpool_new(g_malloc, g_free, 64 * 65536); #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) uring_thread_init(); #endif } static void clib_cleanup(void) { bufferpool_destroy(media_bufferpool); #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) uring_thread_cleanup(); #endif } static void clib_loop(void) { uring_thread_loop(); append_thread_lpr_to_glob_lpr(); } #endif static void kernel_setup(void) { if (rtpe_config.kernel_table < 0) goto fallback; #ifndef WITHOUT_NFTABLES const char *err = nftables_setup(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args) {.table = rtpe_config.kernel_table, .append = rtpe_config.nftables_append, .family = rtpe_config.nftables_family}); if (err) { if (rtpe_config.no_fallback) die("Failed to create nftables chains or rules: %s (%s)", err, strerror(errno)); ilog(LOG_ERR, "FAILED TO CREATE NFTABLES CHAINS OR RULES, KERNEL FORWARDING POSSIBLY WON'T WORK: " "%s (%s)", err, strerror(errno)); } #endif if (!kernel_setup_table(rtpe_config.kernel_table)) { if (rtpe_config.no_fallback) die("Userspace fallback disallowed - exiting"); goto fallback; } if (rtpe_config.player_cache && rtpe_config.kernel_player > 0 && rtpe_config.kernel_player_media > 0) { if (!kernel_init_player(rtpe_config.kernel_player_media, rtpe_config.kernel_player)) die("Failed to initialise kernel media player"); } return; fallback: shm_bufferpool = bufferpool_new(g_malloc, g_free, 4096); // fallback userspace bufferpool } static void init_everything(void) { bufferpool_init(); gettimeofday(&rtpe_now, NULL); log_init(rtpe_common_config_ptr->log_name); log_format(rtpe_config.log_format); recording_fs_init(rtpe_config.spooldir, rtpe_config.rec_method, rtpe_config.rec_format); rtpe_ssl_init(); #ifdef HAVE_MQTT if (mosquitto_lib_init() != MOSQ_ERR_SUCCESS) die("failed to init libmosquitto"); #endif signals(); resources(); sdp_init(); dtls_init(); ice_init(); crypto_init_main(); kernel_setup(); interfaces_init(&rtpe_config.interfaces); iptables_init(); control_ng_init(); if (call_interfaces_init()) abort(); statistics_init(); #ifdef WITH_TRANSCODING codeclib_thread_init = clib_init; codeclib_thread_cleanup = clib_cleanup; codeclib_thread_loop = clib_loop; #endif codeclib_init(0); media_player_init(); if (!dtmf_init()) die("DTMF init failed, see log"); jitter_buffer_init(); t38_init(); if (rtpe_config.mqtt_host && mqtt_init()) abort(); codecs_init(); janus_init(); if (!kernel_init_table()) die("Kernel module version mismatch or other fatal error"); } static void create_everything(void) { struct timeval tmp_tv; gettimeofday(&rtpe_now, NULL); // either one global poller, or one per thread for media sockets plus one for control sockets #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) { rtpe_config.poller_per_thread = true; rtpe_poller_add_item = uring_poller_add_item; rtpe_poller_del_item = uring_poller_del_item; rtpe_poller_del_item_callback = uring_poller_del_item_callback; rtpe_poller_blocked = uring_poller_blocked; rtpe_poller_isblocked = uring_poller_isblocked; rtpe_poller_error = uring_poller_error; } #endif if (!rtpe_config.poller_per_thread) { num_media_pollers = num_rtpe_pollers = 1; num_poller_threads = rtpe_config.num_threads; } else { num_media_pollers = rtpe_config.num_threads; num_rtpe_pollers = num_media_pollers + 1; num_poller_threads = num_rtpe_pollers; } rtpe_pollers = g_malloc(sizeof(*rtpe_pollers) * num_rtpe_pollers); for (unsigned int i = 0; i < num_rtpe_pollers; i++) { rtpe_pollers[i] = #ifdef HAVE_LIBURING rtpe_config.common.io_uring ? uring_poller_new() : #endif poller_new(); if (!rtpe_pollers[i]) die("poller creation failed"); } rtpe_control_poller = rtpe_pollers[num_rtpe_pollers - 1]; if (call_init()) abort(); rwlock_init(&rtpe_config.keyspaces_lock); create_listeners(&rtpe_config.tcp_listen_ep, &rtpe_tcp, (void *(*)(const endpoint_t *)) control_tcp_new, false, "TCP control"); create_listeners(&rtpe_config.udp_listen_ep, &rtpe_udp, (void *(*)(const endpoint_t *)) control_udp_new, true, "UDP control"); create_listeners(&rtpe_config.ng_listen_ep, &rtpe_control_ng, (void *(*)(const endpoint_t *)) control_ng_new, true, "UDP NG control"); create_listeners(&rtpe_config.ng_tcp_listen_ep, &rtpe_control_ng_tcp, (void *(*)(const endpoint_t *)) control_ng_tcp_new, false, "TCP NG control"); create_listeners(&rtpe_config.cli_listen_ep, &rtpe_cli, (void *(*)(const endpoint_t *)) cli_new, false, "CLI"); if (!is_addr_unspecified(&rtpe_config.redis_write_ep.address)) { rtpe_redis_write = redis_new(&rtpe_config.redis_write_ep, rtpe_config.redis_write_db, rtpe_config.redis_write_auth, ANY_REDIS_ROLE, rtpe_config.no_redis_required); if (!rtpe_redis_write) die("Cannot start up without running Redis %s write database! See also NO_REDIS_REQUIRED parameter.", endpoint_print_buf(&rtpe_config.redis_write_ep)); } if (!is_addr_unspecified(&rtpe_config.redis_ep.address)) { rtpe_redis = redis_new(&rtpe_config.redis_ep, rtpe_config.redis_db, rtpe_config.redis_auth, rtpe_redis_write ? ANY_REDIS_ROLE : MASTER_REDIS_ROLE, rtpe_config.no_redis_required); if (!rtpe_redis) die("Cannot start up without running Redis %s database! " "See also NO_REDIS_REQUIRED parameter.", endpoint_print_buf(&rtpe_config.redis_ep)); if (rtpe_config.redis_subscribed_keyspaces.length) { rtpe_redis_notify = redis_new(&rtpe_config.redis_ep, rtpe_config.redis_db, rtpe_config.redis_auth, rtpe_redis_write ? ANY_REDIS_ROLE : MASTER_REDIS_ROLE, rtpe_config.no_redis_required); if (!rtpe_redis_notify) die("Cannot start up without running notification Redis %s database! " "See also NO_REDIS_REQUIRED parameter.", endpoint_print_buf(&rtpe_config.redis_ep)); } if (!rtpe_redis_write) rtpe_redis_write = rtpe_redis; } daemonize(); wpidfile(); if (websocket_init()) die("Failed to init websocket listener"); homer_sender_init(&rtpe_config.homer_ep, rtpe_config.homer_protocol, rtpe_config.homer_id); rtcp_init(); // must come after Homer init init_ng_tracing(); // must come after Homer init gettimeofday(&rtpe_latest_graphite_interval_start, NULL); timeval_from_us(&tmp_tv, (long long) rtpe_config.graphite_interval*1000000); set_graphite_interval_tv(&tmp_tv); } static void do_redis_restore(void) { if (!rtpe_redis) return; struct timeval redis_start, redis_stop; double redis_diff = 0; // start redis restore timer gettimeofday(&redis_start, NULL); // restore if (rtpe_redis_notify) { // active-active mode: the main DB has our own calls, while // the "notify" DB has the "foreign" calls. "foreign" DB goes // first as the "owned" DB can do a stray update back to Redis // create new connection as notifications are already set up struct redis *r = redis_dup(rtpe_redis_notify, -1); for (GList *l = rtpe_config.redis_subscribed_keyspaces.head; l; l = l->next) { int db = GPOINTER_TO_INT(l->data); if (redis_restore(r, true, db)) ilog(LOG_WARN, "Unable to restore calls from the active-active peer"); } redis_close(r); if (redis_restore(rtpe_redis_write, false, -1)) die("Refusing to continue without working Redis database"); } else { if (redis_restore(rtpe_redis, false, -1)) die("Refusing to continue without working Redis database"); } // stop redis restore timer gettimeofday(&redis_stop, NULL); // print redis restore duration redis_diff += timeval_diff(&redis_stop, &redis_start) / 1000.0; ilog(LOG_INFO, "Redis restore time = %.0lf ms", redis_diff); } #ifdef HAVE_LIBURING static void uring_thread_waker(struct thread_waker *wk) { struct poller *p = wk->arg; uring_poller_wake(p); } static void uring_poller_loop(void *ptr) { struct poller *p = ptr; uring_poller_add_waker(p); struct thread_waker wk = {.func = uring_thread_waker, .arg = p}; thread_waker_add_generic(&wk); while (!rtpe_shutdown) { gettimeofday(&rtpe_now, NULL); uring_poller_poll(p); append_thread_lpr_to_glob_lpr(); log_info_reset(); } thread_waker_del(&wk); uring_poller_clear(p); } #endif int main(int argc, char **argv) { early_init(); options(&argc, &argv); init_everything(); create_everything(); fill_initial_rtpe_cfg(&initial_rtpe_config); ilog(LOG_INFO, "Startup complete, version %s", RTPENGINE_VERSION); thread_create_detach(sighandler, NULL, "signals"); /* load monitoring thread */ thread_create_looper(load_thread, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "load monitor", 500000); /* separate thread for releasing ports (sockets), which are scheduled for clearing */ thread_create_looper(release_closed_sockets, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "release socks", 1000000); /* separate thread for update of running min/max call counters */ thread_create_looper(call_rate_stats_updater, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "call stats", 1000000); /* separate thread for ice slow timer functionality */ thread_create_looper(ice_slow_timer, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "ICE slow", 1000000); /* thread to close expired call */ thread_create_looper(call_timer, rtpe_config.idle_scheduling, rtpe_config.idle_priority, "kill calls", 1000000); /* thread to refresh DTLS certificate */ dtls_timer(); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && initial_rtpe_config.redis_delete_async) thread_create_detach(redis_delete_async_loop, NULL, "redis async"); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && rtpe_redis_notify) thread_create_detach(redis_notify_loop, NULL, "redis notify"); do_redis_restore(); if (graphite_is_enabled()) thread_create_detach(graphite_loop, NULL, "graphite"); #ifdef HAVE_MQTT if (mqtt_publish_scope() != MPS_NONE) thread_create_detach(mqtt_loop, NULL, "mqtt"); #endif ice_thread_launch(); websocket_start(); service_notify("READY=1\n"); for (unsigned int idx = 0; idx < num_poller_threads; ++idx) thread_create_detach_prio( #ifdef HAVE_LIBURING rtpe_config.common.io_uring ? uring_poller_loop : #endif poller_loop, rtpe_pollers[idx % num_rtpe_pollers], rtpe_config.scheduling, rtpe_config.priority, idx < rtpe_config.num_threads ? "poller" : "cpoller"); media_player_launch(); send_timer_launch(); jitter_buffer_launch(); codec_timers_launch(); // reap threads as they shut down during run time threads_join_all(false); service_notify("STOPPING=1\n"); // free libevent #if LIBEVENT_VERSION_NUMBER >= 0x02010100 libevent_global_shutdown(); #endif websocket_stop(); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && initial_rtpe_config.redis_delete_async) redis_async_event_base_action(rtpe_redis_write, EVENT_BASE_LOOPBREAK); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && rtpe_redis_notify) redis_async_event_base_action(rtpe_redis_notify, EVENT_BASE_LOOPBREAK); threads_join_all(true); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && initial_rtpe_config.redis_delete_async) redis_async_event_base_action(rtpe_redis_write, EVENT_BASE_FREE); if (!is_addr_unspecified(&rtpe_config.redis_ep.address) && rtpe_redis_notify) redis_async_event_base_action(rtpe_redis_notify, EVENT_BASE_FREE); ilog(LOG_INFO, "Version %s shutting down", RTPENGINE_VERSION); recording_fs_free(); unfill_initial_rtpe_cfg(&initial_rtpe_config); call_free(); jitter_buffer_init_free(); media_player_free(); codeclib_free(); call_interfaces_free(); ice_free(); dtls_cert_free(); control_ng_cleanup(); codecs_cleanup(); statistics_free(); redis_close(rtpe_redis); if (rtpe_redis_write != rtpe_redis) redis_close(rtpe_redis_write); redis_close(rtpe_redis_notify); free_prefix(); log_free(); janus_free(); release_listeners(&rtpe_cli); release_listeners(&rtpe_udp); release_listeners(&rtpe_tcp); release_listeners(&rtpe_control_ng); release_listeners(&rtpe_control_ng_tcp); for (unsigned int idx = 0; idx < num_rtpe_pollers; ++idx) #ifdef HAVE_LIBURING if (rtpe_config.common.io_uring) uring_poller_free(&rtpe_pollers[idx]); else #endif poller_free(&rtpe_pollers[idx]); g_free(rtpe_pollers); interfaces_free(); #ifndef WITHOUT_NFTABLES nftables_shutdown(rtpe_config.nftables_chain, rtpe_config.nftables_base_chain, (nftables_args){.family = rtpe_config.nftables_family}); #endif bufferpool_destroy(shm_bufferpool); kernel_shutdown_table(); options_free(); bufferpool_cleanup(); return 0; } rtpengine-mr12.5.1.22/daemon/media_player.c000066400000000000000000001250551474347554000204430ustar00rootroot00000000000000#include "media_player.h" #include #ifdef WITH_TRANSCODING #include #include #endif #include "obj.h" #include "log.h" #include "timerthread.h" #include "call.h" #include "str.h" #include "rtplib.h" #include "codec.h" #include "media_socket.h" #include "ssrc.h" #include "log_funcs.h" #include "main.h" #include "rtcp.h" #ifdef WITH_TRANSCODING #include "fix_frame_channel_layout.h" #endif #include "kernel.h" #include "bufferpool.h" #include "uring.h" #define DEFAULT_AVIO_BUFSIZE 4096 typedef enum { MPC_OK = 0, MPC_ERR = -1, MPC_CACHED = 1, } mp_cached_code; #ifdef WITH_TRANSCODING static struct timerthread media_player_thread; static __thread MYSQL *mysql_conn; struct media_player_cache_packet; static void cache_packet_free(struct media_player_cache_packet *p); TYPED_GPTRARRAY_FULL(cache_packet_arr, struct media_player_cache_packet, cache_packet_free) struct media_player_cache_index { struct media_player_content_index index; rtp_payload_type dst_pt; }; TYPED_DIRECT_FUNCS(media_player_direct_hash, media_player_direct_eq, struct media_player) TYPED_GHASHTABLE(media_player_ht, struct media_player, struct media_player, media_player_direct_hash, media_player_direct_eq, NULL, NULL) // XXX ref counting players struct media_player_cache_entry { volatile bool finished; // "unfinished" elements, only used while decoding is active: mutex_t lock; cond_t cond; // to wait for more data to be decoded cache_packet_arr *packets; // read-only except for decoder thread, which uses finished flags and locks unsigned long duration; // cumulative in ms, summed up while decoding unsigned int kernel_idx; // -1 if not in use media_player_ht wait_queue; // players waiting on decoder to finish struct codec_scheduler csch; struct media_player_coder coder; // de/encoder data char *info_str; // for logging }; struct media_player_cache_packet { char *buf; str s; long long pts; long long duration; // us long long duration_ts; }; static mutex_t media_player_cache_lock; static GHashTable *media_player_cache; // keys and values only ever freed at shutdown static bool media_player_read_packet(struct media_player *mp); #endif static struct timerthread send_timer_thread; static void send_timer_send_nolock(struct send_timer *st, struct codec_packet *cp); static void send_timer_send_lock(struct send_timer *st, struct codec_packet *cp); #ifdef WITH_TRANSCODING // called with call->master lock in W static unsigned int send_timer_flush(struct send_timer *st, void *ptr) { if (!st) return 0; return timerthread_queue_flush(&st->ttq, ptr); } static void media_player_coder_shutdown(struct media_player_coder *c) { avformat_close_input(&c->fmtctx); codec_handler_free(&c->handler); if (c->avioctx) { if (c->avioctx->buffer) av_freep(&c->avioctx->buffer); av_freep(&c->avioctx); } c->avstream = NULL; if (c->blob) free(c->blob); c->blob = NULL; c->read_pos = STR_NULL; } // called with call->master lock in W static void media_player_shutdown(struct media_player *mp) { if (!mp) return; //ilog(LOG_DEBUG, "shutting down media_player"); timerthread_obj_deschedule(&mp->tt_obj); mp->next_run.tv_sec = 0; if (mp->sink) { unsigned int num = send_timer_flush(mp->sink->send_timer, mp->coder.handler); ilog(LOG_DEBUG, "%u packets removed from send queue", num); // roll back seq numbers already used mp->ssrc_out->parent->seq_diff -= num; } if (mp->opts.block_egress && mp->media) MEDIA_CLEAR(mp->media, BLOCK_EGRESS); mp->media = NULL; media_player_coder_shutdown(&mp->coder); if (mp->kernel_idx != -1) kernel_stop_stream_player(mp->kernel_idx); else if (mp->cache_entry) { mutex_lock(&mp->cache_entry->lock); if (t_hash_table_is_set(mp->cache_entry->wait_queue)) t_hash_table_remove(mp->cache_entry->wait_queue, mp); mutex_unlock(&mp->cache_entry->lock); } mp->cache_index.type = MP_OTHER; if (mp->cache_index.file.s) g_free(mp->cache_index.file.s); mp->cache_index.file = STR_NULL;// coverity[missing_lock : FALSE] mp->cache_entry = NULL; // coverity[missing_lock : FALSE] mp->cache_read_idx = 0; mp->kernel_idx = -1; } #endif long long media_player_stop(struct media_player *mp) { #ifdef WITH_TRANSCODING media_player_shutdown(mp); if (!mp) return 0; return mp->last_frame_ts; #else return 0; #endif } #ifdef WITH_TRANSCODING static void __media_player_free(void *p) { struct media_player *mp = p; media_player_shutdown(mp); ssrc_ctx_put(&mp->ssrc_out); mutex_destroy(&mp->lock); obj_put(mp->call); av_packet_free(&mp->coder.pkt); if (mp->cache_index.file.s) g_free(mp->cache_index.file.s); } #endif // call->master_lock held in W void media_player_new(struct media_player **mpp, struct call_monologue *ml) { #ifdef WITH_TRANSCODING if (*mpp) return; //ilog(LOG_DEBUG, "creating media_player"); uint32_t ssrc = 0; while (ssrc == 0) ssrc = ssl_random(); struct ssrc_ctx *ssrc_ctx = get_ssrc_ctx(ssrc, ml->ssrc_hash, SSRC_DIR_OUTPUT, ml); ssrc_ctx->next_rtcp = rtpe_now; struct media_player *mp = *mpp = obj_alloc0("media_player", sizeof(*mp), __media_player_free); mp->tt_obj.tt = &media_player_thread; mutex_init(&mp->lock); mp->kernel_idx = -1; mp->run_func = media_player_read_packet; // default mp->call = obj_get(ml->call); mp->ml = ml; mp->seq = ssl_random(); mp->buffer_ts = ssl_random(); mp->ssrc_out = ssrc_ctx; mp->coder.pkt = av_packet_alloc(); mp->coder.pkt->data = NULL; mp->coder.pkt->size = 0; #else return; #endif } static void __send_timer_free(void *p) { struct send_timer *st = p; obj_put(st->call); } static void __send_timer_send_now(struct timerthread_queue *ttq, void *p) { send_timer_send_nolock((void *) ttq, p); }; static void __send_timer_send_later(struct timerthread_queue *ttq, void *p) { send_timer_send_lock((void *) ttq, p); }; // call->master_lock held in W struct send_timer *send_timer_new(struct packet_stream *ps) { struct send_timer *st = timerthread_queue_new("send_timer", sizeof(*st), &send_timer_thread, __send_timer_send_now, __send_timer_send_later, __send_timer_free, codec_packet_free); st->call = obj_get(ps->call); st->sink = ps; return st; } // call is locked in R static void send_timer_rtcp(struct send_timer *st, struct ssrc_ctx *ssrc_out) { struct call_media *media = st->sink ? st->sink->media : NULL; if (!media) return; rtcp_send_report(media, ssrc_out); ssrc_out->next_rtcp = rtpe_now; timeval_add_usec(&ssrc_out->next_rtcp, 5000000 + (ssl_random() % 2000000)); } struct async_send_req { struct uring_req req; // must be first struct iovec iov; struct msghdr msg; struct sockaddr_storage sin; void *buf; }; static void async_send_req_free(struct uring_req *p, int32_t res, uint32_t flags) { struct async_send_req *req = (__typeof__(req)) p; bufferpool_unref(req->buf); uring_req_free(p); } static bool __send_timer_send_1(struct rtp_header *rh, struct packet_stream *sink, struct codec_packet *cp) { stream_fd *sink_fd = sink->selected_sfd; if (!sink_fd || sink_fd->socket.fd == -1 || sink->endpoint.address.family == NULL) return false; log_info_stream_fd(sink->selected_sfd); if (rh) { ilog(LOG_DEBUG, "Forward to sink endpoint: local %s -> remote %s%s%s " "(RTP seq %u TS %u SSRC %x)", endpoint_print_buf(&sink_fd->socket.local), FMT_M(endpoint_print_buf(&sink->endpoint)), ntohs(rh->seq_num), ntohl(rh->timestamp), ntohl(rh->ssrc)); codec_calc_jitter(cp->ssrc_out, ntohl(rh->timestamp), cp->clockrate, &rtpe_now); } else ilog(LOG_DEBUG, "Forward to sink endpoint: local %s -> remote %s%s%s", endpoint_print_buf(&sink_fd->socket.local), FMT_M(endpoint_print_buf(&sink->endpoint))); struct async_send_req *req = uring_alloc_req(sizeof(*req), async_send_req_free); req->iov = (__typeof(req->iov)) { .iov_base = cp->s.s, .iov_len = cp->s.len, }; req->msg = (__typeof(req->msg)) { .msg_iov = &req->iov, .msg_iovlen = 1, }; req->buf = bufferpool_ref(cp->s.s); uring_sendmsg(&sink_fd->socket, &req->msg, &sink->endpoint, &req->sin, &req->req); if (sink->call->recording && rtpe_config.rec_egress) { // fill in required members struct media_packet mp = { .call = sink->call, .stream = sink, .sfd = sink_fd, .fsin = sink->endpoint, }; dump_packet(&mp, cp->plain.s ? &cp->plain : &cp->s); } atomic64_inc_na(&sink->stats_out->packets); atomic64_add_na(&sink->stats_out->bytes, cp->s.len); atomic64_inc_na(&sink_fd->local_intf->stats->out.packets); atomic64_add_na(&sink_fd->local_intf->stats->out.bytes, cp->s.len); log_info_pop(); return true; } static void __send_timer_send_common(struct send_timer *st, struct codec_packet *cp) { log_info_stream_fd(st->sink->selected_sfd); if (!__send_timer_send_1(cp->rtp, st->sink, cp)) goto out; if (cp->ssrc_out && cp->rtp) { atomic64_inc_na(&cp->ssrc_out->stats->packets); atomic64_add_na(&cp->ssrc_out->stats->bytes, cp->s.len); if (cp->ts) atomic_set_na(&cp->ssrc_out->stats->timestamp, cp->ts); else atomic_set_na(&cp->ssrc_out->stats->timestamp, ntohl(cp->rtp->timestamp)); payload_tracker_add(&cp->ssrc_out->tracker, cp->rtp->m_pt & 0x7f); } // do we send RTCP? struct ssrc_ctx *ssrc_out = cp->ssrc_out; if (ssrc_out && ssrc_out->next_rtcp.tv_sec) { mutex_lock(&ssrc_out->parent->h.lock); long long diff = timeval_diff(&ssrc_out->next_rtcp, &rtpe_now); mutex_unlock(&ssrc_out->parent->h.lock); if (diff < 0) send_timer_rtcp(st, ssrc_out); } out: codec_packet_free(cp); log_info_pop(); } static void send_timer_send_lock(struct send_timer *st, struct codec_packet *cp) { call_t *call = st->call; if (!call) return; log_info_call(call); rwlock_lock_r(&call->master_lock); mutex_lock(&st->sink->out_lock); __send_timer_send_common(st, cp); mutex_unlock(&st->sink->out_lock); rwlock_unlock_r(&call->master_lock); log_info_pop(); } // st->stream->out_lock (or call->master_lock/W) must be held already static void send_timer_send_nolock(struct send_timer *st, struct codec_packet *cp) { call_t *call = st->call; if (!call) return; log_info_call(call); __send_timer_send_common(st, cp); log_info_pop(); } // st->stream->out_lock (or call->master_lock/W) must be held already void send_timer_push(struct send_timer *st, struct codec_packet *cp) { timerthread_queue_push(&st->ttq, &cp->ttq_entry); } #ifdef WITH_TRANSCODING #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 26, 0) #define CODECPAR codecpar #else #define CODECPAR codec #endif static void media_player_coder_add_packet(struct media_player_coder *c, void (*fn)(void *p, char *buf, size_t len, long long us_dur, unsigned long long pts), void *p) { // scale pts and duration according to sample rate long long duration_scaled = c->pkt->duration * c->avstream->CODECPAR->sample_rate * c->avstream->time_base.num / c->avstream->time_base.den; unsigned long long pts_scaled = c->pkt->pts * c->avstream->CODECPAR->sample_rate * c->avstream->time_base.num / c->avstream->time_base.den; long long us_dur = c->pkt->duration * 1000000LL * c->avstream->time_base.num / c->avstream->time_base.den; ilog(LOG_DEBUG, "read media packet: pts %llu duration %lli (scaled %llu/%lli, %lli us), " "sample rate %i, time_base %i/%i", (unsigned long long) c->pkt->pts, (long long) c->pkt->duration, pts_scaled, duration_scaled, us_dur, c->avstream->CODECPAR->sample_rate, c->avstream->time_base.num, c->avstream->time_base.den); fn(p, (char *) c->pkt->data, c->pkt->size, us_dur, pts_scaled); } static bool media_player_read_decoded_packet(struct media_player *mp) { struct media_player_cache_entry *entry = mp->cache_entry; if (!entry) return false; unsigned int read_idx = mp->cache_read_idx; ilog(LOG_DEBUG, "Buffered media player reading packet #%u", read_idx); retry:; bool finished = entry->finished; // hold lock or not if (!finished) { // slow track with locking mutex_lock(&entry->lock); // confirm that we are indeed not finished if (entry->finished) { // preempted, good to go mutex_unlock(&entry->lock); finished = true; } } if (read_idx >= entry->packets->len) { if (!finished) { // wait for more cond_wait(&entry->cond, &entry->lock); mutex_unlock(&entry->lock); goto retry; } // EOF if (mp->opts.repeat <= 1) { ilog(LOG_DEBUG, "EOF reading from media buffer (%s), stopping playback", entry->info_str); return true; } ilog(LOG_DEBUG, "EOF reading from media buffer (%s) but will repeat %i time", entry->info_str, mp->opts.repeat); mp->opts.repeat--; read_idx = mp->cache_read_idx = 0; goto retry; } // got a packet struct media_player_cache_packet *pkt = entry->packets->pdata[read_idx]; long long us_dur = pkt->duration; mp->cache_read_idx++; if (!finished) mutex_unlock(&entry->lock); // make a copy to send out size_t len = pkt->s.len + sizeof(struct rtp_header) + RTP_BUFFER_TAIL_ROOM; char *buf = bufferpool_alloc(media_bufferpool, len); memcpy(buf, pkt->buf, len); struct media_packet packet = { .tv = rtpe_now, .call = mp->call, .media = mp->media, .media_out = mp->media, .rtp = (void *) buf, .ssrc_out = mp->ssrc_out, }; mp->last_frame_ts = pkt->pts; codec_output_rtp(&packet, &entry->csch, mp->coder.handler, buf, pkt->s.len, mp->buffer_ts, read_idx == 0, mp->seq++, 0, -1, 0); mp->buffer_ts += pkt->duration_ts; mp->sync_ts_tv = rtpe_now; media_packet_encrypt(mp->crypt_handler->out->rtp_crypt, mp->sink, &packet); mutex_lock(&mp->sink->out_lock); if (media_socket_dequeue(&packet, mp->sink)) ilog(LOG_ERR, "Error sending playback media to RTP sink"); mutex_unlock(&mp->sink->out_lock); // schedule our next run timeval_add_usec(&mp->next_run, us_dur); timerthread_obj_schedule_abs(&mp->tt_obj, &mp->next_run); return false; } static void media_player_kernel_player_start_now(struct media_player *mp) { struct media_player_cache_entry *entry = mp->cache_entry; if (!entry) return; const rtp_payload_type *dst_pt = &entry->coder.handler->dest_pt; ilog(LOG_DEBUG, "Starting kernel media player index %i (PT %i)", entry->kernel_idx, dst_pt->payload_type); struct rtpengine_play_stream_info info = { .packet_stream_idx = entry->kernel_idx, .pt = dst_pt->payload_type, .seq = mp->seq, .ts = mp->buffer_ts, .ssrc = mp->ssrc_out->parent->h.ssrc, .repeat = mp->opts.repeat, .stats = mp->sink->stats_out, .iface_stats = mp->sink->selected_sfd->local_intf->stats, .ssrc_stats = mp->ssrc_out->stats, }; mp->sink->endpoint.address.family->endpoint2kernel(&info.dst_addr, &mp->sink->endpoint); // XXX unify with __re_address_translate_ep mp->sink->selected_sfd->socket.local.address.family->endpoint2kernel(&info.src_addr, &mp->sink->selected_sfd->socket.local); // XXX unify with __re_address_translate_ep mp->crypt_handler->out->kernel(&info.encrypt, mp->sink); unsigned int idx = kernel_start_stream_player(&info); if (idx == -1) ilog(LOG_ERR, "Failed to start kernel media player (index %i): %s", info.packet_stream_idx, strerror(errno)); else mp->kernel_idx = idx; } static void media_player_kernel_player_start(struct media_player *mp) { struct media_player_cache_entry *entry = mp->cache_entry; if (!entry) return; // decoder finished yet? try unlocked read first bool finished = entry->finished; if (!finished) { mutex_lock(&entry->lock); // check flag again in case it happened just now if (!entry->finished) { // add us to wait list ilog(LOG_DEBUG, "Decoder not finished yet, waiting to start kernel player index %i", entry->kernel_idx); t_hash_table_insert(entry->wait_queue, mp, mp); // XXX reference needed? mutex_unlock(&entry->lock); return; } // finished now, drop down below mutex_unlock(&entry->lock); } media_player_kernel_player_start_now(mp); } static void media_player_cached_reader_start(struct media_player *mp) { struct media_player_cache_entry *entry = mp->cache_entry; const rtp_payload_type *dst_pt = &entry->coder.handler->dest_pt; if (entry->kernel_idx != -1) { media_player_kernel_player_start(mp); return; } // create dummy codec handler and start timer mp->coder.handler = codec_handler_make_dummy(&entry->coder.handler->dest_pt, mp->media); mp->run_func = media_player_read_decoded_packet; mp->next_run = rtpe_now; mp->coder.duration = entry->coder.duration; // if we played anything before, scale our sync TS according to the time // that has passed if (mp->sync_ts_tv.tv_sec) { long long ts_diff_us = timeval_diff(&rtpe_now, &mp->sync_ts_tv); mp->buffer_ts += fraction_divl(ts_diff_us * dst_pt->clock_rate / 1000000, &dst_pt->codec_def->default_clockrate_fact); } mp->sync_ts_tv = rtpe_now; media_player_read_decoded_packet(mp); } static void cache_packet_free(struct media_player_cache_packet *p) { bufferpool_unref(p->buf); g_slice_free1(sizeof(*p), p); } // returns: true = entry exists, decoding handled separately, use entry for playback // false = no entry exists, OR entry is a new one, proceed to open decoder, then call _play_start static bool media_player_cache_get_entry(struct media_player *mp, const rtp_payload_type *dst_pt) { if (!rtpe_config.player_cache) return false; if (mp->cache_index.type <= 0) return false; if (!dst_pt) return false; struct media_player_cache_index lookup; lookup.index = mp->cache_index; lookup.dst_pt = *dst_pt; mutex_lock(&media_player_cache_lock); struct media_player_cache_entry *entry = mp->cache_entry = g_hash_table_lookup(media_player_cache, &lookup); bool ret = true; // entry exists, use cached data if (entry) { media_player_cached_reader_start(mp); goto out; } ret = false; // new entry, open decoder, then call media_player_play_start // initialise object struct media_player_cache_index *ins_key = g_slice_alloc(sizeof(*ins_key)); *ins_key = lookup; str_init_dup_str(&ins_key->index.file, &lookup.index.file); codec_init_payload_type(&ins_key->dst_pt, MT_UNKNOWN); // duplicate contents entry = mp->cache_entry = g_slice_alloc0(sizeof(*entry)); mutex_init(&entry->lock); cond_init(&entry->cond); entry->packets = cache_packet_arr_new_sized(64); entry->wait_queue = media_player_ht_new(); switch (lookup.index.type) { case MP_DB: entry->info_str = g_strdup_printf("DB media file #%llu", lookup.index.db_id); break; case MP_FILE: entry->info_str = g_strdup_printf("media file '" STR_FORMAT "'", STR_FMT(&lookup.index.file)); break; case MP_BLOB: entry->info_str = g_strdup_printf("binary media blob"); break; default:; } g_hash_table_insert(media_player_cache, ins_key, entry); entry->kernel_idx = -1; if (kernel.use_player) { entry->kernel_idx = kernel_get_packet_stream(); if (entry->kernel_idx == -1) ilog(LOG_ERR, "Failed to get kernel packet stream entry (%s)", strerror(errno)); else ilog(LOG_DEBUG, "Using kernel packet stream index %i", entry->kernel_idx); } out: mutex_unlock(&media_player_cache_lock); return ret; } static void media_player_cache_packet(struct media_player_cache_entry *entry, char *buf, size_t len, long long us_dur, unsigned long long pts) { // synthesise fake RTP header and media_packet context struct rtp_header rtp = { .timestamp = pts, // taken verbatim by handler_func_playback w/o byte swap }; struct media_packet packet = { .rtp = &rtp, .cache_entry = entry, }; str_init_len(&packet.raw, buf, len); packet.payload = packet.raw; entry->coder.handler->handler_func(entry->coder.handler, &packet); } static void media_player_cache_entry_decoder_thread(void *p) { struct media_player_cache_entry *entry = p; ilog(LOG_DEBUG, "Launching media decoder thread for %s", entry->info_str); while (true) { // let us be cancelled thread_cancel_enable(); pthread_testcancel(); thread_cancel_disable(); int ret = av_read_frame(entry->coder.fmtctx, entry->coder.pkt); if (ret < 0) { if (ret != AVERROR_EOF) ilog(LOG_ERR, "Error while reading from media stream"); break; } media_player_coder_add_packet(&entry->coder, (void *) media_player_cache_packet, entry); av_packet_unref(entry->coder.pkt); } ilog(LOG_DEBUG, "Decoder thread for %s finished", entry->info_str); mutex_lock(&entry->lock); entry->finished = true; cond_broadcast(&entry->cond); media_player_ht_iter iter; t_hash_table_iter_init(&iter, entry->wait_queue); struct media_player *mp; while (t_hash_table_iter_next(&iter, &mp, NULL)) { if (mp->media) media_player_kernel_player_start_now(mp); } t_hash_table_destroy(entry->wait_queue); // not needed any more entry->wait_queue = media_player_ht_null(); mutex_unlock(&entry->lock); } static void packet_encoded_cache(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, str *s, char *buf, unsigned int pkt_len, const struct fraction *cr_fact) { struct media_player_cache_entry *entry = mp->cache_entry; struct media_player_cache_packet *ep = g_slice_alloc0(sizeof(*ep)); long duration = fraction_divl(pkt->duration, cr_fact); *ep = (__typeof__(*ep)) { .buf = buf, .s = *s, .pts = pkt->pts, .duration_ts = duration, .duration = (long long) duration * 1000000LL / entry->coder.handler->dest_pt.clock_rate, }; mutex_lock(&entry->lock); t_ptr_array_add(entry->packets, ep); if (entry->kernel_idx != -1) { ilog(LOG_DEBUG, "Adding media packet (length %zu, TS %" PRIu64 ", delay %lu ms) to kernel packet stream %i", s->len, pkt->pts, entry->duration, entry->kernel_idx); if (!kernel_add_stream_packet(entry->kernel_idx, s->s, s->len, entry->duration, pkt->pts, pkt->duration)) ilog(LOG_ERR, "Failed to add packet to kernel player (%s)", strerror(errno)); } entry->duration += ep->duration / 1000; cond_broadcast(&entry->cond); mutex_unlock(&entry->lock); } static int media_player_packet_cache(encoder_t *enc, void *u1, void *u2) { struct codec_ssrc_handler *ch = u1; struct media_packet *mp = u2; packet_encoded_packetize(enc->avpkt, ch, mp, enc->def->packetizer, enc, &enc->clockrate_fact, packet_encoded_cache); return 0; } // called from media_player_play_start, which is called after media_player_cache_get_entry returned true. // this can mean that either we don't have a cache entry and should continue normally, or if we // do have a cache entry, initialise it, set up the thread, take over decoding, and then proceed as a // media player consuming the data from the decoder thread. // returns: false = continue normally decode in-thread, true = take data from other thread static bool media_player_cache_entry_init(struct media_player *mp, const rtp_payload_type *dst_pt) { struct media_player_cache_entry *entry = mp->cache_entry; if (!entry) return false; // steal coder data entry->coder = mp->coder; ZERO(mp->coder); mp->coder.duration = entry->coder.duration; // retain this for reporting entry->coder.handler->packet_encoded = media_player_packet_cache; // use low priority (10 nice) thread_create_detach_prio(media_player_cache_entry_decoder_thread, entry, NULL, 10, "mp decoder"); media_player_cached_reader_start(mp); return true; } // find suitable output payload type static rtp_payload_type *media_player_get_dst_pt(struct media_player *mp) { rtp_payload_type *dst_pt = NULL; for (__auto_type l = mp->media->codecs.codec_prefs.head; l; l = l->next) { dst_pt = l->data; ensure_codec_def(dst_pt, mp->media); if (dst_pt->codec_def && !dst_pt->codec_def->supplemental) goto found; } if (!dst_pt) { ilog(LOG_ERR, "No supported output codec found in SDP"); return NULL; } found: ilog(LOG_DEBUG, "Output codec for media playback is " STR_FORMAT, STR_FMT(&dst_pt->encoding_with_params)); return dst_pt; } bool media_player_pt_match(const struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt) { if (!mp->coder.handler) return true; // not initialised yet -> doesn't need a reset if (!rtp_payload_type_eq_exact(&mp->coder.handler->dest_pt, dst_pt)) return false; if (!rtp_payload_type_eq_exact(&mp->coder.handler->source_pt, src_pt)) return false; return true; } static int media_player_setup_common(struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type **dst_pt) { if (!*dst_pt) *dst_pt = media_player_get_dst_pt(mp); if (!*dst_pt) return -1; // if we played anything before, scale our sync TS according to the time // that has passed if (mp->sync_ts_tv.tv_sec) { long long ts_diff_us = timeval_diff(&rtpe_now, &mp->sync_ts_tv); mp->sync_ts += fraction_divl(ts_diff_us * (*dst_pt)->clock_rate / 1000000, &(*dst_pt)->codec_def->default_clockrate_fact); } // if we already have a handler, see if anything needs changing if (!media_player_pt_match(mp, src_pt, *dst_pt)) { ilog(LOG_DEBUG, "Resetting codec handler for media player"); codec_handler_free(&mp->coder.handler); } return 0; } // used for generic playback (audio_player, t38_gateway) int media_player_setup(struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt) { int ret = media_player_setup_common(mp, src_pt, &dst_pt); if (ret) return ret; if (!mp->coder.handler) mp->coder.handler = codec_handler_make_playback(src_pt, dst_pt, mp->sync_ts, mp->media, mp->ssrc_out->parent->h.ssrc); if (!mp->coder.handler) return -1; return 0; } // used for "play media" player static int __media_player_setup_internal(struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt) { int ret = media_player_setup_common(mp, src_pt, &dst_pt); if (ret) return ret; if (!mp->coder.handler) mp->coder.handler = codec_handler_make_media_player(src_pt, dst_pt, mp->sync_ts, mp->media, mp->ssrc_out->parent->h.ssrc); if (!mp->coder.handler) return -1; return 0; } static int __ensure_codec_handler(struct media_player *mp, const rtp_payload_type *dst_pt) { if (mp->coder.handler) return 0; // synthesise rtp payload type rtp_payload_type src_pt = { .payload_type = -1 }; src_pt.codec_def = codec_find_by_av(mp->coder.avstream->CODECPAR->codec_id); if (!src_pt.codec_def) { ilog(LOG_ERR, "Attempting to play media from an unsupported file format/codec"); return -1; } src_pt.encoding = src_pt.codec_def->rtpname_str; src_pt.channels = GET_CHANNELS(mp->coder.avstream->CODECPAR); src_pt.clock_rate = mp->coder.avstream->CODECPAR->sample_rate; codec_init_payload_type(&src_pt, MT_AUDIO); if (__media_player_setup_internal(mp, &src_pt, dst_pt)) return -1; mp->coder.duration = mp->coder.avstream->duration * 1000 * mp->coder.avstream->time_base.num / mp->coder.avstream->time_base.den; payload_type_clear(&src_pt); return 0; } // appropriate lock must be held void media_player_add_packet(struct media_player *mp, char *buf, size_t len, long long us_dur, unsigned long long pts) { // synthesise fake RTP header and media_packet context struct rtp_header rtp = { .timestamp = pts, // taken verbatim by handler_func_playback w/o byte swap .seq_num = htons(mp->seq), }; struct media_packet packet = { .tv = rtpe_now, .call = mp->call, .media = mp->media, .media_out = mp->media, .rtp = &rtp, .ssrc_out = mp->ssrc_out, }; str_init_len(&packet.raw, buf, len); packet.payload = packet.raw; mp->coder.handler->handler_func(mp->coder.handler, &packet); // as this is timing sensitive and we may have spent some time decoding, // update our global "now" timestamp gettimeofday(&rtpe_now, NULL); // keep track of RTP timestamps and real clock. look at the last packet we received // and update our sync TS. if (packet.packets_out.head) { struct codec_packet *p = packet.packets_out.head->data; if (p->rtp) { mp->sync_ts = ntohl(p->rtp->timestamp); mp->sync_ts_tv = p->ttq_entry.when; } } media_packet_encrypt(mp->crypt_handler->out->rtp_crypt, mp->sink, &packet); mutex_lock(&mp->sink->out_lock); if (media_socket_dequeue(&packet, mp->sink)) ilog(LOG_ERR, "Error sending playback media to RTP sink"); mutex_unlock(&mp->sink->out_lock); timeval_add_usec(&mp->next_run, us_dur); timerthread_obj_schedule_abs(&mp->tt_obj, &mp->next_run); } // appropriate lock must be held static bool media_player_read_packet(struct media_player *mp) { if (!mp->coder.fmtctx) return true; int ret = av_read_frame(mp->coder.fmtctx, mp->coder.pkt); if (ret < 0) { if (ret == AVERROR_EOF) { if (mp->opts.repeat > 1) { ilog(LOG_DEBUG, "EOF reading from media stream but will repeat %i time", mp->opts.repeat); mp->opts.repeat = mp->opts.repeat - 1; int64_t ret64 = avio_seek(mp->coder.fmtctx->pb, 0, SEEK_SET); if (ret64 != 0) ilog(LOG_ERR, "Failed to seek to beginning of media file"); ret = av_seek_frame(mp->coder.fmtctx, -1, 0, 0); if (ret < 0) ilog(LOG_ERR, "Failed to seek to beginning of media file"); ret = av_read_frame(mp->coder.fmtctx, mp->coder.pkt); } else { ilog(LOG_DEBUG, "EOF reading from media stream"); return true; } } if (ret < 0 && ret != AVERROR_EOF) { ilog(LOG_ERR, "Error while reading from media stream"); return true; } } mp->last_frame_ts = mp->coder.pkt->pts; media_player_coder_add_packet(&mp->coder, (void *) media_player_add_packet, mp); av_packet_unref(mp->coder.pkt); return false; } // call->master_lock held in W void media_player_set_media(struct media_player *mp, struct call_media *media) { mp->media = media; if (media->streams.head) { mp->sink = media->streams.head->data; mp->crypt_handler = determine_handler(&transport_protocols[PROTO_RTP_AVP], media, true); } } // call->master_lock held in W // returns destination payload type, or NULL on failure static const rtp_payload_type *media_player_play_setup(struct media_player *mp) { // find call media suitable for playback struct call_media *media; for (unsigned int i = 0; i < mp->ml->medias->len; i++) { media = mp->ml->medias->pdata[i]; if (media->type_id != MT_AUDIO) continue; if (!MEDIA_ISSET(media, SEND)) continue; if (media->streams.length == 0) continue; goto found; } media = NULL; found: if (!media) { ilog(LOG_ERR, "No suitable SDP section for media playback"); return NULL; } media_player_set_media(mp, media); return media_player_get_dst_pt(mp); } // call->master_lock held in W // returns destination payload type, or NULL on failure static const rtp_payload_type *media_player_play_init(struct media_player *mp) { media_player_shutdown(mp); return media_player_play_setup(mp); } // call->master_lock held in W static bool media_player_play_start(struct media_player *mp, const rtp_payload_type *dst_pt) { // needed to have usable duration for some formats. ignore errors. if (!mp->coder.fmtctx->streams || !mp->coder.fmtctx->streams[0]) avformat_find_stream_info(mp->coder.fmtctx, NULL); mp->coder.avstream = mp->coder.fmtctx->streams[0]; if (!mp->coder.avstream) { ilog(LOG_ERR, "No AVStream present in format context"); return false; } if (__ensure_codec_handler(mp, dst_pt)) return false; if (mp->opts.block_egress) MEDIA_SET(mp->media, BLOCK_EGRESS); if (media_player_cache_entry_init(mp, dst_pt)) return true; mp->next_run = rtpe_now; // give ourselves a bit of a head start with decoding timeval_add_usec(&mp->next_run, -50000); // if start_pos is positive, try to seek to that position if (mp->opts.start_pos > 0) { ilog(LOG_DEBUG, "Seeking to position %lli", mp->opts.start_pos); av_seek_frame(mp->coder.fmtctx, 0, mp->opts.start_pos, 0); } else // in case this is a repeated start av_seek_frame(mp->coder.fmtctx, 0, 0, 0); media_player_read_packet(mp); return true; } #endif // call->master_lock held in W static mp_cached_code __media_player_init_file(struct media_player *mp, const str *file, media_player_opts_t opts, const rtp_payload_type *dst_pt) { #ifdef WITH_TRANSCODING mp->cache_index.type = MP_FILE; str_init_dup_str(&mp->cache_index.file, file); mp->opts = opts; if (media_player_cache_get_entry(mp, dst_pt)) return MPC_CACHED; char file_s[PATH_MAX]; snprintf(file_s, sizeof(file_s), STR_FORMAT, STR_FMT(file)); int ret = avformat_open_input(&mp->coder.fmtctx, file_s, NULL, NULL); if (ret < 0) { ilog(LOG_ERR, "Failed to open media file for playback: %s", av_error(ret)); return MPC_ERR; } return MPC_OK; #else return MPC_ERR; #endif } // call->master_lock held in W bool media_player_play_file(struct media_player *mp, const str *file, media_player_opts_t opts) { #ifdef WITH_TRANSCODING const rtp_payload_type *dst_pt = media_player_play_init(mp); if (!dst_pt) return false; mp_cached_code ret = __media_player_init_file(mp, file, opts, dst_pt); if (ret == MPC_CACHED) return true; if (ret == MPC_ERR) return false; return media_player_play_start(mp, dst_pt); #else return false; #endif } // call->master_lock held in W bool media_player_init_file(struct media_player *mp, const str *file, media_player_opts_t opts) { int ret = __media_player_init_file(mp, file, opts, NULL); return ret == 0; } #ifdef WITH_TRANSCODING static int __mp_avio_read_wrap(void *opaque, uint8_t *buf, int buf_size) { struct media_player_coder *c = opaque; if (buf_size < 0) return AVERROR(EINVAL); if (buf_size == 0) return 0; if (!c->read_pos.len) return AVERROR_EOF; int len = buf_size; if (len > c->read_pos.len) len = c->read_pos.len; memcpy(buf, c->read_pos.s, len); str_shift(&c->read_pos, len); return len; } static int __mp_avio_read(void *opaque, uint8_t *buf, int buf_size) { ilog(LOG_DEBUG, "__mp_avio_read(%i)", buf_size); int ret = __mp_avio_read_wrap(opaque, buf, buf_size); ilog(LOG_DEBUG, "__mp_avio_read(%i) = %i", buf_size, ret); return ret; } static int64_t __mp_avio_seek_set(struct media_player_coder *c, int64_t offset) { ilog(LOG_DEBUG, "__mp_avio_seek_set(%" PRIi64 ")", offset); if (offset < 0) return AVERROR(EINVAL); c->read_pos = *c->blob; if (str_shift(&c->read_pos, offset)) return AVERROR_EOF; return offset; } static int64_t __mp_avio_seek(void *opaque, int64_t offset, int whence) { ilog(LOG_DEBUG, "__mp_avio_seek(%" PRIi64 ", %i)", offset, whence); struct media_player_coder *c = opaque; if (whence == SEEK_SET) return __mp_avio_seek_set(c, offset); if (whence == SEEK_CUR) return __mp_avio_seek_set(c, ((int64_t) (c->read_pos.s - c->blob->s)) + offset); if (whence == SEEK_END) return __mp_avio_seek_set(c, ((int64_t) c->blob->len) + offset); return AVERROR(EINVAL); } // call->master_lock held in W static mp_cached_code __media_player_init_blob_id(struct media_player *mp, const str *blob, media_player_opts_t opts, long long db_id, const rtp_payload_type *dst_pt) { const char *err; int av_ret = 0; mp->opts = opts; if (db_id >= 0) { mp->cache_index.type = MP_DB; mp->cache_index.db_id = db_id; if (media_player_cache_get_entry(mp, dst_pt)) return MPC_CACHED; } else { mp->cache_index.type = MP_BLOB; str_init_dup_str(&mp->cache_index.file, blob); if (media_player_cache_get_entry(mp, dst_pt)) return MPC_CACHED; } mp->coder.blob = str_dup(blob); err = "out of memory"; if (!mp->coder.blob) goto err; mp->coder.read_pos = *mp->coder.blob; err = "could not allocate AVFormatContext"; mp->coder.fmtctx = avformat_alloc_context(); if (!mp->coder.fmtctx) goto err; void *avio_buf = av_malloc(DEFAULT_AVIO_BUFSIZE); err = "failed to allocate AVIO buffer"; if (!avio_buf) goto err; mp->coder.avioctx = avio_alloc_context(avio_buf, DEFAULT_AVIO_BUFSIZE, 0, &mp->coder, __mp_avio_read, NULL, __mp_avio_seek); err = "failed to allocate AVIOContext"; if (!mp->coder.avioctx) goto err; mp->coder.fmtctx->pb = mp->coder.avioctx; // consumes allocated mp->coder.fmtctx err = "failed to open AVFormatContext input"; av_ret = avformat_open_input(&mp->coder.fmtctx, "dummy", NULL, NULL); if (av_ret < 0) goto err; return MPC_OK; err: ilog(LOG_ERR, "Failed to start media playback from memory: %s", err); if (av_ret) ilog(LOG_ERR, "Error returned from libav: %s", av_error(av_ret)); return MPC_ERR; } // call->master_lock held in W bool media_player_play_blob(struct media_player *mp, const str *blob, media_player_opts_t opts) { const rtp_payload_type *dst_pt = media_player_play_init(mp); if (!dst_pt) return false; mp_cached_code ret = __media_player_init_blob_id(mp, blob, opts, -1, dst_pt); if (ret == MPC_CACHED) return true; if (ret == MPC_ERR) return false; return media_player_play_start(mp, dst_pt); } // call->master_lock held in W bool media_player_init_blob(struct media_player *mp, const str *blob, media_player_opts_t opts) { int ret = __media_player_init_blob_id(mp, blob, opts, -1, NULL); return ret == 0; } static int __connect_db(void) { if (mysql_conn) { mysql_close(mysql_conn); mysql_conn = NULL; } mysql_conn = mysql_init(NULL); if (!mysql_conn) return -1; if (!mysql_real_connect(mysql_conn, rtpe_config.mysql_host, rtpe_config.mysql_user, rtpe_config.mysql_pass, NULL, rtpe_config.mysql_port, NULL, CLIENT_IGNORE_SIGPIPE)) goto err; return 0; err: ilog(LOG_ERR, "Couldn't connect to database: %s", mysql_error(mysql_conn)); mysql_close(mysql_conn); mysql_conn = NULL; return -1; } // call->master_lock held in W static mp_cached_code __media_player_init_db(struct media_player *mp, long long id, media_player_opts_t opts, const rtp_payload_type *dst_pt) { const char *err; g_autoptr(char) query = NULL; err = "missing configuration"; if (!rtpe_config.mysql_host || !rtpe_config.mysql_query) goto err; query = g_strdup_printf(rtpe_config.mysql_query, (unsigned long long) id); size_t len = strlen(query); for (int retries = 0; retries < 5; retries++) { if (!mysql_conn || retries != 0) { err = "failed to connect to database"; if (__connect_db()) goto err; } int ret = mysql_real_query(mysql_conn, query, len); if (ret == 0) goto success; ret = mysql_errno(mysql_conn); if (ret == CR_SERVER_GONE_ERROR || ret == CR_SERVER_LOST) continue; ilog(LOG_ERR, "Failed to query from database: %s", mysql_error(mysql_conn)); } err = "exceeded max number of database retries"; goto err; success:; MYSQL_RES *res = mysql_store_result(mysql_conn); err = "failed to get result from database"; if (!res) goto err; MYSQL_ROW row = mysql_fetch_row(res); unsigned long *lengths = mysql_fetch_lengths(res); err = "empty result from database"; if (!row || !lengths || !row[0] || !lengths[0]) { mysql_free_result(res); goto err; } str blob = STR_INIT_LEN(row[0], lengths[0]); mp_cached_code ret = __media_player_init_blob_id(mp, &blob, opts, id, dst_pt); mysql_free_result(res); return ret; err: if (query) ilog(LOG_ERR, "Failed to start media playback from database (used query '%s'): %s", query, err); else ilog(LOG_ERR, "Failed to start media playback from database: %s", err); return MPC_ERR; } // call->master_lock held in W bool media_player_play_db(struct media_player *mp, long long id, media_player_opts_t opts) { const rtp_payload_type *dst_pt = media_player_play_init(mp); if (!dst_pt) return false; mp_cached_code ret = __media_player_init_db(mp, id, opts, dst_pt); if (ret == MPC_CACHED) return true; if (ret == MPC_ERR) return false; return media_player_play_start(mp, dst_pt); } // call->master_lock held in W bool media_player_init_db(struct media_player *mp, long long id, media_player_opts_t opts) { int ret = __media_player_init_db(mp, id, opts, NULL); return ret == 0; } static void media_player_run(void *ptr) { struct media_player *mp = ptr; call_t *call = mp->call; log_info_media(mp->media); //ilog(LOG_DEBUG, "running scheduled media_player"); rwlock_lock_r(&call->master_lock); mutex_lock(&mp->lock); bool finished = false; if (mp->next_run.tv_sec) finished = mp->run_func(mp); mutex_unlock(&mp->lock); rwlock_unlock_r(&call->master_lock); if (finished) { rwlock_lock_w(&call->master_lock); mp->next_run.tv_sec = 0; if (mp->opts.block_egress) MEDIA_CLEAR(mp->media, BLOCK_EGRESS); codec_update_all_source_handlers(mp->media->monologue, NULL); update_init_subscribers(mp->media->monologue, OP_PLAY_MEDIA); rwlock_unlock_w(&call->master_lock); } log_info_pop(); } bool media_player_is_active(struct call_monologue *ml) { if (!ml) return false; if (!ml->player) return false; if (!ml->player->next_run.tv_sec) return false; return true; } static unsigned int media_player_cache_entry_hash(const void *p) { const struct media_player_cache_index *i = p; unsigned int ret; switch (i->index.type) { case MP_DB: ret = i->index.db_id; break; case MP_FILE: case MP_BLOB: ret = str_hash(&i->index.file); break; default: abort(); } ret ^= str_hash(&i->dst_pt.encoding_with_full_params); ret ^= i->index.type; return ret; } static gboolean media_player_cache_entry_eq(const void *A, const void *B) { const struct media_player_cache_index *a = A, *b = B; if (a->index.type != b->index.type) return FALSE; switch (a->index.type) { case MP_DB: if (a->index.db_id != b->index.db_id) return FALSE; break; case MP_FILE: case MP_BLOB: if (!str_equal(&a->index.file, &b->index.file)) return FALSE; break; default: abort(); } return str_equal(&a->dst_pt.encoding_with_full_params, &b->dst_pt.encoding_with_full_params); } static void media_player_cache_index_free(void *p) { struct media_player_cache_index *i = p; g_free(i->index.file.s); payload_type_clear(&i->dst_pt); g_slice_free1(sizeof(*i), i); } static void media_player_cache_entry_free(void *p) { struct media_player_cache_entry *e = p; t_ptr_array_free(e->packets, true); mutex_destroy(&e->lock); g_free(e->info_str); if (t_hash_table_is_set(e->wait_queue)) t_hash_table_destroy(e->wait_queue); // XXX release references? media_player_coder_shutdown(&e->coder); av_packet_free(&e->coder.pkt); kernel_free_packet_stream(e->kernel_idx); g_slice_free1(sizeof(*e), e); } #endif // call->master_lock held in W bool media_player_start(struct media_player *mp) { #ifdef WITH_TRANSCODING if (!mp->coder.fmtctx) // initialised? return false; const rtp_payload_type *dst_pt = media_player_play_setup(mp); if (!dst_pt) return false; return media_player_play_start(mp, dst_pt); #else return false; #endif } void media_player_init(void) { #ifdef WITH_TRANSCODING if (rtpe_config.player_cache) { media_player_cache = g_hash_table_new_full(media_player_cache_entry_hash, media_player_cache_entry_eq, media_player_cache_index_free, media_player_cache_entry_free); mutex_init(&media_player_cache_lock); } timerthread_init(&media_player_thread, rtpe_config.media_num_threads, media_player_run); #endif timerthread_init(&send_timer_thread, rtpe_config.media_num_threads, timerthread_queue_run); } void media_player_free(void) { #ifdef WITH_TRANSCODING timerthread_free(&media_player_thread); if (media_player_cache) { mutex_destroy(&media_player_cache_lock); g_hash_table_destroy(media_player_cache); } #endif timerthread_free(&send_timer_thread); } void media_player_launch(void) { #ifdef WITH_TRANSCODING timerthread_launch(&media_player_thread, rtpe_config.scheduling, rtpe_config.priority, "media player"); #endif } void send_timer_launch(void) { //ilog(LOG_DEBUG, "send_timer_loop"); timerthread_launch(&send_timer_thread, rtpe_config.scheduling, rtpe_config.priority, "media player"); } rtpengine-mr12.5.1.22/daemon/media_socket.c000066400000000000000000003050351474347554000204350ustar00rootroot00000000000000#include "media_socket.h" #include #include #include #include #include #include "str.h" #include "ice.h" #include "socket.h" #include "redis.h" #include "rtp.h" #include "ice.h" #include "stun.h" #include "kernel.h" #include "rtcp.h" #include "sdp.h" #include "helpers.h" #include "log_funcs.h" #include "poller.h" #include "recording.h" #include "rtplib.h" #include "rtcplib.h" #include "ssrc.h" #include "iptables.h" #include "main.h" #include "codec.h" #include "media_player.h" #include "jitter_buffer.h" #include "dtmf.h" #include "mqtt.h" #include "janus.h" #include "bufferpool.h" #include "xt_RTPENGINE.h" #ifndef PORT_RANDOM_MIN #define PORT_RANDOM_MIN 6 #define PORT_RANDOM_MAX 20 #endif #ifndef MAX_RECV_LOOP_STRIKES #define MAX_RECV_LOOP_STRIKES 5 #endif struct intf_key { str name; sockfamily_t *preferred_family; }; struct intf_rr { struct intf_key hash_key; mutex_t lock; GQueue logical_intfs; struct logical_intf *singular; // set iff only one is present in the list - no lock needed }; struct packet_handler_ctx { // inputs: str s; // raw input packet bool kernel_handled; // parse and read contents but do not forward sink_handler_q *sinks; // where to send output packets to (forward destination) rewrite_func decrypt_func, encrypt_func; // handlers for decrypt/encrypt rtcp_filter_func *rtcp_filter; struct packet_stream *in_srtp, *out_srtp; // SRTP contexts for decrypt/encrypt (relevant for muxed RTCP) int payload_type; // -1 if unknown or not RTP bool rtcp; // true if this is an RTCP packet GQueue rtcp_list; // verdicts: bool update; // true if Redis info needs to be updated const char *unkernelize; // non-null if stream ought to be removed from kernel bool unconfirm; // forget learned peer address bool unkernelize_subscriptions; // if our peer address changed bool kernelize; // true if stream can be kernelized bool rtcp_discard; // do not forward RTCP // output: struct media_packet mp; // passed to handlers }; struct late_port_release { socket_t socket; struct intf_spec *spec; }; struct interface_stats_interval { struct interface_stats_block stats; struct timeval last_run; }; TYPED_GQUEUE(ports_release, struct late_port_release) /* thread scope (local) queue for sockets to be released, only appending here */ static __thread ports_release_q ports_to_release = TYPED_GQUEUE_INIT; /* global queue for sockets to be released, releasing by `sockets_releaser()` is done using that */ static ports_release_q ports_to_release_glob = TYPED_GQUEUE_INIT; static mutex_t ports_to_release_glob_lock = MUTEX_STATIC_INIT; static const struct streamhandler *__determine_handler(struct packet_stream *in, struct sink_handler *); static int __k_null(struct rtpengine_srtp *s, struct packet_stream *); static int __k_srtp_encrypt(struct rtpengine_srtp *s, struct packet_stream *); static int __k_srtp_decrypt(struct rtpengine_srtp *s, struct packet_stream *); static int call_avp2savp_rtp(str *s, struct packet_stream *, struct ssrc_ctx *); static int call_savp2avp_rtp(str *s, struct packet_stream *, struct ssrc_ctx *); static int call_avp2savp_rtcp(str *s, struct packet_stream *, struct ssrc_ctx *); static int call_savp2avp_rtcp(str *s, struct packet_stream *, struct ssrc_ctx *); static struct logical_intf *__get_logical_interface(const str *name, sockfamily_t *fam); /* ********** */ const struct transport_protocol transport_protocols[] = { [PROTO_RTP_AVP] = { .index = PROTO_RTP_AVP, .name = "RTP/AVP", .avpf_proto = PROTO_RTP_AVPF, .osrtp_proto = PROTO_RTP_SAVP_OSRTP, .rtp = 1, .srtp = 0, .avpf = 0, .tcp = 0, }, [PROTO_RTP_SAVP] = { .index = PROTO_RTP_SAVP, .name = "RTP/SAVP", .avpf_proto = PROTO_RTP_SAVPF, .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVP, .avpf = 0, .tcp = 0, }, [PROTO_RTP_AVPF] = { .index = PROTO_RTP_AVPF, .name = "RTP/AVPF", .osrtp_proto = PROTO_RTP_SAVPF_OSRTP, .rtp = 1, .srtp = 0, .avpf = 1, .tcp = 0, }, [PROTO_RTP_SAVPF] = { .index = PROTO_RTP_SAVPF, .name = "RTP/SAVPF", .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVPF, .avpf = 1, .tcp = 0, }, [PROTO_UDP_TLS_RTP_SAVP] = { .index = PROTO_UDP_TLS_RTP_SAVP, .name = "UDP/TLS/RTP/SAVP", .avpf_proto = PROTO_UDP_TLS_RTP_SAVPF, .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVP, .avpf = 0, .tcp = 0, }, [PROTO_UDP_TLS_RTP_SAVPF] = { .index = PROTO_UDP_TLS_RTP_SAVPF, .name = "UDP/TLS/RTP/SAVPF", .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVPF, .avpf = 1, .tcp = 0, }, [PROTO_UDPTL] = { .index = PROTO_UDPTL, .name = "udptl", .rtp = 0, .srtp = 0, .avpf = 0, .tcp = 0, }, [PROTO_RTP_SAVP_OSRTP] = { .index = PROTO_RTP_SAVP_OSRTP, .name = "RTP/AVP", .avpf_proto = PROTO_RTP_SAVPF_OSRTP, .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVP, .osrtp = 1, .avpf = 0, .tcp = 0, }, [PROTO_RTP_SAVPF_OSRTP] = { .index = PROTO_RTP_SAVPF_OSRTP, .name = "RTP/AVPF", .rtp = 1, .srtp = 1, .rtp_proto = PROTO_RTP_AVPF, .osrtp = 1, .avpf = 1, .tcp = 0, }, [PROTO_UNKNOWN] = { .index = PROTO_UNKNOWN, .name = "unknown (legacy)", .rtp = 0, .srtp = 0, .avpf = 0, .tcp = 0, }, }; const int num_transport_protocols = G_N_ELEMENTS(transport_protocols); /* ********** */ static const struct streamhandler_io __shio_noop = { // non-RTP protocols .kernel = __k_null, }; static const struct streamhandler_io __shio_noop_rtp = { .kernel = __k_null, }; static const struct streamhandler_io __shio_decrypt = { .kernel = __k_srtp_decrypt, .rtp_crypt = call_savp2avp_rtp, .rtcp_crypt = call_savp2avp_rtcp, }; static const struct streamhandler_io __shio_encrypt = { .kernel = __k_srtp_encrypt, .rtp_crypt = call_avp2savp_rtp, .rtcp_crypt = call_avp2savp_rtcp, }; static const struct streamhandler_io __shio_decrypt_rtcp_only = { .kernel = __k_null, .rtcp_crypt = call_savp2avp_rtcp, }; static const struct streamhandler_io __shio_encrypt_rtcp_only = { .kernel = __k_null, .rtcp_crypt = call_avp2savp_rtcp, }; static const struct streamhandler_io __shio_avpf_strip = { .kernel = __k_null, .rtcp_filter = rtcp_avpf2avp_filter, }; static const struct streamhandler_io __shio_decrypt_avpf_strip = { .kernel = __k_srtp_decrypt, .rtp_crypt = call_savp2avp_rtp, .rtcp_crypt = call_savp2avp_rtcp, .rtcp_filter = rtcp_avpf2avp_filter, }; /* ********** */ static const struct streamhandler __sh_noop = { // non-RTP protocols .in = &__shio_noop, .out = &__shio_noop, }; static const struct streamhandler __sh_noop_rtp = { .in = &__shio_noop_rtp, .out = &__shio_noop, }; static const struct streamhandler __sh_savp2avp = { .in = &__shio_decrypt, .out = &__shio_noop, }; static const struct streamhandler __sh_avp2savp = { .in = &__shio_noop_rtp, .out = &__shio_encrypt, }; static const struct streamhandler __sh_avpf2avp = { .in = &__shio_avpf_strip, .out = &__shio_noop, }; static const struct streamhandler __sh_avpf2savp = { .in = &__shio_avpf_strip, .out = &__shio_encrypt, }; static const struct streamhandler __sh_savpf2avp = { .in = &__shio_decrypt_avpf_strip, .out = &__shio_noop, }; static const struct streamhandler __sh_savp2savp = { .in = &__shio_decrypt, .out = &__shio_encrypt, }; static const struct streamhandler __sh_savp2savp_rtcp_only = { .in = &__shio_decrypt_rtcp_only, .out = &__shio_encrypt_rtcp_only, }; static const struct streamhandler __sh_savpf2savp = { .in = &__shio_decrypt_avpf_strip, .out = &__shio_encrypt, }; /* ********** */ static const struct streamhandler * const __sh_matrix_in_rtp_avp[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_noop_rtp, [PROTO_RTP_AVPF] = &__sh_noop_rtp, [PROTO_RTP_SAVP] = &__sh_avp2savp, [PROTO_RTP_SAVPF] = &__sh_avp2savp, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_avp2savp, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_avp2savp, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_avp2savp, [PROTO_RTP_SAVPF_OSRTP] = &__sh_avp2savp, }; static const struct streamhandler * const __sh_matrix_in_rtp_avpf[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_avpf2avp, [PROTO_RTP_AVPF] = &__sh_noop_rtp, [PROTO_RTP_SAVP] = &__sh_avpf2savp, [PROTO_RTP_SAVPF] = &__sh_avp2savp, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_avpf2savp, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_avp2savp, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_avpf2savp, [PROTO_RTP_SAVPF_OSRTP] = &__sh_avp2savp, }; static const struct streamhandler * const __sh_matrix_in_rtp_savp[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_savp2avp, [PROTO_RTP_AVPF] = &__sh_savp2avp, [PROTO_RTP_SAVP] = &__sh_savp2savp_rtcp_only, [PROTO_RTP_SAVPF] = &__sh_savp2savp_rtcp_only, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_savp2savp_rtcp_only, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp_rtcp_only, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_savp2savp_rtcp_only, [PROTO_RTP_SAVPF_OSRTP] = &__sh_savp2savp_rtcp_only, }; static const struct streamhandler * const __sh_matrix_in_rtp_savpf[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_savpf2avp, [PROTO_RTP_AVPF] = &__sh_savp2avp, [PROTO_RTP_SAVP] = &__sh_savpf2savp, [PROTO_RTP_SAVPF] = &__sh_savp2savp_rtcp_only, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_savpf2savp, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp_rtcp_only, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_savpf2savp, [PROTO_RTP_SAVPF_OSRTP] = &__sh_savp2savp_rtcp_only, }; static const struct streamhandler * const __sh_matrix_in_rtp_savp_recrypt[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_savp2avp, [PROTO_RTP_AVPF] = &__sh_savp2avp, [PROTO_RTP_SAVP] = &__sh_savp2savp, [PROTO_RTP_SAVPF] = &__sh_savp2savp, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_savp2savp, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_savp2savp, [PROTO_RTP_SAVPF_OSRTP] = &__sh_savp2savp, }; static const struct streamhandler * const __sh_matrix_in_rtp_savpf_recrypt[__PROTO_LAST] = { [PROTO_RTP_AVP] = &__sh_savpf2avp, [PROTO_RTP_AVPF] = &__sh_savp2avp, [PROTO_RTP_SAVP] = &__sh_savpf2savp, [PROTO_RTP_SAVPF] = &__sh_savp2savp, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_savpf2savp, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_savp2savp, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_savpf2savp, [PROTO_RTP_SAVPF_OSRTP] = &__sh_savp2savp, }; static const struct streamhandler * const __sh_matrix_noop[__PROTO_LAST] = { // non-RTP protocols [PROTO_RTP_AVP] = &__sh_noop, [PROTO_RTP_AVPF] = &__sh_noop, [PROTO_RTP_SAVP] = &__sh_noop, [PROTO_RTP_SAVPF] = &__sh_noop, [PROTO_UDP_TLS_RTP_SAVP] = &__sh_noop, [PROTO_UDP_TLS_RTP_SAVPF] = &__sh_noop, [PROTO_UDPTL] = &__sh_noop, [PROTO_RTP_SAVP_OSRTP] = &__sh_noop, [PROTO_RTP_SAVPF_OSRTP] = &__sh_noop, [PROTO_UNKNOWN] = &__sh_noop, }; /* ********** */ static const struct streamhandler * const * const __sh_matrix[__PROTO_LAST] = { [PROTO_RTP_AVP] = __sh_matrix_in_rtp_avp, [PROTO_RTP_AVPF] = __sh_matrix_in_rtp_avpf, [PROTO_RTP_SAVP] = __sh_matrix_in_rtp_savp, [PROTO_RTP_SAVPF] = __sh_matrix_in_rtp_savpf, [PROTO_UDP_TLS_RTP_SAVP] = __sh_matrix_in_rtp_savp, [PROTO_UDP_TLS_RTP_SAVPF] = __sh_matrix_in_rtp_savpf, [PROTO_UDPTL] = __sh_matrix_noop, [PROTO_RTP_SAVP_OSRTP] = __sh_matrix_in_rtp_savp, [PROTO_RTP_SAVPF_OSRTP] = __sh_matrix_in_rtp_savpf, [PROTO_UNKNOWN] = __sh_matrix_noop, }; /* special case for DTLS as we can't pass through SRTP<>SRTP */ static const struct streamhandler * const * const __sh_matrix_recrypt[__PROTO_LAST] = { [PROTO_RTP_AVP] = __sh_matrix_in_rtp_avp, [PROTO_RTP_AVPF] = __sh_matrix_in_rtp_avpf, [PROTO_RTP_SAVP] = __sh_matrix_in_rtp_savp_recrypt, [PROTO_RTP_SAVPF] = __sh_matrix_in_rtp_savpf_recrypt, [PROTO_UDP_TLS_RTP_SAVP] = __sh_matrix_in_rtp_savp_recrypt, [PROTO_UDP_TLS_RTP_SAVPF] = __sh_matrix_in_rtp_savpf_recrypt, [PROTO_UDPTL] = __sh_matrix_noop, [PROTO_RTP_SAVP_OSRTP] = __sh_matrix_in_rtp_savp_recrypt, [PROTO_RTP_SAVPF_OSRTP] = __sh_matrix_in_rtp_savpf_recrypt, [PROTO_UNKNOWN] = __sh_matrix_noop, }; /* ********** */ static const struct rtpengine_srtp __res_null = { .cipher = REC_NULL, .hmac = REH_NULL, }; static GQueue *__interface_list_for_family(sockfamily_t *fam); static unsigned int __name_family_hash(const struct intf_key *p); static int __name_family_eq(const struct intf_key *a, const struct intf_key *b); TYPED_GHASHTABLE(intf_lookup, struct intf_key, struct logical_intf, __name_family_hash, __name_family_eq, g_free, NULL) TYPED_GHASHTABLE(intf_rr_lookup, struct intf_key, struct intf_rr, __name_family_hash, __name_family_eq, NULL, NULL) static intf_lookup __logical_intf_name_family_hash; // name + family -> struct logical_intf static intf_rr_lookup __logical_intf_name_family_rr_hash; // name + family -> struct intf_rr static GHashTable *__intf_spec_addr_type_hash; // addr + type -> struct intf_spec static GHashTable *__local_intf_addr_type_hash; // addr + type -> GList of struct local_intf static GQueue __preferred_lists_for_family[__SF_LAST]; GQueue all_local_interfaces = G_QUEUE_INIT; TYPED_GHASHTABLE(local_sockets_ht, endpoint_t, stream_fd, endpoint_hash, endpoint_eq, NULL, stream_fd_put) static rwlock_t local_media_socket_endpoints_lock; static local_sockets_ht local_media_socket_endpoints; __thread struct bufferpool *media_bufferpool; /* checks for free no_ports on a local interface */ static int has_free_ports_loc(struct local_intf *loc, unsigned int num_ports) { if (loc == NULL) { ilog(LOG_ERR, "has_free_ports_loc - NULL local interface"); return 0; } if (num_ports > g_hash_table_size(loc->spec->port_pool.free_ports_ht)) { ilog(LOG_ERR, "Didn't find %d ports available for " STR_FORMAT "/%s", num_ports, STR_FMT(&loc->logical->name), sockaddr_print_buf(&loc->spec->local_address.addr)); return 0; } __C_DBG("Found %d ports available for " STR_FORMAT "/%s from total of %d free ports", num_ports, STR_FMT(&loc->logical->name), sockaddr_print_buf(&loc->spec->local_address.addr), g_hash_table_size(loc->spec->port_pool.free_ports_ht)); return 1; } #if 0 /* checks for free num_ports on at least one local interface of a logical interface */ static int has_free_ports_log_any(struct logical_intf *log, unsigned int num_ports) { if (log == NULL) { ilog(LOG_ERR, "has_free_ports_log_any - NULL logical interface"); return 0; } struct local_intf *loc; GList *l; for (l = log->list.head; l; l = l->next) { loc = l->data; if (has_free_ports_loc(loc, num_ports)) { return 1; } } return 0; } #endif /* checks for free num_ports on all local interfaces of a logical interface */ static int has_free_ports_log_all(struct logical_intf *log, unsigned int num_ports) { if (log == NULL) { ilog(LOG_ERR, "has_free_ports_log_all - NULL logical interface"); return 0; } struct local_intf *loc; GList *l; for (l = log->list.head; l; l = l->next) { loc = l->data; if (!has_free_ports_loc(loc, num_ports)) { return 0; } } return 1; } /* run round-robin-calls algorithm */ static struct logical_intf* run_round_robin_calls(struct intf_rr *rr, unsigned int num_ports) { struct logical_intf *log = NULL; mutex_lock(&rr->lock); unsigned int max_tries = rr->logical_intfs.length; unsigned int num_tries = 0; while (num_tries++ < max_tries) { log = g_queue_pop_head(&rr->logical_intfs); g_queue_push_tail(&rr->logical_intfs, log); mutex_unlock(&rr->lock); __C_DBG("Trying %d ports on logical interface " STR_FORMAT, num_ports, STR_FMT(&log->name)); if (has_free_ports_log_all(log, num_ports)) goto done; log = NULL; mutex_lock(&rr->lock); } mutex_unlock(&rr->lock); done: if (!log) { ilog(LOG_ERR, "No logical interface with free ports found; fallback to default behaviour"); return NULL; } __C_DBG("Round Robin Calls algorithm found logical " STR_FORMAT, STR_FMT(&log->name)); return log; } // 'fam' may only be NULL if 'name' is also NULL struct logical_intf *get_logical_interface(const str *name, sockfamily_t *fam, int num_ports) { struct logical_intf *log = NULL; int rr_use_default_intf = 0; __C_DBG("Get logical interface for %d ports", num_ports); if (G_UNLIKELY(!name || !name->s)) { // trivial case: no interface given. just pick one suitable for the address family. // always used for legacy TCP and UDP protocols. GQueue *q = NULL; if (fam) q = __interface_list_for_family(fam); if (!q) { for (int i = 0; i < __SF_LAST; i++) { q = &__preferred_lists_for_family[i]; if (q->length) goto got_some; } abort(); got_some: ; } if (!q->head) return NULL; log = q->head->data; // if interface is in the form foo:bar then use round-robin if (!fam || log->name.len == log->name_base.len) return log; else rr_use_default_intf = 1; } // check if round-robin is desired struct intf_key key; if (rr_use_default_intf) key.name = log->name_base; else key.name = *name; key.preferred_family = fam; struct intf_rr *rr = t_hash_table_lookup(__logical_intf_name_family_rr_hash, &key); if (!rr) { // try other socket families for (int i = 0; i < __SF_LAST; i++) { key.preferred_family = get_socket_family_enum(i); rr = t_hash_table_lookup(__logical_intf_name_family_rr_hash, &key); if (rr) break; } } if (!rr) return name ? __get_logical_interface(name, fam) : log; if (rr->singular) { __C_DBG("Returning non-RR logical interface '" STR_FORMAT "' based on direction '" \ STR_FORMAT "'", STR_FMT(&rr->singular->name), STR_FMT(name)); return rr->singular; } __C_DBG("Running RR interface selection for direction '" STR_FORMAT "'", STR_FMT(name)); log = run_round_robin_calls(rr, num_ports); if (log) return log; if (!name) return NULL; return __get_logical_interface(name, fam); } static struct logical_intf *__get_logical_interface(const str *name, sockfamily_t *fam) { struct intf_key d; struct logical_intf *log = NULL; d.name = *name; d.preferred_family = fam; log = t_hash_table_lookup(__logical_intf_name_family_hash, &d); if (log) { __C_DBG("Choose logical interface " STR_FORMAT " because of direction " STR_FORMAT, STR_FMT(&log->name), STR_FMT(name)); } else { __C_DBG("Choose logical interface NULL because of direction " STR_FORMAT, STR_FMT(name)); } return log; } static unsigned int __name_family_hash(const struct intf_key *lif) { return str_hash(&lif->name) ^ g_direct_hash(lif->preferred_family); } static int __name_family_eq(const struct intf_key *A, const struct intf_key *B) { return str_equal(&A->name, &B->name) && A->preferred_family == B->preferred_family; } static unsigned int __addr_type_hash(const void *p) { const struct intf_address *addr = p; return sockaddr_hash(&addr->addr) ^ g_direct_hash(addr->type); } static int __addr_type_eq(const void *a, const void *b) { const struct intf_address *A = a, *B = b; return sockaddr_eq(&A->addr, &B->addr) && A->type == B->type; } static void __insert_local_intf_addr_type(const struct intf_address *addr, const struct local_intf *intf) { GList *l; l = g_hash_table_lookup(__local_intf_addr_type_hash, addr); l = g_list_prepend(l, (void *) intf); g_hash_table_replace(__local_intf_addr_type_hash, (void *) addr, l); } int is_local_endpoint(const struct intf_address *addr, unsigned int port) { GList *l; const struct local_intf *intf; const struct intf_spec *spec; l = g_hash_table_lookup(__local_intf_addr_type_hash, addr); if (!l) return 0; while (l) { intf = l->data; spec = intf->spec; if (spec->port_pool.min <= port && spec->port_pool.max >= port) return 1; l = l->next; } return 0; } /** * This function just (globally) reserves a port number, it doesn't provide any binding/unbinding. */ static void reserve_port(GQueue * free_ports_q, GHashTable * free_ports_ht, GList * value_looked_up, unsigned int port) { g_queue_delete_link(free_ports_q, value_looked_up); g_hash_table_remove(free_ports_ht, GUINT_TO_POINTER(port)); } /** * This function just releases reserved port number, it doesn't provide any binding/unbinding. */ static void release_reserved_port(GQueue * free_ports_q, GHashTable * free_ports_ht, unsigned int port) { g_queue_push_tail(free_ports_q, GUINT_TO_POINTER(port)); GList * l = free_ports_q->tail; g_hash_table_replace(free_ports_ht, GUINT_TO_POINTER(port), l); } /* Append a list of free ports within the min-max range */ static void __append_free_ports_to_int(struct intf_spec *spec) { unsigned int ports_amount, count; GQueue * free_ports_q = &spec->port_pool.free_ports_q; GHashTable ** free_ports_ht = &spec->port_pool.free_ports_ht; if (!*free_ports_ht) *free_ports_ht = g_hash_table_new(g_direct_hash, g_direct_equal); if (spec->port_pool.max < spec->port_pool.min) { ilog(LOG_WARNING, "Ports range: max value cannot be less than min"); return; } /* range of possible ports */ ports_amount = spec->port_pool.max - spec->port_pool.min + 1; count = ports_amount; if (ports_amount == 0) { ilog(LOG_WARNING, "Ports range: there must be at least 1 port in the range"); return; } int port_values[ports_amount]; /* create an array to store the initial values within the range */ for (int i = 0; i < ports_amount; i++) port_values[i] = spec->port_pool.min + i; /* generate N random numbers within the given range without duplicates, * using the rolling dice algorithm */ for (int i = 0; i < ports_amount; i++) { int j = ssl_random() % count; int value = port_values[j]; mutex_lock(&spec->port_pool.free_list_lock); g_queue_push_tail(free_ports_q, GUINT_TO_POINTER(value)); /* store this new GList as value into the hash table */ GList * l = free_ports_q->tail; /* The value retrieved from the hash table would then point * into the queue for quick removal */ g_hash_table_replace(*free_ports_ht, GUINT_TO_POINTER(value), l); mutex_unlock(&spec->port_pool.free_list_lock); port_values[j] = port_values[count - 1]; count--; } } // called during single-threaded startup only static void __add_intf_rr_1(struct logical_intf *lif, str *name_base, sockfamily_t *fam) { struct intf_key key = {0,}; key.name = *name_base; key.preferred_family = fam; struct intf_rr *rr = t_hash_table_lookup(__logical_intf_name_family_rr_hash, &key); if (!rr) { rr = g_slice_alloc0(sizeof(*rr)); rr->hash_key = key; mutex_init(&rr->lock); t_hash_table_insert(__logical_intf_name_family_rr_hash, &rr->hash_key, rr); } g_queue_push_tail(&rr->logical_intfs, lif); rr->singular = (rr->logical_intfs.length == 1) ? lif : NULL; g_hash_table_insert(lif->rr_specs, &rr->hash_key.name, lif); } static void __add_intf_rr(struct logical_intf *lif, str *name_base, sockfamily_t *fam) { __add_intf_rr_1(lif, name_base, fam); static str legacy_rr_str = STR_CONST_INIT("round-robin-calls"); __add_intf_rr_1(lif, &legacy_rr_str, fam); } static GQueue *__interface_list_for_family(sockfamily_t *fam) { return &__preferred_lists_for_family[fam->idx]; } // called during single-threaded startup only static void __interface_append(struct intf_config *ifa, sockfamily_t *fam, bool create) { struct logical_intf *lif; GQueue *q; struct local_intf *ifc; struct intf_spec *spec; lif = __get_logical_interface(&ifa->name, fam); if (!lif) { if (!create) { // alias? if (!ifa->alias.len) return; struct logical_intf *alias = __get_logical_interface(&ifa->alias, fam); if (!alias) return; struct intf_key *key = g_new0(__typeof(*key), 1); key->name = ifa->name; key->preferred_family = fam; t_hash_table_insert(__logical_intf_name_family_hash, key, alias); return; } if (ifa->alias.len) // handled in second run return; lif = g_slice_alloc0(sizeof(*lif)); g_queue_init(&lif->list); lif->name = ifa->name; lif->name_base = ifa->name_base; lif->preferred_family = fam; lif->rr_specs = g_hash_table_new((GHashFunc) str_hash, (GEqualFunc) str_equal); struct intf_key *key = g_new0(__typeof(*key), 1); key->name = ifa->name; key->preferred_family = fam; t_hash_table_insert(__logical_intf_name_family_hash, key, lif); if (ifa->local_address.addr.family == fam) { q = __interface_list_for_family(fam); g_queue_push_tail(q, lif); __add_intf_rr(lif, &ifa->name_base, fam); } } spec = g_hash_table_lookup(__intf_spec_addr_type_hash, &ifa->local_address); if (!spec) { spec = g_slice_alloc0(sizeof(*spec)); spec->local_address = ifa->local_address; spec->port_pool.min = ifa->port_min; spec->port_pool.max = ifa->port_max; mutex_init(&spec->port_pool.free_list_lock); /* pre-fill the range of used ports */ __append_free_ports_to_int(spec); g_hash_table_insert(__intf_spec_addr_type_hash, &spec->local_address, spec); } ifc = uid_slice_alloc0(ifc, &lif->list); ice_foundation(&ifc->ice_foundation); ifc->advertised_address = ifa->advertised_address; ifc->spec = spec; ifc->logical = lif; ifc->stats = bufferpool_alloc0(shm_bufferpool, sizeof(*ifc->stats)); g_queue_push_tail(&all_local_interfaces, ifc); __insert_local_intf_addr_type(&spec->local_address, ifc); __insert_local_intf_addr_type(&ifc->advertised_address, ifc); } // called during single-threaded startup only void interfaces_init(intf_config_q *interfaces) { int i; struct intf_config *ifa; sockfamily_t *fam; /* init everything */ __logical_intf_name_family_hash = intf_lookup_new(); __logical_intf_name_family_rr_hash = intf_rr_lookup_new(); __intf_spec_addr_type_hash = g_hash_table_new(__addr_type_hash, __addr_type_eq); __local_intf_addr_type_hash = g_hash_table_new(__addr_type_hash, __addr_type_eq); for (i = 0; i < G_N_ELEMENTS(__preferred_lists_for_family); i++) g_queue_init(&__preferred_lists_for_family[i]); /* build primary lists first */ for (__auto_type l = interfaces->head; l; l = l->next) { ifa = l->data; __interface_append(ifa, ifa->local_address.addr.family, true); } /* then append to each other as lower-preference alternatives */ for (i = 0; i < __SF_LAST; i++) { fam = get_socket_family_enum(i); for (__auto_type l = interfaces->head; l; l = l->next) { ifa = l->data; if (ifa->local_address.addr.family == fam) continue; __interface_append(ifa, fam, false); } } local_media_socket_endpoints = local_sockets_ht_new(); rwlock_init(&local_media_socket_endpoints_lock); } void interfaces_exclude_port(unsigned int port) { GList *vals, *l, *ll; struct intf_spec *spec; struct port_pool *pp; GQueue * free_ports_q; GHashTable * free_ports_ht; vals = g_hash_table_get_values(__intf_spec_addr_type_hash); for (l = vals; l; l = l->next) { spec = l->data; pp = &spec->port_pool; free_ports_q = &pp->free_ports_q; free_ports_ht = pp->free_ports_ht; mutex_lock(&pp->free_list_lock); ll = g_hash_table_lookup(free_ports_ht, GUINT_TO_POINTER(port)); if (ll) reserve_port(free_ports_q, free_ports_ht, ll, port); mutex_unlock(&pp->free_list_lock); } g_list_free(vals); } struct local_intf *get_interface_address(const struct logical_intf *lif, sockfamily_t *fam) { const GQueue *q; if (!fam) return NULL; q = &lif->list; if (!q->head) return NULL; return q->head->data; } /* safety fallback */ struct local_intf *get_any_interface_address(const struct logical_intf *lif, sockfamily_t *fam) { struct local_intf *ifa; ifa = get_interface_address(lif, fam); if (ifa) return ifa; ifa = get_interface_address(lif, get_socket_family_enum(SF_IP4)); if (ifa) return ifa; return get_interface_address(lif, get_socket_family_enum(SF_IP6)); } /** * Opens a socket for a given port value and edits the iptables accordingly. * It doesn't provide a port selection logic. */ static int add_socket(socket_t *r, unsigned int port, struct intf_spec *spec, const str *label) { __C_DBG("An attempt to open a socket for the port: '%u'", port); if (open_socket(r, SOCK_DGRAM, port, &spec->local_address.addr)) { __C_DBG("Can't open a socket for the port: '%d'", port); return -1; } iptables_add_rule(r, label); socket_timestamping(r); __C_DBG("A socket is successfully bound for the port: '%u'", port); return 0; } /** * Pushing ports into the `ports_to_release` queue. */ static void release_port_push(void *p) { struct late_port_release *lpr = p; __C_DBG("Adding the port '%u' to late-release list", lpr->socket.local.port); t_queue_push_tail(&ports_to_release, lpr); } static void release_port_poller(socket_t *r, struct intf_spec *spec, struct poller *poller) { if (!r->local.port || r->fd == -1) return; struct late_port_release *lpr = g_slice_alloc(sizeof(*lpr)); move_socket(&lpr->socket, r); lpr->spec = spec; if (!poller) release_port_push(lpr); else { __C_DBG("Adding late-release callback for port '%u'", lpr->socket.local.port); rtpe_poller_del_item_callback(poller, lpr->socket.fd, release_port_push, lpr); } } static void release_port(socket_t *r, struct intf_spec *spec) { release_port_poller(r, spec, NULL); } static void free_port(socket_t *r, struct intf_spec *spec) { release_port(r, spec); g_slice_free1(sizeof(*r), r); } /** * Logic responsible for devastating the `ports_to_release` queue. * It's being called by main poller. */ static void release_port_now(socket_t *r, struct intf_spec *spec) { unsigned int port = r->local.port; struct port_pool *pp = &spec->port_pool; GQueue * free_ports_q = &pp->free_ports_q; GHashTable * free_ports_ht = pp->free_ports_ht; __C_DBG("Trying to release the port '%u'", port); if (close_socket(r) == 0) { __C_DBG("A socket for the '%u' has been closed", port); iptables_del_rule(r); /* first return the engaged port back */ mutex_lock(&pp->free_list_lock); release_reserved_port(free_ports_q, free_ports_ht, port); mutex_unlock(&pp->free_list_lock); } else { ilog(LOG_WARNING, "Unable to close the socket for port '%u'", port); } } /** * Sockets releaser. */ enum thread_looper_action release_closed_sockets(void) { struct late_port_release * lpr; /* for the separate releaser thread (one working with `sockets_releaser()`) * it does no job. But only for those threads related to calls processing. */ if (ports_to_release.head) append_thread_lpr_to_glob_lpr(); if (ports_to_release_glob.head) { mutex_lock(&ports_to_release_glob_lock); ports_release_q ports_left = ports_to_release_glob; t_queue_init(&ports_to_release_glob); mutex_unlock(&ports_to_release_glob_lock); while ((lpr = t_queue_pop_head(&ports_left))) { release_port_now(&lpr->socket, lpr->spec); g_slice_free1(sizeof(*lpr), lpr); } } return TLA_CONTINUE; } /** * Appends thread scope (local) sockets to the global releasing list. */ void append_thread_lpr_to_glob_lpr(void) { mutex_lock(&ports_to_release_glob_lock); t_queue_move(&ports_to_release_glob, &ports_to_release); /* dst, src */ mutex_unlock(&ports_to_release_glob_lock); } /** * Puts a list of `socket_t` objects into the `out`. * * @param num_ports, number of ports we have to engage (1 - rtcp-mux / 2 - one RTP and one RTCP) * @param wanted_start_port, a pre-defined port (if given), if not given must be 0 * @param spec, interface specifications * @param out, a list of sockets for this particular session (not a global list) */ int __get_consecutive_ports(socket_q *out, unsigned int num_ports, unsigned int wanted_start_port, struct intf_spec *spec, const str *label) { unsigned int allocation_attempts = 0, available_ports = 0, additional_port = 0, port = 0; socket_t * sk; GQueue ports_to_engage = G_QUEUE_INIT; /* usually it's only one RTCP port, theoretically can be more */ struct port_pool * pp = &spec->port_pool; /* port pool for a given local interface */ GQueue * free_ports_q; GHashTable * free_ports_ht; if (num_ports == 0) { ilog(LOG_ERR, "Number of ports to be engaged is '%d', can't handle it like that", num_ports); goto fail; } /* for the wanted port, only one port can be engaged */ if (num_ports > 1 && wanted_start_port > 0) { ilog(LOG_ERR, "A specific port value is requested, but ports to be engaged > 1"); goto fail; } free_ports_q = &pp->free_ports_q; free_ports_ht = pp->free_ports_ht; /* a presence of free lists data is critical for us */ if (!(free_ports_q && free_ports_q->head) || !free_ports_ht) { ilog(LOG_ERR, "Failure while trying to get a list of free ports"); goto fail; } /* specifically requested port */ if (wanted_start_port > 0) { ilog(LOG_DEBUG, "A specific port value is requested, wanted_start_port: '%d'", wanted_start_port); mutex_lock(&pp->free_list_lock); GList *l = g_hash_table_lookup(free_ports_ht, GUINT_TO_POINTER(wanted_start_port)); if (!l) { /* if engaged already, just select any other (so default logic) */ ilog(LOG_WARN, "This requested port has been already engaged, can't take it."); wanted_start_port = 0; /* take what is proposed by FIFO instead */ } else { /* we got the port, and we are sure it wasn't engaged */ reserve_port(free_ports_q, free_ports_ht, l, wanted_start_port); port = wanted_start_port; } mutex_unlock(&pp->free_list_lock); } /* make sure we have ports to be used */ mutex_lock(&pp->free_list_lock); available_ports = g_queue_get_length(free_ports_q); mutex_unlock(&pp->free_list_lock); if (!available_ports && wanted_start_port == 0) { ilog(LOG_ERR, "Empty ports queue, no more ports left to use"); goto fail; } /* if there is only 1 port left, and it's not rtcp-mux, then * it makes no sence to conitnue - ran out ports */ if (num_ports > 1 && wanted_start_port == 0 && available_ports == 1) { ilog(LOG_ERR, "Ran out of ports, can't engage an additional port (for RTCP)"); goto fail; } /* Here we try to bind a port to a socket being opened. * * cycling here unless: * - for non rtcp-mux: we engage two sequential ports, where RTP port is even * and the socket for both ports can be opened (get_port()) * - for rtcp-mux: we get a socket opened for it (get_port()) * - theoretically more than 2 ports can be requested, but usually not a case. */ while (1) { new_cycle: if (++allocation_attempts > available_ports) { ilog(LOG_ERR, "Failure while trying to bind a port to the socket"); goto fail; } if (!wanted_start_port) { /* For cases with no rtcp-mux: RTP must be an even port, * and RTCP port is always the next one to that. */ /* Now only get first possible port for RTP. * Then additionally make sure that the RTCP port can also be engaged, if needed. */ mutex_lock(&pp->free_list_lock); port = GPOINTER_TO_UINT(g_queue_pop_head(free_ports_q)); /* RTP */ if (!port) { mutex_unlock(&pp->free_list_lock); ilog(LOG_ERR, "Failure while trying to get a port from the list"); goto fail; } g_hash_table_remove(free_ports_ht, GUINT_TO_POINTER(port)); /* RTP */ mutex_unlock(&pp->free_list_lock); /* ports for RTP must be even, if there is an additional port for RTCP */ if (num_ports > 1 && (port & 1)) { /* return port for RTP back and try again */ mutex_lock(&pp->free_list_lock); release_reserved_port(free_ports_q, free_ports_ht, port); mutex_unlock(&pp->free_list_lock); goto new_cycle; } /* find additional ports, usually it's only RTCP */ additional_port = port; for (int i = 1; i < num_ports; i++) { additional_port++; mutex_lock(&pp->free_list_lock); GList *l = g_hash_table_lookup(free_ports_ht, GUINT_TO_POINTER(additional_port)); if (!l) { /* return port for RTP back and try again */ release_reserved_port(free_ports_q, free_ports_ht, port); mutex_unlock(&pp->free_list_lock); /* check if we managed to enagage anything in previous for-cycles */ while ((additional_port = GPOINTER_TO_UINT(g_queue_pop_head(&ports_to_engage)))) { mutex_lock(&pp->free_list_lock); /* return additional ports back */ release_reserved_port(free_ports_q, free_ports_ht, additional_port); mutex_unlock(&pp->free_list_lock); } goto new_cycle; } else { /* engage this port right away */ reserve_port(free_ports_q, free_ports_ht, l, additional_port); mutex_unlock(&pp->free_list_lock); /* track for which additional ports, we have to open sockets */ g_queue_push_tail(&ports_to_engage, GUINT_TO_POINTER(additional_port)); } } } ilog(LOG_DEBUG, "Trying to bind the socket for RTP/RTCP ports (allocation attempt = '%d')", allocation_attempts); /* at this point we consider all things before as successfull. Now just add the RTP port */ g_queue_push_head(&ports_to_engage, GUINT_TO_POINTER(port)); while ((port = GPOINTER_TO_UINT(g_queue_pop_head(&ports_to_engage)))) { ilog(LOG_DEBUG, "Trying to bind the socket for port = '%d'", port); sk = g_slice_alloc0(sizeof(*sk)); sk->fd = -1; t_queue_push_tail(out, sk); /* if not possible to engage this socket, try to reallocate it again */ if (add_socket(sk, port, spec, label)) { /* if something has been left in the `ports_to_engage` queue, release it right away */ while ((port = GPOINTER_TO_UINT(g_queue_pop_head(&ports_to_engage)))) { mutex_lock(&pp->free_list_lock); release_reserved_port(free_ports_q, free_ports_ht, port); mutex_unlock(&pp->free_list_lock); } /* ports which are already bound to a socket, will be freed by `free_port()` */ goto release_restart; } } /* success */ break; release_restart: /* release all previously engaged sockets */ while ((sk = t_queue_pop_head(out))) free_port(sk, spec); /* engaged ports will be released here */ /* do not re-try for specifically wanted ports */ if (wanted_start_port > 0) goto fail; ilog(LOG_DEBUG, "Something already keeps this port, trying to take another port(s)"); } /* success */ ilog(LOG_DEBUG, "Opened a socket on port '%u' (on interface '%s') for a media relay", ((socket_t *) out->head->data)->local.port, sockaddr_print_buf(&spec->local_address.addr)); return 0; fail: ilog(LOG_ERR, "Failed to get %u consecutive ports on interface %s for media relay (last error: %s)", num_ports, sockaddr_print_buf(&spec->local_address.addr), strerror(errno)); return -1; } /* puts a list of "struct intf_list" into "out", containing socket_t list */ int get_consecutive_ports(socket_intf_list_q *out, unsigned int num_ports, unsigned int num_intfs, struct call_media *media) { GList *l; struct socket_intf_list *il; struct local_intf *loc; const struct logical_intf *log = media->logical_intf; const str *label = &media->call->callid; /* call's callid */ /* // debug locals of logical incerface char ip[100]; for (l = log->list.head; l; l = l->next) { loc = l->data; inet_ntop(loc->spec->local_address.addr.family->af, &loc->spec->local_address.addr.u, ip, sizeof(ip)); ilog(LOG_DEBUG, "XXXXXXXXXX IP: %s", ip); } ilog(LOG_DEBUG, ""); */ for (l = log->list.head; l; l = l->next) { if (out->length >= num_intfs) break; loc = l->data; il = g_slice_alloc0(sizeof(*il)); il->local_intf = loc; t_queue_push_tail(out, il); if (G_LIKELY(!__get_consecutive_ports(&il->list, num_ports, 0, loc->spec, label))) { // success - found available ports on local interfaces, so far continue; } else { // fail - did not found available ports on at least one local interface goto error_ports; } } return 0; error_ports: ilog(LOG_ERR, "Failed to get %d consecutive ports on all locals of logical '"STR_FORMAT"'", num_ports, STR_FMT(&log->name)); // free all ports alloc'ed so far for the previous local interfaces while ((il = t_queue_pop_head(out))) { free_socket_intf_list(il); } return -1; } void free_socket_intf_list(struct socket_intf_list *il) { socket_t *sock; while ((sock = t_queue_pop_head(&il->list))) free_port(sock, il->local_intf->spec); g_slice_free1(sizeof(*il), il); } void free_sfd_intf_list(struct sfd_intf_list *il) { t_queue_clear(&il->list); g_slice_free1(sizeof(*il), il); } void free_release_sfd_intf_list(struct sfd_intf_list *il) { t_queue_clear_full(&il->list, stream_fd_release); g_slice_free1(sizeof(*il), il); } /* called lock-free */ static void stream_fd_closed(int fd, void *p) { stream_fd *sfd = p; call_t *c; int i; socklen_t j; c = sfd->call; if (!c) return; rwlock_lock_r(&c->master_lock); if (fd == sfd->socket.fd) { j = sizeof(i); i = 0; // coverity[check_return : FALSE] getsockopt(fd, SOL_SOCKET, SO_ERROR, &i, &j); ilog(LOG_WARNING, "Read error on media socket: %i (%s) -- closing call", i, strerror(i)); } rwlock_unlock_r(&c->master_lock); call_destroy(c); } /* returns: 0 = not a muxed stream, 1 = muxed, RTP, 2 = muxed, RTCP */ static int rtcp_demux(const str *s, struct call_media *media) { if (!MEDIA_ISSET(media, RTCP_MUX)) return 0; return rtcp_demux_is_rtcp(s) ? 2 : 1; } static int call_avp2savp_rtp(str *s, struct packet_stream *stream, struct ssrc_ctx *ssrc_ctx) { return rtp_avp2savp(s, &stream->crypto, ssrc_ctx); } static int call_avp2savp_rtcp(str *s, struct packet_stream *stream, struct ssrc_ctx *ssrc_ctx) { return rtcp_avp2savp(s, &stream->crypto, ssrc_ctx); } static int call_savp2avp_rtp(str *s, struct packet_stream *stream, struct ssrc_ctx *ssrc_ctx) { return rtp_savp2avp(s, &stream->selected_sfd->crypto, ssrc_ctx); } static int call_savp2avp_rtcp(str *s, struct packet_stream *stream, struct ssrc_ctx *ssrc_ctx) { return rtcp_savp2avp(s, &stream->selected_sfd->crypto, ssrc_ctx); } static int __k_null(struct rtpengine_srtp *s, struct packet_stream *stream) { *s = __res_null; return 0; } static int __k_srtp_crypt(struct rtpengine_srtp *s, struct crypto_context *c, struct ssrc_ctx *ssrc_ctx[RTPE_NUM_SSRC_TRACKING]) { if (!c->params.crypto_suite) return -1; *s = (struct rtpengine_srtp) { .cipher = c->params.crypto_suite->kernel_cipher, .hmac = c->params.crypto_suite->kernel_hmac, .mki_len = c->params.mki_len, .rtp_auth_tag_len= c->params.crypto_suite->srtp_auth_tag, .rtcp_auth_tag_len= c->params.crypto_suite->srtcp_auth_tag, }; if (c->params.mki_len) memcpy(s->mki, c->params.mki, c->params.mki_len); memcpy(s->master_key, c->params.master_key, c->params.crypto_suite->master_key_len); s->master_key_len = c->params.crypto_suite->master_key_len; s->session_key_len = c->params.crypto_suite->session_key_len; memcpy(s->master_salt, c->params.master_salt, c->params.crypto_suite->master_salt_len); s->master_salt_len = c->params.crypto_suite->master_salt_len; s->session_salt_len = c->params.crypto_suite->session_salt_len; if (c->params.session_params.unencrypted_srtp) s->cipher = REC_NULL; if (c->params.session_params.unauthenticated_srtp) s->rtp_auth_tag_len = 0; return 0; } static int __k_srtp_encrypt(struct rtpengine_srtp *s, struct packet_stream *stream) { return __k_srtp_crypt(s, &stream->crypto, stream->ssrc_out); } static int __k_srtp_decrypt(struct rtpengine_srtp *s, struct packet_stream *stream) { return __k_srtp_crypt(s, &stream->selected_sfd->crypto, stream->ssrc_in); } INLINE void __re_address_translate_ep(struct re_address *o, const endpoint_t *ep) { ep->address.family->endpoint2kernel(o, ep); } static int __rtp_stats_pt_sort(const void *ap, const void *bp) { const struct rtp_stats *a = ap, *b = bp; if (a->payload_type < b->payload_type) return -1; if (a->payload_type > b->payload_type) return 1; return 0; } /** * The linkage between userspace and kernel module is in the kernelize_one(). * * Called with in_lock held. * sink_handler can be NULL. */ static const char *kernelize_one(struct rtpengine_target_info *reti, GQueue *outputs, struct packet_stream *stream, struct sink_handler *sink_handler, sink_handler_q *sinks, GList **payload_types) { struct rtpengine_destination_info *redi = NULL; call_t *call = stream->call; struct call_media *media = stream->media; struct packet_stream *sink = sink_handler ? sink_handler->sink : NULL; bool non_forwarding = false; bool blackhole = false; if (sink_handler) { if (MEDIA_ISSET(sink->media, BLOCK_EGRESS)) return NULL; sink_handler->kernel_output_idx = -1; } if (MEDIA_ISSET(media, BLACKHOLE)) blackhole = true; else if (!sink_handler) blackhole = true; if (blackhole) non_forwarding = true; if (sink && !sink->endpoint.address.family) return NULL; if (sink && sink->selected_sfd) ilog(LOG_INFO, "Kernelizing media stream: %s%s%s -> %s | %s -> %s%s%s", FMT_M(endpoint_print_buf(&stream->endpoint)), endpoint_print_buf(&stream->selected_sfd->socket.local), endpoint_print_buf(&sink->selected_sfd->socket.local), FMT_M(endpoint_print_buf(&sink->endpoint))); else ilog(LOG_INFO, "Kernelizing media stream: %s%s%s -> %s -> void", FMT_M(endpoint_print_buf(&stream->endpoint)), endpoint_print_buf(&stream->selected_sfd->socket.local)); const struct streamhandler *handler = __determine_handler(stream, sink_handler); if (!handler->in->kernel || !handler->out->kernel) return "protocol not supported by kernel module"; // fill input if needed if (reti->local.family) goto output; if (PS_ISSET2(stream, STRICT_SOURCE, MEDIA_HANDOVER)) { mutex_lock(&stream->out_lock); __re_address_translate_ep(&reti->expected_src, MEDIA_ISSET(media, ASYMMETRIC) ? &stream->learned_endpoint : &stream->endpoint); mutex_unlock(&stream->out_lock); if (PS_ISSET(stream, STRICT_SOURCE)) reti->src_mismatch = MSM_DROP; else if (PS_ISSET(stream, MEDIA_HANDOVER)) reti->src_mismatch = MSM_PROPAGATE; } __re_address_translate_ep(&reti->local, &stream->selected_sfd->socket.local); reti->iface_stats = stream->selected_sfd->local_intf->stats; reti->stats = stream->stats_in; reti->rtcp_mux = MEDIA_ISSET(media, RTCP_MUX); reti->rtcp = PS_ISSET(stream, RTCP); reti->dtls = MEDIA_ISSET(media, DTLS); reti->stun = media->ice_agent ? 1 : 0; reti->non_forwarding = non_forwarding ? 1 : 0; reti->blackhole = blackhole ? 1 : 0; reti->rtp_stats = (rtpe_config.measure_rtp || MEDIA_ISSET(media, RTCP_GEN) || (mqtt_publish_scope() != MPS_NONE)) ? 1 : 0; handler->in->kernel(&reti->decrypt, stream); if (!reti->decrypt.cipher || !reti->decrypt.hmac) return "decryption cipher or HMAC not supported by kernel module"; reti->track_ssrc = 1; for (unsigned int u = 0; u < G_N_ELEMENTS(stream->ssrc_in); u++) { if (stream->ssrc_in[u]) { reti->ssrc[u] = htonl(stream->ssrc_in[u]->parent->h.ssrc); reti->ssrc_stats[u] = stream->ssrc_in[u]->stats; } } if (proto_is_rtp(media->protocol)) { reti->rtp = 1; reti->ssrc_req = 1; if (!MEDIA_ISSET(media, TRANSCODING)) { reti->rtcp_fw = 1; if (media->protocol->avpf) reti->rtcp_fb_fw = 1; } } if (reti->rtp && sinks && sinks->length && payload_types) { GList *l; struct rtp_stats *rs; // this code is execute only once: list therefore must be empty assert(*payload_types == NULL); *payload_types = g_hash_table_get_values(stream->rtp_stats); *payload_types = g_list_sort(*payload_types, __rtp_stats_pt_sort); for (l = *payload_types; l; ) { if (reti->num_payload_types >= G_N_ELEMENTS(reti->pt_stats)) { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Too many RTP payload types for kernel module"); break; } rs = l->data; // only add payload types that are passthrough for all sinks bool can_kernelize = true; for (__auto_type k = sinks->head; k; k = k->next) { struct sink_handler *ksh = k->data; struct packet_stream *ksink = ksh->sink; struct codec_handler *ch = codec_handler_get(media, rs->payload_type, ksink->media, ksh); if (ch->kernelize) continue; can_kernelize = false; break; } if (!can_kernelize) { reti->pt_filter = 1; // ensure that the final list in *payload_types reflects the payload // types populated in reti->payload_types GList *next = l->next; *payload_types = g_list_delete_link(*payload_types, l); l = next; continue; } reti->pt_stats[reti->num_payload_types] = rs; reti->num_payload_types++; l = l->next; } } else { if (sink_handler && sink_handler->attrs.transcoding) return NULL; } recording_stream_kernel_info(stream, reti); output: // output section: any output at all? if (non_forwarding || !sink || !sink->selected_sfd) return NULL; // no output if (!PS_ISSET(sink, FILLED)) return NULL; // fill output struct redi = g_slice_alloc0(sizeof(*redi)); redi->local = reti->local; redi->output.tos = call->tos; // PT manipulations bool silenced = CALL_ISSET(call, SILENCE_MEDIA) || ML_ISSET(media->monologue, SILENCE_MEDIA) || sink_handler->attrs.silence_media; bool manipulate_pt = silenced || ML_ISSET(media->monologue, BLOCK_SHORT); if (manipulate_pt && payload_types) { int i = 0; for (GList *l = *payload_types; l; l = l->next) { struct rtp_stats *rs = l->data; struct rtpengine_pt_output *rpt = &redi->output.pt_output[i++]; struct codec_handler *ch = codec_handler_get(media, rs->payload_type, sink->media, sink_handler); str replace_pattern = STR_NULL; if (silenced && ch->source_pt.codec_def) replace_pattern = ch->source_pt.codec_def->silence_pattern; if (replace_pattern.len > sizeof(rpt->replace_pattern)) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Payload replacement pattern too long (%zu)", replace_pattern.len); else { rpt->replace_pattern_len = replace_pattern.len; memcpy(rpt->replace_pattern, replace_pattern.s, replace_pattern.len); } if (ML_ISSET(media->monologue, BLOCK_SHORT) && ch->payload_len) rpt->min_payload_len = ch->payload_len; } } if (MEDIA_ISSET(media, ECHO)) redi->output.ssrc_subst = 1; if (sink_handler->attrs.transcoding) { redi->output.ssrc_subst = 1; reti->pt_filter = 1; } mutex_lock(&sink->out_lock); __re_address_translate_ep(&redi->output.dst_addr, &sink->endpoint); __re_address_translate_ep(&redi->output.src_addr, &sink->selected_sfd->socket.local); redi->output.iface_stats = sink->selected_sfd->local_intf->stats; redi->output.stats = sink->stats_out; if (reti->track_ssrc) { for (unsigned int u = 0; u < G_N_ELEMENTS(stream->ssrc_in); u++) { if (sink->ssrc_out[u]) { // XXX order can be different from ingress? redi->output.seq_offset[u] = sink->ssrc_out[u]->parent->seq_diff; redi->output.ssrc_stats[u] = sink->ssrc_out[u]->stats; } if (redi->output.ssrc_subst && stream->ssrc_in[u]) redi->output.ssrc_out[u] = htonl(stream->ssrc_in[u]->ssrc_map_out); } } handler->out->kernel(&redi->output.encrypt, sink); mutex_unlock(&sink->out_lock); if (!redi->output.encrypt.cipher || !redi->output.encrypt.hmac) { g_slice_free1(sizeof(*redi), redi); return "encryption cipher or HMAC not supported by kernel module"; } // got a new output redi->num = reti->num_destinations; reti->num_destinations++; sink_handler->kernel_output_idx = redi->num; g_queue_push_tail(outputs, redi); assert(outputs->length == reti->num_destinations); return NULL; } // helper function for kernelize() static void kernelize_one_sink_handler(struct rtpengine_target_info *reti, GQueue *outputs, struct packet_stream *stream, struct sink_handler *sink_handler, sink_handler_q *sinks, GList **payload_types) { struct packet_stream *sink = sink_handler->sink; if (PS_ISSET(sink, NAT_WAIT) && !PS_ISSET(sink, RECEIVED)) return; const char *err = kernelize_one(reti, outputs, stream, sink_handler, &stream->rtp_sinks, payload_types); if (err) ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", err); } /* called with in_lock held */ void kernelize(struct packet_stream *stream) { call_t *call = stream->call; const char *nk_warn_msg; struct call_media *media = stream->media; if (PS_ISSET(stream, KERNELIZED)) return; if (call->recording != NULL && !selected_recording_method->kernel_support) goto no_kernel; if (!kernel.is_wanted) goto no_kernel; nk_warn_msg = "interface to kernel module not open"; if (!kernel.is_open) goto no_kernel_warn; if (MEDIA_ISSET(media, GENERATOR)) goto no_kernel; if (!stream->selected_sfd) goto no_kernel; if (ML_ISSET(media->monologue, BLOCK_MEDIA) || CALL_ISSET(call, BLOCK_MEDIA)) goto no_kernel; if (!stream->endpoint.address.family) goto no_kernel; struct rtpengine_target_info reti; ZERO(reti); // reti.local.family determines if anything can be done GQueue outputs = G_QUEUE_INIT; GList *payload_types = NULL; unsigned int num_sinks = stream->rtp_sinks.length + stream->rtcp_sinks.length; if (num_sinks == 0) { // add blackhole kernel rule const char *err = kernelize_one(&reti, &outputs, stream, NULL, NULL, &payload_types); if (err) ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", err); } else { for (__auto_type l = stream->rtp_sinks.head; l; l = l->next) { struct sink_handler *sh = l->data; if (sh->attrs.block_media) continue; kernelize_one_sink_handler(&reti, &outputs, stream, sh, &stream->rtp_sinks, &payload_types); } for (__auto_type l = stream->rtp_mirrors.head; l; l = l->next) { struct sink_handler *sh = l->data; kernelize_one_sink_handler(&reti, &outputs, stream, sh, &stream->rtp_sinks, &payload_types); } // record number of RTP destinations unsigned int num_rtp_dests = reti.num_destinations; for (__auto_type l = stream->rtcp_sinks.head; l; l = l->next) { struct sink_handler *sh = l->data; kernelize_one_sink_handler(&reti, &outputs, stream, sh, &stream->rtp_sinks, NULL); } reti.num_rtcp_destinations = reti.num_destinations - num_rtp_dests; } g_list_free(payload_types); if (!reti.local.family) goto no_kernel; if (!outputs.length && !reti.non_forwarding) { reti.non_forwarding = 1; ilog(LOG_NOTICE | LOG_FLAG_LIMIT, "Setting 'non-forwarding' flag for kernel stream due to " "lack of sinks"); } kernel_add_stream(&reti); struct rtpengine_destination_info *redi; while ((redi = g_queue_pop_head(&outputs))) { kernel_add_destination(redi); g_slice_free1(sizeof(*redi), redi); } stream->kernel_time = rtpe_now.tv_sec; PS_SET(stream, KERNELIZED); return; no_kernel_warn: ilog(LOG_WARNING, "No support for kernel packet forwarding available (%s)", nk_warn_msg); no_kernel: PS_SET(stream, KERNELIZED); stream->kernel_time = rtpe_now.tv_sec; PS_SET(stream, NO_KERNEL_SUPPORT); } // must be called with appropriate locks (master lock and/or in/out_lock) int __hunt_ssrc_ctx_idx(uint32_t ssrc, struct ssrc_ctx *list[RTPE_NUM_SSRC_TRACKING], unsigned int start_idx) { for (unsigned int v = 0; v < RTPE_NUM_SSRC_TRACKING; v++) { // starting point is the same offset as `u` unsigned int idx = (start_idx + v) % RTPE_NUM_SSRC_TRACKING; if (!list[idx]) continue; if (list[idx]->parent->h.ssrc != ssrc) continue; return idx; } return -1; } // must be called with appropriate locks (master lock and/or in/out_lock) struct ssrc_ctx *__hunt_ssrc_ctx(uint32_t ssrc, struct ssrc_ctx *list[RTPE_NUM_SSRC_TRACKING], unsigned int start_idx) { int idx = __hunt_ssrc_ctx_idx(ssrc, list, start_idx); if (idx == -1) return NULL; return list[idx]; } /* must be called with in_lock held or call->master_lock held in W */ void __unkernelize(struct packet_stream *p, const char *reason) { if (!p->selected_sfd) return; if (!PS_ISSET(p, KERNELIZED)) return; if (kernel.is_open && !PS_ISSET(p, NO_KERNEL_SUPPORT)) { ilog(LOG_INFO, "Removing media stream from kernel: local %s (%s)", endpoint_print_buf(&p->selected_sfd->socket.local), reason); struct rtpengine_command_del_target cmd = {0}; __re_address_translate_ep(&cmd.local, &p->selected_sfd->socket.local); kernel_del_stream(&cmd); } PS_CLEAR(p, KERNELIZED); PS_CLEAR(p, NO_KERNEL_SUPPORT); } void __reset_sink_handlers(struct packet_stream *ps) { for (__auto_type l = ps->rtp_sinks.head; l; l = l->next) { struct sink_handler *sh = l->data; sh->handler = NULL; } for (__auto_type l = ps->rtcp_sinks.head; l; l = l->next) { struct sink_handler *sh = l->data; sh->handler = NULL; } } void __stream_unconfirm(struct packet_stream *ps, const char *reason) { __unkernelize(ps, reason); if (!MEDIA_ISSET(ps->media, ASYMMETRIC)) { if (ps->selected_sfd) ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Unconfirming peer address for local %s (%s)", endpoint_print_buf(&ps->selected_sfd->socket.local), reason); PS_CLEAR(ps, CONFIRMED); } __reset_sink_handlers(ps); } static void stream_unconfirm(struct packet_stream *ps, const char *reason) { if (!ps) return; mutex_lock(&ps->in_lock); __stream_unconfirm(ps, reason); mutex_unlock(&ps->in_lock); } static void unconfirm_sinks(sink_handler_q *q, const char *reason) { for (__auto_type l = q->head; l; l = l->next) { struct sink_handler *sh = l->data; stream_unconfirm(sh->sink, reason); } } void unkernelize(struct packet_stream *ps, const char *reason) { if (!ps) return; mutex_lock(&ps->in_lock); __unkernelize(ps, reason); mutex_unlock(&ps->in_lock); } // `out_media` can be NULL const struct streamhandler *determine_handler(const struct transport_protocol *in_proto, struct call_media *out_media, bool must_recrypt) { const struct transport_protocol *out_proto = out_media ? out_media->protocol : NULL; const struct streamhandler * const *sh_pp, *sh; const struct streamhandler * const * const *matrix; matrix = __sh_matrix; if (must_recrypt) matrix = __sh_matrix_recrypt; sh_pp = matrix[in_proto->index]; if (!sh_pp) goto err; // special handling for RTP/AVP with advertised a=rtcp-fb int out_proto_idx = out_proto ? out_proto->index : in_proto->index; if (out_media && MEDIA_ISSET(out_media, RTCP_FB) && out_proto) { if (!out_proto->avpf && out_proto->avpf_proto) out_proto_idx = out_proto->avpf_proto; } sh = sh_pp[out_proto_idx]; if (!sh) goto err; return sh; err: ilog(LOG_WARNING, "Unknown transport protocol encountered"); return &__sh_noop; } /* must be called with call->master_lock held in R, and in->in_lock held */ // `sh` can be null static const struct streamhandler *__determine_handler(struct packet_stream *in, struct sink_handler *sh) { const struct transport_protocol *in_proto, *out_proto; bool must_recrypt = false; struct packet_stream *out = sh ? sh->sink : NULL; const struct streamhandler *ret = NULL; if (sh && sh->handler) return sh->handler; if (MEDIA_ISSET(in->media, PASSTHRU)) goto noop; in_proto = in->media->protocol; out_proto = out ? out->media->protocol : NULL; if (!in_proto) goto err; if (!sh) must_recrypt = true; else if (dtmf_do_logging(in->call, false)) must_recrypt = true; else if (MEDIA_ISSET(in->media, DTLS) || (out && MEDIA_ISSET(out->media, DTLS))) must_recrypt = true; else if (ML_ISSET(in->media->monologue, INJECT_DTMF) || (out && ML_ISSET(out->media->monologue, INJECT_DTMF))) must_recrypt = true; else if (sh->attrs.transcoding) must_recrypt = true; else if (in->call->recording) must_recrypt = true; else if (in->rtp_sinks.length > 1 || in->rtcp_sinks.length > 1) // need a proper decrypter? must_recrypt = true; else if (in_proto->srtp && out_proto && out_proto->srtp && in->selected_sfd && out && out->selected_sfd && (crypto_params_cmp(&in->crypto.params, &out->selected_sfd->crypto.params) || crypto_params_cmp(&out->crypto.params, &in->selected_sfd->crypto.params))) must_recrypt = true; ret = determine_handler(in_proto, out ? out->media : NULL, must_recrypt); if (sh) sh->handler = ret; return ret; err: ilog(LOG_WARNING, "Unknown transport protocol encountered"); noop: ret = &__sh_noop; if (sh) sh->handler = ret; return ret; } // returns non-null with reason string if stream should be removed from kernel static const char *__stream_ssrc_inout(struct packet_stream *ps, uint32_t ssrc, mutex_t *lock, struct ssrc_ctx *list[RTPE_NUM_SSRC_TRACKING], unsigned int *ctx_idx_p, uint32_t output_ssrc, struct ssrc_ctx **output, struct ssrc_hash *ssrc_hash, enum ssrc_dir dir, const char *label) { const char *ret = NULL; mutex_lock(lock); int ctx_idx = __hunt_ssrc_ctx_idx(ssrc, list, 0); if (ctx_idx == -1) { // SSRC mismatch - get the new entry: ctx_idx = *ctx_idx_p; // move to next slot *ctx_idx_p = (*ctx_idx_p + 1) % RTPE_NUM_SSRC_TRACKING; // eject old entry if present if (list[ctx_idx]) ssrc_ctx_put(&list[ctx_idx]); // get new entry list[ctx_idx] = get_ssrc_ctx(ssrc, ssrc_hash, dir, ps->media->monologue); ret = "SSRC changed"; ilog(LOG_DEBUG, "New %s SSRC for: %s%s:%d SSRC: %x%s", label, FMT_M(sockaddr_print_buf(&ps->endpoint.address), ps->endpoint.port, ssrc)); } if (ctx_idx != 0) { // move most recent entry to front of the list struct ssrc_ctx *tmp = list[0]; list[0] = list[ctx_idx]; list[ctx_idx] = tmp; ctx_idx = 0; } // extract and hold entry if (*output) ssrc_ctx_put(output); *output = list[ctx_idx]; ssrc_ctx_hold(*output); // reverse SSRC mapping if (!output_ssrc) (*output)->ssrc_map_out = ssrc; else (*output)->ssrc_map_out = output_ssrc; mutex_unlock(lock); return ret; } // check and update input SSRC pointers // returns non-null with reason string if stream should be removed from kernel static const char *__stream_ssrc_in(struct packet_stream *in_srtp, uint32_t ssrc_bs, struct ssrc_ctx **ssrc_in_p, struct ssrc_hash *ssrc_hash) { return __stream_ssrc_inout(in_srtp, ntohl(ssrc_bs), &in_srtp->in_lock, in_srtp->ssrc_in, &in_srtp->ssrc_in_idx, 0, ssrc_in_p, ssrc_hash, SSRC_DIR_INPUT, "ingress"); } // check and update output SSRC pointers // returns non-null with reason string if stream should be removed from kernel static const char *__stream_ssrc_out(struct packet_stream *out_srtp, uint32_t ssrc_bs, struct ssrc_ctx *ssrc_in, struct ssrc_ctx **ssrc_out_p, struct ssrc_hash *ssrc_hash, bool ssrc_change) { if (ssrc_change) return __stream_ssrc_inout(out_srtp, ssrc_in->ssrc_map_out, &out_srtp->out_lock, out_srtp->ssrc_out, &out_srtp->ssrc_out_idx, ntohl(ssrc_bs), ssrc_out_p, ssrc_hash, SSRC_DIR_OUTPUT, "egress (mapped)"); return __stream_ssrc_inout(out_srtp, ntohl(ssrc_bs), &out_srtp->out_lock, out_srtp->ssrc_out, &out_srtp->ssrc_out_idx, 0, ssrc_out_p, ssrc_hash, SSRC_DIR_OUTPUT, "egress (direct)"); } // returns: 0 = packet processed by other protocol handler; // -1 = packet not handled, proceed; // 1 = same as 0, but stream can be kernelized static int media_demux_protocols(struct packet_handler_ctx *phc) { if (MEDIA_ISSET(phc->mp.media, DTLS) && is_dtls(&phc->s)) { // verify DTLS packet against ICE checks if present if (MEDIA_ISSET(phc->mp.media, ICE) && phc->mp.media->ice_agent) { if (!ice_peer_address_known(phc->mp.media->ice_agent, &phc->mp.fsin, phc->mp.stream, phc->mp.sfd->local_intf)) { ilog(LOG_DEBUG, "Ignoring DTLS packet from %s%s%s to %s as no matching valid " "ICE candidate pair exists", FMT_M(endpoint_print_buf(&phc->mp.fsin)), endpoint_print_buf(&phc->mp.sfd->socket.local)); return 0; } } mutex_lock(&phc->mp.stream->in_lock); int ret = dtls(phc->mp.sfd, &phc->s, &phc->mp.fsin); if (ret == 1) { phc->unkernelize = "DTLS connected"; phc->unkernelize_subscriptions = true; ret = 0; } mutex_unlock(&phc->mp.stream->in_lock); if (!ret) return 0; } if (phc->mp.media->ice_agent && is_stun(&phc->s)) { int stun_ret = stun(&phc->s, phc->mp.sfd, &phc->mp.fsin); if (!stun_ret) return 0; if (stun_ret == 1) { call_media_state_machine(phc->mp.media); return 1; } else { /* not an stun packet */ } } return -1; } #if RTP_LOOP_PROTECT // returns: 0 = ok, proceed; -1 = duplicate detected, drop packet static int media_loop_detect(struct packet_handler_ctx *phc) { mutex_lock(&phc->mp.stream->in_lock); for (int i = 0; i < RTP_LOOP_PACKETS; i++) { if (phc->mp.stream->lp_buf[i].len != phc->s.len) continue; if (memcmp(phc->mp.stream->lp_buf[i].buf, phc->s.s, MIN(phc->s.len, RTP_LOOP_PROTECT))) continue; __C_DBG("packet dupe"); if (phc->mp.stream->lp_count >= RTP_LOOP_MAX_COUNT) { ilog(LOG_WARNING, "More than %d duplicate packets detected, dropping packet from %s%s%s" "to avoid potential loop", RTP_LOOP_MAX_COUNT, FMT_M(endpoint_print_buf(&phc->mp.fsin))); mutex_unlock(&phc->mp.stream->in_lock); return -1; } phc->mp.stream->lp_count++; goto loop_ok; } /* not a dupe */ phc->mp.stream->lp_count = 0; phc->mp.stream->lp_buf[phc->mp.stream->lp_idx].len = phc->s.len; memcpy(phc->mp.stream->lp_buf[phc->mp.stream->lp_idx].buf, phc->s.s, MIN(phc->s.len, RTP_LOOP_PROTECT)); phc->mp.stream->lp_idx = (phc->mp.stream->lp_idx + 1) % RTP_LOOP_PACKETS; loop_ok: mutex_unlock(&phc->mp.stream->in_lock); return 0; } #endif // in_srtp is set to point to the SRTP context to use // sinks is set to where to forward the packet to static void media_packet_rtcp_demux(struct packet_handler_ctx *phc) { phc->in_srtp = phc->mp.stream; phc->sinks = &phc->mp.stream->rtp_sinks; // is this RTCP? if (PS_ISSET(phc->mp.stream, RTCP)) { int is_rtcp = 1; // plain RTCP or are we muxing? if (MEDIA_ISSET(phc->mp.media, RTCP_MUX)) { is_rtcp = 0; int muxed_rtcp = rtcp_demux(&phc->s, phc->mp.media); if (muxed_rtcp == 2) { is_rtcp = 1; if (phc->mp.stream->rtcp_sibling) phc->in_srtp = phc->mp.stream->rtcp_sibling; // use RTCP SRTP context } } if (is_rtcp) { phc->sinks = &phc->mp.stream->rtcp_sinks; phc->rtcp = true; } } } // out_srtp is set to point to the SRTP context to use static void media_packet_rtcp_mux(struct packet_handler_ctx *phc, struct sink_handler *sh) { phc->out_srtp = sh->sink; if (phc->rtcp && sh->sink->rtcp_sibling) phc->out_srtp = sh->sink->rtcp_sibling; // use RTCP SRTP context phc->mp.media_out = sh->sink->media; phc->mp.sink = *sh; } static void media_packet_rtp_in(struct packet_handler_ctx *phc) { phc->payload_type = -1; if (G_UNLIKELY(!phc->mp.media)) return; if (G_UNLIKELY(!proto_is_rtp(phc->mp.media->protocol))) return; const char *unkern = NULL; if (G_LIKELY(!phc->rtcp && !rtp_payload(&phc->mp.rtp, &phc->mp.payload, &phc->s))) { unkern = __stream_ssrc_in(phc->in_srtp, phc->mp.rtp->ssrc, &phc->mp.ssrc_in, phc->mp.media->monologue->ssrc_hash); // check the payload type // XXX redundant between SSRC handling and codec_handler stuff -> combine phc->payload_type = (phc->mp.rtp->m_pt & 0x7f); if (G_LIKELY(phc->mp.ssrc_in)) payload_tracker_add(&phc->mp.ssrc_in->tracker, phc->payload_type); // XXX yet another hash table per payload type -> combine struct rtp_stats *rtp_s = g_atomic_pointer_get(&phc->mp.stream->rtp_stats_cache); if (G_UNLIKELY(!rtp_s) || G_UNLIKELY(rtp_s->payload_type != phc->payload_type)) rtp_s = g_hash_table_lookup(phc->mp.stream->rtp_stats, GUINT_TO_POINTER(phc->payload_type)); if (!rtp_s) { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "RTP packet with unknown payload type %u received from %s%s%s", phc->payload_type, FMT_M(endpoint_print_buf(&phc->mp.fsin))); atomic64_inc_na(&phc->mp.stream->stats_in->errors); atomic64_inc_na(&phc->mp.sfd->local_intf->stats->in.errors); RTPE_STATS_INC(errors_user); } else { atomic64_inc(&rtp_s->packets); atomic64_add(&rtp_s->bytes, phc->s.len); g_atomic_pointer_set(&phc->mp.stream->rtp_stats_cache, rtp_s); } } else if (phc->rtcp && !rtcp_payload(&phc->mp.rtcp, NULL, &phc->s)) { unkern = __stream_ssrc_in(phc->in_srtp, phc->mp.rtcp->ssrc, &phc->mp.ssrc_in, phc->mp.media->monologue->ssrc_hash); } if (unkern) phc->unkernelize = unkern; } static void media_packet_rtp_out(struct packet_handler_ctx *phc, struct sink_handler *sh) { if (G_UNLIKELY(!proto_is_rtp(phc->mp.media->protocol))) return; const char *unkern = NULL; if (G_LIKELY(!phc->rtcp && phc->mp.rtp)) { unkern = __stream_ssrc_out(phc->out_srtp, phc->mp.rtp->ssrc, phc->mp.ssrc_in, &phc->mp.ssrc_out, phc->mp.media_out->monologue->ssrc_hash, sh->attrs.transcoding ? true : false); } else if (phc->rtcp && phc->mp.rtcp) { unkern = __stream_ssrc_out(phc->out_srtp, phc->mp.rtcp->ssrc, phc->mp.ssrc_in, &phc->mp.ssrc_out, phc->mp.media_out->monologue->ssrc_hash, sh->attrs.transcoding ? true : false); } if (unkern) phc->unkernelize = unkern; } static int media_packet_decrypt(struct packet_handler_ctx *phc) { mutex_lock(&phc->in_srtp->in_lock); struct sink_handler *first_sh = phc->sinks->length ? phc->sinks->head->data : NULL; const struct streamhandler *sh = __determine_handler(phc->in_srtp, first_sh); // XXX use an array with index instead of if/else if (G_LIKELY(!phc->rtcp)) phc->decrypt_func = sh->in->rtp_crypt; else phc->decrypt_func = sh->in->rtcp_crypt; /* return values are: 0 = forward packet, -1 = error/don't forward, * 1 = forward and push update to redis */ int ret = 0; if (phc->decrypt_func) { str ori_s = phc->s; ret = phc->decrypt_func(&phc->s, phc->in_srtp, phc->mp.ssrc_in); // XXX for stripped auth tag and duplicate invocations of rtp_payload // XXX transcoder uses phc->mp.payload phc->mp.payload.len -= ori_s.len - phc->s.len; } mutex_unlock(&phc->in_srtp->in_lock); if (ret == 1) { phc->update = true; ret = 0; } return ret; } static void media_packet_set_encrypt(struct packet_handler_ctx *phc, struct sink_handler *sh) { mutex_lock(&phc->in_srtp->in_lock); __determine_handler(phc->in_srtp, sh); // XXX use an array with index instead of if/else if (G_LIKELY(!phc->rtcp)) phc->encrypt_func = sh->handler->out->rtp_crypt; else { phc->encrypt_func = sh->handler->out->rtcp_crypt; phc->rtcp_filter = sh->handler->in->rtcp_filter; } mutex_unlock(&phc->in_srtp->in_lock); } int media_packet_encrypt(rewrite_func encrypt_func, struct packet_stream *out, struct media_packet *mp) { int ret = 0x00; // 0x01 = error, 0x02 = update if (!encrypt_func) return 0x00; mutex_lock(&out->out_lock); for (__auto_type l = mp->packets_out.head; l; l = l->next) { struct codec_packet *p = l->data; if (mp->call->recording && rtpe_config.rec_egress) { p->plain.len = p->s.len; p->plain.s = bufferpool_alloc(media_bufferpool, p->s.len); memcpy(p->plain.s, p->s.s, p->s.len); p->plain_free_func = bufferpool_unref; } int encret = encrypt_func(&p->s, out, mp->ssrc_out); if (encret == 1) ret |= 0x02; else if (encret != 0) ret |= 0x01; } mutex_unlock(&out->out_lock); return ret; } // return: -1 = error, 0 = ok static int __media_packet_encrypt(struct packet_handler_ctx *phc, struct sink_handler *sh) { int ret = media_packet_encrypt(phc->encrypt_func, phc->out_srtp, &phc->mp); if (ret & 0x02) phc->update = true; return (ret & 0x01) ? -1 : 0; } // returns: drop packet true/false static bool media_packet_address_check(struct packet_handler_ctx *phc) { struct endpoint endpoint; bool ret = false; mutex_lock(&phc->mp.stream->in_lock); /* we're OK to (potentially) use the source address of this packet as destination * in the other direction. */ /* if the other side hasn't been signalled yet, just forward the packet */ if (!PS_ISSET(phc->mp.stream, FILLED)) { __C_DBG("stream %s:%d not FILLED", sockaddr_print_buf(&phc->mp.stream->endpoint.address), phc->mp.stream->endpoint.port); goto out; } // GH #697 - apparent Asterisk bug where it sends stray RTCP to the RTP port. // work around this by detecting this situation and ignoring the packet for // confirmation purposes when needed. This is regardless of whether rtcp-mux // is enabled or not. if (!PS_ISSET(phc->mp.stream, CONFIRMED) && PS_ISSET(phc->mp.stream, RTP)) { if (rtcp_demux_is_rtcp(&phc->s)) { ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Ignoring stray RTCP packet from %s%s%s for " "peer address confirmation purposes", FMT_M(endpoint_print_buf(&phc->mp.fsin))); goto out; } } PS_SET(phc->mp.stream, RECEIVED); /* do not pay attention to source addresses of incoming packets for asymmetric streams */ if (MEDIA_ISSET(phc->mp.media, ASYMMETRIC) || phc->mp.stream->el_flags == EL_OFF) { PS_SET(phc->mp.stream, CONFIRMED); mutex_lock(&phc->mp.stream->out_lock); if (MEDIA_ISSET(phc->mp.media, ASYMMETRIC) && !phc->mp.stream->learned_endpoint.address.family) phc->mp.stream->learned_endpoint = phc->mp.fsin; mutex_unlock(&phc->mp.stream->out_lock); } /* confirm sinks for unidirectional streams in order to kernelize */ if (MEDIA_ISSET(phc->mp.media, UNIDIRECTIONAL)) { for (__auto_type l = phc->sinks->head; l; l = l->next) { struct sink_handler *sh = l->data; PS_SET(sh->sink, CONFIRMED); } } /* if we have already updated the endpoint in the past ... */ if (PS_ISSET(phc->mp.stream, CONFIRMED)) { /* see if we need to compare the source address with the known endpoint */ if (PS_ISSET2(phc->mp.stream, STRICT_SOURCE, MEDIA_HANDOVER)) { endpoint = phc->mp.fsin; mutex_lock(&phc->mp.stream->out_lock); struct endpoint *ps_endpoint = MEDIA_ISSET(phc->mp.media, ASYMMETRIC) ? &phc->mp.stream->learned_endpoint : &phc->mp.stream->endpoint; int tmp = memcmp(&endpoint, ps_endpoint, sizeof(endpoint)); if (tmp && PS_ISSET(phc->mp.stream, MEDIA_HANDOVER)) { /* out_lock remains locked */ ilog(LOG_INFO | LOG_FLAG_LIMIT, "Peer address changed to %s%s%s", FMT_M(endpoint_print_buf(&phc->mp.fsin))); phc->unkernelize = "peer address changed (media handover)"; phc->unconfirm = true; phc->update = true; *ps_endpoint = phc->mp.fsin; goto update_addr; } mutex_unlock(&phc->mp.stream->out_lock); if (tmp && PS_ISSET(phc->mp.stream, STRICT_SOURCE)) { ilog(LOG_INFO | LOG_FLAG_LIMIT, "Drop due to strict-source attribute; " "got %s%s:%d%s, " "expected %s%s:%d%s", FMT_M(sockaddr_print_buf(&endpoint.address), endpoint.port), FMT_M(sockaddr_print_buf(&ps_endpoint->address), ps_endpoint->port)); atomic64_inc_na(&phc->mp.stream->stats_in->errors); atomic64_inc_na(&phc->mp.sfd->local_intf->stats->in.errors); ret = true; } } phc->kernelize = true; goto out; } /* wait at least 3 seconds after last signal before committing to a particular * endpoint address */ bool wait_time = false; if (!phc->mp.call->last_signal || rtpe_now.tv_sec <= phc->mp.call->last_signal + 3) wait_time = true; const struct endpoint *use_endpoint_confirm = &phc->mp.fsin; if (phc->mp.stream->el_flags == EL_IMMEDIATE) goto confirm_now; if (phc->mp.stream->el_flags == EL_HEURISTIC && phc->mp.stream->advertised_endpoint.address.family && phc->mp.stream->advertised_endpoint.port) { // check if we need to reset our learned endpoints if (memcmp(&rtpe_now, &phc->mp.stream->ep_detect_signal, sizeof(rtpe_now))) { memset(&phc->mp.stream->detected_endpoints, 0, sizeof(phc->mp.stream->detected_endpoints)); phc->mp.stream->ep_detect_signal = rtpe_now; } // possible endpoints that can be detected in order of preference: // 0: endpoint that matches the address advertised in the SDP // 1: endpoint with the same address but different port // 2: endpoint with the same port but different address // 3: endpoint with both different port and different address unsigned int idx = 0; if (phc->mp.fsin.port != phc->mp.stream->advertised_endpoint.port) idx |= 1; if (memcmp(&phc->mp.fsin.address, &phc->mp.stream->advertised_endpoint.address, sizeof(sockaddr_t))) idx |= 2; // fill appropriate slot phc->mp.stream->detected_endpoints[idx] = phc->mp.fsin; // now grab the best matched endpoint for (idx = 0; idx < 4; idx++) { use_endpoint_confirm = &phc->mp.stream->detected_endpoints[idx]; if (use_endpoint_confirm->address.family) break; } } if (wait_time) goto update_peerinfo; confirm_now: phc->kernelize = true; phc->update = true; ilog(LOG_INFO, "Confirmed peer address as %s%s%s", FMT_M(endpoint_print_buf(use_endpoint_confirm))); PS_SET(phc->mp.stream, CONFIRMED); update_peerinfo: mutex_lock(&phc->mp.stream->out_lock); // if we're during the wait time, check the received address against the previously // learned address. if they're the same, ignore this packet for learning purposes if (!wait_time || !phc->mp.stream->learned_endpoint.address.family || memcmp(use_endpoint_confirm, &phc->mp.stream->learned_endpoint, sizeof(endpoint))) { endpoint = phc->mp.stream->endpoint; phc->mp.stream->endpoint = *use_endpoint_confirm; phc->mp.stream->learned_endpoint = *use_endpoint_confirm; if (memcmp(&endpoint, &phc->mp.stream->endpoint, sizeof(endpoint))) { ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Peer address changed from %s%s%s to %s%s%s", FMT_M(endpoint_print_buf(&endpoint)), FMT_M(endpoint_print_buf(use_endpoint_confirm))); phc->unkernelize = "peer address changed"; phc->update = true; phc->unkernelize_subscriptions = true; } } update_addr: mutex_unlock(&phc->mp.stream->out_lock); /* check the destination address of the received packet against what we think our * local interface to use is */ if (phc->mp.stream->selected_sfd && phc->mp.sfd != phc->mp.stream->selected_sfd) { // make sure the new interface/socket is actually one from the list of sockets // that we intend to use, and not an old one from a previous negotiation __auto_type contains = t_queue_find(&phc->mp.stream->sfds, phc->mp.sfd); if (!contains) ilog(LOG_INFO | LOG_FLAG_LIMIT, "Not switching from local socket %s to %s (not in list)", endpoint_print_buf(&phc->mp.stream->selected_sfd->socket.local), endpoint_print_buf(&phc->mp.sfd->socket.local)); else { ilog(LOG_INFO | LOG_FLAG_LIMIT, "Switching local socket from %s to %s", endpoint_print_buf(&phc->mp.stream->selected_sfd->socket.local), endpoint_print_buf(&phc->mp.sfd->socket.local)); phc->mp.stream->selected_sfd = phc->mp.sfd; phc->unkernelize = "local socket switched"; phc->update = true; phc->unkernelize_subscriptions = true; } } out: mutex_unlock(&phc->mp.stream->in_lock); return ret; } static void media_packet_kernel_check(struct packet_handler_ctx *phc) { if (PS_ISSET(phc->mp.stream, NO_KERNEL_SUPPORT)) { __C_DBG("stream %s%s%s NO_KERNEL_SUPPORT", FMT_M(endpoint_print_buf(&phc->mp.stream->endpoint))); return; } if (!PS_ISSET(phc->mp.stream, CONFIRMED)) { __C_DBG("stream %s%s%s not CONFIRMED", FMT_M(endpoint_print_buf(&phc->mp.stream->endpoint))); return; } if (ML_ISSET(phc->mp.media->monologue, DTMF_INJECTION_ACTIVE)) return; mutex_lock(&phc->mp.stream->in_lock); kernelize(phc->mp.stream); mutex_unlock(&phc->mp.stream->in_lock); } static int do_rtcp_parse(struct packet_handler_ctx *phc) { int rtcp_ret = rtcp_parse(&phc->rtcp_list, &phc->mp); if (rtcp_ret < 0) return -1; if (rtcp_ret == 1) phc->rtcp_discard = true; return 0; } static int do_rtcp_output(struct packet_handler_ctx *phc) { if (phc->rtcp_discard) return 0; if (phc->kernel_handled) return 0; if (phc->rtcp_filter) if (phc->rtcp_filter(&phc->mp, &phc->rtcp_list)) return -1; // queue for output codec_add_raw_packet(&phc->mp, 0); return 0; } // appropriate locks must be held // only frees the output queue if no `sink` is given int media_socket_dequeue(struct media_packet *mp, struct packet_stream *sink) { struct codec_packet *p; while ((p = t_queue_pop_head(&mp->packets_out))) { if (sink && sink->send_timer) send_timer_push(sink->send_timer, p); else codec_packet_free(p); } return 0; } void media_packet_copy(struct media_packet *dst, const struct media_packet *src) { *dst = *src; t_queue_init(&dst->packets_out); if (dst->sfd) obj_hold(dst->sfd); if (dst->ssrc_in) obj_hold(&dst->ssrc_in->parent->h); if (dst->ssrc_out) obj_hold(&dst->ssrc_out->parent->h); dst->rtp = __g_memdup(src->rtp, sizeof(*src->rtp)); dst->rtcp = __g_memdup(src->rtcp, sizeof(*src->rtcp)); dst->payload = STR_NULL; dst->raw = STR_NULL; } void media_packet_release(struct media_packet *mp) { if (mp->sfd) obj_put(mp->sfd); if (mp->ssrc_in) obj_put(&mp->ssrc_in->parent->h); if (mp->ssrc_out) obj_put(&mp->ssrc_out->parent->h); media_socket_dequeue(mp, NULL); g_free(mp->rtp); g_free(mp->rtcp); ZERO(*mp); } static int media_packet_queue_dup(codec_packet_q *q) { for (__auto_type l = q->head; l; l = l->next) { struct codec_packet *p = l->data; if (p->free_func) // nothing to do, already private continue; if (!codec_packet_copy(p)) return -1; } return 0; } /** * Packet handling starts in stream_packet(). * * This operates on the originating stream_fd (fd which received the packet) * and on its linked packet_stream. * * Eventually proceeds to going through the list of sinks, * either rtp_sinks or rtcp_sinks (egress handling). * * called lock-free. */ static int stream_packet(struct packet_handler_ctx *phc) { /** * Incoming packets (ingress): * - phc->mp.sfd->socket.local: the local IP/port on which the packet arrived * - phc->mp.sfd->stream->endpoint: adjusted/learned IP/port from where the packet * was sent * - phc->mp.sfd->stream->advertised_endpoint: the unadjusted IP/port from where the * packet was sent. These are the values present in the SDP * * Outgoing packets (egress): * - sh_link = phc->sinks->head (ptr to Gqueue with sinks), then * sh = sh_link->data (ptr to handler, implicit cast), then * sh->sink->endpoint: the destination IP/port * - sh->sink->selected_sfd->socket.local: the local source IP/port for the * outgoing packet (same way it gets sinks from phc->sinks) * * If rtpengine runs behind a NAT and local addresses are configured with * different advertised endpoints, the SDP would not contain the address from * `...->socket.local.address`, but rather from `...->local_intf->advertised_address.addr` * (of type `sockaddr_t`). The port will be the same. * * TODO: move the above comments to the data structure definitions, if the above * always holds true */ int ret = 0, handler_ret = 0; GQueue free_list = G_QUEUE_INIT; phc->mp.call = phc->mp.sfd->call; rwlock_lock_r(&phc->mp.call->master_lock); phc->mp.stream = phc->mp.sfd->stream; if (G_UNLIKELY(!phc->mp.stream)) goto out; __C_DBG("Handling packet on: %s", endpoint_print_buf(&phc->mp.stream->endpoint)); phc->mp.media = phc->mp.stream->media; ///////////////// INGRESS HANDLING if (!phc->mp.stream->selected_sfd) goto out; CALL_CLEAR(phc->mp.call, FOREIGN_MEDIA); if (CALL_ISSET(phc->mp.call, DROP_TRAFFIC)) goto drop; int stun_ret = media_demux_protocols(phc); if (stun_ret == 0) // packet processed goto out; if (stun_ret == 1) { media_packet_kernel_check(phc); goto drop; } #if RTP_LOOP_PROTECT if (MEDIA_ISSET(phc->mp.media, LOOP_CHECK)) { if (media_loop_detect(phc)) goto out; } #endif // this sets rtcp, in_srtp, and sinks media_packet_rtcp_demux(phc); if (media_packet_address_check(phc)) goto drop; if (rtpe_config.active_switchover && IS_FOREIGN_CALL(phc->mp.call)) call_make_own_foreign(phc->mp.call, false); bool is_blackhole = MEDIA_ISSET(phc->mp.media, BLACKHOLE); if (!is_blackhole) is_blackhole = !phc->rtcp && !MEDIA_ISSET(phc->mp.media, RECV); // this set payload_type, ssrc_in, and mp payloads media_packet_rtp_in(phc); if (phc->mp.rtp) ilog(LOG_DEBUG, "Handling packet: remote %s%s%s (expected: %s%s%s) -> local %s " "(RTP seq %u TS %u SSRC %s%x%s)", FMT_M(endpoint_print_buf(&phc->mp.fsin)), FMT_M(endpoint_print_buf(&phc->mp.stream->endpoint)), endpoint_print_buf(&phc->mp.sfd->socket.local), ntohs(phc->mp.rtp->seq_num), ntohl(phc->mp.rtp->timestamp), FMT_M(ntohl(phc->mp.rtp->ssrc))); else ilog(LOG_DEBUG, "Handling packet: remote %s%s%s (expected: %s%s%s) -> local %s", FMT_M(endpoint_print_buf(&phc->mp.fsin)), FMT_M(endpoint_print_buf(&phc->mp.stream->endpoint)), endpoint_print_buf(&phc->mp.sfd->socket.local)); // SSRC receive stats if (phc->mp.ssrc_in && phc->mp.rtp) { atomic64_inc_na(&phc->mp.ssrc_in->stats->packets); atomic64_add_na(&phc->mp.ssrc_in->stats->bytes, phc->s.len); // no real sequencing, so this is rudimentary unsigned int old_seq = atomic_get_na(&phc->mp.ssrc_in->stats->ext_seq); unsigned int new_seq = ntohs(phc->mp.rtp->seq_num) | (old_seq & 0xffff0000UL); // XXX combine this with similar code elsewhere int seq_diff = new_seq - old_seq; while (seq_diff < -60000) { new_seq += 0x10000; seq_diff += 0x10000; } if (seq_diff > 0 || seq_diff < -10) { atomic_set_na(&phc->mp.ssrc_in->stats->ext_seq, new_seq); atomic_set_na(&phc->mp.ssrc_in->stats->timestamp, ntohl(phc->mp.rtp->timestamp)); } } // decrypt in place // XXX check handler_ret along the paths handler_ret = media_packet_decrypt(phc); if (handler_ret < 0) goto out; // receive error rtp_padding(phc->mp.rtp, &phc->mp.payload); // If recording pcap dumper is set, then we record the call. if (phc->mp.call->recording && !rtpe_config.rec_egress) dump_packet(&phc->mp, &phc->s); phc->mp.raw = phc->s; if (atomic64_inc_na(&phc->mp.stream->stats_in->packets) == 0) { if (phc->mp.stream->component == 1) { if (phc->mp.media->index == 1) janus_rtc_up(phc->mp.media->monologue); janus_media_up(phc->mp.media); } } atomic64_add_na(&phc->mp.stream->stats_in->bytes, phc->s.len); atomic64_inc_na(&phc->mp.sfd->local_intf->stats->in.packets); atomic64_add_na(&phc->mp.sfd->local_intf->stats->in.bytes, phc->s.len); atomic64_set(&phc->mp.stream->last_packet, rtpe_now.tv_sec); RTPE_STATS_INC(packets_user); RTPE_STATS_ADD(bytes_user, phc->s.len); ///////////////// EGRESS HANDLING str orig_raw = STR_NULL; for (__auto_type sh_link = phc->sinks->head; sh_link; sh_link = sh_link->next) { struct sink_handler *sh = sh_link->data; struct packet_stream *sink = sh->sink; // this sets rtcp, in_srtp, out_srtp, media_out, and sink media_packet_rtcp_mux(phc, sh); // this set ssrc_out media_packet_rtp_out(phc, sh); rtcp_list_free(&phc->rtcp_list); if (phc->rtcp) { phc->rtcp_discard = false; handler_ret = -1; // these functions may do in-place rewriting, but we may have multiple // outputs - make a copy if this isn't the last sink if (sh_link->next) { if (!orig_raw.s) orig_raw = phc->mp.raw; char *buf = bufferpool_alloc(media_bufferpool, orig_raw.len + RTP_BUFFER_TAIL_ROOM); memcpy(buf, orig_raw.s, orig_raw.len); phc->mp.raw.s = buf; g_queue_push_tail(&free_list, buf); } if (do_rtcp_parse(phc)) goto out; if (phc->rtcp_discard) goto next; } else { if (sh->attrs.rtcp_only) goto next; } if (PS_ISSET(sink, NAT_WAIT) && !PS_ISSET(sink, RECEIVED)) { ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Media packet from %s%s%s discarded due to `NAT-wait` flag", FMT_M(endpoint_print_buf(&phc->mp.fsin))); goto next; } if (G_UNLIKELY(!sink->selected_sfd || !phc->out_srtp || !phc->out_srtp->selected_sfd || !phc->in_srtp->selected_sfd)) { errno = ENOENT; ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Media packet from %s%s%s discarded due to lack of sink", FMT_M(endpoint_print_buf(&phc->mp.fsin))); goto err_next; } media_packet_set_encrypt(phc, sh); if (phc->rtcp) { if (do_rtcp_output(phc)) goto err_next; } else { struct codec_handler *transcoder = codec_handler_get(phc->mp.media, phc->payload_type, phc->mp.media_out, sh); // this transfers the packet from 's' to 'packets_out' if (transcoder->handler_func(transcoder, &phc->mp)) goto err_next; } // if this is not the last sink, duplicate the output queue packets if necessary if (sh_link->next) { ret = media_packet_queue_dup(&phc->mp.packets_out); errno = ENOMEM; if (ret) goto err_next; } // egress mirroring if (!phc->rtcp) { for (__auto_type mirror_link = phc->mp.stream->rtp_mirrors.head; mirror_link; mirror_link = mirror_link->next) { struct packet_handler_ctx mirror_phc = *phc; mirror_phc.mp.ssrc_out = NULL; t_queue_init(&mirror_phc.mp.packets_out); struct sink_handler *mirror_sh = mirror_link->data; struct packet_stream *mirror_sink = mirror_sh->sink; media_packet_rtcp_mux(&mirror_phc, mirror_sh); media_packet_rtp_out(&mirror_phc, mirror_sh); media_packet_set_encrypt(&mirror_phc, mirror_sh); for (__auto_type pack = phc->mp.packets_out.head; pack; pack = pack->next) { struct codec_packet *p = pack->data; t_queue_push_tail(&mirror_phc.mp.packets_out, codec_packet_dup(p)); } ret = __media_packet_encrypt(&mirror_phc, mirror_sh); if (ret) goto next_mirror; mutex_lock(&mirror_sink->out_lock); if (!mirror_sink->advertised_endpoint.port || (is_addr_unspecified(&mirror_sink->advertised_endpoint.address) && !is_trickle_ice_address(&mirror_sink->advertised_endpoint))) { mutex_unlock(&mirror_sink->out_lock); goto next_mirror; } media_socket_dequeue(&mirror_phc.mp, mirror_sink); mutex_unlock(&mirror_sink->out_lock); next_mirror: media_socket_dequeue(&mirror_phc.mp, NULL); // just free if anything left ssrc_ctx_put(&mirror_phc.mp.ssrc_out); } } ret = __media_packet_encrypt(phc, sh); errno = ENOTTY; if (ret == -1) goto err_next; mutex_lock(&sink->out_lock); if (!sink->advertised_endpoint.port || (is_addr_unspecified(&sink->advertised_endpoint.address) && !is_trickle_ice_address(&sink->advertised_endpoint))) { mutex_unlock(&sink->out_lock); goto next; } if (!is_blackhole) ret = media_socket_dequeue(&phc->mp, sink); else ret = media_socket_dequeue(&phc->mp, NULL); mutex_unlock(&sink->out_lock); if (ret == 0) goto next; err_next: ilog(LOG_DEBUG | LOG_FLAG_LIMIT ,"Error when sending message. Error: %s", strerror(errno)); atomic64_inc_na(&sink->stats_in->errors); if (sink->selected_sfd) atomic64_inc_na(&sink->selected_sfd->local_intf->stats->out.errors); RTPE_STATS_INC(errors_user); goto next; next: media_socket_dequeue(&phc->mp, NULL); // just free if anything left ssrc_ctx_put(&phc->mp.ssrc_out); } ///////////////// INGRESS POST-PROCESSING HANDLING if (phc->unkernelize) // for RTCP packet index updates unkernelize(phc->mp.stream, phc->unkernelize); if (phc->kernelize) media_packet_kernel_check(phc); drop: ret = 0; handler_ret = 0; out: if (phc->unconfirm) { stream_unconfirm(phc->mp.stream, "peer address unconfirmed"); unconfirm_sinks(&phc->mp.stream->rtp_sinks, "peer address unconfirmed"); unconfirm_sinks(&phc->mp.stream->rtcp_sinks, "peer address unconfirmed"); } if (phc->unkernelize_subscriptions) { g_auto(GQueue) mls = G_QUEUE_INIT; /* to avoid duplications */ for (__auto_type sub = phc->mp.media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; if (!g_queue_find(&mls, ms->monologue)) { for (unsigned int k = 0; k < ms->monologue->medias->len; k++) { struct call_media *sub_media = ms->monologue->medias->pdata[k]; if (!sub_media) continue; for (__auto_type m = sub_media->streams.head; m; m = m->next) { struct packet_stream *sub_ps = m->data; __unkernelize(sub_ps, "subscriptions modified"); } } g_queue_push_tail(&mls, ms->monologue); } } } if (handler_ret < 0) { atomic64_inc_na(&phc->mp.stream->stats_in->errors); atomic64_inc_na(&phc->mp.sfd->local_intf->stats->in.errors); RTPE_STATS_INC(errors_user); } rwlock_unlock_r(&phc->mp.call->master_lock); media_socket_dequeue(&phc->mp, NULL); // just free ssrc_ctx_put(&phc->mp.ssrc_out); ssrc_ctx_put(&phc->mp.ssrc_in); rtcp_list_free(&phc->rtcp_list); g_queue_clear_full(&free_list, bufferpool_unref); return ret; } static void __stream_fd_readable(struct packet_handler_ctx *phc) { struct stream_fd *sfd = phc->mp.sfd; if (phc->mp.tv.tv_sec < 0) { // kernel-handled RTCP phc->kernel_handled = true; // restore original actual timestamp if (G_UNLIKELY(phc->mp.tv.tv_usec == 0)) phc->mp.tv.tv_sec = -phc->mp.tv.tv_sec; else { phc->mp.tv.tv_sec = -phc->mp.tv.tv_sec - 1; phc->mp.tv.tv_usec = 1000000 - phc->mp.tv.tv_usec; } } int ret; if (sfd->stream && sfd->stream->jb) { ret = buffer_packet(&phc->mp, &phc->s); if (ret == 1) ret = stream_packet(phc); } else ret = stream_packet(phc); if (G_UNLIKELY(ret < 0)) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Write error on media socket: %s", strerror(-ret)); } static void stream_fd_readable(int fd, void *p) { stream_fd *sfd = p; int ret, iters; bool update = false; call_t *ca; if (sfd->socket.fd != fd) return; // +1 to active read events. If it was zero then we handle it. If it was non-zero, // another thread is already handling this socket and will process our event. if (g_atomic_int_add(&sfd->active_read_events, 1) != 0) return; ca = sfd->call ? : NULL; log_info_stream_fd(sfd); int strikes = g_atomic_int_get(&sfd->error_strikes); if (strikes >= MAX_RECV_LOOP_STRIKES) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "UDP receive queue exceeded %i times: " "discarding packet", strikes); // Polling is edge-triggered so we won't immediately get here again. // We could remove ourselves from the poller though. Maybe call stream_fd_closed? return; } restart: for (iters = 0; ; iters++) { #if MAX_RECV_ITERS if (iters >= rtpe_config.max_recv_iters) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Too many packets in UDP receive queue (more than %d), " "aborting loop. Dropped packets possible", iters); g_atomic_int_inc(&sfd->error_strikes); g_atomic_int_set(&sfd->active_read_events,0); goto strike; } #endif struct packet_handler_ctx phc; ZERO(phc); phc.mp.sfd = sfd; if (ca) { rwlock_lock_r(&ca->master_lock); if (sfd->socket.fd != fd) { rwlock_unlock_r(&ca->master_lock); goto done; } } g_autoptr(bp_char) buf = bufferpool_alloc(media_bufferpool, RTP_BUFFER_SIZE); ret = socket_recvfrom_ts(&sfd->socket, buf + RTP_BUFFER_HEAD_ROOM, MAX_RTP_PACKET_SIZE, &phc.mp.fsin, &phc.mp.tv); if (ca) rwlock_unlock_r(&ca->master_lock); if (ret < 0) { if (errno == EINTR) continue; if (errno == EAGAIN || errno == EWOULDBLOCK) break; stream_fd_closed(fd, sfd); goto done; } if (ret >= MAX_RTP_PACKET_SIZE) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "UDP packet possibly truncated"); str_init_len(&phc.s, buf + RTP_BUFFER_HEAD_ROOM, ret); __stream_fd_readable(&phc); update += phc.update; } // -1 active read events. If it's non-zero, another thread has received a read event, // and we must handle it here. if (!g_atomic_int_dec_and_test(&sfd->active_read_events)) goto restart; // no strike if (strikes > 0) g_atomic_int_compare_and_exchange(&sfd->error_strikes, strikes, strikes - 1); strike: if (ca && update) { redis_update_onekey(ca, rtpe_redis_write); } done: log_info_pop(); } static void stream_fd_recv(struct obj *obj, char *buf, size_t len, struct sockaddr *sa, struct timeval *tv) { struct stream_fd *sfd = (struct stream_fd *) obj; call_t *ca = sfd->call; if (!ca) goto out; rwlock_lock_r(&ca->master_lock); if (sfd->socket.fd == -1) { rwlock_unlock_r(&ca->master_lock); goto out; } log_info_stream_fd(sfd); rwlock_unlock_r(&ca->master_lock); struct packet_handler_ctx phc; ZERO(phc); phc.mp.sfd = sfd; sfd->socket.family->sockaddr2endpoint(&phc.mp.fsin, sa); str_init_len(&phc.s, buf, len); __stream_fd_readable(&phc); if (phc.update) redis_update_onekey(ca, rtpe_redis_write); out: log_info_pop(); bufferpool_unref(buf); } static void stream_fd_free(void *p) { stream_fd *f = p; release_port(&f->socket, f->local_intf->spec); crypto_cleanup(&f->crypto); dtls_connection_cleanup(&f->dtls); obj_put(f->call); } stream_fd *stream_fd_new(socket_t *fd, call_t *call, struct local_intf *lif) { stream_fd *sfd; struct poller_item pi; sfd = obj_alloc0("stream_fd", sizeof(*sfd), stream_fd_free); sfd->unique_id = t_queue_get_length(&call->stream_fds); sfd->socket = *fd; sfd->call = obj_get(call); sfd->local_intf = lif; t_queue_push_tail(&call->stream_fds, sfd); /* hand over ref */ g_slice_free1(sizeof(*fd), fd); /* moved into sfd, thus free */ __C_DBG("stream_fd_new localport=%d", sfd->socket.local.port); ZERO(pi); pi.fd = sfd->socket.fd; pi.obj = &sfd->obj; pi.readable = stream_fd_readable; pi.recv = stream_fd_recv; pi.closed = stream_fd_closed; if (sfd->socket.fd != -1) { struct poller *p = call->poller; if (!rtpe_poller_add_item(p, &pi)) ilog(LOG_ERR, "Failed to add stream_fd to poller"); else sfd->poller = p; RWLOCK_W(&local_media_socket_endpoints_lock); t_hash_table_replace(local_media_socket_endpoints, &sfd->socket.local, obj_get(sfd)); } return sfd; } stream_fd *stream_fd_lookup(const endpoint_t *ep) { RWLOCK_R(&local_media_socket_endpoints_lock); stream_fd *ret = t_hash_table_lookup(local_media_socket_endpoints, ep); if (!ret) return NULL; obj_hold(ret); return ret; } void stream_fd_release(stream_fd *sfd) { if (!sfd) return; if (sfd->socket.fd == -1) return; { RWLOCK_W(&local_media_socket_endpoints_lock); stream_fd *ent = t_hash_table_lookup(local_media_socket_endpoints, &sfd->socket.local); if (ent == sfd) t_hash_table_remove(local_media_socket_endpoints, &sfd->socket.local); // releases reference } release_port_poller(&sfd->socket, sfd->local_intf->spec, sfd->poller); } const struct transport_protocol *transport_protocol(const str *s) { int i; if (!s || !s->s) goto out; for (i = 0; i < num_transport_protocols; i++) { if (strlen(transport_protocols[i].name) != s->len) continue; if (strncasecmp(transport_protocols[i].name, s->s, s->len)) continue; return &transport_protocols[i]; } out: return NULL; } void play_buffered(struct jb_packet *cp) { struct packet_handler_ctx phc; ZERO(phc); phc.mp = cp->mp; phc.s = cp->mp.raw; //phc.buffered_packet = buffered; stream_packet(&phc); jb_packet_free(&cp); } void interfaces_free(void) { struct local_intf *ifc; GList *ll; while ((ifc = g_queue_pop_head(&all_local_interfaces))) { free(ifc->ice_foundation.s); bufferpool_unref(ifc->stats); g_slice_free1(sizeof(*ifc), ifc); } t_hash_table_destroy(__logical_intf_name_family_hash); ll = g_hash_table_get_values(__local_intf_addr_type_hash); for (GList *l = ll; l; l = l->next) { GList *k = l->data; g_list_free(k); } g_list_free(ll); g_hash_table_destroy(__local_intf_addr_type_hash); ll = g_hash_table_get_values(__intf_spec_addr_type_hash); for (GList *l = ll; l; l = l->next) { struct intf_spec *spec = l->data; struct port_pool *pp = &spec->port_pool; if (pp->free_ports_ht) { g_hash_table_destroy(pp->free_ports_ht); } g_queue_clear(&pp->free_ports_q); mutex_destroy(&pp->free_list_lock); g_slice_free1(sizeof(*spec), spec); } g_list_free(ll); g_hash_table_destroy(__intf_spec_addr_type_hash); intf_rr_lookup_iter r_iter; t_hash_table_iter_init(&r_iter, __logical_intf_name_family_rr_hash); struct intf_rr *rr; while (t_hash_table_iter_next(&r_iter, NULL, &rr)) { g_queue_clear(&rr->logical_intfs); g_slice_free1(sizeof(*rr), rr); } t_hash_table_destroy(__logical_intf_name_family_rr_hash); for (int i = 0; i < G_N_ELEMENTS(__preferred_lists_for_family); i++) { GQueue *q = &__preferred_lists_for_family[i]; struct logical_intf *lif; while ((lif = g_queue_pop_head(q))) { g_hash_table_destroy(lif->rr_specs); g_queue_clear(&lif->list); g_slice_free1(sizeof(*lif), lif); } } t_hash_table_destroy(local_media_socket_endpoints); local_media_socket_endpoints = local_sockets_ht_null(); rwlock_destroy(&local_media_socket_endpoints_lock); } static void interface_stats_block_free(void *p) { g_slice_free1(sizeof(struct interface_stats_interval), p); } void interface_sampled_rate_stats_init(struct interface_sampled_rate_stats *s) { s->ht = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, interface_stats_block_free); } void interface_sampled_rate_stats_destroy(struct interface_sampled_rate_stats *s) { g_hash_table_destroy(s->ht); } struct interface_stats_block *interface_sampled_rate_stats_get(struct interface_sampled_rate_stats *s, struct local_intf *lif, long long *time_diff_us) { if (!s) return NULL; struct interface_stats_interval *ret = g_hash_table_lookup(s->ht, lif); if (!ret) { ret = g_slice_alloc0(sizeof(*ret)); g_hash_table_insert(s->ht, lif, ret); } if (ret->last_run.tv_sec) *time_diff_us = timeval_diff(&rtpe_now, &ret->last_run); else *time_diff_us = 0; ret->last_run = rtpe_now; return &ret->stats; } rtpengine-mr12.5.1.22/daemon/mqtt.c000066400000000000000000000365061474347554000167770ustar00rootroot00000000000000#ifdef HAVE_MQTT #include "mqtt.h" #include #include #include #include #include #include #include #include "main.h" #include "log.h" #include "log_funcs.h" #include "call.h" #include "ssrc.h" #include "rtplib.h" #include "media_player.h" static struct mosquitto *mosq; static bool is_connected = false; static struct interface_sampled_rate_stats interface_rate_stats; static void mqtt_ssrc_stats(struct ssrc_ctx *ssrc, JsonBuilder *json, struct call_media *media); int mqtt_init(void) { interface_sampled_rate_stats_init(&interface_rate_stats); mosq = mosquitto_new(rtpe_config.mqtt_id, true, NULL); if (!mosq) { ilog(LOG_ERR, "Failed to create mosquitto client instance: %s", strerror(errno)); return -1; } return 0; } static int mqtt_connect(void) { ilog(LOG_DEBUG, "Connecting to mosquitto..."); mosquitto_disconnect(mosq); int ret = mosquitto_reinitialise(mosq, rtpe_config.mqtt_id, true, NULL); if (ret) { ilog(LOG_ERR, "Failed to initialise mosquitto client instance: %s", mosquitto_strerror(ret)); return -1; } mosquitto_threaded_set(mosq, true); if (rtpe_config.mqtt_user) { ret = mosquitto_username_pw_set(mosq, rtpe_config.mqtt_user, rtpe_config.mqtt_pass); if (ret != MOSQ_ERR_SUCCESS) { ilog(LOG_ERR, "Failed to set mosquitto user/pass auth: %s", mosquitto_strerror(errno)); return -1; } } if (rtpe_config.mqtt_cafile || rtpe_config.mqtt_capath) { ret = mosquitto_tls_set(mosq, rtpe_config.mqtt_cafile, rtpe_config.mqtt_capath, rtpe_config.mqtt_certfile, rtpe_config.mqtt_keyfile, NULL); if (ret != MOSQ_ERR_SUCCESS) { ilog(LOG_ERR, "Failed to set mosquitto TLS options: %s", mosquitto_strerror(errno)); return -1; } } if (rtpe_config.mqtt_tls_alpn) { #if LIBMOSQUITTO_VERSION_NUMBER >= 1006000 ret = mosquitto_string_option(mosq, MOSQ_OPT_TLS_ALPN, rtpe_config.mqtt_tls_alpn); if (ret != MOSQ_ERR_SUCCESS) { ilog(LOG_ERR, "Failed to set mosquitto TLS ALPN options: %s", mosquitto_strerror(errno)); return -1; } #else ilog(LOG_WARN, "Cannot set mqtt TLS ALPN due to outdated mosquitto library"); #endif } ret = mosquitto_connect(mosq, rtpe_config.mqtt_host, rtpe_config.mqtt_port, rtpe_config.mqtt_keepalive); if (ret != MOSQ_ERR_SUCCESS) { ilog(LOG_ERR, "Failed to connect to mosquitto broker: %s", mosquitto_strerror(ret)); return -1; } ilog(LOG_DEBUG, "Successfully connected to mosquitto"); return 0; } void mqtt_loop(void *dummy) { while (!rtpe_shutdown) { while (!is_connected && !rtpe_shutdown) { if (!mqtt_connect()) { is_connected = true; break; } usleep(1000000); } unsigned int errors = 0; while (!rtpe_shutdown) { int ret = mosquitto_loop(mosq, 100, 1); if (ret == MOSQ_ERR_SUCCESS) { errors = 0; continue; } if (ret == MOSQ_ERR_ERRNO) ilog(LOG_ERR, "Error from mosquitto: %s", strerror(errno)); else ilog(LOG_ERR, "Error from mosquitto: %s", mosquitto_strerror(ret)); errors++; if (errors >= 5) { ilog(LOG_WARN, "Reconnecting to mosquitto"); break; } } mosquitto_disconnect(mosq); is_connected = false; } mosquitto_destroy(mosq); mosq = NULL; } int mqtt_publish_scope(void) { if (!mosq) return MPS_NONE; return rtpe_config.mqtt_publish_scope; } void mqtt_publish(char *s) { ilog(LOG_DEBUG, "Publishing to mosquitto: %s%s%s", FMT_M(s)); int ret = mosquitto_publish(mosq, NULL, rtpe_config.mqtt_publish_topic, strlen(s), s, rtpe_config.mqtt_publish_qos, false); if (ret != MOSQ_ERR_SUCCESS) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Error publishing message to mosquitto: %s", mosquitto_strerror(ret)); g_free(s); } static void mqtt_call_stats(call_t *call, JsonBuilder *json) { json_builder_set_member_name(json, "call_id"); json_builder_add_string_value(json, call->callid.s); } static void mqtt_monologue_stats(struct call_monologue *ml, JsonBuilder *json) { json_builder_set_member_name(json, "tag"); json_builder_add_string_value(json, ml->tag.s); if (ml->label.len) { json_builder_set_member_name(json, "label"); json_builder_add_string_value(json, ml->label.s); } #ifdef WITH_TRANSCODING struct media_player *mp = ml->player; if (mp) { mutex_lock(&mp->lock); json_builder_set_member_name(json, "media_player"); json_builder_begin_object(json); json_builder_set_member_name(json, "duration"); json_builder_add_int_value(json, mp->coder.duration); json_builder_set_member_name(json, "repeat"); json_builder_add_int_value(json, mp->opts.repeat); json_builder_set_member_name(json, "frame_time"); json_builder_add_int_value(json, mp->last_frame_ts); if (mp->ssrc_out && mp->media) { json_builder_set_member_name(json, "SSRC"); json_builder_begin_object(json); mqtt_ssrc_stats(mp->ssrc_out, json, mp->media); json_builder_end_object(json); } json_builder_end_object(json); mutex_unlock(&mp->lock); } #endif } static void mqtt_ssrc_stats(struct ssrc_ctx *ssrc, JsonBuilder *json, struct call_media *media) { if (!ssrc || !media) return; struct ssrc_entry_call *sc = ssrc->parent; json_builder_set_member_name(json, "SSRC"); json_builder_add_int_value(json, sc->h.ssrc); unsigned char prim_pt = 255; mutex_lock(&ssrc->tracker.lock); if (ssrc->tracker.most_len > 0) prim_pt = ssrc->tracker.most[0]; mutex_unlock(&ssrc->tracker.lock); unsigned int clockrate = 0; rtp_payload_type *pt = t_hash_table_lookup(media->codecs.codecs, GUINT_TO_POINTER(prim_pt)); if (pt) { json_builder_set_member_name(json, "codec"); json_builder_add_string_value(json, pt->encoding.s); json_builder_set_member_name(json, "clock_rate"); json_builder_add_int_value(json, pt->clock_rate); clockrate = pt->clock_rate; if (pt->encoding_parameters.s) { json_builder_set_member_name(json, "codec_params"); json_builder_add_string_value(json, pt->encoding_parameters.s); } if (pt->format_parameters.s) { json_builder_set_member_name(json, "codec_format"); json_builder_add_string_value(json, pt->format_parameters.s); } } json_builder_set_member_name(json, "metrics"); json_builder_begin_object(json); // copy out values int64_t packets, octets, packets_lost, duplicates; packets = atomic64_get_na(&ssrc->stats->packets); octets = atomic64_get_na(&ssrc->stats->bytes); packets_lost = sc->packets_lost; duplicates = sc->duplicates; // process per-second stats uint64_t cur_ts = ssrc_timeval_to_ts(&rtpe_now); uint64_t last_sample; int64_t sample_packets, sample_octets, sample_packets_lost, sample_duplicates; // sample values last_sample = atomic64_get_set(&ssrc->last_sample, cur_ts); sample_packets = atomic64_get_set(&ssrc->sample_packets, packets); sample_octets = atomic64_get_set(&ssrc->sample_octets, octets); sample_packets_lost = atomic64_get_set(&ssrc->sample_packets_lost, packets_lost); sample_duplicates = atomic64_get_set(&ssrc->sample_duplicates, duplicates); json_builder_set_member_name(json, "packets"); json_builder_add_int_value(json, packets); json_builder_set_member_name(json, "bytes"); json_builder_add_int_value(json, octets); json_builder_set_member_name(json, "lost"); json_builder_add_int_value(json, packets_lost); json_builder_set_member_name(json, "duplicates"); json_builder_add_int_value(json, duplicates); if (last_sample && last_sample != cur_ts) { // calc sample rates with primitive math struct timeval last_sample_ts = ssrc_ts_to_timeval(last_sample); double usecs_diff = (double) timeval_diff(&rtpe_now, &last_sample_ts); // adjust samples packets -= sample_packets; octets -= sample_octets; packets_lost -= sample_packets_lost; duplicates -= sample_duplicates; json_builder_set_member_name(json, "packets_per_second"); json_builder_add_double_value(json, (double) packets * 1000000.0 / usecs_diff); json_builder_set_member_name(json, "bytes_per_second"); json_builder_add_double_value(json, (double) octets * 1000000.0 / usecs_diff); json_builder_set_member_name(json, "lost_per_second"); json_builder_add_double_value(json, (double) packets_lost * 1000000.0 / usecs_diff); json_builder_set_member_name(json, "duplicates_per_second"); json_builder_add_double_value(json, (double) duplicates * 1000000.0 / usecs_diff); } mutex_lock(&sc->h.lock); uint32_t jitter = sc->jitter; int64_t mos = -1, rtt = -1, rtt_leg = -1; if (sc->stats_blocks.length) { struct ssrc_stats_block *sb = sc->stats_blocks.tail->data; mos = sb->mos; rtt = sb->rtt; rtt_leg = sb->rtt_leg; } mutex_unlock(&sc->h.lock); if (clockrate) { json_builder_set_member_name(json, "jitter"); json_builder_add_double_value(json, (double) jitter * 1000.0 / (double) clockrate); } if (mos != -1 && mos != 0) { json_builder_set_member_name(json, "MOS"); json_builder_add_double_value(json, (double) mos / 10.0); } if (rtt != -1) { json_builder_set_member_name(json, "RTT"); json_builder_add_double_value(json, (double) rtt / 1000.0); } if (rtt_leg != -1) { json_builder_set_member_name(json, "RTT_leg"); json_builder_add_double_value(json, (double) rtt_leg / 1000.0); } json_builder_end_object(json); } static void mqtt_stream_stats_dir(const struct stream_stats *s, JsonBuilder *json) { json_builder_set_member_name(json, "bytes"); json_builder_add_int_value(json, atomic64_get_na(&s->bytes)); json_builder_set_member_name(json, "packets"); json_builder_add_int_value(json, atomic64_get_na(&s->packets)); json_builder_set_member_name(json, "errors"); json_builder_add_int_value(json, atomic64_get_na(&s->errors)); } static void mqtt_stream_stats(struct packet_stream *ps, JsonBuilder *json) { mutex_lock(&ps->in_lock); stream_fd *sfd = ps->selected_sfd; if (sfd) { json_builder_set_member_name(json, "address"); json_builder_add_string_value(json, sockaddr_print_buf(&sfd->socket.local.address)); json_builder_set_member_name(json, "port"); json_builder_add_int_value(json, sfd->socket.local.port); } json_builder_set_member_name(json, "ingress"); json_builder_begin_object(json); mqtt_stream_stats_dir(ps->stats_in, json); json_builder_set_member_name(json, "SSRC"); json_builder_begin_array(json); for (int i = 0; i < RTPE_NUM_SSRC_TRACKING; i++) { if (!ps->ssrc_in[i]) break; json_builder_begin_object(json); mqtt_ssrc_stats(ps->ssrc_in[i], json, ps->media); json_builder_end_object(json); } json_builder_end_array(json); json_builder_end_object(json); mutex_unlock(&ps->in_lock); mutex_lock(&ps->out_lock); json_builder_set_member_name(json, "egress"); json_builder_begin_object(json); mqtt_stream_stats_dir(ps->stats_out, json); json_builder_set_member_name(json, "SSRC"); json_builder_begin_array(json); for (int i = 0; i < RTPE_NUM_SSRC_TRACKING; i++) { if (!ps->ssrc_out[i]) break; json_builder_begin_object(json); mqtt_ssrc_stats(ps->ssrc_out[i], json, ps->media); json_builder_end_object(json); } json_builder_end_array(json); json_builder_end_object(json); mutex_unlock(&ps->out_lock); } static void mqtt_media_stats(struct call_media *media, JsonBuilder *json) { json_builder_set_member_name(json, "media_index"); json_builder_add_int_value(json, media->index); json_builder_set_member_name(json, "type"); json_builder_add_string_value(json, media->type.s); json_builder_set_member_name(json, "interface"); json_builder_add_string_value(json, media->logical_intf->name.s); if (media->protocol) { json_builder_set_member_name(json, "protocol"); json_builder_add_string_value(json, media->protocol->name); } json_builder_set_member_name(json, "status"); if (MEDIA_ISSET(media, SEND)) { if (MEDIA_ISSET(media, RECV)) json_builder_add_string_value(json, "sendrecv"); else json_builder_add_string_value(json, "sendonly"); } else { if (MEDIA_ISSET(media, RECV)) json_builder_add_string_value(json, "recvonly"); else json_builder_add_string_value(json, "inactive"); } struct packet_stream *ps = media->streams.head ? media->streams.head->data : NULL; if (ps) mqtt_stream_stats(ps, json); } static void mqtt_full_call(call_t *call, JsonBuilder *json) { rwlock_lock_r(&call->master_lock); log_info_call(call); mqtt_call_stats(call, json); json_builder_set_member_name(json, "legs"); json_builder_begin_array(json); for (__auto_type l = call->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; json_builder_begin_object(json); mqtt_monologue_stats(ml, json); json_builder_set_member_name(json, "medias"); json_builder_begin_array(json); for (unsigned int k = 0; k < ml->medias->len; k++) { struct call_media *media = ml->medias->pdata[k]; if (!media) continue; json_builder_begin_object(json); mqtt_media_stats(media, json); json_builder_end_object(json); } json_builder_end_array(json); json_builder_end_object(json); } json_builder_end_array(json); rwlock_unlock_r(&call->master_lock); log_info_pop(); } static void mqtt_global_stats(JsonBuilder *json) { g_autoptr(stats_metric_q) metrics = statistics_gather_metrics(&interface_rate_stats); for (__auto_type l = metrics->head; l; l = l->next) { stats_metric *m = l->data; if (!m->label) continue; if (m->is_bracket && l == metrics->head) // skip initial { continue; if (m->is_bracket && l == metrics->tail) // skip final } continue; if (m->value_short) { json_builder_set_member_name(json, m->label); if (m->is_int) json_builder_add_int_value(json, m->int_value); else if (m->is_double) json_builder_add_double_value(json, m->double_value); else if (m->value_raw) json_builder_add_string_value(json, m->value_raw); else json_builder_add_string_value(json, m->value_short); } else if (m->is_bracket) { if (m->is_close_bracket) { if (m->is_brace) json_builder_end_object(json); else json_builder_end_array(json); } else { if (m->is_brace) json_builder_begin_object(json); else json_builder_begin_array(json); } } else json_builder_set_member_name(json, m->label); } } INLINE JsonBuilder *__mqtt_timer_intro(void) { JsonBuilder *json = json_builder_new(); json_builder_begin_object(json); json_builder_set_member_name(json, "timestamp"); json_builder_add_double_value(json, (double) rtpe_now.tv_sec + (double) rtpe_now.tv_usec / 1000000.0); return json; } INLINE void __mqtt_timer_outro(JsonBuilder *json) { json_builder_end_object(json); mqtt_publish(glib_json_print(json)); } void mqtt_timer_run_media(call_t *call, struct call_media *media) { JsonBuilder *json = __mqtt_timer_intro(); rwlock_lock_r(&call->master_lock); log_info_call(call); mqtt_call_stats(call, json); mqtt_monologue_stats(media->monologue, json); mqtt_media_stats(media, json); rwlock_unlock_r(&call->master_lock); log_info_pop(); __mqtt_timer_outro(json); } void mqtt_timer_run_call(call_t *call) { JsonBuilder *json = __mqtt_timer_intro(); mqtt_full_call(call, json); __mqtt_timer_outro(json); } void mqtt_timer_run_global(void) { JsonBuilder *json = __mqtt_timer_intro(); mqtt_global_stats(json); json_builder_set_member_name(json, "calls"); json_builder_begin_array(json); ITERATE_CALL_LIST_START(CALL_ITERATOR_MQTT, call); json_builder_begin_object(json); mqtt_full_call(call, json); json_builder_end_object(json); ITERATE_CALL_LIST_NEXT_END(call); json_builder_end_array(json); __mqtt_timer_outro(json); } void mqtt_timer_run_summary(void) { JsonBuilder *json = __mqtt_timer_intro(); mqtt_global_stats(json); __mqtt_timer_outro(json); } #endif rtpengine-mr12.5.1.22/daemon/nftables.c000066400000000000000000000477421474347554000176140ustar00rootroot00000000000000#include "nftables.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "helpers.h" #include "xt_RTPENGINE.h" struct iterate_callbacks { // called for each expression int (*parse_expr)(struct nftnl_expr *e, void *data); // called after all expressions have been parsed void (*rule_final)(struct nftnl_rule *r, struct iterate_callbacks *); // called after all rules have been iterated const char *(*iterate_final)(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq, struct iterate_callbacks *); // common arguments const char *chain; const char *base_chain; // scratch area for rule callbacks, set to zero for every rule union { bool rule_matched; } rule_scratch; // scratch area for rule iterating union { GQueue handles; bool rule_matched; } iterate_scratch; }; struct add_rule_callbacks { const char *(*callback)(struct nftnl_rule *, int family, struct add_rule_callbacks *); const char *chain; const char *base_chain; int table; bool append; }; typedef struct nftnl_expr _nftnl_expr; typedef struct nftnl_rule _nftnl_rule; typedef struct nftnl_chain _nftnl_chain; typedef struct nftnl_table _nftnl_table; typedef struct mnl_socket _mnl_socket; G_DEFINE_AUTOPTR_CLEANUP_FUNC(_nftnl_expr, nftnl_expr_free); G_DEFINE_AUTOPTR_CLEANUP_FUNC(_nftnl_rule, nftnl_rule_free); G_DEFINE_AUTOPTR_CLEANUP_FUNC(_nftnl_chain, nftnl_chain_free); G_DEFINE_AUTOPTR_CLEANUP_FUNC(_nftnl_table, nftnl_table_free); G_DEFINE_AUTOPTR_CLEANUP_FUNC(_mnl_socket, mnl_socket_close); static int match_immediate(struct nftnl_expr *e, void *data) { struct iterate_callbacks *callbacks = data; uint32_t len; const char *n = nftnl_expr_get(e, NFTNL_EXPR_NAME, &len); // match jumps to our configured chain if (!strcmp(n, "immediate")) { n = nftnl_expr_get(e, NFTNL_EXPR_IMM_CHAIN, &len); if (n && !strcmp(n, callbacks->chain)) callbacks->rule_scratch.rule_matched = true; } return 0; } static int match_rtpe(struct nftnl_expr *e, void *data) { struct iterate_callbacks *callbacks = data; uint32_t len; const char *n = nftnl_expr_get(e, NFTNL_EXPR_NAME, &len); // match top-level targets if (!strcmp(n, "target")) { n = nftnl_expr_get(e, NFTNL_EXPR_TG_NAME, &len); if (n && !strcmp(n, "RTPENGINE")) callbacks->rule_scratch.rule_matched = true; } return 0; } static int match_immediate_rtpe(struct nftnl_expr *e, void *data) { match_immediate(e, data); match_rtpe(e, data); return 0; } static void check_matched_queue(struct nftnl_rule *r, struct iterate_callbacks *callbacks) { if (!callbacks->rule_scratch.rule_matched) return; uint64_t handle = nftnl_rule_get_u64(r, NFTNL_RULE_HANDLE); g_queue_push_tail(&callbacks->iterate_scratch.handles, g_slice_dup(uint64_t, &handle)); } static void check_matched_flag(struct nftnl_rule *r, struct iterate_callbacks *callbacks) { if (callbacks->rule_scratch.rule_matched) callbacks->iterate_scratch.rule_matched = true; } static int nftables_do_rule(const struct nlmsghdr *nlh, void *data) { struct iterate_callbacks *callbacks = data; g_autoptr(_nftnl_rule) r = nftnl_rule_alloc(); if (!r) return MNL_CB_ERROR; if (nftnl_rule_nlmsg_parse(nlh, r) < 0) return MNL_CB_OK; memset(&callbacks->rule_scratch, 0, sizeof(callbacks->rule_scratch)); if (nftnl_expr_foreach(r, callbacks->parse_expr, callbacks) < 0) return MNL_CB_OK; if (callbacks->rule_final) callbacks->rule_final(r, callbacks); return MNL_CB_OK; } static const char *__read_response(struct mnl_socket *nl, uint32_t seq, mnl_cb_t cb_data, void *data, const char *err1, const char *err2) { uint32_t portid = mnl_socket_get_portid(nl); char buf[MNL_SOCKET_BUFFER_SIZE]; while (true) { int ret = mnl_socket_recvfrom(nl, buf, sizeof(buf)); if (ret < 0) return err1; if (ret == 0) break; ret = mnl_cb_run(buf, ret, 0, portid, cb_data, data); if (ret < 0) return err2; if (ret == 0) break; } return NULL; } // macro for customised error strings #define read_response(instance, ...) __read_response(__VA_ARGS__, \ "failed to receive from netlink socket for " instance, \ "error returned from netlink for " instance) static const char *iterate_rules(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq, struct iterate_callbacks *callbacks) { g_autoptr(_nftnl_rule) r = nftnl_rule_alloc(); if (!r) return "failed to allocate rule for iteration"; nftnl_rule_set_u32(r, NFTNL_RULE_FAMILY, family); nftnl_rule_set_str(r, NFTNL_RULE_TABLE, "filter"); nftnl_rule_set_str(r, NFTNL_RULE_CHAIN, chain); char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh = nftnl_nlmsg_build_hdr(buf, NFT_MSG_GETRULE, family, NLM_F_DUMP, *seq); nftnl_rule_nlmsg_build_payload(nlh, r); if (mnl_socket_sendto(nl, nlh, nlh->nlmsg_len) < 0) return "failed to write to netlink socket for iteration"; const char *err = read_response("iterate rules", nl, *seq, nftables_do_rule, callbacks); if (err) return err; if (callbacks->iterate_final) err = callbacks->iterate_final(nl, family, chain, seq, callbacks); if (err) return err; return NULL; } static bool set_rule_handle(struct nftnl_rule *r, void *data) { uint64_t *handle = data; nftnl_rule_set_u64(r, NFTNL_RULE_HANDLE, *handle); return true; } static const char *__batch_request(struct mnl_socket *nl, int family, uint32_t *seq, uint16_t type, uint16_t flags, union { void (*table_fn)(struct nlmsghdr *, const struct nftnl_table *); void (*rule_fn)(struct nlmsghdr *, struct nftnl_rule *); void (*chain_fn)(struct nlmsghdr *, const struct nftnl_chain *); void (*generic_fn)(struct nlmsghdr *, void *); } __attribute__ ((__transparent_union__)) build_payload, void *ptr, const char *err1, const char *err2, const char *err3) { char buf[MNL_SOCKET_BUFFER_SIZE]; struct mnl_nlmsg_batch *batch = mnl_nlmsg_batch_start(buf, sizeof(buf)); nftnl_batch_begin(mnl_nlmsg_batch_current(batch), (*seq)++); mnl_nlmsg_batch_next(batch); uint32_t req_seq = *seq; struct nlmsghdr *nlh = nftnl_nlmsg_build_hdr(mnl_nlmsg_batch_current(batch), type, family, flags | NLM_F_ACK, (*seq)++); build_payload.generic_fn(nlh, ptr); mnl_nlmsg_batch_next(batch); nftnl_batch_end(mnl_nlmsg_batch_current(batch), (*seq)++); mnl_nlmsg_batch_next(batch); if (mnl_socket_sendto(nl, mnl_nlmsg_batch_head(batch), mnl_nlmsg_batch_size(batch)) < 0) return err1; mnl_nlmsg_batch_stop(batch); return __read_response(nl, req_seq, NULL, NULL, err2, err3); } // macro for customised error strings #define batch_request(instance, ...) __batch_request(__VA_ARGS__, \ "failed to write to netlink socket for " instance, \ "failed to receive from netlink socket for " instance, \ "error returned from netlink for " instance) static const char *delete_rules(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq, bool (*callback)(struct nftnl_rule *r, void *data), void *data) { g_autoptr(_nftnl_rule) r = nftnl_rule_alloc(); if (!r) return "failed to allocate rule for deletion"; nftnl_rule_set_u32(r, NFTNL_RULE_FAMILY, family); nftnl_rule_set_str(r, NFTNL_RULE_TABLE, "filter"); nftnl_rule_set_str(r, NFTNL_RULE_CHAIN, chain); if (callback) { if (!callback(r, data)) return NULL; } return batch_request("delete rule", nl, family, seq, NFT_MSG_DELRULE, 0, nftnl_rule_nlmsg_build_payload, r); } static const char *iterate_delete_rules(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq, struct iterate_callbacks *callbacks) { while (callbacks->iterate_scratch.handles.length) { uint64_t *handle = g_queue_pop_head(&callbacks->iterate_scratch.handles); // transfer to stack and free uint64_t h = *handle; g_slice_free(uint64_t, handle); const char *err = delete_rules(nl, family, chain, seq, set_rule_handle, &h); if (err) return err; } return NULL; } static const char *local_input_chain(struct nftnl_chain *c) { nftnl_chain_set_u32(c, NFTNL_CHAIN_HOOKNUM, NF_INET_LOCAL_IN); nftnl_chain_set_u32(c, NFTNL_CHAIN_PRIO, 0); nftnl_chain_set_u32(c, NFTNL_CHAIN_POLICY, NF_ACCEPT); return NULL; } static int nftables_do_chain(const struct nlmsghdr *nlh, void *data) { bool *exists = data; g_autoptr(_nftnl_chain) c = nftnl_chain_alloc(); if (!c) return MNL_CB_ERROR; if (nftnl_chain_nlmsg_parse(nlh, c) < 0) return MNL_CB_OK; *exists = true; return MNL_CB_OK; } static const char *chain_exists(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq) { g_autoptr(_nftnl_chain) c = nftnl_chain_alloc(); nftnl_chain_set_str(c, NFTNL_CHAIN_TABLE, "filter"); nftnl_chain_set_str(c, NFTNL_CHAIN_NAME, chain); char buf[MNL_SOCKET_BUFFER_SIZE]; struct nlmsghdr *nlh = nftnl_nlmsg_build_hdr(buf, NFT_MSG_GETCHAIN, family, NLM_F_ACK, *seq); nftnl_chain_nlmsg_build_payload(nlh, c); if (mnl_socket_sendto(nl, nlh, nlh->nlmsg_len) < 0) return "failed to write to netlink socket for chain exists"; bool exists = false; const char *err = read_response("get chain", nl, *seq, nftables_do_chain, &exists); if (err) return err; return exists ? NULL : "doesn't exist"; } static const char *add_chain(struct mnl_socket *nl, int family, const char *chain, uint32_t *seq, const char *(*callback)(struct nftnl_chain *)) { if (chain_exists(nl, family, chain, seq) == NULL) return NULL; g_autoptr(_nftnl_chain) c = nftnl_chain_alloc(); if (!c) return "failed to allocate chain for adding"; nftnl_chain_set_u32(c, NFTNL_CHAIN_FAMILY, family); nftnl_chain_set_str(c, NFTNL_CHAIN_TABLE, "filter"); nftnl_chain_set_str(c, NFTNL_CHAIN_NAME, chain); if (callback) { const char *err = callback(c); if (err) return err; } return batch_request("add chain", nl, family, seq, NFT_MSG_NEWCHAIN, NLM_F_CREATE, nftnl_chain_nlmsg_build_payload, c); } static const char *add_rule(struct mnl_socket *nl, int family, uint32_t *seq, struct add_rule_callbacks callbacks) { g_autoptr(_nftnl_rule) r = nftnl_rule_alloc(); if (!r) return "failed to allocate rule for adding"; nftnl_rule_set_u32(r, NFTNL_RULE_FAMILY, family); nftnl_rule_set_str(r, NFTNL_RULE_TABLE, "filter"); const char *err = callbacks.callback(r, family, &callbacks); if (err) return err; return batch_request("add rule", nl, family, seq, NFT_MSG_NEWRULE, (callbacks.append ? NLM_F_APPEND : 0) | NLM_F_CREATE, nftnl_rule_nlmsg_build_payload, r); } static const char *udp_filter(struct nftnl_rule *r, int family) { g_autoptr(_nftnl_expr) e = NULL; static const uint8_t proto = IPPROTO_UDP; e = nftnl_expr_alloc("payload"); if (!e) return "failed to allocate payload expr for UDP filter"; nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_BASE, NFT_PAYLOAD_NETWORK_HEADER); nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_DREG, NFT_REG_1); if (family == NFPROTO_IPV4) nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_OFFSET, offsetof(struct iphdr, protocol)); else if (family == NFPROTO_IPV6) nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_OFFSET, offsetof(struct ip6_hdr, ip6_nxt)); else return "unsupported address family for UDP filter"; nftnl_expr_set_u32(e, NFTNL_EXPR_PAYLOAD_LEN, sizeof(proto)); nftnl_rule_add_expr(r, e); e = NULL; e = nftnl_expr_alloc("cmp"); if (!e) return "failed to allocate cmp expr for UDP filter"; nftnl_expr_set_u32(e, NFTNL_EXPR_CMP_SREG, NFT_REG_1); nftnl_expr_set_u32(e, NFTNL_EXPR_CMP_OP, NFT_CMP_EQ); nftnl_expr_set(e, NFTNL_EXPR_CMP_DATA, &proto, sizeof(proto)); nftnl_rule_add_expr(r, e); e = NULL; e = nftnl_expr_alloc("counter"); if (!e) return "failed to allocate counter expr for UDP filter"; nftnl_rule_add_expr(r, e); e = NULL; return NULL; } static const char *input_immediate(struct nftnl_rule *r, int family, struct add_rule_callbacks *callbacks) { nftnl_rule_set_str(r, NFTNL_RULE_CHAIN, callbacks->base_chain); const char *err = udp_filter(r, family); if (err) return err; g_autoptr(_nftnl_expr) e = nftnl_expr_alloc("immediate"); if (!e) return "failed to allocate immediate expr"; nftnl_expr_set_u32(e, NFTNL_EXPR_IMM_DREG, 0); nftnl_expr_set_u32(e, NFTNL_EXPR_IMM_VERDICT, NFT_JUMP); nftnl_expr_set_str(e, NFTNL_EXPR_IMM_CHAIN, callbacks->chain); nftnl_rule_add_expr(r, e); e = NULL; return NULL; } static const char *rtpe_target_base(struct nftnl_rule *r, struct add_rule_callbacks *callbacks) { g_autoptr(_nftnl_expr) e = nftnl_expr_alloc("target"); if (!e) return "failed to allocate target expr for RTPENGINE"; nftnl_expr_set_str(e, NFTNL_EXPR_TG_NAME, "RTPENGINE"); nftnl_expr_set_u32(e, NFTNL_EXPR_TG_REV, 0); struct xt_rtpengine_info *info = malloc(sizeof(*info)); if (!info) return "failed to allocate target info for RTPENGINE"; *info = (__typeof__(*info)) { .id = callbacks->table }; nftnl_expr_set(e, NFTNL_EXPR_TG_INFO, info, sizeof(*info)); nftnl_rule_add_expr(r, e); e = NULL; return NULL; } static const char *rtpe_target(struct nftnl_rule *r, int family, struct add_rule_callbacks *callbacks) { nftnl_rule_set_str(r, NFTNL_RULE_CHAIN, callbacks->chain); const char *err = rtpe_target_base(r, callbacks); if (err) return err; g_autoptr(_nftnl_expr) e = nftnl_expr_alloc("counter"); if (!e) return "failed to allocate counter expr for RTPENGINE"; nftnl_rule_add_expr(r, e); e = NULL; return NULL; } static const char *rtpe_target_filter(struct nftnl_rule *r, int family, struct add_rule_callbacks *callbacks) { nftnl_rule_set_str(r, NFTNL_RULE_CHAIN, callbacks->chain); const char *err = rtpe_target_base(r, callbacks); if (err) return err; err = udp_filter(r, family); if (err) return err; return NULL; } static const char *delete_chain(struct mnl_socket *nl, int family, uint32_t *seq, const char *chain) { g_autoptr(_nftnl_chain) c = nftnl_chain_alloc(); if (!c) return "failed to allocate chain for deletion"; nftnl_chain_set_u32(c, NFTNL_RULE_FAMILY, family); nftnl_chain_set_str(c, NFTNL_CHAIN_TABLE, "filter"); nftnl_chain_set_str(c, NFTNL_CHAIN_NAME, chain); return batch_request("delete chain", nl, family, seq, NFT_MSG_DELCHAIN, 0, nftnl_chain_nlmsg_build_payload, c); } static const char *nftables_shutdown_family(struct mnl_socket *nl, int family, uint32_t *seq, const char *chain, const char *base_chain, nftables_args *dummy) { const char *err; if (!base_chain || strcmp(base_chain, "none")) { // clean up rules in legacy `INPUT` chain err = iterate_rules(nl, family, "INPUT", seq, &(struct iterate_callbacks) { .parse_expr = match_immediate_rtpe, .chain = chain, .rule_final = check_matched_queue, .iterate_final = iterate_delete_rules, }); if (err) return err; // clean up rules in `input` chain err = iterate_rules(nl, family, "input", seq, &(struct iterate_callbacks) { .parse_expr = match_immediate_rtpe, .chain = chain, .rule_final = check_matched_queue, .iterate_final = iterate_delete_rules, }); if (err) return err; } if (base_chain && strcmp(base_chain, "none")) { // clean up rules in other base chain chain if any err = iterate_rules(nl, family, base_chain, seq, &(struct iterate_callbacks) { .parse_expr = match_immediate_rtpe, .chain = chain, .rule_final = check_matched_queue, .iterate_final = iterate_delete_rules, }); if (err) return err; } // clear out custom chain if it already exists err = delete_rules(nl, family, chain, seq, NULL, NULL); if (err) { if (errno != ENOENT) // ignore trying to delete stuff that doesn't exist return err; } err = delete_chain(nl, family, seq, chain); if (err) { if (errno != ENOENT && errno != EBUSY) // ignore trying to delete stuff that doesn't exist return err; } return NULL; } static const char *add_table(struct mnl_socket *nl, int family, uint32_t *seq) { g_autoptr(_nftnl_table) t = nftnl_table_alloc(); if (!t) return "failed to allocate table"; nftnl_table_set_u32(t, NFTNL_TABLE_FAMILY, family); nftnl_table_set_str(t, NFTNL_TABLE_NAME, "filter"); return batch_request("add table", nl, family, seq, NFT_MSG_NEWTABLE, NLM_F_CREATE, nftnl_table_nlmsg_build_payload, t); } static const char *nftables_setup_family(struct mnl_socket *nl, int family, uint32_t *seq, const char *chain, const char *base_chain, nftables_args *args) { const char *err = nftables_shutdown_family(nl, family, seq, chain, base_chain, NULL); if (err) return err; // create the table in case it doesn't exist err = add_table(nl, family, seq); if (err) return err; if (base_chain) { // add custom chain err = add_chain(nl, family, chain, seq, NULL); if (err) return err; if (strcmp(base_chain, "none")) { // make sure we have a local input base chain err = add_chain(nl, family, base_chain, seq, local_input_chain); if (err) return err; // add jump rule from input base chain to custom chain err = add_rule(nl, family, seq, (struct add_rule_callbacks) { .callback = input_immediate, .chain = chain, .base_chain = base_chain, .append = args->append, }); if (err) return err; } // add rule for kernel forwarding return add_rule(nl, family, seq, (struct add_rule_callbacks) { .callback = rtpe_target, .chain = chain, .table = args->table, }); } else { // create custom base chain err = add_chain(nl, family, chain, seq, local_input_chain); if (err) return err; // add rule for kernel forwarding return add_rule(nl, family, seq, (struct add_rule_callbacks) { .callback = rtpe_target_filter, .chain = chain, .table = args->table, }); } } static const char *nftables_do(const char *chain, const char *base_chain, const char *(*do_func)(struct mnl_socket *nl, int family, uint32_t *seq, const char *chain, const char *base_chain, nftables_args *args), nftables_args *args) { if (!chain || !chain[0]) return NULL; if (!base_chain[0]) base_chain = NULL; g_autoptr(_mnl_socket) nl = mnl_socket_open(NETLINK_NETFILTER); if (!nl) return "failed to open netlink socket"; if (mnl_socket_bind(nl, 0, MNL_SOCKET_AUTOPID) < 0) return "failed to bind netlink socket"; uint32_t seq = time(NULL); const char *err = NULL; if (args->family == 0 || args->family == NFPROTO_IPV4) err = do_func(nl, NFPROTO_IPV4, &seq, chain, base_chain, args); if (err) return err; if (args->family == 0 || args->family == NFPROTO_IPV6) err = do_func(nl, NFPROTO_IPV6, &seq, chain, base_chain, args); if (err) return err; return NULL; } static const char *nftables_check_family(struct mnl_socket *nl, int family, uint32_t *seq, const char *chain, const char *base_chain, nftables_args *dummy) { // look for our custom module rule in the specified chain struct iterate_callbacks callbacks = { .parse_expr = match_rtpe, .rule_final = check_matched_flag, }; iterate_rules(nl, family, chain, seq, &callbacks); if (!callbacks.iterate_scratch.rule_matched) return "RTPENGINE rule not found"; // look for a rule to jump from a base chain to our custom chain callbacks = (__typeof__(callbacks)) { .parse_expr = match_immediate, .chain = chain, .rule_final = check_matched_flag, }; iterate_rules(nl, family, "INPUT", seq, &callbacks); iterate_rules(nl, family, "input", seq, &callbacks); if (base_chain && strcmp(base_chain, "none")) iterate_rules(nl, family, base_chain, seq, &callbacks); if (!callbacks.iterate_scratch.rule_matched) return "immediate-goto rule not found"; return NULL; } const char *nftables_setup(const char *chain, const char *base_chain, nftables_args args) { return nftables_do(chain, base_chain, nftables_setup_family, &args); } const char *nftables_shutdown(const char *chain, const char *base_chain, nftables_args args) { return nftables_do(chain, base_chain, nftables_shutdown_family, &args); } int nftables_check(const char *chain, const char *base_chain, nftables_args args) { const char *err = nftables_do(chain, base_chain, nftables_check_family, &args); if (err) { printf("Netfilter rules check NOT successful: %s\n", err); return 1; } printf("Netfilter rules check SUCCESSFUL\n"); return 0; } rtpengine-mr12.5.1.22/daemon/recording.c000066400000000000000000001032611474347554000177570ustar00rootroot00000000000000#include "recording.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "call.h" #include "main.h" #include "kernel.h" #include "bencode.h" #include "rtplib.h" #include "cdr.h" #include "log.h" #include "call_interfaces.h" #include "media_player.h" #include "xt_RTPENGINE.h" struct rec_pcap_format { int linktype; int headerlen; void (*header)(unsigned char *, struct packet_stream *); }; static int check_main_spool_dir(const char *spoolpath); static char *recording_setup_file(struct recording *recording, const str *); static char *meta_setup_file(struct recording *recording, const str *); static int append_meta_chunk(struct recording *recording, const char *buf, unsigned int buflen, const char *label_fmt, ...) __attribute__((format(printf,4,5))); static int vappend_meta_chunk(struct recording *recording, const char *buf, unsigned int buflen, const char *label_fmt, va_list ap); // all methods static int create_spool_dir_all(const char *spoolpath); static void init_all(call_t *call); static void sdp_after_all(struct recording *recording, GString *str, struct call_monologue *ml, enum call_opmode opmode); static void dump_packet_all(struct media_packet *mp, const str *s); static void finish_all(call_t *call, bool discard); // pcap methods static int rec_pcap_create_spool_dir(const char *dirpath); static void rec_pcap_init(call_t *); static void sdp_after_pcap(struct recording *, GString *str, struct call_monologue *, enum call_opmode opmode); static void dump_packet_pcap(struct media_packet *mp, const str *s); static void finish_pcap(call_t *, bool discard); static void response_pcap(struct recording *, bencode_item_t *); // proc methods static void proc_init(call_t *); static void sdp_before_proc(struct recording *, const str *, struct call_monologue *, enum call_opmode); static void sdp_after_proc(struct recording *, GString *str, struct call_monologue *, enum call_opmode opmode); static void meta_chunk_proc(struct recording *, const char *, const str *); static void update_flags_proc(call_t *call, bool streams); static void finish_proc(call_t *, bool discard); static void dump_packet_proc(struct media_packet *mp, const str *s); static void init_stream_proc(struct packet_stream *); static void setup_stream_proc(struct packet_stream *); static void setup_media_proc(struct call_media *); static void setup_monologue_proc(struct call_monologue *); static void kernel_info_proc(struct packet_stream *, struct rtpengine_target_info *); static void rec_pcap_eth_header(unsigned char *, struct packet_stream *); #define append_meta_chunk_str(r, str, f...) append_meta_chunk(r, (str)->s, (str)->len, f) #define vappend_meta_chunk_str(r, str, f, ap) vappend_meta_chunk(r, (str)->s, (str)->len, f, ap) #define append_meta_chunk_s(r, str, f...) append_meta_chunk(r, (str), strlen(str), f) #define append_meta_chunk_null(r,f...) append_meta_chunk(r, "", 0, f) const struct recording_method methods[] = { { .name = "pcap", .kernel_support = 0, .create_spool_dir = rec_pcap_create_spool_dir, .init_struct = rec_pcap_init, .sdp_before = NULL, .sdp_after = sdp_after_pcap, .meta_chunk = NULL, .update_flags = NULL, .dump_packet = dump_packet_pcap, .finish = finish_pcap, .init_stream_struct = NULL, .setup_stream = NULL, .setup_media = NULL, .setup_monologue = NULL, .stream_kernel_info = NULL, .response = response_pcap, }, { .name = "proc", .kernel_support = 1, .create_spool_dir = check_main_spool_dir, .init_struct = proc_init, .sdp_before = sdp_before_proc, .sdp_after = sdp_after_proc, .meta_chunk = meta_chunk_proc, .update_flags = update_flags_proc, .dump_packet = dump_packet_proc, .finish = finish_proc, .init_stream_struct = init_stream_proc, .setup_stream = setup_stream_proc, .setup_media = setup_media_proc, .setup_monologue = setup_monologue_proc, .stream_kernel_info = kernel_info_proc, .response = NULL, }, { .name = "all", .kernel_support = 0, .create_spool_dir = create_spool_dir_all, .init_struct = init_all, .sdp_before = sdp_before_proc, .sdp_after = sdp_after_all, .meta_chunk = meta_chunk_proc, .update_flags = update_flags_proc, .dump_packet = dump_packet_all, .finish = finish_all, .init_stream_struct = init_stream_proc, .setup_stream = setup_stream_proc, .setup_media = setup_media_proc, .setup_monologue = setup_monologue_proc, .stream_kernel_info = kernel_info_proc, .response = response_pcap, }, }; static const struct rec_pcap_format rec_pcap_format_raw = { .linktype = DLT_RAW, .headerlen = 0, }; static const struct rec_pcap_format rec_pcap_format_eth = { .linktype = DLT_EN10MB, .headerlen = 14, .header = rec_pcap_eth_header, }; // Global file reference to the spool directory. static char *spooldir = NULL; const struct recording_method *selected_recording_method; static const struct rec_pcap_format *rec_pcap_format; /** * Free RTP Engine filesystem settings and structure. * Check for and free the RTP Engine spool directory. */ void recording_fs_free(void) { g_clear_pointer(&spooldir, free); } /** * Initialize RTP Engine filesystem settings and structure. * Check for or create the RTP Engine spool directory. */ void recording_fs_init(const char *spoolpath, const char *method_str, const char *format_str) { int i; // Whether or not to fail if the spool directory does not exist. if (spoolpath == NULL || spoolpath[0] == '\0') return; for (i = 0; i < G_N_ELEMENTS(methods); i++) { if (!strcmp(methods[i].name, method_str)) { selected_recording_method = &methods[i]; goto found; } } ilog(LOG_ERROR, "Recording method '%s' not supported", method_str); return; found: if(!strcmp("raw", format_str)) rec_pcap_format = &rec_pcap_format_raw; else if(!strcmp("eth", format_str)) rec_pcap_format = &rec_pcap_format_eth; else { ilog(LOG_ERR, "Invalid value for recording format \"%s\".", format_str); exit(-1); } spooldir = strdup(spoolpath); int path_len = strlen(spooldir); // Get rid of trailing "/" if it exists. Other code adds that in when needed. if (spooldir[path_len-1] == '/') { spooldir[path_len-1] = '\0'; } if (!_rm_ret(create_spool_dir, spooldir)) { ilog(LOG_ERR, "Error while setting up spool directory \"%s\".", spooldir); ilog(LOG_ERR, "Please run `mkdir %s` and start rtpengine again.", spooldir); exit(-1); } } static int check_create_dir(const char *dir, const char *desc, mode_t creat_mode) { struct stat info; if (stat(dir, &info) != 0) { if (!creat_mode) { ilog(LOG_WARN, "%s directory \"%s\" does not exist.", desc, dir); return FALSE; } ilog(LOG_INFO, "Creating %s directory \"%s\".", desc, dir); // coverity[toctou : FALSE] if (mkdir(dir, creat_mode) == 0) return TRUE; ilog(LOG_ERR, "Failed to create %s directory \"%s\": %s", desc, dir, strerror(errno)); return FALSE; } if(!S_ISDIR(info.st_mode)) { ilog(LOG_ERR, "%s file exists, but \"%s\" is not a directory.", desc, dir); return FALSE; } return TRUE; } static int check_main_spool_dir(const char *spoolpath) { return check_create_dir(spoolpath, "spool", 0700); } /** * Sets up the spool directory for RTP Engine. * If the directory does not exist, return FALSE. * If the directory exists, but "$spoolpath/metadata" or "$spoolpath/pcaps" * exist as non-directory files, return FALSE. * Otherwise, return TRUE. * * Create the "metadata" and "pcaps" directories if they are not there. */ static int rec_pcap_create_spool_dir(const char *spoolpath) { int spool_good = TRUE; if (!check_main_spool_dir(spoolpath)) return FALSE; // Spool directory exists. Make sure it has inner directories. int path_len = strlen(spoolpath); char meta_path[path_len + 10]; char rec_path[path_len + 7]; char tmp_path[path_len + 5]; snprintf(meta_path, sizeof(meta_path), "%s/metadata", spoolpath); snprintf(rec_path, sizeof(rec_path), "%s/pcaps", spoolpath); snprintf(tmp_path, sizeof(tmp_path), "%s/tmp", spoolpath); if (!check_create_dir(meta_path, "metadata", 0777)) spool_good = FALSE; if (!check_create_dir(rec_path, "pcaps", 0777)) spool_good = FALSE; if (!check_create_dir(tmp_path, "tmp", 0777)) spool_good = FALSE; return spool_good; } // lock must be held static void update_call_field(call_t *call, str *dst_field, const str *src_field, const char *meta_fmt, ...) { if (!call) return; if (src_field && src_field->len && str_cmp_str(src_field, dst_field)) call_str_cpy(call, dst_field, src_field); if (call->recording && dst_field->len) { va_list ap; va_start(ap, meta_fmt); vappend_meta_chunk_str(call->recording, dst_field, meta_fmt, ap); va_end(ap); } } // lock must be held void update_metadata_call(call_t *call, const sdp_ng_flags *flags) { if (flags && flags->skip_recording_db) CALL_SET(call, NO_REC_DB); if (call->recording) { // must come first because METADATA triggers update to DB if (CALL_ISSET(call, NO_REC_DB)) append_meta_chunk_null(call->recording, "SKIP_DATABASE"); } update_call_field(call, &call->metadata, flags ? &flags->metadata : NULL, "METADATA"); update_call_field(call, &call->recording_file, flags ? &flags->recording_file : NULL, "RECORDING_FILE"); update_call_field(call, &call->recording_path, flags ? &flags->recording_path : NULL, "RECORDING_PATH"); update_call_field(call, &call->recording_pattern, flags ? &flags->recording_pattern : NULL, "RECORDING_PATTERN"); } // lock must be held void update_metadata_monologue_only(struct call_monologue *ml, const sdp_ng_flags *flags) { if (!ml) return; update_call_field(ml->call, &ml->metadata, flags ? &flags->metadata : NULL, "METADATA-TAG %u", ml->unique_id); update_call_field(ml->call, &ml->label, NULL, "LABEL %u", ml->unique_id); } void update_metadata_monologue(struct call_monologue *ml, const sdp_ng_flags *flags) { if (!ml) return; update_metadata_monologue_only(ml, flags); update_metadata_call(ml->call, flags); } // lock must be held static void update_flags_proc(call_t *call, bool streams) { append_meta_chunk_null(call->recording, "RECORDING %u", CALL_ISSET(call, RECORDING_ON)); append_meta_chunk_null(call->recording, "FORWARDING %u", CALL_ISSET(call, REC_FORWARDING)); update_metadata_call(call, NULL); if (!streams) return; for (__auto_type l = call->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; append_meta_chunk_null(call->recording, "STREAM %u FORWARDING %u", ps->unique_id, ML_ISSET(ps->media->monologue, REC_FORWARDING) ? 1 : 0); } } static void recording_update_flags(call_t *call, bool streams) { _rm(update_flags, call, streams); } static void rec_setup_monologue(struct call_monologue *ml) { recording_setup_monologue(ml); if (ml->rec_player) { bool ret = media_player_start(ml->rec_player); if (!ret) ilog(LOG_WARN, "Failed to start media player for recording announcement"); } } // lock must be held void recording_start_daemon(call_t *call) { if (call->recording) { // already active recording_update_flags(call, true); return; } if (!spooldir) { ilog(LOG_ERR, "Call recording requested, but no spool directory configured"); return; } ilog(LOG_NOTICE, "Turning on call recording."); call->recording = g_slice_alloc0(sizeof(struct recording)); g_autoptr(char) escaped_callid = g_uri_escape_string(call->callid.s, NULL, 0); if (!call->recording_meta_prefix.len) { const int rand_bytes = 8; char rand_str[rand_bytes * 2 + 1]; rand_hex_str(rand_str, rand_bytes); g_autoptr(char) meta_prefix = g_strdup_printf("%s-%s", escaped_callid, rand_str); call_str_cpy(call, &call->recording_meta_prefix, &STR_INIT(meta_prefix)); call_str_cpy(call, &call->recording_random_tag, &STR_CONST_INIT(rand_str)); } _rm(init_struct, call); // update main call flags (global recording/forwarding on/off) to prevent recording // features from being started when the stream info (through setup_stream) is // propagated if recording is actually off recording_update_flags(call, false); // if recording has been turned on after initial call setup, we must walk // through all related objects and initialize the recording stuff. if this // function is called right at the start of the call, all of the following // is essentially a no-op for (__auto_type l = call->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; rec_setup_monologue(ml); } for (__auto_type l = call->medias.head; l; l = l->next) { struct call_media *m = l->data; recording_setup_media(m); } for (__auto_type l = call->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; recording_setup_stream(ps); __unkernelize(ps, "recording start"); __reset_sink_handlers(ps); } recording_update_flags(call, true); } // lock must be held void recording_start(call_t *call) { CALL_SET(call, RECORDING_ON); recording_start_daemon(call); } // lock must be held void recording_stop_daemon(call_t *call) { if (!call->recording) return; // check if all recording options are disabled if (CALL_ISSET(call, RECORDING_ON) || CALL_ISSET(call, REC_FORWARDING)) { recording_update_flags(call, true); return; } for (__auto_type l = call->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; if (ML_ISSET(ml, REC_FORWARDING)) { recording_update_flags(call, true); return; } } ilog(LOG_NOTICE, "Turning off call recording."); recording_finish(call, false); } // lock must be held void recording_stop(call_t *call) { CALL_CLEAR(call, RECORDING_ON); recording_stop_daemon(call); } // lock must be held void recording_pause(call_t *call) { CALL_CLEAR(call, RECORDING_ON); if (!call->recording) return; ilog(LOG_NOTICE, "Pausing call recording."); recording_update_flags(call, true); } // lock must be held void recording_discard(call_t *call) { CALL_CLEAR(call, RECORDING_ON); if (!call->recording) return; ilog(LOG_NOTICE, "Turning off call recording and discarding outputs."); recording_finish(call, true); } /** * * Controls the setting of recording variables on a `call_t *`. * Sets the `record_call` value on the `struct call`, initializing the * recording struct if necessary. * If we do not yet have a PCAP file associated with the call, create it * and write its file URL to the metadata file. * * Returns a boolean for whether or not the call is being recorded. */ void detect_setup_recording(call_t *call, const sdp_ng_flags *flags) { if (!flags) return; const str *recordcall = &flags->record_call_str; if (!str_cmp(recordcall, "yes") || !str_cmp(recordcall, "on") || flags->record_call) recording_start(call); else if (!str_cmp(recordcall, "no") || !str_cmp(recordcall, "off")) recording_stop(call); else if (!str_cmp(recordcall, "discard") || flags->discard_recording) recording_discard(call); else if (recordcall->len != 0) ilog(LOG_INFO, "\"record-call\" flag "STR_FORMAT" is invalid flag.", STR_FMT(recordcall)); } static void rec_pcap_init(call_t *call) { struct recording *recording = call->recording; // Wireshark starts at packet index 1, so we start there, too recording->pcap.packet_num = 1; mutex_init(&recording->pcap.recording_lock); meta_setup_file(recording, &call->recording_meta_prefix); // set up pcap file char *pcap_path = recording_setup_file(recording, &call->recording_meta_prefix); if (pcap_path != NULL && recording->pcap.recording_pdumper != NULL && recording->pcap.meta_fp) { // Write the location of the PCAP file to the metadata file fprintf(recording->pcap.meta_fp, "%s\n\n", pcap_path); } } static char *file_path_str(const char *id, const char *prefix, const char *suffix) { return g_strdup_printf("%s%s%s%s", spooldir, prefix, id, suffix); } /** * Create a call metadata file in a temporary location. * Attaches the filepath and the file pointer to the call struct. */ static char *meta_setup_file(struct recording *recording, const str *meta_prefix) { if (spooldir == NULL) { // No spool directory was created, so we cannot have metadata files. return NULL; } char *meta_filepath = file_path_str(meta_prefix->s, "/tmp/rtpengine-meta-", ".tmp"); recording->pcap.meta_filepath = meta_filepath; FILE *mfp = fopen(meta_filepath, "w"); // coverity[check_return : FALSE] chmod(meta_filepath, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH); if (mfp == NULL) { ilog(LOG_ERROR, "Could not open metadata file: %s%s%s", FMT_M(meta_filepath)); g_clear_pointer(&recording->pcap.meta_filepath, free); return NULL; } recording->pcap.meta_fp = mfp; ilog(LOG_DEBUG, "Wrote metadata file to temporary path: %s%s%s", FMT_M(meta_filepath)); return meta_filepath; } /** * Write out a block of SDP to the metadata file. */ static void sdp_after_pcap(struct recording *recording, GString *s, struct call_monologue *ml, enum call_opmode opmode) { FILE *meta_fp = recording->pcap.meta_fp; if (!meta_fp) return; int meta_fd = fileno(meta_fp); // File pointers buffer data, whereas direct writing using the file // descriptor does not. Make sure to flush any unwritten contents // so the file contents appear in order. if (ml->label.len) { fprintf(meta_fp, "\nLabel: " STR_FORMAT, STR_FMT(&ml->label)); } fprintf(meta_fp, "\nTimestamp started ms: "); fprintf(meta_fp, "%.3lf", ml->started.tv_sec*1000.0+ml->started.tv_usec/1000.0); fprintf(meta_fp, "\nSDP mode: "); fprintf(meta_fp, "%s", get_opmode_text(opmode)); fprintf(meta_fp, "\nSDP before RTP packet: %" PRIu64 "\n\n", recording->pcap.packet_num); fflush(meta_fp); if (write(meta_fd, s->str, s->len) <= 0) ilog(LOG_WARN, "Error writing SDP body to metadata file: %s", strerror(errno)); } /** * Writes metadata to metafile, closes file, and renames it to finished location. */ static void rec_pcap_meta_finish_file(call_t *call) { // This should usually be called from a place that has the call->master_lock struct recording *recording = call->recording; if (recording == NULL || recording->pcap.meta_fp == NULL) { ilog(LOG_INFO, "Trying to clean up recording meta file without a file pointer opened."); return; } // Print start timestamp and end timestamp // YYYY-MM-DDThh:mm:ss time_t start = call->created.tv_sec; time_t end = rtpe_now.tv_sec; char timebuffer[20]; struct tm timeinfo; struct timeval *terminate; terminate = &(((struct call_monologue *)call->monologues.head->data)->terminated); fprintf(recording->pcap.meta_fp, "\nTimestamp terminated ms(first monologue): %.3lf", terminate->tv_sec*1000.0 + terminate->tv_usec/1000.0); if (localtime_r(&start, &timeinfo) == NULL) { ilog(LOG_ERROR, "Cannot get start local time, while cleaning up recording meta file: %s", strerror(errno)); } else { strftime(timebuffer, 20, "%FT%T", &timeinfo); fprintf(recording->pcap.meta_fp, "\n\ncall start time: %s\n", timebuffer); } if (localtime_r(&end, &timeinfo) == NULL) { ilog(LOG_ERROR, "Cannot get end local time, while cleaning up recording meta file: %s", strerror(errno)); } else { strftime(timebuffer, 20, "%FT%T", &timeinfo); fprintf(recording->pcap.meta_fp, "call end time: %s\n", timebuffer); } // Print metadata if (call->metadata.len) fprintf(recording->pcap.meta_fp, "\n\n"STR_FORMAT"\n", STR_FMT(&call->metadata)); fclose(recording->pcap.meta_fp); recording->pcap.meta_fp = NULL; // Get the filename (in between its directory and the file extension) // and move it to the finished file location. // Rename extension to ".txt". int fn_len; char *meta_filename = strrchr(recording->pcap.meta_filepath, '/'); char *meta_ext = NULL; if (meta_filename == NULL) { meta_filename = recording->pcap.meta_filepath; } else { meta_filename = meta_filename + 1; } // We can always expect a file extension meta_ext = strrchr(meta_filename, '.'); fn_len = meta_ext - meta_filename; int prefix_len = strlen(spooldir) + 10; // constant for "/metadata/" suffix int ext_len = 4; // for ".txt" char new_metapath[prefix_len + fn_len + ext_len + 1]; snprintf(new_metapath, prefix_len+fn_len+1, "%s/metadata/%s", spooldir, meta_filename); snprintf(new_metapath + prefix_len+fn_len, ext_len+1, ".txt"); int return_code = rename(recording->pcap.meta_filepath, new_metapath); if (return_code != 0) { ilog(LOG_ERROR, "Could not move metadata file \"%s\" to \"%s/metadata/\"", recording->pcap.meta_filepath, spooldir); } else { ilog(LOG_INFO, "Moved metadata file \"%s\" to \"%s/metadata\"", recording->pcap.meta_filepath, spooldir); } mutex_destroy(&recording->pcap.recording_lock); g_clear_pointer(&recording->pcap.meta_filepath, g_free); } /** * Closes and discards all output files. */ static void rec_pcap_meta_discard_file(call_t *call) { struct recording *recording = call->recording; if (recording == NULL || recording->pcap.meta_fp == NULL) return; fclose(recording->pcap.meta_fp); recording->pcap.meta_fp = NULL; unlink(recording->pcap.recording_path); unlink(recording->pcap.meta_filepath); g_clear_pointer(&recording->pcap.meta_filepath, free); } /** * Generate a random PCAP filepath to write recorded RTP stream. * Returns path to created file. */ static char *recording_setup_file(struct recording *recording, const str *meta_prefix) { char *recording_path = NULL; if (!spooldir) return NULL; if (recording->pcap.recording_pd || recording->pcap.recording_pdumper) return NULL; recording_path = file_path_str(meta_prefix->s, "/pcaps/", ".pcap"); recording->pcap.recording_path = recording_path; recording->pcap.recording_pd = pcap_open_dead(rec_pcap_format->linktype, 65535); recording->pcap.recording_pdumper = pcap_dump_open(recording->pcap.recording_pd, recording_path); if (recording->pcap.recording_pdumper == NULL) { pcap_close(recording->pcap.recording_pd); recording->pcap.recording_pd = NULL; ilog(LOG_INFO, "Failed to write recording file: %s", recording_path); } else { ilog(LOG_INFO, "Writing recording file: %s", recording_path); } return recording_path; } /** * Flushes PCAP file, closes the dumper and descriptors, and frees object memory. */ static void rec_pcap_recording_finish_file(struct recording *recording) { if (recording->pcap.recording_pdumper != NULL) { pcap_dump_flush(recording->pcap.recording_pdumper); pcap_dump_close(recording->pcap.recording_pdumper); g_clear_pointer(&recording->pcap.recording_path, free); } if (recording->pcap.recording_pd != NULL) { pcap_close(recording->pcap.recording_pd); } } // "out" must be at least inp->len + MAX_PACKET_HEADER_LEN bytes static unsigned int fake_ip_header(unsigned char *out, struct media_packet *mp, const str *inp) { endpoint_t *src_endpoint, *dst_endpoint; if (!rtpe_config.rec_egress) { src_endpoint = &mp->fsin; dst_endpoint = &mp->sfd->socket.local; } else { src_endpoint = &mp->sfd->socket.local; dst_endpoint = &mp->fsin; } unsigned int hdr_len = endpoint_packet_header(out, src_endpoint, dst_endpoint, inp->len); assert(hdr_len <= MAX_PACKET_HEADER_LEN); // payload memcpy(out + hdr_len, inp->s, inp->len); return hdr_len + inp->len; } static void rec_pcap_eth_header(unsigned char *pkt, struct packet_stream *stream) { memset(pkt, 0, 14); uint16_t *hdr16 = (void *) pkt; hdr16[6] = htons(stream->selected_sfd->socket.local.address.family->ethertype); } /** * Write out a PCAP packet with payload string. * A fair amount extraneous of packet data is spoofed. */ static void stream_pcap_dump(struct media_packet *mp, const str *s) { pcap_dumper_t *pdumper = mp->call->recording->pcap.recording_pdumper; if (!pdumper) return; unsigned char pkt[s->len + MAX_PACKET_HEADER_LEN + rec_pcap_format->headerlen]; unsigned int pkt_len = fake_ip_header(pkt + rec_pcap_format->headerlen, mp, s) + rec_pcap_format->headerlen; if (rec_pcap_format->header) rec_pcap_format->header(pkt, mp->stream); // Set up PCAP packet header struct pcap_pkthdr header; ZERO(header); header.ts = rtpe_now; header.caplen = pkt_len; header.len = pkt_len; // Write the packet to the PCAP file // Casting quiets compiler warning. pcap_dump((unsigned char *)pdumper, &header, pkt); } static void dump_packet_pcap(struct media_packet *mp, const str *s) { if (ML_ISSET(mp->media->monologue, NO_RECORDING)) return; struct recording *recording = mp->call->recording; mutex_lock(&recording->pcap.recording_lock); stream_pcap_dump(mp, s); recording->pcap.packet_num++; mutex_unlock(&recording->pcap.recording_lock); } static void finish_pcap(call_t *call, bool discard) { rec_pcap_recording_finish_file(call->recording); if (!discard) rec_pcap_meta_finish_file(call); else rec_pcap_meta_discard_file(call); } static void response_pcap(struct recording *recording, bencode_item_t *output) { if (!recording->pcap.recording_path) return; bencode_item_t *recordings = bencode_dictionary_add_list(output, "recordings"); bencode_list_add_string(recordings, recording->pcap.recording_path); } void recording_finish(call_t *call, bool discard) { if (!call || !call->recording) return; __call_unkernelize(call, "recording finished"); struct recording *recording = call->recording; _rm(finish, call, discard); g_slice_free1(sizeof(*(recording)), recording); call->recording = NULL; } static int open_proc_meta_file(struct recording *recording) { int fd; fd = open(recording->proc.meta_filepath, O_WRONLY | O_APPEND | O_CREAT, 0666); if (fd == -1) { ilog(LOG_ERR, "Failed to open recording metadata file '%s' for writing: %s", recording->proc.meta_filepath, strerror(errno)); return -1; } return fd; } static int vappend_meta_chunk_iov(struct recording *recording, struct iovec *in_iov, int iovcnt, unsigned int str_len, const char *label_fmt, va_list ap) { int fd = open_proc_meta_file(recording); if (fd == -1) return -1; char label[128]; int lablen = vsnprintf(label, sizeof(label), label_fmt, ap); char infix[128]; int inflen = snprintf(infix, sizeof(infix), "\n%u:\n", str_len); // use writev for an atomic write struct iovec iov[iovcnt + 3]; iov[0].iov_base = label; iov[0].iov_len = lablen; iov[1].iov_base = infix; iov[1].iov_len = inflen; memcpy(&iov[2], in_iov, iovcnt * sizeof(*iov)); iov[iovcnt + 2].iov_base = "\n\n"; iov[iovcnt + 2].iov_len = 2; if (writev(fd, iov, iovcnt + 3) != (str_len + lablen + inflen + 2)) ilog(LOG_WARN, "writev return value incorrect"); close(fd); // this triggers the inotify return 0; } static int vappend_meta_chunk(struct recording *recording, const char *buf, unsigned int buflen, const char *label_fmt, va_list ap) { struct iovec iov; iov.iov_base = (void *) buf; iov.iov_len = buflen; int ret = vappend_meta_chunk_iov(recording, &iov, 1, buflen, label_fmt, ap); return ret; } static int append_meta_chunk(struct recording *recording, const char *buf, unsigned int buflen, const char *label_fmt, ...) { va_list ap; if (!recording->proc.meta_filepath) return -1; va_start(ap, label_fmt); int ret = vappend_meta_chunk(recording, buf, buflen, label_fmt, ap); va_end(ap); return ret; } static void proc_init(call_t *call) { struct recording *recording = call->recording; recording->proc.call_idx = UNINIT_IDX; if (!kernel.is_open) { ilog(LOG_WARN, "Call recording through /proc interface requested, but kernel table not open"); return; } recording->proc.call_idx = kernel_add_call(call->recording_meta_prefix.s); if (recording->proc.call_idx == UNINIT_IDX) { ilog(LOG_ERR, "Failed to add call to kernel recording interface: %s", strerror(errno)); return; } ilog(LOG_DEBUG, "kernel call idx is %u", recording->proc.call_idx); recording->proc.meta_filepath = file_path_str(call->recording_meta_prefix.s, "/", ".meta"); unlink(recording->proc.meta_filepath); // start fresh XXX good idea? append_meta_chunk_str(recording, &call->callid, "CALL-ID"); append_meta_chunk_s(recording, call->recording_meta_prefix.s, "PARENT"); append_meta_chunk_s(recording, call->recording_random_tag.s, "RANDOM_TAG"); } static void sdp_before_proc(struct recording *recording, const str *sdp, struct call_monologue *ml, enum call_opmode opmode) { append_meta_chunk_str(recording, sdp, "SDP from %u before %s", ml->unique_id, get_opmode_text(opmode)); } static void sdp_after_proc(struct recording *recording, GString *s, struct call_monologue *ml, enum call_opmode opmode) { append_meta_chunk(recording, s->str, s->len, "SDP from %u after %s", ml->unique_id, get_opmode_text(opmode)); } static void finish_proc(call_t *call, bool discard) { struct recording *recording = call->recording; if (!kernel.is_open) return; if (recording->proc.call_idx != UNINIT_IDX) { kernel_del_call(recording->proc.call_idx); recording->proc.call_idx = UNINIT_IDX; } for (__auto_type l = call->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; ps->recording.proc.stream_idx = UNINIT_IDX; } const char *unlink_fn = recording->proc.meta_filepath; g_autoptr(char) discard_fn = NULL; if (discard) { discard_fn = g_strdup_printf("%s.DISCARD", recording->proc.meta_filepath); int ret = rename(recording->proc.meta_filepath, discard_fn); if (ret) ilog(LOG_ERR, "Failed to rename metadata file \"%s\" to \"%s\": %s", recording->proc.meta_filepath, discard_fn, strerror(errno)); unlink_fn = discard_fn; } int ret = unlink(unlink_fn); if (ret) ilog(LOG_ERR, "Failed to delete metadata file \"%s\": %s", unlink_fn, strerror(errno)); g_clear_pointer(&recording->proc.meta_filepath, free); } static void init_stream_proc(struct packet_stream *stream) { stream->recording.proc.stream_idx = UNINIT_IDX; } static void setup_stream_proc(struct packet_stream *stream) { struct call_media *media = stream->media; struct call_monologue *ml = media->monologue; call_t *call = stream->call; struct recording *recording = call->recording; char buf[128]; int len; if (!recording) return; if (!kernel.is_open) return; if (stream->recording.proc.stream_idx != UNINIT_IDX) return; if (ML_ISSET(ml, NO_RECORDING)) return; len = snprintf(buf, sizeof(buf), "TAG %u MEDIA %u TAG-MEDIA %u COMPONENT %u FLAGS %" PRIu64 " MEDIA-SDP-ID %i", ml->unique_id, media->unique_id, media->index, stream->component, atomic64_get_na(&stream->ps_flags), media->media_sdp_id); append_meta_chunk(recording, buf, len, "STREAM %u details", stream->unique_id); len = snprintf(buf, sizeof(buf), "tag-%u-media-%u-component-%u-%s-id-%u", ml->unique_id, media->index, stream->component, (PS_ISSET(stream, RTCP) && !PS_ISSET(stream, RTP)) ? "RTCP" : "RTP", stream->unique_id); stream->recording.proc.stream_idx = kernel_add_intercept_stream(recording->proc.call_idx, buf); if (stream->recording.proc.stream_idx == UNINIT_IDX) { ilog(LOG_ERR, "Failed to add stream to kernel recording interface: %s", strerror(errno)); return; } ilog(LOG_DEBUG, "kernel stream idx is %u", stream->recording.proc.stream_idx); append_meta_chunk(recording, buf, len, "STREAM %u interface", stream->unique_id); } static void setup_monologue_proc(struct call_monologue *ml) { call_t *call = ml->call; struct recording *recording = call->recording; if (!recording) return; if (ML_ISSET(ml, NO_RECORDING)) return; append_meta_chunk_str(recording, &ml->tag, "TAG %u", ml->unique_id); update_metadata_monologue_only(ml, NULL); } static void setup_media_proc(struct call_media *media) { call_t *call = media->call; struct recording *recording = call->recording; if (!recording) return; if (ML_ISSET(media->monologue, NO_RECORDING)) return; append_meta_chunk_null(recording, "MEDIA %u PTIME %i", media->unique_id, media->ptime); codecs_ht_iter iter; t_hash_table_iter_init(&iter, media->codecs.codecs); rtp_payload_type *pt; while (t_hash_table_iter_next(&iter, NULL, &pt)) { append_meta_chunk(recording, pt->encoding_with_params.s, pt->encoding_with_params.len, "MEDIA %u PAYLOAD TYPE %u", media->unique_id, pt->payload_type); append_meta_chunk(recording, pt->format_parameters.s, pt->format_parameters.len, "MEDIA %u FMTP %u", media->unique_id, pt->payload_type); } } static void dump_packet_proc(struct media_packet *mp, const str *s) { struct packet_stream *stream = mp->stream; if (stream->recording.proc.stream_idx == UNINIT_IDX) return; struct rtpengine_command_packet *cmd; unsigned char pkt[sizeof(*cmd) + s->len + MAX_PACKET_HEADER_LEN]; cmd = (void *) pkt; cmd->cmd = REMG_PACKET; //remsg->packet.call_idx = stream->call->recording->proc.call_idx; // unused cmd->packet.stream_idx = stream->recording.proc.stream_idx; unsigned int pkt_len = fake_ip_header(cmd->packet.data, mp, s); pkt_len += sizeof(*cmd); int ret = write(kernel.fd, pkt, pkt_len); if (ret < 0) ilog(LOG_ERR, "Failed to submit packet to kernel intercepted stream: %s", strerror(errno)); } static void kernel_info_proc(struct packet_stream *stream, struct rtpengine_target_info *reti) { if (!stream->call->recording) return; if (stream->recording.proc.stream_idx == UNINIT_IDX) return; ilog(LOG_DEBUG, "enabling kernel intercept with stream idx %u", stream->recording.proc.stream_idx); reti->do_intercept = 1; reti->intercept_stream_idx = stream->recording.proc.stream_idx; } static void meta_chunk_proc(struct recording *recording, const char *label, const str *data) { append_meta_chunk_str(recording, data, "%s", label); } static int create_spool_dir_all(const char *spoolpath) { int ret1, ret2; ret1 = rec_pcap_create_spool_dir(spoolpath); ret2 = check_main_spool_dir(spoolpath); if (ret1 == FALSE || ret2 == FALSE) { return FALSE; } return TRUE; } static void init_all(call_t *call) { rec_pcap_init(call); proc_init(call); } static void sdp_after_all(struct recording *recording, GString *s, struct call_monologue *ml, enum call_opmode opmode) { sdp_after_pcap(recording, s, ml, opmode); sdp_after_proc(recording, s, ml, opmode); } static void dump_packet_all(struct media_packet *mp, const str *s) { dump_packet_pcap(mp, s); dump_packet_proc(mp, s); } static void finish_all(call_t *call, bool discard) { finish_pcap(call, discard); finish_proc(call, discard); } rtpengine-mr12.5.1.22/daemon/redis.c000066400000000000000000002455061474347554000171220ustar00rootroot00000000000000#include "redis.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "helpers.h" #include "call.h" #include "log.h" #include "log_funcs.h" #include "str.h" #include "crypto.h" #include "dtls.h" #include "recording.h" #include "rtplib.h" #include "str.h" #include "ssrc.h" #include "main.h" #include "codec.h" typedef union { GQueue *q; stream_fd_q *sfds_q; medias_arr *ma; sfd_intf_list_q *siq; packet_stream_q *psq; endpoint_map_q *emq; } callback_arg_t __attribute__ ((__transparent_union__)); struct redis *rtpe_redis; struct redis *rtpe_redis_write; struct redis *rtpe_redis_write_disabled; struct redis *rtpe_redis_notify; INLINE redisReply *redis_expect(int type, redisReply *r) { if (!r) return NULL; if (r->type != type) { freeReplyObject(r); return NULL; } return r; } #if __YCM /* format checking in YCM editor */ INLINE void redis_pipe(struct redis *r, const char *fmt, ...) __attribute__((format(printf,2,3))); INLINE redisReply *redis_get(struct redis *r, int type, const char *fmt, ...) __attribute__((format(printf,3,4))); static int redisCommandNR(redisContext *r, const char *fmt, ...) __attribute__((format(printf,2,3))); #define PB "%.*s" #define STR(x) (int) (x)->len, (x)->s #define STR_R(x) (int) (x)->len, (x)->str #define S_LEN(s,l) (int) (l), (s) #else #define PB "%b" #define STR(x) (x)->s, (size_t) (x)->len #define STR_R(x) (x)->str, (size_t) (x)->len #define S_LEN(s,l) (s), (size_t) (l) #endif #define REDIS_FMT(x) (int) (x)->len, (x)->str // To protect against a restore race condition: Keyspace notifications are set up // before existing calls are restored (restore_thread). Therefore the following // scenario is possible: // NOTIF THREAD: receives SET, creates call // RESTORE THREAD: executes KEYS * // NOTIF THREAD: receives another SET: // NOTIF THREAD: does call_destroy(), which: // adds ports to late-release list // RESTORE THREAD: comes across call ID, does GET // RESTORE THREAD: creates new call // RESTORE THREAD: wants to allocate ports, but they're still in use // NOTIF THREAD: now does release_closed_sockets() static mutex_t redis_ports_release_lock = MUTEX_STATIC_INIT; static cond_t redis_ports_release_cond = COND_STATIC_INIT; static int redis_ports_release_balance = 0; // negative = releasers, positive = allocators static int redis_check_conn(struct redis *r); static void json_restore_call(struct redis *r, const str *id, bool foreign); static int redis_connect(struct redis *r, int wait); static int json_build_ssrc(struct call_monologue *ml, JsonReader *root_reader); // mutually exclusive multi-A multi-B lock // careful with deadlocks against redis->lock static void redis_ports_release_push(bool inc) { LOCK(&redis_ports_release_lock); if (inc) { while (redis_ports_release_balance < 0) cond_wait(&redis_ports_release_cond, &redis_ports_release_lock); } else { while (redis_ports_release_balance > 0) cond_wait(&redis_ports_release_cond, &redis_ports_release_lock); } redis_ports_release_balance += (inc ? 1 : -1); } static void redis_ports_release_pop(bool inc) { LOCK(&redis_ports_release_lock); redis_ports_release_balance -= (inc ? 1 : -1); if (redis_ports_release_balance == 0) cond_broadcast(&redis_ports_release_cond); } static void redis_pipe(struct redis *r, const char *fmt, ...) { va_list ap; if (!r->ctx) { ilog(LOG_ERROR, "Unable to pipe redis command. No redis context"); return; } va_start(ap, fmt); redisvAppendCommand(r->ctx, fmt, ap); va_end(ap); r->pipeline++; } static redisReply *redis_get(struct redis *r, int type, const char *fmt, ...) { va_list ap; redisReply *ret; if (!r->ctx) { ilog(LOG_ERROR, "Unable to get redis reply. No redis context"); return NULL; } va_start(ap, fmt); ret = redis_expect(type, redisvCommand(r->ctx, fmt, ap)); va_end(ap); return ret; } static int redisCommandNR(redisContext *r, const char *fmt, ...) { va_list ap; redisReply *ret; int i = 0; if (!r) { ilog(LOG_ERROR, "Unable to send redis command. No redis context"); return -1; } va_start(ap, fmt); ret = redisvCommand(r, fmt, ap); va_end(ap); if (!ret) return -1; if (ret->type == REDIS_REPLY_ERROR) { i = -1; ilog(LOG_WARNING, "Redis returned error to command '%s': %s", fmt, ret->str); } freeReplyObject(ret); return i; } /* called with r->lock held */ static int redis_check_type(struct redis *r, char *key, char *suffix, char *type) { redisReply *rp; if (!r->ctx) { ilog(LOG_ERROR, "Unable to check redis reply type. No redis context"); return -1; } rp = redisCommand(r->ctx, "TYPE %s%s", key, suffix ? : ""); if (!rp) return -1; if (rp->type != REDIS_REPLY_STATUS) { freeReplyObject(rp); return -1; } if (strcmp(rp->str, type) && strcmp(rp->str, "none")) redisCommandNR(r->ctx, "DEL %s%s", key, suffix ? : ""); freeReplyObject(rp); return 0; } /* called with r->lock held */ static void redis_consume(struct redis *r) { redisReply *rp; if (!r->ctx) { ilog(LOG_ERROR, "Unable to consume pipelined replies. No redis context"); r->pipeline = 0; return; } while (r->pipeline) { if (redisGetReply(r->ctx, (void **) &rp) == REDIS_OK) freeReplyObject(rp); r->pipeline--; } } int redis_set_timeout(struct redis* r, int timeout) { struct timeval tv_cmd; if (!timeout) return 0; tv_cmd.tv_sec = (int) timeout / 1000; tv_cmd.tv_usec = (int) (timeout % 1000) * 1000; if (redisSetTimeout(r->ctx, tv_cmd)) return -1; ilog(LOG_INFO, "Setting timeout for Redis commands to %d milliseconds",timeout); return 0; } int redis_reconnect(struct redis* r) { int rval; LOCK(&r->lock); rval = redis_connect(r,1); if (rval) r->state = REDIS_STATE_DISCONNECTED; return rval; } // struct must be locked or single thread static int redis_select_db(struct redis *r, int db) { if (db == r->current_db) return 0; if (redisCommandNR(r->ctx, "SELECT %i", db)) return -1; r->current_db = db; return 0; } /* called with r->lock held if necessary */ static int redis_connect(struct redis *r, int wait) { struct timeval tv; redisReply *rp; char *s; int cmd_timeout, connect_timeout; if (r->ctx) redisFree(r->ctx); r->ctx = NULL; r->current_db = -1; connect_timeout = atomic_get_na(&rtpe_config.redis_connect_timeout); cmd_timeout = atomic_get_na(&rtpe_config.redis_cmd_timeout); tv.tv_sec = (int) connect_timeout / 1000; tv.tv_usec = (int) (connect_timeout % 1000) * 1000; r->ctx = redisConnectWithTimeout(r->host, r->endpoint.port, tv); if (!r->ctx) goto err; if (r->ctx->err) goto err2; if (redis_set_timeout(r,cmd_timeout)) goto err2; if (r->auth) { if (redisCommandNR(r->ctx, "AUTH %s", r->auth)) goto err2; } else { if (redisCommandNR(r->ctx, "PING")) goto err2; } if (redis_select_db(r, r->db)) goto err2; while (wait-- >= 0) { ilog(LOG_INFO, "Asking Redis whether it's master or slave..."); rp = redisCommand(r->ctx, "INFO"); if (!rp) { goto err2; } s = strstr(rp->str, "role:"); if (!s) { goto err3; } if (!memcmp(s, "role:master", 11) || !memcmp(s, "role:active-replica", 19)) { if (r->role == MASTER_REDIS_ROLE || r->role == ANY_REDIS_ROLE) { ilog(LOG_INFO, "Connected to Redis %s in master mode", endpoint_print_buf(&r->endpoint)); goto done; } else if (r->role == SLAVE_REDIS_ROLE) { ilog(LOG_INFO, "Connected to Redis %s in master mode, but wanted mode is slave; retrying...", endpoint_print_buf(&r->endpoint)); goto next; } } else if (!memcmp(s, "role:slave", 10)) { if (r->role == SLAVE_REDIS_ROLE || r->role == ANY_REDIS_ROLE) { ilog(LOG_INFO, "Connected to Redis %s in slave mode", endpoint_print_buf(&r->endpoint)); goto done; } else if (r->role == MASTER_REDIS_ROLE) { ilog(LOG_INFO, "Connected to Redis %s in slave mode, but wanted mode is master; retrying...", endpoint_print_buf(&r->endpoint)); goto next; } } else { goto err3; } next: freeReplyObject(rp); usleep(1000000); } goto err2; done: freeReplyObject(rp); redis_check_type(r, "calls", NULL, "set"); return 0; err3: freeReplyObject(rp); err2: if (r->ctx->err) { rlog(LOG_ERR, "Failed to connect to Redis %s, error: %s", endpoint_print_buf(&r->endpoint), r->ctx->errstr); return -1; } redisFree(r->ctx); r->ctx = NULL; err: rlog(LOG_ERR, "Failed to connect to Redis %s", endpoint_print_buf(&r->endpoint)); return -1; } void on_redis_notification(redisAsyncContext *actx, void *reply, void *privdata) { struct redis *r = 0; call_t *c = NULL; str callid; str keyspace_id; if (!rtpe_redis_notify) { rlog(LOG_ERROR, "A redis notification has been received but no redis_notify database found"); return; } r = rtpe_redis_notify; mutex_lock(&r->lock); redisReply *rr = (redisReply*)reply; if (reply == NULL || rr->type != REDIS_REPLY_ARRAY) goto err; for (int j = 0; j < rr->elements; j++) { rlog(LOG_DEBUG, "Redis-Notify: %u) %s%s%s\n", j, FMT_M(rr->element[j]->str)); } if (rr->elements != 4) goto err; // format: __keyspace@__: str_init_len(&keyspace_id, rr->element[2]->str, rr->element[2]->len); if (str_shift_cmp(&keyspace_id, "__keyspace@")) goto err; // extract char *endp; r->db = strtoul(keyspace_id.s, &endp, 10); if (endp == keyspace_id.s || *endp != '_') goto err; if (str_shift(&keyspace_id, endp - keyspace_id.s + 3)) goto err; if (keyspace_id.s[-1] != ':') goto err; // now at callid = keyspace_id; if (redis_check_conn(r) == REDIS_STATE_DISCONNECTED) goto err; // select the right db for restoring the call if (redis_select_db(r, r->db)) { if (r->ctx && r->ctx->err) rlog(LOG_ERROR, "Redis error: %s", r->ctx->errstr); redisFree(r->ctx); r->ctx = NULL; goto err; } if (strncmp(rr->element[3]->str,"set",3)==0) { c = call_get(&callid); if (c) { rwlock_unlock_w(&c->master_lock); if (IS_FOREIGN_CALL(c)) { c->redis_hosted_db = rtpe_redis_write->db; // don't delete from foreign DB // redis_notify->lock is held redis_ports_release_push(true); call_destroy(c); release_closed_sockets(); redis_ports_release_pop(true); } else { rlog(LOG_WARN, "Redis-Notifier: Ignoring SET received for OWN call: " STR_FORMAT "\n", STR_FMT(&callid)); goto err; } } redis_select_db(r, r->db); mutex_unlock(&r->lock); // unlock before restoring calls to avoid deadlock in case err happens json_restore_call(r, &callid, true); mutex_lock(&r->lock); } if (strncmp(rr->element[3]->str,"del",3)==0) { c = call_get(&callid); if (!c) { rlog(LOG_NOTICE, "Redis-Notifier: DEL did not find call with callid: " STR_FORMAT "\n", STR_FMT(&callid)); goto err; } rwlock_unlock_w(&c->master_lock); if (!IS_FOREIGN_CALL(c)) { rlog(LOG_WARN, "Redis-Notifier: Ignoring DEL received for an OWN call: " STR_FORMAT "\n", STR_FMT(&callid)); goto err; } // redis_notify->lock is held redis_ports_release_push(true); call_destroy(c); release_closed_sockets(); redis_ports_release_pop(true); } err: if (c) // because of call_get(..) obj_put(c); mutex_unlock(&r->lock); release_closed_sockets(); log_info_reset(); } void redis_delete_async_context_connect(const redisAsyncContext *redis_delete_async_context, int status) { if (status == REDIS_ERR) { rtpe_redis_write->async_ctx = NULL; if (redis_delete_async_context->errstr) { rlog(LOG_ERROR, "redis_delete_async_context_connect error %d: %s", redis_delete_async_context->err, redis_delete_async_context->errstr); } else { rlog(LOG_ERROR, "redis_delete_async_context_connect error %d: no errstr", redis_delete_async_context->err); } } else if (status == REDIS_OK) { rlog(LOG_NOTICE, "redis_delete_async_context_connect initiated by user"); } else { rlog(LOG_ERROR, "redis_delete_async_context_connect invalid status code %d", status); } } void redis_delete_async_context_disconnect(const redisAsyncContext *redis_delete_async_context, int status) { rtpe_redis_write->async_ctx = NULL; if (status == REDIS_ERR) { if (redis_delete_async_context->errstr) { rlog(LOG_ERROR, "redis_delete_async_context_disconnect error %d: %s", redis_delete_async_context->err, redis_delete_async_context->errstr); } else { rlog(LOG_ERROR, "redis_delete_async_context_disconnect error %d: no errstr", redis_delete_async_context->err); } } else if (status == REDIS_OK) { rlog(LOG_NOTICE, "redis_delete_async_context_disconnect initiated by user"); } else { rlog(LOG_ERROR, "redis_delete_async_context_disconnect invalid status code %d", status); } } void redis_notify_async_context_disconnect(const redisAsyncContext *redis_notify_async_context, int status) { if (status == REDIS_ERR) { if (redis_notify_async_context->errstr) { rlog(LOG_ERROR, "redis_notify_async_context_disconnect error %d on context free: %s", redis_notify_async_context->err, redis_notify_async_context->errstr); } else { rlog(LOG_ERROR, "redis_notify_async_context_disconnect error %d on context free: no errstr", redis_notify_async_context->err); } } else if (status == REDIS_OK) { rlog(LOG_NOTICE, "redis_notify_async_context_disconnect initiated by user"); } else { rlog(LOG_ERROR, "redis_notify_async_context_disconnect invalid status code %d", status); } } // connect_cb = connect callback, disconnect_cb = disconnect callback int redis_async_context_alloc(struct redis *r, void *connect_cb, void *disconnect_cb) { // sanity checks if (!r) { rlog(LOG_ERROR, "redis_async_context_alloc: NULL r"); return -1; } else { rlog(LOG_DEBUG, "redis_async_context_alloc: Use Redis %s", endpoint_print_buf(&r->endpoint)); } // alloc async context r->async_ctx = redisAsyncConnect(r->host, r->endpoint.port); if (!r->async_ctx) { rlog(LOG_ERROR, "redis_async_context_alloc: can't create new"); return -1; } if (r->async_ctx->err) { rlog(LOG_ERROR, "redis_async_context_alloc: can't create new error: %s", r->async_ctx->errstr); return -1; } // callbacks async context if (redisAsyncSetConnectCallback(r->async_ctx, connect_cb) != REDIS_OK) { rlog(LOG_ERROR, "redis_async_context_alloc: can't set connect callback"); return -1; } if (redisAsyncSetDisconnectCallback(r->async_ctx, disconnect_cb) != REDIS_OK) { rlog(LOG_ERROR, "redis_async_context_alloc: can't set disconnect callback"); return -1; } rlog(LOG_DEBUG, "redis_async_context_alloc: Success"); return 0; } int redis_async_event_base_action(struct redis *r, enum event_base_action action) { // sanity checks if (!r) { rlog(LOG_ERR, "redis_async_event_base_action: NULL r"); return -1; } else { rlog(LOG_DEBUG, "redis_async_event_base_action: Use Redis %s", endpoint_print_buf(&r->endpoint)); } if (!r->async_ev && action != EVENT_BASE_ALLOC) { rlog(LOG_NOTICE, "redis_async_event_base_action: async_ev is NULL on event base action %d", action); return -1; } // exec event base action switch (action) { case EVENT_BASE_ALLOC: r->async_ev = event_base_new(); if (!r->async_ev) { rlog(LOG_ERROR, "redis_async_event_base_action: Fail alloc async_ev"); return -1; } else { rlog(LOG_DEBUG, "redis_async_event_base_action: Success alloc async_ev"); } break; case EVENT_BASE_FREE: event_base_free(r->async_ev); rlog(LOG_DEBUG, "redis_async_event_base_action: Success free async_ev"); break; case EVENT_BASE_LOOPBREAK: if (event_base_loopbreak(r->async_ev)) { rlog(LOG_ERROR, "redis_async_event_base_action: Fail loopbreak async_ev"); return -1; } else { rlog(LOG_DEBUG, "redis_async_event_base_action: Success loopbreak async_ev"); } break; default: rlog(LOG_ERROR, "redis_async_event_base_action: No event base action found: %d", action); return -1; } return 0; } int redis_notify_subscribe_action(struct redis *r, enum subscribe_action action, int keyspace) { if (!r->async_ctx) { rlog(LOG_ERROR, "redis_notify_async_context is NULL on subscribe action"); return -1; } if (r->async_ctx->err) { rlog(LOG_ERROR, "redis_notify_async_context error on subscribe action: %s", r->async_ctx->errstr); return -1; } switch (action) { case SUBSCRIBE_KEYSPACE: if (redisAsyncCommand(r->async_ctx, on_redis_notification, NULL, "psubscribe __keyspace@%i__:*", keyspace) != REDIS_OK) { rlog(LOG_ERROR, "Fail redisAsyncCommand on JSON SUBSCRIBE_KEYSPACE"); return -1; } break; case UNSUBSCRIBE_KEYSPACE: if (redisAsyncCommand(r->async_ctx, on_redis_notification, NULL, "punsubscribe __keyspace@%i__:*", keyspace) != REDIS_OK) { rlog(LOG_ERROR, "Fail redisAsyncCommand on JSON UNSUBSCRIBE_KEYSPACE"); return -1; } break; case UNSUBSCRIBE_ALL: if (redisAsyncCommand(r->async_ctx, on_redis_notification, NULL, "punsubscribe") != REDIS_OK) { rlog(LOG_ERROR, "Fail redisAsyncCommand on JSON UNSUBSCRIBE_ALL"); return -1; } break; default: rlog(LOG_ERROR, "No subscribe action found: %d", action); return -1; } return 0; } static int redis_delete_async(struct redis *r) { // sanity checks if (!r) { rlog(LOG_ERROR, "redis_delete_async: Don't use Redis async deletions because no redis/redis_write."); return -1 ; } // alloc new redis async context if (r->async_ctx == NULL && redis_async_context_alloc(r, redis_delete_async_context_connect, redis_delete_async_context_disconnect) < 0) { r->async_ctx = NULL; rlog(LOG_ERROR, "redis_delete_async: Failed to alloc async_ctx"); return -1; } // attach event base if (redisLibeventAttach(r->async_ctx, r->async_ev) == REDIS_ERR) { if (r->async_ctx->err) { rlog(LOG_ERROR, "redis_delete_async: redis_delete_async_context can't attach event base error: %s", r->async_ctx->errstr); } else { rlog(LOG_ERROR, "redis_delete_async: redis_delete_async_context can't attach event base"); } return -1; } // commands if (r->auth) { if (redisAsyncCommand(r->async_ctx, NULL, NULL, "AUTH %s", r->auth) != REDIS_OK) { rlog(LOG_ERROR, "redis_delete_async: Fail redisAsyncCommand on AUTH"); return -1; } } else { if (redisAsyncCommand(r->async_ctx, NULL, NULL, "PING") != REDIS_OK) { rlog(LOG_ERROR, "redis_delete_async: Fail redisAsyncCommand on PING"); return -1; } } // delete commands gchar *redis_command; gint redis_command_total = 0; mutex_lock(&r->async_lock); while (!g_queue_is_empty(&r->async_queue)) { redis_command_total++; redis_command = g_queue_pop_head(&r->async_queue); if (redisAsyncCommand(r->async_ctx, NULL, NULL, redis_command) != REDIS_OK) { rlog(LOG_ERROR, "redis_delete_async: Fail redisAsyncCommand on DELETE"); } g_free(redis_command); } mutex_unlock(&r->async_lock); rlog(LOG_NOTICE, "redis_delete_async: Queued DELETE redisAsyncCommand total: %d", redis_command_total); // dispatch event base => thread blocks here if (event_base_dispatch(r->async_ev) < 0) { rlog(LOG_ERROR, "redis_delete_async: Fail event_base_dispatch()"); return -1; } // loopbreak redisAsyncDisconnect(r->async_ctx); r->async_ctx = NULL; return 0; } static int redis_notify(struct redis *r) { GList *l; if (!r) { rlog(LOG_ERROR, "redis_notify database is NULL on redis_notify()"); return -1; } if (!r->async_ctx) { rlog(LOG_ERROR, "redis_notify_async_context is NULL on redis_notify()"); return -1; } if (!r->async_ev) { rlog(LOG_ERROR, "redis_notify_event_base is NULL on redis_notify()"); return -1; } // get redis_notify database rlog(LOG_INFO, "Use Redis %s to subscribe to notifications", endpoint_print_buf(&r->endpoint)); // attach event base if (redisLibeventAttach(r->async_ctx, r->async_ev) == REDIS_ERR) { if (r->async_ctx->err) { rlog(LOG_ERROR, "redis_notify_async_context can't attach event base error: %s", r->async_ctx->errstr); } else { rlog(LOG_ERROR, "redis_notify_async_context can't attach event base"); } return -1; } if (r->auth) { if (redisAsyncCommand(r->async_ctx, on_redis_notification, NULL, "AUTH %s", r->auth) != REDIS_OK) { rlog(LOG_ERROR, "Fail redisAsyncCommand on AUTH"); return -1; } } // subscribe to the values in the configured keyspaces rwlock_lock_r(&rtpe_config.keyspaces_lock); for (l = rtpe_config.redis_subscribed_keyspaces.head; l; l = l->next) { redis_notify_subscribe_action(r, SUBSCRIBE_KEYSPACE, GPOINTER_TO_INT(l->data)); } rwlock_unlock_r(&rtpe_config.keyspaces_lock); // dispatch event base => thread blocks here if (event_base_dispatch(r->async_ev) < 0) { rlog(LOG_ERROR, "Fail event_base_dispatch()"); return -1; } return 0; } void redis_delete_async_loop(void *d) { struct redis *r = NULL; // sanity checks r = rtpe_redis_write; if (!r) { rlog(LOG_ERROR, "redis_delete_async_loop: Don't use Redis async deletions because no redis/redis_write."); return ; } r->async_last = rtpe_now.tv_sec; // init libevent for pthread usage if (evthread_use_pthreads() < 0) { ilog(LOG_ERROR, "redis_delete_async_loop: evthread_use_pthreads failed."); return ; } // alloc libevent base if (redis_async_event_base_action(r, EVENT_BASE_ALLOC) < 0) { rlog(LOG_ERROR, "redis_delete_async_loop: Failed to EVENT_BASE_ALLOC."); return ; } // loop (almost) forever while (!rtpe_shutdown) { redis_delete_async(r); sleep(1); } } void redis_notify_loop(void *d) { int seconds = 1, redis_notify_return = 0; time_t next_run = rtpe_now.tv_sec; struct redis *r; r = rtpe_redis_notify; if (!r) { rlog(LOG_ERROR, "Don't use Redis notifications. See --redis-notifications parameter."); return ; } // init libevent for pthread usage if (evthread_use_pthreads() < 0) { ilog(LOG_ERROR, "evthread_use_pthreads failed"); return ; } // alloc redis async context if (redis_async_context_alloc(r, NULL, redis_notify_async_context_disconnect) < 0) { return ; } // alloc event base if (redis_async_event_base_action(r, EVENT_BASE_ALLOC) < 0) { return ; } // initial redis_notify if (redis_check_conn(r) == REDIS_STATE_CONNECTED) { redis_notify_return = redis_notify(r); } // loop redis_notify => in case of lost connection while (!rtpe_shutdown) { gettimeofday(&rtpe_now, NULL); if (rtpe_now.tv_sec < next_run) { usleep(100000); continue; } next_run = rtpe_now.tv_sec + seconds; if (redis_check_conn(r) == REDIS_STATE_CONNECTED || redis_notify_return < 0) { r->async_ctx = NULL; // alloc new redis async context upon redis breakdown if (redis_async_context_alloc(r, NULL, redis_notify_async_context_disconnect) < 0) { continue; } // prepare notifications redis_notify_return = redis_notify(r); } } // unsubscribe notifications redis_notify_subscribe_action(r, UNSUBSCRIBE_ALL, 0); // free async context redisAsyncDisconnect(r->async_ctx); r->async_ctx = NULL; } struct redis *redis_new(const endpoint_t *ep, int db, const char *auth, enum redis_role role, int no_redis_required) { struct redis *r; r = g_slice_alloc0(sizeof(*r)); r->endpoint = *ep; sockaddr_print(&ep->address, r->host, sizeof(r->host)); r->db = db; r->auth = auth; r->role = role; r->state = REDIS_STATE_DISCONNECTED; r->no_redis_required = no_redis_required; r->restore_tick = 0; r->consecutive_errors = 0; mutex_init(&r->lock); if (redis_connect(r, 10)) { if (r->no_redis_required) { rlog(LOG_WARN, "Starting with no initial connection to Redis %s !", endpoint_print_buf(&r->endpoint)); return r; } goto err; } // redis is connected rlog(LOG_INFO, "Established initial connection to Redis %s", endpoint_print_buf(&r->endpoint)); r->state = REDIS_STATE_CONNECTED; return r; err: mutex_destroy(&r->lock); g_slice_free1(sizeof(*r), r); return NULL; } struct redis *redis_dup(const struct redis *r, int db) { return redis_new(&r->endpoint, db >= 0 ? db : r->db, r->auth, r->role, r->no_redis_required); } void redis_close(struct redis *r) { if (!r) return; if (r->ctx) redisFree(r->ctx); r->ctx = NULL; mutex_destroy(&r->lock); g_slice_free1(sizeof(*r), r); } static void redis_count_err_and_disable(struct redis *r) { int allowed_errors; int disable_time; allowed_errors = atomic_get_na(&rtpe_config.redis_allowed_errors); disable_time = atomic_get_na(&rtpe_config.redis_disable_time); if (allowed_errors < 0) { return; } r->consecutive_errors++; if (r->consecutive_errors > allowed_errors) { r->restore_tick = rtpe_now.tv_sec + disable_time; ilog(LOG_WARNING, "Redis server %s disabled for %d seconds", endpoint_print_buf(&r->endpoint), disable_time); } } /* must be called with r->lock held */ static int redis_check_conn(struct redis *r) { gettimeofday(&rtpe_now, NULL); if ((r->state == REDIS_STATE_DISCONNECTED) && (r->restore_tick > rtpe_now.tv_sec)) { ilog(LOG_WARNING, "Redis server %s is disabled. Don't try RE-Establishing for %" TIME_T_INT_FMT " more seconds", endpoint_print_buf(&r->endpoint),r->restore_tick - rtpe_now.tv_sec); return REDIS_STATE_DISCONNECTED; } if (r->state == REDIS_STATE_DISCONNECTED) ilog(LOG_INFO, "RE-Establishing connection for Redis server %s",endpoint_print_buf(&r->endpoint)); // try redis connection if (r->ctx && redisCommandNR(r->ctx, "PING") == 0) { // redis is connected if (r->state == REDIS_STATE_DISCONNECTED) { rlog(LOG_INFO, "RE-Established connection to Redis %s; PING works", endpoint_print_buf(&r->endpoint)); r->state = REDIS_STATE_CONNECTED; } return REDIS_STATE_CONNECTED; } // redis is disconnected if (r->state == REDIS_STATE_CONNECTED) { rlog(LOG_ERR, "Lost connection to Redis %s", endpoint_print_buf(&r->endpoint)); r->state = REDIS_STATE_DISCONNECTED; } // try redis reconnect => will free current r->ctx if (redis_connect(r, 1)) { // redis is disconnected redis_count_err_and_disable(r); return REDIS_STATE_DISCONNECTED; } r->consecutive_errors = 0; // redis is connected if (r->state == REDIS_STATE_DISCONNECTED) { rlog(LOG_INFO, "RE-Established connection to Redis %s", endpoint_print_buf(&r->endpoint)); r->state = REDIS_STATE_CONNECTED; } // redis is re-connected return REDIS_STATE_CONNECTED; } /* called with r->lock held and c->master_lock held */ static void redis_delete_call_json(call_t *c, struct redis *r) { redis_pipe(r, "DEL "PB"", STR(&c->callid)); redis_consume(r); } static void redis_delete_async_call_json(call_t *c, struct redis *r) { gchar *redis_command; redis_command = g_strdup_printf("SELECT %i", c->redis_hosted_db); g_queue_push_tail(&r->async_queue, redis_command); redis_command = g_strdup_printf("DEL " STR_FORMAT, STR_FMT(&c->callid)); g_queue_push_tail(&r->async_queue, redis_command); } INLINE void json_builder_add_string_value_uri_enc(JsonBuilder *builder, const char* tmp, int len) { char enc[len * 3 + 1]; str_uri_encode_len(enc, tmp, len); json_builder_add_string_value(builder,enc); } INLINE str *json_reader_get_string_value_uri_enc(JsonReader *root_reader) { const char *s = json_reader_get_string_value(root_reader); if (!s) return NULL; str *out = str_uri_decode_len(s, strlen(s)); return out; // must be free'd } // XXX rework restore procedure to use functions like this everywhere and eliminate the GHashTable INLINE long long json_reader_get_ll(JsonReader *root_reader, const char *key) { if (!json_reader_read_member(root_reader, key)) return -1; str *ret = json_reader_get_string_value_uri_enc(root_reader); long long r = strtoll(ret->s, NULL, 10); free(ret); json_reader_end_member(root_reader); return r; } static int json_get_hash(struct redis_hash *out, const char *key, unsigned int id, JsonReader *root_reader) { static unsigned int MAXKEYLENGTH = 512; char key_concatted[MAXKEYLENGTH]; int rc=0; g_autoptr(char_p) orig_members = NULL; if (id == -1) { rc = snprintf(key_concatted, MAXKEYLENGTH, "%s",key); } else { rc = snprintf(key_concatted, MAXKEYLENGTH, "%s-%u",key,id); } if (rc>=MAXKEYLENGTH) { rlog(LOG_ERROR,"Json key too long."); goto err; } if (!json_reader_read_member(root_reader, key_concatted)) { rlog(LOG_ERROR, "Could not read json member: %s",key_concatted); goto err; } out->ht = g_hash_table_new_full(g_str_hash, g_str_equal, free, free); if (!out->ht) goto err; gchar **members = json_reader_list_members(root_reader); orig_members = members; int nmemb = json_reader_count_members (root_reader); for (int i=0; i < nmemb; ++i) { if (!json_reader_read_member(root_reader, *members)) { rlog(LOG_ERROR, "Could not read json member: %s",*members); goto err3; } str *val = json_reader_get_string_value_uri_enc(root_reader); char* tmp = strdup(*members); if (g_hash_table_insert(out->ht, tmp, val) != TRUE) { rlog(LOG_WARNING,"Key %s already exists", tmp); goto err3; } json_reader_end_member(root_reader); ++members; } // for json_reader_end_member (root_reader); return 0; err3: g_hash_table_destroy(out->ht); err: return -1; } static void json_destroy_hash(struct redis_hash *rh) { g_hash_table_destroy(rh->ht); } static void json_destroy_list(struct redis_list *rl) { unsigned int i; for (i = 0; i < rl->len; i++) { json_destroy_hash(&rl->rh[i]); } free(rl->rh); free(rl->ptrs); } static int redis_hash_get_str(str *out, const struct redis_hash *h, const char *k) { str *r; r = g_hash_table_lookup(h->ht, k); if (!r) { out->s = NULL; out->len = 0; return -1; } *out = *r; return 0; } /* we can do this because this happens during startup in a single thread */ static atomic64 strtoa64(const char *c, char **endp, int base) { uint64_t u; atomic64 ret; u = strtoull(c, endp, base); atomic64_set_na(&ret, u); return ret; } static struct timeval strtotimeval(const char *c, char **endp, int base) { long long ll = strtoll(c, endp, base); struct timeval ret; timeval_from_us(&ret, ll); return ret; } define_get_int_type(time_t, time_t, strtoull); define_get_int_type(timeval, struct timeval, strtotimeval); define_get_int_type(int, int, strtol); define_get_int_type(llu, unsigned long long, strtoll); define_get_int_type(unsigned, unsigned int, strtol); //define_get_int_type(u16, uint16_t, strtol); //define_get_int_type(u64, uint64_t, strtoull); define_get_int_type(a64, atomic64, strtoa64); define_get_type_format(str, str); define_get_type_format(int, int); //define_get_type_format(unsigned, unsigned int); //define_get_type_format(u16, uint16_t); //define_get_type_format(u64, uint64_t); define_get_type_format(a64, atomic64); static int redis_hash_get_c_buf_fn(unsigned char *out, size_t len, const struct redis_hash *h, const char *k, ...) { va_list ap; str s; int ret; va_start(ap, k); ret = redis_hash_get_str_v(&s, h, k, ap); va_end(ap); if (ret) return -1; if (s.len > len) return -1; memcpy(out, s.s, s.len); return 0; } #define redis_hash_get_c_buf_f(o, h, f...) \ redis_hash_get_c_buf_fn(o, sizeof(o), h, f) static int redis_hash_get_bool_flag(const struct redis_hash *h, const char *k) { int i; if (redis_hash_get_int(&i, h, k)) return 0; if (i) return -1; return 0; } static int redis_hash_get_endpoint(struct endpoint *out, const struct redis_hash *h, const char *k) { str s; if (redis_hash_get_str(&s, h, k)) return -1; if (endpoint_parse_any(out, s.s)) return -1; return 0; } static int redis_hash_get_stats(struct stream_stats *out, const struct redis_hash *h, const char *k) { if (redis_hash_get_a64_f(&out->packets, h, "%s-packets", k)) return -1; if (redis_hash_get_a64_f(&out->bytes, h, "%s-bytes", k)) return -1; if (redis_hash_get_a64_f(&out->errors, h, "%s-errors", k)) return -1; return 0; } static void *redis_list_get_idx_ptr(struct redis_list *list, unsigned int idx) { if (idx >= list->len) return NULL; return list->ptrs[idx]; } static void *redis_list_get_ptr(struct redis_list *list, struct redis_hash *rh, const char *key) { unsigned int idx; if (redis_hash_get_unsigned(&idx, rh, key)) return NULL; return redis_list_get_idx_ptr(list, idx); } static int json_build_list_cb(callback_arg_t q, call_t *c, const char *key, unsigned int idx, struct redis_list *list, int (*cb)(str *, callback_arg_t, struct redis_list *, void *), void *ptr, JsonReader *root_reader) { char key_concatted[256]; snprintf(key_concatted, 256, "%s-%u", key, idx); if (!json_reader_read_member(root_reader, key_concatted)) { rlog(LOG_ERROR,"Key in json not found:%s",key_concatted); return -1; } int nmemb = json_reader_count_elements(root_reader); for (int jidx=0; jidx < nmemb; ++jidx) { if (!json_reader_read_element(root_reader,jidx)) { rlog(LOG_ERROR,"Element in array not found."); return -1; } str *s = json_reader_get_string_value_uri_enc(root_reader); if (!s) { rlog(LOG_ERROR,"String in json not found."); return -1; } if (cb(s, q, list, ptr)) { free(s); return -1; } free(s); json_reader_end_element(root_reader); } json_reader_end_member (root_reader); return 0; } static int rbl_cb_simple(str *s, callback_arg_t qp, struct redis_list *list, void *ptr) { GQueue *q = qp.q; int j; j = str_to_i(s, 0); g_queue_push_tail(q, redis_list_get_idx_ptr(list, (unsigned) j)); return 0; } static int rbpa_cb_simple(str *s, callback_arg_t pap, struct redis_list *list, void *ptr) { medias_arr *pa = pap.ma; int j; j = str_to_i(s, 0); t_ptr_array_add(pa, redis_list_get_idx_ptr(list, (unsigned) j)); return 0; } static int json_build_list(callback_arg_t q, call_t *c, const char *key, unsigned int idx, struct redis_list *list, JsonReader *root_reader) { return json_build_list_cb(q, c, key, idx, list, rbl_cb_simple, NULL, root_reader); } static int json_build_ptra(medias_arr *q, call_t *c, const char *key, unsigned int idx, struct redis_list *list, JsonReader *root_reader) { return json_build_list_cb(q, c, key, idx, list, rbpa_cb_simple, NULL, root_reader); } static int json_get_list_hash(struct redis_list *out, const char *key, const struct redis_hash *rh, const char *rh_num_key, JsonReader *root_reader) { unsigned int i; if (redis_hash_get_unsigned(&out->len, rh, rh_num_key)) return -1; out->rh = malloc(sizeof(*out->rh) * out->len); if (!out->rh) return -1; out->ptrs = malloc(sizeof(*out->ptrs) * out->len); if (!out->ptrs) goto err1; for (i = 0; i < out->len; i++) { if (json_get_hash(&out->rh[i], key, i, root_reader)) goto err2; } return 0; err2: free(out->ptrs); while (i) { i--; json_destroy_hash(&out->rh[i]); } err1: free(out->rh); return -1; } /* can return 1, 0 or -1 */ static int redis_hash_get_sdes_params1(struct crypto_params *out, const struct redis_hash *h, const char *k) { str s; int i; const char *err; if (redis_hash_get_str_f(&s, h, "%s-crypto_suite", k)) return 1; out->crypto_suite = crypto_find_suite(&s); err = "crypto suite not known"; if (!out->crypto_suite) goto err; err = "master_key"; if (redis_hash_get_c_buf_f(out->master_key, h, "%s-master_key", k)) goto err; err = "master_salt"; if (redis_hash_get_c_buf_f(out->master_salt, h, "%s-master_salt", k)) goto err; if (!redis_hash_get_str_f(&s, h, "%s-mki", k)) { err = "mki too long"; if (s.len > 255) return -1; out->mki = malloc(s.len); memcpy(out->mki, s.s, s.len); out->mki_len = s.len; } if (!redis_hash_get_int_f(&i, h, "%s-unenc-srtp", k)) out->session_params.unencrypted_srtp = i; if (!redis_hash_get_int_f(&i, h, "%s-unenc-srtcp", k)) out->session_params.unencrypted_srtcp = i; if (!redis_hash_get_int_f(&i, h, "%s-unauth-srtp", k)) out->session_params.unauthenticated_srtp = i; return 0; err: rlog(LOG_ERR, "Crypto params error: %s", err); return -1; } static int redis_hash_get_sdes_params(sdes_q *out, const struct redis_hash *h, const char *k) { char key[32], tagkey[64]; const char *kk = k; unsigned int tag; unsigned int iter = 0; while (1) { snprintf(tagkey, sizeof(tagkey), "%s_tag", kk); if (redis_hash_get_unsigned(&tag, h, tagkey)) break; struct crypto_params_sdes *cps = g_slice_alloc0(sizeof(*cps)); cps->tag = tag; int ret = redis_hash_get_sdes_params1(&cps->params, h, kk); if (ret) { g_slice_free1(sizeof(*cps), cps); if (ret == 1) return 0; return -1; } t_queue_push_tail(out, cps); snprintf(key, sizeof(key), "%s-%u", k, iter++); kk = key; } return 0; } static int redis_sfds(call_t *c, struct redis_list *sfds) { unsigned int i; str family, intf_name; struct redis_hash *rh; sockfamily_t *fam; struct logical_intf *lif; struct local_intf *loc; socket_q q = TYPED_GQUEUE_INIT; unsigned int loc_uid; stream_fd *sfd; socket_t *sock; int port, fd; const char *err; for (i = 0; i < sfds->len; i++) { rh = &sfds->rh[i]; if (redis_hash_get_int(&fd, rh, "fd")) fd = 0; err = "'localport' key not present"; if (redis_hash_get_int(&port, rh, "localport")) goto err; err = "'pref_family' key not present"; if (redis_hash_get_str(&family, rh, "pref_family")) goto err; err = "'logical_intf' key not present"; if (redis_hash_get_str(&intf_name, rh, "logical_intf")) goto err; err = "'local_intf_uid' key not present"; if (redis_hash_get_unsigned(&loc_uid, rh, "local_intf_uid")) goto err; err = "socket family not known"; fam = get_socket_family_rfc(&family); if (!fam) goto err; err = "logical interface not known"; lif = get_logical_interface(&intf_name, fam, 0); if (!lif) goto err; err = "not enough local interfaces"; loc = g_queue_peek_nth(&lif->list, loc_uid); if (!loc) goto err; if (fd != -1) { err = "failed to open ports"; if (__get_consecutive_ports(&q, 1, port, loc->spec, &c->callid)) goto err; err = "no port returned"; sock = t_queue_pop_head(&q); if (!sock) goto err; set_tos(sock, c->tos); } else { sock = g_slice_alloc(sizeof(*sock)); dummy_socket(sock, &loc->spec->local_address.addr); } sfd = stream_fd_new(sock, c, loc); if (redis_hash_get_sdes_params1(&sfd->crypto.params, rh, "") == -1) return -1; sfds->ptrs[i] = sfd; } return 0; err: rlog(LOG_ERR, "Error creating sfd: %s", err); return -1; } static int redis_streams(call_t *c, struct redis_list *streams) { unsigned int i; struct redis_hash *rh; struct packet_stream *ps; for (i = 0; i < streams->len; i++) { rh = &streams->rh[i]; ps = __packet_stream_new(c); if (!ps) return -1; atomic64_set_na(&ps->last_packet, time(NULL)); if (redis_hash_get_a64(&ps->ps_flags, rh, "ps_flags")) return -1; if (redis_hash_get_unsigned((unsigned int *) &ps->component, rh, "component")) return -1; if (redis_hash_get_endpoint(&ps->endpoint, rh, "endpoint")) return -1; if (redis_hash_get_endpoint(&ps->advertised_endpoint, rh, "advertised_endpoint")) return -1; if (redis_hash_get_stats(ps->stats_in, rh, "stats")) return -1; if (redis_hash_get_sdes_params1(&ps->crypto.params, rh, "") == -1) return -1; streams->ptrs[i] = ps; PS_CLEAR(ps, KERNELIZED); } return 0; } static int redis_tags(call_t *c, struct redis_list *tags, JsonReader *root_reader) { unsigned int i; int ii; atomic64 a64; struct redis_hash *rh; struct call_monologue *ml; str s; for (i = 0; i < tags->len; i++) { rh = &tags->rh[i]; ml = __monologue_create(c); if (!ml) return -1; if (redis_hash_get_time_t(&ml->created, rh, "created")) return -1; if (!redis_hash_get_str(&s, rh, "tag")) __monologue_tag(ml, &s); if (!redis_hash_get_str(&s, rh, "via-branch")) __monologue_viabranch(ml, &s); if (!redis_hash_get_str(&s, rh, "label")) call_str_cpy(c, &ml->label, &s); if (!redis_hash_get_str(&s, rh, "metadata")) call_str_cpy(c, &c->metadata, &s); redis_hash_get_time_t(&ml->deleted, rh, "deleted"); if (!redis_hash_get_int(&ii, rh, "block_dtmf")) ml->block_dtmf = ii; if (!redis_hash_get_a64(&a64, rh, "ml_flags")) ml->ml_flags = a64; /* s= */ if (!redis_hash_get_str(&s, rh, "sdp_session_name")) ml->sdp_session_name = call_strdup_len(c, s.s, s.len); /* t= */ if (!redis_hash_get_str(&s, rh, "sdp_session_timing")) ml->sdp_session_timing = call_strdup_len(c, s.s, s.len); /* o= */ if (!redis_hash_get_str(&s, rh, "sdp_orig_parsed")) { ml->session_sdp_orig = g_slice_alloc0(sizeof(*ml->session_sdp_orig)); ml->session_sdp_orig->parsed = 1; redis_hash_get_llu(&ml->session_sdp_orig->version_num, rh, "sdp_orig_version_num"); if (!redis_hash_get_str(&s, rh, "sdp_orig_username")) str_init_dup_str(&ml->session_sdp_orig->username, &s); if (!redis_hash_get_str(&s, rh, "sdp_orig_session_id")) str_init_dup_str(&ml->session_sdp_orig->session_id, &s); if (!redis_hash_get_str(&s, rh, "sdp_orig_version_str")) str_init_dup_str(&ml->session_sdp_orig->version_str, &s); if (!redis_hash_get_str(&s, rh, "sdp_orig_address_network_type")) str_init_dup_str(&ml->session_sdp_orig->address.network_type, &s); if (!redis_hash_get_str(&s, rh, "sdp_orig_address_address_type")) str_init_dup_str(&ml->session_sdp_orig->address.address_type, &s); if (!redis_hash_get_str(&s, rh, "sdp_orig_address_address")) str_init_dup_str(&ml->session_sdp_orig->address.address, &s); } /* o= last used of the other side*/ if (!redis_hash_get_str(&s, rh, "last_sdp_orig_parsed")) { ml->session_last_sdp_orig = g_slice_alloc0(sizeof(*ml->session_last_sdp_orig)); ml->session_last_sdp_orig->parsed = 1; redis_hash_get_llu(&ml->session_last_sdp_orig->version_num, rh, "last_sdp_orig_version_num"); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_username")) str_init_dup_str(&ml->session_last_sdp_orig->username, &s); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_session_id")) str_init_dup_str(&ml->session_last_sdp_orig->session_id, &s); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_version_str")) str_init_dup_str(&ml->session_last_sdp_orig->version_str, &s); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_address_network_type")) str_init_dup_str(&ml->session_last_sdp_orig->address.network_type, &s); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_address_address_type")) str_init_dup_str(&ml->session_last_sdp_orig->address.address_type, &s); if (!redis_hash_get_str(&s, rh, "last_sdp_orig_address_address")) str_init_dup_str(&ml->session_last_sdp_orig->address.address, &s); } ml->sdp_session_rr = (!redis_hash_get_int(&ii, rh, "sdp_session_rr")) ? ii : -1; ml->sdp_session_rs = (!redis_hash_get_int(&ii, rh, "sdp_session_rs")) ? ii : -1; if (redis_hash_get_str(&s, rh, "desired_family")) return -1; ml->desired_family = get_socket_family_rfc(&s); if (redis_hash_get_str(&s, rh, "logical_intf") || !(ml->logical_intf = get_logical_interface(&s, ml->desired_family, 0))) { rlog(LOG_ERR, "unable to find specified local interface"); ml->logical_intf = get_logical_interface(NULL, ml->desired_family, 0); } if (json_build_ssrc(ml, root_reader)) return -1; tags->ptrs[i] = ml; } return 0; } static rtp_payload_type *rbl_cb_plts_g(str *s, struct redis_list *list, void *ptr) { str ptype; struct call_media *med = ptr; if (!str_token(&ptype, s, '/')) return NULL; rtp_payload_type *pt = codec_make_payload_type(s, med->type_id); if (!pt) return NULL; pt->payload_type = str_to_i(&ptype, 0); return pt; } static int rbl_cb_plts_r(str *s, callback_arg_t dummy, struct redis_list *list, void *ptr) { struct call_media *med = ptr; codec_store_add_raw(&med->codecs, rbl_cb_plts_g(s, list, ptr)); return 0; } static int json_medias(call_t *c, struct redis_list *medias, struct redis_list *tags, JsonReader *root_reader) { unsigned int i; int ii; struct redis_hash *rh; struct call_media *med; str s; for (i = 0; i < medias->len; i++) { rh = &medias->rh[i]; /* from call.c:__get_media() */ med = call_media_new(c); if (redis_hash_get_unsigned(&med->index, rh, "index")) return -1; if (redis_hash_get_str(&s, rh, "type")) return -1; call_str_cpy(c, &med->type, &s); med->type_id = codec_get_type(&med->type); if (!redis_hash_get_str(&s, rh, "format_str")) call_str_cpy(c, &med->format_str, &s); if (!redis_hash_get_str(&s, rh, "media_id")) call_str_cpy(c, &med->media_id, &s); if (redis_hash_get_str(&s, rh, "protocol")) return -1; med->protocol = transport_protocol(&s); if (redis_hash_get_str(&s, rh, "desired_family")) return -1; med->desired_family = get_socket_family_rfc(&s); if (redis_hash_get_str(&s, rh, "logical_intf") || !(med->logical_intf = get_logical_interface(&s, med->desired_family, 0))) { rlog(LOG_ERR, "unable to find specified local interface"); med->logical_intf = get_logical_interface(NULL, med->desired_family, 0); } if (redis_hash_get_a64(&med->media_flags, rh, "media_flags")) return -1; if (redis_hash_get_sdes_params(&med->sdes_in, rh, "sdes_in") < 0) return -1; if (redis_hash_get_sdes_params(&med->sdes_out, rh, "sdes_out") < 0) return -1; /* bandwidth data is not critical */ med->bandwidth_as = (!redis_hash_get_int(&ii, rh, "bandwidth_as")) ? ii : -1; med->bandwidth_rr = (!redis_hash_get_int(&ii, rh, "bandwidth_rr")) ? ii : -1; med->bandwidth_rs = (!redis_hash_get_int(&ii, rh, "bandwidth_rs")) ? ii : -1; json_build_list_cb(NULL, c, "payload_types", i, NULL, rbl_cb_plts_r, med, root_reader); /* XXX dtls */ /* link monologue */ med->monologue = redis_list_get_ptr(tags, &medias->rh[i], "tag"); medias->ptrs[i] = med; } return 0; } static int redis_maps(call_t *c, struct redis_list *maps) { unsigned int i; struct redis_hash *rh; struct endpoint_map *em; str s, t; sockfamily_t *fam; for (i = 0; i < maps->len; i++) { rh = &maps->rh[i]; /* from call.c:__get_endpoint_map() */ em = uid_slice_alloc0(em, &c->endpoint_maps.q); t_queue_init(&em->intf_sfds); em->wildcard = redis_hash_get_bool_flag(rh, "wildcard"); if (redis_hash_get_unsigned(&em->num_ports, rh, "num_ports")) return -1; if (redis_hash_get_str(&t, rh, "intf_preferred_family")) return -1; fam = get_socket_family_rfc(&t); if (!fam) return -1; if (redis_hash_get_str(&s, rh, "logical_intf") || !(em->logical_intf = get_logical_interface(&s, fam, 0))) { rlog(LOG_ERR, "unable to find specified local interface"); em->logical_intf = get_logical_interface(NULL, fam, 0); } if (redis_hash_get_endpoint(&em->endpoint, rh, "endpoint")) return -1; maps->ptrs[i] = em; } return 0; } static int redis_link_sfds(struct redis_list *sfds, struct redis_list *streams) { unsigned int i; stream_fd *sfd; for (i = 0; i < sfds->len; i++) { sfd = sfds->ptrs[i]; sfd->stream = redis_list_get_ptr(streams, &sfds->rh[i], "stream"); if (!sfd->stream) return -1; } return 0; } /** * Supports only `media-subscriptions-*` structures. * Restores media subscriptions based on: * `unique_id`, `offer_answer`, `rtcp_only`, `egress` */ static int rbl_subs_cb(str *s, callback_arg_t dummy, struct redis_list *list, void *ptr) { str token; if (!str_token_sep(&token, s, '/')) return -1; unsigned int media_unique_id = str_to_i(&token, 0); bool offer_answer = false; bool rtcp_only = false; bool egress = false; if (str_token_sep(&token, s, '/')) { offer_answer = str_to_i(&token, 0) ? true : false; if (str_token_sep(&token, s, '/')) { rtcp_only = str_to_i(&token, 0) ? true : false; if (str_token_sep(&token, s, '/')) egress = str_to_i(&token, 0) ? true : false; } } struct call_media *media = ptr; struct call_media *other_media = redis_list_get_idx_ptr(list, media_unique_id); if (!other_media) return -1; __add_media_subscription(media, other_media, &(struct sink_attrs) { .offer_answer = offer_answer, .rtcp_only = rtcp_only, .egress = egress, }); codec_handlers_update(other_media, media, .reset_transcoding = true); return 0; } static int json_link_tags(call_t *c, struct redis_list *tags, struct redis_list *medias, JsonReader *root_reader) { unsigned int i; struct call_monologue *ml, *other_ml; GQueue q = G_QUEUE_INIT; GList *l; for (i = 0; i < tags->len; i++) { ml = tags->ptrs[i]; char key_subscriptions[256], key_subscriptions_oa[256], key_subscriptions_noa[256]; snprintf(key_subscriptions, 256, "subscriptions-%u", i); snprintf(key_subscriptions_oa, 256, "subscriptions-oa-%u", i); snprintf(key_subscriptions_noa, 256, "subscriptions-noa-%u", i); /* Legacy */ if (json_reader_read_member(root_reader, key_subscriptions)) rlog(LOG_DEBUG, "Outdated format used to restore subscriptions (older rtpengine ver.), will be dropped."); json_reader_end_member(root_reader); if (json_reader_read_member(root_reader, key_subscriptions_oa)) rlog(LOG_DEBUG, "Outdated format used to restore subscriptions (older rtpengine ver.), will be dropped."); json_reader_end_member(root_reader); if (json_reader_read_member(root_reader, key_subscriptions_noa)) rlog(LOG_DEBUG, "Outdated format used to restore subscriptions (older rtpengine ver.), will be dropped."); json_reader_end_member(root_reader); /* associated tags */ if (json_build_list(&q, c, "associated_tags", i, tags, root_reader)) return -1; for (l = q.head; l; l = l->next) { other_ml = l->data; if (!other_ml) return -1; g_hash_table_insert(ml->associated_tags, other_ml, other_ml); } g_queue_clear(&q); if (json_build_ptra(ml->medias, c, "medias", i, medias, root_reader)) return -1; } return 0; } static struct media_subscription *__find_media_subscriber(struct call_media *media, struct packet_stream *sink) { if (!media || !sink || !sink->media) return NULL; struct call_monologue * find_ml = sink->media->monologue; for (__auto_type subscriber = media->media_subscribers.head; subscriber; subscriber = subscriber->next) { struct media_subscription * ms = subscriber->data; if (find_ml == ms->monologue) return ms; } return NULL; } static int json_link_streams(call_t *c, struct redis_list *streams, struct redis_list *sfds, struct redis_list *medias, JsonReader *root_reader) { unsigned int i; struct packet_stream *ps; GQueue q = G_QUEUE_INIT; GList *l; for (i = 0; i < streams->len; i++) { ps = streams->ptrs[i]; struct call_media *media = ps->media; ps->media = redis_list_get_ptr(medias, &streams->rh[i], "media"); ps->selected_sfd = redis_list_get_ptr(sfds, &streams->rh[i], "sfd"); ps->rtcp_sibling = redis_list_get_ptr(streams, &streams->rh[i], "rtcp_sibling"); if (json_build_list(&ps->sfds, c, "stream_sfds", i, sfds, root_reader)) return -1; if (json_build_list(&q, c, "rtp_sinks", i, streams, root_reader)) return -1; for (l = q.head; l; l = l->next) { struct packet_stream *sink = l->data; if (!sink) return -1; struct media_subscription *ms = __find_media_subscriber(media, sink); if (ms && ms->attrs.egress) continue; struct sink_attrs attrs = { .rtcp_only = (ms && ms->attrs.rtcp_only) ? 1 : 0 }; __add_sink_handler(&ps->rtp_sinks, sink, &attrs); } g_queue_clear(&q); // backwards compatibility if (!ps->rtp_sinks.length) { struct packet_stream *sink = redis_list_get_ptr(streams, &streams->rh[i], "rtp_sink"); if (sink) __add_sink_handler(&ps->rtp_sinks, sink, NULL); } if (json_build_list(&q, c, "rtcp_sinks", i, streams, root_reader)) return -1; for (l = q.head; l; l = l->next) { struct packet_stream *sink = l->data; if (!sink) return -1; __add_sink_handler(&ps->rtcp_sinks, sink, NULL); } g_queue_clear(&q); // backwards compatibility if (!ps->rtcp_sinks.length) { struct packet_stream *sink = redis_list_get_ptr(streams, &streams->rh[i], "rtcp_sink"); if (sink) __add_sink_handler(&ps->rtcp_sinks, sink, NULL); } if (ps->media) __rtp_stats_update(ps->rtp_stats, &ps->media->codecs); __init_stream(ps); } return 0; } static int json_link_medias(call_t *c, struct redis_list *medias, struct redis_list *streams, struct redis_list *maps, JsonReader *root_reader) { for (unsigned int i = 0; i < medias->len; i++) { struct call_media *med = medias->ptrs[i]; if (!med || !med->monologue) continue; if (json_build_list(&med->streams, c, "streams", i, streams, root_reader)) return -1; if (json_build_list(&med->endpoint_maps, c, "maps", i, maps, root_reader)) return -1; if (med->media_id.s) g_hash_table_insert(med->monologue->media_ids, &med->media_id, med); /* find the pair media to subscribe */ if (!json_build_list_cb(NULL, c, "media-subscriptions", med->unique_id, medias, rbl_subs_cb, med, root_reader)) { rlog(LOG_DEBUG, "Restored media subscriptions for: '" STR_FORMAT_M "'", STR_FMT_M(&med->monologue->tag)); } } return 0; } static int rbl_cb_intf_sfds(str *s, callback_arg_t qp, struct redis_list *list, void *ptr) { sfd_intf_list_q *q = qp.siq; int i; struct sfd_intf_list *il; struct endpoint_map *em; void *sfd; if (!strncmp(s->s, "loc-", 4)) { il = g_slice_alloc0(sizeof(*il)); em = ptr; i = atoi(s->s+4); il->local_intf = g_queue_peek_nth((GQueue*) &em->logical_intf->list, i); if (!il->local_intf) return -1; t_queue_push_tail(q, il); return 0; } il = t_queue_peek_tail(q); if (!il) return -1; sfd = redis_list_get_idx_ptr(list, atoi(s->s)); if (G_UNLIKELY(!sfd)) return -1; t_queue_push_tail(&il->list, sfd); return 0; } static int json_link_maps(call_t *c, struct redis_list *maps, struct redis_list *sfds, JsonReader *root_reader) { unsigned int i; struct endpoint_map *em; for (i = 0; i < maps->len; i++) { em = maps->ptrs[i]; if (json_build_list_cb(&em->intf_sfds, c, "map_sfds", em->unique_id, sfds, rbl_cb_intf_sfds, em, root_reader)) return -1; } return 0; } static int json_build_ssrc(struct call_monologue *ml, JsonReader *root_reader) { char tmp[2048]; snprintf(tmp, sizeof(tmp), "ssrc_table-%u", ml->unique_id); if (!json_reader_read_member(root_reader, "ssrc_table")) { // non-fatal for backwards compatibility json_reader_end_member(root_reader); return 0; } int nmemb = json_reader_count_elements(root_reader); for (int jidx=0; jidx < nmemb; ++jidx) { if (!json_reader_read_element(root_reader, jidx)) return -1; uint32_t ssrc = json_reader_get_ll(root_reader, "ssrc"); struct ssrc_entry_call *se = get_ssrc(ssrc, ml->ssrc_hash); if (!se) goto next; atomic_set_na(&se->input_ctx.stats->ext_seq, json_reader_get_ll(root_reader, "in_srtp_index")); atomic_set_na(&se->input_ctx.stats->rtcp_seq, json_reader_get_ll(root_reader, "in_srtcp_index")); payload_tracker_add(&se->input_ctx.tracker, json_reader_get_ll(root_reader, "in_payload_type")); atomic_set_na(&se->output_ctx.stats->ext_seq, json_reader_get_ll(root_reader, "out_srtp_index")); atomic_set_na(&se->output_ctx.stats->rtcp_seq, json_reader_get_ll(root_reader, "out_srtcp_index")); payload_tracker_add(&se->output_ctx.tracker, json_reader_get_ll(root_reader, "out_payload_type")); obj_put(&se->h); next: json_reader_end_element(root_reader); } json_reader_end_member (root_reader); return 0; } static void json_restore_call(struct redis *r, const str *callid, bool foreign) { redisReply* rr_jsonStr; struct redis_hash call; struct redis_list tags, sfds, streams, medias, maps; call_t *c = NULL; str s, id; time_t last_signal; const char *err = 0; int i; atomic64 a64; JsonReader *root_reader =0; JsonParser *parser =0; mutex_lock(&r->lock); rr_jsonStr = redis_get(r, REDIS_REPLY_STRING, "GET " PB, STR(callid)); mutex_unlock(&r->lock); bool must_release_pop = true; redis_ports_release_push(false); err = "could not retrieve JSON data from redis"; if (!rr_jsonStr) goto err1; parser = json_parser_new(); err = "could not parse JSON data"; if (!json_parser_load_from_data (parser, rr_jsonStr->str, -1, NULL)) goto err1; root_reader = json_reader_new (json_parser_get_root (parser)); err = "could not read JSON data"; if (!root_reader) goto err1; c = call_get_or_create(callid, false); err = "failed to create call struct"; if (!c) goto err1; err = "'call' data incomplete"; if (json_get_hash(&call, "json", -1, root_reader)) goto err2; err = "missing 'last signal' timestamp"; if (redis_hash_get_time_t(&last_signal, &call, "last_signal")) goto err3; if (c->last_signal) { err = NULL; // is the call we're loading newer than the one we have? if (last_signal > c->last_signal) { // switch ownership call_make_own_foreign(c, foreign); c->last_signal = last_signal; } goto err3; // no error, just bail } err = "'tags' incomplete"; if (json_get_list_hash(&tags, "tag", &call, "num_tags", root_reader)) goto err3; err = "'sfds' incomplete"; if (json_get_list_hash(&sfds, "sfd", &call, "num_sfds", root_reader)) goto err4; err = "'streams' incomplete"; if (json_get_list_hash(&streams, "stream", &call, "num_streams", root_reader)) goto err5; err = "'medias' incomplete"; if (json_get_list_hash(&medias, "media", &call, "num_medias", root_reader)) goto err6; err = "'maps' incomplete"; if (json_get_list_hash(&maps, "map", &call, "num_maps", root_reader)) goto err7; err = "missing 'created' timestamp"; if (redis_hash_get_timeval(&c->created, &call, "created")) goto err8; redis_hash_get_timeval(&c->destroyed, &call, "destroyed"); c->last_signal = last_signal; if (redis_hash_get_int(&i, &call, "tos")) c->tos = 184; else c->tos = i; redis_hash_get_time_t(&c->deleted, &call, "deleted"); redis_hash_get_time_t(&c->ml_deleted, &call, "ml_deleted"); if (!redis_hash_get_str(&id, &call, "created_from")) c->created_from = call_strdup(c, id.s); if (!redis_hash_get_str(&id, &call, "created_from_addr")) sockaddr_parse_any_str(&c->created_from_addr, &id); if (!redis_hash_get_int(&i, &call, "block_dtmf")) c->block_dtmf = i; if (!redis_hash_get_a64(&a64, &call, "call_flags")) c->call_flags = a64; err = "missing 'redis_hosted_db' value"; if (redis_hash_get_unsigned((unsigned int *) &c->redis_hosted_db, &call, "redis_hosted_db")) goto err8; err = "failed to create sfds"; if (redis_sfds(c, &sfds)) goto err8; err = "failed to create streams"; if (redis_streams(c, &streams)) goto err8; err = "failed to create tags"; if (redis_tags(c, &tags, root_reader)) goto err8; err = "failed to create medias"; if (json_medias(c, &medias, &tags, root_reader)) goto err8; err = "failed to create maps"; if (redis_maps(c, &maps)) goto err8; err = "failed to link sfds"; if (redis_link_sfds(&sfds, &streams)) goto err8; err = "failed to link streams"; if (json_link_streams(c, &streams, &sfds, &medias, root_reader)) goto err8; err = "failed to link tags"; if (json_link_tags(c, &tags, &medias, root_reader)) goto err8; err = "failed to link medias"; if (json_link_medias(c, &medias, &streams, &maps, root_reader)) goto err8; err = "failed to link maps"; if (json_link_maps(c, &maps, &sfds, root_reader)) goto err8; // presence of this key determines whether we were recording at all if (!redis_hash_get_str(&s, &call, "recording_meta_prefix")) { call_str_cpy(c, &c->recording_meta_prefix, &s); // coverity[check_return : FALSE] redis_hash_get_str(&s, &call, "recording_metadata"); call_str_cpy(c, &c->metadata, &s); redis_hash_get_str(&s, &call, "recording_file"); call_str_cpy(c, &c->recording_file, &s); redis_hash_get_str(&s, &call, "recording_path"); call_str_cpy(c, &c->recording_path, &s); redis_hash_get_str(&s, &call, "recording_pattern"); call_str_cpy(c, &c->recording_pattern, &s); redis_hash_get_str(&s, &call, "recording_random_tag"); call_str_cpy(c, &c->recording_random_tag, &s); recording_start_daemon(c); } // force-clear foreign flag (could have been set through call_flags), then // set it to what we want, updating the statistics if needed CALL_CLEAR(c, FOREIGN); call_make_own_foreign(c, foreign); bf_set_clear(&c->call_flags, CALL_FLAG_MEDIA_COUNTED, false); statistics_update_ip46_inc_dec(c, CMC_INCREMENT); err = NULL; err8: json_destroy_list(&maps); err7: json_destroy_list(&medias); err6: json_destroy_list(&streams); err5: json_destroy_list(&sfds); err4: json_destroy_list(&tags); err3: json_destroy_hash(&call); err2: rwlock_unlock_w(&c->master_lock); err1: if (root_reader) g_object_unref (root_reader); if (parser) g_object_unref (parser); if (rr_jsonStr) freeReplyObject(rr_jsonStr); if (err) { mutex_lock(&r->lock); if (r->ctx && r->ctx->err) rlog(LOG_WARNING, "Failed to restore call ID '" STR_FORMAT_M "' from Redis: %s (%s)", STR_FMT_M(callid), err, r->ctx->errstr); else rlog(LOG_WARNING, "Failed to restore call ID '" STR_FORMAT_M "' from Redis: %s", STR_FMT_M(callid), err); mutex_unlock(&r->lock); if (c) call_destroy(c); release_closed_sockets(); if (must_release_pop) // avoid deadlock with redis_notify->lock below redis_ports_release_pop(false); must_release_pop = false; mutex_lock(&rtpe_redis_write->lock); redisCommandNR(rtpe_redis_write->ctx, "DEL " PB, STR(callid)); mutex_unlock(&rtpe_redis_write->lock); if (rtpe_redis_notify) { mutex_lock(&rtpe_redis_notify->lock); redisCommandNR(rtpe_redis_notify->ctx, "DEL " PB, STR(callid)); mutex_unlock(&rtpe_redis_notify->lock); } } if (c) obj_put(c); release_closed_sockets(); if (must_release_pop) redis_ports_release_pop(false); log_info_reset(); } struct thread_ctx { GQueue r_q; mutex_t r_m; bool foreign; }; static void restore_thread(void *call_p, void *ctx_p) { struct thread_ctx *ctx = ctx_p; redisReply *call = call_p; struct redis *r; str callid = STR_INIT_LEN(call->str, call->len); rlog(LOG_DEBUG, "Processing call ID '%s%.*s%s' from Redis", FMT_M(REDIS_FMT(call))); mutex_lock(&ctx->r_m); r = g_queue_pop_head(&ctx->r_q); mutex_unlock(&ctx->r_m); gettimeofday(&rtpe_now, NULL); json_restore_call(r, &callid, ctx->foreign); mutex_lock(&ctx->r_m); g_queue_push_tail(&ctx->r_q, r); mutex_unlock(&ctx->r_m); release_closed_sockets(); } int redis_restore(struct redis *r, bool foreign, int db) { redisReply *calls = NULL, *call; int ret = -1; GThreadPool *gtp; struct thread_ctx ctx; if (!r) return 0; for (unsigned int i = 0; i < num_log_levels; i++) rtpe_config.common.log_levels[i] |= LOG_FLAG_RESTORE; rlog(LOG_DEBUG, "Restoring calls from Redis..."); mutex_lock(&r->lock); // coverity[sleep : FALSE] if (redis_check_conn(r) == REDIS_STATE_DISCONNECTED) { mutex_unlock(&r->lock); ret = 0; goto err; } if (db != -1) redis_select_db(r, db); calls = redis_get(r, REDIS_REPLY_ARRAY, "KEYS *"); if (db != -1) redis_select_db(r, r->db); else db = r->db; mutex_unlock(&r->lock); if (!calls) { rlog(LOG_ERR, "Could not retrieve call list from Redis: %s", r->ctx ? r->ctx->errstr : "No redis context"); goto err; } if (calls->elements == 0) goto out; mutex_init(&ctx.r_m); g_queue_init(&ctx.r_q); ctx.foreign = foreign; for (int i = 0; i < rtpe_config.redis_num_threads; i++) g_queue_push_tail(&ctx.r_q, redis_dup(r, db)); gtp = g_thread_pool_new(restore_thread, &ctx, rtpe_config.redis_num_threads, TRUE, NULL); for (int i = 0; i < calls->elements; i++) { call = calls->element[i]; if (call->type != REDIS_REPLY_STRING) continue; g_thread_pool_push(gtp, call, NULL); } g_thread_pool_stop_unused_threads(); g_thread_pool_set_max_unused_threads(0); g_thread_pool_free(gtp, FALSE, TRUE); while ((r = g_queue_pop_head(&ctx.r_q))) redis_close(r); out: ret = 0; freeReplyObject(calls); err: for (unsigned int i = 0; i < num_log_levels; i++) if (rtpe_config.common.log_levels[i] > 0) rtpe_config.common.log_levels[i] &= ~LOG_FLAG_RESTORE; return ret; } #define JSON_ADD_STRING(f...) do { \ int len = snprintf(tmp,sizeof(tmp), f); \ json_builder_add_string_value_uri_enc(builder, tmp, len); \ } while (0) #define JSON_SET_NSTRING(a,b,c,d) do { \ snprintf(tmp,sizeof(tmp), a,b); \ json_builder_set_member_name(builder, tmp); \ JSON_ADD_STRING(c, d); \ } while (0) #define JSON_SET_NSTRING_CSTR(a,b,d) JSON_SET_NSTRING_LEN(a, b, strlen(d), d) #define JSON_SET_NSTRING_LEN(a,b,l,d) do { \ snprintf(tmp,sizeof(tmp), a,b); \ json_builder_set_member_name(builder, tmp); \ json_builder_add_string_value_uri_enc(builder, d, l); \ } while (0) #define JSON_SET_SIMPLE(a,c,d) do { \ json_builder_set_member_name(builder, a); \ JSON_ADD_STRING(c, d); \ } while (0) #define JSON_SET_SIMPLE_LEN(a,l,d) do { \ json_builder_set_member_name(builder, a); \ json_builder_add_string_value_uri_enc(builder, d, l); \ } while (0) #define JSON_SET_SIMPLE_CSTR(a,d) JSON_SET_SIMPLE_LEN(a, (d) ? strlen(d) : 0, (d) ? : "") #define JSON_SET_SIMPLE_STR(a,d) JSON_SET_SIMPLE_LEN(a, (d)->len, (d)->s) static void json_update_crypto_params(JsonBuilder *builder, const char *key, struct crypto_params *p) { char tmp[2048]; if (!p->crypto_suite) return; JSON_SET_NSTRING_CSTR("%s-crypto_suite", key, p->crypto_suite->name); JSON_SET_NSTRING_LEN("%s-master_key", key, sizeof(p->master_key), (char *) p->master_key); JSON_SET_NSTRING_LEN("%s-master_salt", key, sizeof(p->master_salt), (char *) p->master_salt); JSON_SET_NSTRING("%s-unenc-srtp", key, "%i", p->session_params.unencrypted_srtp); JSON_SET_NSTRING("%s-unenc-srtcp", key, "%i", p->session_params.unencrypted_srtcp); JSON_SET_NSTRING("%s-unauth-srtp", key, "%i", p->session_params.unauthenticated_srtp); if (p->mki) JSON_SET_NSTRING_LEN("%s-mki", key, p->mki_len, (char *) p->mki); } static int json_update_sdes_params(JsonBuilder *builder, const char *pref, unsigned int unique_id, const char *k, sdes_q *q) { char tmp[2048]; unsigned int iter = 0; char keybuf[32]; const char *key = k; for (__auto_type l = q->head; l; l = l->next) { struct crypto_params_sdes *cps = l->data; struct crypto_params *p = &cps->params; if (!p->crypto_suite) return -1; JSON_SET_NSTRING("%s_tag", key, "%u", cps->tag); json_update_crypto_params(builder, key, p); snprintf(keybuf, sizeof(keybuf), "%s-%u", k, iter++); key = keybuf; } return 0; } static void json_update_dtls_fingerprint(JsonBuilder *builder, const char *pref, unsigned int unique_id, const struct dtls_fingerprint *f) { if (!f->hash_func) return; JSON_SET_SIMPLE_CSTR("hash_func",f->hash_func->name); JSON_SET_SIMPLE_LEN("fingerprint", sizeof(f->digest), (char *) f->digest); } /** * encodes the few (k,v) pairs for one call under one json structure */ char* redis_encode_json(call_t *c) { JsonBuilder *builder = json_builder_new (); char tmp[2048]; json_builder_begin_object(builder); { json_builder_set_member_name(builder, "json"); json_builder_begin_object(builder); { JSON_SET_SIMPLE("created","%lli", timeval_us(&c->created)); JSON_SET_SIMPLE("destroyed","%lli", timeval_us(&c->destroyed)); JSON_SET_SIMPLE("last_signal","%ld", (long int) c->last_signal); JSON_SET_SIMPLE("tos","%u", (int) c->tos); JSON_SET_SIMPLE("deleted","%ld", (long int) c->deleted); JSON_SET_SIMPLE("num_sfds","%u", t_queue_get_length(&c->stream_fds)); JSON_SET_SIMPLE("num_streams","%u", t_queue_get_length(&c->streams)); JSON_SET_SIMPLE("num_medias","%u", t_queue_get_length(&c->medias)); JSON_SET_SIMPLE("num_tags","%u", t_queue_get_length(&c->monologues)); JSON_SET_SIMPLE("num_maps","%u", t_queue_get_length(&c->endpoint_maps)); JSON_SET_SIMPLE("ml_deleted","%ld", (long int) c->ml_deleted); JSON_SET_SIMPLE_CSTR("created_from", c->created_from); JSON_SET_SIMPLE_CSTR("created_from_addr", sockaddr_print_buf(&c->created_from_addr)); JSON_SET_SIMPLE("redis_hosted_db","%u", c->redis_hosted_db); JSON_SET_SIMPLE_STR("recording_metadata", &c->metadata); JSON_SET_SIMPLE("block_dtmf","%i", c->block_dtmf); JSON_SET_SIMPLE("call_flags", "%" PRIu64, atomic64_get_na(&c->call_flags)); if (c->recording_meta_prefix.len) JSON_SET_SIMPLE_STR("recording_meta_prefix", &c->recording_meta_prefix); if (c->recording_file.len) JSON_SET_SIMPLE_STR("recording_file", &c->recording_file); if (c->recording_path.len) JSON_SET_SIMPLE_STR("recording_path", &c->recording_path); if (c->recording_pattern.len) JSON_SET_SIMPLE_STR("recording_pattern", &c->recording_pattern); if (c->recording_random_tag.len) JSON_SET_SIMPLE_STR("recording_random_tag", &c->recording_random_tag); } json_builder_end_object(builder); for (__auto_type l = c->stream_fds.head; l; l = l->next) { stream_fd *sfd = l->data; snprintf(tmp, sizeof(tmp), "sfd-%u", sfd->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_object(builder); { JSON_SET_SIMPLE_CSTR("pref_family", sfd->local_intf->logical->preferred_family->rfc_name); JSON_SET_SIMPLE("localport","%u", sfd->socket.local.port); JSON_SET_SIMPLE("fd", "%i", sfd->socket.fd); JSON_SET_SIMPLE_STR("logical_intf", &sfd->local_intf->logical->name); JSON_SET_SIMPLE("local_intf_uid","%u", sfd->local_intf->unique_id); JSON_SET_SIMPLE("stream","%u", sfd->stream->unique_id); json_update_crypto_params(builder, "", &sfd->crypto.params); } json_builder_end_object(builder); } // --- for for (__auto_type l = c->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; LOCK(&ps->in_lock); LOCK(&ps->out_lock); snprintf(tmp, sizeof(tmp), "stream-%u", ps->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_object(builder); { JSON_SET_SIMPLE("media","%u",ps->media->unique_id); JSON_SET_SIMPLE("sfd","%u",ps->selected_sfd ? ps->selected_sfd->unique_id : -1); JSON_SET_SIMPLE("rtcp_sibling","%u",ps->rtcp_sibling ? ps->rtcp_sibling->unique_id : -1); JSON_SET_SIMPLE("last_packet",UINT64F,atomic64_get(&ps->last_packet)); JSON_SET_SIMPLE("ps_flags", "%" PRIu64, atomic64_get_na(&ps->ps_flags)); JSON_SET_SIMPLE("component","%u",ps->component); JSON_SET_SIMPLE_CSTR("endpoint",endpoint_print_buf(&ps->endpoint)); JSON_SET_SIMPLE_CSTR("advertised_endpoint",endpoint_print_buf(&ps->advertised_endpoint)); JSON_SET_SIMPLE("stats-packets","%" PRIu64, atomic64_get_na(&ps->stats_in->packets)); JSON_SET_SIMPLE("stats-bytes","%" PRIu64, atomic64_get_na(&ps->stats_in->bytes)); JSON_SET_SIMPLE("stats-errors","%" PRIu64, atomic64_get_na(&ps->stats_in->errors)); json_update_crypto_params(builder, "", &ps->crypto.params); } json_builder_end_object(builder); // stream_sfds was here before } // --- for streams.head for (__auto_type l = c->streams.head; l; l = l->next) { struct packet_stream *ps = l->data; // XXX these should all go into the above loop LOCK(&ps->in_lock); LOCK(&ps->out_lock); snprintf(tmp, sizeof(tmp), "stream_sfds-%u", ps->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type k = ps->sfds.head; k; k = k->next) { stream_fd *sfd = k->data; JSON_ADD_STRING("%u", sfd->unique_id); } json_builder_end_array(builder); snprintf(tmp, sizeof(tmp), "rtp_sinks-%u", ps->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type k = ps->rtp_sinks.head; k; k = k->next) { struct sink_handler *sh = k->data; struct packet_stream *sink = sh->sink; JSON_ADD_STRING("%u", sink->unique_id); } json_builder_end_array(builder); snprintf(tmp, sizeof(tmp), "rtcp_sinks-%u", ps->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type k = ps->rtcp_sinks.head; k; k = k->next) { struct sink_handler *sh = k->data; struct packet_stream *sink = sh->sink; JSON_ADD_STRING("%u", sink->unique_id); } json_builder_end_array(builder); } for (__auto_type l = c->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; snprintf(tmp, sizeof(tmp), "tag-%u", ml->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_object(builder); { JSON_SET_SIMPLE("created", "%llu", (long long unsigned) ml->created); JSON_SET_SIMPLE("deleted", "%llu", (long long unsigned) ml->deleted); JSON_SET_SIMPLE("block_dtmf", "%i", ml->block_dtmf); JSON_SET_SIMPLE("ml_flags", "%" PRIu64, atomic64_get_na(&ml->ml_flags)); JSON_SET_SIMPLE_CSTR("desired_family", ml->desired_family ? ml->desired_family->rfc_name : ""); if (ml->logical_intf) JSON_SET_SIMPLE_STR("logical_intf", &ml->logical_intf->name); if (ml->tag.s) JSON_SET_SIMPLE_STR("tag", &ml->tag); if (ml->viabranch.s) JSON_SET_SIMPLE_STR("via-branch", &ml->viabranch); if (ml->label.s) JSON_SET_SIMPLE_STR("label", &ml->label); if (ml->metadata.s) JSON_SET_SIMPLE_STR("metadata", &ml->metadata); JSON_SET_SIMPLE_CSTR("sdp_session_name", ml->sdp_session_name ? ml->sdp_session_name : ""); JSON_SET_SIMPLE_CSTR("sdp_session_timing", ml->sdp_session_timing ? ml->sdp_session_timing : ""); if (ml->session_sdp_orig) { JSON_SET_SIMPLE_STR("sdp_orig_username", &ml->session_sdp_orig->username); JSON_SET_SIMPLE_STR("sdp_orig_session_id", &ml->session_sdp_orig->session_id); JSON_SET_SIMPLE_STR("sdp_orig_version_str", &ml->session_sdp_orig->version_str); JSON_SET_SIMPLE("sdp_orig_version_num", "%llu", (long long unsigned) ml->session_sdp_orig->version_num); JSON_SET_SIMPLE("sdp_orig_parsed", "%u", (unsigned int) ml->session_sdp_orig->parsed); JSON_SET_SIMPLE_STR("sdp_orig_address_network_type", &ml->session_sdp_orig->address.network_type); JSON_SET_SIMPLE_STR("sdp_orig_address_address_type", &ml->session_sdp_orig->address.address_type); JSON_SET_SIMPLE_STR("sdp_orig_address_address", &ml->session_sdp_orig->address.address); } if (ml->session_last_sdp_orig) { JSON_SET_SIMPLE_STR("last_sdp_orig_username", &ml->session_last_sdp_orig->username); JSON_SET_SIMPLE_STR("last_sdp_orig_session_id", &ml->session_last_sdp_orig->session_id); JSON_SET_SIMPLE_STR("last_sdp_orig_version_str", &ml->session_last_sdp_orig->version_str); JSON_SET_SIMPLE("last_sdp_orig_version_num", "%llu", (long long unsigned) ml->session_last_sdp_orig->version_num); JSON_SET_SIMPLE("last_sdp_orig_parsed", "%u", (unsigned int) ml->session_last_sdp_orig->parsed); JSON_SET_SIMPLE_STR("last_sdp_orig_address_network_type", &ml->session_last_sdp_orig->address.network_type); JSON_SET_SIMPLE_STR("last_sdp_orig_address_address_type", &ml->session_last_sdp_orig->address.address_type); JSON_SET_SIMPLE_STR("last_sdp_orig_address_address", &ml->session_last_sdp_orig->address.address); } if (ml->sdp_session_rr >= 0) JSON_SET_SIMPLE("sdp_session_rr", "%i", ml->sdp_session_rr); if (ml->sdp_session_rs >= 0) JSON_SET_SIMPLE("sdp_session_rs", "%i", ml->sdp_session_rs); } json_builder_end_object(builder); // other_tags and medias- was here before } // --- for monologues.head for (__auto_type l = c->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; // -- we do it again here since the jsonbuilder is linear straight forward // XXX these should all go into the above loop GList *k = g_hash_table_get_values(ml->associated_tags); snprintf(tmp, sizeof(tmp), "associated_tags-%u", ml->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (GList *m = k; m; m = m->next) { struct call_monologue *ml2 = m->data; JSON_ADD_STRING("%u", ml2->unique_id); } json_builder_end_array(builder); g_list_free(k); snprintf(tmp, sizeof(tmp), "medias-%u", ml->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array (builder); for (unsigned int j = 0; j < ml->medias->len; j++) { struct call_media *media = ml->medias->pdata[j]; JSON_ADD_STRING("%u", media ? media->unique_id : -1); } json_builder_end_array(builder); // SSRC table dump rwlock_lock_r(&ml->ssrc_hash->lock); k = g_hash_table_get_values(ml->ssrc_hash->ht); snprintf(tmp, sizeof(tmp), "ssrc_table-%u", ml->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (GList *m = k; m; m = m->next) { struct ssrc_entry_call *se = m->data; json_builder_begin_object (builder); JSON_SET_SIMPLE("ssrc", "%" PRIu32, se->h.ssrc); // XXX use function for in/out JSON_SET_SIMPLE("in_srtp_index", "%u", atomic_get_na(&se->input_ctx.stats->ext_seq)); JSON_SET_SIMPLE("in_srtcp_index", "%u", atomic_get_na(&se->input_ctx.stats->rtcp_seq)); JSON_SET_SIMPLE("in_payload_type", "%i", se->input_ctx.tracker.most[0]); JSON_SET_SIMPLE("out_srtp_index", "%u", atomic_get_na(&se->output_ctx.stats->ext_seq)); JSON_SET_SIMPLE("out_srtcp_index", "%u", atomic_get_na(&se->output_ctx.stats->rtcp_seq)); JSON_SET_SIMPLE("out_payload_type", "%i", se->output_ctx.tracker.most[0]); // XXX add rest of info json_builder_end_object(builder); } json_builder_end_array(builder); g_list_free(k); rwlock_unlock_r(&ml->ssrc_hash->lock); } for (__auto_type l = c->medias.head; l; l = l->next) { struct call_media *media = l->data; if (!media) continue; /* store media subscriptions */ snprintf(tmp, sizeof(tmp), "media-subscriptions-%u", media->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type sub = media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; JSON_ADD_STRING("%u/%u/%u/%u", ms->media->unique_id, ms->attrs.offer_answer, ms->attrs.rtcp_only, ms->attrs.egress); } json_builder_end_array(builder); snprintf(tmp, sizeof(tmp), "media-%u", media->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_object(builder); { JSON_SET_SIMPLE("tag","%u", media->monologue->unique_id); JSON_SET_SIMPLE("index","%u", media->index); JSON_SET_SIMPLE_STR("type", &media->type); if (media->format_str.s) JSON_SET_SIMPLE_STR("format_str", &media->format_str); if (media->media_id.s) JSON_SET_SIMPLE_STR("media_id", &media->media_id); JSON_SET_SIMPLE_CSTR("protocol", media->protocol ? media->protocol->name : ""); JSON_SET_SIMPLE_CSTR("desired_family", media->desired_family ? media->desired_family->rfc_name : ""); JSON_SET_SIMPLE_STR("logical_intf", &media->logical_intf->name); JSON_SET_SIMPLE("ptime","%i", media->ptime); JSON_SET_SIMPLE("media_flags", "%" PRIu64, atomic64_get_na(&media->media_flags)); if (media->bandwidth_as >= 0) JSON_SET_SIMPLE("bandwidth_as","%i", media->bandwidth_as); if (media->bandwidth_rr >= 0) JSON_SET_SIMPLE("bandwidth_rr","%i", media->bandwidth_rr); if (media->bandwidth_rs >= 0) JSON_SET_SIMPLE("bandwidth_rs","%i", media->bandwidth_rs); json_update_sdes_params(builder, "media", media->unique_id, "sdes_in", &media->sdes_in); json_update_sdes_params(builder, "media", media->unique_id, "sdes_out", &media->sdes_out); json_update_dtls_fingerprint(builder, "media", media->unique_id, &media->fingerprint); } json_builder_end_object(builder); } // --- for medias.head // -- we do it again here since the jsonbuilder is linear straight forward // XXX can this be moved into the above json object? for (__auto_type l = c->medias.head; l; l = l->next) { struct call_media *media = l->data; snprintf(tmp, sizeof(tmp), "streams-%u", media->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type m = media->streams.head; m; m = m->next) { struct packet_stream *ps = m->data; JSON_ADD_STRING("%u", ps->unique_id); } json_builder_end_array(builder); snprintf(tmp, sizeof(tmp), "maps-%u", media->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type m = media->endpoint_maps.head; m; m = m->next) { struct endpoint_map *ep = m->data; JSON_ADD_STRING("%u", ep->unique_id); } json_builder_end_array(builder); snprintf(tmp, sizeof(tmp), "payload_types-%u", media->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type m = media->codecs.codec_prefs.head; m; m = m->next) { rtp_payload_type *pt = m->data; JSON_ADD_STRING("%u/" STR_FORMAT "/%u/" STR_FORMAT "/" STR_FORMAT "/%i/%i", pt->payload_type, STR_FMT(&pt->encoding), pt->clock_rate, STR_FMT(&pt->encoding_parameters), STR_FMT(&pt->format_parameters), pt->bitrate, pt->ptime); } json_builder_end_array(builder); } for (__auto_type l = c->endpoint_maps.head; l; l = l->next) { struct endpoint_map *ep = l->data; snprintf(tmp, sizeof(tmp), "map-%u", ep->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_object(builder); { JSON_SET_SIMPLE("wildcard","%i", ep->wildcard); JSON_SET_SIMPLE("num_ports","%u", ep->num_ports); JSON_SET_SIMPLE_CSTR("intf_preferred_family", ep->logical_intf->preferred_family->rfc_name); JSON_SET_SIMPLE_STR("logical_intf", &ep->logical_intf->name); JSON_SET_SIMPLE_CSTR("endpoint", endpoint_print_buf(&ep->endpoint)); } json_builder_end_object(builder); } // --- for c->endpoint_maps.head // -- we do it again here since the jsonbuilder is linear straight forward for (__auto_type l = c->endpoint_maps.head; l; l = l->next) { struct endpoint_map *ep = l->data; snprintf(tmp, sizeof(tmp), "map_sfds-%u", ep->unique_id); json_builder_set_member_name(builder, tmp); json_builder_begin_array(builder); for (__auto_type m = ep->intf_sfds.head; m; m = m->next) { struct sfd_intf_list *il = m->data; JSON_ADD_STRING("loc-%u", il->local_intf->unique_id); for (__auto_type n = il->list.head; n; n = n->next) { stream_fd *sfd = n->data; JSON_ADD_STRING("%u", sfd->unique_id); } } json_builder_end_array(builder); } } json_builder_end_object(builder); return glib_json_print(builder); } void redis_update_onekey(call_t *c, struct redis *r) { unsigned int redis_expires_s; if (!r) return; if (IS_FOREIGN_CALL(c)) return; LOCK(&r->lock); // coverity[sleep : FALSE] if (redis_check_conn(r) == REDIS_STATE_DISCONNECTED) return; atomic64_set_na(&c->last_redis_update, rtpe_now.tv_sec); rwlock_lock_r(&c->master_lock); redis_expires_s = rtpe_config.redis_expires_secs; c->redis_hosted_db = r->db; if (redis_select_db(r, c->redis_hosted_db)) { rlog(LOG_ERR, " >>>>>>>>>>>>>>>>> Redis error."); goto err; } char* result = redis_encode_json(c); if (!result) goto err; redis_pipe(r, "SET "PB" %s", STR(&c->callid), result); redis_pipe(r, "EXPIRE "PB" %i", STR(&c->callid), redis_expires_s); redis_consume(r); if (result) free(result); rwlock_unlock_r(&c->master_lock); return; err: if (r->ctx && r->ctx->err) rlog(LOG_ERR, "Redis error: %s", r->ctx->errstr); redisFree(r->ctx); r->ctx = NULL; rwlock_unlock_r(&c->master_lock); } /* must be called lock-free */ void redis_delete(call_t *c, struct redis *r) { int delete_async = rtpe_config.redis_delete_async; rlog(LOG_DEBUG, "Redis delete_async=%d", delete_async); if (!r) return; if (IS_FOREIGN_CALL(c)) return; if (delete_async) { LOCK(&r->async_lock); rwlock_lock_r(&c->master_lock); redis_delete_async_call_json(c, r); rwlock_unlock_r(&c->master_lock); return; } LOCK(&r->lock); // coverity[sleep : FALSE] if (redis_check_conn(r) == REDIS_STATE_DISCONNECTED) return; rwlock_lock_r(&c->master_lock); if (redis_select_db(r, c->redis_hosted_db)) goto err; redis_delete_call_json(c, r); rwlock_unlock_r(&c->master_lock); return; err: if (r->ctx && r->ctx->err) rlog(LOG_ERR, "Redis error: %s", r->ctx->errstr); redisFree(r->ctx); r->ctx = NULL; rwlock_unlock_r(&c->master_lock); } void redis_wipe(struct redis *r) { if (!r) return; LOCK(&r->lock); // coverity[sleep : FALSE] if (redis_check_conn(r) == REDIS_STATE_DISCONNECTED) return; redisCommandNR(r->ctx, "DEL calls"); } rtpengine-mr12.5.1.22/daemon/rtcp.c000066400000000000000000001423221474347554000167540ustar00rootroot00000000000000#include "rtcp.h" #include #include #include #include #include "compat.h" #include "str.h" #include "call.h" #include "log.h" #include "rtp.h" #include "crypto.h" #include "homer.h" #include "media_socket.h" #include "rtcplib.h" #include "ssrc.h" #include "sdp.h" #include "log_funcs.h" /* This toggles between two different and incompatible interpretations of * RFC 3711, namely sections 4.3.2 and 4.3.1. * See http://www.ietf.org/mail-archive/web/avt/current/msg06124.html * The default (define not set) is to be compatible with libsrtp, but * incompatible with a strict interpretation of the RFC. * * In Errata ID: 3712 the libsrtp behaviour (labels in the same place) * is now considered canonical. * * https://www.rfc-editor.org/errata_search.php?rfc=3711 * https://github.com/cisco/libsrtp/issues/150 */ #ifdef SRTCP_KEY_DERIVATION_RFC_COMPLIANCE #define SRTCP_R_LENGTH 4 #else #define SRTCP_R_LENGTH 6 #endif #define RTCP_PT_SR 200 /* sender report */ #define RTCP_PT_RR 201 /* receiver report */ #define RTCP_PT_SDES 202 /* source description */ #define RTCP_PT_BYE 203 /* bye */ #define RTCP_PT_APP 204 /* application specific */ #define RTCP_PT_RTPFB 205 /* transport layer feedback message (RTP/AVPF) */ #define RTCP_PT_PSFB 206 /* payload-specific feedback message (RTP/AVPF) */ #define RTCP_PT_XR 207 #define SDES_TYPE_END 0 #define SDES_TYPE_CNAME 1 #define SDES_TYPE_NAME 2 #define SDES_TYPE_EMAIL 3 #define SDES_TYPE_PHONE 4 #define SDES_TYPE_LOC 5 #define SDES_TYPE_TOOL 6 #define SDES_TYPE_NOTE 7 #define SDES_TYPE_PRIV 8 /* RTCP XR block types */ #define BT_LOSS_RLE 1 #define BT_DUP_RLE 2 #define BT_RCPT_TIMES 3 #define BT_RR_TIME 4 #define BT_DLRR 5 #define BT_STATS 6 #define BT_VOIP_METRICS 7 struct report_block { uint32_t ssrc; unsigned char fraction_lost; unsigned char number_lost[3]; uint32_t high_seq_received; uint32_t jitter; uint32_t lsr; uint32_t dlsr; } __attribute__ ((packed)); struct sender_report_packet { struct rtcp_packet rtcp; uint32_t ntp_msw; uint32_t ntp_lsw; uint32_t timestamp; uint32_t packet_count; uint32_t octet_count; struct report_block reports[0]; } __attribute__ ((packed)); struct receiver_report_packet { struct rtcp_packet rtcp; struct report_block reports[0]; } __attribute__ ((packed)); struct sdes_item { unsigned char type; unsigned char length; unsigned char data[0]; } __attribute__ ((packed)); struct sdes_chunk { uint32_t ssrc; struct sdes_item items[0]; } __attribute__ ((packed)); struct source_description_packet { struct rtcp_header header; struct sdes_chunk chunks[0]; } __attribute__ ((packed)); struct bye_packet { struct rtcp_header header; uint32_t ssrcs[0]; } __attribute__ ((packed)); struct app_packet { struct rtcp_packet rtcp; unsigned char name[4]; unsigned char data[0]; } __attribute__ ((packed)); struct fb_packet { struct rtcp_packet rtcp; uint32_t media_ssrc; unsigned char information[0]; } __attribute__ ((packed)); struct xr_report_block { uint8_t bt; /**< Block type. */ uint8_t specific; /**< Block specific data. */ uint16_t length; /**< Block length. */ } __attribute__ ((packed)); struct xr_packet { struct rtcp_packet rtcp; struct xr_report_block report_blocks[0]; } __attribute__ ((packed)); struct xr_rb_rr_time { struct xr_report_block header; uint32_t ntp_msw; /**< NTP time, seconds part. */ uint32_t ntp_lsw; /**< NTP time, fractions part. */ } __attribute__ ((packed)); struct xr_rb_dlrr_item { uint32_t ssrc; /**< receiver SSRC */ uint32_t lrr; /**< last receiver report */ uint32_t dlrr; /**< delay since last receiver report */ } __attribute__ ((packed)); struct xr_rb_dlrr { struct xr_report_block header; struct xr_rb_dlrr_item item; /**< Block contents, variable length list */ } __attribute__ ((packed)); struct xr_rb_stats { struct xr_report_block header; uint32_t ssrc; /**< Receiver SSRC */ uint16_t begin_seq; /**< Begin RTP sequence reported */ uint16_t end_seq; /**< End RTP sequence reported */ uint32_t lost; /**< Number of packet lost in this interval */ uint32_t dup; /**< Number of duplicated packet in this interval */ uint32_t jitter_min; /**< Minimum jitter in this interval */ uint32_t jitter_max; /**< Maximum jitter in this interval */ uint32_t jitter_mean; /**< Average jitter in this interval */ uint32_t jitter_dev; /**< Jitter deviation in this interval */ uint32_t toh_min:8; /**< Minimum ToH in this interval */ uint32_t toh_max:8; /**< Maximum ToH in this interval */ uint32_t toh_mean:8; /**< Average ToH in this interval */ uint32_t toh_dev:8; /**< ToH deviation in this interval */ } __attribute__ ((packed)); struct xr_rb_voip_metrics { struct xr_report_block header; uint32_t ssrc; /**< Receiver SSRC */ uint8_t loss_rate; /**< Packet loss rate */ uint8_t discard_rate; /**< Packet discarded rate */ uint8_t burst_den; /**< Burst density */ uint8_t gap_den; /**< Gap density */ uint16_t burst_dur; /**< Burst duration */ uint16_t gap_dur; /**< Gap duration */ uint16_t rnd_trip_delay;/**< Round trip delay */ uint16_t end_sys_delay; /**< End system delay */ uint8_t signal_lvl; /**< Signal level */ uint8_t noise_lvl; /**< Noise level */ uint8_t rerl; /**< Residual Echo Return Loss */ uint8_t gmin; /**< The gap threshold */ uint8_t r_factor; /**< Voice quality metric carried over this RTP session */ uint8_t ext_r_factor; /**< Voice quality metric carried outside of this RTP session*/ uint8_t mos_lq; /**< Mean Opinion Score for Listening Quality */ uint8_t mos_cq; /**< Mean Opinion Score for Conversation Quality */ uint8_t rx_config; /**< Receiver configuration */ uint8_t reserved2; /**< Not used */ uint16_t jb_nom; /**< Current delay by jitter buffer */ uint16_t jb_max; /**< Maximum delay by jitter buffer */ uint16_t jb_abs_max; /**< Maximum possible delay by jitter buffer */ } __attribute__ ((packed)); struct rtcp_chain_element { int type; unsigned int len; union { void *buf; struct rtcp_packet *rtcp_packet; struct sender_report_packet *sr; struct receiver_report_packet *rr; struct source_description_packet *sdes; struct bye_packet *bye; struct app_packet *app; struct xr_packet *xr; }; }; // log handlers // struct defs // context to hold state variables struct rtcp_process_ctx { // input struct media_packet *mp; // handler vars union { struct ssrc_receiver_report rr; struct ssrc_sender_report sr; struct ssrc_xr_voip_metrics xr_vm; struct ssrc_xr_rr_time xr_rr; struct ssrc_xr_dlrr xr_dlrr; } scratch; uint32_t scratch_common_ssrc; // RTCP syslog output GString *log; int log_init_len; // Homer stats GString *json; int json_init_len; // verdict unsigned int discard:1; }; // all available methods struct rtcp_handler { void (*init)(struct rtcp_process_ctx *); void (*start)(struct rtcp_process_ctx *, call_t *); void (*common)(struct rtcp_process_ctx *, struct rtcp_packet *); void (*sr)(struct rtcp_process_ctx *, struct sender_report_packet *); void (*rr_list_start)(struct rtcp_process_ctx *, const struct rtcp_packet *); void (*rr)(struct rtcp_process_ctx *, struct report_block *); void (*rr_list_end)(struct rtcp_process_ctx *); //void (*xr)(struct rtcp_process_ctx *, const struct rtcp_packet *, str *); void (*sdes_list_start)(struct rtcp_process_ctx *, const struct source_description_packet *); void (*sdes_item)(struct rtcp_process_ctx *, const struct sdes_chunk *, const struct sdes_item *, const char *); void (*sdes_list_end)(struct rtcp_process_ctx *); void (*xr_rb)(struct rtcp_process_ctx *, const struct xr_report_block *); void (*xr_dlrr)(struct rtcp_process_ctx *, const struct xr_rb_dlrr *); void (*xr_stats)(struct rtcp_process_ctx *, const struct xr_rb_stats *); void (*xr_rr_time)(struct rtcp_process_ctx *, const struct xr_rb_rr_time *); void (*xr_voip_metrics)(struct rtcp_process_ctx *, const struct xr_rb_voip_metrics *); void (*finish)(struct rtcp_process_ctx *, call_t *, const endpoint_t *, const endpoint_t *, const struct timeval *); void (*destroy)(struct rtcp_process_ctx *); }; // collection of all handler types struct rtcp_handlers { const struct rtcp_handler *scratch, *mos, *transcode, *logging, *homer; }; // log handler function prototypes // scratch area (prepare/parse packet) static void scratch_common(struct rtcp_process_ctx *, struct rtcp_packet *); static void scratch_sr(struct rtcp_process_ctx *, struct sender_report_packet *); static void scratch_rr(struct rtcp_process_ctx *, struct report_block *); static void scratch_xr_rr_time(struct rtcp_process_ctx *, const struct xr_rb_rr_time *); static void scratch_xr_dlrr(struct rtcp_process_ctx *, const struct xr_rb_dlrr *); static void scratch_xr_voip_metrics(struct rtcp_process_ctx *, const struct xr_rb_voip_metrics *); // MOS calculation / stats static void mos_sr(struct rtcp_process_ctx *, struct sender_report_packet *); static void mos_rr(struct rtcp_process_ctx *, struct report_block *); static void mos_xr_rr_time(struct rtcp_process_ctx *, const struct xr_rb_rr_time *); static void mos_xr_dlrr(struct rtcp_process_ctx *, const struct xr_rb_dlrr *); static void mos_xr_voip_metrics(struct rtcp_process_ctx *, const struct xr_rb_voip_metrics *); // RTCP translation for transcoding static void transcode_common(struct rtcp_process_ctx *, struct rtcp_packet *); static void transcode_rr(struct rtcp_process_ctx *, struct report_block *); static void transcode_sr(struct rtcp_process_ctx *, struct sender_report_packet *); // wrappers to enable dynamic transcoding static void transcode_common_wrap(struct rtcp_process_ctx *, struct rtcp_packet *); static void transcode_rr_wrap(struct rtcp_process_ctx *, struct report_block *); static void transcode_sr_wrap(struct rtcp_process_ctx *, struct sender_report_packet *); // RTCP sinks for local RTCP generation static void sink_common(struct rtcp_process_ctx *, struct rtcp_packet *); // homer functions static void homer_init(struct rtcp_process_ctx *); static void homer_sr(struct rtcp_process_ctx *, struct sender_report_packet *); static void homer_rr_list_start(struct rtcp_process_ctx *, const struct rtcp_packet *); static void homer_rr(struct rtcp_process_ctx *, struct report_block *); static void homer_rr_list_end(struct rtcp_process_ctx *); static void homer_sdes_list_start(struct rtcp_process_ctx *, const struct source_description_packet *); static void homer_sdes_item(struct rtcp_process_ctx *, const struct sdes_chunk *, const struct sdes_item *, const char *); static void homer_sdes_list_end(struct rtcp_process_ctx *); static void homer_finish(struct rtcp_process_ctx *, call_t *, const endpoint_t *, const endpoint_t *, const struct timeval *); // syslog functions static void logging_init(struct rtcp_process_ctx *); static void logging_start(struct rtcp_process_ctx *, call_t *); static void logging_common(struct rtcp_process_ctx *, struct rtcp_packet *); static void logging_sdes_list_start(struct rtcp_process_ctx *, const struct source_description_packet *); static void logging_sr(struct rtcp_process_ctx *, struct sender_report_packet *); static void logging_rr(struct rtcp_process_ctx *, struct report_block *); static void logging_xr_rb(struct rtcp_process_ctx *, const struct xr_report_block *); static void logging_xr_rr_time(struct rtcp_process_ctx *, const struct xr_rb_rr_time *); static void logging_xr_dlrr(struct rtcp_process_ctx *, const struct xr_rb_dlrr *); static void logging_xr_stats(struct rtcp_process_ctx *, const struct xr_rb_stats *); static void logging_xr_voip_metrics(struct rtcp_process_ctx *, const struct xr_rb_voip_metrics *); static void logging_finish(struct rtcp_process_ctx *, call_t *, const endpoint_t *, const endpoint_t *, const struct timeval *); static void logging_destroy(struct rtcp_process_ctx *); // structs for each handler type static struct rtcp_handler dummy_handlers; static struct rtcp_handler scratch_handlers = { .common = scratch_common, .rr = scratch_rr, .sr = scratch_sr, .xr_rr_time = scratch_xr_rr_time, .xr_dlrr = scratch_xr_dlrr, .xr_voip_metrics = scratch_xr_voip_metrics, }; static struct rtcp_handler mos_handlers = { .rr = mos_rr, .sr = mos_sr, .xr_rr_time = mos_xr_rr_time, .xr_dlrr = mos_xr_dlrr, .xr_voip_metrics = mos_xr_voip_metrics, }; static struct rtcp_handler transcode_handlers = { .common = transcode_common, .rr = transcode_rr, .sr = transcode_sr, }; static struct rtcp_handler sink_handlers = { .common = sink_common, }; static struct rtcp_handler transcode_handlers_wrap = { .common = transcode_common_wrap, .rr = transcode_rr_wrap, .sr = transcode_sr_wrap, }; static struct rtcp_handler log_handlers = { .init = logging_init, .start = logging_start, .common = logging_common, .sdes_list_start = logging_sdes_list_start, .sr = logging_sr, .rr = logging_rr, .xr_rb = logging_xr_rb, .xr_rr_time = logging_xr_rr_time, .xr_dlrr = logging_xr_dlrr, .xr_stats = logging_xr_stats, .xr_voip_metrics = logging_xr_voip_metrics, .finish = logging_finish, .destroy = logging_destroy, }; static struct rtcp_handler homer_handlers = { .init = homer_init, .sr = homer_sr, .rr_list_start = homer_rr_list_start, .rr = homer_rr, .rr_list_end = homer_rr_list_end, .sdes_list_start = homer_sdes_list_start, .sdes_item = homer_sdes_item, .sdes_list_end = homer_sdes_list_end, .finish = homer_finish, }; // main var to hold references static struct rtcp_handlers rtcp_handlers = { .scratch = &scratch_handlers, .mos = &mos_handlers, .transcode = &transcode_handlers_wrap, // remainder is variable }; // macro to call one handler #define CH(func, type, ...) do { \ if (rtcp_handlers.type->func) \ rtcp_handlers.type->func(log_ctx, ##__VA_ARGS__); \ } while (0) // macro to call all function handlers in one go // order is important #define CAH(func, ...) do { \ CH(func, scratch, ##__VA_ARGS__); /* first parse out the values into scratch area */ \ CH(func, mos, ##__VA_ARGS__); /* process for MOS calculation */ \ CH(func, logging, ##__VA_ARGS__); /* log packets to syslog */ \ CH(func, homer, ##__VA_ARGS__); /* send contents to homer */ \ CH(func, transcode, ##__VA_ARGS__); /* translate for transcoding */ \ } while (0) typedef int (*rtcp_handler_func)(struct rtcp_chain_element *, struct rtcp_process_ctx *); typedef void (*xr_handler_func)(void *, struct rtcp_process_ctx *); static int rtcp_sr(struct rtcp_chain_element *, struct rtcp_process_ctx *); static int rtcp_rr(struct rtcp_chain_element *, struct rtcp_process_ctx *); static int rtcp_sdes(struct rtcp_chain_element *, struct rtcp_process_ctx *); static int rtcp_xr(struct rtcp_chain_element *, struct rtcp_process_ctx *); static int rtcp_generic(struct rtcp_chain_element *, struct rtcp_process_ctx *); static void xr_rr_time(struct xr_rb_rr_time *, struct rtcp_process_ctx *); static void xr_dlrr(struct xr_rb_dlrr *, struct rtcp_process_ctx *); static void xr_stats(struct xr_rb_stats *, struct rtcp_process_ctx *); static void xr_voip_metrics(struct xr_rb_voip_metrics *, struct rtcp_process_ctx *); static const rtcp_handler_func handler_funcs[] = { [RTCP_PT_SR] = rtcp_sr, [RTCP_PT_RR] = rtcp_rr, [RTCP_PT_SDES] = rtcp_sdes, [RTCP_PT_BYE] = rtcp_generic, [RTCP_PT_APP] = rtcp_generic, [RTCP_PT_RTPFB] = rtcp_generic, [RTCP_PT_PSFB] = rtcp_generic, [RTCP_PT_XR] = rtcp_xr, }; static const int min_packet_sizes[] = { [RTCP_PT_SR] = sizeof(struct sender_report_packet), [RTCP_PT_RR] = sizeof(struct receiver_report_packet), [RTCP_PT_SDES] = sizeof(struct source_description_packet), [RTCP_PT_BYE] = sizeof(struct bye_packet), [RTCP_PT_APP] = sizeof(struct app_packet), [RTCP_PT_RTPFB] = sizeof(struct fb_packet), [RTCP_PT_PSFB] = sizeof(struct fb_packet), [RTCP_PT_XR] = sizeof(struct xr_packet), }; static const xr_handler_func xr_handler_funcs[] = { [BT_RR_TIME] = (void *) xr_rr_time, [BT_DLRR] = (void *) xr_dlrr, [BT_STATS] = (void *) xr_stats, [BT_VOIP_METRICS] = (void *) xr_voip_metrics, }; static const int min_xr_packet_sizes[] = { [BT_RR_TIME] = sizeof(struct xr_rb_rr_time), [BT_DLRR] = sizeof(struct xr_rb_dlrr), [BT_STATS] = sizeof(struct xr_rb_stats), [BT_VOIP_METRICS] = sizeof(struct xr_rb_voip_metrics), }; struct rtcp_handler *rtcp_transcode_handler = &transcode_handlers; struct rtcp_handler *rtcp_sink_handler = &sink_handlers; static struct rtcp_header *rtcp_length_check(str *s, size_t min_len, unsigned int *len_p) { struct rtcp_header *h; if (s->len < min_len) return NULL; h = (void *) s->s; *len_p = (ntohs(h->length) + 1) << 2; if (*len_p > s->len) return NULL; return h; } static struct rtcp_chain_element *rtcp_new_element(struct rtcp_header *p, unsigned int len) { struct rtcp_chain_element *el; el = g_slice_alloc(sizeof(*el)); el->type = p->pt; el->len = len; el->buf = p; return el; } static int rtcp_generic(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { return 0; } static int rtcp_Xr(struct rtcp_chain_element *el) { if (el->len < el->rtcp_packet->header.count * sizeof(struct report_block)) return -1; return 0; } static void rtcp_rr_list(const struct rtcp_packet *common, struct report_block *blocks, struct rtcp_process_ctx *log_ctx) { CAH(rr_list_start, common); for (unsigned int i = 0; i < common->header.count; i++) { struct report_block *block = &blocks[i]; CAH(rr, block); } CAH(rr_list_end); } static int rtcp_sr(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { if (rtcp_Xr(el)) return -1; CAH(common, &el->sr->rtcp); CAH(sr, el->sr); rtcp_rr_list(&el->sr->rtcp, el->sr->reports, log_ctx); return 0; } static int rtcp_rr(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { if (rtcp_Xr(el)) return -1; CAH(common, &el->rr->rtcp); rtcp_rr_list(&el->rr->rtcp, el->rr->reports, log_ctx); return 0; } static int rtcp_sdes(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { CAH(sdes_list_start, el->sdes); str comp_s = STR_INIT_LEN(el->sdes->chunks, el->len - sizeof(el->sdes->header)); int i = 0; while (1) { struct sdes_chunk *sdes_chunk = (struct sdes_chunk *) comp_s.s; if (str_shift(&comp_s, sizeof(*sdes_chunk))) break; while (comp_s.len) { struct sdes_item *sdes_item = (struct sdes_item *) comp_s.s; // check for zero type first if (str_shift(&comp_s, 1)) break; if (!sdes_item->type) break; if (str_shift(&comp_s, sizeof(*sdes_item) - 1)) break; if (comp_s.len < sdes_item->length) break; CAH(sdes_item, sdes_chunk, sdes_item, comp_s.s); str_shift(&comp_s, sdes_item->length); } // remove padding to next chunk while (comp_s.len % 4 != 0) str_shift(&comp_s, 1); // more chunks? set chunk header i++; if (i >= el->sdes->header.count) break; } CAH(sdes_list_end); return 0; } static void xr_rr_time(struct xr_rb_rr_time *rb, struct rtcp_process_ctx *log_ctx) { CAH(xr_rb, &rb->header); CAH(xr_rr_time, rb); } static void xr_dlrr(struct xr_rb_dlrr *rb, struct rtcp_process_ctx *log_ctx) { // XXX support multiple report blocks CAH(xr_rb, &rb->header); CAH(xr_dlrr, rb); } static void xr_stats(struct xr_rb_stats *rb, struct rtcp_process_ctx *log_ctx) { CAH(xr_rb, &rb->header); CAH(xr_stats, rb); } static void xr_voip_metrics(struct xr_rb_voip_metrics *rb, struct rtcp_process_ctx *log_ctx) { CAH(xr_rb, &rb->header); CAH(xr_voip_metrics, rb); } static int rtcp_xr(struct rtcp_chain_element *el, struct rtcp_process_ctx *log_ctx) { CAH(common, el->rtcp_packet); str comp_s = STR_INIT_LEN(el->buf + sizeof(el->xr->rtcp), el->len - sizeof(el->xr->rtcp)); while (1) { struct xr_report_block *rb = (void *) comp_s.s; if (comp_s.len < sizeof(*rb)) break; unsigned int len = (ntohs(rb->length) + 1) << 2; if (str_shift(&comp_s, len)) break; if (rb->bt >= G_N_ELEMENTS(xr_handler_funcs)) goto next; xr_handler_func hf = xr_handler_funcs[rb->bt]; if (!hf) goto next; if (rb->bt < G_N_ELEMENTS(min_xr_packet_sizes) && len < min_xr_packet_sizes[rb->bt]) { ilogs(rtcp, LOG_WARN, "Short RTCP XR block (type %u, %u < %i)", rb->bt, len, min_xr_packet_sizes[rb->bt]); goto next; } hf(rb, log_ctx); next: ; } return 0; } static void rtcp_ce_free(void *p) { g_slice_free1(sizeof(struct rtcp_chain_element), p); } void rtcp_list_free(GQueue *q) { g_queue_clear_full(q, rtcp_ce_free); } // returns: 0 = ok, forward, -1 = error, drop, 1 = ok, but discard (no forward) int rtcp_parse(GQueue *q, struct media_packet *mp) { struct rtcp_header *hdr; struct rtcp_chain_element *el; rtcp_handler_func func; str s = mp->raw; call_t *c = mp->call; struct rtcp_process_ctx log_ctx_s, *log_ctx; unsigned int len; int ret; int min_packet_size; ZERO(log_ctx_s); log_ctx_s.mp = mp; log_ctx = &log_ctx_s; CAH(init); CAH(start, c); while (1) { if (!(hdr = rtcp_length_check(&s, sizeof(*hdr), &len))) break; if (hdr->version != 2) { ilogs(rtcp, LOG_DEBUG, "Unknown RTCP version %u", hdr->version); goto error; } min_packet_size = 0; if (hdr->pt < G_N_ELEMENTS(min_packet_sizes)) min_packet_size = min_packet_sizes[hdr->pt]; if (len < min_packet_size) { ilogs(rtcp, LOG_WARN, "Invalid RTCP packet type %u (short: %u < %i)", hdr->pt, len, min_packet_size); goto error; } el = rtcp_new_element(hdr, len); if (hdr->pt >= G_N_ELEMENTS(handler_funcs)) { ilogs(rtcp, LOG_INFO, "Ignoring unknown RTCP packet type %u", hdr->pt); goto next; } func = handler_funcs[hdr->pt]; if (!func) { ilogs(rtcp, LOG_INFO, "Ignoring unknown RTCP packet type %u", hdr->pt); goto next; } ilogs(rtcp, LOG_DEBUG, "Calling handler for RTCP packet type %u", hdr->pt); ret = func(el, log_ctx); if (ret) { ilogs(rtcp, LOG_WARN, "Failed to handle or parse RTCP packet type %u", hdr->pt); rtcp_ce_free(el); goto error; } next: g_queue_push_tail(q, el); if (str_shift(&s, el->len)) abort(); } CAH(finish, c, &mp->fsin, &mp->sfd->socket.local, &mp->tv); CAH(destroy); return log_ctx->discard ? 1 : 0; error: CAH(finish, c, &mp->fsin, &mp->sfd->socket.local, &mp->tv); CAH(destroy); rtcp_list_free(q); return -1; } int rtcp_avpf2avp_filter(struct media_packet *mp, GQueue *rtcp_list) { GList *l; struct rtcp_chain_element *el; void *start; unsigned int removed, left; left = mp->raw.len; removed = 0; for (l = rtcp_list->head; l; l = l->next) { el = l->data; left -= el->len; switch (el->type) { case RTCP_PT_RTPFB: case RTCP_PT_PSFB: start = el->buf; memmove(start - removed, start + el->len - removed, left); removed += el->len; break; default: break; } } mp->raw.len -= removed; if (!mp->raw.len) return -1; return 0; } INLINE int check_session_keys(struct crypto_context *c) { str s; const char *err; if (c->have_session_key) return 0; err = "SRTCP output wanted, but no crypto suite was negotiated"; if (!c->params.crypto_suite) goto error; err = "Failed to generate SRTCP session keys"; str_init_len_assert(&s, c->session_key, c->params.crypto_suite->session_key_len); if (crypto_gen_session_key(c, &s, 0x03, SRTCP_R_LENGTH)) goto error; str_init_len_assert(&s, c->session_auth_key, c->params.crypto_suite->srtcp_auth_key_len); if (crypto_gen_session_key(c, &s, 0x04, SRTCP_R_LENGTH)) goto error; str_init_len_assert(&s, c->session_salt, c->params.crypto_suite->session_salt_len); if (crypto_gen_session_key(c, &s, 0x05, SRTCP_R_LENGTH)) goto error; c->have_session_key = 1; crypto_init_session_key(c); return 0; error: ilogs(rtcp, LOG_ERROR | LOG_FLAG_LIMIT, "%s", err); return -1; } int rtcp_payload(struct rtcp_packet **out, str *p, const str *s) { struct rtcp_packet *rtcp; const char *err; err = "short packet (header)"; if (s->len < sizeof(*rtcp)) goto error; rtcp = (void *) s->s; err = "invalid header version"; if (rtcp->header.version != 2) goto error; err = "invalid packet type"; switch (rtcp->header.pt) { case RTCP_PT_SR: case RTCP_PT_RR: // RFC 5506 case RTCP_PT_SDES: case RTCP_PT_BYE: case RTCP_PT_APP: // RFC 4585 + 5506 case RTCP_PT_PSFB: case RTCP_PT_RTPFB: // RFC 3611 + 5506 case RTCP_PT_XR: goto ok; } goto error; ok: if (!p) goto done; *p = *s; str_shift(p, sizeof(*rtcp)); done: *out = rtcp; return 0; error: ilogs(rtcp, LOG_DEBUG | LOG_FLAG_LIMIT, "Error parsing RTCP header: %s", err); return -1; } /* rfc 3711 section 3.4 */ int rtcp_avp2savp(str *s, struct crypto_context *c, struct ssrc_ctx *ssrc_ctx) { struct rtcp_packet *rtcp; unsigned int i; uint32_t *idx; str to_auth, payload; if (G_UNLIKELY(!ssrc_ctx)) return -1; if (rtcp_payload(&rtcp, &payload, s)) return -1; if (check_session_keys(c)) return -1; i = atomic_get_na(&ssrc_ctx->stats->rtcp_seq); crypto_debug_init(1); crypto_debug_printf("RTCP SSRC %" PRIx32 ", idx %u, plain pl: ", rtcp->ssrc, i); crypto_debug_dump(&payload); int prev_len = payload.len; if (!c->params.session_params.unencrypted_srtcp && crypto_encrypt_rtcp(c, rtcp, &payload, i)) return -1; s->len += payload.len - prev_len; crypto_debug_printf(", enc pl: "); crypto_debug_dump(&payload); idx = (void *) s->s + s->len; *idx = htonl((c->params.session_params.unencrypted_srtcp ? 0ULL : 0x80000000ULL) | i); s->len += sizeof(*idx); atomic_inc_na(&ssrc_ctx->stats->rtcp_seq); to_auth = *s; rtp_append_mki(s, c); if (c->params.crypto_suite->srtcp_auth_tag) { c->params.crypto_suite->hash_rtcp(c, s->s + s->len, &to_auth); crypto_debug_printf(", auth: "); crypto_debug_dump_raw(s->s + s->len, c->params.crypto_suite->srtcp_auth_tag); s->len += c->params.crypto_suite->srtcp_auth_tag; } crypto_debug_finish(); return 1; } /* rfc 3711 section 3.4 */ int rtcp_savp2avp(str *s, struct crypto_context *c, struct ssrc_ctx *ssrc_ctx) { struct rtcp_packet *rtcp; str payload, to_auth, to_decrypt, auth_tag; uint32_t idx; char hmac[20]; const char *err; if (G_UNLIKELY(!ssrc_ctx)) return -1; if (rtcp_payload(&rtcp, &payload, s)) return -1; if (check_session_keys(c)) return -1; crypto_debug_init(1); if (srtp_payloads(&to_auth, &to_decrypt, &auth_tag, NULL, c->params.crypto_suite->srtcp_auth_tag, c->params.mki_len, s, &payload)) return -1; crypto_debug_printf("RTCP SSRC %" PRIx32 ", enc pl: ", rtcp->ssrc); crypto_debug_dump(&to_decrypt); err = "short packet"; if (to_decrypt.len < sizeof(idx)) goto error; to_decrypt.len -= sizeof(idx); memcpy(&idx, to_decrypt.s + to_decrypt.len, sizeof(idx)); idx = ntohl(idx); crypto_debug_printf(", idx %" PRIu32, idx); if (!auth_tag.len) goto decrypt; // authenticate assert(sizeof(hmac) >= auth_tag.len); c->params.crypto_suite->hash_rtcp(c, hmac, &to_auth); crypto_debug_printf(", rcv hmac: "); crypto_debug_dump(&auth_tag); crypto_debug_printf(", calc hmac: "); crypto_debug_dump_raw(hmac, auth_tag.len); err = "authentication failed"; if (str_memcmp(&auth_tag, hmac)) goto error; decrypt:; int prev_len = to_decrypt.len; if ((idx & 0x80000000ULL)) { if (crypto_decrypt_rtcp(c, rtcp, &to_decrypt, idx & 0x7fffffffULL)) return -1; crypto_debug_printf(", dec pl: "); crypto_debug_dump(&to_decrypt); } *s = to_auth; s->len -= sizeof(idx); s->len -= prev_len - to_decrypt.len; crypto_debug_finish(); return 0; error: ilogs(rtcp, LOG_WARNING | LOG_FLAG_LIMIT, "Discarded invalid SRTCP packet: %s", err); return -1; } static void str_sanitize(GString *s) { while (s->len > 0 && (s->str[s->len - 1] == ' ' || s->str[s->len - 1] == ',')) g_string_truncate(s, s->len - 1); } static void scratch_common(struct rtcp_process_ctx *ctx, struct rtcp_packet *common) { ctx->scratch_common_ssrc = htonl(common->ssrc); } static void scratch_rr(struct rtcp_process_ctx *ctx, struct report_block *rr) { ctx->scratch.rr = (struct ssrc_receiver_report) { .from = ctx->scratch_common_ssrc, .ssrc = htonl(rr->ssrc), .high_seq_received = ntohl(rr->high_seq_received), .fraction_lost = rr->fraction_lost, .jitter = ntohl(rr->jitter), .lsr = ntohl(rr->lsr), .dlsr = ntohl(rr->dlsr), }; ctx->scratch.rr.packets_lost = (rr->number_lost[0] << 16) | (rr->number_lost[1] << 8) | rr->number_lost[2]; } static void scratch_sr(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { ctx->scratch.sr = (struct ssrc_sender_report) { .ssrc = ctx->scratch_common_ssrc, .ntp_msw = ntohl(sr->ntp_msw), .ntp_lsw = ntohl(sr->ntp_lsw), .octet_count = ntohl(sr->octet_count), .timestamp = ntohl(sr->timestamp), .packet_count = ntohl(sr->packet_count), }; } static void scratch_xr_rr_time(struct rtcp_process_ctx *ctx, const struct xr_rb_rr_time *rr) { ctx->scratch.xr_rr = (struct ssrc_xr_rr_time) { .ssrc = ctx->scratch_common_ssrc, .ntp_msw = ntohl(rr->ntp_msw), .ntp_lsw = ntohl(rr->ntp_lsw), }; } static void scratch_xr_dlrr(struct rtcp_process_ctx *ctx, const struct xr_rb_dlrr *dlrr) { ctx->scratch.xr_dlrr = (struct ssrc_xr_dlrr) { .from = ctx->scratch_common_ssrc, .ssrc = htonl(dlrr->item.ssrc), .lrr = ntohl(dlrr->item.lrr), .dlrr = ntohl(dlrr->item.dlrr), }; } static void scratch_xr_voip_metrics(struct rtcp_process_ctx *ctx, const struct xr_rb_voip_metrics *vm) { ctx->scratch.xr_vm = (struct ssrc_xr_voip_metrics) { .from = ctx->scratch_common_ssrc, .ssrc = ntohl(vm->ssrc), .loss_rate = vm->loss_rate, .discard_rate = vm->discard_rate, .burst_den = vm->burst_den, .gap_den = vm->gap_den, .burst_dur = ntohs(vm->burst_dur), .gap_dur = ntohs(vm->gap_dur), .rnd_trip_delay = ntohs(vm->rnd_trip_delay), .end_sys_delay = ntohs(vm->end_sys_delay), .signal_lvl = vm->signal_lvl, .noise_lvl = vm->noise_lvl, .rerl = vm->rerl, .gmin = vm->gmin, .r_factor = vm->r_factor, .ext_r_factor = vm->ext_r_factor, .mos_lq = vm->mos_lq, .mos_cq = vm->mos_cq, .rx_config = vm->rx_config, .jb_nom = ntohs(vm->jb_nom), .jb_max = ntohs(vm->jb_max), .jb_abs_max = ntohs(vm->jb_abs_max), }; } static void homer_init(struct rtcp_process_ctx *ctx) { ctx->json = g_string_new("{ "); ctx->json_init_len = ctx->json->len; } static void homer_sr(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { g_string_append_printf(ctx->json, "\"sender_information\":{\"ntp_timestamp_sec\":%u," "\"ntp_timestamp_usec\":%u,\"octets\":%u,\"rtp_timestamp\":%u, \"packets\":%u},", ctx->scratch.sr.ntp_msw, ctx->scratch.sr.ntp_lsw, ctx->scratch.sr.octet_count, ctx->scratch.sr.timestamp, ctx->scratch.sr.packet_count); } static void homer_rr_list_start(struct rtcp_process_ctx *ctx, const struct rtcp_packet *common) { g_string_append_printf(ctx->json, "\"ssrc\":%u,\"type\":%u,\"report_count\":%u,\"report_blocks\":[", ctx->scratch_common_ssrc, common->header.pt, common->header.count); } static void homer_rr(struct rtcp_process_ctx *ctx, struct report_block *rr) { g_string_append_printf(ctx->json, "{\"source_ssrc\":%u," "\"highest_seq_no\":%u,\"fraction_lost\":%u,\"ia_jitter\":%u," "\"packets_lost\":%u,\"lsr\":%u,\"dlsr\":%u},", ctx->scratch.rr.ssrc, ctx->scratch.rr.high_seq_received, ctx->scratch.rr.fraction_lost, ctx->scratch.rr.jitter, ctx->scratch.rr.packets_lost, ctx->scratch.rr.lsr, ctx->scratch.rr.dlsr); } static void homer_rr_list_end(struct rtcp_process_ctx *ctx) { str_sanitize(ctx->json); g_string_append_printf(ctx->json, "],"); } static void homer_sdes_list_start(struct rtcp_process_ctx *ctx, const struct source_description_packet *sdes) { g_string_append_printf(ctx->json, "\"sdes_report_count\":%u,\"sdes_information\": [ ", sdes->header.count); } static void homer_sdes_item(struct rtcp_process_ctx *ctx, const struct sdes_chunk *chunk, const struct sdes_item *item, const char *data) { int i; g_string_append_printf(ctx->json, "{\"sdes_chunk_ssrc\":%u,\"type\":%u,\"text\":\"", htonl(chunk->ssrc), item->type); for (i = 0; i < item->length; i++) { switch (data[i]) { case '"': g_string_append(ctx->json, "\\\""); break; case '\\': g_string_append(ctx->json, "\\\\"); break; case '\b': g_string_append(ctx->json, "\\b"); break; case '\f': g_string_append(ctx->json, "\\f"); break; case '\n': g_string_append(ctx->json, "\\n"); break; case '\r': g_string_append(ctx->json, "\\r"); break; case '\t': g_string_append(ctx->json, "\\t"); break; default: if (data[i] < ' ' || data[i] > 126) g_string_append_c(ctx->json, '_'); else g_string_append_c(ctx->json, data[i]); break; } } g_string_append(ctx->json, "\"},"); } static void homer_sdes_list_end(struct rtcp_process_ctx *ctx) { str_sanitize(ctx->json); g_string_append_printf(ctx->json, "],"); } static void homer_finish(struct rtcp_process_ctx *ctx, call_t *c, const endpoint_t *src, const endpoint_t *dst, const struct timeval *tv) { str_sanitize(ctx->json); g_string_append(ctx->json, " }"); if (ctx->json->len > ctx->json_init_len + 2) homer_send(ctx->json, &c->callid, src, dst, tv, PROTO_RTCP_JSON); else g_string_free(ctx->json, TRUE); ctx->json = NULL; } static void logging_init(struct rtcp_process_ctx *ctx) { ctx->log = g_string_new(NULL); } static void logging_start(struct rtcp_process_ctx *ctx, call_t *c) { g_string_append_printf(ctx->log, "["STR_FORMAT"] ", STR_FMT(&c->callid)); ctx->log_init_len = ctx->log->len; } static void logging_common(struct rtcp_process_ctx *ctx, struct rtcp_packet *common) { g_string_append_printf(ctx->log,"version=%u, padding=%u, count=%u, payloadtype=%u, length=%u, ssrc=%u, ", common->header.version, common->header.p, common->header.count, common->header.pt, ntohs(common->header.length), ctx->scratch_common_ssrc); } static void logging_sdes_list_start(struct rtcp_process_ctx *ctx, const struct source_description_packet *sdes) { g_string_append_printf(ctx->log,"version=%u, padding=%u, count=%u, payloadtype=%u, length=%u, ", sdes->header.version, sdes->header.p, sdes->header.count, sdes->header.pt, ntohs(sdes->header.length)); } static void logging_sr(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { g_string_append_printf(ctx->log,"ntp_sec=%u, ntp_fractions=%u, rtp_ts=%u, sender_packets=%u, " \ "sender_bytes=%u, ", ctx->scratch.sr.ntp_msw, ctx->scratch.sr.ntp_lsw, ctx->scratch.sr.timestamp, ctx->scratch.sr.packet_count, ctx->scratch.sr.octet_count); } static void logging_rr(struct rtcp_process_ctx *ctx, struct report_block *rr) { g_string_append_printf(ctx->log,"ssrc=%u, fraction_lost=%u, packet_loss=%u, last_seq=%u, jitter=%u, last_sr=%u, delay_since_last_sr=%u, ", ctx->scratch.rr.ssrc, rr->fraction_lost, ctx->scratch.rr.packets_lost, ctx->scratch.rr.high_seq_received, ctx->scratch.rr.jitter, ctx->scratch.rr.lsr, ctx->scratch.rr.dlsr); } //static void logging_xr(struct rtcp_process_ctx *ctx, const struct rtcp_packet *common, str *comp_s) { //pjmedia_rtcp_xr_rx_rtcp_xr(ctx->log, common, comp_s); //} static void logging_xr_rb(struct rtcp_process_ctx *ctx, const struct xr_report_block *rb_header) { g_string_append_printf(ctx->log, "rb_header_blocktype=%u, rb_header_blockspecdata=%u, " \ "rb_header_blocklength=%u, ", rb_header->bt, rb_header->specific, ntohs(rb_header->length)); } static void logging_xr_rr_time(struct rtcp_process_ctx *ctx, const struct xr_rb_rr_time *rb_rr_time) { g_string_append_printf(ctx->log, "rb_rr_time_ntp_sec=%u, rb_rr_time_ntp_frac=%u, ", ntohl(ctx->scratch.xr_rr.ntp_msw), ntohl(ctx->scratch.xr_rr.ntp_lsw)); } static void logging_xr_dlrr(struct rtcp_process_ctx *ctx, const struct xr_rb_dlrr *rb_dlrr) { g_string_append_printf(ctx->log, "rb_dlrr_ssrc=%u, rb_dlrr_lrr=%u, rb_dlrr_dlrr=%u, ", ntohl(ctx->scratch.xr_dlrr.ssrc), ntohl(ctx->scratch.xr_dlrr.lrr), ntohl(ctx->scratch.xr_dlrr.dlrr)); } static void logging_xr_stats(struct rtcp_process_ctx *ctx, const struct xr_rb_stats *rb_stats) { g_string_append_printf(ctx->log, "rb_stats_ssrc=%u, rb_stats_begin_seq=%u, rb_stats_end_seq=%u, rb_stats_lost_packets=%u, rb_stats_duplicate_packets=%u," "rb_stats_jitter_min=%u, rb_stats_jitter_max=%u, rb_stats_jitter_mean=%u, rb_stats_jitter_deviation=%u," "rb_stats_toh_min=%u, rb_stats_toh_max=%u, rb_stats_toh_mean=%u, rb_stats_toh_deviation=%u, ", ntohl(rb_stats->ssrc), ntohs(rb_stats->begin_seq), ntohl(rb_stats->end_seq), ntohl(rb_stats->lost), ntohl(rb_stats->dup), ntohl(rb_stats->jitter_min), ntohl(rb_stats->jitter_max), ntohl(rb_stats->jitter_mean), ntohl(rb_stats->jitter_dev), ntohl(rb_stats->toh_min), ntohl(rb_stats->toh_max), ntohl(rb_stats->toh_mean), ntohl(rb_stats->toh_dev)); } static void logging_xr_voip_metrics(struct rtcp_process_ctx *ctx, const struct xr_rb_voip_metrics *rb_voip_mtc) { g_string_append_printf(ctx->log, "rb_voip_mtc_ssrc=%u, rb_voip_mtc_loss_rate=%u, " \ "rb_voip_mtc_discard_rate=%u, rb_voip_mtc_burst_den=%u, " "rb_voip_mtc_gap_den=%u, rb_voip_mtc_burst_dur=%u, rb_voip_mtc_gap_dur=%u, " \ "rb_voip_mtc_rnd_trip_delay=%u, " "rb_voip_mtc_end_sys_delay=%u, rb_voip_mtc_signal_lvl=%u, rb_voip_mtc_noise_lvl=%u, " \ "rb_voip_mtc_rerl=%u, " "rb_voip_mtc_gmin=%u, rb_voip_mtc_r_factor=%u, rb_voip_mtc_ext_r_factor=%u, " \ "rb_voip_mtc_mos_lq=%u, " "rb_voip_mtc_mos_cq=%u, rb_voip_mtc_rx_config=%u, rb_voip_mtc_jb_nom=%u, " \ "rb_voip_mtc_jb_max=%u, " "rb_voip_mtc_jb_abs_max=%u, ", ctx->scratch.xr_vm.ssrc, ctx->scratch.xr_vm.loss_rate, ctx->scratch.xr_vm.discard_rate, ctx->scratch.xr_vm.burst_den, ctx->scratch.xr_vm.gap_den, ctx->scratch.xr_vm.burst_dur, ctx->scratch.xr_vm.gap_dur, ctx->scratch.xr_vm.rnd_trip_delay, ctx->scratch.xr_vm.end_sys_delay, ctx->scratch.xr_vm.signal_lvl, ctx->scratch.xr_vm.noise_lvl, ctx->scratch.xr_vm.rerl, ctx->scratch.xr_vm.gmin, ctx->scratch.xr_vm.r_factor, ctx->scratch.xr_vm.ext_r_factor, ctx->scratch.xr_vm.mos_lq, ctx->scratch.xr_vm.mos_cq, ctx->scratch.xr_vm.rx_config, ctx->scratch.xr_vm.jb_nom, ctx->scratch.xr_vm.jb_max, ctx->scratch.xr_vm.jb_abs_max); } static void logging_finish(struct rtcp_process_ctx *ctx, call_t *c, const endpoint_t *src, const endpoint_t *dst, const struct timeval *tv) { str_sanitize(ctx->log); if (ctx->log->len > ctx->log_init_len) rtcplog(ctx->log->str); } static void logging_destroy(struct rtcp_process_ctx *ctx) { g_string_free(ctx->log, TRUE); } static void mos_sr(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { ssrc_sender_report(ctx->mp->media, &ctx->scratch.sr, &ctx->mp->tv); } static void mos_rr(struct rtcp_process_ctx *ctx, struct report_block *rr) { ssrc_receiver_report(ctx->mp->media, ctx->mp->sfd, &ctx->scratch.rr, &ctx->mp->tv); } static void mos_xr_rr_time(struct rtcp_process_ctx *ctx, const struct xr_rb_rr_time *rr) { ssrc_receiver_rr_time(ctx->mp->media, &ctx->scratch.xr_rr, &ctx->mp->tv); } static void mos_xr_dlrr(struct rtcp_process_ctx *ctx, const struct xr_rb_dlrr *dlrr) { ssrc_receiver_dlrr(ctx->mp->media, &ctx->scratch.xr_dlrr, &ctx->mp->tv); } static void mos_xr_voip_metrics(struct rtcp_process_ctx *ctx, const struct xr_rb_voip_metrics *rb_voip_mtc) { ssrc_voip_metrics(ctx->mp->media, &ctx->scratch.xr_vm, &ctx->mp->tv); } static void transcode_common(struct rtcp_process_ctx *ctx, struct rtcp_packet *common) { if (!ctx->mp->ssrc_in) return; if (ctx->scratch_common_ssrc != ctx->mp->ssrc_in->parent->h.ssrc) return; // forward SSRC mapping common->ssrc = htonl(ctx->mp->ssrc_in->ssrc_map_out); ilogs(rtcp, LOG_DEBUG, "Substituting RTCP header SSRC from %s%x%s to %x", FMT_M(ctx->scratch_common_ssrc), ctx->mp->ssrc_in->ssrc_map_out); } static void transcode_rr(struct rtcp_process_ctx *ctx, struct report_block *rr) { if (!ctx->mp->ssrc_in) return; if (ctx->scratch.rr.from != ctx->mp->ssrc_in->parent->h.ssrc) return; if (!ctx->mp->media) return; // reverse SSRC mapping struct ssrc_ctx *map_ctx = get_ssrc_ctx(ctx->scratch.rr.ssrc, ctx->mp->media->monologue->ssrc_hash, SSRC_DIR_OUTPUT, ctx->mp->media->monologue); rr->ssrc = htonl(map_ctx->ssrc_map_out); if (!ctx->mp->media_out) return; // for reception stats struct ssrc_ctx *input_ctx = get_ssrc_ctx(map_ctx->ssrc_map_out, ctx->mp->media_out->monologue->ssrc_hash, SSRC_DIR_INPUT, NULL); if (!input_ctx) return; // substitute our own values unsigned int packets = atomic64_get(&input_ctx->stats->packets); // we might not be keeping track of stats for this SSRC (handler_func_passthrough_ssrc). // just leave the values in place. if (!packets) goto out; unsigned int lost = input_ctx->parent->packets_lost; unsigned int dupes = input_ctx->parent->duplicates; unsigned int tot_lost = lost - dupes; // can be negative/rollover ilogs(rtcp, LOG_DEBUG, "Substituting RTCP RR SSRC from %s%x%s to %x: %u packets, %u lost, %u duplicates", FMT_M(ctx->scratch.rr.ssrc), map_ctx->ssrc_map_out, packets, lost, dupes); if (G_UNLIKELY(tot_lost > 0xffffff)) memset(rr->number_lost, 0xff, sizeof(rr->number_lost)); else { rr->number_lost[0] = (tot_lost & 0xff0000) >> 16; rr->number_lost[1] = (tot_lost & 0x00ff00) >> 8; rr->number_lost[2] = (tot_lost & 0x0000ff) >> 0; } unsigned int exp_packets = packets + lost; if (dupes > lost || exp_packets == 0) // negative rr->fraction_lost = 0; else rr->fraction_lost = tot_lost * 256 / (packets + lost); rr->high_seq_received = htonl(atomic_get_na(&input_ctx->stats->ext_seq)); // XXX jitter, last SR out: if (input_ctx) obj_put(&input_ctx->parent->h); obj_put(&map_ctx->parent->h); } static void transcode_sr(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { if (!ctx->mp->ssrc_in) return; if (ctx->scratch.sr.ssrc != ctx->mp->ssrc_in->parent->h.ssrc) return; if (!ctx->mp->ssrc_out) return; unsigned int packets = atomic64_get(&ctx->mp->ssrc_out->stats->packets); // we might not be keeping track of stats for this SSRC (handler_func_passthrough_ssrc). // just leave the values in place. if (!packets) return; // substitute our own values sr->octet_count = htonl(atomic64_get(&ctx->mp->ssrc_out->stats->bytes)); sr->packet_count = htonl(packets); sr->timestamp = htonl(atomic_get_na(&ctx->mp->ssrc_out->stats->timestamp)); // XXX NTP timestamp } static void transcode_common_wrap(struct rtcp_process_ctx *ctx, struct rtcp_packet *common) { if (!ctx->mp->media->rtcp_handler) return; if (ctx->mp->media->rtcp_handler->common) ctx->mp->media->rtcp_handler->common(ctx, common); } static void transcode_rr_wrap(struct rtcp_process_ctx *ctx, struct report_block *rr) { if (!ctx->mp->media->rtcp_handler) return; if (ctx->mp->media->rtcp_handler->rr) ctx->mp->media->rtcp_handler->rr(ctx, rr); } static void transcode_sr_wrap(struct rtcp_process_ctx *ctx, struct sender_report_packet *sr) { if (!ctx->mp->media->rtcp_handler) return; if (ctx->mp->media->rtcp_handler->sr) ctx->mp->media->rtcp_handler->sr(ctx, sr); } void rtcp_init(void) { rtcp_handlers.logging = _log_facility_rtcp ? &log_handlers : &dummy_handlers; rtcp_handlers.homer = has_homer() && !rtpe_config.homer_rtcp_off ? &homer_handlers : &dummy_handlers; } static GString *rtcp_sender_report(struct ssrc_sender_report *ssr, uint32_t ssrc, uint32_t ssrc_out, uint32_t ts, uint32_t packets, uint32_t octets, GQueue *rrs, GQueue *srrs) { GString *ret = g_string_sized_new(128); g_string_set_size(ret, sizeof(struct sender_report_packet)); struct sender_report_packet *sr = (void *) ret->str; *sr = (struct sender_report_packet) { .rtcp.header.version = 2, .rtcp.header.pt = RTCP_PT_SR, .rtcp.ssrc = htonl(ssrc), .ntp_msw = htonl(rtpe_now.tv_sec + 2208988800), .ntp_lsw = htonl((4294967295ULL * rtpe_now.tv_usec) / 1000000ULL), .timestamp = htonl(ts), // XXX calculate from rtpe_now instead .packet_count = htonl(packets), .octet_count = htonl(octets), }; if (ssr) { *ssr = (struct ssrc_sender_report) { .ssrc = ssrc_out, .ntp_msw = rtpe_now.tv_sec + 2208988800, .ntp_lsw = (4294967295ULL * rtpe_now.tv_usec) / 1000000ULL, .timestamp = ts, // XXX calculate from rtpe_now instead .packet_count = packets, .octet_count = octets, }; } // receiver reports int i = 0, n = 0; while (rrs->length) { struct ssrc_ctx *s = g_queue_pop_head(rrs); if (i < 30) { g_string_set_size(ret, ret->len + sizeof(struct report_block)); struct report_block *rr = (void *) ret->str + ret->len - sizeof(struct report_block); // XXX unify with transcode_rr // last received SR? struct ssrc_entry_call *se = s->parent; long long tv_diff = 0; uint32_t ntp_middle_bits = 0; mutex_lock(&se->h.lock); if (se->sender_reports.length) { struct ssrc_time_item *si = se->sender_reports.tail->data; tv_diff = timeval_diff(&rtpe_now, &si->received); ntp_middle_bits = si->ntp_middle_bits; } uint32_t jitter = se->jitter; mutex_unlock(&se->h.lock); uint64_t lost = se->packets_lost; uint64_t tot = atomic64_get(&s->stats->packets); *rr = (struct report_block) { .ssrc = htonl(s->parent->h.ssrc), .fraction_lost = lost * 256 / (tot + lost), .number_lost[0] = (lost >> 16) & 0xff, .number_lost[1] = (lost >> 8) & 0xff, .number_lost[2] = lost & 0xff, .high_seq_received = htonl(atomic_get_na(&s->stats->ext_seq)), .lsr = htonl(ntp_middle_bits), .dlsr = htonl(tv_diff * 65536 / 1000000), .jitter = htonl(jitter >> 4), }; if (srrs) { struct ssrc_receiver_report *srr = g_slice_alloc(sizeof(*srr)); *srr = (struct ssrc_receiver_report) { .from = ssrc_out, .ssrc = s->parent->h.ssrc, .fraction_lost = lost * 256 / (tot + lost), .packets_lost = lost, .high_seq_received = atomic_get_na(&s->stats->ext_seq), .lsr = ntp_middle_bits, .dlsr = tv_diff * 65536 / 1000000, .jitter = jitter >> 4, }; g_queue_push_tail(srrs, srr); } n++; } ssrc_ctx_put(&s); i++; } sr = (void *) ret->str; // reacquire ptr after g_string_set_size sr->rtcp.header.count = n; sr->rtcp.header.length = htons((ret->len >> 2) - 1); // sdes assert(rtpe_instance_id.len == 12); struct { struct source_description_packet sdes; struct sdes_chunk chunk; struct sdes_item cname; char str[12]; char nul; char pad; } __attribute__ ((packed)) *sdes; assert(sizeof(*sdes) == 24); g_string_set_size(ret, ret->len + sizeof(*sdes)); sdes = (void *) ret->str + ret->len - sizeof(*sdes); *sdes = (__typeof(*sdes)) { .sdes.header.version = 2, .sdes.header.pt = RTCP_PT_SDES, .sdes.header.count = 1, .sdes.header.length = htons((sizeof(*sdes) >> 2) - 1), .chunk.ssrc = htonl(ssrc), .cname.type = SDES_TYPE_CNAME, .cname.length = rtpe_instance_id.len, .nul = 0, .pad = 0, }; memcpy(sdes->str, rtpe_instance_id.s, rtpe_instance_id.len); return ret; } void rtcp_receiver_reports(GQueue *out, struct ssrc_hash *hash, struct call_monologue *ml) { rwlock_lock_r(&hash->lock); for (GList *l = hash->q.head; l; l = l->next) { struct ssrc_entry_call *e = l->data; struct ssrc_ctx *i = &e->input_ctx; if (i->ref != ml) continue; if (!atomic64_get_na(&i->stats->packets)) continue; ssrc_ctx_hold(i); g_queue_push_tail(out, i); } rwlock_unlock_r(&hash->lock); } // call must be locked in R void rtcp_send_report(struct call_media *media, struct ssrc_ctx *ssrc_out) { // figure out where to send it struct packet_stream *ps = media->streams.head->data; // crypto context is held separately struct packet_stream *rtcp_ps = media->streams.head->next ? media->streams.head->next->data : ps; if (MEDIA_ISSET(media, RTCP_MUX)) ; else { if (PS_ISSET(rtcp_ps, RTCP)) ps = rtcp_ps; else rtcp_ps = ps; } if (!ps->selected_sfd || !rtcp_ps->selected_sfd) return; if (ps->selected_sfd->socket.fd == -1 || ps->endpoint.address.family == NULL) return; log_info_stream_fd(ps->selected_sfd); GQueue rrs = G_QUEUE_INIT; rtcp_receiver_reports(&rrs, media->monologue->ssrc_hash, ps->media->monologue); ilogs(rtcp, LOG_DEBUG, "Generating and sending RTCP SR for %x and up to %i source(s)", ssrc_out->parent->h.ssrc, rrs.length); struct ssrc_sender_report ssr; GQueue srrs = G_QUEUE_INIT; GString *sr = rtcp_sender_report(&ssr, ssrc_out->parent->h.ssrc, ssrc_out->ssrc_map_out ? : ssrc_out->parent->h.ssrc, atomic_get_na(&ssrc_out->stats->timestamp), atomic64_get_na(&ssrc_out->stats->packets), atomic64_get(&ssrc_out->stats->bytes), &rrs, &srrs); // handle crypto str rtcp_packet = STR_INIT_GS(sr); const struct streamhandler *crypt_handler = determine_handler(&transport_protocols[PROTO_RTP_AVP], media, true); if (crypt_handler && crypt_handler->out->rtcp_crypt) { g_string_set_size(sr, sr->len + RTP_BUFFER_TAIL_ROOM); rtcp_packet = STR_INIT_LEN(sr->str, sr->len - RTP_BUFFER_TAIL_ROOM); crypt_handler->out->rtcp_crypt(&rtcp_packet, ps, ssrc_out); } socket_sendto(&ps->selected_sfd->socket, rtcp_packet.s, rtcp_packet.len, &ps->endpoint); g_string_free(sr, TRUE); sink_handler_q *sinks = ps->rtp_sinks.length ? &ps->rtp_sinks : &ps->rtcp_sinks; for (__auto_type l = sinks->head; l; l = l->next) { struct sink_handler *sh = l->data; struct packet_stream *sink = sh->sink; struct call_media *other_media = sink->media; ssrc_sender_report(other_media, &ssr, &rtpe_now); for (GList *k = srrs.head; k; k = k->next) { struct ssrc_receiver_report *srr = k->data; ssrc_receiver_report(other_media, sink->selected_sfd, srr, &rtpe_now); } } while (srrs.length) { struct ssrc_receiver_report *srr = g_queue_pop_head(&srrs); g_slice_free1(sizeof(*srr), srr); } } static void sink_common(struct rtcp_process_ctx *ctx, struct rtcp_packet *common) { ctx->discard = 1; } rtpengine-mr12.5.1.22/daemon/rtp.c000066400000000000000000000203641474347554000166120ustar00rootroot00000000000000#include "rtp.h" #include #include #include #include "compat.h" #include "str.h" #include "crypto.h" #include "log.h" #include "rtplib.h" #include "ssrc.h" #include "call.h" INLINE int check_session_keys(struct crypto_context *c) { str s; const char *err; if (G_LIKELY(c->have_session_key)) return 0; err = "SRTP output wanted, but no crypto suite was negotiated"; if (!c->params.crypto_suite) goto error; err = "Failed to generate SRTP session keys"; str_init_len_assert(&s, c->session_key, c->params.crypto_suite->session_key_len); if (crypto_gen_session_key(c, &s, 0x00, 6)) goto error; str_init_len_assert(&s, c->session_auth_key, c->params.crypto_suite->srtp_auth_key_len); if (crypto_gen_session_key(c, &s, 0x01, 6)) goto error; str_init_len_assert(&s, c->session_salt, c->params.crypto_suite->session_salt_len); if (crypto_gen_session_key(c, &s, 0x02, 6)) goto error; c->have_session_key = 1; crypto_init_session_key(c); return 0; error: ilogs(srtp, LOG_ERROR | LOG_FLAG_LIMIT, "%s", err); return -1; } static unsigned int packet_index(struct ssrc_ctx *ssrc_ctx, struct rtp_header *rtp) { uint16_t seq; seq = ntohs(rtp->seq_num); crypto_debug_init((seq & 0x1ff) == (ssrc_ctx->parent->h.ssrc & 0x1ff)); crypto_debug_printf("SSRC %" PRIx32 ", seq %" PRIu16, ssrc_ctx->parent->h.ssrc, seq); /* rfc 3711 section 3.3.1 */ unsigned int srtp_index = atomic_get_na(&ssrc_ctx->stats->ext_seq); if (G_UNLIKELY(!srtp_index)) atomic_set_na(&ssrc_ctx->stats->ext_seq, srtp_index = seq); /* rfc 3711 appendix A, modified, and sections 3.3 and 3.3.1 */ uint16_t s_l = (srtp_index & 0x00000000ffffULL); uint32_t roc = (srtp_index & 0xffffffff0000ULL) >> 16; uint32_t v = 0; crypto_debug_printf(", prev seq %u, s_l %" PRIu16 ", ROC %" PRIu32, srtp_index, s_l, roc); if (s_l < 0x8000) { if (((seq - s_l) > 0x8000) && roc > 0) v = (roc - 1) % 0x10000; else v = roc; } else { if ((s_l - 0x8000) > seq) v = (roc + 1) % 0x10000; else v = roc; } srtp_index = (uint64_t)(((v << 16) | seq) & 0xffffffffffffULL); atomic_set_na(&ssrc_ctx->stats->ext_seq, srtp_index); crypto_debug_printf(", v %" PRIu32 ", ext seq %u", v, srtp_index); return srtp_index; } void rtp_append_mki(str *s, struct crypto_context *c) { char *p; if (!c->params.mki_len) return; /* RTP_BUFFER_TAIL_ROOM guarantees enough room */ p = s->s + s->len; memcpy(p, c->params.mki, c->params.mki_len); s->len += c->params.mki_len; crypto_debug_printf(", MKI: "); crypto_debug_dump_raw(p, c->params.mki_len); } /* rfc 3711, section 3.3 */ int rtp_avp2savp(str *s, struct crypto_context *c, struct ssrc_ctx *ssrc_ctx) { struct rtp_header *rtp; str payload, to_auth; unsigned int index; if (G_UNLIKELY(!ssrc_ctx)) return -1; if (rtp_payload(&rtp, &payload, s)) return -1; if (check_session_keys(c)) return -1; index = packet_index(ssrc_ctx, rtp); crypto_debug_printf(", plain pl: "); crypto_debug_dump(&payload); /* rfc 3711 section 3.1 */ int prev_len = payload.len; if (!c->params.session_params.unencrypted_srtp && crypto_encrypt_rtp(c, rtp, &payload, index)) return -1; s->len += payload.len - prev_len; crypto_debug_printf(", enc pl: "); crypto_debug_dump(&payload); to_auth = *s; rtp_append_mki(s, c); if (!c->params.session_params.unauthenticated_srtp && c->params.crypto_suite->srtp_auth_tag) { c->params.crypto_suite->hash_rtp(c, s->s + s->len, &to_auth, index); crypto_debug_printf(", auth: "); crypto_debug_dump_raw(s->s + s->len, c->params.crypto_suite->srtp_auth_tag); s->len += c->params.crypto_suite->srtp_auth_tag; } crypto_debug_finish(); return 0; } /* rfc 3711, section 3.3 */ int rtp_savp2avp(str *s, struct crypto_context *c, struct ssrc_ctx *ssrc_ctx) { struct rtp_header *rtp; unsigned int index; str payload, to_auth, to_decrypt, auth_tag; char hmac[20]; if (G_UNLIKELY(!ssrc_ctx)) return -1; if (rtp_payload(&rtp, &payload, s)) return -1; if (check_session_keys(c)) return -1; index = packet_index(ssrc_ctx, rtp); if (srtp_payloads(&to_auth, &to_decrypt, &auth_tag, NULL, c->params.session_params.unauthenticated_srtp ? 0 : c->params.crypto_suite->srtp_auth_tag, c->params.mki_len, s, &payload)) return -1; crypto_debug_printf(", enc pl: "); crypto_debug_dump(&to_decrypt); if (!auth_tag.len) goto decrypt; /* authenticate */ assert(sizeof(hmac) >= auth_tag.len); c->params.crypto_suite->hash_rtp(c, hmac, &to_auth, index); crypto_debug_printf(", rcv hmac: "); crypto_debug_dump(&auth_tag); crypto_debug_printf(", calc hmac: "); crypto_debug_dump_raw(hmac, auth_tag.len); if (!str_memcmp(&auth_tag, hmac)) goto decrypt; /* possible ROC mismatch, attempt to guess */ /* first, let's see if we missed a rollover */ index += 0x10000; c->params.crypto_suite->hash_rtp(c, hmac, &to_auth, index); crypto_debug_printf(", calc hmac 2: "); crypto_debug_dump_raw(hmac, auth_tag.len); if (!str_memcmp(&auth_tag, hmac)) goto decrypt_idx; /* or maybe we did a rollover too many */ if (index >= 0x20000) { index -= 0x20000; c->params.crypto_suite->hash_rtp(c, hmac, &to_auth, index); crypto_debug_printf(", calc hmac 3: "); crypto_debug_dump_raw(hmac, auth_tag.len); if (!str_memcmp(&auth_tag, hmac)) goto decrypt_idx; } /* last guess: reset ROC to zero */ index &= 0xffff; c->params.crypto_suite->hash_rtp(c, hmac, &to_auth, index); crypto_debug_printf(", calc hmac 4: "); crypto_debug_dump_raw(hmac, auth_tag.len); if (!str_memcmp(&auth_tag, hmac)) goto decrypt_idx; goto error; decrypt_idx: ilog(LOG_DEBUG, "Detected unexpected SRTP ROC reset (from %u to %u)", atomic_get_na(&ssrc_ctx->stats->ext_seq), index); atomic_set_na(&ssrc_ctx->stats->ext_seq, index); decrypt:; int prev_len = to_decrypt.len; if (c->params.session_params.unencrypted_srtp) { } // nothing to do else { int ret; int guess = 0; while (true) { // make backup in case of failed decryption clobbers the buffer // XXX only needed for AEAD ciphers char backup[to_decrypt.len]; memcpy(backup, to_decrypt.s, to_decrypt.len); ret = crypto_decrypt_rtp(c, rtp, &to_decrypt, index); if (ret != 1) break; // AEAD failed: try ROC guessing as above. restore backup buffer first memcpy(to_decrypt.s, backup, to_decrypt.len); if (guess == 0) index += 0x10000; else if (guess == 1) index -= 0x20000; else if (guess == 2) index &= 0xffff; else break; guess++; }; if (ret) { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Discarded SRTP packet: decryption failed"); return -1; } if (guess != 0) { ilog(LOG_DEBUG, "Detected unexpected SRTP ROC reset (from %u to %u)", atomic_get_na(&ssrc_ctx->stats->ext_seq), index); atomic_set_na(&ssrc_ctx->stats->ext_seq, index); } } crypto_debug_printf(", dec pl: "); crypto_debug_dump(&to_decrypt); *s = to_auth; s->len -= prev_len - to_decrypt.len; crypto_debug_finish(); return 0; error: ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Discarded invalid SRTP packet: authentication failed"); return -1; } /* rfc 3711 section 3.1 and 3.4 */ int srtp_payloads(str *to_auth, str *to_decrypt, str *auth_tag, str *mki, int auth_len, int mki_len, const str *packet, const str *payload) { *to_auth = *packet; *to_decrypt = *payload; /* packet and payload should be identical except for the respective header */ assert(to_auth->s + to_auth->len == to_decrypt->s + to_decrypt->len); assert(to_decrypt->s >= to_auth->s); *auth_tag = STR_NULL; if (auth_len) { if (to_decrypt->len < auth_len) goto error; str_init_len(auth_tag, to_decrypt->s + to_decrypt->len - auth_len, auth_len); to_decrypt->len -= auth_len; to_auth->len -= auth_len; } if (mki) *mki = STR_NULL; if (mki_len) { if (to_decrypt->len < mki_len) goto error; if (mki) str_init_len(mki, to_decrypt->s - mki_len, mki_len); to_decrypt->len -= mki_len; to_auth->len -= mki_len; } return 0; error: ilog(LOG_WARNING | LOG_FLAG_LIMIT, "Invalid SRTP/SRTCP packet received (short packet)"); return -1; } const rtp_payload_type *get_rtp_payload_type(unsigned int type, struct codec_store *cs) { const rtp_payload_type *rtp_pt; if (!cs) return rtp_get_rfc_payload_type(type); rtp_pt = t_hash_table_lookup(cs->codecs, GINT_TO_POINTER(type)); if (rtp_pt) return rtp_pt; return rtp_get_rfc_payload_type(type); } rtpengine-mr12.5.1.22/daemon/sdp.c000066400000000000000000003215751474347554000166030ustar00rootroot00000000000000#include "sdp.h" #include #include #include #include #include #include #include "compat.h" #include "call.h" #include "log.h" #include "str.h" #include "call.h" #include "crypto.h" #include "dtls.h" #include "rtp.h" #include "ice.h" #include "socket.h" #include "call_interfaces.h" #include "rtplib.h" #include "codec.h" enum attr_id { ATTR_OTHER = 0, ATTR_RTCP, ATTR_CANDIDATE, ATTR_ICE, ATTR_ICE_LITE, ATTR_ICE_OPTIONS, ATTR_ICE_UFRAG, ATTR_ICE_PWD, ATTR_CRYPTO, ATTR_INACTIVE, ATTR_SENDRECV, ATTR_SENDONLY, ATTR_RECVONLY, ATTR_RTCP_MUX, ATTR_GROUP, ATTR_MID, ATTR_FINGERPRINT, ATTR_SETUP, ATTR_RTPMAP, ATTR_FMTP, ATTR_IGNORE, ATTR_RTPENGINE, ATTR_PTIME, ATTR_RTCP_FB, ATTR_T38FAXVERSION, ATTR_T38FAXUDPEC, ATTR_T38FAXUDPECDEPTH, ATTR_T38FAXUDPFECMAXSPAN, ATTR_T38FAXMAXDATAGRAM, ATTR_T38FAXMAXIFP, ATTR_T38FAXFILLBITREMOVAL, ATTR_T38FAXTRANSCODINGMMR, ATTR_T38FAXTRANSCODINGJBIG, ATTR_T38FAXRATEMANAGEMENT, /* this is a block of attributes, which are only needed to carry attributes * from `sdp_media` to `call_media`structure, * and needs later processing in `sdp_create()`. */ ATTR_T38MAXBITRATE, ATTR_T38FAXMAXBUFFER, ATTR_XG726BITORDER, ATTR_MAXPTIME, ATTR_DIRECTION, ATTR_LABEL, ATTR_TLS_ID, ATTR_END_OF_CANDIDATES, }; // make sure g_int_hash can be used static_assert(sizeof(gint) == sizeof(enum attr_id), "sizeof enum attr_id wrong"); struct sdp_connection { str s; struct network_address address; unsigned int parsed:1; }; INLINE unsigned int attr_id_hash(const enum attr_id *e) { int i = *e; return g_int_hash(&i); } INLINE gboolean attr_id_eq(const enum attr_id *a, const enum attr_id *b) { return *a == *b; } TYPED_GQUEUE(attributes, struct sdp_attribute) TYPED_GHASHTABLE(attr_id_ht, enum attr_id, struct sdp_attribute, attr_id_hash, attr_id_eq, NULL, NULL) TYPED_GHASHTABLE(attr_list_ht, enum attr_id, attributes_q, attr_id_hash, attr_id_eq, NULL, g_queue_free) TYPED_GHASHTABLE_LOOKUP_INSERT(attr_list_ht, NULL, attributes_q_new) struct sdp_attributes { attributes_q list; /* GHashTable *name_hash; */ /* GHashTable *name_lists_hash; */ attr_list_ht id_lists_hash; attr_id_ht id_hash; }; TYPED_GQUEUE(sdp_media, struct sdp_media) struct sdp_session { str s; sdp_origin origin; str session_name; str session_timing; /* t= */ struct sdp_connection connection; int rr, rs; struct sdp_attributes attributes; sdp_media_q media_streams; }; struct sdp_media { struct sdp_session *session; str s; str media_type_str; str port; str transport; str formats; /* space separated */ long int port_num; int port_count; struct sdp_connection connection; const char *c_line_pos; int as, rr, rs; struct sdp_attributes attributes; GQueue format_list; /* list of slice-alloc'd str objects */ enum media_type media_type_id; int media_sdp_id; unsigned int legacy_osrtp:1; }; struct attribute_rtcp { long int port_num; struct network_address address; }; struct attribute_candidate { str component_str; str transport_str; str priority_str; str address_str; str port_str; str typ_str; str type_str; str raddr_str; str related_address_str; str rport_str; str related_port_str; struct ice_candidate cand_parsed; unsigned int parsed:1; }; struct attribute_crypto { str tag_str; str crypto_suite_str; str key_params_str; str key_base64_str; str lifetime_str; str mki_str; unsigned int tag; /* XXX use struct crypto_params for these below? */ const struct crypto_suite *crypto_suite; str master_key; str salt; char key_salt_buf[SRTP_MAX_MASTER_KEY_LEN + SRTP_MAX_MASTER_SALT_LEN]; uint64_t lifetime; unsigned char mki[256]; unsigned int mki_len; unsigned int unencrypted_srtcp:1, unencrypted_srtp:1, unauthenticated_srtp:1; }; struct attribute_ssrc { str id_str; str attr_str; uint32_t id; str attr; str value; }; struct attribute_group { enum { GROUP_OTHER = 0, GROUP_BUNDLE, } semantics; }; struct attribute_fingerprint { str hash_func_str; str fingerprint_str; const struct dtls_hash_func *hash_func; unsigned char fingerprint[DTLS_MAX_DIGEST_LEN]; }; struct attribute_setup { str s; enum { SETUP_UNKNOWN = 0, SETUP_ACTPASS, SETUP_ACTIVE, SETUP_PASSIVE, SETUP_HOLDCONN, } value; }; struct attribute_rtpmap { str payload_type_str; str encoding_str; str clock_rate_str; rtp_payload_type rtp_pt; }; struct attribute_rtcp_fb { str payload_type_str; str value; unsigned int payload_type; }; struct attribute_fmtp { str payload_type_str; str format_parms_str; unsigned int payload_type; }; struct attribute_t38faxratemanagement { enum { RM_UNKNOWN = 0, RM_LOCALTCF, RM_TRANSFERREDTCF, } rm; }; struct attribute_t38faxudpec { enum { EC_UNKNOWN = 0, EC_NONE, EC_REDUNDANCY, EC_FEC, } ec; }; struct attribute_t38faxudpecdepth { str minred_str; str maxred_str; int minred; int maxred; }; struct sdp_attribute { /* example: a=rtpmap:8 PCMA/8000 */ str full_line; /* including a= and \r\n */ str param; /* "PCMA/8000" */ struct sdp_attribute_strs strs; enum attr_id attr; union { struct attribute_rtcp rtcp; struct attribute_candidate candidate; struct attribute_crypto crypto; struct attribute_ssrc ssrc; struct attribute_group group; struct attribute_fingerprint fingerprint; struct attribute_setup setup; struct attribute_rtpmap rtpmap; struct attribute_rtcp_fb rtcp_fb; struct attribute_fmtp fmtp; struct attribute_t38faxudpec t38faxudpec; int i; struct attribute_t38faxudpecdepth t38faxudpecdepth; struct attribute_t38faxratemanagement t38faxratemanagement; enum sdp_attr_type other; }; }; /** * Globaly visible variables for this file. */ static char __id_buf[6*2 + 1]; // 6 hex encoded characters const str rtpe_instance_id = STR_CONST_INIT(__id_buf); /** * Declarations for inner functions/helpers. */ static void attr_free(struct sdp_attribute *p); static void attr_insert(struct sdp_attributes *attrs, struct sdp_attribute *attr); INLINE void chopper_append_c(struct sdp_chopper *c, const char *s); INLINE void chopper_append_str(struct sdp_chopper *c, const str *s); /** * Checks whether an attribute removal request exists for a given session level. * `attr_name` must be without `a=`. */ static bool sdp_manipulate_remove(struct sdp_manipulations * sdp_manipulations, const str * attr_name) { /* no need for checks, if not given in flags */ if (!sdp_manipulations) return false; if (!attr_name || !attr_name->len) return false; str_case_ht ht = sdp_manipulations->rem_commands; if (t_hash_table_is_set(ht) && t_hash_table_lookup(ht, attr_name)) { ilog(LOG_DEBUG, "Cannot insert: '" STR_FORMAT "' because prevented by SDP manipulations (remove)", STR_FMT(attr_name)); return true; /* means remove */ } return false; /* means don't remove */ } /** * Checks whether an attribute removal request exists for a given session level. * `attr_name` must be without `a=`. */ static bool sdp_manipulate_remove_c(const char *attr_name, const sdp_ng_flags *flags, enum media_type media_type) { struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, media_type); return sdp_manipulate_remove(sdp_manipulations, &STR_INIT(attr_name)); } /** * Checks whether an attribute removal request exists for a given session level. * `attr_name` must be without `a=`. */ static bool sdp_manipulate_remove_attr(struct sdp_manipulations *sdp_manipulations, const struct sdp_attribute *attr) { if (sdp_manipulate_remove(sdp_manipulations, &attr->strs.key)) return true; if (sdp_manipulate_remove(sdp_manipulations, &attr->strs.name)) return true; if (sdp_manipulate_remove(sdp_manipulations, &attr->strs.line_value)) return true; return false; } /** * Adds values into a requested session level (global, audio, video) */ static void sdp_manipulations_add(struct sdp_chopper *chop, struct sdp_manipulations * sdp_manipulations) { if (!sdp_manipulations) return; str_q * q_ptr = &sdp_manipulations->add_commands; for (__auto_type l = q_ptr->head; l; l = l->next) { str * attr_value = l->data; chopper_append_c(chop, "a="); chopper_append_str(chop, attr_value); chopper_append_c(chop, "\r\n"); } } /** * Substitute values for a requested session level (global, audio, video). * `attr_name` must be without `a=`. */ static str *sdp_manipulations_subst(struct sdp_manipulations * sdp_manipulations, const str * attr_name) { if (!sdp_manipulations) return NULL; str_case_value_ht ht = sdp_manipulations->subst_commands; str * cmd_subst_value = t_hash_table_is_set(ht) ? t_hash_table_lookup(ht, attr_name) : NULL; if (cmd_subst_value) ilog(LOG_DEBUG, "Substituting '" STR_FORMAT "' with '" STR_FORMAT "' due to SDP manipulations", STR_FMT(attr_name), STR_FMT(cmd_subst_value)); return cmd_subst_value; } /** * Substitute values for a requested session level (global, audio, video). * `attr_name` must be without `a=`. */ static str *sdp_manipulations_subst_attr(struct sdp_manipulations * sdp_manipulations, const struct sdp_attribute * attr) { str * cmd_subst_value; if ((cmd_subst_value = sdp_manipulations_subst(sdp_manipulations, &attr->strs.key))) return cmd_subst_value; if ((cmd_subst_value = sdp_manipulations_subst(sdp_manipulations, &attr->strs.name))) return cmd_subst_value; if ((cmd_subst_value = sdp_manipulations_subst(sdp_manipulations, &attr->strs.line_value))) return cmd_subst_value; return NULL; } static void append_str_attr_to_gstring(GString *s, const str * name, const str * value, const sdp_ng_flags *flags, enum media_type media_type); static void append_attr_int_to_gstring(GString *s, const char * value, const int additional, const sdp_ng_flags *flags, enum media_type media_type); static void append_tagged_attr_to_gstring(GString *s, const char * name, const str *tag, const str * value, const sdp_ng_flags *flags, enum media_type media_type); static void append_int_tagged_attr_to_gstring(GString *s, const char * name, unsigned int tag, const str * value, const sdp_ng_flags *flags, enum media_type media_type); void sdp_append_str_attr(GString *s, const sdp_ng_flags *flags, enum media_type media_type, const str *name, const char *fmt, ...) { va_list ap; va_start(ap, fmt); g_autoptr(GString) gs = g_string_new(""); g_string_vprintf(gs, fmt, ap); va_end(ap); append_str_attr_to_gstring(s, name, &STR_INIT_GS(gs), flags, media_type); } INLINE void append_attr_to_gstring(GString *s, const char * name, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { append_str_attr_to_gstring(s, &STR_INIT(name), value, flags, media_type); } INLINE struct sdp_attribute *attr_get_by_id(struct sdp_attributes *a, enum attr_id id) { return t_hash_table_lookup(a->id_hash, &id); } INLINE attributes_q *attr_list_get_by_id(struct sdp_attributes *a, enum attr_id id) { return t_hash_table_lookup(a->id_lists_hash, &id); } static struct sdp_attribute *attr_get_by_id_m_s(struct sdp_media *m, enum attr_id id) { struct sdp_attribute *a; a = attr_get_by_id(&m->attributes, id); if (a) return a; return attr_get_by_id(&m->session->attributes, id); } static int __parse_address(sockaddr_t *out, str *network_type, str *address_type, str *address) { sockfamily_t *af; if (network_type) { if (network_type->len != 2) return -1; if (memcmp(network_type->s, "IN", 2) && memcmp(network_type->s, "in", 2)) return -1; } if (!address_type) { if (sockaddr_parse_any_str(out, address)) return -1; return 0; } af = get_socket_family_rfc(address_type); if (sockaddr_parse_str(out, af, address)) return -1; return 0; } static int parse_address(struct network_address *address) { return __parse_address(&address->parsed, &address->network_type, &address->address_type, &address->address); } #define EXTRACT_TOKEN(field) do { if (!str_token_sep(&output->field, value_str, ' ')) return -1; } while (0) #define EXTRACT_NETWORK_ADDRESS_NP(field) \ do { EXTRACT_TOKEN(field.network_type); \ EXTRACT_TOKEN(field.address_type); \ EXTRACT_TOKEN(field.address); } while (0) #define EXTRACT_NETWORK_ADDRESS(field) \ do { EXTRACT_NETWORK_ADDRESS_NP(field); \ if (parse_address(&output->field)) return -1; } while (0) #define EXTRACT_NETWORK_ADDRESS_NF(field) \ do { EXTRACT_NETWORK_ADDRESS_NP(field); \ if (parse_address(&output->field)) { \ output->field.parsed.family = get_socket_family_enum(SF_IP4); \ output->field.parsed.ipv4.s_addr = 1; \ } } while (0) #define PARSE_INIT str v_str = output->strs.value; str *value_str = &v_str static int parse_origin(str *value_str, sdp_origin *output) { if (output->parsed) return -1; EXTRACT_TOKEN(username); EXTRACT_TOKEN(session_id); EXTRACT_TOKEN(version_str); EXTRACT_NETWORK_ADDRESS_NF(address); output->version_num = strtoull(output->version_str.s, NULL, 10); output->parsed = 1; return 0; } static int parse_connection(str *value_str, struct sdp_connection *output) { if (output->parsed) return -1; output->s = *value_str; EXTRACT_NETWORK_ADDRESS(address); output->parsed = 1; return 0; } static int parse_media(str *value_str, struct sdp_media *output) { char *ep; str *sp; EXTRACT_TOKEN(media_type_str); EXTRACT_TOKEN(port); EXTRACT_TOKEN(transport); output->formats = *value_str; output->media_type_id = codec_get_type(&output->media_type_str); output->port_num = strtol(output->port.s, &ep, 10); if (ep == output->port.s) return -1; if (output->port_num < 0 || output->port_num > 0xffff) return -1; if (*ep == '/') { output->port_count = atoi(ep + 1); if (output->port_count <= 0) return -1; if (output->port_count > 10) /* unsupported */ return -1; } else output->port_count = 1; /* to split the "formats" list into tokens, we abuse some vars */ str formats = output->formats; str format; while (str_token_sep(&format, &formats, ' ')) { sp = g_slice_alloc(sizeof(*sp)); *sp = format; g_queue_push_tail(&output->format_list, sp); } return 0; } static void attrs_init(struct sdp_attributes *a) { t_queue_init(&a->list); /* a->name_hash = g_hash_table_new(str_hash, str_equal); */ a->id_hash = attr_id_ht_new(); /* a->name_lists_hash = g_hash_table_new_full(str_hash, str_equal, NULL, (GDestroyNotify) g_queue_free); */ a->id_lists_hash = attr_list_ht_new(); } static void attr_insert(struct sdp_attributes *attrs, struct sdp_attribute *attr) { t_queue_push_tail(&attrs->list, attr); if (!t_hash_table_lookup(attrs->id_hash, &attr->attr)) t_hash_table_insert(attrs->id_hash, &attr->attr, attr); attributes_q *attr_queue = attr_list_ht_lookup_insert(attrs->id_lists_hash, &attr->attr); t_queue_push_tail(attr_queue, attr); /* g_hash_table_insert(attrs->name_hash, &attr->name, attr); */ /* if (attr->key.s) g_hash_table_insert(attrs->name_hash, &attr->key, attr); */ /* attr_queue = g_hash_table_lookup_queue_new(attrs->name_lists_hash, &attr->name); g_queue_push_tail(attr_queue, attr); */ } static int parse_attribute_group(struct sdp_attribute *output) { output->attr = ATTR_GROUP; output->group.semantics = GROUP_OTHER; if (output->strs.value.len >= 7 && !strncmp(output->strs.value.s, "BUNDLE ", 7)) output->group.semantics = GROUP_BUNDLE; return 0; } static int parse_attribute_crypto(struct sdp_attribute *output) { char *endp; struct attribute_crypto *c; int salt_key_len, enc_salt_key_len; int b64_state = 0; unsigned int b64_save = 0; gsize ret; str s; uint32_t u32; const char *err; output->attr = ATTR_CRYPTO; PARSE_INIT; EXTRACT_TOKEN(crypto.tag_str); EXTRACT_TOKEN(crypto.crypto_suite_str); EXTRACT_TOKEN(crypto.key_params_str); c = &output->crypto; c->tag = strtoul(c->tag_str.s, &endp, 10); err = "invalid 'tag'"; if (endp == c->tag_str.s) goto error; c->crypto_suite = crypto_find_suite(&c->crypto_suite_str); err = "unknown crypto suite"; if (!c->crypto_suite) goto error; salt_key_len = c->crypto_suite->master_key_len + c->crypto_suite->master_salt_len; enc_salt_key_len = ceil((double) salt_key_len * 4.0/3.0); err = "invalid key parameter length"; if (c->key_params_str.len < 7 + enc_salt_key_len) goto error; err = "unknown key method"; if (strncasecmp(c->key_params_str.s, "inline:", 7)) goto error; c->key_base64_str = c->key_params_str; str_shift(&c->key_base64_str, 7); ret = g_base64_decode_step(c->key_base64_str.s, enc_salt_key_len, (guchar *) c->key_salt_buf, &b64_state, &b64_save); // flush b64_state needed for AES-192: 36+2; AES-256: 45+1; if (enc_salt_key_len % 4) { ret += g_base64_decode_step("==", 4 - (enc_salt_key_len % 4), (guchar *) c->key_salt_buf + ret, &b64_state, &b64_save); } err = "invalid base64 encoding"; if (ret != salt_key_len) goto error; c->master_key.s = c->key_salt_buf; c->master_key.len = c->crypto_suite->master_key_len; c->salt.s = c->master_key.s + c->master_key.len; c->salt.len = c->crypto_suite->master_salt_len; c->lifetime_str = c->key_params_str; str_shift(&c->lifetime_str, 7 + enc_salt_key_len); // skip past base64 padding if (enc_salt_key_len % 4 == 2) { str_shift_cmp(&c->lifetime_str, "=="); } else if (enc_salt_key_len % 4 == 3) { str_shift_cmp(&c->lifetime_str, "="); } if (c->lifetime_str.len >= 2) { err = "invalid key parameter syntax"; if (c->lifetime_str.s[0] != '|') goto error; str_shift(&c->lifetime_str, 1); if (!str_chr_str(&c->mki_str, &c->lifetime_str, '|')) { if (str_chr(&c->lifetime_str, ':')) { c->mki_str = c->lifetime_str; c->lifetime_str = STR_NULL; } } else { c->lifetime_str.len = c->mki_str.s - c->lifetime_str.s; str_shift(&c->mki_str, 1); } } else c->lifetime_str = STR_NULL; if (c->lifetime_str.s) { if (c->lifetime_str.len >= 3 && !memcmp(c->lifetime_str.s, "2^", 2)) { c->lifetime = strtoull(c->lifetime_str.s + 2, NULL, 10); err = "invalid key lifetime"; if (!c->lifetime || c->lifetime >= 64) goto error; c->lifetime = 1ULL << c->lifetime; } else c->lifetime = strtoull(c->lifetime_str.s, NULL, 10); err = "invalid key lifetime"; if (!c->lifetime || c->lifetime > c->crypto_suite->srtp_lifetime #ifdef STRICT_SDES_KEY_LIFETIME || c->lifetime > c->crypto_suite->srtcp_lifetime #endif ) goto error; } if (c->mki_str.s) { err = "invalid MKI specification"; if (!str_chr_str(&s, &c->mki_str, ':')) goto error; u32 = htonl(strtoul(c->mki_str.s, NULL, 10)); c->mki_len = strtoul(s.s + 1, NULL, 10); err = "MKI too long"; if (c->mki_len > sizeof(c->mki)) goto error; memset(c->mki, 0, c->mki_len); if (sizeof(u32) >= c->mki_len) memcpy(c->mki, ((void *) &u32) + (sizeof(u32) - c->mki_len), c->mki_len); else memcpy(c->mki + (c->mki_len - sizeof(u32)), &u32, sizeof(u32)); } while (str_token_sep(&s, value_str, ' ')) { if (!str_cmp(&s, "UNENCRYPTED_SRTCP")) c->unencrypted_srtcp = 1; else if (!str_cmp(&s, "UNENCRYPTED_SRTP")) c->unencrypted_srtp = 1; else if (!str_cmp(&s, "UNAUTHENTICATED_SRTP")) c->unauthenticated_srtp = 1; } return 0; error: ilog(LOG_ERROR, "Failed to parse a=crypto attribute, ignoring: %s", err); output->attr = ATTR_IGNORE; return 0; } static int parse_attribute_rtcp(struct sdp_attribute *output) { if (!output->strs.value.s) goto err; output->attr = ATTR_RTCP; PARSE_INIT; str portnum; if (!str_token_sep(&portnum, value_str, ' ')) goto err; output->rtcp.port_num = str_to_i(&portnum, 0); if (output->rtcp.port_num <= 0 || output->rtcp.port_num > 0xffff) { output->rtcp.port_num = 0; goto err; } if (value_str->len) EXTRACT_NETWORK_ADDRESS(rtcp.address); return 0; err: ilog(LOG_WARN, "Failed to parse a=rtcp attribute, ignoring"); output->attr = ATTR_IGNORE; return 0; } static int parse_attribute_candidate(struct sdp_attribute *output, bool extended) { char *ep; struct attribute_candidate *c; output->attr = ATTR_CANDIDATE; c = &output->candidate; PARSE_INIT; EXTRACT_TOKEN(candidate.cand_parsed.foundation); EXTRACT_TOKEN(candidate.component_str); EXTRACT_TOKEN(candidate.transport_str); EXTRACT_TOKEN(candidate.priority_str); EXTRACT_TOKEN(candidate.address_str); EXTRACT_TOKEN(candidate.port_str); EXTRACT_TOKEN(candidate.typ_str); EXTRACT_TOKEN(candidate.type_str); c->cand_parsed.component_id = strtoul(c->component_str.s, &ep, 10); if (ep == c->component_str.s) return -1; c->cand_parsed.transport = get_socket_type(&c->transport_str); if (!c->cand_parsed.transport) return 0; c->cand_parsed.priority = strtoul(c->priority_str.s, &ep, 10); if (ep == c->priority_str.s) return -1; if (__parse_address(&c->cand_parsed.endpoint.address, NULL, NULL, &c->address_str)) return 0; c->cand_parsed.endpoint.port = strtoul(c->port_str.s, &ep, 10); if (ep == c->port_str.s) return -1; if (str_cmp(&c->typ_str, "typ")) return -1; c->cand_parsed.type = ice_candidate_type(&c->type_str); if (!c->cand_parsed.type) return 0; if (ice_has_related(c->cand_parsed.type)) { // XXX guaranteed to be in order even with extended syntax? EXTRACT_TOKEN(candidate.raddr_str); EXTRACT_TOKEN(candidate.related_address_str); EXTRACT_TOKEN(candidate.rport_str); EXTRACT_TOKEN(candidate.related_port_str); if (str_cmp(&c->raddr_str, "raddr")) return -1; if (str_cmp(&c->rport_str, "rport")) return -1; if (__parse_address(&c->cand_parsed.related.address, NULL, NULL, &c->related_address_str)) return 0; c->cand_parsed.related.port = strtoul(c->related_port_str.s, &ep, 10); if (ep == c->related_port_str.s) return -1; } if (extended) { while (true) { str field, value; if (!str_token_sep(&field, value_str, ' ')) break; if (!str_token_sep(&value, value_str, ' ')) break; if (!str_cmp(&field, "ufrag")) c->cand_parsed.ufrag = value; } } c->parsed = 1; return 0; } // 0 = success // -1 = error // 1 = parsed ok but unsupported candidate type int sdp_parse_candidate(struct ice_candidate *cand, const str *s) { struct sdp_attribute attr = { .strs = { .value = *s, }, }; if (parse_attribute_candidate(&attr, true)) return -1; if (!attr.candidate.parsed) return 1; *cand = attr.candidate.cand_parsed; return 0; } static int parse_attribute_fingerprint(struct sdp_attribute *output) { unsigned char *c; int i; output->attr = ATTR_FINGERPRINT; PARSE_INIT; EXTRACT_TOKEN(fingerprint.hash_func_str); EXTRACT_TOKEN(fingerprint.fingerprint_str); output->fingerprint.hash_func = dtls_find_hash_func(&output->fingerprint.hash_func_str); if (!output->fingerprint.hash_func) return -1; assert(sizeof(output->fingerprint.fingerprint) >= output->fingerprint.hash_func->num_bytes); c = (unsigned char *) output->fingerprint.fingerprint_str.s; for (i = 0; i < output->fingerprint.hash_func->num_bytes; i++) { if (c[0] >= '0' && c[0] <= '9') output->fingerprint.fingerprint[i] = c[0] - '0'; else if (c[0] >= 'a' && c[0] <= 'f') output->fingerprint.fingerprint[i] = c[0] - 'a' + 10; else if (c[0] >= 'A' && c[0] <= 'F') output->fingerprint.fingerprint[i] = c[0] - 'A' + 10; else return -1; output->fingerprint.fingerprint[i] <<= 4; if (c[1] >= '0' && c[1] <= '9') output->fingerprint.fingerprint[i] |= c[1] - '0'; else if (c[1] >= 'a' && c[1] <= 'f') output->fingerprint.fingerprint[i] |= c[1] - 'a' + 10; else if (c[1] >= 'A' && c[1] <= 'F') output->fingerprint.fingerprint[i] |= c[1] - 'A' + 10; else return -1; if (c[2] != ':') goto done; c += 3; } return -1; done: if (++i != output->fingerprint.hash_func->num_bytes) return -1; return 0; } static int parse_attribute_setup(struct sdp_attribute *output) { output->attr = ATTR_SETUP; if (!str_cmp(&output->strs.value, "actpass")) output->setup.value = SETUP_ACTPASS; else if (!str_cmp(&output->strs.value, "active")) output->setup.value = SETUP_ACTIVE; else if (!str_cmp(&output->strs.value, "passive")) output->setup.value = SETUP_PASSIVE; else if (!str_cmp(&output->strs.value, "holdconn")) output->setup.value = SETUP_HOLDCONN; return 0; } static int parse_attribute_rtcp_fb(struct sdp_attribute *output) { struct attribute_rtcp_fb *a; output->attr = ATTR_RTCP_FB; a = &output->rtcp_fb; PARSE_INIT; EXTRACT_TOKEN(rtcp_fb.payload_type_str); a->value = *value_str; if (!str_cmp(&a->payload_type_str, "*")) a->payload_type = -1; else { a->payload_type = str_to_i(&a->payload_type_str, -1); if (a->payload_type == -1) return -1; } return 0; } static int parse_attribute_rtpmap(struct sdp_attribute *output) { char *ep; struct attribute_rtpmap *a; rtp_payload_type *pt; output->attr = ATTR_RTPMAP; PARSE_INIT; EXTRACT_TOKEN(rtpmap.payload_type_str); EXTRACT_TOKEN(rtpmap.encoding_str); a = &output->rtpmap; pt = &a->rtp_pt; pt->encoding_with_params = a->encoding_str; pt->payload_type = strtoul(a->payload_type_str.s, &ep, 10); if (ep == a->payload_type_str.s) return -1; if (!str_chr_str(&a->clock_rate_str, &a->encoding_str, '/')) return -1; pt->encoding = a->encoding_str; pt->encoding.len -= a->clock_rate_str.len; str_shift(&a->clock_rate_str, 1); pt->channels = 1; if (str_chr_str(&pt->encoding_parameters, &a->clock_rate_str, '/')) { a->clock_rate_str.len -= pt->encoding_parameters.len; str_shift(&pt->encoding_parameters, 1); if (pt->encoding_parameters.len) { int channels = strtol(pt->encoding_parameters.s, &ep, 10); if (channels && (!ep || ep == pt->encoding_parameters.s + pt->encoding_parameters.len)) pt->channels = channels; } } if (!a->clock_rate_str.len) return -1; pt->clock_rate = strtoul(a->clock_rate_str.s, &ep, 10); if (ep && ep != a->clock_rate_str.s + a->clock_rate_str.len) return -1; return 0; } static int parse_attribute_fmtp(struct sdp_attribute *output) { struct attribute_fmtp *a; output->attr = ATTR_FMTP; a = &output->fmtp; PARSE_INIT; EXTRACT_TOKEN(fmtp.payload_type_str); a->format_parms_str = *value_str; a->payload_type = str_to_i(&a->payload_type_str, -1); if (a->payload_type == -1) return -1; return 0; } static int parse_attribute_int(struct sdp_attribute *output, enum attr_id attr_id, int defval) { output->attr = attr_id; output->i = str_to_i(&output->strs.value, defval); return 0; } // XXX combine this with parse_attribute_setup ? static int parse_attribute_t38faxudpec(struct sdp_attribute *output) { output->attr = ATTR_T38FAXUDPEC; switch (__csh_lookup(&output->strs.value)) { case CSH_LOOKUP("t38UDPNoEC"): output->t38faxudpec.ec = EC_NONE; break; case CSH_LOOKUP("t38UDPRedundancy"): output->t38faxudpec.ec = EC_REDUNDANCY; break; case CSH_LOOKUP("t38UDPFEC"): output->t38faxudpec.ec = EC_FEC; break; default: output->t38faxudpec.ec = EC_UNKNOWN; break; } return 0; } // XXX combine this with parse_attribute_setup ? static int parse_attribute_t38faxratemanagement(struct sdp_attribute *output) { output->attr = ATTR_T38FAXRATEMANAGEMENT; switch (__csh_lookup(&output->strs.value)) { case CSH_LOOKUP("localTFC"): output->t38faxratemanagement.rm = RM_LOCALTCF; break; case CSH_LOOKUP("transferredTCF"): output->t38faxratemanagement.rm = RM_TRANSFERREDTCF; break; default: output->t38faxratemanagement.rm = RM_UNKNOWN; break; } return 0; } static int parse_attribute_t38faxudpecdepth(struct sdp_attribute *output) { struct attribute_t38faxudpecdepth *a; output->attr = ATTR_T38FAXUDPECDEPTH; a = &output->t38faxudpecdepth; PARSE_INIT; EXTRACT_TOKEN(t38faxudpecdepth.minred_str); a->maxred_str = *value_str; a->minred = str_to_i(&a->minred_str, 0); a->maxred = str_to_i(&a->maxred_str, -1); return 0; } static int parse_attribute(struct sdp_attribute *a) { int ret; a->strs.name = a->strs.line_value; if (str_chr_str(&a->strs.value, &a->strs.name, ':')) { a->strs.name.len -= a->strs.value.len; a->strs.value.s++; a->strs.value.len--; a->strs.key = a->strs.name; if (str_chr_str(&a->param, &a->strs.value, ' ')) { a->strs.key.len += 1 + (a->strs.value.len - a->param.len); a->param.s++; a->param.len--; if (!a->param.len) a->param.s = NULL; } else a->strs.key.len += 1 + a->strs.value.len; } ret = 0; switch (__csh_lookup(&a->strs.name)) { case CSH_LOOKUP("mid"): a->attr = ATTR_MID; break; case CSH_LOOKUP("rtcp"): ret = parse_attribute_rtcp(a); break; case CSH_LOOKUP("fmtp"): ret = parse_attribute_fmtp(a); break; case CSH_LOOKUP("group"): ret = parse_attribute_group(a); break; case CSH_LOOKUP("setup"): ret = parse_attribute_setup(a); break; case CSH_LOOKUP("ptime"): a->attr = ATTR_PTIME; break; case CSH_LOOKUP("crypto"): ret = parse_attribute_crypto(a); break; case CSH_LOOKUP("extmap"): a->other = SDP_ATTR_TYPE_EXTMAP; break; case CSH_LOOKUP("rtpmap"): ret = parse_attribute_rtpmap(a); break; case CSH_LOOKUP("ice-pwd"): a->attr = ATTR_ICE_PWD; break; case CSH_LOOKUP("ice-lite"): a->attr = ATTR_ICE_LITE; break; case CSH_LOOKUP("inactive"): a->attr = ATTR_INACTIVE; break; case CSH_LOOKUP("sendrecv"): a->attr = ATTR_SENDRECV; break; case CSH_LOOKUP("sendonly"): a->attr = ATTR_SENDONLY; break; case CSH_LOOKUP("recvonly"): a->attr = ATTR_RECVONLY; break; case CSH_LOOKUP("rtcp-mux"): a->attr = ATTR_RTCP_MUX; break; case CSH_LOOKUP("candidate"): ret = parse_attribute_candidate(a, false); break; case CSH_LOOKUP("ice-ufrag"): a->attr = ATTR_ICE_UFRAG; break; case CSH_LOOKUP("rtpengine"): a->attr = ATTR_RTPENGINE; break; case CSH_LOOKUP("ice-options"): a->attr = ATTR_ICE_OPTIONS; break; case CSH_LOOKUP("fingerprint"): ret = parse_attribute_fingerprint(a); break; case CSH_LOOKUP("tls-id"): a->attr = ATTR_TLS_ID; break; case CSH_LOOKUP("ice-mismatch"): a->attr = ATTR_ICE; break; case CSH_LOOKUP("remote-candidates"): a->attr = ATTR_ICE; break; case CSH_LOOKUP("end-of-candidates"): a->attr = ATTR_END_OF_CANDIDATES; break; case CSH_LOOKUP("rtcp-fb"): ret = parse_attribute_rtcp_fb(a); break; case CSH_LOOKUP("T38FaxVersion"): ret = parse_attribute_int(a, ATTR_T38FAXVERSION, -1); break; case CSH_LOOKUP("T38FaxUdpEC"): ret = parse_attribute_t38faxudpec(a); break; case CSH_LOOKUP("T38FaxUdpECDepth"): ret = parse_attribute_t38faxudpecdepth(a); break; case CSH_LOOKUP("T38FaxUdpFECMaxSpan"): ret = parse_attribute_int(a, ATTR_T38FAXUDPFECMAXSPAN, 0); break; case CSH_LOOKUP("T38FaxMaxDatagram"): ret = parse_attribute_int(a, ATTR_T38FAXMAXDATAGRAM, -1); break; case CSH_LOOKUP("T38FaxMaxIFP"): ret = parse_attribute_int(a, ATTR_T38FAXMAXIFP, -1); break; case CSH_LOOKUP("T38FaxFillBitRemoval"): a->attr = ATTR_T38FAXFILLBITREMOVAL; break; case CSH_LOOKUP("T38FaxTranscodingMMR"): a->attr = ATTR_T38FAXTRANSCODINGMMR; break; case CSH_LOOKUP("T38FaxTranscodingJBIG"): a->attr = ATTR_T38FAXTRANSCODINGJBIG; break; case CSH_LOOKUP("T38FaxRateManagement"): ret = parse_attribute_t38faxratemanagement(a); break; case CSH_LOOKUP("T38MaxBitRate"): a->attr = ATTR_T38MAXBITRATE; break; case CSH_LOOKUP("T38FaxMaxBuffer"): a->attr = ATTR_T38FAXMAXBUFFER; break; case CSH_LOOKUP("xg726bitorder"): a->attr = ATTR_XG726BITORDER; break; case CSH_LOOKUP("maxptime"): a->attr = ATTR_MAXPTIME; break; case CSH_LOOKUP("label"): a->attr = ATTR_LABEL; break; case CSH_LOOKUP("direction"): a->attr = ATTR_DIRECTION; break; } return ret; } int sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *flags) { char *b, *end, *value, *line_end, *next_line; struct sdp_session *session = NULL; struct sdp_media *media = NULL; const char *errstr; struct sdp_attributes *attrs; struct sdp_attribute *attr; str *adj_s; int media_sdp_id = 0; b = body->s; end = str_end(body); while (b && b < end - 1) { if (!rtpe_config.reject_invalid_sdp) { if (b[0] == '\n' || b[0] == '\r') { body->len = b - body->s; break; } } errstr = "Missing '=' sign"; if (b[1] != '=') goto error; value = &b[2]; line_end = memchr(value, '\n', end - value); if (!line_end) { /* assume missing LF at end of body */ line_end = end; next_line = NULL; } else { next_line = line_end + 1; if (line_end[-1] == '\r') line_end--; } errstr = "SDP doesn't start with a session definition"; if (!session && b[0] != 'v') { if (!flags->fragment) goto error; else goto new_session; // allowed for trickle ICE SDP fragments } str value_str = STR_INIT_LEN(value, line_end - value); switch (b[0]) { case 'v': errstr = "Error in v= line"; if (line_end != value + 1) goto error; if (value[0] != '0') goto error; new_session: session = g_slice_alloc0(sizeof(*session)); t_queue_init(&session->media_streams); attrs_init(&session->attributes); t_queue_push_tail(sessions, session); media = NULL; session->s.s = b; session->rr = session->rs = -1; break; case 'o': errstr = "o= line found within media section"; if (media) goto error; errstr = "Error parsing o= line"; if (parse_origin(&value_str, &session->origin)) goto error; break; case 'm': if (media && !media->c_line_pos) media->c_line_pos = b; media = g_slice_alloc0(sizeof(*media)); media->session = session; attrs_init(&media->attributes); errstr = "Error parsing m= line"; if (parse_media(&value_str, media)) goto error; t_queue_push_tail(&session->media_streams, media); media->s.s = b; media->rr = media->rs = media->as = -1; media->media_sdp_id = media_sdp_id++; break; case 'c': errstr = "Error parsing c= line"; if (parse_connection(&value_str, media ? &media->connection : &session->connection)) goto error; break; case 'a': if (media && !media->c_line_pos) media->c_line_pos = b; attr = g_slice_alloc0(sizeof(*attr)); attr->full_line.s = b; attr->full_line.len = next_line ? (next_line - b) : (line_end - b); attr->strs.line_value.s = value; attr->strs.line_value.len = line_end - value; if (parse_attribute(attr)) { attr_free(attr); break; } attrs = media ? &media->attributes : &session->attributes; attr_insert(attrs, attr); break; case 'b': if (media && !media->c_line_pos) media->c_line_pos = b; /* RR:0 */ if (line_end - value < 4) break; /* AS only supported per media */ if (media && !memcmp(value, "AS:", 3)) { *(&media->as) = strtol((value + 3), NULL, 10); } else if (!memcmp(value, "RR:", 3)) { *(media ? &media->rr : &session->rr) = strtol((value + 3), NULL, 10); } else if (!memcmp(value, "RS:", 3)) { *(media ? &media->rs : &session->rs) = strtol((value + 3), NULL, 10); } break; case 'k': if (media && !media->c_line_pos) media->c_line_pos = b; break; case 's': errstr = "s= line found within media section"; if (media) goto error; session->session_name = value_str; break; case 't': errstr = "t= line found within media section"; if (media) goto error; session->session_timing = value_str; break; case 'i': case 'u': case 'e': case 'p': case 'r': case 'z': break; default: errstr = "Unknown SDP line type found"; goto error; } errstr = "SDP doesn't start with a valid session definition"; if (!session) goto error; adj_s = media ? &media->s : &session->s; adj_s->len = (next_line ? : end) - adj_s->s; b = next_line; } return 0; error: ilog(LOG_WARNING, "Error parsing SDP at offset %li: %s", (long) (b - body->s), errstr); sdp_sessions_clear(sessions); return -1; } static void attr_free(struct sdp_attribute *p) { g_slice_free1(sizeof(*p), p); } static void free_attributes(struct sdp_attributes *a) { /* g_hash_table_destroy(a->name_hash); */ t_hash_table_destroy(a->id_hash); /* g_hash_table_destroy(a->name_lists_hash); */ t_hash_table_destroy(a->id_lists_hash); t_queue_clear_full(&a->list, attr_free); } static void media_free(struct sdp_media *media) { free_attributes(&media->attributes); g_queue_clear_full(&media->format_list, str_slice_free); g_slice_free1(sizeof(*media), media); } static void session_free(struct sdp_session *session) { t_queue_clear_full(&session->media_streams, media_free); free_attributes(&session->attributes); g_slice_free1(sizeof(*session), session); } void sdp_sessions_clear(sdp_sessions_q *sessions) { t_queue_clear_full(sessions, session_free); } static int fill_endpoint(struct endpoint *ep, const struct sdp_media *media, sdp_ng_flags *flags, struct network_address *address, long int port) { struct sdp_session *session = media->session; if (!flags->trust_address) { if (is_addr_unspecified(&flags->parsed_received_from)) { if (__parse_address(&flags->parsed_received_from, NULL, &flags->received_from_family, &flags->received_from_address)) return -1; } ep->address = flags->parsed_received_from; } else if (address && !is_addr_unspecified(&address->parsed)) ep->address = address->parsed; else if (media->connection.parsed) ep->address = media->connection.address.parsed; else if (session->connection.parsed) ep->address = session->connection.address.parsed; else return -1; ep->port = port; return 0; } static int __rtp_payload_types(struct stream_params *sp, struct sdp_media *media) { GHashTable *ht_rtpmap, *ht_fmtp, *ht_rtcp_fb; struct sdp_attribute *attr; int ret = 0; if (!proto_is_rtp(sp->protocol)) return 0; /* first go through a=rtpmap and build a hash table of attrs */ ht_rtpmap = g_hash_table_new(g_int_hash, g_int_equal); attributes_q *q = attr_list_get_by_id(&media->attributes, ATTR_RTPMAP); for (__auto_type ql = q ? q->head : NULL; ql; ql = ql->next) { rtp_payload_type *pt; attr = ql->data; pt = &attr->rtpmap.rtp_pt; g_hash_table_insert(ht_rtpmap, &pt->payload_type, pt); } // do the same for a=fmtp ht_fmtp = g_hash_table_new(g_int_hash, g_int_equal); q = attr_list_get_by_id(&media->attributes, ATTR_FMTP); for (__auto_type ql = q ? q->head : NULL; ql; ql = ql->next) { attr = ql->data; g_hash_table_insert(ht_fmtp, &attr->fmtp.payload_type, &attr->fmtp.format_parms_str); } // do the same for a=rtcp-fb ht_rtcp_fb = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) g_queue_free); q = attr_list_get_by_id(&media->attributes, ATTR_RTCP_FB); for (__auto_type ql = q ? q->head : NULL; ql; ql = ql->next) { attr = ql->data; if (attr->rtcp_fb.payload_type == -1) continue; GQueue *rq = g_hash_table_lookup_queue_new(ht_rtcp_fb, GINT_TO_POINTER(attr->rtcp_fb.payload_type), NULL); g_queue_push_tail(rq, &attr->rtcp_fb.value); } /* then go through the format list and associate */ for (GList *ql = media->format_list.head; ql; ql = ql->next) { char *ep; str *s; unsigned int i; rtp_payload_type *pt; const rtp_payload_type *ptl, *ptrfc; s = ql->data; i = (unsigned int) strtoul(s->s, &ep, 10); if (ep == s->s || i > 127) goto error; /* first look in rtpmap for a match, then check RFC types, * else fall back to an "unknown" type */ ptrfc = rtp_get_rfc_payload_type(i); ptl = g_hash_table_lookup(ht_rtpmap, &i); pt = g_slice_alloc0(sizeof(*pt)); if (ptl) *pt = *ptl; else if (ptrfc) *pt = *ptrfc; else pt->payload_type = i; s = g_hash_table_lookup(ht_fmtp, &i); if (s) pt->format_parameters = *s; else pt->format_parameters = STR_EMPTY; GQueue *rq = g_hash_table_lookup(ht_rtcp_fb, GINT_TO_POINTER(i)); if (rq) { // steal the list contents and free the list pt->rtcp_fb = *rq; g_queue_init(rq); g_hash_table_remove(ht_rtcp_fb, GINT_TO_POINTER(i)); // frees `rq` } // fill in ptime if (sp->ptime) pt->ptime = sp->ptime; else if (!pt->ptime && ptrfc) pt->ptime = ptrfc->ptime; codec_init_payload_type(pt, sp->type_id); codec_store_add_raw(&sp->codecs, pt); } goto out; error: ret = -1; goto out; out: g_hash_table_destroy(ht_rtpmap); g_hash_table_destroy(ht_fmtp); g_hash_table_destroy(ht_rtcp_fb); return ret; } static void __sdp_ice(struct stream_params *sp, struct sdp_media *media) { struct sdp_attribute *attr; struct attribute_candidate *ac; struct ice_candidate *cand; attr = attr_get_by_id_m_s(media, ATTR_ICE_UFRAG); if (!attr) return; sp->ice_ufrag = attr->strs.value; SP_SET(sp, ICE); attributes_q *q = attr_list_get_by_id(&media->attributes, ATTR_CANDIDATE); if (!q) goto no_cand; for (__auto_type ql = q->head; ql; ql = ql->next) { attr = ql->data; ac = &attr->candidate; if (!ac->parsed) continue; cand = g_slice_alloc(sizeof(*cand)); *cand = ac->cand_parsed; t_queue_push_tail(&sp->ice_candidates, cand); } no_cand: if ((attr = attr_get_by_id_m_s(media, ATTR_ICE_OPTIONS))) { if (str_str(&attr->strs.value, "trickle") >= 0) SP_SET(sp, TRICKLE_ICE); } else if (is_trickle_ice_address(&sp->rtp_endpoint)) SP_SET(sp, TRICKLE_ICE); if (attr_get_by_id_m_s(media, ATTR_ICE_LITE)) SP_SET(sp, ICE_LITE_PEER); attr = attr_get_by_id_m_s(media, ATTR_ICE_PWD); if (attr) sp->ice_pwd = attr->strs.value; } static void __sdp_t38(struct stream_params *sp, struct sdp_media *media) { struct sdp_attribute *attr; struct t38_options *to = &sp->t38_options; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXVERSION); if (attr) to->version = attr->i; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXUDPEC); if (attr) { if (attr->t38faxudpec.ec == EC_REDUNDANCY) to->max_ec_entries = to->min_ec_entries = 3; // defaults else if (attr->t38faxudpec.ec == EC_FEC) { // defaults to->max_ec_entries = to->min_ec_entries = 3; to->fec_span = 3; } // else default to 0 } else // no EC specified, defaults: to->max_ec_entries = to->min_ec_entries = 3; // defaults attr = attr_get_by_id(&media->attributes, ATTR_T38FAXUDPECDEPTH); if (attr) { to->min_ec_entries = attr->t38faxudpecdepth.minred; to->max_ec_entries = attr->t38faxudpecdepth.maxred; } attr = attr_get_by_id(&media->attributes, ATTR_T38FAXUDPFECMAXSPAN); if (attr) to->fec_span = attr->i; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXMAXDATAGRAM); if (attr) to->max_datagram = attr->i; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXMAXIFP); if (attr) to->max_ifp = attr->i; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXFILLBITREMOVAL); if (attr && (!attr->strs.value.len || str_cmp(&attr->strs.value, "0"))) to->fill_bit_removal = 1; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXTRANSCODINGMMR); if (attr && (!attr->strs.value.len || str_cmp(&attr->strs.value, "0"))) to->transcoding_mmr = 1; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXTRANSCODINGJBIG); if (attr && (!attr->strs.value.len || str_cmp(&attr->strs.value, "0"))) to->transcoding_jbig = 1; attr = attr_get_by_id(&media->attributes, ATTR_T38FAXRATEMANAGEMENT); if (attr) to->local_tcf = (attr->t38faxratemanagement.rm == RM_LOCALTCF) ? 1 : 0; } static void sp_free(struct stream_params *s) { codec_store_cleanup(&s->codecs); ice_candidates_free(&s->ice_candidates); crypto_params_sdes_queue_clear(&s->sdes_params); t_queue_clear_full(&s->attributes, sdp_attr_free); g_slice_free1(sizeof(*s), s); } // Check the list for a legacy non-RFC OSRTP offer: // Given m= lines must be alternating between one RTP and one SRTP m= line, with matching // types between each pair. // If found, rewrite the list to pretend that only the SRTP m=line was given, and mark // the session media accordingly. // TODO: should be handled by monologue_offer_answer, without requiring OSRTP-accept to be // set for re-invites. SDP rewriting and skipping media sections should be handled by // associating offer/answer media sections directly with each other, instead of requiring // the indexing to be in order and instead of requiring all sections between monologue and sdp_media // lists to be matching. // returns: discard this `sp` yes/no static bool legacy_osrtp_accept(struct stream_params *sp, sdp_streams_q *streams, sdp_media_list *media_link, const sdp_ng_flags *flags, unsigned int *num) { if (!streams->tail) return false; if (!media_link || !media_link->prev) return false; struct stream_params *last = streams->tail->data; if (!flags->osrtp_accept_legacy) return false; // protocols must be known if (!sp->protocol) return false; if (!last->protocol) return false; // types must match if (sp->type_id != last->type_id) return false; // we must be looking at RTP pairs if (!sp->protocol->rtp) return false; if (!last->protocol->rtp) return false; // see if this is SRTP and the previous was RTP if (sp->protocol->srtp && !last->protocol->srtp) { // is this a non-rejected SRTP section? if (sp->rtp_endpoint.port) { // looks ok. remove the previous one and only retain this one. mark it as such. t_queue_pop_tail(streams); sp_free(last); SP_SET(sp, LEGACY_OSRTP); struct sdp_media *prev_media = media_link->prev->data; prev_media->legacy_osrtp = 1; sp->index--; (*num)--; return false; } // or is it a rejected SRTP with a non-rejected RTP counterpart? if (!sp->rtp_endpoint.port && last->rtp_endpoint.port) { // just throw the rejected SRTP section away struct sdp_media *media = media_link->data; media->legacy_osrtp = 1; sp_free(sp); return true; } } // or is it reversed? this being RTP and the previous was SRTP else if (!sp->protocol->srtp && last->protocol->srtp) { // if the SRTP one is not rejected, throw away the RTP one and mark the SRTP one if (last->rtp_endpoint.port) { SP_SET(last, LEGACY_OSRTP); SP_SET(last, LEGACY_OSRTP_REV); struct sdp_media *media = media_link->data; media->legacy_osrtp = 1; sp_free(sp); return true; } } return false; } static struct sdp_attr *sdp_attr_dup(const struct sdp_attribute *c) { struct sdp_attr *ac = g_new0(__typeof(*ac), 1); str_init_dup_str(&ac->strs.name, &c->strs.name); str_init_dup_str(&ac->strs.value, &c->strs.value); ac->type = c->other; return ac; } void sdp_attr_free(struct sdp_attr *c) { str_free_dup(&c->strs.name); str_free_dup(&c->strs.value); g_free(c); } sdp_origin *sdp_orig_dup(const sdp_origin *orig) { sdp_origin *copy = g_slice_alloc0(sizeof(*copy)); str_init_dup_str(©->username, &orig->username); str_init_dup_str(©->session_id, &orig->session_id); str_init_dup_str(©->version_str, &orig->version_str); copy->version_num = orig->version_num; copy->version_output_pos = orig->version_output_pos; copy->parsed = orig->parsed; /* struct network_address */ str_init_dup_str(©->address.network_type, &orig->address.network_type); str_init_dup_str(©->address.address_type, &orig->address.address_type); str_init_dup_str(©->address.address, &orig->address.address); copy->address.parsed = orig->address.parsed; return copy; } void sdp_orig_free(sdp_origin *o) { str_free_dup(&o->username); str_free_dup(&o->session_id); str_free_dup(&o->version_str); str_free_dup(&o->address.network_type); str_free_dup(&o->address.address_type); str_free_dup(&o->address.address); g_slice_free1(sizeof(*o), o); } // Duplicate all OTHER attributes from the source (parsed SDP attributes list) into // the destination (string-format attribute list) static void sdp_attr_append_other(sdp_attr_q *dst, struct sdp_attributes *src) { __auto_type attrs = attr_list_get_by_id(src, ATTR_OTHER); for (__auto_type ll = attrs ? attrs->head : NULL; ll; ll = ll->next) { __auto_type attr = ll->data; struct sdp_attr *ac = sdp_attr_dup(attr); t_queue_push_tail(dst, ac); } } /* XXX split this function up */ int sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *flags) { struct sdp_session *session; struct sdp_media *media; struct stream_params *sp; const char *errstr; unsigned int num = 0; struct sdp_attribute *attr; for (auto_iter(l, sessions->head); l; l = l->next) { session = l->data; /* carry some of session level attributes for a later usage, using flags * e.g. usage in `__call_monologue_init_from_flags()` or direct usage * in `sdp_create()` */ sdp_attr_append_other(&flags->session_attributes, &session->attributes); /* set only for the first SDP session, to be able to re-use versioning * for all the rest SDP sessions during replacements. See `sdp_version_check()` */ if (!flags->session_sdp_orig.parsed) flags->session_sdp_orig = session->origin; flags->session_sdp_name = session->session_name; flags->session_rr = session->rr; flags->session_rs = session->rs; flags->session_timing = session->session_timing; for (__auto_type k = session->media_streams.head; k; k = k->next) { media = k->data; sp = g_slice_alloc0(sizeof(*sp)); sp->index = ++num; codec_store_init(&sp->codecs, NULL); sp->media_sdp_id = media->media_sdp_id; errstr = "No address info found for stream"; if (!flags->fragment && fill_endpoint(&sp->rtp_endpoint, media, flags, NULL, media->port_num)) goto error; __sdp_ice(sp, media); if (SP_ISSET(sp, ICE)) { // ignore "received from" (SIP-source-address) when ICE is in use flags->trust_address = 1; } /* * pass important context parameters: sdp_media -> stream_params */ sp->consecutive_ports = media->port_count; sp->num_ports = sp->consecutive_ports * 2; // only do *=2 for RTP streams? sp->protocol_str = media->transport; sp->protocol = transport_protocol(&media->transport); sp->type = media->media_type_str; sp->type_id = media->media_type_id; memcpy(sp->direction, flags->direction, sizeof(sp->direction)); sp->desired_family = flags->address_family; bf_set_clear(&sp->sp_flags, SP_FLAG_ASYMMETRIC, flags->asymmetric); bf_set_clear(&sp->sp_flags, SP_FLAG_UNIDIRECTIONAL, flags->unidirectional); bf_set_clear(&sp->sp_flags, SP_FLAG_STRICT_SOURCE, flags->strict_source); bf_set_clear(&sp->sp_flags, SP_FLAG_MEDIA_HANDOVER, flags->media_handover); /* b= (bandwidth), is parsed in sdp_parse() */ sp->media_session_as = media->as; sp->media_session_rr = media->rr; sp->media_session_rs = media->rs; // a=ptime attr = attr_get_by_id(&media->attributes, ATTR_PTIME); if (attr && attr->strs.value.s) sp->ptime = str_to_i(&attr->strs.value, 0); sp->format_str = media->formats; errstr = "Invalid RTP payload types"; if (__rtp_payload_types(sp, media)) goto error; /* a=crypto */ attributes_q *attrs = attr_list_get_by_id(&media->attributes, ATTR_CRYPTO); for (__auto_type ll = attrs ? attrs->head : NULL; ll; ll = ll->next) { attr = ll->data; struct crypto_params_sdes *cps = g_slice_alloc0(sizeof(*cps)); t_queue_push_tail(&sp->sdes_params, cps); cps->params.crypto_suite = attr->crypto.crypto_suite; cps->params.mki_len = attr->crypto.mki_len; if (cps->params.mki_len) { cps->params.mki = malloc(cps->params.mki_len); memcpy(cps->params.mki, attr->crypto.mki, cps->params.mki_len); } cps->tag = attr->crypto.tag; assert(sizeof(cps->params.master_key) >= attr->crypto.master_key.len); assert(sizeof(cps->params.master_salt) >= attr->crypto.salt.len); memcpy(cps->params.master_key, attr->crypto.master_key.s, attr->crypto.master_key.len); memcpy(cps->params.master_salt, attr->crypto.salt.s, attr->crypto.salt.len); cps->params.session_params.unencrypted_srtp = attr->crypto.unencrypted_srtp; cps->params.session_params.unencrypted_srtcp = attr->crypto.unencrypted_srtcp; cps->params.session_params.unauthenticated_srtp = attr->crypto.unauthenticated_srtp; } sdp_attr_append_other(&sp->attributes, &media->attributes); /* a=sendrecv/sendonly/recvonly/inactive */ SP_SET(sp, SEND); SP_SET(sp, RECV); if (attr_get_by_id_m_s(media, ATTR_RECVONLY)) SP_CLEAR(sp, SEND); else if (attr_get_by_id_m_s(media, ATTR_SENDONLY)) SP_CLEAR(sp, RECV); else if (attr_get_by_id_m_s(media, ATTR_INACTIVE)) { SP_CLEAR(sp, RECV); SP_CLEAR(sp, SEND); } /* a=setup */ attr = attr_get_by_id_m_s(media, ATTR_SETUP); if (attr) { if (attr->setup.value == SETUP_ACTPASS || attr->setup.value == SETUP_ACTIVE) SP_SET(sp, SETUP_ACTIVE); if (attr->setup.value == SETUP_ACTPASS || attr->setup.value == SETUP_PASSIVE) SP_SET(sp, SETUP_PASSIVE); } /* a=fingerprint */ attr = attr_get_by_id_m_s(media, ATTR_FINGERPRINT); if (attr && attr->fingerprint.hash_func) { sp->fingerprint.hash_func = attr->fingerprint.hash_func; memcpy(sp->fingerprint.digest, attr->fingerprint.fingerprint, sp->fingerprint.hash_func->num_bytes); sp->fingerprint.digest_len = sp->fingerprint.hash_func->num_bytes; } // a=tls-id attr = attr_get_by_id_m_s(media, ATTR_TLS_ID); if (attr) sp->tls_id = attr->strs.value; // OSRTP (RFC 8643) if (sp->protocol && sp->protocol->rtp && !sp->protocol->srtp && sp->protocol->osrtp_proto) { if (sp->fingerprint.hash_func || sp->sdes_params.length) sp->protocol = &transport_protocols[sp->protocol->osrtp_proto]; } if (legacy_osrtp_accept(sp, streams, k, flags, &num)) continue; // a=mid attr = attr_get_by_id(&media->attributes, ATTR_MID); if (attr) sp->media_id = attr->strs.value; // be ignorant about the contents if (attr_get_by_id(&media->attributes, ATTR_RTCP_FB)) SP_SET(sp, RTCP_FB); __sdp_t38(sp, media); /* determine RTCP endpoint */ if (attr_get_by_id(&media->attributes, ATTR_RTCP_MUX)) SP_SET(sp, RTCP_MUX); attr = attr_get_by_id(&media->attributes, ATTR_RTCP); if (!attr || media->port_count != 1) { SP_SET(sp, IMPLICIT_RTCP); goto next; } if (attr->rtcp.port_num == sp->rtp_endpoint.port && !is_trickle_ice_address(&sp->rtp_endpoint)) { SP_SET(sp, RTCP_MUX); goto next; } errstr = "Invalid RTCP attribute"; if (fill_endpoint(&sp->rtcp_endpoint, media, flags, &attr->rtcp.address, attr->rtcp.port_num)) goto error; next: t_queue_push_tail(streams, sp); } } return 0; error: ilog(LOG_WARNING, "Failed to extract streams from SDP: %s", errstr); g_slice_free1(sizeof(*sp), sp); return -1; } void sdp_streams_clear(sdp_streams_q *q) { t_queue_clear_full(q, sp_free); } struct sdp_chopper *sdp_chopper_new(str *input) { struct sdp_chopper *c = g_slice_alloc0(sizeof(*c)); c->input = input; c->output = g_string_new(""); return c; } INLINE void chopper_append(struct sdp_chopper *c, const char *s, int len) { g_string_append_len(c->output, s, len); } INLINE void chopper_append_c(struct sdp_chopper *c, const char *s) { chopper_append(c, s, strlen(s)); } INLINE void chopper_append_str(struct sdp_chopper *c, const str *s) { chopper_append(c, s->s, s->len); } static void chopper_replace(struct sdp_chopper *c, str *old, size_t *old_pos, const char *repl, size_t repl_len) { // adjust for offsets created within this run *old_pos += c->offset; // is our new value longer? if (repl_len > old->len) { // overwrite + insert g_string_overwrite_len(c->output, *old_pos, repl, old->len); g_string_insert(c->output, *old_pos + old->len, repl + old->len); c->offset += repl_len - old->len; old->len = repl_len; } else { // overwrite + optional erase g_string_overwrite(c->output, *old_pos, repl); if (repl_len < old->len) { g_string_erase(c->output, *old_pos + repl_len, old->len - repl_len); c->offset -= old->len - repl_len; old->len = repl_len; } } } #define chopper_append_printf(c, f...) g_string_append_printf((c)->output, f) static int copy_up_to_ptr(struct sdp_chopper *chop, const char *b) { int offset, len; if (!b) return 0; offset = b - chop->input->s; assert(offset >= 0); assert(offset <= chop->input->len); len = offset - chop->position; if (len < 0) { ilog(LOG_WARNING, "Malformed SDP, cannot rewrite"); return -1; } chopper_append(chop, chop->input->s + chop->position, len); chop->position += len; return 0; } static int copy_up_to(struct sdp_chopper *chop, str *where) { return copy_up_to_ptr(chop, where->s); } static int copy_up_to_end_of(struct sdp_chopper *chop, str *where) { return copy_up_to_ptr(chop, where->s + where->len); } static void copy_remainder(struct sdp_chopper *chop) { copy_up_to_ptr(chop, chop->input->s + chop->input->len); } static int skip_over(struct sdp_chopper *chop, str *where) { int offset, len; if (!where || !where->s) return 0; offset = (where->s - chop->input->s) + where->len; assert(offset >= 0); assert(offset <= chop->input->len); len = offset - chop->position; if (len < 0) { ilog(LOG_WARNING, "Malformed SDP, cannot rewrite"); return -1; } chop->position += len; return 0; } static int replace_transport_protocol(struct sdp_chopper *chop, struct sdp_media *media, struct call_media *cm) { str *tp = &media->transport; if (!cm->protocol) return 0; if (copy_up_to(chop, tp)) return -1; chopper_append_c(chop, cm->protocol->name); if (skip_over(chop, tp)) return -1; return 0; } static int print_format_str(GString *s, struct call_media *cm) { if (!cm->format_str.s) return 0; g_string_append_len(s, cm->format_str.s, cm->format_str.len); return 0; } static int print_codec_list(GString *s, struct call_media *media) { if (!proto_is_rtp(media->protocol)) return print_format_str(s, media); if (media->codecs.codec_prefs.length == 0) return 0; // legacy protocol or usage error for (__auto_type l = media->codecs.codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; if (l != media->codecs.codec_prefs.head) g_string_append_c(s, ' '); g_string_append_printf(s, "%u", pt->payload_type); } return 0; } static int replace_codec_list(struct sdp_chopper *chop, struct sdp_media *media, struct call_media *cm) { if (copy_up_to(chop, &media->formats)) return -1; if (skip_over(chop, &media->formats)) return -1; return print_codec_list(chop->output, cm); } static void insert_codec_parameters(GString *s, struct call_media *cm, const sdp_ng_flags *flags) { for (__auto_type l = cm->codecs.codec_prefs.head; l; l = l->next) { rtp_payload_type *pt = l->data; if (!pt->encoding_with_params.len) continue; /* rtpmap */ append_int_tagged_attr_to_gstring(s, "rtpmap", pt->payload_type, &pt->encoding_with_params, flags, cm->type_id); /* fmtp */ g_autoptr(GString) fmtp = NULL; if (pt->codec_def && pt->codec_def->format_print) { fmtp = pt->codec_def->format_print(pt); /* try appending list of parameters */ if (fmtp && fmtp->len) append_int_tagged_attr_to_gstring(s, "fmtp", pt->payload_type, &STR_INIT_GS(fmtp), flags, cm->type_id); } if (!fmtp && pt->format_parameters.len) append_int_tagged_attr_to_gstring(s, "fmtp", pt->payload_type, &pt->format_parameters, flags, cm->type_id); /* rtcp-fb */ for (GList *k = pt->rtcp_fb.head; k; k = k->next) { str *fb = k->data; append_int_tagged_attr_to_gstring(s, "rtcp-fb", pt->payload_type, fb, flags, cm->type_id); } } } void sdp_insert_media_attributes(GString *gs, union sdp_attr_print_arg a, const sdp_ng_flags *flags) { // Look up the source media. We copy the source's attributes if there is only one source // media. Otherwise we skip this step. if (a.cm->media_subscriptions.length != 1) return; __auto_type sub = a.cm->media_subscriptions.head->data; __auto_type sub_m = sub->media; for (__auto_type l = sub_m->sdp_attributes.head; l; l = l->next) { __auto_type s = l->data; if (s->type == SDP_ATTR_TYPE_EXTMAP && flags->strip_extmap && !MEDIA_ISSET(a.cm, PASSTHRU)) continue; append_str_attr_to_gstring(gs, &s->strs.name, &s->strs.value, flags, a.cm->type_id); } } void sdp_insert_monologue_attributes(GString *gs, union sdp_attr_print_arg a, const sdp_ng_flags *flags) { // Look up the source monologue. This must be a single source monologue for all medias. If // there's a mismatch or multiple source monologues, we skip this step. struct call_monologue *source_ml = ml_medias_subscribed_to_single_ml(a.ml); if (!source_ml) return; for (__auto_type l = source_ml->sdp_attributes.head; l; l = l->next) { __auto_type s = l->data; if (s->type == SDP_ATTR_TYPE_EXTMAP && flags->strip_extmap) continue; append_str_attr_to_gstring(gs, &s->strs.name, &s->strs.value, flags, MT_UNKNOWN); } } static int replace_media_type(struct sdp_chopper *chop, struct sdp_media *media, struct call_media *cm) { str *type = &media->media_type_str; if (!cm->type.s) return 0; if (copy_up_to(chop, type)) return -1; chopper_append_str(chop, &cm->type); if (skip_over(chop, type)) return -1; return 0; } static int replace_media_port(struct sdp_chopper *chop, struct sdp_media *media, struct packet_stream *ps) { str *port = &media->port; unsigned int p; if (!media->port_num) return 0; if (copy_up_to(chop, port)) return -1; p = ps->selected_sfd ? ps->selected_sfd->socket.local.port : 0; chopper_append_printf(chop, "%u", p); if (skip_over(chop, port)) return -1; return 0; } static int replace_consecutive_port_count(struct sdp_chopper *chop, struct sdp_media *media, struct packet_stream *ps, packet_stream_list *j) { int cons; struct packet_stream *ps_n; if (media->port_count == 1 || !ps->selected_sfd) return 0; for (cons = 1; cons < media->port_count; cons++) { j = j->next; if (!j) goto warn; ps_n = j->data; if (ps_n->selected_sfd->socket.local.port != ps->selected_sfd->socket.local.port + cons) { warn: ilog(LOG_WARN, "Failed to handle consecutive ports"); break; } } chopper_append_printf(chop, "/%i", cons); return 0; } static int insert_ice_address(GString *s, stream_fd *sfd, const sdp_ng_flags *flags) { char buf[64]; int len; if (!is_addr_unspecified(&flags->parsed_media_address)) len = sprintf(buf, "%s", sockaddr_print_buf(&flags->parsed_media_address)); else call_stream_address46(buf, sfd->stream, SAF_ICE, &len, sfd->local_intf, false); g_string_append_len(s, buf, len); g_string_append_printf(s, " %u", sfd->socket.local.port); return 0; } static int insert_raddr_rport(GString *s, stream_fd *sfd, const sdp_ng_flags *flags) { char buf[64]; int len; g_string_append(s, " raddr "); if (!is_addr_unspecified(&flags->parsed_media_address)) len = sprintf(buf, "%s", sockaddr_print_buf(&flags->parsed_media_address)); else call_stream_address46(buf, sfd->stream, SAF_ICE, &len, sfd->local_intf, false); g_string_append_len(s, buf, len); g_string_append(s, " rport "); g_string_append_printf(s, "%u", sfd->socket.local.port); return 0; } static int replace_network_address(struct sdp_chopper *chop, struct network_address *address, struct packet_stream *ps, sdp_ng_flags *flags, bool keep_unspec) { char buf[64]; int len; if (copy_up_to(chop, &address->address_type)) return -1; if (flags->media_address.s && is_addr_unspecified(&flags->parsed_media_address)) __parse_address(&flags->parsed_media_address, NULL, NULL, &flags->media_address); if (!is_addr_unspecified(&flags->parsed_media_address)) len = sprintf(buf, "%s %s", flags->parsed_media_address.family->rfc_name, sockaddr_print_buf(&flags->parsed_media_address)); else call_stream_address46(buf, ps, SAF_NG, &len, NULL, keep_unspec); chopper_append(chop, buf, len); if (skip_over(chop, &address->address)) return -1; return 0; } static int synth_session_connection(struct sdp_chopper *chop, struct sdp_media *sdp_media) { if (!sdp_media->session->connection.s.s) return -1; if (sdp_media->c_line_pos) copy_up_to_ptr(chop, sdp_media->c_line_pos); else copy_up_to_end_of(chop, chop->input); chopper_append_c(chop, "c="); chopper_append_str(chop, &sdp_media->session->connection.s); chopper_append_c(chop, "\n"); return 0; } void sdp_chopper_destroy(struct sdp_chopper *chop) { if (chop->output) g_string_free(chop->output, TRUE); g_slice_free1(sizeof(*chop), chop); } void sdp_chopper_destroy_ret(struct sdp_chopper *chop, str *ret) { *ret = STR_NULL; if (chop->output) { size_t len = chop->output->len; char *s = g_string_free(chop->output, FALSE); str_init_len(ret, s, len); chop->output = NULL; } sdp_chopper_destroy(chop); } /* processing existing session attributes (those present in offer/answer) */ static int process_session_attributes(struct sdp_chopper *chop, struct sdp_attributes *attrs, sdp_ng_flags *flags) { struct sdp_attribute *attr; for (__auto_type l = attrs->list.head; l; l = l->next) { attr = l->data; struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, MT_UNKNOWN); switch (attr->attr) { case ATTR_ICE: case ATTR_ICE_UFRAG: case ATTR_ICE_PWD: case ATTR_ICE_OPTIONS: case ATTR_ICE_LITE: if (flags->ice_option != ICE_REMOVE && flags->ice_option != ICE_FORCE && flags->ice_option != ICE_DEFAULT) break; goto strip; case ATTR_CANDIDATE: if (flags->ice_option == ICE_FORCE_RELAY) { if ((attr->candidate.type_str.len == 5) && (strncasecmp(attr->candidate.type_str.s, "relay", 5) == 0)) goto strip; else break; } if (flags->ice_option != ICE_REMOVE && flags->ice_option != ICE_FORCE && flags->ice_option != ICE_DEFAULT) break; goto strip; case ATTR_FINGERPRINT: case ATTR_SETUP: case ATTR_TLS_ID: case ATTR_IGNORE: goto strip; case ATTR_INACTIVE: case ATTR_SENDONLY: case ATTR_RECVONLY: case ATTR_SENDRECV: if (!flags->original_sendrecv) goto strip; break; case ATTR_GROUP: if (attr->group.semantics == GROUP_BUNDLE) goto strip; break; default: break; } /* if attr is supposed to be removed don't add to the chop->output */ if (sdp_manipulate_remove_attr(sdp_manipulations, attr)) goto strip; /* if attr is supposed to be substituted don't add to the chop->output, but add another value */ str *subst_str = sdp_manipulations_subst_attr(sdp_manipulations, attr); if (subst_str) goto strip_with_subst; continue; strip: if (copy_up_to(chop, &attr->full_line)) return -1; if (skip_over(chop, &attr->full_line)) return -1; continue; strip_with_subst: if (copy_up_to(chop, &attr->full_line)) return -1; if (skip_over(chop, &attr->full_line)) return -1; chopper_append_printf(chop, "a=" STR_FORMAT "\r\n", STR_FMT(subst_str)); } return 0; } /* processing existing media attributes (those present in offer/answer) */ static int process_media_attributes(struct sdp_chopper *chop, struct sdp_media *sdp, sdp_ng_flags *flags, struct call_media *media) { struct sdp_attributes *attrs = &sdp->attributes; struct sdp_attribute *attr /* , *a */; for (__auto_type l = attrs->list.head; l; l = l->next) { attr = l->data; // strip all attributes if we're sink and generator - make our own clean SDP if (MEDIA_ISSET(media, GENERATOR)) goto strip; struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, sdp->media_type_id); // protocol-agnostic attributes switch (attr->attr) { case ATTR_ICE: case ATTR_ICE_UFRAG: case ATTR_ICE_PWD: case ATTR_ICE_OPTIONS: case ATTR_ICE_LITE: if (MEDIA_ISSET(media, PASSTHRU)) break; if (flags->ice_option != ICE_REMOVE && flags->ice_option != ICE_FORCE && flags->ice_option != ICE_DEFAULT) break; goto strip; case ATTR_CANDIDATE: if (flags->ice_option == ICE_FORCE_RELAY) { if ((attr->candidate.type_str.len == 5) && (strncasecmp(attr->candidate.type_str.s, "relay", 5) == 0)) goto strip; else break; } if (MEDIA_ISSET(media, PASSTHRU)) break; if (flags->ice_option != ICE_REMOVE && flags->ice_option != ICE_FORCE && flags->ice_option != ICE_DEFAULT) break; goto strip; case ATTR_IGNORE: case ATTR_END_OF_CANDIDATES: // we strip it here and re-insert it later case ATTR_MID: goto strip; case ATTR_INACTIVE: case ATTR_SENDONLY: case ATTR_RECVONLY: case ATTR_SENDRECV: if (!flags->original_sendrecv) goto strip; break; /* strip all unknown type attributes if required, additionally: * ssrc / msid / unknown types */ case ATTR_OTHER: goto strip; default: break; } // leave everything alone if protocol is unsupported if (!media->protocol) continue; switch (attr->attr) { case ATTR_RTCP: case ATTR_RTCP_MUX: if (flags->ice_option == ICE_FORCE_RELAY) break; goto strip; case ATTR_RTPMAP: case ATTR_FMTP: if (media->codecs.codec_prefs.length > 0) goto strip; break; case ATTR_PTIME: if (media->ptime) goto strip; break; case ATTR_RTCP_FB: if (attr->rtcp_fb.payload_type == -1) break; // leave this one alone if (media->codecs.codec_prefs.length > 0) goto strip; break; case ATTR_CRYPTO: case ATTR_FINGERPRINT: case ATTR_SETUP: case ATTR_TLS_ID: if (MEDIA_ISSET(media, PASSTHRU)) break; goto strip; default: break; } /* if attr is supposed to be removed don't add to the chop->output */ if (sdp_manipulate_remove_attr(sdp_manipulations, attr)) goto strip; /* if attr is supposed to be substituted don't add to the chop->output, but add another value */ str *subst_str = sdp_manipulations_subst_attr(sdp_manipulations, attr); if (subst_str) goto strip_with_subst; continue; strip: if (copy_up_to(chop, &attr->full_line)) return -1; if (skip_over(chop, &attr->full_line)) return -1; continue; strip_with_subst: if (copy_up_to(chop, &attr->full_line)) return -1; if (skip_over(chop, &attr->full_line)) return -1; chopper_append_printf(chop, "a=" STR_FORMAT "\r\n", STR_FMT(subst_str)); } return 0; } static void new_priority(struct sdp_media *media, enum ice_candidate_type type, unsigned int *tprefp, unsigned int *lprefp) { unsigned int lpref, tpref; uint32_t prio; struct sdp_attribute *a; struct attribute_candidate *c; lpref = 0; tpref = ice_type_preference(type); prio = ice_priority_pref(tpref, lpref, 1); attributes_q *cands = attr_list_get_by_id(&media->attributes, ATTR_CANDIDATE); if (!cands) goto out; for (__auto_type l = cands->head; l; l = l->next) { a = l->data; c = &a->candidate; if (c->cand_parsed.priority <= prio && c->cand_parsed.type == type && c->cand_parsed.component_id == 1) { /* tpref should come out as 126 (if host) here, unless the client isn't following * the RFC, in which case we must adapt */ tpref = ice_type_pref_from_prio(c->cand_parsed.priority); lpref = ice_local_pref_from_prio(c->cand_parsed.priority); if (lpref) lpref--; else { /* we must deviate from the RFC recommended values */ if (tpref) tpref--; lpref = 65535; } prio = ice_priority_pref(tpref, lpref, 1); } } out: *tprefp = tpref; *lprefp = lpref; } static void insert_candidate(GString *s, stream_fd *sfd, unsigned int type_pref, unsigned int local_pref, enum ice_candidate_type type, const sdp_ng_flags *flags, struct sdp_media *sdp_media) { unsigned long priority; struct packet_stream *ps = sfd->stream; const struct local_intf *ifa = sfd->local_intf; g_autoptr(GString) s_dst = g_string_new(""); if (local_pref == -1) local_pref = ifa->unique_id; priority = ice_priority_pref(type_pref, local_pref, ps->component); g_string_append_printf(s_dst, "%u UDP %lu ", ps->component, priority); insert_ice_address(s_dst, sfd, flags); g_string_append(s_dst, " typ "); g_string_append(s_dst, ice_candidate_type_str(type)); /* raddr and rport are required for non-host candidates: rfc5245 section-15.1 */ if(type != ICT_HOST) insert_raddr_rport(s_dst, sfd, flags); /* append to the chop->output */ append_tagged_attr_to_gstring(s, "candidate", &ifa->ice_foundation, &STR_INIT_GS(s_dst), flags, (sdp_media ? sdp_media->media_type_id : MT_UNKNOWN)); } static void insert_sfd_candidates(GString *s, struct packet_stream *ps, unsigned int type_pref, unsigned int local_pref, enum ice_candidate_type type, const sdp_ng_flags *flags, struct sdp_media *sdp_media) { for (__auto_type l = ps->sfds.head; l; l = l->next) { stream_fd *sfd = l->data; insert_candidate(s, sfd, type_pref, local_pref, type, flags, sdp_media); if (local_pref != -1) local_pref++; } } static void insert_candidates(GString *s, struct packet_stream *rtp, struct packet_stream *rtcp, const sdp_ng_flags *flags, struct sdp_media *sdp_media) { const struct local_intf *ifa; struct call_media *media; struct ice_agent *ag; unsigned int type_pref, local_pref; enum ice_candidate_type cand_type; struct ice_candidate *cand; media = rtp->media; cand_type = ICT_HOST; if (flags->ice_option == ICE_FORCE_RELAY) cand_type = ICT_RELAY; if (MEDIA_ISSET(media, PASSTHRU) && sdp_media) new_priority(sdp_media, cand_type, &type_pref, &local_pref); else { type_pref = ice_type_preference(cand_type); local_pref = -1; } ag = media->ice_agent; if (ag && AGENT_ISSET(ag, COMPLETED)) { ifa = rtp->selected_sfd->local_intf; insert_candidate(s, rtp->selected_sfd, type_pref, ifa->unique_id, cand_type, flags, sdp_media); if (rtcp) /* rtcp-mux only possible in answer */ insert_candidate(s, rtcp->selected_sfd, type_pref, ifa->unique_id, cand_type, flags, sdp_media); if (flags->opmode == OP_OFFER && AGENT_ISSET(ag, CONTROLLING)) { g_auto(candidate_q) rc = TYPED_GQUEUE_INIT; g_autoptr(GString) s_dst = g_string_new(""); /* prepare remote-candidates */ ice_remote_candidates(&rc, ag); for (__auto_type l = rc.head; l; l = l->next) { if (l != rc.head) g_string_append(s_dst, " "); cand = l->data; g_string_append_printf(s_dst, "%lu %s %u", cand->component_id, sockaddr_print_buf(&cand->endpoint.address), cand->endpoint.port); } /* append to the chop->output */ append_attr_to_gstring(s, "remote-candidates", &STR_INIT_GS(s_dst), flags, (sdp_media ? sdp_media->media_type_id : MT_UNKNOWN)); } return; } insert_sfd_candidates(s, rtp, type_pref, local_pref, cand_type, flags, sdp_media); if (rtcp) /* rtcp-mux only possible in answer */ insert_sfd_candidates(s, rtcp, type_pref, local_pref, cand_type, flags, sdp_media); } static void insert_dtls(GString *s, struct call_media *media, struct dtls_connection *dtls, const sdp_ng_flags *flags) { unsigned char *p; int i; const struct dtls_hash_func *hf; str actpass_str = STR_NULL; call_t *call = media->call; if (!media->protocol || !media->protocol->srtp) return; if (!call->dtls_cert || !MEDIA_ISSET(media, DTLS) || MEDIA_ISSET(media, PASSTHRU)) return; hf = media->fp_hash_func; if (!hf) hf = media->fingerprint.hash_func; struct dtls_fingerprint *fp = NULL; for (GList *l = call->dtls_cert->fingerprints.head; l; l = l->next) { fp = l->data; if (!hf) break; if (!strcasecmp(hf->name, fp->hash_func->name)) break; fp = NULL; } if (!fp) // use first if no match fp = call->dtls_cert->fingerprints.head->data; hf = fp->hash_func; media->fp_hash_func = hf; assert(hf->num_bytes > 0); if (MEDIA_ARESET2(media, SETUP_PASSIVE, SETUP_ACTIVE)) str_init(&actpass_str, "actpass"); else if (MEDIA_ISSET(media, SETUP_PASSIVE)) str_init(&actpass_str, "passive"); else if (MEDIA_ISSET(media, SETUP_ACTIVE)) str_init(&actpass_str, "active"); else str_init(&actpass_str, "holdconn"); append_attr_to_gstring(s, "setup", &actpass_str, flags, media->type_id); /* prepare fingerprint */ g_autoptr(GString) s_dst = g_string_new(""); g_string_append(s_dst, hf->name); g_string_append(s_dst, " "); p = fp->digest; for (i = 0; i < hf->num_bytes; i++) g_string_append_printf(s_dst, "%02X:", *p++); g_string_truncate(s_dst, s_dst->len - 1); /* append to the chop->output */ append_attr_to_gstring(s, "fingerprint", &STR_INIT_GS(s_dst), flags, media->type_id); if (dtls) { /* prepare tls-id */ g_string_truncate(s_dst, 0); p = dtls->tls_id; for (i = 0; i < sizeof(dtls->tls_id); i++) g_string_append_printf(s_dst, "%02x", *p++); /* append to the chop->output */ append_attr_to_gstring(s, "tls-id", &STR_INIT_GS(s_dst), flags, media->type_id); } } static void insert_crypto1(GString *s, struct call_media *media, struct crypto_params_sdes *cps, const sdp_ng_flags *flags) { char b64_buf[((SRTP_MAX_MASTER_KEY_LEN + SRTP_MAX_MASTER_SALT_LEN) / 3 + 1) * 4 + 4]; char *p; int state = 0, save = 0, i; unsigned long long ull; if (!cps->params.crypto_suite || !MEDIA_ISSET(media, SDES) || MEDIA_ISSET(media, PASSTHRU)) return; g_autoptr(GString) s_dst = g_string_new(""); p = b64_buf; p += g_base64_encode_step((unsigned char *) cps->params.master_key, cps->params.crypto_suite->master_key_len, 0, p, &state, &save); p += g_base64_encode_step((unsigned char *) cps->params.master_salt, cps->params.crypto_suite->master_salt_len, 0, p, &state, &save); p += g_base64_encode_close(0, p, &state, &save); if (!flags->sdes_pad) { // truncate trailing == while (p > b64_buf && p[-1] == '=') p--; } g_string_append(s_dst, cps->params.crypto_suite->name); g_string_append(s_dst, " inline:"); g_string_append_len(s_dst, b64_buf, p - b64_buf); if (flags->sdes_lifetime) g_string_append(s_dst, "|2^31"); if (cps->params.mki_len) { ull = 0; for (i = 0; i < cps->params.mki_len && i < sizeof(ull); i++) ull |= (unsigned long long) cps->params.mki[cps->params.mki_len - i - 1] << (i * 8); g_string_append_printf(s_dst, "|%llu:%u", ull, cps->params.mki_len); } if (cps->params.session_params.unencrypted_srtp) g_string_append(s_dst, " UNENCRYPTED_SRTP"); if (cps->params.session_params.unencrypted_srtcp) g_string_append(s_dst, " UNENCRYPTED_SRTCP"); if (cps->params.session_params.unauthenticated_srtp) g_string_append(s_dst, " UNAUTHENTICATED_SRTP"); /* append to the chop->output */ append_int_tagged_attr_to_gstring(s, "crypto", cps->tag, &STR_INIT_GS(s_dst), flags, media->type_id); } static void insert_crypto(GString *s, struct call_media *media, const sdp_ng_flags *flags) { if (!media->protocol || !media->protocol->srtp) return; for (__auto_type l = media->sdes_out.head; l; l = l->next) insert_crypto1(s, media, l->data, flags); } static void insert_rtcp_attr(GString *s, struct packet_stream *ps, const sdp_ng_flags *flags, struct sdp_media *sdp_media) { if (flags->no_rtcp_attr) return; g_autoptr(GString) s_dst = g_string_new(""); g_string_append_printf(s_dst, "%u", ps->selected_sfd->socket.local.port); if (flags->full_rtcp_attr) { char buf[64]; int len; if (!is_addr_unspecified(&flags->parsed_media_address)) len = sprintf(buf, "%s %s", flags->parsed_media_address.family->rfc_name, sockaddr_print_buf(&flags->parsed_media_address)); else call_stream_address46(buf, ps, SAF_NG, &len, NULL, false); g_string_append_printf(s_dst, " IN %.*s", len, buf); } /* append to the chop->output */ append_attr_to_gstring(s, "rtcp", &STR_INIT_GS(s_dst), flags, (sdp_media ? sdp_media->media_type_id : MT_UNKNOWN)); } static void sdp_version_replace(struct sdp_chopper *chop, sdp_sessions_q *sessions, sdp_origin *orig) { char version_str[64]; snprintf(version_str, sizeof(version_str), "%llu", orig->version_num); size_t version_len = strlen(version_str); chop->offset = 0; // start from the top for (__auto_type l = sessions->head; l; l = l->next) { struct sdp_session *session = l->data; sdp_origin *origin = &session->origin; // update string unconditionally to keep position tracking intact chopper_replace(chop, &origin->version_str, &origin->version_output_pos, version_str, version_len); } } static void sdp_version_check(struct sdp_chopper *chop, sdp_sessions_q *sessions, struct call_monologue *monologue, struct sdp_session *session, unsigned int force_increase) { /* We really expect only a single session here, but we treat all the same regardless, * and use the same version number on all of them */ if (!monologue->session_last_sdp_orig) return; sdp_origin *origin = monologue->session_last_sdp_orig; /* First update all versions to match our single version */ sdp_version_replace(chop, sessions, origin); /* Now check if we need to change the version actually. * The version change will be forced with the 'force_increase', * and it gets incremented, regardless whether: * - we have no previously stored SDP, * - we have previous SDP and it's equal to the current one */ if (!force_increase) { if (!monologue->last_out_sdp) goto dup; if (g_string_equal(monologue->last_out_sdp, chop->output)) return; } /* mismatch detected. increment version, update again, and store copy */ origin->version_num++; sdp_version_replace(chop, sessions, origin); if (monologue->last_out_sdp) g_string_free(monologue->last_out_sdp, TRUE); dup: monologue->last_out_sdp = g_string_new_len(chop->output->str, chop->output->len); } const char *sdp_get_sendrecv(struct call_media *media) { if (MEDIA_ARESET2(media, SEND, RECV)) return "sendrecv"; else if (MEDIA_ISSET(media, SEND)) return "sendonly"; else if (MEDIA_ISSET(media, RECV)) return "recvonly"; else return "inactive"; } /* A function used to append attributes to the output chop */ static void generic_append_attr_to_gstring(GString *s, const str * attr, char separator, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, media_type); str * attr_subst = sdp_manipulations_subst(sdp_manipulations, attr); /* first check if the originally present attribute is to be removed */ if (sdp_manipulate_remove(sdp_manipulations, attr)) return; g_string_append(s, "a="); /* then, if there remains something to be substituted, do that */ if (attr_subst) g_string_append_len(s, attr_subst->s, attr_subst->len); // complete attribute else { gsize attr_start = s->len; // save beginning of complete attribute string /* attr name */ g_string_append_len(s, attr->s, attr->len); /* attr value */ if (value && value->len) { g_string_append_c(s, separator); g_string_append_len(s, value->s, value->len); // check if the complete attribute string is marked for removal ... str complete = STR_INIT_LEN(s->str + attr_start, s->len - attr_start); if (sdp_manipulate_remove(sdp_manipulations, &complete)) { // rewind and bail g_string_truncate(s, attr_start - 2); // -2 for `a=` return; } // ... or substitution attr_subst = sdp_manipulations_subst(sdp_manipulations, &complete); if (attr_subst) { // rewind and replace g_string_truncate(s, attr_start); g_string_append_len(s, attr_subst->s, attr_subst->len); } } } g_string_append(s, "\r\n"); } /* A function used to append attributes (`a=name:value`) to the output chop */ static void append_str_attr_to_gstring(GString *s, const str * name, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { generic_append_attr_to_gstring(s, name, ':', value, flags, media_type); } /* A function used to append attributes (`a=name:tag value`) to the output chop */ static void append_tagged_attr_to_gstring(GString *s, const char * name, const str *tag, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { if (sdp_manipulate_remove_c(name, flags, media_type)) return; g_autoptr(GString) n = g_string_new(name); g_string_append_c(n, ':'); g_string_append_len(n, tag->s, tag->len); generic_append_attr_to_gstring(s, &STR_INIT_GS(n), ' ', value, flags, media_type); } /* A function used to append attributes (`a=name:uint value`) to the output chop */ static void append_int_tagged_attr_to_gstring(GString *s, const char * name, unsigned int tag, const str * value, const sdp_ng_flags *flags, enum media_type media_type) { if (sdp_manipulate_remove_c(name, flags, media_type)) return; g_autoptr(GString) n = g_string_new(name); g_string_append_printf(n, ":%u", tag); generic_append_attr_to_gstring(s, &STR_INIT_GS(n), ' ', value, flags, media_type); } /* A function used to append attributes to the output chop */ static void append_attr_int_to_gstring(GString *s, const char * name, const int value, const sdp_ng_flags *flags, enum media_type media_type) { append_int_tagged_attr_to_gstring(s, name, value, NULL, flags, media_type); } struct packet_stream *print_rtcp(GString *s, struct call_media *media, packet_stream_list *rtp_ps_link, const sdp_ng_flags *flags, struct sdp_media *sdp_media) { struct packet_stream *ps = rtp_ps_link->data; struct packet_stream *ps_rtcp = NULL; if (ps->rtcp_sibling) { ps_rtcp = ps->rtcp_sibling; __auto_type rtcp_ps_link = rtp_ps_link->next; if (!rtcp_ps_link) return NULL; assert(rtcp_ps_link->data == ps_rtcp); } if (proto_is_rtp(media->protocol)) { if (MEDIA_ISSET(media, RTCP_MUX) && (flags->opmode == OP_ANSWER || flags->opmode == OP_PUBLISH || ((flags->opmode == OP_OFFER || flags->opmode == OP_REQUEST) && flags->rtcp_mux_require) || IS_OP_OTHER(flags->opmode))) { insert_rtcp_attr(s, ps, flags, sdp_media); append_attr_to_gstring(s, "rtcp-mux", NULL, flags, media->type_id); ps_rtcp = NULL; } else if (ps_rtcp && flags->ice_option != ICE_FORCE_RELAY) { insert_rtcp_attr(s, ps_rtcp, flags, sdp_media); if (MEDIA_ISSET(media, RTCP_MUX)) append_attr_to_gstring(s, "rtcp-mux", NULL, flags, media->type_id); } } else ps_rtcp = NULL; return ps_rtcp; } static void print_sdp_session_section(GString *s, sdp_ng_flags *flags, struct call_media *call_media) { bool media_has_ice = MEDIA_ISSET(call_media, ICE); bool media_has_ice_lite_self = MEDIA_ISSET(call_media, ICE_LITE_SELF); if (flags->loop_protect) append_attr_to_gstring(s, "rtpengine", &rtpe_instance_id, flags, MT_UNKNOWN); if (media_has_ice && media_has_ice_lite_self) append_attr_to_gstring(s, "ice-lite", NULL, flags, MT_UNKNOWN); } /* TODO: rework an appending of parameters in terms of sdp attribute manipulations */ static struct packet_stream *print_sdp_media_section(GString *s, struct call_media *media, struct sdp_media *sdp_media, const sdp_ng_flags *flags, packet_stream_list *rtp_ps_link, bool is_active, bool force_end_of_ice) { struct packet_stream *rtp_ps = rtp_ps_link->data; struct packet_stream *ps_rtcp = NULL; if (media->media_id.s) append_attr_to_gstring(s, "mid", &media->media_id, flags, media->type_id); if (media->label.len && flags->siprec) append_attr_to_gstring(s, "label", &media->label, flags, media->type_id); if (is_active) { if (proto_is_rtp(media->protocol)) insert_codec_parameters(s, media, flags); /* all unknown type attributes will be added here */ media->sdp_attr_print(s, media, flags); /* print sendrecv */ if (!flags->original_sendrecv) append_attr_to_gstring(s, sdp_get_sendrecv(media), NULL, flags, media->type_id); ps_rtcp = print_rtcp(s, media, rtp_ps_link, flags, sdp_media); if (proto_is_rtp(media->protocol)) { insert_crypto(s, media, flags); insert_dtls(s, media, dtls_ptr(rtp_ps->selected_sfd), flags); if (media->ptime) append_attr_int_to_gstring(s, "ptime", media->ptime, flags, media->type_id); } if (MEDIA_ISSET(media, ICE) && media->ice_agent) { append_attr_to_gstring(s, "ice-ufrag", &media->ice_agent->ufrag[1], flags, media->type_id); append_attr_to_gstring(s, "ice-pwd", &media->ice_agent->pwd[1], flags, media->type_id); } if (MEDIA_ISSET(media, TRICKLE_ICE) && media->ice_agent) { append_attr_to_gstring(s, "ice-options", &STR_CONST_INIT("trickle"), flags, media->type_id); } if (MEDIA_ISSET(media, ICE)) { insert_candidates(s, rtp_ps, ps_rtcp, flags, sdp_media); } } if ((MEDIA_ISSET(media, TRICKLE_ICE) && media->ice_agent) || force_end_of_ice) { append_attr_to_gstring(s, "end-of-candidates", NULL, flags, media->type_id); } return ps_rtcp; } static const char *replace_sdp_media_section(struct sdp_chopper *chop, struct call_media *call_media, struct sdp_media *sdp_media, packet_stream_list *rtp_ps_link, sdp_ng_flags *flags, const bool keep_zero_address) { const char *err = NULL; struct packet_stream *ps = rtp_ps_link->data; bool is_active = true; if (flags->ice_option != ICE_FORCE_RELAY && call_media->type_id != MT_MESSAGE) { err = "failed to replace media type"; if (replace_media_type(chop, sdp_media, call_media)) goto error; err = "failed to replace media port"; if (replace_media_port(chop, sdp_media, ps)) goto error; err = "failed to replace media port count"; if (replace_consecutive_port_count(chop, sdp_media, ps, rtp_ps_link)) goto error; err = "failed to replace media protocol"; if (replace_transport_protocol(chop, sdp_media, call_media)) goto error; err = "failed to replace media formats"; if (replace_codec_list(chop, sdp_media, call_media)) goto error; if (sdp_media->connection.parsed) { err = "failed to replace media network address"; if (replace_network_address(chop, &sdp_media->connection.address, ps, flags, keep_zero_address)) goto error; } } else if (call_media->type_id == MT_MESSAGE) { err = "failed to generate connection line"; if (!sdp_media->connection.parsed) if (synth_session_connection(chop, sdp_media)) goto error; // leave everything untouched is_active = false; goto next; } /* all unknown type attributes will stripped here */ err = "failed to process media attributes"; if (process_media_attributes(chop, sdp_media, flags, call_media)) goto error; copy_up_to_end_of(chop, &sdp_media->s); if (!sdp_media->port_num || !ps->selected_sfd) is_active = false; next: print_sdp_media_section(chop->output, call_media, sdp_media, flags, rtp_ps_link, is_active, attr_get_by_id(&sdp_media->attributes, ATTR_END_OF_CANDIDATES)); return NULL; error: return err; } /** * monologue - is other monologue (so the opposite site in offer/answer) * called with call->master_lock held in W */ int sdp_replace(struct sdp_chopper *chop, sdp_sessions_q *sessions, struct call_monologue *monologue, sdp_ng_flags *flags) { struct sdp_session *session; struct sdp_session *first_session = NULL; struct sdp_media *sdp_media; int sess_conn; struct call_media *call_media; struct packet_stream *ps; const char *err = NULL; unsigned int media_index = 0; /* select very first session for 'SDP version' multi-session handling */ if (sessions->head) first_session = sessions->head->data; /* for the usual SDP offer/answer there is only one SDP session though. */ for (__auto_type l = sessions->head; l; l = l->next) { session = l->data; // look for first usable (non-rejected, non-empty) packet stream // from any media to determine session-level attributes, if any ps = NULL; for (unsigned int ix = media_index; ix < monologue->medias->len; ix++) { call_media = monologue->medias->pdata[ix]; if (!call_media) continue; if (!call_media->streams.head) continue; ps = call_media->streams.head->data; if (ps->selected_sfd) break; ps = NULL; } err = "no usable session media stream"; if (!ps) goto error; err = "error while processing o= line"; /* replace username */ if (monologue->session_last_sdp_orig && (flags->replace_username || flags->replace_origin_full)) { /* make sure the username field in the o= line always remains the same * in all SDPs going to a particular endpoint */ if (copy_up_to(chop, &session->origin.username)) goto error; chopper_append_str(chop, &monologue->session_last_sdp_orig->username); if (skip_over(chop, &session->origin.username)) goto error; } /* replace session id */ if (monologue->session_last_sdp_orig && flags->replace_origin_full) { if (copy_up_to(chop, &session->origin.session_id)) goto error; chopper_append_str(chop, &monologue->session_last_sdp_orig->session_id); if (skip_over(chop, &session->origin.session_id)) goto error; } /* session version */ if (copy_up_to(chop, &session->origin.version_str)) goto error; /* record position of o= line and init SDP version */ session->origin.version_output_pos = chop->output->len; /* TODO: should we just go to 128bit length? */ if (monologue->session_last_sdp_orig && monologue->session_last_sdp_orig->version_num == ULLONG_MAX) { monologue->session_last_sdp_orig->version_num = (unsigned int)ssl_random(); } /* replace origin's network addr */ if ((flags->replace_origin || flags->replace_origin_full) && flags->ice_option != ICE_FORCE_RELAY) { err = "failed to replace network address"; if (replace_network_address(chop, &session->origin.address, ps, flags, false)) goto error; } err = "error while processing s= line"; if (!monologue->sdp_session_name) monologue->sdp_session_name = call_strdup_len(monologue->call, session->session_name.s, session->session_name.len); else if (flags->replace_sess_name) { if (copy_up_to(chop, &session->session_name)) goto error; chopper_append_c(chop, monologue->sdp_session_name); if (skip_over(chop, &session->session_name)) goto error; } sess_conn = 0; for (__auto_type k = session->media_streams.head; k; k = k->next) { sdp_media = k->data; if (!sdp_media->connection.parsed) { sess_conn = 1; break; } } bool media_has_ice = MEDIA_ISSET(call_media, ICE); bool keep_zero_address = ! media_has_ice; if (session->connection.parsed && sess_conn && flags->ice_option != ICE_FORCE_RELAY) { err = "failed to replace network address"; if (replace_network_address(chop, &session->connection.address, ps, flags, keep_zero_address)) goto error; } if (!MEDIA_ISSET(call_media, PASSTHRU)) { err = "failed to process session attributes"; if (process_session_attributes(chop, &session->attributes, flags)) goto error; } copy_up_to_end_of(chop, &session->s); /* add a list of important attrs to the session section */ print_sdp_session_section(chop->output, flags, call_media); /* ADD arbitrary SDP manipulations for a session sessions */ struct sdp_manipulations *sdp_manipulations = sdp_manipulations_get_by_id(flags, MT_UNKNOWN); sdp_manipulations_add(chop, sdp_manipulations); for (__auto_type k = session->media_streams.head; k; k = k->next) { sdp_media = k->data; // skip over received dummy SDP sections if (sdp_media->legacy_osrtp) { if (skip_over(chop, &sdp_media->s)) goto error; continue; } err = "no matching media"; call_media = monologue->medias->pdata[media_index]; if (!call_media) goto error; err = "no matching media stream"; __auto_type rtp_ps_link = call_media->streams.head; if (!rtp_ps_link) goto error; const struct transport_protocol *prtp = NULL; if (call_media->protocol && call_media->protocol->srtp) prtp = &transport_protocols[call_media->protocol->rtp_proto]; if (prtp) { if (MEDIA_ISSET(call_media, LEGACY_OSRTP) && !MEDIA_ISSET(call_media, LEGACY_OSRTP_REV)) { // generate rejected m= line for accepted legacy OSRTP chopper_append_c(chop, "m="); chopper_append_str(chop, &call_media->type); chopper_append_c(chop, " 0 "); chopper_append_c(chop, prtp->name); chopper_append_c(chop, " "); chopper_append_str(chop, &call_media->format_str); chopper_append_c(chop, "\r\n"); } else if (flags->osrtp_offer_legacy && flags->opmode == OP_OFFER) { // generate duplicate plain RTP media section for OSRTP offer: // save current chopper state, save actual protocol, // print SDP section, restore chopper and protocl struct sdp_chopper chop_copy = *chop; const struct transport_protocol *proto = call_media->protocol; call_media->protocol = prtp; err = replace_sdp_media_section(chop, call_media, sdp_media, rtp_ps_link, flags, keep_zero_address); *chop = chop_copy; call_media->protocol = proto; if (err) goto error; } } err = replace_sdp_media_section(chop, call_media, sdp_media, rtp_ps_link, flags, keep_zero_address); if (err) goto error; if (prtp && MEDIA_ISSET(call_media, LEGACY_OSRTP) && MEDIA_ISSET(call_media, LEGACY_OSRTP_REV)) { // generate rejected m= line for accepted legacy OSRTP chopper_append_c(chop, "m="); chopper_append_str(chop, &call_media->type); chopper_append_c(chop, " 0 "); chopper_append_c(chop, prtp->name); chopper_append_c(chop, " "); chopper_append_str(chop, &call_media->format_str); chopper_append_c(chop, "\r\n"); } /* ADD arbitrary SDP manipulations for audio/video media sessions */ sdp_manipulations = sdp_manipulations_get_by_id(flags, sdp_media->media_type_id); sdp_manipulations_add(chop, sdp_manipulations); media_index++; } } copy_remainder(chop); /* The SDP version gets increased in case: * - if replace_sdp_version (sdp-version) or replace_origin_full flag is set and SDP information has been updated, or * - if the force_inc_sdp_ver (force-increment-sdp-ver) flag is set additionally to replace_sdp_version, * which forces version increase regardless changes in the SDP information. */ if (flags->replace_sdp_version || flags->replace_origin_full) sdp_version_check(chop, sessions, monologue, first_session, flags->force_inc_sdp_ver); return 0; error: ilog(LOG_ERROR, "Error rewriting SDP: %s", err); return -1; } static void sdp_out_add_origin(GString *out, struct call_monologue *monologue, struct packet_stream *first_ps, sdp_ng_flags *flags) { struct call_monologue *ml = monologue; str a, a_type; /* for the offer/answer model or subscribe don't use the given monologues SDP, * but try the one of the subscription, because the given monologue itself * has likely no session attributes set yet */ struct media_subscription *ms = call_get_top_media_subscription(monologue); if (ms && ms->monologue) ml = ms->monologue; /* orig username */ str * orig_username = (ml->session_last_sdp_orig && (flags->replace_username || flags->replace_origin_full)) ? &ml->session_last_sdp_orig->username : &ml->session_sdp_orig->username; /* orig session id */ str * orig_session_id = (ml->session_last_sdp_orig && flags->replace_origin_full) ? &ml->session_last_sdp_orig->session_id : &ml->session_sdp_orig->session_id; /* orig session ver */ /* TODO: add support of `sdp_version_check()` */ unsigned long long orig_session_version = (ml->session_last_sdp_orig && flags->replace_origin_full) ? ml->session_last_sdp_orig->version_num : ml->session_sdp_orig->version_num; /* orig IP family and address */ str * orig_address_type; str * orig_address; if (!ms || flags->replace_origin || flags->replace_origin_full) { /* replacing flags or PUBLISH */ str_init(&a_type, (char *)first_ps->selected_sfd->local_intf->advertised_address.addr.family->rfc_name); str_init(&a, sockaddr_print_buf(&first_ps->selected_sfd->local_intf->advertised_address.addr)); orig_address_type = &a_type; orig_address = &a; } else { orig_address_type = &ml->session_sdp_orig->address.address_type; orig_address = &ml->session_sdp_orig->address.address; } g_string_append_printf(out, "o="STR_FORMAT" "STR_FORMAT" %llu IN "STR_FORMAT" "STR_FORMAT"\r\n", STR_FMT(orig_username), STR_FMT(orig_session_id), orig_session_version, STR_FMT(orig_address_type), STR_FMT(orig_address)); } static void sdp_out_add_session_name(GString *out, struct call_monologue *monologue, enum call_opmode opmode) { /* PUBLISH exceptionally doesn't include sdp session name from SDP. * The session name and other values should be copied only from a source SDP, * if that is also a media source. For a publish request that's not the case. */ const char * sdp_session_name = rtpe_config.software_id; /* for the offer/answer model or subscribe don't use the given monologues SDP, * but try the one of the subscription, because the given monologue itself * has likely no session attributes set yet */ struct media_subscription *ms = call_get_top_media_subscription(monologue); if (ms && ms->monologue && ms->monologue->sdp_session_name) sdp_session_name = ms->monologue->sdp_session_name; g_string_append_printf(out, "s=%s\r\n", sdp_session_name); } static void sdp_out_add_timing(GString *out, struct call_monologue *monologue) { const char * sdp_session_timing = "0 0"; /* default */ struct media_subscription *ms = call_get_top_media_subscription(monologue); if (ms && ms->monologue && ms->monologue->sdp_session_timing) sdp_session_timing = ms->monologue->sdp_session_timing; /* sdp timing per session level */ g_string_append_printf(out, "t=%s\r\n", sdp_session_timing); } static void sdp_out_add_bandwidth(GString *out, struct call_monologue *monologue, struct call_media *media) { /* if there's a media given, only do look up the values for that one */ if (media) { /* sdp bandwidth per media level */ struct media_subscription *ms = media->media_subscriptions.head ? media->media_subscriptions.head->data : NULL; if (!ms || !ms->media) return; if (ms->media->bandwidth_as >= 0) g_string_append_printf(out, "b=AS:%d\r\n", ms->media->bandwidth_as); if (ms->media->bandwidth_rr >= 0) g_string_append_printf(out, "b=RR:%d\r\n", ms->media->bandwidth_rr); if (ms->media->bandwidth_rs >= 0) g_string_append_printf(out, "b=RS:%d\r\n", ms->media->bandwidth_rs); } else { /* sdp bandwidth per session/media level * 0 value is supported (e.g. b=RR:0 and b=RS:0), to be able to disable rtcp */ struct media_subscription *ms = call_get_top_media_subscription(monologue); if (!ms || !ms->monologue) return; if (ms->monologue->sdp_session_rr >= 0) g_string_append_printf(out, "b=RR:%d\r\n", ms->monologue->sdp_session_rr); if (ms->monologue->sdp_session_rs >= 0) g_string_append_printf(out, "b=RS:%d\r\n", ms->monologue->sdp_session_rs); } } static void sdp_out_add_media_connection(GString *out, struct call_media *media, struct packet_stream *rtp_ps, sdp_ng_flags *flags) { const char *media_conn_address = NULL; const char *media_conn_address_type = rtp_ps->selected_sfd->local_intf->advertised_address.addr.family->rfc_name; /* we want to keep an original media connection for message / force relay */ struct media_subscription *ms = media->media_subscriptions.head ? media->media_subscriptions.head->data : NULL; if (ms && ms->media && ms->media->streams.head && (media->type_id == MT_MESSAGE || flags->ice_option == ICE_FORCE_RELAY)) { __auto_type sub_ps = ms->media->streams.head->data; media_conn_address = sockaddr_print_buf(&sub_ps->advertised_endpoint.address); media_conn_address_type = media->desired_family->rfc_name; } else { media_conn_address = sockaddr_print_buf(&rtp_ps->selected_sfd->local_intf->advertised_address.addr); } g_string_append_printf(out, "c=IN %s %s\r\n", media_conn_address_type, media_conn_address); } /** * For the offer/answer model, SDP create will be triggered for the B monologue, * which likely has empty paramaters (such as sdp origin, session name etc.), hence * such parameters have to be taken from the A monologue (so from the subscription). * * For the rest of cases (publish, subscribe, janus etc.) this works as usual: * given monologue is a monologue which is being processed. */ int sdp_create(str *out, struct call_monologue *monologue, sdp_ng_flags *flags) { const char *err = NULL; GString *s = NULL; err = "Need at least one media"; if (!monologue->medias->len) goto err; // grab first components struct call_media *media = monologue->medias->pdata[0]; err = "No media stream"; if (!media->streams.length) goto err; struct packet_stream *first_ps = media->streams.head->data; err = "No packet stream"; if (!first_ps->selected_sfd) goto err; /* init new sdp */ s = g_string_new("v=0\r\n"); /* add origin including name and version */ sdp_out_add_origin(s, monologue, first_ps, flags); /* add an actual sdp session name */ sdp_out_add_session_name(s, monologue, flags->opmode); /* don't set connection on the session level * but instead per media, below */ /* add bandwidth control per session level */ sdp_out_add_bandwidth(s, monologue, NULL); /* set timing to always be: 0 0 */ sdp_out_add_timing(s, monologue); monologue->sdp_attr_print(s, monologue, flags); /* print media sections */ for (unsigned int i = 0; i < monologue->medias->len; i++) { media = monologue->medias->pdata[i]; /* check call media existence */ err = "Empty media stream"; if (!media) continue; /* check streams existence */ err = "Zero length media stream"; if (!media->streams.length) goto err; __auto_type rtp_ps_link = media->streams.head; struct packet_stream *rtp_ps = rtp_ps_link->data; /* check socket file descriptor */ err = "No selected FD"; if (!rtp_ps->selected_sfd) goto err; /* set: media type, port, protocol (e.g. RTP/SAVP) */ err = "Unknown media protocol"; if (media->protocol) g_string_append_printf(s, "m=" STR_FORMAT " %i %s ", STR_FMT(&media->type), rtp_ps->selected_sfd->socket.local.port, media->protocol->name); else if (media->protocol_str.s) g_string_append_printf(s, "m=" STR_FORMAT " %i " STR_FORMAT " ", STR_FMT(&media->type), rtp_ps->selected_sfd->socket.local.port, STR_FMT(&media->protocol_str)); else goto err; /* print codecs and add newline */ print_codec_list(s, media); g_string_append_printf(s, "\r\n"); /* add actual media connection */ sdp_out_add_media_connection(s, media, rtp_ps, flags); /* add per media bandwidth */ sdp_out_add_bandwidth(s, monologue, media); /* print media level attributes */ print_sdp_media_section(s, media, NULL, flags, rtp_ps_link, true, false); } out->len = s->len; out->s = g_string_free(s, FALSE); return 0; err: if (s) g_string_free(s, TRUE); ilog(LOG_ERR, "Failed to create SDP: %s", err); return -1; } int sdp_is_duplicate(sdp_sessions_q *sessions) { for (__auto_type l = sessions->head; l; l = l->next) { struct sdp_session *s = l->data; attributes_q *attr_list = attr_list_get_by_id(&s->attributes, ATTR_RTPENGINE); if (!attr_list) return 0; for (__auto_type ql = attr_list->head; ql; ql = ql->next) { struct sdp_attribute *attr = ql->data; if (!str_cmp_str(&attr->strs.value, &rtpe_instance_id)) goto next; } return 0; next: ; } return 1; } void sdp_init(void) { rand_hex_str(rtpe_instance_id.s, rtpe_instance_id.len / 2); } rtpengine-mr12.5.1.22/daemon/ssrc.c000066400000000000000000000442631474347554000167630ustar00rootroot00000000000000#include "ssrc.h" #include #include "helpers.h" #include "call.h" #include "rtplib.h" #include "codeclib.h" #include "bufferpool.h" static void __free_ssrc_entry_call(void *e); static void init_ssrc_ctx(struct ssrc_ctx *c, struct ssrc_entry_call *parent) { c->parent = parent; payload_tracker_init(&c->tracker); while (!c->ssrc_map_out) c->ssrc_map_out = ssl_random(); c->seq_out = ssl_random(); atomic64_set_na(&c->last_sample, ssrc_timeval_to_ts(&rtpe_now)); c->stats = bufferpool_alloc0(shm_bufferpool, sizeof(*c->stats)); } static void init_ssrc_entry(struct ssrc_entry *ent, uint32_t ssrc) { ent->ssrc = ssrc; ent->last_used = rtpe_now.tv_sec; mutex_init(&ent->lock); } static struct ssrc_entry *create_ssrc_entry_call(void *uptr) { struct ssrc_entry_call *ent; ent = obj_alloc0("ssrc_entry_call", sizeof(*ent), __free_ssrc_entry_call); init_ssrc_ctx(&ent->input_ctx, ent); init_ssrc_ctx(&ent->output_ctx, ent); //ent->seq_out = ssl_random(); //ent->ts_out = ssl_random(); ent->lost_bits = -1; return &ent->h; } static void add_ssrc_entry(uint32_t ssrc, struct ssrc_entry *ent, struct ssrc_hash *ht) { init_ssrc_entry(ent, ssrc); g_hash_table_replace(ht->ht, &ent->ssrc, ent); obj_hold(ent); // HT entry g_queue_push_tail(&ht->q, ent); obj_hold(ent); // queue entry } static void free_sender_report(struct ssrc_sender_report_item *i) { g_slice_free1(sizeof(*i), i); } static void free_rr_time(struct ssrc_rr_time_item *i) { g_slice_free1(sizeof(*i), i); } static void free_stats_block(struct ssrc_stats_block *ssb) { g_slice_free1(sizeof(*ssb), ssb); } static void __free_ssrc_entry_call(void *ep) { struct ssrc_entry_call *e = ep; g_queue_clear_full(&e->sender_reports, (GDestroyNotify) free_sender_report); g_queue_clear_full(&e->rr_time_reports, (GDestroyNotify) free_rr_time); g_queue_clear_full(&e->stats_blocks, (GDestroyNotify) free_stats_block); if (e->sequencers) g_hash_table_destroy(e->sequencers); bufferpool_unref(e->input_ctx.stats); bufferpool_unref(e->output_ctx.stats); } static void ssrc_entry_put(void *ep) { struct ssrc_entry_call *e = ep; obj_put(&e->h); } // returned as mos * 10 (i.e. 10 - 50 for 1.0 to 5.0) static void mos_calc(struct ssrc_stats_block *ssb) { uint64_t rtt = ssb->rtt; if (rtpe_config.mos == MOS_CQ && !rtt) return; // can not compute the MOS-CQ unless we have a valid RTT else if (rtpe_config.mos == MOS_LQ) rtt = 0; // ignore RTT // as per https://www.pingman.com/kb/article/how-is-mos-calculated-in-pingplotter-pro-50.html int eff_rtt = ssb->rtt / 1000 + ssb->jitter * 2 + 10; double r; // XXX can this be done with int math? if (eff_rtt < 160) r = 93.2 - eff_rtt / 40.0; else r = 93.2 - (eff_rtt - 120) / 10.0; r = r - (ssb->packetloss * 2.5); int64_t intmos; if (r < 0) { intmos = 10; } else { double mos = 1.0 + (0.035) * r + (.000007) * r * (r-60) * (100-r); intmos = mos * 10.0; } if (intmos < 10) // must be an invalid input intmos = 0; ssb->mos = intmos; } static void *find_ssrc(uint32_t ssrc, struct ssrc_hash *ht) { rwlock_lock_r(&ht->lock); struct ssrc_entry *ret = g_atomic_pointer_get(&ht->cache); if (!ret || ret->ssrc != ssrc) { ret = g_hash_table_lookup(ht->ht, &ssrc); if (ret) { obj_hold(ret); // cache shares the reference from ht g_atomic_pointer_set(&ht->cache, ret); ret->last_used = rtpe_now.tv_sec; } } else { obj_hold(ret); ret->last_used = rtpe_now.tv_sec; } rwlock_unlock_r(&ht->lock); return ret; } static int ssrc_time_cmp(const void *aa, const void *bb, void *pp) { const struct ssrc_entry *a = aa, *b = bb; if (a->last_used < b->last_used) return -1; if (a->last_used > b->last_used) return 1; return 0; } // returns a new reference void *get_ssrc_full(uint32_t ssrc, struct ssrc_hash *ht, bool *created) { struct ssrc_entry *ent; if (!ht) return NULL; restart: ent = find_ssrc(ssrc, ht); if (G_LIKELY(ent)) { if (created) *created = false; return ent; } // use precreated entry if possible while (1) { ent = g_atomic_pointer_get(&ht->precreat); if (!ent) break; // create one ourselves if (g_atomic_pointer_compare_and_exchange(&ht->precreat, ent, NULL)) break; // something got in the way - retry } if (G_UNLIKELY(!ent)) ent = ht->create_func(ht->uptr); if (G_UNLIKELY(!ent)) return NULL; rwlock_lock_w(&ht->lock); while (G_UNLIKELY(ht->q.length > 20)) { // arbitrary limit g_queue_sort(&ht->q, ssrc_time_cmp, NULL); struct ssrc_entry *old_ent = g_queue_pop_head(&ht->q); ilog(LOG_DEBUG, "SSRC hash table exceeded size limit (trying to add %s%x%s) - " "deleting SSRC %s%x%s", FMT_M(ssrc), FMT_M(old_ent->ssrc)); g_atomic_pointer_set(&ht->cache, NULL); g_hash_table_remove(ht->ht, &old_ent->ssrc); // does obj_put obj_put(old_ent); // for the queue entry } if (g_hash_table_lookup(ht->ht, &ssrc)) { // preempted rwlock_unlock_w(&ht->lock); // return created entry if slot is still empty if (!g_atomic_pointer_compare_and_exchange(&ht->precreat, NULL, ent)) obj_put(ent); goto restart; } add_ssrc_entry(ssrc, ent, ht); g_atomic_pointer_set(&ht->cache, ent); rwlock_unlock_w(&ht->lock); if (created) *created = true; return ent; } void free_ssrc_hash(struct ssrc_hash **ht) { if (!*ht) return; g_hash_table_destroy((*ht)->ht); g_queue_clear_full(&(*ht)->q, ssrc_entry_put); if ((*ht)->precreat) obj_put((struct ssrc_entry *) (*ht)->precreat); g_slice_free1(sizeof(**ht), *ht); *ht = NULL; } void ssrc_hash_foreach(struct ssrc_hash *sh, void (*f)(void *, void *), void *ptr) { if (!sh) return; rwlock_lock_w(&sh->lock); for (GList *k = sh->q.head; k; k = k->next) f(k->data, ptr); if (sh->precreat) f(sh->precreat, ptr); rwlock_unlock_w(&sh->lock); } struct ssrc_hash *create_ssrc_hash_full_fast(ssrc_create_func_t cfunc, void *uptr) { struct ssrc_hash *ret; ret = g_slice_alloc0(sizeof(*ret)); ret->ht = g_hash_table_new_full(uint32_hash, uint32_eq, NULL, ssrc_entry_put); rwlock_init(&ret->lock); ret->create_func = cfunc; ret->uptr = uptr; return ret; } struct ssrc_hash *create_ssrc_hash_full(ssrc_create_func_t cfunc, void *uptr) { struct ssrc_hash *ret = create_ssrc_hash_full_fast(cfunc, uptr); ret->precreat = cfunc(uptr); // because object creation might be slow return ret; } struct ssrc_hash *create_ssrc_hash_call(void) { return create_ssrc_hash_full(create_ssrc_entry_call, NULL); } struct ssrc_ctx *get_ssrc_ctx(uint32_t ssrc, struct ssrc_hash *ht, enum ssrc_dir dir, void *ref) { struct ssrc_entry *s = get_ssrc(ssrc, ht /* , NULL */); if (G_UNLIKELY(!s)) return NULL; struct ssrc_ctx *ret = ((void *) s) + dir; if (ref) ret->ref = ref; return ret; } static void *__do_time_report_item(struct call_media *m, size_t struct_size, size_t reports_queue_offset, const struct timeval *tv, uint32_t ssrc, uint32_t ntp_msw, uint32_t ntp_lsw, GDestroyNotify free_func, struct ssrc_entry **e_p) { struct ssrc_entry *e; struct ssrc_time_item *sti; sti = g_slice_alloc0(struct_size); sti->received = *tv; sti->ntp_middle_bits = ntp_msw << 16 | ntp_lsw >> 16; sti->ntp_ts = ntp_ts_to_double(ntp_msw, ntp_lsw); e = get_ssrc(ssrc, m->monologue->ssrc_hash); if (G_UNLIKELY(!e)) { free_func(sti); return NULL; } mutex_lock(&e->lock); GQueue *q = (((void *) e) + reports_queue_offset); g_queue_push_tail(q, sti); while (q->length > 10) free_func(g_queue_pop_head(q)); *e_p = e; return sti; } // call must be locked in R static struct ssrc_entry_call *hunt_ssrc(struct call_media *media, uint32_t ssrc) { if (!media) return NULL; for (__auto_type sub = media->media_subscriptions.head; sub; sub = sub->next) { struct media_subscription * ms = sub->data; struct ssrc_entry_call *e = find_ssrc(ssrc, ms->monologue->ssrc_hash); if (e) return e; } return NULL; } #define calc_rtt(m, ...) \ __calc_rtt(m, (struct crtt_args) {__VA_ARGS__}) static long long __calc_rtt(struct call_media *m, struct crtt_args a) { if (a.pt_p) *a.pt_p = -1; if (!a.ntp_middle_bits || !a.delay) return 0; struct ssrc_entry_call *e = find_ssrc(a.ssrc, a.ht); if (G_UNLIKELY(!e)) return 0; if (a.pt_p) *a.pt_p = e->output_ctx.tracker.most[0] == 255 ? -1 : e->output_ctx.tracker.most[0]; // grab the opposite side SSRC for the time reports uint32_t map_ssrc = e->output_ctx.ssrc_map_out; if (!map_ssrc) map_ssrc = e->h.ssrc; obj_put(&e->h); e = hunt_ssrc(m, map_ssrc); if (G_UNLIKELY(!e)) return 0; struct ssrc_time_item *sti; GQueue *q = (((void *) e) + a.reports_queue_offset); mutex_lock(&e->h.lock); // go through the list backwards until we find the SR referenced for (GList *l = q->tail; l; l = l->prev) { sti = l->data; if (sti->ntp_middle_bits != a.ntp_middle_bits) continue; goto found; } // not found mutex_unlock(&e->h.lock); obj_put(&e->h); return 0; found:; // `e` remains locked for access to `sti` long long rtt = timeval_diff(a.tv, &sti->received); mutex_unlock(&e->h.lock); rtt -= (long long) a.delay * 1000000LL / 65536LL; ilog(LOG_DEBUG, "Calculated round-trip time for %s%x%s is %lli us", FMT_M(a.ssrc), rtt); if (rtt <= 0 || rtt > 10000000) { ilog(LOG_DEBUG, "Invalid RTT - discarding"); obj_put(&e->h); return 0; } e->last_rtt = rtt; obj_put(&e->h); return rtt; } void ssrc_sender_report(struct call_media *m, const struct ssrc_sender_report *sr, const struct timeval *tv) { struct ssrc_entry *e; struct ssrc_sender_report_item *seri = __do_time_report_item(m, sizeof(*seri), G_STRUCT_OFFSET(struct ssrc_entry_call, sender_reports), tv, sr->ssrc, sr->ntp_msw, sr->ntp_lsw, (GDestroyNotify) free_sender_report, &e); if (!seri) return; seri->report = *sr; ilog(LOG_DEBUG, "SR from %s%x%s: RTP TS %u PC %u OC %u NTP TS %u/%u=%f", FMT_M(sr->ssrc), sr->timestamp, sr->packet_count, sr->octet_count, sr->ntp_msw, sr->ntp_lsw, seri->time_item.ntp_ts); mutex_unlock(&e->lock); obj_put(e); } void ssrc_receiver_report(struct call_media *m, stream_fd *sfd, const struct ssrc_receiver_report *rr, const struct timeval *tv) { ilog(LOG_DEBUG, "RR from %s%x%s about %s%x%s: FL %u TL %u HSR %u J %u LSR %u DLSR %u", FMT_M(rr->from), FMT_M(rr->ssrc), rr->fraction_lost, rr->packets_lost, rr->high_seq_received, rr->jitter, rr->lsr, rr->dlsr); int pt; long long rtt = calc_rtt(m, .ht = m->monologue->ssrc_hash, .tv = tv, .pt_p = &pt, .ssrc = rr->ssrc, .ntp_middle_bits = rr->lsr, .delay = rr->dlsr, .reports_queue_offset = G_STRUCT_OFFSET(struct ssrc_entry_call, sender_reports)); struct ssrc_entry_call *other_e = get_ssrc(rr->from, m->monologue->ssrc_hash); if (G_UNLIKELY(!other_e)) goto out_nl; // determine the clock rate for jitter values if (pt < 0) { ilog(LOG_DEBUG, "No payload type known for RTCP RR, discarding"); goto out_nl_put; } const rtp_payload_type *rpt = get_rtp_payload_type(pt, &m->codecs); if (!rpt) { ilog(LOG_INFO, "Invalid RTP payload type %i, discarding RTCP RR", pt); goto out_nl_put; } unsigned int jitter = rpt->clock_rate ? (rr->jitter * 1000 / rpt->clock_rate) : rr->jitter; ilog(LOG_DEBUG, "Calculated jitter for %s%x%s is %u ms", FMT_M(rr->ssrc), jitter); ilog(LOG_DEBUG, "Adding opposide side RTT of %u us", other_e->last_rtt); long long rtt_end2end = other_e->last_rtt ? (rtt + other_e->last_rtt) : 0; if (other_e->last_rtt_xr > 0) { // use the RTT from RTCP-XR (in ms) rtt_end2end = (long long) other_e->last_rtt_xr * 1000LL; } struct ssrc_stats_block *ssb = g_slice_alloc(sizeof(*ssb)); *ssb = (struct ssrc_stats_block) { .jitter = jitter, .rtt = rtt_end2end, .rtt_leg = rtt, .reported = *tv, .packetloss = (unsigned int) rr->fraction_lost * 100 / 256, }; RTPE_SAMPLE_SFD(jitter, jitter, sfd); RTPE_SAMPLE_SFD(rtt_e2e, rtt_end2end, sfd); RTPE_SAMPLE_SFD(rtt_dsct, rtt, sfd); RTPE_SAMPLE_SFD(packetloss, ssb->packetloss, sfd); other_e->packets_lost = rr->packets_lost; mos_calc(ssb); if (ssb->mos) { ilog(LOG_DEBUG, "Calculated MOS from RR for %s%x%s is %.1f", FMT_M(rr->from), (double) ssb->mos / 10.0); RTPE_SAMPLE_SFD(mos, ssb->mos, sfd); } // got a new stats block, add it to reporting ssrc mutex_lock(&other_e->h.lock); // discard stats block if last has been received less than a second ago if (G_LIKELY(other_e->stats_blocks.length > 0)) { struct ssrc_stats_block *last_ssb = g_queue_peek_tail(&other_e->stats_blocks); if (G_UNLIKELY(timeval_diff(tv, &last_ssb->reported) < 1000000)) { free_stats_block(ssb); goto out_ul_oe; } } g_queue_push_tail(&other_e->stats_blocks, ssb); if (ssb->mos && ((G_UNLIKELY(!other_e->lowest_mos) || ssb->mos < other_e->lowest_mos->mos))) other_e->lowest_mos = ssb; if (G_UNLIKELY(!other_e->highest_mos) || ssb->mos > other_e->highest_mos->mos) other_e->highest_mos = ssb; // running tally if (!ssb->mos) { // when we do not have the RTT for both legs, we have no MOS other_e->no_mos_count++; } else { other_e->average_mos.jitter += ssb->jitter; other_e->average_mos.mos += ssb->mos; other_e->average_mos.rtt += ssb->rtt; other_e->average_mos.rtt_leg += ssb->rtt_leg; other_e->average_mos.packetloss += ssb->packetloss; } goto out_ul_oe; out_ul_oe: mutex_unlock(&other_e->h.lock); goto out_nl_put; out_nl_put: obj_put(&other_e->h); goto out_nl; out_nl: ; } void ssrc_receiver_rr_time(struct call_media *m, const struct ssrc_xr_rr_time *rr, const struct timeval *tv) { struct ssrc_entry *e; struct ssrc_rr_time_item *srti = __do_time_report_item(m, sizeof(*srti), G_STRUCT_OFFSET(struct ssrc_entry_call, rr_time_reports), tv, rr->ssrc, rr->ntp_msw, rr->ntp_lsw, (GDestroyNotify) free_rr_time, &e); if (!srti) return; ilog(LOG_DEBUG, "XR RR TIME from %s%x%s: NTP TS %u/%u=%f", FMT_M(rr->ssrc), rr->ntp_msw, rr->ntp_lsw, srti->time_item.ntp_ts); mutex_unlock(&e->lock); obj_put(e); } void ssrc_receiver_dlrr(struct call_media *m, const struct ssrc_xr_dlrr *dlrr, const struct timeval *tv) { ilog(LOG_DEBUG, "XR DLRR from %s%x%s about %s%x%s: LRR %u DLRR %u", FMT_M(dlrr->from), FMT_M(dlrr->ssrc), dlrr->lrr, dlrr->dlrr); calc_rtt(m, .ht = m->monologue->ssrc_hash, .tv = tv, .pt_p = NULL, .ssrc = dlrr->ssrc, .ntp_middle_bits = dlrr->lrr, .delay = dlrr->dlrr, .reports_queue_offset = G_STRUCT_OFFSET(struct ssrc_entry_call, rr_time_reports)); } void ssrc_voip_metrics(struct call_media *m, const struct ssrc_xr_voip_metrics *vm, const struct timeval *tv) { ilog(LOG_DEBUG, "XR VM from %s%x%s about %s%x%s: LR %u DR %u BD %u GD %u BDu %u GDu %u RTD %u " "ESD %u SL %u NL %u RERL %u GMin %u R %u eR %u MOSL %u MOSC %u RX %u " "JBn %u JBm %u JBam %u", FMT_M(vm->from), FMT_M(vm->ssrc), vm->loss_rate, vm->discard_rate, vm->burst_den, vm->gap_den, vm->burst_dur, vm->gap_dur, vm->rnd_trip_delay, vm->end_sys_delay, vm->signal_lvl, vm->noise_lvl, vm->rerl, vm->gmin, vm->r_factor, vm->ext_r_factor, vm->mos_lq, vm->mos_cq, vm->rx_config, vm->jb_nom, vm->jb_max, vm->jb_abs_max); struct ssrc_entry_call *e = get_ssrc(vm->ssrc, m->monologue->ssrc_hash); if (!e) return; e->last_rtt_xr = vm->rnd_trip_delay; obj_put(&e->h); } static void __pt_sort(struct payload_tracker *t, int pt) { // bubble up? while (t->idx[pt] > 0) { int this_idx = t->idx[pt]; int prev_idx = this_idx - 1; int prev_pt = t->most[prev_idx]; if (G_LIKELY(t->count[prev_pt] >= t->count[pt])) break; // bubble up! ilog(LOG_DEBUG, "bubble up pt %i from idx %u to %u", pt, this_idx, prev_idx); // swap entries in "most" list int prev = t->most[prev_idx]; t->most[prev_idx] = t->most[this_idx]; t->most[this_idx] = prev; // adjust indexes t->idx[pt]--; t->idx[prev_pt]++; } // bubble down? while (t->idx[pt] < t->most_len - 1) { int this_idx = t->idx[pt]; int next_idx = this_idx + 1; int next_pt = t->most[next_idx]; if (G_LIKELY(t->count[next_pt] <= t->count[pt])) break; // bubble down! ilog(LOG_DEBUG, "bubble down pt %i from idx %u to %u", pt, this_idx, next_idx); // swap entries in "most" list int next = t->most[next_idx]; t->most[next_idx] = t->most[this_idx]; t->most[this_idx] = next; // adjust indexes t->idx[pt]++; t->idx[next_pt]--; } } void payload_tracker_init(struct payload_tracker *t) { mutex_init(&t->lock); memset(&t->last, -1, sizeof(t->last)); memset(&t->count, 0, sizeof(t->count)); memset(&t->idx, -1, sizeof(t->idx)); memset(&t->most, -1, sizeof(t->most)); t->last_idx = 0; t->most_len = 0; } //#define PT_DBG(x...) ilog(LOG_DEBUG, x) #define PT_DBG(x...) ((void)0) void payload_tracker_add(struct payload_tracker *t, int pt) { if (G_UNLIKELY(pt < 0) || G_UNLIKELY(pt >= 128)) return; mutex_lock(&t->lock); PT_DBG("new pt: %i", pt); PT_DBG("last idx: %u", t->last_idx); int old_pt = t->last[t->last_idx]; PT_DBG("old pt: %u", old_pt); if (G_LIKELY(old_pt != 255)) { // overwriting old entry. is it the same as the new one? if (G_LIKELY(old_pt == pt)) { PT_DBG("old pt == new pt"); // no change goto out; } PT_DBG("decreasing old pt count from %u", t->count[old_pt]); // different: decrease old counter t->count[old_pt]--; } // fill in new entry t->last[t->last_idx] = pt; // increase new counter PT_DBG("increasing new pt count from %u", t->count[pt]); t->count[pt]++; // is this a new entry? if (G_UNLIKELY(t->idx[pt] == 255)) { // put to the end of the "most" list PT_DBG("inserting new entry at pos %u", t->most_len); t->idx[pt] = t->most_len; t->most[t->most_len] = pt; t->most_len++; } // now bubble sort both new and old entries __pt_sort(t, pt); if (G_LIKELY(old_pt != 255)) __pt_sort(t, old_pt); out: if (++t->last_idx >= G_N_ELEMENTS(t->last)) t->last_idx = 0; mutex_unlock(&t->lock); } // call master lock held in R void ssrc_collect_metrics(struct call_media *media) { if (!media->streams.head) return; struct packet_stream *ps = media->streams.head->data; for (int i = 0; i < RTPE_NUM_SSRC_TRACKING; i++) { struct ssrc_ctx *s = ps->ssrc_in[i]; if (!s) break; // end of list struct ssrc_entry_call *e = s->parent; // exclude zero values - technically possible but unlikely and probably just unset if (!e->jitter) continue; if (e->input_ctx.tracker.most_len > 0 && e->input_ctx.tracker.most[0] != 255) { const rtp_payload_type *rpt = get_rtp_payload_type(e->input_ctx.tracker.most[0], &ps->media->codecs); if (rpt && rpt->clock_rate) e->jitter = e->jitter * 1000 / rpt->clock_rate; } RTPE_SAMPLE_SFD(jitter_measured, e->jitter, ps->selected_sfd); } } rtpengine-mr12.5.1.22/daemon/statistics.c000066400000000000000000001120051474347554000201710ustar00rootroot00000000000000#include "statistics.h" #include #include #include "call.h" #include "graphite.h" #include "main.h" #include "control_ng.h" #include "bufferpool.h" struct timeval rtpe_started; mutex_t rtpe_codec_stats_lock; codec_stats_ht rtpe_codec_stats; struct global_stats_gauge rtpe_stats_gauge; // master values struct global_gauge_min_max rtpe_gauge_min_max; // master lifetime min/max struct global_stats_sampled rtpe_stats_sampled; // master cumulative values struct global_sampled_min_max rtpe_sampled_min_max; // master lifetime min/max struct global_stats_counter *rtpe_stats; // total, cumulative, master struct global_stats_counter rtpe_stats_rate; // per-second, calculated once per timer run struct global_stats_counter rtpe_stats_intv; // calculated once per sec by `call_rate_stats_updater()` // op can be CMC_INCREMENT or CMC_DECREMENT // check not to multiple decrement or increment void statistics_update_ip46_inc_dec(call_t * c, int op) { // already incremented if (op == CMC_INCREMENT && CALL_ISSET(c, MEDIA_COUNTED)) { return ; // already decremented } else if (op == CMC_DECREMENT && !CALL_ISSET(c, MEDIA_COUNTED)) { return ; } // offer is ipv4 only if (CALL_ISSET(c, IPV4_OFFER) && !CALL_ISSET(c, IPV6_OFFER)) { // answer is ipv4 only if (CALL_ISSET(c, IPV4_ANSWER) && !CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is ipv6 only } else if (!CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is both ipv4 and ipv6 } else if (CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is neither ipv4 nor ipv6 } else { return ; } // offer is ipv6 only } else if (!CALL_ISSET(c, IPV4_OFFER) && CALL_ISSET(c, IPV6_OFFER)) { // answer is ipv4 only if (CALL_ISSET(c, IPV4_ANSWER) && !CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is ipv6 only } else if (!CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is both ipv4 and ipv6 } else if (CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is neither ipv4 nor ipv6 } else { return ; } // offer is both ipv4 and ipv6 } else if (CALL_ISSET(c, IPV4_OFFER) && CALL_ISSET(c, IPV6_OFFER)) { // answer is ipv4 only if (CALL_ISSET(c, IPV4_ANSWER) && !CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is ipv6 only } else if (!CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is both ipv4 and ipv6 } else if (CALL_ISSET(c, IPV4_ANSWER) && CALL_ISSET(c, IPV6_ANSWER)) { RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1); // answer is neither ipv4 nor ipv6 } else { return ; } // offer is neither ipv4 nor ipv6 } else { return ; } // mark if incremented or decremented bf_set_clear(&c->call_flags, CALL_FLAG_MEDIA_COUNTED, op == CMC_INCREMENT); } void statistics_update_foreignown_dec(call_t * c) { if (IS_FOREIGN_CALL(c)) { RTPE_GAUGE_DEC(foreign_sessions); } } void statistics_update_foreignown_inc(call_t * c) { if (IS_FOREIGN_CALL(c)) { /* foreign call*/ RTPE_GAUGE_INC(foreign_sessions); RTPE_STATS_INC(foreign_sess); } } void statistics_update_oneway(call_t * c) { struct call_monologue *ml; struct call_media *md; if (IS_OWN_CALL(c)) { // --- for statistics getting one way stream or no relay at all unsigned int total_nopacket_relayed_sess = 0; struct packet_stream *ps, *ps2; for (__auto_type l = c->monologues.head; l; l = l->next) { ml = l->data; // --- go through partner ml and search the RTP for (unsigned int i = 0; i < ml->medias->len; i++) { md = ml->medias->pdata[i]; if (!md) continue; for (__auto_type o = md->streams.head; o; o = o->next) { ps = o->data; if (PS_ISSET(ps, RTP)) { // --- only RTP is interesting goto found; } } } continue; found:; struct sink_handler *sh = t_queue_peek_head(&ps->rtp_sinks); ps2 = sh ? sh->sink : NULL; if (!ps2) continue; if (atomic64_get_na(&ps2->stats_in->packets)==0) { if (atomic64_get_na(&ps->stats_in->packets)!=0) RTPE_STATS_INC(oneway_stream_sess); else total_nopacket_relayed_sess++; } } RTPE_STATS_ADD(nopacket_relayed_sess, total_nopacket_relayed_sess / 2); } if (c->monologues.head) { ml = c->monologues.head->data; if (IS_OWN_CALL(c)) { if (ml->term_reason==TIMEOUT) RTPE_STATS_INC(timeout_sess); else if (ml->term_reason==SILENT_TIMEOUT) RTPE_STATS_INC(silent_timeout_sess); else if (ml->term_reason==OFFER_TIMEOUT) RTPE_STATS_INC(offer_timeout_sess); else if (ml->term_reason==REGULAR) RTPE_STATS_INC(regular_term_sess); else if (ml->term_reason==FORCED) RTPE_STATS_INC(forced_term_sess); RTPE_STATS_INC(managed_sess); if (!c->destroyed.tv_sec) c->destroyed = rtpe_now; long long duration = timeval_diff(&c->destroyed, &c->created); RTPE_STATS_ADD(call_duration, duration); duration /= 1000; // millisecond precision for the squared value to avoid overflows RTPE_STATS_ADD(call_duration2, duration * duration); } if (ml->term_reason==FINAL_TIMEOUT) RTPE_STATS_INC(final_timeout_sess); } } INLINE void prom_metric(stats_metric_q *ret, const char *name, const char *type) { stats_metric *last = t_queue_peek_tail(ret); last->prom_name = name; last->prom_type = type; } static void prom_label(stats_metric_q *ret, const char *fmt, ...) { if (!fmt) return; va_list ap; va_start(ap, fmt); stats_metric *last = t_queue_peek_tail(ret); last->prom_label = g_strdup_vprintf(fmt, ap); va_end(ap); } #define PROM(name, type) prom_metric(ret, name, type) #define PROMLAB(fmt, ...) prom_label(ret, fmt, ##__VA_ARGS__) INLINE void metric_push(stats_metric_q *ret, stats_metric *m) { stats_metric *last = NULL; for (__auto_type l_last = ret->tail; l_last; l_last = l_last->prev) { last = l_last->data; if (last->label) break; last = NULL; } if (!m->is_bracket && last) { if (!last->is_bracket || last->is_close_bracket) m->is_follow_up = 1; } else if (m->is_bracket && !m->is_close_bracket && last && last->is_close_bracket) m->is_follow_up = 1; t_queue_push_tail(ret, m); } static void add_metric(stats_metric_q *ret, const char *label, const char *desc, const char *fmt1, const char *fmt2, ...) { va_list ap; stats_metric *m = g_slice_alloc0(sizeof(*m)); if (label) m->label = g_strdup(label); if (desc) m->descr = g_strdup(desc); if (fmt1) { va_start(ap, fmt2); m->value_short = g_strdup_vprintf(fmt1, ap); va_end(ap); if (m->value_short[0] == '"' && m->value_short[1] != '\0' && m->value_short[strlen(m->value_short)-1] == '"') m->value_raw = g_strndup(m->value_short + 1, strlen(m->value_short) - 2); } if (fmt2) { va_start(ap, fmt2); m->value_long = g_strdup_vprintf(fmt2, ap); va_end(ap); } if (fmt1 && fmt1[0] == '%' && (!fmt2 || !strcmp(fmt1, fmt2))) { va_start(ap, fmt2); if (!strcmp(fmt1, "%u") || !strcmp(fmt1, "%i") || !strcmp(fmt1, "%d")) { m->is_int = 1; m->int_value = va_arg(ap, int); } else if (!strcmp(fmt1, "%lu") || !strcmp(fmt1, "%li") || !strcmp(fmt1, "%ld")) { m->is_int = 1; m->int_value = va_arg(ap, long); } else if ( !strcmp(fmt1, "%llu") || !strcmp(fmt1, "%lli") || !strcmp(fmt1, "%lld")) { m->is_int = 1; m->int_value = va_arg(ap, long long); } else if (!strcmp(fmt1, "%.6f") || !strcmp(fmt1, "%.2f")) { m->is_double = 1; m->double_value = va_arg(ap, double); } va_end(ap); } metric_push(ret, m); } static void add_header(stats_metric_q *ret, const char *fmt1, const char *fmt2, ...) { va_list ap; stats_metric *m = g_slice_alloc0(sizeof(*m)); if (fmt1) { va_start(ap, fmt2); // coverity[copy_paste_error : FALSE] m->label = g_strdup_vprintf(fmt1, ap); va_end(ap); } if (fmt2) { va_start(ap, fmt2); m->descr = g_strdup_vprintf(fmt2, ap); va_end(ap); } if (m->label && ( m->label[0] == '[' || m->label[0] == '{' || m->label[0] == '}' || m->label[0] == ']') && m->label[1] == 0) { m->is_bracket = 1; if (m->label[0] == '}' || m->label[0] == ']') m->is_close_bracket = 1; if (m->label[0] == '{' || m->label[0] == '}') m->is_brace = 1; } metric_push(ret, m); } #define METRIC(lb, dsc, fmt1, fmt2, ...) add_metric(ret, lb, dsc, fmt1, fmt2, ## __VA_ARGS__) #define METRICva METRIC #define METRICl(dsc, fmt2, ...) add_metric(ret, NULL, dsc, NULL, fmt2, ##__VA_ARGS__) #define METRICsva(lb, fmt1, ...) add_metric(ret, lb, NULL, fmt1, NULL, ##__VA_ARGS__) #define METRICs(lb, fmt1, arg) add_metric(ret, lb, NULL, fmt1, NULL, arg) #define HEADER(fmt1, fmt2, ...) add_header(ret, fmt1, fmt2, ##__VA_ARGS__) #define HEADERl(fmt2, ...) add_header(ret, NULL, fmt2, ##__VA_ARGS__) stats_metric_q *statistics_gather_metrics(struct interface_sampled_rate_stats *interface_rate_stats) { stats_metric_q *ret = stats_metric_q_new(); double calls_dur_iv; uint64_t cur_sessions, num_sessions, min_sess_iv, max_sess_iv; HEADER("{", ""); HEADER("currentstatistics", "Statistics over currently running sessions:"); HEADER("{", ""); rwlock_lock_r(&rtpe_callhash_lock); cur_sessions = t_hash_table_size(rtpe_callhash); rwlock_unlock_r(&rtpe_callhash_lock); METRIC("sessionsown", "Owned sessions", UINT64F, UINT64F, cur_sessions - atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); PROM("sessions", "gauge"); PROMLAB("type=\"own\""); METRIC("sessionsforeign", "Foreign sessions", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.foreign_sessions)); PROM("sessions", "gauge"); PROMLAB("type=\"foreign\""); METRIC("sessionstotal", "Total sessions", UINT64F, UINT64F, cur_sessions); METRIC("transcodedmedia", "Transcoded media", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.transcoded_media)); PROM("transcoded_media", "gauge"); METRIC("packetrate_user", "Packets per second (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.packets_user)); METRIC("byterate_user", "Bytes per second (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.bytes_user)); METRIC("errorrate_user", "Errors per second (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.errors_user)); METRIC("packetrate_kernel", "Packets per second (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.packets_kernel)); METRIC("byterate_kernel", "Bytes per second (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.bytes_kernel)); METRIC("errorrate_kernel", "Errors per second (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.errors_kernel)); METRIC("packetrate", "Packets per second (total)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.packets_user) + atomic64_get_na(&rtpe_stats_rate.packets_kernel)); METRIC("byterate", "Bytes per second (total)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.bytes_user) + atomic64_get_na(&rtpe_stats_rate.bytes_kernel)); METRIC("errorrate", "Errors per second (total)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_rate.errors_user) + atomic64_get_na(&rtpe_stats_rate.errors_kernel)); METRIC("media_userspace", "Userspace-only media streams", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.userspace_streams)); PROM("mediastreams", "gauge"); PROMLAB("type=\"userspace\""); METRIC("media_kernel", "Kernel-only media streams", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.kernel_only_streams)); PROM("mediastreams", "gauge"); PROMLAB("type=\"kernel\""); METRIC("media_mixed", "Mixed kernel/userspace media streams", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats_gauge.kernel_user_streams)); PROM("mediastreams", "gauge"); PROMLAB("type=\"mixed\""); num_sessions = atomic64_get_na(&rtpe_stats->managed_sess); uint64_t total_duration = atomic64_get_na(&rtpe_stats->call_duration); uint64_t avg_us = num_sessions ? total_duration / num_sessions : 0; HEADER("}", ""); HEADER("totalstatistics", "Total statistics (does not include current running sessions):"); HEADER("{", ""); METRIC("uptime", "Uptime of rtpengine", "%llu", "%llu seconds", (long long) timeval_diff(&rtpe_now, &rtpe_started) / 1000000); PROM("uptime_seconds", "gauge"); METRIC("managedsessions", "Total managed sessions", UINT64F, UINT64F, num_sessions); PROM("sessions_total", "counter"); METRIC("rejectedsessions", "Total rejected sessions", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->rejected_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"rejected\""); METRIC("timeoutsessions", "Total timed-out sessions via TIMEOUT", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->timeout_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"timeout\""); METRIC("silenttimeoutsessions", "Total timed-out sessions via SILENT_TIMEOUT", UINT64F, UINT64F,atomic64_get_na(&rtpe_stats->silent_timeout_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"silent_timeout\""); METRIC("finaltimeoutsessions", "Total timed-out sessions via FINAL_TIMEOUT", UINT64F, UINT64F,atomic64_get_na(&rtpe_stats->final_timeout_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"final_timeout\""); METRIC("offertimeoutsessions", "Total timed-out sessions via OFFER_TIMEOUT", UINT64F, UINT64F,atomic64_get_na(&rtpe_stats->offer_timeout_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"offer_timeout\""); METRIC("regularterminatedsessions", "Total regular terminated sessions", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->regular_term_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"terminated\""); METRIC("forcedterminatedsessions", "Total forced terminated sessions", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->forced_term_sess)); PROM("closed_sessions_total", "counter"); PROMLAB("reason=\"force_terminated\""); METRIC("relayedpackets_user", "Total relayed packets (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->packets_user)); PROM("packets_total", "counter"); PROMLAB("type=\"userspace\""); METRIC("relayedpacketerrors_user", "Total relayed packet errors (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->errors_user)); PROM("packet_errors_total", "counter"); PROMLAB("type=\"userspace\""); METRIC("relayedbytes_user", "Total relayed bytes (userspace)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->bytes_user)); PROM("bytes_total", "counter"); PROMLAB("type=\"userspace\""); METRIC("relayedpackets_kernel", "Total relayed packets (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->packets_kernel)); PROM("packets_total", "counter"); PROMLAB("type=\"kernel\""); METRIC("relayedpacketerrors_kernel", "Total relayed packet errors (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->errors_kernel)); PROM("packet_errors_total", "counter"); PROMLAB("type=\"kernel\""); METRIC("relayedbytes_kernel", "Total relayed bytes (kernel)", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->bytes_kernel)); PROM("bytes_total", "counter"); PROMLAB("type=\"kernel\""); METRIC("relayedpackets", "Total relayed packets", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->packets_kernel) + atomic64_get_na(&rtpe_stats->packets_user)); METRIC("relayedpacketerrors", "Total relayed packet errors", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->errors_kernel) + atomic64_get_na(&rtpe_stats->errors_user)); METRIC("relayedbytes", "Total relayed bytes", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->bytes_kernel) + atomic64_get_na(&rtpe_stats->bytes_user)); METRIC("zerowaystreams", "Total number of streams with no relayed packets", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->nopacket_relayed_sess)); PROM("zero_packet_streams_total", "counter"); METRIC("onewaystreams", "Total number of 1-way streams", UINT64F, UINT64F,atomic64_get_na(&rtpe_stats->oneway_stream_sess)); PROM("one_way_sessions_total", "counter"); METRICva("avgcallduration", "Average call duration", "%.6f", "%.6f seconds", (double) avg_us / 1000000.0); PROM("call_duration_avg", "gauge"); METRICva("totalcallsduration", "Total calls duration", "%.6f", "%.6f seconds", (double) total_duration / 1000000.0); PROM("call_duration_total", "counter"); total_duration = atomic64_get_na(&rtpe_stats->call_duration2); METRICva("totalcallsduration2", "Total calls duration squared", "%.6f", "%.6f seconds squared", (double) total_duration / 1000000.0); PROM("call_duration2_total", "counter"); double variance = num_sessions ? fabs((double) total_duration / (double) num_sessions - ((double) avg_us / 1000.0) * ((double) avg_us / 1000.0)) : 0.0; METRICva("totalcallsduration_stddev", "Total calls duration standard deviation", "%.6f", "%.6f seconds", sqrt(variance) / 1000.0); HEADER(NULL, ""); HEADER("}", ""); if (graphite_is_enabled()) { calls_dur_iv = (double) atomic64_get_na(&rtpe_stats_graphite_diff.total_calls_duration_intv) / 1000000.0; min_sess_iv = atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.min.total_sessions); max_sess_iv = atomic64_get_na(&rtpe_gauge_graphite_min_max_sampled.max.total_sessions); HEADER("intervalstatistics", "Graphite interval statistics (last reported values to graphite):"); HEADER("{", NULL); METRICva("totalcallsduration", "Total calls duration", "%.6f", "%.6f seconds", calls_dur_iv); HEADER(NULL, ""); METRIC("minmanagedsessions", "Min managed sessions", UINT64F, UINT64F, min_sess_iv); METRIC("maxmanagedsessions", "Max managed sessions", UINT64F, UINT64F, max_sess_iv); for (int i = 0; i < NGC_COUNT; i++) { double min = (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.min.ng_command_times[i]) / 1000000.0; double max = (double) atomic64_get_na(&rtpe_sampled_graphite_min_max_sampled.max.ng_command_times[i]) / 1000000.0; double avg = (double) atomic64_get_na(&rtpe_sampled_graphite_avg.avg.ng_command_times[i]) / 1000000.0; g_autoptr(char) min_label = g_strdup_printf("min%sdelay", ng_command_strings[i]); g_autoptr(char) max_label = g_strdup_printf("max%sdelay", ng_command_strings[i]); g_autoptr(char) avg_label = g_strdup_printf("avg%sdelay", ng_command_strings[i]); g_autoptr(char) long_label = g_strdup_printf("Min/Max/Avg %s processing delay", ng_command_strings[i]); METRICl(long_label, "%.6f/%.6f/%.6f sec", min, max, avg); METRICsva(min_label, "%.6f", min); METRICsva(max_label, "%.6f", max); METRICsva(avg_label, "%.6f", avg); } for (int i = 0; i < NGC_COUNT; i++) { uint64_t min = atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.min.ng_commands[i]); uint64_t max = atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.max.ng_commands[i]); uint64_t avg = atomic64_get_na(&rtpe_rate_graphite_min_max_avg_sampled.avg.ng_commands[i]); g_autoptr(char) min_label = g_strdup_printf("min%srequestrate", ng_command_strings[i]); g_autoptr(char) max_label = g_strdup_printf("max%srequestrate", ng_command_strings[i]); g_autoptr(char) avg_label = g_strdup_printf("avg%srequestrate", ng_command_strings[i]); g_autoptr(char) long_label = g_strdup_printf("Min/Max/Avg %s requests per second", ng_command_strings[i]); METRICl(long_label, "%" PRIu64 "/%" PRIu64 "/%" PRIu64 " per sec", min, max, avg); METRICsva(min_label, "%" PRIu64 "", min); METRICsva(max_label, "%" PRIu64 "", max); METRICsva(avg_label, "%" PRIu64 "", avg); } HEADER(NULL, ""); HEADER("}", ""); } struct global_sampled_avg sampled_avgs; stats_sampled_avg(&sampled_avgs, &rtpe_stats_sampled); #define STAT_GET_PRINT_GEN(source, avgs, stat_name, name, divisor, prefix, label...) \ METRIC(#stat_name "_total", "Sum of all " name " values sampled", "%.6f", "%.6f", \ (double) atomic64_get_na(&(source)->sums.stat_name) / (divisor)); \ PROM(prefix #stat_name "_total", "counter"); \ PROMLAB(label); \ METRIC(#stat_name "2_total", "Sum of all " name " square values sampled", "%.6f", "%.6f", \ (double) atomic64_get_na(&(source)->sums_squared.stat_name) / (divisor * divisor)); \ PROM(prefix #stat_name "2_total", "counter"); \ PROMLAB(label); \ METRIC(#stat_name "_samples_total", "Total number of " name " samples", UINT64F, UINT64F, \ atomic64_get_na(&(source)->counts.stat_name)); \ PROM(prefix #stat_name "_samples_total", "counter"); \ PROMLAB(label); \ METRIC(#stat_name "_average", "Average " name, "%.6f", "%.6f", \ (double) atomic64_get_na(&(avgs)->avg.stat_name) / (divisor)); \ METRIC(#stat_name "_stddev", name " standard deviation", "%.6f", "%.6f", \ (double) atomic64_get_na(&(avgs)->stddev.stat_name) / (divisor * divisor)); #define STAT_GET_PRINT(stat_name, name, divisor) \ STAT_GET_PRINT_GEN(&rtpe_stats_sampled, &sampled_avgs, stat_name, name, divisor, "", NULL) HEADER("mos", "MOS statistics:"); HEADER("{", ""); STAT_GET_PRINT(mos, "MOS", 10.0); HEADER(NULL, ""); HEADER("}", ""); HEADER("voip_metrics", "VoIP metrics:"); HEADER("{", ""); STAT_GET_PRINT(jitter, "jitter (reported)", 1.0); STAT_GET_PRINT(rtt_e2e, "end-to-end round-trip time", 1.0); STAT_GET_PRINT(rtt_dsct, "discrete round-trip time", 1.0); STAT_GET_PRINT(packetloss, "packet loss", 1.0); STAT_GET_PRINT(jitter_measured, "jitter (measured)", 1.0); METRIC("packets_lost", "Packets lost", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->packets_lost)); PROM("packets_lost", "counter"); METRIC("rtp_duplicates", "Duplicate RTP packets", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->rtp_duplicates)); PROM("rtp_duplicates", "counter"); METRIC("rtp_skips", "RTP sequence skips", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->rtp_skips)); PROM("rtp_skips", "counter"); METRIC("rtp_seq_resets", "RTP sequence resets", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->rtp_seq_resets)); PROM("rtp_seq_resets", "counter"); METRIC("rtp_reordered", "Out-of-order RTP packets", UINT64F, UINT64F, atomic64_get_na(&rtpe_stats->rtp_reordered)); PROM("rtp_reordered", "counter"); HEADER(NULL, ""); HEADER("}", ""); HEADER("controlstatistics", "Control statistics:"); HEADER("{", ""); HEADER("proxies", NULL); HEADER("[", NULL); GString *tmp = g_string_new(""); g_string_append_printf(tmp, " %20s ", "Proxy"); for (int i = 0; i < NGC_COUNT; i++) g_string_append_printf(tmp, "| %10s ", ng_command_strings_short[i]); HEADERl("%s", tmp->str); g_string_free(tmp, TRUE); struct control_ng_stats total = {0,}; // coverity[missing_lock : FALSE] mutex_lock(&rtpe_cngs_lock); GList *list = g_hash_table_get_values(rtpe_cngs_hash); if (!list) { //streambuf_printf(replybuffer, "\n No proxies have yet tried to send data."); } for (GList *l = list; l; l = l->next) { struct control_ng_stats* cur = l->data; HEADER("{", NULL); tmp = g_string_new(""); METRICsva("proxy", "\"%s\"", sockaddr_print_buf(&cur->proxy)); g_string_append_printf(tmp, " %20s ", sockaddr_print_buf(&cur->proxy)); for (int i = 0; i < NGC_COUNT; i++) { mutex_lock(&cur->cmd[i].lock); g_string_append_printf(tmp, "| %10u ", cur->cmd[i].count); total.cmd[i].count += cur->cmd[i].count; char *mn = g_strdup_printf("%scount", ng_command_strings_short[i]); char *lw = g_ascii_strdown(mn, -1); METRICs(lw, "%u", cur->cmd[i].count); PROM("requests_total", "counter"); PROMLAB("proxy=\"%s\",request=\"%s\"", sockaddr_print_buf(&cur->proxy), ng_command_strings[i]); free(mn); free(lw); mn = g_strdup_printf("%sduration", ng_command_strings_short[i]); lw = g_ascii_strdown(mn, -1); METRICs(lw, "%.6f", (double) cur->cmd[i].time.tv_sec + (double) cur->cmd[i].time.tv_usec / 1000000.); PROM("request_seconds_total", "counter"); PROMLAB("proxy=\"%s\",request=\"%s\"", sockaddr_print_buf(&cur->proxy), ng_command_strings[i]); free(mn); free(lw); mutex_unlock(&cur->cmd[i].lock); } METRICl("", "%s", tmp->str); g_string_free(tmp, TRUE); int errors = g_atomic_int_get(&cur->errors); total.errors += errors; METRICs("errorcount", "%i", errors); PROM("errors_total", "counter"); PROMLAB("proxy=\"%s\"", sockaddr_print_buf(&cur->proxy)); HEADER("}", NULL); } mutex_unlock(&rtpe_cngs_lock); g_list_free(list); HEADER("]", ""); for (int i = 0; i < NGC_COUNT; i++) { char *mn = g_strdup_printf("total%scount", ng_command_strings_short[i]); char *lw = g_ascii_strdown(mn, -1); METRICs(lw, "%u", total.cmd[i].count); free(mn); free(lw); } HEADER("}", ""); HEADER("interfaces", NULL); HEADER("[", NULL); for (GList *l = all_local_interfaces.head; l; l = l->next) { struct local_intf *lif = l->data; // only show first-order interface entries: socket families must match if (lif->logical->preferred_family != lif->spec->local_address.addr.family) continue; HEADER("{", NULL); METRICsva("name", "\"%s\"", lif->logical->name.s); METRICsva("address", "\"%s\"", sockaddr_print_buf(&lif->spec->local_address.addr)); HEADER("ports", NULL); HEADER("{", NULL); METRICs("min", "%u", lif->spec->port_pool.min); METRICs("max", "%u", lif->spec->port_pool.max); unsigned int f = g_hash_table_size(lif->spec->port_pool.free_ports_ht); unsigned int r = lif->spec->port_pool.max - lif->spec->port_pool.min + 1; METRICs("used", "%u", r - f); PROM("ports_used", "gauge"); PROMLAB("name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); METRICs("used_pct", "%.2f", (double) (r - f) * 100.0 / r); METRICs("free", "%u", f); PROM("ports_free", "gauge"); PROMLAB("name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); METRICs("totals", "%u", r); PROM("ports", "gauge"); PROMLAB("name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); HEADER("}", NULL); #define F(f) \ METRICs(#f, UINT64F, atomic64_get_na(&lif->stats->s.f)); \ PROM("interface_" #f, "counter"); \ PROMLAB("name=\"%s\",address=\"%s\"", lif->logical->name.s, \ sockaddr_print_buf(&lif->spec->local_address.addr)); #include "interface_counter_stats_fields.inc" #undef F // expected to be single thread only, so no locking long long time_diff_us; struct interface_stats_block *intv_stats = interface_sampled_rate_stats_get(interface_rate_stats, lif, &time_diff_us); if (intv_stats) { HEADER("interval", NULL); HEADER("{", NULL); struct interface_counter_stats diff; interface_counter_calc_diff(&lif->stats->s, &intv_stats->s, &diff); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&diff.f)); #include "interface_counter_stats_fields.inc" #undef F HEADER("}", NULL); if (time_diff_us) { HEADER("rate", NULL); HEADER("{", NULL); struct interface_counter_stats rate; interface_counter_calc_rate_from_diff(time_diff_us, &diff, &rate); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&rate.f)); #include "interface_counter_stats_fields.inc" #undef F HEADER("}", NULL); } } HEADER("voip_metrics", "VoIP metrics for interface %s/%s:", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); HEADER("{", NULL); struct interface_sampled_stats_avg stat_avg; interface_sampled_avg(&stat_avg, &lif->stats->sampled); #define INTF_SAMPLED_STAT(stat_name, name, divisor, prefix, label...) \ STAT_GET_PRINT_GEN(&lif->stats->sampled, &stat_avg, stat_name, name, divisor, prefix, label) INTF_SAMPLED_STAT(mos, "MOS", 10.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); INTF_SAMPLED_STAT(jitter, "jitter (reported)", 1.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); INTF_SAMPLED_STAT(rtt_e2e, "end-to-end round-trip time", 1.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); INTF_SAMPLED_STAT(rtt_dsct, "discrete round-trip time", 1.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); INTF_SAMPLED_STAT(packetloss, "packet loss", 1.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); INTF_SAMPLED_STAT(jitter_measured, "jitter (measured)", 1.0, "interface_", "name=\"%s\",address=\"%s\"", lif->logical->name.s, sockaddr_print_buf(&lif->spec->local_address.addr)); HEADER("}", NULL); if (intv_stats) { HEADER("voip_metrics_interval", NULL); HEADER("{", NULL); struct interface_sampled_stats diff; interface_sampled_calc_diff(&lif->stats->sampled, &intv_stats->sampled, &diff); struct interface_sampled_stats_avg avg; interface_sampled_avg(&avg, &diff); METRIC("mos", "Average interval MOS", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.mos) / 10.0); \ METRIC("mos_stddev", "Standard deviation interval MOS", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.mos) / 100.0); \ METRIC("jitter", "Average interval jitter (reported)", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.jitter)); \ METRIC("jitter_stddev", "Standard deviation interval jitter (reported)", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.jitter)); \ METRIC("rtt_e2e", "Average interval end-to-end round-trip time", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.rtt_e2e)); \ METRIC("rtt_e2e_stddev", "Standard deviation interval end-to-end round-trip time", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.rtt_e2e)); \ METRIC("rtt_dsct", "Average interval discrete round-trip time", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.rtt_dsct)); \ METRIC("rtt_dsct_stddev", "Standard deviation interval discrete round-trip time", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.rtt_dsct)); \ METRIC("packetloss", "Average interval packet loss", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.packetloss)); \ METRIC("packetloss_stddev", "Standard deviation interval packet loss", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.packetloss)); \ METRIC("jitter_measured", "Average interval jitter (measured)", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.avg.jitter_measured)); \ METRIC("jitter_measured_stddev", "Standard deviation interval jitter (measured)", "%.6f", "%.6f", \ (double) atomic64_get_na(&avg.stddev.jitter_measured)); \ HEADER("}", NULL); } HEADER("ingress", NULL); HEADER("{", NULL); #define F(f) \ METRICs(#f, UINT64F, atomic64_get_na(&lif->stats->in.f)); \ PROM("interface_" #f, "gauge"); \ PROMLAB("name=\"%s\",address=\"%s\",direction=\"ingress\"", lif->logical->name.s, \ sockaddr_print_buf(&lif->spec->local_address.addr)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); HEADER("egress", NULL); HEADER("{", NULL); #define F(f) \ METRICs(#f, UINT64F, atomic64_get_na(&lif->stats->out.f)); \ PROM("interface_" #f, "gauge"); \ PROMLAB("name=\"%s\",address=\"%s\",direction=\"egress\"", lif->logical->name.s, \ sockaddr_print_buf(&lif->spec->local_address.addr)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); if (intv_stats) { HEADER("ingress_interval", NULL); HEADER("{", NULL); struct interface_counter_stats_dir diff_in; interface_counter_calc_diff_dir(&lif->stats->in, &intv_stats->in, &diff_in); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&diff_in.f)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); HEADER("egress_interval", NULL); HEADER("{", NULL); struct interface_counter_stats_dir diff_out; interface_counter_calc_diff_dir(&lif->stats->out, &intv_stats->out, &diff_out); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&diff_out.f)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); if (time_diff_us) { HEADER("ingress_rate", NULL); HEADER("{", NULL); struct interface_counter_stats_dir rate; interface_counter_calc_rate_from_diff_dir(time_diff_us, &diff_in, &rate); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&rate.f)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); HEADER("egress_rate", NULL); HEADER("{", NULL); interface_counter_calc_rate_from_diff_dir(time_diff_us, &diff_out, &rate); #define F(f) METRICs(#f, UINT64F, atomic64_get_na(&rate.f)); #include "interface_counter_stats_fields_dir.inc" #undef F HEADER("}", NULL); } } HEADER("}", NULL); } HEADER("]", NULL); mutex_lock(&rtpe_codec_stats_lock); HEADER("transcoders", NULL); HEADER("[", ""); int last_tv_sec = rtpe_now.tv_sec - 1; unsigned int idx = last_tv_sec & 1; codec_stats_ht_iter iter; t_hash_table_iter_init(&iter, rtpe_codec_stats); char *chain; struct codec_stats *stats_entry; while (t_hash_table_iter_next(&iter, &chain, &stats_entry)) { HEADER("{", ""); METRICsva("chain", "\"%s\"", chain); METRICs("num", "%i", g_atomic_int_get(&stats_entry->num_transcoders)); PROM("transcoders", "gauge"); PROMLAB("chain=\"%s\"", chain); if (g_atomic_int_get(&stats_entry->last_tv_sec[idx]) == last_tv_sec) { METRICs("packetrate", UINT64F, atomic64_get(&stats_entry->packets_input[idx])); METRICs("byterate", UINT64F, atomic64_get(&stats_entry->bytes_input[idx])); METRICs("samplerate", UINT64F, atomic64_get(&stats_entry->pcm_samples[idx])); } METRICs("packets", UINT64F, atomic64_get(&stats_entry->packets_input[2])); PROM("transcode_packets_total", "counter"); PROMLAB("chain=\"%s\"", chain); METRICs("bytes", UINT64F, atomic64_get(&stats_entry->bytes_input[2])); PROM("transcode_bytes_total", "counter"); PROMLAB("chain=\"%s\"", chain); METRICs("samples", UINT64F, atomic64_get(&stats_entry->pcm_samples[2])); PROM("transcode_samples_total", "counter"); PROMLAB("chain=\"%s\"", chain); HEADER("}", ""); } mutex_unlock(&rtpe_codec_stats_lock); HEADER("]", ""); HEADER("}", NULL); return ret; } #pragma GCC diagnostic warning "-Wformat-zero-length" static void free_stats_metric(stats_metric *m) { g_free(m->descr); g_free(m->label); g_free(m->value_long); g_free(m->value_short); g_free(m->value_raw); g_free(m->prom_label); g_slice_free1(sizeof(*m), m); } void statistics_free_metrics(stats_metric_q *q) { t_queue_free_full(q, free_stats_metric); } void statistics_free(void) { mutex_destroy(&rtpe_codec_stats_lock); t_hash_table_destroy(rtpe_codec_stats); bufferpool_unref(rtpe_stats); rtpe_stats = NULL; } static void codec_stats_free(struct codec_stats *stats_entry) { free(stats_entry->chain); g_free(stats_entry->chain_brief); g_slice_free1(sizeof(*stats_entry), stats_entry); } TYPED_GHASHTABLE_IMPL(codec_stats_ht, c_str_hash, c_str_equal, NULL, codec_stats_free) void statistics_init(void) { gettimeofday(&rtpe_started, NULL); rtpe_stats = bufferpool_alloc0(shm_bufferpool, sizeof(*rtpe_stats)); mutex_init(&rtpe_codec_stats_lock); rtpe_codec_stats = codec_stats_ht_new(); } const char *statistics_ng(bencode_item_t *input, bencode_item_t *output) { g_autoptr(stats_metric_q) metrics = statistics_gather_metrics(NULL); g_auto(GQueue) bstack = G_QUEUE_INIT; bencode_item_t *dict = output; const char *sub_label = "statistics"; // top level bencode_buffer_t *buf = output->buffer; for (__auto_type l = metrics->head; l; l = l->next) { stats_metric *m = l->data; if (!m->label) continue; // key:value entry? if (m->value_short) { if (m->is_int) bencode_dictionary_add_integer(dict, bencode_strdup(buf, m->label), m->int_value); else if (m->value_raw) bencode_dictionary_add_string_dup(dict, bencode_strdup(buf, m->label), m->value_raw); else bencode_dictionary_add_string_dup(dict, bencode_strdup(buf, m->label), m->value_short); continue; } // list or dict end? if (m->is_close_bracket) { dict = g_queue_pop_tail(&bstack); assert(dict != NULL); continue; } // label without value precedes an immediate sub-entry, so save the label if (!m->is_bracket) { assert(sub_label == NULL); sub_label = m->label; continue; } // open bracket of some sort - new sub-entry follows bencode_item_t *sub = NULL; if (m->is_brace) sub = bencode_dictionary(buf); else sub = bencode_list(buf); assert(sub != NULL); // is this a dictionary? if (dict->type == BENCODE_DICTIONARY) { assert(sub_label != NULL); bencode_dictionary_add(dict, bencode_strdup(buf, sub_label), sub); } else if (dict->type == BENCODE_LIST) bencode_list_add(dict, sub); else abort(); sub_label = NULL; g_queue_push_tail(&bstack, dict); dict = sub; } return NULL; } /** * Separate thread for update of running min/max call counters. */ enum thread_looper_action call_rate_stats_updater(void) { static struct timeval last_run; stats_rate_min_max(&rtpe_rate_graphite_min_max, &rtpe_stats_rate); if (last_run.tv_sec) { /* `stats_counters_calc_rate()` shouldn't be called on the very first cycle */ long long run_diff_us = timeval_diff(&rtpe_now, &last_run); stats_counters_calc_rate(rtpe_stats, run_diff_us, &rtpe_stats_intv, &rtpe_stats_rate); } last_run = rtpe_now; return TLA_CONTINUE; } rtpengine-mr12.5.1.22/daemon/stun.c000066400000000000000000000442621474347554000170010ustar00rootroot00000000000000#include "stun.h" #include #include #include #include #include #include #include #include "compat.h" #include "str.h" #include "helpers.h" #include "log.h" #include "ice.h" #include "ssllib.h" #include "uring.h" #define STUN_CRC_XOR 0x5354554eUL #define STUN_USERNAME 0x0006 #define STUN_MESSAGE_INTEGRITY 0x0008 #define STUN_ERROR_CODE 0x0009 #define STUN_UNKNOWN_ATTRIBUTES 0x000a #define STUN_XOR_MAPPED_ADDRESS 0x0020 #define STUN_PRIORITY 0x0024 #define STUN_USE_CANDIDATE 0x0025 #define STUN_SOFTWARE 0x8022 #define STUN_FINGERPRINT 0x8028 #define STUN_ICE_CONTROLLED 0x8029 #define STUN_ICE_CONTROLLING 0x802a #define STUN_GOOG_NETWORK_INFO 0xc057 #define STUN_CLASS_REQUEST 0x00 #define STUN_CLASS_INDICATION 0x01 #define STUN_CLASS_SUCCESS 0x02 #define STUN_CLASS_ERROR 0x03 #define STUN_METHOD_BINDING 0x01 #define STUN_MESSAGE_TYPE(method, class) \ (((method) & 0xf) | (((method) & 0x70) << 1) \ | (((method) & 0x0f80) << 2) | (((class) & 0x1) << 4) \ | (((class) & 0x2) << 7)) #define STUN_BINDING_REQUEST \ STUN_MESSAGE_TYPE(STUN_METHOD_BINDING, STUN_CLASS_REQUEST) #define STUN_BINDING_SUCCESS_RESPONSE \ STUN_MESSAGE_TYPE(STUN_METHOD_BINDING, STUN_CLASS_SUCCESS) #define STUN_BINDING_ERROR_RESPONSE \ STUN_MESSAGE_TYPE(STUN_METHOD_BINDING, STUN_CLASS_ERROR) #define UNKNOWNS_COUNT 16 struct header { uint16_t msg_type; uint16_t msg_len; uint32_t cookie; uint32_t transaction[3]; } __attribute__ ((packed)); struct tlv { uint16_t type; uint16_t len; } __attribute__ ((packed)); struct generic { struct tlv tlv; } __attribute__ ((packed)); struct error_code { struct tlv tlv; uint32_t codes; } __attribute__ ((packed)); struct fingerprint { struct tlv tlv; uint32_t crc; } __attribute__ ((packed)); struct msg_integrity { struct tlv tlv; char digest[20]; } __attribute__ ((packed)); struct xor_mapped_address { struct tlv tlv; uint16_t family; uint16_t port; uint32_t address[4]; } __attribute__ ((packed)); struct controlled_ing { struct tlv tlv; uint64_t tiebreaker; } __attribute__ ((packed)); struct priority { struct tlv tlv; uint32_t priority; } __attribute__ ((packed)); struct software { struct tlv tlv; char str[128]; } __attribute__ ((packed)); /* XXX add const in functions */ static uint64_t be64toh_unaligned(const char *s) { uint64_t u; memcpy(&u, s, sizeof(u)); return be64toh(u); } static int stun_attributes(struct stun_attrs *out, str *s, uint16_t *unknowns, struct header *req) { struct tlv *tlv; int len, type, uc; str attr; ZERO(*out); uc = 0; unknowns[0] = 0xffff; while (1) { if (!s->len) break; tlv = (void *) s->s; if (str_shift(s, sizeof(*tlv))) return -1; len = ntohs(tlv->len); attr = *s; attr.len = len; len = (len + 3) & 0xfffc; if (str_shift(s, len)) return -1; type = ntohs(tlv->type); if (out->msg_integrity.s && type != STUN_FINGERPRINT) return -1; switch (type) { case STUN_USERNAME: out->username = attr; break; case STUN_MESSAGE_INTEGRITY: if (attr.len != 20) return -1; out->msg_integrity_attr = (void *) tlv; out->msg_integrity = attr; break; case STUN_FINGERPRINT: if (attr.len != 4) return -1; out->fingerprint_attr = (void *) tlv; out->fingerprint = ntohl(*(uint32_t *) attr.s); goto out; case STUN_USE_CANDIDATE: out->use = 1; break; case STUN_ICE_CONTROLLED: if (out->controlling) return -1; if (attr.len != 8) return -1; out->tiebreaker = be64toh_unaligned(attr.s); out->controlled = 1; break; case STUN_ICE_CONTROLLING: if (out->controlled) return -1; if (attr.len != 8) return -1; out->tiebreaker = be64toh_unaligned(attr.s); out->controlling = 1; break; case STUN_PRIORITY: if (attr.len != 4) return -1; out->priority = ntohl(*((uint32_t *) attr.s)); break; case STUN_SOFTWARE: case STUN_GOOG_NETWORK_INFO: break; /* ignore but suppress warning message */ case STUN_XOR_MAPPED_ADDRESS: if (attr.len < 8) return -1; out->mapped.port = ntohs(*((uint16_t *) (&attr.s[2]))) ^ (STUN_COOKIE >> 16); if (attr.len == 8 && ntohs(*((uint16_t *) attr.s)) == 1) { out->mapped.address.family = get_socket_family_enum(SF_IP4); out->mapped.address.ipv4.s_addr = ntohl(*((uint32_t *) (&attr.s[4]))) ^ STUN_COOKIE; } else if (attr.len == 20 && ntohs(*((uint16_t *) attr.s)) == 1) { out->mapped.address.family = get_socket_family_enum(SF_IP6); out->mapped.address.ipv6.s6_addr32[0] = *((uint32_t *) (&attr.s[4])) ^ htonl(STUN_COOKIE); out->mapped.address.ipv6.s6_addr32[1] = *((uint32_t *) (&attr.s[8])) ^ req->transaction[0]; out->mapped.address.ipv6.s6_addr32[2] = *((uint32_t *) (&attr.s[12])) ^ req->transaction[1]; out->mapped.address.ipv6.s6_addr32[3] = *((uint32_t *) (&attr.s[16])) ^ req->transaction[2]; } break; case STUN_ERROR_CODE: if (attr.len < 4) return -1; out->error_code = ntohl(*((uint32_t *) attr.s)); out->error_code = ((out->error_code & 0x700) >> 8) * 100 + (out->error_code & 0x0ff); break; default: if ((type & 0x8000)) { // comprehension optional ilog(LOG_DEBUG, "Unknown STUN attribute: 0x%04x", type); break; } ilog(LOG_NOTICE | LOG_FLAG_LIMIT, "Unknown STUN attribute: 0x%04x", type); unknowns[uc] = tlv->type; unknowns[++uc] = 0xffff; if (uc >= UNKNOWNS_COUNT - 1) return -1; break; } } out: return uc ? -1 : 0; } static void output_init(struct msghdr *mh, struct iovec *iov, struct header *hdr, unsigned short code, void *transaction) { ZERO(*mh); mh->msg_iov = iov; mh->msg_iovlen = 1; iov->iov_base = hdr; iov->iov_len = sizeof(*hdr); hdr->msg_type = htons(code); hdr->msg_len = 0; hdr->cookie = htonl(STUN_COOKIE); memcpy(&hdr->transaction, transaction, sizeof(hdr->transaction)); } INLINE void __output_add(struct msghdr *mh, struct tlv *tlv, unsigned int len, uint16_t code, void *append, unsigned int append_len, int writable) { struct iovec *iov; struct header *hdr; iov = &mh->msg_iov[mh->msg_iovlen++]; iov->iov_base = tlv; iov->iov_len = len; tlv->type = htons(code); tlv->len = htons(len - sizeof(*tlv) + append_len); hdr = mh->msg_iov->iov_base; hdr->msg_len += len + ((append_len + 3) & 0xfffc); if (append_len) { iov = &mh->msg_iov[mh->msg_iovlen++]; iov->iov_base = append; /* must have space for padding */ iov->iov_len = (append_len + 3) & 0xfffc; if (writable && (append_len & 0x3)) // if not writable, buffer must have trailing \0\0\0 memset(append + append_len, 0, 4 - (append_len & 0x3)); } } #define output_add(mh, attr, code) \ __output_add(mh, &(attr)->tlv, sizeof(*(attr)), code, NULL, 0, 0) #define output_add_len(mh, attr, code, len) \ __output_add(mh, &(attr)->tlv, len + sizeof(struct tlv), code, NULL, 0, 0) #define output_add_data_wr(mh, attr, code, data, len) \ __output_add(mh, &(attr)->tlv, sizeof(*(attr)), code, data, len, 1) #define output_add_data_ro(mh, attr, code, data, len) \ __output_add(mh, &(attr)->tlv, sizeof(*(attr)), code, data, len, 0) #define output_add_data_len_pad(mh, attr, code, data, len) \ __output_add(mh, &(attr)->tlv, sizeof((attr)->tlv), code, data, len, 1) static void __output_finish(struct msghdr *mh) { struct header *hdr; hdr = mh->msg_iov->iov_base; hdr->msg_len = htons(hdr->msg_len); } static void output_finish_src(struct msghdr *mh) { __output_finish(mh); } static void software(struct msghdr *mh, struct software *sw) { int i; i = snprintf(sw->str, sizeof(sw->str), "%s", rtpe_config.software_id); output_add_data_len_pad(mh, sw, STUN_SOFTWARE, sw->str, i); } static void fingerprint(struct msghdr *mh, struct fingerprint *fp) { int i; struct iovec *iov; struct header *hdr; output_add(mh, fp, STUN_FINGERPRINT); iov = mh->msg_iov; hdr = iov->iov_base; hdr->msg_len = htons(hdr->msg_len); fp->crc = crc32(0, NULL, 0); for (i = 0; i < mh->msg_iovlen - 1; i++) fp->crc = crc32(fp->crc, iov[i].iov_base, iov[i].iov_len); fp->crc = htonl(fp->crc ^ STUN_CRC_XOR); hdr->msg_len = ntohs(hdr->msg_len); } static void __integrity(struct iovec *iov, int iov_cnt, str *pwd, char *digest) { int i; #if OPENSSL_VERSION_NUMBER >= 0x30000000L EVP_MAC_CTX *ctx; ctx = EVP_MAC_CTX_dup(rtpe_hmac_sha1_base); EVP_MAC_init(ctx, (unsigned char *) pwd->s, pwd->len, NULL); for (i = 0; i < iov_cnt; i++) EVP_MAC_update(ctx, iov[i].iov_base, iov[i].iov_len); size_t outsize = 20; EVP_MAC_final(ctx, (unsigned char *) digest, &outsize, outsize); EVP_MAC_CTX_free(ctx); #else // <3.0 HMAC_CTX *ctx; #if OPENSSL_VERSION_NUMBER >= 0x10100000L ctx = HMAC_CTX_new(); #else HMAC_CTX ctx_s; HMAC_CTX_init(&ctx_s); ctx = &ctx_s; #endif /* do we need to SASLprep here? */ HMAC_Init_ex(ctx, pwd->s, pwd->len, EVP_sha1(), NULL); for (i = 0; i < iov_cnt; i++) HMAC_Update(ctx, iov[i].iov_base, iov[i].iov_len); HMAC_Final(ctx, (void *) digest, NULL); #if OPENSSL_VERSION_NUMBER >= 0x10100000L HMAC_CTX_free(ctx); #else HMAC_CTX_cleanup(ctx); #endif #endif } static void integrity(struct msghdr *mh, struct msg_integrity *mi, str *pwd) { struct iovec *iov; struct header *hdr; if (!pwd || !pwd->s) return; output_add(mh, mi, STUN_MESSAGE_INTEGRITY); iov = mh->msg_iov; hdr = iov->iov_base; hdr->msg_len = htons(hdr->msg_len); __integrity(mh->msg_iov, mh->msg_iovlen - 1, pwd, mi->digest); hdr->msg_len = ntohs(hdr->msg_len); } static void stun_error_len(stream_fd *sfd, const endpoint_t *sin, struct header *req, int code, char *reason, int len, uint16_t add_attr, void *attr_cont, int attr_len) { struct header hdr; struct error_code ec; struct msg_integrity mi; struct fingerprint fp; struct generic aa; struct msghdr mh; struct software sw; struct iovec iov[9]; /* hdr, ec, reason, aa, attr_cont, mi, fp, sw x2 */ output_init(&mh, iov, &hdr, STUN_BINDING_ERROR_RESPONSE, req->transaction); software(&mh, &sw); ec.codes = htonl(((code / 100) << 8) | (code % 100)); output_add_data_ro(&mh, &ec, STUN_ERROR_CODE, reason, len); if (attr_cont) output_add_data_wr(&mh, &aa, add_attr, attr_cont, attr_len); integrity(&mh, &mi, &sfd->stream->media->ice_agent->pwd[1]); fingerprint(&mh, &fp); output_finish_src(&mh); socket_sendmsg(&sfd->socket, &mh, sin); } #define stun_error(sfd, sin, req, code, reason) \ stun_error_len(sfd, sin, req, code, reason "\0\0\0", strlen(reason), \ 0, NULL, 0) #define stun_error_attrs(sfd, sin, req, code, reason, type, content, len) \ stun_error_len(sfd, sin, req, code, reason "\0\0\0", strlen(reason), \ type, content, len) static int check_fingerprint(const str *msg, struct stun_attrs *attrs) { int len; uint32_t crc; len = attrs->fingerprint_attr - msg->s; crc = crc32(0, (void *) msg->s, len); crc ^= STUN_CRC_XOR; if (crc != attrs->fingerprint) return -1; return 0; } static int check_auth(const str *msg, struct stun_attrs *attrs, struct call_media *media, int dst, int src) { uint16_t lenX; char digest[20]; str ufrag[2]; struct iovec iov[3]; struct ice_agent *ag; ag = media->ice_agent; if (!ag) return -1; if (!ag->ufrag[dst].s || !ag->ufrag[dst].len) return -1; if (!ag->pwd[dst].s || !ag->pwd[dst].len) return -1; if (attrs->username.s) { /* request */ ufrag[dst] = attrs->username; if (!str_chr_str(&ufrag[src], &ufrag[dst], ':')) return -1; ufrag[dst].len -= ufrag[src].len; str_shift(&ufrag[src], 1); if (!ufrag[src].len || !ufrag[dst].len) return -1; if (str_cmp_str(&ufrag[dst], &ag->ufrag[dst])) return -1; } lenX = htons((attrs->msg_integrity_attr - msg->s) - 20 + 24); iov[0].iov_base = msg->s; iov[0].iov_len = G_STRUCT_OFFSET(struct header, msg_len); iov[1].iov_base = &lenX; iov[1].iov_len = sizeof(lenX); iov[2].iov_base = msg->s + G_STRUCT_OFFSET(struct header, cookie); iov[2].iov_len = ntohs(lenX) + - 24 + 20 - G_STRUCT_OFFSET(struct header, cookie); __integrity(iov, G_N_ELEMENTS(iov), &ag->pwd[dst], digest); return memcmp(digest, attrs->msg_integrity.s, 20) ? -1 : 0; } static int stun_binding_success(stream_fd *sfd, struct header *req, struct stun_attrs *attrs, const endpoint_t *sin) { struct header hdr; struct xor_mapped_address xma; struct msg_integrity mi; struct fingerprint fp; struct msghdr mh; struct software sw; struct iovec iov[6]; /* hdr, xma, mi, fp, sw x2 */ output_init(&mh, iov, &hdr, STUN_BINDING_SUCCESS_RESPONSE, req->transaction); software(&mh, &sw); xma.port = htons(sin->port ^ (STUN_COOKIE >> 16)); if (sin->address.family->af == AF_INET) { xma.family = htons(0x01); xma.address[0] = sin->address.ipv4.s_addr ^ htonl(STUN_COOKIE); output_add_len(&mh, &xma, STUN_XOR_MAPPED_ADDRESS, 8); } else { xma.family = htons(0x02); xma.address[0] = sin->address.ipv6.s6_addr32[0] ^ htonl(STUN_COOKIE); xma.address[1] = sin->address.ipv6.s6_addr32[1] ^ req->transaction[0]; xma.address[2] = sin->address.ipv6.s6_addr32[2] ^ req->transaction[1]; xma.address[3] = sin->address.ipv6.s6_addr32[3] ^ req->transaction[2]; output_add(&mh, &xma, STUN_XOR_MAPPED_ADDRESS); } integrity(&mh, &mi, &sfd->stream->media->ice_agent->pwd[1]); fingerprint(&mh, &fp); output_finish_src(&mh); socket_sendmsg(&sfd->socket, &mh, sin); return 0; } INLINE int uint16_t_arr_len(uint16_t *arr) { int i; for (i = 0; arr[i] != 0xffff; i++) ; return i; } #define SLF " from %s%s%s" #define SLP FMT_M(endpoint_print_buf(sin)) static int __stun_request(stream_fd *sfd, const endpoint_t *sin, struct header *req, struct stun_attrs *attrs) { int ret; ret = ice_request(sfd, sin, attrs); if (ret == -2) { ilog(LOG_DEBUG, "ICE role conflict detected"); stun_error(sfd, sin, req, 487, "Role conflict"); return 0; } if (ret < 0) return -1; ilog(LOG_DEBUG, "Successful STUN binding request" SLF, SLP); stun_binding_success(sfd, req, attrs, sin); return ret; } static int __stun_success(stream_fd *sfd, const endpoint_t *sin, struct header *req, struct stun_attrs *attrs) { return ice_response(sfd, sin, attrs, req->transaction); } static int __stun_error(stream_fd *sfd, const endpoint_t *sin, struct header *req, struct stun_attrs *attrs) { return ice_response(sfd, sin, attrs, req->transaction); } /* return values: * 0 = stun packet processed successfully * -1 = stun packet not processed, processing should continue as non-stun packet * 1 = stun packet processed and ICE has completed * * call is locked in R */ int stun(const str *b, stream_fd *sfd, const endpoint_t *sin) { struct header *req = (void *) b->s; int msglen, method, class; str attr_str; struct stun_attrs attrs; uint16_t unknowns[UNKNOWNS_COUNT]; const char *err; int dst_idx, src_idx; struct packet_stream *ps = sfd->stream; msglen = ntohs(req->msg_len); err = "message-length mismatch"; if (msglen + 20 > b->len) goto ignore; class = method = ntohs(req->msg_type); class = ((class & 0x10) >> 4) | ((class & 0x100) >> 7); method = (method & 0xf) | ((method & 0xe0) >> 1) | ((method & 0x3e00) >> 2); err = "unknown STUN method"; if (method != STUN_METHOD_BINDING) goto ignore; if (class == STUN_CLASS_INDICATION) return 0; attr_str.s = &b->s[20]; attr_str.len = b->len - 20; if (stun_attributes(&attrs, &attr_str, unknowns, req)) { err = "failed to parse attributes"; if (unknowns[0] == 0xffff) goto ignore; ilog(LOG_WARNING | LOG_FLAG_LIMIT, "STUN packet contained unknown " "\"comprehension required\" attribute(s)" SLF, SLP); stun_error_attrs(sfd, sin, req, 420, "Unknown attribute", STUN_UNKNOWN_ATTRIBUTES, unknowns, uint16_t_arr_len(unknowns) * 2); return 0; } err = "FINGERPRINT attribute missing"; if (!attrs.fingerprint_attr) goto ignore; err = "MESSAGE_INTEGRITY attribute missing"; if (!attrs.msg_integrity.s) goto bad_req; if (class == STUN_CLASS_REQUEST) { err = "USERNAME attribute missing"; if (!attrs.username.s) goto bad_req; dst_idx = 1; src_idx = 0; } else { dst_idx = 0; src_idx = 1; } err = "FINGERPRINT mismatch"; if (check_fingerprint(b, &attrs)) goto ignore; if (check_auth(b, &attrs, ps->media, dst_idx, src_idx)) goto unauth; switch (class) { case STUN_CLASS_REQUEST: return __stun_request(sfd, sin, req, &attrs); case STUN_CLASS_SUCCESS: return __stun_success(sfd, sin, req, &attrs); case STUN_CLASS_ERROR: return __stun_error(sfd, sin, req, &attrs); default: return -1; } /* notreached */ bad_req: ilog(LOG_NOTICE | LOG_FLAG_LIMIT, "Received invalid STUN packet" SLF ": %s", SLP, err); if (class == STUN_CLASS_REQUEST) stun_error(sfd, sin, req, 400, "Bad request"); return 0; unauth: ilog(LOG_NOTICE | LOG_FLAG_LIMIT, "STUN authentication mismatch" SLF, SLP); if (class == STUN_CLASS_REQUEST) stun_error(sfd, sin, req, 401, "Unauthorized"); return 0; ignore: ilog(LOG_NOTICE | LOG_FLAG_LIMIT, "Not handling potential STUN packet" SLF ": %s", SLP, err); return -1; } struct async_stun_req { struct uring_req req; // must be first struct header hdr; struct msghdr mh; struct iovec iov[10]; /* hdr, username x2, ice_controlled/ing, priority, uc, fp, mi, sw x2 */ char username_buf[256]; struct generic un_attr; struct controlled_ing cc; struct priority prio; struct generic uc; struct fingerprint fp; struct msg_integrity mi; struct software sw; struct sockaddr_storage sin; }; int stun_binding_request(const endpoint_t *dst, uint32_t transaction[3], str *pwd, str ufrags[2], int controlling, uint64_t tiebreaker, uint32_t priority, socket_t *sock, int to_use) { struct async_stun_req *r = uring_alloc_buffer_req(sizeof(*r)); int i; output_init(&r->mh, r->iov, &r->hdr, STUN_BINDING_REQUEST, transaction); software(&r->mh, &r->sw); i = snprintf(r->username_buf, sizeof(r->username_buf), STR_FORMAT":"STR_FORMAT, STR_FMT(&ufrags[0]), STR_FMT(&ufrags[1])); if (i <= 0 || i >= sizeof(r->username_buf)) return -1; output_add_data_wr(&r->mh, &r->un_attr, STUN_USERNAME, r->username_buf, i); r->cc.tiebreaker = htobe64(tiebreaker); output_add(&r->mh, &r->cc, controlling ? STUN_ICE_CONTROLLING : STUN_ICE_CONTROLLED); r->prio.priority = htonl(priority); output_add(&r->mh, &r->prio, STUN_PRIORITY); if (to_use) output_add(&r->mh, &r->uc, STUN_USE_CANDIDATE); integrity(&r->mh, &r->mi, pwd); fingerprint(&r->mh, &r->fp); output_finish_src(&r->mh); uring_sendmsg(sock, &r->mh, dst, &r->sin, &r->req); return 0; } rtpengine-mr12.5.1.22/daemon/t38.c000066400000000000000000000501461474347554000164240ustar00rootroot00000000000000#include "t38.h" #ifdef WITH_TRANSCODING #include #include #include #include "spandsp_logging.h" #include "codec.h" #include "call.h" #include "log.h" #include "str.h" #include "media_player.h" #include "log_funcs.h" #include "sdp.h" struct udptl_packet { seq_packet_t p; str *s; }; static void __add_udptl_len(GString *s, const void *buf, unsigned int len) { if (len < 0x80) { g_string_append_c(s, len); if (len) g_string_append_len(s, buf, len); return; } if (len < 0x4000) { uint16_t enc_len = htons(0x8000 | len); g_string_append_len(s, (void *) &enc_len, 2); g_string_append_len(s, buf, len); return; } // fragmented - we don't support more than 65535 bytes unsigned int mult = len >> 14; g_string_append_c(s, 0xc0 | mult); mult <<= 14; // one portion g_string_append_len(s, buf, mult); // remainder - may be zero length __add_udptl_len(s, buf + mult, len - mult); } static void __add_udptl_raw(GString *s, const char *buf, size_t len) { assert(len < 0x10000); if (len == 0) { // add a single zero byte, length 1 __add_udptl_len(s, "\x00", 1); return; } __add_udptl_len(s, buf, len); } static void __add_udptl(GString *s, const str *buf) { __add_udptl_raw(s, buf->s, buf->len); } static void g_string_null_extend(GString *s, size_t len) { if (s->len >= len) return; size_t oldb = s->len; size_t newb = len - s->len; g_string_set_size(s, len); memset(s->str + oldb, 0, newb); } static void spandsp_logging_func(SPAN_LOG_ARGS) { if (level <= SPAN_LOG_PROTOCOL_ERROR) level = LOG_ERR; else if (level <= SPAN_LOG_PROTOCOL_WARNING) level = LOG_WARN; else level = LOG_DEBUG; ilogs(spandsp, level, "SpanDSP: %s", text); } // call is locked in R or W static int t38_gateway_handler(t38_core_state_t *stat, void *user_data, const uint8_t *b, int len, int count) { struct t38_gateway *tg = user_data; // cap the max length of packet we can handle if (len < 0 || len >= 0x10000) { ilog(LOG_ERR, "Received %i bytes from T.38 encoder - discarding", len); return -1; } ilog(LOG_DEBUG, "Received %i bytes from T.38 encoder", len); // build udptl packet: use a conservative guess for required buffer GString *s = g_string_sized_new(512); // add seqnum uint16_t seq = htons(tg->seqnum); g_string_append_len(s, (void *) &seq, 2); // add primary IFP packet str buf = STR_INIT_LEN(b, len); __add_udptl(s, &buf); // add error correction packets if (tg->options.fec_span > 1) { // forward error correction g_string_append_c(s, 0x80); // figure out how many packets we have and which span to use unsigned int packets = tg->options.fec_span * tg->options.max_ec_entries; if (packets > tg->udptl_ec_out.length) packets = tg->udptl_ec_out.length; unsigned int span = packets / tg->options.max_ec_entries; if (!span) span = 1; packets = span * tg->options.max_ec_entries; // our own packets we use unsigned int entries = packets / span; // FEC entries in the output if (entries > tg->udptl_ec_out.length) entries = tg->udptl_ec_out.length; packets = entries * span; assert(span < 0x80); assert(entries < 0x80); g_string_append_c(s, 0x01); g_string_append_c(s, span); // create needed number of FEC packet entries GQueue fec = G_QUEUE_INIT; for (int i = 0; i < entries; i++) g_queue_push_tail(&fec, g_string_new("")); // take each input packet, going backwards in time, and XOR it into // the respective output FEC packet GList *inp = tg->udptl_ec_out.head; for (int i = 0; i < packets; i++) { assert(inp != NULL); str *ip = inp->data; // just keep shifting the list around GString *outp = g_queue_pop_head(&fec); // extend string as needed g_string_null_extend(outp, ip->len); for (size_t j = 0; j < ip->len; j++) outp->str[j] ^= ip->s[j]; g_queue_push_tail(&fec, outp); inp = inp->next; } // output list is now complete, but in reverse. append it to output buffer GString *ec = g_string_sized_new(512); entries = 0; int going = 1; while (fec.length) { GString *outp = g_queue_pop_tail(&fec); if (going) { if (s->len + ec->len + outp->len > tg->options.max_datagram) going = 0; else { __add_udptl_raw(ec, outp->str, outp->len); entries++; } } g_string_free(outp, TRUE); } g_string_append_c(s, entries); g_string_append_len(s, ec->str, ec->len); g_string_free(ec, TRUE); } else { // redundancy error correction g_string_append_c(s, 0x00); GString *ec = g_string_sized_new(512); int entries = 0; for (GList *l = tg->udptl_ec_out.head; l; l = l->next) { str *ec_s = l->data; // stop when we exceed max datagram length if (s->len + ec->len + ec_s->len > tg->options.max_datagram) break; // add redundancy packet __add_udptl(ec, ec_s); entries++; } // number of entries - must be <0x80 as verified in settings g_string_append_c(s, entries); g_string_append_len(s, ec->str, ec->len); g_string_free(ec, TRUE); } // done building our packet - add primary to our error correction buffer tg->seqnum++; unsigned int q_entries = tg->options.max_ec_entries * tg->options.fec_span; if (q_entries) { while (tg->udptl_ec_out.length >= q_entries) { str *ec_s = g_queue_pop_tail(&tg->udptl_ec_out); free(ec_s); } g_queue_push_head(&tg->udptl_ec_out, str_dup(&buf)); } // send our packet if we can struct packet_stream *ps = NULL; if (tg->t38_media && tg->t38_media->streams.head) ps = tg->t38_media->streams.head->data; if (ps) mutex_lock(&ps->out_lock); stream_fd *sfd = NULL; if (ps) sfd = ps->selected_sfd; if (sfd && sfd->socket.fd != -1 && ps->endpoint.address.family != NULL) { for (int i = 0; i < count; i++) { ilog(LOG_DEBUG, "Sending %u UDPTL bytes", (unsigned int) s->len); socket_sendto(&sfd->socket, s->str, s->len, &ps->endpoint); } } else ilog(LOG_WARN | LOG_FLAG_LIMIT, "Unable to send T.38 UDPTL packet due to lack of " "socket or stream"); if (ps) mutex_unlock(&ps->out_lock); g_string_free(s, TRUE); return 0; } void __t38_gateway_free(void *p) { struct t38_gateway *tg = p; ilog(LOG_DEBUG, "Destroying T.38 gateway"); if (tg->gw) t38_gateway_free(tg->gw); if (tg->pcm_player) { media_player_stop(tg->pcm_player); media_player_put(&tg->pcm_player); } if (tg->udptl_fec) g_hash_table_destroy(tg->udptl_fec); g_queue_clear_full(&tg->udptl_ec_out, free); packet_sequencer_destroy(&tg->sequencer); } // call is locked in R and mp is locked static bool t38_pcm_player(struct media_player *mp) { if (!mp || !mp->media) return true; struct t38_gateway *tg = mp->media->t38_gateway; if (!tg) return true; if (tg->pcm_media && tg->pcm_media->streams.head && ((struct packet_stream *) tg->pcm_media->streams.head->data)->selected_sfd) log_info_stream_fd(((struct packet_stream *) tg->pcm_media->streams.head->data)->selected_sfd); ilog(LOG_DEBUG, "Generating T.38 PCM samples"); mutex_lock(&tg->lock); int16_t smp[80]; int num = t38_gateway_tx(tg->gw, smp, 80); if (num <= 0) { // use a fixed interval of 10 ms timeval_add_usec(&mp->next_run, 10000); timerthread_obj_schedule_abs(&mp->tt_obj, &mp->next_run); mutex_unlock(&tg->lock); return false; } ilog(LOG_DEBUG, "Generated %i T.38 PCM samples", num); // release gateway lock as the media player may trigger a lock on the SSRC objects // and this is the wrong lock order struct media_player *pcm_player = media_player_get(tg->pcm_player); unsigned long long pts = tg->pts; tg->pts += num; mutex_unlock(&tg->lock); // this reschedules our player as well media_player_add_packet(pcm_player, (char *) smp, num * 2, num * 1000000 / 8000, pts); media_player_put(&pcm_player); return false; } static void __udptl_packet_free(struct udptl_packet *p) { if (p->s) free(p->s); g_slice_free1(sizeof(*p), p); } static void __t38_options_normalise(struct t38_options *opts) { if (opts->version < 0) opts->version = 0; if (opts->fec_span < 1) opts->fec_span = 1; if (opts->min_ec_entries < 0) opts->min_ec_entries = 0; if (opts->min_ec_entries >= 0x80) opts->min_ec_entries = 0x7f; if (opts->max_ec_entries < 0) opts->max_ec_entries = 0; if (opts->max_ec_entries >= 0x80) opts->max_ec_entries = 0x7f; if (opts->max_ifp <= 0 || opts->max_ifp >= 0x4000) opts->max_ifp = 0x3fff; if (opts->max_datagram <= 0 || opts->max_datagram >= 0x4000) opts->max_datagram = 0x3fff; } static int span_log_level_map(int level) { if (level <= LOG_ERR) level = SPAN_LOG_PROTOCOL_ERROR; else if (level < LOG_DEBUG) level = SPAN_LOG_PROTOCOL_WARNING; else level = SPAN_LOG_DEBUG_3; return level; } void t38_insert_media_attributes(GString *gs, union sdp_attr_print_arg a, const sdp_ng_flags *flags) { struct t38_gateway *tg = a.cm->t38_gateway; if (!tg) return; sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxVersion", "%i", tg->options.version); sdp_append_attr(gs, flags, MT_IMAGE, "T38MaxBitRate", "14400"); sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxRateManagement", "%s", tg->options.local_tcf ? "localTFC" : "transferredTCF"); sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxMaxBuffer", "1800"); sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxMaxDatagram", "512"); if (tg->options.max_ec_entries == 0) sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxUdpEC", "t38UDPNoEC"); else if (tg->options.fec_span > 1) sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxUdpEC", "t38UDPFEC"); else sdp_append_attr(gs, flags, MT_IMAGE, "T38FaxUdpEC", "t38UDPRedundancy"); // XXX more options possible here } // call is locked in W int t38_gateway_pair(struct call_media *t38_media, struct call_media *pcm_media, const struct t38_options *options) { const char *err = NULL; if (!t38_media || !pcm_media || !options) return -1; struct t38_options opts = *options; __t38_options_normalise(&opts); // do we have one yet? if (t38_media->t38_gateway && t38_media->t38_gateway == pcm_media->t38_gateway) { // XXX check options here? return 0; } // release old structs, if any t38_gateway_put(&t38_media->t38_gateway); t38_gateway_put(&pcm_media->t38_gateway); ilog(LOG_DEBUG, "Creating new T.38 gateway"); // create and init new struct t38_gateway *tg = obj_alloc0("t38_gateway", sizeof(*tg), __t38_gateway_free); tg->t38_media = t38_media; tg->pcm_media = pcm_media; mutex_init(&tg->lock); tg->udptl_fec = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) __udptl_packet_free); tg->options = opts; tg->pcm_pt.payload_type = -1; str_init(&tg->pcm_pt.encoding, "PCM-S16LE"); tg->pcm_pt.encoding_with_params = tg->pcm_pt.encoding; tg->pcm_pt.clock_rate = 8000; tg->pcm_pt.channels = 1; tg->pcm_pt.ptime = 20; err = "Failed to init PCM codec"; ensure_codec_def(&tg->pcm_pt, pcm_media); if (!tg->pcm_pt.codec_def) goto err; err = "Failed to create spandsp T.38 gateway"; if (!(tg->gw = t38_gateway_init(NULL, t38_gateway_handler, tg))) goto err; media_player_new(&tg->pcm_player, pcm_media->monologue); // even though we call media_player_set_media() here, we need to call it again in // t38_gateway_start because our sink might not have any streams added here yet, // leaving the media_player setup incomplete media_player_set_media(tg->pcm_player, pcm_media); tg->pcm_player->run_func = t38_pcm_player; // set options t38_core_state_t *t38 = t38_gateway_get_t38_core_state(tg->gw); t38_gateway_set_ecm_capability(tg->gw, opts.no_ecm ? FALSE : TRUE); t38_gateway_set_transmit_on_idle(tg->gw, TRUE); t38_gateway_set_supported_modems(tg->gw, (opts.no_v17 ? 0 : T30_SUPPORT_V17) | (opts.no_v27ter ? 0 : T30_SUPPORT_V27TER) | (opts.no_v29 ? 0 : T30_SUPPORT_V29) | (opts.no_v34 ? 0 : T30_SUPPORT_V34HDX) | (opts.no_iaf ? 0 : T30_SUPPORT_IAF)); t38_set_t38_version(t38, opts.version); t38_set_data_rate_management_method(t38, opts.local_tcf ? 1 : 2); t38_set_fill_bit_removal(t38, opts.fill_bit_removal); t38_set_mmr_transcoding(t38, opts.transcoding_mmr); t38_set_jbig_transcoding(t38, opts.transcoding_jbig); t38_set_max_datagram_size(t38, opts.max_ifp); logging_state_t *ls = t38_gateway_get_logging_state(tg->gw); my_span_set_log(ls, spandsp_logging_func); span_log_set_level(ls, span_log_level_map(get_log_level(spandsp))); packet_sequencer_init(&tg->sequencer, (GDestroyNotify) __udptl_packet_free); tg->sequencer.seq = 0; // done - add references to media structs t38_media->t38_gateway = tg; pcm_media->t38_gateway = obj_get(tg); // add SDP options for T38 t38_media->sdp_attr_print = t38_insert_media_attributes; return 0; err: if (err) ilog(LOG_ERR, "Failed to create T.38 gateway: %s", err); t38_gateway_put(&tg); return -1; } // call is locked in W void t38_gateway_start(struct t38_gateway *tg) { if (!tg) return; // set up our player first media_player_set_media(tg->pcm_player, tg->pcm_media); if (media_player_setup(tg->pcm_player, &tg->pcm_pt, NULL)) return; // now start our player if we can or should // already running? if (tg->pcm_player->next_run.tv_sec) return; // only start our player only if we can send both ways if (!tg->pcm_media->codecs.codec_prefs.length) return; if (!tg->pcm_media->streams.length) return; if (!tg->t38_media->streams.length) return; struct packet_stream *ps; ps = tg->pcm_media->streams.head->data; if (!PS_ISSET(ps, FILLED)) return; ps = tg->t38_media->streams.head->data; if (!PS_ISSET(ps, FILLED)) return; ilog(LOG_DEBUG, "Starting T.38 PCM player"); // start off PCM player tg->pcm_player->next_run = rtpe_now; timerthread_obj_schedule_abs(&tg->pcm_player->tt_obj, &tg->pcm_player->next_run); } // call is locked in R int t38_gateway_input_samples(struct t38_gateway *tg, int16_t amp[], int len) { if (!tg) return 0; if (len <= 0) return 0; ilog(LOG_DEBUG, "Adding %i samples to T.38 encoder", len); mutex_lock(&tg->lock); int left = t38_gateway_rx(tg->gw, amp, len); if (left) ilog(LOG_WARN | LOG_FLAG_LIMIT, "%i PCM samples were not processed by the T.38 gateway", left); mutex_unlock(&tg->lock); return 0; } static ssize_t __get_udptl_len(str *s) { ssize_t ret; if (s->len < 1) return -1; if (!(s->s[0] & 0x80)) { ret = s->s[0]; str_shift(s, 1); return ret; } if (s->len < 2) return -1; if (!(s->s[0] & 0x40)) { ret = ntohs(*((uint16_t *) s->s)) & 0x3fff; str_shift(s, 2); return ret; } ilog(LOG_INFO | LOG_FLAG_LIMIT, "Decoding UDPTL fragments is not supported"); return -1; } static int __get_udptl(str *piece, str *s) { ssize_t len = __get_udptl_len(s); if (len < 0) return -1; return str_shift_ret(s, len, piece); } static struct udptl_packet *__make_udptl_packet(const str *piece, uint16_t seq) { struct udptl_packet *up = g_slice_alloc0(sizeof(*up)); up->p.seq = seq; up->s = str_dup(piece); return up; } static void __fec_save(struct t38_gateway *tg, const str *piece, uint16_t seq) { struct udptl_packet *up = __make_udptl_packet(piece, seq); g_hash_table_insert(tg->udptl_fec, GUINT_TO_POINTER(seq), up); } int t38_gateway_input_udptl(struct t38_gateway *tg, const str *buf) { const char *err = NULL; struct udptl_packet *up = NULL; if (!tg) return 0; if (!buf || !buf->len) return 0; if (buf->len < 4) { ilog(LOG_INFO | LOG_FLAG_LIMIT, "Ignoring short UDPTL packet (%zu bytes)", buf->len); return 0; } ilog(LOG_DEBUG, "Processing %zu UDPTL bytes", buf->len); str s = *buf; str piece; // get seq num uint16_t seq; if (str_shift_ret(&s, 2, &piece)) goto err_nolock; seq = ntohs(*((uint16_t *) piece.s)); err = "Invalid primary UDPTL packet"; if (__get_udptl(&piece, &s)) goto err; ilog(LOG_DEBUG, "Received primary IFP packet, len %zu, seq %i", piece.len, seq); str primary = piece; up = __make_udptl_packet(&primary, seq); err = "Error correction mode byte missing"; if (str_shift_ret(&s, 1, &piece)) goto err_nolock; char fec = piece.s[0]; mutex_lock(&tg->lock); long diff = seq - up->p.seq; if (diff > 100 || diff < -100) { ilog(LOG_INFO | LOG_FLAG_LIMIT, "Ignoring UDPTL packet with wildly off seq (%u <> %u)", (unsigned int) seq, (unsigned int) up->p.seq); err = NULL; goto err; } // XXX possible short path here without going through the sequencer int ret = packet_sequencer_insert(&tg->sequencer, &up->p); if (ret < 0) { // main seq is dupe - everything else must be dupe too __udptl_packet_free(up); goto out; } up = NULL; if (!(fec & 0x80)) { // packet redundancy if (packet_sequencer_next_ok(&tg->sequencer)) goto seq_ok; // process EC packets as well as something's wrong ssize_t num_packets = __get_udptl_len(&s); err = "Invalid number of EC packets"; if (num_packets < 0 || num_packets > 100) goto err; for (int i = 0; i < num_packets; i++) { if (__get_udptl(&piece, &s)) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Invalid UDPTL error correction packet at index %i", i); break; } // ignore zero-length packets if (!piece.len) continue; ilog(LOG_DEBUG, "Received secondary IFP packet, len %zu, seq %i", piece.len, seq - 1 - i); up = __make_udptl_packet(&piece, seq - 1 - i); packet_sequencer_insert(&tg->sequencer, &up->p); up = NULL; // can we stop here? if (packet_sequencer_next_ok(&tg->sequencer)) break; } } else { // FEC // start by saving the new packet __fec_save(tg, &primary, seq); if (packet_sequencer_next_ok(&tg->sequencer)) goto seq_ok; // process all FEC packets err = "Invalid number of FEC packets"; if (str_shift_ret(&s, 2, &piece)) goto err; if (piece.s[0] != 0x01) goto err; unsigned int span = piece.s[1]; if (span <= 0 || span >= 0x80) goto err; ssize_t entries = __get_udptl_len(&s); if (entries < 0 || entries > 100) goto err; // first seq we can possibly recover uint16_t seq_start = seq - span * entries; while (entries) { // get our entry if (__get_udptl(&piece, &s)) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Invalid UDPTL error correction packet at index %i", seq_start); break; } // check each of the entries covered by `span` for (int i = 0; i < span; i++) { uint16_t seq_fec = seq_start + i * span; // skip if we already know this packet if (g_hash_table_lookup(tg->udptl_fec, GUINT_TO_POINTER(seq_fec))) continue; // can we recover it? we need all other packets from the series GString *rec_s = g_string_new(""); int complete = 1; for (int j = 0; j < span; j++) { uint16_t seq_rec = seq_start + i * span; if (seq_rec == seq_fec) continue; struct udptl_packet *recp = g_hash_table_lookup(tg->udptl_fec, GUINT_TO_POINTER(seq_rec)); if (!recp) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Unable to recover UDPTL FEC " "packet with seq %i due to missing seq %i", seq_fec, seq_rec); complete = 0; break; } // XOR in packet for (size_t k = 0; k < recp->s->len; k++) rec_s->str[k] ^= recp->s->s[k]; } if (complete) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Recovered UDPTL " "packet with seq %i from FEC", seq_fec); str rec_str = STR_INIT_GS(rec_s); __fec_save(tg, &rec_str, seq_fec); up = __make_udptl_packet(&rec_str, seq_fec); packet_sequencer_insert(&tg->sequencer, &up->p); up = NULL; } g_string_free(rec_s, TRUE); // no point in continuing further: one packet was missing, which means // that no other packet in this span can be recovered break; } // proceed to next entry entries--; seq_start++; } } seq_ok:; t38_core_state_t *t38 = t38_gateway_get_t38_core_state(tg->gw); // process any packets that we can while (1) { up = packet_sequencer_next_packet(&tg->sequencer); if (!up) break; ilog(LOG_DEBUG, "Processing %zu IFP bytes, seq %i", up->s->len, up->p.seq); t38_core_rx_ifp_packet(t38, (uint8_t *) up->s->s, up->s->len, up->p.seq); __udptl_packet_free(up); } out: mutex_unlock(&tg->lock); return 0; err: mutex_unlock(&tg->lock); err_nolock: if (err) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Failed to process UDPTL/T.38/IFP packet: %s", err); if (up) __udptl_packet_free(up); return -1; } void t38_gateway_stop(struct t38_gateway *tg) { if (!tg) return; if (tg->pcm_player) media_player_stop(tg->pcm_player); if (tg->t38_media) tg->t38_media->sdp_attr_print = sdp_insert_media_attributes; } void t38_init(void) { my_span_mh(NULL); } #endif rtpengine-mr12.5.1.22/daemon/tcp_listener.c000066400000000000000000000131611474347554000204750ustar00rootroot00000000000000#include "tcp_listener.h" #include #include "poller.h" #include "obj.h" #include "socket.h" #include "helpers.h" #include "log.h" #include "streambuf.h" #include "media_socket.h" #include "log_funcs.h" struct tcp_listener_callback { struct obj obj; tcp_listener_callback_t func; socket_t *ul; struct obj *p; }; struct streambuf_callback { struct obj obj; streambuf_callback_t newconn_func; streambuf_callback_t newdata_func; streambuf_callback_t closed_func; struct streambuf_listener *listener; struct obj *parent; }; TYPED_DIRECT_FUNCS(tcp_direct_hash, tcp_direct_eq, struct streambuf_stream) TYPED_GHASHTABLE_IMPL(tcp_streams_ht, tcp_direct_hash, tcp_direct_eq, NULL, NULL) static void tcp_listener_incoming(int fd, void *p) { struct tcp_listener_callback *cb = p; int ret; char addr[64]; socket_t *listener; socket_t newsock; listener = cb->ul; for (;;) { ret = listener->family->accept(listener, &newsock); if (ret == -1) { if (errno == EINTR) continue; if (errno != EWOULDBLOCK && errno != EAGAIN) ilog(LOG_WARNING, "Error accepting TCP connection: %s", strerror(errno)); return; } nonblock(newsock.fd); endpoint_print(&newsock.remote, addr, sizeof(addr)); cb->func(cb->p, &newsock, addr, listener); log_info_reset(); } } static void tcp_listener_closed(int fd, void *p) { if (!rtpe_shutdown) abort(); } static void __tlc_free(void *p) { struct tcp_listener_callback *cb = p; obj_put_o(cb->p); } static int tcp_listener_init(socket_t *sock, const endpoint_t *ep, tcp_listener_callback_t func, struct obj *obj) { struct poller_item i; struct tcp_listener_callback *cb; cb = obj_alloc("tcp_listener_callback", sizeof(*cb), __tlc_free); cb->func = func; cb->p = obj_get_o(obj); cb->ul = sock; if (open_socket(sock, SOCK_STREAM, ep->port, &ep->address)) goto fail; if (sock->family->listen(sock, 5)) goto fail; ZERO(i); i.fd = sock->fd; i.closed = tcp_listener_closed; i.readable = tcp_listener_incoming; i.obj = &cb->obj; if (!rtpe_poller_add_item(rtpe_control_poller, &i)) goto fail; obj_put(cb); return 0; fail: close_socket(sock); obj_put(cb); return -1; } static void streambuf_stream_free(void *p) { struct streambuf_stream *s = p; streambuf_destroy(s->inbuf); streambuf_destroy(s->outbuf); obj_put(s->cb); obj_put_o(s->parent); free(s->addr); } static void streambuf_stream_closed(int fd, void *p) { struct streambuf_stream *s = p; if (s->sock.fd == -1) return; if (s->cb->closed_func) s->cb->closed_func(s); struct streambuf_listener *l = s->listener; mutex_lock(&l->lock); bool ret = t_hash_table_remove(l->streams, s); mutex_unlock(&l->lock); rtpe_poller_del_item(rtpe_control_poller, s->sock.fd); reset_socket(&s->sock); if (ret) obj_put(s); } static void streambuf_stream_readable(int fd, void *p) { struct streambuf_stream *s = p; int ret = streambuf_readable(s->inbuf); if (ret == -1) goto close; s->cb->newdata_func(s); if (ret == -2) goto close; release_closed_sockets(); return; close: streambuf_stream_closed(fd, s); } static void streambuf_stream_writeable(int fd, void *p) { struct streambuf_stream *s = p; if (streambuf_writeable(s->outbuf)) streambuf_stream_closed(fd, s); } static void streambuf_listener_newconn(struct obj *p, socket_t *newsock, char *addr, socket_t *listener_sock) { struct streambuf_callback *cb = (void *) p; struct streambuf_stream *s; struct streambuf_listener *listener; struct poller_item i; listener = cb->listener; s = obj_alloc0("streambuf_stream", sizeof(*s), streambuf_stream_free); s->sock = *newsock; s->inbuf = streambuf_new(rtpe_control_poller, newsock->fd); s->outbuf = streambuf_new(rtpe_control_poller, newsock->fd); s->listener = listener; s->cb = obj_get(cb); s->parent = obj_get_o(cb->parent); s->addr = strdup(addr); ZERO(i); i.fd = newsock->fd; i.closed = streambuf_stream_closed; i.readable = streambuf_stream_readable; i.writeable = streambuf_stream_writeable; i.obj = &s->obj; if (cb->newconn_func) cb->newconn_func(s); obj_hold(s); mutex_lock(&listener->lock); t_hash_table_insert(listener->streams, s, s); // hand over ref mutex_unlock(&listener->lock); if (!rtpe_poller_add_item(rtpe_control_poller, &i)) goto fail; obj_put(s); return; fail: mutex_lock(&listener->lock); bool ret = t_hash_table_remove(listener->streams, s); mutex_unlock(&listener->lock); if (ret) obj_put(s); obj_put(s); } static void __sb_free(void *p) { struct streambuf_callback *cb = p; obj_put_o(cb->parent); } int streambuf_listener_init(struct streambuf_listener *listener, const endpoint_t *ep, streambuf_callback_t newconn_func, streambuf_callback_t newdata_func, streambuf_callback_t closed_func, struct obj *obj) { struct streambuf_callback *cb; ZERO(*listener); mutex_init(&listener->lock); listener->streams = tcp_streams_ht_new(); cb = obj_alloc("streambuf_callback", sizeof(*cb), __sb_free); cb->newconn_func = newconn_func; cb->newdata_func = newdata_func; cb->closed_func = closed_func; cb->parent = obj_get_o(obj); cb->listener = listener; if (tcp_listener_init(&listener->listener, ep, streambuf_listener_newconn, &cb->obj)) goto fail; obj_put(cb); return 0; fail: obj_put(cb); return -1; } void streambuf_listener_shutdown(struct streambuf_listener *listener) { if (!listener) return; rtpe_poller_del_item(rtpe_control_poller, listener->listener.fd); reset_socket(&listener->listener); t_hash_table_destroy_ptr(&listener->streams); } void streambuf_stream_close(struct streambuf_stream *s) { streambuf_stream_closed(s->sock.fd, s); } void streambuf_stream_shutdown(struct streambuf_stream *s) { shutdown(s->sock.fd, SHUT_WR); } rtpengine-mr12.5.1.22/daemon/timerthread.c000066400000000000000000000241731474347554000203170ustar00rootroot00000000000000#include "timerthread.h" #include "helpers.h" #include "log_funcs.h" #include "poller.h" static int tt_obj_cmp(const void *a, const void *b) { const struct timerthread_obj *A = a, *B = b; return timeval_cmp_ptr(&A->next_check, &B->next_check); } static void timerthread_thread_init(struct timerthread_thread *tt, struct timerthread *parent) { tt->tree = g_tree_new(tt_obj_cmp); mutex_init(&tt->lock); cond_init(&tt->cond); tt->parent = parent; ZERO(tt->next_wake); tt->obj = NULL; } void timerthread_init(struct timerthread *tt, unsigned int num, void (*func)(void *)) { tt->func = func; tt->num_threads = num; tt->threads = g_malloc(sizeof(*tt->threads) * num); for (unsigned int i = 0; i < num; i++) timerthread_thread_init(&tt->threads[i], tt); } static int __tt_put_all(void *k, void *d, void *p) { struct timerthread_obj *tto = d; //struct timerthread *tt = p; obj_put(tto); return FALSE; } static void timerthread_thread_destroy(struct timerthread_thread *tt) { g_tree_foreach(tt->tree, __tt_put_all, tt); g_tree_destroy(tt->tree); if (tt->obj) obj_put(tt->obj); mutex_destroy(&tt->lock); } void timerthread_free(struct timerthread *tt) { for (unsigned int i = 0; i < tt->num_threads; i++) timerthread_thread_destroy(&tt->threads[i]); g_free(tt->threads); } static void timerthread_run(void *p) { struct timerthread_thread *tt = p; struct timerthread *parent = tt->parent; struct thread_waker waker = { .lock = &tt->lock, .cond = &tt->cond }; thread_waker_add(&waker); mutex_lock(&tt->lock); while (!rtpe_shutdown) { gettimeofday(&rtpe_now, NULL); long long sleeptime = 10000000; // find the first element if we haven't determined it yet struct timerthread_obj *tt_obj = tt->obj; if (!tt_obj) { tt_obj = g_tree_find_first(tt->tree, NULL, NULL); if (!tt_obj) goto sleep_now; // immediately steal reference // XXX ideally we would have a tree_steal_first() function g_tree_remove(tt->tree, tt_obj); } // scheduled to run? if not, then we remember this object/reference and go to sleep sleeptime = timeval_diff(&tt_obj->next_check, &rtpe_now); if (sleeptime > 0) { tt->obj = tt_obj; goto sleep; } // pretend we're running exactly at the scheduled time rtpe_now = tt_obj->next_check; ZERO(tt_obj->next_check); tt_obj->last_run = rtpe_now; ZERO(tt->next_wake); tt->obj = NULL; mutex_unlock(&tt->lock); // run and release parent->func(tt_obj); obj_put(tt_obj); log_info_reset(); uring_thread_loop(); mutex_lock(&tt->lock); continue; sleep: /* figure out how long we should sleep */ sleeptime = MIN(10000000, sleeptime); sleep_now:; struct timeval tv = rtpe_now; timeval_add_usec(&tv, sleeptime); tt->next_wake = tv; cond_timedwait(&tt->cond, &tt->lock, &tv); } mutex_unlock(&tt->lock); thread_waker_del(&waker); } void timerthread_launch(struct timerthread *tt, const char *scheduler, int prio, const char *name) { for (unsigned int i = 0; i < tt->num_threads; i++) thread_create_detach_prio(timerthread_run, &tt->threads[i], scheduler, prio, name); } void timerthread_obj_schedule_abs_nl(struct timerthread_obj *tt_obj, const struct timeval *tv) { if (!tt_obj) return; struct timerthread_thread *tt = tt_obj->thread; //ilog(LOG_DEBUG, "scheduling timer object at %llu.%06lu", (unsigned long long) tv->tv_sec, //(unsigned long) tv->tv_usec); if (tt_obj->next_check.tv_sec && timeval_cmp(&tt_obj->next_check, tv) <= 0) return; /* already scheduled sooner */ if (!g_tree_remove(tt->tree, tt_obj)) { if (tt->obj == tt_obj) tt->obj = NULL; else obj_hold(tt_obj); /* if it wasn't removed, we make a new reference */ } tt_obj->next_check = *tv; g_tree_insert(tt->tree, tt_obj, tt_obj); // need to wake the thread? if (tt->next_wake.tv_sec && timeval_cmp(tv, &tt->next_wake) < 0) { // make sure we can get picked first: move pre-picked object back into tree if (tt->obj && tt->obj != tt_obj) { g_tree_insert(tt->tree, tt->obj, tt->obj); tt->obj = NULL; } cond_signal(&tt->cond); } } void timerthread_obj_deschedule(struct timerthread_obj *tt_obj) { if (!tt_obj) return; struct timerthread_thread *tt = tt_obj->thread; if (!tt) return; mutex_lock(&tt->lock); if (!tt_obj->next_check.tv_sec) goto nope; /* already descheduled */ gboolean ret = g_tree_remove(tt->tree, tt_obj); if (!ret) { if (tt->obj == tt_obj) { tt->obj = NULL; ret = TRUE; } } ZERO(tt_obj->next_check); if (ret) obj_put(tt_obj); nope: mutex_unlock(&tt->lock); } static int timerthread_queue_run_one(struct timerthread_queue *ttq, struct timerthread_queue_entry *ttqe, void (*run_func)(struct timerthread_queue *, void *)) { if (ttqe->when.tv_sec && timeval_cmp(&ttqe->when, &rtpe_now) > 0) { if(timeval_diff(&ttqe->when, &rtpe_now) > 1000) // not to queue packet less than 1ms return -1; // not yet } run_func(ttq, ttqe); return 0; } void timerthread_queue_run(void *ptr) { struct timerthread_queue *ttq = ptr; //ilog(LOG_DEBUG, "running timerthread_queue"); struct timeval next_send = {0,}; mutex_lock(&ttq->lock); while (g_tree_nnodes(ttq->entries)) { struct timerthread_queue_entry *ttqe = g_tree_find_first(ttq->entries, NULL, NULL); assert(ttqe != NULL); g_tree_remove(ttq->entries, ttqe); mutex_unlock(&ttq->lock); int ret = timerthread_queue_run_one(ttq, ttqe, ttq->run_later_func); mutex_lock(&ttq->lock); if (!ret) continue; // couldn't send the last one. remember time to schedule g_tree_insert(ttq->entries, ttqe, ttqe); next_send = ttqe->when; break; } mutex_unlock(&ttq->lock); if (next_send.tv_sec) timerthread_obj_schedule_abs(&ttq->tt_obj, &next_send); } static int ttqe_free_all(void *k, void *v, void *d) { struct timerthread_queue *ttq = d; if (ttq->entry_free_func) ttq->entry_free_func(k); return FALSE; } static void __timerthread_queue_free(void *p) { struct timerthread_queue *ttq = p; g_tree_foreach(ttq->entries, ttqe_free_all, ttq); g_tree_destroy(ttq->entries); mutex_destroy(&ttq->lock); if (ttq->free_func) ttq->free_func(p); } static int ttqe_compare(const void *a, const void *b) { const struct timerthread_queue_entry *t1 = a; const struct timerthread_queue_entry *t2 = b; int ret = timeval_cmp_zero(&t1->when, &t2->when); if (ret) return ret; if (t1->idx < t2->idx) return -1; if (t1->idx == t2->idx) return 0; return 1; } void *timerthread_queue_new(const char *type, size_t size, struct timerthread *tt, void (*run_now_func)(struct timerthread_queue *, void *), void (*run_later_func)(struct timerthread_queue *, void *), void (*free_func)(void *), void (*entry_free_func)(void *)) { struct timerthread_queue *ttq = obj_alloc0(type, size, __timerthread_queue_free); ttq->type = type; ttq->tt_obj.tt = tt; assert(tt->func == timerthread_queue_run); ttq->run_now_func = run_now_func; ttq->run_later_func = run_later_func; if (!ttq->run_later_func) ttq->run_later_func = run_now_func; ttq->free_func = free_func; ttq->entry_free_func = entry_free_func; mutex_init(&ttq->lock); ttq->entries = g_tree_new(ttqe_compare); return ttq; } int __ttqe_find_last_idx(const void *a, const void *b) { const struct timerthread_queue_entry *ttqe_a = a; void **data = (void **) b; const struct timerthread_queue_entry *ttqe_b = data[0]; int ret = timeval_cmp(&ttqe_b->when, &ttqe_a->when); if (ret) return ret; // same timestamp. track highest seen idx if (GPOINTER_TO_UINT(data[1]) < ttqe_a->idx) data[1] = GUINT_TO_POINTER(ttqe_a->idx); return 1; // and continue to higher idx } void timerthread_queue_push(struct timerthread_queue *ttq, struct timerthread_queue_entry *ttqe) { // can we send immediately? if (ttq->run_now_func && timerthread_queue_run_one(ttq, ttqe, ttq->run_now_func) == 0) return; // queue for sending //ilog(LOG_DEBUG, "queuing up %s object for processing at %lu.%06u", //ttq->type, //(unsigned long) ttqe->when.tv_sec, //(unsigned int) ttqe->when.tv_usec); // XXX recover log line fields // struct rtp_header *rh = (void *) cp->s.s; // ilog(LOG_DEBUG, "queuing up packet for delivery at %lu.%06u (RTP seq %u TS %u)", // (unsigned long) cp->to_send.tv_sec, // (unsigned int) cp->to_send.tv_usec, // ntohs(rh->seq_num), // ntohl(rh->timestamp)); ttqe->idx = 0; mutex_lock(&ttq->lock); // check for most common case: no timestamp collision exists if (!g_tree_lookup(ttq->entries, ttqe)) ; else { // something else exists with the same timestamp. find the highest idx void *data[2]; data[0] = ttqe; data[1] = 0; g_tree_search(ttq->entries, __ttqe_find_last_idx, data); ttqe->idx = GPOINTER_TO_UINT(data[1] + 1); } // this hands over ownership of cp, so we must copy the timeval out struct timeval tv_send = ttqe->when; g_tree_insert(ttq->entries, ttqe, ttqe); struct timerthread_queue_entry *first_ttqe = g_tree_find_first(ttq->entries, NULL, NULL); mutex_unlock(&ttq->lock); // first packet in? we're probably not scheduled yet if (first_ttqe == ttqe) timerthread_obj_schedule_abs(&ttq->tt_obj, &tv_send); } static int ttqe_ptr_match(const void *ent, const void *ptr) { const struct timerthread_queue_entry *ttqe = ent; return ttqe->source == ptr; } unsigned int timerthread_queue_flush(struct timerthread_queue *ttq, void *ptr) { if (!ttq) return 0; mutex_lock(&ttq->lock); unsigned int num = 0; GQueue matches = G_QUEUE_INIT; g_tree_find_all(&matches, ttq->entries, ttqe_ptr_match, ptr); while (matches.length) { struct timerthread_queue_entry *ttqe = g_queue_pop_head(&matches); g_tree_remove(ttq->entries, ttqe); if (ttq->entry_free_func) ttq->entry_free_func(ttqe); num++; } mutex_unlock(&ttq->lock); return num; } void timerthread_queue_flush_data(void *ptr) { struct timerthread_queue *ttq = ptr; //ilog(LOG_DEBUG, "timerthread_queue_flush_data"); mutex_lock(&ttq->lock); while (g_tree_nnodes(ttq->entries)) { struct timerthread_queue_entry *ttqe = g_tree_find_first(ttq->entries, NULL, NULL); assert(ttqe != NULL); g_tree_remove(ttq->entries, ttqe); mutex_unlock(&ttq->lock); ttq->run_later_func(ttq, ttqe); mutex_lock(&ttq->lock); } mutex_unlock(&ttq->lock); } rtpengine-mr12.5.1.22/daemon/udp_listener.c000066400000000000000000000045651474347554000205070ustar00rootroot00000000000000#include "udp_listener.h" #include #include #include #include #include #include #include "poller.h" #include "helpers.h" #include "str.h" #include "log.h" #include "obj.h" #include "socket.h" #include "log_funcs.h" #include "uring.h" struct udp_listener_callback { struct obj obj; udp_listener_callback_t func; socket_t *ul; struct obj *p; }; static void udp_listener_closed(int fd, void *p) { if (!rtpe_shutdown) abort(); } static void udp_listener_incoming(int fd, void *p) { struct udp_listener_callback *cb = p; int len; struct udp_buffer *udp_buf = NULL; for (;;) { if (!udp_buf) { // initialise if we need to udp_buf = obj_alloc0("udp_buffer", sizeof(*udp_buf), NULL); udp_buf->str.s = udp_buf->buf + RTP_BUFFER_HEAD_ROOM; udp_buf->listener = cb->ul; } len = socket_recvfrom_to(udp_buf->listener, udp_buf->str.s, MAX_UDP_LENGTH, &udp_buf->sin, &udp_buf->local_addr); if (len < 0) { if (errno == EINTR) continue; if (errno != EWOULDBLOCK && errno != EAGAIN) ilog(LOG_WARNING, "Error reading from UDP socket"); break; } udp_buf->str.s[len] = '\0'; endpoint_print(&udp_buf->sin, udp_buf->addr, sizeof(udp_buf->addr)); udp_buf->str.len = len; cb->func(cb->p, udp_buf); // we can re-use the object if only one reference (ours) is left. this is not // totally race-free, but in the worst case we end up re-allocating another // new object when we didn't need to. if (udp_buf->obj.ref != 1) { obj_put(udp_buf); udp_buf = NULL; } release_closed_sockets(); log_info_reset(); } obj_put(udp_buf); } static void __ulc_free(void *p) { struct udp_listener_callback *cb = p; obj_put_o(cb->p); } int udp_listener_init(socket_t *sock, const endpoint_t *ep, udp_listener_callback_t func, struct obj *obj) { struct poller_item i; struct udp_listener_callback *cb; cb = obj_alloc("udp_listener_callback", sizeof(*cb), __ulc_free); cb->func = func; cb->p = obj_get_o(obj); cb->ul = sock; if (open_socket(sock, SOCK_DGRAM, ep->port, &ep->address)) goto fail; socket_pktinfo(sock); ZERO(i); i.fd = sock->fd; i.closed = udp_listener_closed; i.readable = udp_listener_incoming; i.obj = &cb->obj; if (!rtpe_poller_add_item(rtpe_control_poller, &i)) goto fail; obj_put(cb); return 0; fail: close_socket(sock); obj_put(cb); return -1; } rtpengine-mr12.5.1.22/daemon/websocket.c000066400000000000000000001067561474347554000200050ustar00rootroot00000000000000#include "websocket.h" #include #include #include #include "log.h" #include "main.h" #include "str.h" #include "cli.h" #include "control_ng.h" #include "statistics.h" #include "janus.h" struct websocket_message; struct websocket_conn; struct websocket_output { GString *str; size_t str_done; enum lws_write_protocol protocol; int http_status; const char *content_type; ssize_t content_length; }; TYPED_DIRECT_FUNCS(janus_session_hash, janus_session_eq, struct janus_session) TYPED_GHASHTABLE(janus_sessions_ht, struct janus_session, struct janus_session, janus_session_hash, janus_session_eq, NULL, NULL) TYPED_GQUEUE(websocket_message, struct websocket_message) TYPED_GQUEUE(websocket_output, struct websocket_output) struct websocket_conn { // used in the single threaded libwebsockets context struct lws *wsi; endpoint_t endpoint; char *uri; // for websocket connections only struct websocket_message *wm; // while in progress // multithreaded message processing mutex_t lock; unsigned int jobs; websocket_message_q messages; cond_t cond; janus_sessions_ht janus_sessions; // output buffer - also protected by lock websocket_output_q output_q; }; struct websocket_ng_buf { struct obj obj; GString *body; char addr[64]; str cmd; endpoint_t endpoint; }; static GQueue websocket_vhost_configs; static struct lws_context *websocket_context; static GThreadPool *websocket_threads; static mutex_t websocket_callback_lock = MUTEX_STATIC_INIT; static mutex_t websocket_service_lock = MUTEX_STATIC_INIT; static struct websocket_message *websocket_message_new(struct websocket_conn *wc) { struct websocket_message *wm = g_slice_alloc0(sizeof(*wm)); wm->body = g_string_new(""); wm->wc = wc; return wm; } static void websocket_message_free(struct websocket_message **wm) { if ((*wm)->body) g_string_free((*wm)->body, TRUE); if ((*wm)->uri) free((*wm)->uri); g_slice_free1(sizeof(**wm), *wm); *wm = NULL; } static struct websocket_output *websocket_output_new(void) { struct websocket_output *wo = g_slice_alloc0(sizeof(*wo)); // str remains NULL -> unused output slot return wo; } static void websocket_output_free(struct websocket_output *wo) { if (wo->str) g_string_free(wo->str, TRUE); g_slice_free1(sizeof(*wo), wo); } // appends to output buffer without triggering a response - unlocked static void __websocket_queue_raw(struct websocket_conn *wc, const char *msg, size_t len) { struct websocket_output *wo = t_queue_peek_tail(&wc->output_q); if (!wo->str) { wo->str = g_string_new(""); // allocate pre-buffer g_string_set_size(wo->str, LWS_PRE); wo->str_done = LWS_PRE; } if (msg && len) g_string_append_len(wo->str, msg, len); } // appends to output buffer without triggering a response void websocket_queue_raw(struct websocket_conn *wc, const char *msg, size_t len) { LOCK(&wc->lock); __websocket_queue_raw(wc, msg, len); } // num bytes in output buffer size_t websocket_queue_len(struct websocket_conn *wc) { LOCK(&wc->lock); size_t ret = 0; for (__auto_type l = wc->output_q.head; l; l = l->next) { struct websocket_output *wo = l->data; ret += (wo->str->len - LWS_PRE); } return ret; } // adds data to output buffer (can be null) and optionally triggers specified response void websocket_write_raw(struct websocket_conn *wc, const char *msg, size_t len, enum lws_write_protocol protocol, bool done) { mutex_lock(&wc->lock); __websocket_queue_raw(wc, msg, len); struct websocket_output *wo = t_queue_peek_tail(&wc->output_q); wo->protocol = protocol; t_queue_push_tail(&wc->output_q, websocket_output_new()); mutex_unlock(&wc->lock); if (done) { // Sadly lws_callback_on_writable() doesn't do any internal // locking, therefore we must protect it against a concurrently // running lws_service(), as well as against other threads // invoking lws_callback_on_writable(). // // Acquire the callback lock first, which is normally unlocked, // then wake up the service thread and try to break out of // lws_service(). The service thread holds the service lock // while lws_service() is executing and releases it as soon as // lws_service() is done. We therefore try to acquire the // service lock here, which blocks us until lws_service() is // actually done. At this point the service thread will try to // acquire the callback lock, which is still held by us here, // and so the service thread will block until we are done // calling lws_callback_on_writable(). Finally we release both // locks, which allows the service thread to resume // lws_service(). // // The suggested approach of using // LWS_CALLBACK_EVENT_WAIT_CANCELLED together with a queue and // then calling lws_callback_on_writable() from the service // thread is not usable as libwebsockets 2.0 doesn't support // LWS_CALLBACK_EVENT_WAIT_CANCELLED. mutex_lock(&websocket_callback_lock); lws_cancel_service(websocket_context); mutex_lock(&websocket_service_lock); lws_callback_on_writable(wc->wsi); mutex_unlock(&websocket_service_lock); mutex_unlock(&websocket_callback_lock); } } // adds data to output buffer (can be null) and triggers specified response: http or binary websocket void websocket_write_http_len(struct websocket_conn *wc, const char *msg, size_t len, bool done) { websocket_write_raw(wc, msg, len, LWS_WRITE_HTTP, done); } void websocket_write_http(struct websocket_conn *wc, const char *msg, bool done) { websocket_write_http_len(wc, msg, msg ? strlen(msg) : 0, done); } void websocket_write_text(struct websocket_conn *wc, const char *msg, bool done) { websocket_write_raw(wc, msg, strlen(msg), LWS_WRITE_TEXT, done); } void websocket_write_binary(struct websocket_conn *wc, const char *msg, size_t len, bool done) { websocket_write_raw(wc, msg, len, LWS_WRITE_BINARY, done); } void websocket_write_next(struct websocket_conn *wc) { LOCK(&wc->lock); t_queue_push_tail(&wc->output_q, websocket_output_new()); } static const char *websocket_echo_process(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Returning %lu bytes websocket echo from %s", (unsigned long) wm->body->len, endpoint_print_buf(&wm->wc->endpoint)); websocket_write_binary(wm->wc, wm->body->str, wm->body->len, true); return NULL; } static void websocket_message_push(struct websocket_conn *wc, websocket_message_func_t func) { ilogs(http, LOG_DEBUG, "Adding HTTP/WS message to processing queue"); LOCK(&wc->lock); struct websocket_message *wm = wc->wm; assert(wm != NULL); wm->func = func; t_queue_push_tail(&wc->messages, wm); wc->jobs++; g_thread_pool_push(websocket_threads, wc, NULL); wc->wm = websocket_message_new(wc); } static void websocket_process(void *p, void *up) { struct websocket_conn *wc = p; mutex_lock(&wc->lock); struct websocket_message *wm = t_queue_pop_head(&wc->messages); mutex_unlock(&wc->lock); assert(wm != NULL); gettimeofday(&rtpe_now, NULL); const char *err = wm->func(wm); // this may trigger a cleanup/free in another thread, which will then block until our // job count has been decremented websocket_message_free(&wm); mutex_lock(&wc->lock); assert(wc->jobs >= 1); wc->jobs--; cond_signal(&wc->cond); mutex_unlock(&wc->lock); if (err) ilogs(http, LOG_ERR, "Error while processing HTTP/WS message: %s", err); } static const char *__websocket_write_http_response(struct websocket_conn *wc, int status, const char *content_type, ssize_t content_length) { uint8_t buf[LWS_PRE + 2048], *start = &buf[LWS_PRE], *p = start, *end = &buf[sizeof(buf) - LWS_PRE - 1]; if (lws_add_http_header_status(wc->wsi, status, &p, end)) return "Failed to add HTTP status"; if (content_type) if (lws_add_http_header_by_token(wc->wsi, WSI_TOKEN_HTTP_CONTENT_TYPE, (const unsigned char *) content_type, strlen(content_type), &p, end)) return "Failed to add content-type"; if (content_length >= 0) if (lws_add_http_header_content_length(wc->wsi, content_length, &p, end)) return "Failed to add HTTP headers to response"; if (lws_add_http_header_by_name(wc->wsi, (unsigned char *) "Access-Control-Allow-Origin:", (unsigned char *) "*", 1, &p, end)) return "Failed to add CORS header"; if (lws_add_http_header_by_name(wc->wsi, (unsigned char *) "Access-Control-Max-Age:", (unsigned char *) "86400", 5, &p, end)) return "Failed to add CORS header"; if (lws_add_http_header_by_name(wc->wsi, (unsigned char *) "Access-Control-Allow-Methods:", (unsigned char *) "GET, POST", 9, &p, end)) return "Failed to add CORS header"; if (lws_add_http_header_by_name(wc->wsi, (unsigned char *) "Access-Control-Allow-Headers:", (unsigned char *) "Content-Type", 12, &p, end)) return "Failed to add CORS header"; if (lws_finalize_http_header(wc->wsi, &p, end)) return "Failed to write HTTP headers"; size_t len = p - start; if (lws_write(wc->wsi, start, len, LWS_WRITE_HTTP_HEADERS) != len) return "Failed to write HTTP headers"; return NULL; } static int websocket_dequeue(struct websocket_conn *wc) { if (!wc) return 0; int is_http = 0; mutex_lock(&wc->lock); struct websocket_output *wo; struct lws *wsi = wc->wsi; while ((wo = t_queue_pop_head(&wc->output_q))) { // used buffer slot? if (!wo->str) goto next; if (wo->http_status) { const char *err = __websocket_write_http_response(wc, wo->http_status, wo->content_type, wo->content_length); if (err) { ilogs(http, LOG_ERR, "Failed to write HTTP response headers: %s", err); goto next; } } // allocate post-buffer g_string_set_size(wo->str, wo->str->len + LWS_SEND_BUFFER_POST_PADDING); size_t to_send = wo->str->len - wo->str_done - LWS_SEND_BUFFER_POST_PADDING; if (to_send) { if (to_send > 10000) ilogs(http, LOG_DEBUG, "Writing %lu bytes to LWS", (unsigned long) to_send); else ilogs(http, LOG_DEBUG, "Writing back to LWS: '%.*s'", (int) to_send, wo->str->str + wo->str_done); size_t ret = lws_write(wsi, (unsigned char *) wo->str->str + wo->str_done, to_send, wo->protocol); if (ret != to_send) ilogs(http, LOG_ERR, "Invalid LWS write: %lu != %lu", (unsigned long) ret, (unsigned long) to_send); wo->str_done += ret; if (wo->protocol == LWS_WRITE_HTTP) is_http = 1; } next: websocket_output_free(wo); } t_queue_push_tail(&wc->output_q, websocket_output_new()); mutex_unlock(&wc->lock); int ret = 0; if (is_http) if (lws_http_transaction_completed(wsi) == 1) // may destroy `wc` ret = -1; return ret; } void websocket_http_response(struct websocket_conn *wc, int status, const char *content_type, ssize_t content_length) { LOCK(&wc->lock); struct websocket_output *wo = t_queue_peek_tail(&wc->output_q); wo->http_status = status; wo->content_type = content_type; wo->content_length = content_length; } void websocket_http_complete(struct websocket_conn *wc, int status, const char *content_type, ssize_t content_length, const char *content) { websocket_http_response(wc, status, content_type, content_length); websocket_write_http(wc, content, true); } static const char *websocket_http_ping(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Respoding to GET /ping"); websocket_http_complete(wm->wc, 200, "text/plain", 5, "pong\n"); return NULL; } TYPED_GHASHTABLE(metric_types_ht, char, void, c_str_hash, c_str_equal, NULL, NULL) static const char *websocket_http_metrics(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Respoding to GET /metrics"); g_autoptr(stats_metric_q) metrics = statistics_gather_metrics(NULL); g_autoptr(GString) outp = g_string_new(""); g_auto(metric_types_ht) metric_types = metric_types_ht_new(); for (__auto_type l = metrics->head; l; l = l->next) { stats_metric *m = l->data; if (!m->label) continue; if (!m->value_short) continue; if (!m->prom_name) continue; if (!t_hash_table_lookup(metric_types, m->prom_name)) { if (m->descr) g_string_append_printf(outp, "# HELP rtpengine_%s %s\n", m->prom_name, m->descr); if (m->prom_type) g_string_append_printf(outp, "# TYPE rtpengine_%s %s\n", m->prom_name, m->prom_type); t_hash_table_insert(metric_types, (void *) m->prom_name, (void *) 0x1); } g_string_append_printf(outp, "rtpengine_%s", m->prom_name); if (m->prom_label) g_string_append_printf(outp, "{%s}", m->prom_label); g_string_append_printf(outp, " %s\n", m->value_short); } websocket_http_complete(wm->wc, 200, "text/plain", outp->len, outp->str); return NULL; } // adds printf string to output buffer without triggering response static void websocket_queue_printf(struct cli_writer *cw, const char *fmt, ...) { va_list va; va_start(va, fmt); char *s = g_strdup_vprintf(fmt, va); va_end(va); websocket_queue_raw(cw->ptr, s, strlen(s)); g_free(s); } static const char *websocket_http_cli(struct websocket_message *wm) { assert(strncmp(wm->uri, "/cli/", 5) == 0); char *uri = wm->uri+5; ilogs(http, LOG_DEBUG, "Respoding to GET /cli/%s", uri); str uri_cmd = STR_INIT(uri); struct cli_writer cw = { .cw_printf = websocket_queue_printf, .ptr = wm->wc, }; cli_handle(&uri_cmd, &cw); size_t len = websocket_queue_len(wm->wc); websocket_http_complete(wm->wc, 200, "text/plain", len, NULL); return NULL; } static const char *websocket_cli_process(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Processing websocket CLI req '%s'", wm->body->str); str uri_cmd = STR_INIT_LEN(wm->body->str, wm->body->len); struct cli_writer cw = { .cw_printf = websocket_queue_printf, .ptr = wm->wc, }; cli_handle(&uri_cmd, &cw); websocket_write_binary(wm->wc, NULL, 0, true); return NULL; } static void websocket_ng_send_ws(str *cookie, str *body, const endpoint_t *sin, const sockaddr_t *from, void *p1) { struct websocket_conn *wc = p1; if (cookie) { websocket_queue_raw(wc, cookie->s, cookie->len); websocket_queue_raw(wc, " ", 1); } websocket_queue_raw(wc, body->s, body->len); websocket_write_binary(wc, NULL, 0, true); } static void websocket_ng_send_http(str *cookie, str *body, const endpoint_t *sin, const sockaddr_t *from, void *p1) { struct websocket_conn *wc = p1; websocket_http_response(wc, 200, "application/x-rtpengine-ng", (cookie ? (cookie->len + 1) : 0) + body->len); if (cookie) { websocket_queue_raw(wc, cookie->s, cookie->len); websocket_queue_raw(wc, " ", 1); } websocket_queue_raw(wc, body->s, body->len); websocket_write_http(wc, NULL, true); } static void __ng_buf_free(void *p) { struct websocket_ng_buf *buf = p; g_string_free(buf->body, TRUE); } static const char *websocket_ng_process_generic(struct websocket_message *wm, __typeof__(control_ng_process) cb) { struct websocket_ng_buf *buf = obj_alloc0("websocket_ng_buf", sizeof(*buf), __ng_buf_free); endpoint_print(&wm->wc->endpoint, buf->addr, sizeof(buf->addr)); ilogs(http, LOG_DEBUG, "Processing websocket NG req from %s", buf->addr); // steal body and initialise buf->body = wm->body; wm->body = g_string_new(""); str_init_len(&buf->cmd, buf->body->str, buf->body->len); buf->endpoint = wm->wc->endpoint; cb(&buf->cmd, &buf->endpoint, buf->addr, NULL, websocket_ng_send_ws, wm->wc, &buf->obj); obj_put(buf); return NULL; } static const char *websocket_ng_process(struct websocket_message *wm) { return websocket_ng_process_generic(wm, control_ng_process); } static const char *websocket_ng_plain_process(struct websocket_message *wm) { return websocket_ng_process_generic(wm, control_ng_process_plain); } static const char *websocket_http_ng_generic(struct websocket_message *wm, __typeof__(control_ng_process) cb) { struct websocket_ng_buf *buf = obj_alloc0("websocket_ng_buf", sizeof(*buf), __ng_buf_free); endpoint_print(&wm->wc->endpoint, buf->addr, sizeof(buf->addr)); ilogs(http, LOG_DEBUG, "Respoding to POST /ng from %s", buf->addr); // steal body and initialise buf->body = wm->body; wm->body = g_string_new(""); str_init_len(&buf->cmd, buf->body->str, buf->body->len); buf->endpoint = wm->wc->endpoint; if (cb(&buf->cmd, &buf->endpoint, buf->addr, NULL, websocket_ng_send_http, wm->wc, &buf->obj)) websocket_http_complete(wm->wc, 600, "text/plain", 6, "error\n"); obj_put(buf); return NULL; } static const char *websocket_http_ng(struct websocket_message *wm) { return websocket_http_ng_generic(wm, control_ng_process); } static const char *websocket_http_ng_plain(struct websocket_message *wm) { return websocket_http_ng_generic(wm, control_ng_process_plain); } static const char *websocket_http_404(struct websocket_message *wm) { ilogs(http, LOG_WARN, "Unhandled HTTP URI: '%s'", wm->uri); websocket_http_complete(wm->wc, 404, "text/plain", 10, "not found\n"); return NULL; } static int websocket_http_get(struct websocket_conn *wc) { struct websocket_message *wm = wc->wm; const char *uri = wm->uri; websocket_message_func_t handler = NULL; ilogs(http, LOG_INFO, "HTTP GET from %s: '%s'", endpoint_print_buf(&wc->endpoint), uri); wm->method = M_GET; if (!strcmp(uri, "/ping")) handler = websocket_http_ping; else if (!strncmp(uri, "/cli/", 5)) handler = websocket_http_cli; else if (!strcmp(uri, "/metrics")) handler = websocket_http_metrics; else if (!strncmp(uri, "/admin/", 7)) handler = websocket_janus_get; else handler = websocket_http_404; websocket_message_push(wc, handler); return 0; } static int websocket_http_post(struct websocket_conn *wc) { struct websocket_message *wm = wc->wm; ilogs(http, LOG_INFO, "HTTP POST from %s: '%s'", endpoint_print_buf(&wc->endpoint), wm->uri); wm->method = M_POST; char ct[64]; if (lws_hdr_total_length(wc->wsi, WSI_TOKEN_HTTP_CONTENT_TYPE) >= sizeof(ct)) { ilogs(http, LOG_WARN, "Too long content-type header, rejecting HTTP POST"); return -1; } if (lws_hdr_copy(wc->wsi, ct, sizeof(ct)-1, WSI_TOKEN_HTTP_CONTENT_TYPE) <= 0) { ilogs(http, LOG_WARN, "Failed to get Content-type header, rejecting HTTP POST"); return -1; } if (lws_hdr_total_length(wc->wsi, WSI_TOKEN_HTTP_CONTENT_LENGTH) <= 0) { ilogs(http, LOG_WARN, "Failed to get Content-length header, rejecting HTTP POST"); return -1; } ilogs(http, LOG_DEBUG, "POST content-type: %s", ct); if (!strcasecmp(ct, "application/json")) wm->content_type = CT_JSON; else if (!strcasecmp(ct, "application/x-rtpengine-ng")) wm->content_type = CT_NG; else ilogs(http, LOG_WARN, "Unsupported content-type '%s'", ct); return 0; } static const char *websocket_http_options_generic(struct websocket_message *wm) { ilogs(http, LOG_DEBUG, "Respoding to OPTIONS"); websocket_http_complete(wm->wc, 200, NULL, 0, NULL); return NULL; } static int websocket_http_options(struct websocket_conn *wc) { struct websocket_message *wm = wc->wm; ilogs(http, LOG_INFO, "HTTP OPTIONS from %s: '%s'", endpoint_print_buf(&wc->endpoint), wm->uri); wm->method = M_OPTIONS; websocket_message_push(wc, websocket_http_options_generic); return 0; } static int websocket_http_body(struct websocket_conn *wc, const char *body, size_t len) { struct websocket_message *wm = wc->wm; const char *uri = wm->uri; websocket_message_func_t handler = NULL; if (wm->method != M_POST) { ilogs(http, LOG_WARN, "Rejecting HTTP body on unsupported method"); return -1; } if (len) { ilogs(http, LOG_DEBUG, "HTTP body: %lu bytes", (unsigned long) len); g_string_append_len(wm->body, body, len); return 0; } ilogs(http, LOG_DEBUG, "HTTP body complete: '%.*s'", (int) wm->body->len, wm->body->str); if (!strcmp(uri, "/ng") && wm->method == M_POST && wm->content_type == CT_NG) handler = websocket_http_ng; else if (!strcmp(uri, "/ng-plain") && wm->method == M_POST && (wm->content_type == CT_NG || wm->content_type == CT_JSON)) handler = websocket_http_ng_plain; else if (!strcmp(uri, "/admin") && wm->method == M_POST && wm->content_type == CT_JSON) handler = websocket_janus_process; else if (!strcmp(uri, "/janus") && wm->method == M_POST && wm->content_type == CT_JSON) handler = websocket_janus_process; else if (!strncmp(uri, "/janus/", 7) && wm->method == M_POST && wm->content_type == CT_JSON) handler = websocket_janus_post; else handler = websocket_http_404; websocket_message_push(wc, handler); return 0; } static void websocket_conn_cleanup(struct websocket_conn *wc) { if (!wc) return; if (!wc->wsi) // not initialised return; // wait until all remaining tasks are finished mutex_lock(&wc->lock); while (wc->jobs) cond_wait(&wc->cond, &wc->lock); // lock order constraint: janus_session lock first, websocket_conn lock second: // therefore, remove janus_sessions list from wc, then unlock, then iterate the // list, as janus_detach_websocket locks the session janus_sessions_ht janus_sessions = wc->janus_sessions; wc->janus_sessions = janus_sessions_ht_null(); mutex_unlock(&wc->lock); // detach all Janus sessions if (t_hash_table_is_set(janus_sessions)) { janus_sessions_ht_iter iter; t_hash_table_iter_init(&iter, janus_sessions); struct janus_session *session; while (t_hash_table_iter_next(&iter, &session, NULL)) { janus_detach_websocket(session, wc); obj_put_o((void *) session); } t_hash_table_destroy(janus_sessions); } assert(wc->messages.length == 0); g_string_free(wc->wm->body, TRUE); if (wc->wm->uri) free(wc->wm->uri); g_slice_free1(sizeof(*wc->wm), wc->wm); wc->wm = NULL; t_queue_clear_full(&wc->output_q, websocket_output_free); if (wc->uri) free(wc->uri); mutex_destroy(&wc->lock); memset(wc, 0, sizeof(*wc)); } static int websocket_conn_init(struct lws *wsi, void *p) { struct websocket_conn *wc = p; if (!wc) return -1; memset(wc, 0, sizeof(*wc)); struct sockaddr_storage sa = {0,}; socklen_t sl = sizeof(sa); #if LWS_LIBRARY_VERSION_MAJOR >= 3 struct lws *network_wsi = lws_get_network_wsi(wsi); int fd = lws_get_socket_fd(network_wsi); if (fd == -1) { // SSL? SSL *ssl = lws_get_ssl(network_wsi); if (ssl) { fd = SSL_get_fd(ssl); } else { ilogs(http, LOG_ERR, "Failed to get socket for remote address of HTTP/WS connection"); return -1; } } #else int fd = lws_get_socket_fd(wsi); #endif if (getpeername(fd, (struct sockaddr *) &sa, &sl)) { ilogs(http, LOG_ERR, "Failed to get remote address of HTTP/WS connection (fd %i): %s", fd, strerror(errno)); return -1; } endpoint_parse_sockaddr_storage(&wc->endpoint, &sa); wc->wsi = wsi; mutex_init(&wc->lock); cond_init(&wc->cond); t_queue_init(&wc->messages); t_queue_push_tail(&wc->output_q, websocket_output_new()); wc->wm = websocket_message_new(wc); wc->janus_sessions = janus_sessions_ht_new(); return 0; } void websocket_conn_add_session(struct websocket_conn *wc, struct janus_session *s) { mutex_lock(&wc->lock); if (t_hash_table_is_set(wc->janus_sessions)) { assert(t_hash_table_lookup(wc->janus_sessions, s) == NULL); t_hash_table_insert(wc->janus_sessions, s, s); } mutex_unlock(&wc->lock); } static int websocket_do_http(struct lws *wsi, struct websocket_conn *wc, const char *uri) { ilogs(http, LOG_DEBUG, "HTTP request start: %s", uri); if (websocket_conn_init(wsi, wc) < 0) return 0; wc->wm->uri = strdup(uri); if (lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI)) return websocket_http_get(wc); if (lws_hdr_total_length(wsi, WSI_TOKEN_POST_URI)) return websocket_http_post(wc); if (lws_hdr_total_length(wsi, WSI_TOKEN_OPTIONS_URI)) return websocket_http_options(wc); ilogs(http, LOG_INFO, "Ignoring HTTP request to %s with unsupported method", uri); return 0; } static int websocket_http(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { ilogs(http, LOG_DEBUG, "http-only callback %i %p %p", reason, wsi, user); gettimeofday(&rtpe_now, NULL); switch (reason) { case LWS_CALLBACK_PROTOCOL_INIT: case LWS_CALLBACK_PROTOCOL_DESTROY: case LWS_CALLBACK_FILTER_NETWORK_CONNECTION: case LWS_CALLBACK_FILTER_HTTP_CONNECTION: #if LWS_LIBRARY_VERSION_MAJOR >= 4 case LWS_CALLBACK_HTTP_CONFIRM_UPGRADE: case LWS_CALLBACK_HTTP_BIND_PROTOCOL: #endif #if LWS_LIBRARY_VERSION_MAJOR >= 3 case LWS_CALLBACK_ADD_HEADERS: case LWS_CALLBACK_EVENT_WAIT_CANCELLED: // ? #endif break; #if LWS_LIBRARY_VERSION_MAJOR >= 3 case LWS_CALLBACK_HTTP_DROP_PROTOCOL: ilogs(http, LOG_DEBUG, "HTTP connection reset %p", wsi); websocket_conn_cleanup(user); break; #endif case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION: return -1; // disallow non supported websocket protocols case LWS_CALLBACK_GET_THREAD_ID: return (long int) pthread_self(); case LWS_CALLBACK_WSI_CREATE: ilogs(http, LOG_DEBUG, "WS client created %p", wsi); break; case LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED: ilogs(http, LOG_DEBUG, "New WS client %p", wsi); break; case LWS_CALLBACK_HTTP: return websocket_do_http(wsi, user, in); case LWS_CALLBACK_HTTP_BODY: if (len == 0) return 0; return websocket_http_body(user, in, len); case LWS_CALLBACK_HTTP_BODY_COMPLETION: return websocket_http_body(user, NULL, 0); case LWS_CALLBACK_CLOSED_HTTP: ilogs(http, LOG_DEBUG, "HTTP connection closed %p", wsi); websocket_conn_cleanup(user); break; case LWS_CALLBACK_WSI_DESTROY: ilogs(http, LOG_DEBUG, "WS client destroyed %p", wsi); break; case LWS_CALLBACK_ESTABLISHED: case LWS_CALLBACK_RECEIVE: case LWS_CALLBACK_CLOSED: ilogs(http, LOG_WARN, "Invalid HTTP callback %i", reason); return -1; case LWS_CALLBACK_HTTP_WRITEABLE: return websocket_dequeue(user); default: ilogs(http, LOG_DEBUG, "Unhandled HTTP callback %i", reason); break; } release_closed_sockets(); return 0; } static int websocket_protocol(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len, websocket_message_func_t handler_func, const char *name) { struct websocket_conn *wc = user; ilogs(http, LOG_DEBUG, "Websocket protocol '%s' callback %i %p %p", name, reason, wsi, wc); gettimeofday(&rtpe_now, NULL); switch (reason) { case LWS_CALLBACK_PROTOCOL_INIT: case LWS_CALLBACK_PROTOCOL_DESTROY: case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION: #if LWS_LIBRARY_VERSION_MAJOR >= 4 case LWS_CALLBACK_WS_SERVER_BIND_PROTOCOL: case LWS_CALLBACK_WS_SERVER_DROP_PROTOCOL: #endif #if LWS_LIBRARY_VERSION_MAJOR >= 3 case LWS_CALLBACK_ADD_HEADERS: case LWS_CALLBACK_HTTP_BIND_PROTOCOL: case LWS_CALLBACK_EVENT_WAIT_CANCELLED: // ? case LWS_CALLBACK_WS_PEER_INITIATED_CLOSE: #endif break; case LWS_CALLBACK_GET_THREAD_ID: return (long int) pthread_self(); case LWS_CALLBACK_ESTABLISHED: ilogs(http, LOG_DEBUG, "Websocket protocol '%s' established", name); if (websocket_conn_init(wsi, wc) < 0) break; int get_len = lws_hdr_total_length(wsi, WSI_TOKEN_GET_URI); if (get_len > 0) { wc->uri = malloc(get_len + 1); if (wc->uri) { if (lws_hdr_copy(wsi, wc->uri, get_len + 1, WSI_TOKEN_GET_URI) <= 0) { free(wc->uri); wc->uri = NULL; } } } break; case LWS_CALLBACK_CLOSED: ilogs(http, LOG_DEBUG, "Websocket protocol '%s' closed", name); websocket_conn_cleanup(wc); ilogs(http, LOG_DEBUG, "Websocket protocol '%s' ready for cleanup", name); break; case LWS_CALLBACK_RECEIVE: ilogs(http, LOG_DEBUG, "Websocket protocol '%s' data (final %i, remain %zu) " "received for '%s': '%.*s'", name, lws_is_final_fragment(wsi), lws_remaining_packet_payload(wsi), wc->uri, (int) len, (const char *) in); wc->wm->method = M_WEBSOCKET; g_string_append_len(wc->wm->body, in, len); if (lws_is_final_fragment(wsi)) websocket_message_push(wc, handler_func); break; case LWS_CALLBACK_SERVER_WRITEABLE: return websocket_dequeue(user); default: ilogs(http, LOG_DEBUG, "Unhandled websocket protocol '%s' callback %i", name, reason); break; } release_closed_sockets(); return 0; } static int websocket_janus(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { return websocket_protocol(wsi, reason, user, in, len, websocket_janus_process, "janus-protocol"); } static int websocket_rtpengine_echo(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { return websocket_protocol(wsi, reason, user, in, len, websocket_echo_process, "echo.rtpengine.com"); } static int websocket_rtpengine_cli(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { return websocket_protocol(wsi, reason, user, in, len, websocket_cli_process, "rtpengine-cli"); } static int websocket_rtpengine_ng(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { return websocket_protocol(wsi, reason, user, in, len, websocket_ng_process, "rtpengine-ng"); } static int websocket_rtpengine_ng_plain(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) { return websocket_protocol(wsi, reason, user, in, len, websocket_ng_plain_process, "rtpengine-ng-plain"); } static const struct lws_protocols websocket_protocols[] = { { .name = "http-only", .callback = websocket_http, .per_session_data_size = sizeof(struct websocket_conn), }, { .name = "janus-protocol", .callback = websocket_janus, .per_session_data_size = sizeof(struct websocket_conn), }, { .name = "echo.rtpengine.com", .callback = websocket_rtpengine_echo, .per_session_data_size = sizeof(struct websocket_conn), }, { .name = "cli.rtpengine.com", .callback = websocket_rtpengine_cli, .per_session_data_size = sizeof(struct websocket_conn), }, { .name = "ng.rtpengine.com", .callback = websocket_rtpengine_ng, .per_session_data_size = sizeof(struct websocket_conn), }, { .name = "ng-plain.rtpengine.com", .callback = websocket_rtpengine_ng_plain, .per_session_data_size = sizeof(struct websocket_conn), }, { 0, } }; static void websocket_log(int level, const char *line) { if ((level & LLL_ERR)) level = LOG_ERR; else if ((level & LLL_WARN)) level = LOG_WARN; else if ((level & LLL_NOTICE)) level = LOG_NOTICE; else if ((level & LLL_INFO)) level = LOG_INFO; else level = LOG_DEBUG; ilogs(http, level, "libwebsockets: %s", line); } static void websocket_cleanup(void) { if (websocket_context) lws_context_destroy(websocket_context); websocket_context = NULL; if (websocket_threads) g_thread_pool_free(websocket_threads, TRUE, TRUE); websocket_threads = NULL; while (websocket_vhost_configs.length) { struct lws_context_creation_info *vhost = g_queue_pop_head(&websocket_vhost_configs); g_free((void *) vhost->iface); g_slice_free1(sizeof(*vhost), vhost); } } static void addr_any_v6_consolidate(endpoint_t eps[2], bool have_lws_ipv6) { // Don't try to double bind on ADDR_ANY. If we find ADDR_ANY, bind to the // v6 port and omit the v4 binding (and let libwebsockets handle the 4/6 // translation) unless we find ourselves without v6 support. if (!eps[1].port) return; if (!have_lws_ipv6) return; if (eps[0].address.family->af == AF_INET6) return; if (!is_addr_unspecified(&eps[0].address)) return; // The only case that needs handling: ADDR_ANY requested, v6 support is // available, and v6 binding is given second. eps[0] = eps[1]; eps[1].port = 0; } int websocket_init(void) { assert(websocket_context == NULL); if ((!rtpe_config.http_ifs || !*rtpe_config.http_ifs) && (!rtpe_config.https_ifs || !*rtpe_config.https_ifs)) return 0; struct sockaddr_storage sa; int ret = lws_interface_to_sa(1, "::1", (void *) &sa, sizeof(sa)); bool have_lws_ipv6 = (ret == 0); const char *err = NULL; lws_set_log_level(LLL_ERR | LLL_WARN, websocket_log); struct lws_context_creation_info wci = { .options = LWS_SERVER_OPTION_EXPLICIT_VHOSTS | #if LWS_LIBRARY_VERSION_MAJOR >= 4 LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND | #endif 0, }; websocket_context = lws_create_context(&wci); err = "Failed to create LWS context"; if (!websocket_context) goto err; for (char **ifp = rtpe_config.http_ifs; ifp && *ifp; ifp++) { char *ifa = *ifp; ilogs(http, LOG_DEBUG, "Starting HTTP/WS '%s'", ifa); endpoint_t eps[2]; err = "Failed to parse address/port"; if (endpoint_parse_any_getaddrinfo_alt(&eps[0], &eps[1], ifa)) goto err; addr_any_v6_consolidate(eps, have_lws_ipv6); bool success = false; bool ipv6_fail = false; for (int i = 0; i < G_N_ELEMENTS(eps); i++) { endpoint_t *ep = &eps[i]; if (!ep->port) continue; if (ep->address.family->af == AF_INET6 && !have_lws_ipv6) { ipv6_fail = true; continue; } struct lws_context_creation_info *vhost = g_slice_alloc(sizeof(*vhost)); g_queue_push_tail(&websocket_vhost_configs, vhost); *vhost = (struct lws_context_creation_info) { .port = ep->port, .iface = g_strdup(sockaddr_print_buf(&ep->address)), .protocols = websocket_protocols, }; vhost->vhost_name = vhost->iface; if (ep->address.family->af == AF_INET) vhost->options |= LWS_SERVER_OPTION_DISABLE_IPV6; err = "LWS failed to create vhost"; if (!lws_create_vhost(websocket_context, vhost)) goto err; success = true; } err = "Failed to create any LWS vhost from given config"; if (ipv6_fail) err = "Failed to create any LWS vhost from given config. Hint: LWS IPv6 support is not " "available and config lists at least one IPv6 vhost"; if (!success) goto err; } for (char **ifp = rtpe_config.https_ifs; ifp && *ifp; ifp++) { err = "HTTPS/WSS listener requested, but no certificate given"; if (!rtpe_config.https_cert) goto err; char *ifa = *ifp; ilogs(http, LOG_DEBUG, "Starting HTTPS/WSS '%s'", ifa); endpoint_t eps[2]; err = "Failed to parse address/port"; if (endpoint_parse_any_getaddrinfo_alt(&eps[0], &eps[1], ifa)) goto err; addr_any_v6_consolidate(eps, have_lws_ipv6); bool success = false; bool ipv6_fail = false; for (int i = 0; i < G_N_ELEMENTS(eps); i++) { endpoint_t *ep = &eps[i]; if (!ep->port) continue; if (ep->address.family->af == AF_INET6 && !have_lws_ipv6) { ipv6_fail = true; continue; } struct lws_context_creation_info *vhost = g_slice_alloc(sizeof(*vhost)); g_queue_push_tail(&websocket_vhost_configs, vhost); *vhost = (struct lws_context_creation_info) { .port = ep->port, .iface = g_strdup(sockaddr_print_buf(&ep->address)), .protocols = websocket_protocols, .ssl_cert_filepath = rtpe_config.https_cert, .ssl_private_key_filepath = rtpe_config.https_key ? : rtpe_config.https_cert, .options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT, // XXX cipher list, key password }; vhost->vhost_name = vhost->iface; if (ep->address.family->af == AF_INET) vhost->options |= LWS_SERVER_OPTION_DISABLE_IPV6; err = "LWS failed to create vhost"; if (!lws_create_vhost(websocket_context, vhost)) goto err; success = true; } err = "Failed to create any LWS vhost from given config"; if (ipv6_fail) err = "Failed to create any LWS vhost from given config. Hint: LWS IPv6 support is not " "available and config lists at least one IPv6 vhost"; if (!success) goto err; } int num_threads = rtpe_config.http_threads ? : rtpe_config.num_threads; websocket_threads = g_thread_pool_new(websocket_process, NULL, num_threads, FALSE, NULL); ilogs(http, LOG_DEBUG, "Websocket init complete with %i threads", num_threads); return 0; err: ilogs(http, LOG_ERROR, "Failed to start websocket listener: %s", err); websocket_cleanup(); return -1; } static void websocket_loop(void *p) { ilogs(http, LOG_INFO, "Websocket listener thread running"); while (!rtpe_shutdown) { // see websocket_write_raw() for locking logic mutex_lock(&websocket_service_lock); lws_service(websocket_context, 100); mutex_unlock(&websocket_service_lock); mutex_lock(&websocket_callback_lock); mutex_unlock(&websocket_callback_lock); } websocket_cleanup(); } void websocket_start(void) { if (!websocket_context) return; thread_create_detach_prio(websocket_loop, NULL, rtpe_config.scheduling, rtpe_config.priority, "websocket"); } void websocket_stop(void) { if (!websocket_context) return; lws_cancel_service(websocket_context); } rtpengine-mr12.5.1.22/debian/000077500000000000000000000000001474347554000156135ustar00rootroot00000000000000rtpengine-mr12.5.1.22/debian/.gitignore000066400000000000000000000004741474347554000176100ustar00rootroot00000000000000*.debhelper *.log *.substvars /.debhelper/ /debhelper-build-stamp /files /ngcp-rtpengine-daemon/ /ngcp-rtpengine-kernel-dkms/ /ngcp-rtpengine-kernel-source/ /ngcp-rtpengine-perftest-data/ /ngcp-rtpengine-perftest/ /ngcp-rtpengine-recording-daemon/ /ngcp-rtpengine-utils/ /ngcp-rtpengine/ README.html.gz README.md.gz rtpengine-mr12.5.1.22/debian/changelog000066400000000000000000007621241474347554000175010ustar00rootroot00000000000000ngcp-rtpengine (12.5.1.22+0~mr12.5.1.22) unstable; urgency=medium [ Richard Fuchs ] * [e742dbf] MT#55283 fix str_str return type * [9a93e0e] MT#55283 add format_cmp_g729 * [22b142d] MT#55283 ignore a=fmtp for G.722 * [c6177cc] MT#55283 don't accept incompatible codecs * [fb04ea7] MT#55283 add tests to reject incompatible codecs -- Sipwise Jenkins Builder Mon, 20 Jan 2025 17:35:44 +0100 ngcp-rtpengine (12.5.1.21+0~mr12.5.1.21) unstable; urgency=medium [ Richard Fuchs ] * [905a197] MT#55283 fork to background before init HTTP/WS * [9669665] MT#55283 el: don't fork to background -- Sipwise Jenkins Builder Thu, 16 Jan 2025 18:38:12 +0100 ngcp-rtpengine (12.5.1.20+0~mr12.5.1.20) unstable; urgency=medium [ Richard Fuchs ] * [4c05803] MT#55283 add original-sendrecv test * [9049e50] MT#55283 fix kernel compilation for >= 6.13 -- Sipwise Jenkins Builder Wed, 15 Jan 2025 18:49:24 +0100 ngcp-rtpengine (12.5.1.19+0~mr12.5.1.19) unstable; urgency=medium [ Richard Fuchs ] * [d737360] MT#55283 fix possible NULL dereference * [4f011a8] MT#55283 silence compiler warning * [1bf22a0] MT#61822 fix possible NULL dereference * [e493452] MT#61822 fix missing duration scaling [ S-P Chan ] * [3a2ea42] MT#55283 Workaround for RPM packaging EL8/GCC 8.5 [ Orgad Shaneh ] * [a3ff45d] MT#55283 Prevent warning logs when recording-method is pcap -- Sipwise Jenkins Builder Fri, 10 Jan 2025 17:13:53 +0100 ngcp-rtpengine (12.5.1.18+0~mr12.5.1.18) unstable; urgency=medium [ Richard Fuchs ] * [6875fb3] MT#55283 remove debugging remnants -- Sipwise Jenkins Builder Mon, 09 Dec 2024 16:38:30 +0100 ngcp-rtpengine (12.5.1.17+0~mr12.5.1.17) unstable; urgency=medium [ Richard Fuchs ] * [67aefce] MT#61371 replace code with helper function * [42139ac] MT#61371 remove one level of indentation * [0109b1e] MT#55283 remove remnant * [90ef882] MT#61372 add alternative spellings * [97a9d4f] MT#61352 free options at the end * [6b1c0d9] MT#61352 strip leading spaces in interfaces * [6c567bd] MT#61352 fix mem leak in config_load_ext * [415565e] MT#61371 prevent A <> A dialogue associations * [793d9d2] MT#55283 fix ffmpeg deprecation warning * [78beb92] MT#55283 fix typo [ Andrew Solovjov ] * [97df3c7] MT#55283 Fix EL build errors -- Sipwise Jenkins Builder Wed, 04 Dec 2024 13:00:34 +0100 ngcp-rtpengine (12.5.1.16+0~mr12.5.1.16) unstable; urgency=medium [ Richard Fuchs ] * [95f6cde] MT#55283 fix wrong string length being used -- Sipwise Jenkins Builder Wed, 20 Nov 2024 15:24:10 +0100 ngcp-rtpengine (12.5.1.15+0~mr12.5.1.15) unstable; urgency=medium [ Richard Fuchs ] * [5ed335d] MT#55283 always use full-struct initialisation. Thanks to Alexandru Pirvulescu * [7fa0b5e] MT#55283 compile fix for CentOS 9 [ Peter Pulham ] * [6029071] MT#55283 media_socket.c: check for NULL payload_types passed to kernelize_one -- Sipwise Jenkins Builder Fri, 01 Nov 2024 15:34:14 +0100 ngcp-rtpengine (12.5.1.14+0~mr12.5.1.14) unstable; urgency=medium [ Alexandru Pirvulescu ] * [54568f5] MT#55283 Ensure copy pointer don't leak memory [ Donat Zenichev ] * [70325a4] MT#56128 Re-move misleading log line -- Sipwise Jenkins Builder Tue, 22 Oct 2024 12:13:54 +0200 ngcp-rtpengine (12.5.1.13+0~mr12.5.1.13) unstable; urgency=medium [ Richard Fuchs ] * [cfb9342] MT#55283 fix compilation error for pcre2 >= 10.43 * [d3b9441] MT#61263 fix `delete` stats reporting * [4001d03] MT#61263 add missing log context -- Sipwise Jenkins Builder Thu, 17 Oct 2024 17:57:53 +0200 ngcp-rtpengine (12.5.1.12+0~mr12.5.1.12) unstable; urgency=medium [ Richard Fuchs ] * [5cafeb8] MT#55283 fix websocket shutdown mem leak * [d0ed54e] MT#55283 fix session reference booboo * [e95d515] MT#55283 switch to BIO_set_callback_arg * [0e13387] MT#55283 unify types used for sequence numbers * [da6b6ae] MT#55283 fix ext_seq math booboo -- Sipwise Jenkins Builder Wed, 09 Oct 2024 18:53:56 +0200 ngcp-rtpengine (12.5.1.11+0~mr12.5.1.11) unstable; urgency=medium [ Donat Zenichev ] * [028c62e] MT#61140 call_delete_ng: add normal parsing * [ea6fdcb] MT#61140 Fix Coverity Scan defect (to_tag_flag) -- Sipwise Jenkins Builder Wed, 02 Oct 2024 14:02:20 +0200 ngcp-rtpengine (12.5.1.10+0~mr12.5.1.10) unstable; urgency=medium [ Richard Fuchs ] * [8fb6f7c] MT#55283 use #ifdef instead of #if * [db3ace0] MT#55283 catch changes in a=mid * [9cb5b64] MT#55283 rekernelize after DTLS connect -- Sipwise Jenkins Builder Thu, 26 Sep 2024 16:45:26 +0200 ngcp-rtpengine (12.5.1.9+0~mr12.5.1.9) unstable; urgency=medium [ Richard Fuchs ] * [ab6af8e] MT#55283 fix possible null dereference -- Sipwise Jenkins Builder Tue, 24 Sep 2024 16:34:06 +0200 ngcp-rtpengine (12.5.1.8+0~mr12.5.1.8) unstable; urgency=medium [ Richard Fuchs ] * [f1d1662] MT#55283 allow rejection of first m= -- Sipwise Jenkins Builder Mon, 23 Sep 2024 16:54:26 +0200 ngcp-rtpengine (12.5.1.7+0~mr12.5.1.7) unstable; urgency=medium [ Richard Fuchs ] * [86e3bff] MT#61090 replace fixture with DFSG compatible one * [c21f249] MT#55283 add PIE build flags * [741f6ac] MT#55283 add -latomic * [43f15cd] MT#55283 fix compile warning -- Sipwise Jenkins Builder Tue, 17 Sep 2024 23:21:02 +0200 ngcp-rtpengine (12.5.1.6+0~mr12.5.1.6) unstable; urgency=medium [ Richard Fuchs ] * [b685584] MT#55283 remove unsupported codecs w/ audio player -- Sipwise Jenkins Builder Mon, 16 Sep 2024 15:07:45 +0200 ngcp-rtpengine (12.5.1.5+0~mr12.5.1.5) unstable; urgency=medium [ Richard Fuchs ] * [d49df55] MT#55283 fix ISO C90 warning * [7820f0a] MT#60853 fix possible null dereference * [d00b29e] MT#55283 bugfix for 91f7b29cc * [3549b31] MT#55283 fix IPv6 XMLRPC callbacks * [f4150b5] MT#55283 trigger rekernel for SSRC-less streams -- Sipwise Jenkins Builder Thu, 05 Sep 2024 14:41:03 +0200 ngcp-rtpengine (12.5.1.4+0~mr12.5.1.4) unstable; urgency=medium [ Richard Fuchs ] * [7cca30e] MT#60827 use correct free function -- Sipwise Jenkins Builder Mon, 02 Sep 2024 14:50:22 +0200 ngcp-rtpengine (12.5.1.3+0~mr12.5.1.3) unstable; urgency=medium [ Richard Fuchs ] * [1fee77b] MT#60347 remove redundant hash table lookup * [dac99c9] MT#55283 fix missing space in log message * [541d402] MT#55283 fix unsubscribe/update order * [b6a6626] MT#55283 fix syntax in docs * [1555185] MT#55283 add tests for unsubscribe * [5ae500d] MT#55283 fix alphabet order booboo [ Victor Seva ] * [30cf104] MT#60788 pkg/deb: add Ubuntu 24.04 (Noble Numbat) -- Sipwise Jenkins Builder Thu, 29 Aug 2024 15:07:44 +0200 ngcp-rtpengine (12.5.1.2+0~mr12.5.1.2) unstable; urgency=medium [ Richard Fuchs ] * [0cfc3dd] MT#60347 fix fringe DTMF payload type case -- Sipwise Jenkins Builder Wed, 14 Aug 2024 20:08:18 +0200 ngcp-rtpengine (12.5.1.1+0~mr12.5.1.1) unstable; urgency=medium [ Victor Seva ] * [56411f0] MT#55283 [debian] fix links backports for buster and focal [ Donat Zenichev ] * [c519776] MT#60588 redis: allocate `sdp_origin` using g_malloc [ Richard Fuchs ] * [0691344] MT#55283 protect against null ssrc_stats * [e767972] MT#55283 fix compilation for kernel >=6.10 (Closes: #1077839) -- Sipwise Jenkins Builder Wed, 14 Aug 2024 14:00:45 +0200 ngcp-rtpengine (12.5.1.0+0~mr12.5.1.0) unstable; urgency=medium [ Richard Fuchs ] * [322fb3d] MT#55283 add .inc files to dkms package - backport * [324fc59] MT#55283 support custom uring buffer size * [cbb8d31] MT#55283 use minimum version requirement for uring * [64432ec] MT#55283 add `directional` to supported flags * [48e9628] MT#55283 fix uring state mixup * [76363a0] MT#55283 restore poller_isblocked * [7230a45] MT#55283 safeguard against outputs with dummy SSRC * [bee6275] MT#60258 prevent possible null dereference * [9f71428] MT#55283 add convenience alias flag `WebRTC` * [656b2f6] MT#55283 group sections of interface config docs * [a140d83] MT#55283 enforce hash table types in callbacks * [6d4ffb8] MT#55283 support seperate from/to-interface= * [5e6d4cf] MT#55283 update interface config queue to typed * [fbc195f] MT#55283 used typed hash table for interfaces * [68b7bfa] MT#55283 introduce dedicated intf_key struct * [3e73fb5] MT#55283 move ownership of logical_intf to queue * [a008e27] MT#55283 support interface aliases * [f4def66] MT#55283 switch to cc_client_float2opus_new_ext * [5647f47] MT#55283 support setting cc-opus-complexity * [1a45621] MT#55283 honour userspace fallback * [025e06c] MT#55283 handle userspace fallback buffer pool * [560ec9a] MT#55283 update str_token*() to bool return type * [a058840] MT#55283 convert flags parsing to `str` * [7ce9933] MT#60325 allow for kernels without CONFIG_BTREE * [236ca51] MT#55283 extend fake string hashing for IDE * [14b7569] MT#55283 set default media bandwidth * [25f966a] MT#55283 look up remote address via subscriptions * [d02ce7e] MT#55283 look up remote b= via subscriptions * [b562bf1] MT#55283 add __ct to typed GList * [03a6c37] MT#55283 add t_list_find_custom() * [225b20f] MT#55283 clarify in-line comment slightly * [db7315b] MT#55283 refactor SDES reordering * [d0fd696] MT#55283 honour offerer_pref for RTP<>SRTP * [03247d8] MT#55283 fix typo * [860ce31] MT#55283 prevent uninitialised pointer access * [99fa79e] MT#55283 fix copy/pasto * [6eecfc0] MT#55283 fix \d escape sequences * [abbc022] MT#60347 extend allow-asymmetric-codecs * [d48f4f3] MT#60347 tests for xtended allow-asymmetric-codecs * [91f7b29] MT#55283 fix unsigned integer underflow [ Donat Zenichev ] * [4dfd949] MT#56465 Introduce `call_get_top_media_subscription()` func * [138ba8c] MT#56465 sdp_create(), set the actual sdp session name * [fa8be54] MT#56465 Rework the `sdp_out_add_origin()` func * [9f8820b] MT#56465 Drop support for `replace-session-connection` * [2da116c] MT#56465 sdp_create(), set the actual media connection * [50e746b] MT#56465 Docs: deprecate `replace-session-connection` * [023e9c5] MT#56465 sdp_create: add code commentaries * [fee6c2b] MT#56465 sdp_parse: add support of `b=AS:` * [5c9edac] MT#56465 sdp_create(), set the actual sdp sess bandwidth * [41331bf] MT#56465 sdp_create(), set the actual sdp media bandwidth * [611469e] MT#56465 sdp_parse: add support of `t=` attr parsing * [4f94450] MT#56465 sdp_create(), set the actual sdp timing * [2c48bc6] MT#60403 sdp_parse: add actual parsing of bandwidth (b=) * [3eb68c8] MT#60386 sdp_create: don't carry stream_params * [31d6cd2] MT#60384 support replication of sdp session attributes * [a0a03c8] MT#60403 refactoring of `sdp_out_add_bandwidth()` * [e40af88] MT#60476 Move `call_subscribe_request_ng()` to `sdp_create()` * [f9aab82] MT#57719 Remove superfluous inclusion of sdp.h * [9a1c67b] MT#57719 Remove superfluous inclusion of time.h * [2bcb385] MT#57719 Don't include headers two times * [bdf49e4] MT#55283 Break circular dependency sdp.h/call.h * [dbc0896] MT#60476 Make `struct sdp_origin` a typedef * [e037367] MT#60476 call_monologue: use whole `sdp_origin` struct * [9daa320] MT#60476 sdp_replace: use `ml->session_sdp_orig` * [9a75c37] MT#60476 redis: replicate `ml->session_sdp_orig` * [c98c983] MT#60476 origin-replace: introduce full and limited replace * [92d172b] MT#60476 sdp_replace: add support of replace `origin-full` flag * [7f90fed] MT#60476 sdp_replace: generalize usage of `->session_last_sdp_orig` * [2d07ccf] MT#60476 sdp_replace: correct behavior of `replace-origin-full` * [a0b165d] MT#60476 Set `->session_last_sdp_orig` while initializing * [c2c802a] MT#60476 sdp_out_add_origin: add replacements support * [10cbbc3] MT#60476 monologue_subscribe_request: update last orig [ Guillem Jover ] * [9785aa0] MT#60304 debian: Switch from markdown to discount [ Victor Seva ] * [a73eeb8] MT#60456 [debian] ngcp-rtpengine should not depend on perftest * [a48331a] MT#60456 [debian] ngcp-rtpengine-recording-daemon is not build on no-transcoding [ Anner J. Bonilla ] * [07314fe] Fix formatting on a single line to match rest of file -- Sipwise Jenkins Builder Sun, 28 Jul 2024 12:04:22 +0200 ngcp-rtpengine (12.5.0.0+0~mr12.5.0.0) unstable; urgency=medium [ Dennis Yurasov ] * [c3e32b7] MT#55283 Fix TLS-ID change detection [ Donat Zenichev ] * [36c19b9] MT#58535 rtpp_flags: introduce raw flags parsing * [bb52ae4] MT#58535 Add support of the rest of opmodes * [31641ef] MT#58535 Be able to detect message type (request/reply) * [f60139c] MT#58535 Add opmode to processing of flags * [15d0867] MT#58535 rtpp_flags: add directional flag parsing * [fcc66b1] MT#58535 rtpp_flags: add to rtpengine-ng-client * [bc698a3] MT#58535 Introduce `auto-daemon-tests-rtpp-flags` * [282f578] MT#58535 Use `call_ng_flags_flags()` for generic flags * [59dca7d] MT#58535 Shadow the `parse_str_flag()` because unused * [1abc876] MT#58535 Refactor the ng_control_protocol.md's header * [cf95569] MT#58535 Docs update, add description of `rtpp flags` processing * [d7b8ebb] MT#58535 Add an empty statement after `rtpp-flags` parsing * [d1c4b44] MT#58535 Fix a defect detected by Coverity Scan * [ff98b83] MT#58535 rtpp_flags: remove unused `flags` bencode list item * [1331437] MT#58535 rtpp_flags: fix bug in `direction` parsing * [066ca73] MT#58535 rtpp_flags: fix typo in code commentaries * [1e65172] MT#58535 rtpp_flags: parse key/val flags directly * [a642a4e] MT#58535 rtpp_flags: parse `transport` flag directly * [8548e7d] MT#58535 rtpp_flags: parse `codec-*` flags directly * [97f7098] MT#58535 rtpp_flags: parse `direction` flag directly * [db6bfb9] MT#58535 rtpp_flags: deprecate `new_list_to_dict()` * [e79bc40] MT#58535 rtpp_flags: Deprecate `repacketize` flag parsing * [7b94627] MT#58535 rtpp_flags: parse the rest of flags directly * [ceb49c9] MT#58535 rtpp_flags: deprecate usage of dict for parsing * [09f129f] MT#58535 rtpp_flags: refactor default case of flags-flags parsing * [f695e77] MT#58535 rtpp_flags: add support for generic 'rtcp-mux-*' * [b3e6eaa] MT#56465 Refactor `sdp_replace()` in `call_offer_answer_ng()` * [0c04807] MT#56465 Introduce `call_ng_basic_checks()` function * [7123b59] MT#56465 Carry `sdp_origin` via flags to ml init func * [2f24609] MT#56465 Make `sdp_ng_flags` non-const for `sdp_create()` * [282b449] MT#56465 sdp_create(), set the origin attr including name [ Tom Briden ] * [6aa1093] MT#55283 packet_encoded_tx: add a ts delay when transmitting DTMF event packets * [c7fa81c] MT#55283 dtmf_event_payload: canonicalise DTMF end event ts if start packet send was delayed * [c92748d] MT#55283 dtmf_inject: fix generating one too many event packets * [bdb1022] MT#55283 codec_last_dtmf_event: return ts of dtmf_state if handler queue is empty * [e12e408] MT#55283 dtmf_inject: adjust start_pts if last_event + pause is later than it * [c57a3f7] MT#55283 dtmf: only update recv list if not injected and send list if injected, delayed or not blocked * [ce66c7b] MT#55283 codec_add_raw_packet_dup: allocate enough space to support encrpytion [ Richard Fuchs ] * [41a9894] MT#55283 fix DTMF end event sequencing * [2527f8d] MT#55283 fix copy/pasto * [57c490f] MT#55283 Add output-mixed-per-media * [3e0fe5a] MT#55283 remove unused argument * [46919ce] MT#55283 remove GET_STATS * [3903d91] MT#55283 remove unused DEL_TARGET method * [6c03a44] MT#55283 fix missing cleanup * [c6f43b7] MT#55283 Fix for crash introduced by 6c03a44c * [292c8ae] MT#55283 add a few more missing nft cleanups * [41a4321] MT#55283 decrease log severity * [3876bdd] MT#55283 fix array out of bounds access * [fa7a7ad] MT#55283 use gcc builtins for 64-bit atomics * [688d39f] MT#55283 add public obj_init() * [8d3b43a] MT#55283 update NONE flags to gboolean * [f271881] MT#55283 deprectate RE_EXTERNAL switch * [ebe9501] MT#55283 obsolete RE_HAS_MEASUREDELAY * [f3b36a4] MT#55283 remove pointless mkdir * [28e9079] MT#55283 mass codec-chain update * [e0efaf7] MT#55283 fix UDP hardware checksumming * [88f09f9] MT#55283 add static * [2d39b96] MT#55283 fix missing EVS size collision avoidance * [7ce3f57] MT#55283 add extra EVS tests * [4fb5c99] MT#57719 do lookup based on a=mid in get_media() * [93f4ea4] MT#55283 fix log-info reference leak * [3bd606e] MT#55283 fix auto completion gone wrong * [ea3d4da] MT#55283 fix session reference leak * [eb188a1] MT#55283 allow python test to use external daemon * [096f7d7] MT#55283 add interface stats to CLI output * [53fd271] MT#55283 add atomic64_inc_na convenience wrapper * [d76a228] MT#55283 add generic atomic_() macros * [e047f48] MT#55283 update obj alloc size to size_t * [7117727] MT#55283 move atomic64 to auxlib.h * [c5f56c4] MT#55283 fix kernel SRTCP indexing * [8b7cab4] MT#55283 force re-encryption if DTMF injection is requested * [f1fa3ed] MT#55283 add DTMF injection to SRTP test * [39087eb] MT#55283 fix t_queue_move booboo * [4f66963] MT#55283 version-guard avcodec_close() * [c13da00] MT#55283 fix typo breaking per-sec stats * [03a1a02] MT#55283 add missing codec-chain cleanup * [aab5d66] MT#55283 update external poller API to bool * [58cbd2f] MT#55283 delegate closing sockets to poller * [128e84e] MT#55283 remove poller_isblocked * [a3f6a92] MT#55283 removed unused poller argument * [6aca3e8] MT#55283 generalise thread_waker * [e553660] MT#55283 virtualise poller methods * [8267652] MT#55283 turn recvmsg cmsg parsing into macro * [872c06d] MT#55283 add bufferpool implementation * [ad00134] MT#55283 use bufferpool for media packets * [ebaca8a] MT#55283 initial support for io_uring * [9c2bccd] MT#55283 io_uring poller implementation * [9ee075b] MT#55283 split out common part of stream_fd_readable * [82d3bfe] MT#55283 use io_uring recv for media if possible * [c7a8f78] MT#55283 fix CLI reference count * [2c2b7fa] MT#55283 allow "closed" callbacks during shutdown * [8379779] MT#55283 add SSRC stats to NG output * [40b48d4] MT#55283 allocated memory for per-interface stats * [cf3183a] MT#55283 support mmap() * [f661561] MT#55283 add a global bufferpool * [7ec6d91] MT#55283 use bufferpool for interface stats * [7f07a5d] MT#55283 move stats struct defs to kernel module * [d0ef967] MT#55283 move interface stats to shm * [c511088] MT#55283 move stream_stats to kernel header * [8e3e9fd] MT#55283 use allocated memory for stream stats * [065270b] MT#55283 move stream stats to shm * [311f5bc] MT#55283 move last_packet timestamp to shm * [5e55daf] MT#55283 use relaxed memory ordering for ICE TS * [cdc8407] MT#55283 use relaxed memory order for stats * [4cee2c1] MT#55283 use bufferpool for rtpe_stats * [e08c46a] MT#55283 split out counter_stats_fields.inc * [7e8acd6] MT#55283 split up table open and init * [fa25976] MT#55283 push global rtpe_stats in shm to kernel * [263234b] MT#55283 move kernel stats counting to shm * [b3d50cc] MT#55283 move rtp_stats to bufferpool * [8998496] MT#55283 move RTP stats into shm * [2c425bc] MT#55283 move TOS reporting to shm * [2698e53] MT#55283 eliminate `basic_stats` struct * [a1a1e42] MT#55283 move ssrc_stats into kernel header * [e8982c3] MT#55283 move SSRC stats into shm * [1ca5848] MT#55283 push ssrc_stats to kernel * [9ba3297] MT#55283 move packets_lost to shm * [af96fc7] MT#55283 track SSRC stats in kernel via shm * [08c7f58] MT#55283 move srtp_index into shm * [a56deff] MT#55283 eliminate last_rtp_index * [376d61b] MT#55283 add convenience atomic_inc_na * [cf64a13] MT#55283 eliminate last_rtcp_index * [d45cdc8] MT#55283 refactor kernel/user stats counting * [7599e55] MT#55283 move last_pt to SSRC context * [e202624] MT#55283 track time of last Redis update per call * [edd7328] MT#55283 move periodic Redis updates to main timer * [f389b42] MT#55283 obsolete /blist * [74f07cc] MT#55283 remove vestiges of kernel<>user stats * [1b378c6] MT#55283 obsolete kernel RTCP sender * [7e90f4d] MT#55283 add last_packet time to stats * [9bce3a0] MT#55283 document io-uring option * [1ec68d8] MT#55283 fix typo * [aba7549] MT#55283 fix wrong codec_chain_stop * [2f71b33] MT#55283 fix async reference leak * [ca1d5ea] MT#55283 exclude uring from bullseye builds * [963930c] MT#55283 non-uring compile fixes * [15e776c] MT#55283 call redis_update without call lock held * [48b9206] MT#55283 fix bw_limit copy/pasto * [216f4f1] MT#55283 eliminate `config_lock` * [edb82cd] MT#55283 add return value to play_start * [96fa75d] MT#55283 compile fix for 32-bit * [649485f] MT#55283 compile fix for kernels < 5.14 * [c40c117] MT#55283 enable liburing * [6d3e648] MT#57719 unconditional offer/answer logic * [5e8d553] MT#55283 honour "nouring" build profile * [38b17eb] MT#55283 support kernel-based media player [ Lucian Balaceanu ] * [7905811] MT#55283 Adding support for NG trace to Homer [ Victor Seva ] * [bb8e466] MT#55283 pkg/deb: fix jammy build error [ lrh3321 ] * [539c2a7] feat: support build rpm packages in openEuler OS [ Stefan-Cristian Mititelu ] * [18999c7] MT#55283 Fix ipv stats when calls are restored from redis -- Sipwise Jenkins Builder Wed, 22 May 2024 14:33:28 +0200 ngcp-rtpengine (12.4.0.0+0~mr12.4.0.0) unstable; urgency=medium [ Richard Fuchs ] * [26352ab] MT#59069 unify recording metadata update * [7510730] MT#59069 refactor handling of metafile prefix * [2ba84dd] MT#59069 introduce vappend_meta_chunk() * [b57f80b] MT#59069 refactor field/flag printing * [366448e] MT#59069 merge handling of output-dest w metadata * [7de7c18] MT#59069 pass metafile to output_new * [8fe72cc] MT#59069 switch GString to g_auto * [8853c53] MT#59069 seperate out random recording tag * [b19f598] MT#59069 add recording-path option * [e4630eb] MT#59069 add option to override rec file pattern * [6189efd] MT#59069 refactor metadata parsing * [1a23c15] MT#59069 use proper bool type * [015c25d] MT#59069 support arbitrary pattern replacements * [1645f6d] MT#59071 relegate metadata update * [bda1b93] MT#59071 support selective DB updates * [8e1ba9e] MT#55283 fix missing return * [989695a] MT#55283 mandate use of `flags` * [4efc1f5] MT#55283 add extra attribute tests * [42d3ae3] MT#55283 use implicit a= prefix for attributes * [9bac9bc] MT#55283 include explicit cast in STR_INIT * [07b8027] MT#55283 const updates * [2401bf2] MT#55283 use int argument instead of pointer * [9dfe5b0] MT#55283 use simpler g_string_append_len * [b7b4890] MT#55283 introduce STR_INIT_GS * [fe99735] MT#55283 use more g_auto * [bf3dbbc] MT#55283 clearly separate attribute name and value * [d5654c3] MT#55283 imply attribute ':' * [5a05c77] MT#55283 add append_tagged_attr_to_gstring * [d6d736c] MT#55283 unify SDP remove/subst logging * [282e2c0] MT#55283 extend attribute pattern matching * [6b35f2e] MT#55283 add append_int_tagged_attr_to_gstring() * [9ce741d] MT#55283 abbreviate append_attr_int_to_gstring() * [1a11d9f] MT#55283 simplify fmtp printing * [16fc4e5] MT#55283 extend SDP attribute matching * [dbe4e5d] MT#55283 add sdp_manipulate_remove_attr * [76ba2ec] MT#55283 add sdp_manipulations_subst_attr * [22cdf1c] MT#55283 remove unused function argument * [d3bf479] MT#55283 remove a=msid exception * [2d3ac72] MT#55283 remove a=ssrc-group exception * [a56e160] MT#55283 remove a=ssrc exception * [cd549a4] MT#55283 split apart sdp_attribute struct * [1f201f7] MT#55283 add wrapper around append_attr_to_gstring * [96cb2e8] MT#55283 distinguish between lookup and creation * [f87ac87] MT#55283 const updates * [363a488] MT#55283 split out insert_monologue_attributes * [0a20da4] MT#55283 introduce sdp_attr_print_f * [8c99588] MT#55283 directly print T.38 attributes * [c52a6d5] MT#55283 clarify attribute moving * [7035991] MT#55283 short-cut attribute moving * [9da775a] MT#55283 convert list of attributes from strings * [908f2af] MT#55283 remove unused argument * [b098e01] MT#55283 remove unused argument * [0e23551] MT#55283 add distinctions to OTHER attrs * [f40a33a] MT#55283 shift extmap handling to printing stage * [aa7d7a0] MT#55283 simpler ml_medias_subscribed_to_single_ml * [24fb7a0] MT#55283 create function to move SDP attributes * [1454500] MT#55283 reverse handling of media attributes * [ac4f2ef] MT#55283 reverse handling of session attributes * [192a7dd] MT#55283 add tests for new SDP removal option * [d5831d9] MT#55283 Add option to use pure TCP socket * [45b10ac] MT#55283 update sample config * [339c705] MT#55283 add failure mode for dtmf_init * [f9b8f20] MT#55283 add IPv4 fallback * [c2a4772] MT#55283 fix typo from f9b8f2041 * [0500c3a] MT#55283 fix copy/pasto * [a0ba4d7] MT#55283 don't create chains that already exist * [25a3693] MT#57977 fix skb leak * [337c73e] MT#59038 generalise DTMF trigger handling * [64fd7b8] MT#55283 restore some flags null checks * [8db00bb] MT#59038 switch to transparent union for callback * [a428bcb] MT#59038 refactor recording functions * [be5180a] MT#59038 extend faux hashing for IDE * [cf4f9ba] MT#59038 remove pointless double struct * [5084855] MT#59038 support DTMF VSC to control recording * [8494191] MT#59038 reformat string literal * [4f14413] MT#59038 abbreviate single-line CLI output * [b6b9395] MT#59038 refactor CLI parsing * [698ab02] MT#59038 add recording query capabilities * [460baac] MT#59038 split out cookie handling * [1844936] MT#59038 reformat with black * [8999763] MT#55283 fix typo * [72b388a] MT#59038 add support for "plain" NG protocols * [41e70d8] MT#59038 add VSC options to NG script * [4835e5e] MT#59038 split up call_block_dtmf_ng * [0ef4984] MT#59038 mutually exclusive operations * [953fabb] MT#59038 support `block DTMF` flag * [d5793cd] MT#59069 add typed HT remove_all() * [b67b28e] MT#59069 support non-unique metadata keys * [9a4da6e] MT#55283 don't use automatic variable in prereq. Thanks to S-P Chan * [39df781] MT#55283 remove redundant ip_send_check * [fa37be0] MT#55283 set skb->dev * [c96755d] MT#55283 set up recording after offer/answer * [840c2a8] MT#55283 add rtcp-fb tests * [99021ca] MT#55283 fix potential deadlock * [e437c06] MT#55283 remove pointless struct * [cb2ae4e] MT#55283 rename match flag and function * [2f0b45b] MT#55283 add check_matched_flag() * [8458652] MT#55283 fix regression from fe9d1f5ae3 * [1e1f004] MT#55283 update kernel.c to bool types * [6bdedc5] MT#55283 safeguard against kmalloc failure * [52c4ed7] MT#55283 add missing docs * [b0837e3] MT#55283 support GRO * [06eced5] MT#55283 reset skb GSO after copy * [0502ddc] MT#55283 poll_wait before checking status * [5f2d5ed] MT#55283 move config defaults around * [da7b8f3] MT#55283 refactor timer thread creation * [bc504e2] MT#55283 use one timerthread context per thread * [9562128] MT#55283 conditionally wake timer threads * [96a894f] MT#55283 move helper funcs away from g_ namespace * [2160cb0] MT#55283 use helper struct instead of void* array * [074acd0] MT#55283 optimise timer tree lookup * [0de6da4] MT#55283 set POLLHUP on EOF * [a74b877] MT#55283 use function to avoid silly goto * [90aa63a] MT#55283 fix/rework poller-per-thread feature * [e8b5887] MT#55283 use per-call poller * [826bfe7] MT#55283 consolidate t/c return codes * [527225a] MT#55283 unify buffer-sending code * [d6b09b5] MT#55283 add version test for X509_STORE_CTX_get0_cert * [72c3ce7] MT#59038 add alternative option name * [1ff0891] MT#55283 save some bits * [24ce8de] MT#59038 shortcut media_player_new() * [70db5c5] MT#59038 update return types to bool * [ed19905] MT#59038 split up media player start functions * [afdf0ad] MT#59038 exclude function from non-tc builds * [18f807f] MT#59038 clean up repeat/start_pos * [bd43cd5] MT#59038 extend transcoding code exclusion * [9223109] MT#59038 specialise media_player_play_init * [ed87786] MT#59038 separate player init/start functions * [931c0c7] MT#59038 use recording monologue setup wrapper * [40ce322] MT#59038 add missing flags to query output * [151c45d] MT#59038 add block-egress flag * [cb39c9a] MT#59038 support repeat starts of the same player * [6305912] MT#59038 add rec announcement options * [ec6b2c7] MT#55283 replace iptables * [bb1260f] MT#55283 fix backports generator script [ yksp ] * [9fed01c] MT#55283 Fixing Source and Destination fields when record-egress is enabled [ szcom ] * [76eec48] MT#55283 Fix RTCP report deadline timeout ref #1781 [ Stefan-Cristian Mititelu ] * [3cd4681] MT#55283 Encode and restore json recording_random_tag [ Alex Hermann ] * [2e7e720] MT#55283 Don't fail deleting the iptables chain if it is still in use * [4cf8be0] MT#55283 Do not remove jumps to custom chain if base chain is "none" [ Takuya Wakazono ] * [50cd131] MT#55283 Fix rpm build without transcoding feature [ Donat Zenichev ] * [5a7a757] MT#59038 Fix a defect detected by Coverity Scan (websocket) * [e2d4da9] MT#59038 Fix a defect detected by Coverity Scan (dtmf) -- Sipwise Jenkins Builder Fri, 15 Mar 2024 08:50:09 +0100 ngcp-rtpengine (12.3.0.0+0~mr12.3.0.0) unstable; urgency=medium [ Richard Fuchs ] * [65c1c28] MT#55283 use transparent union * [f7edf11] MT#55283 increase glib dependency to 2.44 * [43d1427] MT#55283 switch basic GQueue to g_auto * [5a2819b] MT#55283 use g_auto for string buffers * [43b171c] MT#55283 replace free_gvbuf via g_autoptr * [fccf2df] MT#55283 use transparent union * [bc61caf] MT#55283 turn sdp_ng_flags into a typedef * [83ee0b1] MT#55283 use g_auto for sdp_ng_flags * [afbb769] MT#55283 use g_auto for str objects * [c28ba5c] MT#55283 use g_auto for GString * [cfa560c] MT#55283 use g_auto for GHashTable * [6792188] MT#55283 use g_auto for nftables * [734ef1f] MT#55283 use g_auto for config_log * [a75a828] MT#55283 use g_auto for FILE and DIR * [8a3ddda] MT#55283 add fmtp to debug log messages * [ed635a6] MT#55283 retain codec tracker status for answers * [10d5074] MT#55283 add tests for repeated answer * [0a7812a] MT#55283 fix missing unlock * [83140f6] MT#55283 backport fix for I2ce02e92debce0b * [a1d8bf2] MT#55283 add codec_store_merge() and logic * [4a1fe2b] MT#55283 extend codec_tracker_update * [4b64bc7] MT#55283 add additional tests * [8fba68f] MT#55283 verify "zero" DTLS cert * [a0eca11] MT#55283 slightly improved crypto lookup * [c11a05f] MT#55283 introduce typed GHashTable primitives * [716d877] MT#55283 use typed hash table for janus objects * [de5b6cf] MT#55283 use typed hash table for websocket * [30f75fa] MT#55283 introduce typed GQueue primitives * [218f4b5] MT#55283 use typed GQueue for websocket objects * [edb1dd8] MT#55283 use typed GQueue for janus ret_streams * [f4677f6] MT#55283 use typed GQueue for homer * [4e70788] MT#55283 use typed GQueue for stream_fd * [d4d8e03] MT#55283 turn stats_metric into typedef * [40fcf7e] MT#55283 use g_auto for stats_metrics * [575d868] MT#55283 turn ng_buffer into typedef * [57a80b4] MT#55283 use g_auto for ng_buffer * [404f264] MT#55283 introduce typed str_q * [9810c50] MT#55283 use str_q for parsed flags * [6685fb6] MT#55283 use g_auto for sdp_streams/sessions * [cbaa0c1] MT#55283 use typed GQueue for ICE lists * [08727c5] MT#55283 use typed GHashTable for ICE * [a97a491] MT#55283 use typed GQueue for sdp_media * [651acec] MT#55283 use typed GQueue for sdp_attribute * [65343d9] MT#55283 split out enum declaration * [9c64461] MT#55283 use typed GHashTable for id_hash * [ab88eff] MT#55283 use typed GHashTable for attr_list * [74b8a6c] MT#55283 use typed GQueue for attributes * [e1e0d56] MT#55283 use typed G* for SDP fragments * [9999098] MT#55283 use typed GQueue for codec_store * [e4fb02b] MT#55283 use typed GHashTables for codec_store * [de6c06a] MT#55283 use typed G* for codec handlers * [49037ae] MT#55283 use typed G* for codec-set/except/SDES * [7c6f5d1] MT#55283 use typed GHashTables for globals calls hash * [812b627] MT#55283 use typed GHashTables for metric_types * [e5ccca3] MT#55283 use typed GHashTable for SDP rem/subst * [3114510] MT#55283 specialise struct intf_list * [73f1037] MT#55283 use typed GQueue for socket/sfd lists * [dd3471d] MT#55283 use typed GQueue for codec_packet * [57598e1] MT#55283 use typed GQueue for stream/handlers * [dc9e386] MT#55283 use typed GQueue for dtx_packets * [895e67d] MT#55283 use typed GQueue for delay_buffer * [9510b01] MT#55283 use typed GQueue for dtmf_events * [260fc20] MT#55283 use typed GQueue for silence_events * [8e0276d] MT#55283 use typed GHashTable for codec_stats * [610238d] MT#55283 use typed GHashTable for labels * [9c1f66b] MT#55283 add typed GPtrArray primitives * [5fec35e] MT#55283 use typed GPtrArray for medias * [71c7b8c] MT#55283 use typed GPtrArray for cache packets * [2975b21] MT#55283 convert struct call to typedef * [c6b9070] MT#55283 use g_auto for call_t * [d8a17a2] MT#55283 use typed GQueue for perf stats * [cd4f660] MT#55283 convert struct stream_fd to typedef * [a8f9e7b] MT#55283 use g_auto for stream_fd * [2b41188] MT#55283 use typed GHashTable for local sockets * [5bd94a1] MT#55283 use obj_release macro * [f0eba3c] MT#55283 use typed GQueue for kernel list * [d23d9f8] MT#55283 use typed GQueue for ports release * [38d064e] MT#55283 use typed GHashTable for tcp streams * [afbd7d4] MT#55283 remove unused function * [c9ac6ec] MT#55283 convert struct rtp_payload_time to typedef * [656de5b] MT#55283 use g_auto for rtp_payload_type * [f41989e] MT#55283 convert struct mix_buffer_ssrc_source to typedef * [99ae773] MT#55283 use g_auto for mix_buffer_ssrc_source * [635214b] MT#55283 use g_auto for GOptionEntry * [0dc3768] MT#55283 use g_auto for auto locks * [46a5998] MT#55283 use typed GQueue for endpoint_maps * [7b2ba53] MT#55283 use typed G* for call members * [8f98f69] MT#55283 use typed G* for subscriptions * [a40557e] MT#55283 remove obsolete macro * [ce22afa] MT#55283 use typed GQueue for calls iterator * [e969a79] MT#55283 check DTLS src/dst addressses * [a50d553] MT#55283 obsolete bitfield helpers * [a951651] MT#55283 move bit flag helpers * [f4a546a] MT#55283 add atomic64_or/and * [c9c6117] MT#55283 update all flags to 64 bit * [949c5a9] MT#55283 work around gcc <12 being stupid * [76203fd] MT#58636 add new option 'static codecs' * [ea59f28] MT#55283 convert to auto LOCK * [e439a27] MT#55283 protect read with mutex * [3df5fb9] MT#55283 fix typo * [a968afc] MT#55283 fix possible mem leak * [e5963df] MT#55283 add extra opus fmtp test * [c6a5b53] MT#55283 use escaped command strings for Graphite * [f9d6e7b] MT#54294 fix typo * [5fb74f1] MT#55283 fix typo * [63b0bc5] MT#55283 add extra test for a=rtcp-fb * [4e3d554] MT#55283 obsolete PARSE_DECL [ Andrii Pogrebennyk ] * [c75cffd] MT#55283 add config rtcp_interval used when generate-RTCP=on * [64631fb] Add the new option rtcp-interval description and example [ Dennis Yurasov ] * [6a8c523] MT#55283 Avoiding "Too many packets in UDP receive ... [ Michael Prokop ] * [6c3e352] MT#58934 Provide GitHub issue templates * [6d2b26f] MT#58934 GitHub issue templates: list architectures as reported via `uname -m` [ Donat Zenichev ] * [4e59215] MT#58718 Deprecate the `__subscribe_matched_medias()` usage * [f4c5f8f] MT#58717 Media sinks: `call_block_silence_media()` * [5de30a8] MT#58716 Move transcoding flag to media * [2924e89] MT#58717 Refactor the `call_block_silence_media()` * [acd303c] MT#58636 Fix a defect detected by Coverity Scan * [3348f2a] MT#59086 Remove superfluous inclusion of `call_interfaces.h` * [bebe291] MT#59086 Unify header files inclusions. * [423d7bf] MT#59086 Unify header files. * [c95ec2b] MT#59087 refactor flags handling in alphabet ordering [ Michal Hajek ] * [afd85a4] MT#55283 leave SRTP keys in place after DTLS shut [ Chris Hofstaedtler ] * [7e140e8] MT#55283 install files into /usr (DEP17 M2) -- Sipwise Jenkins Builder Mon, 15 Jan 2024 14:49:03 +0100 ngcp-rtpengine (12.2.0.0+0~mr12.2.0.0) unstable; urgency=medium [ Richard Fuchs ] * [af761e9] MT#55283 explicitly enable gcc optimisation * [e24baca] MT#55283 selectively stop codec handlers * [3823507] MT#57371 fix rule deletion * [4be28b8] MT#57371 remove leftover test code * [b263aba] MT#57371 split out function to add UDP filter * [e39f2ee] MT#57371 split up rtpe_target function * [c048bd5] MT#57371 adapt base chain rule * [4a5540a] MT#57371 convert nftables_setup args to struct * [82c7827] MT#57371 convert arg from void* to struct * [18f0903] MT#57371 support rule prepending * [27a1d60] MT#57371 support "none" as nft base chain * [f5416c6] MT#57371 configurable nftables families * [92e981d] MT#57371 change scope of temporary object * [56f94b9] MT#57371 make callback function optional * [0ca666a] MT#57371 split up match_immediate_rtpe function * [a4024ac] MT#57371 add --nftables-status option * [eaf4376] MT#56471 rework mix-buffer tests * [531e720] MT#55283 add desired_family to call_monologue * [32dd03c] MT#54294 update to codec-chain framework * [72b053b] MT#56008 increment EVS decoder frame count * [3f5a22d] MT#55283 fix use-after-free * [6472428] MT#55283 fix media array building * [c3510b4] MT#55283 reverse order of "all" subscriptions * [f24f59e] MT#55283 fix possible mem leak * [96ae637] MT#55283 remove some duplicate code * [b265477] MT#55283 add SDES-prefer option * [9669130] MT#55283 restrict ifunc usage to glibc * [6bb7a12] MT#57719 adapt extended tests after 3c28cb32 * [c2b2fbe] MT#55283 update tests for new ffmpeg * [8587bbe] MT#55283 increase log level in system test [ Donat Zenichev ] * [8ebe410] MT#56128 docs: refactor the `SDP attributes manipulations` part * [85fc7ff] MT#57719 Move `monologue_subscribe_*` to media subs * [71aa149] MT#57719 Provide some of attributes list via `stream_params` * [bd11d22] MT#57719 Move `a=ssrc-group` attribute via `stream_params` * [37102a1] MT#57719 Move `a=extmap` attribute via `stream_params` * [3c28cb3] MT#57719 Add SDP session attributes print (subscribe) * [8640112] MT#57550 Use media subs for reporting in `call_destroy()` * [b923e5e] MT#57550 Unconfirm monologue medias using subs * [783b2a1] MT#57550 Use media subs in the `kill_calls_timer()` * [fbf666f] MT#57550 Improve `monologue_stop()`, add subs handling * [5332e48] MT#57550 `call_get_dialogue()` spot intactness (ft/tt) using media subs * [9ad2d9d] MT#57550 Don't rely on empty from-tag in `call_delete_branch()` * [a3faa56] MT#57550 Create a new from-monologue, if still not matched * [84c8f15] MT#57550 Update `call_get_monologue_new()` to use media subs * [9035997] MT#57550 Rework `__update_init_subscribers()` to work on medias * [8ac455d] MT#57550 Set `set_monologue_flags_per_subscribers()` work on medias * [6a792f2] MT#57550 Demount `call_subscription` concept * [da13484] MT#57719 Fix defect spotted by Coverity Scan (85fc7ff) [ Steven Ayre ] * [1e64ac2] MT#55283 add label to dtmf notification [ Michael Prokop ] * [ecb70a2] MT#55283 Further rtpengine-iptables related cleanups [ S-P Chan ] * [47740eb] MT#55283 RPM packaging: update for EL8/EL9 -- Sipwise Jenkins Builder Wed, 29 Nov 2023 13:38:27 +0100 ngcp-rtpengine (12.1.0.0+0~mr12.1.0.0) unstable; urgency=medium [ Donat Zenichev ] * [259b3a7] MT#57719 call: introduce `media_subscription` and according objects * [2a95649] MT#57719 call: funcs introduction for media subscriptions handling * [4bbbfba] MT#57719 stop using `call_subscription` when getting dialogs * [c6a5657] MT#57719 Refactor `call_media_unkernelize()` function * [101cc3b] MT#57719 Introduce the `media_unconfirm()` function * [78f56e0] MT#57719 Use media subscriptions: `call_get_monologue_new()` * [d753910] MT#57719 Use media subscriptions: `__update_init_subscribers()` * [d02f42c] MT#57719 call.c remove unsed functions * [06f0c7e] MT#57719 Use media subscriptions: `call_get_dialogue()` * [2152a90] MT#57719 ssrc: Use media subscriptions: `hunt_ssrc()` * [4f8cd65] MT#57719 Use media subscriptions approach in `stream_packet()` * [554832d] MT#57719 Use media subscriptions in `codec_update_all_source_handlers()` * [91f16a8] MT#57719 Use media subscriptions in `cli_list_tag_info()` * [530a569] MT#57719 cdr: Use media subscriptions in `cdr_update_entry()` * [d1e29f1] MT#57719 call_interfaces: Use media subscriptions * [ecc5420] MT#57719 redis: Use media subscriptions in `__find_subscriber()` * [f984c8e] MT#57719 redis: Use media subscriptions approach * [78ea344] MT#57719 codec: stop using call subscriptions * [bf2403f] MT#57719 redis: move media to monologue linking to `json_medias()` * [a0abcd6] MT#57719 monologue_offer_answer: stop using call subscriptions * [d4f29df] MT#57719 Deprecate call subscriptions `monologue_subscribe_answer()` * [13367cb] MT#57719 stop using call subscriptions for `__sub_is_transcoding()` * [2737a6d] MT#55897 RTD: fix sphinx based theme * [de492bb] MT#55897 RTD: Fix linking in `architecture.md` * [dafbe36] MT#57719 Stop using call subscriptions: `codec_update_all_handlers()` * [1fd6d5f] MT#57719 Stop using call subscriptions: `call_block_silence_media()` * [ec55ccf] MT#55897 RTD: start using the `.readthedocs.yaml` * [1725c92] MT#58441 Improve attribute level appends * [1bf894c] MT#58441 attribute lvl manipulations, fix fmtp processing * [fff475c] MT#58441 sdp attr manipulations, ignore `a=` in lookups * [5e62bc5] MT#58441 Declare attrs in `sdp_attribute` separately * [ffd0ec9] MT#58441 Add test scenarios for manipulations on fmtp * [5f84bc7] MT#58441 Temporarily remove unit tests for `fmtp` subst/rem * [b9d2489] MT#58441 Add attr subst support to append functions * [3083c71] MT#58441 Add support for `rtpmap` and `rtcp-fb` attr subst * [86b64ba] MT#58441 sdp attr rem/subst goes to the bottom * [f636f54] MT#58441 Coverity Scan report introduced by 1bf894c * [7b46cc7] MT#58441 Revert unit tests for `fmtp` subst/rem [ Michael Prokop ] * [77809b9] TT#124273 GitHub actions: upgrade from bullseye to bookworm [ Richard Fuchs ] * [ddc3565] MT#57977 support multiple listen sockets * [8684a19] MT#57977 use symmetric UDP * [2aa8520] MT#56374 more options for perf-tester * [8d6e649] MT#55283 actually grant the capabilities * [6305255] MT#56374 add missing options to --help * [91a8f4b] MT#55283 use correct ARG_NONE type * [0f9bb26] MT#55283 unify __attribute__() test macros * [915c408] MT#55283 defuse ifunc for unsupported targets * [b9af9d0] MT#55283 skip setting uninitialsed local address * [8001442] MT#55283 further defuse ifunc on non-x86 targets * [a54f638] MT#55283 retain attributes of unsupp protocols * [1ef2e94] MT#56447 don't return details of inactive/disabled * [c0dac00] MT#56374 perf-tester fixes * [f05a8e4] MT#55283 take ice-lite option from session level * [14dbc56] MT#55283 add perl JSON lib to dependencies * [1e4efc6] MT#57977 initialise cmsg buffer * [81151b3] MT#57977 support short-packet blocking * [c94bb41] MT#56374 add proper TODO comments * [17e57fb] MT#57977 convert monologue flags to uint * [62615d9] MT#57977 use local scope variables * [0e35f40] MT#57977 store ml_flags into Redis * [280795d] MT#57977 convert call flags to uint bit field * [7fe1145] MT#57977 store call_flags into Redis * [1238d2f] MT#57977 integrate block/silence_media into bfield * [2fa121c] MT#54294 add GPU support * [b3544be] MT#54294 packaging for rtpengine-gpu * [079bfac] MT#55283 fix up pkg generator for -gpu packages * [13eacc6] MT#55283 fix typo * [7235d90] MT#55283 fix side effects from double printing * [f991930] MT#56008 hard bail on dlsym() errors * [b82b31e] MT#54294 convert cudecs usage to plugin * [dbae76c] MT#57977 fix save/restore of "foreign" call flag * [794f8e3] MT#57371 nftables support * [804df63] MT#57371 use non-local storage for nft target info * [88679d4] MT#55283 replace symbolic mode names with octal * [4307708] MT#57371 document new nftables options * [41104b1] MT#55283 drop support for Debian Stretch * [928e51a] MT#55283 fix kernel versioning mixup * [b2ff4cc] MT#55283 drop support for ancient kernel versions * [979a3c0] MT#57371 drop dependency on iptables * [eea3824] MT#55283 remove rtpengine-iptables package * [8cacdcc] MT#55283 fix typo * [8e14972] MT#55283 add missing (re-) initialiser * [6c7277a] MT#55283 add missing send_timer locks * [494ac00] MT#55283 shutdown: close/delete kernel interface * [469789b] MT#55283 make code checkers happy * [5171fd8] MT#55283 fix possible NULL dereferences * [3b1493a] MT#55283 fix possible use without initialiser [ Tom Briden ] * [e40e6c5] MT#55283 Allow dtmf injection when also using a delay buffer [ Victor Seva ] * [bb9fbbb] MT#55283 debian: fix missing dir [ IgorG ] * [c06f73f] MT#55283 Add ability to check xt_RTPENGINE params [ Chris Lamb ] * [ea6cc29] MT#55283 make the build reproducible [ Guillem Jover ] * [5679083] MT#58356 Update packaging for bookworm -- Sipwise Jenkins Builder Sun, 15 Oct 2023 08:25:39 +0200 ngcp-rtpengine (12.0.1.0+0~mr12.0.1.0) unstable; urgency=medium [ Richard Fuchs ] * [088c58a] TT#136957 fix typo * [583c681] TT#136957 refactor some parts of kernelize() * [7a2b7d5] TT#136957 add RTP mirrors to kernel mode * [3ad63ba] MT#54294 more generic packet_encoded_rtp * [b3c9278] MT#55283 fix double-free bug * [2ac7631] MT#55283 accept alternative Opus encodings * [397abf4] MT#55283 fix variable/argument shadowing in test * [850a1a5] MT#57820 fix possible NULL deref * [205f03d] MT#56861 fix RTP header pointer * [9d3ebc3] MT#55283 fix `git describe --tags` usage * [0fd8117] MT#56374 cap sleep time under ASAN * [c71a341] MT#56374 switch from usleep to nanosleep * [ac7d5e8] MT#56374 remove DTLS timer from poller_timer * [a5793cb] MT#56471 switch CPU detection to ifunc * [ef29dc4] MT#56471 add detection for SSE2 * [6eca29a] MT#56471 change mix_in_fn_t indirection * [7247ef4] MT#56471 convert s16_mix_in to ifunc * [9fc1b54] MT#56471 add SIMD implementation of s16_mix_in * [38344ac] MT#56128 add missing NULL checks * [0bc36b6] MT#55283 refactor call_ng_flags_list * [c109168] MT#55283 pull forward creation of codec_handlers * [051a41c] MT#55283 don't try to free NULL string * [45f46b2] MT#55283 refactor test makefile into helper script * [fb51b00] MT#55283 fatal Glib warnings during tests * [4ab95a0] MT#56128 remove unsupported media type warning * [8266b2d] MT#57848 safeguard against NULL dereferences * [9922e77] MT#56128 add __MT_MAX * [7990d12] MT#56128 convert sdp_manipulations to array * [4089005] MT#56128 simplify sdp_manipulations_add case * [e59e03e] MT#56128 simplify sdp_manipulations_subst case * [bd59c12] MT#56128 convert to sdp_manipulate_remove * [d8c1a67] MT#56128 use existing helper functions * [6b294c8] MT#56128 add helper function for table building * [bd9d2d6] MT#55283 add extra string escaping mechanism * [0a400e0] MT#56128 support sdp-attr manipulations via flags * [37d7762] MT#55283 silence compiler warning * [f4d8b2d] MT#55283 disable redis async delete feature * [f9f9348] MT#56374 eliminate poller_timer functionality * [ba7620d] MT#56374 move poller to lib/ * [84f4467] MT#56374 move rtpe_shutdown to auxlib * [61ca57f] MT#56374 move ssl_random to auxlib * [16c08ef] MT#56374 move pthread helper functions to auxlib * [73489fc] MT#56374 obsolete non-global pollers * [ee0fa94] MT#56374 move resources() to lib * [bf4c66e] MT#55283 silence warning * [3e81cfa] MT#55283 further compiler warning fixes * [4aa1d5f] MT#55283 move prototype * [118a7ed] MT#56374 move thread_create to lib * [94ba3e0] MT#55283 catch possible NULL pointer * [82b2829] MT#55283 also strip a=tls-id from media * [3b53910] MT#55283 remove pointless lock * [7a06e17] MT#56374 convert poller_poll to static * [386f1d9] MT#56374 use slice allocator in poller * [20633a8] MT#56374 remove poller_update_item * [baf12d2] MT#56374 use LOCK macro in poller * [577941c] MT#56374 convert poller_map_add to static * [fe9d1f5] MT#56374 avoid aborting in poller * [f7c4eab] MT#56374 convert poller->items to GPtrArray * [e58d36f] MT#56374 update glib dependency to >= 2.40 * [196249e] MT#56374 refactor asan pthread cleanup hack * [0be5b73] MT#56374 add `poller-size` config var * [1de9aee] MT#55283 limit cname length * [d9e682b] MT#56374 add convenience macros for string creation * [e82c4ad] MT#56374 delay thread creation until after forking * [6e05fe3] MT#55283 check for NULL flags * [85b8a76] MT#55283 add modprobe.d fragment * [309b697] MT#55283 annotate str functions * [40d3765] MT#55283 fix CLI description * [267f965] MT#55283 unify constructor signatures * [3a2e048] MT#55283 add missing static * [baf339f] MT#55283 update to C11 * [9081d39] MT#55283 move codec_handler_lookup * [2d2c987] MT#55283 restore AMR unit tests * [9b6cc05] MT#55283 annotate some signalling functions * [c42887a] MT#55283 use fancy "named args" syntax * [61ce4ca] MT#55283 annotate codec_store functions * [f66df03] MT#55283 add missing "duration" option * [50a91aa] MT#55283 refactor to inline __ip_recvfrom_options * [16dde52] MT#55283 add function to enable PKTINFO delivery * [8328c0b] MT#55283 add recvfrom_to family * [f2f825d] MT#55283 enable PKTINFO for UDP listeners * [20db645] MT#55283 add cmsg_pktinfo family * [8893281] MT#55283 switch to anonymous unions * [c83a0e8] MT#55283 fix compilation for older kernels * [5c5ad6d] MT#55283 use fancy "named args" syntax * [6038711] MT#55283 update var to bool * [2364464] MT#55283 split up codec_offer/answer * [19a0b93] MT#55283 rename rtp_payload_type_fmt_eq * [d9131bf] MT#55283 introduce __monologue_free * [410e9d4] MT#55283 test-transcode -> dynamic monologues * [5f345ec] MT#55283 pass flags to subscribe answer * [4cbc35e] MT#55283 fix RTCP/MOS reporting * [e5cb001] MT#56374 add perf-tester * [673caae] MT#55283 fix compilation for older ffmpeg * [4c78099] MT#56374 replace test fixtures * [125657e] MT#56374 move glib helper to auxlib * [d6928c7] MT#56374 add gettid() wrapper * [028eacd] MT#55283 fix AMR tests mem leaks * [cbd217d] MT#55283 fix for NULL selected_sfd * [7200c7a] MT#55283 actually grant the capabilities * [5cd489d] MT#55283 fix libncurses dependency for stretch * [4b2dff1] MT#55283 fix warnings for older/non-gcc compilers * [4f6f5fd] MT#55283 update config settings to bool type * [48f9803] MT#55283 fix config parsing strategy * [ea0d177] MT#55283 update parsing function to bool * [1475e19] MT#55283 use g_free after g_strdup * [cbd17da] MT#55283 switch to pcre2 * [16e7b94] MT#55283 add `allow-asymmetric-codecs` option [ Orgad Shaneh ] * [1a28b73] MT#55283 Rename aux -> helpers * [a92d79e] MT#55283 Replace bash shebangs with sh [ Stefan Mititelu ] * [9630574] MT#55283 Add total stats interface log line [ Donat Zenichev ] * [7e52297] MT#56374 Move `poller.c` from DAEMONSRCS to LIBSRCS * [bea76e6] MT#57834 Suppress warnings coming from `spandsp_logging` * [d9f12ce] TT#136952 fix `cw_printf()` in `cli_list_tag_info()` [ Tom Briden ] * [88c0ffd] MT#55283 Fix not sending metadata on TLS forwarded [ Alex Hermann ] * [d4d9333] MT#55283 Don't log an error on success when sending DTMF event [ ДилÑн Палаузов ] * [3a94093] docs/usage.md: typo -- Sipwise Jenkins Builder Wed, 30 Aug 2023 18:06:07 +0200 ngcp-rtpengine (11.5.0.0+0~mr11.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [884a2bc] MT#56471 fix mem leak * [e80d380] MT#55447 fix ARM compile error * [5aa6bcb] MT#56447 reformat test script with black * [382c8f6] MT#56447 document hash table contents * [174ead0] MT#56447 disassociate rooms from sessions * [609ac22] MT#56447 remove some indentation * [40bdb4b] MT#56447 transfer ownership of janus_handle * [906dc5b] MT#55283 add dtmf-log-test to CLI script * [60f910a] MT#56447 prettierer code * [046f507] MT#56447 require websocket transport * [a6078dc] MT#56447 add convenience janus_json_print() * [53ba78a] MT#56447 add convenience _get_monologue * [30a84ab] MT#56447 refactor rtcup and mediaup events * [65a86c6] MT#56447 refactor janus_send_json_msg * [f625b38] MT#56447 upgrade handle->session * [c86f73c] MT#56447 rectify janus_notify_publishers * [aff9896] MT#56447 generalise janus_notify_publishers * [94938ec] MT#56447 refactor unpub/leaving notifications * [a91d247] MT#56447 extract "streams" printing * [829b37e] MT#56447 full publisher details in notification * [d3400de] MT#56447 support multiple websocket connections * [d37d7af] MT#56447 add multi WS tests * [05256d0] MT#56447 use explicit BLACKHOLE flagging * [4e300b4] MT#56447 honour RECV flag when receiving RTP * [641ca0f] MT#56447 support "plain" Janus offers * [6852066] MT#56447 support "configure" without SDP * [5392697] MT#56447 add tests for mute/unmute * [cb1f53f] MT#56447 increase websocket logging * [cd1dc1e] MT#56447 allow "start" without feed ID * [213111e] MT#56447 fix multi-stream subscribe * [b86c318] MT#56447 support log retention * [6d771f6] MT#56447 support unpublish method * [833c30d] MT#55283 add extra output-open test * [c0c754f] MT#55283 fix possible mem leaks * [d09a6b1] MT#55283 fix possible mem leaks * [ed30c55] MT#56447 fix LOCK __COUNTER__ expansion * [df3bd87] MT#56447 use LOCK in redis.c * [a9e5c95] MT#56447 redis.c: consistent spacing, code style * [6cb8285] MT#56447 add glib_json_print() * [a758d52] MT#56447 fix locking errors * [2267023] MT#56861 use correct printf formats * [6dc1717] MT#56861 remove pointless case distinction * [fb811bc] MT#56861 set sensible ptime * [b381314] MT#56447 remove pointless lock * [31d8adb] MT#56471 fix tests on 32-bit * [6de6ee8] TT#188850 fix PT tracking * [8899414] MT#56447 don't pointlessly create monologue * [5822cb8] MT#56447 change ml->medias to GPtrArray * [2f983cd] MT#56447 fix trickle ICE detection * [ef99d30] MT#56447 fix ICE role selection * [b9ba273] MT#56447 update var to bool * [bc742bb] MT#56447 add wrapper g_hash_table_steal_extended * [a789afa] MT#56447 use g_hash_table_steal_extended * [baa617e] MT#56447 simplify handle removal * [a590831] MT#56447 move ICE fragment handle * [e561a1c] MT#56447 refactor trickle ICE handling * [da9bca8] MT#56447 extend ice_update_media_streams() * [a67aed7] MT#56447 add ng_buffer_new * [066ecf0] MT#56447 add ng_buffer_auto_release * [6678d15] MT#56447 refactor trickle ICE update * [50f09c3] MT#56447 add bencode_strdup_str * [53026be] MT#56447 use bencode_strdup_str * [567cd06] MT#56447 ensure consistent call IDs * [dca7a84] MT#56447 switch to trickle_ice_update() * [c7114d8] MT#56447 support destroy method * [2a5cfc3] MT#56447 warn on handle/session/WS leakage * [790f605] MT#56447 add missing `static` * [9b3c277] MT#56447 add _destroy_handle() * [892c736] MT#56447 use full handle destroy method * [6608a1e] MT#56447 dequeue ICE fragments after pub/sub * [99fe5d4] MT#56447 add ICE logging context * [8b4d337] MT#57093 more granular kernel I/O structs * [5efbd6d] MT#57093 shortcut copy-out * [15863ba] MT#57093 introduce kernel module version check * [9a63de7] MT#57093 use correct read/write return types * [95176a3] MT#57093 shortcut _update_stats * [fc491af] MT#57093 log reasons for unkernel event * [8b851c4] MT#56759 unify recording_start trigger * [43ea87a] MT#56759 remove obsolete comments * [61ad463] MT#56759 remove unused return value * [4fde86f] MT#56759 split up meta_filepath * [6046d5b] MT#56759 use g_clear_pointer * [dbb86d6] MT#56759 warn on unlink failure * [ef17454] MT#56759 use g_strdup_printf * [f0191a1] MT#56759 update var to bool * [52f757e] MT#56759 provide alternative call_delete_branch() * [eea05c8] MT#56759 support discarding call recordings * [ddc79e5] MT#55283 add missing header * [6640c71] TT#147451 support from-tags=x,y,z syntax * [58ceaf2] MT#56856 split up del_target and get_stats methods * [ddac2ac] MT#56856 add REMG_DEL_TARGET_STATS * [62d8326] MT#56856 split up __stream_update_stats * [42284d4] MT#56856 support the new REMG_DEL_TARGET_STATS * [684174d] MT#56856 ignore reversed TS update * [fa39caf] MT#56861 move flag check out of loop * [ac01a47] MT#56861 be more explicit with "inject DTMF" flag * [27c8db6] MT#56861 use simpler setup for SSRC passthrough * [eb478bc] MT#56861 be explicit about SSRC passthrough * [875e740] MT#56861 split up codec_add_raw_packet * [6b5f1f0] MT#56856 log duration only for end events * [93d4fe7] MT#56861 use SSRC TS for "encoder" TS * [fa819e3] MT#56861 add codec_add_raw_packet_dup * [86e336c] MT#56861 support DTMF injection with passthrough * [67590c2] MT#56861 add tests for passthrough DTMF injection * [8fc1687] MT#56861 support RTP seq no adjustments in kernel * [8cb7a4c] MT#56861 support DTMF injection with kernel mode * [9b18265] MT#56861 always grab input handler * [5433aa0] MT#56861 refactor packet_dtmf_event * [4389aed] MT#56861 use correct codec handler for DTMF inject * [0304e02] MT#56861 support DTMF injection from DTMF * [cf0c938] MT#56861 add tests for DTMF-from-DTMF injection * [07bf12d] MT#56750 fix typo * [4e908d8] MT#56447 fix list pointer check * [77689a0] MT#56861 fix Coverity warnings * [694a8dd] TT#146201 refactor rtpengine46() * [b48ebeb] TT#146201 refactor kernel packet sending function * [62c1cca] MT#56471 defuse mix_buffer without transcoding * [04ce204] MT#55283 fix HTTP/WS deadlock * [14e20a2] MT#55897 add shell quotes * [5d48213] TT#58660 add missing include * [03fd8e1] MT#57268 improve g_queue_move() * [c1b1271] MT#55897 use pandoc instead of ronn * [6dfb278] MT#55283 remove duplicate code * [6f57d38] MT#55283 fix DTMF send scheduling * [fdc9b14] MT#55283 force sequential socket reads * [1162f4a] Force bash usage * [334efd4] MT#55283 refactor is_codec_touched() * [13a7e1d] MT#55283 add codec_touched_real() * [5b9d624] MT#57302 add `exclude-recording` flag * [41cf4fe] MT#56447 move janus_feeds to janus_room * [b5e1d20] MT#56447 allow specific publisher feed ID * [237a3a6] MT#57414 fix shutdown race condition * [95ec093] MT#55283 rename all `str` to `s` * [2f53de0] MT#55283 convert macros to inline functions * [5e5e08e] MT#55283 rename variables to eliminate shadowing * [d241333] MT#55283 move declarations to eliminate shadowing * [b0ac243] MT#55283 simplify pointless expectations * [6ced263] MT#55283 add -Wshadow * [8c11825] MT#57414 fix NULL dereference * [86f2a8f] MT#57466 MT#57337 set rtpe_now in thread * [dcd58d4] TT#146201 fix kernel byte counter * [22b4d92] MT#55283 update argument to const * [ee0b2bc] MT#55283 set output-dest even if not active yet * [5c90785] MT#55283 update return type to bool * [9ed6aac] MT#55283 avoid erroneous endpoint learning * [15709a6] MT#55283 refactor loop thread creation * [b301221] MT#55283 use allocated helper object * [594eb9d] MT#55283 report run times of timer threads * [688c75f] MT#55283 flexible sleep time for looper threads * [b90edf0] MT#55283 looper thread bool return type * [a6ecfb8] MT#55283 refactor load monitor thread * [2e4dec1] MT#55283 refactor call_rate_stats_updater * [c34f3e6] MT#55283 refactor call_timer * [3eb8ea7] MT#55283 add `output-destination` to ng script * [6aed050] MT#55283 generalise output_new * [6bb8713] MT#55283 add trixie backports script * [670f117] MT#55283 honour edge-triggered epoll * [b4a96be] TT#146201 return offer/answer subscription objects * [8783e13] TT#146201 directly set transcoding flag * [e8d42b5] TT#146201 improve find_subscription * [abdf798] TT#146201 obsolete set_transcoding_flag * [0bc7855] TT#146201 reverse redis restore directions * [758617d] TT#146201 delegate setting transcoding flag * [196e874] TT#146201 obsolete TRANSCODE flag entirely * [5ff9294] TT#146201 support RTCP encryption in kernel * [d4b8d6d] TT#146201 add RTCP sending kernel function * [01e3e9b] TT#146201 remove unused `rtcp_only` flag * [e0415ef] TT#146201 support kernel RTCP outputs * [a71824b] TT#146201 push RTCP outputs to kernel module * [7c1930a] TT#146201 don't special-case RTCP rule * [cf2bbc8] TT#146201 update kernel options printing * [9a767fc] TT#146201 mark RTCP-capable kernel streams * [c03362c] TT#146201 use kernel's RTCP sending function * [3a57fac] TT#146201 support forwarding RTCP FB packets directly * [7bf1595] TT#146201 support forwarding all RTCP * [e93b2fd] TT#146201 update SRTCP index from kernel * [171479c] TT#146201 fix typo * [091ec7f] MT#54294 remove obsolete debug include [ Donat Zenichev ] * [3444feb] MT#56750 Reworked port allocation * [2156286] MT#56750 ports allocation: add helpers * [c024b54] MT#56750 Deprecate unused objects of `media_socket.port_pool` * [024d7da] MT#56750 Destroy the `port_pool.free_list_lock` * [6b7bf4d] MT#56750 Fix some typos introduced by 3444feb * [8403fd7] MT#56128 Simplify appending to the `chop->output` * [643c12e] MT#56128 SDP manipulations: mode `substitute` to GHashTable * [177b411] MT#57118 Don't destroy a whole call, if only a branch is to be destroyed * [0994ffb] MT#57118 Rework the call's deconstruction logic * [383ab5c] MT#55897 Fix links in the `README.md` / `overview.md` * [721dc8d] MT#55897 Move 'daemon/rtpengine.pod' to 'docs/' * [461e7f1] MT#55897 Move 'recording-daemon/rtpengine.pod' to 'docs/' * [125c176] MT#55897 Convert `rtpengine.pod` / `rtpengine-recording.pod` to MD * [07ab37b] MT#55897 Add the RTPEngine's usage synopsis to the RTD * [f4eb2d5] MT#57118 Prevent entire call deletion after `monologue_delete_iter()` * [0ce16c7] MT#57118 Refactoring of `monologue_delete_iter` * [a236f46] MT#57268 Move release closed sockets to a separate thread * [2a4f2db] MT#57335 Update the test-stats due to changes in the `call_timer()` * [905d584] MT#57335 Move `stats_rate_min_max()` to a separate thread * [6fe9cc9] MT#57337 Move kernel stats update to a separate thread * [131702c] MT#57378 move `stats_counters_calc_rate()` to a separate thread * [d818b7a] MT#57379 move `ice_slow_timer()` to a separate thread * [2e67156] MT#57380 Deprecate inc/dec functionality of `call_timer` run duration [ Stefan Mititelu ] * [983d91d] Add command to disable/enable redis write * [3397d6e] Fix checksum for kernel packets * [2f705df] Redis fix for active-active [ Dennis Yurasov ] * [2f4f6d5] MT#55283 Handle dtls retransmissions [ Michael Prokop ] * [5a51d33] MT#56627 el/rtpengine.spec: fix version handling for dkms [ Tom Briden ] * [a0fed37] recording-daemon: Insert silence frames as needed during TLS forwarding [ Sjoerd Boomstra ] * [3760c8d] MT#55283 Report queue full as error * [5d75460] MT#55283 Fixed library path for libbcg729 [ Sewan R&D ] * [6fd79f5] feat: notify-purge removes a file if notify success -- Sipwise Jenkins Builder Mon, 26 Jun 2023 14:12:38 +0200 ngcp-rtpengine (11.4.0.0+0~mr11.4.0.0) unstable; urgency=medium [ Stefan Mititelu ] * [30fa7c9] Fix cdr local addr and port [ Lasse Bang Mikkelsen ] * [2351d7f] Limit randomized SDP session version to 32-bit integer * [78f9811] Avoid randomizing SDP session version at zero [ Richard Fuchs ] * [18a5d23] MT#55283 prevent tests getting stuck * [407bf36] MT#55283 adjust diagnostic line/file information * [5f5bea9] MT#56447 allow Janus handles to take multiple roles * [9f7f869] MT#56447 allow Janus configure without feed/room * [38c1f23] MT#56447 split out function to join a Janus sub * [837c024] MT#56447 support multiple Janus subs in one req * [696df96] MT#56447 add CORS headers to HTTP replies * [cc2506d] MT#56447 split out server_info logic * [4697b43] MT#56447 implement GET for Janus protocol * [9b20ce2] MT#56447 support HTTP OPTIONS * [affe8e8] MT#56447 support Janus status methods * [8a5a99d] MT#56447 support /janus URI * [c41188c] MT#56447 more generic websocket_janus_process_json * [1379ba2] MT#56447 handle Janus POST alternative usage * [8b28532] MT#56447 allow creating room with specific ID * [90d9cdb] MT#56447 don't tie rooms to specific WS sessions * [cbc777a] MT#56447 handle the "completed" trickle event * [16c99e9] MT#56447 output "streams" list with "configured" event * [893dad7] MT#56447 switch to early return * [7be1153] MT#56447 move "janus_session" to monologue * [2ccc910] MT#56447 rename _media_up to _rtc_up * [4d70835] MT#56447 add new "media" Janus event * [1859541] MT#55283 shortcut for empty Redis restores * [83912f7] MT#55283 remove non existing function from .h * [088a2db] MT#55283 add test callback functions * [96101f6] MT#55283 add cid() wrapper to test framework * [cf6aa99] MT#55283 add missing redis_update for pub/sub * [1a05f8a] MT#55283 convenience function for unlock/update * [e658052] MT#55283 add test for Redis data * [092fc53] MT#55283 fix Redis tests * [2e6d14c] MT#56469 fix ng-client ptime/db-id options * [6b1e871] MT#56469 fix ng-client typoes * [82d20b5] MT#56469 refactor ng-client flags options * [159e313] MT#56469 refactor ng-client string options * [6df015e] MT#56469 refactor ng-client integer options * [dfdb7db] MT#56469 refactor ng-client string array options * [ae963d6] MT#56469 refactor ng-client codec options * [a87510d] MT#56469 refactor ng-client replace options * [2a2679d] MT#56493 update return type to bool * [9df4c36] MT#56493 add missing options to recording.conf * [10e6ab2] MT#56493 store "mixed"/"single" in output_t * [8b5fa83] MT#55283 add missing log_info_pop * [deb676e] MT#56420 fix incorrect local socket switching * [b28794f] MT#56420 use actual local socket for decryption * [858a9db] TT#146201 update/fix kernel module test script * [cd185fd] MT#56493 move GTree helpers to auxlib * [f1e856b] MT#56493 add some more logging * [d02e825] MT#55283 allow alternative list/string usage * [9828c5b] TT#188850 always increase PT tracker last_idx * [b59ef7d] TT#188850 add PTs handled by the kernel module to PT tracker * [b8b6e89] MT#56493 fix compiler warning * [0b0ad56] MT#56521 terminate test on request failure * [03885f4] MT#56521 hunt for usable packet_stream * [c56c3cf] MT#55283 refactor MQTT callbacks * [ce3a0d3] MT#56469 generalise start/stop recording * [87ea144] MT#56469 add pause_recording method * [e9568c8] MT#56493 move now_double() to recaux.h * [f861d98] MT#56493 track call/stream start times * [ff47e87] MT#56493 add support for HTTP notifications * [2cfdf05] MT#56471 fix wrong option name in sample config * [a0743f2] MT#55283 refactor stats macros * [99230b9] Revert "MT#56420 use actual local socket for decryption" * [8db4d64] MT#56521 add reference to plain RTP protocol * [c9e38eb] MT#55283 properly support double value stats * [b5a20bd] MT#55283 properly output stat strings * [dddaa60] MT#55283 simplify/clarify stats gathering * [6c1fbc5] MT#55283 move stats variables into sensible units * [410a277] MT#55283 remove useless struct member * [c34e6dc] MT#55283 remove "const" from local_intf * [fb9738f] MT#55283 fix def/undef pairing * [d6ca0a9] MT#55283 simplify/clarify min/max stats gathering * [1cb7e0e] MT#55283 split up gauge stats bookkeeping * [095ff4a] MT#55283 collect per-interface stats * [ea9bddb] MT#55283 report interface stats * [fbf7550] MT#55283 collect sampled interface stats * [6f53f80] MT#55283 report per-interface VoIP metrics * [64d7a12] MT#55283 add new `summary` mqtt option * [4498e18] MT#55283 refactor interfaces stats block * [b956303] MT#55283 support reporting per-interval metrics * [595c9b3] MT#55283 add graphite_is_enabled() * [e36386a] MT#55283 disable graphite stats if disabled * [8d409c1] MT#55283 expand test suite to include channels * [5ce8942] MT#55283 test macros for stereo codecs * [531c59e] MT#55283 remove pointless case distinction * [4b3108d] MT#55283 fix generic codec matching * [49776fe] MT#55283 add extra tests for generic codec matching * [f0aea65] MT#55283 support parsing a=tls-id * [614aa1a] MT#55283 restart DTLS with ICE reset * [f8fef89] MT#56521 support legacy non-RFC OSRTP * [78ffaa3] MT#56521 split out SDP media replacement function * [817d9b9] MT#56521 support offering legacy non-RFC OSRTP * [d71d463] MT#56521 support reverse legacy OSRTP offers * [486160e] MT#56521 check skip_over return value * [901acb1] MT#55283 silence Coverity false positive * [62db833] MT#55283 silence Coverity false positive * [b3e6d47] MT#55283 silence Coverity false positive * [906f5c0] MT#55283 remove unused value * [1753ef5] MT#55283 remove pointless case distinction * [ef65009] MT#55283 remove pointless case distinctions * [1c8fc87] MT#55283 resolve port conflict * [a9471ff] MT#55283 don't hand-roll list free function * [de00d07] MT#55283 update type to bool * [91340fa] MT#55283 fix possible null deref * [3e197f7] MT#55283 use correct string to parse RTP * [9448263] MT#55283 fix compile warning * [2910161] MT#56420 split out endpoint hunting logic * [7d8834c] MT#56420 add new port latching logic * [b336828] MT#56420 suppress port-change for sendonly streams * [bf3e03d] MT#56471 add new 'media' log_info type * [4efaf01] MT#56471 use new 'media' log_info * [04dcf74] MT#56471 add tag and media info to sfd log * [6292256] MT#55283 fix stretch backport * [aa0ccae] MT#55283 fix compilation for older libcurl * [d668d17] MT#55283 disable timing-sensitive tests * [79a7ece] MT#55283 correct line numbering for shared files * [be7e810] MT#55283 fix typo * [adad19f] MT#55447 SIMD implementation for float conversion * [eb889aa] MT#55897 list myst_parser as dep for readthedocs * [7ef159a] MT#55447 always annotate .S for non-exec stack * [c55c9f1] MT#55283 strip a:tls-id * [ea65122] MT#56471 extra log output * [ccae6f0] MT#56471 use correct bool value * [9375d76] MT#56471 add media_player_pt_match() * [2a178b4] MT#55283 don't run unscheduled player * [088c4d9] MT#56128 add SDP manipulations to ng-client * [1a30947] MT#56471 add mix_buffer implementation * [8ace838] MT#56471 add more generic create_ssrc_hash * [61f4152] MT#56471 extend get_ssrc to return created y/n * [81a0f36] MT#56471 mix_buffer: support initial write-delay * [1976873] MT#56471 mix_buffer: support time-based delay * [7320425] MT#56471 generalise media_player functions * [b58de96] MT#56471 add media_player_is_active() * [0e2e562] MT#56471 add codec_update_all_source_handlers() * [50ea57a] MT#56471 split out decoder-related setup code * [551b968] MT#56471 extend make_transcoder with callback arg * [ff193e0] MT#56471 support custom "new" fn for transcoders * [0863302] MT#56471 reset codec handlers when player finishes * [b13ce91] MT#56471 don't run media player when shut down * [ddab4a7] MT#56471 add audio_player * [dd75c76] MT#56471 tie in play_media with audio_player * [4b7ec4e] MT#56471 add flag to suppress early media * [fd2845c] MT#56471 audio_player tests * [c9fa42c] MT#56470 support egress call recording * [a5f73d7] MT#55447 fix passing wrong pointer to callback * [7411a98] MT#56782 rename variable * [f2527c4] MT#55283 add "control-pmtu" option * [f40e3c0] MT#56782 pass format to format answer * [244d41e] MT#56782 pass codec format to selection function * [5634502] MT#56782 parse fmtp before selecting codec options * [0408e23] MT#56782 parse out Opus fmtp= string * [deafee1] MT#56782 use stereo= fmtp for Opus channels * [49d0915] MT#56782 add Opus fmtp answer function * [166dae3] MT#56782 add tests for Opus fmtp= options * [c28e225] MT#56471 partially disable play-media tests * [981a907] MT#56470 fix dump_packet arguments * [4964b90] MT#55283 enable -Werror=return-type * [cc96904] MT#55283 fix egress byte count * [83c7336] MT#55283 fix address conversion * [33f19c7] MT#55283 add open_v46_socket() * [711d436] MT#55283 switch DTMF socket to connectionless * [998b55c] MT#55283 unconditionally create DTMF socket * [a20b7b3] MT#55283 add endpoint_parse_any_str() * [0914bf7] MT#55283 add per-call dtmf-log-dest * [cb9ec2a] MT#55283 reverse loop skip logic * [f293ca9] MT#55283 use LOCK() macro * [b207d0c] MT#55283 single-threaded lws_write() * [26cc168] MT#55283 eliminate useless return values * [1457b34] MT#55283 work around LWS thread non-safety * [394ed2f] MT#55283 use correct password for STUN errors * [b0e34db] MT#55283 use bf_copy * [22a6faa] MT#55283 honour "send" flag for subscriptions * [f0219b7] MT#55283 consume recv/inactive flag for subs * [7865337] MT#55283 introduce `inactive` flag * [40056e9] MT#55283 add tests for pause/unpause subs [ Donat Zenichev ] * [ab8c4b1] MT#56128 Re-order option flags in the alphabet sequence * [7d01440] MT#56128 Add a handler to insert sdp_attribute object * [2d5aeb9] MT#56128 Use a dedicated function to free the sdp_attribute * [4c02ad2] MT#56128 Move SDP session final prints into a function * [05b7f9d] MT#56128 Add a function to print SDP attr into chop->output * [d7dbae8] MT#56128 RTPEngine: Add options for arbitrary SDP manipulations * [af643cb] MT#56128 Fix a defect detected by the CoverityScan * [5bd6ae2] MT#56128 Temporarily remove the test #1142 * [de0e31e] MT#56493 Fix some defects discovered by CoverityScan * [5215325] MT#56128 sdp manipulations: improve structures design * [b665b70] MT#56128 Re-add test for SDP attr manipulations * [035de2c] MT#55897 Introduce Read the Docs * [b1f1d6a] MT#55897 RTD: unify titling, achnoring, chapters * [0330d9a] MT#55897 Fix images for the RTD * [b98329f] MT#55897 Restructure general README.md * [a2aebbb] MT#56471 fix return value for media_player_read_decoded_packet() * [4b79d20] MT#56128 SDP manipulations: add support for 'substitute' command. * [1a2d96d] MT#56128 SDP manipulations: CMD_REM check emptiness of attribute * [ada2771] MT#56128 SDP manipulations: simplify CMD_ADD lookup * [244399e] MT#56128 SDP manipulations: improve efficiency of `sdp_manipulate_check` [ Michael Prokop ] * [7dd933d] TT#124273 GitHub actions: switch packaging for unit-tests to Ubuntu jammy * [a66a05e] TT#124273 GitHub actions: update steps to latest actions * [e774bcb] MT#56478 Either depend on lsb-base or sysvinit-utils * [427615d] MT#56627 debian: switch to usage with dh-sequence-dkms. Thanks to Andreas Beckmann for the bug report + initial patch * [b28047d] MT#56627 debian: Pre-Depend on adduser * [710e676] TT#71950 Fix typos * [dfc705d] TT#71950 Unify rtpengine wording [ Victor Seva ] * [4087613] MT#56659 generator.sh: debian/source was not processed [ ДилÑн Палаузов ] * [c0d739a] MT#55283 make install - the utils * [bb6812b] MT#55283 REAMDE.md: typo SDES-nonew [ Guillem Jover ] * [2a6b245] MT#56647 kernel-module: Add MODULE_ALIAS for ipt and ip6t iptables support [ Serdar GÜÇLÜER ] * [a75d554] MT#55283 Support attaching recorded file [ emvondo ] * [900d2be] Update asymmetric RTP behaviour with STRICT_SOURCE flag [ Tom Briden ] * [35ac261] MT#55283 Add an option to not send dtmf log events for injected dtmf -- Sipwise Jenkins Builder Fri, 24 Mar 2023 13:05:58 +0100 ngcp-rtpengine (11.3.0.0+0~mr11.3.0.0) unstable; urgency=medium [ Andreas Granig ] * [3a54a1f] Squashed commit of the following: * [673c241] Only set mqtt alpn if mosquitto lib supports it [ Victor Seva ] * [4d148cd] MT#55283 pkg: fix missing systemd template file * [72dad51] TT#14008 websockets test: expose the real problem when connecting * [aab897d] TT#14008 websockets test: skip tests if version is not supported [ Richard Fuchs ] * [f0b0fee] MT#55283 don't use frame->linesize for output * [ea51fe1] MT#55283 use env var as test case switch * [ced1467] MT#55447 remove unneeded include * [a65954b] MT#55447 refactor encoder callback struct * [9a3ced0] MT#55283 fix nopacket_relayed_sess stats * [7a5069b] MT#55283 simplify statistics_update_oneway a bit * [e8d3bf5] MT#55283 fix deprecation warning * [f82e0ae] MT#55447 introduce proper a=fmtp parsing * [e0ad15d] MT#55447 change rtp_payload_type_cmp to _eq * [ec2aaf0] MT#55447 support non-exact matching of codecs * [1c03323] MT#55447 refactor codec_add_payload_type * [1ff6813] MT#55447 add payload_type_destroy * [8a169c1] MT#55447 parse out a=fmtp early * [60b8299] MT#55447 amend codec_store_add_* * [7fa0569] MT#55447 add codec_store_find_matching_codecs * [59e4707] MT#55447 take a=fmtp into account for transcode= * [302f7d6] MT#55283 fix legacy protocols * [f772115] MT#55447 take a=fmtp into account for accept= * [114a2b6] MT#55447 support parsing and matching AMR a=fmtp * [c815f35] MT#55447 add dedicated format printing function * [cbecca7] MT#55447 add dedicated codec format answer stub * [0c413b0] MT#55283 add more options to /list output * [7ed04c3] MT#55283 add dedicated "unknown" transport protocol * [e811cd4] MT#55283 don't set RTP flag for legacy protocols * [435e5b6] MT#55283 honour `pt_filter` flag * [5188f24] MT#55524 fix typo * [08a05e7] MT#55524 add thread cancel helper macros * [0c4fc1c] MT#55524 use define for thread sleep time * [c9a5714] MT#55524 work around buggy libasan * [69640db] TT#14008 don't use f'' strings in python tests * [dc1a44f] MT#55447 add support for EVS * [8a99171] MT#55283 allow for delay in kernel mode * [40b4d57] MT#55283 fix `single-codec` with odd codec order * [7e9a62d] MT#55283 explicitly track `skb` * [202d26a] MT#55283 allow recording + blackhole * [f95495d] TT#136957 move rand_code from _send to _recv * [25e2640] TT#136957 support multiple frequencies for `tone` * [fc13d02] TT#136957 reset frequency iter counter * [09550bc] MT#55283 support "replace-" flags alternative * [5a5caf9] MT#55283 remove reciprocal subscriptions * [6f0ad0d] MT#55984 introduce `associated_tags` hash table * [53dbef7] MT#55984 fix call teardown logic * [8712e3b] MT#55984 obsolete `other_tags` table * [8d413f6] MT#55984 obsolete `branches` hash table * [c8171f7] MT#55984 safeguard against possible null return * [afb4255] MT#55984 cancel scheduled deletion during offer/answer * [f976f21] MT#56008 switch to fractional clock rate factor * [0114728] MT#56008 support variable clock rate factors * [e7b9ab2] MT#56008 fix G.722 ptime/multiplier confusion * [9c54e97] MT#56008 support encoded-selected clock rates * [bb2316d] MT#56008 use libopus directly * [52dd832] MT#56008 support different Opus "applications" * [0448e12] MT#56008 use hashed string lookup in codeclib.c * [0630ab7] MT#55283 add time-fudging helper .so * [04f9cd8] MT#55283 fix time tracking race condition * [ee941cd] MT#56008 add EVS mode clamping function * [8737d19] MT#56008 support encoder-selected clock rate for EVS * [2f4ed35] MT#55283 relax tests-preload.so AF check * [3bdb434] MT#55283 add extra output on fatal error * [40a1741] MT#54294 mandate "const" codec_def_t * [2565336] MT#56008 extend encoder format selection * [47ba87b] MT#56008 allow Opus single-channel encoding * [edeb41d] MT#56008 decoder-selected clock rates and channels * [b02cced] MT#56126 fix tests for Stretch etc * [797fc0e] MT#55283 provide "make install" targets * [d16e9c5] MT#55283 list libopus as a build requirement * [38b0351] MT#55283 add minimum_ptime codec attribute * [4009d58] MT#55283 don't crash on packet underflows * [5a2981b] MT#55283 shortcut a=fingerprint printing * [8f17f14] MT#55283 support generating a=tls-id * [af37022] MT#55283 split up __fingerprint_changed() * [819f1a0] MT#55283 use signed integers to prevent underflows * [af0db8f] MT#55283 refactor mqtt packet/SSRC stats * [c81859f] MT#55283 fix SSRC stats tracking * [2cf74b6] MT#55283 add media player stats to MQTT * [f642a9e] MT#55283 move __ensure_codec_handler call * [70ef2f1] MT#55283 separate destination PT determination * [2b31fea] MT#55283 determine dest PT early * [54f797c] MT#55283 store AVStream in media_player * [a3b30f0] MT#55283 split out media_player_coder * [f885284] MT#55283 abstract out some _coder code * [fe57810] MT#55283 add repeat-times auto test * [bec9975] MT#55283 abstract RTP sending and scheduling * [cf12ffc] MT#55283 support buffered media player * [ca09549] MT#55283 fix coverity false positive * [973dc67] MT#55283 fix backports * [57ae65c] TT#146201 remove unused function arguments [ Stefan Mititelu ] * [abc2630] Send metadata mid-call [ Dup4 ] * [ad5d98e] MT#55283 Squashed commit of the following: [ Damir Nedžibović ] * [bab3c94] Implement playing from a start position. * [dd2956d] Implement playing from a given position for db and blob. [ Donat Zenichev ] * [eb9aae1] MT#55897 Document general objects in RTPEgnine code (part 1) * [919e3d1] MT#55897 Introduce 'assets' folder for repository resources * [47375c5] MT#55897 Document general objects/funcs in RTPEgnine code (part 2) * [50ba97b] MT#56129 Add a flag to force increasing the SDP version * [3db66a5] MT#55897 Add a diagram for the 'Flags and options parsing' chapter * [3ba1f54] MT#56125 Add a flag to only accept/add allowed SDES crypto suits * [6dcda68] MT#56125 Move sdes_no / sdes_only checks to a separate function * [4f3468c] MT#56125 Update the readme for the 'SDES-no' and 'SDES-only' flags * [2f8e6a5] MT#56126 Introduce a new helper function for parsing flags * [bffd5c9] MT#56126 New function: crypto_params_sdes_cmp() * [8595f95] MT#56126 Introduce a preference list for crypto suites * [40a0451] MT#56126 Add more tests to cover new 'SDES-order:' option flag * [aaff886] MT#56126 Fix a defect noticed by Cov.Scan (introduced by: 8595f95) * [83fc4c9] MT#56127 Improve the way we accept crypto suites [ H. Yavari ] * [3934534] added EVS 3GPP references [ Michael Prokop ] * [6515067] MT#56190 Adjust init scripts for shellcheck v0.9.0 [ Denial ] * [7480ae8] add mix_num_inputs variable to config file * [d751bca] add mix_num_inputs variable to config file [ ДилÑн Палаузов ] * [756fbb8] rtpengine.pod: add dtx to «Some (if not all) logging subsystems» * [a7a9da8] make install: put libxt_RTPENGINE.so and xt_RTPENGINE.ko on the right places * [92ef924] kernel-module/Makefile: install - create the /lib/modules/…/updates directory * [4878540] MT#55283 make install - the man pages -- Sipwise Jenkins Builder Tue, 17 Jan 2023 17:45:22 +0100 ngcp-rtpengine (11.2.0.0+0~mr11.2.0.0) unstable; urgency=medium [ Richard Fuchs ] * [6d26df0] TT#189900 fix SSRC tracking indexing * [85ec6e2] TT#189900 use explicit flag to enable kernel SSRC tracking * [02adda7] TT#14008 fix no-transcoding compilation * [9eb7b64] TT#14008 add explicit lws_cancel_service at shutdown * [3ac4863] TT#14008 don't try to offer RTCP after previous mux * [81a80f8] TT#14008 add test for GH #1494 * [c109644] TT#189201 change block/silence media flags to bool * [ba56e37] TT#189201 unify media blocking/silencing interface functions * [7be1d0a] TT#189201 refactor sink/handler attributes * [2463c5e] TT#189201 simplify attrs handling in __init_streams * [9e22709] TT#189201 add convenience function call_get_call_subscription * [0b8d74a] TT#189201 preserve existing attributes after repeated offer/answer * [1699c90] TT#189201 refactor __add_subscription arguments * [d7ef87d] TT#189201 clear "no kernel support" flag on demand * [f316dea] TT#189201 retain list of sorted payload types * [1efc3d9] TT#189201 move kernel media silencing from input to output * [4a19714] TT#189201 support per-sink media blocking/silencing * [71a5cec] TT#189201 allow `to-label` usage for media blocking * [d492268] TT#189201 upgrade `all` flag to key/value and enum * [354c4ea] TT#189201 add extra `all=` options for media blocking * [103901e] TT#44805 sort keys in script output * [e7abe3b] TT#44805 rename `stats` to `stats_in` * [265067b] TT#44805 refactor stats keeping macro to allow flexbility * [387895b] TT#44805 add bookkeeping for output stream stats * [b8ccbcc] TT#14008 clarify codec options for `publish` * [1add191] MT#55283 kernel module: compile fix for RHEL 9.x * [1ee1f14] MT#55283 remove obsolete backports manipulation * [6432a45] MT#55283 remove bullseye backports manipulation * [c53f213] MT#55283 fix iptables install path for backports * [84c1198] MT#55283 update pointer argument to const * [9e09cf3] MT#55283 fix padding/SRTP order * [dc395d5] MT#55283 typo fix for I6aecff636efd420401856bb8110b3d784f989179 * [06efa83] MT#55283 fix AVFrame linesize after resampling * [fd545cd] MT#55283 close recording SSRCs early * [5d17e5e] MT#55283 fix compiler warning -- Sipwise Jenkins Builder Tue, 04 Oct 2022 13:52:33 +0200 ngcp-rtpengine (11.1.0.0+0~mr11.1.0.0) unstable; urgency=medium [ Michael Prokop ] * [2166590] TT#124273 GitHub actions: enable Ubuntu PPA for debhelper backport * [b657af1] TT#124273 GitHub actions: use pkg script for execution * [e425e82] TT#71950 Fix typos * [81a9366] TT#182450 systemd hardening: mention required capabilities when running as root * [26bf2b0] TT#182450 systemd hardening: allow R/W access to /var/spool/rtpengine * [fd2dfd0] TT#182450 systemd: allow LimitMEMLOCK usage for secure memory usage by libgcrypt * [64650e6] TT#182450 debian/ngcp-rtpengine-*.postinst: fix shellcheck issues [ Nick Hainke ] * [2a6d5cd] fix compilation with iptables 1.8.8 [ Richard Fuchs ] * [17bda4b] TT#156900 fix master/slave race condition with early closed ports * [447f0f5] TT#14008 test correct port for rejected stream * [e157fe1] TT#14008 update some int types to bool * [5d33a42] TT#14008 websockets test: update for Python 3.10 * [b057a2b] TT#14008 retain "codec touched" status after answer * [7b8fa51] TT#14008 ICE test robustness * [38ebbfc] TT#14008 add additional log_info_reset * [59a16e7] TT#14008 add log_info_pop_until() * [de8b3d5] TT#182450 manage /var/spool/rtpengine in rtpengine-daemon * [3139a8a] TT#14008 DTX buffer PT change: take supp PTs into account * [12d59b0] TT#185100 fix codec-set with bitrate for Opus * [343bde8] TT#185100 update int type to bool * [58b4173] TT#185100 Perl syntax fixes * [0870181] TT#185100 support setting opus encoding complexity * [e683b81] TT#14008 fix possible AMR decoder mem leak * [19c8d1e] TT#14008 change Redis restore order * [40ba019] TT#14008 solve Redis restore race condition * [5df21de] TT#14008 skip free list when allocating requested port * [206ea9e] TT#14008 update for ffmpeg 5.1+ * [98a5270] TT#14008 update int type to bool * [6e0c4f3] TT#14008 fix mem leak * [6b5a8f5] TT#178352 generalise metrics gathering and printing * [ae0971a] TT#178400 ignore implausibly large jitter values * [9b4669d] TT#178352 export additional VoIP metrics * [e29835b] TT#178352 report additional metrics at end of call * [778ec46] TT#178400 support reporting out measured jitter * [0558cfb] TT#178400 collect and report RTP sequencing metrics * [a11cb4a] TT#14008 fix typo in man page * [7d5c9f2] TT#14008 don't use zero connection addresses on ICE enabled media * [9e95681] TT#14008 fix typo [ Chris Lamb ] * [821fbf7] make the build reproducible [ Stefan Mititelu ] * [3813821] Add 'all' recording method [ Victor Seva ] * [9ec69c5] TT#182950 pkg/deb: add ubuntu jammy support * [9cd3cc7] TT#186700 systemd template units [ Guillem Jover ] * [d8388f0] TT#124273 Fix building arch:all packages [ S-P Chan ] * [b649aaa] rtpengine.service: match installation location in /usr/bin -- Sipwise Jenkins Builder Mon, 22 Aug 2022 20:03:19 +0200 ngcp-rtpengine (11.0.0.0+0~mr11.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [a3062b5] TT#14008 install binaries in /usr/bin * [2b74e64] TT#14008 prevent double-free of MKI * [bf8cb9f] TT#155900 remove obsolete function argument * [c0d9f84] TT#14008 rename instance of `func` for clarity * [2240921] TT#136957 use separate sequencer per sink/destination * [0518cbd] TT#155900 store subscriptions to Redis with options * [50b8f54] TT#155900 add `RTCP mirror` flag * [c6e7cc5] TT#136957 refactor __send_timer_send_common * [ac4f9de] TT#136957 rename sink variable for clarity * [84fed5c] TT#136957 obsolete TRANSCODE flag * [d055a5d] TT#136957 add `egress` subscription support * [4deff72] TT#136957 don't remove DTMF PT from SDP with DTMF-delay active * [f160a30] TT#136957 update kernel module after 84fed5ca * [aac9f99] TT#14008 fix possible NULL pointer deref * [af948b4] TT#172650 don't segfault if no DTLS cert is available * [008c4c7] TT#172650 update dtls_signature field to enum * [25bf003] TT#172650 add missing options in docs and sample config * [4ce91f5] TT#172650 use custom software ID string for cert CN * [b171029] TT#172650 don't double free RSA key in case of failure * [cf076fc] TT#172650 support EC keys for DTLS certificate * [aed9279] TT#172650 update for OpenSSL >= 3.0 * [71c91ae] TT#14008 add missing auto-cleanup for flags in play_media_select_party * [eb68314] TT#14008 allow passing flags obj to play_media_select_party * [e8f16db] TT#14008 offload flags parsing for play_dtmf/media * [7b594c3] TT#14008 skip codec answer routine for rejected media * [b907dea] TT#14008 fix "Connection: Close" HTTP breakage * [5e18648] TT#14008 restart DTX and delay buffers after shutdown * [442b26e] TT#173752 support per-tag metadata for recording * [667c154] TT#14008 handle possible NULL dtxp->packet * [9ba0dd9] TT#14008 fix TLS-send-only w/o recording scenario * [2137618] TT#14008 don't open a mixed output file unless recording is on * [e0e9bdc] TT#14008 remove unused arguments * [0da7a06] TT#14008 fix Redis restore logic re legacy format * [74075f6] TT#14008 shut down DTX buffer when payload type changes * [fd08351] TT#89352 document Janus replacement mode in README * [2b7a1a1] TT#14008 use interrupt-safe lock for ssrc_stats_lock * [314c6f6] TT#14008 fix test for different G.722 encodings [ Michael Prokop ] * [ffd11fa] TT#14008 Update RPM configs + README for /usr/bin usage * [91169cc] TT#157800 Add CAP_CHOWN capabilities to recording-daemon * [3f1a3d5] TT#76552 Harden ngcp-rtpengine-daemon service * [16693a4] TT#124273 GitHub actions: upgrade from buster to bullseye [ szcom ] * [11098d8] TT#14008 dont look at null packets [ Guillem Jover ] * [4beedbf] TT#124273 debian: Remove module-assistant support * [0432926] TT#124273 debian: Mark non-kernel-module packages as Multi-Arch:foreign * [cb47e89] TT#124273 debian: Switch to Standards-Version 4.5.1 * [bbfaf2f] TT#124273 debian: Update copyright years * [a4ee01d] TT#124273 Update packaging for bullseye * [2f15811] TT#124273 Use execute_after/before_ instead of override_ for dh command [ Victor Seva ] * [10060d3] TT#124273 add missing manpages -- Sipwise Jenkins Builder Tue, 07 Jun 2022 11:45:39 +0200 ngcp-rtpengine (10.5.0.0+0~mr10.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [54ee927] TT#14008 fix websockets test for older python3 * [8d99ef0] TT#14008 use glib allocators for LWS setup * [6d0eba9] TT#157801 explicitly handle v4/v6 also for libwebsockets * [db0dbd3] TT#157801 skip libwebsockets IPv6 bindings if not available * [d3d11c1] TT#157801 don't tell libwebsockets to bind to ADDR_ANY twice * [da5b7ab] TT#136957 add DTMF-delay= options to CLI script * [1bc15de] TT#14008 prevent possible NULL dereference * [261e6a6] TT#14008 disable unstable tests * [30c2de8] TT#157800 run rtpengine as non-root * [cfaa029] TT#14008 don't use internal function when not necessary * [c42af68] TT#14008 always unkernelize before closing sockets * [3c1f4b1] TT#14008 remember last used local socket for reporting purposes * [e923616] TT#14008 fix segfault using legacy UDP protocol * [533d4b7] TT#14008 remove obsolete config option * [ca83df7] TT#14008 provide a more complete default config file * [a834572] TT#14008 fix typo * [6d1dfab] TT#14008 convert logging context to stack * [6a0961f] TT#14008 perform ROC guessing also for AEAD * [258f02b] TT#14008 add extra logging for packet recv/send * [4a173c2] TT#14008 fix erroneous crypto reset after rejecting DTLS * [f738752] TT#14008 add packaging for Debian Stretch * [23f5660] TT#14008 unload kernel module after shutdown * [6c96993] TT#162750 add tests for TT#162750 * [3c00a60] TT#14008 anonymise addresses used in tests * [3fbdb49] TT#14008 set package-specific home for non-NGCP packaging * [198754e] TT#14008 emit log messages for ROC resets * [4eecec9] TT#156900 add extra check for closed socket * [4080151] TT#14008 fix SRTP index not being updated from kernel * [014301b] TT#14008 add extra logging for SRTP/SSRC updates * [fd7a6b3] TT#14008 add test for ROC reset * [3571fb1] TT#14008 remove obsolete plugins location define * [866d3da] TT#14008 fix logic test for SSRC substitution * [f8216b7] TT#14008 update supported flags in ng script * [22d8db9] TT#14008 don't accept stray answer codecs that were not offered * [6d5bc8c] TT#156900 enable single-port use with rtcp-mux=demux/accept * [4658b90] TT#14008 don't open extra interface ports when ICE is not in use * [a26601a] TT#14008 add new `reject-ICE` flag * [e59c062] TT#14008 allow ICE reset only during an offer * [97e8c1d] TT#109800 fix mismatched CN generator format * [b259af6] TT#136957 double free fix for 3a90f4438 * [d172f20] TT#14008 update for kernels >= 5.17 * [6466416] TT#14008 typo fix for d172f20b * [429e3da] TT#14008 fix ports mixed up in tests * [85fa5a8] TT#14008 ignore cross-family endpoint changes for ICE * [45a3065] TT#14008 return logical interface matching the address family * [fa130dd] TT#14008 only reset SRTP ROC when doing RTP reset * [2645375] TT#14008 don't skip parsing a=rtcp with a=rtcp-mux * [e37871c] TT#14008 better logging for ICE completion * [f327b5b] TT#14008 silence compiler warning * [b9f9d1d] TT#14008 eliminate unnecessary and pointless abort() * [aae30a4] TT#14008 fix possible use-after-free * [0bd80f4] TT#14008 fix test race condition * [799773b] TT#14008 fix format list printing logic * [16583ef] TT#166107 fix stray ICE reset with rtcp-mux=require * [e46fdf0] TT#162850 delete DB entries without matching streams * [626defa] TT#14008 eliminate compiler warning * [abc7944] TT#14008 shut down codec background tasks during re-invites * [8467cc0] TT#14008 fix duplicate mutex_destroy * [5b2fec7] TT#14008 flag coverity false positive * [5005cc3] TT#14008 handle HMAC() returning error * [87e283f] TT#14008 fix integer handling/overflow * [dd38ff2] TT#14008 silence coverity warning * [d06460d] TT#14008 add additional NULL checks for `flags` * [b2ae39a] TT#14008 fix unaligned 64-bit memory access * [5a23422] TT#14008 remove unneeded perl module usage * [3d18cff] TT#14008 more quiet test output * [a67525e] TT#14008 generalise sub stun_succ * [24ed843] TT#14008 keep track of ICE candidates based on their priorities * [89f5a98] TT#14008 attempt to match ICE foundations for learned prflx cands * [5d923ed] TT#14008 tests for 89f5a988 * [44e06b8] TT#14008 fix man page typo * [f869c23] TT#14008 add new "reject-invalid-sdp" option [ Anton Voylenko ] * [09527f6] FIx bogus date * [b2ef2a7] Following configuration rename * [0d495c2] Run services as non root user * [79a461f] Fix segfault when 'tls-send-to' option not set [ Michael Prokop ] * [378c791] TT#14008 Shellcheck fixes [ Stefan Mititelu ] * [c485408] Add more info about ok/failed t tests [ Razvan Crainea ] * [9c62de8] provide sendrecv mode in siprec tag-medias and media-labels -- Sipwise Jenkins Builder Thu, 31 Mar 2022 00:02:18 +0200 ngcp-rtpengine (10.4.0.0+0~mr10.4.0.0) unstable; urgency=medium [ antonvoylenko ] * [7b04aa2] Tune RPM building [ Richard Fuchs ] * [179b7ed] TT#14008 fix possible segfault * [0c95b12] TT#151150 don't call __get_logical_interface with NULL name * [835ba08] TT#14008 handle NULL selected_sfd in rtcp_send_report * [80e0021] TT#14008 rate limit error messages from sendmsg * [ba14e05] TT#14008 use correct accumulator for managed_sess and avg call duration * [56d4ff7] TT#14008 add config knob for max log line length * [271a2a2] TT#14008 fix local SDP copy incorrectly returned from function * [9c2b53b] TT#147800 don't clutter output dict with empty SSRC entries * [5ed13a1] TT#124273 remove `rtpengine-kernel` Debian package name * [30c124f] TT#124273 use symlinks instead of Install/Alias for aliases * [bbfe168] TT#124273 add non-NGCP Debian packaging * [ca0c699] TT#113650 support "active-replica" alternative to "master" * [e6405c4] TT#14008 add locking for `bypass_seq` case * [190a9e9] TT#14008 allow null TABLE variable * [730cc64] TT#14008 eliminate duplicate DTMF reports when forking media * [a3f2781] TT#147451 refactor media_block_match * [4cbeb15] TT#147451 obsolete necessity for `from-tag` in unsub/sub ans * [4f70536] TT#136952 test-transcode: hold reference to mock call * [bcb912b] TT#136952 allow passing user data to ssrc_hash_foreach * [740bdb4] TT#136957 reset SSRC sequencers when going to transcoding * [31ad47a] TT#136952 split up call info CLI writer * [ef141e6] TT#136952 split up CLI tag info writer * [ea7d04a] TT#136952 add CLI options to manipulate calls and tags * [fdb529e] TT#136955 refactor DTMF event reporting * [61ad51b] TT#136955 only do DTMF event output if we have a PT * [a1a0b03] TT#136956 refactor DTMF frequency generator code * [fbf6491] TT#136956 convert pow() usage to lookup table * [2e5a5f6] TT#147451 rename helper function * [77be8a0] TT#136952 add convenience function to reset all codec handlers * [a7e22ba] TT#147451 add support for multi-ml subscriptions * [f1d37e9] TT#147451 add support for SIPREC style SDPs * [0043814] TT#14008 improve pseudo string hash for YCM * [72504a0] TT#14008 null-proof string hashing and address parsing * [16f2f9a] TT#14008 switch from repeated hash lookups to list iterator * [e11407a] TT#144701 support JSON in NG protocol * [11549cc] TT#144701 support JSON in tests and CLI tool * [219982b] TT#14008 call g_string_set_size before grabbing pointer * [aea33b7] TT#14008 switch must_recrypt argument to bool * [9c0d233] TT#14008 support SRTCP with generate-RTCP * [75ddfd4] TT#14008 add tests for SRTCP generation * [f613cf6] TT#156052 rename total_calls_duration to _intv * [45cb995] TT#156052 add call->destroyed timestamp * [49b79e8] TT#156052 use `destroyed` timestamp for call duration stats * [970757d] TT#156052 add call duration metric to Prom * [7b5b52e] TT#156052 add MOS stats to stats output * [8b79a60] TT#156052 add call duration stddev metric * [9be9ceb] TT#156052 set `destroyed` TS also for delayed deletes * [757cee2] TT#136957 correctly schedule send-now RTP packets * [912524a] TT#136957 use scheduled timestamp when running timers * [f79593e] TT#136957 use output PT clock rate instead of encoder clock rate * [3535d96] TT#136957 fix TS tracking with supplemental codecs * [cf7dcb3] TT#14008 add fallback if codec list is empty * [43523b8] TT#146201 fix kernel test script * [649fdb9] TT#146201 fix incorrect variable used in proc_list_show * [4c2c50d] TT#14008 update for YCM config * [31e41d1] TT#14008 fix poller-per-thread behaviour * [3732354] TT#14008 suppress ICE attribute warning * [f5a148f] TT#14008 change local ICE ufrag/pwd after ICE restart * [aad3fb3] TT#157801 support "any" interface config * [12f23b3] TT#157801 shift handling of v4/v6 addresses * [6b65131] TT#157800 support file mode mask for /proc interface * [2e578d4] TT#157800 add dependency recording-daemon -> daemon * [838433d] TT#157801 add working default config * [8e8e78a] TT#136952 add new delay_buffer struct * [19a5d3c] TT#136953 use delay_buffer for passthrough streams * [a22c3a5] TT#136952 add CLI command to set delay buffer * [975cd33] TT#136954 switch pcm_dtmf_detect to bool type * [e7edfc0] TT#136954 add explicit flag to en/disable DTMF detection * [ba556db] TT#136955 tie in DSP DTMF events with other DTMF reporting * [1ce4f66] TT#136955 trigger DTMF state also when decoding DTMF to PCM * [478c260] TT#136956 upgrade `block_dtmf` to enum to allow for different modes * [38f97c2] TT#136956 support DTMF silence replacement * [20ae998] TT#136956 flush delay buffer at shutdown * [320642d] TT#136956 support DTMF-security=tone * [9da5a46] TT#136956 support DTMF-security=random * [efcd137] TT#136956 add tests for DTMF-security * [5767746] TT#136956 add support for DTMF-security=zero * [9608ae6] TT#136956 refactor DTMF block mode setting function * [6ac4f12] TT#136956 add more options for DTMF replacement * [2ca6434] TT#136957 support DTMF triggers for blocking * [3a90f44] TT#136957 peg seq num tracking to position in delay buffer * [c794c00] TT#136957 refactor DTMF event tracking into a list * [1ef4eeb] TT#136957 split up DTMF event queue into in and out * [3582b62] TT#136957 DTMF delay support * [6d85fb6] TT#136957 tests for delay timing * [a684025] TT#14008 avoid pointless open/close of kernel list * [b1d17cd] TT#14008 use pthread_cancel semantics for shutdown * [cf34ecc] TT#156900 rename functions to avoid namespace conflict * [941a50e] TT#156900 add helper functions and macros * [6b85138] TT#14008 use stream_open for main kernel interface * [c1d238b] TT#144701 extra warnings for unknown flags and keys * [2a58426] TT#155900 update phc flags to bool type * [ee5d01b] TT#155900 add tests to make sure no packet was received * [5fc658e] Squashed commit of the following: * [45a9ce3] TT#156900 track local media sockets in hash table * [d199199] TT#156900 eliminate helper hash table in timer iterator * [6f8ad8f] TT#156900 close sockets on branch deletion * [2d2d766] TT#156900 support single/odd ports for RTCP-mux * [88c6568] TT#14008 Fix use-after-free * [1ccb8de] TT#14008 fix warning as `value` cannot be NULL * [28e3ca3] TT#14008 fix possible NULL pointer dereference * [0cc41a5] TT#14008 fix warning as `output_ch` cannot be NULL * [4be6ff2] TT#14008 fix warning as `ch` cannot be NULL * [60fe710] TT#14008 fix possible unintentional integer overflow * [7836035] TT#14008 fix double mutex unlock * [b8a554c] TT#14008 fix kernel module compilation for older kernels [ John Burke ] * [fab19ed] Add support for endpoint-learning on a per call basis [ Victor Seva ] * [23d0dad] TT#124273 fix typos detected by lintian * [6e7aab6] TT#124273 pkg: use backports scripts to generate different flavours * [9e2bf2b] TT#124273 pkg: add ubuntu focal support * [bc09e94] TT#124273 pkg/deb/generator.sh [ Stefan Mititelu ] * [7adf6ac] Add 'seconds' to some stats duration * [528e108] Add new graphite-timeout parameter [ Ryan Fowler ] * [61b0e3d] Fix README typo [ Michael Prokop ] * [0f1dd7b] TT#108003 GH coverity workflow: ensure to use up2date repository [ hdikme ] * [85ec0fa] TT#14008 send NG command stats count to Graphite * [b79fc34] TT#14008 fix possible NULL pointer dereference -- Sipwise Jenkins Builder Mon, 24 Jan 2022 16:58:18 +0100 ngcp-rtpengine (10.3.0.0+0~mr10.3.0.0) unstable; urgency=medium [ Richard Fuchs ] * [39616a9] TT#14008 change test deps around * [77317a1] TT#14008 add test for multi-intf handling * [41966c9] TT#14008 associate interface with call_monologue * [10d9be0] TT#14008 tests for #1366 * [9a149a7] TT#14008 make CLI call iterators lock-free * [b8211b0] TT#136952 fix transcoder output TS after DTMF event * [785ed90] TT#14008 eliminate duplicate packets_lost counters * [834eb03] TT#14008 add packet loss tracking for userspace passthrough * [4c1b4ad] TT#14008 add test scripts for RTP stats * [eaec8cb] TT#145450 properly namespace kernel module defines * [e443614] TT#145450 cache last used PT to avoid repeated bsearch * [24f6077] TT#145450 add support for tracking multiple SSRCs per stream * [d3a3382] TT#14008 convert threads_join_all arg to bool * [a152f8b] TT#14008 don't wake up all threads during non-wait main sleep * [ff00569] TT#14008 extra mitigation for forwarding loops * [00a76df] TT#109800 refactor DTX timer drift handling * [0c2f990] TT#109800 fix output seq num bug * [47e9f22] TT#109800 add special handling for dtx-shift=0 * [b9eea8c] TT#14008 fix 32-bit compiler warnings * [44e53a2] TT#147451 add missing cleanup of subs lists * [fc56744] TT#14008 remove calls from iterators during shutdown * [2dd5d71] TT#14008 don't directly use __obj_* calls * [176e7be] TT#14008 avoid possible reference leak * [426575a] TT#14008 add backtraces for obj* debugging output * [52986d3] TT#14008 direct people to the new mailing list via README * [9b60747] TT#14008 mention the .deb repo in the README * [8a11013] TT#14008 update instructions for compilation * [f0901e9] TT#14008 update instructions re bcg729 * [2c0e196] TT#107565 fix SDP ordering issue of s= vs o= [ Sebastian Kemper ] * [746dedb] Add support for time64 libcs [ Guillem Jover ] * [e33dc85] TT#124273 Remove obsolete dbg symbol package transition -- Sipwise Jenkins Builder Tue, 23 Nov 2021 14:20:08 +0100 ngcp-rtpengine (10.2.0.0+0~mr10.2.0.0) unstable; urgency=medium [ Richard Fuchs ] * [792b736] TT#14008 fix test case for older libwebsockets * [9990fab] TT#14008 remove obsolete test scripts * [8a60d17] TT#131651 support reverse re-invite to new to-tag * [40695b2] TT#14008 fix possible segfault * [9376204] TT#14008 add iptables as explicit runtime dependency * [1c5433a] TT#14008 fix Coverity MISSING_LOCK warning * [e82be64] TT#14008 remove logically dead code * [d61b6ef] TT#14008 silence Coverity warning * [c708508] TT#14008 fix lock order between janus_session and websocket_conn * [b397bf6] TT#14008 increase number of kernel payload types * [6443cfc] TT#14008 skip stray warning message for trickle ICE updates * [f6461ab] TT#14008 use FILLED flag instead of advertised address for sink test * [702dd9b] TT#14008 don't try to update kernel stats for no-kernel streams * [2770bec] TT#14008 set non_forwarding flag if no sinks are present * [5c01d90] TT#14008 use bool type for SSRC changed funcs * [6c9fe54] TT#14008 remove redundant check for FILLED sinks * [2a39277] TT#14008 add hash table for subscriptions for quick lookups * [6f0439d] TT#14008 avoid duplicate bencode dict keys * [af79ec6] TT#14008 rework offer/answer subscriptions * [758badb] TT#14008 output list of subscriptions in final log stats * [b28ea21] TT#14008 add extra debug logging for kernel streams * [ff2aed5] TT#14008 avoid confirm/unconfirm/reconfig flip-flop * [4fa48df] TT#14008 fix kernel RTCP mux test * [d6bffa1] TT#142100 fix possible null pointer * [ac60645] TT#14008 fix possible null pointer * [3f69a48] TT#14008 add NAT-wait flag * [0c7a1fd] TT#14008 add make dependencies for header files * [a4e3f96] TT#14008 always add a=mid to media section * [fd06430] TT#14008 fix missing timestamping during redis restore * [30d91ec] TT#101150 add test script for stats output * [1fac2b0] TT#101150 use rtpe_now for timer start time * [406f2dc] TT#101150 remove in_tos_tclass from struct stats * [9c3e5e1] TT#101150 properly name RTPE_STATS_INC/ADD * [a1f3530] TT#101150 separate out `struct stream_stats` * [7dcc447] TT#101150 split out "gauge" style stats * [ad64f4f] TT#101150 introduce proper struct for "counter" style stats * [01263d6] TT#101150 refactor counter stats into macro list * [ac51847] TT#101150 add atomic64_set_if() * [181dfe6] TT#101150 update runtime averaging to microseconds * [f8c3f93] TT#101150 add support for local copy-out of stats * [d197a27] TT#101150 add graphite-specific global_stats_ax * [3608d9b] TT#101150 obsolete total_relayed_* fields * [facb4b5] TT#101150 obsolete redundant fields in struct totalstats * [2b60a67] TT#101150 use STATS_INC macro for req stats * [899d957] TT#101150 add stats_counters_min_max() * [7337f4a] TT#101150 obsolete offers/answers/deletes_ps * [8b5f0e9] TT#101150 copy out per-interface counter stats * [b429568] TT#101150 convert stats gauge handling to macros * [f5f29e1] TT#101150 add min/max/avg tracking for gauge stats * [d410228] TT#101150 obsolete struct request_time stats * [6563a5a] TT#101150 move some header includes/defs around * [3fa16c6] TT#101150 generalise ng command stats into array/list * [2ae5cc7] TT#101150 obsolete more fields from struct totalstats * [b0ebe9b] TT#101150 move start timestamp to global var * [06006df] TT#101150 obsolete 'totalstats' * [c5dc348] TT#131402 split up relay stats between kernel and userspace * [7699e1d] TT#131402 convert bitfield functions to `bool` type * [0fa3a10] TT#131402 add stats for user/kernel streams [ Stefan Mititelu ] * [db53dd6] TT#14008 Fix graphite deadlock [ Guillem Jover ] * [111b0a7] TT#137760 Refactor table fetching into a new helper tool * [8ae52f8] TT#137760 Fix table handling * [51c71f0] TT#137760 Remove RUN_RTPENGINE* variables * [948c5fa] TT#137760 Remove support for most options set via defaults file [ Michael Prokop ] * [9a5e025] TT#137760 Fix shellcheck issues [ Ricardas Stoma ] * [d1e2720] TT#14008 show codec name in media stats -- Sipwise Jenkins Builder Tue, 05 Oct 2021 13:21:13 +0200 ngcp-rtpengine (10.1.0.0+0~mr10.1.0.0) unstable; urgency=medium [ Richard Fuchs ] * [017dbbd] TT#14800 update last_packet during signalling events * [232f347] TT#14008 wake up only one timer thread * [6f3bf25] TT#14008 improve timerthread performance * [5c50ec2] TT#14008 convert RTCP timer and DTX to regular timer * [95a3067] TT#14008 implement lock-light global call iterators * [e32d128] TT#14008 add cumulative global stats counters * [369e64f] TT#14008 add mqtt support * [a28df1f] TT#14008 fix incorrect ingress octet count * [891f45b] TT#14008 run jitter calculation for passthrough and egress * [3eae4b3] TT#14008 add MOS-LQ option * [5147da7] TT#111150 force update of APT cache on github * [dd58a1a] TT#14008 reset SRTP index on endpoint change * [523b3ed] TT#14008 update for patched RH kernel * [46a3f7a] TT#14008 skip duplicate comparison of basic codec params * [1d845c2] TT#111150 add top-level make target for asan test * [aeb0b7b] TT#14008 fix MQTT global stats * [f2d7372] TT#14008 fix transcoding logic * [7cb49bc] TT#14008 tests for GH #1289 * [256b991] TT#121752 associate SSRC hash to monologue instead of entire call * [7aac69d] TT#14008 update tests after f2d7372f5a * [ab836ae] TT#14008 fix --mos= case comparison * [a057fff] TT#14008 flag Coverity lock-order false positive * [be11890] TT#14008 don't pass potential null pointer to media_update_stats * [99985d2] TT#14008 fix handling of large WS payloads * [e9f7de8] TT#14008 update for older libwebsockets * [9b6c69e] TT#14008 fix possible null pointer reference * [1d387b9] TT#112700 rework codec offer/answer routine * [3b39795] TT#91151 move `num_ports` into stream_params * [ecb0da8] TT#91151 move `sdp` parsing to generic flags parser * [01a10c0] TT#91151 split input from output legs in kernel module * [751653a] TT#91151 add test script for kernel module * [1e0765b] TT#91151 tie codec handlers to output media/sink * [92fb330] TT#91151 implement one-to-many forwarding * [72bb874] TT#91151 switch SDP parsed vars to auto cleanup * [fc0bbf1] TT#91151 switch str_init_dup to g_malloc * [d0c6919] TT#91151 save last input SDP w/ parsed * [0988537] TT#91151 generalise SDP printing * [ffaed80] TT#91151 save raw protocol string * [00c6dfb] TT#91151 add function to create synthetic SDP * [77b5e0b] TT#91151 fix erroneous variable re-use * [dc3a35a] TT#91151 fix transcoding unit test case * [28fb9f3] TT#91151 init kernel SRTP keys lock-free * [eb7244e] TT#14008 fix minimum XR packet size check * [4f49eee] TT#91151 fix missing "IN" in generated SDP * [0c731ae] TT#14008 fix stream stats not being updated from kernel * [acc489c] TT#91151 add --label option to ng-client script * [9337758] TT#121752 fix RTCP RR SSRC substitution when transcoding * [1085d80] TT#121752 move RTCP processing into egress loop * [94a5fee] TT#111150 fix coverity warnings * [7b59f55] TT#14008 fix handling of possible NULL rtcp_sibling * [66eff2d] TT#91151 add local codec-accept function * [18601d7] TT#91151 pass opmode to media_block_match() * [432cf82] TT#91151 use auto cleanup for call unlock/unref * [fafc1d7] TT#111150 add a build profile to build with asan enabled * [9ad5378] TT#111150 fix coverity warnings * [ab4498e] TT#91151 check all sink codec handlers for kernel option * [8d06707] TT#91151 fix redis-restore media link * [45bd10d] TT#14008 delay learning of endpoint address after re-invite * [ba49f57] TT#14008 fix 64-bit division on 32-bit archs * [34e61f9] TT#119504 introduce auto-unlock type * [ba7a753] TT#91151 rapid push to kernel even when sink is unconfirmed * [765b1e3] TT#89352 use bool type for foreign call functions * [5c519ec] TT#89352 allow create-only mode for call_get_* * [6e160da] TT#14008 move avpkt alloc to encoder_new * [363f7c9] TT#89352 add TCP support to preload testing lib * [58829a4] TT#89352 explicitly disable lws IPv6 for IPv4 binds * [875fc34] TT#14008 fix redis error messages * [1e4c11e] TT#14008 disable some tests * [e2b7b25] TT#14008 fix kernel module for older compilers * [8d5b7da] TT#14008 fix fake getpeername on unconnected sockets * [c06c51d] TT#121752 restore SSRC output per call in NG stats output * [3f88920] TT#121752 fix compiler warning * [853fed7] TT#112700 remove useless duplicate test cases * [24665eb] TT#89352 report SDP errors * [ca1d2af] TT#89352 increase LWS max write logging size * [ae012b1] TT#14008 further fixes for fake TCP tester * [456d7ce] TT#14008 allow some upper/lower case alternatives for consistency * [08fee99] TT#89352 add support for trickle ICE offer * [de85d4b] TT#128050 parse and document `reuse codecs` flag * [cda67ac] TT#14008 fix call iterator race condition * [e792053] TT#14008 add received-from flags into test script * [124d89a] TT#14008 ignore "received from" address when ICE is in use * [0266886] TT#37394 support SO_INCOMING_CPU * [9952647] TT#14008 fix call iterator dead lock * [99fbff4] TT#14008 fix call iterator dead lock * [d116b44] TT#14008 add %l format to output file names * [a615a9c] TT#37394 add missing include * [c2b78aa] TT#132251 refactor kernel payload type tracking * [413798e] TT#132251 implement media silencing * [f043329] TT#91151 add publish/subscribe commands * [4c1d43d] TT#91151 add tests for pubsub * [b0c97e4] TT#89352 support extended ICE candidate syntax * [5fc71c0] TT#14008 support %l format even if recording is started mid call * [1fd62d6] TT#91151 populate "created from" for published calls * [c6bb166] TT#91151 don't segfault on empty strings to redis * [37494da] TT#89352 return value from atomic64_add/inc/etc * [5838141] TT#89352 extend str_to_* to long long width * [b945104] TT#89352 switch `done` flag to bool type * [fbcddac] TT#91151 negotiate DTLS role and SDES for publish * [d824acf] TT#91151 don't send DTLS to trickle ICE addresses * [3a63929] TT#91151 ignore Opus format for comparison purposes * [f2f45a0] TT#89352 return proper ICE candidate parsing result * [05e9b5f] TT#91151 avoid possible null pointer * [d90de55] TT#14008 rename g_tree_remove_all to avoid namespace conflict * [c2b93e7] TT#89352 ignore format of codecs we don't know * [70665e3] TT#89352 add shortcut for "accept any" * [f0b1906] TT#89352 add option to strip a:extmap * [74d3fa2] TT#14008 fix indentation * [acefaf1] TT#14008 report Redis errors on restore failures * [d1f320c] TT#14008 lock Redis context during restore GET * [a52c0fe] TT#14008 don't delete calls from foreign DB during restore * [2130e2f] TT#89352 support Janus control protocol * [e04df3b] TT#101150 use rtpe_now for uptime [ Nathanaël Semhoun ] * [c76b0b7] Fix G729 packet duration [ Karsten Horsmann ] * [b72e53b] Correct EL systemd permissions * [940444a] not report errors if "which" is failing. * [82c741d] TT#14008 Squashed commit of the following: [ Stefan Mititelu ] * [96c05d3] Fix segfault when ps not found [ Damir Nedžibović ] * [cc09099] Squashed commit of the following: [ Daniel Hauptmann ] * [4481c77] TT#128050 Squashed commit of the following: -- Sipwise Jenkins Builder Tue, 24 Aug 2021 16:53:45 +0200 ngcp-rtpengine (10.0.0.0+0~mr10.0.0.0) unstable; urgency=medium [ Guillem Jover ] * [8d7e4c7] TT#111150 Use test -z instead of a prefixed x * [89d1a77] TT#111150 Fix memory leak in test * [07695d2] TT#111150 Use modern uint_t types * [2b4c4d0] TT#111150 When testing the daemon keep the stdout and stderr on failures * [27b2c2c] TT#111150 Fix unaligned access for AES GCM IV initialization * [87e8346] TT#111150 Use volatile in cast * [c09b379] TT#111150 Add an alternative implementation for taint_func * [adbd071] TT#111150 Do not use old-style declarations * [6fc7938] TT#111150 Use {} instead of ; to mark an empty body * [d3390ba] TT#111150 Enable -Wextra minus some of its warnings producing much noise [ Richard Fuchs ] * [6cc1e99] TT#14008 fix possible segfault when out of ports * [a2e05bd] TT#120402 always update output SSRC mapping * [ec42f83] TT#14008 allow usage with just HTTP/WS * [9d4b870] TT#14008 fix seq_file usage * [a9fdc21] TT#14008 amend kernel test script * [a8d5076] TT#119502 correctly restore calls from both Redis instances * [a2af257] TT#98901 fix DTX TS reset detection * [311069b] TT#14008 match SSRC printing in kernel with daemon * [aca786b] TT#99621 fix RTCP generation after it has been stopped once * [80099bd] TT#111150 fix mem leak in codec tracker * [87e5efc] TT#111150 fix mem leaks in test-transcode * [dbf79cb] TT#14008 allow re-invites for calls when load limit is hit * [61a852f] TT#14008 fix debug logging bug * [d5d0a3a] TT#111150 convert str.len to size_t * [e70d203] TT#108551 fix AEAD kernel encryption of small packets * [292ba2e] TT#111150 convert refcounting functions to macros * [6527fb5] TT#111150 fix an SSRC reference leak * [231fc0d] TT#111150 refactor log limiter to avoid GStringChunk * [df5f810] TT#14008 fix base64 encoding issues with older glib in t/ * [983a703] TT#111150 remove stray compiler warning * [2057d0a] TT#14008 rate limit log line about missing output context * [92e3959] TT#111150 fix wrong allocation size being used * [b285665] TT#111150 use ssize_t for signed return type * [2dee580] TT#111150 remove useless comparisons * [dcad209] TT#111150 use intermediate variable for ftell() * [951f4d6] TT#111150 remove dead code * [addaa6a] TT#111150 add missing include * [1205f22] TT#111150 reformat struct initialiser * [4d251d5] TT#111150 disable -Wmissing-field-initializers for gperf * [3778bae] TT#14008 use const char in str_init_dup * [be30d2c] TT#111150 free cn_payload string if present * [24079de] TT#14008 add explicit type to STR*INIT macros * [faee34f] TT#14008 fix rand_hex_string usage * [ab8b25c] TT#14008 conditionally disable spandsp build test * [4c9b543] TT#122401 actually shut down DTX when out of time * [3062184] TT#14008 keep track of selected Redis DB * [1ec517c] TT#14008 restore foreign calls from the appropriate DB * [cc9fb06] TT#14008 fix possible segfault * [a009f76] TT#14008 support media echo and blackhole * [0e2bddb] TT#14008 add `pierce-NAT` flag * [586a802] TT#111150 fix initialisers in test-transcode * [1755ccf] TT#14008 use temporary variable to avoid stray compiler warning * [830abd6] TT#14008 add tests for media echo * [b1409e5] TT#122401 correct ptime handling for negative values * [7c3982e] TT#122401 rename "lost packet" functions to DTX * [da06ed2] TT#122401 add ptime to DTX trigger * [5d5098e] TT#122401 keep track of decoder's output format * [1198852] TT#122401 add generic silence DTX generator * [dc38a0e] TT#122401 support multiple DTX method per codec * [7e24a7e] TT#122401 add CN DTX method * [ec68dfe] TT#122401 add configurable CN method * [64670ff] TT#122401 add option to bypass AMR SID * [4f6af37] TT#122401 add early DTX logging context * [d4fbec3] TT#122401 return ptime from decoded packets for DTX * [4cbd676] TT#122401 add DTX tests * [9b296db] TT#122401 fix timing issues with fluctuating ptime * [ddfce1f] TT#111150 add unit test for resampler * [c7431aa] TT#122401 disable sample filter for CN resampler * [3a6a95f] TT#14008 fix CN passthrough * [2e66655] TT#14008 add tests for CN passthrough * [b734fc0] TT#14008 fix integer handling (overflow/sign) issues * [b110072] TT#14008 deprecate av_init_packet * [50834df] TT#14008 call statistics_free after codecs_cleanup * [58b566c] TT#14008 call the free func only if set * [1b49b43] TT#14008 release all references held by timerthread on shutdown * [25cb6ff] TT#14008 handle deprecated g_memdup [ Clarence ] * [3204598] Fix redis connect failed when there are "@" in redis password. [ Tinotenda Chingosho ] * [575435d] Squashed commit of the following: [ Stefan Mititelu ] * [156271e] Avoid deadlock of notification thread -- Sipwise Jenkins Builder Mon, 14 Jun 2021 16:38:52 +0200 ngcp-rtpengine (9.5.0.0+0~mr9.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [5c79036] TT#14008 fix potential failed assertion * [a8013ff] TT#111051 set thread specific process names * [a25fa3c] TT#111357 don't allow libav* to create its own threads * [b0f185f] TT#111357 refactor sysconf() call into shared code * [9d332f9] TT#111357 use a better default for recording threads * [fdac938] TT#91151 add a free-form software ID config option * [e1ee75a] TT#14008 add `reorder-codecs` flags to test script * [23dbe78] TT#14008 fix possible use-after-free on shutdown * [7c25d39] TT#111357 switch to dynamically allocated strings for file names * [c8d6a45] TT#111357 add support for configurable output file name patterns * [b8b395e] TT#111357 add chmod setting for created output dirs * [8aecb6a] TT#111357 also apply chown to created parent dirs * [eb1157d] TT#112250 don't change ports when endpoint is talking ICE * [77feea6] TT#108551 document AEAD support in README * [083ae4c] TT#14008 convert rtcp-fb handling to list * [c1c80da] TT#14008 better logging for send_timer * [7414da5] TT#100200 fix timing issue with sending DTMF * [af6ef84] TT#100200 suppress audio packets during a DTMF event * [7f579ac] TT#111357 add microseconds to file name patterns * [def813c] TT#101201 fix ICE-lite mode switch * [fc83f64] TT#107565 add `replace-username` option * [3791b8f] TT#107565 add `replace-session-name` option * [8029a4d] TT#113750 don't auto switch from an already selected fingerprint * [19f08a8] TT#113750 tests for I603bb86c * [702044b] TT#111357 fix infinite loop * [ff034ff] TT#14008 use encoder's codec_def instead of parent handler's * [1393dbf] TT#14008 shut down DTX buffer when resetting codec handler * [5cf4717] TT#115400 explicitly disallow ptime in non-RTP SDPs * [52d9768] TT#14008 move build tests to a wrapper script * [6893a7c] TT#14008 skip object precreation on second pass * [8bea6eb] TT#14008 fix possible segfault * [64de499] TT#14008 shut down codec handler when resetting * [d14eeae] TT#111150 fix typo * [389f18a] TT#14008 update for kernels >= 5.12 * [7aabd7d] TT#14008 fix G.729 recording with bcg729 * [a6c7e94] TT#14008 fix output of negative fractional numbers * [42dd21d] TT#14008 compensate for negative clock drifts * [7dc55e6] TT#98901 convert from static DTX delay to dynamic buffer queue * [ac71e81] TT#118350 add SDES=static option * [f7ff136] TT#111357 fix output file names in case of output re-config * [800f098] TT#14008 remove obsolete test scripts and add new kernel tester * [e67e395] TT#14008 fix typo in pod file * [a5d2837] TT#118800 add support for `channels` mix mode * [bfcd2b2] TT#14008 remove obsolete option from pod file * [3ada2ec] TT#98901 handle DTX restarts and TS resets * [5802ff2] TT#54762 add option to enable automatic active/active switchover * [98a42a0] TT#14008 add missing flag to test script * [055b745] TT#111150 don't pass null pointers to memchr or memcpy * [49bfad1] TT#111150 fix possible null pointer dereference * [ef5a954] TT#111150 fix possible unaligned memory access * [d44abe2] TT#111150 fix possible unaligned memory access * [8e39599] TT#111150 add extra runtime options for unit tests * [ade8100] TT#111150 fix unaligned memory access * [2f84553] TT#111150 refactor cookie cache to avoid GStringChunk * [44809a3] TT#111150 refactor xmlrpc_helper to avoid GStringChunk * [b9d6891] TT#111150 remove obsolete str_chunk_insert * [a86d98f] TT#118902 add support for per-call debugging * [0ae9967] TT#108003 run coverity test on a schedule * [c939c97] TT#14008 set getopt require_order to avoid confusing errors * [89666c8] TT#14008 fix ICE if ICE completes before SDP comes in * [aabcfaf] TT#119502 quiet logging for foreign calls * [4d5395f] TT#111150 disable Debian hardening when testing * [05ef61c] TT#108003 fix errors reported by coverity [ Stefan Mititelu ] * [6f457b5] Get time before deciding to re-establish redis connection * [482e2d0] Add stats for ipv4/ipv6/mixed media calls [ Guillem Jover ] * [68797f4] TT#111150 Mark bit-fields explicitly with as unsigned * [a8a0adb] TT#111150 Remove tautological test in dtmf_inject() * [3a69500] TT#111150 Remove tautological check in stun() * [eb84cb0] TT#111150 Use localtime_r() instead of thread-unsafe localtime() * [1e62cbb] TT#111150 Inline int_diff_print_sz() to avoid pointer handling * [c8c5af8] TT#111150 Rename GitHub shellcheck test workflow to shellcheck.yml * [f791bf0] TT#111150 Add new unit tests GitHub workflow * [69d2b3b] TT#111150 Set pkg.ngcp-rtpengine.nobcg729 build-profile on unit-test workflow * [8508177] TT#111150 Split CFLAGS between required and optional * [342a566] TT#111150 Do not override the while build flags on unit-test workflow * [2311544] TT#111150 Do not set -O3 when DBG is not set * [09cd962] TT#111150 Fix memory leaks in unit tests * [39a2b28] TT#111150 Use standard flags for the test preload library * [4fb3e4e] TT#111150 Improve ASAN build flags [ Damir Nedžibović ] * [f650f95] TT#14008 Squashed commit of the following: [ Huseyin Dikme ] * [1d1558b] added rtpengine-ctl set and list options for the delete-delay config parameter * [5348ad5] deletedelay added into the online help [ Dennis Yurasov ] * [bfe6d59] SSRC change fix in kernelized stream [ Dup4 ] * [0e2a0b9] fix: mos calc [ Julien Chavanton ] * [bcf70cf] max-mos: is often invalid when RTCP was not * [4d56c66] mos calculation adjustment for * [3d5e586] mos average fix when missing RTT * [49786d0] adding cumulative number of packets lost * [0483df3] fix rtt from rtcp_rx [ Sergey Safarov ] * [6b3b815] fixed rpm packaging GH #1231 * [9bb6354] rtpengine.sample: added listen-http example -- Sipwise Jenkins Builder Tue, 20 Apr 2021 11:59:57 +0200 ngcp-rtpengine (9.4.0.0+0~mr9.4.0.0) unstable; urgency=medium [ Richard Fuchs ] * [d8b71e1] TT#14008 fix possible null pointer * [2a86d5d] TT#14008 fix possible pcap namespace issue * [16c9f4c] TT#14008 skip over non-ASCII characters in JSON output * [c881293] TT#86103 fix 7b2503a * [9653546] TT#107157 fix LWS HTTP handling crash * [89d017e] TT#97301 update CLI online help * [c69415b] TT#97301 allow printing and setting of individual log levels * [e9bdbb1] TT#97301 fix removal of debug_srtp * [341f2e0] TT#92250 also create codec handlers for synthesised supp PTs * [99ba631] TT#92250 update tests for recent changes * [a02134c] TT#92250 split up __accept_transcode_codecs * [604aa5a] TT#92250 add new reorder-codecs flag * [6bf5e3a] TT#92250 add tests for reorder-codec * [0bab726] TT#92250 reset opposite side supp handlers * [68be3d2] TT#108350 add kernel module version/size check * [d466e5c] TT#97301 fix bit-setting of negative log levels * [6602a3a] TT#108551 add kernel support for AEAD-AES-GCM * [030f38f] TT#97301 add description to log levels * [6feef36] TT#98901 fix some clock skew issues * [ade5c47] TT#98901 wire up codeclib debug output * [40c1def] TT#98901 randomise testing call/tag IDs * [25d90ce] TT#98901 keep track of head PTS in packetiser * [e7739d0] TT#98901 fix TS scaling issues for DTMF * [fd275ac] TT#98901 use DTX buffer for related DTMF events * [60fd172] TT#98901 update tests for DTX * [df11807] TT#106101 don't require connection address for ICE fragments * [28e0620] TT#106101 turn bencode buffer into shared refcounted object * [554034e] TT#106101 also turn UDP/WS receive buffer into refcounted object * [97a1c21] TT#106101 handle out-of-order ICE fragments * [0898923] TT#98901 use correct DTMF codec context * [f2d7e71] TT#108552 update crypto suite preference ordering * [e671a5d] TT#108552 prefer sha-256 over sha-1 * [9c6d57e] TT#14008 allow parallel execute of daemon tests * [c5ef688] TT#76250 consider default number of channel when matching codecs * [8e21b4b] TT#14008 clean up some tests * [f4a7127] TT#106101 mem leak fix for 554034eb7e * [a6a1823] TT#102450 fix some timestamping issues * [88d2765] TT#102450 added tests for Ia9fa96cf * [5741f13] TT#109251 fix redis restore segfault * [e191e16] TT#14008 fix possible segfault * [770df55] TT#14008 improve log output for stray packets * [9d27a2d] TT#14008 fix AEAD kernel API for < 4.2 * [ae82034] TT#99621 add option to disable RTCP generation * [8abc6b1] TT#91151 convert RTP PT hash tables to direct hashes * [95aabe5] TT#99001 support top-level make alias var DEB_WITH_TRANSCODING * [01112f2] TT#107565 fix support for multi-session SDPs * [36273e1] TT#107565 add option to track SDP version * [d47f4ac] TT#14008 make bcg729 inclusion conditional on dpkg profile * [1dbfbe8] TT#14008 move g_string_free helper to auxlib * [b75ec8e] TT#14008 convert CDR logging to g_string * [8b1c958] TT#91151 obsolete unused REMG_UPDATE op * [e860e07] TT#109618 keep track of actual file name used for recordings * [76d5828] TT#91151 explicitly keep track of zero endpoint addresses * [a9f58ff] TT#91151 add tests for null addresses * [79bb147] TT#109618 add option to chmod/chown created recordings * [772db96] TT#91151 fix check for trickle ICE and zero address * [1785f70] TT#91151 add new replace-zero-address option * [225e5ad] TT#108003 don't consume `pt` before finish using it * [7101f53] TT#108003 remove unnecessary null checks * [1219b2f] TT#108003 log error on unlink failure * [21d1057] TT#108003 fix possible deadlock * [302968f] TT#14008 rename some test suites * [ab54b77] TT#14008 remove .depend from make system * [fa6d29b] TT#91151 fix wrong hash table lookup object being used * [abb281d] TT#91151 add additional check for kernel module commands * [7edf0c5] TT#108551 fix AEAD kernel encryption * [4f5e83e] TT#14008 fix possible mem leak * [543bac9] TT#106253 cleanup TLS variables on shutdown [ dvillaume ] * [e4e3112] TT#14008 support repeat-times in media player [ SPChan ] * [0c41107] TT#108551 add support for AEAD-AES-GCM [ Stefan Mititelu ] * [001abe5] Add new config parameter: `save-interface-ports` * [a19854d] Fix build when transcoding disabled [ Damir Nedžibović ] * [2fc5446] TT#14008 Squashed commit of the following: * [0ae0681] TT#14008 Squashed commit of the following: [ balajeesv ] * [ffc9e34] TT#14008 Squashed commit of the following: [ Guillem Jover ] * [4366f6f] TT#99001 Make the with_transcoding builds dependent on build-profiles * [9b5395c] TT#108003 Add a coverity-scan GitHub workflow * [1cc5482] TT#108003 Remove coverity artifacts removal from Makefile * [009aa21] TT#108003 Fix double free in __established() * [07716a6] TT#108003 Do not print the DTLS certificate and private key on OOM * [6d51b3a] TT#108003 Fix off-by-one check dtmf_samples() * [6bc5a84] TT#108003 Fix file descriptor leak in db_close_stream() * [8f44055] TT#108003 Fix memory leak in cdr_update_entry() * [648e74f] TT#108003 Handle unsigned wrap around in amr_encoder_mode_change() * [70d323d] TT#108003 Handle ftell() errors * [e255277] TT#108003 Handle errors during websocket connection initialization * [2c56587] TT#108003 Do not allow division by 0 load_thread() * [962479b] TT#108003 Stop using random() * [6a9d61d] TT#108003 Check send() return code for DTMF UDP logging -- Sipwise Jenkins Builder Mon, 15 Feb 2021 17:54:51 +0100 ngcp-rtpengine (9.3.0.0+0~mr9.3.0.0) unstable; urgency=medium [ Richard Fuchs ] * [014173d] TT#98901 allow packet handler func to consume packet * [6ae33a4] TT#98901 split out ssrc locking * [4519db7] TT#98901 allow NULL send_now timerthread function * [36eb641] TT#98901 add media_packet_copy/_release * [c3ebbc4] TT#98901 add decoder_packet_lost() and callbacks * [054339e] TT#98901 improve/fix some obj debuggin * [58c436e] TT#98901 add ssrc_hash_foreach() * [fa64e22] TT#98901 add codec timers thread * [bae79d3] TT#98901 handle AMR SID DTX * [17e22ad] TT#98901 add limit to length of DTX processing * [e16cb57] TT#98901 don't trigger DTX after a SSRC switch * [8d7badc] TT#101201 rename ICE_LITE flag * [1d34c40] TT#101201 support optional ICE-lite mode * [bd53179] TT#100200 properly support multiple supplemental codecs * [38890bd] TT#100200 split out supp codec finding routine * [87b4d6f] TT#100200 always track supplemental codecs * [7a42c0c] TT#100251 distinguish between real transcoding and DTMF-related t/c * [d362adf] TT#100251 fix redis-restore segfault * [b355e55] make DTMF options dependent on transcoding option * [f393d29] TT#101202 keep timer queue entries with same timestamp in order * [8ded007] TT#101202 fix potential null pointer dereference * [a6022c9] TT#102450 fix AMR recording * [708b486] support kernels >= 5.9.9 * [dec54fa] TT#102500 fix missing timestamping in websocket threads * [de7807f] TT#101653 update transcode-test with new codec flags * [5d895fb] TT#82405 add Prometheus stats exporter * [c9140f9] TT#81212 add function to change call state (own/foreign) * [260a170] TT#81212 add trigger to set all calls to own or foreign * [aa5e024] TT#81212 mark calls as owned upon activity * [9ea1303] TT#100200 fix logic for DTMF detection trigger * [8097f96] TT#100200 add tests for 9ea1303c6 * [f0a29d0] fix compilation for glib < 2.40 * [16fd8aa] TT#101653 alter re-invite codec negotiation logic * [440ca5a] TT#92250 fix to keep supp codecs last in the list * [a642a1e] TT#98901 avoid PT collisions with asymmetric codec setup * [2c35e69] TT#104400 further update for kernels >= 4.19.158 * [c2c7f9a] TT#82405 add convenience function to return HTTP data * [9a2dc5c] TT#104400 further update for kernels >= 4.19.158 * [8de20ce] TT#82405 terminate HTTP connection when output was been written * [54e6894] TT#104500 better support a=rtcp-fb * [6dca19e] TT#99621 move RTCP sending logic to rtcp.c * [195542a] TT#99621 allow RTCP handlers to discard the packet * [97c7534] TT#99621 allow null RTCP handler funcs * [ba66e5f] TT#99621 support RTCP generation * [c12ec66] TT#99621 support jitter tracking for RTCP * [09026c1] TT#99621 track basic RTP stats in kernel * [a15e3a2] TT#99621 update RTP stats from kernel for RTCP * [c5667e3] TT#100200 add CN decoder * [96bd7a6] TT#100200 track matching CN payload types * [08cdc4c] TT#101653 generalise handling of supplemental payload types * [3cc9357] TT#101653 add extra codec negotiation tests * [73e4ef4] TT#101653 add silence detection option * [336cb5b] TT#101653 add codec-consume and codec-accept options * [71d02ff] TT#101653 retire always-transcode flag * [6e51904] TT#101653 add tests for codec-consume/accept * [7c3d2e0] TT#105000 don't send STUN response in response to responses * [fa8a1db] TT#101653 kill auto-test daemon in case of timeout * [a4d0a35] TT#101653 eliminate superfluous log messages * [c620891] TT#101653 check receiver side for supplemental transcoding * [d990ad7] TT#101653 more verbose packet scheduler log message * [8517c99] TT#101653 detect and adjust for output clock skew * [f861ff7] TT#101653 limit maximum delay in input processing after lost packet * [cd577a2] TT#106150 fix possible race condition while processing WS queue * [89c4c48] TT#106100 do not print recording flags for `pcap` method * [a46741a] TT#106100 rename macro args to be less confusing * [5dbd797] TT#94201 fix ICE=default to the intended behaviour * [7f8ae1f] TT#94201 add tests for GH #1147 * [46176f2] TT#101653 defuse codec tracker so it doesn't remove too many * [44bc0b9] TT#99621 feed locally generated RTCP to stats tracker for MOS * [30733ec] TT#97301 support granular log levels * [7b2503a] TT#86103 allow re-use of mix inputs [ Julien Chavanton ] * [e1847ca] RTT per call leg [ timando ] * [92cc573] TT#104400 Update xt_RTPENGINE.c [ Jakub Karolczyk ] * [929c345] For RTCPMUX streams we need to filter out RTCP packets selectively from the stream. Original implementation just stops processing packets in JitterBuffer when the first RTCP packet is received in RTCPMUX stream -- Sipwise Jenkins Builder Tue, 05 Jan 2021 15:33:42 +0100 ngcp-rtpengine (9.2.0.0+0~mr9.2.0.0) unstable; urgency=medium [ Guillem Jover ] * [db87042] TT#91650 Add a .mailmap file to correct author information [ Richard Fuchs ] * [055ac56] TT#91003 use separate encoder and decoder names * [829e9cb] TT#91003 use preferred AMR codecs * [017a2fe] TT#78201 fix existing test * [f48929f] TT#91003 fix AMR fmtp parsing * [25609f7] TT#91003 support `=` escapes in codec strings * [23b1aae] TT#91003 support AMR mode-set option * [d0db2cb] TT#91003 create generic decoder event callback * [e8aac82] TT#91003 add media_out pointer to media_packet * [6fc9459] TT#91003 handle AMR CMR * [30b1193] TT#91003 add AMR mode-set and CMR tests * [48d4dc3] TT#91003 support passing extra codec options * [0918ea2] TT#91003 abstractise fmtp key-value parsing * [c239035] TT#91003 abstractise ffmpeg av_opt setting * [ed9de31] TT#91003 support sending CMR * [1020bcb] TT#91003 honour AMR mode change restrictions * [5a33dee] TT#91003 add tests for extra AMR options * [cd5cd84] TT#91003 add `mode-change-interval` AMR option * [d2e8317] TT#91003 add tests for mode-change-interval * [e4e9061] TT#91003 fix test compiler warning * [c89208b] TT#91003 skip empty keys in key=value list * [a69a27e] TT#91003 copy codec options from decoder to encoder side * [0222936] TT#91003 handle NO_DATA frames from AMR encoder * [62733b8] TT#89352 add convenience function for sockaddr_storage * [aa36a1f] TT#88951 add HTTP/Websocket listener * [cbf6ad7] TT#88951 abstractise CLI handling and writing * [3f301dd] TT#88951 support handling CLI commands via HTTP and WS * [32d43fe] TT#91150 move to a global NG cookie cache * [e662b59] TT#91150 abstractise NG protocol handling * [31f8b6f] TT#91150 support NG over HTTP/WS * [565a4cf] TT#91150 document HTTP/WS interfaces * [92ea268] TT#96200 fix SRTP multi-protocol re-offer * [ba0553b] TT#96200 test for I5fb7638aa71e80c08abcda2d8c341ae72725bace * [ca86f81] TT#14008 fix compilation for libwebsockets 3.x * [5ac9149] TT#92250 keep supplemental codecs last in list when transcoding * [2ce7b64] TT#92250 better handle supplemental codecs * [241c78c] TT#92250 add codec-except option * [1bc43aa] TT#92250 allow codec-strip/offer/except also in answer messages * [653b09c] TT#92250 add `single codec` flag * [ea1ba58] TT#92250 also honour single-codec for reverse transcoded codecs * [9553af1] TT#92250 add tests for single-codec flag * [dc4775d] TT#97302 respond with the same DTLS hash func as was offered * [5ad4a59] TT#97302 add new flag to select DTLS fingerprint algo * [3654309] TT#97302 tests for 5ad4a5 * [71c3154] TT#88750 restore DTLS SRTP details from Redis * [dbd817a] TT#92250 match codec params during codec matchup * [68ccc52] TT#92250 postpone codec_tracker to final stage * [32cfb61] TT#92250 add tests for 68ccc5 * [e1dda97] TT#14008 fix some warnings from musl * [b260e14] TT#97500 set thread stack size * [18a3b9d] clean up codec stats on shutdown * [5883f16] TT#14008 allow externally set CFLAGS * [3893069] TT#92250 allocate strings for hash table storage * [bbc6aa9] TT#14008 avoid double free on shutdown * [4c77336] TT#92250 use correct size when freeing codec tracker * [e4c1702] TT#14008 use G_SLICE=debug-blocks in tests * [377f088] TT#14008 suppress stray redis log warnings * [2502b44] TT#92250 keep supp codecs last when transcoding in reverse * [74fd959] TT#92250 use matching output codec with inject-DTMF * [e67eb7b] TT#94201 add explicit passthrough flags * [95b8145] TT#94201 add ICE=default option * [a89696c] TT#94201 add tests for 95b81455 * [65cf46b] TT#94201 convert ICE= options internally to enum * [6ccfd14] TT#94201 change default ICE= behaviour, add new =optional flag * [cd3652e] TT#97302 fix some DTLS negotiation issues * [4910f7b] TT#88951 support queuing multiple WS output messages * [ee74914] TT#92250 ignore format parameters for DTMF codec * [f021212] fix compiler warning * [64ba12c] TT#99503 fix possible T.38 gateway deadlock [ spchan ] * [dc3b792] Build with new FreeSWITCH package naming for spandsp. [ Doug Rylaarsdam ] * [995375f] Add support for metadata in stop_recording. (Issue #1075 on sipwise/rtpengine) [ Semen Darienko ] * [c741d45] fix segfault upon got reINVITE and BYE at the same time [ Stefan Mititelu ] * [2ebf5a1] Add redis async delete * [cf1721c] Fix compilation when transcoding disabled * [b517946] Add format_cmp_f stub when transcoding is not enabled -- Sipwise Jenkins Builder Mon, 09 Nov 2020 16:27:05 +0100 ngcp-rtpengine (9.1.0.0+0~mr9.1.0.0) unstable; urgency=medium [ Richard Fuchs ] * [e04fb03] Recrypt SRTP for DTMF logging * [214f30e] Unkernelise streams when recording is stopped * [1537edd] TT#88750 add SRTP test script * [5001a02] TT#88750 fix SRTP not working after Redis restart * [1147f85] TT#14008 support building against FreeSwitch version of SpanDSP * [ae5b176] TT#88603 don't remove transcoded codecs we added ourselves * [12ac884] TT#90101 don't blindly accept a protocol switch in an answer * [c790486] fix mem handling for Redis auth strings * [f8f74d8] add missing Redis auth for async context [ Guillem Jover ] * [4995757] TT#88050 Remove dependencies on obsolete packages [ Rosen Penev ] * [4d22918] fix compilation without deprecated OpenSSL APIs -- Sipwise Jenkins Builder Mon, 31 Aug 2020 21:55:56 +0200 ngcp-rtpengine (9.0.0.0+0~mr9.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [112e57f] TT#86102 remove aggressive endpoint learning heuristics * [de37041] honour media-address= also for ICE and RTCP * [73cb248] fix statistics format when multiple transcoders are present * [ec061bb] TT#84804 add new DTLS-reverse flag * [29da888] TT#86850 split out interface-name resolution * [9bcd50e] TT#86850 support DNS name resolution for interfaces * [2369ef5] TT#86850 split out getaddrinfo sockaddr routine * [e65b01d] TT#86850 support DNS lookup for advertised address -- Sipwise Jenkins Builder Tue, 21 Jul 2020 14:49:36 +0200 ngcp-rtpengine (8.6.0.0+0~mr8.6.0.0) unstable; urgency=medium [ attermann ] * [032c6e4] Added cli command for parseable stats. * [ccf1d46] Extended json control statistics * [74f5676] Made hash tables for flags case-insensitive. * [da3c40e] Added "currentstatistics" to json stats. [ root ] * [e44abd3] JB marker fix * [05b6da4] JB marker fix * [5179de7] trap divide error crash fix [ Richard Fuchs ] * [89175c8] TT#81850 fix SRTP re-offer and RTP to SRTP switch * [19ac0de] fix tests for non-bcg729 case * [e25d0b9] TT#82100 hunt for usable payload type for DTMF injection * [5f3f203] TT#82203 add stats for transcoded sessions * [64e6bf4] TT#82203 add detailed transcoding stats * [7063a27] TT#82650 fix /list never ending output * [d715269] TT#82650 add missing flags to ng scripts * [a0d0733] fix compilation when spandsp is not present * [61acd97] TT#82651 avoid unnecessary transcoding when DTMF PT is present * [d97a056] TT#83150 fix SSRC substitution w/ SRTP in kernel * [38bb6d8] TT#82651 same as 61acd9761 but in reverse * [ac765d1] TT#82410 unify stats gathering functions * [1015cea] TT#82401 amend stats gathering to detect ints * [6d2aecc] TT#82401 amend stats gather to keep track of braces * [cdcf80c] TT#82401 add statistics NG command * [8a4f88f] TT#55050 man page updates * [f4717cb] TT#28300 make sure log marker strings are always set * [a1fb923] TT#28300 eliminate free_buf in favour of free_gbuf * [48b33bd] TT#28300 move auto cleanup functions to lib files * [39b04ec] TT#28300 use more auto cleanup variables in config_load * [3ca61f3] TT#28300 fix --config-section not being honoured * [08fc2ec] TT#28300 free config strings with dupes between argv and file * [a4849f7] TT#28300 eliminate need for if_a_global * [2a4dbd8] TT#28300 add cleanup of global interface structs * [e01b3b4] TT#28300 add cleanup of calls structs * [1589c29] TT#28300 add cleanup of poller related data * [3c3729f] TT#28300 fix missing strdup for multi homed interfaces * [1095440] TT#82410 fix missing comma for JSON list of objects * [203f502] TT#77806 add port stats to JSON/bencode output * [92ee64f] TT#84350 fix make races * [7cbea58] fix str_init_dup_str * [f6874af] fix another JSON comma missing * [6b49c88] don't always reset crypto when DTLS is in use * [a3b298e] add local address/family to NG stats output * [b7d3db1] add alternative dummy codeclib_free * [9d53e73] TT#84360 simplify log printing routine * [eae7f3a] TT#84360 add new option to split multi-line log messages * [dd3f77b] trim trailing spaces from config values * [832f73f] TT#85750 add transcoder stats to stats output * [8f5ee5b] TT#84804 test lib: don't require object when not necessary * [cba8127] TT#84804 test lib: return port when requested to * [54a39db] TT#84804 start DTLS as soon as ICE can communicate * [592af4d] TT#84804 add tests for ICE/DTLS and GH 1035 * [18830a1] TT#84804 detect and report collisions in ICE candidate pairs * [8e22c9a] TT#85701 improve branch handling with delete-delay=0 * [87521ea] TT#85701 fix regression from 8e22c9a41 [ Sebastian Kemper ] * [c9cf633] kernel-module: fix implicit function declaration [ Stefan Mititelu ] * [6043d15] Add drop-traffic=start/stop flag * [de28a65] Solve Vlagrind "definitely lost" memory leaks * [a6d2f92] Solve Valgrind "possibly lost" for redis and dtls * [aa98d7f] Prevent glib CRITICAL errors for NULL pointers * [831bb88] Fix Valgrind "still reachable" for if name and q * [91d5580] Fix config use_section * [8ba5d16] Fix Valgrind "still reachable" for a few others * [eb81698] Fix a few more "still reachable". End all redis unused threads. [ Michael Prokop ] * [e580c7c] TT#82051 Fix Travis builds * [6e77beb] TT#82051 Support GitHub actions + workflows using Debian package builds + shellcheck * [0bf0782] TT#82051 Shellcheck fixes + fix failure handling of init scripts * [38a2d30] TT#82051 GH workflow: drop utils/build_deps.sh from shellcheck * [281e681] TT#83952 Switch Build-Dependency from iptables-dev to libxtables-dev * [98245fd] TT#83954 Invoke libevent_global_shutdown() only conditionally -- Sipwise Jenkins Builder Tue, 14 Jul 2020 11:54:39 +0200 ngcp-rtpengine (8.5.0.0+0~mr8.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [10ab85b] TT#76368 remove some graphite functions from global namespace * [ceb6814] TT#76368 handle connection blocking on graphite writes * [dcce2ba] TT#76368 move graphite timestamping into wrapper macro * [5744c04] TT#76368 add port status to graphite output * [0308ee4] TT#14008 fix compiler warnings * [01cf85f] TT#76711 add missing locking and tree-remove for media player * [61ab3d9] TT#76711 add libdl linkage to testing preload lib * [9b9dde3] TT#76711 don't run send timers that don't exist * [50b0757] TT#76711 add missing log_info_clear in send_timer * [4eee9fb] TT#76711 compile fix for with_transcoding=no * [d847d26] TT#76711 convert codec handlers hash table to direct hash * [6513bfd] TT#76711 split out function to handle media protocols * [2d78c36] TT#76711 allow update of media type * [de69c5e] TT#76711 split codec_handler_get for different protocols * [a68a59f] TT#76711 keep track of the raw SDP format string * [9ff3d66] TT#76711 split out common parts of codec_handlers_update * [641fd16] TT#77358 create helper function to determine RTP protocols * [570ad94] TT#76711 add handler functions for enc/dec packet * [0dc052e] TT#76711 globalise ensure_codec_def function * [f6d1349] TT#76711 fix str_sprintf va_args definition * [6792cde] TT#76711 add custom SDP attributes capability * [9ab6c27] TT#76711 replace SDP media type as necessary * [20607bb] TT#76711 generalise media_player mechanism * [468fca8] TT#76711 error-proof codec_handler_free() * [d872802] TT#76711 T.38 <> audio gateway * [0cd8883] TT#78203 add SRTP debug options * [dfae8d6] TT#78201 add symmetric-codecs flag * [7cbf876] test client: also print old SDP * [6e1d94d] fix compilation on CentOS 7 * [1d514a0] TT#78307 add helper functions for SSRC contexts * [cc7a9a5] TT#78307 clean up debug/log messages * [5fa83ce] TT#14008 rtpengine-ctl fix to allow override of default values * [48c3af7] TT#76711 add spandsp logging * [213b607] TT#76711 fix media type ID when restoring from redis * [d611bbb] TT#78501 add T.38 options * [28efacc] TT#76711 more resilient UDPTL handling * [1055a1e] TT#79351 detect and fix payload type collisions * [f5eaa65] TT#76711 allow alternate format for T.38 SDP options * [c1d29a4] TT#79601 support media/DTMF playback to all parties * [e59ccc2] TT#79900 add SDES=lifetime option * [5fc326c] TT#78001 support OSRTP * [35899ec] TT#78900 move codec_get_type into global context * [dfc76d2] TT#78900 leave m=message connection details untouched * [2e4617f] TT#78307 move SSRC send stats to actual point of sending * [34baba9] TT#78307 don't update RTP stats for non-forwarding ports * [92bcedc] TT#78307 keep track of RTP stats also when forwarding * [a168a3c] TT#78307 generate RTCP for media players * [abe7caf] TT#75350 update cipher lists and make the configurable * [bbdedc5] fix OSRTP option for rtpengine-ng-client * [4d08a70] fix kernel module compilation for >= 5.5 * [e741a74] fix kernel module compilation for different build flags * [5caf47f] add missing SDES=pad parsing * [cca6ba7] allow protocol=RTP/AVP plus OSRTP-offer * [e516db2] fix warning about possible null string * [c3561be] honour with_transcoding=no in top level makefile * [19a9b44] fix tests after e516db2 * [2ef93af] TT#79601 fix possible crash when injecting DTMF * [e1b2532] eliminate (re)connected redis state duplication * [46325d6] TT#81600 fix SRTP when transcoding/DTMF injection is in use [ root ] * [e7c85ce] jitter buffer correction -- Sipwise Jenkins Builder Tue, 19 May 2020 11:12:46 +0200 ngcp-rtpengine (8.4.0.0+0~mr8.4.0.0) unstable; urgency=medium [ Richard Fuchs ] * [a1de325] TT#75050 fix SRTP index slip while transcoding * [c70b3f6] TT#74651 fix several mem/resource leaks * [4267e1c] TT#74301 split auto-daemon-test framework into perl module * [18634c4] TT#74301 refactor send_timer into generic timer * [d6ad6a6] TT#74301 convert timerthread_queue entries list to GTree * [ef0d6a3] TT#74301 merge jitter buffer PR #834 * [06b8704] TT#74301 add tests for jitter buffer * [92adeb0] TT#75351 delete DB streams that have no corresponding file * [7e0b2c4] TT#75352 add a storage container for codec handlers * [38792c0] TT#75352 don't attempt to send uninitialised packets * [7ea6389] compile fix for with_transcoding=no * [088c58d] avoid calling a non existant encoder * [fbaaf22] compile fix for jitter buffer * [3d83b46] TT#76206 fix call teardown for half established dialogues * [be9caa3] also check for the output encoder * [01002b0] TT#74850 clean up indentation by reversing logic * [d09071a] TT#74850 avoid duplicate dlg.terminate_dlg with reversed tags * [c3f495f] move default values up * [a6f6001] document "list interfaces" CLI command * [335e3d2] TT#76368 clean up graphite writing functions * [51147da] explicitly advertise annexb=no for G.729 * [ad4ea21] fix for d09071a * [1c00016] possible null pointer fix * [24cb202] fix compilation under musl libc * [c0be3ea] TT#14008 allow for slightly different DSP outputs [ Stefan Mititelu ] * [dbd27f9] Fix crash when redis disconnects/reconnects [ Jonas ] * [0778fc1] Update rtpengine-ctl [ Balajee SV ] * [c0b28c3] jb_new * [e3a5d45] jb_new [ root ] * [195f618] jb_fix -- Sipwise Jenkins Builder Mon, 16 Mar 2020 11:17:40 +0100 ngcp-rtpengine (8.3.0.0+0~mr8.3.0.0) unstable; urgency=medium [ Richard Fuchs ] * [d1e3dc0] byte-swap homer ID as required * [64e56d7] TT#73401 handle changes in RTP payload types * [1c72636] TT#73401 remove useless assertion * [9e05578] wrap-and-sort -ast * [6d22af9] TT#73900 ignore stray RTCP packets when confirming peer addresses * [f23aa26] TT#74050 add support for `unidirectional` flag to test script * [2a2e3f3] TT#74050 handle sinks with null addresses correctly * [5ac0756] TT#74300 run indent over cli_incoming_list_callid * [c3f5282] TT#74300 adapt CLI output to match log output for call stats * [08cdb4c] TT#74300 split intro for call-id CLI output [ Sebastian Damm ] * [8d7a77d] debian/control: add libconfig-tiny-perl dependency [ Daniel-Constantin Mierla ] * [5b0bee7] use pkg-config to detect xtables library for iptables-extension -- Sipwise Jenkins Builder Mon, 27 Jan 2020 12:25:42 +0100 ngcp-rtpengine (8.2.0.0+0~mr8.2.0.0) unstable; urgency=medium [ Michael Prokop ] * [7fbaf0a] TT#61954 Set debhelper compat level also for ngcp-rtpengine-kernel-source package [ Richard Fuchs ] * [228d822] TT#68100 set iLBC encoder and decoder options * [ab77ed5] TT#64601 refuse overriding crypto params from SDES when DTLS is in use * [77087b9] don't try to save untagged streams to db * [8bdeb2d] TT#69701 fix incorrect address used for raddr/rport * [7a28b97] TT#69700 don't compensate for TS gaps with a 1-second delay * [8714914] TT#69700 reduce max allowed delay to half a second * [1ec8276] TT#69700 handle gaps in RTP TS correctly for mix output * [e0dd674] TT#71050 fix branch deletion from via-branch * [bc3d4f7] compile fix for glib versions < 2.30 [ Guillem Jover ] * [7b77fb6] TT#51701 Switch from deprecated /var/run to /run [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 25 Nov 2019 14:59:03 +0100 ngcp-rtpengine (8.1.0.0+0~mr8.1.0.0) unstable; urgency=medium [ Richard Fuchs ] * [3fb5bef] TT#64301 log xmlrpc children to stderr * [25c84bb] TT#65000 fix kernel module compilation for 5.2 kernels * [ef20e02] TT#64259 split up codec handlers function * [fd16bf5] TT#64259 make DTMF detection switch explicit * [35740cd] TT#64259 add function to inject DTMF events * [68d909c] TT#64259 add functions to skip decoded samples and return encoder PTS * [49f6a88] TT#64259 add function to convert DTMF codes and chars * [b14f3b2] TT#64259 support injecting DTMF tones and events * [8ffc13d] TT#65100 properly cleanup redis async context * [bfc9799] TT#65100 don't start a redis notification context/thread when not in use * [3466700] TT#65800 fix SDES negotiation bug * [a6b4137] fix test suites for different implementations of base64 encoding * [22ea251] don't skip address family selection when zero port is present * [7b60ca8] ignore untagged/wildcard/unknown MLs in delete with via-branch * [65fb99b] TT#66650 fix some SSRC refcount leaks * [068bdb2] TT#65052 support adding pause after DTMF PCM * [3bf3982] TT#65052 support queuing up multiple DTMF events * [4d99ba8] add missing header * [6431cde] TT#64601 fix some compiler warnings [ Guillem Jover ] * [781b275] TT#65100 Fix double free for redis context on closure [ spchan ] * [290afbb] RPM packaging: detect systemd directories and package unit files * [c147556] EL8: mariadb-devel conflicts with mysql-devel * [487004f] EL7,8: no such package iptables-ipv6 [ Denys ] * [3905a31] Update rtpengine.spec [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Tue, 08 Oct 2019 09:12:35 +0200 ngcp-rtpengine (8.0.0.0+0~mr8.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [3845a43] change localhost to 127.0.0.1 to avoid resolv problems * [290477d] fix unit test after 8fb603e5 * [2397723] TT#61050 detect to-tag changes via via-branch * [79fb320] add missing header include * [3b6f098] TT#61850 normalize `address:port` log printing * [a2e0dd6] TT#62300 kernelise stream even if address doesn't match if possible * [10bd041] refuse startup when spool-dir and output-dir are the same * [24d67d0] fix mem allocation bug resulting in mem corruption during redis restore * [1653f32] don't free redis event base while being used * [c8338a4] TT#64050 add `G729a` as an incorrect alternative to `G729` * [344b3b9] TT#64300 don't attempt to transcode to an unsupported codec [ Huseyin Dikme ] * [a4af447] add missing errno include [ Razvan Crainea ] * [8fb603e] dtmf: prevent freeing json buf too early [ Guillem Jover ] * [fea0206] TT#61954 Update copyright years * [55faffd] TT#61954 Do not pass --no-enable and --no-start to sysvinit and systemd helpers * [2868fc6] TT#61954 Set debhelper compat level in Build-Depends instead of debian/compat [ Alex Balashov ] * [0a1c20a] README: Added call recording section and cautionary note about using same directory for spool dir and output / recording dir * [9e79a12] Updated README with link to issue #81. [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 05 Aug 2019 21:00:14 +0200 ngcp-rtpengine (7.5.0.0+0~mr7.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [a4cca5f] fix compilation for glib >= 2.60 * [77e31f1] fix race condition after media player shutdown * [985cd44] fix possible segfault after failed port alloc w/ iptables option * [491865a] test case for github issue #766 * [eb60289] TT#58659 fix incorrect escape seq in test script * [5acbf1e] TT#58659 always use the correct codec handler per packet * [b0b43ce] TT#58659 update test script for consistent seq numbers * [2298de7] honour a=rtcp-fb in SDP even if transport is advertised as RTP/(S)AVP * [94f3c0e] TT#58659 remove redundant source PT definition * [af02779] increase buffer size for cmsg * [5308208] further rate limiting for log messages from libav * [db50746] TT#59100 support case insensitive codec names * [ca30eca] correctly set frame_duration option for Opus * [194c9e4] TT#58659 add optional encoder detour * [c0781e5] TT#58659 RFC DTMF to PCM transcoding * [910c03f] TT#58660 PCM to RFC DTMF transcoding * [6a4b08c] add documentation for DTMF transcoding * [e17544a] rate limit log lines resulting from strict-source drops * [7ad9906] TT#59650 fix DTMF related core dump when repacketising * [5ad55f4] add spandsp to list of build requirements * [7803930] TT#59703 generalise build test make macros * [f960799] TT#59703 add build test for dtmf_rx_fillin() * [166aaa0] fix compilation for with_transcoding=no * [fcb08df] TT#59805 add dtmf-log-dest option * [690b8d9] TT#60300 add LimitNOFILE to recording daemon systemd unit * [988d077] TT#60301 fix rtcp-mux logic with branched calls * [f6f484f] TT#59501 add optional RTCP sink [ Vitalii Aleksandrov ] * [fe18043] Insert streambuf object to listener->streams before adding it to poller [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 17 Jun 2019 14:39:44 +0200 ngcp-rtpengine (7.4.0.0+0~mr7.4.0.0) unstable; urgency=medium [ Richard Fuchs ] * [0e0a55c] add database schema for recording daemon * [ed5af2d] TT#50652 add YCM helper macro for CSH hashing * [da5cacc] TT#50652 add YCM config for include/ * [3032443] TT#50652 remove unnecessary and circular include * [1129676] TT#50652 fix typo * [6092c91] TT#50652 fix possible sequencing bug while resampling * [8f3c309] fix always-transcode not being honoured when only codec-mask was used * [e3ec97f] TT#50652 add -Wstrict-prototypes everywhere * [c53040b] error out on invalid clock rate parsed from RTP format string * [0cccae4] compile fix for with_transcoding=no * [38c9646] TT#50652 move timeval functions into lib * [cfe6f87] TT#50652 split timeval_cmp_ptr into function * [d96dbde] TT#50652 split timer thread functions into separate file * [83965bd] TT#50652 infrastructure to support reading/playing of media files * [3374254] TT#50652 split out codec payload type init function * [6ba60d5] TT#50652 split out packet dequeuing and sending function * [92b08d8] TT#50652 add media playback capability * [4aaccca] TT#50652 separate out media playback routine * [21535fa] TT#50652 support playing back media from memory stream * [8874b4a] TT#50652 use random RTP TS when playing back media * [7cc5309] TT#50652 add support for 8-bit unsigned PCM * [c7051fc] TT#50652 use hash table for AVCodec ID lookup * [29a8384] TT#50652 use a better timeval_cmp function * [d639223] TT#50652 add logging info to media_player timer runs * [3bdad88] TT#50652 create timer to gradually send packets without jitter * [831946a] TT#50652 fix compilation for with_transcode=no * [5b0a010] TT#50652 support playing back media files from database * [e1e6fd4] TT#50652 add explicit libav error reporting * [7da2b52] TT#50652 return media duration to SIP proxy in play_media response * [7f5e16d] TT#50652 add stop_media call * [223996b] TT#50652 add documentation for media playback capability * [7e85d1a] TT#50652 keep existing SSRC context when starting another playback * [8d9a0d2] TT#50652 remove already enqueued packets when media is stopped * [e1825e3] TT#50652 ensure consistent RTP timestamp across media restarts * [c9bae61] TT#50652 add media playback tests * [d449861] TT#50652 separate out and move crypt handler routines * [349954d] TT#50652 handle SRTP output for media playback * [9eea6b1] Reverse participant matching logic * [41cddcc] normalise compat.h handling towards kamailio tree * [661994e] as per docs, remove all relay candidates under force-relay * [40dc49f] TT#50652 stop media playback on call delete * [dc9f997] TT#54800 sequencing fixes * [6921472] TT#54800 add ptime tests * [fb76ef7] TT#54800 fix ptime overrides * [52660ed] TT#54800 add ptime-reverse tests * [9917e65] fix division by zero for dtmf in some cases * [357474d] TT#50652 add label= option to match call participants * [d279789] silence warnings when compiling with -DNDEBUG * [6df650c] fix compilation for older dpkg-parsechangelog * [f01568e] fix compilation for older ffmpeg * [354f754] TT#45617 add no-log-timestamps option * [26b725d] TT#45617 add new options to support log markers for sensitive data * [8eada4c] TT#45617 document new log-mark-prefix/suffix options * [cfbd4bc] Add missing check_conn when running SQL statements * [70b1ae5] Add missing perl-IPC-Cmd build dependency for RPM * [9c6677d] TT#56007 TT#55864 leave xt_RTPENGINE loaded after stop * [cd23c05] TT#56007 TT#55864 make RTPENGINE rules UDP only * [ac825cc] TT#56553 fix double G.722 sample rate issues * [582e645] fix missing recording_on flag set * [3d64af1] fix incorrect sample config (`1` instead of `true`) * [1629225] add `stream` db column to sample db schema * [573cd3f] TT#58050 fix refcount bug [ Guillem Jover ] * [1f10dc3] TT#49106 Move the usage information into a new man page * [5e3a59a] TT#49106 Clean up generated man pages * [ec8df35] TT#23584 Use $(MAKE) instead of make to honor parallel builds [ Michael Prokop ] * [0a993a3] TT#48650 Explicitly check for gperf binary * [c8b6ec0] TT#50652 docs: fix some minor typos [ Vasily Chekalkin ] * [7502e7b] Remove duplicated configuration parameter sample [ netaskd ] * [4cdf106] rtpengine.spec: fix building dkms module on a different host kernel version * [7b546e4] add kernel-devel as requires for DKMS module build on target host * [c2ad397] Define requires according to the installed kernel. [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Thu, 25 Apr 2019 14:32:03 +0200 ngcp-rtpengine (7.3.0.0+0~mr7.3.0.0) unstable; urgency=medium [ Richard Fuchs ] * [5c556ef] don't abort on failed EPOLL_CTL_MOD * [0c559f5] Add missing SDES accept routine * [415af36] don't add rtpmap or mid attributes for deleted/silenced streams * [c0d1a05] provide linear alternative to bsearch for kernels < 3.0 * [aaccc10] fix el init script inserting duplicate iptables rules * [5722f8b] TT#50954 use instead of <<>> for older Perl versions * [aa0001d] add SRTCP debug helper script * [0811c59] fix bug with incorrect open3 redirection for test suite * [4266f8e] move SDES-no handling into __sdes_accept * [8d625cc] add auto test suites for #661 * [3cdfe5a] suppress loading of default config file for auto tests * [88c81be] fix incorrect VA format in die_errno() * [fa90e4d] fix test suites for 0c9bb7c * [c33399a] fix test suites for different implementations of base64 encoding * [daa0bf9] fix tests compilation for with_transcoding=no * [490d7eb] disable all AMR tests by default due to inconsistent codec libs * [3b28460] TT#52651 Squashed commit of the following: * [717021a] add ssllib to gitignore * [6c3a6b5] add documentation for PCM forwarding feature (3b284605) * [4bb1381] compile fixes for older openssl versions * [072bfb8] fix possible null pointer reference * [497c2d6] TT#49104 move RTP sequencing into SSRC context [ Denis Maksimov ] * [e28ca4b] add BuildRequires: gperf in spec file [ Guillem Jover ] * [ff3b821] TT#50954 Use <<>> instead of <> as that has unsafe semantics * [048b6ed] TT#50752 Add ngcp-service aliases in systemd service files * [b290bb8] TT#53700 Switch nfs-mount systemd service from Type oneshot to simple [ Michael Prokop ] * [e5956f7] el init script: ensure TABLE is set by default * [b5c350b] el init scripts: send errors to stderr and exit with proper return code [ Alexey Vasilyev ] * [0c9bb7c] Rename crypto suits according to RFC6188 [ Sean Bright ] * [3f2a824] README.md: Update main bcg279 link [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 25 Feb 2019 22:59:17 +0100 ngcp-rtpengine (7.2.0.0+0~mr7.2.0.0) unstable; urgency=medium [ Guillem Jover ] * [d96daa6] TT#49106 Update DKMS-specific debian/control to match the main one * [eba6278] TT#49106 Fix dh_clean usage in DKMS-specific debian/rules * [96d62c7] TT#49106 Switch from /var/run to the modern /run * [7bf0f52] TT#49106 Move target all as a prerequisite for the kernel-module * [cf4bf5d] TT#49106 Clean up PHONY targets * [5b16bc5] TT#49106 Move the test suite into its own target * [e4a1a55] TT#49106 Rely on upstream Makefile for building and cleaning * [0fc0c47] TT#49106 Remove obsolete Build-Depends [ Richard Fuchs ] * [aaf8cbd] TT#49350 eliminate stray scheduling warning * [5de8229] TT#49600 separate RTCP en/decryption into perl module * [84f152b] TT#49600 add test suites for SDES crypto negotiations * [c80f55b] TT#49600 add debug log output for SDES negotiations * [0e129ed] TT#49600 fix offered crypto suite not being dropped via SDES-no * [343da33] fix default AMR bitrate * [ee01f15] fix non-default encoder bitrate not being applied * [744d6a4] add codec-set option * [e1d6c83] ignore transcoding options in non-offer messages * [b593d57] TT#37400 do not answer with ICE attributes if no ICE was offered * [44c38c6] TT#49351 create preloaded library for system tests * [c1e186e] update readme with new xtables mod location info * [2b767e0] update readme with new build dependencies [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 09 Jan 2019 22:03:53 +0100 ngcp-rtpengine (7.1.0.0+0~mr7.1.0.0) unstable; urgency=medium [ Øyvind Kolbu ] * [d3b267d] Match default in daemon/main.c. [ Richard Fuchs ] * [35764c5] TT#44702 add CLI command for interface/port stats * [3102357] TT#41900 save monologue label into recording DB * [fc026cd] fix possible null pointer dereference * [39ef7c9] fix multiple spurious updates of stream config DB entry * [347f1c6] suppress empty a=rtpmap lines * [e9f9ae7] fix compiler warning * [13c21b1] fix segfault when using legacy control protocol * [0bf3eab] convert codec ops to no-op for legacy control protocols * [0496c59] Change name of option from log-rtp-keys to log-srtp-keys * [8f195e7] Update README.md for name change of option from log-rtp-keys to log-srtp-keys [ Tor Petterson ] * [590b752] Added option to write SRTP keys to log * [04e20f0] Added option to README.md * [f71f66f] Expanded Documentation of option log-srtp-keys [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 12 Nov 2018 22:40:11 +0100 ngcp-rtpengine (7.0.0.0+0~mr7.0.0.0) unstable; urgency=medium [ Alexander Lutay ] * [bc9f09c] TT#41051 Fix shellcheck warning for Red Hat init scripts [ Richard Fuchs ] * [178391e] fix possible core dump when processing certain malformed SDP * [0aeb06f] TT#40900 store metadata in call struct instead of recording struct * [694e9d8] do not memcmp against uninitialized bytes * [89c0aa1] additional options for test scripts * [a44b34a] don't free event base before calling loopbreak() * [59d3399] add DTMF capability to simulator test script * [d4afb14] fix DTMF packet allocation size * [b4cac09] use git plumbing to determine branch and commit IDs * [7dd8ed0] quote options value strings in error output * [828e2ee] add missing lock for configuring mixed output decoder * [135dfb7] fix handling of >1 consecutive media ports * [cab9d89] TT#42500 fix only one crypto suite being offered. * [b82cf56] clean up code artefacts from cab9d895 * [e67b9c4] TT#43556 support blocking of DTMF event packets * [89084da] TT#43855 support XMLRPC callback to Kamailio * [34759b7] add ability to specify payload type in pcap replay script * [4e6f2dc] silence build warnings when no git is present * [04a8302] TT#43557 implement media blocking * [326c6a5] TT#43557 augment DTMF blocking to support directional blocking [ Eric Green ] * [f91b64f] Make recording more accurately report source address. Fixes #584 [ Guillem Jover ] * [0224a49] TT#40459 Move the rtpengine NFS mount point into its own systemd unit * [5ba5295] TT#42906 Add systemd notify support [ netaskd ] * [8f4c547] update rtpengine-recording pid filename [ Alexey Vasilyev ] * [422e18d] Separate build with/without transcoding [ Øyvind Kolbu ] * [cceadfd] Match latest variable names in rtpengine.init. * [a69bf05] Add Graphite options to el sysconfig. [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 24 Sep 2018 18:58:56 +0200 ngcp-rtpengine (6.5.0.0+0~mr6.5.0.0) unstable; urgency=medium [ Richard Fuchs ] * [50394e8] TT#37156 fix divide by zero error (regression from db58aa80) * [6f6bad1] TT#37157 swap parameter order for packet_seq() test macro * [88778d9] TT#37157 eliminate stray compiler warning in test code * [6e97768] TT#37157 add RTP TS and seq checking to transcoding tests * [e404f18] TT#37157 fix missing G722 RTP TS output scaling * [9b447cf] TT#37157 add G722 transcoding test incl RTP TS testing * [f0b4f1d] TT#37157 make payload mismatches in lossy codecs non-fatal * [9f3f24f] TT#36759 rate limiting for ICE/STUN log messages * [a2ed8e6] convert transcoding unit test macros to functions * [f1b81b6] simplify parameters passed to codec_rtp_payload_types() * [8562bde] support new `asymmetric codecs` flag * [bfac341] shut down transcoding engine when it's not needed * [cbe7e5a] TT#36700 implement ports free list * [d66a2e5] TT#38351 support specifying interfaces by name * [4eb80da] compile fix for with_transcoding=no option * [dd34574] TT#38350 keep track of the most used RTP payload type * [a9ec666] TT#38350 implement sending DTMF events to syslog * [08fc009] fix segfault with DTMF logging and implicit payload types * [be9c314] fix missing header include * [d26b11f] fix compilation for with_transcoding=no [ netaskd ] * [a1ac45a] - add package recording - update to ngcp-rtpengine version 6.4.0.0 * [e64a814] renamed mariadb-devel to mysql-devel for centos6 compatibility * [f52e349] refactoring handling kernel table for config and sysconfig. variable KERNEL deleted as unused * [1ab8cb1] commented out all pre-start arguments because all of them can be configured in main config file of application [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Tue, 24 Jul 2018 13:41:13 +0200 ngcp-rtpengine (6.4.0.0+0~mr6.4.0.0) unstable; urgency=medium [ Juha Heinanen ] * [217446c] added note to readme about recording-daemon * [97ee903] described required format of metadata for recording_metakeys table * [f806188] improved metadata description * [7f603b2] recording-daemon: added possibility to store audio streams to database - added new column 'stream mediumblob' to 'recording_streams' table for audio streams - added new option 'output-storage' with values 'file' (= default), 'db' or 'both' * [6f45ed3] introduced rtpengine-recording.sample.conf * [6ac2539] debian: install rtpengine-recording.sample.conf [ Jerzy Ptak ] * [a44a9bf] fixing memory leaks [ Anthony Alba ] * [b9d84aa] recording.c: add a few ms timestamps to pcap metadata [ Richard Fuchs ] * [af963a2] make the new `stream` db field optional based on settings * [b1dc994] explicitly support aliased flat codec options in ng-client for testing * [bf66d7c] eliminate stray glib warning * [feafaf3] Perform 'wrap-and-sort -sat' of 6ac25391a5 * [53a2165] fix default value if output-storage isn't specified * [6fa712d] implement offer-timeout option * [761ac6c] errno must be set to 0 before calling strto*() * [895fa96] TT#35456 implement RFC 4867 * [e0cdf74] fix SRTP ROC syncing between kernel and userspace * [10d9acd] ffmpeg: handle some API changes for release/4.0 master * [93555d7] eliminate another deprecation warning for newer ffmpeg * [43f2971] disallow zero interface addresses in config * [efcad1c] TT#35413 add support for the 'load limit' ng protocol extension * [345836e] TT#35413 implement a CPU limit and a load limit * [b4f65bd] TT#35634 add `xmlrpc-address` option for callback address * [0072380] support double type values in config file * [06f76e6] don't run AMR tests when transcoding is disabled * [8c770b9] appropriate use of LDFLAGS and LDLIBS * [db2882c] integrate AES unit test into main build framework * [6e2fc01] update README with link to bcg729 Debian package * [9e43369] disable AMR narrowband decode test for older ffmpeg * [2c5a358] TT#36308 fix possible segfault due to missing lock * [68e8092] add ../include to YCM config * [539e063] don't retry XMLRPC callback if endpoint says the ID was not found * [3b3e964] short lock duration for faster calls iteration in the timer * [677fe29] remove the AMR decode test * [9943a3d] TT#36180 scale timer interval according to runtimes * [6da7494] TT#36180 calculate per-second stats based on timer runtime * [14ffd8f] TT#36303 support bandwidth usage resource limit * [fa5c265] TT#36302 support scheduling settings * [1e96c9e] fix compiler warning introduced in 677fe29d * [db58aa8] fix graphite interval calculation for call durations * [0361bbd] add missing include * [fb75ef7] TT#14008 fix libpcre references in makefile * [4d2d788] TT#14008 fix compiler warning from libavformat * [7de16e1] TT#14008 fix codec mask logic if no masking info is present * [5c3d397] TT#35456 fix regression from 895fa9605 * [2f5d792] TT#36301 add `always-transcode` flag * [d64c888] TT#36301 transcoding unit tests * [95a7cc6] eliminate redundant function argument * [78accdb] fix segfault when both forwarding and output are enabled * [9c3edee] support cooked format in replay tool [ Guillem Jover ] * [aee2a27] TT#26264 Add systemd service wrappers for the init scripts * [1b489bd] TT#26264 Fix rtpengine pid file in systemd service * [79807a9] TT#26264 Use better systemd native units * [d4763ab] TT#36351 Use modern ngcp-check-active [ netaskd ] * [5ce19a8] add homer options to el configuration * [62ec9cc] add possibility to use different kernel version [ Michael Prokop ] * [4d4abfa] TT#34358 Depend on lsb-release in ngcp-rtpengine-kernel-dkms package. Thanks to Richard Fuchs for debugging the issue [ Lucian Balaceanu ] * [8391167] Fix for recovering from losing synchronous redis context while the async one is up [ Huseyin Dikme ] * [ab58245] -cli params diff command has been updated to serve only for the possible modifiable configuration file parameters. -Additionally, cli params revert command has been implemented. * [30ba1cd] control command logs have been updated [ Eric Tamme ] * [627294b] do not require epel-release in spec file [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Tue, 29 May 2018 10:09:45 +0200 ngcp-rtpengine (6.3.0.0+0~mr6.3.0.0) unstable; urgency=medium [ Claudiu Boriga ] * [8cc4b78] Add statistics for requests per second * [00bdcef] Fix statistics for average requests/sec sent to rtpengine-ctl * [3850e99] Use atomic64_get_set for requests statistics * [74cecc0] Use statistics locks properly * [0ffb9e6] Display correct average for requests statistics * [b7b40cc] Use proper data type for requests statistics * [be5211e] Introduce 'list silenttimeout' and 'list finaltimeout' to rtpengine-ctl * [f2ce4d3] Add rtpengine-ctl 'get' commands as alias for 'list' * [0f9151e] Make 'redis-allowed-errors', 'redis-disable-time', 'redis-cmd-timeout' and 'redis-connect-timeout' configurable via rtpengine-ctl * [ff2a278] Make 'rtpengine-ctl' configurable via rtpengine-ctl * [4039efd] Update rtpengine-ctl help * [e8b4019] Enable round robin for default interface * [6ee4cc3] Fix uptime statistics * [229b78d] Fix race condition where redis context is used outside mutex protection [ Richard Fuchs ] * [7b44240] TT#31752 fix segfault on empty a=rtcp * [c88494f] add Requires(pre): shadow-utils to spec file * [bc420cb] TT#30405 split stream_packet() into smaller pieces * [fb729e3] TT#30405 create a packet handling context struct for convenience * [8715d40] TT#30405 codec matchup and handler functions * [c3585b0] TT#30405 reprint a=rtpmap and a=fmtp for SDP output * [f801240] TT#30570 replace "chopper" iovec with GString * [d510f5e] TT#30404 initial support for adding codecs for transcoding * [f8aad04] TT#30404 move portions required for decoding from recording-daemon to lib * [a967f9d] TT#28163 abstractize packet sequencer and move to lib * [b9206a4] TT#28163 abstractize SSRC hash * [cee94a5] TT#28163 pass RTP packets to media decoder * [a4e73c9] TT#30404 accept and reject codecs according to transcoding preference * [dc80c27] TT#28163 split encoder from recording daemon into shared lib * [df537b9] TT#28163 pass encoded packets back to processing for sending out * [b0bc679] TT#28163 take number of channels from SDP into account * [55007a6] TT#28163 prevent kernelization of transcoded stream * [14c3cd8] TT#28163 support transcoding to non-RFC codecs * [7c6db89] TT#28163 don't reset transcoding context when not necessary * [2d2f2e3] TT#31198 support output codec clockrate multiplier (for G722) * [ad4a5d1] TT#31198 add resampling support * [1746f1d] TT#31405 handle non-media pseudo-codecs (telephone-event) * [fcf593d] TT#31400 add encoding support for AMR and AMR-WB * [c6c79f4] TT#31198 flush encoder queue on shutdown to avoid warnings * [5c05c88] TT#31198 handle RTP seq and TS resets * [c380052] TT#31401 configure encoder bitrate * [e3e3cb9] TT#28163 document transcoding control protocol options * [266a1fb] TT#31404 support custom ptime and repacketization for sampled codecs * [82e0c55] TT#31409 TT#31408 TT#30901 eliminate silly codec def macros * [ff0a46a] TT#30901 convert codec list to hash table * [71b3762] TT#30901 use hash table to look up RFC specified codecs * [2e43b47] TT#31409 check codec support only once during startup * [a4a0e34] TT#31408 distinguish between codec types * [7986ca0] TT#30900 support specifying codec parameters for transcoding * [159729a] TT#31403 move SSRC mapping out of codec handler * [368312a] TT#31403 keep local packet stats for RTCP output/rewriting * [5d67605] TT#31403 decouple RTCP AVPF filtering from crypto stuff * [26a356c] TT#31403 eliminate stub RTCP handler functions * [613f7af] TT#31403 map and replace RTCP SSRCs when transcoding * [6988b23] TT#31403 keep track of stats required for RTCP translation/output * [2a4acf5] TT#31403 handle passthrough payloads in a transcoding context * [caf7350] TT#26752 enable GSM and iLBC codecs * [10c852b] TT#31950 add compile-time switch to disable transcoding features * [126a69f] TT#28163 logging and documentation improvements * [0636b08] TT#31700 implement payload-type specific passthrough kernel forwarding * [61d5505] TT#31199 set bitrate for G.723.1 * [83784d4] TT#31197 separate out libavcodec specifics * [9eb9a2f] TT#31197 include bcg729 build support * [25037a9] TT#31197 G.729 packetizer * [3fa94d7] TT#31197 document bcg729 requirements * [65d4106] add missing header files to fix compilation * [4d859bf] TT#28163 add support for properly packaged libbcg729 * [9147d5e] TT#32983 support transcoding options in redis (re)store * [60ce212] TT#28163 use a pointer cache to avoid hash table lookup * [bc30929] TT#32210 add codec masking option * [e84fd86] fix incorrect DTLS context being used with ICE * [7c36492] TT#28163 fix recording-daemon sample format selection * [4d586f2] TT#28163 fix recording-daemon sample format selection for mixed output * [92e4c28] fix recording-daemon segfault for libavcodec versions < 57 * [7b65ded] restructure codec_make_payload_type to fix compilation w/o transcoding * [14262f5] fix segfault regression from e84fd86 * [7ee73fe] special handling for strip=all together with transcode, and mask=all * [1184c92] select IPv4 ID in kernel module * [65c75c5] fix segfault regression from 7b65dedb * [3885da9] workaround for buggy OpenSSL that produces incorrectly fragmented DTLS * [5b0bb90] fix recording setup_media reversed direction * [b2a775f] transcoding test suite improvements * [22431f5] fix recording mix sample rate mismatch * [3aa53a1] fix missing setup_media when using start_recording call * [092f8da] use str_token_sep for SDP token extraction * [6b88fc9] avoid segfault when an encoder could not be opened * [0db5e22] fix payload type tracking for transcoding situations * [620cf61] version test macro for DTLS_set_link_mtu * [4538af3] Extended version test macros for ip_select_ident() * [f1808e2] TT#31197 include libbcg729 build dependency * [32e0e2c] leave room for SRTP auth tag on transcoded packets * [6e8d57e] honour RFC 5506 by allowing more RTCP packet types leading the group * [e4e7923] compilation fix for glib < 2.32 (CentOS 6) * [7b6af45] CentOS 6 compile fixes * [2fc2b3b] fix possible null pointer segfault when using log level 7 * [14100b0] use reference counting on SSRC objects * [5a73f12] TT#34050 replace ffmpeg version test macro * [4ac6473] don't silence libav test build output * [16024d2] create explicit per-stream DTLS context for ICE * [ce44eaf] fix RTP timestamps in G.729 decoder * [7604887] omit ip_select_ident for CentOS kernels * [33b262a] TT#33700 migrate from avresample to swresample [ Huseyin Dikme ] * [968446c] cli params command has been created for initial, current parameters and their difference [ Manuel Montecelo ] * [a76b474] TT#33102 Install ngcp-rtpengine kernel module on all kernel versions [ Alexander Lutay ] * [86dcf34] TT#33276 Remove sysv init script dependency on sshd * [458564c] TT#33911 Perform 'wrap-and-sort -sat' [ Guillem Jover ] * [2ebe76d] TT#33306 Add dependencies on $network and $local_fs to init scripts [ Hugh Waite ] * [565ed98] Fix AMR-WB codec initialisation [ Anthony Alba ] * [bbcea40] recording.c: save the label in pcap metadata file [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Tue, 03 Apr 2018 22:33:06 +0200 ngcp-rtpengine (6.2.0.0+0~mr6.2.0.0) unstable; urgency=medium [ Pawel Kuzak ] * [8941c82] Fix control statistics headlines [ Claudiu Boriga ] * [3472821] Add option to set TOS for control-ng interface * [43f527f] Add documentation for the control-tos option * [c31ffa4] Add parameters to disable redis communication in case of multiple errors * [562c5b4] Add parameter that sets a timeout for redis commands * [9e96732] complete missing info for new commands * [4850923] Make redis connection timeout configurable * [142d91b] fix typo in README.md [ Guillem Jover ] * [172bd1f] TT#26513 debian: Simplify upstream version fetching * [a456e20] TT#26513 Remove unused modprobe variables * [0d3e693] TT#26513 Improve sysvinit output messages * [7082318] TT#26513 Pass --retry=5 to start-stop-daemon and avoid sleeping * [1b8f5e4] TT#26513 Preserve errno on error returns * [fd3c1d2] TT#26513 Delete the kernel forwarding table on startup [ Richard Fuchs ] * [d10952a] TT#26757 add tcp_listener framework * [2eb0169] TT#26756 clean up CLI code using streambuf * [e1ce749] TT#28354 consolidate CLI string handling * [b7aeff9] TT#24550 implement CLI get/set log level * [7b757ff] allow -ip host:port syntax in rtpengine-ctl, and document loglevel cmds * [61d828a] change str_chr_str() semantics * [1aa9944] TT#27550 implement interface round-robin selection * [2e5b80f] add config file options to README * [8733875] README updates * [c17f4fe] avoid side effects in assert() * [018e35c] TT#27200 add option to omit a=rtcp attribute * [acba275] suppress log message on "comprehension option" STUN attributes * [399e15b] make the callhash global * [790e596] move cngs out of callmaster into global scope * [e87b271] move matching regexps out of callmaster into global * [dffbddb] don't use g_ prefix for global variables * [cf3a8f9] move 'poller' member of callmaster into global scope * [c969ea1] move stats and statsps into global scope * [7411403] move "totalstats" out of callmaster into global scope * [d65a6bb] move latest_graphite_interval_start to global scope * [f2b93f9] move config options into global struct rtpengine_config * [75056a8] eliminate the callmaster struct * [0e3f5eb] move all remaining config options into global config struct * [46d8539] move lib/ config options into struct * [74bae6a] TT#30150 add option for different logging styles * [b8dbd99] TT#30403 consolidate NG flags processing functions * [d7dd742] TT#30403 implement codec stripping * [d31fb36] TT#30403 parse and retain a=fmtp infos * [f625d48] TT#30403 consolidate dictionary and alias "flags" values handling * [2540c5d] TT#30403 support codec-offer * [ca78747] TT#30405 rename media->rtp_payload_types to ->codecs for brevity * [321fb5e] fix double str_shift for 'list sessions CALLID' * [edb21fe] use EOL instead of shutdown to terminate command in rtpengine-ctl * [8f563c8] fix compilation when `with_iptables_option` is set to no * [1477f97] TT#29151 add 'loop protect' feature [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 29 Jan 2018 21:57:26 +0100 ngcp-rtpengine (6.1.0.0+0~mr6.1.0.0) unstable; urgency=medium [ Richard Fuchs ] * [5bcbf27] fix metadata DB insert without trailing pipe character * [13d51f0] add extra thread allowance for blocking CLI code * [cc056c1] add rtcp-mux-require option to force rtcp-mux usage for WebRTC * [23eebfc] Fix frame PTS when decoder returns multiple frames in a row * [ba46768] small fixes and improvements for packet forwarding feature #411 * [031921c] purge old entries from SSRC hash table if it gets too full [ Claudiu Boriga ] * [ca622b4] set TOS for redis streams * [d5fea12] check call.recording structure before using it * [3dcddf3] recording-daemon: add option to forward calls * [2250ab1] make METADATA section appear in the metafile at initialization when recording using the proc method * [ab0cb0c] don't use g_hash_table_foreach for call_timer_iterator [ Pawel Kuzak ] * [f81fdf4] Deleted outdated graphics [ Guillem Jover ] * [d5f7624] TT#24097 Fix perl filehandle usage * [4f006a5] TT#24097 Use block form for map and grep * [aa2eaee] TT#24097 Use a regex for split * [bf514fb] TT#24097 Do not directly return result from sort * [d5ad4a9] TT#24097 Do not use magic variable names * [301af4a] TT#24097 Declare variable as my * [0c728b2] TT#24097 Localize %ENV variable assignments * [b4d0ff7] TT#24097 Use upper-case HERE-doc markers * [0012037] TT#24097 Allow perl builtin homonyms for method names * [acf84a7] TT#24097 Use semicolon instead of colons for end of statement * [cff9d29] TT#24097 Reorder hash assignment to make perlcritic life easier * [0bdc116] TT#24097 Rework perl code flow * [b2636dc] TT#24097 Enable strict and warnings everywhere * [19b4df7] TT#24097 Do not use unportable test operators * [3351821] TT#24097 Remove unused shell variables * [747661f] TT#24097 Do not use bash builtin names in sh scripts * [04f5790] TT#24097 Switch for loop to use the i variable * [33bafcf] TT#24097 Use $() instead of deprecated `` * [376df64] TT#24097 Use «grep -E» instead of deprecated egrep * [53b3c36] TT#24097 Fix shell quoting * [465f3fe] TT#24097 Remove $ from variables inside arithmetic evaluation * [677c9a5] TT#22072 Update packaging * [6721f3c] TT#22072 Update debian/.gitignore [ Dmitry Poroh ] * [cc09f4d] Crash stream_packet in case of out_srtp is NULL is fixed [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 06 Dec 2017 00:14:35 +0100 ngcp-rtpengine (6.0.0.0+0~mr6.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [bb50729] fix parsing of IPv6 address in legacy UDP protocol * [fade693] additional reference counting for /proc stream files * [1206e26] add missing lock for SSRC hash dump * [dd33897] drop log level for messages about unknown RTP/RTCP packets * [e7d75bd] TT#19350 add option to manage iptables rules directly * [6abe388] fix compile warning * [00cc28d] TT#22660 don't zero out SDP origin on zero connection address * [440a1f8] delay proc stream/call file deletion until all references are cleared [ Lucian Balaceanu ] * [63bdd61] on startup, also accept hostname:port params for endpoints [ Claudiu Boriga ] * [67de59a] check that redisContext is not NULL before using it * [b3ce08a] Count multipexed packets in statistics. Don't count errounously when no stream is found fixes #387 * [b317acd] don't log corrupted cdr for foreign calls * [cf15275] add stop recording command to ng interface * [bb85236] update readme to add stop recording command [ Michael Prokop ] * [6932f22] TT#22411 Fix spelling mistakes/typos [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 02 Oct 2017 23:44:04 +0200 ngcp-rtpengine (5.5.0.0+0~mr5.5.0.0) unstable; urgency=medium [ Alexander Lutay ] * [f825dd0] TT#15855 Fix shellcheck warnings for debian/ngcp-rtpengine-kernel-dkms.prerm * [f638b9b] TT#15855 Fix shellcheck warnings for debian/ngcp-rtpengine-kernel-dkms.postinst [ Changli Gao ] * [6824865] DTLS: Fix potential double BIO_free [ Richard Fuchs ] * [f979159] fix segfault when no SSRC pointer is present * [a9d55c6] always decrypt RTCP for SRTP<>SRTP session for stats purposes * [4310e06] support pkg-config for xmlrpc-c * [983c4af] fix correct use of CFLAGS over LDFLAGS [ Claudiu Boriga ] * [9f2286d] fix bug that makes rtpengine crash when graphite server is down [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 17 Jul 2017 22:47:28 +0200 ngcp-rtpengine (5.4.0.0+0~mr5.4.0.0) unstable; urgency=medium [ Anthony Alba ] * [b8a2f01] Initial support for AES-192, AES-256 in userspace * [357bb1d] Refactor to add explicit session key init functions * [d5cecc5] Add AES-192, AES-256 CM to kernel SRTP * [37b2235] Fix typos in DBG array indexing * [74b2559] AES CM static test vectors * [87aaf82] Document RFC 3711 errata id 3712 that SRTCP_R_LENGTH == 6 is canonical * [b1e259c] Document libsrtp AES-256 SRTCP bug for interop [ Frederic-Philippe Metz ] * [8f01e78] First attempt to separate more stats and cdr away from the core running code * [95d9420] Adds missing log output * [27679b1] Moved the json reader locally and removed it from call struct * [d885875] Cleanup according to pull req #335 [ Richard Fuchs ] * [7088e15] remove obsolete redis restore function arguments * [3739042] rename macro due to collision * [5c0dc62] consolidate AES crypto suites for different key lengths * [6f37bad] TT#13277 additional DB fields for call metadata * [46d1498] TT#13277 logging improvements * [305fbed] TT#12789 add defaults file item for NFS mount options * [a2c4a41] include support for AES-192 and -256 in simulator test script * [af1db75] support _32 crypto versions in simulator * [dab9fdb] additional logging and segfault fix * [2afbfa5] fix resampling if frame doesn't have number of channels set * [a8a4ed4] disallow arbitrarily large silence gaps * [263099c] fix module compilation for kernels >= 4.10 * [e85759a] fix some errors caught by coverity * [323da16] adding top level makefile * [6594b2b] fixes for coverity * [7182e75] abandon usage of random() * [5dcd533] ensure positive random numbers * [a850ebf] TT#13954 don't fail kernel "clean" target when build env is not there * [aef463f] handle missing av_frame_get_channels from older versions * [af7b2d0] refine version test for presence of av_frame_get_channels * [27af349] fix recording daemon logging levels * [6b6b8ea] don't use anonymous unions to make old compilers happy * [0f07e46] fix 32-bit compilation errosr * [f7e2419] fix kernel module for systems with small stack frame sizes * [d269f6a] eliminate orphaned redis code fragments * [26ca489] use pkg-config to determine install location for iptables module * [c5a202e] write both types of media indexes to recording metafile * [531febb] migrate log-stderr and log-facility options to lib for recording daemon * [37a9521] don't treat media socket write errors as fatal * [896a324] add test script to replay pcap into recording daemon * [5e3ce30] TT#14008 add missing DTLS locks * [4313cb2] logging improvements * [5acf56d] additional debug log output * [0e60000] use cloned frames to avoid race conditions * [6ec7c9e] fix mem leaks * [b358363] TT#12800 canonicalize ssrc handling * [223c7f1] TT#12800 abstractize rtcp parsing and logging functions * [c1711ea] TT#12800 consolidate and combine RTCP parsing and logging * [70b7112] TT#12800 store and process RTCP SR and RR for statistics * [90693a1] TT#12800 refactor RCTP XR processing * [0f28589] TT#12800 avoid creating empty log messages * [84e76e7] TT#12800 calculate MOS values from RTCP RR * [74be799] TT#12800 add RTCP support to perl test scripts * [0b63050] TT#12800 add test script to simulate RTP packet loss * [868c3b6] TT#12800 add ssrc handling into packet_stream struct * [11dac7b] TT#12800 add MOS statistics to final log output * [5c84a6f] TT#12800 limit size of SSRC hash table * [4ad693a] TT#12800 report MOS stats back to proxy via NG protocol * [9108b14] TT#12800 records stats average not just for MOS but all values * [2cf9390] TT#12800 restore SSRC table from redis * [ab0dba7] TT#12800 support custom monologue labels * [23bc99e] TT#12800 consider RTCP XR reports for MOS calculations and stats * [2a03c00] clean up code artifacts * [8f55dd1] fix pushing wrong SSRC to kernel module * [6f5da56] add extra error logging to kernel module * [3f12517] report last error when port could not be opened [ Claudiu Boriga ] * [edac4f2] make cli_incoming accept multiple connections [ Victor Seva ] * [3c813ac] support wheezy build reported at #343 * [f7aa5fa] TT#14571 PEP8 for YouCompleteMe config [ Guillem Jover ] * [bd833c2] TT#14400 Use a boolean instead of a bitwise operator * [0b1bdbb] TT#14400 Do not NULL-dereference pointer * [56b723c] TT#14400 Do not check for negative values on unsigned variables [ Konstantin Poliakov ] * [5c5a4ef] Issue354: Fixes for rtpengint to ngcp-rtpengine renaming issues (including issue 356). [ Pawel Kuzak ] * [c8b36e0] More control over iptables [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Tue, 16 May 2017 21:44:37 +0200 ngcp-rtpengine (5.3.0.0+0~mr5.3.0.0) unstable; urgency=medium [ Frederic-Philippe Metz ] * [749a7da] Implements redis onekey concept * [9ebd06f] Some fixes for pull request #316 * [6a3bcf5] Fixes STR_FMT comment my @rfuchs or pull request #316 * [88b89ea] Fixes STR_FMT comment my @rfuchs or pull request #316 * [ed760fb] Fix more issues from richards comments * [ea9512c] Adds URI encoding for json strings in redis. * [f3364d9] Omits redisreply in redis restore and eliminates 'multikey' feature * [14b37eb] Removes multikey stuff * [6985784] Fixes redis recording flag in onekey concept * [d08dd6a] Fixes SRTP restore in onekey concept * [279e5fa] Removes commented code * [d904fb2] Removes 'json-' prefix from redis key (callid) * [267b57c] Implemented comments from Richard from pull req #323 [ Richard Fuchs ] * [2992031] TT#10252 add lsb-base to package depends as per lintian * [8b18bc5] TT#10155 split recording daemon into separate debian package * [f77726c] update redis one-key concept * [f5cc21f] TT#10156 write recordings metadata into mysql database * [d8cc8ca] combine two mallocs into one for redis restore * [d513c6d] add missing lock for failed call restores * [9a5cba4] use more precise avcodec/avformat version test macros * [76ba587] TT#13000 add init.d setuid/setgid capability * [db6a37a] TT#13000 handle output avio context failure * [b4694eb] port of a3f27f8751c to kernel space * [846886c] TT#13000 include recording filename suffix in db data * [4566bd3] TT#13005 store recording metadata to database [ Michael Prokop ] * [5784cb7] TT#10155 Use stop/start behavior for init script's restart action [ Victor Seva ] * [89393e1] TT#11400 debian: fix binary only builds * [77f9e4c] TT#12000 ngcp-rtpengine-daemon.default: add missing TABLE [ Anthony Alba ] * [1fc77bc] base64: flush base64 decoding, and skip base64 padding in crypto line * [3e2e024] Determine base64 padding from enc_salt_key_len [ Changli Gao ] * [a3f27f8] STUN: The most significant 2 bits is 0xc0 in hex [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 22 Mar 2017 11:02:14 +0100 ngcp-rtpengine (5.2.0.0+0~mr5.2.0.0) unstable; urgency=medium [ Pawel Kuzak ] * [65e80f6] Added flag 'no-redis-update' * [d2314ea] Reduced complexity in onRedisNotification() [ Richard Fuchs ] * [d7fa068] TT#5566 rudimentary wav file output * [eefb085] abstractize recording format and fix ipv6 header * [67fa3ff] add recording format switch to init/defaults file * [cfbe534] TT#5566 deal with lost RTP packets * [7395f8b] TT#5566 recognize and ignore (for now) RTCP packets * [30dcada] TT#5566 rudimentary support for multiple audio codecs * [3b68c26] TT#5566 support different sample rates and fix g722 clock rate * [147b8b8] TT#5566 force usage of libopus for opus decoding * [f958b2a] split logging mechanism into separate common files * [1de1706] don't engage logging system if log level is too low * [ea72733] support daemonizing in recording daemon * [5c22c3c] add additional audio codecs * [28b8018] TT#5566 add support for config file handling * [fb783f0] TT#5566 configurable recording daemon * [a2391f9] kfree_skb must be called lock-free * [9e38b8f] modernize debian init.d script to eliminate warnings * [a2afd79] TT#5566 support mp3 audio output * [7b21df9] split output/encoding stuff into separate file * [9ce3522] TT#5566 support audio resampling and custom mp3 bitrates * [e0fb30e] TT#5566 split ssrc_run() into smaller functions * [df869ff] automate lib symlink creation in makefiles * [040d1be] TT#5566 loop over encoding and decoding as required by the specs * [97183b1] make sure call_destroy unrefs the correct call object * [5a54cc1] TT#5566 support mixing all audio channels into one output * [3aa302f] TT#5566 memory allocation fixes * [82be334] TT#5566 align mixed audio's timecodes to each other * [b0b2a86] TT#5566 allow for up to 4 mix inputs and fix silence padding * [9036d30] fix call struct being accessed after obj_put * [42216b8] TT#5566 more output config options * [537c60b] fix segfault when avcctx could not be initialized * [2b72fde] fix segfault when resampling fails * [1d5668d] compile fixes for openssl >= 1.1.0 * [fb81332] handle multiple different sample types [ Kristian Høgh ] * [29488f9] Change pcap format to ethernet * [0edfb2d] Make pcap file format an option Valid options are raw and eth. Default is raw as it was before last commit. fixes #290 * [901de55] Document recording-format in README * [57d6e01] Support IPv4/IPv6 for fake ethernet frames [ Marcel Weinberg ] * [b215389] some small fixes; updated the specs file to be compatible to rtpengine 4.5 and CentOS 7.2 [ Lucian Balaceanu ] * [cef493a] Pictures for Internal data structures and Redis correlations wiki [ Frederic-Philippe Metz ] * [a0c36c5] Stricter build dependencies [ Karsten Horsmann ] * [06922c5] Update rtpengine.init [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Fri, 03 Feb 2017 00:43:05 +0100 ngcp-rtpengine (5.1.0.0+0~mr5.1.0.0) unstable; urgency=medium [ Pawel Kuzak ] * [4a03b9b] Add REDIS_EXPIRES to default configuration file [ Dinu ] * [a4ea7c0] Make --dtls-passive available from ngcp-rtpengine-daemon.init [ Lucian Balaceanu ] * [252ea8a] Delete from redis_write when redis_restore_call() fails * [877952a] redis restore call fails when a sfd is null * [e08f477] Empty other_ml stops call creation [ Richard Fuchs ] * [94e3c8f] TT#3881 re-enable selective packet loop check * [303a40b] TT#3881 re-enable selective packet loop check * [9aa4aec] don't complain if no spool directory is configured * [0a2a3cb] fix candidates being inserted after a=end-of-candidates * [1ebc9d9] update simulator-ng to moved perl modules * [c5c0b70] prevent segfault when no recording metadata is given * [50daef0] support recording flag in simulator-ng * [984585a] TT#5003 implement kernel-side call recording * [0a593cf] solve a kernel mem leak when strict-source is set and triggered * [e3a7248] resolve segfault when recording is disabled * [411c3b3] TT#5566 checkin of external call recording daemon * [6f33c1a] fix kernel module build for kernels < 3.9 * [3977e94] TT#5566 decode RTP streams * [5395db3] fix segfault when source endpoint address isn't filled [ Alexander Lutay ] * [ce46149] TT#5748 Fix typo in debian/ngcp-rtpengine-daemon.init [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Thu, 17 Nov 2016 23:21:05 +0100 ngcp-rtpengine (5.0.0.0+0~mr5.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [2e5e2ec] detect and ignore when local endpoints are advertised by remote clients * [c50b042] fix kernel forwarding problem when RTP extensions are present -- Alexander Lutay Tue, 27 Sep 2016 15:40:23 +0200 ngcp-rtpengine (4.6.0.0+0~mr5.0.0.0) unstable; urgency=medium [ Lucian Balaceanu ] * [25bbf03] Set timeout of 3s for send/receive socket operations * [e043670] redundant media setup: failover due to tout on offer response * [448fa9c] Redundant media setup: failover due to tout on offer response * [bd376ab] Adding redis_expires parameter * [512cc24] Print relay IP information * [278561b] Printing severity level within every log message * [e7f63dc] Report own/foreign/total sessions to Graphite * [5732121] Beautifying previous code * [8d08930] Fix log severity duplicate printing * [e468449] Make --log-stderr available from ngcp-rtpengine-daemon.init [ Eric Green ] * [70eb6b9] Record raw RTP to recording files on the filesystem. * [a8576eb] Do not convert to network byte ordering before we are done using a variable * [0e1892f] recording.c fix my tabbing to use actual tabs * [c8bf1a7] call.h now include media_socket.h to reflect the move of the stream_fd struct * [1ee8ef1] Update README.md to reflect new SDP schema * [04b71dd] Add back free that fixes memory leak introduced by rebase * [865ce9a] Remove unused variables (from refactor) in the stream_fd struct * [9637e7b] Fix function header of rand_affixed_str to match header definition * [aea277d] Add a mutex lock for recording to ensure thread safety when writing to pcap * [ba93a08] Add libcurl dependency for recording * [f5c7ff1] Make rtpengine.spec more compatible with el7 [ Dylan Mikus ] * [a714fbc] Record RTP in PCAP files in the /tmp directory. * [7cc8019] Added metadata string to call struct. * [c8af44a] Made random filename with affixes generic. * [692b129] Create metadata file and move it to spool directory when call finishes. * [7c53e9f] Moved file system management and random string code to appropriate files. * [89690b4] Write out call start and end timestamps to recording metadata file. * [f36faef] Code bug fixes and safety checks around error-possible code. * [2c1685b] Added command line option for the spool directory for recordings. * [8f6d7c0] Logging cleanup and added recording filesystem logging messages. * [fa4cd75] Added documentation on call recording and the spool directory to README.md. * [f516684] All RTP packet data for a call goes to one PCAP file. * [7acc323] Write out unique ip:port pairs for all streams. * [1af73c6] Fixed description of metadata file format to list just one pcap file. * [74999ab] Free the call->recording struct when the call is destroyed. * [844abee] Don't free the metadata before writing it to metadata file * [b3d6073] Prefix recording metadata and pcap files with call id * [1cec331] Only turn on or off recording if explicitly specified * [d604ff6] Set more permissive permissions in spool directory * [c787ab9] Refactored NG protocol handling of "record call" settings * [b35ca7d] Record answer SDP to recording metadata file * [466c52c] Refactored recording setup to streamline it * [0b33b48] Write out rewritten SDP from answer to metadata file * [d09f34a] Updates to description of metadata file format * [adb6193] Minorly adjusted the recording metadata file format * [beab4d9] Write recording files in url-encoded format * [abd9538] Fixes to match PCAP packets with SDP * [d267a3b] Tweaks to log verbosity for some messages * [a109fa2] Change metadata file permissions and fix some warnings * [526e9c2] Get recording metadata call start from call struct * [5fe68b9] Link recording metadata SDP to RTP packet numbers * [209cb7a] Modifications to recording metadata start/end time lines * [fa8146f] Fixes for recording packet counter * [44a153c] Made interactions to recording metadata threadsafe [ Joseph Frazier ] * [e69fc25] Document `record-call` and `ICE` flag interaction [ Pawel Kuzak ] * [70a1085] Do not print statistics of foreign calls * [3cda22f] Fix Lintian error for ngcp-rtpengine-utils package * [2499c4d] Make utils package part of meta package * [db96f61] Configuration file support for recording-dir [ Richard Fuchs ] * [cac076f] clean up makefile for libpcap * [a3c703b] remove superfluous initialization * [90242e3] prefer libpcap0.8-dev over obsolete libpcap-dev [ Charlotte Oliver ] * [8e58e6a] Add xt_RTPENGINE modules.load.d file to load xt_RTPENGINE on system boot [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 01 Aug 2016 16:37:16 +0200 ngcp-rtpengine (4.5.0.0+0~mr4.5.0.0) unstable; urgency=medium [ Frederic-Philippe Metz ] * [541e299] Implemented redis-notification base feature. * [1ee88db] Fixed SEGFAULT for RTPENGINE-64 * [447148b] Stop event loop on shutdown * [d7ca576] Fixed issues with terminating event_loop * [48543b4] Intermediate State: Notifications enabled by cli * [bf38f15] Fix for restoring notified call from own redis db * [354307e] Removed graphite hostname and 'totals' in graphite names * [fd3e234] Implemented redis notification according to RTPENGINE-64 * [8b65c18] Removed also the '.' of the graphite prefix * [9ca0be5] Reset deletion timers for in-responsible calls * [5af1d8f] redis operations on the keyspace are now related to the keyspace they belong to * [637d1f4] Locked redis context on redis notification * [1ca0cc5] Implemented session limitation logic [ smititelu ] * [b38f3da] Redis nofitications fixes * [98a86d3] Fix segfault when ps->component=0 [ Michael Prokop ] * [472fce8] MT#17699 Fix m-a build error + Bump Standards-Version for ngcp-rtpengine-kernel [ Stefan Mititelu ] * [7377b90] Add/Retrieve ps->component to/from redis * [763502d] Add sanity checks * [9ec8ac6] Upgrade rtpengine-ctl tool * [1648757] Fixes after first review * [f392d9b] Update notifications flag logic * [ce3ae37] Fixes after second review * [b35a8dd] Fix memory leak on redis notifications * [ee0216e] Update obj_* debugging text * [bd7abe6] Fix memory leak for notifications feature * [27ecb36] Free redis.c reply object memory leak * [1881fc5] Free call's main queues in __call_free() * [2024f9e] Remove unused code remnants * [11e94c4] Add >= idx check for redis_list_get_idx_ptr() [ Richard Fuchs ] * [5aa7ef4] fix kernel module build for 4.4+ kernels * [3ab2c63] MT#17699 augment module makefile version detection * [133e630] MT#18599 support sending RTCP stats to Homer via HEP * [8267966] MT#18599 use glib GString for RTCP logging * [b5e36c2] MT#18599 simplify RTCP parsing * [6187f51] MT#18599 support parsing of RTCP SDES fields * [d45f928] MT#18599 limit Homer send queue size * [29545e5] MT#18599 use kernel socket receive timestamping * [05f0317] fix the 'media address' parameter * [0206f09] fix obj-debug stuff * [a813ddf] fix compiler warnings due to conflicting int types * [ee960b7] don't do DTLS when in passthrough mode * [942966b] force bencode strings as strings in perl ng-client * [1f8d8d7] DTLS tests - WIP * [bf8c6d9] split ICE stuff into packages * [bc30f83] incorporate dtls stuff into tests * [83d6600] unify testing framework - wip * [d8d5e1b] include timer handling in test lib * [4f75c36] diversify test scripts * [ec10dbc] support ice test script * [3306edf] remove legacy test scripts * [e608cb0] move .pm to separate directory * [50bc73c] support sending of rtp * [db8284f] support nominating ice WIP * [2b5e8ff] support sending rtp over ice negotiated peer WIP * [f25c254] implement ice keepalives * [65d4752] support checking of received rtp data * [af788f1] additioanl tests and flags * [b6b0b90] move dedicated tests into t/ * [f83f674] fix perl namespaces - move into NGCP:: * [cd937f1] create ngcp-rtpengine-utils package * [351bc10] staticize function [ Lucian Balaceanu ] * [8fb677b] Fix stats foreign_sessions if redis_restore fails * [859a505] Fix (foreign|own)_session, call_duration stats: modify call_get_or_create to set stats and foreign call state * [2a05b85] Take end time of call monologue from terminated field * [e2d78d9] Fix overflow of graphite call_duration statistic [ Sergey Lavrov ] * [cf39d07] fix typo and error in rtpengine.init [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 23 May 2016 19:02:50 +0200 ngcp-rtpengine (4.4.0.0+0~mr4.4.0.0) unstable; urgency=medium [ Lucian Balaceanu ] * [937bb71] Adding images to illustrate redis database layout * [7ae955c] Fixing reversed parameters when calculating redis restore time [ Guillem Jover ] * [df2126f] MT#16473 Convert debian/copyright to machine-readable format [ Pawel Kuzak ] * [ca04c96] Make creation of iptables chain optional * [3f4cfff] Fixed inconsistency in rtpengine-ctl list totals [ Joseph Frazier ] * [8fbb0d3] Add hiredis-devel to daemon deps in README.el.md * [2877f76] Add hiredis-devel to daemon BuildRequires [ Richard Fuchs ] * [7635f51] add hiredis dependency to README * [6f2dc00] allow srtp-debug-helper to specify the ROC * [b85a9e3] fix two memory leaks * [5926048] don't just ignore but also strip invalid/unknown a=crypto * [c9d797a] retain outgoing DTLS role whenever possible * [d81c8df] move struct sdp_ng_flags from sdp.h to call_interfaces.h * [b0a3898] fix sfd assignments when remote port changes * [5dbadc4] implement port latching option * [38d031c] fix support for AF switching on the fly * [43bcabf] fix logic for unspecified ipv6 addresses * [ff26e00] add STUN SOFTWARE attribute into ICE checks and responses * [59cfb4f] fix incorrect padding in stun software attr * [5b33498] fix RTCP content output * [77d074c] fix length of software STUN attribute * [b828122] move advertised_address out of intf_spec into local_intf * [1c56865] fix iovec overflows * [27d18e2] fix stun xor port response * [725638b] remove redis-role redundancy * [d8e1e9f] simplify redis CLI options * [3f1ae98] unify -r/-R and -w/-W options into single options * [c1407d6] support Redis server authentication * [f52884e] report errors returned from redis * [c4f630c] fix kernel module build for 4.4+ kernels * [926d9d3] MT#17699 augment module makefile version detection [ smititelu ] * [6378a1e] Graphite change global to local parameters * [0395a24] Change the graphite connection state logic * [e48252e] Change abort() behaviour of redis_check_conn() * [7d03f3d] Improve Redis connection logging * [50aef80] Rtpengine starts even if redis is down * [33e72ba] Skip redundant log if r->ctx->err != NULL * [0447177] Add NO_REDIS_REQUIRED new parameter * [74ad505] Update README.md for NO_REDIS_REQUIRED parameter * [65de793] Add config REDIS_NUM_THREADS param * [eee5a65] Update doku for REDIS_NUM_THREADS * [a6b4b86] Fix segfault when ps->component=0 * [bac271b] Add callmaster config lock [ Frederic-Philippe Metz ] * [e376335] Removed graphite hostname and 'totals' in graphite names [ Michael Prokop ] * [47a9564] MT#17699 Bump Standards-Version to 3.9.7 * [b4a6653] MT#17699 Fix m-a build error + Bump Standards-Version for ngcp-rtpengine-kernel [ Stefan Mititelu ] * [5e7640b] Add/Retrieve ps->component to/from redis * [9be68a0] Add FINAL_TIMEOUT parameter * [ef39aa3] Add rtpengine-ctl list/set timeout * [4343ff0] Update rtpengine-cli set maxopenfiles * [05302c2] Update rtpengine-cli set maxsessions * [57aa566] Add offer/answer/delete processing statistics * [a43996f] Add 'unidirectional' attribute [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 21 Mar 2016 22:31:18 +0100 ngcp-rtpengine (4.3.0.0+0~mr4.3.0.0) unstable; urgency=medium [ Frederic-Philippe Metz ] * [10f6e51] Replaced sprintf by snprintf for cdrbuffer * [8219921] Extended callid space for list_* output [ smititelu ] * [c406e6d] Some ICE NULL checks * [637f9f9] Add logging related to kernelization and strict-source flag - master branch * [4b92d14] Allow more than 65536 open files * [c44c35a] Add 'rtpengine-ctl list maxsessions' command * [00bb10b] Add 'rtpengine-ctl set maxsessions X' command * [012bcc4] Add 'rtpengine-ctl list maxopenfiles' command * [06b1293] Update rtpengine-ctl util * [c969ab9] Change maxsessions feature behaviour * [32a4299] Update README.md for --max-sessions * [0309123] Update README with REDIS details [ Camille Oudot ] * [fad4074] allow non-root users to control the kernel module * [5a8f5c3] add possibility to choose rtpengine process user * [88ce85e] remove kernel module uid/gid global switch * [6f6a703] add option to set the group owning /proc/rtpengine * [548b710] disable procfs uid/gid for kernels prior to 3.10 [ Richard Fuchs ] * [99a3faf] MT#15289 add "reset" flag to un-learn certain parameters * [ed75c99] fix a memory leak * [1a67331] fix compiler warnings * [28d877b] remove superfluous ice agent warning * [2cff49b] support reset flag in ng-client * [1c6eec4] additional DTLS debug log messages * [59a69f0] Improve DTLS packet processing * [cae0b4b] compile fix for debug builds * [afa46a4] use `reset` flag to also reset and restart ICE agents * [6d3865b] Mass update - manual merge of rfuchs/socket-rework branch * [6b5c4e8] Mass update for non-daemon code (see `6d3865b`) * [31d28a3] MT#16783 support via-branch matching in `delete` messages * [cd34dde] fix missing redis expiry times * [cb53218] fix incomplete dialogue association when initial offer contains to-tag [ Lucian Balaceanu ] * [41fa252] Replacing redis hashkeys with -CALLID_IDX instead of -POINTER * [8ee14e5] Fixing managed_sess_min interval statistic. [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 16 Dec 2015 09:33:26 +0100 ngcp-rtpengine (4.2.0.0+0~mr4.2.0.0) unstable; urgency=medium [ Stefan Mititelu ] * [47ac2c7] Added a bridgeport GQueue to the 'struct call' * [159d86d] Add codec info in CDR logging [ Richard Fuchs ] * [08cb513] fix missing stack var initialization * [87feafc] MT#14817 don't reset crypto on non-filled packet stream * [59b0f33] ignore endpoint changes when ICE is in use * [c6ff5e7] disable in-kernel RTP PT stats for kernels < 3.0 * [e7ad477] fix kernel compilation for older kernel versions * [a934fb4] fix compiler warning * [dafde10] MT#15157 integrate redis module into main code tree * [1956712] always strip a=mid attributes * [83ebe70] clean up payload_types-X before populating it [ Damian Ivereigh ] * [0390782] Now works with firewalld - creates a permanent chain called INPUT_prefilter which is before the conntrack stuff in the INPUT tables. We then create our temporary rtpengine chain from that. Also brought in some of the IPv6 stuff from the standard Centos init script * [57e25ea] Added back in volga629's changes to allow multiple interfaces - also duplicated the same for IPv6 * [198b0c9] Removed all the IP6 options * [76bebd5] Put back the ipv6 tables entries (without the IF wrapper). [ Eric Tamme ] * [bef76d4] add macros that get older versions of glib to compile if gcc is being used - credit to paulandrewhughes [ Lucian Balaceanu ] * [f864da7] Adding per graphite interval statistics: min/max concurrent calls, total call time per interval * [482b004] CLI output for Graphite statistics * [e5665c8] Add --help/-h. Fix truncated ctl output for large commands [ smititelu ] * [2ed14aa] Solve packet errors due to payload type * [63db6b6] Log redis restore time * [72cf55b] Specific REDIS read and write databases [ Pawel Kuzak ] * [c214996] Reorganized CLI output [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 12 Oct 2015 15:46:13 +0200 ngcp-rtpengine (4.1.0.0+0~mr4.1.0.0) unstable; urgency=low [ Frederic-Philippe Metz ] * [ec5a543] Added prefix config parameter to graphite acc. to OPS * [6bc7a77] First try of implementation of measureing delay. * [d98d17b] Implemented non blocking connect to graphite due to firewall issues. * [6e7a287] Modified average_dur format for graphite. * [e0f9c59] Implemented stage 1 of measuring delay * [bd24127] Revert "First try of implementation of measureing delay." * [6d33ef7] Implemented delay measurement of RTP packets in kernel. * [cca0f2b] Replaced rtpengine-ctl shell script with perl script. * [070212e] Added RTCP parsing and option to log that information * [f8aaf35] Implemented TOS/Traffic Class bit in received first RTP packet * [5635a8c] Replaced rtpengine-ctl shell script with perl script. * [8a0fbf2] Fixed RTCP parsing of bitfield structs. * [1d1b8f2] Fixed RTCP Parsing also for XR reports. * [cb85cbf] Fixed wrong Zeroing of stats member * [c444c05] Implemented MAX_SESSIONS limit or calls. [ Richard Fuchs ] * [3acc850] zero-fill padding bytes * [d502084] fix refcount bug * [4ea8d96] remove stray compiler warning * [ba48d7b] fix call timeout when ICE fails * [13d8b8a] fix ICE when no candidates are present (trickle ICE) * [46ebfa3] do not detect trickle ICE RTCP port as rtcp-mux * [83a4082] fix number of ICE components for tricke-ICE no-components case * [b0edf59] don't reset certain stream flags for disabled (zero port) streams * [e7868da] increase size of RTP loop protection buffer to 28 for RTCP * [39a305f] reset SRTP ROC to zero when SSRC changes * [fd42645] use SRTP<>SRTP transcoding when crypto parameters differ * [96e3b91] Implement support for some SDES session parameters * [d422237] support SDES session parameters in kernel module * [144a451] support selective SDES session parameters * [85dc64d] compare SRTP session params for equality * [b205691] RTP forwarding fix for trickle ICE * [0abf5b1] process muxed RTCP * [ae46036] RTCP logging fixes * [29cf9f8] remove redundant code * [18977d4] remove calls to setlogmask (not atomic) * [ed2c101] preliminary fixup of new kernel stats - needs more work * [a3bcdc5] don't abort on unknown RTCP payload type * [0381b15] further move RTCP logging until after SRTCP decryption * [92cc560] don't shut down ICE agent on consecutive re-invites * [9c3ad50] use appropriate crypto context for encryption and decryption * [76f3893] ssrc tracking improvements * [c3c6d37] convert ssrc tracking functions to inline * [39392e2] fix ssrc in simulator-ng.pl * [5d6604a] SSRC/ROC debug tools for simulator-ng * [87fbbb8] implement ssrc/roc tracking in encryption as well * [409638e] simulator fixes for SDES session parameters * [e0fec75] kinda support the UDP/TLS/ protocols in simulator-ng * [f398d83] double check kernel SSRC when updating last index/ROC * [80b8815] fix force-relay segfault * [d567908] disable measuredelay features by default * [4893487] fix compiler warning * [d0ac721] skip printing cdr info when cdrs are disabled * [8eaf812] update redis version * [1e4d67a] fix for bf5a00fd1b * [a6d9c78] MT#13067 fix premature call timeout for un-answered calls * [eea3256] MT#12691 implement via-branch handling * [d17e26a] segfault fix for debug builds * [7ed4ed9] support immediate call deletion with delete-delay=0 * [a811adb] support custom per-call/branch delete delay * [d9d8f97] support delete-delay passed as a string * [4b1d190] fix compiler warning - return const string * [5ba8e2e] MT#13737 don't add a=rtcp for non-RTP protocols * [21e1fb6] support elliptic curve key exchange for DTLS-SRTP [ Victor Seva ] * [46c60e5] MT#12519 debian/control: switch from Pre-Depends to Suggests for ngcp-system-tools package [ pkuzak ] * [6255d1f] Disable delay measurement by default [ Marc Soda ] * [65a3587] Use the proper ROC when encrypting. * [16b9184] Track SSRCs and sequence numbers. Sync between userspace and the kernel. * [0ac1ed2] Remove unnecessary prototype. [ Kevin McAllister ] * [965fa39] Change packet_index functions to more closely match RFC * [3097f71] convert spaces to tab on comment. [ Pawel Kuzak ] * [ef84259] Added MAX_SESSIONS to README * [369316a] Added rejected sessions statistics to total stats and graphite * [bf5a00f] Modified average_dur format for graphite. [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Mon, 13 Jul 2015 15:35:03 +0200 ngcp-rtpengine (4.0.0.0+0~mr4.0.0.0) unstable; urgency=medium [ Richard Fuchs ] * [2db33ef] reset ICE/STUN retransmit data on triggered checks * [20ac7cd] process nominating ICE request only once per pair * [93294f8] don't relearn addresses if the endpoint hasn't changed * [0b202d8] Fall back to a different address family if the requested one is unavailable * [fd99ecf] don't close call on UDP send error * [c0fab9b] various fixes related to ICE negotiation and rtcp-mux * [2cfc12b] fix incorrect free order of ICE components [ Peter Lemenkov ] * [eba4414] Remove BuildRoot * [597c35a] Remove duplicated text in descriptions * [49ed2a8] Remove autoadded deps * [b0240ee] Use generic dependency name for nc * [cd70a8f] Use proper versionin scheme * [8d56ed5] Typo fix in Source0 url * [9890371] Remove no longer required section * [234b454] Use macro instead of /etc/rc.d/init.d * [882731b] Remove double slash * [d25b697] Check for username,group before creating * [e71a7e1] Consistently use rtpengine name everywhere * [a6ab5b5] Restrict access to a working directory * [9a12b49] Don't specify access rights for _usrsrc dir * [3b27031] Explicitly set rights on dkms.conf as 644 [ Alexander Lutay ] * [3a45a16] MT#7505 Add .gitreview file for rtpengine -- Alexander Lutay Wed, 08 Apr 2015 17:26:40 +0200 ngcp-rtpengine (3.3.0.0+0~mr4.0.0.0) unstable; urgency=low [ Sergey Lavrov ] * [bb14eba] Fix %post/%preun directives. * [fe5e129] Added rtpengine-ctl and dependency to spec file. [ Richard Fuchs ] * [a0068f4] relax sdes key lifetime validation check * [caba5be] MT#10583 remember the "created from" address in raw format * [6e32379] MT#10583 support ipv6 control connection in simulator * [02d27d5] MT#10583 support b2bua callback to sip proxy address * [43cd3f5] reset other side's crypto params only in passthru mode * [2af682b] use SSL_CTX_set_read_ahead to fix for openssl 1.0.1k * [e24253a] move parse_ip(6)_port into aux.h * [a81588e] provide convenience function get_log_level() * [37d98ad] dump DTLS cert and keys * [57c0a84] add locking to totalstats * [f544471] fix compiler warnings * [36c7141] change control_ng_stats into a hash and use locking and atomic ops * [c0b2f3d] fix graphite code not to leak fds in error cases * [965d989] static'ize graphite global vars * [7175a26] decrease sleep time of graphite loop * [3882285] decrease calls to time() in graphite code * [de37ac0] use TLS buffer array for temporary strings * [ee4f2d2] convert ilog() into macro * [411a888] use atomic ops for stats * [28c6db9] fix references and locking in CLI * [20fd255] use UINT64F instead of %llu where appropriate * [3bc1672] more atomic stats, and fix average length calc * [fedaadd] remove superfluous \n from log messages * [1e3f06a] split some perl SRTP stuff into module and add debug script * [deba231] rename an old MP_ variable to RE_ * [fb9ed6e] use trial & error approach to guess ROC in case of SRTP auth failures * [f6dee07] fix initial seqnum in simulator * [787d90f] rename atomic_uint64 to atomic64 for brevity * [49328cd] implement atomic64 for non-64-bit platforms * [da6b6a1] fix compiler warning on 32bit * [ca149e6] "long" can be 32 bits only and may truncate math * [b023d6c] update redis mod version to 7 * [adeb0b3] the log rate limiter must take the prefix into account * [fb667a8] turn tag and termination texts into array lookups * [d79c68f] remove some unnecessary memsets * [a5f7315] string handling fixes and improvements * [037c6aa] shorter locking in stats loop * [f7a1594] more descriptive warning for failed kernelizing * [5fa9902] atomic vars should be volatile * [c21193a] fix byte stats in kernel module * [c2ff5c3] MT#9935 understand, learn, remember and report RTP payload types (codecs) * [b586fa7] fix memory leak * [65b3f66] use atomic64_t for kernel stats * [4a97bb1] attempt to work around trickle ice * [b44bb28] segfault fix * [015b2a9] legacy tcp protocol fix * [016f8b3] Rework logging a bit (primarily in NG) * [91a85e6] fix for skewed stats * [6173a7a] implement atomic bitfield ops * [1f7c8a2] remove obsolete HAS_HANDLER flag * [f224bab] segfault fix if no rtpmap attribute is present * [26ca844] drop support for glib versions older than 2.30 * [b83e80c] add makefile dependency to itself * [956d07d] fix erroneously reported 0.0.0.0 address when bridging from ipv6 * [f99d6d4] implement full ICE support * [98e0b6d] update for redis plugin * [0e4e6f2] revamp and move timeval functions * [26137d2] move thread loop functions out of main.c * [5fca71d] fix segfault when parsing server reflexive ICE candidates * [3520617] remove ice-lite mention from readme * [9593519] Leave unsupported (non-RTP) protocols alone when translation is requested [ Eric Tamme ] * [b8b17bf] clear crypto for BOTH legs when in passthrough mode * [506076b] add raddr and rport on all non host type candidates per rfc5245 section-15.1 [ Carsten Bock ] * [9a2da87] Fix randomness source for key generation. [ Frederic-Philippe Metz ] * [2ae0e35] Added functionality to report statistics to graphite * [7446822] Forgot the files .. * [61a72b1] Added some more statistics. * [0ccb11a] Added statistics on control ng interface. * [794709f] Changed retry behaviour for connecting to graphite server. [ Michael Prokop ] * [fca4500] MT#9127 Bump Standards-Version to 3.9.6 [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 18 Mar 2015 14:15:06 +0100 ngcp-rtpengine (3.3.0.0+0~mr3.8.0.0) unstable; urgency=low [ Richard Fuchs ] * [2460836] remove -e argument from awk * [19e0281] disable "list" NG command if glib version is too low * [b49f57b] avoid DTLS role change on reinvite * [d0beccb] don't break log lines when logging to stderr * [8c8ff56] fix pointer const declaration and make it static * [955de10] support proper DTLS shutdown and restart DTLS on FP change * [6757c27] add DTLS=passive option * [97b472b] don't break legacy control protocols * [f826d01] make "trust address" the default behaviour * [4c408e5] add --dtls-passive switch * [d272e9e] add more flags to stats output * [e09fbd2] dtls shutdown clears crypto context as well * [91221ef] move DTLS setup logic into separate function for readability * [50d1839] reset DTLS and crypto params when endpoints change * [3478629] don't output error message on stun SOFTWARE attribute * [a1786d6] segfault fix: ps->sfd can be null * [4077225] avoid unnecessary DTLS restarts * [7e72bfc] MT#10059 allow freeform interface definitions in init.d script * [935487b] avoid race condition by making OpenSSL thread safe * [dcfd703] deadlock fix * [0113991] MT#9585 rename kernel module and all related items from MEDIAPROXY to RTPENGINE * [276c7c8] report errno in log on sendmsg() error * [cccb0bf] add Recommends: netcat-openbsd | netcat for CLI patch * [43bcbcc] change created_from to an allocated string buffer * [0e531eb] change created_from to an allocated string buffer * [a8e5582] rtpengine-ctl: use $0 as name in help output * [d79bcfe] remove extraneous linefeed * [3cfeb5d] optionally allow broken SDPs as compile switch * [458a84c] remove obsolete RH $RTP_IP6 sysconfig option [ Frederic-Philippe Metz ] * [9886de4] cdrpatch.dpatch: * [947b35e] fixed_callduration_and_added_termination_reason_20141125: * [ee655bd] added_milliseconds_precision_for_CDR.patch: * [131c9e8] cli * [a871cd7] added_address_of_invoking_proxy * [5342158] added_information_of_from_to_tag: * [d623710] adaptions_for_ng_protocol: * [59329dd] VOIPTEST_220_delete delay * [4882d91] RTPENGINE-1_total_statistics_rectl.patch: * [b566581] VOIPTEST-231_session_duration_rectl_milliseconds.patch * [a4168be] RTPENGINE-12_Fixed_Segmentation_fault_if_only_offer_received.patch [ Victor Seva ] * [66a5137] Allow to choose CC * [f8e16b9] Add travis-ci configuration [ sybasesql ] * [b94bae8] Update rtpengine.init * [08ffc9c] Update rtpengine.sysconfig [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Wed, 07 Jan 2015 21:39:28 +0100 ngcp-rtpengine (3.3.0.0+0~mr3.7.0.0) unstable; urgency=low [ Frederic-Philippe Metz ] * [e77dd1a] create as many threads as cpus [ Richard Fuchs ] * [b66091b] make number of threads configurable * [07b6ea4] document new CLI flags * [a5c55fc] add NUM_THREADS to init scripts * [ba5ed24] kernel module didn't handle DTLS packets properly [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Thu, 30 Oct 2014 17:30:10 +0100 ngcp-rtpengine (3.3.0.0+0~mr3.6.0.0) unstable; urgency=low [ Richard Fuchs ] * [062256b] segfault fix for DTLS protocol errors * [b0c7efb] duplicate x509 in mem for delayed verification * [9ecb7da] allow for protocol renegotiation * [759ea60] adding some debug messages * [e1cfc19] fix incorrect port allocations * [e7aa743] change default a=crypto: tag from zero to one * [e883f57] better support protocol switching within a call * [4bf2ec7] correct data type for key lifetime * [b6ff15c] remove unnecessary a=inactive for zero-port media * [964b644] don't skip setting stream to actpass when not using sdes * [681b2c1] version reporting: use git branch and commit if available * [77829f9] split very long log lines into smaller pieces * [9d001e3] fix segfault if NG protocol is not used * [ec21806] use default TOS if not using NG protocol * [58940b5] change stun log levels * [8f4e345] increase default log level for debug builds * [e0957d1] fix TCP/UDP protocol stream output * [50f2bfb] allow for fqdn in o= line * [73b56db] Update CentOS definitions * [1f4f0d6] implement delayed call/branch deletion * [8a8dee5] support sdes key change in simulations * [5e129dd] brevity * [16b42fb] Switch around internal fromtag/totag/endpoint representation * [fe65671] simple port randomizer * [65812fa] limit the number of times the receive loop can run without breaking * [c0f8196] implement detection of duplicate packets to catch and avoid forwarding loops * [fccad69] segfault fix for tcp status command * [54f903d] bugfixes for legacy control protocols * [4d00147] s/force_relay/force-relay/ * [0cbb466] paving the way to multi-interface support * [513ac44] incorporate new local-interface infrastructure into appropriate places * [e365572] receive local address from kernel and use it for outgoing packets * [45dee75] support specifying interfaces to use in control protocols * [1a39b86] readme update * [ddcf0f3] update init.d file * [d1165df] update EL specs/init file * [e830bf5] update for redis module * [af9625d] make multi-homing thread safe * [34ca29b] don't escape exclamation points in sh scripts * [3de07be] s/MEDIAPROXY/RTPENGINE/ * [c1d7a52] MT#9065 daemon: don't restart if kernel is needed but not yet installed * [6379883] fix str_hash() for archs enforcing aligned pointers * [4658526] implement a crude log limiter * [6cf604d] fix comparison between int and bitfield [ Camille Oudot ] * [47b0252] fix null/empty string check in ng_call_stats * [a51db71] new command: 'list' to retrieve the list of active call-ids * [6005d14] XMLRPC notifications: more formats * [81d8616] list command: several fixes + documentation * [faf3e22] logging: choose the log facility from the command line, or log to stderr [ Victor Seva ] * [f562844] MT8741 remove init script tricks [ Dipak Malla ] * [bfb41d1] Fixed linking error in Makefile [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Thu, 09 Oct 2014 16:54:38 +0200 ngcp-rtpengine (3.3.0.0+0~mr3.5.0.0) unstable; urgency=low [ Richard Fuchs ] * [cbe1f80] possible segfault fix * [ba1bd04] silence warning for kernelizing rtcp * [c9a101c] docs update * [ca138c3] fix kernel module debug output * [aa4f2fa] document SIGUSR1/2 * [0bc4d3c] kernel srtp fix * [be500e1] prefer space to underscore in bencode * [c730895] update "query" output docs * [56ca361] sync bencode from kamailio * [b0c0e39] allow hyphenated versions of NG protocol flags * [a7784f5] try to fix null c= address issue * [2e9ae75] remove needless assertion * [e381e10] configurable per-call TOS value * [69dec02] fix inappropriate locking sequenece * [68d94c6] add --TOS to ng-client * [1564099] fix possible deadlock * [2a38b51] better ICE priority calc for non-RFC clients * [f6290f3] sample CLI usage for ng-client * [d37d385] properly handle unknown transport protocols * [9cbe157] properly support the udptl protocol [ Victor Seva ] * [02832db] MT#6485 detect container environment * [eb9dbd8] MT#6485 add proper checks for virt-identify * [c7e3911] MT#6485 add no_ngcp script to remove NGCP dependences [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Thu, 10 Jul 2014 15:36:42 +0200 ngcp-rtpengine (3.3.0.0+0~mr3.4.0.0) unstable; urgency=low * New release. -- Sipwise Jenkins Builder Mon, 26 May 2014 16:00:30 +0200 ngcp-rtpengine (3.3.0.0+0~mr3.3.0.0) unstable; urgency=medium [ Victor Seva ] * [1b486a7] MT#6449 add -dev packages needed to build something with ngcp-librtpengine-dev * [d025f4b] MT#6449 fix typo [ Richard Fuchs ] * [f638f36] replace implicit bit fields with explicit ones * [5faf5e6] switch to C99 standard * [05e429c] C99 inlining rules * [c372019] re-enable redis module compatibility checks * [b6643e3] eliminate redis_uuid * [ec3daab] change name of redis plugin file * [91cae48] add core.* files to "make clean" target * [7c0cc4c] updates for redis support * [e19ca0a] introduce log level flags (LOG_FLAG_RESTORE) * [e2901eb] update README (primarily name change) * [5d49022] set media SDES flag when appropriate * [b132d80] redo flags to have a "shared flags namespace" * [aa5bae9] implement experimental passthrough relay mode * [9f1696d] use srtp<>srtp transcode if either side uses dtls * [838917b] compile fixes for older gcc versions * [88dfeee] fix compiler warning * [6c1cb06] fix relay ICE candidate type for RTP candidate * [09b9303] fix ICE priority calculation * [92cab83] remove unused variable * [011a426] restore query/stats output * [0a42f4a] fix timeout handling for silenced streams * [940030d] support kernel forward of non-rtp packets * [7d82016] implement source address checking - kernel part * [bb84ea5] implement explicit warning when kernel support is missing * [b9cf00b] obsolete the "symmetric" flag * [2036322] parse "strict source" and "media handover" flags * [eb59af9] more verbose timeout log message * [b8a39be] avoid log message redundancy * [4ded03d] implement media-handover and strict-source logic * [b905e73] included expected source in /proc output * [4fb151a] /proc output indentation fix * [3030324] sink must also be unlocked when peer address changes * [e9ff918] make call_destroy() global * [40790a7] whitespace cleanup & remove obsolete code [ Michael Prokop ] * [8e11a60] MT#6511 Bump Standards-Version to 3.9.5 [ Juha Heinanen ] * [2dae4fb] support ICE=force_relay flag * [5198233] make ICE=force_relay leave SDP endpoint details alone [ Pablo Ruiz García ] * [cf76901] Do not try to install & initialize module if in kernel support has been specifically disabled (ie. TABLE < 0) -- Victor Seva Mon, 26 May 2014 12:23:29 +0200 ngcp-rtpengine (2.9.9) unstable; urgency=low * Rename from mediaproxy-ng to rtpengine * Complete rewrite of internal media streams handling * Support for DTLS-SRTP * Support for unBUNDLE * Improved support for rtcp-mux * WIP -- Richard Fuchs Tue, 04 Mar 2014 11:06:23 -0500 ngcp-mediaproxy-ng (2.4.0.0+0~mr3.3.0.0) unstable; urgency=low [ Richard Fuchs ] * [9edb5a3] attempt to lower idle CPU usage when reading list/blist * [50573f4] bit field/array fixes -- Alexander Lutay Fri, 21 Mar 2014 15:26:25 +0100 ngcp-mediaproxy-ng (2.3.6+0~mr3.3) unstable; urgency=low * fix IPv4 TOS -- Richard Fuchs Mon, 24 Feb 2014 12:40:53 -0500 ngcp-mediaproxy-ng (2.3.5+0~mr3.3) unstable; urgency=low [ Richard Fuchs ] * [eec41b8] fix mem leak * [3c4b387] fix the "media address" parameter to comply with the docs * [0f99aea] fix simulator rtcp-mux bug [ Sipwise Jenkins Builder ] -- Sipwise Jenkins Builder Sat, 01 Feb 2014 19:48:40 +0100 ngcp-mediaproxy-ng (2.3.5) unstable; urgency=low * update desired address family (based on "direction") when branching -- Richard Fuchs Tue, 07 Jan 2014 16:09:50 -0500 ngcp-mediaproxy-ng (2.3.4) unstable; urgency=low * Kernel module compile fixes for kernels >= 3.10 * Re-learn peer addresses after each signalling * Fix erroneous double lookup detection -- Richard Fuchs Thu, 12 Dec 2013 05:48:12 -0500 ngcp-mediaproxy-ng (2.3.3) unstable; urgency=low * fix possible segfault on incorrect sp/SP flag usage -- Richard Fuchs Wed, 06 Nov 2013 10:27:10 -0500 ngcp-mediaproxy-ng (2.3.2) unstable; urgency=low [ Richard Fuchs ] * [7d82cd2] updating README * [2f0ad34] update init script to "provide itself" * [97d3414] fix bug when trust-address isn't given * [5fa1c1e] don't fail on failed rm * [13ad042] rename some keys in the ng protocol (replace dash with space) but retain compatibility * [bbc5339] implement and document ng "media address" * [7e88b38] change port range defaults to match docs * [d63df52] merge bencode fix from kamailio source * [1a83499] fix incorrect source address of STUN binding responses * [f023ab4] update init script to handle ipv6 tables properly * [ace8130] merge bencode fix from kamailio source * [e90a7ec] change port range defaults to match docs * [b18d14e] Implement non-fatal warnings in NG replies and use them in "delete" (Closes: #12) [ Peter Dunkley ] * [130d485] Updated Makefiles and added compilation instructions to work with Enterprise Linux (tested on CentOS 6.4 64-bit). * [c7c3ee0] First go at creating a .spec file to build mediaproxy-ng for Enterprise Linux * [44fc40f] .spec file now builds iptables plugin. Kernel module (using DKMS) to follow. * [e322989] Updated documentation for Enterprise Linux * [6830b16] .spec file now builds kernel module using DKMS * [ce9ac35] Updated readme for Enterprise Linux * [c0572a0] More tidying of EL docs * [f16afa8] Added init.d script and config file * [3468c17] Fixes to init.d script and .spec * [10d991c] Updated documentation for Enterprise Linux * [7a14c45] updated to support new --log-level argument and use a new iptables chain * [454f65f] fix to iptables usage in init.d script * [dfe9cfb] updated rel in .spec file * [829e835] Updated to use DKMS from EPEL for Enterprise Linux builds [ Jon Bonilla ] * [ffd3231] Make mediaproxy use a new iptables chain [ oboisti ] * [d74c24f] added --log-level option and USR1 and USR2 signals to update log level on the fly [ Juha Heinanen ] * [e84c2f5] added log level handling to debian default file and init script [ Michael Prokop ] * [a1d21dc] MT#4569 ngcp-mediaproxy-ng-daemon does not need to Pre-Depend on ngcp-mediaproxy-ng-kernel-dkms. Thanks to Peter Dunkley for reporting (Closes: #9) -- Victor Seva Tue, 29 Oct 2013 10:37:41 +0100 ngcp-mediaproxy-ng (2.3.1) unstable; urgency=low * Enforce stream correlation against same-numbered old streams * Fix incorrect source address of STUN binding responses -- Richard Fuchs Mon, 21 Oct 2013 11:10:20 -0400 ngcp-mediaproxy-ng (2.3.0) unstable; urgency=low * Implements RFC 3711 (SRTP, RTP/SAVP), RFC 4585 (RTP/AVPF), RFC 4568 (SDES), RFC 5124 (RTP/SAVPF) * Supports userspace and kernelspace bridging between RTP/AVP, RTP/AVPF, RTP/SAVP and RTP/SAVPF in arbitrary combinations * Supoprt for some additional SDP attributes * Drops support for hosts without IPv6 stack -- Richard Fuchs Tue, 02 Jul 2013 15:07:30 -0400 ngcp-mediaproxy-ng (2.2.1) unstable; urgency=low * Handle zero ports and addresses in NG protocol -- Richard Fuchs Thu, 28 Mar 2013 10:14:00 -0400 ngcp-mediaproxy-ng (2.2.0) unstable; urgency=low * Adds support for the new NG protocol * Support ICE when running on NG protocol * STUN support for ICE support -- Richard Fuchs Wed, 06 Feb 2013 14:08:13 -0500 ngcp-mediaproxy-ng (2.1.1) unstable; urgency=low * Don't reject lookups with unknown via-branches, instead remember the via-branches -- Richard Fuchs Fri, 18 Jan 2013 10:11:06 -0500 ngcp-mediaproxy-ng (2.1.0) unstable; urgency=low * Better logging for XMLRPC calls * Implement UDP Q command for the $rtpstat pseudo-variable -- Richard Fuchs Mon, 10 Dec 2012 08:53:14 -0500 ngcp-mediaproxy-ng (2.0.2) unstable; urgency=low * Don't fail on zero port in TCP controller * Fixes for locking problems and race conditions -- Richard Fuchs Fri, 05 Oct 2012 10:33:15 -0400 ngcp-mediaproxy-ng (2.0.1) unstable; urgency=low * re-add init stuff -- Jon Bonilla Fri, 24 Aug 2012 01:15:43 +0200 ngcp-mediaproxy-ng (2.0.0) unstable; urgency=low * Support XMLRPC callback to B2BUA/SBC to break calls upon RTP timeout * Split redis HA code into module * Support zero-length UDP packets on RTP sockets * Support large RTP packets (up to 8192 bytes) * Write packet statistics to log on call termination * Don't trigger call timeout when there's RTCP traffic * Supply -dbg package [mprokop] * Drop poll() in favor of epoll() for better performance * Implement multi-threaded operation * Fixes traffic class setting for IPv6 * Fix bug that messed up packet stats for in-kernel streams * Various minor performance tweaks and bug fixes * Fix setting IPv4 source address when running with IPv6 enabled -- Richard Fuchs Fri, 10 Aug 2012 10:21:53 -0400 ngcp-mediaproxy-ng (1.6.6) unstable; urgency=low * Support userspace-only operation mode -- Richard Fuchs Wed, 16 May 2012 09:33:18 -0400 ngcp-mediaproxy-ng (1.6.5) unstable; urgency=low * Fix daemon failing to correctly interpret "delete full call" message -- Richard Fuchs Fri, 04 May 2012 11:21:11 -0400 ngcp-mediaproxy-ng (1.6.4) unstable; urgency=low * Fix segfault -- Richard Fuchs Tue, 06 Mar 2012 09:51:07 -0500 ngcp-mediaproxy-ng (1.6.3) unstable; urgency=low * Fix the UDP control protocol -- Richard Fuchs Tue, 06 Mar 2012 07:12:47 -0500 ngcp-mediaproxy-ng (1.6.2) unstable; urgency=low * Check from/to tags in delete message * Implement via-branch handling * Don't strip debug symbols -- Richard Fuchs Mon, 05 Mar 2012 04:31:07 -0500 ngcp-mediaproxy-ng (1.6.1) unstable; urgency=low * Correctly remember address family across re-invites etc -- Richard Fuchs Wed, 08 Feb 2012 10:34:33 -0500 ngcp-mediaproxy-ng (1.6.0) unstable; urgency=low * Add full IPv6 support * Attempt to handle unparsable proxy commands as much as possible * Improve human-readable output in /proc * Fix handling of calls with multiple media streams -- Richard Fuchs Thu, 26 Jan 2012 07:30:25 -0500 ngcp-mediaproxy-ng (1.5.3) unstable; urgency=low * Fix incorrect handling of lookups received without prior request * Fix a long-standing bug that caused from/to tags to be ignored when using UDP protocol * Properly timeout and cleanup UDP cookies * Fix table 0 not showing up in /proc/mediaproxy/list -- Richard Fuchs Thu, 08 Dec 2011 11:05:30 -0500 ngcp-mediaproxy-ng (1.5.2) unstable; urgency=low * Fix bad tagging -- Richard Fuchs Tue, 20 Sep 2011 10:41:42 -0400 ngcp-mediaproxy-ng (1.5.1) unstable; urgency=low * Return a dummy/error reply over UDP when a call doesn't exist, so kamailio doesn't think we're dead -- Richard Fuchs Tue, 20 Sep 2011 10:41:42 -0400 ngcp-mediaproxy-ng (1.5.0) unstable; urgency=low * Rework port re-use logic so it never opens new ports when it doesn't need to. -- Richard Fuchs Thu, 15 Sep 2011 10:42:57 -0400 ngcp-mediaproxy-ng (1.4.2) unstable; urgency=low * Slightly increase syslog verbosity * Fix obscure 3-way call connect issue -- Richard Fuchs Fri, 02 Sep 2011 17:09:38 -0400 ngcp-mediaproxy-ng (1.4.1) unstable; urgency=low * Fix a memory leak -- Richard Fuchs Wed, 10 Aug 2011 17:01:56 -0400 ngcp-mediaproxy-ng (1.4.0) unstable; urgency=low * Support HA through persistent Redis storage -- Richard Fuchs Fri, 10 Jun 2011 13:50:50 -0400 ngcp-mediaproxy-ng (1.3.5) unstable; urgency=low * Fix dst reference count issues causing kernel warnings under some circumstances -- Richard Fuchs Thu, 19 May 2011 13:43:16 -0400 ngcp-mediaproxy-ng (1.3.4) unstable; urgency=low * Make the daemon more aggressive with invalidating peer information -- Richard Fuchs Thu, 05 May 2011 16:08:31 -0400 ngcp-mediaproxy-ng (1.3.3) unstable; urgency=low * Add --advertised-ip to defaults file. -- Andreas Granig Wed, 04 May 2011 23:26:30 +0200 ngcp-mediaproxy-ng (1.3.2) unstable; urgency=low * Introduce --advertised-ip parameter * Minor code & help text cleanups -- Richard Fuchs Tue, 03 May 2011 17:20:11 -0400 ngcp-mediaproxy-ng (1.3.1) unstable; urgency=low * dkms postinst: do not execute init script if it is not present yet. -- Michael Prokop Fri, 29 Apr 2011 17:18:41 +0200 ngcp-mediaproxy-ng (1.3.0) unstable; urgency=low * Release for 2.2 * Fixed version number to align with old, non-debianized versioning scheme. -- Andreas Granig Fri, 29 Apr 2011 12:01:56 +0200 ngcp-mediaproxy-ng (0.1) unstable; urgency=low * Initial release. -- Andreas Granig Tue, 26 Apr 2011 18:55:01 +0200 rtpengine-mr12.5.1.22/debian/clean000066400000000000000000000000521474347554000166150ustar00rootroot00000000000000debian/README.html.gz debian/README.md.gz rtpengine-mr12.5.1.22/debian/control000066400000000000000000000115311474347554000172170ustar00rootroot00000000000000Source: ngcp-rtpengine Section: net Priority: optional Maintainer: Sipwise Development Team Homepage: https://www.sipwise.com/ Standards-Version: 4.6.2 Rules-Requires-Root: no Build-Depends: debhelper-compat (= 13), default-libmysqlclient-dev, dh-sequence-dkms, discount, gperf, libavcodec-dev (>= 6:10), libavfilter-dev (>= 6:10), libavformat-dev (>= 6:10), libavutil-dev (>= 6:10), libbcg729-dev , libbencode-perl, libcrypt-openssl-rsa-perl, libcrypt-rijndael-perl, libcurl4-openssl-dev | libcurl4-gnutls-dev, libdigest-crc-perl, libdigest-hmac-perl, libevent-dev (>= 2.0), libglib2.0-dev (>= 2.44), libhiredis-dev, libio-multiplex-perl, libio-socket-inet6-perl, libio-socket-ip-perl, libiptc-dev, libjson-glib-dev, libjson-perl, libmnl-dev, libmosquitto-dev, libncurses-dev, libnet-interface-perl, libnftnl-dev, libopus-dev, libpcap0.8-dev, libpcre2-dev, libsocket6-perl, libspandsp-dev, libssl-dev (>= 1.0.1), libswresample-dev (>= 6:10), libsystemd-dev, libtest2-suite-perl, liburing-dev (>= 2.3) , libwebsockets-dev, libxmlrpc-core-c3-dev (>= 1.16.07), libxtables-dev (>= 1.4) | iptables-dev (>= 1.4), ngcp-libcodec-chain-dev (>= 12.5) , pandoc, pkgconf, python3, python3-websockets, systemd-dev | systemd, zlib1g-dev, Testsuite: autopkgtest-pkg-dkms Package: ngcp-rtpengine-daemon Architecture: any Multi-Arch: foreign Recommends: ngcp-rtpengine-perftest , ngcp-rtpengine-recording-daemon, ngcp-rtpengine-utils, Suggests: ngcp-system-tools, Provides: ngcp-rtpengine-iptables, Conflicts: ngcp-rtpengine-iptables, Replaces: ngcp-rtpengine-iptables, Pre-Depends: adduser, ${misc:Pre-Depends}, Depends: sysvinit-utils (>= 3.05-4~) | lsb-base (>= 3.0-6), ${misc:Depends}, ${shlibs:Depends}, Description: proxy for RTP and media streams used in NGCP, userspace part This daemon handles the first stages of proxying media streams and talks to the kernel part of the proxy for eventual high-performance packet forwarding. Package: ngcp-rtpengine-recording-daemon Architecture: any Build-Profiles: Multi-Arch: foreign Recommends: ngcp-rtpengine-utils, Suggests: ngcp-system-tools, Depends: nfs-common, ngcp-rtpengine-daemon, sysvinit-utils (>= 3.05-4~) | lsb-base (>= 3.0-6), ${misc:Depends}, ${shlibs:Depends}, Description: recording daemon for RTP and media streams This daemon handles the call recording (media intercept) component of rtpengine. Package: ngcp-rtpengine Architecture: all Multi-Arch: foreign Depends: ngcp-rtpengine-daemon (>= ${source:Version}), ngcp-rtpengine-kernel-dkms (>= ${source:Version}), ngcp-rtpengine-perftest (>= ${source:Version}) , ngcp-rtpengine-recording-daemon (>= ${source:Version}) , ngcp-rtpengine-utils (>= ${source:Version}), ${misc:Depends}, Description: NGCP RTP/media proxy - meta package This is a meta package for easy installation of all four parts of the NGCP media proxy. It will install the user-space daemon, the kernel-space IPtables module, the IPtables extension module and utility scripts. Package: ngcp-rtpengine-kernel-dkms Architecture: all Section: kernel Suggests: ngcp-system-tools, Depends: lsb-release, ${misc:Depends}, Description: IPtables kernel module for the NGCP media proxy - DKMS Provides the kernel-space part of the NGCP media proxy for high- performance packet forwarding. This package contains the source to be built with dkms. Package: ngcp-rtpengine-utils Architecture: all Multi-Arch: foreign Depends: libbencode-perl, libconfig-tiny-perl, libcrypt-rijndael-perl, libdigest-hmac-perl, libio-socket-inet6-perl, libio-socket-ip-perl, libjson-perl, libsocket6-perl, netcat-openbsd | netcat, ${misc:Depends}, ${perl:Depends}, Description: scripts and Perl modules for NGCP rtpengine This package contains scripts and Perl modules for NGCP rtpengine Package: ngcp-rtpengine-perftest Architecture: any Build-Profiles: Multi-Arch: foreign Depends: ngcp-rtpengine-perftest-data (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends}, Description: helper tool to test rtpengine transcoding performance This interactive tool simulates transcoding scenarios using the rtpengine code base and produces performance and load statistics. Package: ngcp-rtpengine-perftest-data Architecture: all Multi-Arch: foreign Build-Profiles: Depends: ${misc:Depends}, ${shlibs:Depends}, Description: helper tool to test rtpengine transcoding performance - data files This interactive tool simulates transcoding scenarios using the rtpengine code base and produces performance and load statistics. . These are data files needed for the binary package. rtpengine-mr12.5.1.22/debian/copyright000066400000000000000000000033711474347554000175520ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://www.sipwise.com/ Upstream-Contact: Sipwise Development Team Files: * Copyright: Copyright © 2007-2023 Sipwise GmbH, Austria License: GPL-3+ with OpenSSL exception This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . In addition, as a special exception, the copyright holders give permission to link the code of this release with the OpenSSL project's "OpenSSL" library (or with modified versions of it that use the same license as the "OpenSSL" library), and distribute the linked executables. . You must obey the GNU General Public License in all respects for all of the code used other than "OpenSSL". If you modify file(s) with this exception, you may extend this exception to your version of the file(s), but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. If you delete this exception statement from all source files in the program, then also delete it here. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . Comment: On Debian systems, the full text of the GNU General Public License version 3 can be found in the file '/usr/share/common-licenses/GPL-3'. rtpengine-mr12.5.1.22/debian/generate-systemd-templates.sh000077500000000000000000000003471474347554000234320ustar00rootroot00000000000000#!/bin/sh # generate templates for i in ngcp-rtpengine-daemon ngcp-rtpengine-recording-daemon; do sed \ -e 's:daemon\.pid:daemon.%i.pid:g' \ -e 's:/etc/rtpengine/:/etc/rtpengine_%i/:g' \ $i.service > $i@.service done rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.default000066400000000000000000000004211474347554000233370ustar00rootroot00000000000000CONFIG_FILE=/etc/rtpengine/rtpengine.conf # CONFIG_SECTION=rtpengine PIDFILE=/run/rtpengine/ngcp-rtpengine-daemon.pid MANAGE_IPTABLES=yes SET_USER=rtpengine #SET_GROUP=rtpengine # GROUP only needs to be set if USER is not set or if the user isn't in the group SET_MASK=0x7 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.dirs000066400000000000000000000000431474347554000226540ustar00rootroot00000000000000etc/modprobe.d var/spool/rtpengine rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.init000077500000000000000000000046571474347554000227000ustar00rootroot00000000000000#! /bin/sh ### BEGIN INIT INFO # Provides: ngcp-rtpengine-daemon # Required-Start: $network $local_fs $remote_fs $syslog # Required-Stop: $network $local_fs $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Ngcp Rtpengine # Description: Proxy for RTP and other media streams ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin NAME=ngcp-rtpengine-daemon DESC="RTP/media proxy" DAEMON=$(which rtpengine) DEFAULTS=/etc/default/${NAME} test -f "$DAEMON" || exit 0 . /lib/lsb/init-functions # Load startup options if available if [ -f "$DEFAULTS" ]; then . "$DEFAULTS" || true fi [ -z "$PIDFILE" ] && PIDFILE="/run/rtpengine.pid" OPTIONS="" START_OPTIONS="" [ -z "$CONFIG_FILE" ] || OPTIONS="$OPTIONS --config-file=$CONFIG_FILE" [ -z "$CONFIG_SECTION" ] || OPTIONS="$OPTIONS --config-section=$CONFIG_SECTION" [ -z "$PIDFILE" ] || OPTIONS="$OPTIONS --pidfile=$PIDFILE" if test "$FORK" = "no" ; then OPTIONS="$OPTIONS --foreground" fi # check if directory for pid file needs to be created PIDDIR=$(dirname "$PIDFILE") DO_DIR_CHOWN=0 if ! test -z "$PIDDIR" && ! test -d "$PIDDIR"; then mkdir -p "$PIDDIR" DO_DIR_CHOWN=1 fi # handle requested setuid/setgid if ! test -z "$SET_USER"; then START_OPTIONS="$START_OPTIONS --chuid $SET_USER" test "$DO_DIR_CHOWN" = 1 && chown "$SET_USER": "$PIDDIR" fi if ! test -z "$SET_GROUP"; then START_OPTIONS="$START_OPTIONS --group $SET_GROUP" test "$DO_DIR_CHOWN" = 1 && chgrp "$SET_GROUP" "$PIDDIR" fi ### case "$1" in start) if [ -x "$(which ngcp-check-active)" ]; then case "$(ngcp-check-active -v)" in active|transition) log_action_msg "Active node or transition." ;; *) log_action_msg "Ignored start action in inactive node" exit 0 ;; esac fi log_daemon_msg "Starting $DESC" "$NAME" # shellcheck disable=SC2086 start-stop-daemon --start --quiet --pidfile "$PIDFILE" \ --exec "$DAEMON" $START_OPTIONS -- $OPTIONS || log_progress_msg " already running" log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" RC=0 start-stop-daemon --oknodo --stop --quiet --pidfile "$PIDFILE" \ --retry 5 --exec "$DAEMON" || RC=$? rm -f "$PIDFILE" log_end_msg "$RC" exit "$RC" ;; restart|force-reload) $0 stop $0 start ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.install000066400000000000000000000000651474347554000233650ustar00rootroot00000000000000etc/rtpengine.conf /etc/rtpengine/ usr/bin/rtpengine rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.links000066400000000000000000000007221474347554000230370ustar00rootroot00000000000000${env:deb_systemdsystemunitdir}/ngcp-rtpengine-daemon.service ${env:deb_systemdsystemunitdir}/rtpengine-daemon.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-daemon.service ${env:deb_systemdsystemunitdir}/rtpengine.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-daemon@.service ${env:deb_systemdsystemunitdir}/rtpengine-daemon@.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-daemon@.service ${env:deb_systemdsystemunitdir}/rtpengine@.service rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.manpages000066400000000000000000000000371474347554000235110ustar00rootroot00000000000000usr/share/man/man8/rtpengine.8 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.postinst000066400000000000000000000030301474347554000235750ustar00rootroot00000000000000#!/bin/sh set -e default=/etc/default/ngcp-rtpengine-daemon modname=xt_RTPENGINE if [ -x "$(which ngcp-virt-identify)" ]; then if ngcp-virt-identify --type container; then VIRT="yes" fi fi if [ "$VIRT" = "yes" ]; then echo "Container environment detected. Skip kernel module check" else if [ -f $default ]; then . $default || true fi if [ -n "$TABLE" ] && [ "$TABLE" -ge 0 ] && \ [ -n "$NO_FALLBACK" ] && \ { [ "$NO_FALLBACK" = "1" ] || [ "$NO_FALLBACK" = "yes" ] ; } then if lsmod | grep -q $modname || modinfo $modname > /dev/null 2> /dev/null; then true else echo "Kernel module $modname not found and NO_FALLBACK is set." echo "Daemon restart not performed." exit 0 fi fi fi if [ "$1" = configure ]; then adduser --system --home /nonexistent --gecos rtpengine \ --no-create-home --disabled-password \ --group --quiet rtpengine || true rtpdir='/var/spool/rtpengine' if ! dpkg-statoverride --list "$rtpdir" > /dev/null 2>&1; then chown rtpengine:rtpengine "$rtpdir" chmod 0770 "$rtpdir" fi # set up modprobe.d fragment for auto-load usage if ! [ -f /etc/modprobe.d/rtpengine.conf ] || grep -q DPKG-GENERATED /etc/modprobe.d/rtpengine.conf; then OPTIONS="options xt_RTPENGINE proc_mask=0x7" PUID=$(id -u rtpengine 2> /dev/null) test -z "$PUID" || OPTIONS="$OPTIONS proc_uid=$PUID" PGID=$(id -g rtpengine 2> /dev/null) test -z "$PGID" || OPTIONS="$OPTIONS proc_gid=$PGID" ( echo "# DPKG-GENERATED FILE"; echo "$OPTIONS" ) > /etc/modprobe.d/rtpengine.conf fi fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.postrm000066400000000000000000000005141474347554000232420ustar00rootroot00000000000000#!/bin/sh set -e if [ "$1" = purge ]; then deluser --quiet --system rtpengine > /dev/null || true delgroup --quiet --system rtpengine > /dev/null || true if [ -f /etc/modprobe.d/rtpengine.conf ] && grep -q DPKG-GENERATED /etc/modprobe.d/rtpengine.conf; then rm -f /etc/modprobe.d/rtpengine.conf fi fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-daemon.service000066400000000000000000000101451474347554000233570ustar00rootroot00000000000000[Unit] Description=NGCP RTP/media Proxy Daemon After=network-online.target After=remote-fs.target Requires=network-online.target [Service] Type=notify EnvironmentFile=/etc/default/ngcp-rtpengine-daemon RuntimeDirectory=rtpengine PIDFile=/run/rtpengine/ngcp-rtpengine-daemon.pid User=rtpengine Group=rtpengine LimitNOFILE=150000 ExecStart=/usr/bin/rtpengine -f -E --no-log-timestamps --pidfile /run/rtpengine/ngcp-rtpengine-daemon.pid --config-file /etc/rtpengine/rtpengine.conf # Service cannot create writable executable memory mappings that are writable and executable at the same time MemoryDenyWriteExecute=true # NOTE: we need access to /proc/rtpengine/ ProcSubset=all # Writes to the hardware clock or system clock will be denied ProtectClock=true # Service cannot modify the control group file system (via /sys/fs/cgroup) ProtectControlGroups=true # Service has no access to home directories ProtectHome=true # Set up new UTS namespace for the executed processes + changing hostname or domainname is prevented ProtectHostname=true # Service cannot load or read kernel modules ProtectKernelModules=true # Service cannot alter kernel tunables (/proc + /sys) ProtectKernelTunables=true # Service has strict read-only access to the OS file hierarchy ProtectSystem=strict # Allow write access ReadWritePaths=/var/spool/rtpengine # Access to the kernel log ring buffer will be denied ProtectKernelLogs=true # Processes owned by other users are hidden from /proc/ ProtectProc=invisible # Service may execute system calls only with native ABI SystemCallArchitectures=native # Limit set of capabilities CapabilityBoundingSet= # NOTE: when running rtpengine under root user (via User=root/Group=root), further capabilities are required: # * CAP_CHOWN CAP_DAC_OVERRIDE CAP_SETGID CAP_SETUID => for ownership handling in e.g. /run/rtpengine/ # * CAP_FOWNER => for chmod-ing e.g. /run/rtpengine/ # * CAP_NET_ADMIN => for network-related operations # * CAP_SYS_NICE => for e.g. setpriority usage #CapabilityBoundingSet=CAP_CHOWN CAP_DAC_OVERRIDE CAP_SETGID CAP_SETUID CAP_FOWNER CAP_NET_ADMIN CAP_SYS_NICE # Service process does not receive ambient capabilities # NOTE: we need caps for running as non-root user CapabilityBoundingSet=CAP_NET_ADMIN CAP_SYS_NICE AmbientCapabilities=CAP_NET_ADMIN CAP_SYS_NICE # Service has no access to other software's temporary files PrivateTmp=true # Service has no access to hardware devices PrivateDevices=true # Service cannot change ABI personality LockPersonality=true # Turn off acquisition of new privileges system-wide NoNewPrivileges=true # Service has own user namespace, only root, nobody, and the uid/gid under which the service is running are mapped # Setting this to true prevents setup of nftables rules for some reason PrivateUsers=false # Service user cannot leave SysV IPC objects around # NOTE: service runs as root, so option does not matter RemoveIPC=true # Restrict service to allocation of netlink, UNIX domain, ipv4 + ipv6 sockets RestrictAddressFamilies=AF_NETLINK AF_UNIX AF_INET AF_INET6 # Restrict access to the various process namespace types the Linux kernel provides RestrictNamespaces=true # Service may not acquire realtime scheduling RestrictRealtime=true # Attempts to set SUID or SGID bits on files or directories will be denied RestrictSUIDSGID=true # Files created by service are accessible only by service's own user by default UMask=0077 # NOTE: Service needs access to the host's network PrivateNetwork=false # Control access to specific device nodes by the executed processes DevicePolicy=closed # NOTE: we need network access IPAddressAllow=any # Maximum number of bytes of memory that may be locked into RAM # NOTE: required for libgcrypt's mlock handling LimitMEMLOCK=8388608 # Restrict system calls that are allowed to be executed # NOTE: @system-service => reasonable set of system calls used by common system services SystemCallFilter=@system-service # NOTE: return with ENOSYS instead of terminating the process immediately SystemCallErrorNumber=ENOSYS # All system calls except the listed ones will be logged SystemCallLog=~@system-service seccomp [Install] WantedBy=multi-user.target rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-dev.install000066400000000000000000000000431474347554000226740ustar00rootroot00000000000000daemon/*.h /usr/include/rtpengine/ rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-kernel-dkms.dkms000066400000000000000000000005771474347554000236360ustar00rootroot00000000000000PACKAGE_NAME="ngcp-rtpengine" PACKAGE_VERSION="#MODULE_VERSION#" MAKE[0]="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build RTPENGINE_VERSION=\"${PACKAGE_VERSION}\"" CLEAN="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean" AUTOINSTALL=yes BUILT_MODULE_NAME[0]="xt_RTPENGINE" DEST_MODULE_LOCATION[0]=/extra rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-kernel-dkms.install000066400000000000000000000004471474347554000243420ustar00rootroot00000000000000kernel-module/*.c usr/src/${env:DEB_SOURCE}-${env:DEB_VERSION_UPSTREAM} kernel-module/*.h usr/src/${env:DEB_SOURCE}-${env:DEB_VERSION_UPSTREAM} kernel-module/*.inc usr/src/${env:DEB_SOURCE}-${env:DEB_VERSION_UPSTREAM} kernel-module/Makefile usr/src/${env:DEB_SOURCE}-${env:DEB_VERSION_UPSTREAM} rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-kernel-dkms.postinst000066400000000000000000000006411474347554000245530ustar00rootroot00000000000000#!/bin/sh set -e if [ -x "$(which ngcp-virt-identify)" ]; then if ngcp-virt-identify --type container; then VIRT="yes" fi fi #DEBHELPER# if [ "$VIRT" = "yes" ]; then echo "Container environment detected. Skip dkms" else if [ "$1" = 'configure' ] ; then # try to start the daemon if [ -x /etc/init.d/ngcp-rtpengine-daemon ] ; then invoke-rc.d ngcp-rtpengine-daemon restart || true fi fi fi exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-kernel-dkms.prerm000066400000000000000000000003251474347554000240140ustar00rootroot00000000000000#!/bin/sh set -e # make sure it's not running if [ -x /etc/init.d/ngcp-rtpengine-daemon ] ; then invoke-rc.d ngcp-rtpengine-daemon stop || true rmmod "xt_RTPENGINE" 2>/dev/null || true fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-perftest-data.install000066400000000000000000000000521474347554000246610ustar00rootroot00000000000000fixtures/* /usr/share/rtpengine-perftest/ rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-perftest.install000066400000000000000000000000331474347554000237510ustar00rootroot00000000000000usr/bin/rtpengine-perftest rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.default000066400000000000000000000006711474347554000253200ustar00rootroot00000000000000CONFIG_FILE=/etc/rtpengine/rtpengine-recording.conf # CONFIG_SECTION=rtpengine-recording PIDFILE=/run/rtpengine-recording/ngcp-rtpengine-recording-daemon.pid #SET_USER=root #SET_GROUP=root # GROUP only needs to be set if USER is not set or if the user isn't in the group # MUST_NFS=no NFS_HOST=192.168.1.1 NFS_REMOTE_PATH=/var/recordings NFS_LOCAL_MOUNT=/var/lib/rtpengine-recording # must match output-dir if used NFS_OPTIONS=hard,intr,tcp rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.dirs000066400000000000000000000000341474347554000246260ustar00rootroot00000000000000var/lib/rtpengine-recording rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.init000077500000000000000000000050611474347554000246400ustar00rootroot00000000000000#! /bin/sh ### BEGIN INIT INFO # Provides: ngcp-rtpengine-recording-daemon # Required-Start: $network $local_fs $remote_fs $syslog # Required-Stop: $network $local_fs $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Ngcp Rtpengine Recording Daemon # Description: Recording daemon for RTP and other media streams ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin NAME=ngcp-rtpengine-recording-daemon DESC="RTP/media recording daemon" DAEMON=$(which rtpengine-recording) DEFAULTS=/etc/default/${NAME} test -f "$DAEMON" || exit 0 . /lib/lsb/init-functions # Load startup options if available if [ -f "$DEFAULTS" ]; then . "$DEFAULTS" || true fi [ -z "$PIDFILE" ] && PIDFILE="/run/rtpengine-recording.pid" OPTIONS="" START_OPTIONS="" [ -z "$CONFIG_FILE" ] || OPTIONS="$OPTIONS --config-file=$CONFIG_FILE" [ -z "$PIDFILE" ] || OPTIONS="$OPTIONS --pidfile=$PIDFILE" # check if directory for pid file needs to be created PIDDIR=$(dirname "$PIDFILE") DO_DIR_CHOWN=0 if ! test -z "$PIDDIR" && ! test -d "$PIDDIR"; then mkdir -p "$PIDDIR" DO_DIR_CHOWN=1 fi # handle requested setuid/setgid if ! test -z "$SET_USER"; then START_OPTIONS="$START_OPTIONS --chuid $SET_USER" test "$DO_DIR_CHOWN" = 1 && chown "$SET_USER": "$PIDDIR" fi if ! test -z "$SET_GROUP"; then START_OPTIONS="$START_OPTIONS --group $SET_GROUP" test "$DO_DIR_CHOWN" = 1 && chgrp "$SET_GROUP" "$PIDDIR" fi ### case "$1" in start) if [ -x "$(which ngcp-check-active)" ]; then case "$(ngcp-check-active -v)" in active|transition) log_action_msg "Active node or transition." ;; *) log_action_msg "Ignored start action in inactive node" exit 0 ;; esac fi RC=0 ngcp-rtpengine-recording-nfs-setup start || RC=$? if [ "$RC" -ne 0 ] ; then log_action_msg "Failed to start ngcp-rtpengine-recording-nfs-setup" log_end_msg "$RC" exit "$RC" fi log_daemon_msg "Starting $DESC" "$NAME" # shellcheck disable=SC2086 start-stop-daemon --start --quiet --pidfile "$PIDFILE" \ --exec "$DAEMON" $START_OPTIONS -- $OPTIONS || log_progress_msg " already running" log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" RC=0 start-stop-daemon --oknodo --stop --quiet --pidfile "$PIDFILE" \ --retry 5 --exec "$DAEMON" || RC=$? rm -f "$PIDFILE" log_end_msg "$RC" exit "$RC" ;; force-reload|restart) $0 stop $0 start ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.install000066400000000000000000000001761474347554000253420ustar00rootroot00000000000000debian/ngcp-rtpengine-recording-nfs-setup /usr/sbin/ etc/rtpengine-recording.conf /etc/rtpengine/ usr/bin/rtpengine-recording rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.links000066400000000000000000000010421474347554000250050ustar00rootroot00000000000000${env:deb_systemdsystemunitdir}/ngcp-rtpengine-recording-daemon.service ${env:deb_systemdsystemunitdir}/rtpengine-recording-daemon.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-recording-daemon.service ${env:deb_systemdsystemunitdir}/rtpengine-recording.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-recording-daemon@.service ${env:deb_systemdsystemunitdir}/rtpengine-recording-daemon@.service ${env:deb_systemdsystemunitdir}/ngcp-rtpengine-recording-daemon@.service ${env:deb_systemdsystemunitdir}/rtpengine-recording@.service rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.manpages000066400000000000000000000001251474347554000254610ustar00rootroot00000000000000debian/ngcp-rtpengine-recording-nfs-setup.1 usr/share/man/man8/rtpengine-recording.8 ngcp-rtpengine-recording-daemon.ngcp-rtpengine-recording-nfs-mount.service000066400000000000000000000007551474347554000340750ustar00rootroot00000000000000rtpengine-mr12.5.1.22/debian[Unit] Description=NGCP RTP/media Recording Daemon NFS mount point After=network-online.target After=remote-fs.target After=rpcbind.socket After=rpcbind.service After=nfs-client.target Requires=network-online.target Requires=rpcbind.socket Requires=rpcbind.service Requires=nfs-client.target [Service] Type=simple RemainAfterExit=yes ExecStart=/usr/sbin/ngcp-rtpengine-recording-nfs-setup start ExecStop=/usr/sbin/ngcp-rtpengine-recording-nfs-setup stop [Install] WantedBy=multi-user.target rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.postinst000066400000000000000000000003611474347554000255530ustar00rootroot00000000000000#!/bin/sh set -e if [ "$1" = configure ]; then rtpdir='/var/lib/rtpengine-recording' if ! dpkg-statoverride --list "$rtpdir" > /dev/null 2>&1; then chown rtpengine:rtpengine "$rtpdir" chmod 0770 "$rtpdir" fi fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-daemon.service000066400000000000000000000013331474347554000253300ustar00rootroot00000000000000[Unit] Description=NGCP RTP/media Recording Daemon After=network-online.target After=remote-fs.target After=ngcp-rtpengine-recording-nfs-mount.service Requires=network-online.target Requires=ngcp-rtpengine-recording-nfs-mount.service [Service] Type=notify LimitNOFILE=100000 RuntimeDirectory=rtpengine-recording PIDFile=/run/rtpengine-recording/ngcp-rtpengine-recording-daemon.pid AmbientCapabilities=CAP_NET_ADMIN CAP_CHOWN CapabilityBoundingSet=CAP_NET_ADMIN CAP_CHOWN User=rtpengine Group=rtpengine ExecStart=/usr/bin/rtpengine-recording -f -E --no-log-timestamps --pidfile /run/rtpengine-recording/ngcp-rtpengine-recording-daemon.pid --config-file /etc/rtpengine/rtpengine-recording.conf [Install] WantedBy=multi-user.target rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-nfs-setup000077500000000000000000000016361474347554000243630ustar00rootroot00000000000000#!/bin/sh set -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DEFAULTS=/etc/default/ngcp-rtpengine-recording-daemon DESC="RTP engine recording NFS share" . /lib/lsb/init-functions # Load startup options if available if [ -f "$DEFAULTS" ]; then . "$DEFAULTS" || true fi [ -z "$NFS_OPTIONS" ] && NFS_OPTIONS="hard,tcp,intr" ### case "$1" in start) if [ "$MUST_NFS" = yes ]; then if ! grep -E -q "^[^ :]+:[^ :]+ $NFS_LOCAL_MOUNT nfs.? " /proc/mounts; then log_action_msg "Mounting $DESC" test -d "$NFS_LOCAL_MOUNT" || mkdir -p "$NFS_LOCAL_MOUNT" mount -t nfs -o "$NFS_OPTIONS" "$NFS_HOST:$NFS_REMOTE_PATH" "$NFS_LOCAL_MOUNT" fi fi ;; stop) if grep -E -q "^[^ :]+:[^ :]+ $NFS_LOCAL_MOUNT nfs.? " /proc/mounts; then log_action_msg "Unmounting $DESC" umount "$NFS_LOCAL_MOUNT" fi ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 ;; esac exit 0 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-recording-nfs-setup.1000066400000000000000000000012241474347554000245100ustar00rootroot00000000000000.TH man 1 "17 May 2022" "1.0" "ngcp-rtpengine-recording-nfs-setup man page" .SH NAME ngcp\-rtpengine\-recording\-nfs\-setup \- manages NFS mount for ngcp\-rtpengine\-recording\-daemon service .SH SYNOPSIS ngcp\-rtpengine\-recording\-nfs\-setup [start|stop] .SH DESCRIPTION ngcp\-rtpengine\-recording\-nfs\-setup will mount or unmount the NFS resource needed by ngcp\-rtpengine\-recording\-daemon to properly work. This program will be called by ngcp\-rtpengine\-recording\-daemon service. .SH OPTIONS ngcp\-rtpengine\-recording\-nfs\-setup has no options. .SH SEE ALSO rtpengine\-recording(8) .SH BUGS No known bugs. .SH AUTHOR Victor Seva (vseva@sipwise.com) rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-utils.install000066400000000000000000000001651474347554000232630ustar00rootroot00000000000000perl/* /usr/share/perl5/ usr/bin/rtpengine-ctl usr/bin/rtpengine-ng-client usr/libexec/rtpengine/rtpengine-get-table rtpengine-mr12.5.1.22/debian/ngcp-rtpengine-utils.manpages000066400000000000000000000001141474347554000234020ustar00rootroot00000000000000usr/share/man/man1/rtpengine-ctl.1 usr/share/man/man1/rtpengine-ng-client.1 rtpengine-mr12.5.1.22/debian/ngcp-rtpengine.docs000066400000000000000000000000521474347554000214020ustar00rootroot00000000000000debian/README.html.gz debian/README.md.gz rtpengine-mr12.5.1.22/debian/rules000077500000000000000000000021661474347554000167000ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. # export DH_VERBOSE=1 include /usr/share/dpkg/pkg-info.mk export DEB_VERSION_UPSTREAM export DEB_SOURCE ifneq (,$(filter $(DEB_BUILD_PROFILES),pkg.ngcp-rtpengine.no-transcoding)) export with_transcoding = no endif ifneq (,$(filter $(DEB_BUILD_PROFILES),pkg.ngcp-rtpengine.asan)) export DO_ASAN_FLAGS = 1 # this prevents dh from setting default (including -O2) which we don't want export DEB_CFLAGS_MAINT_SET = export DEB_LDFLAGS_MAINT_SET = endif export FIXTURES_PATH = /usr/share/rtpengine-perftest export deb_systemdsystemunitdir = $(shell pkg-config --variable=systemdsystemunitdir systemd) %: dh $@ execute_before_dh_auto_configure: (cd debian && sh generate-systemd-templates.sh) execute_before_dh_auto_install-indep: # markdown README markdown README.md | gzip -9 > debian/README.html.gz gzip -9 < README.md > debian/README.md.gz execute_after_dh_installsystemd: dh_installsystemd -pngcp-rtpengine-recording-daemon --name=ngcp-rtpengine-recording-nfs-mount override_dh_dkms: dh_dkms -p$(DEB_SOURCE)-kernel-dkms -V $(DEB_VERSION_UPSTREAM) rtpengine-mr12.5.1.22/debian/source/000077500000000000000000000000001474347554000171135ustar00rootroot00000000000000rtpengine-mr12.5.1.22/debian/source/format000066400000000000000000000000151474347554000203220ustar00rootroot000000000000003.0 (native) rtpengine-mr12.5.1.22/debian/source/lintian-overrides000066400000000000000000000001201474347554000224650ustar00rootroot00000000000000ngcp-rtpengine source: missing-build-dependency-for-dh_-command dh_dkms => dkms rtpengine-mr12.5.1.22/debian/source/options000066400000000000000000000000361474347554000205300ustar00rootroot00000000000000extend-diff-ignore=.gitreview rtpengine-mr12.5.1.22/docs/000077500000000000000000000000001474347554000153215ustar00rootroot00000000000000rtpengine-mr12.5.1.22/docs/Makefile000066400000000000000000000011771474347554000167670ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS = SPHINXBUILD = sphinx-build # SOURCEDIR = source BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) rtpengine-mr12.5.1.22/docs/architecture.md000066400000000000000000000404051474347554000203300ustar00rootroot00000000000000Architecture Overview ===================== Processing of RTP/RTCP packets ------------------------------ An incoming RTP is initially received by the `stream_fd`, which directly links it to the correlated `packet_stream`. Each `packet_stream` then links to an upper-level `call_media` — generally there are two `packet_stream` objects per `call_media`, one for RTP and one for RTCP. The `call_media` then links to a `call_monologue`, which corresponds to a participant of the call. The handling of packets is implemented in `media_socket.c` and always starts with the `stream_packet()`. This operates on the originating `stream_fd` (fd which received the packet) and on its linked `packet_stream` and eventually proceeds to going through the list of sinks, either `rtp_sink`s or `rtcp_sink`s (egress handling) and uses the contained `sink_handler` objects, which points to the destination `packet_stream`, see: `stream_fd -> packet_stream -> list of sinks -> sink_handler -> dst packet_stream` **To summarize, RTP/RTCP packet forwarding then consists of:** * Determining whether to use `rtp_sink`s or `rtcp_sink`s * Iterating this list, which is a list of `sink_handler` objects * Each sink handler has an output `packet_stream` and a `streamhandler` * Calling the stream handler's input function to decrypt, if needed (but, [a nuance](#appendix-1)) * Checking the RTP payload type and calling the codec handler, if there is one (e.g. for transcoding) * Calling the `streamhandler`'s output function to encrypt, if needed * Sending the packet out to the output packet stream * Repeat ### appendix 1 ### In practice the stream handler's input function (step 4) is called only once, before going into the loop to send packets to their destinations. The reason for that — there's a duplication of input functions in the stream handlers, this is: 1. Legacy, because previously used to have a single output for each packet stream (and this part hasn't been rewritten yet) 2. Theoretically it's possible to save the effort of re-encrypting SRTP > SRTP forwarding, if some of the outputs are plain RTP, meanwhile other outputs are SRTP pass-through (but that part isn't implemented). As for setting up the kernel's forwarding chain: It's basically the same process of going through the list of sinks and building up the structures for the kernel module, with the sink handlers taking up the additional role of filling in the structures needed for decryption and encryption. ### Other important notes: ### **Incoming packets (ingress handling):**\ `sfd->socket.local`: the local IP/port on which the packet arrived\ `sfd->stream->endpoint`: adjusted/learned IP/port from where the packet was sent\ `sfd->stream->advertised_endpoint`: the unadjusted IP/port from where the packet was sent. These are the values present in the SDP **Outgoing packets (egress handling)**:\ `sfd->stream->rtp_sink->endpoint`: the destination IP/port\ `sfd->stream->selected_sfd->socket.local`: the local source IP/port for the outgoing packet **Handling behind the NAT**:\ If rtpengine runs behind the NAT and local addresses are configured with different advertised endpoints,\ the SDP would not contain the address from `...->socket.local`, but rather from `sfd->local_intf->spec->address.advertised` (of type `sockaddr_t`).\ The port will be the same. **Binding to sockets**:\ Sockets aren't indiscriminately bound to INADDR_ANY (or rather in6addr_any),\ but instead are always bound to their respective local interface address and with the correct address family. Side effects of this are that in multi-homed environments, multiple sockets must be opened\ (one per interface address and family), which must be taken into account when considering RLIMIT_NOFILE values.\ As a benefit, this change allows rtpengine to utilize the full UDP port space per interface address, instead of just one port space per machine. ### Marking the packet stream ### The `packet_stream` itself (or the upper-level `call_media`) can be marked as: * SRTP endpoint * ICE endpoint * send/receive-only This is done through the `transport_protocol` element and various bit flags.\ Currently existing transport_protocols: * RTP AVP * RTP SAVP * RTP AVPF * RTP SAVPF * UDP TLS RTP SAVP * UDP TLS RTP SAVPF * UDPTL * RTP SAVP OSRTP * RTP SAVPF OSRTP For more information about the RTP packets processing see [RTP packets processing](#rtp-packets-processing-additional-information) of the _“Mutexes, locking, reference countingâ€_ section. --- Call monologue and handling of call subscriptions ------------------------------------------------- Each `call_monologue` (call participant) contains a list of subscribers and subscriptions,\ which are other `call_monologue`'s. These lists are mutual.\ A regular A/B call has two `call_monologue` objects with each subscribed to the other.\ So that, one `call_monologue` = half of a dialog. Subscribers of certain monologue — are other monologues, which will receive the media sent by the source monologue. The list of subscriptions is a list of `call_subscription` objects which contain flags and attributes. _NOTE: Flags and attributes can be used, for example, to mark a subscription as an egress subscription._ ![alt text](images/pic1_rtp_engine_architecture.png "Picture 1") _On the diagram above you can clearly see how monologues and hence subscriptions are correlated._ A handling of call subscriptions is implemented in the `call.c` file.\ In this regard, one of the most important functions here is `__add_subscription()`. A transfer of flags/attributes from the subscription (`call_subscription`) to the correlated sink handlers (`sink_handler` objects list) is done using the `__init_streams()` through the `__add_sink_handler()`. --- Signaling events ---------------- During signalling events (e.g. offer/answer handshake), the list of subscriptions for each `call_monologue` is used to create the list of `rtp_sink` and `rtcp_sink` sinks given in each `packet_stream`. Each entry in these lists is a `sink_handler` object, which again contains flags and attributes. _NOTE: ‘sink’ - is literally a sink, as in drain. Basically an output or destination for a media/packet stream._ During the execution, the function `__update_init_subscribers()` goes through the list of subscribers,\ through each media section and each packet stream, and sets up the list of sinks for each packet stream, via `__init_streams()`. This populates the list of `rtp_sinks` and `rtcp_sinks` for each packet stream. Flags and attributes from the `call_subscription` objects are copied into the according sink_handler object(s).\ During actual packet handling and forwarding, only the `sink_handler` objects (and the packet_stream objects they related to) are used, not the `call_subscription` objects. Processing of signaling event (offer/answer) to rtpengine,\ in terms of using functionality looks as following (for one `call_monologue`): * signaling event begins (offer / answer) * `monologue_offer_answer()` -> `__get_endpoint_map()` -> `stream_fd_new()` * in `stream_fd_new()` we initialize a new poller item (`poller_item`),\ and then using the `stream_fd_readable()`, the `pi.readable` member is set: ``` pi.readable = stream_fd_readable; ``` * in the `main.h` header, there is a globally defined poller, to which we add a newly initialized poller item, like this: ``` struct poller *p = rtpe_poller; poller_add_item(p, &pi); ``` * poller will be used to later destroy this reference-counted object * later, the `stream_fd_readable()` in its turn, will trigger the `stream_packet()` for RTP/RTCP packets processing * `monologue_offer_answer()` now continues processing and calls `update_init_subscribers()` to go through the list of subscribers (through related to them media and each packet stream) and using `__init_streams()` sets up sinks for each stream. ![alt text](images/pic2_rtp_engine_architecture.png "Picture 2") Then, each `sink_handler` points to the correlated egress packet_stream and also to the `streamhandler`.\ The `streamhandler` in its turn is responsible for handling an encryption, primarily based on the transport protocol used. There's a matrix (a simple lookup table) of possible stream handlers in `media_socket.c`, called `__sh_matrix`.\ Stream handlers have an input component, which would do decryption, if needed, as well as an output component for encryption. For more information regarding signaling events, see [Signaling events, additional information](#signaling-events-additional-information) of the _“Mutexes, locking, reference countingâ€_ section. --- Mutexes, locking, reference counting ------------------------------------ ### Struct call ### The main parent structure of all call-related objects (packet streams, media sections, sockets and ports, codec handlers, etc) is the struct `call`. Almost all other structures and objects are nested underneath a call. ![alt text](images/pic3_media_socket.png "Picture 3") The `call` structure contains a master read-write lock: `rwlock_t master_lock`, that protects the entire call and all contained objects. With the exception of a few read-only fields, all fields of `call` and any nested sub-object **must** only be accessed with the `master_lock` held as a read lock, and **must** only be modified with the `master_lock` held as a write lock. The rule of thumb therefore is: during signalling events acquire a write-lock, and during packet handling acquire a read-lock. ### Object/struct hierarchy and ownership ### The logical object hierarchy is `call` → `call_monologue` → `call_media` → `packet_stream` → `stream_fd`.\ Each parent object can contain multiple of the child objects (e.g. multiple `call_media` per `call_monologue`) and\ each child object contains a back pointer to its parent object. Some objects contain additional back pointers for convenience, e.g. from `call_media` directly to `call`. These are not reference counted as the child objects are entirely owned by the `call`,\ with the exception of `stream_fd` objects. The parent `call` object contains one list (as `GQueue`) for each kind of child object.\ These lists exist for convenience, but most importantly as primary containers. Every child object owned by the `call` is added to its respective list exactly once, and these lists are what is used to free and release the child objects during call teardown.\ Additionally most child objects are given a unique numeric ID (`unsigned int unique_id`) and it’s the position in the `call`’s `GQueue` that determines the value of this ID (which is unique per call and starts at zero). ### Reference-counted objects ### Call objects are reference-counted through the `struct obj` contained in the `call`. The struct `obj` member must always be the first member in a struct. Each `obj` is created with a cleanup handler (see `obj_alloc()`) and this handler is executed whenever the reference count drops to zero. References are acquired and released through `obj_get()` and `obj_put()` (plus some other wrapper functions). The code bases uses the “entry point†approach for references, meaning that each entry point into the code (coming from an external trigger, such as a received command or packet) must hold a reference to some reference-counted object. ### Signaling events additional information ### The main entry point into call objects for signalling events is the call-ID:\ therefore the main entry point is the global hash table `rtpe_callhash` (protected by `rtpe_callhash_lock`),\ which uses call-IDs as keys and `call` objects as values, while holding a reference to each contained call. The function `call_get()` and its sibling functions perform the lookup of `call` via its call-ID and return a new reference to the `call` object (i.e. with the reference count increased by one). Therefore the code must use `obj_put()` on the `call` after `call_get()` and after it's done operating on the object. ### RTP packets processing additional information ### Another entry point into the code is RTP packets received on a media port. Media ports are contained in a struct `stream_fd` and because this is also an entry-point object, it is also reference counted (contains a struct `obj`). _NOTE: The object responsible for maintaining and holding the entry-point references is the poller._ Each `stream_fd` object also holds a reference to the `call` it belongs to\ (which in turn holds references to all `stream_fd` objects it contains, which makes these circular references).\ Therefore `stream_fd` objects are only released, when they’re removed from the `poller` and also removed from the call (and conversely, the `call` is only released when it has been dissociated from all `stream_fd` objects, which happens during call teardown). ### Non-reference-counted objects ### Other structs and objects nested underneath a `call` (e.g. `call_media`) are not reference counted as they're not entry points into the code, and accordingly also don’t hold references to the `call` even though they contain pointers to it.\ These are completely owned by the `call` and are therefore released when the `call` is destroyed. ### Packet_stream mutex ### Each `packet_stream` contains two additional mutexes (`in_lock` and `out_lock`).\ These are only valid if the corresponding call’s `master_lock` is held at least as a read-lock. The `in_lock` protects fields relevant to packet reception on that stream,\ while the `out_lock` protects fields relevant to packet egress. This allows packet handling on multiple ports and streams belonging to the same call to happen at the same time. Kernel forwarding ----------------- The kernel forwarding of RTP/RTCP packets is handled in the `xt_RTPENGINE.c` / `xt_RTPENGINE.h`. The linkage between user-space and kernel module is in the `kernelize_one()` (`media_socket.c`),\ which populates the struct that is passed to the kernel module. _To be continued.._ --- Call monologue and Tag concept ------------------------------ The concept of tags is taken directly from the SIP protocol.\ Each `call_monologue` has a tag member, which can be empty or filled. The tag value will taken: * for the caller - From-tag (so will be always filled) * for the callee - To-tag (but will be empty, until first reply with a given Tag is received) Things are getting slightly more complicated, when there is a branched call.\ In this situation, the same offer is sent to multiple receivers, possibly with different options.\ At this point of time, multiple monologues are created in rtpengine and all of them without a known tag value\ (essentially without To-tag). At this point they all are distinguished by the via-branch value.\ And when the answer comes through, the via-branch is used to match the monologue,\ and then we assign the `str tag` value to this particular `call_monologue`. In a simplified view of things, we have the following: * A (caller) = monologue A = From-tag (session initiation) * B (callee) = monologue B = To-tag (183 / 200OK) _NOTE: Nameless branches are branches (call_monologue objects) that were created from an offer but that haven't seen an answer yet._\ _Once an answer is seen, the tag becomes known._ _NOTE: From-tag and To-tag strictly correspond to the directionality of message, not to the actual SIP headers._\ _In other words, the From-tag corresponds to the monologue sending this particular message,_ _even if the tag is actually taken from the To header’s tag of the SIP message, as it would be in a 200 OK for example._ --- Flags and options parsing ------------------------- ### Flags ### There are few helper functions to iterate the list of flags and they use callback functions.\ The top-level one is `call_ng_main_flags()`, which is used as a callback from `call_ng_dict_iter()`. `call_ng_main_flags()` then uses the `call_ng_flags_list()` helper to iterate through the contained lists, and uses different callbacks depending on the entry. For example, for the `flags:[]` entry, it uses `call_ng_flags_list()`, which means `call_ng_flags_flags()` is called once for each element contained in the list. Let’s assume that the given flag is the SDES-no-NULL_HMAC_SHA1_32.\ Consider the picture: ![alt text](images/pic4_flags_parsing.png "Picture 4") _NOTE: Some of these callback functions have two uses. For example `ng_sdes_option()` is used as a callback for the `"SDES":[]` list (via the `call_ng_flags_list()`), and also for flags found in the `"flags":[]` list that starts with the `"SDES-"` prefix via `call_ng_flags_prefix()`._ rtpengine-mr12.5.1.22/docs/call_recording.md000066400000000000000000000022761474347554000206210ustar00rootroot00000000000000# Call Recording Call recording can be accomplished in one of two ways: * The *rtpengine* daemon can write `libpcap`-formatted captures directly (`--recording-method=pcap`); * The *rtpengine* daemon can write audio frames into a sink in `/proc/rtpengine` (`--recording-method=proc`). These frames must then be consumed within a short period by another process; while this can be any process, the packaged `rtpengine-recording` daemon is a useful ready implementation of a call recording solution. The recording daemon uses `ffmpeg` libraries to implement a variety of on-the-fly format conversion and mixing options, as well as metadata logging. See `rtpengine-recording -h` for details. **Important note**: The *rtpengine* daemon emits data into a "spool directory" (`--recording-dir` option), by default `/var/spool/rtpengine`. The recording daemon is then configured to consume this using the `--spool-dir` option, and to store the final emitted recordings (in whatever desired target format, etc.) in `--output-dir`. Ensure that the `--spool-dir` and the `--output-dir` are **different** directories, or you will run into problems (as discussed in [#81](https://github.com/sipwise/rtpengine/issues/808)). rtpengine-mr12.5.1.22/docs/compiling_and_installing.md000066400000000000000000000127231474347554000226770ustar00rootroot00000000000000# Compiling and Installing ## Package Repositories Prebuilt packages for some newer releases of Debian are available on [this repository](https://dfx.at/rtpengine) ## Compiling on a Debian System On a Debian system, everything can be built and packaged into Debian packages by executing `dpkg-buildpackage` (which can be found in the `dpkg-dev` package) in the main directory. This script will issue an error and stop if any of the dependency packages are not installed. The script `dpkg-checkbuilddeps` can be used to check missing dependencies. (See the note about G.729 at the end of this section.) This will produce a number of `.deb` files, which can then be installed using the `dpkg -i` command. The generated files are (with version 6.2.0.0 being built on an amd64 system): * `ngcp-rtpengine_6.2.0.0+0~mr6.2.0.0_all.deb` This is a meta-package, which doesn't contain or install anything on its own, but rather only depends on the other packages to be installed. Not strictly necessary to be installed. * `ngcp-rtpengine-daemon_6.2.0.0+0~mr6.2.0.0_amd64.deb` This installed the userspace daemon, which is the main workhorse of rtpengine. This is the minimum requirement for anything to work. * `ngcp-rtpengine-kernel-dkms_6.2.0.0+0~mr6.2.0.0_all.deb` Kernel module, DKMS version of the package. Recommended for in-kernel operation. The kernel module will be compiled against the currently running kernel using DKMS. * `ngcp-rtpengine-kernel-source_6.2.0.0+0~mr6.2.0.0_all.deb` If DKMS is unavailable or not desired, then this package will install the sources for the kernel module for manual compilation. Required for in-kernel operation, but only if the DKMS package can't be used. * `ngcp-rtpengine-recording-daemon_6.2.0.0+0~mr6.2.0.0_amd64.deb` Optional separate userspace daemon used for call recording features. * `-dbg...` or `-dbgsym...` packages Debugging symbols for the various components. Optional. For transcoding purposes, Debian provides an additional package `libavcodec-extra` to replace the regular `libavcodec` package. It is recommended to install this extra package to offer support for additional codecs. To support the G.729 codec for transcoding purposes, the external library *bcg729* is required. Please see the section on *G.729 support* below for details. ## Manual Compilation There are 3 main parts to *rtpengine* plus one optional component, which can be found in the respective subdirectories. Running `make` on the top source directory will build all parts. Running `make check` additionally will run the test suite. * `daemon` The userspace daemon and workhorse, minimum requirement for anything to work. Running `make` will compile the binary, which will be called `rtpengine`. The following software packages including their development headers are required to compile the daemon: - *pkg-config* - *GLib* including *GThread* and *GLib-JSON* version 2.x - *zlib* - *OpenSSL* - *PCRE* library - *XMLRPC-C* version 1.16.08 or higher - *hiredis* library - *gperf* - *libcurl* version 3.x or 4.x - *libevent* version 2.x - *libpcap* - *libsystemd* - *spandsp* - *MySQL* or *MariaDB* client library (optional for media playback and call recording daemon) - *libiptc* library for iptables management (optional) - *ffmpeg* codec libraries for transcoding (optional) such as *libavcodec*, *libavfilter*, *libswresample* - *bcg729* for full G.729 transcoding support (optional) - *libmosquitto* - *libwebsockets* - *libopus* The `Makefile` contains a few Debian-specific flags, which may have to removed for compilation to be successful. This will not affect operation in any way. If you do not wish to (or cannot) compile the optional iptables management feature, the `Makefile` also contains a switch to disable it. See the `--iptables-chain` option for a description. The name of the `make` switch and its default value is `with_iptables_option=yes`. Similarly, the transcoding feature can be excluded via a switch in the `Makefile`, making it unnecessary to have the *ffmpeg* libraries installed. The name of the `make` switch and its default value is `with_transcoding=yes`. Both `Makefile` switches can be provided to the `make` system via environment variables, for example by building with the shell command `with_transcoding=no make`. * `kernel-module` Required for in-kernel packet forwarding. Supported for kernels versions 4.4 and newer. Compilation of the kernel module requires the kernel development headers to be installed in `/lib/modules/$VERSION/build/`, where *$VERSION* is the output of the command `uname -r`. For example, if the command `uname -r` produces the output `4.19-1-amd64`, then the kernel headers must be present in `/lib/modules/4.19-1-amd64/build/`. The last component of this path (`build`) is usually a symlink somewhere into `/usr/src/`, which is fine. Successful compilation of the module will produce the file `xt_RTPENGINE.ko`. The module can be inserted into the running kernel manually through `insmod xt_RTPENGINE.ko` (which will result in an error if depending modules aren't loaded, for example the `x_tables` module), but it's recommended to copy the module into `/lib/modules/$VERSION/updates/`, followed by running `depmod -a`. This copying is performed on `make install`. After this, the module can be loaded by issuing `modprobe xt_RTPENGINE`. * `recording-daemon` Optional component for the call recording feature. Prerequisites are usage of the kernel module and availability of transcoding (via *ffmpeg*) rtpengine-mr12.5.1.22/docs/conf.py000066400000000000000000000020071474347554000166170ustar00rootroot00000000000000# Configuration file for the Sphinx documentation builder. # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = 'rtpengine' copyright = '2023, Sipwise' author = 'Sipwise' release = 'master' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = ["myst_parser", "sphinx_rtd_theme"] myst_heading_anchors = 3 templates_path = ['_templates'] exclude_patterns = ['_build'] master_doc = 'index' # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output html_theme = 'sphinx_rtd_theme' htmlhelp_basename = 'rtpenginedoc' rtpengine-mr12.5.1.22/docs/glossary.md000066400000000000000000000004301474347554000175030ustar00rootroot00000000000000Glossary ======== This is the page, which gives a clue regarding abbreviations and specific words used in the rtpengine project. --- * tag - is a monologue related tag (value of which is taken from either From or To tag) * monologue - is a `call_monologue` = a half of dialoguertpengine-mr12.5.1.22/docs/http_websocket_support.md000066400000000000000000000045741474347554000224760ustar00rootroot00000000000000# HTTP/WebSocket support If enabled in the config, *rtpengine* can handle requests made to it via HTTP, HTTPS, or WebSocket (WS or WSS) connections. The supported HTTP URIs and WebSocket subprotocols are described below. ## Dummy Test Interfaces For HTTP and HTTPS, the URI `/ping` is provided, which simply responds with `pong` if requested via `GET`. For WebSockets, the subprotocol `echo.rtpengine.com` is provided, which simply echoes back any messages that are sent to it. ## CLI Interface This interface supports the same commands as the CLI tool `rtpengine-ctl` that comes packaged with `rtpengine`. For HTTP and HTTPS, the command is appended to the URI base `/cli/` and the request is made via `GET`, with spaces replaced by plus signs as required by HTTP (e.g. `GET /cli/list+totals`). For WebSockets, the subprotocol is `cli.rtpengine.com` and each WebSocket message corresponds to one CLI command and produces one message in response. The format of each response is exactly the same as produced by the CLI tool `rtpengine-ctl` and therefore meant for plain text representation. ## *ng* Protocol Interface This interface can be used to send and receive *ng* protocol messages over HTTP or WebSocket connections instead of plain UDP. For HTTP and HTTPS, the URI `/ng` is used, with the request being made by `POST` and the content-type set to `application/x-rtpengine-ng`. The message body must be in the same format as the body of an UDP-based *ng* message and must therefore consist of a unique cookie string, followed by a single space, followed by the message in *bencode* format or *JSON* format. Likewise, the response will be in the same format, including the unique cookie. For WebSockets, the subprotocol `ng.rtpengine.com` is used and the protocol follows the same format. Messages must consist of a unique cookie and a string in *bencode* format or *JSON* format, and responses will also be in the same format. Additionally the URI `/ng-plain` and the WebSocket subprotocol `ng-plain.rtpengine.com` are supported, which operate identical to what is described above except that they carry *ng* protocol messages without the unique cookie. In other words, each payload is just a plain *bencode* dictionary or a *JSON* object. Therefore the content-type `application/json` can also be used for HTTP `POST`. ## Prometheus Stats Exporter The Prometheus metrics can be found under the URI `/metrics`. rtpengine-mr12.5.1.22/docs/images/000077500000000000000000000000001474347554000165665ustar00rootroot00000000000000rtpengine-mr12.5.1.22/docs/images/pic1_rtp_engine_architecture.png000066400000000000000000003612761474347554000251230ustar00rootroot00000000000000‰PNG  IHDRSœ«ëýsRGB®Îé¤ktEXtmxfile%3Cmxfile%20host%3D%22ac.draw.io%22%20modified%3D%222022-11-29T09%3A46%3A12.158Z%22%20agent%3D%225.0%20(X11%3B%20Linux%20x86_64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F101.0.4951.67%20Safari%2F537.36%20OPR%2F87.0.4390.36%22%20etag%3D%228GMlLhaPVs7jkXc9suPl%22%20version%3D%2220.6.0%22%20type%3D%22embed%22%3E%3Cdiagram%20id%3D%22ZVddVUy6Ld71LEE-STXX%22%20name%3D%22Page-1%22%3E%3CmxGraphModel%20dx%3D%221422%22%20dy%3D%22838%22%20grid%3D%221%22%20gridSize%3D%2210%22%20guides%3D%221%22%20tooltips%3D%221%22%20connect%3D%221%22%20arrows%3D%221%22%20fold%3D%221%22%20page%3D%221%22%20pageScale%3D%221%22%20pageWidth%3D%22850%22%20pageHeight%3D%221100%22%20background%3D%22%23808080%22%20math%3D%220%22%20shadow%3D%220%22%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-1%22%20value%3D%22Correlation%20of%20objects%20(structs)%20in%20RTPEngine.%26lt%3Bbr%26gt%3BProcessing%20of%20incoming%20RTP%2FRTCP%20packet.%20(Part%201)%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3D%234D9900%3BfontFamily%3DCourier%20New%3BfontStyle%3D1%3BfontSize%3D14%3BfontColor%3D%23E6E6E6%3Balign%3Dcenter%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20width%3D%22850%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-2%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3Bdashed%3D1%3BstrokeWidth%3D2%3BstrokeColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2240%22%20y%3D%2280%22%20width%3D%22770%22%20height%3D%22680%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-3%22%20value%3D%22stream_fd%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22660%22%20width%3D%22252.5%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-4%22%20value%3D%22Incoming%20RTP%2FRTCP%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BfillColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.5%22%20y%3D%22832.5%22%20width%3D%22213.75%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-6%22%20value%3D%22%22%20style%3D%22shape%3Dimage%3BverticalLabelPosition%3Dbottom%3BlabelBackgroundColor%3Ddefault%3BverticalAlign%3Dtop%3Baspect%3Dfixed%3BimageAspect%3D0%3Bimage%3Ddata%3Aimage%2Fsvg%2Bxml%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAuMDAyIDAgMzE0Ljk5NyAxODAiIGhlaWdodD0iMjIwIiB3aWR0aD0iNDIwIiBvdmVyZmxvdz0idmlzaWJsZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWpvaW49ImJldmVsIiBzdHJva2Utd2lkdGg9Ii41MDEiPjxnIGZvbnQtZmFtaWx5PSJUaW1lcyBOZXcgUm9tYW4iIGZvbnQtc2l6ZT0iMTYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0Ij48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwMDAiIGQ9Ik03MC4yODEgNjQuNzUzYy03LjU1OS0zLjg5OC0xMy4zMDUtNy40NjgtMTcuMjctMTMuNzQ1LTMuMDE1LTQuNzcxLTQuNDAxLTExLjE1LTEuNzU4LTE3LjE5NyA2LjUtMTMuMTEgMjEuNzAzLTE4LjcyOSAzMi4wNi0yMS44MTQgMTIuNjE2LTMuNzU4IDMxLjA2Ny01LjgzOCA0NS43Mi01LjA2OCAxNi4yOTcuODU4IDMyLjA0NCAzLjY1MSA0Ni4zNjcgMTAuOTE5IDYuNDY3IDMuMjg3IDEzLjYxNSA4Ljg1OCAxNS42MTQgMTMuNzQ0bS0yOS4zNTggMzcuNjIzYy0xMi4wMjEgMy4xNTYtMjYuNDU1IDUuMTM4LTM5LjU2NCA1LjEzOC0xMi40NDkgMC0yMi44MDUtLjk5MS0zNS44OTQtMy45MjkiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNjU2IDg0LjM4OGMtOC41ODYtLjQ0MS0xNS4yMDItMS4wODItMjQuMzMtNi4yNzYtMTAuNjI3LTYuNTI5LTEzLjI5Ny0xMy42OS0xMy4xMTQtMjEuMTM3Ljk5Ni04LjIxIDUuOTI0LTE0LjA0OSAxMi4zOTQtMTguMDQgNy41NzMtNC40MDQgMTUuMzUyLTYuMzc5IDIyLjU5NC02LjY5OSA5LjA0Ny0uMzg5IDIwLjUzNSAxLjg5NiAyOC42MzEgNy4xMSA2LjA2NyAzLjk4NiAxMS4yODQgMTAuMjMgMTEuNTYyIDE3LjQ4OS43MTIgOS44MTUtNi4zNjUgMjEuMDI2LTIzLjIyMSAyNS41NDUiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU2IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNzk3IDg0LjQ2OGwxNi45NzkgMTAuNzQ4LTIuNjU2LTEyLjc4NSIvPjxwYXRoIHN0cm9rZS13aWR0aD0iMy42NTciIHN0cm9rZT0iIzAwMCIgZD0iTTcwLjMwNSA2NC44ODhMNTcuNzQ4IDk0LjA3N2wyOC40MTctMjMuNjgiLz48L2c%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNNDEuMDMxIDEwNi4xODFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZIMTAuOTcyYy0zLjM3NS4wMzUtNS4wOTcgMS44NjQtNS4wOTcgNS41MiAwIDMuMjY5IDEuNzIyIDQuODg2IDUuMTMyIDQuODUxbDE0LjIzOS4wMzVjMTAuNDA2IDAgMTUuNjQ0LTQuNzEgMTUuNzE0LTE0LjA2MiAwLTkuMjExLTUuMjM4LTEzLjg4Ny0xNS43MTQtMTQuMDYzaC0zLjQxMWMtMy42MjEgMC01LjQxNC0xLjEyNS01LjQxNC0zLjM3NSAwLTIuMzkgMS43OTMtMy41ODUgNS4zNzktMy41ODVoMTQuMDk4YzMuMzQtLjA3MSA1LjA2Mi0xLjgyOSA1LjEzMy01LjMwOXptMjIuODg2IDM1LjA1MXYtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTcuMTM3LTM0Ljk4MXY0OS4yNTNjMCAzLjQ4MSAxLjc1NyA1LjIzOCA1LjI3MyA1LjIzOHM1LjI3My0xLjc5MiA1LjI3My01LjM3OHYtOC43ODloMTIuMzc1YzEwLjU0NyAwIDE1LjgyMS01LjM3OCAxNS44MjEtMTYuMTcxdi0xMy42NzZjMC0xMC41NDctNS4zMDktMTUuODU2LTE1Ljg5MS0xNS44NTZINzYuMjU3Yy0zLjQ4MSAwLTUuMjAzIDEuNzkzLTUuMjAzIDUuMzc5em0yMi44NTEgNS4yMzljMy41NTEgMCA1LjM0NCAxLjcyMiA1LjM0NCA1LjA5N3YxNC4wMjhjMCAzLjYyMS0xLjc5MyA1LjQxNC01LjM0NCA1LjQxNEg4MS42VjExMS40OWgxMi4zMDV6bTMwLjAyMy02Ljk5N2MxLjEyNSAwIDIuMjUuMzE3IDMuMzc1LjkxNSAxLjEyNS41OTcgMS45NjkgMS40NDEgMi42MDIgMi41NjYuNjMyIDEuMTI1Ljk0OSAyLjMyLjk0OSAzLjUxNiAwIDEuMTk1LS4zMTcgMi4zNTUtLjkxNCAzLjQ0NS0uNjMzIDEuMTI1LTEuNDc3IDEuOTY5LTIuNjAyIDIuNTY2LTEuMTI1LjYzMy0yLjI1LjkxNC0zLjQxLjkxNC0xLjIzIDAtMi4zOTEtLjI4MS0zLjQ4LS45MTQtMS4xMjUtLjU5Ny0xLjk2OS0xLjQ0MS0yLjYwMi0yLjU2NmE2Ljc0OCA2Ljc0OCAwIDAgMS0uOTE0LTMuNDQ1YzAtMS4xOTYuMjgxLTIuMzkxLjkxNC0zLjUxNnMxLjQ3Ny0xLjk2OSAyLjYwMi0yLjU2NmMxLjEyNS0uNTk4IDIuMjg1LS45MTUgMy40OC0uOTE1em0wIDI4LjA5YzEuMTI1IDAgMi4yNS4zMTcgMy4zNzUuOTE0IDEuMTI1LjU5OCAxLjk2OSAxLjQ0MiAyLjYwMiAyLjU2Ny42MzIgMS4xMjUuOTQ5IDIuMzIuOTQ5IDMuNTE1IDAgMS4xOTYtLjMxNyAyLjMyMS0uOTE0IDMuNDQ2LS42MzMgMS4xMjUtMS40NzcgMS45NjgtMi42MDIgMi41NjYtMS4xMjUuNjMzLTIuMjUuOTE0LTMuNDEuOTE0LTEuMjMgMC0yLjM5MS0uMjgxLTMuNDgtLjkxNC0xLjEyNS0uNTk4LTEuOTY5LTEuNDQxLTIuNjAyLTIuNTY2YTYuODQgNi44NCAwIDAgMS0uOTE0LTMuNDQ2YzAtMS4xOTUuMjgxLTIuMzkuOTE0LTMuNTE1czEuNDc3LTEuOTY5IDIuNjAyLTIuNTY3YzEuMTI1LS41OTcgMi4yODUtLjkxNCAzLjQ4LS45MTR6Ii8%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgZmlsbD0iIzA2MCIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNMTkzLjc2MSAxNDcuNzdjMy41ODYtLjA3IDUuMzc5LTEuODI3IDUuMzc5LTUuMzA4di0zNS4wNTFjMC0zLjU1LTEuNzU4LTUuMzQzLTUuMjAzLTUuMzQzLTMuNTg2IDAtNS4zNDQgMS43OTMtNS4zNDQgNS4zNDN2MjkuNzQzaC04LjcxOGMtMy41ODYgMC01LjM0NC0xLjc5My01LjM0NC01LjQxNHYtMjQuMzk5YzAtMy41NTEtMS43NTgtNS4zNDQtNS4yNzQtNS4zNDQtMy41MTUgMC01LjI3MyAxLjc1OC01LjI3MyA1LjI3NGwuMDcgMjkuODgzSDE1NS4zYy0zLjU4NiAwLTUuMzc5LTEuNzkzLTUuMzc5LTUuNDE0di0yNC4zOTljMC0zLjU1MS0xLjc1Ny01LjM0NC01LjI3My01LjM0NHMtNS4yNzMgMS43NTgtNS4yNzMgNS4yNzR2MjQuMjU4YzAgMTAuNzkzIDUuMjczIDE2LjE3MSAxNS44MiAxNi4xNzFsMzguNTY2LjA3em0yOC4yMy01LjQxM3YtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTQyLjI5My0zNS4wNTFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZoLTE0LjIwM2MtMy4zNzUuMDM1LTUuMDk3IDEuODY0LTUuMDk3IDUuNTIgMCAzLjI2OSAxLjcyMiA0Ljg4NiA1LjEzMiA0Ljg1MWwxNC4yMzkuMDM1YzEwLjQwNiAwIDE1LjY0NC00LjcxIDE1LjcxNC0xNC4wNjIgMC05LjIxMS01LjIzOC0xMy44ODctMTUuNzE0LTE0LjA2M2gtMy40MTFjLTMuNjIxIDAtNS40MTQtMS4xMjUtNS40MTQtMy4zNzUgMC0yLjM5IDEuNzkzLTMuNTg1IDUuMzc5LTMuNTg1aDE0LjA5OGMzLjM0LS4wNzEgNS4wNjItMS44MjkgNS4xMzMtNS4zMDl6bTQ1LjgwOCAzNS4yNjJjMC0zLjUxNi0xLjcyMy01LjMwOS01LjE2OC01LjMwOWwtMTcuNjQ5LS4wMzVjLTMuNTg2IDAtNS4zNzktMS43OTMtNS4zNzktNS4zNzl2LTEuNzU4bDE1Ljg5MS0uMDM1YzMuNTE2IDAgNS4yMzgtMS42ODcgNS4yMzgtNS4xMzMgMC0zLjU4Ni0xLjc5My01LjM3OS01LjM0My01LjQ0OWwtMTUuNzg2LjA3di03LjAzMWwyMi43ODIuMDM1YzMuNTUtLjA3IDUuMzQzLTEuNzkzIDUuMzc5LTUuMjM4IDAtMy41MTYtMS44NjQtNS4yMzgtNS41Mi01LjIzOGgtMjcuOTE0Yy0zLjUxNiAwLTUuMjczIDEuNzU3LTUuMjczIDUuMjczdjI0LjI1OGMwIDEwLjc5MyA1LjI3MyAxNi4xNzEgMTUuODIgMTYuMTcxaDE3LjY0OGMzLjUxNiAwIDUuMjc0LTEuNzIyIDUuMjc0LTUuMjAyeiIvPjxwYXRoIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiIGQ9Ik0xNDguNTg4IDE3My4xNDZoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptMjEuODggOC4wOGgtMi4zNmwtMS4yMy0zLjY3aC02Ljc3bC0xLjIzIDMuNjdoLTIuMjVsNS42Ni0xNS4zOGgyLjVsNS42OCAxNS4zOHptLTYuODktMTMuODRoLS4wNmwtLjUyIDEuNi0yLjI3IDYuNzVoNS41NWwtMi4yMy02Ljc1LS40Ny0xLjZ6bTExLjM1NS0xLjU0djEzLjQxaDcuMTVsLS4wNiAxLjk3aC05LjJ2LTE1LjM4aDIuMTF6bTExLjcyNyA4LjI3djUuMmg3Ljc3bC0uMDYxIDEuOTFoLTkuNzk5di0xNS4zOGg5LjQ1bC4wNTkgMS45M2gtNy40MTl2NC41N2g2LjM0OXYxLjc3aC02LjM0OXptMjYuMzgxLTcuODFsLS4yNiAxLjg4Yy0uOTItLjQyLTEuOTkzLS42My0zLjIyLS42My0xLjY1MyAwLTIuODM3LjQzMy0zLjU1IDEuMy0uNzEzLjg2Ny0xLjA3IDIuMzgtMS4wNyA0LjU0IDAgMi4zMDcuMzYgMy45MTcgMS4wOCA0LjgzLjcyLjkwNyAxLjkyIDEuMzYgMy42IDEuMzYgMS4xNiAwIDIuMjMzLS4yNDcgMy4yMi0uNzRsLjI2IDEuNzdhOC4xMiA4LjEyIDAgMCAxLTMuNzUuOWMtMi4yOCAwLTMuOTUzLS42NTMtNS4wMi0xLjk2LTEuMDY3LTEuMzA3LTEuNi0zLjM2LTEuNi02LjE2IDAtMi42NTMuNTQzLTQuNjE3IDEuNjMtNS44OSAxLjA4Ny0xLjI4IDIuNzgzLTEuOTIgNS4wOS0xLjkyIDEuMzUzIDAgMi41NS4yNCAzLjU5Ljcyem0xMS4xNDEgMy45OGMuODI3Ljk5MyAxLjI0IDIuNjE3IDEuMjQgNC44N3MtLjQxMyAzLjg3My0xLjI0IDQuODZjLS44MjcuOTg3LTIuMTYzIDEuNDgtNC4wMSAxLjQ4LTEuODUzIDAtMy4yMDMtLjQ5Ny00LjA1LTEuNDktLjg1My0uOTkzLTEuMjgtMi42MS0xLjI4LTQuODUgMC0yLjI0LjQzLTMuODYgMS4yOS00Ljg2Ljg1My0uOTkzIDIuMi0xLjQ5IDQuMDQtMS40OSAxLjg0NyAwIDMuMTgzLjQ5MyA0LjAxIDEuNDh6bS02LjU4IDEuMjJjLS41LjctLjc1IDEuOTE3LS43NSAzLjY1IDAgMS43NC4yNSAyLjk1Ny43NSAzLjY1LjUuNyAxLjM1NyAxLjA1IDIuNTcgMS4wNSAxLjE5MyAwIDIuMDM3LS4zNSAyLjUzLTEuMDUuNDg3LS42OTMuNzMtMS45MS43My0zLjY1IDAtMS43MzMtLjI0My0yLjk1LS43My0zLjY1LS40OTMtLjY5My0xLjMzNy0xLjA0LTIuNTMtMS4wNC0xLjIxMyAwLTIuMDcuMzQ3LTIuNTcgMS4wNHptMjYuMjc4IDEuNTh2OC4xNGgtMS45M3YtOC4xMmMwLTEuNjY3LS44NDctMi41LTIuNTQtMi41LS43IDAtMS4yOC4yLTEuNzQuNi0uNDU0LjM5My0uNjguOTYtLjY4IDEuN3Y4LjMyaC0xLjkzdi04LjMyYzAtLjc5My0uMjItMS4zOC0uNjYtMS43Ni0uNDM0LS4zNzMtMS4wMTQtLjU2LTEuNzQtLjU2YTMuMDYgMy4wNiAwIDAgMC0xLjQ4LjM4Yy0uNDc0LjI1My0uODM0LjU4My0xLjA4Ljk5djkuMjdoLTEuOTV2LTEyLjE4bDEuNC0uMS4zNCAxLjMxaC4wN2MuNzczLS45NTMgMS44MjMtMS40MyAzLjE1LTEuNDMgMS42MjYgMCAyLjcyNi42MiAzLjMgMS44NmguMDRjLjY4Ni0xLjI1MyAxLjgzNi0xLjg4IDMuNDUtMS44OCAxLjIxMyAwIDIuMTguMzYgMi45IDEuMDguNzIuNzI3IDEuMDggMS43OTMgMS4wOCAzLjJ6bTEzLjMyMiAyLjAxYzAgNC4yNC0xLjU5NCA2LjM2LTQuNzggNi4zNi0xLjQ3NCAwLTIuNTgtLjQ0Ny0zLjMyLTEuMzRsLS4wNC4wMi4wMiAxLjY2djIuNDZoLTEuOTl2LTE1LjE5bDEuNC0uMS40MSAxLjI3Yy45MjYtLjk1MyAyLjEzMy0xLjQzIDMuNjItMS40MyAxLjU3MyAwIDIuNzQ2LjQ3NyAzLjUyIDEuNDMuNzczLjk2IDEuMTYgMi41OCAxLjE2IDQuODZ6bS0yLjAxMSAwYzAtMS42OTMtLjI1My0yLjg3LS43NTktMy41My0uNTA3LS42NTMtMS4zLS45OC0yLjM4LS45OC0xLjMyNyAwLTIuMzE3LjQ4LTIuOTcgMS40NHY2LjI3Yy41ODYuOTkzIDEuNTQzIDEuNDkgMi44NyAxLjQ5IDEuMDUzIDAgMS44NTYtLjM0IDIuNDEtMS4wMi41NTMtLjY4Ny44MjktMS45MS44MjktMy42N3ptMTMuMjQzIDYuMTNoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptNS4zNSA5Ljg0Yy40OTMgMCAuOTA2LS4xMTcgMS4yNC0uMzUuMzQtLjIyNy42NC0uNjI3LjktMS4ybC4wNi0uMjEtNS4zNS0xMi4yMmgyLjI1bDMuNDkgOC44OC41NyAxLjU0aC4wNmwuNDUtMS41OCAyLjgxLTguODRoMi4wOWwtNC40NSAxMi4zNmMtLjQwNyAxLjEwNy0uOTE0IDEuOTA3LTEuNTIgMi40LS42MTQuNDkzLTEuMzcuNzQtMi4yNy43NC0uNjk0IDAtMS4zMi0uMTMtMS44OC0uMzlsLjE4LTEuNDVjLjQ1My4yMTMuOTEuMzIgMS4zNy4zMnoiLz48L3N2Zz4%3D%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2230%22%20y%3D%225%22%20width%3D%2295.46%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-7%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280.5%22%20y%3D%22570%22%20width%3D%22122%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-8%22%20value%3D%22call_media%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280.5%22%20y%3D%22480%22%20width%3D%22252%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-9%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22212.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-10%22%20value%3D%22call_monologue%20%26lt%3Bfont%20color%3D%26quot%3B%23e6e6e6%26quot%3B%26gt%3BA%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%3BverticalAlign%3Dtop%3Balign%3Dcenter%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22160%22%20width%3D%22252.5%22%20height%3D%22262.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-11%22%20value%3D%22RTP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2282.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-12%22%20value%3D%22RTCP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22212.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2225%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-13%22%20value%3D%22Call%20participant%201%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22130%22%20width%3D%22170%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-14%22%20value%3D%22stream_fd%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22500%22%20y%3D%22660%22%20width%3D%22252.5%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-15%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22500.5%22%20y%3D%22570%22%20width%3D%22122%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-16%22%20value%3D%22call_media%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22500.5%22%20y%3D%22480%22%20width%3D%22252%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-17%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22632.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-19%22%20value%3D%22RTP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22502.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-20%22%20value%3D%22RTCP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22632.5%22%20y%3D%22570%22%20width%3D%22120%22%20height%3D%2225%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-21%22%20value%3D%22Call%20participant%202%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22500%22%20y%3D%22130%22%20width%3D%22170%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-30%22%20value%3D%22Packets%20stream%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D40%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.25%22%20y%3D%22892.5%22%20width%3D%22214%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-32%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D1%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.5%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20target%3D%22oad6Vc3YnYEZ8WAJpYQT-3%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22205.83%22%20y%3D%22832.5%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22205.83%22%20y%3D%22760%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-34%22%20value%3D%22Incoming%20RTP%2FRTCP%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BfillColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22519.75%22%20y%3D%22832.5%22%20width%3D%22213.75%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-35%22%20value%3D%22Packets%20stream%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D40%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22519.5%22%20y%3D%22892.5%22%20width%3D%22214%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-36%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D1%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.5%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20target%3D%22oad6Vc3YnYEZ8WAJpYQT-14%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22626.0799999999999%22%20y%3D%22832.5%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22626.0799999999999%22%20y%3D%22760%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22n9XyBTD3CPGYwQmS5mwb-1%22%20value%3D%22Subscribers%20list%3A%26lt%3Bbr%26gt%3B-%20call_monologue%20B%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2292.75%22%20y%3D%22190%22%20width%3D%22227.5%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22n9XyBTD3CPGYwQmS5mwb-2%22%20value%3D%22Subscriptions%20list%3A%26lt%3Bbr%26gt%3B-%20call%20monologue%20B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%3BverticalAlign%3Dtop%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2292.5%22%20y%3D%22270%22%20width%3D%22227.5%22%20height%3D%22140%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-1%22%20value%3D%22call_monologue%20%26lt%3Bfont%20color%3D%26quot%3B%23e6e6e6%26quot%3B%26gt%3BB%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%3BverticalAlign%3Dtop%3Balign%3Dcenter%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22500.5%22%20y%3D%22160%22%20width%3D%22252.5%22%20height%3D%22262.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-2%22%20value%3D%22Subscribers%20list%3A%26lt%3Bbr%26gt%3B-%20call_monologue%20A%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22513.25%22%20y%3D%22190%22%20width%3D%22227.5%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-4%22%20value%3D%22%22%20style%3D%22curved%3D1%3BendArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3Bopacity%3D70%3B%22%20parent%3D%221%22%20source%3D%22CSLkCuAFo2QjsUDRJGTU-6%22%20target%3D%22CSLkCuAFo2QjsUDRJGTU-2%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22370%22%20y%3D%22360%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22420%22%20y%3D%22310%22%20as%3D%22targetPoint%22%2F%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22420%22%20y%3D%22300%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-5%22%20value%3D%22%22%20style%3D%22curved%3D1%3BendArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3BexitX%3D0%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D1%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3Bopacity%3D70%3B%22%20parent%3D%221%22%20source%3D%22CSLkCuAFo2QjsUDRJGTU-14%22%20target%3D%22n9XyBTD3CPGYwQmS5mwb-1%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22513%22%20y%3D%22300.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22523.25%22%20y%3D%22230%22%20as%3D%22targetPoint%22%2F%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22430%22%20y%3D%22310%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-6%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Bcall_subscription%26lt%3B%2Ffont%26gt%3B%26lt%3Bbr%26gt%3B-%20flags%26lt%3Bbr%26gt%3B-%20attributes%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23666666%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22109%22%20y%3D%22310%22%20width%3D%22195%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-8%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22109%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22300%22%20y%3D%22400%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-9%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.075%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22n9XyBTD3CPGYwQmS5mwb-2%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22110%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22314%22%20y%3D%22410%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-12%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.913%3BentryY%3D0.993%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22n9XyBTD3CPGYwQmS5mwb-2%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22300%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22119.5625%22%20y%3D%22420%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-13%22%20value%3D%22Subscriptions%20list%3A%26lt%3Bbr%26gt%3B-%20call%20monologue%20A%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%3BverticalAlign%3Dtop%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22513.25%22%20y%3D%22270%22%20width%3D%22227.5%22%20height%3D%22140%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-14%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Bcall_subscription%26lt%3B%2Ffont%26gt%3B%26lt%3Bbr%26gt%3B-%20flags%26lt%3Bbr%26gt%3B-%20attributes%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23666666%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22529.75%22%20y%3D%22310%22%20width%3D%22195%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-15%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22529.7500000000001%22%20y%3D%22400.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22720.75%22%20y%3D%22400.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-16%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.075%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22CSLkCuAFo2QjsUDRJGTU-13%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22530.75%22%20y%3D%22400.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22734.75%22%20y%3D%22410%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-17%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.913%3BentryY%3D0.993%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22CSLkCuAFo2QjsUDRJGTU-13%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22720.75%22%20y%3D%22400.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22540.3125%22%20y%3D%22420%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-18%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22206%22%20y%3D%22480%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22205.97999999999993%22%20y%3D%22422.5%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-19%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22626.75%22%20y%3D%22480%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22626.7299999999999%22%20y%3D%22422.5%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-20%22%20value%3D%22Linked%20to%20a%20call%20monologue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22202.5%22%20y%3D%22441.25%22%20width%3D%22180%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-21%22%20value%3D%22Linked%20to%20a%20call%20monologue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3BfontColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22630%22%20y%3D%22441.25%22%20width%3D%22180%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-22%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22142%22%20y%3D%22570%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22142.18%22%20y%3D%22550%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-24%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22272.31%22%20y%3D%22570.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22272.49000000000007%22%20y%3D%22550.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-25%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22141.16%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22141.34000000000006%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-26%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22271.4700000000001%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22271.65000000000003%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-31%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22561.29%22%20y%3D%22570%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22561.47%22%20y%3D%22550%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-32%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22691.5999999999999%22%20y%3D%22570.0000000000002%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22691.78%22%20y%3D%22550.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-33%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22560.45%22%20y%3D%22660.0000000000002%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22560.6300000000001%22%20y%3D%22640.0000000000002%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-34%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22690.76%22%20y%3D%22660.0000000000002%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22690.94%22%20y%3D%22640.0000000000002%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E%3C%2Fdiagram%3E%3C%2Fmxfile%3E·±Å  IDATx^ìt\ÇÝů˜Á–-™™cŠ9vì8i˜¡á´É×pæ¤a¦¦M›¤ 34±3SŒ13[FYÌÒw¼’WÚ]íJÚÕÞ9ÇÇöî{óf~3oßÜùà ºñÅQ¥Pp‹@ÐM/Ž*Ý7Ë­“t°ˆ€ˆ€ˆ€ˆ€ˆ€2¦™£ 1È3@}¨‰©jaÓI" " " " " N@b*Ðg€ú/" " " " "P-SÕ¦“D@D@D@D@D@@ÀŠ©¬T }}°ò)‘Ä4b’¨†>UÔ{!¦rŽG6{€ôÝ6 $¶âšV>!rÓlb‹ò3 «Æ@tc ©#Ф7¢ %" " " " "ˆ굘:´سØ»hÜ Hh$¶Û‘ î wqá aEqu`plÐì I/[ý¡‘îÕ©£E@D@D@D@D@ü—@½S»æÛDTi‰ÍzÔl ÕÀûƒ”sس8¸È:¤ôZ ¶ +úM Þ‰©Åo!á@‡ñ6 Tm•cÛƒk?­G½.¯­+ë:" " " " " uA Þˆ)ÆAÍyè~Ðnl] ´]“.€«?¶ÅgþRݵCW¨YõBL•?ß ¸ HéU³À\­}Õ€ìCÀл\=Clj€ˆ€ˆ€ˆ€ˆ€øz!¦(\˜UÏW\ëJJ€œ`ñ‡@l' ©+„…ØþŽ‹¢#üiš¨­" " " " "  ø½˜Ú¿Ø5tkÝ.Ô–T`ç! *ˆ ¢‚€¨8 °Øö§¨8š 4ŽZ6RÜÌ*X÷½T D@D@D@D@D@HÀïÅÔ†ïlV©ÎgÕí€®Ú ì: ´LÚ$‰ÑU·gçaÛñ,íS€f5m°n‰èêHàÖÁŸ {ãQe]|ÖìËÜP#(Îê|Îìt>[ó fn¿F®áJÇ·ÿ3Fµ½ ÉÈ.HÃÒ}ßã˵y£jÜ1ästi4O͇Ýk«¬óì.÷⌎·áãÕ÷aÎÎÿxåúuQIhp8ž=Ña xhÆPd­‹fÔù5‡¶¼ìó ~Ýú6¾^÷TµÛã/÷Qµ;èåß=kŸ¹ïü¥»—kVu" þJÀïÅÔ’7mÙóê*VŠ.}˶ù…@¿v@t¸{Sa_°lп•{äëè‘MqA÷GЭñ(…`ëÑ¥ø|í#8µÕ§@PH5ˆj†ñíoFJl;TWLÝ:ècd¦áßËÿ¯Òþuit*:7†Õ¦b{ÚrŸâ`5¦SÒPÜ5ô+¤åíÇômÿD‚p4w/~Û÷ƒWÚ뎘êÚx8ØžU©¿`DZ•^¹¾}%§w¸cÚ^‡{§öózÝöžÖî&\ØýQ|»þo˜²åM·¯U[ítÖ0WæxUuã¡¿¢Il#*Ór÷9»¤Ãïkò>zxä4´ˆ·½+¤¤´éù±ñð<|»þ•à¥Ó×TÚæï71TGµ¹cÚ^¤èFØý¼ùµ²b{ìU‰©IîÀ©­.C\xdoÃWëÇúCsÍéÖâ°â¾¾ør¬=8Ó|<¡ÃÿáÜ®”âÈͯ_ÓI8³ÓF€¦ç0Ö«o7_ó°¹–U¸Ð=¿ÛÃh•ÐÓ¸Õ-Ùû ¾ßðŠJ eäñÑsNêë/[ÞÂ7ëŸ6Ÿs~žÕé. ny¡qwä¢yÎÎÿ‚ǸSZ'ôÂ#¦`ÍÁéxcñ•':°ùÙ˜Ðá/H‰i‡¼¢,3î_¬}ÔüÛ•vÚÏÔ¬-øCç{Ù‹÷~c„ý¥=ŸÆ¨6×à½åÆÒ½ß#:,Þ,öeï0Ö!n~p~žÒüsÿìN_ƒ¯×?‰­Gsy޳Ÿçu{ü;(([Ó–áË5bÖær}Ž KÄKÖ‚m}læHwP:½¬ßŠÎõž)§áHî|¸ò—-Á–˜úÛ܉æ·'24Ï_‰ˆhÜýKOd1mîÓdþ<ðßf䪲~X|ù›wëÏÌçü º´çߌ…õí¥×”‰©¯×=iîéŠÅ•ûâŒunqù½øø÷ûpÛ Op0{™yª©ò­I;ÌØ²Ttó³ÿ}åoâ…ÝClx,Ùû>Y}_™§–­–ñÝ‘WœÅ{¾Â×ëž6bQEDÀ ø½˜"úeÿ° @ÿkw f­º5’½$â¦ÿ lÄ;‰·ªÝ^êjuMಞÏ`d›?–³nPˆ (™ù¶À»qíÿ„ º=bv|¹ƒ{JóóŒ{½zaüJD…%ÄÝZº Òõæ“ßï?¾È»—÷zÎÄ8%Ç´3‹•üâl,Ùû­;Ö"† T 8.\û5=¯,¼Ï+‡©21eÅy¬?4ÇÔ{a÷Çíë¾iÌ‚—b`XËK@W¬miË0wçG¦^îlsÎÒ<¾«YdrÆ…RE1E!sÿ👙Ó·½‡v ú›ã¬q·Æ#qÛàO»x;ÓW™Ø+W­ήAQÒ;e<º'€fgcùþÿá÷ÓÍ5¸¸vßÄã¸à|jìĆ7ÄÔ­ï"$8̈Ý#9»ñèÌáFÈXbŠ®Oóv}lƒÍâºà» Ïbòæ×Íõ(ƹìÛt"z¥Œ?)fêÆþ³LìÍÎc«M\­NŒìÂcHˆLÁ“cæ æ/[ÞF«ÄžèÛd"¦o_¬yÄ5þŸñ;9…éeñ`{3ÖcgújÓÎ_ÎcΛMGšñàøqan¹k¹rŸYsð‡/à§M¯”;…ý~dä4#çïþ)1íqz‡›Í5)6]i'ç㱸qÑ8¦56Yd„Ҿ̘±ý_.‰).¤)l)þÙWº¼†‡âñY£Íœs6Ç)<Ÿ·%¥%f y.E]VAšl-Élorl;Ü1¥+rݰR;»Îér?&vü‹™o¿íûQaqÑúJsÏP¹R*Š)Š£çÇ­DhHîœÒµÌªîŽ˜¢ ¹cÈæ÷á¹yg9S®ÜïÃZ]‚«z¿lú:w×ÇÐìæ÷sæ&<6ËÊ{‹¢‹ó¼¢˜ Ã[“vš†YÛ°lÿæ^MŠjaÄ!E"ëã 7B~Üô"šÆv7–89ŸUD@ü—@½SÄo ª^Waµ F2s¥[1=¼7økvÛR¦·Kö^ªÉÿ üià¿Ìbµª…'…R\DcÜ7µ¿Üù|häTÐõå©9ã º rµùèb¼ºð"³·/}›ž? xÏ|do ²Žá‚:9¦­9ÇƯ6BêÅW”««21E ëà"“‹ «oÏÍ;³ÌÂ8¨;‡|Y&~*ÁÊç¯ï÷ŽzÿZ~‹lÁA¡xqü*“°€Aã­{áöÁŸ›…-å_ý=’ÇâÅùç>Ί³kPT°0ù-:Õ‰ïá•▋»VÝcê£EB„;ò»–˜úϪ;1×ghßp þ:ì{ìÉX‡'gŸV®ŽPÐêòì¸eØ—±ÏÌ=Ãß1i°›ß¬ʈ'ë²³v|Æ :»ßoüº6¿/½+R'—Y¯)¢)‚í‹£üyçL›µøáCͼ¦ˆ>¿ÛCF(Q0]Ñû ou¹qOä½ËrÛÏÌoõSºÉ:åΤձ"àcê˜"וÇvÏšö­YÒ¹ÀÂMÀé½½wfl´jä½:U“ÿ À¡Ðáâƒ‹Š…®D¯MÜh¬Üf±vJ¹€a6 Ý£hÑ¡ߪÔ_Oª§WÊ8ÜrʇÆròÔœñå¾§UäíI;ÂäBõi§”û®21Ťtj•Ð ¡1 7bçÕE—-4­gkWÙV¶|hÄT´LèŽ'gÅžŒõæô{OýÑX¨¸àŒO0‹+.š¸xbá®4w§­]dg³ÆÙ5,‹Œ'bÊr³¢Ë­",–µà«uO`êÖ¿—‰)ºîJÿ½ÌÓ~.X}q$¦¸€äBÒQ±,:Öü{kÉÛœ£Â…ößÏÜS©˜¢x¸}ð§f¬¹«OÁºtïwn'⸪÷KƕՑاµö‘QÓ‘ŒÂâ‹)Ëͯ²kPÄz*¦ÊÜüv~„VÛv†h9ä8Ñ­rÍÁebê£Õ÷`îÎõ‘âˆV8ûâHLQ ¼0n¥ICßÔ~Æõ3>¢±çÔ¬Íf.×õAÃf¹+Ѻó—A!$(¯-ºÔXøÅcø‰.À#RÊ\(ùZ˜&›YÝ\-Œ d| #7?ö¥y\l9ºÄ¸ÙÑñþ“M†Áÿû¹qKsÖNKL9²¶²–e‰5èØ#yŒaa‰)ŠÙW&¬Caq>îúµ§±ˆ l~F·¹Æ¸kòÞr6ÇÙnº@ÍÝgÄ)ïÆéÐúôÂüsLÿì‹%vkÊÍÏ[bŠ LTB7ߊÖqgbÊ>EŹâ 1emþXí¢Û$Ý'ݵLU%¦,!΄(LíΠ±â’"·i¹or¼Û6è‹âÒbŸ¦""àû꥘Zú6ФÐÒ–\ …9Àœ§€ü  A{ A[ ±íOdbÕƒT äe¹GŒ='þdbº#€žm<GS¬‡…Ý[úþ¤Q k—ÅÇÃFË„fqEw>„¹p}rÎ8“}ÊJ@Á]_& Öêb“ˆàÝßn4ÉX,ËTuÅ”å¶B«Ö¬ï›ÔçL@aÅÒØS±½3´@ñŒ[nBŒÇiÕÂd ¤ë³è1›Ýw˜üà™Ó–ë ßåÂlfL°°bÿÏ`L c†X¬‹÷|mâ¶(2i…h“Ø÷ ÿÉp¡õ¦SÒ`“xmþô÷Ëb(<±L9»†ÅÂËöO™è°D³p ‹3ïq¢µ¢š‹/Æ–Ñ…Ž|¹[ÏÝpºÛ/ج¶TöÒ^ËÅ‘òÖœ‰!-.4Yû^Zx6Yd‚èŸ3ψßÉ[^G‹øî&@ß>–‹×°Æ–nMœ§ÛÜ•ga’ f„cÌ38²dÃñqçÆV" G©æ­ä̲Ǿ0qÇYï6BÇÞmµªv:Sœï7 ø‡™[ì'Ý“†àHÎ.ÐEŒ…1=ÌJÉœ—ì'EֳǘX–ªæ¸•Hƒ®‚ÌÈ„`“ТQt+ðÞå‚ݾP 0©…; (\¹ÍO,S„tK¤H¡U×ÞSŽR£OÛöOD†Æ8Ý<á}uq'UЉ\“Å9j‰)Z”8f,¶´ÊÑbÌÂøO _ÆLU%¦’cÚàÑQ³ŒÐÿyó«f~r\7^h,óVaLÚ›“¶›ß³Û§t©Ý‡®&"P-õNLåæ< Œý›-EÆn`å‡@R' Õ0 c¹HÛn‹¯*)B#Ð äøßtåÎK·‰/~oû“ÐÒö'¶)ÛÄö7ÞµnoËä§"ŽÐ}‰‰ h•  3–}¹î±276+5ú©­/GBDcÎÙmv?/bOÅëá{“¸ðà{aèv4{çÊÌöíæB.=tSâN+Ó`¼ú^#d.ëù¬q£Y¶ïGü¸é%Ü1øsÄG&ãE——Y.¸Èà"”Öfù£˜ Îr£rĈ.iÌn¾â¢÷¬ÎwšŒneK÷}oÖ=e¸âöãÊ,¬êÖùžˆ)ÖÁÔèÌxHñ\RRdçt³*Xî‹LHqn—ûÍ‚›™Ä˜è¡b‚‘‹ã{ÍxX…I8·˜Ñ‹~Š5¾³ˆ‚Ä*\LÒBŘ òdbZDíßáÃc˜^š‹ÆÂ’l84×$Ê`a7ö£Gòh#¹@ÑÏ:8&®ËâJ¡Â¸)ûÂy6±ãmf#ó3·(ÓˆAºY©äy|Uít&¦(¯èõú7;ÓÄ/1) Ý·¸ðµo„…DšÌšägâ§8÷*&6©lŽÛæï$Lìx«I¥¥Å&nвbÖL&d` wS£»rÕ„˜"?Ë:e½Öýõ†˜r4‡¸™”[”îTLñ7•"¯OÓ‰8š³Ç¸Sß4àŸe‰\,럣kÐJºlßONÅÏeŒ"ïSë>Z™:_¯{ÊüÆYEbÊÕ_'¾C Þ‰©µ6/ t¿8² XúÐýÂVªŠè‹ Æ&åÛþðßA¡'TpˆóÁ²U‡&6 U‚ ÙKJ½G€=G¢à”@D¨ók鍯oÐråÈE®:õÕÕ9t¤µŒâÅŠ›©«¶Ôõu-K;ï.«ë6ûâõ)¦¸ÁCQÃ쉖Ød¢ºþ©ˆ€ˆ@Uꕘ¢;ßôG6VCïâkÁuî`:p ØuHIÆÑá¶?Q6>«0¥:³¦$ØÄUoà;èžD« wÿ{ {wÒ‘{»MžÖG‹ûåȽÔÓºýé|Z£1ÕX¯øþ)ZŠUªGÀzÿÓÑ3Ù _.ÍÄÿXv“± «ˆ€ˆ@Àˆ©Ý €Ô•6÷¾ôÝÀÀ›è¤ÚÅ%ÀÞ£@Z¶Íu/;È+´½;ªS3›¨š³èÞBYûjwdt5<tß;µÕå‰4)ï™U¬b£B+_Tžhâ”üYzÂÞVêmOêÒ¹0/(ÞúJ“€…q©t“¶w‡#¨Œ@½²LM{(Ê’:}®®—÷º2µ ‹Mû€ÝG€>m€#™@hй™+gë_$PoÄ㣼´k‹—òÅBµbPTl³J)á„/Ž’Ú$" " " " ®¨7bŠñRL]ά}¾^6wm—eÊ×GJíÊ Ô1¥AðÖ‹y™ûÝßnðÙ†3µ;S‚3È¿ (©Y[ñüü?¸ÕÞÊ^.ìV%µp°¿´Ó›(z$Å_ý×¼|˜ïCS9AÀJWÎ÷—ýgÕ]~ÆzÑ5ßgÆ%õ±œˆ•{Û¤UW¨{>+¦vÍvÌrÙ^ºk_⚣µ}Â÷H1ý9ß/ »ˆMŠóeïVŸ 9<ˆnl³bu;ßµAØ’ dåÙ’H0CŸ}Y»Ûö?G/Ü]¶Í–*iÓYŽfÛùE¶TèýÛ•¯‹iÖ™¼"7((.ÿ]BTùk°nÖSUiÝhÞе>꨺!ððÈiæ‘,|1êÑܽømßæ§ŹuÓ¨¾*߇4¬Õ¥Ø—¹|ɪ/–ˆh¼púj„…aò–7Ìû•BƒÃðË–·Ýj.ßkÄë®>0ÛÓ–»unm\—í¼¨ÇÛöú²î2åùžôµø~ãó†Ù¥=ŸÆ¨6¶wVU,%¥ÅøóÿZ¾ŽR”šëò…ª|—ï)Gåá“Í»²žŸ¶ùÚþ^d½éù±ñð<|»þsÜK§¯©tHøÒi¾Œ• 2ÎîòW l~®y1kjæf|·á¹²÷vU§µ9¬kyKL…‡áåÓ×à˵›—s×TáûÒž»È¼,š+­w7Yý°®›]p {2lskëÑ¥^mNÛýpß©ÿÃÃ3†–½ ÙÝ 0óæ]C¿FǤÁ_cÀ,ŽøMb;(‹£»pu¼ÔŸSËþì[Vu;Ÿt:Ó'Åx)«P 1ºC匛UuœumûÏÓsløXºµÚ§œ¨•™û–o·ý¿_ÛòÂeõN`çaÛw#ºÚDÕ’-¶êV¡ØéÕÚö?¦W_¼¥ê[×°¯»ª3ÂCÓ{;£ ïë’€µ€ãÎxaq>:% FTXóÂg–ÊÞ 7¢õU¸¼×³ÐûŪ=t:Q¼JÀçÄTa.0åöªûXÑ2µð  ÛvŽ»bŠç ¾hÜسXñþ‰k~ÂfåbâˆÇãœ:5=q̦ý€} ”Ög‡Ê IDATýw<‡ç² ídK:±r‡-«ŸUø¿+)f­³¥S¯ªŒìÄGÙÚcÕ]ÕññÑÀÈ®^3ªÌˬÜßæNÄÎc«Ð,®359…¸cJsµ‡FLE‹„nxhúP\Ñë9³kÉpk”õIo7Öž¸ˆF8œ½³w~ˆYÛ?(\\Ô1Uv«„ž&ô’½ßW˜¢’Bs îìžÓõ~ hzb˜ÝÛÏ×¾©”Ðè{ g'^¡°·B9SÖgÖ¹t ä }ùN*–ÞW­†ÕŽ˜*(2sOˆ3KLÑ…pæñg=Ó¦wkÄF–ïm_aû¬¢P«lŠ°Žˆ°š›@ªÙspÁA¡xûÌæE«·üÔÆ,Ž®ï÷6?Û¸Åņ'aÍÁ û d\¸Œkÿ'\Ðí³ƒNrJóóŒë µœ™‚'ÇÌ7»¨tSk•Ø}›LÄôíïá‹5˜NÜØÿ]³#úëÖ·H9£ãmfqL—™ìÂcÙæ¸¬ç3X¸û ã>Å}.(tìþ܈­çÇ-7‹þÉ›_GHp(¸S›UfÜQxm.T(è¢rz‡[L[íc¦Îér¿Y„ó=/¿íûQaq`1›,Ü}æ.4ÛÀ?#[_e䬘…œ³Â…ñSc¬©[ß5)àxÍGg7ârPóóÛgvºË0çq,tûZ{p¦³K˜ï›Çw5¢’ŒÈª¢˜rÖWŽÿý#&›:fíx߸|Žo3h½yzÎx#’û;gî6 >ºŒrìv¦¯ÆŠý?×¶â„ó>âÜâ=ûø¬ÑÆ-Ò^L}½þ)<8| (.Ÿ™7 ‡²wÉMÞG߬Å¥…8¯ëÃØ›¹/Î?×4½SÒs ΊÉÍGlV¼E{¾Ý(½Y^¿‘aq¸mr'ã.mGcE7Ì3:ÞŽÉ›ßÀwž‡ÄÍŠ%{¿Å…ÝG€û¦ (s|aüJD…%˜—#ó7™.‚ìƒå=À±çïã+¿Yÿ2óñMÁíJá&Zׯ#Œ‹÷o5n­•‰)ÖÇw­%ǶÃSº+¨Šˆ@ÝH1EÜ›þl<þbs{—>Gn~Þ´LñÚöõYbŠqRó6Ø&cœèÎWUqdõª»i¤+{BÀ~q¸/cƒ-\èКcí:^Òã)Œn{-èïÿÄì1e– ëº|ÐÇE4Æ}Sû›ï¸‹üÐÈ©fáýÔœq8»Ë½FqaÅ…5B—õzùE9f1`í¨óúÜÙe¡Uà¶ÁŸš…ãlÍ´d5ïbbh颠ႆnUtâg\ pÑÏEŸ½;Le (¬v.Þû þ½üÿŒ@ãŽ0wïoù¹­˜´……âž_{›kX ŽOÐéPXAêsw}ŒVÝcާ»|o/½«R1ŸÑÅ‹15kÍ2€ê–Ê;8ëk—FÃpûàÏÍîø«‹.6—ç"0)º¾Y÷”ggãN1µbÿÏÆêöܸ˜¶í],Þó ñ Þ_q›Yˆ[¥ºí¤µñ¯Ã~0ãþäìÓLu´¤ÒMïÝßnÄòý',‘•1´ÆÞŒõ8˜½Ýˆfq]°?sžš3¾ÌÚÂó]SÓ¶ýÃX.9óvß4Þ6k çÔ##§!=ïPW«]VÝÏ3KÎÞ“0T&¦Æ´½ÎXÉ•|{1UU;«šow ù] ÇG«ïÁÜ›¾þuØ÷ƺD^É1mСá sßmK[«]´LNÙò¦¹w_™°Þp¥ÅV¢SšŸ‹)c±p·mÎY}äFIƒÈfÆýøÕE—áÅÂã¯ë÷–ú_­µí€žÑévó;óÌÜIfc‡å¬ÎwãÌNwÖ¨›EÞk7Kà#3‡—CWq¬èJG+VÓØŽÆNñBÁM ûFëôŸþËl6=7ïÌ2Ëü##§› ’ÍGãÕ…•Yôí/fYS=‰™b}VŒ`Ubêæ w“ñøÛœ f“DED îøœ˜ªÌͯª¤îZ¦ˆ»21åh(jCLå¿ÚýÆD‘át½¢"€1@³'Zg/¦(È*–Äh[|—Šï°z·ZËÕw~»®lW“V'Z!¸øúrícå:E×&n4 ¸KÉÂÝð·&í4 Â['wÄŸ¼gÜ~ÞZòG“¡báŽèíƒ?s‹–¨VÞnvÂoü)h9Ë.H3‹ ºpq1bk‘Gá´'c=ÖžƒÛÞCZÞþru;St/œ±ý_朧Ç.D£èÖ¸õçÆREQÀÝaî³ jq>®íû†YÔ¹"¦,ñe ËJÄX Æ\°Ô–˜ª¬¯C[]Šh ïW,®Œ;ÅÝØø‚IžÀ¿W쟌GGÍ8iqëLLUÖNŠP.ªimxÅ­¦™Wõ~ɸœº+¦ìûÈùõö’«Í¼¶/ÎÄTEN–õÁú|`ósp}¿·ñܼ³ŒÐpT·ýg´Þ~µöñr–”ÊÄ7<8f‹÷|¯ø‹Ãû©b² ë Ší¬ê—˺Ï,÷ÅŠs!"4v{Ý’G!6¬±¾Ò­ÏÊrGQ@q°+ýw<=çt‡—²úXXœ‡°H#ÞiaæÿYÛ3±£m¼+ËZÍÏ­8¢šŒ™¢+'Ý+¹ÕUL@aµ•‰⿵ïü]h•Ð dn~縉a¹ú=0bбW´”Ú÷ýîaß÷¼ÚSVlž}«š3úND æøœ˜bW·ü¬ÿ¦òN÷¸h;æÄ÷õAL±7ã©*ÔHN°}êJÌÔ˜E™Šo°z§¥…B Ó}™Ën‰©W߇9;ÿS®C–??­VwþbË È…Ó[“v˜¸†Û&w¶³¼”w™²*†îp~VÁU.»0Ýìø²ÐÒD;Z­Ú$ö6 ûE6E] ™RœuÒ½ýytæðmgbʾŸOY`³) £CãÍ¢‰nH÷Ohª£KÞµýÞt[L}¶æ!OÄÂØÆQ¨R°²Ô–˜ª¬¯ŒßàÏ‘€fû\wŠ)Η7¾dÄ3έLR-1UY;¹X¥˜µ·Æ0FˆíwWLÑM®ŸOŽ™gÜœ>ÄXí‹31Ek,-2Ù…G±:uª±,Z…™ÞèšF—Î×_~Òƒ}Ý´\Ð¥”1DÓáW&¦¸aÁ‹ŠçÐŒV7Z›íPTÖNg¿X–˜²âƒ¬¹`m¨œ×õ!œÞáfã~˘FºÓeÕS',×6K–£bõ‘¿!Ó­w¼ã?mzÅÎ# %Zxìú´\Gr÷–ÅMY.uµ!¦(Ž)’íKù‹5~kÚoæ7Ör¼øOh“Ø×¸ 3î‹‚˜¿aŽÄË8nŽŠå®YbŠq¢ƒ[\X.гy£ïE@j†€OŠ)võÐz[ZóÜ#­Uùé@–ÍKÔ /a1¶×1•SlÙ"`Å!§0bŠ`×ÄÔYýkfÒ¨Vï¨lqhKLÙïøÚÂÝ«Ÿqgâ*wRéjC—¾+‰1JÖbˆ®Nô‘q—c< N¼0n%² ÓpßÔ~Æ……ÁÔO©Y›M4‰)Æ"ÅÂÿ3‹©£™éŒ®ƒtû;š»ÏìbÓ%ɘÙì…ùç˜LZV©®˜b¶Ã·&ÙbOîþµ·±Y±®Z¦ÊÜüìVXÁëo,¾ÂÄ£±Ôµ˜¢ëÑ­ƒ>6™æè6Ér~·‡Ð¾Á@|òû}ÆòçlÜkCLµN軆~UæbÆv2u3ctª#¦óóÇ>/chËK IgbÊ>‰EÅ;•‹O.B+&)°Ž³¯›.sžcÜ¿*Z#*StueÜ`‚ŇI/˜óËZè;Š™r÷å„›ß_å‘ @èji¹õ2{³èYbàÒžè6W›XÆï6q³Kn~ëåïcT¹1tóO­Àb¼cÐh¹b‹e™z`ú #Ʀ4gœXU‚Ë•~¹æægsM–›Ÿ+DuŒÔ,ŸSŽºýÛßý67l ¿H<WT1õû§ÀŽã–]Ï:L°Õ[”¤ï²e´Jm¸ùÙ÷·°È- ‹lï¶Z·(:«ë(›³V,Ž\ÿjv*©öêð†˜²pGœ;ûÃZ]lbN¬ÅlRT <1fžY(LÞò:ZÄwwËíㆮêý2†µºÄ¼gÍÁ™ÒâB“ù聾˜ }&¨`†=în3Û\Œoÿç²/¯ÇXº1“ ” >ç;¥¸a"ÆYÐjf% `b &Ž`Yºï{oÁ?•YAè¶hÅ30ÈŸÂŽâˆÂÏU1Å…×Scæ#:,ÑìÚ3h1%´p—ÞŠíòDL1Û:,V º~Q1Xœ)´­˜©ÊúÊ.ç--hyEÙ˜Ðá³+þÄìÓLªogãîLL1žÊÓv2îæÙÓ~3cÀùR–€¢ºbŠBý‰ÑsL2“‡g +÷ž¨êŠ).–=Û𣻫£R±nnЊVâ'f-›•‰)ÖiÅ7r®îL_…¶ ú›¸­×_j\Ƽ)¦_ÆyOáÉû‘‰ 8§­{™ÖB ,öƒßSÐ1ã%ç:Sk3Å6Pp^ò^¦ÈbL&ã +fó³ÐX.ŒäIÑÁD-œŸi¹û1®ýM¶˜´§–¹gZ)ËSÇØ³è°—hŸ]‘V nØ 3wO¯IQF ¶³ë¶\‰Ú0ªº6a\ÿ˜ÊÖÜŒüƒ.‰)‹;­¿ÏEBDLÞüZ9«|eýb²Ÿá­¯0_óUüýáïãù»ÎßeûB¡ÏdJ@áîLÑñ"à}>+¦ìßÅn祫?ŠŽgSý8{üE¸®ˆ)&™° Ó¨ïš <ž=¯ïµ@‹A@æ~€ (2÷Íúýo´Átå3Ž¿«‘ïmÚˆ;žiÏ>5z‹†@‡¦'¾«,I„£U -ßcÅ÷Y±0Í9Ó¯ß ðEÂ,MmïªbÛTü€7Ä”•ýÔÖ—#!¢1çì6)-¡B*Ü©¦…ŠñtbÖ*¤[©””ÎÔéÌèÇE\t³âÌlÆ,W=’ùžŸDdæ6ÂuXiŽ)¶GÁ‡<ÓCs‡úÇ/–½Ç‡É$¸àqTîùµF·½Æ©˜¢8cÊe B.W¦NÆEÝŸ(—™ÐÙ,`jtö…û%%E¦}tWdv«x"¦,7*Gí°‚ä‰).ÆÙW&4`¼EwÉi% ë$‹³qw&¦(f™¨ÄÓvrñwEïŒU‚qtl+†ï,½Ö¸:+ކBW5Zd­R]1Å.ÆrÑbDÁ靖œY3¤Ì:ŸAZlXªSt%œÔév#p(0)ÞxX¼)¦(ŒÆµûF77©Ñ?\y»¹¹yÂ8¶V‰½°ëØjó®Ë{=gæÑŸ7 eE‹7ï÷¨Ð8ĉM,ËsE1e/žèJÇø$Š^“½Ñ0sÑúüåºÇË܂Ɋ®¿—÷zýšžðh³©ÂØ:ÞsVñ†˜²¬ËLEnÿrìªÆÊº>_=pYÏgM²‘eû~Ä›^ƒ?G|d2ÞXt¹aâŠeŠ‚ˆ–Ïv lñœ¼OŸž;Á¥l{´DÓMÐQ±ÏºÊï)H_ž°N©Ñý°è{¨%>'¦ s€)'ž›1Ä$£‚§üv&¦œ±ùßÜf©¢ÅÊ*#˜ž½¤˜¹ ^u‹õž)žïHLÑ µq?‘[þ yåß=5¡ÌÛ^ÝSVèþÇ´ê¡Á@Èñ¿Æ]›W·Õ:O|-K\ôÍÙcŽLkÎ}¼“ﵺ~·ˆ"Šiï­X+;"-}t—Sñ.Š (¼[»ÖfYÀ¸‰Ä÷GÕçbY õÒÞú<Êê›?ð91UQÐ8‚9è/@rßð½QÓ¿^¦õp ×å㨪û´è©+€¥¶D^¦Œ{ˆ<žð/Úe‚ˆêgbêX60÷xjôʮѣ%Ð6ùÄ·K¶Ê'ºrxªb§ª;j:Ï X×tY{p† ¬çNíc³FUËà‹ý¨/m¢uŒñ4´¢1#ce˜˜€Éžž3Á¸#ªx—€ÄÔÉ'¦8+þ 䦕¦Fj4hksÁ«X˜¬bÏ¢®y­UöÇ[u5ê¤ô*_S¦Þ´uòuèÒw(ÃÇÄ—ïºZ˜Ö|@{ ò¸%-¯øm«ÍâD÷<ºéÑêµ|À÷M•kk¨íE½I±'§:§5‹î~<‡u—œÜ"ë=V®¶Ulj€¯`è‹{<Ž^)ãÍû§öfn0®†Öûo|½ýõ±} Ö¿¸ûhÛ€ÉK Œ[-…•ê×GµÙ'‰)Ç´­ä2V¢Ú“Úº–õ‚a&ja²º'à“bÊX¹þy£^Õ!" " " " " $ 1¥y " " " " " Õ PoÅTÆ`öq ¸GU >nÂØ­°( ,à¿£“l§3©ÛÕtâsþŸ´ŠŸ¹uQ," " " " "P'ê­˜"Íí3€£[NÄQyBØJÕÎ÷OYâ(¾…M8Yeã¶1©ÿm¥cç¹é»„–å…ÓÒ·–Cmu°. .KXeì¶½¬˜ÿ/Êâ[ž¸.?£hãñü›ßYdz¾èØ:žuX¢Î“þë\ò굘òæ`S¬Þ0iÅî…@“>@êJ ûE¶«P`1yEh”c1Åó)p¬—Órµ{Á ÁEñÕ´°m:Ðçj`å'ë·¾£øÚ6Ív …Ò¦mÿ¦0kwš-yÅÛwd£MÀñº*" " " " " Þ% 1åO ŠK¤P°T´>QÙlU-‡Ø,Qö–)^ÆRü·#1e_'ÅU£Îåg]ײhñ´z ½ë„%Œçµke,ö/+v¡«:DD@D@D@D@DÀES.€¢U‰Ö(Z|‰) œ7ÛŽYû…ÍBdû?Eϧ»ÿm‰*ž“Ð ˆjhWü7­I´v9SlIm.}tç+ʵµ…×µÜ íÿ¦ø£°Rð>‰)™ÒâdåâiN³Üÿx }Ò G'ZV'«•µÉ²¤Q”ÕD›vJˆ€ˆ€ˆ€ˆ€ˆ@˜ €AVE@D@D@D@D@¼O@bÊûLU£ˆ€ˆ€ˆ€ˆ€ˆ@˜ €AVE@D@D@D@D@¼O@bÊûLU£ˆ€ˆ€ˆ€ˆ€ˆ@˜ €AVE@D@D@D@D@¼O@bÊûLU£ˆ€ˆ€ˆ€ˆ€ˆ@0bêÆG•ºÒW¾6É¥+TæëçYís·îoaq÷===êùhÿ; ùàûó¡²1òqåóbªÿþàŸŠeÙ²eàŸŠEÇÛˆˆƒæƒæƒýo„æƒæƒæƒž§z>êùhÿ; ùàûó¡²1’˜r‘€v’µ“¬dí$kçÐ÷wµÓ+O =¯õ¼ÖóZÏko>¯¹Jï4‰)E“£Ã¬f_7ïyÐE*" " " " "P€åM"1åÁÔðˆtQ§Š€ˆ€ˆ€ˆ€ˆ€HLyHLyŸ©j_'à/j>€BbÊ×§¹Ú'" " " " K@b*pÇ^=ð€€Ä”ðtªˆ€ˆ€ˆ€ˆ€ˆ@àði1å/¾’;}Ôs\>-¦wXÔs_' 1åë#¤ö‰€ˆ€ˆ€ˆ€ˆ@€ð5‰©›˜ê®ˆ€ˆ€ˆ€ˆ€ø:Éê-1åë3Ií# 1`®îŠ€ˆ€ˆ€ˆ€ˆ€x‡€Ä”8ú‹¯¤ºª*D@D@D@D@D@Ž˜òÂTðˆ^說˜òÞ˜òKÕ$" " " " þBÀ_<Ô|:…Ä”¿LwµSD@D@D@D@€ÄTà¹z," " " " "àS^€¨*D@D@D@D@D@€O‹)ñ• ¼i£‹€ˆ€ˆ€ˆ€ˆ€ø´˜Òðˆ€ˆ€ˆ€ˆ€ˆ€ˆ€¯˜òÕ‘Q»D@D@D@D@D @ ø‹‡šÄT€NPu[D@D@D@D@|•€¿dõ–˜òÕ¤v‰€ˆ€ˆ€ˆ€ˆ@€˜ ÐW·E@D@D@D@D@<# 1å?s¶¿øJz¡«ªBD@D@D@D@Dà8‰)/Lè…®ª ‰)ï͉)ï±TM" " " " "à/üÅCͧPHLùËtW;E@D@D@D@D ðHLÞ˜«Ç" " " " " ^ 1刪BD@D@D@D@D ðø´˜ò_ÉÀ›6걈€ˆ€ˆ€ˆ€ˆ€O‹) ˆ€ˆ€ˆ€ˆ€ˆ€ø*‰)_µKD@D@D@D@”€¿x¨ILèU·E@D@D@D@DÀW øKVo‰)_Aj—ˆ€ˆ€ˆ€ˆ€„Û¼' IDAT(‰©xu[D@D@D@D@DÀ3Sžñ3gû‹¯¤ºª*D@D@D@D@D@Ž˜òÂTðˆ^說˜òÞ˜òKÕ$" " " " þBÀ_<Ô|:…Ä”¿LwµSD@D@D@D@€ÄTà¹z," " " " "àS^€¨*D@D@D@D@D@€O‹)ñ• ¼i£‹€ˆ€ˆ€ˆ€ˆ€ø´˜Òðˆ€ˆ€ˆ€ˆ€ˆ€ˆ€¯˜òÕ‘Q»D@D@D@D@D @ ø‹‡šÄT€NPu[D@D@D@D@|•€¿dõ–˜òÕ¤v‰€ˆ€ˆ€ˆ€ˆ@€˜ ÐW·E@D@D@D@D@<# 1å?s¶¿øJz¡«ªBD@D@D@D@Dà8‰)/Lè…®ª ‰)ï͉)ï±TM" " " " "à/üÅCͧPHLùËtW;E@D@D@D@D ðHLÞ˜«Ç" " " " " ^ 1刪BD@D@D@D@D ðø´˜ò_ÉÀ›6걈€ˆ€ˆ€ˆ€ˆ€O‹) ˆ€ˆ€ˆ€ˆ€ˆ€ø*‰)_µKD@D@D@D@”€¿x¨ILùà ÆÐ¡CÑ¡C”––bÓ¦MX´h‘ù·³rñÅ#22YYYøúë¯Ë>jÔ(´lÙQQQøàƒPPP଺ÿþÜsÏÅ·ß~[éuÎ?ÿ|¬^½›7ov«-mÚ´ÁàÁƒñÙgŸ¹u^uîÒ¥ 8nëÖ­s»ŠFá¼óÎÃûï¿ÂÂB·Ï× " "PSô<:A¶¾?úöí‹îÝ»›gÙž={0wî\=“jêÆR½.ð—¬ÞS. gí4`À´mÛ¿üò Š‹‹qúé§cëÖ­Xµj•K iÒ¤ † v’˜²N¾á†ðá‡Ö¹˜ ÇE]„>ú¨Ò~5lØ999ÈËËs©ïÖAˆÅ‘#GÜ:¯º2ééén‰©´hу Bbb¢ÄTuáë<# çÑ ´õùyÔªU+³nøþûïÍÚà´ÓN3ÏÏ¥K—ÖØÜRÅ"àŒ€Ä”3Bú¾R—]v–,Y‚-[¶˜cøNq°ÿ~«øøoЬŋ—«ËÛbjüøñ8vì’’’ŒUëðáÃfÇŠ–²ªÚÃÝ­«¯¾ß|ó h£`رcfÍš…¸¸8Ð*Å~YB‰?Ú6l0}á¼k×® àš3gN9ËThh¨a@!ÂëÓjE^,<žÖ9~΂½eªG ¶;&&%%%˜>}:rss͹´.õîÝÛìÊ¥¥¥aÆŒe‚“ý gŠÜøøx#šh1cáˆçRøò¯ûùçŸ;áì™°í²L9Å¥D@ꀀžGñÆE« ÇäçŸ6V9ëÿŒõÊÌÌ4ÿ—˜òæ] ºD@|€žGåGÁ‘˜ªÏ£~ýú™Òï¾û®lÃÐæ£ÚxüEøtÌ”¿@ôæôfÍu×]‡¯¾ú G=©jºÙ1±…-<ü{þüùå,75!¦öîÝ[fu¡ÐHHHÀìÙ³Û_Uí¡‹ÖZ±*–êŠ)Zî˜\ƒ1J••Ê,SM›6Å´iÓÌiÉÉÉ3fŒ±FÑB5pà@4oÞÜp¥å‹¸öbŠ–ŒŒ sî•W^i,uÖÿ%¦¼y¨._  ç‘s1UßžG\wQHqÓÑr÷…¹¨6&ñP“˜òÁùɤ L6±qãFÓ:ZHè¿Ì˜#F×6Zf¸è§›ãŒì³ÝÕ„˜¢E†®},O,´L9kÅ­R–¶=îêŠ)îÒÅnx,>,LTa•ÊÄTëÖ­…‰…qg|pÐÂÔ±cG0“ݳÅz%¦|ðQ“D@j€žG'PWf™ª/Ï#>ùŒœSœ[ñT®LÅL¹BILj€Ô6=ªSõåyD¯ zXÐ+ÆÝì¹µ='u=ð5S¾6"ÇÛÃE¿õî"Z¨¬÷LÑê4räHócGQEW7ú7ÿúë¯eI(¸˜gRþÍ8¢O?ýEEEe=¥8b¼?cÆ:ºð9SŒß¢H£b Ô¼yóŒeÌY{ªS¼&EHûöíM;­~ÒÇö³0ŽÉÊ’ÇØ0Zç£ÅLx4ÿÒ=oýúõeV³áǃqQüÜ>S zð:tããw[TV6?º+2à–… ((Nù`¡hdýÎÄ…-g=©ÜÙ«Ê ‘ױƘÿæXY0ÆpU/ç£ÓUͨÇô<ªÿÏ#n.¶k×®Ü{¥\Õ{ ëñ”W×DÀ->-¦üÅWÒ-â~x0ÅÝô¬´å~ØÓdZû(zhÑRð?zùߘ©Å"Pß ø´˜ªïðý¥õéáEë­q*" " þG@Ï#ÿ3µXê;‰©ú>Â^èŸ^^€¨*D@D@<& ç‘ÇUø ñP“˜ò›)¥†Š€ˆ€ˆ€ˆ€ˆ@`ð—W$ILÆ|T/E@D@D@D@DÀoHLùÍP©¡" " " " " ¾D@bÊ £á/¾’^說8N@bÊ SÁ_ z¡«ªBD@D@D@D@D@bÊ{s@bÊ{,U“ˆ€ˆ€ˆ€ˆ€ø ñPóéSþ2ÝÕN<S7æê±ˆ€ˆ€ˆ€ˆ€ˆ€HLy¢ª<>-¦üÁW2§Õ²À›5ê±0è]ý¸÷꺯Ð3É×GHíïÐ3É»<«S›O‹©êt¨¶Ïáƒ+§µUms×õD ®4š{c]]Z×§ÿ‡Óct€ˆ@ý ½³?$¦ê~,%¦<‰)êtð3S~6`Ö\‰©pu7  Ôw1åjœ€SÞ†SÔé"àg$¦ülÀ¬¹S6àên@¨ïbÊ_²zKLyxJLyP§‹€Ÿ˜ò³ °æJLØ€«»M@bÊ7†_bÊÃq˜ò N?# 1åg`Í•˜ °Wwš€Ä”o ¿O‹)𕔘ò‰¬Vˆ@m˜ª-ÒºNuHLU‡šÎÿ$ 1åãæÓbÊ|%%¦|c"«"P[$¦j‹´®SSÕ¡¦sDÀ? HLùƸILy8Sî×:hWvâ—›20gOv¹Š^Õ¡ÁAæ³ìÂÜ7÷€ûò3\é«4SMpƒ€Ä”°th­˜r¹+¿Óz&¹ÏUgÔ<ú.¦üÁC£,1åá\—˜r`óØ0´ŽCÏFèÑ(ŽÄÔ ¦Q Â¥]üZL¹ÒW÷ ÖÝ7wø‰aͰ7w5>ÜqmÝ5¤¯,1U‡ðui§$¦œ":éW~§õLrŸkMžq]ÛOÙ©ìÙEG±-{~M}ù%å7gk²u]w}SuÍ×ÕëKL¹Jª’ã$¦ªðŒ¶q˜Ø6Ö¡˜²j}cLS¿SV?\ékõIÖΙÉp}»ÏPX’‹Ð༾yø ´"1h#î_ý•˜ªþx¹ò;­gRõùzóLKLmÌœÜât´„„°fXzôSL=ð’7/åÓuILùÆðHLy8(¦†6‹Æi­bÐ 2GòŠ1ugïÏ-#Ù,6çwL@«ø0•”bõ¡<|µ)…%¥åh×Ôƒ«cƒpÜÚ7 “·gat«sý}Y…àõ§æâ‹é¦Ü<·CÚ&„#¿¸;2 ðõæ É-FThžÑ»2 ñËŽ,œ×!1aÁXv ŸoL‡Õ“>#1±m’£C^P‚µ‡óðÃÖLSŸ}©¬¯AAÀ„6±Ò4±áÁæÚs÷æ`îžì²k°}—wM@ÃȬ8˜‡cùÅß:¬=†GóñÌðÈ)ÂS‹™Kžß1£ZÆà?ëŽaiªm\:7ˆÀ¤v±hfÚ¶d.¾ßš CRåÝ0´ÑµÕøfó°ØðRüoÿX}ìï ÿ;]bÊÿÆ,ZˆbJϤÀ{&YbêýíWaÞ:´‹ŠKZ¾Ž]9ËñÑÎæ–—˜ò¡öi1å¾’&¦z6ŠÄ½˜ÅûÂ}9Ø$ʈ’÷~OêCy`”Ó£C“Ñ "_mJG»Äp H‰ÂOÛ21eG–KÃþ êì¶O Çíý’°öH>ÒòŠ1¬Y4íÏATh0z5ŽÄ=sRÍ%’ŒØ°`Lß•eâ³(@ŽæãÉÅ6Qòê¨&È*,Á¡œ"#bø=ÍßW5u·Š ÃÝ!³ ³vg£MBz5ŠÄo©¹øpÝ1—ú:¦U Îí…Xy(R" ÏO7¤cÁ¾Pl±I‘!†7ÿß»q¤é˿פasZS1ÅúîØ‡s‹ŒÀljǃãâj¹ºÍhÑïl=éø36gÎÆW{îvõôzsœÄT½ÊzÙ‘@Sz&æ3É^L¥æmÀà¤+1:ù/XrôL;ðr½¼·uJbÊ7†Ú§Å”o ªº&¦î蟄v áxeÙlK/0–ޱ-c°#£³÷d#"$}’#‘WTjÄò÷Òëæãí•å]ÂjÊ2e‰)Z r‹JñÇî‰xwuš±Q¸<²à º%Eà’Î F°P¸°ÜЫCÿ\†5GòðÚè¦æó'¡Ü"Œmƒs:Ä— ë»'¢J>\{ ¿ÈóeüíÔD‡›„9E%e“§²¾>}j âƒñÈüƒÆâÔ"6 ÷žÒ{² ñÜ’ÃÆjvgÿ$ìÍ*ijK›úø=ûך4lqAL1îŒ;·ï¯IÃï‡óM·ôiˆæqa¸wNªKÖ©˜Ð†¸µã/Ø–µŸï¾×µý Ã[á•McQTZà·ª×Ú(1å5”ª¨š˜Ò3)0ŸIc¦x+­ËøÿÛ÷X@=“$¦jàG´UJLUšý)&¦žž‚è°`Ü3;y\Ù,.´¶pñž‚`á!AFxQ€Ù—šS”3×õh€W—1ÂîÂNñF oÑ-cŒû!E ËYíãŒûÜ·[2Œ¥‰bŠ‚èÞ9¶L‚§4‰Â•Ý1}W6¾Û’Q&j(r(vX(|(€ž_z»3mŸ±8êkdh^ѤÜ5B‚ƒŒEŒ®xwÏN5V=ŠÁ%©¹øïqk×e]0¤Y´ËbÊj“£©þ肃8šWìô.èx6&5}Ó¼‚ÅG?Ƙä[18é*|¾û6lÍšïôüút€ÄT}Íú×—@Sz&æ3ÉSë3¦"§8Ílµ¿àû½eŽòõï·ïQ}Sþà¡Æñ˜òð> 41Å8"ÆÑUŽÖ§Š…Ÿ?÷nˆ=™…øh}:"‚ÍÿëBLÑrÃ⪘bºv¦Èýf³M`QLÑ…ïy61E—Æ«º%bÆ®l#¸, Ñ3Ka_V‘9æ®þIh“Žç–6 ªSV\VNa î=žúî†LÁK¶dl]Ó^LY–&{Ë]Ÿ83uQç o]3õ—¾IèÔ ÜÄzÑâe_Øî‚JD±ýq¶xãFœ4Þ+Ž}ƒÉûÿæá]ä_§KLù×xZkML陘ϤŠ1S¼ÏÿØæ}4êib¦;¥¾‹)x߬Ĕî´@Sw h„6ñaÆÒ³õXR¢CqY×ìÊ(4É‹3©]œIÚð¿m™è›‰k{4Àöô¼\Á25¾M,ÎjWÎ:TqH^ÝùÅ'¬C® ™åæW•˜êÔ0ܸùÍß—ƒÏŽ»ùÝÔ«!z4ŠÀ;«ŽbÃÑ|§bÊróc"&¦9îæŒ{ç–›•õÕró{xþA¤ç£e\þ:°‘‰¡zñ·Ã°’iP˜Q ±Ü;°‘q¯dÿè¶GñEK–å²w÷€F&õ¼•€âÂN Ñ"ڈę»mV8ºj—–š¥'kâr˜CƒÂqG§(A6eÎ*û®[üéfGðÍg¸2,õ扩z3”õ²#&¦ôL:!¦å™d6I§F·Pð3Æõ6‹êPS¾ñ3.Ë”‡ãhbª_J®éžhPÌßkK@A`Å Y®ptq£«]é#CLb ÃØ)«P¸PÀpA?ooh¡aœ•}¡°`ý?oÏ4îh[Ž˜ŒwUWÄTFA1’ŒèÐ LÛ•È Œlc²þQ´°½Î,S,|SQ¤tL 7ïÍš³'_n²Åa9ë«•€‚b“ (7FÓ˜P#”VÌ3íÉa¶¸*Æw1.ËJ@aóÀ ÆæfT,()E¤“i‘n´h5Ž Åƒ†DŠ\&Ýà¸lNËÇ›âØqí;µ|Åø£·÷²C®hý´Šî‡o¿©yë=¼“üçt‰)ÿ«@li ‰)=“Nˆ©@y&Ù‹)¦FÏ)>fÞH7¿Üâ ü}ë9æï@(S¾1Ê>-¦üÁW2ÐħíÈ1&³ìGs‹L -<,\ü_Ñ-̰D¹O731D´XÑÚÃDVaf:&„8µy4‚ƒÊ¥÷¶ŽaÆ<ÖG±ÀbY<SL(Áªó:Æ£mB˜I°1-_oÊ0¢¢Å™˜b˜lƒñPÉÑ¡F .?˜‹ï·dž”¾²¾Z©ÑcÎTóE˜¹+Û¤G·J׆æåÅLÍÎD4$1Cá?O3iß)GŵÅûsp,¿tY´2²ž. #LLX³˜P“”ƒ¢õû-•ƽÙóØôôM<?ï+}[öÕ©nÀˆÆ7aÞábΡw}ã­Z!1U u‰j41¥gÒ 1(Ï${1eÝ(%98·Ó¾†}¹kª}ÿøÛ‰S¾1b>-¦üÁW2Å”oLÝÀiE­I´²XY+Æe‘ºí©ÄTÝò×Õ«&ˆbJs¢v è™T»¼«ºšÄ”oŒ…Ä”‡ã 1å!@7O§åëÚž ª6šÞîþHL¹KLÇ×&wÅŸEüM©Xø,âonÅ¢ãmDÄÇÆAóÁ»óÁÝß ‰)w‰ÕÌñ>-¦üÁW²:bj`ÃË’xÒˆîÎYœâc'}Þ2º¯Ž >¶©¡ù`ãà­ùš·Þ­_W‰)·péàZ&஘J‰ì„.q§ÔJ>‹xU,|vñ7¨bÑñ6"âcã ùP½ùUtYE‡]þÕ˜rUèÓbÊ|%«#¦ú%žø°&' lvÑ•œôyLhC„Eèxñ1s@óÁv+xz¿D„Ä"!¬ ¶e-Äæ¬¹.ÿÐJL¹ŒJÖwÅTÃð–è•ð‡“ZZTšì¢£'}Ž˜Ð$/>fh>ØnoÜ/É‘‘^¸kÒvYPILÕÁ¬ƒKJLy8ÕSc‡#6´±‡WÖé" ž˜ò„žÎõUØÐFè;ÂW»£v‰@À˜:y¨ýÁC­–˜òð6•˜ò N:" 1UGàuÙ% 1U£xU¹Ô‰©C[ãKLyˆXbÊC€:]ꈀÄT×ek”€ÄTâUå"Pc$¦j mW,1å!bwų&uˆŠÒÒR‡ñQ6G§‹€¸H@bÊEP:̯¸#¦˜‰­ETo4‹êî0>ʯ:®ÆŠ€Ÿ˜òßôi1å¾’îŠ)ÆKµ‹‚ôÂTägùïÌQËEÀÏ HLùùªù ¸#¦/Õ#á $„5ÅÁ¼Í"*"P‡$¦ê¾‡—öi1åaßjåt‰©ZÁ¬‹ˆ@`Zw2ù±ÊæW#C¡J½D@bÊK UÔÍYs\ÎäÇæÕ÷l~u0Õº¤ÄTµ°8IbÊC€:]ê€ÄTÂ×¥k„€ÄT`U¥"P+$¦Êcö5¶XbÊÃÛCbÊC€:]ê€ÄTÂ×¥k„€ÄT`U¥"P+$¦Êcö‡÷ÍJLyáÖðTL¥Dv㨢C¢ $;³—b{öb§-ë•xšGõÄ”ýÏ¢%N÷惒®0/mœq൲jë²=Žú–‚a®+ûjΡwÍK^íKǸáè;޾«ŠWÏÄ3QX’‹ Ó½‰UuÕ‰©:€®KÖ(OÄ”žG534zÕ ×úX«Ä”ÄT}œ×Nû䮘²eó†ÒÒD„ÄaxãV°»sV™ŒJ#ÚcYÚ—NƒëR¼4 oeÞz~0‹ÏŠ© 0Ä…&£et´ˆîíP01øšços+³â¨ä[š·AbÊéÝáûHLùþ©…îpGLÙgó‚ô€Â z"¦8ÉŒÐ` ÷­•¢ IDAT -Q1®ˆ©_7ï«êßàBðFü5õ4ê…î §ar o#Žì+‹«â;®:ÇÆ¢#ÿAZÁsݘ8R°Óƒ.ñcÐ6f06eÎÂÖ¬ªŠ™rÔžAIW"2$3¼nêë?M¢º–‰±¡®1ï9±Údѱ)·‹Ûr¤`‡Ûïæª*.ÊÑw–˜¢eiwör#$‹J ÊšDA96å6ÃV1SÞx|Ô]SuÇ^W®9ÕSzÙb€õ<ª¹¹©š«& 1u2ðP“˜òÂí©˜²š`â{bú¢ut¤æ­ÇŠ´o]SSö?sÜ¢4ÑXZf|ÓX£h=jÙÕ¸ÑÑpMú#¬(dZÇ ÀìCï §(í$Z\ó¿g\•ªPœÜºF†Ä£¤´ÈT„`Ó. ? ¸!®FLHCL;ðòI—c Y·„Ó’ ó¶‹Ïs¥¸+¦X'ûß.fÈqkY‘N›2g›ËYî–S®Ð÷íc$¦|{|ÔºêðDLéy¤çQõfÎò‰)oP¬›:d™ò»'bªET/4Šhgâ™,q@«GNÑ1ãÊÆøœŒ¢T,9ò š`h£kOŠ™šuð-cÅê×àã÷KêóF´0N‰‚%1¼%ºÇ7ÿžuðm´ŠNq£°èÈK!㇄·ÄþÜuÆd‰©™ß@^q¦ÛbÊQ{Nix¢B°øèGåêË-:f„ ÅTxpf|ÇáõØ—¨D4îe’w¬>ö#öæþîÒÈuˆ=ãF8L@Q™ÐâõXȦ}쩆+Ý s&1åv¿8HbÊ/†It“@uÅ”žGz¹9Õt¸— HLyh-V'1å!lwÅ”-›ßP”––‚ih™H‚îvLðÀ$ ´.ý?{oÝÈyÞé¾ îà¾v“½³Ùì½ÕÚ×Vk³dy‘8ãxÇI”ÄÉ\Ç™{Ï=3çÜsóÇ=3IÏLbÇ7™Œoâ8ÞÇŽe[‹­­%kWK½©»Ù{³¹o ¸€ Üó{!P$A(TUüêÆJ£ê[žï Þï{ ûuºÏér,;{{üÇeB¶?¤NG’‡X H¢5øÿÇC×äÕ‘oJWÕ}ÒRºC%m>2+;|÷HQA‰¼0ô÷º¬{‚°‡ ÑÈSIa…<7øUÝ£”H¦ UÞ¥…¨äèµÑï¨ M„ú×lÏÆŠƒšãLàiŸë“m¾Ûev! oÿ›–—H¦°WéŽÆßÓýUØ£¹Áž®XBŒT†_ÊKò°dû›Ðv$æˆí™ByR¼†Hؾšéþ2$'Àþ1œ‡%ŠˆðAJïkþßeb~@Ë„‚ÿÒôôÜ3•ÊÈØeÊþ1` ¬'`D¦–fó«ñ®çýˆ÷#ë'$KL™e*eTŽ;ÑÑ2况’Fe ™÷°Œ Ùú°× ¢±±üz¼ C"DÝ“Ïi2†ú’M²·úâñÈIÿãr ö#š˜_ô‘o<|¡ï¬º[£YXþ†Dˆžì®y¿Ô·ë’:È ÿ‹¢…h –ÎæåíñŸ,>ƒ)‘L­–Ée¡OôÿùšíˆmóÝ!oA™f<9ñÄb‰µ"SH^¥U9ƒ" %›uáKÃ_×䳕^C²‹®ª{¤¥l§x=¥2³0.Ý“/HßÌÉÅÓÑ&D¼„cˆ KöU1›_ª£cïy”){ù³öÌ0"Sø±?PaÏ*îð~”øÇ=ŒïG™™³,5J€2åÞ™àh™rV³2å†>²$«˜=WG6ûeF¦ò—{NÎ ÀÔèΣ­ L%¶â|Ê”I€¼œl$@™²>«ÎÊTF°²PÈ ÊÔrÌnX¡†S¦L¾=(S&òr°‘eÊFø¬:#(SÁÊBI +(SË1»áI”) Þ”) ²°‰eÊ&ð¬6c(SCË‚I ã(S”©ŒO2'V`T¦¢Ùün“H$¼ìa°NìÛD¹N€2•ë#œý3"SK³ùMÍæ,ö˜F€2E™²|Jºa­¤Q™$dô«,j´œWª"u7²Üá@–À+Óo.^{^þ™‘!ЩǦŠ¥«ê^m2!>=}‚½ƒu“¦’mÚ4d@ ÌhVƉЀ››7m¢LåÍPçMGÈ  £_Gå¶ñáýÈôÈÐ{Oóô™”¯Œ|SFç.ÛÓÖºŒeŠ2eù[ k%Ý(SHƒ[í]'»ªˆ“©Š¢:ñzÊä–†ïx™B x¤”Gªs¤¹vƒLA^ñÌ¯í¾»4Uý¯†ÿÑò÷ LS£§Æ‰g¹‹€ÛdŠ÷#{æWkÙN}¤ Ž‹S/Ë鉧íik]$ÀÔèñ“Á €V;:… Ú)SxþÒ†òëôÙMó4Ò Ïè³¥vVß/­¥]úl¥à9áÿ™>`7v`¹áMõŸˆ“©ØëxVRª‘)ÔoóäêôQYW¶[?”·TÞ¬m,x<•‡ÖÒ]ú°\<<÷ÔÄ\ÈÆŠdgÕ}CÄ_p/L¾$ç'¥MôáuŸ·IÏ¿0õ’>ÄwéqSý'õaÄKe ×MT'^óUZJ;elîšÌ†'e}Ùy¼ïÏdSÅ ²£êyqøk5ŠñÐÞ_ ü7 …ƒúàâ]Uèsª‚လò?)C³ç“Þb‘©'úÿB‘y¹µá³úœ/”ËÔ){¸³Ö̰K¦x?ŠŽ«îGhçÞšHkéN}X}§@Ž ý}f'&KOJ€2È +Ô(SI§vòì’)|ùLJá…É—Åê•}5Ri‚”@°­Á}£RqHÿr”™*•{›ÿDݪ(¬—Úâv­ï†º§RÒX²MÅæÌÄÓ2½0.{jÖ÷¾6úŶŽÍõH÷äéôRQùåÀÿH$"‡š>'3 r&ðŒ>ô¿¦ááºã¡k‹}Yíæµµò¶„uBŽ IW¦ßÿ\Ÿ²*ðÉÏûþ‹l®¸)¡LayÞ]MŸ“¹ð”LÚÊ÷i›žüŠŠãZGL¦žü)òËMõŸ’±¹«òÆØ÷“O2ž‘”©Œ`e¡6°C¦x?r×ýSôpóçej~DTûÞ³ƒ_Ñ{-ûP¦ìco¶fF¦L4+SøbÝá»k±ˆîà—¢dD¥¶xƒ<Õÿ—‘°Ô·IÇ+#³5úƒ?|Á/+ª‘»ÿ@ÎM‘îÀ‘ŒÊÔ›cÿ"õÅ¥¦x½¼>ú=¹§ùóòêÈ·¤«ú^ˆg¿ªõï¯}DZKwÈý_TÌÄd­Nßa•0,á»®ö£rlü'rmæ¸®í¿£ñQ\A®bÇj2u{ãï$¬3ú‹\—<Õÿ%™Ìê/‰uÅ’ÊT­·M Eˆbœb¹•ûÎV»¥{¦ð:nZoŒ~OóƒÉ†š¯gˆe*C`Y¬­ÌÈïGùq?ÂÒÊ[~KºÏ«L]_÷‹÷5['ožWN™rï L™;£2Íæw«F]æ#s‚}?ø…(và öà칤­º½ñwÅë)•g¿w.–Æí®~ŸT5èæRD§ÎO¾(gÏeT¦^ýŽ4”l|P¿9ö¹§ùåÕÑoËþšiDê¥w÷a¯Ö†òƒ‚(McÉV•©—G¾¡‘š×ËΪû5úT]Ü";«”;4{Ay eöÌ“ãã­)S8/Q{jÞ/5Þõòdÿµ DõÖ•íJ*SM%ÛeoÍúL/¶dÒšÊzó˜Li$*Ñå„5Åm*Ì¢•tºgäÊTF°²P› ‘©•Ùüx?ÊûѶÊÛ¥Ãw§û¡æ‡ôGÊ¡à9®”°ù½K™²yLTïh™rÃZI£2…}AX[îõËìÂdÚCwCÝÇu9Ý/¾¤Ùá)®¤Ð§“›ë?­Qœç‡þV”ñ2µA#2‰¢*¶þ'é›y'¥l~È „e~‰dªËw&]€<á8Pûݯ„ýCmeûʾìF#Sɵ™cšñŽÆßÕýTgÏ.²»±þÚߥ{¦noø„uBžPÿ“ý_’…ÈܲÈTlWLîb„½MUÞV¹±îãëž^¬><+sáé5Çråž)DÆ¡K%ª•ö$á…kˆÉÔðìEygâ)•ïTކ#¦rÏ![‘),Ïògü6ìN»½¼¹ë~tKÃg¤Æ»nÙx/DBº‡ß'xØC€2ew+ju´LYÑÁL—a—Lµ—ï×$ §^ì7ÂÒµ‘ÙKº­á³šáÕÑoéž$|qG’„ãþŸjXB‡ýH½3'åÒÔ«\˜Ðôâ±ãPÓ鸓þŸ«(¬=I&S5ÞVÝ·…=S3á€ì©~Hf`Y`l×j‘),w¼«é4ñ}†½0ü5 „Þ[ÛH‹¨ÚŠ,y[+oMXgL˜.O¿!ЀtUÝ/…ïî™B¤ KÀÂ]U÷ër>Üd"órWãï+ÃSO úµ¾|¯.@Tm­#&S'DµÐ|‰õ;Óó”å¯N©Ñ!µˆTbÞôOê#s—Ž)eгÉÉÖ’),o(Ù"íe4/Ôç&_ÐÏ$32Åû‘{îGø«apϺ8ù²NåæÒNÝüÚè·?.ñ°S£ÛÇÞLÍ”)3ôDÄ.™Âò½m¾Û5²ƒ/û¸"c–"Jµ«úA„Ó§õK;Î;æLúfN.öYë6–_¯Ë!+Ø‹;ZËv-ŠÄÉ"Édjl nÞR¨Ö§&žTñYK¦d7{d&DTjfÁ¯7þ¥‰4Ð&dú;Póˆ $~U{¢ÿÏo¬V'–æ!:ÕP²Y4, ÒRºC—ù+¾\CªFæ.ËdhX3"êÙD]Ñl~-º'íòôëš$Ù±|ÏTDñÒÔk*Ã<ì#™ E‚r¨ñevaZŠ Ë¤P¼² !}°öÔ¨¼=þoºç0vP¦ì/ÖœœÀJ™ºµþ3RZX­Ÿ¿Øå‘BA",a‰È¼FúÍF¦x?zo\œ~?BÆÝ}5ÔWc™q}EM‚}Æøaõ‰_$Ÿd<#c(SËѺa…ZL™2ù–°K¦L6;ï/‡êŠÈ‚F¢ðeyäØC{£ý¯¥ÐS¼˜•±¼¨V =…29?*Çýé2@ÊT~Í ·öv¥L}rãÿ”òÂZÝë‰h?"ì8*½ òöø¤¸ Â´L¹••SÚÍû‘SFÂþvP¦–‘D™²à}“/2…es¸!¯v`ÿP*ÏZ²·%E´”vÉÚG42„(þ{ xVÞÿ±%å³÷ˆÉÔß=ºwnz~\*¼uºìõ¹Á¯J_ð¸Î02åžñÍÇ–®¶Ìûk‘tûi'Bƒ2³0.…µò“¾ÿ[¶UÞá:™âý(gv~ô™2E™Ê™¾¢—Fe*šÍï6]B„%y<²OKR:«ëƒzñ€cìÁ^¦dI$²ßRÖ˜i1™Â/ßÜð?u)'2š]™yS÷"bâʃ2•éQaùf¬&Sˆ>Ý\ÿI].ÝTÒ¡s??uD^ù¦.Ç@f5C=ýky?JŸ].^I™¢LY>¯Ý°VÒ¨L2úá¦ÆƒHÀ^1™B+Ö~L³G"õþã}ÿEn¬û„ ã¹ R;(SöŽk_›ÀJ™Âsÿn®û”Îkì‰ùµ¶/‰HD~Ú÷ÿÈÐì9Í„ÚQy'±’ 8€eŠ2eù4tÃZIÊ”åÃÎI +V>g ›°?½ékòüÐßé>)xÎÙæŠU¨bKY)SYV’&¥2µ¾l·ÜTÿ)}ÄE,ÁЧ7ý‚~Øój ”©4Aó2°˜S£Çuƒ ÕŽN@ሔ)‹?MX d‰Àjí½µþ·ôü+Óo,¶'o¬ûMMåaê%¡Lei€XMZb2…h2¡¾2òÏËž‹‡šûçúäõ±ïR¦Ò"Ì‹H 3(Sñ\ݰB2eÁû2eDA6XM¦5ÏçP!ÙʵŸ´ØÐZVI©€Lí¯ù°4”l•WGÿY&Bk^ÈÈTj\y dše*Ó„3W>#S&ÙR¦Läå$`#2…&yJäÆºKå•›åĉ27Ç26 «M@ ¨¨H¶~`V"‘yeô›úø‡de*!¾NÙ!@™ÊçLÔB™2IÕ¨LE³ùÝ*‘H„ÙüL²çå$`†€Q™ŠÕuKÿ¥µµUŽ?.cccfšÀkIÀ2>ŸOöîÝ+ë~ ÇÆ’R¹ÅåÌæ—)žD™'@™Ê<ãLÕàh™rÃZI£2…L~[*o¨_f&35®,—H te {¦ðÙ´{÷n9uê”ôôô5 ØJ ¹¹YEêôéÓrtÓÿ•r[•Ú]ýëž3•ry" ¸ˆeÊEƒµ¢©Ž–)7`5+SEžbéðݵØÕ«ÓGõ)õz¡Y™2Y=/'0AÀ¬LŪ޺u«´··«P 3²lbHxi  PøÉÉI9yòä²+ÌÈT Uó  L-‡ë†G$Q¦,xCØ-Së>&UEÍòÌà—ãz³ÖkØ·µµòV}I²Ô¹`b$àHVÉ:‡}+ˆœ?^.]ºäÈþ²Qî'ÐØØ¨"uñâEý[yØ)S¼¹~±ö LQ¦ì6ÕnT¦¢Ùün“H$lI6¿›ê?©›‡Ÿìÿbµ^ëðÝ!Û*ï_ ÿƒøC}6Ñcµ$`/+e =AÄB…%WˆR!k'°ŠÀæÍ›XÖ744´j±FdÊêl~¼Y5Ò,'_ P¦(S–Ï}7¬•4*S€„Œ~•E–ób$@ÆX-S±ÚwîÜ)555*TÆųI`±ýQ˜SÓÓÓ ‘)ÂçLqº‘€sP¦(S–ÏF7¬•¤LY>ì,²BÀLjôTˆ=T]]]º§åÚµk©\ÂsH Ž@ee¥F;@Üþ¨ÕpQ¦8‰HÀ˜=~ÜÜàhµ£P¸"eÊZl5 dZ¦@Ñ)|FR ¦Oçœ3J ¥¥EçOww·\¾|9¥Ë)S)aâI$à8”©ø!qà 5Ê”o%Ê”Y Ø@ 2…nÊ®]»¤¤¤D# k-Ѳ«t(ŽŽimmÕ¥¢£££)·’2•2*žHŽ"@™rÔpj #S†pÅŸL™2 —“€M²%S±î!q° ¡êï﷩׬Ö銋‹5…"577g¨É”)C¸x2 8†eÊ1Ca¸!”)ÃÈ–_`T¦¢ÙünÕ,_óc7I“Måå$@Kd[¦Pu}}½~QîííÕ¥[^c0H¹O:/$ P¦,€hSŽ–)›˜ª–2eO&GÈTjôT:¹uëVÙ¸q£ •™/Ï©ÔÅsœK{ê­„d[±§Ž2åܱfËH ¦FOFÈ™¯S¦LŽ eÊ$@^N6°S¦Ð톆RqÙŸ“ÀƪëêêtüåÌ™3–´„2e FB¶ L-Çî†jh1eÊäÛ…2e /' Ø-SèzlÙ"ˆLÌÌÌØH„Ug‹À¦M›dÛ¶m:æ}}}–UK™² % "¬ L-Gî†G$Q¦,x›P¦,€È"HÀ&N©Xבéûf˜íϦɥj‹ŠŠ–¥ÊŸšš²´fÊ”¥8Y d•eŠ2•Õ ç”ÊŒÊT4›ßm‰„—eó«(ª“"Oq\·¦æGWÍúÇó£¨È'Êó!½ù0<+ï~aèã¤áÈ£†Î7r2²¹íܹÓÒe_Fêç¹™%€ñŲ>쑳jYßÊ‘©DÙüp/ÂgÊÊhñ™»òàùQ"äåÀùþ|xküG29?œòQùåƒR~å`Êç»íDF¦,17¬•4*SÀÒRÚG§½ü€”ÖÄýûÕé£2½0ÎóÉGççCô­`åûåÂÔK†>­2)SúE¤¨H…ª¬¬LN:%@ÀPûx²3 ÄŽ`L3ùœ1#2RÈèWYÔ¸ îEx­

`(SÜÏÜ1™Z "V%åq/Ì]–¹ðtÜ¿óü(ò‰rà|°v>¬õñ•i™ŠÕL*T===|¢²;”––ª{<ËLï‰3*S«1AξxcÜK³ái»÷ï7ÊTNM)v†Ö$@™rÆq´L¹a­$eÊ™­ l°S¦b}Äó¨BuíÚµluõ$ ÉÅRLdbD4ÊêgGO™2B‹ç’€» P¦œ1~Ž–)g Z»”)7ŒÛHÖp‚L¡7µµµú~bbB¥*ÛËɬ#êî’ð£ÆÁ)Ë/)SîžOl= !@™2B+sçR¦L²¥L™ÈËIÀeœ"S1lø"ßÐРB5<œúÃ]†ÝqÍ-,,T‰Â)°wJbʔ㦠D#ë2å†j\Ê”É)N™2 —“€Ë8M¦€¯¹¹Y¿Ø÷ööÊÙ³g]FÔ}ÍE–>ðR‘rÒA™rÒh°-$Y¹.SnxDeÊ‚9N™²"‹ p¢L_qq±~Á/++Ó/ø~¿ßETÝÓT¤<‡¼ž>}Z×pʔㆄ "Œ Le ­¡‚™2„+þdÊ”I€¼œ\FÀ©2ÃØÞÞ.øÂîÜ9¹xñ¢Ëè:·¹uuuÊP†¬ÎÏÏ;²±”)G E!@™ÊVÃ…:Z¦Ü°V’2exÎñp5§ËàVTT舠ؙ]ÎÕƒýnã;::’ –XJéäƒ2åäÑaÛHÀZ”)ky¦[š£eÊ k%)SéN=^Gî$à™Š‘E uˆ$àÊ•+înc«‘1RŠçyáì쬭I­jÊTjœx äÊ”3F‘2er(S&òrp7ÉÐVUU©„B!]ž ]FÜžæBB7lØ å¦gyQ¦ì™/¬•ì ë2å†jwÊ”ÉÙO™2 —“€Ë¸M¦bxñ_Dª ===.£ž½æº1µ”e*{s…5‘€Ýr]¦ìæ›jý”©TI%82e /'—p«LsMMF©fff\³l-›ÓcûöíÒÖÖ&gΜqU4Š2•ÍYºHÀ9(SÎ Ê”Éq L™ÈËIÀeÜ,S1Ôn]–©©R__/299©’977—©ª2^.#SGÌ HÀ1(SÎ GË”ÖJR¦œ1‘Ù È\)°Âr6¢TˆÄäã^ª‚‚e€çFA___¶¦QÆê¡Le - &Ç L9cH-SÎ@´v+ŒÊTKiWÂûƒï¬úZ¢kx~ùD9p>¤7Œ~ÎäŠLÅú½mÛ6Ù¸q£ÊD>í¥‚@A¤†‡‡åìÙ³Ž}n”ÑùiD¦Š Ê¥®xãªUÌ…§etîrÜk‰®áùQTäåÀùÞ|0ú~§L%–™ó)S&¹•©5‘*o˪µž <³ê¿wúîæù"B>ÑiÀùå`Õ|H$¡‰>rM¦ÐO쥂X`y–¹!Z•«GII‰`oTuuµ äÐÐPNuÕˆLU5Èîꇤ¤ 2ŽÁô¸\>÷ïå…5Ò^~€ç“ηè[Áª÷ËäüLΧü™”ë2å†j,ÊTÊSvõÓ‘)܈&BýqúC«/1©ö¶®Z9Ïb!Ÿ(Îcóó&"9xFúD…W{ãå¢LÅú‰Œ[¶lQÉÈÅçRáÁ»©«W¯j4*tdª¾x£LÍ.Ã1™û7œPä)–Š¢ú8t–r¼¨¨H—þe3A–ôAèð<,ˆ”“÷q™£lìj#2µ4›Ÿˆ‡÷£wQó~dlÎñlëP¦¬c™Í’-SnX+iT¦ÉíÅs¦ZËvÊþšËqÿO¥gúmÁ8¾pÎ]VÙº¿åÿáÙ‹òæØ¤¤ B7^.M½&ïL<¥b‚sOM<¥‘­¹ð”FI&BRà)”UHsév)ôxe|®Gë˜Y˜Ð¹ÕX²M:«Iya­Bƒrrâq½ÇÍõŸÒvtž—®êû¤¤ RŽŽýPúƒ§eSÅÒUu¯ž7žZ™Ú_ûˆ4•tÈ©‰'d‡ï™ äèØ¿j¸º«ê>ÙTqòy> £Í\+©ÙYuŸø¼M\È…©—”Ž{›ÿD†fÏK(<#måû4µï›cß×~&cìM–è—ÉëjM¹âX™*+¬–ÝÕImñz G¤?xFyà¿“1@yˆøAäžìÿb²æñu‹P¦¬KP}T›ùùyk ^¥,3„DÍÎÎæý’¾Õ ‘)dòÃg>wp¯àýˆ÷£Øœâý(cakL™²‡»ÙZ-Sf;—ëÍÈTEQÜÑø¨,Dæ¥gú-ýò(UìHE¦zfŽÉðìÙ[ý° ÑK#_— å×É®ê÷É›cÿ¢¢±§æý22{INø®ugãïÉðÜE3ˆJ¡§XžüŠ`3>n¬“PxZ£e3 ~»"Só#R\P!e…U²»úA))ô-“©˜Ü]›9®‚³§úañ‡zå•‘,o몺G•{yäŽÌËô˜„ÂAíj•·Y#A(wé²:,µ;Ôô9•£3g¤­l¯ èKÃ_—ñÐ5•K|8?ù‚̇CIÂÉÓ¿\“A*ó"‘LŸ· Tnmø­8™‚PÖx×ÉÛãÿ&¥…>íÏ)ÿ“&É Më>&UEÍòÌà—Si"ϱ€eʈïè–ܵ´´¨äôôôXW8ö”—«DŲô91†¥N³°te Ÿñ¼ñ~›v¼¥ù4yeÊ$@›.§L™oF¦PuSÉ6ÙQu.ùÃ!BÔ“ŠL==ø×2»0)k] Qõe{Åb xFÆçz÷Um©¼E:}wËË#ÿ$cs=ZoEa­ŒÌ]–…HHvT–Í7ËÙÀ³r~òW«ÒYmÏTL¦žüª.Ó‹Epžìÿ •EÈ$ÏÈž)¬ß¿®ö£rlü'*$ø7û “/©\A¦æÃAy~èï´àiÄ2É å2HeÈ“­™_mÏÔÚG¤¡d«FõQœœZVU2©´‹çXK€2e-O”V[[«R‡Uªü~¿©J<lݺUÿðáóçÏ›*/×/NW¦ƒÝ¼½;9Vûüçý(×ß9Îèejù8¸a…ZL™2ùþ1+S±ê}EMÒ^q@6–ÔìbX"—ŠL=Þ÷_ß(=¨ËŸüŠF£A$Ëݰð„ÿqXí¬º_6V\/Ï ý¿2=ÿNˆ„ë…áÿ¥KW;Ö’©XB Ôkö%‰Õn^+êrÅ×G¿#C³tùá=Í,ˆÆLej24$¯Ž~K›yoóÄê“×F¿£«D Ròtd Q+H%–ùaÿdêͱjTG2©´‹çXG€Ï™²Žåj%mذA¥êÚµk*U †+ÄòAD£FGGU¤œ9Ðp'²|™âý(J€÷£,OZV§˜=~"¸!«7eÊ‚7°™Â²µ†’-ºŸ Q!÷4^¦çÇu¹öMÌ÷Ë«#ß’jo‹ÜÚðÙ¸=SÏþF±b‘ 'úÿB—ÑyÄ£"USÜ.»ªî×ÿ~v𫲵òVÙî;¤Ëí°¤Kìj‹Ûuɲ Æd KͰGɨLa¹ –å½)³"2õ˜\›9&•EºA3DÎÖ’)Ü ¤2ìH†i4šÍuz ʤ¡d³.uì žTñ£L¥B=»çP¦2ÏϦ‚P555© ¥ºô¯®®N% "Q##Ñ$x$'®L{ð¹ÅûQ"™z/2ÅûQòYÈ3Ò!@™¢L¥3orâ£2ÕZÚ%¾ÃA‰ewÃr;$x¨,ª×hιÉ¥;ðœîËÁÒ¶·Ç¬Q&dûCêt$XºGi0xNÿì#zu䛚ìÙæ ió‘YMQTP"/ ýý»ÕåpØ_y*)¬,ÏÃr¼D2I¨ò¶è˜!âƒd ˆaŸ2ðÅÚÓ;sB³üA$ðïXNˆ£Ãw§l«¼]NúŸÐ¤ó‘ .iÄ^"$×@Ù(¢„¢YhÏ]M R‡e}íåû¥¥´S^þšFÍÖ’©µ¤2ñÊ kt¿VïÌI¹4õª¶', ºç ÆKù u`Œä·5ü¶„"A»WÔ|X¯?5ñäš bíáõTFƺs(SÖ±LVRlé2îAªeýþ(,çƒLáD¨.\¸ ¯ R…ˆ"Uч‹óHeŠ2•ÞÌáUN ÀÔèNãm Lg¶ì .ó3 —“€(SÙƒïóùt9º ‰Z™ÙoãÆ*U½½½¥Ší§Ê^ s£&ÊTnŒ#{‘Ÿ(SîwÊ”Éq3*SÈÊ·Ãw·øßMa²z^N$`‚eʼ/-++S‰jiiQ‰ºxñbÂ+‹ŠŠ4j…gTA¨b‘««âi"bD¦–fóCFR$@ö LÙË?ÝÚ-SnX+iT¦ÉéϯNMwÌL_w_Ë”"O‰–³ò9J±çUá5dÍC†@§›*n”®ª{µyÈ„øôÀ_9µ©šf¶©$úÜd@ ÌhVF¤‡çaÊTæØãS¨M›6-JÔüü|JVVVªTUUUéµL‘ž6=ɈL!“ßîê‡ûƒÝ©WbᙼYÓ@QÈÐ{OóôyŒ¯Œ|SFç.¸š§fŠe*Sd3[®£e*³]·¦t7ÊnœÕÞu²«ú8™ª(ª¯§Lniø÷Ž—)¤?GJù]Õï“’ÂJWÈäÏüÚî»KSÕÿjø­™ˆ,%-”©´°­yQAA¦8Ç$‘¨t3ôÕ×׫Ty<T [ßà+Ñm2Åû‘=°µl§>bÇÅ©—åôÄÓö4„µ.#@™rç„ L™7;ejKå-²¡ü:ñ” žu„Hži„gKáÙLx@0žé„‡àžðÿlYÊòºârSý'âd*†ãÁÖÿœ²L¡þ{›¿ Ñ¶ue»õCyKåÍÚȾAZKwI¡Ç+£sWäÔÄú0Þ7ÈΪû4ÖQy‡Jž/…gPá€ôáuŸ·IÏ¿0õ’ôL¿½lÔð|¦Š¢úe2…gC%ª¯á×X<xlîšÌ†'õÊÈü´©âÁó¥^þšFð aD1ðß$êÃ…wU= UÞf †rÊÿ¤ ÍžO:‹b‘©'úÿBŸAukÃgõ9_(—‡}(SÖ²G éADijjÊ’ °JQ.”‡rý~¿%åæb!vÉïGÑÙä†ûÚ‰¤Q­¥;er~X <rdèïsñíàº>Q¦–™V¨¡Å”)“o5»d _þñaxaòeñ‡ze_͇Tš %,DkðݨTÒ=ì]¶V¦¢ôů[…õR[Ü®õÝP÷ïTJK¶©Øœ™xZ¦ÆeOÍÃ2>×£ºµul®Gº'H§ïŠÊ/þ‡>æPÓçdfaBšÛV¶WðkÚKÃ_—ñеő[íæµµò¶„uBŽ IW¦ßÿ\Ÿ²*ðÉÏûþ‹l®¸)¡LayÞ]MŸ“¹ð”LÚÊ÷i›žüÊâƒyM§˜L=;ø7Rä)–›ê?%csWå±ï›œ¼<]Lž.¹øë°Ç 5>>®‘¨Le䃬AªTªff¢Äæñ;dŠ÷#wÝ0[ðÐ{<ˆÞêÓûÞ³ƒ_Ñ{-û05z<{7dõ¦LYðž1+SøbÝá»k±%ˆîà—¢dD¥¶xƒ<Õÿ—‘°Ô·IÇ+#³5úƒ?D†ÊŠj䮯?s“G¤;pd±ØLÈÔ›cÿ"õÅ¥¦x½¼>ú=¹§ùóòêÈ·¤«ú^ˆg¿ªõï¯}DZKwÈý_TÌÄd­Nßa•0,á»®ö£rlü'rmæ¸`}ÿjä r;V“©Û'aÑ_äºä©þ/É|dVI¬+ÞT¦j½mº÷ @ŒS,"·rßÙjc·tÏ^ÇMëÑïI`~0ÙPóõ  L™‹ïBp&''U¢ S™>RB…¿K—.©T…B¡LWëšòÍÈïGùq?Âgß­ ¿%ÝçU¦®¯ûÅûšk&z6”2E™ÊÁiZ—ŒÊ¾ÄCð†û~ð QìÀìÁÙsI+¿½ñwÅë)•g¿w.–Æí®~ŸT5èæRD§ÎO¾(gÏeT¦^ýŽ4”lÕÍÌoŽý@îiþcyuôÛ²¿æC‘zéÝýAØ«µ¡ü  JÓX²Ueêå‘oh¤fcÅõ²³ê~>U·ÈΪåÍ^džB™=3ÇäøøckÊÎKTçžš÷Kw½<ÙÿE-Q½ue»’ÊTSÉvÙ[ó°.Ó‹HD¯…´¦²Þ<&S‰ŠDt9aMq›J#³h%î92•>Ö¶¶6•¨ééišÑÑìg‚+))Q¡Z¿~½Š¤ Ñì|?ŒÈÔÊl~¼åÇýh[åíÒá»SŽŽýPóCú#åPðWJØüáA™¢Led ºa­¤Q™(dô3{ÜP÷q]N÷‹/iv8dŠ+)ôiÄäæúOkçù¡¿UÁe¼LmЈL¢¨Êƒ­ÿIúfÞI)›²a™_"™êòÝ£I OÚÿÚè~%ìj+Û—P¦°*™zL®Í“Ê¢F¹£ñwu?ÕÙÀ³‹o¬ÿ„öwi6¿Û~'a'Ôÿdÿ—d!2·,2ÛÓ»˜aoS•·Un¬û¸FÅúƒ§ëŸÏÊ\xzÍ!]¹g R]*Q-³s…ׯN€2e|fÄ$ Ëë Q###Æ ±ø dþÃƆ•*´+Ÿ#2Nøì쨼Ó2ÞÜu?º¥á3Rã]·lÌ"!ÝËï<ì!@™¢Ledæ¹a­¤]2Õ^¾_“(\œzE°ßK×Ff/iD趆ÏjB†WG¿¥{’ðÅIŽûªIp` ö#õΜ”KS¯JpaBÓ‹ÇŽCM¤KàNú®¢°Vô$™LÕx[ußöLÍ„²§ú!M˜e±=S«E¦°Üñ®¦?ÐÄôôÂð×$zoy\l#-¢>h+²äm­¼5a1aº<ý†BÒUu¿¾»g ‘2,yDwUݯËùp“YˆÌË]¿¯ OM<%è×úò½º<QµµŽ˜LAžÕB_ðe>ÖXèš(S©O'JÔÊÖãaÀ*¤S‡T]½ºö{2õÞ»ëL;dŠ÷#÷Üð+VÃàžuqòeÜÍ¥ºøµÑoËðlâçÀ¹ëà¾ÖR¦(S™µ”©ÄX±|o›ïvìàË>ž‚Œ}ó‘9Ríª~PátàiýÒŽóŽù“¾™“‹…"kÝÆòëu d{‘bGkÙ®E‘€ø YD¢#™LÍ]Q±ÁRº)ÔëSOªø¬%SH2_Ï™Q©™¿œ›|aY" ´ ™þÔ<¢‰_ÕžèÿóÅīՉ¥yˆN5”lV Ë‚´”îÐe~àŠˆ¤jdî²L††53!¢^MÔÍæ×¢{Ò.O¿®I@’Ë÷LET/M½¦2ÌÔ©äÜ‘XbãÆ‹Ëùœ‰JÖ꺺:]‚X^^®R•oϨ²C¦x?zoV:ý~„Œ»ûj>¨?®Æ2ãúŠšûŒñÃê;¿Höãë"@™Šë†jhµ£³ùQ¦2ôŽe±IJÈ"Qøb ‚<ò‹S£¯>Þ( ²ò]¾|Ù–=Qfg"–ý¡ÅÅźô¯··×l‘®¸Þ™r7’÷#N–›ÆÔèYnQu”)“ íZæg²Ùy}yKi—¨}D#Cˆ’á¿‚gåíñç5—|ìÉä…ÔáˆÔŸ)S__¯Ëñ¼*pÁŸ›Ê”›GmÏw”©å3À +ÔÐbÊ”Éw.eÊ$@^N6È—Ô踵·· L@ zzzl"îìjkjjTªZ=±›ŸŸwv£WieÊuCÆ“€`jôø‰à†¬Þ”) ÞÀ”) ²°@.ËÄ …¿™™]Â600`e÷UéóùTªZ[[¥*Œ>ìÜ eÊ £Ä6’@<Êe*oßFeªµ´K:}‡ÅêK›Yh:"sÓñ——‹xË=q/ðü(ò‰rȵùh\“½ÁrQ¦T"&QÈ̇K.¤7O6–™x=– K#‘¤,@&ª²´L#2eU6¿ ?" ¡øn”V{¤Ðÿï$×dotÊe*ÙIëu7¬•4*SŒ~fŽ©¡ˆL G⊨hðHEc¼Lñü(*ò‰rȵùh\“½ÇrI¦°4 …}QˆBá)æ àùT*üAL!U###æ ÎP Fd M@F¿ŽÊ;MµfürxÕøj7zVýçGq“O”C®Í‡DãšìMF™¢L%›#i½î†µ’vÈ”FVÉ`\\±FdŠç ùD߆¹2b¶|–©õë×K[[›é^(HT8Nëó–%'a…Ta/X÷öö&¿(ËgØ!SY˜‹ïhiÍ‘)ž/ä3¹2b6Ê”uznðôÖÑ (ÜÑ™²nš²$p/X„-ßd ©¼!PøÃ²3|©Ç’>Ù#€´ò+,ŒE’¬Â™ÊyÖDÎ%‹°Q¦¬#7¬P£LY0Þ”) ²Hƒ@,–(â˜J‘nJŽ¥|(|‘G nØÃ“Ê8¸õdĘà†©r˜P¦Ü:›Øn·ˆEØESéS£§BÉyç02erL²-S±¥Ménº7Ù]^N9EÀé2åñxôË:–ó!C_L¢ø|(gMÃX´Ñ*¿ß¯ãdW´0Û2[Ú”î¦{g$[Cö LÙË?ÝÚ)Sé’{÷:£2ÕRÚ%;|w‹?ÔŸVÍf—6Å*­+›’w[lÿœÚ/þ`™þÿk½–V£S¸èŽç¤£~HþñèÍŽÄ'ÑH¡ˆ´OyhûI©.™‘o¿>å2*Šçä7v¿!ßxëF … ã®kõMȃ'åWW¶Èéáæ”Ëå‰Ù%àT™BzîØ~¨ááaÍ&744”]8¬--±qC⊘üfs  ™²"›ŸÙ¥M¼'ÅO3Þ“ÒzëåÄE”)w££eÊ k%Ê2ùµ—«ÓGÓš1VÉTQAX¥i{àl¯”¥2µÖki5:…‹ì”©–Ê ñ.ÈUm -ž²­~HîÜx.¡L•…åŽÌTH`¶4årybv 8M¦ðl#|¯¬¬T—qfåËª¶ÚÚÚÅ%€GŒg6ÒÔ‘)dòÛ]ý ³å`°;­®[%S¼'½‡Ÿ÷¤´¦bN\D™rç0:Z¦Ü€Ôn™ª. Ê­.HCù¤ÌÌ{åÍÞv¹0Ö èʽsrÇÆóÒ\9!s Eòvÿzyg¨eÖ­Wå@kÏ2™Š°Ök‰ÆfÏ/7¶]ÖHOp¾HN ®““ƒ­zú§÷¿"½5ò‹ Ræ ÉÇ÷¼®¯½Ò³Ib2õrÏ&¹®µGfB^yæb‡ŒÎTH'"·¶_ 5£‚îà”O^¸¼U&çJ´Üöê1¹~Ýñ•õü—®n–‘é }íýÛO ÄæÍ¾v¹¹í¢Öûô…íri¼^v5õÉMm—ô<Ô·42u÷æ³²¡zL˺¡í²L‡Šå™ ÛeänX¡†S¦L¾U픩͛&åáÎòFï:•ÍKcE@ÆfÊõ {qá¼`÷‘F:åö çåçÝ»¤/P•1™úͽ¯«ð =}êeâ–Jdê;ïÊÞ½[OkdèŸÞºI:êÅâòx½ MU.î«ÚÛrM£R?=»¦= IDAT[&}R]:#U%A­BrÃú˲§¹w‘ÑjýÚúôX¤ìû'è2½{·œQýú[7©<ÝÚ~Qv4öÚ3µ©fTo9#Ï_Ú¦’VS:#Ùù–F§ W)–\âP^jùÅù&gin^n6‹í…8áæ€/ÔHT€/ÓŒBåæü\«WH©›XƉy€?+žf§L­oä=‰÷¤ü{?Çzl6 Ú?wÜðˆ$Ê”ïùlËÔÒtÐëðåü¬¼pe«œŽ.[z ò±¿õªTx£OGÄr¹Ç»wêôØaõ2¿¶ê1¹¥í’FŒp\ñ×ʳ·«Ø¤"SÿpôæÅˆRgÀ|÷ÄA™/ÒèÑæÚaíCpÞ«ŸKãursûEÙÙØ/?8y@£C+ë×_‘½Í×äGïì“Ñ™òUG|-™Š%Ä@ý±öLÍkÔ Q7# (ºûU Ÿ<×¥Ñ7DÆ ŸˆÆ¹¼Ue EŒŽOì}M£|Oœë²`¦æ^f÷fK¦…/öëZYYÙâç©©Už¤{ÃÄ%!‹V544,α±±´¹e[¦–¦ƒÞÚ8Â{ïIiÏ]·_hvÿ eŠ2åö÷@Úí7*S­¥]Òé;,þù=MLa?Ð[}múåKÏ¡ñϖɧö½ªÿýĹ™ÂR¹•2µ¿µG®k½ºêž©µ^[ ¢a•%A]ƶ¿¥g1ƒ=A£ÓòóîÒP>%Üq,nÏÔ÷N\§Qµ•‘ '¢"Õ\P!)(Ë÷O\'ûZ®ÉALí’É*©/Ç»€\«WéŠÉ–7N-YÞ¸´ýkÉÔb{Þ”-F¦Ò),¹¼gË9ry›t4Jmé´.ÓDÑEÊ”±·¡Óeª¾¾^°”"…4Ùˆ<Ø•.ÛYžm¤WI7öS!b‰¿`0úÃTª‡™²"›ßÒvñžÄ{Rªó4Ï£LY?ªŒLYÀÔ k%ʰ £Ÿä⣻ŽJDäÅ«[dkí°l©–ŸœÞ+þÙR•),‰C‚$…Àîõk4)D,ý8–ÐaÒ«×6J JƃåE±Ök«µ0,[CB…ó£ RW>­K c >¸ã¸Ô”N˳;dK݈î:5Ø*H:[V·töA¼°’ˆèMh¡P—î!Áÿ¾³O—õ}¤ëm¶aÑ ë¯HYÑœ|ïäuº/‘LAÎêË¢‘D°w  ˆx4yE¬=èÇ®Ðå„8  M$¨³¹…B½û©P?dÑ+ˆSL…J”ë¯ïzS¦C%òÚµ ÒÙ0(›jF£f”)cï 'Ê’I@ ð‡tØø2 ‰Bâ$*쩊ͣÑÑÑE±Jåz#2…òѯ£òÎTŠNzïI¼'%$9|eÊúÁ¥LYÀÔ í”) ®-›Öý;õïfó{åê&ýò¯ÒÖÚ#»›z5BóüåmÑÁò»=µo1C’"Þ|VÖWë5±døïµ^K4¼X ··¹W*Šgµ^D`uÁLHìà‘ˆüêêÝ?tf¸Y—ì!Y²ò½zm“\¿î²LΕj6?$Š@>HÒÅB‚ -/÷¼—±Brݺ«â+žÕ¥|èkì™Y‰d ûÉ>¹ïµ¸n,D äëGoZ”©×®mÔè¢eÏ^êÐýh8<´¹[‘8$€8­–éçcOöF!›² bÜPæÑ¾v¢á LûÐpŠLa_ì‹/RšÇ" ØŃÌÀC›cs ©Ö1·úûûedd$a±vÊïIÑ,²¼'™™õî½–2eýعÁÐkG' pD»eÊú©ËA ™Šíá"ç°[¦°×¥¥¥E¿ì è]ü/È,Ä\ÜÃ!Uø[™ Ðn™ÊDßY&ïIn˜”)ëGÉ +Ô(SŒ{>Éöøìj^}¯– "”+‡Î†™îÇÒd,ÞrÄFS£7”l–®kÿ›~¡E |™…D…B!ã•ó H“@UU•ÎÁææfYXXP‰ÇRëç“Lñž”æâe!°4K¡7½*˜==nv_ÅÈ”ÉȶL™Mm²»ys9e*?†:™BÖ¿öòýÒV¶O"–ñ7ëU¢˜/?æˆÓ{‰å1±B²Šsuß”k3Ç$0?”RÓÍî™2›:¥Fò¤ÅÕ± ³D’›(SîWÊ”Éq3*S-¥]²Ãw·øCýiÕlviSZ•ò"ÈQ‰d _0!Omåû¤¤ RzfÞ’«ÓoËèÜei8òhŽÒ`·ÜN$+në–õe{dzaL®Í—Þ™2Z}ù©ÙüÌ.mr;s¶Ÿ¬$@™²’föÊr´L¹a­¤Q™B&¿öòruúhZ£L™J /"U ,•©òÂZi+ß+ëËöН¨IzfÞ–ž™c2<»ìZÊ'““ Ä–ù5—nW©ZW¶[f&Uªzƒ'el®g±ùøÑ`wõC‚èë`°;­nQ¦ÒÂÆ‹H`U”)wN GË”ºY¦ <…²«úAi.Ù.…ž"™ OÉ‹Ã_“²Âj¹­á·ñ??ôw25Ÿ8{”Ɖm$ÕŒ…zÄë)Qª)^¯Ë£z¦I_ðTB`”)Î%'XmÏTcÉV•ªu¥»éG{gNJßÌ)^9I¦xOròÌbÛ²A€2• ÊÖ×A™2ÉÔÍ2…Íô7Ô}\®L¿©7ÖO‘ŒÌ^ÜÐð˼î)ß'”)““„—;Š@qA…Ô¯“ïz)ðȹÉ—C¥ÒPÊT*”xŽ]’% ¨-n“ÖÒÒZ¶Kj¼ë¤@Š$" riú5YO¤bedŠ÷$»f ëu ÊÔò‘pà 5´˜2eòäV™Bä©ÊÛ¼¬÷¡ðŒübà¿/þ[‡ïÙVyGœLm(¿N¶TÞ*Åe2º&ÇÆ"Á…€^W_¼Qv×¼_Š<Årnòˆì¬z@ÎOþJΞՈ~­-^/áÈ‚ôÏÈ©‰'ô¿y€QF’±”ú¤Ú(ü÷x¨WæÃ³˜”³gËýR=(S©’âyvH&SKÛÔX²Mn¬û¸à =^™œÒý¼¡~™YHí9iVÉïIvÌÖi%³ÉXšJ;Äê“þŸÉäüpJM+¿|PʯLé\7žä†G$Q¦,˜YÙ–)+ÒA£ÛX+¥;ªî‘3§edö²„eA¡Á5e ×ÝÑø¨.Áüƒu“žé·ä„ÿçâjúCl÷ÿL6””Æ’-*UÝ#²¿öý%ôíñÓ/´»«”Sþ'5*ÀƒŒH¶{ ª5Õ*^ˆÿ\¯øCד¿`ŸHD"”)£ày¾£ ‘©¥{¦†fÏI•·Eª½-RUÔ")ÿ|¿B21?( á¹UûmE:hÞ“=¥Ø¸ ˜ýa2š2•âäsûiFeªµ´K:}‡õ×+D€:|w-…Ä©þ¢ Ê×Õþšû¡ôOÇ5gµÈD©ÈS"ó‘Y(ÝÝôtÝý+#ÿ¬‚Ѻ8õŠœžø¥Ôo”›ê?±(Sj‘†’­Òx^†g/ꯠ¥B€2• %cçP¦ŒñZõl7@´[¦Ì`N&SÛ*o—ßËöLm÷’­•·Ê«£ß–‘Ù‹rOóçej~LeÊWÔ(·7þ®\œzYNO<­û§n\™B[±K®°ÑxOõÚª÷øøcfºÁkó”dªaæ:)«HaݤL„úT¦R=(S©’âyn")™ZÊ ° XªŠ¥²¨I|ÞF]®mÅÁ{’Y†](SÖ“wƒèwÛ?ýÓ?Xß}kJtÄ\–©¶²½²§æa4Î]Ñ僫Í7©Aжùn—P8(¯Œ|C‚ “rw󑈜ô?.HTѰdÏ6‡"Aé<'¯¨ù°î½:5aÍØšYÇRÜB Ùž©dý L%#Ä×ÝH 2•).ÉdŠ÷¤L‘g¹V LYAqynX¡F™²`ÜsY¦°7*ºÏi³Æ”^þºÌ…§åºÚJyQ>“g|îš&’ÀNOúŸl ÜUõ>ñx8ù€Ø@pV“©²Âj9Ôô‡òÆè÷Ò’©ºâ Rä)^v­™2Û'Û–˜eгƒâ ‘)+²ùek xOÊiÖ“.ÊTºä_G™²€©ÖJ•)`AF?»ÈÎêûr‡òÏhh9"}°î¦Š–5ñͱÈ@ð¬ÄžP¿ôÅKS¯É;Oé?Ý\ÿ)MÞx^ºªï“’‚JM“Þ<-›*n”®ª{õ¼ÙðÔª‘©SOIGå2ž’·Æ$¡9X÷1©+n—§ú¿¤×ÞÙø{²™—‡¿–´=UÞÙUõ€Ty›%h4mhö¼– Û]ýÔ¯—pdAúƒgäÔÄúß<œO€2åü1b ³OÀˆL¡uÈè×Qygöº¢FÞ“xO²}šleÊ$ÀU.§LYÀÔ Ý*SxR˜Ÿžø¥x e»ïÊKßÌ)ÁrŠ®ª{ÏÄzyäŽÌËô˜„ÂAñ”jj÷NßÝòÎÄ/dlQpaBGrÒV¾OBái¹:ý¶Ì,øetîŠLÍHqA…”VÉîꥤзªLõÌ“áÙ ²·úa©—F¾¾¦L­ÕžBWîjúœŠÙ±ñÇ´]me{å™Á¯èC…÷×>"5Þuòöø¿Ii¡OÛÙº6sÜ‚ÙË"2M€2•iÂ,ßÜ*S¼'ñžäÆ÷ÛÒ6S¦¬A7xzíèn€h·La¹\‡ï®ÅŒçWMÎ'Ñ üA*ÊŠj䮯?s“G¤;pD¯…háæ¶Ú2?D³ "«-óÛQuX6WÜ,gÏÊùÉ_­Ú޵öL==ø×2»0)k]°~øÉþ/j]‰"S¨ Q{šJ¶©ˆðÿ\Ÿëå-(“{›¿ 'ýË•é7å@í#ÒP²U£hóer~()7žà”)çŒ[âvËïI¼'9çÝÝ–P¦¬çí†j”) ÆÝn™*)¨ÃÍŸ_ìIªû˜ª½ëdwõû¤¢¨A<âÑèÔùÉålà¹ä2U¶Sö×|xU™BÄjKå-òÂðÿ’@hаL=Þ÷_u©!¢Dˆ€!б[S¦´g}Ù^Ù[ó°FÖP&äÅ©—åôÄÓR^X«û°ÌK!SoŽýP£h<œOÀŠd,Lîüqf °[¦xOiå=ÉØ¤Í‘³­HÆÂÔèîœ ŒL™·lË”ÙtбîÞ\ÿi]+ÿüÐßê§;µT¦žü²†eêÙÁ¿Ñ¥×Õþšî‡z¢ÿ/d͇¤©¤Cžèÿs-ïžæ/è9Ø3¥‘©7®ú’ÍrcÝÇåLàݳ;æÃ³2žÖÿ"‰ˆUCÉfÙSý°ôOÊññÇLÎ ^î”)·ŒÛ™*lË”Ùtм'‰ðž”êìÎýó(SîcÊ”Éq3*S؇´Ãw·øCýiÕlviS¬ÒÛ>«éÉ_ý–.çÃR9$f8îÿ©îêðÝ)Û*o—“þ'tÙà|$¨{˜pÔo”ë?!W§ßÒýEˆjÌ^Ò×b‘©•2iA2ˆ:!ùÃk£ßшÑD¨_#DÈÖ„òƒçôÿ]“WG¾)±¥ƒØßUTP*›+néùq~­ÕžO‘ÜÕøûÚ$¶¨ñ¶Êúò½ºì{½nkøm E‚ÒxN <^9Póaé9)§&žLklx‘ûP¦Ü7flñڌȔÙüÌ.mâ=‰÷$¾§ß#@™rçlp´L¹a­¤Q™B&?,_Þt«d û‰vU?(…ž"9xZð̶²}rÌÿ˜ôÍœÔdûk>(5Åm¿9?ùÂâ(ˆÑÎêTÀŠ Jdhö‚.ù[K¦(âÞæ?‰ë22ç!â„eƒØ#aꬺ[e 1°ä 1ÖþšÊßÅ©W¥®¸M³>?ôwZÞZíñy›ÞÍæ×¢ûÃ.O¿.&_Öëj‹Û4saeQ£.™»('üëy<òƒe*?Æ9ŸziD¦°:Iƒðù?ìN “U2Å{ïIiMÀ»ˆ2åÎu´L¹©[eÊ lÙFÈ4ÊT¦ ³ülp«Le›ë#' L9qT’·‰2•œÑšgP¦Läå$`#Ê”ðYuFP¦2‚•…’@VP¦–cvà 5´˜2eòíA™2 —“@šÌ&cÁÒ&ìÙ;xF U© GMõTžGY'@™Ê:rVHJÀl2luð‡úä„ÿg)=âu–_>(åWæì¸áI”) ¦_¶eÊŠtÐt›E€íÌî¤LÙ>„l@d[¦¬H ,’²NÀìþAÊTüQ¦²>í©Ð¨L!iC§ï°þúÀƒH }”©ôÙñÊÜ%`D¦¬Èæ—»$Ù30F€2eŒW*gS¦R¡”ä7¬•4*Sè22úñ 0G€2eޝÎMFd ѯ£òÎÜ„Á^‘@ P¦¬‡M™²€© Ú)S±=#+Q—‹xË=q#Àó£HÈ'ÊÁíó2eÁ‡,‹È9vÊTlÏÈJ¨¥Õ)ôÆ£æùQ&äåàöù@™²þãÔ €^;:… Ú)S±/“+§oEƒG*ãeŠçGI‘O”C®Ì‡Dã™ìc{¦’âën$`§LžL®äV»Ñ³ê|$ÏdŸ'Ü3OÈ +Ô(SÉfv ¯Û)S±d+›Y\±Fdj*¾S«ÎÊTF°²PÈ ÊÔrÌnX¡†S¦L¾=(S&òr°‰S£ÛžÕf”e*£xY8 dŒS£Ç£uÃ#’(S¼%(S@d$`Ê” ÐYeÆ P¦2Ž˜@FP¦(S™Xn(Ô¨Lµ–vI§ï°øC}nèÛH9K€2•³C›×3"SÌæ—×S…wÊe*#SÒ k%Ê@!£ { P¦ìåÏÚ3CÀˆL¡Èè×QygfÃRI€R&@™¢L¥«ÎÊTF°²PÈ ÊÔrÌnX¡†S¦L¾=(S&òr°‰S£ÛžÕf”e*£xY8 dŒS£Ç£uCVoÊ”o Ê”Y Ø@€2etV™q”©Œ#f$”)ÊTF&– 5*S­¥]Òé;Ì zn\¶1§ P¦rzxó¶sFdÊêl~y ' P¦(SL£ø"ܰVÒ¨L¡—ÈèǃHÀ^”){ù³öÌ0"Sh2úuTÞ™™Æ°T ” P¦(S)O#'ºa­$eÊȈò\pÊ”sÆ‚-±ŽeÊ:–,‰²I€2E™ÊÈ|£Le+ %ÑgëD$"gϲú¥z4y4ÕSy de*ëÈY! XB€2Ñ +ÔÐjGgó£LYòþd!$@ 05:§F® LåÚˆ²?ùD€©ÑÝ9Ú”)“ãÆe~&òr°‘eÊFø¬:#(SÁÊBI +(SYÁly%”)“HÊTKi—ìðÝ-þPÚ5‡¦#27yq…ˆ·Ü÷Ï"!Ÿ(·Ï‡´ß8«\H™²’&Ër#2eU6¿ ?" sñ½/­ñH¡7þßy~” ùD9¸}>Xù¾§LYI3{e9Z¦Ü°VÒ¨L!“_{ù¹:}4íQîËÌxD<Â{òTÑà‘ŠÆx™šŠÈÔp$®>žEB>QNŸÓÃØá$‚ÿ³Ú[O®:xFÕ/Õ£áÈ£©žÊóH ë(SYGÎ IÀ”©xŒnX¡†V;:›_.ËTµ·eÕ7Ÿ?Ô¿ê¿óü(ò‰rà|°f>05º%ßXˆƒ¤#S]¾{¥¢¨.®ó‘9™šû÷"O1Ïò‰N ·(+æS£;èÃÔ@S(S`­vj:ËüZ4 ÅÝ«Ö|&ð̪ÿÎó£XÈ'ÊóÁºùÐo *…Z™2ù¡ÉË3J ™j*éöòqíš^—«ÓGãþ½¼°†ç‹ùD§çC”ƒóar~H&ç‡SþŒ(¿|PʯLù|ž˜”)“\Ó‘)T‰¬~«‰–ñü(-ò‰rà|°v>ù L¡Ås³MÀ¨L¡}ÈêW_¼1®©³ái»÷ï3(SFheî\GË”ÖJ¦+S™R–L$I”©LÒeÙf ¤#Sfëäõ$@ö LÙÃ}e­Ž–)g Z»”)7ŒÛHÖ LYÇ’%YO€2e=S–HN%@™rÆÈP¦LŽeÊ$@^N.#@™rÙ€åYs)Sy6àìn^Èu™rà 5L@ʔɷ!eÊ$@^N.#@™rÙ€åYs)Sy6àìn^Èu™rCVoÊ”oAÊ”Y ¸ˆeÊEƒ•‡M¥Låá ³ËyK€2匡gdÊä8P¦Läå$à2”)— Xž5—2•gÎîæ5Ê”3†ßÑ2况’”)gLd¶‚²E€2•-Ò¬'”©t¨ñp'Ê”3ÆÍÑ2况’”)gLd¶‚²E€2•-Ò¬'”©t¨ñp'Ê”3Æ2er(S&òrpÊ”Ë,ÏšK™Ê³gwóš@®Ë”V¨aR¦L¾ )S&òrpÊ”Ë,ÏšK™Ê³gwóš@®Ë”[—2er¤(S&òrpÊ”Ë,ÏšK™Ê³gwóšeÊÃO™rÆ8°.#€ý|o¼ñ†ËZÍæ’ äââbéìì”ãÇçZרpGË”[ÖJºb¤ÙHË`^>üðÃòØcIoo¯eå²   0J?îíÙ³G¾õ­oÉÜÜœÑËy> €IŽ–)“}ãå$øÀ¤µµUE BŃH€H€ì €¨Ôoþæo þ«%¸bÂŽQ`ùN€2•ï3€ý7D •Š]Äè”!|<™H€HÀB±GÈ HD¥².‹²€[V¨Q¦lŸ*l€›Ä¢R±63:å¦Ñc[I€H w,JÅzÅèTîŒ/{"â†çÍbœ(Sœ­$"•Q)F§RÇÓH€H€,'°4*+œÑ)Ë1³@ P¦l„ϪI VF¥Êe–I$@$ŒÀjQ)F§’Qãën#@™²`ÄܲVÒ‚®²‡H•btÊáÇæ‘ @X-*ÅèTtžw‰2eÁp D ºÊ"N QTŠÑ)‡›G$@9F`­¨£S96ØyÞ·x€£÷L¹bžÏõœïþʨÔÌÌŒŒKMM”••-öŸ™ýr~*°ƒ$@$`;•Q)ܰWª¶¶V¼^¯¶{§l&6ÀnY¡F™²`°YDnˆE¥&''åõ×_—³gÏ.vxûöírýõ×Kee%Ÿ;•ÛÓ€½# Û ,Jõõõés¥bÇkxx/þøÜ)Û‡Š È#”©<lvÕ8ü*rèС8‰ZYRLªž}öÙÅ›ñÚx $&€¨îKK%jåÙ1©êìì”üà¥âA$9”©Ì±eÉ9@ ¾¾^FFFRî‰ÑóS.˜'’ ä=#÷HUII‰¼çF$IŽ–)·¬•Ìä±lçà¼tÞ˜°E$@$¯°2ÂçóétŠS¾ÎöÛNŽ–);Á°nHD€‰Q87H€H€œB ¶¯—Iœ2"lG¾ LåÛˆ³¿¦ 02e!  °ˆ#Sd1Ž#à–ï[”)ÇM6ˆH€H€H€H€ò›€[VQ¦ò{ž²÷$@$@$@$@$à8”)Ç D$@$@$@$@$à”) FÉ-k%-è*‹pÎK ›J$@9N€{¦r|€ó¸{”) ß--è*‹pÎK ›J$@9N€Ùür|€ó¸{nù¾åè=Sn˜Çóx¯JUªgºe%e*Õåy$`!µnP¬`0(‘HÄ™zàäèÑ£288haÓ/Š7¨ôÙñJ 0C€÷ªÔéñ^•:«TϤL¥JŠç‘@Hå×>Db:$W®\‘––)//—_|Qzzzdidª½½]n»í6ùñ,óóórûí·KSS“„Ãa9yò¤œ:uJ ·µµékø÷sçÎÉÞ½{ã"Sû÷ï|x!*öÊ+¯È¥K—äú믗-[¶hCCCò /ÈÜÜ\ܨÝrË-²iÓ&ñx<ÒÛÛ«Q7Ôµò@yzÞ‰'䨱czJ¢ë“Ý !§«W¯Jkk«”””È‘#GdÏž=Rýÿ³÷&àvUÞ÷ºs¦›9daH˜ÂL˜gP‚ 8aëÛ¶6=ØvÛmûÙÓÛúú©mÛm=ØoÛ¨­¨ˆ$Ê (ƒÌÈÈ$dnæ;}Ϫ˹œÜÜaŸ}êœ]«ê·Ÿ'Ü{wU­ú­ujÿYµëL˜ «W¯v6ë¥óÐù566ÊŽ;Ü}Z…;æ˜cDûijj’ñãÇ»¿ßqDzmÛ6™á„'½^{í5yðÁå™àˇ)Cu"@®"W™«S^èVöJz˜*]"à#.³$(ï~÷»å¶ÛnsBáÐCuoúõxIL©¸yûÛß.·Þz«lÚ´É }ÓÿóŸÿÜý÷Š+®p¢`ãÆòÁ~Pî¾ûn'ÆŽ:ê(÷ÿºë®Ûg;ß{Þó¹çž{\eJÇ<î¸ãä–[nqBí‚ .èZå.;è ƒdÁ‚rÓM7¹_ë¸ZÝzá…öòìœ9s\‹/vÂåÊ+¯”Ÿþô§NX Õ~$1¥bG9©kÖ¬q6êï~øÃ:Áö¡}Èm›T¤ã©[·n•#ðÈ]wÝÕ¿Eï´ÓNsoÆUÔ\~ùåý}©ùèG?*ßùÎw†S矾lذ¡¿z¤U–SO=Un¼ñÆ}<ÖÒÒâÆÒKňVuTP•_*´¿¥K—º_·¶¶º6Zµª}1u饗ʷ¾õ-×§VˆTH–ªQïÿûåÎ;S§ºÊ™ŠS½J ”¯V€tn·ß~»û›ŠV½_E” µk¯½¶Êñ‰'žŽŽŽ~15'õ…Нo~ó›®½Vã7~Ãq.A{î¹²eË7Ž^³gÏv•D¡\€Ê Ôò4?r¹ªÈ\åãýV=V‹ Ÿ™²±ŽbŒpÔ³2uÉ%—¸7Þ%1UúYŔڡ—V/´*¥—^±{÷îþç­´óâ‹/:1uá…:!Vº†:袼2¥U/m»lÙ2×lÚ´iNÈ•l*õ¥âE…ÛĉݯÚÛÛÝC#å—ŠA=8£Ô_–öYÄTIdjºn¨0{衇\÷ï}ï{]¥NÖPû´:WÎ@«QºUrúôéò³ŸýÌýI+Uú³Îa 7K·?jU°´Ío(N*âTh•šñ±}lÄÊ”Ž¡Ûþ´¨—VØvîÜÙ_ù çÕ€%€@ÑB¨L‘«r•ÿ\åãýV=^Ÿˆ©zPf  õÓ¾á”VxôÙ&­NéV5}>I«0ºmNÿV~©ˆ(¯L©ØøÈG>’©2¥[Ÿ|òI׊µ½´¯4†V¢´Ò£ÛÙ´ÊtÎ9ç¸ÊÔ@1¥•)~¥þô/ ºÅo¨ö¾”>ã¤Û uK¤^ÍÍÍN|jÕIߌ &¦t›ŸV¦´zU:D9jÅMçWS*˜ã¤"N?5.UÍt;£n;T1ªU*Ý’¨[õÒÊØgœáž¡R~Ê©TÁã@ 䪾ÜG®"W ÷úCL±:1fò|$¨ÒÑèZÑg…–,Yâž™R‘ +hUJ·äéñéúF_·—é›{}þJ·Œéß{fJŃ>ë£÷é úŒV¿ôð­Òè *2Ê/jƒ&¡¢E«WZÑÒ~Ê/íïÄOtÏ7iµEŸ­R›Ôž¡ÚûSú,”VÝJÏLéV>µGm)U¢V¦ôgm£âIŸ™Ò¹é–B­47®_L ÅIÛ)w}nMÂP¿ë3cúÌ”Š³÷½ï}NXé*Hõ Sú šVØ-Zä¶Aêó]ÊùòåÉ¿vÔ¹Š\E®ùõ†˜™w@À;MP*RÊ?W1¡oìKÛïôŠá*S%1¥oêßõ®wÉO~ò÷œ,¡§ÿ©˜ÒSçJ§ÀéóB*¶TÄ<÷Üs®¢¥"IŸý)¿T쨸QÁ¤ÛÜÊO©SAðÀôo?+µÓªŽVg´:¦Wè68­B©PRJ—Ž­s/R§*h•j¸öÚ¯~ÖPß3Uþ,™Ž3Ô6?Ý–W~šŸV–TtêaÉ©òÓü´Š¦§ê3jÃæWÎI§P᪂Iyêÿ—¾ßK·FªpRè©*ðJ[5>´b¦~T¿êöD„\€êE€\Õw¢*¹Š\e¶2ee¯d½5Æ ƒq†,Z¡bRŸ™Ò­…¥ç¡,Λ!pÔò™©pf‰%õ$@®ªŒvЕ©Ê¦ÂݨF©çXFѪá³Ï>ëþé›­úé¡\€|¨åi~>ì£ÈUùý„˜ÊÏŽ–‰ 2•¨ãsN[·0êóPz ¼žÈ§[ ׯ_Ÿ³7šAØ›•)"Âs••÷[ˆ)H€ @€€7Vv!¦¼¹œŽ @€ S>(Ò @€ Ä”—[Ù+éaªtaˆqiÈY˜ @ r<3¹ƒžbʃó­@ô0Uº0D€¸4ä,L… 9Nó‹ÜÁ OÏÊû­ Ÿ™²1á8OrêT¦’t;“† $*SAº£<°ò~ 1åÁÙt@€ ¤G1•žÏ™1 @€ àbÊDº€ @€Ò#´˜²²W2½°I{ÆÄeÚþgö€B"À3S!y[R$´˜JÑ!Ì9|Œ¾°€@*8Í/O3ÏP ¦Bõ vK€ÊT°®Á0@É 2•œË“™°•÷[ˆ©dB’‰B€ @À+;S6â +!@€ ÄT2®f¢€ @€€Oˆ)4­ì•ô0Uº0D€¸4ä,L… 9ž™ŠÜÁ O1åÁùV z˜*]"@\r¦Bˆœ§ùEîà„§gåýVÐÏLY¸cö’„C=½©0y®0yž¼ºq™¼ºqyzŸñ˜•'%N€é‡L€|²wjcÛQûŸ!ãGO‘g^{@¶îÜP›Aè5H±ç#+;S^ëϾÆC/tX 0õ¾«-˜‰‰ %êx¦$òQnGLyðÉËDº€€$/#ŽJÔLòQ¢ŽgÚI …ávÄ”?¼<@¤ !@ò2â¨DÍ$%êx¦$òQnZLYÙ+Iò #˜±õ @òªeÆÈK€|”—í `ù( Ÿ-¦Â@4²$¯‘qb!@òŠÅ“q΃|§_™#@> #.Sü@òò‘. `„Éˈ£5“|”¨ã™v’bÏGVv¨!¦<¼üH^ ÒŒˆ=yqfA€|Dh@ ±ç#+_‘„˜òðš#yy€H0B öäeÄ ˜‰˜" <Øób*¡GL%äl¦š<Ø“Wò6€|dܘ ÄžSÃP·ZÙ+Iòòàlº€€±'/#nÀL*SÄ’'{>BLyq+SœM0B öäeÄ ˜‰˜" <Øó‘ô3SV "¦’_ÏØ“WB®Œrªä£(Ýʤ 0(Øó‘•jˆ)/P’—ˆt#bO^FÜ€™T¦ˆ$O€|F ¦<ø1å"]@À’—G%j&ù(QÇ3í$ Âp;bʃH^ ÒŒ yqT¢f’u<ÓN’ù( ·-¦¬ì•$y…ÌXz yÕƒ2cä%@>ÊKŽv°G€|†Ï‚Sa Ù ’×ÈŒ¸± yÅâÉ8çA>ŠÓ¯Ì ƒ …ˆ)~ yy€H0B€äeÄQ‰šI>JÔñL;I±ç#+;ÔS^~$/éFÄž¼Œ¸3‡ @>"4 Øó‘•¯HBLyxÍ‘¼<@¤ !{ò2âÌDLHž@ìù1•Pˆ#¦r6SMž@ìÉ+y@>2î@̇@bÏGˆ© ‚a¨[­ì•$yyp6]@ÀØ“—7`&•)bɈ=!¦<„¸ˆˆ)Φ !{ò2âÌDLHž@ìùÈŠú™)+SɯgHˆ@ìÉ+!WF9UòQ”neR”@ìùÈÊ5Ä”‡(ÉËDº€€±'/#nÀL*SÄ’'@> #Sü€˜ò‘. `„Éˈ£5“|”¨ã™v’ÈGa¸1åÁ$/éF¼Œ8*Q3ÉG‰:ži'I€|†ÛƒSVöJ’¼Âf¬€@=¼êA™1ò å%G;Ø#@> ÃgA‹©0lÉkdFEÜñûÇO–#'·õý¥‡×Éêí]ý?<¡E>uÒÔþŸŸX·K¾¾tS¦î5æ§Nž*o‘Ï?¸NÖí|ÓÞÃ'µÊž0EB±³pP@ò*<Ãf"@>Ê„©î7‘êŽ<‰ÉGa¸1åÁ$/kÐ… ©I£šäÂÙce¿1Í2PLki”c§rÓ{B)C‰©)£›äô™cœ \²fg ˆÑe$¯,”¸§(䣢È?.ù(L¿X·*ö|de‡bÊÃ+‰äåb »ø£§Èa[÷S¥!C«ø %¦jˆˆ®+ {òª·H€| SÊL"…íkÖÅž¬|EbÊÃ+‡äåâ€.šä²CÛå¤é£eTSƒ¼º­Sn~¾C^Ú²§ÿÎ㦒·Ïi—icš¤cOÜýÊvùù+Û÷1¦VÉKÇ>û€1òÈêrÖþcä¦ç·ºm…ó&·É–m‘G^ï«Í›Ô&ï8dœÐÞ"»»{Ýý?za«ôôö™zòŒÑrù¡íÒÖÔèì?rr«<¡µ›_–íˆYYø÷Tz=Æž¼Òóh\3&ù÷'ùˆ|ä?ªüô{>BLù‰½¼ü»é]‡—ó+ÏlØ-ÏoÞ#o™=V\uiÓ®n·5ï/O&›wwËâ;ä‚Ç:±òOop÷—_µS<Ή¹;_Þ&GLi“™c›å–:伯ÊÖ=ÝòK6ÈþãZäÓ§L•õ;»äÖ—¶ÉŒ±ÍrñÁãä¶ÛäÇ/vÈøÖFùü™Ó¹w¬Ø&o‘C'¶J[SC¿˜ÒíˆGOm“écšå­Ûg;b%,ü{*½cO^éy4®“üû“|D>òU~zŒ=!¦<ĉ•½’$/Î.뢵©AþöìéÒÕ+ò÷­‘Ξ^9yúh9zJ›<ôúNY¶q·LÝ,‡Ll‘µ;º]µêÜÆÊ•sÇ;1óÓ—·ÕML]zH»|ñáuNø1kŒ|úž×å=QfŽm‘Ï=¸V>pÄ÷ûkµI–®ßíìúøñ“eÿöù̽¯»ŠÖ{æN‡Wï”o?»YZT0ž=ÝUã²@Q ¿žJ³·Ø“Wš^gÖä#¿¾$‘üF”ßÞbÏGˆ)ñb"É˃³Ëº˜5®Yþ|Á4y¥£S¾òèúA;×Ê͇wÛêÆ¶4JSƒˆnŸ}Å6W©ªWeJÅÔ_üb\|p»œ½ÿù߯–ΟäNãûß÷¯•?9iŠÌ™Ð:è>ûÀZ9瀱îð‹›Ÿß*w­ìÛ¢ø§'Ouª¬bª~=•fo±'¯4½ϬÉG~}I>"ù(¿½Åž¬è€ Ÿ™²‘äåwq8`\‹|fÁTyµ£Sþv1õÎCÛå-s­Dé³U—ÌWˆ˜úóûÖÈ%sÚ]•鈩Oœ0EæNj•ï/Ûâžû*¿VmërÛ«S•°ðë©4{‹=y¥éÕxfM>òëKòQebŠ|ä7þFê-ö|de‡bj¤HÍðw’WHÜ¢[Üþöœn{Ÿ ý¯Š¥s#¬ÚáTI¤|í‰nÛß{çMp•!}îhрʔn«;br›|ù‘õòÚA£fiåH+HO®Û%ÿUÁ÷Lé3SZ™NLé>µû¦_oí?ã ­ÒÝÛ++;:ÍzVñ?ÏlÝRò¥³¦ïõÌT ÝP§V¢7pëbO^8Þ6ò‘_ÿ‘ÈG~#Êooä#¿<óö†˜ÊK®¬ÉËÄ]¼oÞWéÑ(–oÚ-Î'£šäo^ï¾Èöª#'¸ï\R¢¬SgŽv‡=èóSß[¶E´êSº®8l¼\0{¬ûn¦g7îîΪô÷1-NÀììêq‡Dìîî‘Ç×ìr"n¸+‹˜Òç™þâÔ©îù/Ý‚¨‡IèóU¿Þ´[T<€böø™3¡EÆ47ÊçZ'ëvt¹çÅš¥ÿ a÷¾Ú·%Pí|ϼñ™Yø÷Tz=’¼Ò󹥓ü{‹|D>òU~z$ùáXm/ˆ©j ŠÉËÄ]èA úLÔ ûê;½£Sn~¡C^x㤾ɣšÜA¶·¸g«¾ùôfÑ„§[ê~üÒ6wÂ^éRó¡£&Ê‘SÚ¤ADîm‡\åׂ£Ýxz¯^ù‹5²uOOÕbJ;ЪØÂCÛeÖØfÙÙÕë*`?z~«ìêîk§è؇wÏ|ݵr›;ÍOŸ+}ÉðWΙ!£›Õò}/µSÛeeáßSéõHòJÏç–fL>òïó×ÉC IDAT-òùÈTùé‘|ä‡cµ½-¦¬ì•$yU†´‡€$/;¾JÑRòQŠ^gΩ …áù ÅTˆF¶‚ä52#kwh¥ê¸ýF iö®®^÷ŒWzH^éùÜÒŒÉG–¼•ÍVòQ6N)ÞE> Ãëˆ)~ yy€H0B€äeÄQ‰šI>JÔñL;I±ç#+;ÔS^~$/éFÄž¼Œ¸3‡ @>"4 Øó‘•¯HBLyxÍ‘¼<@¤ !{ò2âÌDLHž@ìù1•Pˆ#¦r6SMž@ìÉ+y@>2î@̇@bÏGˆ© ‚a¨[­ì•$yyp6]@ÀØ“—7`&•)bɈ=!¦<„¸ˆˆ)Φ !{ò2âÌDLHž@ìùÈŠú™)+SɯgHˆ@ìÉ+!WF9UòQ”neR”@ìùÈÊ5Ä”‡(ÉËDº€€±'/#nÀL*SÄ’'@> #Sü€˜ò‘. `„Éˈ£5“|”¨ã™v’ÈGa¸1åÁ$/éF¼Œ8*Q3ÉG‰:ži'I€|†ÛƒSVöJ’¼Âf¬€@=¼êA™1ò å%G;Ø#@> ÃgA‹©0lÉkdFÜX¼bñdœó ÅéWfÁˆ Ä”?¼<@¤ !@ò2â¨DÍ$%êx¦$Øó‘•jˆ)/?’—ˆt#bO^FÜ€™C H‡@ìùÈÊW$!¦<¼æH^ ÒŒˆ=yqf"¦ˆ$O ö|„˜J(ÄS 9›©&O ö䕼ƒ w æC ±ç#ÄTÁ0Ô­VöJ’¼<8›. `„@ìÉˈ0“Ê1ä ÄžSBÜ DÄ”gÓŒˆ=yqf"¦ˆ$O ö|dEýÌ”ˆˆ©ä×3$D öä•+£œ*ù(J·2) J ö|de‡bÊà ”äå"]@ÀØ“—7`&•)bÉ …ˆ)~@Ly€H0B€äeÄQ‰šI>JÔñL;Iä£0ÜŽ˜òà’—ˆt#H^F•¨™ä£DÏ´“$@> ÃíA‹)+{%I^a3V@ H^õ Ìy ò’£ì …á³ ÅTˆF¶‚ä52#î€@,H^±x2Îyâô+³‚À`ÈGaÄbʃH^ ÒŒ yqT¢f’u<ÓN’@ìùÈÊ5Ä”‡—ÉËDº€€±'/#nÀÌ! ¤C ö|då+’S^s$/éFÄž¼Œ¸3SÄ’'{>BL%∩„œÍT“'{òJÞÁÆŒ;ó!PØóbª‚`êV+{%SL^ZfÉ–ÎU¼L– Œjjwæïêî°<Šl=yUƒ›ƒ#Z>Jq .è1(Å÷%±ç#Ä”‡—ˆ©%/uíÇ[$ß~ùwTâÜrgO»Ú™ߺk,O£"ÛcO^Áàæà¤–R\ƒ‚ º :hÌIrÖ´«å;/ÿNÖÔÏ„Øó‘ô3SV ¦–¼Ž°P.õYYºe±,Zõ¹ú­ŒýDø÷½ÅÙôo/\–Lu*öäTaLÅRÊG©®AE ~ã ÿ”ÙcNrbêåK˜qßcÏGVv¨!¦’yÉù›èUW]%ãÆs~÷»ß•ŽŽt¶xù£h¿§Ò‡:“%K–¸\€êEàŒ3ÎcŽ9Æ w÷ÝwËòåËë54ãD@ßp_zé¥Î¢U«VÉâÅ‹²SR €˜JÁËç8wî\9ï¼óú{Ôä¥IŒ+-­­­¢¢Zÿ«×ž={äºë®sÿå‚ Pkíííò| ýPO?ÜãJÀÂ… eæÌ™ýW1¥¢Š õ"€˜ªéHÆ)¯J•¦Du*çV0 Ô*¬Ë/>® ·BU` ª _4Ë«R¥IQŠÆ½f&´˜²²WÒŒ·«4t`UªÔÕ©*Ák>ðá’ù|2lÌ‘˜ £XƒŒ:®f¬J•† :UØt9$ Å~ ‹À`U©’…T§ÂòU-­ìáÒxT§jIž¾!%ÀD(ÁªRT§ˆ" ¦Š npÌ¡ªRT§ :³ “‡úD˜êTPi d&À”Uô7¾ûÝï–)S¦ 9Ïo¼Q6lØ=‡˜'he‡b*æ(ô8·U)=h tøÕ) ïjà'ƒÅÕ©Àˆy0L€5Ȱó<š>Ò¼: x^PWV¾" 1UP€X¶|ÑÚ¶m›<öØcn‘Òߟ|òÉýǤ³pYòjå¶–"¬"jéÒ¥î_[[›è‚W:‚g§*gK @`d¬A#3JåŽòxõ½‡þ[¿~½ÌŸ?ßý+}ØË#¶#1eÛXÿÒØúæ¹$¢Â)‰*½—ã±ã ýDøàƒîQA×7:§Ÿ~º»‡êT¼qÀÌ P‘Ö Ýò¥ß=¥Çd³å¥Ú[ú€W”~¿áÀïºÔ÷"%QµbÅ ¾¾¥ö.©Ùˆ)h­ì•ô0Õ`»(UÊ¿ q(¿ vo°ðŠ”’“V¢ÊE”.tz•a¯Æ‡Æß?Vbn††!0ؤàèZ£o¦æ(Ö xÃIóŽú»\D©¿5Ê_Š™÷ÆK&¾™!¦<øÔ DS5Õ~1定[:IiõêÕ²hÑ¢šCÇ€#ÀD\””ŽHçHô¸bÂÊûÍ Ÿ™²1®Ðy6T Gf”ÂC}*œÂÜ™# P<Ö â}ŠƒU¦B± ;ò°ò~1•ßÇ´„ @€&€˜JØùL€ @ÈO1•Ÿ-!@€ „ -¦¬ì•L-~ðKj|¾<¯@@E` *’~Xcv²lXbMÌ‚S1ƒ·<7±ì=¶s’–?–ôTN€5¨rf±¶¸úê«ÝÔ®¹æšX§È¼&€˜òàœ³—xèÅNLž+Lž'¯n\&¯n\nÇð*-³²ï;•FºR‰‡ñ£§ÈQûŸ![wng^{`$,Ñü=kD3a&bŠ@*ë:%Õ5HçžuJ%N;l¡{>ô|Z_Ó‘5L-beÆZÙ …˜òaëÏæ“ƒïbê}}Ÿ|t#²ý÷¬q`{–Xo•ëUÏUfwÖuˆx¨Œ«µ»³Æµy•ìµ² 1å!ÂX¬<@4ÐEÖE‹x0àÌ*LÌU ASä&Àú“©†Y×!âÁ”[+66kTÜq S8¢f°XÕƒrñcd]´ˆ‡â}UK ²ÆA-m o E€õ'ØÈºqÇCÖ8°J1åÁsVöJ²Xyp¶.².ZăgVabÖ8¨bšB 7ÖŸÜèL5̺¦ÜZ±±Yã âŽi€˜òà+Y¬<8Û@Y-âÁ€3«01kT1M!›ëOnt¦f]‡ˆSn­ØØ¬qPqÇ4°¢‚~fÊ D«@^u56#ë¢E<ÔØwŸ5 6“á%Àú“†ã³®CÄCÜñ5¬R°²C 1å!ÂX¬<@4ÐEÖEËZtŒ†éëÝ= £vðþ›&fS“ÂØhX[¢_ç‰d]‡¬Åù¨²@Ê•õÊÝ•@LUJlû­-V¦œdY-kñ ÉKºš¥éÄ¥"½Ò»¹]º;V~Õ‰ÞmcTe9ŸwÞvŽY³Ööi/BÍ]Òýܡҽôi:þiiœºIzVÎ’î_Ï‘–·Ýç„•SO!-o»×õ¥}v?q”Hs·´\`ë;ª²ÆA’/&]8këOáÀŒu²ä£Ê2kTÖ+wWJ1U)±ˆÅÔÀê´í‘Æi¥éøg¤aìéºû4éY3uPbúÆ»ùÔ'dŸO•Æîì{S~ä¯E{=Ð.®‹¬‹–ÉäÕÛ Í§?Þ·ûéÃ¥ç•YÒrñ={ßsã%Ò|Ê“Ò8{Õ^¿ï¼å­®BÕ4ÿ¹þßw© ›µÆýÓØê^:OZÞùÓþ¿÷®›"?;]Z¯¸]¤µ³8ÇV8rÖ8¨°[n‡€ÖÖŸ¡&M>>²®CÖâÁ‰)òQæµ kdîsZLYÙ+im±6yõWDdÇhéÒêAoƒ´¼õÒ»s”Hw“kÞ­[¶Fí’¦ùËûºké’†¶ÝNLõW9z¥wÓéZ2_š[!MǼqo®P-¾QÖEËZ< š¼ž9ÜU—²ˆ©Þíc¤sñÒ|þƒÒ¸ß†A5œ˜Rei«_Ö8(>b± EÖÖòQ¾(ͺY‹òQeñ5*ë•»+%´˜ªt2EÝom±.yí[=˜,?;CZ/¿C´RUººî[ 2z§4Ÿ¼t¯îÿTi®ô¼2sŸ7æEù+ï¸Y-kñ0Ðg½[Û¥ëž}ÅùËöÂ5XeªwãDéüéYÒrÉÝÒ0~[&1Õ«BýÁútø…lóË“´ƒÀ@ÖÖòQ¾&‰D²ÆA¾(£UVˆ©¬¤†¹/êäµ~²tÞu†´^q‡HkbJ«—Üívq]d]´¬ÅƒÛš¹r–HSÏMôJÓ!¯¸íÒØ“]L]t¯4LÜ:¤˜rP4w‹ènÏî&w8EÓ‚'¤a̮✚cä¬q£kš@ jÖÖŸŠÄù¨WÖuÈZ<*[²ÆAe½†s·•jˆ)1cm±Êœ¼v·ºm{½]MûT²V¦´jÑuß)ÒxÈÊ}ªÐ×µ‹¬‹–µxp•©Îi:áiéY±¿ô¼|€´\t¯;Xbà5è';GIç-o‘æs–Æ™ëÞlÒÓØ/Æú xËý¢jª¡­S¤ÅÎsR岯A]ƒ“Á ðkëù(_èf]‡¬Åù¨²xÈ•õÎÝV¾" 1å!f¬-VÃ%¯þêÞÔÝ(3ÖIÓ)OJÃ软NLõW9zúN€k<äi>áé}ªÐ×µ‹¬‹–µxØk›_oƒÛ²×0yó>[8öPüø|'¤šNüU¿OôІÆ÷»Áž™ª«ó<–5<IWÈLÀÚúC>ÊìÚ½n̺Y‹òQeñ5*ë5œ»Sáø¢æ–X[¬†M^zÅ[î—Þ­ã¤ë“¤å-¿tëÖ°•©7ªî;‹ôèì¦îšû d]´¬ÅÃ>ÏLmš wž%Íg?âÄtù5”˜êYq€t=rœÛ¨Û÷zVM=PŸ‡j˜´1Ue ˆˆµõ‡|”/lÉGC¸G>ÊS!¶BLyðŠ•½’1%¯ò(º?FzÖMv'ù |v&ë6?aL©$/ÞýÔ}Ûýôhô²íxC‰)mÓóÂl÷}Sz¸DÄ}¿´wàá&Á8¶BC²ÆA…Ýr;¼ ½‰q°‘¼@ “¬ëµxô+òÑ—5Ù\& ¦raÛ»‘ˆÖ«á> Üë oW³tÞv®4Î~Í}Qkù…˜:Àc‰/á(»ˆ=yEé´„&Ëú³ÏÖ`òÑ^QœuŠ%z W4Õ¬qPQ§ÝlEýÌ”ˆ±,Vƒ=×Òóú4éºwAßv­)›ú_bˆ)ÄT@ëm]M‰=yÕ&ƒy'@>¢2UT±Äƒ÷J$Æž¬ìPCLyxA±Xy€h ‹¬‹ñ`À™U˜˜5ª‚¦ÈM€õ'7:S ³®Că)·VllÖ8¨¸cTD1U®Áof±òÑ@Y-âÁ€3«01kT1M!›ëOnt¦f]‡ˆSn­ØØ¬qPqÇ4¨ˆbª"\ˆ)¸Ìv‘uÑ"y™uq&óÆA¦Î¸ ž °þxhwY×!â!Pz2+kxŽn† ´˜²²W’Å*×WÖE‹xˆ;²ÆAܘ]¨XBõŒ_»²®Că_î¡õ–5B³;6{‚SV`³XYñTuvf]´ˆ‡ê8‡Þ:k„>ì‹“ëOœ~8«¬ëñwQ™u*2ˆ…ÚÇBÖ8¨½%µÁŠú™)+‹\¬|'¯ß;n²ìèì‘o>³¹6¯ ©Çµ0>ë¢Ud<øL^õðS=Æð YãÀ÷¸ô,Š\ÈGY<ä瞬ëP‘ñ@>òãëázɵ·¤6#XÙ¡†˜òàÿ"+ŸÉ«µ©A¾|ötyrí®š‰©²®CEÆù(›/«¹+kT3mG&€˜™Ñˆw ·X]vh»¼õ qòƒå[dî¤69jJ›¬ÚÖ%×>½I6ììv}Ï×,ï>|‚Ìß"]=½òÔº]rÃò­ÒÙó¦|8cÖyËì±2iT“lØÕ-?}y›<¼z§k?pÁ:`\‹üÉÉS\ÿ_]²^vuõоq]xH»œ8}´Œin×¶uÉ ¿Þ"+¶tº>ÎÚŒ¼oÞ„}æúoOn”g7ì‘ÞÐÐ òö9í²`ÆhßÚ([v÷Èý«v8[³Žñ®ÃÇËùŽ•kžÚ$GLn•3ÆÈ¨æùîs[äU;\?ó&µÉ;'´·Èîî^ydõNùÑ [¥„k8ž‡Oj•?êJ>êã@>Š;ÈGžМÝ!¦r‚+o6\òºdÎ8÷F½cO<´z‡ÌÛ"ÇLm“§7ì–ÿxr£è'íŸ=c?™ÔÖ$7,ß"‡Ll•“§–¿Ø!·­è!ó§Ž’«$kvt¹ç¢N™1Zö×"ÿµt“<¹n×^bêG/tȧO™*£šäï[/ëßl¿uÌ$9a¿Qr×Êí²rë¹èàv'Ì>÷àZ·­o¿1ÍrÚÌÑNø½´eAz-Û¸G6ïî}#]gï?FÞ;o‚yÏoÞ#ó§¶9Û¾ýìf÷»,cœ¹ÿyÿ¼ ²z{—LÝ$K×ï–ÝÝ=òØš]²lãn7oßú]NÍÛ,<αRf#ñªä£áÅùˆ|T‹õ'Õ>ƒSVöJ—¼.:xœ\zH»<¶f§|óéÍÒÒØ sötimlÏÜ·Fzz{åøýF¹ê‘ # ¶`ª<»q·üÛ]\þñISä ­òÿ-Ù /nÙã*28VVlí”{^ÝÞ/¦T°Llk”Ã&µÉ×~¹Á ½&¶5ÉçÏÜOVoërK/?~²¨øºóÊQ©jóØë;smóS!¥ L«H*úZš\ÕmýŽnÙÖÙãÆiŒã¦’ÍŸäî¬*ö#&ˆVé®ýÕ&'´ôÒyìßÞ"Ÿ¹÷uÇw8ž%1¥¨]½ò¿Žž(ÿùÔ&ÙoL“\qØxùëÖ:‘5Ø•õMôPñ@,Ä Yã դ¼‹%@>êãO>^L‘ÈGÅ®Tq´˜²‚:Kòºé×[åç¯lwSúÌ)S úò#ëåµmrÁì±N Lhk’F·%OE“Š'½þöìé2¦¥Q>}Ïë²kªIi›Ÿn T1¡•¤Ï?¸®›à“ÛœàìR¦•#½æNj•Oœ0EòŠ)JpüilÙÞÙ#/lÞ#KÖî’Ç×ômGÌ2†Ví~çØÉòjG§üí£}¯üú““¦Èœ ­ƒÎ峬•»º‡åYS*ÆTÞ}ô˜Iòop"ö=sÇ;nëvv ÚÖ7Ñ#‰)bÁv,d+ëvÆE€|ÔçOòQòQܱ@> cýFLyðC–äuóó[Ý;½>³`ªèsM*¦&´5ºÓíT<|ûÙ-ý?—‹©¯œ3CF77¸-hZÁx•Ä”þí×›w»måÛK╎N¹~ùÞÏíè앵;úă>‹ô'LÎ-¦´™c›Ý6ÄÃ'¶Êìñ­NXéó_ZAË2FIL©»öé}OT±§¢ïû˶ȫÛúž÷*]ú,Úa[‡åYbñõ_mrÍŠSÄ‚íX yyX4é¢fÈGo¢%,¦ÈG䣚-F:¶²C 1åÁÙY’×’5;åOo–æ7¶ùµ55ÈŸÝ»FÎ9`Œ¼ãv¹}Å6Yüb‡{®IŸoÒç–þáÊÔ§Nž*oq­öLÓ,W9AVn픽u¯g¦ôçÏž¾ŸhÿÿïCë\•ª½µQ¾xætÙÞÕ#uÿZéîéu¿ÓD³fG·ly㙨Ò¼¡„ÌH¨¦ŽnrÕ5µQ/ýù¯OßO–oÚ-_ûeß–Å‘Æ(‰©òŠYù¸ï™;Á1+¯îèÈîÞ^YÙÑ)4nXž!ˆ)bÁv, ¦FZ ø{‘ÈG}ôÉG}FªL‘ÈGE®W#må+’S#y2Ãß³$/­ݹr›ØÞ"ú\Ð3vË¿?¹Ñ|÷¡£&ŠVî~e»;Énâ¨&w‚>c¥ÏNé |9z¢;€âþ×ú Ð~ôïú,ÖÀÓüJÞ>úúNùÖߥâëô™cÜÁ z:ß‚™£åÀq-òÏeÏVéŸ?c?ÙÑÕ#w¬Ø& ®j¥Ïre¹T?m”Üþò6×N·Î]8{¬ÛÞ¨âG¯‘ÆILMÝ,qêTÑ Ðq-ŽÙ¯U°=12Ï==½îŠ"+SÄ‚íX@LeY ¸§(ä£>òä£lbŠ|D>*j­Ê2.b* ¥HîÉ’¼ô¿VPæLhqÇ’ãéM¦‘ß8j¢Ûš§'þ}÷¹Íî™ =¡î¹»Ýáz{ÀX9ïÀ¾£Ñ7îìr[K'î Sºµî/O&ÓÆ4Ë?<¶ÞT¡Ïa]~ØxWùÒª•n‰»õ¥'®Ê/&o9hœ)»º{äΗ·÷m>’»ôD¼w>^ŽœÒæŽ_×ù<±n—,z¡c¯cÞ‡c$1¥6è3` m—Yc›Ý!*ö~ôüV÷<ÙH<ï\¹½p1E,¼¹UÕb, ¦FZ ø{‘ÈG}ôÉGÙÄùˆ|Täz5ÒØˆ©‘eø»•½’Y’Wù¶´ Sç– d}=Ò¶ b!@çV`RÖ8¨ Kn…€7ä#o(ƒî(ë:D> ÚU—5ª¨ SÀ[{òÒ“õ;)†»ô‰¡Ž÷ At‘uÑŠ9y "Yã ˆ Åˆäú="e«LYþp|>²¢‚~fÊ ÄØ“WrïF†˜pÖ7Ñ1‹)b!þä…m Ùö_VëÉGYIÅ}_Ö8°JÁÊ5Ä”‡.yyèž.!uÑ"qXÌÈ5žn!0,ÖŸ4$ë:D<ÄYã n ÅÏ1åÁ,V è"ë¢E<pf&fƒ*† )r`ýÉÎTìëñ`Ê­›5*î˜@LU„kð›Y¬<@4ÐEÖE‹x0àÌ*LÌU ASä&Àú“©†Y×!âÁ”[+66kTÜ1 *"´˜²²W’Ū¢˜3{sÖE‹x0ëâL†gƒLq<`ýñ 4Ðî²®CÄC ôdVÖ8ð4Ý A h1eÅk,VV IDATD+Î6ÐEÖE‹x0àÌ*LÌU ASä&Àú“©†Y×!âÁ”[+66kTÜq ¬è€ Ÿ™²‘Å*W]ÍȺh5vDÁÝgƒ‚ÍdøD °þ¤áø¬ëñwØTÖõZªkbjï׬ êß8è?ä_Ÿ¿,®s†Ù2@ªÃ-ˆ)SJ^ÓG͕ιNÖìZ._é*ôìt‘uÑJ%>~Ø"™Ð2Ó%°”*•YãÀNdciLRYÔg©®Aˆ©½_±úïü —ÊâUÿ‡ycZÌDÄÊ5ÄTdWëé,\¸PfΜé†Y¼x±¬Z•Þv¿Z3¶Ðÿܹså¼óÎs¦._¾\î¾ûn fc#  Ö HYå4ÚÛÛåø€ë¥££C¾ûÝïVÙ#ÍC"`å+’S!EMà¶è'—^zi¿•*¤TPq¥Gફ®’qãÆõO\˜&2.@õ ÀTÊá¡ê©°.]úÁž~ÀÇÄT~deÊ«R¥_SJ/DÊ?.ÍžêTzqÀŒ!PÖ ¢È‡5nyUªdÕ©°|T­5ˆ©j Ú+éaªÁw1°*U2˜êTð®ónàÀO„KPòŽš!Z[[åÝï~·èé×7¾ñ Ù³gÌ!0°*Uš6Õ©x1åÁ—V z˜jð] V•*Mu*x÷y3p°O„KSò†™Ž !”Þ öç%K–ˆþ㊟À`U©Ò¬©NÅã+: èg¦¬@Œ'lŸÉPU©ÒÝT§b€¾ùé'ÂZ•ÒÿuñÉp±À,!P‘Ö ­J]wÝuT§ŠpNǪ*U2ƒêTR£á8ÍÏXÄ”ˆº®*Uêžê”Ðw1Ü'Â%Óùd8p'b ` 2ì<¦V•R!]þAÕ)ÀéjDT¦FD”ö åU)]¬–.]êþM:U4±•ŽI§:wœ üDX·ô•¶Óh”NSâ“á¸ã€ÙA (¬AE‘oÜòªÔêÕ«].Ò÷ š‹æÏŸß/ª¨N…ç»X-BLÅêYOóÒª”~ ´lÙ2'¢>Ü«b«$ª¨Ny‚`7¥O„K"jà1è#%QEu*@bŒ` 2î@OæO™2Å@R.¢Ê»VÑ­‚JÿíÞ½›ïòÄn†'´˜²²W2Ö Ó7ÈZy*ÿÎýV!ôÍtùïK¾âáß8£áŒ3Îpbº\D雽Ê}®ñ¡Iì±Çã¹…8CYA ºÞhÎa *0ƒj¨ÒJTéÒ÷$š{Êã£$ªV¬X!6lÆ~ ‰“@Ðb*Nä¶gUÚö§‹Ù¢E‹lOë«"põÕW»ö×\sMUýЀ@¬Ay¨Åצô\7»câó­•!¦¬x*;‡ªLbfÔ‘À`•©:ÏP€@âXƒ€7¦?Xe 2q°²C 1G¼1 @€ DCÀʩވ©hBމ@€ @ ˆ©8üÈ, @€ :@Lyne¯¤‡©šé‚g¦Ì¸ªæ†ò¼BÍ3 0 Ö ÂC ðÌT¼q€˜òà[+=LÕLœægÆU57”“´jŽ˜ a°J€Óüâ+: èg¦,@Ü1{I¼Q<ÈÌÆž"Gí†lݹAžyí¤æÎd÷&pÚa Ý/z>­#òǬìû~-.„F µ|”êZÜm¾'Ñ÷&úžDß›¤tÅž¬ìPCLUùªÓäµã ´U•ÈhÓ¦Þ×÷ýZ\ù(4`jK€|T[¾Y{GLe%5Ä}$¯*ÒÆ¼Œ9,!sÉG 9›©B@DÈGa„bªJ?¼ªHs#@ò2æ°„Ì%%äl¦ ÄT01´˜²°W’äL,cêB1UÌ ’ƒù(4š@À0òQÎ ZL…hx+H^¼„ðG€äå%=ù%@>òË“Þ :òQBLUé’W•icH^Æ–¹ä£„œÍT!À6? ;Ô4SU¾I^U¤9Œ@LsXBæ’r6S…@bÊÂW$!¦<¼I^ Ò @LrVb¦’s8ÓMž@ìù1•Hˆ“¼q4Ó„ÀbO^8Ú.ò‘]ßa9òˆ=!¦òDÅ€6öJ’¼<8š. `ˆ@ìÉË+0uò!´ÄžSâÙD’—GÓ ˆ=yr¦"¦ˆ$M ö|dAh}…ˆˆ©¤×1&Ÿ Ø“W‚.fÊä£h\ÉD ‰@ìùÈÂ5ÄT¦Pþ&’—ˆtCbO^†\©T¦ˆ$M€|†û©LUéÄT•icH^Æ–¹ä£„œÍT!ÀÑèVœŒ˜ªÒS$¯*ÒÆ ¦Œ9,!sÉG 9›©B1L -¦,ì•$y˺@LÕ3ƒä @>Ê&0L€|†ó‚Sa Þ ’—/a#ü yùcIO~ üò¤7„N€|†‡SUúäU%@šCÀ’—1‡%d.ù(!g3U$°ÍÏÂ5 DÄT•/G’W•icSÆ–¹ä£„œÍT!€˜²ðIˆ)/E’—ˆtCS†œ•˜©ä£ÄÎt“'{>BL%â$¯DÍ4!ðØ“޶K€|d×wX<bÏGˆ©²°C 1•)T‡¿‰äå"]@ÀØ“—!W`*•)bI …á~*SUú1U%@šCÀ’—1‡%d.ù(!g3U$p4º'#¦ªôÉ«J€4‡€1ˆ)cKÈ\òQBÎfª@LA‹) {%I^ÁÄ2†@ .SuÁÌ 9r@£   …á¼ ÅTˆ†·‚äeÁKölœ6¦YÞ;w¼<¾U¤A¤cO·üÛeýÎî}&sÙ¡íòÖƒÆÉwŸÛ"¬Úao²Æ,&ysXBæ’rv§J>ª#ì ‡"U¬F·#¦ªKòª Çæo‘Oÿà:Y·³ËcÏõïêNœ"‡Ml•G^ß)+·vÊèæ¹ÕéØÓƒ˜ª¿;ö‘äU°~Hä£p‚ƒ|ć{õˆÆØó‘…jêgÄT•ÑNòª Çæï8¤].>x\Ebª¡A¤·×£žºúÊ9Ó¥­©Q>y÷êí£2å zÆnbO^1p[€ÈGá8…|„˜ªG4Æž,|EbÊC¤“¼<@ÌÐÅí-rùaãEÿÛ "/mÝ#7ýz«¼¾½¯õ¥³¦K{kã^=­ØÚ)_}l½ûVv¾rÎ YÙÑ)?X¶E®:r¢LÓ,[÷tËÿ¾­»§µ©AÒ.'N-cšäµm]rï·ÈŠ-ýýªX;cÖ×Ú(kwtÉŸïew»¿k5iWW¯kæØfùÖ3›ÍcZå_~¹¡ßÖá¦û»ÇM–£§´ zË'~¶Úýþ€q-ò¡£&Ê´1Mò̆ݲyw·œ{ÀX¶ùeˆ#·Äž¼|0¢bêÃ|$B>ªO¬4Jìù15RDòw’Wí©Õ£/œ9]z{{厗·IcCƒ¼cN»lïì‘ÿóÐZW¹Qôö9ãœ@úÑ î£m{zäé }BG¯/ž5Ý ]="/nÙ#=½"×/Ûâþþ[ÇL’ö%w­Ü.+·î‘‹n—I£šäs®•=rÚÌ1òÁ#'ÈswËckvÊ»¯Å]ùëû×È®î^ùƒ&ËaÛäÛÏn–«Ž˜ Ý="ßyn³|ô˜IÎîE/tŒkÞ¤6™8ªQÞ?o‚›çuÏmîoóðêîÿÿ|Á4™5®Yôç]=rú¬1ÒÖÔ€˜‘®ŸbO^~(ÑKÈGµ§N>êcL>ª}¬e!ö|„˜Ê#Üca¯$É˃£GèB+NZyzm[§|í—e[g«üèî¼5;ºú·Á•ž3ꙩ’yaóù—'6J·*©7®‰mMòù3÷“ÕÛºäïߨf:±U>~üd'Îî|y›èÏSG7Éó›÷ȆÝò±ù“ä¸i£ä«Kֻꕊ©ýǵȟ߷Fþú´iN`}åÑõòwçÎ'Öî”ï<Û'Ú²\_=w†46ˆüñݯïu»Îû/N&vuËç諨é¸*Â8€" Ùêï‰=yUOˆŠ"@>ª=yòÑ›ŒÉGµ·‘Fˆ=!¦FŠ€ ·‘ä•Á‘n) ­B½¶½S–mÜ#w¿²ÝU™J×'OœâÏPbêÿ9eªÛ&xÍS›déú]{YuÄä6'œ»ô8­6í7¦YÞuøx™ÝÞâ*AÍ Nð|í‰n«ŸÚ8¡µI¾øð:'xô°ÝÞ÷峧˳vË7Ÿy³Ê4’¡Ä”nÔ­€Zqû'7ºnt+á…³Ùæ7S_=yùâD?õ'@>ªsòQgòQ}âm¸QbÏGt€ú'è(,@$yÕg1ijl“§’£¦Œr§Üom”M»ºå ¯“=Ý}¦¬bê ­s­òKE˜¶¥£S®_¾wiGg¯{>êOOž*o‘,ß"ÏnÜ#W>^ŽšÒ¶—˜ßÚ$_zCLéóXZI«µ˜zç¡íòŽF¯O ò%‰uãÌ@• UÎ,O òÑÐbŠ|”'¢ò·‰]LYØ¡†˜Ê¿ý-I^ ŽÐ… ¡ÏmÞÕã*QzÅœ(§Î-ÿøøÑm{z•¶ù &–ôï¥ÊÔgX+wíý}Mºuã‹gN—í]=òW÷¯u[õwºaÍŽnÙº»[þñü™®õÉŸ¯Õoyê4™1¶Yþõ‰î9*ý´²Öbª´­Bí×yèõ‰¦ÈÜI­ló«}(ºbO^uÂÈ05 @>ªÔ]’ÞB>ª}¼4ùh$Bõù;•©*9“¼ª˜¡¹.Øú¼Ó+Û:å¾Ww8AsþceÊè&'(Jß½tÕ‘äô™cä©u»dÙ¦=2¡­Qn_±­¿r5œ˜R3Jíu nË[0s´8®Eþù—ÜsRŸ=}?÷Ì”>C5yT“Ì›Ôê¶þéåþøÅùðÑk.¦ÔÎP,˜1ÚÈ3S‚ÉÃ-$/é¢&ÈG5ÁºW§ä£½“jsÃ@>*–itÄT•~ yU 0cóã§’·ÜwZŸž¡‡Qüä¥Y¾©¯*¥—ž¼÷¡#'Êœ -îçÍ»{ä+®“]}ÛGSú‰£>¤'úé3Q«¶uÉ­/uôŸ8or›¼oÞx÷\Ô/×îrãkUH·þÛ“å’9ãê"¦ho‘5Ñ »_­ßíŽ\×±°|«ÜûêöŒD¹-/’W^r´«5òQ­ ÷õO>z“3ù¨>17Ô(ä£bù›SöJ’¼Âd¬€@½¼êEšq*%@>ª”÷CÀ6òQþ º2¢á­ yYðRñ665ˆüÖüIÃòÀk;öú^¬â­Æ‚Á¼ˆ‹P BõLXv‘ÂòG5Öª¡ç¯-bªJ–$¯*ÒÆ¼Œ9,!sÉG 9›©B ‘,ìPÓ@DLUùr$yU æ0F1eÌa ™K>JÈÙL ˆ) _‘„˜òðR$yy€H0D1eÈY‰™J>JÌáL7y±ç#ÄT"!NòJÄÑLoˆ=yáh»ÈGv}‡åÈC ö|„˜ÊÚXØ+Iòòàhº€€!±'/C®ÀÔÈG„Ò"{>BLyˆg I^M0D öäeÈ˜Š˜" 4Øó‘ ô "¦’^ǘ|‚bO^ º4š)“¢q%@&±ç# ;ÔS™Buø›H^ Ò ˆ=yr¦R™" 4òQî§2U¥SU¤9Œ ysXBæ’r6S…@G£[q2bªJO‘¼ªHs#€˜2æ°„Ì%%äl¦ ÄT01´˜²°W’äL,cêB1UÌ ’ƒù(4š@À0òQÎ ZL…hx+H^¼„ðG€äå%=ù%@>òË“Þ :òQBLUé’W•icH^Æ–¹ä£„œÍT!À6? ;Ô4SU¾I^U¤9Œ@LsXBæ’r6S…@bÊÂW$!¦<¼I^ Ò @LrVb¦’s8ÓMž@ìù1•Hˆ“¼q4Ó„ÀbO^8Ú.ò‘]ßa9òˆ=!¦òDÅ€6öJ’¼<8š. `ˆ@ìÉË+0uò!´ÄžSâÙD’—GÓ ˆ=yr¦"¦ˆ$M ö|dAh}…ˆˆ©¤×1&Ÿ Ø“W‚.fÊä£h\ÉD ‰@ìùÈÂ5ÄT¦Pþ&’—ˆtCbO^†\©T¦ˆ$M€|†û©LUéÄT•icH^Æ–¹ä£„œÍT!ÀÑèVœŒ˜ªÒS$¯*ÒÆ ¦Œ9,!sÉG 9›©B1L -¦,ì•$y˺@LÕ3ƒä @>Ê&0L€|†ó‚Sa Þ ’—/a#ü yùcIO~ üò¤7„N€|†‡SUúäU%@šCÀ’—1‡%d.ù(!g3U$°ÍÏÂ5 DÄT•/G’W•icSÆ–¹ä£„œÍT!€˜²ðIˆ)/E’—ˆtCS†œ•˜©ä£ÄÎt“'{>BL%â$¯DÍ4!ðØ“޶K€|d×wX<bÏGˆ©²°C 1•)T¹ û˜?¾,[¶LöìÙ@€@aÈG…¡g`8T¦TH µµU®ºê*Yºt©,Y²¤ÂÖÜ@ðC€|ä‡#½@ ˆ©jèÑ6I¥í§Z•ºîºë¨N%L€@ñÈGÅû ´˜²²W’0J‡@éS@ý¯^Z™¢:•Žÿ™) PBñv¤N h1•ºs˜xJŸ–,£:ž°€@ ÈG)x™9Z €˜²à%l ‚ÀÀOKFQ Â=@ ä£d\ôD­ìPCL%¦L¾?¤:U =î… _ÈG¾HÒOÈ,|E’òCL…EØ ¡>¤:Œ‹0€@ÈGI¸™IŠbŠ0€@D†úêTDNf*€  p&z!€˜ò€ÑÊ^IS¥‹€ ü°³³SZZZd÷îÝÒÖÖÖo9ÏNìDLƒ òQNd ™ ¦2£úF+=L•.&Pþ=úE½úOOñÓK¿þ}æÌ™îw|ïTÀŽÄ4@Æ Œ;ó+"`EýÌ”ˆE7›" Ÿ.\¸Ð ¨+V ù½%QµjÕ*¾wÊ”‡1€€ š®¼òJY¶lÙ^ê ´ž|dßX92+;ÔS#û’;&ÐÞÞ.™ L™2E6lØù~n„ d! ùH·——vFŒÔ†|4!þ?S~8Ò  @€ ÄTbgºÕÐç£tëŸné[¼xqõÒ @ òQh4€gA‹)+{%=û„î'PJ^«W¯–E‹n-æA€@¬ÈG±z–yY"´˜²[!@€ ´ ¦Òò7³… @€@ð¬ìPCLJ@€ ´XùŠ$ÄTZqÉl!@€ <ÄTð.Â@ä#ÀéIù¸Ñ €ü ùåIoa@Lyð‡•½’¦J†pz’!ga* ˆ "v.SÄ”‡ °ÑÃTé€ @xƒ€ô3SV õ€ @€€?Vv¨!¦üùœž @€ „ ¦r6S… @€ü0+¦J¥¿(V¯^-«V­Ú‡÷÷!O‡j⡽½]æÎ+rÏ=÷oUò,±ŸÕÇ'²å/^_ÕûËŸò×SÐbj¸½’¥ç©¢X²d‰è¿÷÷Oâx(_#ˆâx8iŸ¼I¾ _”ñ@<„þ$¿ž‚SÃM“OÞúèðI>ŸäóIWõŸt±ž°ž”¿Žˆâx˜¹Ï[0Þoð~#„÷þ$¿žÌŠ)è € @€@åS•3£ @€ AL€ @€r@Lå€F“´ ðeÒiûŸÙC…ÀÌ™3eáÂ…îTÙÅ‹‡bv@ )ˆ©¤ÜÍd}@Lù H€ P-’˜ÒÃ!-ZTmw´‡r@Lå€F@€ @ˆ)b€ @€@ˆ©Ðh@€ @1E @€ @ÈA1•MÒ&ÀiûŸÙC…§ù…â ìH™b*eï3÷\S¹°Ñ€<à4?Ï@é9 ¦r@£  @€ Ä1@€ @ ÄTh4 @€ €˜" @€ ä €˜Ê&iàŠ´ýÏì!„B€ÓüBñv¤L1•²÷™{.ˆ©\Øh@ž pšŸg tS9 Ñ€ @€bŠ€ @€ ƒb*4š@€ @@L€ @€r@Lå€F“´ pEÚþgö€B!Ài~¡x;R&€˜JÙûÌ=ÄT.l4‚ Ï8ÍÏ3Pºƒ@ˆ©.†ÍF•IDATÐh@€ @1E @€ @ÈA1•M @€  ¦ˆ@€ @9 ¦r@£IÚ8€"mÿ3{@¡à4¿P<)@L¥ì}æž‹b*6A€€gœæç(ÝA ÄTh4 @€ €˜" @€ ä €˜Ê&€ @€SÄ @€ S9 Ñ$m@‘¶ÿ™= Ppš_(žÀŽ” ¦Rö>sÏE1•  @À3Nóó ”î ƒb*4š@€ @@L€ @€r@Lå€F@€ @ˆ)b€ @€@ˆ©Ðh’6 HÛÿÌ€@(8Í/O`GÊS){Ÿ¹ç"€˜Ê…F€ à™§ùyJwÈA1•M @€  ¦ˆ@€ @9 ¦r@£  @€ Ä1@€ @ ÄTh4I›P¤íf@ ‡~¸œþùòâ‹/ÊwÞŠYؤ ¦’r7“õA1åƒ"}@€@µŽ=öX9í´ÓäÉ'Ÿ”‡~¸Úîhä €˜Ê&€ @€SÄ @€ S9 Ñ€ @€bŠ€ @€ ƒb*4š¤M€(Òö?³‡  òQ(žÀŽ” ¦Rö>sÏE€ä•  @À3ò‘g tS9 Ñ€ @€bŠ€ @€ ƒb*4š@€ @@L€ @€r@Lå€F“´ ðÀoÚþgö€B!@> ÅØ‘2ÄTÊÞgî¹¼ra£ x&@>ò ”î ƒb*4š@€ @@L€ @€r@Lå€F@€ @ˆ)b€ @€@ˆ©Ðh’6K/½TfÍš%‹-’Õ«W§ ƒÙC€@a8€¢0ô ~ˆ)‚@LUŒÛ!@ &S5ÁJ§¨ˆbª"\Ü @€ @ bŠH€ @€ ƒb*4š@€ @@L€ @€r@Lå€F“´ pEÚþgö€B!À¡x;R&€˜JÙûÌ=ÄT.l4‚ ÏSžÒr@Lå€VË&W_}u-»§o$G`ÕªU²xñâäæÍ„!P-… ÊÌ™3«í†ö€@k®¹‘@LæPÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELæÌ1O1eÞ…L  ˆ©‚À3lÔSñ¹1˜OS9sÌ@L™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELæÌ1O1eÞ…L  ˆ©‚À3lÔSñ¹1˜OS9sÌ@L™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELæÌ1O1eÞ…L  ˆ©‚À3lÔSñ¹1˜OS9sÌ@L™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELæÌ1O1eÞ…L  ˆ©‚À3lÔSñ¹1˜OS9sÌ@L™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELæÌ1O1eÞ…L  ˆ©‚À3lÔSñ¹1˜OS9sÌ@L™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sù1˜C0Ç<Ä”y2‚ ¦ ϰQ@LÅç^ÄT`>ELUïÿú¯ÿ’3fÈ¥—^Z}gFzxòÉ'å¾ûî“üãÒÐÐ`Äêú˜‰˜ªgF‰bªzŸ’ÈG£1Uýë*´Sy$41µyófùÇüÇ}(wÞy¢ÿB¼ž}öY3fŒtÐAu7鍊n’§žzÊ«¢füøñrä‘GÊ…^(---òùÏ^zzzµëòË/—ã?^þáþA¶nÝêîÑ6S¦L‘³Î:KŽ9æ˜AÛi_ûÚ×äüóÏ—ùóçËÆåŸÿùŸûïmmm•éÓ§;>ø`Y¹r¥ü÷ÿ÷l>ùÉOÊĉeݺurÛm·¹ûÕŽ£Ž:J.ºè"÷ÿzUjgÝñÆ€ˆ©¢È3®u¡‰)òQeE>:oVFÒï݈)¿wî\=z´ûǵ7M^»wï–w¼ãN4­Y³F-Z$Ç{¬¼ímosB§t•óÔß;VÚÚÚœHY°`k³gÏY¶l™ÜyçòáXæÌ™³òÇ\|ðAùýßÿ}'àJbê7ó7eòäɲk×.y衇äé§Ÿ–O|â2jÔ¨~±¶víZùÞ÷¾'ûØÇœÕK…Tgg§h*äT¤uuuÉüc9ðÀåŠ+®èS•ØYT¬ ¦Š"Ï¸Ö „&¦ÈG•Eùhè¼YI¿w#¦üò ¡7ÄT^XL•ãùÒ—¾$—]vÙ>’k¯½Ö ¬Õ«WËk¯½æD„ ‡£>º¿¹¾¡Õ*‡þWßÌkå-oy‹455¹{¶oß.·Þz«¼ôÒKNzè¡rñÅ;Á¦âäïþîïäÌ3Ï”G}TÎ9çyýõ×eùòårÁÈÉ'Ÿìúøÿø÷{½ôw·ùe±SÇÏ~ö3éèèãŽ;ÎÙªš÷¿ÿý™"E“—ÎÿÊ+¯ì¿ÿž{îqBFÅNž*¦tŽ¥yi›o|㮺tÉ%—ìÕGww·üË¿ü‹¼õ­oíç]Sð S§Nu÷ë}ó7#ïz×»\…©t©?taÿÓ?ýS7n\ÿï{ì1¹ýöÛåSŸú”c —úöþûïwskllt¢/«™àÕè&ÄTÀÒmôBSYÖÏ,ë<ùˆ|Tä‹1U$ýÚŒ˜ª ×ܽ†V™Ê’¼¾õ­o‰V8®ºê*™5k–—UºŠ)½Où?òÈ#Î'åÛ3‡ªL}ç;ßq¬Ë+l;«U½ <4FLy€HI°*¦ÈG}á:ðÃ=òQ/cÄT~ðibÊ'M}YSú,>[£—>£óå/ÙUböÛo?¹ãŽ;Üö;}æg°K·ë}ÿûß—¿ú«¿ê1Û¶m“¿ÿû¿—~ô£2sæL'¦T¨ÈÑ1ô^íS…ÊŸýÙŸeSÃÙ©ÛñÔ–ßþíßîïO«\úIf%bJÅOss³«°©½'œp‚;¸¡´¥±ÔùPÛ&U¤¨ÐÔÊœ !5*Ä´ªW~=üðâðw~çwö:Á¯$¦ô _+xê}ŽköìÙ{õ1œ˜R{‡ÛÞ˜ÕN/‹ªº@LU…Æ °*¦ÈGoŠ)òÑÞy3„—3b*/øµ1å—gÕ½YSú&½tº_¥bJXÐ Ó`bJ·¯é¶1SZÙÒ«15œº¥ïÅ_”ßú­ßê÷ãâÅ‹°©DLéüµZ¤Ûõd?݆¨•²×pbꤓNrÏ•© ÑOYUX•_*²tK¢VßæÍ›·×ßJbJ+YÚV·½œ{î¹ûˆ1m4”˜ºå–[ÜÖM=˜bà¸*õR15’U¿ ò‘½¶%¦”¹žŽ¨>QŸ+¿Ÿüä'î¨tå£×`PTü5jŒ˜ªXºž@hbŠ|D>²žtÑ@LÅ·t"¦óihb*Ë—$Ž$Rñ«¯¾êŽÚVq¡Ïéw(•®Uý#=]Å -=UO[1¥Ç™kõk°K+23fÌQLi[ýÎ&}vJ¿ßImÔÓU„”ÄHá2Øi~úQ*Ìô²’Õ~òŠ)­ž=÷ÜsûlÁ+Ù6Øi~*`U Ÿ}öÙrÆgôOc(1¥7¨Oô8û^xÁ=¦GÝ뉊å_Ú;Rm$^õø;bª”#F¡‰)òùÈz>BLŸRŠ ¦ókhb*0 ÄT`>ELëÝÚ6gιð ݑíºýPl;]±–2zVˆ©¬¤¸{@Lä£bù×jtÄT­È×/bª8öƒŽŒ˜*Ö!ºñÖ[ou'Ù;VN>ùd9묳Š5ŠÑ«"€˜ª &€˜*Öùä£bù×jtÄT­È×/bª8öˆ©ÀØcNœSqú•YÕžbªöŒ!=ˆ©ø|Ž˜ ̧T¦sæ˜'€˜2ïB&PÄTAà6jˆ©øÜ‹˜ ̧ˆ©À‚9æ ¦Ì» D1Ux†šb*>÷"¦ó)b*0‡`Žyˆ)ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cžbʼ ™@ASgب ¦âs/b*0Ÿ"¦sæ˜'€˜2ïB&PÄTAà6jˆ©øÜ‹˜ ̧ˆ©À‚9æ ¦Ì» D1Ux†šb*>÷"¦ó)b*0‡`Žy«W¯–E‹™Ÿ€@½ ¦êMœñR €˜ŠÏˈ©À|Š˜ Ì!˜cž•)ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cžbʼ ™@ASgب ¦âs/b*0Ÿ"¦sæ˜'À6?ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cž•)ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cž•)ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cžbʼ ™@ASgب ¦âs/b*0Ÿ"¦sæ˜'À6?ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cžbʼ ™@ASgب ¦âs/b*0Ÿ"¦sæ˜'À6?ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cžbʼ ™@ASgب ¦âs/b*0Ÿ"¦sæ˜'€˜2ïB&PÄTAà6jˆ©øÜ‹˜ ̧ˆ©À‚9æ ¦Ì» D1Ux†šb*>÷"¦ó)b*0‡`Žyˆ)ó.d@Lža£&€˜ŠÏ½ˆ©À|Š˜ Ì!˜cž§ù™w!(ˆbª ð 5ÄT|îELæSÄT`ÁóSæ]È "€˜*<ÃFM1Ÿ{Sñù”A€ @u €˜ªd†€ @€â#€˜ŠÏ§Ì€ @¨ÄT 3 @€ ÄT|>eF€ @€@ ¦ê™! @€ ø ¦âó)3‚ @€ê@1UÈ @€ ÄG1ŸO™ @€ Pˆ©:@fˆ7 œvÚi2þ|ééé‘îînyýõ×å¿ø…lÛ¶­*L‡~¸Ì™3Gî¸ãŽŠû?~¼œrÊ)r×]wUÜ6oƒ"ÆÌk+í ÄJ€œÔçYrR¬μêA1UÊŒÑO@Wcc£<ðÀÒÒÒ"§Ÿ~º´··Ëüãª(U#¦:è 9ì°Ãê*¦Š³*À4† !rRŸSÉI7SªÄTÝP3(O\úó¸qãäýï¿ü÷ÿ·«VqÄrÜqÇ9ÁµiÓ&ùÙÏ~&{öìéÿä쬳ΒI“&IWW—,Y²Džþy÷·r15jÔ(yç;ß)>ø ¬\¹Òýý„Np÷èµjÕ*÷7­Œ©ˆÒ>›ššúÇY¼x±[/­v|òÉÒÐÐàþ~ß}÷Ɇ Ft¦ ÅóÏ?_&NœèÚ®X±B~øa×n¸1uÞ¿ù›¿)7Ýt“œwÞy®½¶½ûî»]ÛÙ³gË‚ œ½rÏ=÷ÈöíÛÝßöÛo?7—ÖÖVg«¶Ù¸q£ëãœsΑݻw;áúÜsÏÉQG%¿úÕ¯ä™gžq.Ü@ Vä$rR¬±Í¼êG1U?ÖŒ4ˆ˜Ò7úW^y¥|ýë_—¶¶6ùà?(ßûÞ÷œ@¸øâ‹Ý6À'žx±»üòËeÙ²eòì³Ï:ð®w½K~ðƒ8QQSwÞy§¼ýíowDÅ‚^ú‰Û©§ž*?úÑœÈxë[ßêú}ê©§ÜßUXÌœ9sÐÊÔ‡?üa¹á†dÇŽ2kÖ,™>}ºüò—¿Ñ—ÇsŒ}*¾TLyæ™òä“O:[Gó}ï{Ÿ>Z½[»v­kßÛÛ+£GýÛ¢E‹œ Óí’ûï¿¿ÜvÛm®O娶½ð Nª½·Þz«Û¾¡íþçþG.¸àY¿~½™*Ên¹å–ç €b%0PL‘“öÝîNNŠ5ú™—/ˆ)_$é'òÄ¥âéì³ÏvB¡ô¼R©ª¢üñNÜ{ï½2vìX'®½öZw¿^zogg§û¹$¦TôèÏ÷ß¿=Z•Ñg²üq÷»8@N<ñÄ~!1œ˜Òª™ 8ý§}g½Ô4ú<˜ "­º•_ÃyÅW8±£•·òK+ZóæÍëßÙÜÜìªX¥ªžþ¬Õ6¿Š>­l}ÿûßw .\(ßùÎwœ˜zõÕWeÍš5rÑEÉõ×_ŸuJÜ@ :ä¤>—’“¢ m&TGˆ©:Âf¨¾m~¥(T`¼òÊ+®z£•­ÀèAZmQA0fÌ÷Æ_ÅÔ´iÓÜ›ÿoûÛƒbTñ¢ÕíC«3¥j–Þü¶·½Mf̘á¶–.ïÆo1‰L˜0AN:é$9ðÀeëÖ­ÎV­ìd¹´:5wîÜþ­u<òH¿.qiNí×êZù¥Ü”Ï®]»ú­Û µr¦•îpI¤tŸ ­ {ì± ­ª© Óm…º/KâÒª” ÍòëÐCuâL·î ¼JÏžé³V:oÝâ§9Ä/>@C '‘“x}@ Zˆ©j Ò¾"Ã%.­¼hè'?ù‰è!ïxÇ;dóæÍý[U$év;=4A+Fú³V—ÊŸ™Ò£ÑUô}ôÑróÍ7»íuº­OO ÔçƒT¤é!zéA zéö9Ý’÷ÃþÐìP:lB…œ"qûí·»ªÖÔ©S]e'K5G·êÖÂåË—»þô9-R%15Ô˜jV¦SÊä½ï}¯è*˜ôÀ Wº•pÊ”)rÙe—É7¿ùM'6Ï=÷\ÇRŸ“¢2UQˆr3 rRŸ˜"'%ôLÕ;Ä”w¤t8á—° [ÏôÒmk*š.¼ðBÑíqz脊­2©ÒgƒÊOëx4ºnkÓg•{ì1ןV”Ž<òHw»Þ Õ®Ò)xúì–Ž«‚D¨Ð~K¢G+e*XT hL…ÐçFºÔF4*€ôzíµ×\ÛRUm¸1‡SÚ C=LCÛ—©X½zµC…žÎA·>úè£î™)µU…ÛüFò‡R$@NêÛæGNJ1ú™³/ˆ)_$é€ @HŠb*)w3Y@€ @ÀÄ”/’ô@€ $E1•”»™, @€ à‹bÊIú @€’"€˜JÊÝL€ @ðE1å‹$ý@€ @I@L%ån& @€ ø"€˜òE’~ @€ ¤ ¦’r7“… @€|@Lù"I?€ @€@RSI¹›ÉB€ @¾üÿí×!ƒ°þ­_÷@Ìa¦*I @€®N‚ÿ¶.Û IEND®B`‚rtpengine-mr12.5.1.22/docs/images/pic2_rtp_engine_architecture.png000066400000000000000000004024211474347554000251100ustar00rootroot00000000000000‰PNG  IHDRSœ«ëýsRGB®Îé›tEXtmxfile%3Cmxfile%20host%3D%22ac.draw.io%22%20modified%3D%222022-11-29T09%3A48%3A27.630Z%22%20agent%3D%225.0%20(X11%3B%20Linux%20x86_64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F101.0.4951.67%20Safari%2F537.36%20OPR%2F87.0.4390.36%22%20etag%3D%22dnvrlN2XUBeHhRzS1Vxz%22%20version%3D%2220.6.0%22%20type%3D%22embed%22%3E%3Cdiagram%20id%3D%22ZVddVUy6Ld71LEE-STXX%22%20name%3D%22Page-1%22%3E%3CmxGraphModel%20dx%3D%221422%22%20dy%3D%22838%22%20grid%3D%221%22%20gridSize%3D%2210%22%20guides%3D%221%22%20tooltips%3D%221%22%20connect%3D%221%22%20arrows%3D%221%22%20fold%3D%221%22%20page%3D%221%22%20pageScale%3D%221%22%20pageWidth%3D%22850%22%20pageHeight%3D%221100%22%20background%3D%22%23808080%22%20math%3D%220%22%20shadow%3D%220%22%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-1%22%20value%3D%22Correlation%20of%20objects%20(structs)%20in%20RTPEngine.%26lt%3Bbr%26gt%3BSignaling%20events.%20(Part%202)%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3D%234D9900%3BfontFamily%3DCourier%20New%3BfontStyle%3D1%3BfontSize%3D14%3BfontColor%3D%23E6E6E6%3Balign%3Dcenter%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20width%3D%22850%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-2%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3Bdashed%3D1%3BstrokeWidth%3D2%3BstrokeColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%2280%22%20width%3D%22770%22%20height%3D%22680%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-3%22%20value%3D%22stream_fd%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22660%22%20width%3D%22252.5%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-4%22%20value%3D%22Incoming%20RTP%2FRTCP%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BfillColor%3D%23E6E6E6%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.5%22%20y%3D%22832.5%22%20width%3D%22213.75%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-6%22%20value%3D%22%22%20style%3D%22shape%3Dimage%3BverticalLabelPosition%3Dbottom%3BlabelBackgroundColor%3Ddefault%3BverticalAlign%3Dtop%3Baspect%3Dfixed%3BimageAspect%3D0%3Bimage%3Ddata%3Aimage%2Fsvg%2Bxml%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAuMDAyIDAgMzE0Ljk5NyAxODAiIGhlaWdodD0iMjIwIiB3aWR0aD0iNDIwIiBvdmVyZmxvdz0idmlzaWJsZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWpvaW49ImJldmVsIiBzdHJva2Utd2lkdGg9Ii41MDEiPjxnIGZvbnQtZmFtaWx5PSJUaW1lcyBOZXcgUm9tYW4iIGZvbnQtc2l6ZT0iMTYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0Ij48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwMDAiIGQ9Ik03MC4yODEgNjQuNzUzYy03LjU1OS0zLjg5OC0xMy4zMDUtNy40NjgtMTcuMjctMTMuNzQ1LTMuMDE1LTQuNzcxLTQuNDAxLTExLjE1LTEuNzU4LTE3LjE5NyA2LjUtMTMuMTEgMjEuNzAzLTE4LjcyOSAzMi4wNi0yMS44MTQgMTIuNjE2LTMuNzU4IDMxLjA2Ny01LjgzOCA0NS43Mi01LjA2OCAxNi4yOTcuODU4IDMyLjA0NCAzLjY1MSA0Ni4zNjcgMTAuOTE5IDYuNDY3IDMuMjg3IDEzLjYxNSA4Ljg1OCAxNS42MTQgMTMuNzQ0bS0yOS4zNTggMzcuNjIzYy0xMi4wMjEgMy4xNTYtMjYuNDU1IDUuMTM4LTM5LjU2NCA1LjEzOC0xMi40NDkgMC0yMi44MDUtLjk5MS0zNS44OTQtMy45MjkiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNjU2IDg0LjM4OGMtOC41ODYtLjQ0MS0xNS4yMDItMS4wODItMjQuMzMtNi4yNzYtMTAuNjI3LTYuNTI5LTEzLjI5Ny0xMy42OS0xMy4xMTQtMjEuMTM3Ljk5Ni04LjIxIDUuOTI0LTE0LjA0OSAxMi4zOTQtMTguMDQgNy41NzMtNC40MDQgMTUuMzUyLTYuMzc5IDIyLjU5NC02LjY5OSA5LjA0Ny0uMzg5IDIwLjUzNSAxLjg5NiAyOC42MzEgNy4xMSA2LjA2NyAzLjk4NiAxMS4yODQgMTAuMjMgMTEuNTYyIDE3LjQ4OS43MTIgOS44MTUtNi4zNjUgMjEuMDI2LTIzLjIyMSAyNS41NDUiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU2IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNzk3IDg0LjQ2OGwxNi45NzkgMTAuNzQ4LTIuNjU2LTEyLjc4NSIvPjxwYXRoIHN0cm9rZS13aWR0aD0iMy42NTciIHN0cm9rZT0iIzAwMCIgZD0iTTcwLjMwNSA2NC44ODhMNTcuNzQ4IDk0LjA3N2wyOC40MTctMjMuNjgiLz48L2c%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNNDEuMDMxIDEwNi4xODFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZIMTAuOTcyYy0zLjM3NS4wMzUtNS4wOTcgMS44NjQtNS4wOTcgNS41MiAwIDMuMjY5IDEuNzIyIDQuODg2IDUuMTMyIDQuODUxbDE0LjIzOS4wMzVjMTAuNDA2IDAgMTUuNjQ0LTQuNzEgMTUuNzE0LTE0LjA2MiAwLTkuMjExLTUuMjM4LTEzLjg4Ny0xNS43MTQtMTQuMDYzaC0zLjQxMWMtMy42MjEgMC01LjQxNC0xLjEyNS01LjQxNC0zLjM3NSAwLTIuMzkgMS43OTMtMy41ODUgNS4zNzktMy41ODVoMTQuMDk4YzMuMzQtLjA3MSA1LjA2Mi0xLjgyOSA1LjEzMy01LjMwOXptMjIuODg2IDM1LjA1MXYtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTcuMTM3LTM0Ljk4MXY0OS4yNTNjMCAzLjQ4MSAxLjc1NyA1LjIzOCA1LjI3MyA1LjIzOHM1LjI3My0xLjc5MiA1LjI3My01LjM3OHYtOC43ODloMTIuMzc1YzEwLjU0NyAwIDE1LjgyMS01LjM3OCAxNS44MjEtMTYuMTcxdi0xMy42NzZjMC0xMC41NDctNS4zMDktMTUuODU2LTE1Ljg5MS0xNS44NTZINzYuMjU3Yy0zLjQ4MSAwLTUuMjAzIDEuNzkzLTUuMjAzIDUuMzc5em0yMi44NTEgNS4yMzljMy41NTEgMCA1LjM0NCAxLjcyMiA1LjM0NCA1LjA5N3YxNC4wMjhjMCAzLjYyMS0xLjc5MyA1LjQxNC01LjM0NCA1LjQxNEg4MS42VjExMS40OWgxMi4zMDV6bTMwLjAyMy02Ljk5N2MxLjEyNSAwIDIuMjUuMzE3IDMuMzc1LjkxNSAxLjEyNS41OTcgMS45NjkgMS40NDEgMi42MDIgMi41NjYuNjMyIDEuMTI1Ljk0OSAyLjMyLjk0OSAzLjUxNiAwIDEuMTk1LS4zMTcgMi4zNTUtLjkxNCAzLjQ0NS0uNjMzIDEuMTI1LTEuNDc3IDEuOTY5LTIuNjAyIDIuNTY2LTEuMTI1LjYzMy0yLjI1LjkxNC0zLjQxLjkxNC0xLjIzIDAtMi4zOTEtLjI4MS0zLjQ4LS45MTQtMS4xMjUtLjU5Ny0xLjk2OS0xLjQ0MS0yLjYwMi0yLjU2NmE2Ljc0OCA2Ljc0OCAwIDAgMS0uOTE0LTMuNDQ1YzAtMS4xOTYuMjgxLTIuMzkxLjkxNC0zLjUxNnMxLjQ3Ny0xLjk2OSAyLjYwMi0yLjU2NmMxLjEyNS0uNTk4IDIuMjg1LS45MTUgMy40OC0uOTE1em0wIDI4LjA5YzEuMTI1IDAgMi4yNS4zMTcgMy4zNzUuOTE0IDEuMTI1LjU5OCAxLjk2OSAxLjQ0MiAyLjYwMiAyLjU2Ny42MzIgMS4xMjUuOTQ5IDIuMzIuOTQ5IDMuNTE1IDAgMS4xOTYtLjMxNyAyLjMyMS0uOTE0IDMuNDQ2LS42MzMgMS4xMjUtMS40NzcgMS45NjgtMi42MDIgMi41NjYtMS4xMjUuNjMzLTIuMjUuOTE0LTMuNDEuOTE0LTEuMjMgMC0yLjM5MS0uMjgxLTMuNDgtLjkxNC0xLjEyNS0uNTk4LTEuOTY5LTEuNDQxLTIuNjAyLTIuNTY2YTYuODQgNi44NCAwIDAgMS0uOTE0LTMuNDQ2YzAtMS4xOTUuMjgxLTIuMzkuOTE0LTMuNTE1czEuNDc3LTEuOTY5IDIuNjAyLTIuNTY3YzEuMTI1LS41OTcgMi4yODUtLjkxNCAzLjQ4LS45MTR6Ii8%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgZmlsbD0iIzA2MCIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNMTkzLjc2MSAxNDcuNzdjMy41ODYtLjA3IDUuMzc5LTEuODI3IDUuMzc5LTUuMzA4di0zNS4wNTFjMC0zLjU1LTEuNzU4LTUuMzQzLTUuMjAzLTUuMzQzLTMuNTg2IDAtNS4zNDQgMS43OTMtNS4zNDQgNS4zNDN2MjkuNzQzaC04LjcxOGMtMy41ODYgMC01LjM0NC0xLjc5My01LjM0NC01LjQxNHYtMjQuMzk5YzAtMy41NTEtMS43NTgtNS4zNDQtNS4yNzQtNS4zNDQtMy41MTUgMC01LjI3MyAxLjc1OC01LjI3MyA1LjI3NGwuMDcgMjkuODgzSDE1NS4zYy0zLjU4NiAwLTUuMzc5LTEuNzkzLTUuMzc5LTUuNDE0di0yNC4zOTljMC0zLjU1MS0xLjc1Ny01LjM0NC01LjI3My01LjM0NHMtNS4yNzMgMS43NTgtNS4yNzMgNS4yNzR2MjQuMjU4YzAgMTAuNzkzIDUuMjczIDE2LjE3MSAxNS44MiAxNi4xNzFsMzguNTY2LjA3em0yOC4yMy01LjQxM3YtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTQyLjI5My0zNS4wNTFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZoLTE0LjIwM2MtMy4zNzUuMDM1LTUuMDk3IDEuODY0LTUuMDk3IDUuNTIgMCAzLjI2OSAxLjcyMiA0Ljg4NiA1LjEzMiA0Ljg1MWwxNC4yMzkuMDM1YzEwLjQwNiAwIDE1LjY0NC00LjcxIDE1LjcxNC0xNC4wNjIgMC05LjIxMS01LjIzOC0xMy44ODctMTUuNzE0LTE0LjA2M2gtMy40MTFjLTMuNjIxIDAtNS40MTQtMS4xMjUtNS40MTQtMy4zNzUgMC0yLjM5IDEuNzkzLTMuNTg1IDUuMzc5LTMuNTg1aDE0LjA5OGMzLjM0LS4wNzEgNS4wNjItMS44MjkgNS4xMzMtNS4zMDl6bTQ1LjgwOCAzNS4yNjJjMC0zLjUxNi0xLjcyMy01LjMwOS01LjE2OC01LjMwOWwtMTcuNjQ5LS4wMzVjLTMuNTg2IDAtNS4zNzktMS43OTMtNS4zNzktNS4zNzl2LTEuNzU4bDE1Ljg5MS0uMDM1YzMuNTE2IDAgNS4yMzgtMS42ODcgNS4yMzgtNS4xMzMgMC0zLjU4Ni0xLjc5My01LjM3OS01LjM0My01LjQ0OWwtMTUuNzg2LjA3di03LjAzMWwyMi43ODIuMDM1YzMuNTUtLjA3IDUuMzQzLTEuNzkzIDUuMzc5LTUuMjM4IDAtMy41MTYtMS44NjQtNS4yMzgtNS41Mi01LjIzOGgtMjcuOTE0Yy0zLjUxNiAwLTUuMjczIDEuNzU3LTUuMjczIDUuMjczdjI0LjI1OGMwIDEwLjc5MyA1LjI3MyAxNi4xNzEgMTUuODIgMTYuMTcxaDE3LjY0OGMzLjUxNiAwIDUuMjc0LTEuNzIyIDUuMjc0LTUuMjAyeiIvPjxwYXRoIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiIGQ9Ik0xNDguNTg4IDE3My4xNDZoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptMjEuODggOC4wOGgtMi4zNmwtMS4yMy0zLjY3aC02Ljc3bC0xLjIzIDMuNjdoLTIuMjVsNS42Ni0xNS4zOGgyLjVsNS42OCAxNS4zOHptLTYuODktMTMuODRoLS4wNmwtLjUyIDEuNi0yLjI3IDYuNzVoNS41NWwtMi4yMy02Ljc1LS40Ny0xLjZ6bTExLjM1NS0xLjU0djEzLjQxaDcuMTVsLS4wNiAxLjk3aC05LjJ2LTE1LjM4aDIuMTF6bTExLjcyNyA4LjI3djUuMmg3Ljc3bC0uMDYxIDEuOTFoLTkuNzk5di0xNS4zOGg5LjQ1bC4wNTkgMS45M2gtNy40MTl2NC41N2g2LjM0OXYxLjc3aC02LjM0OXptMjYuMzgxLTcuODFsLS4yNiAxLjg4Yy0uOTItLjQyLTEuOTkzLS42My0zLjIyLS42My0xLjY1MyAwLTIuODM3LjQzMy0zLjU1IDEuMy0uNzEzLjg2Ny0xLjA3IDIuMzgtMS4wNyA0LjU0IDAgMi4zMDcuMzYgMy45MTcgMS4wOCA0LjgzLjcyLjkwNyAxLjkyIDEuMzYgMy42IDEuMzYgMS4xNiAwIDIuMjMzLS4yNDcgMy4yMi0uNzRsLjI2IDEuNzdhOC4xMiA4LjEyIDAgMCAxLTMuNzUuOWMtMi4yOCAwLTMuOTUzLS42NTMtNS4wMi0xLjk2LTEuMDY3LTEuMzA3LTEuNi0zLjM2LTEuNi02LjE2IDAtMi42NTMuNTQzLTQuNjE3IDEuNjMtNS44OSAxLjA4Ny0xLjI4IDIuNzgzLTEuOTIgNS4wOS0xLjkyIDEuMzUzIDAgMi41NS4yNCAzLjU5Ljcyem0xMS4xNDEgMy45OGMuODI3Ljk5MyAxLjI0IDIuNjE3IDEuMjQgNC44N3MtLjQxMyAzLjg3My0xLjI0IDQuODZjLS44MjcuOTg3LTIuMTYzIDEuNDgtNC4wMSAxLjQ4LTEuODUzIDAtMy4yMDMtLjQ5Ny00LjA1LTEuNDktLjg1My0uOTkzLTEuMjgtMi42MS0xLjI4LTQuODUgMC0yLjI0LjQzLTMuODYgMS4yOS00Ljg2Ljg1My0uOTkzIDIuMi0xLjQ5IDQuMDQtMS40OSAxLjg0NyAwIDMuMTgzLjQ5MyA0LjAxIDEuNDh6bS02LjU4IDEuMjJjLS41LjctLjc1IDEuOTE3LS43NSAzLjY1IDAgMS43NC4yNSAyLjk1Ny43NSAzLjY1LjUuNyAxLjM1NyAxLjA1IDIuNTcgMS4wNSAxLjE5MyAwIDIuMDM3LS4zNSAyLjUzLTEuMDUuNDg3LS42OTMuNzMtMS45MS43My0zLjY1IDAtMS43MzMtLjI0My0yLjk1LS43My0zLjY1LS40OTMtLjY5My0xLjMzNy0xLjA0LTIuNTMtMS4wNC0xLjIxMyAwLTIuMDcuMzQ3LTIuNTcgMS4wNHptMjYuMjc4IDEuNTh2OC4xNGgtMS45M3YtOC4xMmMwLTEuNjY3LS44NDctMi41LTIuNTQtMi41LS43IDAtMS4yOC4yLTEuNzQuNi0uNDU0LjM5My0uNjguOTYtLjY4IDEuN3Y4LjMyaC0xLjkzdi04LjMyYzAtLjc5My0uMjItMS4zOC0uNjYtMS43Ni0uNDM0LS4zNzMtMS4wMTQtLjU2LTEuNzQtLjU2YTMuMDYgMy4wNiAwIDAgMC0xLjQ4LjM4Yy0uNDc0LjI1My0uODM0LjU4My0xLjA4Ljk5djkuMjdoLTEuOTV2LTEyLjE4bDEuNC0uMS4zNCAxLjMxaC4wN2MuNzczLS45NTMgMS44MjMtMS40MyAzLjE1LTEuNDMgMS42MjYgMCAyLjcyNi42MiAzLjMgMS44NmguMDRjLjY4Ni0xLjI1MyAxLjgzNi0xLjg4IDMuNDUtMS44OCAxLjIxMyAwIDIuMTguMzYgMi45IDEuMDguNzIuNzI3IDEuMDggMS43OTMgMS4wOCAzLjJ6bTEzLjMyMiAyLjAxYzAgNC4yNC0xLjU5NCA2LjM2LTQuNzggNi4zNi0xLjQ3NCAwLTIuNTgtLjQ0Ny0zLjMyLTEuMzRsLS4wNC4wMi4wMiAxLjY2djIuNDZoLTEuOTl2LTE1LjE5bDEuNC0uMS40MSAxLjI3Yy45MjYtLjk1MyAyLjEzMy0xLjQzIDMuNjItMS40MyAxLjU3MyAwIDIuNzQ2LjQ3NyAzLjUyIDEuNDMuNzczLjk2IDEuMTYgMi41OCAxLjE2IDQuODZ6bS0yLjAxMSAwYzAtMS42OTMtLjI1My0yLjg3LS43NTktMy41My0uNTA3LS42NTMtMS4zLS45OC0yLjM4LS45OC0xLjMyNyAwLTIuMzE3LjQ4LTIuOTcgMS40NHY2LjI3Yy41ODYuOTkzIDEuNTQzIDEuNDkgMi44NyAxLjQ5IDEuMDUzIDAgMS44NTYtLjM0IDIuNDEtMS4wMi41NTMtLjY4Ny44MjktMS45MS44MjktMy42N3ptMTMuMjQzIDYuMTNoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptNS4zNSA5Ljg0Yy40OTMgMCAuOTA2LS4xMTcgMS4yNC0uMzUuMzQtLjIyNy42NC0uNjI3LjktMS4ybC4wNi0uMjEtNS4zNS0xMi4yMmgyLjI1bDMuNDkgOC44OC41NyAxLjU0aC4wNmwuNDUtMS41OCAyLjgxLTguODRoMi4wOWwtNC40NSAxMi4zNmMtLjQwNyAxLjEwNy0uOTE0IDEuOTA3LTEuNTIgMi40LS42MTQuNDkzLTEuMzcuNzQtMi4yNy43NC0uNjk0IDAtMS4zMi0uMTMtMS44OC0uMzlsLjE4LTEuNDVjLjQ1My4yMTMuOTEuMzIgMS4zNy4zMnoiLz48L3N2Zz4%3D%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2230%22%20y%3D%225%22%20width%3D%2295.46%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-8%22%20value%3D%22call_media%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280.5%22%20y%3D%22480%22%20width%3D%22252%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-30%22%20value%3D%22Packets%20stream%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D40%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.25%22%20y%3D%22892.5%22%20width%3D%22214%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22oad6Vc3YnYEZ8WAJpYQT-32%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D1%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.5%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20target%3D%22oad6Vc3YnYEZ8WAJpYQT-3%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22205.83%22%20y%3D%22832.5%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22205.83%22%20y%3D%22760%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-25%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22141.16%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22141.34000000000006%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22CSLkCuAFo2QjsUDRJGTU-26%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22271.4700000000001%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22271.65000000000003%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-1%22%20value%3D%22call_monologue%20%26lt%3Bfont%20color%3D%26quot%3B%23e6e6e6%26quot%3B%26gt%3BA%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%3BverticalAlign%3Dtop%3Balign%3Dcenter%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22160%22%20width%3D%22252.5%22%20height%3D%22262.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-2%22%20value%3D%22Call%20participant%201%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22130%22%20width%3D%22170%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-3%22%20value%3D%22Subscribers%20list%3A%26lt%3Bbr%26gt%3B-%20call_monologue%20B%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2292.75%22%20y%3D%22190%22%20width%3D%22227.5%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-4%22%20value%3D%22Subscriptions%20list%3A%26lt%3Bbr%26gt%3B-%20call%20monologue%20B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B-%20...%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%3BverticalAlign%3Dtop%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2292.5%22%20y%3D%22270%22%20width%3D%22227.5%22%20height%3D%22140%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-5%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Bcall_subscription%26lt%3B%2Ffont%26gt%3B%26lt%3Bbr%26gt%3B-%20flags%26lt%3Bbr%26gt%3B-%20attributes%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23666666%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22109%22%20y%3D%22310%22%20width%3D%22195%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-6%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22109%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22300%22%20y%3D%22400%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-7%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.075%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-4%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22110%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22314%22%20y%3D%22410%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-8%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23666666%3BfontColor%3D%23FFFF33%3BentryX%3D0.913%3BentryY%3D0.993%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-4%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22300%22%20y%3D%22400%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22119.5625%22%20y%3D%22420%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-9%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Brtp_sinks%20%26lt%3B%2Ffont%26gt%3B(GQueue)%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Brtcp_sinks%20%26lt%3B%2Ffont%26gt%3B(GQueue)%26lt%3Bbr%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%3BverticalAlign%3Dtop%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22380%22%20y%3D%22510%22%20width%3D%22325%22%20height%3D%22220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-10%22%20value%3D%22packet_stream%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23FFFF33%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22385%22%20y%3D%22480%22%20width%3D%22170%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-11%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Bsink_handler%26lt%3B%2Ffont%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23999999%26quot%3B%26gt%3B-%20flags%26lt%3Bbr%26gt%3B-%20attributes%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22540%22%20width%3D%22200%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-12%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23ffff33%26quot%3B%26gt%3Bsink_handler%26lt%3B%2Ffont%26gt%3B%26lt%3Bbr%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23999999%26quot%3B%26gt%3B-%20flags%26lt%3Bbr%26gt%3B-%20attributes%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23E6E6E6%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22640%22%20width%3D%22200%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-15%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22698.75%22%20width%3D%22200%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-16%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22410%22%20y%3D%22698.35%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22605%22%20y%3D%22698.75%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-17%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BentryX%3D0%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3Bopacity%3D40%3BexitX%3D0%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22iAbl2CyZ79v0rj5GCBOG-15%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-15%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22335%22%20y%3D%22658.75%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22335.2075000000001%22%20y%3D%22667.77%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-18%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BentryX%3D0%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3Bopacity%3D40%3BexitX%3D0%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22610%22%20y%3D%22698.75%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22609.9999999999999%22%20y%3D%22718.75%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-19%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22590.4%22%20width%3D%22200%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-20%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3Bopacity%3D40%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22410%22%20y%3D%22590%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22605%22%20y%3D%22590.4%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-21%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BentryX%3D0%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3Bopacity%3D40%3BexitX%3D0%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22iAbl2CyZ79v0rj5GCBOG-19%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-19%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22335%22%20y%3D%22550.4%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22335.2075000000001%22%20y%3D%22559.42%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-22%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BstrokeColor%3D%23E6E6E6%3BfontColor%3D%23FFFF33%3BentryX%3D0%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3Bopacity%3D40%3BexitX%3D0%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22610%22%20y%3D%22590.4%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22609.9999999999999%22%20y%3D%22610.4%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-25%22%20value%3D%22%22%20style%3D%22ellipse%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3BstrokeColor%3D%23007FFF%3Bdashed%3D1%3BdashPattern%3D1%201%3BstrokeWidth%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22109%22%20y%3D%22330%22%20width%3D%2291%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-26%22%20value%3D%22%22%20style%3D%22ellipse%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3BstrokeColor%3D%23007FFF%3Bdashed%3D1%3BdashPattern%3D1%201%3BstrokeWidth%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22550%22%20width%3D%2291%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-27%22%20value%3D%22%22%20style%3D%22ellipse%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontColor%3D%23E6E6E6%3BfillColor%3Dnone%3BstrokeColor%3D%23007FFF%3Bdashed%3D1%3BdashPattern%3D1%201%3BstrokeWidth%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22410%22%20y%3D%22660%22%20width%3D%2291%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-28%22%20value%3D%22%22%20style%3D%22curved%3D1%3BendArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3BstrokeColor%3D%23007FFF%3BfontColor%3D%23E6E6E6%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3Bdashed%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20source%3D%22iAbl2CyZ79v0rj5GCBOG-25%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-26%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290%22%20y%3D%22530%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22340%22%20y%3D%22480%22%20as%3D%22targetPoint%22%2F%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22370%22%20y%3D%22410%22%2F%3E%3CmxPoint%20x%3D%22360%22%20y%3D%22570%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-29%22%20value%3D%22%22%20style%3D%22curved%3D1%3BendArrow%3Dclassic%3Bhtml%3D1%3Brounded%3D0%3BstrokeColor%3D%23007FFF%3BfontColor%3D%23E6E6E6%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3Bdashed%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20source%3D%22iAbl2CyZ79v0rj5GCBOG-25%22%20target%3D%22iAbl2CyZ79v0rj5GCBOG-27%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22210.0000000000009%22%20y%3D%22355%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22420.0000000000043%22%20y%3D%22405%22%20as%3D%22targetPoint%22%2F%3E%3CArray%20as%3D%22points%22%3E%3CmxPoint%20x%3D%22370%22%20y%3D%22420%22%2F%3E%3CmxPoint%20x%3D%22330%22%20y%3D%22560%22%2F%3E%3C%2FArray%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-33%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.75%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22305%22%20y%3D%22334.5%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22545%22%20y%3D%22334.5%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-35%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D1%3BexitY%3D0%3BexitDx%3D0%3BexitDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22544.5%22%20y%3D%22332.5%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22545%22%20y%3D%22510%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-40%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D12%3BfontColor%3D%23E6E6E6%3BfillColor%3D%23E6E6E6%3Bopacity%3D40%3Balign%3Dleft%3BfontStyle%3D1%3BverticalAlign%3Dtop%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22565%22%20width%3D%22300%22%20height%3D%2285%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-41%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2280.5%22%20y%3D%22571.25%22%20width%3D%22122%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-42%22%20value%3D%22packet_stream%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23FFFF33%3BfillColor%3D%2366CC00%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22212.5%22%20y%3D%22571.25%22%20width%3D%22120%22%20height%3D%2272.5%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-43%22%20value%3D%22RTP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2282.5%22%20y%3D%22571.25%22%20width%3D%22120%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-44%22%20value%3D%22RTCP%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BstrokeWidth%3D2%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22212.5%22%20y%3D%22571.25%22%20width%3D%22120%22%20height%3D%2225%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-45%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22141.17999999999998%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22141.36000000000004%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-46%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BdashPattern%3D1%202%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BentryX%3D1%3BentryY%3D0%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23E6E6E6%3BendFill%3D1%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22271.4899999999999%22%20y%3D%22660.0000000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22271.6700000000001%22%20y%3D%22640.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-48%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontFamily%3DCourier%20New%3BfontSize%3D14%3BfontColor%3D%23666666%3BexitX%3D0%3BexitY%3D1%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D0.75%3BentryY%3D1%3BentryDx%3D0%3BentryDy%3D0%3BstrokeColor%3D%23FF6666%3BendFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2234.5%22%20y%3D%22559.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22274.5%22%20y%3D%22559.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22iAbl2CyZ79v0rj5GCBOG-49%22%20value%3D%22media%26lt%3Bbr%26gt%3Bhandling%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bdashed%3D1%3BdashPattern%3D1%201%3BstrokeWidth%3D1%3BfontColor%3D%23FF6666%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%22565%22%20width%3D%2260%22%20height%3D%2230%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E%3C%2Fdiagram%3E%3C%2Fmxfile%3E›ñ^é IDATx^ìt\ÇÝů˜É"ËÌÌS̱'qC 7i8mú5œ††›4Ü6m’6L ÇNÌ 13³-˶˜ñ;wÖO^É’v%­¬•Þstlí¾7ð›ÙÕÜ÷‡ñ¹é…qeP¨Ÿ›_Wv0bN­nÒÅ" " " " " "`gIYã 1eç ±‹€ˆ€ˆ€ˆ€ˆ€Ô‰€ÄT°é&»˜²û ÐøE@D@D@D@D@êD@bªNØt“ˆ€ˆ€ˆ€ˆ€ˆ€Ý ØVLe'{œ”ê—@P„%!-ì¾T4~g¶S¹Ç€c[€Ìý@Æ>‡ˆ ¢;IÕ/ˆ¼4‡ØâOAÖqa„Ʊ]–ý?-(;hÖbêÈ&`ÿàÀ2 ¾ÕˆnDw‚£j7Ý%E'„ÅÕá5@ún Õi@Ë~ŽúýƒkW§®hºš¥˜Ú»Ð!¢ÊJÖ£VCÏORî`ÿR e=}Hì ´îV*" " " " " Í›@³SK_ü.“¨SUÒw)€-ßíÇý®cbǪ¬çÖ»¢ 8§N\ª»‰% Krñã¶W=Z¯*hºš¼˜ÚúPœôúõ©Ÿ„ì|`õn "èß¾îíKPÕî䓸‡ÇÎDbxg³aÊ(8ŒÑÍýñ9ã‘[”Yg Ü•ñ@¶j 7ÿ,e(«UwüÝbGÔILú…à¯gmÄÊCß×(¦jÕ¡Fºxb§pIïÇñí–ðÝÖ¿z¼µSo¼R…wúâCÛ7¸˜zrÂ"#Øÿôó@c!¨m©K?ù9¨íg ¦~yji5®ì÷ ¾Ûú"¾Ýâ}éc-1µñÈ\#jÚG÷G‹Öؾ /-¾WõÞ`ŠNB—§!=?ÛS—š×~9ð ¶[hÄTiY±ù> hîq#Í¥®øy(a‰©}p8g{ìךּ͈6hHM^Le<Œ>ÅñG›ù…À€õŸ" ª-ñò¨?ÌfVÃi­/Àõƒ^7V¨§æ‰‚’\\7è5 k}!Þ]};ïûEçt½£Ú]Žˆ 8ÍÙƒ¹{ÞÜ]ïšM`H@$^>k3ö¤¯ÁGëÿŒ«û¿€–á]‘Yp¤|ó{IïÇ0±Óxcù5è7#Ú^Œ`ÿüwÍÝX°÷CCu\‡k0¡ã ˆ mc„ÝÛþVþ„Ø{MbêœnwàôvW "0‡svâóaÓ‘ùævksXy _Yz%6¤Ì6/ŸÕåÿpAÏÊ/©ÊÍoPÒ98·ÛF€fä6Ö«ÿm~Úlèú·<· }?íxÓÅgá¼sþ­RÙÍûó{Þ!ISƒý™ðÉú‡L[VáF÷¢^¡]T_ãV·ìÀ—øzó³(.-2–‘ÇÆÏ;i¬Ó·¿Ž/7=e^çúœÚí. o{±qwä¦yÞžÿ‚×Ô¦´ê‡ÆLÃú”™xuéU'Ý:´õy8«Ë‘Ö ùÅÙfÞ?Ýðˆù¿;ýt^ÉÙÛñ«î÷ :¸%–øÒûËû>…q®ÅÛ+å¾Fh@¤ÙìÉÙm¬C,|øÁõyZëóÍçg_Æz|±é ìHýÅí5Îq^ØëAð_ìH[ÏÖ?‚CÙÛ*Œ9, /žµì룳ÇÖ¥ËÏ‘õ}@ѵÞ7ñ ËÛ÷Vßá¶%ØS™?Å|÷û‡ã¹É«äŠ»§÷EVá1Óç-ÏÂï‡þÛ¬Ý×–]]>‹/¿óný¡‹yßA—÷ý‹±°¾±üÚr1õÅÆ'ÌgºrqçóNqÆ:‡·ùµù¾ø`Ý}¸m؇HÉÙ‡gŸnª|ýœÝfnY*»ù9¿ò;ñâÞ"<0Ë|…×ÞW.Äi¤e«mdoä—ä`éþÏñÅÆ§ŒXThºš¼˜"úÿpLÀà›NíDÌÙôj $xHÄÍ\ í Dºˆ·:µ£TkMàŠ¾Ocl‡ßV°nPˆÀÇYŽÀ»I‡_÷zØ<ñåÜÓZ_hÜkœ…Ðó“W#$ ʈ >­¥« ]o>\wÿñMÞU¸²ß³&Æ)!¬“Ù¬”ä`Ùÿ±cmb¸A¥€ãÆuPÒ¹xiñ%Ø|tALÕ‰)+ÎcÓ‘y¦Þ‹{?fl_÷Íb6¼£Ú^ºbíL[ù{Þ7õòÉ67à,­#{šM&7`Ü(US2÷þYG0sçÛè3Ø\gmˆ{ÅÅmÃ?2îvÜàíÉXcb¯Xܵv¸jƒ¢¤âdôN‡!­ÎÃÊCßaÝᙦ n®]Å7ñ:n8Ÿœ¸á-ðóŽ¿ÃÏ7ÀˆÝc¹ûðÈìÑFÈXbŠ®O ö~`6ƒ­"zà«ÍÏàÇm¯˜ö(ƹ ˜4ý'Ÿ3uÓà¿cp«©&öfOúZWEëÁŸgGNQ:¢‚ñÄ„…Æ‚9}ûhÝ[NÁÌ]oãÓõ¡Æß¿“[”Qv söd¬5}àúå:æºÙzl±™Î7æ–»–;Ÿ3k ~³åy|¿õ¥ ·pÜaDàÂ}!1¬3Îìr‹i“bÓ~rý1‹.âÃÚcë±%F(ÌÚ‚Y»þå–˜âFšÂ–âŸc¥Ë«Ÿ¯?›3Þ¬9WkœÂó¹I+QZVjæ÷RÔe¦ÁVÙ’Ìþ&„wÂÓz"¯VjWŸ£ó{Ü)]ÿhÖÛ/¿EH@Æ´¿Ê|f(ŽÜ)•ÅÅÑs“VÃß/wNëYnU¯˜¢ ¹cħæûáÙS]Š)w>ï£Ú]†«ûÿÕŒuþÞ0¤Õ¯Ì÷硬­xtŽ#”Ÿ-Š.®óÊbÊß7¯Ÿ³Ç«±!mŒ8¤Hd}|ÀÂ!ßn}IáÝÀK\Ç\Ï*" M—@³SÄo ª~¿NÉÊ–ï&ôñÜä¯ßçH™Þ)Ásuª¦¦OàwCÿe6«5m<)”"‚âqßσèà“ÏÇþ º¾<9o’@WAn ¶¥.ÅË‹/1›qç20élünÈÛæ%gKu 7Ô aàÈ-LG€_žŸ¼Ö©W—þ¦B]Õ‰)Z8X7™ÜTXc{vÁ¹å–ÆAÝ9â³rñSÝ V8à7Ðû×Ê?Áæëã&¯1 4Þ>ºnþ‰ÙØR0PPþqØÑ'a"^Xxá㪸jƒ¢‚…É'hÑ©K|7®·Üܽ¿æS-j"|"O±k‰©ÿ¬¹ ÷~ŒÎ-†âO£¾ÆþÌxbî†QU Z]ž™´37ãéùg›ë»Æ7bóËMOñdÝGKŸºSä]ÑV¾Ür!N7¸·¦0k¯ª˜)ëÅý½Ö°Ö‘=Ì“ÿÚ$`¬c¦,Ëó¹¾qð[X´ïc|¸ö~• SÌ dä§‹ ‹«~ÒÒCSgËšÕŽ+ËÇõÒY›Ìà Z^ØŠÙ>‰±xß'åØšÖ8-Ë/L^kæ*ȧUDwcÝ ª²˜ºeè»èßr2þ2ï¬rñêjý:¿_ÝçÈšwë!E­œ¾AøÃkt¶ê·Ä¿#,7?®9®ÿ¬9q£»bŠŸaº5òÅÜÝï™õW›ß¶cK1g÷»`¬ «ÏûíÃ?FÏø1xkùõX•üc¹õš"š"عT•€‚ß1ožë°?4k¤Y×ÑõzÐ% ¦ßô£Û]iÜùÙe¹mÄÇæ»úŽi½dªÍ¢Õµ"àeš˜"×Õïé»îçI–tf°x+pfϵÌ€1a@»8ÏÕ©šš>  n>¸ ©\èJô·)[ŒU€O§Y¬'¥ÜÀ0›…îQ´èÐoMòO'ÕÓ/qþpÚ{Æròä¼ÉÞ§UäsöT “ÕfœVá½êÄ“RÐ}¨]T?ù‡!À7Ј——\Z¾Ñ´ž<[›¸êf°ºMàƒc~FÛ¨ÞxbîDìÏÜdn¿÷ôo…ŠÎÐÀ(³¹â¦‰›'>•æÓië)²«U㪠Ë"S1e¹YÑåŽVËZðùÆÇñóŽ·ÊÅÝ?÷f¬+wçt^ ÖXªSÜ@r#YU±,:Öú{}ÙoÛ\U…í·ÎÝ_­˜¢x¸}øGf®ùTŸ‚uù¯jˆãêþ/WÖªÄ>­µ›‰È •äcWúJ¬=<Ãl¨ù;‹«~rM¾2e›.ΖkÌ®ÄVð¡ç‚sR]qµÆ-‘LáÄ5¼éè<ÌÚù¶‰“¬\®ð2F´½¤ÂgÈÕúu~ß•˜r^OM\Œ¸ÐöÆåŽ®w®Šs ëZZ4?ßð˜yˆaWbªr;™)xzþ9æHu (¬ïKLÕôy·ýyæÍÝ&ü1j)¦œ?w´d];ðãzHÄ?úƸëVU˜9ÌXÅTD@š&f%¦8–kþ D¶NÿSÃM ³÷ý´×Ë‘€Âeá G+ 6µ©ŽæBà²>Ob|ÇëŒËÝ·X¸q¤‚n}%yæ‰qNa:îœîÈœE·.úøçgá¶»›×,1õÈì1æ wåb‰©_~®ø}…·éÞòÚÙ;›Ës Ï3))¬Bw¤ÊÙáªS÷þÞ$ÏøhÝÆucë0¾AÄÔãs'‚®f,–˜¢Hd,Å”ó8­MzM‚Áˆ%¦ªkƒ‚”Åbêãõbö®›ú‹Ã˜1¦VŸ±óåbê™çš8ƤümÊÖ ÂÚêwUbªk‹a`BŠ¿×ˆCã=9EÆÝí„5¬jÎk¹.Þ¹ró{{å-ÆúA«Úó“Ö $ wLëŽ1ê-¦,7¿êÚ ˆ­¯˜*wóÛó>Þ_ëx2DË!ç‰n•ëSf•‹©÷×Þƒù{>0Ö7 GŠ#ZáœKUbŠbàùI«Múû~d\?#ƒâÍ<'go3kéž61l–»­;ö>ü|üñ·%— _£˜b _U"„ðè ÄrJþNkÓd3«›»…qŒ¬ÊÍciÑÛS—7;º#Þ?æG“aðÿ~èdÜÒ\õÓSUY[ÙGË2ÈÄtì“0Á°°ÄÅìKgmDQIîú©¯±ˆ m}>Æw¸Ö¸kò³åj³ßtLÍ;hÄ)?7ŒÓ¡õéù…ç›ñ9Kì6”›Ÿ§Ä00Q Ý|+[Ç]‰)ç•׊'Ä”õðÇêÝ&é>Y[ËTMbÊâLˆÂÔî,| VRZlâ6-÷MÎwǘ()+1ñi*" ÞO YŠ©åo-mÉ•P” Ì{(Èb:1莟àèš'©0 ÈÏòRÌý'~rR€°@á o‡úŸÅë~@ï¶Þ¿hÔÃSK€âãÑ? mT³¹¢;ÿsãúļI&û”•€‚O}™€bT»KM"‚¿ÿr“I~ÀbY¦ê*¦,·Zµæì~Ǥ>g +–Æ™Šµé¥˜¡Š÷0`Ürb g »ó†ÍêKu‡öZ.ŽÌ·>e6F´¹Ødí{qñ¯±íØDÿø„Füþ¸ý´‰ìmôc¹Ø†5·tkâ:¥ØæSy&¹`F8Æ\1ƒ#ûH6œŸÚ`l%²¨*Õ¼•œ‚Yö8&î˜Úýn#tœÝVkê§+1Åõ~ó˜µÅqrÓÝ5vŽåî]ÄXÓì”L@ÁuÉqRd=>w‚‰¥a©i[‰4è*ÈŒœ>ð5 -âBÛŸ]nØ  “ZÔ&…;Ÿ£ªÖK},S„tK¤H¡UמSU¥FŸ±óŸösùð„Ÿ«Kû»}ZSûÇF­‰€Ô‰@³S¹Ç€yOÿâHD‘¹XýÛ h7 È<dÒv9â«J‹ÿ`À?ð;þ/]¹ó3â‹ïE:~¢Ú:~“€ð–Ž÷Ç×0½47E¥…Ø|d¾I”ÁÂ,nGŸ„ñFòAE?ëàœ¸[,‹+… 㦜 ×Ù”®·™ \ŸyÅYF ÒýËJ%Ïëkê§+1Eø›~Ïcp«sMü“ÂÐ}‹_+ñF€_°É¬Iž!þ&~Šk¯rb“êÖ¸cýžƒ)]o5"©¬¬ÄÄMQ@VΚɄ L˜QÛÔèî|ŽBL‘Ÿe²Žuàx=!¦ªZC|˜”WœáRLñ;•"o@Ò¤æî7îÔ7ùgy"ËúWU´’®8ø½K1Å{£ÈÏ©õ9Zü#¾Øø¤ù޳ŠÄ”»ßºN¼‡@³S^è} pl+°üM ÷Å'¬T•Ñ—ŒM..püðÿ>þ'”¯ŸëɲU—– U”ÙKˀǀý©@q)pZ Èßu[ºBD@êB€ñ´\Uå"W—úëºÒZFñbÅÍ4V_»]ËRW›³Ë»ÏÞØ>ÅðPÔ0{¢%6™¨‡®*" "Pf%¦èÎ7óÏÀ˜c[ «‘w‘§Àu.%8œì= $F-ÂÐ@ÇOHÃ…Ï*L©Îl€‰QñÅkUD@DÀÓxæÝ“hµáÓÆž0Ⱦ6éÈ=ݧúÖG‹ÇU•{i}ënJ÷ÓýИŸõŠçOÑR¬R7ÖùwLGÏd/<\š‰?þ±âfcAWÛˆ©}‹€äÕ÷¾Œ}ÀÐ[€ÐØS»JJ©@ZŽÃu/'È/rœÕ­•CTÍÛôn£¬}§vfÔšØÝ÷Now%ý‚MÊ{f«œÀ ©Q¡Õ†F›8¥¦, ëÃÞVêíúÔ¥{a(Ýþ*“€…q©t“vv‡#¨Ž@³²LÍx(Îb»®95‡÷º³´ŠJ€­}Ç€€cY€¿н•;wëo$ÐlÄ㣽tšèˆ—òÆBµj7P\â°J)á„7Î’ú$" " " " îh6bŠñRL]ά}Þ^¶wm—eÊÛgJýê 41¥IO°fï¿ÿr£§«wYß­Ã?Dïøqå×=6gfm>龯î§ËØð+¶‹éË™ ¢9Ævñ@l¼”`ÆXù ,N»†,"`C^+¦ö.vÏr8Ýu.­€q8^á9RLÎó¥#€Q÷á‰@I°âmàðÚ“g50 wX±z]äÞ¬oO²óI$˜¡Ï¹lØçø­ªwWìt¤JgÚt–Ôl`W PPìH…>¸Sź˜fÉ+ò €Â’ŠïE…Tlƒu³žšJû8 u ÷ƨ«DÀ.xÖйÝïB›ˆž(Cx è—›ž2g9žÛ4ªÝåFÀð0ØS](¤bBZarç[ÌáÆÕ‰©Æîç©æRS{·ûÙEiø÷ÊÿkÔnÑéf\Üûs–ÏH³Ê%}ÇÄŽ7˜_¹öx0~åu©y<Úçú²`F» {=X~.*|½é“Ò*<‹g2ÍÝý>\w¿Gû¯ÊD@D )ðJ1µâÀÁ5ãë>èv®#NŠñRV¡@b:t+†ÊÕ$XõX×Ym;¿ž‘ëÈÀÇÒ« Ð9ñD­ÌÜ·r—ã÷A+ —µ{€=GïééU˶;R¨[…b§_{ÇoL¯¾t{Í=¶Úp®»¦;ý3û»¢ ÷EÀ>ÚDöÂý£@QI>–ìÿ<`xhëó‘S˜Ž‡gŸî•„»F~n±#ªSö™½šGʈyˆ-7ý-¦žœ°Èá?ý<9…iå·ÄÔ¾Œ 8’»<ˆ86´­9 ö©yg¡´ÌŲ0>K}Y0¥>­N´°­M™VáÝLöù{?Àûkî)ïâ}úŒå ˆÄ=?õGAqŽ–£ˆ€ØŠ€×‰©¢<`Úí5ÏAeËÔâ—€ÂãßßµSliøí@|O`ÿ`Õ;'Úÿ¸ÃÊÅÄ‹Ž 6Æ9uK:qÍÖC€s ”ó{¼‡÷²ŒìæH:±z·#«ŸUøß+-ælt¤S¯©ŒíD†8úcÕ]Óõ‘¡ÀØž¶ZÓ¬ÔHà¬.ÿ‡ z>€o¶<ï·¾d®½¨×ƒhÙßn};R—£SÌ Ü{úwåõTåæ7¦ýÕøU÷»áëã¶½Œþ-Ï4‚‡›çÂ’<¼|ÖfcñúaÛß̹Há1Xvà+|¸ö¾ò ïÀ¤³1µÛ]HëˆÌ£&3*—êÄ”«~^Òû1Lìt#þ¹âw ¡oâ8–·ï­¾»ÒVšf"ƒpà×ѹÅPìI_kÒA_;ðo˜¿ç}¼¿öOn­&жÕ=v$|}ý±ñÈ\|´îcuáAÁ<0xù¯ðöÊ[Êë»÷ôoÑ)f0ž]0;ÓV€ÖÂózÜkLÍ/ÉÁÒýŸã‹OqÁº+žœ+û=sR_Yz%6¤Ì64RŸè IDAT¯S¸ÐÒÂ}||°#m>[ÿeoskœî^Äú3 ëSfâÕ¥WU¸ÍS_l|Lkà„'&.BLpžœ; û27Kyvˆ€¢Ò¬Nž†OÖ?d°p­Ý2ôsrövüªû=æÐÙ¥¾4"Ò®ÆbYÖ¸¶¿ÞüœY'ÏO^mγºoÆ ·_Úç Lèx½Yg¿üÆUÕz_D@š¯S™€¹;Gµ^ D8‰—ªè;[¡ªSÖkÖ½t ä¾<“Êüaºh7êÔˆ©Âb +ï„8³Ä]gopô‡iÓ{µƒ+Ž6„‡9^«,Ôª[•¬#( Y­Y FêEÀ:Ÿçpö|°î>l;¶¥e}j#cðhÞgvùƒ±t8ÇL%„uÀ㢤´Ó¶¿Šî±£Ð6ª7‚ý#p÷ô¾È+ÎÄëçì1V®ÃÙ;±âзFÔĆ´ÁkˮƺÃ3ŒÛŸü§å'›h'uºm£úà…Eš>9—êÄ”«~žßã~s~ÏÍùåà· ˆÀ˜öW‘÷—ùSL×|ÃÛüÚ¸šñglû«‡9»ß5‚ÈU ò Å#ãf ]%KÊŠpaχp k^Xx‚üÃðâäu(.-Ä]?õ5Ì¢‚ñ줕8–»×œEká£ÄÑܽøvë H ï†sºÝaÄ.E¯¿o€<;cTÛËÌ|QœQ ²PØ¥ç'ƒ‡Ü>7i%JËJñã¶WàçëoDHvaš‰÷)++u5T·ß×á\Þ÷/»use1Å×ïõº´8 [r96™‡§&.ALH>^ÿyý´ÖT¨‹"žµÅ5Ö[-Á‘œÝ8˜µ³výËXjbáö@œ.ä¡Ï¿úoó°á¹…çU¨bhëópà71cç?ðÙ†GëR½î&KÀ–bгµõ;`ËñƒÍ]úªróó¤eŠm;×g‰)ÆI-8WÎ'ºóÕTª²z5ÙU¨Ž‹À)$@·%Æ’teZ¥ ÖêäéøiÇæ)¿s©.±Ã”®·âü÷™+-|jO+Õ]Óû ·(ož»×TõЬ‘HÉÙmâžh³,bd]Z 3mróÏ'û|Â_9Ɔu¸r󫮟´ôœÝõ¶r‹-<´†üᇎ [Ø+go‡Ÿ¿qÑ¢ø³¬Ysv¿ƒÖýÙåÌp£ý ×Áë?ßàxvv·ÛM»OÏ?»ÓWá¦ÁÇàVSñò’K±éÈ|Œíð[\Ñ÷ér±ô›þÏct»+ecMòtSÇm#>6Vª;¦õ2¿»âÉk8§wŽø¬|¼Î§@|aòZãN÷ÒâKÌX[Et7VBÎ'Åc¥hÙy{åïOеsS´Þ6ü#øûྃ‘WœÁIç"¯(«’D›ÈžxhìLl82¯,¹Â ), Ú¸3²Lßþº±•KM,\Nj¥ hAüã°âŽ——\†ÍGT¸‚óÖþ¯/ûmm«×õ" "Ф x˜ªÎͯ¦¤µµLqƪSUÍæ©SEÀONÉ2‚€à@ú½!A@LÐ*æDïœÅYåêˆïR8™ED¿–“08i*z%Œ- ?–§&.F\h{ÜúCc©zvÒª ®[–[ž»bŠ¢’ⲪBwÂEû>ÁÀ–Sð»¡ÿÂì]ÿÆÇëÄíÃ?FÏø1xxöhc]ùÓ¨oйEE×1«¾fCZÞ!#¦jâÉëé*xLjO«S|ÿŽŸ GÜh#œögn¦£ó0kçÛHË?äÑÉÕý_4‰Kœ] ­œP87úã¶WñÕæ§ÍK“:ÿ§·»Â¸î1&‰ñOÎ!®W¦l3BðÎi=x¯\\±pwÀ½ÆãwCÞ6ÖÁwWÝnØV.tóüËÄ¥UZ­ÜmG׉€ˆ@S%àubŠ ·O6ü}]θϥ@Ç '71ÅÑTާª¼¨†u¢¯º35¡@Q¦""P‘-4–%‚Ö¤Ëú9[¦˜*šK¤ü¼ã-|¾ñq\ØóAœÙå#6h] «Ô¹Ýîj1õÁÚû0oÏL?,Ñwë]ê‰g&­0YäîŸ1ÔÑÏÖâºA¯K“;–)ºãÑ]މ íý¨ècyLÜE"­BùÅÙx|î¼0y±Y®†@Üü³Ÿû3×W¨ã@æf•1UOÞäJ@PœÖúBP 0SÝ ôÈì12ÔÕ÷óR.¦–\a,JÎÅ9-b9E©X›üsùu}&àÃÞǾŒõxwõíFPñ÷ªÄ”3Ê}vÅÂ1²¶Í oýrÃI)«f“¤kâöÔex~áùîT­kD@D ÙðJ1EºG69Òšçh­*ȲŸà~Ö_€0ÇïÍELåÛÈXy•Q1…Ÿ¯{bjêàf³N5ðËÅïÅE÷:fó»aÐX¼ïS³µJubjj÷»Œð±bDÂcðü¤Õƺ䮘²„åúÆÆÚ0žç«Í)X–œ'æN4•ÊÅ•›_ubª¨¤¯Ÿ³ÓTw÷OýË#“eœÑé&·ÅÔ ¤sqó÷¼7–_kêJ ï 2a_ó‹Yx~;à%0^íÛ-/`j÷»ñé†GÊ“m\Þ÷)Œëpm…×èþVRZŒ=kà_·Ä”Åá—ƒ_ãŸ+~_c»ZGö@jÞAG |LŸF´½Ä «0 _LpKÍÝÌ‚”Z¯½_÷zØX—\¹ùÑJY¹XâÔ²PÒ=’n’;RÁs e.·,SL&òÀŒÓªì_M,ÜPtp"7äÆ)g‹måûéŽùàØŸåæçX]#"Ðìx­˜ªŠô/o‡V9Þ}}<®¨.bjÝGÀîã {^t9ËQoq>±×q•UN…›Ÿóx‹J€¼B ¨Øq¶ÕÆ@ññøøª²ù1`åR•ë_³[½Ôݧ®êÿ‚±D0-T´DàÕ%W ã€hM±P0a2°,?ø5Ã:š8fZ›¶íU«Ó.ªI@ᮘººÿ_1ªÝeX²ÿ30M67õLÄ@Ç,zœD“µ9gF<&T°â¬\õ“qKü©NL15Ýï膷åèBlK]jTDÅ»-¦hÙc"„ðŽÆ.y“:ßl><<ëtãšÇÒ+~¬‰ ¢uŠnk÷þ<¸\¨0~Œw&©`ö8Æ QÐm9ºØÄY± w,SLçÍ4Ýl“nsÌØ—’³ «ý€V=ððØæ,±¹{Þ3mЪBWBçg/ìùg“ÈÂYðÕf©Y1aŽßmýk…[«J@á|åº'c-fíüÎèt£I±Nñ÷¯•0ëÓ1U wÆbõ“\œ…&ï¥E–óh•!­~…¿…;ÿŽÏ6<æNõºFD@š ¯SÎgG‘v~°ö øxêðñáÇÂuGL1É„U˜F}ï| åxö¼×m†Y‡& È:´ ¾ÉqÓ•Ï:îyÂs›Fv"ŽgÚsNÞ¦Ð%éÄ{Õ%‰¨*EM+ŠçXñ<+¦9gºóM$Ì’í8«Š}SpM€"„ÙõhA))+Æ¡¬­æ`Uг0IÓqWUîùi€ÜlOéòG#¾ßö’IGÍ„wLëüâ\—›föcâ†vÑý°7}­Ù(_ÙïY#̾Ùò¦o£¼yŠ Æ[Ñ=›j¦/ÿ`í½.û9¾ãµ.ÅÅăßD›ÈÞFÈ­Nþ—ô~3w½O×?ì&`bÅLjô¸Q(--6›ïÏ6>fâ¡¬ÂØŸç&­2™)™¹Î¹0†ê‚÷—Ë~|±ñI³iwWL±> ¤ÉoÚá½t¡´ÍezxÆw1Û]YY‰±œQðTN¨P_1e¥FgJvÆM9WbŠÖÍk¼Œþ‰“À£°î3çt»ÌÁëË®qKL¹bájb¹&†´ª˜µÏº‡ ˜ÀÃ*Î)ø•ÝY½/"ÐÜx˜*ʦÝQ3æ°`ÜÀïñ”߮Ĕ«Iû0ÙÚa©¢ÅÊ*cp¤g/-f¯è†W×b3Åû«S´Bm9dæUl!¿°âÙSg ü€”L`i¥£QèþÇ´êþ¾€ßñ[„=[׵׺OD *´ºDÅÃÏ'ÀœÛD¡À8 ?_?Üöc÷&VÆå¤æî7–6ŠLnŽ™âšnŒ*u#À: æ{„¬B§ÃëV×Þ¥C{½vjÔ1SDÀëÄTeAS‡aúœx‡çFÍ<~JûÑ@¿ßTŒ£ª‰¥sZôäUÀò·N\=é9 øx´Ëu-®ÄTz0ÿxjôêÚèÓè˜pâÝeÛÚ‹b§\Òû"P;tK{lü|äçà›-Ïš™½Íݳ™j×ZÃ^Íz‡·¹Ø¤áÞ2ËÄ‚…DáÑ9ãÌùT*u#@ ãϘ™‘ñO͵X1]sw¿‡×Ýß\‡©q‰€ˆ@µ¼NL±§«þ ä¥Uì3S£‡Ä1.x• “Uì_rÂ5¯²µÊùz«®¸n@b¿Š51eúÑ-@‡q'·C—¾#™Ž8&¾ënaZó!àã–´ü"à—‹Ýóè¦G«×ÊÏ›ªÐWÇA½±á'§:§5‹î~¼‡u•Tqæ¤uŽ•»}Õu" îèßr2¦v»-Ã;ËöýfósÍ ç^Oêwã¼.íóú%N6çOÈÚlκâ¾*u'À˜;¬m&vv‹«{­Þu']/”`>vŽ;󮞪7" "Ðp¼RLyb¸U¹þy¢^Õ!" " " " " $ 1¥u " " " " " u ÐlÅTæ~`î"VUøÔêÆn„¡ÿë¸I5ؖدówZÐ*¿V«Fu±ˆ€ˆ€ˆ€ˆ€ˆ@£h¶bŠ4wÍR·Ÿˆ£ªa+U;ÏŸ²ÄQd‡p²Ê–oÿcR þßJÇÎ{3öQm+ §åomG:ê`]\–°ÊÜç8¬˜¿ç‘mO´Ë×(Úx=ÿå{Öõ¬‡[׳KÔÕgüºWD@D@D@D@D "f-¦<9Ù+G·LZ±o1Ðr¼è}‰£ ,&¯ð©ZLñ~ ë0`Z®ö-:!¸(¾’;g®V¿{B±~ë=Н3×P(mýÖñ ³Ng8’gPœ±Ƕ8ÛUð,‰)7xRøP´X"…‚¥²õ‰ÂèØ6‡¨j;Âa‰r¶L±KHñÿU‰)ç:)®â*WcµkY´Ø­^#ï:a ã}&:D‹óaÅn U—ˆ€ˆ€ˆ€ˆ€ˆ€¸I@bÊ P´*ÑÅB‹OUbŠgè-Žk6|ê°Pùø8~§ˆâýt·ãÿ-QÅ{¢Ú!-âŠÿ§5‰Ö®ªÄ[lw‡KÝùŠó}a»–[¡ó¿V*" " " " " ž' 1å&SZœœã£Ü¼Íåe–û/tNZQÕ–ÕÉêGu}²,ie Ñg—ƒÒ" " " " "`S6˜d QD@D@D@D@DÀó$¦<ÏT5Š€ˆ€ˆ€ˆ€ˆ€Ø€€Ä” &YCð<‰)Ï3U" " " " " 6 1eƒIÖE@D@D@D@D@­VäÅÂëiãë´¼9[¦úôé²a¿ÃÂÂPZZŠ™3g"//ÏÜKëRÿþý…)-- ³fÍ*œ9SäFFFÑD‹ …+ï¥ðåÛýä“O\.hŽLØwY¦\âÒ" " " ^L@bÊ“cW_I +¯‚Báºë®ÃgŸ}f6ô• 7ó\¬(¼–¬”””òK=-¦&Mšd¬<_ýµ"çŸ>V­Ze„‘«þ°X´h‘é#EŽå®H!1uêTü÷¿ÿ­!…Ü®]»*ˆ)ZrBCC(#ƒóÎ;ϺCZ…ÂývS½{÷6V œœКÄþ°ot¼òÊ+Íõ|דּÎBrr2V¯^mª¼úê«M/^lXp\t•¤xb™8q¢»uqóãý7Ýt“,Sžü ©.SJ@bʸí Ñèʫঞ÷?üÐÄ=UUÊckÎ>ûl#",+¯o1Ew¹•+WšîœvÚiÆzÃ8.–šúCëÓÞ½{±bÅŠ“†RW1uÙe—aöìÙ8|øpyû5´4¹SŒ¥úþûïÍe´lq,¦,´jYqd 0(ZÅ,1õÃ?«œõ;c½²²²ÌïSžü¨.¦FÀ®:À£1Sv…èÉÅÎ8šë¯¿Ÿþ9RSSOªšnvL¬@!B ÿ]¸paËMCˆ©”[](4¢¢¢0wî\ãöWShÅ¢u‡V¬Ê¥®bŠ–;&×`ŒRu¥:ËTRRf̘anKHHÀ„ Œ5Šª¡C‡¢uëÖ†+-_û÷ï¯ ¦¾úê+dffš{¯ºê*c©³~—˜òä§@u‰€ˆ€ˆ€45võP“˜ò•ʤ L6±eËÓ;ZH?Ę1cÆ×6Zf¸é§›㌜³Ý5„˜¢E†®},O,´L¹êÅ­Rûöí󘘢eŠ.~tÃc¡ðaa¢ «T'¦Ú·oZ˜XwÆ´0uíÚ4‰n‰ŒÙb½Î–)‰)/ü°¨K" " " "Ј$¦~uM÷íÛŒï™6mšIÎÀØZI(fCÄØ#Z{hY™2e ˜¸Á9V'11Ñ$|¨.  7Ü`ÜÅGMØ>F|óÍ7æ2&K`ÒZ›\õ§&1Å$—_~¹é ÇÉdV2«?UÅLQÌQèPPRXþêW¿:)}zubŠn}´jÑ¢4~üxÓ.ã Èœiã)´èjyÎ9瘤LPÁB×ËšÄE%] i%äýLqnÅS¹³Ä3å%]#4Ó¡ IDAT" " " ÞE@bʻ棼7Üô[gÑBe3E«Óرc ¨¢«Û AƒðÓO?•'¡àfžIø/ãˆ>úè#—×MqÄx!¾ÆŒutás%¦¿E‘FĨ ˘«þÔ$¦Ø&EHçÎM?­qÒÇþ³0ŽÉÊ’ÇØ0Zç£ÅLx4'Ó=oÓ¦MåV³Ñ£GƒqQ|Ý9S z°ºññ=Š- *+›Ý™t‚… ((NéºGÑÈú]‰) [^Ïz(RüñÇÝÙŽ5Çü?çÊÊjÈ®êâå¼t¹ª[" " " "`KSvõ•lî+‡â‹nzVÚò¦:^Zû(zhÑRú𨘪ogt¿whNbŠÖ5ZãTD@D@D@D@D ¾$¦êKÐ÷KLÙ`’5D¨»z¨ILÕcÑèV˜ ÉüaçªÎm®Œ$¦šëÌj\" " " " "pŠHL"ÐjFD@D@D@D@D y˜òÀ|ÚÕWÒèT…ˆ€ˆ€ˆ€ˆ€4YS˜:»Bô:U!" " " " M–€]u€Gc¦ì ±É®zu\D@D@D@D@<@À®jSX<ªBD@D@D@D@DÀ~$¦ì7籈€ˆ€ˆ€ˆ€ˆ€HLy¢ª°Š);úJæ¶[a¿U£‹€ „îlãÑkè" " " Î<*¦ìˆ–b*·½•ç^c¶'¸ù7Ùsൈ€ˆ€ˆÀI$¦ê¹($¦ê P·‹@# 1ÕÄ&LÝ8%ìè¡F°Sõ\^Sõ¨ÛE ‰˜jb¦îŠ€ˆ€œv="IbªžËKbªžu»41SMlÂÔ]SB@bê”`n~HL5¿9ÕˆD &SZ" " "p2‰)¬ ;úJJLy`ᨠhB$¦šÐd©«" " §Œ€Ä”PÛ¢Ä”Žª&D@bª M–º*" "pÊØQ®Gc¦ìQbªöŸÑIíÃñ«Îå7~¶5óöçT¨è¥q-áïëc^Ë)*Å}ó×¾!/¸Ã±zA7Õ…Z˜ª,]*" "`vôP“˜òÀò–˜ª=ÄÖáh€¾qA茪ÄÔ°¤øùøàòQMZL¹3ÖÚl¼;néò ¢Zá@ÞZ¼·ûºÆëH#¶,1ÕˆðÕ´ˆ€ˆ€xY¦ê9!SuxvÇLé^¥˜²j}uBR“SÖ8ÜkÝIžš;‚ºà†N£¨4þ¾AxeÛYÈ)N=5{Q+S^4ꊈ€ˆ€42‰©zN€ÅÔÈV¡8£]b‚ýp,¿?ïÉÆÒCyå$[…û㢮Qh€âÒ2¬=’Ï·f¢¨´¬mwF]ÄTט@Ü:0?îÊÆøva¦ýƒÙE`{K“óðé– ÓZ.èŽQ(()ÃîÌB|±-ÇòJâïƒçÆ´ÄÞ¬"Lß »D",À+çá“-°F2 >S:F !Ô…¥Øp4ßìÈ2õ9—êÆêãœÕ!#’BèkÚž ó÷ç”·Áþ]Ù3 -‚ý°*%é%˜Ü>ïnHÇ–Ô<=:‡s‹ñä’#¦É‹ºFb\Û0ügc:–';æ¥{LÎéŽ6¦oËåá뙨4%5~FÆ]‡qñ·`yêGÚâr|wèq¬Mÿ¦žŸ ¦w»ÄTÓ›3õXD@D@Š€GÅ”}%í&¦úÆã¦~1fó¾ø`.†¶ 1¢äíuiXs$Œrzddb‚üðùÖ tŠÄÄ|¿3 Óvg»%0œ/ª‹˜êˆÛÅbñ¤å—`T«P,9”‹_ô‹Æ=ó’MŒH@x€/fîÍ6ñY ©y%xb©C”¼<®%²‹Jq$·Øˆ¾OAóÖšTSw»ˆÜ=4Y…¥˜³/¢Ð/.¿$çá½énuB»0\Ð%{2‹°úH>†$žmÎÀ¢ƒ¹ Øb?cƒý oþÞ?>ØŒåßëÓ°-­Ð¥˜b}÷ ÃѼb#0[†ùÇù༸[®éð.⃺àÍà]À¶¬¹ø|ÿÝîÞÞl®“˜j6S©ˆ€ˆ€ˆ@½ xTLÕ»7M°»‰©;Ç¢ST ^Zq ;3 ¥cbÛ0ìÎ,ÂÜý9òóÁ€„`ä—qÅü}§ÅaSjÞX]Ñ%¬¡,S–˜¢*¯¸ ¿í¿¯M3Ö# —‡¥ Wl.ëe … ËýbŒúçÚ4¬?–¿O2¯?¾øŽäcb»0œß%²\^Ó;ƒCðÞ†tür8Ì—ñ—Óêïkfä—–¯èêÆúÔ鉈ôÅà SŒÅ©Mxî=-û³‹ðì²£ÆjvçàXÈ.Â3ËŽšúø>¯û×ú4lwCL1îŒÖÄwÖ§aÝÑSÇ´@ëˆÜ;/Ù-ëT˜ ÜÚu:vf/Æ'ûnÅõ?@‹ÀvxiëD—6ÁOnÝ»,1UwvºSD@D@š‰©zΨÝÄÔ³£à‹{æ&#¿’+›…’ÖnÞ£‚üà ÐÏÇ/ 0çÒÐbŠâræú>1xyå1#ì.îiÄÑè6¡ß6̸R²LíaÜçþ·=ÓXš(¦(ˆîçÈ$xZË\Õ+3÷æà«í™å¢†"‡b‡…‡è¹åG±/ËñKUc ö÷ÁócZVhÃÏ×ÇXÄèŠw÷ÜdcÕ£\–œ‡ÿ·v]Ñ# #Z…º-¦¬>UµÔY”‚Ôü—Ÿ‚þÑçᜤ‡0óðKXšú&$ÜŠá±Wã“}·aGöB—÷7§ $¦šÓlj," " ž"`G5²“˜ªç ²›˜bã‰è*GëSåB‹Ïïû·Àþ¬"¼¿)QA¾æ÷ÆS´Ü°¸+¦˜®©Ì¿ÜæXStá{`CLÑ¥ñê^јµ7Ç.ËBôô²#8˜]l®¹kp,:DâÙåG ƒšÄ”—•[TŠ{§~§»!Ó“-[m:‹)ËÒäl™¢+âãÇc¦.é…Ñ­CËc¦þ80ÝbM¬-^Î…ý.¬F;_wq›¿¢kĘ“æ{Uú—øñÐ_êù)jZ·KL5­ùRoE@D@N ;‘$1åµe71u×8tˆ 0–žé…H õÇ=£°7³È$o`,Î9"LÒ†ïvfa`B0®ëƒ]…øk%ËÔäá˜Ú)¢‚u¨ò”¼<> %'¬CîL™åæW“˜êÖ"иù-<˜‹»ùÝܯúÄáÍ5©ØœZàRLYn~LÁÄ~ÇÝü‚ý}qïüŠb³º±Zn~-LAFA ÚFàOCãL Õ ¿…•LƒÂŒåÞ¡qƽ’ã£ÛÅ-Y–ËÞÝCâLêy+ÅÅÝ¢0¦M¨‰³÷9¬ptÕ,)+3 6ÊNÖÄ0ûûâŽn³PŠblÍšSþ^¯È3‘[’†W·íδ4›k$¦šÍTj " " $ 1åA˜vªÊnbjPb®ímP,<àH@A`Å Y®ptq£«]颃ýLb ^ÃØ)«P¸PÀpC¿à@.h¡aœ•s¡°`ý?ìÊ2îhÛÓ MÆ»šŠ;b*³°H@¨¿fìÍA°Ÿƶ 3Yÿ(ZØ_W–) ŠKŠ Š”®ÑæÜ¬yûsñÙVG–«±Z ((6™€bxR(’ÂüPZ’oÚ£qUŒïb\–•€ÂºæañæfT,,-CŸØ “i‘n´hŇøãaq !‘"—I78/ÛÒ ðZ¥8¶ª¸v KÚ¾„™?á«”_ò›öÿ@»ÐAø÷®«œ¿É6{‰)ÛLµ*" "P Sµ€UÝ¥vô•´›˜âÜmf2ÛqÞšWlbˆháaáæÿ7½¢Á¬t‘ûhsº‰!¢ÅŠÖ&‚° 3Ó1!Äé­CàëS!½·u 3æ±>ŠË T_1Å„Œ¡º°k$:F˜$ [Ò ðÅÖL#Ú(Z\‰)öÉ6•êoÄàÊ”<|½=ë¤4ðÕÕJγÈ@¦š/Æì½9&=ºUz¶2‡35;]ÐÄ …ÿ\—fÒ¾S<2ŽŠ1jKå"½ tY´2²ž-‚LLX«0“”ƒ¢õëí™Õƽ9ó’ôF_ˆ=…Õéÿ+ëô¸1&þf,8úOÌ;òw|ƒ4*$¦šÆ<©—" " §–€Ä”xۢŔ–Šª¨Š(Z“h d±²VŽËªE•º´$¦êO·Š€ˆ€4[vÔœL& °#D‰©Sû@Ë×u}cjltÑ\sTs(æœ©á ˆ ñÃO{²Mb Ƥ%癌µ9t·9ðð†1HLyÃ,¨" " ÞFÀŽjSX…S€¨*j$ÀCv/êi²—–™ÄL&áNJs¡õ<‰)Ï3U" " "ÐT È2UÏ™“˜ª'@Ý.MŒ€ÄT›0uWD@D@€ÄT=áJLÕ n&F@bª‰M˜º+" "  HÀ£bÊŽ¾’S ¸:Uµx!‰)/œuID@D@‰€GÅT#¡Q›•˜jTüj\N9‰©SŽ\ Š€ˆ€ˆ€×˜ªçÔHLÕ n&F@bª‰M˜º+" "pJØÑC`%¦ê¹¼$¦ê P·‹@# 1ÕÄ&LÝ8%ìxD’Ä”––Ä” ª hB$¦šÐd©«" " §Œ€ÄÔ)Cݼª‹˜jؾ¡'H-܃ÂÒÜ“^×õ$âãà õàÙõPÛo$‰©ÚÓõ" " v 1åY¶£¯d]ÄÔÐW Ô/ú$âûrW!·$ý¤×Û†ÔõÄDZ4´<µ’ó7ÕêÛObªV¸t±ˆ€ˆ€MHLy`¢í±.bjPôEˆ hyñœâc(.+<éõ0ÿð÷ ÒõâcÖ€Öƒã£PßÏK_8¢ZbgöblËžïö7 Ä”Û¨t¡ˆ€ˆ€ØQpz=š€ÂŽë"¦º†F¸¼>^ªx‰)ï›õHD@D é°£‡šÄ”Ö«Ä” ª hS]MŠ€ˆ€ˆ@3# ËT='Tbªžu»4‰©F¯fE@D@D ˜ªçdÖVL1[—ð‘(++«2>ªžÝÑí" n˜r”.¨–€GÅ”}%k+¦/Õ)|2Š’QP’­¥)"ÐH$¦ ¼šfDÀ£bªqq{(Sn£Ò…"àu²‹Ô*“ l~^7ꈀˆ€4‰©z¢—˜ª'@Ý.H@bªá«ifEÀŽjœ@‰©z.c‰©zÔí"Ј$¦¾šhVìxD’Ä”–p}ÅTbpw0Ž*Ô¿ Ks±'g9vå,uÙ³~ÑSÑ:¤/¦ze(uy½'/û„ùÇbÖá¿•WÛ˜ý©jl‘‰w}ù[óŽüÝòê\ºFŒF—ðѨ꽚xõ>E¥yØœ9Ó“XUW#˜jèjRD@D Y˜j–ÓÚðƒª­˜rdó…²²RùE`tüH+܇}¹kÐ*¤7âƒ:cEÚgHÉßVcçS¼´lŸ@¤l÷Z1åç€ÿ´ €6¡ý«LáþqàÏÑ‚µÊ¬8.áHÎß,1Õð¯oAbªÁ«›˜òÀDÛÑW²¶bŠ˜i‰ ÷GRH/ ˆ>ë2¾ÇþÜ5ô 5Ö¦ÔÂ=&Ûßä–÷àhÁ.¬LûA¾a˜xvç,Ǧ̟a‰©™?›ú Ks°:ý+d†¯zEž‰Äàn ¨H/ÜoÚÈ+É4³ÔÝ#Ç!Ô/YE)Ø9ÍÜÇ2<ö*ÓmYóÐ3j‚|ñ*íK#:„†ž‘g˜ë Jsª´LUÕø kÄX#j(ÂçoÅúŒPRVdúÊqîË]âÒB´?Ÿ@Ì<ü²±ÔÅuDˆ ÷5¿ÓjGî–ª¬O®¬V†¢CØ0ù†"§8›²fàXÁnøãŒÄ;+4Mn þ«ÂkS’0BsEê§îvS×5‰©F¯fE@D@š‰)L©!ÖGL…ù·Àèø›PRVŒý¹«‘œ¿ÅX©¬âŽ˜ÚŸ·ÖXVúEkÑâcï¡]è ôŽ: +Ó¾0îh}£Ï1b`}ÆF@‰¿G wQÒ+r’/sR^CÊÐ'êl#zŠJsµ,¯$©…{‹\ oBü"Ñ'jбªUåæWU:† Cȉؔ9E‡0(æ"#·dÍ6Cÿ;#TJËJŒX¢Û"y $ïÙžµÀˆÃv¡Í)rÜ)U‰)?#fÛ†4–+g7?Zª8'Û³ë ïö‹ÀÂ#ÁÔ"¨Nkq9æ­7ü(³‹Vèʤ–wáHþ#nU¼—€R£{ïܨg" " M€ugÉ£ (ì±>bŠÔÅ Æ ±PÑE㎘š•òŠ9¯jpÌÅH’ŸGë~èu¦&‡ó· ½ð`y\ϸê1KŽýi…ûM»a~18V¸Çƒ‘Ð1l8¶fÍÁŽìEU~’kŠ™ªª?Ãb¯B°_8f~ÅÔ×+r2Z†ô,c#ã®ET@RyŸœ˜x»±H±/Ç w×úl®šâ¢ªzÏS´,íËYi„dqYay—(('&ÞfØ*fªé}Ñ;÷XbªiÏŸz/" "à]ìè¡&1å5X_1euÁÄ÷„ DûÐÁHÎß„UiÿsKLM;ôôq‹Òci™òš±FÑzÔ2¸§q££ àúŒiFXQÈ´‚¹GÞDnqÚI(´(¸}Û¸VUjN@qrè:ì‰Ò²bS|M¿(ü(àFÄ]ƒ0¿˜qø¯'5Dz^Qg"Ô/@Rò·‹ïs§ÔVL±NŽ¿S؈ãÖ²b#œ¶fÍ5ÍYî–SîÐ÷îk$¦¼{~Ô;h d™ªç,ÕGLµ 釸 N&žÉ´zä§W6Æçd'cÙ±Ð#ã®;)fjNÊëÆŠ5(æ×Æ nzòsF´0N‰‚%:°-zGN6ÿŸ“ò:‡D·ˆqXrì¿Æ¥ñC1mq(o£±YbjvÊ«È/ɪµ˜ªª?§µ¸!~QXšú~…úòŠÓ¤˜ ô ÁÜ”7«lc ñ‹FëÐ~&yÇÚôoq o[3×%üttSeŠê„Ûc!›Îá§®tƒd̙Ĕ[Ø›ÄESMbšÔIðjSõœžÚŠ)G6¿‘(++Ó¢3‘Ýí˜àIh]b¼Î¶¬¹ ûÝÎÖ¤m¬LÌöÇÔéLò`%  ¨ µ†¿§À²c gä$´ îaDZqYzDL„¿où§qëcLc¨h]¡x ò ÃÜ”7LŒRubŠ#2 ¥¡E«ÅÑòÔÊ,J®±?íÛ„[²f!½ðºDœŽ‚’,¬IÿÆÔW˜b¬Òèø›M|c”(nÓe%Äpgê(X™Êœ.ytÙc|ûÎÄVÌë£ å{´„õ>ÏÄ—19ãÇx]iá£(”x72‹›:)Éß9=½b¦Ü™™Æ¿Fbªñç@=¦NÀ£bÊŽ¾’µS̼G72fëc¬…FûÐ!Æò y´mËžk’1Äu@¿¨©ðññņŒis¡IÌÀ>³2FŠúî‘ã5‹îoLAëIŸèsÐ"°­q©£Ø¡ã¿,Z´ÖÐu.«8kÒ¿-?ƒ©:1UU&;ÖÅ~NO~¶ÆþPˆu‰ ›ß“]pCæôò$5Y¦˜ ‚¼‚}#åŒâ‘ñ\îŸ Œ¹qAƒáâ£ï™äf• ßc²‹ž‘Ñ2¤|‚‘W’ŽmÙ p(oCùåì-^LÂÁ9d‹§¸*eóswv÷:‰©Æå¯ÖE@D@D 9ð¨˜j@j;†úŠ©Ú¶§ëE@Øœ9 ‡›¾P,øøøñÜÛ–ËÃs7fNG~IÚ‡ E¯ÈIÆF‹7¸;³cGö"ÓŠ>¾`®ß™³Øâë\†ÅþÆFì,¦x¸numò=þÛ2¸;Ò   4­CúbÚ¡gÐ!l(zDNÄ£ÿ2V#PÌC{gþ+ŠJóÍÁŽ#Ï4çTå—facÆO8R°Ãå÷ªe™šžüJËŠ12î:sÎëUiSÃ]­Š€ˆ€4OvôP“˜òÀZn,1ÅÍ¿è©Ø™½EÑ?ú<#š(J(°h­á¾Q1μNqÔ0b*g$Þ‰]9K拘À¶¦½¡-.3¢$>¨‹6[2g!·$}£Ï5÷.Oý¸¼¯i…û±-{>ºGŒ3Beæá—QVV†q · ¯$[²f›C“Bz™ƒwÓ‹”¥*1Õ9|TµmRQ$íÍ]ŒÂC†•¯?~<ôt V­˜¢{ÞØ„[PXšƒµéß¡MhÓ§Ù)¯áXS±ÄÔœ”×áïˆa±W!­pV¤}æU¨*êB@bª.Ôtˆ€ˆ€ˆ€3Y¦ê¹ê+¦¸±î1¶¼´îduÙ+ •˜Àvø9ù”¡1màë€c»Œõ‡?Üà‡øGclüï±={>¶eÍoP1µ2í ĶGt`kü’ú)&&Þ†eÇ>DϨ3Œ€˜“ò†i@ÌH îéÉÏ1B1c‰=Z´ºGL0"Œ.|ƒb.ÂÚôoq oÂýã0:þ&c¹¢¸²JUbêôøªm“"”V»Ÿ“_DqYx‹Àv.ÅTL@ûD çɲÈUŽ;«jòœc¦ø>âŠÔO‘Uœâr®uAØj®ªUD@D@ìD@bªž³][1åÈæ7ÒX]ŠË Á¸Ÿ ‰·•÷‚씂í.{uzüð Æì”WOº–®q}¢ÎB˜|èôçã‡Ù ±5knƒŠ©_R?F\Pg0&keÚ瘘x;–¥~„Ñç‹ÔâãñAŒÕj:´ÒÄu6bjɱÿKMû°!è9ÙXŸ¢[¢Wä™`½G v"Ð7ÔÔ¹?o-Ö¥W£˜âuÕµÙ7úD´ÆOÉÏ›:hÕkÒÛ¥˜Jê†~Ñç7=Ëe’¢•9º6ÖT,1e,QeeÆ0:°9Å©.ç[xž€Ä”癪F°Š);úJÖVL1.ˆ±NEÉ((É®ózÚârãN7ãð‹&;3ÅùE‹ÉðØ«gÞ‘·Œ¡5çd1ÕÎXdª³ªLIº‡ò6¹•Í/À×áæW˜ê1Ñ$] xbs¡‰WbüP›þÕŠ)nv–©ïp o­É€8:þFOµ5kN9»Ób¯4ãuŽ™:=î†jÛ¤xbû?%¿ˆ’²Â –)+†Ëw–blSd@Nkq¹±Š%ço.o¿¸´…¥¹n‰)+fŠ–1ZèܱjÕy‘èÆ HLiˆ€ˆ€ˆ€Ô—€GÅT};Óïo,1Õ6t€I¢°+g)oD×µc»EhTÜu&!òÔML7îL’°.ãÿÙ»ฮûLô_îF7zÁ À}§HQ©]–É[<²ãIb+±'SžÌÔ{õÞÌ«W©zU3qœLMÆI&›ãñÇ»-K¶DJ)‘ÔBŠûN±ûÒh »Ñ t¿úIlݸ½ÝïV¥b“÷ž{îï0ørÎýß_«" rÈ:yéNà2nžDpbX•Ÿ:.ùcµî²÷æ[=Y(LyrÊÕ{[òÎT âÃ÷Óª`†l œz¿k¶•)Ùä+ªð„yf AÇû¾_ûÜMâ IDATøÃíq“ÛöÔûGÒW©’·*oÏœ÷œ L-þÓð…»QïzÙ¼3%+eÛ >«\d…pëqµOÂÔDtû‹ÿH^~ ò\öjÛŸ¬ªÍwL…2 O²ª%Ï"+xSÏŽs?úÌÒè™0Š| P€ @ò¦4Ú'+LÉö½ZçƒjeG~Ùï 6ªŠ}²uPV©Ö¹ŸRášï õK»œwÁû2:—§ŸXªÖÕØ·«m€Vä]¤©£)Û»xÃÔd5¿½ˆF#jKÄ ÈV¾:×Aõ¡^ùÀqè¶*±P‰Ä÷”w\j†©¥fû (`†)FÚˆ{%ã SÂ,ýä  @r¦’ëÏ»S€ @æ0Lé0–FDd˜Òaâ° $A€¥Ñ“€Î[R€ @Æ 1È`êZ€Âˆˆ Sûo,æ2|€ùx (P#îPc˜ÒaŠ1Lé€È&(†©$ ó– (@ àÊ”Æe˜ÒÈË)$†©$Áó¶ (@ `˜Ò8˜ñ†©Éj~{FYÍO£=/§€†)-z¼– (@Ð5Lq¯d¼aJ*ù­Ì{ÞpÆ&F8 )@$ 0L% ž·¥(@ d€®a*ƒ\b~­aÊl²`µsÿôýÚüg12Þóýy"(°x–F_¼¯¤(@ P@ç•)#‚j SÖ,–~mšîôÀÑ3vÓˆ”|f $\€a*áä¼!(@ d¨€w¨ÉPreJã„Ö¦4Þž—S€¦4àñR P€ À]FüDÔ?ÉSÛ >—¹Gz¾9ãiæû;yokUÞ¼×ÿ} ‡»u`H?†©ô3ö˜ RS€a*5Ç%å{o˜š¬æ·ÑhD—j~» ?wN9w}c†Õ|·Ú¹µyûðvß·á w¦¼3;H¥`˜Z U¶I P€F`˜ÒaÔ¸W2Þ0%ÌRÑ/Ï\¬ƒ8› ´0LiÑãµ (@¦t˜ FDd˜Òaâ° $A€¥Ñ“€Î[R€ @Æ 1È`êZ€Âˆˆ Sûo,æ2|€ùx (P#îPc˜ÒaŠ1Lé€È&(†©$ ó– (@ àÊ”Æe˜ÒÈË)$†©$Áó¶ (@ `˜Ò8˜ñ†©Éj~{Fu©æ§±û¼œ†`˜2ìÐóÁ)@ P€º 覌¸W2Þ0%•üäOÞpÆ&FtH6D Ä'À0ŸϦ(@ P`¦€®aʈÀ SFu>s¦°4z¦Œ$Ÿƒ (†)î Sy9’(À0•D|Þš 2JÀˆ;Ôd¦4Nc†)€¼œI`˜J">oM P€%`ÄO$1Lé0…¦t@dH’ÃT’ày[ P€È8†©ŒÒÄ0kÕ?ž?IEŸI·Å͇îà \õ½×?EÇ^ˆë|žL P€0‚Ô£lĽ’ñ†)a.³ÕÏЮ²o=Û3ãÏÛügáŸâùôQs€óaòGAÏŸ—¦Ñwâú×a*..žL P€`˜Òa ˆ¸˜05µ¬XY³ì3þª?Ô‚PÄ?ãÏyþ$ }&8ôóýsÈ0¥Ãÿ±` (qFÌ2ˆº 0"¢^a*ã~¢ø@ÈP†© X>(@ h0â5†)MSfòb†)ÙÒH€a*‹]¥(@ ,±W¦43LiäåH3†©40v— (°„ Sq¦4òr ¤™ÃTš »K P€XB]Ô÷J2L-áìdÓHA†©v‰ ($]ÃT’ž!©·e˜J*?oN„ 0L%œœ7¤(@ ¤¬Ã”Æ¡a˜ÒÈË)f Si6`ì.(@ $DÀˆ;Ô–aJãôb˜ÒÈË)f Si6`ì.(@ $DÀˆŸHb˜Òaj1Lé€È&(F Si4Xì*(@ $L€a*aÔ™u#†©ÌO> `˜ZHˆO P€F`˜ÒaÔ¸W’aJ‡‰Ã&(F Si4Xì*(@ $L€aJj#"2Lé0qØÒH€a*‹]¥(@„ 1®®(ŒˆÈ0•°ŸQÞˆ)!À0•ÃÀNP€ @Š q‡Ô“aJD6A4`˜J£ÁbW)@ P€K,À•)À Sy9ÒL€a*͌ݥ(@ ,¡Ã”F\†)€¼œi&À0•fÆîR€ –P@×0eĽ’ SK8;Ù4RP€a*…]¢(@ $I@×0•¤gHêmã Se¶ú9ûÛ¼:ëßÍu ÏŸä¢Ï¤çÃâæC¼ÿ€0LÅ+Æó)@ P€™+À0¥qlã S[<ÏÁ•S6ë]¯ûŽÌúçuÎ<}&§çäƒ^óa®:×? SÿÑäå (‘FÜ¡&É0¥q:/&LUÙ·`8Ü5ãÎÞp笽qç”Ïúç<’…>“œñÍ™7QDqÃws¬ ÏöƒÇ0¥ñM^N P€)`ÄO$1Lé0•¦Úügu¸;› +À0µX9^G P€˜)À0ÅY±(xÃT¹­u΃s®",ª¼ˆˆ[€a*n2^@ P€˜S€aJ‡ÉaĽ’ñ†)a–÷¦xP€É`˜J®?ïN P€™%À0¥Ãx‘aJ‡‰Ã&(†©$ ó– (±FÌ2˜º 0""ÃTÆþ›ÀËp†© `>(@ $TÀˆ;Ô¦t˜b S: ² $I@ªø±4z’ðy[ P€ @peJã j S¥¶:¬ÎÛ»¹¡ˆ-£§Ð<úÞ‚½Úèù(*r7àÕÎ?C‘Ï×ó„]…Ÿ‡Ã\ˆ7ºÿ*æfmÙ.(ùcîú LDC3®+°Ô`Wáó¸ì}­þ31·»'>VöŸ`6YUÓsõç©òÿŒÎÀœúeÌ]XÈ æ†x¢n SºQ²! P€ €!¦4{¼aªÌVµÎð†»T ÙWüe †ÚÐæ?e¹ëPl]…Óƒ?AO°qÞž%3LXªa6YÐ3v3f= ~Òç¹Â”%ËiW¾¿åŸŠ¹Ý¥8Q¶¹s–aû‰9ÃT™m-‚à ߉¹ ÄÜOÔM€aJ7J6D P€0¤€®aʈ{%ã SRÉO>Ú+ß™*ÏmÀfÏ'pÑûk´ûÏC…üÂ=jQaëñ²ÿ}cÍ83øSX³8Xú5Ü=…«Ã¯©`"ç^~M­l…"£j•d8Ü,S6\O Ô¶Ù¦ …ÚÕ=Ãj’[kQçzöì|øÂ=¸<üªºNŽÝ…_Pýhô½…z÷c°fåáìàÏѼ†åލw=ªÎ‹ŒÞ³2µ9ÿY”XWãÊð!¬u>‚±ˆg‘ñ>Ô»ÃrÇŽ{~À䙺ƒ7ÔŸÍ·$¡¦Áõœ9%NøÐ4ú޲’ãÑÒÿˆÞ±[G¨´oÂèøÎ þD=çB ý´ÏµR¶5ÿSÊUŽûW¦r³ÝXï~ù– D¢è ^WòŸ2ödÅO‚Üá®o,Ô=þ½N S:A² P€ €At SF4Ô¦æì+~Ñq´ûÏ©_¾e•jêˆ%Lµ. o¬ ÝϨ@ôNÿwPmߊuî'qfðg*hlð|ýc·qÉûŠ Pÿ!úBÍ*˜IPÉ6Yp´ç¯ET… &áˆ_­–&¼µbt¼–,r³]Xï~ Ölç=aj*Üu.ª€³Áý ¼á;x¯ÿûímõ®G «rïö‘è8üƒG‚êQ]9¥j%HÚ½{[lµ{¸ä«*]÷AeîF@ßéû†Â*\JX¼5rã‘°ZI’-’׆;¯A,ót®0%~9Y6ì)ú½aJ¥'gÎý ¶l§zž+ÞÓ… ¤OÛ >—¹Gz¾KyŽ S: ² P€ €¦4¾–0%·.±Öb­ëµåO D²j#!&–0õFÏÿĨĶå%¶ÕjU£"wãt°è^ÇPèÎô{U+ó@óÞíÿ.Cí꾎ì|ô‡Z0 c­ë V8vã†ï(n¼=«ÎlïLM…©7{þVmÓ›ZÁ9Üõç*,J¸“Ï;Sò>ÙÖüOâÂÐK*䙋TølyG…+ Sã‘ Þêý{ÕOñ’Ð(Û$«íÛæ4ˆeÈz‡k¶w¦¶ä?‹"ë*µª'+Š#ã½÷Üj!ƒXúÅsô`˜Òד­Q€ €qŒ¸CMF›aJãœ×¦¦nï4— Ê±5ömªº˜l‘‹%L½Úùß>XQzJm<Òó×j5JVEd%H¶»ÉÀKÞW!ÁªÁõ8jÛñfïÿ‚|pÆÓKÐ’Àu¼ïŸÔÀÙŽùÂÔTA ¹ÿTäÝ¢…‚Älá¥Æ±MmW|à‡èkRÛ)ýÕ¸‹C/«05îÅɨn>Zú'ð†;qjà‡jÅj.ƒX†|1aJV­$TÊ6?À¤ÂÔ™ÁŸ«U=92ˆ¥_,ßt’à^òþæž’å–ì*|~F˜šâxªü?Ǧäþ–þ‰Zm[–»׆ßÀʼݪ/L&“ å¶uÈ6å` ÔŠ+ÇÔÇxk;ÐàzL­€­ÎÛ§B‘|_J¾A%‡„>ù{gN‰:¿iô´ûÏß3jò}&‡¹ðž0%߆šëžòwëÝO«†:0QP~µóϰܱò}©}ßR«Fò!aYI|½û¿# ª ¯s=WN)‚®x£wìÖ‚³hjeêPן«oPí)ú}õ/i—Gò¦’gÏ;S€ @f q‡šŒ ÔÆyœ¬0%¿üK9ò¦‘wá ßÁ&ÏÇUh’P"KVk亓¡âaõçS»•GÖ7LM~зyô]8² ‘o©R÷ÛQð;*”[kU°¹>üüCØàyC¡võ¡Û©¾†ÚÑ8r u·UPùm÷ÿ@4ÅÃ%_E`bX}4·2w#ÊsðNßw0ÙÂÔª¼½sÞS‘„¤VÿixCÊ*ËdÆ+ÿ+»æ S²=oÉWŠŒâÂÐ˨´oR}:Òó×Óæk:M…©£=³É‚]…_À`¨ §¢qòòÅ °4úbåx(@ P`¦€?‘Ä0¥ÃO‚Ö0%¿X¯vîŸî‰¬îŒŒ÷-Ø3 *ù–j¼Öõˆ"‚|K%²L9èkV«?ò?²2”kö`ñWpsä}ǦÛ]Š0ufðg(´ÔÀc©Àû?Æ#¥_ÃÉþ Þý¨ G{þVÝsþ³(·­Å¡®o¨0"af*ìÉŠVó  a²…okþ'qaè%t."Ï\„}Å/¨•+ WSÇlaêÁâ/ÍyO ¡²j÷Z×_b<:¹¾ÀR½`˜ÊÏ©Tï>É  ŒÓÔŠÜýïÍ6xw¿3%/ñôÀáïYp¬yÂÒ0L-+[¥(@c 0LsÜ5?u¼aJ~‰—°à wª{Ë{?K¿6Ýù»gìæ‚ýz°øËÈ1Ùp¤ç›3Ε­qëÝOÂa.‚I6ý™²qkänøÞ\Ò0õþÀQd]ù%õÌàOñHéÀÉÅfÏÇÕŠÔ;¼$ïjUÛ·AViŠ­«T˜z·ÿ{j¥¦Æ± ®ÇÕê“ÛR†×v{Çš`ɲ«6ÛpqèåyÔœ7×=7x>ONw}Cµ!«zËr×-¦J¬k°ÑóŒÚ¦ET]+¡UVädkã|ÇT˜R+QѨÚNè±TªÐ8:>°àxóý¦ô7e‹ (`\†)ÆÞˆ{%ã SÂ,ý´; >§¶Ó½Þý—ª:œTгf;ÕŠÉîÂßU«8oõþ ²š33LU«™¹VUž*ÿ¿Ñ¸S5¿œ¬Ém~s…©zç#ªè‚„'õüùÏ©÷•äý¡ÊÜMs†)yjreêet. Ï\Œ}Å_VïSÝð&ÜYø¼zÞ»«ù=Xô¥9ï)áIî¸ë/1 ݳ25õ×T¸› Aòn“+§; >§Vź‚צï?C(â)LM½3%¡ZVèbYÕÒ:Wxýì Sœ (@ý¦t°4"b²ÂT•}³*¢Ð<úä}#ÙºÖ?v[­í-ú}UáäÀÔ;Iò‹»I¸èýµ*¢ ‡l¡“÷‘î.ãöèI'†Uyñ©ãá’?V[à.{_QAa¾Õ“…”'§\½·%ïL">lp?­ fȶÀ©w¦f[™’íŽûK¾¢ OH€‘g–t¼ï[ð…?Ü7¹m¯A½$}•*y«òöÌyÏ©ÀÔâ? _¸õ®Ç‘ýÁ;S²R¶½à³ÊEV×¹WÛù$LMDDZ¿ø”á•á× ÏUaߨ¶ýɪÚ|ÇT(“ð$«Zò,òËüÔsëðãÇ&â`˜ŠŒ§S€ æ0b] P1YaJ¶ïÕ:T+;òË~O°QUì†Ô*Õ:÷S* \ó½¡~i—ó.x_FgàòôT­«±oWÛ%¬È»HSGyîºé !ÁGŠEÌu,¦C­*ØÈVº,d£o¬W†«à3_˜’"©æç~\­J&¼¸9rüžBÒ'©ô·Åó¬ ²Jw¨ëëÓ…7f»§l͓թ"ë @#˜@™m­Úæ'®²b$¡ª?Ô‚‘pŸªL(«^6å^“ÕüÊÔ;i-þ÷U…Ž{ß™Šª€x{ô” Ã<’#À0•wÞ• 2SÀˆ;Ô¦t˜ËÉ S:tÝÐMHœˆ†Uø’•(ùÅZ*ò0–K£k¼ù´ (@½¸2¥Q”aJ#`./³ÕcKþ³jeHVÉä?woàüЋIè o™L†©dêóÞ (@ô`˜Ò8†ñ†)ùE~­ó¼á.wæå‹­|u®ƒêC½òãþÐmUb¡"‹½¯K]†©ÔöŒ (º†)#7LI%?ùh¬TÝãA $W€a*¹þ¼;(@ P Ýt S鎱˜þ3L-F×P 5¦RcØ P€ @º 0Li9†)€¼œI`˜J">oM P€%`Äj2€ S§1ÔF@^N$ °4z’ày[ P€ÈH#~"‰aJ‡©Ì0¥"› @¦’€Î[R€ @Æ 0LeìÐ.íƒÅ¦Êmõ¨s„7ܹ莅ýQ„ü3/·Ø»iÆ_ðüIúL:dÚ|˜k\úc˜ZHˆO P€ˆ]€a*v«9Ï4â^ÉxÔàIE?-Çho£}ÑM8ŠLpÏ S<’Š>“™6æ×…~ƦâßS€ b`˜ŠÝjÎ3ˆ˜Œ0¥VFgƒÅ1ÏÊÏ}&çL¦ÌŸ©6†)þñf (@FÌB¦k #"&#Liœë¼œ!0µÂÆ0•Ãɇ (@40â5†)&-Ôˆl‚‹˜Za›kÅ1–&Y=%žC P€ À\\™Ò87¦¦¶6-ö¥{ËË)Q S5œ| P€ @¦4’ǦÊlõXë<o¸kQwÖºµiꦹ£øDý…é>üìÊfxƒ¹ê¿Ï÷w‹êt í«¹‰Õ…½øßgw#YD#†&}ÊÓk.Ãm à_/n¹ ‡%„Ï®?ïÛ‰p${ÆuåÎa<µú2Þn]‰k}¥1·Ë+À0•XoÞ (iº†)#7LI%¿*û´ùÏ.j.é¦ÌYšÖõ`MaîSóýÝ¢:ÃEÉ SeyÃÈÉž@›7?†žNžR[Ø‹‡jnΦlæ0¤Ýþ€¾1[ÌíòÄÄ 0L%Ö›w£(@ dš€®a*Ópbyžd‡)·5ˆ=ÕM(² 0žƒ3wªÐ4X¤ºnÏ a_Í-”æ #4aÆù® \í-»ç±¶”·aKyû=ajê„ùþn.›eN/vV¶¨•žà¸—z–árO¹:ýw7¿‡;üÞT‡Üœ0>·á}õwïµ/ÇT˜z·}9¶–·#ÎÁ‘æÕ8eŠbOUª= ×3êÄñ–U YU»UîAl_Ö §5¨Î§múýõwYslÎtVawe³ºïMkp{¨ëJ:±«ò¶:Oîw÷ÊÔ7PíTmí¨l?lÁ‘¦5 æªkäÚ»ß6Õ¡e¨@ýÑç7„%{BýçûW¦Š#êz ²Òæ…® Üè/Qç>¿éÚ½ŒM˜UÀ••Biwê9c™<'>†©ø¼x6(@ P€÷ 0LiœÉ SÎàÙ†óÈ6EÔ/í²ÊTãÀ/¯nÄ`Ð 5ž¼v«k‹ºTùÑÅmê—øXÓb”¤>ÎuU¢Ú=€µEÝxéú Ùb Sý%hö¨UYÕyùúz¬-îVaê¦:Ð$ vøÜê™%@}²áîøÜ*˜í®¼­V™~¿ô¾ IDATti+¢QöV7©`"åz_ FCVtޏTP‘•gSçHð¼;L=´ü&j zqs X­XIzýyøÍu-~;+ncE~?~}c&"Yêù$°Ê!A©Ä1¢BîÝaJúõ™ugT8zÿNµÚÖ¸2¿O=£D±“°(vã‘,_˜š*ˆ!÷ŸêÏhÈ¢VdÕ-žõÅ]*¾Y¯VßdeL§¬ÆkY¥Â”¬(ÊÉñüÆSj•ïÐÍzfjæ5¡õýA†©Ì›|" P€HžÃTòìÓúÎñ†©r[=êœá ßûÎÍbJ>µ2%ïë¬T¿œËÖ3Y¡ñŽåâ ›Nªÿ|èfƒZ™’­r÷‡©ÍåíØZÞ6ë;SóýÝ|ý•Õ°½#ï øx¥±EöQ|lí…ïLýøÒVµªvÿJÉUAªÔáS$++‚Ÿ\ÚŠMeئV¦Ö¡{Ä…B»l±ó¡y°P…®©0%ÛGïÚÞxwÿç SÓýù`¥lzejaJ¶\>²ò:ŽµÔ¢±¿ù6¿Ú¦)«x²ºÈ0ßOÃT|^<› (°” S:èq¯d¼aJ˜¥¢Ÿ‡„‹O®;‹,Dq¢m%Vå÷aeA^º¶Þ1› S²%N †‚vµŠ$Ç|7[ÿeL¶­IA…[E(°ûÕÖ©‚[{›G›WceA¿z_èJO9¤èÄÔ¶º»ßQ’÷ˆ$xIÁ ‰²zžÈV[÷¤ÀÃ/®nRÛúž«?¯VÛäý¢­È5‡ðãË[Õv¼¹Â”„³ÂÜQõ²ê$ïNÉ P&U¼bª?ò­ÞõÎTŸß¡¶Ê!T¦¨³ÐD¶ºNÞ§’ûKX”Õ+ JR˜b4lU®Ÿ^wþ°§:ªQWÔƒåžþéU3†©ø~*¦âóâÙ (@¥`˜ÒA׈ˆÉ S2dù¹~õþNáÕüÞk[®~ùW¡­¼ëK·ZjÕŠŽl¿ûÅ•MÓâ¤(ÂÁ7PáR×LCÿ<ßßÍ5]d+ÜÆÒ;pXÆÔ}eFV]äJRØÁ„(Þn[©ÞºÞWª¶ìI± ©Êw²c9¶/kÁHȦªùI¡©À'¡LJK’Ðònû‡û$l]Ö§eLmå“gúfÖ\aJÞ'ûü¦S3c"š…ïœÝ5¦NuÔ¨Õ5Y-;z{µzMY|xE£ ¨²'E#$8ÍVéOΗw¢äÝ(©æ'UeܤͳUjM†©øþb˜ŠÏ‹gS€ –RÀˆ9@øC¹¨ËwÞU5ù@Óð0`þ5úƒY(uô 7kö”<D-è C½ë1´øßF£ï¨Zñjp? —¹‘hÍ#·Ð8ò:†vXÍ!ô a70tÜ5ߘS…/ØŽ± +ÂfªJ½ zP_tcãV,÷´ªóyK@k1wN9¢ˆâ†ï$TÅz{!ÖSy(@ PÀ0FüDÔÓ;ÑaJrÐòØyæ"[WÁý8þõF3ܹ7pòN-*ÝWÑë/TÁ©Þ³«ò6 =ômDMwT`‘ëö¿€;˸¸„mŸA»ÿ.y_ &<\òïÔÊÖEïoPm߆bëJÜ9†Fß1lΞœe8?ô+زXï~ W¼‡Ñ¸ÓHÈ V œ‹‘}„&,hªÂ†Ò+x»m'ž¬}×ûWcKÙ8-#1µÉ“ÒW@ëûƒ Sé;öì9(@ ¤žÃTêIZô(Þ0Un«Gó ¼áÙ¿×ïC›M¬vL [ŒŒ÷ÍÙŒ‘›ƒ+žÈÁÀèFl/®E_è=äZÏÂeõÁcóN_»Ú¹µyû¦·ùÉ_HP2›¬Ê–½ (ù÷ðO â½þïO­æÑ÷pmø·(°Ô`WáóÓajKþ³(²®B£ï-ô5cd¼7ÞÇó|Ù^8ÉÆ­ðäzqµ· Å×0¶cSé%äYFu»J †©Ôö‚‹xá…ÉUÞø‡Xl¼ŽH!†)È{%ã SÂ,ýô:¬Y,ýÚts§~Œž±›÷4?tã½öí¨ö´ábwН#Š,쫈â¢OàìàÏѼ6£K³…)K–=E¾¥Y0«p5jÇ»ýßE¾¥ » ¿ ‚”*‡¹ÿÑt˜²gçpm…ì0UaêÌàÏ—¤¸…ZµòVªm€Mƒ5(ËëÅØ„ëK®òÝ+½&_’Û™ S;ÖíGCé>µú)« SÇÔüëÏåÿñÐê?;½ÍOV\÷½€c½ÿ€c}þrwÿŸOmó›ëÿhðÏ'G€t8}úôôÏãlóa*ÉÿˆòöÐY€aJP#"&;LÍ5l"dµæÍ–=øâ¦â•ÆÇð@ÕIäN_Rj[ƒ­ùŸš3LÕæ=ˆÕ·îY™Zã|«òöàäÀ¿¢¬”~ £ãƒ*L9ÍÅx°øËh}׆ß@¡¥;ïZ™’ËVÀœ¬\Hñ‹ îgp'x‡^ÖaöÍßÄ@Àƒ·ÛvaOÕI¼Öt;–A…³Sºà‘ž†©‡ÐPúÃÔ¶m*ÀÈ/° ý˰3ÿ/ùôIœOzþëÃ^S€³ 1¨ßmÿôOÿ4ª×”0"bª…))Ì`É áÛçžÇ§×ý|U¨a¶c¡0U™»<Ϩ•¦P«Ú>(áj…c— @Šj" â½þï!81‚¥ÿ@—½¯¢Ú¾Ew½3%E/ÂÑ }o"Ë”ƒ-žO¨w¯® Ök ÆÔÎÕ¾5ªhÅß¿ÿoñ¥­ßC8’ÃÕª˜äRë$nóK­ñ`o(@ PÀØFÜ¡Æ0¥ÃœO•05ÉB×h)Ž·îF}ñ Ô¸[UIñùŽ…Â”¼5ùžÓ µ¦ôNßwŠø±5ÿ“°› и€¡P‡*$Ñ8ËÞC(±­Æ:ד0™Lhyk]L¯ÈÖ@©î—g.F$:ŽþP3.y_…TLÆ1ô Ý[³]ñ©†aËSU y¤‡€ÅXX==Æš½¤(@ ¤ªW¦4ŽL¢ÃÔlå »G‹q±{z’½UïM³Iã£-êrÙÆgβ©€$ÕÒöýž Y­þ·,ªá%¼ÈÎŹ® joGÅ”:ô+Œ±„ÝfÓ:0Lé€È&(@ P€`˜Ò8øñ†©2[=Ö:ÀîZÔïßÚÔåLçF¸¬#¨-hŠûZ^> Sé3Vì)(@ P ¦4ŽJ2ÂTW·odz›ñc´Ço®ËåãÆ?»ú1<»öeõ1c™)À0•™ãʧ¢(@Ä q‡š(3LiœkÉSïÝÞŒÒB/Ö­¼­±÷¼|>^!Ú¼•ØZ~žP)(0[1–xº)[R£ˆN´7Ök§>Úëù< (`#~"‰aJ‡™è0%¿@ºy»«N£(X‡'˜½ [¶ Jþ‡»þÑ™ïc=\òU\ñFÏØÍ¸û°«ðóp˜ ñF÷_M_»ÑóQTänÀ«†("q·©¥?sÝÌtãµæýøT=ߊ{@p¿3•dÞ‚ (£ÃTŒP<í^xÃT¹­u΃ð†;Mùòõ'ðLÝ¡E_Ë…l$à̦r³Ýx¸äßáôÀ¦ ,Õ0›,÷\«%LiíÏ|ÿ×늺¢ØWýjYá/–©“°s¦FÍQ`IX€bIXÙ(’&À0¥½÷JƦ„Y*úi9ÞjÙƒg`3ÝŒ Yhp? wòAÞîàu\òþFm{’ë.w츧í3ƒ?Ewð¦>ô{÷_Þ=…«Ã¯©?Ú]øU½Ñ÷êÝÁš•§Ê¤w¯a¹c'ê]ªóÆ"£³®L]~ «óö!Ź¡_b8ÜmŸA¥ ¯uý¥ºö¡â?ÄDt'ú¾µ`\9eXçz®œR#>µšÖ;vKµ#!l½ûiä[*‰N +xW†©ÿ,Gp܆÷  wÇZ÷ 4¯õ…×Q[Ø„b{ÿ¢íy¡> Sú8² $K€a*Yò¼/–F€aJW#"&#LéÜߘû—_ô¨É7 ¤„ùµáß"Ë”5·Uxé \lñ«w=ù&Ö»ýßC$:ÿÄ Â‘ r²lª´{ó®¿ŽÁP› FÁ‰É-‡N*훎øÑæ?À„¡VŒŽ÷Ã’å@n¶ ëÝOÁšíœ5Lµ. o¬ ÝϨ õNÿwæ Sóõ'Û”ƒý%_UÁìÂÐ˪_•¹q¤ç¯ÕG…7ç? OÎ2œúlÙNÕ/ [‹êYŽÞÞ«ŠOl-¿ þ»¥øËwþû—Ÿ@cÿJ<½ú5T8¿Â¸èÁã…J€aŠ (:FÌ¢¯k #"&#Lµ UÃ?ž‹*W;<Ö0V;÷Oÿ$É÷«FÆûüÉ’ !ÿ#¡"×ìÁþâ¯àæÈ14úŽ©k%hIàšm›Ÿ¬fI™m›ßZ×A¬pìÆ ßQÜy{Ö~Ì÷ÎÔ=ÿc#Ø–ÿi”ØVãp×7Ô½æZ™’ÌÕŸk­ b—¼¯¨ïzådåâÑÒ?Áeï«hõŸÁ–ügQd]¥VÑúÆš12Þ;Ý_ N̓ˑ›˜Q½{´ÿrñSøêöÆ×Oü|qÓ`ÍC¹³{Awž ŸÃ”~–l‰ ( UÀˆ;Ô¦´ÎÉSÒíÓ›Ñ:T…ßY÷–~múIb}ɳ ëÝOÂa.‚ &µ:ukänøÞ\8Lå6`³ç³†)Y±Z™÷Ž÷ý|ីÃÔ«ÿMm5”U"Y“U$ vó†©9úS‘»=Ϩ•5iS Í£ïâÚð°gç«÷Âd›Ÿlu”0ufðçjí'W>Ž5…MØT:¹J5Û1tãð­ƒX‘/ÝxÿåÁÿŽK½k±ÕÿtøÉZ¸ UÍo°8€»iá f9ƒ¥ÑÅÆ‹(@ P€ø@€+S§B¢ÃÔýå Ýø8®9‡e4®'Ù]ø»È3á­Þ¿Sï8í+~A×0u¤ç›NÌþ}¦ùV¦ŽöüÚ¸5ÿSê}¨C]ŽÍž£Äº‡º¾®žñ‘Ò?QçÈ;Sr”Ϧ ­+°³às¸î;¢ÞÙš:Æ#cEüê¿J”«"ë lp?ƒ«ÞøÇKÃxlåd™b«*8ô ÓWŠëýµh®Àöeç0táÁêwá´ŒÄ5.<9± S‰õæÝ(@ P€™&À0¥qDã SòÒZçxÃ]‹ºóý[›ŽµìA]Q#úh(ºs›{‹~_•'?9ðµO¶ÊIa†‹Þ_«w£V;BmÞƒ¸ì=¤¶ ŽGƒê&9 -5ØYø<ÚüçÔûE²ªÕ?6ùÍ«©•©ûÔ„)!‡¬:Iñ‡S?T+FÃá.µB$¥½žàMõ߇Â8Ùÿ/˜Ú:(ïw™³lXáØÿøZýš¯?Y&3öÿ‘z)láÉ)G…}£Úö'ïzí-ú„£A4úÞD–)££ŸƒÃv?mÀ“Ûã9B‘´ Uâíö°çø‰d£ÂÕ‰åž,s.n¼ã¹?Ï_€a*~3^A½X€B/I¶C $S@×0eĽ’ñ†)©ä'Û×äžÅ³½'r©§Ý£ÅðØ¼¨ñ´¢(w`Á¦å}¢uî§m2ãšï ÈL+s7á‚÷et.«b›=ƒÇR©ÖonŸ~J‚Qƒû ÀÌYVôŽ5©-ó…))ñhéœÑ/©œ'+N²mPÞ‘’ÀTç: Â’Ä-wRc[þ§Tøk=‰K¥ªøVïß«öæë3§äƒj~eêý°ÿûhyW]—o©T• ‡‚å8ß“¦á!D²¡¾øÜ‚~ ‰fáÛgŸÇŽŠ3x³e/]ù&zýØQ~N½‡Å#5¦RcØ c 0LsÜùÔÈ4]ÃT¦áÄò<©¦¤ŸÑ¨ /7>¡ªËE¢&ÔÝ€Ã2¹•ÇìòQÞ¦¡jŒ[Ñç/Ä3kôÿvW×H)޶ìÅ®ŠÓxõæ#øƒ-ßÇϯ~¬xÅŽ… …pì–V€aji}Ù:(@ P Ó¦4Žpª„©©ÇŽ[Õ7‘ª9—®?…ý5'øKû}cÜ3Z¤V‹ž®}]mÉÛWý6læ13aþËÛ‡—¡Ã· £!;:|eØUy²Eó‹›þ‘H,æÐ’ÞŸÏ.À0Å™A P€ÐGÀˆ;ÔDŽaJãüIµ05õ8‘lœº³åÎ.ü¦ñ1|eû?£Ý[Jw‡Æ'NÏËÛ†+P鼃¿9õ%Ïê 9T9ø,Dqs`%¶/;‹«½uØYyZ* ˆétŒ„òÐ6¼ ï´íTÛ¯ö¯ÁŽò³øûÓÿ«{9Yã(Ë›,MÏcR€aŠ3é-À0•ÞãÇÞSà~†)æ„“¦¦Þ¹è,v Ç.‘ãÞ#–óã6øÃv\í] |¸3TŒ²ÕÖÀ,Óf?r¬8}êÏ s0v ÄÑ‹aŸ ÎèÆ#9°›G… fÓ8¬Ž(¤OrÈŸIåÁñ 3ÂÁ††ÈÉ c`¬öìîÊQäô¢¢T­( òUˆó޹=ÂDêüë|á<¬q߀Çé‡Ó5³€D,Ï{·P*œ?1ãzÿjÜXŽr[²ÆC°fñVç~|jÅOÑé/GCyã¢Ç7ÕžWK¦tøG›MP€ t0b:] P1™ajê—ÉûE&8Šg†)­ç#6øÆ]°å›arÚœ°!ÃT¼b<_O©þ76aÁ?žþ">Õð¢ TRYñF-Z†ªà²ùkbcé%=o›1m1LeÌPòA(@ P€I`˜ÒÈÎ0¥—ë"·¡y¨Gš÷á+;þÞ ÛÎvnTåèeë_}ÑuT»Ûu¹_¦4Â0•)#Éç (@d q‡š˜3Liœy Sy¹®²J%1>×µ»+O¡ÜÙ»ÙË=kQãiÃO¯|/?žv5ÖéƒÆX})TÙ&(@ UÀˆŸHb˜Òa¶3Lé€È&tð‡sñnûÈ÷ªªÝm¨-lF"hì_‹9„Wo>‚ßßò/êÈF=¦Œ:ò|n P€X †©¥P5@›ñ†©r[=êœá w@‡˜lðD^¼þ4vTœÁ_9¨<©º4ð ih9Ú‡—a}ñU¬ÈoA–)’ìî&ôþ S åæÍ(0C€(8)(Y S:Œ§÷JƦ„Y*úñ @"$<ºõ>Z÷ ®õ­Æ¶òóêöCA7ÞjÙ£¾_å´Œ ¶à²³Œª¦9y/ Ì`˜â¬ @f 0Lé0žFDd˜Òaâ°‰„ ´ W q`%œ–Qõ*)J!‡o,¯Ü|Õ¼­*î«~&S4aýJƦ’¡Î{R€ @¦ 1ÈXêZ€Âˆˆ S™úOBf?×éÎM°f‡Ð3ZŒmåçà¶ «–*€‡nÀsõ/ãxënU¬"S†©LY>(@ $CÀˆ;Ô¦t˜i S: ²‰¤ H`ÚSu/^{O®~]}“JÙþw¦k*wÐ=Z¬Vª2ñ`iôLU>(@ P q\™ÒhÍ0¥—']`<’w;¶£ÆÕŽ«}uxlÕ˜0¹Åïö`µúF•w̉Bû ¶”]HzõìÔžšl‹ (`<†)co˜*³Õc­ó¼á.wæåÐW@¶üµ /ƒ|8;k»+ÞŸ¾¼g%«VRn]¾_U麣ïÍ“ÔÃT’ày[ ` N P t SFÜ+o˜’J~Uö-hóŸÍ„ùÃgÈ@ù•|ü·k¤uE¨ruL?å•Þ:vä» IDATT¹;ÔÇŸY}ÅŽ¾´`˜JëácçÓ\€a*Íݧ”€®aʈ¦ SFuc<óûw¶ ¡ø:^½yO¬:‡etúÁ›—«íw|¥ª`aî`Z¢0L¥å°±Ó (@”`˜Ò8 SyyÊ ¼Ù²« náRO=[utú}*éx‹· g;7¡ÆÓŠÚüf8­¾”ž»;È0•VÃÅÎR€ @ q‡W¦t˜ S: ²‰”èä£Õ[…¡  .Ë(¶-»w›j$jÂÿzÿp`ù1T»;gIùgbiô”"v ÒHÀˆŸHb˜Òa‚2Lé€È&ÒFàz­ú>•¼;%%Õ=6ïtßGByäãçמÁ—¶|W}8•†©Tö ÒM€a*ÝF,Eúo˜*·Õ£ÎyÞpgŠ<»AøÞiÛ‰u%Wq¼m7_ùÌYÓ 9q£¿«ðĪ×Q;ÿ pÃTy Ì#ðÑ~åååxùå—qçNfTå€SÀÈ S:Œ¾÷JƦ„Y*úñ @º øÃvHÉtßXÌYãØ]ùa)uy6)µ~¶kì9UÈ¢0w ¥™a*¥†ƒ1 Ã”œÑ S: ¯µ†)³É‚ÕÎýÓúR2}d<½ËMë0•ØD ÜX©J©ø PåiÃrwÛ=½Mäà{>‹íËΡÚÝŽ|[j¬T1L¥Ñ$cW)@ P 匘dPt­ægDD­aÊšåÀÁÒ¯Mÿ€œø1zÆn¦ü ;Hû޵>€ %Wpºs3®x랪ã3Ú‡—áWן—·}G}8ÙÃT²G€÷§(@L0â5†)f°Ö0¥CØRF`lÜŠÃMT˜’ÿn.»xOß|¡<\ï«E»ovWœFY^wRûÎÒèIåçÍ)@ P€i/À•)C˜ì0µ­à3p™Kq¤ç›3žd¾¿[™÷VåíÁ{ýßÇp8¹¿Ðj^ž‚·VâÖàr,sv¢ÂÕ9ck_×H Þj݃Uù·QWؘ´Ê S)8yØ% P€ @ 0Li¬xÃT™­kà wi¼óäå» ?Ù®t¸ë3Ú›ïïV;÷¡6oÞîû6+ ê2ld6÷ÀcF‘£+=·gœÒ5RŠï_ø4~oË’R ‚aŠó–É`ŠäÙóΠ€~º†)#7LI%¿*ûH¡ 0‚€7è¯nP‹Ïoøñ¬òAà¡ ¾1'¬xKW'†)]9Ù(@ \€aÊà`±o˜*·Õ£Îyô Îë2N Å[…s]ëQêèÃîÊS3ž¯×_ˆžÑtúJPWtU®] ¦tad#X´ P,šŽR %¦t#7L ³TôãA |(0ȇ9k¿mÞƒËßR[üî?NvlÃÖòó8zûA<ºò¨f>†)Í„l€š¦4ññb ¤œÃ”CbDD†)&› ÀRíoCÉœëÚ€‡jÞžá"[þÎw¯G‰£¹ÙA,Ï_| †)N; P€ €~FÌ¢§k #"2Lé÷CÈ–( #¥¸5°.ë°ú&UAîà ˜S[=ǵE‹‚c˜Z/¢(@ Ì*`Äj S:ü00Lé€È&(0‹€lù+Ì@AîªÝm3΄sñókÏàÀòcˆD³Q¹ˆw©XS (@-\™Ò¢€aJ# /§À<}þüâÚ3ø7ë‡etÖ3›—㵦øÃmߎےa*n2^@ P€ À] S§C¼aªÌVµÎð†»}ç°?ŠÐ,¿WZ@ŽÝ4£]ž?IBŸI‡t›‘hÎvmBçH öV½‹|›wÆ—ýž¾³Q˜°·ê=XÍc1ý|1LÅÄÄ“(°$,@±$¬l”H°€®aʈ{%ã SRɯʾmþ³‹ê¾ÆCQ˜L> OŽ"Å3ÃÔho£}Ñ÷ãù“$ô™tHõù0ØmÁš>‹ýeo¢~Åì…'‚ã6üäÊÇñèŠ7Qî\øÿaÁ0µè†x!4 0Li&d @ è¦RàyÞ…d„©¡ÖFº¢È-0Áæþ0 ªüùByêûUw,žÒÃÍÎQ€ @š ñI S:LÒd„)o{c¾(Ü•&X\™ÒaÙDÈj¬¬ÊÊj¬¬ÊÊ!…'~|ùødýKÈÏšõ)ù8të >¶æÕ{*2L¥Á ³‹ (6 Si3T©ÕÑxÃT¹­u΃ð†;ý òΔTóóT™`Éc˜Z4$/L+àPÃQäzLp–ß;ïÏum@óP _ù†Z­ºÿ˜ˆfã·MÁjaû²³päøÁ0•VÃÏÎf  Pdà ò‘ -À0¥Ãðq¯d¼aJ˜¥¢Ÿ–CÞ‰Fæ.õ­¥m^KT­­!¨*–ö¢™ÿOï˜ ¿i|û«O`™köÿgEh‚ïžÿ|dÍ!¬ÍÏBQÜð¼;ëQtì…XOåy À< SœÈ,†)ÆÓˆˆÉS: › @F \í­C±£WzëñP͉YŸ±y¨Ù¦:¼›ñĪ÷¦2r&ð¡(@ P ÑFÌb¬k #"2L%úG•÷£Àü}þB\﯅Ó2‚¥—g=¹ß_€–¡°çáqþW¦8©(@ P€Œ¸CaJ㤑˦Ü9e³ÞÝžýC£<’‹>“œ χ^ÞíËQ”; mdÖùó½K;‘ïü% ì·›ÓÓ¿ÜæO¢(@ B€+S‡y1aªL¡80ë¯ûŽÌúç<’…>“œ±Í‡K=Ëq¢½¿·é5X²Ã³ÎŸ³=\îüö­úa5{üajA"ž@ P€0ŒÃ”Æ¡^L˜’[JU¿Ù޹^„çù“Zô™tà|ˆ}>ôŽVáÌ'Pã¹ ·óŸgý¹ô¯ÆµîO¢Ìu+ Ïû¯ÔÆ4y9>` N P t SFÜ+¹Ø0• “‡Ï@thÚ‹RçY4÷?5%¿˜µÛ½#ëP`¿‰Ë]Ïcã²ÙC—\È0•.£Î~¦ºÃTªûG Ä" k˜Šå†™vÃT¦(Ÿ'Sýkp£çãØTñO°å Îú˜P!šž€ÛÖŒ Ï;³žÃ0•©3„ÏE P€ˆ_€a*~³{®`˜ÒÈË)PÞ½ýªUªù¶óhúP⼈ڢ—a2MÜÓC†©„oF P€i"`Äj24 S'(ÔF@^N$ úkq¥ësØ»òÿ›óî-ÕJÖþÕÿ–ìÉj€r0L%aÀxK P€Hy#~"‰aJ‡iÉ0¥"› @n<Šñ –þæ¬À¬=èð> ^îw‘ood˜JÂ8ñ– ( Sé1N)×K†©”vˆ1 œiû*ÊݧP`o„Õ<4ëuW»?‹"Çõ÷.[W¦bÖ剘_€(8C(Y S:Œ§÷J2Lé0qØ’(pÇ»MýO`÷ò?Ÿs…ªo´çÚ_À¾UŠŠw>“ÄÞòÖȆ©ÌK> D€aJ‡y`DD†)&› @’ÆÆÝ8Ûþ‡¨/ûܶ–Y{32VŽs_Ɔ;V¡)É=æí)@ P€©%`Ä # k #"2L¥Ö2{CÅ Üèy«‹‰á±ª9Uëà~¬»´í¨Ä*ÜZì­x(@ P ㌸CaJ‡iÌ0¥"› @Š\éúøC¥Ø°ì;s¾Cå;ö_ÑŠ¬Ç%¢?EzÎnP€ ( ®LiTg˜ÒÈË)bþP N¶þ ¨ù:¬93‹RHiôAäã<…'pˆ*ÅÆÝ¡(@ $R€a*‘Ú¼(­¨FÂpaŒÎÚg T-¨>nùK‹Qe'SM€(RmDØ P`1º†)£î•\ <¯¡R[à]ì†c؈ ÈÆÄ¬mÄjuŽ„.f/­žÚOÉÞQ y Sɳç)@ýt Súu‹-Q€H¾@Vâ*Öâ#øÍœéA ÞÄ~<‰WÕ* P€ Œ#À0eœ±æ“R€‹è@†áD=®Íyµlù»‚¬ÅUb`wá% (@ô0ê5†©ôž·ì=(£x;qvøç¼ÛlE® ‚¬yÏK@wy P€ @ÂŒø‰$Af˜JøTã )@tˆÂ TR ]Þ¡šë@@.öâDº="ûK P€Ð$À0¥‰S€Èla¸`A7Q«¾15×!çÁ<Œ73„OG,@¡—S Ŧt£î•ÔŽMP€i ïO]‹Öa¯émØœ³Ç±^­b-Cg<»Hä0L%Çw¥ÀR 0Lé kTDèØ(&R½ïmìÁã8<ç»Qã0ãE| {ðʨÒddÙM P€Ð"`Ô ë;SFEÔ2ñx-(~·QƒlDP…¶9;?‚<\FJуå¸~ÉS€ â0ê5†©8& O¥(0%pa%šP‹[s¢\C<ð"ƒêã¾<(@ P€È,†©ÌO> ( ).ÕûrÀ:\žó®7°·° Oá•õŒ·¡(@ P Q S‰’æ}(@Œ¸ƒe°"ÆàÀèœÏFš°u¸žq| ,V€(+Çë(@TÐ5Lu¯d* (ûB $Và6ažyK¡Á‚xP}ŠÛý;>¼[ê 0L¥îذg @캆©ØoË3)@ dŽÀ òÕV¾íx·’Àuüƒ@%ïPñ (@ P ý¦Ò ù @’ü°ã,¶`Þƒãsö¦Õj; |ƒŠ(@ P “ŒºCa*“f1Ÿ…Hš@Šñ6öâcø²™³¿ÁSX˨FkÒúÊS€ ô0ê'’¦ôžIl0¬ÀuÔ!#¨@ÇœR®â êQ†.,ã} ;Wøà 2M€a*ÓF”ÏC P Á!Xð3<‡§ð*<šóî±^mõc˜Jðñv)%À)5ì 4 0Li&ŒºWR:6A dˆÀ0\¸‰UØŠ³ó>Ñ{Ø…(LØw3äÉùˆO€a*>/žMT`˜Òa„ŒŠ¨› 2Hà-<„5¸¡¶òÍuŒ Om œúßôø| P€0 €Qs€®ïLÑ€?/|d P`Q8ðöá!›÷c¾§± ²5ð¼CO P€ @Z u‡ÃTZO[vžHU&¬D1zá„oÞ.v¢(À:\NÕGa¿(@ P€˜C€aŠSƒ ÀŒÃŒâ³x¿AÁ<émA5$PíÂI˜]‚ž°I P€ –J€aj©dÙ.(`x>aÔâæ¼RR}ùx€Å( ?gŒÀFm>+2W@×0eÔ½’™;=ød €VŸãY<‚ßÂá9›ò ?ìÈÇ lj½%¯§@Z0L¥Å0±“ Àº†)jS€ À½aäàÖ,øNÔûØœ8€£$¤(@ P M¦Òd ØM P }ÞÀAìÀ©y‹QL AØTu?Y¡âA P€H'£îPc˜J§YʾR€i)Њjt bÁè§°VŒa#.¦ås²Ó (`\£~"‰aʸsžON $H@Vœ®a-6à"²11ç]£0AŠQÈÊT)ºÔ;Þ† ( ]€aJ»![ (@9.a½*2±'ç5:‰pakq–Èh ÈèáåÃP€aJ‡A7ê^IèØ(áÃp©'” 4ß!ïNÃ؄ |w*Ãç„ÑaÊè3€ÏŸi S:Œ¨Qu c €^Â3hÀU¬Â­yŸö êQ‚^¡Ï*|D P€È£æ]ß™2*b&üð(@¥"nx‘‡‘yo@.^Ç£ø~,D–¾c¼(@ P@£€Qw¨1Liœ8¼œ @¬£°ãgø$žÇæ-D!í]E=V ™ñ—çQ€ ’ À0•tÞ’0®À8Ì@¾ÚÆ7ßqËq›ð ¼h\,>9(@ P ŦR|€Ø= P ³Îc“ SptÁ“í~¾œð-x.O @º °EºûK Ì& k˜2ê^IN- P€± È7§¼p¡= ^ò.vafìʼnÏå H7†©t1ö—Xò0Eb P€XXàE| »peèš÷dù.ÕòPCðZø®<ƒ (@½t]™Ò»sl @&  £p  m >Þ/ñq¼Êѹà¹< (,£îPc˜JÖŒã})@à 4b5úQ€ÝxoAƒ1XÑ‚¬ÁÏå  (@d õI SÉšq¼/(`X H7Q‹u¸¼ A? qÛð8/x.O (@ $K€a*Yò¼/(@ ÂØ7cúŽTVƒ!`À€R|äL`ŠLY>—Q¦ty£î•ÔŽMP€•) HEè[ðÉãAõ~U Z<—'P ]Œú‹WºŒûIxŒú3­ë6?£"Æ;Ùx>(@w°ÅèC-n.ˆ!+ZQ…Í8¿à¹< ( £æ†©dÌ6Þ“0¼@'Ê1 êp}A ùpïQìÇAA" žÏ(@ P€‰0ê5†©DÏ4Þ €ÛXŽn”bW ýì,6«w¦jÐJ? P€ RD€a*E‚Ý Œ% 但:lÅÙ˜ü"ÖÃaT3LÅäÅ“(@ P€‰`˜J„2ïA Pà> l8޽x¿É¦%hC¶átLçó$ ¤º€Q߯Hõqaÿ(@øt SFÝ+9Ϧ(0)p[ÕÊ” ÑI‘ëXÓ‡~lŒ'P ¦R`Ø P@³€®aJsoØ(@ ¼ŽGð NÄô­)a‘";q vø ¤ÄG¥(@ ¤®ÃTêŽ {F d¸€¬LmÀ%XŠéIÏ` V¡ nxc:Ÿ'Q€ %`Ôj S‰ša¼(@ûŽàalÇi8á‹Éæ Ô–Àz\é|žD P€H”€Q·î2L%j†ñ> î¸„uXƒÆ˜W¦ZPƒ da%šiI P€H)†©”v† @æ ÃØ÷c~gê–¡ØS™Ã'Ìx£þâ•ñË4¬€Q¦u]™2ê^IÃþÔðÁ)@M§± [pYˆÄÔÎ<Õ©M8Óù<‰©,`Ô_¼RyLØ7 h0êÏ´®aʨˆZ&¯¥Œ)03ä©ÇðzÌ£pà6c/NÄ| O¤(@ $BÀ¨9€aJ‡Ù坿G4u`dH {ë6]ú)í½‚zõ©X,¸ŠµØ„ ±^Âó(@ P€ 0ê5†)¦Wß¾С6A ¤ƒ@ѱté¦|„÷2Ôw¦â9á <†ÃÈŠáC¿ñ´Ës)@ P€ˆ_€a*~³W0Lé€È&(&z…©.”ahÀ•¸ž\¶ù­Ç%˜1×u<™ ÀÿÏÞ{€Çy\÷Þÿí}½½{ï¤dªÐê’›\bÇIÜã$¾q½¶oœÄ÷ÆŽïÚ_;qŠã.Ç–mÙj”DÉêbï Iô^ÛË}Î@ ¢ãÝݶyž}@`gÎÌüg|8gΰ¬+ _†) š2LI‘M°)¢€,˜º†r # k£ Ùû=nà ÎQŒ‡É Ì®@¦ž¯àýÀ °饀T˜ÊÔXI†©ôúPðlXùSç± ¹èGº¢üÖ¡—§SÊ8Wf–P†©%›»bXES@*L-Ú(“Ü0ÃT’/¨€,˜:†Í(E[Ô0E)E$ΊM±¬+À °¬@, 0LÅ¢Ú´6 SDd¬@Š( ¦(-úëØ‰[ð*TQ&’8u¨Ã˜àNÅx˜¬+À °™ @¦F¨1LIØÝ SDd¬@Š( ¦èòÝ«¨Åf‹zÖ/b¯¸è7 CQ·å¬+À °¬Àb)©¡» SvÔÙ+" È€)ò.YáD š¢ž5µ]‹ÐÃu[nÀ °¬+À ,– S‹¥lØe˜Ê€Eæ)²o* ¦(‰D6†PkQëzw`^K™·ÜÒˆ½{/á»ßÝ‹¾>kÔó}ðÁSp»õxQ·«ÝîÆ_þåóøú×ï†Ï§•f— E§@¦>xE§×fRGLýLKõLej¬$ÃTê|Ðy¤¬@¼ Ä St^êeÜ‚½x j„¢ÎIla~©Râ…©O}ê\¼X,¦Ö­»‡:Å0•àM”©^ –»gMLýLK…©L‘ajÑ>—l˜H:â…)º¨·EXåe½$„FÄvb²K^žŸüä‹xýõZ”–¢°p'N”ãÀqÍæy‰ÊÊàõêðê«ËqôhåÄ0vハM›®Ádò¡¹9O<±Vx”&Ô˥ÇÇ>ö2††ÌøÑv RcÍšvÜzë8.tvfá·¿] ŒF?¾ð…g¦L³»ÛŽï}ïÖ§®Ñ„pÏ=gÑÐЭ6ˆ¶¶<þø: ›p×]ç±m[ó¿øÅ\ºTj÷¥/=-æMsܲ¥z}ÿðo½¸xXØ-*Æè¨ û÷¯FccÁ¼úŸÿü³8~¼kÖ´áùçWbçÎ&¸Ý:üçîA(¤Zp>\`XTP S9€aJÂîd˜’ "›`RDxaêìA ÚQƒ©ôJ¦O0u ›°¯+©U¬,È äñèxä¬XÑ) §µ5ï|çq'<²U@F}}7¾ýí;0:jĺumxè¡“ÄÚÛ³ðö·ŸÀåËEøÕ¯6MÀÔ¿üË[p÷Ýç›;†ÿ÷=3`Ù²!|øÃ¯áܹe¢í½÷ž…JÆ÷¿¿[|­ªêÃ>pgΔâðá*øýôöÚœ×æÍ­ÂÖ/¹Y@ЃžFssž|r-(Äï­o½€•+;ðƒìB  ðFó¦òçþ{rÁ o¼Q#`‡àJ¥‚ЇÆMÀ·aÃu¬_ßþöŒæÒ‡ÆLPH¶XËË„.ïÿ!üÛ¿Ý‚®.Ç‚óá ¬+À ¤‚™¡Æ0%aw2LI‘M°)¢@¼0ueÈÂ0ì‰zÆNXq«°‡£n»PƒL¸<öØá}ùØÇ^óüó+`P!èØ¸ñ:î¿ÿ4~ô£hmÍ`@ð÷—ð6‘÷J§ UÄ3EpU_ß…ÿø=èèȶöí»€;šðïìE¿UÀÛÛ8_e±xñÙÏ>‡ƒk¢ ó#Ø#ÒÁƒÕ"DÆ)Z\³™úÈG^÷_ÿµ 7näL´©«ëÆ{ß{Dy™L&?>ÿùgðÔSkqìXÅœútuÙLØUVö ¯)ÍëÇ?Þ––¼…–†ßgXV€Hb¦$,ÔÙ+" ÄS.˜ñnÃýx2¦Ùö#—P]x#¦öó5ŠÀ…ïýþ÷ °Z=øÌgàäÉrá©"/ …ãQ¸yÔê0~ò“í˜>ñ‰—\|ë[wÎè"úäµ IDATSäé¡0: ÿ;q¢BÔ£sKt~ÉçÓˆïÉûCöÈ#ÛDø\¬0E6î»ï V­ê}’7é©§Ö°¢rï½g°yóµYaŠ1ÆÉ¥ººW„’—.eô>yêçÒ‡ajî­š©ç+¤xÙ +À $T©0•©±’ S ÝÃÜ9+°¤ ÄS¯c ðÆtY/M²Õ"yÅbz¦È{´zu‡»#`joÏÆ¾°_„ç=óÌjžGðD`qèPµð.ÝÿŽGÀEç§èœy`&'  Hùã?~]$¯ ïWAÁ>þñWpþü2‘Ì‚¼;ô³Ÿþt»€ ‚:WD©Ñ)™y¬&‡ìͶø”d‚ÎDz½Z1^ƒÁý×·ˆêoyËeáe{úé5â –Ç£8»Dž©Ù`J« ‰óTt>Š4 ›zâ‰u ÄséCpJ!}왚¹R SKú«‹;cXER@*L-Ò“Þ,ÃTÒ/¦@<05 ¼0 1§…†u¸SûùEtöêã™aJúŽeƒ¬+À $‡ SÖaJ‚ˆl‚Hâ©_àa<€'`‚;¦ÙžÇJ # ;ñÌÔ+¯,Ç‹/6Ä4>nÄ Ì¥E®X­V\¹²ðêêê„%uYqV€H25BaJÂd˜’ "›`RDXaŠýDëL•d˜’°yØ+" Ä SûqªÐ‚\Žy¦'±AhcÎsÇܤÀdïÔl&Ù+%Ih6à $@†) ¢gªˆ S6›`RDXa* <0‚±˜gz ã—ÝVàZÌ6¸!+HæóN±W*‘+Ã}³ñ+© õÌT¦ŠÈ0ÿ-°©¢@¬0õS¼ïÁC‹@ÌS=‹5X»—öÆ<(nÈ D©À\Þ)öJE)$Wg’LLPc˜’°¦$ˆÈ&XQ ˜òAòLÅš=" y¦T£×SD-&+0SÙ¼Sì•â °©ªÃ”„•c˜’ "›`RDX`êÊA™øÄãqÍò ê BËq5.;ܘH´Ó½Sì•JôŠpÿ¬+« S±*7©ÔÙ+" ÄS4µØaÇH\³lF•hÏÙüâ’‘'“½Sì•J‚á!°¬@Ì H…©L•d˜ŠyÿqCV 刦c«óÛ‰ƒqÍ÷:ÊE{ó‹KFnœ$ dê9ë$‘Ÿ‡Á °’ S’Æ”rf¦’sÉþt}Vä&÷µÃ½è»yø¿Ò¡Ãg6åM¼ª×ƒïŸLød>³9•v¾z°½î›ã]ž­Ç_lÈE²Œ3áB%h±ÀTZŒÂ†lÄ·¿(Ìî™Z… š=wË ÈS€¼Sï|ç;ñ«_ý äâ °¬@**À0%aÕ¦$ˆ¸&¤²Ü^nAY‹é0eÕ©±6ß(Þ£:É)sÁT®IƒÅf„ǻ݋ ›T¢@,0õ,ö‰Ð¼åhTÒÅœuZQ)`*Ö3Syy7ÿx×@¸1+ I³Ù —Ë%É›a¢W ¯/ö‹Ô£ï-½[dj„Ô„}Í0%AÄE4ñ©¹¨ÍÒÏ€©H—Éæñ™ ¦Q"6…±À…øya€ñ=4R˜ÝUU‡+QŒøfU‚©üüü˜Úr#V€`ÒMÞÞ^0LÉ[ÕL Ýe˜’°‡¦$ˆ8Í„V­Â56l*4Á¨Q¡ÍéÇo¯Ž¢eøf(Ⱥ|#!߬Á¨/„—nŒáÅ3/D],˜¢¾÷”šq¤ÓÝ%füæêˆ+¬Ï1àÑËÃ8Ò5î=ªÏ6àÞj+Jm:xƒaQÿwM#Ñ…A6™ðP ZŒEŽ•ýD˜Ÿ’pD¥ZÈ_©Ì³ Lý ïÀ^¼„\ôÇ%X3ªá‚ «q>&; S1ÉÆXV M`˜’»° SrõÌ(k Sò—ûíËíØ[fÁ…~/®ùpG¹jµJx—=Aš÷åmùòñdó(n+³XùÇý¢þä²X0õÖJ«€¹ç¯9Ñk@±E‹Ç›Fñ–R F|A|ëx?J¬:|nKúÜìoq¢È¢Å]•V<ÓêÄSÍ£°ëÕøê®B1ÜçZ¨°ëP“¥‡A£š€) G\•g@¡Y‹;+¬3£ÑBþJežÅX`Šî™¢û¡tðÇ%X'Š1ˆ,¬ÄŘì0LÅ$7bX4U€aJîÂ2LIÐ3Sc%¦$lžI&ô¾±§0ð¥W»á…±¹Ð„U¹êrãò€ù&-ª³tèq…·êÖR ÞYg0sàšsÉ`ê¾jþîp¯¿ËÌøÜË]øàª,[tø›ƒ=xoƒCüüçq¶Ï+ÆõÉõ9(±éð…Wº„Gë]uît㧇 #`ÜS(¼qJPD£…Ü•ÊLk±ÀÔOñx~-n&‰E½K¨Ç0؆#±4ÃTL²q#V€HS¦ä.,Ô=3UD†) ›g’‰eV-¾¸57FýøæÑÙ†’çæmËí"¬Î¢SC£(4ðÙV§ðTM.‹é™"˜úÒkݸ«Ò†=%füÅ‹øÐšl‘ï¯^ïÁ§7å¢Ê¡ŸU ¿~£·”ZDò‹ß^Á ×ÇC?»9Ox¨”ÂT4ZÈ]©Ì´-L…¡祌ðÄ-Ør@Þ©Uæ·–l€`X†)¹{ S9@ꙩL‘aJԪöæ¡mÔoÌSÖØpG…UxtÈEg«î®²&¦¾øj7 /Ó§¦ÁÔŸoÈE]¶¿¸<,Î}M.΀Œ¦¢ÑBîJe¦µhaŠFüoÃûðó¸kC)šPƒ[ñrL¶Ø3“l܈`ÒT†)¹ ›©j SöÔ'™ ·oÜR$ÂûTè+ÁÒ-¥f¼Ñá”ïœa×;„gˆÎ=1Í3Eau 9üý‘>´Oê–ž5+À HU€aJªœkŒaJÂÒ3LIqš‰w×;„§‡P\ôâör+ŒZ¾~¸O\dû¾qçAy°¶›D²:?õß—‡A^ŸHy[­·•[ÄÝL¼ç¬"ï›uj0î@H$‰ðC8Ñí7_QStžéKÛòÄù/ A¤dt¾ªqÐ Áé (Êí:T9t0kÕøê¡^ôº⼘F‰a¯´‡Ò8ßUoW¬…ü•Ê<‹ÑÂqzwáÝøEÜbÑÅ¿±ûp &[Ñx¦*+Ïcùòã8pàcê+ÖF?üMܸрƒPdbåʃX½úU<ó̇12’£¨M4•*++QZZŠãÇÃíb­V‹ÚÚZäää  ¡³³×®]›0KmŠŠŠ V«Ñßß«W¯" FÓ­Ôºô×âššœ>}###Rm³1V •`˜JåÕKž±3LIX †) "N3A‰èLÔ†ãxjôQ?~Û4Ц73õå5"ÑC™M'ÎVýèüÀ(¤î©§È°)0X™…¹¨¼ÞîÀ5¹l-2‰þ¨.•/¿Ö_hÞ‰))2@^±ûklXfÑ Øï®ŽÀ‡µ-Ôw­]œùzáºSdó£³`‘K†¿yKLZùÌBã¤vJµ¿R™g1Z˜rÃ$2ùÉ83‚±bIÎLmݺGï’ÃTiée¸Ývô÷+Ú\‹ S:[·nEOOo^¸¼bÅ ‘̃~N`EPuéÒ%ЃYII ª««144ŸÏ‡‚‚twwãÊ•ØîS$•T*¶lÙǃ3gÎÈ0É6X´P€a*-–1á“ S™+É0•ð}Ì`–Lhaª¹x·áa<*eŒp'öàÕ˜àl²gjïÞG`0¸qþü.lØðŒÆ1¼ñƃhk«Ç¾}?DVVÏ”ñ>öاà÷°cÇãX¶ì*Nœ¸ëÖ½·ÛŠƒÄÈHî‚ó#OW}ýQ .ŒŽfãôéÛÐÝ]!ÚíÚõJJÆeºgꡇþ ]]ÕðùŒ¨¬<‹ÑѼþúÛàrÙ1¦¼^#öíûœN^~ù=ÂØ¸ñ€°«ÑÐß_‚£Gïí”” ¼vm::j°uëÓ(Æ‹/¾wÞñÍ»îú>.\ØŽŽZ¬Zõ:ÌæQ<÷Ü »Vëôzî¸ãÇ3`ê¾ ­Ö/ÚzHW®lÁ©S{'`êÙgÿD@¡Õ:€>¯×Œšš“Ø´éÞxã!x½&lÙ²ÝÝ•8~|Ÿ"íV¯^-@†@(R†Ö­[‡¶¶6ÚGpE%#`×®] E?'Ð"(# #˜™ ¦l6›/òv‘m‚#ò(:ujA˜Zµj.^¼½^ºº:œ;wNÀÝôqSÈ!…%raXor_ßìYƒYV@© SJ•š§ÔÙ+" D S”ÎüîÀ»ñK)3<‚­¨Çe805TU‰ñÉ0µnÝK¨¯?‚³goÁÅ‹Ûg4'ð u3Âüž*+Ïá©§>ᱬ Ò¯ýiƒã`1[‰ÀTgg ššÊM/³™"˜"¯ØþýÕßñŽo Ök¯½}¦ÚÛ— ÔóÏÿ!ŠD½ÚÚ“àÕÖV' /åUR(ÄôÐ? `zå•wMÀyÑÔê Ž{+š›×‰zäÍÚ´é9”•]ï‘·Š¼RVJ ÁywÈã)f³t …Ò‘‰Bø(áy¨„vïÞ-Úgˆ ½WVV&'òšèM†,%:pV ]`ϔܕÍÔ+’¦$ì#†) "² V Eˆ¦F`Ç“¸WÊ=S$Q *¡‡%hZ±Ù`ê‰'>·{&-SO>ùq¸{÷oĪ…<‘ðõ×_×+ÎLE ‹Îa…Çÿ¤8›e³Ÿï¡3S]]•8wîø|”ˆ!æ·gŠR£ëõ.ÜvÛ#¸xq‡ðxÑ*ê÷èÑ{à÷ëE Π:_¥¤ÌæGí"!yZ~¿_$Ž Áu*..É"¸(T¾0ôPØ…ýQx ½G.&z¸ëèè^*úYÄÃEàE¡{Ô–ìÐ{‘Ô%Ÿ „ä¡"0ëêêÞ³Há0?%+Îu2M†)¹+Î0%AÏL•d˜’°yØ+" D Stiï/ð0>€ŸJ™!T;J°SC¸”¦rs;±yó~Øí z‘鯧§b¦NŸ~ V­zccv:t?†‡óç‚JE™í^!wæçtfáÂ…¸~}…ðPQ6¿é¥««J„ò)…)ºgjÏž_£ àöïÿˆ8µyó3ÈÏoƒZÐwòäíâ«’2[ jGÞ)º·‰²ê¼Pè\kk«ð(Qf=J$AÞ$*ä!" YúÈSE^,JA #(< ­%© ¶`d“€ A… ’·‰`kùòå騩O:PO07ùn«Hâ N@¡då¹N¦(À0%w¥¦$虩"2LIØ-îÀâ °ã 0LñN¡Ã”¦$ˆÈ&XQ ˜ú ÞŽ=xùè•2Ë#Ø‚*´FmOLI™aXV `˜J‚EHƒ!0LIXD†) "² V Eˆ¦‚ÐÀ3l•2ËfT! 5jЕ=†©¨äâʬ+æ 0L¥ù/Ñô¤ÂT¦ÆJ2L-ÑnånX$P ˜zûP‰Ô¡QÊ .¡h«p>*{ SQÉÅ•YV Í`˜Jó^¢éI…©%sÒuÃ0•tKÂbMX`вù9aA.ÆÓ\Ç[Ü0‰Œ~Ûq(*S SQÉÅ•YV Í`˜Jó^¢é1LIšaJ‚ˆl‚Hb)JAayÑÂÏ|’¼ØŒãQ%µ`˜J‘MÆÃdX%Q€aJ®Ì™¡Æ0%a1LI‘M°)¢@,0声G0b>IÎ`-Ìp¡W+Ç0¥X*®È ° Ã”ÜEÎÔ+’¦$ì#†) "² V Eˆ¦šQ˨ÇÝØ/m–7P†0T(ÇuÅ6¦KÅYV `˜’»È SrõÌ(k SµÜ<Ù W ˜¢{¦†áê™êAŽaî‰Ð¦2|óòôYV`Š Sr7Ô=35V’aJÂæa¬@Š(+L=ŽûñNüZê,{‘†Ÿ›b˜’*?cXW€aJî2LIÐ3SEd˜’°yØ+" ÄS4µ~äÀ§bðQ"Çó¸…èÁœUR‰‚)½^zM/>Ÿôš^¸þ¸"¬Ï¸™¶}˜¹’¦¤È8a$S9@ꙩL‘aJ­±ɬ@¬0õ;<ˆÍ8†´K›^;JPˆnhPd3Q0UPP³ÙN¥õW¯þTª þŒ°¿oß× Õz„¹sçîG_ß­Qéïx"óP:~®?uåC§Ó©è3Ì•ä*À0%WÏLPc˜’°¦$ˆÈ&XQ V˜… c° ]Òfê‚Oâ^<ŒGÙLLeggÃn·Ïc0D 0srZ¡Óù14´zJ›¹êWV¾€òò§L¹Ý…m檯Õj¡Ñh`2uOÀT{û]X¨þô (­¿fÍ×L<ùE1_›íl¶ë¨­ý5߉ÞÞ[Äxb³ M•Ž'Ò×W"²bÓÿf«Xõ$b˜Rô+Lz%†)é’f¤A†) ËÎ0%AD6Á ¤ˆ±ÂÔ!lGjìÄRgJYýrÑ/Ò¤/TSV«ô¢’}ÕÕÃdêßoE[Û[ÐÞ~‹x¯¤äÔÔüVüÛç³áС¿˜ÒÊ•?ÒÚzª«Ÿ@8¬ÆåËïÅà`=ÊË ²r?ŽûŸðûÍØ¸ñ[ðxrpæÌ'Ï„”ˆQ³¹›7ÿ=®_¿Vk;²²š00P‹?(ì è«ûoØí-¢^GÇnÑ|¾ñètchhø ìöVôön„ÕzjuÇŽ}~b>YYW±ví¿˜êìÜ9ñs«µ µµ¿}õz³ÐÔô6 ¬ïWV>ƒòòçļjk0ØÙ¹ W¯¾}¡¥ç÷“X†©Ä-ÃTâ´O§ž¦$¬&ÔÙ+" Ä S~èЇ<£SêLÏa5:° ûðÜ‚v“¦¶oÿk8e¸vmòò΢¨èNú ¸ÝùÐéœ0±|ù£Ð뇧ÀÔŠ?õ»»7¡¯o€''N|zL}þMÈè?'X›¯D`Êëu s8Z›{çÏýý«éóܹ ¸øuñÞ‘#_ÕŸo<55¡¤äUBjµO€žÛ]° Li4>lÙòwbÜŠEEGÄëС¯ 0£ à~ ¿ß" rx¸nw.††–/¸ö\!y`˜JÜÚ0L%NûtêY*Lej¬$ÃT:}$x.¬Àü Ä SÝ(ÄalÃx\ªÄh…ÇKЂg§’¦vìøŠ€òòø|3ÃÿÖ­û®ð\MöL¼äçŸ?#¯ÕêÕÿ!àçõ׿6Sýý«ðœ<ù?0:Z¾ Î˜êîÞŠË—ß»ýÖ¯ÿG47?ˆ¶¶[¡Õº…@À$ ¯®î—8sæO14T+`j®ñlÞü h4^>üÑ~ûö¿0´g*'çV¯þO46¾ ; Õº°sçÿšð^åä\ó&:{öc Î+$¿bH‰F†††fMÆ’ü3Hí2L¥öú%Ëè¥ÂT²Lj©ÇÁ0µÔŠs¬@∦è‚ÝØE*sÙ…²úå¡ëqj^ÓÉSÆf4ö‹³>ýý+qñâ ÝÌö7LååÁ«¯þbŽ+Wþ¯½öÍ ˜¢>:›ÔØø0:;·/(s¦Z[ïÂõëû`±tbÓ¦@K˽¸qãvEEų"ÜtE²*„³g?ŽÁÁº7=S³‡€‘BôÈ;FeãÆÿ«(Ìú«¯ÿ9B!­3¤BÞª¶¶½hn¾ÙÙ—°fÍ¿£©é¡‰ÐÈ'É’ZƒÁ•J…¾¾>>7•€•b˜J€èiØ%Ô„Ee˜’ "›`RDXaЦ÷(Þ‰[ðªÈÀ'³ !K€Z9®'LQZ묬,‘Þz<Ù%LL¦ tùòûÐݽybì±ÂÔéÓŸDUÕÓ0ûpôè— æÕã&LÝë×ïœSö·k×1<\-¼@ÅŇQ[û+E05Õ3Ƹ7Î6Å3åp4æ9ùÌ'[³æ{hi¹}}k'ÆEè_$jÖ IDAT¦.]úôôl’¹…ØV‚`˜JðovË0%WÿLPc˜’°¦$ˆÈ&XQ ˜¢p<ºhW6L‘tOãnlÑŒb®’Ï%ž ~Ãa‚¨nhtumCOÏFX,"tîÂ…?…èQ*tfÊ`ĹsE8¬‚ÓY:¯'hr Jþ°nÝ? 8jm½;f˜êèØ…]»¾ŒÑÑ2qö©ºúw"¡…64ü syÊ(‰%Óhn~@¤@/+{Aœ ›æg4`ëÖÿ#t póz³E8á–-_!ä}¢ÄtfŠÛ~ä¢ 5ØŠ#I S^¯ÅŇPZú{‘h‚ÎNuwoAKË=:vîüòŒ±SÈ…ò'|˜?̲ù¹\âÜQVV#Žý¢·›«Ì癢0? ñ+-}IœÑ¢„žh2õáøñÏ¡ªêÉ9ÇC@Gã¥3X]][4êõ#Â[6¹PVÃeË^ƒZ˜-¤º‘l~U”=ðÆÛD3öLIÿØ$Ü ÃTb—€aJ®þ SrõÌ(k SµÜ<Ù W ˜¢dä™’Ñ/²$§°ëq:©a*÷OŸ˜¢ÃTb7Ô\ý¦$虩±’ S6›`RDx`Ê +^ÀmxPrF¿ˆt](Ä1lÁ}xrV5æGž©¥,!ÝìùÇàôÑ붉ÁNg Z?ÚFó ­Gë˜UÖ1\±¡ÖêD£ÓŠ2³]Lš Ba‚aÌš Ü! ¬šüa¬Ú 8þeÕ W‡D]£&µ ÈÑûÄ5ºù†¥ïRjË}ÉQ€³ùÉÑ1V+ S±*7{;†) zfªˆ S6›`RDx`Š¦Ø†Rq®É„ñ´Û²Ëy¬ž¯ Ì0Ž0å©qyÔ *Œk.3èhÖh@‡~¯%fœ~-ŠŒŒ´(³¸Ðç5hòéPjvÃÔø b˜VA£ ¢B'½‚!5  ÃÔ@ƒ0|zO]#¬Úz½èÔ! ùu…T¢wP › a1Ž>¯²‡à jQgÆ… øž©Äí†)¹Úg*H=3•©"2LÉý0²5V ™ˆ¦È3µW̼«ðã ܇ñKèáŸb&053›_¬3oGàr¸?åf^ëËÅJû(:Ý,Y:¿€šb£fm0áÀâ ©á h0ì× ðòøX±-wÏvâ½å7pjÈ=ùýp覮U|*qëTR€a*q«Å0%WûLPc˜’»Ø+À °ó*p¥ðÁ€4-šRî7ˆ¬Àńà €2úÑ+–B r~Ø.@äꨅ&ð U˜]ÈÖûgðÅb6ám(¼+À ,­a¨@)Ò7á8´ Kl§P?pVá^Ó “&-gLÄRHë“ï™’&eL†¦b’MS€aŠ·+À °K¬yŒ†áÀºy.Ø•9¤ë(AÕr¡¬ K¦émMÏæGàr¦Ý“£Å"ýøƒÈ±h´Cè¬NII‰ðM/³Á…RŸjµZÀ×Õ«WÅyªòòrD@+''ÂKuýúõ)0+‚·Éà¦hÀ‹TÉÐâõ¾\\í-è)Þ¹¤¦ S‰]7†)¹úgj„ZRÁÔ'{zf]ÕïÌús®?. ë3®ï‡Ä’ÓÛZ¼ˆ·à6¼5–澡VT@m+FCž ÆÅ /œ¼zä•"/Oä\Ó¹A3~|) ï°‚CãBii©âL±À…öQ^&“ ðD E@«ˆgŠÂü:::D˜zð%K–ä£-¾ÓXƒû—ubµc$½?4i:;†©Ä.,Ô\ý3õФ¤‚©¿î?$=½üí²e³þœëËÂúŒëÀû!±ûAî¯äô·vP…VdcpÉ&ÛbÛ‰ŠlTª0Vš{—¤ßÉ0õ–‰; (©‚A=DÆSô°Dç¥ÊÊÊDh`cc£€!‚) ¤³Xsy¦"‘‡Š ŒÂ)ì/Y ÕéAÎØñ±š–dC¡ S …Z¤j Sr…e˜’«gLÖò³g¶ê{ó ðt£\\Ög\Þ‰Ý1}è3¸Q ªÐ‰"ìÄÁ%S<.ê¬ <Ú» R|ž víÔ¤²©SVý>¬ŠÃƒ²LQ6?ò4Q–?‚& ýDPDßSâ ó£ÃÿtfŠ …¢D“ÏLQºu ¤3Z*H^*‚)ª›låÕÞH0¥²ãÇMÅx_YK\—Ñ.Sa‡`ꌿN¤ò^'´E5°(*“ÇŠ‰2÷‘7Š +;;; ÉQµÓmD£ÓŠ[òû’c@< E ð=SŠdZ”J SreÍTzf*SE”»Ù+À dŠg±¸;–&yÀ\—öŽõØ?°wf7áW½+qgN ª õãž…Êïúðë¾Uð†40¨ð…4ØboÇYÍØ’3€£kðÖÒdi’/뙢´ç”X‚ÂüÈûUUU•4I&Ò~òûý^½¸ôøª®EÓŒë&X†©Ä-Ô\í35Ba*Î}D'\XV€ˆE.ãʱ ‡ciu mÓéts¶ C…c£ËPkÀtlÂçË_Ã÷;7âÝçDH`ƒ¹C#ru.¸ƒ:˜5~ ù0jø«–Û10N±MÞªÍÖvÔÚ½øP]gÔã]Šä¢0? å#mèw:‹JÕòȵ2¼¯âFª?#ÇÍ0•¸eg˜JœöéÔ3ÃTœ«9×_zã4ËÍYV ðA'¬ÈY¢Œ~”ê{>˜š.¹3¨ÇEW>Ê Ãxe¸[míxa¨ {³Zq` ÷æ^y¥>Xt_l¹ý~3aµ0cTD»÷œÅ :÷”À¬ fÀª&nŠ® º ð`Ir‚kâ”I·> S‰Ó>zf˜Šs5¦â›³®À%4 ÝK’"=Z˜Šfi>rùAŒ Щ(åy,:%©œõ×À¥¶óC~4‚ÆP÷ñöbdëýØÃg¦bP/qM¦§=ÃTâ´O§ž¥ÂT2ÅJRšlºÄõe› /ÙlølWzt:ü87Wêú1LI•“±§@/òÅ™)7E9 »X0uÒYŒo·í¯±vãOŠN"[{ó|T—j‚z;–[Ç`×E—à"ã6DŒöëpqÄ«6ÀøÆ¨a"šq6¿D¨~³O†©ÄêŸ.½K…©de:LÕy<ð¨Õ¸®×K&ÔT9Ù+q ¸`ÆUÔ`-Î.úÜ ¦¾Ð¼=> >Qr[mm3æAýŽ»*Ñ8jŇkZež47º3ª®®N¤1Ÿ^è=ÊÒGc‰¶\¿~]¤V¯­­hJ÷YѽVõõõP©TÑšcu<³uö½¦*qÇÔ®¼øÒÜG=n—|ÏT\òÅݘa*n Ù€¤€©mcc¸kx¿ÍÊÂÞÑQèÃa<åpˆKXw:âRÚŸçæÂ©V#;À}ÃÃ(õù0¦Vãé¬,\5ÄbníN'Â[,¸cddVÏý7Ký­v»Aÿ^1ðxV‚1ü‡È0ÅŸ#V€ˆWºsÊŽa豸^›Å‚)šÿhЛf¦w.Î¥Äô•²æý´µ”tJ÷PE.ì ¦" UZZL¹\.qiïd‹¦âÏäýF÷K=ÝYˆ‡ËÚ¡VÑÿ~\RI†©Ä®Ô\ý“)BMîÌæ·–0Etïð0š ±XðŽÁA„T*œ4›@Ý9 Š>ÖÛ S(„_æä`ËØ<|«°–PÑÝv½/ÚlÂj¼ÞYaŠÚÝ3<ŒçìvT*ñïý‡è;ÚB0e,¶×OAlÞjE£54+ªÇ•RS¥û šÙ‘gJʱ¸Yئæš/ýž ‡Ã"cÞ“ÅXŸ=„n·›r†ËDíé]J]Nÿ¶Ùl(..íé烃ƒSlQªsª¹èwò›t‡y…¨×‰ /??_؉¤I§¶â_*Ž5›gŠìнOF£Q\LF`G¥¹¹Yx¯(åúBã¡ì‚4úJÉB & ŽÖ2ÒeÂd¯U]‹µ%ìÏÃC%еäŠÉ£ÃTbׂaJ®þ™zERRÁÒE£ïïï ôõâbøU*üUGΛLŒèÔkV+^°Û…犾4;Æp÷ á99¸d4¢ÂçÃõõÍ Sºpôr«Õâë;;qÜbÁ“GÔ»ŠZ7|+êvÜ õØÒöuEƒ>ZúEEõ¸Rj* tD3»1XÄ™)-Ñ4‹ºn2À úpÚÜ&伨·¢È¸ðy1ºŠ@‚à‚`Š‚^(9Í‹ ‡@¥¼¼\„ùˆÐE¼t!/µ¥úÔÖl6‹ŸG²’MòjQ›HêxªCž4j‚¬Ù`ÊápÀb±€D3L¥È‚Æ8L¥û Zó½ÈÃrP+Ñ6U\?`j®ÁÂ*¼Ø“ ³ ?»V†¿]}WÔZÇD“k×®‰3W+ä±!Ï”L˜Šx˜¢…)… FÅã¥d9¦”¨”u”>D3L¥ÇzÏ5 ¥û èÎ) œ0ãæM±Ø™«M"`jz6?%óiw›0àÓ‰³UWþÙca Ž ¡¢@„ó‘w‡’[PH…þõõõ‰%„ ¢3LTÈKDÞ% £3Näí¡sNT"ž©Ù`мaTÈëEÚ•••‰ïÉn$›Ù£q@™L&qf+:Hg´|(9Æd˜šmÖåûð{‘뿎ú’,-”éŽBéwóä3PDtV)Rò7LEÎ+MבÂï&{Ÿ˜ž–"!w¤3%‹ ³]”9ÆDáÕÕ73‚^nÂå!|A5ºUE¨-0bÔ¯E¹îÁnd‡z$FæAv(„zf˜Šs5¦â0…š+}ˆN5˜r¿ºþæ¢ñ•P…¡6{¡­èqãU@ÂÈo³_JjÚuºÚñ”ÌÞ³•ð_)EÈ­‡&k †MЈ÷ü%p¿±bbµUÔGñŒ›¡2ùRhJ÷A,“¢ |É;Uk±4_°M*ÂÔôI]µÁª à‰ö"ÜRЧ: ±-w΀%&7²t~hÕ!‘!P“à{—‚aÚ\&1…!¿Ý#Tãì°{ zq|0 ·öÂR£ÁÆWl,¸Ó´ÃTâ–a*qÚ§SÏ Sq®&ÃTœ¦Ps¥Ñ©Sa¿Æí—€¡A+ÜW@WÝ ãæF„Féap¦ÆßÃÆ&hKûÆÙËè…J„ï|<'jaÜ|šÂ!ø[Šà»Xë}‡¡Î0å9QËý‡˜‘Mï±å€6Ë]ÇSh,.L‘ͨB :DªtÙ%Ñ0E‡íÉÛ2½ˆ<7Ó‹’úc­©ƒäšBèp›AC€B0åЇ¥uÃR£ÐàÅH@‹R“nPbˆŸÛ©½:Œ`(€Ð›ã Ñ Â*øÂ*è4ZŒ… ЫCèòÔµ8ÍÈÖyÐ:ªƒEDǵ ôé`Ò* 7ÔŒÃÝ _‡Í9#0©}0Î’µQÉ|'kÄõÇÕˆgÿ$ƒž²:ýž4ÙŸ}¶7» S¼3d( ¦21V2`j†÷ÀèÆô@­¶ºázn#9³î;]M'L»ÏcŠ—C†Úâ½gXÓ¨éQ%uK:ÃB*˜n=;±8ÞÓUð·ÁúàÁ) 6ú³½0î¼]U÷ÔŸÿrôµ´"Åsp´e½¼L¬íáW&Þvgcì™M°½çe¨ þ”ÙJ÷A¬¢DÃp 7µŒÕÖôv‰„) …¥Ñkz¡3Dôš^â­?РϫØˋÁ1?Ü!­€¬Ñ€^xˆ\*+²Lô{uÈ1øÑãÑ#K@ÿXFŒA‡zý&äëÝèöšQãð¡'`G™Ùƒ~Ÿy¿1+Fá÷za×ú`Ò`TaÕú‘gÓ/é|#ú-–žlêwNÖ3r9´¬Ï:ÛQ¦Ã”2¸Öü H…©L;Ý`jÂ{@Œuá9VzжÜwa—áàø_•=o¬€Êä…aC³ø^¥ @eô ˜šðrÕöÛá9Ô}à Ö×MÕ¢ô!:=S3`êLü-…°>xhÊrÍS!§ Î_ï‚ù­Ç¡-šý¬Ï¼0õð+)ê§tĺÏ)=ºF 'Vs¶KLEDÉ(fKãMg‹è5½pýqEXŸq2m?HÿÀg(À0Å›B† Sqª˜v05Ã{…±g6Ïð¸^X/ÎÖw\œ¢ ÁÔL/G5ü× `}`êƒyœÒ/ys¥Ñ©S¡! \Ïo÷(n˜ê™ ¦‚}vŒ=µÖ‡BíOc=½L‡©Ð˜îWV‹j–»-ùZÆÓ¡Ò}O¨÷Måc<œRVI4LÉšÛaXV@† S2T¼i##ÔhöKSy>ÙÓƒm6‘Š|± ¥?ïÓjñüT' Ø}^@y*¥û ž9 ! fŒA¹á Sñ¬ ·eXtS€aJîŠÆzE’ÜQ,½µŒ€)º·ÖãAN'`KfIg˜ {ua{Ó½J=Säµ ºúºö^™ë°¶”>D§"L…}Z·^¿©þæbX8Ÿée6˜¢ðÏÑG÷À|ÇIhKúo6 ªE6@*Â3u¼–{R©8#¥ÒÏL8°ëoJ÷A<ý¡ÁÉðz¬SN"P1Lų*Ü–`ÒM†)¹+Ê0%WÏ)Ö"ž©W­Vûý¨ðùÐj0àÑìlqÁn¹Ï‡»‡‡AòŽh4Øïp É`@¡ß÷öây»5^/J}>´ øÕ›íèû‡†` qÈjÅ&— ýÍ‚ž©/tu¡Ñ`€[­Æz— ƒZ­K¿V 5€{†‡±Úå°Fƒs&nÅOrsÑl0ÌP)Ý`ŠÒWG¢Ãä=X6JMç£&—ù`jÂËϧ_Þ!Ô§{9qË-Ši¥Ñ©S¡™!•ÙÓäÌá$QçJ@áüÍNRÆm—'´§´æô³ÙÎL-Ê"-Q¥û Þ¡ "x¤^àË0ïªp{V€H'¦ä®&Ô=犕ŒÀÔ¨FƒÃ J|>¬ðxð”Ãã >ÝÕ—Fƒ'Ü;<,à芊0¹V•׋-cc¢Þ ‹ÞÝ C8Œßee¡úÍ÷nèõ Â…jÃa¼j³BÐôëìl¬s¹ðÐÐN›Í¸l4â®áa؃Aü(7Wàô’n0ñ„†Íp½´–{ŽÎº5LE¼âÎ"‚°7½¶XBM(}ˆNi˜¢4Ã6TæÛOA»l’§i˜ò7ÃýÆJqo…ïùÛòà=]=±¦¢ßº”Õ¯ ¥Ø€SÑ7ž£Ô4)Ù+À ¤ Sr‘aJ‚žs‰¢Sf³Ÿ¬`Ÿêî`õŒÃs(„€JŸJ…}##ØátâÿÁ ‰³NÇ,^YŸ~³Ý‚©žž špÿ³« í:"˜"¯Ôw ĬÉyȾ—Ÿ·bÛo ÏÕÞÑQÜ2:š905)…çp=(}5eò›îURæ'a[%‰L)Ü{¢H–N Ç›Ë3Em|WJà;WË8륽ÓS£'ÍÂF9¥û J³³VA /ô0Ír'Q,ö¦bQÛ°¬@º*À0%we¦$è¹LEPèÃa|±³Sx¥ÈËDµÖå‚1†*¡vß.,Õ›œ8br»S&>Ôׇìv¼fµŠÑ¦»[Q˜y¦èüÔssE»ööо¾SP€÷÷÷£ÒçÃÿ).ïQèà}CC Sá€c¿Û]U ¯NÙ! Ss`RÍ3%ᣟQ&–¦ZP?´¨C£¦¤ÈÈFXV M`˜’»œÍO‚ž±ÀÔE£QÌË6^²ÙD˜eâ[¦Z,ø³Iž) Û#ÏT›BÏÔ\0õŽÁA¬v»ñ¢"x2Ü3E["Б ×óëEújMþðÄ.a7Š$ IDAT˜b˜’ð+#%M,%L …:á…S3+Æ"^¢`*Óî¢ùêt:„Ãá)¯@ €`pfbFzM/T—ëCh“lú¨ÕêëKëÍ%µ`˜J­õJÖÑJÍæ L]5ðîµXpÅhĽCC" ’Ltëtsz¦(ìBuá0ÏÊB­×‹ .WÜ0µÑåÂýCC DO&™JÖMš,ãRúÍž©dY±Å‡Ò} «÷óX‰|ô¢½q›LL©T*8X,ñð9¹8NÐkz±Z­ ×ôÂõÇa}ÆuHÅý0}Ìôù A3ÃXÜ¿â¢6À0µdÜ`Sûív¼{pP$—èÔéÄ*‚+‚¤ÿÊË›¦(<°ÒëÙü(<ðu«Udæ£sNß_àž©ùÂüèì%¤hðxDv?Ê*¸Ûéç°®éõ3$L§ü ™_¥Ñ S齓”îY*ø¡Ã ²R¦èÁ¿°°ô—|ŸÏ7Ez€$oÍô¢ÕjçôD¤J}š=$S‰|%˜¥×ôñdMÿ9éÅõdÔ‡ÆYÛÈúz½^Ðkz10¼™ÀÊãñL©C?§ö}}}³þaAÖï¶3» S¼3d( ¦Ò%VÒ Á£R‰¤»œNÜ12‚)(@ï,wT1LÉØ†©aCéC4ÃTj¬g¬£Tºbµ?[»3X‹4Á‚±¸Ì&Â3E0E¿'é¯î³=hÆ5!nÌ ¤¸ S‰]@†©ÄêŸ.½K…©t…R¶?<0€f3ΚL¸oxä­úç‚„Þü+ãäy2L¥Ãª+›ƒÒ‡h†)ez¦j-¥û@æüèìTòP„®¸Ì2LÅ%7f¤+À0%]Ò¨ 2LE%WžC†©Y„¡tèÇÆD†¿.O;âüÖl…a*s>[J¢¦Ò{O(Ý2UBF,G š¡ÃÌ01¥}1L)UŠë±K£ÃÔÒèD3L¥÷žPºd«à„.˜ãJD‘˜¢,~¹¹¹â=Ÿ™’½+Ø^ª+@0Eç ûûû16ß™ÈT×"ãg˜’«:Ô\=3ÆÃTÆ,5”>D3L¥÷žPºC…fTAJÑ“ùDÀ t®TÞ1M‚±i¦À\)ÞÓlšI9†)¹ËÂ0%AÏLŒ•d˜’°qRĄ҇h†©YЇ©tÄh~Þfä™2À f^üª¤?†)%*qV`i`˜ZZ½'÷Æ0%W{†) zf¢ˆ S6NŠ˜PúÍ0•" ã0•îƒÍ/Øì4ÖaÚ‘¾ëN¯À0µdÜ€Xt¦]â9;`˜’«}&r)(5E&ŠÈ0%÷ƒ˜ÌÖ”>D3L%ó*Æ?6¥û þžf·à† ÃpÄ”&aj±V…í²±+À0»vñ¶d˜ŠWÁ©í31BaJÂJ˜Z£Ã¬8ÒíÅ£M. ³b³) ô!:‘0Å{añ÷®Ò}°˜#9‹Õ¨ELpGÕ ÃTTrqeV`I`˜Z™gí„a*qÚ§SÏ왊s5Ó ¦>¼ÒŠ1?o\¼¬BKÑGœË:ks¥ÑéSK±NKч콠tÈîw²='¬D6Êp#ªnS”ÅÏf³²úQÖ2.¬+pSú|P¿ÑÑQþ|$`c0L%@ô4ì’a*ÎEM'˜Ò©UøêVÎôû ¦béCõæ%ú1LéCt:ÀT,ëíG)–>’a/(ÝÑêMý0ThB5ÊqCd÷SZS”É~OHqjt¥+Åõ2E¾g*±+Í0•XýÓ¥w©0•‰±’ ÁÔ=&ì-1â±f–géPŸ¥E—+ˆŸ^À7$öQ±YƒªÌ(³jç|ø]‹þÐM|ØVhÀ[JŒÈÒ«1à âÅvŽõŒ?DMíZfÑàÏÖØ0è áŸÏŒÂ ƒ\ï®0a]®f­®€èãÚh@ØØQdÀÛ«Í3öõ^pâò_Ñ~§Ý}å&lÊ׿ScÄ¡n¯«Ò>H‡=Åüà’u6èaÔ¨ð«&w{…å-ÞZnÍÓŽ÷zñÔ57"rͧgC‹¯²áÀ nYfÀ¹¿X;K8Öëë4WQú=Lñ^H½ t(úÐÄQ©¹èC.êqE±†)ÅRqEV`I`˜Z™çì„a*±ú§KïRa*]D‰f ÁÔeFì+3ÁéãhEf VdëpqÐÿºèÈÿÜäôÛªìZlÈÓãÙën<ß6!+støã+zÜAíñ‰÷ $~tÉ)``2LT|j]È?A¿gØ>PoÁÚ\=^j÷ m,ˆÛKÈ6¨ñõãÃpÂÈ7i°¥@/À‹ ˆJãPþq •ä5ø±2G/Æö‹«cü”ô±½Ð€wÔ˜àä5¸0èƒ7œìõ¡qØ/æýkíðñÜ  ÍÜQjZ‘f éIúþéj. úln/2àh·F­ «sôø_‡‡¦@ìä9+}ˆž ¦x/¤Ç^Pºú¼Äû¾zŒÀ† ÃøE* S )Äï³K«ÃÔÒê=½7†©ÄêŸ.½3LŹ’ Á=è“ådŸ\ƒV­Âßlq@¯QᯠoÊš\<°#òª|z½]xƒÈ+Då“kl¨´iñݳ£h  Ä¢Á-ËŒ¸î àõNïL°8 *TÛuø÷ó£hÀrèÕøòf‡”:3*~Vm×â#+­Â£C€E%âµ9Ñë‹)Ì<[TäE¢dä +¶hÐç ŠsXJú -þ°Þ*êÎæ{gä¥ûé•1œ÷˜}t¥U@ÖWŽ ‰>çÓ3SärÂx_?¸èDžIƒû+Mø»ãÃzÓc8}k(}ˆž ¦x/¤Ç^PºâüÕ¢¨ù ”Á–㪢ú SŠdâJ¬À’)À0µdRÏÚÔ\ý31Bd˜Šs)…©Ç[\xµsÜÛó?ÖÙ}ëÔ:]Aܺ̈­…z=j4ºÒ&æ@Þ.‚¹S}>œî»y¦c¡>Èk÷'+¬h âÿ?=2cȰœm._;>,¼Móé)‚1: O»97*`ì¡*3¾qb}ozó ¦x/Œ+›ª{!™`Ê-Ô Ï±JÑE¾ SqþÂçæ¬€d¦$ ¥9†©([ z&^‘Ä0%a)…©É ¿\gïSƒz~yu výø÷“aêoËa{uxHœš^"0Eï5 °*G7%L0mΠ%œ\zzÝAñ#:‹ôÑ8`ŠlPØ™"ÏW™U+Àêw-.¼ö&H.ÔG¦Àx¦‚=zÿM³ cã㎔α ªÚyõŒhñ“Ëã¶S¼nž}›o¿%ë^H&˜¢=|u0À‡J´.ø-0EYürssAYË8Å‚KÄ2L‚)JÎÒßß/²úqYZ¦äêÍ0%WÏŒ±¦¦n†ù³%k"ÌoW‘A„¾ÐæÁ3×Ýâ\=àO†©?_cC¹M+<(-#˜4xW­7œA—cò™©Ç[ÝøÂF; j¾yrDx©¬:¾²% .ÿû؈Ç(AD¡YwH$Š  ó› dZÔ\£ZÀ ‘ }ÿ…\ˆ°C%}D '{Ì&÷û¶j3vļ#ž> ¤9µ9â,Ø|z&Lñ^Hí½l0åƒ^a„:ÌŸ,&0EŸ_ÊèG/.¬+0S¾g*q»‚aJ®ö SôÌÄXI¥0E^£—Û=(±jüDÎD‘ç=Ë- ¯ÑkìY6ž±O¥‚8cEõÖåéñþ:‹H@q¸{<E©U#Þ§óéÙü"‰ &‡ë=\kÆ–ƒH¼piÈÍù”X5øÞ¹›g«² j|y“Cœ%ú}»G$s óNgû•eó#\“«`HÞ.ò¾QÈÝ+<Ñ:~¹èB},SyF5>»Á@(,’NX´*q~¬iÄ?ï^±ùôô…Â"E"=S¼R{/$LÑçêꑇ~ä¡oÞß䉄)³yf¶P ÿí° V åp¹\  â²ô 0LÉÕœaJ‚ž™(¢R˜"À J…M+Ò’ÿìʘȴ§Qï^nÁÊlÈø÷«¦1QïöR® ùEŠp*»Š ØSl0Bç‚Ì"÷¦Ã…Ö}v½]$UøÎ™Q‘¨‚ÎRÝWI©Ñõ0h ÎjQ6<‚«É…ÀäÖeXujq>‹ÒšGR›/´ELZ¨4£>[+Ò¯úB8;àÇÓ×Ü~"e¾>‚)²AgÀî.7‰Ìˆî`çúý"‘w!=_êð$¦x/¤ö^HF˜ @ƒN£]óföKL-ô»ƒßgXV  0LÉU=9€”š€"ET S“ÃÒän]¶¶T (}ˆ^(›ï…¥Z±ÅéGé>XœÞç¶ÚˆZdch^ïÃÔR¯ ÷Ç °ɬÔÜÕÉÄ5†) {(`Š2ÞYfšW-Jl1WJq 2'… ¥Ñé S¼¥û`©7-Ý;ÕŒ*Ô yγS SK½*Ü+À $³ Sɼ:©36öLŹV™SqJ”6Í•>D§3L¥ÍbÆ1¥û Ž.bnÚŽeÈÆ Ì?—6½0LÅ,-7dX4T€a* 5Sb˜ŠSô…`*NóÜ<‰Pú=L%ÑTx(q( tÄÑEÌM)³ßÅð 4¨.‰té S1KÉ YV `˜Ê€E^‚)J…©LŒ•d˜Z‚]š$](}ˆf˜J’[¤a(Ý‹Ôý‚f»Q€BôÌZ=S ÊÇXV ƒ`˜Ê Å^Ä©J…©EgÒšf˜JÚ¥‘>0¥Ñ SÒ¥O*ƒJ÷A¢€'°Fu¦iá~ S‰Zî—`’Q†©d\•ÔÃTœkÆ0§€)Ô\éC4ÃT -j CUºb0-­I?r…­\ôO±É0%Mb6Ä °i Ã”ÜEÌÄ5Ra*Î}Ä0§€)Ô\éC4ÃT -j CUºb0-­‰:œÃj¬Âyè'Ц*+Ïcùòã8pà¥+^C{÷þ6Ûü“ŠL­\y«W¿Šgžù0FFrµ‰¦Rvv6V¯^+W® »»{¢iEEŠŠŠ Ñh088(ÞƒâýÊÊJñžZ­F?®^½:ñ^4}˪K?5558}ú4FFFd™e;¬@J(À0%w™2ñŠ$†) {ˆaJ‚ˆ)bBéC4ÃTŠ,hŒÃTºb4/­™ô"¥hŸ° LmݺGoRÁT~þ èt>ttÔ(Òi±ajÆ ŠNœ8pxü2ꜘ8Nñ}gg§€¦’’TWWchh>ŸÂ¶UT*¶lÙǃ3gÎ$jÜ/+¦äÊÎ0%WÏŒ±Æ0•1K­ø~!†©ôÞ©S´ M¨F®A‹q¯Èd˜Ú»÷ nœ?¿ 6¼£q o¼ñ ÚÚê±oß‘•55‰Åc} ~¿AØih8ŒššS¢}WW%Ž{+|>vìxË–]ʼnwbݺáv[qðàƒ;œ¯^mÈóäõšpùòV46nMêêŽaýúß‹{<–)ž©]»CNN'Ξ½ëÖ½„PH£Gïãš S^¯ûöýN§/¿üQ ~Nï_»öÿÚ{(»®ò~ûÞ«4#zï²lK–‹\1ØÆÆ6&@ˆ Ä¡·$„’þ‘„„?¬ !JÀ&àB“\1ÆØ–»Üd«Z]šÑHÓ{Ÿoý¶|ǣє{çž;÷œ{ž½Ö,[3g·çÝcßGïÞû¬vÙ£ïqÏüîw4á¼n¸á[ÖØ8Ó^yå"›={¯-^ü¢=øà[[[™“‚‚[¿þ~ËËk;M¦$pzþСUN5ž¶¶RûÍoþdH¦î¿ÿ}N Ü÷»»óݯ¹æ{¶cÇ…V]½ÄV¯Þjùù­öÀ·¸yNTæÌ™sšüDž¿øâ‹]Fê…^pb)"I2V‘ ²TÊV=ÿüóVZZ:¦L)ëµaÃ?e±$FÚ*øÔSO9ÑO¦"ã”Xi\+W®tbwðàÁ¡±Ûºuë\öLY4 ÂB™ò6ÒÈ”<Ùò`ᤉh?D#S è$‡í:˜dóžWk°r˶n+´öÓdJYœåËŸv;/8£_‰FÖÛü.½ôÓv»_üâ“.»3}ú1ËÈèsÉÓ‚/ÛÝwÈÚÛKMY#‰Î]w}Êúû3ÇÛ7~Óe¤4–'滬ÖÈ2Ú™)ÉÔܹ»œ`)kuÉ%wº1)“ÉLIö4Ž|¯54ÌtÍFdª¦f±íÛw¶81×úú^—Ÿ‰±|ùr«¨¨°­[·mñSH2¥,Ñ®]»ì‚ ^çºmÛ6Óÿ#uNJ$•HFhûöí.ã4VfJ²³zõê!ÙQ†é /úóx2¥L™¤N⥢ì–þ¿ù³¾§³]j#²q¢¹ós¤ dÊÛH†ÑDÐÓ (™òöÑÏ­Eû!™òsã[´ë þž¼iá¸{ëT¥eÛO“©³Îú½Û®§LLSSeÔ2uõÕß·ìì.Û¼ùcgÔ‰ÈÔw|ÆÓMÙ¯E‹^´-[>jEãN¨ªj¿s΃VXؤÿ5¹ÌÖO\ï„.RÆ’©9svÛw|Ö=vÑE¿´Y³öÙw~zH¦”aKOïwÛ÷ï_7Ôžæ¯/ÍG²·gÏy¶}û%Q—ܹ-z˪»»Ûe¦”m’p)“ôÌ3ϸ³Iºâå—Oe uÅܹsݳ%%%cÊÔ´iÓlÙ²enk^äl–HÛ µÍp<™Ú¸q£åää ]r¡3^’>Iàð­~›6mr¢' ¤@ ,)o#ÆjÈ”k™òb@šˆöC42€Nr˜Ñ®ƒI6ŸjºÝ¯ÅЬ¸·Ö²²NÉID¦6oþ¨uvž):ce¦.»ìv›>ý¨ËüHR$.¹¹mNR"2µeËGܶÁ‹/þ¹;CMfÊý)mÐ šmÁ‚íN„´ÅðàÁÕqË”¶®]ûˆµ{îùàPJý©”–Öºþ”½ŠŒ}¢@Œ%Sk×®ub¤Ì¶åI–$MO?ý´ÛJ§¢WYµj•I”ô¬þ_¢¬‘¶677»LTyy¹;3¥¬•Ú•8Ix"E[üÔ‡²TÚÂÉp)93¥>uNkäåºp""fj™š(âü< S©Õ©Ÿ™©8™#Sq Põh?D#S ê$†í:˜DÓ «¢­~úšß»3j™RH—Pè,”Jsót']Ê4)ã´{÷yVW7ÇÎ?ÿn·ÅoëÖ›†dJç—tIr¥³V=ôîqç–—×jo~ó÷ìÀµî¼•úݰá>{üñ·ºóXee§®×™)zä‘w¸sMj[Ûü&ÊLéjôìì{Ã~b;w^è²OªsÁ[\¶ª¥eº-\¸Ý-zÁmÔ™ª‰ÊhÛüTGr$IÒ%Úî§û”E’@é’]*¡óKºèAç—ôO]:!q’@éÄIb%ñ•L)ƒ¤3S’']<¡Œ˜²]ºHBg°"Y(«¤L˜¾ª««Ý³‘Û%b­­­CbìÞ½{hŠló›(ÚüÕx±´í·g#W£+ˤ-uÑYRVKÿïж<‰S²‹2f.®FOv$èª SSM<5ûóT¦RÑø³B¦Âõh?D#S©½&¢]~¤°³£Ò¶·UÚ;+O]€àuyE¤ý’’:÷®¨ÑŠnܶí*¯‡2%íöÒÞh:Ö6=e¨´P$ U²ÞïÄK{£‰Ϥ*d*U#;µóB¦âäLÅ 0@Õ£ýL(¨“j´ë`M'¼Jgï  ¤çX×@¦MË:}kš%S^´íÇ6ÊÊÊlÍš5îÝOµµ§ÎuE[´P—SHft~)òÞhë{õ\äLÕ‹/¾è¶R &È”·Ñã5D¦â\GÈTœT=ÚÑÈT€‚:‰¡F»&ÑtÂ«èæ·ÇÛ—Z]oýAÅ+ ï ø™2åmtÂøŠ$dʃ5„Ly1 MDû!™ H@'9Ìh×Á$›Oh5É”.!¨î)²šî"[_TÐþh€€Ÿ SÞF™ò–ghZC¦Bj‹öC42•Úk"ÚuàG ™z¹½ÒŽt—Ø›Ë÷úq˜Œ €À”@¦¼ÅŒLyÀ3Œ{%‘)N@šˆöC42€Nr˜Ñ®ƒI6ŸÐj™R'OµÌ±úÞ|»vÚž„öIã€üJ™ò62È”<Ùò`ᤉh?D#S è$‡í:˜dó ­6\¦j{ ­¦§Ð–ä5XaFOBû¥q@~$€Ly•0z€zzE!"SÞþ"ú¹µh?D#S~Žbüc‹vÄß“÷- —)µþB[•mo¯´÷ÌxÑûÎh€€Ï SÞ(Œ;Ô)Ö2åÄ€4í‡hd* ä0£]“l>¡ÕFÊ”:kî˵ö,›•ݚоi€€ß S~‹H0ÇCf*θ!Sq Põh?D#S ê$†í:˜DÓ ¯2šL=Ó:Ûv´WÚŸÌ|>áýÓ ?@¦üàŽ™Š3vÈTœT=ÚÑÈT€‚:‰¡F»&Ñt«Œ&Sê´c ËötL·³ k2†ììlÓ×ÈÒÓÓcúYxþøœâ¶õ_B•2ÅÂð‚€§2ƽ’a”©’¬*kîṀ./u¢ÚˆöCt˜d*Œk!Úu¨uO»cÉÔ±žb{¨q¡½múN+HÀe•••–ŸŸÆÐ;::L_#‹žåyslàcn-¤úzhkk‹çW›º“$€LMÕN#à©L…‘meêÚŸ³#]ÏÙöæ-¡ y´¢Ã"SkKÞbssϵ{j?Ï:±dJõ³Ü¶·Ï°›¦ïô|6eeeV\\|F»ýýýÖ××wÆ÷333-##ƒçáãÖ@ª¯‰2åùv¢j™Š M@™Šs‰„M¦J³gÙûfßn­ýµöÝÃ'½`UG¦N×çÝeE3ì{GߪLe´ëÀ«{<™ÒxïmXjo,ÛoYiýž _[´JKKÝV­ÑÄɳŽh%€L%/pÈ”·ìøCM‘©8×QØd꺙Ÿ³åyW9j¿©ÿ²mo Ov*ÚÑaÈL)+õ¦ò¿që`WÇ¡ÊNE»âüOKBªO$SÕ=Eöó“«ì³Ÿò¬ÿÂÂBÓ'­»»Û³vi©B™J^$‘)oÙ‡ñIÈ”kHrç„ãJá™ÓçØ¹‹®¢ÖÝßn¿Ýv§ƒÑDQ÷¢¨Úš³?ªç‚üÐUçý‘e¦½~¡ÀÖ›­¹­!ÈSŠzìÑ®ƒ¨œÂ'’) egG…ÑÊü“žŒ ™ò#¤(maÔE#MMM£^Æ’¢ÓöÍ´)oCLyË34­I¦**N}øHõrá…º½ëÃËþýûíØ±c©>uæ7ŒÀÒ¥KmæÌ™§1éìì´gŸ}N>'L5ôåÛÿXc\ù’•dvÅ=£ÉÈÔºuß²¼¼öä“ÿUÿóæýÆ,¸×ž}öo¬££2ª:z(?ÿ„mØðe;xðÍvøð›¢®ëƒë×Õš/Œ IDATÒÒìÙgÿÊU½è¢¿³ÌרîÝûv«©¹(Ö&y>EäääXZZšÕÕÕqn* 1E¦¼…ŽLyÀ3Œ{%Ã"S³g϶E‹ÎÌÌè ÄO<áÁꡉ ¸øâ‹ÝÿüG–—^zÉš››ƒ2PŽ3™½È÷ñæ¹öæi{ãæ4™*)ÙgÝÖа*ªþƒ&SEEG¬¨è°-Yr—Å/SƒÚ±'òd*¹1A¦¼åLyÀ3ŒÃ"S£e¥"K†ì”¿<ib´¬Tdèd§üÄheJ3y¸i¡_|ÔòÒ{ãšØH™*+Ûc‹ýÚežz{ íèÑËíØ±K]³g?b‹ÿÒý{OOÑi™©U«~àäàÁkmÑ¢Í68˜n»wÿ‘56.·á2ÕÛ›oçžûoÖÕUn/½ôQ<óVÀÈ„"™©Ã‡ßh……Ǭ´tŸ54,·;ÿĵŸ“ÓlË–ýÔŠ‹X®é¹êê‹]õñÆ“•Õn+VüØŠ‹ÚÉ“çZaáKOïÊL©~ié«vÖYÿy†Lµ%K~núgww©íÛw“54¬t}.XpŸÍ›÷€›×’%¿°¼¼Z«©Ùd¯¾ú¶¸bDåä@¦’Ç^=#SÞò£ˆ §P„bdj¬¬TäWì”·ÿ1òkkºªZR=ZV*2æmÛ¶ú^¿Î)lãŠE¦zóìÇϵV=kÅ™“¿8bäm~\ðÖÖ6׺ʦOßn3g>i/¼ðçÖÙYaYYm–›ÛhK—ÞaÙÙͧÉÔÊ•?rÏ×Ö®·ººuNVºº¦ÛsÏ}j˜LýÕk’qÒ}_²6^‰ÈTww‰º’’6mÚËöÊ+ï·úúÕéóå—?hUU[ÝÏž~ús¦çÇÏâÅ¿°Ù³u"”žÞã¶ vvVN(S=vÞy_tã–(Μù´ûzòÉÏY__¾UV>g+VÜj½½N"››—Xgç4kjZ¶¥œ2óE¦’JdÊ[þaÜ¡†Ly°†Â Sãe¥"ÉNy°˜|ÞĪU«lÚ´iãŽR·R=ÿüó>ŸIx‡‹L‰ÒžŽéÖÚŸm닪ウ씾T.¼ðsN”å‘ôôœùþ©ÑÎLI^**^p‚¥¬Õš5ßuò³uë—†dª¾~žçŸÿ¤µ¶Î›pÌ™ª­Ýh»w¿ËŠ‹ÙÙgÝöï¿Ñ޽Ì23;]}}yNú–-»Ý^zécÖÔ´ÄÉÔXãÙ°áÿ¹mŠO=õ9Wÿ‚ þÉÉPäÌ”¾7Zfª¼|‡­Yó?¶wï;¬¦FgT;좋þa({U^¾ÓÍ["µ}û‡'œøŸ2•Ü!SÉåŸ*½“™Š3’’©T.K–,±³Î:khŠ:$«‹ô·+W®´¬¬,÷3}HÛ¼ys*£õÜòóóíšk®bÐÞÞnÊB©(#]PP0ô³ûî»ì”OW‹Þ÷ùvˆß­Yo×MÛc³²'kép™’hn½;ëS_¿Êvî| ¼~;äX25}úKöè£_uC_µê‡&ùx챯 É”¶ô¥¥õÛ޽ﴚš &œâëP\c‡_e5¶~ý¿Ú×Ù‘#WÚŒÏØüù÷»í~fƒî‰íÛ?bË^ËL> £¶è);¦rî¹_‹j›Ÿú[¾üÿl` Óm3TQ¶êèÑ+lÿþë­¬l—­]ûÛ·ï­C[#'œ$øš·ù%7<ÈTrù§JïÈTªD2Aó¸å–[܇¯ãÇÛï~÷»3nZ»v­û0­­<ºˆbûöí  Í&“Àõ×_oUUUÖÒÒb?ü°[Ën÷»üòË­¸¸Øjjjëdkœ¾'“IïȲû–ØÓwÚ©÷±—á2%)QÉËk°3žv"´{÷ÍV[»a¨áÉÊÔ‹/~Ü.¼Çrsëì™gþÎúûsÆìÈÛü†Ë”¶ýmÚô·ÖܼÈeªªž²%KîŒJ¦NÏL ¾–+:-3¥K64ÏáPè<Ùڵ߶Þbuu¯ÿ%V__®Ûú‘©]»Þm'N¬=Ôð%Þ3•¼° SÉcŸJ={*SaÝ+™J bääeË–Ù#<2ôm}hÞ°aƒûP=üû’ª ð!:ƒDY2µuëÖÓ$JßÓ‹X·lyýÅÍZ›6m²û￟k~}¸&#SšÆã-sÝe¯‰P¬S‹ÈTNN“I4Ž?ßNœ8× ªÝÖ¹;n1mÑÓ%*:3•“Óh/¿ü!L³¶¶9ãf‚†_@¡ËÖ­û†»ê\WžWÆ“©êêM¶iÓß[kë\wöiÑ¢_¹ %$:Ú¸bÅm6V¦L—hè2ýûopW Ïû[w&lø6¿ÜÜÛ¸ñ ŽƒÄ­»»Ìm'<ï¼/¹-Ê>éâ ™R¦­¹y!2ë ÈóÈTò…L%}*õì©L¥æ2:I“ÎPé%ƒ?üáÁbúЇÜì¿óB°¦>Y™ḛ̂ïTo°«Ë^µ¥ùÚž[ž™ªªzÒæÌyÈ]4¡³SµµçÙ×:é¸è¢¿?£amyÓV¾S>Œ¿Í/òž);*-ÝkÏ<ó·n»ÝXe<™Ò6?mñ›3çawFKBh{b^^mÛöY[¸p˘ã‘Ði¼:ƒuüøF'ÙÙ-.[6¼èVÃY³³ôô¾¡­…z6r›Ÿ¤J·9òWÌTlë.(O#SÉ‹2•<ö©Ô32•JÑœ‚¹(ópÞyç¹÷ ÏLMA×tá3ÊL©pVÎgg8“•)5y¨«Ô:²leþɘ&<ò6¿˜*ó0B@™J^‘)oÙ‡u‡2åí:¢5@¾%LiR?®]çnö[ƒPM楽^ÌÏ?nsæü~ÔætY…Î+Q lÈTò"€LyË>Œ¯HAdÊÛuDk€|K ^™Rfê†%vVáq[”ÛÕ<“)SQ ‡ DÜæ—Dø¼´×søÈ”çHi€üD ^™Ò\kžgKòlfv[TSC¦¢ÂÄC!%À{¦’x2SÞòG¦<àÖ½’  LcÝæ˜ 0PÏŒv›ŸgÓPBx!SدêVXnz¿]]¾wÂq"S"â@¦’|dÊ[þÈ”<à Ñti‚Ûüª„”ÛüŽØó¼’©¶þlKO´=…¶`‚í~^Ê”®â×;ÎZ[[ݵüÚ"¥W2è¥áâµhÑ"÷î; üN™Jn„)où‡Õ<=3Fˆó¶y»}ÞÚ¬²%vÑÒ­©ã¤=øò|>Z†—Hoßøi×üO-‘Ýø®íüÃÁ}YªW2¥ ü¾iu fºëÒÇ+^Þæ×ÞÞnGޱÒÒR÷‚h U~~¾ûgww·»e´©©É"2ÕÖ—aý™ÖÑ—a=Ùî-Y'ºs,'}Àj»r¬"§Ç¶çÛÂÂvÛÝRdK Ûlo[¡ÍÍë´ãݹ–—ÑgƒiÖ?˜fùýÖ9a…}Ö;˜f…™ýîýÃ…Y}–>`yý–›ÑoéifåÙ=–ff9ݾ[¿ È_©äÆ™ò–Xw¨!Sq®#ÉTÇüp UœÈ¨@˜þè©÷k±x)Sšÿ+í•v¤»Ä®™`»ßð÷LM–Ûœ0 /¶`ñrÛÝZhiƒöJm¿µ´¶[^Y•5õçÙì¼.këË´¢;ÙÜe•MÖž^bëçfY[®ÍÉï´Æöë®?l½fs*JìĉZ«˜Vf•.ãUsü¸µwv[š¥YfA™Í¬œn½9NžŽwåZafŸìα¬ôkêͲ4kí˲ÎþtëH·4´Ùù]V×mç”5YW¦-/juÏS €L%w SÉåŸ*½#SqF™Š Õ!0ÈÔë«í)´Óí¬ÂZ+Ïì3’^È”DJ™©=5ív({•-*é³'*mmy‡Õtæ8a±Ž:ëli°s•[i^ºËéãû÷ïw™¬’’’¡Ì–Ϊì۷ϬªªÊ]’N};v̺ººÜÏúúúÜÃ3f¸v¢)=é.+ÖÜ›åÄ«{ Ýv·ÚùÓíþã3ìæ±šJíâŠ:+Íê¦IžI1Üæ—Ü€"SÉåŸ*½#SqF™Š Õ!0ÈÔéÛ×Yn÷7.±Íz:*™’¸èL¤hËžþv~¬"y¥¹Ø‰ÈŽúlËªòB[>mÐʲ{lzNÏPÕºº:Ó×ð3SÚ¨>ÓÓÓ---Í^}õUwžjÞ¼yC¢U^^n•••ÖÑÑa‡>M¦"rUPP0î8c]ÆÚ^¨ÌÕËÍÅn;à¶Æ2ÛPÞh­½™váô+A®bEØçyÏTòB‡L%}*õì©L…q¯$2•J¿Ì@¦Îd´¿«Ì:û³luÁ‰QÏL)Ã#¡‰”9sæ˜~>¼ÔuçØƒµ¶¬¨Íž¬/· e6`i¶$ó¨ÕÕ¶Ù³g[QQÑ}&SýýýVSSãDIb¥¯¼¼<›?þ°¬&¶Š1>yaïh2­9sæLJ¦:::ÜK{‡‹X<2ïxÆCsë¡yöÇóÇHÇ“I€÷L%>2•<ö©Ô³§2ƽ’ÈT*ý:0LL™š˜ÑÈ'ë\i×Îk±üŒþØ+¿VC·êººº\ÿ^TTdUUUî§ú~ccãimëªs=yÑïðêRÊR©(뤫Ñ+**\;‘kÒU·¡¡Á½ÄWE„Ñ2SjGÈôsý?077×½$X&±SÙ¿¿Ë^éÊõ‰Æ£Û5ýS· VVVIœ$L7êeÂjOcTÿ‘ÌXG†ýæx¥Ý8;±â:é RqTÈTò2•<ö©Ô³§2•J`¢ 2-)žƒ@j@¦bãöÞÅÖ‘^ׇ|½J"!¹LéCäEטK2$=•yóæ¹m~½ˆW/äU]=¯ºùùùîûú¹ŠÚTVKuJKKÝ÷õLvv¶«IÖh2URRb¦L•DjþüùãÊÔxãQöKâ¥ñI5.}-^¼Ø}ïØ±cN²ô3Gc—Li *¿>VeeÙ½v g¦b_¤I¬L%>2•<ö©Ô32g4‘©8R#€LÅ0IɉÌ9Öey¶(¯Å 3ºØDŠF‡ð'* I”¤Bç—$z'”¾"R$im›_$4Ú6?I˜2PÊLM›6mÔaŒwfJ‚¥¬”²QúP¬þ«««ÇÌL©ƒ±Æ£újgæÌ™Nì$^{÷îú³dª½½ÝÍY7œ[so–íl)²ÂÌ>^à;ÑbòÙÏ‘©ä™ò–}w¨‰ 2ç:B¦âHuŒ2[ÀtÎHþª)³WrìOç¿j¯¾úêP#Ñžcþr]U–XI~$AÉTKK‹œÑúÒ‡©úúz·o,©O¦V¬XqZÿÊ"i›ÞXÛüôðX㉜ûÒ¶½ÈÖ=Idyy¹Ëª)K¦yh›ŸŠÆ«íŒÖoï[èÞ1µiz}lâé¤@¦’dÊ[öa|E2åÁB¦<€Hd*¶`EdJòÓÝÝm·œg7Ì®±â¬Þ˜:tè«/YQÆF™)/e*’amPãɔƣ­‘Ì”n÷“ðè²þ]eÏž=î Ûx2¥¬Ó‘#Gœ êºc¸L5 §$Qc×<Ô¿æª3Rj[ ô3É–æðàþ4[ZÖo{Ò–Û[gWGÍ’ýC€÷L%7È”·ü‘)x†q¯$2åÁ¡ ˆ2[°FÊ”j?U_nG;ólzN·-/jµ™¹Ý6ªL¤FÂ!™hh[œDC—PHZ"[àôŒ¶?¥º:«)mùO¦"ç•FLÛï†gŸ$L’'ÉRdËÄKç›$º9PÛòtaÄ¢E‹†šk<ʾEnó“$J#óP;úYu{–ŽôR[9#Ë.¬ˆ^J'ÍSJ™šRÜgt†LyË™ò€g!"S,š€@€ S±k4™R ƒiv롹¶  ÃÍÎ-kŽyë_l# þÓ ÝÙ¶£¥Èº2¬º3×Þ»€÷I=ªÈTr#ˆLyË?Œ ‚ž^@FˆÈ”·¿ˆ´¿@¦b‹.GPvEÿTvfdéìϰÍÕ3í†YÇí‡:O5«ÆfåÚ^G9E º3Ï]{~óüÃvÿñvݬãq½³ ®þ!€L%7È”·üøC ™ò` !S@¤ ˆ2{°”Ò×x¥o0Í~w¢ÂæçwØm‡æÚ?¯Ùi¯¶Ø’ÂöØ;LûÚ laA‡}îåUöElGK±]5³Ö2¹d"¢ûú©ä†™J.ÿTéÌTœ‘D¦âHuŒ2{À¢‘©á­ë̳†ž,w¶JrÕ;n«K[¬,«ÇгÎÌnÅ>"ÿÕhéË´Æžl{¡±ÄJ³zmWK‘]TQoE}¶ °ÃfDžà6?O0NºdjÒè¨8Œ2çr@¦âHuŒ2{Àb•©á=îÈ³Ž¾L{¡©ÄfävÛ¡ö|[^Üj6hK‹Ú¬,;¶+Öc}bj4ödÙöëH·}m…V‘Óm­½™î…»™ý67J yÿµÊ{¦’d*yìS©gOe*Œ{%‘©Túu`.˜˜251£‘OÄ#S#ÛÚÝZd…™}¶ùØL»´²ÞaçOk´¶¾L›×é²:™éî†ÀŒ$o‰ëL³£yn M½YVÛ•kiiƒ¶½©Ä®¨²èúñÑ.¥ÐÖ§á/©Ôíùö¾Lë̱ç›Ê¬<§×Ž´çš$F‚’6Øo…=–nƒVžÓc=é6#§Û:rl^QµõfÚ̼n÷}mìëï·ô^'ÿÄI;Ùìsqî4[RšmOï´Ã-½–—™f[«;¬µçÔ‡³á™òpEÑ2¤è]LùùùgTÔËkõ5²èY/ž?ÙÒcÕ-ýN®:û3­s ÓIVwz¡åæd[cw–ågö[}w–±c­i–?Øn-ýÙVœÙcY6`'{ólva¿ÕõÙ‚ÂN;Ú‘ks󻬾'ËŠ¬ÝÚ»z­,»ÛÒÍ\¼Œ>+-ȶÅYN®†—DÏ—öOÑöjýL%O eê SÞ2ã5D¦â\GÈTœ=¬~Ý¢"»fAaL2•–f68èá ògÕ¸ïÏ)̲÷¬*µŠü ÛQßmMÝývÙœ¶ùE±Ž¼x™ò‚"m@H>dÊÛ SÞò MkÈTâC­ìÑ6ͰÁÁA{àP›¥§¥Ùu ‹¬½wÀþùÉ.s#ºva¡¤_íkugŒÚzì•úS¢£òÅ‹g8Ñ‘|ô ˜íoî±A³Ûw7»Ÿ¿oM™S™k¿=Ün‡[zìêEV–›aÿôÄ ëè° ªòíÝ+KlWC·=[Ûi°Tg@Òìs[k­«Ð>qN¹-)ͱ[w6ÙÍ+J¬Àì¶]Möþ5enÜ›÷M|À|yYŽ•æ¦Û»–—¸yþdWÓÐøŸªétÿþ·+lVa¦éÏ}vá¬|ËÉHC¦¿]ÈÔ¦@ &€Ly ™ò€g÷J"S,œ šPÆI™§cm½öÍ笭wÀe~´;¯¶£oh\äœÑXg¦"²¯©Ç¾ñBƒõˤ^+¥9öùM•VÓÖg_}-›µ¸4Û>~v¹“³µ™þ<=/Ã^mê±úÎ~ûÀÚ2[W‘k_ÛVç²W’©Ù…Yö·ÖÚç.¨p‚õ•gêì_/›i/œè´Ûvž’¶hÊ×.›iéifùðñÓ×¼ÿîü «ïê·züTFMýJ¸€"²ñ?ƒLÅÏ ø2åm)x†"2åÁ‰¢‰ˆ0( u¬½×v7ôØÃGÚ]–)R>yî4'gˆ²ÞëÔÙyê¢á%//Ïô5²èÙ =?Ö˜cÿ­¢†)/(Ò2ç@¦âeõ³+ríª§nëÓ½ºŒâž­¶§ñõwÔèæ½÷¬,µ…%Y®Õ¦îûÊ3'­³ïÔ6À‰dJ0?Ò~:UÝÖg÷hºpyyŽýáòbw.êù]®e…´åð?_l°7/,œ™šS”eï]UêÄîåºnwåºú¾cO‹=r´=J¢<6YÈTläô!xÆŒ–™™i½½¯¿f@­twwúž©œœÓ—JZZšûRéêêr_£}ØÎÍÍõÃ6Ï›ø˜¯d¯‡‘cÐ;´”‰mhhU cûmãéX S±ãùÑx*SaÜ+‰Lñ‹p@¦b‹·²LÓ§OwYÉIùO­‘3i˧¾F=´çGŽYi ¿,¨««s™HÊÔ@¦¦–wªöæ©L¥*¤ñæ…L…1ê±Ï9#Íì}kËÆ­øø±ŽÓÞ‹{/Ô˜ ÈTl”‘©Øxñt¸ SÉ72•\þ©Ò;2g$‘©8R#€LÅ0d*6^<.ÈTrãLyË?Œ;ÔD™Šs!Sq¤:F™Š-`ÈTl¼x:\©äÆ™ò–_‘„Ly°†) ÒD™Š-XÈTl¼x:\©äÆ™ò–?2å-Ïд†L…&ÔLŽ2ÛBÐMeÅÅÅîF¹Ñ. ˆ­5ž†@jÐźᯥ¥ÅF{çZjÍÖ³A¦¼ 2åÏ0î•D¦±Ô›©ÿf„LydÊža„ˆLy°ph"€LÅ,d*vfÔd*y±F¦¼eFAO/ #DdÊÛ_DZƒ€ß S±G™Š5ÂC™J^¬‘)oÙ‡q‡2åÁB¦<€Hd*ö`!S±3£Fx SÉ‹52•<ö©Ô3™©8£‰LÅ êd*ö€!S±3£Fx SÉ‹52•<ö©Ô32g4‘©8R#€LÅ0ÝâW^^nºÕ¯§§'¶Ê< 'ínñkhhp·úQ¦–25µ¼Sµ7Oe*Œ{%‘©TýÕ`^2ÛÊà=S±ñâépà=SÉ72•\þ©Ò»§2•*Pb™2 -ž…@ð S±Å™ŠO‡‹2•Üx#SÉåŸ*½#SqF™Š Õ!0ÈTlC¦bãÅÓá"€L%7ÞÈ”·üøCM‘©8×2'@ªC `©Ø†LÅÆ‹§ÃE™Jn¼‘)où‡ñIÈ”k™ò"M@ @©Ø‚…LÅÆ‹§ÃE™Jn¼‘)où#SÞò MkÈThBÍD!à S±-ÝâW\\lºÕo`` ¶Ê< 'žžînñkiiq·úQ¦–2å-odÊžaÜ+‰Ly°ph"€LÅ,Þ3;3j„‡ï™J^¬‘)oÙ#Sð #Ddʃ…Cd*ö`é]:@`l¼ƒ-9«™ò–{=@=½€"Œ‘)oi ~'€Lù=BŒ€@t©è8EûTw¨!SÑ®ŽqžC¦<€Hd*@Áb¨€Æ!€L±<¼ @f*NŠÈTœ©€@¦0† @` ÈKà ÈTœ‘©8R#€L,` €2ÅH Oe*Œ{%‘©®Nš†€ S> C‚ 0 d¦&*gðT¦ÂÈ™ cÔ™s˜ SaŽ>s‡R‰2•JÑLÞ\©8Ù#Sq¤:F™ XÀ. 1 SÞ.0îPAd*Îu„LÅ êd*`c¸€©)Ya|E2åÁÒB¦<€Hd*@Áb¨€Æ!@fÊÛåLyË34­!S¡ 5…€#€L± ¤dÊÛ8"Sð ã^Idʃ…C ËT€P3T@ 'PWW—ð>ÂÒ2åA¤Ã™ò`áÐD È2 Ì €F Œ yzE!"SûMg¸ˆ“2'@ªC€@Jã5d*%—2“š k×®µÝ»w[OOÏTtG€ @>$@fʇAaHþ&m7ß|³m߾ݶmÛæïÁ2:@€ „@¦†–†S•@d;«²R?ùÉOÈN¥j ™ @˜€€§2Ö½’¬²ðˆd¥ôOe¦ÈN…'þÌ€  'à©L©N ’•ŠÌ“ìTªGœùA€ ± S¬DI`dV*RìT”y € ”%ÖjÈTÊ.i&æ5‘Y)²S^¦=@€‚J Œ¯HR¬© ®XÆ=¥ÆÊJ‘šÒ0Ð @>%€Lù40 ~ 0VVŠì”¢Ã @H6dʃ„u¯¤èhÂÇFf¥z{{-++˺»»-''ghäœòq @ %€Ly€7¬=@G>&0ü½RzQ¯¾t‹ŸŠþA?¯ªªrßã½S>$Cƒ @ aÂêžž™ +Ä„­JN:e¥®¿þz'P󽩪®®æ½SI€ @`ª „u‡25Õ+þE ¨¨ÈZ[[£ó´iÓ¬¾¾>êçy€ @ ¸©àÆŽ‘C€ @I$€L%>]“€ÎGi럶ômÙ²%˜“`Ô€ @qðT¦ÂºW2î(Ð@ Ddª¦¦Æ6oÞ¨±3X@€ ïx*SÞ ‹– @€ ø›2åïø0:@€ øž@Xw¨!S¾_š € @þ&ÖW$!Sþ^—Œ€ @¾'€Lù>D þ Àm~þˆ£€ @À?)bÖ½’ £‰à6¿‹¡B€ 0%)0‡¢èh€ @%VðôÌTX!vÕ3p@€ x@ ¬;Ô)M@€ @á#€L…/æÌ€ @ð€À”ÉT$õ7rÌ555V]]}ÆTxþøœâà§õ¹€¢µµÕöìÙsÚÚ%^þ‹—ßÖãyýW†ß~_†ÿ”õÀz`=¤Þça\Å÷Mx*Sã핌œ§IdÛ¶m¦¯‘…çOÏ)~Z™í·›xù/^~[?Œçõß~_ø}þßQÖëõzŸ‡}oB ÐS™o<~Ê,ð7ÃüÍðȵÊú à <d*ð!d€ ß@¦|dÊga8'€L>„L€ à[È”ÏBƒLù, 'ð©À‡ @€|K™òYh)Ÿ„áž2ø2@€€o S> 2å³€0œÀ@¦B&@ð-dÊg¡A¦|†xÈTàCÈ @¾%€Lù,4È”ÏÂpO™ |™ @À·)Ÿ…™òY@Nà S!€ ø–2å³Ð S> à <d*ð!d€ ß@¦|dÊga8'€L>„L€ à[È”ÏBƒLù, 'ð©À‡ @€|K™òYh)Ÿ„áž2ø2@€€o S> 2å³€0œÀ@¦B&@ð-dÊg¡A¦|†xÈTàCÈ @¾%€Lù,4È”ÏÂpO™ |™ @À·)Ÿ…™òY@Nà S!€ ø–2å³Ð S> à <d*ð!d€ ß@¦|dÊga8'€L>„L€ à[È”ÏBƒLù, 'ð©À‡ @€|K™òYh©øò?ÿó?6sæL{Ë[ÞciáÅ_´G}Ô>þñ[ZZZ@F=5ÃD¦¦†3½@€ÂH™òYÔý&SMMMöïÿþïgPºüòËM_~,;wî´üü|›?þ”ïç?ÿ¹½ôÒK®_IMqq±­\¹Ò®¼òJËÊʲÏþó6000ê¸ÞúÖ·ÚÙgŸmÿöoÿf---îÕ™6mš]|ñŶfÍšQ멽o~ó›vÅWØÚµk­¡¡Áþã?þcèÙììl›1c†Â ìðáÃöýïL6Ÿüä'­´´ÔNž¨K¨Tþë¿þË} _¶l™ååå¹/Êé$SÝÝÝvÝu×9iª­­µÍ›7ÛYgeW]u•HÎSß+((°œœ')7ntuzzzl÷îÝöàƒÚ{ßû^[¸páÈŸ{î9{â‰'ìcû˜¸ˆLÝrË-V^^n]]]öä“OÚ+¯¼bögf¹¹¹C²vâÄ ûéOjøÀœ€ªH¤z{{ Iä$i}}}v÷ÝwÛܹsí¦›n’©XÆ™¬µ‚L%‹<ýB€RŸ2å³ûM¦†ãùÒ—¾d7ÜpÃ’üàN°jjjìØ±cN"$«W¯ª®´ÊrèŸú0¯ ÊßøFËÈÈpÏ´··Û½÷ÞkpB°xñb»æškœ°INþõ_ÿÕ6mÚdÏ<óŒ]zé¥vüøqÛ³g½á o° 6¸6¾ýío»ï«è{#·ùE3N ÇC=d­­­¶nÝ:7VehÞõ®wEµR$SšÿÛßþö¡çÿûß;‘‘ìDÃS2¥9Fæ¥:?üá]véÍo~óimô÷÷Û7¾ñ {Ó›Þ4Ä;"SŸøÄ'lúôéîy=÷/ÿò/ö¶·½Íe˜"EñøÎw¾cŸùÌg¬°°pèûÏ>û¬ÝÿýöéOÚ1PQl·nÝêæ–žžî¤/ÚqF/A!S K³€ 2å³ED™úÑ~dÊpÜ|óÍ6kÖ,'<¿ýíoí³Ÿý¬“%ÉÐ׿þu;ÿüóí¼óÎsâ¤lÈŠ+œ¨Ht”‘¬IFî¼óN÷ý=ïyËŠ|ñ‹_t‚&9¸ýöÛíÆotÙe\>úÑ Ãàà ýêW¿rž‘25Ñ8›››Ý8%,)Czøá‡ÝvÁw¾óQ­”Ñdê‘G±—_~9n™ÒÜGÎIÒ#ÞùÈG†ÎJ&Sb*ŽV¦~ùË_ºŒ¤²[c•±dj´qF/A!S K³€  S~[A•©¢¢¢¡í_Êê|ík_³¿ø‹¿°²²2Û¶m›I(t'r9‚>àvttØ’%K\æç[ßú–ýùŸÿ¹Û–¦rèÐ!'Xʘ(3ò…/|ÁÄF’¤LŒ¾___ïÄJÒ6¼HhtNh4™oœÏ?ÿ¼“@ec"ãüïÿþo7‡ÉÊ”ævë­·:9Smx+Ó7\R”Q’ˆIn$–‹-jB’)Êàé\V¤Œ”)='þO?ý´‹Éðí™ce¦n»í6Çzx†mäïJ´ãLöï2•ìÐ? @ u ™òYlƒ*S:K£³5*:£óå/Ùeb*++ípÛïtæg´¢íz?ûÙÏìþá†$¦­­Í¾úÕ¯Úûßÿ~«ªªr2%äèB =«6%*ó7µL7NmÇÓX>øÁµ§,—2k±È”ä'33ÓeØ4ÞsÎ9Ç]ÜÙÒi|<™’h*3'’ÔHÄ”Õ^žzê)“~øÃ>í¿ˆLé¢õ¯ žâ s\óæÍ;­ñdJão{£d*šq&ûW ™Jvè€ º)ŸÅ6¨2¥é‘Ûýb•)]°  Óh2¥íkÚ6&™RfK%™oœÚÒ·ÿ~{ßûÞ7´*¶lÙâ„!™Òü•-Ò6AÝì§mˆÊ”,ãÉÔúõëݹ2 ²i«áE’¥-‰Ê¾-_¾ü´ŸEdJ™,ÕÕöÆË.»ì S¥±dê׿þµÛº©‹)Fö+QT‘LM4N?üz!S~ˆc€ ¤&dÊgqME™Ò¹m3ûË¿üË¡ жñÕÕÕ¹ãú§n޾ÍïàÁƒNþú¯ÿÚ ÅTÈ”ÆùØc I›–Æ÷¾÷='$±ÈTä ýó»ßý®Íž={Ôw^E³Ío¬å©Ûû¶oßî¶>Ž,#·ùíØ±Ãm”˜F¶QFêŒ%S’@ÕùÔ§>5t1…ΔéBÉaIIɨPøì×É ™òcT @ 5 S>‹£ßdJByç‘Î5é>eBtŽ)rË›¤g¼ŒOä ]£}Á˜¶ðé µ¹€B·Õé,Oäb ]@¡+ºu ·²0É”Æy“¶æi‹Ûµ×^ë¢+Óv·‰Æ©3X’ºw¼ãî ’„B[ã¹€B7ê%ºœC7/“•)mÛSvNï¥Zºté„2¥´RüéŸþéi[Ç’)1×툊‰b.~÷Üs»*]|TF»€Âg¿NÈ”˜ @)D™òY0ý&SѼ´w"Iâ£Gº«¶%:¤w( ¿]Y½ÇHW£K~$ZºUOÂLé:se¿F+ÊÈÌœ9sB™R]½³Ig§ô~'Q·JB"1Ñrí6?½#Jb¦3dU;“•)eÏvíÚuÆ¼ÈØF»ÍO+¾ä’K좋.šÆX2¥]g¿oß>wLWÝëFÅá/íy5úD|’ñs2SÉ NŸ€ p@¦|g¿É”ÏðLùpîºë.weûÈ÷;Mù@èpÒ©I££" @@¦|¶D©äD[Û.\hW^y¥»²]Ûu=øhÛé’;Rz–2-)žƒ @ VÈT¬Äü<2•`À4¯íˆ÷Þ{¯»É®  À6lØ`_|qrEïq@¦âÂGe@€Æ!€Lùly S> à <d*ð!d€ ß@¦|dÊga8'€L>„L€ à[È”ÏBƒLù, 'ð©À‡ @€|K™òYh)Ÿ„áž2ø2@€€o S> 2å³€0œÀ@¦B&@ð-dÊg¡A¦|†xÈTàCÈ @¾%€Lù,4È”ÏÂpO™ |™ @À·)Ÿ…™òY@Nà ÔÔÔØæÍ›?&@€€ÿ S>‹ 2å³€0œÀ 3ø2@€€o S> 2å³€0œÀ@¦B&@ð-dÊg¡A¦|†xló |™ @À·)Ÿ…™òY@Nà ™ |™ @À·)Ÿ…™òY@Nà ™ |™ÕuÑ 3IDAT @À·)Ÿ…™òY@Nà S!€ ø–2å³Ð S> à <¶ù>„L€ à[È”ÏBƒLù, 'ð©À‡ @€|K™òYh)Ÿ„ážÛüB&@ð-dÊg¡A¦|†xÈTàCÈ @¾%€Lù,4È”ÏÂpO™ |™ @À·)Ÿ…™òY@Nà S!€ ø–2å³Ð S> à <d*ð!d€ ß@¦|dÊga8'Àm~!€ ø–2å³Ð S> à <d*ð!d€ ß@¦|@€ ø™2åçè06@€ @À·)߆†A€ @~&€Lù9:Œ € @ð-dÊ·¡a`€ @€€Ÿ S~Žcƒ @€|K™òmh @€ àgÈ”Ÿ£ÃØ @€ ß@¦|@€ ø™2åçè¤àØ.¸à[»v­ X¿?~Ü{ì1kkk‹k¶K—.µ… Ú<s;ÅÅÅvÞyçÙoûÛ˜ëN¶B2úœìX©@€ 0:dŠ•1¥$Séééöøã[VV–]xá…VTTdwß}w\ãˆG¦æÏŸoK–,™R™JFŸq¦2 @€À)Å”.S기°ÐÞõ®wÙ÷¿ÿ}—­Z±b…­[·Î Wcc£=ôÐCÖÓÓãÆ¨lÎÅ_leeeÖ××gÛ¶m³W_}Õýl¸LåææÚ7ÞhO<ñ„>|ØýüœsÎqϨTWW»Ÿ)3&‰R›CýlÙ²Åõ­¢l׆ ,--ÍýüÑGµúúú ™I¯¸â +--uuÊÞ8qÂÕ´¼¼<ÓÏ6oÞì„NÛ%gÏžm÷ÝwŸkS5¶}ûö9!Õxï½÷^'¡ª÷ãÿØÞð†7X]]“LIÙ¯ýë ç€ @ÈkÀ†Ë”äé’K.q¢9¯ɪh¨gŸ}¶GyÄ œüà?pÏ«èÙÞÞ^÷çˆLIzôç­[·ÍVYÉzî¹çÜ÷æÌ™cçž{îHŒ'SÊšIàô¥¶£-„FçÁ$Dʺ /ãõyÓM79ÙQæmxQFkùòåC["333]+’ÕÓŸ•mÓü%}Êlýìg?s ¯¿þz»í¶ÛœL=zÔjkkíꫯ¶Ûo¿=Ú)ñ @€Àd¦XSJ`øŒ#Gޏì21ÊÀè"e[$ùùùdª¢¢Â}ø¿õÖ[G¯äEÙµ¡ìL$›¥‡¯ºê*›9s¦Û)êï®»îrOlJJJlýúõ6wî\kiiqcUf'š¢ìÔ²eˆ¶Ö=ýôÓC"8^ŸÊÀiüÊ® /ÊD‰OWW×зµP™3eòÄ@íŠÄJ_ÊòI¦”­Ó¿K¦:d'Ožt™?d*šHò  @2ÅʘR#·ù ï\2 ³MÚŽ'ÙÑY% •dJg«”™R&’™’$tvvºìTD$”áRfGZ輊²_Ú^7\°†÷;žØDž“ (+tÖYgÅ, ʪIè´­P[ð&8É”²RÍáeñâÅNδuod‰œ=ÓY+Í[[ü”‘C¦¦tyÓ @!#€L…,àÉžîx2¥Ì‹2@÷Üsé‰ë®»Îššš†¶J’´ÝN—&(c¤?+»4üÌ”®F—ô¬^½Ú~ùË_ºíuÚÖ§[u>H’¦K.TtƒŠ¶ÏiKÞ/~ñ w±Cä² ‰œ.‘¸ÿþû]Vkúôé.³M6GÛµµpÏž=®=Ó’HEdj¬>5ž±dJLÞùÎwš.È0é ɕ¶N›6Ín¸áûßÿý_'›—]v™c©sRd¦’½êé€ T%€L¥jd}:¯ñdJ,h뙊¶­Iš®¼òJÓö8]:!)P–I"¥³AÃoëy5º¶µé¬Ò³Ï>ëÚSFiåÊ•î:v]Þ lWä<ÝR¿]P¡v#Ò£L™„E‚¢ ˜.…Ðy£‰ŠÆ(¡‘©;vÌÕdÕÆës,™R;C]¦¡ú‘K*jjj\=ÍAÛŸyæwfJcU–‹m~EŒŸC€ Ø S±3£ @€ C¦X€ @€&A™š4ª@€ @@¦X€ @€&A™š4ª@€ @@¦X€ @€&A™š4ª@€ @@¦X€ @€&A™š4ª@€ @@¦X€ @€&A™š4ª@€ @@¦X€ @€&A™š4ª@€ @øÿg\Ð"AŒs×IEND®B`‚rtpengine-mr12.5.1.22/docs/images/pic3_media_socket.png000066400000000000000000007125261474347554000226560ustar00rootroot00000000000000‰PNG  IHDR,€÷ɆsRGB®Îé7tEXtmxfile%3Cmxfile%20host%3D%22ac.draw.io%22%20modified%3D%222022-11-29T09%3A48%3A55.577Z%22%20agent%3D%225.0%20(X11%3B%20Linux%20x86_64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F101.0.4951.67%20Safari%2F537.36%20OPR%2F87.0.4390.36%22%20etag%3D%22PvZQduLkBfEhRh79vbtO%22%20version%3D%2220.6.0%22%20type%3D%22embed%22%3E%3Cdiagram%20id%3D%22X79uXsKkMUPddQAlGXJ1%22%20name%3D%22Page-1%22%3E%3CmxGraphModel%20dx%3D%221422%22%20dy%3D%22838%22%20grid%3D%221%22%20gridSize%3D%2210%22%20guides%3D%221%22%20tooltips%3D%221%22%20connect%3D%221%22%20arrows%3D%221%22%20fold%3D%221%22%20page%3D%221%22%20pageScale%3D%221%22%20pageWidth%3D%22827%22%20pageHeight%3D%22583%22%20background%3D%22%23666666%22%20math%3D%220%22%20shadow%3D%220%22%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-1%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3Dnone%3BstrokeWidth%3D2%3Bdashed%3D1%3BstrokeColor%3D%23B3B3B3%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2220%22%20y%3D%2280%22%20width%3D%22790%22%20height%3D%221060%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-3%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2250%22%20y%3D%22100%22%20width%3D%22190%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-5%22%20value%3D%22Hierarchy%20of%20objects%20under%3A%20struct%20call%20-%20RTPEngine%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23E6E6E6%3BfillColor%3D%234D9900%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2210%22%20y%3D%2210%22%20width%3D%22810%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-6%22%20value%3D%22%22%20style%3D%22shape%3Dimage%3BverticalLabelPosition%3Dbottom%3BlabelBackgroundColor%3Ddefault%3BverticalAlign%3Dtop%3Baspect%3Dfixed%3BimageAspect%3D0%3Bimage%3Ddata%3Aimage%2Fsvg%2Bxml%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAuMDAyIDAgMzE0Ljk5NyAxODAiIGhlaWdodD0iMjIwIiB3aWR0aD0iNDIwIiBvdmVyZmxvdz0idmlzaWJsZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWpvaW49ImJldmVsIiBzdHJva2Utd2lkdGg9Ii41MDEiPjxnIGZvbnQtZmFtaWx5PSJUaW1lcyBOZXcgUm9tYW4iIGZvbnQtc2l6ZT0iMTYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgZmlsbD0ibm9uZSIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0Ij48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwMDAiIGQ9Ik03MC4yODEgNjQuNzUzYy03LjU1OS0zLjg5OC0xMy4zMDUtNy40NjgtMTcuMjctMTMuNzQ1LTMuMDE1LTQuNzcxLTQuNDAxLTExLjE1LTEuNzU4LTE3LjE5NyA2LjUtMTMuMTEgMjEuNzAzLTE4LjcyOSAzMi4wNi0yMS44MTQgMTIuNjE2LTMuNzU4IDMxLjA2Ny01LjgzOCA0NS43Mi01LjA2OCAxNi4yOTcuODU4IDMyLjA0NCAzLjY1MSA0Ni4zNjcgMTAuOTE5IDYuNDY3IDMuMjg3IDEzLjYxNSA4Ljg1OCAxNS42MTQgMTMuNzQ0bS0yOS4zNTggMzcuNjIzYy0xMi4wMjEgMy4xNTYtMjYuNDU1IDUuMTM4LTM5LjU2NCA1LjEzOC0xMi40NDkgMC0yMi44MDUtLjk5MS0zNS44OTQtMy45MjkiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU3IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNjU2IDg0LjM4OGMtOC41ODYtLjQ0MS0xNS4yMDItMS4wODItMjQuMzMtNi4yNzYtMTAuNjI3LTYuNTI5LTEzLjI5Ny0xMy42OS0xMy4xMTQtMjEuMTM3Ljk5Ni04LjIxIDUuOTI0LTE0LjA0OSAxMi4zOTQtMTguMDQgNy41NzMtNC40MDQgMTUuMzUyLTYuMzc5IDIyLjU5NC02LjY5OSA5LjA0Ny0uMzg5IDIwLjUzNSAxLjg5NiAyOC42MzEgNy4xMSA2LjA2NyAzLjk4NiAxMS4yODQgMTAuMjMgMTEuNTYyIDE3LjQ4OS43MTIgOS44MTUtNi4zNjUgMjEuMDI2LTIzLjIyMSAyNS41NDUiLz48cGF0aCBzdHJva2Utd2lkdGg9IjMuNjU2IiBzdHJva2U9IiMwNjAiIGQ9Ik0xOTYuNzk3IDg0LjQ2OGwxNi45NzkgMTAuNzQ4LTIuNjU2LTEyLjc4NSIvPjxwYXRoIHN0cm9rZS13aWR0aD0iMy42NTciIHN0cm9rZT0iIzAwMCIgZD0iTTcwLjMwNSA2NC44ODhMNTcuNzQ4IDk0LjA3N2wyOC40MTctMjMuNjgiLz48L2c%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNNDEuMDMxIDEwNi4xODFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZIMTAuOTcyYy0zLjM3NS4wMzUtNS4wOTcgMS44NjQtNS4wOTcgNS41MiAwIDMuMjY5IDEuNzIyIDQuODg2IDUuMTMyIDQuODUxbDE0LjIzOS4wMzVjMTAuNDA2IDAgMTUuNjQ0LTQuNzEgMTUuNzE0LTE0LjA2MiAwLTkuMjExLTUuMjM4LTEzLjg4Ny0xNS43MTQtMTQuMDYzaC0zLjQxMWMtMy42MjEgMC01LjQxNC0xLjEyNS01LjQxNC0zLjM3NSAwLTIuMzkgMS43OTMtMy41ODUgNS4zNzktMy41ODVoMTQuMDk4YzMuMzQtLjA3MSA1LjA2Mi0xLjgyOSA1LjEzMy01LjMwOXptMjIuODg2IDM1LjA1MXYtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTcuMTM3LTM0Ljk4MXY0OS4yNTNjMCAzLjQ4MSAxLjc1NyA1LjIzOCA1LjI3MyA1LjIzOHM1LjI3My0xLjc5MiA1LjI3My01LjM3OHYtOC43ODloMTIuMzc1YzEwLjU0NyAwIDE1LjgyMS01LjM3OCAxNS44MjEtMTYuMTcxdi0xMy42NzZjMC0xMC41NDctNS4zMDktMTUuODU2LTE1Ljg5MS0xNS44NTZINzYuMjU3Yy0zLjQ4MSAwLTUuMjAzIDEuNzkzLTUuMjAzIDUuMzc5em0yMi44NTEgNS4yMzljMy41NTEgMCA1LjM0NCAxLjcyMiA1LjM0NCA1LjA5N3YxNC4wMjhjMCAzLjYyMS0xLjc5MyA1LjQxNC01LjM0NCA1LjQxNEg4MS42VjExMS40OWgxMi4zMDV6bTMwLjAyMy02Ljk5N2MxLjEyNSAwIDIuMjUuMzE3IDMuMzc1LjkxNSAxLjEyNS41OTcgMS45NjkgMS40NDEgMi42MDIgMi41NjYuNjMyIDEuMTI1Ljk0OSAyLjMyLjk0OSAzLjUxNiAwIDEuMTk1LS4zMTcgMi4zNTUtLjkxNCAzLjQ0NS0uNjMzIDEuMTI1LTEuNDc3IDEuOTY5LTIuNjAyIDIuNTY2LTEuMTI1LjYzMy0yLjI1LjkxNC0zLjQxLjkxNC0xLjIzIDAtMi4zOTEtLjI4MS0zLjQ4LS45MTQtMS4xMjUtLjU5Ny0xLjk2OS0xLjQ0MS0yLjYwMi0yLjU2NmE2Ljc0OCA2Ljc0OCAwIDAgMS0uOTE0LTMuNDQ1YzAtMS4xOTYuMjgxLTIuMzkxLjkxNC0zLjUxNnMxLjQ3Ny0xLjk2OSAyLjYwMi0yLjU2NmMxLjEyNS0uNTk4IDIuMjg1LS45MTUgMy40OC0uOTE1em0wIDI4LjA5YzEuMTI1IDAgMi4yNS4zMTcgMy4zNzUuOTE0IDEuMTI1LjU5OCAxLjk2OSAxLjQ0MiAyLjYwMiAyLjU2Ny42MzIgMS4xMjUuOTQ5IDIuMzIuOTQ5IDMuNTE1IDAgMS4xOTYtLjMxNyAyLjMyMS0uOTE0IDMuNDQ2LS42MzMgMS4xMjUtMS40NzcgMS45NjgtMi42MDIgMi41NjYtMS4xMjUuNjMzLTIuMjUuOTE0LTMuNDEuOTE0LTEuMjMgMC0yLjM5MS0uMjgxLTMuNDgtLjkxNC0xLjEyNS0uNTk4LTEuOTY5LTEuNDQxLTIuNjAyLTIuNTY2YTYuODQgNi44NCAwIDAgMS0uOTE0LTMuNDQ2YzAtMS4xOTUuMjgxLTIuMzkuOTE0LTMuNTE1czEuNDc3LTEuOTY5IDIuNjAyLTIuNTY3YzEuMTI1LS41OTcgMi4yODUtLjkxNCAzLjQ4LS45MTR6Ii8%2BPHBhdGggZm9udC1mYW1pbHk9IlRpbWVzIE5ldyBSb21hbiIgZm9udC1zaXplPSIxNiIgZmlsbD0iIzA2MCIgc3Ryb2tlLW1pdGVybGltaXQ9Ijc5Ljg0IiBkPSJNMTkzLjc2MSAxNDcuNzdjMy41ODYtLjA3IDUuMzc5LTEuODI3IDUuMzc5LTUuMzA4di0zNS4wNTFjMC0zLjU1LTEuNzU4LTUuMzQzLTUuMjAzLTUuMzQzLTMuNTg2IDAtNS4zNDQgMS43OTMtNS4zNDQgNS4zNDN2MjkuNzQzaC04LjcxOGMtMy41ODYgMC01LjM0NC0xLjc5My01LjM0NC01LjQxNHYtMjQuMzk5YzAtMy41NTEtMS43NTgtNS4zNDQtNS4yNzQtNS4zNDQtMy41MTUgMC01LjI3MyAxLjc1OC01LjI3MyA1LjI3NGwuMDcgMjkuODgzSDE1NS4zYy0zLjU4NiAwLTUuMzc5LTEuNzkzLTUuMzc5LTUuNDE0di0yNC4zOTljMC0zLjU1MS0xLjc1Ny01LjM0NC01LjI3My01LjM0NHMtNS4yNzMgMS43NTgtNS4yNzMgNS4yNzR2MjQuMjU4YzAgMTAuNzkzIDUuMjczIDE2LjE3MSAxNS44MiAxNi4xNzFsMzguNTY2LjA3em0yOC4yMy01LjQxM3YtMzUuMDUxYzAtMy40NDUtMS43NTgtNS4yMzgtNS4yNzQtNS4zMDlsLTUuMjczLjA3MWMtMy41MTYuMDctNS4yNzMgMS44OTgtNS4yNzMgNS40NDktLjAzNSAzLjQxIDEuNjg3IDUuMDk4IDUuMjczIDUuMDk4djI5Ljc0MmMwIDMuNTg2IDEuNzU4IDUuMzQzIDUuMzQ0IDUuMzQzIDMuNDQ1IDAgNS4yMDMtMS43NTcgNS4yMDMtNS4zNDN6bTQyLjI5My0zNS4wNTFjMC0zLjQ0NS0xLjc1OC01LjIwMy01LjI3NC01LjIwM2wtMTQuMDYyLS4wMzVjLTEwLjU0NyAwLTE1Ljc4NSA0LjY0LTE1LjcxNSAxMy45MjItLjAzNSA5LjQ5MiA1LjI3MyAxNC4yMzggMTUuODkxIDE0LjE2OGgzLjQxYzMuNDQ1LjA3IDUuMjAzIDEuMjMgNS4yMDMgMy41NS0uMDcgMi4zOTEtMS44MjggMy41ODYtNS4zMDkgMy41ODZoLTE0LjIwM2MtMy4zNzUuMDM1LTUuMDk3IDEuODY0LTUuMDk3IDUuNTIgMCAzLjI2OSAxLjcyMiA0Ljg4NiA1LjEzMiA0Ljg1MWwxNC4yMzkuMDM1YzEwLjQwNiAwIDE1LjY0NC00LjcxIDE1LjcxNC0xNC4wNjIgMC05LjIxMS01LjIzOC0xMy44ODctMTUuNzE0LTE0LjA2M2gtMy40MTFjLTMuNjIxIDAtNS40MTQtMS4xMjUtNS40MTQtMy4zNzUgMC0yLjM5IDEuNzkzLTMuNTg1IDUuMzc5LTMuNTg1aDE0LjA5OGMzLjM0LS4wNzEgNS4wNjItMS44MjkgNS4xMzMtNS4zMDl6bTQ1LjgwOCAzNS4yNjJjMC0zLjUxNi0xLjcyMy01LjMwOS01LjE2OC01LjMwOWwtMTcuNjQ5LS4wMzVjLTMuNTg2IDAtNS4zNzktMS43OTMtNS4zNzktNS4zNzl2LTEuNzU4bDE1Ljg5MS0uMDM1YzMuNTE2IDAgNS4yMzgtMS42ODcgNS4yMzgtNS4xMzMgMC0zLjU4Ni0xLjc5My01LjM3OS01LjM0My01LjQ0OWwtMTUuNzg2LjA3di03LjAzMWwyMi43ODIuMDM1YzMuNTUtLjA3IDUuMzQzLTEuNzkzIDUuMzc5LTUuMjM4IDAtMy41MTYtMS44NjQtNS4yMzgtNS41Mi01LjIzOGgtMjcuOTE0Yy0zLjUxNiAwLTUuMjczIDEuNzU3LTUuMjczIDUuMjczdjI0LjI1OGMwIDEwLjc5MyA1LjI3MyAxNi4xNzEgMTUuODIgMTYuMTcxaDE3LjY0OGMzLjUxNiAwIDUuMjc0LTEuNzIyIDUuMjc0LTUuMjAyeiIvPjxwYXRoIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiIGQ9Ik0xNDguNTg4IDE3My4xNDZoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptMjEuODggOC4wOGgtMi4zNmwtMS4yMy0zLjY3aC02Ljc3bC0xLjIzIDMuNjdoLTIuMjVsNS42Ni0xNS4zOGgyLjVsNS42OCAxNS4zOHptLTYuODktMTMuODRoLS4wNmwtLjUyIDEuNi0yLjI3IDYuNzVoNS41NWwtMi4yMy02Ljc1LS40Ny0xLjZ6bTExLjM1NS0xLjU0djEzLjQxaDcuMTVsLS4wNiAxLjk3aC05LjJ2LTE1LjM4aDIuMTF6bTExLjcyNyA4LjI3djUuMmg3Ljc3bC0uMDYxIDEuOTFoLTkuNzk5di0xNS4zOGg5LjQ1bC4wNTkgMS45M2gtNy40MTl2NC41N2g2LjM0OXYxLjc3aC02LjM0OXptMjYuMzgxLTcuODFsLS4yNiAxLjg4Yy0uOTItLjQyLTEuOTkzLS42My0zLjIyLS42My0xLjY1MyAwLTIuODM3LjQzMy0zLjU1IDEuMy0uNzEzLjg2Ny0xLjA3IDIuMzgtMS4wNyA0LjU0IDAgMi4zMDcuMzYgMy45MTcgMS4wOCA0LjgzLjcyLjkwNyAxLjkyIDEuMzYgMy42IDEuMzYgMS4xNiAwIDIuMjMzLS4yNDcgMy4yMi0uNzRsLjI2IDEuNzdhOC4xMiA4LjEyIDAgMCAxLTMuNzUuOWMtMi4yOCAwLTMuOTUzLS42NTMtNS4wMi0xLjk2LTEuMDY3LTEuMzA3LTEuNi0zLjM2LTEuNi02LjE2IDAtMi42NTMuNTQzLTQuNjE3IDEuNjMtNS44OSAxLjA4Ny0xLjI4IDIuNzgzLTEuOTIgNS4wOS0xLjkyIDEuMzUzIDAgMi41NS4yNCAzLjU5Ljcyem0xMS4xNDEgMy45OGMuODI3Ljk5MyAxLjI0IDIuNjE3IDEuMjQgNC44N3MtLjQxMyAzLjg3My0xLjI0IDQuODZjLS44MjcuOTg3LTIuMTYzIDEuNDgtNC4wMSAxLjQ4LTEuODUzIDAtMy4yMDMtLjQ5Ny00LjA1LTEuNDktLjg1My0uOTkzLTEuMjgtMi42MS0xLjI4LTQuODUgMC0yLjI0LjQzLTMuODYgMS4yOS00Ljg2Ljg1My0uOTkzIDIuMi0xLjQ5IDQuMDQtMS40OSAxLjg0NyAwIDMuMTgzLjQ5MyA0LjAxIDEuNDh6bS02LjU4IDEuMjJjLS41LjctLjc1IDEuOTE3LS43NSAzLjY1IDAgMS43NC4yNSAyLjk1Ny43NSAzLjY1LjUuNyAxLjM1NyAxLjA1IDIuNTcgMS4wNSAxLjE5MyAwIDIuMDM3LS4zNSAyLjUzLTEuMDUuNDg3LS42OTMuNzMtMS45MS43My0zLjY1IDAtMS43MzMtLjI0My0yLjk1LS43My0zLjY1LS40OTMtLjY5My0xLjMzNy0xLjA0LTIuNTMtMS4wNC0xLjIxMyAwLTIuMDcuMzQ3LTIuNTcgMS4wNHptMjYuMjc4IDEuNTh2OC4xNGgtMS45M3YtOC4xMmMwLTEuNjY3LS44NDctMi41LTIuNTQtMi41LS43IDAtMS4yOC4yLTEuNzQuNi0uNDU0LjM5My0uNjguOTYtLjY4IDEuN3Y4LjMyaC0xLjkzdi04LjMyYzAtLjc5My0uMjItMS4zOC0uNjYtMS43Ni0uNDM0LS4zNzMtMS4wMTQtLjU2LTEuNzQtLjU2YTMuMDYgMy4wNiAwIDAgMC0xLjQ4LjM4Yy0uNDc0LjI1My0uODM0LjU4My0xLjA4Ljk5djkuMjdoLTEuOTV2LTEyLjE4bDEuNC0uMS4zNCAxLjMxaC4wN2MuNzczLS45NTMgMS44MjMtMS40MyAzLjE1LTEuNDMgMS42MjYgMCAyLjcyNi42MiAzLjMgMS44NmguMDRjLjY4Ni0xLjI1MyAxLjgzNi0xLjg4IDMuNDUtMS44OCAxLjIxMyAwIDIuMTguMzYgMi45IDEuMDguNzIuNzI3IDEuMDggMS43OTMgMS4wOCAzLjJ6bTEzLjMyMiAyLjAxYzAgNC4yNC0xLjU5NCA2LjM2LTQuNzggNi4zNi0xLjQ3NCAwLTIuNTgtLjQ0Ny0zLjMyLTEuMzRsLS4wNC4wMi4wMiAxLjY2djIuNDZoLTEuOTl2LTE1LjE5bDEuNC0uMS40MSAxLjI3Yy45MjYtLjk1MyAyLjEzMy0xLjQzIDMuNjItMS40MyAxLjU3MyAwIDIuNzQ2LjQ3NyAzLjUyIDEuNDMuNzczLjk2IDEuMTYgMi41OCAxLjE2IDQuODZ6bS0yLjAxMSAwYzAtMS42OTMtLjI1My0yLjg3LS43NTktMy41My0uNTA3LS42NTMtMS4zLS45OC0yLjM4LS45OC0xLjMyNyAwLTIuMzE3LjQ4LTIuOTcgMS40NHY2LjI3Yy41ODYuOTkzIDEuNTQzIDEuNDkgMi44NyAxLjQ5IDEuMDUzIDAgMS44NTYtLjM0IDIuNDEtMS4wMi41NTMtLjY4Ny44MjktMS45MS44MjktMy42N3ptMTMuMjQzIDYuMTNoLTEuNDhsLS4xOC0xLjUtLjA2LS4wMmMtLjM3My41MzMtLjg3Ny45NS0xLjUxIDEuMjUtLjYzMy4zLTEuMzQuNDUtMi4xMi40NS0xLjE2IDAtMi4wNzctLjMyLTIuNzUtLjk2LS42NjctLjY0LTEtMS42MjMtMS0yLjk1IDAtMS4xNzMuMzctMi4wODcgMS4xMS0yLjc0Ljc0Ny0uNjQ3IDEuODM3LS45NyAzLjI3LS45N2E4LjM4IDguMzggMCAwIDEgMi44MS40N3YtMS4yMWMwLS45NC0uMjItMS42MS0uNjYtMi4wMS0uNDQ3LS4zOTMtMS4xNzctLjU5LTIuMTktLjU5LTEuMjQgMC0yLjM4LjI0Ny0zLjQyLjc0bC0uMTgtMS42MmMxLjE2LS41MzMgMi40Ny0uOCAzLjkzLS44IDEuNiAwIDIuNzM3LjM1MyAzLjQxIDEuMDYuNjguNzEzIDEuMDIgMS44ODMgMS4wMiAzLjUxdjcuODl6bS0xLjkzLTMuNDZ2LTIuMTJjLS41MDctLjMtMS4zMi0uNDUtMi40NC0uNDUtMS45NCAwLTIuOTEuNzYtMi45MSAyLjI4IDAgMS41Ni44MiAyLjM0IDIuNDYgMi4zNGEzLjMzIDMuMzMgMCAwIDAgMi4wMS0uNjRjLjU4Ny0uNDI3Ljg4LS44OTcuODgtMS40MXptMTQuNjM3LTQuNjJ2OC4wOGgtMS45MnYtOC4wOGMwLTEuNzA3LS45MjQtMi41Ni0yLjc3LTIuNTYtLjU0NyAwLTEuMDkuMTIzLTEuNjMuMzctLjU0LjI0Ny0uOTQ3LjU4LTEuMjIgMXY5LjI3aC0xLjk1di0xMi4xOGwxLjQtLjEuMzIgMS4yOWguMDdjLjg4Ni0uOTY3IDIuMDY2LTEuNDUgMy41NC0xLjQ1IDEuMzEzIDAgMi4zMzYuMzY3IDMuMDcgMS4xLjcyNi43NCAxLjA5IDEuODI3IDEuMDkgMy4yNnptNS4zNSA5Ljg0Yy40OTMgMCAuOTA2LS4xMTcgMS4yNC0uMzUuMzQtLjIyNy42NC0uNjI3LjktMS4ybC4wNi0uMjEtNS4zNS0xMi4yMmgyLjI1bDMuNDkgOC44OC41NyAxLjU0aC4wNmwuNDUtMS41OCAyLjgxLTguODRoMi4wOWwtNC40NSAxMi4zNmMtLjQwNyAxLjEwNy0uOTE0IDEuOTA3LTEuNTIgMi40LS42MTQuNDkzLTEuMzcuNzQtMi4yNy43NC0uNjk0IDAtMS4zMi0uMTMtMS44OC0uMzlsLjE4LTEuNDVjLjQ1My4yMTMuOTEuMzIgMS4zNy4zMnoiLz48L3N2Zz4%3D%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2223.18%22%20y%3D%2220%22%20width%3D%2276.37%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-8%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_monologue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22130%22%20y%3D%22250%22%20width%3D%22670%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-9%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22450%22%20y%3D%22370%22%20width%3D%22130%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-12%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_media%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22210%22%20y%3D%22322%22%20width%3D%22190%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-16%22%20value%3D%22%22%20style%3D%22endArrow%3DopenThin%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3Dnone%3BstartFill%3D0%3BendFill%3D0%3BentryX%3D0.089%3BentryY%3D0.085%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3B%22%20parent%3D%221%22%20target%3D%22jplS-JezqsifDDCz6eMO-1%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2290%22%20y%3D%22510%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%2290%22%20y%3D%22210%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-18%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2290.69%22%20y%3D%22274.65999999999997%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22129.99999999999994%22%20y%3D%22274.65999999999997%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-24%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_media%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22210%22%20y%3D%22470%22%20width%3D%22190%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-25%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22450%22%20y%3D%22430%22%20width%3D%22130%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-26%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22450%22%20y%3D%22520%22%20width%3D%22130%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-27%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22450%22%20y%3D%22580%22%20width%3D%22130%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-28%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22170%22%20y%3D%22490%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22170%22%20y%3D%22290%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-29%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22170.69000000000005%22%20y%3D%22344.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22344.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-30%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22170.69000000000005%22%20y%3D%22489.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22489.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-31%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290%22%20y%3D%22450%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22290%22%20y%3D%22362%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-32%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20target%3D%22jplS-JezqsifDDCz6eMO-9%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.69000000000005%22%20y%3D%22389.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22330%22%20y%3D%22389.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-33%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.69000000000005%22%20y%3D%22449.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22450%22%20y%3D%22450%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-34%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290%22%20y%3D%22598%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22290%22%20y%3D%22510.0000000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-35%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.69000000000005%22%20y%3D%22537.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22450%22%20y%3D%22538%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-36%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.69000000000005%22%20y%3D%22597.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22450%22%20y%3D%22598%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-37%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2290%22%20y%3D%22680%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%2290%22%20y%3D%22510%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-39%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_monologue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22129.31%22%20y%3D%22650%22%20width%3D%22670.69%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-40%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22449.31%22%20y%3D%22770%22%20width%3D%22130.69%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-41%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_media%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22209.31%22%20y%3D%22722%22%20width%3D%22190%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-42%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2290.00000000000006%22%20y%3D%22674.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22129.31%22%20y%3D%22674.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-43%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_media%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22209.31%22%20y%3D%22870%22%20width%3D%22190%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-44%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22449.31%22%20y%3D%22830%22%20width%3D%22130.69%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-45%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3B1%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22449.31%22%20y%3D%22920%22%20width%3D%22130.69%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-46%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bpacket_stream%20%26lt%3B%2Ffont%26gt%3BN%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22449.31%22%20y%3D%22980%22%20width%3D%22130.69%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-47%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22169.31%22%20y%3D%22890%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22169.31%22%20y%3D%22690%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-48%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22170.00000000000006%22%20y%3D%22744.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22209.31%22%20y%3D%22744.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-49%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22170.00000000000006%22%20y%3D%22889.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22209.31%22%20y%3D%22889.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-50%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22289.31%22%20y%3D%22850%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22289.31%22%20y%3D%22762%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-51%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20target%3D%22jplS-JezqsifDDCz6eMO-40%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.00000000000006%22%20y%3D%22789.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22329.31%22%20y%3D%22789.6600000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-52%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.00000000000006%22%20y%3D%22849.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22449.30999999999995%22%20y%3D%22850%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-53%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22289.31%22%20y%3D%22998%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22289.31%22%20y%3D%22910%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-54%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.00000000000006%22%20y%3D%22937.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22449.30999999999995%22%20y%3D%22938%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-55%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3DopenThin%3BstartFill%3D0%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22290.00000000000006%22%20y%3D%22997.6600000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22449.30999999999995%22%20y%3D%22998%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-56%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22680%22%20y%3D%22370%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-57%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-9%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22640.69%22%20y%3D%22389.7100000000001%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22680%22%20y%3D%22389.7100000000001%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-58%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22679.31%22%20y%3D%22430%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-59%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-25%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22640%22%20y%3D%22449.71000000000004%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22679.31%22%20y%3D%22449.71000000000004%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-60%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22680%22%20y%3D%22520%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-61%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-26%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22640.69%22%20y%3D%22539.71%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22680%22%20y%3D%22539.71%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-62%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22678.62%22%20y%3D%22580%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-63%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-27%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22639.3100000000001%22%20y%3D%22599.71%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22678.62%22%20y%3D%22599.71%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-64%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22678.62%22%20y%3D%22770%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-65%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-40%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22639.3100000000001%22%20y%3D%22789.71%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22678.62%22%20y%3D%22789.71%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-66%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22678.62%22%20y%3D%22830%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-67%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-44%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22639.31%22%20y%3D%22849.7100000000003%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22678.6200000000001%22%20y%3D%22849.7100000000003%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-68%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22678.62%22%20y%3D%22920%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-69%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-45%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22639.31%22%20y%3D%22939.7100000000003%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22678.6200000000001%22%20y%3D%22939.7100000000003%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-70%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bstream_fd%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3Dnone%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3D%2366CC00%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bopacity%3D80%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22678.62%22%20y%3D%22980%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-71%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D3%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BstartArrow%3DopenThin%3BstartFill%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-46%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22639.31%22%20y%3D%22999.7100000000003%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22678.6200000000001%22%20y%3D%22999.7100000000003%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-72%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22120%22%20y%3D%22250%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-73%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22120%22%20y%3D%22650%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-74%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22200%22%20y%3D%22322%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-75%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22200%22%20y%3D%22470%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-76%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22200%22%20y%3D%22722%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-77%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22200%22%20y%3D%22870%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-78%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22370%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-79%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22430%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-80%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22580%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-81%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22520%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-82%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22770%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-83%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22830%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-84%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22920%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-85%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22440%22%20y%3D%22980%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-87%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22370%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-88%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22430%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-89%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22580%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-90%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22520%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-91%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22770%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-92%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22830%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-93%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22920%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-94%22%20value%3D%22back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BfontColor%3D%23004C99%3Bopacity%3D80%3BfontStyle%3D0%3BlabelBorderColor%3Dnone%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22670%22%20y%3D%22980%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-95%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2270.00000000000001%22%20y%3D%22440%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-97%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22120.00000000000001%22%20y%3D%22400%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-98%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22240%22%20y%3D%22400%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-99%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22240%22%20y%3D%22550%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-101%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22120%22%20y%3D%22795%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-102%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22240%22%20y%3D%22795%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-103%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22240%22%20y%3D%22945%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-104%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22362%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-105%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22420%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-106%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22510%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-107%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22568%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-108%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22762%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-109%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22820%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-110%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22910%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-111%22%20value%3D%22GQueue%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22590%22%20y%3D%22968%22%20width%3D%2250%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-112%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23999999%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3Dclassic%3BstartFill%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2260%22%20y%3D%22360%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22360.34000000000003%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-113%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23999999%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3Dclassic%3BstartFill%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2260%22%20y%3D%22510%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22510.34000000000003%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-114%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23999999%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3Dclassic%3BstartFill%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2260%22%20y%3D%22759.52%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22759.86%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-115%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23999999%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3Dclassic%3BstartFill%3D1%3BdashPattern%3D1%201%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2260%22%20y%3D%22909.52%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22909.86%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-116%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23999999%3BentryX%3D0.051%3BentryY%3D0.085%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3BdashPattern%3D1%201%3BendFill%3D1%3B%22%20parent%3D%221%22%20target%3D%22jplS-JezqsifDDCz6eMO-1%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%2261.12%22%20y%3D%22910%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%2259.11999999999989%22%20y%3D%22213.18000000000006%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-117%22%20value%3D%22non-reference-counted%20back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23CCCCCC%3Bopacity%3D80%3BfontStyle%3D0%3BfontSize%3D10%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.55%22%20y%3D%22308%22%20width%3D%2260.45%22%20height%3D%2248%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-120%22%20value%3D%22non-reference-counted%20back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23CCCCCC%3Bopacity%3D80%3BfontStyle%3D0%3BfontSize%3D10%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.55%22%20y%3D%22462%22%20width%3D%2260.45%22%20height%3D%2248%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-121%22%20value%3D%22non-reference-counted%20back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23CCCCCC%3Bopacity%3D80%3BfontStyle%3D0%3BfontSize%3D10%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.55%22%20y%3D%22708%22%20width%3D%2260.45%22%20height%3D%2248%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-122%22%20value%3D%22non-reference-counted%20back%20ptr%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23CCCCCC%3Bopacity%3D80%3BfontStyle%3D0%3BfontSize%3D10%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2299.55%22%20y%3D%22856%22%20width%3D%2260.45%22%20height%3D%2248%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-123%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3Bcall_monologue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3BGQueue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23CCCCCC%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22260%22%20y%3D%22160%22%20width%3D%22130%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-124%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26lt%3Bb%26gt%3Bpacket_stream%26lt%3B%2Fb%26gt%3B%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3BGQueue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23CCCCCC%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22520%22%20y%3D%22160%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-125%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26lt%3Bb%26gt%3Bcall_media%26lt%3B%2Fb%26gt%3B%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3BGQueue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23CCCCCC%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22400%22%20y%3D%22160%22%20width%3D%22110%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-126%22%20value%3D%22%26lt%3Bdiv%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26lt%3Bb%26gt%3Bstream_fd%26lt%3B%2Fb%26gt%3B%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fdiv%26gt%3B%26lt%3Bb%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ffff00%26quot%3B%26gt%3B%26amp%3Bnbsp%3B%26lt%3B%2Ffont%26gt%3B%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3BGQueue%26lt%3B%2Ffont%26gt%3B%26lt%3B%2Fb%26gt%3B%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bdashed%3D1%3BstrokeColor%3D%23CCCCCC%3BstrokeWidth%3D2%3BfontSize%3D14%3BfontColor%3D%23CCCCCC%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3Bshadow%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22650%22%20y%3D%22160%22%20width%3D%22120%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-127%22%20value%3D%22%26lt%3Bfont%20color%3D%26quot%3B%23cccccc%26quot%3B%26gt%3BPrimary%20containers%2C%20these%20lists%20are%20what%20is%20used%20to%20free%20and%20release%20the%20child%20objects%20during%20call%20tear-down.%26lt%3Bbr%26gt%3BEvery%20child%20object%20owned%20by%20the%20call%20is%20added%20to%20its%20respective%20list%20exactly%20once.%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontColor%3D%23FF8000%3Bopacity%3D80%3BfontStyle%3D1%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%22260%22%20y%3D%22100%22%20width%3D%22510%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-128%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BendFill%3D0%3BstartArrow%3Dnone%3BstartFill%3D0%3BexitX%3D0.228%3BexitY%3D0.132%3BexitDx%3D0%3BexitDy%3D0%3BexitPerimeter%3D0%3B%22%20parent%3D%221%22%20source%3D%22jplS-JezqsifDDCz6eMO-1%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22590%22%20y%3D%22220.00000000000009%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22749.31%22%20y%3D%22220.34%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-129%22%20value%3D%22%22%20style%3D%22endArrow%3Dnone%3Bdashed%3D1%3Bhtml%3D1%3BstrokeWidth%3D2%3Brounded%3D0%3BfontColor%3D%23FFFF00%3BstrokeColor%3D%23CCCCCC%3B%22%20parent%3D%221%22%20edge%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22200%22%20y%3D%22218%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22200%22%20y%3D%22170%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-130%22%20value%3D%22rwlock_t%20master_lock%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D11%3BfontColor%3D%23FF9999%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2250%22%20y%3D%2280%22%20width%3D%22110%22%20height%3D%2240%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-132%22%20value%3D%22All%20fields%20of%20the%20%26lt%3Bb%26gt%3Bstruct%20call%26lt%3B%2Fb%26gt%3B%20and%20any%20nested%20sub-object%2C%20must%20only%20be%20accessed%20with%20the%20%26lt%3Bb%26gt%3Bmaster_lock%26lt%3B%2Fb%26gt%3B%20held%20as%20a%20%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3Bread%20lock%26lt%3B%2Ffont%26gt%3B%2C%26lt%3Bbr%26gt%3Band%20must%20only%20be%20modified%20with%20the%20%26lt%3Bb%26gt%3Bmaster_lock%26lt%3B%2Fb%26gt%3B%20held%20as%20a%20%26lt%3Bfont%20color%3D%26quot%3B%23ff8000%26quot%3B%26gt%3Bwrite%20lock%26lt%3B%2Ffont%26gt%3B.%26lt%3Bbr%26gt%3B%26lt%3Bbr%26gt%3BDuring%20signalling%20events%20-%26amp%3Bgt%3B%20acquire%20a%20write-lock.%20And%20during%20packet%20handling%20-%26amp%3Bgt%3B%20acquire%20a%20read-lock.%22%20style%3D%22text%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfontSize%3D11%3BfontColor%3D%23CCCCCC%3BstrokeColor%3D%23FF8000%3Bdashed%3D1%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2240%22%20y%3D%221040%22%20width%3D%22760%22%20height%3D%2270%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%22jplS-JezqsifDDCz6eMO-133%22%20value%3D%22*this%20is%20not%20a%20full%20schema%20of%20the%20hierarchy%2C%20but%20it%20shows%20general%20relations%20between%20main%20objects.%22%20style%3D%22text%3Bhtml%3D1%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BwhiteSpace%3Dwrap%3Brounded%3D0%3Bshadow%3D0%3Bdashed%3D1%3BlabelBackgroundColor%3Dnone%3BlabelBorderColor%3Dnone%3BfontSize%3D11%3BfontColor%3D%23CCCCCC%3Bopacity%3D80%3B%22%20parent%3D%221%22%20vertex%3D%221%22%3E%3CmxGeometry%20x%3D%2219.31%22%20y%3D%221140%22%20width%3D%22570%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E%3C%2Fdiagram%3E%3C%2Fmxfile%3EöZ– IDATx^ì˜^ÅÙ†Ÿ»»»;. @‚$¸kh)[~ÚRh)iÑ*@[ -îîˆ!@ nÄÝÝm£ÿuÏÇlNN>Ýýv÷ÛÝw®+W’ÝsFî™sÎûÌûÎLÖõ×_@–Œ€0FÀ#`Œ€0H Á²­á„ ¬šUÉ#`Š*› +ª=gõ6FÀdÁ²µ‘‰–Ìë«‘0FÀ#`Œ€(¹ª¬8B&XJnÿ[Ë€0FÀ#`Œ@F0Á’ÑÝc•3FÀ#`Œ€0%›€ –’ÝÿÖz#`Œ€0FÀ#ÑL°dt÷X匀0FÀ#`Œ@É&`‚¥d÷¿µÞ#`Œ€0FÀd4,Ý=V9#`Œ€0FÀ#P² ˜`)Ùýo­7FÀ#`Œ€0MÀKFwUÎ#`Œ€0FÀ”lEN°l_+U¨!•.[²;ÎZoŒ€0FÀ#`JŒ,{³¥5?HÙ›¥ì-Ò¶•Òý‘W¬-íÜ íß+•*+•­ •«1•ëIUI5šIY¥KB÷Y€0FÀ#`Œ@ñ&1‚eÇ:iÃiôƒRŸ;òÀÚ-ÒÂ5‘Ò †T+†7gËiõfiÕf©E]©iíü¯›•`Œ€0FÀ#`Œ@b.X8?囿H½oK\¹¼\±j“´h­Ô¾‘T³rr9íÜ-ÍY8­ë'w]eŒ€0FÀ#`Œ@þ(pÁBS&>-µì'Õl™? #Ôkì<©{s©jÅÔÊØ@š¸0âi©“»–¥V»Ú#`Œ€0FÀ”l…"XVO‘ØÒ¸Ç`©T>,x_².²>¥MƒÜu.ë]Öl‘º4ÍÝýv—0FÀ#`Œ€0é!P(‚…ª/!m[%u87ý;…M]"5©{ÍJ"t{÷E<4ÇÛ™-‰PÙï€0FÀ#`Œ@¾(4ÁB«8‹…C[ôœFŸ®4y‘Ô²žT½RîrÜ·_3W:ÑKîÚ]FÀ#`Œ€0F M U°Ð†-K¥©¯ImOOߎ ÖDè´Êå”ì.¶r“Ô­Yš([6F œÓáVÙö×zeêôÕâ ©‡Û±noýæØ74~ÅzjÂ/ ¬^ÛýVýZ]¯ÒY¥õ_ÔŠ­³S*;ÏRYeôäÀ%Ú’½V¿Ö=¥¼‹ÒÅG5>G×õzR_.zN¯MûcQªzFÖ5ü<$gÙˆªÔïOø@­k¥»¿è£UÛæP©VŒ0…M ÐËÞ]Ò˜¿KÇÜ(•«*m^"m_#mY&U®'Uª#U¨ +SAÊ*uÙ¾ÝÒžÒî­ÒÎMÒŽuÒöÕÒ¦µR©R‡F©‡…±öM«ú¶è¾°§•›ÀÅ]îQ¿–×é÷jØü's.ô†äÄ•CôŸñ?†P»ÚÇkʪ¡Z´irÆ - ÁRµ|ýµÿTíØ³YÌzHãW|¨m»7¤Ä$‘!™•UJg·ÿvíݦ¡óO)ïXßsòhMXù±«s¦¤L,¾¿ø¸™öØ›¯xò³Ò-X*•­¦GNŸu: ­Ùë´`ã½?ëÿ´rëѦúUZÇäÆDGƒªmÜ»Æ'òÙ¼kµæ®ÿ^ïͼ_ëw.S´ò‚™~2÷±´ßÞͯP­ŠM4rÁS)?¿ù:@,s#`ò•@¡ –¥c¤l?|¶´zª4û#©ÅÉRù*á²c½´k“´{»´w§”ʼnYç¹”.'•©(•¯5kKUêKUI[H3–KíJõ«'ÇpãviîÊÈ™-Íê$w]e ƒ@²‚%¯u+•UZûyØRHÉÜS‚¥IµNºó¤šµîk=2æâZtðÒD‚%W™Æ¹©^åº÷”o•Nƒ/uÌ«`IfŒ$SÏŸöz\G7>O±KºÊÉï~È/Á³;yÕg%,Vi§úUZiÓ®Uºû‹“4¨ýoU£Bdw&6ª•¯«9ëÇhKv$Láë%¯ªkýÓœ`Y¾e¦Vo_àòiZ­³jWjª•Ûæê¾Q§©\é N !™, §I+?u–Œ€0¹%Pè‚eܱ²q´zZd~µÆ±›ãm§¬$N¤ß¼Cš¿Z*]*"Bئ˜‡Ó†mÒŠç°°1§Þ[2™L YÁÍÀîÓü*õoý ÕªØØÍŽ~8ûa[þkî}†«iõÎúç÷WipGôùÂgõÉÜGÕ«á@ lw“êUn©-»×iÔ¢ç5tÞîž‹;ÿYýZýL/N¹Y§´ü©¶f¯×£ß]⌟KºÜ£ÎuOÖIs×Ñ?Ü¥õ;–:Ï!aß/WË6ÿ mnpÂè³yÿr3§ý[ÿRtºÃyð"‘šUïª?ö‰xŠ}æaÝÃ,ïîR÷T±LU­Ý¾HÃü[ß,y=§¼àMZK·üpH>ñòàBÏ“:µªu¤ºÔ=Ù…½2íúaÍŠçKºÜ«uNT–²4mÍH½:í6m߽ѕݢF]Øùn÷÷Î=›5~ÅGzwæýêZïTýÏ‘ÿÍ©Ÿ3«]±‰.êü'µ­}¬Ê•®¨e[fè½™8C3œ0*è÷½ožª¾:Ýý:,6|ÿ=5áçêÕð,u­ª6ì\®—§þ^s×çîiY³—®êö7Ï ýÔÕÃua§» Ë͸úKÿ)nœÜôYíØ³åðúÇiëÝ}¿P£ªâ Øœ½Z¿<ê9 ŸÿoÕ®ÔÄÛÿ;¤¥8u¬àö«OÛ*{ïvU+_Oé?Ù…þùË“sÕáÊÆï\‹`¦ßèç=û³5uÕp½ñî>ù%X²÷íЯ>i“SU<€wö®ÆÕ:ºgtæÚÑ9¿»é¸7Ô¡Noýãû+ÜXö)Ú»¦L©²úSßQª[¹…þæ­Ü:Û –pyaFþýÂX¼¼ÛƒjTµƒmš¤g'Þ¨»VºËñ  lw³*•­îBF7ïZ£3ÚþJOOü¥Æ-_á°dòäY¹°ÓjR­³ó°~³ä5}0ûa8°?“_óV7#` U°¬)­ñŽdo•:œ“þÃh+kRتxÃv©b9©léÈá¬qÙž-› kPÓ9o,Œ'[ÁÒ­þiºáè4cí(^üŠú4¿RêöÖÃ_Ò‚u뉩UÍ#´zÛ|g˜NZõ©6ìX¦Ûû|¦µÛkÈœ¿«O‹«Õ¦ÖÑz|ì5Îp=¯ãí:½Íÿ:ñ³|Ë Í]?VÃæ?¡[NxOmk£ÑK^Ѷìõîš5ÛêO_ž¬öuŽs‚…t 6 Çc›\è\¨þ¢¯¶ïÙ¬‡N› u;–èÎÏOpýqfÛß蜿כ?Ü¥‘ ž>¬n<æeu©wŠ&­üD 7MÒIͯv³ÀOŒ»Ö‰œÞͮРö·¸P„arÛ÷l:$Ÿxyp½,Ì@]þ¾Ê–*¯“Z\㌠ßï©}û÷²†r[ïOÔ¨Z½3ãWÖ…îv^ž~¥*—­¡ûú}§²¥Ê9±Ö J['(0¨†ÌyDÛÿVÇ7½TSWÓ÷ËÞu³Ô·ÿ®3z?œýWíÚ»ÕqÅX¾mÄQÚº{ý!íIF°œÛá6ÑöFÇzŠT¡Lצ;Wèö‘Ǹüî;å[Ç’z1;ß·Å`U.W3G°äf\Á3‘`‰×Vãà:ÃöÅ)¿Õ¼ ãT§bSýêØWÝXD"Ô^žò»„‚%7ý€ñÆ{©¬,=Ðo¬*•«¡7¦ß¡æ5z¸ñ8bÁôÖ.0Á‚w䮓FªaÕvúë7çiî†ïs%X¸ ÎëöÕ¿Ç_§Ùx-“,þý²dó4]þž›Ì@¬ñïg&Þà¼?>y´öíßãÞ!u+µT§º'©r¹úï„ÿqã3,Xå‰8½¯ß·.îýYªUÍ#ÝÄÊ»3ïË™tÉø¾UЪ`™ü¼´k³T«Ôî¬üï fywdK»vKxUc7±Y+¤ãÛE÷¾ä­¬#:/XbÝé×°„=,7÷¦›é¿wÔ©N”Ô«ÒÊ0ˆ ;o `DaL‘0nZÖèéBB0 Á!‡Yì·gÜ“cÄcT?>v°»§UÍ^ºõÄèyèëA? Ž_«AÕ¶úhö_U§RS'Xð`ïÙ·Ë-âÆX~òo4f雺ñ˜—Ô¥^?7Ž Á0ÁP¿uø9!+¾ýüa@ïÕÏý˜YU ÞùÆëáoÎva,wœ4\³ÖÖ#c.9 ]2yxžß-{[ÏMú•ËãæãßQ»ÚÇéÉq?ÑÔÕ#,6 Ù‰+?v³È¤Á=Ó‘ÎÖ­Ã{9‘†àC¬à%aæúŠnéÀziêïtBÓKuU÷¿öÈé3µwÿn=ôõÙZ·c±êTjæDâŸS2‚%Z›îï÷Ë÷öG«V¥&ŽcÐKƒ§àÔV×ç–ÜŒ+êY¡LUaÌïܳU¬§Dm}è´‰.¤É‡„yOÂí¶áG:O)‘‡Ñ—j?ëšh¼ïؽÉyþ¨×´Õ#T£B}=tÚ¤¦ùåa †he©”ó¬4¨ÒF 7NÔCßœ}ˆ‡!Y ¢‡Eï¿:æçáûãÈã´cÏÆÃÖÌùünX÷Ìú÷ Ï'ÞÇOç¼®¼ØƒI… þ«·~ø“Ë‚0N¼Sÿ½{ŽÂ‚%Qžgµ»É­+{}úúzñ+nRäþSÆ8oŸ Iý lw#PÐrËÖ†´­Ñ„+ÕdiÊKRÇó¥f‘ ÔOˆ–…k¤m»¤NM,¬À;À Ì5/XøÐ3ãíS•rµ\ØN,Áâ ¼pÁó7Œs¡þãÿÀè3´xÓwaRuþó35UJ¥TºTY}µø%½2õÖC¤üÇ7½D×ôxD£¿ìB‹ÂÉhSV Óã""gPû›](ˆ÷ Ñh®?â?n±.e±`ÏÄ£ß]zX~¾<<„¦‘Ê—©¬œ1×y?nú¬cBÁ’LÞ¸mÚíúrÑó®œK»Ü§“[þDoL¿S_.záÁrb³Ëàˆ–ÉA°Û䢜p—ðuþþà–˺ޯ¾-®u—®Þ¶@³×­/>¯[]dÍïS,Ôÿó…ϸ|o>þm·¦aK͵=Ó·K_× “ë~Lãóõ“^ÿÊ,¹WÉ þDm%Xÿ{uN‰ íKµ‚õO4Þ¹–ÝúŽkz±jVh(B³Ê”*ç& îú¢wJžïkºÿ=§øçüÝyLƒ)Þ"xÖ¥0!w.˜ –hýå……//Ö–—§Þª{¶ä¼_îÕO˶Ìt!’O\ª{·¹°ÀkzüÝyŸ›ôk}·ì-W$ÏÏA"Á+OÆ)ã5œÈ7 iá¼9–Œ€È|…&X@³r¢Ô°WáCš¹\jßP*e}Ká×Îj`'Û°ÿ;m‚3˜0æ¶vÈÊÞ·Óy'¢mÊŒ?ë0ÐG-zQëõuë‚%¸u²7´½ç&Ü‚h‹î†|ÝíÖ±`Ð2ä×¢àñÞ—p~'4»TWwÿ»[$üÒ”[ܯ½`!4è·C;',ÉäM°x£š\ø·5>¡ÙeººûßÜÂç¡óþuHµWm›¯K»ÞïŒ)Âa‹ §h‚#¯GƒÓÕ­Aµ«}¬êTjîÂêîûª¿ ¹ &/X–nžî~OÂh&”ÊoIm“7^YçÓ¤zgw=3âÌŒ“Z×öüGN¹WÉ<׉ÚK°„·Ëö‚åן¶w†:ëYø™_ÃâÚTú!XÿDãݯÂÛ÷úô?ª|éJÎó–ÁÒ¼FwÝÞûÓœâŸt£¾_öÎ!8½€®)!Ìïò®ºµNûö‚Ãð',„q±È^¸PJÖ¹L_ó¹Ë'ZyÑú7ÚûÁÂøý,ñ,íÙ+mÙ)Õ¨ cã­;#¿ ß¿g_$„lo`“¤Šå¥J?æ·u—´;ÆäL…rRåòéï0ËÑ@ ·‚Ňî°KÞ âÿ1€0tñÖD3(Xè΂w ^ _ÄÊi­žã=‰fð²Æåw'¼ïÔ>8:ïI¨GÇ:½õÖŒ?«B™Ê‡Ã,܃ŚÖ;t®w²nÚí°™a®óá\,@Ç+@"ôöÎYÿ­þöí… K2yø¶=9~íkz¦¯ù"jHkX3@b;kå0û·¾Á­Ëabê1ÐqÔsªT®ºs©3´˜aö!cx¶Wí ÝûvæœA1 Í/u~Ç;¢žµã I¶o¾eX7tY×Ü”dKŲÕÇ%æEšÏ#7ã „ámÀ` §dÚê 3å„ÃÅÚ}·ùYxï½ó‚Ždû!\×DãýÈFƒtj«ÿqaNx%üš¿D‚%¼…z°é,¼# ËMHX,ÁâCÂX†h!±.†pTÞ–Œ€(Ò.X¦¾9Á>Zj?Hj7PzKäì’ÿÙ·“Öω~_µ¦R÷+¤-#k^æ‹\×ù¢Èß3–Evcûâ£Ü…¾šùýI"b„4vž´zs$¬u}i‚Èa¤àýSK‹‚Ë× ±Ò¯«Ì?VW÷é(UO ´ŠÆ0±ZfÜ âèÙE‰™Ý/=ëv…"ô‡¢XÐM°üüȧճá™Î{Áž…úìîCÒó“or³ýáÃ)1¼ÿÐ{ˆ„…mÎ^£3ÚDvúÓ'©Mí£“,-jôÔm½‡¸õ W|ìÞÆJ~0;ž!NiõSçMòâ,ÑòM”ǹþàv,Âkƒ÷ˆµ#ÿ,èýÈ#µÿÀþÃÝ#øšVïâ­0’0Ȉ+BøXÐŽ1ù鼺]Øð^°»"Ñ?ÿsäSîúQ‹^Ð×K^Óÿ:N;÷nu"ár\“‹Ô®ÎñúË7ç¸õ:átÏÉ_»ÅÌß.}Ãíþ…G‡Ýð˜Ú–Èò|ël=xêX·V„1@ð(°Ðßç‘›qE=ã-ºg}K¢¶ÞÝ÷s7a‹Wí@Ò+»=¬Þͯ¡„K²†áÈ ú²¯kK*ý€AL‰Æû‰Í¯p¡ƒ¬éúrás:½ín²€ÅþxuvíÛvH½óº}v,Ápÿ{ô‹.Œô®ÏOtë8|J‡`‰Ɔœý’Èîoìþ†ø>ÿ?ª[¹¹°Ê­‡¥z…ú®oëÏyÄ= Œ_ÒÅ+lÉ¢A ­‚‚!•¯&U‰lïîR¥ÚR½®R£#¤oG¼)”°`ÁÛâÓîmÒÖ‘ÿùëÆ=)±þ…Ôùb©U?éÛ9–ÚU#‹çIüŸŸ“ø¿#ùkÛ7ŠœÑÂ!‘KÜXÇß?g¥4ûÇrÃÝè¯ æ­«kV–zµ:è)ÃÁjYTäV°Ð> l<$ °¬;AT¢ÄÌÿ´ç¿ÜNW¬k!,ëœö¿wÆ4†Û¾{,ä…X¸¤ë}ΫÂ,:; ½1ýn·P<™0ßÞàf·/<-±F ;puoÐ?g:k?ØYˆ”Œ`I”‡÷.ÖöÃvQc¡6Ѷ5&,ëÒ.÷ª}uàÀ>ÍZ÷^ŸöÇœm\™¿ Ó΋œÞïθß“„!¢ø9­k©ó:Üî¶Ÿ¦ÕúËtÇçÇ»ñ‘j?„Ça¼ñŽ"ì ã›C ¬[©¹Ûί%[‹…V~ êL9<lÊöÙ>¥C°Äz6½w.‘`á~vðBÔ—.UFß-{G¥³Ê8±É¦„VÆZtËÃBží뜠 :Þá6`Mx4÷Úú•¢òɳzƒ»„¥cÑ=O iPdƒ¡˜É{T‚Åÿßßè¯kØS:òçÒœ#‡K’޾Aªß-o‚…|‚çûy‘mñ¦×>ºè –AGØH2F ?0SÌ.B»÷íÒm#ŽÌxƒmŽÿuÖB·#;#Y2F yì’Ç)öYYYNˆ“ðáŠvnRò9Û•FÀuiõ°p"ýð[#H¼§„µ+¬C!,˜’,^ ßñ‘Í´óÇ®Š5#ÿÏ‹‡%Úý“IË~ôºà‰!qnK½jR™¬ o_JR½êE}hXý@áÀsÀÚf¤ñ.Ä‹Ÿ/¼ZZ23ìgwøÛ刴û¿)U³z"A€-—ÿÔ÷Kçi2÷Qw,!˜¬5ºÿ«ÓEÈ™%#`J&´ Ž}\Z=õp˜„‚qýÁŸçE°„sO·`Y¾Ašxèf;®Hé÷î(U­phÈY¸>ˆ•c.\2G–µÚä;„ý}Àní áGœ Ÿé§R³yÁ­'|èÎÚ`§2¿ƒR0Ø­F Ä`½ÜYmã΋a­!ˆLX¾jÉ’K í‚…u,+&H[–IÛVK;Öôˆôú‰Ô8rp² ‹¶†%ÍÃ’ß‚…üYp—…Å‚»„Õª"Ð>¾`ñëcJî°²–#`Œ€0FÀôH»`‰V­ ÿˆ˜ IV°„×°?y‘ðÚüš¶*îÝ!ò³`ÈÞ¢^tïÄS”Eûáv°0ŸúeJIgô”6m—FÿxN[ÿnRù²ééËÅ#`Œ€0FÀƒÒ*Xð®ÌþøàÎ^ô°æEF,Á’h—°à¶É=KM;¸­1![ 9ï¥B¤~§/Ä »v‘Ömˆ™ $,XXp¿éànî¾ Û¤µ[¤ª¥¾$Îsù,r¸+³ZhûbÎ~iT3FfÉ#`Œ€0FÀÜH«` î®N²kX¢5#xK4Á²c·4rZjâ ﱉ–cð¾à.Ñ®ÅÛƒ×Ç’0FÀ#`Œ€0¹#VÁ²wWäû?î°¬Rx—°5Ó¥M‹žtô¸øûbt ãzräHN­ß»?1Œæu¤Æµ"×á9™»JªS5r6 ç°à‰ 'ÿ{ÿs„÷nÞ.mË>ôjªlÓ@ª`¡b‰;î0FÀ#`Œ€01¤U°ä…r8D,/yÙ½FÀ#`Œ€0FÀ&XŠG?Z+Œ€0FÀ#`Œ@±$1‚…í‹w¬“êu=¸0?Yâ;ÖGÂÐX°¿eiä.Ö½ø4î é¨_J³?ŠìTFšü¼T±¶Ôôx©Rmié·ùÔiùùÞ‘<ȯL¥èù³f‡kI\Ï¿÷ìŒäG^ümÉ#`Œ€0FÀÜÈÁ’û&DÄ‚eÏiÕäˆp©Þ4"8øÙJ1ÄuAÁR©Žä×ÖÅ ÿFlÇæ¥‘3eô8˜?ÿ&OÒºÙ‘¿öÖ͉ü»U?iÁÈÈß–Œ€0FÀ#`Œ€È=b!Xˆ /ð’.?¼)•©4x@¼` ®åºÎGîãw>–¼øyXœð„ùò{<6s>’Ú 2KÝiŒ€0FÀ#`"Š…`!l O’ÓÂKBØbƒ¿IˆªåCÀø=ÿ&,Ì Dž~Nòy-ù9„ëñ´ðÇ—AÙ G?6ÐŒ€0FÀ#`Œ€È=b!XrßüÔïL´6…ß—­x0d,õì#`Œ€0FÀ#`<,6Œ€0FÀ#`Œ€ÈX&X2¶k¬bFÀ#`Œ€0FÀ˜`±1`Œ€0FÀ#`Œ@Æ0Á’±]c3FÀ#`Œ€0FÀ‹#`Œ€0FÀ#`2–€ –Œí«˜0FÀ#`Œ€0&Xl #`Œ€0Ât™ IDATFÀ#±L°dl×XÅŒ€0FÀ#`Œ€0ÁbcÀ#`Œ€0FÀŒ%`‚%c»Æ*fŒ€0FÀ#`ŒÀ!‚Åp#`Œ€H¬tdby#`Œ€t@RÖõ×_Ïß–Œ€0FÀ#`Œ€0GÀKÆu‰UÈ#`Œ€0FÀOÀ‹#`Œ€0FÀ#`2–€ –Œí«˜0FÀ#`Œ€0&Xl #`Œ€0FÀ#±L°dl×XÅŒ€0FÀ#`Œ€0ÁbcÀ#`Œ€0FÀŒ%`‚%c»Æ*fŒ€0FÀ#`Œ@Ò‚¥víÚâO´´~ýzñ'œbÝc×GHŸ6‚ï6l<Ø÷Ô¾ö} ¾l<ïñŒKZ°´oß^íÚµ‹šçœ9s4{öìÃ~ë»>‚ÊøD8Øx°ñ|yØx°ñ`ãÁ¾§ö}´ïcð=`ã¡x‡|,Ñf?×­[ÓÃR§NÃêaלA5>’Á—„6¢{Xì{aß ÿlàq°ñ`㡸Œ‡|,±f?“)Ì®1FÀ#`Œ€0F dða~±ÂÀÃtR 3ÁR²˜µÞ#`Œ€0FÀä…€óKVW$-X¼û1V¸F^*m÷#`Œ€0FÀ#P2ä›`)ø¬•FÀ#`Œ€0FÀä',ùI×ò6FÀ#`Œ€0F OL°ä ŸÝlŒ€0FÀ#`Œ@~0Á’Ÿt-o#`Œ€0FÀ#`òD ÕµñI/ºÏS­ éæß·o¯7–.Õâ;RªÁ9iç¾}¶zuR÷õ¬QCÓ·lÑžýû“º>/¥«¬RYYz´GýjÒ¤”ª“ÛûR*Ä.6FÀ#`Œ€0?HZ°¤º_r~Î’t A!%XþСƒþ1w®vìÛ—ßÍV*eÅc”[á‘ÛûòŒ`Œ€0FÀ#P, $-XR5ËZªVÕiõë«l©Rš¹e‹zÕ¬©ûgΆù_ºw×;Ë–iÌúõ:ªV-µ©REM+VÌñ° jÔH«V>5»véÕ%K´÷Àõ¨QCg4h઻tçN÷óA æxXN®WOíªTÑ,ˆ*úÖ­«‹š6Õ¼mÛôÌÂ…Ú²gONÓon×Ns·mSõ²eÕºJ}ºr¥û»i¥J¿aƒF®Y£¶Uªèü&M´wÿ~•)UJ¯-Y¢%;v¸ë.hÜØ•I{ñÑž`YÍ*UÒé ¸{i×Ë‹kãîÝz¸[7MÞ´IYYYîgÑRPx4¬PA—5k)++K¬X¡Ù[·ªBéÒºªysÕ,[V¥³²ôæ²eZ¸}{Žg¦r™2º©m[ÇlÁöíùÑå–§0FÀ#`Œ@ 'P¤ "ä†6mtÇôéÚ¾w¯îéÜYΚ¥ZåÊ鼯µuï^½°h‘®lÞ\S7mrÆ<†>†÷ùë¡Ù³µÿÀý¬U+ÍÚ²Eã6nÔŸ;wÖ=3f¸ü®nÞ\_¯[§®Õ«;Á²6;['Õ­«Í›çÄM¬ô—nÝt÷?æa¹©];MÙ´IŸ¯Y£þõë«gÍšzhÖ,'`níÐA·O›¦#kÖԺݻµhûv'žŽ¯][OÌŸïê8vÃw½òåÕ¸bEMÚ´I¾,Êí:èY³´kß>—O·5ôìÂ…z¼W/ýsî\ÍÚº5fƒ‚å–öí5lÕ*MݼYˆ—_·m«Û¦MÓY :¡‚€iU¹²N¬SG//YâËÍS¦èWmÚhèêÕš¾ys Œ¬ùFÀ#`Œ€0ùE È „Çóg;W4k¦)›7;ƒÏÆ)õê¹ßÝÝ©“þoÖ,gx#X:V«¦Š¥Kë½åËÝ}}êÖÞ‰o×­Ó…Mšääç!³†¥A… ÎKsç?8A/Å,®X¡ùÛ¶9!Ò²re½²d‰ ëÞ]7Mžì„@ÿ ´ïÀU.]ZåJ•rõÁ{„‡‘2mófçñ ù²¨ß¯Ú¶ÕÒ×ç ,vï߯GçÎÕ“½zé'MryÆJ^°üzÒ$ý³gOýfòäQF÷Íœ©kZ´ÐðÕ«7Ë'î{¬Gý°e‹–íØ¡W®Ì¯±iù#`Œ€0FÀ9ÁBh×#s渮c:" ^… .,é’¦M¡ÿ·9sä×°tªVÍyY‚‚…ð*ÂDZÂëL–ÎÕ«kÓîÝ.¤‹X¾Ü…K!XšW®ìB¾0úÿÞ½» uë¦ÿ̟ﮡž6ÌP„\ÆÖ»n]-ß¹So.]š#XêÿÆõÀÌ™‡U Ë 'Æ­s"ÁrïÌ™º¶E X½Ú‰“ `y¢W/ ]µÊ‰ªgÎ,µ;ö¬#`Œ€0FÀ©®/Ò‚¯ !bx¬7Áè_°m›>]µ*G°”/]Ú…ŒýåǰÿiÕÊ…?ὸ·sgaœã¡Ác3qÓ&·f…0ÂÃnëØQO/Xw§1ÖŒà‘®_a8O°àaÁ»që´iÚ±w¯óh’E˜ëjF­]ëÄk^XK‚8ñeeïÛ§û»vuí&t­KõêªR¦Œ¾[¿Þ…„%+XØ%Œµ6>´«QÅŠº¡ukýqút'ž`üÖ²e®^¬µyrþüœ5,§Ö¯¯Ö•+ë? §ÇZaŒ€0FÀ#ïR]Ÿ´`Iu¿äüh)!ZA eàEY¹k—^Z¼XM*VÔ:¹Y¶2îÆ}íYtà€»žP1þͺ‘36Ô´lçN²\tO™¬‰!ÏìÛ㉠Č…ùäíS"Á‚‡QнF ·†æ³U«tõaX›÷ìqkp&²!+W:OG°¬ÚåË»û cã/Öºìì” bäÒfÍø¿»l™óøà•b]O‹î)óƶmÝÿ¯Ö®Í.·<€0FÀ#`Š|,ÅŒ“5Ç#`Œ€0FÀB `‚%Ÿ ³káQáÄ:˜q6äS©y˶v¹rº¢y󨙼½l™VìÜ™·ìn#`Œ€0FÀ#",)³Ë€0FÀ#`Œ€(8ÅS°1¡àZIF “L8"“jcu1FÀ#`Œ@ž ¤º6>éE÷y®Y^2@°˜hÉ A»·(@¬˜`)Š=gu6FÀ#`ÒH iÁ’ê~Éi¬cD¬˜`I+Rˬ0ÁR:ɪhŒ€0FÀä7¤Kª±fi­¸ –´â´ÌŠìo»h÷˜®®²U«V-•¶Z#`Œ€0F ÍL°¤¨egÒE`ë—íµmT;U©RÅKº Z>FÀ#`Œ@‘#`‚¥Èu™U¸¤0ÁRRzÚÚiŒ€0FÀÄ#`‚ÅÆ‡ÈP™&XêÖ­«óÎ;/‡ÖþýûµeËMœ8QóæÍ‹J±_¿~jÕª•žzê© ¥œ÷jU¯^]7ÖŒ3âfV£F ]|ñÅ?~¼cVØ)\ï«®ºJ6lÐ!C ´ja.ÉÖ#YîÚ˜8…å¥ÿ›4i¢R¥JiÉ’%‡•,¯‚æ@½6mÚ¤>úè°¢ãµ'Q=O;í45kÖL+V¬Ð§Ÿ~šèòBû½ïï &ˆ?¹My7¹-3Ú}Œ¿ž={jÊ”)Ú»w¯òûÝ/ÿN:éÄOÔ‡~¨]»vÅ}¯’OëÖ­õßÿþ7%É–¿jÕª”òõ‡yæ*“"~SªkãM°ñ·ê_™*X00œÊ”)£víÚ©Zµjzÿý÷µfÍšC:#++KˆœÊ•+káÂ…ùÒQ”qàÀ|É;ÙL=öX5mÚTo½õVÜ[Ê–-ë®C`È¥#å¥ýáz–á6È0FwïÞ­D†@²ÜsË9/l£•™ÃóüóÏ×êÕ«õÍ7ß–u²¼rË!·÷Å,ñÚ¯<Þ%W\q…-Z¤qãÆiãÆ‡½s û}à+”Š`‰7Öò2nrÛwÑîcœ~úézñÅH(LÁÂ7§N:N´V¨P¡ÀK°|Xä&…yæ&¢~Oªkã“,©î—œV¶è>­8-³¢A SËäÉ“5vìX±Q£F8p ›AD”\xá…Î{ЦMÍ™3G5kÖÌñ°ÔªUËýC£yóæâÿx%V®\©Þ½{;á1räHg¨VªTI't’4h ={öhêÔ©îéšk®Ñ²eËT¾|y÷>öõêÕÓ /¼ ¼>¾NcƌѴiÓél~‡¡‹€høöÛo]yÌvyä‘®ÞåÊ•sâ‹ßq¯7mÆ“R¿~}-_¾ÜÕõøãW‡rÊxæ™gœHãç”±mÛ6—õ ´céÒ¥ÊÎÎ/n¼UÇ×æÍ›…¸9î¸ãÔ¢E —7m‡{´öòÉ'êÞ½»:w+:#η+ÖHïÓ§Ïaõ¾üò˵~ýz÷‡¼¨Ïˆ#ƒxõA„sÌ1Âã±cÇWÏ™3gº¢™I‡7¿[·n¾øâ —o0Åó° Š™Iåã^ºti×W£Fr}æN߯ªG°<ÆT´þñý¿ü»[·n9l1”¿úê+7Ãìcü¢‹.rm›;w®Ë;vÔ×_íÆ÷ÑG­.]º8QÏøŸ4i’3¶6lè .“_¬z]zé¥nR€Ä¸$Ÿ` ÍX¼è—`:âˆ#ÄŸ×_Ýõ‡Ÿ±þøã]â§X¬Bgžy¦<1äÍ 0³nüÃŽYÉh†9†uázÚ0þü!DÆ s÷ûð>ŽáöÛP=BÍh?í ¶ÁQÌFÁzÃ|ô" ƒ-Q}˜õGx!à00é+Œ›wÞyÇwÉ%—¸q×¾}ûºv†CÎâ ÆFã€8yP¿éÓ§Æ=V=è7Ÿh_¢þ Ž_8‚DÑŽ8A†è&ÊF #’+ˆ^®ÿüóÏsê‰áãÇõÇ0ñz¬zqݹçžëÚM‡½sAÁ‹†O²‚…qk˜={¶o<‹<ˆl"(Ï8ã 7™øÇ°¤Î/¿ü²ûY2ãÑ PÞ/¼Óð*ðœûü(v!D-Í7ß|Ó´´QI?ñNC4Áâ ÞdêÍ †’^pÁQÛÇN’çhõŽ7.`±Þ5ž=츎g›ç—÷ïHØòæù罃—^zÉý<™çÆ{ö0ƈ'oÊð‚!Zþñ ïÄÏÆ>bŠïEX° Fã;ïA‚'Ïù0¾KäïßÉ|Ïb«Xíc’"Ì“ïß#Ä1ßÊãȯ脱j-ÕK&ô‚ÕÁ¤@¦ >. |øHñqâcÎÌ>VŒ ^´¤`Ø€7L™‘D° *ÌŠòQ4h{aóAàÀq‰áì_ú h 4>Œ×ò3 ŠUØ`gÆÏ"Æ<Æ F73ß„!ù°.ŒuÚFüœvÑn>‚>,£Ó— /Bê‡á‡wcÁ·)hxPgÚ‡±Câã‰QŽ0ãw|}ø?M¸…Ûï @Úf)ƒ€XCNÁz“/÷½öÚkî<.´=^}hÿàÁƒ]]1Z1Òýl¾7*¼ôÿ÷!%¾^ñ F‚…¼iÆŒù ÖŸ±«áö'êŸðøE„=û쳎 Bš1ÿèE$ò\}õÕNà`Ô0Fù?cÃ'ø|0þÐ~ŪãÏ‚nÂí –x¼’,´m<ùõaú+V½ã‹xïš {ÿ. †„ñlø‰!/ðtÃ9™çv0|þùçÝ»K|üX‹–?yÇZÃrå•WºI3?iBÂ6,X;_>ïnÞiLh1ÉÆº¼±¾|ÿïhã Q«}ažm¼‚~â)]aÃi0Eò- ,ù†Ö26K SK˜†3ÉÑb¶£ ¿èœY=f‘Þ{ï=gˆbôa|óAd&ÙKÄÆ(F„¹á‹8"|Å'fó'ÁÀÇ@dFÙ‡ùk|L´õ6?ûÙÏÜ,¡7x‘âñ 1_oop!𢄠>DÔŸYIêμ8Ü,ÁEîAÈú0˜H€Ì@"Ÿ¶uíÚÕ,œta/@¸ß¢ – ×dëC¸ff‚ÌÒWRêåÅhÇ»ï¾ëa(ó³h‹ã$f(ñNGh3±R4ÁK@Å«ùS>a |€0ÜùÐ"ØàM¿yC”kAP¢]¼ÐÁ€D1î˜í×?V=˜•ö)•þáŒfsñ¨cÉÃFaAgŸ}¶óJcx¨ð006™AF|Ç,¼(ôk´zljžmÏ?š‡%–`áÚdž/&ðÊÐG0ã}€G’ßÅÊ?ž` {Xx.y>yXÂãÎ{Xü{4–‡k¬q…Ç K´öá9Æûô8ó!˜YÈ·ŠW¿¸¦Tׯ'½è¾PÙ–BÅo…L,ÁE÷A2é,o¼ñ†3X0v˜Šχ "€™ë°`ácãC¥‚¡TÁú1+FØ÷’ Üù$¼üÁƒ+ž±õ„`Å›çƒÈ‹Ãư! fFɇ™W ø`h‚&,<‚ îcF<1ЩÜñf…ïãƒÈÌ*³ûÌh#ððð!ÄÀÄ`æ£ö4ë÷;–`‰U rÂéh/€ÙA¼fx‚ˆÏ‡7ž+êN{0Úù]°.ñ †oÚ†ÈA°ð`ëOŸÁ/Z=‚[cèôïß?©þ¡ &úoí`&•™OÖªýŽƒƒ1ÄXõ1øp ¾áv=,ðU/D³Æ”m3…àxˆÇ+X_/ð™xÀ†+‚c×oxm”ÃÌÖ:í¼>v|H¢…ƒùÇbf ã‘#F †F³Ìÿ’ÌÖ²^„Y$/¹\ì*#`Œ€0ñ à]!d’[ÖYY*8&X ޵•dR"`‚%%\v±0FÀ#PD¤º6ÞKéX«fÉ#`‚¥äõ¹µØ#`Œ@I êR“¤Kªû%§¶-ºO+Nˬh0ÁR4úÉjYt øÅ³þìŠTZmïTîOçµÁEÀì°Ü.\Žßn¸ cïóÂ9œ,/#`2‡@¾ –Bm¢ –BÅo…,…ÃÝJ-9rkH³Å2;°qÎÛs–Ha¦d [³ 2ÛÒÔÌKÝaÁY!ñRn9ç¥^v¯0™MÀKf÷ÕÎ$MÀKÒ¨ìB#Îà¼Náfëkv•ãœ<,¤ºsV8èÍ{PüÁfÊõý$ζz2ø=g'p^bÎÃaÇ:Ο —Ë™œûóÉ'Ÿ¸<ƒ©J•*îälvwã ­ä9»¾q¾g¬]»Ö¨I9ÉΧ¸âŠ+rŠòçƒøs"8Q…Ä´Ÿs 8û†ÅÅp€í¥®¶Êá…œµÃ†¬çÏÝñ™Çã¼bÅ qþ¹áÏî™2eŠ;?£N:îTyꃸâ÷|Š@äpNú.ÔmäÈ‘î0OÎðàÜβdŒ@Ñ `‚¥hô“ÕÒ$$`‚%!"»À¤D€äØQ€qŽ0@ $#X0ž9xrÞ¼yî@:„Bø PŒjŒw²84a‚QíËŸ_¼x±3Ö}¹ðÁtÞyç¹ß!Ø:•:#"„.ºè"W>‚ŠTHˆ¢d "‚C>)›Ó³É‡Ã9 :S¸ƒùƒ¸¡ŽÊa‰±ôB!Á¡ŒÜ‡x ¦xœñHq6"ˆzp˜#õò'Ë#Džþy·U9âáòÆo8‘vÎ9ç¸Ãc9\:qÀ+Ñ‚ÀzóÍ7 ÝÛ•Ò€´‹@ &`‚¥w~A4½T–ôd/iËéwS¥ŽÕ¤ß´•Æo”žZP5(9e˜`)9}m--§œrŠó `3K¡ËŸd 'e¿úê«®²á5,DF3 £OÅÛo¿-_î /¼à®áäì^½z¹rƒ‚…ÓÊ/¹äw2û˜1cÄ)äℜaàóÿ={ö¸»Ï?ÿ|çu ¼d uB tØŽ•0NpÇÛôì³Ïººâá@ p¾r(/xÊ8u@¨!¾üù>]»vç!‘ðtÀ4gαàÔu_„ÔàÁƒø;v¬k\Zr:q IDAT¶léÄ ^TÙ²e]=è;‚1ˆ(¤,³­9BÔ’0™O ÕµñI/º/Ô¦Û–BÅ,ÜKÁu… –‚cm%• gžy¦6l¨gžyÆ5˜+¼,É ªûk£ ¼C† qyå6jÔHO?ýôaå u4h3Ü1Òƒ ׆kðôð/áS¹,„ÀQ/Ä ñ€Hyî¹çœ8hÛ¶­ c ^yå',>TŽûÎ=÷\ç­!ÑþîÝ»ÇäLý4|ðV¯^íî¹üòË€|çwœx!oD ž$BÄX#Cù:î Ÿ4î…˜0%c4[+@É"´`Iu¿ä´b4Á’VœyÉÌK^è¥v¯ –ÔxÙÕF °‡%èéÀP'äè»ï¾s¡N„$!4¼aŽ%(HR,Þ“‘¬‡eúôénÍÞ D!W„‡õèÑ#Ç+ƒh@`äE°À •ýû÷çàà BÛ ?~¼óf ‚‚…Ÿ‡×®ø âq{X^¬ÿY¹r¥>ýôSuÖYN@!BÞ}÷]·Þ…u6ˆÂés&Xtû½(~’,©Æš¥• –´âDtœÓH:¶¶T¹´´l§ôîriÎÖH1M*J5•ZT’ö¦n’ÞX*eï—L°¤µ+âff‚¥àX[I%ƒ[úŽÄÌ=ëPX/á×’à=¹òÊ+(A´`$³ ˜7Úó"X|¹³gÏÎ)—5!ѶS¾à‚ ÜzÔS>Æ9‹ó1à»té’³Ö±Ezï½÷Ô¸qc'*Xëo[c®CÎÅ"w¿caÿòåËçcݺuN<ôïßß…wÁ‰¼ ù"Œ >ñ¶M¦Nñ8û5,[·nukXýÂÓåCĨ ZxxUX»C:t¨«O<ÁB?ž}öÙ®}´Ë’0Ń€ –âÑ)µâìFÒY ¥Y[¥[¤SëIKK÷ΔÖgKt•*•Žˆ”æ•¥Þu¤«¥·–™`I t/6Á’G€v»À#AXF2ëB.\xÈn]„2a,žÄ¤ûÝ´ò"XÂå²ÛÞ#‚ Áï†GaîܹÎp§>üžõ'ÔÏ ïÉÖ¼r†wƒ1F{ „œ¢Åbÿ;v¸²8¼=¼!ˆ¢D‚%g¼&ˆE"7¶oß.ÄŠíf¯#P|˜`)>}™TKð<ÚC*%ÝúhŠU8f«‚0F WL°ä [ѽ©Nyéþ.Òê]Ò]‘ ­ÃÒ™ ¥ãjK5ËJYYR™¬ƒ×[HXÁõ½ –‚cm%ü$€G¡hl'ÌB¼l×\;’Ÿu°¼€0™D Õµñ&X2©÷  .õÊK÷v‘ÖdKwN?¼À£jI×µ”æo“^_*•/%ÝÒÞKtÍaE˜`) êV¦È¬9am é ³úæ›o´~ýúü)Ìr5FÀd8Tׯ'-XRÝ/9­œlÑ}Úp öXˆçäwS¤û¤5¤þõ¥ï6HõËK§Ö¬WaÝJ·êÒ mL°¤­RÈÈK °ìR#`Œ€0F ÈÈ7ÁR¨L°¤ÿM"…E÷¬S9­¾T¥ŒtÿL©}UéÒ¦Ò‚íÒ—k¤ÓH•ÊDv{f¡4e³™ÖΈ“™ –‚"må#`Œ€0IÀKAÒ.¢e±&弯Òѵ"bdùNé½åÒÌ-R¹RÒOZJªI›÷H¯/‘ê–—.l"-Ý)ýe¶ –‚êv,EÚÊ1FÀ#` ’€ –‚¤me|$P Û—žwÞyQ)}öÙgîL…LIá­RƒõJtH`ðZHàÿûß”šÆ}­ZµÒSO=uØ}áòSÊ8p1k(غ6“w¦òý팒ðÖÂéà¯ßs›²÷Û¯éjw¬z‘?Û³Ír8ÅëxíŒw[4³eòŒ3’Eå® ?¹Í'¥B øb,eCÞézî}Ry›)œáÂ6ÜlÉÍn{ñÞ™ÜmV\.˜`É4»Åd"â$XV¬Xq˜8Y´h‘¶lÙ’gôYYYî켦xcÙ²eÝ!~z‡aÏ€ÌÁ.?7m-_¾¼«÷çŸîÎñÈԔ߂%Ì¡(dKäU«VåK·´`9öØcÝóĶΩ¤ðsÛ|‚e¦ëý‘J;â]{þùç»I6eHÇs,+,X’Wéàœ>Ô÷ôÓO׋/¾èH5Á’ª…—Gªkã“^t_xM’dkX ¿^8Š“`ñ‡ï…Iâ}á¤ñ—^zÉýªaÆî`;NŸ9s¦Ž;î8µhÑÂýnêÔ©î?Ò5×\#ßÃø$atÔ«WÏ,Ç6±þð9ÿ›6mÚ!Åò;>À|¼Ї!è WÎëÚµ«;mœ`î‹73Y±bErÊ)î ?ðCð¼ÁK¢þÈk?öéÓÇ•çÓ3Ï<ãžãXÏE,ƒ›÷F8úà˜cŽqc ŒÆq8…ߟ|òIÌñ7ù .öìÙ£æÍ›çŒGÞ+$ÆqçÎÝsÃs@¿ã îlmíåKêy饗ºƒAIk֬ї_~™sH'»Ë‘Ÿ?»‡¾§|&ƒðVÇê—Xü8448þbµÓïnì/Æn0Ek'ù]tÑEŽ ‡Ò'üŸm½i‡•â-áÙ]»v­Ã~«K—.âÜ8XuôèÑî½vòÉ'çË¡¢íÚµs^éçž{ε…¾ /IGq„ûóî»ïº÷M0ñî lúúñÎâ]\«V-]xá…î=‚пÓyÇÐo´‰wïižÚÂ7†w]2üˆöƒ”$-XRÝ/9¥Z$ºØK"BöûbH 8  Œ_Ÿ0ê1ýzï½÷žûhñ1àã÷Úk¯9ÑÀÇ~ذaΰò'yc ñqâƒÍƒ 6 0>V¼üäýꫯºr|âºË.»Ì}Àø`uÔQîCúÊ+¯8˜2øçe `ø€½ùæ›îöàéÞÁ}ß¾}݇ãœÆ7u‹&X0ªÉ“k™=¥øàgX 0ʇêòƒ¼É?˜¼—˳H›àHÿÒ§0á¹¢ãõÆ]^û‘¾=óÌ3Á‡!Ès﹈epÓ·Á|xn1à™4à]ƒ@ä™~çwëä~°½t¬vÅãM><ˆoÆÞgœáÆ#ï!öc•q?`À' '~¢†±Éä¡1õ¼?Î=÷\ןãÇ?ä½Ã{ßÑŸLÞxo}H›“§ñ&^bµsúôé‡õW°Oâµ1Á„^Ý6mÚ¸I 7^¼ð®Åk„ ï3ß.Æ)?C¤0FFŒáÞCô)Ï;?ãù÷a´<ô9Þž[ÞK<—L´B䬳ÎÒüùó5{öl÷hР«_¼gy72Y„HâÙ@0ñ~òß'Þߌ_êC?‘O2ü‹¡™R MJZ°¤k–ÖV˜`I+Nˬh(N‚%L0b=/}>ì|,øÝûï¿ïŒ <üÛ|È1öø³|Æ?ã£Â‡†° >þþ^_>3²Ìð"‚0Ž«V­êfá™™ãc‡1‰€1ä 7®eÆ4–`¹òÊ+ÇÈ4pà@÷¡ fN|ˆùà‘øpò±d–Ù‡’aàcüôêÕKÌnbÈ`ÜûòaÀ¿½—Ä!|Ðá«}Ìbp]8$Ìsñ¿ãcŒÁËl#<'L`Q>‰8}‰`„!žxø™t¼^ž­”ޘƸà£1Cô½Ÿ%X¸±äùᕃâ³{÷î®|¼m´Õ—Þ òmõu‰ÖïVŒ‰hõ¦O’WŒSTvvvŽGŠqŠ”ÁB,ðg c¸E ‰¤ÌhåbìòÌaˆò¬ ®ékfô,x cõc-Tú‘ñD¹‰‰ž‹X‚…÷E0ŒMÚÁ;6ˆ„°×Éç~ø1­Ÿ±}bñ&ÆmC@ñì3áȸöÙg°Äpç]Ãûþx¶˜ç™åÀ;†ç%b–÷\X`àD4òlÐ<·… î°!·áÄX`|òÞa<„C˜ÂïßÑÆ'aJ±x‡ó ŽÇþýû;ñâóÄH§¼¿x~ƒü}ûx~ã ÚÆ{Š÷ ÖÔ‘_¼úÇi<Áo\Å,~‚&ÜN´HÞ£Á8e‚‰ç¯ô=ïþÀoù1¹‚è §x‚…g‹qLÈ%Ïü£…ƒ‘?"åé§ŸvÙ{ÁŒ(A¨ßó¾?üß$¼Yþ]ïë—,ÿnÒä¹ù&XòŒÐ20ùC 8 –XkX ÇËo1ÆÅÇ×<‚Á'>øü,Ú¢wš€!€ Ã~¦8T>rªÁ°³dKxÖÙ:>ˆ±<,~ö”úðñÄÀ줟©ôŠXB˜¡%Ÿàú ;ÆU´öŠ–¬‡ÅÇÇ#ŽˆÇ„AŒŒaBH0 aóx‚…°+ê…ñèíLjÁœÑg ÐöX‚…vú0½°ñ`Áˆ£­>.>üt¦"X¼­ÞÞ@K4®˜YÇ(ò3Όݼ– àÃàÈ¥<ß^‡¢•ˬsÐÃâÃçè—h–` NÓÑÑ<,±ž‹`ÿ%,ž íÆ3B¸O4bøýáEr¬~öB3Ì›|‚?„Æ6ư÷°ÐïAÑL^AþŒ1Ä5ã1O°Åï8ïLTÿX‚/Ì!V;ã –XíD€ã6Ò'xÒ ‰ó!»þG$ è,^ô!ÊxÖy?Óïˆ <]¼wb-º'\ÑŠPå9‡ƒÁ!ìañL …å]O°ð®Ç£ööÛo;¤Là0Ù†‹õ\ßùc)”œ\M°”œ¾¶–1ÅI°DÛ% 3Ú~¡#'fy}—yÀˆÀ ÈEø°þ"š`ÁÈö¡ÁP²`·âƒ£–'yR>k<|ØR´™öxÿõa^ÌbÆ[ÃÂŒ8a›ÌÞq¯7ø GãƒKûɇõ5„®?¤æüް" $>Òp‚a¬öáAx?Fkpkc¿†n|¸AÞØCT²H•/†„_@ [ÖR0£O°`¸P/f'éC¼G„[0;Œ±†hÁˆ'?CK°°vD[1ˆí'* íAhù‚cÀÏøz,±„*ã3V½ƒ³öñÆF,ýG}0¢•Ìz¯ïgɉÉOv[cÚÌ[,R¦?àEbX01F¢•KŸ²†‚ñÃ8$¬Åow`ñž½hýÁó™Ž~DÔã eÌÒGŒKžÃhÏE<ÁÌ/$†5‡G&0`£mŸ~0cµ ¾±x“ã‘uY~n| ‚ù„ËÆ@c¦Ž7B>š¹ ÃX`—/7F$3o„4„CQü.aÍüaÂG•{iãcê=M@  °¡á×ðæ:Ö%xoK¬öñ1Æxæ^ P0á5áƒL;ðb"ñGòyê‚áMò Ž0~—³ ñ ÓB?™V¸ct`ÈÑ·ô" £&¬G‰¶þ„¸tDåq=ÂB‹D(eØ ‡ƒqM˜Fa,Á‚Q«ÞÉŽ+Ä$ù#¨aθFü1Fù›6¤"Xo<¼x°Œ[ò ¦xår-Ì1¶yyfG–‰ú#ýHyŒ5ÊÄ€… ÿö\Ä,á|ðÔa$ÃÈïtç~ìzî>ÿXíŠÇÛ‡„ñ¼Dô/ AÆX îòÇXF€ûYïqĸå ÐÔ#™<ñ`'ª<~Aá¯aÎÁ0=òÖNÆ&¢™÷6ïXÆïyžq„ï;8ð{žy&<üÂ{¿ëïKÞÜÏsÊ»‰ £,ä÷Á³«üNk~#—hßÞÏLnð¾`â†w0b1üž ‡„ñ¿s%u@Tq/j±Æ›ÇpÏ8m±t@ªkã“,©î—œÖN±E÷iÅi™ ÅA°4i2€Ç$¸;XA×#Ýå¥û¹t×/Sòó›/`üwË”úY=ŠhžÞâÕ¢×<,Ähá`E¯5Å»Æù&X › –BÅo…,És'ôÅïƒOˆá6Å%ùó]ðÛá—¶¥³ÌprÂzfíÇt–ey˜`Éœq€‡/ž{OfN¿Ä«‰ –¢ÑOVK#€ –„ˆr. „}ø íbÁy¬íL“Ï1s®$¶ŸØ|B)+ ÔÅÒáXBX k“g³dò›€ –ü&œ|þ„]bû´h[}'Ÿ›]YL°e+Ã,ÙŠ0FÀ#` œ€ –Gnü!`‚%¸Z®FÀ#`Œ@áHum|Ò‹î µY¶†¥Pñ[á…CÀKáp·R€0FÀÌ"´`Iu¿ä´6ÓKZqZfEƒ€ –¢ÑOVK#`Œ€0F  $-XR5KkµM°¤§eV4˜`)ýdµ4FÀ#`ò—€ –üåk¹\0Á’ktv£0FÀ#PŒ˜`)FiM)^L°¯þ´Ö#`Œ€0¹#`‚%wÜì.#ïL°ä;b+À#`Œ€(©®7ÁRdEd˜`I†’]cŒ€0FÀ5©®OZ°¤º_rZÁÙ¢û´â´ÌŠ,E£Ÿ¬–FÀ#`Œ@jòM°¤V4_m‚%Í@-»¢@ÀKQè%«£0FÀ#*,©³ë@†0Á’¡cÕ2FÀ#`òDÀKžðÙÍF s¤S°4jÔH 6ŒÚ¸•+WjÅŠ‡ý.Ö=v}UQç“h¤õö•äúÇzFƒ}^’ù9×÷Y¢çÛÿÞÆA„DIÉŽ—t^W|‹¤ÝÙ»µ{÷î^$eE¡íçüŒ¾>øóà}éúy:;×ò*YƒÛFµS•*UTµjÕ<5þˆ#Ž¢¥ &ˆ?áë»>Bª¨óI4 ŠzûJrýc=£Á>/É|‚ŠãûÌ‹d„«ƒÈh(éã Ñ÷ ?~ŸêÚø¤ÝçGeSÍsëÖ­Ú¶m[ª·ÙõF HH§`‰ö+®3K6söÉ-ÑãŸ_&òÁøÄ“šŒ`ÉÄúGóÛû)2Sé//Bl”ìÈTÆAQ0’’,©î—œ7Á’T-ÏL'NÁ2vìX=:j“Ë—/¯råÊö;¼šÙÙÙ‡ýÜ® )J|Z´há ÚTDLQj_I¿Þ@3fŒ¾ýö[ÅzFƒ3ð‹-²ç[ŠÉª(Žÿd UÅû»–ì8ÈtÈ×/iÁ’j¬Y~@°X2%‘@ºBÂ0d† a,ak¢À®`,J|úöíëBÙ’™yõƒ¤(µ/ÚsR’êï ”Q£FéË/¿ŒN4d¸.Zä‚=ßEïùöãß÷¯Ÿ Š%\m±SœÆ}²ã ¨ØTEJ°¨VO#iüLÚüùó5sæLçI ÏF›Ç¤èyLRõ(wÜq) –¢8Ã|þJRýyÎëÕ«§¹sçjÞ¼yI &1̃Z<=,~‚*–,6"oâô z\™¨LG´FaÚ6&X “¾•m ˜€Ÿm.ê/®ÆVlŠ+n3nŦcÒÜDϹƒ4ϰì’5TmdXÇ¥¹:ÉŽƒ4›oÙ™`É7´–±È<‰ ™tÖø÷¿ÿP­[¯ÒÝw_¬U«j(üÿt–UPy•*µ_O>ù´¶l©¨ßý*6må$ûKe—¡´U.NF;.×o~3DãÇ·ÖSOõSøÿQ‡DeÜsÏ›ª_“n¾ùjíØQ®PÇI¢ç<Ùq¨Íéú}Q®ÒÅ!]ù„=ê‰<,‰<1éªWqͧL™}ºþú‘êØq™¶n­¨Ûo¿ì°¦uÔ|]wÝH}ùeg½öÚ ‚"ÙqP •‰RHªkãM°VOY¹F øð˜XnïtVÉK:i¦'¯d ÕL[¬YÔËöíåuöÙãµkWY Ú#=—B.‰žódÇA EæéÒt–+®­Æ7êá‡ÏÎS]üÍÞÀüÅ/®Óþý¥Ò’gAgRÔ„kµj;ôðÃ/ë±ÇÎÒÌ™ W®Ë;∺þúZ²¤Ž¾ø¢‹¾ý¶]F_‰Dã × Ïã©®OZ°¤º_rÛa·#PÄ ˜`ɼLvÆÍKê}ô°lÛV!õ ðŽdÇAAU)‚塇^ÑúõUÓ&X~úÓÏuôÑóK°”*u@û÷G; ® ¨%.'‘¡šiã wïYºòʯôè£ÑK–Ã}@d÷~ý¦ëâ‹¿Õ‡©!CzEí˜Âð°”XÁ’øÑ(¹W æÖ¯__rXË‹--Öê Lj¿wî,¯ñã[éÝwÖž=eÄÇ㬳&è„f«jÕ]Z½ºšÞ{ïMŸÞÔñÈ‹`éÞ}‘~ùËa6¬›J—> Oœé\í/¼ÐWÕ«o×E}'Œœ!CŽÐ_tvåQŸþý'«OŸYªYs› Û7®>øàHíÝ[ZÁ?÷ܱjÒdƒöí+¥9sºñ¶aCÝ}÷[îù÷é•WNTƒ›Õ¯ß4½øbrÊÚºµ‚3¬cÕkûöˆhíÕkœ¨zõ¶hË– 5ª³†íî~Ç"ÏgŸ=Å=Œ¹¥Kkëßÿî¯SO*žyÞc¼˜æª IDAT÷æÍ‹¼ORI‰¯dÇA*eG»–wÝùç¯^½ºoÆúõU4bDW}õU']vÙ7êÛ÷‡œÛÿ|ùåÞzôÑçÝ;u„Ö8p¼þñ3‹xïCÆ&c¥S§¥*[vŸ.¬§×^;Q«WWWÅŠ»]ž‹×ÕÈ‘]Ü»»L™ýúè£#Ü»¡Z«VäýðÒK}ŠÒsΧ3Ïœ”Sï;Ëé7¿¬–-×誫¾rc˜ñËûŒ² 2$ÌW*Ùq×þMõþ|ó°¤Z‘¸¾téÒÚ·o_ÍV¡Ó¦M3ÑRàä­Àd äfM/ýûî{MeËî×gŸuwƆ4†m þK/ýÖ½ˆ'Lh¥ .ø^*ìÖÿx©¶l©”'ÁÒ©Ó2ýúן8‘0}z3•/¿ÇÍv®YS]›6UÒŒMÝÇ cå¸Â}Ô ˜¬óÏëÜòò]».q†èÈ‘]aêóÄ Y´¨ž3P1$øˆÞ}÷EZ½º†ZµZ£ßÿþ}1Cþùç]U·îfü—眧¬¬‡Ú{ï½o¨J•lgÈ!„N;mªöï—îºëRWW?kH¹£Fur –•*íÖ-·\­råö$,ݺ-Ö 7 ÕŒM4zt'Ê:tX¦‡>×} SM‰ ”ü"Dꬳ&jÖ¬F®ÿ0È*VÜ£{ï½À °xU•*eë7NPóæk·#ºé­·ŽÍ³`¹õÖÔªÕj'"1²Ï8c²ªTÙ¥¥KëhÊ”fNl¶o¿Â…s¼þúñ"4å¾û^w"ùý÷v÷žrÊt½ûî1ÎØD¤_}õ(Wo ú´iÓu*_~oÔ5,DñÚ—jÿź>Õç<Ñ8ðå”.½_O<ñ´&³f5vcñܺõj½óÎ16¬{Â÷A¼þ_»¶ê!ϱþ¼kž}öd}ÿ}[÷œßvÛ{jÔhƒÞyçXW-Œ?ÆÒ“Oö3ܼ>ý´§&Mj! ÇX FèÑæÍ5|xw÷Þ:÷ÜqND3i@<ÊGÙ¼yõÝ{àôÓ';#{ùòÚš;·»7V½þùÏ3œH¾ýöwµvm57¹Ò§Ï µi³J?>À½7LŒÅuëªéë¯Û«GEN°/_^ËÕ%;»œ»‡ÿßsÏ…é&‡å“ì8Èk ïÞ¹L2ñì}ô\uè°B?~º€8ž5ÆÓ´iÍÜ»íñÇŸqß&èo&±ñÞ‡?ÿùpõì¹Ð…cÒÇL„PÞý÷ŸïÄÉã?íÞñˆ–… ëº÷¢a3yr ÷¬×®½Mÿþ÷iš4©eÜfóÜ0UG5Ï];qbK·ÖŽ÷#|/ù0¡Q¹ò®B,yí·üº¿D EÃÓQÐçµ |œÏ;o¬>û¬‡Þ{ïh÷¢'Nœæ—^ê­öíWºÙE<›6Uv®|ŒL>>S§6Ë“`ñ3è̈Ýu×%N°<öØóN0Ü{ï…îcþË_ÞG=ÓQÌš•+·O·Þ0?ü’›a»é¦ÁîCÈÂm Ž?þñ2׎k®¥ãŸ­çŸï«1cÚéÆ?S—.KùPýö·;c–rfÏÆ@:¸è£ ¡æ ]úž2f §÷ß?J7ßü±Úµ[¡'ž )Sš«jÕzøáWœ·†Ú´-‘‡å¦›>vvŒ{„U½z›u×]o;Ãñå—û¤<ä͸¥[°à‘xôÑçœ·ìæ›¯Ò®]åœAÁŸñãÛhþüú®/1Z0TjÔØ¡‡z9Çë”×5,ÞÛ÷ôÓ§8¯Æí€SœaËl6FÇw¼ëêñðÃç8ñòõ×]Êý÷¿î¼=wÞy‰ü˜ðcñƒŒamÑ=â?^ûRîÀ7¤úœ'¾ï9p€ ‚+†¸¿õÖ÷Gà¾û.pã3Öû¯k¼þŸ>½IÎs…±ŠñÏu@PÞrˇnÖC<ø yä÷¼óÜß{ïëN&³†¯Êw¾íÖIüç?§9qƒ AÆ!$BÌjÔØžægÒŽdêÅl~Ë–Â “.ÌàÞMo¿}¬|ž£GwtÞ„.]–êÆ?uÏÞWÞQÿû‹ªX1[ÿû¿×iïÞüYK“ì8Èë8ýùχ©gÏEúç?OwQBÞeÍ;Ê;oç1ÇÌË óãŽrL‘½áÌ÷ê»ïÚ: “J”ó«_]ë¼·¼ÃI·ÞË·Ýö¾Z´Xãd÷ßÿš›É¼ãŽKsªÊìfóæëœÈA( X¼‘4hнùæñ.<àÁ_uF^¼;$Œ'¼&|̾ü²Ó!‚Å3ò3Á\ß­ÛÝpÃg9åP¯:u¶ê¶Û.wá&$Œ+BD’,Þx ÷A²ZJƒERºcÛi?¼VÂ*±ªYs‡¦x¾gwÝuqž=,~,2KñÈ *!#ÜK}t¤ýëKZ±¢–þüç s §p=1Øo¸á:ÝsÏqû4Ú.añÚ—jÿĺ>7Ïy2e{ÃC¯ c“gC󦛮qÞXïƒÿgï<À«*Ò>þO#• -JGzSPÅEP¤ˆ° èÛ²®®ëêêîZW×U?Ûê®ßê·vË ¢€TQÞ{ -$¤÷|Ï;‡’äžsÛ¹çÜÿ<œi¿™sïüç}ßÙ¹nlüõòeA.Ÿ!òç¹çÆ`ïÞTU×e—mWî5õ%qËK—Á"õýùÏŸ(‘"õòù±eKkµXÕã,bá‘]~#í’ü Ä5éˆÚ]—~‰¨ýöÛ®øè£Ë«‹cÙôÐ…Ô®]ixá…ëUO<1ii9¸ÿþ[¡»™¹3³–6Wåyë÷"0o¿}‘²˜É¦’¸áÉF‘ˆI –’’pÜ{ï/«›áêóP,U²q$r.aaªÎœ¢ÆW‹Œqÿý?SeêB꥗F©M)içw,R– 3\ŸèUW°È÷¦|7¬\Ùï½w…ªC„˜ôÏŸ‚%Pç>fcã Ý{kÂúªÒyI"Xüeew°N´!fÏžM·0_ 0Ëõˆ€;1 ú—Ç[o]…5k:œW¿d,.²°-ù ÷¦`ѱ•ÊõÆ©SïPmÑ}žßxã곂eNœˆÇ£ž,þó%¨dš  –še^{í:W!.câ:öì³ÓTü‹ìÚŠÕH’Äˈû’|q-]ÚµŽ`Y¬bSÄý»ï4Fºû–¸ˆ˜뉸Ô,â.ТEmÁ". O?­Å° ´?ÿù’ê/·gŸýIIøÇ?FÔZ´È¹,À}•¼å*"âL”²“*ŠºIÙ ‡pë˜ì¨{[°è± W^¹7Ý´¢zGT,$qôhž|r~ùËŸøâ]*NhÛ¶Öµš+þôº»ÇÃOBv¶&BÅ“œ¬i]ÁâªÞ?wÞs#uë‚B̲p–$1/¼ð~õ¯±ÏY¸76þ5wÒå³FvÈEä<÷ÜXˆH¼ôÒí¸õÖo•»NÝS׎KP.™f‹´_æØÅïT®¢bÁ‘9™™¨Æ_, ‰g‘˜ I®Ú%j‰µq½è¢Ãj¤®`ÑËÑ÷øã³”Åøå—¯Suèñ42¯Œæà+ájd®¸zF\ÞÄ}JÜuÅeN6'ôM±†KÝcäû<k™Ì±âJLšXPî½÷Kõ\S°Ô,ó®»¾Rq5ÿó?£U|ŒÄÝu×"Ã⢮`Ñ?¿W¬è¬\ %É÷Ä/~±Øp™®8ù} Ï#í¯ûŒaÁbö¼dwãnݺ¢ç÷§•EÜÁôÛ¦7oÞL·0w‘ù|JÀ}1/>ûâ»/;TS§.P;«o¼1\-VäKá·¿ý¹jûŸþô Úµ;Yýåã ‹QÁ"–Ý%올bÄ/]ÜtdWS\ÂÄwÜ•`9ç6\YH$=øàç*¯ÿŠ/{}.a²3+I"€„q~ñE?å . ¹„ÉïË/¿«#|#V¯î€ÔÔ\% ?þx ÂÕ­TºEÆ[.aF‹î&'þˆh‘$ [Yä>Ü¿ÿýÕ‚Kw “˜—çž›VíæWW°è¢·¡þ?WÏ}ÏÍ΃š‚BbÔ$æBï¾yÊí套®WãÛÐç¸r56þË—w©õ^ÉbQºåRw “¸‘^ÐŽ-– fùLëˆXEe‘*1"r\%ùlk†b±Iÿ¦NýJm6èsD,wß}›rÓÝ·j Wí—9Ù0‘ÙЭµº XÝ2ý-XÌÎW\]ý^î)’7ô¸;qÃw,ýs^,X/¯†Nkìó°U«Ó*¾EÜoå3W>+_|ñU–¸ÙÉx×=8ÅÛ‚E\€Å¸æA*ú›?-,A+XÌúš¹š¸Þü}MëŠ^®?¬,º;XM¡D·0oŽ,Ëò£ ™šõÅÇ©dYðËIZâ,»D VÙ‘7q§Ó»,è$RN·‰ÛoÿÆí‹#ë;ª1 ‹,ˆ$xU‚X% þûï/Dß¾ûUýºÛO}eÖµ°Hñƒ~¦‚yÇ$¶MÜúj LµKîæ¹!‚Lâîä° )S\ß}÷ %Úk–émÁ²fÍ,[¶ Ý»evx:?%öKûLî§>çd#H,Pr°…|LjÕSÞÍ-[Ú@¬ò^ÔwQocŸ‡r’Ä÷Él"Éb5—wX6ÄõWâ!}ia‘÷åo›®b dì¥.ùüïTý3ÝS–FòûÊâj¤n_Ë1¶²»*¢÷Ì™Xì.óHv¤egZþ,ÒnQr B«Vr¬q¤ê2÷µ8 mLÔÇ´¿r’]‰’“‰j.´\õOâ5¼‘Œ¾çfç>ïåÈgY\޳F Jr´°œ°äêó@vÌÿúÞ+°"rt+—¸ôÈÏ:w>‚ªªP%|Å}P5“Å®,Neqø¿ÿ{%yV‚ ež••…ª£¤oâò'I\¥L±®È<•çê y®±v‰Eá¶Û+‘"åËáb둜€WQâSÁâê{³óÀÓ9*ò!›-"ÅívÍšŽJdÊg´X½¦N]¨6Â$Rn„¯O°¸ú<”¸D™;R¦œä&Âô7¿™¯,¼Ç&Ö3_ iŸˆâ[nYŠfÍ Týò®ˆ›oÍÏtOyºÊotÃU9ò{Û –ú¬+:\_[YjºƒéuÒ-,P¦vãíð÷u Pñ–‹O ôÇí#Tå\¤«ªª[½{ì++K}î`zŸéæëÑ÷¼|.È9…•‘A~ÓlºGDYU–%#"¤­#²Š*,)¸ÓÏ\ê 2æ”Ëk~~¾rõç1ØœîM?»¼çõõŽcîޘחËΕó€ó !†‹Ù󒽇ÜXI ŰËíþS:t@BB‚*`×®]ÈÍÍu¿0æ$°ƒ‹O›ˆSx¤Å”W…âµÓ×b{Iº¢R‰Ÿ%.ArX.>Ɉ%é¸4fnM\ŠìŠ8¼”uN”kï`Ç&ÇðÛæóRŽO]¥iøyâ ŠÙ‰žÅmÕsI™‰ÔðüþحȯŒB³°|ü4a%ºDA€MÅm0íÌe(¨ŒÂà˜ªþ¯ò{bVî%*ÿäÄe³ od_uE"<¤7ćÑ{RŠeÉJ0*KöшºW¬Ù7+ ç{c+¹Œ¾çfçû-2–“cnŒ“ѧŒ ÎgFç•ÕÏ,f}ͬîë'8GÀèBÆJf£›þ€ëš®ÃŠÂÎx?çŠF›r_óyèyå\Žo »ÖzVß¡[VØæ\îR°ˆ(ùc‹O~³Ï ’ãWc{i:^ËiH°Lˆ_«ã6âë‚îØWš‚qñß+Ñôèñ›P\a%ÖZu›ý³Â·óÀýébô=7;Üo‘±œscœŒ>eÔÒÆy  §~Fç•ÕÏ9F°XÃbõ²~÷ë)a{öìQCøÛÅÇÈ(ý2i1.ŽÞ¥,âÒ%©c“LôÞ[ýdE<å÷À³©Ó–¯\Ä•5¯½(Þ‹;“)ëŠXY\YXÒÂsð@òçÊRòvΕª¬Ÿ'.Võ>t|2ºEiÔ²¡8¯¶|…UMð§ã7Á¥1Ûqs ¼•}Öu0Ò}¿<h ”ú:ÍyàþT0{hó€cîþ˜×—Ӯ•óÀšyàÝZ}Wšc‹U1,¾–ìKö…í˾Ö,Û £}Ó¿¬fœŒÅÝU¶+c·à¦„ÕEì)m‰çOÆs©"1¬Ÿ˜ˆc創ªèuw7›¯\Ê^ÎåR°ôŽÚ[¿­·™¯d]‡¤°‚FËá²d<•2£ÞürPÀgyŒ"ðùsvØqã<ð|¸zÏmpÌ=óš%˜,kÖ¬Á²eËÔ}v²ùkUâ<ð.y£óÀ»µú®4Ç«bX|74,Ù—(XüDmd,G5]‹ë›®Åꢎx'[³tè).´/¶|º`y8ùS\Ðäþuz8~,Ψõ¬¸f‰‹ÖŠÂ.x?gHµ`yýô5ØPÜN=ûLêt4ËSî½¢öãÖÄo±¾8 ò{×*ëXyzGP‚E,;çR¿—ÿKl‹Ä°HœÊÓ)3pº"ÿ—}u­üg*bÔa’Œ~YéÛÎyàùl1*XV­Z…… Znqå˜{>æ5K0kiã+dö&çÛÖ‹_ƒqëÕ±Æâj•[¥…œâ%‚`†Šo醘ÐR%n$Žei ¾/n¯îl³ iáÙØ\ܯ¡; z7nOú9±X˜ß}¢÷!%,W —Ξöçs '‰ É­ˆÆ¨¦ëp¢"O¸ ax&uªª€yù}‘žƒMŽ¡yX>Þ̾k‹.ÄÄ„U» ›KÚ`Kq ‹Û„„Ð">Y•/îa7%¬DçÈ#¨B¨Šq$¿“tyÌ6å®&9•¬¤*r²ÑÛÙW⻢ŽêD°ã¿C¿è=ˆ )Ç¡²f˜“{ ÄjˆÉÕX Ä8pø~渚¾oAí8æÞ%îÊÒ¦×Æyàìï£óÀ»³ÏuiA+XÃâzrð‰sô¥£G"33Óñh¬ŒIð5ÜøÐBÜ–ô ºDÅǹ—`Q~O_Wiûò]-PÍeÈpÎÀì{îjánå3sïÐç<ðG–bŽ@Ð s˜¼÷tÇŽ¯ äÅ‘ÞãÊ’¼KÀé%¹“Eîf‘X–%mÕE’sr/ö.D•æjÇÍŽ‚E†'ØçÙ÷ÜÕ<°Ã”ö1÷Æqxƒ"Ë0K h‹U1,×^{-Z·Ö‚ƒçÍ›‡Ã‡›3>O>'`v!ãóù ‚+b·bdÜzĆ«àüW²®õA-ÁQd ú¶%Ìó ÞóúæA0y}<ÌZÚŒ¾[þçAí ôy`66ÞpÐ} OT«bX(X}f°}B b8ö#`wWû÷¬Å|Ï=ãç”ÜÁ*\2~Þê‡ÓæaÁbö¼do7ZŽU1,,FGˆÏYIÀ®.>V2sbÝfwÜ(Xì5 Œ¾çfç½(°µFªœΞ+Fç](,f}ÍìÀÓvR°xJùýA ±…Œþ¥U·rJP7ñyˆù¤¥¥©Àl£÷‰o{JJ 222¦º¦';ößéí7*Xôçj:ÂñÔf‡>ßúöí«úáê{Î{~Žý3:ü±ñFŽ,ŒañÆtž2ô…[C_ÒN#ÑXL‚þ¥U·Ï -jù¼FÊÎ|Œ é'ÇÛ>ãm4ö¨¾1µó|¶ûûè«ö»ºÁžóÀÞŸãFç«y`—õŽc cXì2å£N3•¥ZŸ‹vE€ÖMÜ1nxÇøàÁƒØ»w/"##!›=%ÎŽ]æ“´Õ•+Ÿ>¦?b=;qâ-ª±°èŸ‡{öìÁ¶mÛY#ÕMœöy¯=ùv5Œ®¬~Î1‚Ū–ë®»­ZµRã8wî\9rî;«—õ7L€‚åü/0ýh7ׄ* IDAT˺ÔZÔòy”ùÈØÉŸ†2õ½9oûŒ·+Á¢¯þœ|êÂÕŽó¹æ|eû5ò¾ÊøyÏ9ìù9ntÞþ^3šwŒ`ñ7h½> «È{Vo° –ÆÎÛ׿´ê’mhQËç5RvæcF°p¼í3ÞFïÕ¨oLí<Ÿíþ>úªý®ÞsÎ{Ž7®æg«*ó¹ÍÆÆ,fÏK6ßtÏrXË#=7«r«`iŒ7wÐí³ƒ®ï –””œ7¤fv˜¸„ép~Øk~ùl­oLÍÌ©ƒÏŸ³hxú>úЧ«÷œó 8汫y`ä3Ã›ÏøL°x³‘¾(˪_ô…eúž‹ï³   ¨@Ð «bX8 íI@?%¬æ±žöì [M$@$@$@ö"´‚Å^ÃÄÖ’ @pZÁbU KpN3öšH€H€H€H€Ü#`66Þpн{Íñ_.ưø5k"    0,XÌž—ì¯èõ0†ÅßÄY øž€aÁbÖ×Ì÷Mg $@$@$@$@$@N'àÁ§OUïö§„y—'K#   _pŒ`±*†¥S§Nº%íܹrc,Sàà=,?Fl! Ç«bX®»î:´jÕJͦ¹sçâÈ‘#œY6 @ÁbƒAbI€H€H€IÀll¼c‹U£IÁbyÏê¥`ñŒs“ €»ÌÆÆ,fÏKv·îæ³*†eÔ¨QHOOWÍþâ‹/ 7§3> –À#¶H€H€HÀ™|&X—U1,,>3êo‹=Ç­&  °? ,VŰP°Øó¥á)aö7¶šH€H€HÀþ‚V°X5t,V‘÷¼^qsÌÈÈ8¯ S§NáÀçýœÏkHÈGãÀùàìùœœ¬T)//WÊÊÊÔß¹¹¹ÈÉÉ9ïó!&&‰‰‰çý¼°°Ï mjp>h8Ÿž¯p¿„ ,Œa üÉh-”—åŠ+®8¯Y;vìÀÒ¥KÏû9Ÿ×Æó󡿇ççç¿O½õýhë%_´Çll¼á {_4Ö›e2†Å›4ƒ£,ÙAm×®ÝyÍÊÊÂþýûÏû9Ÿ×ÆóÁùó¡}ûöW"""Ôßr°ÊÆÏû|hÓ¦ zõêuÞÏ:„ 6ðyòQs€óA{ø¾hšÁ± 3×KÂÅìyÉæšáùÓVŰðâHÏÇŽ% @C ³¾fDN$@$@$@$@$@žpŒ`±*†ÅÓ`~     † 8F°XÃÂÉE$@$@$@$@$à;Ž,VŰønhX2 8€ÙØxÇç %{D$@$@$@$@Î#`66Þ°`1{^²¿Ñ2†ÅßÄY ˜'à3Áb¾)þÍÁÿòfm$@$@$@$@$à ,Œaqgº0 ø—@Ð ÿb>W[Í‹#wìØüü|«šÂzI€H€H€H€H à ­`±*†åúë¯GZZššÿýï‘™™ð“„ $    «˜7toU‡ŒÖkU ‹Ñâs$@$@$@$@$`ž€aÁbö¼dóMñ,‡U1,,žs“ @c ³¾fÁ‚‚%XFšý$   °‚€c‹U1,£GFË–-ÕØ}þùç8vì˜ãÈ:I€H€H€H€HÀ‘#X¬Ša¡`qä{ÁN‘ Ç«bX(Xd&³$@$@$@$@¶ `66Þ1‚Ūѡ`±Š<ë%   °#³±ñ†‹Ùó’ý Ϫ§ºË‹#ý=ê¬H€H€H€HÀn|&X„U1,Î…í#    @"´‚Ū–@|¶…H€H€H€H€@Ð –@¶H€H€H€H€HZÁbU ' €qfcã Ýo‚5O2†ÅH€H€H€H€|IÀ°`1{^²/]_ÙŒañ7qÖG$@$@$@$@¾'`X°˜õ5ó}ÓY €Ó 8J°¤¥¥©ñÊÌÌtú¸±$@$@$@$@$%Xúõë§míÚµ~<^é7Ô¬ˆH€H€H€H  8J°¤§§«!û Ç·¢ë×)b…‚%ðÆ…-"   §°R°Ø¥1,,v˜l# €?”¬ìŽÒU=TUrOb}ÉgtÐÓ:¬ˆa¡`ñtÔ˜ŸH€H€H€HÀ)ò–tFþÒNˆ‹‹£` ”A $Á²© ÙeÑ’x 67\Â²ŽµÁW3ïÂM÷>â6êë£Sï•nçgF    { `q1^VİŒ;)))ªeŸ~ú)Nœ8aÙ¬ ,Á‚^x·<ð`-UU! ©²Œ+&Lè ´ß+êþ?0[Ýx«BC€ÿí ä–n´cØf 0OÀˆ`1o8èÞ|sýŸÃŠ–@,'JãPZ†¬òhć•`XÒ>Ä\…“-³°lî$”Å ,¼—^;éìPƒ´ok_|ÿÍ”•F!=c†Œ~9§Òª-,••a˜ûþ}hÛq3z]º ÖÀ¾óÌ«è3d.ï¹…y èÚoz Z„…3¦bÿŽ^Hj‘‰‘“_Åǯ?>—ÍÇúÃ1åþ‡Þ¤Äÿ„5’ , –€6ŒH€L0"XLÀ°`1{^²Ù†xãy+bXºt邨ØXÕüíÛ·£  À]q« ±°üÛ ãZlCbx1–äd U2læü0Ý/ùz­ÆîM°né(LüÍã(ÌKĬ=‚qwü q ÙX0}*Z¶Ýƒ6¶T –å_LFee(†Œþà¼v½ûì+è>p1ú_õ™,3^{ ï~á¥øè¥çpÛ#w«<ï=÷:÷YK†Ï@ ‹[ÌL$à`,\vH ¨X*XÌFóÕÈHgE°.NÀÈæ»T‹—ÄcÕ™Ö˜0ò”÷܈°ð „„T*a1í•¿áöGëaß¶>¸ææ×Užò²&êÝÂÒsðBìÛÚ#§ü¡¡•õ –Q?{Éi‡Ôï>ûA%ŒÒ3vÖ,ï?ÿFLúRZï Zl €· dÄ7¶2b€¢ à‡l`Π¬p]pi2Ð48^|rØ|Fk…'‚¥W"ðëöÀÂã@XpY2W¼wHˆ&´Ä=kn&°ø¬×®´gxK`H2ÔDsÛú>øìP^Ô,³´¸²PQ|y ø¦†ç¯<7* Hä¹­¹À¬Ã@v©Vg]—°´(QǦ@(€ý…‡=ùÉóÓ6À%Í€2©/ètj üa#<Ó8P<³MË3 pûÀ’“ÀôƒÚφ´†§ÍšY¥ÀçGïO{{ÄY œO€‚ÅŬ°"†%&ª–¬² Mܯšu², N·Ç”kßÁžÈPlY3âÞ%Ö ª¿ã±©Ø°b8²O´ÂÐqïÔêŠüþ³·DhHÚuÞ€+ox»Þ®Š…eü¯žBÓÄ,õûù݃Œ.ë‘ÑõÇó˘۞EBsëb|i¬ØpØpàéî@D0ÿÐ2J[H¯8¼¸2¸© °ñ °6ß ˆ þ¼Y ž–nñÀo;j"as. lœ(rJ51*]MoÒ껦%pC+à`¡¶ï‘ ‰‚¯O3z™§Kýš@aªÅÙ/.ŒþÐÈ/×DL‹H`ps­L!u‹ô÷©‹€¸píy8?Id+è±Í@Npy20¥ õ.=© 'a<°hêZ°ôLîî õ{Ù)M”u‰žßìµÎ ÀiSžý!h€‹‹©aE K ÍV,GKâqM³ÝªYbaYÛ#‡ÎÁŒÅ1þ®¿"±E& r“0í•g”` Ëž-ý1ròk*OIQ ÊJ#QR‡¹ïÿ7Üõ´úûâ«ç(R7‰`uëËHN×N&ûì­‡ V™´v»Î,coñÍ(Xiΰ-$à-#ZãZibE,b ˜Ü¨ª>8tnªíöË"Zæ²(—Åù?wk"ÆÁÒ5¸¯£&"Û¢ –¿÷ÑÊS[ÃEšFÿ¯ì¶ç¯ôÖÿ0’çùž@D(ð»õÀ…qZ™bøó&Í‘õgš yw?°* ¸§Ð=ø×àÇäý´¾J=;òj[XÄâ1¾µf噡¥•º>]³Ü|zø}'M8½¾Ø£Y£¤]byùý­o®,,¿ëtiªõ],Y)‘ÀcÝ4ñòaC$½5þ,‡H€t,.æ‚1,4=E°¬ÍKÇ-¶".¬ßæ´CXHºXŠ/ÖŒÀäûBhX%Ö,‡ +‚_þé”Ū€ø1·=‡Ääãøúã;”ø¨Ãrì`{,šù+Ü8õ/ˆŠÍ«Õe,rtñà3‘›ŒY¯?®ŽB––÷ž ¿xø>`/.a,4[Øð._d—4þ½¯~×#q™šØhD†iîP²ן÷†`Ñ âAÒ˽è0à×ë€Ê*`R[àŠÀ{5 È_»'K€G6Ÿãð§®@»m¡ß4B,5ËÔÅ…X`Äó·š«Xw$‰»—XMþsHsѪé¦3z{ðÝY÷,Ý¢×#íJŽþ¸I³²Hzª»&:Œ –çz‰篸=¯µÂD$@>#`D°˜7tÏŸ«× Þ˜Ÿª\ÂJªÂÔ},qrJX³}ˆ°KöÄÑ]ˆK†ÏÂKF¡ª2cn{{·ô×N +‰B« ·wJ˜4pÕ‚ È?Ó ?™øÆy‚¥Ïåó°kà ”–D£÷eóÑmÀõ̼îé̶1ùUÌÿè^ ¯4 "À#ðË €‹›oíÖÔ+ñ—‹€Ô(Í=lo¾æ¢Õ?É»‚Ebfþïl˜ÜK½4Á2uÆêæ¶ÀÐ:‚E\Æ­!XþÜUTOnÕb_D°Ô,óÚ4`Lºæ2&‚åÙZüËC5«‘$‰—¹:U³ ˆK—QÁ².[Sb=iÞ¤¶`W;q7«)XOŸaÔøyƹ½]ÿØ ”Ÿ›+%•À‘¢À›;l €³,fu…aÁbö¼d+Ð{ KƒÌݸ8Òèø‰…e¯Ÿ@lüY£ù €£è‹ùÇ´@{qÇšÚˆ ×â/ôŠ+€ß®×º­[3¼ia1*X~Ì>ç&ìyåZïÊ^Øqþ)abñ÷®Ø0`ÁqmÅ}¬¤xt‹f +q1ûö”v@z”&¨ÄÂ"BE·V­ÌÒܯIJ%LuÁ¢Ÿp&1=‹Oj}“¸±> #& ð% tƒ=†…‚Å—¯Ë&pE@, T.nUbMQÇÄIÑr\¯œ%±ÂˆË•,´ÿopMª‹X€ä €Ë[I@v°ò0ï˜óbD°9rXb[Ò¢5á!ȱÆ",ê;ÖXbyÄmLÄŽ´AâJfÄÅK’Ë, H *€/ŽÃR9Y(¬ÐN'»5H>{ˆÁòSÚ©`ú‰lRŽC‰M4Q³ð˜tÏD$@¾&@ÁâkÂn”HGZ!XÜ@Æ,$@$@ KŠò‹àˈ±N‰¸¹ï¬;á‘ @  `q1:VİŒ;)))ªeŸ~ú)NœÀc{}ÃÈ/ ÛF$`b‘W¬†’XräRD§$ý–£Eš;W§8í>›š—B:¥¯ì €3 ,fcã ÝÛ©1,,v˜l# ؃€XRF¦—6×ܹäâK¹hSbkä¢I& tF‹Ù>,fÏK6ÛoâÃ?l4KLL ¦L™Òè3 –CÁbf8ø, @î†ñ¸÷"1˜IÈÂN’! pAÀˆ`1o8èž1,õNMÁâî ¦`q—ó‘ €÷ „" #ñÒÑe(DÄQ°x3K$p(#‚Ŭ®0,XÌž—lÅXÃRóâÈ={ö¨;Yôàú†””” //â>&IN [¶lY£È"##qÙe—5úLƒåÐÂbÅtd$@6% •Ñø7–â)\Œ{Ð )Xl:–l6 €ÿ X*Xüß]ó5ZÃÒP+ ¸—ñ²jÕ*lÚ´ÉHvÏŸ¡`ñœ!K J,A9ìì4 €(X<€(Yuñ"úâæ—DÁâ̬„HÀy(Xœ7¦ì €o P°¸àkE ‹o‡ÜK¥S°x $‹!6,Á6âì/ €§Œ³±ñ†ƒî=m¼?òR ‹?úk¸ èø Ô$@ÁÂù@$@æ,æJ ³ç%›mˆ7žÔoôÍ£2(X<ÂÇÌ$@ÁE  š¢nQî€hŠtlǧ(ÂiìÃbœÂ¶àÂÞ’ € – ³ç%›èõ5 _fù$@" åf|^o¾ÅÓJ¼0‘ ÔO Igä-털¸84mÚÔ+˜ [Xì XÃÒÀœ `ñÊËÂBH€H€H€H€'@ ‹‹bE K×®]£Z¶mÛ6È­õ—(XnHØ    p"ZX\Œª1,7Üp’““UËæÌ™ƒS§NÞÜ£` ¼1a‹H€H€H€HÀŒ³±ñŽr ³bÌ)X¬ Î:I€H€H€H€‘€—0³¡&†‹Ùó’­hE ‹#Í:I€H€H€H€‘€¥‚%Ôm“1,,v˜l# €?q ó™…Åô´+bXƱ>Iš={6²²²<í†÷óK €’’”––y¿|JüýЪs¿¸d²%1+ x—@ˆw‹ci$@$ªä»8Ö8¨‹³À‚å,˜¼¼<äçç[©Á:üñêß=ùä“Õ66†H€H€H€HÀ=ÝÃÔ‚ÅŠ ÷&±ž‹‚Å3~ÌM$@$@$@H 1Áb66ÞpÐ} ‚¨Û&+bXì&Xì0Žl# €ý øý¦{³ç%[ØŠ–nݺ!::ZuwëÖ­(**²¢ë¬“H€H€H€H€IÀ°…Ŭ¯™#i±S$@$@$@$@$@~%à(ÁbE ‹_G‹•‘ @p”`±"†%Èæ »K$@$@$@$@~%à(ÁbE ‹_G‹•‘ €Í ˜w”`±ùرù$@$@$@$@$àxfcã ³ç%[Aš1,VPg$@$@$@$@$`œ€Ï‹ñ&X÷$cX¬cïnÍú˜Iþµk׺[ ó‘ Ø„@P ưØd–ÖhæwÞYý¿7ß|Ó~`‹I€H€H€H€LjÁbŠ”—æÅ‘ž¤`ñŒs“ €Ýµ`±"†åÆoD³fÍÔ<™5kNŸ>m·9ci{)X,ÅÏÊI€H€H€HÀïÌÆÆº÷{OܨЊ 7ªF Ïø17 8€aÁbö¼d+ÀYÃBÁâÙHS°xƹI€H€H€HÀé ³¾fN§÷‚ų‘¦`ñŒs“ €Ó 8J°0†Å~Ó•‚Å~cÆ“ €? 8J°0†ÅŸSÇ;uQ°x‡#K!   §p”`±"†e„ HJJRóãã?Fvv¶SçŠOúÅ‹#}‚•…’ @À0ï(ÁbŨP°XAu’ Ø•€ÙØxÂÅìyÉV´"†¥æÅ‘[¶lAqq±ßºž‘‘öíÛ£¤¤Dݳ{÷nlݺ©©©¸øâ‹Q^^®~·dÉ´iÓ¦ÞgýÖXVD$@$@$@$@|&Xì@׊+¹ˆ`éÝ»7>ýôS4iÒcÇŽÅÌ™3!'—-\¸¹¹¹¸ä’KpæÌÕû¬•ígÝ$@$@$@$@ÁG ¨‹1,VN1,­[·ÆòåËU3&Mš„ÿüç?øéOŠiÓ¦©Ÿ]pÁhÕª>|Þ³ú3Vöu“  ,Á5Ô€#+V¬hT°ˆ;räÈyÏŠ`9r¤:4`ß¾}XµjU°!dI€H€H€H€üL ¨‹1,~ßZÕÕ'XD„Üpà øê«¯——‡Áƒ#++KŲÔ7´°X9z¬›H€H€H€‚“€ÙØxÃA÷vÀŒ1,õ‰””t_QQÂÂB|ûí·hÛ¶-‹&1ÛH$@$@$@$P‹€aÁbö¼d+8[ ‹ŒY' ø“€aÁbÖ×ÌŸ`]ö%À‹#í;vl9 øƒ€£K°Å°øc‚øºŽ;ï¼³ºŠ7ß|Ó×Õ±|    ›p”`±"†ÅÊ‹#m6×êm.‹F‘}    ßp”`±"†e„ êX`Iü1²³³}6Z!!!3f rrrÔíõNH¶,ýÖ:5û@æ ¬íg>s € fcã%X¬˜¾,"LªªªÎëNLL FŒ9sæ¸ìjCe¸Ìèçl#X(Zü<3XåD¬P°X> l 8‘€ÙØxÂÅìyÉVÀµ"†eâĉHLLTÝ9s¦²~¸“¢¢¢”‘cˆ÷ìÙƒÜÜ\ 8•••(--ÅÒ¥Kqùå—«ã‰wîÜ©.y¼ôÒK‘€°°0lذÄ7ÞˆC‡)Á³qãF 2Dý^ÌòåËÕ},×^{-Ž;†¦M›¢¬¬ ‹/V¿—òõ¾ÈÏä—úêp§ å¡`ñ&M–E^$@ÁâE˜,ŠH€H &Ÿ ;`¶"†Å[‚¥I“&¸å–[0}út%ZÆŽ‹  ¨¨}ûöEqq18€aÆáóÏ?W·Ü·lÙ«W¯FDDÆ§Óøñã±víZìß¿_])7ÜK>y¶{÷îêN–)S¦@.”2å’É/¿üRý¾M›6ê÷Rv||¼MõÕá͹@ÁâMš,‹¼G dew”®ê¡ ”Í &  ð ,VİxS°ˆx˜1c†²ˆüìg?ÃÉ“'Õ¼ÿ>|Û¶m«, À\ $q˜z0¾ IDATûì³ÏpÝu×aþüù(((Pñ.b9‘ $%‰µæ«¯¾RbHÄ$±¶¬\¹:uRÖ!±Þè©¡:Dèx+Q°x‹$Ë!ïÈ[ÒùK;!..ނŻhY = ,VŒ¾7‹ Ü ŤI“ðá‡ÖêRlll-Á’ŸŸ¯DLÍ$–¹sç*뉔'ÁùgΜ©~D,9z=u‹<·cÇŽZ‚¥n’_ÜÎ$}÷ÝwÊ}Í“H‚eSA ²Ë¢1$ñ@í.IüŠÉ–¬cmðÕÌ»pÓ½¸gçúÁèÔ{¥Ûù™‘}Z¹Šé.aíÚµC×®]•5EòöéÓG ˆš‚eРAÊÒ"±,)))ê4³}ûöÕ+Xäwb±ùæ›oкukˆµêøñãõÖáÍW0.Ž ,Á‚^x·<ð`-ÜUU! 9ÿ@oŽ Ë"!@ÁÂy@$@$à+fcã ÝûªÁÞ,×î1,5--Z´P1(âÎ%A÷"$"##«‹p“€xp±ÈHнˆ‘š‚Eù‡ŠððpõŒÄ§ˆè©ÏÂ"Ö º—òÄuL‚î%†¥¾:¼9fT––¥q(­ CVy4âÃJ0,ib®ÂÉ–YX6wJ‹b^ŽK¯Žô 4kÔ¾­}ñý7cPV…ôŒ2ú}äœJ«¶°TV†aîû÷¡mÇÍèué‚Z]~ç™WÑgÈ\Þs óеß2ô´ gLÅþ½Ô"#'¿Š_}.›õ+†cÊý#¼II ¡c[H€‚ŃÊ.‘ €M ,fÏK¶‚‡1,]tDHÚ²e‹rÅb²',?ä¶Â¸Û^Œ%9E† ›ƒ9?Œ@÷K¾F§^«±{Ó¬[: ó8 ó1ë_`ÜC\B6LŸŠ–m÷ M‡-Õ‚eù“QYŠ!£?8̻Ͼ‚î£ÿUŸ)Á2ãµ§0ñî'QŠ^z·=r·ÊóÞs/¡sŸ¸d¸iM ‹=g˜½ZMÁb¯ñbkI€HÀÉ ³¾fN†Æ¾9“€–ÃÅ Ù|—êàá’x¬:ÓF~€òž^J%,¦½ò7Üþ诱sý ìÛÖ×ÜüºÊS^ÖD=£[Xz^ˆ}[ûa䔿#4´²^Á2êg/"9íúÝço?¨„QzÆÎZ‚åýç_ˆIÿ@Jë½Î„Ï^ –€6ˆH€‚–€£‹1,A;sØq,Ye1š¸_õîdY,œn)×¾ƒ=‘¡Ø²f(ĽK¬%TÇcS±aÅpdŸh…¡ãÞ©ED~ÿÙÛ"4¤ í:oÀ•7¼]/1±°ŒÿÕShš˜¥~?ÿ£{Ñe=2ºþxž`sÛ³Hh~ÂäÙ¥@$@Áˆ£Â6‘ @pp”`±"†%8§3{-‚åhI<®i¶[uP,,«s[cäÐ9˜±x"ÆßõW$¶ÈDAn¦½òŒ,baÙ³¥?FN~Må))ŠAYi$JŠâ0÷ýßᆻžV_|õ%Bê&,£n}ÉéÚÉdŸ½õÄ*“Ön×y‚eìíÏ"¾‹3g_àõŠ‚%ðÆ„-" `%à(ÁbE ‹]'Ž\)—KIr·‹œX&AøNN"XÖæ¥ãÆ[VŠosÚ!,¤ ],ÅkF`òý!4¬kÆ•?Á/ÿtJŠbU@ü˜ÛžCbòq|ýñJ|ÔŒa9v°=ÍünœúDÅæÕB(‚EŽ.—Ïî ƒPZÞ—ÍG·KÔ3ó>¸§2ÛbÄäW1ÿ£{)XŒLV>ã5,^CÉ‚H€H€ê0oX°˜=/ÙŠ‘qb K·nÝÔ-ôr,ñ÷ßC‡A~Ö¡CTUUáðáÃøñÇÕ‘Äb1‘ß·jÕ ;vĪU«ÔMöÇŽS7U—••©ãН¾új¤¦¦ªûYvíÚ…!C† ,, !!!X¾|¹²¤ˆ iÙ²¥úwbb¢7N·°48gݸ8Òèü Ë„_?Øø£Yâ¹Ðàû¹eÀƒ®ñÀ}²ÿ s&·†´ÞØ ¬ËþÐh<¾8ÆÃü\Î# —ˆø €›|&XÜl_³9-†%&&#GŽÄ'Ÿ|ù·ˆˆÕ«WC,³gÏV‚E¿Í¾Gç –•+WbÊ”)˜6mš:nY.£üòË/‘ Dˆ¹ëåÈ‘#8pà€(Ý»wWuŒ1BÕÉ“'«ûB°ÒÅ‘Ö –'Ÿí×wÅÓÊì(X.Oš5¾>ä—›'Žh\Œ{p& xCÍb£,6,6•H€lF ¨‹ÓbXäÆy±¤,Y¢¹I’Ÿ‰õD,%’DpˆE¬*u-,"XÆŽ‹™3gªgÅÚ"?“{ctÁ"‚G,+rA¥$¹4R,/íÛ·¯®WžÑ/’ôöûpçwVùæ›oz»xï”çs ‹wªv)u-,žÔÖ¸ÿD$šª?,žÐd^  `'Ô‚ÅŠÁ÷åÅ‘uÅI}‚En¢ÏÌÌ„ˆ5±’ˆKX›6m”àqRß­öu‹"¹é^Oz~](‰èñ•KX° +æ¬^§XIƤ—4bÀÃEÀœ#ÀγçĆ?mt‹"B€}ÀôCÀñbÀS ËÄ6À°àí}Zýã€CEÀ¿öW§C’Ürà½ýÀî|­Åb‘öti „„›ÎÓg­%—&£Óè0à‡ÓZùYC.aõ¯î¸´ÅeèŒÑXŽg1óQ†BZX¬œ¼¬›H€HÀÖ‚Z°XÃòÓŸþT¹XIúÏþSkáïéL7°Q£F)w¬ððp 6LY:Ä%lΜ9Ê%LÄÄ×_.]ºàôéÓØ½{7úöí‹øøøKdd$Ä…lÑ¢E4h ”U%%%IIIJ >\Õ+ÏNš4 ³fÍò‰K˜;‚¥I“&(--õ¯ñü>´°o„÷Ÿ”ÅýuiÀö<`k.puжØj›&J~Õè“,8œ)&´Ýæ¹`Û Ù8U,?ôN2b#Ešp*©ÐâOäÿÙ „øcW = ˜}Dcqck`{.ðÚn %øKw ¼˜ h©•Ö°`i¬ui‡"•(S?¾k(X¼?Y" @0o8èÞ ­ˆañ¥`æâº%bDܶ$èþàÁƒêÿˆ/‚E¬*"6š5k†+®¸B‰YÌ‹ÐhÈ¢dzˆ¸‘¼C‡U‚Hû¿ýö[äää(!#PâVÄ"#Ç×´Âxk>,"Rä(fýÏÂ… Ëìq[(XÄBòJo ,øý ¸B'}’4ëÄÆ3ÀÀf@x°ú4PY<Õ]÷þ”Uyt/–kÓ€e§€Ý€{:yåÀ6UUÀK½5õ›uÀ±Àµàù·ÏžÆýó  ðÐFà²dàútà«ãÀ¬ÃÚˆ?ÒhÓ°`i¬%• Ï ß(@$@$@¦,fÏK6Õ /=lE ‹¯‹—Ðl1 –º"¥f'vîÜY+¶Ç§t `IŽþÚ]³¤<¶¥~zb¡•¦Y+ÂC5q#–9L‚Ö=9%L,3‹O­£G»»òvhíyâ" - ¸ƒ&¦niW;_Ù¥‰«ÁÍwö«³´çäy2 ¹„5Ö?9ý¬¡DÁâÓ·…“ Ày ³¾fÁš‚ų‘®+X)5kÊÎÎÆºuëÔÊËË•¥©±$Ç6‹u¦±Ô`9,b)‹É‰àÑÍçS‘xù½X^ä˜âœ2àÞŽ@ó&Þ,¾= ¤GwÓÜÓ^Þ©µGþ/? P¯DàÖvÀúÍE­f’#ŠÅ]­®`‘çŠa)­l¼,O óì³¹I€H€¼GÀQ‚ÅŠ–›nºIÅ‹Hš1c†Oâ<¼7ÜWRMÁ"§œ¹õõ °°~øa£“x 9â¹±Ô`9,b-ù{o-xýÁ @a…ó1M‹µ+‘drtòw§Ï¿é¾±þ=±U뛞:áz ÅãõΟ‡\25ïíð0‹F‰m$ {0ï(ÁbÅ9Q°ÈÅ”ó±}ûöj¤rJ™œJæ¯ä*–%++K»ì—äPÁâv¬Ä¶(Xl;tl8 <³±ñ†‹Ùó’­ eE K÷îÝÕÂ’6oÞ Ùý÷V+‡ÜÃ"–ŽÄÄDud±;,÷¾ÈÆ$.GË=,EEEêd9îX~&G Ÿñ"m‹Œ_‹)ÌÆý›5œEbNô“¼L̇ýJ€‚ů¸Y Ÿ ;P´"†Å—\D°H ¸óççç«[ëW¬XˆˆU­\ð(@Š@ÙµkFމO>ù`>pà@u‹¸”É‘W]uæÍ›WëÂÅ /¼={öħŸ~ªîa™8q"¦OŸŽ>}ú@âBÄÂ2~üx¬]»Öwž¸ª‹黸…ù%Q°ø3+ ,,5l 8‰@P +bX|9yD°Œ=3gÎTÕ <ÇW—þýû«Ë$Å2rôèQõ§C‡µî&Ñó‹udéÒ¥8qâD­æŠ`«”ˆ I"N¾üòKu1eMÁ"V™‚‚_v5°Ë¦` ìñaë|B€‚Å'XY( € ,N›"8®¿þz|üñǵ‹Ä˜ˆõCŽ70]´ÈÏ/^\Aòß|óÍÊú"”%K–œ'XDä-_¾\ýüÆoÄܹsѵk×Z‚E~V\\ì4¼ÆûCÁbœŸt  Ç %;B$@G ¨‹1,¾œ"8&OžŒiÓ¦©±¶ˆ¸2dˆŠe‘ËÅ LþÞ°aƒŠw‘@t'Æ Ã7ß|SÃrÝuשg>\Ýd±°ôîÝ[¹‘‰›™q “ŸI\Ë–-[”Õ…‚e- ¢…‰‚ˆK 6»J$@~&`66ÞpнŸûáVuN‹a‰ŽŽV‚DNÄ’Ë)E˜ˆ`KŠÄžH\‹XZÄU쫯¾BJJŠrçW1 º0ýXdÉ?bÄ%NÊÊ´óZE°ˆ™<« عs'Äêrå•Wª {‰g¡`¡`që…d&[ `±õð±ñ$@$à(†‹Ùó’­ d&†EŽí•“·D kÁ""gõêÕÁŠÀX¿éfŒŸr G ';C$@¶&`X°˜õ5 T*"Td‘žššªŽë¥`±V°Ô¼8RN# ÈDÁÃÂFù–@þ’ÎÈ[ÚIÅÈ5mÚÔ·•±t  h„€£Kc1,5…Šü[b4üv§`ƒî¼óÎêß½ùæ›IŠ‚%0Ç…­ò)ZX|Š—…“ ˜ à(ÁR_ K]¡¢³‘¶¼a]ñåÅ‘&ÆÑ¶R°ØvèØp‡ …ÅáÌî‘ €8J°ÔŒaiH¨ÈØxÓºrÓM7©€xIrÁcnn®†ßú¦R°X?l ÔG€‚…ó‚H€HÀWÌÆÆ;J°ÔÆ„Š].^û ÒOË ¶ü:?¹Æãám~™X‹£ý4¾ÆŠu – fv’H€,!à3ÁbIoLVªÇ°dffª“À.5-,"pJJJª-,fÿ_ÓÂ2kÖ,Èež”×Xýb]A$—HÊ gNøÿÀ!÷Í´iÓ~øa@ö/«éZdõ›nr6òq°7º„Ù{üØz dA-XêÆ°ÈÑÅõ oưÜ|óÍÕG~Š…@v÷™Œ°M ‹Ä>•”*w?=U©§«õý\~&©îó5^3Ÿ·~n|$ø$ Ô& s0ŸÇsZ ø€@P –úxŠ•¥>áâ­SÂ(X<›Å¶,g»(b4??ß³37 ØŒïa±Ù€±¹$@$`A-X\ÝÃRS¸xËÊ2iÒ$u±š¤iÓ¦qAkò%±ÅÅ‘,&G•;‰‹“F“}! À `66ÞpÐ}`t¯ñVÔwKÝ5-.޸鞂Å3Ã;m¤»Ÿw8²ûàM÷ö3¶˜H€œDÀ°`1{^²jư¸ª_„Kbb¢Ç—GöèÑCe,iÓ¦Mµb\µ¿'    hœ€aÁbÖ׌àI€H€H€HÀ®âC 16þ{t<„ØÐbäUÆ`}q;|š;ÅUÚF¥¤ruÜF\³ÍÃrQX‰ÅíðIî@äWFÙµël7 G –ÆbXŽ<D$@$@$¢BÊðH‹Ùhž‹Åmq¤¼9Z…ŸFϨØUÚ/œ­ÚýÓ„•¸*v3—5ÃÖ’6hžžQq´< Ïœ‡²ªð€ìEv#à(Áb$†ÅnÄö’€ ØéP;sfÛI€¼K`XìfLLX‰¹y}ñy^ÿêÂ/Ù®¬*«‹:"!´MeÉøŸS£Q^¥]Z=>~5†ÇmÄŒ3ƒ±¸ ;ÞHßuÀÛÙW©ßÿOËp¬</žº^ý_ž»MC‹°¾8ïç QBÇÝ|Þ%ÁÒH 08J°˜‰a ül 8›€Ž­vöHqïú­ âγ뵬ígÈ]I‹Ð7z/:>9±©DLHquþ¢ªH ŒÞ…[¿Å9C°¼°Kõïà ñ\ê‡ØTÜÿ8=¢QáÑ'j~Õì+%Œ¶—¦ãîf ° ¿7æåõq;ŸáNZù ßK+éû§nï›ÙØxG ÿŒk!0J€‚Å()>ç3²0ââÈgxmS°,žL–ß5Ÿ‹.‘G0õèí¨D(:EÅï›QÝÝgCrX®Šqy%ë:l+iU Å?ÓÞBfyž>yC£Â㎤¯Ñ/zîÉü¥²ªÜ‘´éÙxòÄ·óÙbLø^Úb˜Ün¤÷Íll¼aÁbö¼d·;éAFưxYIÀ(X|•Eš#À…‘9^N}ÚÀªf×E8ôÞ‹?Ÿ„¬Š8Ć– #â„7Ư†–èRLN\†7NÿëŠ/¨ÎR¤½¥DŒˆ™Æ\»~Ÿü:59Š’³±.á¨D9Âpoæ/ÜÎg‹!ä{i‹ar»‘Þ7Ÿ ·íÇŒŒañ#l/UÅ/ Ðb(Xt`‚©Y\Óh7Ø×’•ÝQºª‡ú½‘{…$¦äæ„ø*¿'få^R]®݋ۖq{ ùs,-è†ig.«~¦[äaü¶ù<,ÊïsáŸiÿVùÿ<} "BÊñjÚ»Ø]šªbXnOúý£÷à‰”%GO'ÊãÝÎg‹ç{i‹ar·‘FÞ· ,ŒaqwjY— ZëØû£fޝ?(³ŽF paÄ  oIgä/털¸8C‚%R6)ágT,Ê¡²d¤„ç WÔT!D&Áö¶˜­Nûè̬+Ê@ˈÜ–¸ÉáyJ„/OÀc-f©ÿ¿•}ºE ˜8XÖ/œºý¢÷âΤEø2¿²ÈŒjºVÕ5óÌ ·óÙbÀù^Úb˜Üm¤‘÷-¨‹»`=ÉÇ‹#=¡pAë¿@ÏÍñ ôrNû6¤ »,CÔî” £¬cmðÕÌ»pÓ½¸ hçúÁèÔ{¥Ûù™Ñ»Œ, êÖ(÷°Œ‹ÿ=¢"&¤¹•1ØZÒJÅ‹‘Ô:" ¿i6IaÕÙ˪Âð^Îø¾¨ƒú™ÄÂü,q©r!›—ßWëˉbÏž«N÷#†ÄnC\h1ö”¦ª þ¬Š¦nçó.9ÏJã{é?»æ6ò¾µ`±"†eÒ¤IjÇFÒ´iÓŸŸo×ùeI»¹ µ»ß*åøú uÐWX £|ðÂó¸åkKUUBBª‚~¬¬`dån»ÄÍ«{äaÜš¸•Áã'&òÒȳ0ù^º;«ìÏÈûf66ÞpнÐYÃBÁâÙÌà‚Ö3~ž›ãè#äœöÉÂèDiJ+ÃUø° Kڇثp²e–̈́Ң„…—ãÒk§#ý‚ªóû¶öÅ÷ߌAYiÒ3v`Èè÷‘s*­ÚÂRY†¹ï߇¶7£×¥ j{ç™WÑgÈ\Þs óеß2ô´ gLÅþ½Ô"#'¿Š_}.›õ+†cÊý#¼I‰sÀÛ¤'FPžvEîm‘û[äΕý¥)XRp‘0Áœø^çèûâ}3,XÌž—lÅYÃBÁâÙHsAë¿@ÏÍC}„œÓ>YýÛ ãZlCbx1–äd U2læü0Ý/ùz­ÆîM°né(LüÍã(ÌKĬ=‚qwü q ÙX0}*Z¶Ýƒ6¶T –å_LFee(†Œþàû º\ŒþW}¦ˌמÂÄ»Ÿ@xD)>zé9ÜöÈÝ*Ï{Ͻ„Î}Và’ásÐÂbŬóŪn?¢BÊðˤoÐ-ò *#ñÇã7× ¤·¢ßV×É÷Òê°¦~_¼o†‹Y_3kù¿V ϘS°xƹI€4²0:\œ€‘Íw©ÿ.‰Çª3­1aä(ï¹aá ©TÂbÚ+Ãíþ;×¾m}pÍͯ«<åeMÔ3º…¥çà…Ø·µFNù;BC+ë,£~ö"’Ó©ß}þöƒJ¥gì¬%XÞþ%Œ˜ô¤´ÞËᲈ€/PuÅVÕò½´Õpy­±¾xß%X¬ˆa™»6 BiI4z_6Ý,QÏÌûà>œÊl‹“_Åüî¥`ñÝÐ*ÙÈÊPA|Ⱦ—¦p9æa#ï›ÙØxÂÅìyÉVP·"†¥gÏžˆˆˆPÝݸq#ÊÊʬè:ë$mÕ{µ IDAT ¨€G)– ¿~±ñ9†²ü¡3Ð>x| p¬ØP>ä%FP^ªŠÅ!@陋æâ3á!À]ã¼ràO›Îoå€fÀíKNÓú¯FÞ7Ÿ ÿuÓýš¬ˆaq¿µÌI$P&Mš ´´”pHÀ;|¾0z±ñÙ†Úê©`™Üh <¯]!ãqÒ3Sו}Úrºa<.ƽˆ@ fc²°ÓTÿ, Lȇ=#@ïe|ð|Oàﻀm¹žuËŸ¹û%i‚å`!°ø°R;û£V¢`ñ爘¨ËŠÍã£$@ ‘’‘‘QýgáÂ…Ø¿_;퉉<"@ #OËs=¬ï –Û.6,¡!Ö ™P„a$^C:ú£ …h‚8Ÿ –šŸCùùùX¹r¥GS™!@ïååÉÀ”vÀ+ ýêÏ@ÓôÃR€‰m€Ïs3ëgMÁ·H€ hìP…º"¥fq;wîÄ’%Z, xDÀÄÂèÏ]¶1À¿ö£Ó”(m÷òß{¬³F¿¾IÀ¨4 %È-–ž;×ÂKš#[É‘ÀéR`ÑqíIuË­í€K“™‡€¯OÍš?mti „„›ÎÓBÝ•þb¯ÚŒ¸•5oLhtŒš„‡‹€OŽ;ó€Ç»éÑçÊüè p¦ øu{à«ã€äí‘üæG@\Onh HbÂÀôCÀ¡B-ëh­žŒ ¬ ؘüçPR ôJÔÊ\x .KòÊ€÷ À„Ö€#YpÉ.qÝ$•Ñø7–â)\Œ{Ð ½.Xjn–Èç’¤¼¼Ý£©ÇÌÖ–ºµêó·o"Ð4Bý‹Nßžnn mq.ÇÙÀ‡€Wzû €µÙÀ¨tàÕ]Àî|`H `xªö®Êg‚ˆ…ïOkùcõ÷·[<ì;ûž/¢Ã´2_nl „‡ÿ=ª½²y e®Ë>8àz£`L:pmÚ¹vU÷­.ˆni¤F{óg´ºè`o£1,†€Í!€"P÷ØêÆDJ͆geeaÕªUÕ?:zô¨Ë~éôHÁ\Njj****ÔŸÊÊÊÿv Ún˜,º 8Zü7è¯ ŠÍg€×vmb€?uN–h lY¼tˆþ¹[[ˆÐø]'í÷²—ŒXàí}Àw§k –NMqñZ~J[ È¬ýcW = ˜}Dƒ, í¹Àÿ7´N”_f?æ²Hi,=ÐY²¨*®F´âÃ?n.Œ~žÄ„ïÐcÉM€{;j ±‚rmq%‹7W§j¢JaãZi ²G·å•À3=´rD¤´‹dÇZ„ÚLJµÅÛo;Ù¥Àæ\ 2T³êH?rJ­¹Ú‚Púÿð& ·NhB‚T¢×áu¯ –úDJ]–³gφ|ù;…††",, uÿ®û³Ì̶ÕÏ6ØÈgbUUüUŽî£š×iŽvò ¼>]ÛdA|¨H›ò®Ê{+±b¥¸0VÕ²I ýöÕæbi%°=Oû]j$pwmÎ.; IºÄÏoö¿jôIÔ60Dü‹ˆQÿ×mšè—2óϾWò]—TTiïÔúàªm£@6Läýn,ÉgÑ5©€XPäÙuÙ€ˆ­§»ke¬8ä”ibL„T ³±ñ†ƒîýýºScXÜ¡Æ<$à;5‹¸xÉ"Áôæ›oºÌV³®†f9ct"ŸµGÿ‹µéOºœ?ò€.Xþ½OÛ5•E†X6"Àû×kÙÁxž –ÖÇG£{÷îèØ±#tKŠ¡‰à¿ÿý¯Ë…ý¨Q£PkQ^Oá,']Q1ó^£†žÓ…„l:Èæƒˆk±žž( +€_^\ÜìÜü‹ßÿöÕJ±!VVI²!BGæíñÍÊúX7M¼ˆ°—ÏùÌX}Z³Èû*ÏÜû£fyÔË”÷YÄÄ»h"ô¿9¡m ÈæÀ—Ç€OÏnZ4ÖwÝ%ì³£À¼ÌsŸ!ú»'yõ͆@,fÇÕ°`1{^²Ù†xãyưxƒ"Ë ï0""ŒÔæÄ…´ô›ýò½€2³0ÒÅ[€Ì³§x=ÚMsy’EЏxÉ®©X bÃ4W&YЋ5E\ªþÖCsëøÃFm‡µnÒË!ª-Jdq"I\¥Ä•£¾$ yqc1+Xjº»ˆ`Ø‘,> ˆIRC‚E„Ç?´û7Õ‚Kê­/É"IKâš2¨9¡¹²É¢M(º`‘]`Ù9–$BJ\d~}6ØR[àŠÀ{5ÁÖPrW°¤£†ÿñQÉF>nê}†BC %³|̼—nÚÙŒ"úo¿PÉb5Ù™¬ÊÒÄ‹¤†‹¸4ŠØÐ“þ¾Ôm¾‰Ð;Q³ä´ˆÔܽä³Aê|p£fYÁ"–Ëû7h%èBê¥Ú»)í¼ãBÍ4ãë^×,âŽú‹ -ø^6E$‰“þ•`1{ü˜kÔ|‚^éìYPS°¼ûëêyqq1äOaáÙm-_|ñ…KP²»é*s9×_½r3‘?áááÕÿÖ&;Q@™Yé‚âÉ­çõO\¤YJþ²Us¯70ùò—¸±¦ˆÛ–.Xô¾ƒZw>êåËID­cιUÉ"J\Ï$¦E\CjÆÄHb‰ 7/Xd±$‹¨ž‰@§8ÍÂ"‹°§·j.Y q-ù¿½Zëeñ%n&"ÖôŸéýQ&®erlª,Úd‘%±Õ,5Ë|©—&X$Ø_’.¬|%X¤9%ÌN–š.œâÆY^^^Ë¥óûï¿7dñqõ™¸víZKÊÉÄZÖOW}0ò{±dH –¸bŠ;•¼º%µ!Á"賂 ==ÛHj¢‰yz’wJÜ3EØWhï‰XPÄâ*îY5KÍ2ﺘ¸ÿÙ¡¹dÊ¿ågFÅE]Á"›b•w0q󔤋£eaiä_œÊgØÂbÁÂ#Ó(°ž©ãX­ck<%ÐÐøºŠe¿qñg" ¸Ã"»“²K¼ÐSÛ-ýÝúÿgï<À£ªÒÿÿ’L2éB UJèE±¤( (àRÄUA×-nÑ-ººê]ëº*ûÿÉ*Ylt&UzGz Bz–™ÿóžËÄ$$™{§Ý)ïyž<’Ì©ŸsÏx¾÷}ßs€ßu–‚òÿ~TòM'±rGê.!N—§ë mVÈe,×$¹ŒÔº'×Ú¨;7N—°åÀk׎-&÷3ÚX‘K YnhCD¾ò/sM…ÞîÒÈäƒï¼óedšCÖ YNÁò‹=’‹˜ÓR[\8]Âà‰ý’à!« ¹ÇѸîL“\Y(^…âVz&H~þ(XÊ7vFll,âââ꼇_v”âEÈõŠN%¢‹"I¬Ÿ{mÁBm<ßMò¥'?yŠs¡SÊèí/ù³ÓƆ‚Ñi3ô·£?n€ÈŒø¾P do,‘Ø¢7ÂôæwåeI¸ÐXÚÔÐ]²ˆ8O £öhóFq2oR[°Pý”LosÉ…†bVèß$Xž?"$ö“ÖÒfpCžØO'‰Ñ‘b\(Ø¿~J,,‘ˆC/Ü/†Ù£‡ רB!Î`=òqTÖ3×Ô߆ðéXãùóç˪›3¹A@Áºt£ö:EèE­Ã¥¹’¥Ê K©Ó%“žßÛ[HÏ6½@ ÷Åúâ‚*tžxGbܹ¾i=‘E…\H)ž…\¿(&…,¦ä"Ib‰½ +þÝÛ·‚…Ĺ¥R}GÑw¹šÒ÷ OŸ"/—W#†eúôé0b$Ÿ|òI7//$«“³¡ ɇɠ”ίóÍ'èÓ±¢œ˜€ÇlŒœ‚‚Nõ"km6hcÿÁYIÐïd1¡“¼(°•D /J®d]XrQ:!kDšä Beh£B‚€RýcéD!AN« •ùIà†8€,ô—ܬœÂ„6V´¢ (MM%ڤщ^­£¥7½´Ñ¢à;”ȿڣÀ|:î¸ÈÚ°`¡x²&Ñ©g´O'--É‘úM"‡ÞP“¸#±ç%72ÊOùh³æ‰`!2_78ÌMø»/r’\§x¡ïr—âä# Ö¥§= qMÇ “¸ WD:ŽÖ  ާµÇ:H§iÑatdwC‚…úAn¡dUMŒ”ÄÏêËÒËJtÙí)€ÒAt\1½À +é_/÷ð­`¡>Ð)Ž,²Ô>³¾›˜§<å”—³Þ”ÆÆ‡”K˜ˆÞÎÂÅ3¢J7´žµÆ¥ýM€ç×ßĹ½ë(Øyz±#Ó\r6PÛû왂u‚£ù!ÉYoJCMd ¥ç%«1jݰ`ñl¦yCë¿@/͇*ú …AÿlŒ‚I°u„üçKtáY‡8Iäl ˜• (X—~ìUÀ4ìë[Îzó™` ˜Yl¢#jݰ`ñìÉ`Áâ?.͘€  6FÁ$XxÞ•³RV#çöˆ€‚uéQ;\XrÖ[X 5bXî¿ÿ~DGG‹bÞ¼y¨ªráT¬Ê£¸²` ܹáž1 À£˜FO!gåi\^^— `_V9ë-¬‹SÊ‚Å3ê,X<ãÇ¥™ðž……Y†.9¨Ð}ŽŒKNŠ÷º$g½…µ`Q#†…‹g8Ç8xÆK3&À‚…Ÿ×äl \×Â9¼F€‹×PbErÖ›ÒØxÙA÷¤~ŸÔˆaaÁ O÷‘ 0°%À£°úÚ—³bP~$ÀëÒ°ýß”/Ö›lÁ¢ô¼dÿãÔˆa©}qäþýûa³ÙÔ:·É˜` à?|JXà=¼.oN¼Ø#U‹R_3/Ž›«bL€ 0&àÞ¹Ç-ÄJ•o¸e;#66tA-'• ðºTy|Û¼/Ö›l K05bX|;å\;`L€ xD€7Fá •Â¾xã*lT¯KU°û«Q_¬·,jİøkò]µ¯­ÄøøÈ2\@ŒÖ„2»ûLmñe阑¢¸ÀðظÍx Íu¥¨tpÀÔ_”D¹=ÊUü¹Š‚u~ùPnZ"À#~øâ/ƒõ€¯Kà~Q_¬·,jİÂc¥±â™”ÅHї
 .Úš£¥¾=£Îá„% ¯åݼ/a+†ÆB޵Ž˜[#M_„žQç‘kK‹W'ÀêÐÂp¸õóüò±Õü8«N€7FªOA tÀ¨@WÐö×eÐNœŽËYoJcãCJ°ÈŠy†ÅÂä„­XVÖ_—õ¯â-Æcª²½ª´•øGꜳ&ãÕüq°9t"ß½ñÛ1"ö”ÜŒõYx7cvTuÄÜ¢¡âóWÓæá²-¯ç¿SÞ!1‡§­Â>S&>.ÎBÇÝr¡8ÞS0Ï/ o? \Ÿb¼1RŒ, øÂE%9ùmL¼.ý†Z†ä¬7¥¡&²‹Òó’Õ®1,&­EßèÓøã•i(®Ž^c‡Qcª™‚*‡£O`Fâ&Ì+ÎÆæÊ.5Ÿ%ê*ñrê'8hjƒw G5)<úDÁÏš­Âè˜%¿h¶ «Ê{cyY·Ë©ñœ[›Á<¿,X‚íi ÁþòÆ('Uùäl ”×Ê%Ü&ÀëÒmtÁPPÎzó™` @áÃòÛæËÐÅpå΄Zt6äâ‰æKk¦ì½¢aHÖ•Š—7 îÂQsË:Ó9;ý}\²%áïWïiRxÌJúý¢OáW—V•YIk‘Q„ò&¹]Žc\¯¬`ž_,®ç—sø˜oŒ| 88ª—ã¢# ‘^òº ‘‰lxrÖ[X –pa!áÐ?ú4ž¾2Õ±ˆÑš‘‘'ÄÄÄøí Á­±`Zâwx·ðì1µ«yÂ"4Õx'ý}!bHÌ4åÚõDòRtŽÌ…ùZ¬‹vØ Ãã—t»oh]gñüºfÄ9˜@£hcÀl6Ãb±Š“«¬ÃÅk×Gy›J Õ§´|Sõ+é+?  †å|¬qà< ¬ËÀéœ÷{Bßá”䬷°,j< ½zõ‚^/««uq$Å”LIØ‚5å=±¨ô¦ tOn[$XÈUìÉ䯱±¢æ—ÜZ“§›!¿n¾kË{àóÒA˜þžÈŸ]8ÞJÿ'-©"†efÒ:ô>…çó& KŽ3åÙâÝ.Ç‚ÅõSËóëšç`®”••¡¼¼ÜU6þ<Ä ð=,5Á¼.k>¼Ý›¦Ö[X 5bXf̘¨(éHà?þ&Ó±#ÞžøÆê3ˆS– …¾DÄ¢\°&£…¾½¢ÎÁ8%Œ‚íŸMY,Nû´${ª2‘QŒ‡×#Y_&DÈ[þ’²Hüþ~ÑPt3\À ãqœ·¦àµü±è}$­ÅŠò>Â"3&n·hkaÉ ·Ë±`qý”ðüºfÄ9˜€+¼1rE(<>gÁXóÌë2°æÃÛ½ij½)—tïíAø¢>5bXA°Kº§cBüNôˆ:£ÆŒR»GÌ-EP< J­" ðËf+‘¤«¨ÁouèðQñ`ì¬ê(þF±0$n.dËËûŠ`}:QìŸùã…ŨؽȎ9ŠX­ §,©"ˆ¿ :Îír,Xä­ž_yœ8hŒmŒ81"À7ÝÎsÀë2pæÂW=ñÖz“-X”ž—ì«7U¯1,"Xäò&7¯,Cf$n„<—7YÕK#Y°È9yùm~ùPyóÆ¹˜`L€ 0Æ È,J}ÍÂz° ç¼Ð½-t¿ݹrÖÒ*º ãïÄ‚Å7Äe~}3:®• 0&À˜'!%XÂ5†Å–nO(iº.¢ÂnÀSW¦Ô ¤w§Nwʰ`q‡šë22¿®{Ê9˜`L€ 0&Ð4,áì: –`9î7`L€ 0&ÀüC ¤‹1,<𠃘­>úHœõÏI>ŽqÏŠs2&À˜`L ()Á¢Æ²`Qƒ:·É˜`L€ 0&¬”ÆÆË,JÏKV 1,pq¤¬¹M&À˜`L€ 0&àŸ w:ãï2jİø{ŒÜ`L€ 0&À˜fa-XÔˆa 懅ûΘ`L€ 0&ÀüM ¬‹¿as{L€ 4M€Uà'„ 0&À˜¨O ¬‹1,ü2&Ð8>¶šŸ&À˜`L >¥±ñ²ƒîƒ5ǰÃ,qÉ –pšm+-ñÚJŒß‰,ÃÄhM(³±ÏÔ_–€É)«0<ön3Cs])*0µÅ¥Qn - <& "Ù‚EéyÉjŒ‰cXÔ Îm2¶°ð3À˜@hˆÒXñLÊb¤èKqÀÔmÍÑR_ˆžQçpÂ’†×òljß—°Cc!ÇÚ GÌ­‘¦/BϨóȵ%áÅ«`uèC † ¨D@¶`Qêk¦Òx¸Ù #À1A6a »Ë…À8;`A`XÌ!LNØŠee}ñuYÿš>Ýb<&¬*Û«:!A[‰¤.À9k2^Í›C'òÝ¿#b`AÉÍX_‘…w3æ`GUGÌ-*>5m.ÛñzþXñ;åsqÚ*ì3eâãâl!tÜ-¹LÀËBJ°p ‹—Ÿ?TÇZ?@V± ž_ásÓL€ ¸MàѤµè}¼2 ÅÕ1Ðkì0jL5õU9 }37a^q66Wv©ù,QW‰—S?ÁAS¼S8ªIáÑ'ê ~ÖlFÇ,øE³UXUÞËËú¸]ÎíAsA&ÀBJ°¨ÃÒ»woètÒ[•}ûö¡ºº:€§;ðºÆÚÀ›oöˆç×›4¹.&ÀüEà·Í—¡‹á"Ë ;´èlÈÅÍ—Ö4ÿ^Ñ0$ëJEŒË›wᨹe®ÍN—lIøûÕ{š³’¾E¿èSøÕ¥‡„UeVÒZdDá…¼In—ó#n‡ ø“@H 5bXxà 1g}ôÌf³?ç/èÛâ mÐOa“àù íù ŠÑu=ÝäNúÀÑ®²!áÐ?ú4ž¾2Õ±ˆÑš‘‘'ÄÄÄøí Á­±`Zâwx·ðì1µ«©;BSwÒß"†ÄLS®]O$/EçÈ\˜¯Åºèa‡ :<~éA·ËɤZ‹ôKjµÎíúƒ€Œµ¦46>¤‹?æ ~,X<£ÎZÏøzižß@Ÿ¡0è –.,ZÂ`¦›â±®€ŒM”³Š)™’°kÊ{bQéM5uSÐ=¹m‘`!W±'“¿ÆÆŠn˜_rkMžn†üºùr¬-ïÏKavú{" váHDhlx+ýCœ´¤Š–™IëÐ?úžÏ›$,9Δg‹w»\ÀÏ5 –Û×|7¹ƒn(IÖIñZM%¥±ñ²‹Òó’]uÔŸ«ÃòÓŸþ‘‘Òñ†~ø!,‹/†²uò†6d§V ŒUíù ŠÑ±` Šiòy' ƒ8%l ZèKD,Êk2Zè‹Ñ+êЈSÂ(ØþÙ”Åâd°OK²±§*iÅx8q=’õeB„\±%à/)‹Äïï E7à 2Çyk ^Ë‹~ѧñHÒZ¬(ï#,2câv‹¶– r»œÏYzÚ O vyµK`Ó‘z§F Ïž ,žñãÒL€ ¸ pM°ØívFÆl‡:Áv°“ `4e‘ {X&ÄïD¨ó0jÌ(µqÄÜRÅ“¡Ô*¢¿l¶IºŠš:­>*ŒUÅß(æÄÂ…lyy_¬O'Šý3¼8qlTì^dÇE¬Ö„S–TÄ_Pçv9YƒS3S-ÁÂëR͉ðMÛŽ¢x˜WJǦ֚Ï,,¾–wkU#†…‹gsÈ‚Å3~\š 0ù‚…7Gáû´˜öµƒio;±’+XäÒ"7¯,Cf$n„<—7™/l ^-Áb³Ùäbæ|AB º0e_ €^¯Gbbb£½kÁ¢Æ\²`ñŒ: Ïøqi&À$+Z ÈìÄsu‘Ô²°È,…øvõtLšòŠÛxOüÐnØåvy.è]¾,Ξҽ-t ݹrÖÒ*º ΩÁué¦`áuO óÄ1,2 XŽq° áî0 %X‚EƒÏ>~Sfü­M‡CƤ„ƒ»Ûþ,Q+JZ‡n†‹¨°ðÔ•)u郛 {½,ÁÂëÒ½YTVJ®`Q/;è^YwÕÉÍ1,êpçV™`j Qž%»¶hÄëÌ–t1YûqµY¾Û0fs4t:+ÝúÒ3N‰.Ÿ=Ý»wބՉôŒÓ¸uð"”·¨±°Øí:¬\:­ÛCÞë sÞÜ¿¢Wßu¸x¡3*+ãÑ¥ëtïù¾]5çÎvCRRFÜ9Kþ½ú¬Ç}ƒñ“û_„^χ³øûyñ‡`ñ÷˜‚¡½×eÛ}ˆ±WóZñº †ITØG¹‚Eaµ-X”ž—¬´#ÞȯF Kí‹#wïÞíapL€ 0& mŒv•¶Ä„”£HÔ›°¡8Z8=h%–Šî=¶ C§]8}²7öîŽ{ï{ •ñørÑo0îž·[‚µ«f 5í,Zµ>^#X¶~7v»·^|]>ùàtËÚ‚¾V£²2‹>ûî¹ïuèõVüï“§ñÀÌ?‹2Ÿ~ø:wÙ…7-À…Së•ì,X¼‚Qq% ®KƒÙSgcÉÂ_ [ÖwèØy¯KÅd·€ê‚EipLà¢äž1&À˜@¨ QŽ)£›ŸCË1Çc[I+L¼¶Ž'¡ÑXápØ„°XøéSøé¬§qòx?œ=“…á#?el¶á²å´°ôèµIX`FÜù>´ÚëO#Á2zì»hžœ+Ê/ûê1tï±i§ë –žÃ£>@‹Ôó¡†=hÆÃ‚E©jp]–g`ÒÌÅzs8ÌÐhì¼.Õ™Ÿ´Ê‚EV5bXdt‹³0&À˜€ ÐÆ¨ÀjÄij¢¥«Ö¬*ì€éCþ‡Sº>x#ª«µä -h IDATp8t(ÈOǃ<…ƒû£¨0Ù·/¬Ó; î]úåcÐhíhÓö(]Ð`ïI°ŒŸø&bãŠÄç«W<ˆ¶™‡Ñ¶ÝáëËØñ³Ÿïc \}cX°¨ól4¸.‹Úaú£Å©=qèÀ‚ÉëRùñE«,XdPU#†EF·8 [|¨BØN½ßN£\s¶:l§Þï§Ñî² LL9‚X›ŠÛB§q kÖ,Ý?Sf¼DN_صcîÏÆ?+Ê’…O`Ìøÿ !ñ*Ö¯Šä”œ:1,W.gbÝšé˜0é_ˆŠúñr@ :ºøÆ›¿AYi3|ñùï0qÊË"†…âVîè9`ÿéGÏaìx,~(j5È‚Eú ®Ë(ºŽ\‚¥_ÌÄ}Óÿ!Ü-y]ª3?¾hU®`Q/;èžcX|1­\'m,XB{~itÊS…K˜Ù¡÷±ÄÒ)aÍÎÀØý6ätGnn; •xÓRìÙ}v­*gNõ¼vJ˜-O^wJqǶ1¨(OÄÐ;>©3d,tJØÉã}a±D¡gï èÚ}›È³jÙLäç·Ö›Õ+bÁ¢òÂE hp]fîƒñŽ•Ø°v"r/fÂUÅëRéñI«r‹R]![°(=/Ù'\TÊ1,jPç6™@ãX°ðÓ¡:7.Ž”Ûg,÷L~ƘÒ&‹h5Àï*F©Yƒß®I[=çó",^„éiUn^)·Y¹ëRn}˜O¯~Ö·ÝSlâ{åëâ¯ëæÀ í[‰ug øôP´ß†¡º`ñÛH=hÈ–xm%ÆÇïD–áb´&”ÙØgj‹/KÀ䈽¡{j‡ÇÀmÆch®+E¥Ã€¦¶ø¢t ÊíQô˜‹rŒCh?î–ÈÈHX,|OEh?~Ë„Éo &¦Äç‚eFJ´Œ³ã¥­±^çÜÌÌZ–{€ž´lÐÆâáÔ/Åxw•ÏÃ÷eÒin”†%þ7DÀ‚«3Qh“Zh*±`qEÈŸûA°ÈY—4⃯ßQŠ7¶ÇâH¾Þ“²)úR0µÁE[s´Ô¢gÔ9œ°¤áµüq¢¿÷%lÅИCȱ6Ãsk¤é‹Ð3ê¶³ ·µ¶ 6Ò¼ -‹ÂÁ¼ÑGÚàO¸Á„›[Y`Œp §L‹EG£ñC^|VÛ%,RçÀŸo-GZL5^Þ‹ÓEz4‹¶cj÷*tM¶‰¶äéñÉ!£¨ûß#êZpžÙ‡KåÒÿ‹K74·áž.&´Ž«†Í/ÐcþáhViñ×ÁehW]StÞÁh¤ÅÚqG;3>Üoİvf”Y4b×X¿Ê-b+zÓK\Zí¢Ìú³¬8eŸý¤{•¨ó¿{‚KçæÕ¸P¢Ã;»ŒÙÞŒÁm-Âeî~#N^ÿâÏ)XÊ«¯"V—‚#•˱¡ä Q·7-,µ_–Ð÷¥²²2|öÙgž?\Ãõ|,Xj7H®S“ºV¡_ºq‘vTi±ú´Î0-« C3Í5Ù¿ÏÀÇŒxgT Îë°óR$îîl¿vĈ瓞×QLheG~•Vˆ…ïs¥ç…¾/¦dU!+ÅŠ-pºX‡Oq¥B‹h½CÔy¶X‡µg ˜Ü­ :-ðõñ(+Ѓ^4¶c×¥|tÀèòE}ÏŒédªéw•Mƒ_®L@ûÄj<ЫR|¯œ*Òcÿ•Ñ»„à"TÃòhÒZô>?^™†âêè5v5µ‡£O`Fâ&Ì+ÎÆæÊ.5£NÔUâåÔOPœr NÝøoô[Ú;Mñ^á‘§¶`éu?k¶F£c– ü¢Ù*¬*ïåe}š,M• @ünu‰‹[Ø‚¦PýùmJ¤ÔTAA¶m“‚—)åæJó5•œë_£‘6R ¥p®'55ÕÕÕâÇn·7ú_Wœƒîs‚E§æÜU,„É‘ül:‰QÌè˜dÃçG£±ò”Ã2͘šU%6;/E`RW“؈üi]JÌZŒ¿Á„±L8š¯Çá«ÑÞ„(=ðü¦8\­ÔÖ,äWNo?ßÛkĶ‹‘B "\À<, ‰”úX¼x1è»ÈßI«ÕB§Ó¡þëÿíÒ¥K':ø«§ bË‘ÛýCÑw›ÍæS¼$8Æu6 ·©ó%:ÜÔÒ"^ Ð3ZfÖ QÝ!É&Öø¼±Ñ÷Îb±¦-ÕëyÕé(¤ÆTãñ8|UMç ÈncF·^Ü"½pøyÿ ôK³ ±^bÒâ¾îU¢=Zo$š¨NùgKô8]¤"¿ÚNÂF½—#@-³wň%M¥6 ÕÕÞ,,¤»/G`÷¥ìÌÄK·—"Ùhk­Ø¬ÅímÍâåJ  ¥±ñ²ƒî}úDy©r¥1,¿m¾ ] ñXîLØ¡EgC.žh¾´¦7ï C²®Tĸ¼YpŽš[Öééìô÷aNè€cÙó›,³’¾E¿èSøÕ¥‡„UeVÒZdDá…¼IM –¦Êy ™êÕ°`Q} |ÚÚóK.^´Ip'Í™3Çe±Úm5–™ëic(òÙ}n%vß"~JN y}<¹6Å&-Ú'Ùðç[Êq¾T‡6ʼnMYŽ\գȤn$äNB²²ÐT:Fù7«„˜è›foué­-}î´°¬<%Þz’ðXrL'›ÙðÇ›ËÅV1”î]‰VÑŸÄfäd¡^–KX«øj¼]&|òÿ³+Fô§u|µdNË ¹˜%EÙk\œomIhИäô+:Â! R𥧠½-^uÚ€…G¢…ʼnÞo<)Þ\÷haÅoVKÌïÖ$€x“õˆ,R?[ž(úW;9KŽy¶•ý“’ÿƒsæï±¬ðÏn –6#Ñ­[7tìØNKŠË/–k¾ùæ—û1cÆ fSÞHÅ\OróÎc©æ¿–_ô¯kñßßÇABÏZjŒ]ˆÿJ«³úT ãt s~PçHlÐsMéÉ›ÊÅw½€¸\®u¼0¸L¼Ü «=û$L¶åD É‹·—Š;-¬.#Ú›ÅKŠÚß M=›ôƒÄÖ?Da鉨šïê/õ›ÕGõª`‘»öœùd ¥ç%+íˆ7ò+a!áÐ?ú4ž¾2Õ±ˆÑš‘‘'ÄÄÄøí Á­±`Zâwx·ðì1µ«éf„¦錄’æprÐÿkR°<‘¼#sa¾뢇6èðø¥›,M•ó¯@¨ƒK Ì‚ïú@/è»#11Qü¸›Bq#M,x\M?Þà£D°ÐFš%ÚØ¼=²V _• \¨hÐ6¡dÁ  ý¼»Ç(Þ’¾<´Tl‚ž^ýi=ÎMmÈåèÍ,½Í¥äô£oˆm¤ÈýD‰`¡6þr[™)Õˆ7½‡®Fˆ‘Ó•«1Á²ðh´°¬Èé×Ù~Ò­J¼i¦7¹Z8„«ËÆs‘øø ±F°Ì?-Þp;…Yo^¾vxÀ߇”!=¶¿^PÓ7'‡Ú‚åëÂ?àŽÄ§Ñ)z(¾*x7ï@—葲‚î[FöÂíÆ§ÝÜݯ °ÐÈh’>þ,$úí[!¬˜ä~H.š[s"…x¡Ô˜`1Wkðó?žèç\/õ!8_"õp\'ZÄØ¡×Jë€ÚüÝšx”Y$ «ó»„êp ©W·Å ·0ê'úEë„Ö‹«T_°Ë%½äØ|!RXM)‘£ñ…`Qz^²+Øð9Å”LIØ‚5å=±¨ô¦š.QÐ=¹m‘`!W±'“¿ÆÆŠn˜_rkMžn†üºùr\jûäöx}—Â!SK¼“?ÞJÿ'-©"†efÒ:ô>…çó& KŽ3åÙâ1;ý=È?»p¤¢rÀÏ}`Áâ ŠÁQ‡\w0“Éú©¬¬¬ØÒ¥?Z>-½Ýt•¹ž±cÇ 7úÑëõ5ÿvþþë @sHõ(,´™§3¥¸HÞñ£`ùÇRçA›SE:áÛN› ,äæA‚•`¡zw\ŒocÉÇýÅÍqÂÊ@q1?íU)\C–_ Îgùr¹Nˆ%‚…Êt jeÇž’‡ê ëʳãDqc‚…âYÈ¿Ÿ’«~MìR%üú)neý¹Hd¥Ø„õ¨¾`qÖI¢âgÈÍæµíÒigÎx9‚%^—†)) ÐvW¬? Ë8V–`¡vè”°`²°Ôvá$7NrªíÒ¹sçNYW߉»wïö=z›ß,,4~²d &Åu‘#y ÏÙkk±1ÁRÿrçz!KM¹õGwL‹MƒJ›F¬Orqü¿=1(6i„%‘ܳj –Úuþ¼_…°Àþsk¬ˆqžú%W\È,´þgöfÁâj ¨ò¹Òƒ8%l ZèKpÐÔ¬Éh¡/F¯¨sp@#N £`ûgS‹“Á>-ÉÆžªL¤EãáÄõHÖ—áàm `Khnmé9¼_4Ý 0Èxç­)x-,úEŸÆ#Ik±¢¼p+·[´µ°dþ’²HÔ£´œ*€}Ð( @ ‚*]‰ò'ÿqNLÀc2bXj»üi]¼ˆ¹ «Á7– —W¶ÅŠ |gp+õéÙ[Ë™X-6>»r#1{t 4pˆ{VÈÕ„Þ¸’Ÿù¶‹c¨ÃBÇ‘ÒÅÃât «my Zh8_"äÓ†ˆ|åÿ±Åõ±Æ³BÖ ;d5¢ñý²z¥Zá ØwnÀ½æŠåtߪ-X\õëé[Ê„Åé…ïâ„‡Ä Ó;]Àê×é©`!î·Æÿ=cîAIõE$èZ*,¦½í`4ÅO ǰxüÌz~ º§— Æ»X;NñBîXäªùÁò¯±8tõú2œ(.a$´Ip“–Ö?¾AÏ5Å·ì»·wƈÏèeÅÆùK°ûà éûÊ鿏¥-þ¼>Ô.¹pQ0-¹mÑ›X ¾R¡>ó´¢X«]ƒ¯~ˆÂŽÜqÚWcɹy!÷—-9‘·þÎ&PÌ ÅÄP{N˵GcèÑÂ&âMj úWSýú½%N³ ?~Šc!k mÞ.–é0wŸQˆ¶ÚuzC°Di0½Å²LÒKú~ “ÄÖœ1ˆ¾´°ÐK‰W†Iqi´KÍZq0@¼Á!, ŸÈp3óÖ#Á‚EI¥1,2ª¬ÉBn^Y†ÌHÜ;4x.o²¸4ò¡‡‚…Òܹs}~â…’>C^¾82fÉ}Œ‹‹o>)@ŸŽåÄ<& @°ÐÉ@´‘¹ç“ Û/Fˆ£I)„6,tï‰:•gÑÑ( àGÁBCÒsNâ‚,t Æö‹‘øêx”Xgd‰$!Bëú{Z ¢@G Ó‹ˆÄ(éxäU§¢„5‘¹ˆÒz¦:éïô²à×Ë…û€GM_ êñ§=+…X¢öiœ×BBìÃ’À÷G’+X”ÆÆ‡”…ÅA÷¶Ðý-tçÊYK ´›ütÒË‚Å3Àm0&ÀP Xêû­+h…³8¾é>€&È‚%€F6]‘+X”znÉ,JÏKVcf”ư¸ÓÇ(%­C7ÃETØ X˜ñ  •,,ü6Æ¢\† 0&àC!(Xèm.YqKt4*‰/N?`Á@O –&'ƒ¬ŸÓX"Nº;)P“ê‚%PÁÔî—;1,Á0.î#`L€ ¸I ‹›$º –š~,4Þï L}Ã"£yΘ`F@†` ´.s¼O€‹÷™º]# ·ÑCA,Á0KÜG&À˜,,Xk>Tê •À7Ô, –š ïw…‹ ¦þˆa‘Ñ Î˜`B€K Ì„ªý`Á¢*þº³`  Éð~Wä ¥±ñ²ƒî½?$ï×È1,ÞgÊ52&À‚š – ž>ouž‹·Hz¡,^€¸UÈ,JG [°(=/YiG¼‘ŸcX¼A‘ë`L€ „,!4™î…‹ûì¼^’‹×‘R…ª ¥ç%<îKàà‹#wn¸gL $°` ‰iôt,X<%èÅò,X¼3ðªbÁ"cN8†E¤ËòÈ#ÔôhΜ9Ö;î`AO€KÐO¡7À‚ŽT / ÌjX°È˜5bXúôé­V+zÇGʘ¤zYX°(gÆ%˜P@€‹X¡›•KÍ- –š ïw…‹ ¦jİ<ôÐCÐë¥GçÎ ›Í&£§ÞÉ’™™‰:Àl6£Y³f8yò$Ž9‚ÔÔTÜxã¢/ôÙ† кuëóz§'îׂÅ}v\’ 0X°È€úYX°Ð³`  Éð~Wä ¥±ñ²ƒî9†¥áIU[°ôîÝ_~ù%"##1~üx,\¸'NÄêÕ«QZZŠ›nº %%%¨ªªBCy½ÿ¨*«‘‹2^œ› 0…X°(šÙY°м²`  Éð~Wä ¥ºB¶`Qz^²÷¸®Q–‡~:Ntîý÷ßGuuµëŽz)YXZµj…Í›7‹§NŠÿýï¸ï¾û0þ|ñ·víÚ¡eË–ÈÉɹ.¯3—ºãV5,XÜÂÆ…˜K€‹\R!KM/ –š ïwEuÁâý!y¿F5bXÔ,$F¶lÙÒ¤`!W¹‹/ áR;/ –Ñ£G#)) gΜÁ¶mÛ¼?).jdÁâwäÜ /,XÂk¾- –z X°Ðdx¿+,Xd0U#†%Ð ‰{î¹kÖ¬AYYn¾ùfˆX–†‹ ¬>Í‚…6<œ˜@88Ú5øG}mýZ,Чð%`ÚÛF£QüpR‘ –ôK°WÛQYU©bG¸i_ µFñ݉‰‰6á3—0_ *Øë DÁÒ¢E tOîi•••Ø´iÚ´iÂÅ݇íÚZw‹s9&”ŽuBA°\ƒOß…ôÃ)¼ °` œù§ƒŠ‹‹§Cܯ`ÁÒNг¡às²(øëMÚÌ™3kŽ5~ï½÷`·Û½:á¡^YP\É‚%ÔC_CX°ðs‚X°Τ²` œ¹ðEO\ ¥±ñ²ƒî}1o×Ù¹sgÄÅÅáøñãÂʉ‹?(«ÜF-x•{ÂÍ3¿°êÛÁN¢½Pp¡aëŠß€o(žç€‡,£ƒ$XüõrYFw8‹xs­É,JÏKöÁ¸]VI}4 ÈÏÏ÷Û"èÛ·/4è_érŠ‚3íç¼q¯="ÀAÊáãÂL€ 0&àE²‹Òà/ö‘«b~!p°¢ЬÑÈN^#X¶~7v»·^|•O>xݲ¶ ï€Õ¨¬ŒÃ¢Ïþ€{î{z½ÿûäi<0óϢ̧>‡Î]vaÀM˰…%¯ ë2 – ›2î0`L h()Á4³Ô@Gé8æû￟}ö™-ãÇǪU«PUU ì7™L8wî† †¯¿þ™™™HKKÃöíÛ &`áÂ…¸÷Þ{EðÿÙ³gÅ¥‘tÃ=•£¼YYYâN–éÓ§ƒ.˜¤:é’É+VˆÏ[·n->§ºããã…hj¨`æÜTßI°ä˜0ºù ‘-Çm%­0iðbØ:ž„Fc…ÃaÂbá§Oá§³žÆÉãýpöL†üH”±Ù"„Ë–ÓÂÒ£×&aqçûÐj¯?òšËè±ï¢yr®(¿ì«ÇнÇf¤eœ®+X>zwŒú-Rχ*~W€`Á`ÂÝaL€ „¥±ñ²‹Òó’Õ`Ì1,$XH<,X°@XDxà\½zU`¤ßsrrpôèÑÁ2`À´k×NJä.öÕW_á®»îÂÊ•+QQQ!â]ÈrBHR"kÍš5k„"qC‰¬-[·n¹ÓQl Yoœ©±6Hè„b"ÁR`5bHâY1¼«Ö¬*ì€éCþ‡Sº>H—qjápèPŸŽy ÷FQa*²o—x:Ý/ýò1h´v´i{ƒ‡.h –ñßDl\‘ø|õŠÑ6ó0Ú¶;|`;~6âòC=) °` ÀIá.1&ÀB„€ÏK0ð æ,$0>ÿüsqåÔ©SñÉ'ŸÔÁSG°”—— S;‘…eÙ²eÂzBõQp~IIIM–ÚíÔ,”ï‡~¨#Xê·AåÉíŒÒŽ;„ûš').Ž$Á’kŽÇÈf'ÅȲ½´F߸ ¶Ã„Io#>á2**°ðÓ? ÁB–Ó§zaÄè¹¢ Ÿج˜ÍF¬X: wßûo¬\: n\¶í]‡Š˨1sœrQ|¶ôËŸ#«×&¤¥Ÿi@°¼ƒø„OpsY& › Ù¨8#`L€ ($Ö‚ßxØ IDAT%˜cXê ²¶|÷ÝwÂÊB“ZXX(\Åœ.amÛ¶E×®]…5…ÊöéÓGˆÚ‚eРAÂÒB±,-Z´@RRΜ9S#Œj úŒ,6ëÖ­C«V­‘‘+W®4؆Âg²Éì<òHÍçsæÌñfÕŠë"Á²»,SŽ VgÁ¦â¶ÐièšµK÷Å”/‘Óví…ƒû³ñÀÃÏ ²dá3þ?HH¼Šõk§"9%§N ˕˙X·f:&Lú¢¢*êô‹ ]|ãÍß ¬´¾øüw˜8åeÃBq+÷?ôœ°ÿô£ç0v< Å“ÊÜ&À‚Åmt\ 0&À\kÁ¢ÆÓá­‹#ë –””ƒBî\tOB‚.Åt +Ä“H#‹ Ý“©-X(È!Ðëõ"ŧèqZrj ²®PÐ=ÕG®ctO1, µáMÎ$X”§ —0³C'îc‰¥Sš±ûlÈéŽÜÜv0*1ð¦¥Ø³û8ìZ!TΜêyí”02Zž¼î”0âµcÛT”'bèu­f$Xè”°“ÇûÂb‰BÏÞеû6xÕ²™ÈÏo)¬7«W<Ăś×å’ —ˆ8`L€ ¸I ¬‹1,3gÎb€Ò{ï½'6ûœä$ÁÒh¯Ý¸8R.,÷L~ƘR¹ETÏ×-Ù†'n*Ç÷¹xwO êÿ®zücH)Òbíøõê”[4xêærtlfÃ3âp©\] ø>°` ø)â2&À‚–€ÒØxÙA÷Á@D,ž=î²F‘ÕÉoÉÇ‚eÂä7ócœ‘߯åfCÁ(X²ÛXÐ<ÚŽ5g BÀ(Ií¢nÁè¤D‘¯ žÄE˾šâ÷·øšh̽r’*ƒ"/ – ˜&î$`L ,È,JÏKVƒž1,,X<›i¹‚…D ·ìüY½zµ8ºÙ/‰KÌÁ(X,~éh5À„L¸¹•ÆrÊ´Xt4?èEîÖñÕ¸¯[Ú%VÃjö_‰ÀüÃÑ0Û4×¹€)u {.» mâ«ñÒÖX<У ÉF;v]ŠÀ‚Ãјէ74·ál‰ÿ·Ûˆ³änÙ¹™ “»U‰~UZ5øî‚_ü‡ ±ü¤[nim¥Xz" ·gZ[ݨKXSã«Ë)XÊ«¯"V—‚µÅ/áxÕ·" µž`n— 0&À‰@H 5bXfÍš%î:¡ôßÿþWÜ0 ‰,r-t· XFAøÞNõKS"¥vÛEEEسgø“Íf—c6•è.sS©ÑzBP°Œ¿Á„±L8š¯Çá«ÑÞ„(=ðü¦8TiñʰR!dæŠF»DÈ¥jõiþw$ÚcÁòô-åèdÃÉB=v_ŽÀ]Mˆtà|‰û®D ssº4·áÛ3!’ v¼4´ ef ‹B‡¤j ogkÅ)nmmÁƒ½*‘_©ÅºsôIµ¢MB5 :Gƒ‚åj¥®Éñ5&Xv—ÏGwãXU˜õ§¨vXY°xû ëcL€ 0&Ð,jİ£`‰ÅÀÅÉcr’¿ (W¢¢¡þÒÉgõ﬩Ÿ.Öœ>}z“Ãm´ž,d‘xgT‰8²ù7«PeÓ ošýÒ­"ž„Dï4«ò"eÇëÃKq®D‡¿~ç±`qÀÏÙkÄŽ‹‘˜Øµ £;˜±çrfïŠbã¹ÛÊp²H—¶Ä aE‹ÄÓ¦ó‘ ÷ÿZ“ xz}<~?¨\œ·vÆK‰Ÿ7†—@§Eƒ‚¥Ô¬mr| –eÀæ0á–øÇ°µô]ì«øœ‹œ/ÎØ`LÀC!%XÔˆañµ`éÖ­›¸…žN"Û¹s'.\¸ú[ÇŽ…5'''{÷îGÓ†Ÿ>oÙ²%:uê„mÛ¶‰›ì/_¾Œ¸¸8X­Vq\ñðáÑšš*îg9qâ²³³A²mÞ¼YXRHФ¥¥‰'&& qã ]IóFmÐ;‰‹2jä‚õòÐR\©ÐŠ CiL'nieAb”Zz-p¹\‹?oˆ÷š`yncrÊtÂZ2¥{¾>…¯ŽG!ÞàÀ¿î(ÁÅ2þ²1N¸‰ÝÔòúCÈ–ùè²D¼x{©p+ûý·ñ(¬’\È^º½-b?%¬©ñ5&X¾/û{*þ‡i)"R‹O®ÞÉÉÿ#Ý+{97`L€ „9¥±ñ!%XÔ˜{_ ² Œ=_|ñèß$"¶oß²x,^¼Xçmö=zô¸N°lݺUXæÏŸ/n¾§Ë(W¬X„„!zH„Ð]//^.U$P²²²D£FmDDD`Ú´iâß¾,µçL®;˜ÙlFYYèîJtb¹¬5•è›[o½µÉ<ÖbÚÈÓ†¾1Á20ÂGûV Y5ȵê7—{]°8šiÆ´¬*“Bñ'd!ù÷ˆËÌ>•ÔÒ‚/ˆÂá|)ÆÆ™ÎëÅXê –-EбaÁBñ+M¯)Á²«üStކá‰OaÅ"´1 @´6‰‹_¾Ü&`L€ -¥±ñ²‹Òó’Õ ¨F ‹·.ŽlˆÝ8O–”ÚÁåô7²ž¥„ ² U¥¾……Ëøñã±páB‘—¬-ô7ºPÒ)XHðe….¨¤D÷Èå¥C‡5íRçE’þšWW⥠ @ˆ(¿¤,: 0{t 4pà·kD{Ÿ4+Fµ7cÛÅ¤ÆØ1¢½YÄ«PÜJ¯T+PQ#p<=%¬þ(®‹Ó%ì›QB´PêžbC©Yƒ ¥:üaP¹Ôwº„QÌË«ÃKAãlèŠÇij|®  –•$}[TÙ‹¡×X°øe!r#L€ 0&*|&X‚1,¾äR_œP[õÿF7Ñ_ºt ÂJB.a­[·‚ƒÄIC·Ú×,$ˆœÖ jÃYÞ)”HôøÊ%L¿†Ä ¹»w “ÃÒ)^¨äæ—‚‚…bRîíR%bCıƥ:,>#ùzDê"n„¬Å&p #7²ÉÝLâ$/²rxrÓ½RÁBsL"jR×*´ºv¬ñŽÜHqJ˜Í.kü@ÏJ ̰ kÅÁÜÖÆŒö‰Õxrm<ŠLÚ:7ÝÓ)hMïÅ-±. e ÁBÂ…‹_V!7˜`!D ¬KÍcÍPÈu‹Ä¹mQÐýùóçÅïdM"ÁBVÍš5ÃàÁƒ…h¡X YXœñ,$n¨ì!C„ ¢ÀþM›6¡¸¸X™ôôt!RÈ"C1"µ­0¡ÈºÑ1… ` «ùãÁºE€oºw bL€ 0ÂZ°¨Ã"cN8K°`Á"{)8>3QЇj(í¤c“‹êÎË®œ3ú• ¿âæÆ˜`aE@il¼ì û` j1,ÁÀ<,úÈ‚%,¦™Y— ~"˜`L PÈ,JÏKVc€¡âCn³,Xø±C,XÂpÒyÈL€ 0% [°(õ5 Ðñr·˜€r,X”3ãAO€KÐO!€ 0&2BJ°„Z »ÓÝ)t"˜;ÉÝò±±±"Ð>??ßfC¯ –ЛS‘K,X\"â L€ 0&à'!%XÔˆaéׯ_ÍTíÞ½Û«Óæ®àpvÂÝòt1¥N§Ã±cÇjÆC§”Ñ©da™X°„å´‡û Y°„ûÀãgL€ ,jİ<òÈ#5³9gίÎ, º‡…,‰‰‰âÈb:v8!!Aal³ÙÄQÄtKUU•¸½žDýŽ@¾zõj…†.ƒÌÊÊÂÊ•+k„].I?t 2YUè˜ãÓ§O‹»]èÆ{ºœ‘Ž7¦Ë(I¬|ÿý÷^_ÐTÆ‚%h¦Š;ê=,X¼Ç’kbL€ 0º”ÆÆ‡”`Qãaðµ`™>}:,X€òòrqký–-[!ÝÄM—'Ò$PNœ8Ñ£Gã‹/¾]89pà@q ¹”Ñ‘C‡ÅòåË…8q¦öíÛ£gÏžøòË/Å=,“'OÆgŸ}†>}ú ²²RXXî½÷^åèìÙ³jà Œ6Y°Æ

,¬.,XŽ]ŽŠ¸úáÄ –p˜e#`L@a-XB^_¨8óuÂSë ÕåKÁ- õ3>>^,dI¡ØŠk!K ¹Š­Y³FXŽÈ‹\Å(èž\ÀœÇ"SùQ£F qbµZ,äFFùcbbpèÐ!?~\X]n¿ývtOñ,,XX°¨óuÆ­ªI€‹šô¹m&À˜@hkÁR;†¥ºººÆõ‹DKíä-늯‹¯U,$r¶oßî릂»~v îùãÞ»E€‹[ظ`L€ È  46^vнŒ¶UÏâŒa!‹Ô×*ÎRÐú¹sç F†Ê¸óûÈ‘#kÊ}øá‡××Th”ÆÆ‡”`‘3͵-.~Ó½œñp&À˜`LÀûⵕ¿Y† ˆÑšPf7bŸ©-¾,“#R4¨0<ön3Cs])*0µÅ¥Qnò~§¸F&"”ÆÆË,JÏKVƒgíW§9‘p¡£=½<’-,jÌ4·É˜`LÀw¢4V<“²)úR0µÁE[s´Ô¢gÔ9œ°¤áµüq¢ñû¶bhÌ!äX›áˆ¹5ÒôEèu¹¶$¼xu¬½ï:É53 &à3Á LŠañu¿Y°øš0×ÌúõëWÓýÝ»wóP¸ïL€ „a1‡09a+–•õÅ×eýkF~‹ñ˜°ªl¯ê„m%þ‘ºç¬Éx5lé’ê{ã·cDì,(¹ë+²ðnÆì¨êˆ¹ECÅ篦ÍÃe["^Ï+~§¼Cb#N[…}¦L|\œ-„Ž»åÂhšx¨AL ¬KS1,¾šÓAƒÕT½mÛ6_5Ãõ2 $À‚>(§;ÍžÀ£IkÑ7ú4þxeŠ«c ×ØaÔ˜j¸T9 }37a^q66Wv©ù,QW‰—S?ÁAS¼S8ªIáÑ'ê ~ÖlFÇ,øE³UXUÞËËú¸].ì'°,A1CÜI&FX°„ÑdóP™@ømóeèb¸ˆÇrgÂ-:rñDó¥5#|¯h’u¥"ÆåÍ‚»pÔܲÎèg§¿K¶$üýê=M YIߢ_ô)üêÒCª2+i-2"ŠðBÞ$·Ë…Ð4ðPB˜@X %1,!ü ðИ@À`Á0S¾éÇ®ˆá;ùõF¾ûGUWLH8ô>§¯LEAu,b´fdFä 111~;H°Dk,˜–øÞ-¼{LíjªŒÐTãô÷…ˆ!1Ó”k×ÉKÑ92æk±.zØaƒ_zÐír®ÆŸóº ˆiði'\¬7¥±ñ²ƒî}:(/U®F ‹—ºÎÕ0$À‚%$§5¸E#Þלù¢·´yR X(¦dJ¬)ï‰E¥7Õôˆ‚îÉm‹ ¹Š=™ü56VtÃü’[kòt3äà×Í—cmy|^:³Óßù³ G"BcÃ[éâ¤%UİÌLZ‡þѧð|Þ$aÉq¦<[¼Ûå|Ïëuòºô:Ò€ªPáz“ÓwÙ‚EéyÉr÷v5bX¼=® „,¡4›A:ÞéÄy¹Û 7PqJشЗˆX” Öd´Ð£WÔ98 §„Q°ý³)‹ÅÉ`Ÿ–dcOU&Ò"Šñpâz$ëË„¹bKÀ_R‰ßß/Šn† d<ŽóÖ¼–?ý¢O㑤µXQÞGXdÆÄím-,äv9/“óMu¼.}Ã5PjU¸Þät[¶`Qêk&§qÎØ@h`ÁÚó£ãQPL“¯;iÞš˶¢™¸¸8YÍÑ=,âw¢GÔy5f”Ú8bn)‚âIˆPjQ€_6[‰$]EMV‡ÆÎªŽâo ó@âFáB¶¼¼¯Ö§Åþ™?^œ86*v/²cŽ"VkÂ)Kªâ/¨Žs»œ¬Á©‰×¥Ú3àÓöÝYo®:R‚…cX\M7ÎüK€‹ysk à?Ê6Ü€ò+[°ÈGn^Y†ÌHÜ;4x.o2_é ¯KW„‚ús_¬·,ÃÔÏ7w> °` ÁI Ð!¬h"k4²ÏÕí¡£‚Ë­±fá£øÉãϸ=ÚãûnFçÞ[Ý.ϽKÀ¨ú=¤{[èþºs嬥6Tt&œ¯Ëðœ}_¬·,Þ ƒG¸øâÈÀ›PëY`mŒ4˜÷Ú+¸ÿÉß×Áìph Ñ8B }PŒÇ¨úÒXñPÒ:t3\D…Ý€§®L©H ¼ÜI^—^$ÕÉYoJcãCJ°¨1¼!Sƒ:·É˜¨K€6Fy–XXì:Ø¢¯3cXÒÄ Ü†«iønÙTXªŒÐém¸åÎÏÑîQÁ™#}±sÝݰZ¢‘ù²Ç}Œâüô ‹Ý®Ã²ƒ6¡×-«ê4úÁ‹o¡Oö2äœêŽÊ²tí÷z Z‹Õ ÃÙz!)åFO{ Ÿÿçyô¹u%ömé¿ûô‘fž>?³òs—¢9^—a1Í× RÎzS/[°(=/Y)R#†…]^Ô˜in“ 0&p½`ÙUÚRŽ"Qo†âLhá@ö°%X²k²nú{mÇɃ°gãLþås¨,KÄ¢ÿ{f½„Ø„"¬úì1¤µ9…Ö×–ÍK§Án×"{ܼëøÏ7‘5p=úýJ–oÿ “ñ<ô|úÆËxø™_ˆ2½ünè³7X€-,j<»r6Pjô+ÔÛ$ÁÂë2ÔgùúñÉYo>,Á€[,Áðdp™u´1Ê1%`tób¨9æxl+i…I£çÁÖótújh4v!,æ¿ùf>ûsß7gŽöÁÈ)ÿelÖH‘Çiaéyójœ9Ò£§ÿZ­½AÁ2æ×‘œ~A|öõÜß a”‘y¼Ž`ùø•70jê;hÑêt¨OCÀŽOÎ*`;ÄãuÄ“çA×嬷°,jݰ`ñà‰æ¢L€ 0/ QÕˆ!‰gEW­1XUØÓïü§ Zþ~Ƚ‹¬%T?ë/aÿ–(Êk‰!>¨Ó úü«¹¿‡Vã@Ûöãö{æ6ØK²°Üû³¿!.±@|¾òÓ_!³Ë>dvÝ{`¹ûá"¡yž—FËÕ(% g¥´NÎK׌B1‡œõÖ‚EIgÁ¢un“ 0&P—mŒrÍñÙì¤ø€,,ÛK[aô%X°~2î}ôHL¹„ŠÒ$ÌóE!XÈÂrêpŒžö¶(c®2Âj1À\‹eÿ÷<úwñ߇/"¤~"Á2fÆ¿œ!LöÕûYeÒÛž¸N°ŒŸùOÄ7cÁ¢Ös+g¥VßB¹]^—¡<»MÎz kÁÂ1,á¹0xÔL€ 0Úí.ËÀÄ”#ˆÕY°©¸-tº؈¥ß´ßýZ߯€ý[ïÀCOÿ æª÷Ã/#1ù ¾ý|–µcX.Ÿï€µ †‰ýQ1eu@“`¡£‹oµ¥EÉXôŸçÄQÈÃòÑ+oàÁ?ýFØ“K uŸQ9(u{š­óº Íyu5*9ëMil¼ì {W „Ï9†%fûÀ<# ‹ÅâY%\:ì(O.af‡NÜÇK§„5;ã€íØp¾'rÏuBTt%n±»6ŒÃ®ÅÝ¿‚Ó‡ûK§„™£Ð²ýÑëN #ÛVMByI3Ü1ùÝëKŸÛ–ãÄþA°˜£ÑûÖ•è6`ƒÈ³|Þo© FM{ +?}œ‹ÊO¤œ ”Ê] Éæy]†ä´º”/Ö›lÁ¢ô¼d—£ñAŽañT®’ ø‰”ÌÌÌšŸÕ«WãìY)ðˆ€GÊm,,“~þxýH4f¶6\>;ï¿‘úb½É,J}Íü‡EÝ–8†E]þÜz`hꞢú"¥öHŽ?Ž ¤7Õœ˜€G|¾1z1ñE²ºè©`™Öh ¼"]!ãqrnfÛØú´e ºá^܈Ç#c* p\Ñø}±RÔÎ\—@­Ëøà•žÀ¿OGKƒg¢ú%I‚å|%°>Ø*ýQ'±`ùÁKß–^~.Ôˆaá‹#½<‰\]H¨/è›)µ^PP€mÛ¶Õü)77×%—ôôt‘G£Ñ4š7œëIMMEuuµø±Ûíþ×%è`Ë@#OËË=³÷ËÃí€Í€Æ‹V£¾ÑB‡Ñxè+*‰XŸ –ÚßOåååØºuk°=íÁÓßZ—·%ÓÛo6"XœÿG 4M?¬0¹5ðu.°ìRÃSÏ‚%@‹1,ÁóíÀ=eþ'P[°‹¹}¹“æÌ™ã²Xí¶ËÌõ41ùìÎý»3^pùüP†?wÚÿ;ŒËZDIo/ß; \ «ê›ŒIZ€R°ñ*°êòÕßÔ$€B °öŠ”‡R}Á2£-pK2°ððmÐ,¸¯5Ð%Ž„7p°˜  Óë½êAŽ[YóH`Rk S,©rª€/.ÇË€çºÑ?Öùéy Ä ü¼°æ @e{$¿Ü ëÉ=­€I€Qœ«>»\¨”Ê·Š–ÚÉ4Vp øßÀlz%Ju®¾è4À­É@™øèLj0¢ ½%®ŸÈ¢2ïa#þ†ñ+´Ä@¯ –Úî¨$Z(•••á³Ï>“õÜp&7øP°Ôïóùí›ÄEH¢m°é*0¥ 0$åÇ»Š€OÎoöÎV»‹€1À['€“å@v 0"UZ«ô@bag¡T>F/­ßnñ@„8sm\1Ñ:©Îs•À·W€‰­½ø&WZôò€êÜS Ì;çúEÁÝÀÒ;:‘ªªßìÚÅ÷·R£€ÓåÀ©-v sãõe5bX|9®› ;9"BÎCq#Mãæq5=ûÞà£D°8EnðÍ% +^‡J€·O­ÀÓ]€«fiƒM›—ޱÀì“ÒÆ€„Æo;KŸÓfˆ\62c€¹g€…uKç8€\¼6çK%OuBê§ IDAT2¢€Å%.´Ñ8V ü¿SÀ°Tàž–@žXq Ø[,mRšJOÞ ‰ÚT™ìÀ¨4 ^Ï‘6o¿îY€C¥€A+YuhÅàH©´!¤ñÿé Pj­;" ´Ð@;ªqþã5ÁÒH©ÏrñâÅ k¯¿“V«…N§CýÿÖÿÛ¥K¼V¿Öa9Vg‡ÃÕ“‘‘ñ#ÊÎ? ·³áØ é% â UÒóGk•Ö-Å~•¢}Œ$ªé%môg÷•žE‹8V&}–j~ÑQzf¿Ë²“.ñÀ+Ç€ÓÀÏ:}¥$þIÄ“¨ÿÇQIôSå×Ö­£»Òj‡´¦öC[H/ è… ­ï¦}LÈ‚By÷$¶þž%Õ±%(¶JbŒ„T ¥±ñÃâïo"n „Ú‚åÃ?¬Xß“Éú©¬¼öúÀÒ¥K]R3fŒË<á\ÏØ±cÅ&ˆ~ôz}Í¿£ÿzC šsG°¼wFzkJ› ²ltÀïöIzƒy±JÚÌÓÆ‡ÞŒ’EbQŽ´Ùï/½=\ ¤G£ÓœJiÃãD¦µ•6Fä†B›²‚À ÇÜkçM èŸüñ€d!ù[pª\¾KØ¿zK‚âå€|³dõ‰ÒJÿ6@.f‰?º„Qðîo:I›85V»dy«PIA½‡¤%vKséÍôûg¤qöJÊÐfê£z‰Ï‹G¥€`ª“Þ2ÿå°$XþÝG(;"Y}ÈC–˜Æ\rœ ÛSÁÒêÊ8dee¡S§NpZR\~i\ËðÍ7ߏܨÓwPMy•s=’hQ².åÎQcùœB‚^:ÐË×d=Í3•ÕÀC퀛ýøü‘Åïÿõ•j#±AVVJô2‚„=·WÌ’•õ/Ý$ñBž¾è;c{¡d!¡õJyß+YuÒz&1ñTé… ýuyÒKz9°â2ðåµ—MÝéöU.°üÒß!εGe/Q°(—-X”ž—ìéæNy5bXÜé'—aáB ±C)\ŲÐ[Mz»É‰ xL@ë‰SP<¸tí¯g»I.O´I!/zkJVƒäÊDz²¦KÕK=$·Ž?Þ°ÖOÎúIDh¥M mN(‘«¹r4”h#On,JKmw ?”ë¯dA¢Ô˜`!áñŽtÿ¦ØpQ» %Ú$Ñf‰\S5’"$W6Ú´9ŠS°Ð[`zsL‰„¹ÈüüZ°ÿÔ6ÀààÝÓ’`k,¹+X2ÐÙ¦ >*Ùílj…F-ëH•òñ§`!Ñ?³½$’Éjr¼ØV ‰J ri$±áLÎõRøÎ—½%KNŠAr÷¢ïjó÷$Ë ²\þn¿TƒSH½q\Z›ÔÏYí%KЂ ®Õú‚…ÜQÌ”‚ïé¥%b4¾°,®Ñ©ŸƒcXÔŸî¨M@Î)zNñBo[œ. pð`g42^& ”€‚å…#?nêŸï.YJþzDr¯ 70úŸ?Å¥5…ܶœ‚Ź¡q¾A­ßU§`¡“ˆZt«¢M¹žQL ¹†Ôމ¡:È"«W.Xh³D›¨ž‰@çXÉÂB›°¿‘\²,äZòßÓRïióEn&$ÖœsŽ‹D¹–ѱ©´i£MYPÈRT_°Ô®ó^’`¡`JNaå+ÁBmÐ)aÁda©}H”a³Ùêš±sçNYWËe÷îݪÔs »eÇ–¹ƒœÏÉ’A1XäŠIîT´6œ–ÔÆ ­KÎôÏ@R¤$æIx8­)rÏ$aoª–Ö YPÈâJîYµKí:mPLÜ«?H.™ôoú›\qQ_°ÐK²Ê’;¹yRrйuÊa)'œSù|fa‘ÓAµóp ‹Ú3Àí3ºä–Ú%âââ„ÛèSÐ+'&à17 ½¤·”Q:àµÿÏÞ™€GUÿÿ;3Ù÷@BHª€€ì Š "‚‚‚ VD­k«mýµÕnÖÖ¥­­­¶¶Õþ+mÝEŠ€KAVÙ”EÙ‘} [Böd¶ÌüŸ÷ CÈro23÷ÎÌ÷K¡”!–R¿K¦ÌßkÛùæ¶¼@÷ÅúâB ôŸx'bÜ¿¾e=‰EE\H%žE\¿$&E,¦â")bI½+þ: ¸‚EÄ‘¸¥J™|GÉwˆ¸šÊ÷KkgQ€Ÿg K€²8h%ÞSÔJ€|¼õtlŒü‚BNõk„l6dcÿúAŸ8ßÅb"'yI`«ˆ9^T\9ĺ0ç˜ï„¬Ñí}® òŒlTDHª¬±œ($"ÈoU‘g¾Õ ¸(‹†¼Å7+¿0‘•l„d#"JDSSI6ir¢WÇDß›^ÙhIð¿ˆIâß.õI`¾w\ìjX°H¼X“äÔ3 Ú—“–æõµ[D޼¡q'.b3ûÜÈ$¿ä“ÍZk‹”;ðqƒÝ\‰ß*ñ¢%iqQ‘rüâE,¼â.Å$:Öek[ âZŽq!®ˆr:¬þ/1j_è;MKÛ#»,Òq «jFœOü,:á{!IN#»6ðÀw‡W,/0ÄJúìNàù¾Á,Òé£Ä‰EVê—~Öwk-O-ÏkYozcã5Ýki ÑyŒˆaá†ÌèQgý$@$УÖ^ìÈq0/-(ó¶>[¦c]F`ï#¾KÁXoš‹Þó’ #bXèòbÄH³N ÐH@ÇÆ(œ‹XGľ±$Þ‰uˆÉG (²më²µ„í£á¾¾ƒ±Þ4 ½Ñüa;Kt6œ‚E'0f' Pб1 'ÁJ„‘PW06P‘ÀŰ>èX—†µ‘·˜@0Ö[D #bX(XZ<Ÿù Ÿ7FÁg5cÝ6o¹.Í;6hY0Ö[D #bX(X0³Y ‹7FÁ"VåcVÌÖX®K³H@ÛŒõQ‚…1,o,ŒH€Ÿ7Fá?†èA06PhVôÁuÑc¯e½é(ÁbÄèÓÂbuÖI$@ pc¤TdgÓ²Šl&ë×¥É$°ÍѲÞôÆÆk,zÏKl×µ•Æmœ˜‹H€¢†7FQ3ÔMuTËŠ BH€ë2„°C_•–õ4Áúîꯑ1,ú™ñ &ÞSLº,[nŒ4aŠôLË/BùŠHIIAjjj¤w×üýãº4ÿµ¢…ZÖ[T #bX¸!kÅŒæ£O€.“?Äæï 7F棴PËß4ƒUø p]Fô\вޢZ°Dôè³sQM ÍZ… iëÑ'þ’­v”{’ð•½3>, »7N±±¸.e ®NÚ…¶¶2Tyã±ÅÞ” A…'Á~,†`g¥u pcÄù@Ë_‚ !®ËÂ}UZÖ[T #bXB? Xc´H°¸ðdöldÇ”a‹½޹Û"?æ ú%Âg{¼Px“Br{úŒHÞ†£®6Øáèˆö1Åè—pîL€ýZQFİ­3,˜Î™¼ ·¥¯Á¼òAø¸üÒZ.W&íRV•uÕÝ‘n­Âïrfà+ *¼ n¯Må›”¶£S¶`FéXVÙ¯æMÃçÕÝðZñõùŸÚ¿î ¼X8^ý.y‡'oGªµ_ٻ୒aJè´ô9 Ncà pcdø˜¡Z\TÌÐΨi×eDu0Ö›fÁ¢÷¼d#Fˆ#úÉ:£‹Àw2—`Pâ~üìä(©IFŒÅƒ$‹½Bµ7C÷àx»dVWõ¬ý,ÃV…çsÞÁV{'¼|fL“Âc`Â|·Íb%Œv9óð½6 ±°b>)Øâç(X¢k®š²·Ü™rXBݨ`l B݇ˆªë2¢†³~g‚±Þ4 ½¾f=ì „ÀÚÎCÏøcx¸àx`Eø<Övnm þ]<Y¶2ãòRÑØéÈ?§u¯äþÇÝ™øíé[šf~ŠK÷áÇïSV•3— /¶ÏœºµÅÏQ°„p¢°ª† pcÄ™A—0óÍ®KóI[¤Å%Lou%Xâwø™?ˆp¸4q?ž89E5)H¶:Ð%ö”“ÓÖAK¢Å‰;3VáÕ3£°ÉÞµ¶[±–¼œû%bDÌ4åÚõXÖ\ôˆ+€ãl¬K ©¤‚õåD±?NPn2cR¾Ä°äH±Ú±Ï™£‚ø‹jR[üœ®N23 ‘€lŒ˜H@ð¦{óÌ®KóŒE°ZÒØzÓ¯Y°è=/9Xoª\#bXèòbÄH³Îƈ›WŸø£¸;c<°à©S·vi$G‰H€H€H€"4Á¸ˆa¡` ‡™}m”{[äþ¹så ³–W^¬  M ª‹1,,FOyÖß‹ ÷e.Eïøc¨ôÄã'ï8'žÔH€H€H€HÀ(Q-XŒ€NÁbuÖI$@$@$@$®¢Z°0†%\§-ÛM$@$@$@$-ôÆÆkº€Œa ‡QbI€H€H€H€H@;Í‚EïyÉÚ›¸œŒa K–D$@$@$@$@f  Y°èõ53CçBÑư„‚2ëW¼§(\GŽí&  óˆ(ÁbD 7dæ™Ìl‰ùPЛoLØ"  7%XŒˆa ·g{I ”(XBI›u‘ ’@šµ ÒÖ£Oü$[í(÷$á+{g|X6voœªJn·º.e ®NÚ…¶¶2Tyã±ÅÞ” ᥽ –õ"J°Ãõ3ˆH  ,œ$@áH@î²z2{6²cʰÅÞ ÇÜm‘sýa³=^(¼Iuëöô5‘¼ G]m°ÃÑícŠÑ/á0 Ü™xîôD¸¼1áØ}¶™‚N@ol|D – Óe$@ºP°èÂÅÌ$@&!02ynK_ƒyåƒðqù¥µ­º2i—²ª¬«îŽtk~—3‡\YøSáMp{m*ߤ´u²3J¯À²Ê>x5o>¯î†×ŠG¨ÏÿÔþmœpgàÅÂñêwÉ;u«²äøÓ)wZ‹Ÿ‹œQ`O"™@T ưDòÔfß‘ï) ÇQ‹°6÷ÚabwZL`g/ÍÆ«SÂæ ]L©ŠE9âÊB»˜ôO8/,ê”0 ¶ÿUölu2Ø»¥Ã°©º ÚÇ–àþŒeÈŠ)W"ä¤;¿Îž¥~ÿOñôŽ?‚¡I»qØ• Çã’Äýx(s æW T™q©U]3K‡¶ø9Í4*#פQäCSï¡Î@UR³ué×tßlÍ&È`D 7d&x6H€# ›£ž-Q?Avõtá%÷°LL[¾ ‡‘dq Ì“„Ž|/BDR‡Ø"|¿ÍdÚ*k»¼6¼Yr ÖWwS“X˜{2V(²O*©`}9Qì…Ô‰ccR¾Ä°äH±Ú±Ï™£‚ø‹jR[üœéÇzÌ ±ÊôÍd[H`áM‚Eoéš‹Þó’õ6$ùˆa¡ËK FŽe @P° l˜ÛÁ¢µ‡âæÕ'þ(îÎX,xêÔm¼4²)x,Z§Vxæ3Z°èõ5 OÊú[MÁ¢ŸŸ  8+X<OȪdEæ#àÞÖî­ÝUÃ’’šwWiIäÞ¹¿Eî\9èl‡å•+ÃTÀYÁÂ5™3ÃññµðV&"!!Vë7qY­í­f K8#bX(XZ;ù< ‘@Á R9›¼hûW]aÿ²«+Á, îË\ŠÞñÇPé‰Ç/NÞqN ½É…®ygKMM ¼^oèêeM!!PöþðT$ M›6,7"†…‚%$óŸ• @“¶V¶C±+Ã2›¯‚åLQ>]4·ÞñÇSßóõ¥è~ц?ÏK ‚%°-ŽŒÒ\—-,\—á1'(X4ŒcX4@b ˆ@æ,¼÷Ö“¸ãîßœCÚëµÀbáe#¦‹Ôs ®ËPÌ­‚Eol|D¹„…b ê×A ‹ÔY' œK@6F§œ)pzl(r'"ÍæÀÈÌHî³§Û”cÕò›àp$ÂfsaèU!7oŸ*ààþ¾Ø¸þz¸\qÈÍÛ«®™…Ò’vµdžs@ÇN»ÐwÀŠs*}ûµgÑÐR;ÒUUièÙës\Üo>]x7ìÌÌS}Ãk˜3óÇè?p¶|u ¾u×sˆ‰qrøBL€‚%ÄÀÏV×ຜø’³NâÄñ\¬Y5‘ëÒ˜¡ Z­Z‹ÞPÍ‚EïyÉA#ÑDÁŒa1‚:ë$ ã ÈÆhCY>&fïDFŒËKºÀ /† ]€9[Fà⾟áÂî°ï|¹ñ:LºýTU¦áÃY?ÄM·üÉ)¥X²ðnä´?ˆw× ÙPy¸îú7Õ3nw¬rÙò[Xúö_©,0£oø¬ÖóOÁ2vü«h›U žŸ÷ÑÃjÖ>oÿ¹‚åͧ0jÌëh—sXs˜1°(XËSki ®KOnò+¬V7,×¥V a‚Eà à™†a–¨%@—ɨúw\6FE®$ Ï8¨ê>íJÆÂ3bêðÿbŸ-Û·^†š+¼^Š sqïC¿ÀÖÍ× øL†];óœöJpï܆ÅêA§Î;q͈ öGË„É/!%µX}¾hþ½èÜe;:wÝ~ž`?ᤥ†œ +ô `1f&4¸.+ó1õÞ?`Ï×}°cÛPeÁäº4f|‚Q+K0¨²L   ` *^^‡€lŒ i¸¾Í^õW±°¬+뀱—ÍÇŒµ7aâ­GZú TV¦cæ»?W‚E,,û÷õÇ豯©g$ÆÅ튇Ñ„ùsÄÍ“þŠsÄàËæ£s×mçñÁ2fÜ4deSŸÍýðôé¿ís4 X^FZzÇÌ ,Æ€op]zÒ1öæ×1ãíÇÔËÈ<ÅuiÌð¥V  XˆaÑÐ,f!¨%@ÁµCòŽËÆhcy&gï@ŠÍ‰•%a³xÑ«Ï瘻yî¸û÷âô… ŸÁÖÍÃpÏý¿ReÎÌÇ0nÂ?žqË–LAVöÑsbXNžè‚¥‹§bâ­ABBå9ýÁ"G_vÅÿP^Ö¼ÿcL¾ãyÃ"q+wÝ÷” °÷ͧ0~KÈ'E )XŒ¡ßàºì|½¬ÁÜîÇíSŸSî–\—ÆŒO0jÕ*XôÆÆkºF§]¦1,îË#H"ÐÁ§“§(EÒ<E_¶Tä(—0‡×¦îcI‘SÂÚ@ÒÅ[°üèÅ((èŠøø* ¹|.6m¯Çª„Ê}ýΞ¼ü½ç&mÿ|í8TVd`ĨwÎ,rJØÞ݃àt& ß€åèuñZ•gá¼PX˜¯¬7‹æßGÁŠIÐD,Æ @ƒërÒkHjs KO Y— Õ\—Æ OPjÕ*XôV®Y°è=/YoC‘߈–@´›e@¤Ð*XD¤téÒ¥ögÑ¢E8xЋÀD­"Ђ‹#µÖ'–[n{IÉeM>bµÿº±e ~´8]kñÌ@,„ÙÚ¢Zxq¤Öjµ®K­å™1_Œøî J\œíVß+?[šv^3‡ä9ñAUXz0ïnK Y7 ,zÏKVD$`ZM –ú"¥n'vïÞåË—›¶_lX²`™xÛŸ‘œ\tÁrwß*ä§zðû5)ïßÌ<8/“ž´oMÁý9ªþn¨x_”ûNs“42㧸(q4fœ~gÜͿܠ` È´ L!!,ZÖ¥t&=ÞƒG•áÏëR°£0&0ý A)—æºðð%•8TjçãñÙ‘8 ?p,Œa Á*a$ ƒ@}ÁÒ”H©[lQQÖ®õ¹ÖH*(ðÛTÊÍÍU[,–F³Es9999¨©©Q?§Ñÿ6Ç9ì>ÁòÂue(ª²L°<4° —å;ј`«ÑB¦®`qyíx÷Ôݨòœ š`©ûýTQQ5kÖ„Ýt‹›H° ëäÄ=ýªðb#‚EýßÄxM&ê¯ëêÀWãïð¿= ;-,»wã믿6åš` ‹)‡…Šbu‹¸x‰ÛWKÒ´iÓš}¬n]ef9McŒD>-ÀƤ—”H“Ÿ†RBŒ¯Œ)EA¹¼­ŒÃ¸î$Çz±éD,^ßœ·GíY0¾‡Wwt"%΋S•VÌÚ•€­§bU‘²ÁŸx‘Wt_Éáò IDATp")Ö‹£åVÌÚ™ˆ¯‹bÔgu]Ââl^üòª ´O®ÁókS°¿8m=˜rq5ze¹U][NÅàmIªì¿Ž>ׂóäòT¯°59˜µuã–žvtL­Û ì.ŠÁôí‰8Smųה#?µ¦öù··&¢}Š£º:ðÆæ$Œìê@¹Ó¢6qµ«Âé{1 oz…K»$zfÙÁxÌ߯>ûÖÅÕªÌ}™¤¸ôh[ƒ#¥6¼¼! ×_àÀ5ÊåµÍIØsæü·Û~ÁRQs)¶lì¨úËKÿpÁR×UD‹¤òòr¼÷Þ{Í~ï0C Y°Ôm‘¸NÝÚ«—äºçAQµ‹öÇcù¡xÜÙ§#º8j³Q‹·¶$áå1¥8PbÃúãq¸¹‡ùƒ…ûâm×K_$£SZ ~uu¹êŸl¾†wv¢{7þ¶>YqÁtc7»ú|Õá8Uo׌Õ©Ãî¶`xg‡úý©©çuÇ/X9>‡ ±È€ÿž~H¹€µÖ%¬!‘R¿³gφX{C´X‹½^/Ž?ÞdÓÌVN^^žjoA¿×€Ä*eå•~3‰à¸©‡]¹M.µáò|§z) s´ÜaU¢úÂL·Zã[NŪþ«7”¨5í¬ZÏ ÷' '¹®ÄöÓ1Xy8Ã:9Ð;Ûç>ó½pxäÒJ\ÒÞ¥Äz©ÝŠÛ/®VõÉzÑ$eŠÈ?XƒýÅ6%òk<"lbðå‰XˆÅDDË+’Õ‹’¦R§ôŒ¹À¡,¤OÄbãñX¬/ˆÃï¯-CV’G­µ‡×vv¨—+f,zcã5݇ƒKX0'}ceóâH#¨³Îp$ ÕÌn·C~ªªªj»9wîÜf»§¬¦’DˆIÿ¢N°4Ï ŸÃBÁb†‘g™€_¼ÈÛ¿ ƒÜoݺ5œ»Å¶›…€Á"›yÙ8KJóâ¥Ñß–ß /Sq²ØWlS¾í²ÉÁ"n"(š,RîçÇâÔÛXñqnuª²2H\Ì·ûW)×OΊ?¾6%ôy6ÞæÅÐNuì©Xp¤ ±®üjEª nL°H<‹ø÷Kj®]“{V+¿~‰[Yv(}²ÝÊzT_°øËÑ'ñ3âfóÂ:ßigþx-‚%ÍÖwd¿Ž3î8éú}’Æk,RœN–æ–ÏÆ5Y|ÌXÎ\÷÷Cfa‘þ‹%C\0%®KÜå\–i_&©µØ˜`©¹½ˆ¥¦Âõ;¦ÓmA•Û¢Ö§¸8þsS2JìeI÷¬º‚¥n™\R©,°X“¢âcü§~iZ‹¬ÿP°4· ù܈ C†š•F(ÔÔT˜/úôÊD­& C°H]?_š¦b.ÄjðØeÊ%äkSTP¾?¸UòýêªrtɨQŸ qxel),ðª{VÄÕDÞ¸ŠŸùÚcN ‹G* ‹ß%¬®åAhañâp©/ _6Dâ+ÿ»Ïš?ÖXbVÄš!bG¬Fbqùþ¥•èŸã‚?`ß¿ûÎYW,¿ûV]ÁÒ\»ž¸²\YœžY•ª¬8"V$˜ÞïV¿ÌÖ á~UÚ#è—| JkŽ!Ý–¯K°Ø¿ìФ¤$õcæ–VÏy³ {yÉëQkÇ/^ÄK\5_Ý”\+Xþòy ¶>ÿ€ ?J¿K˜mÜb•õ/‡oȼ–ø–¯NÆâïë“Õgò²CbãB%XDŒýt¨ïûÊïæ?T@« Ô´ÑzKÐ\ÂÕ‘H+‡‚%ÒF”ý!ˆ(:‹³Æ¢N÷ÚpФU°è×tŠN¶¶ư´– Ÿ' # C°Ô÷[0QÝÞto¢á¡`1Q¯£¦)Z‹^ š‹Þó’õ6$ùÊ,ƒH€"ˆ@ y›+VœÆ’*â‹é,&š ,M†X?%>¦±$.œrw’Y“á‚EopŒYAº]Œa 4Q–G$@$‚%€t¢¦(  5‹‰#ðM¡`ÑÀÔˆ^©a`˜…H€Œ" A°Õ4Ö:,¡cÝlM,Í" ç ,Fψ Íb  £P°EÞTõR°˜h8(XL4o ‹¦Fİhh³ E€‚Å(ò¦ª—‚ÅDÃAÁb¢Á|S´ ½±ñšƒîÃøAe‰$@$@A&@ÁdÀáQ<‹‰Æ‰‚ÅDƒø¦h,zu…fÁ¢÷¼äÀ#h¾D#bXšos F€‚Å0ôfª˜‚ÅD£AÁb¢Á|S ,ïRàKd Kà™²D k,a=|j<K H  –@4o,Ɔ1, 1 D –híFûJÁb¢i@Áb¢Á|S(XÏ”%’ D: –HaMý£`Ñ„)4™(XBÃÙ Z(X4€g ‹HÌB$@ÑD€‚%šF›–pm –p¥·Q«`ѯ9è¾Å-áƒFİðâÈ0«" ½(Xô‹Èü´°˜hX)XL4oŠVÁ¢·fÍ‚EïyÉzˆüFİ<ôÐCµMŸ6mZ ºÁ2H€H€E€‚%P$ú  ‹‰#ðM1\°è=/9ðÌY"‹9Ç…­" E€‚…‹‰¦‹‰#ðM¡`ÑÀÔˆ  Ã,$@$`,œN§úaŠ^ö/»"))Iý0Hà욬¬¬„×ë5°!¬:œ{rá©H@›6m`µZV…f—°p°°ÃBÁ°¹È‚H€H hªªª ?LÑM€‚Å<ãæÌx<ó4ˆ- ( –&p2†% s…‘ @Ä `‰˜¡lUG(XZ…/ S°§é kN°è( ‹£E ‹ÔY' è#@ëŠ>^‘œ›.aæ]®IsŒC°Z‘ФK˜^Ï-Í‚EïyÉÁÐT¹Œa1‚:ë$    í‚&X´7Á¸œŒa1Ž=k&    -¢Z°Ë#µLKæ!    ¨,œ$@$@$@$@$@æ&ՂňsO¶ŽH€H€H€H€ÌE@ol¼æ {su³áÖÃ\ØF    Wš‹Þó’bD ‹ýd$@$@$@$@$-4 ½¾fÑý$    ˆ,Œa ÞDaÉ$@$@$@$@$`ˆ,Œa1b ±N    ˆ,Œa ÞDaÉ$@$@$@$@$zcã#J° Þ2xq¤^bÌO$@$@$@$ÍôÆÆk,zÏK6bŒˆay衇j»:mÚ4#ºÍ:I€H€H€H€H lM°„#bX(XÂaf°$@$@$@$@f!Ղň ³L}¶ƒH€H€H€H Dµ`1b€(XŒ Î:I€H€H€H€•@T ư„ë´e»I€H€H€H€¢…€ÞØxÍA÷á1,á0Jl# h' Y°è=/Y{—“1,cÉ’H€H€H€H€HÀ 4 ½¾ffè\(ÚÀ–PPf$@$@$@$@ÑJ ¢‹1,¼82Z—ûM$@$@$@$ %XŒˆa Å ±    ˆV%XŒˆa‰Ö‰Ã~“ @Kè(ÁÒ`|†H€H€H€H€H tôÆÆk,zÏK]—¿©Éˆ#úÉ:I€H€H€H€H \ M°„ư„Ã(±$@$@$@$@ÑL ª cX˜ú%@îñh^ì; @( ììÕdmQ-XB9aS—–k—†MsÙP    0&°«@ÁÒø2†¥ K¯z6H€H€H€ˆ€Á¢76^sÐ}8`2"†ÅôGÖ±°x<žpF¶‘H€H€H€H L ¸·u‡{kwÕú¤¤¤€ôB³`Ñ{^r@Z§³#bXzè¡ÚVN›6Mg‹C½Ž`q»Ý!¨U D+ûW]aÿ²«+!,zƒc¢eÌ$X¶V¶C±+Ã2}ƒ¿…‚åLQ>]4·ÞñÇ垯/E÷‹6´øy>H$@$@$@$^(Xš/#bX(X Þ{ëIÜq÷oÎÉàõZ`±xÃkå±µ$@A%Ð;ËÇ.¯À±xuS2êÿÔʃXøÄ‹ì×ÝŽ··&bù¡ø ÖÄ¢I€HÀ<(Xš #bXÌ&XN9SàôØPäNDšÍ‘¿Bòèù8}ªV-¿ G"l6†^õróö)¢÷÷ÅÆõ×ÃåŠCnÞ~\uÍ,”–´«µ°x<6,˜û:vÚ…¾Vœ3 o¿ö,úZŠcGz ª* ={}Ž‹û­Â§ ïÆ¡ƒ½‘™y £ox sfþý.Ö¯®Á·îz11Nó¬,¶„HÀP,†âgå$@$P,,,ñññ(,,„Óš ±Ùˆ²|LÌÞ‰Œ;–—t5ÞaS^Áœ™ßCï>«Ð­Ç&ìß;_n¼“nU•iøpÖqÓ-GrJ)–,¼9í¢CÇݵ‚eͪ‰ðx¬¸êšÙçÀ;¯?ƒÞ}>àÁ‹PU•ŠYïý·Üþ"bb\øï;Oàž~©žy÷§Ð£ç ¾ü´°ô›…‘@˜ ` ódóI€H -‚Eol¼æ {ư4<Í&XŽÚÓ1¶íÕØ£Ž4¬­Èí<·;^¯‹G ‹™ïþß~ð ìÝ} èƒë®S=#ùÄeËoaéÛ¥²ÀŒ¾á?°ZÏ?eLËØñ¯¢mVz~ÞGã⾫Ñ>oÿ¹‚åͧ0jÌëh—s˜‹šH  X-€¸@]ÑÁ‰¤X/Ž–[1kg"¾.ŠQ½í˜VƒÛ{W£kF \`óÉXLßž‡Ûrž ˜^—°§†•£SZ ~¿&÷ô­FV’ŽÇbÆöD<8° µuã`© ÿܘ„R‡Uµ'/µ·õ²£G7,¨ÏgïJÀÞ3¾öúË|vU*îê[…üT”Øð¯/“Pl÷•!ý¼µW5¶w!1Æ‹S•6,ÜÕGâÔçõ]Â,Æ\èÀ5h“àA™ÓŠÏÅ⃯á>ûõza¦÷ô«FNr ö—Ä`å¡8<0° +Çá­-I¸@•bü·õÉŠ¡¤ß /CûþoQ:*œ´Iô`ÊÅÕè•å†Ô¹åT ÞÙ–¤>c" `Ð"Xôê Í‚EïyÉÁ†ÑPùŒai‡"W†gTxN»’±°¸+¦~çYìÛÓÛ¶\¦,%^¯ E…¹¸÷¡_`ëækP|&îyR ºŸûáðX=èÔy'®1£Á!Á2aòKHI-VŸ/š/:wÙŽÎ]·Ÿ'XÆOxié…FL ÖI$d.²c|w;vÆ`ûéXŒ¾ÀŽ„àé•©(ª¶â#ËÔú¶DtÍpcX''íÇw$¶Z°[7Ã=÷ÿJ ”93ø ÿ@zÆi,[2YÙGωa9y¢ –.žŠ‰·þ •猂9ºø²+þ‡ò²6øàýcòÏ«‰[¹ë¾§T€ý»o>…ñ(Xt­xf&0! V± œ¬´â‰ei ¶ZN˺²ƒ ^X-^ÄXVüryZÀ‹²Á—þÇ»ðÑîe¡øË¨R+·á×+Rk­²¡_{Ìç¾Õ?Ç…GWÖŠ¿`yje*Ž–Ù”kÕ¿n,QbLÄÅU¸·VŽÃ[|—ø/þ1¦•. ]˜~Ž…eÛéXÅèT•¿Xú £__]ŽÎ"¨V¦*·6"D(Iº<ß©ÜÚ´ Š÷ô«jp ^\—‚…>—7&  –`‘r·Tä(—0‡×¦îcI‘Sº|…¤Q °|Édë‚ø„j ¹|.6m¯Çª„Ê}ýΞ¼ü½ç&x>_;•1ê󋜶w÷ 8 è7`9z]¼VåY8ïæ+ëÍ¢ù÷Q°DÈvÉüþÚÆË<'¾3¨JYÄ%L, b´`yry*ŽWØ0¢‹wö©Æ_'`îžåö×Ñß–Tah§ŠGYWO°l<‹lL®µ°øË”>‹`qÔXðýß–•‡ãðf=Á"±"OR×Â"nrÁRiÅ/êˆ:¿`!%Â¥¾`šïT1,õËß×'+w7I"„D4Js\øvÿ*å’öɾsR>QaC•‹q,\Á$@Á%@ÁÒ _#bX‚;ä(½…Gj­Y,,·Üö"’’Ë´>Â|$@FÀf^[ ¼øÑâtµ)–@ô18°öX,r’=*FDâU$nÅoÍð[då¦U°ø]–ˆÇ{ÛÕhøÅ…XdÄ2ã·°4&Xj]ÂÊlÊ:"I‚Ü¿¼B4ðǵ)ç–†\Â$–æÅQe*vå Òpaf ~RÏ%L‚çGÖq ó»ˆI»¥ýéñüéº2Ȉ`ñ»„í>ƒçפ¨v]QX$¦'¦6¸?¦ »C$`"Z‹ÞØxÍA÷&âÐhSŒˆa1=—–‰·ýÉÉ¥¦GÁ’ Àm½ªqý…t/q*×_à@JœGŨHÀû”>ÕØWƒ¥ãpC7‡ ÀOŽõ*+‡ÝmiÕÅ‘õÅEs–ºA÷ öùÓ¯¿À®¬'âÒ&’æ‹<ó£Ë*Ð'Û­è%G\Ñ2“2©gµŠ¹PÇ—É1Á‰*f"ÎæUqg»Qb·(·0q#»­·]˜øuBH‹´7?ÕwÌr·65*>eo± ïïHÄá2›êÁ"ý”2ä¸ã…¸\ýoO‚ x—tÞ±Æà† í¸¦³ÄòxÔid¯"nk~!!§†}»_2½Ø]dSâO¬*~kˆš©}ª0$ß…j—³v%àêŽNŸuçlP½¸‡‰e¦g–[•»«0Fìûcæœ% `0T°è=/aûTö IDAT9˜ X¶A,:Z¬$@$@Má”™èAjœWYl$‰ÕJ¬Wrì±ÌD$@f'@ÁÒÌ1†¥@,f_×l @$è\Žûm,­—c“‹#ã䫺÷°H¬Ïé*«ºÛ&>øÕrß}6L$@$`v,ÍŒcX(X̾ˆÙ> hŠ€ßUí‚LŸH;RfS÷Âì9¢Œ£O$ù(X4XXâããQXX§ÓiÚ‘ššŠòòòд–Ðpf-$@$@$@$@š‚îõÆÆkºg KÃ3PëÅ‘]ºtÿçàÁƒX¾|yh¦4Kh8³    M‚E¯®Ð,Xôž—lÄxÃòÐCÕvuÚ´içt»®H‰‹óݦ,I¬?o¼ñFhQ°„†3k!   0V°„#bXê –ÆDJ]~v»[¶l©u ;zô(G“ˆóóó‘à»/ ±Ô`9,á0uÙF   ˆZbX‚fa ‚FÜÃRW°ˆå¤®%E+³>ø§OŸn2ûĉ‘ÝdžË¡`Ñ: ÌG$@¸*íôK¾OÞ9}_¼aª­=îj÷öÙWaañ3$E$@$Ð Nº‚¥¥Í£`i)9>G$@%à,RêæÊÙø¬ìÿQ°1K#ˆp,Í °Ñ1,‹-ª ¬oÌÒâv»QYY‰3gÎÀãñ¨­_¿eeeMönðàÁHKKk2OƒåÐÂá_ ì @ øKEÍi$Z3ðÞé{QVs‚–@BfY$@M@‹`ѯ9è>Èš!†ÅÏ©¹X ºÉÑË,á0uÙF “ð –ÏÊþ‰+Ó¾‹=Õ˰¸äw,&6ƒHÀü´½½Ð,Xôž—¬·!Èot KýSÂ/r¬±XcB’(XB‚™• D¿`ù èÿ00ùvtIŠY…ßGµ§”1,‘1Äì @ *XôFó™…iŠoêXã†)–±¬„¦,¡áÌZH€"‚À7‚凰{Êð­ìã¸s>-ywµ{—A÷1Êì @0 P°4C׈­Gsb4Y6‹aèY1 @ø¨+XD¨ Oÿ1z'Ý€e¥/àÚôÇ)XÂoHÙb  `i¸1,!žú«£`ÑÏŒO D-ú‚%ÙÖwf¿…JO!Òmù,Q;3Øq ­(X4XXâããQXXš€v­#gd> #é³n 0#P_°Hó/K½—¤LQ=á=,a6 l. @È h,zcã5Ý3†%ä㘠)XÑ¥ D†Kœ% SÛ½k:KTÌv’H 5´½ºB³`Ñ{^rk:ÚÒgˆaii[CöKÈP³"   ˆv† –p€Ï–F‰‚%¦.ÛH$@$@$@A€‚¥™a4âÓÏ, ÓH$@$@$@‘B€‚%RF2”ý ` %mÖE$@$@$@QM€‚Eƒ…%..EEE<%ÌÏŠ‚%ª¿4Øy   %-‚Eol¼æ ûPv´¥u1†¥r,-N|ŽH€H€H€H@'-‚Eg‘Ð,Xôž—¬·!ÈÏ–FKîqxj<¨ª® 怕qó ïᜪ¼6½‚}'¿ XÙ,ˆH€H€H€HÀö/»"))Iý"i,zÏKDãXFà¸Ýn”””®À”4yòdˆULÒ¬Y³°{÷î”Ê"H€H€H€H€Œ&@ÁÒȤ¦¦"%%(//7zœLU?‹©†ƒ!   ˆ&@ÁÒÈðæåå!77ÇGAAADO½Áât:õ>Æü$@$@$@$@$Ð"t k›XXäG¬+´°´h^ñ!    *½±ñŒa êp°p     ºôÆÆk,zÏK6bXÃbuÖI$@$@$@$@Ú M°ho‚q9Ãb{ÖL$@$@$@$@ZDµ`a ‹–)Â<$@$@$@$@$`¨,ÆagÍ$@$@$@$@$@ZDµ`a ‹–)Â<$@$@$@$@$`½±ñšƒîë’öšâ•r^xá…ÈÈÈPMÙ·oJJJÌÐ,¶H€H€H€HÀD4 ½ç%ÑGưA½åuŽ=]ºtQ,Z´lya|’H€H€H€H " h,z}Í"’;P,ÅÉÂH€H€H€H " D”`a KxÍQ –ð/¶–H€H€H€Œ Q‚…1,FL¡–×IÁÒrv|’H€H€H€¢…@D ư„×´¥` ¯ñbkI€H€H€H ôÆÆG”` @–:,¡cÍšH€H€H€HÀ,ôÆÆk,zÏK6cXŒ Þò:)XZÎŽO’ @¸š`  Œa ‡Qú¦,á5^l- ‚@T ưb …® ^:Ö¬‰H€H€H€ÌB ª‹Yí     h˜@T –h‹a‘[âÅJáp8ЦMìÝ»;vì@NN.»ì2¸ÝnõÙòåËѱcÇór!‘ @( è×tÊN´´®h‹aÁ2`À|øá‡ˆ‹‹Ã„ 0sæLLž<‹-BYY.¿ür”––¢ºººÁ¼-eÍçH€H€H€H€H 4 ½ç%‡¢ñõ눶,:tÀêÕ«Š)S¦à¿ÿý/n¿ývLŸ>]ý­k×®ÈÏÏÇÑ£GÏËëÏcÄX±N    ÐB@³`Ñëk¦¥ræi,"F>ûì³&‹XžŽ;v^^,cÇŽEff&8€µk×¶®A|šH€H€H€H€L ¢K4ưÔ,"Bn¹å,^¼ååå¸âŠ+PTT¤bYÊàùÄâH€H€H€H€H  "J°Dc KC"¤]»v*辦¦UUUX¹r%:uêDÁÐ¥ÃÂH€H€H€H€BA ¢K´Å°„b‚°    $½±ñ%X ’eŸ/Ž >cÖ@$@$@$@f# 76^³`Ñ{^²`¢-†ÅƬsôèу$É1Ì dñ,‹H€H€H€HÀ„‚&XLØ×óšm1,á0&Mµ‘‚%ÜGí'   ý¢Z°Dz ‹ÅbÁÍ7ߌ’’u{}¸§°,m‹€.´ü„û\cû[@`ã%-xˆ @ó¢Z°4'–n¸'Nœ€ðr¹\X¶l™ú\ÊÏÈÈPëBþ&÷¸4TG K H²0 –eq$@$@u è×t˜Ã9†%..wÝuÞ{ï=%Z&L˜€… ¢ººƒ ‚ÝnÇ¡C‡0räH|üñÇ*X½}ûöX·nbcc1qâDÌœ9“&MÂÆU»\)7ÜËs’·OŸ>êN–©S§B.˜”2å’Éùóç«Ï;vì¨>—²ÓÒÒ”hj¨Ž@Í –@‘d9$X5§2QõöU¨¼Ø`"  # h,zÏK6¢SáÃ"‚EÄÃŒ3”Eäž{îÁéÓ§Fùýèѣعsg­`¬V+¦L™‚wÞyç6ÉÉÉç–ŠŠ %bê&±°Ì›7OYO¤< Î/--­ÍR·žú‚Eò}ýõ×ç–úuÈóâv&éóÏ?Wîk-Mf,[+Û¡Ø•ˆa‡¾é’Ý· †¥èDG,žù|ëÑ'[Š»¿º=¬iñó|ZJ€‚¥¥äø @0D”` ç–úBB¬-«V­RV‹gΜQ®b~—°Î;£W¯^Êš"Ï8P ˆº‚eèСÊÒ"±,íÚµCff&8P+Œê ùL,6K—.E‡ îu'Ožl°Ž@MD³]i.ÁbÁÛ/üw=þ“sp{½X,çȨ1a9$ (X8H€H€ÌD ¢K¸Ç°ø-,2A²³³U ЏsIн‰øøøZÁ"y$ ^\õÄ"#A÷"Fê  ä>|8bbbT‰OÑS·¿K˜XW$è^Ê×1 º—–†ê0Ód[D°œr¦À鱡Ȉ4›#/Ø„äo½‹ÓǺ`Õ¼)pV'ÁãÆ•7¼‡¼®>kÔƒ°~éÍp9×åk »é-”æÖZX<æ½õCtê¾ ý¯\xN“_îo8lŽî»UåéèuÉ*ôº‹f<Œƒ_÷GföqŒ½óoxÿOcàU ðÕg£1õÇ?GLœ#]gY$p N  3ˆ(ÁÎ1,fšÑÚ,Êò11{'2bìX^ÒÖ;†=ú,æ¼úKô¹üSôè¿{·ƦãpÛ÷ŸBUyfýóIL|ð÷HI/ÆÂ÷FûNûбÛöZÁ²zîðx¬vÓÛç¡}ã/¡Ïe¸tÄGJ°ÌøûopÛ÷žFL¬ïþùyÜÿä÷Ô3o>ÿg\4ð3\>ZŽ´¦…%Zçh¨úMÁ*Ò¬‡H€¢“€ÞØøˆ,Ñ9äìu ˆ`9jOÇØ¶{T‘GiX[™‹[þÜ®XØbj`±x”°˜þÒïñÀ¯ÁâÀθþލgÜ®8•ÇoaéwÅ"Øq ÆNý+¬VOƒ‚eÜ=/"+÷ˆúìã×~¢„Q^—Ýç–·þøgŒ™ò2Úuبî²h” ' @0 è×,Xôž—ÌN6Vv8ǰÁ‹užK@K‘+ Ã3|7ÛŸv%caIWLý壨·m0¶1âÞ%Ö ªð×cóg£Q|*Ã'¾~NaòùG¯ýV‹/ÚŒkoy­AÜba™ôÝß 5£H}¾àÝ KÏ¯Ð¥×—ç –›ïÿÒÛžâ°‘@Ð P°1+  ¨&4ÁTÃ9†%øFzE°8Òp}›½ª«baYW™‹±ü3þö[LúÎï‘}•e™˜þÒsJ°ˆ…eßöK1öο«gÕIp9ãá¨NÁ¼·~„[¾ó[õßË®›£DHý$‚eÜÝAVžïd²þó3ˆU&·óžóË„þ€´6,‘>ÍÐ? 3ŒÛ@$@‘K ª cX´Ol¹R.—Ô’än9±L‚ð#9‰`ÙXž‡ÉÙ;bsbeIgØ«Ñëö×0÷Çpç«Íƒ/–LÄæ5£pß?€£:YÄß|ÿóÈÈ:‰OßP‰º1,'_ˆ%3¿‹É?‹„äòsŠ`‘£‹¯3eÅY˜õ§ÔQÈÃòæÿŒ{þC`/.a,‘<ûÌÕ7 s[C$@‘F ªK¤ f°ú“’’‚!C†¨“Ç´¤h,[*r”K˜ÃkS÷±¤È)anBÒíÓ±üƒ{Qp¨;«pùèYذ|¼+n¾ÿØ¿ýRß)aŽä_°ó¼S„ñÚ…·¢¢´ FÝöêy‚eàÕŸ`Ïæ¡p:1àªè=x¹ÊóÉÛ?DáñNsçß°àÝG)X´LVæ  –€`d!$@$@ˆjÁ‰1,½{÷V·Ð˱ÄëׯǑ#G ëÖ­¼^/Ž=Š/¿üRI,ùQòÝ ÀÂ@© ¸µ#p¤ øÝÎÖ – ùÀØö@¡X] Ⱥ$Ǫ}ÂÉQã‹?‘ߟÝXü¢—Ì>æëØäÀ®2àï{vñÀ³}·XpÈŽ÷•™`k\°4Õ¿ú謈….õçñ‹Q“–õ’ D-ˆ,‘Ã"³R\·DŒˆÛ–Ý>|Xý.ø"XĪ"b£M›6¸æšk”hq:Jh4fañdzˆ¸‘g‡®‘ö¯\¹%%%JÈäææ*‘"9Ö¸®&+F`×1ÿ¸¾Õu“ D[-#‹XW^Ø,Àc›{Oœ ÌôY'¶”CÚ1`ÝÀã~ÓÇ' ýpy[t/–rU…À;‡€>éÀºånà§[¯øóŸ€úþ& k2ðøE¾àù×ΞÄýí.À¥™À϶Weãó€Å'YG}#ùd/ cRã‚¥©þ9<Ï( – ®6N$@$@ ˆ(Ái1,‘>g›,uEJ\\\-do¼ñFhðD `ÉŠ~×ÇgIùõö†1Š…b\®ÏZcõ‰±tÈ©`´ÞšSÂü‚eÆ`Ù) C"ð«ÞÀž à…¯}íyúb 7øñfŸ˜º«sÃí|iO\]Ñxý °®È—Oò‹iÌ%¬©þÉég% –Ð,;ÖB$@$ÙôÆÆG”`‰ì¡¼Þ5$X)u{/"± ùÝÂähg‡ÃÑ$ 9”@,EM¥ˉ@Á"–±˜œr¿Úv>‰‘ÏÅò"Ç—¸€G»mã+XÞ= ¬< ä%Oõö¹§ýe·¯=ò»ü],@ý3€»;_•ø\Ôê&9¢XÜÕê ÉßX ‹ÓÓtÿ(Xžyß·ì ˜‰€ÞØxÍ‚EïyÉF@‰´#†²Îº‚¥  YYY¨kIÑÚ9öùôéÓMfŸ8q"²³³›ÌÓ`9(XÄZò×¾àõŸlªj|1£s|.`%Nà{Ý€Í%À?öI6àÅþ¾ØqÙ×­@XX´ ±´ˆKX] Œ¸‰‰Åçp06×g ªëæ< YXD°5Õ?‰Ùi,Ñ¢uU2 4N h‚% Gb K8poië ·Û­âhZ’(XôS›ÔÁ'PĪ!'nÊRb|Aõ"~ÝÛçúõß#>KEf,“|\à»ËDOK/Žô»„i,rØ/ÏÆ¤,=å«w\pÊî;$ 'ÞçBæòóOø\Éät39 lÚ~`c½‹#E°5Õ?>b…ñ§,\„®©~ˆ{Q¶àõ»ü×2ý`ò'ha1ù±y$@$æ¢Z°DZ ‹¸0ÉÝ)r"XKRKŸOIIQîS………-©Vó3õ/ŽÌÈȨ ¬oÌÒ"ÂFN5“ÃäÎIrAs—Z×k#V""ÈäèäÏÏœÓ}Sý{z‡¯oþÔã1O58uf`"ÊpD󜗌,á2Rl' „'¨,á9d·º¥‚Ã_bKŸ—‹)m6víÚUÛ89¥LN% Uj.–E‚î%ø>è)BK鱂°&@ÁÖÃÇÆ“ €é Dµ`‰´r‹X:Äú V9v8==]a,Ö9ŠXîa©®®VG ËqÇò7±H\‡ßB#—AöéÓ ,¨báÙø‹UEŽ9Þ¿¿ºÛE¬k×®UÇËe”"V¾øâ C@}ñ"Ç/Z´(4m¡`ÑÅù‚dàÒ6?"1'þ“¼tÌÌ!%@ÁRܬŒH€¢Ž€ÞØxÍA÷á@2ÒbXD°L:3fÌ@EE…ºµþ³Ï>Cll¬¹àQ.€²gÏŒ;Ï!N2DÝÃ"‚E.ˆ1b>ùä“s¬\púõë‡?üPÅÜvÛmxï½÷0pà@TUU) ˤI“°qãFˆH0Cñ"K‚ôC’(XB‚™•˜‹‹¹Æƒ­! h' Y°è=/Ù°‘ÃrÓM7aæÌ™ çW\“'O*‹Ë¥—^ª.“ˈlÞå§[·nç\¨(‚GžëÈŠ+pêÔ©s†E‹\)"H’ˆ“ùóç«‹)ë ±ÊHÜHT& –¨öhï4K´ÏöŸH€ÌE@³`Ñëkf®n†gkDpŒ?ï¿ÿþ9‚EbLÄú!Vqó‹ùû²eËj;+ÏßqÇÊú"”ú·Ã‹`«ÔêÕ«Õ3“'OƼyóЫW¯s‹üMî>‰ÊDÁ•Ãí¦`‰öÀþ“ €¹D”`‰Ä–;ï¼Ó§OW1*b-q1lØ0ËR\\¬ÜÀä¿›7oVñ.³gÏVâdäÈ‘Xºtim Ë7Þ¨òÈåˆþ$‚eÀ€ÊLÜÌD°ˆK˜üMÜ®¶oß®¬.,³ÍµjÙ2 – fñ$@$@ºD”`ÑÃ"'aÕÔÔèỂ‰‰J©#yE˜ˆ`KŠÄžH\‹XZÄUlñâÅh×®rçW1 º0н ˜Š‹©†ƒ! ¨%Q‚¥±{Xü£[_¸ÐÊb켋‹#)XŒ$¬ÝP,†âgå$@$@g D”`©Kc£ì.ò_‰›`"戅Ån·7—Ÿ“@ÄAL$@$@$`$ˆ,õcXš+‚E¼™H€H€H€H€H€BC@ol|D –Ð f-$@$@$@‘N ÍZ… iëÑ'þ’­v”{’ð•½3>, »7Nu_J¹.e ®NÚ…¶¶2Tyã±ÅÞ” A…'!Ò±$Ðbzcã5 ½ç%·¸­x°¹–VÍGI€H€H€¢„@‚Å…'³g#;¦ [ìpÌÝù1gÐ/áö8Ûã…›‰ÛÓ×`Dò6uµÁGG´)F¿„Ã(pgâ¹ÓáòÆD 1v“ôš`Ñ× crka1¦u¬•¢‹@8ª]#ÃÞ’ 4G`dò6Ü–¾óÊáãòKk³_™´KYUÖUwGºµ ¿Ë™C®,ü©ð&¸½¾{ß&¥­Ãè”-˜Qz–UöÁ«yÓðyu7¼V$ˆXÑ!X~ÔvzÆÃÃÀ+zÄà±¶skIþ»x$²le*Æå¥¢±Ó‘åWrÿƒãîLüöô-M 3?Å%‰ûðƒã÷)«Êƒ™K[ŒgNÝÚâçL?ÜS¦)¦o&ØBÓ§P°4‡Ž1,Íâç$:,¡cÍš!@Á©á' S°ˆp¸4q?ž89E5)H¶:Ð%ö”“ÓÖAK¢Å‰;3VáÕ3£°ÉÞµ–u¬¥/çþG‰3M¹v=–5=â à8ëܰáÑã÷¶ø9Ó:‹é‡¨U Ô(XôÆÆkºoUãCô0cXB:@Õ0Æ!@ MZ ‹I&ššEÁM£Ýd_kúÀ¹¶¯Ê£ån!‰)¹#ý3,®è‡Ye—×–-A÷â¶%‚E\ÅÏú+*{czéUµyþ?{çe•õñÿ”$“™Fz()¡5ÒDPDºKQ?×µ¬ëZÖÕuÅÕµ®º®+»ëîŠX(‹€^HQ¤÷ 陚™ï9w˜žw&SÞ™9ïóðÉ-çþÎ{ÇûŸsϽÝÃrð›Ö+±¾¼'¾*Œ9Éÿ ùs®ÜŽ…&ÏÃ)S¢Èa™³³ðJþÉq<ù–H—ëÉÞé,XdXñŸq°–ê ÕjAׇ¸ë‘,Xœ=/Ù]:Óç°8CË÷eyAë{xÒö¯'érÛ’°`‘„) •e^òÍ]!I°„‰S–!A]"rQΛã .FoÍYØ §„Q²ýã—Š“Áæ—d`> I!Åx(zâÔeB„\²Dáåø%âߟ G÷°ó¬=sæx¼[pú‡ŸÆ/cÖcUy_‘Ûj·èkqÉ`—ëÉÞŸ,Xd˜ÿÁHT•„#!!Á7‚ÅÙ䘖 –ë^жŸÙ¿í_¹î`EŠÌáȈ>{Í4KáŶX·øüâÉ—\æ‰}CÐ¥Ïv—ësE÷pV°PïtË„È]è©9­ÂˆR«GŒ©")ž„=mB ñDìjĨ*ª 6ÛTø¬øVìÒw?£\˜û£7‹-d+Ëû‰d}:Qì­‚ñâıÑ{‘¡;Š¥Y¦D‘Ä_XÕÊåzî%ײÖœ—. ž—-ó…·j³`‘@šsX$@’Q^ÐÊÈ0…ýë¨Üd£ä%XøâÝwpï³ÏÕ²×fS@¡°±}@ÀÁ"ÕLÚæ•–ƒû¢7à fçOåK#¯Â“—`áy)õnI9,èq‹H2* Z9æ°=•›lR°ä›"`²ªPh G¤Êˆ÷@÷‹ù¸|! [WL‡I¯…JmÁMw,DJ‡ã¢­3Gúaׯ»a6i’vã>GqAru„ÅjUaÅçO¡]çCè}ÓšZýúƇ蛱9Y=PY…ný·¢çàõX»èQdï˜ø<Œ™ñ!¾úÇ+è{ójìÛ6 3Ÿþ=Ô¡Fö¤— xR°8†B÷¶Ðý-tçJ¶)™=„€ æ‡K½yùÀûÐ%_ày /  Žå dT„´2r†LáC<•›lR°ü\šŠ ñG­6 ³8 JO¾Šeÿé7n@—Þ;qêà@ìÙ<SŸ˜Ê²h,ù×K˜ð𛈈*š…"©]Úv:\-X~X>V«㾨×÷¼·>@ú M0ü[!Xýý5L}ü¨CL˜ÿþÛxè¥ÇEÏÞ~×÷݆G-À_¼ÆÞ,…ÆlD÷° ¨°†á…KÓj%Òûbܾî“K½yÙé2&Îåyékçx¨©‚ÅÙÜxÉI÷œÃâ!Ïq³,X‚Øùç}ŒžþÚœvó¨¹9©¼!X¤ÚL圗ŠV˜òÄlž—ú"H,Îê É‚ÅÙó’}áÎañu×ûdÁâ:;®É˜@m´0*4k14Ú~³ýe³kŠ;`æžDÖ¡8üÓPÐö.Š–PòîÃ/?ŠýÛF¡(?C'|Z«1úý·sŸƒRaCûë÷cØÄ¹ â¦ˤ_½†VÑ…â÷«çÿi]÷!­ÛÞz‚åî‡ÞBTë|v›°`ñ øç¥>3Ÿ}Žç¥o\âñ^}.X<>B7tÀ9,n€èÅ&X°x6wÅœ-Œr‘¸=ö”)EXvV$cÌc¯aчƤG^Gt|*Jc°àƒ7„`¡KÖá3ãQ¯…Ù£>+>ÿ-&>ògñßF."¤îC‚eì}E\Šýd²o?y•In²ž`?ë-DƲ`ñÕkÈ‚Å7䜗ʌ¹÷ž—¾q‰Ç{eÁ"1ç°H€$£"œã #g°)LÀÏ ÐÂhwY &ÇA„Ê„-Åí¡ ×£Û=s±|Þ3˜ñôóPª¬øiýìß~|ñ×0êu"!þî‡ÞFtÜ%løêa!>jæ°\{ç}<ðû§D‚=m cÁâÛŒ‹oø78/¯?Žnƒ×ó¼ôK<Þ+ #æ˜`LÀ_ (O[ÂŒ6•¸%‚N »n´÷,@æ× ÷lghÂ+qã¨%ø9s,lV%î~èœ><À~J˜QƒÔŽGëF(Öþß5—€5íæèÔÀ=mî‘@ˆ8S,<\2ØOßÖÒï{DÚ¯‡çÃì_h44?i®4õÙ@¢‰Ú¤Ï-4§HäWÙìßWlŸS$æÿ•eŸwM=ô¥Âí‰EP¨,}@ó—æ)µ±­(6Û¿ä /YX°xåUs®ÎaqŽ—fž$PS°äææ"..5#)Rûþþûï›,cÇŽ…ㆵËíØ ÁÄ'÷ò9,Ÿ(éUsZ¬¿|Ø^…Ç„T`C>°ø¼}±C‹Wì߂Җ*ÚZõä^ 5ܾ8§ÅËÛÇìõé[Ð$ý›Ô¸°k‚…¢3=£€N‡¯æ£ü¶‹}!õÚ{”‚Ú}¹»]¼Ð·¾vnˆ•¾%Œ@íYuÑÞ?ÙÛ1Âþ 3-fn޳KØï®®‹¾ÊÖ_²VãRìbâ‡ûÏ^OŒVà‡ì6ӷô£viÛm³¡!‰G›ÿ=cMLnO²/´hqF‹/ŠÂ ¡(Lc;K›KãžžŽÎ;;ýYÄŸîûüøwùP¯ ‡ ¨!Eý´* Acÿ"¢Žuçmƒüg¿«ïùQ{Ž=ÍÍϦ>̶km>À>O^è ¤éìXŠdŽL¦´±Ï×o.4ÿ‘åØFùgŽ((}aB‚è«_ P{Ô. –æyz½ç°x9wÈ%PS°X,¨Õj—hñBÁ} …¦ˆœ],%ø÷ÕS¼(šB ÇâºO´ýÛÚø0û–•¾%жS¥G÷§]uY׌à„(íß¶RÂPe/ùv/ :¤¾‡ yg Ùø‡nmG!qAßÓ8[Þš,´à¡…=Ž~ëZFQŸÇ÷Ø·ŸP$ªSJ´ès‡`yõpAoÿ&™„Ôò<»¢mdïörõÀŸŽxF°¤ ?2 ¯#RçÒgU Äùá«qyS° ˆfu´ÏSŠšœ(v^۲ؘ`¡9C_D8žæægSŸ 4×IѶϧ÷Û[t©÷OÇ˲óáŽG뾸uË­ÒìÉ÷ŸeÛKÓ4>¹ gsãjK˜ËŸD\Ñ'šËqð‰QÜ©ÛÔÝF ;¶a4i¡-KƒAœF[—èÙ½{·¤Ks†{;$U*U£–/_.‰³?E²\,´½âã«‚Åq-ô)ÂB”oAß’>ÙÙ¾ƒ m颈…#"R÷}tZÑ)_´À¡-U´µŠž·z1¡ö¨ -l•§…¾³‚…êS{ƒ[Û·\]§H(9ìkJ°Ì> \¼š—ãè—òiêžNFÛæ^én-ŸŸµ‹"ÚjF‹¯º‚ÅѦc ™ã›aÚöž‡ ± SÂü)ÂÈŸgË#§{-Â"þ¿£ÆØó¥(¢GâÅñ~6&Xy]?45?)‡¤©Ï‡`©Ù&åõ‹þrÜžC§ŸIu ÍsÊ;£í`4éqˆ©m6÷ÎIý½ÔcM5‘,Xœ=/YêÀÜYŽsXÜIÓóm5”ãàù^¹ohÊ¿Íí§¤{J¾ç‡ ´ˆ€ 9,”ìþ‡ƒö¼‘ñ©öœ Êû œÚþ¿øG–}k -´)šð»ö¨Ës×Ûs](ç…Ú?ß­•}‹åu8’îçe¯õ°'¿r¸l¼¶åä¯'ìûæ©ýö:ûֲɱ°¢`Ç6²¦ØP~LJ8p¬Ô>jov{„–C°¬¾hO’§Ç ©)X[Âè$"-ôС´ø*0ëcq¿Ùgÿ݋݀öZy –òÍ]Z+4÷DcñUK‹Þy¨ìŤ{Ó:•}«&=$^h;–ãàŠºóʱ%¬®`ql kh~ÒvЦ>(W†",ž,$ÆžéR{K˜ã°Ž ,þ08‡Å¼tÍF,þå/g­•êߺ :ÖxíÚµÎvÇå™@}.ú¶”" ” {G’=*Ay%´è§œú¶”öÓ©X1!öè-ä)烒ÜiADQ JÊ'±Sd²'ÝwЍ}J˜ãQJ¸ýgÐ;xì:{Âû¦ËöShBÑZ\Qb;E'H¬Ð·¨´u­©‡¶®‘`¢¼[Ñ¡ö\ú;ÝåâøF7ßh?d€ìoH°ð¡d^ÿò\ûxIìÐ)K ÎÙE%öRŠD‰*C6/ͱ_\Gy1®FX:`8âÐ:$¢ îD Îá4ÖÄrìÇç’ßú¦îaiH¼Ð±Æ ,Ü>t‚€ ÍIzÿèݽb²ÏC:|‚òD(_¤î¼¢hj]qA#kj~Ò¡M}6P {O Zoö´o+¥9O}Ñ<¥CCX°8ñnz«(ç°x‹´{ú‘º uOoÜŠ· ¸â_Z8Pd…’ôùa-&à‚`¡…6ýÏžNТdYŠ,Ð CôÐfEGÔå‰Nö-&$J(§…ò3(ªBÖÑÞt7ÆúÇS—ºmÂÇ·¶tªÏm‰vqA‹«µíâ‡*÷èuvq@Éëó›¹¹š0t`mÏ¢E GL‰ñK/ØÇ¦´oi£Ü-$Ê,Ô7m)›ÔÆ~°µ³ëêñÈ›}!Gc¦­]{éçìÂŒÄËÎØO3j‰`ŠWÐcë½ ÈÇ|Ü!ù‘zq¤C¼Ð¶TÚFÊxQ°à¦÷“Ä?ås›€Ÿ®ßçÙ¢¨;¯è˜ò† Qhj~6õÙðêQàížž,d‘¶¥Ò!ôųî61x³^“>ßæArÁEÀ•mpòïѲýÛa½‹‚…¢ü©‚%°F-ÓÑxQ°È”@@›Å‚E‚{9‡E$á­ŒœáSøP@å&# ‚…¢5/Ž« …rJù&Î ÜÒ,Xdä[,M:ƒN÷¢üµÆÚJ§Êõ‘*XœÍ—œt/W05íâðÒ5Y°ø—¿ØZ&àwT°ød`0 8Áa 9Ãý¦H,Îö,Y°8{^²³†¸£<ç°¸ƒ¢÷Ú`Áâ=ÖÜJN– äDƒfÁ"#g³`‘‘3ÜoŠÏ‹³ç%»·hX°šGy,î’û[ ÖÂOãÅKÓQXÒˆ´|!&&Gî –p… 3¢·âã+·a¡C5üE>JþDˆ3Mmíz&n9º„æÂx5×E +,Páɼ\®çþ· ðZôWÿþMûgDGG ‡dee¡¸¸8ðœÃ#’7,òö­ã‹a7× –æùõïY°Hp_°æ°PNÉ´¨mXWÞ KJo¬&EI÷´m‹ m{6î;l®èŽ%7W—閃ߴ^‰õå=ñUé`ÌIþ¯HÈŸsåv„(,ø0yN™Eˬ˜ž…Wò§ˆHŽãÉ·Dº\O‚[ƒ¾ˆ¿ú·ÏðÉHKKþ[»v-²³³ƒÞ— ÀËX°x¸|»cÁ"#ß°`‘‘3Üo ÷3 ˜ÃÄ)aË .¹(çÍqHP£·æ,lPˆSÂ(ÙþñKÅÉ`óK2°GŸ†¤b<½ qê2!B.Y¢ðrüñïOІ£{Øy ÖžÀ9s<Þ-¸ ýÃOã—1뱪¼¯ˆÈŒmµ[ôµ¸d°ËõÆ ˆ¿ú·ø†Ù,X<ø^pÓ°`‘)8Šð–0ù™‹Œœá~SX°H`¬9,„†î阹 =5ç UQjÕâˆ1U$Å“¡§MH!žˆ]UE5M³M…ÏŠoÅ.}'ñ3Ê…¹?z³ØB¶²¼ŸHÖ§ÅÞ*/N±º£ˆPeJIü…U­\®'Á­\ÄOýÛÄ$,üöú– ßò—Qï,Xdä ,2r†ûM‘*XœÍ—œtïþ!¹¿Å`Íaq†$móJËÁ}Ñ›a…³ó§úäÒH²™/ŽtÆsÒÊÊÉ¿£FbÁ"Ím\ÊSX°xЬߵË[Âdä2,2r†ûM‘*XœíY²`qö¼dg qGù`Íaq…ÝÛB÷{Ð+Ù¦dVôÆ›/h=G›ýë9¶Ü² Á’–ªª*TVêëÞÜ'žMâPý­‰Ã ¨bäËr>ÖX>í¿[ØQQQ«Uê,k¹éÍÍÓ–÷À-Ê}mQUŽ„„¨Tö;ÿÜñH,Ξ—ì㸠Ï ÛӌوîaPa à —¦ÕJ¤÷\Ï×ZfÁâ9Êì_ϱå–ý€ÙlFAAÿλßÃâv¤.7˜ŸŸ/¾Là'0 °`i¯ÁœÃâ¯; ôšt›Ù¿ÒYqIÏ`ÁâY¾þÔ: ùx‹‹||á KX°4A•sX<ñÊy®M^…ï£ IDATÐzŽ­ZfÿÊÁ l Áb0ø¦{y¼eeeò0„­ð­VË[Â#Ë9,yç<Ö(/h=†V ó¡ ²pÁ˜`L@vœÍçÙ¹0x bÁ<¾æ‘2&À˜`LÀAÀÙÜxÉ‚ÅÙó’}áÎañu×ûdÁâ:;®É˜`L€ 0%à1Áâ@8‡Å¼tÍF,þå/¶– 0&À˜`î Ô‚…sXÜñ y¯ Îqðkî‰ 0&À˜`r!Ô‚E.N`;˜`L€ 0&À˜h˜@P ÎaáiÁ˜`L€ 0&ÀäMÀÙÜxÉI÷ò¶Ý:Îañ/±L€ 0&À˜`L@:É‚ÅÙ󒥛ྒœÃâ>–Ü`L€ 0&À˜É‚ÅÙ½frÛÀ˜€ïð¡ ¾cÏ=3&À˜$%X8‡%^M‹¿àc«ý݃l?`L€ 0y(ÁÂ9,òx©Ø &@X°ð{À˜€?ˆTVb|ä.¤‡‡Ni@™U‹}†öø¦t ¶P14€‘p‹öZ«JQi ÃC{|]:åV?Ÿmg²"P‚…sXdõn±1AN€K¿<|&àÇ4 3^Š_Šxu)Úá‚¥5RÕWÐKs'MIx·`œÝ=QÛ1\w9æX1¶E’º½4çk‰Á—'ÀlSû16 xŽ€³¹ñ%X<‡•[öÎqðUù´É‚E>¾`K˜pŽÀÝ!LÚŽeýð]Ù€êÊ7i‰¨ÊN}gD)+ñzâ"œ5Çá/ã`±©D¹I‘;1*â• Á¦Št|œòoü¨ï„¹EÃÅïÿ’ô.Z¢ñ^Á]âßTv¨î0Z)õØgHÃçÅBè¸ZϹ‘ri&àÎæÆK,Ξ—ì‹ás‹/¨»Þ'/h]gç5Ù¿þà%¶‘ 0†<³ýÂOãùK3P\¥ƒZa…Va¨.ª·…aPøIܽ_gà‡Ê®Õ¿‹VUâíÄ/qÐÐ]ݤðè«9ƒ_Å®Âè˜)Ç®Ášò>XYÖ×åzìQ&à<&XüaðœÃâ^ºf#/hýË_ÎZËþu–—gL@.~Ûzº†]À£¹³`…]ÂrñLëåÕæý·hâT¥"ÇåƒÂ;qÔ˜ZËô9ÉŸ σ?_žØ¤ðx8fú‡gá×yЍÊÃ1ë‘R„?åOq¹ž\²L )A-X8‡Å¿&/hýË_ÎZËþu–—w;èb 9ÏíÍrƒ~Jàh7Ɇ“p~/^šŽÂªè”F¤…ä 119r'H°„+L˜½_¹ { ªÛQTá£äO„ˆ!1ÓÔÖ®gâ–£Kh.ŒWs]԰žÌ{Àåz’é«‚ÝŽúªgî×ζ*µÍöÔ‚¥Y:\@VxA++w¸Ýö¯Û‘rƒÎ Á2l£³µ¸| 8Ö pB°PNÉ´¨mXWÞ KJo¬&BI÷´m‹ m{6î;l®èŽ%7W—閃ߴ^‰õå=ñUé`ÌIþ¯HÈŸsåv„(,ø0yN™Eˬ˜ž…Wò§ˆHŽãÉ·Dº\Oö”½™l ‹ÖŒfÁÒ:Îai޼~Ï ZyùÃÝÖð¡ î&Êí9M€‹Óȶ‚“‚%Lœ¶ ê‘‹rÞ‡u1zkÎÂ…8%Œ’íÿ¿Tœ 6¿${ôiH )ÆCÑ›§."ä’% /Ç/ÿþ¤h8º‡Ç`í œ3ÇãÝ‚»Ð?ü4~³«ÊûŠˆÌØV»E_‹K»\Oö>dÁ"{µÈ@‰‚ÅÙÜxÉI÷-2ÞK•9‡ÅK ÝÔ 7äf˜h˜@ ÁbµZ™R°ê ËÁ΂€VÛüv*G÷°LˆÜ…žšsÐ*Œ(µjqĘ*’âIˆÐÓ&¤OÄ®FŒª¢š®Ù¦ÂgÅ·b—¾“øåÂܽYl![YÞO$ëÓ‰boŒ'ŽŽØ‹ ÝQD( È2%Š$þªV.ד½›¯ ž“²÷”K¿[E84 ”ÊkQC—«QI²`qö¼ä–æJ}Îaq…šïê°`ñ{î™ ‚Åb±Åy 0ìëÃÞB¬H,RYÒ6¯ô°Ü½V(0;*_Ù¼«‚¥ªª 6›M*f.ç'J¿k¹±±±¾,Î&Çø W6Ó‡X°ø>wÍŒÀÁŠ™Ã‘}öÚÈ\,W S°aíLL™öŽË”N€Î×ÿìr}®è^ž,KéÞº¿…î\É6% ³¢‡0Áü48/],œÍ˜|Œºc.–-~½ûnÂ}·â÷¾µÚ€÷¼!XäMÀ7Ö58/'Ì….î.æ%cûÖ Ôœ$ gÏKvÖw”çwPô^®.h½g!÷ÔÎø7-- Ž?ÙÙÙÈÌÌlI×\— Ø ˆ`ÉhgÂý½*ñž›K‚Ί7‡•bùIMƒ‚EAì€ÍÇWÆ8 ™³¿b)¶•þÓ£‚%44´ús¨¼¼Û·oç™ä 2,ÍÍ-¹Ì…ºnÙÁˆi=ôøæ¸ߟløK¹GXœ}µ$ gÏKvÖ.|œYÐÿqsþ­)Rh¡àxL&æÍ›çÿx¾' Q°ÜÓ]QXx8½ÌèÒº %>?¨ÅáËöˆFÛÈ*P¹ÑU0[ý—B°àp8Œ±¤?Ÿzõ÷•fvå†`é1 LU ÔÝ6¸ ³úTbïÅÌùY'®’¼µ½ £¯3 µÆŠ½R,D~Ê ÅŒt=†§«Yþ”‚÷èšdKÛE¦tÓ£²­B­(Ô+±öt˜ØŽæøfÖÑm'yqS$>]‚3Å*ìÊ ÅÝ] øë:œ¼¢nÔ.ª¯ ±aZºéñf„(ÓÅ*|yP‹KJ„«m¢ÍìbÖŸ lTJà»+Tã—}+Ñ:ÜŠŸóBðÙ-¬ ˆ#‡`)¯ºŒpe4^~¥UÝai賈¢¼ .ôý;ˆxX°ÔDÖÔ\hhn}~@+˹PsLŽÏÇÏôžX…ŽÑU¸¿w%’tUÈ*R‹Ï(šwrÝæì«P‚…sXœu¿oË7· õ­uÜ{K 4ä߯DJ;ôz=víÚ…ÒR{^€ÍfC^^^“æ$''‹ß+öÅcCO0·“””„ªª*ñÇjµ6ú_bPDÁ2±«wv2 Â¬ÀÒcáSÙÄ‚Ÿ„Çs"aµ)ðΈRhClXp(¢- ofIüïH¸X¸¿5¼´8Z•†ä+èÛÍ­çB1–`9]¬Æ CÊq±B‰·¶EÀX¥@ïD3žX!ÄÑ–saÈhgD÷x ÞØØøE=®‹±`uVä‡àxaÓÛÂHpŒëb[EΕ¨pcª Ýâ,øp—9¥*ñ»›ÛšÄ‚fç…P칂ï(F‰Q Sp´@5§5HÔU5j×é"5PþIf1æƒ÷ôЋþ^ÝÚJ° 6ËM d—¨qºH…»ºPe%a£b¾%&ÑB¢l¨û8˶Òá¦È_á¤~Ö¿îÁ"å³héÒ¥(,ôþQÔúyFÛöéÉí5¯ŸCžþÌij.”•õæ-ôå8jÎvQUÝшRMØ}1»óB°+7TDMã´Vñ¹SlTbX{#"Bm,Xäø?5Îa‘£W·‰‹ùËYkkú777qqq¨I‘ÚÞ÷ß߬`;v,ÿ3l¬]nǾX&>¹ùç°\ñK1d‹ÅÒèØßXn>*¢*ôüö†r¤Ç[ðÑÏ:œ(T£O’eF… Ñ+ÞY*öÓâüŽNLêjÀÊSU¡Åú½=+Å–ªÏj1¾‹=éžòEnikBˆ øó¸¢Wоž½±\ŠW¶´ÂÅr%uVüéÖ2l9*¢÷­¢Cê–°ÇT _’ûI'ì%¡EmRäƒD˜cŒcK˜RüçÎba ‡Æ%Å.Z0ÑXw䄊ÉÃJE?­Ž‚¹JQÝæ3ë#QlP⥛ËD$Š"Yu¡¨E­VœÒ`Ù±úÛZ‚åëÂß ¯î¤icIÁÐ[K\ÊaiWq;ºwïŽN:9ýYÄŸîûüø÷¹‰^,ÍÍ…ºsK®s¡î‡×mŒBlÑg Íã.±m UÙD$åý#ªywd)b4Özƺ¢Æ›Û#œ,SÌx¤_¥¡ˆ„("³='Tˆz,íylU”d»ú&™1®³”£VÚÄ–/êóéu‘(3)…`¡¨Õ“kìm:Ù!¶…‘tÒE‚(rU÷¹&Xž‚ÁZŠ_Äÿy¦CØPü6îM˜/9é>5´7†i_Ddxk)9 –áÏ!÷}yS°47,r› Í úü¡Ï¡·âÓýö/]èKŸ\‹³¹ñµ%ÌåO"®è,X|‚ÝgJÙ‚A[ ƒ8%Œ¶.ѳ{÷nI–æìí¨Õj¨TªFÿ,_¾\gŠd9a¡£?éîôÌL×cXšQ,¤ËL q<è©"µø7m£o3‚űèiN°\®T¢Ô¨Û»>øI‡ƒW„C°PD¤Ü|m[£É¢@N™ÊiÁBöS$ƒ¶¥]ßÚ‚v‘U Ý’û,$n~»®¾`iÈ®J‹BlA1Xø×Š <5¨BlI©)Xj¶ùXÿ ‘WóÖö‘ãȧilAUS°Põ4ºkïÀ¦’w1,êYÉ‚…xÐ)aþa äϳå–'¼ain.4&Xä6\,Ž\9¹ gsã% gÏKnn²yâ÷œÃâ ªžk“‹çØÊ½åæÄ %ÝSò=?L E$æ°8" …ødŸýÛÉn*G§{ÞG×Ö±}‰òU(oÅ‘sB[¬(a¢/Ôår,9.¢ O ¬[±Þß©ÃØÎÆê{X(jòJF.V¨ðòæVb+•cKØ»;#DþÕK‹®B~…•ÊjÁò×#pèê!MqIаBbå™8l´Ë‘°ï,Ž-lŽm0uiMÙ•ÚÊžß²ïRþ¾K'lþ`T TŠÚw ª5fÄŽ k¢T©N ÃÞÐjµâOsŸAÄÍW9,-zçý¡²“î›› Áâ˜[r Í úbâwƒko s*t‚Åæç°øƒ—®ÙȂſüå)kë.èXãµk×zª;n7˜8)XhûåhÕ6q:-¶ŸÛ…[Û1=]/NÞÙ˜Š;:Å’íÿ³W+"/o +QŒ•§ÂD}»IÛÃ(ªQ÷”°{W⦶¦êíf´µê‰"bCÛ£(ò@ : ŒDõ="͈C—CDB-¬ÕÔóÜ`»Ø¢¹(O¦s¬EŒ‡òkH¤P”ƒ¢$¸èä0Ê'¡í[uKSvå–)Ež %ÕÓii”›nc§ÎÖ ÃœÑ%µÚli„…Æ|C«Ñ?bº¾»îaiH¼Ð±Æ ,¦Ùâ½±zQ°47êÎ-:üAŽs¡9ÁBB‹¡­¥ôF‘\:¼#2Ì&¶¹ÒvWo=R/ŽôX„Å[mI?œÃÒzÞ¯ËGzŸ¹Ü{¤…EV(IŸ&ÐbN J`í[…®­Í"²A ø”ÿAy'ôM,Ý*M[Ÿh[åmLín§bÑi^$ ¦v3 ]”El“¢#‰—ÕˆSÀê ZT¼1¬LLZôÓÑÅ·w4Š„~:†xM–›ÏÙóaÚDV AC'þüt!¤ú`€ÆøÐex´#ÑCÇ SÂ;öí ˆèЖ¶ßÞPöQUB´P¢}C‹4j¿)»è¦Œ¢M²—XýfP¹n³7·musg„…ì Uh13á h”Qn,59:Ä mK¥m¤üx€€Kss¡îÜúòV–s¡9ÁB¿§ùþ½*Å4iÎS^‹ã´Bx²Á&Y°x‹4÷Ø`AÀIÁòÅÁpqà'ððM÷2ò©‹ŒF4¦°`‘àjÎa‘‰‹0&À‚…@ –Ž1ÜbnÔƒt$1åâðS› ½,XštÆàT“Èakì¡Kiiª\©‚ÅÙÜxÉI÷rSÓ.Îañ/±L€ 0/@Áâ%r× ¹”‹Œœá~S¤ g{–,Xœ=/ÙYCÜQžsXÜA‘Û`L€ ‰‚%@FËÃh‚ ½,Xdä ÷›âsÁâl6¿ûp‹L€ 0&Àœ À‚Å X]”‹ŒüË‚EFÎp¿),X$0 ¶:Í„NÚ2ˆÅ©S§päÈ$&&â†n€Åb¿ËÌÌ7Ž7TVV.˜ðO,XüÓo°š‹ ºÚ$ WÉùE=,Ül9,$Xúôéƒo¾ù¡¡¡?~</^ŒÉ“'‹{,JKKqã7¢¤¤z½¾Á²°r&À˜€`ÁâŸ~ó€Õ,X<ÕÕ&Y°¸JÎ/ê±`‘à¦`Ëa!ÁÒ¦MüðÂÎôéÓñ¿ÿý÷ÜsOõ…W:t@jj*rrrê•åK±$¼T\„ 0ÿ%À‚Å}çfËY°¸hKšcÁÒz²¯+U°8›/9éžsXä÷Ž`!1²mÛ¶& Ež.\¸P¯, –1cÆ &&gΜÁŽ;¼:H¾8Ò«¸¹3&|X°ŸÏ1 ½ ,Xdä ÷›"U°8«+$ gÏKv?‚æ[ Æ–º‚…DÈĉ±nÝ:ÐM½C† Aaa¡Èei¨lóT=WbÔ¨Q ÑEmaËÎÎö\gÜ2`ÁG€Kðùœ‹ü}΂Eþ>j…>,-°ÝkUƒ1‡¥!’ ’ªPYY‰-[¶ ]»v,X¼ö&rGL€ È‚ Y¸AFp„E^¸j 9Ãý¦°`‘À4ØrX$ ‘uްÈÚ=lð,Xü߇n 7tG3,XÜAQ¶m°`‘­kØ0W °`q•×cL@,’0C!,2ò2 9Ãý¦°`‘À4ØrX$ ‘u,²vÇüŸ ÿ÷¡›FÀ‚ÅM ÝÑ wP”mR‹³¹ñ’“îeK¦†aÁ–Ãâ>iÊF,þîA¶Ÿ Èœ ™;È{æ±`ñëf{bÁÒ,". U°8;FÉ‚ÅÙó’5Äå=‡E¡Pàî»ïFqq±¸½Þß¿,´àIÎówÔl?pžÀÑnÎב[«ó×ZeE¥¾RnÖ±=^&`ØÛZ­VüáLJºWTTÀf³ùÐîÚL'“a-× 66J¥Òm]H,Ξ—ì6 ƒ°!& Mbú=z4–-[Ö,•ÆÚh¶¢ ø`¶Ñ‹T¸+& %ÑÀÆá20Ä=&X,ñE?L€‹|Þ+W®ÀjµÊÇ ¶Ä­X°4ÓŸsX4#t qVVJKK1hÐ 1™M&6oÞŒ[n¹EO|âÄ qÉãM7Ý„¨¨(¨T*ìß¿çÎÃäÉ“qþüy!x8€ŒŒ ñ{0?üðƒ¸åŽ;îÀÅ‹A¼Ìf36mÚ$~OíGGG Âô3ºÇ¥¡>ÜõFûÅÅ‘5¶”¸kÜÜ=,²wè,®qóD-,ž *Ÿ6Y°4á Îa Ž÷Þ‹…  Ñ2~üx¬Y³z½ýúõƒÁ`ÀÙ³g1bÄ|÷ÝwâÂŤ¤$ìܹ!!!˜0a/^ŒI“&a÷îÝâFº4’n¸§zT6==]ÜÉ2sæLГÔ&]2¹jÕ*ñû¶mÛŠßSÛ‘‘‘B45Ô‡|¦ƒ,©!Xø› /ðæ.dAÀV ãê›…-°}†",ôÅ?L PÞé@ð$­uø \ôE{mH. –+…)ذv&¦L{Çe<'@çëv¹>Wd®`Áâ*9®Ç˜`R8›/Y°8{^²cÝ]ÆŸsXê Š¶lݺUDYÈ©´×“§Ž-aíÛ·G·nÝD4…êöíÛWˆš‚eðàÁ"ÒB¹, ˆ‰‰Á™3gª…QMÁB¿£ˆÍÆѦMÐöºK—.5؇»ý&—öä%XXøùK˜vßkµðØl (|ªŠ\Þ™@µƒK z–ÇŘž` IDAT y ¯i+ü=‡Åa¡QÆÇÇ‹ÚÎE{¯IH„……U *C ñ$$)"CI÷$Fj Ú?8tèP±­ƒÊP~ ‰žšý8¶„Qt…’î©=Ú:FI÷”ÃÒPþð.¸b# –|SLV -áˆT1¢ý>èF­Âåü6Øš9Fc8T*3ßü-’SìÑ¥ìÓ=±{×í0›C‘œr7ߺ%Å Õ«U…ÕËg¡m»cèÙgs-Ó¾˜û*z÷Ûˆ ç» ²2]»ýˆ½¶bÚûp6»;bbò1ꎹX¶øiôî» öÝŠ_ÜûÔjÞŽ4,X¤qâRL€ 0&à ,þœÃâš»¹–; `ù¹4â"Zm@fq”aFdLŸƒe‹G÷ô­èÔeNŸêƒ½»GbÒ="ß,y ã&þºˆ¬_s“²Ñ¦í‰jÁ²}ëX­JÜ|ëÒzæ~ùéŸÐ=}ú \‹ÊÊVX²ðw˜xÏ{P«Íøß—/âþYuæÏ›.]ÆÀWà‹;ýÎmÕ'À‚…ß &À˜ð$ ,žËm>,9†(Œi}R 6ljå)˜2ë X,!°ÙŒP(¬BX,žÿþïáqêDdŸIÇÈÛ?u¨mÙrDXzöÞ""0£îøJeýóæI°Œ¹ëc´ŽËõW|û(zôüI)§k –Ïfã¶ÑŸ"!ñ\à;‚Gès,X|î6€ 0&ЂZ°øsK@¿•~28,…f-†Fg ‹/›uXSÔ3yY'{áÐD¤ÄfS¡° üòÜ+Š®$"c˜ýÔ5ÇCI÷Ë¿y ¥íÚÅ­Ã5HËøÉ ¢U‘øýÚU }Úa´ïp¸ž`¹küDFø M6ÓŸ °`ñgï±íL€ 0ùp67^rÒ½ü‡‘(žœœŒ¼¼<äæÚ¿±æG¾ävq$ –\c$n=% Q„egy2ÆL›ƒE_<ƒ»'ý Ñ1ù¨¨ˆÂâù¿‚…",§³zcÔ˜¹¢å¸XÌa0µXµüaQgõò‡1ð†UhßáP=g`=ö߈‹¿ ~·ü›ÇÞ{ ’’Ï4 X>BdT¡|Ê– ,ãJ`L H,Ξ—ì :œÃ":]I—KJyèn:±Œ’ðÝùŒ5J\RIÏÚµk%ÛãNj¶E‚ewY &ÇA„Ê„-Åí¡ÒÐíöeXþõ,Ü3óu±­ëçGãàþ ÜÿÐ…@Y¶øŒÿDE_ƦõÓŸS+‡åÒÅ4l\7¦üME-óI°ÐÑÅ7 ùe¥±øú«§1yÚÛ"‡…òVî}p¶H°ŸÿÙlÜ5ž‹§|ÏíÖ&À‚…ß&À˜É‚ÅÙ½fr$ÛR›@DD $N“ò‹`9Pž(¶„m*qK–¶ÚÛV#sýdä^HC˜FA7.ǞݷÁfU ¡r&«×ÕSÂÂ’zªÞ)aÄøÇcQQá·Õ¾[‡ vêD?˜Lô꓉n=v·¬Y1 ©"z³vÕƒ,X¤¼¬\Æ-X°¸#7˜`n"P‚%sXºwï.n¡§c‰wíÚ…óçσ~Ö©S'Øl6äää`ïÞ½âHbŠ˜ÐïSSSѹsgìØ±CÜdñâE³Ù,Ž+9r$Åý,'OžDFFT* ~øáI!A“””$þ-ÄM GXœS.^)u~’`™8õ=huî^IíßÙrÝã,xæÆrü”‚÷èP÷ßζç‰ò¯-ER„¿Y…r“/ )G§X ^Êl…¼r•'º ¸6Y°œKy@L€ 0¿&P‚%ÐrX´Z-ÆŒƒ¯¿þôw;wîE<–.]*‹ã6ûž={Ö,Û·oÇÌ™3±`Áqó=]F¹jÕ*DEE ÑC"„îz¹páΞ=+JzzºècôèÑ¢̘1Cü].‚…ÄWYY™w&žË„©ïC§+ñÎxZØ‹? –Œv&´·bÝ™0!`œy:hn˜˜?‰*ß>‹ ¦}ÕÕïM˜E8æ^šèL“~Q–‹_¸‰dL€  €,–ÃB7ÎS$%33³ú…¤ŸQô„"%ôà  EUêFXH°Œ?‹ÛO°r\IJ: ЬЕôÐ¥‘y¡„xG¿TÆq‘¤;g†39,”ëâøCã¬ÉÄ6Õk‹K-$þ(XZò~Ô,—Í'ðUÁãÕ÷à°`i Y®Ë˜`ÁLÀÙÜø€,æøºâ„ÆW÷gt=ŠFÑ%Š’Ð–°¶mÛ ÁA‚¥¡[íë ZüÓM÷ŽÇQß! HôøbKXM‘ZmŸÉd¼yó¼ãn ï ¢v/J0áz†´1AbCN™Kކãx¡ZlY…{ºëÑ!º f+°ÿR‡Ñ¢¨·ÌÙ-a³3ÊÐ.² onÀý=õˆÓZñs^ÇÃ}+q}k ²KTø×n-JŒJaO—X ¦v× »*Í l=†¯k`³4–_t×㦶&˜ª€å'5–fBrDU£[š_]8KyÕeD¨â±¾øMœÐoÅX°øâíå>™`L 8›/Y°8{^²/`Z m;v¬ØŽ¥V«1bÄé -aË–-[ÂHLlذ]»vÅ•+WpêÔ)ôëב‘‘ –°°0вõë×cðàÁ¨¨¨Q•„„ÄÄÄDÑê—ÊNŸ>K–,ñÊ–°ÆDJÍ÷‰¶·‘½Žma”Çc4›|å(EB­©§ÁvP°Œ¿Þ€»:p´@×C0ª£5ðÊ–V(Ô+ñΈR!d G‡h hKÕÚÓaøß‘ð –o*Çu1œº¢Æî‹!¸³“¡6œ+QaߥtimA×Öl8&DRT˜o/C™Q¥Ç4¸.¦ #;…ÀZ•†›Ûšð@ïJT*±ñlú&šÑ.ª a*[ƒ‚år¥ªÉñ5&Xv—/@íX˜mz,¸ü¨²™Y°øâCžûdL€ 0€ à1Áât-‡…˜ÓÖ-#´m‹’îÏ;'þM‰ø$X(ªB‹÷ØØXÜzë­B´P‚„FcG> ‰ª;tèP!ˆ(±Ë–-(..B†î´¡¼ZèÓ±Æ5£0îxjn £{sâââP3’"µÊñ¹|ùr“Å'L˜€øøø&Ë4ØN€ ŠH|4º*… O­‚Þ¢@¿$3ú'›E"= ‰>If!ä‡ ZcÅ{#Kq¶D…W·¶j±`q$Àÿ{¯?^ÅänzŒ¹Îˆ=C0çg³o)é"5ÞÜ!„ ,O[Î…B¡Þ^ƒxqS$ž\.·»t"Dâçý‘%P)Ñ `)5*›_c‚åDzOa±pS䣨^ú1öU|Å‚EêårL€ 0&ÀêjÁh9,þvÓ¶5Ú~FÑ;ŠQ‚¿+ éÔh ÖÛÃKq©B)ü =c;pS¢56(6¨•ÀÅr%þé6Á2{s+䔩D´dZ=¾;¡Á·'4ˆ ³á¯·•àB™ /on%¶‰Ý˜jªg¦ À#+¢ñưR±­ì¹ ‘¸¢·o!{sX)tŸÖÔø,?•}Š=ÿÃŒøyUDàËË÷bjÜ?¢ÐrÒ½ô×K2&À˜‚Z°ð;àߤl³X,b E’è€z(òÔÜ f¢¨©§Áv,ÂB yZÐ7&X¥˜ðH¿Já ¨m­z~H¹Û‹ãˆááiFÌH׋œÊ?¡ÉßF],³úVbpª ß×àp=ÇÆñd«ÅXê –·†—"^Û°`¡ü•¦Æ×”`ù¹|>º„ÀÈè°¿b Ú… D¸2†‹ì°õL€ 0&àA-X-‡ÅïlºlN¼PÒ=m}óø`‚E¥æŒ)6üv]”Hbï›dÆèŽF츂D£:E¾ å­ôN4ãÉÕ§¥§„Õ½¥9ÁâØöýI-ôôˆ· Ô¨ÀùR~7¸\$ê;¶„QÎË_F–‚ÆÙÐ=,”ÓÔøš,€BDVbÔí¡·C­cÁâñIÈ0&À˜@ p67^rÒ½?€ ÄàîiëŠ:ÖxíÚµžîÖÞ~€ ÒÔnzÜ~Q$ÝSžÊ툵ŠÊ™ž®GV‘³CqG'£HÀ×…ØðŸ½Z,Š]é¬`!B9+t"Øw'5HÔU‰C2φዃáÚÞˆ{{êíI÷Ùaè—lFj«*„«í9:eu.Ž$ÁÕÔø(—¦æã8%Œ¶„Q„…ž¶aýqWìÛâïk) ïÌDî… 0&À‚˜€dÁâìyɾ`h9,”ìNw§Ð‰`®<®Öˆˆ‰ö®tëÑ:$^(²BIú^yP°PNʤ®z‘"Ž5.Uaé±p)P#Tey#Å(6(Ķ0ÚF6µ»AœäEQŽ–Ütï¬`!“ˆšÒM6W5þ17Tœf±Ú5¾¿W%¥˜E´ˆò`nigDÇè*<»>Ee­›îé´¦Æ÷ƶˆf  ÁBÂ…‹Wf!w˜`AN@²`qv¯YsuËð]ŽÎ]­OSªT*;v¬ztJJtO – ó!Øi|Ó½Óȸ`L€ x@@ –@Ëa!ÁA÷°P¤#::Z$šÓ±ÃQQQâcJ@§£ˆé½^/Ž@¦ãŽég”@NGý:"4tWzz:V¯^]-<è”.úC ŠªÐ1ǧOŸw»PBûŽ;ÄñÆt%‰•Ÿ~úɃ¯¢L›fÁ"Ù1”Ÿ]Õhù]tlrQíÄyÉsA¯`ÁâUÜÜ`L€ 4C  K å°`™9s&-Z„òòrqký¶mÛªÿ¥ éH('OžÄ˜1c@GüÒ…“ƒ ÷°`¡ "‡Ž•+WÖJTïØ±#zõê…o¾ùFÜÃ2uêT,\¸}ûöEee¥ˆ°Lš4 »wïååÂ%(ÝìƒfÁìoŸ 0& /%X1‡eܸqX¼x±xk† ‚K—.‰ˆË€Äe’¡|úÓ©S'dffV¿a$x¨>EG6oÞŒüüüZo º’D=$NV­Z%.¦¬)X(*CG åÂ%(ÝìƒfÁìoŸ 0&àYÎæÆ”`ñ,Zï·N‚ã®»îÂW_}UK°PŽ E?(êAÛÀ¢…~¾iÓ¦Z‚eÚ´i"úB”šb† ‘`¡¨Ô?ü êLž<+V¬@·nÝj ú™Á`ð>9ôÈ‚E^`¼L€‹—swL€ 0 #àln¼dÁâìyɾàˆ9,3fÌÀ‚ DŽ EKH\dddˆ\–¢¢"± Œþ»ÿ~‘ï²téR!NFŒ7Vç°Üyç¢LNNNµkH°ôéÓGl#£[æI°Ð–0úåµ>|XD]X°lÌ(gˆ& X°ƒ—yŒL€ 0ßð˜`ñݤ÷h9,áááBŠ[ÚI˜`¡H åžP^ EZh«Øºuë ¶sÑV1Jº§-`ޤ{ª?zôh!NÌf³€J‚…¶‘QyN‡C‡áĉ"ê2lØ0‘tOù,,XX°HŸ…\2°` /ò˜`ò%Ô‚%ÐrX<ýš‘`!‘³sçNOwå¿íó–0ÿõ[î2,.£ãŠL€ 0& @P  |j¡»Fªª?†ÕÙöü­<  cÁ" 4,XÍ£<&À˜€¼µ`‘šÃBB…" ”ëAwŒðÃ%À‚…_Ž $À‚%ÎCfL€ x‘€³¹ñ’“î½8—»j.‡Å!TÅMî¬u/‰ËsÅÀ%À‚%p}Ë#k” ~9˜`L@N$ gÏKöÅ Ëa©+TÈ6JdÚË}áí“‹¿zŽín,-€ÇU™`LÀí$ g÷š¹ÝRlH¨8šáèŠ @ƒ± –`ôzЙKп € 0& +%X9,tK»V«…cëW]â]‘Õ;(ocX°ÈÛ?lG°`ñVn” 0&À\$P‚%55III°Z­P*•"©¨¨÷—ÀéÒ¥ ÊÊÊÄý#¾þ7‰¬6mÚˆK"é0þ· x¤%¡°ÍFêöðÅ‘.~Èp5ÿ#À‚Åÿ|Æ3&À™@@ –¨¨(!Xh¡ï‚Åׂ‰ûoXÀæ™ ǰ•úÊ@þ,à±1Z {;ˆ“£££™ `L€ 0·p67> ‹ƒ$å®Ðv0:º˜þ^÷‘ë–0²•ÄÝ CÛÚøßòàa4…?Š‹‹Ý:Y¹1& w,Xäî!¶ 0&àŸœÍ—,Xœ=/Yøš.œt/ù ‹…‹ÿ¸‹-u,nÉÍ0&À˜@-,þ̹!á"×(‹?sdÛI°˜L¦@" 4H€¢¾ü0&À˜p',MЬ+\8ÊâÎWÛbL€ 0&À˜`Í`ÁÒ<#‘â8ò˜Nã⇠0&À˜`5 D*+1>rÒÃÎC§4 ÌªÅ>C{|S:[¨(ª02ânÑCkU)*ma8`h¯K¡Üªa L€ 4B€‹¯ Jpç‡ 0&À˜`…/Å/E¼º ípÁÒ©ê+è¥9‹“¦$¼[0N½'j;†ë!Ç‹#ƶHR¡—ær-1xãò˜mj†Ê˜@œÍ—œtÏ´™`θîºëªÄÍÊÊâC œÇe™ð)ºC˜µ+ÊúỲնܤ=&¢*;õ¥¬Ä뉋pÖ‡¿ŒƒÅf?•tRäNŒŠ8€E%C°©"§ü?ê;anÑpñû¿$}‹–h¼Wp—ø7•ª;ŒVJ=öÒðyq†:®Öó)8îœ xˆ€dÁâìyɲ—›eLÀOŒ5 iiiÂÚµk×";;ÛO,g3™vĬG¿ðÓxþÒ Wé VX¡Uª±èma~÷EoÁÅø¡²kõï¢U•x;ñK4´ÃGWF7)<újÎàW±ë„0:fJÁã±k°¦¼V–õu¹^°ûŽÇ˜$ g÷š&.`R °`‘JŠË1& 7¿m½]Ã.àÑÜY°B‰.a¹x¦õòj3ÿ[4qªR‘ãòAá8jL­5„9ÉŸ σ?_žØ¤ðx8fú‡gá×yЍÊÃ1ë‘R„?åOq¹žÜX²=LÀX°¸ƒ"·Á˜@=,Xø¥ð9Ö…@Gö|î¹°»¿dKH8 ?/MGaUtJ#ÒBò…˜˜¹$XÂ&̈ފ¯Ü†=†Õm‡(ªðQò'BĘijk×3qËÑ%4Æ«¹.jXa Oæ=àr=ɃôUÁþ»}Õ3÷ë ǯÊ#ÜÞ ·#å™ ,Xø=ð9,“–úÜ 6@H¬8!X(§dZÔ6¬+ï…%¥7V€’îiÛ Ú*ölÜwØ\Ñ Jn®.Ó=,¿i½ëË{â«ÒÁ˜“ü_‘?çÊíQXðaò<œ2%Š–Y11 < ¯äO‘Ç“o‰t¹ž h7mÂô@D¹ìÍd]$°`: Ñq5&À|@€‹ s—µ °`á7ÂAÀIÁ&N [†u‰ÈE9oŽC‚º½5gaƒBœFÉöŒ_*N›_’=ú4$…ã¡èMˆS— rÉ…—ã—ˆR4ÝÃÎc°öΙãñnÁ]è~¿ŒYUå}EDfl«Ý¢¯Å%ƒ]®'{§³`‘½‹Zd DÁâlnÛ]®ÏÝKÀ“‚Åa)ÝÛB÷·Ð+Ù¦dVô&˜Ÿ祋‚…祼I,XüÃOl%`W ðÅ‘ü*x“€¼‹_¼ûî}ö¹Zl6 ›7±p_W xC°hf<³ÝÃ. Â†.M«•HŒÎ—`áyéw‹7(sL€ 0&à—ha”oŠ€ÉªB¡%‘*#FtÜÝ/æãò…4l]1&½*µ7ݱ)Ž‹qž9Ò»6Þ ³Iƒ”´ãÈ÷9Š ’«#,V« +> í:Bï›ÖÔbóé¢oÆ ädõ@eYºõߊžƒ×cí¢G‘}¼7bâó0fƇøê¯ ïÍ«±oÛ(Ì|ú÷P‡ý’±?í ÁâÏ|üò£Ø¿mŠòS1t§µº¥ß;÷9(6´¿~?†MœÛ Ya™ô«×Ð*ºPü~õü_#­ë>¤uÛ[O°ÜýÐ[ˆjïêð¸^ °`i!@«78/õ)˜ùìs,Ξ—,w l`L€ Zå#q{ì)1(аì¬HƘÇ^âÿŒI¼Žèø<À~J˜QƒÔŽGëF£Þ±f ÊKbqÛÔë –¾·¬ÄÉýƒa2†£ÏÍ«Ñ}`¦(³ò‹§P×£g|ˆÕóŸdÁâãׇ‹oÐà¼|è=hóx^úÆ%ï•‹ÇsL€ øŠ@ZZ²³³‘™i_ôñÃZDÀÅ‹#¥öI–)½]dq³UºEOu~.þù÷Íòrw,î&Ú‚ö\¼8RjÎÌK©mÊ­œZü²#@Ÿ+eàŃõ- Ìêd^žóÞ¤ gsã%'Ýs‹÷œÍ=1@ ÐÜÅ‘5EJhhhõM&æÍ›x ¾&àÁò'è"‹šiKKdðN/ào'£¥Ív'©À«=€ÝEÀ·¹’Šû¬P+¤àV¼Œ @66c-žqÚ,N#ó\¯ióÒóÊsவÜ?Æ.XÎU›òíös?j=r,Îê É‚ÅÙó’½á0îƒ 0ù5j”ˆšÐ³víZPä¤1‘Rsz½»víBi©}Uf³Ù——×ä@“““Åï E£å‚¹¤¤$TUU‰?V«µÑÿ£€zH°ÜÌl|à&Á’¼–¬Ìk\°(€ÕǯD{dü?{ç&Õq¥íordr$À€å,¡Œ„ÊÑV²×a½k{wýÛ»^§µl9ìúßµþ]{-Y9#ÉJ('BHBDÎa&Çÿy«UèÒtOߺ§{fÎ}`æÞº‰“W IDATUoª:_ªº:Qÿ¦V5«X}Ó*X˜8ñ}TMMæÍ›×£šCÖ&‹K¢våG” 7ƒÝªî¤ÁÒ…#¥GÖJÅ{­`ÉC·Œ#Ð-ËÚµk5pà@#)a ñè£&,3gÎÔðáÃ;LÒÒé}|ÖnZ©9ƒf…2µ©}¥oŽ•^ÞqÒëùû© ÒSë#I”åK”&UH9ÒgµÒÝ«¤ ‘ß3[Ëï÷«ˆ|ò“Ò½«¤-M‘¥Á%aÊ¥L”v4K×/‘j[¤iƒ¤éC¤þ…‘gpFæo•.Ù[:~ÐÅ»¬ŒôplJu­‘åh®–¦VJ_Ûç‹ôª›¥\$ýËDid©ô_ŸJ_-=·1"hÆ•Kçï%íU*ÕµH¯n‘þº&RFº3†IG”úäK¥‡ÖH‹·GÒ÷iþú#éŠQ‘¼¼½Mºoµtõhi|iE]d™ÜöæÝ«ê0}SmjÓZ½¥™úï´–X)죻ûî»CÙŽÝ”$4 –`nX:5k/é J©O´¥Qzf£ôÒ¦ØíêŽÒï–×F¢3‡Kÿù‰ôiMüö™¨o(É‹¤‰?»!Ò–òs¥G×Jï®ióoWI·¯H_œ’NúH¿Z"­k¼`ú :òü´Ò„ é×K"€ÙÔ}ʤ¹¤÷¶GŽ.Þ÷Ýñé!TF—F®§7D–àˆ5 âÔ¼±%rÏ÷'DÞ[V+½Seÿ69"¬^ùý‰ƒ¥×D8œ0Xºxd$¼óFHÅyÒ?/–B>Í¥5‡ì´¡Ry~„Û»Û#¼È+yº'òýÍ]®\¨Mͪt–þœ2Á&Ú;{ölmÙc­M§z²ðõÔˆ±ŸTZ{üo¥òšð@öàÎ3‡K3‡EìkU}d"bBéÆO#{?¢ÛŽþEl·©MZ²#Òæ†E&4bµOÚJG}¢‰4é-´)D~k{äß «"m 1ÿ?K#í®£‹I…S‡HDP¸— Ú/í”4^Ý,U5G&9˜d1Á²d#Ðó D/ £ÄÞIˆiaÉRCCƒ;%Œ¥K\ ,aID´·§ƒ`ÌËË‹ûgΜ9¡8w§HVg Îú¿¾±&ǹ#¤g7J÷­Š8;8¯oÌ‚²¤Š¥Uß~GQqÎq^nXyžYСő™ÔE_¢3SúJøTzÿóý(ßq¤~þA$JAºÿ:)"^˜õ½zŒtxÿðKÂp€ˆö<±>ò~ò»Oyd†gæ˜‘ÙØà’°ú’´o¹tÿjé™ ‘2àX5<"&^ÙùÙ/&KmÒGòÌì0Žé²le68„ˆŸæŸ?‹D‹fNq´pÎp¾ˆÂ hˆÂÄ»R!XöÚp–&Ož¬qãÆ%íM…€¦l–Îpý©æø.,^H5$êWš' .ŽL$uŒnW,ƒüïƒ>·ó#{D¸µÏŽú†æö/Òüþ¢H;ùÁitY$K$óä!Ò{EÚëÃkf‘È)b‹ýg> Ê„ ‚èúÏ'PHtM°$æiw#Ћ ÄÚÃâq$šÝdÓ=›ïí2{D ‰=,>ÂB”àOŸŸâE4‡Ç;×TFfkE–täåD–D±œjr…ôåÑ_Œè|#8¹‘ÙV¢ ­‘;o˜*Uì^ZïÈ'+XÈã?O”XŽ‚¸`æ˜rø%o .ÿÞèœõùæÛ‘å'D¢ö.•Šò¤\I8}^ xÁò³¤5õ‘™d„Ôœu!Å2²ßî/­­—~úAzËp¬i ¿PEñÀN›“ ÔEz»R°ÒOºvŸH;%jòqôÚ–/–,Æ,´&"ü•¨}vÔ7ÐÖA,ûü½ú÷¥vHäóº}âG£ 7Z°1@ºjtdóý­Ë#w3ÁAù²U°$»7>ô¦ûN·r{Ð^I #Á-^ØœÏ&}»ŒÀè„`ayÅ?,þ$}",DTì·`–ôÛã"K0,,é"bá#"ñ ާ|áà°¤Š¥U\¿š"õ+ŒD]plüÅý8úÉ ž'½#D–\í[&!”|þ:,?~_Zÿù¾ÿ^öÓDŸNƲ¹ŸLŠˆ–ÛVDDKÍp¾¢‹OÓ/!ó3Ã,û]š ,8%¬;EXÙ~wŽÏ©¸´Ë",p$’qh¿È~)"zˆoŸñ‹ß×åë¡£öÉ’Žú/X‚i²‡ì ~Òo>Šìáßü,¬¸ˆ,´sö±Œ¶ÈåELØ4Ù\Øß‡=Ö8lzþ¾Ð‚%Ùó’“͈ÝoŒ@Ï"V°D‹"+lÒ·Ëì1N6»ÿó{‘}#猈ì¹`ß{FXÃþn•ôÿ–F––àhMø§E‘¨Ë?~)²×…=/\¬ŸŸØ'²ÄŠ}~Óý-Ë¥ŸïÙü“÷¥M_,9ù#ëæITYdé yòŽ€ý2²Žø°?fx‰´¤:RÒûñ~‘Ë –'×G6ÉsùhHP°ø%aœD„háâМ¯ÍMÒÿ= "âþnaäw?œ(*ÍNÁRóâx•——‹Ó&ŠòR–LíaÙc»ÏöºpÓ=bº,/²T“ ñÂr,pEt»òK¢‹_«}²´£¾½2DXÒ)Xcß¿ë’0XG¯,ÉîæÏööbù3F ½:#XÒ›#K½×è„`a¶”HtO‰J°¯§Ÿ=%Ì–²îœS±úD¢ 8òìù`“;Q 6å#v¶5E6Ý-ßõ”0?#ʆÛÿ^*í_)}cßȆ÷ç7EN5 !šƒsÅÆv¢ˆfQYºÖÑÅÒ5ûN[•…‘½(ü›o¹øÝ‘CÈ,Á‚ða3/埳6R^ħ,ݵ2"ÚØØK ц˜áò<{uäÃuì‹él„eŒNÔ@MP™†h¼ÎÐv­Ô2=£&Õè]ÝÚ¤;úK,ñ±ÆwÝuWèôíÆ$t¡`¡MbØîÖ¦H;äð ö‰°_$º]M”¬£öÉ¡õ ìCاS° ´~9%²¬”6Ï»h§b‚% Û´[€è}}8²÷±w9Nm{NÐb³,‘NâBœ0Hâ8uùÖØÈD {ZØŸAT…O±6q³¹q÷cyæ_&I{•H~Ö–S}N8Ws×GÄ÷}}߈8`óú ¾\Ã,ÏÂiá8b6ÆÏ^)_QndI{O-ˆ²X‚…w³¤ì¼½" ÎüÏGni8r”™¥]ïðó5a†xùßÏ"§í‰`9^?ÑxÍÜÍtjµQwêôÐ&öÑ^¼pðË®ìJ.,nìñÏ~®ª&éÍ­Ò£ë"QD·+Ž)%X ÐQûì¨oøÙ‡Ò SÒ+XÈedY*‡`01A9£—‰¥¡6wK2ãKÂ,ÂÒÕlï0FÀ”è¤`!ªaWÏ"V°ô¬RgiiºP°d)-,=ºz­pFÀ#r=T°Í~8.š{Jü~“”3í¦ š`É¢Š3ÁÒaepºû×â],åôÀl½Â –d÷ƇÞto–l5 Ë—0FÀÄ$ÐC‹ÕvòL°$Ï,mO˜`IÚlH8¬`IVW„,Éž—œ Ð,FÀ#Ћ $!Xz1¥^Qt,YTÍ&X²¨2RŸ•Œ –ÔÉR4FÀ#F&XÒ·{%m‚%‹êËKUFê³b‚%õL-E#ÐmTäÖ霊ùš\´Je¹ ÚÑVª… £ôpõ¡jh/tåàÔ¡“ËéØÒ%W­ºö"-j¥‡ªSM[q·)«eÔ¤Œ€ –”¡ìî ™`É¢4Á’E•‘ú¬˜`I=SKÑt Å9Íú—A³5(¿Z‹öÖš–‘¿US‹W蓦¡úíæ³\9.ê;O'–-Öêæþú q¤†æoÓÔâ•ZÛÒO×o:WÍíùÝ¢¼–I#2&XR†²»'d‚%‹jÐKUFê³b‚%õL-E#Ð-œT¶Xö§Çv¤Gv²3ÏG—.qQ•×ëÇ©on~1ä­h¨ßl>K-íyî¾ó*^×ôòEºgûQz¾v²þ8üOz£~¬nÞv¢ûýo†Þ®õ-•úÝæ3Ýÿ¹÷ø²÷Õ'·^ F붪iNètö¹nØ2Ùs ˜`é¹u›dÉL°$ ,·›`I'ÝŒ§V°$»7>ô¦ûŒ° ^JàkýžÑA%Ëôý —©ªµLù9m*ÍiØI£¾½H‡•|¢++_ÒíUÓôJÝ„¿«Ì«Ó CîÐ{ {ë[gt(<,þLÓÿi'Œ–4 ×7û?¥§jÐã;ìÔs >_•••./K—.UUUU/­A+vƘ`Éúl{qÍ _ÒŽÇ«¼¼\}úôɶìõ®ü˜`éÑõV°$ !´`Iö¼äd3b÷#›Àw<¦ Ekôõµ×ªM¹_´Vß0gçÍÞv’æU»=.¿ßr†>l±KB7»IëZúéß6ÍêPx\×ïY\²T»îjU¹®ß3^°M?ÝxA§ž{í€ÿ_æš;w®–/_nUlº–€ –®åÅo³KUŽ –,ªŒÔg%ã‚%Ùó’SÀR4½“Âá’eúá†Kµ¥µ\e¹]°Ñ‰‰ó+^‚¥$§I—U¾¬?n=Eo7ŒÙ ª §Uv“1ˆ™Ž–v}oà/\«ÆÏ÷ºä«M-ÊÓ·×]Õ©çæL¹ÛKï4Ùì)µ –ì©‹ çÄ",®€àëM°dQe¤>+&XRÏÔR4Ý‚{J.éûªž®™ªªØ™g6ݳl ÁÂR±øˆ^¬¤»¶³óžIE«õw×35Stõ‘ºq؟݆ü·žª‚œýç°[ôiÓ·‡åÚ~Ïé’¥úÉÆ \$Ç_[*:õÜ'žo‚¥[XXΤ –\¹ÉÍKr¼Òz· –´âÍtâ&X2]ö~#!Eî”°58»Û‹²ªy çWiÿâjWŽ;%ŒÍö?4Û vçöiz»~´†TéšÊç50‡!Zúê_=àþÓ¶5©h•Ž,ýX+›é·›ÏÔÁ%ËôÕ~Ï艚]DffŸî]÷m?²SÏUþc,²{íçL°˜)|NÀ–„e‘)˜`É¢ÊH}VL°¤ž©¥hº ¾ÃrnÅ|M)^©ÒœFU·•êƒÆnSŠsšuu¿ç4©hjÛŠôƒ —첑¾+Jb‚¥+(Û;ÂhnnÖæÍ›ÃÜj÷ôpö–ì©à7ºÉ»z&,=³^­TF ÇØwß}íÑ=®V»gL°tÏzKG®M°¤ƒjçÒ4ÁÒ9nÝå),Ý¥¦,ŸFÀ#, Y‘ËDæ Ø—î3_ä`ÇŽÙ‘ËEZ”––Ú’°´µD€0FÀ#`Œ€H;d÷ƇÞtŸöœÛ Œ€0FÀ#`Œ€0QB –dÏK6ÒFÀ#`Œ€0FÀ=%Z°${üØžfÌž7FÀ#`Œ€0FÀ˜`10FÀ#`Œ€0F k ˜`ÉÚª±Œ#`Œ€0FÀ#`‚ÅlÀ#`Œ€0FÀ.#ìÞx,]V5ö"#л؇#{W}[i€0FÀ„%ìÞøÐ‚%Ùó’ÃfØî3F g˜>}ºFí 7wî\-_¾¼gÔJeŒ€0FÀ$E m‚%©\ØÍFÀôz&Xz½ #Э TäÖ霊ùš\´Je¹ ÚÑVª… £ôpõ¡jh/teË‘trù"[ºDòªU×^¤E £ôPõaªi+îÖå·Ìt0Á’Nº–¶0¡ ˜` Ên4F Ëç4ë_ÍÖ üj-jØ[kZhDþVM-^¡Oš†ê·›Ïr9¾¨ï×m¡[Æ{,½ªº­°F { ˜`ÉÞº±œ#Ð1¯õ{F•,Ó÷7\¦ªÖ2åç´©4§açCõíE:¬ä]Yù’n¯š¦Wê&ìü]e^nr‡ÞkØ[Ø:£Cáq`ñgú›þO;a´¤i¸¾Ùÿ)=Us€ßq`§Ÿ³º5Ý@²{ãCoºï…·<#=L°dO]XNŒ€HŽÀw<¦ Ekôõµ×ªM¹_´Vß0gg"Þv’æU»=.¿ßr†>l±Ë nv“ÖµôÓ¿mšÕ¡ð¸®ß³:¸d©þvÝÕ.ªr]¿g4¼`›~ºñ‚N?—\Iín#Ð=„,Éž—Ü=Šo¹4F ]L°¤‹¬¥kŒ@º )Y¦n¸T[ZËU–ۨј8¿âu!XJrštYåËúãÖSôvØY*ÈiÕ†ÝäD b¦£¥]ß8Gã תñó½.ùjS‹òôíuWuú¹t³±ô@&„,É®5ËDaìFÀd,ÙS–#`’#Àž’Kú¾ª§k¦êê#v>̦{–m!XX*öÑ‹µ“t×öcvÞ3©hµþnÀãz¦fŠî¯>R7û³ÛãÖSUÓ¢ÿv‹>mâö°\Ûï9R²T?Ùx‹äøkcKE§ŸK®¤v·èL°tz²\nGÀ>Ùíª¬çe¸²J¶®ç•ËJÔ9N ý\‘;%ìA Îßîö¢¬j¨ÁùUÚ¿x…Ú•ãN c³ýÍv'ƒÝ¹}šÞ®­¡Uº¦òy ÌßáDȆ–¾ú×A¸ÿß´íDM*Z¥#K?ÖÊæAúíæ3upÉ2}µß3z¢æ@‘™Ùg{×}Ûìôs¡ ™©'~˜©7Û{»‚ÀŠQR]iÊßd‚%åH-A#`Œ€È –žËЬX&2L`ÉD) ÁBnù˹ó5¥x¥JsUÝVªG¸Mñ®½ ¶è[ýŸT¿¼ÚlnÏÓ­UÇi~ýX÷3öÂ|¹òE·„ìñšƒÜf}NûÕæs܉c3ÊßÑ´²UžÛ ¥MCÜ&þ-­}:ý\†I'~ýŒ'¥’ºÄ÷ÙÝ“ÀS3L°tÏš³\#`Œ@F˜`Éö¬|i'KØr°ÌkrÑj]Yù¢Ú”£o¼Ð>Ù<,aM«{ÞR°$»7Þ",ÝÓ,×FÀ#ˆ@@°´µµ%ºÛ~߃ ´,§–÷ƹ––¦~¹ éòݾßÂ7W–7 Ö µû9cWÏ‹µÉžiœ öÚ+7÷‹}YÑ¥Mvo|hÁ’ìyÉ=³¬TFÀ#ÐmKKKK·É¶e4õŽQÃ;cœXI—`)ÎiÖÕýžÓ¤¢5ªm+Ò6\²ËFúÔ—ª›¦ø¹`immU{{{7-„e;êûR[M±ú÷ïŸÁbUcŒ€0F [ ¼W;XÛšK4­rÅYì¤`Ùºe¸ž{¹.¸ä×.î'¢q_z«ÓÏÛƒ©%Ђ%µ9î©Ål—,Ö.»‡M˜`éõd¹4FÀ È.Á’£»oû]råÏw!ÑÞž£œ›Q΀yÈK&¨KÙ%X¬]v…˜`é Êö#`Œ€è–pŒ66•«©-O[ZJT‘ר“F-TÙô'´iã^zù…³ÔØX¢¼¼fyÌ_5løRWÎå˦hÁüSÕÜ\¨a×é˜ãÐöªÁ;#,mmyzrε¹÷M9àÅ]ØÜ~óÏ´ÿAÏiͪñª««Ð„‰oh¿©/ëÙ§®ÔŠå“Ô¯ßFM?ýf=xßwµÿÏkÑÂãtñ×+?¿©[2îΙ6Á’™Ú‹Ù.ϽYe7hýºaš÷ò¹Ö.3S5i{« –´¡µ„€0F »À1z«z„Îô¡*óôBÕhå5jÚ¥7êÁû¾©I“_ÖØñokÙ§è'뼋~«ºÚ =üÀßë¬Yÿ¥²òízæ©+5dèrí5òょª­-WÇ7{7Dwüå§š4ùUtè\ÕÕõÑwÿ“f]ô;åç7ëÞ;~¨/_ûÏî™;où±ÆOxK‡ñ¸$‹°dÂÖL°d‚z$²[»¹JÓN¾_³ïý†ö›òеËÌTMÚÞV°$»7>ô¦û´•Ì6F G°GöÈjÍÚBá­nè«Ó|âò¸º±B¯Õ ××^¯––µ·7*'§Í ‹ûîü¾rÝõéÇkùg“uò©·ºg¸%[>Â2eÿ—\fúé7)7w÷SÆ,§ùG ¸Ö=ÿØ_¿î°¡Ã—í*Xný±N™ñ ²2kùõôŒ™`ÉL Çl—m•ºàÒß«±1W¹¹-Ö.3S5i{kXÁ’lB –dÏKN6#v¿0=‹ÀôéÓ5zôhW¨¹sçjùòå=«€Vš¬"€c´¥¹TÇWFìlSs™žÚ6F—ígZúÉT-^t¸‹”´·çiËæaºê«?Ð{ï§m[‡hÚ ÷íR6÷ÎyøëÊÉmÓÞ£>Ôq'Þ³¬–sÎÿ½Êûl‹ØùWiÔè÷5jÌû» –3ϹQ}7g³Þ”,™©í˜í²v„.¿êWúä£Éú`ñ‘Ö.3S5i{kÆK²ç%§„%lŒ@· `‚¥[TSÉ$ŽÑÚÆ ÚÿSW&",¯× Ói—ܨ{nÿžÎ>ïÿª²ßFÕÖöÕ}wþ'Xˆ°,[º¿¦Ÿv³{†=.-ÍEjl,Õs®sÏ<9ç:zø5fñn¬,3fþI­q¿›óð74yÿ—4tØg1ËTÑwKáÝÝ b‚%35³]¶õÕigÿÅÚefª$ío5Á’vÄö#`RIÀK*iZZ‰à-Ø1\çú@åyMz©j”òŠ4ñÔ5ç¡kuÑå¿p˺Þzc†Þ{wš¾|Íœ@yð¾ïiæ9ÿO}+7éùg.ÕÀA«wÙòaýh=÷ôå:÷‚ÿPqqí.Ù@°ptñáG=ªÕýõÐýßÕù—Üàö°°o劫ì6Øßyëuæ9&XÕa:o‚%tã§³]ŽZ®‰ÌÓœ‡®ÑE—_oí23U“¶·š`IZKØtè¬`éÓ§vìØ‘Ž,Yš=˜À¢š!nIXc{žûK9§„^¨ÒSžÔ Ïœ¯µkF«¨¸^‡1Go/8Eím¹N¨|¶têç§„iøˆOw;% do¼6Sµ5•:ñ”;v,œöéÇ©©©XSxA÷{ÍÝóÔc×jóæ.z3÷‰«M°dØöL°d¦b¶ËónViÿzîéó´~ík—™©š´½ÕKÚÐZÂFÀ¤ƒ@2‚…½.þ{]^xá…tdÉÒìm:ùáȰ˜ˆ°Ìºðw*-«îð‘s¿Ô ™ãtû{%zaEQØäí¾0Á’B˜{šT'?öµaÛeØô²ñ¾ü\éoªÕ~ƒZTݘ£ï?W±[6Þ¤¯T§ç–éÎÅ%]VŒ°‚%Ù½ñ¡7ÝÛ–.«k{‘è – H),,ÜY榦&ÝrË-=‚"ú@°œ{á¿«¬l{ZKߢ6ýî”jýûëåú`s~J þâøj½µ®P}Tœ’ôÒ‘È1ßÐÔ²Yjl«Ñ›®Pc[$òÚ'o¨®|‡–6¼¬§¶ý4Ô«M°„ÂÔ57u` Ó.)l:ÚVW@)Ž)X\+Ê¡íeÖ¼`!ïÖÎÖ«ÕÿVÁÂĉï£j½r~P IDATjj4oÞ¼Ìè©oÏ"Á’¨meK[ˆ6…“Ç4ê’ýêõðGÅzô“Ø“½V°ôÔvcå2F =‚‚eíÚµ8p ‚‘”°o}ôÑG –™3gjøðá&iéô>>k7®Ôœœ¯:»hii‰kMª×ô}u÷û%š:¸Yã´j{CŽn{¯TïoŠD4FV´ŠûÆT¶ª¹MzwCîz¿D-‘ÌÏ/üü÷uÍ9š¿¶@³—«©5GÑKÂŽÜ«I×P§wÖèÆ·Êܧ$Õ¤û6h@q›6×ç:Gä͵…ºlr½Nݸ3ïo®-Ðß.ëÐÖY.rÁÄz<¬Y} Û´¥>Ws—¹åh~fÖ'Àr’>_¡?ÌØ®Ïªò4]¡Îß ÿx£LŸlÍ›/ž/+h×%“ë5yP³ r¥eUyºã½Rm¨ÍUI~»KsyUžžù¬È±ÉË•ù¸XK¶äë«Öi@I›ÞZW [•ª-†8ò‚¥¦u“Jr+u÷¦«Tݺ>å–X)죻ûî»ÃvSv_2Ò,X‚Yé¨-Äj[·-*Íʶ,“ïOüÏê[rô­'ûjŸÊV}yÿ: -kÕÒmù®¢Ýeë’°´EX’±E»×#À‡#GŽ)¢³*((è½Oh`(©¨÷°‚eÖ„1¶AµÍ9š½¤DEyíÎáGxüã³jkÏѯOªViA»îZ\¢1•-bfpï%ÎqÿÕ‰ÕÂ9zbi‘†•·‰ÙÍ—Wê–E¥»–eUùúÁQ5Z_›«_½Z®ÆÖí?¤Yß>´Ö‰£—ViÚÞš4¨E׿Z.µçèâýêµo¿=¹´H‹6è£-/ Cpœ5¾Á-Y¹=OGŒhÒÄ-úÏùeZ]ç~wÌÈ&çм¾¦Po¯/ÐO¯ÒöÆ\5µJnÎ×SËŠ5¤¬5n¾–mË×7©ÕÁC›]™·7äê¢ýêÝû~örÇ‚4kšr´|{¾–mËÓ™ãÔÚ†°ÉwbYbD ¢\w`a—„}óZ4´Yÿ÷Í2—_„iù@„ùe0~IXnŽô¿gT¹¼PÊ&_8L”õµÕ….Brý Õî=ßx²¯š[sv¦ù½g*TÕ«9f‡‹DÉ"êBT‹¨ÕcŸëÁ%»/kñ‚å¡-§Ë.Òèâ#õÀæo©¾m{§ö°ì]{ª&Mš¤±cÇ&íM…€N•ïîéüiå¬.,‰ÚBtÛÊÖ¶=¾2¦Ñ‰-úÚñøþ-úþQ5;û$î÷‘c‹°$òì÷FÀ8‰6ݳùÞ.#°GBîañ‚åŽÅ%z~yä/Ö‡ðÎ5‚ã轚TYܮܜvç¨#.þù… ]s@ŽÚ«Iz§To¬Ù}ó«OŸåa…yí.’òïo”ï,ÚoO®V¿âˆ@^ŸnÍ×/ç•'-XÞ¬¯TË6w‚™y« xáŠ'Xˆö|㉾¡óuàÐf5®Aì‰ÉÏmwK¾xçwŸ®Ðަ\'XˆZ}û©HšÞyüÍkånYùä¤#"AD®¢¯/Ëß«¡­Zú³Ö5-Ö³U7èŠÁw†Þt?¢pPúCU” è´9™`I]¤·+K¢¶O°d[[H$Xèè‡^YU¨¿¼™ta’ƒòe«`Ivo|èM÷nåö 0F Ñâ…cçÎkÌŒÀžHR°pô'ƒ;×å“ëuÂèFçHïhÊqǃ~º-ßýŸ%cÌfzÁâžD‚eS]®ªsÝò®ß¿Y¦÷>^°©iþâàˆ¦–­Þ‘—´`!ÿD2X–ö¥-Ú»¢UœGáóO° n¾óôî‚%V¾êZrÜ”†–ýÏÛeªjÈÑßVë–¤K0Ío\ëöÕüj^¹Ûã÷ÓÄs¨‚‚¡r|ßïjRééz~ûouBß-XàÁ)aÝ)Â’Èø»sÄxNË·º,Â’¨-Ä,ÙÖ:#Xü^¹l,‰l<ú÷¡K²ç%'›»ß#€x!²Â&}»ŒÀHR°…¸iadvòG×hl¿È¾ ZÜò%ö«°oÅï9a‰Ö‰¾Ea/Ç–¸(÷­uK±þýõ2Í׸ó;,DM~2m‡Ö׿é__ìã–Rù%a¿}½Üíá¹Ñ•­ÚX›«Íu¹;˼Q®ÅŸÐ›¡åm*-hûL¼ÃÆr,¿aß ¿„Í/ƒ‰vÒ:Ê׈>‘ý- 7è¿æ—¹<ÿ~úvååìaI¥`)Ë ËݦڶÍê›7"iÁÒðΕ––º?‰¢¼pËÔ–=¶ûlO  7Ý'j ^°ø¶•­m!‘`ab⟎ÜuI˜?T × –dwóg{{±ü#`Œ@'¤`aùûFJóÛÝéX8Ûÿøl_·w£.\ïNÞyny¡NÛèt6Ûÿï;¥.òò«ª]ãñO‹Ü>f7YFT#ú”°«÷¯ÓÑ#›v.7ciÕ·©u–GyÀá40Dï>it£o*pj9Y«£ëŒˆ-NäbŸÌ¸þ-®<ì¯A¤å Úàâä0ö“°|+Z°t”¯µ;rÝ>6ÕsZ{sú—´¹²sÂÙÓŸéÆÛwIsO#,”ùð>WëàòK]ñSõ–Xâ…cïºë®Þ@2T¼.,‰ÚBtÛâð‡ll ‰ B‹ƒAXZJF$—Ã;*ŠÚÝ2W–»vÕöÃ‘Éæ't„ÅK²hí~#`Œ€È($ XÇõoÕ„Í.²Á|ö°ï„™X¾*ÍÒ'–…±oãÂI îT,NóB\8±A{÷mqˤ8’ø‹Ý)`Ñ‚§âúv¸ã‘‰Ðàôstñ©û4º ýCüÔÒb½¸2²f¯ŠV'h8ñçÍ5;ˆÇ–ááˆ!z8^˜ ïœö׋]D‡%mß9¼V£ú¶:ÑÂFûXNéw”/N`:iL£K“üÂêï«qÂíÇ/öKÝRa!?…9¥º|ðí*Îí›2ÁäèÅ °ìÊ®4èBÁ’¨-D·­;—fe[H$Xø=íý+SëÜÄm‘6ϾZaj2f’&XºŠ´½Ç#`z$Ëíˆƒ]=€}é>‹ê´ K•º×dÅK¯©j+¨0FÀ¤„@,ûôkÑáÛãâáHböâØµ+,Yd&X:¬Œ#G4¹=lñ.>JË2Ôl½Â –d÷ÆÛ’°l­qË—0FÀì(Xö Hï}ÚKÕ½ –,ªŒÔg%¬`Iv«IhÁ’ìyÉ©G`)#`Œ€H‚@HÁ’DŠvk7%`‚%‹*ÎKUFê³’qÁ’ú"YŠFÀ#`ÒHÀKáv¯¤M°dQ}™`É¢ÊH}VL°¤ž©¥hŒ€0=™€ –ž\»I•ÍKR¸Ò{³ –ôòÍpê&X2\öz#`Œ€èfL°t³ K_vM°¤mÒ)›`IYwzÀKwª-Ë«0FÀdž€ –Ì×A–äÀK–TÙ0Á’E•‘ú¬„,Éî½é>õE²€0FÀ¤‘€ –4Âí^I›`É¢ú2Á’E•‘ú¬„,ɾ9´`Iö¼äd3b÷#`Œ€H),)ÅÙ3Á’Eµg‚%‹*#õYɸ`Iö¼äÔ#°€0FÀ$AÀK°zö­&X²¨~M°dQe¤>+&XRÏÔR4FÀžLÀKO®Ý¤Êf‚%)\é½ÙKzùf8u,®{½0FÀt3&XºY…¥/»&XÒÇ6é”M°$¬;=`‚¥;Õ–åÕ#`2OÀKæë Kr`‚%K*‚l˜`É¢ÊH}V –d÷ƇÞto{XR_©–¢0FÀ¤‘€ –4Âí^I›`É¢ú2Á’E•‘ú¬„,ÉêŠÐ‚%Ùó’SÀR4FÀ#˰ujkmS]}]Ú­=‘@Ã;cTZZêþØ•A?t/¯­­U{{{3b¯N¦O†©­¦Xýû÷WnnnÜW¤M°¤£P–¦0FÀthiiQUUUº_céw&X²§’¶nݪ¶¶¶ìÉå$¥L°¤§%fŒ€0=€ –ž^ÃáËg‚%<«tßi‚%Ý„3›¾ –Ìò··#`Œ@7#€`ijjêf¹¶ì¦‹€- KÙäÒ­«³ešÉë^wÛ’°îUe–[#`Œ€0FÀ#`´`Iö¼ä®.¸½Ï#`Œ€0FÀì'6Á’ýE·#`Œ€0FÀ#íL°d{ YþŒ€0FÀ#`Œ@/&`‚¥W¾Ý#`Œ€0FÀd;,Ù^C–?#`Œ€0FÀ#Ћ $»7>ô¦û^ÌÔŠnŒ€0FÀ#`Œ@†„,Éž—œ¡òØk€0FÀ#`Œ€èAB –dךõ FV#`Œ€0FÀ#`2D £‚åÌ> 4³ÏWô9;Ö£;vÿ¶Ÿ³kÖX?`ý€õÖX?`ý@÷íR©m2.X¼HIe¡,-#`Œ€0FÀ#`zŒ –?ÿ“¾¶ö«=ƒ¤•Â#`Œ€0FÀôrDF$’Ýo‚¥—•ß#`Œ€0FÀ¤Š@˜€D²{ãC –dÏKSè0 ,L:v0FÀ#`Œ€0™'QÁ’ùâ[Œ€0FÀ#`Œ€Èfai‹°d3Ë›0FÀ#`Œ€0݃@·,aX÷Àn¹4FÀ#`Œ€0F n%X¬q Sh»Ç#`Œ€0FÀÌHvo|èM÷é(~´`)--Õe—]¦ùóçká…¹¹úÊW¾¢›o¾Y‡z¨µhÑ¢]²sÀh„ z饗t 'èÎ;Ý#FhÊ”)zòÉ'w¹gß}÷ÕÈ‘#õ /ìQQ}^^|ñE­[·ngZcÆŒÑÊ•+ÕÚÚªk®¹F7ÝtÓ½'ÖÃS§NÕ’%KÔÔÔ”’´‹‹‹5vìX-^¼xÓ;ãŒ3TPP ‡~XÁïqÂ.¼ðB=ñÄÚ±cG*“M[ZTKK‹ªªªB¿#e<묳ôÚk¯iÓ¦M¡ß¼1Þó§všÞ|óMmÙ²%©t;Ã!©Ĺ9Uï×§Äzm2÷¦¢Œ™LƒþüœsÎÑ]wÝ•T6<ð@ׇ½ÿþû®ÿùôÓOÝóaúÍ®èg“*LŒ›SÙOtÐA:äCÜxÂØ’ìæù¡C‡êàƒÖc=*ùà˜| ³öê¥]tSEnþÏ ‡õà —îòƳûÌW}{‘æÖLM*'}.©—ØÍF Ò-X’=/9 Ÿh†³pÈËËÓ}÷Ýç’#XÎ>ûlÍ›7/”–nÁ// Ü?þ¸ˆÃ ¼aø難¨ÐÅ_ìÄZmmm²Ç¼HÜsÏ={œž –ÝvØaÚ¸q£–/_šo6 –Ð…ˆº±3:û®às©zo2"$™{SQÆL¦±§j~~¾Ç>ø`hÁ’î~vOy¦ºŸ#8:Ês˜ç{Š`ÉQ»Ú•³GUh‚eðÙýˆ@FK²kÍ:S/]t‘^~ùe%yæ™g´aÆ„‚eòäÉn†iÛ¶mnv—Y^¢1 vÇ{¬JJJÜ¿—-[æ"A‡g)WuuµœP"Â2iÒ$?Þ¡¹¹YÏ=÷œêëëw)ï$­¶¶6÷<ùæ9Ÿ—7ÞxCëׯwÏðó£Ž:ÊE\H aA‰ˆQŒgŸ}ÖÍJ3˜sÌ1îòüÖ[oiíÚµ»¼wøðá:úè£Ý½Ê '"Sþúë_ÿ*„Ó| Q£F¹{ äÊtË-·¸ÛÎ;ï<÷<‘&Ò<òÈ#Õ·o_mݺÕEª¨Ô3wÑ¡XÏð,<™£\䋲Á6Œ`6l˜?üpu ü¯¼òŠ6oÞìÒ£srr\‰Hð;¢“N:Éå: >…Á Ï`ýúõsÏ#·\W\q…›Å…eÿþýETlŸ}öquº`Áw‚­¨¨HÔ§¿âåÇß¿×^{¹[ÉvÁó°Ä¾ø7õ«“O>Yuuu®~ȬºSFØD§Ï;pÞx?¶UVV¦3Ï<Ó‰Oœ@8TVVº²¿ýöÛ;g±ƒÆ6zôhW~ê&ØEMMMÜ烑ž‹æ@´~ÎDÑÀh«W¯ŽÙuÀœ2Æ!CôÑG©OŸ>.ÿÔ?ýíiâĉš;w®KcÚ´i®Í‘f"þÁ÷îÒw0ÃO߯Þ}ŸçD¶Ã½D¨wòÎyçïxÌ‚@öÛo?7Εٗ›g}]q/ù }ІŽ;î8×Nàýú믻> N¼‹çÛÛÛP¯±ú=Ò‹e[ñú*œ[ú'Ò£nÉk0ÂBrÊ);Em¶õñÇ»h uKyˆ¤ÓQ®Ï>ûÌõËW]uUÌ~ÓóIe?‹‰§Ÿ¦¾èsh§Øí˜~¾yðàÁÎVhKÛ·owm„¶¦Ÿ&ÚŒ­Ñ÷–——»¾ŽrÒoЖ|?È»I7Ö-8èãÉ/m…1‘¾Ž~˜<3â¢`| >¿÷Þ{»þ”öÃjQ§ð Né'É‘lÆÆX6Ës~UD"{à^ìÃF‰ÂÓÖ°‡xýZC¼1#xÏ? |D+šk|ÑZýbÓ,M.Z¥}ª¥=OmÊÑUÇjkk¹Æ®Ó¬Š7Ô¢|å«Ewo?F+›j\áz]Ü÷Umi-×Ú–þ:¬ä“#,/שå ÕÔž¯6åêöªi.}~~ZydåȪ–º«êÙç­‘™ÊÞwyüÓÖ“÷XXÅ4û¡èBa–„%›Ð–t :žã?^wß}·[úEgE'&Ââ3:hßQÒ3 ¿ûî».Y³féé§Ÿv³Õ¼Ž÷ÄOtÎ?g½÷Þ{ÝÀ‰ƒÁàÉ`â/#fgyä÷ üš5kœtƒ•LóÚk¯ÕSO=¥U«V¹¼à„ã`Ìœ9Ó Š x 8 Zä/xQ?0bPõÕWÝ’8SRœßë®»Î9EÏ?ÿ¼sàK°0ð^rÉ%.ÿ¼Ç/Ý¢>p î¿ÿþ]–ðûXÏ<úè£:ýôÓ]¹p(fï½÷ž[âF°PòÎR%òËàIÞø#ˆÄÙ<àKꇇႠ.på ì§É/#D¨QÇ8u0¢ÐqvŒqP¨U‚7"3¸l+^~ÈyòË  Ø öG³ ǧšA»Yºt©‹°Ä«û#Ž8"aÉ{¬ô;,”G‘ç··ß~»s^ý…#Åœ뼃:€vëy‘/c,Ø-m;Á™>õÔS+lÎsˆ×Áœ%\Øâ›wM¤m’O–« Jc ì5ÿà{qÎÈ>Ÿþù.ŸˆÙXvH¤û6Ü‘íПLŸ>ÝÙ\qÔ°l>3ú”àÅ=üŒIPl¶†íSWð€ç‡~è„ ¶Gûñ† ì¹çžë–fÒvhsLjP¯±ú=ž‹Å.ž½Ò^°„"}õ½$Œúz衇\_L? & püq”y'åàß´‘Ù³g;ñúÍtô³Þ‘§NaÍäbþû§ŸÂæès±¸R¯\ô)aúiÒ½ôÒK]ßD¿Ã;èßè/áÂ{ã-s ì6Ïd õOÿÍÏC°O7yC4ò;ÊBŸ‡½3ÉÅ;é˜Ä ^ØüŒ3ܪÆÚí'Ÿ|âþËf~cÔ7¶À¤":Œ·Þz«ësbÙ^0oñÆŒà=ßð˜>m꾺]œÓ¬zH×o:G í…:¤d©¦¯ÐÍÛNtÿÞÜR¡å̓œ¸8ªôcý¿­ÓõÃAêþíGꓦa:¶t‰Nëóv\ÁòRíý|ȽúùÆóUÝV¢ie8ÁsgÕ1úéàûõ³Mç«¶­HWV¾¨Wê&jJÑ 'X6µT踲÷õ‡­3œ²ËÝ dT°7 Î'³wttwÜq‡‰ö°Ä,8Î8«~?3þtƈ?sÆl>5‚Œg'QÂÌ¢÷ÐIãÐáàsáàL1SV°±ÀAÄ1§Óeð¸úê«wYÖ†ha`gðö$Ž<ƒ"g…ƒŸ1ù%a8ã Z ¸\87± %0ƒäŠ+v±Òc°Š^ÆÏb=Ã`Ë{p”(#³Ó0 #X¸öß÷,Î=,ƒ2iû¨¢^Ìä"Hýì8ƒ?ÎpppÇac@FLP÷Ô1"v8@±ê(\ˆ@Á€<¯xù¡.dýûq”qºÜI'1gò,ñê'&QÔc¥ß‘` Fï.¿ürggÁ¥„Ôu‰cË?„ÑCíg½ "Mrå•Wºþž~âûC”±'…{cÈ7!L?MùÞ>‚I]0^чÓ_bWÞÆ;j~ }'ÿÆÙ'Œ+Ø.L™(`ÌòËë|z¾œÔùˆµü—þÞO4ø±„ÉAúèX6ËîÇlúØDö@»õùÃn°oêÍ·óè~3È"Þ˜¼ÁòdÍú°q„ö)ܨo÷ÜE8¸òÔî"!¿ßrºûÝôòwÕÚž£²ÜFæ´ê7›ÏÒ†ýYß^µZÛs50¯Zß8'®`A]P1O7l>Ç¥?$¿Jßìÿ”n©:AçW¼¦_o>{—ªdËЂ*-Ü m¸Ð‰(»Œ€ˆM £‚ůq£#Åi"äì72P"˜yíŒ`Áq`¦(Ú_¾ÁÀ, ú‚)ÜÈ *ŽC´`‰U÷8.AÁ«Œnà‘~бgÒòK° ¿dÑ ê” Q…ÐÄf‚‚…ºÅB D?OyW^°ÄâÝn<£°‚g†vKY˜ñ%òÇå ´E¿$ û¥žŒ‰øë+–`¡mÐ'Ū÷ `Id;~IØœ9s\ZØ'N¶Ïv|Þx?uD¹qH‰N`Ó´±`]ùûã C´ãꟉÕïÅb‡`‰e¯A•übsтŷ}&ÂHyàâW‰Ž°Äk¯Áº –=égƒ‘ ÊÏ„m1Æ^‰\Ð×ÐÇ‘w&Ã2´mʦŸö‚Å÷½Ár„=˜$˜ÏhÁ˜ÀÊÚ0l>ZŘËX럡 /úêèþ.z õÅ$iIJÙઈ0ö@Y@Û&ZÅÒ? í=–í9Å3‚÷ Xˆ® &ÆnÔ%}_Ñõ›fíÖGß0äNýqÛ)ZÖ4X“ŠVkfŸ·`¹qØŸõ·Ÿ –ÁùÛõ÷ë@° ѯí,Có«ôõþsukÕq»üÜ¿Á²_ñ*Uµ–¹ÎÓInÚç'ØÏ@¦ „Y–ìÞø¬,88áÁ“»èlÌ™ùëŒ`a/!u:P:YœƒXKÂl  tÜÞ9æ^’ ê×Í2`á0à¨1¸ÒÑÇ,8… ,ˆ72Há\‘!rÖ«÷N0²ÜG“û˜me&ÇŸ(k‹Y[C,”‰Txàð1ƒÌR¿¼‹22x0ã…cåŸA¼ IDATKÚÌv±Ô1é/ªXÏ xž<0‘W¸0 ‡‰°À…ÙE–Jàl2‹ÉÌ<€Ýp/u…á#d˜Ý ì€ò0OŒ_ÊL¾âÕœI‹GxñwÁB™YÖ‚3ˆ3sê'áƒ#mœ*òɽ̎#ÊãÕ=v›¨Œ8€±ÒÇ.q°¨gf[q½`ágp#oˆ8¸G/ cÉ$uÏû±Eœ1B¬çƒKÂbq º‚ Ònà@™‰ì)ópX°ýè¨&6H°àÜøHé3cDý%â¬_–Îڳ܊å?ôI‰K"ÛA°P/Ô¿Ÿ`9XÌ‚KQYžÉ=Ô mÞÔQ'ê »c¦œ{˜`á~îÃѦ-1Aã—€âÄ"’ü>:îÕï±ô/;Äk¬¾ æ´5fÅ™ì!ÍhÁBžˆÖÑa Øý¼`Á&¸ÏG–Tô³ÔqÁ‚Mà0“g>} m‰:HÔOS·L!ªa†¨ð{Ú:#Xü’0úa"ïô¡ˆB¢¢Ôƒ_Æx† i¦ýû yÆürhß&â DF,›åç~ÌckV`ƒLªÑÙ"/±l/8¡ö'XŠršõ‹!w;AÁ2,ö³”ç6èúqú¯a7éû.S][±¾\ù‚†lÓ/7« z@÷l?Ú ŠËëäòE. ûÙàûôóMçkG[±Ž/{_£ 6éÞíGéçCîÓÏ7ÎRu[©.«|Yo×ÑøÂunIØ+uôƒéÏÛNÒŠæÎw¡ßMÕ‰Ÿ™v^íý½@˜M÷Én5 -X’=/9LõxÆšj:YfvýÅ`Æ`À€F§×ѱƱ–„ùM÷tȤŠ)KpÓ=³K8ý8ã8HÌÐÒ‰3`2€Ò1âı—&z 1¿ßtϳ 8ÜO°0xàðAÀö›Øƒ:)œòϨ ØPÁ ¦ : nÌŒ±'G§'g&(Xp¦ü©GdîçbÐ¥8z¼ŸA”òR&¢ :M,FÅz†Á…È€Á‡´p’8̉Ž5†)藍&ïʇƒËQÄõ›î‰Á— Ì8bþò›|™‘fy¤Î"ØW¬zàYòÍ{‰òE_ñ̈"P§°Â®`I¨WìÃÛ"åóküqŒqZcÕ=õ”¨Œ8£±ÒgÀÇ–©˜à PØ(%õÍ^ÖG_”ƒ6B;ð›î±¹xÏGoºæ@}á‘/lœ½lþ r ~pXüL°ÏSÁ‚£„“Wò‰Í#L=ÛŽøÓ&ü…"Ö™‘¦2@^ãÕ{0Â’ÈvèW`J9ya‹ˆð˜c1 ö‰ì’‰‚NYç\ˆìÖoºç=ØÂÅoº§­y!Žb±ú=ßF³‹×WÑ/'lBÝÆ:Ö‘L{ô|Ð'"¸°U/Xˆósê’öF°¤ªŸ #XRD«Xjë#L1Ö0Q¦ŸÆÖè{é#(;lô#,Øミ¤!=öÖð7õè7ÝSïØ3ãK°œØ; {gMÛ[Kݾ˜Óû¼#v ®n ;«ŽÝeÓýØÂõº¼ò%'’N>ý·B$™$Ãø\vè*,]UH{È4fêq¨¯8Uv…#ÀÄh²ßa‰NÇÊŸäîÍÙs—ÙNöÔ…åÄtWDs™D *o—èŽÂ, K[„¥;³<d 0ÛÇ /K˜A´+",·d _g>`çßÂ,/QÀèã¼Ãå"³w™íd–O};{üáÁ2õ²>ªgÖ:‘V–D—éöÌ’Z©z3n%XÂ(°Þ\™Vv#`Œ€0FÀ#ÐÓt+Áf[O« +0FÀ#`Œ€è©Â$’ÝzÓ}: š`IUKÓ#`Œ€0FÀd†@:üûЂ%Ùó’à £À¤à Tœ<ä¿¡æ™ÎÞòœ<´'ëôywðD¥DyIæÞDiíÉï9±…“8ˆ4r|'§‘?N¢aƒ:'ŠE)9Þ;;[oœDÆw@8‰ˆ}œ¤}ôf¼w²™‘#H¹‚§í —T> Oò<åfOÒ{ÚP¼w„y>úô¬Dù žÔ¼·³öè}©ü=ÇWöþwÛIÚ»`³;ih}Ke¨WðÍŽ0›ä·:û\¨LÙMFÀ#`RL £‚%Ùµf).{‡Éu¥£Ã‘®|fOÏGOF„$so:¹{Áü°›AùÞBð:aó°§õ†Hå'J…,í KÿѼl,ËQ¡±¾8–kð¾0‚££tÃ<ß[KŽÚÕ®œ¸fU¼é>2·°at¨ªé¬ðèìs¡2e7#`Œ€H1T$‚Ù aI§`á› 8Ã|O‚s”N(hÄyãx?¾‘Âù(!ß,ÀI&OüŽïvpœht„…yñÝžã#j|oÇÖ‹„YìàwSø^ß/ÁYä>Άç”]Î¥ç9Ž\å|û€o!ø‹S=È+çÇûoVðy ÿ|'„wâð{BzD H“‹hñ±¿à÷W¸&|Œïp>=QÿÒæß|K#zfžsê)y‚ãÌÒ!JÄwK¸ø>†ÿ® LùŽeç»ÜKYxßWáÝ|Œ -és^<õÀ÷Nøv B¼ƒtH4ÕuÚ¿÷Íþæ<|Çg±>²FóçÏwß@à;”>”ûxŽzð¶âëˆo$PO”[á‹Ê|›Ç<ïap$o¼¼uÂ;øÃý|?€è6Cµ|W€òPDNø=ï€eà{üœwúïQG.¸ñîá^Øsj ©Ëë®»ÎÄ7 °¢^±® àà[|œŽéas|#‡o‚ð½NúÂF°kÒÄž‚Ïó}>$ÊGƒß%B°ð<í [á„/ÒgŸÁK"{ LþC­°&MÒ&¢«Â8xñQB¾»OoïÁɆ£K?Òðü­º¿úH(Øê>÷Ï.Õ–Ör]^ù²>h¡Kú¾êD ReAý>:©ì==Ys€¾Öÿ÷}…ÙÕ‡iKk….îûŠr%åç´è‘‡èãÆá»ä%(<Îìó–&­Q›rµ±¥Bwm?V-í¹î[ §•/tÏ­j »ªŽÙå[ '”½¯ñEkõ§­'ï"žR<ÖXrFÀ#`²Š@F‹W`8Ü88º\|, ‡g”¥ñ±;D _çʼnÂ!âËÎþç|Ü'.Z°àláäáÐâø±œ g ÇŠïløèáâ4 ïÂ1ÇÇ C¬àèò•òè/ó!7>¸Å¨qöø;΢†<àdã#8N9åÝÿý; ?Ã#ïé:kÖ,'˜‚ÇâãˆñAޏ$ï|Ýž„á„ñBœQžåÔ|DÑ_8“|È‘¯Í#˜d „yæÃ‘”Gö‘GqùP!yÆáæ É|´ AÈ¿½Xò_2ÆY烄¤ï?øÆ‘À|“Ö8‡DRp¬¡‰ê: Î9g–uŽÈãýä‘"h(ü|„eÆŒî«Øä›{pâƒDä^Êæ?Jxíµ×ºl"§L™âØÂ8VÞ©ËàE½RÇ|ØQ‚cŒýb3ÔBåÿPÒG(^|ñÅNŒR_ð#ßüœ:BÀ ˆhÀFøÁK™YnG»À–IÁB9ùV ­C%,´ê™hï£ Ø=ÿ'ŸY„܉ô`‡´-Ú!ùäw>ú¨ûcð"ÿÔv„ËÉ?í –}"nàÍ'²Þƒý ¢y/‚“õaoñÚh0oˆf>’&(7uà¯~yµúzÿ¹º~Ó¹:¡l±ö+Z­·öÑëuãõ“Á÷ë×›ÏÒo†Ü®ÿÚzš–4Žp"Áò‡­3t]¿g5¿~_'f¾3`ŽÚq˜–7 Ve^­þià#úá†Kb ¾d=«Ï›ºaóYN°iϯßG?|¿~¶é|Õ¶¹×½R7QSŠV¸¥d|™û¸²÷Ý»[Úó²j ±Ì#`Œ€H'Œ ¿Æ g›ÙqJfTqÄø7N0NŽ˜ÉÆYäÂaä™X‚…¯ùeÁÉa¿³³¼ïÊ+¯Ô-·Ü7‚¸9âˆ#œHaÏŠÿ.D,ÁBºä ‹rà0#lp ‰ìð<ÂíŽ;îØ)Xp68ÚÌ|ãÌáì/ ?óy¸üòËCÏ—à{~ƘÙznò,ˆò€CÊþÞÅEºDŽäYu."ÇGUˆfp1ûñ–›o¾Ù=-Xàì? ˆë¿\¦Þ&°ÄyÇA§îÈb:÷Ñ©hÁËVþŠ%XˆbÀGÇg6VÞqäƒõ oÄQœgòL¤ÛB(Á»€ï€?ì¼£Žp¦N©/~#ÊŒB,™á¯_ìxB°P6ì¹£+!áߨ š‹ˆl©G–DZ÷!]NÄ:öäKÜÑ‚…¼y»EXI¢ì±ì“v`Ać±Úb †ˆzÄ3".^ æ‰ê‡wRÿL`x{ö÷ýxðýºaÓ9úJ¿ôlÍdYú±þºãPýM¿§uÃæ³õßÃÿ¬o­»Z­í¹1Ë» £õ_ÃnÖg̓v¾º_n­~¹ù\'<üå#,¹jSIn“ª>ÌýjZé‡Ú»p³æÕ}IçW¼¦_o>{Ä<7´ Jc 7èG.TC{a‡un¿4FÀ#Ia–„%»7>+ ³¹8Ìôâ”AÀùÁÉÀa# À…TUUåf”ƒŽÏãäÅ,8'8‘8f8¸8‘ñ %Nß?€sÄÌ1éóNœ¹X‚…™pfŸƒ‚…(€ô¼hò‘¢#Á})<Ëœ+¢=Áå6”›{. û0,8™AË™$j‚sHùˆB0ûíÓ%X˜gY3ø8‡ÞÁc¶}õêÕ¡ ˵ü^Ÿ'¿„Ç ÍxõF=• ‚„cŠ=PN" °Œ'XbÙJðÃjÑ‚%¸‡%(Xbå=škPð,õxA¤a# ÊÀϱkê!Ãߨ)¶Àsml!Ht,(Xy„uôž) ‘/2ãuLÁ|­AdyÁÂ0Dò_þò'X`EÔIT…ÀE¼RìÛ Fðxoô/X°ëXöé—„E –xöpÙe—96´cÚ#ïÃ.¸bµQÏ{!¢Hž‰(]¢‰,÷§Å #uzŸw\DåŸþU/Ôî§!ùÛõ莃uã°›ôÍu׸dãEXþ0ìf}oýjl/ˆ;FxÁ’§6KÙ™¿U¯ÕÓ¯é†Íçì&Xö+^¥ªÖ2}Ò4LO'¹i?“ƒ–½Û#`z0›î“ÝjZ°${^r˜êñ Ç”Ùfœgœ#+f‘qÒb9¡Ì^—’0óÎ’±Î2fÕqÄ™ag–ÁBžpàpt(;â±€cÜ¿â#'8‚,=ayâˆü„,8Ò8ª”7z&ß òÇr,D<˺XîÂr.f½a8úDX`á/œ»D‚…ü{ˆCG´Çšü°<ˆ¥>ì€9B2Q„…™ÿK.¹Ä 8–òø="8ðaê/†µA0!à¨_„Q"–ÆyÁ‚­P7D¢7Ý{q,8°D¾|„)–`a/I¬¼Gï #XØ#‚Èc/ B‚ë믿î.åA#ˆ"/Dl‰ºÆáæ~ÏSöËtF°°¼zöûk(<´9¢{LPçü¡Ä º£>£m4ž`AˆÅ²OÊkIX¼vL=aï´-Ú {݈0Æk£Þö™H ŠKl–´#ÚHðšZ¼RÇ”~¨ê¶RÝQu¬¾Öÿiå«UOÔ¨eMCâ –kû=§… £ôVý¾úûéõúqn)Y¿¼Xö¾fW¾›ð`i×ò¦A:·â ýfóÙjS޾Öï-jÜ[ïÔÖχܧŸoœåòrYåËz»~Œ8™Œç^©›  |HÞv’XV[˜ìé aúj»Ç#`Œ@X,a3Ù™ûpÌpV,÷b0³¹ÌãØDGXpÚX"Â=,["êÂÒ–‘/²DœiD œ1eö¶à4òœœeföqvp˜#8y¼×_Ì–ûûý¦{î0‚…4Ø7ÁÞœÑ苃p~qPøƒ£‹hó›šáç— 1k¼Â¢C¿éžr!™igéS'D¼ˆà¼w´‡Åoº'Mfé¹ð So8ÈD#bˆ#œgÒºí¶ÛÜ ¹,pFp²¿!(ÂB=2ûO½ Âb –2a±òm[äQ/‚Ðð –bc,¢¤o¢w,c¯"';DdP~n–3Á›ìŒ`ñ›îi7ü{¦žqz©cÄ b‚º¦í!’‚ÂŒ¼!ø°}ÊÅüAÍå#,þ „hû nºcÔï&ŸD•nØõ«ú|QF"\°c‚»EÈ2⣕Ü[”Ó¬z›n«:NoÔÕIe‹5³Ï}oý•NPÄ‹°[ºDgôy[T®•̓tYß—ÅIb…9-š³ã`-nS°p¬1“5_bÓ}{®ÖµTêÞíG»w±éžHO»¤ÕÍtgÕ±»lº[¸^—W¾¤_n:WÓgÎr<:аv¦?¶gŒ€0FÀì 0KÂÒaÙ“ŒÛ³@„°T‹™`œp»Œ€0FÀ#`Œ@O%ЭKÖS+Ê—‹e-Ds˜u>’µ§—ÝÊ—Çwˤ¢/"Deì2FÀ#`Œ@6èV‚%Ì·l‚ky1FÀ#`Œ€0F >0‰d÷ƇÞtŸŽŠ1Á’ª–¦0FÀ#`Œ€È tø÷¡K²ç%‡AF…IÇî1FÀ#`Œ€0F ó2*X’]k–y\–#`Œ€0FÀ#`º’@:¡#,&Xº²ªí]FÀ#`Œ€0FÀ@ £‚% ̪Õ#`Œ€0FÀžC £‚%kÜzNÕXIŒ€0FÀ#`Œ@÷"& ‘ìÞx,ÝË,·FÀ#`Œ€0F k „ H$»Õ$´`Iö¼ä0Ã(°0éØ=FÀ#`Œ€0FÀdž@FKæ‹o90FÀ#`Œ€0F › „ H¤-Â’Í`,oFÀ#`Œ€0FÀtÝJ°„Q`Ý»åÒ#`Œ€0FÀ0º•` ³Æ-L¡í#`Œ€0FÀ#`2O L@"Ù½ñ¡7ݧ£ø&XÒAÕÒ4FÀ#`Œ€0™!ÿ>´`Iö¼ä0ˆÂ(°0éØ=FÀ#`Œ€0FÀdž@FK²kÍ2Ër`Œ€0FÀ#`Œ@WHG@"t„ÅKWVµ½Ë#`Œ€0FÀdT°xVZZªË.»LÛ·oWnn®rrr´|ùr½õÖ[jnn]Sx šššôþûï‡~&ìÆ Ó¤I“ôì³Ï†}$á}‡z¨µxñb}å+_ÑÍ7߬t–!a†’¸a̘1Z¹r¥Z[[“x*{nÍ6ÎAûJ–-mÆÛO2„;ûÜ>û죓O>Y?ü°6nܘÌ+µï¾ûjäÈ‘zá…â>GpÎ9çè®»î öi§¦7ß|S[¶l ýLºnôízÑ¢E¡^1pà@µ´´¨ªªj—ûÏ8ã -X°@ëׯ•NØ›Ž=öXmذAµµµš2eŠž|òIe¿°åscÉ¥—^ª;ï¼3Ìí¿'žíw¶­R ³Î:K¯½öš6mÚ”ñòYŒ€0%QÁâ׸ÑIŸþùºí¶Û\9 tÔQG©¼¼\=öX¨²10µ··‡º7[nŠ%X²%o‰òCùøã;˜ìµ×^{iÍš5YW_™²¡è÷&˶³ÎLgŸ;ýôÓURRâÄÊË/¿œTõ§K°$•‰4ßœ¬`9ì°ÃK&i‚WW –t éß¿¿›AÙŽ€ –pœì.#`²›@˜%aÉîÏJÁB5àL]|ñÅzæ™gTTT¤‰'jîܹ®†¦M›¦uëÖ¹pêÔ©ÊÏÏ×Ò¥KÀa€dfóŠ+®p‘–ŠŠ 1p¾øâ‹nöuòäÉš0a‚êê꜓ЧO=ÿüó»Ô<‘”ñãÇ»Ÿáyî¹ç\~6rèС:úè£ÕÐÐࢠüœÙà™3gºÙPœ¹Aƒ¹ÈÉÇ,¡N8Á• 1æK°øŸ1vÀ¨ººÚ¥GO<ñ„ËO˜2PîcŽ9Æ•>D«ø›g\”ãˆ#Žp3å¼ !ÁµcÇçˆ2$fÆç%u»C9D•••.ýÍ›7륗^ê°%á ñ®O?ýT}ô‘«³è 'ž™à~ýú¹ˆu5oÞ`Œ½‘ÎqÇçìˆû_ýuÇÔGfŠ‹‹…ƒüÊ+¯¸Ù÷xmŒ|“ÿ3Ïì2FÀ¤‹@˜M÷Én5 -X’=/9 „à’°`„Å?{Ê)§hÕªUq#ëSO=Õ908Á™Íë®»Î9U8_8§œvœEîÇÙ@`0@E/OÁñº÷Þ{Ý=#FŒpi#š¼`™5k–sŽpxp€Žs…ƒAä`áÂ…n°%ÿ÷ß¿s8pLpJI§ùÖ[oÝ™ßà’0_•éÓ§ëî»ïvÎ Ï㬆)eÃ"=-ÊÄòòD™]8t8Z Ü, áÂIÀaàw±ò@><#œÆ“N:I³gÏvÏ"pþq,:ºpLpaÇûßyçWþ™à÷~YÍyççê ‡FˆÒ þÉ7åà ‡õMy¨“0‚åÚk¯ubºÃyˆÅa”(oÁåHä6Cž°œt1„ÏŒ3ôàƒ*ø^ìÌÛWÐþbÕ#6Ï™Áy‚ ïåoÚ|ˆlàôÌŸ?ßÙ#Î3ζHÔ»¥½utaïˆ|êâì³Ïv“ˆ"®ŽÚœ·ãO<Ñ1ˆnsÁ6… tÐA ~˜3gŽ{·wÊXnF"Ê),5}àœø†/÷#ÎhC0Bø‹: a7´9ÚËT»Ø6€]#Žè{;ˆ7Ò§=áÐøá‡5j”û? ÁØŸ{î¹nr€~…úà>œpÚŽu¬ â›vŒóî¨?I¬²SßLìPvì<¿ýöÛ1 ¿Õæqêñ‹g7´;“ØË'Ÿ|²Ë­°€eE2YÄä¶O¿@»„#">—û¦,9&% – Í HãÕG0sñò¼'lºñÒŠgûɶqúÌX}#m›ñjìØ±NÒØeŒ€H'Œ –t,zI˜Î3Ô8 ±#œR„ WP°à ÞtÓMncd°`° ÞÏ H$$ÚybVgˆYHþà¸Êk®¹Æí7!maÖ{Á‹ӌcSÄ 4å#oü g=ä ç/zKP°øÁ‡²á$mÛ¶Íý S†«¯¾z—5ˈ–‡zÈåÇGí’K.qŽ3"N><¹Ì™égæ2VpʼSÍȬ7åàÄL"±´%„$ŽNaÐyÄÁó‘œ%f'‰æP_ä/zÐ¥¾©ø2“Œ³“Œ`ñÏâ˜ÆbØõW¼¼áXù‹:ÇñÃAÅ™ÆIƒ6C™qBƒyŽ'XâÕc0*œ}Å9Aäù™zœaÚN`ðçäÓ?‡H!ªã—èBðRˆuì†vå—mÆksÌžÿõ¯uI#P©Ëè6¯þâEXpq®½ BÅ—¡K”„}AÜï둾{,Ô¿/åÃÙ'‚ƒ¥Ýb‹LFÀ”?Gyäβyv´îA$Ýwß}N uãE-yÄV –dúò¯ì8÷ží [ îañü`«Í#òñëÈvxÑB?î#þ~Øì¿ÿþ®m0¡Ã½ôéØþ-·ÜâÚ´¿Ø{«,aI™IDAT‹·™Žê#XŽxy‹,aÒ—V<Û'Xâµq&ÅbõÔ-};c€ø‰Ú¹ýÞ#°'Â, K[„eO2žèÙX‚g 爖Ž'Ò/ cI.0N¿w0‚‚Q(à –à`Lš "±63‹Ìl-ƒ,=N‡Ÿ:f8& ^°øM²ˆ“‹.ºH·ß~»˜UÆ!d›Áöª«® %X‚eC° œH'Lìywô¡ÌÀ2è¿ûî»n¦’Ù_fœƒ÷ÆÊK°‚Qža˜å88yD?¼øáw8d œlDN•g‹ÓFzÁ¥0-(Xbµyú‡Dühˆ!.òH§ogbˆ¾É &;¢'4ˆ‚=ýôÓ.ŒQ·ì Á<Ø#Z¨ú²°¤.Ö\´™Žê#X?ñò¼'lºñÒŠ×wûMú¬Dmœö«o¤n‰`ù±.Ùƒ2ßö{#`Œ@gt+ÁoIN=:/k¿éhýL&ƒ&Ë\p²’,ì` Ž,Ž2Î]ÐyâÝ8ò~Ðg@gf çÆî¤Áž:~›Ž ïa &Zý,Åb æÙŽ",±ÒHT LJ‡ Á‡ÓðÆo8›"òÃR9Ê„ɾœ)œÊC ‹x‚åòË/wËÀX†À’¿Ìƒ¨Kgpæâ]8DypâƒÂ&x?lpvpøq‰˜°|FŒ[ œO=õ”û=õ‹ƒH=ù}EÌÜ2k‹À¡‰*±<)ž`‰Ç‚%rþŠ—·è2“Oœoœ&D ¢ 'Ÿ¼3kO°x¶ÌwT>?Á õE½Q×~É ‚ÑD{BÜDD0à xQvGfiaÏr¨à…E½O¿b?b…öK°PØ›_Æò8ê0Z°Ð¦¹—úc’¤M½$ú†ƒM41ÐÁBT ±DDç›÷aÑ‚…üñ^&(˜¡¼Ô=탥_0Ä~ÉÑÊF»¡áÚ'$Ú5í€eGDx`‰í!np4äƒvƒÓM´; ^ÁM÷Á xý Ìb‰5&U`ŠÃ&È3â?^„%V›Gd$âÝÞ©/ž¡ïC4#%Á{±ö›ùý)Ø'´iê6 l´_&l|Y°SÊ„":ÖO°ðl¼ú“·x‚¥£tã•3žíߦÃ'VßÈ$íž [ƒ-öM¿ ÏîvXMg#{Æì#ЭKð”0fŸ‚3· R D8Ð8¦tº x8 ô8‡ üÉDXp˜ c¶•gq"pf£7‰ã1Ó‡cEgÎïYfä ÎŽ³ê8¿8Qñ fqÉ;(k×Lä!YÁB4"LÈ/ìpR˜ñôû(yf¹šŸ½dv–HŒ)eF(Ä,8sD;X„pñkÌy¶£ãŽ™íMt2³…8ðaÎN7N u@Ùü¦{"ˆ\œ6•úMÛ~S3u ž#jƒpô£ƒŽ6M: ¿±œßw”·àì16„s‰3FþsäÅO°x¶ˆê#^=Æ,8LˆìšzÇ!‡‘ßtSƒóƒÜtOZˆKXaßÁhéy±ŒÂ`#,¯Âþc Ú¢‘úÀ®hãØJôA¾þ¸1£‹p ¾°WDí…zCü$aáYåçßÔ}Hp?yÀÞ©+íŸüc«Ô¢É3Øš¾ûçb¹û‚‚›îÔN¢Xz[¢¿g‘-Éö'´“X‚…wùÀn)å¡ß‚uØ 6”ˆ_ôp¦ó Ìéi;D~Ù ä£Þöý¦{l²0@{¦}`³ÔI¬1‚‰/Ê£mÛâÝÑõ,G¼¼7­‡M7^ZÔömûñK¼6ÎýØ^tßÜtO߆xÇv¿úÕ¯ê/ùKRŸÈ>—ÇrdŒ@6³$,Ù½ñ¡7ݧH˜M9©~/ŠŽ¨ÎK;$“¹pD½óÅ¿ôÙ´ÝUW*ÊÐUyÍÄ{:óLäÓÞÙuþd:Þêi. .Ë뺜u7…á—‰’øoÊ#e™È‡½Ó#`¾ ÿ>´`Iö¼ä0F…I'™{X6ÁäÿßÞY0ÉqkaT!zaFW˜fF‡™ùç¼_fF;ÌŒ3³C9Œ¯Ž\Ú'÷¶fºwf<ëøt•kíYµàÜ+é~‚1[â¬è±ÒÛæ?§¤,ÄNZ™ãÛŸØZŸ[O?Ú0·ê:Œr,à>¾ËdW‰+ŽG±*Ï‘Çê=(KÙ†Mø Ã,àn™€:ª`i{ÖLcJ@€$  H@óAlH4ÞaQ°Ì_Îfk%  H@€$0 U° B¨ÖA€$  H@è¡ –Aœqës‘€$  H@€Úh²!Ñön¼‚¥­L/ H@€$  Ôh²!ÑöªIcÁÒöû’›Ø°‰k’i$  H@€$ áª`~ó­$  H@€$0ž 4ÙØËxcÝ$  H@€$ yƒÀ<%Xš(°y»µ”€$  H@€š˜§K“3nMm H@€$  H`øšlH´½ßøÒý š¯`Uó”€$  H@Àp "¾o,XÚ~_rD¹ãïS&N¯M›59L59þÝÏå ?Ø/æq`Ò„á¿3§4‘Ó4,mÏš5® %  H@€$  (Xt H@€$  H`ÜP°Œ[ÓX1 H@€$  H@Á¢H@€$  H@s@Û»ñ –¹f ’€$  H@€ÚÞo,XÚ~_²¦€$  H@€$P%00Á"j H@€$  H@½P°ôJÐ÷%  H@€$ P° ­K@€$  H@½P°ôJÐ÷%  H@€$ h{7¾ñ¥ûÕØŒ%  H@€$  4,m¿/Yâ€$  H@€z%ÐX°´=kÖkÅ|_€$  H@€‚E€$  H@€Æ-˸5“€$  H@€,ú€$  H@€$0×´½¯`™k¦± H@€$  H íÝøÆ‚¥í÷%k H@€$  H@U,¢–€$  H@€$Ð+K¯}_€$  H@ËÀК±$  H@€$Ð+K¯}_€$  H@¶wã_ºXÍX€$  H@@@cÁÒöû’%. H@€$  H WKÛ³f½VÌ÷%  H@€$  (Xô H@€$  H`ÜP°Œ[ÓX1 H@€$  H@Á¢H@€$  H@s@Û»ñ},©Ðj+gΜøS}L?›ˆ|fsÐô‡|ŒÐôýá?£æMç ç‹Ü)ôýa^÷‡VX!Æo½õVxóÍ7» ¥Æ‚¥Ó÷%§ ùÕÒJ•0ýlRò™ÍAÐò±CÐô‡I£&oç ç‹Ü)ôýáßâ},¤O3Õ4_ýuq‡eezù¤ý!ûËÿWÌôý!ÍÎ/³I8>8>ä1“þ ?ü[ü¡äËUÐx‡¥ë^ $  H@€$  ô™€‚¥Ï@ÍN€$  H@èKÿXš“$  H@€$Ðg –>5; H@€$  H Æ$X¸»ÖZk…çž{.ÖdÝu× }ôQøë¯¿ÂÙgŸ.¸à‚Q5<è ƒÂÓO?]{ ¿š¸MÚ¶(]tѰÒJ+…?þ¸í«1ý–\rÉ0uêÔðûï¿ÊcÁ gœqF¸ð Ãa‡žxâ‰ðÕW_©¬UVY%Lž<9ÜvÛmcz/-¶Øb±]\’ºÿþûç(bƒ 6ï¼óNèµÞu>´À „“N:)\qŃhÖ¨<·Ùf›øYòñ±ºÝvÛ…ß~û-¼ôÒK_O óò¶Ó÷þüóÏðÝwß5ʳÔ½<'ÊûáXšÑ¤ï&[­ºêªa“M6 ÷ÝwßXŠêøÎXÚÑÖGú^é2ìW?_}õÕÃæ›oî¼óÎ9jÓ‹­òy®‡&úª$  Œ@kÁ²Ã;„Å_<íN÷ÜsO `o¿ýöÀ÷iÍ5× üyüñÇ[ã"x8ýôÓÃE]T|÷ß.XÖXc°Ùf› ^xáè7Þxã@K[cøüóÏ?m_I? Á’3,U|ûí·_~ùeøàƒµm¼÷ÇF($êdã±úy1ÝK[õÒ¶ôîXÚÑÖGúQÏñ–GI°ôRÏ#Ž8bdžë%ß•€$ öZ ŠØ}÷ÝÃÒK/î¸ãŽøhì¼óÎaÆŒqÅý„N/¼ðB¬Æ³êÈp”€ü1ìµ×^a¡… ìv¼öÚkñO]°Ð$í”)SÂçŸEÔŠ+®^y啸ÿ›,»ì²a×]wÙRÖ3Ï<w?üð°È"‹ÄtùÊ÷K,ëE€~O>ù³Ç{„ 7Ü0|öÙgáõ×_¿ûî»c˜ÀàÝwßí¸ÃB=ëÚŸêKùìTÁr™e– Ûn»m€ÃòË/"ÌÿøãÈw«­¶Ši Ìy䑘îÔSO ¯¾újXn¹åÂĉ#[v”V^yåðØcEV¬2"<ÉÀëÑGlòg„ a·Ýv‹\IÃÎÉÛo¿9ä(V ˜)3=´iuÖ ï¿ÿ~xã7Šõ¦ÎˆžY³fÅ<þþûï9Ê>óÌ3Gùзß~;•úäu{ï½÷¢=W[mµ°Å[Äúbv!êÚ SìÍJôÃ?–Zj©È’_…ÇÖ[o?'¾ŽÍùÿa§[ó|ðÁáå—_®Ý±c‡Vø9¶ „2¶ÛxãGù\Ã|p„I ZYØwß}ÃÏ?ÿëðÉ'ŸŒ¤aW‹¶â ´[ñÅ¡Ž%m¤ÚŒÀyø»‚ü<æ˜c•W^ý ÞÔŸ4ø*eà3¼—?ˆú i~úé§è«°â?…*Ù>ù,œ)÷¡‡Šv(ù8c ¢ {ßtÓM±nø;eó9ŒK~Õöøw]?Jãm¬Ë?÷wúEZͯwàÆN)eQGú5¾‰?•ì–˜¦Eü›>Œ/=ðÀá›o¾‰~™Æ8ìñì³ÏF[&¡\Ê+ÙóÓO?6¬æÁ{¥>VjGîŒ/ôÚˆ=øá‡ðý÷ßGÁ‡]v»Ù­IYuã¬ðSê@_‹i÷Þ{oœ#’­êøÑvÆ|˜¾ÿ'Ÿ|2¶#ÍsðÇ:õƒöS±oH@@'­ ƒøFm':sWŽk®¹&N çœsN¸ë®»bÇÄÀäÌÄœ& >cEH¸1ÁÔ –&i  ™xIL ûí·_¸îºë¡‡ɇ~?'°$øâèÿ®î°Ô ü ¼.¹ä’9êE}iëÅ_\ :» ʯk?ÂëùçŸmÙtÓMcàIP´k¯½6N¼p@ °=òÈ#ÃÍ7ß™¯¿þúaíµ×Ž"çÜsÏ 7ÜpÃÈ»äApËñbaÒDpTÀuÒ¤I#Ásj02A “5? ^ 4¼ó`;¥‡é>ûìË&««7m 8LÇ4”ð#NþÔùöJGíØý@¨½øâ‹Ñ:꨸ÓG@£«¯¾:D¥vò>Áî´iÓϱÇ®¿þúø bVü!M:¦‚_D Á?¡lÊ«ÛÍA°PÇɃr¨'}¨N°`Ä0ç‘ßü«î°¤"*ùœ@Œÿ»ñXÇ8þøãc›ùå—Ø'°ÙSO=ößÿ(ØE£ýô„;uGHdbcÆÊûõ×_Gª‹ÒïáÆ‚ÅqÇ}+ÙŸ½õÖ[£À¢.‡Ô¥äãôy„÷ôéÓ£ÍY8H‹G}t´M.ps–¹í LKeä ,uùãÉVùj~iÜ¡\#:ñ…“O>9ò§ÔÙ-,Ø>ñ[˜s—…Æ l‰HCSç«®º*Ö ÁŸ:Ù挗uy”ú}ª®¹ð{ü‘º  è·ˆÆ-ü;ó÷nv+1ËË*Sð íôM|ÉXÃx˜K‰B‰>Ç"ó}ßOóý7ï§uýÀ°C€úK µ`©+¾*X¸ÃBG0ÌÇ.K °¹£Âª+“‚‚É¿N°4IKðB ÏÊÁ'Òå—_¦!,RÞ§œrJ<®Dê “&y0É®·Þzñ.N¾úßÁ‚X©kÿYgë›—ÇÄOxyXá#cõÆO VÊ †ò#@{î¹gdLðBP…"ÐaÞrË-£ºiÁKþ?A`ZÅg‚ÆVõMK]½)‹€”F‚0V†«‚¥êC¬j&ÁBÝTÓ"c\þÍq˜Ô–R; „Ò®ivÚi§pË-·ÌQÒ´¤ºãÇÔ`‰DäVëŸ2‚ö$°æ)1L»s½Î×ï¸ãŽQ¤À”þÀC°[eÉŽ¾„àå¡? ôXt@˜ð9¾ÃBb–ÀÀ?$ Ç(1“äŪ6lWÒÒ¿J¶/Õ±äãôy(÷Ø(­vÓ×YÝÇW_’¿TKnûRi¼¢ÕåÏîQ`);µôÓä ÉŸØu¨³[.XÈóüóÏý[±@ Θ‘ß#HGl"‚’¨ídO|¾”m«ëcìJÖµ#¿SU½ÃÆÝ3ê…p Oð“ßnv£v+«4NQï§±“1‹0¸$ÁÒ©íùØ—l‘æ9ÆÚný ¿Ó´¹I@@ßK0× &X ‚,&„D`i’–à… €WÄÁäe—]'bvH’`a²aE“2ëËÞ{ïWß„ØQà(M'ÁÂê3X:F€GÕm‡…vÖµ¿è®:ñd¤cUn¼C»¹ðÏCR`™ VwYége–v0±7,¬¦# š–üËR½±â‚÷NOå‚ÁDZ7Ú–?U^¥væ÷S8fƒ`IÁ{ʯz‡%˜ð'=6`…˜#mI€UÛDp†ÿ¥‹ûøu&ȯó^ e#±'Á1¾Ì.fK„HÞfú«Ñˆ0l…ÈExàƒ5B;ÛéK7(‡€0o5È$ð%?KÉöuuDTx×ùxÞç©}šzê‹Xê$X`…M«¥2’`a§ª.ÿ’`);ô™T.?sª³[U°œwÞyñ#ì€`A\RcÇîò'ß…ëfÏR¥>Ö©_¤:ÐIÇ ‚;â÷ô ~RçnvkRV`I»~ø0;}<ø ö® –:~ÕëÔ -$  H ¿ú"Xؽà˜«ZÝ +ÒLöˬž1 pt ŸtS°Ð$mI°°ÝÏ*"GLÒñ‚Ž©å“GX¡&Í.»ìwøjõ›»ÎÈnÔ3 #}ÚÕÉ}‡>‘æ¶È„!zðü,`ª5»pàhmªc‰Èb'°óÆÂG©8n„}aA:vVð{v1é£äŸñЧ8Η Gv& á‚@¡_pä?-Ù¾®ŽÜ)ùxÞçi7bˆ;;ô{ŽF²3XÚaIve‡¯TFƒ€uùs'#Ù*?VwJÁ7ãAÝrÁÂâ‘Ev¼°G¬à€-8²‡ÿaGúAî#ìÉѬR¥>ÆîD©_´,ônvk"XJãGWÓ±4ú)ý•úhÚa)µ<üŒÜ C§yާº~€H¦Mø†$  ô—@_ “«ö¬¦¯5®ÛaA¸°šîÀp!R°Ð$mI°T":(‡€‹ ‰ š‰†ÕC&y>K;Á gñ)?ÿªÒ\°h°pä‡wÎÜ8Þék™ëÚO}ùœ|óK÷u;8ˆ~—AaÁÂ{´`ö·ˆ»ü.ÁG•Xý%¸€ÁiõÂx.æ°=,Xá.Õ›{ øܸÌM½sQH~ÝKºLP’|±XJ¥vŒäAõ!@ãázúwÚÉWÄIÇݘá+”‹¯¥»‰ ÇÓn`I]ÙÃçJ¾C^‰aZ&¯\° äLsÑ‚Pà˜¢?e7„ ½´€@›SútéÛQ×ÓN;-ŠA|™»,p¼ôÒK£Ð×iý*Ù/?ÒI]YáGpã´•~A`]²}©Ž%Ïû<\U5ŽK²ÀÎ"1’v“MªAp©Œ4ÑGêòçË/¨Ìsù¥ûºq§|³˜Rg·¼_(³˜BZسÛHàhOc¶Áæìfå>û’=±a)Rk""šì°° ÒÍnMÊ*SM¸âø">ÊXÎB~龎_ºtÏ{ø3±˜æ9ø3>Tû»µï«Ûìï´mn€æ?},ó6[>M÷TWwW}«ºgöýúU•L™2¥ÜæZYY™M›6Í_|qOb]@h¿j¬E¥ýr@) $Ú¯€+GQi¿P (‰ö+ ÆÊQTÚ/”J¢ý ¨±r•öË¥€’h¿j¬E¥ýr@) $Ú¯€+GQi¿P (‰ö+ ÆÊQTÚ/”z˜Ô¨–‰"A€ @€ @€ ,bM²¯WZVjßþú­5kÜÌf–δ’’[¬Ñb6£tFX—•—Yiy)ûë!ŸÆ%mêÔ©Ölv3Ú§¶î£ŠîÚ¯b>•ñ«ëý´íWÑý]×ý³Ø¯ÏýÇýÇýWw¿Ï¹ÿ¸ÿ¸ÿ¸ÿð,˜„ç'ÏOžŸû6ûáCÿàþàùÀóÑ¿ø~àûÑû¿ø}Àï~ðû€ßþÀï~x_à÷¿ø}Àï~ðûÀ¿ø}Àïï ü>¨›ßßOùÞþ€]Ôã"ÝŽiÑèç?~ÎD5nÔØš/Ö}º-Öl1Ú§û'í×$üP(Ôç íGûñýXw¿¸ÿ¸ÿ¸ÿ¸ÿ õ÷ƒþ¦ªËþËó³nù×´ýi?Ú¯.Ÿ5í¿…~<÷÷÷¿?ùý¹`úÏÏúõü|äýGì®·î2ͱ6»lv#õ_J4’X¤0-K·XÚ¶\k˰ÉÍF½&P–¨ìÓ¦M³Å_¼^—“Âå&@ûåæR(©´_¡´TîrÒ~¹¹J*íW(-•»œ´_n.…’JûJKå.'í—›K¡¤Ò~…ÒR¹ËIûåæR(©´_¡´TîrÒ~¹¹J*íW(-•»œ´_n.u•úþø÷3—–6äÖÈ7´ö1µ­qE1@€ @€ @€ â" Ï5!6ç6oknŠÄ¢ÌDtÉ`  @€ @€ @€@ñ`äÁC¾VíR¢‘&ïVFŸÛ(V—Š5 @€ @€ @ Í "J‰FÚ"’šÌ+ÇNû0@€ @€ @€ Â&àD &ò@"Õ(%%Óej©ôƒ @€ @€ @(. Ò¥E£d>#‰E²x »âÂ@m @€ @€ @€@Ã% ()€( "J‰F AB,j¸„šC€ @€ @€ PüòiA)ÑHaHiäëâGC !@€ @€ @€@Ã!ШѼ "iCn)Ñ(Šò©L~ k@€ @€ @€ Â#PV6/ˆH£Ð¹ÍÛš›"±H‹¤dËó±† @€ @€ @(AJ´ YD”’鎂X$UÉ—"¨;U€ @€ @€ @ÈA "J‰FÊ"’£Ò²R‹Ç±Ëq’ @€ @€ @€ Œ€„")˜("J‰Fñpt:@ÿ0@€ @€ @€ â" À!-qQZ4š;—‘ªaW\¨  @€ @€ @h¸¤…à!EAD)ÑH!HˆE ·“Ps@€ @€ @€ŠŸ@>-(%) IŠ’Ì×ņB€ @€ @€ †C Q£yADÒ†ÜR¢Q,åS™ü@Ö€ @€ @€ @…G ¬l^‘F¡s›·57Eb‘ HÉ–çc @€ @€ @€ P‚”hA²8ˆ(%%Ó±Hª’/EPwª@€ @€ @€ ƒ@D””7D%F¥e¥c—ã<$A€ @€ @€  E R0QD”âáèt€þa€ @€ @€ @ÅE@CZâ ¢´h4w.#U;î¸0P@€ @€ @€ Ðp H ÁC Š‚ˆR¢‘B‹n'¡æ€ @€ @€ ?|ZPJ4R’%™¯‹ 5„ @€ @€ @ ‡@£F󂈤 ¹¥D£X(ʧ2ù¬!@€ @€ @€ @YÙ¼ "Bç6oknŠÄ"-’-ÏÇ€ @€ @€ @  (Ñ‚dqQJ4J¦; b‘T%_Š îT€ @€ @€ @ 8ˆ(%)oˆ4J"ŒJËJ-Ç.ÇyH‚ @€ @€ @(0Š<¤`¢8ˆ(%ÅÃÑéýà @€ @€ @€Š‹€‡´ÄADiÑhî\Fªv<†]qa 6€ @€ @€ @ á‚‡@¥D#… !5ÜNBÍ!@€ @€ @(~ù´ ”h¤0$)J2_?j@€ @€ @€FæIrK‰F±P”OeòYC€ @€ @€ ²²yAD…ÎmÞÖ܉EZ$ %[ž5 @€ @€ @€@P¢Éâ ¢”h”LwÄ"©J¾AÝ© @€ @€ @€@qQJ4RÞi”D•–•Z<Ž]Žó@€ @€ @€ P`$)xHÁDqQJ4Ї£Óú‡A€ @€ @€ i‰ƒˆÒ¢ÑܹŒTíx »âÂ@m @€ @€ @€@Ã% ()€( "J‰F AB,j¸„šC€ @€ @€ PüòiA)ÑHaHR”d¾.~4Ô€ @€ @€ 4Í "’6ä–b¡(ŸÊ䲆 @€ @€ @(<eeó‚ˆ4 Û¼­¹)‹´H@J¶<k@€ @€ @€ " 4 D ’ÅAD)Ñ(™î(ˆER•|)‚ºS@€ @€ @€ â ¢”h¤¼!Ò(‰0*-+µx»ç! € @€ @€ @ ÀH(Rð‚‰â ¢”hG§ôƒ @€ @€ @(. Ò¥E£¹s©ÚñvÅ…Ú@€ @€ @€ †K@PRQD”‚„XÔp; 5‡ @€ @€ @ ø äÓ‚R¢‘¤(É|]üh¨! @€ @€ @h85šD$mÈ-%ÅBQ>•Éd @€ @€ @€ PxÊÊæi:·y[sS$i‘€”ly>Ö€ @€ @€ @E@ h@‰$‹ƒˆR¢Q2ÝQ‹¤*ùRu§ € @€ @€ @9ÄAD)ÑHyC¤QaTZVjñ8v9ÎC @€ @€ @€@P¤à!ÅAD)Ñ(ŽNè@€ @€ @€ P\8¤%"J‹Fsç2Rµã1ìŠ µ @€ @€ @ —€4 <¤¢(ˆ(%) ±¨ávj@€ @€ @€@ñȧ¥D#…!IQ’ùºøÑPC@€ @€ @€ Ðp4j4/ˆHÚ[J4Š…¢|*“È€ @€ @€ @ ð”•Í "Ò(tn󶿦H,Ò")Ùò|¬!@€ @€ @€Š€@Ѐ-H5™={v¦z.IUJ¦>²²Ò2Ó?¬0¸à·ia”œRŠíWØý€ö£ý ›@a—žûö+l…]zî?Ú¯° vé¹ÿh¿Â&PØ¥çþ£ý ›@a—žûö+lõ«ôŠ4ŠmÖìY&m¨É¬Y³2饥¥s×I„ÑìÒÙ6cæŒ)“zMÀšq›ÖëS¸Ú/…£à>Ð~×d©Ó~)÷ö+¸&K˜öKá(¸´_Á5YªÀ´_ GÁ} ý ®ÉR¦ýR8 îƒÚO†ÿ¥àš.˜ö+ÌvóRÓ~N¢0×´_ýj7 )Ú¨¤¼$¬tv©é_“-ZdJÚ¤I“ÌvãÆ­e‹–á L"õš€”ÁiÓ¦YܦõºÀ.E€öKá(¸´_Á5YªÀ´_ GÁ} ý ®ÉR¦ýR8 îíWpM–*0í—ÂQph¿‚k²Ti¿Ž‚û@û\“¥ Lû¥pÜÚ¯àš,U`Ú/…£Î?,Öt±DTV>'â¨Yóf!ˆ(5§‘”>)K2Wýê¼ä€ @€ @€ @ Ö¸¢q”ü“¥D#W‡XTkÌ9 @€ @€ @¨wòiA)ÑHaHiäëzW @€ @€ @€ °À5šDäCÔéd)Ñ(Šò©L \„ jèÒ¥‹­·Þz6|øðÔqŸ~úiHïØ±c*ÈEà»ï¾³~ýúÙÖ[om:u²-·ÜÒŽ9æûñÇíïÿ{èK\pA®CIƒ @€ @(RšcÊ5!Bç6oknŠÄ"-Êœly>Ö€ T@@âL÷îÝmÿý÷·™3gVsÑíúá‡By{ì1›8q¢µnÝÚ¦M›f#GŽ´å–[nÑd\I"˜„ÖÎ;Û¸qãÂO?ýô Š]ýõ‹ \€ @€  %Z,"J‰Faª£D,’ªäKáT‘’B€êŽÀˆ#l„ A;vlÝ$ºòM7Ýd?ÿü³µk×Î^~ùe2dˆ½ûî»öøã[ãÆ£œ…¿yÑEÙï¿ÿnÇ{¬­¶Új¡B}ûöµ%–XÂn½õVûä“O ¿’Ô€ @€ ,qQJ4ÒµB¤QaTZVjñ8v ¡œ€À"%Pþðmf70ûéûEz].Ö0üéO²ÕW_=D»¬±Æõ¢ÒC‡ å8þøã­M›6a[?|»^² ñä“OÚÿþ÷¿ iè=7EVtÒI6{öl;çœsRoÍxÖ€ @€ @ !HÁC &ŠƒˆR¢Q<Ð? €@Qý¹•<”ˆF¯øà ¹/H›9KÍôñǧêãûjÊ9uÒ<†n?ü°©-ܶß~{ß´Ž;Ú£>šù\ÑÆ‚pðó}ñŽDµÃ¬Y³|Wj½Î:ë„ûÿûî;»ûî»Ãpsß~ûm¸¿VXa[uÕU­{÷î¶ãŽ;ÚÊ+'"ð\{ðÁÃÖvÛmú€§ÇkÝgƒ 2 ×§~PlÃóÅue€ @€ T…@>-(%) IŠR2¥Q^Ç`U.F@õ’@ÏD ŠE#/ä°WÌ>nv@²·=5çZ‚‡æHùý÷ß3ûõÜ3fLX$\Ä¢Ñûï¿ ·jÕÊ4ÏÊ?þœâ:ßçŸn}úôÉœ¯.6$¼øâ‹vÚi§ÙÌ™3ƒ0Ó²eKûõ×_M"„•uàÀóoܸqvÈ!‡„:©~›m¶Yxá“O>±‰'†üRäø—³?{ø°ùNXI‚ˆ?üÐ4OÄ*•SçTºê ±äºë®³•VZÉŽ>úè§Y³fAS}Þyç°|óÍ7áÙ—[˜mVÎÙåÌ÷yĈöÃ?±O‚L"šÈÖ\sͰ®ì¿špˆû’æy’ 3yòd9r¤¹ ¨6SIès{÷ÝwíØc ªî+‰‹5 B¤ú™ú †ÜëÛ·o8D‚­ÏÛôç?ÿÙO3ßZBá2Ë,c¿üòKÈ/ ƒ @€ @ ™€|.î³”6ä–‚`4wgöŒ¬!<Ö+™mºÙ;¯Î_•dÈ:»ëê9sÐ?ñ¬·Ÿ/„¡^½z§·œðz6Úh£àÔ;vlˆŽäd×w‚D–n¸Áî½÷^{öÙgm=öu‰ËÖ¯_¿ m³Í6ATR•Lu”sÿ¹çž n¾ùæø°mK ’që­·ÚlÎõå—_ÚÙgŸ¢|.¼ð $©,W_}µIPp%aé‚ .‘Gª×¾ûîD¼¸0 ³ÍjÂ9.cEÛGu”iQD›G\]uÕU¶Ê*«TtØ|û”Ô)SB»K|ìÝ»·x≙QE¤²=:”‡~xêºçŸ~(·¢ßN?ýt[~ùåÃþ3fØ{ï½g/¼ð‚iÞ"7 ®¿ý–Ü»‰Åâ“ï÷µú²ö+:P¢‘“Y°µ~#–•%ã'¢–xÛ?+möìÙ©}žÏ÷y^E¡éyѤI“ùΧsx>­µxZE¿Uãß´ÙµÔb]K‘‡ZëÙ µ/ñgßV^Ïïk?GüYçÆ @€ @…@@Ÿ‡¿Ÿ“ "Bç–”¨?Àµ(s²eÉhvž—5 Â'ÐãàÜ¢‘×lôçfgbÖã ³ýM Y'Ç»›r¦kø¬8b¦mÛ¶aˆ:Lütr8JØÈ6 ±&¹¢$9¡Š}öÙ';Û"û,§mûöíí–[n ŽS¿°"§Î=÷Ü Ä¸Ó^˜›¢?ä„—£ô¢‹. Ãîù>¯£ýŠþQ=YR¦ëÝqÇ©áÈÚµkgW\qE¶$©}ž~úé .ù5å¥vT$nh¾82Lùf›-(g/ÿ¢\/(‡çŸ>Dâ­µÖZAd÷Š4“ØzÊ)§Øý÷ßo±h¤( ‰IÊß¿ÿíæõU”T×®]ÃâiZkØ?™úék¬¶óý·ñÆÑÈÉ—¯>§ëÇœÄ8-Ò´ÄŸ=Ý×Ú¯>çù´½H€Q~¥çÚVšö)okå& çŽG6Vg­¼zfÆÇ,µÔR!ÚNQrº1@€ @€@mP¢Éâ3S¢‘"e”ªäKm‚sA¨U3g˜Íši¦uØÖ:ù))Û$ìIø{ýõ×MCÔUÇj£Í„suʸ(òVÄaÔ¨Q¡ŠËu¡9•d5ÌãK,>kþ,9ÆI¢ˆ¬N:…ôŠþÓœb2ÍwT™­¶Új!‹ãùÿõ¯ùfÖúq¥²»ø"a%Yü³Öž/Žšñý:Þ#qqº>K\ÓâpµU®%—\2H²Q"’¯õôm­µ(/@€ @¨ Í "šÏ;¨?Œõ¯´,n$Ç.KªÎEÈ @ R+sÒOV2y¢•'k›ÿÚ:lR¹h¤³kȺÑèƒ>N[½ ®9{jËäà“) ®Í‡2ËU{þøãÔn9·e‰h¾ONïÚ2’.×ù\4rq"_¥g×'WÞì´š¶Ù‚pÎ.C}øœƒ÷ ELä2ïÚ÷ ‰F;í´“ <8ÌEuÆgØž{îYaßRD™LNôÊÌó(Z0«tœ"‹ÁÄV‹ØçZKxÑPjÚ'ÑEkZÍÓ=>g/Ú§c´Öñ¾HÌqAGû|ÛמOkOÓZ‹L}Fí’©Yˆm2}úô0Ä¢†‡Ô¢gŒê¦µ§ùçxŸoû1ZÇ&J‹†B­ÌÄY÷§ú¼æ™sQ_Ïqßö¡+;û!@€ @ x x‘ë@®¥D#‰En:€¡éœk@ Ú’HžòI?AHÂPQ(l¡(ÙþåçpÚyOžyDY¼OŸ=]ÛvW(K IDATÚbM%£™•$KY²]Ò´¹YHKÒ%UÕÚ®r~ûí·a­hwtVõï¼óŽ=óÌ3öᇚÎ#ç ÞH¯oæó-å*—œ²8TUŸ}H0Õ+Û¯ýJsvk¯½¶’jÅ*rxzô‹¹.èm˜]Ï»0ÛlA8{¹õzA8xŸÈ7 œæ!’© ³£Åþþ÷¿‡ûCÃ6žwÞyvÍ5×áHsåê?r¾Ë*jë!+òá¤ýš›¬6L‚‰/.Æøçx­}º§,ÔX ~Æ}eåß$CQMœÄ BŠ Kâ´Šž|Û™k7KDe[›µjmåɺ$YÛâKZI’^Ö$}µ <ÉvX'NR[,I›+I ²&IZ².—H¤ôÄ$:Å×¶?Áèðmþ ÿk™ ™Õó¸9s%Ý!§H£ªš†-êÛ·oŒtŒœÞ[o½up&Êá+{ùå—ÃP\áCþçéêaÝu×µõ×_?Ì-£9.¾øâàÌÖy$ŒiŽ!­å”Ïåô¯îõ<¾(߯µêT][Øm¶ œ«[𿝠‡]vÙÅ®¼òJ9r¤ýûßÿ¶ƒ>8S9·¯½öÚð9×^rn»í¶0××ÝIôæúÒðqZtïœ}öÙ©~äâ_UÚÚóêâñoœÃ;Ì´`¨o-¤eÍ5׬´hO÷—/.*ýüóÏ6a„Ì"!_¦ç²}õ³/ ¿\TÒõ%·mÛÖ4WÃßeÓâ3 @€ Â$ ÿˆþþË,s½¨)ÑHáG±#¥0«J©!Ú$P’ÌT>6†¾ù2™„$Y´›,¿ý:_PÎëÊq/hÙ‚TÞjù$,`Ž8dË&ÛaßÈEžùDÏTÁ:>>;[ù³¤E¤ì ú¼é6fGœaÖz¥Ì^‹ª3ŒÜ-·Ü#9ÂÿùÏZ·nÝ2çó 9ì4K!Û%—\b‡z¨=ù䓦È~M‘Uš·FŽÇ«®ºª ªØPÚ¬²Æ¨ E{î¹vÁ˜„ć~ØÚ·o¢ÎÔ?-¡!O<ñļÅ@¤Eýç°|0I:þÎ;ï´7Þ8ëFrWfq¿Ÿ+;†ý(zAQBE2ª.bIó¿ÅŸ]TÒßž>bĈ†å–[.H‘$(iî8E,Ãð‚©Šò€ @€@‘ȧ¥D#…!y¤QX9ªd?:B™¢D*ÿaΰlY93KV[ÛÊW\eN”‹@ŠZfù9ÑBKÏ¢GP][ÉÓÿÎ_„åÛ˜õ`Ö1™ó(Ë$|È4Ÿ„«ðYYæûøŸÿü'¤sÌ19#ítÝ|PB‡‚#_ÂѤI“Bô”æ(ÑP~Ç{¬yä‘U>¬>T¹¡´Ye¬kÊá€}[b¡î™/¿ü2 ŸÖ®];Ûc=Lû5tÖYgÙQGe§œrнûî»6`À{üñÇá.)º¢2ó<ÊH‰Êh±¿X è%݇ZrY¶¨¤FmcÆŒ ‚¯ŽQô’–áǧN!ÁÊ…$­+ºNê@>@€ @€@Ш,.IrKylb¡È3{FÖ€@ˆ‡–K„¡’±É0sŠ&J†”“åw‚8´êšV¾êZV²ÚZfZ’í\yuŽŠ¢}´¿Nì•§’ùŒæ Í“}ýòžÇZÉn…!ñ²÷é³Ïy¢¹Pä(ëÒ¥K®l©4½Á-[o½õRéþAóN|òÉ'þ±`׊N?ýô0Æ=÷ÜÖ…Z™†Òf•µOM9è¹îºël»í¶³†9^*»fEûÙpùå—Û;ì`šIs)ZÈç¶úî»ï*:<ìûþûïÃZñïJ$ŠD%=ë% }óÍ7ADúúë¯ÃÚ‡oýñÇM˰aÃ2ÄZ¶l¾?;wîl:u ߇ñP‘™Œl@€ @€À"' —¾=ˆH£Ð¹¥D#%J,ò·è“­Äñ[/]¿^~Ö€@%Ê“áå}þÙ§ï[y²äZ.~*‡ ú‰ðà­óÓêDõ¾ÐJ¢¡èæÏdaÈŸ®]»†9V4Ôœ†Èª,RBη)S¦„!¶rsРANTžë˜ú˜öÈ#„y1Î?ÿü‚ŒÄ¶¡´Yeý¨¦n¾ùfÓ+}úô©±`äeÕ,2ý˜ñ{oà 7 iŠz?~|/$äøï½÷Þ ©ŠŒÃ êhÕªU˜“o“MÒѸŠ$æj8;‰J.,IÜÕ‹o¾ùfXtÅæÍ››îÛ 6Ø Ì‡§—*Ö®úmÁ€ @€jƒ€|,<äk7%I RF©J¾ÔÆÅ9 ° ü– Ó$è“D úl„•|õIÎh ¢‡ráý¹ÙÄ óö´\ÂìÄ Í6ë>/­’­3Ï<ÓzöìÞ¢>þøãíÔSO N/©òrš½ñÆ6}útûë_ÿÎ$‘é¹çž³[o½5ÌÁÒ±cÇ.!é¾ûî³›nº)ˆ,QÉåëín9eo¿ý¶í¸ãŽ!ú£Pß$o(mVYgª)<2dˆ­¼òÊAŒ«ìšK÷ÕÞ{ïmÛo¿}jHC9¤5G’l‹-¶0 1'Ó\I¸t¬æ]Ñç|öþûÉ311Ÿs+_>Ò!êPÄŸ„ŸlñGCÚ}úé§aQT­æïÓw¤"‘<I°D$‰G¾´nÌsˆA€ @€À"%¤¹AD)ÑH¥‘FÉÎÒ²RÓ8vqXÒ"-%ƒªD DBˆ"ˆ¾øÐÊ?i6ú³p\*"h…•ÍQÓñOfíá"V.•¯JW,ÐLb ¡HÃÓív YÏãòE—¯†ŠP¸æškÂ+¯¿þºiiܸqxnJ8’ÉÙí¢‘æ`‘ôÓO?Ù¾ûîkbK“•kè/å?âˆ#‚“»oß¾ù.Yéròßÿýöüóχ%.´ê«ù ºuë•VZ)Þ]ï¶J›U¾¦t|ðÁvíµ×†%¾ž†«Z}õÕm§v ÷€†™“é÷‡æ,Òrî¹ç†ûEy'Ožœ™ûKTÿþý3§“8©¡"_yå• Zj®¤\&ÑICkɶÞzë\YHƒj™€æ5Ҳ뮻†3ÿöÛoöÅ_ØgŸ}–’t+ Ð#•Q‘Lwµ®H®åâr:@€ @ Ž€¹äZPJ4Òptn:€¡éœkÔ#ãG›JÄ¡Q%BÑH+ÿ&™‹(ÛVik¶ÎsD¢ŽÉÜ;• ½–}xQ~^|I³½böÓ÷5â±óÎ;‡auî¾ûî )JHÎn½i-QéÐCÍà[k­µìÑGµo¼1 k'瘢"6ß|s;è ƒBTŽÞÂ.t“p5Ö°>Júd–iˆ²qãÆÙƒ>hÿýïí¡‡ y³²Õ› ¥Í*^jsEÞI$•`šmŠLSŸÑòòË/Û<"‡toHdR?ùøãÃпüò‹I8Ò|(šI÷Wv4Ã~ûíD£—^zÉä”^rÉä^Ï2 ¡(ÛtÓMmÍ5×ÌÚËG@`Qн)!(ÞîË/¿ B’„]_4'š–Ûo¿ÝÖYgŒ€$!I/j`€ @€ P{$i‰ƒˆJ’a’2JÑõ¯\o¾Ðf—Ͷ®m»Úà^ƒ™,ºöø/ô3)rAãÇg;Ôú…¹@­ÈÛ~3¦›}ð–•Œfå7÷Õ|×+i»®•¯ÓÉl] EˆDóZ yÛo\»./qÅWØ]wÝ„°ÓO?ÝÚµkgq䈆)Ó°DŠÑPE{î¹§]yå•uYäœ×n¨í—F %vØa¦¡à$ð(âh•UVÉÌATZZ"‡Þzë-ÓXúκøâ‹MÂÏ‚šÚNb®ÄIE(y¤ŸŸOÃamµÕVAPºþúëƒXëûX×Üõ£´µÙ~zCц´ö¡.U¶VX!#:I@ZvÙe´È¨Íö‹NËæ""@û-"Ð é2´ßB»ˆNKû-"Ð é2´ßB»ˆNKû-"Ð é2´ßB»€§½qèÖÿ™þAê¶f7{ö„gçÌ%ŸOáGñ„Gñ>¶!EH`òD³ß¶òD,j$±è—Ÿ£8Àd§µ;XIû ¬¤ÝV¾^g+'’h6—rŠ’RÄ•y7ß|sF,òýŠXUôÈf›mæÒg~ø¡ïf]„ #EwÞyóÕPQŠÊÛ}÷ÝÃDšÛkäÈ‘54DÝ‘Gi °{ï½×<ðÀÌœG*€¢ý¤#• ƒê/ aºÇ{„Eóÿ¹€$IC»<8,z9Á‡°ÓZÑ® @€ T@>-(5<Âää“w:¬«w rC ( hx$EoùÄë ­’ߎ±ÅÞ{Ãì³d~¢‡™Íœž nG+_nE+ÙðÏVÒùÏVÞ¾³•,ß&#&¸Ð ʼnEàðz[¢®†Îùúë¯MÃ~UÕ4§ÌRK-UÕì9óM˜0!¼h è‘N8!gO”óO¦aË4¿E®aËÚ¶ÜrËÌg6 úE@ßQzµè{Æ£4ÿÑW_}†ˆÕ¼² 6Ø ˆHÊ«ï7 € @€*' q]8’6ä–b¡È3{FÖ(FrÈêÍt™ß­[·ùª¨±öõ¶ü¿ÿýïùöÕJ—‡¡ç$5úd¸5NZ²ÚÚV¶Á¦‰P´yŒ¬Éb©h£(+› ™€†Ò*6«®QQýþùgÓR“°%A¡:öûï¿1 :Ç4ä¼ï¼óNW_m\Õv–ø¨¥¶LÃÔiɶì9·$a€@aÐ ŠZÕ"Ó¼gŠB’€¤VE,jQô¢„£m·ÝÖºvíZ•£”€ @€ꈀ|ãD¤QèÜR¢‘%iQæd+‰tP¬â$ ¶†:yøá‡í¶Ûn›/šaèСáíV©®µfɰsz®$ŠÊG–:mY»NÖx㮉X”8EÖߘ»/E§î><ñÄ•^\ÏMÍâóùTz@d£¿W¯^áÑ<2š¯¨iÓXú´Q¤ûë¹çž óÚ 8°^#ÔÛoatÁ—_~Ù®»îºphŽ«.]ºÌ¹,1þŽ;îTŠJù›5kV£âÐ~5ÂÇÁ(8;v4-šCMóåI7š¨<Цµ^% ¡„T[säµy†öíÛWz:)óÓ¦M íWiæ"É .çœsŽ]rÉ%!bï±Ç óÆ,³Ì26cÆ ûöÛoâêÊawå•WÖÛáÀbû-Œn¸îºëš†¨{öÙgíâ‹/¶Ö­[Ûj«­î EŒ}óÍ7¦çªLÃèýóŸÿ ûkZÚ¯¦9…K mÛ¶¦eŸ}ö±aÆً/¾h°Q«%Ž>Ò0v @€ ÌO "J‰FÊ*EIÿJËJMãØÅaIóŸŠ>9¾{÷îmŠ€ÐÒ¯_¿L¥4äÖ‚ŠFåÉøû%‰PTò¿—¬ü­D0r[|I³dÈ9Kæ(ÒRÒz¥°§<ÕÁs±†@A8äClã7¶Aƒ…¡‚E"Á¨yóæáÞÙ~ûím«­¶ QH-[¶,ˆ:QÈ' zŽöèÑÞ|òÉðÖ¿†…Ó|$ŠÂÓÜTê;î¸cBªV£8¼Ø  ÂîÐC ‘$½À —´h¿†®SôQvdl‘  € @€ªLÀˆ\r-(%I,rÓú‡A !Øc=ÂÛ¨ÿýïÃp'fK¦7â×[o½ê#øvŒ•\yºÙwßÌ»«:üɬëfÝv4[jÙꟓ# PO h ‹.º¨ž–ŽbÕ‰…Z0@uA`õÕW·Ã?Ü>ø`{饗‚€¤9‰¤%Ž>ZsÍ5뢈\€ @€@½ ÁHKD”’(#‰EòrÇcØÕ‹ÒS,d}úô1EIÜxã¦è#-“'O¶¥–ZªúW^¥­ÙfÝÍ^|,Š‘HbQ2 @€ °h(šh×]w Ëûï¿Ä#‰HŠ>º÷Þ{òï¾ûšͱ†A€ @hH¤…à!EADb ?B,Љ°]ì†Þ6U=5»¢%ä`èß¿¿ýöÛoö믿†ýšhùú믷ÿýïaÞš*q9¸·Ù?ÑèØd¸;£*!# @X4”êé§ŸnwÞy§}ôѶÖZk…Ë<úè£Ö«W¯ð{Osb€ @€ |ZP*ÒHaHiÖ …õlpþøã»âŠ+ìµ×^ ó®pÀ¶Øb‹…·LÏ9ç;÷ÜsíÊ+¯´Ù³g‡¹XÆŒcO<ñ„ýç?ÿ±&Mš„!ìºt鯯×Äï9MQ{K.s‰€ @‹ž@›6mLóñiÑUÒÔ©Sí½÷Þ³wÞy'Œ‡/'CÇŽý0Ö€ @D`ï½÷¶vØ!Gô’ÐÀÃ0v¶Új«ª E… @€ P=eeó‚ˆ4 [J4R¢Ä"-’-KF³ó¼¬!P|ðA5jTp l´ÑF9ëtÄGØgŸ}f¾NK·nݬeË–¶å–[†EI|ÒPv @€@aXrÉ%MÃï¸ãŽñhĈ¦¥{÷îa¾£N:få(5 @€  (Ñ‚dqÑ<ù(Ù!H¥*ùŽà?¡C‡Z‡,Ÿ`¤ª*Âè¼óγ֭[Ûe—]fßÿý|ŒæCB @(H+¯¼²õîÝÛnºé&Ûi§B^yå;餓ìºë® CØdÅ(4 @€ *ð "eM‰FJ‘FI„QiY©ÅãØib 0eÊkÞ¼y¥UYzé¥mÀ€6cÆ ëß¿ˆ,ªô 2@€ ,öíÛ[¿~ý쪫®2 Y,{üñÇÃpÅwß}wøÌ€ @€Š€)˜("J‰FŽÎMèb#°ÆkØÇl¿ýö[¥U[o½õìÄO ‚ÑäÉ“+ÍO@€ Â'Ð¥K»ôÒKíüóÏ7 O§ßÿú׿ìì³ÏÃ~ © @€  C ŠƒˆÒ¢ÑܹŒ+Ãx(Dúã^óM˜0!U| 92}út»ë®»Réñ‡_|Ñ~øá‡´×^{Ùm·Ýf+®¸bœ…m@€ "'°ÝvÛÙõ×_o'œp‚5iÒĆ f§Ÿ~º=ùä“E^sª@€ ;i@!xHDQQJ4RbQ±w…⯟ú°ÞÝÿýíŒ3ΰC9ÄâáDôÇ¿æ4ÒP#‡²í‹/¾°ÚÓO?ÙÕ¬Y³Ì6€ @ ‹@Ïž=íꫯ¿!õbÒµ×^k—_~¹Mœ8±a ¶€ @€@Ñȧ¥D#…!IQ’ùºhP‘A@]‚Ͻ÷Þk=zô°³Î:ËÖ]wÝ "=úè£A£FÂP#Ë.»¬]vÙeaßÔ©S­¬¬Ì† b§vš­´ÒJvÐA5fT€ @ r;wÂÑÞ{ï2?÷Üs!êèµ×^«ü`r@€ @¨gä'wáHÚ[ßÐ:ŠÃÕ=üðÃÅ.@€ @õ€©d)ÑH !Ò(‰0*-+µx;íà Pß ´k×Κ7oŠùñÇ[ß¾}íC±>}úØ6Ûl"ô½†Á @€ PS‡~¸]rÉ%Ö¶m[›9s¦ÝtÓMvË-·Ôô´@€ @`¡ð"ÅAD)ÑHÃѹéýà PWžyæÓs¹lÊ”)¦(¢¯¾ú*×n›>}zˆ(êÑ£‡tÐA™<›nºiˆ.ÒÜG–ƒ @€@M tëÖÍ®ºê*Ûn»í©|ðA»æškjzZއ @€ °P (pHKD”šÓÈç2’va·PKÅÉ!ƒÀ»ï¾kW_}µ >6 @€ PÎ:ë,ûË_þN¥ß²úŒA€ @¨oòiA)ÑHaHR•d¾®o¡< ‡€æ!Zgu˜ðŸ|ò‰ 6ÌÞ~ûm8p qĦ¡æ=ôÐ0nü’K.Æ’ÿòË/ íkÔ¨‘]zé¥!êèÙgŸµÞ½{Ûª«®æ6j8©) @€À¢&pÊ)§˜G¼¿óÎ;vâ‰'.ê"p=@€ @ÿÜ…#iCn)Ñ(Š<³gd EM iÓ¦a^¢-ZØÅ_lo¾ù¦í²Ë.Ö¡C‡TQ4éð€LC×]qÅ¡£·k×ÎN8áûé§ŸÂ c^”¢“7nœ:ž€ @¨mǼvØaá´zêðïíKp>@€ @ L ¬l^‘F¡s›·57Eb‘ HÉ–çc :!ЦM;çœsl„ aXºe—]6g96Ø`ÛgŸ}L‘FŠH’í·ß~vçwZß¾}Ãm”ÏöÝwß°KC€¸) içw¶u×]דXC€ @`‘èÑ£‡)ê]¦y7wÛm·Evm.@€ @ *â ¢”h¤ƒC¤QaTZVjñ8vU91y PU÷ÝwŸ}ôÑ6räÈ*¢·45OѨQ£ì¹çžËyŒ¢’š7onS§N͹ŸD@€ Ô.]ºØ=÷Ü.=mÚ4Û}÷Ýë¢\€ .’#€ IDAT@€@†€)˜("J‰Fñpt:@ÿ0, ;ì°C*NsMš4©ÒKhR®óÎ;ÏVXa»îºëlôèÑó£¡é¦OŸæ.šo' € @¨C«­¶Zæå§?þøÃÎ>ûì:, —† @€ `!pHÁCqQZ4š;—‘`ÅcصA`Ö¬Y™Óø\EŒ.ºè"+--ÍìË·±ÔRK™D¦Ù³gÛ™gžiŸþy&«Æˆ×¾•W^ÙvÙe—L:€ @¨/š6mjƒ ÅÑ<œŠ¾Ç @€ Ôi@!xHDQQJ4RbQ]4Oñ_sÈ!ö׿þÕ~úé§Le7ß|óöÁØm·Ý–I¯hc½õÖ³Þ½{ÛÏ?ÿl½zõ  krᣎ:Ê_|q»öÚk­E‹‚}€ @¨3+®¸¢]qÅáúwÜq‡½þúëuV. @€ 4\ù´ ”h¤0$)J2_7\dÔ¼6 (JH‚‘G ù¹;ì°0WÑC=dC‡õä ×{î¹§í´ÓNVVV"‹4F¼þð¾é¦›ÂðuÌN@€ Ô1Í6ÛÌN8á„PŠóÏ?ß>ûì³:.—‡ @€M ã‘´!·”h EžÙ3²†@Ml²É&vÄGØÇÄ?WÐ<;v´É“'ÛÀ3oùÕç2S6@€ @ 8 (Ñ‚dqQJ4J¦; b‘T%_Š£úÔ¢>P'Ô[”+¯¼²]}õÕ6zôèL±Ú·oæ*3fŒ]uÕU™ôŠ64¼' € @…H@¿Ï:ë¬07ç[o½„£B¬e† @€ ›@D”T­i”D•–•Z<Ž]aW™Ò×K,±D˜×HýLQES§NÍm=ö°wÞÙ^~ùå”ÙÁ @€Š”Àꫯnýúõ µ{úé§íî»ï.ÒšR-@€ @ >P¤à!ÅAD)Ñ(ŽNèÚ& ¹ˆúôécãÇ·+®¸"uúSO=5ÌUtÓM7…ùR;ù@€ "$°Å[ØqÇj6hÐ 5jTÖ’*A€ @õ€‡´ÄADiÑhî\F*x<†]}«å)_}õ•ÝsÏ=öðÃÛo¿ý–)ø.»ìbŠ,:t¨éc7ÍU4`ÀkÞ¼yXk|w € @ÅNàÀ´M6ÙÄf̘a<ð@±W—úA€ @uL@PRQD”‚„XTÇ-U$—W?ºñÆí˜cޱ»îºË9tôÑGÛ÷ߟ©aïÞ½MsÝ~ûí6bĈLºæ<Ò'N´n¸!“Î @€Š™€„#Ù!CìÅ_,æªR7@€ @ Ž äÓ‚R¢‘¤(É|]ÇåæòJàÚk¯µÇÜŽ?þx{ðÁí´ÓN³I“&1hÚ´i¡VM›6 ÑDšç袋. "‘W·[·nvÆgX¯^½<‰5 @€Šš@—.]l¯½ö uT´Q<ÿgQWœÊA€ @‹œ@£F󂈤 ¹¥D£X(ʧ2ù¬!À /¼`šÄ÷üóÏ·ž={Ú +¬†¢;ñÄí›o¾±«®º*sèŠ+®hçwžýúë¯A@š={vfßn»ífË-·\æ3€ @(vŠ6Òo௿þšaꊽ±© @€ê@YÙ¼ "Bç6oknŠÄ"-’-ÏÇU& yŠvÞygÛzë­3Ç|ùå—áÞV­Z…á6yä‘̾M7ÝÔþö·¿ÙG}d·Þzk& @€ 44mÚ´1¦NÑFŸ~úiCC@}!@€ E@ h@‰$‹ƒˆR¢Q2ÝQ‹¤*ù²ÊÆ%ŠŒ€†šëÓ§O¦VÇ·“O>Ùºwïn÷ÝwŸ­¾úêvË-·ØÈ‘#3y$í´ÓN¶ùæ›gÒØ€ @€@C$°ß~ûÙFmd¥¥¥D5Ä@!@€ °ˆ ÄAD)ÑHå‘FI„QiY©ÅãØ-â2r¹!0a»ôÒKíÎ;ïÌ”X¬Y³fáó¨Q£Âðs…N8ákÑ¢…uÔQáàØäÉ“C>Ó¯_?Ûd“M2ça€ @ •€†y–½öÚk6xðà†ŠzC€ @ ‰€|ò R0QD”âáèt€þaÈG@sqÄöÆo˜&ÍÊ6 W^y¥uíÚ53Ćò¬½öÚÖ²eK›>}º)*)}Ë>Ÿ!@€ Ð è7t=BÕ dS¦Liˆ¨3 @€ ° (pHKD”òôËy/±H†#!¶Dœúí·ß¶Ë.»Ìºtéb÷ß¿~øáóÕjôèѦ¹Œ¶Új«Ô¾Ï?ÿÜÖ\sM»á†LCoxŸKeâ @€88À–^zi;v¬=ûì³ œÕ‡ @€j“€ëA!€( "J‰F AB,ªMìÅ{®o¼1D ]xá…¶Ì2Ë䬨÷% LnÎNóm¶ÙfÖ¶m[Ûb‹-|k@€ @ "°Új«Ùn»íR^~ùåh›€ @€jFÀý÷Ùgi'( )D}”Ñ1¶S&NœhãÆ s5nÜ8µ/þ°ÖZkÙúë¯oÏ=÷\Š®uëÖa}zÍNÆÑ€ @€@ƒ'àD &ŠƒˆR¢Q<Ð? ¹4mÚÔ.¾øb[zé¥í’K. ó}ðÁööÛoÛ™gžiÏ?ÿ¼õéÓÇ4;@€ ÔŒÀöÛooÍ›7ÑþDÕŒ%GC€ @s(pHKD”æÎe¤ìñv„@.«¬²ŠÝ|óͶá†ÚSO=D¢¾}ûÚøñãíÒK/µ=öØ#×a¤A€ @Õ$ЦMóh#D£jÂ#; @€ 0i@!xHDQQ“8§B‹b"lWF`ÅW´üãöõ×_ÛØ±c­U«VÖ©S'kÔ(¥GVvöC€ @•Øn»ílðàÁöÎ;ü;wî\Éì† @€ ›@>-(åÙW’%™¯sŸŽT¤ ¬µÖZ¦ zu„`”fÃ'@€ Ô.]ºd„¢×^{­6NÉ9 @€ J@~|ޤ ¹¥D£X(òÌž‘5 @€ Ô--·Ü2àý÷߯ۂpu@€ @   ”•Í "Ò(tn󶿦H,Ò")Ùò|¬!@€ @ Ž l°Á¡úóÏ?¯ãÒpy@€ @ P  (Ñ‚dqQJ4J¦; b‘T%_ µÂ”€ @€@±hß¾½­ºêª¡Zï½÷^±Uú@€ @u@ "J‰F*Kˆ4J"ŒJËJ-Ç®ÊÉ%!@€ @ ‹€G1D]˜¹gÍšeb´ÞzëÙŸþô'+-- {ò¥ç> ©Ï>û¬m¾ùæ¶ÕV[Ù§Ÿ~ºP¨mn¾ùfÛe—]¼]ݺu³óÎ;/ø'6Ûl³Ð–;v´iÓ¦-Ôrpòº#ïþÌ—^w%­ú•?úè#;öØcm‹-¶°6ÚÈöÜsOÓsû_ÿúWèÓzF 8°ê'¬ãœùÚB÷åa‡î]Ý·b={ö´wÜ1N*èmõw}{î¹]b)üŒ3Âo¾³Î:«Ò*©/n¿ýö•ækh$)xHÁDqQJ4Ї£Óú‡A€ @€@ý!‹FS§N­?«'%‘À!禬S§NÖ¸qã°/=ìä¿ùÜ}÷ÝöË/¿ØO?ýd_~ùå|ûk3áâ‹/¶ë®»ÎÆŒcrMš4Éš5k>O™2%\juÖ±-ZÔæek|®ñãÇÛÖ[oÕA&ç¹Ä€þýû×øü éùîÏ|éõú²úÂСCí矶éÓ§ÛW_}"E?üðÃLñ7ÜpÃÌv}ßÈ×ï¾û®½ýöÛáÞ6lØUã™gž±n¸Á¾ù曼ÇK`Ó½%1[|ßyçðYÏùï¾û.ïqÙ; dßÿ}vr?ñÅ&ÁûHëõ×_eM%ÖᇅQ=·%üÇC[©Šú.þì³Ï uXåZ½ôÈ‘#ÃË(z)¥P-_{U·>?þ¸éÅŽO>ù¤º‡ÖZ~‰óêg;w®ðœÞ³óé»ZBÒìÙ³+<>{g}»¯³ËWÝÏ Ò¥E£¹séÄÙ7zu/FþB`Ú ¤¢T€ @õƒ@—.]BAô®uXšÀˆ#2 ±C6_z&3)=zô°ÕW_=¼!¾Ã;¤öÕæ‡ &ØÃ?N)Q¨_¿~vúé§ÛAd|ðAæRÙŽžÌŽ:Úøý÷ßí¨£Ž²ü1DcsÎ9¡$»í¶[X?öØc6yòä:*]á]6ßý™/½¾×ðŽ;î°?þ˜ã/‘°ø÷¿ÿÝÔGZ·nmqê[¿®ˆk\îøÙêQíÚµ³3Î8£¢SäÜ7nÜ8ëÛ·oòù"ÿýïÛm·ÝfMš4±ë¯¿ÞÚ¶mkú.\a…‚³WÑ[U1=S `Í›7¯Jöjå‘%ÁÛ_TÐÁꊀPz}°…Uñ^!HùÐq>¶! åãG[£Û/³òþ7[ò­@€ @`ÓQs}þùçáíåm·Ýv\µp.á•8väK/œš-Ú’*JB˶çŸ>ã°9øàƒS×¼ÿþû3—Û2“X‡gŸ}vˆŠÐýxå•WZ£FsÞÉU¤Lo5¿ôÒK¶ß~ûÕa) çÒùîÏ|éõ¹fò«©_Ëš6mjW]u•-½ôÒá³¢Ž¾ýöÛ°½ÒJ+)|(€ÿòµ…î‰: bbuÍ5ׄûeñÅ·5ÖXc¾Ó(²ãÒK/ é½{÷¶M7Ý4l˹©¨£'Ÿ|Òž{î¹ 8Ïwp” aÅ®¸â [mµÕlÙe—­õá.·Ùf{íµ×2m*G´. Fž°®-»þµUEyIÐÛu×]ç;¥÷™BŽÊÉ®”"ÕÖ\sÍì]ñ¹¢öªn$ëå‰å–[®º‡ÖZ~ ù©Èäõ×_¿Âsz_̾ï½÷Þ9&Aº*Vßî몔¹²<ù´ T¤‘ÂôЕùº²³¿á(ym°•’L¾ûøÝ 5‡ @€@ð?z‡^W¯½KŽ;6 ã¥ùô–¨ÞÈ× o¾ùfæ"úcVQ{íµWf^W_}5¼Õ¬7ܳçºqÇ€N ùÒ3ʳ¡9}t|0D¾~øáa¨‰uŠ&È6Í¡¤¡Ý4‰®¯c³w(g›ýù´ÓN Ç*òæ·ß~³ .¸Àºv휦z[^×Ò›³¶IK½yòÉ'çŒp‘£Hͯ"§«æcÐÛ²Š(Rùä¸uÓðE^f9YÝ<]L$ŠhH9qCP\ÔžUµ_ýÕnºé&»õÖ[3‡ˆ§®ëbQÜfñ[ÄÕífï’K. CÐh(+¯[¼Vy=ôÏþ30Q$iµ§ø»=õÔSAÒgq”ÑmÕUWµ–-[†qù}öZmªrdG"(’P÷y¹!§¯˜ë~Qß{9ÑãûEçW=Ԟʧ·áÕ_xá…Ô¥õvöG†R¿ùË_þbÿøÇ?±©Œ9>pßæ€27éÿûŸwÜq¦þ$Óýùç?ÿ9Ü·ú÷‰øù¤}Õ¹G•È!ö·¿ýÍ6Ùd“œ}Z}^æ‘<Šô~sôÑG›†„ó9ßBÆJþËWvFÊi«¾'“cõÑGµý÷ß?ô1•QýPÏ•GöÄO„{í¿ÿýoø¬ç‘ΡûAB›LÏEhé~ÐË*wlë®»nø¨ˆÅ~ø!Þ•Ú¾ýöÛCD ú½úo‡7¿¶2k5=?·ÜrËÀ逰W^y%už|T_=3|˜J K¸ÓN;…g‡ŽÑóYõºè¢‹2§¨Ê}*BÇ)BÃaí½÷Þá¹pß}÷eÎ#núÐý®2œp 6qâÄ0Lžê"Ë®¿Î©%®¿¸è»Fí©g‚žéŠ$Égªó©§žꩺ(bÔÏ+qT¦è4 ¦Xô¼ßn»íB<òÈŒxêçw†zÞj˜ÂcŽ9&äíÓ§g ÷“¢dô{@ß…*«¾ ãç³g–ˆµÇ{øÇÌZ}@å|衇2iúNÑ÷Îî»ï†µõzø:îwºÔŸIª¾)áR÷¸æóÒ°oU1EçÜrË-ázº'õ½¬ß>qtªžª«ê <ÕU¬zõꮯç¸/KÐÑ0ª²ª´—òiˆI½0¢> öúÏþŽÕõõÀM}S÷Q܇âþ*ÎêCê“*Ï=÷Ü㇦ÖUíw_ýµrÊ)áþÔo˜ /¼0ô O§çFe¢ÚMQ±¸¤ûBß‘zöºé÷¦î3¥«]þú׿f†œ¬ì¾®É÷ª_¿.ÖzéÅ…#iCnM|CëX(òÌñ~¶!!ðÇoV>ôÙ9³^•VoÜÇÌ9Ø€ @€ˆ€þ`–ˆ¡¡±4ߌ†*4“£[ïx^&ÕG‹BnzÃ\o‚ºÉ‰¥ã¼ÎZû\7r¼»ƒDoñkè"Y¾t?g¾µ†Òœ>2]WCLù¸÷*·›škGb—LGË©ñâ‹/†ÏK-µTp¶Èñé¦rň§çZË#ÓPJŠÂ5jT&›Ú_Ž89Žãa %H-±Ä™7óuÀèÑ£íCI rèê|šgE—ɯ›/]"‰\r»½õÖ[ÁáèCÍyz¾õ]wÝœf¹öK,Ñ0î°T}Ö^{íLÖêô 9á$ü¸£zùå—U?™ü ºŸt åûøã}Wè›ê;rØÊ¼ä’K'• lr*í²Ë.™üÚÐùÚ´icrpU4?‹$Ö«¬²ŠµjÕÊ“ÂZ÷µøfJ”SòÙgŸµ}öÙ'8=U6ÝGj_pR}%$(MQNbPs¬H€TßPÿ“s\‚‘Ê)§¢ib-aI÷VEÆ}›ŸŽÚKÎ[FÄ9] Šï-ÿ•¯º÷¨œÉ—]vY¸„Þ²WÿuÁF‰ê«rª+ªIÐxŸžkZ´/WtH8iÖùž¡ñ3r­µÖ åС—_~ù|Nbõ1-r4K\Õó4.W|IÝ[29öý¹§è¾lÇðÊ+¯œ9L÷ÛŠ+®˜ùoȱ¯¨/1Óý¡9Läà—ó_¦N:é¤1qà†È9Ë%ÀÈ ¿óÎ;ǧ›o[÷«¾$JË1¥úIlÐ5ü¾R”“¬*÷©òyÑZ*‡œ÷zfÉ$NÊ©-F.x¨.¿ô,òòd×߇ÕK2_B޾kôÜÐ{zFK°Ñ3'—I„Ð0¢êšÛFlõ,“Ú#Ot^Õ_ÕÖ#$(ýßÿý_x Bk7g¨ûHçUÙÕVîäWú‰'žžyâ R‚ƒ¾ u­½HD3fLÃýü¾–È ‹Ÿ­úN‘§ëiˆT=ó%Ä)ø:GõwýFÑw¯QÝ×ê7š_ë‘G Ï[}7Vdª¿X«Í4œ©ÄIõ]s™e– ‡ÆuÕwŒÚD|rÕU(OᡇjRuÿé:z©AsöÜyçá·Heí¥ûMùÕOõÝ ß.b£ç“~ ÅÌÄ\–+M“D¸ã?>ôE :8JDr«j¿Ó Rº—ô]¥ßBú ¢>§—.ÔUyŽIÀ”¨ç€›¸é%ÿ}!QLb”žú-§vؤyÛÄ®¢ûº&ß«^žºZë^šP¹™F¡sK‰FJÔ\-Êœl%¢ÀœÈ#?€5¡ÏXÉÄ f‹/i%Ûî™ô € @XTä„ѾzUÎ PÕõkz½ FràéMT½­75å —é VŒT_wÆèeÍ• ‹ÅŽøMøª¤‡Tð_|>9@ôƯ)ŠÇiŽÈE# 8.É£7‰õ6¿œ²3Ï<3_Á%3»äDrLÃ/émm‰jo Å$“x!çž{Ê/G²,sä óCN_™œ±Š*‘¸ãN¥Ç¼*K—ãWåÑÐKRJ‘r.É3eÊ“XV™É &g Ê&“Σ äØÑ3î|WÙ‚C#ÉWÝ>¡6pÁHŽT½-GšD3™œdrzIôrÁHB‹g2µ¯ÊáÎiEG(ªA¦zç24Êõö{œ_)9!mb)s‡œ¢ŒTw9J=‚DûÅ/~éWsÃÈÁ''¡&(—É‘®]K¢‘ú®ærغ[ùܤí\Æ}›‹Ê¼49Ëåt¼öÚkí7Þ;Ôzcßè¹æªî=*g° —ÆÕ—ÕGõ •uïÞ=Du¨<ŠœsaFér¼êY ç’¢”§*? ãgEœî}UýZB¥LN^EßH$Ò=­7õå(WåH–cÞ#åä¬wGßiÊã¢‚Ä FãòêùãVÑý¦²é»E&'¼;ÝS:^Îp‰ªº¦¾oüœræKœPt_e¢‘?3œË‘É¥rû½èe­Ê}ª¼~^EdªoydU|=ÅÑçS“È¡g¼Ò%hȲë;î©$1FB£ž‡nP¦ïc‰âä/f„sÿ“@£zé{Gb“¾]´Qõ3={Õ_÷Ýwß•ãÏqÝñ½ üq]Õg›ú²úŠÄ3íóöÓ³Ym$QÜè\zžÅ}ÕÏ¥g«„.½ð!Ós1Œ”¦õU}¯ÆÑJÞßÕ¿UFi@}Eßý¾_çÈgú — ô;Â#Á²óÆu¯Ÿ«®b¬hÚ§Ÿ~:üÖÐ nV¼ßWÖ^Ó$˜HØQT‰“"Êô,îb¬sêûÚÍÛPÃUŠ‘^Òé9 ö{ï{Uíwz~©«éw‹ž%2õqæ¹(väøO}P"¹žy±©¼±}2EIøÔsÇӔ߿c+º¯Ußù^ËSWÛAJî™×UÛ)ÑH‘2JUòE™0d(%”Ø}w+o½Rön>C€ @ ™€œÿŠ0Ñz²L0Òþz+6—é o7½Q*Ç“LŽ9óe±S(vØÄoñçK'¨à?w€(‹Šz“ZN9z\4r‡¬òè o7½I¬¼î4QzU‡®QÞøÚrß|óÍÁñ'矋Fjä¸Rd–xºh;O59¹œ‡²¶mÛ†·Çå|‘`£È™DC_Ž9´drtË"‹ÓõYíáb‡ê¨7°eâQÑHŽŸ¸ŽêÏþ6·Îï‹BÕírüÉä´rgZ®6qQMyµ!çµ¥ÙN">ýn IDAT=9•dr¬êÿ\&1W¦ö¯Èôf¹Ú6îÞ_<9­ü-{9r´ÄmëyÝ«gú ¢]b'µÞ’–I˜“É/Ë>—Ÿ'ìÌñ÷m(Q’œªêÃñPG$ÔÉÄÝ£Ô7<Ê£º÷¨žûÞÇu¦¾èŸu‰6.ÅýZå€%sa>|¨Âùž¡ñ}êýXÏ®T=u/é~×:æK¬\Wä€÷ç>K ðçŠDæ\¦ººé¯ÈTV•GNâØ$Èèù©ç» FÚ¯ç˜"ô¬Wô\Ègr†ëþÉõ s.~lUïSåw¾zÞÆ{í“ ôüw±Déj{=OõÜwKéùꯈ" gªË#µŸò«ÏäŒt>7Õ]Ï©ìç—]QÉâç‹Ä´ìóê<2Eze F*Ÿ„ õ[‰(þ S~öÔGƒ RÙì•_בÐáå•À«g«î¥l‹û—öù} þè‚‘Òýù¬ïÖŠLßGê×z&û»ÅË®«§k«®ÎYâ¤Çù1“âáS•ž¯½$<Ê$H»`¤ÏþÌÐðñ=¦ë*MÏ=7/‹î¥ø{Våy$•¶%ÔU¥ßI\ÖsL¿]0ÒñzqE/x(Â'þ½§}ÙæíçÓµõH¥¤~¥g©–¸Æ}×ë˜Ý·¼OV÷{5»¬uýYuõ ¢ù^)=Ù]ZVjñ8vu]h®_”¿ñ¼•|¼Õ—t$ë>ÿø õ§¤”€ @ÅKÀÿøõIÕ ¥¦rFéS™œâŠ€ÈeŠ$Òð22 bÉ-vRĸ»c@ùª’îçË·vç€öËïN¦Ø)¬7OÝ|}n›42l´;Qô¹"‹ë¢H,wþÅóvHð·5D‹[\&·´OŽ*wjÅΟ˜•Jîüˆ qº5î0“è!ç‹Looû€!¡’ÿb¾qtX\¤Ox›¨\îúüóÏ3%s'©œ¬ÎDbŽœ–1; DZ;#5GIü&ræ„ɆÞj–É©U‘¹€àmço9[½ÌrâIä{ùå—Ãp?q?ðã‘&‡†žR¿Sù5<Þ€Ö°PU$‡§àŠšÓüLU1îÛªPšÓGü¹¥ûÝ#­á¥Ô‡dr¶ê~‘Åý¬*÷¨;`u¬?g-á?gbñPý@C;y¿óüUYÇ÷c|¯æº‡%6ûpOŠQtœ¢C³EsÕCËÉ4Tb,)Í_m{D¶c‹E±Êî7•U‹?u=ëÁ§ïSµI¶ù3ߟ‰Ùûý³Î­çq,,éÖý˜}Wõ>U_Ñ{:^QbÙ¦h1™îíló~?ÃsÕ_Ç©<ê§z1B}CMzACω=™œîúî‰û„ç÷g¥¢˜âg¥üÎzgóVùÔ6¹"8õ›Aß5ŠèÉ6nÇm¤þªû+ûÎ4.¯³Š_vP¿Ry\Øõkúy=êÙÓuÿI˾žï÷µ¢Ô'4 ^>«n]UN™žõ±©<*—?#´/_{©¾ŠPV?‹?èç“ÍÌû¦òÈœ­ž918g…¡÷´í/.h[byUúž¾4üb¶éšzÞy$pö~ÿìϯ¸Î-¾?%º)ÂNÂ¥ï÷sø:ß}½ ß«~κ^«O*x( %J¥D#)In:@ÿ0ÌG ™ËHVžDYÛuçÛM @€ °ð hþ™öÙθ…õ¿‚œEî„Ðßî´Ï>£ÞÆv“#ÃßœWš7&Gº]29¢ôǼLŽ>wöäK+øO‰29¼âaMb§k씋߂UYäõÉŸU&Æ®‚ËfvÅ‹ø­k/“2*ÒǹøÐjJ ñ|G±ãÑ*.GŠÒ]¬Ñv\‰X~]µ§œy²øííPÉ1Ǹ :Ì<Úö}Õí:Ö#¥ä“Ø'G´&”—©ï¸ƒLÎ+ äŽgåÕUÐM Ü1™íó<žÏE#?·ïË^«þê[ÞW}¿œéz{:nGíÓy¦GÑz;ZCIŦ!öÔßåX•£^‚¬žöOC¹É‰¨áƒTg •$§³ ž'{Í}›M$÷gµ©Ú@–Ý~ñ=䢿òU÷Ÿ3ºï%Œ* ÌM÷§›"/Ôg\üPtŠÄG ³XUË÷ Ÿ‘rÐû0Uò'J$òg³¢xto)"ÖŸýºvÌ#~Öx¹|¿Â•r™GEjŸÄì|&Fzæe·‰"ä$ö!³²×}¡—bA!;¾åœÏ>·Ê¯{MþÅVÕûTÇ‹}.g¹Î§óÈaž9¥}Øõìó¹ÒòÕ_‘\úžÒZœßþR¼õŒ¨ê°|ùÚO"ZvDÚLý þît†.ŽFQ]d.@IÜÏ6a"þ-¡ïß\ßGFÄ4¾¶·½†&T9ÔOôì׳>°ô=§ïß?ÿùÏ®^ÿ¾ŠÏëûⵆ—•p »ñ~m/H]%ªøõI‰¶q¿ô{*»½ô —\ѳ>pöy”ß¿›uMﯹ¢Õz¹¨¦þ&Εõ;Ýê/š“ËŸa^?EôHË®‹ï×b*1Û_œÐ>ÿ½×AÏKE3ë™ ïÑxK?_¾ûzA¾Wýœõa­À!-qQZ4J\w™ƒ@6òßµ’÷æüÀÖ\F @€ P7ôª[<ħÕ×µ;xT¾ŠÞ•3À-®«"«ä ‘ÉÙîo0ÇoñÇo“çK÷sç[ë>„ž®;þb±#v¤rÈ!™¡`4׌œ'rŠÈ4¯Q>Çg®2¸CC£Ë‘ææN}–#ÅÍVúìN•ß´rzºQy$<¸y~}ŽÏŸ/=ž[ÄË©cãüú\‘É!ç˜ÎñÐKê#Þþròx¹=Mç­JŸP>Ía$KÎ3 zC\Î? ŽÚ/69MõösEÉ©ªá¦4ÏÊ¢µG£ùùµoÍqÖYgý?{gwÕ´þñ§‘r3^Ò•”™k¦÷âÊLR†$¡Ì‘ )³¨n¤Hæâ2ËðWæyžé¢Ë½Æ”ÞüÏwÕsZçtÎûžw>Ãïé³ÛûÝ{í½×ú®}ÎÙkýÖó,c’qF©» §óm}nDùëò>5õåóççttÓ‰í^9tò» ç”g†çÀÏ¡ž‡ ’ó`ƒlß¡ñwdz=‚)¡O=õÔ¤GŸwBR¹Åß5™>+þyËöYã:z‘ï‰ô0\~Ö^/éßQî±—ÉC’ï ò |ñ5}›r‘6¾6ß7}ôQÊ>ÒWæsê|¨ßLÆoK&6Ü—Žöøû#[ùý÷ AxÁ”ùv2ÕIz>ü·0¾i('ù'´Yzg¿—+æå ³••ï¨ôïJîÅ\Y˜×bsÅ× ÿáU†Åùåó„'1óÀQfc ü3¯M,È!œ®Ž…éÆg›ßêL÷ŒÓ"F Ö—g•)+Ï¢‚‘÷çûµ3Õy¶úòßVzý¬Ý3<ļ3틽ý:äÁȽ+s}îüó™)_xݦîü~ñšï;Ê^7ä‰ïŒX„ç<¾Cy`àsYú\‹Ëö¹æVÙßÕ…gÕÿÿ|^y~’Ë"'¢FqÖpE"¡L²hðôƒ m—¹²Á’ ¶ó´_D@D@D@D@D f ÐÉEÇ7ÂBJ¦Î£š½cÍ\Íçºàjî‘áW¦qï,Œbw‹çë`¨·[ãNïÄàæüøšqyry&8Ÿ‘Ê|Nð`t7˜äŸ04™<¨.¼ðÂÐéèÂ#ñ‡ËÖAMG†˜‹kagôbbéÏå¢ó‹ë%:5|ÖéФó’pGîYædÉÔ©ŸïÛ䑹·Èóa}òÉ'Y¿Gô¹uj寽S–Tñç„¿ãϨGÅÏt®ŸQži±é¤ä<iÄ"Š¥wso:lðv¤Cï(¾Ëî9‹?ûžïôýéeå8ßQÌaÄgÎç­s!ˆã1«LϺºhÌ9±ñ]ŒGV‘'þXºWŸ: 38Ýè,‡S<çIzþv>1„6ê%ý~¤g.ŸS:µIÚµkÇi)Æw9yŽ<óßañ÷w¶òÓéŽñüdêìËùþü>Å$çûï¸øyñËdâ•iŸ§gM=ñÝè¿a~ŒßDÄI¼ŒÜûÓCÂú|pžöÓD¸[yØÇaÒ¨gö3§Þjü^Ä^K~¾~ãß$?F]¥‡'ôc¾&ïÔ½3÷ýéëÊ”•ßržƒ¸®ýzþùŠe«/žs,ýyB||ä‘G÷n'å…S,æø¾ôwQ¾¯ø‰½µá€UôÜù;Bz¾`È\dX¦g,XôŸEÊ×Ï ùÍv.Ïô%—\B4ò랺å}®ýž•ù]õsê{íïÔéùHpC ?. Ý(ÓLúÉú»´4ø-ñ#úâÓ ƒšN&" " " " "P¯è¤ èÃ!=£îÅãF]s=ÒðüÄó®ÆÅ[¿–Ÿ¯õ¹idߦ#ƒuÜYKç'Žuî‚ee?£<#̇Â÷ ""z6#™¾ ÿEX3„¾CxÎÝSkûg‰mßÙ¦ãŸï7:\ ‘F9½c9Ûsy÷Ýw'ÄsÞq½tóïµôÏ$Ÿ~oðØ#™÷…Òчe ?åâÏ+i³Ý/×Ï)×àYb`LÒ ±Ÿ9 ÜcÃóêsdÅÏ_¶üð¹FÔCìÆ ÓËÏõðª‰çò{Äk8¥3å¸?3™~à…XŸÇ>ò‘.ôø½¸ÎsÏ=B‹Æ!ßÝTýÎÉ¿[}°×à;¯7ÄÄå$)Ïk¦Ðl~Ö”‰<ƃ5ØÏw*Ï.ž)åuoBàÅß?Ù>G¹ü®"¾=ùä“vÒI'¥<ûq^ëkŽ.¡ ¹¥ˆFñ‡Æ{B­Eà×g˜ýð}böÖÄ—É_—tÇ!º%Ð:¢ѨÂÓÑiHØ6ïH$¼R&cŸ+¯¼2x£Ðapî¹ç†dthøH⸣Ä;©HwdÛŸéžñ>ïè`_|ŸXLˆïC}1ÿL&NÇ0a›a›­3,¾§o{Ç3Ç÷ˆóä¤aô°‹@ì;rºuëÂìnÒ¤I¬BgóF <Äe‹¯ŸË~:•è°Ã¸¬¹Z\Æø^œç# \Ùg"þ\Àt>3t21wwšÓáC–tÛu×]“u‹-Þ1§ç|:'±ô‰ÒãtlÓaJ§!I;'æìÂð¡ÓŠÿ\ß;°GGÝ‘ŽÎV:þ-G§[<1<Þ sÖàq‚ЄPñ裆NqF†3? !£èø¤³!–QötÄÆ¢\ÈPôŸ>·Œ,›xð¸€Ïg!î´æywÑ1þLs©Ê|FùŽñPR”<ŸÔ Ï6fq‡:ÂR,²ÇÙfž#¾âý™¶³}‡ÆŸSÿ “?ži–t# Ì»!nû÷)¢ ŸKDú'y~ùlº·ŸÇš}þÛG_EÇîQuÅWï>xùq¼ÇŒæö‚'É|#Z±¿"Np@|Š;—ý~䑼òýì rùœºPlÆ1¼ %Gx2:¤ï»ï¾PBTÆ^Nž/?ß}ü.ñ½Íwß]=zô^‹ B ^õË3®‹G&â ^Q0å7&Ô¡?~ æ Âë)}ÞÒsž‡/óô¾&ô+s¸ñýÆ6ßÏ>ûl(3ùECÊpqûí·‡t `Ž-Òpïø·“ëSw|¿Âßlþæ³D¸Ò¸ŸœÏyLÒü³ÿVy¾Ó×Ô=¢yfá7o!ž‹.º($O/+ ‚ÂfzY¹7¿÷q]sŸ#ŠP{±e«/ž~†žc~ǘ‡ŒïžƒøóåÏf<×–ï‹ç_ôûúo}ÌçŽ0°ÔiyÏߣœÇïyÀÃ×§yÖð> Âïëkê Fñ³èß]¾AKxÝšŽï%øñÝÉ;™›ŽÒ?×ý®ò½Èu¸.¿ãéõâׯ¯5¿MáYO8…ÎmñÖ¢=ˆE,$Nly:­E !%/šˆvã­™YVDD@D@D@D@D@ꙀڦS¤ŒÜÌ¡B'5ßt0úwРAÉŽ7FÆãCG4xÄ0)1“¸ctzùÜt°û(~:j}¶ý±â<Câëqžw€°íl“Ï[tœŽ5*tŽÐ ™«ùÈXÒÇÌÞÑÁþøÞÙö“îÄO 2𢃊ŽF:È| hÜ‘“í:Ùö#Xº7@|î[‘eãÈõ¸.F',¢›[ež Î!O<_uÊ=éT¥sŽÎ!÷΢cŒQæx€ÐÙÈÈl:™ó(öäðçŠë¹8À6FÇÏ+Ƶ=TRØ‘á?ú\øP¦¾}ûÚyçÄ"îGGXÜIÇ<ŒÌ&fž%ÊF§¨OâÎ-Üó„r¢jôèÑ¡“Ë;:é g„6¨t ³Í¤ï#FŒÈËÔ]úܦòHÿ+Û3Mºl Ç*óMŸS…NͧŸ~:ÌcE=ÇœˆQ<'tó9àû‰gA¡gϞܺBËöší;ñj¿ýö õÜ“ï:Ú™[Œy•b!çŽüÁsãŽþyK÷2 Ó<߈ÞÜã´ÓN«°ünàMÂw2ã.¼q"óÏámÂçŽgœÏ×N;ídx2! ”gLˆséß  ^9Æ ‚¸þsùœú³ϧçár!1o<`ŒÈÅ»AÜ™^^ù ½E^aÂwâÔïQG•~Ë%þæyã7Šú˜0aB8D”—§xÞÂô²R'x¸d*+ÏIyœÓó›­¾øâ÷‚òRnòž 8ÇÏ·?›™ö¥ß²#@ò¸´ó NryîøM¤Îx?Äs˜Aü^ñyÍ…9õÃwKüyð2ø³€„à…ÉwB,ï¥c—yDhkÓ… ‘Íè­(R¶sóa?ƒà¼ã:S~ðvAXcÞ§W‘GN¦ëT´éFÔ#óaÅsGì²Ë.aÄyE×ÈtAˆü¾ð ¡ Ô/F':ñz@<¬H0Êtmí+Ÿ@¾}néôäYç9öÏíSO=•,DM?×xà!„âñ@ˆ*¾kbûþûï“!áâ‘âqšôíšfš~ýêþM3D#¾7Šðl`á ÁˆyÃd"PYx¯ñÛpúé§§F\‡Ï3a ùNÇ{K&ÅN€w%ô×\ JâptœÀ?™šn³Ä\FZ<¡¦èˆ€ˆ€ˆ€ˆ€ˆ€Ô¼'QNG"^„p“e'@ȹXÔIO‰`„ Q#¼—#þ%kB¨Ÿo¼19ñÊÃT1wOM{'Ðyí"!ÏxöøþGfn£éÓ§Ð+xïUdµÁ´¢{Vö8‚;ùŒš‘ÐPǼ}þùçA@"ÌW<[e¯¯ô¥KÀ‡Ó}x‹ò;ž>WPzZý-ÅBÁˆ%v"J/TaDU"`]®#ŠŽÊQž\˜`ó$Ôaº$@œxæÀa^#‰Få“§“5,ÒS#À…6qúrþ¦c±‰N]âà³Ð‘‰HáFÜ}æ‰çëðcñšyk Ù˜HšyT²¡=\i˜O </Ûu*ÚÏ$ÓÌ{A¿ó2¤×ç3Ù8B^e Ãñ.sÃÛÁÃÝù>­k–@>~ny¶ðî|þùç“sYy©è›5¶ÆË¹<^|ñÅ Xò]’þ\3O óçäbµÁ4—ûV6 áÁbcÞ™T—$sf1w²ˆ“x#HN™2%¬™+)¶ºyÑù"Pßø= ÎC8END)¢îG‹ê»ªòðþŸdöÙ‡ 3¶É6y˜AeID@D@D@D@J—@ëÖ­ƒh4kÖ¬Ò…cÉ[´hQ¡p“㥒Éè|9pÉ”¶:ûà|ÓM7…ðCx0ªœ°„©CÀëܹsÑ×EuøåÛ¹ùø¹õ99ø¬#l>ŸIäñ¨« »öÚkÃsMØ, ÐÙݬY³p_>O¡¹ÎeTLk£Ìº¦Ô~ O7nÜ8›:ujøý¦?œßæÛ#älE¿gµ‘/]Sêƒ@6-(E4 É=*;ºª> ¥{ÖWž]x£–­ÍZ)ÜEQ×mD@D@D@D@D 'tÀcнŸ®ZIÔªU+;çœsjåÚÅtQĵº2Âà±ÈD šøÜ^±6B,fÊsÓ¦M­oß¾aÉt\ûD@r'ÀÜs„Te‘‰@)ÀkÕ…#´!·†¾Á:ŠãÚ¼ƒê¯6éÖþµUµÏ¸6ï ú«Mº¹_›¹Z°ü1ñº¾¸}WÑTÊï㪿ü®ŸŠr§ú«ˆP~WýåwýT”;Õ_E„òû¸ê/¿ë§¢Ü©þ*"T·Çñ4Ší÷ù¿ÚP#&íscâ¾Pq £ùeómî¼¹!‘×:¿ ø‡.®ÓêæxéÞ —X°á–V“×­n¾ŠñüÚ¨¿b䔯eRýåkÍä–/Õ_nœò5•ê/_k&·|©þr㔯©TùQ3LèŒýüóÏ•zgWýåGýU5ª¿ª’ËóTùQUÍõ‡©Ÿ¤ªë÷<Õ_ýò¯îÝUÕ%X¿ç«þê—úÝqÂÛ¨Á ¡²ùeÆ¿FË.»l2­76رÔRKÙrË.—Œi—L¤¼%€28g΋봺™mðÕ§!Haõ׫ÑëV7_Åx~mÔ_1rÊ×2©þòµfrË—ê/7NùšJõ—¯5“[¾T¹qÊ×Tª¿ü¨™fÍš…ŒT¶- úËú«j.TU%—ç©þò£ªš Õ_UÉåÇyª¿ü¨‡ªæBõWUrùqàLË9 IDATžê/?êÁsÑxéÆÁ‰hÁ =Ž–i²Lp"J™Ó¥Ï'>rÕÏ/ uiøãóBÁÿX«]iP©E@D@D@D@D Ï ,³Ì2!‡xÉD@D@D@D@D@D ®o#<Žÿ°шxu‹rÁY"i¾üÄ,²k°VÛ)´Š)" " " " …E I“&!ÿüòKae\¹¨7Ù´ Ñ7$÷4òu½åX7®Ÿ¸0‰P…¶f›úÏr " " " " "°¥—^:ì›;wîÇ´CD@D@D@D@D@2hØp±‘‡¨#]Šh EÙT¦L×¾â$Ðà‹ì/ MWœ5¬R‰€ˆ€ˆ€ˆ€L!è<<eùí·ß–(çd:o‰„Ú!" " " " "P2˜cÊ5!¢Ð¹-ÞZ´±ˆ…ĉ-O§u øã³…ó™æ3*ÁÚW‘E@D@D@D@ò‰À×_mûì³OX.¹ä{õÕW“Ù‹E£XâœÑ£GÛÁÎ{æ™g’çhCD@D@D@D@D ´  (¡a±Q£K˜ê(!¡*ù×v‰Xž®Aëv’K¬êU\ü"€ä‚ÐC=d,›m¶™uêÔɶß~ûdf™×èË/¿´iÓ¦…4ɉ>úÈvØa‡x—¶E@D@D@D@D@D éD„F”"Á&x%$‚²eF»Ø-IìJ‡@ƒ¹¿Ùß| ¼ Õ:‰GE&" " " " "P_ˆþú׿Úk¯½–ÌÞF,«­¶šµlÙÒ–JÌE:lØ0ûàƒE’)Íš6mj]ºt‰öhSD@D@D@D@D ” ài„þã:kA)áéâptœÀ?YiøãóÅ Í OWšJ-" " " "WŽ?þøŒùùæ›o쫯¾²Ï?ÿ<£`ÄI½zõ²å—_>ãùÚ)" " " " "PšŒX܉ ©¢Ñ¢¹Œ8ǰãoY‰øìÃ…þÓJf+¬Xb…WqE@D@D@D@D ÿ´mÛ¶JÞBx(uíÚ5ÿ ¤‰€ˆ€ˆ€ˆ€ˆ€Ô4 à<„QäD”"á~$±¨Þê(¿nüÅBÑèµÖͯ|)7" " " " "PÂð"]e,›‡Re®¡´" " " " " ÅE ›”"ᆄ¢„ùº¸0¨49XäiÔ`­¶9Ÿ¢„" " " " " µK€s•˜Ç%™ˆ€ˆ€ˆ€ˆ€ˆ€Ä6\ìD„6ä–"ÅBQ6•ÉOÔºÈ üúËÂ®Ð¢È ªâ‰€ˆ€ˆ€ˆ€ˆ@aØa‡ŒsYÓ¦MÃ\F¥ÓqÒ#°`Áb'"¢Ð¹-ÞZ´±ˆ)±åé´.5sŠF,Û´ÔJ®òŠ€ˆ€ˆ€ˆ€ˆ@Þ8p`…y$ žI2H'4 „„ÅND)¢Qbº£ ¡*ù’~!ý]"~ù)´Árjd–H«˜" " " " DàÏþs¹^Dx"á‘$ŠÄND)¢'O£„‡QÙ‚2‹ãØUtQ/2¿J4*²UqD@D@D@D@ŠŒ@Ïž=mµÕVËXª\<‘2ž¨" " " " " %A¡ç!œ‰b'¢Ñ(GÇ ü“•?æÿnVV ®ðt¥Wÿ*±ˆ€ˆ€ˆ€ˆ@áÈ$õêÕËðD’‰€ˆ€ˆ€ˆ€ˆ€ˆ@ypb‰ˆRE£Esq‘8†]yÕ±â#Ðà×…ó…’iN£â«`•HD@D@D@D hl¶Ùf¶ýöÛ'˃çQ—.]’kCD@D@D@D@D@2@ ÎC8END)¢.H‹2á+±}s"ÑHs•X嫸" " " " …Fàøãaêš6mjC‡µå—×¼¤…V‡Ê¯ˆ€ˆ€ˆ€ˆ€Ô5lZP£8#¸!¡(%¦4Z¸Žj»düñëÏ‹ÊÓ¨dê](L„¢›8qbaf^¹¨ .v"BrKñ4 ‚Ñ¢#ÙT&?Qëâ%Ðà·_®QcÓœFÅ[Ï*™ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ@iX°`‘Q¢øD¡s[¼µhb RbËÓi]JžFXƒDhºK-UJ%WYE@D@D@D@D@D@D@D@D@D@D è  (¡a±QŠh”˜î(ˆE¨J¾=pI‹D#y-‰F{D@D@D@D@D@D@D@D@D@D@D ˜ÄND)¢… žF £²eDZ+&*K~ùia‚„§‘LD@D@D@D@D@D@D@D@D@D@D ¸ á<„3QìDÔ(.fŽŽø'+=üü£5ØhËÒ+¸J," " " " " " " " " " %BÇ!w"BúHQ"2 _°`õèÑÃ:vìh~øa†µ»ë¢‹. bÖ¹çžnôÁØÆolíÛ··ï¾û®vo®«‹€ˆ€ˆ€ˆ€ˆ@%ðîìšQèÜo-ÚƒXÄBâÄ–§ÓZD@D@D@D@D@D Ž |ýõ×6nܸp×3Ï<Ó^|ñE{òÉ'íù矷.]ºÔqnòÿvßÿ½½ð ÁëjæÌ™5’á×_Ý&L˜Páµ^~ùåàýÕ¢E ;ùä“CúvíÚÙá‡<† Rá5”@D@D@D@D@êŠ@ЀZ;¥ˆF‰éŽ‚X„ªäK]eP÷H%ðì³ÏZYY™µnÝÚzöì™<ؼyskÚ´iòom,$°ÒJ+Ù;ì`-[¶´:Ô–›nºÉn¸á†r¯Eá ÆhM#¼ÁÜN8á[uÕUmÚ´iöÈ#øn­E@D@D@D@D oÄND)¢9 žF £²eDZ˛Ü+#" " " " " "P"¾úê«PÒ¶mÛ–H‰«WL»×]w=öØcAh«ÞÕ,ˆ@Ï<óL…—yôÑGíÓO?µW\Ñößÿ”ôË.»¬uïÞ=ì#o2ȼ;ã<„3QìD”"Åáè82ú!ðË/¿„/¿üòõ“¿ëÓO?mÿûßÿ*¤pë­·†4p€5nÜx‰ô]»vµ¥–ZÊ^{í5{ë­·–8®" " " " "Ppb‰ˆÅñ¹Œ˜Ê(Ža§)Äí~ýú…‘fýû÷·¾}û¦a«­¶²ŸþÙxÉßrË-SŽ•úÏ=÷œyä‘¶òÊ+[.£ëJ—Ê/" " " ÅJàÝwßµ[n¹Åf̘aÿùϬQ£F¶úê«Ûú민*ÒÀ1ßÎC=dÌñòå—_Ú¼yóŒ°a[l±…uÔQ¶ñÆ×*o<øàƒö—¿üÅî¸ãû׿þe~ø¡Í;7„kß¾½õîÝ;ϖѧžzÊn»í6{óÍ7ƒ¨@x²Lv衇ÚàÁƒ3ʺï·ß~³o¼1´aÞxãîž{î1·1cÆØÎ;ïìf]Ãþá‡N^köìÙ!-õG·=zd s7þ|›4i’Ýwß}í¦l6bÄÛ}÷ÝÃaÚ’S§N ùåÙAtiÖ¬™­¶Új¶É&›Ø?þñƒ1ÏQmXym¼Y³f…ù‰þïÿþÏðâ¢Þ·æškž»í¶›­±ÆöùçŸsy;è›o¾ Ï{œ_æN¢\ü±ùüIݺu‹“$·¹ÇŽ;îhO<ñDxæÎ?ÿüä1mˆ€ˆ€ˆ€ˆ€ˆ@}p=(8END)oé¸ “XT Kåž?þ¸~úé¶ß~ûUº\WŒhrÈ!¶Ê*«Qp饗®«[Wù>W\qEè|8è ƒŒ†ä|`ŒV¤1zÿý÷‡Î–*_\'Š€ˆ€ˆ€ˆ@Œ7ή¼òʦ‹ÓiPÐføé§Ÿìý÷ß·M7Ý4eî˜k¯½6¤'mÆ C‡<ótº#Ô0§ËÕW_:ÐIS_öÎ;ïØ¹çž:ûÉ'sÐÌ™3'ˆ\“'O¢ "Gº]~ùå!û9¾õÖ[ÉÛSx!>´iÓ&ýô ÿFœAxc΢?ÿùÏöïÿ;¼ÓÆ!ꃖ‹wÜqIáƒ÷aÞøá‡Jpjˆ{wÞyg¸O|=´£>ÚFš4iêùOúS¨sÎs#”“ëbÌésâ‰'áÚ0B³qìûï¿7$–{ï½×ž|òÉÊ-$ª£ÿ^|ñE;æ˜cì×_ Ïq‹-Â3аùÅ_B¬h_ýu”6Ø`ãY]ú C½( †×:1÷T6C\E4òôÙÒi¿ˆ€ˆ€ˆ€ˆ€Ôo»¤ß+E4 ‰F žFažZ‹À"Ó§OZ4ü+;r2Äx Œ6däaMØ«¯¾{4ø)7²¹þ믿F¿öêÕ«&nWík0wâĉFã•És±víÚÙá‡nãÇ#Á)º"€ƒZ0ÂkõìÙ3ˆ x¯à]Aø®»îš’<5^yåëܹ³m¿ýöI/:ãO9å”ðþuá…Ö»htÞyçž4Gûì³!ò n!,œuÖYA"Í]wÝ•R>Äæ¥A0ÀÛo7¼MZ~ÿý÷àÍRU*<ýo¸á†pÙK.¹$lÃòâ‹/ö[弦l-[¶´½÷ÞÛ6ß|ó¤wÏK/½d 0<®¹æš0`)¾(â‚Q«V­Â»(kŒ†%åç¹@ ‹ aÈö‚Óe—]øxÛ’g€Ágˆs¹Š^~ÝšXÓnA0bPÏ"œ12ÞÅ4;ì°°o›m¶1ÂÓáuÆ;º×IHýÇ3ƒáIWžÁC@E¤r¦å£c" " " " "P[<çÂÚ[ÊœFþ2ÏAOì µ˜Àßÿþ÷ÐÐÛwß}ãÝÕÚ¦ALC­¦ŒF!GO±ÖZk-qÙ›nº)kÃo‰Äµ¼ƒгÏ>;ŒÌD0b¤«Û 'œFèN›6­FùøõµL>x?ˆ´0/ "ÁFmdx±àž5ˆ) ÂSÆ /ŒaÆ…?ñTÁ»£>íÇ ¢ÆÁ#òBÙ¶Ýv[»à‚ BÖ˜{¡#¶»ï¾;üÙ¥K—Áˆˆ „'£-Å` |0"àÁŽ7”{Æ/¼f¨?ŒaéæåDXŠÅ ÚŒcë®»nœÒßß 1DÆŽ;¦ Fä \ç×µ"ï“O> ù9çœs’‚ùXf™eB¸<ö¦®²†'æ¢P¶ó çèÛÛo¿-™ö‹€ˆ€ˆ€ˆ€ˆ@ J€kBD¡sk侦ÃBâÄ–5Hü“‰@:âq3çQMa*qW“F(F>f2>Ä'§˜ÆhL:OÁ¸ÿþû§d‰†e÷îÝmäÈ‘aT'£we" " " "‰xq°àQákæÈ‰ÿöý¿üòKØÏ1ßf` Æœ=ß}÷]èä&ÜXMØÚk¯¯ñîW•úšÈ×`PÑ.»ì’ñrÌ·Ã{"<;ÜŒýõ¯õ])kÄ4 Á)ßÍËàóy~©¼õ1OãÇXÓV$lá )g< -Œ9¢òɱ‡(È`­>ú¨ÆæÕÂ[ÍÛ1=ψvÌëÄ{?žF±=Úˆ”°ÜrË…p€¬i ¼²&ÿ¾ö4<£Ô^[ññXŒï¡mˆ  (¡a±QŠh„@DBT%_â‹h[jƒ$“ëÖ¥f‚ц4ÚòÁn½õÖ Â‡4nÜx‰,1R“†äk¯½æÞ±DBí( t8Ó)ï à„‹Cü©Žá)ãFø2 ”ØcÈWuÍ D ™ú´òB‰Ñ&â=‘Çä56aÙæËôýˆùnÔ†ðÁâbƒ—‘c^¶cóÁWqZŽï±Ça óöà1§Ò:묟Z/Ûˆ*x¿>O§SO=5ˆ]ÙÊ—k&ÿóŸÿ$çû"$_EæiÒ…:ΣRFԼȺÀ¶ÿÍÀ:™ˆ€ˆ€ˆ€ˆ€¤Ò"'¢ш„ÁÓ(q°lA™Ç.vKJ¿Puÿ&úwܼA±GƒŒ¸Ò¼Ð2ºïÈ#LñaòÔûï¿?„Oxï½÷ì¿ÿýohÄ´NL6Jã„°Õ}é¯j™I@lì½öÚ+Ä÷¦áNÌk¼qhÐH!„^$TB&£ŒœG#‹ŒÍfLÔê ½li*ÚOœz&¾ÅÓ‡†;ˆ¿ýíoa‚Xo4fº“_tÑE¡ž²ÅöÎ¥~‰ûNlvxaˆG±€D‡{î¹'S*ÜçuˆBéIÃÈ!ÉÉ€È=b#v{z˜•7ÞxÃ(3Ǩ#Ž3ê²G)?Ç×!,£iüñ¹‚óm·ÝÊ æ)b2\:xà€ñ e²UW]5ÄýgÞ>3„‘‰€ˆ€ˆ€?¼\†xWbÍ{kÞ%r5Þ;ÝcwR÷``o“†¿ÝfÍš6ñªŒ!>àí'5ï˜ß~ûmx§Í7¥¢ÁC¼Cbñˆ;þÆC‰¶ïšÌ”nÃòA(!?ýô“j/{ž#NÑÆH/iÝš7oÂ%ÿðáyM7ê#alë­·ž ><Ì Eè:ÄHÚ@»ï¾{Jû.>¯.¶ ;ˆGáø ͼLxIxàU®¯¸½æ‚Pyeñ4ñy¤§>Ž:ê(s¯@Ö¤ñÅ÷ÇÞ„Ù>SÔË›o¾¹DVh/»‹J¾ÏŸû%NÔ¢#@[ýÇu ׂRD#ÂѹqBm†¦#68#¼\,à¾L¼Ä~FO{챞ðòL#ƒFFءăf¡sžŽøòÄŽäkiƒòÐ@f^óÞøæ¥Ñš,ˆ=4¤Ò2ã›2b€ÆÊÆ6Œ—xmk¬±Fµ2óŒ®{衇Âu)È=¸&L˜`ˆIL\U˵~é¡<4†è˜`2ݶmÛ&oKã¥&04®§ACŸF£gcK~ŘėQ”pBØD°DÀaéÓ§tÒIñ%’Û¤ã¼3Ï<Óî½÷Þä~6G1BŒ°'啉ûyúp’þ( ¼;áQÌ»$‹ EÙ:…½ÐíÚµ ݼ?± „øû'k_ªÒLç:Æ5r5ÊÁ;< ÷Üd“M Üø;ÖÕõˆÊ5?å¥sO™òÒd:†È€(Æ` N:…2z:ÊÍ~Œ9êÛf̘a„¤-‚ H]ðÊ6m/¤É“'gÌ&s!ªðòË/ïμ§»!B½þúëÁ é†GïØ7ß|s¸>¤X˜#ë˜cޱÃ;,<éçÕöß´!ÇŽD#Ú<´ËÆBøí3Î8£ÒâQüÙŠ·³•ÅÓ¤‹vÇ|¶S²îçsD{ƒ¶;í)šhó|öÙgÁSŽ6&ç¼=I•ï–LÖ²eˤWÂ'ó4mºé¦™’jŸˆ€ˆ€ˆ€ˆ@@0b‰ˆRE£„@Á 'ÚQúKlM–ŸÑQ4hÓQŽxÁK:a/-<FÈË¢3*²sçÎÆ¨7!4Š9N‡<&-¥!2mÚ´àíS“ù­Ìµ(Óé§Ÿ„#Ä òICíŸÿügh8=ðÀF2£Ä¦N^ö W_†˜@H†1cÆ$GS’ƒ aÒ^~ùå¦!xiG< <„O‹_üi°<8œƒ— /õ1³Ê–•0€×]w]8Æ B†÷Ç£!¥ª«Z¿ž‡|YÓà§Q‹!âæÆ¼CtРb´âˆ#Âs ¿t£Ã„{¿~ý’‡âðwxH*=7õ!¥çÁÿö¹OèTÎÅ­L§;Æûl¶w÷`Êåšùš±„wjÞÍ ƒL½ò~·ýöÛ‡wF‰ú¶Ç<F´¹† –Q¤(¯.¼­Fød-1@±€}„RC¼¬ÈðFb!šm:D$¸ú4žQ„NÊÒ¿ÿPˆk• Í FÚ ¾C¨«È< ¢Z]Þe hdI7Ú=|Îi“úa‰ðv„ææ8Ÿmÿ|s>a ‘ðBÚxピ~]ý-" " " "ß²iA)¢nH¨Jx…u-•‰Ñ…bEuÄ8{¼¬"á©SßÖ«W¯Á(ÎÏÎ;ï: Ë#ø0D³LñÕ ‰Æ~#ƒêp£‰ð€0Å8ˆF4°¨Ãôù‘8‡}}ûöÍtzh€ÑDzu¬ø‰4¸y>ýôÓРóýZ‹€ˆ€ˆ€ä'ÂwÅBQ¦lt¶2`okÖùd h!¼ż;ºçQ¶<ÆÞ ¢Êd ãZ…n °B00`@JHí|*—×GëÖ­3 Fä¡ò Oûï¾û.xßðŒV×íÇ;6^øxÕ·häåAÀažUòƒ§\ü¼û 0„“LF»™ó‰˜áó€eJÇ>„%÷'Üx¾í BÑeš‡ ‰ºâ»Œ5|0æWc¹ë®»Âß ’Ä É$y#,úOD@D@D@òšïº.¡ ¹¥ˆF±Pä‰=aM­Íæ aØjÊZ´h.Eh´ú6^–³™‹=é£úh@`„yÈf~¬¢ØöÙÎ÷ýÞ8$Îxya9VYѨ¶ê×ó^—kG}zìñôû3—puûÝ»wÏZ,ofj7d=±¬µÖZÆÂWžR´'Å_yå• $ñ,ÁÆç|õì"!"ñ]‡÷]&vžVkº'@¿tЄNDD¡s[âM±ˆ…ĉ­D»„çQ ï$gÔ[e yæ‘¡Î6ñ¹óA$J/ê«®š¾+ù·7ÖÒE9^Ä1ÂñÒoœ}Ã2`”oŠ IDAT rüÏG·ù=³æW¶ã™öW§~3]¯>÷ÑÙ1Ñq.:J™Œ03Ù,ië‚P¶´ì÷4ñyå¥×1Ú%Àü$=ô=øàƒ!|Wú݉è4e)ï½ ýÜúþÏ"„"æp$ô2ï>?#ï༛NŸ>Ýð˜ð9GñÐfP ç0g¥Ï{Â{ÕUW]:•ñÊÀ{¥P qòÏ›7/„Èf€Qy±ê«œÛn»m¸5b^4Ì#Ë`'Ú!töSG„MÌf.n¼ûî»apm‡XLÉvó¯rO¼Š6ÜpäXÅóƒW Ÿ,ÕíZ5¹ŸöÔ±ÇBëQÁß«¹bsºb„$µŸYB»á)xá…n§M KÚw|¶²…ôk!(cQÕmÓù5ëz ·Ž;†…{Ã0v.$!&yT B7²0g‚‘Ï%%©®kM÷Ì‚”x§Åb½"E4B "!ª’/™/Wõ½qXŽŠB\ÄwaâÔË/¿<„ó¢ñ‰ ¡ºhøgæ…a¢Öú6 ¹4¦ÒóÉHLâKSbÀÓˆsÏ"¦—\rI(;aBªÛÀð:¨ˆ?£Êš_›ó*º~e¯]×éiXbtlx‡Gyyˆžqºò:\D$}¼Ÿo{šøC×¶ˆ€ˆ€ˆ@ÝÀ#yÚ´iA,B$qã=pë­·NŠDxvWåÝЯWßkæt$\/óaâ•ÂByÜ+ƒürÊ)!›¼§ 8ÐN;í´  U€÷u„ qÞðáÃpäáŒë»|U¹?í¼In½õV;òÈ#S.A»„Á_¼×wéÒ%'ì«£}ÁœtØf5ƒÛðá=—÷Û›nº)Ìç“É+ŽçÑ‡ÐØésR×+®¸b˜“óˆ#ŽaɼŒ©ÜV‰×ŽŸShkæPE ÁÛ$ý}™¶ÏÉÌ™3ÂE}Ùyç¬;î¸#Ì?ƒxG›â€°ãŽ;.x zdð¾Aü@4J7ÂÝQ·<òHð°¹òÊ+C;Ò!"ñ®Š@Â|8D9@X ¬3ತêÚóÈ'žNx¿Àw~,Â1ÒcÞ×tëׯ_ðLB$ú41¿(ïäk¯½v2ÜaØ|àäÉ“íä“ON¿D¸áÛ°–lÆû|¦wz:Ý …–ɲ“)mEû˜(£ÎÓö Âm¼ªvÝu×à½CÛ CDâ! aÚn¹åëÑ£‡1—UUíŒ3Î0–lFÄlÜÈ^QÙæÙ¡þ#˜.”àMƒïöW_}uðœó¹}ÈuN¸p9Hø;>ïЙD“p°ÿC|Èf™ŽÁb=öK¶óÊÛ{ÒdJGèF8Òv=ñÄ—ð0ä™ÀÓ áÔCfºN1î£ÍÏBx@æ7v ñ]R1Ö¸Ê$" " "PHŒXb'¢TÑ(12.4xÚQm…¿Â³¢u¢Í-b ç"c\6Ãõ½Ð ¡ˆÆ -BE¸hQÓåræŒÍ4)®ß§ÊZUê—{ œ`²"üQ‹ÿår?F@‚…F'uÃ(Ùš6>o@ŒÔ¬hÔ-zï¨"t†LD@D@D ö0Ÿ‹ÏU”Ù…"æñ)äÐsµG¯x¯Œ×?ïmˆ™¼Ö\sMëß¿ðÀ¡ƒœvJuD£º¦‰ðuþùçläÈ‘Áƒ&=D.@ü¸è¢‹l»í¶ ï±p)&/»ô2Wô7!üàÅ;=‘#:wîœ<å·ß~3"c`G}tr)nЦg!´#aìø~}úé§íÙgŸ•€TŠ„Ê," " "P¯ЀèŸN.‹œˆRD#ÜjK,ŠK¿ß~ûÙˆ#‚0Ò­[· >ªíË/¿Œ/“Üf &-t»óÎ;ă®5ÁF„^ , a¸'!"Ò /£©S§¦ïÎéïÊÖ/õ:öISsºQ5ùýƒÝ‡‰óËf†ð5LzK'AU=A ­‰ÿÍóË„ÄÂ!Ó¥ ⯿þú™’hŸˆ€ˆ€ˆ@5 0hÆÅ¢x@œˆEEíÚµ«æ]tzu Ð Ÿ>ŸPE×Äó'Ó;_EçÅÇ݃¥;„‡óc­O8á#ô_}ïã´ˆp€÷WyFÈ7ÊWÞ@´òÎçý·2á·8Å<·ùh´¯h3ð\2wßðÁÆŒÄ$æùÚgŸ}ò1ûõ’'c‡7Q0܉uº^}´•JÍK«^*F7(Ù´ Ñ7¤Ð)žð4ªÎq§ÍK¡ $„w`¤ /FæÑ‰OÜl\Õ= £×ˆ—ý裆Q[Þ±Î(8ö:4OqÃÞïUHë_ý5d—9œvÛm·0¿{ÄÔd9hÀâcܸq¡aÃ=ößÿÀŸ…Æ£ ‰Ç^«lýrâ›c„Ö`ž‡Ð˜7o^Nó^…“+ñ=Ä/‡9;ž!ž?¼y`@ã—‘Ãçž{nˆ÷~ÿý÷Û?þhLÚ»É&›„ã<«™O>ùdÏAhªØV[mD#<¿Ê³—_~9FðZguÊKªc" " " •$ðÔSO…wŸs„Óy7p¯"ÞÍdùC€w67Ê5W¼WV×üÝœùpÊ™”°†óÝðÞÍ<:¹šÏc™kúšLçed°â\ysi>ðÀA0BÌ©ŠW>Â@eê±>¹ä¡¶Q#$É|V„4$9"mYf-[¶ ƒÐȼa. á…ÄsBx?–Ž;áÍû2_M{E@D@D@D@r!À»¿ GhCn)¢Q,ybOX“kF\;Öz÷î^¢‰m̽é¨÷ðd¤qѨK—.Ad£èôÓO·!C†„—nB Ì;7ÄØFä $@!Ò2Á01ÄYbcä^/ˆkðªnè:âlðÁAðÀ³iذaFa~R:» ÅœDž¾hÑVXyå•S²ÏœN ¼òÊ+Ãþ>}ú¤Ïõ<ûë£sÍ_UÒuÖYÆâ¶ÖZkYUÂ~ûù¥¸f^Âû±0§+QùG[‘¶!Ëõ×_Ÿ|ÎÞRd¥2‹€ˆ€ˆ€ˆ@u0/hB '"¢Ð¹¥ˆFìD,b!qb+Ån᤮~BM­iŒà½H‚·aÉÆd«Û{s·¢ƒŸId )˜2kÖ¬ðòèé˜t¯fÍš%Ï)Ä L4*Þ|óÍ%²ÏÈHn„L¹ãŽ;BÚ%渃‘³Lj{Ï=÷„ÉZ }†`Br&ˆEÐ#/Lj[«Lýúõ©_FäQÇ‚bRmY¿~ý‚øSæØbä"!<”ˆß—Æ a1ˆâb%?0â!ùªjŒ>%ô¢(õábi|=F³úÈç<0>¤m*à7w€iÓ¦%ÏÞqÇíàƒ¶¿ýíoÉ}Ú˜À©§ž<†˜«O‡Ö‰¹ZØÅ»5ï’´iÇó(0Z3fL“ˆ¡¯N­º®ÝOD@D Ð ¼úê«að!`ÝaÔ½{wëÚµ«ïÒZD@D À0'/¡êY‹§Hûš%]‡wœLD@D@D@D`IF,±Qªh´h.#´£8†Ý’—*Þ=_~ùexÁ̵„íÚµË5iÖttóÖTd>:–yp…ÁËp®FœõB´ú¨“úàä¡qn»í¶0·Ó Aƒì³Ï>³ñãLJ¹—†ZÙÒ=E@D@D  ¼ñÆA,ºë®»’ùç½0t,þþ•<¨ ‚%@h:ÚÇî}D;’HˆG̉ԳgOk˜‡L&" " " "°Ppˆ%ñ[bN£ÁSưkߺ½=x܃jP/äW«ÿñŶÇ{„Éd Ñ«W/kÒ¤IÊ=gÍšO(º¹sçÚW_}nµâŠ+Ú¥—^º„`TÙÐ%D@D@D@D   <ðÀá]êóÏ?åX}õÕƒW‚‘‡}-è*ó" " 9XsÍ5­oß¾aÞ£;ï¼3Ì!ÌoèQ£B8z„#”ÊD@D@D@D ” 4lØ0qmÈ-E4Š…¢R Oç`êzÍdºÌi4qâDc¢æ?ü0Fx­´ÒJ¶Ë.»XÇŽÃdžË-·\]gO÷¼%ðÓO?ÙÈ‘#íæ›oNæñøã‚+¯¼rrŸ6D@D@J‹sÇ2p€È7ÝtS>þøc;ï¼óŒ=zô°ÝvÛ­´ ¨´" " " "°ˆž_îDÔ°AÃ$—ш½ˆEË.±•Œc—D@D@ „@×®]üÂ'œp‚5oÞܾÿþ{»êª«‚x4yòä)…²)" " " U'€ãKìD”*%æ3B,ÂâvU¿¥Îêxÿý÷Ã\E—]v™Í›7Ï6Ùd7nœ|òÉÖ¸qãêß@W(IM›6µ~ýúñ¨{÷îÁ|`ƒ^­?þxIrQ¡E@D@D@ŠŸPpÂ(r"JpA’XTüƒJ(" " " …D`Ò¤IvÄGØ£>²}ÔQG;R1”W<&ЦM;ï¼óÂÜx;ï¼sÈ)^­Çwœ]rÉ%6gΜ<ν²&" " " •'M j_ 7¤ài”ˆRçGñqm‹€ˆ€ˆ€ˆ€ˆ@]øñÇí /´{î¹'Ür£62Byg^]åC÷(Ûm·±Ü{ï½A@zçwì†n°—^z)Ì·ýöÛ— •TD@D@D ¨ 4l¸Ø‰mÈ-ÅÓ(в©L~¢Ö" " " " "P[Þ~ûmc¾"Œ˜ÇèÆo”`T[Àu]ûí·_øÝéÑ£GØÿú믞®#GŽLI§?D@D@D@D P ,X°È‰(Q¢Ð¹-ÞZ´±ˆ)±åé´:!0mÚ4ëÓ§½úê«Ö¢E 1b„yæ™¶üòË×Éýu€@óæÍmРAvÕUWÙ:묠\}õÕÆ@Àqˆ%v"JÍeDfãvùyåAD@D@D@D øü÷¿ÿµÎ;ÛÓO? ×·o_6lXñT%(k¬±†]|ñÅ6tèP[mµÕì矿] °?þ¸hÊ©‚ˆ€ˆ€ˆ€74 à<„QäD”"á‚$±¨¸•ND@D@D@ò…ÀË/¿l;ï¼³}öÙg!K„¦ëß¿¾dOùr tíÚÕnºé&Ûk¯½Bº‡z(Ìu4yòärÏÓAÈÙ´ Ñ7$%Ì×ùyåAD@D@D@D ¸Üu×]vÈ!‡Øï¿ÿÂÐ=ðÀFÈ™ˆ€ˆ€µÖZË®¸â ;÷Üs­E‹6{öl8xýãÿù¹çž{Œ«}ôQ^äO™t ,v"" Ûâ­E{‹X[žNk¨6~ýúÙu×]®ƒgG2(íÚµ³‘#GÚI'Šó /XŸ>}ì¹çž+†â© " " " EF h@ -‹ˆRD£ÄtGA,BUò¥È8¨8" " " " õDàð÷Ç{,ÜO#æ0’‰€ˆ€ˆ@±@(ºð m©¥–²/¿üÒŽ=öX›2eJ±Så("±QŠhDƒ§QÂèlA™Åq슨ü*Šˆ€ˆ€ˆ€ˆ@@0š9sf¸+“†÷èÑ£Žs Û‰€ˆ€ˆ@Ýèܹ³]sÍ5¶Új«Ù¼yóì·ß~+÷æeee6wîÜrÓè ˆ€ˆ€ˆ€Ô$„"œ‡p&ŠˆRD£8'ðO&" " " " Õ! F×_½m³Í6Õ¹œÎ‚ °ãŽ;Ú„ lüøñÆœGÙìî»ï¶m·ÝÖ6ß|sëÝ»·}þùçÙ’j¿ˆ€ˆ€ˆ€Ô(‡Xb'¢TÑhÑ\FÜ5ŽaW£¹ÐÅD@D@D@D@J†@,3ƶß~û’)» *" " k¯½¶uèÐ!+ˆÏ>ûÌÎ>ûl#¡[¿þúkëÖ­›½÷Þ{YÏѨ h@Áy¢È‰(E4ÂIbQMàÖ5D@D@D@D@bÁhÔ¨Q¶óÎ; Šˆ€ˆ€ˆ@DàÝwßµ Ø)§œb‡z¨Mœ8ÑZµje'žx¢ýúë¯QJmŠ€ˆ€ˆ€ˆ@ÍȦ¥ˆF¸!¡(a¾®Ùlèj" " " " ¥@ Œ†n»í¶[)[eJXk­µBúï¾û.¬›6mjünâq4vìØJ]K‰E@D@D@D 26\ìD„6ä–"ÅBQ6•ÉOÔZD@D@D@D@2ˆ£K/½ÔöÜsÏLÉ´OD@D@JŽÀÏ?ÿœáe½õÖ³–-[ÚÃ?œdñ—¿üÅöß{öÙgSÒ&hCD@D@D@j€Þή …ÎmñÖ¢=ˆE,$Nly:­E@D@D@D@D B}ûöµ™3g†tÆ ³}÷Ý·Âs”@D@D@Jáæ9äû¿ÿû¿dqé{Ù{ï½í‰'ž0%7æ9šßøøãíþûï‚Rì‰äǵª@(Âyg¢Ø‰¨Q|Á8'ðO&" " " "PÚè°êÝ»·­´ÒJvÇw”6 •^D@D@ªA`¯½ö²—^zɆÂÑqÄ6uêÔpÅVX!yåO>ùĆ ’Ê®yóæFè×ÝvÛ-™Î7¾ùæµÕüO­E@D@D@D '8±¸âQªh´¾ P  IDATh.#¦2ŠcØåtu%(:xõéÓÇ“sÙe—]ùT ¨kÌWÔ¨Q#>|xXèY{íµ­G!+O?ý´ 0À˜‰¹™óˆô·ÞzkØã7ÚV[m•Ìö•W^ŽÝvÛm¶îºë&÷kCD@D@D@Ê#À;HpÂ(r"JP‘$•‡QÇD@D@D@D ´\|ñÅa$ôwÞi-[¶L)üüùóP;,2Üð»9pà@ëÔ©“Íœ9Óþô§?qh¹å– ^Hýúõ3æ?ºþúë­C‡É‹¶oßÞ8Æ ÂÛñ;kÛm·]ŽZµj:®˜o‘ÎJèáPQE@D@jœÀ[o½®yÀd½öÔ©SÃ1~w™÷èØcÍšVD@D@D@D <AJhAXìD”"!‘UÉ—ò.ªc" " " " ÅG/"FµnÝÚŽ?þx»úê«íÑGµW\ц bx`²ÐŒlfrîfÍš%÷iCD@D@D òVXa…paê2Ù«¯¾¼{—Zj©ð{L˜:™ˆ€ˆ€ˆ€Ô؉h±ÏÑ¢+O£„‡QÙ‚2‹ãØÕÄu ü'€gÑùçŸ2Šh4mÚ4»å–[ì‰'žHŒHðÒK/Ù»ï¾æSÈÿ’)‡" " "¿öÚk¯0ãšk®Y"“3fÌs2XcôèÑa^£%i‡ˆ€ˆ€ˆ€T‚€;áL;¥xŽÎø'(ˆ@7ß|³Mš4)YhÂб¤ÛìٳÄÝÛn»­í´ÓNé‡õ·ˆ€ˆ€ˆ@%ð[Ë|F Ü`@oŸ>}‚çïm·Ýf×_½5mÚÔ®½öZÛl³Í*qU%ìpbq'"Ä£TÑhÑ\FhGq »ì—Ôb!ð믿ڙgžÞO9åkß¾½õïß?„¥K/ã{ï½&áž;w®]|ñÅé‡õ·ˆ€ˆ€ˆ@|ðÁ¶Ê*«„а»í¶›ñ;KÿÌꫯ„£6mÚ$¯Êoñرcí™gž±ŸþÙÖYgà´ß~û%ÓhCD@D@D@²à#8á@9¥„§CE’X” ¡ö‹€ˆ€ˆ€ˆ@ñ˜?~Ñüûï¿[¯^½¬ub>#¼è¼¢#*Ý8Æœ 7ÜpCèÈJ?®¿E@D@D@ªF`×]wµ»ï¾;BÌ_´îºëÚĉ-Œ&L˜`;w!d;tè`ýúõ³–-[ÚgœaW]uUÕn¬³D@D@D@JŠ@6-(ÅÓ7$%<º¤©°" " " "Pºnºé&ûòË/mòäɶòÊ+=ôtÒIv×]wYÏž=SàœsÎ9VVVftfÉD@D@D@jžÀ[o½e›o¾yð:jÖ¬YòcÆŒI C'Ÿ|²sÌ1ÉcÌA8tèÐà-LøX™ˆ€ˆ€ˆ€d#À\‰.¡ ¹¥xÅB‘'ö„Z‹€ˆ€ˆ€ˆ€/:™ð0rÁˆ’vêÔÉ6ÝtSûüóÏ3\‚QF,Ú)" " 5Bàˆ#޽±`ôÆoØÈ‘#ƒ÷Ñ¡‡jÿüç?mÆŒÉûvØa¶öÚkÛwޙܧ ÈD`Á‚END‰ƒD¡s[¼µhb RbËÓi-" " " "P¤æÌ™c³fͲå–[.¥„¼~ÿý÷)ápð>Úe—]‚˜DœL¡ëR.¢?D@D@D@ªL Q£”1AD¢¿fĈvöÙgÛî»ïBÓ½óÎ;É{,¿üòá÷;¹C" " " "@Ѐí~,v"JÓ±UÉ— ×Ò.""°ì²Ë&'Øž={v²d·Þz«ýôÓO¶Ï>û„}?üpWGúöíÛÛ}÷ÝgÇ|2½6D@D@D@j—žF[n¹eð&¢£ç¢‹.²Í6Û,„¨#ÌìÛo¿m„µkÛ¶mífDW(*±Qê•D1ƒ§QÂèlA™Ç.vK** *Œˆ€ˆ€ˆ€ˆ@’^CÌ_„@´÷Þ{Ûwß}&×f$sóæÍ 1‰Ío¼±Ý|óÍÖ¤Ió9>ýôSkݺuòZÚ¨Ë,³Œ-½ôÒÉ‹ã‰D¸ºÃ?ÜŽ<òH›;wn˜o°{÷îÉ4ÚLŠÐ\r-(ÅÓ(GÇ ü“‰€ˆ€ˆ€ˆ€?æ/;v¬­±Ævûí·anVZi¥àÄ ¢AƒYYYY˜xÁÛi§Âo$™ˆ€ˆ€ˆ@íÀÓ÷Å_ ƒ9ün„—½öÚkßß|ó <8x"ñû}ï½÷Úe—]‚0oLD@D@D@bF,îDıO#^(‹˜Êˆm™ˆ€ˆ€ˆ€ˆ@ñ`¾¢¦M›£–±Ž;†Åß O8á;묳‚p4}út2dˆµlÙ2 „yáܦM›ä>mˆ€ˆ€ˆ€Ô¼‰¦L™b ƒ=øÇèqýõ×ÛË/¿lûí·_ØÇï6AVXa?~|kwõÕWâ@ÿ‰€ˆ€ˆ€”4oû¢È‰(ÅÓ÷#‰E%ýœ¨ð" " " %@àÛo¿ al:tè`Ûl³{î¹ö¿ÿý/Yò0ˆ(ñ×qÇÂÜ|øá‡ÖªU+ëÚµk2 tDí¶ÛnAxJ9 ?D@D@D@j…ÀꫯnW^y¥½þúëvØa‡!bÝø­vÁhΜ96iÒ$ûÇ?þaÏ?ÿ¼ÝqÇöÙgŸÙ±ÇkóçÏ÷S´(aÙ´ Ñ7$ï$ðu 3SÑE@D@D@D èüöÛovôÑGÛ»ï¾kx`˜<›N%æ1züñÇSÊ»Á„p6§Ÿ~ºýå/±† ¿:>ôÐC¡ª_¿~)çèÚ%€gð¸qã€æ"|ë­·²Þ°mÛ¶¡Ÿg“M6±Ñ£G±ÉCÙe=ID@D@D@J‚m|ŽÐ†Ü·ü{b¡È{B­E@D@D@D@ ŸÀ­·Þj_|ñ…ÝrË-!ÜÜ7Þ<þóŸÿÏ¢3Î8Ã~þùç% ú /ØÌ™3Ãþ3f„°u}ûö5:£d" " " uK`»í¶³|Ю»î:Ûh£–¸ù²Ë.kn¸a˜ÿÈnºé¦vÐAÙ 7Üñ·ÞÓi-" " "P˜ïÐ5!¢Ð¹¥ÌiÄNÄ"'¶¬AâŸLD@D@D@D ð ðBÈœݺu³u×]7ˆ÷¾ûï¿ßöÚk/#” f# :ÔvØa‡fÇw´ÕV[-„´cMx»}÷Ý×d" " " õC I“&¶í¶Û†›¿ñÆöÓO?¡gÝøm¿ôÒKí믿¶?ÿùÏa7s"á=¬ÂNIk(]AJô `ñ»A£8–­‹E¨JˆE Êÿd…A€úc‰ë´0r®\B@õWØÏêOõWØ ;÷úüå^|ð}÷Ýw¶Ç{$ßî¹çc΢‘#G†‰²Ï?ÿ|›}úXü~ÇüCƒ JžðÔSOÙìٳÈc`½ôÒKÛ®»îZ'ó©þ’ÕQª¿‚¬¶d¦UI¹¡ú+ÈjKfº¦ëï¡ÇÜðÆ3ØÃÐ2Á5Jüw>™mT‹@M×_µ2£“+M@õWidyu‚ê/¯ª£Ò™QýUY­žÐxéÆÁ‰hÁ #ˆ,Ód™àD´xv£ÄíQú|â#Wýj5Wº¸ˆ€ˆ€ˆ€ˆ@@B,Úd“M‚Ñhï¿ÿ~Öë3ÿFÍš5K¦aß/¿übM›6MîÓ†ˆ€ˆ€ˆ@~@1bD˜»¨{÷îvá…Zÿþýдÿûßó;óʈ€ˆ€ˆ@½p=(xáq”ø‡¥ˆFÄ«“XT/õ£›Š€ˆ€ˆ€ˆ@µ|ñÅÖ¹sg›9s¦Ýzë­vÚi§…¹ŠºtébcÇŽ5§ÂÐÏ?ÿl'N ‡ðXf„òf›mf«¯¾zzrý-" " "Ç%Ë;@×®]mÊ”)6}úô––г2H'M JpCrO#_§_H‹€ˆ€ˆ€ˆ€äSN9%Ì]ЩS'c´ñQGewß}·­·Þz6|øp;øàƒíã?NÉøÞ{ïÎA(Úo¿ýŒ ³‘|Î9礤Ó" " " …A€0tgu–½ð öòË/‡°´q¨ÚÂ(…r)" " "Pè;páÈCÔqßÑ(Š}zÆtÚ)" " "P\æÌ™c—]v™}øá‡víµ×WáTJÀqˆ%v"JÍeÄ•ª¤Ò|u‚ˆ€ˆ€ˆ€Ô+-Zó~øáöÅ_ØAd£F Hé[zé¥í”SN±)S¦X÷îÝÓëo"$€wrŸ>}BÉn¹å{â‰'а”*’ˆ€ˆ€ˆ@.Ѐ‚óD‘QŠh„ ’Ä¢\p*ˆ€ˆ€ˆ€ä/¿ü2„›9묳‚×ÑÆol£G¶nݺÙ{ï½—1Ãë®»nÆýÚ)" " "Pœºvíj»ï¾{(ÜÕW_móæÍ+΂ªT" " " åȦ¥ˆF¸!¡(a¾.÷ª:(" " " "7Ö[o=0`@ÈOëÖ­í¶Ûn³SO=Õ>úè#£ƒh̘1VVV–7ùUFD@D@D@ê‡À±ÇkM›6µ7Þxî¹æšúÉ„î*" " "P¯6\ìD„6ä–"ÅBQ6•ÉOÔZD@D@D@D ¿ ðxôÑGÛÝwßmJW]uUE‡ˆ$(]l°A2LƒJ^|ñÅÒ…¡’‹€ˆ€ˆ@‰X°`±QèÜo-ÚƒXÄ‚€”ØòtZ‹€ˆ€ˆ€ˆ€(¶mÛÚĉ­ÿþöÎ;ï„v¿ÿþ{–FÙ¨ ÇsŒm³Í6¡áH&" " "PZ‚”Ђ°Ø‰(E4JLwÄ"T%_J “J+" " " ÅI Q£FÖ·o_»óÎ;mذaÖ¸qãâ,¨J%" " "3ÂÔaÏ<óŒM˜0!lë?Ò#;¥ˆF žF £²eDZ+=L*±ˆ€ˆ€ˆ€õ×_ß:vìX|S‰D@D@D@*M C‡Á™Ço³gÏ®ô5t‚ˆ€ˆ€ˆ@a@(Âyg¢Ø‰(E4ŠÃÑqÿd" " " " " " " " ÅIàˆ#ްUVYžýö[›ÐE@D@D@D YŒ?Þí¶ÛnnÖ¬YÍr>DD@D@D ´ µk×Î}öÙgî®»î*íÆ¨ö" " " yHÓ‚"¢aH(J˜-ó:º ‰€ˆ€ˆ€ˆ€ D£·ß~Û5ªhꤊˆ€ˆ€ˆ€/:¸½öÚËWðž{îqß~ûmñVV5h-Z, "B2‹ˆF¡P”¦2ÙŽZŠ€ˆ€ˆ€ˆ€3f¸É“'ûŠ 0 ø*¨‰€ˆ€ˆ€%=÷ÜÓ-³Ì2îã?ÖÜFEÙCª”ˆ€ˆ€4.êê…ADd¡3[ølÁÄ"H™gVNK 0aÂ_Ë.]º¸~ýú•@UEb бcÇìÜF¤¨›;wn1TKuh"^ÊhAXD2Óy±UÉMTVD@D@D@D ‘ |þùçnܸqþ¨Š2jd¸:œˆ€ˆ€TRÔ-¹ä’îÃ?T´Qô·š(" " F "ŠˆFð‘F™£ªê*æ±³µ(ND}÷ÝwnñÅwÛo¿}qVRµ(Z«¬²J$Úè§Ÿ~*Úºªb" " "  #€PDðÁDaQD4 Óѱ2Ò 0~üx_Ñí¶ÛΑbF&" " " u%@´Q›6mÜûï¿ïHS'(_ñƒˆ¢¢Ñ‚¹Œ@æ°+_$j™ˆ€ˆ€ˆ€”‰'º7ÞxÃ7FQFåѧj…ˆ€ˆ€‚@çγÑF÷Üsûå—_ Q SD@D@D ‰  ùà!ˆ‚ ¢ˆhD’Ä¢&î ^D@D@D@š€€Em´ÑF®gÏžMpRD@D@D Rì¹çž®uëÖîí·ßvG2ò#¦ED#ÂP”0[– µHD@D@D@Ê‹À+¯¼â{ì1ß(E•Wߪ5" " "Pk¬±F6ÚˆuóçÏ/D5tN&$ТÅ "´!³ˆh Ei*“í¨¥ˆ€ˆ€ˆ€ˆ@q7nœ¯H»ví܀УRª…ˆ€ˆ€ˆ@I8p kÙ²¥{óÍ7ÝÝwß]ÒmQåE@D@D@j¨®^DD:³…ϬA,—yfå´(B_}õ•›0a‚¯QFíÛ·/ÂZªJ" " " ¥F`­µÖÊF!ipq©õ ê+" " ¹ x (£aá÷|D4ÊLwäÅ"T%{ä>¬¶Š€ˆ€ˆ€ˆ€’‚Ñœ9s|eTȞйE@D@D üm„Céõ×_w÷ßù5P-𠢈hÄVi”‰0ªª®ra;±(>ãÇ÷•êÑ£‡ëÖ­[ñUP5(Y]ºtq;ï¼³¯ÿ¤I“J¶ª¸ˆ€ˆ€ˆ@MELED£0;ð'(N8ofΜé+·ÝvÛg%U+’&Я_?_ÿ'žxÂÍš5«¤Û¢Ê‹€ˆ€ˆ€D 8Ä# "ŠŠF æ2b·0‡]ô0z%" " " "P üq_•W^Ù1Ÿ‘LD@D@D@›@ß¾}ÝꫯîûðÃ7öáu<@òÁCADш$‰Eê!VD@D@D@ê@`Þ¼yî™gžñ{l³Í6®M›6uØ[EE@D@D@D m$Ñ(f*)" " ÅN M ŠˆF„!¡(a¶,ö†©~" " " "P‰Œ¾øâ ßô^½zU"µYD@D@D ™˜hôÎ;ï8 GÍ]§&&ТÅ "´!³ˆh Ei*“í¨¥ˆ€ˆ€ˆ€ˆ@áL›6ÍŸ¼cÇŽ®G…«ˆÎ," " "PöºtéâzöìéÛ)Ѩì»[ ¨ÕÕ ƒˆÈBg¶ðÙ‚5ˆE<2Ϭœ–" " " " EDÀRÓe´È"‹QÍTr$`ÑFˆF}ôQ96QmŠ"à5 Œ„…ADÑ(3Ý‘‹P•ìQQ”ÔX(¯¼òŠ›5k–¯©RÓ•@‡©Š" " "PÚ¶më˜WQÑFeСj‚ˆ€ˆ€ ¢ˆhDi”‰0ªª®ra»`=( §Ÿ~ÚŸ½C‡N¢Q;B§ "Ю];gÑF“&Mª –«©" " "PžŠ"˜( "ŠˆFa::vàO&" " " "P\,5]ïÞ½]«V­Š«rªˆ€ˆ€ˆ@ÙèÛ·¯oQÏ6¿bÙ6V  @à0ˆ(*-˜Ëa» `£&Š€ˆ€ˆ€ˆ@I`‹4² ©K¢âª¤ˆ€ˆ€ˆ@É`ÀJ—.]|;”¢®ä»S ¨ph@>xˆ¢ ˆ("‚$±¨Â¯5_D@D@D ¨ ˜`´âŠ+*5]Q÷”*'" " åIÀ¢HQ7{öìòl¤Z%" " @ M ŠˆF„!¡(a¶¬6j¢ˆ€ˆ€ˆ€” KMG”Ñb‹-V2õVEE@D@¨(XU IDATD@ʃ€‰F_ýµ{ä‘GÊ£Qj…ˆ€ˆ€T -¡ ™ED£P(JS™lG-E@D@D@D@š—À?üMM׫W¯æ=¹Î&" " " k®¹¦Ûzë­= ¥¨Ó%!" " ¥K ºzaYèÌ>[°±ˆR晕ÓRD@D@D@D ÀHMǨÞöíÛ+5]ûB§J&Я_?ßüiÓ¦¹—^z©’Q¨í" " "P²¼”Ñ‚°0ˆ("e¦;òbª’=J¶Åª¸ˆ€ˆ€ˆ€”›ÏˆÔtK,±D™µNÍ(¤¨[a…|umT*½¦zŠ€ˆ€ˆ@:0ˆ("±‹4ÊDUUW¹0]úá´ED@D@D@D 9˜hÔ»wïæ8Î!" " " ‰–Zj)gÑFS¦LI,£•" " " ÅM¡ˆà!‚‰Â ¢ˆh¦£cþd" " " " …'0}út÷Þ{ï¹¶mÛ*5]á»C5Š'°é¦›zï¾û®{ã7*ž‡ˆ€ˆ€ˆ@) pˆGDÌeDãÂv¥ØXÕYD@D@D@ʉ€EõêÕË1ºW&" " " …$°á†º–-[ú*̘1£UѹE@D@D@êA È@ED#B$Õƒ®v&&ðꫯú3l¼ñÆM|&^D@D@D@j'ÀœFm´‘/(Ѩv^*!" " ÅF M ŠˆF„!¡(a¶,¶†¨>" " " "Pi¸‘›9s¦oö:ë¬SiÍW{E@D@D@Š”€‰F¤Ñ•‰€ˆ€ˆ€”-¡ ™ED£P(JS™lG-E@D@D@D@š‡ÀË/¿ìfÏží–^zi×¥K—æ9©Î"" " " µ Eöù矻_|±–ÒÚ," " "PLª«‘…Îlá³k‹x ežY9-E@D@D@D@ DÀRÓeds¨*:­ˆ€ˆ€ˆ€d tïÞÝ-¹ä’þõsÏ=—]¯'" " " ÅOÀk@- ƒˆ"¢Qfº#/¡*Ù£ø›¦Š€ˆ€ˆ€ˆ@yE£òn©Z'" " "PJZµj¥yJ©ÃTWH!ED#ÊûH£L„QUu• óØ¥K«E@D@D@D@š˜€æ3jbÀ:¼ˆ€ˆ€ˆ@½ XŠ:ÍkTo„ÚQD@D@ B¡ˆà!‚‰Â ¢ˆh¦£cþd" " " " …#ðé§Ÿº÷Þ{ÏWàøCá*¢3‹€ˆ€ˆ€ˆ@=zøµsçÎuÏ<óLB ­(Vñƒˆ¢¢Ñ‚¹Œh@˜Ã®X¤z‰€ˆ€ˆ€ˆ@¹x饗|WZi%×¹sçro®Ú'" " "PbÔ²üòËûZ?ûì³%V{UWD@D@*—"€("ŠˆF„ I,ªÜ‹D-(>/¾ø¢¯ÔÚk¯]|•SD@D@D@D CÀRÔ=ÿüóâ!" " "P"Ò´ ˆhDŠfËiŸª)" " " eIàÕW_õíêÚµkY¶O(}[l±…oÄŒ3ܼyóJ¿Ajˆ€ˆ€T-¡ ™ED£P(JS™lG-E@D@D@D@š–À¯¿þêfΜéO¢ùŒš–µŽ." " "P6¯Quuµæ5ª?Fí)" " ÍJ€ïmÓ„ÈBg¶ðÙ‚5ˆE<(œyfå´¨þóŸéx¼òÊ+Ù§­Ï(Ò'8Z‡êø³Á¸wÞÙ‘æéÖ[oͶó²Ë.+ÒÚ§W«\Û•ÞâÒÙr饗úkëÓO?ÍV:i]vcžì·ß~®OŸ> 8‚v-Ìg4þ|_U‰F¥Ðcª£ˆ€ˆ€T&UVYÅuìØÑ7^óUæ5 V‹€ˆ€”¯e´ , "ŠˆF™é޼X„ªdÒkªj,"PUUUÙÑì­ZµòŽoŽ“¶¾>çhÎ}>øà·ÿþû»©S§ºÙ³g»ŸþÙ½ûî»þ‡L(ˆ•š¶”Û5eÊ·îºëºuÖYÇ=ôÐCŽ|甬 E–\×É[o½åºwïîî¸ãŽ\Å ¶íå—_víÛ·w+¯¼r¶Ië²ëùñpýõׯç´[©@4Â:uêäÚ¶m[*ÕV=E@D@D@*÷éØ3Ï·öòË/ïÌ ËÆRsº—j»^{í5wÌ1Çøˆ‰ãŽ;Î 0À`Xa…Ü—_~飿N;í´Z/«Ï>ûÌÍ™3Ç-²È"µ–mî&°Z>wΟ´®1êõúë¯{!´ÔDÏÆh{¥Ã>¯We" " " "P̸¾ë®»÷þßÿ½[j©¥Š¹ºª›ˆ€ˆ€T<„"ôÓL ŠˆFa::vàO&"Pˆ†0#•›YÚzÛ^ŒKÄï‡~ØW ñë¯ý«[f™eük¢Ž>ùäÿ¼C‡©T¬TÛÅÆ£Ž:Ê‹={öô)aÎ÷Ìæ›oîxà7iÒ$—h´å–[º'Ÿ|²(ûÍÖPˆLZ××i±ð\q\£ø˜h¤¾.¾¾QD@D@D@¢l^#Ör¿Êà=™ˆ€ˆ€ˆ@q@0âEÒÓáĉ‡ñ\&"PœpÂ_sÍ5n§vrn¸¡cD×Þ{ïín¿ýöH…§OŸîS´m¼ñÆgû¨Q£ÜW_}åºvíêÓ‚á|7 Å¡Ð9™¶ÞöK[üñþ'œp‚?çÉ'Ÿì6Ûl3/œ~úéÙ¨¦pÿ'žxÂ1õµ¹•ÂåyçO|þôÓO»C9Ä}ûí·~û¼yóüy-ú#W{~úé'wùå—»¾}ûz®ƒv¤ƒ1b„¯Ï^{í9'©ÒŽ=öXŸ. ¦ñz3‡öÑG¹SO=Õ¶[mµ•;øàƒÝ„ |$Jä )/Ò.R¿xâ‰~n§M6ÙÄ 6ÌGaí°Ã¾]̹Z¾ýðÜsÏùvôêÕËÏÕ¿wÒI'¹^x!<œ»øâ‹}ú¹Å_Ü}öÙÙï ­¹æš¾ìçŸî¾øâ‹È~ñLηÑF¹sÏ=7»‰>»âŠ+|$™±=òÈ#Ý´iÓ²eÒžð=7~üxÿÞÙtÓMý{„÷ÑŒ3²»pÎ{î¹Çíºë®þšØc=×Ð{ï½çÙ±4Krî'­£üܹs܉€ã=̵òÈ#Ø¡²K®ã .¸ [Žë†h«W_}ÕµlÙÒ¿—³…SžÌš5Ë}ôÑÁF´qòäÉ5J“¶‘÷QL0àú‡7×ëèÑ£k”g×Ö™gžé¶ÙfGÔey¿„öá‡:>¸NºuëæË{GV;>;º±ðs¹ö=UBD@D@D@šŸÀÒK/혇½ÿþûÍ_QD@D@D NLòDAQ$Òˆð#‰EuâªÂ"ÐìpÒpÀî?ÿùOöÜ8οþúkïðµ•̃pƒÓ#UNjÓ¤ÌÂÂÔVáûø "HœrÊ)YÁh—]vñÂÀÈ‘#½—B8ª-eQ1øóK[ï7æø‡Süã?ö%¯ºtéâÔD/*{ê©§|T ÏIoÑ.Ìqƒ¨1þ|µÀö>}úøÈª-"Á‘lŠÛÇŒãþö·¿¹ÿûß~Nþ8ͱP °Ô˶!\ Q_¢ÌÂòD̘`„ÐB´‘;8Í—]vYÉxrå•Wf#Ú“aƒã"*ÕÖ&Î]ßvq½0çè#3wß}wö:`½µ«.ý€˜a_,°¢-\Cä0GT1#ºr ˆlq[b‰%²«ˆ Ëe&j˜(ƒÐÇõE”N…F›­niǻᆼ„Ã{ V/¬ýŠ`ÄûŠhû^$‘‡È9[ÇyQV_}uצM›ìi“ÖqMò#úæ›ovD8a\sDã æ™hD9Þë¼oá‹!"þp­²ÌeD"DQ§Ûn»-Û6"‹ˆÐJþùÏúö™xÖªU+/fÝd¢B*ÂÂS(þYªá‹àËua© Ãî¼óNÏ»6ÑËŽU©KûµÏäJå v‹€ˆ€ˆ€”D#~‹I4*>SME@D@*—>Gó¡¡ ™ED£Ðùe…­ –" …'0nÜ8?©(5Yc5¼@bNW"Ì®»î:5Ák£‹.ºÈoúñdzâŒEÞ°gep8_}õÕÞ©ŒÓØD#)3/ÒÈaDTPÎ^³q&qa‚(¢±ÌpŠ›ž6Μ9Óo S{!²áÔÆ8ÆM7Ýäí8×IÕ7̘áŒ'…†ƒãŸc#!áPG0ÂL°á9õ@À¶Ýv[¿Ìç_}Û5qâDéÃ9:uêä#<¨×:ë¬ã,Õb…E÷Ô¥Âv‘ÒŒ¨-ôŸ¢¥\#}|âFßšq­ä2D ¾§,Òˆï)IbSø}?&¢&¢õE0J2ê~íµ×z•t~áñèCD#¯ØŸë™ÆÆ5mQQb}ŠÁV»†ÃsÙ6[ò¥OÂ×zܬM”Ã8&QMô+ss…f© Zl£~«­¶šŸ'),>§­¼ÿx?!ÖÈœP´›(*Yí˜Ó³ë¢ö=TBD@D@D@ K€H#ìË/¿ô)Ò []D@D@D ¯eüY~-³ˆhô—ùË8³P•ìaµ(<éÓ§ûJ d0©|’1†9ÿqÖ†ÎFµÎ~ùˆC¡ø–O:o¸Î"XFÔ¼öÚkÙb-ŠŽ;f×Sg=©³ÌˆRÉ×pNÛ‡\èÔgÿ°^a”6faT“ô+­´RVH@ˆBD òÂæ> ë»ýöÛûhsÒ“ò¡ãþûï·Sæµlh»HgfŽh^‡ÂC]ú‘áCx =;›5k–_Ç¿ðú‰ VÈÒ"òÚD9Û.™o!1Þ§¤#Zˆˆ0?‹ ÷?þùçýª=zÄ7e_3ŸÖ³gÏì:{bm ëb© Ã÷IÒ:ŽËõIiõHI‡ØFs,™qM"z7Þã¤| EœxÞ뤳trñ휙¨#Œ÷õ ߯¶^\¿&>ql¢órÍÅv¢îX"2Ÿ)yïþ.L‹gçѲ&æ=ÃÂ÷fÍRZ#" " " ÅC ¼GU´Qñô‹j"" " µðÒ‚ ¢ˆhÄŽ8ø«ª®ra»Úªí" MKñÂÒ¤‘¦› Ï̈.3‹Úá5ŽýÉ“'ûMDšRÌÌÄ>B!m½í—¶ÄÉŒ1é}‘bëÙ:Üq>“æ cî抙:uªsyÀ€þy>ÿÂs„maßPÄ·…*!3ãžay"],J…óm²É&~Þʱ?sê„FTó4Yé æDBÉ×êÚ.®¼˜«Ê Å,lW]ú(7Òò@Àû.¾øb;tvî-"œ,Ú,»qÁKˆ¸Ù¶mÛøæìk¢]ˆæ ëËFTøÞwß}>ò‰H¢\†`B”’ &Ie;¸~m¤¤•¡D6Á3l××Ñ7fñu|¿r­qºk‹%y¡Q.<–m#ZˆS¼_ÓÌ®iæ‹mའ§ö^߯¶×^™gŸ1aû­¬-á‡1ÔèÑ£ýÜPô5iCaÍÊk™LÀÞPüO.©µ" " " "Pøm`s|J4*Ž>Q-D@D@D €LErî„éèØ?™ˆ@q`.3æ[!í—¥c=iéprã6 E Óæ€D0²Tu¬³a8©-õWÚz;vÚ’W–¾H'ûÁ@ysLóœ={vDxËǟ׵]V?ŽÃs„*¢u&L˜àÏë0â«>ý@´âÍeDÿ›YÄbPR",XÔ\r™];ñ>µ}¸v™_‡¹zHãF{Y[ò ™Øúp‰èF?Æë=vìXŸj#^_êr’Öq^_ê™fô×_Rº>æYB| ¯Ç¤ãðY€qœ¸‘Ž‘ëÈ,3„!Þ«q¡Šk*ŒÀ³Ï{¯Ø1Â¥•á}œ$D…eõ<™ìí3\¢Q2#­(ND‘AB¢Qqöj%" " !‡xXâQT4Ê8¢¼ƒ,“¾§”LD xàxg2y‰8k>úhŸâ‰QÿDŽðšTZ¡sqÚ´inòiÓn¾ùælcBÇ{(¤ä³>{”'iÇC@°ôx+®¸¢³>k˜·‘ ‘èòË/O9r~«-"‡Ï²0š €TrÎx›‹ˆ×03ñ‚4a;ì°ƒ»çž{²sQ&<Ö9çœã£CèæÁAoŽþ0ŒÔcg8ø‰L!ÒÂ5 öÏ×êÚ.D,ÚÉùFŒáQ£Fùë‡ó"X}óí®=æùA$Zc5¼pyçwf›¦£0á*œC)[0óƾkvÛm·pSç0ÇR¤Ñ&«»æ£Lµõñ%¢)ó-IŠ!a9Äú+<?z/¹ä_,|¯ ”qîÚÖqMRÿ_|Ñ †Ë-·\ö”p¥}”AÌãýaÑ:Vhâĉþºãum¢‘EuuÈ!‡dÅ/>?¸ÆIHÊ83®¯®]»úkÙÖ±4±.<ýÎ5ÿÈ#¸!C†øú†ûðñ—”vDe!¤ú{‹…â‚w|_½þû¼äU®Ôâ%" " " ÅF€h}‰FÅÖ+ªˆ€ˆ€Ô$€_ŸMö± ˆ("¡"™¯æ!´FD Ðpþž{î¹¾¤o³n¬°÷.Îbœ×8{íƒÉËôXèÜEžÐ1œ¶Þ Ç?7( -áúð<ÔñóÏ?÷GD€!rá±…hŒxDGŽSûÒwa8YÃôcœA ÏÏëz8ÏxàðæÇsî *…©Ó,b ú¨O«g‘yœ¡‘¯[·n^|A€4h羇9nÜ8îà£åH¥ÈûŠ9·ÆŒ㣬ˆ¢³ë÷â3猛½oÃöò^€1sQÄ^"!)KTë¸Æ(sûí·{~D~Q†ˆ9æZb_Yn&Á2)z1÷ÞÚ*" " " …#`ÉiT¸>ЙE@D@D æOŽ—ˆF„!ùÑÀ™ £pTp|'½( "tº_uÕUnøðá>R‚¹gvÙe•„8‚…ç4q(m}m-7gyü<æ|f}è€&êqÈ0¥<ž|òI?ïËŽ;î˜î¨íÜá9Â6²_®ö LuÖYÞIóñç¸ãŽóéäÂc!®0‡Â† cB¯o¹å¥D?Á›_úŠH"‹˜pæçJOÆqB«o»ˆ>#½b í<餓¼°ÅñëÓˆiƒöQ:Y|W•³ñÆû¨ûÈñ-:‚4|´ß¶‘fèŽGrb¢ó^͘1Ã7ÎGí dÐD°]V>\""fՆЄ˜ðFm¹å–î´ÓNóýI$}Ž€c©Ã÷› háu’´Ž:X4sûÀ€÷'‚#Ñ8aºIÄ·ï¿ÿÞG rM‘J‘ìŠ+®ð\j3æÖjß¾½»ãŽ;¼xLdí:òÈ#]‡²»ÛõÖß6"ò XÄçv6l˜#bh1„iB˜„Ç€ç¤Ì¥—^ê…W¢¼:è ;¼–9˜8Fæ(®M" " " "P4ìÞQ¢QÑt‰*"" " ‰ÈvcÂÚÙo2θlº«§\í†?8Üͯžï¶è´…›xøD‰GFª–Ié±J Úªâ•ØDvu1wî\Gz2„ž¿ùæ›îþûï÷ó6Q&ŒJ»hˆA0Ãpj!Ò˜†H‚(AÄÖæ›oî#3øpEXbæ~Á¨C¿~ýíÔMÝ®Æîkø¤I“ÂÆœZˆqØë¯¿î#màŽ8âˆHt’/P€•øþ+æ&;e9ößé§Ÿî7"ÀÝÊÙʱÿʹ¿âmSÿʼn”Ökõ_iõW¼¶ê¿8‘Òz]ÎýÇï9.bDË3@«Ü¬œû¯Üú*©=ê¿$*¥³NýW:}•TSõ_•­ õ î»»{ÐëA‘H#ª‡²ÄƒÑã™g™,v¿)\­uf¢!€˜CDFš`é®ÒÊ„ë™ï†9ˆ"!sî„FDs¦`D\Øü8a{nçž2eŠ­ò‘/ÙôäüóÏ÷‚s‘: ÁÈŒ¨ ¶c¦ÐÛ¶´%QJ¹Œh>‹›²]ué‡|ÛemêÕ«—¤!Êéé§Ÿö¢×B!‚‘CˆF2š,="j²Ñâ&`‘FÔ’h£rŠ»T;È€×€2Zúý"¢™ÛÈù^¥D@Êiµ˜‹$͘ÿ…y“ò5R“™hB&D¢víÚ¹o¿ýÖ§S³tu¤CTÊuî!C†ø9Y,%XÇŽ]—.]ò­JÞå,½BÏD¦OŸîÓ˜q Ò1¯KmFʺ¤9dl?„0ÒË1lS¶«.ý°Ì2ËXõòZ2?Ï^{íån½õV‰EZ;R£}øá‡>…Ü•W^Þò:¨ ‰@…0шÏ3™ˆ€ˆ€ˆ€”rÃý ¿›zôèQJÕW]E@D@D èÐY IDAT" „ADÑ(JüUUW9òØ!ÉD@*›Ñ(_|qNÌÕSc®“nݺùy—HÖ½{w/ ¦jÆ|,çœsNv[.'Ožìçš ×zê©áËF{Þ¿wÍ5׸¯¾úÊ >‹,²H$Šùy¨o>óÍ ­”fÏ<óL6rÉÊ4E»òí‡óÎ;ϪQ§%óÚð0c~™ˆ@n|æ’S¤QnVÚ*" " "Pœˆ62Ѩ8k¨Z‰€ˆ€ˆ€X‘é@¦ED#Ä"3vPj:£¡¥T6ÄDƶ믿Þ=Ú1÷Í'Ÿ|â£v–Zj)nj޽{»AƒÕ:—©ëÆŽëÅöcΡ¾}û6vUýñŽ:ê(·Ê*«øùy˜Çˆ¨(¢iEGtÑî»ïžw„SÛ¶ms2¥]Dá£w„N/" " "Po:uòû~öÙgnþüùõ>Žvh:iZPD4" E ³eÓUIGˆøòË/ý*EÅÉ赈€ˆ€ˆ@© í¸Ù?ü`Oµ("-Z, "B2‹ˆF¡P”¦2ÙŽZŠ€ˆ€ˆ€ˆ€4>üÑtñÅoüƒëˆ" " " "Ð BÑhîܹÍpFBD@D@D ®˜nÃ4!²Ð™-|¶` b gžY9-E@D@D@D@šÀO?ýäÏ"Ѩ`ë" " " MB M›6ÙãJ4Ê¢Ð(*^ÊhAXD2Óy±UÉEÕ UFD@D@D@Êœ€E…Ζ2o²š'" " "Pf–Xb‰l‹$eQ艈€ˆ€-0ˆ("Qci”‰0ªª®ra»¢m*&" " " eDÀ"$•Q§ª)" " "Pa[l1׺ukßjÍiTa¯æŠ€ˆ€” „"‚‡& ƒˆ"¢Q˜ŽŽø“‰€ˆ€ˆ€ˆ€4‹4Rzºæc®3‰€ˆ€ˆ€4>›×èûï¿oüƒëˆ" " " B€À!aQT4Z0—g sØ5ÊÙuZ H4ª‘ ˆ€ˆ€ˆ€”KQ'Ѩ:KU¨Hh@>xˆ¢ ˆ("‚$±¨"¯5º ¼õÖ[îàƒv›nº©ëÖ­›;çœsJ°ùW™tM]»vuÆ Ë§z–|òÉ'ÝÚk¯íî»ï¾zA»‰@”À/¿üâÖ[o=wòÉ'G7Á+»Þï¿ÿþ&¯Í¥—^êß[Ÿ~úi“Ÿ«”O ôt¥Ü{ª»ˆ€ˆ€ˆ€XrÉ%ýS¥§3"ZŠ€ˆ€ˆ@qHÓ‚"¢aH(J˜-‹«ªˆ˜HôÀtGGq„;î¸ãÜ–[nYÖp^}õUWUUå6Úh£&oçË/¿ìÏñ‡?ü¡ÉÏÕÜ'3fŒûì³Ïšû´õ:B˵×^ÛàÁ ˆˆ«¯¿þz½êÑ;Íœ9Óýúë¯nýõ×Ïy¸yóæ¹wÞÙp 9ËÕgãSO=åžþù»¾òÊ+~]s½·Ú·oïV^yål=êÛ?ï¿ÿ¾k¡+[Ñf|¢H£f„­S‰€ˆ€ˆ€4KOÇïW™ˆ€ˆ€ˆ@ñhÑbaÚYD4 …¢4•ÉvÔRD pp”þ÷¿ÿu\pÛÿýÝ Aƒ\ïÞ½ W¡f8³ 9n¸a“Ÿí¥—^rK/½´ëܹs“Ÿ«9OÃ#F8&¥-»õÖ[Ýĉ<ˆq'|«V­ Öì3føs×&DþüóÏî½÷Þkp›ã et'QNsæÌ‰or\ï9¿ûÝïjlk̈¾ˆgqᬾýsÞyç9Äär4®Ls•cïªM" " "P9,ÒH¢Qåô¹Z*" "PZª«‘…ά¥=±%b¤Ì3—Éfg›´(“'OvË/¿¼ëÞ½{‘Ô¨é«A4DÛ¶m›\ÈáósáÜ…ô¦oaÓžtW]t‘àXìFú²n¸Ám·Ýv ®ê‰'žè:è ·ÜrË5øXõ=À‹/¾èZ·níÖYgœ‡@¬$"È~`ç,œçFn®ºê*/m°Á5öâzßl³Íj¬oìo¿ý¶ïâ¢Q}úç±ÇóœvÙe—Æ®fQÏR¸”ŠÀ[ÐT ¢#`sI4*º®Q…D@D@DÀðPÆŠ…AD å£Ì" ¢*ÙÃï¡" EAàöÛo÷ié¦M›æ¾úê+ï€^wÝu)­0–Dgì´ÓN~4¯^½|dIÒÄ£C† q‡v˜Ou7|øp·Å[øh%¢rÙ‡~èSgqlæRÊ–#5Ø…^èæÏŸïSéüñ‘â|(?Þí½÷Þþ˜—çAa¢d6Þxc÷õ×_»ÓO?Ým¾ùæÞÑ}Æg8Ò˜åcüXaN•~ýú9"–HöÈ#DvýàƒÜwß}W#.wÝu—Ûu×]ý¾[o½µ9rdd_¢(˜ ‰4hS§Nut8éql¿öÚk¾,Q‡z¨o Ña7Þxcäö"Îôáá‡îÛùå—»­¶ÚʧïC ùøãíPnÔ¨QŽþ‚'Ç¥Ž<zè¡l™¤'Dç\wÝunÇwô3‘.]ºDÚÊ:ë'˜p smm¿ýönôèѶkd™O°QBÇsŒëÙ³§Ûd“MÜYgåß—\F-[Ö«9Œ`–£ÿh'ö¯ýË_O\W\¿O?ýtdÿø ®CXÞrË-~i,iûÙgŸí_s½ûí·þø\·Ì“Fš:®¥†²ˆ×…ˆ&,’ú‡>9à€²óµñžãúæýËçÊ>ûìãÓrr¬“N:É·åd6§‘"Ê©WÕ¨<6ÊÄTµXD@D@J‡€QãÞ+œ·üUUW9òØ…aI¥ÓDÕTÊ“Àk¬á]tQ‡hôÇ?þÑ;¹y̓tFÌoÄ6œÎ{î¹§{çwÜwÞé#gX†ŽhÒ:õéÓÇá¤f_Ê/»ì²n‘EI…‡ƒ—¹”ýNyÊþýïwÇ{¬{ðÁ³û!6`¯½ör+¬°‚¯ÂËäL”ÔÑG-˺ÓN;Í=ðÀÞÉŽÅ~̽BÊ,Œ9x¾üòKe„ƒÓù¨£Žòeî¹ç·Ê*«x1#{Є'ˆMþóŸó Pwö¹ãŽ;ÖÃ?ì:tèà÷²4x¡c›úÚk„ Þ™Ž„3žè RØ!6`Ûdh ‘#[ýÌz˜vìØÑ·ýâ‹/ö}F=B˧¾°F *‡¹n¨óoû[GŽU‹B¼£}¤SC c® óÏ?ß÷-bêzë­—=-,±¤uO±ˆxGy¤çÅqbÃù}òíéÓ§{Ñ…4xûŒ£ ˆ²\¿ùDMÁ(¬+ugï!(úQªM›6îœsÎñï%®·4qá÷¿ÿ½/‡„0F;1KEg×;ßý°DpF„ã} Þá{!_þ$±œ‹ÏŒ°}ñþ™5k–ŒVZi%_X"´"îRwF«"*R7„Ñk®¹ÆŸe™e–‰­t_ò™h£{iTºý¨š‹€ˆ€ˆ€8AŒâ#" " "Px@d:iAѱȌø“‰€"vP0¢xmvå•WzÁ‡=Ž_3&œ¿âŠ+¼0bâÎþo¾ùÆÏƒ³Aƒ÷|.ct¢“™â´'=F¤ ‚#ãq\³Ä Ïñp<¯ºêª¾ç&Â?Ny3R!ql„ 3„3sl#òœ{î¹^cBÆ£>꣬lÚòÔSOõ¢Q0ÆmÅWôÑP8âM4JІ@ÜA0ÂY„}CT ™qµh¢I“&y1ÂÒ1X¤uàü«¯¾º?Ža+„òål}H„Ö)§œâíþ ™a”Nz{  "¶O|‰ÀEÔ ýƒ07êŽàÆ@®M  ±éŸÿü§Ç;°|ë‹°Iÿ1‡Ãœk9;æO¸†ˆ„A<Á8?b⚢û]cfBuäšBœD¬âñøã{‘ÆåÛDÁpýRg¢£Ð0¢dˆÚÁBñůˆý3F¡¨BêûùçŸû÷\ŒÇî»ïîþú׿úëšhª$C4"b !‚t–ví[Y{oýãÿp·Ýv[öÚäE`äý`õΗ…;¾ä\×úŒíñþA|&r<¶(ÇõÆgJ»ví¼¸LúBRHZ{è;‹Î¡|)[ØŽ41°”Û§º‹€ˆ€ˆ€T»ïSzºÊésµTD@D ô ñƒˆZ„Í0§ ëx.(>Í /DWà@Gœ#jß¿ßsóœæ8׉|©M0b"Š8i­L0BâX.æÜÄ©M9ŒØŸÈ‹±"T%LBÁˆò¡Yݸ=ÌøœâQÛh|"J¦L™’Myeû¿ð þ)ÑBf´§S§NÎ"øC4uD 3³}Ã6"Á’(Œ(³z"„™`Äú9sæ°ˆ8Ñóål}ˆ@*¯ÐãóQ±!M\÷'r…ˆ5Ž›$Q±‹¢ÌL0²cp"RصÊúºÖ—c'¥s»ì²ËüiH3h?BYaéÛÖZk-GtŠçeb’™Õ…(&‹fciÚ0‹¤ây¾ý°H"à™`Äþ\GDµa& ú ÿ¬^ˆ!f¼—ŒK¨¯ Fl§Ÿ±x_û•Á¿¤ãÚf{oñ9^›ôFÄ—Y¾,¬|¸ä}D”_œA¼°øhÔð3ê?ÿùO!r ÏU*Ï?ùä“í¤îµ‰Fiû•J»UOò#vbééÒD#ö“‰€ˆ€ˆ€ŽþJ|.ÙÇ‚ ¢ˆhDøe" ÅKg:#ðI{f†Ÿù‚ˆ¼‰›9ÐÍËvs"#ÔäJG‹h Ä!ˈ̳Ç{øÔQDfDäàÄNšcñdµÕVË:û™Ì)Ñ)¹ Ç6ÎkRº…F„ÎmD\FÝùð#-©®ˆf@"Ê„s[Dua»EVpL"Oø‘C4Îj„3"q(GÄFæ½an(ÄŽÐÞxã Ç&D¯ÐHÅ……Îú|9[†BÇ‚\:e„¯Ð(HX›ÀÆ>D/Á‹H“4ƒ!Ñ.q3aĶץ¾ˆ$¤s‹‹ˆ2ÌáCZE"hB³¢á>¬£ÏÂÈ[G„ éÚB³þEÄ|û\÷v=„Ç圈SDýå2c ¶ŽtwDù…Æu…XKÄ\.ã3ƒþ 9Pžˆž7ß|Ó§)´h(;ë±ðZΗ…#\òæþ¢¶þá=Â{…TyãÆ ‘}nLÂce7–È„læcÞ+Òs†“P4 ߯ìCYö#…`¸O‰4[Õ(C̹i÷'ÌùÞ£Ø@:»W·æ“-‚ßv?dëµh^iZP$=aH8–ÈRç—Í[GMD C8¶¹¹ÍRªm¸á†ájÿç;fÑA<ljLD=xY«‘A3ç2b óª˜ÈBª: æn1±ÊNÄÛÃÈæ-ÂrÕƒ6“¾m³Í6óÑv<–%:ÙÃíöü™gžñkÕø|#â†Ô^adbç³ö°?ûbDñÀˆ˜"MóÄX$Lù ÷ ÑXôÙ–[n™ÆòÉüÃùMŒ¥NË—3ûs>D œÎ¡Á§s(ACê3kX>é9ý‚ÀFáÄËqÍ!(X„Y¸¾Æ,5ÏëR_Â~àÏ>û¬gLZÀ¸! `a»9N\¨°uDCÅë ÁËDÈ|ûƒö’ÊëÞ3;63ˆ`ôm#„Ù;ë°¤ú²¨=æ{Êe´¹SFDŒ‹NDÆq½[zÅð¼·hK}®Íð8öÜ>£Â>µ¾ÅêIÚ@„h„YR\2ïWüó‹ã†}mç)•¥]¯ÔG „Læm ðþ²íˆFf\W8dø,’‰€ˆ€ˆ€ˆ@! pŽqœ¯ÚŸ‹º[ª„°¼‰PÆŠm8ü©ãÕW_í—8iC¶í‹‹8FGñ¨Ê"R!^™Ð/gëCÄ“ðs›cšÈ2IZGÙ4CÜ3á$© Qk”±4ƒñ2\s\‹6·P]ëkiíÂk…sÐXÒõE´ ˆÖ'Iël.¿Ó‚œ—vÛuoäºî‰T£ýa„ç´çƨwïÞ¶Ê/é;ÞoÆÒ6"â"ÆÙv[" ¾ûPv½o¾ùæV<»dç¬+‹ìbO8ï9" Í’ú‡mœ—y¡HuI:B¢éxmâû!®%½íØÅ¾$B‡I8êQˆ·´ËRâpaþ¦¸qý&]Ãñrz-" " " MM€ìÌ©š zaé¼™c“Hi¢¸1¨Âĩ赈€ˆ€4||Þ·˜ "" YD4b%VÎ<Ëd±ËDÉD@Š‚€9ÓãÎzÄŸyóæ9ÞèæX¥Â¼—¹aÇ i¢ER$Jmá1/Q.G%#È0›È¿ÈüC4¹é¦›üËÐÉÍqIa¯·íÇÒÛa„‚mÇ¡N*±$Èʰä¤FHžÂr8£I:è­ŽìhÂ}© BIèg»9ÆÃv³þã?vÌé¦ñË—s®>´k$<Ÿ¥‹_7Ô#nô¼¬.ñí¼æƒéÍâ†ÐÂ|HýúõËŠ˜u­/BB¢¥ ´s¤]_Dù J"î…sLÑ'¬ E&[ï'L¤043µ]÷üÆâ×=û_ýõ~[(Dú±IŒxÿRß´kŸCÔ&F!4ÓŸI}Ï{ Q(.Ξ=Û ¡€•/‹X³²/yÐŽð=d}öíÀgÚè_Ä#æC²>ƒsy•²õuá…úÈ¢x;¸k3ÒÔÉD@D@D@D  ø-Í »¸q_ŸËø7lذ\E´MD@D@D  x (ãÂðC™-”2kˆ(ˆªd+¨¥ˆ@á à°;€q#=õÔS‘Jâ°&Êà¸ãŽËF™ˆQ›³9<" Ñ0DM„ ”! ÈŒÑÿ˜EhØúsÏ=×;¡IYg鮨Æs„‡É“'[ÑKÛœ›ˆœÐ¡#¹¶vð™†Sœèœá¡Á,lç‚­EþP–lÔñÉ'Ÿ wõÏCÑ8eãÑ[ðf]¼Ï¬BA _ζoRÛÙÆ·å–[.[_KQ¦=ËnŒ=áú¢3fÌðó Å6g_"JÁ”ˆ#3ĉáÇû—Du™Õµ¾8Í“êŠxƒYÄω¤9ñĽðHDQ(šÒ'pOZï'Êbõé«Wüº'!×(ç£ü‰bÿŒQ(ö1Ówß}—x[ù°¾±Cú—¹ú>ézg§†°Hªíøæ›oj´#Þ?aÔÇÞ³¤qÄ(ƒH—t}Ø>¥²D Ì%§µƒh¤p®©´rZ/" " " ÍE€ybk›¿3©.D)ÅS('•Ó:¦'à$æ-ÊXr¤QfcUufô&]–ÔôUÓD@r@4b´=Ñ¡ 4ÈÝu×]îØcu<ljM´9£™Ç†Gf8jùÓ¶-mIz,Žsûí·»?ýéO~Þ¢‡¨¢s`D†p\ꂳá‚m8Œ™ëg8×Ǻ÷Þ{ÝñÇïSß‘’‰œ§Ÿ~Ú;ÖÇ6"F8!<hQ1µEpPöCñlöÚk/·Ç{ø¨#"0˜€FðÄáOš±vØ]²¶ß~ûùyU` êˆÐż+}úôñíBèèß¿v?{‚sŸHŠxê@ṡÂO¾œÙ!".D!b…A”OhöîÒK/õ¼ˆ<#=DšÁ ¡‘öò` ÇEd»à‚ ünŒ&2dˆï·ú~}àÜ[o½åç~"̬>õ}â‰'|”ÜHŸÆ5@é+R–!"ytå•W:"b¸Ca†k ÁdÇw´jø~b]¼)`ý¾/òí®[ö#…u`®)Þ+uGø°I€ýÊ„Æ(lƒ CalWÊóþ²¾µõñ¥m¿í¶Û¼ØBî»ï¾>ªŠk>éšå=‡…‚T¾,âççµÍg¾W“ú‡¾êÖ­›ˆ‰€"]Û¤I“|ÿZÔ‰Bã}‹èÌgËàÁƒýõtîb_Çû)>Z®:ó^Ĺ"b"`QÔ nÉ×<ƒØ$( 2È´ ˆhD::3vàO&"PipÈ'MZpÇwxgú˜1c|:*Ä¥‹/¾Øí´ÓN5RBå“Ò-ÞjÒ!á¤FÌA|À1ŽÓö ƒŠ½üòËÝ_þòwÆgøò{î¹§/ȸóG0ÎuöÁáNqr›#›( ¢.âfõб/c¯ àÏqà 7¸k¯½Ö 8:urC‡ÍŠQiÇ£Ž8Ü*î¼óNHê¸ÕV[e#'Lpþ$*âƒ>p0ˆ‚ ;vìÙ”gΗԇÌUE±Pˆâàˆe8îIáF´Ø1Ç9güÅvÛm磣FåyyEÚ·ðGsb±ýšk®ñD=Î{æ™gúù£ÂcÖµ¾DÍ™3ÇŸ»]»vYñ‚ç#GŽôi½˜ç1îðÃ÷bÒ7Þ¹¾¬OÂkÎÖÅùPWú‡|˜ÞŽõùôåìº'½Q0ˆ·ˆ¢ähÏç5F¡¸dõ ÛÀ¹ˆè¢¯7Ûl3^æ4"RˆúB¼=ï¼óܶÛnëE#†’Xp^„™Pøã$ù²ˆWÈÞ[á¹’ÚvÀ8„GYaÞÊp4ãÞ„´n]tQVœ ¯K+W*Ë\é\’Ú@Û57‰ŒÖ‰€ˆ€ˆ€š"ƒaÜ“qo)(<#aÑo2NÙ¬RtÕä«ÜYÏró«ç»-:má&>1âl.|Tƒ\p²‘ª)t:æ*¯mÅE ¶þéø€ ƒCZV\jë¿âª­j' þ‹)­×¥ÜL½Ë.»øž¹¨ãˆ=zt®"%»­”û¯d¡7bÅÕ³‡Rÿz#žRý׈0 p¨rì¿O>ùÄß×$¥3 ðôÓOW•Üórì¿’ë„TXý×xE°«ú¯:¡UPÿ5^ì:rêHwæ„3½Ô½sw÷àaþoú¢ð\„…ó{„Ûô\D °,ÅS>Q …­©Î." "/KçR[yK Y[9mB Šº¶TºJ·[¨ÞÑyE@D@D &4-¨EX”0$R¿`¶ ·ë¹ˆ@áLœ8ѧ3Óè…ëYD@š‚€¥sI;6sˆá„‘‰€ˆ€ˆ€ˆ@± u0iÌÓLévÓÈh½ˆ€ˆ€4?æL7ámÈ,"…B‘¶‚ZŠ€4??üÐÝrË-ŽyR¦OŸîöÛo??×Ló×DghJ¤haämܘC ÑH&" " " ¥B -õeúöí[*ÍP=E@D@D ì .Ð4!²Ð™-|¶` b gžY9-E@ @ 3瘻îºëÜÔ©SÝСCÝ!‡R€Zè”" " MM - £qe" " " "PJ‡vÝu×UVºÝH´BD@D@ JÀk@- ƒˆZΟ??[1‹P•~“ù«®ªvüÉJƒ€ ~aŸ–FÍUK$õaýO=õTú7‚£h^$õ_ÑTN©•€ú¯VDE] \úoРAnìØ±îÍ7ßô¼·Þzk·ÑF¹rÿÜ/—þ+ê7IVNýׄp›áÐê¿f€Ü„§Pÿ5!Üf8t¹÷ß)§œâ}ôQ7N¬ë IDATwî\OóðÃw+®¸bÙÜ×”{ÿ5Ã[  §PÿƒO®þk0‚@ýWPü5NN¤Qh¿ÎÿÕ¡ µüõ×_³ë«ªªþç¸ÎDͯšï~™÷‹/”- 'EMÀÞtaŸu…U¹õ_GɽPÿ•\—E*¬þ‹à(¹åÔ#FŒp|°#-Ý 'œà*á;½œú¯äÞð¥eˈK-^¼à¯¼rÛm·ùzPW»Wážõ/ù‹O¯ÌÆ¿þõ¯>ð*«¬Rð:«" " ÍK E‹…ADhCf‘o8/-Ø’¦2ÙŽZŠ€ˆ€ˆ€ˆ@%øä“O|ó—Zj)ï$­daÛ‰¼ÂyŒiTΆãsÞ¼y^ZuÕU#MíÒ¥‹Ûl³ÍÜ3Ï<㣎?þøÈv½R'ðÁ8¢êæÎë¶Új+·í¶ÛºüÑ}üñÇnüøñî·¿ýmV4²¶"0ׯ{‡ô•D!^vÙe^|bÙ½{w+Yn½õÖ~Þ¸ÈÊÌ‹•W^9»ª>uÊî¬'ÍB`Ö¬YþùdwØa‡y‘µk×®ñ]³ÑH56+êS§`w=m»í¶›OÝi§ºõÖ[ÝØ±cݰaÃÜ®»îj«µ¬…£‚eC€Ô¹8Ìò±õÖ[ÏÝsÏ=¾(û„÷<ùìßœe&NœèE|ÎI„”¥¦ ë€h‹h„•ÄÜ“´Q&" "P9¼”Ñ‚°0ˆ("!QUÉ•ƒH-Ò#À¼1D;L™2Åÿ0$ÊcÅWô޹¸]vÙ%Ò¨wß}×ç_'úÔjK,±„#*7sóÊuŒ3‰yaHéE]ÿþ÷¿ûÑŸ_}õ•[l±ÅÜšk®éJ{î¹gj*Ý9sæøý&Ožì™äúAÿôÓO»¶mÛÖ©É÷ß¿cjbŸ~ú©Ï o9à€Ü)§œb/s.9ÆC=äf̘áëÊÈûå–[Îm´ÑFî ƒª‘Î)<}Nú™3g:&b¦ï“lРA>‰m{ñÅÝí·ßîX•tR¤N#R¦oß¾~Ôé’K.iÅó^NŸ>Ý!ŽÀÝŒ¬f8ï½÷^{™sI©@š»7ß|Ó}ýõ×Á¥S§NþÅÉ‘&ÀÔ·ÿ¹Nþñ¸G}Ô¿7xM_ð~Úb‹-|EèÈf„#ØõìÙ3±=̰ì²Ëúú?òÈ#Ù9 k¥”Fç/¾øâ5#šÁç |­G޹ÐHQwÞyçÕ{.°Æ¬S¾uW¹ºà{†>&BÍìûï¿w§žzªH÷JDZš3Ƨÿd;sÇÝu×]ŽÏ}æ—ã{‘ïd|¿ûÝï\ÿþýßÉ\§IÆ÷ûÛ÷a®û"Ú˜·°>ÆwüwÞé^zé%÷å—_:DUUð¶þúëûï†$G=‘x×^{­c^@¾¯ù>!ß!‡âêò=ÍÜ;|?Ó^މ€Àwßm ¿ÿýï›KR›q¯B:ÖŸþÙ³ìØ±£gOô_¯^½ëpò2)|šÓ¹.mÅyޱ˜÷2NÿºZcש®çWùÚ – <Ø]}õÕ5 óÝÁàîm3j‹V}íµ×|d" ÂQhÜÏðàóA‚ûˆÐœ‚¸ÐÔvÕUWù¹ïâça0îÍn¹å?h¡[·nÙbï¼óŽg¶ á‚6™W›‘žì¬³ÎÊFÆ„å x fQñ!4Þ‡G}´pÂõˆ}Üûð@p£ÌᇩÓsâ0ÏÎ/¿üÙñˆßÜËÑ_ܳ¦÷ÔÞô»Çe0 ÛÎ=÷\/BÙ6§hl£_¹†I½uaçdPíFËevÜžtÒI‘èM„GÄ@œñ*4ÎAÔY¼m=Kæ_4¡ˆs1×óÍÉD@D@*ƒ€™dZPD4";ð'(>ˆBüHgT,Žy„FRâ¼æG6ŽG¼À‚“áˆÇÜ— '£^åɼqqƒʈ ŒâDT"Š £Œbž4i’g€0R_³Ö8!=ôP/¼ðã¿®F Î"Œ²·º2£J™Ì„áqÑ#ªL®»îºH” 7&sÆ™€jÝu×ÍV‹ã^|ñÅþ‘eŒTžûî;?4ûÇÓLePË"£x½f"¬˜×¤.F`‚Â9RÈ¿Oÿ“Ñ' õ¤/ã"L}û'ï)x!ª1ºCÄ{ûí·½ƒ.Œ2B˜C¼Ä6ÜpC¿LûÇv|qçQZy­R!€ãŸ÷$KÞ{D¤ ¨ù¶‰ùŒpî2}\4ÂyN´CÜÚ·oŸš¢Nñóéuà %‰Fvd>“¹¶ìº²õñ%ŸÑûì³OÄ™/C30N<ñÄì&¾¿CÁˆÁ 8ΗYfŸª 1ÊŒhd¾Ó"J­\Ò’#GŽLÚY‡èºñÆg×!ösÌ15„0+ÀÀ¾Ïk3î!,•š•Eˆƒ›¥Øå\ˆaÔ, "Ë\Æ œ†¤ä»1ŸÈl¾ó¹¿ -¹ûp/L{’Œ{îøN¶A,Dë7¶qÿETS(Ø$¶Ì7ÄÀšø½LXžÁ@\»ôYšEÆ=ex¿È5nÆç2÷ÔiFÄ™üø QÈÌV-E@D@š‚0ˆ(’—Àü(Çl”jóUOgÈ—Îx„„ Ä~ òC!¡Sfô7Ñ6ñT'ü¸'º…ô?&q>"yp ñ£”(žB?¸‰ŽA!mžÝ›àÌaÎ$p6„ÆÈtóü8>ûì³³" e¬lã‡4J¡ÍÚˆ0b‚u¢H݃!d †fÑ.8¸âN,®RžpGÚ–Ðp^Ñ¿ˆŒà6Áˆ24Ûo¿½mÜP§oxÎú>ÇQxÄGxñÆúŸz1RÖ8–CkHÿ#ÞaŒ˜6Áˆ×¼gHÿˆa„V3úÄR+ÙõhÛâK•H¿Ãèc™” DD|œê¼wñ‰Hvòm³}7%9s¯¼òJ/$ó™>ˆL5kŠ:Ù±µl< &¨Ml µØ‘Gé8ÖI­…˜¬@4KhÌaƒLøÞa0ÎwÜ8ÃýßÉ;î¸c¸K^ωP ï/îS¥¸‡>|¸O…Æ=›}×QžhЄF.Ñ2 4A8ÊeDšÂÖŒû R±Yd $øŽÃ¸g¸è¢‹²> ê˜!jñƒ‡ pÅWx‘‚÷aZŠ5Û7mIÔ͈#"›¹§åþ–tq ¢_ÍÞzë-_h¯“–\ ˆ_—k{ÆðþŠí¡XHºAD™¸Å=ëía©é’Î_óP0âØ 0â¼—_~yû6¢¼ˆ>J3ú†{7îíé3Ú…ÐÞñoügà‘à![o˵ÖZ++¼³.Ü×Êh)" "P¾ø®á>$ûXD‰4"üˆ‚2¦!À?Fw’Œ‡=—8£ÃåHÕeÑ,8ž>0~TÇìú uü‡Ø„@ƒ˜B:®BÛàÌÈõxê1«SŸ>}üÚ÷ßßVù%Œ9hxÄÑ謧8S M¯[ü5£`q–pÐÌ`Fä F*§$³ˆ˜p¤4å,Íâ×T.BÒq‹eN%ÒóQZCúßX(©?| yaß„eìy¸ýÂ9´h™o£\¬.޵ris9´Ã~(¦µ1‡z’‡M$KÒ€áðE¼¶QôIû¥­ã;Kúü' –H¤¸ñ™Z>uB”B ÁÇ|’1à"ß9Ù’öoÌu å³ =V(’ä:¢à³Ï>ëzâbí‡è~vã`'šÖŒ´nˆ >Áâ"iD͸§âš²Á%ÌëÃgw}R0Ýß½8ûk8¹¦wÞyçßÇDÒ††H„PcÆ µÇ{ÌVÕX’v.4æÆ1F Â Ú Ë®kî-x 0ÄëÀCºUúŒÔ­¼OÒÞ+á9s=G4#¬<DL ¡Íˆ¤4#¢†v§ násÑÆ„,Ò0QSfÌ3„H[L4³m¶äøIŸA¶=×2ê(Çç ƒµÌˆ":Ž<÷÷ˆ„¬K3îQ˜s‘ûXŒv!€!Ò›Ù½¡½Fà3#A.ƒ×<‘ì÷È2Ê!¦ED#ÂüÍ[F7Ê÷&®rª¥" " "P78 qdÛƒtDC4ÔHÛƒcѯüpl,3g6ÎB[®è {p¾„fNŽ\"šm3Çd¸±=§?âýQ[;ÓÚÈ\ °ÃFFª&9`‹C¼>i×im\8NœvŒ,ÆñˆcÑÒÎ??¯q@b8Ñâódø Á?Vf¶Ÿ½.·e¹8³Ë­_ڞб›v,¾‹xà e4=ŽS‘¤ƒª‹™3?iîR•ÖÅQ«NˆFñôhD[¦ŸÁº¾ëÒ“[Ç:×F’hÄ÷š‰!vVà|6[ 6Ö“†ÕD#æ< ë!øãQ¡i"ExŒ¤çDª†F„,ÑFûï¿¿´Jûþˆú`νÐðÕ 8åˆ( -™Ì6æä3ш׈ˆF¶Ÿm£O˜s¢”÷!i’˜—AVzòé¿Ð™^[ Iu‰PÄ÷à¿þõ/wÆgÔé{ÊÒNæ8P[âÛ“ê„SœÏÝ| A‰}ŠÍòé¿b«³Õ‡Xñùvl[|IJÕ´A2D£$ßiágnxÏ@ôÜ”)S²»‘òTq\+=ôÿuyØ~,IkJŠRKÊ:q>)1„ dÑ®lÇâ‘´Imd¾¿\¤Äw}mfiÒ4A,ó'šqÅë›o¾Ùm³Í6î°Ãóê¶½®Ë0b—}ÓÚC ‰F”ã>.M4Jù¦ÿÈeÆ÷}SˆFñ6qޏFâŸ%D³å²¸øHÙø=[ø›ƒùßBËç^%, Náqô\D@D < ðâïf‚ˆÈBgXÉÍ gže²ØýÆÊj)" " O§>yÝqf›PŽî‹âÇ"?ùÁσ¿&™(wÄm6DåkÌtê©§zÁˆ}™ËN‹¾`¤c<‡~¾ÇoÌrˆBõI gF¢#¦0§Nk ùúY25.¨4fýó9B#9îoh/óOá$%…œµ4O¡ÃËŽËh\Ä&Fò3‚6œ»ŠãYjœQqÃ)3nܸl)®aæ í  oã4+¤1G×%—\âûŠhnŒ€E”àþ”þ}ê©§jT±¡ýÏÚ8†qˆá4D\åÁq™+#ÉnÂ¥-kT&¶ÂÄÝÐiI&>'?íV/ù‘Áçb]?ÇJ¢qPɦê?„R_ñðÓ°ò„€C?>ª>mŸº¬¯Oìø8©ÓÕV¦Ë¦ê¿æhK<Ò+éœ8ˉ^KŒØ'tv‡Çˆ‹ýá6RÀÙŽ“3)yÄïcDÐ\ÇŠï¾æ;¡…y–H­F™ñÞ`N0ÄUîOb0HÄÄÊåz_!äsßWW çIâ{ïà«®ºÊº±cÑRËåDê8îêcñû›´ïx4V< ,<·Ý?…ëxn,ê(^®¡¯ù. -^wÛ¿ÏÕ&öIºÆs]“ñöY„?iFWsíp¿œÆ3i­(]|§ØïT[Òšˆh„@DAT%{”n“Ush8ø™Ì˜ˆtdæóÀÁ“™Ï›bŽû±Y[äEXÇë®»Î;Àq20™xRZ2FoƒhÖ»®ÏÉSϨÝxÀ {6ZÈ*FÝ"> ’ÚN>ùd/q0±uÒˆWIq§ õ&M FãÇ÷éip¦1º–‘³ä£ç‡þСCkL¶lmFH#¿>F?ã´B$A¤âúfäw>;^c.™·â /ô‡dú2.ÌŒ3&Q4b§†ö?ýÁù™<þXDLÀ“úR3>µ9z(K0B‹;®üJý%Àhö$g6Ÿµ»67[mÍà Íg6b?Â9©3ëkU§úž_ûåG€û©\ÑÜ«uÔQÙÏÜ\G­c›}ˆ¼=úè£}j°¤ã3? ƒmÂùŽ’ÊÕ¶1dĈîàƒöß)ñïv¾˜Ÿ’A DÄðÍ@ƒP`B̉Äаƒ6òýcƽCüûÔ¶ÙrÕUWµ§~ÉwÞî»ïîçÿb@JñCý®½öZ?ŠuµP¤`_ûžŒ'~”K,‹—µcÅ×7Õà˜x›l—ÕÖñ¾K̬|mýfålüÍG@Œ—©ë9íÜZŠ€ˆ€”6/ -"ŠˆF4 E‰¿ªê*G»0,©´›­Ú‹€ˆ€ˆ@þÈëÎTFR2ò9n8ê‰ÂÉlËøúø>õÚòŽ“¶‹ïí\£ 휤ú˜9I0b[Úv¶•ŠuéÒÅGŠ 6àiζ1j™þšœÍÜŒèÇÙÊÄу ŠDÅP>͈âá3‹Ã8{±Ù]³ë”¹L ‰×#×uÚXýKÒ!‘¶Ök̰Ã;ø»†nqþ˜¯+¯-ÝÏ™@\&åB€ޤ…d€Q<|ñ½dó¬œuÖY5šúþûïûÏh6àÈåó±˜Á¤#ê±S§N5öcQ¾Ió+!š“b«OüŽú׬Fz>"nøJJ5–ºS=6 ‚p€1cýõ×÷B B(ß%ißÍõ8•ß…ã1·‘9¤@%Éõ|—ùtÐAù÷‘vaŠ:/0/ah|ðAø²ÆsÞO¼Íȸg­«ñ}h÷O÷ß¿ûÛßþyÞwß}>J·®Ç÷/mLŸÂ´rœ#Wª@>_âFÔM¿-ìøZŠ€ˆ€”6>óÑL2-("!™±2¨ Ó¦MóByîã?èpö’žŠIyyär75/Ò«a8ܦOŸ^Ñt~¢P0œ{IF*„²R7„¢N8ÁÿpÇ)ÿ_ íÃ9j†à˜d¤‹D ËápB0"¥iîj8ÈŽ;î8ï¨ ç^hèq뺿bÎåØzõÕWSÛØýÏ\8/q‚3*ž÷Ÿáœ[ôg|tvXÁ°¿ãt‡åô\J"<ß—¼?sù^äg’wæCIúü%½$ŒÑðŒÌç{‰ùQvÙe—œscq®pãÅ êS';Ž–ÍC€þî¹çjœŒk‡HÏ\©èjìTÏÌ“GT3»o°×µDêºL IDATâ{$4¢\ŽH]Æ`³¯¾úÊžzÑ*î¼óÎ÷zDçå²Í7ß<"¥Kª½|,)5‘K¤½%Í2ïq³$!×¶åZöéÓÇýãÿÈ¡= ^ ﯉ò¿Ca¶îºëf÷‰?!E/ßÓÜÓ˜•¦Ý[i¥•üç”mgI…e¸>HÍWWãó ññå—_ö»Òÿ †a0¿7î½÷^{é—}͹D›L” ¯DN¼E£ú´=8”žŠ€ˆ€” #aQT4²ÑÊí(ÌaW‚mU•E@D@D Vü@$/;bð‡);3Ñ&ÔÔzÐf(€Ãz‹-¶ð©æ˜ƒ¥¶ô,¤óàG0£“ gB}ø'¯PëH­Fš=Fó&9, U¯ð¼aZú#I É5×Ñ@8'p°4–™s!îàj¬ãçsclûâl´([.›¢ÿHe)~ì}Ftuå=E$b.ÑÈ"ù‹³J&åBàˆ#Žp<ò1Þ;³fÍʧh2DÇæ»o]êTãDZÑ,n½õÖç9òÈ#æ2šP$¸üòË}”‹¥>ãsñ‚[WŸº‘¾Á=Ûn»­}˜O‘÷ß¤Í Í¢ÈY׿?0Ķ3!õ!"ŠCD%‘æ.—!T0’ùuî¸ã=ÂzR'30…E¤%FŒEÄ>|¸?$¢é^‰üá~“ù"9?÷ ¤Á -D®¯í9Ç…¯Ý—20ƒ_g¢½ø¾¿æšk"‡a.*Rï¥m9í…CGVš™hdók¥•Óz¨á\F|]pÁMžŠ.Χ8KñFÚ5q㳞ï%æ´Kà/Í÷+÷#<0£ì»ÊÊ3Xƒ{3¾‹œÂôrwÝu—ãa†ødl]¸ä;%Ìi‰áçaîBI¶ÓN;EV#&ñýÇC4âÞƒ6…F]ëcÌ™CúWÒ 3#’˜ù’ŒtvÌsU›q_Ëq“Œ6$ ¶¡íZ`?ÒZêB^]•¯hDÔãĉ³s r¯F_òH²O<±^QMIÇ ×‘ÎÐ~ãØ}H¸=|þý÷ßG2,Øo„°Œž‹€ˆ€”/4-("†Ä Yêü²|y¨e" " H!¡ˆ›öƒ¡„8ƒq–“»½ŒÔ¤59ù䓽ç??Àù·ôŒ¦4шT(ÿþ÷¿½ ÄˆF F72Ê”òŒìÄÁÀ¤Ï¥lüXÇ!òðÃûGØÚËH^F­#´*‰~‚3¢ÑlÔ a! GÐe—]æ…£¤‘ÄŒf$+í$ShÜ¿1*çýŒèb÷t8{zè!ÿ ˆ/,¦Èù!.¦Í%ž§©žSg¢…a̵͜ODè „Rœ L(žæ¤ªoÿãXÁɃ`?¢¸uLºÞS0g´0'³Í6ÛÌ‹FŒº¦Œq¶í,qèÙüU¤µ“‰€ˆ@¥@€!úƒÏë¾}ûß}ÌÍÃ=R®yòølgpÑ9 dhè}dzûOk8ßù|¯…sõp¿Âü^DÞàÐiÚFåÓ:"’¤÷~ŸAvo˜V6é;,,›”2wàÀ>ú),W—çÜ{#j!œ0Ð)ÍmhCm÷èÜMÎ æ°T·áñ`ʽURdó}N˜0!‘uxŒ|Ÿs/Aj[î¹ÒŒMô}ÜÆýQM÷PD˜%ƒ_Âëƒ{A™ˆ€ˆ@åà;‰{ mÈ,"…7 VØ j)" " ¥J¡ˆûS§NÍ6a½õÖóó'àTÇIÌa"JÉH_B;n¹å/}Á÷7Q,¤Öãdz鳈2!­œá´›Ñ•ûì³ኣ¾ÔFDˆÍœ9³FSíI$sðCž»…Š&#Å éWnºé&ŸÆ„ô¼& £`ðÒ¢iˆzAÄóÕ[céLˆQ<à0lØ0¿± gihHÙbéeH›Bi\ÈÈ,¢Ÿˆ|cD.Â#ÒÉÅOJê‡sXšã¨¾ý8…s套^òé IqH]ˆ ã=ÂyÃ$€Â §#ý„ Kúš¸1R™y–øl¡þ2¨t jà^¤P†s¡Ñ%IIªß«¤ñ%*µ.¶÷Þ{û(U¾w‰ÜA!ª†|§ðÝË\^I‘pâÞVD 3Àƒûú¤aDàžz¥þÒþq¯Kz:"ž¸B¸â‚ãq¿1`À€ˆ€GJf"Àˆz&=çfà÷ ráÞÑûІþ>ø ŸûǾ÷ἠ¨Œøî¯ÍàÊ`ú—T¶Ü/1HŠH_î­Ò¢Åˆb
*î¸Gæ{‰{€´ù@Óꃨ‡pDêk ¢.ˆ•!²sçÎi‡hðzúfFw| ‘$Œªb@‘"£Œ–" "P¸7òšPF7" Ùo2#Sþ'%eÖ\=åjwæ„3Ýüêù®Çª=Ü„Ã&D ÛNZ':¹žÅI³ùk¥þk~æyFõ_cÒlœcACD‚Q8ÑDüøäG¨™úÏHü?{wosÿqü3¶ìB‰(R¢f´íZÆVj*´§R“þª‰Jûž¦Ð¢E)Yj’»©h4ŠJQ”})‘"˽ó?ïïøßßqÏuqï¹çžûúzçw~ç·>×ï}>ßoÑ|ö×Oß\0`€ûϸµÖ _¢0E•#ºù¡ ¿ÿþ{w%Y&é*ñÃ?¸®\ôÍh}3WßÒÖM ÿÅU+鳯› ^4_Ý&ûvi:œ§¿~»Úª(Õ×_co½õ– ]}>¡éå—_î*õmvÞ…ïgÂt~]¿L°(ŠçÀõ+ŠWmë1sý¶ZäuJã@úûU}¢/S´jÕÊ…Ú†n²+4P`¢±mü—iõEUÿägãú횦³;ï¼3¾U>ÝsÏ=ñ×=‘î×OÛ Õôs ~ô?/zý<©Jh_§ê§«¯¾Ú¿ÑÏé~ý2?NŽë—ˆ…¸ ®_!âç°ë~ûÙíïÞnYÿͲæõšÛ¨kF¹/¶ÆG±•ÜPG±› J•ü#‡m1 @´зù4x¯‚¡G}ÔFªèСC¼‚! ŒÒöD8°øæ›o\Å•…%ú¬Œ´!ý'Y•U?ÁS8qêÚa!-üÈ#¸nFn¸á÷-U}ã7¼ o«‹ý§_ߨÕÍ.ý™Èô¦*¹—bw©¾þúÖ®¾É«›‹ ôÂ6gÎW¤›’ÕýL¸?¦@¶/  ß7Uê¨ÚZU-¾éïtU[èçFUnû¦Ÿ!hé-à¾ô>ÊÔÝÅ_ß™º§SO‰McyùÀHÿ_ {)H\–× €™/ { ÿÕ¸E±¶M¯þ¡Õ¯¬ì,×]X–”ù4œ! €@QPúÆ¡º¶ðM7Ï©[ŽÂê†ÌKqz¾í¶ÛlÞ¼yy>e l¼«ý§«[1ý £þñð(§ƒð7‡tcHã©û¼6Uö$ëÞ#¯ÛØ•å¦NêVÏK—0UªTq˪;”mãhGÏSaßçŽîoW—× Ï;sýwu¿ æÔåºÒ·›Ÿþùø&ÕåŽI_b×vñ…˜@H©€ªŽ}Ó—*ÔZâ¿]êŽNÿ¦©ëXߎ=öX÷… }! /MUªn/M½´k×.ϧúÊ+¯D¹<¯È‚;$ ñOõ _m¤.uÕ5žï†XaQÿþýãÛÔØNÓ‘† P¼)ÿÑxFaQ$4òI’h´‚~Ñ@Hgý‡^ýÒ80~˜ê‹Ý‡E»ÚåU|£LäY@U3gÎÌóòêfW›ÿ°§'·í©ÛB5!°hÑ"SàצÁ˜ ³…ç™Û±hÌij9•°½sP—;â¢íįÂj¾ÚjG¯~¯ºqÑx}ô‘ ­O;í4×e> D~Ó7?öÇ6@v^@cèøq€4ÎÐI'dGy¤»Y®›è{F]Ùjì!ßT¥¬îé4áüùóýì\Ÿ<—¦/HäÕE&~œââS˜ç©.™õóˆÆˆTHªñ<}5‘º[T—Æjú¿S—.] óPÙ7 €@! (0Ò#,"ІF±ìݺcUHú‡Ÿ† €@: :Ô}³_7ÈÕT­rÁ¸ñEÒù¸3ýØ4žNª›®½*‡¦M›æ@Özu³6ý‡Yƒ#¿ñÆnèË.»ÌuávË-·„‹¥õô‰'žèyVU‹YNÔY7bÔUÚý÷ßoßèÌ3ÏÜ©* ⎖Ö(±ƒÓMÀ¹þùq^Ú¯>SakÓ¦éACH/y¨/¶ø®[U%£Ð?§¦/jèïòÛo¿ÝTµ[?ßät\é6¯¨ýÌn~y<êVQáЄ ÜnôyWÓψ•+WŽEíÛ·wŸq÷&¿!€+e@®xHDAQ$4R aQ±ú\p² €@‘P„ª‹ts\M])¨‹(¾Ñ_$/g¾´º"Ô`ÖÏJaŠº Ûo¿ýÜ86l°Å‹»‡vV­Z57vbà’/RÀéÞ½»»Ù¥îqÔåH½zõLãi,#Ul雾¾ozÕpï½÷ð¥ÇæÕý[q¸þé¡ÍQ €EW R¥J6xð`9r¤7ÎT­*UUËêË&ê¶~ýúvÄG˜þÕ¿³4в€ÆùÔ#lú¹ñÚk¯ g1 PL’eA‘ÐHeH¾ÒÈ=S,N@ =~ùå)0òMÝÐ]yå•¶ÿþûûY<S /¼Ði¤ngÔÇ·ß~k Œt¨zõêÖ¢E W‘¢°Eߊ-ŠM硪–×_ÝÝìš;w®ëbO?·éÛ¤p€38묳¶¹APÏwG޹8\ÿñ`Y@œT!ªŸô ]u³æ»Z+ºgÁ‘#€ P¸ª¬öÁ‘²!ß"¡Qù…ý‚<#€ P˜ÄUa‘n’«ùèÕý / Aï¾ûnÿ2#ŸË”)c Hô EŠÃõž1¯@@@Ø9gì‹ˆÔ o‘ÐH3é¡…cSëÍÎ/Ë3 €)P¿ó ‹Fß÷W\ảSe @@@@vLÀe@±,H-,"Š„F ˆ´ R%ÿرݰ4 €ù'Я_?ýþûïn£ÇwœëŠ®iÓ¦ù·¶„ € € € €@1‹ˆ"¡‘L\¥Q¬Â(+;ËÔ]X–TŒÍ8u@ ,\¸Ð~øa7f‹v»çž{º°¨cÇŽ)< v… € € € €@f ø"Ÿù,(©;:ß´]Óy ž@R%0nÜ8)8Rkݺµ]sÍ5V·nÝTûA@@@@ ãéEC£-c); û°ËxN@ -Ô]Ÿ>}ܱ”(QÂn¾ùf»øâ‹ÓâØ8@@@@2E@+RQPD T~DX”)—œó@ŠŽ@bwt|°ÝtÓMÖ¼yó¢s) € € € €ED Y T†¤DI•Fœ‡‰ Pt»£k×®«0Ú}÷Ý‹îIqä € € € €¤±€zùñÁ‘²!ß"¡Qù…ý‚<#€ ß}ûö5=ÔÊ”)㪋:vì˜ß»a{ € € € € dgo-"R/t¾EB#ÍTX¤‡¤Ø”Åz³óËòŒ €@¾$vG׸qc5mÚ4_¶ÏF@@@@@ ¹€Ë€bYZXD iA¥Jþ‘|“¼ƒ €ÀŽ $vGwÞyç¹À¨bÅŠ;¾1Ö@@@@@]‹ˆ"¡‘¶ê*bFYÙY¦~첤]Ú++#€{#FØ-·ÜâÊ—/oÝ»w· .¸ Ø»€ € € € €@*|‘Ï| ÔoZ®é¼Ï €»*0tèPëÕ«—ÛLƒ ìî»ï¶Ã?|W7Ëú € € € € ° Œô‹ˆ¢¡Ñ–±Œ”…}ØíľX@¸À+¯¼b÷ÝwŸ{­ÀèñÇ·8 þ> € € € € :e@®xHDAQ$4RùaQê. {BŠƒÀsÏ=g=ö˜;U£âpÅ9G@@@@tH–EB#•!)QR¥‘{N÷³âø@ÒZ oß¾¦‡š£þýû[­ZµÒú˜98@@@@2] D‰­EDʆ|‹„FaP”,eò+òŒ €@n‰ÑàÁƒ­bÅŠ¹­Â{ € € € € ìì­EDê…ηHh¤™ ‹ôP€›²Xov~Yž@È“@b`4bÄÓ·h € € € € Pø.ŠeAjaQ$4R@¤•*ùGá:G€ P”Þ|óÍH—tï¼óNQ:|Ž@@@@b%EB#)¸J£X…QVv–©»°,©X)q² €;%Ю];«Y³¦ >Üyä‘Ú+!€ € € € €@Á ø"Ÿù,(©;:ß´]Óy ž@vDà˜cŽ1=h € € € € ž Œô‹ˆ¢¡Ñ–±Œ”…}Ø¥çépT €-°råJ›5k–•*UÊ:è «ZµjAï’í#€ € € € €@ (rÅC* Šˆ"¡‘Ê‹ øJ°y@ ¬_¿Þî¼óNÓxDÙÙÙîˆK”(a'œp‚ýíosR8 @@@@rH–EB#•!)QR¥‘{ÎaCÌBÈ|CS§Nµ®]»ZãÆmÅŠ6fÌûðÃmÒ¤IÖ­[7»üòË3‚3D@@@@ ôq)ò-…A‘_Ø/È3 €@ñ7nœMœ8Ñ^|ñÅȸDíÛ··™3gÚ­·Þj>ú¨U©RÅÎ=÷ÜâÂY"€ € € € Aê]È©:ß¶Nm™£°H-›òËñŒ PLÞ|óMkÞ¼y$0ò§þÇ?þÑlx õîÝÛ6mÚäßâ@@@@Šˆ€Ë€bYZXD bù°H©’‘óã0@òI`îְܹaä[«P¡‚×è矶ٳg']Ž7@@@@@ ýÂ"¢Hh¤Cw•F± £¬ì, û±KÿÓâ@òC bÅŠ6kÖ¬\7U«V-÷>•F¹2ñ& € € € €i)  HÅC*& ‹ˆ"¡QØVÐ/ €@ñ8å”SlÊ”)®ºdg>uêT+S¦Œë¦.Ù2ÌG@@@@ôPáaQ44Ú2–‘N!ìÃ.}O‰#CÈoK/½Ô4h`wÝu—õìÙÓV®\ÙÅâÅ‹í™gž±6mÚ˜ª’h € € € € P´”¹â!ED¥ÂÓP aQ(Â4 PüÊ—/o/¿ü²ÝxãöÏþÓÞ~ûm;á„ìàƒ¶Õ«WÛˆ#l÷Ýw·îÝ»?Î@@@@ H–EB#•!)QŠ iô¿ç 8qN@`ǪU«f/½ô’7Άj“&M² &XÙ²eíŒ3ΰ›o¾Ù*W®¼ãf @@@@(t%¶)ò-¹ÀhË;ÉR&¿"Ï €™! ¿ïß{ï=Ó8E5jÔ°3Ï<ÓêÖ­ëNîÔSO5=²³³mÍš5®Â(ü·"38 @@@@Š—€î÷ù""õBç[$4ÒLÝ<ÔC Ǧ,Ö›_–g@ èÑ£‡ ><~f}ûöµ–-[Úµ×^kûï¿¿›¯oT­Z5¾  € € € € Pt\Ë‚ÔÂ"¢­ñQì DZP©’¸5ø @ #ÆŒã£Ë.»Ì>øà8p µjÕÊFmgŸ}¶·èûï¿ÏÈsç¤@@@@@àéˆH-i†«4н™•ea?vz† Yƒ ²c=Önºé&«Y³¦5mÚÔ{ì11b„ë–NÝÖ©»º[n¹Å,XY'ÏÙ € € € € PL|‘ЉÂ"¢Hhä“$iý¢!€d®ÀìÙ³­C‡Ûœ`ƒ ì‰'ž°·ÞzËN>ùd"uîÜÙm´ÍÂÌ@@@@@"' Â!=Â"¢È˜F~,#U!…}ع3å€@ò$P¥J•\Ç*jذ¡iŒ£¯¿þÚ~üñGÓØF4@@@@(Ú>rDAQäîŸJ‹Šö…æè@¼Ì™3Ç®¼òJ«T©’«"ÚÞ:|°p Û[Œ÷@@@@@ $Ë‚"•F*CRª¤J#÷\NŒCDØqŸþÙæÏŸo .tUDeË–µîÝ»[¹råv|c¬ € € € €EJ@= ùàHÙo‘J£0(ò ûyFÈ£>ÚFe÷ÜsÕ®]Û d§Ÿ~º½öÚk¶iÓ¦Ì9QÎ@@@@¶ÈÎÞRD{G½Ðù¶ujË…Ez(@ŠMùåxFÈ0R¥JÙ¹çžkcÆŒ±;ï¼ÓJ–,iwß}·vÚi6tèPÛ¼ys†1§ƒ € € € €pP, R ‹ˆ"¡Ñ,ö+)Uò·¿!€d¬€Â£óÏ?߯ŽkwÜq‡é[½zõ²–-[ºy{✠€ € € €DŠˆ"¡‘l\¥Q¬Â(+;ËÂ~ìpCÈLk¤Vºti»à‚ lܸqÖ³gOÛ°aƒ­]»63Oš³B@@@@  ø"…ED‘Ð(ìŽN+è @ s–.]jgœq†½úê«ñ“,S¦ŒuìØÑÆo­[·ŽÏg@@@@2G@…Cz„ED¥ÂÓóci(£°»p¦@2Gàé§Ÿ¶%J¸qŒÏj·ÝvKœÅk@@@@ÈŸ¹¢ ˆ(Ri¤$¢ ¸Úœ{uëÖÙÛo¿«ÃâÅ‹íÍ7ßtãÕ¨Q#×ey@@@@2G Y©4R’R%U¹çÌ9Î(67n´.]ºØÔ©SíOú“Õ¯_?Çsê©§¬T©Rvùå—çø>3@@@@@ 3ÔûŽ” ù  È/ìä@ h¨Ë¹O>ùÄxऑΤsçÎvôÑGÛž{îY4NŒ£D@@@@|ÈÎ;ÚÏW IDATÞZD¤^è|‹„Fš©°HH±)ûCì @ h,\¸Ðžþyk×®µmÛ6׃>ðÀM € € € €/—Ų µ°ˆ() Ò‚J•ü£x1q¶ €@Ñ ÚÚQ]ÌAÝÑù¦èšÎkðŒ M›6Ùš5k¶9Ø—_~ÙºuëfÕªU3U#;Ö&Nœh'žx¢ >ܾøâ‹mÖa € € € €d®€#=|‘Î4mËHo„}Øé5 @ ýš4ibß}÷©rHáѲeËì–[nq¯U4lØ0;üðÃ݉T¬XÑî¸ã7­ % € € € €e@®xHDAQ¤{:•g‰™)põÕWÛ”)SL•Ezøvæ™gÚ}÷ÝgeË–õ³Üs… ÜsÉ’%#óy € € € €™+, Š„F*CR¢¤^êÜsæzpf €@Ædee¹sQðS¥JWMôÖ[oÙþó)0:æ˜cr<ßÿûßn¾ªh € € € € P<J”ØZD¤lÈ·HhEÉR&¿"Ï €é!ðÆoØ /¼àÆ*ª^½º•.]ÚÎ=÷\÷Èí6i½ºuëÆ»¬ËmyÞC@@@@ÌÈÎÞZD¤^è|Û:µeŽÂ"= Ŧür<#€¤¡À¦M›ì™gž±=öØÃíHS÷u_ýµuíÚ•êÒcY@@@@Џ€Ë€bYZXD bù‡J•ü£ˆŸ7‡d´À믿nK—.µë¯¿~›ó ÿ²O|ó_ÿú—õîÝÛš7onguVâÛ¼F@@@@b"EB#¿«4ŠUeegYØ]1±á4@"#°qãFëß¿¿5mÚÔš5k9î•+WZË–-í“O>‰Ì× uK7bÄ×-Ýc=F•Ñ6BÌ@@@@@ ³©xHÅDaQdL£°;:­ _4@ô:t¨-[¶Ìyä‘mðÙgŸµ%K–Ø>ûì³Í{%K–´'žxÂ…Gš¦!€ € € € €@ñPᾈȅG!ƒËHórëÖ(\‡i@Ô lذÁU©Â¨I“&‘X¾|¹ 6ÌÎ9ç«U«Vä=½X´h‘›G`´ 3@@@@(>rDAQ¤{:¥H„EÅâóÀI"€@2dˆ© ºU«VÙĉ#góÌ3ϸ×W]uUd¾^üúë¯Ö¶m[{ôÑG·y € € € € P<’eA‘ÐHeHJ•Ôüsñàá,@¢%púé§Û_ÿúW›?¾]yå•vÞyçÙäÉ“méÒ¥öÆoX‡¬f͚ۜԋ/¾è‚£³Î:k›÷˜ € € € €ÅC D‰­EDʆ|‹„FaP”,eò+òŒ Px „zõêecÇŽuÑÌ™3íÒK/uUD:*I‰í—_~±Úi§f5J|›× € € € € PL²³·©:ß¶Nm™£°HH±)¿Ï €i( 1‹î¾ûn=z´µoßÞUmڴɺwïnŸ~úiäˆUe´nÝ:ëÚµkd>/@@@@@ x ¸ (–©…ED‘Ðèû ‹”*ùGñbâl@¢)P§N»ï¾ûlÔ¨QÖºuk›6mšuìØÑ.¹äûüóÏmõêÕöÊ+¯X«V­¬AƒEó$9j@@@@Èw°ˆ(iO®Ò(Va”•ea?vù~l@ ßöÙg{衇läÈ‘vöÙgÛ”)SÜØGmÛ¶µõë×Ûµ×^›ïûdƒ € € € € P´|‘ЉÂ"¢Rái„ÝÑiý¢!€¤ÀæÍ›]Wt'N´eË–YùòåíC±3Ï<ÓêÖ­?PM?òÈ#võÕW[ß¾}Ý:gu–Õ¯_?¾  € € € € P|T8¤‡/"Rx ¶Œe¤¡ŒÂ>ìŠ/gޤÀ?ü`×]wÍ™3ÇT™2elãÆöÁXŸ>}ì”SN±[o½ÕöÞ{ïøA+$êÝ»· *T¨ŸÏ € € € €_e@®xHDAQ$4RŠDXT|?$œ9¤¯ÀòåË­S§N¶víZëÑ£‡·¨J•*¶jÕ*›4i’½úê«6nÜ8û÷¿ÿm?þ¸x≑“a£/@@@@(Öɲ È˜F*CR¢¤æŸ‹µ'¤‰Àm·Ýæ#…C ©U«VÍHÆ ³ûï¿ß²³³Ý¸ES§NM“#ç0@@@@@ ÝJ”ØZD¤lÈ·HhEÉR&¿"Ï €©øðÃ]5‘*Œ>øàwª¿¿ÛµkgÏ?ÿ¼{_ÝÔ)@¢!€ € € € €‰ºwè3!õBçÛÖ©-sé¡…cS~9ž@ Ià‰'ž°FYûöí·{Gu”«DZ¸p¡ýç?ÿÙîò,€ € € € €ÅOÀe@±,H-,"*µy󿏆‹”*ņ>²ì¬lÓ/ZÑð_xM‹Æ‘s”àúíÏAA]¿ &Ø×_mO>ù¤eeeå ©eË–öâ‹/ÚW_}eM›6ÍÓ:Å}¡‚º~ÅÝ5UçÏõK•tÁì‡ëW0®©Ú*×/UÒ³®_Á¸¦j«\¿TIÌ~¸~㚪­rýR%]0ûáúŒkª¶ÊõK•tÁì‡ëW0®;»ÕÄ^Š6mÞdʆJmÚ´)¾MÝt.Va´9k³mظÁ-_€‰´ðèÂkšÖÌÁE¸~Ž"÷¢ ®Ÿ¶ùÔSOYéÒ¥]õg^ÿlkœ#µ7Z^×)ràù|ÀqýòùÙ\.\¿\pŠÀ[\¿"p‘r9D®_.8Eà-®_¸H¹"×/œ"ðׯ\¤\Q×Oÿoå‚”ÆoqýÒøâäáи~y@JãE¸~éuqT4¤j£?ü÷îÀ²6g™~•*W®\üHK•*Ÿ.Y²¤•/W>Þ§]ü &ÒV@Éàúõë-¼¦i{°Ø6\¿mHŠÔŒ‚¸~úó|ÄGؼyóìºë®³Ã;Ì®¿þz;æ˜crµY»v­{ß}÷åïƒ\¥¶¾Y×oëÖ™*h®_A ìö¹~ë[Ð[çú´pÁnŸëW°¾½u®_A ìö¹~ë[Ð[çú´pÁnŸëW°¾½u®_A ìö¹~뻣[/]¦´+"Êþïÿz›Û­ìn®ˆ(2¦‘’>?ð‘OývtG, ? €{õêecÇŽµóÎ;Ïf̘a—^z©]xá…¹ŽW4yòd÷w9]ÓåÏu`+ € € € €dš€Ïƒ\µ‘*Žb¿Ô"¡‘ú«#,Ê´KÏù €@Q¨U«–Ýu×]6fÌ;çœslúôévñÅ[§Nì“O>‰œž¾±1dÈ;öØcMëÑ@@@@@DdYP$4R’¯4òωâ5 €@Á üë_ÿ²+VDvT»vm»÷Þ{mÔ¨QÖ¦M›6mš Ž iZí½÷Þ³… Ú%—\Y— € € € € €€(Qbk‘ï¢NïEB£0(J–2ù òŒ P0|ð»èá‡Îqûì³=øàƒ6räHûË_þbŸ~ú©ë²î²Ë.³>}úØá‡î*r\™™ € € € € PìÔc‘Ï„Ô o[§¶ÌQX¤‡ŽMùåxFHÀªU«ìïÿ»5hÐÀg”Û.ëÖ­k –Þyç;óÌ3íã?¶ ¸À)·õx@@@@Š·€Ë€bYZXD ÜPG±°H©’o6ÎH­À£>jëׯ·ÇÜ*Uª”§×¯_ß{ì1{ûí·­k×®Ö¼yó<­ÇBé%0iÒ$kÔ¨‘1"­lÓ¦MÖ¸qcwlGq„eee¹ãK6?­>ÉÁ̘1î¼òJW‘wØa‡¹Š½Ï?ÿÜ^~ùewžº½{÷N²6³sÐçáé§Ÿ¶–-[Ú¡‡jÇsŒÝvÛm¶yóf»æškLÎ7ÞxcN«2@@@ Y ,"Š„F:.Wi«0ÊÊβ°»B>fvd¼À/¿ü⪆þú׿Z½zõ¶9_•Œ2Ä:tè`§Ÿ~ºÝ~ûínü"¿ààB#ÿ:Sžï¸ãkÑ¢…»ù\”ÎiΜ9îÆùàÁƒ#‡ýÑG¹.#3c/¾üòK7KÁL:µY³f™µ?ýéOV²dI7l¾{3ûþûï­sçÎ6qâDûé§Ÿì÷ß·ï¾ûÎêÔ©¿:üC9$Ï"ýMã­=ñÄ&ß 6˜ª&K•*e_ýµiŒ69볿+MAž½fÍš¹ýôë×Ͻ>ãŒ3L?Ò@@@@ ï ŠT<¤b¢°ˆ¨T¸‰°;:­ _4@Ô|õÕWîæü 'œ°ÍýõWûÛßþfÿþ÷¿­bÅŠVµjU{ýõ×mÔ¨Qöꫯº§Û¬”!3tÓ¹(Þ^ºt©»qîC]Žß~ûÍn¾ùæ»üâ‹/l=ö0Y•NMÇå[¤$›ï—M×ç^xÁ]Ÿþ¬zê©¶qãFÛsÏ=-<'UËÐò&°lÙ2÷÷‘–.W®œÝpà nE…;rU¾bÅ Wq”·-n»Ôk¯½fýû÷wA”ÆnÓ6Õ-§¦çÍ›g îÏþó¶+2@@@’ ¨pH_D¤ð(mËHC…}Ø%Ý"o €䛀¯æX³fMd›º!«®´T¹¢ ÝÕYÝ$Õ´º´{þùç#ëdÒ‹W^yÅu‰¦ª…¢ÔN<ñDS—sºi®¦àK7¸U¡®º›*Ž>úèÄÙ…þzúôéñcƒ”dóã §á„~¶;v¬;²2eÊØ#¤Ç–"¢H÷tJ‘‹Šñ§„SGBP‡nd?üðîû2…Hº{î¹çºoÒßwß}vë­·ºÀHzÒI'¹ñC>ûì³>nêîiöìÙ¦1].¾øbS÷h­Zµ²1cÆä¸Ý… ÚÿýßÿÙñÇoM›6µ|Ðu×­[·È˜%º‰¬m½ôÒKöÃ?ØW\á^û*Uâ¨êFÕ QN;í4SWtóçÏï÷¹çž³Ã?Ü–,YŸçYH:wÌ'Ÿ|² 80¾œŸX°`«ÒÒ±ê\au‰_ççŸvË%Žk3~üx7¿S§N~Q÷¬å¨hì5îê²KM]¡éüd¡¦@IÇq÷Ýw»×êÒKaáQGåºóºüòËU²sr+åð›ÎU†ªžÑçI¶ 'Ož_ZÿÎ>ÜZ·níÜÿò—¿Ø‡~èªÖtLüãݸZ~…dáP²ù~½dÏúÜh?C‡5m#¼~ªJlCIn:N'^?½7n\âjÛ¼þøãíª«®rÎzSÕE éü`¹>Ý»wwc )°èÙ³§«VR¥‹ö¯1ÅÂöþûï›>#GydŽÇ«?Ëjú³ô÷¿ÿÝN9åwnºÞºöï½÷^|ì¨p»É¦½©º¯Ôg­]»vîúËì“O>Ùfµpùo¿ýÖ}FôgõÎ;ïŒ/«.æTÝ£î0õgGç­®3Vû¦ÏìSO=eÏ>û¬Ÿeº†24h›§¿Kü5S¸£¦múy#GŽtóô›þñóå§ñô÷`=ÜtÆ O|…ØÄè^æôç8\Ži@@@ˆ $Ë‚"_ÛV’%U¹çè6x… P€ÕªUsÇ+HèØ±c|Oš¯n™4°|bSWu%JDòÿÄEr}­oð«M™2Å.×]w >T£Aëß}÷]Ûo¿ýâÛ˜9s¦«"P(¢¿5jÔp7ÿuc_7“¯¿þúø²º½nÝ:7–‰n6k<Ý>è ƒ\(¡ª)UÝè=Uã,Z´Èt³ý¢‹.ŠoCÇW¾|yÛÿýãóüØ?º®Ó]ºtqûU° jíÇ ¤›ò Ýd¨1 *W®l}ûö5mWᕎEË'¶²e˺Yºq6ݯP¡‚©»À°éf½–½ä’KÜlî~ÛuëÖµ{î¹ÇÝðV j 5ß,ôõe—]fgŸ}¶«šxã7Ü9), «|ÜÊ ¿)ÒveÓC‘o2Rõ–oª`ÓzKMϪdSÓõÑuQSõ®·Z²ùîÍ\~SP¸råJ·„ö+j:nUþ4hÐÀ…]š'u˨°NM×OŸ=_•§y:®°Û<ÍKlOG¡¥ßWø¾wõŸ+½V‚)ļð Ý9ûõþùÏÚܹsÝXHšîÿå—_¶xÀ-ºÛn»¹î$ÃÏK¥J•\P¥ª¦¶mÛF>KòÑCï)lÉK MÿóŸÿ¸°×ÿÐ'c™SHvjáò ;Ï?ÿüø1(°QÓ5Òzþï73ö›‚嫯¾ÚCúûhÀ€öÌ3Ïø·#Ï2Ôy+UÓŸqU©ÉÓ{+ kÙ²¥ 2Õݦšþ\<ùä“®+:ý—µÚ-·Üâæ¹[~Û{ï½Ý”>§úlìÊ߇áv™F@@@ ÓôhAÙo‘Ð( ŠüÂ~Až@ ^@AŒ*kè[ù 5ªø.´@c…7¬ßßÞkãV!°aìzõên}³_7´Upíµ×ºyëׯwþ­ÐñÕ¯_ßÍ× ôªlÑ|’è ¿mU!¨âFU¾}ôÑG¦ªU\´oßÞÏv•Tá¿EÚÆÁlá¸@~»ª‚ðP ¤Àª^¬k+Uü¨éfsØ´ŒŽCÕ(¾M›6Íy£PKá–oÚ¾Ž¥qãÆñn³ü1jžšB#…" ×t³]•aó¡‘Æ§Òµmª¢ðáF¸žŸ^¾|y$0jÑ¢…©jåÇtÕXªrRS^>0RU›ªÔT-2kÖ,7~žüqé¼ÌwÈå·p{ Ž)$S(ê+NÔ¥Ÿ×KÎ>0:î¸ã\@¡AáÚM7ÝäÖ×õÓç3YÓA öüq7.˜–S…*»üg>¬Tñçªí*´RH¦¦?›mÚ´qã÷øk¬ù~yuq竎ôyS¸¤ J×Bí¤“NrÖ:…">LÒ|Ui?:?u³–×ð#<]_ý9SUÐÓO?mú\h ÕmœZx ´Œ>ãµk×vá–<ôóŸ* }`¤?#ªÒk¯zÿí·ßvŸãsÎ9Çý%#5Ì þÔ@)Œö?Oz#½§@LŠ ­T%{u³©¦ \AÔî»ïîþ\ú®7U—Sp®PYM×JÆ´> @@@¶/ ÿK»ûp±""õBç[$4ÒLýç^-›Š÷cçWà@ `Ti¡nè¶×t3]Uúæÿζ3f¸Uzè¡øÍsÍðßÞWU‚o ^T  ÇFzOÕºé¬H7v}ó7UÉFz_ÿ(©­]»Ö=ûßÂÀHûRp–Xqáo’«šc=öð«ÚêÕ«Ý´n6û¦âØcF~¾ž«ˆÂ÷tª C#ݼֶtc\7Í}Su„Ž5¼f:wm#§-¼yî·áoä+¬ó‘ÞSȤ¦cÉ­=ñÄñ #…º!ŸSûÇ?þŸÝ«W¯x`§ýËJ-<>\šVß$›¯årkþÚi§®¡ÆªR äC#¤hu›çÛ¥—^ê– ¯yn×Я§gdºa7‡§Ÿ~º«RÒûú<ú? :ÿ9ÖµUµŽZ½XȨÊŠ sðªíµ×^î¡i…$þ3£.âT]ã_ë}U<ù0ÈQš¯j)6j>às/òð[hªîèÔ½¥šºŽSH¦¦î!} —×y+¬9묳üÛ.´ò]Ú©;¸~ýú9w»o¾š­N:ñpXï)TËé3¯÷|€ªi]ù¨rO¡«®­¶¯pXÇì+ U9åÿR@•S }Ãp9§e™‡ € € €[\Ë‚Ôü—>5½5>нÐ@GZP©’h! €@z èÆºº±Sx£JŸi¿ýö› š5kæÆ^ ·ñË/¿¸—êŠÍ7U@T­ZÕ-ãçùgmK7zý·þ5_7§uƒ]ãÈ$6U 膴ªx„7¤ý²þævx³Yç­àªÔQ7oaÓGj¾;=ÝWõ‰º ›ºÑSSSnMÇîoH÷Ýw¦õ4þŽnL‡Á†Â4…f !|Ó±ë8ª$…ç£å||óÍ7.¨ð)~;š¯¦"YÓMw}¥¦cS•HNM•D¾«0¯*É|ÓM|ß’…Fy™ï·‘ìÙ_S½¯îâШ…aŽª²|Sðá›B5âh: ô:·¦kæÏ_ë)¨ñMÝ úkªÏ¥é|¥åT•¥Ï„šªÚ| ]|p©÷üñú®Õ4/<Þ°ÚLsªòÁ•–Íkóá¬Â(Uù^STé½ð¨º) Œô¾Æ»òMUn v'L˜àªºü|_¡§×áöB ½†‹‰ï©‚Ò—ÿó¯1Î4Þ’oªBò-ñφŸ¯ê.5]3ß­¢g@@@È›€ 4nQ¬EB#Íp•F±7³²³,ìÇNïÑ@ _@7XÕeœº»óÎ;ã7ÞwôÈ4>‘‚•0ìðÛ˜7ož›T…šö¥›ß ˜ÂæzOU6z?¬0P¢åU™Vþhy5…tUê"K7®ÃîÁ´Œ¿ÞlÖ jý;•S5†–×vuÓ_M7¤U£Ï:@o½õ–© 8³*ºrkºíC#UDhyUÄ(8Pª->ûì3óã<ù*î‰áŽ]ABbˆ¥õÕ…YNáŸnºëœüX39¯‚%x(SuKNÍWè=u‡æoØëµÆ~RSèç+ä쯎ÁWß$›ï6Ëo2óÁž¬þë‚Í·0, ?GªdñMÇ¢j6}nÔtL¾;¿LnÏÚ‡Ž]-§kã× +ªT9ä›Ì|ó^z~>ÃãÕuUè¥PÔ7uè›®·ÆÓy¨é³¤ê¥#FøE¶û¬?¿Úš>÷aæ2½çÇ ¯~ô]ÖißÔ £o={ötã/éïÎçwž«òË„×.´Ðûþ=í+ñ=ý½ Ú7u)©n#Ãæ)U>úsß×´ÿ»jß}÷M|‹× € € € ‹€/ R1QXDT"\GÝÑù¦ô‹† ^º©«¥êÊ,¬VØÑ£ô@N„ÆR;úè£Ý³ÆFQó‚{±å·qãÆ¹›ñáx… Büúáò~Zã4©+*g£ LU¾+*-£ãÓMåðF¼¿‰œÓykù°JDÛðã«hìÝ´V—lçž{®©;¾í5U.è&»B±wÞyÇ£u|õ•ª«4>B °ë,îáMrU<©Z)œç÷ï«1È%6½wàÆ+_ß×ë+VÄgûnã3‚ uõç›Â+ß/^ìB5½V0äï°úFÇà«l’Í÷ÛKö¬àÎwk¦ý„á™´nø9ºð ãÁ‚ÆÍQXè?#×(YÓ1øÏ»ÞK¼þ„ïéX}W¹re«V­Z|³á˜Vá¶TA§.ÚÔôÙÐçßWË(¨lÙ²e|šP£qü: TA˜×n÷t-ô9TÛgŸ}ܳ~ÓçÖïW¯ýg+¼ª^óã|i5Uú±¡ôs >ë !uMt-4îÙ]wÝåªÒµ¼Ž×úó¢Ï‰oªÓŸµÄª;­wã7š¯Ò2ª„óÿ IDATŽz­æ»ÕóÝÕýoîÖßµ¼ÎI-·1¿¶®Á € € €„*Ò#,"úß×[·,¥oàê&²#ÿmÜpL#€¾€ªwÔUš¿¹¿³Gäo¢ûÄoG7ÊÕE•nBû.Üüi=aS×hªÂQ oöûp'¼¡®N«ZD7¢u]ç¥n«|5KXõ¡ut̪†I¼‰¬›Ó ¶ÂêÝü¾ýöÛMÝZ)RS%FØm—›™ä7U©gèС.0ðã2y/… Ì.¹ä’mºåÓ&Ãs×Í}ÝÈ÷Õ:á.X膻¯òï醺n¼o¯šF×À·ð&¼æé漯(Òþ}óTz­qŽü¿ùá1ûk¨eÂël¾–Ë­…ë…7øå¨J55uM~Æh)8ÔçO¥ÎU]2ê3âƒÜö¾Sáyj™04òçziÚ[*¤PWj² +£ô9ôa˜­§`KaQûöíãa‹[yËoºîªžÒuþùçŸÝ¹ê:æúõýŸa½öœ¦DùpMrþ³•ìh5ÿYÑ´®ƒÆÊ­)õûU嫦´N¸¯ðï½§ÐÖ‡ZÚ*²ôçU¡”ÿ³ªå|÷„a`§ù¾)¼ÓuQ »µóïóŒ € € €É|ä ˆ‚"¢Hh¤$ã(ù¦x@ °v50ÒñûξšEótVA‹‚£;ï¼3~“Ûw{åoDkYµ{ï½×ê².¬XÒ cÝ@Îi,m;ëGÛña‡tTa *‚Ä›Í:æ°FëªùÔañÆoØäÉ“mÒ¤II»lûßÚ9ÿ®Êý£©ÙÇÆ2ò7Äý±ëƼZÇŽ#бÈÃߨכ¾(ÓÆ¯$“ß¾Ÿï¯OxNþ½ð9¬î˜:uªÝwß}nßêžLcòŒ5Ê…Ra%ŠºèÓy¨Ë:€h›a˜)á1$›SNÓþ%î'Ù|u‡&wU¬ÝqÇ9v¥–Ó~’Í󞺦áçJ¡‡B=5~L%…?>ÐPh¥`SaåsÏ=ï¶P¯}ˆ¨ŸŸ4Ž[!‘¸dMãN)“«]7èº$ëb0q{¡ÝÇlO=õ”û3¬ê=ßn¸á?ÿs¢>‹¿›Ð¾U4þ|ÓøLªzR•žÂ:˜ zäàƒ±¼qáçêõ×_7¦¦PÕ†mÚ´q?4È]sýY§îüß n¥à7ÿgP×)Ù˜GÁâL"€ € € €@ , Š„F*Cò•Fî9Ø“ €™# ŠUq¨zFßú_´h‘U¯^Ý… [Hchœ!ß8èF»Zöµ×^s7–5N‹º> Ç:ÒÍl…ª Il·Ýv›­]»ÖŽ<òHwÃ\7ìðhü¤SO=Õ-îo†‡7›µ…/¾â'Ü®Â0@7ô®rÊ)V/Ö›ÂmOç•—nÍTi¤›ùê*LcÍøæC‚Ñ£G»cIìâKÇ®À(¼Ñí«FÔe™B UúÈX•) ârWʇ3a`ã!|ÖM~uÛ6vìX7[ûÈ©ÉM7èµíS]õ©é:Í™3ÇM‡Þ~ÿz#<†dóÝrùÍ_S-î' Âýè©)2dˆ»† 'UQ–S éÎá7}Þz¨iìu7ç›>;¾Z%Ü¿ÞWW†Ï?ÿ¼[TgjºÞG¡Jx:Vß >úÜéÚ(jÞ¼y¤bLÁRÖ¹ oùMã…–Â÷§ýç^ç£Ïå“O>YäÒK/µp¥d× \©[·n¦®õƒ£þŒë6…ʾùýëuh¡×9½§R¡“š*u¼òQ÷|ÓI×\Ÿc÷¤ŸCuN ™}5“[qËoúúqºTíþy —c@@@ gý¿O÷YôÅA}™Wÿw^µjUü¡×ú?™þ>ÔK…ú¿±þ¬/>ê¡i}YV÷\ôL¾³{:ÍÕuôÁ‘²!ß"¡Qx!ýÂ~Až@2GÀßÐÕ7ü8(LP÷nºÉýàƒZëÖ­·9YUN膱B…FÇç²Ë.sÕaX£ !Ý?ÿüó·Ù†f´k×Î^zé%SU~øÐmÛ¶µ«®º*~3ß_Øõ—Ÿ—xsZÛTð * U.¨éæ³nÜ+ìRÈ z>ÿüswCºOŸ>.hÒ¤‰[6Ùoª4ÒM:GmÛ7©2D7åÃæÏý¸ãŽ g»€ãúë¯w7à€È\¡‘`r:'¯Â]“í5ݤsW¡sW%ˆÖkÕªUüfº*ZT%óÀ¸ÊšÚµk»ª…bªÓx¾¢L]…ùꃯ¾I6{ǧõÔ•™Z¸=½ö×UÓ¡ƒŽE*Nlé¡.ûöíëB¯dŸ1m+lÉö¡eü5Ðtbh¤k&}–têBnr•1Z>üÜk\.…C¾Û5±z¨ÒmÀ€.¬|ôÑGµš £ôs–L Ê^ÝÈ)üÐ6òÒt\>ìS@ªj¬ž={ºñÎ’j[áŸãÄk erjúl*(ÓgE®üñ)ÜÑçI×Ï·d®º^3gÎt‹)ÌÑŸAý @ÌúÌi›jùË_\h¤iU!)4RÓçNÛÑg l²ÓßSj d;wî¾Í4 € € €@  /JjõðÓ šhé# Ï†Ë„bé:ßþ»Á›õ¿Ö÷þvÇ{wØæìÍvlýcí½«ß‹,ì—ã9=t‘uSÈßÐLϣ䨒 pý’Éù©º~ºášØÙÎõë×Ïžìl×m;³ÏT­£oÈhÌbºÁvå7eÊ7fŠB§Ÿ~:~H©º~ñ2‘«€B ™ªöºè¢‹\ ¢o?M›6ÍÆïÖU5׈#Üôö®Ÿÿ¼ka+‰] ºìÂoêQÝÀé‡m G}´›þæ›oÜ1*PRSeLºìÂ.]ªÏ¹šÂ!U ¦²éï¢#Ž8Â…JêN¶v¶%»~÷Üs —Újûþϲg½§oDé³rÌ1Çìì®Y/’]¿|Ø4›H×/ȸ ®_â¦`Ó\¿ à.¸~ˆ›‚MsýR€\€»àúmW_þÓgõU=4^­ï=qmý¿[_DÔ—õeS=øøiŸYîúŸšÖC•HêAEýŸÝO닺GSÓ—O:é$÷¥D}13ü’nNË3¯`úMìg·¿{»eý7Ëš×kn£®åB¤h¥‘ý¯ÔL©’ìa±u@Ð7ð»téânL‡Õ¡;² -« ý@ G¦5UHè†vb`¤óÔÍ|U¯¨k1Zþè‡ÄÜš¾E´#ŸÕÙ³g›¯ÈQWfaw„ªžÑ5Ô»úAU!ÆÛÑ« fôƒqØôçºzûðÃã³Õ-b~6UÕhŒ"U™wÞyñî×ü>Tå¦ê(5s^Z^Lîæ’U åe_;»ŒÆPòÞùmêIUO¾"QߊSe—ž}@¦J0#¯Å3 € €gýŸT½hìW}A81´Q1ê\½\衞ô¬Þväÿìy1ÖÿÑ,Xà*›TÝäúb¥Æ°VzèÿëêmCÝ»ëÿªF¢ž€>±XP ‘EB#’K cofeg™ú± Ë’ ïÙ3 €€º²Ò?º=zôpßðß•ÅêòIcebûñÇÝiéf¾¯Lðç©Jú±“ü|žwN@ŸÉ0ÔIÜŠ#… ;ÒT)æ›~ Ô˜<êâLãé‡Jÿí(}#©e˖毷_'|¾âŠ+Ü·|ÀR§N|ÿ!T¤yÔ›B"}#KÇ©ní|wu òYP$4R’ä›VÐ/ €@z躚‚ýû³MeÂ*Ç ÚÙm¥ãzúD?p¨*¥}ûön`FM¤rì1cƸ”4~m׎„áAâÕÛŽþPª @a“˜þýû»‡~àÔ7•|ÓØCúAÒW™è /ã'ü¡òƒ>pãòøuôü÷¿ÿ=|™/Óú¶ÖQGeS§Nueÿ:¦ÄãÕ Ë*/-¯¦ah¤þ¡SÕt½Ã Näîêq½ù曑Mø.2“ € € €@1øí·ßÜÿÅ5쀾`雯nÖ8Ò7Vc<§[Óp Íš5sã ß}÷ÝîÞÔûï¿ïÆŸ9r¤ë’^÷kôei]«1¦Óñ<ÒÍuWG‘aQ44ŠÝtq7wbÙQ^»PÙÕƒb}@¼ ¨Û.5 *¿+Í^ŸÊê„]9Þ]WcÊ”/_Þuk¥nÎTñ¡>xUzݽ{wW¡† ;º}–ß* ~Ž}p³uî®M)4yýõ×mÀ€öÑG¹"ÕÂ}öU]¤1|ôæ߷¥Ä1ýÖ®]k TqV¿~}W•¢’÷‚hÏ>û¬ 8Ð…’‹/vÇR©R%·_UD]xá…yË(/¦êv@UMj5jÔHi7“¾{G]Û7Þ˜/ã¬Äua› € € €@& ¨— ýÿSc4û/ôÿd¬{!E-`Ñ :tpu?ÿÚk¯¹/ŽÎ™3Çz÷îmÿøÇ?\¥’B$õÞAËe@®xHDAQ$4RùaQþã³E@ ?ò+4R?±~[ùq\é¸ u—UP]f¥ãùfÚ1é]•¦ïJKåg@¡äÕW_í»rÌy]W\…õgX @@@ uêÖíÉ'Ÿ´GyÄTe¤¦/ôÅX}±R½]õ¦1‰Õ£ˆº™W×u ÇFåÆiÒ³ªŽn»í6Ó-iù', Š|¢T†ä»‘ñÏùwl @`W|÷t©ìŠjWŽ—u@@@@v^`ÆŒvòÉ'ÛwÞé#Mk£ &Øgœ‘Q¨£L⤓N²Áƒ›ºeïÔ©“+ryî¹çÜøÞcÇŽ gz8úàHÙo‘Ð( ŠüÂ~Až@ O@eÇË—/wаaÃÂ;öŒ € € € Pào¼ñ† Œ¦OŸnuêÔ±áÇۈ#\Wáá}ü?BÚÁ¾ûîk}ûöuãVk,$W}Î9çX¯^½LÝØÓv]@ÝýûÏ’z¡ómëÔ–9 ‹ôб)¿Ï €…(vEE¥Q!^v € € € €îÍ?ðÀv饗چ ܘEŸ|ò‰µhÑ¢÷š¾›>ôÐC]Wu·ß~»«¬züñÇ]x¤±i»&à2 ØçM-,"Š„F±áŽ\X¤TÉ?vm·¬ ¾k:õ¢~^i € € € €™'ðàƒºÐH]‡iº_¿~Åþ^PÉ’%í¦›nrcí¹çžöþûïÛùçŸoGù÷ù‹ˆ"¡‘vá*bFYÙYöc—»gK €;*à+5j´£«²< € € € €@xå•W\`¤ø °k®¹&Þ}X8ü?Äc=ÖFŽi{íµ— Žü˜G¾ã Ý>g*R1QXD Âîè´‚~Ñ@ _ÀWþµà@@@@üÐØE×_½ÛìC=dmÛ¶Íï]dÄö4Ö÷¨Q£l÷Ýw·1cÆØÐ¡C3â¼ ë$T8¤GXDT*<?–‘†2 û° —a@ õT¥Þœ="€ € € €©ÈÊÊr‘ž;wîl]ºtIÅn‹ì>ö­·¯]uûUöÐSÙ /Ü`Ÿïö¹YI³²%ËZÙÒe­LÉ2V³rMkT³‘5¬ÑÐ*îÆP9]lŸ¹¢ ˆ(©‰°('>æ!€…' *#ÿwóATxž@@@@ò]à…^°Ï?ÿÜ4^Ͻ÷Þ›ïÛ/êÔ}±é‹§ÛðéÃmòüÉöÅ¢/lÃæ f-ÌÖÅ~=ýï§s=Å:»×±Ãêf­nå{TÜ#×å‹Ë›þ~câùFB#•!)UR¥‘{N\š× €)ð]ÓUªTÉöÞ{ï”ïŸ"€ € € €œ€Æ/R»ë®»¬J•*·£"¶å•¿®´?~ц}6Ìæ®œ9úzÕë¹*"UÕªRËÊ–*낤Yí÷M¿Û’5KlöòÙöíÊomÑêEîñîŒwÝØ=Íökf­·¶NGw² e*D¶[œ^”(±µˆHÙo‘Ð( Š’¥L~Ež@R#ðí·ßºQe”oö‚ € € €¤J`Ù²e6sæL+[¶¬µoß>U»Mëý¬X»Âžøà {~òó¶~Ózw¬UËWµ6‡´±Ó:ÍšìÛÄjTª‘§sØ”µÉæÿ4ß&~;ÑÞùê›ôÝ$›ö±ûÇÜ‹þ|àŸíªã®²¶°2¥Êìðé”.YÚ¬q {\~Ìå¶fý=k´õý°¯ëòîŽ÷îpûìyzO»¤Ù%Ū6—Ų µ°ˆ() Ò‚J•üc‡¯+ €ä«€¾q¢Fh”¯¬l @@@(tÕ«W»cØÿý ýX ó~úí'»rð•6nö8w'78ÙzœÞÃŽ®wt¾V•rUì¼#γ‡w°‘_tÕWK¾²þyƒ}üýÇöä9OZ¹ÒÅ/¼ ‹ˆ¶Öm¡w•F± £¬ì, û±Ë×+ÃÆ@ò,@¥Qž©X@@@(R%K–tÇ«›öŵý°ê;þñã]`T¹le{¥Ó+6âªù…¾ò>ógÚ¤n“¬Ï¹}ܘHC§ µSúœbê¯84_@¤b¢°ˆ(©;:ß´‚~Ñ@ W`éÒ¥îöÞ{ïÂ=öŽ € € € ¯*TpÛ[µjU¾n·¨lìÇ_´6ýÛØ¢Õ‹ìˆ}ްÉÿ7ÙZÒ:e‡¯°¤óÑmüuã­^õz¦ª£/v°u×¥ì sG*Ò#,"ІF[Æ2ÒA†}ØæA³o@ 8 (0òÓ=]qþ$pî € € € ‰Gu”;­I“&ÅïeâyætNë7­·ö/´·ï~üΫs˜½ÓåÛ·ê¾9-Zàó©}ˆM¸n‚íW}?ûlágvÙ Ë\Rà;.Ä螣+RQPD ”ªù›“…x¬ì@`‹€ÏH/ øX € € € €™% ±ŒjÔ¨ažàóÏ?Ϭ“ÛÎÙô›ØÏ>_ø¹°çöæåoZ¥Ý*mg‚}{ÏŠ{Úð+†[õ Õí½™ïÙ ¿P°;,ä­'Ë‚"¡‘Ê”(©ùçB>nvkß5]åʕ͗+kN@@@È ݇o×®;£‡z(ƒÎ,÷SѸAýë1·ÐSç=e{TÜ#÷Rôný=ê[¿ýÜÞ÷ý¶ñ·í9õ»)Qbk‘²!ß"¡Q%K™üŠ<#€¼€¾e¢ÆxFoÍ@@@@¸ᆬL™26jÔ({ÿý÷ ãR¾Ï‡ÆÇ™ ¿Ù™<ÓšÕk–òýç¶ÃV·²æû5·•¿®´>ôÉmÑ"ý^vöÖ""õBçÛÖ©-sé¡)6å—ã@ |¥]Ó>»D@@@R  / _sÍ5nO—]v™-^¼8{-¼]lؼÁ†Lâà–So)¼I²ge#·žv«{÷å)/gì>.ŠeAjaQ$4Š wäÂ"¥JþáÖà7@B 4*vvŠ € € €¤TàöÛo·fÍšÙ?þh;v´_ý5¥ûOåÎ>žÿ±­ý}­;èÚ‡¤r×yÞ—ªŸJ•(e‹×,¶¹+çæy½¢º`XD tB®Ò(Va”•ea?vEõd9n@ ( å«Ç±#€ € € €y(]º´ 8ÐöÚk/›:uªµjÕÊ–/_ž·•‹ØR_.þÒññõwÅ+éxøeK—µƒjämÞóÒñwù˜©xHÅDaQ$4 »£Ó úEC(<Æ4*<{öŒ € € €¤R fÍš6räHÛwß}múôéÖ¢E ûôÓOSy)Ù×òµÿ ÃêíQ/%ûÛÙÔ­V×­ºzýêÝDÚ¯§Â!=Â"¢hh´e,#I؇]ÚŸˆd ÀºuëlÍš5îÌÓ(/0§„ € € €$4hÐÀ&L˜`‡z¨-X°ÀN9åëÑ£‡­_¿>aÉ¢û²F¥îà×oLïsÚ¸y£;ÎòeÊ]ì\Ž\+RQPD T‚DX”‹"o!€)ð]Ói—„F)„gW € € € €@! ¨‹º±cÇZ×®]ÝQôíÛ׎:ê(6l˜eggâ‘åÏ®kV®é6ôÓo?åÏ h++~]á¶\½BõÚCán6Y T†¤DIÍ?îa³w@ ø ¬\¹2~ò„Fq &@@@@Œ(W®œÝÿý6nÜ8kذ¡-\¸Ð.¿ürkÒ¤‰½óÎ;Eúü÷Ù}wü_,þ"m‹XÖoZo3–̰R%JÙûQ¤½“|‰[‹ˆ” ù  (YÊäWä@ `6nü_ lÙ²e vGl@@@@ -š6mj“'O¶Þ½{[ÕªUmîܹ.R/t¾mÚ2Ga‘Z86å—ã@ ž¯Ú2eʤxÏì@@@@ ]J—.í‚¢³Î:ËR³fÍÒåÐvê8v+µ›µ=¤­[÷ÕO_Ý©môJý&ös»¸â˜+ zW…¶}—Ų µ°ˆ(ņ;ra‘R%ÿ(´#fÇ €@1 Ò¨˜8}@@@@`‹ÀêÕ«í7Þp¯îºë®¤.ºù¯å¦L™b›6mJº\a¼±nÝ:W5õè£Ú÷oK*Ì^úÏK6é»I…q8I÷ùæoÚÇó?¶ÚUj[›CÚ$].“Þ‹ˆJ%ž˜«4Š]­¬ì,S?vaYRâ²¼F(8 6¸ï¶Ûn·¶Œ € € € ö4õJ£*£Ã;,ÇãÕ¯ºê*ûç?ÿéÞ×üãíðÃwMï·ß~®›»7O3³²²ì‡~°Ù³gÛ7ß|ãž¿þúk›1c†é½x‹Lý÷ÿZçW:ÛÄn­N•:ñ· kbÉš%ÖíÍnn÷½Û÷¶2¥2· EÊ|ä³ HhvG§ô‹† P8>4bL£Âñg¯ € € € €@:(héß¿¿;”«¯¾:ÇCZµj•]tÑEöÑG¹ÞÄ*Uªd¿üò‹M›6Í=•ªT©bõêÕ³úõëÛÞ{ïmÕ«W?ªU«fåË—7u‰§!ô¬‡ª–ZùÇï¿ÿî¶¿|ùr[ºt©-[¶Ì=4­ÀÈß× ÷«é8Àš7oî¯C<Ô®s­M_<Ý.p½yù›¶GÅ=WIÙëkWXëþ­íçu?Û…M.´V·JÙ¾ kG Œô‹ˆ¢¡Ñ–±ŒTöaWXÌ~@â,àÿqeL£âü)àÜ@@@@ ¸ Œ=Ú,X`µk×6?®Qh¢jž:Øüùó]Ñ«¯¾jÇwœ q¦OŸn_|ñ…éyΜ9öý÷ßÛš5kÜkÍ+¨¦ð©aÆ֨Q#÷¬éC=ÔÊ•+g*TˆïvXíaÖ¢O ûbÑvÜãÇÙ€‹XóýšÇßOÕļçÙyγo–c'58Éz·ëª]Ú~”¹â!ED‘ÐHåG„E…vØ1 ð¡•F^ € € € €ÅJà™gžqç{ùå—»ªŸðäÇo;w¶µk׺pfذa® :-S«V-÷fÅV IDAThÙ²e|U--Y²ÄæÍ›çªR•ÒO?ýÖ=)uu§ê"ÿPµ‘îQ)ôñ…?5kÖŒ?üþöÙgÛcm+†²³³]¥Rü`tŒUjÙØ®c­ýóímÖ²YvÆÓgØ­î°¿ô·” £üðCwèâ‹/Žo^7üŸ~úiëÑ£‡)Œ9å”S쥗^²Ê•+Ç—Éi¢dÉ’¦PGO<1§ER>¯Îîulìµc­Ë.öÞÌ÷¬×{½ìÍ/Þ´ÛZÞf§5:­@² ù}0÷{hüC6yÞdwÎW{¥Ý{Ö½V¶tÙ”ÆK”ØZD¤lÈ·HhEÉR&¿"Ï €+ >bÕ Ö™­#€ € € €é*ðì³ÏºCS÷s{HM_4îÞ½» ‰ôúšk®±{ï½×J•ŠÜî×[E¦U)WÅ^»ø5Wõsˈ[Ü8Gç¾p®ZûPû¿ÿçÆÚ­Ôn»|>?þú£½ýÕÛ6hÚ ûôûOÝöjTªáº£ûKã¿ìòö‹Ò6ú""õBçÛ6Ÿ"…EzháØ”Åz³óËòŒ B*RˆÍ®@@@@4øùçŸmÈ!téâžÕ•ÜE]d}ô‘ ‰üq×=]šúNŽ2‰‹š\dgýé,{ö£gí©IO¹ð¨ÓÀNVa· vê§Ú:ÃŽÜ÷HÛ¯ú~VªÄ6ñFÒýN˜3Áºý³›-XµÀ|UMµòÕ¬ÛŸ»™*ŒŠCwt‰8.ŠeAjaQDU‘Tªä‰â5 €@jü˜FT¥Æ›½ € € € €é$0pà@7ÐqÇg7¶Ù³g›*޾ÿþ{«Zµª½úê«vüñǧÓ!ç˱ì^nw»åÔ[¬ë‰]íÅ_´—§¼lsV̱·¾zË=´“Ò%KÛþ{ìoµ«Ö¶ªe«Zù2åݘDµ~Èö¬´ç6ÇqϨ{ìûŸ¾wE2'78ÙÎ9ük{h[«¸[Åm–-Ž3Â"¢Hh$ Wi«0ÊÊÎr‰[X–T±8g@ °|hT¦L™Â:ö‹ € € € P›7o6ß5ªŒÆgÓhíÚµÖ°aC6l˜í·ß~…pd©Ûe…2캯soW~k£¾eãg·¯—}mË×.·ÙËg»GxDÿšó/{âœ'L]Í)ñíì?mŸ-üÌÎn|¶½ÚùU?»X?û"U^…ED[;ª‹ñ¨;:ß´‚~Ñ@ Nàþûï·&MšX¿~ýlñâÅ‘%ëžî“O>±N:¹õÆY‡ € € € €E_`Ô¨Q¶hÑ"«S§ŽýðÃvî¹çºÀè”SN± &d|`”xØó¸j„Íí5×Þ³Ð&\7Áud};ôµn'w³ÚUjÛªu«¬ãÀŽvþ€ómÑšEñÍSÿ7=séÌø<&Ì)4òED2‰†F[Æ2ÒavzMCÈ_}3DeÆzîÓ§µhÑÂn½õV›5k–ÛÑï¿ÿîž}¥ÑðáÃÝ2 Œi=Í£!€ € € €d–À3Ï<ãNHÁQÏž=-;;Û®¹æWaT¹råÌ:Ù8›*åªX“ºM\åP§¦ì®3ﲯz~e÷žu¯ŸHUIMnbÏ|ôŒ D­}¨«¦ùîÇïlõúÕ;±ÇÌ[E+RQPD T‚DX”yŸ3Bô¨T©’5mÚ4rp Ú¶më*‰–/_îÞûòË/]U‘¥Äj$-KC@@@È3fؤI“â'TªT)÷…ã|Ð4MËY T‰RvýI×Û'7}b-µ°ß6üf7¿u³µèÓÂ\ó`·âç ?ÏyÅln²,(© I‰’š.fNœ. Rx Çý©’è›o¾qïM:ÕU%.¨Ê$•$Ó@@@@2G [·nñ“©Zµª1Â:wîŸÇDîu«Õµ7/{Ó^¼ðEÛ£ân,£þq‚ÍX:í8má´Ü7PLÞ-Qbk‘²!ß"¡Q%K™üŠ<#€ìº@íÚµ­k×®;¼¡Š+Z=vx=V@@@@H_Ý—Ÿ2eJü?øà;þøã㯙ț€²Žs?ǦÝ<Í:6í躨ók™6ÄOëguyè3!õBçÛÖ©-sô¡ÔC Ǧür<#€€¾)²÷Þ{ïÐÖ/¾øbSàDC@@@ÈÝ—_²d‰uìØÑ4žÑ~ûí—9'WgRµ|UëסŸ½ÛåÝøÞOmtj|º8O¸ (–©…ED‘cù°H©’g4ÎH…€Æ6RŸ´:uÊÓî5j´SÕIyÚ8 !€ € € €ª€z˜éׯ_¡C¦íü„N°¬°YËgÙáuÏ´ÓÛåóñEDʈr®4ŠUeegYØÝ.ï• €$hÚ´©iŒ¢¼4º¥Ë‹Ë € € € € °U lé²F[9âD.(ÚRH¤·#•FawtJ–ô‹† …Aê³ö×_MºÃ6mÚ˜& € € € €@á ,]ºÔ–-[fkÖ¬±¬¬,w^÷ÕÕÜýuÝc=J–,醨W¯ž{/§ßÔÝܹsmãÆn[eÊ”±† Ú>ûì“Óâ¶iÓ&ûꫯLÇv-–ã±™eË–µÝwßÝêÖ­k{î¹g²Å˜_ÌT8¤‡/"RtÑÐhËXFÊ(/´bæÇé"€* 1Š4VQß¾}sÜJ“{öì™ã{ÌD@@@(xéÓ§Û /¼`cÆŒqÍŽìQ½Ì 6ÌJ—.Yíºë®³—_~92O/8ÝxãÖ«W¯È{?ÿü³µlÙÒfÍš™Ÿ×'éüóÏ·«®ºÊªU«–×Õò´Ü—‹¿´AÓÙk´F{5².Çw±J»UÚîºo}ù–Ÿ=Þ²þ›eêJîü#ÎwçŸÛŠ›²6Ù«Ÿ¾jÚgÅÝ*Ú9‡Ÿc‡Ö>t›UÖnXk>`³—϶õ›ÖÛæìÍnxžö<À®<öJÛ«Ò^Û¬“8cÖ²YöÉŸØœsLÛÓvT„ã oŸw¯°»Sïk}HëÄM¹fègCíÓ>µ_6ü²ÍûyQ¦DÛ·ê¾ÖéèN¶w•/]ûP†›þ"¡‘R$¢¼^–Cò_ k×®6~üx›={ö6×ÿˆ† € € € ZÝ7¿ë®»ìÿø‡eggïÔÎ'L˜àB£ /¼0¾þ‡~˜c`¤´ÏÞ½{ÛE]dûï¿|þýûït`¤ÌŸ?ßxà~ 0ÀŽ?þøø¶sšXµj•«jR¥RãÆ­D‰mF½q«)”9ùÉ“MaŽo#gŽ´ ×Op!Ÿ—øÜÿßý­ûðîñÙƒ>dóšo=N럗ÓÄe¯^fo}õVü­>öqû:rŸ#ãóÚçTûzÙ×ñyá„ö5õæ©.t çûéQ_²ûFßg_.ùÒÏÊóóÓŸ¶[N½Åzžýx·{ØS“žÊóv¶·àÓ=íÎaÏŠ;VA–, Š\]•!)YRóÏÛ; ÞGÈ_œÆ,R—t;wÎß±5@@@@< Ü{ï½.ÀÙÙÀÈïä›o¾ñ“îyæÌ™‘׉/tc?ñËʼnÛH\'¯¯W¬XaçœsŽ}ùeΈºÜS•ÓhgŸ}¶ —š5kfª¶Ê© Ÿ><i™i §ÙÜssZ<>oÈ´!ñi?1xê`?™ãó¯~FZHùFâz“çMNi%k–Ø¿æüK“Û´{Fßcç½xÞNF~c/OÙ¶‚ì•O_ñoçËóÏë~¶w¾zg‡·¥ðÏG²ó-…A‘_Ø/È3 €@ji좰Ýzë­áK¦@@@@R$0oÞ<åÇîjÖ¬ÙL^z•Y¿~}dÄב7wð…¶Õ¥K—×zì±ÇìñÇwã,ù`µk×ÎT}”Ø–þ²4q–{½ì—e9Î÷3sz_aNnmÑêE9¾8åo+s\.œ™Ó¾†}6ÌÿH¸ØNM¯^·:²žºµ[ûûÚȼüx±z}t?yÙ¦PŸ ©:ß¶Nm™£°H-¬>ùh €©ÐØEÃH­S§NvÐA¥þ Ø# € € € €€½òÊ+¦ª›]mU«Vu•=ávZµjeÕ«Wg¥|zÆŒöþûïGö«óM6îöÊ•+mРA‘åõ"YVXŲÍJZ/¨rñïç4Ï¿§çdïgeG¯Ó{®–ãtâ¶ôZUFùÑ©}Hd3‰ûм¹ /rËi{›sP, R ‹ˆ"ci #-¨TÉ?¶·aÞGÈ}ËdĈ¶xñbSå @@@@ p&Mš”tÇGu”Õ¯_ßÊ–-›tuV¯^=ûë_ÿj5þ¿½ó³¢ÈÚð™a@$'A0àŠJP bXŠH0çˆ fW]ºfV×€¬¨ˆ"†}Dq °+ú«00ä0ã¿‚ºôíé;fîðžyšî®®ª®~ëÞîKuN5l˜¯~ýúöÑGÙ³Ï>k/¾øbÒÐo …’ì(„œ„©(ËÉɱY³fÙ?þuØÍ±}ðÁÇ-]ºÔ–-Kî½RV!òtBé[Ë$¦œÛã\{äƒG„‘‚Î÷É‚Oì‡%?”¥HÇšf7µQÇŽ*RÞ’fJ«šfçï¾õÚ½WI«p弑ú"A4ÒQçió0’"'Õ+è–Tª³R€ŠE Y³f¦ƒ @€ @(?Ôe&L°>}úD*VZ£Fì²Ë.³Å‹—J4ºêª«lÏ==[‚ Ù°aƒ]xá…öÜsùçš={v0«Õ©SDz²²,Y(¼&Mš$ä¯È;ww‡]yè•vÏÔ{lÌ»c mêÌgFæÉHËpT6=¬nVÝxh·¨ÌÙYÙ&/§jéÕ¢çKk]¿µ={Ú³ñô çƒû>BœÚÓrÇ––•‘/Wœ ï@äu ¯%ˆFþdªX¶¦ÂWœÆ“€ @€ @€ PV¬È?<„ÊB0ږד‘‘a7ÜpC¤h$Á*hééé6hÐ {ì±Ç‚Én;33Ó /½¤ Ò"¶¶5¨ÕÀšÕ)ÚàìÅ+Yø¶ ë5Ì®é³uæÏLÏ´?5þ“?Õ6[K0Òt"J˜ÓHj•ï  rµÍZȉ @€ @€ @ˆ€¦Ûï¿ÿnsæÌ 'WøýæÍ››Ä£°-_¾<œd·Ür‹õíÛ7!½fÍšöøã[›6mÒ+ÓNй&x]­êµ î¦ü¶×ƒœQÀ‰(ÁÓHîGˆE)ß×\ @€ @€ ”MQ§÷è½{÷¶^½zÙÎ;ïìB¹éå{­Zµ¬^½z¶Ç{¸PqÕª-êÀƼ¶hå"Ó|JKV/±¥«—Úò5Ë-gmŽ­X»ÂV­[åÖŸ,øÄξ½?ïý¨jŠ•&qʳ— åmËÖæ§\mžÛ(Yì>_˜5 @€ @€ @ 2Ðü=]tQ‰/qåÊ•vÆg¸0o%®„‚ÛŒ@õŒêΛ§¤'|ëË·œGÒÜ_ç–´ŠBËMýjj¡y Ë ÁÈ;ùµÊ$ˆFU,ö§˜†1UÉ/…UÌq@ض6nÜhmÛ¶u˼yó¶íÉ9 @€ @Ø ÜtÓMNø)饯_¿Þ®¹æš’¯Ôå¼·KEºÈ὇[§:•¸IòøÄ@ËÍË?WT‰+ \Ÿ»>°WúM' ÅáÉD#%8O£ØA]L0ŽŽa€ @€ @€ í€æ¹çž{\˜¹Ã?ܪU«VlÓ§O·o¿ý¶Øå(°í dedÙÄs&ÚÉûž\⓽èk{á/”¸|A{´îQÐá"óDr& :¥KÃÑ©€þ0@©H`ñâÅöÜsÏÙ!C,;;;/6C€ @€ T0ti‘çÐ_|a?ÿü³­X±Âí«©‹-²÷Þ{ÏÞzë­È–øá‡¦pwØU‡¨]½¶=|òÃ6¬÷0÷ñ8ûïÿ5…œÓ\Cš×¨(öÚç¯Yÿ}úšUzLfZ¦Ë§í ù} ;Íë4·S»žj‡íqX0K‰·å8¤Å;鉢Ñ湌ä…ŒaWâ3R€@9xûí·íþûï·£>Ѩœú€ÓB€ @€ ÊJ@žF{íµ—[Â×8tèP6l˜=òÈ#áCNdÊ—¸ 4íÁ† ò±$žSáJ¼¸NOõý]ìj#‘pY䄳nã:ûfÑ7vÇ¿ï°IŸNJÈ£Oæ’–L kÛ¨­M6=!ïÖÞ‘¤>‹/›ˆÂÓIEB,ÚÚ]Aý€À¶ 0mÚ´RŸFžJ«V­*u=T@€ @€ °}èܹsä¯YS4•ÈÂeøå—_Z^^^¾šêÖ­›/M jï“O>i—\r‰1Â>ù$Q ª‘Y#¸ßþ}Õïñí¨(±I¢Ì²5Ë¢²Wˆ´´ªi–^5ÝjV«i{5ÛËþ1ø¦va _{fz¦iÂù–¬ZNÚêûÉ´ ÑHnH¾ƒüz«·Œ@(cr–«oiíÁ´^½zÙ£>ꥭò€ @€ @•Ÿ€„–gžy&òBwÜqÇÈôm‘¸dÉ»úê«#OÕ¤I“|é ½wÀØÅ_lO<ñ„›Ó©gÏžvß}÷åË«„ºÕ£…§7¿|32a‰ÿþòß…e©0ÇçQÌs'l—‚¦} Maûuůöù/Ÿ‡“·ê¾æéò‘´!o áé‚B‘Ïì3²† P\_}õ•=õÔSöÑG¹x®éééÖ¢E ;äCì´ÓN³vØ!²JM&øÝwßÙí·ßîÂËEfŠ%¶mÛÖz饗l=ö°uëÖÙÍ7ßì&$T\YYŸ>}ÜÚÿ£u½{÷ö»®h=ö˜=Ú=Ï9ç0`€efnŠ/Z`áØAÝG'Ožl'N4âX¶l™»æFY‡\Ûºuëfâ¶Ù³g»sΚ5˕ӊ.]ºØ™gžé®[÷ëÂîÓ¯¿þºM˜0Á>ûì3ç1U¿~}ëÞ½»}öÙÖªU«ð)ÝþÂ… Ýy%º-X°Àrss­aÆּys¯÷ÐCµ¦M›F–-J¢F¦ÜvÛm6räHÇR1~Ÿ}öYûôÓOÝuÖ©SÇöÜsO;å”Sl¿ýö+°Ê’~¾ ¬”ƒ€ @€ @ ‚À‹/¾hï¿ÿ¾-_¾<âè–$ 33gδ¥K—nI líºë®½²Ý¼âŠ+¬V­Z‘•ê½”ÞO%‹ªå¥{zÿ4½ºá†ìÀÌšo÷F»³Æ·ÇÏoõkÖ·~ûYÝju­f^¢h,â…bÃ^f9ks¬GëV§Fà!ÛVž9> ]ÂÉ;><ÝmoÞfk7® ٴ٠Vƒ|i»5ÜÍfý4+_úà'Û_ÿüWÛ»ÅÞV+sS?úpvAíÆL«’fÕÒ«ùÝb¯åqæêi]ŠBç-ß›Juº÷B2“Ï7Ê` @ (þñØwÜáÜ]u?ÉÎÎŽO¨IúíᇶöíÛ¥º"å‘h$¡cï½÷¶éÓ7ÅÕvõêÕãåëÕ«ß.lãÜsϵAƒÙÓO?턉‘Î;ï<;ñÄ­ X¯ºéÊm÷ßÿÞ4""++Ë4h`úá ´–—_~ÙÞyç 0‘°ò·¿ýÍÝ‹ÓÒÒLbÏÚµkí•W^±)S¦¸cú I£L±iõ#á7Þp‡•WuÈë…^°W_}Õî¾ûn'ÞËüñÇ&alõêÕî ·d8˜?¾ýôÓOÎ{K#L’H ÖUØö¼yóœ'/.™Dñ\¼x±i>ª©S§Úõ×_ïøGÕUŸ¯¨v@€ @€@å' Í·ÜrK©/Tï>zôèQêz’Uà߇%;^PúQG•pXï¢4:ʤè“æt Z×V]7é ±ãASþû§Ýï–`zaÛKV/±¡/ -,ÛV9~×ÛwÙ#ï?b —/,Uýû´Ø'_ùn;w‹47Rÿ±ýóå/(¡ÑìžÚЃ‹ÏÉi@›ûJ}ä-A4’@¤ŒR•üâ3²† PTz Œ5ÊÝO$° 2ļX#ÁHZy²œuÖYÎ+Hž,eaµk×6‰ üCKíØi§J\½]é§žjãÆ³±cÇ:o&‰G•N8á„HO!‰;Œä9#ñlÿý÷w<Ô /F䪌f̘á“<—ÂÖ4»©õÚ½—¥RX¹ð5hêWSmäk#£;íˆvGä+3¸ó`{`ÚùÒK’ °v#&°N;u²ýÛì_’*\' mv"Úâs´¹:)Jú“ÛU2·°Ÿ™‚€@¥'°aƸè¡x§C‡ Fºx…‘{ä‘G\2=\îºë®”`"O!‰‚®»î:÷ÐTˆµ¾}ûšÜ“Æ-h /'“¨¤Ø¯ºñzSŒXy0I4 Û=÷Üã’$2Ið &»ì²‹=ôÐCÖºuk“7Q”}ûí·Î3JBcÆŒq£Wü¹åÍ£ ;vìèÄ!ÕåM}¡€Ê«<^0Òq…ãS=¥+L]Y˜#ýPºöÚkã‚‘êm ›wï½÷ºP«¾.h•õó¼F¶!@€ @¨X~ýõ×R7HïuU¥ K&(%›â¡ ºŠzLƒ¹5Cئ ÷@z¿e×v½e¤eDÚ&iþ=XÔÉ’EU §ðÝQŋֱyGûsû?ç+×®I;;¡ã ùÒK“ðáwÅŸß]¬ä<¤ë:%ˆF‹¼©@–?Æ€@2 ·¦czÈiþ(ËÈÈpb’ŽÉkdåÊ•QÙ*dšBÝÉsJâ‘D#¸ð!^]»7ÿ—wPQí—_~q=ÊÁ$M¾Í¤¹–’™\ƒ%þk„ˆæMв“O>Ù%ËÛÉ»žêº Oûž¶¶é#.ÊäåxHÈ Zeÿ|¯•m@€ @€*Ýwž«§¨­SHºI“&™„˜‚lŸ}ò‡2Ó» ²œÞ!x~½;Ò;. p›ÞÝhq”I;餓¢™Â±ÝÝïnK«šy|k'*\[2kX;:ÚQ¸LY8Ó4®ÝØž9õ™È÷{jß}'Þg{5K ï—¬ÝEI/©P§kÕt"Jb/ õaù‰Eiy xšèO¶ï¾û:Ÿ^wíÚg.IDATÕ—çÈœ9s‡+ü¾„/=åu¤°x?üðƒM˜0!Þn…UÓC]"‡<®Š"Ä|úé§®|5ܼLñÊBš§)™i^"YÔä…¾ŒI§‰%ðÉ$õéÓÇmËJײ~ýz·¿5þiÚ´©5j”ü!'gÜ^>_[ƒ9uB€ @€ P2wÞy§5kÖ¬X…õîãØcµçŸÞ^{íµ½v|Ňv˜›oZ{eŠ|£y¯‹{n__ÔZ•"ç(äÞ´iÓ¬U,êK20`€›ß»E‹.‹"ÛsÌ1nxÍš5“³Sºœb/Ÿó²µoÒ>iž­uàÏò{öøs´ËA–•íwÝZûîz`BZ¯Ýz%ìgGbY¿ŽýìýËß·u7q‹*_+³–½yÑ›vV÷³¬ZZµ¨,ENÓ9{ïÞ»Èù}Fi@Îy(¦ ¹uÌH–î3h-$Ä¢ ¶!âÐ|=²ÂæÒÃO.®S~úé§âž¦Ôù5ŸPÔýNb–‚LžQ I÷ôÓOÛ?þèòëôÒ…Þ“’æÒÒ¥K®N?ò-lÞÕY\¼€Σ}ýèHfóçÏw‡49cQ&h”pÔ AWææ›o6‰4úÁ wéÑ£GÛÑGmýû÷·6mÚ$;e‰Ò ›ÇJ?BdáØ¹©òù* A€ @€ P! tïÞÝ>ÿüsûí·ßÜ»5Ò¿W ¯5XQT U ºH Tš²`Ñ¢E.¤¿%Õ4õn»í™]†Õ. ~.Žé½Ð‰'ž,$!«(Ös—žöÁ˜Â¦½÷í{öù/ŸÛ’UKlÅÚî½WœÛæèg> Z<=&hx‹§ù¼›¹‰vbÛÒ5šÕif; ´>m7 Šöeƒëz5ëÙ”ó§Ø˜wÇØ‚å ¬Iv»äÀKLéAëÞº»;}œýkÖ¿Lsù÷SùÚXå˨šaµ«×¶&µ›˜ÂÑéüjKQ,+#Ëî:þ.Þk¸Mù|ŠMÿ~º-ÌYhËV/³õ¹…æN¯šî„©³»Ÿmí›_ ó\ÃmMøÄÉ É½¨ŒõGA/,Õ°@ÀÐ$y²¢<@|_Æ×±-ÖQáEšàùN?ýt»êª«‚IñíyóæÙ3Ïù¤[zöì鸔•x¤*%±¢2RÝž“/S’óQ€ @€ ˆ€Þ—5¥,)é}MAó %;—q'’•)Jº®Ý:.Jþ`žn;w3-2‰/zV”wVÁ:Êr[âÊÃ'?\h•G¶;Ò´l “xuF·3ܲ-ÎçÏ¡AÛ^8 †äK‚B‘Ïì+` @ (4bAP¢Êú<Q\óe‹[®¸ùõ0{÷ÝwWÑûï¿ïŠK¹üòË­_¿~qaÂ8×_¯^=7ÓE]äbÄJŒùßÿþg·Ýv›ý÷¿ÿM˜hЋ………SH¿d¦:T~øðáñpsÉò&K—@¤E`ãÆ³ñãÇ;!Ií;vl¡ó’ÕYVéÛêóUVí¥@€ @€ TDzŸé4¡˜‘¼µ¼%ˆFJ”X¤E™ån‹fçó²† P(?æø)Èrss͇R Çeõv2!Fõú¹x :GAÇ$fò*’ÈãÃçuìØÑä‰t衇šŸVXþ¸\‰åݤE^sÍ5NDÒdƒ½{÷vÙ|È6ÏÅ— ¯ÿý÷pR|_,rN^Q¥5‰cW^y¥yæ™v饗šæKºé¦›lâĉ¥­ºÄåËâóUâ“S€ @€ @•„€Ó€|¨¿Ík]Úù(¶#H¥*ù¥’\?—l#p€;“†‚¼¦mݺu&1e¯½öJh÷<úå—_Òƒ;³fÍ î&l‚¼r Eì(TÛ‚ œÇÎsÏ=gZ4Q°þˆb…&iž £Ž:Êå“ב·öí7Å]±b…}ùå—>9ßzΜ9ùÒ|B§NܦæP*+“·”&]”Í;·À~-«s&«§,>_Éê&€ @€ @Û#ïD¤kO”àêÖát~úé§ÃÉñ}ML¨›üÿýßÿ9‘+~ ”¾½ª;ØæRV[ìâeñù*öI)@€ @€*ð»4ß´ììl¿É…ðDr& :%ˆF GçMô‡A(yáÜ|óÍN¸x衇ìž{îqáÒ|q.¸à“§P­ZµÜÜ@þ˜_ûpmšCçŽ;îp”?öÍ7߸òß~ûmâ…yxà[´h‘/nÅñû8ÑhöìÙÎSJ"Û!‡⼺wïî˜$>N#14w’J’X%'‰A»ì²‹Iœ:æ˜câç—××Ýwßí< qâD¡èÎ;ïtskðºÞùéz6lèÁÏŸ?ßäýôÙgŸ™¢=ÚÚµkçÞžuÖYöõ×_»ÁñǼ«CâøéÝŸÒëÝœŽÝ~ûíîý Þ‡½ôÒKq2 jŠØôꫯºs†¯£°ýdZP•XÅq—¢1‘SFÚÆ¼Ö}çîöÚù¯¹S…UÎñŠA@_D…¾ª(/u+•Ôiý—:}ÕRú/ŠJê¤Ñ©ÓWQ-¥ÿ¢¨¤Ný—:}ÕRú/ŠJê¤Ñ©ÓWQ-¥ÿ¢¨¤Ný—:}ÕRú/ŠJê¤Ñ©ÓWQ-¥ÿ¢¨Tœ4M ñÁ˜æ¤–×Î!Cœ(sòÉ'›‰šŽA∼|”¦ÁÓaÓÀg 3ÿú׿ÜÀiÍþöÛodzyϪ¾}ûÆÓ´!$E'’€SýöÛonPµ¦•hÙ²eBV üÖêqãÆ¹A×ï½÷ž 8ÐyvIàjÒ¤‰5Ê ÆÖ´Štÿý÷›°+z„# Nzžxâ 'µiÓÆ‰BØýî»ï:1HžT:¦£Px›€$&é}IQ†äq¥òÙ‚œ$RIÌêÒ¥‹õêÕË<'Í¿.‘ÊÏŸ®M ˆŸ¯¸a½&¤(tÞÂÓ)Qb‘eŽmY•Ø@Єƒr.ªiôH·nÝŠš|€ @€ @)F`áÂ…ÎGóiQh6yE™&?ïwø¸¼|$–È#H&ñIiE™k[Scæi¤édš;]âVÐäi$!'h 7çÛLWX@]‡^ä‰ä`>mK8R>M!¡°sâÒºukW~ÆŒn:pí9xàV»vmç­¤÷lšþÞ{ï*V¤4§Å´ YЉ(=Ø1^,’ª$±(/7Ïô‡¥/øû45ZN+E€þKíÏÁöÖµ¡ø´E5Í)U‘ïMÛ[ÿµßR%ý—*=ÝNú/šKª¤Ò©ÒSÑí¤ÿ¢¹¤J*ý—*=ÝNú/šKª¤Ò©ÒSÑí¤ÿ¢¹¤J*ýW±{Js›km…S“i. y³èúNÛZk_ÛþXðªV­Ze/¿ü²›+\á×dʯwQ ˦¹ÐU‡Ä™ð»¦`ýÁ:ÃÛš÷Hs‘Ïš5Ëy2Ë H¢N°ník¾qŸ¦µ_TÖ§«MÁëóÛÊ#ï+íï°Ã.TÝ™gži]t‘™æ~²^[˜“æ`;v¬‰“Ä4ÕçÏï*+Æ?ª;h6n0iCéŠ3èÍ_”<Œ6æn´uë×¹Lþ8ëŠM@:-Á>­Ø-¦uAô_Fêmooý§ŵŠ|oÚÞú¯¸}WÑóÓ½‡ nýW0ŸŠ~”þ«è=Tpûè¿‚ùTô£ô_Eï¡‚ÛGÿ̧¢UÿÉ*òÿq*:ÃòlýWžôKnú¯ô ·f t¾ÿþ{[»v­­^½Ú¦Nê<†t¿”@!ýA¦}m+-|/8q¢5oÞÜ&Î{ð¬\¹Òþô§?™ÂÖI(‘)´[0 Ž­¸­¥eaô_˜HjíÓ©Õ_áÖÒa"©µOÿ¥V…[Kÿ…‰¤Ö>ý—Zýn-ý&’Zûô_jõW¸µô_˜HjíÓ©Õ_áÖÒa"©µOÿUìþ:í´ÓL¢ÄÍù£sòèÑûj­µH¤î‡ßekž‰!Á°qÊsä‘GÚ¤I“¬wïÞ–™™é¼Ž‚4&L˜àÒçÏŸo:u r¢ÌÎ;ïœvË-·Ø•W^iGq„­[·Î‰9£G¶!C†Ø_þò;üðÃ]ˆ=…““¸¤yäÝ£s«=~ñקʵíKkQh¹¾}ûšD/{òÉ']9yp ֱcGkÑ¢…Ëãëñå=íû4Céjã£>êêS¹’ZFµ 'Råý±Éã(³z¦s"ª’““³ixD¬æ1‘SFÚÆ¼Ö­U7›rÁD£’/‡rþ¦Y³fÍr8;§,-ú¯´Ë·<ýW¾üK{vú¯´Ë·<ýW¾üK{vú¯´Ë·<ýW¾üK{vú¯´Ë·<ýW¾üK{vú¯´Ë·<ýW¾üK{vú¯´Ë·<ýW¾ü‹zvyÐÈ£&l±ÿÔ&yûÈI"7¥K0ÒüGò *®)DŸ<¡|ðA'6ÕªU+_É8å˸9As0­X±Â®¹æçù4|øðdY‹”þÀ´lÄäNê¾sw{íüל”à“¥xuÞůHµ’ € @€ @€ l&%UT8„5j”¯yJWÈ»’ZÛ¶m%Ϫ(ÁHõ—ÓܹsMRû]zé¥%mZ¼\2-(A4’’‹ó=rëxq6 @€ @€ @€ #pôÑG–¥ØÇ»téâBô»`’ƼpäCÔ)k‚_UP(ò™“ÔG2 @€ @€ @€@ P>¯ ) ·-[›S$iQæØ–ÏÇ€ @€ @€ @ pPL ’ˆD£*û‹‰ER•üR ®K€ @€ @€ @ˆ t"J”×yÅ<Œrór-Ç.¢’ @€ @€ @€RŒ€w ’3QЉ(A4 †£Sýa€ @€ @€ @•‹€‡´ˆE£Ís鲃1ì*®€ @€ @€ l¿¤9ç!9œˆD#¹ !m¿®€ @€ @€ ÊO ™” É IŠ’Ì¯+?®€ @€ @€ l?ªVÝâD$mÈ[‚hŠ’©L¾ k@€ @€ @€ Ô#—·Å‰HQè¼mÙÚœ"±H‹¤Ø–ÏÇ€ @€ @€ @ pPL ’ˆD£ØtGN,’ªä—Jpí\ @€ @€ @€@ Q‚h¤¼ÎÓ(æa”›—kÁ8võ@€ @€ @€ b$ÉyHÎDA'¢Ñ(ŽNô‡A€ @€ @€ T.rÒt"J6Ïe¤Ëư«\¸@€ @€ @€ °ý䜇ä@p"Jä‚„X´ý~H¸r@€ @€ @€*?dZP‚h$7$)J2¿®üh¸B@€ @€ @€ °ý¨Zu‹‘´!oé~Cë P´>w½-X¾Àª¥UÛÓî\ËLË4¥+_FÕ [—»Î­]Ì;Ž—;õÉŠ•+¬Fn ú'?Ÿô_jß_è?úçcùý>àûÇ÷ïß?þR²ÿŸqÿäþÉý“û'÷OîŸzloï÷xþñüãùÇóçߦçß²ÕË6iB˜) ·DÑȪ8HnIs̱Þcz»ÌÞMI0ƒÛ‹‚!í8^¾|bÝgyy›úD}Aÿ¤Öç“þ+ßïOiï_ôýÇó1ö #fåñüáûÇ÷ïß¿òºÿ”ö÷Cy—çþÉý“û'÷OîŸ%ûýÊý“û'÷OîŸÜ?¹–Çû²þÿÃÊu+mcÞF}œ,A4jß´½UO¯n«Ö¯²u×ÙÂå ãÞGº†åÓT£ßÞ4}Çáã? |>¶ðÏ’ì¬ì¸” õhÝÃî;Ð&|2Á…¡Ó‰Òª¦9W86”BÞ+ºéOÛ‡>|>b?Tø~pàþÈóçcü^Èï~ðû€ßGü>ä÷!¿ùÿ3ïxÂû#ÞŸùgÿ?àÿüÿ€ÿðÿƒŠûÿƒìêÙvD»#Ü;~×O999›†vÇöÚ,geŽÍ[>Ï6änp‹nêÄþrór-½jzü¥pZ•4ŽÇU$>ê“5k×XVV–Ñ?©÷ù¤ÿRûþBÿÑþ¥÷ßmÿåûÇ÷ïߦ—’åqÿáûÇ÷ïß?‰åqÿIõ÷Ü?¹rÿäþÉý³dÏîŸÜ?¹–ýý3+#ËÚ5igiN8ªÖ¬Yc5kÖŒ«Jl¤‰~ô_êôW¸¥ô_˜HjíÓ©Õ_áÖÒa"©µOÿ¥V…[Kÿ…‰¤Ö>ý—Zýn-ý&’Zûô_jõW¸µô_˜HjíÓ©Õ_áÖÒa"©µOÿ¥V…[Kÿ…‰TÌýÿ߯”~ D¶WIEND®B`‚rtpengine-mr12.5.1.22/docs/index.rst000066400000000000000000000011371474347554000171640ustar00rootroot00000000000000.. _rtpengine: https://github.com/sipwise/rtpengine .. _Sipwise: https://www.sipwise.com .. _Kamailio: https://www.kamailio.org/ What is rtpengine? ===================================== The `Sipwise`_ NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic. It's meant to be used with the `Kamailio`_ SIP proxy and forms a drop-in replacement for any of the other available RTP and media proxies. Currently the only supported platform is GNU/Linux. .. toctree:: :maxdepth: 4 overview rtpengine rtpengine-recording architecture tests troubleshooting glossary rtpengine-mr12.5.1.22/docs/janus_interface_and_replacement.md000066400000000000000000000040611474347554000242050ustar00rootroot00000000000000# *Janus* Interface and Replacement Functionality *Rtpengine* supports a limited and narrow subset of the features provided by [Janus](https://janus.conf.meetecho.com/), specifically the basic business logic behind the *videoroom* plugin. This makes it possible to use *rtpengine* as a drop-in replacement for *Janus* for this one specific use case, and has the benefit of being able to use all the extra features that *rtpengine* provides, such as transcoding, in-kernel packet forwarding for improved performance, etc. The required subset of the *Janus* API is exposed via *rtpengine*'s HTTP/WS interface. The HTTP admin API is connected to the `/admin` URI path using a JSON payload (same as *Janus* does), while the module communication happens on the WS protocol `janus-protocol`, also with JSON payloads (same as *Janus* does). Unlike *Janus*, both HTTP and WS endpoints are running on the same port. In fact, there is no real distinction between both interfaces, therefore both admin and non-admin messages can be sent via either interface. HTTPS and WSS are also supported. Token-based plugin authentication works similar to how it works in *Janus* except that only the single *videoroom* plugin is supported. The configuration setting `janus-secret` must be set to enable clients to connect to this simulated *Janus* interface and make use of its features. Under the hood the functionality of the *videoroom* plugin is facilitated using *rtpengine*'s `publish` and `subscribe` methods, which are mapped directly to the respective *Janus* methods. One *Janus* video room becomes one *rtpengine* call, with a distinctive and unique call ID based on the video room ID. There's currently no support for customising the SDP features and options used within the *Janus* drop-in mode, and, as *Janus* is WebRTC-specific, all SDPs produced from this mode can be used directly by WebRTC clients. Non-WebRTC clients can participate in the same video room as *Janus* clients if the respective mapped `publish` and `subscribe` methods are used, and with the call ID mapped to the video room ID. rtpengine-mr12.5.1.22/docs/make.bat000066400000000000000000000014441474347554000167310ustar00rootroot00000000000000@ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=source set BUILDDIR=build %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.https://www.sphinx-doc.org/ exit /b 1 ) if "%1" == "" goto help %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% goto end :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% :end popd rtpengine-mr12.5.1.22/docs/ng_control_protocol.md000066400000000000000000002655121474347554000217430ustar00rootroot00000000000000# The *NG* Control Protocol In order to provide several advanced features in *rtpengine*, a new advanced control protocol has been devised, which passes the complete SDP body from the SIP proxy to the *rtpengine* daemon. The SDP body gets rewritten by the daemon and then passed back to the SIP proxy in order to embed it into the SIP message. This control protocol is supported over a number of different transports (plain UDP, plain TCP, HTTP, WebSocket) and loosely follows the same format as used by the module. Each message passed between the SIP and the media proxy consists of two parts separated by a single space: * a unique message cookie * a dictionary document The message cookie is used to match requests to responses and to detect retransmissions. The message cookie in the response must be the same as in the request it's dedicated to. The dictionary document can be in one of two formats: * a JSON object * a dictionary in [bencode](http://en.wikipedia.org/wiki/Bencode) format The *bencoding* mechanism supports a subset of JSON features, for example: * dictionaries/hashes * lists/arrays * arbitrary byte strings On the other hand, it offers some benefits over JSON encoding, e.g. simpler and more efficient encoding, less encoding overhead, deterministic encoding, faster encoding and decoding. The disadvantages compared to JSON are that it's not readily a human readable format and sometimes it might be difficult to support it in programming languages. Internally *rtpengine* uses the *bencoding* mechanism natively, leading to additional overhead when JSON is in use as it has to be converted. The dictionary of each request must contain at least one key called `command`. The corresponding value must be a string and determines the type of message. Currently the following commands are defined: * ping * offer * answer * delete * query * start recording * stop recording * pause recording * block DTMF * unblock DTMF * block media * unblock media * silence media * unsilence media * start forwarding * stop forwarding * play media * stop media * play DTMF * statistics * publish * subscribe request * subscribe answer * unsubscribe The response dictionary must contain at least one key called `result`. The value can be either `ok` or `error`. If the result is `error`, then another key `error-reason` must be given, containing a string with a human-readable error message. No other keys should be present in the error case. If the result is `ok`, the optional key `warning` may be present, containing a human-readable warning message. This can be used for non-fatal errors. For the `ping` command, the additional value `pong` is allowed. For readability all data objects below are represented in a JSON-like format and without the message cookie. For example, the `ping` message and its corresponding `pong` reply would be written as: { "command": "ping" } { "result": "pong" } While the actual bencode encoded messages, including the message cookie, might look like this: 5323_1 d7:command4:pinge 5323_1 d6:result4:ponge All keys and values are case-sensitive unless specified otherwise. The bencode standard's requirement that dictionary keys must be presented in the lexicographical order is currently not honored. The *NG* protocol that is used by the module utilises the *bencoding* mechanism and the UDP transport by default, or, alternatively the websocket transport if enabled. Of course the agent controlling *rtpengine* using the *NG* protocol does not have to be a SIP proxy (e.g. kamailio). Any process that involves SDP can potentially talk to *rtpengine* using this protocol. As mentioned already, each NG-protocol message can include optional flags in order to cause specific behavior for this particular SDP offer/answer (e.g. transport, transcoding, preferred encryption parameters etc.) The parsing of option flags (sometimes also called *rtpp flags*) can be done: * by remote SIP proxy (e.g. kamailio) * by rtpengine itself *NOTE: currently parsing on the daemon side is implemented, but not all control agents *may support it. As of the time of writing only the kamailio module uses it.* The difference between two approaches is that in the first case, the parsing of flags is done with help of module, meanwhile in the second case a list of flags is passed to rtpengine using bencode string format and is then parsed here. The benefit of the second approach is that any new flags supported by rtpengine will automatically be supported without having to worry about support in the control module. When the flags are passed to rtpengine, they are formated as following: { "rtpp_flags": "replace-origin via-branch=auto-next strict-source label=callee OSRTP-accept transport-protocol=RTP/AVP address-family=IP4" } Regardless whether the flags parsing is done by the module or daemon, a functional behavior remains the same and has no difference in terms of SDP processing. ## Messages description ## `ping` Message The request dictionary contains no other keys and the reply dictionary also contains no other keys. The only valid value for `result` is `pong`. ## `offer` Message The request dictionary must contain at least the following keys: * `sdp` Contains the complete SDP body as string. * `call-id` The SIP call ID as string. * `from-tag` The SIP `From` tag as string. Optionally included keys are: * `all` Can be set to the string `none` to disable any extra behaviour (which is the default if this key is omitted altogether) or to one of `all`, `offer-answer`, `except-offer-answer` or `flows`. Applicable to certain messages only. The behaviour is explained below separately for each affected message. * `address family` A string value of either `IP4` or `IP6` to select the primary address family in the substituted SDP body. The default is to auto-detect the address family if possible (if the receiving end is known already) or otherwise to leave it unchanged. * `audio player` Contains a string value of either `default`, `transcoding`, `off`, or `always`. The values `transcoding` and `always` result in the behaviour described under the `audio-player` config option in the manual, and override the global setting from the config file. The value `off` disables usage of the audio player regardless of the global config setting. The option `default` results in the behaviour mandated by the global config setting. * `delay-buffer` Takes an integer as value. When set to non-zero, enables the delay buffer when setting up codec handlers. The delay buffer delays all media by the given number of milliseconds before passing it on. Once the delay buffer is configured, it must explicitly be disabled again by setting this value to zero. The delay buffer setting is honoured in all messages that set up codec handlers, such as `block DTMF`. * `direction` Contains a list of two strings and corresponds to the *rtpproxy* `e` and `i` flags. Each element must correspond to one of the named logical interfaces configured on the command line (through `--interface`). For example, if there is one logical interface named `pub` and another one named `priv`, then if side A (originator of the message) is considered to be on the private network and side B (destination of the message) on the public network, then that would be rendered within the dictionary as: { ..., "direction": [ "priv", "pub" ], ... } This only needs to be done for an initial `offer`; for the `answer` and any subsequent offers (between the same endpoints) *rtpengine* will remember the selected network interface. As a special case to support legacy usage of this option, if the given interface names are `internal` or `external` and if no such interfaces have been configured, then they're understood as selectors between IPv4 and IPv6 addresses. However, this mechanism for selecting the address family is now obsolete and the `address family` dictionary key should be used instead. For legacy support, the special direction keyword `round-robin-calls` can be used to invoke the round-robin interface selection algorithm described in the section *Interfaces configuration*. If this special keyword is used, the round-robin selection will run over all configured interfaces, whether or not they are configured using the `BASE:SUFFIX` interface name notation. This special keyword is provided only for legacy support and should be considered obsolete. It will be removed in future versions. For commands that require only one interface (e.g. `publish`), use the `interface=...` key. For commands that require two interfaces, as an alternative to the `direction=` key, the two interfaces can be listed separately, using `from-interface=...` for the first interface and `to-interface=...` for the second one. * `digit` or `code` Sets the replacement digit for `DTMF-security=DTMF`. * `drop-traffic` Contains a string, valid values are `start` or `stop`. `start` signals to *rtpengine* that all RTP involved in this call is dropped. Can be present either in `offer` or `answer`, the behavior is for the entire call. `stop` signals to *rtpengine* that all RTP involved in this call is NOT dropped anymore. Can be present either in `offer` or `answer`, the behavior is for the entire call. `stop` has priority over `start`, if both are present. * `DTLS` Contains a string and influences the behaviour of DTLS-SRTP. Possible values are: - `off` or `no` or `disable` Prevents *rtpengine* from offering or acceping DTLS-SRTP when otherwise it would. The default is to offer DTLS-SRTP when encryption is desired and to favour it over SDES when accepting an offer. - `passive` Instructs *rtpengine* to prefer the passive (i.e. server) role for the DTLS handshake. The default is to take the active (client) role if possible. This is useful in cases where the SRTP endpoint isn't able to receive or process the DTLS handshake packets, for example when it's behind NAT or needs to finish ICE processing first. - `active` Reverts the `passive` setting. Only useful if the `dtls-passive` config option is set. * `DTLS-reverse` Contains a string and influences the behaviour of DTLS-SRTP. Unlike the regular `DTLS` flag, this one is used to control behaviour towards DTLS that was offered to *rtpengine*. In particular, if `passive` mode is used, it prevents *rtpengine* from prematurely sending active DTLS connection attempts. Possible values are: - `passive` Instructs *rtpengine* to prefer the passive (i.e. server) role for the DTLS handshake. The default is to take the active (client) role if possible. This is useful in cases where the SRTP endpoint isn't able to receive or process the DTLS handshake packets, for example when it's behind NAT or needs to finish ICE processing first. - `active` Reverts the `passive` setting. Only useful if the `dtls-passive` config option is set. * `DTLS-fingerprint` Contains a string and is used to select the hashing function to generate the DTLS fingerprint from the certificate. The default is SHA-256, or the same hashing function as was used by the peer. Available are `SHA-1`, `SHA-224`, `SHA-256`, `SHA-384`, and `SHA-512`. * `DTMF-security` Used in the `block DTMF` message to select the DTMF blocking mode. The default mode is `drop` which simply drops DTMF event packets. The other supported modes are: `silence` which replaces DTMF events with silence audio; `tone` which replaces DTMF events with a single sine wave tone; `random` which replaces DTMF events with random other DTMF events (both in-band DTMF audio tones and RFC event packets); `zero` which is similar to `random` except that a zero event is always used; `DTMF` which is similar to `zero` except that a different DTMF digit can be specified; `off` to disable DTMF blocking. * `DTMF-security-trigger` Blocking mode to enable when the DTMF `trigger` (see below) is detected. * `DTMF-security-trigger-end` Blocking mode to enable when the DTMF `end trigger` (see below) is detected. * `DTMF-delay` Time in milliseconds to delay DTMF events (both RFC event packets and DTMF tones) for. With this option enabled (set to non-zero), DTMF events are initially replaced by silence and then subsequently reproduced after the given delay. DTMF blocking modes are honoured at the time when the DTMF events are reproduced. * `DTMF-log-dest` Contains a destination address and port for the DTMF logging feature. This overrides the global destination from the `dtmf-log-dest` config option on a per-call basis. Even if the global config option is unset, setting the destination address/port via this option enables DTMF logging for this call. * `endpoint-learning` Contains one of the strings `off`, `immediate`, `delayed` or `heuristic`. This tells rtpengine which endpoint learning algorithm to use and overrides the `endpoint-learning` configuration option. This option can also be put into the `flags` list using a prefix of `endpoint-learning-`. * `from-interface` Contains a string identifying the network interface pertaining to the "received from" direction of this message. Identical to setting the first `direction=` value. * `frequency` or `frequencies` Sets the tone frequency or frequencies for `DTMF-security=tone` in Hertz. The default is a single frequency of 400 Hz. A list of frequencies can be given either as a list object, or as a string containing a comma-separated list of integers. The given frequencies will be picked from the list in order, one for each DTMF event detected, and will be repeated once the end of the list is reached. * `from-tags` Contains a list of strings used to selected multiple existing call participants (e.g. for the `subscribe request` message). An alternative way to list multiple tags is by putting them into the `flags` list, each prefixed with `from-tags-`. * `generate RTCP` Contains a string, either `on` or `off`. If enabled for a call, received RTCP packets will not simply be passed through as usual, but instead will be consumed, and instead *rtpengine* will generate its own RTCP packets to send to the RTP peers. This flag will be effective for both sides of a call. * `ICE` Contains a string which must be one of the following values: With `remove`, any ICE attributes are stripped from the SDP body. Also see the flag `reject ICE` to effect an early removal of ICE support during an `offer`. With `force`, ICE attributes are first stripped, then new attributes are generated and inserted, which leaves the media proxy as the only ICE candidate. With `default`, the behaviour will be the same as with `force` if the incoming SDP already had ICE attributes listed. If the incoming SDP did not contain ICE attributes, then no ICE attributes are added. With `force-relay`, existing ICE candidates are left in place except `relay` type candidates, and *rtpengine* inserts itself as a `relay` candidate. It will also leave SDP c= and m= lines unchanged. With `optional`, if no ICE attributes are present, a new set is generated and the media proxy lists itself as ICE candidate; otherwise, the media proxy inserts itself as a low-priority candidate. This used to be the default behaviour in previous versions of *rtpengine*. The default behaviour (no `ICE` key present at all) is the same as `default`. This flag operates independently of the `replace` flags. Note that if config parameter `save-interface-ports = true`, ICE will be broken, because rtpengine will bind ports only on the first local interface of desired family of logical interface. * `ICE-lite` Contains a string which must be one of the following values: - `forward` to enable "ICE lite" mode towards the peer that this offer is sent to. - `backward` to enable "ICE lite" mode towards the peer that has sent this offer. - `both` to enable "ICE lite" towards both peers. - `off` to disable "ICE lite" towards both peers and revert to full ICE support. The default (keyword not present at all) is to use full ICE support, or to leave the previously set "ICE lite" mode unchanged. This keyword is valid in `offer` messages only. * `interface` Contains a single string naming one of the configured interfaces, just like `direction` does. The `interface` option is used instead of `direction` where only one interface is required (e.g. outside of an offer/answer scenario), for example in the `publish` or `subscribe request` commands. * `label` or `from-label` A custom free-form string which *rtpengine* remembers for this participating endpoint and reports back in logs and statistics output. For some commands (e.g. `block media`) the given label is not used to set the label of the call participant, but rather to select an existing call participant. * `media address` This can be used to override both the addresses present in the SDP body and the `received from` address. Contains either an IPv4 or an IPv6 address, expressed as a simple string. The format must be dotted-quad notation for IPv4 or RFC 5952 notation for IPv6. It's up to the RTP proxy to determine the address family type. * `media echo` or `media-echo` Contains a string to enable a special media echo mode. Recognised values are: - `blackhole` or `sinkhole` Media arriving from either side of the call is simply discarded and not forwarded. - `forward` Enables media echo towards the receiver of this message (e.g. the called party if the message is an `offer` from the caller). Media arriving from that side is echoed back to its sender (with a new SSRC if it's RTP). Media arriving from the opposite side is discarded. - `backwards` Enables media echo towards the sender of this message (i.e. the opposite of `forward`). Media arriving from the other side is discarded. - `both` Enables media echo towards both the sender and the receiver of this message. * `metadata` This is a generic metadata string. The metadata will be written to the bottom of metadata files within `/path/to/recording_dir/metadata/` or to `recording_metakeys` table. In the latter case, `metadata` string must contain a list of `key:val` pairs separated by `|` character. `metadata` can be used to record additional information about recorded calls. `metadata` values passed in through subsequent messages will overwrite previous metadata values. See the `--recording-dir` option above. * `OSRTP` Similar to `SDES` but controls OSRTP behaviour. Default behaviour is to pass through OSRTP negotiations. Supported options: - `offer` or `offer-RFC` When processing a non-OSRTP offer, convert it to an OSRTP offer. Will result in RTP/SRTP transcoding if the OSRTP offer is accepted. The transport protocol should be a non-SRTP (plain RTP) protocol such as RTP/AVP. - `offer-legacy` Convert a regular offer to a legacy, non-RFC "best effort" SRTP offer, which involves duplicating each SDP media section in the output, advertised once as plain RTP and once as SRTP. The transport protocol should be set to an SRTP protocol such as RTP/SAVP. To enable full interoperability with endpoints which support this usage, the flag `accept-legacy` (see below) should also be given in all signalling exchanges. - `accept-RFC` When processing a non-OSRTP answer in response to an OSRTP offer, accept the OSRTP offer anyway. Results in RTP/SRTP transcoding. - `accept-legacy` Enables support for legacy, non-RFC "best effort" SRTP offers, which consist of media sections being advertised twice, once as plain RTP and once as SRTP. With this option set, *rtpengine* will treat such SDPs as SRTP SDPs, removing the duplicated media sections. This flag must be given for both offer and answer messages. - `accept` Short for both `accept-RFC` and `accept-legacy`. Can be used unconditionally in all signalling if so desired. * `output-destination` See `start recording` below. * `ptime` Contains an integer. If set, changes the `a=ptime` attribute's value in the outgoing SDP to the provided value. It also engages the transcoding engine for supported codecs to provide repacketization functionality, even if no additional codec has actually been requested for transcoding. Note that not all codecs support all packetization intervals. The selected ptime (which represents the duration of a single media packet in milliseconds) will be used towards the endpoint receiving this offer, even if the matching answer prefers a different ptime. This option is ignored in `answer` messages. See below for the reverse. * `ptime-reverse` This is the reciprocal to `ptime`. It sets the ptime to be used towards the endpoint who has sent the offer. It will be inserted in the `answer` SDP. This option is also ignored in `answer` messages. * `received from` Contains a list of exactly two elements. The first element denotes the address family and the second element is the SIP message's source address itself. The address family can be one of `IP4` or `IP6`. Used if SDP addresses are neither trusted (through `SIP source address` or `--sip-source`) nor the `media address` key is present. * `record call` Contains one of the strings `yes`, `no`, `on` or `off`. This tells rtpengine whether or not to record the call to PCAP files. If the call is recorded, it will generate PCAP files for each stream and a metadata file for each call. Note that rtpengine *will not* force itself into the media path, and other flags like `ICE=force` may be necessary to ensure the call is recorded. See the `--recording-dir` option above. Enabling call recording via this option has the same effect as doing it separately via the `start recording` message, except that this option guarantees that the entirety of the call gets recorded, including all details such as SDP bodies passing through *rtpengine*. * `rtcp-mux` A list of strings controlling the behaviour regarding rtcp-mux (multiplexing RTP and RTCP on a single port, RFC 5761). The default behaviour is to go along with the client's preference. The list can contain zero of more of the following strings. Note that some of them are mutually exclusive. - `offer` Instructs *rtpengine* to always offer rtcp-mux, even if the client itself doesn't offer it. - `require` Similar to `offer` but pretends that the receiving client has already accepted rtcp-mux. The effect is that no separate RTCP ports will be advertised, even in an initial offer (which is against RFC 5761). This option is provided to talk to WebRTC clients. - `demux` If the client is offering rtcp-mux, don't offer it to the other side, but accept it back to the offering client. - `accept` Instructs *rtpengine* to accept rtcp-mux and also offer it to the other side if it has been offered. - `reject` Reject rtcp-mux if it has been offered. Can be used together with `offer` to achieve the opposite effect of `demux`. * `SIP message type` Contains a string indicating whether the SIP message that triggered this signalling message was either a `SIP request` or a `SIP response`. * `via-branch` The SIP `Via` branch as string. Used to additionally refine the matching logic between media streams and calls and call branches. * `set-label` Some commands (e.g. `block media`) use the given `label` to select an existing call participant. For these commands, `set-label` instead of `label` can be used to set the label at the same time, either for the selected call participant (if selected via `from-tag`) or for the newly created participant (e.g. for `subscribe request`). * `SDES` A list of strings controlling the behaviour regarding SDES. The default is to offer SDES without any session parameters when encryption is desired, and to accept it when DTLS-SRTP is unavailable. If two SDES endpoints are connected to each other, then the default is to offer SDES with the same options as were received from the other endpoint. Additionally, all other supported SDES crypto suites are added to the outgoing offer by default. These options can also be put into the `flags` list using a prefix of `SDES-`. All options controlling SDES session parameters can be used either in all lower case or in all upper case. - `off` or `no` or `disable` Prevents *rtpengine* from offering SDES, leaving DTLS-SRTP as the other option. - `unencrypted_srtp`, `unencrypted_srtcp` and `unauthenticated_srtp` Enables the respective SDES session parameter (see section 6.3 or RFC 4568). The default is to copy these options from the offering client, or not to have them enabled if SDES wasn't offered. - `encrypted_srtp`, `encrypted_srtcp` and `authenticated_srtp` Negates the respective option. This is useful if one of the session parameters was offered by an SDES endpoint, but it should not be offered on the far side if this endpoint also speaks SDES. - `no-`*SUITE* Exclude individual crypto suites from being included in the offer. For example, `no-NULL_HMAC_SHA1_32` would exclude the crypto suite `NULL_HMAC_SHA1_32` from the offer. This has two effects: if a given crypto suite was present in a received offer, it will be removed and will be missing in the outgoing offer; and if a given crypto suite was not present in the received offer, it will not be added to it. *Remark: if after applying the policies to the processed offer, there are no crypto suites left,* *which can be used later in the answer towards the offerer, then rtpengine will intentionally* *leave the top most one offered, for the answer towards the originator.* *However it will be not used for the recipient.* - `only-`*SUITE* Add only these individual crypto suites and none of the others. For example, `only-NULL_HMAC_SHA1_32` would only accept the crypto suite `NULL_HMAC_SHA1_32` for the offer being generated. This takes precedence over the `SDES-no-` flag(s), if used together, so the `SDES-no` will be not taken into account. This has two effects: if a given crypto suite was present in a received offer, it will be kept, so will be present in the outgoing offer; and if a given crypto suite was not present in the received offer, it will be added to it. The rest, which is not mentioned, will be dropped/not added. *Remark: if after applying the policies to the processed offer, there are no crypto suites left,* *which can be used later in the answer towards the offerer, then rtpengine will intentionally* *leave the top most one offered, for the answer towards the originator.* *However it will be not used for the recipient.* - `nonew` Don't add any new crypto suites into the offer. This means, offered SDES crypto suites will be accepted, meanwhile no new are going to be generated by rtpengine. It takes precedence over the `SDES-no` and `SDES-only` flags, if used in combination. - `order:`*SUITES LIST* The order, in which crypto suites are being added to the SDP. Example: `SDES-order:AES_256_CM_HMAC_SHA;AES_256_CM_HMAC_SHA1_32;AES_192_CM_HMAC_SHA1_80;`, this means — those listed SDES crypto suites will be added into the generated SDP body at the top of crypto suites list, in the given order. But, each of them is added, only if it is about to be added/generated. In other words, the `SDES-order:` flag itself doesn't add crypto suites, it just affects the order of those suites to be added. And the rest of non-mentioned suites (not mentioned in the `SDES-order:` list), which are also to be added, will be appended after those given, in the free manner of ordering. Important thing to remember - it doesn't change the crypto suite tag for the recipient, even though changing the order of them. This flag does not contradict with `SDES-nonew`, `SDES-only-` and `SDES-no-` flags. It just orders the list of crypto suites already prepared to be sent out. - `offerer_pref:`*SUITES LIST* The list of preferred crypto suites to be selected for the offerer. It provides a possibility to select specific crypto suite(s) for the offerer from the given list of crypto suites received in the offer. This will be used later on, when processing an answer from the recipient and generating an answer to be sent out towards offerer. Furthermore, this is being decided not when the answer is processed, but already when the offer is processed. Flag usage example: `SDES-offerer_pref:AES_256_CM_HMAC_SHA;AES_256_CM_HMAC_SHA1_32;` - `pad` RFC 4568 (section 6.1) is somewhat ambiguous regarding the base64 encoding format of `a=crypto` parameters added to an SDP body. The default interpretation is that trailing `=` characters used for padding should be omitted. With this flag set, these padding characters will be left in place. - `lifetime` Add the key lifetime parameter `2^31` to each crypto key. - `static` Instructs *rtpengine* to skip the full SDES negotiation routine during a re-invite (e.g. pick the first support crypto suite, look for possible SRTP passthrough) and instead leave the previously negotiated crypto suite in place. Only useful in subsequent `answer` messages and ignored in `offer` messages. - `prefer` If an `offer` or `publish` contain both DTLS and SDES options, by default *rtpengine* prefers DTLS over SDES and would end up accepting DTLS. With this option set, in this scenario SDES would be preferred and accepted, while DTLS would be rejected. Useful in combination with `DTLS=off`. * `supports` Contains a list of strings. Each string indicates support for an additional feature that the controlling SIP proxy supports. Currently defined values are: * `load limit` Indicates support for an extension to the *ng* protocol to facilitate certain load balancing mechanisms. If *rtpengine* is configured with certain session or load limit options enabled (such as the `max-sessions` option), then normally *rtpengine* would reply with an error to an `offer` if one of the limits is exceeded. If support for the `load limit` extension is indicated, then instead of replying with an error, *rtpengine* responds with the string `load limit` in the `result` key of the response dictionary. The response dictionary may also contain the optional key `message` with an explanatory string. No other key is required in the response dictionary. * `to-interface` Contains a string identifying the network interface pertaining to the "going to" direction of this message. Identical to setting the second `direction=` value. * `to-label` Commands that allow selection of two call participants (e.g. `block media`) can use `label` instead of `from-tag` to select the first call participant. The `to-label` can then be used instead of `to-tag` to select the other call participant. For `subscribe request` the `to-label` is synonymous with `set-label`. * `TOS` Contains an integer. If present, changes the TOS value for the entire call, i.e. the TOS value used in outgoing RTP packets of all RTP streams in all directions. If a negative value is used, the previously used TOS value is left unchanged. If this key is not present or its value is too large (256 or more), then the TOS value is reverted to the default (as per `--tos` command line). * `transport protocol` The transport protocol specified in the SDP body is to be rewritten to the string value given here. The media proxy will expect to receive this protocol on the allocated ports, and will talk this protocol when sending packets out. Translation between different transport protocols will happen as necessary. Valid values are: `RTP/AVP`, `RTP/AVPF`, `RTP/SAVP`, `RTP/SAVPF`. Additionally the string `accept` can be given in `answer` messages to allow a special case: By default (when no `transport-protocol` override is given) in answer messages, *rtpengine* will use the transport protocol that was originally offered. However, an answering client may answer with a different protocol than what was offered (e.g. offer was for `RTP/AVP` and answer comes with `RTP/AVPF`). The default behaviour for *rtpengine* is to ignore this protocol change and still proceed with the protocol that was originally offered. Using the `accept` option here tells *rtpengine* to go along with this protocol change and pass it to the original offerer. * `trigger` A string of DTMF digits that enable a DTMF blocking mode when detected. * `trigger-end` or `end trigger` A string of DTMF digits that disable DTMF blocking or enable a different DTMF blocking mode when detected, but only after the initial enabling `trigger` has been detected. * `trigger-end-time` Time in milliseconds that a DTMF blocking mode enabled by the `trigger` should remain active the most. After the time has expired, the blocking mode is switched to the `trigger-end` mode. * `trigger-end-digits` Number of DTMF digits that a DTMF blocking mode enabled by the `trigger` should remain active the most. After this number of DTMF digits has been detected, the blocking mode is switched to the `trigger-end` mode. * `T.38` Contains a list of strings. Each string is a flag that controls the behaviour regarding T.38 transcoding. These flags are ignored if the message is not an `offer`. Recognised flags are: - `decode` If the received SDP contains a media section with an `image` type, `UDPTL` transport, and `t38` format string, this flag instructs *rtpengine* to convert this media section into an `audio` type using RTP as transport protocol. Other transport protocols (such as SRTP) can be selected using `transport protocol` as described above. The default audio codecs to be offered are `PCMU` and `PCMA`. Other audio codecs can be specified using the `transcode=` flag described above, in which case the default codecs will not be offered automatically. - `force` If the received SDP contains an audio media section using RTP transport, this flag instructs *rtpengine* to convert it to an `image` type media section using the UDPTL protocol. The first supported audio codec that was offered will be used to transport T.30. Default options for T.38 are used for the generated SDP. - `stop` Stops a currently active T.38 gateway that was previously engaged using the `decode` or `force` flags. This is useful to handle a rejected T.38 offer and revert the session back to media passthrough. - `no-ECM` Disable support for ECM. Support is enabled by default. - `no-V.17` Disable support for V.17. Support is enabled by default. - `no-V.27ter` Disable support for V.27ter. Support is enabled by default. - `no-V.29` Disable support for V.29. Support is enabled by default. - `no-V.34` Disable support for V.34. Support is enabled by default. - `no-IAF` Disable support for IAF. Support is enabled by default. - `FEC` Use UDPTL FEC instead of redundancy. Only useful with `T.38=force` as it's a negotiated parameter. * `volume` Sets the tone volume for `DTMF-security` modes `tone`, `zero, `DTMF`, and `random` in negative dB. The default is -10 dB. The highest possible volume is 0 dB and the lowest possible volume is -63 dB. * `xmlrpc-callback` Contains a string that encodes an IP address (either IPv4 or IPv6) in printable format. If specified, then this address will be used as destination address for the XMLRPC timeout callback (see `b2b-url` option). **Optionally included flags are:** The value of the `flags` key is a list. The list contains zero or more of the following strings. Spaces in each string may be replaced by hyphens. * `all` Synonymous to `all=all` (see below). * `allow asymmetric codecs` Normally *rtpengine* expects codecs that were offered during an SDP `offer` to match the ones that are accepted in the corresponding SDP `answer`. This expectation includes the RTP payload type number. In particular this is relevant to codecs using dynamic RTP payload type numbering (generally 96 and above). For example if the SDP `offer` included AMR-WB with payload type number 98, then the answering client is expected to also use payload type number 98 if it wanted to accept this codec. With this option set, mismatched payload type numbers are accepted and honoured. If an answering client accepts a codec that was not offered (with that payload type number), then a lookup is performed in attempt to find a matching and compatible codec from the offer with a different payload type number. If a match is found then the codec is considered as accepted. Note that payload type number translation will not be performed in this situation. * `allow transcoding` This flag is only useful in commands that provide an explicit answer SDP to *rtpengine* (e.g. `subscribe answer`). For these commands, if the answer SDP does not accept all codecs that were offered, the default behaviour is to reject the answer. With this flag given, the answer will be accepted even if some codecs were rejected, and codecs will be transcoded as required. * `always transcode` Legacy flag, synonymous to `codec-accept=all`. * `asymmetric` Corresponds to the *rtpproxy* `a` flag. Advertises an RTP endpoint which uses asymmetric RTP, which disables learning of endpoint addresses (see below). * `block DTMF` Useful in `offer` or `answer` messages to immdiately enable DTMF blocking (or other DTMF security mechanism) for the relevant call party, identical to using a `block DTMF` message for the call party immediately after. * `block egress` Instructs *rtpengine* to suppress and block other egress media to a remote client while media playback towards that client is ongoing. Useful for `play media` messages, as well as `offer` and `answer` in combination with `recording announcement`. * `block short` or `block short packets` Enables blocking of short RTP packets for the applicable call participant. Short RTP packets are packets shorter than the expected minimum length, which is determined empirically based on what is observed on the wire. Short packets are simply discarded. This is supported only for codecs for which a fixed packet size is expected (e.g. G.711). * `debug` or `debugging` Enabled full debug logging for this call, regardless of global log level settings. * `detect DTMF` When present in a message that sets up codec handlers, enables the DSP to detect in-band DTMF audio tones even when it wouldn't otherwise be necessary. * `discard recording` When file recording is in use, instructs the recording daemon to discard (delete) the recording files, as well as the database entries if present. * `exclude recording` Instructs *rtpengine* to exclude this call participant's media from being recorded. When used within an offer/answer exchange, applies to both call parties involved. * `skip-recording-db` Suppress writing the information about the call recording to the configured metadata DB. * `early media` Used in conjunction with the audio player. If set, audio playback is started immediately when processing an `offer` message. The default behaviour is to start the audio player only after the `answer` has been processed, or when any audio to be played back has actually been received (either from another party to the call, or via the `play media` command). * `full rtcp attribute` Include the full version of the `a=rtcp` line (complete with network address) instead of the short version with just the port number. * `generate RTCP` Identical to setting `generate RTCP = on`. * `generate mid` Add `a=mid` attributes to the outgoing SDP if they were not already present. * `inactive` Useful for `subscribe request` messages to produce an SDP which is marked as inactive, instead of `sendonly` which is the default. This can be used to pause media sent to a subscription. * `inject DTMF` Signals to *rtpengine* that the audio streams involved in this `offer` or `answer` (the flag should be present in both of them) are to be made available for DTMF injection via the `play DTMF` control message. See `play DTMF` below for additional information. * `loop protect` Inserts a custom attribute (`a=rtpengine:...`) into the outgoing SDP to prevent *rtpengine* processing and rewriting the same SDP multiple times. This is useful if your setup involves signalling loops and need to make sure that *rtpengine* doesn't start looping media packets back to itself. When this flag is present and *rtpengine* sees a matching attribute already present in the SDP, it will leave the SDP untouched and not process the message. * `media handover` Similar to the `strict source` option, but instead of dropping packets when the source address or port don't match, the endpoint address will be re-learned and moved to the new address. This allows endpoint addresses to change on the fly without going through signalling again. Note that this opens a security hole and potentially allows RTP streams to be hijacked, either partly or in whole. * `NAT-wait` Prevents forwarding media packets to the respective endpoint until at least one media packet has been received from that endpoint. This is to allow a NAT binding to open in the ingress direction before sending packets out, which could result in an automated firewall block. * `no port latching` Port latching is enabled by default for endpoints which speak ICE. With this option preset, a remote port change will result in a local port change even for endpoints which speak ICE, which will imply an ICE restart. * `no rtcp attribute` Omit the `a=rtcp` line from the outgoing SDP. * `original sendrecv` With this flag present, *rtpengine* will leave the media direction attributes (`sendrecv`, `recvonly`, `sendonly`, and `inactive`) from the received SDP body unchanged. Normally *rtpengine* would consume these attributes and insert its own version of them based on other media parameters (e.g. a media section with a zero IP address would come out as `sendonly` or `inactive`). * `pad crypto` Legacy alias to SDES=pad. * `pierce NAT` Sends empty UDP packets to the remote RTP peer as soon as an endpoint address is available from a received SDP, for as long as no incoming packets have been received. Useful to create an initial NAT mapping. Not needed when ICE is in use. * `port latching` Forces *rtpengine* to retain its local ports during a signalling exchange even when the remote endpoint changes its port. * `record call` Identical to setting `record call` to `on` (see below). * `recording announcement` Enable playback of an announcement message when call recording is started. One of the flags identifying a media file (such as `file=`, same as for the `play media` message) must also be given, and generally usage of `block egress` is recommended. Announcement messages are enabled directionally, meaning this flag enables it for the call party relevant to the current message (e.g the call originator for an initial `invite`) but not for other. In other words this flag must be set for all call parties which are meant to hear the announcement. * `reject ICE` Useful for `offer` messages that advertise support for ICE. Instructs *rtpengine* to reject the offered ICE. This is similar to using `ICE=remove` in the respective `answer`. * `reset` This causes *rtpengine* to un-learn certain aspects of the RTP endpoints involved, such as support for ICE or support for SRTP. For example, if `ICE=force` is given, then *rtpengine* will initially offer ICE to the remote endpoint. However, if a subsequent answer from that same endpoint indicates that it doesn't support ICE, then no more ICE offers will be made towards that endpoint, even if `ICE=force` is still specified. With the `reset` flag given, this aspect will be un-learned and *rtpengine* will again offer ICE to this endpoint. This flag is valid only in an `offer` message and is useful when the call has been transferred to a new endpoint without change of `From` or `To` tags. * `reuse codecs` or `no codec renegotiation` Instructs *rtpengine* to prevent endpoints from switching codecs during call run-time if possible. Codecs that were listed as preferred in the past will be kept as preferred even if the re-offer lists other codecs as preferred, or in a different order. Recommended to be combined with `single codec`. * `RTCP mirror` Useful only for `subscribe request` message. Instructs *rtpengine* to not only create a one-way subscription for both RTP and RTCP from the source to the sink, but also create a reverse subscription for RTCP only from the sink back to the source. This makes it possible for the media source to receive feedback from all media receivers (sinks). * `single codec` Using this flag in an `answer` message will leave only the first listed codec in place and will remove all others from the list. Useful for RTP clients which get confused if more than one codec is listed in an answer. * `static codecs` Useful in an `offer` message to suppress any change in codecs towards the answer side, instead of passing along the list of offered codecs from the offer side as it normally would. * `SIP source address` Ignore any IP addresses given in the SDP body and use the source address of the received SIP message (given in `received from`) as default endpoint address. This was the default behaviour of older versions of *rtpengine* and can still be made the default behaviour through the `--sip-source` CLI switch. Can be overridden through the `media address` key. * `symmetric` Corresponds to the *rtpproxy* `w` flag. Not used by *rtpengine* as this is the default, unless `asymmetric` is specified. * `trust address` The opposite of `SIP source address`. This is the default behaviour unless the CLI switch `--sip-source` is active. Corresponds to the *rtpproxy* `r` flag. Can be overridden through the `media address` key. * `strip extmap` Remove `a=rtpmap` attributes from the outgoing SDP. * `strict source` Normally, *rtpengine* attempts to learn the correct endpoint address for every stream during the first few seconds after signalling by observing the source address and port of incoming packets (unless `asymmetric` is specified). Afterwards, source address and port of incoming packets are normally ignored and packets are forwarded regardless of where they're coming from. With the `strict source` option set, *rtpengine* will continue to inspect the source address and port of incoming packets after the learning phase and compare them with the endpoint address that has been learned before. If there's a mismatch, the packet will be dropped and not forwarded. * `trickle ICE` Useful for `offer` messages when ICE is advertised to also advertise support for trickle ICE. * `unidirectional` When this flag is present, kernelize also one-way rtp media. * `WebRTC` Shortcut alias for several other flags that must be set when talking to a WebRTC client. Currently an alias for (subject to change): `transport-protocol=UDP/TLS/RTP/SAVPF` `ICE=force` `tricke-ICE` `rtcp-mux-offer` `rtcp-mux-require` `no-rtcp-attribute` `SDES-off` `generate-mid` **Optionally included replace-flags are:** Similar to the usual `flags` list, but this one controls which parts of the SDP body should be rewritten. Contains zero or more of: * `force-increment-sdp-ver` Force increasing the SDP version, even if the SDP hasn't been changed. * `origin` Replace the address found in the *origin* (o=) line of the SDP body. * `origin-full` Replace whole *origin* (o=) line of the SDP body, so that all origin fields in the `o=` line always remain the same in all SDPs going to a particular RTP endpoint. A behavior in relation to the address field is the same as by the `origin` option flag. * `session name` or `session-name` Same as `username` but for the entire contents of the `s=` line. * `SDP version` or `SDP-version` Take control of the version field in the SDP and make sure it's increased every time the SDP changes, and left unchanged if the SDP is the same. * `username` Take control of the origin username field in the SDP. With this option in use, *rtpengine* will make sure the username field in the `o=` line always remains the same in all SDPs going to a particular RTP endpoint. * `zero address` Using a zero endpoint address is an obsolete way to signal a muted or sendonly stream. Streams with zero addresses are normally flagged as sendonly and the zero address in the SDP is passed through. With this option set, the zero address is replaced with a real address. **Optionally included codec manipulations:** `codec` contains a dictionary controlling various aspects of codecs (or RTP payload types). These options can also be put into the `flags` list using a prefix of `codec-`. For example, to set the codec options for two variants of Opus when they're implicitly accepted, (see the example under `set`), one would put the following into the `flags` list: `codec-set-opus/48000/1/16000` `codec-set-opus/48000/2/32000` The following keys are understood: * `accept` Similar to `mask` and `consume` but doesn't remove the codec from the list of offered codecs. This means that a codec listed under `accept` will still be offered to the remote peer, but if the remote peer rejects it, it will still be accepted towards the original offerer and then used for transcoding. It is a more selective version of what the `always transcode` flag does. The special string `any` can be used for the `publish` message. See below for more details. * `consume` Identical to `mask` but enables the transcoding engine even if no other transcoding related options are given. * `except` Contains a list of strings. Each string is the name of a codec that should be included in the list of codecs offered. This is primarily useful to block all codecs (`strip -> all` or `mask -> all`) except the ones given in the `except` whitelist. Codecs that were not present in the original list of codecs offered by the client will be ignored. This list also supports codec format parameters as per above. * `mask` Similar to `strip` except that codecs listed here will still be accepted and used for transcoding on the offering side. Useful only in combination with `transcode`. For example, if an offer advertises Opus and the options `mask=opus, transcode=G723` are given, then the rewritten outgoing offer will contain only G.723 as offered codec, and transcoding will happen between Opus and G.723. In contrast, if only `transcode=G723` were given, then the rewritten outgoing offer would contain both Opus and G.723. On the other hand, if `strip=opus, transcode=G723` were given, then Opus would be unavailable for transcoding. As with the `strip` option, the special keywords `all` and `full` can be used to mask all codecs that have been offered. This option is only processed in `offer` messages and ignored otherwise. * `offer` This is identical to `except` but additionally allows the codec order to be changed. So the first codec listed in `offer` will be the primary (preferred) codec in the output SDP, even if it wasn't originally so. * `set` Contains a list of strings. This list makes it possible to set codec options (bitrate in particular) for codecs that are implicitly accepted for transcoding. For example, if `AMR` was offered, `transcode=PCMU` was given, and the remote ended up accepting `PCMU`, then this option can be used to set the bitrate used for the AMR transcoding process. Each string must be a full codec specification as per above, including clock rate and number of channels. Using the example above, `set=AMR/8000/1/7400` can be used to transcode to AMR with 7.4 kbit/s. Codec options (bitrate) are only applied to codecs that match the given parameters (clock rate, channels), and multiple options can be given for the same coded with different parameters. For example, to specify different bitrates for Opus for both mono and stereo output, one could use `set=[opus/48000/1/16000,opus/48000/2/32000]`. This option is only processed in `offer` messages and ignored otherwise. * `strip` Contains a list of strings. Each string is the name of a codec or RTP payload type that should be removed from the SDP. Codec names are case sensitive, and can be either from the list of codecs explicitly defined by the SDP through an `a=rtpmap` attribute, or can be from the list of RFC-defined codecs. Examples are `PCMU`, `opus`, or `telephone-event`. Codecs stripped using this option are treated as if they had never been in the SDP. It is possible to specify codec format parameters alongside with the codec name in the same format as they're written in SDP for codecs that support them, for example `opus/48000` to specify Opus with 48 kHz sampling rate and one channel (mono), or `opus/48000/2` for stereo Opus. If any format parameters are specified, the codec will only be stripped if all of the format parameters match, and other instances of the same codec with different format parameters will be left untouched. As a special keyword, `all` can be used to remove all codecs, except the ones that should explicitly offered (see below). Note that it is an error to strip all codecs and leave none that could be offered. In this case, the original list of codecs will be left unchanged. The keyword `full` can also be used, which behaves the same as `all` with the exception listed under `transcode` below. * `transcode` Similar to `offer` but allows codecs to be added to the list of offered codecs even if they were not present in the original list of codecs. In this case, the transcoding engine will be engaged. Only codecs that are supported for both decoding and encoding can be added in this manner. This also has the side effect of automatically stripping all unsupported codecs from the list of offered codecs, as *rtpengine* must expect to receive or even send in any codec that is present in the list. Note that using this option does not necessarily always engage the transcoding engine. If all codecs given in the `transcode` list were present in the original list of offered codecs, then no transcoding will be done. Also note that if transcoding takes place, in-kernel forwarding is disabled for this media stream and all processing happens in userspace. If no codec format parameters are specified in this list (e.g. just `opus` instead of `opus/48000/2`), default values will be chosen for them. For codecs that support different bitrates, it can be specified by appending another slash followed by the bitrate in bits per second, e.g. `opus/48000/2/32000`. In this case, all format parameters (clock rate, channels) must also be specified. Additional options that can be appended to the codec string with additional slashes are ptime, the `fmtp` string, and additional codec-specific options. For example `iLBC/8000/1///mode=30` to use `mode=30` as `fmtp` string. For Opus, the string of codec-specific options is passed directly to ffmpeg, so all ffmpeg codec options can be set. Use space, colon, semicolon, or comma to separate individual options. For example to set the encoding complexity (also known as compression level by ffmpeg): `opus/48000/2////compression_level=2` If a literal `=` cannot be used due to parsing constraints (i.e. being wrongly interpreted as a key-value pair), it can be escaped by using two dashes instead, e.g. `iLBC/8000/1///mode--30`. As a special case, if the `strip=all` or `mask=all` option has been used and the `transcode` option is used on a codec that was originally present in the offer, then *rtpengine* will treat this codec the same as if it had been used with the `offer` option, i.e. it will simply restore it from the list of stripped codecs and won't actually engage transcoding for this codec. On the other hand, if a codec has been stripped explicitly by name using the `strip` or `mask` option and then used again with the `transcode` option, then the codec will not simply be restored from the list of stripped codecs, but instead a new transcoded instance of the codec will be inserted into the offer. (This special exception does not apply to `mask=full` or `strip=full`.) This option is only processed in `offer` messages and ignored otherwise. **Optionally included SDP attributes manipulations:** `sdp-attr` contains a dictionary controlling various aspects of attribute lines (or `a=` lines). An intention of these option flags is to control session (global) and media level attributes, with help of which it's possible to do the following manipulations: - addition - removal - substitution (replacement) This does affect an outgoing SDP offer. So it's meant to manipulate body attributes, which rtpengine generates during the offer processing. In other words, it manipulates what has been already prepared by rtpengine on its own, taking into account received offer. Furthermore, it's quite important to remember, that the changes, which have been applied to SDP body attributes, will be not taken into account by rtpengine itself, so these changes are rather formal (textual). This means, it's not the same, as if they would be originally given by the session originator. That's why this kind of flags must be used with a full carefulness, because if not, this can potentially lead to the unexpected result. Usage syntax: "sdp-attr" : { "": { "": ["", ""], "": ["", ""] }, "": { "": ["", ""], "": ["", ""] } } Description: * `` Defines a level of command application. One media type can be given only once per command. `` can have one of the following values: - `none` or `global` Applies to the session level (global) attributes, but not to any of the media session specific attributes. - `audio` Applies to all currently present media sessions of audio type. - `video` Applies to all currently present media sessions of audio type. * `` The command to be applied to the targeted attribute line(s). Each command can be used multiple times within one media session/global scope. - `add` Adds a new `a=` line with a given value to the concerned attributes list. If the attribute with such value already exists within this scope of media session, then no duplication is to be added, therefore the older one remains untouched and nothing extra is being added. Can take multiple values (so multiple attributes can added per one command). - `remove` Removes a specified `a=` line from the concerned attributes list. If such line hasn't been found, then the attributes list remains untouched. The matching can be done using just the attribute name, or the attribute name plus a tag value, or the full attribute line (value and the following attribute parameters, if given). For example, the attribute `a=foo:bar baz quuz` would match any of `foo`, foo:bar`, or `foo:bar baz quuz`. Can take multiple values (so multiple attributes can removed per one command). - `substitute` Substitutes a specified `a=` line taken from the concerned media attributes list. If such line hasn't been found, then the attributes list remains untouched. The matching can be done using just the attribute name, or the attribute name plus a tag value, or the full attribute line (value and the following attribute parameters, if given). If the attribute is generated by *rtpengine* itself and a tag value is present, then the tag value must also be used in the match pattern. For example, the attribute `a=foo:bar baz quuz` would match any of `foo`, foo:bar`, or `foo:bar baz quuz`, but the self-generated attribute `a=fmtp:10 foobar` could only be substituted using either `fmtp:10` or `fmtp:10 foobar` but not just `fmtp`. Substitutes one attribute at a time, so one attribute into another attribute. Read more about that below in the `` section. * `` The `value` has to not include the `a=` (lvalue) part. It contains only the value, that is given after the equal sign. No wild-cards or regular expressions are accepted. It's important to remember that some attributes are allowed to be present multiple times. Furthermore rtpengine does not expect given `a=` lines (to be substituted) to be unique within concerned media scope (global, audio or video). This leads to the next point — `remove` and `substitute` commands can affect just a single attribute, as well as multiple attributes, depending on the uniqueness of the value in the given command. User is supposed to provide full `a=` line value, so that it gives expected behavior. Important remark regarding `substitute` command. It takes only two values at a time, in other words it substitutes one attribute per command: - the first `value`, that matches the full value to be substituted; and - the second `value`, that is to be placed instead. Therefore, the only allowed syntax for it is (per command): "substitute": ["from-this-attribute", "to-that-attribute"] All other possible usages will be ignored and only first two values will be taken. However, multiple `substitute` commands can be given per time, see examples below. Examples: * Add a new (single) attribute line to the session (global) level: "sdp-attr" : { "none" : { "add" : [ "sendrecv" ] } } * Add two new attribute lines to audio session and remove one for video session: "sdp-attr" : { "audio" : { "add" : [ "ptime:20", "sendrecv" ] }, "video": { "remove" : [ "rtpmap:101 telephone-event/8000" ] } } * Substitute two attributes of the global session and one for audio media section (pay attention, `substitute` uses lists, not dictionaries): "sdp-attr" : { "none" : { "substitute": [[ "sendrecv" , "sendonly" ], [ "ptime:20" , "ptime:40" ]] }, "audio" : { "substitute": [["fmtp:101 0-15" , "fmtp:126 0-16" ]] }, } * As an alternative syntax these can be listed in the `flags` list. An example of such syntax: - `sdp-attr-remove-audio-ptime:20` - `sdp-attr-substitude-none-sendrecv>sendonly`. In such usage equals sign (`=`) can be escaped as double dashes (`--`) and spaces can be escaped as double periods (`..`). An example of a complete `offer` request dictionary could be (SDP body abbreviated): { "command": "offer", "call-id": "cfBXzDSZqhYNcXM", "from-tag": "mS9rSAn0Cr", "sdp": "v=0\r\no=...", "via-branch": "5KiTRPZHH1nL6", "flags": [ "trust address" ], "replace": [ "origin" ], "address family": "IP6", "received-from": [ "IP4", "10.65.31.43" ], "ICE": "force", "transport protocol": "RTP/SAVPF", "media address": "2001:d8::6f24:65b", "DTLS": "passive" } A response message contains only the key `sdp` in addition to `result`, which contains the re-written SDP body that the SIP proxy should insert into the SIP message. Example response: { "result": "ok", "sdp": "v=0\r\no=..." } ## `answer` Message The `answer` message is identical to the `offer` message, with the additional requirement that the dictionary must contain the key `to-tag` containing the SIP `To` tag. It doesn't make sense to include the `direction` key in the `answer` message. The reply message is identical as in the `offer` reply. ## `delete` Message The `delete` message must contain at least the keys `call-id` and `from-tag` and may optionally include `to-tag` and `via-branch`, as defined above. It may also optionally include a key `flags` containing a list of zero or more strings. The following flags are defined: * `fatal` Specifies that any non-syntactical error encountered when deleting the stream (such as unknown call-ID) shall result in an error reply (i.e. `"result": "error"`). The default is to reply with a warning only (i.e. `"result": "ok", "warning": ...`). Other optional keys are: * `delete delay` Contains an integer and overrides the global command-line option `delete-delay`. Call/branch will be deleted immediately if a zero is given. Value must be positive (in seconds) otherwise. The reply message may contain additional keys with statistics about the deleted call. Those additional keys are the same as used in the `query` reply. ## `list` Message The `list` command retrieves the list of currently active call-ids. This list is limited to 32 elements by default. * `limit` Optional integer value that specifies the maximum number of results (default: 32). Must be > 0. Be careful when setting big values, as the response may not fit in a UDP packet, and therefore be invalid. ## `query` Message The minimum requirement is the presence of the `call-id` key. Keys `from-tag` and/or `to-tag` may optionally be specified. The response dictionary contains the following keys: * `created` Contains an integer corresponding to the creation time of this call within the media proxy, expressed as seconds since the UNIX epoch. * `last signal` The last time a signalling event (offer, answer, etc) occurred. Also expressed as an integer UNIX timestamp. * `tags` Contains a dictionary. The keys of the dictionary are all the SIP tags (From-tag, To-Tag) known by *rtpengine* related to this call. One of the keys may be an empty string, which corresponds to one side of a dialogue which hasn't signalled its SIP tag yet. Each value of the dictionary is another dictionary with the following keys: - `created` UNIX timestamp of when this SIP tag was first seen by *rtpengine*. - `tag` Identical to the corresponding key of the `tags` dictionary. Provided to allow for easy traversing of the dictionary values without paying attention to the keys. - `label` The label assigned to this endpoint in the `offer` or `answer` message. - `in dialogue with` Contains the SIP tag of the other side of this dialogue. May be missing in case of a half-established dialogue, in which case the other side is represented by the null-string entry of the `tags` dictionary. - `medias` Contains a list of dictionaries, one for each SDP media stream known to *rtpengine*. The dictionaries contain the following keys: + `index` Integer, sequentially numbered index of the media, starting with one. + `type` Media type as string, usually `audio` or `video`. + `protocol` If the protocol is recognized by *rtpengine*, this string contains it. Usually `RTP/AVP` or `RTP/SAVPF`. + `flags` A list of strings containing various status flags. Contains zero of more of: `initialized`, `rtcp-mux`, `DTLS-SRTP`, `SDES`, `passthrough`, `ICE`. + `streams` Contains a list of dictionary representing the packet streams associated with this SDP media. Usually contains two entries, one for RTP and one for RTCP. The keys found in these dictionaries are listed below: + `local port` Integer representing the local UDP port. May be missing in case of an inactive stream. + `endpoint` Contains a dictionary with the keys `family`, `address` and `port`. Represents the endpoint address used for packet forwarding. The `family` may be one of `IPv4` or `IPv6`. + `advertised endpoint` As above, but representing the endpoint address advertised in the SDP body. + `crypto suite` Contains a string such as `AES_CM_128_HMAC_SHA1_80` representing the encryption in effect. Missing if no encryption is active. + `last packet` UNIX timestamp of when the last UDP packet was received on this port. + `flags` A list of strings with various internal flags. Contains zero or more of: `RTP`, `RTCP`, `fallback RTCP`, `filled`, `confirmed`, `kernelized,` `no kernel support`. + `stats` Contains a dictionary with the keys `bytes`, `packets` and `errors`. Statistics counters for this packet stream. * `totals` Contains a dictionary with two keys, `RTP` and `RTCP`, each one containing another dictionary identical to the `stats` dictionary described above. A complete response message might look like this (formatted for readability): { "totals": { "RTCP": { "bytes": 2244, "errors": 0, "packets": 22 }, "RTP": { "bytes": 100287, "errors": 0, "packets": 705 } }, "last_signal": 1402064116, "tags": { "cs6kn1rloc": { "created": 1402064111, "medias": [ { "flags": [ "initialized" ], "streams": [ { "endpoint": { "port": 57370, "address": "10.xx.xx.xx", "family": "IPv4" }, "flags": [ "RTP", "filled", "confirmed", "kernelized" ], "local port": 30018, "last packet": 1402064124, "stats": { "packets": 343, "errors": 0, "bytes": 56950 }, "advertised endpoint": { "family": "IPv4", "port": 57370, "address": "10.xx.xx.xx" } }, { "stats": { "bytes": 164, "errors": 0, "packets": 2 }, "advertised endpoint": { "family": "IPv4", "port": 57371, "address": "10.xx.xx.xx" }, "endpoint": { "address": "10.xx.xx.xx", "port": 57371, "family": "IPv4" }, "last packet": 1402064123, "local port": 30019, "flags": [ "RTCP", "filled", "confirmed", "kernelized", "no kernel support" ] } ], "protocol": "RTP/AVP", "index": 1, "type": "audio" } ], "in dialogue with": "0f0d2e18", "tag": "cs6kn1rloc" }, "0f0d2e18": { "in dialogue with": "cs6kn1rloc", "tag": "0f0d2e18", "medias": [ { "protocol": "RTP/SAVPF", "index": 1, "type": "audio", "streams": [ { "endpoint": { "family": "IPv4", "address": "10.xx.xx.xx", "port": 58493 }, "crypto suite": "AES_CM_128_HMAC_SHA1_80", "local port": 30016, "last packet": 1402064124, "flags": [ "RTP", "filled", "confirmed", "kernelized" ], "stats": { "bytes": 43337, "errors": 0, "packets": 362 }, "advertised endpoint": { "address": "10.xx.xx.xx", "port": 58493, "family": "IPv4" } }, { "local port": 30017, "last packet": 1402064124, "flags": [ "RTCP", "filled", "confirmed", "kernelized", "no kernel support" ], "endpoint": { "family": "IPv4", "port": 60193, "address": "10.xx.xx.xx" }, "crypto suite": "AES_CM_128_HMAC_SHA1_80", "advertised endpoint": { "family": "IPv4", "port": 60193, "address": "10.xx.xx.xx" }, "stats": { "packets": 20, "bytes": 2080, "errors": 0 } } ], "flags": [ "initialized", "DTLS-SRTP", "ICE" ] } ], "created": 1402064111 } }, "created": 1402064111, "result": "ok" } ## `start recording` Message The `start recording` message must contain at least the key `call-id` and may optionally include `from-tag`, `to-tag` and `via-branch`, as defined above. The reply dictionary contains no additional keys. Enables call recording for the call, either for the entire call or for only the specified call leg. Currently *rtpengine* always enables recording for the entire call and does not support recording only individual call legs, therefore all keys other than `call-id` are currently ignored. If the chosen recording method doesn't support in-kernel packet forwarding, enabling call recording via this messages will force packet forwarding to happen in userspace only. If the optional `recording-file` key is set, then its value will be used as an output file. Note that the value must refer to a complete (absolute) path including file name, and a file name extension will not be added. If the optional `recording-dir` key is set, then its value will be used as the directory path for the output file(s), overriding the `output-dir` config option of the recording daemon. The value should refer to an existing directory given as an absolute path. Setting this key does not affect the names of the files that will be created in the directory. If the optional `recording-pattern` key is set, then its value will be used as the pattern to generate the output file name(s), overriding the `output-pattern` config option of the recording daemon. Note that no validity checking is performed on the given string, so make sure that the given pattern does not yield duplicate file names. The option `recording-file` takes precedence over both `recording-dir` and `recording-pattern` if multiple options are set. ## `stop recording` Message The `stop recording` message must contain the key `call-id` as defined above. The reply dictionary contains no additional keys. See below under `pause recording` for another alternative usage for this message. Disables call recording for the call. This can be sent during a call to immediately stop recording it. ## `pause recording` Message Identical to `stop recording` except that it instructs the recording daemon not to close the recording file, but instead leave it open so that recording can later be resumed via another `start recording` message. Alternatively the `stop recording` message can be used if either the string `pause` is given in the `flags` list, or if the dictionary contains the key `pause=yes`. ## `block DTMF` and `unblock DTMF` Messages These message types must include the key `call-id` in the message. They enable and disable blocking of DTMF events (RFC 4733 type packets), respectively. Packets can be blocked for an entire call if only the `call-id` key is present in the message, or can be blocked directionally for individual participants. Participants can be selected by their SIP tag if the `from-tag` key is included in the message, they can be selected by their SDP media address if the `address` key is included in the message, or they can be selected by the user-provided `label` if the `label` key is included in the message. For an address, it can be an IPv4 or IPv6 address, and any participant that is found to have a matching address advertised as their SDP media address will have their originating RTP packets blocked (or unblocked). Unblocking packets for the entire call (i.e. only `call-id` is given) does not automatically unblock packets for participants which had their packets blocked directionally, unless the string `all` (equivalent to setting `all=all`) is included in the `flags` section of the message. When DTMF blocking is enabled, DTMF event packets will not be forwarded to the receiving peer. If DTMF logging is enabled, DTMF events will still be logged to syslog while blocking is enabled. Blocking of DTMF events can be enabled and disabled at any time during call runtime. ## `block media` and `unblock media` Messages Analogous to `block DTMF` and `unblock DTMF` but blocks media packets instead of DTMF packets. DTMF packets can still pass through when media blocking is enabled. Media packets can be blocked for an entire call, or directionally for individual participants. See `block DTMF` above for details. In addition to blocking media for just one call participant, it's possible to block media for just a single media flow. This is relevant to scenarios that involve forked media that were established with one or more `subscribe request`. To select just one media flow for media blocking, in addition to selecting a source call participant as above, a destination call participant must be specified using the `to-tag` or `to-label`key in the message. Another possibility to block media for individual media flows is to use one of the special `all=` keywords instead of directly specifying a single `to-tag` or `to-label`. With `all=offer-answer` all media flows from the given `from-tag` that resulted from an offer/answer negotiation are affected. Respectively with `all=except-offer-answer` the opposite happens. With `all=flows` all currently established media flows are affected regardless or how they were created. ## `silence media` and `unsilence media` Messages Identical to `block media` and `unblock media` except that media packets are not simply blocked, but rather have their payload replaced with silence audio. This is only supported for certain trivial audio codecs (i.e. G.711, G.722). ## `start forwarding` and `stop forwarding` Messages These messages control the recording daemon's mechanism to forward PCM via TCP/TLS. Unlike the call recording mechanism, forwarding can be enabled for individual participants (directionally) only, therefore these messages can be used with the same options as the `block` and `unblock` messages above. The PCM forwarding mechanism is independent of the call recording mechanism, and so forwarding and recording can be started and stopped independently of each other. ## `play media` Message Only available if compiled with transcoding support. The message must contain the key `call-id` and one of the participant selection keys described under the `block DTMF` message (such as `from-tag`, `address`, or `label`). Alternatively, the `all` flag can be set to play the media to all involved call parties. Starts playback of a provided media file to the selected call participant. The format of the media file can be anything that is supported by *ffmpeg*, for example a `.wav` or `.mp3` file. It will automatically be resampled and transcoded to the appropriate sampling rate and codec. The selected participant's first listed (preferred) codec that is supported will be chosen for this purpose. Media files can be provided through one of these keys: * `file` Contains a string that points to a file on the local file system. File names can be relative to the daemon's working direction. * `blob` Contains a binary blob (string) of the contents of a media file. Due to the limitations of the *ng* transport protocol, only very short files can be provided this way, and so this is primarily useful for testing and debugging. * `db-id` Contains an integer. This requires the daemon to be configured for accessing a *MySQL* (or *MariaDB*) database via (at the minimum) the `mysql-host` and `mysql-query` config keys. The daemon will then retrieve the media file as a binary blob (not a file name!) from the database via the provided query. * `repeat-times` Contains an integer. How many times to repeat playback of the media. Default is 1. * `start-pos` Contains an integer. The start frame position to begin the playback from. In addition to the `result` key, the response dictionary may contain the key `duration` if the length of the media file could be determined. The duration is given as in integer representing milliseconds. ## `stop media` Message Stops the playback previously started by a `play media` message. Media playback stops automatically when the end of the media file is reached, so this message is only useful for prematurely stopping playback. The same participant selection keys as for the `play media` message can and must be used. Will return the last frame played in `last-frame-pos` key. ## `play DTMF` Message Instructs *rtpengine* to inject a DTMF tone or event into a running audio stream. A call participant must be selected in the same way as described under the `play media` message above (including the possibility of using the `all` flag). The selected call participant is the one generating the DTMF event, not the one receiving it. The dictionary key `code` (or alternatively `digit`) must be present in the message, indicating the DTMF event to be generated. It can be either an integer with values 0-15, or a string containing a single character (`0` - `9`, `*`, `#`, `A` - `D`). Additional optional dictionary keys are: `duration` indicating the duration of the event in milliseconds (defaults to 250 ms, with a minimum of 100 and a maximum of 5000); `volume` indicating the volume in absolute decibels (defaults to -8 dB, with 0 being the maximum volume and positive integers being interpreted as negative); and `pause` indicating the pause in between consecutive DTMF events in milliseconds (defaults to 100 ms, with a minimum of 100 and a maximum of 5000). This message can be used to implement `application/dtmf-relay` or `application/dtmf` payloads carried in SIP INFO messages. Multiple DTMF events can be queued up by issuing multiple consecutive `play DTMF` messages. If the destination participant supports the `telephone-event` RTP payload type, then it will be used to send the DTMF event. Otherwise a PCM DTMF tone will be inserted into the audio stream. Audio samples received during a generated DTMF event will be suppressed. The call must be marked for DTMF injection using the `inject DTMF` flag used in both `offer` and `answer` messages. Enabling this flag forces all audio to go through the transcoding engine, even if input and output codecs are the same (similar to DTMF transcoding, see above). ## `statistics` Message Returns a set of general statistics metrics with identical content and format as the `list jsonstats` CLI command. Sample return dictionary: { "statistics": { "currentstatistics": { "sessionsown": 0, "sessionsforeign": 0, "sessionstotal": 0, "transcodedmedia": 0, "packetrate": 0, "byterate": 0, "errorrate": 0 }, "totalstatistics": { "uptime": "18", "managedsessions": 0, "rejectedsessions": 0, "timeoutsessions": 0, "silenttimeoutsessions": 0, "finaltimeoutsessions": 0, "offertimeoutsessions": 0, "regularterminatedsessions": 0, "forcedterminatedsessions": 0, "relayedpackets": 0, "relayedpacketerrors": 0, "zerowaystreams": 0, "onewaystreams": 0, "avgcallduration": "0.000000" }, "intervalstatistics": { "totalcallsduration": "0.000000", "minmanagedsessions": 0, "maxmanagedsessions": 0, "minofferdelay": "0.000000", "maxofferdelay": "0.000000", "avgofferdelay": "0.000000", "minanswerdelay": "0.000000", "maxanswerdelay": "0.000000", "avganswerdelay": "0.000000", "mindeletedelay": "0.000000", "maxdeletedelay": "0.000000", "avgdeletedelay": "0.000000", "minofferrequestrate": 0, "maxofferrequestrate": 0, "avgofferrequestrate": 0, "minanswerrequestrate": 0, "maxanswerrequestrate": 0, "avganswerrequestrate": 0, "mindeleterequestrate": 0, "maxdeleterequestrate": 0, "avgdeleterequestrate": 0 }, "controlstatistics": { "proxies": [ { "proxy": "127.0.0.1", "pingcount": 0, "offercount": 0, "answercount": 0, "deletecount": 0, "querycount": 0, "listcount": 0, "startreccount": 0, "stopreccount": 0, "startfwdcount": 0, "stopfwdcount": 0, "blkdtmfcount": 0, "unblkdtmfcount": 0, "blkmedia": 0, "unblkmedia": 0, "playmedia": 0, "stopmedia": 0, "playdtmf": 0, "statistics": 0, "errorcount": 0 } ], "totalpingcount": 0, "totaloffercount": 0, "totalanswercount": 0, "totaldeletecount": 0, "totalquerycount": 0, "totallistcount": 0, "totalstartreccount": 0, "totalstopreccount": 0, "totalstartfwdcount": 0, "totalstopfwdcount": 0, "totalblkdtmfcount": 0, "totalunblkdtmfcount": 0, "totalblkmedia": 0, "totalunblkmedia": 0, "totalplaymedia": 0, "totalstopmedia": 0, "totalplaydtmf": 0, "totalstatistics": 0, "totalerrorcount": 0 } }, "result": "ok" } ## `publish` Message Similar to an `offer` message except that it is used outside of an offer/answer scenario. The media described by the SDP is published to *rtpengine* directly, and other peer can then subscribe to the published media to receive a copy. The message must include the key `sdp` which should describe `sendonly` media; and the key `call-id` and `from-tag` to identify the publisher. Most other keys and options supported by `offer` are also supported for `publish`. The reply message will contain an answer SDP in `sdp`, but unlike with `offer` this is not a rewritten version of the received SDP, but rather a `recvonly` answer SDP generated by *rtpengine* locally. Only one codec for each media section will be listed, and by default this will be the first supported codec from the published media. This can be influenced with the `codec` options described above, in particular the `accept` option. The list of codecs given in the `accept` option is treated as a list of codec preferences, with the first codec listed being the most preferred codec to be accepted, and so on. It is allowable to list codecs that are not supported for transcoding. If no codecs from the `accept` list are present in the offer, then the first codec that is supported for transcoding is selected. If no such codec is present, then the offer is rejected. The special string `any` can be given in the `accept` list to influence this behaviour: If `any` is listed, then the first codec from the offer is accepted even if it's not supported for transcoding. ## `subscribe request` Message This message is used to request subscription (i.e. receiving a copy of the media) to one or multiple existing call participants, which must have been created either through the offer/answer mechanism, or through the publish mechanism. A single call participant can be selected in the same way as described under `block DTMF`. Multiple call participants can be selected either by using the `all` keyword, in which case all call participants that were created through the offer/answer mechanism will be selected, or by providing a list of tags (from-tags) in the `from-tags` list. This message then creates a new call participant, which corresponds to the subscription. This new call participant will be identified by a newly generated unique tag, or by the tag given in the `to-tag` key. If a label is to be set for the newly created subscription, it can be set through `set-label`. The reply message will contain a sendonly offer SDP in `sdp` which by default will mirror the SDP of the call participant being subscribed to. If multiple call participants are subscribed to at the same time, then this SDP will contain multiple media sections, combined out of the media sections of all selected call participants. This offer SDP can be manipulated with the same flags as used in an `offer` message, including the option to manipulate the codecs. The reply message will also contain the `from-tags` (corresponding to the call participants being subscribed to) and the `to-tag` (corresponding to the subscription, either generated or taken from the received message). If a `subscribe request` is made for an existing `to-tag` then all existing subscriptions for that `to-tag` are deleted before the new subscriptions are created. ## `subscribe answer` Message This message is expected to be received after responding to a `subscribe request` message. The message should contain the same `to-tag` as the reply to the `subscribe request` as well as the answer SDP in `sdp`. By default, the answer SDP must accept all codecs that were presented in the offer SDP (given in the reply to `subscribe request`). If not all codecs were accepted, then the `subscribe answer` will be rejected. This behaviour can be changed by including the `allow transcoding` flag in the message. If this flag is present, then the answer SDP will be accepted as long as at least one valid codec is present, and the media will be transcoded as required. This also holds true if some codecs were added for transcoding in the `subscribe request` message, which means that `allow transcoding` must always be included in `subscribe answer` if any transcoding is to be allowed. The reply message will simply indicate success or failure. If successful, media forwarding will start to the endpoint given in the answer SDP. ## `unsubscribe` Message This message is a counterpart to `subsscribe answer` to stop an established subscription. The subscription to be stopped is identified by the `to-tag`. rtpengine-mr12.5.1.22/docs/overview.md000077700000000000000000000000001474347554000211762../README.mdustar00rootroot00000000000000rtpengine-mr12.5.1.22/docs/requirements.txt000066400000000000000000000000501474347554000206000ustar00rootroot00000000000000myst-parser==2.0.0 sphinx-rtd-theme>=1.2rtpengine-mr12.5.1.22/docs/rtpengine-recording.md000066400000000000000000000326031474347554000216140ustar00rootroot00000000000000--- title: rtpengine-recording section: 8 header: NGCP rtpengine-recording --- # rtpengine-recording(8) manual page ## NAME rtpengine-recording - media recording daemon for Sipwise rtpengine ## SYNOPSIS __rtpengine-recording__ \[*option*...\] ## DESCRIPTION The Sipwise rtpengine media proxy has support for exporting media (RTP) packets that it forwards. The rtpengine-recording daemon collects these exported packets and decodes them into an audio format that can be listened to. ## OPTIONS All options can (and should) be provided in a config file instead of at the command line. See the __\-\-config-file__ option below for details. If no options are given, then default values are assumed, which should be sufficient for a standard installation of rtpengine. - __\-\-help__ Print the usage information. - __-v__, __\-\-version__ If called with this option, the __rtpengine-recording__ daemon will simply print its version number and exit. - __\-\-config-file=__*FILE* Specifies the location of a config file to be used. The config file is an *.ini* style config file, with all command-line options listed here also being valid options in the config file. For all command-line options, the long name version instead of the single-character version (e.g. __table__ instead of just __t__) must be used in the config file. For boolean options that are either present or not (e.g. __output-mixed__), a boolean value (either __true__ or __false__) must be used in the config file. If an option is given in both the config file and at the command line, the command-line value overrides the value from the config file. As a special value, __none__ can be passed here to suppress loading of the default config file. - __\-\-config-section=__*STRING* Specifies the *.ini* style section to be used in the config file. Multiple sections can be present in the config file, but only one can be used at a time. The default value is __rtpengine-recording__. A config file section is started in the config file using square brackets (e.g. __\[rtpengine-recording\]__). - __-L__, __\-\-log-level=__*INT* Takes an integer as argument and controls the highest log level which will be sent to syslog. The log levels correspond to the ones found in the [syslog(3)](http://man.he.net/man3/syslog) man page. The default value is __6__, equivalent to LOG\_INFO. The highest possible value is __7__ (LOG\_DEBUG) which will log everything. - __\-\-log-facilty=daemon__\|__local0__\|...\|__local7__\|... The syslog facilty to use when sending log messages to the syslog daemon. Defaults to __daemon__. - __-E__, __\-\-log-stderr__ Log to stderr instead of syslog. Only useful in combination with __\-\-foreground__. - __\-\-split-logs__ Split multi-line log messages into individual log messages so that each line receives its own log line prefix. - __\-\-no-log-timestamps__ Don't add timestamps to log lines written to stderr. Only useful in combination with __\-\-log-stderr__. - __\-\-log-mark-prefix=__*STRING* Prefix to be added to particular data fields in log files that are deemed sensitive and/or private information. Defaults to an empty string. - __\-\-log-mark-suffix=__*STRING* Suffix to be added to particular data fields in log files that are deemed sensitive and/or private information. Defaults to an empty string. - __-p__, __\-\-pidfile=__*FILE* Specifies a path and file name to write the daemon's PID number to. - __-f__, __\-\-foreground__ If given, prevents the daemon from daemonizing, meaning it will stay in the foreground. Useful for debugging. - __-t__, __\-\-table=__*INT* Takes an integer argument. The value must match the __table__ option given to the __rtpengine__ media proxy to use for in-kernel packet forwarding. Defaults to __0__ if not specified. - __\-\-spool-dir=__*PATH* The path given here must match the __recording-dir__ path given to the __rtpengine__ media proxy. Defaults to `/var/spool/rtpengine`. The path must reside on a file system that supports the __inotify__ mechanism. - __\-\-num-threads=__*INT* How many worker threads to launch. Defaults to the number of CPU cores available, or __8__ if there are fewer than that or if the number is not known. - __\-\-thread-stack=__*INT* Set the stack size of each thread to the value given in kB. Defaults to 2048 kB. Can be set to -1 to leave the default provided by the OS unchanged. - __\-\-evs-lib-path=__*FILE* Points to the shared object file (__.so__) containing the reference implementation for the EVS codec. See the `README` for more details. - __\-\-output-storage=file__\|__db__\|__both__ Where to store media files. By default, media files are written directly to the file system (see __output-dir__). They can also be stored as a __BLOB__ in a MySQL database, either instead of, or in addition to, being written to the file system. - __\-\-output-dir=__*PATH* Path for media files to be written to if file output is enabled. Defaults to `/var/lib/rtpengine-recording`. The path must not be the same as used for the __spool-dir__. - __\-\-output-pattern=__*STRING* File name pattern to be used for recording files. The pattern can reference sub-directories. Parent directories will be created on demand. The default setting is __%c-%r-%t__. The pattern must include __printf__-style format sequences. Supported format sequences are: - __%%__ A literal percent sign. - __%c__ The call ID. It is mandatory for the output pattern to include this format sequence. - __%r__ A random tag generated by __rtpengine__ to distinguish possibly repeated or duplicated call IDs. - __%t__ The stream type. For __single__ streams this is the SSRC written as hexadecimal; for __mix__ stream this is the string __mix__. It is mandatory for the output pattern to include this format sequence. - __%l__ The label for the participating party as communicated from the controlling daemon. - __%Y__ - __%m__ - __%d__ - __%H__ - __%M__ - __%S__ These format sequence reference the current system time (when the output file was created) and are the same as the format sequences supported by [date(1)](http://man.he.net/man1/date) or [strftime(3)](http://man.he.net/man3/strftime) (year, month, day, hours, minutes, and seconds, respectively). - __%u__ Microseconds, expanded to 6 digits (__000000__ through __999999__). - __%__*INT* References a prefix from the call ID of the given length. If this format sequence is present more than once, then the prefixes are cumulative. For example, if the call ID is __abcdefgh__ and the output pattern is configured as __%2/%3/%c__, then the resulting output file name would be __ab/cde/abcdefgh__. - __%{__ Take the string between the enclosing opening and closing brace (between this __{__ and the next __}__) and use it as a key to look up a corresponding value in the metadata string provided by *rtpengine*. The metadata string must be given as a pipe (__|__) separated list of `key:value` pairs, as described in the *rtpengine* documentation. Example: If the metadata string is given as __foo:bar|blah:baz__ and the pattern includes the format __%{foo}__ then __bar__ will be inserted into the file name at that position. - __\-\-output-format=wav__\|__mp3__\|__none__ File format to be used for media files that are produced. Defaults to PCM WAV (RIFF) files. Applicable for both files stored on the file system and in a database. If __none__ is selected then file output is disabled. - __\-\-resample-to=__*INT* Resample all audio to the given sample rate (e.g. __48000__). Resampling is disabled by default, meaning that files will be written with the same sample rate as the source media. - __\-\-mp3-bitrate=__*INT* If MP3 output is selected, use the given bitrate for the MP3 encoder (e.g. __64000__). There is no default value, so this option must be given if MP3 output is selected. Note that not all bitrates are valid in combinations with all sample rates. For MP3 output it's therefore recommended to also set __resample-to__. - __\-\-output-mixed__ - __\-\-output-single__ Whether to produce __mixed__ audio files, or __single__ audio files, or both. If neither option is given, then by default both are enabled. If no file output is desired, set __output-format__ to __none__. A __single__ audio file contains the audio for a single RTP SSRC, which usually means an unidirectional audio stream. These are decoded directly from an RTP stream and do not take timestamping into account, meaning that gaps or pauses in the RTP stream are not reflected in the output audio file. A __mixed__ audio file consists of the first four RTP SSRC seen, mixed together into a single output file, which usually means that a bidirectional audio stream is produced. Audio mixing takes RTP timestamping into account, so gaps and pauses in the RTP media are reflected in the output audio to keep the multiple audio sources in sync. - __\-\-mix-method=direct__\|__channels__ Selects a method to mix multiple audio inputs into a single output file for __mixed__ output. The default is __direct__ which directly mixes all audio inputs together, producing a mixed output file with the same format as an audio file from a single input (__output-single__) would be. The __channels__ mixing method puts each audio input into its own audio channel in the output file, therefore producing a multi-channel output file. Up to four separate RTP SSRCs are supported for a mixed output, which means that if each input is mono audio, then the mixed output file would contain 4 audio channels. This mixing method requires an output file format which supports these kinds of multi-channel audio formats (e.g. __wav__). - __\-\-mix-num-inputs=__*INT* Change the number of recording channel in the output file. The value is between 1 to 4 (e.g. __4__, which is also the default value). - __\-\-output-chmod=__*INT* Change the file permissions of recording files to the given mode. Must be given as an octal integer, for example __0660__. - __\-\-output-chmod-dir=__*INT* Change the file permissions of recording files to the given mode. Must be given as an octal integer, for example __0700__ (which is also the default value). - __\-\-output-chown=__*USER*\|*UID* - __\-\-output-chgrp=__*GROUP*\|*GID* Change the ownership of recording files. Either user/group names or numeric IDs are supported. If the value is blank or given as __-1__ then the user/group is left unchanged. - __\-\-mysql-host=__*HOST*\|*IP* - __\-\-mysql-port=__*INT* - __\-\-mysql-user=__*USERNAME* - __\-\-mysql-pass=__*PASSWORD* - __\-\-mysql-db=__*STRING* Configuration for a MySQL storage backend. Details about calls and media files that are produced are stored into the database. Optionally the media files themselves can be stored as well (see __output-storage__). - __\-\-forward-to=__*PATH* Forward raw RTP packets to a Unix socket. Disabled by default. - __\-\-tcp-send-to=__*IP*:*PORT* - __\-\-tcp-resample=__*INT* - __\-\-tls-send-to=__*IP*:*PORT* - __\-\-tls-resample=__*INT* Send decoded audio over a TCP or TLS connection to the specified destination. Audio is sent as raw mono 16-bit PCM in the given sample rate. Only one of these option combinations (TCP or TLS) can be active at the same time. - __\-\-notify-uri=__*URI* Enable HTTP notification about finished recordings to the specified URI, which must be an HTTP or HTTPS URI. Information about the finished recording is provided via custom HTTP headers, all of which use a prefix of __X-Recording-__. - __\-\-notify-post__ Use HTTP POST instead of GET for the HTTP notification requests. The request body is empty even if POST is used. - __\-\-notify-no-verify__ Disable TLS peer certificate verification for HTTPS requests. - __\-\-notify-concurrency=__*INT* The maximum number of HTTP requests to perform simultaneously. - __\-\-notify-retries=__*INT* How many times to retry a failed HTTP notification before giving up. An exponential falloff time is used for each subsequent attempt, starting with 5 seconds. - __\-\-notify-record__ Attach recorded file to HTTP notification request. If enabled, notification request behaves as HTTP POST (ignoring __\-\-notify-post__). Note that this option is incompatible with DB-only storage as no recording file exists on storage (see __output-storage__). - __\-\-notify-purge__ Remove the local file if the HTTP request was successful. Note that this option is only useful if __\-\-notify-record__ is also enabled. - __\-\-output-mixed-per-media__ Forces one channel per media instead of SSRC. Note that this option is only useful if __\-\-output-mixed__ is also enabled. ## EXIT STATUS - __0__ Successful termination. - __1__ An error occurred. ## FILES - `/etc/rtpengine/rtpengine-recording.conf` Configuration file. ## SEE ALSO [rtpengine(8)](http://man.he.net/man8/rtpengine). rtpengine-mr12.5.1.22/docs/rtpengine.md000066400000000000000000002033341474347554000176430ustar00rootroot00000000000000--- title: rtpengine section: 8 header: NGCP rtpengine --- # rtpengine(8) manual page ## NAME rtpengine - NGCP proxy for RTP and other UDP based media traffic ## SYNOPSIS __rtpengine__ __\-\-interface__=*addr*... __\-\-listen-tcp__\|__\-\-listen-udp__\|__\-\-listen-ng__\|__\-\-listen-tcp-ng__\|__\-\-listen-http__\|__\-\-listen-https__=*addr*... \[*option*...\] ## DESCRIPTION The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic. It is meant to be used with the Kamailio SIP proxy and forms a drop-in replacement for any of the other available RTP and media proxies. ## OPTIONS Most of these options are indeed optional, with two exceptions. It's mandatory to specify at least one local IP address through __\-\-interface__, and at least one of the __\-\-listen-__*...* options must be given. All options can (and should) be provided in a config file instead of at the command line. See the __\-\-config-file__ option below for details. - __\-\-help__ Print the usage information. - __-v__, __\-\-version__ If called with this option, the __rtpengine__ daemon will simply print its version number and exit. - __\-\-codecs__ Print a list of supported codecs and exit. - __\-\-config-file=__*FILE* Specifies the location of a config file to be used. The config file is an *.ini* style config file, with all command-line options listed here also being valid options in the config file. For all command-line options, the long name version instead of the single-character version (e.g. __table__ instead of just __t__) must be used in the config file. For boolean options that are either present or not (e.g. __no-fallback__), a boolean value (either __true__ or __false__) must be used in the config file. If an option is given in both the config file and at the command line, the command-line value overrides the value from the config file. Options that can be specified multiple times on the command line must be given only once in the config file, with the multiple values separated by semicolons (see section [INTERFACES](https://metacpan.org/pod/INTERFACES) below for an example). As a special value, __none__ can be passed here to suppress loading of the default config file `/etc/rtpengine/rtpengine.conf`. - __\-\-config-section=__*STRING* Specifies the *.ini* style section to be used in the config file. Multiple sections can be present in the config file, but only one can be used at a time. The default value is __rtpengine__. A config file section is started in the config file using square brackets (e.g. __\[rtpengine\]__). - __-t__, __\-\-table=__*INT* Takes an integer argument and specifies which kernel table to use for in-kernel packet forwarding. See the section on in-kernel operation in the `README.md` for more detail. Optional and defaults to zero. If in-kernel operation is not desired, a negative number can be specified. - __\-\-nftables-chain=__*CHAIN* Name of the netfilter chain in which to create the custom forwarding rule required for in-kernel packet forwarding. Defaults to __rtpengine__. Only used if in-kernel packet forwarding is enabled (__table__ set to zero or higher). At startup __rtpengine__ creates a new netfilter chain with this name (in the __filter__ table) if it doesn't yet exist, or flushes (empties out) the chain if it already exists. It then creates a single forwarding rule in this chain to direct media packets into the kernel module for processing. The rule and the chain are deleted during shutdown. Explicitly setting this option to an empty string disables managing of a netfilter chain and prevents creation of the custom forwarding rule. - __\-\-nftables-base-chain=__*CHAIN* Name of the netfilter base chain to use as entry point for in-kernel packet forwarding. Defaults to __INPUT__ to match legacy __iptables__ setups. Only applicable if the option __nftables-chain__ is active. If the chain with this name doesn't exist during startup, __rtpengine__ will create it as a base chain. It then adds a single immediate-goto (jump) rule to the chain given by the __nftables-chain__ option. During shutdown this rule is again deleted. If this option is explicitly set to an empty string, then __rtpengine__ will directly create the chain given by __nftables-chain__ as a base chain and skip creating the immediate-goto rule. If this option is set to the special string __none__, then __rtpengine__ will create its custom chain and rule as it normally would, but will skip adding an immediate-goto rule to the custom chain. Doing so requires the operator to manually create this immediate-goto rule somewhere themselves. Otherwise in-kernel packet forwarding would be left inoperable. - __\-\-nftables-append__ With this option set, the netfilter rule created in the base chain is appended to the list of existing rules. The default is to prepend it (insert it at the beginning). - __\-\-nftables-family=ip__|__ip6__|__ip,ip6__ Configure for which netfilter address family to manage tables, chains, and rules. The default is to manage both IPv4 and IPv6 address families. - __\-\-nftables-start__ - __\-\-nftables-stop__ Instructs __rtpengine__ to execute the actions described under __nftables-chain__ and __nftables-base-chain__ and then immediately exit. Useful to manually re-create the rule(s) if they have gotten lost during runtime, and/or to manually manage creation and deletion of these rules from a script (typically in combination with an empty __nftables-chain=__ in the main config file). - __\-\-nftables-status__ Instructs __rtpengine__ to check for the existence of the managed netfilter rules and chains, print the result of check, and exit. The process will exit with code 0 if the check was successful, and 1 otherwise. - __-F__, __\-\-no-fallback__ Will prevent fallback to userspace-only operation if the kernel module is unavailable. In this case, startup of the daemon will fail with an error if this option is given. - __-S__, __\-\-save-interface-ports__ Will bind ports only on the first available local interface, of desired family, of logical interface. If no ports available on any local interface of desired family, give an error message. In this case, ICE will be broken. - __-i__, __\-\-interface=__\[*NAME*/\]*IP*\[!*IP*\] Specifies a local network interface for RTP. At least one must be given, but multiple can be specified. See the section [INTERFACES](https://metacpan.org/pod/INTERFACES) just below for details. - __-l__, __\-\-listen-tcp=__\[*IP*:\]*PORT* - __-u__, __\-\-listen-udp=__\[*IP46*:\]*PORT* - __-n__, __\-\-listen-ng=__\[*IP46*:\]*PORT* - __-n__, __\-\-listen-tcp-ng=__\[*IP46*:\]*PORT* These options each enable one of the 4 available control protocols if given and each take either just a port number as argument, or an *address:port* pair, separated by colon. At least one of these 3 options must be given. The __tcp__ protocol is obsolete. It was used by old versions of __OpenSER__ and its __mediaproxy__ module. It is provided for backwards compatibility. The __udp__ protocol is used by __Kamailio__'s __rtpproxy__ module. In this mode, __rtpengine__ can be used as a drop-in replacement for any other compatible RTP proxy. The __ng__ protocol is an advanced control protocol and can be used with __Kamailio__'s __rtpengine__ module. With this protocol, the complete SDP body is passed to __rtpengine__, rewritten and passed back to __Kamailio__. Several additional features are available with this protocol, such as ICE handling, SRTP bridging, etc. The __tcp-ng__ protocol is in fact the __ng__ protocol but transported over TCP. It is recommended to specify not only a local port number, but also __127.0.0.1__ as interface to bind to. Each option can be given multiple times to open multiple control ports of the same type. In the config file, the option can be given only once, with multiple addresses and ports separated by semicolons. - __-c__, __\-\-listen-cli=__\[*IP46*:\]*PORT* TCP IP and port to listen for the CLI (command line interface). This option can be given multiple times to open multiple CLI ports. In the config file, the option can be given only once, with multiple addresses and ports separated by semicolons. - __-g__, __\-\-graphite=__*IP46*:*PORT* Address of the graphite statistics server. - __-w__, __\-\-graphite-interval=__*INT* Interval of the time when information is sent to the graphite server. - __\-\-graphite-prefix=__*STRING* Add a prefix for every graphite line. - __\-\-graphite-timeout=__*INT* Sets after how much time (seconds) to force fail graphite socket connection, when graphite server is filtered out. If set to 0, there are no changes. - __-t__, __\-\-tos=__*INT* Takes an integer as argument and if given, specifies the TOS value that should be set in outgoing packets. The default is to leave the TOS field untouched. A typical value is 184 (__Expedited Forwarding__). - __\-\-control-tos=__*INT* Takes an integer as argument and if given, specifies the TOS value that should be set in the control-ng interface packets. The default is to leave the TOS field untouched. This parameter can also be set or listed via __rtpengine-ctl__. - __\-\-control-pmtu=want__\|__dont__ Forces a specific PMTU discovery behaviour on IPv4 UDP control sockets, overriding the system-wide default. If set to __want__ then path MTU discovery is performed, initially enabling the DF (don't fragment) bit on outgoing IPv4 packets until the path MTU has been discovered through reception of a "fragmentation needed" ICMP packet. If set to __dont__ then path MTU discovery is disabled, leaving the DF bit unset, and relying on the routers within the network path to perform any necessary fragmentation. The setting of __dont__ is useful in broken IPv4 environments without functioning PMTU discovery, for example in networks which unconditionally block all ICMP. - __-o__, __\-\-timeout=__*SECS* Takes the number of seconds as argument after which a media stream should be considered dead if no media traffic has been received. If all media streams belonging to a particular call go dead, then the call is removed from __rtpengine__'s internal state table. Defaults to 60 seconds. - __-s__, __\-\-silent-timeout=__*SECS* Ditto as the __\-\-timeout__ option, but applies to muted or inactive media streams. Defaults to 3600 (one hour). - __-a__, __\-\-final-timeout=__*SECS* The number of seconds since call creation, after call is deleted. Useful for limiting the lifetime of a call. This feature can be disabled by setting the parameter to 0. By default this timeout is disabled. - __\-\-offer-timeout=__*SECS* This timeout (in seconds) is applied to calls which only had an __offer__ but no __answer__. Defaults to 3600 (one hour). - __-p__, __\-\-pidfile=__*FILE* Specifies a path and file name to write the daemon's PID number to. - __-f__, __\-\-foreground__ If given, prevents the daemon from daemonizing, meaning it will stay in the foreground. Useful for debugging. - __-m__, __\-\-port-min=__*INT* - __-M__, __\-\-port-max=__*INT* Both take an integer as argument and together define the local port range from which __rtpengine__ will allocate UDP ports for media traffic relay. Default to 30000 and 40000 respectively. - __-L__, __\-\-log-level=__*INT* Takes an integer as argument and controls the highest log level which will be sent to syslog. This is merely the default log level used for logging subsystems (see below) that don't explicitly have a separate log level configured. The log levels correspond to the ones found in the [syslog(3)](http://man.he.net/man3/syslog) man page. The default value is __6__, equivalent to LOG\_INFO. The highest possible value is __7__ (LOG\_DEBUG) which will log everything. During runtime, the log level can be decreased by sending the signal SIGURS1 to the daemon and can be increased with the signal SIGUSR2. - __\-\-log-level-__*subsystem*=*INT* Configures a log level for one of the logging subsystems. A logging subsystem which doesn't have a log level configured explicitly takes its default value from the __log-level__ setting described above, with the exception of the __internals__ subsystem which by default has all logging disabled. The full list of logging subsystems can be viewed by pulling up the __\-\-help__ online help. Some (if not all) subsystems are: __core__, __spandsp__ (messages generated by SpanDSP itself), __ffmpeg__ (messages generated by ffmpeg libraries themselves), __transcoding__ (messages related to RTP/media transcoding), __codec__ (messages related to codec negotiation), __rtcp__, __ice__, __crypto__ (messages related to crypto/SRTP/SDES/DTLS negotiation), __srtp__ (messages related to RTP/SRTP en/decryption), __internals__ (disabled by default), __http__ (includes WebSocket), __control__ (messages related to control protocols, including SDP exchanges), __dtx__. - __\-\-log-facilty=daemon__\|__local0__\|...\|__local7__\|... The syslog facilty to use when sending log messages to the syslog daemon. Defaults to __daemon__. - __\-\-log-facilty-cdr=daemon__\|__local0__\|...\|__local7__\|... Same as __\-\-log-facility__ with the difference that only CDRs are written to this log facility. - __\-\-log-facilty-rtcp=daemon__\|__local0__\|...\|__local7__\|... Same as __\-\-log-facility__ with the difference that only RTCP data is written to this log facility. Be careful with this parameter since there may be a lot of information written to it. - __\-\-log-facilty-dtmf=daemon__\|__local0__\|...\|__local7__\|... Same as __\-\-log-facility__ with the difference that only DTMF events are written to this log facility. DTMF events are extracted from RTP packets conforming to RFC 4733, are encoded in JSON format, and written as soon as the end of an event is detected. - __\-\-log-format=default__\|__parsable__ Selects between multiple log output styles. The default is to prefix log lines with a description of the relevant entity, such as __\[CALLID\]__ or __\[CALLID port 12345\]__. The __parsable__ output style is similar, but makes the ID easier to parse by enclosing it in quotes, such as __\[ID="CALLID"\]__ or __\[ID="CALLID" port="12345"\]__. - __\-\-dtmf-log-dest=__*IP46*:*PORT* Configures a target address for logging detected DTMF event. Similar to the feature enabled by __\-\-log-facilty-dtmf__, but instead of writing detected DTMF events to syslog, this sends the JSON payload to the given address as UDP packets. - __\-\-dtmf-log-ng-tcp__ If __\-\-listen-tcp-ng__ is enabled, this will send DTMF events to all connected clients encoded in bencode format. - __\-\-dtmf-no-log-injects__ If __\-\-dtmf-no-log-injects__ is enabled, DTMF events resulting from a call to inject-DTMF won't be sent to __\-\-dtmf-log-dest=__ or __\-\-listen-tcp-ng__ - __\-\-dtmf-no-suppress__ Some RTP clients continue to send audio RTP packets during a DTMF event, resulting in both audio packets and DTMF packets appearing simultaneously. By default, when transcoding, __rtpengine__ suppresses audio packets during a DTMF event and will only send DTMF packets until the DTMF event is over. Setting this option disables this feature. - __\-\-log-srtp-keys__ Write SRTP keys to error log instead of debug log. - __-E__, __\-\-log-stderr__ Log to stderr instead of syslog. Only useful in combination with __\-\-foreground__. - __\-\-split-logs__ Split multi-line log messages into individual log messages so that each line receives its own log line prefix. - __\-\-max-log-line-length=__*INT* Split log lines into multiple lines when they exceed the character count given here. Can be set to a negative value to allow unlimited length log lines. Set to zero for the default value, which is unlimited if logging to stderr, or 500 if logging to syslog. - __\-\-no-log-timestamps__ Don't add timestamps to log lines written to stderr. Only useful in combination with __\-\-log-stderr__. - __\-\-log-name=__*STRING* Set the id to be printed in syslog. Defaults to __rtpengine__. - __\-\-log-mark-prefix=__*STRING* Prefix to be added to particular data fields in log files that are deemed sensitive and/or private information. Defaults to an empty string. - __\-\-log-mark-suffix=__*STRING* Suffix to be added to particular data fields in log files that are deemed sensitive and/or private information. Defaults to an empty string. - __\-\-num-threads=__*INT* How many worker threads to create, must be at least one. The default is to create as many threads as there are CPU cores available. If the number of CPU cores cannot be determined or if it is less than four, then the default is four. - __\-\-media-num-threads=__*INT* Number of threads to launch for media playback. Defaults to the same number as __num-threads__. This can be set to zero if no media playback functionality is desired. Media playback is actually handled by two threads: One for reading and decoding the media file, and another to schedule and send out RTP packets. So for example, if this option is set to 4, in total 8 threads will be launched. - __\-\-codec-num-threads=__*INT* Enables asynchroneous transcoding operation using the specified number of worker threads. This is an experimental feature and probably doesn't bring any benefits over normal synchroneous transcoding. - __\-\-poller-size=__*INT* Set the maximum number of event items (file descriptors) to retrieve from the underlying system poll mechanism per iteration. Defaults to 128. A lower number can lead to improved load-balancing among a large number of threads. - __\-\-thread-stack=__*INT* Set the stack size of each thread to the value given in kB. Defaults to 2048 kB. Can be set to -1 to leave the default provided by the OS unchanged. - __\-\-evs-lib-path=__*FILE* Points to the shared object file (__.so__) containing the reference implementation for the EVS codec. See the `README` for more details. - __\-\-sip-source__ The original __rtpproxy__ as well as older version of __rtpengine__ by default did not honour IP addresses given in the SDP body, and instead used the source address of the received SIP message as default endpoint address. Newer versions of __rtpengine__ reverse this behaviour and honour the addresses given in the SDP body by default. This option restores the old behaviour. - __\-\-dtls-passive__ Enables the __DTLS=passive__ flag for all calls unconditionally. - __-d__, __\-\-delete-delay=__*INT* Delete the call after the specified delay from memory. Can be set to zero for immediate call deletion. - __-r__, __\-\-redis=__\[*PW*@\]*IP*:*PORT*/*INT* Connect to specified Redis database (with the given database number) and use it for persistence storage. The format of this option is *ADDRESS*:*PORT*/*DBNUM*, for example *127.0.0.1:6379/12* to connect to the Redis DB number 12 running on localhost on the default Redis port. If the Redis database is protected with an authentication password, the password can be supplied by prefixing the argument value with the password, separated by an `@` symbol, for example *foobar@127.0.0.1:6379/12*. Note that this leaves the password visible in the process list, posing a security risk if untrusted users access the same system. As an alternative, the password can also be supplied in the shell environment through the environment variable __RTPENGINE\*REDIS\*AUTH\*PW__. On startup, __rtpengine__ will read the contents of this database and restore all calls stored therein. During runtime operation, __rtpengine__ will continually update the database's contents to keep it current, so that in case of a service disruption, the last state can be restored upon a restart. When this option is given, __rtpengine__ will delay startup until the Redis database adopts the master role (but see below). - __-w__, __\-\-redis-write=__\[*PW*@\]*IP*:*PORT*/*INT* Configures a second Redis database for write operations. If this option is given in addition to the first one, then the first database will be used for read operations (i.e. to restore calls from) while the second one will be used for write operations (to update states in the database). For password protected Redis servers, the environment variable for the password is __RTPENGINE\*REDIS\*WRITE\*AUTH\*PW__. When both options are given, __rtpengine__ will start and use the Redis database regardless of the database's role (master or slave). - __-k__, __\-\-subscribe-keyspace=__*INT* List of redis keyspaces to subscribe. If this is not present, no keyspaces are subscribed (default behaviour). Further subscriptions could be added/removed via __rtpengine-ctl ksadd/ksrm__. This may lead to enabling/disabling of the redis keyspace notification feature. - __\-\-redis-num-threads=__*INT* How many redis restore threads to create. The default is 4. - __\-\-redis-expires=__*INT* Expire time in seconds for redis keys. Default is 86400. - __\-\-active-switchover__ With this option enabled, any activity (such as signalling or media) on a call that was created through a Redis keyspace notification will make __rtpengine__ take control of that call. Without this option, an explicit command is required for __rtpengine__ to take (or relinquish) control of a call. - __-q__, __\-\-no-redis-required__ When this parameter is present or __NO\*REDIS\*REQUIRED='yes'__ or __'1'__ in the config file, __rtpengine__ starts even if there is no initial connection to redis databases (either to __-r__ or to __-w__ or to both redis). Be aware that if the __-r__ redis cannot be initially connected, sessions are not reloaded upon rtpengine startup, even though rtpengine still starts. - __\-\-redis-allowed-errors__ If this parameter is present and has a value >= 0, it will configure how many consecutive errors are allowed when communicating with a redis server before the redis communication will be temporarily disabled for that server. While the communication is disabled there will be no attempts to reconnect to redis or send commands to that server. Default value is -1, meaning that this feature is disabled. This parameter can also be set or listed via __rtpengine-ctl__. - __\-\-redis-disable-time__ This parameter configures the number of seconds redis communication is disabled because of errors. This works together with redis-allowed-errors parameter. The default value is 10. This parameter can also be set or listed via __rtpengine-ctl__. - __\-\-redis-cmd-timeout=__*INT* If this parameter is set to a non-zero value it will set the timeout, in milliseconds, for each command to the redis server. If redis does not reply within the specified timeout the command will fail. The default value is 0, meaning that the commands will be blocking without timeout. This parameter can also be set or listed via __rtpengine-ctl__; note that setting the parameter to 0 will require a reconnect on all configured redis servers. - __\-\-redis-connect-timeout=__*INT* This parameter sets the timeout value, in milliseconds, when connecting to a redis server. If the connection cannot be made within the specified timeout the connection will fail. Note that in case of failure, when reconnecting to redis, a __PING__ command is issued before attempting to connect so the __\-\-redis-cmd-timeout__ value will also be added to the total waiting time. This is useful if using __\-\-redis-allowed-errors__, when attempting to estimate the total lost time in case of redis failures. The default value for the connection timeout is 1000ms. This parameter can also be set or listed via __rtpengine-ctl__. - __-b__, __\-\-b2b-url=__*STRING* Enables and sets the URI for an XMLRPC callback to be made when a call is torn down due to packet timeout. The special code __%%__ can be used in place of an IP address, in which case the source address of the originating request (or alternatively the address specified using the __xmlrpc-callback__ __ng__ protocol option) will be used. - __-x__, __\-\-xmlrpc-format=__*INT* Selects the internal format of the XMLRPC callback message for B2BUA call teardown. 0 is for SEMS, 1 is for a generic format containing the call-ID only, 2 is for Kamailio. - __\-\-max-sessions=__*INT* Limit the number of maximum concurrent sessions. Set at startup via __max-sessions__ in config file. Set at runtime via __rtpengine-ctl__ util. Setting the __rtpengine-ctl set maxsessions 0__ can be used in draining rtpengine sessions. Enable feature: __max-sessions=1000__ Enable feature: __rtpengine-ctl set maxsessions__ >= 0 Disable feature: __rtpengine-ctl set maxsessions -1__ By default, the feature is disabled (i.e. maxsessions == -1). - __\-\-max-load=__*FLOAT* If the current 1-minute load average exceeds the value given here, reject new sessions until the load average drops below the threshold. - __\-\-max-cpu=__*FLOAT* If the current CPU usage (in percent) exceeds the value given here, reject new sessions until the CPU usage drops below the threshold. CPU usage is sampled in 0.5-second intervals. Only supported on systems providing a Linux-style `/proc/stat`. - __\-\-max-bandwidth=__*INT* If the current bandwidth usage (in bytes per second) exceeds the value given here, reject new sessions until the bandwidth usage drops below the threshold. Bandwidth usage is sampled in 1-second intervals and is based on received packets, not sent packets. - __\-\-max-recv-iters=__*INT* This parameter sets maximum continuous reading cycles in UDP poller loop, can help to avoid dropped packets errors on bursty streams (default 50). - __\-\-homer=__*IP46*:*PORT* Enables sending the decoded contents of RTCP packets to a Homer SIP capture server. The transport is HEP version 3 and payload format is JSON. This argument takes an IP address and a port number as value. Also enables sending the control NG traffic to a capturing agent. Payload format does not apply in this case. - __\-\-homer-protocol=udp__\|__tcp__ Can be either __udp__ or __tcp__ with __udp__ being the default. - __\-\-homer-id=__*INT* The HEP protocol used by Homer contains a "capture ID" used to distinguish different sources of capture data. This ID can be specified using this argument. - __\-\-homer-disable-rtcp-stats__ Disables the default behaviour that RTCP stats are sent when homer parameter is set. Sending of RTCP and NG are as such decoupled. - __\-\-homer-enable-ng__ Enables sending control NG packages to a Homer capturing software. The capturing agent part is not officialy supported OOTB, but it can be achieved with Kamailio by using the config. For this feature to work one has to set at least the homer parameter. - __\-\-homer-ng-capture-proto=__*INT* The HEP protocol used by Homer contains a "Capture protocol type" UINT8 used by the capturing agent and UI to make further processing. Some values are registered, but currently 0x3d values onwards are free. Default value is 0x3d (61). - __\-\-recording-dir=__*FILE* An optional argument to specify a path to a directory where PCAP recording files and recording metadata files should be stored. If not specified, support for call recording will be disabled. __rtpengine__ supports multiple mechanisms for recording calls. See __recording-method__ below for a list. The default recording method __pcap__ is described in this section. PCAP files will be stored within a `pcap` subdirectory and metadata within a `metadata` subdirectory. The format for a metadata file is (with a trailing newline): /path/to/recording-pcap.pcap SDP mode: offer SDP before RTP packet: 1 first SDP SDP mode: answer SDP before RTP packet: 1 second SDP ... SDP mode: answer SDP before RTP packet: 100 n-th and final SDP start timestamp (YYYY-MM-DDThh:mm:ss) end timestamp (YYYY-MM-DDThh:mm:ss) generic metadata There are two empty lines between each logic block of metadata. We write out all answer SDP, each separated from one another by one empty line. The generic metadata at the end can be any length with any number of lines. Metadata files will appear in the subdirectory when the call completes. PCAP files will be written to the subdirectory as the call is being recorded. Since call recording via this method happens entirely in userspace, in-kernel packet forwarding cannot be used for calls that are currently being recorded and packet forwarding will thus be done in userspace only. - __\-\-recording-method=pcap__\|__proc__\|__all__ Multiple methods of call recording are supported and this option can be used to select one. Currently supported are the method __pcap__, __proc__ and __all__. The default method is __pcap__ and is the one described above. The recording method __proc__ works by writing metadata files directly into the __recording-dir__ (i.e. not into a subdirectory) and instead of recording RTP packet data into pcap files, the packet data is exposed via a special interface in the `/proc` filesystem. Packets must then be retrieved from this interface by a dedicated userspace component (usually a daemon such as recording-daemon included in this repository). Packet data is held in kernel memory until retrieved by the userspace component, but only a limited number of packets (default 10) per media stream. If packets are not retrieved in time, they will be simply discarded. This makes it possible to flag all calls to be recorded and then leave it to the userspace component to decided whether to use the packet data for any purpose or not. In-kernel packet forwarding is fully supported with this recording method even for calls being recorded. The recording method __all__ will enable both __pcap__ and __proc__ at the same time. - __\-\-recording-format=raw__\|__eth__ When recording to pcap file in __raw__ (default) format, there is no ethernet header. When set to __eth__, a fake ethernet header is added, making each package 14 bytes larger. - __\-\-record-egress__ Apply media recording to egress media streams (as they are sent by __rtpengine__) instead of media streams as they are received. This makes it possible to include manipulated and generated media (such as from the __play media__ command) in the recordings. - __\-\-iptables-chain=__*STRING* This option enables explicit management of an iptables chain. When enabled, __rtpengine__ takes control of the given iptables chain, which must exist already prior to starting the daemon. Upon startup, __rtpengine__ will flush the chain, and then add one __ACCEPT__ rule for each media port (RTP/RTCP) opened. Each rule will exactly match the individual port and destination IP address, and will be created with the call ID as iptables comment. The rule will be deleted when the port is closed. This option allows creating a firewall with a default __DROP__ policy for the entire port range used by __rtpengine__ and then referencing the given iptables chain to only selectively allow the ports actually in use. Note that this applies only to media ports, and does not apply to any other ports (such as the control ports) used by __rtpengine__. Also note that the iptables API is not the most efficient one around and does not lend itself to fast dynamic creation and deletion of rules. If you have a high call volume, and especially many call attempts per second, you might experience significant performance impact. This is not a shortcoming of __rtpengine__ but rather of iptables and its API implementation in the Linux kernel. In such a case, it is recommended to add a static iptables rule for the entire media port range instead, and not use this option. - __\-\-scheduling=default__\|... - __\-\-priority=__*INT* - __\-\-idle-scheduling=default__\|... - __\-\-idle-priority=__*INT* These options control various thread scheduling parameters. The __scheduling__ and __priority__ settings are applied to the main worker threads, while the __idle-__ versions of these settings are applied to various lower priority threads, such as timer runs. The __scheduling__ settings take the name of one of the supported scheduler policies. Setting it to __default__ or __none__ is equivalent to not setting the option at all and leaves the system default in place. The strings __fifo__ and __rr__ refer to realtime scheduling policies. __other__ is the Linux default scheduling policy. __batch__ is similar to __other__ except for a small wake-up scheduling penalty. __idle__ is an extremely low priority scheduling policy. The Linux-specific __deadline__ policy is not supported by __rtpengine__. Not all systems necessarily supports all scheduling policies; refer to your system's sched(7) man page for details. The __priority__ settings correspond to the scheduling priority for realtime (__fifo__ or __rr__) scheduling policies and must be in the range of 1 (low) through 99 (high). For all other scheduling policies (including no policy specified), the __priority__ settings correspond to the __nice__ value and should be in the range of -20 (high) through 19 (low). Not all systems support thread-specific __nice__ values; on such a system, using these settings might have unexpected results. (Linux does support thread-specific __nice__ values.) Refer to your system's sched(7) man page. - __\-\-mysql-host=__*HOST*\|*IP* - __\-\-mysql-port=__*INT* - __\-\-mysql-user=__*USERNAME* - __\-\-mysql-pass=__*PASSWORD* Configuration for playing back media files that are stored in a __MySQL__ (or __MariaDB__) database. At least __mysql-host__ must be configured for this to work. The others are optional and default to their respective values from the __MySQL__/__MariaDB__ client library. - __\-\-mysql-query=__*STRING* Query to be used for retrieving media files from the database. No default exist, therefore this is a mandatory configuration for media playback from database. The provided query string must contain the single format placeholder __%llu__ and must not contain any other format placeholders. The ID value passed to __rtpengine__ in the __db-id__ key of the __play media__ message will be used in place of the placeholder when querying the database. An example configuration might look like this: mysql-query = select data from voip.files where id = %llu - __\-\-endpoint-learning=delayed__\|__immediate__\|__off__\|__heuristic__ Chooses one of the available algorithms to learn RTP endpoint addresses. The legacy setting is __delayed__ which waits 3 seconds before committing to an endpoint address, which is then learned from the first incoming RTP packet seen after this delay. The setting __immediate__ learns the endpoint address from the first incoming packet seen without the 3-second delay. Using __off__ disables endpoint learning altogether, likely breaking clients behind NAT. The setting __heuristic__ includes the 3-second delay, but source addresses seen from incoming RTP packets are ranked according to preference: If a packet with a source address and port matching the SDP address is seen, this address is used. Otherwise, if a packet with a matching source address (but a different port) is seen, that address is used. Otherwise, if a packet with a matching source port (but different address) is seen, that address is used. Otherwise, the source address of any incoming packet seen is used. - __\-\-jitter-buffer=__*INT* Size of (incoming) jitter buffer in packets. A value of zero (the default) disables the jitter buffer. The jitter buffer is currently only implemented for userspace operation. - __\-\-jb-clock-drift__ Enable clock drift compensation for the jitter buffer. - __\-\-debug-srtp__ Enable extra log messages to help debug SRTP issues. Per-packet details such as sequence numbers, ROC, payloads (plain text and encrypted), authentication tags, etc are recorded to the log. Every RTCP packet is logged in this way, while every 512th RTP packet is logged. Only applies to packets forwarded/processed in userspace. - __\-\-reject-invalid-sdp__ With this option set, refuse to process SDP bodies that could not be cleanly parsed, instead of skipping over the parsing error and processing the SDP anyway. Currently this only affects the processing of SDP bodies that end in a blank line. - __\-\-listen-http=__\[*IP*\|*HOSTNAME*:\]*PORT* - __\-\-listen-https=__\[*IP*\|*HOSTNAME*:\]*PORT* Enable listening for HTTP or WebSocket connections, or their TLS-secured counterparts HTTPS and WSS. If no interface is specified, then the listening socket will be bound to all interfaces. The HTTP listener supports both HTTP and WS, while the HTTPS listener supports both HTTPS and WSS. If HTTPS/WSS is enabled, a certificate must also be provided using the options below. - __\-\-https-cert=__*FILE* - __\-\-https-key=__*FILE* Provide a server certificate and corresponding private key for the HTTPS/WSS listener, in PEM format. - __\-\-http-threads=__*INT* Number of worker threads for HTTP/HTTPS/WS/WSS. If not specified, then the same number as given under __num-threads__ will be used. If no HTTP listeners are enabled, then no threads are created. - __\-\-software-id=__*STRING* Sets a free-form string that is used to identify this software towards external systems with, for example in outgoing ICE/STUN requests. Defaults to __rtpengine-__*VERSION*. The string is sanitised to replace all non-alphanumeric characters with a dash to make it universally usable. - __\-\-dtx-delay=__*INT* Processing delay in milliseconds to handle discontinuous transmission (DTX) or other transmission gaps. Defaults to zero (disabled) and is applicable to transcoded audio streams only. When enabled, delays processing of received packets for the specified time (much like a jitter buffer) in order to trigger DTX handling when a transmission gap occurs. The decoder is then instructed to fill in the missing time during a transmission gap, for example by generating comfort noise. The delay should be configured to be higher than the expected incoming jitter. - __\-\-max-dtx=__*INT* Maximum duration for DTX handling in seconds. If no further RTP media is received within this time frame, then DTX processing will stop. Can be set to zero or negative to disable and keep DTX processing on indefinitely. Defaults to 30 seconds. - __\-\-dtx-buffer=__*INT* - __\-\-dtx-lag=__*INT* These two options together control the maximum number of packets and amount of audio that is allowed to be held in the DTX buffer. The __dtx-buffer__ option limits the number of packets held in the DTX buffer, while the __dtx-lag__ option limits the amount of audio (in milliseconds) to be held in the DTX buffer. A DTX buffer overflow is declared when both limits are exceeded, in which case DTX processing is sped up by __dtx-shift__ milliseconds. The defaults are 10 packets and 100 milliseconds. - __\-\-dtx-shift=__*INT* Amount of time in milliseconds that DTX processing is shifted forward (sped up) or backwards (delayed) in case of a DTX buffer overflow or underflow. An underflow occurs when RTP packets are received slower than expected, while an overflow occurs when packets are received faster than expected. If this value is set to zero then no adjustments of the DTX timer will be made. Instead, in order to keep up with the flow of received RTP packets, packets will be dropped or additional DTX audio will be generated as needed. - __\-\-dtx-cn-params=__*INT* Specify one comfort noise parameter. This option follows the same format as __cn-payload__ described below. This option is applicable to audio generated to fill in transmission gaps during a DTX event. The default setting is no value, which means silence will be generated to fill in DTX gaps. If any CN parameters are configured, the parameters will be passed to an RFC 3389 CN decoder, and the generated comfort noise will be used to fill in DTX gaps. - __\-\-amr-dtx=native__\|__CN__ Select the DTX behaviour for AMR codecs. The default is use the codec's internal processing: during a DTX event, a "no data" frame is passed to the decoder and the output is used as audio data. If __CN__ is selected here, the same DTX mechanism as other codecs use is used for AMR, which is to fill in DTX gaps with either silence or RFC 3389 comfort noise (see __dtx-cn-params__). This also affects processing of received SID frames: SID frames would not be passed to the codec but instead be replaced by generated silence or comfort noise. - __\-\-silence-detect=__*FLOAT* Enable silence detection and specify threshold in percent. This option is applicable to transcoded stream only and defaults to zero (disabled). When enabled, silence detection will be performed on all transcoded audio streams. The threshold specified here is the sensitivity for detecting silence: higher thresholds result in more audio to be detected as silence, while lower thresholds result in less audio to be detected as silence. The threshold is specified as percent between zero and 100. If set to 100, then all audio would be detected as silence; if set to 50, then any audio that is quieter than 50% of the maximum volume would be detected as silence; and so on. Setting it to zero disables silence detection. To only detect silence that is very near or equal to absolute silence, set this value to a low number such as 0.01. (For certain codecs such as PCMA, a higher minimum threshold is required to detect complete silence, as their compressed payloads don't decode to actual silence but instead have a residual DC offset. For PCMA the minimum value is 0.013.) Audio that is detected as silence will be replaced by comfort noise as specified by the __cn-payload__ option (see below). Currently this is applicable only to RTP peers that have advertised support for the __CN__ RTP payload type, in which case the silence audio frames will be replaced by __CN__ RTP frames. - __\-\-cn-payload=__*INT* Specify one comfort noise parameter. This option can be given multiple times and the format follows RFC 3389. When specified at the command line, list the __\-\-cn-payload=__ option multiple times, each one specifying a single CN parameter. When used in the config file, list the option only a single time and list multiple CN parameters separated by semicolons (e.g. *cn-payload = 20;40;60*). The first CN payload value given is the noise level, specified as -dBov as per RFC 3389. This means that a noise level of zero corresponds to maximum volume, while higher numbers correspond to lower volumes. The highest allowable number is 127, corresponding to -127 dBov, which is near silence. Subsequent CN payload values carry spectral information (reflection coefficients) as per RFC 3389. Allowable values for each coefficient are between 0 and 254. Specifying spectral information is optional and the number of coefficients listed (model order) is variable. This option is applicable only to __CN__ packets generated from the silence detection mechanism described above. The configured CN parameters are used directly as payload of __CN__ packets sent by __rtpengine__. The default values are 32 (-32 dBov) for the noise level and no spectral information. - __\-\-player-cache__ Enable caching of encoded media packets for media player. This is applicable for media playback initiated through the *play media* command. When enabled __rtpengine__ will not simply decode given media files and then encode the media to RTP on demand and on the fly, but will rather decode and encode each media file in full the first time playback is requested, and then cache the resulting RTP packets in memory. This is done once for each media file and for each output RTP codec requested. Caching is done based on unique file name (with no consideration given to different file names that may point to the same file), or integer index for media files played from database. No verification of changing content of files or database entries is done. Media files provided as binary *blob* are also cached, although in this case a hash over the entire media file must be performed, therefore this usage is not recommended. It's not possible to choose a different *start-pos* for playback with this option enabled. RTP data is cached and retained in memory for the lifetime of the process. - __\-\-kernel-player=__*INT* - __\-\-kernel-player-media=__*INT* Enables and configures the kernel-based media player. Disabled by default and only available if the kernel module is in use, and requires __player-cache__ to also be enabled. When enabled, media playback will be handled by a set of kernel threads. The option __kernel-player__ defaults to zero and needs to set to non-zero to enable the feature. The number given to the option is the maximum number of concurrent kernel media players that can be used. The option __kernel-player-media__ configures the maximum number of unique media "files" that can be stored for playback in the kernel module. Media files requested for playback are first decoded by the __player-cache__ feature, and then given to the kernel module in a pre-encoded format for quick playback. Defaults to 128. Both player slots and media slots are shared among all instances of *rtpengine* (using different kernel table IDs) running on a system using the same kernel module. Unused slots use minimal resources. - __audio-buffer-length=__*INT* Set the buffer length used by the audio player (see below) in milliseconds. The default is 500 milliseconds. The buffer must be long enough to accommodate at least two frames of audio from all contributing sources, which means at least 40 ms or 60 ms for most cases. If media playback (via the __play media__) command is desired, then the buffer must be able to accommodate at least one full frame from the source media file, whose length can vary depending on the format of the source media file. For 8 kHz __.wav__ files this is 256 ms (2048 samples). Therefore 500 ms is the recommended value. - __audio-buffer-delay=__*INT* Initial delay for new sources contributing to an audio buffer (used by the audio player, see below) in milliseconds. The default is 5 ms. The initial delay is meant to compensate for varying inter-arrival times of media packets (jitter). If set too low, intermittent high jitter will result in gaps in the output audio. If set too high, output audio will have an unnecessary latency added to it. - __audio-player=on-demand__\|__play-media__\|__transcoding__\|__always__ Define when to enable the audio player if not explicitly instructed otherwise. The default setting is __on-demand__. Enabling the audio player for a party to a call makes __rtpengine__ produce its own audio RTP stream (instead of just forwarding an audio stream received from elsewhere). The audio is generated from a circular audio buffer (see above) and all contributing audio sources are mixed into that one audio buffer. Contributing audio sources are audio streams received from elsewhere (that would otherwise simply be forwarded) and audio produced by the __play media__ command. With this set to __on-demand__, the audio player is enabled only if explicitly requested by the user for a particular call via the __audio-player=__ option used in a signalling message. When set to __play-media__, the audio player is enabled only while media playback via the __play media__ command is active. After media playback is finished, the audio player is again disabled and audio goes back to simply being forwarded. Setting this option to __transcoding__ leaves the audio player disabled unless any sort of transcoding is required for a call. With a setting of __always__, the audio player is enabled for all calls, unless explicitly disabled via the __audio-player=__ option used in a signalling message. This forces all audio through the transcoding engine, even if input and output codecs are the same. Audio player usage can be changed on a call-by-call basis by including the __audio-player=__ option in a signalling message. This option supports the values __transcoding__ and __always__, which result in the behaviour described just above, and __off__ which forces the audio player to be disabled regardless of this setting. - __\-\-poller-per-thread__ Enable 'poller per thread' functionality: for every worker thread (see the \-\-num-threads option) a poller will be created. With this option on, it is guaranteed that only a single thread will ever read from a particular socket, thus maintaining the order of the packets. Might help when having issues with DTMF packets (RFC 2833). - __\-\-io-uring__ Enable **experimental** support for `io_uring`. Requires Linux kernel 6.0 or later. When enabled, instead of the usual polling mechanism each worker thread will set up its own `io_uring` and use it for polling, as well as directly sending and receiving certain network data. In particular userspace media data is sent and received directly via `io_uring`. _NOTE: As of the time of writing, worker threads sleeping in an `io_uring` poll are attributed to the host system as _I/O wait_ CPU usage, with up to 99% CPU time spent in _I/O wait_ (depending on the number of worker threads), but without being attributed to any process or thread. This is not actual CPU usage but rather indicates time spent waiting for a network event, and so should be considered the same as idle CPU time._ - __\-\-io-uring-buffers=__*INT* Number of `io_uring` entries in the buffer allocated from the kernel per thread. Defaults to 16384. Must be large enough so that submission entries and completion entries are always available when needed. - __\-\-dtls-cert-cipher=prime256v1__\|__RSA__ Choose the type of key to use for the signature used by the self-signed certificate used for DTLS. The previous default was __RSA__. The current default and the only other option is __prime256v1__ which is a 256-bit elliptic-curve key. - __\-\-dtls-signature=SHA-256__\|__SHA-1__ Choose the hash algorithm to use for the signature used by the self-signed certificate used for DTLS. The default is __SHA-256__. Not to be confused with the hash algorithm used for the certificate fingerprint inserted into the SDP (__a=fingerprint:__), which is independent of the certificate's signature and can be selected during runtime. - __\-\-dtls-rsa-key-size=__*INT* Size in bits of the RSA key used by the DTLS certificate, if RSA is in use. Default is 2048 bits. - __\-\-dtls-ciphers=__*STRING* Ciphers allowed during the DTLS key exchange (not to be confused with the cipher used by the DTLS certificate). The format of this string is an OpenSSL cipher list. The default is __DEFAULT:!NULL:!aNULL:!SHA256:!SHA384:!aECDH:!AESGCM+AES256:!aPSK__ - __\-\-dtls-mtu=__*INT* Set DTLS MTU to enable fragmenting of large DTLS packets. Defaults to 1200. Minimum value is 576 as the internet protocol requires that hosts must be able to process IP datagrams of at least 576 bytes (for IPv4) or 1280 bytes (for IPv6). This does not preclude link layers with an MTU smaller than this minimum MTU from conveying IP data. Internet IPv4 path MTU is 68 bytes. - __\-\-mqtt-host=__*HOST*\|*IP* Host or IP address of the Mosquitto broker to connect to. Must be set to enable exporting stats to Mosquitto. - __\-\-mqtt-port=__*INT* Port of the Mosquitto broker. Defaults to 1883. - __\-\-mqtt-id=__*STRING* Client ID to use for Mosquitto. Default is a generated random string. - __\-\-mqtt-keepalive=__*INT* Keepalive interval in seconds. Defaults to 30. - __\-\-mqtt-user=__*USERNAME* - __\-\-mqtt-pass=__*PASSWORD* Credentials to connect to Mosquitto broker. At least a username must be given to enable authentication. - __\-\-mqtt-cafile=__*FILE* - __\-\-mqtt-capath=__*PATH* - __\-\-mqtt-certfile=__*FILE* - __\-\-mqtt-keyfile=__*FILE* - __\-\-mqtt-tls-alpn=__*STRING* Enable TLS to connect to Mosquitto broker, optionally with client certificate authentication. At least __cafile__ or __capath__ must be given to enable TLS. To enable client certificate authentication, both __certfile__ and __keyfile__ must be set. All files must be in PEM format. Password-proteted files are not supported. The __tls-alpn__ can be set (e.g. mqtt) if a service like AWS IoT Core shares the same TLS port for two different network protocols. - __\-\-mqtt-publish-qos=0__\|__1__\|__2__ QoS value to use for publishing to Mosquitto. See Mosquitto docs for details. - __\-\-mqtt-publish-topic=__*STRING* Topic string to use for publishing to Mosquitto. Must be set to a non-empty string. - __\-\-mqtt-publish-interval=__*MILLISECONDS* Interval in milliseconds to publish to Mosquitto. Defaults to 5000 (5 seconds). - __\-\-mqtt-publish-scope=global__\|__summary__\|__call__\|__media__ When set to __summary__, one message will be published to Mosquitto every *interval* milliseconds containing all global stats. A setting of __global__ has the same effect as __summary__ but will also contain a list of all running calls with stats for each call. When set to __call__, one message per call will be published to Mosquitto with stats for that call every *interval* milliseconds, plus one message every *interval* milliseconds with global stats. When set to __media__, one message per call media (usually one media per call participant, so usually 2 media per call) will be published to Mosquitto with stats for that call media every *interval* milliseconds, plus one message every *interval* milliseconds with global stats. - __\-\-mos=CQ__\|__LQ__ MOS (Mean Opinion Score) calculation formula. Defaults to __CQ__ (conversational quality) which takes RTT into account and therefore requires peers to correctly send RTCP. If set to __LQ__ (listening quality) RTT is ignored, allowing a MOS to be calculated in the absence of RTCP. - __\-\-measure-rtp__ Enable measuring RTP metrics even for plain RTP passthrough scenarios. Without that option, RTP metrics are measured only in transcoding scenarios. - __\-\-rtcp-interval=__*INT* Delay in milliseconds between RTCP packets when generate-rtcp flag is on. The effective value includes the random dispersion between 0..1 seconds on top, so the timer execution period is randomized and up to 1 sec greater than given value in ms. Defaults to __5000__ ms (5 seconds). - __\-\-socket-cpu-affinity=__*INT* Enables setting the socket CPU affinity via the __SO\*INCOMING\*CPU__ socket option if available. The default value is zero which disables this feature. If set to a positive number then the CPU affinity for all sockets belonging to the same call will be set to the same value. The number specifies the upper limit of the affinity to be set, and values will be used in a round-robin fashion (e.g. if set to __8__ then the values __0__ through __7__ will be used to set the affinity). If this option is set to a negative number, then the number of available CPU cores will be used. ## INTERFACES The command-line options __-i__ or __\-\-interface__, or equivalently the __interface__ config file option, specify local network interfaces for RTP. At least one must be given, but multiple can be specified. The format of the value is \[*NAME*/\]*IP*\[!*IP*\] with *IP* being either an IPv4 address, an IPv6 address, the name of a system network interface (such as *eth0*), a DNS host name (such as *test.example.com*), or __any__. The possibility of configuring a network interface by name rather than by address should not be confused with the logical interface name used internally by __rtpengine__ (as described below). The *NAME* token in the syntax above refers to the internal logical interface name, while the name of a system network interface is used in place of the first *IP* token in the syntax above. For example, to configure a logical network interface called *int* using all the addresses from the existing system network interface *eth0*, you would use the syntax *int/eth0*. (Unless omitted, the second *IP* token used for the advertised address must be an actual network address and cannot be an interface name.) If DNS host names are used instead of addresses or interface names, the lookup will be done only once during daemon start-up. The special keyword __any__ can be used to listen on any and all available local interface addresses except from loopback devices. This keyword should only be given once in place of a more explicit interface configuration. To configure multiple interfaces using the command-line options, simply present multiple __-i__ or __\-\-interface__ options. When using the config file, only use a single __interface__ line, but specify multiple values separated by semicolons (e.g. *interface = internal/12.23.34.45;external/23.34.45.54*). ### System Network Interfaces If an interface option is given using a system interface name in place of a network address, and if multiple network address are found configured on that network interface, then __rtpengine__ behaves as if multiple __\-\-interface__ options had been specified. For example, if interface *eth0* exists with both addresses *192.168.1.120* and *2001:db8:85a3::7334* configured on it, and if the option *\-\-interface=ext/eth0* is given, then __rtpengine__ would behave as if both options *\-\-interface=ext/192.168.1.120* and *\-\-interface=ext/2001:db8:85a3::7334* had been specified. ### Advertised Address The second IP address after the exclamation point is optional and can be used if the address to advertise in outgoing SDP bodies should be different from the actual local address. This can be useful in certain cases, such as your SIP proxy being behind NAT. For example, *\-\-interface=10.65.76.2!192.0.2.4* means that *10.65.76.2* is the actual local address on the server, but outgoing SDP bodies should advertise *192.0.2.4* as the address that endpoints should talk to. Note that you may have to escape the exclamation point from your shell when using command-line options, e.g. using *\\!*. ### Interface Names Giving an interface a name (separated from the address by a slash) is optional; if omitted, the name __default__ is used. Names are useful to create logical interfaces which consist of one or more local addresses. It is then possible to instruct __rtpengine__ to use particular interfaces when processing an SDP message, to use different local addresses when talking to different endpoints. The most common use case for this is to bridge between one or more private IP networks and the public internet. For example, if clients coming from a private IP network must communicate their RTP with the local address *10.35.2.75*, while clients coming from the public internet must communicate with your other local address *192.0.2.67*, you could create one logical interface *pub* and a second one *priv* by using *\-\-interface=pub/192.0.2.67 \-\-interface=priv/10.35.2.75*. You can then use the __direction__ option to tell __rtpengine__ which local address to use for which endpoints (either *pub* or *priv*). If multiple logical interfaces are configured, but the __direction__ option is not given in a particular call, then the first interface given on the command line will be used. ### Multiple Addresses per Interface It is possible to specify multiple addresses for the same logical interface (the same name). Most commonly this would be one IPv4 addrsess and one IPv6 address, for example: *\-\-interface=192.168.63.1 \-\-interface=fe80::800:27ff:fe00:0*. In this example, no interface name is given, therefore both addresses will be added to a logical interface named __default__. You would use the __address family__ option to tell __rtpengine__ which address to use in a particular case. It is also possible to have multiple addresses of the same family in a logical network interface. In this case, the first address (of a particular family) given for an interface will be the primary address used by __rtpengine__ for most purposes. Any additional addresses will be advertised as additional ICE candidates with increasingly lower priority. This is useful on multi-homed systems and allows endpoints to choose the best possible path to reach the RTP proxy. If ICE is not being used, then additional addresses will go unused, even though ports would still get allocated on those interfaces. ### Round-Robin Address Selection Another option is to give interface names in the format *BASE:SUFFIX*. This allows interfaces to be used in a round-robin fashion, useful for load-balancing the port ranges of multiple interfaces. For example, consider the following configuration: *\-\-interface=pub:1/192.0.2.67 \-\-interface=pub:2/10.35.2.75*. These two interfaces can still be referenced directly by name (e.g. *direction=pub:1*), but it is now also possible to reference only the base name (i.e. *direction=pub*). If the base name is used, one of the two interfaces is selected in a round-robin fashion, and only if the interface actually has enough open ports available. This makes it possible to effectively increase the number of available media ports across multiple IP addresses. There is no limit on how many interfaces can share the same base name. It is possible to combine the *BASE:SUFFIX* notation with specifying multiple addresses for the same interface name. An advanced example could be (using config file notation, and omitting actual network addresses): interface = pub:1/IPv4;pub:1/IPv4;pub:1/IPv6;pub:2/IPv4;pub:2/IPv6;pub:3/IPv6;pub:4/IPv4 In this example, when *direction=pub* is IPv4 is needed as a primary address, either *pub:1*, *pub:2*, or *pub:4* might be selected. When *pub:1* is selected, one IPv4 and one IPv6 address will be used as additional ICE alternatives. For *pub:2*, only one IPv6 is used as ICE alternative, and for *pub:4* no alternatives would be used. When IPv6 is needed as a primary address, either *pub:1*, *pub:2*, or *pub:3* might be selected. If at any given time not enough ports are available on any interface, it will not be selected by the round-robin algorithm. It is possible to use the round-robin algorithm even if the __direction__ is not given. If the first given interface has the *BASE:SUFFIX* format then the round-robin algorithm is used and will select interfaces with the same *BASE* name. ### Alias Names Interface alias names can be created using the *ALIAS=NAME* syntax. The alias must be listed after the primary interface that it references. For example, to create an actual logical interface *pub1* and then an alias *pub* for that interface: interface = pub1/IPv4;pub=pub1 Interface aliases are useful in combination with Redis replication. If an interface is referred to via an alias name (e.g. *direction=pub*), then the interface's actual name (*pub1* in this example) is propagated into the Redis storage and thus to any dependent standby instances. These standby instances can then have different address configurations for that interface, which makes it possible to facilitate failover with static addressing (for example behind an IP load balancer). ### Legacy Protocols If you are not using the NG protocol but rather the legacy UDP protocol used by the __rtpproxy__ module, the interfaces must be named __internal__ and __external__ corresponding to the __i__ and __e__ flags if you wish to use network bridging in this mode. ## EXIT STATUS - __0__ Successful termination. - __1__ An error occurred. ## ENVIRONMENT - __RTPENGINE\_REDIS\_AUTH\_PW__ Redis server password for persistent state storage. - __RTPENGINE\_REDIS\_WRITE\_AUTH\_PW__ Redis server password for write operations, if __\-\-redis__ has been specified, in which case the one specified in __\-\-redis__ will be used for read operations only. ## FILES - `/etc/rtpengine/rtpengine.conf` Configuration file. ## EXAMPLES A typical command line (enabling both UDP and NG protocols) may look like: rtpengine --table=0 --interface=10.64.73.31 --interface=2001:db8::4f3:3d \ --listen-udp=127.0.0.1:22222 --listen-ng=127.0.0.1:2223 --tos=184 \ --pidfile=/run/rtpengine.pid ## SEE ALSO [kamailio(8)](http://man.he.net/man8/kamailio). rtpengine-mr12.5.1.22/docs/tcpng_control_protocol.md000066400000000000000000000003621474347554000224400ustar00rootroot00000000000000# The *tcp-ng* Control Protocol *rtpengine* also has support for *ng* control protocol where transport is TCP (If enabled in the config via the --listen-tcp-ng option). Everything said for UDP based *ng* protocol counts for TCP variant too. rtpengine-mr12.5.1.22/docs/tests.md000066400000000000000000000126241474347554000170120ustar00rootroot00000000000000Unit-tests ========== This is the page, which describes how to prepare unit tests for newly introduced features in rtpengine. --- Adding of new tests is a required procedure, which allows us to cover fixes/changes/feature being added into rtpengine.\ They make sure, that: * first, new changes being added are reflecting the intention of these change, and hence give expected results * second, they will make sure, that this expected behavior (in this very scope) won’t get broken in the future, by newer changes. And even if, we will notice that and will make sure to fix it. The main folder, as regularly, is: `t/` \ Here there is a bunch of files written in Perl, Python and C, dedicated for different kind of tests. _NOTE: They are being run with `make check` and during packaging._ _Nevertheless, not everything in that directory is actually run as part of `make check` (some are for manual testing)._ These tests actually spawn a real rtpengine process in a fake network environment (see `tests-preload.c` and its invocation in the `makefile`, and also the command-line options given at the start of each of these scripts) and then facilitate real SDP offer/answer exchanges and test real RTP forwarding against it. This is the closest possible way to simulate real SIP calls. The code supporting these tests is written using a few Perl libraries stored in `perl/` folder of the project, which are able to do the signalling, SRTP, ICE, etc. Most importantly, there are some unit tests (e.g. `aead-aes-crypt` or `test-transcode`), but the most comprehensive test scripts are the ones called `auto-daemon-tests`. Let’s take as an example the: `auto-daemon-tests.pl` \ This one has a huge amount of basic tests related to mostly general things rtpengine does. Let’s have a look into one of the tests, in this case ‘SDP version force increase': ``` new_call; # there is no 'monologue->last_out_sdp', but the version still gets increased offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, <last_out_sdp' and it's equal to the newly given SDP, # but the version still gets increased offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, <last_out_sdp' and it's not equal to the newly given SDP, # and the version gets increased, as if that would be increased with 'sdp-version'. offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, < ['force-increment-sdp-ver']` - is a given flag (emulates as if we would add this flag, when calling the `rtpengine_offer()`) * first instance of the SDP (so before `----------------------------`) - is what we hand to rtpengine * second instance after that, is what we expect rtpengine to generate for us (as result) * `SDP` - is an end of given SDPs for this sub-test _NOTE: Every new test (new_call) can have many sub-tests included. So you can wrap into that something within one big scope, such as tests related to the SDP session version._ Generally said, if there is a new thing/feature being added into rtpengine, and this can potentially affect the behavior (even under some really specific circumstances), it’s important to cover this change with tests. For example: to emulate the call with a newly given flag and see that the expected results is given. _NOTE: run `make daemon-tests-main` inside of `/t` can be used to run the tests manually._ Individually the unit tests can be executed normally, but the `auto-daemon-tests` need special instrumentation. Either use `make daemon-tests-X` from within `t/`, or if there is a need to execute the test script manually and separately from rtpengine: * Make sure `tests-preload.so` exists (`make -C t tests-preload.so`) * In one shell: `LD_PRELOAD=t/tests-preload.so daemon/rtpengine --config-file=none -t -1 -i 203.0.113.1 ...` (CLI options taken from respective test script) * In another shell: `LD_PRELOAD=t/tests-preload.so RTPE_TEST_NO_LAUNCH=1 perl -Iperl t/auto-daemon-tests.pl` This even works with rtpengine running under a debugger or valgrind. Another set of tests that is included is to run all of the `make check` tests under libasan. The top-level `make asan-check` target exists for that purpose and requires an initially clean source directory to execute properly. rtpengine-mr12.5.1.22/docs/transcoding.md000066400000000000000000000251631474347554000201650ustar00rootroot00000000000000# Transcoding Currently transcoding is supported for audio streams. The feature can be disabled on a compile-time basis, and is enabled by default. Even though the transcoding feature is available by default, it is not automatically engaged for normal calls. Normally *rtpengine* leaves codec negotiation up to the clients involved in the call and does not interfere. In this case, if the clients fail to agree on a codec, the call will fail. The transcoding feature can be engaged for a call by instructing *rtpengine* to do so by using one of the transcoding options in the *ng* control protocol, such as `transcode` or `ptime` (see below). If a codec is requested via the `transcode` option that was not originally offered, transcoding will be engaged for that call. With transcoding active for a call, all unsupported codecs will be removed from the SDP. Transcoding happens in userspace only, so in-kernel packet forwarding will not be available for transcoded codecs. However, even if the transcoding feature has been engaged for a call, not all codecs will necessarily end up being transcoded. Codecs that are supported by both sides will simply be passed through transparently (unless repacketization is active). In-kernel packet forwarding will still be available for these codecs. The following codecs are supported by *rtpengine*: * G.711 (a-Law and µ-Law) * G.722 * G.723.1 * G.729 * Speex * GSM * iLBC * Opus * AMR (narrowband and wideband) * EVS (if supplied -- see below) Codec support is dependent on support provided by the `ffmpeg` codec libraries, which may vary from version to version. Use the `--codecs` command line option to have *rtpengine* print a list of codecs and their supported status. The list includes some codecs that are not listed above. Some of these are not actual VoIP codecs (such as MP3), while others lack support for encoding by *ffmpeg* at the time of writing (such as QCELP or ATRAC). If encoding support for these codecs becomes available in *ffmpeg*, *rtpengine* will be able to support them. Audio format conversion including resampling and mono/stereo up/down-mixing happens automatically as required by the codecs involved. For example, one side could be using stereo Opus at 48 kHz sampling rate, and the other side could be using mono G.711 at 8 kHz, and *rtpengine* will perform the necessary conversions. If repacketization (using the `ptime` option) is requested, the transcoding feature will also be engaged for the call, even if no additional codecs were requested. ## G.729 support As *ffmpeg* does not currently provide an encoder for G.729, transcoding support for it is available via the [bcg729](https://www.linphone.org/technical-corner/bcg729/) library (mirror on [GitHub](https://github.com/BelledonneCommunications/bcg729)). The build system looks for the *bcg729* headers in a few locations and uses the library if found. If the library is located elsewhere, see `daemon/Makefile` to control where the build system is looking for it. In a Debian build environment, `debian/control` lists a build-time dependency on *bcg729*. Newer Debian releases (currently *bullseye*, *bookworm*, *sid*) include *bcg729* as a package so nothing needs to be done there. Older Debian releases do not currently include a *bcg729* package, but one can be built locally using these instructions on [GitHub](https://github.com/ossobv/bcg729-deb). *Sipwise* provides a pre-packaged version of this as part of our [C5 CE](https://www.sipwise.com/products/class-5-softswitch-carrier-grade-for-voice-over-ip/) product which is [available here](https://deb.sipwise.com/spce/mr6.2.1/pool/main/b/bcg729/). Alternatively the build dependency can be removed from `debian/control` or by switching to a different Debian build profile. Set the environment variable `export DEB_BUILD_PROFILES="pkg.ngcp-rtpengine.nobcg729"` (or use the `-P` flag to the *dpkg* tools) and then build the *rtpengine* packages. ## DTMF transcoding *Rtpengine* supports transcoding between RFC 2833/4733 DTMF event packets (`telephone-event` payloads) and in-band DTMF audio tones. When enabled, *rtpengine* translates DTMF event packets to in-band DTMF audio by generating DTMF tones and injecting them into the audio stream, and translates in-band DTMF tones by running the audio stream through a DSP, and generating DTMF event packets when a DTMF tone is detected. Support for DTMF transcoding can be enabled in one of two ways: * In the forward direction, DTMF transcoding is enabled by adding the codec `telephone-event` to the list of codecs offered for transcoding. Specifically, if the incoming SDP body doesn't yet list `telephone-event` as a supported codec, adding the option *codec → transcode → telephone-event* would enable DTMF transcoding. The receiving RTP client can then accept this codec and start sending DTMF event packets, which *rtpengine* would translate into in-band DTMF audio. If the receiving RTP client also offers `telephone-event` in their behalf, *rtpengine* would then detect in-band DTMF audio coming from the originating RTP client and translate it to DTMF event packets. * In the reverse direction, DTMF transcoding is enabled by adding the option `always transcode` to the `flags` if the incoming SDP body offers `telephone-event` as a supported codec. If the receiving RTP client then rejects the offered `telephone-event` codec, DTMF transcoding is then enabled and is performed in the same way as described above. Enabling DTMF transcoding (in one of the two ways described above) implicitly enables the flag `always transcode` for the call and forces all of the audio to pass through the transcoding engine. Therefore, for performance reasons, this should only be done when really necessary. ## T.38 *Rtpengine* can translate between fax endpoints that speak T.38 over UDPTL and fax endpoints that speak T.30 over regular audio channels. Any audio codec can theoretically be used for T.30 transmissions, but codecs that are too compressed will make the fax transmission fail. The most commonly used audio codecs for fax are the G.711 codecs (`PCMU` and `PCMA`), which are the default codecs *rtpengine* will use in this case if no other codecs are specified. For further information, see the section on the `T.38` dictionary key below. ## AMR and AMR-WB As AMR supports dynamically adapting the encoder bitrate, as well as restricting the available bitrates, there are some slight peculiarities about its usage when transcoding. When setting the bitrate, for example as `AMR-WB/16000/1/23850` in either the `codec-transcode` or the `codec-set` options, that bitrate will be used as the highest permitted bitrate for the encoder. If no `mode-set` parameter is communicated in the SDP, then that is the bitrate that will be used. If a `mode-set` is present, then the highest bitrate from that mode set which is lower or equal to the given bitrate will be used. If only higher bitrates are allowed by the mode set, then the next higher bitrate will be used. To produce an SDP that includes the `mode-set` option (when adding AMR to the codec list via `codec-transcode`), the full format parameter string can be appended to the codec specification, e.g. `codec-transcode-AMR-WB/16000/1/23850//mode-set=0,1,2,3,4,5;octet-align=1`. In this example, the bitrate 23850 won't actually be used, as the highest permitted mode is 5 (18250 bps) and so that bitrate will be used. If a literal `=` cannot be used due to parsing constraints (i.e. being wrongly interpreted as a key-value pair), it can be escaped by using two dashes instead, e.g. `codec-transcode-AMR-WB/16000/1/23850//mode-set--0,1,2,3,4,5;octet-align--1` The default (highest) bitrates for AMR and AMR-WB are 6700 and 14250, respectively. If a Codec Mode Request (CMR) is received from the AMR peer, then *rtpengine* will adhere to the request and switch encoder bitrate unconditionally, even if it's a higher bitrate than originally desired. To enable sending CMRs to the AMR peer, the codec-specific option `CMR-interval` is provided. It takes a number of milliseconds as argument. Throughout each interval, *rtpengine* will track which AMR frame types were received from the peer, and then based on that will make a decision at the end of the interval. If a higher bitrate is allowed by the mode set that was not received from the AMR peer at all, then *rtpengine* will request switching to that bitrate per CMR. Only the next-highest bitrate mode that was not received will ever be requested, and a CMR will be sent only once per interval. Full example to specify a CMR interval of 500 milliseconds (with `=` escapes): `codec-transcode-AMR-WB/16000/1/23850//mode-set--0,1,2/CMR-interval--500` Similar to the `CMR-interval` option, *rtpengine* can optionally attempt to periodically increase the outgoing bitrate without being requested to by the peer via a CMR. To enable this, set the option `mode-change-interval` to the desired interval in milliseconds. If the last CMR from the AMR peer was longer than this interval ago, *rtpengine* will increase the bitrate by one step if possible. Afterwards, the interval starts over. ## EVS Enhanced Voice Services (EVS) is a patent-encumbered codec for which (at the time of writing) no implementation exists which can be freely used and distributed. As such, support for EVS is only available if an implementation is supplied separately. Currently the only implementation supported is the ETSI/3GPP reference implementation (either floating-point or fixed-point). Any licensing issues that might result from such usage are the responsibility of the user of this software. The EVS codec implementation can be provided as a shared object library (*.so*) which is loaded in during runtime (at startup). The supported implementations can be seen as subdirectories within the `evs/` directory. Currently supported are version 17.0.0 of the ETSI/3GPP reference implementation, [*126.442*](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1464) for the fixed-point implementation and [*126.443*](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1465) for the floating-point implementation. (The floating-point implementation seems to be significantly faster, but is not bit-precise.) To supply the codec implementation as a shared object during runtime, extract the reference implementation's *.zip* file and apply the provided `patch` ([from here](https://github.com/sipwise/rtpengine/tree/master/evs)) that is appropriate for the chosen implementation. Run the build using `make` (suggested build flags are `RELEASE=1 make`) and it should produce a file `lib3gpp-evs.so`. Point *rtpengine* to this file using the `evs-lib-path=` option to enable support for EVS. rtpengine-mr12.5.1.22/docs/troubleshooting.md000066400000000000000000000230041474347554000210710ustar00rootroot00000000000000Troubleshooting Overview ======================== This is the page, which describes troubleshooting aspects of the rtpengine project. --- Debug memory leaks ------------------ A subject, which requires a special mentioning here is — catching of memory leaks. _NOTE: There is a nice and elaborate video in this regard: https://www.youtube.com/watch?v=vVbWOKpIjjo_ \ _On that video you can see what needs to be done for a proper memory leaks debug, step by step._\ _Visually it can be more clear to go ahead with all of this stuff._ Almost each time, when a new feature is being introduced, it is covered with automated tests in the repository. The project itself (internally) is covered with ASAN tests, in order to spot memory leaks in time. So that, in case a new feature introduced a bad way of memory management, it would likely be noticed. But, in order to make sure, that there are indeed no memory leaks introduced (by new feature / bug fix etc.), it’s possible to manually run the tests and see, if the binary during this launch consumed more memory, than it freed after all. ### Valgrind ### For that to work, there is a possibility to use the valgrind. It’s required to install that before to go further. First, the binary must be compiled: ``` make ``` It will be stored in the daemon/ folder. Alternatively the package binary can be used, so indeed one doesn’t particularly need to compile the binary. After the compilation is finished, there is a need to also compile the tests-preload.so, the sources of it are in the t/ folder: ``` cd t/ make tests-preload.so ``` And then, the command to launch rtpengine via the valgrind is as following: ``` LD_PRELOAD=../t/tests-preload.so G_SLICE=always-malloc valgrind --leak-check=full ./rtpengine --config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 ``` The options to start it, are just copied from the `auto-daemon-tests.pl`.\ Launch of the binary is done from the daemon/ folder in this case. Important thing is to always point the `G_SLICE=always-malloc` environment variable, this is because the project uses heavily the Glib (GSlice allocator) and valgrind doesn’t know how to deal with this. So that, by using this environment variable, Glib is told to use the system alloc for memory allocation and valgrind will be able to track this memory. Other than that, the valgrind option `--leak-check=full` is also quite important thing to have, since it tells where exactly the memory leak is. At this point rtpengine is up and running. It’s time to launch, in a separate terminal, tests themselves (those tests, which were prepared to cover a new feature, or just common tests, if there is no new feature and it was a bug fix). For that to work, the option telling that rtpengine is already running, must be given: ``` RTPE_TEST_NO_LAUNCH=1 LD_PRELOAD=./tests-preload.so perl -I../perl auto-daemon-tests.pl ``` This has been launched from the t/ folder. And the ‘RTPE_TEST_NO_LAUNCH=1’ tells the auto tests that rtpengine is already running and there is no need to launch another one. _NOTE: Alternatively it’s possible to run tests with any other way sending commands to rtpengine, to let it do some work in the concerned scope._ After tests are finished, it’s time to collect the report from the valgrind.\ Ctrl+C the terminal, where the binary has been launched before, and if there are no issues, the report must look something like that: ``` ==978252== HEAP SUMMARY: ==978252== in use at exit: 58,918 bytes in 335 blocks ==978252== total heap usage: 23,833 allocs, 23,498 frees, 3,749,442 bytes allocated ==978252== ==978252== LEAK SUMMARY: ==978252== definitely lost: 0 bytes in 0 blocks ==978252== indirectly lost: 0 bytes in 0 blocks ==978252== possibly lost: 0 bytes in 0 blocks ==978252== still reachable: 56,902 bytes in 314 blocks ==978252== suppressed: 0 bytes in 0 blocks ==978252== Reachable blocks (those to which a pointer was found) are not shown. ==978252== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==978252== ==978252== Use --track-origins=yes to see where uninitialised values come from ==978252== For lists of detected and suppressed errors, rerun with: -s ==978252== ERROR SUMMARY: 9 errors from 1 contexts (suppressed: 0 from 0) ``` _NOTE: The downside of using valgrind is that the processing takes perceptibly more time. In other words, it works slower as without it. But since it’s not meant for a production usage, it’s quite alright (for example, for memory leak tests)._ _NOTE: Another important thing to remember, when running under the valgrind, is to make sure that the limits for the opened file descriptors is large enough. Unfortunately the valgrind on its own doesn’t take care of that, so one has to point it explicitly with: ulimit -n . Usually the value of 30000 is enough, so: ulimit -n 30000_ Running one particular test under the valgrind.\ In case there is a demand to run only one of those auto-daemon-tests under the valgrind, it’s possible to do so, just by editing the auto-daemon-tests.pl (or any other targeted test file indeed). This detailed way of running one test, gives a list of advantages: * there is the rtpengine log file in the end (usually in the /tmp folder) * less time waiting, till test is finished * for debugging memory issues, one can exactly see amount of bytes left not freed for this particular test (so no other tests will contribute here with not freed memory). Hence simpler to find the place triggering this memory leak. For that to work, one just needs to copy-past that particular test and place it at the top of the `auto-daemon-tests.pl`. Since this file is the main auto tests file, it will run first, and therefore the interest is to stop the test process as fast as possible, and run only this particular test. That is why this test will be copy-pasted here, at the top. Then, after the definition of the test, it’s just required to place this row: ``` done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; ``` Which will tell the auto tests to stop running and generate a log file in the end. Furthermore, in a such way of running, it’s even possible to get the coredump. The folder for storing that will be selected according to defaults of the environment, where rtpengine was run. For example, in the Ubuntu 22.04, by default coredumps are being stored in the: `/var/lib/apport/coredump` ### Address Sanitizer ### If the performance penalty introduced by the valgrind is not acceptable, it’s possible to use alternatively the Address Sanitizer (lib ASAN). To work with that, it’s required to do a special compilation. So that it’s not possible to work with a package binary (some particular flags will be needed to be set during the compilation). Apart of that, it can be a bit tricky to run it, depending on the distribution one uses. Older distributions will likely not be a working scenario for that, that is because the relatively recent GCC version/Clang is required. There is a list of different things, which can be done with help of lib ASAN, hence the compilation will be different depending on needs. It’s worth mentioning, that build environment must be clean, it’s a must.\ So make sure to clean it beforehand: ``` git clean -fxd ``` There is one particular thing to be mentioned, it’s a make target dedicated for the asan checks (see Makefile in the project’s root folder): ``` asan-check: DO_ASAN_FLAGS=1 $(MAKE) check ``` This target is meant to run the build in tests. But in the end, this can be just used as an example how to create a build with the libasan included, for that one just needs to use the ‘DO_ASAN_FLAGS=1’ while doing the compilation: ``` DO_ASAN_FLAGS=1 make ``` which will give the binary with the libasan included.\ And now, after the compilation is finished, it possible to use this binary as usually, so without a need for a valgrind. _NOTE: Remember, the approach with the valgrind and the one with the libasan are mutually exclusive._ Now there are a few run-time flags, which need to be exported to the environment before to proceed: ``` export ASAN_OPTIONS=verify_asan_link_order=0 export UBSAN_OPTIONS=print_stacktrace=1 export G_SLICE=always-malloc ``` And now it’s time to run the binary again, but this time without the valgrind, like so: ``` LD_PRELOAD=../t/tests-preload.so ./rtpengine --config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 ``` Of course the debug with the Address Sanitizer is not that comprehensive, as the run with the valgrind (it doesn’t detect as many thing as valgrind does). But it’s definitely faster in terms of processing. Now after running certain amount of tests and terminating the run of the binary with Ctrl+C, you can have a report telling whether or not some of the allocated bytes remained not freed. Now getting back to the asan-check build target, let’s run this: ``` git clean -fxd make asan-check ``` It will run a compilation with the libasan included and then just runs all the built-in unit tests using the gotten binary. And, if the memory leak issues can be captured by one of those unit tests, it will be reported as NOK test. To remind again, the libasan will not tell the exact place in the code, which contributes with the memory not being freed. And if a particular test reproduces this issue, then it’s possible just to re-run that very test under the valgrind to get a detailed information on that. For that to work, just get back to the previous section to see how this can be done. rtpengine-mr12.5.1.22/docs/usage.md000066400000000000000000000306061474347554000167540ustar00rootroot00000000000000# Usage ## Userspace Daemon The options are described in detail in the rtpengine(1) man page. If you're reading this on Github, you can view the current master's man page [here](https://github.com/sipwise/rtpengine/blob/master/docs/rtpengine.md). ## In-kernel Packet Forwarding In normal userspace-only operation, the overhead involved in processing each individual RTP or media packet is quite significant. This comes from the fact that each time a packet is received on a network interface, the packet must first traverse the stack of the kernel's network protocols, down to locating a process's file descriptor. At this point the linked user process (the daemon) has to be signalled that a new packet is available to be read, the process has to be scheduled to run, once running the process must read the packet, which means it must be copied from kernel space to user space, involving an expensive context switch. Once the packet has been processed by the daemon, it must be sent out again, reversing the whole process. All this wouldn't be a big deal if it wasn't for the fact that RTP traffic generally consists of many small packets being transferred at high rates. Since the forwarding overhead is incurred on a per-packet basis, the ratio of useful data processed to overhead drops dramatically. For these reasons, *rtpengine* provides a kernel module to offload the bulk of the packet forwarding duties from user space to kernel space. Using this technique, a large percentage of the overhead can be eliminated, CPU usage greatly reduced and the number of concurrent calls possible to be handled increased. In-kernel packet forwarding is implemented as an *nftables* module (or more precisely, an *x\_tables* module). As such, it requires two parts for proper operation. One part is the actual kernel module called `xt_RTPENGINE`. The second part is a rule in the local *nftables* chains that gets hit by UDP packets so that they can be processed by the kernel module. ### Overview ### In short, the prerequisites for in-kernel packet forwarding are: 1. The `xt_RTPENGINE` kernel module must be loaded. The module supports auto-loading when correctly installed. 2. A rule added to an *nftables* chain that gets called by an *input* hook in the *filter* table, which sends packets to the `RTPENGINE` target. This rule should be limited to UDP packets, but otherwise there are no restrictions. The *rtpengine* daemon manages creation and deletion of this rule. 3. The `rtpengine` daemon must be running. 4. All of the above must be set up with the same forwarding table ID (see below). The sequence of events for a newly established media stream is then: 1. The SIP proxy (e.g. *Kamailio*) controls *rtpengine* and informs it about a newly established call. 2. The `rtpengine` daemon allocates local UDP ports and sets up preliminary forward rules based on the info received from the SIP proxy. Only userspace forwarding is set up, nothing is pushed to the kernel module yet. 3. An RTP packet is received on the local port. 4. It traverses the *nftables* chains and gets passed to the *xt\_RTPENGINE* module. 5. The module doesn't recognize it as belonging to an established stream and thus ignores it. 6. The packet continues normal processing and eventually ends up in the daemon's receive queue. 7. The daemon reads it, processes it and forwards it. It also updates some internal data. 8. This userspace-only processing and forwarding continues for a little while, during which time information about additional streams and/or endpoints may be obtained from the SIP proxy. 9. After a few seconds, when the daemon is satisfied with what it has learned about the media endpoints, it pushes the forwarding rules to the kernel. 10. From this moment on, the kernel module will recognize incoming packets belonging to those streams and will forward them on its own. It will stop those packets from traversing the network stacks any further, so the daemon will not see them any more on its receive queues. 11. In-kernel forwarding is allowed to cease to work at any given time, either accidentally (e.g. by removal of the *nftables* rule) or deliberately (the daemon will do so in case of a re-invite), in which case forwarding falls back to userspace-only operation. ### The Kernel Module ### The kernel module supports multiple forwarding tables (not to be confused with the tables managed by *nftables*), which are identified through their ID number. By default, up to 64 forwarding tables can be created and used, giving them the ID numbers 0 through 63. Each forwarding table can be thought of a separate proxy instance. Each running instance of the *rtpengine* daemon controls one such table, and each table can only be controlled by one running instance of the daemon at any given time. In the most common setup, there will be only a single instance of the daemon running and there will be only a single forwarding table in use, with ID zero. The kernel module can be loaded with the command `modprobe xt_RTPENGINE`. It isn't normally necessary to do this explicitly or manually as the module is automatically loaded when the appropriate *nftables* rule is created (see below). The module supports a few options (see `modinfo -p xt_RTPENGINE`) which can either be set at the `modprobe` command line, and/or through an entry in `/etc/modprobe.d/` (by default `/etc/modprobe.d/rtpengine.conf`) for options to be set when auto-loading the module. Options can be inspected during runtime via `/sys/module/xt_RTPENGINE/parameters/`. With the module loaded, a new directory will appear in `/proc/`, namely `/proc/rtpengine/`. After loading, the directory will contain only two pseudo-files, `control` and `list`. The `control` file is write-only and is used to create and delete forwarding tables, while the `list` file is read-only and will produce a list of currently active forwarding tables. With no tables active, it will produce an empty output. The `control` pseudo-file supports two commands, `add` and `del`, each followed by the forwarding table ID number. To manually create a forwarding table with ID 42, the following command can be used: echo 'add 42' > /proc/rtpengine/control After this, the `list` pseudo-file will produce the single line `42` as output. This will also create a directory called `42` in `/proc/rtpengine/`, which contains additional pseudo-files to control this particular forwarding table. To delete this forwarding table, the command `del 42` can be issued like above. This will only work if no *rtpengine* daemon is currently running and controlling this table. Each subdirectory `/proc/rtpengine/$ID/` corresponding to each forwarding table contains the pseudo-files `blist`, `control`, `list` and `status`. The `control` file is write-only while the others are read-only. The `control` file will be kept open by the *rtpengine* daemon while it's running to issue updates to the forwarding rules during runtime. The daemon also reads the `blist` file on a regular basis, which produces a list of currently active forwarding rules together with their stats and other details within that table in a binary format. The same output, but in human-readable format, can be obtained by reading the `list` file. Lastly, the `status` file produces a short stats output for the forwarding table. Manual creation of forwarding tables is normally not required as the daemon will do so itself, however deletion of tables may be required after shutdown of the daemon or before a restart to ensure that the daemon can create the table it wants to use. The kernel module can be unloaded through `rmmod xt_RTPENGINE`, however this only works if no forwarding table currently exists and no *nftables* rule currently exists. ### The *nftables* Rule ### In order for the kernel module to be able to actually forward packets, an *nftables* rule must be set up to send packets into the module. Previously these rules were managed via the `iptables` and `ip6tables` CLI tools (in combination with a plugin module, e.g. via a command such as `iptables -I INPUT -p udp -j RTPENGINE --id 42`), but with *iptables* being phased out and replaced by *nftables* this is no longer necessary. The *rtpengine* daemon manages creation and deletion of the required *nftables* rules directly, creating them during startup and deleting them during shutdown. The location of the rules and the names of the chains can be configured via the options `nftables-chain` and `nftables-base-chain` (see manual page). _NOTE: As the `nft` command-line tool isn't able to understand the non-standard `RTPENGINE` target rules, it may emit a warning when displaying the rules via `nft list ruleset` or similar._ The rules can also be managed explicitly and directly from the command line via the `\-\-nftables-start` and `\-\-nftables-stop` options (see manual page). This is useful to manage these rules from a script if so desired, or to re-create them during runtime if they had gotten lost. A typical output from `nft list ruleset` with a rule loaded may look like this (including the aforementioned warning message): # Warning: table ip filter is managed by iptables-nft, do not touch! table ip filter { chain INPUT { type filter hook input priority filter; policy accept; ip protocol udp counter packets 1 bytes 201 jump rtpengine } chain rtpengine { XT target RTPENGINE not found counter packets 1 bytes 201 } } ## Summary In a typical setup no extra steps need to be taken to facilitate in-kernel forwarding, provided the kernel module is compiled and installed for the currently running kernel (which should be handled by `dkms` on compatible systems). A cheat sheet with various related commands is below: # Load module: this only needs to be done once after system # (re-) boot, but can be omitted if auto-load is working correctly modprobe xt_RTPENGINE # Load module with some options set # (usually handled via /etc/modprobe.d/rtpengine.conf) modprobe xt_RTPENGINE proc_uid=1234 proc_gid=5678 # Create nftables rules: This normally happens automatically during # startup. Kernel table ID and nftables chain names are taken from # the config file rtpengine --nftables-start # Create nftables rules overriding the default chain names, or the # names from the config file rtpengine --nftables-start --table=42 --nftables-chain=foobar --nftables-base-chain= # Delete a leftover table. Might be needed if the kernel module # can't be unloaded (see /proc/rtpengine/list) echo 'del 0' > /proc/rtpengine/control # Start daemon: this creates the nftables rules for table 0 /usr/bin/rtpengine --table=0 --interface=10.64.73.31 --interface=2001:db8::4f3:3d \ --listen-ng=127.0.0.1:2223 --tos=184 --pidfile=/run/rtpengine.pid --no-fallback # Start daemon without implicitly creating any nftables rules (empty chain name) /usr/bin/rtpengine --table=0 --interface=10.64.73.31 --interface=2001:db8::4f3:3d \ --listen-ng=127.0.0.1:2223 --tos=184 --pidfile=/run/rtpengine.pid --no-fallback \ --nftables-chain= ## Running Multiple Instances In some cases it may be desired to run multiple instances of *rtpengine* on the same machine, for example if the host is multi-homed and has multiple usable network interfaces with different addresses and different port ranges. This is supported by running multiple instances of the daemon using different command-line options (different local addresses and different listening ports) or different config files, together with multiple different kernel forwarding tables. For example, if one local network interface has address 10.64.73.31 and another has address 192.168.65.73, then the start-up sequence might look like this: /usr/bin/rtpengine --config-file=none --table=0 --interface=10.64.73.31 \ --listen-ng=127.0.0.1:2223 --tos=184 --pidfile=/run/rtpengine-10.pid --no-fallback /usr/bin/rtpengine --config-file=none --table=1 --interface=192.168.65.73 \ --listen-ng=127.0.0.1:2224 --tos=184 --pidfile=/run/rtpengine-192.pid --no-fallback With this setup, the SIP proxy can choose which instance of *rtpengine* to talk to and thus which local interface to use by sending its control messages to either port 2223 or port 2224. For ease of use it's recommended to use multiple config files (`\-\-config-file=...`) or config file sections (`\-\-config-section=...`) instead. When running under *systemd* a new service unit can be created via `systemctl edit ...`. rtpengine-mr12.5.1.22/el/000077500000000000000000000000001474347554000147715ustar00rootroot00000000000000rtpengine-mr12.5.1.22/el/README.md000066400000000000000000000044001474347554000162460ustar00rootroot00000000000000rtpengine for Enterprise Linux ================================== Installing from RPMs -------------------- There are four RPMs: - *ngcp-rtpengine*: the userspace daemon - *ngcp-rtpengine-recording*: the recording daemon - *ngcp-rtpengine-kernel*: the iptables plugin - *ngcp-rtpengine-dkms*: the kernel module source All of the RPMs have correctly set dependencies and if you just want the userspace daemon you can install it with yum (assuming you have access to a repository). The *ngcp-rtpengine-kernel* package is dependent on the *ngcp-rtpengine*, and *ngcp-rtpengine-dkms* packages. The *ngcp-rtpengine-dkms* package has a dependency (DKMS) that cannot be met by the base repository. If you want to use in-kernel forwarding you need to add the [*EPEL*](http://fedoraproject.org/wiki/EPEL) repository and install the *dkms* package before attempting to install *ngcp-rtpengine-dkms* or *ngcp-rtpengine-kernel*. Note: installing *ngcp-rtpengine-dkms* builds a kernel module which requires the sources for the running kernel. The *kernel-devel* and *kernel-headers* packages are meta-packages that install the headers and source for the latest kernel version. This will be what you want unless you are running a custom or older kernel. *ngcp-rtpengine-dkms* does not have *kernel-devel* and *kernel-headers* as dependencies as this could cause problems if you are using a custom or older kernel, so you need to install these manually. RPM Compilation --------------- To build the RPMs you need all of the packages listed in the Manual Compilation section (except for *kernel-devel* and *kernel-headers*) plus: - *redhat-rpm-config* - *rpm-build* To build the RPMs: - Checkout (clone) the Git repository - Create the `~/rpmbuild/SOURCES` directory - Create a tar archive. For example, from within the cloned directory you can use `git archive --output ~/rpmbuild/SOURCES/ngcp-rtpengine-.tar.gz --prefix=ngcp-rtpengine-/ master` where `` is the version number of the master branch - Build the RPMs. For example, `rpmbuild -ta ~/rpmbuild/SOURCES/ngcp-rtpengine-.tar.gz` Once the build has completed the binary RPMs will be in `~/rpmbuild/RPMS`. Manual Compilation ------------------ Check the main project README. rtpengine-mr12.5.1.22/el/build-with-mock.sh000077500000000000000000000020521474347554000203260ustar00rootroot00000000000000#! /bin/bash # Sample build script to package RPM using mock # Usage: el/build-with-mock.sh # # el/build-with-mock.sh 12.1.0.0+0~mr12.1.0.0 master set -e if [[ -z $1 || -z $2 ]]; then echo $0: Require package version and git commit echo "Usage: build-with-mock.sh " exit 1 fi RTPENGINE_VERSION=$1 GIT_COMMIT=$2 mkdir -p rpmbuild/{SOURCES,SPECS} git archive --format=tar --prefix=ngcp-rtpengine-${RTPENGINE_VERSION}/ $2 | gzip -c > rpmbuild/SOURCES/ngcp-rtpengine-${RTPENGINE_VERSION}.tar.gz sed /^Version/s"/^Version:.*/Version: ${RTPENGINE_VERSION}/" el/rtpengine.spec > rpmbuild/SPECS/rtpengine.spec rm -f rpmbuild/SRPMS/*.src.rpm rpmbuild --define "_topdir $PWD/rpmbuild" -bs rpmbuild/SPECS/rtpengine.spec echo ======================================= echo "You may now build for EL8/EL9" echo "EL8: mock -r el/rtpengine-8-x86_64.cfg $(ls rpmbuild/SRPMS/*.src.rpm)" echo "EL9: mock -r el/rtpengine-9-x86_64.cfg $(ls rpmbuild/SRPMS/*.src.rpm)" echo ======================================= rtpengine-mr12.5.1.22/el/rtpengine-8-x86_64.cfg000066400000000000000000000025571474347554000205570ustar00rootroot00000000000000include('templates/almalinux-8.tpl') include('templates/epel-8.tpl') config_opts['dnf.conf'] += """ [rpmfusion-free-updates] name=RPM Fusion for EL $releasever - Free - Updates #baseurl=https://download1.rpmfusion.org/free/el/updates/$releasever/$basearch/ metalink=https://mirrors.rpmfusion.org/metalink?repo=free-el-updates-released-$releasever&arch=$basearch enabled=1 [rpmfusion-nonfree-updates] name=RPM Fusion for EL $releasever - Nonfree - Updates #baseurl=https://download1.rpmfusion.org/nonfree/el/updates/$releasever/$basearch/ metalink=https://mirrors.rpmfusion.org/metalink?repo=nonfree-el-updates-released-$releasever&arch=$basearch enabled=1 [copr:copr.fedorainfracloud.org:beaveryoga:broadvoice] name=Copr repo for broadvoice owned by beaveryoga baseurl=https://download.copr.fedorainfracloud.org/results/beaveryoga/broadvoice/epel-$releasever-$basearch/ skip_if_unavailable=True gpgcheck=1 gpgkey=https://download.copr.fedorainfracloud.org/results/beaveryoga/broadvoice/pubkey.gpg repo_gpgcheck=0 enabled=1 enabled_metadata=1 """ config_opts['chroot_additional_packages'] = "perl-interpreter libdb-devel gdbm-devel libuuid-devel speexdsp-devel" config_opts['chroot_additional_packages'] += " spandsp3-devel perl-podlators pandoc libatomic" config_opts['root'] = 'rtpengine-8-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) rtpengine-mr12.5.1.22/el/rtpengine-9-x86_64.cfg000066400000000000000000000027121474347554000205510ustar00rootroot00000000000000include('templates/almalinux-9.tpl') include('templates/epel-9.tpl') config_opts['dnf.conf'] += """ [rpmfusion-free-updates] name=RPM Fusion for EL $releasever - Free - Updates #baseurl=https://download1.rpmfusion.org/free/el/updates/$releasever/$basearch/ metalink=https://mirrors.rpmfusion.org/metalink?repo=free-el-updates-released-$releasever&arch=$basearch enabled=1 [rpmfusion-nonfree-updates] name=RPM Fusion for EL $releasever - Nonfree - Updates baseurl=https://download1.rpmfusion.org/nonfree/el/updates/$releasever/$basearch/ #metalink=https://mirrors.rpmfusion.org/metalink?repo=nonfree-el-updates-released-$releasever&arch=$basearch enabled=1 [copr:copr.fedorainfracloud.org:beaveryoga:broadvoice] name=Copr repo for broadvoice owned by beaveryoga baseurl=https://download.copr.fedorainfracloud.org/results/beaveryoga/broadvoice/epel-$releasever-$basearch/ skip_if_unavailable=True gpgcheck=1 gpgkey=https://download.copr.fedorainfracloud.org/results/beaveryoga/broadvoice/pubkey.gpg repo_gpgcheck=0 enabled=1 enabled_metadata=1 """ config_opts['chroot_additional_packages'] = "perl-interpreter libdb-devel gdbm-devel libuuid-devel speexdsp-devel" config_opts['chroot_additional_packages'] += " spandsp3-devel perl-podlators pandoc" config_opts['chroot_additional_packages'] += " gcc make autoconf automake gcc-c++ libtool libatomic" config_opts['root'] = 'rtpengine-9-x86_64' config_opts['target_arch'] = 'x86_64' config_opts['legal_host_arches'] = ('x86_64',) rtpengine-mr12.5.1.22/el/rtpengine-recording.init000066400000000000000000000035161474347554000216300ustar00rootroot00000000000000#!/bin/bash # # rtpengine-recording Startup script for NGCP rtpengine-recording # # chkconfig: 345 84 16 # description: NGCP rtpengine-recording # # processname: rtpengine-recording # config: /etc/sysconfig/rtpengine-recording # pidfile: /run/rtpengine-recording.pid # ### BEGIN INIT INFO # Provides: rtpengine # Required-Start: $local_fs $network # Short-Description: NGCP rtpengine-recording # Description: NGCP rtpengine-recording ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/rtpengine-recording ] then . /etc/sysconfig/rtpengine-recording else echo "Error: /etc/sysconfig/rtpengine-recording not present" >&2 exit 6 fi prog=rtpengine-recording runfile=/usr/bin/${prog} pidfile=${PIDFILE-/run/rtpengine-recording.pid} lockfile=${LOCKFILE-/var/lock/subsys/rtpengine-recording} RETVAL=0 OPTS="" [ -z "$CONFIG_FILE" ] || OPTS+=" --config-file=$CONFIG_FILE" [ -z "$PIDFILE" ] || OPTS+=" --pidfile=$PIDFILE" start() { echo -n $"Starting $prog: " if [[ -n "$RE_USER" ]] then # shellcheck disable=SC2086 daemon --user "$RE_USER" --pidfile="${pidfile}" "$runfile" $OPTS else # shellcheck disable=SC2086 daemon --pidfile="${pidfile}" "$runfile" $OPTS fi RETVAL=$? echo [ $RETVAL = 0 ] && touch "${lockfile}" return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p "${pidfile}" "$runfile" RETVAL=$? [ $RETVAL = 0 ] && rm -f "${lockfile}" "${pidfile}" } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p "${pidfile}" "$runfile" RETVAL=$? ;; restart) stop start ;; condrestart|try-restart) if status -p "${pidfile}" "$runfile" >&/dev/null; then stop start fi ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|status}" RETVAL=2 esac exit $RETVAL rtpengine-mr12.5.1.22/el/rtpengine-recording.service000066400000000000000000000012551474347554000223230ustar00rootroot00000000000000[Unit] Description=NGCP RTP/media Recording Daemon Wants=network-online.target After=network-online.target [Service] Type=forking LimitNOFILE=100000 Environment=CFG_FILE=/etc/rtpengine/rtpengine-recording.conf EnvironmentFile=/etc/sysconfig/rtpengine-recording User=ngcp-rtpengine Group=ngcp-rtpengine AmbientCapabilities=CAP_NET_ADMIN CAP_CHOWN CapabilityBoundingSet=CAP_NET_ADMIN CAP_CHOWN RuntimeDirectory=rtpengine-recording PIDFile=/run/rtpengine-recording/rtpengine-recording.pid ExecStart=/usr/bin/rtpengine-recording --config-file=${CFG_FILE} --pidfile=${PID_FILE} TimeoutSec=15s Restart=on-failure [Install] WantedBy=multi-user.target Alias=ngcp-rtpengine-recording.service rtpengine-mr12.5.1.22/el/rtpengine-recording.sysconfig000066400000000000000000000003111474347554000226570ustar00rootroot00000000000000# For more information on configuring rtpengine see # http://github.com/sipwise/rtpengine # CONFIG_FILE=/etc/rtpengine/rtpengine-recording.conf PID_FILE=/run/rtpengine-recording/rtpengine-recording.pidrtpengine-mr12.5.1.22/el/rtpengine.init000066400000000000000000000110251474347554000176500ustar00rootroot00000000000000#!/bin/bash # # rtpengine Startup script for NGCP rtpengine # # chkconfig: 345 84 16 # description: NGCP rtpengine # # processname: rtpengine # config: /etc/sysconfig/rtpengine # pidfile: /run/rtpengine.pid # ### BEGIN INIT INFO # Provides: rtpengine # Required-Start: $local_fs $network # Short-Description: NGCP rtpengine # Description: NGCP rtpengine ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions # defaults if [ -f /etc/sysconfig/rtpengine ] then . /etc/sysconfig/rtpengine else echo "Error: /etc/sysconfig/rtpengine not present" >&2 exit 6 fi rtpengine=/usr/bin/rtpengine prog=rtpengine pidfile=${PIDFILE-/run/rtpengine.pid} lockfile=${LOCKFILE-/var/lock/subsys/rtpengine} cachefile=/var/lib/ngcp-rtpengine/rtpengine.cfg TABLE=$(/usr/sbin/rtpengine-get-table --config-file="${CONFIG_FILE-/etc/rtpengine/rtpengine.conf}") PIDFILE=${pidfile} RETVAL=0 OPTS="" build_opts() { # kernel table MODULE=0 # the variable from the config is the source of truth if [[ -n "$TABLE" ]];then if [[ $TABLE -ge 0 ]];then MODULE=1 fi fi # options [[ "$FORK" == "no" ]] && OPTS+=" --foreground" [ -z "$CONFIG_FILE" ] || OPTS+=" --config-file=$CONFIG_FILE" [ -z "$CONFIG_SECTION" ] || OPTS+=" --config-section=$CONFIG_SECTION" [ -z "$PIDFILE" ] || OPTS+=" --pidfile=$PIDFILE" } start() { build_opts if [[ $MODULE == 1 ]];then echo "Loading module for in-kernel packet forwarding" rmmod xt_RTPENGINE 2> /dev/null if [[ -n "$SET_USER" ]];then if [[ -n "$SET_GROUP" ]];then proc_gid="$(grep "^$SET_GROUP:" /etc/group | cut -f3 -d:)" else proc_gid="$(id "$SET_USER" -g)" fi modprobe xt_RTPENGINE proc_uid="$(id "$SET_USER" -u)" proc_gid="$proc_gid" else modprobe xt_RTPENGINE fi if firewall-cmd --state 2>/dev/null ; then # Using firewalld # Need to check if the INPUT_prefilter chain is present (permanently) if ! firewall-cmd --permanent --direct --query-chain ipv4 filter INPUT_prefilter > /dev/null; then firewall-cmd --permanent --direct --add-chain ipv4 filter INPUT_prefilter firewall-cmd --permanent --direct --passthrough ipv4 -t filter -I INPUT -j INPUT_prefilter firewall-cmd --reload fi firewall-cmd --direct --add-chain ipv4 filter rtpengine firewall-cmd --direct --add-rule ipv4 filter INPUT_prefilter 0 -j rtpengine firewall-cmd --direct --add-rule ipv4 filter rtpengine 0 -p udp -j RTPENGINE --id "$TABLE" firewall-cmd --direct --add-rule ipv6 filter rtpengine 0 -p udp -j RTPENGINE --id "$TABLE" firewall-cmd --reload else for fw in iptables ip6tables;do # We insert the rtpengine rule at the top of the input chain if ! $fw -t filter -C INPUT -j rtpengine 2> /dev/null; then $fw -N rtpengine $fw -t filter -I INPUT -j rtpengine fi if ! $fw -I rtpengine -p udp -j RTPENGINE --id "$TABLE" 2> /dev/null; then $fw -I rtpengine -p udp -j RTPENGINE --id "$TABLE" fi done fi cat < "$cachefile" CUR_TABLE=$TABLE EOF fi echo -n $"Starting $prog: " if [[ -n "$SET_USER" ]];then # shellcheck disable=SC2086 daemon --user "$SET_USER" --pidfile="${pidfile}" "$rtpengine" $OPTS else # shellcheck disable=SC2086 daemon --pidfile="${pidfile}" "$rtpengine" $OPTS fi RETVAL=$? echo [ $RETVAL = 0 ] && touch "${lockfile}" return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p "${pidfile}" "$rtpengine" RETVAL=$? echo if [ -f "$cachefile" ];then . "$cachefile" echo "Unloading module for in-kernel packet forwarding" echo "del $TABLE" > /proc/rtpengine/control if firewall-cmd --state 2>/dev/null; then firewall-cmd --direct --remove-rules ipv4 filter rtpengine firewall-cmd --direct --remove-rules ipv6 filter rtpengine firewall-cmd --direct --remove-rule ipv4 filter INPUT_prefilter 0 -j rtpengine firewall-cmd --direct --remove-chain ipv4 filter rtpengine firewall-cmd --reload else for fw in iptables ip6tables;do $fw -D rtpengine -p udp -j RTPENGINE --id "$CUR_TABLE" $fw -t filter -D INPUT -j rtpengine $fw -X rtpengine done fi rmmod xt_RTPENGINE rm -f "$cachefile" fi [ $RETVAL = 0 ] && rm -f "${lockfile}" "${pidfile}" } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p "${pidfile}" "$rtpengine" RETVAL=$? ;; restart) stop start ;; condrestart|try-restart) if status -p "${pidfile}" "$rtpengine" >&/dev/null; then stop start fi ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|status}" RETVAL=2 esac exit $RETVAL rtpengine-mr12.5.1.22/el/rtpengine.service000066400000000000000000000011351474347554000203460ustar00rootroot00000000000000[Unit] Description=NGCP RTP/media Proxy Daemon After=network-online.target [Service] Type=notify Environment=CFG_FILE=/etc/rtpengine/rtpengine.conf EnvironmentFile=/etc/sysconfig/rtpengine User=ngcp-rtpengine Group=ngcp-rtpengine AmbientCapabilities=CAP_NET_ADMIN CAP_SYS_NICE CapabilityBoundingSet=CAP_NET_ADMIN CAP_SYS_NICE LimitNOFILE=150000 RuntimeDirectory=rtpengine PIDFile=/run/rtpengine/rtpengine.pid ExecStart=/usr/bin/rtpengine --config-file=${CFG_FILE} --pidfile=${PID_FILE} -f RestartSec=3s TimeoutSec=15s Restart=on-failure [Install] WantedBy=multi-user.target Alias=ngcp-rtpengine.service rtpengine-mr12.5.1.22/el/rtpengine.spec000066400000000000000000000244431474347554000176470ustar00rootroot00000000000000Name: ngcp-rtpengine Version: 12.5.1.22+0~mr12.5.1.22 Release: 1%{?dist} Summary: The Sipwise NGCP rtpengine daemon Group: System Environment/Daemons License: GPLv3 URL: https://github.com/sipwise/rtpengine Source0: https://github.com/sipwise/rtpengine/archive/%{name}-%{version}.tar.gz Conflicts: %{name}-kernel < %{version}-%{release} %global with_transcoding 1 %{?_unitdir:%define has_systemd_dirs 1} %if 0%{?openEuler} >= 1 %define redhat_rpm_config openEuler-rpm-config %if 0%{?rhel} == 0 %if 0%{?openEuler} >= 2 %define rhel 9 %else %define rhel 8 %endif %endif %else %define redhat_rpm_config redhat-rpm-config %endif BuildRequires: gcc make pkgconfig %{redhat_rpm_config} BuildRequires: glib2-devel libcurl-devel openssl-devel pcre-devel BuildRequires: xmlrpc-c-devel zlib-devel hiredis-devel BuildRequires: libpcap-devel libevent-devel json-glib-devel BuildRequires: mosquitto-devel BuildRequires: gperf perl-IPC-Cmd BuildRequires: perl-podlators BuildRequires: libatomic BuildRequires: pkgconfig(libwebsockets) BuildRequires: pkgconfig(spandsp) BuildRequires: pkgconfig(opus) %if 0%{?rhel} == 8 # LTS mr11.5.1 cannot build with gcc 8.5 BuildRequires: gcc-toolset-13 %endif Requires(pre): shadow-utils %if 0%{?rhel} >= 8 BuildRequires: pkgconfig(libmnl) pkgconfig(libnftnl) pandoc ncurses-devel %endif %if 0%{?rhel} >= 9 BuildRequires: pkgconfig(libiptc) %endif %if 0%{?with_transcoding} > 0 BuildRequires: ffmpeg-devel Requires(pre): ffmpeg-libs %endif Requires: perl-Config-Tiny Requires: nc # Remain compat with other installations Provides: ngcp-rtpengine = %{version}-%{release} %description The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP based media traffic. It's meant to be used with the Kamailio SIP proxy and forms a drop-in replacement for any of the other available RTP and media proxies. %package kernel Summary: NGCP rtpengine in-kernel packet forwarding Group: System Environment/Daemons BuildRequires: gcc make %{redhat_rpm_config} iptables-devel Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-dkms = %{version}-%{release} %description kernel %{summary}. %package dkms Summary: Kernel module for NGCP rtpengine in-kernel packet forwarding Group: System Environment/Daemons BuildArch: noarch BuildRequires: %{redhat_rpm_config} Requires: gcc make # Define requires according to the installed kernel. %{?rhel:Requires: kernel-devel} %{?fedora:Requires: kernel-devel} %{?suse_version:Requires: kernel-source} Requires(post): dkms Requires(preun): dkms %description dkms %{summary}. %package utils Summary: Utilities and Perl modules for NGCP rtpengine Requires: perl-interpreter %description utils %{summary}. %if 0%{?rhel} >= 8 %define mysql_devel_pkg mariadb-devel %else %define mysql_devel_pkg mysql-devel %endif %if 0%{?with_transcoding} > 0 %package recording Summary: The Sipwise NGCP rtpengine recording daemon Group: System Environment/Daemons BuildRequires: gcc make %{redhat_rpm_config} %{mysql_devel_pkg} ffmpeg-devel %description recording The Sipwise rtpengine media proxy has support for exporting media (RTP) packets that it forwards. The rtpengine-recording daemon collects these exported packets and decodes them into an audio format that can be listened to. %endif %define binname rtpengine %prep %setup -q -n %{name}-%{version} %build # we don't run configure, so consume the default # build flags set by the distro %{set_build_flags} echo ==== CFLAGS = $CFLAGS ==== echo ==== CXXFLAGS = $CXXFLAGS ==== echo ==== LDFLAGS = $LDFLAGS ==== %if 0%{?rhel} == 8 # LTS mr11.5.1 cannot build with gcc 8.5 . /opt/rh/gcc-toolset-13/enable %endif %if 0%{?with_transcoding} > 0 RTPENGINE_VERSION="\"%{version}-%{release}\"" make all %else RTPENGINE_VERSION="\"%{version}-%{release}\"" make with_transcoding=no all %endif %install # we don't run configure, so consume the default # build flags set by the distro %{set_build_flags} echo ---- CFLAGS = $CFLAGS ---- echo ---- CXXFLAGS = $CXXFLAGS ---- echo ---- LDFLAGS = $LDFLAGS ---- # Install the userspace daemon %if 0%{?with_transcoding} > 0 RTPENGINE_VERSION="\"%{version}-%{release}\"" make DESTDIR=%{buildroot} install %else RTPENGINE_VERSION="\"%{version}-%{release}\"" make DESTDIR=%{buildroot} with_transcoding=no install %endif ## Install the init.d script and configuration file %if 0%{?has_systemd_dirs} install -D -p -m644 el/%{binname}.service \ %{buildroot}%{_unitdir}/%{binname}.service %else install -D -p -m755 el/%{binname}.init \ %{buildroot}%{_initrddir}/%{name} %endif %if 0%{?with_transcoding} > 0 %if 0%{?has_systemd_dirs} install -D -p -m644 el/%{binname}-recording.service \ %{buildroot}%{_unitdir}/%{binname}-recording.service %else install -D -p -m755 el/%{binname}-recording.init \ %{buildroot}%{_initrddir}/%{name}-recording %endif %endif install -D -p -m644 el/%{binname}.sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/%{binname} %if 0%{?with_transcoding} > 0 install -D -p -m644 el/%{binname}-recording.sysconfig \ %{buildroot}%{_sysconfdir}/sysconfig/%{binname}-recording %endif mkdir -p %{buildroot}%{_sharedstatedir}/%{name} mkdir -p %{buildroot}%{_var}/lib/%{binname}-recording mkdir -p %{buildroot}%{_var}/spool/%{binname} # Install config files install -D -p -m644 etc/%{binname}.conf \ %{buildroot}%{_sysconfdir}/%{binname}/%{binname}.conf %if 0%{?with_transcoding} > 0 install -D -p -m644 etc/%{binname}-recording.conf \ %{buildroot}%{_sysconfdir}/%{binname}/%{binname}-recording.conf %endif ## DKMS module source install install -D -p -m644 kernel-module/Makefile \ %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/Makefile install -D -p -m644 kernel-module/xt_RTPENGINE.c \ %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/xt_RTPENGINE.c install -D -p -m644 kernel-module/xt_RTPENGINE.h \ %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/xt_RTPENGINE.h install -D -p -m644 kernel-module/common_stats.h \ %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/common_stats.h install -D -p -m644 kernel-module/*.inc \ %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/ install -D -p -m644 debian/ngcp-rtpengine-kernel-dkms.dkms %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/dkms.conf sed -i -e "s/#MODULE_VERSION#/%{version}-%{release}/g" %{buildroot}%{_usrsrc}/%{name}-%{version}-%{release}/dkms.conf %if 0%{?with_transcoding} > 0 install -m755 -d %{buildroot}%{_datarootdir}/%{binname}-perftest install -m444 fixtures/* %{buildroot}%{_datarootdir}/%{binname}-perftest %endif %pre getent group %{name} >/dev/null || /usr/sbin/groupadd -r %{name} getent passwd %{name} >/dev/null || /usr/sbin/useradd -r -g %{name} \ -s /sbin/nologin -c "%{name} daemon" -d %{_sharedstatedir}/%{name} %{name} %post if [ $1 -eq 1 ]; then %if 0%{?has_systemd_dirs} systemctl daemon-reload %else /sbin/chkconfig --add %{name} || : %endif fi %post dkms # Add to DKMS registry, build, and install module # The kernel version can be overridden with "--define kversion foo" on rpmbuild, # e.g. --define "kversion 2.6.32-696.23.1.el6.x86_64" %{!?kversion: %define kversion %{nil}} %if "%{kversion}" != "" dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && dkms build -m %{name} -v %{version}-%{release} -k %{kversion} --rpm_safe_upgrade && dkms install -m %{name} -v %{version}-%{release} -k %{kversion} --rpm_safe_upgrade --force %else dkms add -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && dkms build -m %{name} -v %{version}-%{release} --rpm_safe_upgrade && dkms install -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --force %endif true %preun if [ $1 = 0 ] ; then %if 0%{?has_systemd_dirs} systemctl stop %{binname}.service systemctl disable %{binname}.service %else /sbin/service %{name} stop >/dev/null 2>&1 /sbin/chkconfig --del %{name} %endif fi %preun dkms # Remove from DKMS registry dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all true %files # Userspace daemon %{_bindir}/%{binname} # CLI (command line interface) %{_bindir}/%{binname}-ctl # CLI table helper # init.d script and configuration file %if 0%{?has_systemd_dirs} %{_unitdir}/%{binname}.service %else %{_initrddir}/%{name} %endif %config(noreplace) %{_sysconfdir}/sysconfig/%{binname} # default config %config(noreplace) %{_sysconfdir}/%{binname}/%{binname}.conf # spool directory %attr(0750,%{name},%{name}) %dir %{_var}/spool/%{binname} # Documentation %doc LICENSE README.md debian/changelog debian/copyright %{_mandir}/man8/%{binname}.8* %files kernel %files dkms %{_usrsrc}/%{name}-%{version}-%{release}/ %files utils %{_bindir}/%{binname}-ctl %{_bindir}/%{binname}-ng-client %{_libexecdir}/%{binname}/%{binname}-get-table %{_mandir}/man1/%{binname}-ctl.1* %{_mandir}/man1/%{binname}-ng-client.1.* %if 0%{?with_transcoding} > 0 %{_bindir}/%{binname}-perftest %{_datarootdir}/%{binname}-perftest/* %endif %if 0%{?with_transcoding} > 0 %files recording # Recording daemon %{_bindir}/%{binname}-recording # Init script %if 0%{?has_systemd_dirs} %{_unitdir}/%{binname}-recording.service %else %{_initrddir}/%{name}-recording %endif # Sysconfig %config(noreplace) %{_sysconfdir}/sysconfig/%{binname}-recording # Default config %config(noreplace) %{_sysconfdir}/%{binname}/%{binname}-recording.conf # recording directory %attr(0750,%{name},%{name}) %dir %{_sharedstatedir}/%{binname}-recording %{_mandir}/man8/%{binname}-recording.8* %endif %changelog * Thu Nov 11 2021 Anton Voylenko - update packages metadata - remove the "archname" variable - do not override service configuration * Tue Jul 10 2018 netaskd - 6.4.0.0-1 - update to ngcp-rtpengine version 6.4.0.0 - add packet recording * Thu Nov 24 2016 Marcel Weinberg - Updated to ngcp-rtpengine version 4.5.0 and CentOS 7.2 - created a new variable "binname" to use rtpengine as name for the binaries (still using ngcp-rtpenginge as name of the package and daemon - aligned to the .deb packages) - fixed dependencies * Mon Nov 11 2013 Peter Dunkley - Updated version to 2.3.2 - Set license to GPLv3 * Thu Aug 15 2013 Peter Dunkley - init.d scripts and configuration file * Wed Aug 14 2013 Peter Dunkley - First version of .spec file - Builds and installs userspace daemon (but no init.d scripts etc yet) - Builds and installs the iptables plugin - DKMS package for the kernel module rtpengine-mr12.5.1.22/el/rtpengine.sysconfig000066400000000000000000000004301474347554000207070ustar00rootroot00000000000000# For more information on configuring rtpengine see # http://github.com/sipwise/rtpengine # main config file CONFIG_FILE=/etc/rtpengine/rtpengine.conf # pid PID_FILE=/run/rtpengine/rtpengine.pid # user and group for /proc interface SET_USER=ngcp-rtpengine SET_GROUP=ngcp-rtpenginertpengine-mr12.5.1.22/etc/000077500000000000000000000000001474347554000151445ustar00rootroot00000000000000rtpengine-mr12.5.1.22/etc/rtpengine-recording.conf000066400000000000000000000030101474347554000217520ustar00rootroot00000000000000[rtpengine-recording] table = 0 ### number of worker threads (default 8) # num-threads = 16 ### where to forward to (unix socket) # forward-to = /run/rtpengine/sock ### where to store recordings: file (default), db, both # output-storage = db ### format of stored recordings: wav (default), mp3 # output-format = mp3 ### directory containing rtpengine metadata files # spool-dir = /var/spool/rtpengine ### where to store media files to # output-dir = /var/lib/rtpengine-recording ### file name pattern for output files # output-pattern = %c-%t ### resample all output audio # resample-to = 8000 ### bits per second for MP3 encoding # mp3-bitrate = 24000 ### mix participating sources into a single output # output-mixed = true ### maximum number of inputs for mixed output # mix-num-inputs = 4 ### create one output file for each source # output-single = true ### TCP/TLS output of PCM audio # tcp-send-to = 10.4.1.7:15413 # tcp-resample = 16000 ### OR # tls-send-to = 10.4.1.7:15413 # tls-resample = 16000 ### mysql configuration for db storage # mysql-host = localhost # mysql-port = 3306 # mysql-user = rtpengine # mysql-pass = secret # mysql-db = rtpengine ### ownership/permission control for output files # output-chmod = 0640 # output-chmod-dir = 0750 # output-chown = rtpengine # output-chgrp = rtpengine ### HTTP notifications for finished recordings # notify-uri = https://example.com/rec/finished # notify-post = false # notify-no-verify = false # notify-purge = false # notify-concurrency = 5 # notify-retries = 10 rtpengine-mr12.5.1.22/etc/rtpengine.conf000066400000000000000000000061161474347554000200120ustar00rootroot00000000000000[rtpengine] table = 0 # no-fallback = false ### for userspace forwarding only: # table = -1 ### a single interface: # interface = 123.234.345.456 ### separate multiple interfaces with semicolons: # interface = internal/12.23.34.45;external/23.34.45.54 ### for different advertised address: # interface = 12.23.34.45!23.34.45.56 interface = any listen-ng = localhost:2223 # listen-tcp = 25060 # listen-udp = 12222 ### interface for HTTP, WS and Prometheus # listen-http = 9101 listen-http = localhost:2225 # listen-https = localhost:2226 # https-cert = # https-key = listen-cli = localhost:2224 timeout = 60 silent-timeout = 3600 tos = 184 # control-tos = 184 # control-pmtu = dont # delete-delay = 30 # final-timeout = 10800 # endpoint-learning = heuristic # reject-invalid-sdp = false # foreground = false # pidfile = /run/ngcp-rtpengine-daemon.pid # num-threads = 16 # media-num-threads = 8 # http-threads = 4 port-min = 30000 port-max = 40000 # max-sessions = 5000 # software-id = rtpengine # max-load = 5 # max-cpu = 90 # max-bandwidth = 10000000 # scheduling = default # priority = -3 # idle-scheduling = idle # idle-priority = 10 recording-dir = /var/spool/rtpengine recording-method = proc # recording-format = raw # redis = 127.0.0.1:6379/5 # redis-write = password@12.23.34.45:6379/42 # redis-num-threads = 8 # no-redis-required = false # redis-expires = 86400 # redis-allowed-errors = -1 # redis-disable-time = 10 # redis-cmd-timeout = 0 # redis-connect-timeout = 1000 # b2b-url = http://127.0.0.1:8090/ # xmlrpc-format = 0 # janus-secret = ABC123 # log-level = 6 # log-stderr = false # log-facility = daemon # log-facility-cdr = local0 # log-facility-rtcp = local1 # debug-srtp = false # log-srtp-keys = false # dtls-cert-cipher = prime256v1 # dtls-rsa-key-size = 2048 # dtls-mtu = 1200 # dtls-signature = sha-256 # dtls-ciphers = DEFAULT:!NULL:!aNULL:!SHA256:!SHA384:!aECDH:!AESGCM+AES256:!aPSK # dtmf-no-log-injects = 0 # graphite = 127.0.0.1:9006 # graphite-interval = 60 # graphite-prefix = foobar. # homer = 123.234.345.456:65432 # homer-protocol = udp # homer-id = 2001 # mysql-host = localhost # mysql-port = 3306 # mysql-user = mysql # myser-pass = mysql # mysql-query = select data from voip.files where id = %llu # dtx-delay = 50 # max-dtx = 600 # dtx-buffer = 5 # dtx-lag = 100 # dtx-shift = 0 # amr-dtx = native # dtx-cn-params = 60 # silence-detect = 0.05 # cn-payload = 60 # player-cache = false # kernel-player = 0 # kernel-player-media = 128 # audio-buffer-length = 120 # audio-buffer-delay = 10 # audio-player = on-demand # sip-source = false # dtls-passive = false # mqtt-host = localhost # mqtt-port = 1883 # mqtt-tls-alpn = mqtt # mqtt-id = # mqtt-user = foo # mqtt-pass = bar # mqtt-capath = # mqtt-cafile = # mqtt-certfile = # mqtt-keyfile = # mqtt-publish-qos = 0 # mqtt-publish-topic = rtpengine # mqtt-publish-interval = 5000 # mqtt-publish-scope = media # mos = CQ # poller-per-thread = false # io-uring = false # socket-cpu-affinity = -1 # rtcp-interval = 5000 [rtpengine-testing] table = -1 interface = 10.15.20.121 listen-ng = 2223 foreground = true log-stderr = true log-level = 7 rtpengine-mr12.5.1.22/evs/000077500000000000000000000000001474347554000151665ustar00rootroot00000000000000rtpengine-mr12.5.1.22/evs/etsi-ts-126.442-3gpp-ts-26.442-v17.0.0/000077500000000000000000000000001474347554000223335ustar00rootroot00000000000000rtpengine-mr12.5.1.22/evs/etsi-ts-126.442-3gpp-ts-26.442-v17.0.0/patch000066400000000000000000000102231474347554000233530ustar00rootroot00000000000000diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ # Paths SRC_ENC = lib_enc lib_com basic_op basic_math SRC_DEC = lib_dec lib_com basic_op basic_math +SRC_LIB = lib_dec lib_enc lib_com basic_op basic_math BUILD = build SRC_DIRS = $(sort -u $(SRC_ENC) $(SRC_DEC)) @@ -10,6 +11,7 @@ SRC_DIRS = $(sort -u $(SRC_ENC) $(SRC_DEC)) # Name of CLI binaries CLI_ENC = EVS_cod CLI_DEC = EVS_dec +LIB_SO = lib3gpp-evs.so # Default tool settings CC = gcc @@ -49,13 +51,17 @@ CFLAGS += $(foreach DIR,$(SRC_DIRS),-I$(DIR)) # Source file search paths VPATH = $(SRC_DIRS) +CFLAGS += -fPIC + ############################################################################### SRCS_ENC = $(foreach DIR,$(SRC_ENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_DEC = $(foreach DIR,$(SRC_DEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) +SRCS_LIB = $(filter-out encoder.c decoder.c voip_client.c,$(foreach DIR,$(SRC_LIB),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c)))) OBJS_ENC = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.o)) OBJS_DEC = $(addprefix $(BUILD)/,$(SRCS_DEC:.c=.o)) +OBJS_LIB = $(addprefix $(BUILD)/,$(SRCS_LIB:.c=.o)) DEPS = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.P) $(SRCS_DEC:.c=.P)) @@ -63,7 +69,7 @@ DEPS = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.P) $(SRCS_DEC:.c=.P)) .PHONY: all clean clean_all -all: $(CLI_ENC) $(CLI_DEC) +all: $(CLI_ENC) $(CLI_DEC) $(LIB_SO) $(BUILD): $(QUIET)mkdir -p $(BUILD) @@ -74,6 +80,9 @@ $(CLI_ENC): $(OBJS_ENC) $(CLI_DEC): $(OBJS_DEC) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_DEC) -lm -o $(CLI_DEC) +$(LIB_SO): $(OBJS_LIB) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_LIB) -lm -shared -o $(LIB_SO) + clean: $(QUIET)$(RM) $(OBJS_ENC) $(OBJS_DEC) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) diff --git a/lib_com/prot_fx.h b/lib_com/prot_fx.h --- a/lib_com/prot_fx.h +++ b/lib_com/prot_fx.h @@ -622,6 +622,11 @@ void SetModeIndex( void init_encoder_fx( Encoder_State_fx *st_fx /* i/o: Encoder static variables structure */ ); +unsigned long encoder_size(void); +unsigned long encoder_ind_list_size(void); +void encoder_set_opts(Encoder_State_fx *st_fx, unsigned long Fs, void *ind_list); +void encoder_set_brate(Encoder_State_fx *st, unsigned long brate, unsigned int bwidth, + unsigned int mode, unsigned int amr); void destroy_encoder_fx( Encoder_State_fx *st_fx ); @@ -654,6 +659,9 @@ Word16 gp_clip_fx( void init_decoder_fx( Decoder_State_fx *st_fx /* o: Decoder static variables structure */ ); +unsigned long decoder_size(void); +void decoder_set_Fs(Decoder_State_fx *st_fx, unsigned long Fs); +void decoder_inc_ini_frame(Decoder_State_fx *st); void destroy_decoder( Decoder_State_fx *st_fx /* o: Decoder static variables structure */ diff --git a/lib_dec/init_dec_fx.c b/lib_dec/init_dec_fx.c --- a/lib_dec/init_dec_fx.c +++ b/lib_dec/init_dec_fx.c @@ -965,3 +965,16 @@ void destroy_decoder( return; } + + + +unsigned long decoder_size(void) { + return sizeof(Decoder_State_fx); +} +void decoder_set_Fs(Decoder_State_fx *st_fx, unsigned long Fs) { + st_fx->output_Fs_fx = Fs; +} +void decoder_inc_ini_frame(Decoder_State_fx *st) { + if (st->ini_frame_fx < MAX_FRAME_COUNTER) + st->ini_frame_fx++; +} diff --git a/lib_enc/init_enc_fx.c b/lib_enc/init_enc_fx.c --- a/lib_enc/init_enc_fx.c +++ b/lib_enc/init_enc_fx.c @@ -1006,3 +1006,31 @@ void destroy_encoder_fx( return; } + + + +unsigned long encoder_size(void) { + return sizeof(Encoder_State_fx); +} +void encoder_set_opts(Encoder_State_fx *st_fx, unsigned long Fs, void *ind_list) { + st_fx->input_Fs_fx = Fs; + st_fx->ind_list_fx = ind_list; + st_fx->rf_fec_indicator = 1; + st_fx->last_codec_mode = st_fx->codec_mode; +} +void encoder_set_brate(Encoder_State_fx *st, unsigned long brate, unsigned int bwidth, + unsigned int mode, unsigned int amr) { + if (brate == 5900) { + st->Opt_SC_VBR_fx = 1; + brate = 7200; + } + else + st->Opt_SC_VBR_fx = 0; + st->total_brate_fx = brate; + st->codec_mode = mode; + st->Opt_AMR_WB_fx = amr; + st->max_bwidth_fx = bwidth; +} +unsigned long encoder_ind_list_size(void) { + return sizeof(Indice_fx) * MAX_NUM_INDICES; +} rtpengine-mr12.5.1.22/evs/etsi-ts-126.443-3gpp-ts-26.443-v17.0.0/000077500000000000000000000000001474347554000223355ustar00rootroot00000000000000rtpengine-mr12.5.1.22/evs/etsi-ts-126.443-3gpp-ts-26.443-v17.0.0/patch000066400000000000000000000102351474347554000233600ustar00rootroot00000000000000diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ # Paths SRC_ENC = lib_enc lib_com SRC_DEC = lib_dec lib_com +SRC_LIB = lib_dec lib_enc lib_com BUILD = build SRC_DIRS = $(sort -u $(SRC_ENC) $(SRC_DEC)) @@ -10,6 +11,7 @@ SRC_DIRS = $(sort -u $(SRC_ENC) $(SRC_DEC)) # Name of CLI binaries CLI_ENC = EVS_cod CLI_DEC = EVS_dec +LIB_SO = lib3gpp-evs.so # Default tool settings CC = gcc @@ -62,13 +64,17 @@ CFLAGS += $(foreach DIR,$(SRC_DIRS),-I$(DIR)) # Source file search paths VPATH = $(SRC_DIRS) +CFLAGS += -fPIC + ############################################################################### SRCS_ENC = $(foreach DIR,$(SRC_ENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_DEC = $(foreach DIR,$(SRC_DEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) +SRCS_LIB = $(filter-out encoder.c decoder.c voip_client.c,$(foreach DIR,$(SRC_LIB),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c)))) OBJS_ENC = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.o)) OBJS_DEC = $(addprefix $(BUILD)/,$(SRCS_DEC:.c=.o)) +OBJS_LIB = $(addprefix $(BUILD)/,$(SRCS_LIB:.c=.o)) DEPS = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.P) $(SRCS_DEC:.c=.P)) @@ -76,7 +82,7 @@ DEPS = $(addprefix $(BUILD)/,$(SRCS_ENC:.c=.P) $(SRCS_DEC:.c=.P)) .PHONY: all clean clean_all -all: $(CLI_ENC) $(CLI_DEC) +all: $(CLI_ENC) $(CLI_DEC) $(LIB_SO) $(BUILD): $(QUIET)mkdir -p $(BUILD) @@ -87,6 +93,9 @@ $(CLI_ENC): $(OBJS_ENC) $(CLI_DEC): $(OBJS_DEC) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_DEC) -lm -o $(CLI_DEC) +$(LIB_SO): $(OBJS_LIB) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_LIB) -lm -shared -o $(LIB_SO) + clean: $(QUIET)$(RM) $(OBJS_ENC) $(OBJS_DEC) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) diff --git a/lib_com/prot.h b/lib_com/prot.h --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -624,6 +624,11 @@ short lsp_convert_poly( const short L_frame, /* i : flag for up or down conversion */ const short Opt_AMRWB /* i : flag for the AMR-WB IO mode */ ); +unsigned long encoder_size(void); +unsigned long encoder_ind_list_size(void); +void encoder_set_opts(Encoder_State *st, unsigned long Fs, void *ind_list); +void encoder_set_brate(Encoder_State *st, unsigned long brate, unsigned int bwidth, + unsigned int mode, unsigned int amr); short findpulse( /* o : pulse position */ const short L_frame, /* i : length of the frame */ @@ -651,6 +656,9 @@ void preemph( const short L, /* i : vector size */ float *mem /* i/o: memory (x[-1]) */ ); +unsigned long decoder_size(void); +void decoder_set_Fs(Decoder_State *st, unsigned long Fs); +void decoder_inc_ini_frame(Decoder_State *st); void cb_shape( const short preemphFlag, /* i : flag for pre-emphasis */ diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -653,3 +653,16 @@ void destroy_decoder( return; } + + + +unsigned long decoder_size(void) { + return sizeof(Decoder_State); +} +void decoder_set_Fs(Decoder_State *st, unsigned long Fs) { + st->output_Fs = Fs; +} +void decoder_inc_ini_frame(Decoder_State *st) { + if (st->ini_frame < MAX_FRAME_COUNTER) + st->ini_frame++; +} diff --git a/lib_enc/init_enc.c b/lib_enc/init_enc.c --- a/lib_enc/init_enc.c +++ b/lib_enc/init_enc.c @@ -729,3 +729,31 @@ void destroy_encoder( return; } + + + +unsigned long encoder_size(void) { + return sizeof(Encoder_State); +} +void encoder_set_opts(Encoder_State *st, unsigned long Fs, void *ind_list) { + st->input_Fs = Fs; + st->ind_list = ind_list; + st->rf_fec_indicator = 1; + st->last_codec_mode = st->codec_mode; +} +void encoder_set_brate(Encoder_State *st, unsigned long brate, unsigned int bwidth, + unsigned int mode, unsigned int amr) { + if (brate == 5900) { + st->Opt_SC_VBR = 1; + brate = 7200; + } + else + st->Opt_SC_VBR = 0; + st->total_brate = brate; + st->codec_mode = mode; + st->Opt_AMR_WB = amr; + st->max_bwidth = bwidth; +} +unsigned long encoder_ind_list_size(void) { + return sizeof(Indice) * MAX_NUM_INDICES; +} rtpengine-mr12.5.1.22/fixtures/000077500000000000000000000000001474347554000162425ustar00rootroot00000000000000rtpengine-mr12.5.1.22/fixtures/LICENSE000066400000000000000000000003111474347554000172420ustar00rootroot00000000000000"Kaer Trouz - Falls Through Walls (80s edit)" by dotjot 2024 - Licensed under Creative Commons Attribution (3.0) https://creativecommons.org/licenses/by/3.0/ https://ccmixter.org/files/dotjot/67669 rtpengine-mr12.5.1.22/fixtures/opus.1.8k.11k.music.ogg000066400000000000000000005054701474347554000221330ustar00rootroot00000000000000OggS[°ózÅÈOpusHead8@OggS[°óz5–CÿYOpusTags Lavf61.1.100encoder=Lavc61.3.100 libopus2title=Kaer Trouz - Falls Through Walls (80s edit) artist=dotjotcopyright=2024 dotjot Licensed to the public under http://creativecommons.org/licenses/by/3.0/ Verify at https://ccmixter.org/files/dotjot/67669TOPE=Kaer Trouz TPE4=dotjotalbum=ccMixter date=2024OggS€»[°óz<°o2 !     " € QX±Rü~j4ÛÆï™nå—À˜!îïØ¡n£>Ùq¾Ò“X\ש[…êžIAjF ¾†÷Ox羉¯­½cÙ&@d5j\ÈERc_3Yüpñ¢ìß)Y˜¼ò*Ë,MFý(Çpá;‹†?ÕÇõ%¼X+‘ €¼ò®°RÝg4ô“»Z̼¶2!bgy›ÄÅÀwöý ½Â1mrȼ¡Î{g©7¥¿,[Årö»6Nê©@½R'i_&¼ˆÓ#ELÚyîbyVõ&½úN‘¹UDædT÷XõO:OÂî2Üë:<@Ô½׿r*Ϥ(ŠÙN>2HÂh «Ë#D6ô½@H[ÍAtEÇ$ÅVüüDº …tÀø|e¦•Ð= ½[Z:£zA_µÛÎyÒª Ø`×`c`¼ðÆâ»ÌjËi¾G1ÿ=î^p~ó3p¼Èƒ"@öê®»5ÛôÛ¶{Q˜¨ ]‡[Þ¼žã+FO‹#†Sä•$ùvdzYo<ü¼›!ZÑöS pÛš (ìÎóJ¦àhß7¿ò ¾3v{û–¬zÑŒ_òìøˆw™b+À¼Ë+BSóJryq‚iƒƒÑÊO4gݦ™2Y¼Ÿ^ÛM«9¿ÍÔi'댕݄iV±ÁþŸk¿ðøItˆ?ýy´³àÝ–¸ Ñ¡‚–‹<>û—ÌÊžX,ZÂôôÈ"BYE$3 I"À Ѐ¼ÉóÉöÂŽ™›ðv„p £v=S_¸ægr‚ 3°À¿óÈ‘F²V"D¾Nø,ó ÏÆbäùEà˜ûJþ`›S6:)«íˉ{³÷'ѰE ¤½³¤¥†jiBë)4“©Xýe´Ù@Ä~༢I¥>ÙxúM@ã;è wvK¡O—1.ˆ:€¼Ÿ*÷Ì‹Ýñ¼ÊC âà lÙi†uæng¼žäÄöL-+ÄÄpÔŽKko+9•1¼‡^…Q¡z€¼uÀ¨˜4¹ªeI:4y{ÐÆyvv¹²‡ —t4¸O@ÝOì<~Õ—aõ7ø¯Æ~…Ø p.u´Á¤Ø²ïw_´é™bhBVzà˜6sÁ>òÇÒîâ…ûSw=¢ÁÐ(Žú=—¾hG•_g*6ó³wUÙ&ÝØ—§–‹RGÂ7k",k@ç8x@¾‚ݶ¼›!&„#)•Zê‘"¡¿ ‰¢Ä&µø1¤h¼Ay‡åX‡Î]…wQc‘t¨× µI§B ¼(&kû9Þ0»/‹ñ–OË ‚‚úùñê!!¤¿Ö¿ëÄ/l¸ÏÞµÒª×0õìdŽ{Îr_÷ú ¼[ÔÙï¡+_„¢ê'ÓK ó®ôŠj,þ¼K îX¼wí«zk5p ´  lrÈCkº'€¢è ¼…tñ‘?©§v†ÈIð_¹³Iˆ…ÛÂà«v€©kÀ¼–âsØ8æùZÚé`¯EÆ‚Ž€ÂsßíÞ@¿ðãpåŽÁ³ø¯Cz$¾0œ» §ÙçpUª¼ùŠ0—à˜TAŠ 1É{!€XÎÖÀ¦Äý‡¤Æ˜IS ‚æ/3å]0µ,(œµ¬N,ˆ˜CsX@%P&ýíR’Þ)íÍYÀ…ß$^O'oºlÑðÔthtx˜¥g¼&ª™ø×iÍMGé;dT?²ô¡0 ]VdZÚuë)ëÆõ&,Q\…»d>»úÿ>驆oú›ÜÑ2£TÃ;àÎÜü&{À…Ú*1³j(×kîùi£À+ÄåÐùV…¦œCôh`"ŸV &,Ï9×®€uÈÜ4n$+V¡wÿ?äõyP`?£EUR€¨ÉÝ©¤ ÉsÐ)`?žr 2ªM/pÈßè~Â%°?ž ,•ø¬pÀ–&\•Ê>ÐÚâV»áø…žšÇc·æ‘™­ 4ÓçÜaæÏâ3¬é˜˜6lU‹ëÊßöÐ/^{ް£ºªì±e]Ê›—žk¿t¸ ÔT±bÅ ÑîŽ0³ù?¥‹ ¶ÎûÕ’wÓ;rJ‡6â`?œíÔQpôÕ`ð?°CìÂt([Ä@€?'ÊbÇ6sxŸÜü>yŸX›úœ?»=ã¥nc-:X_3">åäDI'û0MõÐ…»#Ÿ?ù;…é÷áËcì³5 |î9#@˜Hõ-¾2s{¿Æ´îQñs²žÊA“ ¼È†X†3¥œT'¾˜ˆôãjZ°ªœR›úmŒ¼Ç;vF±òŸ÷FB<ðº°/îý‚½4éDÃÀ÷¼žô>Mrç‚…=&ŒaXè`p;Ÿ^c/B+GP¼¤«£µ…Ϋõöû_ºžUsñv—n~Z Ä©‰›¹‚EÞm›ÃR¼æôÿã#ÓøÇÐÙ㣟l]™ˆÙ ±Xü¬¿óÌJ4H¢FW׫Fޤ‚ð›Y‰m6œ›µÊµÛà¿óO¸ÝþѾ°éÂå&kVåy𤶽yó@¿ðÊEÙKï$øú%«Ý¯!6űýˆ·,äC:úþ ¼”‡ïÛp¯<Ñ+mpÍÓ²Ÿc‘€OggS€2[°ózK8À2…­}@½»¯Óùi;WQRÿ„çnb°3[2F…è*2ËïÓÁâ÷ã7ƒ·Ðð·|UÀ…Â>M¸}öKì®.Ôƒ*UWªK ѵ¡gÀ…µ{N\.šƒÏt†s›ù¨DÜÍwõ l—7ŠQNâšýÿ ¼FÏîΚ×]…°{ØÄÄyà{ U=ÕÙÆèTÃéºìû'öS"ø8¦ÏPÂuÀãà…îdìóòîùùÜ:AÒ‡™km! À½9tš ¾9¾zW±©rgÓÐ+LoETWÿ€O‹½ Gˆ£ýωúžX/>¼#èª:ÍÜ÷u ;]À½»”œw¿‹ ˜¹2Ò6éfjª=m”6À¿ùæAz©ó>Ÿ›ãÚAÊŽÌ€ §*"óÜ^xO•¿û^EdÛ9È<òˆ-O=5—•¨Ãúoöªëð˜BG<Þƒê[S£à'g•zñ^õ쳂`?ÄÂg’U‹1åÚ`–î™øÜöd˜g1ˆ[fk¹Êq¦¦#°VöðâN˜˜ ´³¸À´—! mòZÿ=Q‚¹ËÀe«œ;€˜6î½f¨´¹ÏbU!ø<²:˜ßœ­ž…Ö9cëŸåa%)’õ3P FlA¾ÿ£íb…ê~•Ýp›™Äåôï·©øÂ‚rì RÕc…î-&"áÏ$-ù|€í› dK:ƒ¤`…ßÞl~‰&?©¥ñeAÚ]®4ÇìÀ˜+(玽²½T¤6’ö`·YBp†+ …é0àäă²{@Œké/S"­69´ €½9Œ|×!pvÂåã Oç2Gñ,Oõ_³‰£"À½7r„œÅMÀ'Üž{^KÙ$†èÀ‚ìù±2ø˜`¿û*¡È”M&UPµ|[©¸{³…ªv¶½!‡·¤)õ~)xÕ]ãKöãùzK€6ã‡L¼½XQê 7zü¤­XóçuÁÝ`´Ø_M@…áŠÑ|žÅÖ’ެî\»Œ€…é1aÈk‡³›å(oh)PÂ@…éÀ&Ùë`̌֠ΪW1ÆW§™8…émØÑÛœ/&JÖ8•ûŸ WA_Ñð4®…éöY<‡ò#>‚à5ú¤ðѸÈ=?@…ñ%XB€r¬@Ø] ??fL>¹zÍ'jˆ˜7F0‰™/èÝ üúÎsû*¼Í€—ðê2cwÒäjÍøžÞœ‹fÊ\ðqm—óýégÅR\9Ó-™Ë“Ì,në–‚5…ÒHˆœ~ ÈB5þÔ“ëûµ¿=w]b£á%ç›<—ó K鎬Œ÷¹ó¼‹Ýç#²¥…ÖÌø¬SŒÐ«©»>(Tœ2rFèÆ4¬ …ñ5Q€-;7¸”ÕÕc§GH6|˜V‡ £–5Qé§H£òÙò̾"fî8…Ñ_£#^iÓóª3D[fnŒÎ¦jSy—ã×9€¼WÚí4I„+?lµl3I—ÃpºŒO4}õd_L]æ"ÿC u¶…Ç÷ü—ƒ¥.O!§,36ùWW› ¬…Ô›,"„‡žÄ¥Ø\^«1â¿µáØ—˜:g|†—ìá 5€¥·grQà¢ë"ÀõOggS€©[°ózŽVÑ2! ˜iê)»ÀGïÆæœõí—ïtúĘ„Åp\_vK±s¬Æ+Îd£ÞN*½ G‹ŸtñM•ðáñ¸šî }‰ó÷Æ[;žØoÀ¼ò¹AÝ.kIV8>.³Û&)7—¨ +]i凼øø·&k9ÿó> nÁGNtªªèwÔ ^'±Î> ½'U7zd韷[G¤½ —ÌW/gTc¯ä|­˜½JÙ‘~QRe5Ÿ„ö‘{žËŒƒ¥ÄVØ%ü˜@nhÇ„½tpèçŽÛ¡?Æ&+Š"Ê#øÁü9æN\€¼ò%Os™²*ƒ÷†MÂZÙwIó\1Bãoý,!4¼ò$0 }2…>§ÂB¡ôéƒþ§G¤Ü ¼çúD ¬üèc.G÷ÔPÓF †¡³ŠÃZü€¼ò0'øi53ÉåÓÜåíðsez°“öÑæ½¹L?¥>Xþ´±šÎ]Yõ™¦H¯n?+öÐ8w?¬…î)©¼S<“‡íB´­¡;pP˜kNÆÌÏáDiιß)]€˜\]¯kV±FZ˜1U³·ØRß…ßaAC9K]çá=KsЅǾ“ð€…ÜÚ(6·G¿¬sî,Þof_Õ ¢æ÷¾˜ßî ˽òDÉî•ý‚H1¬IQ˜9ÄéýÒ¢R–Å•Â0(3‹‰× …éO£¶\žŠ6óöˆÍ&½û9Ñu/g@˜9¥ÁÍÇrî?¨âØ?él–+@p* {)”˜7{3ö[£´7ÓþèÂt£âì9˜<öId7“s鸹šœr0(s/ÿ!K…éM2™Ùe¸#àvt@U’à³d?Èi+¡Îþ2å*)Qüó.ÿIb…ä´ÿÕ¾ÞéïÐJ¸¥OLüXeÀ…é*Ò€˜Ó\)¤<`ÕæÌÊO˜73°¡¼‹Šª¤ä¥tb’oLU]…äêYÑÙŸðÒ±k¸sYƒ!‹t€—´…ìü¨5„œ!ÅÏÛ{Ææ°§Ë½…ëР±`w"â@¾Î¬Æ ¡‘.ø…ßožÞ|Ãáì©ÏXÐqø¨…ßoî¢ýµ¦éŠ­¬”¹ãS] €?ÂlIvš{¯Û—²l»SÁ@+€˜)T¨1­%¶Øˆ¶3›Ò FÚ…ÖÀ(˜Oë»›²­*$I—À”Z9V;Ø…뼞lm•<#!\«÷‘^n¥i¾À˜8ŸšÝ6*óÜ^ä OÁÆ?lÔ£6OggSe[°ózŽøµ2"!…â39ñ‹ã!Ç“a`éòhzJÿ¤ð˜ ¾gH$€Ü8V¦¥R8wðQþX+Y`¼òeOœgï.g€ˆåUµ:ŒÑž/Vμòybô’[ÆU÷îáYC&ï½ÄS°C{)¿÷7¦üáŒ__òl2F¬µ¹ŒòŒþ’A`…î!øù– mé@zÃlŒ‘zIöD v—¹.<©{µË.¥q»¦›VIÒ`Ú®Dåb˜—æ‘x°‚(ñå˜Yær[/ÉêèöŒdà—Ûj]]§­Û+€`gö: \Y,2 —ïmÈöëÂS,Ɣү¡ÉÞ…Ñ+߃Jû±ù/Èyó2žw'¹áß8À…ßj®. ×*Ú A´0áïËbɃÊY@¼õÌ9”Qü8G…›ëp1‰cÖ9`˜n±zмèÖ2©fÖ$n=´hôe9઼x¼Ä)\6™ù•-=?û}ßvBYw­Çµ)¸u€«×#֠⹿e;x|ª½ÌõýÏß|§Ýk1å] ˜ˆ!ê«o7Gèð]O1OMuc›…â­„ã‚¥,pë¿dN›ˆü›]&>˜AÃ¥~ƒu:;Và5;Oiúd¥‹³:,¼À˜:)a^7°2“7äòš…ˆ=\Úé@˜7 >S¯1ÛâÒy󦠼者H¤—±Vƒ›‚¢ZwÚ<µ.¸Áà˜XoüÍ‚±glLܦIC˜ó!œF@˜H|{1f2å¡„Oç ½•9Êû6OggS€ [°ózâœ2ñ2 —ôÏ3DŠÏOËçìúäPæÈ…Ýí5ËþŸ[½£v`ŠëÓð²¹"ªEØjo x8ñÔÕ¹®-l‰ 6ÓhüRœ—ñý„@€M¥{W¤:Y=t I"B—ó()¾Ì«\t¦t¤øèWkwooÜ…!€Ê*i„ŸiT'4w’’õr±¯{ÐßÞÎYš{-˜+;ï³›jxî—œ¨Ç|”ø§Wº¼æèâÛ ‹tSiôQðRÃÕÔÙ¬4Ù?¯JŠLÕÉ÷ÒÐá=Ë™ÅÚHµ‹­à?»_Q Áø¥‹%þ¦x;B­ÎK —ï’â¶Œü0|z¸§ A¿v€—4É#¦ëÆtùǽÇmiü’Æ“æ…ÔMmJ¹ç£ÿ¹7K/`Ùïeg|>Gp…ôå3Ù}: ª gô»?ÍßÎF,Âë½€?³Å (ÄøÒm!ytµæ³I?³É†ªïŽwµŽ–÷ºì€Úñân…Á…—F÷8KL¡Øäu•c3ÁS*½¼’œ¢Æ4=ˆºŸ/¸äGüŒ)0£ðwz€¼uÓ)ÄŸH?ŽÈR{žSJ*¾_0©‘€Ì¼€·{$ƒoÎ]|k o›ÈŒ¥{OÜYª  ½@Â’Ïïï·Í÷½ÙPaÈ×5—ñ0g{©ò±Z4;:ŽÛúVaý:æ…ÃVqüÄUË }kBòé)v•F÷€—ÅAÎ)ùÖ™6 o«,›$Ô ¤;Nj°?´•4ÄbŽ£ÌógÝn¬[­ydI^?¬š è¿ñ~Ñ=LʳÑÝ_f:0€v¿¹îXÌN:\â^ ÿ½I±È·!€˜¹ ÍòË…9‘éRXÿ¼˜ŒÒ›ó‚ÈÆÁ¦cµ±6Px?ºœ‰Oº.ηb0Q«6ø?´Bû«zsj fõñ`\O³…4—Ó©¼{ÕÝ›2 ås}¯„EG–ÚýÔ=€—ï¿Y&@|Y½$°Ö1^Lº@•-n& „ȼÓù` } ­PœSê×NVÉi‡Q®Ã,ô­s„ô0.,½Qü^¼‹4á¹oíJeWœ9üK÷ã³ —øgý½h),òžÐ?主H–'î=HA°—Dõ˜Þ§;S¢‘¡rá4 ?o€·?˜:/D?<¼'ã/mKHKä¥<“¶íl€˜:/Oc òÌ ³!ÿ=¹é[Xm Å|˜; Ô’Qéé‡×ž:{XßQUcþ¥âȘB¿ç5aoF™ýr½–‡É^lÎaŽ˜:9ÝÁ ²îÏI£Md(Ã;ÛHÅ„qÂX˜9DPb³”\9•/CZDœ ‚û‰YmÕp˜Ÿå‚òa%lð8qÔ,`_G`˜Y€'¡E¯kC†çˆkOggSÜ[°óz Ì¥Tf2!—íIGÔ†üHÎ1œ*ϼ–'r6€…Âñ±ì€B-¯³AQÈ(+…ÆÔZõŒ&¼ÿïGãnü™ér …ëÆªºLë¾ÊDTráe–™ º…Û%¿òFî‚Ú ƒ«Ñºe=+­L¤@—ÆOµw¯çËÙQ°›J¸Nãú!U–˜—Ä)0Ë z–å‰8rfo­8â.¸ç "1€—Ç?o7ð¹JÉmìCtHRa«—1>J¹{(F@?³Ñ ¸þ?ŸÕØf”LQ < …Äõ[øŸI÷qÝ`"° BûãtÀ˜@”E«á д‚šð3~ç:yLwu˜ë¶ ÒjñU Â7Ëë]˜». Ñ|—òMpÚ¨âºÿ°¦ÓÄ ä‘¼€…Í]zèàjþL/~ÐÚtfJ3ð—Ç$ö쮟™ÌÌ­ï lž1'û8‡D1ú”—ÓŠƒ¸°ÚÖI¦ ùݺbæA;g„0…ÔÇê ó¸:Ó´1çV$…»i¼vÁ‰%b¶ €˜d©5פ²©†pgx„›l˜]®˜77$ûèø Zèq£ûäŒdú)€I¬˜‘¨@]I„ºë¸­GÓ‹xìÔê]óa."eDÓÖ^G§«Ê£r­ÀP—ÁÝ^ˆq¬qôÝ£ßw½ˆ°8ºÝ—U—§Àt>‹€®Žî´üã =lf—Ó§ø É»È/S kl½êqZ6å¯ßX—索X‚UM` ÁßÚߨ€—ølQQß##îò÷¸ ³v©ýÍD…Ò ð=èºv,<·f*+VB{s5ûŒl¼ì”êsŸÝÆMŸ}s\Iš2ÙTÇÓÜÕnÇè¼ÍgmÓž£¬SC\…ÞŸ}buÎ$8ô¹óZOfiûž€—þÕê¯å ™(à/ï1aãn8q‹…Ó pObR)³>S¤÷†À }>ï …ê:4Øk‹¤­Å#{te^Éûy€…âÔ¯Òg6n›mîâe€#€˜Ã@@z“h¢[*ŒýL(‚˜&ÜË&Ù%8wNÚ:dñ·_†ô, ˜9¾c3Í.½­m*bLÄ®cŽ. ˜9B"†0qÖva;ãºOœÏÑÐ…ä½{W$\ƒ³ú a²99Cr!Tí4˜AØ*º0æ ±f=‹‡«1ñG ˜9¿u¹'9L¢ðÍ Ô«Œ3˜8;M&å·ËjÙ)‰7ÓŠ òÓ €—øœÎ=ì.Uú`8ÃKW‰j¶Ï±«ð?»ÖÌ\-C¤í—c¨æ([}s³€…âH;ý§¶I1YÞÁ”‡OO²ó_‰…äÐÍŸ ÆYžY÷¶§c…RÛº†¾Ì …ú³Ö€i¬G3H.”wùoÊ2[™4…é2 Ê£“-P¢ÿ ¤½†¥À˜:ç<§©Ç0òr<7䨑gŽóKeþ˜;|þNJ RÇâ-?“}¥•á5ô7kô…éŠ4)IzßZHìÔZsï‘L¤0F6$OggS€—[°óz D¨ºÙ2˜BñzÌÉøÏвoi.&B´l2⌳À…éKë3T:¼ªŠíš :m Ç›e‹5÷€…ê?õ2º¢ªçPû#øFhXuh+e …ì+šŒ«ï”_¼!‹ûU²4M€…ëe¦UÅîÓ"Ý nCD<<]ߘ3-þ¿¾á¯ÌŒ°–3E4öÒbà˜júÅ7(M2zdm-££œC¨#¬Ñ˜…ß`ø™)Doøuñš÷~ÛQ¬ZPo@…â†>%%îvÚ+q¹‹Ž3µBxÃÙø…ôGīɷ”k‡_WO_Ü%ž]y}ÌÀ…èi×Å|h×wãœK4ÂŒ×Z†þà"цë-ǰ—òM(œÒÑÊ4UœLUÚ†îÀ…Ò·ŽeC3¤>+C Mq5æ´O{ÇÀ…ágwí:GÖÍm×™¤Ü4-­6Ìü8…ñKÀ}(æoÕ¶ž¦¶rºMôÔfsL˜Pßk¹"R¾Pî€Dé9,+«Ä ?ºó«c»¥ÚóCƦ§”Œ÷dà?»:‘ÈNy ªÇ tr›áSÛ¬^Øx-i€²÷‰gÎ5:3Ïòîg@n…àLâUŽˬýõàÞ°Æ2Ѳh€…ß„ sâP´¤ìÛQ}G<Ã[ èÞŽ§ZR˜ÖÆ‚rî±L/H!ôͶ¦Å¶LÓ‘…äËÔ’6ŠØ#ܲ¥[ž8×밨 …÷Å`?3Ä%ÓGëk½rX —BŽ2Ș8hà´é-ç€@%‡i¨"øº@…Óã¡A r7ÅlóJ¢g^V:«™Ñ@˜-(ê`Dуï[„IàíŽY«1|«è˜“ÿÈ\Mã™Æ¸ í‡4 .GYjà˜”ÐpjMÿ…#`ûqá…c0Ø ˜!UÞ bõóýýjD÷ûôÐ|·°˜[oãÆÒ©Ì:>äÁBÞ)?iši²˜9ËÄŸR²·"‡<0Wž z+¦3—øchS+z£Mºeާ•òø ÅTA|…ß ­d*1.Qk÷Y¨¨šœuKÚ&?Âc“~ßGÅðxÜæPD¹Ö…ßòƒëG½ò…ÂËw‹”õ†p˜»…â7[™Et3Z«…¸ë`ñ±bø2ºõœ˜Ì˜;r¥Øäg¦ºCäDåð2@£=½ë@˜9rCþòKÓ(‘ôHÆ.½>à…é6äêRúxôFO9Nà¯6d½0…é4¤`éXhñú î Ì$šsK¬ú˜9¾m5ÃÂñ?r¾©°\C,¤Ã,NG‚3°˜9tï–ÕµeLåÈß<ÆÊ`…ìíºOggSS[°óz ør+þ2…êSGÛ¢Hø¼Y­ÌÛÄ®tï‚_ ·Ø…úÜD$R™Ja8Êò«áã„¿8˜I!²¥RúÛ™§àÀW¨³ùÌ¿­ÚŽuŸ…ì2ã°“Už F0 V²¶I‰Vø˜Bñx1ðom«0R¶Ê2å¬Ð£v˜BqBNù¬³jì¼³1ôÂóÉn…ìˆï%©òù‰‘ggxÝåï ¯`˜KŸ&‹ƒKwRÜîSžû–*5à ˜B`B^´<†$«ÆqNÀ[V¥›ôǘ9¦tõõ>]-ÒóspšG]И9v·vz¼©×Gœë=+჊¤¬Ž˜;+Õ!Ä„#SµG‚†Äñ»¬Ø…ì70UÙrÙAêÓø£•§ÉTË@˜@Âåæÿ!gxÎr€!ïPÿ×Ið$~p´`…÷"ºÜ&Ðͼª,$ssC1*1Àzas–˜@v6Keì°O4Ž#Ïîq¼ã…éHµŒ,ÉtuFO*è?O `ð˜7'iÚ 8K³r¼J2Y| ˜! §ç=ú©JsÁÚ0Üë ˜§$Z Þ_I©E¾1df>>=T?Ãy[ÅÞmù·ÍŽœõå ó¼˜9qQ4¸òúõ•Ÿ7Äj4vµÅo…˜9ÿjT_V£ë”?W8×–?ãšá#\˜9¬Ù6¿&>Mõã³–¨i÷ T£µÈø€…é3 ¼Vg€\X"{Óv¾_·˜³³4py>€…é72]èÉ7µtÜöxRZ»œ}i?á°À˜9qNñÓT§´£í*xœ54˜N€…éˆ4P}}‰ï æÑy-raéãâÕ…í;º |5­ fˆRV—ÍD\¼K뻀…ëÖÁ<¢”^Øl†|ôîÖ–µ™UZ݈…é3"]ÿ‡‡ «wÛï‰ >€…錀ßÇžâ´‰âÌP ¾êŠš‚v˜CE]§‹øÅ†Ž3êˆR#”W1!YoJ˜CE댶a"Õbs¸f6Ë/ø²·u¿Ú4˜B”Ma¦tªveX»j?s2—ÂFW'€OggS€[°óz í—q2!˜Búz¥\ö¬ŸýŠP‹-R=fíÍ);…éL9Sq/ã¯7CÕë}ÓË­\˜CEQÜÑ«•œÞ²Ùq¢±µ÷3¯û/ªÚ½8•äéwìbÒManÂZи¢Áøü½qTÑüÖ™°ß0¨ ]+ÞånªÉ)OM¾¼ò \• &¶5õ)ÔÇHtéè·õ3]W"n¿÷–QÕHv“âc³ME—®/ziòó=ý-ÀD?†(wرöÏ.¥8ÈëjI./`½8xºæ»°œýºÚiP~ŒhIÊ〿ùØ£êŒÜà¯Z³ãðŽÉsn\ \j`½!Ü–=×½M3Óëàh,dÀWÍIÓÙ›¾Î€t½792·+)ÆfÔpö‹ž–Û© ¼ù@ð÷q½Hk,±Ï6Y  ºp æðÚt^|=@…êIßÕ÷ßÑz`µÌ ?Ï·¯°˜@“š¬ÉJ°Ÿ$:8h4ÞÒ TG{à˜B‚Œ=M‚™¢OÊ;é+"iX$|`X…éÇ6ïÄIå]ĪáEÎÛ c°ÃPZ˜AÕ7Ŭ֪/vñ·æ³‚$Òј9q{†mŒwÙ¤ðúœ¼hi0• ?ÈìáÒu¯÷õQ5/Ä&½¥‰M–yó îמzPåâ7ÑJrºÑ ?Â0Ó/ëÌ(µÅgZLå Ǭóà˜9¹© æ5ï¥GßK,°ídw{Q?à…ô¸Ò—…¶‘ù¥ñ«#ÀËÆ')äÚÞ]N€?ɼ ëj6æhæ!Ît­‚™wpyÎg’)txZGëÈÒžo˜d—§(ù zúŽp°—ïtöÕ¤ãû-ƒå—Öð ç«y|—2–æ¼çèØL—Ñdƒ&£æ1ÿa¨.>S¬!rÇ(Зøºÿè sÀ¯©èÝçq{¤Ò/©q€…鈅矿~¼Â!ËGjë§ÏÀ˜:FbÖì` ÒE:]èoJEÓ^“€…éc[}ÍèZiÄ…íÁ+N (\%Ÿm«ß˜:@œ¯T«xt®±™Ìv³ùŸ°„T¯«á䘲”Ú<ß" ­3‹Û÷§&D¥§~€¼òy8³›9ÌGgh­Ø!¼žQÖ´ÑË,¦l¼ø[ñ©3N ɹÚ}txßrÙ•ÏnÕ£ý±…÷-¨6XÊ’˜Â:ù~#'pø0Úi `˜AÔ¢obƒ¶¯¦7õÑúüø*¸á;Ì@?É›éØòêæÁ5¥Y­MÚ½µåœyœÙŸM›º4S6Ið”ðy øîKè§ñÉŸâgé×¶Éo€˜+cóª¬'æ‘Ôƒ}ò${º®Nlp…é± èœìNN­„¾áÛ)€ a“PÀ…ôÈ·T9fÍxÊ‚{Siý ô-‚OggSÊ[°óz ”A¯ 2$ ˜9þÏy ®–Õ^1cŸö¢€˜8ró€¼ùZœ…ðA~¡yо7€…ßjß±jçXÛù©ÈÖ.Ç|˜Z¼‡X:Ý%Z&ë{xÔ¾8?¹Óf8£Xh˜ëÏMžÉ‘ÈðŸ•$BþoW@õ ˜M¡•‡/¹÷)j­¨=u“œ¢1O§ }`˜Feg].ÎMàëûênæ1v 8Z"„_Ô…ñÞ߯fÜžb3Ÿk‘¨sØõ†¥e0˜L²8ZË2ÖŽ±‹dÆ#.`6IŠ˜K×Y¦ˆX€É‰ßßO›µÍ Q¹ÿÅ[ð˜Bnܯ‰Í¨arôÄP¯^ºËì¡> ˜: ×øˆB}ll èòôùÐÝA§0…éŒÒ0Pì:Çvë¿´g4í!tÉ<-<©Ð…ú±Ä¤çù‰ {æ¡A0«$s¼t^àÈИK•8©NÄð(auZ±¥ÄÏ ‡Š[å 6¥ú"1 àñ¨™]~à˜Bö¡é|Í.j5îá{á÷^»tÀ˜L9æ§¹î¨ÎIÙ?T2x…ï5šD%›ÜûW‘ŽDþ \¾X\˜L8O$8AË´ƒù ¦Å‚ÒzÙaR¿ûÖ6‘s{¶y(Uw»¸Õ/Êm«|`9ìÊÕ¯±€¿ûIŒ|ìxåäoŠsèS¥B¨Yäà¶1ªÜ¿û=‘‘…>ôJ‡èpx [Âö_”¤UHÅÍìJ@,ú¿û<ãyZÒÑ%Iò¨³Ã³°àZ¬¤µÿ|×¢Jä’7¹¿úKDW¿§ZWôއ}ZzbhLDV¾OÆýëoø7@¿ûB +unŒºc*uiqãîtpeŒKbß·ü̞ꀿþDÖº–&ê#öÉÊ¢:ˆöÿo¤ÓYXÝÇ®$à™€˜Kµ7*ãôhÞoèÿ@%î‰í׬ Ö¾˜CµFM[Sü_äMtÈþø+Ò ÷‰â–…îÐ'KdŠø/ýÖ?C“z^Fº!À…ìÈÝk1â÷([¹‚Ф{ûti†R˜KÄ!75BO¹F­ž/ß9…xÈ…ì4Yü&5—(¹I¾1à©E…ôµc‹ö¨ÒT‰‘Û|{ïòrŒæ YÔ˜IÒñ '¾Ë ™ÿG__<{¯¨¬¶˜C@këãbãmà¸;Zh™cŒ˜Bö·NsíÆk„3.Úibdõ?Ð’¼t†Çï1íoå`üa»`?Ï¢s4Óý ‹¹±ÏF*ÆŸb˜BÙdžÓ öyg“”?,b'…Y“ªk-x0…òÓb>0? äØ*Š&p©/ €˜C5Ÿ,¥—l„ÒøÉ‘‡œ!@˜: #vL%n•'úù_£òŸŽÆNn˜8ÇQNË’¿·Ý¢¿|Ê’\˜$q fl±(\õÕªÕ4¹¼ `˜:GßÜ.n‰}Qš¨Ô× jyôa^7ƒ:ñ˜:b öÌÞJ° ¢G)uº|Uûzè˜9¹‡ÈÛó0Ôs7aaj$ûÀËš¶„˜;~&€ Fõˆ³Œ SO !@-m‰­@;OggS€… [°ózB¬QÝ2$˜C©0~ý¦D Z¨Ü5WŠø\Óf@2…é5ÌC ¸K¸`-6âp ðM‰0€…éÌ}ary] #—’´:ÓSb“|Ćà…ìˆÂÿòRóÞ@‘ÊùÃ6Æ(wíä{ؘE?~ËtßS½¢W\¬µ<~Pàfn.˜N ÏýŽNäž– 6&“!˜(…÷¿~Û\€˜TïþÛøX¥àÂ(RTåv㨅îÑ“HÑY ‡²°…-5dý2˜BöXÐ8ÊKb”šœ©‡Â÷zˆ:IÁ\Žöœ¹à\·˜:äÊýF?u^Y¶X2C8“ ]uÀ˜:‰ÉÆx2RPX{W0^zýטFDŸÞ !ÂýéÈFélGéAÜ»˜I˜éÜ|ˆq^²§§†bS5-á˜9®Ô܈FW-ñL$«N.´;†YqHA˜…é6|ž×ëB>´×aãÃDTƒÈ"@¾y°Î{~à˜:>‚pij]lAý7þ!ÞDšÓgWÖ@˜:ЙdɈHe¡½¡_¨q…ç ªKÚ"˜B W¶úK¹ÊêyN×áý©žµŽ…ýŸ¤ … ½ Ù™× z™ ŽžÉ¥Áþ˜Bäëhpû[‘ä.»òo&…ìKб—drRê ¹!1bCˆ …ìùXˈö)öFX‰éYöqCºP˜D´0w&‚§¡ÖF{ö3L[ë;"…ï4ÆÛ² _e–©›&¯ûwÕp˜L&ÞŸð—é7Ó ôUò°³.눘Ldœ ‘¨çd[ .D«ÛÛ¦/æ ˜L=aêÑ™‹Íê‰ ã@Ý•gê®Ô1þ0µVŒ°€˜LVg!ÈAòÊÿe8b×f¯]ß2Šï…ìPQtŽpp™Kju¶}˜ê×Ú™®¸˜BY bÕ?ŠïQ²0º‰]¦"Ô!—•½lFs*l[Œ);?=*!œ£:fäžäÖ¿ùgú¬æÛÊ”QÚÇxziÓº—'e'8ÿQDï{eȸš"…ólzg{¨g~É*yü€.J¢v%l:À˜CKz6!:˜iB[I/&1'²ÍÂИ@†t䤺Úù.œ'…_”ÅN)Y…éÆüö¡Œ:C}Û|ê|d˜9¥H»X<-¶<[ ©^Ê^+ îÊy’â(˜9ºÄ€Õœ©oº©wiλ.Z£˜9½]ˆ,îàûR-wgŽtM|Ð%…ð‚¬†¬)gêX#%Þ3qÖ£˜@‹‹NMý5üÙˆŠ SÙX|Û¹«€˜72»ÎðrÁµ ˆÙ=OZœq˜gâq\û’ «îì:è²C›ŒÏ @—øtbe¬DªGvßijYõô6 …âD+#*ww†„;”MøhÉãÙ@˜9§ii¼Œ) OjmK¥À…éÇ„€BeëöR³¹MÝ„ÛPfÃÏM28˜Bç7³cOšÎÁšÜªãî.vi§’˜AÀaû3ôñǶþxŒp—9‘_…þOggSA [°óz(?Ë~2 "…ì8Í¡W…Ïè]1œ&¶ /MË  "tDp˜@Škâ2ÊF·¬ü§o¹™Ø"½µÿç°˜9½]Òxf9µËñ½”zyñ0^Y0z)²ð…鑳`|`¡†¡©¢:þvjëh®+[amó …ólaÚs;VÂ_×]Ù» ñ{ëip˜IÆrW\ XT5³ áÂ?Ê##ÐTJ:VöŠIOŽzj%Sø..k ·¿LÃIãP˜: Ê ¡3L)’ãI e)d´~²ÊŸ€˜<ö § Wc³_5W ÷^E…ä#[Ú©?˜BƒSÒw§XCº˜¹p‡hOHW¸Ý°…ðt´ý2qû¾fÌú¸kƒö,–«.€…ëkŽÃAQr;=‰ä‹OïÆÝ6Í¥eÀ˜9¡ÓE­“ŒHéÌuߥü] BW4@˜9*e®œ×éMXx¨™*‘Ê€…àˆˆ1I¬-’+iÌ­VwcC§Ò|?Â&µûw †]Sßß|²é¨˜: ýÀ2ÜÖ«‰pðŽä)²¤×ªÝ…ìe&_ÆÄŸù.ƒMÖ+æ5À˜Bæ¢Yç™+y¼û3…Ù¢e«8˜Bá×™G³·—…—ÊÄ/‚ =ŒŒv·ç…èäoù‡[Ç}‹'‚4±œ_Ÿ^tú›õp?ÉV±º%Ǫ>îr=Ëײ„8¨Sð˜:¶ £L—5Û~¾ÅÓ§ ‰ŒB¿–ëò6˜BÛ÷t hÉàò¾B‡„öçÆDõP…ö‚ˆMr @*ã“(ð•ú8ýn®1„ȘIÉJPâIËlM²×cO©!£l…ìÂ<’V ÈGÖ¼³oJX ekn(v˜B·Dà û-ÐcEWÜOˆß„½7r>øã>?hN%‹ìç2Õ»]¢º®XÎÕܽ9‡. WŠŠK+ÊÜë÷¨gnW qSàà¿ûR–R&˜ùVÿëdÛ5 €w¹*û‡ÅN°¸½Bª†ºƒ+I=N0†®ïˆ8þÁ‚™¢5fÄQ‹è¿ûÕá'M èÛýg¬/ºÿ£V* êu©˜BÛ÷YË”ÆÎ­D"^Ä‚@Ø)Öa çxa¸·˜BÛ÷tŽ0ÿrNaP¶¨0ûÛ‘6 °€…ì=qQÆtj¡n¤­¾î•Ùtò€˜CJ÷ÀiC;ä1›÷_]·ç9X•À…éP‘£4;Ò²åx›¦}#ºt»ÐüŠ¥sÀ˜LSAËü¤}mMfaýé5µ˜q£H9ø€˜LŒán²È•ÒË• “÷Žä˜BçM”­nîÏìóMÅù“x°‚^(˜BƒdxßÏæ×FÐwG©˜<ö¤<=öH¥çV`}3 ؘC:ìe¶Šº:ÃR‰øö“w>V6³ Ƚ9t3mg˜k9i FŽ%è\Šyu¨xÆ|â½<íô¹ß>­lmÓç2Y6ôô+ù=ïìÑ4ýÔ²€½B`vü‰å>r[F\’]­Ö "’´4*,[ÑÍ€…ém—³ Ö»>ùDÚ:é·ï ˜9œ-édž VôÁæý8OаOggS€ü [°ózŽ ®À2! ˜;‹\iX'ûŒ †„ç!¤W>À62-¾¥1`:ä˜ClRHwPðÕE%ûZè§*þ€øÐ˜CÆ‘ò˜²mñÙš&Ø `¶e! …ðƒ>© õÜSÎX ˜QTz¼î`ðP7=º˜Köë‘ÅÇ>i.¶ç¬šãcÔ‡Y@˜CHmï1+ÃZèÜòç±Á.Q;«J3p˜BáÓ†¥E–Çð@Ãí-#+i»6~à…ìk‰²0†z8ûä_ؘL:„²ÇµÈóêSì·É¿M!¨3½¡å€…ì‰5ë¸V €*\™†Ûju½Ê˜Iá[Ï`P|ˆ±g»|bý‘”„ÆO̘C@¶Շƛ‰sª;ïÅŸ€½!‘s,Ç$—¡a¹ÉæÙ;Ê€gÓP½!*Rrÿ ÊRLËÙW}OÛÏF†or '½&À ülQ9Xu&H\×°ÎUkìðmp«ì½KŸ§ÑL¬ùk4ê5(+vlÏ!•£§Ø н9Ê(…p~©,c!mÁKî2_ã—ê° 9ä«×þ3 ½:lǦZZ®i&*gHç+¯lsäHë¼ ½3‘~ïìÄ K2̇v*!gŸõ%K½È=¬Õ옩éÍyý?)½|ÈÐ@½$¿¿œ ý?ÿ¬Åc9÷D?ÁÇóä½G=×Eˆ„H*-ˆ\*{énƒ2ÎñÚa •I˜½A¤¢<ìòÆÁçˇäDtáEt”áµk%ʽÃÛØJQµYxò“ë`STÒpQú6›OÄB½$ÞEë™ò¶º^.¥Õó\Jµ*ÿ‡ ½j—ˆ½9~W'>£euÞ© @T8Ž` 8½@±¦æA0'Èìd/üŽåi)7»Œ'_¸@¿ù×µžÓ–uì;»{O†S]D/ †%qx4`½:®í v_\nèŠÀnB¸:=àÜÚOáИLC{bã!¦GÏSõ»b íJ˜ äìAeXÕ ˜Lšö7f˜ä›â ¡²ä¤ú‚EA‰Z‚¶½%΢ ›lÝÔÙÌòÍNþrd jÄp½—à‚^3ähf”e¯8ù°€¼÷â(»+uÿ© […ª_Ûår?××e¯€½w9§Þ,)¨â'Ö@$˜Œ8\#ff`¿úžË »ïL†=Ùѧ®ñI§­*ÄÀ½7)OÒÁ7bwâ%í$.®¶M[གྷ¯4ÚF• c }ŽîKÞþi˜˜ ¼Ë)ì[™QjR÷ëøèYÁ0ÿ ’nf}Mœ¼Îµ¿û-[ü8¹ð~šIu@L’Ù ßä †Œú×€OggS¸ [°óz?Ó·2! ½>dù¼.Q ƒ$@‘Xç ³«‹ ¼Èˆ3ío:Oô­"ñø¹ÆÌè…w¿«{Þ ½YˆÎ²¬‡‹i ï.x|`p]AŸB@‚ø3äžá ½8`Å$hð‡\ëYý•?ðíòiÀ]\Xü†¼íÑzO:‚µ¢`ÞÆ_çÆ7«wj{]ò˜¯ÕX¼Ç%ŠÌ³ä~Kӣ䕬º†¹z‘­mX¼®²BÜÖÕ;:çH‘n£,èÆ¤—0þ`À¼ÑžoVsÄq2ÜQS:Vv^6·ŒÀ°J¢¼ò$•®åh1LRõ_ ˆ–C1ˆª¾ÖÏ;-€¼ûAÄ×â3Áª@>/’ä÷‡D\5çEbeƒÁ½–±Æøõ]Wï~æ ˜·YŒ¨¼È¶„ôÚy9›N!ySMåîÄž¯_o1€¼ËHæáQ“È+PDþbA…²¬w,iô?Â:sa²j_™3° “ÖO§g¸W ?ÂoŒ;U×ǶShq}0ö(¼ÈðÛÞôlkNôaЋò/¼B8›.oü½/ñ¨r/DMøÈ™)Uï-[ûỆJ|,8½7t‡%]Ô«„.bG«ê×Ô ð‘P€  ¼ðÔ¬U ¦Þ#z—«}hq^‰ùÙéÀÿ•@¼È‡7^bÈUf•ÒéZð  Ž€¼Ë) …òÓû<\2 ø)d¨”~ið`¼Ä!œæõG3mô}}DqÀŠR¶fq ¼žçwxg— Ó¦©¥¾e5¾·e¶Zj7£+ ¿ôÿ¹‰÷ëÿÁa$m#IëÕ—³Z€Îç"ëø ½6Ú±Öx½gØ™˜v*gj‡Uò¾£n%²8¶Ð¼Èļ M±9lŸÏ7ÒSä?g`Z¥¼g°?»‹Ï ›ôNýº¯üµJmïq1°?ÂcˆëgŒõEÜmà+™šGõI€…͹ÆçUwq=ÓÚ!§Ê"›z=p_£æœxzbø§½nç«^ʼ5g^²Ã\…È=jMÒI_‡O»L•ØÐ’AâÀ˜8—kÓÅÀ:…`8­ç4溆„”Ú©€˜oû0/,«qaŽw¤}±DÌ‹¼Èˆ7Ž©¾aèF"\$>Z†*ž@jÌ6œ¼Ç.Hf¨\:Sï^%­5BûdŠVN뼩såPSƒÓàdÍ»Ëy+Ö׬¦›U ¼Ëôc#ûs`¶F¹Nõ;ÒÊ$øGm¨º.½nQŽÓ°½0bZ™Ÿy¯œ ,ºÍ£›h›ib7…(&°ÞÏ4Mð½@MÒ’¬ì(ÃÙ„G/) ÛÞ#›½ÎŒ9­ >Vþ9#”‘ÉŒ=®lÏšO渀½ß@¶Ë·ÌQ©36‘1Î$M¬TTIÇ¢c0ž1„!s½ÆÇD^>u£_úsØu©Ž¦jÄ^'Ò‚s{kj@¿ù<¼û¯Û¼~ýw˜”ôبyÏû*ÖëšÝI©H½:—tÈVAçÆw ,¸Eæ‡ÃX´¤+‡Ü%U¸¿ûð‰oëø "¶Qвxä6;E3Á:gÈ€½…É>»g¾¼ñmuƒ"’g4µ)I ˜u¨ôOggS€s [°óz“éÂú2!  #!# ¼Èª´®3[Óz+·èõâuŸ°AŸà¿ô÷×Ûèµ™ ±üz_8c÷u—ý^Ž'w€½?Ç”ŽÛÎHÇÄ"Ù'd‰gCHm½ˆÌð¼íØŽáè¸uÿYePÃì¦pšK¿H À¼Ä+Ƈ—àDµÒ´¡&Ÿòn4` ¼È³s}Ókôÿ tðTƒq …ðlÀü¿)¸óÅA€¼Í“vRЂ*»–#Vwô—ê#7û1Îê@¾¼Ò ÏÁp™9ad¶íÌË®•SÛâÈÇißúüŒ»ð½òÃ>KC«’ xM5Œ‡šÙæ]Ï9©½A³(ÛÖÌ]<ªHeÒ1M.Ý^Äûë´çнÞÛ²¸Ù ¼-;¼ (ôò].ب—×¼Ê!Š× Öðžqÿý(t£a.H74¼Ì sˆØ a"Þˆñû[-·þ†éž€¿ô¹ˆF¡³*ŠIP>¬Øë÷b 9Úœg\®¨Îà½l;S÷LbK"Ed/™'Ùx‹™Aö#©P¿ú’ñ° f­Œ7Ñl•?ÎØ+iFqgü޼è»Í©mSZD席éÇ3Ú~F<’[zp¼ÈÄ|ø o¾$rKZмP~}Ky¯¡¯¢(?»>jf„P£Ælt9¶øq¿¬—ÄËâ˦4ßs9ù›ŸAË2èÍÚwcRç‡6@Àƒ’¯Œ~™g—̬öƒú˜ýBç釋Ëy€—ôýj-‚ŽtŒ."ÐYŠpº¯öÖ¶…Z#Ę&Å…¤ZÙÚ2\‡Æ‹ ôýŸ2Åà—˜ Œž¢r<"äÜóúËÖªU½q½ý¦p°­²™f'K“kYS‰1½®`1¬‡‡¼èŸ<…墀ÓpeíšÖèåè¢t¼u»%¦×øW㠼ȚD*³ ‡W%÷bµ4W”‹¤„†æVúùôœ&ª…å°³ † oe+\ù°›˜˜:/û³ `Ú7Ô$ÇÍbÔ%Æç $ ˜·ŸOSÐÉ­œužgÃǼÉÃÙ ˜±¡úLßÚa_Á»õ÷’÷þ–˜*ŒBì»d9‘~º!0ª Ñ v1H˜ZB¿mR·+Üü«®VÑìe<_|€—ôЭŸð¹2×;:'a=Uªx»õë…ä–Î!£ ¶Þø«¤°5œ—¯š §úÆÓ˜:Ž¡û4á–%\‘\ñ7ô E€…èfm“úûkþd'óaÙÀ‘ÿ:Ö¸˜‡ölö£OñÛÝË;;0~j•(—òR’Áëk´›)A%ÂE ^Š-̬ð—ð]Žû4Vñ¬¬3äPD°ŸÑÄÁWz*¼òJÈ0A@d1ï2[B÷¥¦'îïÿ p¿÷ÒDT"=¤¿ï·â~SÃ<ÖÐør)ù+Ì!p䨽@,Q†¸{"íM´Øº$Ñ \½! Û™1_´®{_°½ |ÂÇ۲ê¿p¼TE `%cpÀ½ËæhÍiZ#¸—5JU—/ø{TP@uÖ¼½+•qi•WÝú©¼¶ÿdëÆMä¶VŽ/ ½9o¹ùûÔ7>ûÐYÅ㟪Æ13Ä`½9i“èþ:7ߥ3ðcÚÊ ”m­U4xOggS/ [°óz+MRÕ2  !#!#˜:ƒH [ý2„ÀOC™(¡c=ìß»Çb¯P€˜:qlõ²”Q0¬Ô›¤*¦ÒÝ’«LÀ$ôT@˜9°ŸÍ5žÜó“q EüS©¦pGša…èkA®aqNO7Ö'õMÄ­ï½ À˜+h1/mÅ!ÆäÿüĸÅu”lP F7vd½ÁcGÏ &1ƒ2<ˆ~—ç$ži)v4¸ÏCÍ€¼í× 1r{†è*Ö[g¶ŠM2Bõ`@¿õÆ^L—L2x,ÔR¿|¨ž…e—ºOÛeݽ?¯¡ìÓˆš‡ûãjqÊßÂåèÎQzýûà¼É->M·™ƒˆbÔ6îîívñ µ&M†[ý¼ÈÂÐì_¾HÌ©üðgø¿ðϨN•I:ÇO/l3'ÚõêÇöäp+€ªƸ€?¯,ä=Ò[»Ù~iݰë`¿_Ž¡n¦×ЗÇ%׺^öù² *ר“•'Ò#®¤Õ…×™c?ÃNDvÎ,AèfÂô—¨½6å§®TÅ+†÷·#Ó’}Îm¤m(è@Õ·ÌŽ@?¶XiêäèÌleˆ©lÀ‘ãÊ?³ÄaJÐx¤ò´4µ$a6Üå_ƒà…Å—ã“ÇÔ}k´·ë®Êʱ¤—ÃËÝ4ÎcÀïvÃö¾E­i•zë×Nœ~°?¶Jd»>Qš0ÃÛ`Š©ô 2•TŠÀ…ÉT9){4ŒX7ãnÿ%¿y1º[À…éü€‰êi¾ ðeçHë@³J˜+•åu\ãïÆF]਼¶¹^¿Ã'¼ØÎ,÷$uÚÐáÜQÆòq*KŸ‘ÀJ›*3ƒhck€¼ÉL//IÈáê( ­ªà$}Z=üî… ðÜ瀼ț‡•)Æ!ä1Úiµ•¼eWd®ª;fYXMÉs¼Ä6Ç$É€¼?5«A/1vÃŽC¶õkÉËj.€¿÷š«Øý¥»kð[—J/™ ÝÌr¾j3*Z@½@+““‚£~»¯zX»JÿðiMK¼Èÿ+¢ˆJÄDÖªì> /ü™o¼oà¼Ç9+BÍÌ™cšøQiGO¨µœ|˜€¿ñ4Y 6ØRo 3v7¥ Ø£Ri _!Q`Œ1p¼ÈzÀùý¡󺦉~š]$9Ãn#âÝpм¡C‰¹à´BTDÇZ^Ùã+kýʶð=n}úw× ¼²®¢1w?dêv¡„ØþóûK—“Z”98½@%¸”ÌB(°ã}Ωõ®à¯€øÈ™7?cÓ ¼ÈŒ¨„¥²|¬åm¤â¾ÀŒðø E¢¼žâè3ävø¶ê62|o*ãÿ} ½°¼ŸyE`XÌJƒ¿Ÿ°Rò¡7ü±v ú”€˜l% –ÎqN]˜¬suÊv<*ƒÉ÷õP˜+:5¼î™Fïžy#Ñ^¿DÍêÑ\ܵ Z˜:á©uïK®¨0fƒµò¬£ê'YÑP˜93^zåT(K,¢ •{ã¬gähp¼òì¢E^«ÊM´‰Üm»œmc‰çèù•XÖϽ ÎÇ¢ÑÈ:¤ÜòÕ‡ÙÉ '¥’Ù^3®Ã.ÏØÑz«¼ÉÌ/T~jÝ…-]R9ZN÷„y›è^ðÌïà¼ÈžÅ• ]P5IóEýÕx‡„ ‰Ç•MAÕ®m€¿ôó¯fëÝ>ÕÍ–õV€î¨D¼7ìÁìihŠÑ3.V6€OggS€ê [°ózkŒ2 " ¿üT-¨M æðÀ‡k¿/MW½´zü8»wBz½AlB@×o.Í´PNÿÒiX›tg@§P˜<÷-Þe2û©7\6ò'¡,†HÏèS<˜Bõ]?÷K¼k„Ò¶Qñ€Â„Cͯq<*˜Bö.”k @k yèž*ÄÖ`˜Böˆ“í­ÌwÒtÓ¨K·÷˜CJ>EZ~â UáßĘWˆá‰}²EH@˜C·óÛ‘CiÌ ±©„ldEÜL8ˆ©Ð˜BýHüñ{7+¡È¯‡?œï¤f÷‡x˜A¾JÊDºc§ô*Øc8à´œÝj6œ…é6IXØ=1!(†êe'ÍÜ”¨Š @…ì6™ßâs 5ÕöެMç=ƒÐ…ì6šïK¦” Pò¿¾ù¥¶FGãé|~…ìS æ¸L-;q‘((Fß§N+‘•ô\ ½?Æ^·fÄšu¢Aöœã¾þ¡7 aøuÀU¬(Ì×0½[çe2àÓ¸.wÝäƒ1϶-6N@‚í¢š\€¼ò@@ *'ïçÛ38ÀoÆS¶,û¡ïb@¿ö-;bµÝê7K©*²›kG;&UØ›8¼È!KNcg/H£òË8Sä%[xÒÊç”–¶¼±g¿oò†\q=þZ®iù˜›]h$݆V¥¿÷,¶©(ìë’ƒ0ö!ïõ׿>6V0ª±QŒ2À¿û³ßŒhú7Úc¶*쀼Smè<¤WÓ&0¿û6î‹•É©7ý‡Û#N›IvK"Ï)ÙûÀÀ¿ù:Y£ôçÃ$b#yúF¯èv+y–qÒ–#i˜@x¢cgs‡®µ‘,^¯3×ù˜9ZÑ‘O£ÿ(X Ù2€´ê˜ûeÿȘMÑ‘mïœWÊ3ßZˆšâëB…×Z?1îuŠr~q›0g„€Å>˜d²7Rʨ×Ûãx¦>²ñöNÃv5˘Aí$;â ˆÚ©¸°Å,6d˜9õÇ ¢á. Ž?e “‚K8¨©6̘9À[AéæP–¬ÖÄhÛ̘½€˜:^LâÖXcû‰î¼‹'ÑužãïV&e½£®Çï±—m4ÓSe¥}}4‡¬•Z„jûÁýeпö˜1YÿFþμA3y›-™’Y?=•VœnÌ…¯·\¿öq~Ë#Á@ÉAŸl0ÁŽ].®\QìœÜ<€¿öjL¼À{´H(×]ºßCòP÷&9íˆh¿øŒÊ„$7EVÏa.ÕŒ³‚@Ð;TºT‚ïˆ À¼íÓ M9Ù½<˜É”Pj%ÃWnÎi÷î²Â˜¿ù>†Æl#6‡Ñ“¤Ss‘^³u§m‚y‚DuBS¿ù;!Äy- {S2ùì5º&ÄêAƒ¯µ§ìã÷€˜,ÁU}ʧî²ïC„ ÌŠõ®Â¬›7àè¿öÓ£’=¢¡>ž½‰¦Òë2pËÔ,mTŠEµÐb8³D:€¿ùh™bŸ¯ ÞHµ°‡Áñ8žíYÑã 7SÕz«!>[¿ûi&YíºsÝ&@°x=‚»XiVmÎXÞÌ:Èâ½RÓ×ê§ÄŒ‚³”ˆ$õ÷kµyòø4Ÿ¥ ½7 CéØäµIþ»djò÷õ©^‚£ü½9›Ð mf²[§±ø‰šl‡e‚Tôž¨½9 #̰èÞ@âÂá¸Z¼zaäBû"ÆkÆ~ÈË—F½9Œ~l7&bÀªBsÚn•Á,T}jD[$½;zÙ‡µ¦ØU ™É™5kÛ&;l-³Ibæõ`½@mÁ¯]Ú¤„ß“"úÖp…ñFŒ=¦óÿúήØá.ttåÐyíe€˜i,S*çk‹:›Ô«sd躲Ñ÷–Óž…àˆ„Þ=ÚfôGŒ|’ãa‚åZR“¿H˜úCåưî»yÍAZ¾¥8…àUmíª®¢¢m¡²àp—m- à…àˆ…êƒÍß“|3”yllX-õ;a¼ ˜$CJ;ka“›ÒÚŸ–‘º»°Tñ€…èÏ£WY9FÏz›%H¼bŒ˜ïÊ)Ïyš a„)£…UŠÍéÂþsˆ˜9ÃcöOûvFKTFLwòk"( d#˜8„þä:vø˜~gš¡[<¸í¼×€˜+0(Lê{ÑÈæ“)/N7»«À˜: €üUuî÷Û¶–â¿3ùP×Q-»—°…ìëÒÛ»„c{Uâ~±Æ­2n{œýex,˜Sõ<‘¦X­ÜðÚÅ/Ñ¥·¥ÇáU½:h…ës,ñzþj¢|aÕù_§³†G¤j×H˜úCò–JwjÖ[b‹L ³Éf7…àaé‡ùêØpN™žÎZØ]2è_ˆh…ß`14ÙKˆï¢Yý0©]&›ª¯bð|˜eb˜&à×Öà½Ñ—üI†GŸî ÊLÇi…âÌÃvgµ_‹§¼Ól³ íÎ~÷ö°ñÿØR”¬õ…p±ƒÿ•LeH)ûsÚJ5唘ˆª‚‚PbÐó§ýNsÙõ!K»ñoOggS€a[°ózOl ´2  !# —óiª>À¨ç§øË ¿“ c¶nKã]à…ÏY"=õviäh4Ê2·È9ŒRÀ—¢h—ÃyH'`ö'û=åÔ$³O=±×¤gh?ºÒО#ŠÓ'ýÎv{XT`êì9€…âtU|Ò&È­Ì¥§°ªŠÓíùêë ˜L'N>¾æ‹m»ý"fw[áûi=Œ¶€½Ç8Q+•?eÖ*œÎÉæ©¿Eʈ½$ÞUª:&rÀÍB <@R“‘Ìk-q–c‡¾lÍ_¹˜K…èF·gÆ.É÷ícÐ)EÛì%òSL…é8dŽ·û·n Àæ¾B”yò—@˜: € ŒÁÂCwc³»¼Âè…é9·?n²Ùjç'uÙ´þâm˜6Q)®¶í¶_s?ªm …ã%©¬bV£8>JpÕ]?8;¹Ô`…ôµ·&=éä™;Ù×+q1a‚õÀ½@f¢‘¾/žvZ‡Y^#7»쀬9D6 UYà½9n¬§BžÉer 0E5OE¯NüË'f½mà½9Œz±²›2èˆ?ˆ‹è­E$•ð î N€½9n•c×Ã;ÒmTÉvY¦NùÌ镃 ¿OF.Ò‰è@½::Ü)S>ju!“$—%µ[ŽÍGõNõME‡ÆA@¿û½ÚeÚ¥S…ø2-çe/Œ¡ Yúû·Ç]ÙÅ>,Eê½R2¾[ El­îØEœô1y«¡ vZ0½OÏìó òš4nšÊ«”«?É ½ '™ ÚÔ|<êB •ÚxZü\U¿L\ix½!†Eʱèl®¢·Ò@ÿŽ+‘¦êß“©9j½:;xËHg‡‰Y 0¶?Jê³÷:—ôÁà½/ß–kBž½ßszûŒøåÈ|þã)÷úr‹î¤¿ûvýé,Z(*Ï:Waø§Hû-´U湕%óåVŽ,¦œ˜R¨ï壻ܪÊo ol‰. 4Ș ÂKR"D6Y…Éí–±q,ŒôøSA…—ðìuñò¶ˆOØc–ÚÓ߬¼ÈV¬ÁMʬ± ]óoÏKBR$ò€¿ó¾6®)åqѱ2µx9·°g#È{(ÍòEoÕvÀ¿óštêÍAໃؖ“î6ÿÅkÉtTù@—ÓW#@‘ÔÎ:Ù=$J ¯Æ™«L—óv1“!(µa}Üe4~=:™1ªñ°—êÜa2j„!Ò#-òB–¹ —`—ÓW#7—t P-Ú/Š’×Q½u?îOggS[°ózñ ¹2! !!—ëS e¡v|\½ËÂôì+û§ª±êH ¼Ç’:<ïÈr”u75Ïq2z‿ðñ¿"â©;Jò={ÿâ@¸‡Ãþ¥>_ê㎿ñx\´ûðç0•¾ÖçÑeäqÿ¦ö5WOäÐ @¿õ­–¨Œ¿ÐhÕÒ6Ÿ)Êp#N¶dr’Y70¿ò÷ÌÙ cÆÿ%eÃvÕ+²ˆ?â¾pG®4¿ñÿ Õm¤UŒª*åy_`nïÞ÷ïêÈ€— Ùø}2 cØUõ&{Y¿ì™}ë—É7:T[G^]LÉAh|BM¢iôƒiJÀ…ÒaûSØ‚ïvw}Þ"ÛË~ñ©š(´—òÿ/…“NݪÝi»Lmšê± —òÜåkA…ƒ†óEï¶^è´-\ä7€ —êןðT¶é?Ñãgñ·lA9@—óNk±’© ¸iÐ'­Û¤úyàgi—òÿ5:ç}°M¦DòÓ¹[-ŒáÜZP …ͧ+TÛÿšú³SrŸ¸æ‚ƒ#z•@¼¯rvL òì ìª.œ…(BTzzÿÖN`²1è¿óWÚç ÷xW4ÄR+ᔲ4üoÛûä!$Å@¿ðñžn"©Lqü?A°‚Žäeìž Ó[OuæP—êâ7b6ãþŸ…I(±*<×ÐíÅÓæZÕ@—Çml‰V }í¼ž-CR%…¿V((T¹¦×÷?E…Ýr¾Ž¬¿«Æä¿à—§àsªƒŒ}žÅ#B¶òëœí ÊpC sE%þp—¿64â·&já y‹t½IPб9Cð —ºI‡ j–šk¨E‚7⇼¸Òªß7N‰ÎÈ@¼–…uŸŠ<ªyèst€ ‡—õ\ph ¿ðñáe±Kê´á´i?Õ©dAªHâ)#àt•¿ðò’V”Y9 ŠÛS\ÍÕ Ê+DiKÃ6a¾L4ßx¿ñá_ú¾¼-Êw¢šlZ­€ÅµÉ6Ö³AºD —Í÷I|'8x¿žaØ¿nêž`›„Ð…ÛèÑî’<¶B9߇†#êÚ@—ó] ]qÕÑ„=ÑÙ‚¤™û À—ó¸³]›M»E/QÂM »R‹ò®Ê —êÕEí§G¡5ê´×þE“ãrkΡ—ÇHãz+¬{°öxÓn—ò­ú!¬—¸Ðœü_'Œh£sDcqN’Íó€—Ì×eɰ T‰\^Øí¡É¦ws«ÓÔ…Í–((©§¢däT×3|—³˜V[À—›(ìcá³=hhO“ÐVÐØDÃM¦Uã€…ÇæÚª<.-wÙJãC,DjZR™©—€g¼— «z,n £Y ÍVØnùL°Mé³S5|¿Ô?€¼›ÅX™ž¹©èŒ^Yð „ÅúhÝ×^p¼†”bêÈ„²n|hL§®kéÓú¨ 8£&™>kμ›í¯ µqGñvÚ×7WTÖ¨úLy*8];<€¿ñÁ;˾k$aLÓkk°ëDchšÐ÷×Ì€OggS€Ø[°óz—»OÓ2 ! ¿ñ í!Íj’R#ÚDß•'Y¹ß¤ðPA‡Ü£ì´NÀ¿ô fϬêÇv€'4êQ—+ûS¹Õjqã5›ƒ§u0h€¼À“i¹ uÝFiÍ™^®¦â-辬¦è…Ä%Lî¡Z~éÉIÞ„àmîÒŸÁ—›(ìf'pd¿>Jõ0qR!ßíMp —ÉUÂo[dêëâ9AwG¬‹å"^!)‰€…ͦ@ΟF*SúP9úŽE¼+*@—ÇŠÞæÔ¯Ÿ÷>08¾îûsƒ€—Ç¢Iôm$$ªwY¨ÖïæÑÐn±á†—̵Æÿ¾êè^hÑEó°^½Jß^ìˆÕ…ÒeLîÂ}Фë)í§®£G¸Áç;€—îEÉá±íÓ»3èŸshÕâI»ì …Ä7£[ª—>p ÕW˜¨¢ËãTþM@—Æ™³‘;œ@1®× iP¯›Í•Z2`…¿Ïêrò›™)ÃBTû¥‰Âûªy“ò…ÃÞÒ°î×ý$^äÔN¤Åp~á…ÃÛä3{´¸Êfj‡®àmYZå—Çnû½‡*¢ù¥¦#)ØÎV0…ÁFݲÑóŒ "aÒ eÝC‰°üj€—§ËS¼zÅîøÅeM|íjîC¬€—È+)qr$.—!îZJÌüÄ„LÍ¢p¼Ÿ[] ׉n\@hÓ_Þëôº›ÆU‡æ€o¡¿ñ ë•K3èžýÈi“€ýK‚k2¢­¼—ÇrŽMVÔÙy}fc¤Y„ÒT1‡;©í±‘ô…ÄwVÃ*PJ7ÿN~xûÇ…Ä#[DA€`…êÐÛ3~n»q+¼…Þ†Z¬Xk±˜Æ‹©@°—É7~¦ 鹘,eÒT;v%Çœ¼£2z:Iã"Q—qÀÛ>üŒ<³Ê¬—È+1û¼nÓ^ýQS°Ë¯ÍÜÜ—È+SÞáÔ§Žž"î|‹®aÒ$˜¿÷i@¼œ´õ”QÚ‚VZŸÌåölÇW `±d$¼£3-6¡ñ}²©5o´iÚÈØßGWo"™€¼¢¾ÓùâæS5hÃÓSJ*ô§Fj6¨8¥éð`¿ñ ë“Öæá0¬+-iO¼ûIÞ¥ç…ÆO_ºÐÈ1@¿ñ7oÚ’ÞªÁJ–¼ŽÒ{pº~£¬}×øä’²¿ö•0Ý«ã S¦ä„Þ§w8>ä‘þš/Í å ¼¡9W_-!“2Ü ¼ˆ«:\OÏ€¼…ËßÈãm¨Ô1° +®W;n€ˆ#ó‹RÏÑ*À¼¢v´Ö úê>  À·Öt–q'^Ð{ÞV€¼¤ðTÓ<ô-tåÁ5/¾Z½WˆËb©×›¼¼›íÜšc!0<à-æÀîguA•v׫ Õ€¼¥Îãñy¢jé$Œî¬ä÷X‰Ñ­¯}I—þxÎÛ¸2‚4Ö ‹íÃŽý°…ÒóbîüÞÈ[ocï=ŠnæEg.fà—îCmذAÃéè,ÌÞýHoÒò”>m†…ºÖ¯: Uð8ji·ÄåWùÿf—÷è“$ÉWå´è®*²—èn¯u=5C¦øOggS”[°óz†ˆså2 " #"—ÌÈé½mŒ¦—é¶ö€ã)=ôî†ï÷(¼ÌÓn}-Ö ã}9›zñÙD˜Ê–bWã&@¼¿2¬¼u»6ŒÁ²¬…„}a£]œ ³Éœ ¼~¼y3Ý|½˜ób»‰‡~ûgÖŽ–®+d´rh¼ž¦ósfKß YºúÈ”ØqT·ø¼u»%<¹Yž~&ÏÐc{8›Nè†Ø|ö5Š5)=€¼y“Ü6)È^ óo‰vˆ%ë‹ÖE¼küâ¹gƒXÛç‡ÜÛC|\ƒÚ„ýB–EI2ðµ†Û8èN½-ìPF”¼y’™§Ra¹†©V÷Q¨ù ±¹S€¼38¯¬ŸÍpë'±8Ñ~›2½À¿ñÐf¡AÁ‡›Ö åµÊ3ëÉ{æz̃ã@¼u»¶j½UâW<÷†“_“Hyʃ¼yÚ>üÁ¦®NußImëü%”»œFšœ¾Ç€¼yà0©m¢G7’$í=ŽÁ\~“¸¼qª›îž UeRdVôˆÎ+ìÉÀ ùeø¿örI¹âþJ€~·e‚IuOõȹž¼¾Xµ¶šIV5sce j.·Þ¼¢…} ÓÞ ¡È½CŠ`ÿ7|ÝdLAü¼¡8z蓉¦°ŠHpEf‡&{|+íH å@zt¼k–»/Ð-äžv‘SŸÂü«Õ~ë¼zHûD^ãæEœ*ã]L@®bÁUØH5¥H¼y’\€y(qy@Ãö÷‚|¤)p¼®u+͹JTûN1~à:çX¢ÕyÖÚ\Šè¼›…lŠÌN"·9†ÏbÆ‹î…g¼¼O~¨•PÞ9Ó{˜VÕ3Â.aÑ…h“Ê€¼%c>M¢B&ô)¼{¦'©ýÅÏUä°ÛJþ¶v‹B4ZaýÊxck§Zd¼Ø9éÕá§Òcò*WV¨cÍ›•¶SfZn€yG¼£|Óû… m²H6|Å¿é‰Õ–SÆ'”@@¼‡˜>‹×Æ0Æ«ÜÉE€ˆÎÕj e6?À¼–$ï’K=x¤ÃÛ«ßȲN§ÌbqãŸï1YÖvés`¼¥tHz^‘!'‘PÕŠô&þ·¤쥂 ƃñ €¼¾Ò+©Ñ]™HÞG1´G/dPñ€¿ñ‰•—ËÌ IñGQAÓë58“èÛsü¹¼¡7úMåQþÒ%žJBëÃêNŠK¿’ ’ÎÁ¼¢u…•¬­’H•SS6.¤æZ~|¢%o1O§·¡ g€¼­ÔNöè “Z{º¡Füh^à‘Àˆ¿£¢°Çb¼dê@ ]ö¬2¿ŒIÛHÑAÄ[˜j*…®B”À¼Ä‰®ˆõˆHÓY¬7o&lk8•<ØÛÌ8¼œ47*shÂ9ïu»Ê™f¿ý¿RûŸP/Yíí/¬À¿ùR³¥Šè½Ð eŽàé¶£ð+#±õqмå8d5MÓ¾’8ã©­¤ëå)ÛûÒ®·Ò뼚CçDu”EÖ*…[ ƒ3Âj¶H8¼QssÐ{²&<‡ÿøÙ[«WÔ×`¼(|Èdî  ƒ+m|Í^«Ð·ˆí=€¼y’úõaòɆ$ÍLþ\»ˆî•×ôß³SƒàOggS€O[°óz ÁMÒ2 ¼¥Ý•¢ÌÞL®ÖèÁ>°ðaÌmm«c@ /½wÔŒ¼EVñQ»å¾‚<¼ëZMSüažîá¿ñÑÚÈ3>»\ømi#;Eb×ßÁ]p¿ð³\Š1‡äkT"nxXH_åÃYÏ6¿î<꺒úè+?PŽTS[ʨx•þoÕ-ˆ‚•z¿î<ª4ë|PF®-ÙB­SÄ>ÙƒöB¼~às±ã·"}¡ð*ÅéNu wÂx¿ñ”U:ÊÛ&H†·)ùåP¿ó…"ˆ%ä[*®%«P_ºù¦@ûí“YÓâ¿ñî†[4"dØï€-LW;Ž$iŸkŠ¿ðñ?]-‡bùÜ¿~Yì.ui÷ÔžŸ9]à¿ò^½µÂHóK¯÷s•Xh&öo)Ú!èOB¼óŒGeEÖ1 N &Ș¬Ù˜ Î굆ÁØO€¼óŒE/_Gšl>’*(BiIŠXw´l•T¼ûÆçKÙÔøT*R›#÷YV£&t  W²]¼ôÂKÃ5é Cƒž}}.Ý{¾õ,Ž•À¼¾ 9„—̯0â¼ßù«°B锽ì¼Êמ'Dˆ3øj;¸éE6@J®‡¨«1«¼è¦at·…¬;¹Ž i5t^ Îþl$«¬K8‚Ͻc·ÇÕ“@*©êSG.y¤‚ù‡íƒ|ž ¼ö^™²>HT›EŠ ÜáQ处–ɼûv59I ½Ü»¦ÃŽ3Ÿ<¡c8ĵjiÄÔ1½+çU²|j÷MñçdÁ…mŠ”Ê• ½8tæa~'y¿Ÿðq)X÷{ ̤6ŸÈ`ž!¤€½}a¤³¿¾Ù¹ÂG‹¾j®Bÿ´Ï‘¥X½?=†g¹ºBƬë0ŸŽöèÔ/¡Š¼íÊEZ±]‚²g¶ Ï×Îñð)À¼¾´#Ÿ›#éØþ}µÎH¯u Y(ÖÓ´®q¡¼¯i³Á5&?ë齕žß±ŒHILu¼ûoÁñžåÒ(b¢A·=Sdéÿ‚[  SB ½ˆÝaM#4ƒK‚‹‘ÛØý·ŒQâ¼óÀe«SųŸEjÕ¾ó¯¯*§uȤ¬€¼Î8Ç!Ê·ŸmŽ0~ qÉšLú½Ãðk ¼ÎÀϽFoL³&^¤©)¶–ûç,lÔÔÉ”¼ñ? Áh@sˆº'¨¼Ž¢º"óÈk'1¶£¸xÓ¼ÙlõŽ-ËoÚZÖ6o)Šî×»!®°¦.€nL“›L`½vøÞh‰ÇðƒÚJù‘.á ¡—§ig8BVÈe9½6ììskþ=N“4ÏŸ¾Æé˜]®dì½$÷ö¨…™«íxÊŒÀÉë•=<Ž,7Œ?brš½9æñ dî:wÚY¯é_UÞEI€ÓÍÉ| ½<îwf3Z‹·#//¾eH6kŒ¼ºªxæa €½;s ÏÛ”' „ÞØ¬,‚‚Û@!ÚYÔ½Aþ”dÓÏæõFŸ íÐ%¢Ø¡S¼æ×€üó÷€½m¼òD°âñDtZ;uAzÌ? "º½Q'÷ø½9Ÿü^™ÁšxQašhqm¥ÛãDÍ:ÚÂ,½!~ô-Ãþ€ ÚP \{Î Y)öúösú €½Bí-€S`›\AuñÙB»d^ðh(ûØ70½BÃàöbW£ŽÃiâ‚ïOì‘ÿÝq.Ƚ@ßÉ‚{¯)ˆH‘r²¡?3ᎽBÃ,t&çÞCýϬŽßì„YêxRÛOggS [°ózO$„`2½m¼òGÏY–ý×ÒÅ~|‚bÄÔÆ][ùý½@»š°&ÌUMb‡tÝ˼{Ó×ÌçÀ½9‰Ö÷æÚNŒÉ:hâÊ8ºL,k§¾^¤½BÛǃ™‹-`P›Ë^Qcù¦Ço¯LûÏL_€½;„¯€ íŠÝ“çwðÜ”KNÐÔH²Xç½Aìjßx „Hn´7ÄGGLj|vn?-›À½:°F«N;ÂЮû) |8Å 4)yáÏšU &½d|òzÒÛ/Ò˜·Œ;UH÷„ã]2Fƒ0½:;lôeÞéBìI2]ˆ¶°²µæ9.Û@½:;qìà ½iŠyùk«%Ã{ôÇ ±˜ü½9‰Ö–ÞÄã¿3?ñ¿é÷²¡w˜G½=‹Úõ’@K_+>L+Ì‹ë?[“^äåçix½Kî°+é)ql0‰µÑÍo8ö$3ì½LºåšøGÐ#Ô¶À¬VðqÐ%/žãA윽m¹þ$•ñoÍ °ˆÄ0…”½œ†M ýÆ …ë17“ij’zçKøÀÁzTZj±€˜Uçú%y诽ˆö…A =¦:ôW€½™öʯhJÐmD†YIÝæ)šñ[¦ ¼åòÄç²$’-6–9n{³tM¥öIç4qDÙˉ¼îoîä•LÑ#Cqï©#X4-[~†Íǂ՛¼ÄÃÈêÁaÚ$#ÁtVƒáå㯯ÓÉ>€¼ÄÃÈøo)ྋ6yõñ‰¾ÉöÙy.†TØ$¸¼¾QŠ>—ãbá–gÊô+Ýx‰>®—¯ÅXO¼{gnø?“ãÿÍàèQòV@kÎç† Šªàcü¼Ñia¬pú’iÈúsæ_g#z§òAÆcŠ](x¼Í±Ðù[—–F|›àYŸ;ã—Ùhß! :0[¼ËpÚ!™uêJ#FlžõRiq° x½À¼ÊŒoUÓgÂÁ†P¡&•4tõÉÒBŒ¼Îµ5Õ³›õõª‹,_|å¯&¢GMªôµX 8¼¾óŸHé#—zš-uLèFÊÚîð'Ӽʣ|¹âWá= Áòý¼„¼Y ¼¡ôftQ  UpgfEèÿC¡ E€¼•”!ºÐ‹qŒ ŽŽ@зÁ—•°ØIö@¼wbúv4ññéçU‡W60œŸ 6ñPÓ7p¼mB¶„ü;dªÝ ­O%`Ú>§‰™Wòx„$¼°²FÀ¥X—Ž.¢û~=aÖ|´Â#_åÔT•-,¼ì¨¨¯·ŸçÝfÌø¦Š£­^à YyD õ€¼š—˜Àa·‡·}MBiÁ ×à+;•í’UŒ¼w ¸0 =yøƒ¸9½5Šâ÷µ)Ò, ¦ @¼zð[ù 5G8®áŸ´1Á­î𤻼¥g?B¿»VŽú‹ËÒfâ··Uwky—¿ô_O’/cº$>à¾@2>p=#î}Gd:@½xªú¾‚›‚%Œâ¯Ì“†k;¬¹S½Yð½8rÓuc?8$„:?­âü¼ü'Óƒ’ƦŽaµœ5¢¯ƒù»v."@½<ô3ºôt¦2"3ÒͶ”ß%ô¡@ ½B®q¾!k&ØFDé P7f[1Z‡7È$oà½A‡g¼†ƒ²YÒ@WµŽHÊAÚ†•mh½Fœ^aëÉw¢PÝÖ6 ”ü\sÔnZ@½B±ÈSlž[Ö3:ŽÏ³à´½°Ã)XOggS€Æ[°ózwt±2  ! ½C"ã_}N~­²¦?Ô¹d½ä íIù€@½AÎošÓà¾tÇ+¨N뜸»é6½9ƒ3ÎHÛ²k?¡Ev±(½àGÒ€½9QÄœßr ׉ó$å—xŠTCñ¹`½-C°ZlT!##BX€*gЬ½Ÿl ÀÞŒg½ê+%}åÛs‡áSs(½T «ˆž=Ë ùFxÉû2Opo¸MÊ´þS½ý¨tzóc˜Wh}¨Í+ÇŠJ&sx¼¡Ç“±†ô½¬J"nu[ßôïcÁ´ˆ?¯Å¼–?ŸÏ+øüJ‰!Ù½ ~¼&UágAŇ½àaÀ¼šQãe òÈé˽E‹ãßWb¼„ÐÆ;\(¾‚X¾ "$ŠNé}(ã›sÇjPؼ¨u9ÝöËT•º“™üQùPh¡µÀ/ ]¼ò'–)0´-é§„åHg­ÑÄ ÷6äžs½:aŒèPò«'óéˆ +kƒ©Ïˇ€½tÓöh¬^#«s‘§]]‹¼Ä*™7ëìšÐéÈ»Ü è+‡"º Û!˜… ¾à¼Ø!Ÿ‚Õóöî´@uªJK»N‚t¦Ì{â¶0¼¡=<µ¹šT}¦CL åE]U,½<³µìÈ“&¼¨·SB&w¢g¢®¯›~«þÈïWç½,oŽG{>œ'÷­‘yî´€Â@½^&NÌþr9J1Ñ@׎ӸºÿDÉVš1@¼°-›üˆk3ç=5_U^<«Èâ2H‘‚x¼¾Kæm°€^-JÝ(hy¹_ÑuÁļÅ_ø9ùðiÓȤ‘Q†¼˜ß†àº÷oÏ€¼£i´qû@˜ qT—X.¬¬ÆÕzúߣð¼¤sÔÆÏczv;¨ÕËÒ¯ ¼~Õƒ»ßÞe&*ìÇóèöµzÜõGù4„i¼øä¼–þÜ`ŠÅº#™tàÛÍnöe-ND¸–š¬¼pà>ÝUx¨$Rsh»pè-ÅŽ¿€¼F÷¯3vcæJU‡p²WÒ;sc™Ñ,£–»À *ÖL;·/t YµgíÉÖ€5Œ& —A,uÕ©â»ëAÜ_•ø—55 0ÈF˜M´«…ZI߯¨ì `…ñ«0$Á.dÌSkH¹×‚ì«Â¯¸7…À¦‚ÜU½iuŒcÏÒè‚âÿ68…«‹òs8#ôãn Ì{‚÷¼Õ”—Ž×ݔޢYƒ ɼYpùÅ1¼Ç% ¨–×F~³Ó&ŸÓ>íHÈKø¿ñέl<öH¼¤•)Ùðy:ù.7ɵU¢J´MWñFÐGz¡3à¼È„×_$ó/ÙIWR«ôÄ#oŽ ›m¯9¤âT€¼¨.cáÑiR¥Ñ&!±¥ZRªF*ÛB®ìa—¤¼¾õx ³ÔEžö] [²q,©—OQˆ«^˜#édP¼GD*v4),jK|Á†ÖK –2Њb# áÀ¼K Ãí\Ýby¹ž,lþþ,ÑðÁf“3ä¼OH’€g.ë8½èD ý„J'-I§,ΙXèÀ»¸“OœþÜVÕèÔ!YäBÄ%æp›,}“¨¤¼hËh½XÃ5ĸÿÕ-oåëíË»{LÑJíFGl½o‡É~áÌŸ °ë¹GI(#ª^ůäv°#Rk€½8¬¨¹ý³5)Ù‘£¶Cˆ¶©^Z ð~÷üOggS‚[°óz-x¹€2" !  ! ½ª­:ux m0k\uÚêÉ(Éî¯CÕjµÌiȽ$ôòåûj{¬Fœ}ï°mYvì4…4Ü ½9‰ÍGa–C?(OHI½üêÕa`?¾`½8}zØH=Ë ‘kÆùê‘Hâ.×èÀ½ -:""Ÿ‡N¬V€{à£pÃg%WÝÀ½{£ ÄW4Öö!¹è7Ü£œ¼š…T©í§'7À9ãêÞ`¹3Cà/²—––v¯†RÜùi>È$DðÔ4?¬Tèº]Ó†" ‰é Ü€?¥´Ãô’ߺ8f#Âe—gWE8À=-<Ü@Ùòö …¯út—8lÀL8°µâìgÆÇ…¤…ÜcÌ|YLîèl dÊ( …º–Yf*ùÄ ÐnW"BÐH5à…Á>˜Eß9¨çx›wܯ«h¼Ÿ_«ê‹ÞÎ]«°£Ø>ÖšßzÜžú9íx J‹|øˆ¼Ì*JlÆ/ïæ¯: Òù$!k¡‰Òé©7Qáð½dÎ9ïKf?kEAÊšŽ´øT·ÕC_0[ëUn? ¼½B13Š{>W·½,>ùh¦,—& -\gW”ä@¼ORÓßìWÁ- ©´,¼v†§+SO×WDEù?¼QeÜšÉÃpŽ8ï̃»äÁýÁÔ9 ×.R§& ¸2¼Ì*¼¢¸>ÈïtzNû§7|U!CÞª*-eSY¿óÙ\cð^Ï.¼u©„{©K%[=5€³ ¼ÉYìoâmÝ–¦íÍ7Åéä×hê ê 4Ô½Oô*{]n D&,ß{êef°é°Ï‹¨­%zàøÑ¼çØZpá²1Ñ¢w‡BheÄ6èò˜?NºKìzð¼•JF©ØÛº­Æ]çD¾ŠÕwq¥´~ë’9Î?À¼u¾÷³LŒä,B8ñДñ2c]ùÚ€ÌÚ<œãæ@¼Ÿ)NZK@¡å÷ ¸]âÇC€¾ý]Ï[,¼ÊÝ7þËCô’ú¨»Ñ£ ^¼í­Vž²oý"½R¯’“§õlO4P¼–:7¯!JÈ:U®Ì¼½n¥çüÞ_6hÆI”·{©“±?ð¼O C7î£;èZ ä¶W±‘ T2 Õt¼_r©à5øÏJV+-Ç Y€qÊûñËÂ7ð l½úî]L<~µôhô³(2µMȃÓ^g1NJŠy¼¿¼ žZµ|ð]lËüÆ™©[çsÈË@¼¨:Eá›%K;9­ 5¹<{ S‹qúpïC¶4¼’ÅC¸û~q Ö¡nÛ|§H™ÍÓÆRäû*À¼½LÛ©ïþÕTpÑ”ˆJ˜h]šZvÇ›™á.¼u=T¿:¯ŽÈVÐV—ãÁÉÉŒÛÊþv–ïÌOggS€=[°óz¨$K2  !    ¼u‰‹‡r&2cC!À™ù4%÷„0&‹ý&Næ¼zñ©Ta"_¹õ^åÁˆ>V0R¶Âï4ßýíìâÁļ±§[vÁSä§[ëL¶Û8a¯Ü"'›'À¼ËQè!Ã’3Ï5æiµL¶NnͯBѸà½Y¡¸ót¸ÃŠ;Ï$Êsó,5öX©˜ÜÝ‹°½A à­¬Åe!Ê~ÏWÂúe‚`ŽñÇL ½!Ü––­â%*ÿÇ0ßç7=[]øê¦[½9l¤…GE/'÷˜´ø£üþ•DºÿµšÀ½9i|ý2*uIN@TäG`§— 1‹AF5E½8rHsô&嘨 õÚmm‡q³ÚÖà0q½&g¯yò—ÕA½C¨á[åKÈ… 0N¬7z@½/ÊnÁÒã#ÒÞ°»Ó˜yõ`ql¸Í½‚‹_suko¸ìRçîóŸÍ—Ô0¼Ç+ãDG^¹~Ô&"Êʵû8/ÐΓÑÁw¼£Ë½É]j–òøÒ^¥ÆOùëÔCY켨ړˆò²Q»7é5[ÚµTÔ |Zmçmø¼¿áfsVçµðl§»‹£,’¶p— {öì ¼è$p=i{MÍ&v.*í³PSåDŸÖ4ym'½/ß›Ã7)Dc¼v¿àÓ-•|ìë¼—½Kð¼ìm.Rlb`´¥ŽVGyØšƒ'Fk¼qM&Ðžßæ"ħ¿lUf9Ø©{Û‰g[Ê€¼ˆZð@ð±ð9µ·4›{¦a R½×8Aq+q`d~¼¿­Ïí–R+h}È5¬|ÑÉýžðÆ"áË÷`¼è‰û¼‚w±Š/†®òºG —Ð[ŒÝf缃¼Éª)ün(ž%éA‚ð¿þsx%ù5z¥Ì½Ç.ø¾áßtí£€ïÚªhU†*‹«ãšˆ&`!–¢dà½8`Óó2v]è‚Q9/ÌÌËCa³—'¼ô8ä €ÃJÁ6ؽìWdzû"ÖwÜZ@¼¼¡>ËàÏñ¡ÊŽ ¤z' Ð& ݘÀV»äçÀ¼ØY#²i÷ÊË'käè,°$cpLyá(€¼»_Í™d[¨Î(ÿçHóóÙ ¥k‡^¬Z÷q Z>p¼Ê™vÆ-*óBqßaå-Šÿok;‡Ç× ¼Ò¼…--dmå.jK©xüÉ{o§ D½?¸FGÌ p?bBÕá|—T9çQ ¡½,.FBpjH%q:å)¨žÞù%“ å¼ôÒuÒæÏqPÕ‹´>~‰•àû[› ¼æç"ÁGiôË•rØ–:~ü[÷f,nµ”AZ\¼ÈÅWÆ3€ä´/Ô]XïÌm.‚˜Ý¡Ç¨¼–É)»ñl´•vñ._Õõ*Â=ÚÂï†x_À¼|2hBìuFóÐó'´ˆ±¸=x tˆ¢8ý° ½Ðú<<í!zAEØUÁU²_ø†X4ò’м¾’ϱS¦º4 Gì©™­e^aV+r¼•L!:#n«½€\DÔ(·y‚ç’ ¼qƒq¦i·`UA8OyŒ‰£äíóp›Â€¼Kã¾[•Y£ZT½=ÃöÉYÄkþ²°óÚ©¸+Þ Y&©ÐQÕŽ`…Ì$“ñššèç,÷¸kÑG‘Ù>ðz…—}Ôÿ†pÄž–]/¦çÖ@—:–²×(¸¯ŒVb†Þ‡ÎÇ–¢àOggSù[°ózB?}B2   $$"!! !—O«+W[ÀuÜþ~êe\q¨ÿ@tºøx½å•µÈÚ«{–çÁËÕÜ7¾¤×¼ÂmL:aupþ…}’ÕQ>Š$[ëŸâë‹(°†´À…–vX Y·ðÙ|æü‹DÜ…‡œJæžÐK+ø¯¿-ùž% …€Ì<¥ž(G²•S×¥)Š>Ü„—‚!çtłڠ>ó×B–˜sý7š¨-^‚oœ9/ÈÇZuØ –˜|tów8ËÝ]?ƈ^8»M˜ÄÿFéƒ/ÜÆ…ê£% Š,8öT2¸Û§ûÎÓâ-è…èOǘù&ˆXÌ¢£Î+I€…ÒØŒ?SW6²p6 ™N˜\†\¨³é@-|‡ú3Ã`˜,ò‚³Ø{w®ØÊÆhgŒ‡4?€‡ ˜Ó[|ó©VݶÄj$ù¼v…à›k™ßÔ% §äö÷oo1&Þ…Òä•Oà»Úa— F˜ïzý˜9[Ùý¼ÿ!Z$ÊÒ‹+š•¹å=‚Q¨ð…ÑeýLILŽ`µ‘ÍÿònV&ü›„÷b[E@—ð1Ò{½`®~ÏØ Ž—fÖg—·©ÊdkJgÕªƒ[ ‡RÙl­UO³¨˜—j¥¦ ´%›Ü7 :Ú—Ï=² —eë‰åça.þóé Zíñy%²—1Ó;R/†p=O¬C_B‚Ð…—È€’6qQ1Õ&œÇ+¼æ?t~tœO,8¼׳µö«¦ºÛpkÇfº~;òùÕjŸ˜—ȼ®‘÷cåa ‚9ªŒþN^–H=÷ ‚ºœ¥à¼¨&¬’-ËDã§ 8Ù7ð1¸åK[uH@»þ·u‰UÕxómjåÅ×͛Ўd5˜îÝVÁš–¼ Ä—'‹wéch§ö‘·[ºçb)ÉO”»ÿþ©x,ܧ;Ö°QÝÿâaÍ`‘ô ¾˜`; …Ð;(P{ì)¼°‘ðBy㉷†d¬…«yÛ§—úx¼M^Ö¿¥%¬ÒKñû@–é`|hÌÌBÈã]’¹ÛF¸R…|b³-ðîhX´Å ´~,"Î/–÷Z]g<úhBy\£\Òµ CÏŠI†…}¯ðÎþ¼Èx»·<¼I̳`TÂIoíP S…êƒG´‹fí_«õ"çÛkÜ DC …èèC’…ݘª]ý_vLÌ,}6±=Y—ÿ¥Øû(°,ã€N–˜Œ#ŒpÆãù•@½¤°—~„û4|gÓœ TbTÖ€½@‡£l²Œ¨Ô ¼Ë(~W/‚”ú±âéÑ™ìMÖÑ–²T|‘S³˜)µ•éwL@¿ó‚•¯é´Áé`ñ?Œí¸Sâ­XïÄkпñäKØîì1PíÐÐÃÊ9G€lcñ­Óy¥Rrî=Ï[8¼•ÿöíwйåæY!ä6T eÔ<ÐVpÀG÷ wcdG,¼žà´á ÷ÛÓ¦}–Âóþ”¿Þœ¸æcœÊ›G?ÞÊ„¼¡==þrI‹þµÐÐc¢¨îQ°Ó`Ì…ŽPôÅ€¼Ÿ½ ËzÒC¼„/î>+|4ae¬&¶Œu:û—²Þ¿ñ?GïõéiÒ%±öÍÀz§›ª¡÷w¿#Û»L=óxOggS€´[°óz ç§»2!! #!"  $ "!¼¾J2¥zeRv¹GÿžÕ¡× s\¯é ¹Ú†¿ñéqÔìÝÁàÉ„º|Þ®û—ݬÁ¼ –ùc€¼¿Þ>»a=«çÅŠ4ºÞt‡Ûæ¸dtñ&xhŸ½½¯ÚŠë†§¦ŠG½þüørõâÖÓ0—ÏÀ×o€¼ÎÅKÏ"ê_ì±ÇÆ<·¢ýP³ñŽ(r—Ùÿ@¼ñ»Bnú¶ßod ½(q¹Ï 6Pûb§o꣭ x­¿ó®à@ƒÄîuOy‰e[`Ú¤óÚ b¼A$k„zk‘¸²ëwVör âиvÖ­€©$ø–øñÌ" åañâzSü2©íäBÀ…HqœFKtõ]”Ê Š‘#¬Ó“K ˜…²öª‘¨Æöáa4D9_2_T"…¦rjÆã"r–Úû?‡T…¥©Ð~¢>džˆ‡©BÒηç}¯Àu‹Ø;V*…r,ßó‹à?žr›Nr­ËiÒe8¯—tÖŸßMWõÖ²D Äɲ JHä…Ø%ÍMWáôAÑ{jÄçèjËd€˜ÒǺ°ƒ/ÃOϣǩi‚½ ‚‰ šm܃: ®ò›—ƒ Ñêÿ°½^%A"êBqEÉ ½ýžâxˆ–uϘ”I ²ðŽvnb¥Jí`½EÔƒ…±s™à¸Ýwÿ…Š’;èîêõÀ¼ò,KØ„ë‹gqg~ŽÄt+& Ι TjŒ.˜€½Tx´÷¯Ó>¡ ± ¨Rþµ›¦7û8rd¼õ‹=ÑúSl3ë¤@Û“ÌôZ\ö ”Öä‚Âûݱ½9f ~õJÛ½snŠàÊÎxD/³[·¹÷zà¼ò#"Á—™NN>t@‰î}  ½uè óÑÓù€¼î,™—¨ÀäÀMéx½H±u¶í´á®æ°4¼žìðYúë·÷ƒ×ã_ ÐÑú|KÚvUÇ|‚L¢ó𼔬$àŠ”,“ýŒA®NíÚg71*X(¼uQÆK,Cžö=èʹžXõÙ¦ @¼ð²‘ºàGSÜE[–B¥Šà¾(Ÿ¦pi¼¼ U¦ŽvæX÷ÏÇÌŽ*H™¨7·GÙnÀÁ¼®½ È>|«á›œVjÖ}ŸJšäéf^„`ë@¼ÌÞÌZ¨nBÖûˆŒðäJ#D}ü˜:g2É9Àý=wÝK†T3ÿp¼žâ/zkñöÀÔw’¯Ôœ£=³Zz9€¼ øýX°ƒ $"Z«¿åRh[$FL±`»5sù¼Ÿ#Ó‘m'¡ÛñWßz¶t&æÓW/aéc-°¼ÝûDMÍEäSW¸ÎÎ¿ÆØØÕ1ߘÁ¶KöF<½I­„ãë Ód(•Í£dPkgÀ þNн*ÿ„´Û¿"÷8Bw.iÅÞ¦{Ž‘xõ{P½!…Ñ7Ó…jCÿˆ*cžáè¿ù´Y ½8 KA§äï÷ªa94!‡Ì:œ_ ®1RGmž½+ªû]œ¬1p³vk¥ 3ˆkTÎÄ6íL€¿ûPò¬Ûàýû!Ot’œn‡ÃÌŸç¬Ú™`½7+w/MÇ›Ë慎¿ÁÖ]MÙÉ™±Åø½9naÄbzGS5”Ïð2ã­÷‘ĘO Wþ÷JÀ½8‰¤K$úyV ¾-¦ ¤ØM„¿øƒÑûÙ¤7ôí¬þÜf¼ÑʾµÝÉ—ê.KnHL˜B®Ÿ€Ï(æ]¯á—Œ!º)$ÌÖR4R9èÀ‰À—j•ÊäGU¨Ñ…øä3v —lb%oo8«þ´ ¢nuà¼póÎl.Àr‡c)ºpÈ}ÎQ_A^f;±-t6¼NJ£}‡,þž#Ü݇ÿ”Ó‚ƒR7Ð*f¼L)g¸«ÈÉ—ê*B£­óí\óÓ˜)6¼Û0ßâ¾i%(b'œ láQKê+[¤³:¼Íæn&fÅ´ô„¶0¾ošÎ'Ÿ’r€¿ñ6Ôå5v50X©´\%Éd3–ϸ³(*Z±€¼u@ÉXtìiÍŒû*Ûª¾˜¿¤E’‰ƒêgÊCp¼»æŸA¨òˆüIÊÉ(ÉXf96É÷f;§´˜¼~a‹ª%…ó½õY‹`Ö¨RT¼¨¨„‹ßVæ³€¿ðãƒ9Ä=Û*ý¢oIÇ"87v®(jè¿ñ<¤Zæè•‹LËúB‰ÝQ’]e/ãMuúw^<¼  Ý_þG82þtÏØñ vÍË&É @ÊÍö5¼§ó‡÷ @c íg-Éi0€–ì¸Eµ3ûÝÏ@OggS€+[°óz"4ê|2" "¿ò,:Bû*¼’LtϵÇ8¸àŸOl-Le­þ£X¼NÅ>ãdÿò?)Ñ”œÏº!0²c*d̤P^¨¿î¦A¶Ò“4T‹z²9¯’¼ÉA¡Þjtû‹Ît¼ÜÿŠ=ÀXã%tEƒK+:ç“Hr†ÜwÖ1Uˆ…ô/mŠ,ÌØËdaµçcR…îRŒ>X»œH9 í¡h˜B´ Õë‚§$ ¢Þ+@#°5Ö½AÕ¿'H?’­U]³› ÄþºÿF÷x½9n[£¤ì,»ߨ˜…¨RŒhÃsÀºî'A½:aýÒ€)äzýúÆ]Š5øŠlh½?h õ† äÀ¶Ö ëyÃŒ¸Û«W ’€½<í$vM6G¯l4¥¾.ÿÕsŠ8å-e$;Q’ÿi`½,_*æˆ×mìcYl ãc ݶÏÝ74½6ëëöaØé =^_æRŸG áÌV ¼òÆ€þ”£|;ÙRY*&Q¿s‘ è}/¼¾‰Ã*´PH(.—^T,žZM@¼p•7ãz"¨n< µÝi×§©[kë¾§Œ"J€…‡™ÑA£›œ¢A·(b3zÐ…ë!à¯ÊÊ¥±›l2Ïÿ·ÄiÐ…©Xž5c`Á¤ó'7Ÿš¨.Ƴx—ˆñ¨˜œÕ¬¡™ïã®ÕfKw’,Oè@¼‡¿:¿(áAŒÆ{ŸôóÙ‘6í@ŠíÀ¼ÿ!ž,]¹‰w×7´«0gA£ÛþÝﯹ¼JSöŽ=–EÌÙ„Ê\Çy7¢¡>J¯8¼,§Ã·¢4BWð²?.¯—öƒcø5 äöÌ?wÀOggSç[°óz#Ê¿¢ 2"! ¼…ÏÌ},ú.ÛsÈÞóôÁxá^:6ôotˆ¼¡”†…ÿç°¹ãar>šX˜Ãp¼Ÿ$ÍÄ Ð|²pdø7{ÎÿçÝŸ‘ʰ€¼ŸÉÌ@§ê&#Cuù ŒtBÊêsÊŠ¿ðøpÞ1Ž|gеÄ÷7QÖq":*¡L/ü£:–@UKOo”CJMî ¸¼†æoDέ!²/˜j€¿ô£.û›¯Fcï¾tÖøÂåjÖ»T°-Qýrp½;y©µ LÜtØr8|þ 6¯XºÖD+\@½8dûØhÛÁÒK"r\-e¤Ï¨º«2¯€¼õY©w@Ôy«8КÊ—™ÿ¥ï  áF5ø¼òŠB6éºoœ_@€bžfš]†bhðG¿§•ëá/†@¼ð™Ïÿ'39(¶i³ø6ÄLïÙ†:¼É±ÍqÁuñT‹™kj t—ÃÌJK®×1Ev¥Â`€¿ô\ÚvAž³D5yo¼y½ÐÓŸ… ÔgÙƒÿÀ¼ó™œmû×Cù^‹~ã0¥;Åö^Ù­d¦p¿û;¦4¸ò¡Ñ(MÌ_¼iΘÿ³¼¾[u+Iï¦öKûDB´~ÍÕ;‚‡Ç¶ÜESЀ¿ö˜™7Ce¼*¶N{÷ªì¼švþ\ 4¼‹¢Iáê4LÄVAd¶‚¬%"‚®Y–¸¼3¾jh®X9j•HêsðµÈ.i!x¦•.´(½å£²ò¶ÝÎúW¬€•h×:™Ø+.ï¬]^Þ¼¿M¶®úõ¾þÂé{;þêTRÒ»”ê\¼Ÿ*G†ªâ¸k"Ú ?hQ’g“–îóä´ÙÉ€¼ŸBfe`ಂO± Ð,[" jĘ`âýÎÂ伨ñFê öB‡ÐÛXU8ÅÒY›á,ƒ¥¯À¼Å !ÍÁnYžåÉ@æ¨Éð`¢ “HÀ…ºM\Áþ +v„ïâN’ ‹[‰fꎘ7~ ,w×à¶d|”dÏÀBÛwÒ?o@—âŒò±TéV@<Ííó"‚'²HÛEê༮¨ÓL{”ÕÀWr­“ ×ý£ã"@ Eú‹Ö¿ö—êø93º§²;©­Íu²½íw—œ.mÖ_ïâ ¼Ë(1³Ô'Q¢n¢K“Ð#ÁDM¤òò(ibN~ Í€¼ÃlKo©'’›IO-¶6,'Ôœû·4 Á3TtuÀ…Û@1¤r—âZðntxç&¢4µã°—ôèúSë¬xh+p] ª~LIz‰ûTØô¼d¼ÀcNžP¼Ä¾¸7‹!zBºTº”é{ž÷+OYè¼”»”!ZÍ?ÙX«Wšš‘©ÒB%ç„` …«^ÀB¼såTDnMP4Œ\ibj•)ÁÆ›ìÒr&C‹»²—Ç…Æ#ÕÛö¢¡7IÊ佋t›%h—˜X”`‰­B;·1[g}mu§‹Åeà—”÷X$FUtwäØpí¦”W«wŸ—R°h¦ ¼_!G¹’pÉUµEF k çr¬Û%Fƽ}\9éc騼”½/ºp€cEèoI 3ÝjJȰÕ¼h@ç"t¢NÖw‰‰/¶_ÐÉõg*óâH¦c@¼KéµEžÒ´ H}Õ5G•n[éw­ƒâ¼CÇŸ#¬¾Ž>3…® ¬ÞïÎ|ÖdQqE­:é3h¼Û׆ӃD¹ûºÝEÖ|Å%ò¶»Di÷eZ骑1Õp¿öOSUNËk-ÒSfDm¯æÔ<ÌÂŒP¾¼Øï:ZAô$V¤›®°hÖ„›ªãsŸelµÛR¨P¼Íð—¡‹)Òìqê# pš²cl4Ƨ FÛO÷­¼Ëõ7>Êù¤C󈛵XÍ6£uÖHtWT)èC@¿ó\@ðfùul³J3AUkΪD™ÈË•Úz¼¯4©˜·ƒçüL$”‹4šúó -2»µñ~$£}Ö¼òZ*QË—B‘|Ô—šÚÊ>Pëùa6Òåbp¼þ]Æ4ŽE½yÃ?h,‰½_”ÉU®=\’½I\…=Òô®<¨z¤â½«ó[£òŽ7Z…ÜÆZUCo_÷ÄK1TÝ€˜u¡Š ³o†€Ä[vW^“õ]…á%e%>'U¹„<œ+i²°_@…éÚM(3Dzzx¥ê9÷O9<£òà˜;|†D¾Þ¢z=D±xÒ¥ø6Ðnïà…ìm¿{Xþ08uç·¢TàÕª˜AÀÒËžwø¹ñ~=p/0è…èÙãG³J¿Àpãpq(POggS^[°óz%ÏØ‚2! " ˜4#À‰ê3âÎlÍO]ãö8e<蘡½G¬¢]¾;b°ý`&BC —¾t[õB}Œƒ*7èœÃµEXD¥ð…ÂB¤}£ QÖl)oyÚRrñ%O¡€…±µõž×Z@GB †!À%{@󢈰|…ëHoåEÉñ8é|è •´a ùêEê,¼»È0q/K)§°Â!—W¬ùÜsõ]°ó*¾úví¼x©ÐîIa^B㉠Èr¡¢Ï tvÜèþk"hC! ¼lÀýbîa¦¤Ã }H]bÞß¶“W F}»â@¿ííB?QEoæ¤w’zƒ+#ªlÌÁ$\d‘p-ºs€¿î8~ÓužFbUÿ3sLIì ïõ/ˆ÷÷ÜMë¼BÖ˜øÇ4£xVû'¤œ¸´Çÿ_±¶N€z¤ÕÀ¼†{·?ã’úIížå‰’õ7¯VæG|ÀT¡ üdè< ¼Ë+eYŸa¯áeñš³kÃòòû7.Z—±-yÀ¿ôœ-»Á|éÇdÙñ§=³ä–ìN„оú“ôwUÚ¿òû¸*K¹â¤hø`­œímÚ-e˜…´+zt³´àúð§ß>ñU…RT F2I¼x`…›LÌîo ýù ÌÔåœÏ|Œ‹—u@€Ê¥Î‘X¢$ŒþÕ¢iVÛO«ŸÂ–—ïu—/ìpaì%¥I¾&Þ†yø¸¼È!Kí}Õ™E˜O÷»öÈ”›×-š»¦U'¿ð²“YL3Þï³){vì ¶ãÀ·Èˆatm8¿ï äz9s·ô$ª¡’ R¥q7@Û…´ÝÙ¥„4Râ¨]8Ÿá–}þ…0ú`—ë%;@Okã9^s%#p@·w€ûP~@¼›0z-k[Íz1[iB1q¾€¨îxÓÊ/S§P¼wYhý½ÉLÀ&ÄʧÕ^·SX¼tô¼B¢Á6 çÕÇÝ…‹T€Ì˜ ³s(èéÀ¼[[×s®²‰DgõxbÍ)©mDCí=Ç%5³à¼PéÛBk+z3Y¶‡—ÖŽÿˬs”^r²R¨¼t*iÇk®KìÙ%údŠÏœ³~qÌ ¼BzJøFé#IèÑ/§9GÞïeH#߯à…—·w/jÑÙ“i]Vcx6oDÜ“nÐ…ë"©¹*ÿ…üoeÎJ>–LƒÐ…§'½oýÄÛý»e(·K-•ÕRhH—`“¾Ð‚½J'Ÿ.ì÷¢ø] u¬x€¼]´]ZþW‘|o;eׯ>­üô{ÉË ¸¼ò#' zÙ¨u =IçQ\Cû\)ç”@…Í©úŒ9ÞÒ=ó™çc5óQ¯O;Šq¿…ÛBuìË;Á Ñ"”‹ª@0²Å‚l…È/**ua»Ä ˆu«„y²|n‹íK?€¼~sAv¬^¹eÆ›¿w[sÒ™tÿÐÃ{ÌXä߀¼ÉôT5ô$µÛéF”gÜçSp_»€¿óÕ˜¸&{ á/¾xú7Kÿ¹ÙæÒÄ ¿ó–e…” $žÚ`€„%ÚÓ"šLç¤K` [Øî¿ñgÁVªÏD¸®Áµ„ãJW€ûž‹yi%#M€…ÈŽÑŒÌÅ ½OggS€[°óz&žW×2!    ½%»|ÖÀSŒJuS²°.×ãï×­X|½9é…ËCá¢.üÅ\ºöžÃéFúä°½!ûGÓ…¼TY?¯I|^×xɸG¢gûú€½7-û)–Ü8Œy#ùò©qè™t­¾1¬v€¼ü(€ÇÍòºÉ[(ŠÞ‹|P¥ÓÀ2ƒ½9?±™!»ÍŸµôèt0ï%6Îü#G€¿øîr6®gãƒcw½žØ3sÓHÕu ËW½à¿öj(²æ&ç NNñMË>¬1þXÞV⛕M»üD½R’÷ÅÚ”EŒú†°4hXir…Ý¿–@¼ò' ©¡µÛúí€K„T°S#¬ gò–a€¼½ÑHÉst{Ò+ü­\wMpÔ0$ÍüìÓ¬¼Ùë@¼wêqÝG¿‡ ªãhÌiéI6ÔbF5$¼vjçx.—6št+:Œ=Òïš ›¨'–¼uƒx]ÞÍ߈l7e~7@®]²ÿ['aâ,ä8¼uCãÃê¨{>œ§‹carÅ©yà68Ê€¼KìD«:lÀœ®[Goü/ž¦Ž«E[\À¼A|YŸÿÔ±uLîòf®âMP¿Òƒˆ…Š«„ÌFÿC÷R^™"ñBà—ýRáKèà-5F™«‡$…}Y ÒòO| uEQÊÈÌÙ—‡µ—­m:(‡2U‰7]’[ük3þ€–÷Ï”c¾üºx§{NÂÒ• ý€…Œø õh×a"5vI\êb»€…«Áq°c¥‚Z›ž§”Š0XD:PÄ]töÉ€¼ ûƒ)þ´ôKŸ|dÈÐ-¥Aw7‘,òÈô¼¢û£Ý<êÙ`Ò«6wŒMyWN}þ¡N …´…!ǘPô+M¤up¨†ŒõÆÇñ–®3ì—§ŒK7§§ÙÒÑoègBþvÕÊËF_ —˜Z!¡á9â-T‘ ᓘP  ì­Åx…º21w)‹Š¯J³Ýå}¯¥+œ ¥fÚÏ€¼¨:2Rƒï¼ß^Êå›·"JùLAÇ„èøõÆ0y@¼ §ƒ¿Ò©köéF§šÉã±Ê¬-‰R`\À¼q¼SëöÉT'Ú…K†äBi--®×–ÉJOggSÕ[°óz';–ïÛ2!!!  !! ¼K´° û^©ñ·ÂñÑ„±ò¯R¶æ{Þ^—{œcB¥f‚‡C(8þ áVA/Ö¬§ü¿ïú€\#]‡Ú£nt “C“6E…¢ãvÿKûè0ä ½d‚'èƒlÈûBã—¸ÄÖæãá›}z×ÃÀ½7&á×Eâ–ƒ©(]÷t…0©Ý“[ÿT˜½+Šc„ð#ôüTüz¸>#ݯ`Ô ù¥ñ½9m׸}«Ízp›Èµ¸±¢“ ûP¾‡1½9i¾”Á›¹W£U?ÉË“±éWv.Ä6ä½@j›òýÈâ¦D2Rʼn«7IØxúO@˜Bæ³-m×ÈHf¹ ÁMô×[D˜DÓ¯_'z%!<솂³Iyã°Kž±…îÉÙ¡~¤ ¥ÿëÛø¶ræáþY;Ô…é˜r”P4b:oLí°ƒC˜,eSòc'ËKE¤æòL¿dÝÁØ@—â¦D5Þí+Zè´¬ \À[b±øîöP—kµž7‡Kø àn¯úªð…›°ëBÚýy™ô‡¾³\£TìýTH4 …ëD÷e&¬óõ©ª•ø\,‰CÞâ™âÀ…·‡ãn*Цð›4VZ·Óy¹ÍŸN…Çø¦Õ ²c§]vwÕ’„‘si`¼¢JûpL_ýÂ|Ð4A@;0›Ã€Ë–ƒ_Wý­G7€¼žâÈ~°:~þëÞ‡ŸñÜò²6u•Ø|yÒ¿ñê3ïD¾ Oí¶cI…£”ì+Ôƒ§Ë„Š¬Û°²ó ‡o€»ï:Q“ÒóISºÇí½¨Ø¯÷ÅÍ8o²€»w!r‰Éô7·Ya8ßX1!Q ²»ùԶƵà…ÉSN×o[]ÖH*ü4þ±FiýÑc€¼¾^VŸ“ÿ;Øu‹ŒFu>hd÷UUµ …¶N†M§)Ãõ3Ý(ŽH2ÇK?Úü¥£¼Ä!äwüëQC::òþ-ü´g]Û“ÅCªðCc÷[À¼~_Ï}ï³âyƒ»}…Þ÷&½¯Œp’‡CÀ…ÒÄžL£(RÒ†ª°û1%ÝÒ ¼•XwXFÔh¡Nk¡¢Ý•íç7™Ù·.J°¤Þ´ý¨L@¼wYP„MßÄ6±ëƒfÐs sл‡³BñA9¢ ¿ì—Èäžäü›êeò€ï•÷EàjãÃ…Ö“ŽÊ]ËÜñt)¶Íâ—7TȘ[Ø™ o…ñâãÊjä~¤‹àêBÞó‡z½¼è T`Ñ‚³+Àã=ãäk#ZÛæw£Öbø¼»ô5Ä™ŒyS„c(*°®Ä¸G«ÈÊ¿÷{¶Â(¼£š w>T$\NíÁù{>ôa“¾G± )ÛNÀ…ЬÙ>ïfÈ1¥CÒË^··}›OggS€[°óz(klû2!"!%#…ÃY¯òN ‹GÆú}Š.MÛÍ…¤ý€—ÓÑÈϹG–U?ë¢ÔGzc‰a1¼Ÿ:ísFñú0’ØZ(¯F~²ƒ7å×ù¢ˆ:%ñX—Åf_%ZL|‘Zg¥V|¹|©ô«(L8—’yrBïSi磌8Ð ˆ7P¶†…Uk0…§ˆ†„dNIi%8‹'q4›Â~)÷µ6šð…µ×ÑÁ*2$t÷: Ÿ­ó’|ÕòanT …‡EoU ø¢vîBÔ Ð‹æŒ^Ë3B˜@…ÆPx//4H»¿(Èæ×Ícç½pd€…ú™ÝúútfµT…ÍÄ‹^ûzèR£%+‚þÛ!@Å€…È*SÇX‘ÙNYe’²·†h‰,…à(w5M³‹Ð2}R“Þ’4i©¶…ä™]SOÒî¼K=p#2y1ü@…è0é‹ÖûÛÕ´¯Ü—GLý½y¼€…ϘM´ŽƒÊÃ-§ë³…{8´þÔ…Ôf(éÂd÷çÇáÈ¢êd`»%/¸…ìZ¢ýbòtºoÿ7‘‹ùï]‰˜9,=Kæž²ÉÈ_?Õ7÷n'Ëg1€—ï–]7JÁ'}Úé×1èâhfÕð­—øtĨ%, t˜’îqx‡‰G.ŽËRЗƣ7ØT<Õtñµ»O|‰•I„ÒaY…ÂŒPØsëMáÑaäÒkŠÛR'‡—Åÿ-“ßÍN–C—Ë4“£è'êÀ—·N>7Åͨê3»–xæ»d#ÚŒFB[¬…¡ ÄÃñ;å Pà ™ „h6ÍÀ…˜¡4]"7yÖͲ¨«r»^‚rMmƒ …³ u裶 }¦ïi¿‘¨®# Ée K%ˆ…¥ÒKða@¼u¬á~Òú*KpÁ©-@—<ëãœ'l?tL&Žî÷çÖw!f¡æn°…ieçÎä°Ò­xç a)„ñb(RÉ —B|þ@t8P†áŸ/b¥É/4¯ÉÀ—RÓWã&áÉ*êÒw•øùÙ¼ðh/Ä|©à—A]=P>‡¥/d4—áp0–7A5€…ÈT›D‰5-ð1냶Ro??/F6—BÀˆ^…_%WiTP_Åz!‹d…›°Ÿ…Ö¤S«iÄUôíµ~Œ@èc`˜[Mn7#2Ðë­@ìJ"^|&瀼åÝ™7{^÷b¹†œPˆÿØJŽŠa÷e3„}!çL4¿ñÎÞŒCëõn"ˆêÛ÷--##<·š“µåÕƒrN¿òô=ÚWNMâqö°œ{ö;.ø‘!‘ÆXWw€¼y™EMáï¡Í44‡_Õ”·_¬ï™ Æ›ÒßÓ&ÉÿÖX¼zðÙ?P™ª–Ÿ•ù1h¬ÝÊÓ&ù´ÖrkW`÷š‰‘¦¿ðʲ^…Ê×tòuôý'D€j†®*Üœv¼©‹×‚¢_Üp° J@'9úâ"à ¢Es¨À¼½ÿúr ñ=Eè—› j”i=OÅšîyöPJ5o­„çÀ—Ö[¡2 ÛÝ¢=@òf÷¶\ pWÍÂØhu`¼õÌ¡ a½nNnxÀTK†ó®lStŸÙªþ ¿öTØ çEç[þ‘Íõø_ºÛÔ,ÁæÃ 0¼•‰åJ’¨3¨Øjßf¬öG÷|Í6N9é:wqs ¼~ ¥=”³â‹<æTB¦,Õïbó~J⟭ §¬¿îfds}þ® )²L‹Y{Cgf;€.ÎÊ6t̃¼{†ðWƒÀ›ý^p‡ð çû±Ù|gIy±â,¼èº8¿‚_ò[µA‘ sÐë¯s¯˜u8±nc༟eÔ#Ôšà­£ÓÀ;-ò Vx ¿Óƒ¢-€¿ñê“\:Ž!]N“Ñš(ú_Vw‚olZˆ•ƒ–Rà…×$Æõ#€s¶þôÌŽfÕ:µðÚâ@¿øƒÇàés{OE«Z´›k°”¹PG”³€¿ñKªÍðGÑW"ñiQ² Gt å.ª¢ñ¿ÿ`,dúÊxš nE@áfá,”`Ù?äìp½÷3ñYmsªAi±Þ¨×9[GUý`´ü¼öÎ 0¼c»P0±ä¶’“Q÷ !f¦¯&À½ÉÊ3yeäÆê¥×åx.q!*пS,ld¿ùyb~Yp)àÒq=m`ÓáÀ0³z]€¿ùHä ˆš ý„/E6±êÓˆ Ãq]—ì …åB…Y[«ˆu¼¢ 1Bê»ÍèÍ€…âKl ÿF™óÒåûýUè1ÿÖì`ž…èÐŒ—µ ê§)7yÌx8"˜Š)—œÃ0عÃwm˜b¾¨—X—¾Ç¡t2qÂÀ¡^5‰Î'—‘©Zõ@|@×ç}î(/üüÁh—E+jql¤›ciÉŸ-»§B€…£n§”•.•ô…°ýÒ|‰€…ñ0ˆ[‚êŸÛÿFÈWòÌdžp…ν¨ í·A* Ô”jTÓOÛWŒ€…¿6O«;'÷žÇáÆï¥ Œz8—‘–Õ¿Ocd¿±Z„œ¨úOŸhh¼!€ËÎèûÙ¤:Às­*­ø´÷×aËE¡ß.·Ú%À¼3Ò—²6쥕ó G}Ûãa‰j C¥/ 1Óº‚°¼4Àj¤‹IZí¸yHí2Ø;[%|ÚHTòa¼…7·µEZ¡aÅq§fÞ°÷éq(¼¢¬3ƒ?[SŠ”Û¾6.»Á•KqG¶H!¼N†à¥‚Œ vnð*f€Ë-ë=íŠØð;€¿êß_~&п8­‘é|r7Ÿ" hu”A!΀¼ ¥G—¦‚¦3AR Ç×^(H{,ÐM·o¼$èK67èy¶ ´í}"¹}=UþEÆÁüî¼"Ëd¨˜EÓ)>гüì¬vVe¿.yÙíD€¼Q™€ñ®”ˆ4÷:g±#d¡›¿_Ì%ó—Vn,}À¼NÈâr‡r$Ͷfä®ä@ὄ¹“ˆª¢rÀ¼KÄ]ìî«ø©ƒè.`ü›E¢ Â1Ø€—o¢D¹ÚÙ¹K¢£%b–ÚìþsŸ P—aY1P"ÎêÔÈBýo´UÁPK?:…¦asœŠ¸Çtw4‡(¯´¤Q’±~—‹õVÔF1knš¥óZbž¯¹¹yœ[rOggS€[°óz*kv<‰2 ¼uþôB ]Ôªe`ÒíÄ•TÔlaÛ…„·¸˜@¼LZ…À/?äl€„…3oÂ6]TÙÔ«z­ü¼@­ö)–h &XíZò !-½ô1ÄË!“¨“€»þÑø«XÛžÐ+ný»¯åñÈGò˜è¼$³ó_Õ ¨“® ã9zˆ!Nü¨6뇨n`¼+•1á5~(A’ºo_‹§ô )YŽËÀ¿èÔóÿtEcFèm%ÏÕSb—8Xm™œd@…ô“ÚhyV'3õŸF¦¿…¯è3RµóÌÌŠÍ%ÇÈ5À—=/…8µÊ´KOU{? ÛE{Hø¼ž(léáZ\‰&ZðW²7°”&P?ŠpÑ%hyyîüÂM¿±¦X…‹|Íˆè½Ø¿A`ÒÈS&.YÌ—ÅhPüæxl›Åeô7÷ ޏ¡€—Au@w,ý²8½WÛ{æ!|0>%SCO¨—B~]òxƒXK¯Ýø}tsRÞŸÂ`…›&G ‚¸aãÞ¡m×zœËk®e8¨^—=Ú*÷ÙÜ‚r¦þè|t]J¬:¶"2ìeD™…ˆA†ð¹°—#çw²I4í™4ßm­0êaÇ…€j<’¼ìð'…{8å|7 tÆr–öòc¥‘YZ)=9£‰Jý»ÄJ³¯¡‹ëVvp…ú!ÑRrà§Tú³Ñé]†4¨D\Œ—ñÜ¢-)eùØ™}Û½7gÓE…Ó …z- að§[R`¾•›ï …êHªˆÕŠr5+†0K-©?¦M4˜AòF` ¨3ÐÃZnop |}ëàü‡†€…éYzX:Ý@g…Úéô:62SG¦…àöœjw¤Où^ ¡üE¼˜ŠèŸÈ¸ZY@¹„ØRÜÕôª…ÞÒ ¡}½%wEdÞŸðØãý•ð+çx…ÌúÏbyhµ¶ ùï…€â(þíp—’•ðidÚs ¯û o’¶Ð…¥ŽûÚÖix|Ùæ…—I]k±H´{#ÿ.´J›ÆÝ3šè/,ÿí~QÛ€…ÜM-ÄwâŤ1¿o¿f‰–h(>Þ…‘c ²€¼åSXfFm[Óà®zæ Þ 7ÉE¨&E”èés‡¬¼Ëž?®aÝ_Ìí0lôÄ(·ã…÷V´‚ì,ˆ¿îyØq€ÍD×fúƒ†++ß„Í9¬"ÎÆ9ñ¼jý·^ÇÐhˆPoT‚Å#Ýi”¨Å;‡}¸¼H?¬PлQϱÿúÎÖ.â‹þ>ÌO_B„ä¨¼à† ñR‘ÅþÓ‘¶4—Õ´¼`”—ýµC`»÷VÈ=²m)§ßê Óq$Ñé\>ŠšÐ³»F±Q$åÝ›òì(,)@W¶ ½+ÂÄ-„:¼'¼ÂÉf¨…ãˆø*p-›²W¸¬ëÛM&ÇÛõEÀ¼‹¬N¼h.†é.«,§É¸EäYhx¹€…ŠÕ¦4c}c7RõŒ&°pÉà…Ša§78±Éºf–\àÓY—%E‹¦…Œ°¿!~™|8§Èk 3Žšà_1¼)1£b´T¶±CÅ€kêX{è™Êé¹É»¥ú̳“€…ô/Ø–^1=|Ü :?»]fÓaý™€OggSÃ[°óz+;ì }2#!#"##  !…Û<÷?ìÍÖd³ =ž°ÙÜ[: ÛH—¾žoÓŠ~“ý¯.É!~Ó"]ãå@…¸ ’çÈÐÙ­?r ’hÁ‡Æq€ÙA–%¼ÒfÙÂk¤ÊOn®Ü¿TOJz©w¢#@ÛÀ†¦3È¿øù5cs SDÂ^ø¦É ­„÷-7mAИŒŒÊ¬÷ð€¿½)×ÖëöÚR-5ö—ó:ÅLfnÌÉ{Uº©pböQ1Y-²—òo:Q§.”V O¶~ÎCíGµXÀ’GfP¼î¸° qsði-Qw¬Ž¥ ..÷H„Ãc¹ïk&K¿ó\@G± až5D¼#–{_¹SÙ|hTàgtÀ¼•Æ¡£wLaàeO¢xžQ>ë,Œ ŽŠ¢å¦š—i[÷Áu™u©?µ¨"K†]ƒF'P—4£Íظ\Ö=R- •g–Fjö—°3¨Ä¯Î£þ›¼^šÚFÔþyç'ð…@¼h:GÉ;a¯âÓ"šFü &¬—Gˆêà¼&!7Ð$ÛÇ ‰´ºP#DÔkÇš|›ÿ€¼uŽYg«:èŠd硛䈹U^&5k™ ÀÍálª¢m¶¼ˆf“Fõ÷A]ê<––s‰{¾<“Ƈ5‰ ú¼½X‡hW÷8î]E!§¯Ó÷3}_EÚnÀ¿ñåfr³Åâ;2ò5øýM¾À)¢ ßÚÿõæöæè@¼¿®‘éø¬—‹zkA'ЬxPOIPZŒÀŸò†¡§Áß\V¼ÄÄÎë²¥œ¢”«9:&µ’úê¾D¼]G÷&¼•MlùË«E{¦€&ÀðMßíÞ-f›®ÇM„i|ï¼”¤ÉL¼®‘=}÷Õî;ÏÂ(Ž,’1êjEw¤†#Þ[@W`@¼Tð‹C÷*¡ÇÔHiÎ{Æç¨ïÇ“²À´Öø§fè¿îE?,"ÞøƒúT[ú¹l,WæÖ<;HnMTÀ¿êÒ¾÷ñ’”¯mH܇’›s%•ÜŒ’<6Êô¿·@…ýŸ£ ­g꿲RÔ&}ßµ~7‰˜ƒÿ·ó‰ÀpÒ‹»mÒH¡H8®ø½9mâ˜é,—d„Þ|U½KâÈÜ¡ŸÖ¹ô¿ûKÖ=ã[ü- *Œ¥èRœ¤¡3ïw×Ó6ØÞ¿û+œ!Ì‚+’Í[+ZžËê$^5\ÿ Ó€¿ùyþŒU~·´cöÅ %WŠ<Ö0ž+Ä…ßE3#é!ÄbÞô§?£9Âóš(˜+ïe?záËæø¼µÍ`¯¨ª…mÑטA®þÎdC`]Gã\$:½•‡ DE€—ñUÂgŒøõzpˆØ· …ÁJ%AF~Dwæ&ãoÌ0:…µfî6|‘ã Ó®¶Š…± ¬…½aÿíM¥½©pUU¨Å…§(öDÌ'`ŽÒ°ï«H…îÄLÌ´ tnp¯6ÛƒÙüŽè…²;*œ‡ö.Ü!!óÎ= MÑÍN§žŠ—A%0C2f›GÕ-X픣G¤¥ž©lG…š&䪔ø’ŽX!iô3€Æ¿®¦a@…ä,ƒ;1kUG|ÒÈè½ßxXÞ,G`—îG´hJ¿vÅA¶³|òÚN¿ù%šÊ@—¸Äøåf ³Ü«ŠÃ'¹Q½/­yI}¼l|0 ”¢L V­*ýAƒ#‰ÙQ 40ÏÏeœûîê0¼q¯;I=E‡1y¯KhïWf‘”mO G˜#wÀOggS€~[°óz,Š3Ûo2  !!¼q½±.»80uÝ”S\Úp¢…aðk¯oÚã‼TîóQyLÕADÛ—ð£‹Ö‘º{d [•q€¿î9W×ÅóýÕË?ð—âál¡uä×ùö¨¢FûNU(¿î6ãƒû¯ hd(îcÎë¥Ï'|¬yaEëÿ˜t—™vÂ[?°7wdæ¡Ø?ø ›Ÿ_ôàe°¼R”ErÿØ]¹:ÒlnÔ«ºr­^Ý]+%UI˜FH¼0.Ò«óߊA®¢hˆi¦(»±´:µ°k+€¼K¬}’ ‡·ë¡¥G~ªFîuPªÙ2]ª”1 #€¼+‹™Uÿu¨Ù~Õ)ŒŠv Å*Þr5ó†é©ÝiÀ¿ñr U.0sÝ2빆ÏÎÃ=Ô‹83¤ì¿ðÒŽT·çdû xV˜ ¡µÌUý8[jÞÎ Á´…ІÓJs[´˳ÿ4s}ƒ¥jâ‘þ€…Åü8Àûç̑‚\tõePñà½+ …[Ý0Ìô'å{4Ë ¿NctŽ@¼ó&«äZŽN]üü?¨GàüuiÉó€¼ÇÔÁ?‡ål±!íÞ,¬u9|Ο ¼¢ CäïõRöv•Üm_ñ³’ÍÚ‰7üÛ¿ð„FCÕusææÃ5“­\\}nnà…¨^%;fžè€ ;íÏ(¬¦aÌHh…ó:?íÎsƒ¿$0Ad/™€˜6vð͹b°E@Ç‹à^Cµ’Åϱ€…ÀÝP`—GˆI2[Vè—LK ”Ë…|µx[¶?Á×®‹3¶¨­€—wDæ¶€…|9%`ß×ò †½q”²Ÿ»À—ÇMFÑ7}$½Þo|xÉK&$Æ—ï¢2v®)•V0‹ÃßZ0;ƒ·ÐC¥.—ñ IÌëtšz$k-®ÊêdQýÒ¾ Ï€¼Ì)ð^tÕØÄQ넹b!9ÒrJ1n£.¿|…í‚N°¯Úó پϳUÜv ¹ÚuUàˆ˜ûg¼EcñfÉ—V×'MÝHº*òwÀÐÀ˜`ùP¡fÙH¯@4˜xKÖïVK’/ì¿ðc¿µ(È‘ȜӥÚ÷ÂÜ%ÅWß º Pn¼K £EjˆŸclMdR°½ôSeÚ–ÒId ˇ¦¡¯‘ê¿è(HþxÌôtO -‹7ÇŸÔñÃ1|Ro,òù7-Rý ¿ëN4¹nõÛ S [t3âßfØc9NÄ+G¹³À¿ë˜IÍuÇ~¿Ì­Mtæ–P%qÍï²}ÜÇNH€¼”ÞR¬žp#d‰ÔN‚':¿qrçWÀ¬ÙÕµ$Y’p¼NV`RŠÕhû Ø?&Å(F˘ª7ˆ¢0‘@¼Jel2=©Ë\²«z‚òhVT9ÏHT›À»Hv*3|¼"‹nl5™»¦Ñmh©—'Mî²§»×娻î('¼+µ¿²Ûì¨ôc¡Ê¬ÜA ô…UܘuOÒ·Ì»?ǺQÀ¿ì@®w ˆ=âáDL@œ€òã.àÈÛ¿¢e“𣘿ñzMתòù>ì@R¯æPÄÍàgQ˜^‰ÄÝ›™„Ù9½ý¦× ÛdõzÅXŽjµ­]ÓÕ@¼ñg_ƒ³h *þÁXï"ÚaóA£ªp×mf·¶¿óW,šƒýMñÍ d…q΃ (L'<‚~…à¿ó¨·OÏì0FcÔût‚Þ´­Í Ž¢À¿óI5x „ VK;$úÝ©åNmãm'Ëù=œ¿ðÙ6¨ï½û[¤¶\6•HfÁ¾"‘1D¼ÄÁ‘àštñÓZù¤&O¬Ð…Ña‹WlÑè×zKW‰ŸÌks€—øMg‹­éÍ&Dö¡_™È9òÌòÈÁÛäVH˜G" jc°.úÌåÄþ¹ôaSàT>6{¯L˜ÒÞz/§ ŸXveW`£\/jFÕ(¼qM Ùû!EZoJ´VÍQ ÕÕã">QMç;Nù~~@¿ë8¡:FpPõ9;|×nh| RÎÑSˆ?¦¼O '¤5¿³ÀÞ´¿ŠÕçN<Ÿ°<Ö³fa+"”ã¼NHj‰Ù^‰ {HÂ/_ÖoZÉbåϘC¥I7hLžd’ð¼Håm¿Û½«r&FýMÞŒá‹*Þ˜¸4úõ!@…×Ð4MáÐ$Ê@ÔÃ\˜ïzáj¤7z8@…ÌûÌù'ü‘™Ñö™ý!T+TÃ…µèS%ùçÍÑŒËa¤²È|@¼$©¶±×~+®Y“·ÉÈbë§á dµ‘I_•‰ W`¿ï:¼»þFi"4÷-9]ÂG±'£‘Ê?Ù˜B ê-@¼Î0½À2^±–Jà{Ø|¤©äE—U¯ÎSR›¼ì´MãV-Íʪ ªØpÜ!·KvÅn“Dó.Kõv~༅umð¾8vk„àX¥•ˆOA¿-£«-@˜:/Jb1Ϙi~è1Hð$ ½ ̘9yY‚z›]Ï©<½²Ø>D6P…èÕ©⸠×$˜É  j_‚€˜`‚­qzvÞ â¬TK KÞD?¼½€±ZdùchT€ ×Ùv~_“*4C—À¼ksÎiÍM-Ûj:Ðú[±$·È÷}1>8ð…º}pCG+·µ}åPõÄåˆÀ—’•à…Ü%Ð-m´‡Ú˜XÝ¿d'À—?¨¯…@ØgÀ—„­6.ž½†ñƒø—:—ŒGO¦F|²–£à¯[׎B_ìt-AÛøVÚO×”KÍMòää:ÃÓ—Ÿ³"|^“’ ns'wâW)d„ґ뀗—‰2â‚uö!‘,kŒpI³£T…º©Ž`ß³«‘Á,Þeõ™ßÑ͹3Á`¼ñ0ñ'{(±ýlv…8ªkG½ú×7a‚7u‹$þ‰¿ñÝ@#0ð;"§œë­m8¦ì[ÝØ\ZDñåÈ¿ó¾Tið5 —„|Ónž#eJ£à—6Ö¹àØ¿óQß[ P²"èÁKÒ£³_ì²2؆®EkTüè4¿ñV°•$¢áùÀDØ?ý x ™½L¥†Ô€—›S|bÜÚ W¬nÒ[|:þomíe”Â2ú8)@…æ+‹%µ“^&L¬4Áu5aš„¸¨˜9°nq!OFýÞ'?ä¡8×…wÑEW)1™@¼ÈTÚ¤æ+S”§6ÞÒÇAÒÕÊ8\M^ʱ@¼¢üë˜?xÀŒ±“9uÁŸ_ü×Ü|Ÿ™&O-â/³ä@¼m1#EµÝz6®~‡6½^M ¤É;Bñ¢ ß@@ár¼uBAÖI>¬3ŒÑð%³h¢ÏDãøz”eõšýv ¿ï1ÉÞã2Ä{kŒ_zWÐ…ÚéÈOº§øãÐè¼uu’ŸW(0Æ¢ŸîãwèF­¡샀¼…ð!Páwܸ#’Ìé^ÕØˆËÊ·â?®ËJaòü€¼uRõÿne.%ÔªÆ>:ͺû>ˆzë^DôwE¼uŽ.]"±‡)x=¨ þ³FpHNB›x.“xÀ¼sô\‘º$.Œáù%m€å#g^Ò.w?üvÚÀ¼K­*Œe7÷ýñÞíCÈÎêÀã Ùy¡/r@¼Mÿ"ÚÚç?d7¬¼M—×Q¿õè!¦ï$ÑcÙпò"µòÑC¦‰Ý‡Ý^+É¿¡øüè›SÓœʤo€½BMkÇrLb–%#nŪVzj_‚á!š\ ½PÁD]ÄŒñ-ÖŠß5á%üä*è¼ñHDjÍ °z™Y¨[:šž#¼ûO1§ýo2ú*WskS’¼›Ⱦ"®U„½r Ž!027JȽÎ1ˆ¢ A”ì¼èxh´‰ÚšÚç}RÍü…™"0o™gÊ ¿ñn:Ä¥Éêû’VfÚ4ǰ°•y•í%ļô€­q@bŸ2çpû¥TVúå ¸’¼0$Ï¿ó ÝRåZ#P€êßnG}¥—* €ü‘âò/@¿ñ2Óµ‚³Ú@Bò¾sˆÒþp„Ák>TȘ¢±†?ûóT(ô“°è×2Ÿ ®˜~‰R½ÒÑŽ*qÈ0U LµD‡ðOggS€l"[°óz0%ì)¹2!""!#!!˜;‚ÅÁGm<7"7ðÃl82£Q€…ê¤I3ÝtÒ’.PÏuáW ¶˜@‘¶wén<äÅ$Ñ`/ŠÜ½9-fÄÛìfÈëÇÉc §†ýÞTP-½"5Ê®?Ì'ˆo·Þ¾äÚ° c¡¾`¿û9Ïrj)|Õb4Tñµ|¸œ[í`ZúÆ¥ùÍÀ˜!–JbÖtîž±u­2+\b´6œ9f¯Œ…éIßÒ6•6ÛËvr­E‚r2Jçvä˜=²ñÒ³]'þn¨y†ÖÇèv€˜Uzzˆ-†Œ{Ȳ‘©Jyþ°Ë€1k€˜R´¾ô.í(¦Õs$ ¾¹0úÒÓ¾€˜@ æw¾W<^·Ú˜èÀ(… ˜8‡íp6F®2îД­4½#-?à:—â§L{½‹oæî)gVÒÀhä¡]jœ7…³ÕM?#îkñ#íð齇À£¯ÇÀ…»sµ5Ö å"1­‰Dm¡Œ„ÅDz¥`…ëžtŽ++öÔ[ø•JcAO@…—~VüŸž¢N·ðsܪ[ÅÌ€»÷"3äD9Ž[s{­#Á˜ÚØlù[*ôW 0»û ÂåbÇ‚?Ï¢5£Yy½ÄYì|iÀ¼ ê9éÿîHMlPܽ¢0‚ƒ•9ø«°sbÄŠ^"Áʼ¾[lI¤ðîüRïCyx«"WÌõâ•änÒæ ì§ïÔ³€ ¼ï"uŒY»0Ã~Ôï]Ói{´¦Šý€¼Å…KÑ(3›`¨\zX¿ö †æKž”+à Y'ªk®G f§¿ðø!VoÚÖn‡ÖÊ`³ ÉK¼ØÆó2«£î   ¼•ëŸ[ë˜8wÙ`$‡LJ"ÅÞâô?u~ ¬öI¼kº²r”·ÜÃn8‰È¤0z|'ÅØût…£ ¸âÙ‘ ~DIhßü8à…»žˆ>¢r~®¤ã|¨=6…¼XÇlx…ô*A.#Ð)¢«u+âô#ñ€…ì3ó¨îž>6—MVw#ZV+&ϳ¹T…ì.§x™ò&„Föæ‹ñ«àšÒ  ½Beo^q=(”7³ZJfgÌŠDaRùu0½B«ÕjFçç]WW:‚‹XÑ)wµ¬g¤ŸÃÿ-½9yøãDko3Ìþ¥IÞ ‡S’(”pµA­ð¿ûOhV5¼¹· Õì:­[íZ:}¢¢³š˜F5Ç–EÇ$JÄ”»ášËÕsŽ|€˜A¥shYPÏh­†I’æÈ˜I’á/ð˜*¹gü"/¯èŒ ‹:÷4·±­ é P˜%Åpê5ÓÄaÞw þÖúÚ‡ÏÜÙÊ…ÛôðVW='^ÚÍ|¿˜ƒŠ:€—¾hŸ_ЛËu&× †‰HŒ”>…º,ÿ«ò³ÝÿEôGÚp1Žº=0GÌíäéT€…Ð~¢t¿Ãæ»ÞáÍâŜ⸅± “«%´"¼?Ï.Þ“x›¨pÖ2`…«yºˆÂËïzS"þÖ€4ºî±^cëJ¼žä-´¤3{@eŒßLß3I³\=7ã;è`¼žæVÆ÷úû Ø®mÈÛïš°›Ç—»‰èæÒ瀿ñÞæ\N {"¤n“ò&šEöÇ·æèŸ•#ÌÑò…Ðb/.-Žcõ±Ç¡-, [‹G@—ÁÝ`Þ't'&A+½k@¢–„â Ö—ˆ4fl0Xé r£X½Çh¢uÇ_‚€–˜>kˆ7ƒR:jNYyrýªf30–¢§N]Å4H[ü?j[}}ÿªÕl<Öð…~˜¡,Ú£¹ÿI˜<”øã8Àë5ùõp…Œå°µ(ÛD…HŠ‹Ð~@rŽ·¡ÏÖ/ŒÎ¤€…ׯì-ä0árA‡žúå}P¦` ¸« L…îFÛ]b]Äå8ßÍl &¼Ÿ!/e°vJgoe2 É÷×~9_u/UÀ²Ú2Z-º ¼„¿ yƒù´½€)’ò? 3˜þ“⻈t…´¼u¾»?Œ[C…èÓÅ©‡£w—Õ\ö+{öC<˜s`à**|AüF`:县îoK<Ò—½¨Ë`ì?k»Ü8$æÐ/wÇȸ?¥!3™ZÒ5 '‹ÏWô©ôÖSM?ž3lJwTäü *¿æþºÃ‡Ö'8à…¥È$ÞÔDµ1‡xR7¹ØÅ ù*À?¤¬GS}µHÊÙbß’ò‰ØwR€—A,DÍüý`M´yTyM[µunÊH€?tµðÒ4½}=G /ïÉ©7ö€s{8#…gâëãÄÃVòUÇœ”?—ãÛ¡^]zØ!Îçq™w×ì…¤…­B–0w$–‰Õ«gÇ×[ýp#ckèEqÞJ€˜R3ú0¨AÉ0¾)ÅUØrãQîÒÓ…ém¦¢V:-{¡Éš³’k«N²jü 3n Ì˜9¦g9ë6Œ7ji+Åϲÿð¼ˆñ m58¼ó¤jÔeΧ£Íuú™Úõj?½ýÿ/_¹™Ü½sò§%kn5Úm1oï.’€v¬-r>DQÿ‘P¼éE&Æ_pódð)aÔøf¶§æU§6ï*ý R¼êë6Uö€,ïÿƒ&… ‰ú¾t‚e#½+‘KmáÖÈÔ‹'~:;F¢ê(IåØUÈ¥¨Æj¼õÌw °À4ê tìt+Y‘öĪ´>¯€¼íÖlp1V<¾9á¿ÄàÈ8ô%@IÄ_Go>p¼¾L¡_»¢ê‡ÐÂñ/mœ$4H…½ôF«<™¤­_ÞIc ÙDmº±o&ÞûÄ…«ï i·ô”W½à¬· #oGwª†À…ű¨/¨1hMH[ˆ3f-ì§FZRø¼žmº}Ÿ96ïÊyóóDÝ Ixï£r\%“ŠíÁ˜¼†ä©•¤™zyËö¤ê¹épøh¬ØºÇ´k°Ð*¼ð½6o1¸¦óïúãßOm®Ès©ZÃó¨ÜÔ‡y…¼#*ˆõéIæ;8Ø’òjY21/Ü´õ3ß¼UT"û©’Ae^’`ð£4f!¤Pu ÆE¿ëN0ÀŸ üLR hIê_3ýØMpE¹Ï!)è²RÑà¿ëN5û5C2oSV8ò²ä/}~åùÃ;®ýSÍC¿ëHÒ±d¥Y•8Ë6ãðÌÞKÍuT&myü• Œ—QíJSzÌ’4õ“câp¾µE¨”¬ßÓªüf—óC±rº…üX}K¤´:ã+ƒ‘€…Ðaë`· sëñ¿%>0T›4=0…Â[Ý& 9®sèͯH&Yù}m5E€AH…´Þñ§³ØG$kú/yå4ÝÔ°k~T@—¡>‰=ò4^Ľ Œ3¢x˜VñaÇIœ—Ê@…ÁS为ԡ<ÐÄê:`•¾‰TCs OÁï…¬Díôñÿ Hn¡†¹3% Ì‹”)»˜H»ÑGëk½éÖuuL `›¯'P-POggSŸ$[°óz3mÒä2! " "    #¼G­l+‰Ác À¡d-êÏ÷y¹týG4‡™…ò K‘`¼GQ üÀ1$NÚ¦1Lç3v8͉0ºŠõûùlô€……éÜäËC¸¨Ê6¸/0JáT?‚áÃèAÇÆŽNÍí7P«aO‚À?‹8z•äõ%X£·QÇ«zo©š åð…Ü3·¾ÞQé¬X°…œª¯Í˜6tÂM2m…) (:f/\UÎx…Âñ?›4”ÛŒWšØá;œ…”ƒ€—q¦L2d£1ÀÕô\s¢Ö"Zoƒü.@¼vÛ?An­'2ßsFÙ÷]Z®MÖ¦H 6"˜¿î£³¤:]†T[=]gðÝ9âA¥û›ŠÛÚ½¤€¿ð!ØŠ9nŽ+¬=¨Ð‡ò]ÿãÁËò<U•w¶‘A€¿î£®ì†ãp::™»`D»Ñ’*Æð‡Ú™M|mY€¼É_¦7 åØ½Í’¬ƒe»ï¼ã—ò“‡Ž*ùð¥W¿óž~BjøIœ‹!áüzL_ù+) è¡Uäm]ô¿ô§}wÅqÈ#¯> ò]3²_¦~·ï´X}Fä^v¼ÈÄàÃíÎ4HÆé8ù¾ø^ÄÄšÜ%ÎÙº‰€¼ÈìŠêjè´î¼ ŸŠËØe,8´Â!d0Ö¶”p—øIéfýQΔêôX4÷ B4ä…å¶¾ºÉŒ‹zþ%jW«™„F…ñOÏ;£IªFƒEâ¦Ãa N½7*SgþÈûUoèå© ΩŒ+8¼Å˜š½Ïsÿä AÛ/Š+{¦•ØLØ~X09@½$¬Ùuˆ¾c›9ͽ;Q+Üý»¾ˆVAFœë8½5Däùy–Fî;FJŒS¡ÈØœqîújôF€½çM©«g|Ûîõ!1ÈT ö—ÿèùþÁ«@¿ø¤PÒdnúÎýEoôCv¨ß6P¸z!*m¶¿û;íï–‡¡Z³Nä~™Ú1£Dl`X…ëO7ÒÌý°‰Xp›ƒ£…o‰9±H‹À˜=Ñ¢‚$) URˆLÍû¬û±¥€…Ð̼cB½ýY1£ÖV[‚L—àó…©Ð:©Øß³¨°ljAë˜`…«ŒgÎvˆåð«X؃Å.àÔ⇠…·|]«<3ð%ê8š×ŠãU>®S…¿Il¥rêDN¢ŽC]ÔÒp€yä—n#;‚c \z/Ï*Šjuˆ„ å¡ó¤õ›(€—$Xö«ƒ¦Ò7…÷Lßõ²,*± —¨ÉxÑ€8üEÞã$Kg ͱÅ2v)ùT¼òùýšr_h‰mµÁd6Ó' ©¯ö»½Ž¿÷%£Èß}ªùBÃ…ÓRˆ}–dNÕHÍÓ¿û8J¦1 ôS‘ø¸Ï6,˜C:ç¦w>)Æb¿øü;ÆÂiúB‚k`ÑARsÑ9'5YTÆ¿÷| >e+ˆþI!Æ›€–ÐÓ1ÍʟЪۀžŠÔs˜B¦Á÷QþEÒÏÞ¿î÷ªù‚ÿs¸oš·Ÿ€˜6þ·§&r°Eð˜Ã¸¡*%æ®ÞlôÀ˜ oƒrNq^óëÏp!O8ßg‰«m,¬2&¡ª˜&¦wrN™¨¬uÙªß sDÊG“°…î·éäæ)AU‘ ópõó¸ûIkp¼ìØZݸVw@¿Y¸8˜‰ý˜¾†zíàèb*ýˆˆ A”OggS€Z%[°óz4·•ì½2 " ! !!""¼žâ6rŠÒ£ÆÑ·–ùÓ=zóïrø«}ÈÇŽ¼™F0Ê®¶rÑ/hPaq¦0=Ò¨qß+R3°¿íÀLe"¶ø’=˶áï• Ä¿‚-ñU?"øOļwé$ÿ¡mñ^ÁoSé% =5=§fÝk*EW¹¢¼\bsËZçQ‚Œ@¼ÏÏ™^þ‡ŽÑàS;ln«DŒ¼žö7ùbW‚EXÊú ‹¦B‚€¬Óцq‡¾¢…ý…¸Š¼ 2ïÌ8¥]ÜÙœ»á2Ò†‹ç* È €¼uÏVqËôç’’¡qŸp5^Æô«(øýbAµ¯°¼uÒýéÛmbóKv³|¨×9l‰»ªúc@,-ÅÀ¼¥PÂvo½)b#µÈT«á¡c»xq¹PÎþÔ%Ü¿óüO?ÂÈ!t'çŠa÷U×çû¤J ¥ÌGl¿÷{hÕ–ÿü;|•Ý„™Q'V!ɘ•€½Oƒœ:àçw~ÊG+¼þCJ•?û¦ÉVöà¼ðf\Ýnnò9ÇZsl&KÌ‚Žp¼£hZ?ð-¡­ýÞç×îoAaLs«r­T0¼ÅyXNî2Lç”…#êaæ~ÈS&n‘Ðî¼Òò±‡Õ<è¼­Bèjwd’à ÐbsÀ¼Ñ¤sy§“ôS´ \8Üzìj'&ê-9ÆØqRp¶˜aã!WzÍɵšw´7úÏf›UÑÝÁ˜—ÔœüZU%‘‚¼ C+ ƒ®–§Ìß/…ßüŽn;&ÿõëe‚#þ‰1Øq`˜ £¼–,ů{”±ž´Ü1V­pºÒ€…ѼŽ/c‚s ÉËêYÒQ@ ×èà¼ÇjméöÁ¶/8VÙ$æ…µÕãÈÉñÉ œÇÄ…ÃÕn­ç,‰UaÛ?ðT]G}F#N?v<…ã3nœ…¤sœÄ|²F‚ÍÞŠJìH˜[ÝMuÉ\°Þ|s ÆM¥]¨‘B€…ëÿÓ6±ÎE)GÇ¼Ä ¿iÅ‘Z˜,Œ+Š­öµ7¾5Ñq´ØÉŸr±½ $L”èÁ#·ÖÏ–Û×ïÊJ ½bö¶ƒ@½Ý12Nï3Û)RXdMu-O—àS°Ç. ½Ï‹ÉUÏ$fwIÞ6$¦ªL¤W"š²a@È¿ùB‘]üÉÄÓSëÒ*E6`F3MÉs/¤?'Ù…êDd¥Ó%“l‹+ÃbpŒ@p‹HW»é¤0…ëeˆ-Ρ ¢‘À÷0“dòD6\ÔªIp˜8|ƵNÞК[ÜÈ¿öx¯›À˜™*,½é(Mn³Þ BèK3΢¦ä½Ð…Þ¦›¶‚ëb|$7Å õXPÌ—Áœ¯È^ëMõ›sC4ÛŒ÷œxr€…¸W±êíý§ŒY«M}§X@OÆ£…ë©ZÏxÙ\Ù¥["6Ú{ˆy&Ñ0id…³©Ý~…‘ŸùV¹Fd?Î:ʨý@—{ñ²ß¹œ[P·‰4ióZj€¼wèõ?Jt!5.ŽñçC…®çWé ?T ˜¨¼Z¾¥•䤬Í#yo€sJsÀ )‡8ã’MŒ¼KçÉÀRúUïžñÓ]¶AÖ^«ùK ©ü%Áï±àÓ²¿îÄÜøõ~—ôý:Z}Å]‰èºI”›­ çQ +0ž$½IS¤ÕŠOïfÜd VÁücé…à‘%€¼šŸD;ͽ +Wm:ˆ›‰Lï$ËVã$Mó•3!ëø¼…Nç­°Zêùä¡ÚE8ú œ÷°ó ê2¿q´ŒÈOggS&[°óz5PìŠ<2  ¼©w™o­Uþ|¸Ì-\_AKÄÒFX\Î8:@¼¾Y°1®¼(“—ëWïýÊ1pÀ2 —ÇI¬Ez¡ÐÆ^™×®b ¦õ䌅Åõªˆþ‡3IX1¹«?+§H=ðص/ð½_ zU<)[Ö×T²fªçh6üU ò—À¿ö+¿œž¯üB.ºFù7Ý ¿/ø4—ó Í~õYùK¦1×ŽŽ­17Oc<—ïÇï‹þ_”V¾Ë„&p¤áÂp"—ñÔá–@’éê£ÉŠ¢"o"™+˜…Òª¿wsSU‚¶·ÌÂù}[M`…ÔÇ•Ô|kûkói|õEØ6Ç…ô%œ0«äQ»°QµåÝ>³ð½À)ƒÛŒ+ÖRż¾ë Þ×Cn¦ §¶\¨6ì²qÀsV>——• Ö¿âEŸ ¹“ïþú£ç£RÒ!ÇÀ—Æ%ŵsS–dY b<º‚ »í…ÔŽw%ÍN>X‹HûÂ:Ó# ˜±™…ñ¤ªL/áÚÈ-ÏôÏï‰|W’ž(˜V\•ɼ!Üï @€ @—ãÓ[íT ËKzꂨâv‡å‹{/0¼…©žÉÊ2ã¼o|ªÐ]JÃ+6¯”›©ýÓ¶¿ñâ:Èñ^Ù¶ïG°¦žÁ)óbj5c£ÚŒV2²ýÊ¿óšFöÐêkBH,éD ’μ²¿ÆÄ*[0¿ôöûád1êÐ…9>› šĺaOt–t…òNEÆwjà=<¥SqQb€(ܘRù4¿\Œ©æŽ0FÞÁDSR˜Iá-jçݰ‹ïB°•ÆIÓÕuõ˜@V9¢d8X-ôÐæao/‘ÅÑÏæÐ…ÅàÌ{‡ì!fô~*í·8’z)„Ê5¼¬`—⢔4x­-RõŠÛà©„…ª&z«™·êøåÕ«–{ììÒÑ•…ñ#¦q<Ô1»å`?“Ádó¼\…Ý›60sͤn+úæÔŒÏ,[¬—ñ㑘~ ¹—[ÛÛî0^F7]½#ôI—ÿnY]ZùkÌ.¡6;šU_¥ œ§îP˜+…WÙY,ï9DÚðÄoÐ9£Ç`˜9ù%ŸAËšørŒh¹Ù^²Æ¾b˜…è|Á#»ˆ2ç0?CF«"˜D´H*}¦xù……}‘›æ}%ä¥ÛäÀ˜Jáqe£Šˆìû»‡vJcë>!€…è·é¼ƒ„ÏïÁ7³«]•éÈ ëƒ…ÝÊ-fŒ 6ªv}ïãÿ#cÅó•g ã¤À—ø.GcIƒÙÀ!\J¼U?b¹Áâa°Ocˆ˜âj·Ä5Y_Gûï:©¶/d§ñÕœ“…ÖÅ8ÞEQ<¢“ÄA˜EVsÓŸªké¼àÐöИm»Ã „Î@˜RxiÍhƒï½ù"p˜9­èÇ›½ávÓÀ’‡êÚOZsb˜7G8Òâ ø–Jôâ®1iw…/ž`˜ÖÕôAÚ/© ö®e>1À‚È¢·zh”€OggS€Ñ&[°óz6Ëe2"   !  ˜,sȪۙÑî¦SrÐßÙÉ£Xu¢™Ò˜6¢¢rÆð¹É€šf‘¬Œ¦ëèq™iŽÖ…ë6Š…—@¶žgÜE:.#û!ƒ˜[:‚z£ýѧÜþUÝj~’¬1ÏWÀ…Ú¦¹»›nÃuCºSTÅÀ›>/Î)Ý—ÅíbÀÉ`HÅPF|î ŽîMèL”ó÷h—Ó¡å %¿§÷ñXø¯>±cjɱµªà…ÅäFBõ–,îWwè{;þUs` ³…êr¸% •$uK.ðE¿a•¯¤+8…ï˜wÃivm‘ªš]}£÷^‚ûäküø…ô"®sŠé èð€C'WÙù5ÂÀŽ—è^LÒŸñRÎ]šªÛÝ–ð7‘&èñظ+;—{›‡~×9óÇŧÚú—W>ëBܱ‹8õ—¡)ã·P)Q#¹ùÔ—ûú„>_ñ=˜¼såí­úÙÆLÜkÒ¾ÿ¬ÀŒ#ÓÏ!Ëz²ª¿ëü¸‹îBúžÙèbã0[f÷Š6>¦`^пé—i}‚? äÛ¨/ò  ÷OÞ{¢'ñ‚÷ˆ`Ð…µÈq&3ÿø®LË“ÿ]Ÿ^ð™ÐÈ]ÿš¼p÷8ÄbmO™>I Vo‘á¡ÞÆ’Ï¥fÈ›wš¼wè°m¸HÉw;Y€šðÇ%ù”4ÛFPAÊx.ñLM ¶qÙZÊô¿ë–þô÷{¨Õ•ô¬íÁ_*~@ôÞ…ÙE [‰0Sá¿ídŸ`âQİ/#Xˆ%ˆG¤Ðã v.–ë*f8ª#~˜<õ¡+ÅCñ2À“Ô)’¡a·‘Ý wؽ¡ax{ÿ.b i¹vŠ=À 7ÙK>ô¼È{N¾fèt8„d'::ðµwû¾ø ä퀼h§ç̼¾c QºFh'DR¦s!³ï\Ñ¿÷àI¿ð†áè…ʳ&„Ø9¢‰4vN¢O~n¡~Ù8¿îOb›ûi™n|œ+âû¼‹Ì/ù€?1“Ò† ¿íùÿx‚P¨žÇÀâjH릌æ:ˆ‰t˜Òuymȼzýý)Ñ¥²‡u¶ï‚¨§È}Ð]{BÍívà1P{¿íþšhÞ¢™”¸„U7A0µá®ËO¯T:¼uDâØÖ „ê’Wzû­í^§ K-|»{ˆ ¿íúkRx·k‹o|‹¯Ï`và›ò¿ïêmíŠèýbeß³´5¢þàò}õÔ¶Â`€¿óúe$mrݽ¦†I4bN¥·á挅g€¼Óú±¿Ù³"U,Àø0ñ  $EY6y‚æç P6€½vÂä‹Ã±c©3¾J^hÜ5s`KLÛ ½8œ=F}âᜣü žÿ‡á-2’•‹Ì¼ò©”zc¶9\Ò“9«]·›â€—ø‹cJ|x‘ÉWß&rd¤6…à)ÕH/r6ٸѼ|yS¢(t#…Ûšð û¸v®ÒUU[®ÍçQ€…Ò·Kr–…¥?øÉ 02ek2ikј9ÿkÓb3If‡bn‚xSKÿú˜: BA·[OGÒÌÃ;¿Bè>GxÞ…èdU„dI±2< BCëLíFb…ÞóÝÐ×i9ôûꢫrN#à—ÄBˆ¯ÜÞÖ%17›·Ê ýj¨%OggS'[°óz7x<302"!$!!   —Ì+ä™ð !®Í\KVàÂw+f»#$0…á€{#ÿ•ÐÍá$=œ„äµÖ«Ý!…ôDøaà%1‰´ žAM6.ióh¼äþU€Õ¾ëˆ?ß|Ïs«Èõac³1À¼q9Ùc+Z`…‚®; 7¥éKæ$ÄtÓ93°ý„ F€¼kˆØoEüÍ:z*ŠhÇ3§‚ ˆÐ*ª ‚ðp‡Þ÷@¼Qd(»»8XAjY¥4£Ã·Žrƒsqµ8E®Í©¤¼•Xrרy¦ý¶¹=ŒŽ¶s‚Tð=ìäbs–¯u®¥“¹À¿ñ÷-`Ý|œ䢒æw+¯Ù;­d(T~7½›³Ià½R1ªbé€çX•ðÍp“¤.q,¨© »˜¼ðÓ î|Ñm:\Nè¶öÁ» ž}Pb¤¤dPl¼ž`˜‹p.˜žŒ˜õ3÷‘+‘&L)’èU˜=d¼„Œ¬ OÔÙ3Š÷Jž@ÉØ.°,EIc6¼§´DãöCÁ‚ûº˜ê^—ÛÚšÊfñµC/—ãÕÇ£/¡BÁ˜-ÔïÏ}­]CB…Äè6ä®9ôëL@Ëß=Y{oØv˜:qUðm$l÷L*˜£ðù^¯d†F(˜8ƒÀ?.͢팒 2Œþ´†À˜JŒ€oÎÁÞdÊÒíùÐ ÕÓÛ`4 ¤p¼ñ‘ÌÑÄŒ¨:ÛŠ¸ˆidƒs\³JÃTé(¿ör¢ŠÛ#›0²Ôï–G'\÷$Õ>dCtõ> ÁпötBÅss}¬ dØÍÚX >i«QÃNISE[ ¿öä U.þôö™‚/é˜ÿÕ*5¸{jÊé ½R0t5Á“„nwÕÔ!@~¢•#ä‰A¼£à(à¼ÈÁvÈåäu9tí´‹¾,xs“ò¿Ø¼”¹eÿØ" …f®>f cç@OggS€H([°óz8#m62 "   ½8-Èz¶à9XLë` œU_B4`ë^¿úeÏÏ÷êâœlûƒ ¸€ŒYJp2úsiÙm_hᨈ$ú…Ð…éPJª 3XwãÑB'û A¢%œ½€˜9§ÒПËoöL§7üçá‚ØaÁ*N¼ÇÅû>ÈÌ'/¤OcQéïÓªG¨M+Éki¿ðòÒ )ˆ!iUcÆF.䈻U¤ñEȕЛKÐfª¸€¼ úd Ò}ºÎ›ù\wÐ/Qñ­/4¦@ì¼~Ëx›üU÷o\~ÿa…2 †™RÂÅx†·Eþ¼¡=¯Zåú›ß0aŸÇ{6Í«g’Ì…ìûþ6?m;|¿ôÊIKu€êÎ+)h$…gayì29+ÿÅ0”…ú<öëܽ’¦^"zã½Èf1âŒSUÀ¦Ûˆ‚¼C’CöÌÐñ®nB€¼÷ò›“àÅœý 2_ièÆN±UÇÆ=±°¯ã¥Ïl½xY¨Ú)Z Ö†ÈT-Âô Kj !¢0¼ßA;¿÷vÙç°õßn‰o›xÿl±™¢¬™°¿ðØ¥ˆÔ¦F5Yúœ+þÌ;‹$MÀÐ ñê±a5 ‘Ψ¿ò >×V"@!€›î±lV*LÀKRP¥k¼Û<Ž_e{XO½¿P„t„ïA(xÚáêU;º:Ln…èÄŒ¯šý³´dí};ëF÷ÊxK}ì P…Âà °Ùo|ŽOöÁ02MáâÊ”3`…Çœ÷¼®*‰øÞµÁEœñ"Ë@—¦È8<­j5h&—FhkVØæê¸l\­Ü—j§?ª_²8UƒùƒÂ´YHLvpÂ߀—a(„ìàþ}n”7€S5d>`½˜.9¯GÒ­;ûÕ ç±Qw j£»Ø…ïŒÎI%0¼£Ž|öë 9Z©žô|y¼  ˆ¼Ç£&¯ä¿õÄ®DSHòMjüÞNñ«x0é88ŽÖ§k)à¼ØKËè…éÔkʘ Á˜iwsO×)°ì½àsældÜãBj©ÏúªVÖ¬#ÀåÕr¥…ä’+oTLèG2cÕÅ–¥[ V AHçÜ€…éPs”¿eZQ¡š'tg5?]˜(ѵ\Çe[7ª/)ø)ïDn.Ƙj ì[öK)òÚ“uÐ Ð îg€…Å P/‡@º“ 1¤©¹¾*HöÆ—J…€OggS)[°óz9°&̉2!!$ …ý¿3GèË%…å3¿,lzlû†À…éIÎ÷QÄr²Éè»äŽÝSp L˜…ßbî\.‘ Ç!ÞtCîèŸK5ÓÚvC‚êvÀ½ ;ùw±d"z![­ArOñø˜7a0F€½?¤­a1ÿkbñ‹óoQžZ” r¼Ò? ½‚/v¼WjS~VðÇrÓæ°gs€¿öd0ucGtIºæ×mÄoãÜ!Žê 3³·ä7· ½$íÞ³MU¸""k³÷Ò¬ÚNO(¸õV€˜8®ì*qǺ‰ü`RÂnò5ÄŠ†sÆÀ…ÞÓD弟˜%K‡÷S“ ?+Ž›ÍÀ—Ç[¿ÝRíœ%‹<¢ZYôaX6dé¶ò^—Á:éÜüɒߘW辦)èW=•ñ—ª#G3ùHõâäáµ­ ›(üq±…C€—õÙÓw&1†ga}PЈšÅ‘xMÚMÇð…÷¨Î}sî¸b'¹!¸+!ߩ뙔]Ô˜ Â'û"ÇÖÚ£[ÚùÜDÂÊô-Òçl€—¾çƒì€&•õ•“ê¶¢éà ÒOì4…¾þ#uvåô£_g??ë!C~VŽ…¶N Øi4ÃÉÓWe‰Ú3AanÏ…‰Ý~Ÿ`…Äs¡Šö邤*(`Øû”¨Òªq€—Èäšó½ærÀð›á´ñ%ï¥qÒ°®'M…ñË@”\ìÕŸ­ØEæÙ>žóŠJÀ¼ìš¦çù¸Û“ +Ú¸PŬy´s?ŽÚé›È¼x'€™I†Í–­¯ÈLøÕ_ ªÉ9ºˆñJæ­ @¼›¨O´ˆÎç—rLt:7g!‡<Ž$½Xµ ƒ—u&ƒLû]q5r§q"‡Nò΀tb“mk™&*…ÂØsçÿ°{>qÛ¯MÝqøÄ`Ø…ÁiêÊ™»â$Gâ£>e IO ÇÖ·à…ÐÒuñÆ€ä!É÷m ΜÌ…¾© z`à*&˜¶£L3ÿ]|ïE•»ýó C”òÑ2¤Ošº"Õvêë´¶îö€¼"mëã²y‡ææúf{ÞѬvGƒO¨¼˜aòã ‹„ý<.ó –på”\»B`—#UÆè2T¦µH-48s*Ò!p…•ñ'ó7…7}ešÀ¥ÍtœÁ^…ôDBcEó(µŒ‹1{{Í2¯ÀY…ÒóÄbd “3¬f沘pÌÝ/ÖlÒf¾P¼äø1êUf`š›±ŠUé2=º*Rk +ñžÁ‼[È,¬Ž´‡üÕoÉóEŽù"@§{4j “M¼G2&ªŸåõ¥>O6“@¥–9%ÝAÒØKã·à…˜ºfq›ø8ÿ™«¯/á3óýõQ,þv¾êg/…‡î¶æîÌ÷¾SÖ3Kǹ!üÔ!™@l…ò Bîç×÷®Wk¹@V —éüªêÏ"Üëe¬Ž1c÷LUkMG„…ÃXbÑI!)©–^Vj&£òͲ‹l—½ÿ~߯Àñ°î8ù,“—¹‡5ôÑf~à…± “”¥ @©#š¥Î"@´¤£¦´´  —o'IÔuþ‡Û:ÿÈ ÑÔ£Ä,M~‚¥—`^®ÈFÄÛÖ|6akÅ|LÛD‰¥ï…¦íiÖ ã·ÅìOggS€¿)[°óz:Âh_2! $ %#¼j&!hãcÉÏV)ä)­aõ!PBÞ~yÔÝè¿éjýaJ…J›P2±ÞÎBÝò>Ýv±‚µ;·4¿ë–B–Ÿh‘vwÛ$ì Lû¼v,ò…ÂÓ¥E5¶)‰%ÌF4È—¼¿§.[ìZ}ìXfá9PÌ#©0f…¦¥†k\–õl$˜ÖHÛ|~§€ ù³8…·Zø«Š-¡m€g$Ó“ÂÖÙ›…¡ˆx†×ãÖFÒ¯p€]Ñb2…x`6ºaÊîa»‚ÆS.‰wSŽ)„…÷DÝÓ¿E|µLZþD~ ¾4>¡»¨…èo³ËäÅ©™Kü Ç ­–Jp˜-ö‘ma‘ýhß˰ß²)†Ñ'BYE-˜@‹`Z±kùüøå6žùu±,ÖŸ]U1nS€…èr„Ká%2ÊÚš–Ñ©À{ u–ÿ¯ú…Û¾Xã>´9Ô÷S5}4aÐNsñëQ …Ò X¶ Å'¥€ïpNÒFL A,/.t¾Z—å+¨W°^Öú}Û¶YéèC öo‚×ìA5¼å,/ùŠÖ Û4ìñ0dËSþ³„flWÖ·ášž ¿ìlXLÎÏÜ'ÒvÞIv™aMlí{qšþÆVwÉÏ)Ì8Kºh¿ö%…o…>ÅC Žk’…;–@ñ#ÿ~ ¤4ª¿óë¯yôïl8J›Œ„'LMÈóí>ÿ¹j×þ|\&,¿ó–bÖšÙ=xu†’{ãPŸaÍCΞ¤\ÚîZ*ì¾|:zÀ¿ñ/„Áݺ…4¹˜º-ÑÎÎŒÔIbè`}šX˜ô…ìe!‘ÃíF`ÑÄ™Û?üÒnžÅù…ì@Ç>Ì·;ûí×$zÚÉ\OggS{*[°óz;†Ô…2 ##! $˜7>¯“YÄ3‡Yž6½Ñ•YBb`˜G ÷ÃZ.K›x´yå(ß?r çŬ˜ ›Žl2¹„šFÈ84#¢|j>­€˜@%é’³¨î7·ºú¯ËÕ‘r‰l„€—Ãw>¼#ÈîiGþÎiü”ÞÈ‘†—ÄüWïJÁpâv7zÿñVG^…¿8>×2_Ñ@C"DËîó²0™À…´Lœ©‘ÍÝ;c‘›|—˜R}kéáA¸ zz×YU>áäפp—Éxù¼2ÊÊîpèÓ³ù³JÅx&Éœœ6ä˜=©¿ÕÈÒ"‰Óu·®òå§ŠÒ ÌÑR®p˜UÌ_d$öíÓ@ؼ”©XŠ;Ò““8€…ýŸL)$¨ä¬BÀ ÛQùôN†R_R0˜ommUæzœýFº+ôòݨí©˜;ª¸Ç¿ø¯êÖ€‹É)| —ùü$´_< ïÕâXþ&Kè«RP½$µÄ«ðÒ\ì›I?PL ±Ó/uuÜ…ô² ½*^ˆ=]Í•¹_ w`Êi"o¶È%¶â€¿ö¾Å£¦3ÉͶTÀ¿úCcyê?éAÝ ¡ü@¼øÅ-§j g±›6žûHE6-=d .~™!x˜9•§ö¬ÿ\ìÑŠpÔ©Qþ½\в…ß8ä›èØ„å†_œ7÷„äå=¾x…ß>ÂT¼h£Ãé%*×±;¼¦˜©Z…éO×ëƒLæ?¡”AÁ¼¿3P1ö ˜8—èÃTò赞h˜ýcévð»» ÓÕc¸˜$4Ø@Vo¢Ð×á:¸|`µ¡ ,½w€…ó1Þø&iø=M¥­¼ôëܽ3\“6½“ʤ$K¯93“ÌÕ¡3ÕëLM!è¿}·Ê¼tÀ¼Üaô´­¡Ž” ÂëºdˇL­ o­Ü€¼F½ êÜ,Áe>JïmR9¿}’L4®¯çlİsêòzÍÓõí% £Žq?ì‰l€?ÓL°hÑ»üÈ®PÁ$øçœ_sí>e+Åù’çÈ¿iî1¢~…ÉfýïØt¡†¨Ð¡éehCèh€…²m'0¯‡Ý¿²mD«ðm™NÆD@—Ifï]-eƒ¤«îUN_VÚÍz[÷ëx¼ìUí¤»ó~¿ð¨|¦ÍvNøG(BÖœ¡‰{}Á¤Ö`¿ëe Fƒº(>”>è$ âÒâF(ÁD_$ýOÈî¨ Ù+…@¿ê€žšÛARn_koºs˦l¤¬Øõ{‘~À¿éwíJ¹·ë ˆúCøT¬†y#nº °ôòŒ‰½¡€½oQ[2ÚÂÑd‰/Çè7ØfÔ³šoL¿µŸõV¨H½l;Õèòý"©aô*ÁîE@±s¸P¿ùšWØõjkˈ,|Þ´ææ§÷ž¨ä`˜‚އѩ1!Þˈ¤3Û‰>…,˜çÛ3}ñÌê7;I9»´Õhc¬Ê—êpôèL;7@×'˜ÃغœþÌó€ ñ—Ó=¥O®Z¿:-[‡Œb6Ì‹K!v& €…ó.îíf¥q ÷Êh'ýC%ˆðÜ—½š™JõÊàËËö—L Ñg€zC7@—¨j£÷6°Êd ö$#ÞõÊÈvéLY€OggS€6+[°óz<¤rÔ2! "!—.ÿèÇ:M;œx=d^ êÐtޭݵ¡˜È…²Ø¯:&±:Þ¯d®m;áw•pp×-V…¥ë+¬ßÖ“~12ù{Y?ä—>\¢=áýEš¤¨Sê_ÝT¯l…Ég8Ír>øqW2wÉÞ{89ÖW€…¿5þé¨^fKÑXW‘СCW@¼tÀ ÂXTÐÆ;ùÙŠxø'¯·6X(‰UìÕ€ø€¼#Ê@žæXh¼ÁÖñÑšà<¢Ÿä9¸û‹ŠRÑ €¼'øÝlå ¯³Å±2þ¦ ,Œ÷ø7¸ê>ö¦¼QÆ‹‹nà$«-Ò’Þ@c‹¿ÈËÇ9H¦2ŸWÓv‡¼†¼©ÿHÒØ£æÎ®H…¾>,ç ´†™Ûx—í–œ[µèÇ’ûÂ_0 \ÜÞþž]h-öÌð—é¬;h¼—Zëæò}j ç›Çh¹ Vïp—›)ì|PC†`ÄeöböÑ–âÀË´ð…·ck2”Âf':Û®˜POo>`>Õ<ð—¼Ð$¡'œ)üÞ¬Òœ ²þÀ–Ý`—{~]Ú:_¿wUº>ŒÈ×.šfémÐ…ºÍL«q8ý}CtÛ­¦Óû*ÊaøSÝÀ…óŽ='çTTIóeö ó"ˬ>¤•…ëW¶)çJzÏi÷ØUÜz 3:û€—ø‹] R‰ˆ˜ná™Ëc} ^‰¶60`4€…à(}HÁ 8 µÀöL†¡ÛNؘÓÄ”=Ps¬›âçŒ'IÙ@˜y w}¥:ãX4tK)°5b8Zw!À—ÿ|`^â¹®ŒöäÑàòDùØüî¸Q8˜+ù®Ü7±çj4ê‚¿žêœ¬2vʘ9IbQ&’9‚Ô`øIƒ™´o.{c;€…ÝèŸ ™GsCÅŽu߸ádðê¾…¿ŸJ£xĘ*cQ¢¢è ”_Ü…´šgpÉ‘¹# «çÃ÷\—–•Ó†U¡GˆÁH™¹©yÁX—p¶ÑñHå «õÞr(³ü…ÔQ§¶PÄ…ÕëEœXÔ‰Õ·uÂÂQ)8÷M}¼h@…È*Ò‚Û ›ãêÕ¿oþˆâà—¶áá}6ûÑÞE|Í\óJ¢*Æ‘å ]Þ—nÜÑ YÈú ßÈÚ›rB•hÇßÀ—j5¨aàgÒãêH:v¼÷úù|x?(ê…bïeóå¸åä~3žþΣÏY=?v”)Ų́„Ûnzö-ó…»}X“ö`…É8ðg¡´.ÕùaÔKcºíO9#ÿ€—í¼X’ø¥Ð~{!\#B¶Ûsª$ß È—¾€üY3“²•€Šº)s{¨?¤|—•€î϶XÜš3Ö–zlñé…§#š}È ¹ÆWðjš§ô:_Ä?hŸhÆ+?ϸåú÷}²û^…‹5wY£Í’ö•k]¯Áí¬šä…ð‚Œö§ÑÖ•c6ÌÕÔ<ËëÆ‹ßŸ‚…àUç-)†ñÂqPÏ\€^€÷_¡ò’’¶€¼÷Ò\ãS"Á(a¦|ÓYG=f.JÖ±RŒ¬ˆkAm ¯½7YS/ÎË IÕ-š˜¼š‚ PpYÔ½çtyM@çâhÍ‚ïæ½ýK„º ¿í;¹dr'»¸+ç.ðšÛ=X¶S[–UH0ù¼¿è^|æ:l毗v*^¦%ƒÓ4iÑ@…˜ϽìuOºQÂgÔ€…ºô8ãy‚v? Bä6pöö±2ü½U˜Jô$€­MÊ‹×(PÔÏS¾ÕؘCKPÔz½Ö˜,صÚ‘‘ÛK74àe¡|˜Aó]X0Ë;‚{Uám]z Ô‚F«½6ìÅ^ rø>ºœ+­h¹fñòw™´qcæ¼èáŸ1Z½Qeœ·aЉõ«/^‰ä[Û yª€¿ô£˜@'Kª<ßIÛ°ªŠB¢†EFÏ9ß$`® •NU¼û”ª[Ëà„Ä¿‘B@†tÝóY ÀûÑÎ(½èúIѪ«jº¥`@û‡E^ª…NèRà¿ôb1-R„+.úy+ “+ÃàdÁü1E=è@À˜: « Te9…e¤%áIÄå¬rQ†vø˜: [ƒ_À³dþÜZ؈"Y ˜ñ&í°ÂA-¨mÍ£3>óU_’ñï;€¼~pO+"É›yHnG·ƒÍÿ¸ W[2îCiÌ“à…𗆕]¥Â²¸kFh>ëÙT\SÅË1½8,_½NO6pe1DDÕ ;/èkÐ[=ར"‡¬‡´²ÿ(¼ ‡ë)>® Óì‘pu@;r2½ 31¿%éþ„êÐÍì÷r›Ý†4@½L ¸¼ø?+4J@ûMTybÔo~Ÿµ€½…928°ñD7ÈúPÈÁ$ý©ËÖâýX…á8¼dâ‹6ò}Ø ³­ŸÔ.’Y˜:)â£ãóòÒ5Ýzù«û'ØÎb…ï()0p€ì«Zƒñ¢ò€Ü3 쬀˜9["$Œ8ÉqE{ù&ðÇ+": ¼ñÉþá”ÊÐ{33¢n#lM¾'ˆºí®¼¿ôŸ 7‰Û%ÅOnËK$*m”’?¿QdÐEÿ"©¿õ§û]B}nEÂUºÕ‚_£üéêtëVu1„@@¿ñ7 dô?³>õîÖJ¯ù©„P©ä#êF`)À¿úó4©b<ê6ã{7‘õQ(ÐÝÂû35¡“øf½6æÛ t éU¶*î&e*EvÂj༽lFl7—$g6ƒ× ĺˋV=` ‡l¹ýÆô Ï$¼wZf•xh´á¢÷êN!ÎÐû›)ó}²Í€—$u힀¿îa*ÚL»;•QP€eL~‰Jîs£mä×Y­žÀ¿ðî18èomÁ÷ÚŽô¶Û솭ùßG…kµæ¿ðÊc –® @‡Ä'åøÌÏÅ}ü¸ï Ýød½ÙA—V™ÁsL“`¢tÚ ê0”³”q½½6Ýæ6+‘*¦Ò²©ÖÝ’æ¶Æïn‡wüTR¼–'0=iÀ 7pÁ<‹öÌ¿¼¡ìù ÍÑ‹DÍ7¼à€¼”Xoè{ªxž~|ì-ƒ”Õ0 »cGÚA@µïà—m†Ÿ‹©$A“h˜¢^ÝPïAöi×6}°OggS€­,[°óz>-;—Ý2"! !—mƒš;Ñq±†En†—4ÚÐD­Éeļ%P—{ÿýŽá£ìôp„{pÔxõû „…£È`…êž­€iƒå±–Md°ËëÊ€˜IiJ€ÑÛÂlÖnøó—ñ"EÌ÷s/-úsAîj¬Î[iÀ…Ѐ{¨:Œ*oåQð딎`—¨¼(î<›l§ìco<‚ÛóŒ^r«¨—ðï¸Ê2sQN’—Éþ„ΪÄêB¼¢Š/=qD&cìiûõ)"ÏéÎodêG…ØR´ œ¸D©gγç)³Þ£ …ëW¾ùP%8n[õ‰+¯O˜££>¼å 1«&VVÇå{x7½\èŠø F³LÜÏË8¼®sØT“Nñ‘¶ë@Z"Ä<å¤!œí×༠¼j˜°ß‰ºD<{SÓBb]á—Ë5u”3+XöÕ>¼®²£GdéÌèMGu*t’þù޲ž5¼®¶wº7àˆÇtÙ!’jaj§Ÿ;îü8žp‚¼Ý::‘R¡Ø(¢o‘Eć3‡ý`dãf°…Þ¾]À Ó±í‚À¹:ãÁy2 @¼ÊݳÃÎím%Þölú&2Ãvbi‚y=*¢”bi‘¼Ë(¿ÒH·Á6rø)eª Iü2¨¶fÑ̹6¿ðüQæ"‚Èw Óò*´)ìÆõmY6⦠ö„JÈ—œÇ†¯)¥JòÅbL\Nîÿl|Úeçâ/œ——ÊJ\ïÞ)¾‚|{²zÊtƒöêÔq•IY…ælÏÓ±žq{¶ZúÄÙ\ö„Ç…ô*R–~¼ý£oå,I$Ï×+›Áè…ëiÒ³B»æ£rÜÝßkÌ=A€˜JØŒLˆERÞt ª¼Ÿ Ç'T…ߨÆÔèª^>]l¬?< ÊÄ9~!r˜*/-ñß—Š’›@`¡<(Bz~ä|=y]ê—ôˆx'ù=’y9ÅU‡ HøÑú8 ©¾˜˜=öëÄt´T]O¥ãü"„ŒºñAE…ô*Ig„ãÔgõ{9 j1lzÀ½O&¾D+VÕq&ö–Š¥ÊÙPÈ6¹šÈ¼ØVÃñŒý†­%˧‚MÃjQ×W( ~˜¼òk í‹öÿ}#Û¹áN?—¶Ã¤¢™wÂN½è{Ž7OŽ’õ=‚ùÕ½Zò”}á²úŒÌ®½`W.d2th¸‰tñb^^ÑÑj–$[×ß…åÙkév-ß•™³åɘøYÈk_Š…ôW±fC}22%£éæ¹ÒˆÎ»8…èÐ}]§¼QÿVÏgA$ð1V:Å …â#Þñ¾=… t‡úZV…–BFù€…ècŽP’š)p,-¼Ãz†‚À˜e”Ü7È»Q†Å"â&k…“_ è:†5O@˜9z÷VÙÄM0|jÅ«#Bu¿õµ™!`…ꔘ¾”S _åÎÔ œ!È®Ñ+$DL€˜Qý:Vá§u/wŒÚäíeà(#œÀ—Ôt®;…èQ>"Rx`Á@‚¶ÜØ‚=`˜;‡¦ÙâN«¸à"Éa ôøío›:äZ˜@3‰3EÙº@ÖÚØªUž膒 …ß Ì Ò ažïIò¹‰9á@¼°jOggSi-[°óz?/÷çú2#$"˜9+djGÔzÙÀ™àN¸v!E…ë| ¯Ë …æ I‰N‚¨ë!ú £:IÞuR=z£= ±ºÊDR…?{¤xË®—˜: yºiTþƒPjô¨Ÿ—» 2Àqà—ïm]ìh\ZÞn«ÉßA˜²ýŸ°¢¢…é.÷ÿGA‘¡‡h™OsœNùŸn;ñ3GØYáà˜9+…t›˜ )à†Üú …é–üéþ¶@€˜ÅÚ0,Ì"ᡉŒ µœ=AI?%Ür …×—–éízÆ_äªæ©â­ûÉ>ào‘©?]A ˜Kùò֚åÑ%Uù=‘Î`:h°V½@S®x²%Ñn‡f‹Ûíž²³©çTÍ·ûÑ`@¿û»ÖSÐS^ˆˆ-êÍ7wƒŸMrzÂéZЏ»\Ú7¿û.ÉuÛ¦ä Ål8“Ë(#Ùncó_ð0um0€¿ù$ví-þgóØH@¡”ß«§Â“ óA/à¿öqI–’Àá왵/‡ [ïúêìù.gx6q?í`˜ ²‘¤Í5jR"ZPá²ÙìÞ »~<ð…ì=aáSÉ쬛èÔÇÊL"ŒX EG(˜@=*šh ,òâ¢6a~YQºJ¸ÙÎ^˜ œ¥n¨~"JÆsÛ#ÀÎ"¥P»zç00…é+¡ ÜŽ¯ƒÔG¨Èÿî%ÌF:þZ÷=oP¿ù)ŸxûP ¦©Ê¨=)ãଃ½½ÕJô°…ߣ•ô¬D3!÷:8½]ŠÚsÐÀT€˜=!k]±9`ÍóŒŒÏA±mT§©vý6šÉ€…ïc;Ò’¤J_C‚:™Qp  ‰¹@…ëÖÔ\¢|Cñí=fÃÿ€˜9ÂF¾9˜@cÚùOÛo§l#ÝŒ€˜:‰™g”u9˜B 1‚ðQ2 HÊ|@é@˜‡ÁÂü†Ø¾xE:Ç–Než>¬ŒÛ—õÒéT¥S®™¼PÂâ٘µGN—<$…ä½Òz£.4¢Á‹’>¤MC 0…ëÏ–Ä á¢Eýêeü¿™²½š0?»˜9^k˜ê K1Ôžƒ¤7xå³nmëf`€…ÜE@Zá‚Lõø¿á— ×<–À$kÅÄ@˜9n.rVHÁuð’{`ÊûæØ“`$€˜ ôÿ™#h%ßî Ù¦/Ñþ|—É?B&Œ÷–¤KèkÜRÛŽüDÖ‰RfØ&:…Ø•Òä|)É:œ5mzýjhØíÚ^à˜@[MË•b”Qÿm°fÅšà-,Þ[h'ß5à˜ h v|{i§†³5²¸å~•Áf¶½ŒPùâš« oR™Ù{’Êâ]s¦UÚF&s¼ò}û,üù uåé/ä1Àåé§’ñœûÄJJ½*ÖlìºîÜŠÏéX4ûjÙ¤¥èNë²¢@½!y'VäÛ6É53¿/ogTןÎ[3 jÃî¿û;6ò™ÄøeË .!¡‰ ;ÒmîwÙ=_à(—½<òîé–Í´V•¡@^l|r›Ý•È©µf˜AÄD¦o¶n„—ÇI´^×ë™ÃøZ…è‡ãøúæNÞj"÷Àô}Gɶð„˜9›Ü5ùeqÞuAŽªDÔ.mt߀nñ¸˜7?F¸Êc:i>M r'E­ü×ð—î !6£ç}–Hû…xèÅÚ¸OggS€$.[°óz@K6ƒÁ2 "!#%!   …×ÅIXY»TÜL‰aw\)i·¸Sk)ð…ë${ŸÓœË,Ðz ø©²ñJÌFß›—tVªÖ Üž¨xß™å›ÏKÁù÷´uºëd`¼o›Èi\;A4¢<7¾1>¿´‚ª­4ozº¿CÚG° ¼Këkp¤¾AñÚÒž~u¯ÜÐEëy¼LNᘒv˜¿ê‘È‹u×î„MõÖ¼I…‡5wfý4™CÛRÅ`—EÌ\:Ix"Ê!•q]oàíœO—¸…»×ÉhóÚõ\®‹‘-':п>2iÐø³Ò˜H깺0Ô]¨îI­9„Æm»sƒ/qEÃE€…²Ù–÷yfQYý¸8³»#ËÐlÐB—k— _ý Ö\ 8|FÅæŽÄßGC[£—tÑ+†¡M[§þö&,Ó•}ŸßÆò÷C…µÈ@ØuHQ"£ûÊÊÑy %«túÿ·$ —‹÷-Á­ÜÔBJëÑy¡ü@±º—IæD±Ô‚=+,%ÒÁA ÷žFÇò(y¼ûoI”\[^ISÒ ÎaI=dÄ6)}üzt`¼½EÖ[üêŠfZ¤ ܉&Ëe×§à€¼¢ÁqÇîœZêM&H&Ç&3yç“;±§Ž¨Ü²KP¸p¼– !‚¥f®ê˜ÌX<¦3E.©åÈÌDîТšÚ-,âÀ¿î:?ãw¹ÚÂ@5ŽmA¬’ÐüÐè’¿íÇÖÁÏ.p ™~R+ª;þnˆ¼Îu*¾€åÔ€¿ï\QËKÃâœõbÜéÈ~*Y=\Tn.ªªG²„ø-€½?®ËÖº,3ÃY/KȱuSz¼þ9£àÒ “¼v³RâÃZ™êÞÙÖT™ƒ`¼Ix…<úa–½V¼k§êæ§ÿ¼N†—ÄÉcB)%f½ÿÀµÄ`mW@¼Bz »ªòÂ\FFìþ¨ŒÖ IyÛùG>“G&¼!"y)06¸/Èå9²ïèîYº7ý룇~ €¿é|Š…þEŠcI†Š…a$çô`©ž(¦à• €-Þ ¿ï\li¹±¡–Xaì 6vŒ«ür¦@½Hêh«âZ9‹{ÎÝy~Uµ€„?îÔòº 6T¼”¹îwù'eº‚8y>èþÙ¼¾máÀô=Ðö´ˆ¶4*3M€à8/oú—ö¼ ® ¥lN¸©ùYD窹ï¸(î #h„”¼L+ýõñ#c'T,Tºs¼ÂN-³Eï5¿ëHÚ/ŽB‘U;Çt|?ävB ¿P;\FC¼`Ë›é_ýŠp‘öbs»}ØÒ°²9iýóŒVÉ0½R?¥ ¼pî).ÂÓ:¼¥#»ífB‡4¬€¼÷Û¢$CLµ« öcµâóÑš@¨ŸY±—3&<°½+–¦(hìp Xˆf«¢äá¡l>×Hþ( r ½8¬¨ýâö—+¹(H‚ë$›Èûgse2i½ÂGÇ^YŠîÕ“RñžB¨Mï×Q%̽!p¿xÃ룢)„‹³ìÎL˜ŠiJYŒ¸¤Æ”…ð_¶åû‚£óDf¶“R|û…ô"Ø Â#û¿Èš¸:?»Þx…èÕ¥ÞäõåöÄ#à¬N…Ým‡°ýG >‡ ¨µÁžGÕ† ¼¾Z5“{ªéýÎÐd8d H¤§} ?àרa€¼”︭ٿ#²ÈÎhD ਌Gká®·©q÷‰p¼x&ãÝ1ªÝŽ’(|’\ Ùy§M›íYºö«Ø¿îbÓØ–V¶ú¥¼, µqz*4×émirësм®´°§þÔc:‚ÐzŠÿ4ÚÙ=c‘*a˜¼ÇÅÉgM¼Ä3&l}1“,Ïk“@ªû¼¨P]ڠѽQ™´à`q òG-*ˆÂ¿×v¼¾]z,›Mäœ í ýé<€S5ƒY¡üh¨¼—hþ1ä° ­HìŒQëËU@Â#4¼w ÜÅ™Ú¥\ÝÅõiösu~®u“Ý5\¿ï+gx€8@ý¾ºrJv6`R0ÚêhÍ‹.æ’{¸½Jî0½[ÜÊìš¾Nåjé.5ô#Œ½+Ä]·Å-ò®fÕ'@y¼<½ãÐõîZj 9,°O](þsâÞ‚B¤–x¼ðËŽJ´od1ú^/ü-ˆ\ü ݺ¯˜€´¼ÄÄc2’Öã%Ó"ͨdÅe¨·ÎšAx!ü¼ž'r‰bÂc/9IŽ])Ï ÆnnuÒ|vŽ”R°€¼°Z >0JüØ(“ÿì×7d!+“Á¸rªïœÚ½I”ËÖ¡Í×¶÷Üϼ&µK2®$;@½6ëâN‚n(égq·ÉjëÀ•—ðïçÍvèN~é.Á"¤Ž‡×Ukê¼Èb­K&d®{ñ:¿8†È ˆxp‚¼›¿ŠB¡ÊÈm´o®_65–Ÿ?Rý"û-@—}ç„Ý)…•î¹.Ë0O´¿ˆ*n‘  ÏZd¤€½ÜJ"ÝnÀÅÍ æ¸¼èëƒ3dwîœm6¹„Ì^(½R?­R¹Ü9ÍøHúC¢-pÚ£]OggS€›/[°ózBŠ;û2  ½9}¡ tH¾ ÷^¨ûç¦x@›×¼À½9~Êœ{uvewa_À}Ú[QÄ€½9~’ñ+Áxd¦ppB_w…Eýýù°6Hå½9‰Híçi^¥ ·µº†Ó,ƒiÍO\p½9làhhïMTÓ‰VN06Å@‡L*逿û³ßê)»Îõ„}2wm9Írì_¿vº²>`½=#ů÷Š«4##:Xƒr¨FÜãnð³½IÉöQ Z½ìGÏs~;y•ù_G`P½8›>9{{~ v„xQ,ªŽ­P½xœi¸aCõjq sÖ)¿AC¼ç ”Ÿ; (âD°²€b$ÆÑ6:¢ £t¼ÈÅmå+"Õ§¿ø]£NÔtfbæFÞgHËw¿ôkŸ*üÝœQÛƒ²ý_âMs7y-§zš{²à½Qþ*QŸÚå#Rcc¥=8óιPa3 ½†ƒ(¶ól *_ÈÎàj¼¥ë¡Ð¼šóÚB¥¨5˜9”¹Î`çD¸„œI×À¿ïù··˜Uâxð–š @†…)[§'ŠDOηà€¿ñ*‰ê×7Ðsl!°†Vsçª/ìU,¿ð*ý½$UÐú[\í“ú|ÑLÙ ”â^¿îÌ^TÈÇíY½áê2·‰ø£QÖÖ^«œçvj€½IZ¿yD(Æ„bŠÔ³5»Zb騧Âçç¼îa/Ójuv‡p‚åLØ "/L¦ˆæK^0Do¼¿wŽIÅz¼&YõZP® §ÔªœíWO‚™€¼žA8߃ƒPj ˆø½ý:é3t­¼tÀÍYç·áµNsÜj?3äë'/$„Ú…_WÈ¿ëO:z/y×- î pò Û%”µm ý¶: ¼]?)ÿWÀ†L?q‹ršƒã›ž*ŠV 7ê‰@½.*©ã¦:.2nÊZ¨D¶ÍNùß<¿øƒý¡ù´Ý»¦Hº"³Ù|þ†W¼Ë5Glº2ƒqW©Ú mT`¨MYÒ®°IRƼı8´]‹ÒBI×@»/!ï*~;ؼwé]³ÚúXÞRÍÛ‘,RSØÕ˜R˜¼u©¶Ì“<¾] ÓÜ»Ãíë½Ãˆ¼†üƒòV÷3ô½BO`Ó)Ï#Ú{„œ³c@½R§'Ó“/\é£u_ânYxA¡^êéø¼òì!õC5€RÍ'ÀLÿ}Ÿ*1l¼¾gÉhãñ©_I0àYˆð×'95 ¿ðã-¾b $ªµecr§€ÈeØc4þ‰š¿…µ›°¨?Ë:,é¸ÉgQ¦\åd¤š€—Š­¯>‰'f7»7ï¨Rí·Ì;…ºP(£póÚ|ŸöêLK"꺂l¡…ñDô…õÝÁ,áÐ~n.ª3¯€¼É«î/j¿"@t°mm9‰\ìû@P×L€¼šÿˆ99€a—w'ˆ¤H«3Ùç“E¥š•bé¿ðÞTF|¯¹tû®h‡kO©qjüãfHϰ¿ó‡.Z<#Z3éT,†Õ;7™:ûÙV¿ð.Ép1±‹£ÐDû§å>ºör¿›Þã[ƒ©@€¿ï&Ø:Î„ŠžžjÊÀOi{ŽMÐj!M¬d½k¦Ù|ú/¡žÆæbØî}J·ô¿öS2§Ä|4îó@ËΞЩÇó ¾^POggSW0[°ózC>Í2 "¼Äºö©ÖhÕã_}åß$_©*”Ž@¿î"ü Û´eˆ]=m<àb&ú˜QïûùÓEÀ¼zöåJ•MQÕVN4˜—¨òoÙt ¿ð$ £[!ØÊônFYïÔ¾ñáë»Þ ¿ïSÜÍ-Ñþ=Ó¤ËuÓ‡%*^4µñâی怽[o“[ðÔF”`ºä‚Ú'¤dš8û Áœé½jUnÏFU„qC¯?:y%"ô¹1ÎPUgÌ€½!rL>—VmÚ¼Œê¥˜!ÓËç3xø gð½B¾¯JÓøº@ÈE&»@ñy¯Ï x½C{\BÛü0žBë±$9ó _uÜÕøÛ¿Æ½C”1§qBï7Ý{A‡†f>h÷ ƒÏ;QÙ ¿ûÏrвÔäQ(û<Ð#rt ÄsžP½F,™³&íï âÐkvÃÌzµå’. ˜L'_GÎFÈ;ô÷æGýkÍodP˜AígB™ 3ªS9aîªÚS†·À˜7YMDµÝf£øðúz¤[inërœ'˜€ž´¸€½_#€,vY_U0…L—îS$ °a0ëà7¨L˜ïµ07D…Æc^Í ß@âˆÂÖ^˜÷¡Ï3€…ï>ù}åßôÊÈaTIè˜@}Î¥€“¹E¨ ‰–ºykÛà"…èjãs¤GòŽ¢ÏÍSÓSH"Q-Ö/¼íxáâ10H@‘¬®2—³»lG\òÝér ¼ž2þBã0ð?ÃUâ„ç’ÕÂÿØŒ_æÃ$ \¼wñyˆAì u’n?ÚAÍ¢^`BTJ­Š2”­¼Âvø2ÝÀÒ©ÙfÔÁÆ&]ðöSpe©Þ2Štw ½R›Å«öåó‘›½@…ƒ0‡á¹³•.âÄJX½®ky ÜcNwÃF³ÆúZZîž7|½9€Èßì²6É››ÄUrÊ7NÅm Z^à½9‹Âa¿¹ ƒÝ¡£ÞÂo¡…(Ÿ“k›Ãc1»€½9›Ê‹¨ZÕåhOÔÛŠüÊ3`Î}'B+ ½9›ØÙt¨•öVÜÖl€9ƒ`xÛŒW*€…ìæÉÖ¨°Š¿P¹[>ÖPóþÅ\˜[kÿmL"ÇbLRGÁ Ëé*o˜vßÙHÒÔéiùPúB×8a¤|…Ð`qèò“‹_×j,GÆãÐ{14Ì…À©‰zñLÃÿòT(ü‚….nùír@—o9óh~™é·È>ºÆ¡ ÒÕF|¸ @—u>=èð>Ÿã}–@? sÃ(Ö¿ÝÍÀ—¿ã áà?†Â`–“Èu„Ðp…´±TŒÈCs»ÚÕG0R¶ÒÔû²—:Hì1É|£zÌúøjiÊÃp¸6 `÷–­¾2Ïjï§Ékû—ÇA”)1—ÚŸáå§£LXk¥(¿o`—¸½/æÍFï×ZÝÝ ‘Þ•Ðý4 ´— ”_a‹C2PöñÁ¾K¿nêI²Öm€…ÆL0f銥P8ã¹ðÔÙw-®¯ˆHÀ…î`mÎØø«Ô²œjK߈˜fðÞ¹jôZ'äQò÷5©ÎA¶°…߇·~;Â)¶z“)COqãN3ÎîOggS€1[°ózD ¨é82!!"! …Ý–QÊ”W¶÷J}¨biΘÂh—ót÷¬’ˆ|®Q‹`ÚWYŸ~„ÍÀ—ê® ÒWs IÞVó:pù{‰öo€…ÆT>â MÔ4`äÎÖQð5àMÄ7‘Q´€˜I¨¬˜¾¾‘õ<¡M{>×Fÿ´…ëcÔpT`ùé·&0þÎ,€—Òü‡9³·‡–„žr7÷:y‡Ç°ñêeÂý.…ƇÙáò¨,BohEiš¸]¬€5 ׳G€˜R)d3ÊU0áø7×/Ì PSnÔw¬|þ—Á–:W£{)ÝhÂr3ôûyž€¼"¬Õ[Fçý*@åæÅ¬²˜Ñ:6XØaR5¼(0Aã"é;àNù-é€%È6ÕÊá¥(ߺ:0 ¼Z¸i(7@G¯Ë8Wê”a«ÿ(žNû¬«”¿êÑ’øÐG1-=a—Ô£ÕÍ®î¥öñÅ<À¿éŠ{xj»CüÌwÇ‹½ÞÀ=õ>Ç®´ï_kû ½IYo’ç3[ñ;[ÈN ³`­þ]G/çp¼½`ìxû³ÒGáG°z´ß5XtÄ;!ÈÖõ€¼wXè`m­O§âŽ5×$Šp}(òó!@¿íÃÓóñ {SwÞ_¾‹"ÄýœÄ8ÚÔÉпë…U`,‹ÙS‘Pé]ø8×Á0ð‰@›u!5ò€¼HQu)ƒpÀ ¹¿‹›™ÆÅ§íŒ†9„-gZ¸H¼3hX•¶»LçÜWQðÿ¸p-<œÍñb‹Ãºš(lWX¼ç޵QXTó‘ž—_íhÅF—…Ç¥ ¼¡Î5«õþ|ÏŸláìE,ŽYnd&¼¡G²«L²ºïv×âAmªôC]¤0žðô0´×¼wíüt¦;öfîªÄ“ñ;J_ÿmùHs•ýÊ ¼wA4`¢|7ñˆDt$¶{Ϧ¬ºe¤‰À¼… ìr?ñjâÈ´$e²iëË}ì±Y@¥ÿrÀ¿ï*{gÔ=M^KÎ7Sör1Ûô¶FJ÷Ù^„»ð½Hê”'ñ9Èc´Ÿ=z%…‡ÙÑŽûRõ¼•(ÍE°ó'½ÉÅBо©šÏ^/!b@¼såÌ\Q™dN’ÕñCˆVˆ&A°>åyXÀ¼BšQhDC~B:öÆ*@‚EŒ€µØcߊÓÈOggSÎ1[°ózEÚ2! ""¿èµ[ë´&”Šb8d0²Þ–-*kåëÑ•ŽØÀ¿ëRÖ˜*”$˜ü~6²àcê­œg[ÿD)» ¤¿ëôþü¼<[oΡº¾R1i8Yw¦­ío@½R˜ŸP¾ý'_rGeŠõú÷$2ÌŸOÞRÀ¿õ‰d;OŸ7m&}/NŽU>ÙeYùÜ€¼™¾Ãб#ŒÓm"ô>CÓÀi ÆT±È#B•6¼uCxíi<ìX—Ò>Ï4?ü5ò ïé8á„­7 †ˆ¿ñcü¨“Œtùi(–@ò>ês¡Ð?ãMñ€¿ñn8ÊêÊý®Õ‹œÊ#9{³•¼™mÓ7!\¿ñ=2[nÖKË’'±øTõ¬ë·Õ*D˜~»Ô@`øÓ«o¨Í]>Êtß´x…Å»{vtt)øÜúÁÓfH3–“S€¼¡=±W;l¢ÎbžÚ—o¯pèöÙ?÷þêÒ¸O¶¼›¿o"4|¬ç>Q2¸“•ݽ¸¢–¿ï#¨艽û)ÁAÓý¼ó¼=q)Z&ÙLï@¿ñw äèù1D0çÊ=&IËêÎKž,´Çà¼Àü'áÍÎüí ³Ðภ—b:è6¾öÃÊGš¤'r½mƒ¬JL€0Ú¢TóÆD¹Ÿè mÏ-%¡(½7Ã!ºO}}ô˜s:î(í(ªû^x¼ò)³È.zßc¸5+ˆ)É'ØêŸî½ Þ{ 6:w Ò©w…Ùs¢KúeWq’1¬½+ Á’lÀ°Ç“Q»[~ Ê¥+òd¨«½9oèÙUì°ÚÌÄLëêü&­vï1qD T½9ÑLƒ‹o\qóÛg]¼ŸR· Ç4f(½:®ŒÿAY¦Ÿ&ü®z¾|ÍŠÔ€½A²UR•æTéèÕ‚ÝQ kØÉ@H½ìéP®ü?ÞjV¢ÝjÉ{%Å …ÝŒ1Ðn>hY¯“mÐ^¼¸—í.7.C•M"&æZz÷[©L|4—Ã…AFϞ͗íWBzû“#H’S…Äÿc‘P,-«ÕÞýé²·¦ã¶`˜8ØÖÏ”ÙÕ;Ü Š¨çaN¤È—Àŗä†ˆbc§´¹e8Ñ!@…Âh N­+/–Éηiã “@Äž†@¼hR׬å‹ßò“qŽèÇw†¬ìóúl‡¶õ„‹W¼$®._ÿÁ¹<¢Wuéó#÷šðK œ‘ ›¿_€¼1˜¯ ³­ì”¢ öü× Ã‰³µì¹9o4èпíyìµWxάæa;g&±ôgÊ 5k~Þ-'½dBä†/—IÙ¨¢yôg‹VxCÿõ¹¢kü|\¼ò©;{w=ì=}¸9Ð%ºVObXe'SØ…{¼òjOnF€hwV—F«dÅ  þÇ‘ùZ`½þ·&é±ãD¹êéFÍÚ«üµ|IëhÒ  ½!ܰz·ö뻄3¦9=«ˆ=|§Aõ5ç{%½6±f’HAŸ$lx<$ÀÈ{4. q"ìÒ&Í…äÎ3•µ˜þC®×)TK&LST»¼À…ñDa;%ÝÆQ,Î"0Ž„î~’‰ —à±…øÛŠÕÏ#r±¯¦ 8·\€¼pòšš‚…úŸ`v¼È*þ̳=Ô$¼Kãñƒ`ÓÒñ½_žŒ´;_žï¦Ü+~¼L‹ºÅÒNœHMy¿ æ¾ýŠš¶ÍË@OggS€‰2[°ózF—Pq2 !$!—OÓd;·l'3寽åUŠÉÑ·°—™Aw¶´&ðxà è‡ õaö—¡ X`(0~!âKÿ™Ýäî•ü½¦€—Àµ¤ð»ZùÌ˹Ål³åÿ?Ža&…« ò–…[š ÇÊqнõXC”—š ) Û û—"WþðÇ ç¿s”`—’{Ë«jü€ü à"}©@˜¯œà…¦êˆ›$>QX[µ‚f‰@bš”…¨‹wÒ -2Œì졆4™$4N6B»#ß“…ì>Ò£‡¥Xà±ô5ªp;â——1 ¼ç4"*ŠAÀØ0Z/¼ ‡áPTw¹n®ŽbؼÄ,"^ÉHñ!âH:@Éþ#ê¨>G¼”©çdEˆÛ5«uî$•eCÿ 4¼k¸„0ÌôˆŒIÉ>Ú·ƒãÍ#ÏDN0¼ Ë÷dBÓ\m});6f;n‘1ðæ 8»ÿŸ-{z×1:zHçYÒÀ:Ÿ×@ÁKF`¡T¼ÛÏ1A0©A´®KNú¯èY\â!yeèž8¼¾TvJ4ìèýИW-®Ø=†^§› i°¼sè­•%/2³æù“νÑI~ªVóiõ– ¼K±åæq×G¨xŒ§}“ ™ÈrÊ’TKr¼GJ7·+#ŠWF0 I׳-^ŠjÙÍõRù÷@¼MryµO¯@?`×8ï|J•÷ËuØgÇܺœVÄ¿îÀš™éª7UÙ;k¦m7.Ê94D‡E²‰é&8½dzÂ@º|¸å²*ß×Ü~h Bšé-ãPн6‰ßÐÂêã¤ìaŸ˜f“_Á©+pí^pé½"}×FìŠ8!öúçH46éIQÔ(aòÒ.k½œ»ðIŠÍdNÆx¤ÎdóH’@㤧6½9‰¾üSb¹­ 4iç»9µ0J}*E`M½9‰AÉGÎÍ‘s`Þ 5¶Í–jø…èæî 7î T->܇Ìbïõ¤˜Co>ú;Ìr³äo±¨ D'›Œ,­…ìÃ-9›î8Y‚¯0½°)æYɺŒµ…ßûÉ‘]·ÉÞ6cÐ|°bL2Šx€…ÍZû=3K8ð:¿ä¯î€—™9•¶˜h‘ŒŸå£í®W”¬°—fŠN£¢KóÎrÕÓ22' ·”8ar¿ê—Í€2 Ñâ·£d’ñ9ô¬(šÚ¶EŒD§8%™$½QÅlrMF%ø09L¨RNYMØF,ÜŸ«Õp_O÷2…¤µâ˜Ð˜Ž|¢··XÎΑª6ЗBæ´ýÕqich¶f0‘<W=òx¼WZí!É!¶úˆïRÝLÅ}Å&-Qˆ_U@¼N†Ä*÷<~ƒ.4³•Ç=žo½NQâu7¦xÁ<ÛM€¼uC~Á ¶ Ž€ÀâN„,dëÍû´A9¸Ñûô>%€ù€¿ñG/šëÏÀ€f æN˜Ü²³í[ˆ2ö#´:X½R¤D[KÚJ;qõ0ΕÒ.5˵)ý˜¾‹Yм ª?(°Ÿ±Ã‹V¥#pä…S®²œdGŽÂ ¼”ïàæÒTrÞžAR“ SôPˆËÙŸÊ—Ú%¼vŠÛ@’)ß´öã²<ÀLM¯D?ƒJö¼uAêR½ydw9È‹v œ¦â°xx5>;¿ì=?òøеއ¨ÔsäYÈ€¾i«JµÒOggSE3[°ózGsE2#  "¿îªMJIi‘”VÏÙLFq Ç”pÊÓ~ù…Xwç½ÚlÜ*îà„!%[ò)ÓŽ`dÌã Ï€½5kõGÀ‡ .­Ë‚Rh^ÁIeêg¼í˜/.ôêi.x2M'Æ”#±çwR*#÷ïÚ¼¡íµ†ƒ<ƒ›m«ßAôÆ©ö1 ‚î¾ËÒ€¼uŸÅt€9X…N÷M¨2jyõú z¼véìÖ¡ã'?<‘ƒŸLœ¼B¾Ÿ?œ³f¼¦-ÛŒÐáÊxîç…ëϼ'Â#?Ê͉`B¶éXà½[o^~RçϬQð+³²²’‚¯¨;Bi|c¼é@ õmTj“a³;&kHBÊxlÕ-N eƒ¼É,lì¿HV3]ç^± R·qï‡2*~’É•è#BC”¼¾nåBNkisÌ2ð Ø¢O€]$œ0<»¼¨ «äÍôˆäcÛ¦½¤ÖǺUƒ’Æ)Ù5Gà¼ÉY€µ1ˆ¨êEy¬œ®?5ïñØP`¦)f¿ôºüqàŒyGþ™—.«‘Jö-,±ó¿Ò€…ôJñó1’ýG3©ÿX4Í|,<À—òmm¥¸Æ*•Á­Ó¶̈)Ò‡ôî:¼Ä?>ôÓŒ­$=fõ,C„;ŽVv $Î {À>Š€¼ [Ò¯‹`›¥ŽåxžŠ }vÙ]kpô ›À¼¡Œø‹;—¿Ír/}:¸ >h[~‚ÝnUʰ¼ TG€0¤­¬üHÌóé÷LÄ¡%?wíÛ¼¥ÐKò=·žnN2Äcæ[ô›¿“7‡Ø…ï6}l zKo@Ñ÷ÉJá)…áP˜K«®ú ¼”‘QeZX<,µ—v˜9½béTsâEÍ:i¨ñ0ë1\£j…èK)‘hp© ³2R÷ú#±Q—¿Dú%¢’P¹GWhV}Ðfg£š1´£0—¼²ä¾Àb-€L‘1÷{l˜…¨•}ͺٯb)È[@pZý(…ýå(ÑЭ #…Hõìü£Eˉ±%e¹í¤˜@sº¥ý¡þvöçÞ¢Íìü\+Åf¸€˜9¦ ì¢Ëš|Þå€ù¨Ö\ê6Öµöá*€˜:íQ IÂOÏ:ù{¢{…é*¾ßÿ¿ܦãÑŠ¦+Ì´¨_`…€…é>–ؽd8j×Ï ‘~ˆø ˜<Ç/¹VMâ V… à†è{×ô´0˜:ÆþPÔ²û²¹»¢zƒ³;hQöe˜€˜BÙ#ÿQ_ÌÁcƒ9õN½€˜B™³ÂŠ-$Å3ÊÚ‡HŒSi‚M˜8˜#O‰ÿ7ˆ”híiÚìWùL 9Ô˜j`ëvgCÛ`¤6%ÞVŽ”NùÕ¬ —䫇&ðpD;­Û=ûTvâ{uò÷ï…Äêý*…÷ƒžJx‘ÜúŽÖ·³£"=8áC…ï‰>ü­ZØb”W~!â¬ü_™= ˜R°aú¦ë†Ò 2SÈûØ[ì¿@˜Bç„ìûèNátë\±~/¡˜–p4˜@yXvЮ|t(9WƒS%1E$ü˜ô…ßýÑf}²LÍüg® (üÆqžZä—ñ:ï,<±d«KúÙ]š°*ÉŸž°¼|‡ÑÛ_÷EÁa(4»÷H^ð<èݽw¦…Ð÷euï|èOggS€4[°ózH?ºå2 ! ½v›¯ËZÍFz½¯êí»ÜL~Sòb<¯/šË½46‹Ýû Û\ øo7ì–zÇýA¢çm¼òw#|õÖÙKYùþ3n—P¿Vw:í5`zÀ¼÷Û¥h UB+%߸–þ‚tRÇúϨ7YA,Ù²h€½ÇÔ…áÿ›ÌסžÍÒÜ,5›¼038ñ¬°½80n²Â‹™ˆÂ&€(Jv$l»ÇJƵ`ª˜:·ÞÜ·ÄNxõÇÈÄ#6Id9›¦…÷F+¢ŠžVùåt·9$Òå—ä-ÓÒNZ‰zÐ}çdÂ[þ$ÇG_ļu€]î³³8j?—â¸[Šªlì4—/Q5LDp¼šÿ{Ž ¶!¼¥æ÷¸? @Õ·Šq J4™@¼uDiaµÎ Ê{¶îî;í¼õ¿­€Š€à¼uBƒªë9Ìczy*&=xLáƒéʲÉÈW‘Q¼vi0sÖg§ùâCÒ݇­e‰yuë `=ª˜¼u^4íLØ «FhU÷ü.4}©uµí펼tô¿˜2oÞ®`#«h]‘‡~•gÎŒøÑ9 €?ž„—+Ÿ'Ì6xsÚHdìu=ÍsºP«ƒÏì7†˜ûuWߪê&ÂMrÜ…¤¾³¸˜h„:ò{\[©ï°…š ¿,‰Œ(‘™ù y­iDïE›å Lò…é>„ r&åÌ†î ”‰Ÿ§E—@…èÐ’¢ˆ \¤¼«öÅ?±úp…àIíç̬´P†|–×¶6D ËO¸†’ p½¬Ì,ŽÃð;@šî‘l$î„BQ:û ¿ó‚s„œ¼ôwû¢ƒÜ’QY=TG¯ã¶~‚$;…µÕåW&*j£BT9ÍÏî9˜xQB~c¥%Ñ—:ý=¬­FW—t¡ãš|S€è˜9tj-ÝÛúa4³+’v†Æ0Á@˜6üh¥Î‡îW­n:ø•Â|Û:€?°K¶d—êr>K¹sñÎ;ýß!J£G1E™]^¯ˆ—¶ÞèÞY&Œ-ư9••ÿžc)Ÿ,ŽÀ¼Pè‰'qu¨°è(Â4â¶*¢œû@Û'5a›…¨Al'išP!šú¿×v·\¶ÅþówÙRÀ¼Ræ®dÅK¾PøãÔÛPÿÜÿ8ukì(Žê í":˜x¬)®|Xš¯ÒÂ7Õ¿ ½jÆæìÕ¯Ã0û¶¿>VËŽìs ìû6X¸È½ŸcÉv!ÝËy#îY‰•"ª;¡¥ßð<ú8G½s¸Úv‘’øä½2ßµª$òÉ›…Ôš¶¨½%-Zü <0ɰ«—Ð,×â‰~²…]×-€½9zö}è” rä@+ §ï¢9vRqd¥"À—@½+þ„Té qžæ^['ÊïØüÕb/=€$Ƚ7´;+5îðËé¹'Ôöy/ñ¡Šoµ§N½@gsKÞã­%Í,!yÔ˜özP¿ø°FÜÖ3eµ†(¥ï²jvTYó“ü©ùÖ¿öi¦÷e„k´7¸/I¯¯¿3²z£èç¿ó„09Â@ê\ü#ÿÕBÂüOXCˆWË¥@¿ñÏ&ÀDœª1‚ðÅ…›òšqL‘áÕ¤sE…ºtx½úД–inÀ6¤Þm7ó õÀ…ú"­æœc‚é¦Ç/"ÃÛÝs|D@OggS¼4[°ózIsšÓ2!  ˜ï4Q¬€Q7´aF$MÓð¼œþ/P+?ð}û)Iº-á"éN¦·áŠU¼%©^uòáuwÀÒçØ†1o®ý'„¿èxÓ¢Ë}43‘ãk¯cJ Au•Ê›a×ÙÔu@¿ë…Uß{¹ÏÑGl1Gó·s·þf©?ØôŒ¿ë“¢sg¬ŸµONäéÑ™g-C6Â‘Š£X½KÔI¯¹~#”1lÂ"3º×n \6=RU(½º†3.ÁÀâ¡™]H0£ƒ»'¨û@‡›]Ò˜¼“¦ÞC½´êÌ7ãªQ) .T%En’Y1ìåļMi4@³>íÓhÕÉ}.Å0$ÛáUÉÆfé󼦨ÈiÁ‰ù(ƒïV‡œg{ùûþ„D#«Ê¿åP|˼ÃãWïùÇú/{8´‘¯7ó¹Ö D­Æ8 ¿æ«Ô Ý{ÍŸ˜ NÏ<ÁG &®èOxȘ$n9ßü½’iÎÅ·%T¬,XP´ôÅ“úëîÏ;oX€¼ñ‚{é› ÄãÑØø0O0v‚O*  Y®^]€¼É- Ì‰áËÒÿ/egG™ªØ7ô#û@*æà¼¾$ÔæfÁÄzŸòp£1•¸âu‹&¯%íöŠ ¿íî>0äè¯ _»ùt;Îíà˜–.Î'© lô¿ëm ¬²©²\­}½Åw׫6Mλy‘°¿ë3ƒË”*Ø KlË‹ÂiªÌmbÀ3ñÈ„¶9ÏÓiŒOggS€w5[°ózJ†Ö _2¿ùgñnµíÍyEeSvq½O'ÙÞ¨sMÞémǶ€˜Å:ð™áf®Â)' ]üÖ±>0€…Û™Û»I²äUpqze7ø—Äþò@ ¡%·Wb<ÂH °£u†—Äþñrój<ï–ÛìFôœ™ &´…ëÃ#7)Ɇ/¼zÄ0ÂVKz@…ÐN'.šŠ=/¯kޏºL…¿Ktcé_“ýС ¬O8…µ‰5¢žŽ{6MÕP?¤µfFÖØ ^‘£~ƒ+† tíYÅ|é‚5ê”+2¦ªh…š ˆPõ8ÁZó"vödùÌü{ @…ù+¡N½¨÷œ×1ÓéoøEjÄ)› …ÌúÐLáÃpÂSQ_¤üÎkã²$ÚKP…·úûˆØ²Ú_^M±¶ktïÕïàek€—ñå¯E~ÁGàÃâëÜ+ð0 1wˆe“ˆ…ч ‡Ðó;Ø5i“¯Øf¸IÃã—𵵇ËNæ—?AVBšˆ@!î…ÒϤñ“Zi{Ĺô£¬ @…ð-Ó<üY0áÖƒÇ#âiÝýzT”¢ÈM|_N48çÔ§ q;N˜´f; ¹)\‚…˜¤ºõ>¬ïÕ!cÄ‚ãº2z”—9Ù%ãOu©¡ ÂË‚ô ¿ósjéîë"Üé{Œ†C–J­gø…†7ÒŽÒ>0UÃcˆÂ±Tc·t…Œô¸·vC÷¿YytX™WØy9²kADˆ…§Qb+6u^Ì=»8Wllšq+oµðÅ>—n%X‡¼„yVÆý¤´} öÆþ§¼"W]ë‹Ê~Þµ ü1hÛ…€]2Çég;t‰‰e’¼" ò=‰.I$Wsè‘d}ÁÒÆ%?xÖ.v3*—#æßYJZa$™áÞc3)Ô[ ‡wU³—ÞFJÍAä5ƒ•uj× 1ƒ àhnºK>À…áï9óæ˜Zí¥Í‰Eèñ„½jÌ}¶RÂ0ǽֹÐþ¥íU*ìëe ¼kê¼رù ùö²ð±¸Ôt9Bÿ¸¼GMöÖ“2hšž#‡ ø¦'……hÚ ¼"/:y©il’Líd«‹ ¹0飵°ûy€¼KþdK!†öüñA¸W¹ã± uª.,8§”¿õF¿ê×¾ÚÆ¡ûÍÄoˆ,ŒÛg<ÑýgÇ;@…Ögoe‰EÒoÍ$³(Æõ”F&M2˜6ƒ¥vzýˆ“œªÈÒzÚ¢¯¨HÙ8—½ÔªâÏd‰Ý?øtP9 0ÿ¬³…¥ìè—ÚAÃÖs‰‹Ÿ“c%ƒª¢å€—EdϯÙ' þ‰XuÄÁïá÷0•à—p¶6ïÊ9…Óß'¨çìãÐ]@¶°—pÔ¥ _‚nôMmr“¾¶OE¤_jl…ùjòm& ±ü÷˜±JøCLuY¸…áG‰EA™ ¡¯ÐO“®#å•8˜@'þ“¹:ë!&¿#"‡ÿ4‘áòP—ðQñý–Ùt3ÃàÔ ¹u)zs`—ï—HùØF‹f³_¦LYðeÕéS…Ï{”°íÕ*=ëAïÏÍÉqïó/üì…ðÒÊ‹‘Ma0ïB¼§ É)…·¼Œ½mÒ¶×ù­°ŒE½eô6¬f¦¾×)ÀT˜Xx+ïÐðÕÁ”V¢˜uÙÿ?$ë“–+…ÛxÏ¡6']û ¶ÅdëN‘E"BbJ…ÂPÆc0SGõ¿ö žtDØb@—A4kCÇör˜>©ÉDÜ(3QM–긅‹¥´zmþ½JoÜî”&E[D¦; KÍÀ—B[w¼ùG,6ol"·-ÎUMºZƒõp¼OH…ñ1 ¯Cã„!K]}ó+pvÖ,ijؽ/ݰ´ëµezC!‚¶ TƒÝ:ѹu¡y~»áþŒ ¼¾û hÅû’`.9Kªgò*O7Z©gz+–ìܼzû½[/Z8.1DôŸÉt6™‚Á&L ¼‘¿cRÖ_«H‰h4²œÙ$¢ôÿߺòÄ× Õ?—ä¤Gãù”i"+1áhqqŒ+Ê—D  ú£ç‚àEËE£DŸ}«&íÀ…¦ûÙWø^YëÑâ…“qjiÐm Àš/…Þ­¾Èï+là×…Å^…DzŸWؘ'h¯EIäOi4Ïà`dˆ ¹ðÚ€—ë)QOÅ‹5Îm½œß̹´˜ ÛcOéЗÈ"vi|Æ ™å£8E¶±2ˆ¡Ó:KK0¼”®+¤ßŒÅ€µŠBÉ>ˆ”! Ù=é—ƧðܼpòÉM ‹£»òcRG 5δÖk~•ÔLª%/0\¼K¯ÜIdÜ,š§af‚u}º 3¿¼‡Ìp …í‚É ¦Ž¬Ÿ2|¿ª´C&{Õßv÷D…è#Ñ5´ ÁR„uÛÑïWj‘¥…µr&A É`ÓWp“ž)„ÞˆÅU "—™ h®‘Þf´Ÿð]Ò€—jJ]»”áWŸô¯äØFøq_ç±…”€5òÖ¶±b)0÷&Þ¬{o¨—H¬Vw-NøWØ¡ ÞLŠ6:¡$ÞÙ8 À…åæf¨½b†/^®Þ<©èñϰ_ò—€…Û/ù¹X}bå“'õÜ2Hð8ûÀ—Á”äÅ™oE“7v$UöXñQÙw€;:…³ÿPJURqÓk8¦Eþî§Åî`—f¾Odžü5Y†åLDz&×Iü:·%kJ„À…”Y·^&yVDß=4F+ô9ú†Y €—HfêB¶6ÕøÂ­õ^p wÐUè“—«L“SCºXæC_!„†ÄWŽò䬅ÐNçxÉ~ÿŸlRÍ òýMì—‹¹5F•z“¸faYÁºìp+Á•¾—mÝâõo¨R‹M¡;~Óì€OggS€î6[°ózL#ÅŸe2"" u½Y¨??†gÇE7€ã¸P…«kî'úlðË^ŠÁAY¢¯¤8…°þ§ÆfªÇ=ß3¶rÛÀ…í—&Œ•;«Ød«R¿rbž…˜DfsœJS˜_ Éâî<}0¡ŽÔ—ÈûÔ²èó->w’œ3)ÉX¬SÎ1|‡ƒÅ½€—ï€'FK†|‡7µâÑ~2ÎOÎðÅP—ñã7;µÜIØì±Š‹ìD@'þ@…Бb²g³Êm§ H=Ûƒj …Ò("´Ý-ù¼ÍcްXú†–TÎ8ë`…Ön‹vÀÔþ­¤Fx§èDaù =Lsq{@…é=È›“Å» ªT4Ç–—¨þ)$€½¹‘?Ÿò± ÙÓ/Øu;¹¶¿LâgN†­€¼ò&neøáXF”õe‡Ÿq ‘þ9)`Ü$¯#Õ&ï®LÀ¼ðía  µìêSܧÐ4øNíø©´"™uÁ‡Ð¼¾ìWȲÛ Þ1Ï"ܸZ޵¿ÿµ·–š’¿ñ%VI͉NdzǪõÁ–µMAåá?—Ÿ ‰…åaM€í™ÕÂnR ä{H_Í …Û~Æ<ƹ'½öޏNŽõ€Rýøº¦À—½œCPžG +n3ø¥ŠÃ'#45€—o:.wBM‡åÔʰÃß³™ÃÖ”DÀ¼B ðÂü Í›k–ãæMME芫7¾6ƒ¢¼Dz‰©œõî<àÂùPR°ª¶¹XðúŸpC‰j`¿èZL3»ŠŸÀF»ÒCruŸ:=õ»Ðþ›E½>!±1Ë"?ŽÁø¨¨Á»Þ‹hpõO%*v@½<,n{²©îº“›GD:yü{Œ€ag—ˆ €¼Î‚· 2µýöô!Tꮘƒ§S}ãvp²|ˆ†äè½ô.P‰Ae3‡÷VnxnBDØT)׫ßÝD½!r6´ — PS.×áu B|5¬¯6‘dÙ ÷̽7+žʱ+ ä ‹5yVé(,`‘1¿ù:nÿNñôÿ€²ü4À1°Zo¥ŠÈgI»˜P@6­Õ| áŠ@Q‡“ÿRô\Ñêä©å…î˱O†ÀCvs/M„–HOÚ'ýÂÓ€—ït£Ø{<Þ~;« ;_Z¤Úi¾MÕ!€—âºQ  ËK§I›½ÉÄ" ¦ºS‰gÓÒ8—™ %\08 ;…·ÖúbÝ1M†› —k/B,Ã+ÀˆˆãË_ÿîL£dµ@€…¥©Kƒ.Êè9$qñ“tXù©CË®D—k¡K‰ÒÍ0K©QlîUή“ :À…°}JVú4Q°Ó>yTäZà—NÂ&[89ùÕ3´{Î[‰lGÂ)ûßü…¦]¼çĦSÇܤ¼åžLÛ }UFU* 2…º&£(q°0Ë*Ê?µ\<æ,CÑ@¿O2·|…Ñ*Ýß ß^¥.xÛà_"ˆ’ĬXwÀ…Âé–lŽ©ûYÒx“ÙN‚ó OX˜…ÉJý<ÉQ¾sOã?žÕHûÔÆEstðÍÔ¤˜A£ÓíYŠuHøŽð]zßZn_—ŸÄZݼúß/8$Åc £ý9×°—Å<€ E¦CÉDbô¶tèt›cI:Ó*ÛÎõ€—ÆxŽ‹¥TÔYÂÉ*0œjŸ…ÛP…bP€OggSª7[°ózM†S›š2!""  —·³YBËgRž ;'%*Ä; Ð …——¬ßz{£PÐ\ûwiGÇηè—Ö5g)[{kÍži‘ D—!è“ä5{4õí°˜„Ú®å³땎¯ëŸøVA­t³«Ð¼ÃЯñ·`”½¾c¬m—±K㋹§B† ‡È¼q_Ûo¾RÌ ‚*aÿ{ ññQa)¨ÅÝ& wļUwr³RÑüñ&¾î¤kðÖƒLawm¬i¼tbœ«›dÛ_'ã>¸¡ä³ÇÛÇŸÌp¼Q¼=ƒEÙOñz^&訪乼mÇ^•}á)Èoox…꣄OCEôvS±˜~óXE¾Åo²gGÞ-˜9?"#k™-q<ÕýÅþ°÷½ô_€˜+E «X¿*2Òð…V#ï{M¢ð´Ô«˜:/Íö=.®°«ÕÉ5ºÕ-8+"¢½7-=ÆÖ2xNvB‚‚¹Ãiï‚¶.ò×EðþzÜÀ½ ð+B[Š"*‘¹uÏÖ+9†¢ux‹Š@ƒ¿ù9âv(óø šû°ñ“[›UfæzOJG Ì¿úK4¾,‚9öEÅ[«š–;Þ53 £ÀŠþR¹+Ò€¿ûÛ…@‚Û$ïêk—i5eŸ)Ò£ïåF˜¿û´3õGýmžå¢±s9ežYw|ëÊæ¬‰Ü¿û~5³óÁ ~7qö›P‰3;% ¿ T€à¿öUèõOh’¨2tíH£EF2”¤ ¢¼ÈĽ#_az8¹!ƒ;¾á›×Gá–jP+Ärü¿ôªÜ—Zý> ,cÏÛ–~A«…D55Í bB}À¿ú—?Kç#Ìz¼Hü BX˃âªeØfc„¸mì¨B½‡šjÍt*IRECîå¹È5F€›ñ¯ï‡@¼½GÚ)«ñ°òíýxܰ|%·¿Ù8ä@¼k oZI‰Ž’ý_Æ­¬lÿm1qÝP¼K¦½¢\í_ϵ> {]e€v. Ù1šö×ЀR¼#)¸›8üGPT+½/ E7ë1§* Eè´­d'î¼4r–.n8’¦?šJ|ÿÔžqGG 7Ó° ¿õ«g&qPHqD½¨°ffíïÖqCHÎË,˜½6Ù¥Aʺ8ZE£³9aÿm·>k€¼›!„ ´:ÙÍÐÃ8cÝPFZ‡ "#–«)H¼›>ˆƒà›L~¿S¯j®§;™$î¸9®ô˜˜`¼t’ëré;õí±µlÁ­¤,ÿ–ÀÕ ¯Þ磰¼AøV~N@l{Ò|Óµÿ¯,f+8k@¼+¼ÿDˆ¥¸¤§Ì NOαápòëôœÖ‡Ê%༈¾T†Ž  hoG‚×BW¦³ÀÜ× X¬€¼ÍzâBœ!—}i3ƒš׊m&Öç˜Ö¼–øŒÇéTxËÜ¥õÖZšã9ú'4]»2€¼šª Ô¢F¡jsŸÔ•qÛUrWé24‹Þþ…û€¼uC¥ºK~ÜñdÿˆÜâƒÐsMÇ]Ïzñl,¼jÇ}¥ûÌ´p0Möz_íÚ(óçà—OnÌ‹Ri%ÞRcMGMMÏŸP…ÉÀ¹?™m|$€¿žTÜ3N»$€˜?Op'¯qÙÓTú#<]K­k':H¼Ÿ"ѦKŒwpúØZ– X ôâ~Áa ¼kuUÇzOÞç׬E»È¡Ù?Nz vîbDÉ5ȼšXÆÐó/q›ºQ\8,ö‘5_MB¬iмBÀçSu±Ú% FLØõû̽ñ;ÇpzóLvG²OggS€e8[°ózNHz 2¼QQ üÙæ&%•k¶_šBë€mqfÒävæÎ€¼³²VÊî|%|_BzËg>͞ŻÛ3r™xÛÛà ½6q }a‡g|4Fx‘‚Hæü§]¾õ焃–Ѽɩ»ñ%IÜœy†K=ÚwF„ª6˜Xóz¼ ¨øõ–Lð˜|¶v¤]YM“Wô Œb€¼¡ˆTn4{¬E‰V¿ðAá||‡’Çp‚`¼q JxDV9šQÆ…RQe©¡¢‚s§@¿ëÊëµL•ymŽ'5©°l±Û`fzDÕS@¡n˜¿ïZç@3?Ì P}°µÖ¤Gk‘S4gOq€½8/3;,‡BÑNåˆíǬònrn·ì¼íË-ž ôE·€¦lE}Ö$qÖšÀ×ðÉ@¼È˜eá÷!¥|éþßYtÏe,òäÑÑ)€¿ðó>O´k‰›å–HCQéà}¨èç·`ø@Ô @¼Ë0rÜf¥ÙdI‚èlžh/ư¾ƒÆ®—ªx¿óšjß«•Ï7WÒ1t÷ç”±²Uð zÜEœ½‘ö sª¤'ò¼ã›ýþÀêýÇ"ïËä½7-LHiÁûûÄ‘iê2ç=¶¼ò2Ÿìûýq'~ªÒø¤z¡imøè?½½7)VþN7.-O šŸóÚ˱ 8ê‰cר€`½+•ƒae,w2KefÏ@ {•ü%ÜÍ1!±q€½8y¨øb‹‰KŒ½$ZÇ©Z)LŠà½äcåaí;xŠË˜ñ¶Ès9sÀ½%KL…Xψwo5¯‘¡«Âû@¢ÍX/¸@€¿ûÛ†¢RÜ 87ÒÜÊ›ýâ=’¿Âßá½6ë¶M“µ’êé@FÏ*ÊÀ!S…-ÐX¿÷A]¬ ¸Æ¡µ€5|ªØ/ÕØëÆj¶×¿ù"ÝÆÐ–±˜ºmW01cK ˜“w¢§¿õ©ÕM&™víïAÒ¢C jôÊžë`—›S{Ôþ W\SÓWà¾ngv¾œØ…Éh!*¹Ù“icr‚Íâa4ø˜¼¢¿}$þ¡ÿAÜGó—¶ «½iyƒ@N¶ч¿ë-Ñ E'/)÷îSƒNñ0ZÇå”mOÃæP¼Ho³Ò< v)u`1€v†–B&Šàö¿è™?7-îÎí©t„êõž/'|ïlR´|¬²’_ð…­"ç!XŸO¡ÀßKζëÁ—Grs>À˜AªÝÈ?ªj÷¯•„öÏÈfdóž%“$˜ù ãsÎΆ2^äÄÆ³ÇqÄc耘ˆ@Ó5l[2ƒpôz1}çK0—íÆ*$ `æµßU`e'N¸¦H¡ü—¾ÈÇ€¢†ÂbÆæÙꬅ‹¤ìÜ—‹ÿ ª!k Ø… ¸ÈáÞÔÃP­¾õ—~¾¹s’óÄÿ¡©ý¶„²V#Û:ZÙTG@˜ãÈŽÍÓ²Ð}c÷ ù"Úgšú<Ý`¼¾ps"&©:3–ú {:ÔªYS¯âÆ"_€¿îµ"ÿRæY–cîE¸-fÎØwËРó¡`¼Mp%½Eí½3tÛµ1ƒæ˜ÿ¡—nŠÖ‡~Ö‘ÅŸ ò'¦UM€…§öuÆ3bƒÜšå™j-ˆ ß'…É¥ŠŽ©,È>@±DS9ê@zOÏEfñ‘Ș@.ÑÏV§(£¶ä‘QÀnü‚D Óø—ôëuEé.aÉÞñÜâªÛŸ4´…éY 0]œ:hï¯R×Ài¨ÝËC½€˜9¬ë2îåDjí·X‚»tx˜Ö …éIÝ›.Ëp»?W=»¡Ð ôG1…è|ºÔðÎCDöp+n¯G%à˜Z^¦H)§E-ÂÆ!ÑeÉ_ ¸šOÀ˜BŽÔš«_H,•-[Ò!åçl¨±¹à˜8$ ‚H”v+ûdÃÖÛ),ƒHh—Ãy.‰áæ·5ëHF•AÝåþ§ñ°…¿8Ó„ѻ‰â‹2±€5†´È¿…°Ú³‰‹h=Ž-Ót$¤]±ÎÕl¡p—m/(eÇPªH/Žï˜õóT€ÈXð…­B ™i‰M|'›´“ÃÈüQ§÷zšÕÀ…ë/Qä@¯úVæÈnØ Mš —éþN ¦nÊ”c¥®ýí𽞰$—Á–ÌW m‘ž›¥°Séwý± 9Ñ€…ÄnÝôÊÑxñÌtŒÏ!õCþh6®ú®Q—Ç7lY”,†×Š’b“øZ‰&¤'|–jR…Ã|\y%'ÿ”YïM[\¨T­õ«bö…É3\µº–€°ªæí3G‰ÌŠì‘áG…î#|Ë>Æd ¶’×ÛZˆZ… §T½Øs«Öó\§oñ–±Ð ?ª4BPÿ  ý›’Ëc5øì€töïõjýçæŠD*ß³ î?œ¦û˜¤MlcÂ×D èŒ8T]’²žyÀ—H¤U ÖcœBsø/ÀBvFý€…¬ƒ^ni‰h/ø‹"’ å`Hm‡€OggS€Ü9[°ózP÷ž¤2 "!"" !—õy¹CñðEÀLR¤MLÖù¢-— _8˜D½ r<ù:/»µ…ävÑœþC0àî;@T&>uÀ¿÷»ï˜ÕúŠãcY-> ¨|”7°L)0Dë,Ç9ÉbÀ…ëÒùÔö¶Ì‡6nÔ Ý€¬”Ù&ÓÊý˜ÒÒ4.ÑRñˆÍε;\ÖeŒþB|À…ÍZ¸™ânÌëUp÷¿ÜpfÁ`“{’p#*€…×XÇ&œèlÞÎÓ´Û-àùôÁ+p…ñ"˜©kÊÏ!±DB/@k61ÙX¼ ©(†6nS‰èk«Óß)l< ÃèLÔ ¼vjï:ÿ¯ª*#À[Ywo߯,ýêÂ×F¢Š˜:X5Ÿ&¿ð·2c#pšÒ‹þ'´õa"°8™âˆÅà ò+9/<˜…ÄRÃOuÑb”yÃwCJE‹ §ú±Ø«€¿ñû&‘L»àûz¦8~Öµë)s1{àÀ&¿iPõ&¿ñ–EöjWWþÚ†.<6òa®JbI>†+nЃL€¿û¯ž¡°­×·ï¿žµð©¯³ng~d_\ð¼çê‹Ï©€-õs¥äZž†:T©8ù'vDJóÙH¼½wÑ[à‹ÿ #¢Îû›îc{f>p*­}ék¿ðÑ|Ÿº„½G„8UÁ«lf›ñdò€8£vã ÷”¼[—oõžùªˆ C‡0"i›òn½ þヌ²¥%¿îŸ ÃØ#ù~7"%ÇA1w•"ÜížKÎø¸ãÁ¬öHR-¾˜gP¥I{!/¯¢ìÑe›q —¾þ++yT¿ùµ¬>œõìùÖŽE…¢äîZ½@›(¡Hò,Š{~sžo~€…­mí¯ =@þfi›àN k9€…ëd…6äOš•F¹è\FñµP…Ñ.¥¤8i<PƒÝô»âs= —h—ñjžPÞ%¼ Ër9”¬×.ùŸÑC­Ì”˜=3ÕàsïbìÚ{–é=W• œ˜B‚°é:ú4žµ»®ßD5‚Ùu®¤…ëc‘ЇÎþ´Ûç 쓜<’‡ÊÏ€˜9¥æCÕ£ì%w)šìz (©‰ ¹¢´˜B×8C"ÓKT°á+Ï;^³ #ØÖÓÀ˜@4KFOYÆá!þãd5SaƾúJ±©V ˜Y«ž†óeóŽû½‚4Pe4? C dh¤…ÞiÆŒ7%e‰±«Žt8ŠO 명¿Ôf?š/ ˜DSE¶Wñ0ΓI)?P©EÈ à—íY¼1÷ùÕdɉܭ¯¾_RÑváÓ…Ƈ 3 ¯Éh `Õ^ËlœSu¬s êÀ…ñ×Px’#¾Å z»—îCæÇò˜I–錪¬Måµ4ªWXÄÓŸ?˜7¥ .H½¼¦zë}­Òº!W&z:Ø×ݬòøð˜ôQ¾ôe°­O¢ƒóº—iHû¬©—ÒP­bFºê¾†ÉákËT×ʇY½‡ØšÀ—™¨ðhâÚJƒé[/ ‘ÕlZR SN~À…»«M˜.“=¯?$âÓÑ›^ÓÇ$Ív…î/- Ð<ð<4ÊÛ‹Uå)XFwA&ÄOggS˜:[°ózQÒa¥Å2" ! #!#!˜îV –&ð_?EOlCæùˆ 6~@½KiŸ–Ôï5ÅïàJÓLymô½ª²›$ŠÂÌÀÉúÒ£&g‰ûïÙÊÖì0¼û1dÂæÚ7 ˆú}¸3Ëî$Z&ŸÿÇ×`ÁþkjzùÑp¼ïyËHwÙG¸ßE\Èðå'Ô+”]pŽÆ@ÓP…å½™‚6·å4_­Á,KþÙ~ +Õ@˜HêÙüDî2þ'×=ØõPw=ïìæ¼“£Q:®BT£Öq6ê¢z¨¥3´9ª°@„¼t“œÖïªÔÌmë‰wë ‚‰í¬9ÔgeP¹ùè…§~p1XC®ÍqûÞc`TÈ% «§„޹¡êm:ЗiØŠÉœg4ƒÉX"LŸÁå7Kñ«à?—ßRБà?ö«Ã³7ŒçRŸ™à¢RwPtñ˲–¯¬ êÒo°H4Â'—O«—ü… ƒ\M|˜&•#$l©&¥—?ÀÍ9,6oÕD«(G©Yãj`7H?̸¾+%èÅãØ©P½Y®ÌLh?—)GZí|Ú:#@O‰4 Z1,ãßè—$îXw^,FbLÈ^˜ìk÷Y—p¶1„ô—OG°õk§¶µõµQþÐ…¸?Aøç÷…!™$Mtu "ÅiÖ0‰²À˜<ãTâSU+ñŽ(%¯?b|`+Ñ|²Ñȼ¿ ì,§dÛª¦]ôEûü~XX¢³6QÑzË|€¼¡I=p4—«6l”âŦÒU4ÒEq·ËVf¿ðÁp\Vîê4»Ùʘbo9‰¨µÀ—¿î!`mW*%Š]vX@ûíw\ÎVûŠ  ?í†~À¼k ìD0WfÜÀÚTåç“ò€·”ƒî¾2õs9¿ìZc7U ¦‡Ð òP‰ ס¯à·~À?5?„ÁÞ`½z„/®\#0š5¹¥üIFà+¼Án!ÀéÀ¼»{bé|¯p”Á¹'t[Ô'8+ÿ4öÑa1Ü¿î'÷÷¡i^héÙ‰„ËóCb›‹x[\ZU•Î`¼s䬞9~§Ý±#_à[nðÂQmz¼R'‚쟦ے<o¾T7Ç÷ñ÷4Ýwwjü2rA¼u@ÉV ýsR…®Ídø}§'“¼ª®÷¼°Ÿé{ij6Ë B‰5.ËoÅqûDǶùìžNh½Hý1-àîã «%†\{ö Wf'`híð¼úôXA昺F ‹ßÏ#ßL]_£ON€½Ç y½…ñ»Ï¦µË H/D(nëW§-˽9pÕJäà-G$w³ÌŒÜN…ƒJEªüŒ•8YÀ½9%Gš*©èk õ>ì×-1ÂÊd÷²«zê´P½ä¡‡þ=#¡½`dá|–}8pF•ø½ß»˜SS ¿mö* A›ôØ!Kýºñã²h½+‹Ø¦n¾pª¶$arE-€Ùº•É ½@T3G¨ÑÙfýÉÚµµS”´+ö ayp½.7@G¤ây´åÁ÷ž4oyžßæ ö9"€½õpm’AKsóõ§Íñi½¥B1²èå3+¼ÊåyŠã¸é÷ãTPÆÉ*'ÃpÜ™ºp¼Ä*.º%ÿ}NÓW )Cf  d(!/ʶ¡¿ñ—õ/6ÑëÚîÌç`Ûá¹?‘#¥ûy. qó(¾P1É\½Hð-ÏÆ™ÕÏ*)`i-DÃçÄä~.zŽ 2¿qÍ@¼ŸŒãv!à3’¨hŸ{÷¼ÇÎnAŒâ“,¹·OggS€S;[°ózRñLE2  ""¼“ô2)Æ‘k;W•ÊútÛ,ù1_# ct‘HWOk¼sôs2ÊÙïK»:™À)nmŽA·Êtžž¥üP¼QZ4 ¯U¢t¦)hfI÷:÷¯Ok©2ÄZÀt@¼pñg…º‚.¸è/ÍjpKû'¬ƒ¯™€¿ïFxMI¯o‡Ÿ½ùÌE©¶ ´‘‹å^Ë%›ÕÈ=€½IZu’gµ—VrÞþCÇÅ^#ž;ì÷ÌŽ¼šÇ ZëL{‰S©{^¯M\âï£ÅÒ?8h¼jJÒ½ƒß#E›ÒwjO"ò¤•+hÎü$v¤–$@¼"£–>‘ „KÌû [\ê:"šüed¼(~Ò@Û¹Ûàïþ•ÞÁ“€¼Hq¯ ñ~U²³c‘ °ØR•tƒ^ÚƒQbÈgƈ¼3¨¯j4¾ÄBç•p.» ûÜL‚ö ë¼ò9‘¯1p3äóTÉnƒšU»èÝüZð¼¾É’—hÿë¹Þqƒ·9Hª‘!€¼žÃàl%U0¶Çb.¡KzÁ!™€;:óW¼  Z8^SÔøOFœÞ­Z“1è“ÚÌ€¼W´ñiœG÷ N-£à¦1Ý`U~ÃyM\b[€½R™.¼©‚ ¦Õ%”{Ö¸ݨ|n%¦(¼èátX\ î6c$÷Æ…ÍWó3@Ýc[E|­°¼ÊÝ—"GQ¨Ðñ¬²¸ÓE²sÍÃÏ o”Ö¼¡?ND‘VÒL¥“¨ R¸Oå–ùáé˜ñ¼vk ¦Ë’-³ÿØ™o”ìuØýù«Ï"Rù€¼MÿRS²L‘™íÈ +Ð+R±Wí`…ÆnÅÞAbƒÔ_Ã:°)@݆ŸÑ˜B_¸>ìÇÝBM°væÔ¼ç Èox¬×`_!Œ­°yŽCúL…Hj‚é•€¼Tð¬;óP6i•ÇâW§Ö–e5ïÉIÉ}y“Î"쀼pó¹sÜñ·êK%Â:z£æKu:Õà¼k˜“„n™“m Oµåv__©þ-„%|Ì€¼ éÂs‹£èeé4Ü’"°@#àèº Œ öÉÇh}P¿ï,(ñÂ¥,g§5HãØ;°t¶¯j¿‡› ½R0tG5"i«×[‰ëqswS90ôð¼òifÈ÷ö¹ØJûnÙ›«°ÑDzÅ€½QHØgâDƒªOqú[Ú&¨ç¤©Î*Áó’@½+‰ÇfIß¹ï\[~†·sÛeë«€½9Žb P—žsœ×ÀÒëvl Ä=jk}nªÝ½9›ªŠ0jsRû™ÞûƉÓvrê=rÖs@@…î/x¥Óìäu4]ˆ“À…ô›œ!æñÞ¡‰hË™Û6íP—í…±ÐãCÁÞ”9’g–ì_òö©pÀ¼„áâwUmC‰5‘sh¦µ`1ÒÍò€¼séHÄóÅÁþÙYfw…mÛ?Y²˜¼[0ñYÚœ.§RÊ“ƒ™"OÎ3x±÷³ZV¿<¼QR±ª÷,ɧºg­*#åâ#€[ˆû©oò“¼u‘.-Ö¶è!C–çùØ1)bÕvðfÏoâ)༆s.«:4} ÂR.[’üFi§ºMàHŠš¼kÍAÍ4U.^o¼2Y-†2CÁÊ(‰«f ¼k ®>žsV ˜”f÷`¦ŠÎRMrÅUp&?À¼LÊ@vŽó3ÝV*TˆPoþ`µ´R‰mà¼NK5C\â«ÛîŸ. ùœni‹÷|ñ;t¼”¿Ð×ÏîõÚâþÌT‡mn÷ÝŠZg7ORgp¼W\RBN6³W²,ßøþû]‹*É‘ëL…ì,…ÎÄ X3´Ð/JW/›Dð…ÝzÈîJ² „Éjƒ.í’oÙÞTx¼tõÔ¤+w†žv8Íýs7Ž Þ×ðeP¼AƒœoM¨<üO.gMYÛ6‰£Ñ ¼$½Eá?±l›2 ^¯<-ŠÄèò©ú¼()2í>s»Æ‹5ÿ™RÔK¶äzÇ2ZrE3B€¿îm4m¤¾ÅÑ¥æsßóI­>ö.§`©Øš×êLI½’Ï K½'ÆÖ].–ZB×?_O±›ù¼ç©CX¤ÀePù€”U> .8Ø‹’Í à¼šeR7ûdËÂpÄPkŽ„5z‚ ¼AAÌ´à6Ïß›:TÎ`@‘sAäü?˜˜!.ÊŸ³:ÐÆ˜žFa*í«`¼|Îé;`âW}’>”:£$eá7Gê¥Z=€¿ôh?¦=ЩöH§¨J˃3óyÃÄ?X$³`˜eQ ¢ÒR¼/Z¯§l…ëdS¿üiª{ûfD5®’ÊdÛœk…ëmÊrЧEáZ‰hbìÌK@˜BèŸ@õ°>´btÚ¸DùÆ OggS€Ê<[°ózT/›¯Þ2" #  #!&!˜BkþŠºvè×P9œDŽÇeÐ…âQ‰ZÄ6ÁÙ'Æ{®I¾TÄúy…èk×ûGb‚p$nÙÑè.j¬€hƒ™ÚäT˜=ÛÏ~xà°ˆÃéš¼§žçâõ˜B¹_ºL~½rìÚ›˜')p…èÆÝÆ"ãoGÆ”+º! Á¼Ÿ$4¢Žuw«ëgÖÈ `Ñ·Ä?ý€¼…¶ïpðåĺIhÄ=·îx¥½ž”¦1˼¢ûeHÐlGyÖˆ`„öË[µÔ,h~¼©)Š.„ö´:øË°´a髵A~Okpwp€Â ˜ToÈÚÚ M\È$f÷°+&€˜@:ݬÖÞ¯4®ºÂº£©ZÅÑ0ð¼çœÝ”Ú“™päµ5½‹Ÿ±pO¾~q Ê•ax¼žâtW˜iûÛí•á{¸ü~¯aÜ|ñKj`ʵ⼟_3À{‹0L)¹¾ë@cæZÛä4ûm˜ ¼u¿Ž·Rd¶Æ8i•ŽÂ?êl9pØ2òƒ~"¿íwïOÓJ$g&Ý3w§CrÆ>ªŒÆ }k“ds NSº$X…îBW¥òhY÷š‡ 'ŒžfusâL…°öB>%œ&Az“ã§£Q8âZà¼BF!¾²M “ƒ¡Pjb§$û6…þZè¼ViçÆN2ÀAºa[=¯–@'o…/…™å‹¼TWðO!Æ ‘¹(>…´œUOŸ ³çÔ‰îwÆÌÃÏœ …¨c‰·?m ëJj‘Š\7PÝ»p¼Øä}ÝlÏÆc(4/àä² gͲ#áT¶¼»„¿¼§;¥ðZ—l$€Äµß iÁaܼ~pZ ¶I|ïúo–΀¿ó«#cÁzùÈ¢’2Ó -/Æó¹4J½Ž»ºº¿ô«Cz "=S»Ïó:":AÎNAç'~6ê J€¼îÆH±˜gÎàŸDu%0WþIÏ!sšb…áÓÅ ¼Ù굂1жe³¨/8kÜ(GZ\üzÚ¾mc™$Of€½IZþO2‘%©ÉÐöçóaÓdµ+KoøÀN¿õÍA€¨}§&0çTÈA÷B3×gòŸn˜Åø»f³ @¼×¸å‡Ay›ÃÒßiÖ3˜6 ™Ä”M®ŠiˆÏÀ—Ó{xyØ{«Oè/²§×‹Ž:¢[°—ÿ{ê${1Èö£Ü˜ÛU»ÈRT·À—ñWh¯öv€’‡–BmŽÝ“„#5€¼Š{EY$&šçìi±:ê tzãúø¼§Éÿ¨xÍÛ{í@î8€…î±à®L¢r.A£©lÏssbð—ïemÜWȵZ\Š<á[º’”*&r¼—ît=@ôyyc‘(Ñ_üõnÜ¿î¡ÎIÃétÖ³0ÈPcŸæÊ\²‘õ®¯ˆ¢bÜä¿óš©³b)0'¿f °“¸ žÙ€?’ž—ÉŽ|à£Ñ\3OByÈ%˜H&–_;vø…äz›tN”'½¥ci]‘NëᘡPðMœmÏ…oÜ<‡Ñ³ÈT˜6×ZàžÀ P²]‡,Z6¤ªh…Ô6QúC½ŒFÔ–7JöÌß ª43oèhפò˜7LŠm"æƒ\=Eë‘&7JVYÐèŠV OggS†=[°ózU§nx;2 ! …Ï–Æàï˜lÆ '°Ê5Ÿ÷Jnyàè…ÔI\âä1¤hȨ_²ø~†Wð2Ð|3ð…úäŠÕóøòÑ)I‡¾žºGásÙ@…èj ÿ¿ÎIMҨžGŽw ¼÷ç–å öÿÝZ[ GÏ$•”«ç¹i½sÜ:Ö÷䀌³÷”„\bw!é=L ˜¥Ì®qzOß^¥Ó¯a®Q©Uò[€…âE»ùÕ`+kÙ²°–¼sfá• € ˜8ŠÚ âß<$à ÐÞúSeFÔOüjؘ9ÿ¼‘†æ¹þàu Ö÷‹Ã’j@î@Ø ˜=Kí5'Ž—ë¯± +7Á¢a1Oö¯ ˜76=rqð¹†d%?¨ΘÓWÇ?²…ßkAÚE󮈗o=âx"±þÀ˜ɲð–ÝóšéQˆBÇ«(cÐ—Æ Q°Ìw›A)…¹ÂmÙ®ðŸcqøÌ…¿˜.dµ­Ç¹6ë‚ÿÜÉ\À…èÚ ¯ºfz^¦P°3r¤òkÉ€¼ñF¢;œ"ùힸéàã˜þK“Ÿ‰Øû¼¼úOº—§B¿KVwd‡G3)@q‚xÝûϼK³ÍH¾ÙÄ¿ WŠ®×Ý]Fhk)vØém ¼"KdÔŵɎ̭ž‹[Vªp'Z-zu—E+ö1±Zü©ÍÐ?-6m|j¿È޹ …¡ßG&Æn?Žðb³Ã˜Ülžá„Ïмo‘@˜m‚Œo(?NlFQ‡'êpC˜0Ù€…Âã†(.à†m1WÉóÜÎÌ”Éjü8`…è޽žg…ø+ÖŽpRu!Œâ0—ÍŸªÍ(‘æ4[wàZaÂÞ“ÇEguL…äÁD\xíÎ<¯Ã!¿&6œtp1|à.¸IÀ…ìo8{± ùÞ²ƒÌRVkŠðõÕ˜;®Eó¿`è¬Ã ºÚY:y]HQÐesfΈ…÷·¤pCŒ¹ÚÕ'<¥w°e¾Ð¼Ÿ#"5@Ò‘aÞ ß $Þ ‹â|EN!ØÀƼ¤(“cÈ1tt•º1Ëh{ëåÊÝ6‹@e(Õ¿ñ*XXFªêÜõ½!ôР¦TöF0ÂT‹Éà°¿ñ6ÞCzþ(Ëä|`£ˆq©›úé‰"ä——€»N*Ó@Pv{gmÚ“š™üçep…¶sÈìŒÂ¯¡_`Æ -_àMà—ÇB+Å¥ÖT/-2×õ‚$¿›yƒ~€…ÍvÛÃ×+XG“M õ}œþ®Ëøþ³®…È ;¶Dï!ØÇêp©wD…é‚ßËßQ4èIeƒÀ—šŒ¿"5"£øãŽÓ–¶švæ` þÒïIÓê(À—™ BXâÄdHÃñà[]ÙX¸¾V€—`v†‡¦dÎWv%XFêYÓi®&Ûœ—IsJ‡‰Pg€¶mZލWô½8Õ'j- ¢…èpãSS&6 ˜ç›ÂäÉùî°…Û;&¦QPDWŸ¡Ò;•¹.‹ˆ —™ôSÚÏæ"Uy)§­³w;!×È!2ÿ+8õ¼Ä%L¨¶µZèý’f/"/J=4MpUò òzÇ‘Ìp¼¡ˆyúÊNÜÂæ­ ˜ÝJCFôófÆGê€fu€¿ðÏ÷ôÓƒoΉ::þMÔÌ/ªøUͼ‡àµOggS€A>[°ózVÒ¼àô2! ! #!#—ä…t=¦×f3ö«^¿‚µÐùK¿ëJ倅äuÛË{•5`[1æ dÖßæ]Èâb…ÐNÿm„â[’ÙC³œ¬Ûûè+€¼ÃÑU½ø8*iÀmåBÖ†ˆÎ’I¼”¯¸(2ÆyjC˜iØDž9çàß»M›©ÿp¼~2×5>Q¹úµk¬ì›…FÕvÀµ‹’¥wúX¼{f)Ôr¡‹ÿÀòdwþÅ_Èßø; “³c`¿ô. bŠ_™4+dÑœ/Htד+ÔÏØOÎNè½m¸©ÈÅ#†Ö“”Ù›5\IxæuÔ¦›kÍ@½mRäE”¥(*%.#ï¢àÄÏŽjQ¢— `½»øwŸY(WïT{©À,p¿˜«Gÿ%Ûd€½!~Ýßør‘a–)½vv³ß`o°õôù)Ö¢€¿û;#RTÌ™›Û¶açÆºìAM9Ö è‹YÅj½8¨ëò ì-¨-¬q‚W£ã–Ûtêtb¼˜!¿UÉuZ‚®âŸà†›ãT5jà €½9°â AÊÑÁ³þ `e 7mˆSŠ”’ܽ:%}lhœòq ð¦)Z±P4ç-&¬p½9ltâ´ó÷5^>—òîUŠäø¿õÞ™j¼SʨIñù ê/{@YNÍ-Ì —ø9ѲîVd 0ïl ­¦>ø( —ð%‰3½]DÑ€­Ü3°’9ÃN…ÓCûÀwZ)^*Ë!^Ëa}ýuÀ…÷$WgÖÓí]Ôh/2 æ}¿hüj\ÖŸ—ôT‡‘I£‚”åè)`ìÿlÔý'Öˆ…Í l¨Q¾'Û+2º —›+,cT-i¶'K‰„'¨ÈP?ƒ·äÐļx'¨Q ô=+ç¸A—´íY«6oÛà¼NLš>ÛÀ[ùwŽ—ndž¦ŠŒ;5oõ¿ì3‹§ Ú“cÀ_ôvç*1Å=«¥íL\$õtŠî€½[åË€Ù"K3¯Š SãÀ–2sn¿BLÀ¼ç:!–§ãœZœ+Òî’Í{ úÔ–ƒ;E@¼½ü•"®”0e¦ shŽÑ“Û&L‘Ü3€Û”¼t„ŸTÚ`ì/ÜÏàÀT¨PzGWª÷d{ÖHg.`¼NÅSd…å%'g+¯)^p-=÷Õz‡¤°¿ëXkƒŸ=åà {ãFWËžº-1Šó#Æ›‚Ñ…SÎ.Á>l'ÇwúYŸ,P¦I5³/nœfŸÔ…à7Øa+PÒ)ž<ù5³ŸÕˆž3å—ìÍÞÇõ¤Á¹’ò™k¼Ô=ÆŒ¼vtqç¤èwð0M7ô#°û÷,*€T¼šîÕbÓ;*œ8oiJ L—Bƒßë›é1:õ]€¼w£Æá¼ñ%TOÔØ+"y5ät‡÷°@8¿íRùçÖˆŽ»™… Bzã÷ú×:;U‹Œœ¿ë¨^í5çZ¯~0ä–£m`(ôKÑtiñpsÎ÷^/нe >`K¶,ÃËÕïVè®`òC™-²™*64Ø?¼å+Aìë²+ÂŽt°R6-û“Ó«­Q¼~_ Ys£¢tcyÔò“»ã,ÚÜÀò+XyuP¼žÂAÏ9ThËßw)Ø"4l§Qì ȼkÝâì†õ€¸f U([UЉÖW.oÍ@¿è_V€€««¢rVw9_8µº=[°ózW]º9]2  "…ôLŒXc„ƒe‘ðæ‘Ù¸T!{À˜üu׿ ¤ï¸‹}jf²ý3jŽKµ—ä­f's{|L`®—ÙbcÜ_'O¼—‰À—È"„/N Ú•VÒ+"-êЗ¾§ ÌÐø°Ð] '—"ý­®Ø˜ü¾—›-ƒý]ÜÇYÓ«­´ßpbµšùJ€…¶JèRi‘í%nÉíŵ›„÷¹¤Y!ˆ§€˜:*^Ï0Èâñr¤4Ü|í. €…èMÙ¤™”q˜»ù퉟2þÓr4¶gЗã¿`é¾ÿó/\Žœ±»l~þ:íW*—•ûL'%×zÑcskwfA@}]uü‹€—k¦¢‡Rÿ’ôpô?ÿýÐVëPiX2äÑÖO|Š…©19H¯½¢‚ªÙßÞyz¥×Q9>À—rXıo~÷"‡ÛÅûùžÙ˜°ƒoì…ý"s²yrnT“7¾œDyîÌFYŽì˜6±èe¶{Œ·•a-œ´}Vö”¼ò.SÀl¯@Ýÿ÷Lä×~|¬š'˜d2zÉøà¼ûAFIÂܽVOºÁÓ#lç³c;-B ü4A­U€½Xi÷¯zf%üò´€)3ƒ*E¸@ì”})è ½h&`Ÿ±Ûa+ÅšÊÐ,üÀU>¿÷w…úNÞ,M—Y[‘q˜‹ûwõ(:¤6†À¼ü)sTŒlSúUTöòæèBU·Fe­}”åÓ½<Å­±ãˆUÁhß°O|ù¢ bÝ,Ì.)€­½8œwFdk| nÍלqNGÜÄÖ”)24Su 7€¿öŽ<4ºq^ëõå·/ªL ,"†ä€—ñ.›«®Ãž’-KµÔd¦QdÅ®þ€—ïpÒè‹OBÂÕ=p-ŸXúê÷¥†—Éq˜—Õ5ÖT@ Ϩ1˜*Ïä……ì èwŸ4‰móÈ2)%;ؘ®ŽÙØŸêÒ†ÑZ.ÐF #F0à—ìóŠÇžé‹}}ÈgÉ.¹>nŸ Ö†B‚h…ÃXþË Ïtâ¡Q>LŠš„À¥zc —Äü8¾¦ÓÃì3àê&^Ÿê\và…³T뺓Ë4õ_f@2õŽÌõ¥€…¨Oµ’ GÓ“"l»Âí[—‰(K…úB!sl.°m¬º3¡ôMnO»Ѿê‚…Û·Ö ÛáçU¥¿Å™5­Âý¼Éš49ÅAɬhS$"ìä°0MqE¯PêP¼É ²‘‡¨>Ò×òºÌÞyº†C ±d 3ˆ€—ÌkTµkN“x–®ÂàPy”-ß@¼5nõ…Ñ"ª¡øhßjÒÃþÐ1¡¨ª³Ùµ·½µ…ÑêýÂp˜ÃÚï$¸ž‚ÅîjÎcß…ñ·éÿ癫(CÂ?ѵԔW\…ÚŸÅW/³Ÿå÷KãÓ]Ž˜È†¬¼”ª{‡¶´Ów×ÝuÀ‘â‚_Í Ùš¼G_g …×ÔWh)’øí½EcnoÄúÁÀ?—AÌ÷sM„aq8"ëK!KÛN0?—l'õBÁ¹0BõÍ4xÔé&æ Mj´P—}¿8—h`<ô˜`ôÖZ[˜x—6Y›ﲤϠdgþÍà’[:ŽW@OggS€¸?[°ózX8a¢!2 …¢¸¾rQõ#Ÿ§¿”Lƒ ¿{€—:žÈ¯UÌõ*ã Šn&8ô€…'|ÃWfuo§4å´G`—3³SóØþé¢Å}"¾ÛÕð×ñëà?’sÄv%çðC%Ùµÿ‡9Š—m«• „©,U4´” ò]»3…&W˜…éÁ=c#Ð-–C6ìB]ÂÑÍhа—Ù뀅èbÿäLõ\vc>SjctÝz¥ ˜?-@Xí±ˆÞUy˜ÖêÈ%*ÚÀ—í³¥ÿk ‹¦òñ–|W¨,ú;ˆ À—¾{"hùgÞòR¿µ çJHmGi`…´¿ªröÅáw°ìñÅ3Œ oðGg@—“TöÐøm<ó|~â©<×'¸…âµ&Ì>‰9¼ƒ¸W~9Ë)Úp…è-¨ ²d1=¼jÄØêú®ÖGêÈ …ÍSo.¤>í1ótº’B­s—¾wÒIìÉN…­r*>Æ­‡7ná0—Èž ý8õŠ…àÃ$ù/R˜AÞÔ_·Ë cMA8Ú+tIthª`l±à˜9øròkrâþ€$úó«yÞ3¤Ø˜8€¡±nr­d›Ä•–ðò§®PÓ²˜æ_ (ŸPIÚ¿a§w1)l¡€ñȘç2Øå àj•€Äà£P%™Œå À˜=»¬›ú}-:‹±]qy9<‰2š\˜$ᩈIÃ+ðïh+d©N`l‡¶R…ëÐÙ‘oCök¦u˜•Sa´£¨˜½.UlÔ¢î6Tù÷ÒZ›ä°?`…ÂŽÙ¬ã`_çÉé<š'!ÿÏRÍíšsƒd…¿³|‚í„zñ/iÌÁâ)®}¬¿`…´£5`2´'׿ƒJ¼˜YÝÄÈÈ…¥SV\±*òäÚxÄ0šiýf<Ð…ô# ! PB{Õ˜e¯ÀÅКÿ-…ÚuÎe~Éü7ˆ  ë±s<€ |ͼIãÛî7´cöÒñÀבžf¹åÒË`'ûž-Ô¼+Z*9=â$EH‡/òŠ^;hSÅ6Éó ¬”ê$¼Kã í²ë±¾èŸªØý̾#ç¿A<’iÖu™Ø¿ë\'PŸ);ëE9‘ ð ¹!¶ ed?x­Á—9ºˆ…¶9Ü’hòÐNÙ¼+õAÉç>L¨ÚX~&B…òFÆ'´-¶ûãO aÌ.bD༘ cË0¤ýˆVÉ~ dGÅ%³`³•“ƒ¤üð¼ŸOö¾¾êå>:DÛdÂAÂ8QD“öÒOÇ’¼’aZàcãÜ (Ük‹Di·Iƒ¯I‰]f ½Oôóÿ¾j_‹ÔSAda×{¤óˇÂ%®€¼ñ‚#1ûQ!GüEà,g$þÈ|¡¤Ù¼Ÿ#û*xGJ‡Ÿ{éGS>”R|/a|ÌÀL„¼ðœÐ©×?°µý Ž@æ›{yT/à¼w Ó _÷ì§nwœÕ®ÙY&Š˜ÒH_Ùø·éÕ€¼x(ëhž½Tƒm-µÚÌVbÆø7kœW¹Ñ¼yœôF4S+ÙeW¥p0'̘|™M o—=¤ç#½l½8…ðl…'àù?ìG"r|gò ¶€…Û¶A2¨-–û¶!Ç.‚ªÛሔ@—êŸç§¡]òï&d‹]cE"‚¼…8‹;y¥Z›}Ékðð¤†ñ¨Ž¼q ë¼ÔË$Ãð 7Lp…®¥À?1 jÂ`1`à¼@¶>w÷4£C"ƒÞ °òB™a3p¼"•&¼a :uƒÆ¼*yø} ªÑ$4 î?"…å¿C—£A?‰égáPã©É¨4Õ€…îrM÷ú”¼®ìÞo¹Mg\ß…ëe”’-¾%¶ÕëÀ\U1Û$Žý½ZÀ…è«Mâ„?Œ9Ǿ#Í9}±CqÏ€—{N±µyÉI «¸æ,¹þ$(´…ÁöhgÉ—Lî/>ᔨle§Ð4f —˜Éäö§Ú›t.Gâo!Æç*õ…ùj èõÒÊþ1bBü1,øé6U_˜l'óèQ,›îãì3à¡+Ÿ? d˜ ˆØèAåmün…%J×éW0ôÖ˜Eª kô1‰zøª[, 0ª¸}üÕ€@˜zÂMûÚ#ËD0 éõ¡ÔD¢ˆ˜Ý5‘ë‡ ûÀ8<ÿ~%ØY‹Ø^B…âZ檞‘V4öýjrT=éH…q‘ý …äVÏ ê•›®(KõFAe„v„Ô%@˜9™!ôé¡¥šØ…ºE#Ù!¼Î®b¸€…˜oPvu<…Õ\pNjkyBžž—=ÜY9FI¡­± C1P•-ëòö@…:÷ð¥ÑÐ1LJ\zY5t“~„€…×0‰ÁVånãnW:!: îÅlB©yVùXp…é.Õv9ÒI3Úv*”7£ž$ Ö[à…鈵Կ g7;/%Zi4šøh$@˜80 õoÔ…—ž IÖE¬>5þuÅ–Le…Ô Ù¡Uæ¶ÙÃHjš8—P]X¼…ÛBy^Cȱ·qK¨I+ÈøŸ =ø™§þ˜­@—ÇsºnÿØLi+ýó[;[of‹€hbSW·V˜914ú£.E _,ÿF–×>F1œI4åò˜ŒøÕiñòè|©:ž‹’·ÏcÅ/ÿäþÀ—È"VàÒŠß<@¿ e „âùì Ô=âG@—Âvò²8QůòŸ§ ’w q jä°…µëzK¼è†lˆ¥ÂPo­¸Ð}d¨—;Ÿ±+tóÞZ5Í ČÞòT:ªa˜¹ÿÔ½cì^G¾V Úö-¥±ÑÄ |a›´¦ºÛ€¼Î2MaY;}3¡l°vs’t·–nV£ËîSh¯ð¼÷ÑÕúø{¥¿`Y£xàä žŒ› #l†¤iÙlD½!Ýh’ƒŒóêG!ÊøSé´ÞÛý‰Úؽ94X@ƒ´ãl7…ŸJ$Ö³û³Ü²J/¤½T…3Y/7wWArŠ36†BLn¢Õ‹nUs ¿÷Š·±³0ªÜÃMŒ_Dóè7Þ _$uŒGJØl¨À¿ûAöUjFá2šö9Kæf€¬ê5¶1m8˜8€5äŠí«\¦ÎzuÌ0Ë–æt¨n˜&ôf ÄÙºk%2t³ûÒ©žÜ˜Þqû“ÌÑy¥ワþ ·ÖL0—ðîé¶ýÂ2oÞLJ²…»T‡´rUÀà…Ûy]2â„kDa©˜SfR‰%_Wìè…ók )5Œ›’ÝYð` ;ñ‹Kè…Û~#¬ûgJ67p!CZªªP`¬€…¿6¹ÜÒDœ—&•£@ |a®ŠÎ;Wü¼C”Úµ;0yž¤æ#åUæÝ±{q1Ð.ÎçhrëÆ€OggSëA[°óz[ùZ¿2$" ¼H&&ì1‘ð°ð Z²°@Q:Iø†€SŒä…q »úÀ2~{Às?)‘Ù«þ1Éâýò!±ía«†Ê&úø»þçÕ\âé"Ž*©®R'¿àd{„MÐ}@øt +½ÂY€`¸ì+ÐD!€ö¹+&‰Õª®9È:oð%˜¼½C~•kƒ½Æ,?3lìÜ„£Ø:;]J@á‰ÿ€¼jñ>.ÊÜ] ¼íå9 Zv˜²a$úã¼1Èí6=–b°ÃŒÏìaô!èò‚¢¥ÑÁ ¼'ßNbv}?p Û9n­ 4cÖ`¯¿ç“ö;ôìÂkÀ¿í^ɰOõ­ab ÀŒ£¢›i3E˜ m/¡¢Oþ€¼UwV§ïâFòÞb:õªè/–õ”’a³3T€¿ò‘ºï¯Óip`ìraˆ·*‘L§õÿR£›¼ðÔ¢½ßrf)w2„3ʆ5íјèP¼¥Š5A½sCÍ¥mj_„Em:È£ ÿà°é€¼ž3âX‡…²þVÉ–‰GÜ€?)½„‰²p¼…V¶Kôódú&¡8c$û«fg—©l¼­X¼uŸ¨”@ßoÜ8j¸Ìñ·q83q¼J6hN¼{TwÊY\ £>r®ôµàá;Áê_ JÄO…´¿úžu|1/^¸X)L†Hvβ@¾·â‘,¼ãûa8¿Ê;ö­#Bz¹^ÄK Cy,¸ô8¼xf¬|EF|‰óß{…:ÒÌ£–g0¼™n µŸ¥1¢O!^°y±u@‰ßi¼K;<Á Snó^”Ì^о˾œË4 ³‘Òg7à…‹—ñL/Ô(`0”> ¾3)«'„Žºz¼+‹:_õ:²'‹Y"KêÄs˜ðŸ¢Ù¿Q½Äw›%—ãË„d_µ'—Ïä}ô-pöãÒgp½@¹[䯷œ‹Ø´ä¼³_½¢$ ï‹¶€¼ UPõoŸu³rH¤÷{U#çùþÓI†ôe¶É`¼jÚ¯/'Í))pÜËÑYìøÈí=è¼KëLpt,Üpžý‚%¿%O‹ûxa-Þ@ÖD¼”ªôœ.€UÜŸ!rÄ–bM’:=ô!1¼®·óç]¹ý[÷Šc5ÖA‹Úß±ù¼{"xž“5Í€¼Ü ðŽªK‹£|7§u­"QH,öLö¿û¾¸-YŠ=a ™ä6Aÿè}SŸž5¸T¼Ä5òÏ•EÁ×À{\åÆñi¸¾–Åü]ؼ™t•CL6鹉µ“AŒÅp‚O~øÍ3Å™i*0¼Pèð#£Q“˜BMœFILó5Än ¼M¹+‡ôüÜœ Ò¶S!ñœÿû®ª—pBwG#KrÑ\ràH]ÅoüÈÇ4›–ˆ>¸ wÏ•náµX™Ñ¶À¿ù:ìóÕKT®Zå)GÉŒ PPN È®‚Ÿ@½»·´Œ¶Þ˜ÓÁxøDÜkÒì¢$`½Suá²áÕ‘½$‡oU, ¯jb‡¿ö)Av–ÝŒcOç'Ož‡ñ¡Û ¶À¼Èƒ+î»W˜ÎdÆY³snã#§&®Ü{lOggS€¦B[°óz\+ Â…2  ¼›>èºÿQ$cT@÷v’)Ž¿ƒà·E½ŸÇÅâ@…ÃÛO‘°ЪtÐ`‘é"fÕ`…×p ‡-Õ_ÅW%8D ú…èFÞE–¸¨ë•Naˆ‚Çy€?¬jªkhžK4öÄH è%µVÀ?ªw+#¢È'!ñúÈlô$?— GZÇ¢‹nTê+uõÙu¹^Ì6ÿt–ìrP_¹[2ÿíÑbÕTÈ9ùÄôo”œœP…€õü&MXù‚ &±ä^wXT…æH½›Ü’34+ñh|Û¬õ–o;0ÀDMp…Б£¨ÎdEL–ûé0°§uëÐ[¼¤²É(’‘‰Ú¨¢@±2uŸtßoä'-Z-ý²f°¼ÎãïS:jÚu#ñ¯쳫Kƒç¸ÊUÀ¼ò«'½BNÄÁ܈/½v:­ÒÞqËÀ¼õÊÒ¼›ŸÊ¯ô(\Γ@ŽlÅ®@ÿ` †„‰üþFÆP…ÖM`mgîê’çî_HÌ6æ—W†VÀ…åæxöZ±K›fE¸¯«O…i•º0—âuo‚hˆ(eS_B'6‹+Ô‚¼éÝ€u½)îb‡0™— º•@—_‘«¾ÿ W3剳ÝÀ–ªúc#\“¶qW¡Œ\GWͳPsXÓ¢0¼u}T¹ó Ó`<&i°·úQ@?º+©p‡èõf‡ ÷§Çì+ëÆ y0—ãCȶiåëùÿ›å®wÄ]…¥iæû,i`)ÉÔ7´BÄöxJˆ4tci…‰Ú~“ðãn7kudžµ¡V¤ñ t-COjy¯5Õ.š‘ð7g/;…ˆƒI]€?—Žué9†kßYvô-äJâWiñçv?—Š Ù}{ aÛ#Á»ò(@Fm@t NL ý$ËæZ7CÃÞúŽÈ…žÖGs¦¶@¼@׌K,4sòÕ-ùS–C€½ •pé¹®éðÇöšwM¿2ZmÅ”íø¼k½5O ²O^Œƒ°ß ~-2™Z¡Sëîs6€…é*>6ÿÛQ„å§Òã¡YîüUx˜€˜L.U>—à(úÇl+cFI–ǘí0˜Hòcj´`yŒ-dv×çÀ”å¬Põ:”˜BÔ%— MäÅ´6Iù'ŽøV˜#½"ϱLÿÒ¶ûo ¨<»ÿÒ­–­!˜fÛkj4ðŒ®z;#½#âèmNâ—ãe/ «3ÍQУ¯ÎbóT’%…»~mtyɧG»ö¬ÕÁ,x{—ê[ðTy!²BŒåh-§Ê"D¸[åVnP…°õöנ≔’¸“܆ñŠ¼Ò …˜!Üà³qM8’^üÆx¹à5Ä—N¨ñ´é†gÖAØeϽŸß!ŒF'"€…¦ÝØ9šŽî“L_rÂ(`°—J&EH ÞTúÉ[ΙÍÀºŽ²ž6gi¨…»Cj—¶7¨u Œ|õwö?”&Óµ¤%$˜…ëZ…<Ýbsó1yZ½’¿·Éë„ p ˜Ž„vºfƒñõÔ5;¦Q’—Œ(U“ö0Ñï§»Ú Ï ‡•S%P…Œ³æ;!‹EÐ`L½Vš:à—œ8ìÜãR™,Kø÷¨|y —Ý¥&Š5¶×qÏf“ä6 °ž_/mð…¬Â‡,Ò-”«G’Êš,–hŽ]@…ÏeðfQÏ›D|C{úuvÆÖG7Ž˜¼y1òÕ°Ï“’æ ÷[:3¼–fB„RZ«e5h¼kDí°tðÿ¬?ШñrŽæØ€P%¢ìœ*ÑB€¼@ýi㊙…ß²¸ÞK„LøäTj;ñM€–í)δØôƒ ¹pÛmIÄ Ü áLÄ?— ï%!*öU±kë'‚ÛlÐî…­%½¹ÝSà7$Û¿Ž(ïÙ rïx!=p…ßݹŸ,<Ppôä8-ÙX—ê’ÕôÕ½‡.O$Jã»ÉÚ\åOqê—ÁpõH«!¦Éñzf+`àP5|Ë7=@—§ìLq8a}( üsS-W®vpàkÛëµ€…ã«íä]ÔJ›/R“V\çpLr—¾£fzª}ÐàúåNÿv¢QÊ¢ …»M ¦µG¨*wÿHXgBŸ ÿ»k`+A…è$Ffqø¾} Ùž|0`°øT‚a_/ƒ€…´¢¼Æ(WfV”´l‹Ô  b3œÓ­à“¨…±ûîôŒ$ ,ƒ?­+¢ª¥ J—kØ é§y†Í‡ÜpÀ§ [HØfw‡Z¼uÓ¥Ÿ½ÇjR L@ã¹Eõ/&1 ŽfèÀ¼m6já9ož/¨>¶w{—ÔÙH ʬ׈¿îš)Þˆ‚X_² `%3Ö£´¥»Õ§Û`™dÍó—Ëë{ágrÙ³ø ¬ °¢òdM@—¾©}GPÛð—çÓ,X43wÃåØeÑO²ƒ(Ç@——ȧйÅéŒJËj¶æñ¸»¶}€¼wê‹{f+’ê?xM¡K÷U!°#ÿᛊ{’æQ+•€¼k¹`fø2†©Úv°°à<ö[èÅL÷Lؘ¤‹€€¼KîˆbO>HXæí±]Ó†ÍÉãBelq#í€OggS€D[°óz^ brH2 !¼auL,™B¶^ˆL¿ì7>vU-|'Þ~_\†M¼6(˜@^ÿÒ'®÷ÊÄ%t…­­¶€çblÊŒKB]3.•ÛÖßà…Ýhá« ‡ÖNûsN§ÏêΤ@—mL™Ÿ#«½v”¦õÉ üˆø…¤†êÔRaÝ×z"†A[bãÀ—U8Fžº¹I.))æZ]Ÿø€€?™‹ôÜ»^á§V!ÚÔõ8û¼9ð?™¢ÉSÇÛ ùm— ޏ©ü$…ŸÛOeI§ýœcýJ<{žÖnYqØé¥ÏÌkM˜6tÔ˜½Þ‡„Ø™ç6q5ûwà—ÅðœÏQ00v%„rçø”8`…¿„†nªiÅð,Ùïå*vÚ¨·¢ç(…Ñé»®ŸØ×DæN ’ïltbô —Ç||é,Ée[d…Ÿ'$àµXãñ;¦Ï—Èû5nWEQ‡ý´zæœ?ŒÉJn†€…×Vécº‡õ›nTŸOÄå‚ɳà…è0q%LƒN`–òfýo™¥t†ú;ñà—é¢Cå÷–ÇSZAö Qåt/'…´žç~ÖCCŠÐ™Ó\ Ê»û Û`—•§!hEhŸfúi¬.ÇëÈv†õ¿ëWóñ.› —§îEêb³åAYn7§û0‰:‡¼#)„¥¶DÌ `m êRXή—{Ý\6áKŠP¼+ ‡†áH¡)õ'ìžóü¤°oCŒzù9 ÷ó·r¶¼uFÒzÿ«DÀø‰Y‚ÏÄA¥¨ÅYÆ÷Q¸—goÿ[n~é•ÇÝÛ ÂTº)¿Ý&)äH€—›*@ÕUÏÒ¢¾zX•k9{¤ÍSºÞ{—›*.Öjûž6X ¬…!ï½ç,d——šøþ×2Ìô/$y—"Pw1yÍAï87À—ŒÖØ .ég‘Ë17&N“ÄðͰ½ƒRÄL?d…ÉŸRà?Ä#×äÏö:gî”5@˜8u[²˜tÉ`“ã{•ŽËŠR˜Öé=¸¬#FôÉö ÏA…¹Yø—혦CÅ <^¥ñ2ŽŽzcΠ€—¿ûf.¦}kg)äzáó|îĽh«F ßd0—tj—&gß鈈v†ü5rûM.˜ üs…µ{‡üà`‡×ç ÌÁ?˜‘¨pG8h—ª¹Ã©V4>˜áÍF_ˆjé¸ÂzÄÛ²Ò5hOggSÙD[°óz_%€Q2! ! !"˜9-õ¦ªŸg Ubè×¾g0”…ÍGЊ76 ”jÓ³©jÎëÜÊŠ<“Çp …¾ö\+ñ­œQH¬_eyÌ]— …$ˆ—{ö°æç˜jãª3ºbw›“ªÊŒ»,–Rá4—–!#D€(±"êžþ°.° ÊAi—o:%‡ºbš 9Óek+&.ÐEóïïÎu@…­&0w>ï/ ;ô>Ép`Ioü']‹~7˜?ÂÓc·àÑÊ$âÁü¡”ÀYú\¬…ÏÄ‚7Mí ·6ëîwžõW-Etq—ñáÁq²ÕGEú«>&™_olá+ÑN—ïÓCTËŽ<¨™º˜Ü}» 2Ä…Ôžj“N¶ÿÆ»j`†Ë´6Ô΄4ܘ }øŽë³Ó0Ó[–#j9"Bò€¬˜:-iÊ®ÍY؆òý'Ù¯êÝCº¢˜9°ÿ¾j­“Ê ä” ÙZCâ¶W•œ…èNêýùb¨\˜÷²Q‚ŸZ¿»šž€—ãÙ°s¶”d¾áz(sêml/#€…ÁO‹¦fQÒlêr¶c÷{6µÚ@…´¤%Rv «~hÅ´DŒ«iK+€…µ&ؤ6Ÿú´î]…šûN€…ºÚëÎ ħ¹×k8—Àù¥Í¹~ø…Úˆq ‚åÆûqs'F—à/"màÛ`—m¯Ó¯Ä4é+xÜLJ€—6 2D©ÚFóGáA©G“õON5¢¬ÙêÀ—; ›¶l›ÕÖ ºèWXØáŠ0…ééäòîÖZÌ¡Å$tväîQŸtpÀ¼Jòú:^ñ}k:\ÁXR‡Rï fb¨¾*)NÃÇ›¼5AlÒ›#µ,bç}E¸Ñ稞ó…<Œâá@Pû½?ª!ª¹ûu%ª?‡Àkþaʼn ŒÔvfÇܼHq¾é‚9)ê¬i—¤vRiNÞâ­Ê+÷à)hÎ.b;À»îÉÄe:E‰?‹+—Dèíõ*xm/~–{öç!t_Þ »"ŒåSã¼áoÅ®½-"j¡®À,û„0ºÄê4¹>xWã[í™Ìƒ‹ÕŽ.-}å¨ ÔÀ»øcÑ­ÌôŠåD•vXŠ°ê ¶…E”hMõÖšWÀ¼5;%IÝ<îmZý9šÏßToð³R¼¯¶ï‰zÀ½êqŒg>Ú{µg®ÄÎ3”;ñ¡Ïyø4¼¾Jû€DÉÍdÁ¡Õ¦mŠ—ÈéLA´Ú>gL@¼”«=äðŸ(‹þ| …½ïVÖog0ÓR&ègrAÄÒq8+gÈa @¼è‹jq”ö>ž/BžL0Kߘ#SZfâr•Ò€¼ÄÞ¶ß(4z?)ÃS<óXãÇÌý&À)º¿¼^¼ŸZ·Ñüïõ’™à]WNˆ£ .ýËO†à¿ñ/ƒÉ™üû¤‰jómU Q"͹©í¦íÿŽA¿òÛåþR«˜ûE„^oèêèÐĵï7)rœ~í·ø…É[º‚¶âþ’oL·F«ãJ¡ØZ0…ô%Šh']¿?‘|ýO9“Ðи½W¹û2ÕÓ0¹{öÝð! ÖÎh7è½—­@)ðOý¿yr•]}5»ŒBÄmo ½éÁ º}Òoä†cW'ýa³Ï€Ÿl½54_è7ÐlôÚ²\ÏţäŸD ½»Mƾž´^õðþê–}ÍÇ­Š…k7û¿ûQ1ô!{p´Z)†Ám[fÉ&Ó5Ú0€¿ûÛ5yI,¦¢ÍˆŽ½»))X2Ë´1œÐ¿ûÉFPïi¿ñÙÊÚåöìÊ ¿ÐÁ&wY/ƒ½d]V"E¦Äñ(t\bý‚®ˆÚþm1P¸v‹€¿ô¤¦©šÊÃÌ;zu½ÔèÐ@jÊê™ä¯&¦¼ðÆZ#R+N"e¦87ˆ¡”£¬€ T'@¿óY+(äFÔž ¨nžMŒªI>Oh‚õÔ€¼°KxL3n‘Þ°V‰œÊÅeÇ×ÒˆÕPåû€½A  5­ :ä²¾p¥ò‰ @?úÍž$s@½*& ï^0üjÄ7¨gWc7ÚG ôzotÔ¼uh½ èr3†ûFÒ¬ˆL‘êç_3Yd¼q‚f‹CX¯HKŽ.?¢•«°y¾á窀¼N‡^cÖ¢¦å¨íí>—ë¼Ò@ª½öYè ¼TÀaâj›Õ>-#¿žüãÿèoˆÎå„`u€¼° `T3ëT³!ZV¥“ iñNÚç2T,:€½I,µ¬–13^²ˆK˜*™¼Àª*½7&K ÜŒ ùê7Âáµÿm>X"8°½jß6b]xÛ˜XÔ¿ŠòQ¥.l¥Y¶À½$àÌã/*•Ú µíã7ô &€½9¡Óˆ>ϯe¥¬[ÐF:‹bÚÀ½º^óNZˆ/µ=£n6oùÖa§‰°ô À˜=T~¥Œ†BxIÝqMTYœT•iE˜[Òþ”‘¯ÄgÑÆ¾ðxâÜ=ZD  ¼òb“¨Pvz«¾Š<šr¿Ä›~>óÔн‹*˜OU¥“hºo˜>„Ÿ좄e`¼æã•UÑx;šÁ  ˆAŒÂ9›ã?wVp¿ðÎ?ƒ.XòFùìjhÔÊ$¨Žß¯áœ¿ðŠLU¡„ÆÒ‹Â#(~©œ/P»·îÚܿJD©¦Ý;-³ùþÁ`zgha¢¥« |Î%̼Ø'Ffý¹=‚ëilˆrÖ•!ÈTn¿ ¬¨Æ´Q¼ ‡SúãºQ,ŽŠÌyЈrS¯ŒK‰døOggSPF[°ózaCïûi2¼¡PÔGí¯ò¯OàPõP{yÿdãB¼É¯éö‰ž¼³È·7B3V¨˜<¯ó¼€¿ó³\œÍç, + ÕÜ Ê|x:Gí§@A€¼Äy€ ¦5¥ M†X0£²ZའHYˆ ¿ñúÀ1ÌÕÔÝH¿·5p-ˆX»õëù0½JÙù}‰LÞØ ï»7ñÏᬒVЛñÖ½yY¹Ö˜‡Uªt øìưG«è½;¼_^j‰—GøvSÏÚߤIèãÄE¯\нáB%í.»²jçq,¨ £nà—ä=&Œ?¨HÀ<ÕˆýÞStx—¶¢ÿÂ@öǾòY¼É//R2€…©ýEÄéØ!A‘9_‹ +ÖdÖ½$­¬$)À¸KïWø×PË—@š{g>¤€¼òÆ€‹‹‹93¾tª äA\®‡ú ¿õŒª¥‹wcŽ®o¢—ÕdéÛÈ®ò€—Ç»•–w¯{»I1J©×2¶ãì…`—¾w“!ÔDÛùwÙ——™WMס4‰Ä™Õ’  šÿ!…ºV H®àóº3ͣȭ…íf`à˜RÚlepÉÇÍ)‘MgYò½‹L|n@´ûhXv@[¶QT¼ÊjÕ©öUbÈÍ«¦í.ñ,˜¼'×Þ(:¤¼ò©´Ê €Pc ¨´b÷ˆ åo㳼ѹãò~²\{õ•Я hYÕh“’’Úܤ¤¼õÓ£v¤ç“ïOž˜ЬÔuò S¬}à—åDn ¢®ýw»ILXe.­Uí"À}^~s€…êCŸ=ý|ŒþÒÓ@ÿ½"j\ߺ瀅ëÆÖ÷1D@šù¥ñEÜ)6°*ú´˜TÜvâŠý»½e‚œòh=&ºÈ˜:vŒ=xdê½Ü8Õ»~ˇ0W€˜7¢)%C¤yž^XG/W/×5ÈÆÐor…èä„£¯µ‚ØF/—NDTv@…éñ—7ØœãC¼\(ÙÆÊ€…ëÊ$ 0¯.ù»@ªö _sœ™æŽ…Ý…´î{~˜ßºñòæ­Ôdç—ðêS~¡×ú½¶ì*@Ôìî08 =à—í*¾¼‚–5Cv|So»"û·R…ÂÚJ÷q‚Ú—¯vX¥»ªÌP´}——’"JÚZ'š°KTwØð€…ªB¦CèÂßb½+}h3êǹ…ë(âsŒÅÀUÞçª>89Á"¼Ã@ñF—— üÕ”zu3#Ë䮯t~ãÒ2 —’v2˜æ¤o =$ào`Ã,<`ÏÀ—u:FuÍlÿ êÍCV›ðaÆ’ÃPf …ÚÀ7V=c„â“üÁÒÝ2+™GV…º‚{!|X5‹âK֗ݺŽX¤osì°…©íVÝ#«`—:åÿÃõáßÌœpfæš®?~±Ð˜Ç⚸]§ n©!”*ÍDSg¦‡ºô—êÚh£ÛÎdLW™\î&XàΚy”{8Ù(¼ÄÇ e%VRéxô)âêߢ#xÚÙUQU ‘ø…ÌœY’ˆ-NÖOky7[DT‹Èˆ€—pò——¿¦¨Nx k»ü4@…ÌösV†ß`&N´Êà/ûÚ÷‰À˜È3­…µ¡]ݶ’Ä:UÓqMÿ/aY¢|`…¦Ø¢:¼MŠ[›¤ŠfŠ^y®¡v…£yÁ¹_9žÊæ”L Â:ùÅ|Ã)…ëEXŸFM{KxÂŽÍÁñÀÕþñ=î=Ýð—Äó „×·²ìI3`é?º™î<¦…宩ù.§^‹Q‹Wf+x-†»Uq ÑˆÊ …è9.¦®³½ÙRTZMß´ÅÎ2ÒûÌdä…Ö8Ê8Ù‹t+_ô,æ‘õ{6©a=6²›€—øº:û7¼sù‹µ%îèS˜œè4˜ì°Ãj—Í7kÉc—ãiàÑ­Šç_yÁ˜£êY*˜LCW˜¬w]&ŽôOfq„<Ó' tNá¼^ Ì`…ï/?Qö@ùm”ÛVEâИ:¼Rcc%Ÿ2йK\ýºcáö2ØÍ= ˜:g: àkÌòQ]{ý„¼ÉiÍ‹iÑ#‹Ð…ÜNØ3© –º¿ù׎.=tÄÁV¶ v˜`“Ò>îÇâÿ9‹ÌªBQ¼Ô…×Rµ–J¼¥H˜+þ¸Áº=ÏÍß›l%ä…ô©“@úð;Þþ^ÎóI\3€…ëßÔÉ™æ‚FºÉZaððyÁŒ¬˜:%ÄϸT{e‘qoXº 7§7Xðy1´½9‰ÁÅ ’º9ªèUP bÌòàE儽þêó´ú½PGíËŠW´H^œºQLÀ½-5t^¾BÁ ‹'ѳéYתIhGôgâ˜: Å j^ƒÎš£+7è’áÛÒÛ»]¿ö5Ã`˜9máp©ÆÂš Y@…ÓÛ$›R\à˜9Í´ßÁ`ÅgNŒš¨ÍÝé®x×FÉ…éOõ1wtHõÔJcr„¼L9§OW2u¿û-bt+«'Ï9-uôP„÷^C i$–íŠ#3´¿ùˆ9¢|’tÞnƒtt2îšþTþ O(3ÐB€¼ÙBƒž¶Œê©h/Ç)qJ!‹³@Džî2É­T0@—˜!nSaá/ÅíÒFa.?ä`óxÝi[¤¼÷hƒ‘€Ëµ€Z“Zdî©çJ5‘é_î'Ž1j.‡0¿öâ/k™ïŠ©%@ Øu6à¥÷‡t»äpÒ ¥Y/¿ûß’„ãÒPÄ©œžUuh(ùÍÏfÚ=%ë@½?ÅŽK±ïuµeýãûÆùÐÃÃêé(¿öÛ¨Oÿ…¤ìI˜Ý~YXYqŒ¤¥ñÛ’µÈ¿ùšk*Æ¿…ÚÕÄæ0ÊS”GƒaöUújRÖìJ¸½ðÈtE´ðÉ+S¼ ¡Þ c»ýcU¿öÊw’£õžw\5¯ý`Eð÷¡jUb™U«ã¿öÑ+M“ÉÈ«‡1l­lík^Ó$³ êyjOÉ;“`˜B~N#;¡˜d>諘è„+l_œ˜9¡Ô`“»µ×[h’àF[a¬!:uĘ: á}³Á;è#:¿ƒžQÅ5c@…èÏ‹p{¸ÿ_\©¹ì0|¤Ÿ¨Íc …àaœF,ðx1¤ð?ê™È¦ë:…Ü+Íx+'¨!7}²yh—{PdÀ…Öº,æëZ“Yâ\hzŠÄµô;u²"Ð…ú!.âN¨r}­ªŠ§Ž *õ*ŒÐ…ÍÃGÂp€Ô¹ ñ]+û®™ž —ñi»‡¹‚=¥RlÈß+\pý:@—ðùi»Ïù:T=!·“sA@TCÑ—ñã!Ÿ 2x[§…ëoàÖñ-0˜A Iµ'(““Mwæw_ïÇñµ€¯Ð…ÞÐ/:ݱ.”þ®ÛU VÉä­ƒno…ÅÿáXÍC}€q•¯¬Õ›¡±µTªþ½7&Í,à8Å<{ŽÚ£ì Nj~Y"%ÞYGŽê=NΖ¯70,Hn 9¯zï?­ËfJ‡)T‿ó9¶­1uFÙ‚ÆJÿ?s?é¥ßÏz»ØWU-½R*úc?”~Ýðε&œ7@æ”cT¼Âož¸ØŸìpê1ÏÆ¬²ÂI­¸SvŽÒà¼ZÁ ŸÁªn²4¸7xf×áÉÎ¥R© ¡$—‰Ûð¼uDÛ;£o”·}GÌÛzgÙ<Óïj”,m耼q8®‹~(˜ŒYO¶‚ æÏÿ üSU™ž'TpOggS€‚H[°ózdΰ_å2#!!¿î'Ù‘ Ye6 V8+rj#E¡G‚.ÙÅpü=,ÄB,¼ÒÀÎEsÜÞÑã¿¡Õ©åµ±Uš¦ˆW¸±‹w0½J¡&‰]ƒ€ˆ¼éÕnCaŸø¤ôãŸî‡#¼æÉ­Ä”΃#xi„¯s_\TO/ÒM2õû•à¼xèU6—ß…U‹¹ýgƒ"ñÀöªv•1÷ßïtöÚ\¿íþN„´@Ìè–íÎ0ýy̽pî¼¼xèUD"Ö²ö±7 >aXã׃iõ‰$n– À¿î—¹NMÔÒú+,¥Ðñ"eÔÙi÷[Å4ûpV¿ñ>ųô”Ò*Ëõì" ›õ%Ä”saÛá) @ÎÀ½H1àZy„Nv6*,B÷ ΙiÅü-€½œ!Å=,i¨Çœ¸q6¾{ó3Š@Èj€¼òP}éuäîÖìk^%øÒl¥ƒ®ñ ü¬l¿÷³MÞRw1Ò$#ùyJŒ›ªÎB^…²ÑéÃËñ¿ôŸï௞á õ›œóÍ&oÉÃÄ5s+¿óÇø<µDTÿ°° oË}l pó!^øÃß“œR@¿ö渼í›pí+d5Ç$üƒœÌÇ jú4Œ¿ü껀‘Èi¼°Õ}ˆ­yãìWi?â¹uHíNS[À½„Ê2139  iMEëXåîÖù+Ÿ&¼È×ëè­W^7ÔÞÆÊ> !1–ÖšåߟtXпóo+.~ÖŸü‰ƒXÔóÂR|©ÈVÂð¿ó‡/×Ìç$k‡'½ïo¿Û÷ÜóÊö`¿ð½AäƒM‹TWÀ \ÃlO|Û¡Øà¿ðC*¡×X›:álo°<ójÝméŠêw øÑƒ±à½mè9uÞx 6TžûZÙ?–‚n °"ƒg½õFp€Éã ÏźtÐÎbüĸU:Ï ¼ò"B­'/{kô Sk‰Š,‹ø‚éðÀ¼ÇÓv±–nŠ2ŸäŒ;µNœæÍŸÕ ©…ÂØÐ@‚´ÅÌã”w9ø§íVy€—ÂÀ£©«œÚð{Üè™»÷ú…È<¾U U™|†¯#þ1²§VP…І¯VSªlž=³‡Î%üã@—Ó@­®Q8ø”[o­iþ?^Ÿ…sJ} …ÏZ~çøøåU)ŽŸÆºRüÎ 4P—ÄwÓ”C–wæe0#æ·{À횀…ÓTÛ"Ïv[ÜãÓêjCÔ hÁΈ…ýÙÕÒxZä%: ñ¹ÿ€¾w›."˜8cYáâÍð8,¯™}—ÉG˜˜‡&˜»ÈŠ"+ÐäS@…:)¥Ø½-÷j:bTßO4M¿€o|¨•¢Vã^4¤wyp½7 DI vÕÔ®íEâ>x熆!FàT–ð@½8yim2õþ2vkŒPXUÏÅ7U®×RqÀ˜9vì3Uÿ:m”:Okƒ¹.˜'Å2ÛÔ¶`˜FE8ù´‰çÎ=•A„ùó–yZÞ*Lx)h…îÌ›^å?›53G°À¥²£€½ëš„³X–¢4qÖŒ£ rL¿ø¼Oâ.‡’œ½ÎÎÈú—QŸº«ã¤Á§…°ÄèêÂ/á0½öÒG{K8ŝЛuô6èz³BŽù³Q€½ÇöA®\ÉYÖãe™º {MÕW%œ±fOggS>I[°ózeÒ’9Þ2 "!!½5}=S èä‰ #tÑUDNΪ~á½J©š… z¼…¼.ÎK½mB÷b®Üì‚p3QP€½8aBnóHôÄÿGˆZÄ®ZsÊšPÁ¤­P¼¿Å ftìÀš¢Þ]iefpê6Nãðk1²™Jcæ‘.±@¿óšiƒå²!)4N&1`2þ,FŽ ¦D—¤+S‚ €Ò•Ô×dªðÆV ÔÛWÉiv —øñ™»¿‹Sæ³ËôÍט䎥º'`¼êUI¯.¢l*öÛKW7ÅÒ­œv2¬,cÀ½v—k?8»gßõ LóÚ@µD`ˆô½ËáΊI¡ìO(IN… _ÈØt§€½$÷ S—™¨äµÚò+…Bl ø‹„i¯`°½8y\ù›~ñÅÔ÷ø‚ú‹•(>úî“x½x©˜ý܃išs ²z˜Í"ZNtµ[>ò ¹Ø½+™ žZÑvõTSþ[H•ËÙ‘bj;ÚÎÆ":áµ×?©Ï\u”Dh8Íî7åù€…÷K5¹u­Ê¼-þ꼕ì{4ª½?¿_F=gÏűVs·Érri{^(—ç²Â±5PÙÄßsbjçºÔ&ö1ñÀ¼Ïƒ+<*î?¦û¿«¤T}ÔÊH¡þ.-Æ +€½F-zŽ\Pï…hV,‡æÙÜè2Jâˆ@½9ƒR6 b8Pè¥ü{4ãK]‚Of`½¯Xvñ}ÄU}fÙxZJ0¿B6씼Ä. wžù0#nØ8Ö¼£̼hšÝæìËwIo̓zÁ¸ö .A í©¼¢Òš,ÖŸ:P>7+Çæ•,53‹Æ‘Iðâöø¿ñ<"”ׄVEàb(c8Bhi¿8ðÛ1¹Ã½:³å6$o_(ùâúñ:½‡'P›™·áé2â½6ïOj{ÔÒïÙôhšH_ZÌ,îi°ç£´¼ò0n'€¬T[ÆÙ«5à˜Î>)Ž:çšçF¼îD~˜Uy7¶í[ôÄcƒ,e7\­7ƼÎ=ó%ʼn¢šU‹ç3)ìÑÔG§p W¨òlš@¼èÑ'Öš '²²|îÕ0¤»%A¨1Ü¿öç-îû¤3NM²5·^hà…ý“'ïeÿ\ô·è;‚•Á k´˜8“L*´’$üûxññ‹"ø…â2­~µÈ™.¥¡R‡s‰ ÖÉ•@˜:)¤,ïHA{4ñÙUÄí2€˜9,Æ‘²¬Ô‰5­…ˆk£5/a˜púc„àáˆî0דµ{ûàé…1…ßÞ§ÃXÚcX½Ú3+Yv`OggS€ùI[°ózffc›,2!  !˜:¹M"Só"rBa´®œ?fú[Ci±Q ½–„L_-|QÐ5 én.þxÞT¼íçû\42ïW%oLY~’ÓîæQ…¥iH–€¼Ç2P€Ðú×?Ôøÿ`EªÇÌ~d†¼£=+¬o´;úÆ€âÒ<ÖƒXn€¼\gÎt}ºü‡w—tCKiÛ®hc^*•’(£¾ ¼¥Ó¥;rÛ_XëO éMÌî=dBŸÉ=%†â?Ñ…÷!Üú˜\ï¹za¨~õv¶˜øÔ¹îA 0ÅñŵÄÄ!ц /¼¢7Ô¿ªÕ9Í}¥ç4ŒÇÊÂÚNzè¼m.wX: J¯ÐE®ã¡ºvÄq»Á0~”"¼…®ê7»ƒùÇÙxmÿD[ 9sdóÃ@…ê;G’€¿ô´Mb‘˾el€*äºïˆók_›½ï½ë{îø…áÝÅ h ÕéΪ¹ev…”Ò¾À…ô¬=*¨[éÎÕ­Ê; „«´˜úÞý¢4Ó+JœŠ›löm9`…äZÄû‰.&>r¶à ¥GiÊ…ß z•F59»•îR·Þ°&…ݶw•vô=<=Èß&šȉURusÜ…ÏŠï*¾ìZÚ2)dõ” ~îT¯—Ì~wû»[,0ؼ0aÐ›á¦øï™Ì3È:˜;¦ìivSÇ\Z â]T2×Ç™®71õÁWNTp½9ƒ§çÜK¹%5È«†ô¡gߊÕŠ4Ïîp¼ò'Ó©!µQ{¥@îãJÀ\Ò¡Õ£›œ¿1dà¿öÌø.ŸU ¾Urµ®åΊڬ6éUÊŒn´½†yA6ªÍõ®VkAw²®[< 0¼È£wõZíÎŒ9–Ÿ Àᆻœàç ‰`¿ôIÏ¥“ E/œ—µW*9~jcõ•k uðà¿ýŽÊq39™ÎJTãÚ4m%Ý)úi«@†À½8*í% «‡Ž7àti˜!b:b†ÑX¼èïlåc»ˆ ä*||n¨ ŸŠTü“Ý÷W༞‰è0p›Ÿ¥¡ÎåÂã§SëCW5;÷ÃÈz:¼yZ‹wëÉ„¤@<1ÉÿÆ^bû§LðaÛÙ« Ä¿îE+ŒùI®bŽÕ ”Ô^ÝJFËxz=°ƒ—Ùj¿îhI«k‘+Ž®ß Z­Q ʤ©^Ðå o9” …ôGÄຸ\¹†Ý×ßò€½ж1.aŽø ²Et_€qÚf]À7ø—ëèÀ¼íÚøfÁ›àW#þ~nÖÅY^ÔyçèÈ'ר¼òc-`r‘£¸"¸¨ú*˜âFð¼ñ m/ ª4YÞü.3ÌAéϲŽè\‘‹Ì¼É¬†FARƬÿ6@kÒ°|…:æyöª3Áõà¼óMaæ×s× Øg–±³ õ³€ÇlÕÝjâ18½­:G(D£àÛ0[eÂ6+ÜQè†VÏ{óCɽˆ,þÈÞ"™]]IŽ”Hr” •D®VlÏ쬴½Õc`+ßÚLöÞ<ªÌ~~_-'šweñp¼¾”ðaÍÔ6 «Éá"‹â~Ï!¼š—aÐÝýÄM4w~N(d‡'Êø—|N¡íZ¤PÖß°kneõ%Ouvâ=•‹€˜!oãé>Àúæü XòUC£®%Ô+Ó†…ý!Ø0~lp|‡Ü¬¦‘MLOggSµJ[°ózgˆáb¥2!  !" ˜AÁcvRT¬Ñ«¦Ž¥ùÁaF+°N¼ö=@\¶cÜ£3¡½÷ÍÊ|2V×xï*µË9A`Û@½ÿAŽ3룲æ[DÒ?óz‰Ã–ãT½ϨéÿIÂ`q>ã¤ì÷c` 4ÑNR`½*Ù\_ Ê⛬Tʹq½wÚ  GhˆPR¹<@¿ùÔ7ºÆÄÝâÏðLH)´Ièʯ§R@äà½:¯d¶Ãã`[g(ü4:r-%º`gCðÙ™`¥ê½BBDŒž7µ? SÆ ,«ác1lcà¿ù9Ÿl\“ÖCð6|ú5HÆ,f‡Ô T¼÷ìü¤Å·9=—”]¨¬—¤,{I k^ÙÀ½•Ò<ï~‘Cìe˃,æ Ñ–¹÷w" œ¼ñ¿Õ+kãë´,ß AHܗز~@üCh¼ÏMÙ š_hŒCÊÁt†Am A-Ó³‘€×¿{NV"Ù q®lÖ¦´¹&¯¯z”¿÷܆yÖsîX'ÄR;DC>‚Ù4ÖZƒ1õD…ý Q.DÃeú Rýà“=ím(CG0…ësIGH,uÿLý~ŽÞHÑÜy ˜:+—²OTÝyH¤ýyyή@½5ã&¼¢I‹OñgmÞ #ÏrŒöñÞ¹½Hé¿_š‰§9¼ª'òù&=X(3|§±²<½QŠQ–—TÞš¶³m 'û?âôóýY˜:BM€=æBG7)R¯ÂÕb²‰ZúV^˜[éïªt(‚~ „̇Œõå¦F±LX1w ˜74R òÑÂkF9ïš ÷`}Ò€˜UÚåsŸ¶Ò%ò.‚êjv`tP7=@¼Äï°žðsE5»¯æÞ]½1`Å·®6¨ –a`¼¨v*q†}øet÷kÉ„"§vK_òùg8¥Ë‡@¼îoðO=Ÿ:a ”Zý©=î‡ñãC['^ƒ‚é…ì¼Èã_\Q›áûn^Z%Ùdw Ž”·ê[v¼É-FÞƒ ÿÍDÿ1Í ½C]c ò€¼É¬lzq÷ÑÒßP³ ¼ÁþµàQ/¯€¼Èâ^%ùVÁ0ìW-¹±!õ©0;?Œý®¿ó…8y·9ìUDèDÎÎ]Áà¥Î½¿+sý¬¿ñhâæ Ô«¥?–Š ~¿Ïü¿6Çz~1P¿ó™âyƦ„veòžÌ·÷Ož÷¬„û·]¤–ð —ô‡ï_#I×À²ÊÁB—ù}³µ@…îdz.Òk—}ÉÞÄ‹µ¨B™@ý`@½7I”¼èP×|=_ÉKQAgË=‚ò!Î>pŽa€½p2;Íøf©ÔôIK¹ôš)‡ÃŬÒB!=€…ä~.uÀM€{ZR¥¡1¯ÓD…ßò¼»ýMnÃÜɼoˆ¬'N@˜ýÂ… ’Êqêʘ ho©ëF8IÆ€…Û™åxguLŸ³Üp½E]À¯Á™ü˜9'ô=/ÎËÌ95´½¯A'n ˜|¾ž&Ye ÂV0ðê)©°€OggS€pK[°ózhlÊí»2 " " !¼¾N]3@uð{iÀòìá‰Ä”µ£bF@¼©!* ñ6¯:)O‡ëøO›æqH?§óÎèž ¥EUÆQÉP„E ?«ª¤˜ •òhI㹃+{ìKQ…¶DIÂt D«ÁoÀDoC|hÅ/ 8…úŸš^Ãò ãV®¹ë¼çxîþp_: '…ÛxËý´oæ‰2™í=ûÚmÒÖ…Åšè0ñ2PÚFRºJŠfþ.Þߦ|VÀ…ÅÑ£2ÇÙºT³»†[k#cÆZ¹ M€…Ò^ù%JÎÖùÚï•ÞE2Èm—ðµ·:†aFEP½JjX‰‹<«óÀ›†šÐ€—÷¶ÒXOœÝ'S°ëÊ3#Êrü—×=𙫊ZùsžÚÝ€2ݺա,ó.´…êHþ'ºÝÙfYÞ|¾ˆ5›L>ä¬å…ì4ÉñQO† ¾BÖÈ9)‹ø…總9!<é/-ø?x–$¥eXýøÊ¯À½ŸAH»]Q`š Dx«Z»Vy[óÙï³%ðñïÞ¼ôÈÂ;~ðm1®”¢×3ȘæÞÃÒ·gCæšú¿óúU\BüÜqSyÆÔ#‚äýZ†dÝF¢,ÔûŽ…ð‚TÖ”øî®HÒ@–¤RU P—鸅»çVFé5EP f²É§ÕÔ†@ÿr€…¹Ñµo§³ÇëhÚS ór­sj 0åI€…Â!Žúo Ønüd”uDQL~Qcà——’ã˽‚” ™¢Ç—P²3±7žäf}¡ü°…ÂgÝ„YbÔ+»û (ËŸWÔïD?!¨¥T°—mƒ¯'Ly’å¹\b|,`öe@/{ã'¤d…ílQöJ܈·&IsÖ3hÊV·îÛç½ ž!DÈ3£ñ§´#¡½¯øË äô&ž™%‚±‹H°àž¼…ûÙ[Fù ê’›’Dp²ÃâXŒ.ìÁ0¿îKØÅÉÀ[­D–ºÞДhe†ú Ê”vý¸˜¿íZý¾OÆÛbr7þHPŸbÌÖ¯ëqO0ïÔZ…§ˆt®>’K›Z‹t¨ë«Rõ?••V—o:·³çÞúž_YE¦Š b¢Oï䄤T-Š@…ßò¹–îM3•£ðªSË5åsDœg…ÕëEãe«ízÄäå°£nÜt¢[n…ĉ÷ŠÜÚO“‘(|æýã¬×/̇ÖÍ€…ÇéFZ‚œ6 PïíÒÓo`Xr¯ÂÉÑ] ~ —Åc_K±º·iN¨q ®%ç ¯OöïÈQ~—Èd€¯#ö¿ÝO+äSz$ŒCpÃ%üo—º :x›Dž·ÿâ^S@Dc*Kp¾ÞÓ(…ój“IQýç¾Ø¶3ewlFõd¼þxûS—’÷·öôÖØj@ÝÙ#°1(ŽÒù¦€?¥¡ÌFö”À“sy.à YàŸàu©£™ZÈX”ŠR݇?\?žTzœ¢[76} ó:XßC€?ž Tåý[ɬ0rÑzƲ•¼[uûs9¦U(å7}BÊNh/_–€ÎöRÈš~½·>i´ùÔÑZ¹éPÊJ$q€¦°* ž…m Þ\H¼æÑ*'U.£JÚª±[+“ ¡x¤ôÚBo%öFÀ¼žã¹¡Ç|mHF˜c[¡u•PÎ:ýPÔzó¿6ƒOggS,L[°ózi4ùâ@2"!" " —–=ÐÌ©òk®œTè´Ú•È`——‘œÒ‹‹ñ6Æ"é’Ž$ãÇÉIVC…¿Ã¯=YSÜÍ72œ3Æ­·ö˜®¼å…´ÊŒh'ó?ˆ«"‰ËÞÔü½è…Ѻ ÌÔÆÞª¡l5(]ð'`R^ŒNª¾@—î\žoöð«,aWhüÔry0"9m‘Í—Ãp›åÙF­Á’«ê:žÝ5óò‹T`—Åc1?oæÍ›Â›KŽ£9y=¤ŒÈ—ÅlÍL*Ǧ ÑÖ3ëÛ —3¯èúäØJ€…Çön'k/»C¤$6^Ö¾TízÀòCû›(˜fuøzÑQ B¬¾;kn´½Ñb¸Êq…ö‚JW‰ù½UâÝy¡±å…|ÙCN7à˜@]ù;rCÝÑ2©®„Ôñ Fµ€½ØV+H@ª'Û˜tú†³6‹®bðŒhvXæö¼ë¼ûJü·ß±ØÌ„U[éñ‹“CþŽ»¾e½Žý!(Œeóî ½!ry*á Ï_DP¦·ÀPäD °ÿãµ6à½9l*ú/*@­á obÃ?Œ+²#Tƒà¿÷{§Ù¦?žíÚŠn˜Ê`  OÂà}]"Ç €¿ù(1Mµ¹p‚Ù/º~qJè'|~èw¼Ë)PèŒ:ÿ‹ÜQuµ²´Zý Õ«Õ6"òÕY“RÜØ¼¿‡¥R¥(õêD<„|ïò=uîü2e„‡\°âÿ#¼®°ù‚²b”l÷«ÖÚƒ3Ê÷YßÌÇÐ…óŽ7Í×Ñó8a/°­¤‘á¢ÉH…ß[“¨£mâ1ÿ6{Ÿ5_ï^˜[ù€ÈeœBîEatÊ:ðò…â0Ù"sSæÏì2ógQÕLR ¶;}€½9mU‰Þrl˜˜S‚ çŒfé¯ès€½9AH ±öt ÕD<„Ÿt+ ŒRXjæVÝŰ½¾GFY‘u·Ç ½’&4€Œôÿ2à÷n«±òÍ…êƒXî:XMÄÞØ¿ù¨í>,óä˜Ä|¡6ˆb¼?ñ·öw%'Pë–’P…ß_º.ÿDh"lã°t¹¾hÕÉ-ƒ: ˜ð§ )¥uÂ݉ü%¦rK©zA“HVF—ïê)£¿‰’J@^ZsìñΈ €…Ñü¦b—Ûûm€ØäV†ƒot%Ý`rX¼æã°BáµT$ž>ÉO¥Á9˜ê—â­¡„í¼õÆ ] ƒ G;\zÙÒ7K¯zÞç ê—¼åØFî,®”•c¹ÂOûò¾‘LX²"X»êAu½” €¼§ÿ©Ð£çÇQlK…èCM¥3ò¦LÒJ¨†‹?†¼ÈÄê,IŒ"ÇÌ$ÿ×O¢"¿è޵¢À´ ÐOggS€çL[°ózjü'º2 ¼ò&`_éÑÑ52]jÑ-à+k/ò¶ÞÑY€¼Ë(ütsF.¯–•ÐvÚȘ¬ßu~lq"¼Ç1ð‹ÝX¢b{øüRNƒÎ¿Sü²4Ô‚1³(E½ì½<[®fd£ÄàÃæÞÅÌû“Œêp^(ܽA±×-n²ÆNSÆL󎱰„Ésb°À½8rx¾l]¸-gÍKkÒsNš3Ç¢ibá ÿ™¼À½jâ7xÏ­àœDß(ÒÍ OtDw ×éÖ¼ò7ô W§8¹›k?Öôý+MCÉI¼èC)ÖßÌVZÀŠªmÂxWØwg%{“ƒ¼ØY@¥~L•ÏÖÀ¤Ä¸?Q$t£ù/Sè“°4‹½§_…Ù‡Lf´¢HªKBä#P@ ¼8½9šª+Éç…ò&›jaf+”Ðã<¿ù:Rn\÷©5øu“!‡wˆ/w«7Q½Æ‚h[e£?¶b̃Gb¦¾E1I; $[°@½hý鼤EÒäÆEËK¼èÛN7´Þ_ow€½qž_C.À…HÎoq¥«5£Ò¦ìŠØèÛZ¤¼òdú¸ç -n#NDpmô¢'í÷‹6´ÀçÓJµÐ…ð—&£{ðsã y¿W¬Pµ#~Y@˜9ø©õ i(vËWxg¨û¤vÖ¨½7,w<ñèK!¸¦ƒ´à\e²xbøöý<[ ½T7!dù4]SŒÜÿ¬Â~IêªE¡Û|[À½9o&AÅDÌŽ½ÆßûªHÃ6A?çn4 ½8qÐûCSüwcÂ.J‘‚«4烿ùœó!y¦‘ˆ5bZ©×¢ñ¹•^‹ƒ÷Ž4ňѽ7&kYm`fñí:¥¹¦ u…ré×Ö‚ ½9‡·¿?ðíÖØu:ß-HÑg¥—){0½h J‰Dnß&íW\™ÕMr²ÀR å@¼ò4òÖM‹o÷‰ßÚr¨v1aZ&™{ŠÎ‹à¼ôá5Yà {ïq@´j>ƒèQÕ®‰Jxã#¸¼çîóYF¸è¼xm¦õ¨ÄHÌ„{%>— ;¼ÄD‰lßÐü(âðn$%ìÒÚ¡sÚ…æ+ ß z LTïÓÕçË–½úûð…ݶWfÿÕÙ ;Uȸlò”²6,°…¿H1´i„~@š¾ßÀŠþ2t¾…³Í­3EeƈH¦¾È/ߪÆ…¦cªÅ)N†F¯Jk1«<¯@¶—{cµ8"Ñ9 šÓá‚€?¬›¡nŒhñ½ÖõµV J‹…åÃ&ÒYó"5Ö´Û K(ɳsÌʶ²L…ë$‚-cv´/D˜ˆ<æ3ò'_¯ë÷À¼uB{­¢8Æ,Ó5/E „,㮃üqìù€À¼k ‰ºœ:®Dk ã'4³¤M4 ýiÁhÈ·1À—|AÒFVBž ¤*zXX3ÔÕ;uÓëIV—Èß?š®ÉËV¥ü¨…± ow§@ ÛË·p—ø$¨àÛ6²t1Aƒ{+ÓR¡–ß›Œ…ä1uÓ»QW¶¬/ݰ’‹ÎzÕ5]+€˜9|)5Ã|ÐÄ'ÀÅžA‹íÜñ…6€˜9—\ö©&Ì¢Ùˆ’òªp;dïИ µ¤v•¢K{£ÑÙÇ‘quÁÞ…ÓôÝÄñþœ|¢ò0Ìb|£XŽˆ›;Ž%OOggS£M[°ózkYjÂ2   ¼ò\cÙúÙ›™Mú,èÙ?A eùêXuõÄþ`¼èd¼{G¡ÇŸÜBÉ>l£ÙBOc}N@q'€…êXÈçà¸L» Án¨Â3OŽu‰À˜7;KÝ›l5¦J*@¨É%Nj÷S¼žâNŠŸ¦„hTk½urÙ£1dÌÂÿ¾€¼zïg'Q¿¿£ë´Y÷Fp™ËGÀ¼úú™+RûxOšÉäH¥3?[ ¼uBOÒ¸ Ó ²ÆJˆ19@:[0€¼NP[Ë5 e´3þ·VÈœã¶l µ6¼³¬ù¤Vߺ|e`äRᇠĞq ½Ä¡îåe|Fद®Åÿþ™uÌ­T: D¼ÈÃ9¢åqiÅAêGeç»Ídsݦñ‹$¼•Æ'Ä7Õ1RI(W s“—é‹g«Œž ¶ë¼uB'¥²| )ÞMò÷ ±¿œWÇÝ¢Á¾€…ÈúµæÃÿ¾&÷R'¾ÂEÑcROïéÀ˜„#J®—~SõÅ”õõÒ:gÞSõÌ@…å-ɧGcdƒB¯å#½z_¶€˜K·Lý(zCuëý8bà¥Í´ "@…îÑÎõ>¡ÅÌ‘ŸlGL!~‰ J¢À˜BrßMa_ªhÄê|‹¤6¦ t†§ ˜9ÃWx8±ì %îãëv·…Ôôèî˜7;4&´—_ØQ4Ïß*‰ WÁš"Ý…ß‹¢{(ðÏ*ìL+ßlµ¤úÝÀ…í˜q 4…ÔPû抑°‘4²J¾O}M˜A£ —AW èÛ—]â°€Dà<(‚€˜ ½Öb ) ¢¶ËT ž*&ؽ4çø˜9¹Ÿ¸ “mAX0 Ê 1N7Bõ÷Ð`˜9¶2ð¿5]šq`Ÿ›êpàsX³ÿ.½9põ¯ŠS±|Õ l‹·jÝTN%ÊÏ1¤vEa„+½:f©\ž¤2©´=ϺÓþ§IÜ=lmžWx@½8zŸÞúRX”ùZ½d6’â´?ðï%´IÙ±½9i±pêÐt9Ò[-×È!ÇÖ ÖJÈ¡t¬ ˜9Ö]Ž sÛâïë <'àrǬý$(˜6“MñàNÔê‡ó¶çÒrn~F退—ÿ0…ÃÈ$v'8’Òâ÷®5ÐAD=À—ðE¶ #ˆnƒóü +¹.'‘Ú„^Ÿ—ê¼éfL6žXvˆG£eÔ½§Þ¾ÕÑex…×—é6èÄo¤(¹*œÀQs»›\Ù á0…ñϧeØÎÑTÊ‚Oó}¼D‹ap˜LEçóGÙhS–]ÐèŒÕ×?¶l˜K‡C?³XÒJ©tT£äD%,$àØU@˜8€YƒÖN©Ì`tx¶kŠ×+¢˜V-«‰Q¨J2-ì¥Ç£Ó<«Âóo»ð——˜úÚüšƒÃ…-ß&÷›N¿Ù‡…Øé¤}Š­•ϰÃ&ŒV¬„;kîÑp˜@W˜<Ý;G@¯ËaòÑ^¬xt(˜üà¢(S^“‘Æ£\¸?ÅO½à¼è ÞTk"S /]d”éjYk6$#2«èeÔò®üT¼Ú·…’{õqƒv«òäøíÜŽAI99þiáW¼òvŸt†ýÌÞF7 ,6ê* jÎϳÓÒé`ä€OggS€^N[°ózl…)ºÃ2#!  ¼÷åü0u•-2Á5·Òé tž¹r •ì ù†˜=§^!:ûâZë²W—áRûÞÁHÛNT÷LÀ˜ ÃÌëó•i?w¡HÝIƒ…|;@€—·âk'Þó­´ÿ›ÙÒÌ˲——“S€8à#­“÷ÿ™æ"¢ŠÎxuÁÉÙ;´F^çõAw’ÙBo½“€uÈùûØ#Öpû“wðÆš¸Ñà?§Ôr«D>jn¦š¹•œäá1÷°?¥e‡a¡]fË2Iƒè,—n)Ï»Š9Âd·©“Cé~ˆÉz'Hu½)OD«­ ¼ôâzij³.à—kœPž0h GÏi¹—èàyŸ…¦_zoº>E»õ¢~„[%Ü{@—{³c <øèo#Ùo»˜—n¾sMlð- #Óšt)÷Ut¸½ºk…×<çû4¢;vVãE ò yó]; æ…ì ¬2rÐxÖ§hAÛ­¾)½”úK½…éz³uÈ‹àx¸|ë°¥J)ã[ £P…Óߨ…Æ™,¾c ÚÑ%ÓÈJGC¨˜p…ÒO ckÞ?N ¹GhèÇS ÑjÑÒ8p—ó f̨|][#þ* ¢êXžå%—ó'—¥ilÆ.Iæ·\—÷Û\]–(ÿQ…Ö0X\ÂQ=Dš kœI(‡‹á ˜ˆ3ô¾òîít&©|~}ÍpŽŠ½¾ —ðîÚRž÷eÁ¯„ “­±¾—êáYò-è¯r˜ÛÉòoI€+Ó€\ÙÄŠ€¼zú÷ï)Pçl­÷L ½ážÒgãâ¨,_@•j w>¼{\2Û]±y¤#ê3ï6m„×õÛ¨yf9À¼¤(ðó3¯ :lÒ\‹ÔRuòÚÝ‹LH¼ÝñõÕ—i?»=&bÒü[§jXg÷žûNÓ°­’„½6çÆ¡Ì¨ÙÈô‰?Ìx¯ºÎi¹ªc[v¼ÎF.ü§"äûˆÎ°ÍÑ árE_ý°:„áܼíÒÞ -kTWeµj5*Í"‹ ²LÇJñpÀ…Ö‚4¨O$ ¿µÇOÕ,w ,¹·Ñ>šÅˆ@…èméu˜+ÂzDXËwSf·¦ÏƒD˜DåBÔ&ð!aÞ„ÌûYb„zEû¾Ø@…à®1 ¨ÏÄ›‚ñlý)¸ÀÀ˜BóÒÞCÁîh#£ 2@V5²]l˜@/¡¥“ꆗéð‘‘ÍU ³¤†äè˜ýleH ž¾Ê$ ¡úÓs-ÄMÊ@…Ûú¨´ãóbßÈw¯’w_Y¹×ò‚˜@-¥©— s‡.¨‡4v…ŽF/L‘\à¼ÈŽ×i âxY›b1“}nžo1ŠÊÌÓÀ¿õ¡Ì0…T¹&LaÊ}€ }½:8f½6p-mõÑÉø]§r®MµõÒí¬¸Â{í-Óº¼¡ÆÀp¢•[ÒA²×¿ ÄPév–«Ù’g󼟋žãäß´=‡Ô•˜‡{Œºü‘‡9ˆ=–Í8¼¡=Ñô©§F‚[îvˆXc'ÜhÇÅ6$n|£tA¼¥g~¦çßµë °2OK*~¥cw†óµTØðð˜¼Ç.Y°iÙ²}{Ór\CÉîí—‚ÆߨrOggSO[°ózm©ÔÁ2¿ò#KõN)— *Ž8J[j¡Ù§5UAw,-$¬C½6ì4Që(ÔÍψBÖÛ»wò³Èò¡¸¼Ä0䊄¬WôX§¡PÎÒ,èªëÍ{N¼Ÿ!æHk•¸N5ýú{$º\ê¡ÁvãŽÎ`¼¾Jô›ä  zê2f¹U¹Æ™Åÿ̾ôÀL-J¼š‘#UÖuÉîÒŒtÈùƒkcôÀ_ð¼†r‹“sêÖd’+ºîYu_±Â 9‘¾“À…»ð¿wF×<`áV¢tå%¡˜õÞT&ëÛƒº»Æ7|IÁÎ…/P…à;vž°5eÙÍ’Õíˆø?)Ã4ŠÑ ¼çú?=³d8ŠëÂ,|½†™»ý5 nò6Ýy¤ºá §(&1zN¸f¿ó‚†Œ˜|Ñ´èEÄGšÿ’5¼È(|²· ¼®¨ªæõ*C"öv2ÑñW×7§Í¯¿óšLä/E•nó´õ&ìÿx#¬¡ùRT¼²gÍŒ’Æí*ª³ü Q¨€Û!`p½?Ç% å^Òžø=‚?©^ ÁÒ°uB)¢¼Ñ³:8ùƒwa2»a}ÃZÐòmÀê~‚g€¼íÐç\®ÒiBˆiÛÅö³·p·{òUÉÜ©@¼§Õ•ï›f…ßC!Wοo2pÿ)ã‘’—ËÓœò{+ؘ«Í¥V·`Ÿ½)¦Æ#¨ì—Òaa%~É]Ùϱ<üÍäšá …ÈIèÛUñ‚RGñ˜iK*[;kouhšq|îf\×Á€˜" Ôlïã©ó.JÈ1[…ÛšEJ>é§ÕgK}ðƒ5ƒ¯–ç}4…Є£1Œ©8,jª4ÚÉšña"@…Äz)ß?©ŠÜt¼m¦'Æ$D1—ñViRÒƒ™ýE&ñBç䞥2<@…×ÇjÉ_žû¥aæç…úäkÑû¤¸7ùVVȘRy<Ë¡·•ŠŠ¼âç4ådÀQ£ux˜9°EÂçùäÁz5¤f9KmÁŸe«¨½6ˆšö›  ’&È?%dÆGy”Ü2ºrˆ½å"cŒƒ†eåSFpÞÁ1ÍŽÜÙnzÁ—'k?ô½K7üuhO Cñe>¹†í”pbçŸKÉñJ8¨¼÷æ#Qþûû)­7 5sKU캥bm:È@¿ù;Š<;Œ…Läf«fPÃÁÄE.÷ù³#s ½ km7Ê6dn¦·Ïn½ÑÀê]‹°Za`½/¶§?ùjDÜþrŽj¸äg¡Œ½eë©ÁËOý=n||—ƒY­x{O·äšð¼òyÒr!á Ž²S¶¶¹ ò®¼ò8Ë),/­B[\egó+[‡Å ?5¸r~à¼ñfe‰ øv”ìk%»K†#Iþe+ñˆ±\…É퓌;U\þpÆÃ4jÿ3 îS(@OggS€ÕO[°ózn%$C½2…ݪƯzÖö“ð%šÓ“5®…Ѩž¿åA΂Ñ-@ÒíÆoý9 —åhy˜øÎ‰ú¾ÚQj«Ú£a!/Ó …ÐÞ·¤ ”‹ë €'”=g5ÈÔŽÛÇN—ïÄZ°s̳)C|ñdž¶ ÅŒP—ñÔEûÎ&9ŠÖ0{ë²€—vv…×ZÝÚýÀFic ½8X5%{ËöN–0…î#$ˆxñ­fl—Άó&Y¨—ðµÊBÐD.€yËB*r›%´õއʈ—ï€%ѳB\ä{“¡~r¯ñ‰KËÆÿ…€…à)¶ÿ$2ǰNçT™œŸ Kª<ù-œ˜¥ÉãÜL†5ÐÑ} „¦¢{p…á$±®ó/ÆåPa¯lA웢 E€˜;é»b)~Ó8ÀÁÊ]mÁ– ‡e‘ì‚À…î#ÜÍílä ³f"°¶¡‰E@—îl¨½Hð9îu”¦g.F}Nc.Bú—íŠj"úhžBi>÷zœ•#•H@€?³fZëBhšîr}ŸÜäúÐì@…ÄvѽžÉj;F´p®¤w‡Á\™À—íZ/ú8Xª ãÙ–“àü]#=2?³Å”ïåQ»-Š ‹œöq÷G<…Çø„:´o\+ç\¬@+,q‹ã@wX–ú—vgS þ…ãÈ——‡ a²„Šã½ß&fû»Ü"茀—Âuõ…^¨dèÝÙ¹‰ÿVÒxwMÜÏ‚§² æ”Ø Ø­ì-€—ÄD¢¥¼-õ/u ® îQ…ºGÔÿJ’*åÑw`J÷€{<¼—=G˜70.B;êÜ!ÄsZp§ƒ`ÈÃ… È—ônõìt¬;] ØD€l2¿bEwû4ô²0„Jo¨$,ÒfÄlŒ?³)ËÑoxÔª›%Gø—ÓžÚe/e†¸C'jäÝÛÕô£¸;s—ìøx|Øêx@š²þSÃÍálÌ€—Î [3¯ð8ä7¢Â¬Æï{î• @…èËùõj0Y=î1w¯4Lœ‡Ä€˜“ù*Ÿ/æe÷-u<ëî—?Ù1ª—îe¹Ô5yß},à¼Rír_/âÍg—ïseJ^bí& )kD°v62X8ÆO£œ—ä 4 q’Ê´ú¿]‡«÷óæÛ“—î_qþXÁ¶‚ú2ûÙ~u|T……×Zòªù¨Ñ-Dy>ÁÍ~ÚŽÓ"3|À…î%‘«¿®¥ˆúî›ùFFåñ˜Ññ` ˜)æ¸~»jÿ!-(˜9øso§ÌJ,4Ûc›?èt öy€½7&I™³¼ ]£G›ÅÀ^AFKš•B0€½Ty2ì+#ï ¹h#´ƒ—ðï«–µw“t:½T].·qœ“|£&F@ ó',¹|·l…醙hîKÑïÑ(+î¨ï§eödÆ…ÅÀ˜CD:xxkX‚x”ç0¼»Q¨P,YàOggS‘P[°ózoZ;à2! …ëd™F‹‡O‘ͬӣå2°ÉʇÇн‹9¸õ§iyaL‹f¨Ó­¯‚2ÀP¼ðÌ£ÒB¼Y3Q—¡¡A’¹R\Xº1à—î¼-¯Qxœ˜IÄ%#¦ t+¿íZ¦ø…ß$©ãGþZ¾>ɰÄî„À©ª¼ÔÀ‹„Xõˆ-ôƒZ<¾6u⿊Me½?½¨c ´ýd”r`Ø)ìË!’ Z­¹•à¼çù†q½#´]8]ÊÉ Å^h¯ÕöÐC‡ö á¼Ñj.ÂàÔEäÐŽîöWW9±˜ýݤ¿óSßmG²¤f¡|ßSÝl|]2Âù×|aéæ¿ð÷÷Tuò;¬päeªPKгmüµÙ Ô|¿ðÞXx‹·bew[Ì5¶˜>¥…ut·åº¼ªÚ8KŽ* u!+WLù¾ÉäP°'kxEþ¨w°ð¿óš0Õÿ:|o÷lKXOo¶&G†#ÍàC€—ÔÂ#ÞT˜ Qß´þ}ý{'5ØÙòz€…é¬wU³öÚJä4ü&_¼“^€˜j9fê¦l<—Ve›Ëî f˜›ÿçó1l´SÇ›P25QƼ¿1ÙâW² BÚ,¬‡õYâCKÊMŸþú ¼ØW'UöÚëq¸OëÛDpØ©µu)þ€¼òdç-pJ}©WÐÕ@´Ì·Ê’pH°Æ¼ÔÕëÄù&Ù¸Q±{.ÐÅjÔqK‡†Cr­ À˜R¶·Å¤ø±÷oQF«$Ç/Úz˜9ý¯m´E‡ýg]ë@OggS€LQ[°ózpðf¹}2!!!!"#! ˜:ÉØ7ð"ÚÈÁV}ž3á•,ñ*Ñû˜˜9¶Ï”Æë  Ç,°Odu †3ï¯À@½9KGYÕÀ6ʔϥ[þp–¨ ^ÎÖŸJ.Êà½ÎÒZ¦Ì{+`Žv5%Év€Ä¢`à~­r …é"ž÷Ž0+@#–$ôÙñ'ž”‡ƒp˜=òƒ\/ÔÿEÕ–&'…±…ëFàn„o^5Ô"Ý+™hn7—î–FÜ[¸:Å;E¼DÉÑ gºÀ —ïpÚ‚¤–Î5µMÝ–ù÷;;v¹@…ÏOV!ئIà–e÷A<:Ö†—½‡­h6Üòaû?³˳—ά’k;È`òAéÍûϪóÔ鮘CCÍ öÂE×™W›6ZÓ[î0…èX’6œ’tºHß±…ƒmtªÀ—Ó†‘Œ'ŰûåEܯlr¬UoÉ•^¼­ö ìïÿènMuÑœ$Tè˜d-çW»†µ0¼¤“ò_ìáÕnÒ”ê|2 ÕÔ_IÐr­mȽm£³ž@¼È“±áw4Hÿ[©Ø*™ÇÊ}‹b"à¿ñŸQ—u:j-$çop<×f¶UâY\|„DI5#FÚ0½Ig`sƳn=ò1•³SÚêCÙ Â2³È Ct¼ò+ÒµEÛ¼éTJÚqù¡–WÝ{åØŒÍs7½õØ&Q)°T})ÍÆ)€ÞpeÂÁð<°r¹2ž½PÅC†7償hg?MTÔdÖßÿ[ZOV±€½$ËF‰Dì¢uÉ«ÓZÏýåJéÛ›ùÍ$›Ø%¤¨…á%ªXÀØ L^öPºYD¸,<иz)}…ìçÁÙëyÍ TÄ5£ƒGŒ°®§Ü€…îG»s‹~[è¹a/|6ôÖu;Ã`— ä¥DÍJ#lªäÿŸ;B¿Ñ"¤—Åe¶ƒÛðНìL=I$a>ˆâ…´ŸJŒzÔL{J‘ÇËdI8‘ËÉÏHvy ¼zðýަŒ—|Äéè¼”°+E¸ˆK=B e”š{à–v\XdŒ(мuR½.ô“ݱpc²‹<-éYáX½e¥¤#ñp¼kè ¡ª IêLÆ[€Šà–:Æk¼q<¹aù¨ìHxq9——€À¯ôŠ&C å¶`Ö[Ñž ¼TÍ[p·-%'N‘BÝ3,›åëÙœíWíK4à¿ï•YŸG¥¡‘'Æ*þXÆö>Ùè9yL[w ˜ÈF Ö¼2^P›¶Ñ/s‘•÷ñ`…Ö¸g~ñ6¥žLɨÅRÑ$ÉV²D…îÇÒc͉។ô›Õ\eœô€˜8kœUúÝáIäÏ%ð—ÜJ+ÙimP—ñ'Y Äbn‰ãy¿¢Úñ62Žˆ”òt—éÿÔ~ž ˆ¥ÝÍNj¼é{•ù°…ÁKh{_ã!@*V bgúæ—“QV”V ª™gÒ`Qø?€¼© ýÓøÆ¥Frq<ª\à»ÿë TFêõÅKì½Qpšvôýü?èÈN™Ñ\ÈTר½ÏX½¾žâ’Ea]ê]Ýÿ¾÷S«NÕÚaj81AÀ¼¨ToS³â’ì#‚_cÇ4™–—fVÚ¯xOggSR[°ózqkÒ²[2!! #!?³É’뉄úSd3w¡íA¸€—–†¡å}÷:©µ»®g]·xnŽ———W^ÝŠ‚¸óÆúq5/d#£ôõûñà…±Â®APï>fù>²„{uª<Õ¶íVÀ…ñ"ÛM6™z†æ#ã!' !¬KӲИÉäì@(ìëLúœ+­žº|ÙŸ—þSP3hòžÞ8ù)¿¸cœ:1¢X…Ñ%”Ýh÷æ o÷ʰwΓÉÀÓš¢À…ße˜ÿ4ª  ;¤]±`vµ,°x!Y€…ßã|ý¼‡œ¹ð|˜’œÌÇ1Ç ½úvèTjñ\PÁªú*^Aý@û-Ö€½+¸6Ù6š/'¨¯':7Â;èHØÉIÆ3^xp½9¥ò\+¢Ñ§Á=þ½©Ñ’¾Â™®9î½Ô‘I>¹5/- N2¥“ x $÷ bâO˜¼ËlÖáùé¬UXÃ0 ¼7ÙæùiJ%ô¼Ÿwœ°¼6`XŽI“˜–5»Q=W›ŽÕ@%zJò4!¼žúQžaÛs¡ÐMCfo7¬ë{ù¤²VµÙ¯Še†õíà¿ñ”êw—Pñíi£‹‘ˆ –vJ,ýjܲk ½A1ùܤî‚ß®¾÷âÏ}ÄjÎé¿#‡µ‡]5 ¼k ÜÂoi…)¹ !Æû%­mÛéŸ,D,gØÀ¼[rUot$ÆÆ¢”)l´`4ß8Óã*X™VmÀ-L€¼G˜Î»_)èÊ\§óefÝŽÍìžîØ Lc 30¿èˆž¦·r¿[¸hÄæq>ùúÌ*²Œ:¹LGˆ¼$/ëuŠ`—ï±ëîŠhsÂ}Ž8Â)3<˜¿îÀbŒíóI7Zåw”ű1¥ñ'›2fþGûE¤hžvp½IXã´ø<úëg~5ö6ÈmF“ ¹E4žÊwÍ€¼çœ]ºox<¬£Ï5õØŸÖ~Q¬˜œ¼š3næKZè•ÒßuC¶6O\‚0ĘKóP•€ ¼@½.K–>ˆ$–¿¿QÁ¶[i SCÉã,¿å¼ÂT™HÆÎÝáz~C5ÉR´QvÌ|¼ž…‡h¿lx2{ʸ¿RµÚ75¤[€¿éŸõǃ|בÙ7S~$MF# ;Uk¬½p¼ðæ±è(—liþOËËŽêÀËÛÓ4W¼Èã â ¥ºFz¬RY&Õ’:É:û´€¼Ç)È…ì%üVœÊ´@6·I®Ï´PäXÜܼšÙ'8A'Ë;©|bǹRt\½¯ªR$ÐFÐ`¼uŠ÷¬>ÐÀœ=°p)œy싆Èó3#IÊiÀ¼uM›¸ø\éñRNOÇd<Ü|6ÁSºN ¿ïFp, g«\§ëN0몢8´WΙq¶fÀ+½[hNš‡’šLP}cƒž†\ˆ«@LÑ–¿P¼¾Y*Ëî)˜´=€—Ó¢¤4ëÀ8ç;¢ÝÛ¯«BŠ´aŽ’å(ø…èp6br ‘ZgC¡%ôcWX…Ä¥ ‘£ùmL×@ˆ+X¿/¤û®õ¾ôA˜†Ûk «pgçŠþ£f}€˜9þ ±*_›ßë~›bÕZ4Í/æÓõÒõ\˜9 d¤-MÐTvØpø9 õ¥…Ñô†ÃfB{Û¢}M]ôÆÑñg›1çð…ѨŸ™Ó¤x°LÜØ‚GÔtš¸ÿAÊ—½Ò (DPwÛ¯ÝI¬®S,ËGÀu½Gƒ•ãïJ’É}8]òT…©„=ý?’xè DÓãqs4›‡_˜ô(ôgc3Þ_Bgâ‘s¢T’ —¼ƒ”&kµoLÇËo¥k²#J? ÒDKúÌ~iXÌ6<ݳæV‡tùU•g7F ââvm½qìl“?œ]4$ßùÂa¨;·&£¨ú?žs7L)ë°ÕK“æZ]‰U:«"Û…ªS‡YyUq¶î°‹‰+EÀs8S”ªˆ…÷êè!ÔÖ-¤{ìtâJn­T…Á7;Zy?é »«R/Jl4'˜ó 0…¹Ù$î¬d Ù»,Ðnµ L5'TªÖ& …èàs iØÁ;2§0¼K¢Wüe´;€ X0d;A*á õ\o€¼O »¨*ºÊ&á¢x`JfOâ!âPà—^­cnÚ¿ëHØÊ?ÑÞ]¸ˆ°ßýdð32ÙÅÑ!4y#Ø•¿ê’£'ó&¿Ùd]ÈÈEøŸçÒ|úå¹° ‡ÇÍšb’@¼\Ó‹ïWY°™Ý&deìudâð ƒu˜êI›òï7¼t³ÁL”š iDëöO—uæKgq`À¼GNì)M˜Üµ»*l,*Wwîd‹b-aI9€? Èþ7~ŒÊjÒs»=¨æÚpæ½:–@…§/!!8—pIôu¦k:W:ä@OggSS[°ózs2=KŠ2—nÖeσ6 ÝN€ˆ~ɲBémPã¼…©†LÐŒî…=Á± 9._àñ ÒóÝ|ל…é1t~õ‡`‚j¹7P»ùyM™ªÓà…èH9¨³NdÕü´tÓYò¢Ìn­ÆŽÿÄ…Ãm€g8¦¥>7ÌG‚ËØ>ÅßDž—¸tdn~FègCÞRcøýôk lØÈâ(Õ­7—›ltp#¡ìºí‰Û1 vÈú¢µœ*Ÿ)…´¬|H?yXçoç6ZÇ)+ª}ǘ…±–u~È›“l\¤Ô_½e é«w¹K ˜ëȇ%D¢á­Ø(5Ü=€r˜à…Ý?ñ«ØS:9Ž JA—=äÜþа—é‘òsM¦€°ZɾÖÙb­Œ“¥xT—˜R¡án5/±úŽrš8»ï²„ó€’~ð—ÃwB¨w¥{ÅñÑî…ÈhÌ#4ýpÓ—ïÞ7Gî{Ñ~L[ éÄ÷Í<6Ø…ÔJi‚PÔ8x%À¿¹kÀÛΖ5bQC€…ú„bL]wÄÇÐ …%·üÛÀ«ú„€˜:m˼^)ó‰O·Ä½ÊÆýËèÀ˜9ù ]x¿~àOOox/:îåm£.ÁÀ˜9]žàUü&—ŒB$—í‡:w¼ynƒx@…à*@ˆ™<9ù€~‰¨Ù`ô"ý{6‹@…à1]×edEÞ>qÅåuMÉ>ö—xÕc ˜¥ßc]Â@æðw?`æø˜APÖ‹ð˜;‘z‘®ÏYM,Vliѹݥ]¡h”ñÜ@˜BŒ4ºK¤Éè±ùŠ_no ŠŸpÆð˜9-û7…gyâçméÝ ÃùXI–—þÙ݉ËU©1²³}¾Â`B—êâã©ð’ iæØ¯}U‡X[4€—Á¥œ—æ±6F¥fïÔ0¶A¸…·È+“ ò"´fï¬vr@"ýƒIŠt=@…ô„pEÿJš¹Læ4KüÆÇo°…¾¶FÔÔ’;o Plgh±É £6a@…¦Õ¨TACm;ò*a·ÒŽM¬€?¥‰9¢Bà— ÂÞòö´ã[¥ ?¤ovAéà'¾ƒê+ÔÍXU?Ú?™˜&jNe•“Óò9dÊ,½ Éy逅¨xC»éìmåÛ–™rm¯U”G‹ç€…ñ$ Ÿûꜣ‘ù@%X¼¹>º{ð…³þ ˆŸ\2©ƒŽ·<4È<ÿrÉmx—õ>x?’‚#òa¦µ]çÈ2òþÍ@äBîÞzkct)UØéIí’!Óô‘‘å·øç …‹òÙõHnz^8W ¸‡¶@–Ñÿ£iÔ;\g—Å÷~aËÒnŠ~pXᨂu)LÃP€—†ãþG®K—º+SÈÂ:¦È“oš…ÀÂë¦Ú¬¸²$â¨]vì‡"Hçà¿âÑ€…²ß‘4úl›R‡ämG;¦\ž¢‡^Ò—›Á~ŽÚ]¢œ=Üm}`Êc …`{™JBAšÕž1Û1M›§ v¬v€OggS€:T[°óztSêÂ2"!"…¡ÅX[¢Þç» 6¡òÜ6…ô:V~9óÀ†=Ü_Sˆ”4‡’D…¢˜ºK0‹´þÚ &Fóû4´4¶’øµ²—mmP®°Çþ=¨·‰`VÀ7ÒòÃò\Þõ—mµcÛú´ÎŸˆÝTü@˜¾ï_ âÇ —k¢è|7¥¨ë Ø›‚6\€.4Ûˆb@…›HZÕn_$—µý(þ‡a†RŸzb(9”‡Rð…ô$x(Ì ¾Ö¿á9ùð³™ S9(¼çèè‡K¾O—sdC»&Û«Þ­âAB£ª‹í`¼™aÓ]p!r]Þ;s¬+í,ø,l` ¶-%ü’ ûh¼OÀÞrñ´òuòé%B¼Ý¸[<èËt,½ÏIP€¼Kâñq—¬ 4¢,Ʀ¯NÞbu³ˆ“q=2 ¼u• B¿ªÐzÒ˜F¤Œ´Îd 53§87¢€¼|Y"òôp»ƒg‡’Ù•6Âjl7QÕF½FE.C‡ß±Ë?›œ}Ä=e‹3× Û4à…îÚARw³ÕÉWÄ—¨ Œ-#îpÛ"0…ëkŸˆ¡tÝbD§ˆD¿]†¢m˜6óËŒ¹¥j¶DÍÝDçQ\PÛÆ 1~èÀ—ñ,¸—¡Ït›!)iItîļ —ä¤~—TLâ!YÕ³™©pv¬0…¿ž%ŧTծކ.¤¶'ÉŽD4…ý-@p­î…?Ô¾‚ìae¿Jô…èMyêŠV…O,´–Ü;ƒö€¼ò²ù²Gë#¯4žêöê ­d–•ñ%óf€¼ó¥%E·‹¼ÃšÒÅO¬ŽÑ'÷Ç<¦­:‡=/мò*굸X•ʬº%|=É[”û§Ãqt~¼ò³S´uæOíãÜLÔYï÷ø™Tds€¿öJ&œŸ¬³ù¸³ó<¼òóOÏôº%kk–~ ÷=L6¼57¼Äh›ʸ×a[¾Ðïü|£X+÷[¡™éŠ@¼§á>lM[Bå Ñ!–O—p{ÿÂË;&ë"¿ð65ló:èû:ÃY ó1']0Ds^ …ð3ö‰K† ñ¢6f#Cé5ÃãÈÉ €˜I³°¼õ1Þ’­Ì‰ !ù‹MBå=¾˜:žÐ™i‚ø·­S|¨”oìé:yÏôG†€˜8?ážéªF7áÎ(c‰ÌÀ|¤‹Ex…Ò˜ÜN¼µ Ûz¾®×£È¡p…Àõ€-§}¦Ê½Õ•Ï_ ˜ªN…±\#'}Ÿf¤ Ñ!ÇD÷ÞV\ä…ýz:\ëa~ßàºøò½P„ÈØ—ê“æ9@ÕË„.‚ÜH¢0s9A‡À…æä—Ïgœë¶G¢åÙ€éÒ»œ —Æ$ºÝŸÏ÷(Þ`¸ ÞùD‰ €…èäѺ¾¡ņ]¢£FGÞñ碅ĕ©»8ƒ|²cÁyš¢Q¿Âõñ‰ …Ó5Us¢ —¹ Rİ€…œï€OggSöT[°ózu-Œ2×2!""  …ôJÁ¾/Y’c؇ìì…ðz1&€¼¾[8\ª>¥PKM¢-³+¿fÏgìykש<˜¼šQGìK8ƒ„Éc}‰(ÇÒ‹þ%¯9¬|õôzfOÀ—nQ–}òAA]O¡E;û»êfüÒÁô×€—m-û¸…R—§–Ñ|¹]#€…©Tmóï#>Ý Îü‡¤ù™5šæøŽ(—™ÀÊF÷žcoÀhùC'¹ûo÷¬ÿ—™'ÖÛ-ýAsà±RçF\ÍJT¨¼t’àÚæS?Žaè¼H DÐ?ˆ¹ír=Ý.ÙaJмQZÚ‘HäfÍ©~°bñE%,>ÇÊÏÝŸ7NÁË1 ¼o¡¯wwˆÉ掸7½cnköþåyEõdțļTËkR©úÖ k£Luórl²²*œE\:Œî¼Ÿ9”ÜÂZ’ #îà6G\Rfuì!žÙ9æ>,z€¼žð8±A¹Ö=A>BÛeÅúa{5Ø Ï™Dáö¤½9i½%súGš jð±aÌ» æTjZ$?¶³›v&¡¨½6ç4ð´ÔƼ5LkBÔ®çðNü‚î.½@Uš J;D-ìÛš ÏC‘:áH€½†„GP4o0Î|^Zþþü ' û ¢x$D`À¼¿¢ã†á–ä<Ì›eKy1f}#îøZý¶”ïð¼ÈŽ€4ºÄuª ÒßGÔ­èswÞÿ;ú»à¼–ÐÞÕÝòã¯Oµ#“t.TÂr« .É@¿ñ,[ÓdÖP§P>×|^(Ô*h¾B|¬áê ¿ýƒåµŒõOK)®†€>x'ØÉ’©]Õ0éuýÔ¼”¬6wI¸°Ï…¬OŽt•gøi±Àâ ‚¼CÅKâwÕðöÙÆÈá Â&î$¡ˆHÀ¼%&¶¹…éÉiÇaØYü9óõýb¼+á=Ø|ÍÈÅ£³À¼H™Êaœ%Kó²‘V;vã -†Éç·÷T¼Kâ ”o¹R;1úµ6ÑãüK*PûTp@¼GURÕtàkö4¡à· lP¦¤o ¿ëËq ©ð›fÓk…9g®doì©÷h4dÿ›°h`˜„+ïÄ ˆ=Ñ|.\д_Û„@¼È…2]DAy'F;¶ž‡èi=ç]ú7¥A`¼uvn<ÉmàÞï<Ö¶ r}¶ù?D¼…ÀK2OÜ»­•¨½[ØZ‚,/Ú^H4å!Q_ü“1iˆ?J༽SË':‘ƒwö”®Ñ°o·îvòÐ|ÔLûX¼ux#Ø©ºÚLÝuZ÷h›½¦CWèp¼”ÇÚg4¸e-uÅ>§’y„øòÿHÀ&»x”¼Qky¨·Ý¶'¡ß·CíáAù Â1ïô™¼Ÿ$¼KîËF4Úh£çÙnÑÁ/@£¥ ¼žã”»%¼ÓÈ'.@Éw?{‰r£?4#€…àù—x2S®°a,pf'ÜßT6Ę6мf@˜à ÔYØóOw@HP¼çýò«û!}B­2ãptì')Ò¤a«°¼¾hImZˆõ<˜-wøÏâäŠpޏƒe –8¼žæpÏk€9“ Ƕʖ~ó¼.¥ˆŠkáÿ-¼®pÉX½BÌâ‘Ͻ¨Kb|)å$f€¿ðÑLl}oqT§pæÂo8oÄ&Z©õ…éÎ_T>søæÄ½=é{á&p—éš^›°*Ò¡mÎlÚήj¢FÀOggSmV[°ózwP©g2—–›×þ¦æ1Î:ްgëúyi7G/—š·;ÎrÝûþÔÇy]Ækiœ– É`—œ€§qÌ ªžBùJãª>ŸTg±åP—½Üê]Ílf Â>ˆ|¹™vZ¢ÃO˜¼Qa>ùI÷0.|;©èŸD §a#¦ðS»§`…÷¨ÐJ%Ìâw°@ÿA>÷þÂDŸÀ¼€˜ ]œcÙ^1¤%r^ÈØ¥—Ó¢Šb;E&Ej êO7v’D€…Ñ"Þ}ÆòNOÂÆøg+êm1}œo—ñã/Ì™Zx`¨E5äk$ ¯—ž…ÑèÓh>‡SQ(xí9‹qæÀ—ï€ú®RÕÞ¯Á‡ìJ±’"K0¦€…íkE }•¹1Lz)²ÖÈàFbŒø»“€…Ú•E§R[¹FÉó§±ÚŸ¿v…@¼”Ǿ (ù¡sOöÌïà‡꘼ü_?¥c[Üá¯-}ändÛx‡_yŠÕÀ…«ÁY#&9O;04!vVǸå. uÍŒgž… Á:ü ù­¹1´ìX?¥Ì&UtÌÔ„µí–r„ÁšAR…«Mè&üh @Ë8±:Ó- ,¼Ÿ3v€–w·‰›>Ê)ßø^vpÈo<Æ3 8¼KžâóøñÙ¹³J˜Lý†&¹§aŸüȼ¼KÙpî1yŽcƒGÄ2Ï÷Ê-÷«”¼[pû<²òXjÌuÔ½8usŸÈÛgÇ ‚Ò ß@¼pã)ß³iTU·&¥j,•Å£À©I M ÿ#e@¼KÛâþ™‘ô=­u_/ØÇ´ú…鈛'(ÑQûí¾Ñ—öÇ-8šÖˆÕ3êæ€˜AgŒ—P#âv&ýª´wOŸw9Ó—ñlg§cåzš¨B}ç$d›R¶—îÓ4k# 稆܀wü —|=+—m l=¯Ôêûe_u,lÃw@—êg1gx$0£YÉ’ ;Š –‚.€—îËe¤/7+ ËŽÖn h…æ|…â<×:`¬(£·ÿoN³QB5ú÷l^p…é'äëQD;CoŸ‘c (昷û|—: CZo¡!H„A0)Æô…ÐÚ ÿ܄Åùjö!S+Éj¹Ýmûåá.­sH…èÐ9Ä^©/ƒ¡{D`* ×ø˜‚Ü7PòȽ>åêŒ\¸96ÓȘ9ù cÙ9]M‘ ‹öŒžÀòk`¤ ˜:-©)ûŸßzBè}ÞøŠËÚI#\˜ô¾¹%Žx½B]ltŽô+öïx2°Ý&ÈŸ•%º7·¬qü¿øðüK\ÎeL{)^ì_VÇH…ð·?H>Ï`OggS€(W[°ózxQûT½2! !¿öY’TsüY? ÌO_ý®”À?úe¹¿ô8UúÛ½[÷/ç÷úýX«àÙüç…¥õÝ—Û¹ƒjH¿óPª Ó˜O^КMƹw®"zÇÊÛpÀ¿ðhøà 4µ‰m(sQ›;F²PâÙè©ò¬Æø…ðk”ïØÑ 5¥w\JúФõÀ˜…Ý1$ùáœíe9ëÝ:Îbƒ§ž Ÿ c¼¾HÂõhv\ ¤ãu£ž–aÏu!pÜÍ›(¼¢ˆLH.õÐò*´4T,ˆmX^©4“¼ššùâþ2°e+†Ê;Btž¯1Îu)ùÉö¿îE%3ic×ÀkªNš3Ѹ%_¦½"#cïýæUH¼yZà¯Cæyø ?\Ü{øAܯ!høÇ:|X¿÷Åó2œò$Î}£–à|‡ÅÙ&‡é0wûŠ8¼æãÑ›qh†¥OA?\ àeŽþ-ŽãÛÓÒ¼u€ufÌÒJÀÊFá7EŒÂ¥ÓØ‚-©¸¼zˆä_ ©Xû@q%r[ ZOÓ£|XÚZ¤¼”À|£v@GjŸ"Íît—»õ-BLJ~d¨¼Ÿ×îý÷mVÃhÜt‡çž‰Áš¢ý}ÑTT¿ñ ”J÷m®Mm“[…rq¤{e=øƒ¦k3õþ˜ã_g÷ú͆ôP.H•Á‰½j¨ÜBöøC~òªÚs•¦î$åezÅÖª@¼Ÿ ]¶µí)ÉÜÔ åö –BÉ}3 ø­q>Ål|„·kixl©!¿e,¸â6§DyñP¼¢Á®ÇäJ*}RÿÔcïo( ­šý¹ÌœmP¼•ä%@ïxhæ–{“ùrÚ+ßÝÅþÅ£è.¢¼{¿/*Ïz†ó-Iäeß6z ŠS ÄAO_ºE…íŽlöÍ#”éä? y;k)¶ñ€…ë#"®ñ¶à¯ÜÒ 3kP·€—™ëþ1†L™”Ä1HοÍÒ0——ˆó-CioX~FDŒ`÷Ɔ؛W-`¼žãbàôˆ xÁdîð•Úçâ,Õ„¿ðÎy®IüÙr1ì%úÄx—·Û!‹ÏU¿ðÞ(¥J;[,¥dËîÚ/E7‹]Ä`)ˆ¿÷Îíïâ5n¶>^þÏbiÔ:¨? MªxæHŸP¼ðÔ“ì"q‡T%ˆ[¼ÖmÉ÷,“lð¼¡È˜,g94~xJ^u}×Kuü–t’Tgî©@¼  xíqR¬ÔŸC¯ ãLUj¼uß>©]c¼Ò' ?ë «½AŠ[(C²µ‚Ü¿ðÞ ²Át(˜Í¹£=€ÖΕâRb6G . cP¿ðÊüÈs ˆ3l ÚÇhâÌ©ûïUóú@…ÈûŒÈí æ‡üK"€'u7‚ð²S¾kÀ˜9@<°ÄÈ9{· ál§YÖ™gõJp˜П¹–’Ç?š³Wg–Ũ¤´¿óPõÌ ³7 “2â–}üýûqË›"oæñ× …D¿ðÊ,ð· $ÀJ0CFe«w=NC¨´×Q`¿ðÏÃ.îY3Jb€~„°»Ó@à „¦)DS¦)(¿ñàca·/ˆý¯yýÝåÎ5Q)a7p…ð—&เeé õÿ³C¶µŸ`($À˜:+‚ç¿ûjk%¯¿ò ‡>ש᩠½ž„Œlc®N×=m9+¦¿MŸvPl¼ó lõàÌx©Èœfd:¢C"[W½–ÌìÿMàuOggSäW[°ózyRY’¢2   ¼ø »$ØŒõUps-ú}/ù±×ö=‚ú‘ûÅòËx¿ùC2Š6buàÇ×ì¦Ï‰å –Mc´æ <˜+'ÝØƒ,$ý ùd³ƒª¼®Ãœ…ê?Ÿ ì±^ú˜ @œO: Cð^ÉHÈp»{´˜9KÞØNGü¤ºÕ»k±eÅŒcDw!õX˜Ñjæ3Œc»ËÈÿZr¢A–cö©À—í˜FäÊ£¡ø§¢œ$ ¯÷—™ô gî!Ôa>!wxé~eÔÐÿè @…´²°/=ùGr»»ÂæKå˜qŽsŠ"{—Á°K«É¼Ó“ôã°B·˜~Þ3ÊlûáH› Sˆ#Aq‚‚ —Å ødÂ& Çã×PAäÄèØ}î´—Á•««_#”uõË ¥©]šeºÏ<…³ãÏ®+n ¹ïí÷ØórÐ2—mά=>óëÝû‰”¶;ˆ—•{ÜO¸ð—k¤Ð6_2¨Àgƒ=¹|ñÇç«Uð—6_5¯÷¼h;Ôþ†iŽ G‚…´§ KÖè|žrŧØÖ\X‰ü„ —™;UkdEe˜É¢ÉÁ<Ù¢%Áƒ€—Œ—qÊløÅ ‹jR)‹«[ У ¨†µ@¿k4í$` þ°>bÛˆÁè°—§“á® %Ë{ëËaŽÄM´™wÛ·p¼u§&nQðN55˜´ªE’) e¤ýfMôø,ˆm¼³:óaÌÒV$ÈO§%†v¦ÖO$n¡²¼íÕ—CÛB‰™ÁK8½†ÐMäîwÑ\æòÜTÞK vVØ ÑØ÷©¼÷Ù7T¿Ö?UÉ¥Ï b›³µ1S-"H½׿r*Œþå<”çŸÅ’.à܃Lj |’y ½_^ÚÏtUaT!a‹€ª@^òà ålHÂʽð )“ngýÔý•™• +BÝr¸r5ë†h¼ñeñmÉ碄‰OíàTp 3É?2##мȆ†gE²½‹Œø±XÌd<,Ö\çÀâ<“6¹Ž¡¼žôØ7ÿ‚Å \!+ ÍT–É}ü÷“ȼ›"5\Ú4œÔkPÓV¶•ÁXˆÇo[O͆œ¿ïMhÅœÂb9²™úFûÆÐáÑqÉŸŠÞ˜„~o¼ÇâYvòþ%+&"~¾yQé@¥íÙ˜,;—›,ƒi²ùu'ð’ò@LN_I+6 —:²Lt>°A åI)B”¼Ò­’Éh—ÌÊžXD¢ì ÁßúTPɽ›Ç»ƒ  ؼÍh`zÍ;k²¦c 7FeÃ3I~ŠL† ¿óY5aŠÂÓÒR© |ž£Ql« )à;óàÿÀ˜#rpøŒjÝY¹.]dž<ïÖ”þy.¼ñ’G¶¸”ä†dI ­èÖ¶üP:jðbCØV»`¼¢ûñ º+WM~SR=OÈ‚<¶Øa/€ù^ºÐÂ*À¼Ÿ*÷ÊòÀjÐKMœ½­8€ð±àç輞ý»Ô¤ó[eQ(X§¬°xOÞkBE)0"¼m9€ÄŒ&äÍÎ!’š †œaº<ŠnèÀ—jÅXÃ)c²-šþ°×»ö¶Å‰Ø…Ø¢NÂKúüòÑÎG+SU6Õ`˜}}ד0 ûç±¶ÚåÔ€…Á7ü&w²ÝeÉO¯Ò—–œ%43cÊøE3§5nIk•©óÎ †@³ã!¼“§ Í6±Ö¹­_”ÑHø¾´•üæ¼"Bž+õ‚߯,K¨Úqˆh»ãÓ.¿5ðÆ ¼"Aˆ6ÌnlœÜˆ,!Hø46½¢oRt¿érJ…ã‹ ¯`oí=÷ ù«é¯pk‘(ƒ¼[ÞŠÑûUøu™'¼ P Dè™ýH^ÀÆ\¼vn¾òŸH¦jz/ãä°Ë0Ìà™–/D|ˆŽÌ¼~ÏÕüæŒH ’)ÑdEÚ;˜Öö–ìç,HKäM˼•(,ï ‡«'/ÁTÙ€l@j茇ĜÕMÃÀt*`€¿îwÀiÞ|¾”‹äª!¥b_ì§ba­z¼k¾€¼v´zº‚8mCMäãëæ„° 20mîÏ逿ïWÓ¢<¥½þ.&¡qç/ {q›TÕ/–¼ò€xÜv µ,arD<(¯ÿnƒð¢ £€¼ò‚Ë‚çfb®„ëdÖÏ­ zñ(‹%>…(T•½6ïîÕfï”˘î Ù f«Œ²/¸‚Ʀ °¼ûø@/ç÷â.SÕñ–ËzéI½é ¼Å.tˆÂî ƒ`Røª¸¥Ô^P™=OggSwŒ}“V$õ2! " ¿ð -É_Þ°íƒæ3"ÿ¾q.M¾h Á—š¼ëÉš­è}‘ØbèÕŸ†³KKX…´MêL–†¡“o&šÑID–+P——òê>¸E]”LRUµð®U2—²ðv“Ð`H0òŽJâ¥p;“ÊÆ\\— Uú’bàáØ6F7U¤0G¸+æà…¿Æ¿ðpíÐJÈÃ)~Ä?¬tS §dybàê»Ø’?:‘‰Ø[^ð…Éí ¿Êà1WÑÙÉdÝi?—;d·Æ€…Ûmð ÷Å"¼E #T8g·ð‰Gd€…è`?Ë®¸ÂAë¿_÷whït}µ†€—Èšùï¬ÏƒçL«Áz£×œN?lMª€—ñæ;ñÒB@ãJú"øÝ–­@½zØ(¶@˜V¥ótŸËî*\ŽÓ-ž¥^å £É…éŠ„ÊÌ.•/4Uí^ªg¶€`˜Bîî´ŽÕõG°UãÚhiÉ~ÄZ]© ˜L-Ø—±5úsIJsY}§ôYíÁ[„˜IS{*ãtⵓÛ]Cúm6¹“Jo€˜CsªeV#I †mv©¢P*…ß$\}ÝK¡ ´Ö´S&ÀH—íDŒbCfËϽj"÷qñqùöL?²ú0ËS%‹ ÁÈï9&éÞ…»d>Ð[ÎÔôéÚ ”ÒK?ø)Þx9ý-)Òš…Ú*1³j'Oê»´þ:{ñ¦ôu½©"ÒÅ\n¦øá¨ -—~Ò©@uÓs}ú੺iº“ç { ?£U¹(G~æ\?Ws*ÙË“Xt¹ò²ëäØí»`U·´°ýÈ?ž '¹–:ªª~qÎxÓžp…žšÇ ¢|Þë{M”î¹Ûcp…˜6Eb8·¯EOƒ®U~hg”3”ÄòN@?«qÛ¤òãþÞ0±»[/wØø?žrÜLøäӻɎcßj¥²Ø¨ÜWˆÚ?œ|¥ÚkºiuÄì–¾5 ¼™Øyâ¼øs>5ËÝk}6,ÊBJúÃç’ž-“Û?—oÁØ4Ù.7´ÿÙ?w¾Bè©üÌ䀅­[££Ué¨ÊWZº±Á!4!,/‚‘@˜Hõ-»˜‰ë¿±ï¸® )²¦Þt¼Èà‘§q SýÙÔëX× úMÁEcrŠ?jÂ@¼Ç;vF£ÔÂR|õ;üÊÌä Õãu¹G6¼¡Íz#Ôìõú³’š‡"1"TŸ{)±:¼Ÿ¦ý¼ª‚ƒ£[W „¿‘cæVäñÇŸOËŠ²yÒм¡‹9‚f>€ý¿¤^ñÑ¿Z²K¾r}VŒKܘ§W< ˆ:aØ.2 0ë6•ÇÒ´˜IfS~z$G_¼Ž†ØòÍUÙÏDÀ¼æôÿãÖ_™@²ê!iÇÁÓs™‡˜i€¿ðü‘‘m1G¼_CáÆÕcHÔTŒ^‰Nˆ´Þ瀸ˆNà¿ðø)æT㦾Ük˜µ}ªˆ>Îp,ïefà ¿ðÊF6\Y¶Y ¦]g)1£³0×a+mrO0@¼š‘w5MýîÕ«‡¡&Ÿ¬råjEC'*UOggS€2Œ}Èé±%2…­}@Ö,_S'ú ¥! ˆ:¥gä^{hgwȳà…è)³RööÓµ—»¨÷Ÿ” ò`…Âü-Hne[åNËßÏt#ÅkNœ—›– b©Q±aœ@¶AñØ›ƒö©Pâ'4€—Hõ†Áwl#]mRÅUˆÖ»14É\§¶Ø¼Bš£×ñoøô/)zÄR`vñÌj¬ä¡OE™Àto[Pǃ×kõ-…ÒOª)údµ«}¾L…­A³ÑéÂWç¥ãÎr' ¦´ËHsó« `…ô)º0¸1pᦓ?°ÖhLi*˜9Aåò”WZØ·ìL­Åí-—˜l-ðMà£.xé´ì`ðA`‡ö‘À˜YþW ¹ç`š"|ûn–¤Užµ>ðê…Þ¾¾lùL¢†+”¸>¸h­i@—î§»ÔÃy:}ÂpkŠìg˜ÖÂ7tî…ך?ÐTD¾?kªâí.ÖxiqAÞŸÿ~ؘIo H´qwipÿ$Mƒ4)ÞÙ)Ô€˜õÖ˜_â¯t†Á|»ze`)cIx—åäyÅ8°L‡R`„b;h$£œ˜˜9z1ü€‚bS3º¬ˆ‘7‘uÑYxê0˜BŽdzrNÖ 2Y¯¸¤Õ‹þ€…߉zÙ—Œ£«ëßeÂdŽp…ãOã±KAr¨¸F¼4Ó{wá7¸ä8èX…ôYµÙ;Þ¿HÉXiÏ‘š%ìâçô˜9,®3ãû -±LxYÂ@xåk|ØÉ# 9Ën²ñc?º–ðXW\yC Ïà´'»°…ű2‚ò 4 Ò€jð7D–×v4ä…Ûà3ˆ«TžÁÑt ¬€až1û9$ôŒ€…ׯUù(!÷¶­göqK¢„÷H2jÏ€˜R,ccgÙÈQÒ&°1ÝœZ¬ûü8x9ð‰„   FÀ…ÔVП'2±~P…ßé·$ Á ̄QÑÁ¹0=Ž®Áf˜ü4­ØIWmÉíÛ põÖÉwºÈ…ßo^'Å\€xKHûƒC±À,ì|­ Ì…Ñ.—ãz á…B1mep,Ü~K€…ÉZXùš¨yD‰*#VöU\"ùJÜA!K`…ñ$IN@´í«‹UȵÄå!£ã-î€x×Èc…Ûy 6XFAöRó0wbއðÊYßÕ1Eºö²€?´¤Žìƒ¶VûÎ1=Ž4ûAƒW½ ?ºûe>c{x„5‹;9TX€ é¶‚?µT2*L“oDµ6ÙaÎ hq0”€…ÖÎÝû:tŠT™9…ªÊù¡A_Hëœ …î`4ìÓµ—Ëís³p‰)ZPkm>Ãh˜BÙ$ȨàB·…=DCyãvÙT.x˜CøÄVJ)[XÔDö¾è"òEÛÉà”˜9› Û.Y>æµÚì÷ÅÕT4&6Jߪ |˜9§kœè 5LÜŽ9YƒNùôIŒ0¥L€˜=p˜m "}ÍÈ–9xæúôÅ×Eâµà…éE¹Eɲ_òØ‚+šî9«È»2…qºˆOggSîŒ}Nl[X2""˜<ùìï²–!¸øGˆvrÒ’#°wóK)á˜AȪóS­«ÁÈô U4Ún0x@Š ÙP…étó>1?–£}×#pþ7ÈcaµßŠ€˜:k%Æ€Ž'áù‹`†8xU‚ÌÅ›¾Ëüp(^`˜9äh yS¶$åИ’G¤%æ€gH÷ÂИ:”mÏ öl­“ˆCû˜"$–­Úõ W~…éä0AÎ÷ûÛ'úèc’º×r¡ˆò˜LƜӺÁQZ6W ôH•S¼6`³^Éì…ì\œ,'I æ#ÉJhÇ艡Þ^Æz×ÐöPH5kg²½êAâû’QãÌWW„”Ôq=V5Äy’¿ùæDÄž&8\›´FÓÄÚBµ ^éŸÏa“‚!›¥¿û^EdÛ9ÇXˆ$)aj=æˆÑ³$aåMýh˜A¤æ~ëýeÆI]à)wDÝÓÒ›0?ÃÏL@•°ÍY)üÃN3üFÁ˜õWfý¹èº“[PÒãÉj‹˜1}RL:;œ¦µ1C^Õ*ëA}>Æ<½ €…ÝÒ&™C~Û®_¹O&[oÖÖ€:ÃÀ…ÓöÑî£wlú#Û¢nµp²`Ú@…åšaçäÆ*ªF„éwhÈKØqÀÈ' m@˜I 5d-àxt›3ùµ&‚ê;‹€…ßë³hxt7:¯;Äàˆ¯ô4ô˜+*bV\lÉ’ó$EÑ´8¨Q# …éZõ:µ¦œo¥„€˜:h($$G¥@aºùP ½Åˆ8~ûøOggS€©Œ}Ëβš2  "!…ß‹¢éEz4ÂË Q¡E,–„Xë ˜JR“‚ã°ïUH•ÙŒ;¼°»öù\½¾ãà˜S³ï%¹MÊDÄtNÃ|èÿš:ýa¼ò¹AÝ.k¿«^ ÌØìÒ5Ø‚·T® U„¼øø·&k9üƧYd³DEâý_YñöñFé½'U7zdéûĩȃ§á²C+ýͽ$Ú¯ð½R/¤4OŽ®€èÀpýhm¯qV}ÏÞ|§7Nð½z†ºµF¹Gc`]u^2z¿×Ö´/¼õQí¼ò'š¼·Ð9:X²|ç‡b.pÖSôæ8ãþP¼È{ÏEÈ‹¼ð’€Jí'ÈØV —\‹—¦èbD½¼Èä¥ÖËœˆÛáŒW/ÍÀ[´L›8þ<„¼ò@áçæ0}Œ*„¦,;€”íC‘1éÔÉä„CnÔ€¼Ú‰R5åÚ(¨ ¶­‡ä]ÔMÔme _N#¶B€½?¿¼úqýœTá†;xô>dˆFÃ&Ùí¼ò 0°ö=çúû$µdi/»Tk/€¼ò;‰]_ŠÐ†ŽYU·¨s+‚Ì?õËxh¼ò'ìô@YétS®KZ)÷‚«Gj³yB¿õÁפesörºáûÚ]ßs1%ÙJ0ÆUz#žj€¿óš{jÒ–;Ø4_·èIÎÁì.>ÿΨ#¼Það/¿ù×ÍUÀ–E[-Á T5õ.ÂHUþá»bŒ½¿û;1WMœ¤´y`ä°œ>ºË?ÌYÜ[`8éÀ¿û;1ƒš›î’’ƒ}Òl :”»æ,S6˜:hpÚ¶CÛ0—øh³ÿ½Ë£‘Vª$Œ…é bÀ-u* +ÉiÿN÷Áîfe˜eWº.rò!OóºôÞY÷[þd…è¶% ³å¦t  .бžy¹Ó&…ås7°%G²+ò Œ½¯u+_VÒr…ôˆQlVÇqN L-„:2̽$«9—æÈü $Šbʯ¥ÌÕ™jGï¶á@½$íí^?ç~%°îéYÖ³"Žc®÷n½9ŒiÄ®Ûu5¨ËûšˆØtyKwµ™æï'?DÀ¿ûäPZ‚ /°\ò-`€–üì@Ø8"K¿ûÌ6!­…þº{ë´K!ò&}!eõÔáË¿ûÊrŽu}2‰r1¡W4ã J'Ç–´}w”…é1Ôíÿ ž¢rëå; Ëí€ÄÄÞ4˜9Ö]ÃK—Õ›k»×WfKó°íTžŽms ¼–—öl×. ýraöyÃʵ Ã'ù¦ññFö8zíyVÞÛd$¼”¨Ó5,+µ;{u¿n‚˜«Ä¤ƒh¸¼žæ ¤!yàÍž¿£…hˆ8GÑ0—àß×~$Gµ¯þ) ¦T»,ãG…ßxZJïòqÂÅwðfc]'šâçêF¼èÆÒ²Õ!ïr”#mÐ"—ív¸ ï  Ï‡l¼È¥ˆQ+×EÊ7ŸÓ ÌÚLµ•-Iîmè¼ÄØh âËeóqŒºANó£šû€¼ŸK­m­c/|¯)KíõØ'-OB¸«"ƒ?¶Î NÝsn¦¥ £wø…WÄÎE예 žœÛbûC9£\Fù£!ò-·@…â­„äoª4Q.æ…Ü3ˆ·Û•G¼Âè˜AÃ¥~ƒx4½ »ŒÄK’läí¨”E1#˜7Tˆ€Æ­VºŽ‚FÊ@P𔡽"ð¼È¤®„Œ(éC:ÿýmL#•tD¢ÇeÿÂÀ¼Èðƾj´~‹XãÌ{ DŒ‚ ¸Ñ…IɈ¼ÅZâçcïPu]ñÅ„ÇsÌÔ;?»;ÚìT‰•¯7– ò¨-¿fÉÿ €…ÓK;ò>~’¸—+,˜C—+è ˜Aàˆ¢wxXÏäĬô,}CH ‹yÇ™ÈUdÈå’=?ÂmÒTeldÛô¾›‰ê/Ò Ôô˜ì ¼C·ç`5î2Y?ÀY™;à˜&,ªýÒ¶2S_“3l÷¥Á{r«¦à—òd"‰áyr*…EnœòG£|´lHöÉ£Õ…Ô×|*xwÁ>˜€ÍtRÇCS…äʘIžR-ÉYQòbP‚¸Û/!&p˜:,@ ð)³f"@59Ä.rÔb禒˜9«Ë5oæÚûÃVþ »I€˜:¥U•']-ä‘[ëVÙ'j)†°˜9Ç3ëj4ì=áwÖ:µK`šQ˜®¼÷󷤃íÇP–ßwàcÓ‰!O: ˜×½¢›\žLõ;rx¡ôð¾€ w"’‹È½-ܘqUQ½®JØ{”¼E åÓïês½@!YÅ6á¥LÔ°ê_ß!ÇoƒôÐŽV3qÚ¬w›´9€½p Õ;·Ò¹ð¸•eñUn~£ªzîõüíÀð(âf·ØþÖ4Qö²9>X¯'fD'€¼ÈŸxç¥ÍvúôÛHa*`ö¬A8¼ÅIµÑ™fåÇäkQPú·Ÿh༪šçú} Äõ¤PWÎðΙ‹ÑÖóPUs¡`ŸžØw¿üGŠLôo§aÓñ¥e¦¯Ë ŽVW”å¦ô˜³w®[©–Lòv&´ˆ¾°—ñ1t1o«é f0:2¦!TOggS€ Œ}w^L2 !—ô¢ Jæ@¥všM§·Ë~;ê'd?ºþ4A½Á·QÒëûípb£u€?´ ÝmaS7ƒ3]ô#xRÎ\ …ÔL5Ãð9Àê¤m˜Àî‡Ã©7ãÆ·˜Ig:¤îC}NМcý$˜•¦‰}à?À@ù$‡{¾¸š’ñ¿Xwüã=ßë!Ï¥¹¶±Ó >t…È~|UÀR¼º‹aäJ+Aml$—ãæç¶›ŽÛ†¾‹. Ó¸$ü0 ?³ëóAI0ì{¸)#ˆÍÀF w’’õr,g‚úpƒãº‡#ÜY³ ˜$4 Âûîi»úÞ9_øÃ>œ™Ò^p¼æèâÛ ‹Âòm2¿ÁDng‘gÊ(qUèYPvà[Húúú–WjéšV™4[£€?»_Q s aÏ.ÛYf)T§36—ï€Ô9ÉRs8‚ÉLjÕ5Kà—_¡Í“‘]-ûösÏ)ÊíX…ÔMlÌ›ekõÕ8(ûû1,u£È…ôᙬf’ß’.u¸ëÏ©5 - …H?´ eT™ûHt©¼G›²BîÁ7{º?³Ð›'Mr;>ý/gcI&ÕJoö2¹~è…ÃÇÕ¦zÚΗMÆ-¿c¼’œÓeè&˜¢ÏÌß ‚ÌOJüvïb¼uÒ ç†ß¨Ù¢X¬›‡@Y‡Þsz¹/ ¼€Uê&ºí>¡ºWG‡ä뫨NUÅŽÈ|Á¿û¨¥­í° ”ºHQ÷ˆûÁŒ\Õ,á@è¼Ä3òLÓçíþÚo‡ÔëJÔ©X­Ùú…µ/Y¶QìKƒªzùw>]›è…¹Ñ}@`t]ðÌ+T¶(çÐʦ.Ø?´; be¶`ëÑl›-ƒ9fíT?¬¯tЦ·BKø*­‚ï 7¦@IG¨v¿¹ïÄ âFa; Íß…ß’.¼Ùö{ïÖ4ùE·˜4l&È`,¯7øV ¤ÔkG‡ã©e?º°XâÄ‹ ìÃJIæ»U¥ gSÀ?²þ» aÓ¦p‡;bA·¸»šRŽ­ÍÈ—ÓÝw5 ™Ô‡_ӊƱ$wxQjf\c€—ð ”/HÒ´¨+þq»ñè¼Àü2ßC£jŸÿ$vÕ{¿ÙD GÄ­ò®âϤ÷`x½IYËZ b+¬ÍIÕ¢!?²hžN"§óá3f V¼õVnJôUz8YÉâ$¤«†©v5ó>oPµAc@—ÿ”¨R÷ZXóJ©³¸aÃB°ÇPkΰ˜:/C ,©+°?,LÕjÖ_ì¾ò_€˜$üK¤¨Ê.z˜/ÛC'<Éó ª ˜; æ^ÿ¶¿+ä‚M^ÿÛ*À˜BÀAU¥þš-墴‚;‚˜Ý…ǹûȘ:9à¢c„eŠªZT¡ˆ™Õ9i©/n¤dŠ˜9)‰ºÃòºC-?¯!‹S`”à…àŒÆóÍûÚÙ#±LJŠÛm*°T1[˜ç¹ÝoŸúì~޳Z¹ŒTOggSÜŒ} =o02!—í˜ Ž.~¢Î³ù–±`©<&9QŒ…óÃG¥ïn¡q|S…ÆÓ†?§[vUwW`ݱ±ª&8…ëÄ^ˆ/xÄÈö|»¸W™¾ð𧚥Î…Ï/ªêœ!u“çáVTB¿„ûJІþ87{—Æb_ϪùNSáÞ(*úɷῺ?*—Ä)0Âät›ÑÞœ¯;Ša«ÌØ’r¬¬—Ç?o/3‚Å€×Y-/§4ò`…F¹.?³àÉMà%ˆKEý"ܪ†)´h…Äõ[ýdˆ”yøýΚ×)¥½ø˜@”F RýDˆ]^wÄ/c3c¢€˜ë¶}èk£Qª¹ps•uꀗð‡C©JèÅÀüf’‘åŽìá…ÍfD,€µˆØÝk—•~ï`—Ç$ö÷Õu œarœïÈZî à$—Èãq0=V1E‘…@ø|ï(a†¡Ð…ÔÇê ó£ÄË“ÁNýsá…ySb!Þñh÷ 8Pì…÷!á!Öx@2þ¦ÀC`l ¢Êà…Û¦–ø2<§ éÇĨÏ*1Ìò_³~D—ò?Ðb;@KqÞ µúÇ”mdÕ™…Ï}dæð‚W™ìä-Fÿnq…ÂWèM”€¬ìŒ¨6Šb»è‘³—§Ä"j"è ôO£•c¥ö‹ŸÀ¾}%@—Ȳ9§PHö·k é³…½pi¦nd€—ñIœÆ¨z1R¼F„áóÀ—ñJVÅ ¨|¨=ª§×«’â É…ÒSÁ¶Èï5öQÆKoÀ‚¯Û¬Öµ…®¼ì¥Í‘)C·òU_v$X«ÇÇLNñ¼¯a ¼Íõ×bÍȧ^<àæ¡ÒÌgÌb²êÞ+üÑeËÀ—ÓZ!nûêµ—¿ž§e¢¨ö¨/À…ÆŒ“Ø)zì­R¤í°µBʉ&âhküà…é¸ÌÖxÛÞ““ÀšËvTå_6:…ß~EIàùŽTð¢JÍjB'°˜ÓW/üLdþ¡(@4\Z𦯀˜ ?“5½*}.ûÜk;FâÐ ®£´˜Q¹AÎ6~ÄÆ–B(U@ÁB61Û”P˜0Å¥A2&k#rŸqY!$Èècu…ä‘m…ÛÃ_皺çÆ#/šího/’˜:}Ý·.Ñ h³+Þª™ue~”M¾˜9¿€w& µ–Üùx¼…­{Ú7>ƒ ˜ºt™J]©™<þ®$.yƒr—øjBò·jWT,‘ÅG=ÞfÊ•‹—ðzó à„b&Ç.vr;±SÈœ“…ÔgiïÙâá·ž9»ÅâÉ$™û@ÙæH…∌Mnú’q´ç&ù¾ÿáæ ›7< …÷"‹¤®½ßÁ¶ÏÉ@8Lg±Å)q»»…é2 É  x›Ä¼Àímž¯¨˜:ç<ŸÕJÉÎ`­È=>1Ø`•ÔW×€˜;|þØýæÖª–Ä ÃŒøÓi@…é>Øã0Lë6&c8À²¼™½Œºº–>‡ OggS€—Œ} ^\—ñ2˜9±zÇýMeÎ"/`6B²=ÖË/dZag˜:ÊÎRIfãîÆ$Š ÉÄ…é‡OÉÄðQW×0=péz¹hxtµ¡½à…ì+™ùa#TÎr ÷{{PR;Çw­£˜@™okF3üÆ /X)üt»â*cçl¸˜ÿbI~u'‚¢éï+$$û¥Ìœ˜ùÚiW-ŒÑ˜Díón¦eEV¦ý¡4…ß‘ýfȬø—I«nšæ ÅÛ!`…âˆ<ô©~íÏMTŸ]uÝ:N6N@…÷# û>­;?:BYȉ¥Á5e˜7IÒC±e«=ÝïÄP5K0${iqˆ˜Y:±¼p,jZWÅ`·MÚœøx—òQ$”}î-«¸ ‰}/7cfá9‹——êÚ–C½ªŽotß{¢_Õ’´ …ÅÓßÚô•Æß2d›o @§‘¢€…ágw)P° 7;,NÛ• ´~-òöÁ…ñH.€|}î×|sD#jL¤»IùlÐ…ÞÓÐó D|¡y¥wIoÍx?ºÿ¦Þ³ç1rºF£šL‹X‡š?»?°™"žé¡ 6>ßG‚ Iv´x1]£Ä§½+Î+*ªˆèûx3–Ïž\¤½€¯!–¤Úô߀…Ôr¸¥ ™­Â2æÃY‚'î²4Mˆ‚M^˜9À4ó Áé¬-í(¤¯8LUjÛ˜77%¤Ê¤Ü.¡³·1µ9ö=. üuz@˜>‰¡`÷ŽÝª­œˆŒvzíë×ä…ßø…°Ãˆ×I\bñ}ºL¼.Ë%Ž`˜USíÕ"ߢ«•ŸÇÅ;ºIÅBûuИA&VüŸÛ§P†t½û—k¡¹ÊQ!ön…ágxEŽ ÎB·ŸÆ1¢Mø²ð5|n¯}…ôXD¼ú$ÅÊA›•d7º 2›íz¶ŸÈ˜€ˆ'`a™ä‡s(~çP>ú2€—øABxŒº~ÙbˆÅ{P26‚˜;@ƒGbè˜/ñ£Û1V:0 ¼ò:¤lâÂîg¯ã%NªLáÙÇþÖéy(‘P¥QX¼ò;ÈæPžræîSüÖæ‘éy¤K"¿ößphú»iÖ¦U}B§ß#rqÔSó‰°ñ˜[oãÇÝ»eÊ^Ï-#ÍÐ都€gªç`˜9,ñÁéè±I„ö`|ôƒÉ…Ó÷[n;c ¥wŒ³ŒÀ¦ÇéœØ…߆ ÏW”´zH*<´ÍÏÈ&šP?Â8ãÅâˆâUíDb®PvL …ßSȳU®ZŸª™Ð4gX¿ —„@…ß–ìÌ3ך às¤‹žï“BÌÞŒÖ,怘,H…tm!nEƒF‚…„~uÀ2,˜8ˆ³Ä‘#.íEçLe7«Ôç1’Û˜ öð‰ùŸ1¾Ü¨MÊxïZ  …â9ÿ/çú&¯ƒ`.ql†Û@ÊmÿD7Œ˜9Èû·Í·Ë›[ŒF´K•:%­Æš˜8¡fͧOQÀ‰þW±ÂT³T)çOggSSŒ} èWwC2˜;#êP;H:¿Äd¼_öÕ‚7ãYL …ú;ϣܚ,ÅBЂÑžõ—˜I!²¦î›Iȉ§p]s;ë˜P…ëЂjÑ ^ÎŒ„Gâï8ôÃGhSÛ€˜9²âßo®Ý :y ñ«7ïvdaZ;š˜<ãF5œusóZ»dšÑaÐ Î…UÙrn€…ê?RF‘»Ð¡èóQsWò-ù˜:»ÂõçeL²¨j–<šŒ~xL5€½A½:x¬ &ù‡ªy¬8MÖÐô1+yí½9&·˜’íHG\jjHa)Oäû›$×E½ÙJíN*nÅu+‡~74™¡VuÌ·¹Tx—ùóõ±~û 5¶'ÓPnQõG8@Û…é\Dvkð@£ÔÃÀ ¨?–bÇ'…é: ìÂ!JåÄol_b㔌àÀ˜:2áçýæ¡›±Ï¶­JzWÞ³\˜A³Ýuñò|“웈6WÚw4ªë…éE>Õã-@Jôºû×Î1ÒJà…ß•ô…é6×5’”ßìÐUÒÝídä˜79s>•(•œ@˜… ˜n.…I9©sï^Úsǰ!<˜§!ä<)µÁ8”.N¿áFˆÙÜÁÈ?À—ÅÍ)ŽIUyxkhÈ7r¢+{`˜*ø–çìf iý&)¯[:e˜ àøÛ‰ô¤‚tŽ„2È}뀘9ÇOa)F?¾A…xÛwÇøð…én4\aáä?t»>‡_ÊVis8(xà…é72I½os—p`8jH- Ÿ°8˜:2ÉðuÒï”AIåM•GÀ˜:Í®3?ùŒ¿ÿ>˜^éïe³[A°…í;º˜j$õ–3R(•ªtP+ú‡´’€…ëÖÁ<§¥eIœÁ&ˇz¬ÙØ´…é3#*ƒÇÃ15¾l}ÎýÊ…ì6é boŠe¿'5ikÑ¡ötæL˜CEbr]ÏT¤u‚o7 ]«ç´+à˜CEë‰ÃpÂ-Û_WõÙ.Úîs–.…ëæÈPa¶Ñxß 7Àj Ä» }”OggS€Œ} ·k{A2˜Búq¼×Zí¯ô™'gºÆš52«Ø¨…ä‘BqÔùë61˜ëµ`R)–÷KÑ‚–½°Mäñx”øT§#~pÅ¥ô‘ ï6à{öJ|€½o(ç¿3ø6>[^âPºÔÍÒ´¨ ¿ù²¶1ž¨„sQüK: ª†–ä©@S‹ZϘvøü|ˆ™ä?[ ýÈB+Õó’½7-l’2¥ÝÁS'þ°gI#Ì7F÷¶SK ½$ì­w„@d'6™"nÐÂàaqûNŽ{½!Ý ûc°Ñ]$ÈÖâ®@fyÕÜÊÉÐ$¿»Ï½7&û)hBPÅk4%µÑ_Ôrî#*S¿E€½»oÛCT%éI-BÏì‰1yÁ5Mk]uò(f@…åHÒtÁ‹­~Aìï ²Ÿ1N€ÛX˜:-ÊxwG¥?«Ž€¡·Š2sno1¯fî@˜Bs-™®RÊ–D …˜ñÔ‹[yNŸŠ€…éÇ6óqw)0PŠËrÄ#x@˜@“n¬‚ÙÌîºL(füEA$ó8?Éœ5 _K§4Å~½¸rªmì˜9¾j¦kö Ü[øÔí\T c˜:¹¸$»+4]“Ì¥AËgÄ[fd×<¦€…÷E!G×ÎP“þè°Ð%£Hh­ú ˜@Šóµ#õÐû àqýï¾T)˜øÍÔ`"×Êð?ˆ®Á¯~1‰?‘Y¯9!i¶—¬T²$bÜÆÜÔ|K ?Â2ü6YõDÖ¯¹9³D–pÁ3ƒ<?Â5aóò±jWÚ1À4žâ&O>‘/€…é5KŠ<¶óM¨(§ä²£ÚkÂÓgM…ôÅÛÝJÇ„åQŒLü¯ $æ©]P?ɼ ÷kà„0jj÷Žø?Â-$-ö(°i:)7ƒ„ø8UpCÀ˜8ñ&y‹÷)jȺ'j»'ù^€—ïè£(l³5Ù%K®üÌÕi±„µÖ¼ç÷ÇE‹9h{¶Ñ¸¬ÊîÐÐêÕ`õŠ^Îφà—ø¼þò@F®õÎ{ 4ùÐ…é4Hªib[Û‚ÈÔ´}†¾lö€˜:@Mò”ÜìVê‡s‰P…éc[}Òâ¾@P\…Aï¶ÇÙýO¤h[’˜: È.¿SŠý;±¤ŸOÊw:ŠÐ˜²kþú-i"¹ñ–h1Ɖ…ˆ¼ûâÌMM"¬Ý4"nYߤëª{~‡fà¼ø[ñ©3Læ*N ÙµdüTü1mg2@ÈÛH…ônˆfvPÉsšÍªêä4,€…ëÐÇõ¼v/¥JÒØƒ*Ï\?ȃ_ÿ ꬞¾í†#i*c\y4}{J”^åHœõì¡ç ?Â.B¢¡‡<}^<+ð¬$Â`À˜$cR¸Í¡Šæ{öN•núFv `…éca/µyx~¤ÙáÞåò¬QÕÁ¦À˜]')ìþ­>Ÿ'+’*¿‡–áCUëJF¼OggSÊŒ} uÈ‘©2˜9N¿/P÷Œ¿ŠÁ—/w³š˜8§Z'°ø6€%ôÐMó\¡HÝ…ß’Kñ}]Ž:mé ÞÓŽÅÆ}À˜ßH÷'‰0,‡:›xõMõž2GíçÀ˜í»â/ªïìc²ª³Uº…ì7äO†Û·é\Zä™ÿYO! jì[…ôª¹Eíèi™]X 2]Pæ×~~ˆ˜Aß´Òä•ÿ7¥õG̯3¥ÍT£ ˜;|3ñtOÅ{R{*MbìQ˜„Ém〘CEÚ!ÍÞtÍ–õ|ωŬ®?Îø³æ»Õ%%Ìþd{` M Þ@?Ϻ˜5¥=ÃîûÌ5kâA§âp…ìbç%K.MÝѳߨ޾ܖã‘(…òÓbÏÚ†u|±fñÇa9^\;o@¸˜@·r 9tß½¼×Ïìæe ÷Xlx=…èdy#{¶ÛMÅ®¬k—7bÕ5C˜ht4ïõ§$hî.(°˜ †3Ø(bAê`0¹ÖK©|Ì5ˆ×˜:_Àа³ä F@Õ¼µþµN˜8È/󯈎µÐsàw~cHj°¤ã˜:df‹w¥6óÔzúËÃÎyÙ@ÿ˜:de¯œu´«éØPxséàR$ïŒEL„òOggS€… Œ}’ݪi2#˜:wEòš ‰Áaè¹ÿk xWòô[¶p`…ébw£)yòûävWÅ2Û"†Î3:€…éÑÒ0ÿˆZòÏã·à\`½…ÿߪø…ìbw{Ä;‰»·ß‚¦¥BI˜DÔG¶?Èëfß–s÷ëÇ9‚Gh+X˜F`²î¶_xX¡C¢W}©"Vè" ˜T%0Î+ˆiñÆZr[â©Q s˜C âà´DŠ•ûŒÛv I,pRì×] ˜CîO>¹%ËXW+%ÞK›:Èz†(ß[Lü~oåD±x‘x˜7dÒ¼ìæéÉQ¢hÁ&‹«È î²bQp˜VÉå½5Ñèl._ûOºÁ=ƒrž"˜CIn«¾ˆæèÛ8º×oC±©h~|Æ‹k€˜@™ ˆPU‰Á´Ð“^?ýç$êÁå'ŸÀ€…és"8¦XYÂ×ýÇ@,†<íg`˜8Çi›KËÐ,Щ6ô+ײ"€¡c \À˜:dc¤¼urôêI…T;KµëÓÜ},è…ésâ‘vŸ!]RZ_˜w[‡à]~a%Õ¢…èæôƒQAÞUnLô’?žØ %_IÖÿÆ…ýŸ¤ v”ÌF"›2a{aûÅ "U`˜Bøó'M"¥H 4,ã)â…ìKÑ“NÃÇå~Ú¬äö%éâ…ìø7¦Â÷3 /á.ê÷/r¯˜Kû= àèë6?£(d;·ŽG/#A@˜L8…X÷¤æ+igã“õ±æ˜J‰´tGmäe‹‰Ù<ó¦°sä· þÕ˜D±ÈÈšÍÄ1#èQ5Ñ2Ð×ú•ÚÜÝ}@˜L=aòxAñ¯n4âº8WŸœl*S×Ò+±v0˜L=aîyžÙdôdf~¸4{Nà’ð…ìSUX’Eì¼þÕf¦Âñ&®Hü€˜B{ˆûÄI¤6rÕ^ÎMÕ¼jZ6ø½r$|Køë̱Uï*2yå#Øã®§¦6¿ùgú¬æÛʤN±QkàZrá;tý›ýÁ®Û)jÄɠЀ…ól{ípÁÔÁæüFºUBÊ$(¬hó+I¤¤˜9Äï§´÷‘ž‚(ÇnRk¸’^oPꀅé‘Ù¦N‹‹,â…Åo6Õ@…ólaÖtNi‹^-Vð‚ÓÎ"ã~ðà…î\.àÓW6´þ]}Y¼¸{?É3j^E4L»ªz üwâÒyÎH-ˆI“ð­Åð€…é8Áy‘ž·*õåp饃Út˜<ú¾¿ª`•±Wy¿rSñ»­-Ãæ·„˜CNÓÓ¬?=HôaMáxŽ©åšÀ …ðpÇ5g"iËÜãÂ@gÛ6^V§Ê.t…ëbÑôéÖßúè@d½Pï-Ìæ›!@˜9§7¯ášÉ¹±4L§T,²¸Â˜9+ª»y¶qZ8ŸrQ'ëÂu€…ßa3ï|Ä^Ìùö¾û`?Â&æÖ$²NCëô¼°kÃa[Ø…ßÅÆvÞVEhN’ûðÅ•Ç:"…êAö¤ g¿ÓÙ»ße»ÛÊm›mŒ˜C›ÉÎä±k¸„¾Ø‘ãjr˜Bç|…ØÑçñô%W5P̀ݚ¸Ô=Œ0…èÑîÈW(×$1!û¥è»Æ]îí«þ²?Èvâb?4e‚ÈÄ4]Z$Í´:˜$lÌ|,¨¯Â]Æ ÙÝÑLÕVþ†ê˜;Œ¶Lã_Ñ.I_wM—’u²]IA¯tØ…ö‚‡±d;¿~çJŸ-»Œ¥Àõ­ì˜IÆrÀ ] ´Ró<=LôØd~¦³~…ìÂ@jÞ¬7S ŒÄ?Ê<¯‡û`ÔÝ€˜B·>G¤çnÀ7$GF«¼ÁÚÛ¢€½7rˆ}º…3ΕŠHU+3Nšz1àíw€½9i¬ÀDÙ-¡=!î}>`–‡Æ¢f°WǾà¿ûSºzúA«{£í—wP°ìPj”;}ž/©ÿªõ½C×¢}üñ÷ø;£qj‚¿ñ݉#1äÈí¿ûÖR ÐáƒÃé¶A±\!‹ó¹‹ˆ`M<˜CNN™Wn”P „e‹­³@×NîÞö˜C¢‡RÒ&Ñ ž…T‡ó¢%¼„_gÒŠ˜9ÆÎÇ‚ª ˜7+? ì9÷~Á€n]éè˜:™?¢¹l;ün:NGT‚3“Ž®˜:¼šþ¢:6%‹>á™Àa§Ìæy•µß98˜F:õ!}ÓEe.f†þƒ|¸—;$:ÚŽ˜CLánEqe~f .…”¼—}1¡f×;|˜CGŽwãœÕ¶7H?{óB´˜BƒLÂîÈ=ÒëßHZ8‹˜:¼VDŽ?ºÙ‘ªÇä4uQ®~éKmà˜C:ÀO¿" ŒÍÈ¡¢Í;cîM½7 ¹¢´›Ê¸:ˆÁ˜0çHÞ-ÞBî ¿ûwܧZé¯÷goÂP»x)µdi3/™.Šì(´½A  xÃcTT¬w7–^ùÖôªP(ŠHÛiŒãä…âJì:°¢wÞÔ½¥`~ög=²A8˜9œ,ú¿’ñÆA¯‹ ¥¿±ÛOggS€ü Œ}ýwÂ2…éD ž DðòtÃ÷àñ8f$ïŽbðUH€˜;¢™‰Sùß¶{¶8¨˜ŸsJ$|(ECH˜C›B$à[±¡ç&þKƧû à…ðƒ?ì=>ÓϽO«0ºß9ØÈ˜9ÒÅð!]ÓÅò±#ë¶‚9ûZ@à™P…é*ÓJÌ $SrÁLoSî-…é,%"þò<ˆ×Ü&yÀ‹› '²…èÒ½ó«Ø(qX£ØE°˜+7³»3üÔ3—…]ý¸“ß(˜$0 B? õ…ì¤'ͨsrѽÆX¼ò–úŠºñ³ÞHùh.5B«“¤¾2N;à ² ¼÷pH2Ý×Lç’úfÓín›Méòó6O‰e¼ò’pœ#™¬BØnšTƒ•i QØÕ¼òœEæªSbÐÙ)ïÔ@`ÅâþÛÓcâDm2˜¼Èó×¾7L°Oöð5›'P=2©Ÿ‹ÆÂ»±è…êrŠQÍXùÓÊTͲĦŸÃÀ˜LC‰Z3¢?–Eì#1“€V9Ó½nçŸs†l¬´Àqbp{„ïÙ'LŸpéÔ‡@½%VP§HìnðUGäí®¸àŒ@€ògˆ½91ž+¸#QjÂÄ`¸ùb/¨ï¨Z ½ŠûÚL´k®V¢ïDñtÚì¾à@{Q&€¿ùØ l“Tž‘ÄŽu roÎ’Õ¾”“át‡ð½:â†'D¿y3èU Q{½94ˆ‹'j[’'ä0$˜LCdªÓ‚n°|M Ð=){‹€ÕÉ>ù@˜Lšö7/(¶ˆš51%íÑ#~CÝðk½8wgó*¤ÊÊ™ôC®. ®¢;µÀ¼ò\þ’Þ†œÜG眰ÅüÄs ¼ø 7µžéjÔ®$üªp­îÑUv`ò è@Ýã½´…Šá \ÈÁýKë\5¢p€¿úž6óWÒv…ò]ôªÂ"0ly7>°ðìHüt½7&÷Å`ØÝ’Há¾®:GÆ ±•A?Ç’yÎ>ê;Ô/Äd-¸µ’•x¹œ€—ðïÚ]‘ÅwzOnåVë{5‘¨dâ„w€—ï{%ä¤ ìâ_‘&qÙ4ÅuªC3¹OggS¸ Œ}Ókh!2 …ßaŽÅ›®±=ë:Ëï€y~˜ù¨$Z¥b—†4ü#ñ’ÖòQø½/U¡RÌîUÓXR€\NxOY·¹+\âd‡0bà½8*ôë’æ¾ ˜ß´Bc ÷ï;] Z†Ì¡vð¼è8ôvÄñ~¤´\¨˜¼fEiáG[„uÞ¼Ç#S`67ïŬÿcPï\Vß³{ª¼®¶ ùÝuF±˜ŽÖ?öÿÜ{Xçs1¡Ê¹F P¼ÑžoŒ-0±-t?€÷³Iêƒï½åv¨|˜¼ò<½ZÝQ Œïr·çøX®¢:ï­p¼ûCÇÃ+¢qVÐÖnQÁãàkȆéa\‹€¼ò1mo¹¯¤°“–IìŸ`û>W7¤›m¼¨nA‡_…‹÷ïÔ‘hv 6üò¢— ÿd„@¼ÍÎ\ö½ÙÄÆÜ@EÖ7ï‹9ż„¼È­L#ÛP‚Œ½^6oþjø[ŸjƼÈò~[g%þÜÝ[)î=5€¼ÌJ`怇šÊýWÖà]$ávrb½/ùdÆ~äœÙ×ªâ»ž¬®,×̽Á¼ ½7®‘Ù_‹wÅ3ÿâ€}É:ÒÐ=õ@ ¼èM…tR,:BÒ¹oïAxír½Ûƒv€¼¾cºvCMLŠ&è,Ö–ÍP'Õ¬v¨¼¤*Y’×툵ƛò ~ÔÉc#óEdï À¼ŸÝã¬ÆãÙ÷‰t¦µ{E¥›¨²¢¼„Y…8A™×Ÿ’ÊÖºìõ Úû&¿ôþ6óÏ^,k±†BM½@ªK¤­ž§R.BW±à½6‡ :¾á@o3$Éòô¸¿¬“¯!bšãIüà¼Ä1‘ÙÖ;g*tjƒJ¡3Ü™L?µ24ª¡s—¶Ò'?5™‘ÚŠG·¿?Âq°‘ô`<Ÿž{`Y¿Ë—å"”Á¦NŸ©Î6z)ÓçòI x)DÝš|¿£ÞÇÇ5¾­çgv}…È=jM¿Lüªéæ%šh:R¿Ëbx˜*SLÄVJñÍ>öU›'êe% ÷P˜o÷Ѥ²î†L*{sNÕkS€¼È°²ßи1c}Ȩ„mmVRä¼Å_|â¾0“~žè–2!ïíß~ô8>¼¨—î.ž¨,>Ä)P¢u}ë+‡¢0´î¼Ëôc#ûs`¶CXÖ·B,ë÷”¨kÝùÓ„Ö ž½0ao&ÇdÑ»áx½“pÇ‹õO T*]{T¼ ½@TØý‚?ÐÞ‚²pS×ÈÌøƒÃ5RšÉû½ÎŒ6KƒQEßxütÑõ$à-½ß@¶M–_ 惊Ž{Æ1%uYúëÖD¦]ª»7R½KÖh‘N*s«^ø¾¡–Εÿ›=‡V`½j ƒ»yÍatf‘4Ãî?Êxgk¦W€½-yMqúaÃz!Ȳ¿²Ÿ“ܼ)³Âà½éT¸ÏâjÇD¿åyñLALÄþÁ^J|ŽNÀ½9s•ÛøIØ7o Dé‡oØt$Ç#oÿ”`¿ûîÙGNtQ˶}izDÏSÍäe¦Å@½…É–j»Dä­VŒ0ÁJWv"w.è˜ yƒÚqìœ6òà¹[ÈHf úÆ©X˜¤Q…ÛrƒbC %c-.m#ÿÜ€€—ÿ{C®Ø-,¥ÞKXÈøné£x…ä–Î"_¥ï\ã±Ò™NTù:RÏ+˜9O©¬µiȱºà›ûfÝ#¥)ª¿ð)ó@…ÛÞÝCp€0rÔNÐ…Ò¡ÑG•È:ñNGWüƒŒóhC …æ%ÒGïÑQ®†ÀÝ¥]¡%Ÿ¸~Çÿäp…îO 7æ¬Dv)M‰%D{äþ¼ò·Ybç°ÊcL‰z’Ž'K÷5ö˸`”½X…DOggS/ Œ}>Cf2  #!'!¿ù;CnÛÜ2ÝPmw™2;ôí™øú!ñ•…év¼]»‹ßX¦WØÓÅ»ÚE6"Ýà˜9¸‡”n6¹ƒTjØg.œŒâŒ¤˜7K-¾ËμVõÇbg{Ä⇢©†·ê—@˜+kF¡¶Ìiôù½ñáH/a!³ŠE ½ ˜®IZ¡…á‹ÎX7%*6ëgµ¸1]²@¼ìƒe"M‰T°"\²ÏŒTF ˆ& C<„%Kdå@¿ôü.wÙõØMÚl º[ßîë“¡FþƒWtÓEIy Ña¸½?ƒLV@J€ 'EÐè\©M è¯Û ¼ËlÕk±›go¶SóÖCAJ eÁ÷@¼žÛ•¾g‰¼-yÝ´Îz@_&O5Œ¿î-å­ª„–ÑIg†—iS$‘è¯]’Ñ™ ?®.}‘`8Lû^-µ­»œaöUEœÀ—ÇB¥^‡Åàª/>­î8k4˜RÒG]ÒÓ…ÉYh쬑v2 “㘀[<Ëxä5Ua™À½6æf³›Þ²ÀJQFâ4J¥å)P¿Æˆ Ýsßî~?¶[Aæ‘$òú„èÂÞè?œç´åŽÀ?´gŸqó‚Ô|c”™ËJ6M Ža —Ä)Š’5Bþ¨”jÁb(EO;lh"B—Ä)ÄYÏÖ«¤¥¥¸^27D>»ö/×—ÒéG=ÓïRÀÚ)îyÃîj¼{¯Ú¥‰—Ö§ttÃò“ «­* 6›:ѽÛ@˜9AÜ §úwÝn›yȃâ¦lœwˆn˜+•q{ ¸I”†yîõôÓvȬ¼Øª‘•2·ÖÌ×åÝñÊIå¼Yþ웜ÙÙì[§¨¼ÇÙ…¢@ÙF—–¬ߊóñ†Æ¥aÍï¤WG`¼ÑuòØÜr²¢“¢“5!¸©ºÉ8G|Õ€¼È³Ð¥v‚pÝèÃÀQ¾+ ßmãÔ¹Ò+Òêk€¿ôæŒ$ ÷<92†vf³«ß_/U y°‡ÿÀêÀ½@,„8Öl´Äãƹýð=¼ËÇ )0Bƒ“î Ã!®/À/K4—œ€¿óœV´fxÝ܃nYò÷»u^Æ•žÞK€L ¿ôó¯fëÝ>ïôƒáÒ±5—ûf3Fº©„Î9P–¥OggS€ê Œ}€Ý?2  # ¿üè¡Î#@ì‚) '‘2Zñ§j4Q›‹ŠÖUÃн8£‹8{Œ“݃üª—.)[”«Q·¼SHFÑq`˜:×j1Lpù:›k¢ämg»ÕñgG°þ½B^Õq©,ö€¨dÙ€ˆø Ú@IKâ¿ûADÆD‹¼ ó¸r„JP †ÝƒÅà¯8sûvì¿ûACü „åháý^ð‚p€åËßé[¢G¯Îø¿…ìO^‚®ŠÜέYvC´*÷…Š¡Î2˜C¸tþÅ~µK*é·FÒÇÎf-=ƒ@˜Crp?ÙÃO6ßÇ1†Ä%NVÚaÝAh˜@”ÞPö@b.’!ü„‚³•Á¡î˜$3~‰Íc°”o&Ö°F ÁÄýÖTÚFÕ€˜@”æw©9Ê[%dvwm<óÓlþ5Ç8…éÈ?|„ u•e\XöñX`Ôø¼…ìS çMô‹o#*í'0­¿v’HÔ;Ŭ4½7%¶L!ÈEÔ›`žV ÊÑ\î¨)ࣷDBÝ*Áb½z€¤/¾à+UÓëW§g•ØÍ+!"ÂñDð|¼ò@@ åù»9•DEO ajÔ—ž¿öðp»Ã+Ù6þHÄìgö±D•!#»`¼ÇH³ÊÔUf’ߎ§:œûbì`ò޾—Zx¤£§¼±%Z…õó²ÂJøZ%Cêãö¼Pɰ•TÉœíIÏ ¿÷,Û”¤Ö?Ý£j^w_Ú—‰¨ììŽÍáRzº¥Pð?Ф¿ûÖzžËªê_K›€%"†S–HÚN,€¿û6SÈb6Æ\ûÍtz¾Sƒ›¦ç}#‘¿ùØ5!Æö¾ó ~¦à™·Oªà%XÖ½W|€¿ûï¹%ÔyßÙ€”.Íâ\§F…s+¦ùÀ¿öyy âWøøñ„Þ¾˜JÝ%H-2$¯tëc€˜LÃâ28¨ñxEÓÕ´òÛõñØ€…×ZF* høp%í tÜe@úK˜es˜óY("48E…bg^~‚ðû…é õþ^“®ˆSW£·)¤˜:mc¯ßP¬Â°=6Ò>Uo¬ÿ¬O4xW˜9Ëp¤œëÿ×Ê<¿Ÿ˜ž† óh¶€˜9¼Òÿ¤¹Øè4÷ ÿmž­‚ ‘Ó;øk½ŽI6tEïKÎÿ™<¾æ–g†•HÞRwž¿öŽ»›×Â`gÁÜÁHºÖÉ%ôkOáÑyõÛcË#Ô¼óð#¬vuÄSPÓ—.ÿ;e…] µZ¢å?º€¿öRúH ±Ù1šªí¾+n8úÆü©Œ9ð¼è4؈âxh û\í-‹‹8%K­F`ñ×+^@¼Éž¨t²5°h¿ç6¶ÂüfOãs¿ùy‰k¹±•VÁÜü ²ÅÚ¶½…Iè¥è–;ÞqÅ(¤~)ª À¿ù`aìöî›}±¢z ;óÜüÊQÉÙ"€¿÷y«x¢ÑŸëZí”[m ã ;9˜¿ôÄëà ?ÏVÛ#‡Ô… sÌ î-xfi¨ö: …åoí¾Y] ®Ò¢ÿT|±å#µàOggS¦Œ}"û˜h2 $˜C 4³p̦ИnÖH#‹=!˜C·¨¦¶üÍ,­†ü7ß|¤*8›Æ¿ø`ì烈x‡]PùƒÛ|¹Šk㆟¿d5¢(M“¿öÌÓùMQ”|éWÓöwœ±N{ìƒØ©«À¿ùlÔDàÛî«ÄHê1IŽ!«¾ë¹‘vÜâ®Iï±&"Š ¿ú†×³yÛ?’Ãcnmxß§ûz1(à ÓÚÄÃK½RÖf 3Ý7´•ƒ*¶®3&ô1À½7)¸šä[­WW¥^â™Ì79^[!a«t€½!“‚‚nA†~Z`Jø•ðzÒ)['°½;fo³gš)Ûö8Ì÷´Ç1Ü‚ã»=]Tà½9n™À²êäbDÁ?9æZv-l9ëŸW½;™jŽ©Ç³½‘Äjl;ý`-1ºŠä  ’`½@mÁ¯]Ú¥R&Ãpðpz¾®4"¨13H½FJʵhEacžÃN ?°t€¡ÕTÏE,ø¿ütþ 7ovßTnžXÅ3f¢Ã°¿ûÖõý„ `Ûê_Fñô#zÕ“.¹è¿ûEq¢§sùSÁãmväñQõ¬gæ™§ø« à˜Cºhé@¸h¯äß ^#B5Þò˜0˜BÙy 0ÆQª{yÿ¥üz†+iJà…ìòsÚ­AN÷,0ðÎp»&.ÿ^?¤˜e%êõZÉD·ž˜Q²ö¨¦@WO•³S…ë40dÕÕLVTNBtŠ?§þ#Ú:£N³Tn»¢ÐjÈùâ`~p…ß_ö`0¡Ý%“¯@³€ÙÚRµ€˜i÷pÄ @iÿ#òÎ>/Zé~ÑT@­î˜ˆô©+ƒ,ÖànZÿ(2Z0ÂÂ7J[Î#¤…å —úÉtØø"¨µæ…nÁ€I>ûu¢˜R©9¦ŠÛÑnAœÖ®xa^û_šJ„˜9B%ã±vÙÌ’tZ^檒“R|Ÿ …ß`·x}l\º¨¯tOåÁekn25˜ÿ¿¡¤L?v«7ùÌ+Xç `ÑÀ˜«çÖÁSÀ^÷ês·-aÝuðk@—ÿ0ÏÿCu3„¦`JVæ¢uËÇ_p˜$/æ'¼´°˜lõ· ¢‰Óü …èѺùptT}o*þ¤i…V’˜ïÊ%ôÙ_¡Ì`kázıµ\aÏõb˜9ÄUŽṳ©­¢þØÅ½hþ)Ðö´˜8„þÜÌÃk]/ýñ*yg— ©B„¹˜$(›Š*°£]Ü CWQxï"¦Ð-+#€˜:h]üU“ÅÂå:ø<ÐX‹=¦AÁ·¯…éî•„ ]?ÞWÜyÃLN%lï`ÿU®Á¡›0˜JìD™áç]qÖŸì‹åk›á·W .uìðߌ…ém•KÂô$À±­úÃ[í2/5ºh˜k×9"\.yðL|"/øpÝ4’³…ˆU(¿ûÖK §Û¾šÁ‹:4H² òÍ$ñ¿øëA<šNëC¥ÐÁ¢rê_b+¶ O¼\é;@¿ô°¯+ajwZ3GFuÞ¨å弩[LÉ÷Ü©öa€¿ö|èî`L¥C™Ö¨Þ¨³½ù1§LJ¨ŽTz˜¼È  ËØððF…XÌüxc“ËZ­ýÐh Ä¿”ð¼Ô”CO›u%VÊs®Q°=È®nú:º„%2ô ؽ[ÚÎjg³#ß®Ó-Ó3Œv[‚Ù-6¢–½A³ºŒ˜Ù|#ŸŒ`ææøEI àÒ_!nH½9ni¬¬P(âdÖùdB÷}`$‘ߣpv”¿°½9Œz±²jFÉ÷ Õ÷shˆ#‹:È5b`½9òC¥¿ýÎHS’’3û¶p¢*ßét!jþþžñå½:<~¾A²õz”áÿŒ¥nù™$8 4ž¼¾ó€¿û½Ù=_ÒCE•² Ô¤™Ù&éÞ\(úo =Õ€½RœsýF~M’xá<˜\^¬R£‡m雼 ½71TRa˜ÃBEUWÎDð‚Zdt]ŽÙ»F€½ '˜þLz˜_äC@ öcJiÙôRo)ª½"#]ó/Â…Bd^rJ¤=/,r>·fMåžj7%½:;xËHg‡êæ:Õ\l¼­+à'UÌ-˜)•˜½9ƒ‡•“°}­yôâ’`­ŸO„—pJ©¿û½@`ÄsùE‚=Åe«~ ÌÍJ›g@䀘[Òþw‡#W¿¦HeqkJÚîR•<€€˜QÅshxþíóÏË× È´˜—ó'í É„4ÜG,š§“_¼¾È7ºêòâ‘ËÆµ¢¯€º·ÁßWA ÿ¿ñ2ʼn3ôü6ÝïÚÇ:"?ɇ¯ÕŽƒ.™Œ]Zæ ¿óÁI‡ùçL3”Æp™Ô7ø¥A©Ô¾\òKÄ¿ógø½»î`±^qjÒ ø?D‡ߟ?{@¿ò÷ÌÙ cÆñ§æ¬[îËH #Éðé_ P¿ðñ£ M²¡¯þ“÷,õŸFÈèwm*:c`—¡´c*¿Èx½(:5¤Æo£Ëè5Ç[^À—Çm„H%¹KAÝå©Â®2OfQK&5† …ÒDéˆÐ« Âä5Bõ¾OâCàñ€—òþ»+N–„n#:ss¬ˆ(±jÆÐ@—óo~gp`i nì‡Ç -h&G“y»€—êןtœCãßj,0—*ñ&ÈQõ@—óNkÂâ¬I €­Q¾Õ"5¥ áØ(—ó$ ¥÷?ô¨”mgšNÒà{I-=k*$…ÍŸ](ýCë+¾ ÁÛT‡dbšAÐN¼¯U!;A6³r½¯õQ——Sv6˜oSÛ’ŠÑx¿óWÚç ÷|±gŠ+r\Yɹi < ©X«ÍÖó…¸\÷¢ÐãÐTm%TWåÖØ`Ým€—êâ7b6(ÌÖªEèC“ëÂU6rX®‹——ÇrŽEJɦ³èêMvíK=Ee8æ‘è—Æ™³‘jmón¨·Râ‡'Š™_„€—Çéè@fGFŒ ×kç÷C·Lhá7xð—¿p-­… óŸU§‚ ¸†·‚äç—È*³–ñnØ»D^¥’>M»ßÑ ŸÔö¦¬¼–dF7Š‹G')¡CúP6ôÕO “@¿ñ2ŒÓ¿j Þ‹ðçóQ2¬ÿäRU Š9,šê¿ñn-ÛrYȆŠS_A»Åá˜õ…ç瑵0¿ó“‡¤‡¹ù¾ÌìzÇ£SE.Qåû.¡Ód€…ÆB]§•'DÀRq®Hr%hC&p…ÛèÑî’€šv,°žt¥‚`—ó] ]qÔêjºY#à^ì¬RyÜΗó¸³^³’p¢‰Œ˜a¤Ñ]S=&‘p—êÕEín@ÙšÚøˆÁjΩ6ÃXQÀ—ÇHãz,S™üqz”=6T™’à}Ó—¸ÐœüzÉýæ¦ÛÔ-Žp8ü'£—É7. 4]„.ÞÐ @¶d¥eæ@…Í–((ªI0N s©ØêÝ“K%‰à—¹<‚¢ÃÇ£á‘LõðÇ3Á\¨…ÇæÚ³3)¦«ãº¬ÃÒMR“Á“s¼¥-¥âßp¯-롾ƒr‰쀯´Xl~<¼›ÅX™ž¹FÇ0t Xås™²ÿ Ö¼…ø®øD³3‰[ûÕ¦'ÁGDShiâQ‚ŸuN ãмÃ\ÕTà¡H 4‚ò™ºþDN 6ßÑX m²¬l¿ñÁ;˾g›²?¦}¨Œ7$ss—ÿˆ‰ßhOggS€ØŒ}èJv-2 !!¿ñ í!Íj’Q<`j«ð‘8ìP`»0ûÕ­t€¿ô fϬêÇv „Nîs,—¸ À¼ÈÓ'%@1¨`¼À“i¹ u©ã jÕ²@—É7~™o»‚íB)¹63âQÌ2ý¼£2z:Iã)E|eS±l—Ò<Ä×…âÕÀ—È+1úR¼”—vѾÝ\œá<펀—È+SÞà|XÒ†çœ@ö·€#ÞÞª„¼œ´õ”QÚžùOß7‡óÒ1Jd-Ð .¼£3-6¡ñ}²áóØ=2 eìü5סW¼¢¾Óùâø–ÿŒ!›‘©Ád(íà¿ñ6ùª"¾’Ó¶Äu oÚ4¤Nã~€¿ñ7oÚ’ÞªÁ2LßÞ_0‡ê´qгãïÅü!†Œ¿ö•0Ý«ã;Ýô†.û=DHµAÖ”ð¼¡9W_-!ˆ_á¡«TDkJ7$லB(¼~hõ¿Èãm©ctG&i'B}gÈ“6OggS”Œ}[öI~2 " !—È+QŒYF/–X¬ù›ü§9X>¯ÚØ%òš›Î7™ùj¼{¬n뚇ûÕ2óðå0|£§Pev뛇D´PŽ CátX¼yÚ>üÁ¦®ÂkçÃôo`0SÍ"õ¢QÔ¼\M'¿þq½†)| ~²=¼3Ô¼|1Ó:5Å8á3³ ͈˜\aáWá¹çtfÏ’7½¿öˆº×aÙLs?á/ƒ$ Œf5Ý4ÀƼ¾Xµ¶šIV'eËÒv3d8¼¢…} ÓÞ øÆ¡ šL1÷®Ú ‡að¼¡8z蓉¦°QxÁ®ÞØW ‘ô¨¼àfÀ¼w˜Se¸á>Áœ nLã( S´@¼zHûD^ä5×#òvQYÁj1DóãD€¼y’\€y(q] d ZÍ™_s¼Ìz2¼®»„a Lûø…ú®>;9Rf¢µs\¿¼¤B+ ·|Úï5)HéQŸ”€¼O~¨•PÞ1»¸6½í–B²qÜ•‰€¼+¨òzšj±>ÃV¨òO€‘Pp“ìº<\¼O5©¯%Ä®yŒÿ4·µ ›¤ï=Fe®yÉ.à¼Añ_½w9Õ a”úgì°|¬sF3`Ê]È aEè(¼QÿåîK’vw”÷¸9ÎðClúð¼{¦'©ýÅÌþC7ƒùpãÛáPwv„tÅs¬²¼®™éÕá§Õ†ò*s*Ã~vL‘®fLRÕ3‡—¹Œ”÷¼{ü1 ¼ªÔV5ÄçšY>/Å–erɈîõ ¸â€¼Ä®•@¿B¤_\îk¼œ37Ïê’["Ú±Õg/&Pùƺ. ¼ñø¸ÉˆÇ| ¿ù(?SëjØ^eML*,xënAàò_2$©ßÒ¼ål–T¨7À3Ú­(3ÚM®[×-_ãðë&¼šCçDu”E„­õpOÈë‘,9'ŸËP–€¼QssÐzaÓ_œíÿ3˜šG†`øµØ?¹¼(|Èdî  Áß4‡†äÒÊ •Ìm@y‰FŒ¼y’úõpÈží7D¸}ªO{Õ¼ÑY²èOggS€OŒ}ãa£¬2¼–NJD-—µ&æ‚#ï^jT—Þª‰Ú`òË%>½wÔŒ¼Ej!ÆÅzk2ÁíD˜¯-;ên?äœá”@¿ñÑÔª&£ˆ»C¶P]ŠbÁN+x®¼žœü«m ’”v¿¶L«œÁþ€¿îfô‡e«Âì–ʸ6Œh‡øWÇ÷øsè€8¿ðá'*³¢•–!û·É ÕS{AUoÖ¿î¢,b™¾Æ“qº§ÑºzÚe¬ßPûPH,.ˆ ¿ñ”F „gø3< Ë4«mxH» Y\¿ó…"ˆ%ä[*Qh¨<ð¢çV‘Ìb€¿ðêu:‹›ÙÚKÖ“Œe6GsÍ!©åîæ€¿ð讓ø˜ê¡o>27>ªÛá”×ÐY¨¤·}CÏ@¿òpÝÕðr|_hÍÍ\?š×R¢.¾*—;WX€¼óŒGeEÖ1‰è(( x6äömd¬¼óŒE/_ŽDBTN8¢4òÑꢅ6àe  ¼ûÆçKÙÔõ.( B’¥ŸuÍXS·kSżôÂKÃ5¾rƒ$c#ù›|J$Šsø¼¾ 9„—̯~Å>ò%Ä2²"—K°¼¯$S|ÿKt©ËôYZGiõéô¯{Ä7ò@…мËâìkgåÕ‚¾ÝÞ(û?W…õûxæù27ÔX½c·ÇÕ“?—&t*‰±BÛ'Ò'€k»'ð/ø¼÷[³£ÓƒÕÂw$Ù^žµmçòÿ¼BJ€¼ø&{Q ¿6à) ~ÈÔ½çmRôÒš9½+ä¿4\ ÁJx¦4r«ÖÖx$‚Qe½9ëõ½‹‡Á|´¿ÌhLo²rÓÓTm½7WstúeV{fQà„«j‹îÀ‹è¼õЂç©H^f¡l­¯¯õPÈ`¼íÊEZ±`MofÙŽRæØjß„Ii·ï¥@¼¾´#Ÿ›#é…¢áþ¢sMsd,èkÔÓ´sSÿX¼®­ÓO3„ž?j<÷ZÊBó¸*‹…Ï˼òŽk‡årß>7÷ú$ÀÀ“¤‘A7>]CÃl¾{`½³•YÉÆÝI½»ãjƒÖ­®Cx¼óÀeªæ k8ÆŠv:ŠÏÜwW@wÀSà¼È·=ÿc6ë¥R›!9ïýWX®Þ˜#Û?@¼Ìzë/3ªJ$NR›,ñÅ!5¦§9ʘܼñÃ߯/²S¾¶xŽ?Òª‹"lêÆŸþf,¼Ùjþ>Q;Ð(@yÜ>ï–5†s¤‹Ž“Hâ\“+P½vøÞh‰Ã’à4~ûš{Ú3\µ#I©ý?‰0½6ììskþO’Y߈6¨½ 2Ùñ(à½!†Á¬´øŒ,CŒ€ºË42n¸Koéø×´ÚZ½9æú‚ݲ¾·õ©¸=ÅÀ–{ìŠ`½<îwf5`ü(÷ìÖD·¢,¢`êãöZž„½;s€Ö<©°ËŸÈwŠ€½”ŸZ@Ÿh½:°Yã *H¥Þ#õaIûîâÁ?©vt½mºðøð}õò¦À­Í²%¯¹‡ˆžúñyRåÍ!p½A½Ÿzº6U du¸>Üy¿^“•·-D…½!– ¬Ô‚ÜçÈkÕmÁ¾0þ⺮Aî»í8*—½€½C{Ï¡ZH=KÄgfã{5èï iÈáÄT½B¿¢ø’Ù<¬ø¾|m«´>ºtd€½@ßÉ€2¥M€33{+ @ëÖÚ !œ€½<ÐÿÐU ©sS´^-ìþN¿#§ R­þìOggS Œ}”ËF2! ½mºðï\+䞉ßñ°V€­@T=Ýmcë €½@rM']4JŸyεïß '-í m¨P´Q.c½;vƒ‹ÿ‘ŒÁÖÜ3aÞ®X†âxîåP½C{G|6¬1ŠV4ôš*iE~Av€½;„¯€§ÉصÞI-b#ð3j}JKP½@mÓÍûsß„znùå@\2Á{bëxæûx½:Ï’­çµ©ã4¢<{2Y:zOÄhë«yáŠ×z½½d|ˆîvgÛô”ëÓ ®a )Z•ú‘k÷¢½:;oð4Þ[§Ôü¹•ø0ªÓçX½9láb[Ãk—Ñõ®e*kÔâ§ÊÔGà½9‰Ö–v¥£Ÿq/¶¬x¡K Y‹8½=—Ú @éãUC±Êáá$¶˜îN+Ïyú™¹ èÔ½Kî°,Zh ÏUï]8´°æ± !½K"þàÝÄÿb2;hlEái_ûè.z`½m¹êQc«ˆÝ^ë`ÈLB‡”GSè¼ôᇧfH½6òÓ†Á-¿ix .O®)4&è¢ÝƒË‚Ò¼ô9€ Wu'k  (pM=4*ΧM¨¼õÈÕ¬ª´¯ŽÍGºá‚“Ö4¢Ìt.ûJö¼å­ƒtqBšð´QaiYžè÷Ãf–ºYUŽVV<¼íØ»<¾kÀv› ˆ‹ž€¶`ž©ÄnX¼Ã^kÐדr[›#àÿ)4îË©O1?®0¼¿ˆÁ|±ÓÕñ?H‹÷§^1Ø4{­ºbðZu¼Ÿ%p$Ëã5è 1ÜVf!è/Úÿž ¼| 2ÿ[ŸQm £ÃÕåý €ù ›hïà¼ËOâú$ÇíUS†á…À §+ÐŒ†7º(Ä⨼ËO‚þ\¬œa.W­M2Õ ,x¼Êå¨.2jJ.ò ÷m­^O~èq(›©À¼®‰Ä‰%¯ÏÝgËícLö.}µ,½’äñ ༥¤kßÿ?ǧ à4_ÿR˜Ì(ÄQD‚j༾óŸ7¢ƒñå›l÷Õ£óFÎ ¼Ê£|ºßèƒG„÷0ö¿ ;ÛEË[ÒÚÀ¼•)£7&j9Ä«îEúciY4#s̶åT¼kô!ºÐ‹q‰ù<ÉP‡¡ˆ ÚI×0 7t¼[åE•âÙÝ-÷‡×î’uq11”RbÚB(œ@¼k‰Ô„~ËwC”ø™}˜tУúïï»T_¨4¼†{ÄÕ=ÓRòÙ9|oÆgB¦½\„¾0Eð÷Q­–ž¯ÐÝ ¼¤ýÃôu€™;gimª5X¢ð_‚м]È¿ô^A:ÛªÜáo3G9(­[HÁî»!G²ŽT%@½xªíÍÒ~µA•9e¢Ú˜Ù¨4•À½8tµâ«Õ§igSe-GÐ{ÙR·%7€¼ûX¬^M×ä¨xd6? ç5gpz¨ D5‹8½.TòùŸ¯ 6‡ç#Ä’Vtªð>µzSF&.”½C•&f­Ê+ ±†ÝrdËW @Ij;´€½A„÷Æ^}âä SH¿>qžfE‚(²–i²£ø½C”þ,f¥©è—“æL%â}K»=.ûù½B±ÈSlĵȚ9çµ)BºnqİOggS€ÆŒ}Ñųá2  !  ½F3^W“vâÃ&ÔÌW.Ü ¾P½AæG“7±2EL6¾Ÿ®:X¶bè ½9„ÊÕŽ&k%¿Ÿ[j˜vÖ½7Zûßr mä7õ•1 ßafù ½’ ô %~süáê# ~ºKp½Âí¶šäøùßñ–/˜´†ÜÛ.äÛ† ½T%€dB Ý$õ] efÑ.—°†ÒÒ`w½6æ0À:„6›wÂB„è³8¼”»°Óó,_nï?;¦]ú©Î¬¦œð¼TAv™ñOxw'ZÇÑ®ÿp •£¸Pk#‚à¼å<ß;%Xw(²óš;}GšÿàH1â—Ì£ |fòôZ ¾x¦ÁÎò¿E—å ¬e“3O«*qkp±¿ïCŸ¤—òù'L–X³&_]â¯/r„:¾Oê(…é96NÌ Í¾YKÎÛ彦/!¡\÷…àŽ˜×þK£#½—Sð»ß1w®|à¼Å1û"à¡Qü2š2d¬y ¡ƒtñöy: ªü.¼®›â}²~R¯ßw»úšá¥Â:Éè­éFýPºd¼ŸK±Õ4—C!!(ÕiÄÞS"Ì¥õÄíJ›Õ¼~Á"8I;{‡ÿ™Ž¿ °¹E3JTeè½ \»öªF„Â( °xЩê¨óXS7OÌÊÅ©¼îb(܈_Z†Þ#"˜-KµB5%Ü3¼¯œþ‚©Øg3¸×|øsÜbÝ»þ;ɼ»}÷/;ó[úüú ïŒOÏ <—õÔ¼¡•Ÿªå]R‰;y„Úý3xÃÃq €¼¡DIJx ®w^ õ>`ÒNßTp¼¤tm…ý™þ¼dQxÅ¿õRjsñ«¥¼¨k×,N’Hb¿<Ï÷â1ÊMf)–êŸx ¼£8Œ[î©>,ÿº¢ uåá×ÐÄGFƒ6¼‘šÁ+°•á@~þ¿¢Õ« —%ÔQ ¨!\¼@!LßàjÁS´'@O¯ÂÁðºPà?‹Ã¬øDÍ®Üþû25`–#°?bL±°­Rš‹!›‡kç—0`—°|$Å/Fþ~•½ñŸ0S3®VˆÀ…î¶p–ÓúÀ Ì4„©-O¢·X¾ >€—àFP·&äÃVoþwÚî@øüP…¦]ÂEC¸9þç#ܹ0AÏÓ0?¦Ü“ÿ)‚g%xmÝîò|ºL¼Äh3Ä!ÒÏ;7Ô-ã tR_|¸÷FÐ`ѶÖ¼¡ª9j¾I ¡„#"]âØClñ„yÙòAf•¼ÈÅg3'x Œ7ˆTŠ‘Hõ˜]L'ÐK`0 õÎsD¼¤þ4k¾›Ø ƒè%Q¡A䩼ËÂccC„<ö¼íÙ<©Ã_àS‡ˆ_º³êê”OÅed,¤¼kçiªÉ|éF’?­Õ@—r–óðÉŽEã™À¼*élÆ¥™¾eÐT»“éM“V÷}×TIBü4DSÄV˜åå´ûË£…«Â ûD¼–°hV‡çÜ(ÂyÛà N>l9ç}ð¿íÆK—¬ú~Wƒ~ÿü{+S 0ŠÍ‘=|Ÿ¦<½oyÖ&[À*-¥(_ºY0ýœ×êŽ ¬€½hø$•h?¶Œ“óÈ$8IÉ%írµAd¶÷¯y`OggS‚Œ}üK"2 ! # !!  ¼ò¬Nf³#hüy^:zK2ž£[&C ˜¦tÀ½œ™$fDt¹ ÞÀ¢‰SΤÄk*Ð)±¹Ì‰¤½kØ)Áä ;…ñêŒr4!7aHÐK½k²¯'by¤~Éï]t¡{W½¸[G?x½ aÏê^XŠÑV·@XÒrÿêr²acµ½·ŸÕo¥KkjöÎF’“(€•²Õ¼ò½pWëáåÆôº›Léá!}¢Ä³™Ah¼Ÿ|öØz=`FÏDÛ˜ Än¿¢'¡¦g ¼š—|¯nƒ€`}ùä.bÝT1ËCø?¬‹=‡ €Ð¼â¥ôêþR¤€?¥ç°oúÙJZÁ:¡b¬îñüuÅñêêtbzÆ=ŽeqV—f@»€cgÙ´Äܦ’àN‡"]@…¢¡>ùâ¯t—9|[må K Òý…˜,ç«z©H1ýOM‘…¬_ÀYwÁY¯+µ+G§ëk§‘Š—¿ è«¡¦åÕùVUb(‹*ª0¼Ÿ_«ê‹ÞÎ"§‰3öïn0f°ç6yÖÈkâÊðZÀ¼Å}®D§=Î/O& @TŠ„+šÎ»?(ç¶ØÜ ¼ö?K‡>_`¶tÔÊ]_¢¹ãèB@ƒƒ4Rˆ=¦å€¼šu8Û>ë"’é%J(_[NØ™Œÿ±0\T/dìå,À¼OS-ÌyPÌàG£{&¬jÄ…_úòð½ZœoÕ¼Qæ½Ç™"´‰Ü•uÀ\ÍÔ<££V§ÒÒº’@¼¨”WOø kãâQ8¤k¾À¿ì) š·èd½•÷vTV—êâÏ"©VòU€ûd.Íb,:€•Ø`hýI@—Ì„$!RŠY)©¨Ûù|‰ÿ½ù{#*h€½Fµ‚·¸šÓ)åWÔ%¹]ÔÅØ2†/_•óÁ5˜¼äÀSZ·¼[JVÕóÚÑ:§@ Ç$Ûâv²Ó€ £À¼uÑQ1r›æDb)ªÔÏ©;Ð{3& ¼u¿ßFpr{Òÿ˜Ì¿V q¢û(šGØîq#´¼èŒäÖFÜWþ}(Qx„Cü’¨mù‰À¼¿‡«+c;kÍ–wï”=Î_æ¯Û¦¨¼Æ³0ñì 1FÁWÖÌa°™¥–õþâàÊ]Ñüw¼l K’Y RÁ;£µnˆ~öjx7yëµ$9¿6¼‘y8Èè•ÛSêºÃõKíi•˜Ê‚6`»wG*s© J­l?m¶S‘è »ù@ùÊ¿yŸ5þÚ䥇ÁÝI`¼õé-ÊùJiDÎ ‹-pªq¾IýéÀ»øöš5âÓ.!¬¬Rï¾FX`X¼"q›´$Â92ŽRöýKÑ¥€¼UÛ¸‘åtܲzÇ@‰r/«(Öq4®’õf#¼ãôÞ}|Dš_+1j¹4¾&5©j¨¼OÁ÷¤¼©YP¯`Ó߸ z€¼^ÁÚqkÎ/·ò20˾˜Óh7”‡i{ËÖ²*¼ñZî]L°†Ç.nòÒ€¼u=T¿:¯äØïçGÆõc~Y5ÎŽG(†ØOggS€=Œ} ø¨a2    ¼uŽV]šZçs°´š$ÁäL⬓ gÙ<‘¶€¿öqTS0«48iKõ’/µà?V¢åŸz·¶*¼ð¦ŸÍ°_hYnž Rϯf ³¥KØ0ÆòÀ¼¡±è!Ã’(©‚ˆñá¦x€[] ¹ð8½Y¡¹ëÞm}èOà³R¥ÔæéŒÃ ’ÀApð½AkKÿÉ?Î%ã®à#º'^ª•o ½ní˜hïv@i;ùP>Ûn±QcuLzø€½IÏ5µ´ 9”X<ïÄû$ßM{•Lf½º²t[¹ÀÎá²Ù=ƒ<4]6,Wáäà¶' ½ÆÇyv ÿ¦„ÂûX«(( N•5!Y@½$è$<Å ³:KôiÝÁþyLèçÛ3€½/ðØíNF .5­„x¦Ìµ&uÎ4‰C:-@½j&‚íæ<± ûÃhŠùNÐÝÓ¯ûeh¼ÇÔjŠ›wrÒßÐÙ?éC+ù&’&Ÿè€¼£Ë½É]nÖ [bíïdv4&ó¡Ã¥w€¼¨Ú“ˆò%)ÍKÊ‚%`ëÆwŠL™¼¿áfsVç¶»ª¤PSt¯Ð-˜îÖÀ@¼èä§žÏòö€±ªàQ&\–b†z-£/(}¶0½=á¿Á»×ÊS£\,“DçïþíBù[°v¼æÙÈOj„RË—½ÆË5¨<® ÝrÎÛØY¼o´Žæöõ‚z#îÌO¹ã:qZáç†î©¼^Ä{ϯ3ý©¼&nqßÄ}ëbEÐ[KÞÒmK€¼¿­Û-ŽTø.ˆdÔpd¿ç”ÄC !¼åþÚ§8Ò’òKéŒMöf‘ý³ž×Ï[’xÀ¼×¯˜ìø™{ŒH,å‚"Æä×N£nÊeN½/üñµ~ƒ`Ê–*’€G/ÚõV¨êk#Ó©½8, ²Un…U?ݶrëøWB ;­_3n¼ð\ ÀÇ[AH üØ0—…¿¸€{Dˆ¼©rg¥­Nœ˜ØÜªPÔ·Â÷Ûœ™=X:?ñ, ¼ØI}°®ì¬â&0>®y-Õ,F-¼“Ô#&1š²ˆêeÔºì«û?àÚË îþÃ~¶b"¼„ágâ´3[2þÍ·ˆºÆÝ€|¸ú¹Of•÷¼Ï:7QVšðl)Ø&qšòr'o<21à´k½6áìøYœ¿8õÉØ®©Ý?  V7¸¼ñgb« AÚYYó“»>i‰JŒ—æ¼Ë2”eÅÁkØŸâÕïh©ÄÔÈ&[“dÌj€¼Ä7’ÈÌOçêfKÿu ¼ÉZGcP¼ÊI ž¥æ‰vÿÁóT¼‚Ç]¨•nèÐe«ê){àm±¹€¼KüàAëáOÂÈqéÉñQì±qê}»ÿ¼-ÐjeWâb½™ñžÔú<tºøxµ*Ý©SX@?ÓWô³«<ÙÞOˆ<ŽÅ:h…}Yˆ;%x½¾“~t­ômu—|àEÇÅ,@Ðì’Šg‹µCäTi€…yÞ-heÔ90‹²‡Ëmw3+…m|uVSø–ËžXhŒ§ã5cáÉÝp–é^N*g›¬]¶™Q‰ò=ð–çôó×Ç)/ìöâ"[!¾—¯–é^[øëÑQQqÊ­ÅÒðòè…æc)ÓYéz9p¸Yëmå~Ϩ…èOÇ ¦o%ñÕôy`—ñC«ÓÙ€½lhš›[󪤱CÙ™0NÀ—ól†9\n¾ Ð\å·Oªù‡iÑ}ä[NꀅÒöf\:à1ﺵX¨PŠÞϵ$ó1º9:˜¼YiP?lq–›í…òÀîQ{¶‡% X…àî6DÛ x†Rõȸ²úDp~Ó€—åGÛÛ¿eìI9RR³–‹ècyü£KSç¾2 …é\â€h¾yıwB¹[qƒÃ=è÷½(…ÑeýPj§UTÙ\ú!I¹Ì1“±9‚.—ðW«1ìNù Õ~çÒ€/y—·Óv”äIÐBæ‹UÙ‘8Q€O^¶ÅÐ…¦ ƒ=¶¼ù‚Aœt¸^ ]åjp—°—d˜SBÀZw²-D…ڸʭžÀ—Ťœ C oª%æçÛÙŠ†€…˜[ݵ8·ø°Ê°ûó¥¸W?ñ»Ñvì—>½åÜq xH€´{ûN6€—¸pj†iÎÏy`þQ@…µpë"B¼@¡ «K ¢ûñAÿfR‚Ëj`E¿&²`»ü}Pš¶C+Ù‘VêÔÁÇ͸£®ãàTÈ êþ>›ž¼»üîµ>c|­–ó8¹ÄŒf<6ùWå}̘»ÿþ©x,pE›GF-¡åÈÇݤ#º½î±+ë@¼í`¨¨ð@v4l²͸r±P]pðm¥JL9³0< ¼Tlî¶%ª×½MˆÊ–´JaÖè*…ÁkìQ±»jq*ÐEL.ý-‡ø¹=†¼ÙæüëñFzõ »Z€°¦ZÅúåïŒÐD}O»ŸÀ…€§«ñÐëðu£”( dHȶ~…xYzeÍÈH¸éԙ̛F‹¤1åê…êƒG´‹àKª–x"ÿy=URBÁ ¥…Ý?©Ú'Q/ÿ›}×S!=ÂQWzFOâ—þÏÞbß”N+J`Æõž{&÷3Xƒ@¼îoïðŒ¢é6ÙÖÞk¨Ô¼#r˜J`ävM—|¿ó¾CÚÀÁç­†žÐ‚,ÇÚeØ20‡C×yÚ'ɼ@¿ó‚•°‹2)£ðW*܈ˆ“2&"©<þ—§PÒëߎ ڲǪq!?’¢o…¶L›×àq>Á‰92(qöÓ ¼¢Itv-Jþ¯–G2¼žxÐç:¿éÁ/”!¼aýþÐîl†du®@‘áÉx&Š)À¼…û–5§´Z„ì] ê-i•§–Yò(±Ò`à¿ñ3¤rDž¡D¨7þs_''WÔ˜ö8­W¸3IL¨#Àp OggS€´Œ} ˜}Ô2"!#!" ! ¼”«ÏÈT/ª$‚k83@\1ŠR°>!èÇÙwר¿ñérÖ%÷#C)sbÈÅ”ê%kØÁ†-‘Hq{SÓe ¼ÏZðø5d`ÚÐ]¾46u'Ù?ÜAj–Ř­8½KlˤöʪöòÂW¶ì·Ö¢ò©äÒ+_b À¼¤çž! ÙB×qlþù»Wc ¾¹™øÊa LÆ ¼Ø }ü$K)ƒÚ²¯÷§ç™½_Å$ôÅ6p¿óËÖ¥C“.W»R¡~ÙÇôå”Ñà¼>V2§5S•k»}³ü˜a¢#áǹ+®°ùp?‹Ã™ÈÕ*:bs\œÀæ  ¹€…ŽÃ}³ù¢ò¾®«9v²Ý,à…¦êœdºàŠR‚[’šùHÒ<ÔðØ…¦BÉuP±ÿeÉ×·¬k+'áB…¤Öæ®dןí±ÖÐj ³Ïàt×ü<5¨­ ÈÍ *å"‚4à—þºž$£ Ó¤“;QP#-ÕÈt"Î6Yõ ò€ÎñÜn”…Éô Üý–|•ÅÁ£K1¨±Ñ”Ð7ë2—óOõMhÂà=}Šxè×`\1åÇÀ…Þ£:wcH.‡Äd J«"×hnkNÁ힦€¼Ø]žã…< |åù-dÔ| ü«âpÍEC\à¼ÑÜÊ~G¿E/Ð¦Ñ [’lu¨—)‘Ça@ vÖ ¼ò,KØ„êZ˜[÷¤¶‰ž ˆ”®cªppÊð2½;nÏ4DÆ…¦X9ox)ë¶žýK¬eмõ‹=ÑúR ýSóX ÛcŒkLàü™ž‹è½ ¨:ûµk»ƒ˜ùkÛÍ š.¥€°Oz9mÆ'%¬¼ò.î4H¡F%=Ë_Qd›BQá‹Dl÷÷:t¼íÆâ÷9Œ)øK¥³%Ûú Ǧ[´êXN‡¼žîçµkË ;õdv³Óð"žð¾u-«ìC {2¼päP qBõF²åÊìÎS׿“tÔ€ z^¡8¼QROߌ%) Ö=H¬ïØráCà_ªø£.Šñ \6€¼‰ëo³Ÿir^ÿb+&¹í¿ÒÅÂ("N²`—â3&šh ÜRвò9ÚÏü:¹ÿZô¼GaõyG ¼)÷3é>Átn¦/ÀŸ€A뜻øè!=¨¶˜c+œS¤ÄÛNñ¥ÕPØUмÈìê,ø& ‘ã­©#új²õקϦBâŽûù™ÕX¿ô ©SÄ÷^jn„Þt˜%fxˆb–ò¥¦ŸÎLô=”¬`¿òÿlÌ}ñ/ûcåÎ\¢U<±ÌÐH:á^û5‚·à¼(ÌíÜ—yXo™£0HŠ€ú,.ˆ)ñKwÕåЗ€¼q'òB2"žˆ”Éíױļ'§ WI¶ ¿îþ˜tqÜüeJCË9åK}ÿ/#©¸wŸ8E‚¿íJ„²?ɪ6—sÐÆ°jP¼ èÆÛì'€¼]Þç‡EÛŽÎ/A({°‚@ôíôà”¯8Ó5êà¼K£¨t[Iƒõ \lrÇ'áÊR€2×{Ûl} \@¿ëÑ×Ã>p}öΛº>Í”Y°éï[?N½ÅB‹v@¿îªÄ &“€Î†·Ø¡ôÀ««ŸÇ!Lã#Þ,¼íŒèJ =”ź8 ôPܰpjûm¸„×ÝY¢‰ ¼ÌÜS0z¾ßÄè r±[D-Z8¡ëZéÀ¼ÈmWy}ƱÉJf \SDbKûp¼±uð6Û$r¨ÙÛðîŠfaÔQ Ù0¼É'š£~… BFÚy]{娂ãwæOggSpŒ}!ÑKÇ2 "!¼ì‡ÁÊ?^Ïqqv)8Ž:%Yq!"'œÓž¸|¼¼ŸjÎóã ¹yõ dÌ˼j‡‘0\ʾÀ¼°1¾j.Ù-\™M¼ˆa2?¼Îa º UP¼î@!‹%>‹¦/@9+ÛÔtxñ ý¼ W;. ž ÿ`o ^Í.¾âW¯=gFÁø¼B9ãað2ËšA¶ç å¤NÅÆX³þ¿B.¼[ÔOñ°B.¹ &àèºügÆÛCÐìÍ{E/q*¿ð‰H_½kê˜òû¯ï¦a)lz®¬L-‡½‹ø@¿ïb5Ã¥LÜ{”VÀ—M¾ µž ‡Áo½?‰1†Äå\Tú÷@uPo¾k ¡›Ž].¼½0)uÛ×L²V’+e‘±œŠWÒü[ÉbÉÚЗBзÂì’eöÆþÛD‡HÔ—DÆâ¢ÀlÇgzµi©Î‘‹¤—Ô¼¾.¶Ù"¦o,½$C&±}ž’O€¿øìÄÝyye Û”P»Ðà´=ë´¿ó¡M…+?ÉõuÝ;·9³Ð*^s¿ë>ä–¸¼Ÿn䵡IÐ Ú™z’³»ú.)Rkø>ÓeU§`¼Ë+ŽðÓ]›ÈD>Û»uȘORvQR‰#,œ€˜:âˆE,ø"Þ Ô_óä—ô -p¼”ª† §¶ô’•bb*k5gÊLLf`¼…ϪE½ò¬LGÑãA< 3‰j¿ÐÇF =vCÏ€¼¡ˆÊ\¡Ç³¸#¶i (¡ª]?ÁÁewŠ W¼ƒØ¼´‹®¿á“CdÅä»#{‰Ð -ô eºe9°`½I•¬q™çÁsFψÓí)„ÜÐí%€½É•ŸŸ•ûI«~ OöÌÁíÙrÈßh_O€½!“Ö\v‰ÛLò/MHH‹›ŒýX%‹€½:d»€(•²ÁÏæ8MC‹êh½œï‡.0"-ÁAÍ#R“ÿ(_Û€±h½9ŒßY)êìßäÀþ £.o.Ø7%®½7+zcëøTËO2,Cñ:¼ùõ27«ßwh½9naÄbzG¡uj­Ÿ‘¿"ÇџÖÙqb X½ ½8;'lC5ì|AñŠ?6ù‘!܃C%…Þ­«î±{ú ¦Â倿ï¢7Ò€—ãIB¿)3¯"YÚ€ŒÉÑ£ôà—kAûk¿5—Ô=F`—f"mNÕ)™Îë fªWòϸ—@ƒ“ïØXt'ªêŸhÏîyˆì¼Z»1ª^©LòJ |5-‘Ïbž²iŒÿP¼vÈžr$,sÔ‚´hcŸ>¼k*ÚS7âIæü#ä¥èš 7QA…½zÐżÙÌÔÁ y„O=½v•+² Û¿g‰‚ïëÄŒ¼ ¼Ä#TbNû´–ø§ÌÀéÃøã0TPq5yÜ¿4‡¿ð=%QÅbå£ÇËÁâ:*U­"ЇwlŒ ¼l‹RFöE´xà ‹** 8¿Ÿ>P­—¼” !löþHC+ööp›ögeƒŒÍéÌÀ¼uÙ<«Çø%Ïç>øÑÜê$øÑ½¨‰#G°¿îH?܈‹PzùNub Ð±–Á*õ($­i0¿î¤,kY¿/Ü~V8Jä’娯N†—N p¼šƒU};ç¹åÿ°çör™ëoÓ-‡éŠky¨¼Xy‡ºù²•ÙœÍÆJßAJÕÄ+™;³³ZD– ÐOggS€+Œ}"!¥—2 !"$¿ò,:ò@>*HÕ—ÓcF‡/“À1{Ô÷,;蜀½H†§$蹬r¥cÔ‡ûm+\6É+ÛKáßã#å&ô7§úÌ:¤ŽcœA:!{:œ€¼B§¨èNÓ {ìÎ,s“Ž(ÂŽËc0NoBœ¼P\ÿ¡jl5¶ç?â• £ ðZ-¼(lò<¼P&õõÆDL8#Ã=tȦ€9 ø¼P&ŸªFhÈdÝüžˆÅ¼+ö.((Õâ—‡~ÿG;t…»…”C(\Ø@¼P'‘ÑSwÓÆ‹ë8A&Ùv⊵¥ƒ¤#ï?p¼{ÇfôQ;íü~ÁÚë¶ÒŸ•™@¼’^ -ƒ‰ž–ïê†ây ƒ˜àÒ–h7Õ¼jòTÅóÅhpoʰðk„m{5?ä¼$]JÀ©«5´·ø­ÕµœÌóý5db||I¼–?¼i¶êôÏBߦ÷œçÊúÂ@ÅAk€…xH«¤T<4;æìÒ+>,!Ø0—Yéº4KÂb~÷ùNÂùü˜»OÊ·¶®1­ãF /z•Ö,»­«¥!å5ˆquΈÔü†ãþª?*bnB »¶ê‰üå׆#àà@äQpz¬ 3æñòS¼"eÂskEцŽ`Uú'‚ˆ8¼'àM.ãRÁÉ<ËJNiZ´¼O̽ÙÑÅä¼Q€A,õÊÜõLj pÞäò{VŒ€7xä¼¾/7s\A±þÊÃÍ'¼ÜÝ__uöI}o`¼#Ðø],ûLq¼øY'L¡ˆÁ¨¡ŠÍ‡hy€¼%ãOòÞ–ƒydIþ?ø»‰°æ´xÚôD‰¨ø¼25ìïTÆï®$í<#bõÜ@ ½¥yv’ÝÊþ™¼ÚO3ëš®Â~‡î9ͨEgäÐ öÄžú—Â3Ó4¬v€¼3Hå5ìU}öõ3bMÉºÔ ã ìRû<4ÙŸ`¼³·°­€oNBë Ò¯¹øàw–û›j˜Ë¿Tã#{Ymä˜[sþ–_hή¹Ï%ºY¿©okP…ëãÑÒ†¢ûñØn‚ˆÒÉS@˜CL1×¼ƒÉRózP1ð.©ß²ºþ+j½AÙ&5, ’]ø’Y§3O„‘Eöƒ”@½9n[£¢Öœ™¾2Ë‘1ªØBîÀØùr ½9ƒˆx½ÊŸ£>•1â½£g©àÿ½,ó*Îs¤!öp÷YfxIF§ù€½<íÊ>¬Sm¶¿“è!–‚ïøéf‹µµÝ?½Û©¡©ž¤³Ÿ$@•w÷ƒ³ §ü´c+>‘®@½fú”éÞ…k7qúB÷¼Åý¿­È½ˆ‡ƒQ:yi¯:0⃉Ar5ûf¼¾‰Ã*—ÿa[ɤý–Vç”Á„€¼sq×Bj¼zºFÏQ³Ìj¾Û÷áä>ð¿é§:`‚þÐeÔ£ò1¾ ev/gM…ë!à±8n¥SÇÉõ® âv¤ î…§ø7óïz%9`´‰è€Â —`¸g–a€‡­¦ü抧%¡žçè»ô± žV´ÆP]; 1Öܨ<|ðƒÁ: ¼ÿ&æ&œ~šÚá n9–7øôHFšONXFG8¼GjPuÑïÌ›<‚C[-‡~oâ…‚,‡Åþ@Áô€¼+"½ Æ)¬³±=m潋Q„ëŸ @OggSçŒ}#nð¼®2!¼…DÒud¶+ÒUv#Vlh©hx*AJ>³T€¼ Lg6ì) ʰ>q|Rð½â¹1ÿ‚Ÿ‰`¼›£ùüy#‘8(þ»æ;c¯€ø¼ §là¼uP&H]öd{®«žhaä¤v¿ðø5_™pš9è/„¦à*¬ •´ýdÅå‰2À¿ñ/…ëXdÉÒŒl9¤»·[|ü¸®c¹¢ºF¹ÕÀ¿ölêݲú4ßÖxÂVA¸JHèô”ÕÑÍÀ½;Ë×>ÊŸì3xËü=.Ƶ¢L×x½8‡6ÇqMn¾Õ³N9û Æ$•’o½½Ë\7ýêY]\T ­(Ï­›³5ú ¼ô”®Šo´C^ ÒÇC|‚È›”å÷ «½‹ÇZo¼ñ¥ÃÁ¸M`nÅkɨ²`âË¿E¨š/мɱÍqÁuñT†‰·§ ¨ •¼§±¢=®S?ØsÀ¿ô\ÚvAžÜ8úCyÅœÖdzYàö¥/=Nd`½øQ—&o›m92±ó·g3`ÉÜim)xœ¢½99Ïd§(>,qÙ¿ *Ý¥šC“Ü«¸¼¿P8Rý…èÏI4®)ãõa¼»Ûú­,z8M@¿ö˜™7Ce¼*¶Ê±PXO¯K4õ·…–ÛJ¸¼å,q¡Úmìz±G¯þnƒ3+E™‹#Ñ^[€¼í£q좃/W ¹ß³'‡O “£Ž–ßÇÀ…ã˜kìþ¬#,BJú#”À—ÄÅ¿ÜD:lØ WΆ¬x5ƒU¢¨S§ô—Ó‰î{ý©¦}4Ʊ7Î*½BW@~€…Î Qy'xëP‚¸šÑÑÐ{3¾;«Ñí—ôìO r—ÓM&*»šql…âÜRÑ3ã[ŸBÞÑBKëhÀY¯˜@'õ Íã$Šú;ݯÑû LÓx@—ð漏VššR”’:ƒøYP}X$Ý…ÃáߪvFïù8±cŒS”± ±ýõ—Á+Õ‹u{¢fM Ê ðÖà €—”ölq!Î:GI¿’!ÁKæW îèþÈ?–§Àšʳ¶AÆŽê…NC®o…V‘!Iµj´7E ¼_÷ý²#27D¹DCÇóxÝñ <¤Ö|3²è¼k À&f­üª¨Æ§›ß[J«çqþ}ؼ?]µ5ÔAO™±xb|‹—8ÆÈÒQ…بÿ¬I3© ¼#ßõ‘ÞæûE¬Sàûºú´–¯^ ~dÄP¼((+ßU0öbI¡á]] N¦œ Ñj°W‚ʯá¼ÛS»Úvâ”W=9ÐN· ÎŽ`Ûö8ï퉰ÊVM ¿øê=u¥åÖ[ã–Ç,"Ôóí“Ì¥Cx¼É𜮾Ú÷„$3®öKM".«YLþš¼Ëìz˜˜ªç1WÉÎH¬ƒà9RtQ…î'¼¢VLâCuy4›]Ó$ÖÍG¶IR;2Åñ~~n²€¿ò÷_Dõ.½"¼YùÝÂDÏ®ùî yi¿Œ¼¥*53ÙIÜɸLNyŲhæAá-þQx²ð¼õŠ9¤ü‡ %0@¡)Gã’#­°@‡ Tu¿¿÷œÂêA/a[¨Ñ/ ÜÏJ ê<´„Ö^@½Qÿ‘‘ÜÊÙÒØñK·˜`Û7!Ùëâ…ÜÆYɱÒÌE®pHŸBƘ!ðh)ˆqè·û¥Ó}í¯Žm ÊØ˜ã¥ù˜Æàcó8¢Zêµ+06Ľ%»Dw=Åü§–Àþ×ÿp¸@_ÕÀ½9o86-ÿR~HëÙ1]ŽÒÈÛ·Œ /;À½9oRgI'‡¿ä]ßŠîÆ´†ô]ëÇ¿ ½9mõü€„$˜•Ÿ”XƒE˨(½Ôñío´Žƒ¡§{ÀÀÉÉòHÍ4jOggS^Œ}%´x†2#"¿øñê[†/œãTöfØÀ!£Z›ÑÈÎ_â ¼íæEÿò{P™½0ž^LÕµË/D#(¼¾Lš–9c‹ÝË9áÎyÖíá´ÁÄ´¼ÄUÙãp®äaMçìWœ"1sýðt¿ðGêáÌ)à…†‡³•Û˜PjŽ( ´JA,{ÄP…ëHœ_».îÛH+þA?™ÙjøÈ)D¼½JÈnv)X?ô¿ËdïB ‹„À|ÓèÕ6Š—¿úËœÄ6 °táE†þ0Éê®Ì½—IHÀîèÆ }Ńž%Ä ¯¶ÁL@—œt²è—•Ã$/Ñ?Ê?¥Àí¯7€—tëL\ á¦ ÛˆÀÖÍ…ù3‚× ÔòjëÀ¼(’è`®4;oo ÅãÙ']ÐΜu8£ ?Úà?-0¼†¹ãÛÔláòÅh9H‹`rŽ<¨=æFlgq ˜ ¿›€.„M‹”¿ËÍ÷â’-˜qz.—ôÕªŸÑ€ÓË;³.pRø]ÿܼÊõD`…ÚqS2¢‰.—ê¿pmåg} …´;ú˜Zú$é!ÂÆ§\ÿþÑyšÄ‹C¹Ø—EHÙ'"9³3™»dÝù‹mäg:alNâô—u@€Ê¥Î&òn\.÷å%oÒ9uC©À—ÃùBï\^Ñ_}ñ“Tô(¨èhè¼å…(¼¿@þÕ峘ôEU_Ù?{líÎò&qÅlÏÍ¿ðª8Jà!"ЬC ¾V=ÑÏ#£€»1&”pºà—{p¯¡•b2yJ«vôáiÀÁá8“϶x$ß@…´Ç»e.á­!­æ$î˜#•ÿȇ–Ø—ë%EŽÊWÀ͈ú:¾g:©ú¸å®6€¼›>¢óò¦(ÂÏ£°‹þ”ç._àÕëÐl!Ï`“€¼uY[’¡x0¶Ä7ů˜•3 §=_¼q‘L5»ßßÏvh¸¹YÆ™²$л ËÖ¼[[ߦ³ ­™ÚfG@ß(¹RJœN"+ÙåÁ莠€¼NO3¤øÞÐ/T>÷x$)Y yöAÄ7±Ú¼t+Ù ¿0Åx‚"ê"]¹±\N^‹|€¼@£K¬¶Êõ;Ÿ¿^´îm#0AikâѪî…†ýEèÏt­¶xà>ù?dØ.!¹=Ę?¨¿¯3oš¯Ù]¾¨ì˜é…¦ F:î<)ßn bJy¤ò°»ø—^ß$mµelĵ)BÆgd{•‡§‚¼-mSA« ÚRë2´C—D~þ¹}L^ñK çT»„@¼çîôËrVkÊGã ô1(ˆ»–é?ÓEGöø ¼¤¡X¿iÃàC o5/¾@òH úCò3wÃ1ÑÜ¿óbJÿwáó<—è{ˆœAöE¥« ž,¡8EÀ¼  ¢¼;AñÍL´È\m>øm¼¯åºN’•;„n¼ TÞ¹uS…Ü¿oñ]Ë ‡xÄ2ËÖ€¼ž÷¯‰¾™yQµ®©ãˆB窿ãªÅ‘¢Û¿ñf3;“Âèhˆ*‰Ësáj~D) ŽÀÁu¼£Ç¥Ðm$Ë|ñÞ_¶¶Këù4hÍjŠQçåáЗÓ[J–Õ}ؤŒk¡Tõ0ÒdÛF9Ö…Æ—ÙÌ «Ø#I0C‡ ÞU…ô"¢Ç¼Ÿ«h[à‘a¯6SnëO‰£ ˜û SÀ'4Ó¨Ô` ¶çÅ›Ltx¼õ•G×8ç€+÷zÚF¾Ò}JIÝØç2OggS€Œ}&€gט2 ½wÃìm†g:(ÑŸ¦A^O{æBJÛ%C'à½9é…Ë;ô–°ÙפšÔf“ß²"éνú‘æ3‰ ¯DM‚É‚ÕÍü%Á§²€¼/꽬ÙKëW%Ùð¿µÇH“(Š]s“ØÚ½êQxÏD‰0Ï0ÆùÓrZW Eª9K³öà½Ïu-Š!£¡ù.L¬·/i ~÷ŒËB­ÖQ¿øîéJ/àÓA5“ÏÒ”íÌo¿»UŒ`¿÷{ûROh\è|*Dƒlú5ÿõÄ<ä¿öc'8Uhó³–ûë8[¬iVhGdv…4À¼Ä8œ"+®©yÇo3b+‹‘ PjþÎ4!èáIœ—Œ`æÃ­tä4aïÉ{WÄ&..H…©ÍÜfœ½Ò¹J-ˆD©°3R€¼Î0¸†¬nqþ³ŸÓ ;Þ¯Ãmq`+aö¨…Ï£¤ÃI ¿þòÜ.óœØÊ¨®^4ÔÀ…ÑJ–C¹STÑ=¦~ímª?ÀüÊN”×…Ã}¹€hD¦ÿyUÿfуh2/jfþn/B…Ä a ?¸áwçj†<žŸä/²²î¯»@¼Å‚àSåû|iÛ.n;±OTжÙ`¼ô<'$JÖÌ…Ž;鿤1W%ÆuA…ŠÖäÈynðÆÙ$å°ÒfUq¶…†`ƒÑó©XÈÞÃrÍVà…|r€úC’ò™ }ˆº‹€WÔaeFyðþ´ˆ)¶À¼Ëß%WûëomFtð„¦õŒ'i¨[ˆŽåT¼jÞ×ïï6í4#͉¶û*‚±Ú îùZ!(@f¾^OggSÕŒ}'F‘ã2 !!" !¼#,»²OC[õœ‘`†.›"î/ÚÅíä¼ÿe—{œc>[ÅÁ™VbÎ]ˆ á²{€¼mà’L{Ó¨»FÍ™¾`_Ö–OœéžÏ§¾×¹Füž½d‚[jʧãù©Öð0AŒMÕ3öñý—%³ƒ½7*þS¨'Þ¯v§´V÷Lݦ›D‡€½%¶D3çôXþkG QTå8=Éey[æé§ëô½9mØ·h¤íDM³¨Hg´Äbõö¹½9i¾”Á›JR*!'uyǺt‘¡W:½@j›å!n­_ç$ ¿Ä“Òßì´û˜Bæ²ÖPbKIXBE¥b[Éå˜C®ªqöÞ´ÈqÛíƒ*%7GÍa ȘBšÑ‚oº@¸Ö•h›\š[JŠX÷ga²…é{QK :Vü×ɧVêhÓá˜,eRvOŸó y üuË%ìÁ\¬:,…Ì÷§kÛ¾ÁÐMÃë?^¹‹ùî—`´EiË)ÑÛaì†1.“~RøÒ…›ï…üÕEÄO(†Dê9i<ù¡šq}„…ëD½^îøIÿkéKÄð÷+î.4Ö½Pž…¶cÉoú ©ãM¦ily*ʰ z~€…ÂïnƺB”–È+È™VQ#Ó}ȵG €¼žâþ‚ ×¸Ì{‚|Ø !zÈÄu¦æmAÐû¥2¼Ÿ_ÖÓ’Z;,¤Y[%"÷í}mK:*YNƒ¿ñh¿MÛ_ýªoÓb«N-Ó5®·rí°¾Ú ¿ôI-ÖKD—ÁÝødL‚IvÃÃáÌ\•37"~Ð ½AJ¯T~)þ„ÙÕ.- ©è{ã¤'¤7eý`—¸œs§ {5ƒgÙ~©EЂ12¸*޼#+èÐý1îÉŒ1 2öIÀÎçܼuv !õÊ“»9~é#9\iåÞ!Xt#à–ºœkDâÂ+‡£‰F¾>çÛïrŠbùúBÙ’eÎVµN#@r›ö½Êî³4iÃիîÔЖúuÄ’Šý(3×äa Ý}Nvz3F¶8¤m¢´¼rvúÏîçW†:_ ØÌµ;Qs™Å »îAROÙÆQŒg Ý»å|Ì2Ó¤#P];Y±Ãd »w¸]te@¬,’ nWu@Ç tw—8plE…É:žñœŒˆÀJ÷QÔ œ }X¹¶-b¼¾Z9õäQÃC×pK¬wm+ærlìßkÀ…¶D…eu2œ‚]ÄÿG^ö½Ežø´À¼žîµúl~p‰³é83[}ÙÄZLEIŒu*7@¼wòhDz—9¦‡^…B/Ÿ“øâçþ½ZöÉ#Ęg ¿ðÉØ¼fÛ¨Í㛞P¹XÚ*ð´aŸ‰¶³Lý†_?c€¼•Z Ÿëždh5tnaS t‡„:ÑÝ|sÀ¼w[µíSZn¹ã‹=,ÙÛ ‡þ¸l"‹¬ Y—Äÿü'Œ-íÆëAõ AT†(nð…ÔGðN®J[]ºT q—ÁW'˜[Ø™ o…Ñä~»Qvs;iB¹{F˜…Òn:PÍù%ŒO/‹kjÈbàú*Ncù¿ …ÍhÚgàÖ_)–®\-.8+Ù;€…Â!¢”$èÊtp–u£a:ƒeøü…Ã' ¢·%ÄÕ„aÒÏ2DÈ:ð"Áw€OggS€Œ}(<e×2  $!…Ãrÿ|€—Ó¢íxZ ñ7ª¯Ó4¥\ãÂ(¬ ˜ÖW;¤ãN³KEÚhAùŸ_%º™æF…×"qT#{ŠxlÒª‚Ü;Á%Íi…ÛÍD#3¥Ä6ñVO²»hÓïP—êv&×#Ë_¤%`ì¸ã8`—=(@…ÔfBl`ÆŽ…bMØ5»ÒWçæSïÿwbÈ€…étkÅØ`t]ûŽ7´‚°8ž<ªÿÆVRÚrà˜9$.¸GÞÔ•Àxÿ’ã —ï–]F‹U6~ÎéÂN#ë‹yšUJ'ûP—øxŠùÆO¯o€‰ÄÆPz¨Ò«‘÷y—Än{0hæ{õ$VKSN¼€h!zzRÅP…‘/-¦CÇ× ÉüS‹Ä³)o(¾°.—ÆQdÙO©2•‚æÔöÛß4©ïyœN—¶Î¨f›Œêœ±vH¶Ëid•(C¢ÿÿ©°…¡ Ä»ªôP’V’{*¤é,Îj€—A‰ÂGP£ð¥eàô×£ÞóˆC“1ý5Ý*(ëÖCÈÀ—`Ÿ•ÊÛa*­L¥¸7¡ÓÁë-2à—<ëãœ,æÐS4,ÝKýXRg´U¢À…i}~#·­Åcæ+žƒ–)÷ö/Ü:x—BÂU¾,JÓ»iåœßÆ×·/t~ï·ß{T—RÓWʳ™°¯‚§Ëqlkí”hE»Úî—C}MšV/ß=R†3”:óÛøŒ,@…‹¥4èúðí3¤jÂŒtÔ™Š‰@—2-ÇaOµÔE;kFcK &¸CÜ®=€—%?é#è^¦cI ('ÍÖzÖ kÏå¢þÀ…ôÓšŒÌ”“èÄ)ßÛ0¼äbʪÖùxa×Y9©§Ù¸ì‰N×£ÇcN–`¿óNyCì§à›:¥C$ãµnǯ‹…¤®]ŒªäÃñ€¿ð2%éAøÎþšÆ“Ì M]Ö2Ë¹× ín³_×#ø¿ñ*X°«}”¹2^:ZFj†öÏ0…'‹¸ôeÎÓ¼›úˆþæ@Ñ%=rtÌáY®°õ©n¹:—Š3À¿ðòßR 4AGw²#Õ6:¦;—Ø¿3ž‹âñ`YZ U€¿ñ‚ÕâG^¼ßðíT×±!'~ ËÁiUF|¼šµ5£W‘:hjî©pT dWpTðlË%¿ïrÐ!½…,èéiÏ"éB­Ñì•ùªÀÄ˰–KøœäÁp¼§êÊ—…¯ÓQ«¬žë×Wf¥»g”©D»}ÝY¤iH—¢I®ê¤G±BÂß÷ý ¢Dm]“‹öÀ…Ï~ÌHèL¥'úvÞQ¬1S=POggSLŒ})™×2""    !  !—é’•aqëå¡pAÖÃ&^ÍPD…±,®ùÉa™£Îxl娽fà—Ô®—”Ž&Z`)Èù—F>Erý2Î>Àýi ˜9»‘Ípó™t:„=ÅmöGÿšAz½%ú˜6ùf[‚küvXs 5Ÿì¶â²€¼¾(ÁÔÌÔ ÊæË/:J [‘xôkfô ÂËz¼xì¦ÁeRxQGÿ{Ý‚Y >ÄÿçeY;:? pÂ…¿înð\ÙÓx¢ƒ¨Uó@¦+Lܳ­6³sõ ˜¨¼P qb‹Êÿòj)7nÈOT™]ÇúÇÿi?œÀ¼éË9´j•ÐÒ¥ÑÚhr[ÄD ë¾È¼£D^ì aè¿+#‹ (€#Ëø÷Ì>¦_\ ’Í!¿ñÛ¶»Îë—\F/ã¥Ro!%®1"äMN“ÎÒ…×9ÅÔ?«•Gµ¸kNïzAΙ0€¿õ·Mä_„Ù«_€¹DNWž¤—æ V¨+;þC&¿ñKªÿȉM¹%¥¦—dùu©ÇÎz?z¾v ½vÅa:=!ªœ­ 볂é Î7‚–ðÏ]NÀ-€½ÀÁ·»×mÜÎéÕâ¸ef^ËÌ•˜†öµ`€¼ò¬BõÀ+ä¿ãUZ8šeÐÉ>5‚0Œ½é7}éþïs0Š+JFøœÔ-§]Ùìdƒ?½Õ½™¢Šß•qñ˜ò˜õùü÷ÂF6s€½˜q~½ *µW-¦ ~¿ l6Ì«’X2x…ä3—£¼ZFú4q:LÈ…âK¡“åãìô sò*j?½PJ)m¯ …é^i”CŰ<’ xZr@˜‹ƒÑ´ã—ò,¼d†¥öçÀ—·’T/pÝ #¶â¶é·MÀj¾µ—i©~ Ôbâ·ev5ßSPV0ž…˜ê wlTBÑr~d4K òÝä@…š9tÛÄR;ZíR¸i¤&‹þ!²À…în„ù¤1¶úMÐÛ!šu …λ¢TÐ:¬’’ ùzݱx³KÊ…µá*­Ê’ËB-œîN”ÿ† —iÂ-ÐÀ»*ú$+Ç#N óŸð¶Î e¼!Dé±/?fï >BÄáé–‰Ä5è.ýxYî{[¤ô¼6zí~%…§Ç3ü[2B\ž²ú;PsêÃZP¼1Þ&˜½<}Â?kÃÁI'7lµ7h¶Nª}8F© \¼^2%Û•L,Øs;MÞ´^ŽŸÓ]H¬Áæ š—м”¨øp+¡š@ÍÄ´Õ“Ûò®›ÎM³U`™¤Éo&lð¼+–ÃÞ@é;‘GþçìÓÏ“C·²v¡áz€¿èy}ŠRUÒHO±Ò:iƒÁ¦p …˜–âsz¼ ©²A“ Ð’3ä2` k°MKK£ ‰ôŸð¼p™ ûCÄ6Nû(uml~™ )\2˶­•Aü¼"@+pÃv¢…¥*3¶º TìU ;¶º÷À¼lrbxC*Æ\Åjá—aÑ¡tKbac½òúYží@€¼M*¶bð›J~f»ò`• Ò¿Ìp‹¯@¼AÃÜàSH10ýìn’Š·™™‹ƒºx¿é{×B©ÍõÇ1žp:ÙžâÏó¦›([ˆ¼,Ó{áЛ0RôAÅ|ZêÑ£E »´~JRÔ¼P(f1ëõ¨¡mnœ"*$6%l#sa) ÿ¼i¶ç°Üª#Ô +EÇM’ÆÞ $…“Äyó OggS€Œ}*iœ”2  ¼¤ÝSÔ)HÓ7Ñã~äKéþu°lR!¥hý¿@¼LgñWmòÞ§³+Yqk2@võ²™\tôѼ@Œ¸×Æ .Fs£ ")‡Ü1nÚ4Û»þLìÑÚ9}Á”¾âu9Õíu…1³íÇhÜ@¼$³®1;8±dÆbI3BæûÍx9* [S8¼+ŒòLªÒÇ ƒzU¼†ÆÀká+eE¤x˜ ¿èÒ4¦K`]‹4½TXÑGu3På… …ñ*‡)hÆþÍ®|hêDÀ…½·×÷aÇb¯¿Œ™.®d{Ûχ€…—Î¥Pá;aµ,)ÿïaØi\ „—4µ,‹a$Ó%É@[êÞŽ’² ÿQ?‰{a óppUó͆Òð–ëo>RÜj$¼k†üÓ àÒËp…Œàú-ã¹ÒÓŒígCè)΄nìh—?øA’‘ÂGíbŸPi¿ŸÍæØ{Jψ—C,†€ yÿ2» mCbbÖë¿X"…›&G ƒîtóÐÛåyzîˆöܽ®FЗeÜ£¥ƒÊØuÑC¼m,=8'~ަDÐ,…ˆ`Cy\±”e¶h¥Zµîåž–ÍŽ˜À–º$÷Õ¢?5%ÞØ¸Ðv¶ûTÞ –öò±ùrAñºÄf¶´Ñ WŸ§7…ú!ÑRt 9¨ÿ”6vº=Þ.9\`—ñéÈhÔ[®ŒTÌNÈ:ø€'&i—…Ó ÊÆ×¨^²ýHrŒ™.OG¥…é͡{‡ÒŒ5ËE§j2V6ñµp€˜AòF` ÒÕÁêUÂI[° R ¾ÎO®€˜9+þ‰ô{v >t†õþl,*`˜?™*4à·Xýjj‡§à»ø¿ÕñåŒH]·L—ˆ½Áøuö /Ôªš}»÷§OX1æø«X#€íz¼;ãP`»´>õ3ÚRøß‡9òÝçÎè“#UùpŽˆ »‡l,¼"õ l¾™ËÙºçÚdž €÷—éäxoñüõ¿#¡»ùçÿO{K ~Æ]Tç7þ%LG5ýæ[¡»ùÙÏ bdÍQËo˜Ö È–¿À'·_Ñ»ø¹d&Œ.t·ø]Zï7w©ÈÚP¶ Áp²Õà…,.ƮǷ|¾b*$ÞdE~V¼)5§™é˜Å{ú{¨#?.ïö×#YÄõ7`…ô+JQ`°,ß `>V²?BÅg@èOggSÃŒ}+NÉÁ)2!# !#!$ !!…Û>W¼!ø.ûîÚùÅW`N¡@—“GÁÉJn“v— ïß)yU#Zóv¢Ö…¸ ª yd'i:®—?ÙÝ·À^ֱƼÒ*jAé1òP{ÀÓ?þ»š8,ÿÔC„·ýÀ~h˜Èi·t:ø6|©´†ˆ`]EêvT›'p…Ý(Ù=ú…ZĦW½Iò‡øIbî„`—É2èúN‹Â-PË‹rª}•"2‘S0l’—òsà‘|V'…:ò u؈|#]‚ÏÁ˜pˆÿá¢ä[ŸœÄU'’4¦ÿ—èÍþq·‰øõ#7›¹{ò’Šœ¼kL›]mWÚ¹D%Î9MˆŠ0àú‹D/ãqËî;‚Ë€—$‡¿VBRàYÈû¾À­~½vWy¢tø—3®O’˜¨Lµ¯”Ñl®~* ÚÞ–íÂXt8üh¡0þ­öˆ *µPY¸mC'À¼>š‘Ÿ>{FÌò¤O\]Œp•Ѫò’¿Ë±4.À»ü”¦Åä( s ðƒÖ7S5ÁDÃ9G¢~¹À¼uŸ—ž}¢æG]£™ú—MbÓ¯Ï Ê…•5BË*ÍH¼ˆ{Ë·àv..hÜáVÊ“Ù÷ØK“Ñ_¾)áܪFö¼”m”KhòmÝ~ECK|â¸Cÿè~pÏÕ¡ñëÈ ®@¿ï+Û<ƒz¦ýq]Â.ž•cö[ÆMä7kBK‹ ¼  #¸j»¯£¶÷H=1i»<@n…ÍÍïD;€ãEcF`¼Øû½Lºo»<úæâþÎÇ‚–"ižCØœg\í y@¼ËþH6 ÕÓŠôaÆÛqìæò˜8ŸHL‹íh¼Äþ>¼±ŠWð,C«ªÌ…\‰?¸]d£¼”º¾ªçÇ4ü8*·‰<ž';,-¥ãyœ€¿ëu?,"Þø„ 0Aìm V òש© ÿ-‰¿êĺpL…°»#èxPW’ÌOéË4!ÝyŸôD…úŸ£ ©½\JéSËoñýZŽ$˜ ÝÉë2FÇ@qcB¨Ð”ÒÌL(vé½üY¾³œºæ»ÚpfÂË«¤EòùÁ½ ¼ÔóFT~Ë÷¬IÈÌBÐüE`ÇÕœ† œ¿ù1‚ÛoEj ê8´è3ŸÓ ly½sêõPbR8¾ž»•ì·+kj’9¥I‚‚þØ…ßE62.ìòùJæry = `µÈ1˜+ðÔÑ[‚ì:¢ß¯“ipþI&|€(˜A£ØpòŽ-Dj^¢½¶aT+{Ü—änñ(Šû%£|Yùñ=S=Nh†–x€…µkì|ïPsγpù+ø‹<…µh÷u§ nVšF™+Úàà…°zÕ¥Šiçm[kHDq;#p‡…9¦"›ÄhÓ‡å².WšHVœ—à…ì0E’é*%Ÿ±UµéOwcÛ¯`€—Šm”@¶dYG!¿ÈSe›UîŽåΜ`—AFb‘~OÒq*©Ã\:´@…GRRIU|[;ˆ7+îÛ±y®mÑ…ä(¿3x½f|`³ßXuŽŸó¥Sps¼wé[÷ éþ-,Ì•é/v®;Ðcý‰‘üà žDÇŒ¿í³£ŒÛEŒZ< j Ÿ%7 a¿ˆÊ´ç¡Z¼NX¬v0etvƇμxÉr¾¯´÷ÜæìK¬ý‘W§¢` ¼ZÖžTQaÓˆ9i€‚³PÂàª*»ªZ× ý²HOggS€~Œ},vÜ.¼2 "!"¼LhšS¨û]BUÍ^ÿßÎUÉX‹.nð¼1÷ÑÐÕxl)0åk[BµÁô?éÛ!¨9¡³fv¼OJGÆrj~'®=&V1ŠqjXÔŒ!ZÔdrÆö‡¼Mkê“›hC&Ì’Yk‰˜BñíY ²Rõœ6€¿ëš¿Ä¾Œ) gL×ÄåšHîf"áßN”WËMP¼Qg†Út¡Lõ„†û†¡Ý‘!TÝQý,Lä|Ãp¼tQ&ãóŽ­Ñ5}XƒWD¬;°A±Ò‡#t÷騔¿œ¼Gáaæ5Eó5E¯GXì±/²»¬4«cöâÓºsÛò¼+,æWН|«)&åaY˜Ô~„¤¸)Öd“Ñ`¿ósT˜xßy†çÊðV Óìßõ׃·€X¿ñ ‘i7÷¦õíLôiE”›%é.Ž—:ãE6UŽÓx¿ó„0ÁýäjÓ»1‘`…x©æ¨,Ƕ@…¸ ›NêßÂ0S'3„VKÓ̸aˆ½+ …[Ý0 È—æ‹£Ãs_Ø1DxÌXÀ¼õ[¶™¥œ£Í‹&ç=Užžþ&õÊ Ä¼ÇÔÁ?‡äôd»: ¦›ˆÌ>ò¼H%€¼¡%ªrŽÀˤÏmÅ.F´c4õ};À×/ûŽŒ¼¤)SÕª}äらé»,¾ÇÄT ý‘¨…¶w:í¿0e¤ƒ6'ÍÐà…ó:õ­‰>â\pi(á-Iñ$ehܘ ¹œ/´E( “æVK)ÒTï¼X…ÀÜ:$mKýJú<ÄÓ׋âWP…|•¤FÊýr‡YdÖ£®Kã©QþîÇ–é}ã)y³%TgÛØ$YúP«g?/–ðØà£îxŠ)1‹h•½ZÀÇAJÓ—s\f[<&’?õµÀ?/:@…×&ѹ SÂÀó8kõм`€K ²4‘»@˜K´æGÇE÷pT×ù³|ÅÏ~ºø…ì8õöñ–[ÁÆS†_ígÁ¯€…ëÉ·ò’Ê{U;6žÅ|òöÖ7¢˜û«OµÝ™g«ªùHT®Ñ×Äö0…ÌÖóŠ0k®ˆY®Ü¼ûÔR#à—O¼ì¹jtFÔWO^ÐîNXKN5- …öjJ¢ØJ 2;zÿ üì˜@’ë§R*#åUƒQá4O:$4˜9Ô)àí¨ŠJÝ hYŒÁULåÅÎK@…èßj‚£ÄfÜ 7Æ÷¬˜}rO© ÂZ˜\ÆÞŸ}ì ‘@4_˜wh)2u`ÆŽ˜:uÅH®¡d½Î+}pYû Ðy˜7LÍ'"¸.ü9FÑ[¬ôPœÄEüόυêGXô»|уRN•/L‡J]8‰°À˜`f¹LÉ^ÁÙMqJ£«Å•Oæ]ñ¸€—>Bæyšò—jɸñë4§ÐöÃt—<²X$¯žNœþ?Ÿ‚ÉÕçqÚt!|q®*6߉¿6m¡}@?<äï™îC0`Ÿ@Á,K¦‰³mà…~ò÷>h XšÍýK¥»Ö–OÕé²l…×ðR¬ÖŒà†:žtð Ë€o:~Õë˜6~ 9j”ž;p»¾¿æïäùÏÀ…µÝÁ%ŽfU–ÕÑ,9í^·t4 Ýcã€OggS: Œ}-‰ÔÒg2!"#! —‘ð)’´ýw8ßìŠU!øg€ðv¤T—o=[Å §ÒfgÄ)>K¥ÚÖ;!²—kÿ@ÇóxMSͱêêÉR_´€…¤àK˜Áó¸¼È©MœXÎ–Æ DD'`½=áJŒÿYgº9–L~“<(VƒPÏÊ7…Z¿wؽ´»LwôªÊa²3P{ž„<÷5"ÛPŒ×µ_`Ä`¼¾i·ƒI‹ò°r7qTìÉ5Ÿ5™h–u¥B¼¥ßßl<1ë@Ú(|—¿€3g¸þ`hSéEÀ¼ÉÓ”üÕ\ÌB‘%݉ŽÉmŠ?ʾ‘N̼ðçHìO‘Dµ(ˆ,›aB2‹d n‘ŽPùÀ¼õÌEâ08*ôò¼¬“:ì.Ô-õêu6Š£¸…í‚Zô%=¾r®§ðe…ÐjÿzZl¼î¼Á'Ð÷ŠïǽªË`€Ik%°L9V>4 £¼¿&\ÃQîÉk\þýÒÅ#ú5$FDU£²¹ž? ƽˆb ÐÄwdüIãl£è°ä#$N&û¼ò%'=ݺÇoÌuKRýC=†(R<ÚþÍ«j¼ð½ùT¯F¢]Rõ$4§QÙe9â« 4¿ûI:õŽç‰ùíI¡ÏÕ QHQGã±a f'@…éQ™V2wd—„¼Ç#„¤‚Šhç[Ð…èe1Âç†ö§ŒÁÿw5p6¼äOggS€õ Œ}.û'zæ2!" " "!¼Ê—ªW~* ¸ï—¶\Tû±~@“&v¯Ü¼È¨{"Ö¢-ÉZÝPëÖ&Ÿâ˜x…bðÑ—ŠÅà‘šØ[•G=UÙY»_­‰0…×ê€"xØpªçƒG¯Š½KPÞ"ûðð…¾r1~]µÝz{,à܉Ž ™€tmíq Ú ñâýh±Ê-ó£\à—@¤ÎDðɦ¨eV:š”hœü@…žN½ä¥>3%{cß‘(éE¿ôEÀj·b—Ã¥ªbÞõmÙâ¾Ùw2h_œ.òà—Â"ˆÆ;‘̱¸‰åPÛÒÒµ…×§Mí;£/ŒÏ{A±N­§RÊ'˜ö°~¦ï~ù!÷4^^Hy¸î2Û€¼¾|³;C/KÚn:èSãœ~vjŒF]Žu@¿íù‘" ûFéPœòÒãÚDmQ ó¼Èç$¼I-ŸÁ Býþ5‘Mk³…CªSW— _ñŸ®aÀ¼+0Z¹ç³~Ť3;ÎS¢AÕ^·‹êÝÑÙšÕæ¢}¼UJ#fEíwg?cåÖ®UÀŒ0[üLºòJ$Ï0Ó4¿ñwahjñ¸ê¶œßùÇ$¢Vúå7“C ÕÖ[Æà½×xèc&ñF¬Ï·@²Â „Bu>òìKü,¼îh ò²iÑþ_ÀßgLIº–tæ…jð>æH¼Ë1˜XO\5|ßAp`FÐ3~·G~t n›ø—þåDfÌ_’Ðoiß–[¶el‘Éé’…ÒUáЃùôÐ2Ó›?’U…+F[¼MÄ—ô­±õÄwšÙ1¼Ò/àn½ñõsÁ¬B·ÀИG")uͲÚeA–å"¼Ã]cb`˜²Ñ¿Ðtüûg?Óµé³É‰â„«:€—¼Úé4 æ•WS¨3¨ …6Ì󯸗têÇËx²ï“UYªF’M0&· °ÐqùÕ€¼UËÓŠBz×-}19ÿÅ$3ß®ñZÞ®¼k«¬\Ýr1<%¨«Ž˜XoyŠž\¥ÇIñ¢ ?N¥« |¼Gðe1h4)ïi€—>î°—x%*ŒØ…×Ð4MâñZÜw~Z+I ê)—âÁöC/*JŽÆŒÁ’èv§€‚…°ú•‡Wü)ÞZ¢É¶¼{­ÔÈÉø—D¦Z~®lÛ€c%Aª¦üV™ßoÎÈ—§ŒwPî–Ó,« J£f±Ö*Ââ à€¼¯2â@¢P'Íà6þ.ÖôT¹¨R‹WQ¢ƒ»^ÖGÿ ¿óJ=2µ~”')É®7éwtÙ&Fš0…þÁ•â ð¼[Õmð^G¼1ZàlK ÀMЙz B<ÇÕoØzâp¼¥z)Z±Þj’‰š$óÁVwzäÓü¼¼pÂN…Ú ¼èú‡á‰¹z‡»BLFo°ëz– ~~ïuFéZ¿ó™QŽïDûוFŠüìdkÜPÝvGG¿ðòØ[^© 4ºÍdÏhŽ+õA¶tOäkè÷—“;\fÖja s½1ÑbjîCWV€†˜Ì€—êñ‡M ¸É< Í&$&£FÂ1áÈ…퇰2õîªßM¥>~SªžXrc…èZ¤g °ª×áÎ"0Íòlâ—óOZÊ¢ÃU»)´ïǃÝÒÅ塞 —ølÓÄò0ñÏP-Çi/å@³àû]ÐF{`¼Øúr[|›ÊÜQ<$E£-ürX“¦â„bOggS±!Œ}/„t2!"  !  ½¡;‚Ní X`O‹X^Õ04ð{À¸6«· ½äj  4>ÓîЋW²F¡â†•ûÙ“ú:püð¿ù:D2Š© ­á®{1rÌ®MÑȽ$÷:Œ‘yë›Ë²|†fOkXÕ>BúÌc½Ⴆið:çú»ð§‹×ÅÇnTš+®j€¿ø‰Üžû3j_Ž¥ßêÎ.æ94ƒ€Ã€¿óëq=œ†4 Ã76”žì‹V‚À†yvúf漞$ùœÓ ÐÏvíך¾‹«vsJ±g^óâ¿íK†Å ·zû‹åy†nbé>TÎáú­ ð…Çœ«4DÁœ½L¬Öƒ—“PñD¢‹.Üœ×f…±Ÿ  €—Bh£ê뛘©Ð{¹ÄD°æ¨—:£5 àŸ¨ºúJãïÿ`t-Ý(ßÛzå£tŠ»Áq]GEýè—%#Áj±Pd6Ý7ôk+Ùv¸D6€—Œf¶ìH(Ñ«5îs°¦èMîG›P…ºñåMÞgdíħⲸð/–[ Å» ¼ñ0ñ'{(±?°WZåæ+Bºª«Æœ©ü‚l¿ñÝRýÑk¶p-ÃÌçò±ï[É™7<—RÏ·]>"K5ä¿ó©&¾# ‚zmM•ýÐÎ^®_ò¢„¬ðÔÀÚµ¿ó…ìmÏØ0Ôv™åJ‹ 6VþgGÍ–êQo¿ñVÊR8õÌ*~›þ•ÌÓ*Ç =ñÛq1Ο¨†ït0¿î'ûG… á8yº‹&àßûv**R,Ô \{×ñ·…æ+‹%µyò„FßË{½Ù5…é2MBÍçÌñt8à‡BÕýê!a€¼¡˜ôÖ·ñF>'FV•Öñ´ê„|VºtSÝ .|¼¨¦&‰G…I̾ÔÎçNüÓýö°áãÄç@¿î™ ÷‡thŸUPß|¿g×È2+ÃÀ¿ðÉdrK–§Á¥¡E5=ÓªÇUåɱû«”€¿íç/Ȇ+­Ë¶½¿vé¿E\Š|oõ ¿ëÈ ëjª°îJQ¦Hæ¬ r\¿~‘ëô¥íVÀ„”¼~n4ùœP)Ì6Â]{°Êd¥€Ø…þ› #i€xñ0¼séõʃéÚP8u-$0ç10ظLZ¯=ç%kÎþ¼u§ZÄËf*éc{GXEïµóÏ5,¼søÅ >:ꤲžÏÔv‰Øâ$˜t,%5"¤¼Kå>¯NKÞ¢GD§8eß!õÞ¹â(@‹Õ…Ò³XP¼Mÿ"ÚÚç?d8 ZÀËCu¸àa3Q¸ Ò3s€…»Cæ’Å?à]ï™K±u@ŽQ¡NGµôÀ…ï .O2Ùþ@ÀÐàô,ˆâÛ`½ ’NKÅ~r3÷·ÿܯ¼ñ\@œ¶åÿ§*æ.„?MbCjPCà¼öùÄL$ænLÍಲoOŒŠÑ»9±uÙœ*4ú½|Q,Š¢»Ö¤Ñ_Ð% ©)}tO<ñV'à¼ÊC¡…£÷·6¤ØïZ‹SÞHÜ«ÙpL–$ýC¿î´º$Ê8ï…ˆi€‘?è9}nˆðúòð`‹¨¼ÒÎÔ>ŒK;›r%Ï4ø=«¦±ÕbÉîF5¼¡Eן6¹©ötjŠ¾Ðƒ…Ù ÜSCõ¸¿ñ2Ó͵—ªËø*[—A–‚?p(ÔFÄúíÌB¢—ï?'Ä,æÜ«Ã=vïNG ¨xÃ="—ÿQ!‰>–6\Æ!]u¿1F~ŽOggS€l"Œ}0ïSÜ32  !!  ˜¬€Q¢æŒæ~¹}d(érý÷üP5`…æeÎÜÊS|݆L㋆hN˜@“”2‚öÇ'¿BÞ¾„ž«ó½9$¸ÆÌ’Å]ÕÏ®za¾®\ûˆèZ†+΄½"S’§FsÕQ kPÜ»¹{íaìŠx¢¿û.;‘ê"á ƒjÃJ2¡SùYY£l§J˜…à¨Sù¯ë×ýbû´Ev c"É\ö¼ûUHÖÙ¢àÕ^íjÄm¶[Ë^ü.°ì˜;‹Øé«ò/Bi'Å¢ª-F™¤ sÖ?Õ0˜Uzq‰ý36‡ƒË6=Ã`Ìße2¬˜R´¾ô-wÈ0aõŠý›j#ÕR~b¤˜@ æw¼q/m@LÞÙ©Ú‰äÑì ˜7Å{qkt½à]}‘ÀJ†º†w´—â§L{NÆ¿  «Â]²S¼Uý‹ËXÀ¼‘š4îr®ÛÑöÎ0ÒÄä¹§¤GªØžª3n/Õ@…ÉÀv²¢LáW%ÜBNº~ vÉd‘št`…ëÚ ö@PË£.!0½B{¡…—€«O²FÆÌÓLðºÒ#S[€»ô:¨¥ ëV'TuýÁLDjèý\I@»«‡k¨£¯:ë¢g³·ô%íØ™€»¸öt°ç•Hõ‹å=Cƒž6à¡ è4$ÃN+¼¾_Ëz²3›år¯UÀ#w¤´*Ь§:Op¼²W$’Þª¡<lû%(fûHq›TnÒƒ­AðqÀ½H—¸u–Ü;[K¬¶?ÈM±ñ¯Àÿð%ÌP¼¾Z86FwÊÀZh¢k;νòt†p .„G š¼žàÉN\Vɇ7òÍ==Ë/ü.)ú`e¨‚Ë¿ñ-|ü?ä“…ŽPÒ?•sÊ›{¹ƒ¼Áu¤¬…Ã|>¯ÛÙÕH„Þœ[7rì‰^_à—ÅiÑåªÿGsšD´jä˜3Ù¡Ð…É b/ܨŠ6:Õ¶Œ¤o»ü«¥½8–6]bzŽWS¿ÙH˜´Æ(˜ÊÔë ¼ðÞ’^ÖBQéU\©ô0Uæ¼Ì2Eí˜*á/×1ñ‚tÌtij•¢í'÷(¦9ؼċv`Ï2ùׯ4¡¤ßoèy©ªP¦(a˜ œ¼ Å½lÝ'Ï‘$ev±:èQ¼\M² ¼£”ÙÃÎRèßmouCJ+ n\OïpØ¿ôûò|[žPËBhLt\ßtzš°°æÇÚ€½6ñˆtUj¼YR¥ þïÕš‰µ|üh¼è/õ<»OSb®Ú$#?nâSTØC¹::"hÈà¼Äy‘ð¬$"ÉnÏØÄ–<³wª%R[?î ýŸÿŒ@¼ñg$lÌhl«`ž½F6á%¢K½À¼ Wdü¶ú€fs.8ƒ{ûòhÿÚ¡DìÚaM …Чø`=9ÊĘbwÐêg}p‹€…ÉŸÚWµ+uÓ£Bëæ·ã¦.n…îL œÍ!ì þPß?%l³BÝCGê—ñ4*;†;ªõIÄçšòk ®‘y%M¼Ë+Cm¯cñoS<1„ÏšgÇ 79^áÚ¯)÷ÐOggS(#Œ}1MÑiÃ2$"!¿óšW}M?­V$§)ÿûº8©½hD¸-N'††î¥@¼Ø´ˆ_)ÿ÷1rY!Úå»6µ^$¥<åNÊ]@¿õ¨º‡|¡ÁfÁl©L&M³%¢•©ˆ¿ðüÒåùÎÎÑd“4z :3¯»dö {óè ΀¼•¨4ÚØ…7ÕÞ /=¨­å¨´üõǺ{¢y< ¼k”3­Ž'jÕrjc‰sÂ‼?+sʇ ˜ƒŒsí÷ؤŒrºAz~à…­näM½UÏfX˜8ò£Õ°dÒ/h…ñ/q?{iøx%p“¼$ …ìˆx(¿F>Že2 g@£›‡…ï5A4‚ˆ#ð…˱–Ü9e1+½Beo^q=/dÊcJU Z** ¹þ¿T½:‹%úÌ"¾!wcÓ9'*T0âþÉp‰[ }@°yœš Rà½9sTx^,ªlÿ©&øù—(´~£bF,,±Žkø¿ùAT€‰%ÌÏ MÔB3ä6>Àk@T÷€˜Bûª¸³ ³ýŸèœqé|b¹ò@˜@X…–€ä‚žÞ«×àJkìY˜€˜o¢!ò†3ê‘ãn.ÎíÌOtÔ¯®Ð…ÖCô]”šëg¯Ð6À¨­Eõ£¹ºDøZ@…Ú±m.m\Ð ‰EŒÍÔx¯s¦ªáù€—½¿ã¿zrëûFLP®‡2wšR'´—~³vê9#ǦÔPz|S×  êíÀ…Ï5·+"Á—FZQ{yké ¸Opì;…± Þœo YB0\vˆãK7Uh¸€¼wíÎtÞŠhÑ ?(\® R–_á0Ô=`*×p¼uFf;Rؘdx¸äëàF'õ ²òµ?q[¯p¼žæq톈ÿPÝ+_÷¼ùé)­:ŒÂ–ˆ#Ä<༮¹=ø‘MR;¤è´t(®†üV7ˆ%°’7P—íg¦vòL™.™©¨ æ0¤¿X—Át´ûlwý"U¤I¾Ž€:\…¯¡ZTÙËAMs¹Ð°ñh–’~œZA,Þc-g5àU­qg5 oe¸…d[s~wà>^¾urè.‹ðRÛ…}er5Í “ww±ãiëà‘õƒ kà—RH‰` ò»D!eåþç“Û¦q¶…‚…ׯëÂFÁ†,¾›F¯”“Ô‹’GP"»À˜Hð ªÙ0fÍÂZTd Œ%é˜Û€¼­ú§žÁ6.\Â"õk>q œêt±yQ9õ`*À—äd8š¼×|š—ü¥å–î[å¡¿À…Âìa¾ñ„*B¡Î¡3ªEdºOþUÀqõØ—Ì\.¶Ãí– ð€œ«QèÙ7x†B³­Ô—ÄdxÙÖpé ôÔ?: ïÚ§hrc?`…È€=¦(I¨ëL9€ËüÉkLOggS€ã#Œ}2»ÑÀ2 ""#"˜CO²úi 9ÁÐû˜^r‘GlM0€¼õâ¡)»s£`C?þpNíпóÙÖÿ%Ë‘ =ȇ1Qhxlƒÿ€ýÌ4S°¼Å,ò }û¨ÏvL m¤AøT\ M¼“©;GíßÙ ¢8]ÏkÐ?¥å8,ì>¬>£îȬpw?žÕñïíô:'œPÄ5Hð%Uð·—iÿÞQúðlˆk øM Ë‚’æMŽg?ƒ{ˆAôâ¿)rãøa™+Qt|—;u‘gê3~bÇ$‘ ´â #}@?@ÆSdº1良é¦ô9“àA6 ?ìÞ¶j¥QXÀò0–E¢Kbx/C?—U³2Q-Sá8ánX1g—hK›óA…Ÿ¬˜>Û$è®0ƒªzÊ|§ïƒš ˜Is˜s¿!¥ÒEZ¤-1Ì“ìªs…ém¦¢‹ó•Ž x ÔZqÂI€è]c?d`˜:FÒs]H³¤g‹5«8¦+*`_K¥-½6…ü…3½½ª#¾Ñ¿ã³A_§¤××-yT3U€¼ò™†ZK‡\ŸV¸š8wç¢Üñ|ñÍå:Ë™¼è Éé÷·˜Z…ªíâ0Rà%Œ.l:¤¬€¼Î2¤Í#ØaÍ>ˆyÂÍ+´¬BêŠÝoõL˜d$ ½ë(-VÁ¥ ºÙ¬qMä ¡Ac*~:Ét ½¯˜0ôÊ(®ž^« Wƒlüœ8¼çÿQ§d_ ¡+ÚP—B"¯"úüðOóÊp¼¾l·¤Î¸¢ýW#ÓA>ɹtK/g}ÒUF ¼šñRø"6)wÝ‘(OèufLît¿ë9¦~WÝ(eù³Îk‰&º¤¡Oï>íeýƒÝi…ž›-vX#{ÚæOWàŸÎ©ôÖ­!…ë·F’Ì%‹ÖݸRz`—¨óÍ6ŽBe"žÇaµ{@ƒù.~ïðB6$…½ò¨aUí ›Â¬Wo¹¼{•O~ž€…©W]ëØg"5–†q˜ ˜aã"°BÒ·Mµ—§ä¯ êý¢îò“5ŠÕòNáŽã²c¤…à wê¡ð`yÐú‹½HqSøPt#`¼ª•8Gýq>¤O$,J‹¦á8Q" SÃk_ <÷l-Ý~½6o¢¡¿$`)¯ïkÞnKÍ ŠúRiQ²³€¼@³¡»H° îꯗLCývjåÖ'XR.®qà 4Ãtà¿êuÏ“Dâ ?Paþ€ï!O׉nSÈÌû6_‰Ùÿ¿æ» S¬3–w]×;–9Ê¡|Ž™£P&có`¿óÂß~ Y3R» ¡Ç[üßH]¹Õ•¿k` ¿ðî7¡ |4DöV*ô”²„8;Ëܯ¡LµH€…ÃÕ„{ñ9ßÛ1«Y dÞ¢´ºÊwE…¿?o1Û“—iN;}µ‹©ÎËŸpæN€¼[WÎËo<;Þv¯Ð9І¡S‹øhxnx[¿îþ/ø}pš¬Ð”N¦péþ´l˜<þ€´À…¬œ6XeäV.NU¸l¯†ÈþÜQxE“•˜H¼jʹŒ³R¥SåÓÙ´QFõ&è É8OggSŸ$Œ}38±C¡2 "¼JVîÊå•~ÜH )Í2ÒŠ”sÐJbVÄÌyy¿êßu4୞ܫnéÏÎg”±AŒ|G¡Úv¤p—–Aᑨu9彘0láËI›q3¼Q%éÖPÛòÓ»ÄéÓ¦øÀ?‹E7^PxjjÏä©…Ùëõúc„È€…‚h[°:tÁ¤*çÀÙê§Ú3ŒÞˆ‡¼€˜6•}ÓsJ·°5+€—ñYÑË R·<³ëPE³ŒÓ;¨6 'À…ÖÔ_6Á7“ÿ]ëÒ¯Ùä¶ÅCâ½Hÿj¦Èý÷î4ð¯¶Ä&i¯*¼¤î@½¿èŸ]tQß”q¬_obÄ·²Æð~A‰©iè½ÏwÔ¢_ž³f=ÄòŸA åû`Ò  @½5Iôk·Ū½BÒuùØ5€FÌ\Îö ½/¨ÇÂ4ò>×Ïz 7#Z Í­“E”ëÇY<¼û>t¶)‘csZf[*¦‚èt `{´ÍÀ¥½&:¾Ï ‚ü9ÂùE 8»ï§aÔÁ,™¦p½9j} Æ {M¹ d½ÊÀ_¬@:S…èפŠA'FH…[‡¢ÑÚB3”¬œ·ó:[byFßTÙÁ6,—>9…Ññh^»Šîóìñnq9aL!¬—·…Ëòñt"úŒ½HÆLˆŒIY²¥[à…«g;ŠŠ©Âe6©fË)Îå.HWâµ”…©­æ)ò–ð6sY£!Êæ×ƒ^K¢à…¾ø‡×ôeì$oÖ‹Å!¼Òp—B3S0õ/N…ô58‡Ù§^Ó}x…–\PêÄ~\¡ ’iÆ…Œ´ãaê):ô¢éíÝþ™éOk¹Â{¤—¡.™g ê/xHÿ›9öZÿH:'ÂÒ4ÊñS€¼òúnPzæéE`ÎØå‹ÈŒh'ÖåFìdú*‚À¿ô^m"ñí¨‡0¨vÂY‡AdBÛH{¤±4]òœˆ˜:qeÐyCEÇl,Ø¿ÛqÊÀ0á‘·…èr’ùÒ<–d‡®Eës±Bk,žÂoz¼Ÿ{ÌÒ«@oOQ§J„¶Ü+E¥°Ñw¶¤¼ÎJ3¯:}1å²Ü ïlPÖ³n¥jÑÁyš|®¿÷7Å–ÿ÷ŽÅüNmÕi‹üdÈ\>æÃX½ÕøZŒ°…2Q4<ú¢In“• ¨(¾ Í\ؘ¼í‚mßTpãÖC!CŠ!±VðtëEÖ¼¤uà›°:cù«¯˜ì—ßÑk•°p¼ŸÙžy"*Æ¢×Zð|Œ:Ôż¯#kÎpèÖ¯ÒHËÝâ$ ÎP÷Ï|/¨p¼Ñ¡©Iµ§“€C6¡É½+¢¸ý0˜p€Nw«¸Òࢗ½eVÖ7`ú}ŒÌ0—Í¿àÓè?SÕ£TL0² DõÎü˜òoÈ=^¤¡hÿçÚ£ ø¸T˜ŒŒäüYŠÉ,¢Èv ~ŸGv…ЉÇörr6š«ÏÔ¹l+Æä¨ ·£€¼žC?$× Ho¼ÜÔ1a†hÅï VEãV΀¿îc·û/¸¯ðÐiV(I!RÛÈž4}ì"œ¼_àž¿ñŸx„}µˆÞ·ÚÐfÿ¿”¨?Vl®T—8® ½RLÀHf`ŠU•î žv‘Ÿ<çȼsÜ·<°½9—…¡ ÔáÅQd¶S>ì-8 ¥½sÅ n釀öI'v7ìªXè²8¬+P_¹Üܘн$Ñ»nɳµã±©éb~·dÙ®9+T¤uâB{ؽÝ12NøL7™¿¬°ÿTpsâcg=…™_`½/«Õ$"}Ž·ðËØ°…\‡uÝ35íÙ€¿ù…•´Çü„˜äšÊ,E9è%ƶŒûÊ@…êDd¥ª0¤ŸðÏçs‡‰ ИAÅ^á½ú±cÏÈòætŸ—€!Þ„˜8|:°†ñ7JŒ(cZxl߀€…ßoòÊ÷^ÍöÍÛ• C ; I…Þ¦›\Ú¯j²:ׇŒAO¯§l—Áœ®÷PP5“YPñíÐÚåC#ëë@…¸W±ê7]Zªóõ(ž‹¦q˜@®à#õ;:EÅÀ™ÊÌ e),@…² „Scæ¥kgÁŠ^ÆAºH5ë…™H}¬éD=r¼ŠïÖbê.ßú\ ßšON¼K¦WIwú² »÷iºmdP–PÝ]÷!»¼K£#°>??¸^ ä:¥—f9ÌDØ—°©¼Mk®3J†s‹eñm‡_ÉÄÙþé×B¸uÊ}8üDÞ`¿ñúrß A.›ªh&<¨LÙë)û`1íß.XT½ISf Ï9õÊ߃7ç‚1ÝuÿRŽ´?Zž"¼”º <õá EÓEÆ3ï–qUKõ-–·Ï_ê¼{\Gv÷pÚ ¸l¸„+Fi•¶$eˆðOggS&Œ}5™3ø2!¼¨Çv¡1´è|zª¶di´œd€³Cçµ@¿ðøª8œuç ,‚µÎâ­Ç‚&ŽGÆù–!+Œ…µ½…îÒðWPù™™¼‹!ŠfKO†Q€˜@V9¢fßAe§–FñÉôþ¡~}fEP…ÒIâèåÒà7æÄ}Kt6ýbÙpà—¾{  ÍW×oiWL§C"&û€…ª&˜ÁµÍ é8³­#Q^|&sà…ôùâ&2ÃW˜Ù`¬”¶ûK´Û…Ý›6P%qpï®ÌCüêÀ—ñã‘›B èg¢bšw• ‡”e&£9¿I—ÿnz²5¥ŠE’ᇺ§u‹RµM3 ˜+îðK¯½$”8tóìlaÍ:¤žß_š˜:-NßV×° a<ðWõ)Ü‹ˆè†€˜7€%ò‡IÄ; sJµ0)†õ…ìÄǼذ!}àâ«GBà”…È˜Já Ý#º¤Þ$¡…âyŽÍ ±ïŒÀ…èºi²øäͰk=s'LLìù 4øµ>Mëà…ÝËËYþøi»ÎfLJÝŠ/»©^:—ôŽbÃ;´i{±ªH·nzÔœ½lÄ|˜ÞY6ÀÊ8­)n†?Ó¥Í Ã÷¢þ…Ô±Næ+?±0¾{º_dRÑ2ƒªj( åø…÷"§±í2…LåË2öË}$#h³À˜9­èÈ((ñb¦"ë!vÊ|¢`ûð`£ÛGyÔoP—ËòÇvs;+£Þqº¤€º»DcÖh…—Ó¡å êá§×síüÝË¿"f Ÿ 逗̛_Uüº»ëÂó“™³M(Œ"æÀ…êYýÁTG¬ qC‰ P;ݺ÷§:½€…ï˜wÃi× Üïú— ÝVÐ@ðÝ‹h˜R/–Vv1’¯ Ò¢ô,«à^òüYà—âsÔ9 ðp¦û¢èŒ‚ÏËËv1â´—{_®7ÝõLyc£ß.ù AUH‹O@…¶6†9ç¬ÜRÐös¸Ä5™{p†l÷@¼k˜+C…°!å_Ž´×õ–î?,<†î–ÅR›5zA¿ëû£wঠ҄ Ï£èbð ©{t%ª™:û¿ë•·ýP'¸-r¡þý±Q;׬öÌšR:‡Zÿ=Î=ð…¨»[,{SIÌ’³õ‰®¦ÊÂï+C¼”~ ~d #G WaßÇØTô‡ŽŸ×‰ÃÉ ýG`¼xÜ[ØÅgkóç XºÊOéªeÓìÀ¿íQÛá|Æœ¸Ú?uI÷¸çä ƒ›‡Q’‘Ò'°ëc”¼C¥WP¸ä²o¹¸½~~÷ZЍ<Ë Tí¿ê‘õZ_eY؃™º¶¦ÉK;ξ/ Y…Ø@óÂÊr¿ëœrT öÄœ¶YßpÐ]c†kÐ:ÿ¢ív;uLÑB½+ŒVØÂƒo `ïÑ>`'Æ÷iÚÍØ½6”I=Ÿ¸5$|pêûhŸ¥Ç‘Ï—ð"郓ž¼ôåN 1H\0Þ?!@—ãòÉd0o½bªëø 1%耗½¹‘çjVèŠð 0È›OÆ÷¬bP¬‹…¦`݃•§áî^4A!3·˜½º¾~€€¼k 45‘8ptØ×.h¢dRèi­V°†™$¦o¼ŒŽ¼[w I˜£ò[¥Æ>§ØSZ‘K› ó~$ÊFDì¿íü)(ñ¾ HÇìYOA¡ tjÿÏ„Q+ñ?>¼qŠU¥#ö½õ2@<ì¾äs˜îc„+¿J˜¿ëNu6gàe¨{Qª¦–%Â+ñ''C³¹ØÀ…«ªL ¡ããJ/´9¨ARÝŠ·7Õ0—¦–O.1ú…Í ÙßHêVeç˜ a…¸HŽÙ"x+M²øä#Öœ³/ü€–Lò…ýfüóñ}ÿx8§uK (æŸp˜@/4rèŸsJô÷ ièíשÙþ€—ñãß–õ¦ºq©3„ù‚Ï@—ñæçä“’ L¬å^ë>*¤÷qÞ€—ñ³^І~Â^3=‚©7µ@ —ñ²ýÒŠÙ´V#ƒ¸mViϯ`/—ïžlË\>”B6S4ͱö†Oåj V …âGHð±YoiYØ„©.ìbîÐ*€˜8˜õà©ÙX·;>Ïñ<©»LªŠH¬…ßi°2~‘çHLÄf÷íæh›ñÉà—ò00cD_» ¨ šà$roÐN©Cð—§GI\ׯïu“L¶¿!Ùï¿Ø¤ cÄOggS'Œ}7ö}=2" #! " #—̉##´'¹]ùuŒÛwKiú®Øu\…ÔH„LóejTוýä²w´ñ„†õ][˜…ô"¦<±ÅámµyhªBp+x‰eá`¼ä¾JH×4ÏÑSWMjªßuàj\¿\ÑiÈ㫼q'úÇíH¥8ËÃc¢Ç)üõÐ`óZ–Ú€¼ZÝ++ƒû¦uüZ±ºµGP_,Å—JÎÈ#†~þ·W¿°¿íúJŠ£56Ü©o@€j„ݦ¶ù#£5ŽÒ¼…À,QˆEƒ44m'›eqÉ`ð¨ÅòÇ—˜U}r ¿ñï9ÀÌXÆâEý Mcñ:×gýžÙÕðŠš¨ŠýT½…ñ&gÔ®dçªáj +œR=ß ˜ú¦‚Íh +‚ÂN˜‹œOÀ¼‡ÿëq%nÐA‡+f‰‡tÉÀ®ˆk Þàª^¿ì=?½kº™ÌjâÊ*z•<“œ¿!€‡ Ê|—m€¿î“þé¯vî%dŸGNC°µuÎo(-ÜMA¸í—ÈOži„Bnm¡úKà¸Èí< ´—ɀͰAir_ˆ£µã6ôkâL‡z¾Xº€˜:zÞÆî»•˜¼)ЃjÊ—´=N˜78+MÂ@ü¢àÌl_EÚm^"£óó˜nća£õ°^+àƒl°Ð».7;¼Çó¹:ò]£êMsªÐ{¼BÛôüleƒÞ®G ªu ¿õ»ü–ßIlª‰‹'UÛ5_}™¥!'‡ý±JY`½´Á.§êÔìï–‡.˜oÍäcÄ3ðè¿ö:õ›Š›éÆ#P!8c„Æ¥°Bž»BʽQþ`¹°+ÜêÈi¤ ª‡|"ïN³a›ºF4j»l–PæW9$­§ÜW$—˜Ç#åtÌPÖÅR’v{  O逗™›Mìnov]Ð pÈ\½Ê$¥`—›„ž ÞêrX^'åFx‡ü!x~á…¦’]š |tŒs`!·³îƒ™ò®c|É—“÷±—„; ªñǹÇvkÕTëR¼N˜ !:™*Öƒ§/fÊ0ÉZ~¨ÝÄúzuH¼TÁ¯¬èÐ3Ê…`hô幯-ëAÁkÄu¦Ç"ôwΠp¼…+àb¸ÌLíG,³ÿiš"(ófTÒ8°bp‹á@¼·Ç¯—É76çt&Šƒ¢4>PÉÌg$+–jᮿñL¥8ïcû÷ÊÍf“×EØv‡©I.{óº'ì½m†69,ƒHÅŽ‡‹Hâи*wŠžµ¤\(/C½9pë[Iã×§Ý@Ù;0g¸dé+’W½o)g­€½ |ä74’\³Õx¡á0^ÖÖ`vY¡ô½«ó²ýoÝ»mÇâ3ƒ¨®°~âÜðÒyµ€½$íÐLV¼ÚY„n’)H‹¥6°ª†Þ9 N1 ½9‰ÇŠþ>Óžm˜GõÍÇ^²÷-Ùp±OggS€H(Œ}8èøÚU2!!" $!½6î=³ÆåéåÏ]eÒ”5KKxŠ€½&«n}ˆ´ÁÕÑšæ^*g¹××pN9†ÁX ½A³qäT§Þ-áDn÷1Ęÿ*] ^ƒJ¿ùNR­…%e ¨†’n¤M­7ŠUSúÂBÀ½fí—–0Àˆð᡾wêyŸ=±zÚ¢¿ö{ýºv¶‹Ã²ÛŒZ÷ý=!Lº9g’²”¦¿ô ™ýª„ÆI‰k"pö¨g·w³e:²M˜*ô°…Ä´±õ­í2ÏjJUj«˜3D—äm?ÛÁA—”01«ôÇYùZ÷ —´Å¬râÊþ¤Iâý‘Ö¬êtÓ&€…§)È!ÿpì±ëË–"½G¤€¸ðX…§(h3™Iü&V§@!wÓ¼Uà–9_k‰»…­nZM0ÿ"/µ·>áø:@¿ø® ò9îÃ䞟¥æòz°­GÒ°KØ‹Vð¾( …é8dª°D7;àÙY¯°¶Ù x±Ò-˜:hr˜Nsø´›vü#+O¼Ë+í€ø¥Ä6~—X‹™‹9È»áÉ¡ÈdçS@¿óÂì7W4à__ýa¦³aO€üÒŒãøâʬ U&—ÃH÷¥#¯`á€Î‰ÓjòÆ×rK…à…È=GêÒÐ99§èPc° †a *«óü»Ý˜ñÓý¶›6i¯g?ÆFâkL)j—¸…Öòµ+Ø¡öÎ^b|¥!QmêN…÷*Rï ºÒkógxû¯û€…ë%ëÇMþceâ©»zŠ@óò@¼Ë+‰)€+dݽ¨éýÚ¿ öÓÿ6ÁmÃÂg¿øît‘T€Ëz ™’e<ñpQÕ¼¹ÌÈs¼ÇW§*§t¨IXaJÚjÓI™ª±àÂߤȌõqà ဿñ Y=’¿“Õs®žRl¬ÔªEïÞ–+€¿ñÝ@Wƒ›—qßFhý‡òb¹´¸ÿ±"ÑÂâ+d>"k… ޼öóÅEîÛ[‘Ö•õiúÌÖN–8ÊóΦ³·½$ù7³è‡—`Pœß[’ŒÚÆë7Ø$,SLI f¿û>ù¯´EÊ;Ó$¥F³NAÃÂ&E¤Ç%cªJÄFxP¿öa`)±µ'ÅDómÝ–‹ PœïT à—Ç]Y†:k»© .c³ëŠH ¥ ×@À—î]]»SjNøîWq¶u Ìì…ÈÅz„3OÊìTË ÁzkÄàÊf:Î%à…Ó'¤!]t]1‚°‹TÕο4´ ã …÷¨þÆóZoë¶’Á§±©ìáQ+¤˜ îÜŸ—kŽÔ{VKÜGUúµL—¾çšêxäN`k>vqnŠ66í #ñ€…´(*†•7®(É8‹õ9zÙ™«q6ÿ1æÛH …¶X*AõŸ¯Øƒ®›CÕò´vç>d,wk@…ÂàÔ—½CDÃkÙÍüh¦üï×€…Ãx¡oÅvKæàwÿ#ŸæQæ•E´…ñË@”pH Èñ"lí°}©R¤bÁ€…èMc³÷ãÒCö P½´àèû^$x€—¹¸KU’ǧS<í:id¬Ä±¯À—¹ ¾2{1ެÇ$4àrÑ{ï†ì‘ —q›>õ_pŒeºVNi¸«ßê­Ï¹:…´ÏQ„•C¿r|&éI«PNöÊ8@¿íÀÃå#q¶”Íz*±¦Lˆm Ÿ²—AË{Ü»Ò>¼Ÿ`N1ÆæM~ž. ÏU5¦R)ê U»êjËÊsê@¼‘C_$x›Ó«¡³eÖ¥x ‹«Å2;íM²±þ€»ýó6Û s"`Þ× å?’kÞüVw»ü{…ÍôtE'‚Ð\7éH —iöq—ZøF¡hð»úy otû4£ˆ—Nx¥[@å09«GS<¼ ì? 1ú".2Ø_f SD÷>’W¨D¿æÄšÓÔ®\‰Þ™òÞ¡ÍùÂ$C{éÕê˜ésø…ô"‚—&Tñ  LsHj‘[ãþ6"7¯÷ -Ž—j…ñÉB¿ŸCtÌ ”Eˆõ=ÍÊR“¶³˜‰åT»6aeõõ5WA·ã D—â7ð…µÒ“.² ©¶}Q$97 ú&B…À…´‡ä’‘K)Ð þŽù­ëSï6 €—‹’_û‘8OìR3Ù$nlæ\ÕYÇp@…™B•”ÞK1ÆÜÁ›]Ž«$\Oα—CœÊ`<-·g7EXÓ¤Ö #›Ì˨—qYc9h»Á·t1$•E*CÏ(…7ë èHOggS€¿)Œ}:%ŸD,2! "! !#¼juÐç 7N¥¯± ýк(yêÕèD. ¿èø2> tbâÇÃ¥¤¢Þ1=6}·§-el!íOeõ0…!dl4‘s6Ï´Û‡úà‡c:xÐFº —4­¡—S|£›™ ¿î‘,•Oî„ݼó1€—$"û¢àôJþÞ™š²FºWô®;n¤þ,Á<…šC`ën+Ĭ°:„ÔF~ž¼òåÅb»¨…ú _–xÕŸm8UëÙ®Eon^%|ð˜9«15¸Õ‰à Åú1³‰V@`˜7L•0àÿ"S3&ò?üaͱÿ6Ä@½!r5ñà —ýS¸72âAŸ â˜OÖ7`½9oQ{i³'+ê”2XVáLŒû\€½ cøÓ;Ó˜û:Ìã‚Iƒ?TÛçw)Æ\½A…¸‡WŒŸ Ê¥ ‰û•7 gC÷T *µè¼òe9Wd€G$(781®5è˜#SÜð¼ûSh•çcU÷“-go]F‰ïÔþ½GVÚ’Ì÷×€…ÍFÀ¾ªÆXÛõ¬î¼v!½ Í—™Š„Ç#Zœéáa²Ò“ƒYÅŠnï4@—–—oC\ç²ã"71Áà—uIí»ïðWUÑ{sZ{«vz@…Ô~mmjYÞ"Z.qbÆ”Q¦ŠG5…ìQÂs^!”¥z0E q˜/u¾…ë\ë™w«ž«+FU+3ƒøpÝ-Ø»@˜ä¬\¯RhÒuWÀMï•T …Þ²ÆÊ}/×4É© kÕÌ'¤†Þ…ÎßX‡6æã iècý¡;0Ey€—‘œcÀòX`Gz£W0—¼±â`Ò‡€……?„úoÒߦÍà¯pݶ—Ãï‹8ªG/ÓØ#MpÜ^·vÜO<€p…Âï |Ô^îw‰pºv¯ö:’" —¼¯Žòë³sÅÈÑõØe-øe¢8 —tÁ Ê@Æs4Öju†)£´ëRêù‡!…·Sî%ÅB‹¤›r~UcŒ¤JBõ`…”4¶•zÄ}+©°6Ã×3d  ûp†…h‚\Æüs_ );3ÔCr— Í…Ô³‡aÀ…÷D¯„·ñò '­ü4iÝÀ˜ †D0ç£j¿ö`ð úMg‹˜+m/«—ª &²áË)żÂúO ö°ÖS¼Âü½…é/E-¹$,ô®N|HïŽëçƒß÷…W€…ècçJÇ7¥~‹Iz¢$àWíD¯€…ÒBX“𦞅ó#ÍqFY¥a R€—ê»!qgÂÄ<ì§š!Ò¥é?À8(Ùœfå|—Èè-[M}ÚÕ¸VEõ':6<ª¨9|ßßø¼¿‰I;Ú¹*÷ÎÎÀ½P×ñ®~+‰-–ŠÌ@¿ìT1šQÂ’”#fÛ©wIdšøN t"–…ë^é*àØò¥Ì(Cøý›ôY‹ØhOggS{*Œ};ë‡82 #"˜b2c¢=Á0WR ïa%Ûˆ” )è˜$¸oœ_ÂX>¸öö°„o|`Á8è˜7u½ÞMí*!Åö©—C~‚~àHM¯€˜8[*ñ"B¥í“ÚçT­QÒ!yÊÓ²À@—îǸaý¯,§iöbØs^ò…¡2¶Ø—ÃIkPSH·Œ 7êü$9Wè…¾ `Ÿ…ê‚(è5}f'™_PÀà±ÛRÀ…¦KÇ%â=Ü0\Þñ*¾£ô—mˆt=x‰ðç>ù7¨S/9²=ÙtsP—¨#a.˜æö®ùοTo:Š{ç)݃…厇ÊO= ~Ñû G^ò¢ÕCÒpT˜L]ˆKzÇG[O.qY‘!Í…90…ú¨‡wžFÚ„ô$ABÚp9 GÖÂîϘZ^7œœu@Ópn"çåÍxøÎ耘+mͨýˆªw{‡ÞªjJùÀd™Æ€—ùü#‰Êw¤Ý ¿ö©­n©ÿVÎß0h°½87ûÐl€ÖÀf+BôxEtdª¦byc^šà½*^ˆ=^Éâéå»·.ëJžD³_?:è-0½Îk˜Î;q¤SþLB ],ÙüA@b¶Ø»À¼ÙàÆ6’AºuÕȧªU‘azøëR¼s&m¸%0˜9ÕØwŸ¼Ð'ó5ÃÆ­Z:Ü€…ß+S8"urcrpú‹|fùà˜gím·Õ•ò•RJjêUü'+‘ó ˜:Ù3¼ÇÖ×Ïì,@­ûk)˜NÏf*vËXmêöÖ—Æú W,Ò˜8T$‰"ã76gŽìý¥y¡ÝÇ4Ú7¶X…ó2…ý@ûXŸKÑD~Ý›AJU^Jf€½V¢±·9ô+(:²š†#N>‰áIxÀ¯•8¤>þ¢€¼qd¼ì—êqtIâ}wº±9wÌ`µ=ÿth3î Fd—Ó7Eúm67¨ Ñ…"z!æ"‚Ü`…ðj´ëŽKRñhŸø¼è¼…¢i‰K—å9'_¦¨|Få ׌ø——9Fv9'#f?ût<¹žs3 è[…Ég|^Ì~ël¹/ú‰ýõ7û9p…µ‚‘•“b$jhýò–GçoûF°——“ {0Ÿú(‚¤m– ª‡ríY}k¯jè—`Ûˆ`µ}ðÑÇ˦&GipZ窘ä@—?Ülý>W.¢¶€ÔÙ`x4H˜;ã¼CÉÁËúœ#u%%_C¢'·¨öÖtKÏÒØ™# ¼ùÌŽAP|+ei#䟅áXÛ©&pFŒ7Ó-L¿ó\°a1¿w£\G¡?"4jŸo×x²?¬¼ž D¼öÁ‡«¦5ï«…ÉœÌu@ÿ§1ÿp„m8»€—›7ÊzgD&*ÄútÐñ±! Ò@‰´:…·nž"£*s+‡· ÝŠÀÑd°…À²@ ò•×· Rsu¢¬‘7Í)Û€—t¥>RµÿÛOçÊA- G™ ÙÛÂáÒDÀ…ºÌ½0ýšæo|›¤“loFnŸ»S'öS`…óŽ ,3¯êJÝ:ßÁQå·x·3J£Sž`˜Hð5é~‹ofÀ§÷ÀË,ý`—ø‹],L qñ™óf1ÔØnï$p…à)Ú`ÚJ?2ëû6a#¶¬N\˜UQ ¡ÒR˜*CÆÞI––R-€¼ñ”e˜vèÈ-9Ì`±Dt5˜™Cõì’—ÖHU(Ùï5¦øU9¯ÅøÝ²¯ÆÏ˜ ¾:6ÎGñ%!-i€É7žÝH-2ÄT˜9K^⑼F¯!NJt‡,_XŠmËc4À…Û3’¶Þ âxy£~ù° …¾¯s.[¡oB¿âô—µÅ&oµóüŒŠ)¼…¨xÄ€GuNÈo†?IE *Ï\Ú5….€—™KÇ”Ï×DˆžµŒ©q¯0 —kãXùÙŸª”sá5…×ÓPXð…Õê™Ðí0—è˜5%,Ç $~[>\…ÃiÔ& GBà‹4äÙO©y¢¨—¶áé,±Ë˜Qrêì:bHÙñi84°Ù˜—m\QAá·æ¿¶´ú ÌÏOŠÃR÷u<—`ÖÏæw^õþa\¿êYO …Äp?–Cg\'¡—©Ú^ˆkrBK\¯þp¨ ?v— ¸h³&¦ûú_†›¸ú”…Èꄮ弪Tw¥ôwmϺª1æ¦Îà…Ð’àå:ú:Ü…›XG ŒŽ@±œ—¸[´˜b^ÓZ©¸™ì02¤À—•5š`©Üð;¬Ã]ØA€…¦ ïŠsñŠ0\x_e]ÞæQ`?H ¶TI²™ózšeûH~¾v(…‹ƒ³€¦êw–ÉÃèÿ”†Z…íŽinóg¸¸Ú3}{ñ…¿SåP…àUç-2>ÅŸh®1EZœ ¶ˆ×€—øÄ×·O˨m`öà?ü‘a”®hÈM€¼åé@f<­’'ºµ”ŸK†ÇΊH•Æž:Gé·C !Þ×àOggSò+Œ}=ý Óí2! !"  !"##¼Å)—ò.£ ,3¸£F_Í*7ŠÀH ©k@¿ñlu'þ¤´Ã艙·Þø”–¹T×Ð…=’À¿ñÌl÷%œÿ °djóßÄ¢ -¬F¿ñ<î4•k3 @Ì·Ôø×AsÇ”yq—T$M€¼ì´çù/ÿͺ­w5³åx¶u_Ó2S&졢ꀼ¢ûB\V—·É_™£µÛÑÅUÇoc/þÆn1/`¼š´½,€iõ7¢'¶E¿;q¶¼^ö_ý¤Êapÿ€¿êï Ö'Ùa‰ „ MÅqŸ¨9$ä›ÀvÍ @¿è óøÜ…œÎÎ"‰›°‡öï g“ä_·Ø€…˜”¼_™’?À,Âzÿ]êà…» iÉ:äÍÁ´:|kÿ©.Ü¥kˆ˜K ¤ÖÙep)‰H$‰»PÐ}é˜CP^U;QÕ—-!ç ÖõúÏ’ƒ‹…ëà:æÚJ®ÇÒ{Ðÿg‘ÆA‰÷R7þ€½6ìÆð­·NŽ@€2ÕÝ!c‹]^C¯’{« ¨8¼çvRÃr¡oIò:F^ˆn€3Žç™üMÃ÷M…¼×Ì숾Â7&1käº/ƒÕ|MT°ñÊ êH\#Þf¼ø¤ü¦ê±J<=àyK‚W§:$Q¬‡ÿ©Œ¤½Õ£uoGÐ+·»§Vj ·¡\í¬#a¬qªH¿ôd‹>0TÚÅ¿`Ü«A¤Í8v[Ÿ’Îßm …é>c¨î­¾Ç«åº‘e q¸j¨¯ ˜95| €ujûƒR [UÑx17pV8¸˜ _ºïÄPÛr_®{Æsìåü[Ç­ð—ïzDŠ3“ܬR²JG÷¥” "â•…𗆕]®à™Ü…Ë£:í,w€˜8ŸœÃðm^¹ïþLI‚¢íª×uõ²øU½¢"‡¬‡¶„ÝôVrF&°–øÏG¢\tÀ½‚)A#«•tûcùN·cTÌÌTƒYIQø¼öI…ÐLŸ;aš=-ÍIó°@›6I n‡5*½…FAl‚b›ú?á›cÕ3§Ú‰¿÷ 8í*ù˜`«wG•\y•LX6Á?ýHj€½?¨Á%'äYG»rÐŽDÙ·ó; /Œ ½Jó¦z®4¥+zm)C¯®¼ C„€½7S¦ ‡ê$ȂʯŇp9ðùÃ@¼ð’þGuþ) Œpç*àPYà¡üo‹íh‚¼ØYÎ[‰eijíðМ7ãìrB)A9±2A°¼ç4˜åüí¦%޼Z[Á¾³÷ÊÁv Ÿã7>€¿ói.Nå°_Ü'dwGG–2GŸXÿ8”.½0TÜ>Ó ÐÂYS5¯»ô;e(ÛT–…•×û•¶½6ùô½Á¹,ÒF6ÉøH¨©¡%äëP=,:’r ߀¼¾;eÐ (·×nüBSc%ÖyÙ³ÃÌzeܹ]®2 ¿îÕ®û•%-8•gè§Y_¡:§LâÒ—{ظqûÄòŸµr%+­–ÑEÅÑkø=]€˜>÷·„ =‘ÈLß³0ÎÎÌâg±D+˜IgT³9ÆIrÑkêý‹[=RãP˜*“-ó¨ƒôT Ñ¡(3uköA@…Ѐ{ú ë}Z¯`ÒmS¢ò¾©À—¨³_o‘{ÿ¯1iðYdͲ#`éø—óƒ¿­¦Y!=ÍŽÅüçÉ"³žBm“Or€¼¢Š/=q—(¯¡¦%KûUêÛ9EÏ¡Œ¿÷ÙvîòÌ«ƒ¯¹å€7L~Bµ¾u"¬™½@%»2å9fÖ!äZ±î/9…L,ß~¼ÈÊÛM©€ž´ ½Ó}¬VÑê= |^%`ô«\¤€¼Ê_Ð2¶Beˆ>OW—–Î8HLUš ¼È¢Eß‘îòŒÉªJÍ_q{ëHÖ¨ ;<:3k¼Ñk7$3£¾ Nm¢O|rÃü©iTÚ‰‘º@¼ÈÜ%To­Ô«Òð™ý¼BÁÓˆ÷˜4oX¼Ý9L6{ÐÌ: 'Fù>‰2—I…èrýÎSfOcX4Cî,€¼ô}ñK™…)%g§Øj#x¶Ï‰Þ ^Ѽ¿Z"È7·þ!oÆMz•zé‹·EC;Uzdvµª¼Ÿ%L·ê’©Øñ:°°±srn•ÚìŸÒ`¿ð΢ É:>iÀ5à¶±çî$dçív×Ìó@¿ñâR¶ôæ{BãÌ¹ŠÆr—šŽL¢P›f€…æl¾§øs÷ÙMÇ0܉vçÍP˜[€†¨]nÒåqÏœE”Õà§§½7*¬î¯ÕFb}994,þïñSQ@½è½0){j†ÎËk‘-%~zù Žf[ø½òÌ^ÄÂbš÷ÐéÑ!Ø'dfÙ!VTR½(ðKÄÄf»Räðà`ïqýºœ§˜A _ü@—ÿ®oî¬-2å2ÉÊë*7‹hÉȘ-ô²éÇcÆ8œôa*ÔûÛ£Øÿž%ýMÝ`…ïc;Ò+•à,ú¼ ÿnÈ/d¯ $ïÀ…ëÞ[¥Ô]}Möi¤¾ ÑÁóø˜:Fª$Á±v·°3KÙDx“!Š4æ+¤…éx¼Påãl¡%c]JH/Øêùä—í ‡ÁÃef`TÎÑ‘uí/d—ãËá®RE.&> ÿ±åcÒt¯E@…Ä3>E¨æŒ&LÑÚVËߥ†ËVÄb˜¼Ý§ÿP–dÚV óéB€ótÌ1ýU»V㤧Åâ½8`$(ÔaZo¼éW.࣠…9âvX¼òµ-ÛÖ¹røømÒzå4E÷ŒTö ¯(¼÷ô– AΙ|Dz¾»ìˆNT­œ ”¿º.½Éñ=g~¢ ÕËHìãÅho@-¨a~Í3h½¾÷Eµ‚ˆQwÿ¼ ¹†Pê*×Òí á¬Ö@½!q:ìê|Y†v*𒸑¥5!‚±9€ró…ׯ `½9wÜ]‡½Y¢,$±ßº¸Ð/…?.<4¹p½=-PdÊ ªËU êÓ·dLÿ¸ÛŠ%Ƚ8–pùµY)ù €/‹³l¾RÏ훡щ½g×+Œ] ¿êJhZÔ’Ü´ª>!sÔ+Óˆ¨@¼û#¾³K݈Yjª™6m=\©k ê¼ðÈ«GíW"¡o Ÿ\‘xÄlÛÒi ãCµ¼È‡ž]%·(°Oå³í„CŠâÄ&OggS€$.Œ}@Fâã2!"! !! $!…×Ň@2§yºÌ}mLÅ÷/Nž‘–¬U…ëF»µb…¤vkH² ‹KŠZnGÜ—tXyÅú 0”˜ÛþWž´àZRÄ}‘Ø—o::øü Ó`gÕOHDP’(ÅW2aÄ€¼HœñmµO̼©_ÐJ%´'ú´ŸkŸ`§Ð¿ëù¦÷샲lq&Ķ£/^ŸQþÇÇï°s¸¤e—SD«ž ›æ·™,]É!‹)íÔTw ý¹H€…­#HwA€÷£VÙü×Ú·§äú:· ¢Œ9½6oÝOiÁFÅô’Ű¾9¼É£ãgnö…²Ç= ²„[-pÕ—¯£a¦ÖÓà—o:thÝFUL9¬ÊfSþN¾Õ逗k«ˆÄ œÒ’2ÆÕTÙè† ]o´³InçM…¨3ÊPcÔݯ¬mÏÎ0»ÑZOM2Çí {—b/Ñ›J¹ ÂFuÇp¿î?oŸcφæ3 ¤ë§ŒzÊU'2ýJ†¿í½D¯Z¨jÙÿZ"sTVª'2•äìॊŒ›¶à¿ï\P‚‘6ЛÇÊxs˜VÝXD¤IŽ}HbÂÅ åx¨½?ªQÃ{ìÞGA×Þpuÿ,qZàî§|0®çæÁ׿î'÷S9ßçZML HólËè3#.(F°f@¼pã)ðïÂ~ü·Ÿ‚0›øf¯QL–7êÙ¼@´ÇI)ÕK`‰ò¼s'jPn͸Zo'ò(®¼!´ˆsÕCøiKÝÆp|[23ƒ(ûÙ&ð¼0ª ¥Ý{º  OН™p,X#ä^³ƒ[ §ývÖ¸¿ï\j: k¼ ~‚aeéO€Ýf;Úïb¤ìq¾iÀ$½?¯ i2 öÍ9â¼P`{û´ÓÌJ/Yy´¬Ó€——“:Z&AÊE͸"íxJi­ܷ2Ì—›*Rá|ÆÇJ£ƒX~Øþë }~À¼wé_„¯Pتâ=ѯ1Î:{ Ìîª'€¿í¡}€©Âꩯ™I šÙ‚€M}z”p–A7󛜼\JÐõq]Ãà!*³éò¹¢+¥(ðì"2Òc  ¿ïE§°‘² poáò£—”ÕVP˜U(ÊüÎ!Bt½¡"šå•¥$°Pûöq‚Žpyˆã–6ý–ë¼¾SÅ –n‡ ;›\Z÷ jçõ býïüŸ º„^“‡³†u1žñ)|9qœ0kPà^¼›!j-ƒîÿìä\g"š.ǯ}RÄòÅ€¿î(˘ þêÆö L;™·ƒÎ äø´Œ¿î(š›¡Bbg씲‹ä*Œ+àüN“®äË}]0¼Š¿Kc§—~-”Ì&ÐózJÝ-÷Щ¥7¿6êýÈPƒ4½It’¤³ó%¤…Ô1ùÝõ‡W4&¯²½:}½¢èmL¨½ðŸfJ“¨€™ùLIò½7*ðïºñ±PÂ’û¡ò¹—Íã_%œP½œ©T×9ý¹‡gFHºež]Û‹xSؽ8u#Ï”“‹‚à‹•ëRÃéÓ~ú™{I&0½!oƒð)}nû¡©n݆/Ãa*±¤EÕxp½:ÕŽ‚Ã$õżfRl±˜»M†”¡—§©@¨vMJõ;‚hÁs[¥l§[ß½¿ô8âKÞ}Œ‡.·úAÕ«”¯Úl_nû@¼èŒúÊpþ´Ø˜ŠÛì÷ß³é‘ öùIdt‹¡(°¿ófœMå|J8l?â¾³lŽ¥8G,ðˆÆ8¿ò@ÞµšNjé0êE ˜L?3ì|`ð½WëÄmRùœËúDë0Ï<áüC#ð¼ç  æ8§q ½¨RûOk²ŠýмŸx·‘jR›çI!Él®VâzˆÀH¤“ž¦Ú3”ÞØ¥Ó¸äèJÕ[!Éà[†Nͯ¿ë3g‡¦´vå‚SgЀµâ«`üý¬¼M¸´»ßúVÔ­¦É íK“Œ( ¯ð@Íȼ`Ë“=>öÙ&óvUú¾rÒ)*æõ±àv¿¢\¯æ@½RJñƒª&Î5CUA²åÑç*ßBH@¼ûLàÿmÃÜ.?Nn'‡½ÈiÇ{­*z½ž€½9nŸIäXHý¿úÑÓc Hü…+¾äͰ½9›YsÛ!ú#¾E°6ïÿû] ëuløà½7%êtÃÎEFUOlÈÑ4ßéÙù!¨½ôTwe4r"”,•1Ôþâæ£ÀS=€…ïðy_í¸ñ‹ëëâ2p lð…ñGTì3:ê7c2À!oçêá¼À…驦µ¤Q2^Šé¬+m@…ÝßäA¸@ŸØ­µÔ9¼Å8©Y—Ë„àœ˜RÒ/šÃKrƒ×”¼zÒÔŒ¦ïÿ•l<_—&X^éþ2H(/˜$^¼uEHIK ņÞQdl%–Àœ»ß4â3w3§€¿îc¾0)¿{NýÍúw§û À«ÙO¾¸F$Œ`¼¯(ðPZ&–"ÚÑ•Ñ%B$ôUb5~Ö£‰€Ú¼Çã´PŒ_‹xÓ ÆŸ©¢ ¾ÛG@¼¤°A™+€v‘kÃÿ’l:è8-RÃWÓ(¼–0Ðl‘7ŒÐàZ©eZþœ `c„k/i€¼Ï<ÂÞøÜüÓf³B ¿«O4Ikk½§€ ¼w ¼ß¡1ëzáˆW\hù ~,ÿâg[«c¿ïF—MŠôBx8ä$ÞD qüÍärPFΗ^`½KÙý´0dÛÖ&¿}ع³Ó‰ªº¬¯@½¢úÆ£嘀 8ù¿†S¢À½7Ê|t½%Xí£EÕ{Ñ«¸|rTP¼¼Èž£èSn²™°V\Åa3–Î}fä›Aiÿf-` ¼ŸÁÏ«©Ñ7YöÄ®ˆ°oê‰.ºö.†p¥‰¼ž'r‰bÁgÝX¥΢ñe¾N,ë7”P(¼€óí ¾'¾Œ|Ÿç秇fâÝ{oÈ? ˆ½I“ü…ö_érs0B]ˆ²ÅŠéÀ½`$ÀÌÆðp©½‰Á1Æ£æïà¼Ì§Ñ ¾+U¬C)^‡à!4Qà#Ê%Üë!¼¤*Vü˜ìž9^¦É@¥’-¬xLšyü 9 ®¼¼›2^¸ü%é~܉fíŒ Æ}c…±•¼`¬c¼yÆÄ©ù­à]o>O ¨lqYŸæ—yºH{мÛijªÞ±õEñÒð¶B]ÓèõÍejŒù‘ÅEN°½R?­]^L\êÝpò3ù¡5ÍgÔOggS€›/Œ}B⎈2  ½!}ƒ´¡iþr4«§6\cà]²L½9~Êuô*V>WÍ º†$û”_&$€½9Ž㚈œì^¢ýæ!CPnnýðóz<½9n[ É™3*Ò`V RÞ“ñ‡ ½Ò/ðP\³e¥Ü*¼ç ”Ÿ; úž j±¯&÷¤Å™QÛ«¼ÈÅmå++GäRŸ±ý´8 ª ²N’G´6_a\€¼Ú5† tîQl’šA¥ ÖøwmÇèÛ`½R/:¾Dz8ýñØkë•ÛS¤ŠìÐY\€½±¥Té˜ë{6ӀŠø@€CÜ_·¸Mõó_(Ö¼žñôtkWæiÝÀâ` CÝñsŒ{#…v^ïb›Ä༣g?‚s.sâ€$N=q\9« 6Y9€¿ðÄ݇BèCTé 2Iv#ÖÄvÆ¡pº*o§\¿íú žòKg²ÐöÄÿS D[ k°¿îÌaÏòd±/iï6‹Èˆµˆ Ð ð(á65œ… nMW‘íKb…÷)Q(˜ž´––›Gƒoao…Eh0¼Ç%  ® ´q¢íÅr‡1…ü 5çÚm¼ž%÷fsÈw`Ì€áªg›µ ÞàK‹½À#@¼tÀù”¡Ùúµ«Ïî½54P f‚!qQ ¿ëNhNëïF~1©–éGÃ/¦Œžâ¡UૃÞ=ð¼]?)ÿWÀ†b§Ëéww’ÚãÅØ‡ys³î¹@½œ£¸GÛmâZd¨%\²áÎõÿóú¤¼òÍÖ¼D)¿Ys†¢g aãJˆ€¼ÍJLìkœ+¥¬u¤ä ]É#¨ˆ¼Ãñ• ¬osªpé%òFj!]3æÔah’¼wõÜæ"y5 E07Ó™+ÂfõÛj=ýÀ¼u©¶Ì–…S$:º»õ…¨ŇN꼆üƒòV÷3ëiË :.¶±«ÈqÐ6ü»0½[C$ö”—Ž’×Ÿ?ZÙÃSÎs‘½l>5²Êxê`@§ÍÔ°˜ëÔ½Ú@¿ò¸±JFØ*£\ñ—rIZb y—UÑZ¿ï ¦[¸…ֿ½Cí s‹úÖ¥ûeFÇÝ…µÈ…€}^.Îá§—4 =$ú¿ø48x—ŒÔj:ñ#‘ V£±'µÜË%ù…¬š”ѬUìv§ÚJ@gH—5Ö܇ܡÜH¶€…ñ$D¢ÛÌ‘èÄ?ë",°˜’oÀ#—É*Uo†ËÖ¡Îr*ÞmÔÄ´Ë[°¼¡ˆ±iumT?˧ø“<&Y‚Ç¡ ?¬ñÔøù¼ SSÑZ‹;C!«wReZÍF+ÅÆòþP¼ž”ÿ&;‚Âùáb¶çIJêiaÀÖépÀ¼zÒýqSe”qY†X&+ÿÑs‘fmÙ+°¿î¸2]Ï‘Ž†'wǘr ñj÷ ]óv “ߟ¥¨p¼ò;½Ç˜¥9µ%–jyÉL‰©`¼ír[ ž£ SVcEÉ·ýôº‘¯?Á©&€OggSW0Œ}Cò;2"¼ž”¨ÐÖnòÀY唿9öÒ¥¨¢È¤íüB ¼w¡?ú³(èQ¸ÕömGùyÆ ¹<~€€~¼wY>ÉËN\)mpÊ=ô ÑçEÁ>cš€¼i¥½Ùoxjÿg6`²aÇkô´i„¦Î»Ýè<¼‰?—欭ŽÃaTLÆ„Bó$¾Û¹ay8h½[o§¨ä»Hu}-ß)8šËZFšL‰·óÜ.½Üíªþ?ij¾AK•èK\[¡­RÄËÓà½!rL>—UìË Ž¯fÛ'x´Q §é¡«>¸½B¾¯JÓù\~~ë—ð…µ>Õ WÀ²tü¨½C”3çîO×éÑܨùšÿíì;ž€½B¬pV/u*8é¨õ,Ñ÷Ž„”mÿVÔ…¯ä½A¸Ë€J‚îxÆë& ÎFÏž7HTÁtÝcó¢`½=ˆß m¿LÚâKp¬Á¬£Ðy½ÊWV¿üI ö[ƒKW™ºujÇ „Yu+S'lÀà¿û)¤lî÷üÄ&ZH—®npCŒ/Q¿§¸¿ö¸?ß 5¾Í%‰>Èöç‹P¯½R'Ksg¼èhN!ÛñüÞ›JOœÖT¥Ê³>WC R¿óšx3éµÁzõ‚Û uÉN¨¼^ î’,ú¿ñ”`„ª'8]} ïméý"‹¬”%£ŽƒÚ|½F"Àè½ø",ÖÛ ö^ÀÚ(懽@u†ÃÚ¥—$Š–X–{wz§%¬Œ½8ƒJ{/9t?ýV¸»í€Õ#¤)S9½Óì­ör:qM9Àþô¤6•ÚÜ U €¼¤)“æì·‘ÎfcÙK Ö:öÄøê°ãt»ëݰ¼¡”"ZÀUsŸÀuTU¥É Zƒf³¼«Lÿ (Ù"v’ì–pÔpŸLƒ­vý’oÇS@r‹V ½R@ªÍ‘QlüågÞåED+¤E<|‡åì½®ky ÝË“ëŸg Ó¥Ø‰ÎÍÁ½9m×cÊ€ßÚÅLvôömÃ>SEÙb ½9oLÙr7,W²Jã1d)Þ§ë_›É¨†åh½=“Å5ÚEUÈ*,£, 9R‰ 㤾VÉ@€½9›ØÙt§rœ꣩l¤c¢½µížÈ¿ûe–JVó—ÆnÚÚ “ Eäwf%½R+½ÌÀ‡1;‰|Í]õu0œ“PîæÙ"4°…Þ¢QÒJV¦€„ ¢5{åíkj—ä¶ØsÈ»Ô8&ÈñOâÉžŠ Ø¸Í@…Á"‚Pn<qv2³%±XÆ —’÷ªÈ_øV„Â*ÒØ)C€—uDí?µŸUö{7ž›öá­®—ád€—¿êË÷%Ú!xºnrä‘0]Ü<ú…¹›¤µu¾òÊÜo)#B ƒ€—›/£Ý>ˆ«pÓS”Ø-ÊðÅÆ8r#¨—Ä9ýÚ÷œà™dq\ vî4!c Š`—Ç,í/º9POSk0?KFŠ•`f—¸¯%¿²ü¬Ö\¦Ñ¯Á¾hd€— ^ù55“˕Ї¤í®-ÜXà…Æo“WñÁ­¦Kðˆ”DÄ™¶áü…îeä_z½ž…¸°‹öeìÂP˜3Ä͉R½…3åäOðèô¯" …ßÊb¸55ïàåWªÛ£xW ‚½ÄÃ/xOggS€1Œ}DÒ>IÃ2   !…ߊo1ŨZû§!6ðq¥ý b…ÝáG­eIÛf~Ä·#a}LªøgÀ—ê)1ˆ¬r'œ–8Vdêâ.뢙…Æð^)År=XÁ–d$6¨Äöxu1×€˜K#Y:_Ø]¹%‡kœK@ €…ëp1]a] €÷ALîn7Yn€˜7Y트sÙMËe÷»-ÜÌ,…Û³|÷‹”ŽöW€ˆÁÞš0övL{š—è¦áµ"ÐæÀÀbøÚÊ‘‘ÏTÛΗ–'Ú *’n#é4ÁÉÉ£aÌú†B1…ª5üuÎÐwË·¢K‹»qyíU¸p(½Iy2ŒÊR%=ª³Ü búÙ?º ã¡€½c•¢@èØd!ÌC°YÁ,tánÁ@½X:þŽÆží]0Ãî«ÃAØ~½W©œó<$4OôO¡•:<èv 漓˜íн»m\´ýE6O;í¿óTk¥)8|ªgºÖ!€¼ò…t¬BúL0ÆÕQ@Ïu¸´a¸ìeóD ëȽ!u½N뺚Àƒ¯ÓŒŸæ?s/ ðÒ' ½9wÐϰ1Z‚žŸtÖu{G €ðíjÁp½8wU3|dT5ùÙž”¡nçcŠnŠÔFLÓýð¿ölhÏÚ¿4b}òXDèzÚFtë3³ŸÏÒö3°¼ò=ñô7È•êîÙô+Ìå„¡*bñ4«ÆÈ—ð•rÜ>ÔŽ‰Àëõ®ª}Òßc`/Ú 5Bà…ÇÜŸ‹¯8Êo3­§ û(ÿPÑË*¨•@…Ƈ™Zo‡_¦·ß"§Üž+ž•Hc`stÚX˜Qú¸Cª38l2½¢}ûôIN÷ìðG*ìè—·ûW \z­nñ‘rÌÇâG¹-Þ.(`¼GjOqƒ³k1ýѱòËáAc{—mÇ~»ÿ(HµäÞÒ†)÷Ø÷k¥ãh <¾½²?> réU¼Z¹§°&ÁèÉߊ†ž‰ƒÆ©yÅ9~È@¿êmQÇšY½q1^è ¸(ð;©ÐüèLj¿é(í(ÔÝ{ÂðAFÚBO©#¸e÷—È ΀½ITÜ”²ôíKÉOéë f¾´Þè‚5P鸿ðÏïò×?Ë0—n×á®vü· @ΟìB ¿ë> ®ëÈz¡ BïåOûç‹p¬üNõkÜð+Ü€¿ë5¡Bîù|-·ïz{»çwîvÍ+Òsa)å Š¿ë1hçÞtƒwh8?öº)~+‹/C>Ô æ;_Ô¼Bz0ÇžÌÙÄ ¿§±“c5±¹PR …øXvö<¿é‚A’o—ÁóŸ½B}s–œjZ©»"߽Ŋ5öh¼ç޵Qzn¾º«ï{{†¤VI¼7ª DÓ¼Ÿ ®RÜ7'¼JÚ•AM¡³k;ew.µÞÔ¼¡kBv¯™ xÆ¿XìUþŠÚ¼î+ô¼wíüt¦:Çõˆ›ÑšimÙ»$"‚V¤¼wžÆvO*Ëp,.ËH'Å!vC„âã}€¼š‚Þ?@©s•ËçnYh鿘)ª¼MzÀ¿ì[4™ÂÅêƒgxÿ¦µˆx±ù(º!l ܨ‰CĽ@ÍÒi5’ÇTÁ}ÜS‹iD†>rt‘•ÉÕŠ …¼”ŒȬò¤YÏ¢dë÷$’{wQšMÓU[è¿ë*Xr§¯5 !aÔ`³qwÑÜ6c ñ—,¼Ak¥]RA¶WËVåu-iá¯b¥b¯æ ð OggSÎ1Œ}E÷˜HÉ2  !"¿èµVÌÔdø¯­NB†"^ `eGlYaËÛI4¿ëRè5™wþôºøòÚ¤¨>bp·F·@m†øÀ¼D+Ã5"d·åÀn•e&#×å äºÇžäK¸½R˜… ‚9´Ñ‹º8JJª¢ì`åqÓ—àånæÉÑKmšÕL¦a¼±Çv—“5¶´­^]gÊ4æsá‘Òh¨Ü 7€—o<•€{uô2spÞÚ(Î4¥Ãjph-=€…·x{õ­E°+XÓVQ‰žL<<ü—Ç)ä­º¸Îž0»+Pø0•#$§_ …Ä ‡À! ÁR~¾CL‰NMyvç‹m`—ñ]QùLžö‡B+ݺ-KbW$,—Ä`l]…Ug•ˆëå*4(l«Å°¼ul®kw&9§¿.j<ê­ÜÐÄŒ ϨÖq¿÷­©¼r\IZ‘T*37‡äMÍêÕ?µýļ†{ôÿ°¿î–çzÂÐãé{K™L€ê¿½ìŽ’.‰xÕv¨¤¿î¸Fʨñ¦|JÈä2€hQ÷.Y‰Ê+ ì•@¼Óš®äæãF^›µ¶¹óBCŒnvdŠgнdyÐÇÖHî­êe¸uÿ¿¿ÜÕûÅÚ;¨½x £¸Y8‘3F+Á‡ˆd¶‰æL0Mä4²€¼ò«ØXMl­ÆeH ÷>˜×Z^2±p¼ø\Ƶ ×ÞÌ0¢IÂÍBæ!QDZ;It½ýú-ÿŽz&aóàà¥oâ¾ÈóÖt³qO’_½"ߊçOÑ­ää Q¸IäŸä÷:Ĺ0½Ѷ ó{1Œ[‰°ú™ºõx”hS½!oàkúSWkÀÚ½7 #Ä^ü*€½9qÛ®ÖO5ËÉB™l‚‚Y·ÃÛ 8½zŒ"ÕæªI.´@=+:Œ˜ÜÕ)ë¼íÛåËü‰$St½7¢öŠ<¸]N¿óÕ–jêÇSvav? ‚h[¢ÅQ£p[I@—Ãú1!ôo¹"¸eìš8±“{hà…Äö}%ô`MÅ0<ôx¶PB˜8dR>ºíwÏühå‚D$áÔ&p—¾7Î ¦NZ2—k-îT|‡p¬À…µÌçÝž¤/­Ñ‘,}›Gý ’»É …§Œ8…ÀG“j3í|ž›ú…̳eÖ¢¼Jåª-\TÂ|‹u¨pþ5ÛLFûÅFì@¼%¨ÇõèÏÊxŠ®™4­kpæÓ´-à¼W]ªªñ"ú( Üô~ÄRLQ¿Eo—…ÇF\ ½dCZד²ÑwPGœœ5µ7Úö¥ h¼èªTsÂÆ>£håšrƒfî ^‡ãÏWk¨¥ ¼õÊ^,%_ó`˜7Ýåó>Ç`DFH€•μûÌßÒiñ¤áÀ(v|×4z ^­Q^< ¤½!ûj-N‹9:½ˆ¸º–bÄrQ¨îÉ•-¤< ½ä¹­ÀšYΔîð™9­WöÝÙæ•ê13¿ù²Ì_¤ú‰ ¯ŸQ±Œ%Í–ùo¡ÞØÕP½IRµÕº\©Øµ,]ô9‰ò ¡`¼»²ø¦›êß+¥Í¬™ ¨¸Ì$O€¼kÆ0=·¦7[|þérzéPA6p¼KýòZ”T!¸ äûð†ò€¼L7ûÆaàÆ4m´{{âªQÿ¨å†îàOggS€‰2Œ}FH/.q2 !¼L¤l5a©áýN{ã!óçNÜ[&¼u™-¶6NÆ$õÝÜZìlí6+UΗv0ðrQã¼o P^²Ûð¾Õ«5Á€’‚"…Áõ¸§6Mp™Ú%¿‹-;’'†«Ò…« ò–ãÜ·g0HÙ îäÙ̼”¿›H'òP\;)¥n™F鸼ÔJ—idØ›Ez~ö¼ø¢äXË´Iö´xš€…¦êˆ›Sã´äM=€ù‘Á×ú¯v…¨Ý+'5"+]ZiÈHŠP‡IäŸaa…êB‘ ¢×¹Åá£? u÷ÆÛÑ5 ¼ç3š7æbM™›¸­# ¾ßË|Š¿`~¼Ä.€êŠÊs Â*ZßXþ@¼’«æ~·Ù‰¡dÖXÐh¥£ŠÐ¼k\dŒ.zÝŠÜwÿ£Oæ‡òà&øÄ¼ ­¬”üµa/îp½&îÔÁ}²È^ó˜+ª¾rà»ÿ~:Ý™½Æ¿4ÎKïŒì|±°nm0IL¼Øa5Â^aÎãMcŸµƒ—~ûWçò`«¼¾Ò˜WùCg^U8s›Î)Aq+ ¸¼sí$üò5x… Ô4 ̃xæ¼®õÉd¼OO¢µèçŠøñugµÓ5ó0ÑN¿ˆ¼"%mŸ†‘Èû+Q¯<¾Ð¯‚ÔÏL ñ}÷Ö_ÅÀ¼2 †¥ ç.8K¡’3„®5C-óíý°¼€ºª… Ç´*Æ}ÐTo¯»0GÌþϦ˜º@‹ü½dzÐ8à‰Ì–μV9¨ˆ?{‹óªÙù‘v,5hà½6ë…”ßóy šv“84žGýÏ®'¯Ï#K½¡w%¨Ó®z6xûU••S£P +ø3#v80½œ»ðG¼vª\³‡á,Y‘Zñ(©µ«0½9ŒÅøœè ãöãÃô³ØÊÙä9<8ôǽ:d›A"3Ø4¹ßÚ׌áYFȲ7JRÚ®09=ö€…èå³»xF8Žk¥¨c!Ò¤ËùP˜<ô¡RäK!ÒÙ=ò®(¥šXêõé&A ˜BpYÉvcûš%=elBƒ’fPþòÂ…ÞÇ LD‰v9B¸Œ´Fó6††—äl\¥fŽQ"IrÕ¸X瞸E<—™9•ü‰¥5b4Ñþäµßl”Æ¥…˜›e¨ò}i1' æÜjxȼ’&€¼C-BõSÙº1ÀNpÆ3jÖª÷­É`˜Qü[6ŸêV Œ»ÈÆh8° …¤' »ú(*P:Qí Ç»+À—Æ+sðhyNç‚ç(^Ž/&tXNíà…‹Üἦ0î,Vb¯—eÛA‘Îþt˜?$dšµˆÞÀÀž¨½R¥qo{ö<·þޤ¸$ts«’š‘"æ¼Ä!èT,2ÛG<ùÃaCt÷ºÔ`9×,`¼qˆÞÑ©ÄÑ5—pS¬h%ðBzÿ·Õµ|¶ô¼K¢PqèifBž\˜ñ©‚Ìj÷ 2ß+UŽ˜ã@¼K¢Pv„Ô ‡ÏŸ<ÿ2оÒ`V5ó“ÌbÂÖòÿ¼LySN:ãæµNv»u\Xdè ÌM—™S@OggSE3Œ}Góè1@2#  !¿îs]ܼ-††êx°Þ|REœ„? a´˜A¾€øÙ+ ¼ò0)½f.Û ^‚ŽTy•1Ê’°b‘¯†F°Ü¼ñÃWÙ£ÞÂÿÙh¿LÇщœÝDøÀ&À¼ÃÒì‚¿ñ2é1ý¡Y°küõT8-ï ï ¼x ¡2-™ Ü*ÞšDxuÕûÈz“O'‰ÚÂt¼vT…ÆA’S† «:á  @¸3 x:¸¼yàJ#® øT;®yz]”$Ǽ|ÛŒÐáÊyÑšl@¡¢®ÊÙôöáTö 0Ù9µd¯½R/°g1¢¢w;Á^À~ç(ΑgY›8ð@½¿‘j.Õ×…®¹0½¾¤ÌùáDD D\“†N ¼ÄQôèTdX±?qPø „‚¸,F퀼¢YuHÒc`ó>/i¦«/`æa­7ù!ƒ¼žåZ°Ðÿn¿%ÖZàúf*µŽ2¨Þ¼¤²¤GÈÌ S cít°Å¾ϧڱý² „@¿ôº¾Ÿ›Ç«îq‹ÞÎiŠû¨œö%ªk"ð½R¥Ê¤°O²2ä\ÊL²`Ɉ÷ÓÌ] @¼îã X‡J3o´ÁpšMhAew—aÁS]@¼Ë+„ƵÑòµµÏ¾»7E”팟ìW•r±ˆ¼¾RL€wW¼^¦«ÿ£4J<>©i¶!!º¯¼Ÿ$Güê¹#§‘óÌŽ¯ÝzÖ€ emŽeèØ»l¼ŠÓÌ<={ÅVeÄ©‹nf¢Ôµ«LôscÄ@¼|0\€W\JÛ²7æ¥\o;’Úñþ: ½B²îzÙøÈ†¡ Yù¹Œ<ª¦qÑ À˜BçN¿8ì“t•Òú9‹±k?AÁÌ{tИ9½bëÇuȘ¾>¸ûƒÔ[EK[Ú…ë&CúÁTé]jSâó—e‚ùÛ­—¾&¨å ¹O$¤¾ùÕñqï©ØòÏe-—’ÎêLûàøúÒƒHÌãÀ!¸Px€…›JéïïtwÝš)Þ¹EIkÕ÷¨*O¾2…ýÊÀÁÍÃò“Y;(¶¬~ •`˜9¾Fu¹˜^Fý~(‹à°råÞñÀ˜9¾:XŽüý3b:„_?<í¸I@˜9²yº½¿‡b2ˆ^"¿ëûà?;bqx…é*¾Ù]xûÓ¤ZœVÅVºè˜9ÖOrq”^÷–*RÓ*èŠ #WH˜:hd¯VŠ7E*ÅAâp&›.†Y,ÔÀ˜:ÆþkÝ3 Œ“~.õ÷CiÂ=0¼pÔj€˜CL $–:O¼'Ì:Gm¹ ]ò‡)50˜C¨i‡™RÃÚ7ƒl›°»û•Þà˜7­¼½ãQï»Ì á5ƒEžù§ÃÀÀ—þW Çx6í\Þƒ.’ø8‚†7Ê!—äJ¼òoK®ááõ;¹­ pεL6«:ð—ÉÕ‹ã ÕHdsÍ{%Ïh‰ÔͿ֩Œ-0‘M=›È—ÉU¹¥ŸAê+Pÿ_Ø\˜R°aú´[×ük ¾«S!nHA®±˜9Ƽ§BÊY«àÿYîž]TÃÁ»îC²€˜@yX43²®;QOüõ8r|§ kQö¦˜t…Ò>úÿ¸ v 8ù˜; ˆdòø¼®r;À&"RG§>¯ë“È9]=y*ZÈbø — ¬¿ð6ä³ÝˆÁt>Ѫ}¹¶ .Ÿq”Oæ˜ÒÜüc€OggS€4Œ}Hô_™}2!"½vÁ—>‡yPHpSܾ ä—„=u&[0à{Cs½75~ô¹ºªµñP<äGveußîEÊ*¼ó˜$IrdS|Õ7ëÈî5´ÎÀÇ¢^‘µ/z`¼ø‚È>eôHñâ¶ÚdaNê\®çÁÝt½ÇÔ…áÿ”ßp‚ÛµQLp„Ç }8n“)0½80n²Â‹±c‰{°5¼ kåæ;Õ¿ù£Åv¢÷W‘šÃÙV”jMFùD'þPã×q〽[Ød¯ŽÛÛÊ`Ál6ì‡×€Žü£  Ë‹ p¼åRÙ; V;Ô^Y*äõR‹Þ÷’UþO™œ°¼qM€O†*:ižý¦Üfxº¤´kÜé}W’6œpšl€¼vi.Øym×Ý·[8 ‘Ÿ¾Ãá?€—oÊwÓ¡¼sôW¸—BÐè,СÀ+½ô*/ìh;ÆÓ޼[hÉ ›Ž:HKÅŒó.˜ A;çÀxÌ1ÞY¨ÁÀ¼vjCa^.Ñ©3qxXïb½uXIÂáü"€¼w£q©ûmÜò†ߊ®9>7ø78ê\Îz¬H`¼tR'õé-ïTpöOãd?,*”avÁTfW¯?ž<}hxÞwúoFZe¢Ó¨€…tüµ'Ó‘]?ሠ€uÑ5hÌ„bªüÎ(AmœÄXø…¤¿%KòÐÌ¥xh¨iš½ÿÔÔ=ø…š­ý´¿¦ßéUºŽ!’gÖW!†¥¯AËDÇ0Ò «˵¬—žä?H9>hµKó{“œêå~ ´…ýBRáÓÔPê—ˆâî^†½Ûµî½7lµ ã(æU~çºkL)¦×aa{L¡‰³‘à½Z+ LFÐr_­0¡31±Y‰<)û@½"Ö¿zE½Ù‚åSíþ†2›Y‹ èߦÀ½$ï š–»0›ö”{K"Bˆc 'Ër½1E» ½9zö}蔵báýÈ8û_yˆ1 óšÿ@•é3g€½d-‹˜ØR*À×ÞLS V/æ ãé@1–2½$ä°õA6ƒ;©ß^ /&UŠt t†ÊÍ܈vgÀ½7XQ€ÈÌf=°¶b5À@f£g¸L;ÏzrómA½OàD 56»ËÆN÷T=$½¦kÚ.kîã-²€¿öltÏŒúÆz¿ï6¡®|1å¿«å̵À¿ó„5›¼KA0?-Eı®H b†ri€G¿ñÏ#Ë02¥©xÔn·Î=¡{êÜš3áØ…·Á>8ýv8'³Ýƒ¿—rz3Þ>ÐZ†: …úzDQ~^š…s>ÿW—sé1OggS¼4Œ}IAN¢Ö2 ¼ÄÐ~fí× ù‰6.óºoõ*ðH )µÚ¼šXÈÎT('bux˜™®¾H¬‘ºŠ!cu)P€»þU“»+Â-OîÜvD•"m^Õy@É®;à“D¿èZ\,€§æï›ëØÔ—^aOhûºÔ#õ˜¿èö¹ÁëJ¹®&靯R|ðÉÆnÛ¿ë“¶à*´åž/³C³§o m=1´åRV)6<½KÔI'Ò¹"¨PNýEbŽ`ª 6³=†Ú¿îlۮϳÇ#eà¥ïêzÁŠñ’Lãéà½o‰>ÇvÑÙþúñ­Öâ¸pް…^½8,b–S1?DY7<Žoø¥¢¯ãÊQ¼ò¸“ë£+Ñ/‹!ÿËöq±¡ÇAFˆ¼ò³~¸lþ__÷W¾J BÍ ¡¢B€¼ûb%L­ñfR8 µ@ßù«åª…И½/Ù©A.q îkãë,§7Æ’¸”‰¥@¼õʺxˆ‚e#!ÏJý|\þÀBCàOŽÄÖ½9r1õ…ÿg»æS'<îYE¦¾^ˆÓ¿Uô½9ºžÌŠ{¯«œ‰W`扰¾îä—a¶€OggS€w5Œ}JÜn52"# !˜ m1–ÿ“`º á§Y㌦í—ï.J^ŒÚ]û ò¼Œëö¨É†-…Ñb”b_'Ü›¨1îö+ô0—ǩ߬î]»&£¶¥9Ÿ€±¡»¶—ÅKà[Óìm”Kü¢ ‰õ_°A …ëKiE‹K¼B[IEçˆËS~€¡…Í)ä¹.†2™Rg2Y°>È…¿K7ðxd ~Õ.ÅÄã– —•´Ò. ßÀ’ím+!0žr(Æá?¤…€ xP°V Áƒu9r8ø?‚ä,.±XÇ–Þô#5I^…š Àýn‹äÀšíÍIw²,4H…÷ zª¡^ºëSŠ:ÿ]¼ËÕ5ñX…ÌúÐLЍދ¼Äãªgñ^cçŽ0— «ÐyÂH'–¸¸@ñR˜šáâѼUõmL¼É V˜Ä‡f$©dS1ޗѲìß+'½$ݘмÌ3Ùòr¯¦hh%8pöÌ)D)[-‚ÕÞè9¼Å)¥ˆÒè¢Rá厼X’F•ú“,zHl­ ¿óœlÐÍÅÝ¥_ækuÏËóÔ{¶ ô„ « Ù)Añ´p…ð-Ó<üXèñ|/ÍåwŒ—¶}çKµ¥7…Õ9&Û¨§±;QÍ@…”Y‚6Ì8s×–§,P+Üg·€—:!¦t<ïH–êq5@ä¢B´J½`…‰?þˉø»Óˆh14[xC—½–ª@+Á´Š&±;SïsZ÷Ðóíß…z=Nƒ¦¿|rsñMôìd‡a`…Œô¸·'_ý¢ ·9r-úi´›c:_—n’³ÿãmXø‹PLµÊ(´ågÑ]€¼ÎÑš @œ˜×NVù j¹KÝ>˜]R Tê¡q÷"—#÷&õ9ìÊwèŠ9D?Îq•.G„ 8`—CÌ=ta7¶Üý { ڿÍa~€—BœÀv¾`@÷±9é÷Ã>¡03á^—?œ­'Z]{6 ù1Ù—¢”'6³Ý:q=Kà…á`Œ!b”H‹É43S½jÌ}¶RÂ/Û&ŒÊ$=iCIèŽï^ѼkŠZesÓÉÔpþ ¯Ÿ,æÓÍ'îT`¼H…,K<|Îv3n[a€Äû_’ÛÒÌ ¼&ˆñoOnÂç³;ˆ[Û¡¤¯¸ÅMl³ÙN ¼1ÖÙŒ–·£…8 ôc`]ô Š.‰/Ùƒ^A ¼AèLMwº3Iu§o…~anO86€}øPÝUý¼ÙL09ªðOpIèÒ#`:­+^w¬ ªF¥ý®½£(6’úpÝú”ë½Ò¤)#«› *Ýp¼š8B:&Šç ›©ËTØYtü,Ó«²Yû®P…™h¼6ŽUH }°t×ÐG+ëx±µ+ªø —CŒ· ÈâGà¢Âý–L*Ä0ÇÏÐÀ—p¸@QêÔcˆ’€*×ÓÌ1î=v—}!‘°¤r’@ÔÍž4nô&p…öj£föÙÉXGæVã.$=˜8€¤¡ò¤8G^^Øù¶q+íE­É …ä™(bè)uÂ1ø¨Õ†'SäXi_NüÌ`OggS36Œ}K“¸2 !˜9¨Ÿ7ê}#ùÂýà°C…:Eg$Ì{*t˜9¨Ã 忽­ª(êO ¾J9Dî)˜˜8HDg–T¨ˆbæÕ(É®xÈИHË; ý%ò6…‡Ç:’ƒh,`S\°…àü’µ#Å]ˆ¼#Ž=Ì}Òcn…èÆ7$û÷™è)4éú ²Ô1¬œmŽé€—ïŸK”ˆ¤¾øMÛ°™Ç›>h—äm²É_2š=qçÝfÆêÞ–\è{ …ÃmèAfò‰îý ªô^ÃL¿s6q` €…ÁKKÒ¬Õ© ¼u^i¤Ic’ð…·¼Œ½f7nýœ³LöÏYòÒ'¢©+(ZÛÐ…ó,¬U ’S‡1$ämÀ"7°y|m$8˜ Ød¯‚­23=*cçÛE¯J*Lœˆ…ÁêšÁûÒ<ÃúÌÞ¬ÝC›€—?Â%j]ˆ!þ"æ÷ÏØ÷=¥ìðX%%€»þ·t&¥³+ÖmN­¯x-¹k›®k„ÅP£=3i€¼1YWÉQø1¸§'Væ2Ù‡Q<à UzD›0¼(E”Ð5¿W“€i‰'ꀱÐ-ó?â;+“PLºv5½/ݳR }øæS¶œã?ó»Á#þUÉ©$Ì€—ãM~ݨ|Ûó‚ÞyMg1¢NŠ —tZI˵s-&­4755=\€fZ.ºx+ä—ŠÖ¯êywÏŸA×>`ì}°Ë8ïæ!-蜠—«‡ïÂìÖ`–f*¸] ™Ì³3ºÉs°—D  û'£`qÞÊµé ¸Ÿ<¤YÃL@—mˆ‡kÒ3‡HÂO¤Øb6"Ý"©†Wª%…ÝDÎĆ­ôr0Ê©8Cï3ÏjcNŒ}„x—ñ~3þÞt{ÒÚ[¬P¦_rÓ¨ö v—éÍ]Þñ;·ò@°í1°áT)$ܽf—¬Eµy©Néûƒ‡àbQ¥ã¨¼•9LÌv\õ.89@ ¼ñž0™f`à$—5¼qã£Pqûçøçƒsdœ´’n´9ë}¨3³¹ê¼K¯ÜIhÒŒBSÝõ•ÐI©¸^g5©r¯p…í‚™)Hƒ¤£›yw‚— ”µJSÊìâ@…ÚtI«s+­HAÑ?Ly'¸íÜêœw…°ú­Uwª­ðÊ{{"ùGØæÐË•*θ—mS86Ê;}ÌØTšWóœoÚN?§+{°˜œ—`bTeÆÜ¦#›˜»›€™ƒ‡ë—4§ºÍÙCÁÎYÂ×"º/Ü*ø,¼+-:Œn•C¬G%Ðf>͉oPKd „ ¿÷ÍÓË–€ÆíLBúõeÐÁúwHW8Áw力Â@¼æãç® œ~N(b–Ðø  ßʦ„.쩘o‘¼ ¿D±j¢–?flOjˆeWR[´†»ô¼”¬æ‡@\ê*K¯ž€ì\_–°ÑéÓœíh¦Ä ¼Kñ1uÄV ââÑÎSÌ]œc²’nþv.u­Gè…”],G#F7íábõk`‚YãÔ H—E>¹²ÿ¦‡bqþfÝëtζž°èš6Ú+¦—«¼˜œ ™av…1È&FÓ2®«Œ…Ð#”ŸMò5Ã8*ÂáÄéIø…°Ï!66¤»@v`)œT0—@‘ˆ.ò•ûøÔ7löÞ¨ö@OggS€î6Œ}Lèd$2!?ž,GôPàÓдl =8#¬ô…žÒÖw€.|hv”vtî?‹£I`…¦ûàÙ®ïDÞ¿"$œ;]ø)Ð…ê&yQR¶&P·I¸ŠÛTRÍfæ5.>Ü—íÃÊ„uY}@ »¤+]ë÷~ ¼¾j#Åɼð[õÊ´‹ˆî$f3AyºeR3›ÒŒ¼¨ç(}ëƒ+ðWnk“Žyq2§y×ðX(d¼ËõJ™—Q{LÌ:BæWuº£‡@ õ&?€¼Ä#·ÊååG Jг¢ø‡ é#13{eø¼Ñx‘¦fÁV’cŸÐc8~Ôó€…P^ù߇—,Á¿ô·í¨Ÿ‚šÔ’æöhð„»¡/ŒvýReà½:}éëf˜ùFÉ5( K¡à~*ųæ¦ì½¨Â‡%ˆ8 ”c)Ë—uøêVÆ€RYÔ¼÷Ö¤UŠuQ›"£0&m_ê‘ê8¿ëEÜÖ¼òóFg$gRŠÞà  ÒâB,q¹ø$1òȼåS¡´ BÀSI(êMò“_cvxÐ…µÌðkŠÞ©Å:¶•o”±<¡/…×r‘ÿûvÛûDÍ¿M(ߦN2…ü{`…Û)%HÛ™•ô’î9t;ê¦eõy£<à—¦Y(üÍ)·u Ú'GU/äÌ"zék ˆ—o¦R¼]*¼ºèg©®©ØDœŸŠq ¼B ˜ªj¦Œ,ö,ØæHÃé¿ |©Ž¨äÆ$ëø¼Ôx«j5Å'¤ˆCƒ/£I—–êªr©Ò 8,_Œ¿è~D|‚öˇÀ†äy{ÈH&ã`_kÁœˆ½0ùIy¸—…y”8fè•Æ{LÅЛ©Zà¼ðÉÍm«vÔœ7íˆö¿¦›ªÊ¨ŸË1iað¼Èʪ4ÛV¤nß‹”X8:<_L­üMCt£ ¼ü(Ú'­ ‰EÓÏHq5—áû‹ Ú5«A×R ½8¾1ú'Ô½L9ù»Ð›`=žë§~倽9D%$œ8§Ó-<“d ÎÑBoª Ø½ùì¦ó)"Å¥zbLP6j»Ü»XÆœÄ…ðƒ¹•ÜNOàñ“Wúÿ–”žæF¨˜@'<Ç|‘©çõXýp:È$ÓÝ h—Åiž7(¡÷”§|ÃcÿÑ™¤"З¸W—]Q¯"Þ rü­,Š‹¯.ÄoøJ—™ã®àñº§Ù-˜Î×ÌFY¾€—k§f÷§qcmŠÁ¹Ç1S.‘…¥©K2¬9±ƒ‹ ›¢UB¯—láöúy,2õèMuN…¤1,åZ•måÁ£ýHlñ=TíÚŇJÑÞÀ—Nª3j£"82ßi¥P– …¦}¤gÑ_5üÙž…bjbµß`cé\'¦œ@…¬dÜ—ÁÑãÍk>gæ«ò<)qòpGm…Ññ²¿‚ë´,€ÆÔš5µïNú%Ó`…Â.ƲéÇ+ÿI"U7FÖŠ…ÉK)—„˜ÈgèÓ)œµ&L8ýò³×˜A©êcÒìÅ 5Uèè )_p÷‰¹—ïÆÐy­‚2xÊÜn ˜ï ýp¬—Çc¦¤ó_ ø;‡˜Ø¬×)[aNnü—Æ"jfÍÿcEp—¶ê¸FÁTœ­ÿ¥” OggSª7Œ}MLC×2 "!"!  —·³Xš+A ~¸¾2 „Acè“×äÒ‡ —šÆ¿2¦‰Þà´gsš¥ +iAÿà—ÿuL"ò¯_Ù®…î‡Bódè€P_6à ½„CŒTþ³‡ñý‡XïVÎc"³Á·—€`Øý[x¼Ä7rŽ==2´êëùõ|¶Â·×ž¼kú‘0~yûÎP­m€qªz‚3˜3žÜLÝ‚ó>Þ¿ìLßL„ê1• ¦Gð¡½_¹ B$ðutÈ8ñ[$÷À¼”F?U‹3ú ‚Û±½o%tÄÔ:´Æ0@—ݰ¼QÇ·P•¯fùÔ2#ìÑ¢ç¼ñ~{Ž4 ¢®Ï8þPï…êžBóäFÍ4K £7_BÂAN˜7GY3×}êg$­Eçt£²ƒÚ½‘áLòMP4žRï¾r¢z-ÛÊb1ÿU<ü"€‡½_ lerMÚ‹ÞVBéþÞ\Ö”§;À½QgŸ‚,í­”ò¹Ì„)ÌÜBK`ñ€½„ö =δöIÙt4æPM°®Y‘ÍŒT¤¤Õ/̽簄}»€"r2X´(kÜšWY£TüI[M½+—ªfT(GàLõ$*3 s²m2ãàÑ@Ë*½B´32‰_0Êf¥§L‚?îp»D¸îV½9D²ÕqU½L~ >G8¢-Ósì-ƒÝº¢}‰€½5ã°6`Œs¨/ÀwŸôY›v'R@¼îióÂMÈŽöðѬf„êT«£ôå‡#þ;é, ¼Èâ:{zÜÇÇ­¿•¾+Ël%~Ü(x¿ó™¨GäqÉV5nÞäê{¬ž|´¢*„FÉ?°€½Â5ÒÅ­ä›DL¡Yyò“Ûl **7Ù0̣ʽ+$lä®@¹ŽÃ“ ÚÒÑr.~{§@¼š‚gHŽÿÒ¿À³\ŠG–F~ù~,âP¼k!_úE?÷Ù¤R׬ÛVFtûØË ¼k6öùB²7ÈE±6 æg´çƒ2€¼AhäøFMyÊ6éV¹ŒÇ4>IâÓÄ‹9È:†§¼KÉ’8 È9öç’²äèÞ€02VnˆÄ¼³Õ‰ÑéÏÄ»~qZ´•¸®VHøˆ÷9;Ëн6Øåh…Ý7Тæ|² q¼SI‰¶ð3ŠÔù¼›±Ç§™,cH¨ù]  ÖS¯ :"Yoм„o“%SHL{GÏñ&쌅c£JÍÔ¤¼jábV?arÁàUÏÀý@ÒÏ©sá†Å…-pÜ%à¼JÕ “¨^6a©¡`k~rDuoÈècÿœ™l ¼%á*‡ô=v|¡á›¬…£8 óv©¶T/€¿ïK%õÏE«îÂ]OYÊBDÆŒè(KY3ÏÖ „¼È©t£t!ï†V!YhȨÌ#mÀ©Š¡¼–" J L`_íÔ'$n-Þ†Y½Ê$¼ŸBP-i¢ðÚ÷ Ôä9ךþ î0Ð>*@¼ŒðŽpÕvLìµ­îeª} -åt ¼hBJèFÅ¡[†dá0Â'ÛKj—O| Y½\W+ÈŽÿô …ɾ°IËáhéGNòNü©R°™`˜?O’DËÒühgÈ%ô”´²KÀ …µƒÅ—ŸÌ³=Q©oèçù —ŒËŠíU*úÕöP0±Ì1] —’ÌQ®pùqð3 å}¸ršÎ‹Ø¼(&'Öà7ˆÌòÅK…ÕM>^­5°OggS€e8Œ}NŒdŠ2¼KÉLSHü¸'2;0sïBÇ$Ê€û-D¼Še=ø¼ÿÇô¨|ö¤p[åiWÁ—3ŸU½Ÿ“´õc{B ðG'êžÐÐé.ùÓɽf€¼¢Á0cµT2†ÅB%‹—*ŠD£Þ…yËWË›E4/`¼ž%ä@ýìýÎ2Õyî쥤»Åª^#MÃm l¼u¡Ó¼þ`Ìñ.ÈoÒüeþ£g÷íÄR¼jl « ·½QìºhbƒÛÚ4ȵ·aÌ€¼3Oòã¤ÜðSED—Ó <© µL…-ÑÙ3èŸ6¿ïD /Ž“i™u¾›sM³Cmôô÷©ù]@¼íçîz?BÓr¦J¤Òa¡3+iZyAsžBؼÉüýˆ |Xù=jÊR×·ŒÅ&jhqn^a ¼¢ŠÂ6{]Ø-S¡e1Jeÿnþ§¥¯@çs"¿ðõ½v#7«r¨/vo0ý' ÒÎíAN"÷¼¡­ÒÎuÛ½"Wcåç,[)?fšå²Q?‘ ¿ñcGÉÖR*ŽRC©•Kž "•_³>Í(мÝò#cr)G”K` ×åëk³Ð{yNd–ƒ½Ž›Šã Mþ£Ÿ‡­IHž_’ÝÐêòL"À¼òܦ#²šaRß|å…äH0ÚÞ{<½ã€Q²ìY¹À>½ÞáÉ<QA¯9‹šÓ˜½×4ì…Õòtø‘wU½(à'–,¡z#^¥H̽¸ptFxúÕšD#Þë–½'Q‹{>¨ÍŸ¼ó7ø$þÝÙ"`»ŠhäÁ¼üÇSxîÉ×½B;§Gá“›’Þ9ÑcÆ?¾½BÏ£ðZ*È¡ßPæ=©õ¼¥*^yrGúšP½6†@¡r£»„œ‹™´F™b’éd ùIH(¼òÙ££ŸhfyÒ„¦šîº›ÞÖœ`ð¼ñ¯ÿ†rfW©DŒ¥ú‡´Qyýi=d¼›#vg?”s<ì9€olÐËRÉ0sÝAÞßd—têÜ5ƒôå«©|yº˜lç\ ÞTK€…»NôvÏz¼#°uûo¡L˜¬xCX¹É™3y¸þk‘€—¶¢1ï6ÆîfB_ ­J…¢ aTÀü½.rl.vÂý¢’H—A{ǃÕßfþ?€)(ÃQª{˜¿öp—AqÎ×à¬lÌ-®ÈëŠÐLk€—4!éüLziªOîÝgfÖ§É…‘û…¨ßÊœHJj½Áëï-^úŽ …Ûšï¬+G27[ΗS"”ìP¼Ÿi­ > ]ü5ºû›K#Š5ª™æ¸Z è¼®½ºßò¯$‚ßHõC»L´»ø¥ýRð¼É ­MÅ/¼ÓÜ>L´ M¢®ÐUÁø¼É ú¶U‰S-å¨*S'¬ˆ»÷¼É]t ;½Ý:ÁN|þÄZ*p$Æ3ï‚€…×ÁèC7ƒ~PY}…ýnf‹‡`ë …ëK3Žy°$"ئŽñÈ È@øä£Ç p…ÐÜä  Tö£°…œ6¥ÿ¿¾—Jù…ÏK{ÉT"#Nù&Z')O /ºú—·úü©­† ëÄÛ°_Ѽ!í9%Ô/#¼‘¾2iI3e_þ2 SÜNä¿•¿~o2À—Hgù¯”—¹è¦ùtÇüZ3jeØCÀOggS!9Œ}OÇ Mo2—{T¼DÏÝNFå1ê[Å›P…µ/Xå]Œ©³bÆF™y ;õ™Iç¾âª¼OºØµ57ÕÅÔáUÜÌMšwwCÖkg€¼O¿¶_7OÜŒ&ÄiÈkq5ÄúX…ìF ­°¿ëq0Ë­£eƪ 6m‹qÂ(u¬<Âþ~Âq?B_`¼A„vÉÉÚäbðBY‹¹˜ãÉh”º-¯gìû¿è ü‚xš ‡Þh›°+Ç k|1t¬M0Ò…žã’_fáO æ—ç.wKeôŠz‚F¸˜@Q™Q¯ÿàdIÎÜQRÞXX`…ÑõBgá$(Þ-¶ëh\zÞcñvh …Ñöè,x:þk.ÝHå¼Ü‘ÝnG—ärþÐ]~_’Ñ—ýsÇ’eiÒçðÀ—¶ŸøëÕjÕwî§ìCucÁßæ2Ì‘—kÌÞs[SGLʈg®Oىٗ~³è£ñï>Äl”*\·À¹-ÆJ˜¸‘%É9v6û¹€qø@ß,o’_𼢩àñ¸qnK¢Ë±Gª%ìÒ©r €¼mB¸t¬DÇ©OŸ„Õ^ñ…[?R‡7—Õè¼#÷-‰lJ>ʼnZw|üíã•5‰èb@…˜Â™¡¢Ÿù _ 6œþâÊ(ÆcÀ…{–å]æÜšË}Èóõ—q—Úi¿Ô…»‚ Ž©/¤;ÒξwÁ 8PÐû4Ã_'N&˜?Õ·7n&)Ü€OÒÞÂûÇÚÔš,—ñçˆ ˆæø'c° ÔˆEgt5<˜:+17}wçÙ¬è\»2ù¡ð,›Wqä˜9¨ŸJ¾Ì¡<Çë«ôæ åL€…étUòî_åt¸-9žV„‡þ¹DÀÿ•8À…á73Šdá­1÷åVJq씪ظ7X˜!ë®êNJž¿û‰·-߆ù1˜:<÷±&%1uøºÊ(h¡N#$ÊTñ½ ˜8$ …*{ø  bË"sæ¶4h|âoà—¾ƒ;©!.mPˆ<çA­oÀ…¿?rª7H{ÕÑFÍ™ç¥Få„-`¤À…»MŒ~–0f2ÚIÞ1«—÷EÄ…ð…î"¼ŸJ]6“i¡\y™ ?KðÖ/’…Â!¢Úà|ÀÅàø yUäYé—ÇÑrvIñçËSR¼óñÄÂQH?—)uáh.\=÷q_1À ÎúÁ{üm(~¨½ ¡j¾ÍÎU$E{+°U~Žã±c…Qø aY¹¿÷»Ü~^…We/ÞvâZæ…=û„d.@õ‘âl…ëÔŸQȦÜTižÂoÙ 'Wê ˜ÒÒ4.+vâ: ¾¾D¯Oz°·ö8—ãÕÇ<‹ "÷|"¬&á¢ætä…´—€…×XÁcþ®¾>dwÇ­&¹óŸ>$9€…î"’úŒ],ñÌŒrѧ;j°ž˜n9€¼¢ÊTK³Q¡=ˆ_™Ÿ÷“/€Õø?®l¼x) ‘k¸®b§ùö›èsZÀùßG)Ü 7)ž÷—Ã.þ§BÞr¡2ÑqÔeÎófŒH—Åc"Cë3Òg™fÛˆ„¤ï?È a„—Æž¬íkÖ{0BYFÀ wÒn`CýQ@…Æ™M³Ð.מÑ6ya‰îYÄ €˜Awo°kŸ/ SÞ mÚb,pŠ`…ÛÛÕ·ÄVÑØ\ñ3︋<‰.X —ñSºÕ·´Dî¥&–)â -œ‡½FÀq͸—äF0Qež¹kºgÁ$b¢y˜…Ç—t¥BÿÝSO³P„ªF¨E4¤u?_ÞûåJ@…µ;ß?X¿ùR`È´Ddãr¹í™`‰1ëdx…È„<÷Êø…7"À,°ÂòÎ^jÎæß˜˜F&_G5ü žI†î+o8F0“†@[ˆ…ëÉF¯HdH=>Ç`Fyìå§FUL[4…ßý†B Äã98·¾Ò$äܳ\&ÊÂì—é}wãG6ŸÞü”ÖC/DÁH;À×ÿH—’‘Ø÷' ½iÏs9ø$×kÁémt@…•£´²=sgŸ9û&îÔ¹a&9€…žÈ?¶ö^jgøcǪúè-ý®vÄ…ë^@&Ï“S€&gÍ|Èð…¡úpT$€…Ñ.ÿß%'œ«º@‹”Ø8¸Ån—ñ5Kà ¹›ßß«µó/ÈÿíÄú­ªíaSÇ@˜:Ç ªèÃzÇ^Cy÷1× õÔq$O€?í^˜AígÖ1Vøi·ÇuÝ3DzL¤á¬ºR»;€…é.Ý+ÖDo!Æ«ôXkxï˜dP0˜7zEÇÅM;b:7úãxðˆ??AÔ3Œ¨àÁÔŘBýiBÈJ͉£¬kÆò¹ê©fŒ@…ëO;[,)¶pZï ÇNw¹88˜IÞš32ŽtëWü-ú.†$…Ýq@É øþi(Hø“nÕË煿ɉöN„E5X”eÔo^Ûá(Óam™S4À—Ä[Œ¨š¡·ÈÖÛhD±ªí´ ®ŒËù4Ãus>þ…Æ…äºÓ†ä «@ÞÈSfýÈ„ ˜âVðŽ7ó`˜L=;ö Ò€‹~1'Q“[%몓T˜I˜7¢"&×3›°ù! {˜©!|@˜7¥¡9t£ãI«XIIÙïÃ}JÙnBu àÜÀ˜Ø:®Ï¶ŠavâÍnŠ#ÉyÕû-ÒÊ—Á°:•¬ùkÐõÓ“ó!|ª0ÌMù“Ãp4`…´ n1]ÎÒ¡/N RGðDgv‡W…»]Ÿ :+W¢¥ÝÃ_Ob͈Ÿ5¯QØ@…î/={¥obçý®qöOggS˜:Œ}Q96æð2 !"!!˜ïBŠ¿Ç‹ç$ÍfAA5òÍ"-Ü$°½~»ë¡*^oêþº-KÚÇ-¾…æ_àç¼Ø[*—JðX(¼¶½ÌÔ_ñLMÄÊ#×Ùh8îl­í¼û1dÂæÚ7YñÂ…VßQæÁÝ´°—«cð¼ÎS;ÑnBʬ§e÷–(º_¥LbÅnÝ h©r»¨…éðç nXň—ÕÏ8G+WoB¶qÓ¿ü…îJymÖàYë¤Ì»fBRBö ÷—ÄJ$ÜÁ8ÚI—á÷Ü`ù2=¿1ýÌ|\®…Á6Û¹»š¶¾¨R´c4‚¿ ” %=ëÜà…¥çÙY‡ú2í¿(>ê4ÚVfTÛë—>TõCÁãH 'âì'E¶ê“„ ¬Xt%ŽJõSöƒÿoFÆ›SdÙÄà?—”jÉŠÌx™ý‰lªZó±—Oµìḛ™Ìi¬‰¬X"ÐXø]ËÀ—A«.'* @ŽHAIpè÷¿ Sc† Ž?Ô1§ y2T¿Üž‰ä‚/Í;¨@?—¦´‰"»£Ð«äBô7½r€êÇ)BL—#àWu·b9Mj˜3¬3¢®t;Q;"­@—P=SÉ€\• :+¥<2é]´íÁ#'À …¸.…ö>FÇEˆ†BÚPƒkOšrȘ<ãTá6_GÑÙû„Äý__ËEGb~î¼¾ÓB„ ´& Ñâ©f}ñóA_ÛÛ Ï]逼¡I=p4—«2®@ØÔ­²ÎÜ’èž—¸ÁÙæ:€¼›’#Q®»=h¿¦ÍFÚª™y`V0bv÷Éý˜¿î"š“ÊH'oÿ: ê´N§>²˜"d¾üp¼k:„( ¸B†;·ëò¨Ÿ²]ˆ“O;k©¸@¿ìZc^È[½,ygqÓX)¾ÛEøß¾w¸6ãÃÛ2½6¯®H³–ÀN!d) ˜‹)â'èK¬Mr»W'3¿ðÑHËÆö†š?µ)ªül^–nHvoÆïßü ¼q„¢ @µxÕÔZî8ˆ‰3†½b×€¼JOË*N«¤zŸ€™Ü’µŸ«&D¤æÝ$g½‡‚.¼+öuõâΓÔ@èlL‡Å`Wø.§Úl=Ÿ[÷&]ÎM£Ô¼QOvœwöÛysÌ0.x:W¼€~iFzï¼°œ”‹2ð™DÚ~éûo-TŸ¢^ä’‹Þ‹–M@½QÎO-cß`›c æv‡mxaîßC<ÃÈý\¼ò)¯%-|תÞõ\ì¯a¨¯ :> r½ì^ѯ$}Z\™˜üÜ;ñ¢ÎbìUÊÊW-Ìå½9që 9äðío;Æv,ïÜãü‚J˹ˆ‰M/KÐÀ½9r"`s•­ÄÞ×7©žt¡Ê ¨Åoýfâû38/tlí³Á“9)Y)Me•µ¨ßck½%£0£÷º!Ãw‡5…à—ÿ‰®ØYª¹ÛÜÏk@½+‹Ø7P´E%eÕ¤nГš½YËå4®½@T çTô«â'ôr U'"ûv½-ª‰_s›¶Ý² ]³É]Qw°s=å Ù8½Ãã¾­í#Š%¥è¥‚sÙ{™>ó«e½€¼ôˆi 8둃ù”åï›Å`T ¼Ä*.º%ÿ{5s³h™eE¯ÅØPù ¿ñ—õ/6Ñëà‰¢”?›Ü}½p]œ¢9¼ëkßÑ,ø½RApÃñvø%úCR;ª}Tļª¼Ÿ°Žn<¢®¡–Ì „œ ÿv½DЬÂÏ_KOggS€S;Œ}RyQì2  !¼”¿Õ5þ±~gKP[è…Ý{Ö;Ñ(elv(x3Ž¿íìŽès¥óšl*É=ÈšJxm¨è SåX¿ëRß$s Q3 =LSò‚¿%Ò!è”0É @¼pù#ÊéBds¹#ch]þ`–ôÊUnTbmžÌ¿ñ”·×ëE¿¸@਋à0hw?4&XR§…CÒ½HñìØ/µô"Üñ%˜¶:'–óî1ꫵõª.,¼½G ìɳDtZ·Uà±€BZ±&‰ hlϼo"ÓïãÔӇ͊d,‚Kq!µÒs¬ø›à»þíõ[ })DEøX´'÷SÆo(ùñ®•„ ¼A’îmÔÿÃxÃI„„“%½œ*?P©Ò‚¼'2³¢eGv¼'Úq`Ôx£”_ªôý |¼3Ÿ*ªÝ5×b$§o“”žˆ^³¸×¼€¼ò¿/¶*Ú7ªq|©Œð }dḚÁvø¼¾ÏXÿ؉u! ˜+^  xbXð¼žÂŽWß9uÇ¡IÙèL°gÁ”¯3bð[Ÿª¼yÉ[IiÍõƨsv¥ùòÙ›ù¥g-Ñ%N}¼LÒfƒÎ³„Z ÍÂjÜ}à¶f§”Þr¼KΟ»ºX–$(–­at|£Q¸óçv¦À¼]S¡ËüÖhWlC*vÚð,4gŽöå·“·Ä€½R’É k©¤±øk%㽪Üx°, Ò²Õ’`¼ž$qùñô®x"«êÿO«ËÌû–€¼t´>/ÓÚâìV°Ž{=€1¨1V$`œ`.¼[Õu9³HïE$ˆ´¯ÌýYÕú£øï£÷¿îL JÖ¢]»Bûôü©Æb½$ˆÊÃû¨¿ë’Õº˜Šï ªT `¥ŠJg¸D|Å.?=@€¼]EØÜ¬²"Î+A.‹ií¯+Û—ô¤ì<\2Ú½SÊ…T®òÉÙnt¤Ÿ'cæû¥~½ð”û¼èž¦4hbµ2‡\d¿ü§³Kp‡À¼ÊÝèÐU] ù-y=,Ý&I˜ Ù>vC#2`ºo¼¡?a€°­ZŽ×ì¶ ½’=ö'öð¼”Çé)«œe)ú,Õývöfh·+ã;e¼MÿRS²L‘;ª“.ªauƒ³n°-й駩ހ¿ñöäðüè —h'ÇJô’§Y‹‹­Ò=ÄÞëõØUó‡ÂnÍxe¼¡=­ÑÕ×»;ÈsÛjL®$”18çxTû€¼  åùîX̲@|‘Jêo‡NrB•˜CT 8/†¼¤r§Vcå§œm—+½ýçùý%ùŠãúðÒ¹èV¸ºÎEpx¿óOøcÀ‹ˆc] åû“¡©9˶ Ž[@¼ªP–÷ßh…Bò­²)NgÔ Ò¡ )OìP P½9€|WÅÜvžžòR–¯yj”P· øšñ¼ç ͘œáH ð~j;¦¹ŠÎ:׬Ë<ÜiLÆpQNB ¼u–Mx ÉßL‰#vX„äd‘Ê0V†¼xí6Wìù3Oe† iv·é{iÚH¼k˜“„n™“mÿB•¥¿wP/`cê£ýƇ¼ ãPw±„9}R¬2«£r ÂúîËž  ê¡Í}…¬óàË,Á~6²î§œ ÄMë ŘSÉ~¶næ—pØØ:9ÌòLY×£…ßÝ,&°¯Ùö¨G¦3˜¡£«àÀQ Pw¦È´JÖø=V€˜+)7-Á‚Z±éŽY^;±çe à½SG6½Í…¡Ë{ùIÝõÐÞöJ=½­`êd(k³…–·+°¿õÚ¿¤Þ6ä’¼¿û½Ô0óf˜È©Xeêpª(ÓÁý ¾œ ˜R(À,:ä@¯”­9gkø¸·tå v—í=W&œX´U<¸Ê Ýù𼔪ô¤ÎrÅ/Ì5xâ®±»ˆø¼t/{·†@¸ºŽ@L¾¬\6W`?{jð¼Z¶œ!î™Hö¨2\eµÎô­\šì}yÉ`¼TÍÕ»&£?ŸÄRÛE7+©*ø¸gq>.fм~¿ãNàb{Û>-i!Xx—>`™»ìƒif@¶@¼ž)žRàÅ—üô¶%'Ûɾ;wÛ°•[,™A„à¼k´“H:’¨Ñœ¡GX®ª¾¾»l0¼v$—8eCª6¨rÓô“‘b„¸“ÃK¤Ð¼kÎ|ìU¤ ÌoMŸ5žRÑJ{=³1ð¼L@¬–ã^˜ù;?Eµç ¡NÊ<‹´ÀŸÎÚ”¼tQj¢Ý†K½Î ‡Mƒ^&3#QíÝÀ¦ªÈÓR¼Vº^-À»:#̈3ÖÊ{t‘8óv‹ø_L½9½““OÄרû£vÝÔ\}R9Œ"U8¼îWp$of§A–®}£ »@tA¦l¼”Z°z'v¸}¶YD0Ú”ç$9¶E¼AƒœoMJ×7‹hÀ‹Àõ¦åȼ$½G >by¾a8~}#ömFGZx€¼()2í>s»ÇSàãF>Ð_$H=.~­|ê瀼UÎ`çµoëè·¾Z¶‰@ýר¬`†Já •x½´Ä˜A׎Œ@˜BèŸ@ýª‹n)]#RΉßI ¸³OggS€Ê<Œ}T_ì2ó2 ! "˜:{kÉDAipt(ÛßÕ{^þib…âQ‰Z„d@`l‡Ì¡@9ûÔ…èkÛ‡jý;æÙŒYÁØR¨Ó‹+mà˜=ÛÈõÚç ò\ò“ßw9 ÏÎ@˜Aµ‹[žN_=„ºz%yME˜Õ‰õ¼ðÒo(EØÐõðÖ{Gç?s2ÙÉ"3ð¼Ÿ$4¢“ h÷­ÝêóÂp ût÷ð¯gÑP¼…¶ïpðà}Úô6@| èJKÜ*Gu•„`¼¢ûeH²5õÜýÚŠý•Q¢³û..¦6¼©)Š.„ñÜhf8ìçAùÊR»ñÞæx¤…ñßµ¯›ªª°U3ÙhOJ¡r€˜@ãÞgñ*H…æf&º`E=éIÕ˜¼ç8ŒÍétY\)¦Ú¼^–' Γ*±â‰¼…¦õã°±p$”e­t·´KÝ8]Oм…ÿµ‹®‚˜ªšôÜE_‚¡ñS޶K]hg«C¬¼T¾ièRe}‹{DÁ"ä ÎîØèå€L¯;ee¯ì'œ*+̽ILÊî´èÝV‹aR¶ÿåˆîõ« †ÇY#¼’B¹IVïú2lUÞ`¡·°É ¼A°=ܱ L†/Ñ=®Kâ1(»þ(d§âµÇðÚÒhº°Ë &=B1@…™Ú¦3Ðäï›·Æɘ·…€…³ò| á³¹ÌE_"ãt`,T…¨zzMäU”ìée ç+¿M›±7V¼Ù²¦ô•+Š |…2·Ò:ß^ L56p 6KB0âP¼ä1[«‘t¼hžÀO„Z¶!L(á°ž¼~pZ ¶I|‘ô3„ uæ2V{9 ÎZ‹I§€¼É~s35Ù´”xç¼ÿ;n9ÆPû×éÒ«m=~{,¼ÉOH…Ût'(Hí ËÍ “÷¿ú7Ø:mDð¼É(N’ÝbÕ5Ä<‰³tC#s…þŒ.ul>fò†™¼Ùêõ!*£7~8¢¸ÊKÑ ñ?ù„®åÌ[§5åè<½R™™·æÂ9«[X <–ãü v  sš jªÀ¿øa5lá¶[À¼]‘ÒÛžëà?:ÉÉûB§Ð¿ñäù‘âL¿±ý- Èⲓ&oš½ª¼”Éàú‚ç&¿ñÚîòŽŽR”{ÕþOmŠ1r¸…"8zƒjmdíX˜…È´oºIsŽjM+-‡»ÁÍ.{€…Ð]>oQáXÁnw݆„†ñX—ÍD{ïí–ýM'…Ió-¹4&Ñ@šÅ¯ÿq…ñ$CÌžÒƒ *Š’Û1kSÆ„nE—ïeÙ’Qðê·Ÿ0Ê/Ë9q €Özø—ïÓG¡ Ârä ŸùdW¯‘ô—ït<ß-Ÿ‚æòîÞlL2™£Ù—ñrr1Ú»CÕ`zj[ðÓzÓ(€—ãÕG—-%£ ¢ú÷0øqCÁ‹N?Ë—Èä~(ýx ¬¶l€»ÑäÙaµ‡ÅQ©JÀ…Ö;!ú$|•ÚWüBØ×Cžµ¹ÜÁؘ¡Q+0é°W¦ûw‡ >OÔ˜<íz¦ŠµU†ÑN2;¥€…ÒÞœÄ'¡7â¦'¶¼âäɰä‰.F$€¼æëÏ_×D®EVu9¶²´hÿáùß~2 Œ†âOggS†=Œ}UTßÇ2# ¿ð=€Ò ÉyØvâ\“Mdå‹Û¶`Ar`,h¿ñ‰ïë­Í;_-‹"SæûØÆÅ ˜–ªëVÐG«C«;Û(¿½dMý[5¨p³ƒ§ð/X«©úº0¸½¬¿RG›ý^8Wk­Üû÷œ’çù5œ¼÷ç`kƒÛeó' ‚j–‘Käqè*(¸½sÜ:Ö÷䇨ùî›vóͱP_(;À½ %–ä¯ "mÝrˆ»gÛáR161 ͧpŒ½sô8k× z/(Rí–¯AÃî„¥Õd’¿öÍ÷†ämIÝ:'>7½¾ËL'sŒ¤ÜTT¼hsð½:?´¹[RA kä;¼§O×>ìÏd³0'qõ«@½<áwïbÉ A¸Ѥ—‘^ЦÇθ½7S¯»—ï¦@ÒIG,yWÇ¢ˆ³VÛ\+€¼ÑÔÓi'ñbTí•^ =ÚÑâ±òRÅøØJ@¿öVº¸ËW5ô,|£K_FlÛÄ‚îŸJåñ°¼¿'¡èK¡Îž{f·ë•§»¶UóÏeѰ…¶Á%â?àßOá¥iE³߃S• €…é[^¾ãm¨UäHï ¨¼ñF¢;œŽº|B\w»ÔG´¹_¹B\p¼¼ú­~ü ¾ì†“l5'‰k£ç!¡ hYùfá¼L2ì}¼øì¦ÑŒ[.zÛÄëZ];|QY¼1ÓÓ¼úÙÌ}ýG mYAx¶–ø\ Ø9¼Q÷Šñ™ŸÔìŸ$‘­„ ‡e¢èì¬âFà¿ê¦sS)é•$‰¢…6ØÌHÇÇÞ³½'¸ôióôƒþ½mgŽg½Œ:>Ü`Ó847‚3d¾~<âñ^¼É_õ[›Õ|:Ÿ T!¦½î/€¼¤¥×2¥¤vÈ_@VcF c= æ%¬<¼ÎEØ€ß$Р±G¿EqÛ[Vû]´pŸØ½Þž;®DQÞŸ# ’ÔºD¾PPKÖÔ0 P½9"$êȲ2äˆI%q—öÑÿÅ®>SsL¿ú^É ý›TüëÐV¯ù¢"‘1y‘&@h½[;øàî/Ò7ÉaÛPÀuÝq'e÷žCû—åþ@­/»šËÎö$90,µU _´¼È†ó g"Lø,½ëâªeÿø›€átVhf¿ó„0–p} ,h/ d çyx „ì¥R©ÆÈ¼•g»U*œ ßVaŒÿÝ£žê B‰*‿î—ÍéÅHƒnWÚ²gó …'7°³Å±z;@¿ëžv”k¥Ú`ÔW¿˜=+"ž¾Vr .œy†ééÀ¼¡ÎlIÙq"_•¸Às|-² R—Rƒ@U:¹4@¿öRüŠIqÅë:fÖdèä¶d¡¿Dä÷#¿ô¹rÔ3žaÛ0cp=ˆ¿ê=ïŠY„we1“6 —Ç;M­Ÿu¦8õâ òè0â04Ñg4—¾w¯<v“>3&dpÜÁ•-~`H—ŠÉtð÷œ!Ç.vÌW$©qãÏ@…›Güvk/ó£®"±È“áðP“ƒ+i…èx¼]„Ùif1”á ”Ó’ºÀ…èH47±®¹jÖ­i™iV{$@¼mer7äÃáI¦ô®s0#éE ¼ÊO k2FÈÒâW±x\5ŽSPQEð,fex@¼ÄxÚ-Ò7.f–¨ÀŸo«éÁ ÷å1ümwÑG”€¿ñxŒúºß]Ò½`œ8:E°:™pZȶ[¸B^OggS€A>Œ}V5D}C2 "…ÄÔfâ1µ` WÇ–ùÐöÍR;Š…ä…¡á”JßTÎÔ¶‡˜’Kž“P…ЄOÀ‹z‘¾ÑýŽñÀ”¼–Ñ…ð¸äeUºBº‚ Ï…·æ=GËšÕ9°¼¡ÍºfAý3bB -ÉÊqÓi®iF‡¢z¼uiÓ/\æ:ÎF‘•º=qS¯7jL£CA ¿ñï‹©ÂIu»ØèçJBø´z¹‡Á¤3s–|¯^j΀½m¹”ꯊ<£J¶s~¾P­àÞøªßGçì½mRäE”¥ -¤^ü!²%‡Iv°û¯úxÝ`@½àHŽõá.¨·ôì'®X©L¡Ã¦æÐÁhî½!rFb_}4yt¯L‡3Äu(¸[¶Êù¬Ð½9n¬HÓ ïª¼ƒüê69­ZnlEÖ)ù±—cä}€½8b¬§ÛUM›_™«¾¡ €çaH ¤÷‰Èé˜!éK÷Èéiß-çM3¨ Šåga ½:"fÐg,ÞH_ÈúÂü—ß2JS·H½9qÚ¥in›ýfõ\€A·é€‹ ¹ôÏ¡½9-†_ƒ ß¡¡*Èz“ÑžHÒ;CEcÿ¼õOÔ&ÑNLCŒsùH“òÒ­œˆ»Ü˜¼¾Ìv`…ÑB½X¤Sóþež36úŠEÞ—ð%‰Áâ(­zÊùÞU†ð…Ó;®ÿ]ŽÊ^I$À×=ôË‹ˆ¾á…÷#î›ÚçA­91á.õs4H³N"…Ï“éBЬÌÐ=e´OnxÜÛõ …Ä Fšñ“²2WØÞÔQ¦—{=šÂ¥À 5ütl(g‚ü4"Ué¼U6¦Í'%²ƒ%rÝ©Î8ÿçôxs’d¼KüË›¥´§h}¿cäóÔ€;Ü^FG}ëuÀ¿ë§ãªy„X«³9øØ ¡f寤Öä–̳ lºzØYÀ½Tò,ðg¾é<è<Š ¬Íw×yV:PL¼ç mØ«¢ŽÉøêÖT.Š]zdö™üP¼žA­g°ÃAW}Û‹k8Ò÷Wvö*”Ž­×>Òψ¼t„ŸTÚ`ì/ÜD/S'w`öŸ±RÁÒp>úËz.䟥me@½Œƒ3Ú»CË1ËÅ©,Úð=¨ô’ûO;ð¼¾ÁS›å×k®WÙâýÿEùøMÆIìÒ€¼xQg<öÖV•°adAÃߨòLßî…É€(¼›³ ˵Fè,­§€ª",¢œÏ< œp¦FàqTD¼wž.9w«ÎuXolóáð–{b©mÄ`¼kw>L—w 7§,&MÛ)néê½'–Ú®#g°¼RüôÕø|A§NôKÈ/“€ {S‡:‚ãuÛ}à½d¨8‰¡¥{~nÒÏÄÅoÔ©~4É‹÷=²¸€¼äüýT9ArÞž£•7m"䪼uY[ Èʵ—a!ì3ÀÜŒA¾)ê¼w †1"i±)ÕìýþM˜ Z÷i]ÎQ‰@¿íJÆßŒ?P¹q½YS{,¶8húi¡+À¿é_XâHÖAºPÑ^‚¶m>·±Ü0¿èÙ`¾¸“bpoˆ¥ˆÇ|í³öÖ¾ˆKpñÄ•OggSý>Œ}WHµ‚R2! !…ôFç,+„áø‰ÃAK_¨íŒ`…è»ç9{I6#ÛšOn´Û7Aíé%‘—ä­ðÐSÞ DsÂz€ØÊ‹¿ø—›–ÄLÚ´²×t%mÀ†=ÊÈ(—›/è÷êÐ £eé¶co®?ÔA䀗›/Ÿ½Í]˜p0}Ý*n01»‡½—@KIÛlçk‹¨€o%4W®Û(³€˜:+ÉS³¨äÒäOÓÎÄNØ@4@˜ÐIBz2Lü{íÊG¤>öWX(0—ãÊ8ÓÁ©ãMr‡°âÁ膿@…µŽ! /&àðïciÑmÒ Ÿ‚À—k© ÃaáŒrSϺ¢õfdëÆî…©6sjY¹ä釥n÷`ÇÇÊ k —¹KÞ$DŠì…C«(IÐÍ]Ì! XœÐ…é>씫G¹TDX<;ßõÂäFñ%@˜àûA/&v4v0{e7å3ú9©µ—íË-ÍÅé豊„ rc|\FŠÛ@—ødC9,9ÏýЃ’á4Q€:- cç0¼”±¤$Œ:uÒ¸´äŒôzJ^Ú¬)ß_š(%€¿í³6ðlMqéðÅzV#”•[N‡¤ê'DFü?…@¿ë§|óXdÊ.ô,3B'O—hvqt¬tÄ_ ä…úB!skÎÇ=¯‡â*çÑ’‡¾C‰&á?»ä˜…~››Ú¤×…ä[ÜgÑ‹…V$åqS¼¨– «¦fˆ о£n‹)ìGu÷äõ@ؼÑlÛ]âëöÕL¬•$iÏGe¡6R"4PA™5¼ËõD愌w M—wéÛšê$ù´Ê6áþÛçÿP¼È‰êî6RnÅÞšâ±ñˆªOx"ý’óm¨¢€—Ôù-¨³õò¡¡‚$ Q¨`‘0] ù …ôHüš÷Â4˜K_#÷VjZÌèL…ÚŸðw’¾BZôñC+s1Ô Ôð—¾hT8º}6BöŒ ì:foú Û—‘­Ã¥SëÍ_eÃŽæOmÓ³Ö?—l-sÅ ˜jeŽÞŸ…ßí€?’ð<Îû“^_\Œ-°Òà˜—}¿8`c𩸊í–îé—5zÒø¼Ø$•_B!zχWâ ¾æ*OggS€¸?Œ}XÐW>2#  …¢¸¾r¡-¢€b¨<éHxô!T—}—:­r -9.¤5Ý …ì)ê™Ã¼J~‘cK[v.>‹z¨ ùÖ„FX«`»íÐMlé?ƒmdSpñ¸(öšA¡¨ÛYkbWÞsÈ>Þÿ>Öª˜1 ©•Ü}—iãBÇ&0å˜FåP%€ÜB¢šp`‰C…éÁ=ctd~ÒRf{¼™Ðº«<€ª0…èbÿá—‰A}zg Çwô÷®nMÞà˜?üÑÀ.Ð" üÂvRºËWôoü—íµ‹3€â¾,ê÷‡{QR9Qaý`—¾|wÚôÄñ ÝRÅÙlXLiHQ @…´¿©yÏ õ¾x!©þY*¸»k@6Vâ—“TõãËÎA?×N€D±œ°‘À…âBP’eCW´³0­ßRÔCkø8jwÀ…èI Æê‰B Gµò÷æÜè<-uã) ¼¼3°C l¸äDŠdÄ:,äžÿaXD¼´H¿ð¶Ä7·Ü®´.«‘æ±favÇàÖT—Èž ä˜?§Û{v_€˜@‰ »؈stI#¸íó¥.Zûè˜:™böa ¸ùÞw.åÄ©AÈ’ÝB­8€˜p¹BÕV@9k J ‘5ú+B˜˜æ"ŸmK†BBàWCO‚¬ š¹©˜ç-Ë0ñýW®õfàl0tÔò@˜[H6„dL™ ë»w­©=gðGÒŒ˜$áªfnè%•v#ô ƒ6%p…ëÐÙ¯Û!Hr7Lçº(˜:ÝDë麮£„]}§¦ÍÎ[`(Ý…$…ÂŽÙ_‘^¥E°K©¸'} n>•…¿³žâ×y ²ÅÓ=°mÓ‹, ——¡¬‚¶`Ç惒İ‹Tºd@…¥SVkŸ“7Öçä ¤P½ÑÀ…ôDÞwoÓ Ç¼|³ÀLN^XPÀþ…Úr€6oد1Ý•9£ÉOQÞËš›@¼Iãí{% [GJÂhe…¢„ŸÓ ˜ëŠd* ¼ ¤ß±$§6ætõú6”ƒù~×jNþ‡8hØÿn6Û€¼KùéðÿW1(ÔŽ÷£f£ñ—T‚º‰$€¼NTÿàŸ.Mc“‘ª9|¾FÛ³8~?—¸P"â—´!Äb ¬Â‚T oÓf^f :®p¼uT‚‡hß¹¯è½J{jØ0ëÛ>ïJup#ïø¼vóˇ3çv€möóÈIPo%o±TêeŽ€¿î˜#+P6ç÷·˳›¹^%Ämº§˜;¤žÎû¼uÕâÑ.Æ»ãíÖnC™È„Ή”)þê.¼lȽB&ð/éa‚Á7F‹±ÆPÒ6ÂË úÛ¼æûÀUï›ÚÏ V¨H?î’ueïLTÂ1WÂOggSt@Œ}YÍkÛ82!¼x]µjz]ìù.[SöÉ”ÕüèYp§¶Ä€¼wÞyk?(íò7ôC´áŸ\Uk:*yg¼u^¢ðRˆú=P lHß7ñö°ce+ÃÃùð¼~Ï5¦•Ö#¹õInn[§Ó¾KûÓ›sÆ®µs挼•>Ñ€½ƒ¬‡§wŸ§@ö2&¯¤N5¶¹Œý½Xxk™¢^YIèŸÇ]ÓKqcü®¤dìð½=T{ƒñKiߘSD{\ˆùÛTµ@ÙǼÈÙO…`¢å^äm+yy[…[8€¼¾,â‡}=IK~¾ÒúÔçÚ Åå¨%)ŒÀ¼…‘ OÝ­ïî‘È-;9ݶ%™;7™ˆÆ¼ ®ípô`òäæÁlaÆbì@Á’\ó%íÂ`¼”ß*ðé÷õŠî –³ÃZÑž0ô],-ŽPÊÀ…ðkŠËˆ–œÙñâ%—!7Œd€…Û¹i踶cçÃÓ`ŽÛÄDò—ÁæU}xÝÃcp¢SÀ×ûg?@—™C³Gs4¥Ñë”áJéøRõk©p…²ÝñÊ(VfDä"„LË\Ä–¨…–Žyg‚@Íb›&¬ž-WyÛÉ1q€¼"•&¼`ùWTò—~<(‰î?(LÑ;ò¼R@…åÇôÎBj¯ã8µTÓpþU{„ôÈÄ…î\a‘»òúv¢/è¶,j²DˆÌ…é6€ß‰ª ˆÅd^Pè×-Ú¯¾ø…è¬ìÂrPO¥´FÔ¸W ©šýÙ —Çc¶üZßÏ%$ÙDYcÁõÝÝ7Ò:j…ÂOAŠÞìœZ½XiY”U›€<ã —{{@< Ï çLlM&x–®A^Å¿¬$…ù+<¾QÂ?‹•")póò/r¾R@˜lFÖ7é‚öˆ‘º“O=ï˜îé˜ Àä¹V¼è††£K8õ›Xøs(S{$˜E¨ƒf‰v§’/¤AUëþ.¶`˜zÄ;¨Ê²E„_´xÓpVÄÖÁ˜¡¥¬™-MÖ“Ô›ÓÏ|™ë 8²¦Ø˜#Ù¢?Òiââ}vº]ñ¼*Ï,³‰£z§b…äVÎûfÐ ©‡äþ'7µ¤ b …éC' ¯ –Œ,ä×;7/ª£¸@½’Y †·hÁ3õ)‰ÄÎÁX|³›Òÿâ`—ȨûUzî¤CŠû’irôL@ª«·©FX1dnÕ(—óO¹õuqµ0ç:/øu¢C"°OFqF½sN—¾{x]c§o$ O·vüz%6t¿"•——šô‰¿] qy^6ô;!_¬ÛÑ€…ê‡vèN2{÷â§=WJùŽÔÆÜ˜U©’ sÃ]Šg©F·â­8˜LF[ç…HRJ„³È’E¬÷þþùÑ€˜<ÃjΜïáB†6Þ¿¦¼ïhÝp…Û¤®Me[N;£c†&Áwúc$—┡2T;¡m.Yg Î×°¨Gõ€…¶J§ªß³¨^ß;44¿çõµUínû±"…óŽmb7M-?l¬¥2Ì6óÈp¢Ç7ò ˜#† ékwC$Ç¥ƒ%Qsc—ü[Q_½ŸÉñì7‘¤ !¾Ÿüïk¶žÇ›OggS€/AŒ}ZýÈY2!  ½Ì;:„Œä “ãîºl…<˜Ñnåõ?’=œð½nè.6Z®;Òqû¨ç~úÔs£þUãð ½ß —F®=´‡ªRUã¦TSân¸¼òGAÄÑ"ñZU‰´à¾HT)°µ³üa¬“Cƒ …ðk )âdSå’óÎzâ:,PÏñ½‘ö>P—éŒ2éiÂÙ(gªObK"”ë 2Œ&P…µ{‰¤Di€òŸÄÔO½Eäñ…­ã‡ ¼š;ŠªŽpñÛšHW•ŽÁ^Yë3}ÞeͲõ€¼q_˜¯LÃ&׺0>T^þ/ä®zhÊï5Ñ︼NOCˆ†?¨Ýùëo½€,É&Þ?]•‘.þ¼Zí‹‹œCwpàäß0•ÐgÖ<¯;‘å}&c #`¿í¹ Ó®n‰ãࡺ/Ù ªK9[µ.KÀ—>ÞìÈ6ç·2 “cv'nj̀ pý¿¤…”À(FÁKÜ;Zx^ºS·°P—:q.TçUϽå£U-Ù‚^ì´—TpnÃ3N˜X‰açš«*Î~©Ëi?²T—=õUìùªÙy"¦úÌ"ÜÒ&±0—DùÍʽ~üRÓm©ŠNoid|ó嶃…×%#Ãq\G8 PQÀ ½µ›…é6FŸvoYpû4Jaár—´,¨…èy²ÃíËw5B“ºyw:†zr° …)Áö&˜8A,]jÊÙ ¶AâL P”gÉòó°—øÊÃywëÙ&¹{h䇑"Ep€˜5•\z²³›¿dÔsqß$¡(ï¼…µÕšý mþÑvS蕇Ñu¥b°¥†äÙ)akp…ß—ùGøù±kV²UY¶çÇÓvÑ…Ý(Ï7gt2&‚ûÿè¿"ZLDÕÀ—È$S:DÑÄš\EÀyÓFú·kLƒ}4—¾ðt.AZöñH0µ¸:8…±(€›"_ßP„¬‹ïý£K†íÊâH²—qb¿ Wä¼¢É{à92Óp¹ÌÞ?r|fÚ@6GÀ¼ž<å’Ô£gÅý‡ày–¿£eûÏàêL–,µ í½GÂfÙ‘˜¾…vBoη ìÖ.¸ûd¼÷Ýž“2~'ÉÂîSŒÓ0 ÿ \´\¹a?ÖÀ½!‰LK“>ͬ–trG$Y C„ pÖ¼š’`½9ŒzùŒœq8fyÈÁ-ÜP!Í”þê:Ùp½9ÐÂVŒ8<¸*ƒ`C òÙÒ0mðwÇ,öP¼ø¹¨Ú5.‚Ó—¿Ý5Ÿ“å'ɆîM) ¿û6)p÷Ò§=íÑÝ•èÒž²ÛêIŸî†¦ÊƒË¿øïwVÖÕÌHÑEd -Ù`èC-2пö˜Š¬îÖŒ9·(¹Y´nÊ.Èú"¿:EÑ " ¿õ¹Q?yϾ~ñä½å‹Sû´ô¦4¤0ÿZ­_Ì—Ç("G½N›âôÚƒ3CêÝ(È£à—îQ%¨Ä-ñ/# }­fÊh+¸p…ð‚—›­s3nõ{L¨‡ *oSR …Ûz±9ª®Á3®Ú«òµå¨5?ïû€—·c4¥_-î#o²Nd–ƒ÷(°VbíØ…§ÞE5}@^'Ñý¿¿ü^Æ'Xm`€OggSëAŒ}[Û 2 !   ¼GIFÒwc’ï¡N7ë ;•f»†–i€¼&‡‡mÓÛpÃ]RMk,‡C›w]”ð¼+²cT5ým—I6XˆPTÒB9]nT€½·(dh‰âm½){-m/ØœnßF®À‹KP®iÅØ…ÌåkËÞ/Ìwg| «’©ïHt²J0…¢@$ŸXš•‡_)õˆ›Úœ`ñå*\…kø;!"ôÙ njÄ ½?M)äÏ_^,¼"CÙX‘ŒmEà{f)y"# K2”aHð‹hÑÅw¼$©#‡M’ ”*KV¶ÿGdÿ!ާKdËW³@¼KÉ"Ú÷Ë(Ia}’;áØV ³pØåþŒÀ:™3²¿ïVPôÜ_+‡Ä J·ŒHÀEì_ÀR3Ú0¼Èmž`¶gaKMU£Á¤Û"{;0%²ˆ¼ œMH¼¡AKâäâͽF>–a'˰ιÂ\ÙOm£‘ûåŽæ¼žFja÷ƒ¤¤ú ;01¥3…Sƒ¯UÉÈ)à”k‚¼„ÏB¹Òê&ÆŸ}E(Ž 6þ©‚õmA”@˜ÿÀ¼Kÿ©×Ø/@o~ç¦"D+¿}ßEçxÂì4™@¼U®) ÿz>¶A/{ùº;µê55s `æ`6… ½0RÞC¼H0çÚ_(~Žá­Œá=f4 „¿à¼äËmuóA?WÌ=(BkÏ« 2CúìÑîŽï餼qZùz²àä’¼NØÄ<ëVoð‘¼qo³*FH­-!¾AG¢·y°H¢rÂ6Û€¼Jj^]H‡[æë»/–×XUêO}Ö½…‹›ØèT©މ¶Ë¢ýw…&¼'ÄæX÷Óœ.OÉ7mûtÈxãTŒ'ð½ ó'z}egýQÐ9!ô˜ ;ûÙ…†`½6o [| çÉìû“OÞ£‘õhÖ€O¼~>VF,ð'.Ý6ï%Ç8ˆÛX6<ôkL¶"¡À¼j$¶-y LH•¬O>žðåB¼+-â¼âÛ¸Òº4 ð]<ļé6èöSQvæ•€¼u;ÍÏõÒ©œè·5»ÏìH4D³¢è®à¼¥7'¾jËÜU­²-Ï>19ŒüÊ8Ñ[mk‹¢š¼Ü%#Ž8"0Q K$ŠÚ®ú%¿šóÖq£B¸€½6è|ï•B^#Ú«Sr°×¯VlL3F¸Blä<"¼¼¾•e”ì!°ú&Æi^4ùA&³2˪µäõ0¼™uòGlé¾ íÅ×Lodýx_sɪ) íTEàˆ¼Mp ú9n'úÔÜNwy²9±;W¦ ¼M¹]w{¨Ÿ¼™O¾vaA¯ çEŸ€—P+ÐGŒÎm«Ùlœ,~éô̰怅꣊8p™iCÌÿÍñfs’Cº#Ép˜8.ý‰-‚©3} ak`þ‚ü…ÒÞTDp€„1óQy©}ц§H`½ óè¤w†FH%XÌмe]Óª€½¼–žÁ;缃ã*;ÍË:)¨ ½Xl–ü—ÜÕ{epJÜ ê¶°ZØÒG¼ò/”©íTÉß}ÁÚë’Ó˜?ùNÝCˆõ`½açè}<³hžI!EßY]Hž½ÔâÔ–Lâ.ôP©´Ã¯ž©ÜÈòørH½7xú,´âËoÃga¹"Zø¨¼íÉU-˜Y=¥ÌÅ7iD–V]Žww÷hؼ¢\À%‘-é¹TS‹E"Ññ-+žfÕ¸§-HOggS€¦BŒ}\gíܸ2 !¼¡@È©˜þ &sÐÚªú^h€þf²ÅËK×Öö:€—È"’/íS—…ÒÐf3á„xJ&_õ—•¯Tˆ—È;÷¼Û6ÀG˜Wç»ÈnÄéS8—ãÕ’æA?óiD•ŒÇ£Å”8…æL[ø)H@"kßñô¢v³ ûΪœ¦E˜9-;¡5S€¿9­?Õ•0Ò8Ò:À˜ƒŽ“Ÿs{ÌIZAÉH5™1ò³Œà˜q™m¸?ætŒyý%^tÎ*'$YºÏ¦…à*ŽÀÿ^í™3äŠ{¾-jݯAà˜×¥šu„ëRM4gvÅ­ OggSbCŒ}]u÷¿/2 "#˜+Á)Å—ÑqUó>¾¶Ë:`g¦ï†È…éQ?"çîáÓ±te7ÄAFÅË ‚¸˜F3Œ+•ŽÂ=ØGzAW[òPžsÓ ¦ûL˜Hô ÙïLÏ£n__Y3’lÝ Ç ˜B×;H$%—±-º>Ê£y…ßlŒç€Š`è]ZW×þí@Aï2˜ú˜Bpva‰‚x€¢°Fû^ ÚЗÁ¥¦Tt‚ŠÖué,¬üú‹˜‘pÜ…»bÐÚ ³wUIΡ; é6EQaý Å€—êd½à9®åÔƒ‡Ä·&¢¸û|®P=h—‹ù¹R_ç¡õŠpyœÑûE„…˜Ø‡2ÞhÓÍR謞ß{ÂÆ—B8ù!0½0øt8'¹©CäçÛup…¦ÞÖº§8²µíá«ÊH>ǵʕ…›{SQÉ¥R7;CŸci$ͧÓ`…»CÞ·w ÿälu­¾ìRŒ H˜˜S:p…ëZ…­­Æ*$c\®ïƾšÝÓÅp˜‡®wA´ŽÄÙD¡?Æåå²ëÑR—ˆ½KíÌ9ƒ;Jj”–þg=µ<Îöð…Œ“¸ŒŸÀõVžtA_ÚZ Þ˜—œ8ìÜЖÈnôÎäd—ΚK€–ð‰ð˶䘜ö^~~:“K:d€…ž~ŸNJв,؉‰ÔUË!)ðD;oH…Ç»ÅÌdŠ5¨{…¦v©&òàÇÍ U}Ò¼y1òÕ°Ï“‹Xf2–¿ÎAY ú„¶¼j%”——˦[¨hQ‚ÁíýÜíï4âDI×^:¼>ÿ“cÜ>ÍÄú“Ç"g÷Ô»Y,ÆŽÝ–"ZÆï8´Ž‡Ž”Jå£ k|d»Xtl}×”@‘3 ÀÓ§ñ?,²ªŒ…­$KÏÇÞ;Ü;‰YŠçß}8µ)lô·)…ßh=à Z0Ö d× WÖëp£aP—ã>J‹ËÖCéesK?­*éuKå^È0ï_—˜q« cï¾=f¦ÙÐ×å¢=?ÎV—›la”ö"î›bï¨é‰hΓiœ|»n¦~…µp3(JÂ$+ÖQÄ7‚0ÐàÇæÊ´và—šC#o{¦fJeê认뤣ëÞ|…»6²ž?Á%dRì¥EOŠätZªÞMX…è$|gÆYšs0—Õ»ÖÖ>1góÙ0°…²Ü¡÷n_ùÉÄQ 2Ðë"‚Äl„sÅr瀗o“âgN ®•ï ©ÿÁˆu%Xä Œ…§[®q|ÅH¿¢ˆÊ»×ûwÖñÍ ¼uàWÕ¹}âáJÞâüþp;§WØ€”>tȼQÙ;f(Þ i ‡JÐaPëÓ‚jŠ€‡SE°¿ìXô_Rц›ÐÏU3¤ ýQ"¨«}iY3/ö³ò0@¼ÊôPÉ|€çƒ’¤ì`Ö#Èr½ /©…2_€—ÂCÈ¢•Ûª/²ƒ(Ynâÿ½|…´Òa"]Y)~ÿqŒRÒÃ=£¤X‚;^¼tW¢¥¦¦¶É–“C‚@× k䓱s1þý¶›N ¼OB/ñã=I;!wÔgð."]Ý´¶–È *œ,¼L<¿ëÕ»lû^RŠv†Qi%ÞY#Sƒg‘G?î¬-@OggS€DŒ}^7lR2  ¼auL,™9îôæÙ#ûY¦Õ–Pµ‡†ÔÞ¸•˜@^åßb+]ä"ku¦!åN*€—õn†,5ÙÏ”uíÛmFŒî²0ùÿâÅ*5o…èjœ\•†Gëè`øØØû/Î)D…én%N,X|þF‚£ñ?ݨšÑ€PÄ`ÛØ˜8ï*kËÊ((k»bœ¨ž· ˜^æ óŸ`nîQÚâ åQ¢\-;P—ê Ë‹ŽW~¶Ã\|nBç´>´ÞAmp¼uBy`Œ ð2)«£5K¾U‘50í+2 m„ƒí€—nŒÁO"m5Ú& ésñcD g§ã}êÿ*ó …­²åŠZNÚ™ábî¶”'b޲4€…Ýàå:YÑôô“½šªc£ßÀ—`iB„½‹}F­¬?­û–è?‡5€…–^³•£·ê»Ž~|"€„Ž%P—öUò—ý¬PvL}ˆg^. —H“xàIBn£zÈs$èäY±îy¾–÷ߟ¥€Oϼƃ”?°šfqlæ©ÉÆM…ï:ÀYI#ƒŽÇuPáy AŽØÇ ûÀ˜6tÔ—¨Ÿ¼~E‹|ÔÝDˆaÝ ¬…¿MB…?gœ[:w©S1‘J›a©nT€—¹.0¿ˆ¦³+¯SO¯æ¥³ ]yˆH—ÅÀ1f/j«G|©"0€X?âïŸ €—Ç_U“buè¶Û'¤°åÂÉÞþÝ€—ÇLñ<”ƒ±w]$€lƒîÒA…ÉY6Ó¹^ê¥Q—IãÑÏcš» ĵ@…è-\pÊBç·Þ±»OXÕ澀 éβ —éª8¬À¸jœú[M/aM)V–lÀ…´Äm³ÉÂ<¹½«ÆÖ1Ý{…$22ì²—‹s Í@À‡5ÆRylleuªm+”ŸžÚNîÞÕ°—Cy¾ÂSùây>ËGçØ2e_uÂNÀʼ é Ø6=¹•…~)é1ãw¯*Ãã-1_$ky¿é˜¾Xš©—Ó„¾›;&úõSšï–&¶¼q¥!± ŽftI‘h(¡hñ±4(šßpœÌƒÀ¿ê÷G"&‘WýIï?‚¹•JÄQçeÞ\Hh„¿ë“¼+ß¶W7Pw,RÜD ¾ÄŒDQûh#Õ@¿î(¹yî±qp96l] ¿*v¦{³wµj+VІ(¼x Mx‰”©?Ýÿáñç‹‘Ž•ìß •f=˜`ü—ŒØ/8Š=~S_fû‡L…¶lC^c$"2Ôf ÆöAè˜0ÚU`…µÎ8fælþ.`ÕÃUá›|3ë¯ —~Òîä}éx)ùiß#C“wY)yu4Š`OggSÙDŒ}_ž î€2    #˜8cÖ4<ÿÇŸèbæH“}·Dΰ¼Äo€ñ;*u­ï¢bFû¯*ÕçiË3·Ø¼t£Á“dº ‘¡ký´x†ùǶ…ü~ wÛÅmļ\ALÊ<°…«—ŽE,3áG ”Ñ‹ãê4‹H¼qÚrªp«Gô­û†5rŠŽ2_#€øÔb¤¿ëZ\@™Fmyu‡km­]À+Ng±±S6Ö8¼`xVЦFìc¸™ wKY-X/é^Ѥövt‰¸…à½?¯µ–ñôQ­×—AМ‡çíUJ¥M¼Å|mÊu)šþ6î´4¥ß6†À$”¿AÕGÏ€¼ÈË5ªU€µ‰pSÚMÌÁó±ð¼òü:ë‘&9Që{i*‘„2€éòÿ×:£!4~kšÛ?ÉI—:߬·¨ÑûÿµÒË®¦!ë|d%©—ê³›üÌ,Öü’ Îß%´Ôê00¼Jôæâ`cѧ:½‚ûÑó ý$:´K‚*…dÀ¼5AxÓ·éq¯YWÔ%uSC3L†U©"¿™@½?ª‹× È[‹t{ k.>UµÁqg-lÑ(¼GD«j[-”x ¬±XòÈŒÕȪÇ% „g$™†|ª»ëZN:Ö»/E~˜gÁÿ¶jûÛªî‚ ºqXM u#3?Jøhl14 A®–^úAà¬Øºqg$™pàÔ˽[N5øáóî±9ó…s”rÀ»øÁÙ-'§4ø´™Ð¦;J¶ñ5+)”>ü²p¼5;1TSCÙOm=œŒ’Íå¿zJÙ{ç´½íG™(½[ñÐ?{;Åî9ª†I)Þ¦ªÛeýp¼¾P(~ˆ‰DøMþ1°›¤¶çïÍã{W]¨¼”«=ä🥷z&¤B»âüj_î8XŠ@¼pànø hlŒºQûìy«©´Ó¨øÄ ¼LM€áF áJ‰ùàŸ¶]ßû§AÙCÆû¾€¼uh×ý=N#äöò|3£ìmƒÚfeÙâ·<¿ïS˜iéað$ÀV4eØaá€Y|*Ž"ɮݽ?{®Aï„ëš.K|„ÈZT¯ß0€ZQ ÝŠ¼GF†L–µ˜ÏíJá*.kûJ+'ñVa€¼0âDèÿë3¾4ææI†üî¤FÁZAýgBM»ð"v €¿èþ8èÖÞj-¾†CZ;—¢Ävîé0”“€ Gbå6¼wéJk8ãc`Š.âS»§´škdŒOgšX ¼k!¢g]Ù'Xlbê_اœå‰c'1§O8†À¿ï,T,ñ»q‰­@ÉpÙþ^VÍE†Ï†1¨½R*U?NÆ=²MP´ñûáSdÙ´•¥A`OggS€”EŒ}`~Ÿì2  !¼½ø¸Ñ…•hÞÛšý~¦ÑŠkFvÑýrx¹¡ D¼q4H¨3â{aõ„ˆ~CÔaÄ1BÞ…º¤™¬¼"E.¡6íiz]Ý’ñÔQtJ³ga¡„µõ~¼(hH‡W»µRRw»’ØÈäˆ]Ʊ€¼QOÕ“¸ž'#¬Šˆ¤©©ˆ¥«Ê®¸7êä Ü¿î¿Ý"¬éÓÊ I}«\ÓnìõsÊ‘ÇWQp½kkg8–Ó6ò‚˜K—a:&'Q¼¿ =‚§BåQª5òR/D¦÷ð1‚OïL¨¼¢–v¸óÿæ/nuÛ?_ár1v@²qÍÿ€¼¤r´Ûb¦6V>ÔËÒñz8’ †bä>¤YÎV¼žüÁ¥?öµé?‡ÑDz\‰¨JöËÕp¿ò½yeh1^¹¦ B»A².oìXпò#ÈØŠMp™º¥¤Íuø ºÝëe˜.O×}\âX½[ˆwØCæ4 &/ÅÁÁe'ùKµï‘œé2zà½W¹û2ý.¾Rùäõ%.î½u[=ÎÙ§!t »öî¾Ü‹à½WP¢E5"ôæ¨t'KUT¼ð½7H¹…v xì{åÜ*ñ/_–HòQ~½»Mƾž!•þ{(+‘çÏƒÉ ¾Zè¿ûÒ‹‡Ðaïn¾6@a-k‰ªn‘à½Bõg ªš¿û—º7 Qj5e#7ÉÂ’^ÃdÙ-êпó¾Hœ#gKØÐBµC0w—©öÃVû¶Ê);¨N¿õ¹siÓ+b 5iRüÿéfîlèv<Ì¿óYP}ÌOÿ¿Õ«¤I·± ñÕBÝ“»˜ç¼°}ë©n]•´©pÝÙ˜)µ ?·NÃuê!;½9‹NUÆ&†A{›_˜ FL^(½«Êê ƒä…ùP^ô¢ *‡ÆdçÆØû±Nw¼t• ?–¯ázKÅ5ß»Úä­–ç¤.w2º¼NÈyñ{ŽÍY·j+Ì̼Lsƒ ¹¨fô<ºÏbþÆø¬ˆN°¼Q9¦„yñ]H'Ãó€E¶È>óÒV¤W༈†ÒŸ R¦y̼p+*…ž>mgE<Š•_´D½I ðK¦Îƒ€ùšé;‘=Ç_>ÊÖ½7WrN޲ê“=wwnøÌ–°‡«n™Â(p½×™N¬'<ï×;]¯—ñ~ÌwË0ÿÃÛvü½!‡íVbžV0&Ij¬Vïy©9axAÖ€½7&§(æíd@¢ŒÁnÏÞðÔB½V9¬kuîÑ$®R'¬Â£käÒè*… ˜=P~¿V\N 3ôvý™JÊBUfOöÛ‰€…ô"&‚¨VDeZXøË°·ÙV·¬Ö!½»UüÔw;l’‘ÞŸXQÁÓú쎴? ½ºqÕ/Žk£°b!*ÞaÔ S~³]0¦Å"¼ÄÂî)YÙ—Š¶¨cZYc•1˜vêÀͼŸÉ¥ù¤ÝüлéHTeGþ§ò•wV¬·À¿ðòu®%`“ND÷Ú´I“üˆ¿îg½ /jéiME«¬.ÁYÁ.šRÙãˆJPòäJ0¼Í”mžÞ˺8Æ’T’X‡Vq¯üÔÌ ‡V€¼£ÙåMÊ“ÏÎm*­¤ßgÀyò\ OggSPFŒ}a¤Á€V2¼ *1¦ÙY80[ÈÈ’z¸äƒmÜÌ^‰8ß¼¼ ±á+ç“w?éÆ¿èW"Žó¡— =ªsúMB(¼Ä<<Îl|ylØÌù.ò`˜ú² {24²¼ Wóè,‡ÒX†Y ‹ÄopD]·8äz”¿ñúëÚq´¯mx*Í<|3Â?É’8¦×®‰à½JÚ¦˜ÕÜ_Ä6&³´u?*d;Ͳ)ôU‚½~ñ ï\–ûRsÉ(­£;[T‡‰8½aåJTæiæMÍn£l¼mC¤å¯Àn½ËÍˆæ ŒöÑ‹ô>Å?ÆixW~€¿ó‡R(ü“ø’°àd±ùñ~¤+ÿ`e@—’6«¤Q_~"žD6TJÖ5×É@«Lèè…©ýð@<^fêƒÎ1l\ÕbyöÝ ½²2ÒcÌê–AoB79ê>ÿ10¼í臢®±Œ–'Å3êѪjV>Åáe» ¿òÚ°ë™*w Ø/[{L$«¨÷аKv¿îš±Ô„)¼ÈñŽw~wá⛽šh®µ~€¼”±¯°ß¡m*ü‡ßÜW_͹P&ã$Ê´î1 ¿î[Ñ3±ÕS:j¸ñ¹[Q²þ¹50ä¶¿ï,ÞÞ"±ä‹3xPœRÊ׳¨Jz6°½U˜R _oMŽ…«F½ìÿz\€½@c‘8­š)§6ÒÆ“tá‡$¼ó¤jÕ¬§X°~Ñ8,cq„N8˜¼öãaUŠBóÂH›šy²]¥™þ"ÒÂd¼öI…¦µi °Z’kdÜ4<‘îÉ5wÿ×DÀ¼ö‚'éÈ<ºÙÒãdÏ£—Ï`|÷G•£š˜4n ¢} K6x>ljWœzØé‚…íCŸ4jŒm” 6ËÛâ]Î…îNú‡°‘JL— ©;¯IȘ:Dd@\¿°©¾A†p!öFÞ§¼Ü`˜:vŒ;t@à¨Ípoo{"ñÙ0¥8˜7©Ö…ö@âUP í–voäŒÈÜI€…èÑ;;’T úŠ~E(õ1–¥…éñ¤=Ì ¶h?á¼7 ßsª½W°…ëÊ%lÓôŽ›b²CV¹¢Ðù6mxIјµÞàû«à¦…5÷¥{—ïr%æôÐÓâÉ9üü³Ã…üX–›hþ€—ì¹ùç­ž(mHïnæíi´˜ÐÏh€——’$Ö{nþng2ŒpCkRŒŸ——’$­hù^îz~Ôf»é ©ð]kÚ’¢@#˜¨Se¡²>À…ëJ’VªTÚDyixpùùò“Y€…°Øãù&V˜4&~ßtôkgÀ—kÈùÑb:_ϱ¦_‘]2€—pÀ—JF›6vM:3óZÁ{ ÿ¥&:fÑö…ÚÀ97”Ó{"ìoW®€·£žß¦0‘vÞ…¹mtPΰió–PuYD&¾Á'bãá4N+p…©îȾO”Ämhüm’ï?ÛÎ>î,5æ…ÒK(ëÌ—‹§o#x¨Qw¥`~£×C8…Ï ÇáRA‚·æBÏU,N)~…kjÛA€¼ÄÇ e%VRAÏûÐâoQZ“ù‡+¯ù1OggS€ GŒ}b´¹2  ¼Ú®´ô™³r)Yà?ÿ² ú¦4!îöˆvÁ/ËXÀ…ÑÈpäËbLÞÑ&ŒZ )¯ÁíF¹Û€…Á÷B`ìG÷v ÌuÙß¿,žö[CÐÀ…ª4‡üì\¢DPqî’jŠf«ÍÌ_®¸§·“€…ëK‘ìésØ3ßW6µÃÍIDæÿQ€…Ì’ŠGvHÿ“a¦q €|4)ž—O³1_ýîĽٚcŸ\íÖ³ý]/ —¾hé­(ìÐ9¶¡¥Ü H“²E …±B_=¸³~ÔJ" <;Öù_x—m˜Hšïá=ñcŠ)々›Ç“r’+U"ýª´ L¤ÓÅ%&½Ç,ð…ë$”E˜M“X‚'Ôã$Ñúº—ÃvPFçŽ-Õš{' t0,Õä…åBtxyÈ^†¤/î/>áþþ¹jmK$…è/ÂIÃH[Š€D˦bw­Ü–Þ °ç…Ö9 <¯Âiò©oÕba5&¼óóà—ñZ“÷¿ØQé¿>¶²rÙ —F”¥+¿€—Í7kɓջh‘Õ‡™FÎÑõÏâì …ï8nvÕ >J\“WBârÚG¥X÷³ …îf lg¼IÛ]`@;“ÝÓ±„†½˜:eò‚~ìT‰4WV<¡¶zîÓbÊpИ9Y •1ÇáÔ@nÉcª«ß‘Œ²ØÝ@˜óDѹKXíÌæ¹Äu²b.Ç7ô#à˜8U4­µ ¸çJúˆÊZDTÔ;õ0…ÖÊi÷€G`´ˆëþ‚OÌòìg–ß—õñ¹š2ŽÀ…ô÷ ÌXȲîPXÛÞ¨¼4ŽöLx…ék}“ÒÉŠƒzŽ†ÛØ8ÌÈmçö‰-d>˜:½šñêü¦=ÕÊœFžÐe¬zåŽÞ½9‰«3§w‚9+š ~‚±?±(ô`½,ó`QR…ªwÄêµÄî¹4žt¼îMEã(t‹öè½-ªùn¯BcplvJ¿Rçxmøßùl¿ûý™ –#HCûôÓŽú¯Î*ä‘g.´l%¯~À…êrnxûç…¡8oHÓ\lGÃ뤤˜IŽÕH?FžÍ¤›¬_‹X˜) ^=ë{<”‘ KÜ‘g˜+m˜kÇ´!^©bUÑauÚ롎{Ñôˆ˜áIÔÍÞ§õõØ.®ÎÁî‚Vúà·—ø(//’1„s!ŒÆz†àc¨6˜§˜!¬HèP}ÑÒ²7'ÂpE T/ùšð˜Rù5ï[d½µræ ÖVõËrhÔBï“r|˜I»:&×°âÒ¡é5kYúøË„F@˜;{3±§Ø`¡ _*XËSÍ4’|~A„ð…ëZ<4”5OðˆÔ> ©\eí^@˜Ô0?È öòÚÈ/ãÇiƒ»„¸˜™´ÛåWöCµ“G:Tù5p…âÏÂ0ÔÒàS±.˜ CÝíòæ|oD…ñ#ƒ= ÇÜ)¥OoQÓ†÷Å]YP…é4 á.åÙ"l/Ìì!èÆ× ®X¬€…é1–¯€rÑ!3/ƒlœPØ£æ oyœÂ˜˜<÷Ï‘ !ýß*_ùž9ucU`ÀOggSÇGŒ}c6̯;2!  …í; $jBÿiÙp–Krá…–÷Šè½BìòªûxH» ŒUYß|]Z‚°”ay§V˜D6¿ ñŒ3ù^öOû’ÄéX`Ox‘eì˜R2-H)¶kîù9ƒ¦HUË€Z‹FÔ˜: ,ÃµË ?ÁÇ ˜&Å~~iL˜9ш þÀX­Þ õ9ý~ ü´žªuû|˜:¢Ù…‘YnÿÆ.ñ¾ÅŽb©Œ…Rv¸…éæOŽûöovtœ¸è{ðc‰‡Ãº˜9Òs6-90ÀÑZG©ñ¼Ÿ\öØ»@˜8§l×AŒ˜?x­2*;¼;ê‘òÑoW€˜+q£Û-'yß9ÖÕ Yp·$àPË€˜<ú¿îFƒ¤r~:®i»0ûêU½8½…ém–§AÍÖ›¤V‘¶Ìù¸5w0˜+mœ¦›%úM¢µák4È{SÓֆހ˜ ĨZWâɼf?| f¨q¾n¶¤ç¢{¼ØY2Mb›ÚñV„ËR÷A³nƒ˜,y9vÈ{¨ãÆ¿öáøt:kØ=»`‡¢²l¿F1Å· Ün‡1ŒÐ¿ûʰ# |iÅ’Üjd^rÔÍ›ƒp"ݤ‚æqÎZü½7%'•]`]µ”´n‡Þ’^‚ìÿ“e7¿öÛ©ã:„¤µ‡<8Í6ôÉt§…þW¥Êrn5¿ùšn÷ó£g\"ªg1r\AáTjaa¶ä½ÚÐN ¼« 2âß:٫ͼ\_j¼÷¹ô#Ì-W 3¿¥¯è£¦5¾¶–b?÷¤¿÷ršQÁùÈRŠªÒ.Ù´œŸ ôv¤R¦cêÆ€¿úGr„‘ÆcÊ·¤¡öáu5%R5†xm˜á:Éû'umMv+èΑ„NÚœS´˜Pí;¨âIÓ"`2ˆ)½RÍQp˜7:É[±ù¬?á"gp„•¥Õ;HJ}·€˜k }f'~Ä¢þá¼ë? ¹(ˆ—ôª ̃뫿l-®[ÓOíØGâÑ…ÔɆ-N`É!o¨x’þͱxÁm…÷å8ûg‹‡Á‰W4­Åó®NìÄ œ…Á„“]µ¹¾×a¾k¿Z™†Fļf=ŸÔ—Åy»~6Hk»#ülÂuUþðëÛsSÏŽ/(—ÌáÆƒE^÷êÙ™XIZ_´6%À¼É]d×CÞóÎuÂ>êo¸°½s ²hK[ï´¼É ko׼ݴ]‰Tfͼ_KMù‰`ÇpÀ¿ó£_R7E$³!ñ†\ª}\I…Eºèì‚zÀ˜;|bmÎqUUQA*,nœ}ß]‡p˜@\ÁÌ­™Í€Î”µ‚»a+½…Òû½€…ÝÀ:¼é_†´Râä=t(* ¯è…Åÿ鯡Òý\l%sÖ!ÆÍk ß"¬`½cnÂÁY%€Í¸’h¡Æ,u#hÛ‡¸¼ðÆ*9ðÍ|8ãK<{séR®®P?cuÿ‹ëåâÖ …ÆO®öŽ1m”R±X2Ð_ùf«~Y9V„…ôÃ.ÐBD7~H8„ ¡ÐW,§VŠ÷—¼‹ÖV.ǽüQ·k!q±Ð] 0Õ耗k¹ã1¥¼Ï}­`;OÛv»^Ðì`Ý÷ðƒ€—•O¢gÿh`ï\,ì¦Èl•”oUƒdžTó€—o:D:aŒ¶‘*­¶Ì»‡Ì­önÏ OggS€‚HŒ}dä(x 2!"  …¨3Êy>©b$8{ŒIŸ‰ÙBÌõó¢ôUð…ÖŽLJríf;™]ÚtLì¦Ë9óÎÓ0½IXÿWÃñ¾›†&êSùÄŸZÃàpÉ)^Œþx5€¼æÉ±ÇXÍsÊ­øÞ_M ·Þ@÷¶‚|V³ å`¼[½:=|Å÷ö9!ÊQæÚ¬3_nÑãi :ƒp![Ð…¨-i(©ê½¬#dýÓ–âݪPMæ\ƒ„‡» —§Pãu‰qk}ÄC1±â,´_ÖÍXò£…Ÿn——›‡8°´¥Jæ †2BœÙþz›CR“–Â…ºº?‹Â¤$5☡N”úv`nãÍbøZÞ!¼óðG°&Ê4?LÇ.XȇŸ }w-†ü¼èšÓ2>Ò…,ϺÅdÞho1FïVúL¼ä¥ó@¼ÍвööMÛ¢Ñ4¢ ¤Ç¢]=Ÿ— ïÀôDР¼ËS¨´Êzï\HŽO•{(L˜£}÷@h¼Ë1yÒ‹ú®¿”žÒm]Ý(üç»Ì¸ºl¾€¼¿™jz*…€(wÌdžljF•‡êï>ë ¿ôId;fI1(ž{›¸ï˜LžÎ1C4$øçËÝ”€½[­!ìÜ\òà7a öVÿ¢{zÁ„&]¡€½]šÑu ?0Ä6κ?+/_XQ¡í¿«Wn༮s" —Äv,² (GYÏ^¨<¿~ˆ×ó†¿ñ,g»ˆ=ï\¶È¡ò©;ÔMÆä #X€À¿óS7™ÞâU3;w€9å0ÿƬÛ~ w¹²¿ïäqžl=”Ëë;ƒµÒ½Kv-ïÒhð¿ðC*¢FÕ3§£R/uü—>w/ì@Û%t²t½dªO»±ŒÊ€¼½Â.‹JV¬/æÓ9õ­0Ú€½‹­:Cº;¼=Py»×O@PÒñ¯Ñð[:À¼ñR¤*[ÀLÄf2¹%|€1ÓÊ›9Gž)¿ó~a ñbX"¼8ù¿W—Y8ñuçM0ö¿ðÒ’Ë6WçûLH©÷ëb4Ç~ùÑú6¿ðÊR‡¡×|³OÏÁ¨‚qþ¯Gø‡Ý^*¿ñꑎ(Q”Å¥ýzÆÆ¡´s½ÌùYÏ X8ýp½½dÕoÁK‰zÎâ«rJ|N«&"=g@çœàܽiàúÔ£“¿À}oøÞ?üL¦”v¡R5’à¿õ³à|¶B¯F\¨Ûó¸ûæ£QVUò–‘Éö`¿ñ%VÚ/_-º¥Fou|Š¡­¦ÐÖmAÞÕO¼¾a‰Ÿº"ÛªðízßîáQÿÞ°x³Þñ@¼®›çÆûga¼ææ0„Y²ÎÑJXæ)ØÐ¿ôLfçßBRнî9Õ„®h+•4† !½m†‰Š²™0Ó±†Í ˜ú|¾«æ¼žÀ»¥½7&€ƒ“ÜK’²£™ô“lú‰ý‘Ð(¼½êÚmó¾$s ÕxLØËÿ­dIŒ}e×Rp]2½7‚ŒX»V ÊRàLK€Éƒ›yš…#Éë ½Jñݤ™>"ÖŸ‰s€:§½5ª…å¤ÚP½@U€H/èN´Ž=r)îÕ;;ÑTæº~¼é@2FKùírC¨p£kv+0r± °A¼íà ˆÈ€Ù¯¢¶_ª7THfˆI]ùȼÍs^Ú µœ6C§µf6ào,¬ú©óެ•¼û÷•¦Çâü™"B;˜ýÚë„îé™ïÿ.ùì¼êUH((ä ¨÷8BYHvÐÕ<šn @½vù“+Û;5 W$pmBx‡ÐX\™­"»½9mÓsx ççµD}×5°$`£+ÆN8AÑ€½;våŒið~eï¤yÒۉǤp¬½A¹\ù›‚„Â~óIëîVÙÉ·;U<â½9ŒŠO! Ò|\vh‰NFL¥Ø½9‚ò¹“,:-ýÉs¹ñOÕø¿Û#¡à<«Õ·ò6€½:®*JÄ®|Á ¼}@}€4–‘¸ˆ‡/— ½]#¹ bpÔô^—oXÇ[ª1¿HqŠ‘†só`½?Åá²G„¼ÅOɂҊóÝEkŽ˜·¹¼D5$À½|Á}3­¦êœ¹ ×`̾R°Ó7Âw‚.½ ì7‹AUÿ >¸ y¡ds[¢SW ¶¼¾¶+ÿäØÛ¬’Ö)äÖ?2>gÕìiª>¼®À0_Ù8E¬øÑ`òÙ®ÿå‹K/xÑ®¼È…é`±ÝyìT[‘@]|gCÞã› ¥ø%à¼ÑÏ”Šµ:8È™Cq¡êVw¢Þ7«*ÜýBBªîx¼ôIîJε‰AD+@®sÁJ7†ŸþÀ¼Ë,lLuD÷!yÉIÒèbl“ñiö]ðIœ¼È®—¸ù3èÒ Ô¿z«¼¼®ªsy1rã€q5í±DÿùOðˆVh…›É'@¼Ì*—üéPJú¶ø4#΢Î-æ›sÑ€¼© !ÆbÞwѲfˆ¼Í(Mv­Ëœ•“úR(è½KßKºŽŒFOzp;Ÿvµé-³×Ñ­j#½@ÄKTT‰N«¾C…çèm°Ž½¨âMp€/8ƒ~tkd»m!4!L_‡ˆ¼Å=uœÕ>ÁÆÅñœ“‡'€¼£̼hšÝþ?“pL¯êò^ӢЗ‰¿¦X¼£u½l⇽0‹`”`¹mæpöÅV²¼¥xA8ãéfô盈wkôl.Õ…˜&QÑ_½%§† ÒÃöO~›Ó±¶¿Ä0¼$NY[7¿½6”"–ÅŽÑX»V×Dºý„™† *T„ôÀ¼òÅú‰÷Ð¥¨ v\ÖX„OJŠ R]ÚL#t¼íÅ…^ÎþÓ˜ÜÈxÉÌ*¤EŠÿUÑÓ¼ÀÚ¦Óé…fÓA´nH€Ú‘w‰5Æ)Ô¥Ýê¼Äd°‰/Q¨lògr)µEõlc€¼ÏÔ|7Åà¥{˜ ýäÚ^OíÌ“…ý“'í"#ˆÀžqÓ~ÚzêeS:WON!°˜êA‘†:åq¾lÄañ¼3¥Ô½K³ß˜ñâý% Š2â~zˆDr\½iÿ `Ø -,c/8è9véLP½$÷TÕ*³Aec]öhÐ겓|oè›X½^Ǽ醿%Q>Ø3¼]Ôü“' Å#½ü"ñlž‰¥åÛ_o}¬¶/¼ÐÀÔ`OggS€ùIŒ}f‘m®^2!½:·,—«—P¨4ª×XÕøûž%l:üX½8}äëoB^f{ŽÒ‰Å[Dè`¼òÄ**»Á7g,†Ìcfh{,¯qð¼çÈüû™¤\Ã’¹Yý‡R•ÏKQŠJW)¼£=3çñ'Ì<~‹9ÙÛË3–r¢/+Zм£JZïÌ\e›ÒÛ-ü>$žP¤jºTIæn༥þýc–Žô”Bc"ZámúêvwÒ"vôð…÷ò¸aÈhÝ%Þ¦œRï–^ј6ëÍ-‰¬õ§5hÑá슸Ùß°¼ž{=^ÜP›1Ÿ NÌ3/ß­Ìh$`r)€¼T¾ÃßpÝØÿÓÏž—Ѱ¾ `ñ¡>@¼† 70Òè—Tƒ¥@¾ä˜`O`é!¨¼Ù1ayÒ­D³u]ûÛÖŒÚyç4Aî#Ï€˜ mT|ר^-‘½«ën1݃ÂÐù"à…ô«ìÊ£êêÉÜšØh0Øûǘ7a2—¡¾ü~Ö÷¯RuΡÑå¼òøv?šã=Àå*Ž6õ1Q]+°ô'„¼Èè8¦"ÊÑ .hPoÅü¶ñ‡.êXÀ¼Î÷Ó|¤·Ùþ&.év¢x¿¼žÙ.,vÀ¼Ì(§8ò4È‘êD‚‹I½r7@Ÿ»>g@Ø¿ôSÐ/ðÅ'†šÉèË‹¹D0âаî䀽:±«Æu¥ñLO&…–Êg žÄM<…pÀ†GÉÀ½B¨'ü•(áÏ—>¦P|klD€| ¡ð½î0£êFÒ±²Ü­zù–>óßíÇ{ B`½!yŒ=rÎl&µaÈëùÿu·nÉ`½—×CøË«PÐÇ#Ø%/À×¾V¦ŸP¼çò@,G'IßÚà.Ké+Üþ¼ø³+gqdJB©Å„›?óík…¢}Ÿ"P½eç5!hRš°yj&ßSúCž»"äÔ•€½8+‡Ï ný[§N¦ÔÒª2†}3?Á˜¼èïx_د­Áot‘ìnN¦ëÑL?À¼…è9ݯd䟥7Ä͵ ¸ûå%lèà¼yZàÃÉb l…Ÿ˜ègÔý/R©]þ5ýÀ¿îA¨Àñ÷­½(œˆ÷_Ô­û“P’0ï†,¿îgèÁcrÐÒ†ãˆÕÜ·±úŸ}…Ö+M‰°½R˜÷õ“;¥2ÞîñŒ/_«u-g‚ïXý½& ½Ñ2—Uá[Œ‘H*Y·Ì6^ UÕ9É ¼è—ò#QU,òoé¡,Ç÷å†Ô6¸k³î¼ò%® õÐz_æÌOé”9ï÷ÑK2Ïà¼ö퀸3«ME]ãD*Ïuâ’3W^쨼éKÒ Ð4‡IÂÕE `qHàk 4ºÛx`½ìØÚçüz9Ö9%Oó‹«|¡µÎB˜®ð°½ÆáeO²Û6 Wþ÷Èuó8\<1Cf83C½ˆ—ÎèÈzW¼7¤JhмÝ'=FJ¨Ø½¯Ücò>ÃÛ踸ÙÛ0«ññ¾*˜ªj¼¾Uãa™j•ýƒ%¶ˆçé•A’»7!D]ÒÉ‚¼Šþeð>àÔI ­Ž 6O`ù—õ¼†ƒá’FëFÒb‡Ó††pLwJ…`¿"è™°½u% U!ÿ¾Ø}K;´X®- O0¢½›²²Œ½w&$Y2ìÒÕú'AîÏ/ã,v+ó'ÒXùDOggSµJŒ}g>ˆ«2"! ½8rÒyt)U#6’ ð–¼”âÑypSh ~¼žgœ½B^Ã-@u.zÅE´ÈŒÄéÍ~ú•¸½`H#‹Ù°öçcÜ´þ¶žy¼×2Û¤@½ ²ìü¤Å®> µnsÕgêãË”½ 4Y³¤jÕuø—mפÀ7Ô€3ƒ €½IØH– ⃭K‹^Ò—ìHÍ~ ¼ÏMÿ™¸eÇ2´©d¶­a06·~=8̽A·£+ž§ùÑWÉƒÖ ®´Q‰]MÛ@‘À½:—ùI0$61Ax= ª!À‚}QäVDTZaÙ¹V½7 Æ$]iNºPžüéy•صÞ¼È ›eÌ®[à2¤ðCes~”ƒ~?MsdH\¼®«˜AÕzÅR#й… =ú6êå!c}àEi$锼ØNG¿ó~žöCÅ5³’¿¹‚\)”ªRçL­ÊFµ†CŠp¿ù¥·¬+PÔ( ¡é’%Ú2Þ£/óÿP‚Û$…ú¨®Ñrç»ìrœTìè0“>Œ(@Æ…ësIGGTYfv¼Ãÿ.åí½¤˜ß²újV°Ù[„"SÆþ?|½+Ýk¢L8’Ž 2J“<²Š.ØñÛÐù|€½ϬPùRž:+ÛšžÈ/ñîøòÉLå½QŠQGµ¾¬j¬î0–pº a›•§´”°¿ù…x¶¦ã9Áy; m'y;•*f-^®˜[éH2ìê0>4 »îd&™>˜@6!«ª*:Žàsá§cò %Žc1…ß킚p/ ¤à¢`¿©r ¤Û€¼Äôihro«p¼7ämerI˜JD ‘¯§*À¼¨v*q†}øet‹ [;¿õʳ<0P/¨é5üx¼Ë4VàÈ2nÑ~>ÃŒçÔf@ÍÜ 䚀¼Ç;—O©‘õï=PÎôÌ>"!=c˜ö’dõ@¼žïÿ“¼Œ¦ìšo:ùYx^í&ß¾•nò~ 0¼Ÿ61ÙÇÇÈL‘T=mÜí©Ìz©Ê¦Óؼžý{ CϨ¤B¥JÂzǹï§úý:\À¬Pà¿ò HËÜå^ÚÝ'â9˜Âb¥»b™˜VQÅ"¡ÑÒ¿ñÛ?wœÆ~¯nô/ ÔêlÈ:õ%^¢döâeðA@¿ó™âyƦ„vvP>¥5dïÞ`€Ð;­ð† D …Ñ?f%!õ—äÜK<êÇžôCq …îkúÙ‹ö¶®u ‚SÇ.cNsû½7'ÍÝ<ÝÕ¨ˆnòN*‘<Ü‘M˜eཆ5“ ”dP[–dµ5}Û‚¸¿£å›P¿øî¡zà¶üÆ[ƒT@ÑÅ©W¾XÉù¼ñú0Âû”b 0›•üúÃÔAI/ÛèÌ9yļË4”êBào¨Ó{ B"sÈJŠ›ì3 fæÛ¿óšcD˜dUÚ‹Ê·P©” ²ÞDÔ‚ax#Z‡Ð¿û66—++Õ¯?qËzjÀ7E=gн}Hr–°,,œGÎ9¾Ë|¬ÞÊ€OggS€pKŒ}h‚©½2 ¼¿äù_ÑXÿéh¤ 9#Úåt£ ¶ÆuD€r¼ƒ¡& Y¤·?ä@;¹C —{C!J¦‡”“ëâ.”;Tü¸?¬§Üe ᙹ7“Å_Uƒ÷:Ï—œ¸ €§DËIYøÁÿ\#›g…úŸû7«= d¿-”B]5oÚr°€…ÛxËÔÔ!ÀÚ‰¹ ´. H—Ì›âåS3)¸7öj”k"æßT»ô…Ñé²Rç•PtCV”\˜]-„[äöl—ò^Dª{Åa¶§gµITîª*º#hw`…Ò^ùw¶ã=ïj¾‘;\]õ=;&—íÜŒbwÆâ¾’ €…ªGwUû×H—×+ž…—"5aôèɺúPÑ€Ê~Å…êG_1¹ÇE¿‹çc¼ŸÙ—6ùÏèÁy`˜CPaC¦ Ï \î©*ÖmÜ Ÿ ¬½8rŽ<!8ížØ‰bì õ¢7ìöÈÑEM*½‹Ì”¸³ˆ”ž“V<ÌŽ6<ë™\wYûè%K¦ML¼È…“ôoz&êÔnÅwBH~ oFÕ_Â%pg€¿óš€ïÕárY¼£F:ßÇD<ìKcñ±¹ôº …ðk.™†@Ö#ÊNxFää9ÛnTƒ¶;è˜A¹¼(«êa D1Ù`ò}ЗœtŒ}«¾¤˜]Ô±$ØXý2ÃÿâI;x:‰ —˜Zmù,W6 hç ¡t^Û±•Ý4 ——ýxŒûL`’¢…Pûž»èh@Ÿ8-8…µÈˆŽî !gˆ¢”b÷œ#¶” «4È—š°û¡Ùðöy×%çÝG3 ­ÔZ³þ——•¼Á‚ê«j²­îõR…±„âoæË&Á•VCv……T%Ä¥Üí@…´½ísï×Q,|ˆy­€ˆŒlAO…Çÿ¹NLã0äª"?.èF•1Òð×PÕP—íEwy”¼Ù½¯y/•Ïè`< O èÃ쑪JÎ8©œè½7'w¼È³Ê+ýÄÊ3¡ s÷èÆG99¤Í€sE(X½!uØ“Ü3‰8±n¼¥½ÿcçÄ„ÉÑÆÖo<:«Ÿˆò4‚¯óå@¼ÄÃÓk'ÔoOnx~UŒïp…³,½\’¼îÀ͸Ì~?0¼¤*W÷íMÊ–˜Š'4æÛ¥I7åIò-–q|>•1n’)T¼­ø|ôc“²mRMàu_¸y@¼‘O…­€¤€½Gøch¦Ûsa×Sî3ÿÎÈ$ÁƒX¼È‡»qˆL"cËvˆ?ºñ+¨ŸŒ£p¼È«q€ W‚dÙl©¼ˆ9uóÕ¼µ–ûQ$ö¼ËOgÖç6š…õð³x'Ó7’:íH€®~ ¼íÀœžAr¶ßÍ|¼jíêÔŘ®Š><Ó¼¾K‹;K<)Õb­Ó"Ú=R¡xÌRÀ˜æ8“'€¼¨l]4KDÞ(âÌÜŸ;U](àMyà\8‡–u¬¼È†ëƒ}Ž‹Ê‹v­¢ó¯ìÝ ãÎ(MC²è@OggS€çLŒ}jØ’,Ã2¼ØGб:vÅ”u54¡èÑWûPIßz à“¹`¼Ë)$L1iré7ØÅ…gL#›yñ¨Î*9WL¼Ä"õ r_m ø»H±…±N{“ºäëñ$c‚¨½ì’Pß8ÌñyÕNÍÉRïõmȤ•ƒâ@½A³ì\ÈÈþµÄŠ2åµ®@^ê%½inæ½8rx¾l]”Fƒd°ƒü¥X6@Ø)€½mòëÖÈçüüûHœæ(B.8bC¸¼ò7ô W éÁV7÷,­¶Ž;ëÏüæÖ(¼èC)ÖßÌU¾aÜë´!«gäϪr‘¼òÆÓ¼zì–3ÓäYÙ¢ÇøþšY¯÷/«9ñKÀ½ÀÂðä¸yúø n¤Q%G/ÑiÖ½A 69ÆÁ*滛‰_dÎL„œØ˜¿ùÞùuúé ³Áê€z§ªI,½8qÛÖþqWÓ$g²ÚJ)X*ì ½Y•½$âCSo8çÿïpGJzà“죸óÓÛ³Ü,½×=y  >“\DwL·œï¸Ínà‹ð$l0½Q%Èž“p+—â’¿ŒÜÒ¼¹R>x½h J‰D›K°4F4,ÄÍÍß#úÈ&— ¼ò4òÖFÄþ€ N™VHè!›˜?3þ;ˆT¼òÃ-øµ$µ®ÅÐ’¹ÕBZ ÃüмíÆ\zwªGmÖ»:÷):˜uõ)¸h¼ÄD‰lßÚïnàÇl,Žúïw'ª¿õ P4ÌÛ IØú~d®t?[—qèæû„g½‡¨g†%ƒ…1h=?æS‚“FŒÊБïÖ¼uO÷î0ǤUuÞÛ3RàDؼpõ÷n'…þÝ<|0™†}×%ß¼K½Å'˜&‰Ví6êÆÕW“ìʪà¼T¾RœLs–¿s–9È-EW‰åP²@¼uG³ÌÔ1Tåläç•9kË2¼Ý+›~šLûg£Áæv§Æ\¥nkD.hŒ%ܽ6qiױÉeÞÌŽE×¾¹ ÞÓýlv@À¼uB{­¢8ÈÌÎ_aM¿ÆI¬-iŠÜ.áT¼qqazà‰†"Kzk™yW b¾ €¼{+¯ ”½÷Qƒ `süŠ3\3Ÿç{õ€¼É„¦µgËb!–úM™Aà Û‡úx²3âfÈ—Ô­¸U>’Z$®8ùì“'=FNÂð…ä@ÉõsTµR-W6the~ Þø˜9|(È“‚¡!O6Ó„Æx7&¼–à€˜9—\ô—z,¹Û¾ê§³õ”N´ëæ0˜8|•ýÀöG‡i_[)Tjé…Ö;Áßf%®[+ÜvæÚDá'¯@OggS£MŒ}k*{B2  !¼ö™BÚ4\âè—õ ÓŽŠ*Ü ]UfÎö¼òB|ÄÌÛjõõ¼¥W]·¡e†µ€…ê—d¹&€J×|ÆžáæLŸm8z„xs1˜7PP3å¸g'BÈj¥½éY=À¼¾J ëF˞Ԫȴ‹Ú|À_ª*ZÝf ¼zðÓW[5Ð#•'y‘î’Ç£ÙÛ<Ôp¼…ºàÉé¨ÒÚU؇>ýtÒ™…øA?‰@a¼péX7o3…Ô\P¸àÏâ-=. Ó¼C’G»_NöÓÝÓRÔ3Ôc³ØÞ"2༳«èÀ¤¨O¬$íªR¸8Å!!p:Ò"CLç4 æÀ½Ä¡ÝÀnTLlžQíåä›SîöTª¡ý4x¿óàçèH¹Q¼ü¨$qwe'Lò!¹Â­&—/æl\¼u­œÌPø}Ù>Nc±G>È@ûC±~ÌÅñ¼u>ŠvH*ÜÈÆ'y`¼ºó~õ ë/…È­[Ðßc)Ìâ'㛲x3X0À—ÿÈz¦Åjc¸j‰ äRN_…½p …åFÙáE4ëBß“ ¨¶3’¨ôð‰€…ï’)²Þݼ…@uxSÇR6 %3ݘK&AÙƒHY7$üÔÉq *#“)Wh˜B†Þ†Ñ×3µðOAÉh¶?ø[•&€…é9D”;¿«WV¯@ÿãrôµŠ´€˜7;4&^^_ò‰À7 ¢\q» $…ßøF†ò ›¹ŠnUxsj}³\…êžYóñ~Ä-® ;sY˜ßN–s9…'јA£ Š‡Á‹Ão7æP‡Þøù^ëÀ˜ ½Õ¾µSO6Ñ–Gi®kµ“ÊH˜9¹¤ü({(ƒbÔ’ùG@u+÷á9.£°GÀ˜9¶£pÊ‹j²‚0¬?¡W®›B?\ÜÀ½+‡J ±äöÀãX¥øåi{ýúd„=’¾‚ ½9r¼æ.¾£‰°( ÆaL“¶ h~²â>à½8qÝqßÏ*û‚p¹3dgúͷƶ ˆ\½8w_“ÇÎÝËÉšovÐÓ ÖÞÇÔE`°~b&OP˜+DRHx2ÃŽÔ ÝóØ,àFÁåЋ˜6¡ïÕäÔ«ÈCQ½žj¨Ø¢BÀ›ªŠ€˜ïe~r î¶½V3Í›.¢o5ï…ÓÖìp²êMØ»ìÆNuÁW¾Å @Å–Ö—êGùŸçòoòÆ•ý{ Tà…ט¹7ÐW+Á–5R-?ÏÛëÜÏcú†Ø˜T$ÙÑ'wŒ‡»¢ÑÖ˜úFÉ2èæ• ˜FH‚¶÷9_¸nCÉÝÄÄ6ª}œ&;˜µ˜K‰ÌA²Ÿ²­‡¹˜`fà0÷9@˜7;UG!EÖÁ,%ʤ–éCt˜VBÕ”*”®ùO@@î ¡R¬¾ø‰€—˜?õ„OVøÃí‰,ŽØØ/œ ÎÑb¶…Ø ’@Ç‹ÆÁL <ØÞ|úd!³Š|+И@W™E´Ãf× ½{#q€¾ì Ã,˜üàŸ»Ž% 6úÆW§CÎÓ%b^ ‡×@¼ò³PÛKÎËõ"ž¥³3\c¥šÝDmÞ^z½¦žõNúy”·Øÿé4:g+žë;*æÎ 6^½õ‡sBd 0)_ºÉ¾&${ ÿñcu,нÌOggS€^NŒ}lZ;¸F2 "!#"½Wb6 ÓÅòÀ­·2óh±¤ð\×>Cù#ž€¿úx’eU-‡d{G"hq8_í¾WI‹ÙŽ”â)þ2À½ ž[ÚFa2¹,{:hßÒ—Ž¶ÿR]…°Ùñ˵â.GbTL9Vã ôß—{_‹{+Ê@Ç¢Â0¸AVuÊå$üÁªB}­*J„;Ý<?¥£¼•éó•+VŶC›À&vefü3HqÍzÿ£p†]±?¥f±50Œ#¬”ž…ƒ­ÂÜ`Ò€—f8[ë粨`x,mÝ’yàG@…¦†£aN‘ A]FkTéÍ- —kê—ÑéδçƒÕæ›L¾|ð…ä…¤£‡BÃè—¨ìÁDhép°—{R¸®(Š[3"g)¼@—l{iÁ!Žê´f枤µç£ƒÎÖИ%ÈM±ÎoKáבõþ²ç¥Ú”`Ÿó¨˜BsEKŸ›a5\US+PõÔãh?ܧ6˜8nÑ0©Ú^åB(-;ÜOdž‚Ô‰â]òIñ…ÅåêR$—}º »e=ñ!¤Š±ñ~Gf…Ò±>”`>’óèu¼1‹-‹í‚ù°@—óŸîA>úp#-…µFeC£ÖrH—îÙQ¦Âø‰&' –/#z#eRUÃj-È(—ÔϽo¸ÿ?l`Æ@öîcÚiÀ˜Ø/»ÍvýuÓD$îç^Ú@—ä@y “´hŠRl‹–~NÀr*—ǺéGhù{M{ó2gÖ=ëb*CLíÀ¼~Íi§"Ïé‚ìuïðÇ‹ÿцђ,îbÍà¼wôpKL˜ähûñ» „l™W­‡®ýäîý<¼¡Sy ó4Ÿ«%JMNt2kð›åH8w½¶Ù¸QÆ÷8¼Ýñõ|þ @$$­›y°!ÈwQšIƒï+Ö½6î¯à-±œ±AR˜¢VàQލ}>ˆÕƒH€¼íá´î"ƒV ì;÷ÑŸ©ô”ÛÊòu°¼×›kþ–i8Ä3ë Ü•BçD ÝÈ?¸P¼Ù5~â\*)é'ÐÎFc€ðéh’]‰Ò·'yêhªÀ½„LúøNbHwß ¶®=AÅÈ$Ö×à¼ørÿ£õûÔƒEØÞ@.¢&»ýy”µh)0SÄéÀ¿öÍö¸üºDÃ8†ííà9ɘýZD ¥(cc7½<ùÞÕ¸ ¦Â"é"šxhÓ3¾œ`¦ ^¦m>©€½8sž(ÖiÈó6:ôeZº U5jß:ià½=ŠHq:½Mô–€Z!£´yÍ€½åÛn¹œY4ïÆØFè@é!md½qkQïÒ^’‰¡ëß -H(iÞF<`¼Ÿ=/mýïwœŠ*γÆ8ãw« Ä@æÙ‰½ ¼ÝR:1ñŽJÌ6É äžcWþ.®àÓPÇ­ÈgÀ½?¯%¿·Gfa}‚ªÀ“Ú©£ë/; ´õ²@¼ÇÆ O¿sعº›[¨Q8É a;ÎÒµ"–€¼¤)‚3ðiðÐÌI¢­h¼§É.ßîòÁÙr¾'ƒ¯ƒÁ¥1­è†–@¼²IYÀ\^ªÀž×èÙ}«Â·¾½@+“¤]"$Ë̳{¢Û`Œº³al#@¼Ñl~×É2´‘•«¨îZoäÇ×e\oL©½Aoz˜¼ÈÄÌL: ©õEμ×jv=DÎ߂ϭbŽQ¼®p¼£èÎ<\–¢öü~åoq9¿ñh ­¾„È®ÄÚFzÓ e7Õ%@—ÃÓJ`bÉ8÷ò¶œ%-o»À ÄX…Èp=ÓÙMÃå'“"‘Lá={ ÝÉä˜ÂÍÃÉüÕÜ&PÈôÖ¨à8¼è Kj‹vàðcäÅŸÊþ°òì³D­!]p…ÑWÈ1\±nŸe_é´0+W°_øú4œ…ÐæßhU\¥n¸ÞYÓ Å·€…Ä‘ß;¬õtùÀnW`Å9à7H…ÑB„vc7z…šßÅ<ÁyÀ…×Çj°4”Eµ »s×çëÎØ¾¬˜R@˜ƒ’kÖ)kq&8“9›”©ØÈú…é2?׋ÒxÃa íÕ*þ“M¼˜›çÜp½å LºÔÐŒf^Ñz;= K ™@¿í”ó¾À½j˜¢<=²ôÛpIÑ »º4NÀëKZT ½ %‰qÉÀ™Tt¿Uˆ@&j·_-n.©Ÿ·C.½ %‰`S[Œ¤{¨&¦À˜•ÉcËú¡¨hH‹–½Whv›ÆÛ}»V¨ü­ñ¼Ùô§H½ km9-®œù§Í5Q“=ØÏhB ‡ÁÀ½ c‡õ ½ØX\¯ÃÕѿϱþQÙT¼ò¸Û=ô2ÓIò•ûÜ,é,иhù¼ðí%±YNx+ÆN—¨@œj·‹ð§à¼Î/ЫvK~.‹Zð* 8m=l. 7íàVC=ËÀ¼òDhzÆómö–ý„°@G.l’@ˆ‚Ò{fÒ@¼Ùúزš\0Â<Þ.ÛÍÒ= Ã|£áHäuøl€OggS€ÕOŒ}nþUT2 …ݲ^ŒË¹/ÃøjKi—p—ñù๎õÜGÍéCË^#à…ÍÄÿ?K\°Xð^Þ–@a×WvÉ…Ñ:&K9®êøÿ>«'–æöS-а¼È|· ·;ˆÝÆÊ¯FÑ3ÛØZrz¿ó›N_ èZŸÌ.’ gyQdŽGÓ.…É[-E^¹Ò$,2›H›²2àå®8…î7ªGe1lCÐqxRÕ§ƒëÀ—ðµÊCk À£¥ Ì88D½šûñb5[®T…Òä¤mÜš4m­e!{ß’ÑŽ>;X,…àŒéW¶ŒQéxÔ;ˆ±êĘëz „ÏÅ >N8Ž<]y¤Ö/ºÿ©šà…à­â”€í‰!,b†E,ue: ˜,ÕÝ=®n öåϸ¹ÜC’ös€…î"?û֘Ŏ&íY7ì&:ùË2ñWnA€—î —;Æä0í ë½…æ (󀼟w Ö‘2y¯6 ‹GÙL.:ƒ”ìáÇô ?­òM!f3`O>ëõeÁßÝ`Ì0…ÃmËݲNL#IùLïk5AˆØ-y—ÄJ„pNYE0x¾±61€?±ÛQRýÆ…t¶•}öæ„úp…Èh9“üvŠï£S™N%㌶ÿV…Â9’``#Öí½Ëæ°¡€——úýâ dƒè~J^,¦+:1Ð^—¹î¼@s[z-2÷wõcÐ-oy ?³åãW°ˆ™Á­üfµ/ 6—Ã0:¬cC^˜Þ‰ú5H…º@X´`Ðf#$bäź—ÂhÏu¬2kºX˜çÙE<¥wÎSþ4Vhö)lr-~Òµp—îάSa4IPµÀIåW8TP=ßЗâ÷y8"Ÿˆ?8 ý×^Âû¯Ìü^—œ‹ïñìÆ~S„¤KÎoÜ@—Ó'ÑáTyŠà¡òýÎ ñy8ó…ÏI}“×x};b¿$šEI@/¸@…Æ2ä$¤¬©Ð. È|Qò² é„A°…èÌ5HnS“fl®¿8¹_oE‘€˜c^šsÝ“þ³Ëo5iá`—ïzo°Ž”Ñ"8Ÿ9âvoš‚Ç—ïz˜|ìɇ$õÔŠ¿w‚¿Ç‹9þ Õ} …ÍM„ÃÄ(µ× Œñ̥ŽÃÒÐh—ÃB–ëQJ‚K/”ˆö)§‡ß÷u…É[9U|ÙXÕvÙ/GîŒíý.¿¹¯( …î%ç"0ºš™gàB•¾Úw[-¬…à)Ðü1f4¦MJôèQk ·€˜8€ä"ç\¶'‹þ£‘‰’~ª i–y\½›ºMvÈ´Þ¢hø² ™V»}‘̤*˜ýÚx•Á€½K„?“—ãö;~eô+Sµ12ÀÐW*=މ€½Ï— 6R…Ùvh7‡¢ €z6gÄù›h½!q Û÷×Î8Â×£ßPÉëÔ'p¯1gÙ¦Þ€½9oçïÛÏïÃØÙÚÅÒ@¬Öx}½ò£!Í,¡pOggS‘PŒ}o@œ'2"½7'V{\猥Œ“* ?'Ê!oѪ½¾Ñ)oEέÁÑkœ$;»(µêd¢ÌB ½:PÆÞT‰å€Ä"RêÛlù?g™ÛÓü—îºkÊ‘@&Ïñôáceÿ–°ç˜¯’Rè©€cG8mÕ©ßBD…ã ì§L5.ZJåË sØGç÷%@ ˜Hò``;Ì[èõXÙ«opasæ?ë;…ßÁÐáõ_ÇÓïÄ!‰À…ÍjåÃÎèW­ÏIÖË¿âp{Æž– —ÇvôˆSK+`Ê0xÔ43CÉ·d2—…Âì0ªV~Œ§väˆ$ô®4kd—ÃäTÚAá: ·¸¾Œw¯x%sÛ|¹ò …ÆÌ0DAû[˜„Q2Õ’>º ®À˜@}$K Éÿ‡.&Ó;’o~™€—Â¥@\$̲8w„NÂÚqm®$wH4;{…â*ßb€B›­Pþt€vŽbo…;D¨)º€ÌLŽ|vp?¯&»êXf€Ðë5"[@WŠužØDÈk@…¢ûhÓO}¸± î¼…Ô Ðôݬ(MmÂ>u( RžAʲÐJ…âb„±c*;k+5ébÅ™48Í…HKV`—òûò¶ÅÓK&+ÚE€moÖ4eŸÅ—ð<^^ ‚Ê­„ádCÓégb*-h¼òóHˆº…§Þ4»'éüÿ› ²ÃÀGkë*d¼õ¦tDYñйI?ª'%ƒ“™•‡õâ–' ¼îcðˆÖ½âd_¬Ux¦¹+6à ÝSÇ.\p¼ÔÀ‹~þ‰l P½¥}PÿT¹LqnÏ+& y ½?½5½,Õ\1"1c,Ù+òHF']Ê2 ¼¾^%ï”»‘?° !’ÈÆ¬‰¹üËôÕÍ]Ú5úf ¼§Êà#ÂÑß|ŸÐW©Ã<ôõ<C:šžÞ4È¿ñ,e]ÖßÜhê;£+ººÛ‡Ë½ÆœZ¼ÄÃù:³ŽÃbÆ(¾~øæ]Çk †ìˆýŒ¿ñ‘ÞPB}« †¾9<(V(ÂÝ„ãdÖrÑ`¿ñû¢ŸÍö؉0Œy¼­÷! :¡ÇÒÉxò±½@'!;k-(@ã#Šžåc…uJDÌ_ܼÈâi(˜.ªOÅ+ŸC¬zö¨mžRPm‘vݾμÈ{Ÿ  µšðã£;¾Äœmêø$ÛB€¼È©Þ 9'$6ÔŒýüǤ±zù®@Òâ@¼¤•”ÿ[í€ÄDL#N™}B1¸#Ïþ…þ,êÆoê¿óg¬ö¤“ÌiŒ¥yÌls¯ÙŒë÷2#b¥ap—ÍóW¢R€D%ƒ”ýº ¨˜¸I‡Âǘ¢LòstÙ-šºT9ozW÷„m€˜Òj=¦µ^z )€vÛ‰¿`kæk—ó“•ãðäÔtÇê¤Ï•÷z6gò¼§â „Mîö¬2®—¥Ñ/JÕm¶š¼®Þ;8äâ®ËgqöÇä²ÈõŒÐèg;s÷Ù @¼ØW™Öç#¹£iá0³QĄž#y ±*1òTˆø¼þ3ïà‡þv ycX&…'"9:¯žo ¬…ñKÇIúßpÃô Ò;ލ€˜9°+sQ~Ýa\ªÒN/€‡úÍ€OggS€LQŒ}p™Âço2!!!˜:ÉÑ¥P#4o‘B¹UiI5Q;˜´õ˜9¶Â·Í(¹*êå˜ÞS„Ö­#ýÎ[½9KGYÕÀ6ÎÒ!úw¾û£zZv"…ù0½ÎÒZ¦ÌMj4#7„˜Ö†8ãÆ`4Ùâö³c˜…â((Áì øŒ‡ø Bn>_fñ½Ü˜:/ý]@%ò´áþùEüYA!¢§"(N€…赨r9kÏÚ)UžÁŸž€…Ѽuï~ªÒžÄŠ}=ž¶"„—ïÉ' ®¾¿[ˆb¸2ã6+H…Ïd0 VV šѰuÀ—Á]sÂñͽbñ9»Þ=ËÙ`瀅¸> mñù­õ³ÀÅ$M§Rn~â[ůb€˜: ×û(gÍ›K·ëI¥‹ÀÐÅÐ…Þ{Ö= @#cKú휡w½;D€…ÈUA¸$ƒe‡ÓXDŽ­õô:/@BÀ¼ jÅjïK^"ê¤ÐïòÈ Ž¥t-Ÿ›ß¼žù1I@È$_¤²#•ÿ‘^èd¹&á ßmè5l±ßÀ¼Ÿ|¹Ú½™0†™ <_òZDž[ò}®øB¿è¼«5ê¼ñÆãõM-ÑÊEiQBTÿRÇqh!mѽHýMX³²¦×o΄F=×ÝL߈ N,.¼òu]jÛ±¦Ú}× 0ªImÎUô,kÒ¿½ÿk¶ÞæßuÏr~õ#ÃÈž…åƒÄ½ÿ@ å~ûñcTÛáäÆ?‡ù š8S+À½$ËF‰DéhàmŽ[Ñôú¶c$ø¶kª·Õå …á%ª‚ÓÄ›ÝvX¬3±¼$Y0`½;Ù$•Lmg4ž-7[%ØêEºÐ½÷ËîœV½ISjT>É(…=æE؉äùU¼žâsŠJðÀ!ª@0xÒÑGA ƒ¡¨ZU¿ðÁS³Iókçêx“ezç•SéâMD¥Xqà¼wïoσ°ò4—öSŠË¼¶+Źè_$ܶ»Ø¼~e#!¼°ýg˜ú *8ÞÚ ž¢þí༟gßÑö0Õ+©öè6¥w5L×JÕL7h¼”Ù¯] Õ•a%÷u£EŽ(ÑŤ” ©h2¼vçØE^Þ8Ê7…=µõ—)ƒ©ëCØ10¼k/^'ÑÍr±ÌjÞ>Êíü4‡Z>Ó¢æ¼t´Öº¤–“9Ñ÷74-Ù[Û{Oìú7eÛc”¼TÍrÛìÅ@…,º¤eM{Ë,Œ¨¢³!€¿î¦D„W¾è”ùÎÚÈj€F–tÃÚ“,Ï@—ø gÝ^_­0k:f½ 3Ê1Å Î)€…âu¡°b ÷»úâCc³Ñ*¡ã>…ìÈ]Uøá{å± ´úK…èÈônð›¡`à Diœû@—ò M™;ØAMˆ»ªtád'Î7;±@£¼¾*™àê4!áéç?ý™£Ù턯Q¸¼tК2÷ìA…“Ô/™•"¼¹¼K±^Nâòõuš»<Ħo1ÔÇV áQ\I§°¼©ßëâ2ªÄj&¦‰{½__–lAJÚMä>¼ŽL½;r ýÈJÚbµ”JY+½žêd¹=ŸÇT€¼ðèAMƒ…å=œ‰ÜÀèºLôœ¼¢ž}f YØžÜF…ªÑ~ñ|‘J'@[ÀOggSRŒ}qCL?‰2  "—ëÙa«+K§Æ3þ#8M—ÀžhÓ©8ˆ“ ¬ÓùyÌø±S0 .€—˜*´dfh|½}W¨’ÃÊ š~…¸tâ8ZìË?Ñ#ËÖßÝxxßd…ñ# ½kbqsX¸_öˆ%-c¸ü€…Í[l€\€ú†JÎÑ•†áÚÚŒÒ>ø¸P˜—þiS9LÂ3ÄÇ5*BD1®cÉ}r*œ…Ñ%”s£?}ƒÍý¥¤3ÜØùsÆ …ße˜þÎNMˆæCd<3V§2u Œ@¼ó¤þK‹!`”“# p¶Ù²ó*m©Ü~’¿¯ˆíòà½^{”í‡ù»OAQÈÕTËÍù€‘t•z&j‚½,´ ªT·¢êÑ8h¡U ²ŠIÐÄfÃJð½9"“õþãžTGÚÑÊLYøõ^Ô0¢~tÌ„8¼ðØ®\Q9ö…Ì]¯gmž±·¾4½2J~ Hà¼ÉLNÀÄ¿{1ÍÿG=+§9­vžvNQ`¼ÇH°-ÁÑÈ¡Ú%$˨¹sX>!Z ³w£¼ŸC_šÜ›Wº€Ýo‹Ïé„÷D,ƒgí¬–µ€¿ñXÚR=þèký§S«W¥g8àõßw @9¡íZ ˜IS —‰ E´¸ º.µ¦.UÁÖp—‹s.‰}ëSéø†]NpÈHr R—}ÃŽ…\H*¥g¥­»þh ‘BèIS'iÙ‚ó—_ƒ5­¢†n5š¿È+ß âi…(›ÅÖº¿®è¤*\qˆ›ÄùܵÞ…™øy$¶«N±£DÏ´×ƈìÿf…›×¯±ˆã0Õ. b~rñT­ƒÀ5½dë;dÀ…ñ$ ¾hìüÍg¥<ù\! F\>Ân=€¼¾JðjšŽ¨Í&Žøÿ‡( ßÉŽFd¼pÁÒ©éBJpqâ¯åþJÆ„¹¶¼ÊNnTߟí Ö¤Ì [Ù}àt`“ÍL»ûLªH Wû|ÀÎÚô¹p£ÆäM€¿æ/ƪÊ)Ã{;SèîgäØÏFŽxÊ&Έ¿é”6•ôØçß|­ÔÅ$ª\”S ƒÖ¤¼ÇR½?ç H…æ¸Ù«{® Ú šÐÂ`¼ ëc›w­´ç±YйäÙ;Ÿ‰Õ€¼Ÿ’Ï€s×XªðëS² ‚·ÈN# º2ÙN¼“¤CNcm 6g6Ê^atÎéZÑ$w¨oÏ,!À¼TͲå;ßÝþã!j|bé½-Íó±€|¼KºÛ¢¶®IN¤©h¿7T0\Œ[C„€¼^Ó²|%€ ‚2Å÷n4âµß›d(pýBd ÔŒ]X½IR¶þ$•½oªî~á¿êšÒWì­K(©É¼›"n”­©Âın5ú"œ{ÓÂ}Xtü? ë\UC²ÙX…¸H)ÑL.5„x ¥L øáçÉá…÷®´ âl·_CF‡è©>ú–oˆG@—äg~òêÜÌAÀ>îÞ'Š&%ó —Å Ç•Z ²{|Žó6Nîzª¯èRâ—ÅÂøFÔ=æZEγQ†C6¯òåpu ÿªË`…îq\ùž²ä•ð0Óæ=‹zHëd—ƾ³£d8Jõ"Ö9†ç€ú¿É€¸q€—ÿѻȴ0æ ÚÛŽQ²Ùb$HÐCK—€…éZzýëah9á“1è:Aà[ûK˜˜9 fÌ`Á-RtA†ÏŠ2!A©H…ÇâïºMT„æï}Š ø€èãqô6¡…ÃÉÌÂh£ù5Ù¹ qÕ’8 :ätˆ†ø€—·Üè08áe° ‚ýĦÇüu˜úL?¥Î³yú±nRˆE¸EÃà›Œ2ð€…¨tJEXn˜lIg ß;Iã7Æ«F˜`;÷¿,Q—b4ÒÚ< bÊ´€—¼„™¡™ØëÿHÍ —2× u>eÿß?¸é.É{·?PNÕƒÀ?ž;Âë[Th<+ Øžv?—à+‹z;ì7A¢©­Ñ!ŒÓ+[jtòÍ-VúFs 9ðâ Nxunúè…©ñŽÐè©y711Ï;0—¤BªÅð„ˆ…÷å%•Z uÎžË eÎ1`…¿Id‡¾{Ðû¿A8)鲋´Í Èà…¹Ù%»f â -¼ ãZ±Éü@…Ù.B`'ù¹èëõd÷®?½ˆð—ÇLñn²æU¿ê’£'ó&¿Ùd]{¶×F5N,3R`ûscoé²e(¼[ƒ{˜™ñ:g£^»áC<·²^³>{£mJ[/@¼t2Ä W>¦phð%÷ZlÏMŠK3çx.­¼Aƒ¿ ª D«Q•ûüÜqPYëòßœ¶¼&m—bL©¡‘ž`;žf)†³›+–…˜ð¨†1ªÜ(ÌlwwÙ|EÀOggSSŒ}s*ÛS2—Hêje‘ášCˆÚ5êž³œüÇF ¼°…©†×k÷¢ì=*xÄþÿJ ¾ä'ú\)ùp…é\ uä‘Zt«¥Y©¡Z×ò÷‹_…Ý.r"§¶HcåÄ(ï)” a‰¼zõàõ#ê c«l5™yü–ÐÃV/°6`¯,€——ô3{‡‰A§Ç¼ػϺ§æõ5tFˆô„—›mCS<ÎBÎc9ý»÷>|WE®Ý£°…´¬{W­Ûyr'á·‚BË2`NVê…±–¬èß^Þ„åYˆ!6¡Ø©@˜ˆs£#çQ{9ü†|ü]*À…Ý?ñ«’4Æ˜Ï ¯d¢ÙéMHé;…Ï,úõ½¢o×v3»f¸N•T—˜f1Ãù©Ä‹kx+^4Bx—§VƒÎ‚‹"åKßáh”‡?ëEŸOÓµyïný}€˜7HórŒ ó y5\µÜ˰¤ôaYU& ˜$ýŽb’lÔU‹b£ÑñbI´|@A˜9+û;øÒë>zV—Q{Òž%ßñB}Ü…àOÙ´€‘2‰ªE§D8d³cXø•έQ˜ך•ºdš0˜™Ð?>‡‘•…§Ò€…à0²Ó‰sb˜~É“ù&¡9÷ý—Bë˜,Ž Wõz¼ð’~°Ú÷aO\¢€˜BŒ4ó]³;C‚âwƒõ}t{#И9-û7C”ÓeFBŠíqœPñ†p­˜—ñö±pe̽„ú¢sîî$Dp1D¦åô㈗ê㥜¢K;îëF–Ãeƶ%Àp…Â_‹‡Å Ò[²7€…·È+“2Co•1 ÁÃÎdxÖ{_ȨÐ…ôä™ 4²uhLº’¹wUaþ¹ Uñ-Û›·ÁI –§`§ oØ‹¸ Î_¼O‰Å2¢`—bñÄ•8lªy8hX^~6z¼LÌr>hv¨w#ÂXο(Bµ³‡Eø@¥ÐƼKù¥K;8Œ .ÈwJüHyùy®rÃæq<üExô¼|9bÿ×Ófûò”vŽ$B¨ÏÙ½ôDm€½FE.C†­qdá™»¿®8¬Z·Kýì;ùmH¿ûÜž„l93û,y y¡†zIJ5Ùí€`…ëk¥`ò¹%›UInŒ}áx&£˜6ïòrZbì’Ï*9õ)¸РU¾—ñ,½ËKîäÑqr»žWc¹@öЗÆX^‹¹‚?VÖ- r¥ãм¨>z®D…¿žìá\0šdz×IÆ ¸*‰.\È…ýå£9~›©õ…úJÊ iTÂê…Õ˜6‹ êr)‹—†‹èçý©%ß,Q¨—øñ+"|æðxCБu‹_¡Þ#j´Èˆ˜yÌN):…žkU@ Ʊ÷Sª ˜yçTwJä¦×.5Ï9 \P…à,ÓÑ•Ã3‡UõÃ*ûÅD¦Ô˜çtµ÷…/ɳ-á¬!H~bþrË<˜$áµ>^ÝD—³+tpag‰i†˜([âÃ…ëÚÝ»N•jnZ˜¤'`OggSöTŒ}ué ÍR2 !  …ôF3øÔ¡43.‚¢É4˜¼¾^I›ÔCU#º¯1SÖ‰lÌAƒ®]?B™vʶ€¼™tEĸ `•$ÿìÅyCÓo2õÙiúË„ùOn½þ¿ëÎ:ÞKÜAã¢[¼*ÒâR³ ¨âˆ€…¦˜Q@Q¸®ç{è/àßDïÓ…©TmôW#!€?{bYHGo岞žÝg˜À—™[&ôΧ¥¥ƒ÷#-™O¼÷‘¼ûïùŠ€—™j¨°æŠë5 r÷BŒÔvštü_ð¼p¸ÿ`´\KÀ»h]¹Êð”Ô­Õ¼1×9ËX§ÿ-Œ‹=ì£h,ÄÞ¸Û4–pž<¼Köv¯" _|>%½ñG›òm©öÆÓF <@ѼTÌÀwþp³”kö]ÏO ^ì¡R‚úøå¼už8Üo:¾ú)±«”‡Fð>BF¾x+¨ø¼zþÚðï÷@‚lóp ÞWˆö~$nÏ“‹¹‹?½%K–N¨µ4¥\¾5–“]O ©¦gø ¶˜½6ÆrWKzƒwÊlöãÞ«#"™mXâ¼ÇlÑÛÜÔébfl„—‡®_c­^ôÛE:^¼ŸAÿO|cÿ—Eùý¶ç° \RÀ ëà ¼w﬇r "KapÎ8XT'©Ýýƒjø¼sé÷e8upR´.¤ѫطïÐ|ß[Ÿb,Q(¼Re8þPu«>ä$2V?ib°b¾¸ 6ƒ†égÓ¼ò?j(…MS~ q J4I´¥M$´1û^î+Zwö¼ír*†®? ­7Ã;\•´9ãØB] è§ >¸¼ÝôUëáHº‰‘BÌî³VºüWÖÐ&Pò&+x¼tˆá !ÍI0¥S7ý+˜ž=MõWÎ']¸ ü¼N\:²eÊ"å ¦÷0õÝÙú„Õ€¿ëÈ̼°ñûµe'>>Ý~QóÙy|Ï ‘¼|~âÿNië™Çù/)c¾ò¹£þËÝÈ…ý!é'ˆýC©ká=é™v˜6ö8 ÓqÙÍÀà’ª¼Îa§ñÜÌÍî+| ÂÑ<±ž³Ã?×¶~$¼ò©Ñ9}ì›Ëè§`@ŸÄ¶ÝâÔð·U¨`¼õ–Šo~wšÎÈ¿âØLW'À]¥s¸¼íükØ¡5dÑêWß&Ø ü×Ýëg÷9[Šç˜÷÷ÿ _š8–nU ,IIÜV@˜+ù³ ®ˆgØæÒ¢iÔÌ×A@*×–˜BRÌ6rÊøÚ°ª-’ÇOÖ]Ó‚½ n¶[þ±ô‚ìPÇ·âPN~£Šc¿é ¼¿&ÔÛ4½QfòÜñçc¥V;¯¡šOMù¼ÄGõûqJø;îœ&_ ¬†]/šÏhS༞䠇 z·#ê ™Z-ö«ÈŒ:Å•éP¼œ°Ig —gªÇóöæ".ׄ]# ¿ý†ê64\éµ7ÂÐy,qð-Ýÿø¥%ò„@*¼”XêÆ8–ú ¢Æ OÊž>oƒ|`â\¼A‡áÀ…ZÇPˆèá§ŸMx OVÑuà¼" E/Ôè´°åAzYóYŒØ¼"CÎ,–wK3V·ú±£°€6t²Í%9‡I ¼"E‚ ñº)W˜„TË‚±!n §3ðC]H¨Yy¿éz‘C«4ª­MGæßÿQÄ¥âA{η‹5ż£À½If(ŒÅ¥[ &œl«BÎfTön­Xx0êOggS€±UŒ}vd%¸Á2 !¼ÄJ …$…´¦NåqMFÖÝrËÐàѼKá|ò‰bˆjWÂ8F~ÛªÖ85¡Ö]öi ¼H—yd!’ê_m~¾ú¨½«®ÌZF÷ à#© ¼Kä¥ûKÑ«`AÇä°¡Ë\A†›mÍÍ-³™€¼NN¿È»D÷9„¯Ê6ÎÕMX8xÄÄûd¼R eI?)]Zø…,ÌqQéÙh\‡ôa/И-¬ž¢É%óp7WHŒ¬Iî €¼È 3’!#fYbêʽQµrŸ­«ŠÕ¼ŸAGlEÂQŠä›#°¡ü ¶Z³Ëc޼ ÚpŠ\ì’ļ“¢_î‡ZÒèŒo¬JÄã¼u¢5÷Fƒ\fHÒ ®†¹s(Û»ÝÈ k4¼vm&º‘òc^D!ë€sÒÐ/àà ¼zù3{]`ÜÎꊠ›søR€Ðä‰þøeë­û°½[Ø[³~=„öÍX;SngÃ5ÙQê†Ï0ïÔ€¼½X_¸Šbæ4[x¼DñÛ–Ÿ«8]c¾þpn¼u:°|L½„Ö×ùå)S|¼²ØT¼u;ð³]²Eå “À@ädŽHâÒ9Ó[/À¼[unš?pŽû–óéZˆ"LeF¨ñ‡DËŽ€¼hýb¬Ñÿ¢Pá(õÒ¾ø›ÿhV<æI/@w¿ëœnO€YhÌË@Pªþ¦"œW©@½r·¿üïÒw—D÷}ÄôojJ8G”ws–[{-­¼ÄÐÍD¸XRvÆW¥õ¬h;Îi8¯ê޼žâö·c€@V¢4âí 4©j'É^_q[ºòj¼… œ4rûCõ®”/}ΣòýÌ)ÔìË€z0¼šÉÙþx;*;¨%ß‹'[10ÁÙ¦$&#¼u¢5÷."çeP͸IŸ©êV³£™•ð$¿ï ü3’¤]?ðˆ¼îÀ64KoŒb0ÊÂ)pw(8hŸ€…ßx¢yRqüG­ÜVÌö4˜ó<…Û1À©3HyÞdÚ,Uš¸SÇZ`…Ñ÷‡òR[ÅÒp”>h¼¾hImZˆù=d¼'ÊùáÝ(‚‰µ¼¨ß + É%Íô!ñ([]ú^Û¢`N€¼Çó“t@h?¸Ž5¡,™®0 ÖÄØ G¿ñ¾Çí ì«ÿƒJ¼ûÖ8÷àÑŽ’HLT…zó'« §WV6a¾h½Rñåÿúî~@ §’v‘sÑÝi­ê¿øò9âÕk%8Ï"ŒS¦¤Õ’y±lv"½«àºN 4°Ÿ¬P³×3×NšmȽ+V7ÚÕ6¥ïÿX¼.ÉP)òîÚÿ½“ؼæÒ¤£ÿm®žSË…Ïö¿*f-Ðmþ5í¼ÇB£ ÌéB²Å©3øpÞ›ÌVÞ¯Ç ¼§Ç…õ¤ÞHóˆC”‰¯÷¬ä½ ¿§|¡' ¼žÚò\Q‘òcW•¼Ÿ.<ÑŠìµÞa0¿ð#±ÛÇ·whçg‰¬NÀJäR{¼8.û…ëÆÕ;ÂÒÆ( ±àÓ/?và…Ï{X¹[»7Šc4jã\uÝ£uÊ€OggSmVŒ}w¬èD©2!"—˜¦¶KÕxGçyðìØjdê ˆ Ê9…´ÄüÈ R¶Éþb.÷¾…{ÅQ)(„ø—t£ ÆR¹Dù‘êci„êaÎ9bÊFù[¸p—¾¬’0ü«™þûBÕ ý]Iì—œóoN³¼·ÆÂŽï°ÈZ£ÏŠ]pÜ…÷¨ÐJ4•2ù±µÿ¶e‚u oÞ”—€—ê’òÔi_r¥1833–Xêæ'€…ÅѤ.\M=œºo3#py£vOØ’…Ô¯–ΆrÖ• ¬bÛΰ…›ø O˜LÂ’®7^ebQrh6ïHÓ…ÑéÓùÂa‚÷yÁ¿I-×>§Tã]°—ïŸÕV25öì>æÀ^wôŒ…íkE Ÿ{×B†š‘YQˆ2<±³¾h…Û*øµÆü) ªç¨b×o’8†—Á Eù|DXÛy ›‹/ŠHp?­Ñè+Þ+yÀc5­Âüò þ—šùÅ•1®þ˜?Ûn¬Ô 5)ö)8?¥Î¨•ƒ©¹ÁÞ!}štÔ?¥gâHxžU¼…‹Ø‰RL) `…¨ ð:öNNHOÙ:fŒNÜRÑŒjϧܼŸ§1Òg–FqEêùüØ$CPµøzÿ®è†Z'jC¼uße:Óÿ>8úÖM>ì\û2!ÿ*dÚí°”¼ußóô<(?Æì輞a¹~Ë…0øV¤È.` ¼uœ•ß׿µ;ÞCÙdjVØ~:'íín{à¼w€i\Uƒ|#ºòâ#Ç»ÌhZÅÓQq¼KÂ<8Z#‘Ú¾}¹˜LzÈiS>TŽï…äÂTúrƒ™"EÚýu½׋žšØÀ8˜AgŒ—Rzœ«uW5¥¯=ëÎ*@¼¤)ÛÕ´gŸB¡2L¶PÂ>>éìBœ•@¿ðÍÝÁ4À±¨Ñlo#±SåmÍ„…¨Õð¼š@¨õÒ>_Ûh™'ì¸gS˺¢r‰ð¼u®kEÙ»NË(‰‹_:Ûw¡­kftš´±p“è@¿íýÚUþ©Ø•šÈÚœ…n[—8Úñëñ'™|ÿ×…äšSþˆ€-p«2ò!AíTÖ8F…é72ýåÇÜüùîk•"'l¸—ïRƒòú’µWIB“ÿ*1$ÊÒÄ<©ÿWÑ9È…ÐÚ S.[_éâ±8¿9œù—ôÑr(6×õæ'Åû‚à…U\˜6íÜC~ÈÉÚ ìVn[´Z‰RÅoâ—î¦Mºf7:bæ`@e|‰XgAÚ{Ô…ùj|Â0%‰p:•%"Ê3 #ÎMÀ…èÐ) ]¨'¶ìúþ¾r4úd˜^åcmƒÑçRëOú`3/Ë÷"ý~½Kפ9}›žÀá€]†ölƒA¦Ø#8N ¤Í™ ’–Îü½WlgUÆq6a:!l¿´Ü ö½v6*/ÆvdAžÃUÍâÄñÞ ßÉÀnÍ$Þ…âKEdAÔ½*¬›çPRƒZ!pTš˜:°9fáÙfzùâ ñ;AØ:~nÀ½Bb´ ¢O#Ûƒ‚…¸N"õ¿ÚN¤21¿ûô †n²!t¯T[e8v›ÃÉìØûÅÀOggS€(WŒ}x²ÿЫ2 !! "!" ¿ö[ÇгN«d{ük*Ï~â•%ò³`¿ô8UúÛ½e‘ê®É‹‰õÝÜÇ_Áªði&»¿óPª Óh©áTŸbåß«{ -–w©¿ðhøà 4µ~1§Æýâ["\ðˆd[×(H°…ð. ~íœù’JXÓŒ_ o0·|„ö…Û+<0¦^pFo6]19yÊ3ŽÓIe—‹¬¤RÏæ¬ärƒìÂ|¢?•笇ÀH¼ƒ6u1>¨vÀô;æwþ²ÚðG ‘¡€¼zˆ…fÔƒPÌ^}!ÇD Ê jŸùI H¼uy‹Ñ_Š…‚†QÊ›œÐä‡=H§ŽÌpàÛo`¼u­`ìãE ²ð^HúŠüsga0@F[1€½žéˆ‰MñoÉ5¬ïqJI&ÄJ$4*k솨¼æãÑ›qh†£ty›…Ù•ë6u–Wt…-f¼kðâ?†<ýe3¿GlGÆÿèú¼P'˜Î{Û?0K38UèÆˆÒ¢÷a5Ÿ^4Ð9ß`¼’TÇpq$(† h¨#·_o!7ßÎ=žLô¤°¼„ÞâÈ'J‚ÍcÇK1(èþEiàzË(®È¿ð̵ ‰ï~¾sš~ÞOähîn]eŽ>…Ö?Šªc‹ €&œïn&4|–˜¼ç S$ë¦À´Â]°ï²>Wn_#B‹£ ¼Ÿ $ú,؃‹ø¹“ª8~m],Å|×'6Êã#¹h—mgr.…^î¿ß§‡YoÀ` —k×ø{ÊYv‡arë(ôO+L¼voâ•y¬ïMÁˆÕ¦ù¶NÓoYHEÜ¿îM©*ËØWƒæ¸ë‰Zt«aEuÙö;nÄ@¿ï%rL…^• ѽ§é‡3îŽ4û7ßÜ3Ó”Û-€¿÷Ç#äÎY¬ÁØ v¯ú¿™4J{bQJh Öp½r¹¢ë·ïY,íÃdCË÷ÚFiÒ´x\<`¼Ÿ2AlòßSœ²xý–A”ݳ ¼wÞ¬}—pöÒ0ß-pjÿ„ÕdüÊàЊ߭¼u„Ý@°µ÷ƒIÐ%¯F}Ydc¢r!ªÞ¼vm#$ÍkÁš‚ ¿ºKF–<°Øqvùpv$®Àð¿î<]µX´Líáqi¶`lA½ÊÓhÆõM¾…Èûm‰Ú¥ß¦øÕ2†Õ‹ã…é! ̸ú¢â/Oý”GÓÅÀ˜£)zX‹1î8¸†¼áÐV"Kü³ˆ¿óZCâ ÒÆ¥Pâûk¦YÉ®®g­{w»+!„y¿íû‚i|”&6‰>©­ú¥WçòÐ><ä48n³¿ðËã0â²Ä|Pa>‡lPîI °ð¶Q´úˆ ¿ðü¥Ub¼=a|õˆÿ]fjú¯g)'kWÌ…ð—&àšDÉJøÞC›K`>6€yဘAßa‘šR_ «òn'`Îཟ އìÙ\iÏqóËVZ„É„^ix¼ó¤h.aib7žoΓblüÃÒÊæAÐOggSäWŒ}y¸Æ2!¼÷õ|¼,M€$Ylg•)ÖPw€5V&ÚIV}â½O¸@á>ê1Æä¾'XÊv¼²Ð–FU€¿÷ñH†4N#¾b¥T””!ðí¼Í-mh15_ép…åľkzlDº.ÔàI¿˜©àó‘˜K }×_Ê…. §Ô<Ð=±y .Ö…é2€m«ßW¼Å ™½’˜/…èYŒiìŠPk:¾NK%ÂÕ—í'BÛF–}`ô~û—éØÀtùü™`Þ_ΨÐVU–4—½ã}&•É#ì/ß1°ùs­=è…×:`Ëã‰)¶}÷áŒÂ¿e A‘˜9KÞÙµLyî4ŽßŠ<úmÌ Aˆ˜ÑjðíG}Q _i¯1¤ÿº à—ì§Ž'vrë†Ssî(Ù9Y®Ç7—šŽFHÖmw1sÓ£RuCZ§§ìh…´²°5±wíŸkÞS!ìK‚t2_ƒz—˜³ehÂ4Ët *±ÒZ²¼À°0…í—DXøŸÃÈoAŸD¾§® ¢M˜8.îS¥ÓUz Sãä4€…Ñ-ú^Dsùw¨übAOHýíLË,—ù«±dÓ¨ºËy9/ÀÄ Ó0@j‚°˜8ŸFò¹•µrÿ¯Ï׎F†ê²ƒo¨…ßRÉ4nÁ„dÍÙ›Üò&óDvyv@…á&í×2™^¼‰„©`!é×W…ðk%jÖ»W–¢0ù÷ YÊNv|˜6éMMé_"rê=Ö0g󢸜—Å/nF·¤§-‹ ªçôE®¯F–¼u˜àoÓÄ#Üßµ¥àïxa þ>ŠfåÀ¼pçzÀùEÌ´"ÜRŠ¢ RÞ;²(ϼLã§3¦!r|†QÆB8ÓÓåF¼GYJAUë}|·l|HÔc—ÀTû`zŽØ[—D€¼lc¦bò¤᪀ã 7ˉ/˜•éZ$hnx¼uMS!¸ÄìãÅ¿¬Kv|1Ž–ûךÕ¼u– ~—Ï:=£‡˜5®¾÷ÆÅõ“Ý.@¶Æ€¼hÿôdh•@­x¼„íæq®e24 bòsˆoa±HR4ua¼vC¢·DA͆h<)¾qÅÓY+âÔ(Àµü0?¼³”¯ËŽÙo5‰^úùUG'Šbñ‡qÁ4½­18ØÚH4€¦{?†\ÍGßJ{ìúX—¯o¥¥ªlnsê¹9¯M zà—·ûÏ©f⸔ð-Ô-×DõM©`…µ-¥ÉJxÑ}Õ‡"Ï&:Ù—šhFëÁ™§¾I·ÙNbƒO;H©¼Š7{u·€„—AVðóz¡°Ámc9ÖÐ6D¼±ge5váI=ð[ð/ñn^© 8³¤‡RQ¯ ¼çìÉ3ïŽe >n47°Þ6K®£3B¹¼Ä*Â[ YEº)¸ ¥çùù c_áR¾«€º¿ïìÜ‘«2£A4áλ@9“âyGïNÒÔà¼[k«%wŸ€U²ä΄†ÆWæÑXs¼,’–‚ OggS8åWŒ}zj`@u› ­Bgð`µ¯ã rtpengine-mr12.5.1.22/fixtures/opus.2.48k.96k.music.ogg000066400000000000000000057605151474347554000222450ustar00rootroot00000000000000OggSýÄ n˜Q¸ROpusHead8€»OggSýÄ nB0ÅÿYOpusTags Lavf61.1.100encoder=Lavc61.3.100 libopus2title=Kaer Trouz - Falls Through Walls (80s edit) artist=dotjotcopyright=2024 dotjot Licensed to the public under http://creativecommons.org/licenses/by/3.0/ Verify at https://ccmixter.org/files/dotjot/67669TOPE=Kaer Trouz TPE4=dotjotalbum=ccMixter date=2024OggS€»ýÄ n÷Rªö?ÿÐÓÿ‰ÖÓÚÛßÚÒÔáëùþüÿ”ÿ÷òñÿÿ ÿ·íèóöìðÿ«éßÿ)ÚàÚÚêãìúøóÿ¨ãöÿ ÿ ÿü~,[Ìfâè–0®,íD|"J‹:tO2èòM:6SjM® *RòY?¿Ñ¸ýƒ¥'Y·<ò%7Ìu{îíc€URÕÝl DClÏûɃÍCCzeiNDÃ!/(ãC1 dŸüÌ×½o®Œ Ð[ÙP»1éRaíL¥œ„"À)l?ŠÚHÿîÚ©G¼ÜbÃÐÉJ ÏÊ.èCàºÓ.ÎÖm”­ïh’ÿß7S=³èÞsìygxÆ|©¿b‹ü)sð ““—‚³1ñŒ9ç,Ø}GÖ¦ ŸÑu-õ>7ÍæÝS)Õ–1Ê53Û™hqÐfƒ tsmžXoXF±´©á$,ÔÓ ‡R¦/GÛŽ\¸\01éi»7ì‚Ì2ç‘k àV+‹Îô…™Ëç$ …±¥»t Mïj tèÇL“Æ7Õ²º. gºÏ; ëÚ!ª>ÁðÝ£Ÿ=z•`<-‹ ­cužØº¨ƒºæò&©¯¹w-§ñ¥X‰Ë¨$gn¬ôËÆ¨Ë蟊ag?؉Ï%A¦©Ôõ,Ú#9Žè?Í+åD âJ'üX %¶:jãì•ëÔ"&ùŠŸo” Ù_Ê’4ÝVÑ¼ÐÆíûj[0[ÕN`©%ó²•ÖÖö†jhÝñKØ£^KÀ CíAó#˜TC¡üÅœñÂSÆ{ùRf] Iמ?Q˜xÂì3c{[j1Ï#?Ь(+Hð|&†ÿ}ö½TDㇶwZôÄ‚A+¿‰³Â[ cƒ|é3T‹CbÿŒ(#Y Ž˜iwôNõy÷x]{VGtã†õ· 2‰²»vCïužÙˆ§2‚bemü}a1Õš@=a+Zc–»Vä>ª¡µÐ™O·ë6•Ù_l®#•?7œÊêímÔ±e7øí‰™°{kVÆ¥¹'üŒë<槇Jë…ûŒÆ'q]îÖè¦TK*š˜®%a#ÉŠn3`l»#?z 9\Wñ(é"‡y³NšÈmk$Ð'¶&LƒŠ9-`î&iý7Í¡'pÅmµÊïñ®Ã¾@ÇTüÂ1¸F$²ùîàæ†ô,yw“Ö~t;¨¡ˆ‡mõz]†7yD\¡>Þ½x÷á6íÉ`tœ¸Û`C±–J q…Zúl.µl‹gÏŽfÇ|>I‰Ówû-3Ib‹ª_ZüMÑ.‚y`„ØG‚<åñ‘[Ãv+6¶õù«4ÇŽ,ÏÌc\½G{Ä:Tsa=¤gäm…µ25÷vzÚÔÀÅDýóú@Ù‚£:¿$¯ÓdÔu^§^&j#~›Œ™ÿVfÀ PßåZºí$1»¨ 4fçž‚¸]ê ‡ý Ýˆ t`*¼‹d8…pºõËÖe ƒ:GëŽüçò|ÅW°YÝñŒh##v)0¼Ð­ž„M/X±Y6ôÙ`bû0¯Cs“ÂÊ—üÓŠ¸§ghÆJJ5!©,ÔüLªiw'»;ÝJ7ïªdQf˜õL&ÜùY‘”!J2×'ð ¾*„õÓv¢2Óˆm()mÔÝVô\?…ÖeÆ—eêof¹çFâ?×þÕ¼ T—èŒÇÙìÍÏ ÈH—\·;C¨4ºSëßÈ`Ô€m\.™&wk?Ï‘·ê‘ÅÇ}·;ëcM¾ªn|‘d_{œ®“v=ž”Òºè€z ·úà+Ž:âh>jFøs•UüWæymˆ½«ó•#3—¢ ŽÁ­Âè팫ÕàÚóPû$²o9.þðK‰1SÀÉŠ ùw ¢,‚íÎʬ9p±#¨ä¹Âë¬ ¥?ìÞÚäYívב-s34åøÞc>æÍHUŽlœç·ê¯×t㩊¾AÐÔ­ý‚O¬º[½ÌSíe%üNx»ÿ)‹¾Éïï÷üØ Ì]îðóîY(óWé.²& 8 ŽQó ðÎñ’ЫcÜ«þ'¨Öä)“@òwêP´§»é&-e­ÊB!T€±ÂUü£Rü)þ“(S!ŠmTzãâúA‹’ÉÎ¥O“¾º «ÌTõ?!“ÿ^Üquo‘T¦ùߢ==úû;^ü°l@XIøKŽdœ¬›qþ’[ Ùµ**ÜäÐ G0"W1æØ’ŒÀfß4Hl™ ÇÇ+)Yëa3ÊYÄr!1ÎS‘m"öدºë“g[|$™¿¤³ü1@šþn!‹ôU@ÙªûDˆ¤t'Û‹UÛ…W¹Þ8þ•çˆ~V¹[}æ†ÀjØ‘ð‚T³þ0ÄeAÍ]dxÞºÚ»Iï}­¤øîE¥Æj±ðÜ&ßx¯'ß—È ÂñK”Öz l=À¼Šä[¿–ê9/ØÀœ² š…vEª9"ȱ5eaB%¥éya ‹Ró;¶.ë]mÖ†ˆ)aAg[5 ¹Cy,®ˆ¸ìâ›Â¥ÿ»fMŸ;[èæ`›XšgãÙg 8rÿX –Í$­¢„.5JÕ¨ü6‰õCØ)$–§°üd¬„¿Ö§lM‹=EµŸc7ŒvÃØ8œ-Ì’ƒ¬Í‰á猓3Ϫƒ—½Ãëÿõî²*RI|¿•Ï3õ`¡À°+ÝÆŒ;¹uàéü»Ÿg;d3L‹t¥´ ?«ÂŸýz’+}0ÌW³3ðüýk 3Q(ÅjxÄ"ÜPäçÓyl–;—ÆNnV¾±”u7çÒ”ôèüù#\cç‘3…™xt£‰F{@ËÎ;!äU-Q½%€-iý`güLªŠMKã-ú~óãH%±Í=C9,Ô3‚ôžñŠÁàØfÿù¿oòsÿ°~ÒkMW½¹ÜˆI÷(=çÍ_•{¤àŸé¦ó/ípI:€âø¼Sj é¾ÑÓlõ'+ógö8›ËfvvîÒ,³CÍûJA¿xpÍ|$Ò½ð}È8Ñ7 R[W:qkm›êFã€ò(öé!i›²˜!Ά•òÛ‘Ç냀a&æ²Õ&ˆ´uÂRñÙ4‚T‹)Ð$ÙÔK.ôô,>·üLÚ̼îæ÷Ö=ä8sbnÞàqþ…a‰veØ.|LHMcó žvåTÍ¡Zë`÷iþã‘= _‡cÈŒ@pÍ)·Ì3¨aÐÈ9G8|wâÖIJû~«7ñ{/þ·îbN¯ voü6hÈ'Õ:¡½ÊË*íÌæ¨‰MÃð6œ-l»[T¯IÑg*šIý‰6zRow?¨^  ˆƒÉ|^qXö^ÚÙ-òå< ^b&•˜|gÍ>¬»N‰\ˆ àQóê73®¡š)D:m½B8|È|¼ímæÎ+×ÎuÎ)þüJ5€¯¤ÆA}ê1q —”ßB¨æ•ù~ã;þÄÐHƒj¬õ¸gTËku3<ÄéU Æë¹KÒ8=Y†pµgxæÞŽ¢ùŽUißZL‹¬CÇ<Þ¥A$Dê³#;aø¶ ãîeó±?6™;Ò:—xÙÜßv‹$¨/ONJŠ%ïöMô‰ÞóZ¢ª¥Åè÷è7 öºWFkÍ¥x&Øãýド`—þÅì§VN2È¿›ô&M-©Ó÷”JrfÉwÖ®ÆÅ¼4‰‡Wóm Ô«5Ùu%˜ìâX|©Sh _¬x÷ÎYpŰâúÈjüL¶]I.ªÀk©P¯|ZÈ¥rÀÔZF8>Äv£Ö€<ýâ ¿_“,$ûÓk23Û¹§ÓCó™ä{S]ÅìáW;žÖ÷´G“Êv’p+ßÝ-Aú%kF=q‰çÍþ:Úª ªö”ùºÎ¾ÊA­Æ“‡[èÊSï¡bí¨>,¬Íí!Lâæ?¢õAä×Àtx¶ï_Ì:!½Ð Æ”®‚#ÜtŒO}ºkÿÄk[ŠÒu¡ÖKgÒKòQ哹úêžHã ¯¦€ð_Ä!šÆQ@iD[yXÉø‹ËŽÊ+.à£6;~¥Že·ÛxÜÄrK…pŠüÃß(ô®ÿ)„±}cQ:Å^ ;m¡< þ8÷>Þ\²?ûÁßÇPÙ. r4®'¡WdÞ–ÛæSý„ÿ3ûµ®36±#û†mÚ°ÓÔ:'ÕbÖ»e3ɧîùñü+ýLÆÁ–#¤É÷±úôcöï4¼¢“¾ðu.‰Zm•U[,( ¿=ê CU4G“¶$ˆi÷œ‹8óoÙþ·ü­ßwˆÁŸê=®bGÎñ>§Ó€é®Jùu28lëÕÊS¾‹lìíë¦ÏoÇnAåA0julÞ"FŸŽ¡âÇB¨ö° Ÿ”µt2Ýäu^DbzÈQX[Þ‚4jk#³6Ò40f§y!üLªFÌ)úk7¼wt䀤s:¤ý0z³¨%ÞR]õˆlÀ¿Fù§Y—C?‰¾X.3¬ÖÊL]ämÇ(f‚ÖŒ6¡ ¸Ãˆ6/-ÍÛü.t¢Òsÿ éNÖÓùf§ÍÒ¦òÍa%ËÂ%£lî a·‹xÇw7nNK²Nü¬Åù&·ør‘c¨ïbB2 $7ŒäH©œ×·^¼»[Ö|žéý•¸®„ù<’½ÄUº‚î_áh˜9Ù”†¬Ã$%ÐÛ 5°>Á$­v¦œ6šŸƒªæ0…‚•˜fk²wéÖ’^Õ“V>—h×Ü-Šz«¶Å¯fcü|®X¦´[*Ã’¿š;ý\nѨp9ÓQP’ÁðgnÉHEÓ¼ƒk?}}Æ¿¤Ð±¬·þW½´«ñ`Í`\燳Ìç+OÈ=¶Ûן‰Û-¸vv>üe0ã£f^ödÖØS})Y(E¬Ü G ìQá½;ï0ÕJÖÚå‘L¦Ó¾‘'2m·é­=•œ8Ñ  L‡—ž¬}\ÅÀôÉ>h¿.”1¿Ÿ¤5';¥Wõ'l"ÀÇŸk²vz9¹–IË å £%ŸnæMÜ»óåìü­:¶ùãÔвȮ£J3ÕÑЇy;ù'§vì3‘"å֗ϳ¸]õ]ziwH¶Ïå¸rµMcjY¤¢ŸIÜå¦ÔPk­°ñ¸+µW¹±ÊáÕ{ÒÄÎ/S˜U(cáÐ&ÅX¯ôð8² "†ùÌYÂqÝ%rØl!B‹-D7º–9¯§l)⛊æ$-)F8š åÓeò%Ý"­œ‹a„Ã_F¾éÿôx6|¸Èê]œ»?+o×ç¨=ü°É@¯×Ÿ€¡´%„£¶$N¸o Q+RÑ¢qÓbÿ\¢-}1‰[b¦òxBö“x+ÐÊçG oÏ ëfæº 7ðIE¾vr%®–`ówܯõ|ûÀJñv¼0¤”ËÑÞ`)€¼ÿ*>€˜@B‹ÜØ<®C‰ýðîÔºf+Šà¼2ηm&ªgb9ž°´æôÙ†,uhýs¸!ý‘•tUô¡D<§þ…ïg›kñiK»%Œa1QéŠÝH«;”ˆ-6n*î00xû«êxäÙ:ÍC%ö[äX\¿*&(J ¢Ïœ/ÇÍE¨cýbxÞõí ‰ü¯7T Ð7ÖÁUйpÄö# N÷u#7Z‹šg[KsÏlp\dX¸ÔÑ(“ÁØqREÚ^Ô ]‚C-Dä»%xA÷Žaªq²ü§†wm‰uȲ9ž ¥ º::|ÃósóƒµF\5°¶9AÀ-Еò5lm|ð±Uj8ÃoÙ3_pÌÇ‚ãðBqDÔÑõ©<ùlÐÉFëJ½Ò1í×@j;•¦¦õ"ôúZúÉl=Í!{?ƒŒ¾XߟÏŸgvGlôa ‘˜øŠ õ”9/ããYÅü¼@IkámÌxë1«7^÷¦×Ť®ÄLýÔ©‘нŸ*¡Ì‰ü°ÑŠdÕt—ÌœæÏ¦o¶<櫎"3WìdÒ¥8wB%d¤w·Á\k˜óÏDiI~± &:Ë^õìÝÚS€ÕG¾ Œä©É¨öé˜5{t™ê†Ï¥fÆ,ô,KVŽ&v^µJ‡}Ûf߈¢TÝæ?øïéáx"é\ÃÜ&X¬*BDíœO ó;DeÂÜf?rNëé¦Z³Ì¹“NQּЦ¹hK/Y2 îZ;æËî½²\N¿ÆÙ ,]ûó Wé°ý#Àñµ Qä—cÚC.‘ßÒ,`4ó±lx‰üL­ v¹q© ±˜ÕW¯z}Õ¸KÙŽj“­•@´T]\òi|ÜȪ¹(òÛ ”tAEë‚~ØÐïJ'ã2P…$šFˆž ™µžmEò1Ùž(êLrþß ßó·ÖïÁoüž^¿ùaD×6/Œ=Ø8ÃáF;Î…åׯ<˜”ù—û(?Û»äÕyˆ ‡¸•¹o²Üª¤ê4À†S?JctTÎF"QM¸Ž‘c s„ gÁu`³OïmÄ#¹Cf© »õhð—`£ Ãnñ„Œ¶‘¿¼-+EÔ>VRv¦ÉÈ’¾å¯ƒ„It®~bµü1­i#ƒodõJVä+Þ, 1«/$Ëý ŽnJ®FÌiÜîA§"ŽŒ­˜ G¶ÑÜçPvs<‚'cß•}©B‡Iøaзr¨aî{ávüg¸•é×J>&eÝþÕ»£¼Àꪫ’6u½¸Þu—F]”ÜÆ•f b5ç%Uè_ Â’0>` …‡ämY!ù˪гÛwC1ûÞò_jÕ‹Ù#kâtÀ6Û¢+‚s¦7Ö#^¨+ òMÛ‹oí‘ ’´¹Á©C/?…\Ó(†#ò®HÀ jÁyG&ÛiŽƒ•TUõX•íÂÐcι’¢‰ÑWèFB(a‚°wüM2îʳ;AñÄ&A8^Z+Ñwá˜dµwÝ+>ì!)7x‚p=§ºI®/3WæÍñdÂOsïÔ2.8KI¥obúù©Jp2âÖ]¼`{ ðp}Š\rx4ÝÏ]C¤Ï®ü;s+x¤~ÍÍït ôÑ‹„"9¦›S¶„ùiT±6 bŸˆ˜òUÿ^"™d¿±=£Ý2´'Z›„VƒúòÄ `8^ýv%À†\Ê^SÆ¢Gˆ7Ÿ+ðxÊÈfö,óä'R®³áŸèWñÁù1~Љ©¸Îª¬2ÐAÀöÜx¼Û(6ÀP' 6v©¡g;X‡×‰×[(§D/?¨Lžn~YW”Ë.ü|ª| ÷ÞGYM\™³cù»ÂDŽC£Ž)ûrð9ãf3Å]ÎCm oi36³ªçe‹A÷èD=i*ÑBä„«Ÿ‘»èÂrª«Îê*°zG•fndCÛ7ª}£ÐöÔÃÎ=ИmþLл¹Ä”c#ÉD¬Î¤ªÒÁŽnÀ’Y¯oáÅk¾þa;ên¤6QÿmpïÌÃÒ ŠáÇd’"[y­ ¡5&X0¹¼?áIQê}å“=§:þu“ÃÛ¶-]°ý€Z盛q:´ˆ(FqgúlÒ^ ³í*^OLû$Ú”w7Ññ^érvýQA¸4—\˜îŠÑc-Ô°E\¤Fš AïS6y|«Y ¹ºê X€IÔ‡iY.ãHØbiÝpn8:IéW(Ø•'&Ñô‡ÍeŒ†Aà}H\+· ðQKfc ¤´+ýsUÇ£Ï.~URgK9!âëñ£™²磔ýúC´ñdÉ_°:@J¥¬‡aóƒo»Î²Áy§Ýn–µ9¾‰÷ófïl7>ÑMå3î¯É5‰)¿eÑ?-Kõ1Ì·y$šØ}Þ¹­ieüLØÞ ¨ÞkêÀÉÝBL‡kIkD£‹Ýäó8»Û ÎDLþ­m~¥$½­jæÂdpÌo{Ãð´wN JD)°_Ç&äl¹Ê¾ö#*Ça)¸9¯Ñè˜_C:5V¤ áº¯mO­¾¾l˜ü²¦³Õ³eÚÈÎ`Ÿðœæ=iœ1ÈB7¦¬ñuƒ×²n‚æ1Hêõ£ÒÝÇÆ"ÚG°“¹lLËBúæ[ 1d_MôÁ/£ŽLu¯xèaRÝvA½´ëè(yxgAÒ¶0fb2ÊZz¤3âUä–ÒÑÓ;;8 L.FK~¦~ºcõ ü®¾+z‹®å{iï<¿»Šv 3µUÐKBô±]uC«W´ €Ýe÷«éôÃÕž)"M:·žÜã¾ïÌûÉÙ瘟rMÜðU¯±í ÿÒd¯ œ_êÌð£KmmžÄëdöP(Ëèáªï$¶2Ø¿NF}öë ¼Î,E™ßáÜ)$àÄÊÇ ¯×;á·vÞä u­ãôä¢åòr– 5 ìN¤6 !_T­.#Þ~w¬m>VüŽR»B€6ƒ´2¾ºìQË’àVÎÓÉsñP4@ÿnDØéþ;¿üoüJb¨PñÁ²€ A Úv¢/ÖX ÀQ9!Ì/?¼¯ëF¤ØŠhQ’!… >„&µ—Ï4ÉWÌ¡3âÏ W½{íˆÅ㱻͹tŸt„Fâ” Ìß8ñ HÇ¥W?Ìu|R¡6.éŒÄIŽw[ˆ˜½Å¦J¾›RbòËs5¹«ÞV5y/)þøÔ ¥vôƒ¾÷ñ×”¥æe8½Âvº¦9í^‚=擊4·"ºËe§} ÊOŠƒ‘•B㙪èfêì +ÈìóLEí. 4ˆô_ÍHoZóŸHÝÀåä,è#$ûüM4)gÁòvSÁÌ5š¦@EMŸd±•²ß}Æe‹ÊötâòÕ½iúMIFËæà“ädœ†`Sˆ›aãÝ@#êƒ}yµQÜXQ¾›Wò' hSLâJo¢è?1z9ùPcÁj Ö©Øf¡ˆ^2JG4±Ü÷Áï‹°»™·øò—Ìÿ@7 …ÐMÎ1vŠ »å»Œ†ÿ@‚E¾þD³²¤Ô:+4ÝÓ³í{ ŽãüIw†Ë"gá­¿ƲÜ6Ú¾ÁñóºY0y½Œ%xœ¦' ]9U zt„¡Þ³p>QMjU³4@3=ë†o}Ó¼Ze¨uÈ„·Yë¶ù½Èžÿ84Áþˆ›èî­V/.KÚ‚[G{ ŒðHuî4£=Âà»`©aSϽ¤[ÕØ•nÓ°9ުе{|ÞOKE¶í:/sêMÖØ¤ÊíØæÃüE¼Ä›T µ’Â" •·¡o?ˆ—’ ÉαY{òº»,%ÀEòª®žˆt;VAä…‹39¨}±ÔuìFMYœÖpadN"ü±GœþïF°Ær50“5‰·ãAÂ"ã4Y;…$éÅu>r¨âÌ“]׮ȼJÿ&¬¥7<\;2Á®ˆ¬Íö7¯?êÃ¥¬|‡ÕH“£t ¤ e”¬2~ŸÑ—†©†¬ m&L7gQµó«©ÍΩ»È*/1n5»×Ÿ±¿håV(?G]¾¥°t›ó0*ìèoMsV ª¶å¥Ø­´×´ÌŒǺù¾Œ/¬¶#ô¡HÔð 2MZj&¸8SAÆÎ•›dõPü3œ±ò‹MÚâáV‹v†ÀÔ¿Æß‚öû¯#¶ |-Phêò s© ­ü}^“Iø3+„Û1»&€Ž?e;Nx,¸ê¤¶Ð´-ÏråüôoÏ9CŠ=üJDÞ®hö§Mi™2bgÕöÅ‘Z×Ý…û]FI…fò:~È|'¦_õ¹‡‘ôJ¬ðÇ•°xŽŸJ Þ°™§"ñ*xR p¨Ý²Ïß®sÂv›>88Py¿»¨þsí ú|í×CâuŠ"²51ÿ<Š™âVLÞ|šÅ>áž…ÿŸ„tá´‚Ë Í”‘ïÊ´°KÈxÍÈ\£{£)#j÷– ÿ9Gäð²yt&åE—bQÉØX‚á;XgsçM7y•XH¾žñ úŽ €\ʶCDYÎÆŸÆ¬_•1çÉzI.9ˆW'›f ÙÉ »ýÚŸ”KZ—‘`ð_‰þ¶%¶e{@¯ýP%¨>¬Ž‹[ϧøªqŠ;½ì虂 ì†%°sŸ)4eý(‡)“ZÖ¤qøÖ ƒBÿã^lzú­ùiîJû’ÁÝ Í 4 B´XW·@‡$Dà_\øGrì /‚¼¬?ŸûÎiK§Mn·ÔØ3²õûÊü„†-_ÐÐgq'¨â¨Ú)‹‚·CȇLº¿Ãe{ Pî[i<Ÿ,½Ù fËÝÖ÷c‡ ÿM-U±…À©Îm¶žëì7(b=‰;¤Uë²AÈ¿¸b¤Õ¥ÇxÚÎãö<#’"8Š.¯9# BÆ¥ "êí€èTFݧëŒ;/iŒ] <«,nÙ¬äXÅ-ÂÇÓI}y^&¦õæÙ‡{QBPàÁp)­E •‹j˜GЉW Eô+ã¯Y W<5e§^bèb;èP>̈Žä"ÅÅ÷¤.Àº‚¤"ØN€ÀüNK[ÎØ½baQéÝd®§ Ä#¹"êÈ–gϧÍ:ç"/qÐ-ò‡ƒÞT‡>…/кð¾ŸÂ“´QnQ«ýá!änî þÛ›a#[Ïzˆ¤d¹Í, ãX5¬æFÀT©½„¢Yp+~Ý¿ vjSqµ -ŠД p|eè4uUBx®žÜ? C,",ÊE”9Ù½üþr^æÀÍÖ­qVYô¿[ý¾gXdi‘+jZŒû‚,®?«”Aÿ /© &óñºÇ×{æ?hjQöDB®»ècOY™:ü|´ÓÇv)8ㆀ¦ˆÊ@ï!ù‹¬Êæw¸;.\@9ÓÉØk‘Ùèéi$mW›ùɘ᪖²ž]lÚsÌ*¸`ï vÈg¤Af]Þä/Gµ·6z´ˆ—×¾¿¼‡^˜?NÈ9lWc´¹&è >Ÿz<»:ôíúæ¼}Ø9Òw×2YL1„&¯…Qù9 J< °rKÔÑÀgê*N3;ía<ˆýá‚Æš2rÏy[Þaðü&ÌÝ©éR+—¹h0èÏ£“OcnNŸþNêÚ¼² Ôö· Ò¶éцßõktk©âC.·6„ª ‚âÍxV`+ýÐöUØÍ © [ º,åšó×ìSÙšìÉÒN8Å÷?cZ°!’9L§,·¢¡mORü°},¯öø<Ì‚‚ΦtKüÿ%ÕÏ~.ì;b(3¾·`û¨Vîøœ¬Ý»÷n›™hÙqÚ10Îüú½Áã×NiþᇻƒLŸ—™ªoñÍìOFû¬É"òÍq¡{ÝšUšÜõ PB{LŒÿv)áÖfyój$Y:'[öj’Ï7àÊAÀúEÙee´wÕ£äÜÍáøø}UÖE‡$´­•eϺgˆù×Q-XQRl¤¿cI~ç«.ý°tÖp9£q¬p›#‚ñ~v(LàÖÒ˜ªà–>‹•‡õÕ2øÐüLÈ×óÜ8Þzåé-ŽkZ ÓI)j":Ú—pÕkÈ«íe˜í^ãoÞÚ Úè`Ô¼”µD{ÐúC‰¦ºö½ÇXj‰ç—B`rFì7“ú‡ÿ‚}©ân)·Êyø…?3¹6ÚjCÓz§’ûß÷dF¨"„4µwáCeèvdêSC Zy]Jçujw& Ãü„Ê­R4mÉ`ÐÔÚ3Ðìü÷-ј€ÖCÒÊè[ Ók|?â<†¸@*ãå³€*xõ¦aòòË%|²«PD¹¾@<Òsuãé_÷ÅÖæÊ–H‰ü/V´™² aü:ƒ]ÖèØ.®ëúf«"‰×TC¥}°V§jF¸ãÈYøQ5ÈñVYæœÉ°k³Ä°?Õ-E¾Û<Þ„¼Ûã²"õ €¼z•1%E¾RéEG©Åvƒê6Àç‡ÂÍû¥¾QðœÌ’”»LŠó“´ÔW#²à¦áÑHü,sÃ*‚Ü¿¡{L¶i¿h“ÿéK–ªê^BâvÁä‚ÍÁçäÛû›*ç!GÍv~s d7tam~PâÓ[ªcCÊÍS—–Îj‚Öìl$ׯB½;À\å±µ~=µÁªª#ÿü±˜H»³Îº“ TÊã…ï’ùÃã„5÷‘L `1 îî}¸÷Á“»2ÓŠá"à¡ ¶;#Sùý+3YõürùÂh8#(Š *z‰ØIªOÖ{s;„u±8¬pÙ/ÓL¨YŒÐ±gùqs âñ½çÞ˜þK̰ã,kŠœÐ?CFí^8eNuÚ“vòtùoUɘ¬‹ëN¬uI[׎ïÀ—îwŽ66«›¯í›\Ù`_•©m"›®’Zùïó;„…Ä©<[«ƒ|‚>˜®R¬Oaµ-†2é)¿ìåY ä¼¹z“‡ Þ¤üLÈ¡6¿*šxш0Ú¿ý?òòèýOlÒòùy_ë𡙎"Ÿhb¨Õk°]Ä<Þg(–€çšDêÿ¡ÄHþ(®•ªâ„¢|º‹Ø= Æ–Vg`̨?-TQ¸HíšbY\uÅ´å±ÁJ‰Ð ¼VZÇÉÚë “æ’Xë ­ Üø˜Ó`#Û&°¶mµs&§6„ô0˜-]Ìúcà*Ýmm!?ÞJÏ AŽP¹×D€¯ôl– àè­ÇÃÛÃ`©Â5-Ïø¬.HÝ| > ÛœèéÑy/äPjÔ øTLJ’6D6BüM$¥âôÏ`Cn ä¸24šÚU¤{”+š3Ø c¶•ÈÜ0{±eGfËì”!•K#‹oèJ7 ˆªN«_޶œkÑ4›·Qé5R""›‡}—A ÊÌî4^f‘8¿|ÊÒù&}a! †µÍ¡áèÅ•­éúŒï î~úUKÜÄ7_‘²¥(é~å/øSuPqzî¯ æ/Ü]3p=¯Òïr{t®};qð‚y©‹3öÍΤ©3³JI+ ëëj܉ºÝ¢ŽD²+a´’þ5\<ñì‘“L7nï\ýsiï Týv½p}®Çjû-Òfò2}ICf‰ÁüM"Ü^ ëV«ºMÍиʻ¹<Ù!ñ²ø3I“uâÇôDÒ¾½JÇÕãMŸ _øuÌrTÚ?gk¯O»é•ÒØ<8n=×j ¤ö§wXöS“úx„Èr ­º·­oÏ׃§‘†&+ù~£¹å»æi¬}*û,k9ñV‚¹Q’M'<`zǹúÌΈÌOã3Xé- =Þ™Ñ+Bò+ð¼òôĬ&+îåžïˆVÜM‘<à€£š¬+!Xó[+Ãv¸Â`œÌŒg¸H® zägH†á½īeZÒfKéþPÔ°%ÕÓüÇÍ­BȰËÔÍŸ%‚³0Æ[òºùW9—ï †Ðwkîz³{ctÑ£hg>‹¥d¬8¿»@àX;'³Z9v,}‘øŸ"«¿¶'¢ûio† ²¡is¢¨ùÂ[¾çlÙ‹rºÍ¥®bt‡ë·ö¸íC/â7ÄJp„­V±ÒQ®¶°4eíµ´é•1WegPÆ+¶ü¥D·úéÙ#% Ü,% ? ·Òa#C“«>Ë3Í4#¹TÑóª•w%ˆ8×O0Kü:ö—T·S;ÕeÔ Ô ^vJt«kÉØî¾A:Þ¥ož4v«:)xÏ6þÏøÜ™¹¯> q^æfb+²Ä¼hä#ì¬ÈÑΛ?ÙÞgÓÃÞ:ü±Ü­nh«§cådÚχ…âií9C¥“¬ýÕý¨u*U«ÝZ‹ÝÏ–H£X·èµqºÇ+²öÄòhf™†þ¸Êó*%%¦¾˜žÛ¬…ëjÕ½˜ëŽóˆË!2]ÄÑO|=öImx}úɇAFf2‡&ÚÊ+´Ûµ &ÌG® @vÏþ«€&æ ¨üIžúˆËŒ˜Ìò©£ÕàúaÙì]¹cêÚ¸Úû ”¢÷}…Ö1šŽ¸ªubJ<Š‚¾¤¸•8«/"ò½ü”-J T0—>VÈ‚|Î/Ê*mœE"|æîØ<†Ó³“ÈLñqÁýëÃNÚNéÛÝägø&$‹ À˜“i쓇åo±½´¬V$.CÒ€±õP‘‡ƒ”;U Ï.A/ðóOàÐ1¬ ¨á[ᇪ›éOJˆFS2 êþÿ+iz˜ÇC`¦ëM–E:}.sXÌ+âˆRÓÚ—¾»å¤œŒ¦Ø?®¹NüKH3¯÷[&Ãå‚–XÞÈ“¯Œ£ÁÆ¡xL6¤àÈfƒBÔS6/týZ•è9îeuPäõ·1zN%| ø‰)~×7º°¾ÄÛ²cÃdÞØh©O–3Õ©#Ä“`z­Cµä}áݺ‘åùH ZzÙ‡“½~BI¡H–ÖœyɽŠ(rè~Šq}׉ï£_~'e£Z~‰^OcÆ‹{;[’‰ƒŸ Ñÿà‚ö1£Ð1Š3öm'›#çt*í´Ò؃˦â}òGñfâ.QÐâJ¥àÍ®D £×”¤ªcv@)¨¨‹áüÆbè§ítÖè?{²ÓD¢ö_f²ÆUBÏnëE¼«×·ª<$ýr»me¾ÍCîÄèìÇ”ª?eÕùìÃ^ù#½Á„AlÈgÃ`•ÿ o¢"¤‡.4À쉅i6@PJ]C,/o…ån¨úŒ‰àáuµkJ§Á ºîy~vçÝÛS¹cž¬ñ׌À}#âqbbò~Eª(NÚ†HÛ׈;3æJ±[/Ùó²ž?عÁVÝ©dJ‹Ú$D!¢7nÊ#'ë^Xm@§ëK±íy3Å55üJÇ5X-œÙRÇ ü:ŠÜô'£žg7fqÇÁÇ’#áhí#¡ÄÆÿŒØŒ3A˼e(îØ-ÁκZ• U˜ £'Ä„Dâµ^ýá4s°K{ ¨wɪIßtfHŸCÌÌûŸ)ÒŸKûˆ­üµYPÉ­…RÁî_¤k ŽX dGÔÊ·ôÒÂ1 Ü% 6/±:Õ&J9,r9î´•áÁÑeÜý°ñ¤Š ›ÐS†þh…ùI­tº ' ö@ÁQ©ÒöÊãõžh¿~æ;æ<–‰º@2yLƜȱpuÅ3Ä„=¤TÔF|WBN¯W.©~äY娫L Þ§} ›!cl[×1)üLü‹òYádà:íKož¬,t´lÉ'kÍ»î1V>ó/Š0Q(<6Zb’Êï$ ÅW(³Y‘bŒPQ©¹Gø 1åôΓ¾CØÒ¯+yÇ~œMÜ¥!Ÿ</{)ü lAÙù~ðWÍÉ’‰·&"-牣ª 2aн”É"ÿ•dô„±nÙ¬Gßí õ)nÑìÿ©:¥É%²v5Xû; †¯émÁYwD9*Ì‚©x”ºb ¹×;açÇi¢™Ôƒ*"Eeêrç8–³ ÕÖÜ ý¡õ¨m¿¤PÛ¢ˆMÎȾ b“œ"åXÛgk´²—¦cõÈ'ý)zå:„[‚Áƒ“EOggSwýÄ nJÓ 59øúÿ+ÿîûôøÿàÛ×ÒÖÖÓÒÞÙÝàáÿ¢ÜÕÔÔÝðçäÿeøóéðÿÛàîèâéÿ¤àæðõèâüL©­Þ öNá°®4ü—…柺§Et5›nš@c–þ _Éuç;U[Â?šrÏ È-{Ib=*mдKÔ;ö|ídí¾]±`OÊ·½cUßZÊ ƒ½[mId‡©g ·óóæh=²¿ö³=Ø›°16!á*ÊL÷AÄm•mlú'Œ]>Q&¶º½‘—лNÉ`ž|=‚­«öÏ­iÑË ­Y©ü@Ôá¶§ˆþøtr¦N’Î?•ZS WÊUÿ+¸d¡KÖŸŒ#þŸ+Û0땎c‡N¬H¥d²pƒ:‡3ç» q6§IvâS;íÚÊî¤`?ôÎÃCüMÎ5?änµ1‰§I¥¨øIÙ±=‚£í 3Vƒ ÷Tõà=¤ë‚è<;õI#«Ê(¥ "›ëàOõª¢- 5Pü¼ã2f¼š(à [bqíS˜À«ê×’#(²õ %äð²sÑjšÉö=C]ê…¨ušMÆÉãM_ $åôÄ¡]Úãe–пóQ3ýñ"}«%0o†w´¤ Ñï»ÀLt–‰7muMõ'9~B× ¤k´'A{Zà¹k!–í³@R®PÂûñÍÀð·?G¤%àþˆ¡o“JxS¸‹%¶€x*©æM{Žë„nV_¢ÇKw8%üXŠÉ½¶Âe¤"«Î`8Å–£Q7EÌ^5Íh…Vï–w Äý;x°4;èËíà~cîÑiâÅWÒä³Ð†Fo!è¢>ä.ˆ9•¨Y™– EЯ`JòîÌñCÄ^«çØÊ/) ”?ýIi¶hPôæ×K# y  ^‡²'(;œæOð‰ÛB ž Q…—$±.„`@ ÿÜ]ªé_®}ùtŸ™’9¼…|™_6l6Xâ‹dñÐfFV¡hŠci~*‚¬ù£A³È‘‡tÉŽñÄ8¦¼<ÏåÜY. ½åêÐÄä_}Ö‘§Z¥û}¼“mHd]<õ?áx˜ÝÿÁ,—‚¯ð!SÈôQ•”".œiËÜi3¼D¯G†vGj£úPf˜üIt{ÿñ%Ji“âŸ14X¼A¸³h 'jç‚,w«:0Ú©ÌYY\SŒª¯Šø½ÔŨò•ü¦n€ ðra·H`—Bú¥4~'QÂ÷oÐÞC'}{~“é*ÒÌs × \¨µ†zФPŠ2ð87¬EãJ“·jK[, ´ îBíÝŒŒûm(ùž¯â—?FYðô·5è¬<¹&WbX „»¯€¹'ìžÎ›*íÏC“ÛL ½åÌzZÃgYŒäÀ$d ñaÝŸORdÈýâ݈“ªðƒ¨+”½˜Þ+L×ÈïÛQ‘Î(åªCŽšTËq¼H¯Çà·B2)‹¸ LždF üð×½>í/‚upÖP¿Ü—ªuuõŒÑ†PòJÃ_GÃÈ+ñ}¿Ÿ‡!*ós>ÐäÁåÓúP„ö ]ÍV¬)Û_(7üÿ3}^ΰD4íüfãV£§ó¿áÏ©gÔ¥2Û«^vkyc9»‘1 ø:Ì šÆCóÚ>—v&…0Õ„öº ˜ùÅR+F}KoKWÃød¯œnÍݪ •Óà:‘(ŠÉŽ—³³†C÷B‰ÄBùs.còÒšç¬?™yý8¦(ƒýÍx¯Ñ¼’€«¹Ø€DJ•ܨŧï)XE¸ÿ݇eüM2R¢¥$-ÐôP`ï=Ÿ/žs°jb+X`q_Ôfy‹ƒ°+Mp3Ó¿w)ka¡l9ï|ò¢ˆ­m¤ cVÎÌ„)˜Ìª¨ÎR–P‡“¾@¸ÿ†,ÓC î"ùZAC;%3Uz›¢6; €ut$r¨ëcdBw%HYS’|ø´¹cĦ€ÚEÛDKY†vRJ7À -œÝ•hã”ç,%rsñ‰~d¬ õV¾qøÑðwµ«+<µSµÓ¸Ýl†°œ¬ÊõÄà°n-¢¤™þ¤ ¹OöLáÖŸ1X•ŽX-ʽ´×h½Å?c Jë#oÞV·Tdê@Lâ@`½ ¤%}N ˆÑ:øëm°a?34 zàFüM0@?S~¤q)‘2{/Õvt8£µ{èÚ“»`–W–ÑŒe&sjŸ’Ö¯E²;j`Á×25‹fQñq(Ý›^øoÐHÜ- q§ry[(Z´°Hd³öj.k¼ÚK@ ëâ‚Dާ b¨ †€·*7Y€’Ø!ï`«ý{0ð_á.¡e;tB°¤Ž}YrŽÈKÖNÑ™"3Ÿ=Ðã*Žxs¯Ç£­Ù)ž¢´õÇå‚FOü¬5EîÃáJ¦Aðl(Ö°\Ô_ûêr ⤠1!­°¾$fýüL°áÎ\ß)]½J3 V {frFÂíö¸mm ¼'Àqÿl>…Ѝ¼&°|„©ß‚m—”. c©™v›èrÖY÷Bjèoõññ56 ZÞ-"kà”±„Í–ÜÓ´Ý× ›•àŸsGºì·È¥hîÙVÃÚ‹ˆ)ïwcuµ™÷þ¤þÁ†âwÀ_''>¾%É-Åä¬Èe’M/å¿È,¦L.¾ß©®Æ|ÉÜùyvN#³giøì»óî¥êuG,[ц´ üšWÚ{\Å©á ½5°È±{üLë«Óšˆö?ä¨Ê»ìî¿"'kæJŒ\ßq8¤€ú¨|wxÂÀÄè6w0q%Cq^z¶äåo"#ÝèKU 3áq„XC³¾úHß(²§²²&Þ Ñ‹^>(AÍÊ(¢ex£`×uÈs›èx@æ·ç kT¨¹…÷º·>ä-Ë¿d €ˆI£š !%pº"ÿùÊ#SŒHºðЭ¿ÂÓ©µfH .dviJGªG§ŽmŸ]FÛ0ò‚WºM€Ýá]±iÜŽÃ2”E-ÿVåî\Jо –üMXC‚ÿ;‹cëДž_¹¡5Š©|‘Å™Úæ§ûkòЇ£1(>ô•TŒ+ÚðŠÔ*>¿ÓÎmŒ¹Ñ׋FŨýòã å¨ÖgÝ-…•Ü€U‚¬£ZD%ŒF<n(ð2 Žó÷/BÐ ††Üý>¿"›³µ©(ôqGPÙiãPÁSª!Å*ËS^J³ ȧqza³Üòο¿˜˜!R²¾£½[ N¨H¶øq]èÈøå@”ç” g'ä,G%gÄCënvI…þ±Z A^üMW„B5ŸbÕºÆÇ°3<ÞRðŽ‘méž?f’¤×óo|mt xxëé<Û­½‹çØ>±dBWyw*ÖXl£„y/l¬ž Œ—Ë b^Ô½Âæ­ß@=UAx>±Uio_¦pŠæft{Œå0Ž4yÆF8ˆnOÂáÄØö–ÔÈì|)`YäõÐÅ…]`^.ȸ $aJ—ÙÉì&wãòrZ7:«ceWü½ˆíZɰŸLäм9º- 4ý'8 J?^šïÇݦÂi¥úÚzlF;JüLÿ¼~A¥ñ›‹Ìf§@¼âe!¦¯é•M(pè~³¯F)Ûp²¡šë¤tºãS·Èl„ʪHûP7#] j&ĨŒaœy|Jå¢ãÈ·µØÈvþwP[yYzÂ=¡)yÊAtz¾%§¹¦3»^ GxEÿûŸ…¶¹É´{Áì}%`@W8a¦?Hj°ëJ´^bñSºñ‘õš{ Ä÷îµÇÆëž# ÑîúÖèù1çZCE#%l^Y/&5}ÑêMËËÞ“'‘Ë%Kl ÄéŒØC4ÏX¾7Ê/jo) 2*«Ê„ܾ|ŠÖ_Í ~CõêQNøEË]µ»?Žæ†F™W‡IüLùmâvú5Äð#=駢ΤƒŒb3ò³‹Úùê)›ú·RÞ)‘ªy™ùðfã*‘·RÜÙ„²tG¶‰¬щ¹cÙ-K6Í»šŽ$C0±ðYN² & Õó}®º¾¶ÀŽÍ™ŠrŠ­÷ìfc6&y¿»ðbjAø(Q®G4£§sX«QÉ OàΖ‹ë3Y*ìÁp©gDð[ï\z/–ûu]:ŸEvPÖù_KŽñ?±m]òwÄÁôöMœ@­“²ãânÙ æü5+Цx¾‡ìÔÿGÔ e‡19Ï3”9Xõu¾YwÙÀ›Ê”ÌI£Z½ô‹Óâj*ëÝdF$49¦‹v¹¨KËÆÄ¼¨„åPpƒ¼xágX0sˆklLÕN‘ib6ìaYT¹YqFï@ðÔ<–wGý8ž;¶`¢ž çI¸a6JÈ®40ÒñcÞù"S?8ÏÖÓ»É.¥WŽ1†mŠËË IR÷¦È„h¢ör+"4Ö£CJ4çÐo’îêì™ö /' x|æëTŸ•ÝØ)þÔ£T"^ùÓhMBÅüJƒ,O/>ÖÎC´èD içz)_jl·4º¿ûR%â b¹çxnžE/W-6©u¨1Ü=xÞþ=©‘G}50›ø&/‹û!*OÔÜžwܦ›‘ñªØ9•(žìÜ!˜L_&,ÀB+Êç°|Ynb‹¨¹™M–nÀX2—öÅ_mÝÉ bèž¼×EÇD±Ý¥Y韄.$eÜNG«OÕÂN<ŽBn:Ê÷jpŠQwäDÕj5!÷$Å·ˆ q`–ðš‘”p4µ ¸.ÒœœÇô‰*Œ|#þ±m)2~QtüÛ…´.²m`Ê¡Ï2¸n§Bõ3ø7š:d/£}™èz}ÞøN’³EÅ ôÜÇ·Âø*ÈOÜI'Æv±ù&ÄôÁao š&'Š7žïƒÍCKÇ/ó¾»Â¨–m5§*5ŠozÙ\:1 ¼ÝLìö-ýšç= £•1>É >_ 7àSòcDäØ¿¾.y'Óð„R0¥ëÐH4 —ºžÚnD'µ4 ÕçÀmzášPòÖ(Tf¸À1„Ë$¢{½•ÞD¤'gB`1žU¶öë¿©hØòyµüÛp¡ynlxñÕÊÖký˜5JÆya~Ä£„Ç|ÛÂ’A&«”Ä6É¡*}4…Û‰ËdóЧcëôÀA´aêøl6[!nõ±1Á¹JÔ9Úâšoô}ýûµ½‹ÇêU€ ,M£Äp"ŠªùlP“¤z¦cV‹Àí'è¤&gJ+_è÷ua‡[ŸJé_GE Æ_—þ•5cO¥2Eg`°—cqÈEH®ZŽJjl­­ŸÁRz d†?pžB ÚÑiÇFk+¬Ž»‡®ƒ€3¦iž×çU¿t…SI³üÛ0 ØÛ¨®)à)''õóqéÓàQŠ@‰Eqä¼D'ŽG{ö©EæD®/Á&È8m‰ÀMQ¬.Õa¢V¢µ^R3.Âú³kGÒ@¤LÀJîÍÍ`祄©‰x°Ž8ÊCü¢kâ¨Ù*6P`(Y s ÿœÎù•X}©5‰&'Vv¿]™k_ ,qäGž™‡£é4k|÷ * “C娦¢B,”nHÑÃ6R)ÝTb©Œ±¬O–ìNmê=°âtzÇd†®Qæzõj[¹þ}nº)RY.âK89/µü|®•‡bÔj¤Øî8p¿¸G¿T±yìc‚>ò.Nçø4X£aô<ñ‰ £L¡1ÊÁKâ+!è®[l~‡ŸlnXãNê\è½s4rضP&EŸÃÍ'î—1TeL2½ ®É»:Öµ€\¤ÍÙ5¡âÊ&g`w˜‚ÌÛs¥4§.7ƒl~ÓÕZÍÀÿ%æÞD,» Æ2w–ö¶oGÒoù 4¶Ç¢áôZ1×ݼ­¬³„Üì:ÏîVAè(öö5œNA–Ê*8“Û¸¨<¼«.ÔŠ8È\ h™ãñL­ èmqrÇcT,ƒ/,«BE.!™%t­x=⌋ÏÙžº£ð%iýä?ÔºR¬€s2›Ükƒ…f| -®mÛöÍËÐЇâ]¤WÄ–o óQY÷9¼-½ôhfQÙ´”œûWd¥5êÜ«š}/sæ 2^ˆLЧ½5šš°Ä‹¹ô\ÁOŽ=¨›ÆFË#kTHê…üMD5ß0…7d&Îb÷Õ¿Nx«ãIOPÝR]¯U¶.=ˆ€9Š»¨2e, ¹ý Ô}FÒo(C j°Hª Ñà•ØpDK°p#qíì!Âtë* v«ÿ&•‹†u€fûaß $X8FÍQ y×Z@ îYºˆ5£r°jÏ)ó»¾Ä%„H;ºã9?Úàg]Á}§¦H¾ÕÛ[«‚ÜÔº»c2²¯]ª”±bBÂبí™~/Z#»oìø Š–RðùªLüÄ,<Á?ªGbBÔ6zuû<È*˜4I__ÕVŽJ £sZÓÜm×y üM{BVŒ˜Qp$34S*Mk’@ÙVÆ#—!#nƒyœq¥h €Ma†þªäýIùÏY«³‹ÝÄf‡ɨ2iPdÿŸìáYrGN£Y¿K¿¿öì=úiŽ?†Ù¹çÌ‹y"Ä &•e#‚GóWw•)Ø^x ô€Ž¸Q/glwƒ'*nœøQ4ôæ¹R25ZyÑŽŽPŠxïvý° ªU”þ´h¡”%…3ÃyV*Œ½Þú¯  üÄ*Œc8òc\rWN¬CìÀ ótL"@ƒÛ"êX‚Û‡]¾Öü†…nþ6üeèÔ©Æ+À2ÉÆüë6?Ø ù¼/êã$nZ²B:ˆrÒN™s…”/<_ù;ú³Ã°¾d:÷ïÆ§O^0k‡ ÌV­#‚‚™5èÅ1æÝ=ªx=‘Ý÷L*a»QgÄQuŸ-*Áެ%¶ßˆµ§†ÐÏ뱕5ÀÒÈœ)¬_úÅ\ö}ï5âòFñ#`œ ‹’ö?7ƒ;)ñeÛM4ãåâx"_wq¸¼¡•‡%"°>ÉL¥³xŠrtšÎ X;‹JŒ¾ÿPW‚T7¼ê›4§L™h7M’{+”¨ÏA¥6œìâÂ3ö‡§´ ×e“È[,ÎÆ(?wÐd1þáKÇA·ÙŸÀk:¶ „ß„ßp™}{ŽóâÏZ¬/e8[`Ö;i4õ.òn£ƒo{m‹äâUfõ¿}•Wã5îL„z;6jü%SrUÐ;þÓsH kÐâirõô°†Xg;daq<­êŸgà¤öèš•%{9äHeSÜÖ 'ô8üJ—pä.Ûؽ‚Ùòƒ‡›„Z>óÂlévy:çID׈³ÿöT ú7F©ñÚ ü¥¡äŽçÒð˜Š)¯Ù¨^ãqšH"«ûÙ’ ¾9Ýpý¾gº9PkT­¨ùƒ¥YG! ;Ý €C¾U…ì Ðzè±UâJ-va?bK·cv²™âÞ€“ñpfvÀqItmG÷?9æòX"›V†˜æûƒ±|@zâ`¼\ÅW¿æî@`K¼9ô¢™ýÐÌT÷ ¹…7¶`–n…¯„ËGÙ=Z̉·fµ¥‰ùó(â&&¹ Œ#aääsP„Ûü|¶âîá4÷®ëêïG¼ln5H!ä%k\Ȱ† Ÿ0µÐ·‚ßÙ“—‰âf"Â|ß(Ëå ¢˜½½%ä7’xÖúºc—:¶,jO}å°¨rAî<Lj„äG'‡_0æí^ ²`ÕÉì@Œâæ äb"êU3™­Ê™ô«:ûÒ×k-Ïìi‡Uˆ òºÏõ!: ¼èý•“·°«(ÎO‰¾x†J”:RÆXˆaëºaV7CW4é¶Ö‡¿^aìælNG‰|ºÀíäUqûJGW5ââú²M8&žÔÍy¬³DK‡".œœåj'S…ÎOin’ÁA–m n4obS¹øà a žÕ9ÍüJŸéak)°C IE{hBöË#$°†Uªæø5OýyÍÂ&.>]sCHôžoË­_=ç­dÅe¹Y5óH%í´K¯fíJ»Æyú*^^C@dÁCêÃY‹  Y«#Ö¯JððË~Ljäï´áþ^ˆ:9{âöÛu i-vu㽊ԩ¯ä“Ç(ihnç]f+Ór²’‚¾ø3[êŽýt„äÇïHËmf p~­]›?‡,+ÈÙVúYï:Í"äs’ -‹Æ‡†lòEüÛ½—ÌiüTÙ>o±lÛ*òÒ•øqu©ð®@×°žZæn˜…N¯+)-4Iµ.‡u²dœ€`‹J Ž@¹H ûiÃT‘ƒ¢nÕ£:©ÌB5ºÓPKß”l'Oåó˜¬`.±Š¡}œq¬u¤;ÄŽ…S¥`:—+ îAâd:t3Ä=oñ™²4Êwn½0Nޤ¦§A¬d[ƪ§“>ä‚Í*.×~>󺎈}Ý×o|êp·ã““MU^_P2`g8ôyKLfQ¡>R=t²XÞ†ëÇzyÈç™mýXy`H©'}Þdp"GüÛ¸=aþJ¸r;9Š:Ž.¡AP+öùèî¡Zvâ;aÒSt/Äcf`˜6œGœl×iõCf74û<6z]&ï€ýh=ÚàÇœ ¤Ö8˜‰íÿŒÎcç=\zéàÉQ ÜIŠ"IîÍh€÷)‰ü:§¹€ÊÜc),ÑY—B8öÀ»J=(HX7ÍŒ7U]§—pQÌfÎı´ò2@Lp²Èã]qh»:Çæí†ºÅ]°¿}„DqeË"â²IüÛ·l«~ïÊuÈU1›³+ „;¸5Pä ¥qõµ ?YÃk‚þ’Z–H¼pfL€Í+½þ¿’¸Ûö`”&%iJ4 š"ÚÖ2¾ô'ñ›ësElÙøóôn9ØòŸ Ï&¨°b¾ßÈj(”3kE{ôa¯slæp½õñ`’ü¡jϳØÜÚîV¬ ¤éÒw «K¤mnù4¨GnÏçPÂÝÀf$ø‘¹ÃÈ×Խņ{r^óû$f§ÖÅtqŽs¼‰½Såç­/Í®—.'å¥Ç–-ïŸÿ†Ùm?SŸüa/Áñà2KüÛ·@“KÕ½ãdÒË`Í®/ÇÈÊö<…Õ=L¯’ÜØÁi¬|ý'ãÏ*mjiRé’ûá*ÎWá+ȱ–‘âh/ÚéøÕ\~ò@Ùc‹1-7sF»­i%QQ‡}î^ ‹Ø(à¦k®è¬ñùk¾z¼^ç¯Û³ö¡Úø|uͽôB`™“}V,CF7¨ëZºÌÔ:ïõjÏ)V³_qwìÆÕŠ3ˆˆkæ@C¦éºf2… åÈ{Áö;à7/Ò•°d"í _æ”@:×Á/ãî4Lp³;2àö 1¡·,ÐâNü|·a zK],2Â<®•Ë!ú’vÄr!ÁžýÜu[ÃÑsÂb€ÐoÅÖt«â2°’ù„Ó±TqŽTÒÌRÍLJ%þ_o¦üÆÞÓ]“i >òø"+Z§,ö寋ľkÝÅ™ Oq“­þ+q‡»ªÆÞÝ™Š«3Ê–îÑj†œÊðˆ%O”níÁºH¸÷Î6HEÙŽzà!Ó† æ håN‚WÖm•s I÷îºmª¸ãg`ô÷Sß•Axª95¦ÃðåéÔ¬>ñ$™‚Jx`€ìPéÆ ²öÝßCÅ… ‰‚¨$ç°¤0õÔ„(òÙõ&i’û:”r˜Ã7ýí+¸‘•@¡HpXC7çä7!9O©”n br^†´V†^’æ)G#aV#ó¼Ê0ÐÞä)¨X_ëìÂ0Ý*2µûÔ}Û„0´8¶tâ(fÎ÷À‰þî1Ϻõ»ì ´#¹ãŠåG®ToHª0#& w5dÖÅ2-–Õ·qD^ vÎ×ÔÁ€œÓ}ƒtgÿƒ5 ÅüL±(‡büdõÕ´”ÛÞÃmôS7ÿ¨º%U‰ÎBšSPzÕ²Ž1a½+ùp'±ºO~1°“[w[!Ôt ú¡æbI^ÄI½rœ3œÙ0MAJ¾­Õ‹x¢óbš'ˆøÒI¨J”÷°EbQ˜Ä;úw”µ<»Û²jD‘¡’$¹[ªÂE¯)w±ª1ûÞíŸit¯”d˜âêjkÜÙÿ2=^1¯œ™s‹|0’BÐþ샩7«˜µ3Ûç3ˆYÒ1*»Þ¼ýC ÐE°&xöÁ1¬çØÐ#üÛ·|&Óï[$`{@Š@ù ^:40WKZŒåȤ)ÝÙϱ?½àõ$¡@A3 ýhŽ"zCAôs­üS¢h"#¼ËeÐfù‘9x=bt`;uE^ž>ÈÒ‚ÜIKÈ Ñ^aÄñn—~kš-RäÏÚ…ñl…gù®Jz ž` bîŸ~ì¢Ç£ÀÖ¾>BYd‡ã°’,˜×¦Ñn6¥½³Ê„Ù­‹9Šøe7'`âî\ì2K–âòX,`ì[˜).œ_ÖT™G C¥ý»b¹jR(€uó Ýx³…*Gê!Í© Ðodw—yJüL³Û×–0f¦°ô§†PuݹèüÌœ2Jf»vm1„@‡¤ð@þY’¾\S7¨!»ªîîo¹™Ø€+cå¶_«¸ Scð.¥Àäh>¥ýõMV…ÈJ‹kMŸÃ’ºy=ä]”? 5šè  ,ÞÑ8Ÿ$±k Vº#Çê>HE ÅúÅß©„l>Ö7ÖçÖŸ`-Ío½Ñ§mz’³r²¨Œ¹ò;Zyº;Ïܸ9-ˆQ‡<iúå–5>@˜yš/ù‘ßL%\öG5tÕÈ\ì"?ûL‚îD¨æ”*ëo¸i‡qÈs"bQ ŽüLªû^7ešü}wóüʸƒÇh ÓG¬nµŒÁà^½­\o̾„¨-C[z½UqѼŷœ´^A—’JÉ}Ùzª²çöâΨcF­çiYI=¤'NpȆ§¼ÆX0@‚ è¸Mäh½ÀX*öñ=»>rm¦v(ßø;uá¸DÍZù–¡]ƒ›yG‰u)b@œ–ø$qø˜‹b„SŪâ T +-ôŠ#oÓÎâû©šá¼a! ÜKoByÀ‡~+ÚlñYˆ¤*ÁßVÇ@yM6t.®©>,{7¸Ö°ŠçHáŠ'¿Ž‹-ËŽèåÉ.®²ýD†üñɱG“—™L«w5œè-i÷ìßQð’¶nÊÛ?áV¤føÒ%ÑÝr9‘5„½µá;‚’ë·® 3xü7“ÃU¸Ÿ /-¡T-ðåÇe¹‡®Sú]ØžlªÐâ*2ó@wÿmcæu“R^wª<š¾¨)È}‘ à¤‡Û–i†t²•]^Y¼q¬aȵÛx&ZƒÂ…¡5§¤©%(a,qÓa°ZÛk„S`žT6 lB<½í0ÅÍ(J˯ß°71á’EŸTLÚ¯ùÛIj©7쳦øƒIšR-„ÜÅÎÙdóüLÖδbÚeë} ÞyÒßÂ%zïký¿Á¸žÐ R®jVïï‰ÈË xiˆÎ‚{˜-'ú ÝÌê´2zè"9%½ÙìkÈJ»ŒúØtî¡m؃ÛÇÊP"Œ}`ýU:¦Åyµ¦Ý+-¡÷ØWö8`Ë„c…åýÁøø=¾€E‹[8ç:S»±ÂaÌJY˜9+¶ƒf~ØlœN½hC ˆößEÑ ¾/gÎýhioúf¾N£ðûî0ÆpË)h_vŽtd3Ÿµã+¦¶aΈyW+T ÓK5OggS€2ýÄ n:­:ÿ“ÿmåâõûúÿÄÞÚØêêóÿ”âÜÜãåíÿCÖßðëóôÿÄâÜÛ×ááÿHÒÕØÓÔÕÿ3ÑÓãêåááüǼqø†…/®â–Í|e͆þ^iÔñÆf4€6Ï p4'ú;Û’’({Å>‰ùíºÒPz²ŒúröÇþŸ~âµ î#*ˆôMÛZÜ‘ò/³ý³‹%q&R¦6´¶®|WQ:M… ¡;œ_·i!¼Ž¤'Ÿ.öË›MAÙQFÛä+³©‡Z¹îq<;Ù_¾MxÄ»ó£>p"¶¾O‰×9˜³¡tìgTœv˜],hȇOfƒÓ¾*y»ãlè½a²¾2¢ÈÞ{ß\>‘§¶ÅÅìýIÖù`°• Úp ]|¹w|ð~ôÇìo?WÂökýâ G´IëôKêcVmÒad˜VŽÑù–ç¶Àn©­ojâÆ…Dìr^Fö’ Bó[ÌÜ3YÍŠÞt¹Zd’¹Å…¤;"Œ0!Ù?Û®²?‘-ùï½; E§+r:Pæ¥q¨·LO×é7#Ãhî\Åíy~ð`~¿EÓT¬O@gÄTäB¶<]Róä²¢å…Ò;vbàнüŠb[›ç*ýûU ùè id݃¯Kʺ9mȆÏiÂUb)7ÕqG.M«S𜳤ÂÁs|ak_/ð¨×M ¹MØ)ð½ÉE½+®ZDLµ¿~l>[ìƒ[q~*†ý†#ŽUOãåæ:›õ]Jv®¤M)þÁÔ’±¯’ë·Qe¹*âÛEšÝÍMÄ2ÃŒ±ñîMÙa›YB‡q}oêˆmäs™?&‰ä0Í—fˆ^Æ‹}^?©Å¢¼!ç¤$H|•`v¬×¤aÁr@Å\¯+2ÿœñå*a1´Kô"$‚½úðdg´F¿ÇÐNl)EPiòQOo”W½D4 /õ’Ë_VË-1.„úE÷¨F¶ .‚rÆÐÿTËôˆÊ/ŽéiÚ6K‹0ûü…€~ëø!•Ô”cnt%–ESJ_Øæ!õ8%wñÖ¯Éñ¤¸^ØÂÒ»Ûøæ_2‹yîÔõ0R}ÀüðÍ.Xeµ-´Ù Ü*”øI'†‘nu1A öäV.N ¦RØ4$ÚéËT;`&ãRÛ×ÚlùÃÁ·M цß~Ò³]sõñ¬ yÙú?“¬иû¯lf^dÙUê9“6X;²ñܼ~öˆa˜Bš+á1Æ›|NÌXE‘ì"¦8:e8ª/¬5¡_ü½A¾iE­W1:Ì üY*ñB”Þ:•ý'Õ¥ƒEÖX=E&D5ùäà^vv¸ðÄs%‰´–.@±HÃåA¤Úýßý¾/â-€3Q»g©7ÝR–+í‚!üLÈ!PÝøø›´R'WF´ 0~1›+RŸ+š|øÍÄ8¢±Ârɼ¨šê²  MÁJ¹ÃçVõ+k äíöýžæ]“ Dª_gè,µ tý¯ÀµL Ç(sBku¥1&©C^/Oˆý¡÷¨r5¾ªPç©”üOºÔzŠ{æƒÓQ“‡È²>Ntµ&ÂWó½Óœ\ÓH´³¾‚ÅŠ¡Œª$Ì >r¢@9 {Œu[^MOzÛ¤”TÁ>D~êŸ~ ï5pе³i¾úsÞ±àK©XlózæÒ:`RŒgü5'ùcé—ß¶ß -Ó¹¨RLöMÜhð#W¢6 å¯&`IQMñönùŒ„~ù©êY£pÚÁÞXJoÏeVt.U ]†)oÇ Vw§ã¤x%þKûË7üCdCÜ– ¥d¼žHÕùS/uNÐû @ˆ×m•áÔÕŸÿÒîÁ纴¸¸ï¼#§L¸usRƒmýuèã÷àª_$^ªÅ®†€Åïètlò<»Äz‰Ôw#H^Ž "ìYu¦”‘z^" ûHBãÆ :ÄEõ@&[^ŽÅ“MÛi@ž_-A\/”v¾zÆ›ùŠü8z°ÓMVïsò7¢Î ¶úX;KL¾2{û½x¾Ý1JÊTÀdTAr¡5tmïrðèq’ƒ,Œå+ ´R7¿GMùˆ).OÂç²ÍBS\Oƒ'‚žsh^y]/“CTZ—Có–F¯JÒº;Qδ}¦Œ3ÂO—œn§K(38™±Mco ^ÉIg^Ž%ókWV_m?WòELÔbê‡8ÿ˜ƒ“0Á‰Ç`†Û ±ê-~v—-Cq¹oË÷7½ôñ†ÜÙ!Á‰U}âîøŽí×̧ºò8Ä&@ü­1#žÊ$Öˆ2\¾Ä¡fÆ¢õqÕMÇ&.]dø¾‰gƒy(ié*ÙÙ楬 ®ÂºLoìþýêt3 ™'D‰+ÃŒ‡ h4¡á’[ï{ô-œÑ}ôNšÍ0Jñ‘=ƒNºOSE M{¸CÆ©$u×Nu3¹ŽùyõMæF³ó,¹êB©|Xpn% w/¦t%ù­±`t2^C ­oH 3o"¸2½ ™pÃÓ.âämËgѳ¸˜`1[pì9óœÀ¾ "_[$ç]‰‚ÒS:IÂ|­„\sà¬Ó©Êç;Œò“¦W¥òͳ8ê»Q…N\z õæ(‡“ÝÈ¡ðåOý"Ú{X•C×üM'k/¡¦/f—ý»Õ&W»E}0¥Ñ€ãÛö=æûÖx è¹ªu°ŸLc´Y?å–Ý{È)59§ a"¦™=-‰†ÏoA€PÙÏ>C¾[yczšRô}jDf‹¾äs6œ¦õ y7Ðô”]Úõ¿Èu.…‚1ä húWã ‡×?ð1©6/àò”º™B¥66áÅàøúãµYbÚsSR!ÂgÊIq§é¡¶ÓˆeP0_J°ÞoEå§l¿åùæñÄåîΗWg4_Wšb L²6Ä™„´ Âû6ͱ¿c—nüLÃl ŸÍ¨Âj¢Ÿd ¶o×Näb“н]Á–«/J [#(C|TŸ4© é™6@Õ‘ú‰£2“=i_J˜¬ífWQ Ì;«vdÃ8 +hºR(“¥ä`ñy€ÈaFR_61â§ßcÙ;GvóÉo89Þôìnîñq_¿ËäL«ç^æþX}¹Ú‚/–PXKà @|L­ž@Ûwf ’ÈølŠ®º=™S“èhæb-#áõ®nCU™ÔÉZŸ¿³™€ñ; a«,•ZVÞ.·‰Û¥ßYo˜üM"®Á=_ªÜ‘”sQgN®JHÀ?%¥€†£œÌñJlÞGÃaÎpÎ; ´O¦%žÌhæ*] þÜ—È«|jæ'Dœ/Ç ç Þ)|Äõe‡p?²æÏ§€ÒÅ{ \Ý›h¬ê!rpô¼µsúëà~å²JðߘQÈ=ÌèÆ¨¦ðG¦fl–gè-ü!4*Ñc£ý™,ßz8Ê UÙâlQ5‹"Œ‹ÿ ÍPY{HWß‹8¸“¨%g!ï U„F̤lC˜,\–ó–8“¯üM <àyDTæï_HÚ ˆe%ÏsË" ÎW¿Hâ¸çÒl‘7Œ®AJb GPR>¸®ª7YŒ"P¦“¯þx%ëË5°7¬3¢|”uAý.l+åNûU¹W¶©sZšÿB‘‚à~RèZ Úúµ]üÁÍt þï¤÷bs%ù¢×»j í™—ŠÅ‡)d¾Dãw]'2"Ï-^0äᎤøæ †R4¤P‘cöüñ %ÝðEp×Ú-†ÍßœTÂmHfD\Ùþ†| eÆY23 ÷¯g¼Ç3²‘F¢ŠÑt»«èSpoÖÜ‚¢ J€aÔòZÜÚ±ëŽL#— ]‘õê°|xMýHy5M""í™Ä÷Ô3fÄ•)Tˆš7¥\ûêÃ~ç£ÑB½CRõ•þL7Üô‚zÊÀ“‹1ŒÇŸa‰‡Œ­¡ðùÃÖqëÛD!BOš <Ä’Ì–|¦ˆú݇w“·:”Ž)tj] þÓøšc 截åÄÌÆ`H¯‰³‚nÆ‘ÅMMUƒ°¦Ão‰ h³QüLâ¼Ó[¤×rWŸ•ž%?GÈ܆VUÍ_Ú+XøkD‘ÌØ, âG¬¸~e9w æ¿› —¶JáBUJã€[,WåâjžŠZϼðŒÝšXK¹ïhø]¹Rè©I\Ð&` w[Ø_»PöRõgÛ¦ M¢u¬ôÎø]]ŽGŠŽL½Æ,ÌÄ@+h  rêNýâÔ¶-È·¨p3–¦„«æàšè¯åÛ‡3 ŠAx„b£E¤Ögu)3¸YE¢f&¤A?‹*†‰5§|Øž“÷ðÕZ ÖÂ|Ç\§ðÖ@iVþžq¾RÕîUU>\ÇÜø=9¥ü}a•kOpGûܸ‡/GÔH7Wµ7tœ'|Lª^^A‰æônJäS݈lÃGWå;ªJ'ƒ~} ²y5³<+m8|–’dÓ™“êˆ|0ËiÕ{è¹¹Ëåö‰\0«h€<§±¢S)Â1ÖxæH»~”Ë=OtÙ½ F. ¤ Íñ0ìíÁH5Ó¤{Þ}\šÝªA1ŠOôˆnõY· ãòŒTµÒøÄvxníÒ/-À3ˆÚ¿*€1P¹‘‹¾ìBì­…s„KÂJÞ;„??Šl 7Áÿe,xÚDku¦mmÒ‡¥§{Y…zÅÒüL·׌é\304ØÏðÊjEвAœÙÆõ+‡.Z¥ UgÔí+UÞ‚¹1~Û´Äúë0ó¶ôgylòT¶¥)øën š§™ÜÄezvÑîþjô÷ª˜‘oš“Î c̤èÖ±””¬TDsüƒÑ¨¥íFSõ ¨v‹h‘«áÕßá«“öÖSé#üèu€3’!,sTºiÐ v/{UT‹ê Eì麎† ^„—Q|9RM º† Ò•WßV†å}˜Ï»(ÿl4j$Ò/¬€¦Cá üX0/ÞnmôAŸÁ;&ŠKÄ$"1 ×xùÓ=šÍŒ–ãÙ?®¿5†èf03!eãØV 7¯Éàî7†ç¬F<’|dæCŒ¡þkª¦àÚ^{Ú®±Ž»²Þ½‚ݪï­ÎM$¸}TÞ¢Xéô¿Joz™Ó—þ’ùŠ?BfÞ€öNû¹dý1Biz u¥ÎdIâht=ë[Õ‰¬‡÷`‚–†¹ô“d{÷­fÆ XAíJœ1ÕvƒÁxœü",=aÍèÂ`P¬•Yå?^ÜÉ OF*TÞøüÛ·‚¨`Eû¦ÍœÍ^ûo~zn·$©+3Ð:]ت+¢ž¼-ã¿«ÔãÁTÑÜ1‹u\«‚²ƒèm@«·0 ØG#ëõi%l‚c¿rŸ&p;ANmµYK7ªÇ8yÎ|ñwþÁúË@Âó”³Z¿žà Â? w×ñËêqPDˆÍ° ޲ ·‚nù}NÜÕâr4ˆÃÑ› ×ç«qW^Ô–•öÝ*³K¼3ÍÈ|wRuЫw°€1wZ&'/.u+>G;ÀšüMXÍœfÀ\Ë{©;®ôÑ>5 ²ÅÍLªVœJùiôpeG ÖÓî«ÝuåHü<›¦T=(gju ‰ãç»1S‹à ÊÏæyµ‘.›&Âñ$T˧Ãô!Îß,ÌíÑѸ£`ÊÉIÔ"?w„}8@v—šß1‚XU|üÂÜ=qj0‚aµ˜Fæ—e ¬=‚[« èoHVOŒ©Å̘Stå~º.|×Ñì'Mhõm¡ÔÅ^ƒ®|u©i¡vˆ„EÙÑI:Ž[Ó´».ù#5'ôb¥„´•šj˜Šüñ öÊê ²·;1ɺCIâ´=þJÞã¦a™iu ¨.N¿âˆ+ :ÃÂ\ú‰b扗035¨³ï8s'œ~V‡fÚÚlv™Øzmm¡$pXÇeÂ` }9ÀñÑ$vyç¾q‹ïœ¦£•ŒHÓX†m¯à}fîq²¥Q4¼7$·Š‡Íå­ÎžŽg_&*BÍIϤ¼ãë˜*být?YË#p2Ðsßá]–åBŒ´,YšXDDemˆõ-Û*ú·‚‘N.Åfh2Ê(éfƒâ‰ I𥳵üI{ Ø#Ò’½ÃsÿK·GÒ¿Ø£d ,¯ÖüÔF¡]üZŠ~êX8ÐáKëÚ=xÇ£j‰…DÌ)¿,™Á{,ënõ%=Q.‘¸Wn,ú÷qï@˜1*_iÇë¶).–B£mõÔµ9â²—2ù¬eüpý*µzxf¶.î ¹6ÕÌpúÌòé•2D¨)í èäÊ(ø€Ô[üÄ¿)õ¸´=¸û`èà Hh²)¼Ñ¢ú¸‡ë74#цøáÌ'õutü#‡]¯8·àdy™™sÛËÐéŽój—6ìh,7Aï±ßpb}ü}\cù/OöDùÈIêó»±ÕÉÊþœŽÉ2W4€ls¿µ8Kù¬ð4g¥m…Nƒ¬«„¦.Ĉl¾ ®?®¿gDÚ¼q¼ÅM‘C!øS›^À|íÒíª¨þS’/lû#å)éä’ÆÖc€¶•£3hn*­‚‰DØMUáGO`­Œ€š AòùÁ3ѤܛÈU®óÂC%ý§‚8è݆¼ëÙF¶[ ü‡Ks˜ÇëGØ@_á±_6\wÛ»Ó_û´Ýõ…2û‡Íù ª¥VœLke‰˜·Äñm4¢pÇîAÖ¢1ŽêP§^Õ¿ö z#."ÄsKpÓö øtR<¨oµÃ-×àÙ!•cöd˜ýMÿƒÏÀÅ[ˆð#öËÅžUo$æ O-&gPÃÀé‹D2N..ß:P<…z˜0tÊÓ¤êw—jª Gq¦;r];®H<êL^mB"5Ðt(Uêâ”ýQã P‚ÊoQ¢þW =ÿs§†É>Κ]|uOï“/]®5ZC –÷=)Í€dÁ5{‡‡´øgÅS„ŠUõ:þî"àº`Ë¥?F¤Ï¢†ú/Ÿ)]±4­x&²¿„t4ÝŽ:õ±º8y¯$Z‹Ä4hˆù3à“²™Ü«µ‰•DÿUûsg7ƒÂ¬µ/½Þ%èx¤–7Ýà”éÖ:GkâN*ì¢l€Ûñ«|÷…ªØéGã#=-É!e‘ð]bÉ„DÝŒš`и•9¾íà.­_¦2 fµújâƒV<-8JÞœ>ðVÿ?èⳑ(ÐèÉ[F‚Û¡^n6Œ@ÄÉÑ8®a‚°± Ó²TÒŽ[\’÷6ZõšéÖ,gŸüM*þú…^(ú”Ü0•=ë¶ SG!uÆLðÁ˜˜8 ãÊ#œä$^&×g‹ÚÍY02Ÿ·ðvà°xXrxH XBÄ%Š…¨o²Öóƒ$Ö ¤zQ]l±Ïºª”×0®ÐûÊ) ÉD d¦•òØÔ©j¯ªôà òjš‘ÿ¡qSx¦ÐᎆIµrCÖòf½ ¹Ï|bg¡Q¬ý@¦- –§ Æ8gìZä|ܦ3Ehf]¢&«S‰×Ÿvz¸Æ_x«•ÃSšÌÊgn$@ãf;×Ûo¢Cņ–UŽH0´÷,v¦ê˽üLÂÞ¬!»ŒÞü˜0·OY‹¨DOEw%M…B.>YN8˜²(åòÁåaµ„^n¸;DHc?(´­FiÚÈD!é3ÞBýË?²GŠtWÊg¤ ðÂÍü3à Àk¥tz˜ý?ÚQ„® ç’Ä·õì„€\’$Îbµ×{ïç"ŠB×y‹f¯—8õpjÕ_,‹s!k·9Ü^<ì¸ÜÎUâQ„(íÔ]÷;€{£ üäœ1ú'Z¡‹Ó-ë¦(¡¥ãdŒa…¢QrR6J ˜¶u.ú4vy'‚Q¢nZ÷…›¿µ·ò‡¸†"ü}^:îÔì–Ì—õ ~ß²Ú£9‘œ`a¦©‹‚ Ñ#Bº ÿz,~ÒºÆ9”Šâ«í£õMúf×pöÔàÜRTxKvéȃ €¯N•¡ÍË'ò3HŒ_ø02‘æ GYy]†¿mÒ NMu~®z y/CÝ UæAúõI¼_ïÿ߃o6wš ÕlÞZ“««cšð4Úÿƒÿ`ÙOH‚r¥~b9ˆ˜W&`Ž9ey4.NíY› ˜z¢qZHmƒLwÌ‚'ùƒ‰¿ú‹>“VD­æ3¥SÖà£Þ‡K±¶,œ1 ÷‡!ÎWÅ™ÿMº3'ch#l;ßñ„=<ß”|H¬áÔ%ÙÐ9Tä%â×Û+GźG”‘'OýÀ”&šäîò-QV“%öC™ç£1ƒJM$ë„Ī3Un`! /Bfa¼bcätqýK=m h~µ‹A4Ѝ¦æcìµµYì^“=σ9.M7#O^ÜÑiÐÉ Ø3Ÿ„ ¨D˜.þïDÅ¿b…ÑÒSèU0²÷¬Ý]-¬ÅÒŠòMwo˜ÌÁýî´]ú±g~+]#°« ¨N)*†þ(üM‰ú OïëÙ£‹ó3ŸMérqUâ±Â$·°7çðËý’öïŒÔ•_¥¸µÀ÷ç´èˆÔÔÄê"+·$Ö0þ²‹z@;7ÁÛAŸ¨¼påz"‘ ó³+´5AzÀÕVÖEK‘¥v%M…¦/J]A‡Ì\ô4 ·´Æ™zƒ.>Î1i³p&¹”*HŒr%0õâE€»!¿*Dìïå¤îr´ú»l•'©ü~CC¨t@‡ä‹"Dà›61ü´¤ÑU%®# CP€ `Lÿñ¯Ð`…hÖ20VzüM? Z*àº:‡")zûe¶t¾×ûV—ÙYr²_gŸEô”Y±ˆQ‚fáƒåDÖz3IܪX ~XíN™ ê¡q¥ÿßzHÍù "/¶;M« …/¿)Ÿn­ýÞX6q’‘kA'ÊÙñKàáEä9¿Ð(Ïoc@Pp¸L×GHpNèU&h¸hÈ­oÅßÔOh7² A ¯ðXÕ§jǢČ)3#BlkI™£qcÃÖ;²±=Nîf ?X¾]¨Qâ²$~{’ qÁ¥µDq¯Îú!f9ªQnüWòÎj'Q_ªÞ?ó×9¯ ׯgaÿ<ìû"n8æx v;òoŒ«RêVû•K9 z¹S?#ižXËF ߺ Dt$—©5`Žvÿ"]Ó¯«¤Å¾D-xÖ« ï\lÈeߣ€¿Ò…µ³0(ŸYe•’;flÄ¿žmDŽC¡Óä |^ÖH®™–"&òe"­‡7”ãîï ?Z˜®Ë‘Ç$ŒBb"òÝŒ²@ù³ ˆ¯¹½¨<‘¿å‡…iZ˜ÓS6æGUB Aíã'Š CãklT5’J>á@ŽÕÏ}ئü|·rnyNëžS‘&²ŸÑ™Ø„`ß2ðƒöj’&þÒÅl‹9Wïïnÿ@_€„ç¿ÌLí w±R s ×µ¿[…p¹8NdéT$›G®oèÔæ 7x‹%ÆÃh5?Q©±¬ŠŸÏ"fîb/>7DcÛ*zÐónî¥)7IqÁ„Ó¿™ ,õ=útY4Z¯­ØBš’5 ±ÐJOæí“ìnñcÚ“—Ô]HNSaԗߦf­QT:,³žSÔ±ªBŸYž,í³VMYNê3u<Í{€8ð¿êA@ž‘šôjiÑKÓóÞ°—h!ÖûÚÉ ¬8-G‡tìÄœ¥·Be:o™g¸î—·•´pÀÉÆ{âô„Ý‹R¦}ˇcd…ñž£—“LfD >°ª‡§ø¾ÀˆIçî¸I€î …æ|Hì àØ}Çü6À©¼SÎET¤ÚÆa÷ZH脯s¤¢ðÕ\nwGÍ/…1Ûçd²­IYÚpdd¹P¸˜¨äcàB§Åy$ør£0¸‡[óAvø¨h@gh‚œ·8³FƱ}«l–=‹¼ªPL¿ÛÚm ž¿=„!,`rFbÙ†’9Œ¡ËPÒûWPh˜p{†{£"†±ypSu µ óÛ(Œ«ºˆ÷ñèpszXL×Ñ"’X9¶c†¤ƒê“ô7¯Jq4 Grg*uþÍlaÀ…DöˆhðüÛÁwèÁ¾ùžö'f…äá7(cåBGð¬ Î pв×MLCå g¿P~Ÿá†¨Š³KtœÏî*˜Þ¤%ñUÊ ­˜³°{(aºGjô>Ù[s§÷mvx¤h;/½*¥sÛ£ôÉÈ­n¢}&Wñì.Ú€ ä†K×"ß°ÏYÕv&¬’¬vRñ›Oó}¼CŽßHì‡øáô•!&ƃ\~;³ò \¡ ßbeœ¡a,]³­[pðhØŒÒÙ¹’{–5¨à |¢EP#”„[Ø„aœü7>Z¤°ÆÂ«Q¤\¤;O‘~Oë?@þ–ÑM’SbÜ¿"ÑËb+^¨:¤¹½TÆ"ÆHbÈRüaQè$ÎØ¾]½Ž©â êkt¹Ýꫤ¬h-îùƒDfÁt í7¢¦V@R¨lU?"H¢7é­}ÝÎŽ¯ei=Üu¡Ë¡f¤€Îï—׽ꡉn½7.ne¢ÔÆé`¨GÝGû ¢_Rv`b&ÖüN×F©°¥ì6üO®#¯¶+ûl.y¬èÞ•jfº9ñ¤]â8žüLżúi^ Ÿƒ2¶äȶ úWÒ]IfÁ¬ŸB’867Úá¤vSœ1ðšYsæò´ql;»Ïý‡Éš„£ƒ@éê|ÎÁáÖ!<ü& X½Gü¯k’æÇÙ‚„—£Ÿ³ÎÊò9¡Z«ÐÔ S*wÉÇ14àŠ9¯t'j½Â(QdûpúÁ)ûòúsü{ÝåÂ2ìçï 0X÷È QÓ„Ù—¹öѽß'•ñ=ðœ{‡€Q‚±"¦sæê+­¤á¨$+Ú¿üKkVü6‰U|7€Ê¯ŒiY>à7»'+‚¾âß,É‹ÉzüÿËtªU@´Ö”7Ëy¶¶Öæ†/  o<`#ZážeúçY’˜¾X£HÊš0hzWëÌ®åh*¬Ob-%aÕÀõ†@=]\¦£¥‹×ÔŒNòŽ6‹Ëߟ7éQhFÐ7kÈÈ“’E㛊·-liþÆ"À(¤y"?gް²q/=¡jCR&Œ lçBÔ|'LÚ¢šñeˆ'HFè>B<}ëókEC£nôyu’ØVx½×¯F·ü}aÆÝ¸ :],qžîœ%A°nxîÊ!KHÚûÌ»wеŠMÍm x¯jýk6t ´wÄ] އ ÉSµ´ïÿÛT5qe0!áüXL¥¯=ÜɦQ•B 27ÆG…a“R¨“,G+¹ºŒÓ×aöWyßœþ)L‰G¡g-» – }pte¹üQÊÕWx¬¥3Sj!±Gñ¡éB¬aº8XÏì:~¡L5-ŽÏ€—D&)P{¶›£È[„(>–›7åWFFî.‹ :-‹pN¨!IyS™âò!~‡úK£7D+ÎÍ,ˆù$wôƒó²·ÝãK§€Åw5"Ç …÷ÎO+L¡‘ÆsX(þ/H܈Ÿ<«žK›ä‰ùì¦þÑÝÖVo™@0¿¬Œ1×ÉO¶/·«Ô7y×—ýÄj&6RÖ‡tf¶'šw[™Ê˜Aþ7üX9pª 5¥Ö°´dêPôóÎ’qFÁ6=«æ_'§]1p(åg&x.ÍJia‹E„”¯ƒ xÒР‰d|GRÚ.ç—ÌÕ‚fRÐQÝ©Û÷áKoç…”ÑëtXu`oQЗû8 à^ZŠ.ÞØígo@ áH1J/kÝ£*0¶Œ™õœœÙž4½Rf] .,3%–ÏEÇXÁ@h#25!)‚µ~_v!œƒÇt¶?Æ¢¢ŠåM%,Ž~¯üC"‰ÕB÷`õtI1fÊ*b)o\hHkG9ÖV±$d¿Ù¾ü0ût†)K¨È—Ñ&ͺS#1Ñp»½çOîpÓ”¿$ f)“ý Ùñ©n·UøÁoëW0¨P@¨´¦÷½ê1ª‡L™yßr‰Øì$zÔŒˆm …2l‰úû¢¢U•éÏNœ©œBi{ÚóœÎÖ[a'ô\€°tAÿM²Aû\îÖÌ‚(øÎËÿ5LÛF{Äv³¼*kjú¢LyškЗû+‰w¤Ÿ& X>žo_¼ÐÂ63sÉu_‘ö•F¥6E.îEnÓ¤~Šv¦|h úÄy ]ü›O–Ddv#8³Îƒ·¦;6KyüNKȃ ÷e¯ã<.]/9îûü¿K  ¼7FtoL·M;ƒ7b 2±f4_²ÊV¬oºOÈßi£â çy>اvLvÁ°ÖãÚÝ(’9£øñÙF‰àLJ¢àC_ÿ /ü„"¤àw%e :¶ª½íñ'™ñŽ‚9“×WÒÓò?r _¿ŒMl >©zÁ³C„õ¿ß\¸pêr“cc Ü6W'â;bçЯŒ’\âåIÝF#[JV™Þ,¨eK¤^ä‘ E7„) %„á¨Vû” Öæ9HóÛ*» ʪ¯ÆúKLüIï,÷Ø®c}ø}!¢$ètføåBLÒÚ Xô§ƒ°dJŸÓTЖ—íÙ“r| Y¡–aíÆå›ï¢Íº±–¶\«1 Â÷+Êø.$TˆD´7ˆ4êƒÍ ¢ÏŽ W§¦¨Š8J^yô}á\< Bp'ƒ•ö¤@xÀddi˜†Ç‹KièÚº)Ž¥>ƒîŸF¹ôdî>=.Õ©§¡È<Ôn3¬RO޵ìØÙ´„Þ;â%œ{Hººue ´Z¾#ý/\å;?çóa¨²\pú-±61Ê¥¿EÙ4»üJ[[t³¡fêÏ;Ùë5(4v”«•š¦j¯î.†{a²ô—8¥Z&´¢¥¦.?€…¦²›I@ÇHÊÑ?üÑ‹y|…÷æ-pôL{ŠÃ+Èk\Ie<½Æj^8,âvû¶ãefØ 6$ýª‚¢}gäs÷¬7+TíEØöS#±v¼ã@gÁI¿Ïì=zi(Y…‹M†i¬ûNyÊ4y8YöäÜqžXlbÙ^³Ú&â0ºD‚¹#÷úbô"™]ЏlÏšF¹íy9“*«*¨¡õ;%¼›4OggSîýÄ néô"&9ëëäçäìÿ‹×ÞÝêâìÿÜÚÛÙÓÝÿžÿ!ÓÔÕÒÙáéæãÛÚáÿ}Ýäïìñìÿ%ñìôúðëÿuêüN‹´Æ§Ñ4Lòm¿²d²ÉHZjdJl¹¦/BS¶­dÛõk5T^ÛIr ’.4–uÚÓèN«—S¾ü^YÑ;U«Ìë–G 6[ý6w<]GwÊ÷ÞXiÅ …Ô“9ô2 g–ä¶óñÞA­A]ÂÒ†ë óË}N2#Å{ÉÔ_/ê'À0¥7Iá1&\±R°!ÁpQdeŠ Ê‰M¤c“ ‹Ò÷f×9‹ ¾béцqöP×q×RRoÔpûç²1>£úäÊaäY¹m`´GûLñßU«K ]÷žîtÞuRyüL­é+}ìøš¤/IJGaØ`™r®—ÎyøÚÁ(­º‚ÜÎîc,ц(¯áM^1‚*P âòÈ£5RÏ0¤0©¹±ú†@$Eúdã|áÉË2TCf´–óYæ”6æªÖ|êÛ˜¢Ôº~ |o“°ª Uèj:t‡¸ðÄ!6œƒ°œÄ]çݾv~>æ‘B¶1•”;kºXI<~ÿPñ‹Œ&Z}äQTd*8íUþIy±Éøeßõ8²¹(Œò]Q㻑×õHsÁCáZûèˆèœ>`w®óì0zÃ|ØZöàL—ÒfÀR©üI߬8ÈtÑø²Qü‹D\š ÛdÃPÎ9'[Öáy¡‹>P–N °{Tô¾È0(ÐÑs“¹É»£vc`x{C†æÐ†]±“‘Àg{ó ÍœP¬*C­ËK.éAÓÛ–b„M¼ö)ý™=Vnan]Eœ¹Ÿ¿@…%6‡'gâž© ,s ãØ–Øžq{ÚF¢·äÑÿ¾}LÄ$Z0n˜z(ÄX$/6}wœÑ”NXehÕâå-é½{~ÄxcV8îpÙ]‡ÑùSÀ÷\¦ö¦ó¿®ÌáÒ<ëf Ò{^oÂ3üM3¿ÂËO.ø’騙Â\¦î‚›gcS€rðm’I”àsR‰ï•l9éx_×tàa:iT¯d"N x[y%u6Õ–™Èî/Èp:ÂOü D¨ÙRún"K ÷¿Øœ¢­$ÊüôÙ÷¨ú“ª*Þj'›½Y}ȼBÑqáLþj­Í==ÊòÊwfèÉÓ(óøìÄÌÎ×½èAZ¿èÐ~p»}k7„ïMC¬üàîl!Ð)ir·ž+KZcHœL ÔI.âïÏYz 4矸k‹r€tÁó®,¿™ÞBm¼ 5£üJ‡3à¶É˜–‡ Š-ÛßÙ",Çh)?ÎK’G“H!¹ÚógX"£IÑѿ̂½HȹÛh=žÆÇI:S!ÆruÛV$q’w` ¬žTX?EíHÔ'DÓzG ıPBý|雽`õynjV JëÚ0,H͇ž¶éÞð­áÖ>v2¸l¹|ùzËÐ •W¤ ÊkþÒ¦ÐØSœXm×l;6;¾}Â\æV€K¶–ÄÔ³txª4fÆhgVX9oÝ➈YšhöîÏÇWÀ#Â6¢ÜÎ?ízâ¶EÂF¨¿J^Ó7ûüñ©°¡×0é6|_‘ŠÍŸÉÌÞm– »›TpŠ¢®2ÿ›vƒQØý7 J̵2óпÌ©‡&ðzø•×Ô£[B½ š³þÁÓï]é_âÜŽ#6PwŸûä À¼hѨ–Ž¡ëo˦öKL”·= Ç¥$qa¶Qô›Â.3·£*×þñWè ?«7/þ¢@ÁÇ'LTù©èüÕ%¸°úY·~ÒæcúÃ;87¶´0^Å8 ŽþÂ7Ýe¿ùòØÝ¦òAM· õÕpÓ y±e]A÷@¿JŸ²þ3йÑE Cqú+M£ ü|­]ïžÅ»£ÜÖíè¡íhRBïæ*°p,xÞ\Aþò^]2ëZN—ÿÜLÆ ÞmNíGÙKcBcÒ ÷æQŧ‡};U=LèxÞUu"º´¬»›ÛŸhhyË!±SF¼}<”õ%Öà““œP[n—ïÄZTä 2KYµ#*‡OÿÙ™3†OqÄ,ðw+bÂR.§Ïçéȳi y-+Ñb-'nÕ»ªÅñÄ¡u#½ßr冓¬Ü*œé½AŽú# ·põÍug¢ÅNÍÒÇ ‹áõ—î×*äô˜°ºýòoz±$Êz¥•ú¨XÏãðu‹gß#ÍXx¶W‹|ýÙ.Q{sDN¹¼åÀ·£ìÒ­ú JÛ¸vŒ?Rªâèôm~]éô¬!¥ñ¶@®p;Û¬‡ó_Ûƒ)â ž¶'dÑÁ.®çO‚Du²´ 1+t.Nn—zÞ¦Yz×M˜Ké®OO‘æaÅk)Œ¶s詵åc› hÂïÌp1tGð[ÚÀé'Mó .üL¨{°â71<@•d’è?ÌÌ˸²/ÎæŒù‹ê¼š°š*RçxÅGffD¦Ë¥ÐÓqkdäkÛ‚n [3ɰÆDÄœJc-@ÁD»C¨4˜Ö ]p7.dòŒ¥»ÙëŽôssz i<%¿§ë*†[µgWÕ¨[úE— Ì ü¬§”yD_´3ça…ñ(€lIÍO>ôµz³¶˜èŸéÿàî ²X|%^s?!Áj!(àµAÞïÏæ’N‘í¡"еJ9E.zc¿¶Íè↸@üJ^lkHÊl‹€[\I$`ßtV9ž€\n(ÄßüøÌï1ò†˜Þ—ì^hÍJX…+ QP ž7RlGÇQ"‘Âí³Ù«¯ÇQA/T[&+‘܇C¨PÙzMUx¥Ír »Ä]Þyùl¦9ÎyÝ1l$âL{ðHD–ïk³ áñÅ{CÅÅÂñD§êÃç0ăç aš,/ã4¸eãØOÖ´G8,/?úô—eÑ1)f϶Û`a×Xþc)¡2Âð¡µÄU[ÝÆìTB¢`ªX½}²Á›‹dº­‰ƒ¦ÙÍç9üL³í‰ä¢Ï°s*é]†$’ü醨],ô½²¸ä…ü´0í¡ÌNGnÑÿ¥¤~x6nZó»¬Zˆ‰:ñø*8mîJL³³ºÒ’@åé÷Y·|b†ƒHŽ@-,$!Æ.güM!ô)æGš$:º ˱–W ûa,†S9o®à ‡ÞZÙÔÎÀÝíâv$8¤š\ÛNûC¯74ª*> ó¹¹íé”DúåϬßo G²Ðß¹4LWgÖñõòŸ¥%kêÄ™/n•2f•®bâ&GïÙ¹V¿$4l{ÌÚI‘üTù0„”o¼(³§]aáˆóLÍBNÛË\ë|‰dïÚi:_JA>Ǩ¹íÍ{¬7)`kVmå>W×N9JŒUÕÏ7TBu‚KÅ@+nÆ •4ÉÞ±àaÄ`¯§èS‚’VÁÆzÚüM G”cîYÄ—’ïI¢ëX©N½³XÅÆ]’¨ôƒ":Õ%ã;Q5•pfç•t Xé7cÖ÷ó až'äwà›Øf¬Œá9QC>Náà/Ì ÐXõÕÄaÚÌâb×]{€ÉáuÉ @h)9Óý5é­"' Bø;4%!1x‰<Æ0ÌÛ8}¨ý'ÇóhƼ#ñÍ.¼1§1N£€¼Êö`Hü= <èô‘¬´ÓVÇ}›í8½iK÷DZàØ›cfK¦¥Y¿2¡Å¢­;8¡ø\¦dD7ÃÏ›üÛ¸È&9‘urÖÒ…<î2uí­ ãH ÚT~U3„Sƒ}ý+K¢r«¶†¡÷̃3P¥ 1Ì_ëÕSY&9ßýàˆU@€wÒOÿР¿ÏÊEå\CÌÅ|8Ïúß{ 1…ˆW ÖªXÁ‘ô/Íõí#”"û€Åƒ£“ÜÜÛΣÞ`߯µ’ÂÔØAÈú—´¥ýÑnÁ|µ§Ó¬—Së(Ä _}`ŽC)<^[˜QöÉØ©½4+Ûxâ” ñ_ôÊí‰4ò¼5®òHKG94™âPZ™»*ì˜8?­x DÎ=“‡›Ã †ü|®½¯Ð·ÌþjМ—±£©v1ÝûGÏFØ’’F耗r!G ¸¦XJ_Ç &a®Ë—‘C®z;\¹ëTbß¿8™m‰™{Íl`¶ìw¥:s1Rà’½§œÙ V׬ԣä£ÎƒÄÓicr°óMl‰ˆÄÃËXâÿ%!î‹uÒ)GÓ†õúîRZ×âsæ`¶,Ìç«pW4¶†‚ãç|”³VÌWFd>š]¡`N®gÂb›¤Âå³w•02o‰zÁU6üç¦ÅÄ‘>M@7'†%)|›­š®§$æâÖ*#ø«ùöüë•,É3áØà óðøblD«voÍÆ£žjdÌÃ›Žµæj~~¯’·LÈý„ «˜’*ÙüFBÁŠIp±”¢uºØæÌ1j0øÖ•Ò×s3&8êï㈢h»Y*ù ù:3€gµ€Ë׃ª‘˜‹u”…º††Á>6ÒiwSj X\WB£üM-?!L‡;²Ù ™´ØÊW³n4Üp’N~…÷­ Ç«Ùÿö‚EÏɼíàÖgå6„ ¿¸ËÑ-D~›ï£b1Ù>˜!íÃ\~ò”ô7§ÊÛ=2gLPI55â©ì˜4†áñW»‚Ø%’Å+ÀÊéžTDUaK…kÍTç³µ“EªO)î•Jc3Ì´­˜í4zª:zésCT=¾eú×Ð< {ò¥2Þb+K‘4ÃD2|œÐË{±l¯yM'Å|¾†âSWŸñó—ÌG<í ­¼Ïu±¸‘ÓŠÝ5›üL¨÷b‡š’-ÐÕ• ï”i}­Ñ7`Œ55¥Û/¼­< }h!Ô±þô{àý5sÁŽm®Úð dÓ¶˜ a yÿ³Tû&[fƒm!î0â2^F£‰ûùâb[¹Œê‰¥TØ¢M¶!4OVörçç‰ø…wsê`ξ žæÝênxOF•Ô”…¨ ûaɨ“Ÿ8Iö9µ6~ràÊ3˜„y:v{›¢Xn´8¿I•q¸ r4Áœù M±ðlða®í;y…Z«7Md–;ÖmEŽ„éM;ÑÑüLÐ?9hLXrÔµ̇Ïx.ºÍXy‘÷¦Ó+F†E¶DX‘5/VeŒ0w½S$³´¦±æÆ³c>’ÉA»êq«¡Ÿ©kᘅjümª•ÝN9­u%n”­2å† ÍpPVp»¼Òs¿Kõäo“¶*¾Ýß ÒC <ÈÞ… ›~«_u7U7‘òÊ|±%2’CØ50•}Ý Bd¨™”{}òŒ›S׉ *™¹gŒç·øB-òmeÓfAuy;h‚>Á¼>­l#„)©‡Åà( 4ß“ üL»¸ï(Ûý.6jìe¹mõ9ô»îøm\–‘Òý6GY•–×äwWBsüƒq«UÝWì¿ÎÀÖò<¸¡ü$Z=š… ¾|ò=1‚ÞÈü¨5]°«½qã©PBÎBîUhÕÁÏáþé®CpÉv ¶¶“¿4]Tôu‡¸Œlú/<5ôZÂx™$|Æ yôÌî¤fß™*-Ápt³œ€*˽ªæ´BaÝÇ´¸ Nнþ Ì« öÚ|ü&ÜÝO‹  d©|ªÓŒ]ä¾`ÎúúŠuÀ•gðsKüL­ñƒŒ‰€Â+kŠº·D‡½hý¿³ëñ‰  f¨…€èszîÑ8GÙe]åôÔR§_;{iºV²»s/‚ nsZó|2½¶ÓrÌȰ«½¸¿×ÖÆ9…jWZƒÂòÏcdËÐÌäkîTÆ_ãƒwœ€è:I?„OJqaåÙº¯íµ}ºÈ4¿,l'ç Ïõºøqø ÝÚøÀ–ÂXÃ.K8Ä)÷ŸÒª¶àq&2™^ÇQÉÝêNð! –5½Ãï6eëÂÁúتg¢ÆÛüL³ÝDk]¡fÅWŽ€o1 âô¬á~—&x´3z/Œ¸(1‚Ýs©QLW zíë—~Ža D^/ÁNè+£Ut6é+Eü‰$}eóO‘44H<\ÛökðÍš1“2ˆ&®¾Ú8uð“ÎvÌ@8ärÔŒ>3¶T*þÚ:Î|úÞ¼<ÏYÄ!zCºÜÈW¹#‘%™1üï±ÊØ,FVüÕÈ~73œü}\@»äâ(5(FÛ“Ç“b­¯i’ùŸ'®¯G €Õ4ù×ð95nð?­ŸÝCË àóTŒú®d]÷º›¹—0H0;d®n}•Zq|/ÌÓ¶–â–àzd¢×8ܕŜœG°×]ƯI¤P˜À©ïçÅ>nRejðž²ü˜xÑ@Ò—GbnóR0ÕÒê±O­?rÁc_…+üá ›uñ2ã C>sô–2T_aÌѾ޳ݑÅÜÁ]52Â<…,ùC²hjhAdxœ.ÂGý©%O÷U Æ8Øåp|úÛ%ð™ö®§Q?*…—>ÙÌõo8†®>QÏ.%Íч 5Œ‘‘Ÿ›8Š#S9!tG, ßÌú=µ¦:½g½Gƒ´c–›'µAb™Á+eßb{J¶µ|“Ç…=mcî³ Bé.mýÆE;÷^$`p¸X¥"|,û¬#›¤òŸØ)×ì 0I=áBŒ[±ï.òíѨkÆ`ýóPæñIü`!¯•Ó»KO÷ °˜—¸¼—ø<­™ö§ÁÁXü|µƒ-]á ÎüTQ\†)Ïju.h3ã[v\BªXà — HJ°Y(ÅÇR0%cˆ³EJÏSMq…*¶äº/YQ2€L½•y©ƒ,œªÂÒÆï'ëR{*â{6íÈ×Væ¹)áy纛±Gp!œàp'–Wšúû_`»Îý?;U"B´är[ý£VÕÓGã l†0;×oŸŽÆ—gY³F›p¥ç#  žÀáÒ̼i3a—¹Lìán} Ó“ý_ ænõ踳š-º|ž—m8õDp<°XÌ“³¸:|Þ'%¼/k’.ÃP耭YÔ‰O§ çž‰iòð »ÍÞÿ½¦2æ&Ñ_ü1_âjÆý³Òh’ð*“t\NûúM6̳á5G Åà^+ÈÒO4WòkU¸º:ë/Hp37•Ð?1÷¨¸8Ĉص ¦î‘0tJöš$pפ?›ë\ïDDpPá­Dè” 9Jà•G“GÍRŠIÀ×I³Ô(ó7R<æ<Ìx‘J›†Êc«äƒ§¡=¥è f|±x+3äPÀ/Î\ñ¨F1!œF)=:ÉÌWwW­ïD Ùu&ÆŠÔŒ Ás†š'KûU«wÖÉ¿üðÓø’%ÂË­#¹NüùJ/;úÇ-'Å,“WY:YÝÌÖâ”3Ÿz‘:>—+ ΈAlòŠéÖ&¢›â˜%rØ ­_¡õ™"ãûÇøJæBo—pŽ/q¾J<§Ž`Û?¸ÍÃZÉÜm>Ž#ìôOm¦» „’‚ùVñuÛ¹¼B} ›¦XëLcG_›’…ýAÿŸ_é ¡j^N‹]AÒtÀ«W/]ÓŒý½“Ès)Oô!7XµÚóÿõÖšÇCé>iŸZµˆÁ¨RŒ;Õ×üWåj.áoi1‘º&G3€þ=†0e¥Ëøç$'üIaDså¼v¥$†-ùÎ<-–NãqSŒÅVé&›‡`nlñ¾’jÂã5™^ÀºŠpu×3IÕvÍñÚ¡6¦…,³4ÓË?§ógÏ–^…¦î¬ôÅhúVW|s#ííjºQÔ%¼ª^èʺõOµü¨+àÞ]ÛŠ£AâO›x|FU‡Ÿ"`~QƒÓ\Ví”ì¹5FðMÚr2.»-=[(ÑÁJœèi’-ƒÈºØv‹ à7ìui8üL©56Íü÷yj®)¿o,H~ ðíG%¼½‰ÛÒEâƒ{üh1ÿ‚%£‡ ïc¢¿GòqÆvjVÛ[e·Ý›¶Åé#ËüL­Ò„pªŸ¯¾ãI¤ zçÙX¾Ä!aŨ#bB÷Dåon¹MÛÇOYÑZ(ŠªØ,®ž‘0à2èîh×0l™Ô'ÆW;SÒ„G ¿‚…Æb8Ú(t=’ÛelÝ@LÈ«?÷¹xå'ƒLh" ¨ü×Às#¨É¤Ò?’{—–VE©õ ÍÝÇA)ÙrÅH('7"joÎ÷zµjŸy€ÖЗ:ƒUÛ¼X¢¦ï!ÀÿIôÂ{³Ò<¹ÄAÁ '>‰gj•¬ûÁc=EoÃ{Á@/lüIöÁC(J­g2UÐ%B̵‡§îÍ630"©mæ? R\ÙÔƒOr½rŠÔ6¯Ôü·O¢­`[âÄW˜Á^³î ¹7TSÈ?ï}]ÜÑqdßâoÇÛP£ZÙ ž–¿ÂšG°·£KAë.›Rbª’&%(‹Œeú_׊vr”wÿP~½3ðçó0TõµÚo½ýFHF9Ü qñneßGcM§eØ~v>Sï ã &«æµfŸ÷‚„¢Ü8tc¦¤‹ñޏMÏ“ÒüsÖHô,6·h\µ•üÿ¶ÍøùüNFIMKÞ4Eï=•©ˆÉ'ÔÃM2rÓoQ‚WýpÅqH÷88gì¬[¹ÅÌßÙB÷,9®:çùó>:ùª'3«•pêùû—ýÌ£gõ¡ó7¿6^=Ö9 zŠ. ./Ž·Äå"žâ ïÐ| š}E¶J)¶ÂtX]*98Ôg>Ãr€÷Õ?º”{XÆ;N™2q£¼—_<óMp•š@»zz³rbùVG³‘Œþ“Ê£W£UÈ&ŠŠ±Ñ¡dŒê•tÒfí㿚ÂaUd“Ñw_ìû4ƒ6|gzD䀉ÄÇüJ ¿»®‡ gÐfÌÀp!uPç2ÃáKUXµHí Ì*Ý¥õRëÏÌÃ6í¯}¦4‰ÊÔ}u¿¿í¥ÒFù1ßEó¸Çt«HÞþZ/ Gà´¡†Q þôÞr¾!§¶NÓÅ(®(…{ԿЀ è!9›¯ÃãsSýÁí—á½Q5Å[ˆ#,7žÉˆQ=7ËÉáJ½Ô‡=|kùX.Êsì#óël³l8z¢|oKèóa4•“WâOhŒkQ{è@EðT¿<šrGŽ7 Æ(¥ÿuGÔÕ¢#`ÝêÜ+ Ó a˜á¨üL­Jñÿz|îÞ.+<…,£´W[}+\½D.eÜFžƒ¾û¢XÂs`áO3 ð¥/³œ?jõl‡rueÔ}„aEL?¯Åa}ÐIï +Þ]hÓÆ¸êMª°ð·Ìb±¶èêÊ ᢰîÝÃIûT¹DF/¿Ñ¨’ÉI78²£ØðWqD^—"+8wy‰L€“Êeέ?)É4£dõë'8kXB-\üL¬~h\Õ[ãLYÕ$W97òdF7âA =–¶ƒsbi³ÂI‚«§ØßÈܶZp JêMz–K¢Z4.}饈LÚá"mö >Åèà aYDW÷¸böÖK¹#íÀ!êD@TÖç:ÿЮþ(qì,—?Ž/¨~õ*„uΩÅW#Îûè‚9±ÐÉ¡7j£u…VÐÚ—LCÄÚðÅñ6w9A}1ÕÏݱ-4ú¸’ ;¹mÒþ&íõ:­³ðNé¶vÌgw„ÚÝ|x®õa*Çj.´–o¦W TüLµë÷‰G¨Œà‡QuÎurAçâ¢Á0?ìž„âÈÊ5Kò×,¸À@Ë*¤ñ/ÒïŽ8_4$Íç¡\¬#ZšŸ¡DËzM#ÌÈÿ÷•ªÆúЋ„j1¦¢^ÁCl¢érJ½|_»IÚG³+•xVèúi³qlØï¨±bÆãêÙµ’^ï~Â&–¼ß}dxþ,Þ…c•=¨î‹ â¿~•q)™üÕãÕ ›òq[]ØÂ#Îgûé¶§tZ2ƒðÒ8Zrx* ¹UüL©5¹a(zsÓ¸û·xæÀì?ÝV<^xhÌüDÔ°#Xõˆ3ÈUDúð†"ícÉj’H 6Åi”±UØÑR믽GY/¿c.ËÞÁ—*Å[Ì£gÄUÁ¿o*`‚®geCß™¿ÿ.\Œ»ÐÔÍ.¾¨l2d€vÀƒ’ I… Úk…¹ ÂK†C6lßa8?±ƒ¡0B> 70:’ áÏ˯JÅ™ "ã»ü]çÚ®ùe¹Rõ&'ÏT »Ï–RDüìëÆÉ‹ ÷¦Î5@Œ§êòDŸ–É«’‡EEÇk¤Î“ü|©¬Lü‰˜Õd¼ö‡›y2SïøÒ€ §[D)±Ô­8_8Ýß;S¹è EÅ. œxÄ·Îs°p¢Þ*G,£:«Ó‚'HkV¬™¡[±IŠg¡¹™sÂ+0ê¦ûÈøTqöÚ:`*}XöÝ• ŠQB·{aË:I‚Ò°, @ÄÅ<ÑÊ2ÃÏ›”nD úA±í¦V(ÂP Î;_7ñ)2ûz^¼êOˬèá—&©Xf\Ò¸š>ÞzjøÁZåPT ¤ä?PÇtÎo•ɤP_M¾©lkS HOÊì[ÙÚ; #T©g¤èÝ$èDßŽÒ –¾›ñr›˜IÐ.×ós:lɳ&ä BúâJB8N°G.ÑÃ|ÂB n,Zy{ox 5ÏÍ Í";dªcÖò—¸;öJ]Mî ¡Õµ&11ôH¹’æ_üÿâ}-QßœëŸMU'‡ð×ñ¢uMˆ^«>x™s¶7I9iüKœµÂ^¿nßUûÓX”÷8§ŸÕev:ÑØÐ¿°®ÇQv”r;Qƒ­y2Jv¯Úý3þ„Û"¢À;¥Ì`mŒ^ -€³22Xâµ +¯”-» 7³È]Ke­ÍY™ŸœíKnõŠEÄÞ’3X A„ú¥ûܤC«RDï_ÓíH>_ôÖû¯¾ç˜·7IK|˜}µasaópi!ˆ~sѦp £%eë]z1¿üÆkûŸŒƒ*Zij&ì ÚˆúIÃô°¯ü·¥4å7 ›JwUmà¿2rÄåÂEû7¿™ØÔ?xa…[¦ö„ýŒC‹#£ÁK§K}?¾ÔÿÙÊÄ(ÑšëÑcW½_þÙ8:¤ºQí`¡ 7<ÒµT9©ÇªÓÖ4ÙÑå=OZÅÒÏ+K5ÒõeŸí2béÃÈ!ÕR š\bìû:ó_Îe ¾ÙA–éx#L³ü{AÑÑ‚9õ†ô¿°­Úw«‘^ ´—ƒ–®pŠÄ«üNM2“J1$Pºâ=m{^¦‘,‰FD«eZÞ~%c÷ížÝºÐLñ­Ÿ$xwÀ†j¢A5H¬÷”¬ïêoŸ˜%›uqÖè=yâñ;G[ + x¶ÏA|S˜ ¾"ûHÍ8vÛ+ž Ã…Z<Þ´ÙqFZäØÜj‘ËQ¡¡|½v”½ØÑ%Ô:Æ¥i&lƦ—7.ÌQµšK†µŸW”ôž-¤¿ëV`¿`ùi1 ß;V”ø×\‚qPD-qæMòá~Òsg£¸ÕÆ©Ú*,û(©¨šÇó-¹0]Í üLÜ» —líkNžaÍe¬½ƒÁÆ^Åo3ºÞÚQþª‚ÂVFÄoÄ‚…nîNZ¡ù^/S¤‰ò§&¢¦¤7jŸ“UøuªÊl ¿ç ÛúÇè˜Ô ðºV“¥{Ò¶‹ÚB ÎuʨCJÌëÖ¨ùÊýŒ|@ ÈÐÜW ]ͨ7¿:jtàç’ÚQ@øÞÂÖ“_CëBQ@ÂJ'PÕ©ÓbÄlŒd¸tZˆú Y•X¶qK£4F±A.ÈðFÂSÔ£0„ƒõô((0bOªÂ^ÛŒ?Gá›J`§Aàz;®è&ÛvZ6™NèKàÊv®ü0šÿÖñ~Ï×%4Ø<9åž³VØ+vwn#PÒtTµšΕ¯ç¢³ øéYoìd’Çõ^^wï ÚVAÞ¬BÐáÔe§£Ö>fäÁvOˆˆþç6g“µÝªsàX¨Žêláq²k¢%ÎÓuóZÀB'nS¾xÍöåÅðÈöçfê¨;«âXzV¯´®ªR‚æ|Á=OcíðÙ°¶ÔÎ,"´_t-—Î Èç›j©ybÑ×¾Yó>’ëAÈßÖPbÉNsÈ4ô ž"¡°‹ .ûÇPâ¹R¹:e·sg‰g «L/‘⇗{L-WÉ„ @zƒÝü±/£·'/,ìÆxÖx:Ü@þ.÷oòí£ÿÃlF]p¦ 8:™l˜"8Ý>Qò\êØù߯‰€ ÉN5{áöŒð”M{•$}¿Ðãwa’#Ouý¶J²\7„ÐtÅù9ý«A]•¥kîÌ9|Ñj¸®…‹ÍÁ½y“åx'=?{ùѪ‹\ûæ6ŽÛª0HÌtÓºt,Û¨›€Êo¨ÂÒCá* >@i1³Ã6]{…¼ŒÂ¢fÌ6\äZ1Gù!Òš¨ñÄÿœŸÓIÆôíH†ïó–fë°«ÊQpÔec´&ÙUKê$†¸üLÕú î 1xÔ]Fkõ*.‰ª¸ŽÒÛ²Ñ7!ã¶¶Óy`bpC[{eÌ&Aø-â?î¯Áƒs.gr$⤱=ëw4`»*OµÿŠB% mùIr–,™w..2ðò ¶¼óÎúتXu°ûfȇÑàbóClé óÂ:¸¢Ýί°Um¾\'îívTUONW5x)¬/NŽQU—ùĤ’gY¡–pîÑͨò³=ìĹe…²ø†ßÝmž¯€¨šZpâ»çëÖño@ Ô=·o‹3ŒÖ=mé›NLÝõõCgN –wiž®Áè½,Šü|®Jj–µz蜳Vû‹n¾BÀ ˆ¡¨¬|-â ¬ “¸\KûÞ[ÀS’±)CVÔnÔ0ë–Ȥ§+Ö£¡’{Ô)UlU~ˆ«ÞÌyÕ1Fg‡ºË5Ó|q"e§¹ä‚¾Y¶ŠWõ'²Ñ‡`ÕÙÒ¯!à5"½ †!ÅNlB¥W›‡·pw{Wíñ ;|&‘(œ¾ëÃLM®@°àó7σˆÃ±>hÓ–v§çæÝ£¾U¸/É9q¾2¬#}9·oDßht•æ#Y~Ôš$%\dCœ'¡¶%ÔéeaH 7`áÍ'yzE'´«ß¤Ø.ÇßM‡t¶Å%£T¬MUêùî Çb.ëU( ÿäWkÇ®9yZCOⱉåP <5ªÌ›+²Ù7IoÚe/¬ ë¶_™íS“~Æì†~ âUʪ¯›àâ±Ê,ƒ¤<£(´TY6y™—Ú3^ìA¼x1'wòu°9Ûy0h{›4•ÎUü6l&F•á–ç©;šiµ÷ƒ ƶ˧èøaTÁÆ¡'Ö&§ÛQT¬CòNœ;.à%†‚ÉŒníyèý+%ͼÞb­Vy21ÃH¼a¬mÕ¿ Xõºó%iÑ ÌÀx…$Þ·;N@;A±žó”ݱU—¦¾Ýô; A ï¹8Ÿsc„Àt™%£¶0Ò7@‰GâMíeDp¸žJŒà›£büXd9oªw\G”œm´al‘T?¤!r¶$dßö#TmE>‚Ïáã4§|dÚ >¹ÒÍör'b*ç„Ö OggS€©ýÄ nNX\?êðöÿüÿVÿüÿüüúÿ¨ÿëçïòÿÿÒöïêóÿùÿËÿÞïáêöüòéåçèìÿ¿çäãçîéÿÍÝÜüJ4¦m~ÙE“g5½çAj$U.‰¶¢¹ë?VE(êí —~‚ÝÂ=˜7<ùrÝkIj[oH7qªòÝ¡Ù^øÊ-;-GÏ -a"Kä7ñ%ƒI|‘¹Æê9Œ¾“ªbî 1` [ë­0Eë®®>ÃmCRG^oʃ¾±qËÛ~e-䳈¿ã—V+ý‰3ƒIäxƒ¨Üv±ð™ûþ¬wZÝÚêü±[øQ†ÌˆJ‡T†xUŒa±æJ#Ì[1N“ h—,)ânbŒ1Å^l/Ÿ^ßÄ•Ú4”`€ö0 ÚþÙáçuéÁÚˆ2GˆÁ{<¬{`)(´ Eß%}`6b“'çKcäd—¡Ã ëfglÝ!ŸÆDÇ¡V¥l˜™ˆ@ãâu6îüY‚n“ÇMºhàŽë¢Ñ‹™K/ʽI„ãf/‘ùïSׯÇÏ„7â]d­ Zøí^…‘Sû´þ^ÜxÕ%¬ÅÙUÀP’d ´Z økÆúÞù&WƒGX™a=V«"|ü°Ñ<™Å6ŒÃ¢vXÜF[,÷K3òО|óSÔ—SZž¹·Ì ×O]T;o©Px³\9ûgŒÊº%èäß©Îkt-òç‘é*” €2¾§#ÊbûùÚôª’r¸“Plu)kñl|±œ–#éÆ÷È;%\j],ø¼~‡¥9-”}íÞj#lÁ³~ö!Ï òt”ø ‡¸ xJ5$/+-k!ö%ç„"-IY€—¾óÒTš — TÖ’ö¶†ò~eýUY’ÝÇ”,Ä,—ç^]ñ™õ•ÍîP2‘ _Wôß ¦¥¬Æ, SQÜt½üL꜄4ã€HUÚÚž÷lü+qæ^?2DPçŸÓ[u’AˆëófGÜ)i 8QÙòæ™Ó=r²…Ë‹¨´’×ERë›|?[’ ´ïÚ¯‡jW›<‚“Ñ%ÔK;ƒH\Îlh­ú„þˆ VPâ|93¨¡þ¯Ç×¢ýýïëÜ7-óÊyko¥­gµM}ìn“^¦`<Ì=‚T ú™?<¯~Œ.YUDùuy´ë`£þ#> 7ݽ3ßKr=–`òb¡D…7„&º¢I‹qcòÝ WèUEX2¶dwcȬ¨ ƒ5‹“³+ÎSçÑ÷>ê5_ /ä7~q¾¥"üÛ¸1°½«ÝœæIºæŽÿU²3^«¹¸ &™7Øž€"úÕ»v¤CÖÈ:tT)-!ã@Ì 6N¤DQÁé’6«Àí ä{Þ,懫¨ò&¯Úß»‹R/yˠўīŽ"cåÂlîÄvcg àĘ-ä$?"u‹x>–(iñƒ\Ý~‹ÖCJa Ç®¯ÚT«4Ä¡u ;”—ÒŸò„êŒ<Ïâ?>²|ÈåÍ&¦û¤„³’[C…´— $¦x˜¿t°á[PKV7 n@gßIc–éèzð—ºÓßÞ}ÿºæ8KòÃ× N¸üRZëüßµ;b샕¡íJb À‘uiñ1Úœ >·]à‰ãÁ“°ð2„z®“"¿ØÏ;@ñ™AÝP<p>kÖ€RÉí÷ò,µoûQäŸLÜêS½ÊÆíRö“†s¦•ó®Zè?ñØýQm ð'ÆyÁe†J4º8 @2AcŸ Ó^2*r„ ŠtpZNôÜÓQôÀEŸ<`¢éª|œ§¦ PòÁsÈŒìÅxa=FúÓŸþáf½»•†úrŠº†xïÝœ—;$ F@o¤Q‡Ü]ßWÅÙ%Âõþ÷‡‰C©DrqöVE PFç™ ûÏ26)VCz›?(J…g¸äA«ßËCI*<0‰–±ßÇ›ÜçO©möIiZX×—a1ÇÈèPÎvÂ{a!ØýU¥@©ò ¿®hY_7nüBÿÁÔ3ö½Â«V}áîüX·oËTJ¶rظçóIÔûÜ»ôëaéðßÛ²X•aU<@3 íSvÎØy¥#¶òß§dýΪ}Ó“|6zô÷Á[·æÃù¶¼&B¦»hžLPS;m‡²j?Š,­1vŽ·rÃ[¼„\V“+òÓ¯_ /bàÖóÔ jÛ^¾-lhbZWP<–´àx­I.qÑ!! mÚÅõÙõŽrà&?RMŠø(%kÇ@üLËÿ“¤â`Ö„Á!qm?8IØáˆë7Ë€Ë éß&$/ h·¡'D¶J¡B@ý·Ö£Å©s—ãršÂM| 8Õ×–\“ySé ÒØïq“¢ØÇí®Í•f@׎8 µæ£ïRJ¢GA÷WÃ!}óºæih+áª! ”A)ô¾i|I¨ŒÖ^=Û¼“è]Ãך•î„R¥ÀS/ *{7 a%‚±~Ö€7&À¨ ìlTrÄøLåèzPu‚b)]å‹;áIŽMãH[‡Ts“½ŠOF‘ÇNhÛ?Á^…&CÍÄÎÄìì¹7`ù6šo›vldeü¯Ý^P›FÓ4}7Àtú~–ùú’HE ÆZP}|´._îò€¯ÂyÈüQÏ3'ER½EÐ0j]_”%µBò$²ëôˆfD’ÏÚ/ØNFu´r¦›»R›­¥–T­ æñ.i^÷µÊLv>-SŽÝÃË) wTGµå ’@ågèÓ >}€Í–›Í×Eóp±°EŒÁ-E'°YxÁ àÀd/ßdŽP U¾ANZÓþJññy}ªˆû}Vm¥¼øuý=€ÉîqÞsßÊžŸbý¨Q2¦3›¦½™rûÓÑ}îk¹ÐL ‡züX!(èÄL ìúÜM]Ãüå[¾=¼¢çM¹:_ EelY+;±3¾ÓiD4þãO ‚j7ìœÃ3¬!LjZáìÞñZ¸ðlNމ ½J9@“Ó†>%º óÞ×?Ž^9äAY Å×. Y«ß>꺅:ðÞ\ä}£ïL—‘¯ÆÒ ¼×zŒ`†&"ûùؤ›Lã_t;Fïü"ß Û#®¼^ñp"ø"¸so²ê˯³©´Ék1ò;€ ž·?MÍïñ—9ŽÝ_Áîõ;ƒ–“y¯JÏæÔb[­p8äJ(’ɪ@g–OÄm7kqü±µ\Ï­L xn‘E/eŽ&;[«w“«·:¤ƒ ¾Å>Ÿ tιÊ:/çZzjô.ÊuË…WÝJÂEú%_ µî…8¡îwÞÃá#ã>œ1´eß׿!ƒGCQDà<¥é¦£rÿ€«º„E$ ½g,zª]é|kžÔ¤,Ç;ç½aØ@õ„”fgäÒê…ƒ£ÅO‘î™_] ' 3™xÁšÓÄŒUÕî¼±ö{u}Y¹FXã0è$”Ó)(®"Wå!…—g"äéy×µ·ä“oß`ÎÈЭÜ7)’a Öœý…ñÅÅ?ô(¼ü®ƒ®%J°±•£ò£(š‰¤ÂT>“ïy¼×ÂÊt“ïȃ‹X…&ðÏ*\W•CŠì=ÉIÁ%âî =hñ4Æ/ò‡âøâW3I&cãÛ;9 /2~œä¡ºà¿PPŒòpŠãëGÍÓ‚PKá•»ªÍ„ÝïÞùIôKIôœŽÿ¦Ú[ÙÅa(6KnX@¿?4Þ <)‰·zm…£+˜t<óC»ËÁŒˆÝTæ*.]¾þ…ún.1£úê{Ôû¤]qºçÉ›¡Î¤DPy—¯+ÒF©y¼4D_‚âg´7°”¾¾]ÆÔt³¾2û~¼ü|¨W'$wLý(z¹äÉ'×ë_X,[|ïnîv @Œ¾‡¼ß^«dš|—¯›>ùÕ2zŸyVƒ ¨‘j"üÏÂÞñùZ3ªF¤_µZß³zꘕeÑ0ïš]¹œî›p*ÅžðOFn!4miTb]Žíát³½FèÕz¯^ûþp5+pƒÇ ¼› Ô6@cÉÎC“986#ÖÏœ¼¢ªè๠ëõQv¹è¹ºè-‚ëó¸Ùucš¥¨PSe]eBY„ÿkÝiœÙJ†L¶J­kõêu~H!_¶àbëÙ!Ú˺¦ë¹'(vß0¹=­Ãި픽Rþ¸[u…y”¢ó}¨Bª#y«í9ôV_‡á9 ÷+‘?Ô /·g‹ºÓUPưW›‚!¢V‘ &«f»JÜf{è’eF$F´ò{úNÑÅËÏÖ])[W¯Ã8zE\.ŦŽ3VôÖø ß}÷ƹT$[øî™ ”\sûÈÁ‹ÎÅÅþÉÞw²Ô›)Š@Å-à:ITh>í)4¤g"ªpe¿Ë|†üX³wpZ/œ@J "cG­ÞÞýãSÝ]áÙ¬Sª®Ž ”–âu6dpì9t,²ØŠ£•Wü6"w¯êH(ÊÞ»Í ƒÞ~©½OûeYðÈbÓh#ˆ«Ðûn˜¹¡©4>ïÙ’È´Á4Í¿)j2«ò4}MMQº¤'ç‡çݯ}síõ÷@‚ÎZÙI˜$ÿ½!‹ñ¬cbe2Óˆ=âdì6D²èt%‚ŠÇ&êÎ_zîÇhnM| Â˩٨ˆÅ ‰±5Ý ÏÛÚݦ@(‡]Ë%å²x=G¾£<°ü 9BÌl˜‡ZîžB§ØZ*”±ýVõÙãæ(ƒ’ú¨nÁ AüMôÑIÓJ öI9ØÄù"ž6\é'm=»U—÷·¡£¦äw' Vÿ;æ)¯R×$#4ÜU!ûG0DZ¾ŒLÅJVõ7%PWwk×ÉA¯±°E<#í×­þ‚]¢qoJDÊa…ýú@Óê¤'þ‘UÙIÎu¦—œd/£Læj¶kN Ž]ÁAç¹.u)$59†f‡i¡/ÍšlÝüGY´öþd/Œ½)ùTnˆX µÇFca´xyŠôÛPw­¦ °Ã#ÜJ½ÈÔœP®è¤nÉÇ_`Ì:ŸsÖCé|8¹¢Î§õƒ¸øùâÌdæ×Þ’ö~5?”!{±q|cSª5A¾™¬w\¬æÉ”™åí‘ ŒmW D¿ ¨{¨ˆÛ>w SN$†Ñ r¾%Bg„Ð!]¨» AÇŽXÞÙb/„Ï¡(EˆÈ›ä Ø/¶—bÿªßtEõ倿¤~–Úæó½ ÆÀÖKv®ˆ¢VãÇ[6²T—;m¬Å7ïðÞfå ®•;_Ãùþ¡oÏËtÊ…ù4±¢•¢<‚òÖ„ÒØƒÝbY:Âu¹¥gO]6v¡¶RV¥ S÷ÆýѲˆ?Ö£¹7í$«·Wü°ØÚ2œë+jóc³ÀO„Ð1É $X!ù"L¤ebF>g˜’±NåèÝ9¯ªOrŒ‘Áñxlý È4›'ÃÕàü+F3^zÍQR›Ðx;°¦K¬I£Œ&Ù%ÎWÊ/ïAQ©ŽKv;_C(è ®j‚Sî…“† ÇŸærÜVcø4’åÝ\„í¡½ÚèI7ã Þ®;ôµœ’â"‡á žx‘ŽÛ8À  ×3«ÆþÉh/ΓþMXòyHÙej¢jXðpDØâ:“ þ»—3MyqA\;-Ùõ,¹[•¢k!˜Ét''–ñÏéKè%ö¹ü± ö¤šÑüé0k½h}7Ÿ„S8là]°¬˜0¦Ò´Vâ ?¯]€Godu–¡î{*VÐþÒÑ!åæºSo@Ÿ[‹j±jÁ‹9ýP¼Ü¥ËÊÀ<ëZ@–Š&‰¨ëq>~ðÊQ¥^žÿºÚÿ>üè<Z/Àblóƒªâ{‘¤˜mÕ© ÌbLQœòièÊ)àÂÌ?C ù -›«ªö¹ËEl- ùªßdm îÏt¾4¹xM§ Ö i§ wƒ½hvÒ`¸U À‘à üŸfu_’Á‰‰ok˜•ªL:›göïôçWìqkè€B–Û]œ»”¼ü´ë^àõ‘iAˆ0þ³vñ öõeCm¿<8!Y¸´…h¤p/„í–Ž~$¡®¢$RëÄ êo$í.çð¯’ÿØ I@$RŽ­­›R^3Š@ÞHrìÒÑ;kǯæÞ,{Dp¯¡k`ž"— ÎÉž3‹<÷&«ì¬[é4»XŸt™y[ÇÓ2á ƒRÊ•è†SµìE‚õ˜K1Ðl[%!úÇN9œô»§F›¬Å—âj¬–2Î,9»‡Ä.ª%8¾½§1(ã´ìY ?‘†oÄêf¹KúÊÚ׿ÔCƒüÔJè ê I¶ãÊêw–e‡wõvˆŽgùF昷 KíøF„1ÔÈÞÅE[߯dÇ Ú‡ ½€Û¤´Pµ¼u†qiåÓëùà†Õ”V '(¬ :>¯F/ß‘“j?ñHƒp°÷€ÕBTÀOùGdºE®ü([X„ (zøù·y×[ü+ð‹TöÃÆSyýîÒ±íñ÷Yô¥æ+Œ¶âšvèQ/+5Ö<" P€ýI–ò".¡ýCÌÁ‡1+èr/R6 ñúèüE_7‘q¤†•Ó+QÚ«9PÛÆQ× Jºü±§º -Xú*k¯]´Î-,P<ȪWBþ™õ+«¦½†(%í[Ûång?¾è‹3¡ö©7_søY<½Œýšô7ð‰9Ü“¼Ü\Ï:kË#Š ³nVªn -QA¸ë×[•…ù]3Å`èSÄ!á ÷²âõu:—V>”ún\új?|<9 ¿Ï²T^Y›l!R—~*»HÿŒZ×ýÍ16N†•߆C?ÏŽ˜2Ê‘¶47…"r(~Êe „$IŠ`›*ÝѺžqgá~@µÊ(Tw¦'¥ÑõÖâûŒ·feßzJ€,ÔÊ:û·Ê»ü°È,xFÈ¥ºÓÏF¦_XÛ:+}Û¯IAU‹vo>•ðF\$­âî½»ýwg÷6ô„Øëßô”âº'R'fƒ‘᪯¾[Ò§ÊÎ;&χ á¥xƤe«µi ±ýÍ(‹æU74gê:ªîüF¸4òõNK(V¶c[Î"å¡Ç° ÔØâE ã\q›‰„ªâþ›÷ïT!»ÓËc**+…2ñ2:‘©ÖF%>‹ä¹CoµËÃp§f\‚è Q)„ÄtARw]ûFè®p$zRð¥æÿUÌÆ.|åö}2P[n²Xªjà¢PLÌð¼ü¯4t%OÇ>ÈÕ¥k:äAÂÜÁÏ}187˜kT¡:äòßÕ FY³ °vfñʼ]¸ ~øøùYÞ£Û'ÔÚÝdÊ›¨ÙWÃC>¿i‡œÔRg¦Póí±²dÜjª'ÒL¿ XKHMêÑ lŶԉ©¶ ñ;<¡Ô¾ŠÀÊ „¹ŠQÙ»«œÚ}zö,˜hˆ+”âF´¶!E4b/3p—[’¢6doe jÂú·$(òHÀ²ãˆC7DGJ_1¿qLSèÚ6Mlß»G>ÐOÍäË ý±ÔŸ¼” ™¬rM+ú"V§<¬»üIö8vb?ˆ…ù‡: ‡E@î¯8"[ø‰Ê§’#wCÔ¡ìA=Ö‡•1’‡¢€Ð<ÕrÌ5,¾ž>”dÚ7K~â{a½¶Ë¢ %ì)'MhT+ÒÇ~r›ÆºYÆ–ÔœVîAÑîòÝW1)ÐbVÇΌ4ä&Æz¡e†å1âӲƂi¬»½‰¥Zâ Š{Ž|»³ä.gÏþ‰9ìîὂ¼#@pÜi·g_Ø:Ë‘ô-¹¡ÎËÆ†ÓW¦ãÕ¯•ë4G‚µ¾úü€u ¼-sHÆ(„˜ÅõŸéœsPfŽŽLŒáGC¸ü6rcǨ7ÇbÈûžž.G¬õupR’ßÄhÚ''¼.ÈÿœÙr{þtÀt+ïŒHØ+rvزEúÎáN™w{%´‡›_±ÓXAÂÞ8 ¡8vÐ]C[e<ú+™ªótu×üXnä·q!ozgMèºwd%®%h8wÛÁÑo³ª}ó–x›Î~¢Æ£Šèv Ó:Nd%ƒeíýX¿ëß KåM ÷kq!*¥£žÈS_S;(7|š| ©Ù}íl–ÄB¬ÖÒPèZÍ™úw@_1@¦ŽD§ 5dÓ/†©&/GŠ~{-M1ý~>níoúÉ4rŸüLøÑÜ=n è&²µ‚.ÀÓ×33§DÔ‰­u&©#Ê7[IpÆÙI¾¦ºï¢ÑpøTSo’;×ýXUHÕuDD fÐåcI‘íxöÄÑeC~û'‡†#©OËøïyA³8¸¤ßjœŽ)ÓHö¥Ñnzž¡ádå…‰ý’y}Bbêo£ÝêJ¿1Y+ìöð¹xF2OÓd†\?Ý|GÑ£éoq?1l:Ѳ¬¦Y·áù¥º!vij,R˜u×G ‚ù‘¾^[¶NÊñ-õMdikÅÜL­¶Ä1qˆ+F©Ÿ6™ÌEõdåµä¥·#¥Ùߌv»ù¼ÍN<ˆ¿!ö;ŸCjA÷zö~¤Ä]±ÿ?d)).57»²0¹çæõ/°c¿Œn¬©òŠda§½•¯d»zr•á“j®µx`™Öå6×^!÷(×?À»]|íÊ`çˆWYk_‡. 2˜˜\Wãퟒ)áSG9²ÈälðŠÈØÇ ƒ£›«=—•H™‡8™…g }®[Óz3 ³‰¼j{íth¬¹²³’(6ZŽ¢*„Îà=[>—{± 'ó\è·Ebé¤|&ÜÕÉùKY Ìþ’.þœ“m¡¥ÏóNÁôÑø{¤9JM°Ç{9ƒ#“·+` $†ÇfV÷õÛ "–$øS9w¬7œí(DäW{Y<µÉE§ÞUeüŠoK¸T’wTÊÈ+ä/óR³¿.þà±øÑáû üS¸€M’5%}o˘Q<“P¥õãsë¨qC³?b¥*Œ‰ÖüLËm+LæžtºÛù?¡©Ô‚΃ŽÏH/ÚVÂûÂcƒJk4+ÇÝ1Û8²Ðæ…ž FÈ?ƒùÊ‘LØIç­·ä·9 *¢±Š.þ†Úëðηگƒ´)§Am£·ÓCå  |³×œ;ÙvËÔbPÂñ†d\™Š9n„S#ÝÃÿ8„‚ô¶+ãéºUw¶O3]q-e°89€-‘›Î›ÿ !¦ i]¶ÍùŽø4§!©ÈŸEÊx½ª¡³G)ŒIiBêTX‰ý.žÌTq'=(-ýbx4˜ËÖ¼f#ù©“k&rH2x«;ÉK¾§ÿPï ¶Ë@JÅS·VÚt xÃü¬üL°ùp°‹,ÂÅh!7kB<>H?4³|Ø·Dvùµwý`ºMg~Iœ¶,ó54NîК žÜ@ÎŽ¬ÊÓn)üANÖɃ¢î²×\íE.=§íâ‘„ëîÞB¹‘Ï•’_\/9¹òâ¥ã2OF¶ù2qéÝß8;P¿4†QЧ÷vfÒb nƒŒÂE”ÆÔ=VÆåõE®æ•ŒënÄ›·ÛÿO§Ùæzt‡òïV§lرĿ޻À*†¤…z—e÷ò(ßsQœv[¥Í…f¾­Q±ÛŠx”@?'«§l„0ÏCu0Ù…G 4æÎ¶Gôò „ùMáJ‹ ñž WÍÐï¶N^ˆËñÎñÔáàð:'ƒ‘6o6Acõ• Duq‘3Ä—wâìXˆ0°q‘º¿˜Ãa…<Í险¥Ólļ2cβ9 ïÜo0¸¢Ò(}x×Mt*ðeÌì¨3ûüMZÖÙ™Ã\Þ‡Ìg=ñUÓzƒ@¾;™Ì c/«ò’4!¢HT®‰ÇqLu³žÐ–/;ã_£ï&yIÄjÒ¡Ö—,.a¹z"w °çD/5ä{"3²H÷6¸-œ(G’žÌb ¤&†âÿv@„O’DL !n¤=Fx`q±ˆ¬?'×ýUÂKÍêË8eV$óÉD|„ªO%{”ªðù÷¸xª¯™™ ´Ëd²¨@8Ì]mµ@ õ¾Ytém–jÉë…aNŽFC™ÒH9†küçJ¢¿ÝOgÌeüMb¢‘îªK|÷x«6©Û—_÷kV…ÅÉœêð^M¹4˜‰H o ïM 7ž l›·¦÷8Ç€1‡#uBqªBtrj õõÊJÛ(ïäÑ.Ê6C‰ Èõ›õ®YîOq µ5àW–üs¿xxmýs@ÿzQlcǤÑ0Ð>|ë‚f½ðÚX—Vþ™+ÒÌeëç²s£o²ÌhÂhÌG7Õ &Š€½4@¬È à‘W\Ê^OÙy`~xîT³æ”™‹†g‡-ÚUQô aæìKæ@?†ä5×j6ñ'Jÿç^¹ªüñ ød;¿Ù° d–Fsû™Áãe8(½áMoåÀ}بåI„œ ƒ´—5Éj ³D[èãu£]¯­}úV³JqÓÌ-Ð~±šÿ«Gj\Pø½Ð^,DA¢7²wÐÐucƒ¤Âôï šQØq.êܱ` 2hôÄMÍMw`ÖðŒráCÓv0\W3ñÇ{ÄMx껩•þá© ¶Ó¼yí H”‹ÖKh3;-#µw¢Æa5=8+í^䬟ݓ¸£š;,íÉ:6úóLÖ¡„è„Wta@oûŠ!Aÿƒ³û@ö¢ $QgýêxéYƒÛüñ30é­Òå,0’m ‚6kPªžèŸ‡ Ëöè$l/œµj%ùPðgç:ý]¶WåA‹‡NÇ`Šöx_Ü<{i›Móÿ „ë @ÚÜùPqn ÝåœÅ+?YuMmz Ò·’™ÒÌý!N¨ªÏH5y^~cœ²+“Fj滄,°’<Ú]AɾÿGÍã°ˆò÷~#lÔB4êÏñGùr¿¤wôÒû|Á„á¦LÏ1“–M)Ô€NWåËþ.sχ©&,„ˆ¬h5ؘgOÑçT~t˜4›”Rßµy/i_jÙ$‹eÍDÓEøé¿¡…Mh³ÜüLÉ ‘’Iºq7BiÙ|*ዪAÇ#ÔmaVž5ûkõ ØÝŸî¸ Õ¬ cä]uÎÂåÐ~Éá­4§- Q~‘Ðvñ‹ Å £zím3ÒÀ®vš‰#²ªçËûµz3>ì%»¶?e‚ûõw slT÷í&4 ûE²·ëGæW4öûM,RI\ÀO$Ë ŠL}K±Žn„¡"ìi{Éëá*ÐûðŒÛšJÑ—PH#øO.¨ËP“òÐ&"ƒ»ëþvì#°påf{jB16±Ìrå>óËUHÒkî±ò˜I5³:ÊDšÙÐ3|>öüL¸ÞN' Á‰­à¢À¹‰íNóâçzåCκ/MÜ ­'—»"k â!N)Ñ&¬ó¥éÁ¿îlæê<»ù/©æ!{£û“ÅÉ>Þª£¸kô|è;b0¨SORF$2Õ¤™Þó„¶óÿù(Y‘¯Ì#‰Ô3öø¦˜“þ ™îPÓvéEŽP¤bXX…‹;÷%Ÿó…Ýé´ˆ“l¾öÜ ~¿Êî¢äQEhªH¡–L¦—¥-äÌì+F °i)úeæì'¸»ÀðnÃ2Y`>=™¾."\S†ù×qS(YüLºü‡”Ç*|€¡l®)Rl½ÜG¤÷eÀxLi4nsb^yöÃé¢ï¹òs7õ D)^^ ¡î[ª^²q+x}sB÷Hp {Œ‰|ñœe (¯$$¡E¦êƒ¨ga4þ9(7`Š,ߊñ#%ðÅH¡²ü,káW¨¥ÐIû6O€QQ܉lù~ÿê ]]>ßC)%—P}‚Ô®Vg**0”*mº{ƒÍk«ŸmÎÿª'—zݧ.ݹ¿ŸÌé:ܤÔú8µ|¿tݦ&¸™©ž©£\ê¢< ‰08‰6 Aƒ±ˆ %¿?µ"¦™ÓV|#Le# Ôj½#ûßؤZºŽc¨9’ 1’K°]‚î¥,s×üðÓ ˆà1ÛÞlÆmúå¾ýÖ­œV¯°òb_ Rœ8ÐÎÀD`š„\n>SÓ?90‰ÁžŸžyÕsõ$.8 JJš¶aÚQNéúÒ¶û]ÿX×å±<`SXó…]Þ.]½å¨]]:ï€ë)Vb8Ã'ù‰‚â®™€–‚Ô9¬¹|—º—ÝŸ+ÉgBn”…jüÌsËÂID i…iE±ÄCü›´¸Ø Òf)¹C÷g‚âá_Ì-mõ±d$ªŠ €aÁOÃÝ´P|¡GˆºBÄ!;1·Û$ãš@û»“ˆtý[£ØüL­Êe ­ø”’7ßèÃ~Ó‚¢Ö»ù¡¾4v íP[ü„o¦ý²â]¬%W @^¦þ<Í‘›Æd_ðþÈßã»kçcnÊh;ÂËe¢O€à8 ã¶3;Í>UøÍõ˜ê`)ÌÛS‘wOžá^n 0ßÔ¿ŸG1WÖUÙîŽ7AtŽ£ŠÏ9ôÌûÛ®o}ð'eÇãSø¾Æ+ÇÓâUûùT¸¸Åö…ªwãÒDÙÏ8Ï^Éð÷JYѲAk¿xàfæóE˜¯ƒÄ|¾±ø8ÿÑlŒ›ÄD¹¨¿Åã1r뉨QaUeòës™hóSü|­„§U‘ “Åû©yì§6ŽòK7kñ2Ö ÄE9]ãö´K‰¯ZéØ(N9h|]ú.¸rSR‘¾šO&ˆmÎëƒoiVTÝ×Ð+ÎÅeîªäR)xìƒËIˆ ø• Ÿüi7·á:ÎÒ4¾ˆÅÍ=Í•Œ½HÙ#“iÕ Dž¾ÊúÔÅuô¶É^ãìzΠ“ì”m®$‹>a½Ÿ•ÏöXw1›±yI1 e®ì¹üN†éìö¦ÝV’¼ Høø>|/h–ÒYÊ8ˆãëŠõU S˜S&ÙËAý[ßqá )R%e¥Ç¡¶©Êü7ÙÛÜ¿‰ÉPž@+‚ Å†Z’Ò˜4‹D¾?p² ~ªå¾É/ÍÀåáƒg_´&tPtÞp•á~ˆÙÂofMcqãè%Ié:d;}p¦¸`þŒ±C¹ˆÕ½ÉˆÏM:ù³ Lª4*çÌ.eBõ‰‹FÌŸ“òÒ+›ƒÆ@61®¯Åœü€‚úc€4üL«ª«•Â;Züë»ó¨áÕú–ñ‰@R«øméçJÆz‰©XÞ {׿ iéÃ3‘”&Ü\žÔÕ/-BúÄËJ4A–:ÜZ±ÿ=ºr2–æòLbLá÷Ú%º6´²ÏY¥‘`ÿÐø±Ì´yL ÜB«¤¡›Ò4ã)8çý׃Ç™ãCct@x¼ÚSÆÃ-¿ÙüÒÿ¥Øæ”!/MhX”+«ö —e9˜b¥úÛØîªÔ®ÊsȈ™˜Ñ8=Òž9k‚W°÷;ø«³.uJaø´¥÷Kk‰q¦¤zÁôœ]ª‚Ä’JüLºý@t ‘`•ŸJ†–‰Ÿ²œˆ\T”ZZô`¤´UC(ÇiÑPžîiÁa žÙ™XJªåºÍ‰G„ÕþÔR׎ãXöõnG{À1€QŠ­mÇîEr§8pЧªS¾RˆmÓ“­]@ûÌhLâú¦ gË’ôl¨]YÜ1Éß285 ó|’ÎáîÙ;3où€[Ÿa%ÔÚ0­ªl’ïäÌ­q–.Ì6mWÈæ,+Å>_3Ê{¦$~Ì×½{I’<ÅoR{Ö.ß´ê®êƒ&¦¬µ ¥UÚØ\c««ofî¯ÂüL´aÂ\:Øí„µ~Z½T âSû›ú—½–gºN¾Š¦ÞùR‹Éºw%ò$¾“nךjvD‹¯*¨£¡mxr]ÑöŠŒ®t«»¨oaOõ5J:§ïª¹&C/L{äë-õ²Óœèîá\Ñ,Ì1#˜ZÆ@*§Ë_&É'ÄÌl&…ФF—þ壸î…ù¤Rt  Qxw“¨Òd6[¦Ôw²l E®xµ¢3±‘ÇâbaW|›hrÎ^ÑÛî€C‚\)çkf|X¡˜ï©p…ö£‰/¯N6 |éՒq6Q÷_…Úd?Ã8û³ð?&sg+Zî4‘ÁÚtÞðvv»‘UKüî»äòÕݘÛÁµ5g|† ¨êé.·¾K”e´‹8ƒGÃJM+(ÚÇ^±e¾2PÊ.²n 46]Ý/‡e°‰.¬ãb€ú¥¥³åH쎆Չ8'ŠKWŒU9u뎖au¶ÊÖ¶Kg¿*Ýeèí TïG²gªýñ«Jñ©ä¾õ¸b–]X«Ÿ­4àivú/²}71v”/ ¾*¨PËç&äu'DËôÊ:9ˆËúíöÉeMùÈ¶é¸øÇåàüñIÚ¶¥avjዸÞ2ß⤹7·Âkkºø™Z®`ąư¹[d³7wdªU%Š/wÖ›s)!ulˆæ²äÍÊJOš!GCRp|å€ÿâ¡MÅݹn®šîЯ&ðýRT“¶‚é¿Ãk[œ*ÂÏÜ…{>}Ì,Sk1›8·q¤&ÿÞåÿoÂ~tÎÇ9ÕâÍ[U}m/ƒÖ&1&3ʃwˆÌÄ«ÍS¢iŒ4a¦º?Ä „¯‘Ž¿Å_Ï5˜Ä¥Ë$N$´Ïºq½€¯QiälxÔ€Ëûôô@÷úÖyhXv¿ÂÌ#Ôüõ eN1 x¡|ÈLžû‚ ñȽäRU/¦Ñ*ÓBüðp°¨!0}U}7h$÷4Old…9Oç<.óå(>Ö©ñcR¢ê6‰7™ý•šgsJ‰¨ f"ŽÚ\¦AÒªw“x½.\.ˆ´õä¥#¥èåAÕ wÒ¦÷”eŒrbkò9[¾N’rØLb:tœøœ¬;^ ÇÇtü‘ÒÅì9Hyú•±Ÿar¯3þ²VYv‚ð–,("ëœãƒÄ­ÿ. –¶A2¢ »mµÊ|éLÛY‘–µøª;z^ú;rúž 3ÃÓòI3uªÄOõC?£”ÏNëù OK®{j ãÅý¤UΠ±µ:qßýµªN+ªn¹¤Ä½²ëx;¡ë+€Ü8Î9´n°;…ÍÑßÃ&Þb€¹bŸ’P˜üŒ E™òiŒV˜.Ü"T°o¥Î®#pà³£ °ÁôŠxÝÅPW¯u‡Ú½àbŠ„œ"ÉûIïŽÂ…/}~ÝÒbÄþ¶¬1ªukíÁdŽùFô•4«þʳÐ_£‹à£sÑVlq¬^À7¦#ôöïHWvÉ´¸ÎÕâüLºŠºOD¾ûŠÚ&«D0É¥eãÝù½º °{ì”íÙë_¡:Ã4àÕHC@¸\=¸‡È—³^PJŽ}m\}AÙ>ŠÈ NǦº2sË£ìDÔi×A¶ˆiÃdø™"ë¿à§Í™¢JÎæØÆHÉØk6r$dËFœiToqËç ±bÝžî‹e>ˆ± _Õ<ºDú£N é½fr®\Àòñ['Æë3Šî¤‘ ¹œ{Mn· 2dù–QoÈOggSeýÄ nFz›N8âçíëÿ¥ÿgâîöóëñóôëçëôÿÕ÷çøúøõÿÖõöîôëôÿÐúÞ×Úñûôëñúõöùÿ·ïèçüL«7¿EJuÆ=°ú I>¿ÛTÙÐUQóó7ÄÄØ×r­ò3ê•鎫cÞ1lªÖ’c¢`bX+¾í¶Í•MMXÚ˜mIïÔgݿӋ²Â "íH†ÎNÞ{È@8D!nSÏȲAâ0u’ÁDoþ+Ô’°˜”eëµZ?qCÑT»ÁYæõü7êêÕ™ýVà»ù6ƒÓzÜ®ꡯRÎGîõ  †NÇÐT­²²ƒåõ°õð½7ð5_EÜÞ>YóÃ{tƒ $‹F„FÀ̹Þñ_’üÆbÁûq\!©þ˜pMî™S³0ÍNEé%p+ãD$ûÜìIÿ½€&pUoðQ‚)ë¦Áƒú¹HUó¤£D4ºË»x@!¶@#¹‹‡gÞØísø„X`EV6 鈵' [¢nñ‡gï[®“‘™)Û·Õ£$Ã9·¾"´iKi¨‘R¡¸h J¬[°ëdŒ«±¶]E6*²¹]!Z…ƒÕåçhÐ[¦&;’Õ×IÝ—´l¤ñÛîf”‘Ÿ:%§ø¿µS HÏŒ!ù]–xG“L‰ü>Ä÷Ø$áCñ#ÒÌÓ^H£üÆhíš-ãè–mòU®Mæóï$ÖbÉØ¶~Áz*\ĨÔüÉ­›dºŠìðVF°bùÎå2ø˜BÞ#Æ.xA›‘®ZTƨž¿0É»Öé7RÅŒ"™<2$•èŒ Ï {)¥»ü‡Ø"khM¤ž²]ÍÉ&¼ï´cÄvO,±¤Ç0@M‚}íqã¶³¥Ø²oñ2h0E— n–æ0Ãc\á59J¹¯µW>&Ü'õè!›ŒtŠ-œ°4  G2²ˆ¡¹[Ù y&oZé³Ü?†Ñbz+=â©zÅ!sc‹1ÍtîÎ V…E%üLëÒ¸Õ‰Gá¯n–²b -¦œ/¤w:;k¬ä òCä[ï9e7ÄŽ`ö̓ĚT}Ÿ=ƒ‡¡h$YÐ)w9ÞçÄF¸ðUÜ7ki“)ù–âÄq'Ë i™L•Úù”Í{0O|œŽB&§z>µôy2—·qŒ=ónó³aÂuZ3$ÌA.yÑRÇqá¸ds(Ú|M¢yHðØ.yì³/LÏ÷ïÖWú©^¾Ú·)où^ŠSqƒ=ìÝ Bßíñ XJX—BìX¥ 6XÆ ›—ßÅùçËóLUß0[ŠØx¤ïÜõÅs6 ÷¬Ûüõ ½ c›ÙÇ#×è«ÙØ5±øžGn´¨µÍ;‡*’!C¡"#¼€jNQI0ÆgpAÎ>:r+îÛô`Ù/jÉ­¿j?c…6%ï ·Qü;½:½Ôa¯>JDùÇî¹zI”þ¼vGÎôU©Ú­iˆ E;ûÐ C¶ŸÅvì%ð¢Üoá/Ç<ækÒ/Îi6ݸÁ¤´Àu‚÷æçðyÅßÃ,ËÜÍÍÌ Ü§Ê.B¡ë¯ Y$cfñ‡(íiÙ V¥ Å2"`Ïùd†ž×dçàÆ“Ž©?n°é:¨‡¬CŠñ‰ txoôhë8‡áç|AY&œm†ªÌp²¸zö°Øs‹×)’A­”"¯Ž,*Tl÷ÍQ"©àÆq_ÝEžëZÈ.§Î‘düË·Ô È™¸EÅuêe®ë[MšÑÉÈI…¶?ãµÝ¸-YÎüIà4´v”µ¶¥ÓÐ.n{¤uºžÞ‡ý R\Ðg ÎS)óM’ÿ`þ¥ž{¥©SƒÃÚ‡”Œð]iOèL¿¶N¯§9àY`'­¯‘ÊîàŽ›Å£G°ÙøGÚì~¥&Ö“xRÁ<(2*6I4ŒŽ÷s²ð~–Ú³®Ú1 ˜Dô¡†ÝrST~ÊÀü/iE.ï*JC×,Uf¶CyD0/ÈV­{ðåÐ5*©R~N £4’µ‡7͘„Ðßß(<¿[~Õül(k;DÂönŠK´º¡`oãŒyzc¤$ ©¨Í• pkC}ðÙ Ò"¤æGµT°F½ºn¨â:tÌ¿ep-&ã’Ž1 n –!&ýZ*?™Aåó“1ª ´ø*JôíxÖïȘ|©z,ÏÝot]¶²Žƒ#…@a–?Ë5ª$9,Äþ ˜–Ï9¡›/R¡ÞV—óû÷Ñ»¦£Mäe¿üN;j±H³íÒûvÛÓ‘’2ìñzЇ68»dhµëݨÓ~½ÕÆžÖŠ ÝP@N*èrÖM ö.»óîkÑäZ7Ç 5×~ÐUi¯ªdØ÷€wVCDî:/ Ϥ\ÆQOãÚ}_E—&9ÉíG:G*W®.Ä (“¦B2L|ï‡ e^Só!…oÌu„ 6ü¾ïÂ]‘U]ÎÑ‘SVÓª¯—©^‡aòÑ7iáüW’ …§‚/L²zî’Çæˆ¶fL|ø¼¬÷¨Ê³×8‚On•˜‚YËD1>@û?# ÉÐï_7XKHbóüL¹(;ÿmÓn#ëBÖÌ»‘AÑiáµCç?›Ý¼Ø6)iѤ÷W¯Tÿ”FOžéfñU‰š…|¶Ü»<ÌŽà³\ÎÌ}gçIJ³­W‚¯²ó戗µF‚Ñ,Ù™ßÍ Jö¶=­zÄ êÍ!à+펿ÎbU ~Í|î¬e¤¡ïÇ+îˆØ‡ƒÍªmF°HÂcÕÐ[ù&?áïmʃ^IÕÎ0Á–À.O›BM¾ñ›Ûš¾ŽGÜàâü e“»÷‘ JI4DEzióÊüVùÔ×^ñƒéŠTò‡«yKñ¬ù“h{¹—tÿ“üLò°9Íè¤yÂGŸf–ýèõr% EO,©$6Úl9·ë­ÿ°…µPP¾@.ŠÐ9¤7MÚê0q !0i§oϘb±1ç%²õ讜J&¤hOžæ)­. SRp%Ü{Ï_Q6".’R_ëxÖ¨ v”ÛÇsC9¨tVtÔÝ'äÕýߨ6[Vz&ÔLÃ{mJ7Hz­„Š_tÕ¤'ÑÜëÀ`1âp=8 AGúû¢lð„˜Pœ"­$H•Š ‹Ìn›Ì•¦'™q—‘·ëeÇëÕ¾~Η·Ógha#ÂùÊÿö,UÏ´‹mFO0~@Ÿ¹åyÈAü6gmžqÿàĨ²XjJÇÈ£J›ð-¦_ÐÍjù:ün2Œ` Ôj E~T‚Ñ@šÖÎ3Jõ>H&®Ÿ|A‚²äJ^³;t~RÌDl5ÇÞž cÒ£ªÝ î$gQ44£$n+~“.é‹‚YÊŸÖgqäÕF%œ%Š6å=„ÍÂqBÁN€7ùÁå ô(J²ò¶ÎAù¡3‘¢¶üe|æéO”¶ƒúÀïM xv ‘[æC‰,.ñ–Oªž Œˆˆ. $ð”ôå&³‰½Rµ.|Û¹Üþ€–â<Y$¶È_ÓÆjߥ¿ð¦µ–Èø2„_9=7AŠ3ûÂþÈ—HfK2"švçž1bß„€´dyl\V5’l0{44>À¦´76 }`³f ªäX–"ñs«Vî©khHxðFD:3ó¢5¡V*ÈXNNãó)£CBæÉðÜËõÀ‰´0a}n1-æœN¸¨Ì+ta<"Èï᯦$xŶCéÈmàXn5\¹”¡>Müåc±–6š+%-š›s€ƒüܪM8r£\ÇŒKŽ«°€Û}¡ë\íø¡­uÃ{g"s™ÉÍ9f‚[jû`BL¢Z)Dlc®rÚ[“åi•t7j¹ïG©ì™#n§o})Óœö> <4O³1oz±m}Ææ¦h\.ŽÛr„hôs|B=³ý.Œ'pPÞÜRÕýÊ.Ó‚À£bÈ»=±³ƒ ‰ú/#¹‹Áó_z—ôO~?Œa2ùÑdA©â>Ø0ĶOŒf V¨Ê.Âõù¦g%X¥pY.ƒàLè\/Ž4 Ùë)¢c­Ãºœ™»[D¦‚ŸTpeÖҚȽoŠèü1Ô™xNÀ?I¼cƒ~’…«Ë¦;Wx{’¶cž) vCˆÍìˆìˆÉ‡j•Âa=;q¤Ü'DsωpŽÆºáò°«I‚wb=cõ"ULC£ßZêÊ8e[8ß|–ÃFQ¸˜Á@h-Ö×µZ@ù¥zx„bº'áã$JXN*œÂŒÍ5ÅŸS>”§i5™—ÙÙÒlÏ á¡f¿Lb{úEÓÇk,ô«É¤ø$`d!˧ž}d#FŒ]þð,«]Žšõ)BNÒ'B™p€³O†ÒÈ#9Š´©ã‚$*LºéÀ_rÙ0ÿüL«òÀ›‹.‘àëü˜wÕÞň¿"lgËMŒÿVeõä^ÕÄšG>`±—‡z¤?­çOÍÌÖBÈö]¾—¤uå °òJª$ŸkÞ~h47òKˆ/ÀCódÁ±” ©cÊÝwÀ®$õã]-Š'XØ U…>£ìH>ØØê´‰pö’`‘³'iu«õ!‹Ü”IàTüáUiìK—Àc›íÈÿ\Î)èqÀº„,S_™üÎ(ÄÈÚ{t}aQ-ÊB#Ü5/É÷ﳕt_&(G‚ûòxÂHf|w¶ö‘iÂ`o3¯‹ ‘ßÚüÙ?%äýõ„.a¹×NjÖr÷ˆÓT'˜âPöUšÜ¿m_Ù_¡w5×´‡š´c9ÿK…`;¨íüÒ䪹R/P„â7³ÐÒÏ¢@[+Žø0íÈN» |0sPC —øe©q\vp¿P{ _'—á2¦Œõf×£§ðdˆÎÐéUŽ$Ùâùº«*¿ ½b…Þp5´Ý,RÝÅš8É×Þ Œ=Dí\òïíÑ Zq¾s¡È"Áö%žÉNÁvZ­‰N…Û¨ƒî¼$kÔNâyO«° õ´F)<úD¶LXŽšòéüLò_qÇÒ»{vÞ<òƒˆ‡ «ãçÔìg'Š 9EG¬_2 u_{…$7<¥ùj1!De&ÏYi‰M¥€ßÉþ9ÏE3>XôQw Îe@»RPR½M~´o±®úüæD¨©Öœ¨Í<õůì"GƒÿœÁMÖtHÃÍçæmr‰S jÄdzéM˜H,°›‰E·¿lĤ ?Š˜!-Ù&w—ÚÓAQ0£zÜ:Çç¿L ÞÙ3è«–¢ŒyÄwí´Ê%÷0?sôwTWGÝòJ,†Ám‹¨ à³à"ôüLòºqÜßß—©²Ó8iûþýu’Ö_pÓ±3Œ5ÚÔ…_zyõ6þ4ÚFÅOŠÀñ²-Ж™ÏÄ:ZL·h/Ø£õjMFc–¾StÚñ”îÆ·ì^Ý·ä™2¸Ä¦¨æ;ã•èYż®:ëš—ò…wGÝ“Ô{“\Ýô½’O¶†zŇ<륭ÞÊ…—÷M´f7°nñ'}*U@Ú$iH)qvuš.ÌZÆMÅð‘t¾>ˆn–)‡ lþo$œ@l@ÞKQµûxÕ&f‰ö¢V[ábbU$ SÅ (ÃQáИõ7†‘BuYî0«Ú-ôIüß· j€Žb+´ ‰Úµ¹^JJר.ó-;ø¸"+õŽOí§-85È}7¹BïIöƒðD>*¬`Q’S#HŸ.MБ§ÚxE1oBtL„¦6q‘Â$¨*Î2“|oô• 2eÿÅÝ{Ò¹v“:# “!RhŸfçvP—,äƒ/38€·°ËNò:Þlw@ uÔö“/ß„–Ç®9ˆÄEZ§FV´Oa2Ô{ÕÇ&»OË¥âÖÙUÄîЃÝ_ÄØœ\nÔ#@ÏÇ‘G‘Aþ”eHó8v‘lˆDÓ_µ3•>Ð|§‘êfФ¦¦ctßõ’”Ö+â[´2°šCmÈ:Kñ–åN&-~œê“¼%§r¤çÿ‹Eº_êÅ>QúzÊD•ª¢PïKgíº-U2N%)=j-âS¬< NààîLÆ‚bŽã&Ó9iÛ†ÅÚ½8 -t¥:[¤I³†ã-…XV¬ûZí€ñ¯ìšbõç’ûÊDèár¶B¶oˆÂ”§Êb͆vðœázà;¯C$‰Ößàx±º}ÚÍK/E±&X¹ Û:\yÓÕ0‚»3Eâ俟Ræ‡äè)ã#±Î—î¾Qñü6_IJU—ªi×þäÂ_ñíT¿ØÜr•¿H«f¯QRvŽfiAôÎVÔjáÑñ‹PݺЩ™DãXú´õÐ7e‹‘Ó±~ÐÒ#“Þ5¾Ã"=8ëºØ<;éáW®Öacïþjyp2žœ@çà=™0Öl‚m¡ "-å.¢÷Ç™˜×¶)J}$ä)ù?jÝÈñO ýð& ŸÔ§ix5Øð¤­å—Ó/Ì}x\¼8ÿ–,ù­çì“ë_ ½Æ…"èÍ¢nÍ<£~Ó‚©ië긧bš%"ÅE"ïƒ0bà:N©â–—·E%£# ²|' ôÈ „®çÚdsüÙh´³{º¡’µ=äߨå &[ï è®Y1ƒÕÛ"©ØÃš¤Äñ6wyuÔ¥ }3ýÚIí¶ŠâÞó¶ùBPZ·öû¼Ð“­¢ì€æŠ_ÀZ7šºB=èü3¢iÁâ þÎluDêžluòþË=k|Ëüõtå¡A±`v¾#†¢W,´Æ!#³y!ñ¾ˆ<ï ð^âCEI«„Ö ™T¸ªÖRkV?Û Äo«¾ A?A zEër’¡äõ%}ÉW<å{Ob7(ž©ˆ–Ú%ÆkÊɦÓM(_¦kïKqEQYÙéðüÙt%n]U‡]ê&&1öÆh*ï«d®ø´ÃÚÔ>†×åùRlÅ¢ÿ™ yk4@#Û}h´µ´C_…DÛ…#‚Ù*LXžÛ"sùòW•G÷á‹kœ'Æé áñ 7Xêq”%ÅíIÓ–W-¸Õ-_E ëbé8з.š´:\ s*9[%[au”NéÈcÖÖ|™•÷ñ Êp¿,t°â¦†¼ 1gü:‚,Ú‹ÞÑI"ô„¥#L}½xÏT.×;Îã£I(ÐH8`Cx(>§wä-éeèä¨9H®ø}ýƒX/nî"—²aœ7Vr¡êsí »ÙêüKD!vÌj¡ghˆ”:§ç› páÇ’…¹}õËÙû–8gÝ]Øt §SåÚó˜qÒ’Ð<¥Í«K³ „Xti(WLÈbÅô¹msÍçà4T6àuÁš‹º3÷ [œÿïÈân‡uJQÞ\ ž­ÛBOãxÎðZt7ÙÿÜÔRç¶§W’ôyF4ª7±?¹ìQÆÑKò†è”K1Ì„,#Â|ÑoàåHE¹K˺ÝEpóÆ\o ƒåþ†ðC:œ .`d~{ÔIz¥hÖWƒ—h\‘~š† bµ&˜Çÿ#†Ò ÑÇìµè)üIìÐÝ¥y,§k‹³àú¬é¡'Çåjì2“>3r@€òÍ+yn{ò“­ºZФÅùH¨4¬O)&Kpëß²”rWÐ,ôUa%®/ª¾.×KbN½•–?“‹;r÷^úQÝxlyャÒ"h”OòW¬ü5H²¯}9̽S¨•"Qµm£”ÿ ÄpgÜÛ)‡øé¦^x>¹¨W¶&Pv|=ÖE±õЦðúSP3³íÁUÿìï"@5—m¼ÀÌ}]lªØ_ÆÜ¢!˜Ÿ¼ñ †9ƒ~Ù:R…Šuè]ÖàÇø*C¹€<Ì"ÈÇ6¼ó ”(¨/š¿²uGœüÛ„®pQå²Òng´MùÇ£hÖa\ÌɈ†åCÇ¡êì¨!°¹Šâò”Z¼øN0ž{Ôd8èb[²ˆœ`8ÝæUS˜@ÀK“|JÏîÆ]xÚ6EIh㦌ÎZ3éôuP€‘‹Ç¤þšÐÔ€Y¨ûBs`‡_ð«hu§K¿š€9‹ @O¸´mÒM„gb*þZ-HôÞÖ+Øo=F¡Ð‚l\Pæ´¥a¬fOI³«Ùóz¸Ú_u6¿wGc–ÓXýšâàK‹ãN´Í%mßÁho»Ç'm•=ë‰KÀÏâ!LÖ$âh–j§Æ+¢V>ïZëüßµéׄ©žg§äcóZ9Êø^¤Ñ¼6‘êPg~wTô_íëkŠçûB¹¬È¢Ì^™~ŠÙXúá[ì.|:w»üsçÈaÕ´)4‹RùqÙ±€a»kÁ¦¨ ÖýÃw#X‚†&O ºÜ94[ìV² ² ƒ{[^rÞ€¤eÍÖirÍþq ñéz…®3­R<ƒhÔÎÞœZ'm±”©1%Øv ™Î-øþ pºÕ. /“Q†¦Ÿx×B{…B(©µÃ™6k¥ ¡^ŒlÍT>(ã ?Ù®R“ª+zJGš,Øx]á¯1bY¢=ªëüJ—%•a Ø­,#a^6hL|-³áVB~ÚÑî³|´þ«·y‘™„ÓaK~00ojº\??7åÞ›™W=š ÃÞ¤·°GzI@nL0í0FU§0Ädù–D^aÒÿ_2ÈŸ#¥U{)O&Ê&¥v>ñîøKOcÊwR¶Çx5‡ósp wtc§5zÔÅ$Çtc™ñC-5á+ø˜sǶ?°zËptĉèúyî5žù±~@?KK[i•>Zeëò$&Áׯþ¤AwR,Rp›­ÉûûWŽÁþKY=G>¬š8 á¯ÜKP6éÙkõüÙC‘@ÂA®+ EÕâ—»cA°ŸqCùq—ãA78ûaþÅ6¢ðS£¡æ‰lùk$Gc+p/íˆ|ˆi·!·ë”wâ»8ßæC3å¬À²·ï¸|ò×íà_ö_dĵì€{¼ÛòÁ5Ü’+es¼å%WÂ] ;âYáå=0cHlœB1‹ý¶$z Ø(dÁilq'÷"m1YÚQzþ›_©Êú¿á?Ä£.¬± 6Éä†BÑP·[o÷&k4”ãmïÈóëÉ< ƒ9‡½m Š÷XÚXÆGÔ\·Ä¼i²ü,ø$:÷sï@Óë·W¥VÈ<ærçüÛ}Q\)g;°æ™.š*¨20#‚%*m€¨¹ûÆ%2‰å].u»¸¸¥(£Š€×ϯ:LE¾Ì…™Â·›e*¿{jð/ö™)ÈgX–…F§D™ð÷Ü ‚Œ¬md”)áÅRÄSÛs%íÕ£˜¿¥èòw¢ræDj³·0E×9Z ¿ŠÞ’PÿÀƹÇË“í(1à§-ÚV]Ó{àü}° ¤o õdaÌ@¦ú5†doU°ïŠ›«?5³þüK _;Ï #\%ŠÑVJȼN^7â˜ÖA½üÛ©°6õcþ»Ï.äËR¬øÖOE‚3¬÷ØÔ±ÑAC Ïè./¦^/ÄÈlš Ævëäã²…¦³¼þ'™¾ßœhâÂPhª‹Ø“c;%ÒšS¾;³Ã.°ÿ´Ù®¾ó»Š@±yž`Ž=–N6:T0x+âûXW¹ˆJÁÆŸ%ZÞ'X¥=ö§ìn¶ù«×'{U8.£– `j"*º[ÔP8”Î䮦) fêœã‚‚qÑpZ§ÐsQö“ʾ%DÐxÖ›3]—мüLï4z„ƒwÆ2Â{Á`»ïJ·ú$àÇÇn1âµÇw÷YÏ =}¢éŸ3ôm‚ ›[ƒ-ŒÒ#¸D¯õ"ª”€’?÷ô•Åê¿BLbX k¾‚/Ó-¶kÀʈ2ÎØ$ytœÖg/×giÂÞÙÆhå(à+ššŽClÏÀΩi=B¾UðF¸E%+v5 x!ŽÁŒ¨›[«MÉ€ÏËn|lcf²&ƪ‹ÎõÕ¥úi 'm5~°Írô;-!]èìÐÛ†®ñ‡\ ™ƒ/†?Œn, §ZÜ„+LÉN¦…ªÀárý øº(â ßž8©"¢s®d¡³ÑÌü|›¹Ñg6X²´.Aeµ#·Iåã’­ ¢D¶lÁ@Qá>2¬†¸Ò©h^’_;†²e WœYTïÁÛ¶>šë%¹ `­páÅ8yƒ–^Wç) æn‰Bz}|·›|…ê ¶ç¶WUT»ÀWXjìO…WR%(ªëCÒ ©ÆM, ö]+uy/¡Wô)ÓZ•€¦?°¶s–TkŠ Ëé÷†&h,„ß(ë(fõua¬¢1 òN+ßÛLE/`M­ f=Yõqçù¨ùO‚ÍìÅEç…ÖsÊšŽÒÙ“."^¥%M?vƒô·¬©D¢ö!¦mkÃwiÓ.oá#h¯qÕÖ¨ð‚â: æP1Ö?x‚ðù×[ýÒÓ¤´Ûë¿ÈÅboHÔ-GôÊ( ÏaçƒEŠð#†b¢@Ém{=¥IÇ…ooŒð3Õß ÜùÖ¼N¥x–í…¾7å!¾yþG¦U3d¦VZ4îî…ytÓL]Ò2·ùx%9%‹Å)|\©Þ6UÝ„±ËŒuöPÓw.AQ.‚“­&›8¶¤—ÌÅ1¢FŸ›ñ ã°Õ_:£üJ'ƒú Iˆì=A{i‘¡4äk·Vˆ:µ½ŒqQQ@õxAÁÄ5;©ÕüMZNcñR¿Ã˜Ì”b¢PyG™NòÊh˜(/ ˜î‡nêRëj”×vl7Ðãˆ51_—aÁ¡áޖαLvR2÷˜¸Ú"ÅÆ.%Šñ¬ÖlÛÐ-„}û#UŸ,™YRn!ú–òÔª‹*sc{£/xŠÜŽ’ß Åª>­©[$1h&^yR»Ë°Æõéþp­ß–™Og’³8\:R&²²o몰?ft(7±¯}“z_ã× ‚-a”¿0LâAÜžaRõ’raüÇÂæ!ª¶[e—Ü*ÔßníüL¨ÔŒ>uµÅè‹!à‰åäÙîõ# ÞŽ{7F¥Ž¥mKÄù‡“Ô¢°PÀ¸TÐ5Ðí¢O/ÑŸŽ?£nR,1yOãUíßgLd8|Ìöa:®¼N¾pòEs…äƒÆÅ^#€+¼Wƒê&y|6މ·Z`%l b_©Rå(eÈ`Šfêm“ïb¾6¬ñ^W˜BäžåéeþÓ÷F\öžzÝî3Åî8ëܧnš“@ rG.sG̱k+.æL-{ò°&ÚþÕ ÈšqêæüMzãÝ=5Öï‘7ÿ`È÷§wsðpÄ;êŽG¶dö¤ýš€ò‘¡°ò1WoÛÐ8<Â-ͽŒëÌ7”Æ{„¯¯Äûî7Ëm+ÀGÛÊÓ‡€~˜­ö˜‹ÎJ¤F—"wÔ3DåuFzsµÉuoh5¤inøD– ºLãHVîàüRò:¸»¬º´€°+?XÛ²Œ:»=1¸~,ÒpÊŠ†ºÊ ‡øõ _3[VVþ¶>Ui¬˜Ãኇ@s Ó¼†ßåp˜õžw?NÀ!,Ž•¬hÕüÛ{ûþi|D †m|ÞO)ÚCT|©Ì¡ ˜×ÿ5çª;0¿Ö.zïLd$yÙ‚¬/±Î£KÛÕ .blî󘫨Òïœó÷ieczõpß=2áØ€ž¹5~¸±Þ-ïï“ê~Ãeq*vïTs‚Šô4Ëì=ï™ù¤Jë-àaChEð1Œ¦k±Ë‰)T{(»eqÀî?—¬zQÞ`¸©úƒ:›wñõ„ÔU¤ŽáõB [Èð…þ ÛÅ-ùÌ¡Çp`8«Üm«9yé;É3ÛÚ ÊæD:ˆµ‰?Þÿ'’T=zvè;mÁéü6Sö$÷ùe‰¯‡G9SjÌ…° 3ôÔÕ ¶í‰Æ1Yhí+£´o ˆ‡%íë½ôÖ›¯æ“„:­fÖÞa#œÕ¶¡—ƒŽMEÜät• ð;aoJNx¶“ñ`™‹’M`® mÆö†KÈUWà‹Ê(CoÏ\»Š”Xúl©gÎS2Ç›zçŸgfú1Œ!Â3ü`r-ðÂQU_^ˆwSèïBÚòK äŨ# ›q„—+xx{NðLåi&¿qŸOy ÞNx4eT³ù—¦[’N 'ØS 8 ÁFä–&œ%Fí®üLòéç· é 8ýóùó$(È÷ƒ*§Å$>—ÄQ“gm7TàzQxq’é¹ ¯#×È/Åž‰_ûEÊjÔÝâh΀σY ¢TýŸQ45ýô$«6ó´$Þà@霚îR_GµF&ý7õŸƒÏ[èŠÛFð0e­=êokÁÍ.XQ-Gñ9Ã–ÐØÍ‡‚¬§ ½’bWü&¥O"k!ç £¢ý3‚­˜ƒ‘/7^·¾MâŸ(ZçHÝy–o y}ªe$õ¡ájJÎ*Ú£Pëùõ [3Ø{oÕÜ­ëïÝ=®Ääå~“.?ÅüL ®Q­†©Ë>aåÄÖÑ‹ú #DÚ‘hw¦ûe6Òw÷T|œÔYü ô˜Rk{UÌØ(a=®4«Ø)>>~ÜZ·|„®Z¹ëñÁ˜—Ç{Q%ÔÖ%O`°Lù,ê“ïañƒ)0ñwËA+­%Iàf¥àƒÎÅh-ïìÖïþ:øÝ¿ÉšÕ©Ê œyÊ ÷—Mn›ëÏMä¨o˜ÔSi±ÅS(J;HÞ ïè[¹Ÿ*t9‡jŒŠýš¼w7ëì-°¡¨éO„ı¢$aX7›µCq=¯%çðö˜K«š°~ƒØÈ»Úõ×^áž5ºÍWˆB.*¤Þãü¨dȳ‘vª[c»_ü ­Ü½R| ü¶M¸“ üÆb^ûíàÄEä( ‹A5ôÄçàB¢_žÙÆx$TSʃ1 µàá[¡’ c›ðNÄÜù½`d·›DšxÝØ£FÙÀÃ¥6’[íÒÀ†´…:uUØAÿ®Ô#$&~KÚ7ÌYj‹ë =¶Hñ<»AmZÔí#Ë|¼WØnüÝCî[êOÖ¹b/d?îh±Yµ1cÞѱ·¾NÀvêN¦°I¨÷+‹Åx¯¹ÅCOcl–)©ZcÑMi¸`og5—kwWÆ@Ɉ”Fy &ã#=p—ç­~á†åË,%–&Ö’“‰‹,9%üÆ&‚dÐád;lžå„´mùlOÃS”ôÄN¶%Uƒš•L›˜Sfã'fÚ;Ñ­žÜC>ƒnyJp„Ä€p"‚Êè >o³†¶é”,oÈi8s¤êFËa#œ‰s´1¦^ü§îë:B3}ìQ/xÀXŒUBÖ¹rñyÀLLy™‘éeýÓá2#8^µØû‘€fÍ6ª®[À€×žÚØf¯ºÞÔÞÀÍßn*\¥ËrȪÍXK‰ ¿µ±Él&¡t­)Í;Q¶U¶—5w³ÆtKÆ`ySRH¶j7dhº`«­ºr û‰`B.Û4©%üÆbI ªwI#€ž«õ>Ìwy`éXá öH.ÿ^k>¤máýu›ì)ÎéÙ°ÉÔïóðâݺà{I— ¼u¡ަü¹ÀÓöŽÿb‚ a 0`žQ©¨­”œÔÖÑnþ½¸¶a0êÚgæMe —ãhiX„,<¶GQç:ü_XQTÐ y~>{ŽLŽíoÃGžúA5Ón܈ÑJuŸ’tãu+Ã.ÃòÙª°¢þÄ£3ÅFÎþ›£ ãº%ê :¾GœS‘ùÉ5м-h ¼ðÿ}’Qð‘•^=³E/мµ»~ÏæD©!I´¡ ø–FÉ™ÞÙ­XO3ÊB"+ƒz3ÙZ©ä.½Œš9âeNJC-éŒ0Ž'fw`°ŒàíÆ¯f8Áæñó”tšÒÌü\ØÆZ‡³Á6J¡¼›3Ö· [ôCš² L\.V]60µÖ¾î­‚'=O‚¨žÐ!ñE乘žÀqYGt]RÄœ@ª¾sk>í ‹x~›ÚÄzUùùtçF-Ž_Ö~¾ÞËà %%ÁzšH-kXf¦ÐDNªøôÐnÏUÕG¥*IÆßQ&‡ƒHªDGáôúFöÜL±~—a­©ŠÝ*ªr¨€B‰ñOht gÇ(÷M‹ÞltObd•ÑóA™gÅâ… Ÿ"卸ÃDÝ-pMÒÁ?¿ŒVíÈî[2y¯½ÓÂm6Ë­€ÿÐüN;Z©óÊ_/Á?òGVè1ú%l 1D½ÈÜR$k ¬ú³¹%ÒkÌúýÌbbõŸ)¨•—¬‰J‡‚Ð'†ƒa¦Îþ~áw˜ï‚°Ÿ3¸j¨ %}Ïö2­vQ@äCNø}_ZqZŒ|3GÅnÔ ù9H03í̯޺²NñÄ®|j°s<r7:Oðß–úƒ\]CRª§ð¾Ãëi  ‰¿]Ž™Œaq)®QTñjI©¬ƒûkàï=ÔÌ.ÊtRÝeÁŒà¶›)ªÎYˆ|,·˜ëOw8"üXÖºx†«:#bšºgèÕgŽo°Ë .¨òas„WÚœ4î‘?€Ij1.y_ñø.B²>zku!–†ª«L_H•g¤“ ø–š«k€ çiL ¯ñ¾¨TÀM,OzÝvÜ×ëhÖz™/¹OggS€ ýÄ n⤾Ä;îïèÿ¾ëöðëìéÿØæôïñóóÿWÿ:íóîíÿÿØîñóîëèÿÕÛìý÷øïÿÙÿ+ÞÕÐÝÖÓÓÖÓÚüIî^ø¯3£À4zéüÄ|ÀõÚ/ê­¥zwÄ%Ùê\ÖÞQEN ²Â]þˆNƒ(€&„¸¬¢WRI*üd ‡©žψJ&¸…²U¸{‘jIߢâáÇÒ”M*)}¤¯~¤¬@ÆŽP¾¼ÂEþlþÞò|~34“…HÈKê_•yfüóvß> 1÷kÑS‚Cºð¹4£äÕÎ¥Ø~Q;þXš8¤1`qòè[×…W­§ñ¹é¿€‚k… 1œ¨),¡!Bl„1˜ð=⎗Ù$¸R¨ÚmMä’Þ?¿fF,ØœaüL¨G´²K©eöç}ªû™ej5sÎøQ†[Þ;·Â„›sä¹™ëõCB gaÜïoþ½]—°0PÀŸÀÊ$Ílè¡ÌðlC@]y¸o‘rÕ¼ªT.ÔÀôHüß·FÞ]ëPšCnSW•›ýÕ?¬êuᨀéÇ}ðŸµßî¢{ÅUª =SÜfÌ;N17Í£'£â”²¯y=Þ MÁ·<Ç$3„"ÜêüŠ6Nê5Q>ŸDCM/Ša’ cƒÁ…„\#§¦r´br“›|’“»±ä"ÅmUÒ6®" å‰bLÍVÝ l½U›å<çÝ}Þ²ž¸¶Ô%;"óC7®.néàZ þd`l‚fÈý!€aYånU±â.Ÿg5 ’1þ²T§cŒ«d wû*Ta¤xnh™çp–\§ÝoJi€ÍƒµL/;w+7jW•\ô¾±2]OÊÜN…öœ¾i†1z³eMV,ôíËóòúå¨B(‹.…¤®Vv¹Ù<‘ÃJi]¥†Þ5ˆ/ZП&Š…ú6øÝ¨§-GÿñZ6—Òdgisòã!k,5æÃÿ%w±@:bIò‰VЃ—/‡sÜÐðܪ8FˆÈyðCDž¢DG×Ï>y–øt\ÊüÁ˜VÍô¨Þ5ÑÿÕ]Ç#º¬0´ª×%g‹³¶õöëÇ¥Þµü¾®îÜLoì†9êüX ·Õ>/ y~AMÊÕ,uBc!£Äû&ÙéxÄN²¹õ? ?B~nAåBÂÍ‚ šFw8s«ÅsÂù„E!Ú„ÈY~eϳn05]ÚÐæ‚G&;{Ès#l9e„ò¸š<º6v*£éã‰; ‘€*žÎb« ù¶!€üs‚7²½¹ûúiâªwz³¹sß$¬a@û&eôS™yËìJGxol쉙²Gáü£¾êCAÞ)ÅÉzAèöPȘ{PA<´ yw­l7Ë}È™Pár€ÚO¤µ©½ Ò~5«ìþãêBx)üNvÚ\ì¾ Ù6mÊ ´]4WÞ¯[XÊù¯Òá7TŒÝG‚ŒMH™ Ç»ü”Ý,Kƒ³¯Ócx‚L󘞸{+Ëæá¬e3qM?Pš®…õí¹’\ØÆåV·ç›©H˜ö‡Ëp?ôÜj³À¾Bš¾n5ùÆdg[#ئ€Ïl‚-rüP<‰Ú’RÞ?ü1Šf«Þ{A+¨ Û’{ÄÉ+¿Ò$ýûèðí*Œ¸G dÔù:I€ «r–!ìb…{hÔZKIk’{ï9šÎð,~@8(›ŠyªÁ`Ot]*¬\mîŠÀtì®ç{¨pú3*½?G4ŸÂ@4]–+ |´;i¨]„Zfõð~füê*4m@¬s`ºŠ÷Ç=¼®™ßf’³>ĈAÿ=N€>¦¡óbÿ^;³É ¯cDp°4Ô~Ô®¢º(Àrq™6Â;– K„%O-ý¾$7P“åŠ@P&bŽéý~òÊ ¶¼ß§müÆc…ËÀ¢ 3ižË]u·—üˆªï®'Ò{Ë?“×îËžA%7á}¾8?ÓS™ÏW ¼“œŠ1y‘ïÒöS_Ž‘œhò$¦¿õ&¡àƃízÐ-ý÷îU™E‰…wІE–ˆ¾|6Ãç–£ÏÎY-î ë.MÄ“/Dj‘ž©®™bruWØì¶ÁEÛ ØŒ—Úûõj)ÑS‡aŸ_,qÓ¸-“~ÊêvÍž&èáê㟠Sªt>O þ—r¡ÏÛ]G†Òñ›<ô@u:Œ‡$/äâO¡»–=i'‰Þ¨ÿ!ëU%üÄ\Wǘ°%Ã~N±ãº®ÿàsá¾X«šSц‰‰±%NÃ/«Ú‚´Yëôû ­ÍPÐàÉÁ€)Èõ «K5g%äeà'œ§ºFfÜ=+).Pýþš°Qö´½¥i´t½QÙï;>!áØ—Êg–LwShаw^:AÙÆ³@%)±¡Š…cEžUÒ¹¢ €DdغPn,=ÿÓ’àdâï¡Ï%öymƒ^€NZ5qܶ³Ž3«vþ¦·¨vy·z2Z(MÖtw¶¤ékÕ¡Ò\ã}Ü.Ÿ@%ü‹ßú‹È§èTº-Áú—À€‡¸t•‚¸m‰´ß.(Ñ2¥¦Í»½À_(c,(‘{Va‘@J>Â<2i&@ú­ÍôTrƒÄ•_É^ÄÀæš¿”n5êo÷0ŸœÔ3Jìz+ T#ûKZ#1½ßgÛ€\ûŒEŽcÓo9‹Ôe§AÄa5”ÖSÿ ÂžªY¥9é} uª§öH­'3|ÏãÜ“M;jQ£@ž«`žoå¾khàÍ.õ\¢Ö“ªKôG¿¾j6¥?[šÃ¶@&¶6C‚d˜~doæ5W–¼ ö¤ÂJ«ä—HƒcðH\˜¶Ê¬Ôt<ý@wÁÞoOÊ¡ÍÓX1¨O€@á/ŸF.NK à‰øfÜÚ@·ï@iWÆÏË<˜¶ î&[–G`6q–Cž)\²³Ua?ôÃI›|ªg-'‹Ý&(°Ä,õª¨¶{Œ¶Er &O1µ…IÒeh~ƒÙú„)»=ÞP«öí)r5—[3$ó¤µÍ„ùQšèÖõ©â\Yp$ó–T`rºÚüÖ yL yl›Á)ñ¸óž^C͉& Í3PžË¸ávÊl[‡òéŸìð"1[XÍþL¶2‡Œå3¾ˆ»£Ò§ªÛš$…–^N‡[ÙJq7µ.·î&dŸP Z‡y?ø¹_S÷©ÜXÆ_@‰A*hl °]ѽ(’I^k«¸¿<šÁbÀr¸ØkBõ¹:À3*ëÓ¤w43O1z dé6Š”Ÿt'ôËÈKbËGóHŠHÅ®>\hº¡álŸ!‚NîeËÖ”‹¬<„½06Ëð´<Ï•Xu €Þþ8¤Õ;&Ÿƒ—Uòœ´1íüF±ÃSo6« Ü.fd'2ÄI¡Uÿòw„xõ¢ªÁ¶³#AnpöeTY[ù}ÎÇí’®ñ:D½CL*d°7Û»48ß 6]E‚ôeŸ[KSÍî—ÿ5³ýÚ³TõÚÞ¿Óca»ZÁ Ó|™hKfúâAS«c¯uC*)Ê)üŸ÷óxGø «:¹«a ÁÄ[@ûI 7—`ä“>¦¼•qPÀu­VÎiË…â’à¯v¯ÿ¢J›µä?ljwL¢÷åIíÚ€hm/¹~qÅýéçvZ_u@xÑÁuŽ|„´’f0ÊüÆ&‰ØáÐ?çˆ5!½é~º<»`•Ûy¥×_ã@³Î}äÒð ~ ¹S7Ë„qeÙPýÆWfžlƒ-•„ Ï åŽÕ§&€ú*«rç–I‡ºº‡Õ{**¡ã˜~q@™ùÿ¾1—¡‡Cd}‰ø~ß'5Çs›î‡õ×Êm (_f…Á¬t³ÿû58Õ‹TÆW­3¢eߨJ–±f‰ÚÈ™ê‡àÅüÆŸYx…ÒìaÄL?Å•¾yG±ößìÿ/ÆŠT€ptödv_èJV¬iûPÔÞŸ0R¿^‡ìT»ÇÑEzëŠô´6Ôi»é¶ñ%ü6÷ä¡bðg_WkÛÀƒöÀYIèdPs«,ÕÐ9°_8OÚ_ºô aˆrâzss(/¯H¦• BFˆ5*O8Zÿ;ëvÔ_ J<^*¼:°üÖ]ÄÖ-þâÊ †X¡ÎÅÂævë\«ÜüÎбө@6}â~»çÎDoÊJø£Uj™ T™(› *¼ËaŸy·ÂwÀeª^ù‰¼yÃ@*Š'”·Ê]H̺Ql6~\­Fÿx9±Ùc>h·  Œ­ÀÝÏÒjç%ÞèÓZôã×…òi[HàDI½-»î YŽ9ù“ɤyD©äËþ>¯Á?Ïó"^ ©a:­/ÚpÁ•âà bÂp¶sØÍ†Æé.‹¨³Gö1c €µeâ«PkŸiøã(z1u—ƒµÙ3ù|ú¾Íx’Áre₺kÂ–Ýø¿-Ó÷—¤B¬ªÁu4U(?(åƒ{ ‰(¸;©Ûij24Y(»roô¤áîëÇòOó¶KÆ‹ÍEIOµ­÷#½]źGÔðÒÓ rÍâìü}aM™ÒÍ(p­e¤öäí§4À(Ë}äßòFg1,ÆÈ û†.õÇŸ Áí •Ï³Ø¼qí%o8l6¥YÚ”o‰·<מ?›Ý‰rNî™m~'aÀê“ÄhKÅúFÅ…:ÏqÌûTöÑ=Ïï@ñ¤ƒQ­à==MfˆbQÈX­Óœ $êA÷S:MLað‹’Ž Á6ä&¼¯•±†R6ãçúj{WÐVÃd¯: zVC”žê²Ý‡yØxùÞG™ùÒ³¨|¿A°ÄÖ{é‚–Ê'–*¾Â7µH^é¼§ø¢žYÝb4dˆ ütÝR75©Ü3K –Sòôžž}EÙøc’Á!ÈõW¯ 2Úø]‰ã:‰´Ž& dBÙr¸Õ zmÈ`÷ ³ëEɲTg¦gšëk.1ƒîwH¢þùŠÁCA/¿(üŠbÓšD0Š œ%†ÅOg×øÜõ®*C‰¾_íC¯‚²rqÚž°c¼jBýI€·~QC½r»áæÎw*Ô=øÕ>ˆŸ#’4IENÖÌ'znÚ{às•c%”X¤‰Û ;;=µ˜ZîÿÅü¨®ç%j€ö”5*§>uÑp‘$ ,{mE63ksÃ%7z»[¡ôÁmÝp0±©HµQF$;ª€H/Mªlè]ÍEÛÞoF†%+|Ó6/‚ pMÏ-UKeÙ¿¢Zq nþJˆFsçåsø½·¡¥áD‚Àrkc a‰À½ Ýë ¼‚}ø:A\ô0ÓáôͧÑUüyœm?EDÿºCòTC“ †IƒqÙíŒ7žã±€›™^³ÆÄš T…ðלß×ìžÇtT×°ü.&ì&hj¹k„)Îk @ðƆèÄ`û‘$.&¹ºò/kMv ¥€®ÆX–*_Ú>:ÉÆžúa,‹¶ÍYaÝ|Žh²qVÔXû:*ˆ¬º™­i<¥¦p¦nj‘hAÉW¡bqÍÂcÓŠG_mþü÷%›»îé,ê'ØKDq~çj á( ü.2Ê.T÷¼•Ê +)Y8ø#Lîþ4í=Ú«Ó#O¸3~éÇИ Š)Óø¼#—Ž…¼Éÿ5¥â^I…åúyÙ¦¿LÙÌ <¼‘à´»76Ìl ¦­”ÓË ÈÁ¶ÞÄ’¿üX¥¤2P¥V¶«Ä> vLÿcÝ*Këáɵô Q¡<†ø \LnÉf†t.ç@Fk1™ù¦üpX«œK,ͽý¥÷®ž\d¹³¹ã‘> N˜õ8‹p¯º)Ìm¥DnBñ³¢ˆ.r1Zä,§Sö™¹Ç“o4rOquû¨tŽj+Cv­0À’â"01Kr_Ñ1Wì ŠJ²Â ›”éhãZz%ZµSi’(†§Òkº¬ ÎJ+}zñßM†TÒŸŠ…†‡<Ša$kœñ³žÛÙ}n?d®f©¼XQóÒ[@°'óÛ¿8ü6_e ž½7†å¤A\üþß\s„l§U{éЏu£"^E©šÎ?Ãç‹~sŸ×ü`ÇÁYß°íwdh”k£‰ø­§ò“©,ÎØÁΘˆ ùšŸ$Yσ¼¼Ï„&“ñC ¹UÎûÔðŸòÍî pNµîÝ•áò¨€xRAÐIÑÁ^)Š“ ŸŠ%†{L·ÁĹ€³u¹GLÝüWõã°;Uoà½PŠ:¬’ãj‘£— It$ 7\À1ÓUe¾?³Vvž„»œŸ¾óŸm¥¹²%OjÏhP‰(7ZAp¾‘W† =GüL«ž1Í}m’£ä*¸\†På¥qx´„œ zÛ†­$¥åèoÅ ŠÅÉоA„ª‰Ä¡V:K¦ÇoËJ®AÁ´"l 1 žÆß\;4}¥cyVÏvúµ2¦ðþ?×”“é9PÌûñÖ,{(éIsüðjÔuÔ9J)3h˜ìRSV Ù–,ué&yÅôó~7®aláúØ4mŽËþ¶?o"s]4ü cK:Њ(r¦àb;D¶ PÉ“¼Óï§73ãÉ,á™_EJOѸ¾l(aT®adN:kUC>{¶í»=n†ø'x«»Ôü6N°*T¨}ÉÆ¾àÕH^L6€_¯+‚/Ø&¯‘•Bè"p† žO ŠZ¤(ùèOð…NÊí TBšlõ¼£ö5,ê/Z§Ðõö¶oèòWð“ÆPv˜†¢”tµã˜ãlÒ_Ïbù/,iÁâGœ¶âðø/ ?ò¢w˜fsÛc‘ðYK‰–mÓJÒ¹NꟇQ¹˜‡_–ÏZ\/‰LÖ-A°ù *4ë?Æ#g76š?Ù)#¥O•¨^c|3ɶ¶î- \ý@#J>¸u¸¿è ß  ~†BK{ŒKQðÀXÀfš×™UîhXÞû~ÿñ€­|‘hæFü|›‚dœ öö<ñf:á®ê¼É%=Ÿ,b„Õ Ñ;Q¡É­ |œfŸé»`’®L{’°R“͘µ+ÿ¸ër&TmÅzˆ˜ÛÓÄ Ò´ë-|í*9žèké®;b¡O÷kÊá¬ø¶?ì¾.ë÷¼}”{N­bRKõUÆü[šÏÊÜG·è\ ßè”ÐHú£üXоN¬Ä@dØxßü¢gõðÎ÷79.Ÿ“c㤞º'98–V!ü9¯±¶-`è[àôrrçžÏ³ô[3^Áƒ¿¤L_«—†Mæ9>´dn»1lƒÃñ«Œ§UúÓYÌï‹ïíµ¯ØÙ­¸e t(ð»7§þ3FJ6¹¨ÌP«>©b=œÎ ‚¯ÙÖT7öqAÏ™$ÚâsCVCÞÞ_HÍÛôÎCŒŽp$¼³ˆ­ž<ÀÛ4ô„–»¤r÷›%‡Š](òË~ø¶I—¨@`FIœÞÉ ¨»ôŒXcÂ:¼œ6èüL¨D)8àËÞÇÇBÛfMŒc f2;[dwW/½ÀTbk<ž˜ðV +¤6¿.ÛR¼ÓìY@^zÉ®>f‹1ŠG¶ âúè/ĝĸ°‚2¦:ÃòM"ó~“‰¢d”Í'Tù,¸“^Df‘@´>‘j˜7s^*.0xñsl¨ª”ÞAaKù(ƒAx¾ÒFKA#ÂB9B×å53‘v#4!ƾÍÝœA¿ ÈIÞ‡:s‡læsÎÜý)–I4åøŸª'2VºˆâG’–«%’˜Öõ ¹æSS¢:蛯7kÔe ¬Z·áy,<‹ébüX²d<éÙ’°)ìzå×=¶D,’ $Ë1üŽsª«˜†»+Tjìú1BXQu/Ú|KãI}!'|²«µ¶UÔÝKË"ì.>Ø?|—A Û*ã„;X¿‹¼Ë]´ëd©BŸ&oâGQÈü1•h¥Äe–ãh éZK°Ë ÆS¤á{ÄÝ›´½—ç gÇwi¬:v¶¡~mõºhÞHÔ쯀Bº—­w°4×ÀGš<ÈÁÏk†I¬[“•PêÌf‹z4 Á ÔØ÷iaãÿîiþ&wñ)äÙŒˆÓO ¤Ýás³ª;ìvÀ—ÆlØÞµ¢¸]3µ0Q–‹‚™+ß, )òi󆟕"t<¥‘˜¢¾¨¦`ËŒ´?b‰ÿ4Šnw—E””\L Øâ÷;¥qÌ‹™ŠH¼QÁÝvîPä4°=ú¶¦šësNMMAý"¶]ZúÜ ™Û6y£ÿ{Oûg‚ÆZ n¬ˆÉøˆ´øâúH„òâ絘¥&8†Mjح¤®"U€_f–]<.7è,áiœµ²<¦ÿ"äÕÉ¥.íŽ>þÜüz¾,¢½–zÛ!u—¬§ƒ'irÛW”$›û<(~Æô­ºõí ƒvš³¬Œ ÆJw´ï¤­Ò+ç»™žx tÆ£¨¶·µ<Í‚‹¹Ù³­Ö€nË„B˜³²É3ÎHÅÖÂI3¹ÉÛ5'¸ 9p–üÄ…½7|áQbIÚOÚ'´GÈ™û»Ý2»µ‰‹Â­[·j†”\á^3õ îèX{QcNÊó"z• +-$gÝË’ç¿YÀ²ïŸð¶¹²æ÷;ñ½ønX¸Aꇂ'[¸6÷ûÐAÉ¿4FN€5ú>î;úÈ Èrý¡Ëæ3D*O–Xñ ®$`ŒÏÈ|âÇ6@Ï©U¯ÙM©ÜÓž'Y@,ùѬ—c/6ÜÑZìFlp жë焉—Ÿ®÷O»$$Ï\Ó5a|¤ü|®ݵВйä½Î4ËÙÇb#!¾ÂŠ)J¿íï7õ!²ñ’Vþçú*­Èà»Ò÷¸-Þ8mBœr·c¢§„Á÷o¹ž*)CÏ +FôU]/ßÀ Ë¿9éÓ¼?ãÒ°#iÅ:añŸ—߉îÑš²Ç€[ßÈM•qKS›ÓC³›á×2í™÷‚$$_•s2¼e/é?˜ølâÀÇw…mÈg*ëXñØšAÚòéXAEé î}ëjöÖøF`‡oHèbîîG¿¼” uÝøÛ/Uª½²©ŸÒoUB±û'yûÚÒü1¤ÄµOÚo·Â@ÏÂ}¶›_1”ƒ`GãÒeÀÖg´°~i 1s§åÇõ»"YªÞð5)âö¼JƒÊãØ¾q1–n?¨e>z0xëƒÒóáÃE¬ôËÀØ’R°;ª mÐɽi''‹|)»²y¾jZͬû"8“õb#©Šõ™Œ3æ•[|dP­ º”Š ‘;„j`¾Y‰[ïÂaÅçqõhØ0zœË+–0> »$Æ‘Œ Žî›s W•`´êU\yû2½;¤pï"R!9২ôç>ÜÿǵÎ'\IüIëÓÑ©˜og%A ¦¯öÕŠ³üa]k¼÷,ÿ2áhµˆ\û¦ÌS|<Ñ Œ˜®ôÄÅð:g1XÂs‘w“ðæA²¤ˆh§ÓõWKÚ>jM߃~©Äá”=d)çCü¿< ªÎ #EÁÞ>³øw«Ó·F 4+6'³Ðûê› :Hy¯‘/rE<÷ z¯­ÁÞMš5º-ì÷E/£At?NùQ„Ú]eY\ä¿%XL¥¸o“êjhÓƧ >NþÃJ0e]–)/}“ÈA ?Di’æ¹bAÜÆŸlÂ`­ºüÆaõK‡Ñnx-ýüÿ04!Ïá0[Í ÈÞª4(ªFåWÿ@‘‹ý'2åFþÐ!%õ±O|›íeŒ¤SÛñs «mÎá¿Ëÿñ—,¦‘ÉâI™ñU0'-+Op¼hœšeÀXåúq®Ÿ4,¼‰Ò`îÌsø9D»7´ÿcòÕIØ!EŸ7SÄ`fº¹Š,ÈVÃYÞ²"²HÇåZSÑ4¸ ·A»Å˜¶Sɼ±"·†0ø³Hrõô/j‘T?†ÕŸªs/bÅ/ñõqˆ O›kë\‘㺽ô™‘cBÅQÁúlÃqx].áô„z—îQ63.%¡bC\õÑcލnC@zSj‰e$Uí’À1¶6·ëN$R´äT”Ï´7åÐÃOWÐND§Zw ÀÇ÷L÷­TF#pä-ÎÝ*„7ž´G=Åw**ðø ‰ä¥Ê­Ô›8UÞ7â†cá:<=PÏ8¿…l¹»y;ëzŠ/@#Â.¹ÊŸ^>GGuÃÍÊ´^ôBFåUÐ+³¾Û1kh<Ó‰$üÆg™v0âß6JG­ŒL5Ö¦¥Çë<Cd‚üKŒ=²ã´Ù@…(Á´Ù÷80Fdô=‡[â<•UBRÄÌJÑ2îÒkÑ/ŠÇÚC9 bÏ>@çB³¿k2[XY~ì¡&xÅE]î]ª‰??E.£[?Ùœ'4Z-86 ̸ÃëcÃÕªñƒÍ¤ûžöëè¾Ýû=X”ê0Öç¦2¦¢½*\¹]®V_ò-úmzÊÆ-`ØLÇÁL¹Ÿ=^Õ‹ëù[4!žÁ _ƒ%“ZVÙêgä7øæžAS¦†Ù˹¥ ùimúšûL…$ü{=mÁåû½ƒ ”À&Ȥ3‰-”úÖ–“ ±•`k©Z‘!½}!°€™¸ º^Í£ø%èLDszý÷2yç¤ÊÖh“fÉ˾„Ò-—kø Rí`ægaÔª„’"üFø%­‹#ë•'8Y}`^-¶¼x…æ ¸=Ð63@¬ËDW¼ÞcÙ¶ÖýÒädV¹U„g '·+Ä-û)ë`£Lx½%¤ÀD Ø#¸{Íù`9m%q¤¤LR‚\Bth²úY8‘Åü$Y|ð5GG˜knܧ@–60#,Ý$Ñ€+ à½úk üL¹KéÃ@2˜¶”¢qí–ù‰Ú€&a e:cü7 ŸÆò.Ãÿ“Y—l¤ú©U Ž×Q™ˆ=$¾#]Ï~ãdòÞôï?ݲêBN€¾Ðü'kTëæ-¦Ÿ)¹I¼f¥A{‹÷˜!j” ü˜ãq`‚±Ò­ÈÔ¼¤ çèU}Ûc‰þ6Í)`K)²Ñl°«¥a«ÃDOE?ï+`±ëZê‚ ‘­›Üè»Ð€È'¸júÈ-r6èy9ü7l·@â&RjM«’u¯&^ï EõÖÈ`üMUÃëŸ~~ÞЙqjô9SMF"&«þºoùËÎ.Ri59W•°øä«j{¼,IׄCµK5‰WCA%"Mkeclí7íá?œ´ØÕúbÍ\ò# /ÏŸ)É#ã©b ’‡Þ-Õ¬Ó j¾æž[û Z©×/m4Ÿ¼»Ìaœ°òv[ã;¸®t9¥VžqÊy¹/‚'ƒP“¤¨bÑÀÄ­©P©Â@+Ãaêù±„Ǿš´å¶SÞ9&¡ý̉ãþÎt$/éjò.©3L[Ý üL÷Kl ƒ k‚]nË«a7ù‡'Î/¶œJ*¯;ÛϽOÀs 0Þç3Lbˆ‘Eu+Û Ž¸{cЈ 5—Æšê\¸[×P(˜U¸ÝÅ­C#Q¡À‰5†x”¡(25ëÏ·ÓƒqCËA—K¡åâ¸D]ú(Op´Jû±ndŸyÈs@); ¼µ—É3ð$¹C›j£½Ð‡p=©6Vh”‹"vìgêíéÏrCç´±ûí[8ªóƒ1ÀT>›sÁ·Â¬›"ïîú~£<2ÀÆÜü2jS¹²§N|^ý—þ†ls.|OD‚M=Õ%À“o4Çï)ܤÙTÄOìI)QÒ°f×>ðÓ[äb°åT€“«ž™®X¹TÉúþ Uæ ÈË¢˜99@zΪfiƒŠR¦9¡E>]ÀêÖ&ÀhM\nª2m %ĽÀ0ü>Ô¿ÃYŽÑvÕ+«’$®®cœ×Ž#šé+Ùѹéð7‚NB+<ô=é³µú²l¦¿óe³lcOYè­Ëδ ÀÌ”€¨áU¶K7Jgûð¾m‹´uhÇüìwüMW$©DåŒ(–?ôDdáÀ©évН2|W©uÚKîÿ‚0tÏ̪ !àö˜^3 V¡v¡Á½lnɘÔiü±òiUÒÜåŠ7ÏlºKø­­ÍÊQ¥0 G›éŽžùZãý å!¼ÿF•6‹0µF—ms^*ÁéÝK#Ëè£é ÷m*œéŒ¨œDê/üH<`ÿNJÕ qW£Yň¬ÝÇKÈEÒ³¬ÀEC2lº"¥Ã,%´×Åÿ¿¨¯ šúÖŠÙXm?ЏfXÁ ~†j&üLÕÁs=Áñí“Ù~ÏX®o0¡ÚÍå¸ö˜‰ÓÀKš;ÜAû5bÐûï¹}ÑszØ$¨Êå¡çÑ1iÁc]Ÿ’îïÅ+ÎÔ˜¹v3¶Ãt…Ö¹ù—@Q¢Ô¹Ñ¥j)gÍN 3¡)·Â•?œÄˆ6y†Ð\¨Î-ŒH’ÒÔ!5{§‘Á›!ÕÆ¤]+ÑWaÞVÊœ!/“ÅïtyT½AŸR‡M^ñ«·¦ù¿n™…ÈŽ_×!üN:b4¦›í†FÚHŒoG­€S°4øu€B­ˆAqí³5G£±‹joÐÄ$ée<{Aò1ÏîÖ<š¼ø?ÊP~F´µÙo˜·L+݃íÌÆ¥N6ç7 »AÕ#XîÚ˜éVgå8o×µØMN'‹~ UÇO—ua·{Ÿ'“ 3Ç„"Õ ¥`Rå‡q­Jèxr¤­Ø;¢£ ¹·7èÓZd"ȹxùâ¸:^êÕØênCuÒvR;|ÏtI9–q«“ím[ùŠÁ¸÷{ü0òÈŸçéâÖü¿=J™oS¯ï•Ë ¼Uqøg€FÁ»QÂr“RvÅ´¸§áº‰Úú[Á¥¸w³ÛƸwG}¥ÇùM•©®H@õEÔ@YfåÆLNýÉEꧦäÉ.% - ×S °¬ý2S-éSU´oªšæ4FcEÜF:Ž»LŸLq$™‚À§ãb¸ÈGv‡§íä¤ZSn¤G OuÐî‹}ŒLE6»ê}>@ ú±aªJ*} r£‹y´1ÍÏ÷?*„sT[ÓöüL¸[ÀsŸ³1Üú9&í]%Ÿ%N±Ñù« ­B¸$!â+í®‘ŸÃä%:6V'“C”a9j#‹_ÞÕBe¸ ‚ÏÁOƒtŠt Ít†i\V“è{Y2ÑÆ²öùÈ2›²g…t¾ öŽ7œHM’zÕƒêˆøÐý“ÑÉ®ê×§Ãôò“F-'6{ì xO¨q¡=Xѧ2õ ³c/¥”:"îÿW”x!æn°qdýÞ*\fu²ý>Q€$@‘ÀòšjÆvMrœ#kº¿ëáüï/¥2IâmÜš“|Yëuä܋ԙ"‡ø]g’=×TKÙ3×rÃŽÐ ašíãã€Õdö˜ËSàÜj÷äÞƒéh+(ô7ºäph£ñ¿\GÈT¿Ÿ‡ôniœÈº ÕÐ_ JÛ.?Îxªóö’¹·6×-¯5Èìœ!ÁÈcÐÅjDÖd0„yÆ"$±“~¯³¸ 7yÖü}d2Ì€+£DÍœI¾¤î½ °a£Õî§:VÖ¯þdoq>ˆPËŧ»oŽ»TY» Ô.ÙL³ÑOggSÜýÄ n Ž £:ÜçÿØßæùòîóÿÕèáÿëìóÿÈþæàâÝÖÔÞÞñòöíÿÓâßÜççæÿÛèîðèëãÿÌÿ4ÚçàâüMc)çʸ AX£ê¥ù’¨f±¥5ÁËlUüp,Ö‡àp¡!i:cÄíñ”æÑCkuw­øø%a‹À~jø‡% -„Ž<þX7¹s¿F¡¯‚Šô…kè;Ë?ù®“-Àëí'žî¬©Ts]7?(XfÙ×D';ne5"vjÃß7¼B¥¡rA¦y²æ‡Âî¿ac?×|Í"ǒȸ!x|*Òü?è¢@&°ZpÅÜ?ó6Z6œ˜^ç cé5 —íå Tx“Ü=C©"ä·zSU~f*üï/­¦ÃÏü2=þÃádàQ ªƒÕÞ)³é;q HHx@›{>e¦(êø ¶Bž€Ø7­Íô1x+»ñ•Ò‡ömãÖÒ‚ÿÃ)c骪îð<ÿäIpî¨PûR;¡˜˜²òrT k"óVÂ7 ºÑ*Ì4ññç.ÁÐ}Üwƒc@}LJq­'>Öul)i½E_}™Ò~]´Å üví§V Ý8»"«k"ÞìÁÐÄPüĽ§{œ«<àè£F„:é?•"¢(ª}ÜfQÙ¬3••Ѿ-Ûlº/ÒÜöô°Ÿb?ÍãÑüõ ¾þEfž5Šu$/÷?)WÆ9(co@°;A§j¦µå ·ìò_ö¹e”¿am]׺œ"qÍàŠC½³âŒ¾Ì Ióí’D™æí 4´ËQVXŠzSÕ¹¼ó}‘„Ž"t_î`ÍÕp´½E”8w¨¨¨»ò§0÷ÙËÊ-Dþ®¬þ¢þ¦û"óðVRK@Üô8`¿hбÙMzšŸ‚–nG]2ÒXB3F¸ŽòQ¢Üß[~5[03£Lù×ù ™Ul‹É@™N.>¹cÀA³©tö²¥ »„o}é‹ xí¦”øB^n°ƒ04ÛÀ)4¹¦1GˆqÁµÕ.ªÂ©*~‡çå¡–À½ãšô{ÒìÃG²ØnícL‰O¼–¿J íèvvÍ…ngÁÊŸ.Ή‘K‹ÊÌS>c”j àöG©Š„¶ôv;šš©¢£vH?ôÒ¨pŽªó˶é«ÄÓXâè}âTiÚ™iÖ«\a²BE°ºn©˜†šie“Ñü6']ý¾O…XD ··”ÃZAK³¤ 4MùvÉ+ÜÚe)í{ …—4_üpåe}}vèöð_;*¤Þg÷d€ È5Žóâ;ÖÚ{‹ _LZaÓ'gÕO¿;bcÈ¿` …( .-ï³F™ Ž S-ä¾ ¸}¤HÆGœ¢:{$æ¶QØ0aŠ'ªînÕg†~Åõp‹¼Ñò>á«»1ý:ÄgLBHÛ@Ö;'RÅ"kPÁËAo©ÿÚåFãmHMûP+°“D"+nÛj]À’‰!ˆüÆk¹û‹¿UØ s<+‘*xá¢ãã›ÖHw—‡Ð*\>pgdÑË{2ÏØ}‰Š(± Ä/ʺ=3„ìá‚Oø}¥l‘5U —H€ «%Å® ›³dŒSâØ-G¡ß3r“U´½~ÇO£h~ãpm$ÿ¢0QÜwàö’ÇP MÚ¨qê—8†=ÊÍŠEooýbÃænÊ#¾?…'ºÝÍoDN^°©~^¡1VæCt"îþ]´ÞÄ>õ›8¢Ǭpضhš\z§¦O­ ±¯ö«T"jºSñüËpÁå$W÷IƪåFmaµ^ÝPn±84a4†Ág‚VL»öÁRØ;Yr Ók “×pöHux›n>’­0ƒ*ë©àùô’^ø…$üÆdA˜þ‘AÞ2÷„¯%RÝŸ©1³øØ› 4šz0–}¦ø˜È'3)PÊáÏ8‚ ƒZE`ü&M-å©êkÈ_éÝ+¢w–lNâ ¢) t—¿/6ú)û°ITúóäaÚßÅCÿ«µ×m^q²u:é’{6ËØFav¸”³×4í@Ñ Ø.œ9ÊFúÛFV>!×a…æ)¼ˆ<ÁÌ6PÖ%FÓ²I&™›g‘‚©!=u; ˜WÃbË1H^«yhû÷>…›U®üLNâm¿<Øj ä~ìƒÔáf-»¶aºô—¾D¥‰%üL³éŠW9PV9Å(ƒRo˜$èÑpƒ"‰:rc¦.ÐöòDQš¡¾ÉÅEá¿a¶N;yž‡©ÓeŠ~ÿÉ=RçêE>[îݸ9›r žï®hâvPçƒLÞzl¼e”hóئ&æòzùÍÉó…q4üšZëŒTÙy:J}q…vòæBÊõIÙ™ÀÜ=–oð½~_3¨.ïQÒì´ß…íx${¾ß'¢ãtàï~dŸÖ»ýÄÄ jë™ ½“Ò9Æ»·ëµs³· ,ú¢bï£L…Ô¨dš›õƒ®òæ¢V.º‘¾:\ø‰ÝküL볆¾ä˜Æír… £~)†Oê×@5^‹W¢‹ÕéCqb¬ZtbU23C>ïA)ÏÐeÎ|ÑÑ Å´@ ïim¦>_ý0Ÿ–‡WL%³(¦}ÝD¯f*5â#j‚Ïe‡€qÇ4Q‡ù7ŒðÃ÷Kîâg¾>æÉÑe1üÚ’dÀÇÓ°© ºh㬌æñ-ˆ–xKd\Zá£7õpp‚|öH¶(‡izðG`-z·!ópŸ?,3°UÏ ´ÚÖæ Õ]ËødæÕlë1‘+Õ:D‘ާ<¾ÞâÖO˜ 3§•‰ƒMÃ¥ÿ4ü|©«d!Mž¥Cʇq6ø¥ D1¼<Öû ƪöN#F|—Sã­,úÈ­üW¸v,VRÙì”dÝcPoƘâFK]3”¿‹BËAǤÍÒÉs€E:òHž3¯ÕœqËÀêyá8Çy´ðZs=Í8C/å'—È Î‘hµ_¹çPË>³OØšzL©a+ä…2ý¹ßZ?ž¼?@&  ä¶¢w|<¯Êœ[œT—!2>ª¹E y”n7··ëfµÃOi†8]€{ÚÌMÇÝÒÜ+EoÆ—²Žï½5pÌ`N uôÆfþtÙšVŠÿWñvÙ0 ÖÿAY8ýç(ÜADbr\ÇLÂ9w%—ÇâJÿ"_pÓâŒlðNÈÍþD“¦#.ÍVv† [¶ì…LÑÚú'`1 à…Kך'±:‹½ošüM>º»`zqÆé“%oÜŒú ¼¨,¼¯g:øÛC%ãME†JËìû!;ØÛÆ=“ÙvýKÖáÇ÷8¿@[ÝÔÈ(ÄÛÚ+pnØðÆÿ\¡•… D¿¸ ËR±ô)$ú?9¹ƒÁ¥ sðÊŠá-Æm¡›A¼÷9QFÇ“%=çs?$w€"á VÒ^ד|{$¦ÉmPa‰„l[Á¢ý€䪼۲bchèl•­0C÷ˆ&Pg7kó™Û]§×Ôˆ+¡ƒ _Å“íÊšgiˆZÇ…;ÇÌ%ãüÛ¸³lGߥ.2¯¿¡Ð³¢sÇ[Ó7zÄg_´ tÉÌr‹Mj¯‚#ŽZˆ]³ìØc÷lõ­ëM‘${zu÷ öõc=ÌÒEKÅQ é¢Öf_sSG,óÙfu &¥«/'Ï€˜ ¬4éoZ‹Å&§È!GëÑ Åiò~9<Ëy­°ìr‘‰ûÛï胜Æ=TÇŽä—¸"ôC‰Æ£òÛ¸iÁPšè%ˆÇšäj/B¸ø‚hú­˜]’¾˜Aü½Æ¢Í ËM¸iUm¨:c4÷ÈnKµäi¢Ñúͪo}ÖÛÞXní•äãå¯ûJí O`Ф?ŸÒt†f–¨|¢Ó¶½`øBëüLöípƒ#)|B[Ark@±xXöàéÃŽEÞPè[c”‘Ëö<¢Càò•P—.¤eAóG"lm¡kꎥˆ(ä©)Ûõ1o´=ŠËÁ§1b½ùƱªXCjß@äîP]Cb‘ä‚bØ>¾½×ëJo|b“¡Q6àF GcùWseæã|à !òúÍeýN1'¿F…lz>ÞfOä¡A §S–”Nì#lLá×[ʹûÅU´¼õÖ[F®ßÝ¡WᙤqVTÊL6ý²cͺn´SšeþÕþüÆ…tù¨•=F5@¯K6Ô/>cúnE!-íµ_ã È(\æ­°¦A%&Ê«øÔ©Ý¸WÐ;Hi2Pa9Ãíûå,µo‰ô ‘ġݨôïòr³ Фð‡sõHäæHjà·=HÂhð/P&UûÕ¶Ô*͈[•ñ9s䜄÷ÝQ\§2·ÿ ·°nÐ&ŽÒÓ§»Ï¹çärñ^×÷Þvy'­ý@› '”?Ì@(Ïoô•(V:xþâs8|k0õh0eÜGÎVÔÄ•†·ëØËëwÌ•sGJ((T#^äÕ;ôÆå\v(y’ðL»#üÆb§ö‘‰l.•’•( ‡…:Z0zÔÕ¿–pYr$–̧jj©SÊ$&¢aÇÒO)_,Ú»€Ñ@¢­¡]7`ÉÐ3òúºÿЧ4= möy£•«Œ!oÐ?ÖÔ]%0eáøáqb*Õâ^Û˜5XšˆA«Ï á÷NÝ*çiS|‘áù¥ú•̧Šý2ò>!Ã!ÊS†\ÅV:“z¡/Œùå{J‚±êHŒ =GX× %¹šMø-ÆSý=,|_N\2Ù#ï|[2ú1zz~Gjõßç´8LÔÝ{sY›«zRX1Õ%ü|®©í¯K´§øÔ×8Ø$¾OM©‹‘QÀ^â‘Õzïðõ¡I»û —0kÚi§!.¼ÚRÁ7pC§æ•ª Éã^%؉Ȧõfæ¯Ù¸§pDºÝ+‰I°Q¤Ø®¼™'½S·ì¯’Ü ·äÊ"( EÏÖýPÚ¹Wê«4e0jä¹…!šþm—9Ñ–RAwÿ¾ R3£à7ݧ±ÁfFμ´'¯ ³›`j*·ÂŽ‘'–—îP$ÌçæÎ~ª³ú«—ë«[wýs#ƒß¯œIЏµ:”ºÕc³¿Ó¿|uè–a³»T5É€Ÿ”¼Ê{ù%Gj®5¼Rw8W’»e–!Ëeêv­tpØÍRR)öÒ@ûXR?ð‘MGobMw%1Û½pcèm8££›–Ú¦rNÒ‰ˆL×ìj~úÖ¦à¹A…O#͸íÃ켎‡dˆ¡òÙ>8È«²üý ° ÐRìmëÛŒ‚á‰A¿8«Òÿsð*/ŒÊWȑɜõK9ÿÅ<¬ÆÎ®§¦‚s’ãÍ6ŽÅyûBsy>Š<üÆb]V) ÞjO¸d|LËy-̞±ú‹Dëè4×ÀIû’ŠZ+_>èDxéb‡$Ñ>c–·Œʺì™;¬·aÜî– ¤‹À6Kˆ¿_9žJú”ßSŒaÏÙAÂ4BŠÂ bÇð¦Ü×›À‘wWwô”/©‰t 7ÏAJS~ëÎ,yÿŸEd±¸ùôô£O¤Ê\E­ánÉ•ù•Ï×õ‡š•¸³¶vÖ3§+0 3G-3„ó%„Ý Óô$5½zAO=Ÿó ÃBµ—×<è_àx[å<ƒ2=!üN”•You»w?¿Ã¶4§m+<‹FÔ4í¼'˜Š±j§ê„æúßøùTü'qrá‚ueêâÀÃPäa+ïw‘æëCy§O±Ýfi{^*æAc¡;OQ&ø“vÝÌW¹ãTçñwA¬s xm¨5ø«P;ÝqD3@Y!%–îð‘ùMBOˆüá} gžO˜ÆDé¢7c”ÛB'JÌx’œ”"BÐ’ :ÒgÃ8E+¹D¶ aI&gRKrõ¤qÛÖGb“§…š4Zö3bîÄ£ÉËBRqæê\3üM{‡òˆ+„„5º(嚃ÉY; ÝÄ̧¸jz‡E}´¢·±­”SKlâÖîôÊN+hs<÷èTòЇ/v-þõ/!«˜WµTû–©´†Q•l¬×n"]$à’wëH‘ÐÄã¼ji=L¶€³*LjQ 7„ÛncÈyó¨ë^”„„¸á1Ú‘ÌS>¯×¦~yæ&’‡È40Þ °fRe(NuùÎ@OmDQÂ3²5QµÎœý´ÛF‡§ÿÏ2 Éwíkmn*5”£¢¹‰æÄ´Ø:ìZgš›ª:0¢CЧ/ý¨Ââi¶GI±²þk #>­õü1 „´•FÁÔ`dÞT;Ä3“¯gõ㋾q°æëò‰•öñºÚá`Œ‹g8W9ÞDX;=œÄŸ¼†Õ‚ç‘DÝ1 v×Â4å|}ÔôΚ#±ÂtÿÕ)˜c‚±ˆ€8´söUŠ,P™v3V È# uߎ0œ3SŒŒÙ»3™¿‰«¦Q¿åŠ>ëe1ÚµR+Òb](7ʆ9jyGo~Æá5ÌyÔs Ûg˜vØ~„kµúŽwëj kåT_署Ls„üWý4F…~–² ¡=ÕôhŠVï‘ѰÙ-¼×'o²úV·¶®ãþ¿Åö~»ÖÑŸ'Ü­%Ôôh¸<цݒP$ý3Ÿs@'ÝLÐľÒvo•·õ2Êb!ÚÇé8æS6^­ÕÉbN&œŸQÁx-›ÿǯ uƒöÉ’4)wæÕ(ƒ¸ô1scæñe4%ùŽv¿û.ö¶¤¹º”ݵ96,È¢œ‚^F€¸´ æñu°M~-…TJSÆ[åÞ •;\]* véxgÿÎvÊTtAØ´É$ô;üL¨÷†¶ÈÂL³MñaCÆ-¾ŠðÞ]È7×aýÇ'.ûŠÊ¢&ýPˆÐ±ß€lúÖýÜ•àLi/gûXa ]ÖÃÞ u¢·›Æx½C‰$j¾ªDäÎ*"âŠÕ=–÷5 HÆéàL×íëxúLËp€tw0Öw[ùGP2É|¿‰iûõ)* ™-\ºðñÔ ‰öØÝÕ»ñV<y ú1|¨"ìúQ)`¹´ÚnÖÏgT!¯,Qç‰j¾ž$Ž›‚æ`ñóЪ)T0IL%.GAF¾ìnò‹”$î1†àüMbû­Rb—ÄŽÿ{å\áj`ÿ²°’Þ¯ ÅíjMÉ“²«ÈÁÑâ&rRsרPpIGe=cŽU Dg÷ÓÒs«DÑÉ]\·÷ ½y °±VNi7ã¹§=É S•Fƒ}Af6þ#v:I/ä63=•_ô‹æ­æ²VöD42NAßĪñ=Z”ƒÎù‘9Pm¢ð‰tR­²u¡0íþY×#Néø@30…µê>ø®V>v9z0Ÿ,0à­ó*³Å»à߬ˆåknÂù`̸ptˆú‹6°KãyÕzG—Üè8ÈtNúÒ.íý3þ"üM{ù㣑´8WT;x) hzažÆny`•ç>”SqÙ+¼~k¾zˆ´%<ÜCØWÖ>J4¯¾¦Fæúú¿GǬŠÄ<ò¡à_Þå4s)HÙó&:Nm„rJL¹ò^?ð¢êgPrSœa3\š|&€„¿^iÜg\”íÐÃp…w ’ÛjL€ˆ'>l"´v«t¿ è’Áj–ï®ßÂÛ@9ß{£HcZâé,¹Æ´¹{¡u—rë»ÚG<1ÊXA£™âmñýVE‘’§õkÛC*‡9¼hÇÉJ‹BÕG>@’üL»•¶l§¸ÔtàOÄÏÞC0]‰•}w,©ëõs¨f£2rîè@i™ÎQÛÊnY<wÃÁF‘Wn{I3ºœV7¯ÿ¾žÝbO˜¹‘™¤.+ʺÈþû¤L4úŠÿ¦d‡ñëÿí9ådÄ[® ½i9ýM!&‰-ø mÊ«fï–Ý[üLªRZ Çc”™¶”ƒ^d±•@ºÂ¢§ó•³nÚãþZùÈn!Ï –Ÿ ¶ï.‘f—cÜmRñUz“ájñÝûpPCœAäÊþó'jÚÞâ<ò›÷}êRöÿÉÓŽ¨GÔÜ'` ãQ‹ÃabS/>N°³1Â{Nökµ‰m [17•=«Cf¯ÍqOÌiö"^@›@…q üåu‚N$oæ™+ì— âÈ\á|DVØZn‘¡‰JÎ{~#Å€("ège *o;ÌSj#ß\»ó~¬ªxˆÍª•¨ã\ã0U‘qÁï~uªýâ +ü|®t@Ý’r Üàó𗘀®Pmo»ÛȬÄ«®Šä#ÖSÄé–üžZ-ÿ}Hö è ±KçÚ ;˜³²è«¯~%¬åð‰°< Êc‘`ë‘3Ð*˜ÐsN)Yzg;¼<_Êê $<$9Ôªñ$ìù òJ£*|xùù=å¾a¢å‹8‹+o®Œ? ”ãxåAð>\éËûHÌ?¬x'¯Âq?ÇsLBÿ›³JÔ‡i›µsoþ1z¢ÓÓKHœó&+KM Œƒ*¡=ñž‘Þ, +_`H)Ð (nÉ`'ãKª9€†@íQ¾îàž¥GŠÃÉž…¬†¦LdœÃu^ÞüÈÀxl— N7 u¬Ç’Z10æ{¤ä­F{ÉÌbVÿ³µÉÒ ðݵ(TÝÿbI s{²„Ð> ÈL÷¨Ø<ÍÎEÝ;v’½5OXõª1S gbåqÊ´… lO¡b2‰aèz¸¹]C}HÛ*9• ‡«€àý³½·„ Ó‡Ck³ª³³84˜ó—Ú®•jÿüþ ¾oû ùª“.„™ƒÄ¥þFZîD²ÊѦ˫ˆfM“&(kÿ²#‚êI <Â*Ô&€íüM¢©xÄä·sÇžˆu>Iéܘ4Ýv|e3±ñ©†H…•¸³ÕáHFÄ´‡›”)éö ñ«ñ434ûO‹(³jÄŒdG øÌŒ7}šV×;~¢Ê3™¸IÈÿf¦èÝ »Û>;Ht†ÃÃG²SI¨ŒxÀñ~àKÞtBî·µJ>„|îÈŸ’ÙZäÖG½1­±Fÿ$£)hŒÛ…î}LÙüL¨q³V” sFÄ÷ñÒcˆU¸ìÎqñÚrAùÙ–é‡BR—Žãûá ¯@+ÿ±ùX2bîò4ŠŽ·-¯‰/ËÃ*G!÷‡}_‹é%íu!XF´tý½*%ª/>Œ ¯X—Õµ¶#ºip-¡æµÄ¢ñŸ¦>!œÀ ©Ï’ Æ,Ë ag«\SÁ™9Ž}3‡¡v|ËP\»Á9© ½ã{±ñÓúõÀÞÍ/cóª÷u^ÛüLÂÀu4ë»Y\Ã’ÒZð™Ô0TÜoÕÙæHÏ!ý÷-SðâKÖˆZýŒö¬ˆ€’Ѩ†»=À±ó½¯víLêåÏ"Å …#É"›†¡÷ÆÙ5<¼îáÒ€b½J‚b im·dª'¿ú«…B’[˜,˜Js¼uŒ”~Pï¥_“Š‚JME¢ÔŽ® ÁzvÄèjpŒ®cÌ|_¯-Õ+ä:¦ãç¿Â×&àK`ä 6‹æ)üÁïÒ ™épÓÒ :ìç~Wi³1¬¼É:ÒËt¸|«Æ\áyXåYSß»ð™ëüñ p±4ŽÏ½YY^1l­rñèe·÷“cH[Ú±m—0~Ê×ߌ÷…Z-Hh—§pNÚ©ø_¾à<vöD³3&>ÏàjeV®:³Är^®¸ ˆŽiÜ&à"¡È1QÄkÏ8?u¹uœeÕ8 $?(ÉàZu/4æ^ÖƒÎè~¯Œ$ö2áÚº‹ì ¶kçÁÄâ>+Ïc™zJüð™Õ=×÷v_ÒjöÎ@fxÜðdöq©jæw]v½†ìÚZNªênÜàù6¡é]ªÃ @U÷Zó»Ëbņœ V8»ì„’üñNãÈW$XÁ›'Ÿ ý#{¦Õ­SÌ¿ejË2ª©”К, ÁñŒOm&på¥Åéc <)¢éµÓ£÷w=®ð£$Xàdî]_çW«Ø»™Û ñ»Uc e Q7õïjÍüg5*~ÞSW¯¸5þ×=—˜”¹4Æmõ‚ Îmõp-HÇ1‹¬ï.žtݪé¹$'Ù—(!ä~´€4òQ]YÀ˜¨¦uI¤5Ç^p6MHÇùÄ6óï=Rõímg¿Z¯¿¦ãd·³ƒýÓ Ó,"W~ŸŠ¾©Öß?¡ŠìU”üõ i½®j¿‚Oþ¯¼Ü&(†¯Ìm)E.þèáüÉdà{À“0šnñUTšx˜¸ݽ_pD‚ÅND“u’ÈÓåªúU7ü³O»ZG“1©L÷åáÝ ¢p¯˜YtžH$ŽŒ¼ì¸´ÇƇÚtr³ÛY\>™—Ô§»G­Æ¡»feúOá¿»«?`B¯8å–×9}¦™$ÿŽ.S“}æ3ž27”ÒÏ/Ãó zˆW†Y°AÓŸÑÓJÈ‹WÝãc¢ M¬ä8úÄQ‹â\Ñ® ùðñyê2¼üm<é& ,[šdØn_~í§ýƺ¡˜Í™Ø û——f´ª9ÊÇ==ð±ÍWxXnë)¥þl&ë¼AÔgDÜCÒOiî¿g<•fvƒ}=LÛWZ>¦eÚ¹-°èM¹$ûédvm/ f6‚610Ü먠²¹Trñ­ðrëþOΊÖà kèê0Øjk¡Ì…D'™î:­0°ôµ‹¯9Ë,ºÀ;¯ÕIœ*\Þ•tì0*x€Õ郸H¿…V¹ù M:Aݸ*ÂáËtÝL?DëÅè÷±fEæ²J"Noîçøª|èkÿ­áÒº‹kÓÿJÀ[ФüL¾N‹ÿÙNê_€1'è†Å‰ôaÓߦo6º²Wxæ=K½|á@®!ð$" À‡P|¸L·Ð$}$¸\"‡•|›\xĘt«Ü†£&þ©4ü^©£#Љ¥{š‘ÉÈ 0éþQZ"g{Ðëä†/}k[Ë…0øA] &aÄkÈSEœè²ì|ÉHãˆ|¬ 8<è¦/ÆR (»Z¡åÅwiv!Ô z\¥7H ã YÒçü¤Æˆ-t¡èÀÍNô&¦ÏÈ4–ºhúªHËl¤ìCìê-eä—·²üLóÝâ­lxÚ|•H§H¡&ÚŠ¬Þá^ÿ!µE)gþ‡,Ð=3æû ÉÁÐÏE[—ÓþšÔ¿¹aă>à{=¤e›CûxZÏ)–¢f—mîx] \`Ϊ½Xx‡Ž6·;üe4˜[£[½Àm(>·’ò‹ÜkŒzÍÊO®8ª¡@׌Àè⯥«2¯;æ|ø_1Ââ_j#ΤŸe•šÅ:¦uÎtµÜM(ÛJÐËÀoä<ûé6aÍ_$ëÌÙ©¹m÷ZÜC·Ðép§ª>5ÆPÖ£àùò&zY˜½èM î6 ÉA» `€¾‹üWgëÓì1^üL»–ÔNUs¶‹†ô"ñj ^7ÙZõ!*å¨c•/’|µ¦êRþvØZÏûNË]ð/àeQjcaÁÍüý&ìú ³RHã-Ck´Ü¬Ü"3”ÆoQ3/H¹µƒ¸I˜ £ãø tÓ>Z ¢¿•ŠÏÀ+C(«¶yÚ0+µ)ž¾¨'e›_oå)îðßUȤc±h» ©p˜”—þvýÃX:ÁêMïe>+®20Eò9–qÄø$ý»mü¬*â`Ù‚æ¼%ÊÔõÃâú!jžâ±ÒüWH)@ëºü(C #AKÑ;¯è,Ð|_²^½üÆaþëý®Ä(ßæÀ¥ 5kRÄ‹ò¹,$Þ{ç'=„’À@‚‡ÏôŽM囂fǵîÞn‰Pqê×¹™|«òûðù4n Ýr¨Ë&«×ò’ð¯uJß»«iþøæ á\ÿ0ñïyQ…ðúã÷‘"VËâ¶qQéRºB5ÁÌ«Y2Ae¯žùkÍç´¯ýãáರû,“¬%D†WðS–PÚ^µjf2;Ff¾ñf¡†üƯg¨|oËAÔ×<«n~ß!ßùÇ%öÿ²ÉÊWe>Yã-ÊéV0çja!¾³+{ùMüÆb¢¦äD’kì{´¼éž‘ÊHþä cÕé m !G›ÁÎI ]ÆYò¸ùÙz]W§GR¨‰”•¿GåªVíçvtçäÒ5¯'±áììDz™HÂщ6γ†K¤•k<¸-(ÚÓœ§†“œ‹—--ýªB7S^׉4§S*SÁµÁ´¹<]Pý†]b¦n¥Þ›Ê? 7ˆo²^õ/JÙ’bÞO¾d¯ÂÔ¨fÐg½'Ü0Ú+K8$u+8fwåÙûNðé#ʈ1Ï×?Eßtê\7h·T&ÈÌ« ¤hŠðò?§±q½:oaüÆaùÅ"ÆñYÄ™+_óü†¥¾NˆFaGHÅÒ4Ï£$¶sì˜ÖIë;½:¨XƳG)#ø/Èÿ û–ÛÚWM´._QͶœß‡v™\î ŸËå~=?2Š€ÖB({ªÝ…@É1ÖVDñš¬»Eõ{¸ùsàL¶ËnÚ§)Ê*à ¥ l€Šÿâ SÕ\tE² pœ9e}í–朱­ˆ ³ˆÏ sãåÅÀr¯§û ¼â®PkýC7¾Ùòæo‡¦ë1ÿ ¯û—úá]ò;d1¦"|-üµ -æ®X8Sþ• Öíf#ÜóäµU“ŽÔ¾É„ŠÕÀ“lŠÿ,$ŸNѺAØ.ÿH¬ËT«Í:éægL^IÞìM%ÀhÑt`ß7 ô¡>; N¸v~g஘ŒAh¯*»lx.Ú¨UŒE31:Û×;éÑ—ƒƒÁÝþïCš¿p@¬4r²•—ðÓwõ«hΗAïؼ>*&ïĬ1Átyu¤VëÞÄH˜õÐñ˜‰vʳKò¡ÀVÞ©]{û1xÇ…¼M€»NïýÅ|ßkÐ’z†[Ñ͸ú'¬ÖTÑá¹£hÌ  @úÕ6M4#–Aeòû¥§e^8•ɉD²»_½²룣æÐT:.é‹¥Í}önçP£.s6ïÄz‹÷±0‘b¸O¯_*x(fß *Òr.ÔþrÄæéud–3 D¹|M©@ºœnøÂ¢€¬§‚Cˆ4oxúÅž¢’|ò†Ì1yú®œ§ÉdÜL«ŸKYâ!F¸ÕoV¸g*¸üOÊê _€‘¸ºÈHÍPÇ‚Ô-ç ë/1á¬ëÖËÒ<Ù¤9ŠõØhÔÇSš¿ü}aCVl}§›$¹4fOTÉŽTýÙ½ÞèE–òŽ˜ÌJÔ™ø(ÎM\Clg…Ž>+ÚAõtÁ¨gSæ¬DêòYµS$ >íü¯æ§)ìt½³®æ€1û_5¾ƒ´Z¤±_œ0Jˈní×-³xÑbÍÊpj¾ug˜@Õ)§”ÁœrYJŸÄ×ÖA*žàÅ» ЦåØ?¤Óå)Þ¾$¹-{¨Fõ³náñÔLÝ+­'Ú,¢ÀÛGsµ^ÐïM#Ú:Õ(¶ynlÑ““{»¾Ù ½rÜïÁ½sûIÜl# ¦•Ö96Á¾V^ή¹ˬm•µ&A¸…ëü1 ·ñsÎÑß•°86ŒÞãDý¿4Œl¯¼UŸcÓ¯­HN»¬0%m*Òçj-pÅ+Š‘L©%(…› l@yµl°a‡ Dy|ô ©z;!½{äƒâý¯¾ÓƶßS_èHEV)+}¾e9ñ»cñ_•¤ ¾5jf'67Â#Ä«h™6QòžéÝZt¤°ó² u*éÇ©ègSQ%Ò­2Û‚Hn› U¥4Å»ÔY4FàÉët£«îYÁÚàÏG‹¶ÓKÉ@ci·Ëœ0øE¬?Ñ.wüL¼h°A1 ¼®ëeUûÅX+çKÂ_Šqb਄éã’ç•`IïZR€+å[§v•C…U6ÂûÇ ø"ÃïUÂÞþom2ß$)ÏÒ%ßh‹tò™»•óBñFŒ_ƒ‘l§È˜ãU¦°Þ‹‰'AK2‡K¹÷ŠÞç£3BkØmõde€ž•³méc!/4áÿÍs„ÔÎÆjùÙ$éö´âöFÍã+úí^ÜxÛ§!õD2òÝB·—_iᄜ–·Ÿ/Œu©Ó—ú&ù-™A“ÙxÀ³}d^_õèý‘¯æüMYšß8“Õ_íè»’Õ˜Xqsúx¦¢ õ®i#+I_ .†Ó‡nˆ‹Ff(ßÜ%­1Ò ùoÎÉ:,›E•ôC“n²W· VmSËQ9>Çá''Ïz*µ&Eý9 qF^R#1êÝ‹Bç’;Z¸“À3(|£ 7nîÂ,%÷Cy4RGÊÁAíÊ;öWú8Í»Q ߌ(ÇŠ«HzÚ„+ ô„k´!Zž´Ü›·«álcyÑæ¸ÑÊÃh´Ž©Õ9=»QµB؈ýõ/ :^ 7oþ=î1+‰§,nbg# Æè§Ô[Œ¨šØ»Ë[ïÆ&Ͳ\Â?Jèé©ß ¨¡¡fQšSŽ‹Z\aµ{F±V@ËF_SšOggS€—ýÄ n  î9æáÛâáìåìÿËèäàâáÞÿËÔãÞßãâÿÐÙâÞßÙÝÿ\ÿoÖÝÞáçÿ×çêæëçåÿÙßèçæïæüM€§÷DŠÌ@é)U9¥³•Æò˜m=ÍÉ­;`²Á—Àºòd•®²ÜuÓľ–°µ]…˜M¼ E$'†Twú>Œ³•|$Ä_³cݬsÃoSd«^1_3¢ÏP$× ð•¢r>îên$?fÖV\Á¯t_‹qàÔv*Dhæ8Ñ oàúÚ –Ôºª‘€ƒ:xËCý›í"X£ü (súVqù£±s“¡•ûT.äÿEð/7 Þ|Ã0éŸ ·–L¬"ú^ Çª;¿š…øUªÜú[تá"éH…gUüM!òñg§6Qk7‰àˆ*ªF9&šÎtí¡·%Gå d>¿ ÓšàÍ…÷7àáj»þÌUwÍÅaª[—Ǧ í|pà7oo-¸ÞŽƒðe`y2¡l<@§sõ;»6Š6bßòw&‡_KsÝ>kŽî$ü2™MÃb«ÌŸ5‹‰Ð¦ÃWf÷|ôK<©+AÎz{ÅÚñ—!ð¼ @Ð#øG2d Ž—Óýoäö‹]±ªnj–}ªž~í €_•eS¬â6Ô«ÆÙµ®^@òP\t¹> ­0§sÝw¶F”"”­ç1 #üL³G#ŸJ¹ ب¼vÉÜ\}rÌ:ÂÚ1¢ì½Nª~Ù– sá⬤ù§ m°R™¶%œ ">ˆûãÏ*™Ø×±—3úâKÙk¤)BÍ·Øó]dGh ¡_ÝÅýTR£i°¿Íyð®9•à|z>D£ HVKÕ,0 “Ôk}G7g,OÀºP¶X&Ó×É"T-%ÏÈ?³kl×îæ“CT” ÞÔQ‹—dÞ’=ŠšÒ=°†xíÐÆدñ6z" büL²M+Â-­Inÿ*þlWs=ssEg#ü”ß%Ÿâ0‰Mw…¡DNNL\shuþZV€·(w"3&ïÃwçxÏÕ;(ö«yZ|I÷añzFÂêgu{ß÷±…ªDTG ÖÚfG/?_ŵ¤QšÉtIæ·@+tÛaâe+h†ã ?-QÑK  u;Š¥Zp”mõɇkqvÃÄ¥3|+* Hƒ¾h˜Í‘äpë5äê2Ý[ßHQåeô`¡"©g3¦D™ƒîû† —S =‡£2ô&Mï݆ ã Œg)¶ÏüL¼IÍç‡ÔV÷ѹ6¤8gSbƒ¬V\2ƒ˜‰:ÖÀ8½•̲Øÿâb%°óÙš²¡T5àX¬0ŒRZZºf·¾óc}ªÞšehùµ£è¼ØÖ­»Y_JÖ3¥!ý cÑÏK|µò§`îÓÄ{Mféz.=\3tõÄÈFœ"œéÙ¬˜tÆkD÷‘¨“K¿½‘6]ô„ÇG~ëîD#mò²'šÄØ~3Á…×°:Ýâþ-VÆyÊÊæŒ‰¥ ŒÇÿyykD®/ Ý7lˆg‘*r3úÔè5 ÚM¬ÙxÕƒô#£â”ÕüÆfÉÂåìïÙè¢ä%„fúw7#ƒÄ–g5–üTÙ6”ŒL¶q¾ülŠ°Ðš¡ï)³ëÞOgß&ú{9àz øÆ’¤’5¨6AîA ¾¢Ýˆõ?í|rú‰>ýJX¢ЕX0¯¤%܈ô…j¸©5!{ºÜ«·ÞD ÅÚèü"6"s&û{Ó2UýTùƒOßµr ƒÅ?â t2Äés€x |N©áÍ)%FnÊ|”¬ÆÀ…ˆK…˜•òîDz'@"Ù·ðßÞí?Éþ$ˆ©u΄÷pvDS “–l„üL¼LêÃg2ðpz}T8'A¬;]«AüÒ”O%ÛôSb½šD8B4íh•߀]OÅæ¶ÙŒnpȣ˞.bÖ¾H‡Èiª1€ÒÚœð.3Éáx£Åÿé@&K}¯ ¢"ju".ŰaAûÎ#§«þäÃôH ïŒ óXP1„A Ð†Ï´¢VªÜ(Ð?Pþ~ðž8GWs Öæ?˜“5ø@ÓýTíB,ý×Z&Å÷Uçå r»‰<øzŒ²ÐäK¬¬<ºŒÚ¤nWÿĵE?Yêsÿ]Ú%*˜(ƒ£¥¼Tbæü|®1ej|÷mÚc!’ù´ô™DõÝWf^¸’þYñ‡…ôKþ<䀆q4¿ûåC‚%›Nv¦ùµ!Åݾ´Ê²‚ä½¹ÖÝH«£¢ô·ƒø®zoÍ6¬Ÿ'ä-¬‹•§!aH¥Ôw [\$QÞUu‡6|/BÅx©Ñ²Ä…8üG˜x€«´7šÒ>A£!rBŠÚ£ŠËŸYž€ýÞSÆn×cÆì‚C‹u·âØ :ù]ä÷ÃK’J'âXÞÿ>%TŠülÕ¥Æû;z%Ýš'¿E-æì›’5í§H$Àóu=þÆsŸ79fžøÓ·Pô«^ª§H]å$G ”͇ÐCèæñjéÉqiá ŽM”Xlä‘Z­ Ë12àlž÷ ŽSq÷§òDÈ?eŒn‘¶Ç+âSpS)øU×L‘6ÉÍA“˜ ¨NÃKŽ·½:^õ]ÎT0aèø”dÓ~ˆÌõ2|nº-¦âäÏU=£†üQžgW`–Ô~mÈOKÃÖmIZ °º*¸ã+«ét8Ä6tÁ.)–ÀX`7õÊ‹³]ðŒƒ­Iô~+ö®iŸuáCúáØÛá‹nDlñQOüL°£š¢Z/D^SktϵÇÌÊHvY_Bs>º¦¹dô- *„èD$ðÃÉq¨}ˆª±¸ºý7 <2†)gÍßrħö݆¦{åþ‹!ü@CÀ¯ŽÆ»vö+gŠ –‰@GÒ…†J=ÕMð“R‡F©Æp$ó‚Á’·S&—ë¹ÝÇ&‰|«]¥ä;¸ÿF ™æl›å÷!hì‡*Ÿ'TKâïÎ9ÁÃŽªvZº£±·ÛºÉ„[0Øí¥ØR¬IÏ-L”ëé¿òöåŽî ZRï#‡ø¹µ ¢Dˆõîÿd"GüX¢Ž ©k7p¶ÈX?œ»ÈàçøÎ°ß"þ‡ØßCˆï<†¤Æ¨U±˜0þŽ>9¾ÿ•¯Þä±Vb òM»m&Fþ˜l¶»·U¥Ò`‰Çˆáò"*­nÏØµþ_oÍŸÎé’ß ÂêNƒíá×{°ºaIëR„žˆÊSOq1zSïÞ‰¯‰]ÒZµë¢uòä‹EÃW éï.ÁÜœ€*k`…RnSÂe½×vwƒh»îBÝ+÷`(úeÜP Ô$Ò¢;X~™ú“ßœbkìcá¦Åb³Òóš9‘-HqŸÛYÝ`üL®,ÜØàzê}»=pÝd!CEÕ(›àiXÉFïLöÁå¦|‹Gí`®=µ¾EÏfÏq½U9‚lT/” l+Âê&н(Ž—£õ¹sÑ·’$%#TÄ&Vùú¬0e~9„ß4$Ö‘Ìí‚:ê>ï,³ å²q„ñ> ‹”­ãÚ} ›Ò‚µQÏŠÌàZÁ©±yñ2 ¾Ê™L̸Šv'¡tcžÍ™„ØÁêâ¾ÄP#¥ƒÓLœaƒ”8½(õ¼ŸnRÓ›V+©a2×­•Ù}+Ö¾!œˆMüL»ªTäU½Ó‡0{£¨9Ç´YkÅ ;Æ0͵V¸¡–2qq[ZÕ:¨™[ÉйÄ.êl¦?õGúO×ÚïM”q wJ™hJæøF\`v|x'©cH¯yiTŽ£±ÊézlJ›ø0ÊUALèA«:à a©t?]°ëD&Œ›)5Cä[Þ ¨œÀ¯S§áûO– ]5×ÊwÆÑ‡˜wãQ“dvãÖ…Eª·½Îî´©CáæHM’ïeÇ9 ‹Apo‹»2¶:_`Ìá‹iÖª›Ú=áˆÍ:†”c=Íèüï2Ö@…Gã(íö˜/é.;âZ¹ðÎÆ_¨ðÓúeª˜k :™y¨èÀ…Ëßß‚uFtèVÓ6U;îA$ ÀŒÀ|öè=#V-¯ì¢Û§Åý"ð`]è3$ÛjÐNO­ cvÕ„Ø:o›Îµ|Ya4´ ×g·ÜF\£ð¹ò ÇÒâ{Ž‘È ]œìp²!hÅ’u‹Žz÷¸ ³Î¨™ÓD­ƒQþýú@«ö² 4¬â-ªØzÈР±†{·(ÆÚÿ  ¸:‘ŸôÜk©ïc*ÌÉ·-eÔãüWßxw”yŒïtò%:ÔB®÷å¡ÅËͬ­l=¨…û»ùç~QòA‹.ŽÂZ¦“‘àN@9;~î|¿ô"Avü±“ï/ËÌQ;Q$ZŒÂÖ›3ÙZQüPпM2¦fRîí¤›@äÙÍîãTôº<„MmTïõÂËZ U-Äá´ðX²#€(É ;‡×Z#Ç^Iú-áì<­ºd–Éá§!ÑÆ6,žG¿øp kÙ*†Rˆ¬Ý¸$ÅC™T•×{S¡:@à#XøÓÕwqh0¦rÙ·3 ì4ЦfZPü|®qcÈ=ÈÛx(§·²2›ˆŸ¦_[‡¦ì‘€ã΄ £ÑÏXÛì'äŽÉ‚œþðZ¾ŠKsjª¶›À®.hYúõ„Ä«'°ÿÍË^Užcýg9Ä©q©iÌB—ˆÄ&#]cR#>ƒ¿;Óf³†\<ç@ïp¯X×±AÐsìóbÜì 9K$êg…?õ¾zeÀ:‚ø3ùÉ D„HH“a¸Gˆ¤rDzB#e™q)÷Ê€ÿ.ç¾ú`XLø]¸­õ#õVSP;²òw¾`êžæËÊþk(š£]€¤WSÁ öÄ¥ZÏyôI$ýô§Cm`‘çLñ]Ái²ÀÀgOŽø hÑVàŽï®€Px‡.ˆÛI(.Ž#Ã(|YÍiºâõÆð°•ЀbxÖ¹½ÁÕ½bp–¢"±ç¶§BÅ×M¡]£ö°YøPŒá)Ê“ô°´¯ü²KjÌæKá]QÇac>†~  »n@cdÀ`Ì{´òý^%ÛoÍ6xëq÷B¥† 0ø–ã»7l[Ó„·~Án 2sØ:ŽêîöòW—^é³Qnßmk*Ҡ‡Y*»!1RÔ°¦üLÀí;a=;ê”êl ?ºA‡4vúP” ‡HÙ “\S»BmƳõìñüt±dv‡=oÀd_sÇ$K?³Ã‘àÕ­J¡2ð±ç3a©¾Sškf±ãÅÆÕ•Ïâ!È»Í×m…ïìí6á½êYa y%Ìç¹.ÈΔ¡Pܱîp±*Ï•]h»…[ˆ‰L; º(&<%Srýp«=f/äÊ”^>Å2 ߌÉùa07^ãò‰ä¿T<ºšÃÉ~¼íÏEt¯»üXþšžÏP)mºïûØ[½¤¿bë4ïù˜?zA‰4œ:zÿ[­fÕ+ÔÖÌÌÓÅÛ…˜öuA‘Í¿s;9…d\kÓJ# }÷2ñUJD—Þ>«®ÕmQmVé(°äý²<É9YFúÁκXèsùK±1âRCÁŒ™É2ãð¨³]@€h7,ê‹”,ÛR^p‘]ì“ød¾v >éIëÉËI Á?†Ñž¨IÉ K¡ µ@ß${Z+ \3¶¡Ã7ùËÛB·/kU7ʧÖH|X3T›±ü6gþ ¬¤|.¢òþPss2ލƒÆgÞë ŸÓó‘QÙ%jñLŒœ­ýQŸh|׈#ü:L?§çIÄbÿ/þ@ÎOÔQXþ´³p¤gmgáÃÎ;‘ãç à‡—JF’ï&±Ú+köIDi¹ »GÉŠÖåyΗsUOª$¤‘à„@}FRƒ˜ª{WµÖ[‹î&UmÓ;U¼ÈO0¶àâB®–ø€²t‚„MËÝ"|¨17/Üˮޖ„EØ>Öô¦|näñ×úªçvm >4ħµ8eüIõŸÍƒAô^6BÇ»Eý‡uë*UÆí BÝ´7‘MÌüÆß97O+¤W>×Èþ’m|áåÏgÒ9 ñáQŸ!1g±á1G œÆä(U¬4óÊHÛ–ØïHœÂCŽ*¥EVwf‚a¥Cãê~»böDOˆTüÛȃ&X’…t¡âzày¯8”+‘uwæ—#›¢i#E‰o6|wÆkK¢63õ°âIbÈx÷Óyj †1n¶ì”´i˶/è%„v~9’ÄîÚß¡é—Ç]Uf¶Õ¼wüñ ÙØ7ÁÎÑÖ^^Êký KæˆJ£tq\¢ aÝ%>g@±“Mó(‡W²G«³©v&Z÷gžû¹ÿÑlHcüûX~_Üä|×µkX=râ“çÒFKÔ·â„sce‡ÈPÀ{Õ½£¡lËÿÊ8ãç[ý÷›½Éå-f0^žúJ}÷5«ádÒ>YeGÎßÔJàX“º84 /M*ûJ8<4¶æ€Kìªç½S€;Z6X^Œ—Ǽ _53"Î9´ÉÚúX[š»½L QI·–À¤R֥ŒÞü|·3…7$nV­`üs0ºˆÖP„ÇA/óÚ| ¿˜üBÖ=7)§˜ExòäÉNxM zQF cüÆ"^xFˆÈƒì[Q†3©?µM‘Œû¢ÈùêŸü©àèÜ3ñ‰ O:Þ¿RS_ÓÃÒæA![fB™äÏELaô«° ^Ä¡m=°Wœ§Õ!YV•Éz<¶¾Ãöó€ ?gþöüܱúyú]}ô˜eM-ƒLS=Ásà?/ÊÚ×霢Nc&A%¼( 8DઘÿÝ4®yQ‘gË®1F²µàlþaíuæ»qF–›8—*œpøgm®Õä7ƒëã-j»$yG"‹â±Om|w袯<ÍãÔ¡‘°ƒ°zëÝõk|ŠãF嚘Á[3ÙlCnƒC£§×:Ä/¹®Õ7“1KŠÐãV¦híȤڂØøË¥©ë.±ß²êµ»«Ò|Æ6‡4n®¢©ð#á¶œ39\@lOÁ]â5gĺC›G>éîÛ%èÛïW<ñ¡ÿÆo¨à´ÛÁÉE?[IfMé—IUæ Äst™é³í]!ƒÝ>±yàŒ U©™|`„FÊÏkv$Z4H¸‚üJ96}±9LJqTPX°2'Ês޲²½FµG¨Ëgè}ö©Ey&Gô™T¸C"FÏ€BaŽ}º…‚ÝyË. Kò(¸š²$¥¼Bh/Δ›ðFÞe± ¡Ð?û?xî¢ßÈ8£a©2‹1¶¿E¯ øót¥9¯Í’C¦6JÚ]ÀKwê[ô¿I£•ȳç¡g`®€ÄFÙ‚ÊÛ ªLí+P`·„:K²þ2ø£2:*v>ŸgVĶñ3óªM`aã~Þu É„ž/ ‚åSXs}hž$=’×ä哸|üLëì”Õ:B¡‰Óé]™ 8 ”ò7{Eã%$éÀOŸÄR\q«Ã/rG^ª•wÆ¿äüc]T;Ê$gqóþ>’k‰gU‘?n¡ú„ìÇ,—GDß«Ø~2Ûm'ØæJþD^~ŸR¸¡%MЖÀÙAèmí[UèRFª*6xW«93؉ÒGLŠ‘òdd™·TKjõV¯[ür)d]Ð_Ó­O†"Y4åóê=ŠíJY$Þ{§X£¯ÆÜïÐÃ(I­«¡ú9ÑØ5wCþ$š¥(¥ MMî-òJ—ÅÌüÆbdmäGßÖÑö[cg“À¢ß&ž =íCÿh]¿ü¼ýÛÅß$) ݱ–·åŒùùZq\èòms-@´œ³$‡DT|æ™ÍîÃën»Ï}yFŸíZ1w6æð•„«'íŒÆÍ!Êi¿ºÿ…34RVŒp—ôးT‰ÌçþÖŸ•ZŸ»'ˆŒµÊðš­ uá\ʱGѵˆù ñùºŒù3,”)x¬(ïæN›­zÙ¶/ ¡¼i aHG|J‘#¨O{ÿ\û¬ JwÿPëꢓüMbÀ ~ÎÇ€¨˜±ÏÈ òÇ‹Ò?{‰†yž÷s„jÁó;)·Ô«ÿe‡…cüÚ1N&4`d‚Ř€à[$í,¥ZuWžò‹ @”ï7¨Ž¥cš¼ÅÁñ¦•…+§œýÄÉPÖÓ©Sì‚:3Îӌּ<]á2–*ZdšSçnX—Ý0 ‚‡ ."|‡’¸L²A… —ÓRF˜ÙÈäe·!•RÍf1³Œ“`J#ç¡â*C\‘´ý*”ÙGg¹|HרÞnÎTüLÂè'·»½½W¾m‰‡}&bö«ÚñE¥ZÔ¤éqä¤Ü¯[ܾñtÀèÂxÏéÍ5=øƒZ{˜³¾5_åÒ"¿Š}u»33Šd‘¥ªþ4]em‡;a(F´‹åãŸf ú¥.w‡»èŠoÝàOº À™Æé¬›ß{»jsõ^åsjo)DÉ”“.Zvâ*sËD³U·Ò[Ñ^9ßâéþ9Y;{âAxƒ&Þšì±õ1(`%‹ÌN@£\AØ0åS#µÙ {~sÈpÛÖ®“üñ±Ðשq0jÍžPnúÞzfÐ÷Û-ê–q¬eln1á…y©å'6"ßúÈΩߨ˰VÙWžš×dk#s2V¶ ñ÷X›³Ør댫Ed¸FKÔ¶ (­‰%†e´y¶ÖïjhÛÄn³^h "Þ×ÊwC¥ºaœ ™DŠÖ¤74âóíÀÀ+µçB)ɹ¯sÛL‘`Û4º;ÄSDs¬ÎX– %žŽ£œ`0oçðê¶Ýqà€Ù¡ÞR-«È)[΃ áŽÍdÊÀ‘ŒÔzÄÍ&ZÔ´Kü|·!^±uš›ezàfH,>7{— †©ã dÌZ|Yù‹¤ð<8ìrJþAHÕï‚̈f{p\÷¨¯?åOOc¯Å,OÜëw€ÚÎa{º›QÖÛß  /¥/…œs[Ùë3ZaöÂ,ç‚0n†°£ä8KÿÄ^”º?.’R™ñ¸LmÛýs|1OaTHt}y|bø}R²jȰ§Ã݇²\ Ž‹MCÝ©_Æ(^P3³ã  A¥ÃBÙ _Æ#urÆ ƒðêÙ:©šù\xG(•ý“/óòþ|þÊ-1¤÷Õô"¸`¼í^ £¶Õ{c^ÔÓ•¤¾‘×h Ê1ß­všþ†¼¸Â¥ÖÆG³ Xöµ€hñ×–JŸ²* Ë©-çC@¢‚fXËü͕옣—LÌdäÏä^¡ ‡bX“(ÒYýó Nü}\ tà^Ó$gp°ðœ*ˠϼ]DW·„¨!;¤"ÈG*q´ŒJƼVHpecÆÝÇôV¯@þ²‘(Y+ A&bÕ¤· ){¤Ø_÷¹IíÂ⨴ãOç©ûyd:p$ R·K°p‡ÂX;ï þè³&úÍŽÏ>•@<иuÚ{]yéaÞ%Zš•E”ä AÈ& ø K(U@)µ‡@LeMÕáÈ,ÌÃE½¼•cÁŠ‹¥ü eà\Wù¿|‚Ööƒœ¥×Va/;ýƒž!Ä9滓Z}ê$¿ï:=‹:L5|˜ôí © ‡®‘a‰·¾DѼN…xú¦Ç ĵ•L \ui.p'ª’¤¦)­ý^_,7QÂÕ즔T(^3Rn¾\*¼è¨—dļ)j¦WpDû|W½A:Ãe?~1gMv ¤ß ‰…æ?£!Cƒ²ÓÆ)êºß ˆüM• ЬÌÅ^“}bë­k[jµ3¡‡XІ²¨iqw0­q%¢Ëá{ç*®h"3:#±ÎþÙýAwWcÿlj£}2þ伎4`¢~§Â¨ðªî'‹Pz¡¦y0óãÔŸ§jHŠðhè98FÍtÀ¤-œ®V××_cM§8°g^uµøu–˜–à¹XIÖ“uiµÅ¿­jéÆ"0𩍠­1޾ãîÞRÖ­‚ÐÚ¡ÑfæF!™Æ(–l„÷4艰ᆭI0F|¯ËÅŒUà >ŸwäøJ´5R^öSEÓüN”&[rõ{ߋ޷Y±™#*·™üsôæ)ܺ2ÁÉ/™”B„Šê⦄V¦Á ÑÐk±5ÄZYÆ™Ü]ˤ ÒŒwïÏ$?’ÁÄ#W°¹1¡eù €»äFD¤ÜÈ:¢/ƒ¸šsoäx¯AædMÒÑŽ'ÊôNyý+y© Žõ9¾‹²‚?ø§Kœ¦´Álpµ'N²z_¶ü_M™|îí¸–µÞá2óf¨»ªµ®Þà±&Rîø¤¶3ôV˜Ž±D€€}‡²÷:©lïpØŠü6¥×éÈÙ¬KÉ:Åvˆ DÅ ×õQW|®Ü|ð l÷9ð'D¹ò)ÿÓz’R:,r×ã©´AïõÆ¡Cý%ÚgC`‚ß§¤¸ôÞ!ÅÀIäAïúSV6˜Í‹d[€T’”P˜˜?œ,Nš–0< ÒÙK°}`ˆàŒë=?,åÓ… E÷Y‚:ä5/3'õtäÌÍDöðGH2°œ·xTûg9pË@øqÚ±[Œ›P2–V2ÜS MÞ²¹í}AÞ¹“úžúÑLÏÑKcØNͲ"aqÿ¿õXßrCÛQÎüMY+6"ŠÃÜßäU€§bµe.¦/UêÑDdÍ S¡ÂšÉ´@¦Æýöi‡4¾*ß=–ðåÚ¦`æâÐ1—­Q¶ø½ÊÞ'çfËÆÿº`•Ü͈e0 Æ®¬<ì8ŒÑ.vÅ (N^g@Žú‹û ¢¨UT1p-½ê„Ý}+ïÈy€2žæèÂGÈ(÷hsÁ9nî]níóÂ\Âd7†/g½$d”Õ‘Cñü0N‘`5å¬>Lê52å(ÆÛ]?ç£eOÒhhÉ릫y=¯¢9¦ü:KʯüK»\žìÙê¡P¦ŸòJ«¡¯åvJÚ(@¼ÈiÐuA¦Aw…¢­~Ù¼‚þ!M=ÄpI…¤CIìžÿ»óß.P¥–µ÷xº)¢èH>ÇDԢ˯Iž‚¤Oíh]³Uç{îà?FŽÎ…³ÍMf:žœ£e½oê£ÆX™ªÖÖ Vôw€Œü7cÀV8•áø¤‘Y†ág±eX…35ÕŒ»˜›nÿOkô*ÆÄ˜|;Ç4€t|8Ìü¤ì–ú6OºÇT×P¿NCR4”y'@tê¯øŽü üø4sü|®^š¨êKÑØ¼ÃGC\ƒµý 2·N3îkTIåf¶oŠÄ|g(ʈ ?ÓwhˆƒÛwMÔ’ Þ²ãIÒcO Í£×nû9ceÔÚ„úˆqÅH.wƒ?"¡Í3øÂ ;ÂA¾”݇®Ï²l§ò»«:CqË[Êj㈾YûB*Lº†eÊ'¤åqЫÌø*HÖ¯$ú~¦Tz5 ûÕ@»ŒPThXÏÈU¨u¿Œéy±a^lK[ÖnD¸ëéÄ",È&²eæÑ-¼ÂwÜ"M a»¢¨e öÔš•6wW ¥21jàe [Ka À{ñˆ`å¹¥ocDͼŸÚ[È/Zù-ÊÌÛª,{´ )ì*P¿”JÑaNí9Ci`çÞwk¬ûu*‡à=[Ë®J[ëÊê9ÍçuâµJíÚ6á»t‰Æi•$SÅ£«ˆ.¾—ç~uâKêZÙ[«Œ1º2°K§^WµèȆ† r/‡‡vÖÈ«ªž©¯ÒA=Ãl.oãÓ_6Á:4>¬Žö˜Ñ§Œ7}T¬F)aù#íí¿Å4p¯HE‰8‹gè¼h/Z¾¡J†{±%ÑBOÎ;ê<ÀSwd»šQüL¾ñ×ùWägåúÉ\Fï•4ÊQIÇÞ\ã`šîI.#Ëw(/Ý^4tjú^`ž5®fú¿Avt/YÝoy“Ó:—ÜI\õëiê\í˜Ewa-Gl5„}zŽIóÍލˆ¿ÊA¼ƒ_Þ«›"×N²ÿÆùU800:Ê Ÿ¿JÙ%=Î?^¼òwxòKJ3ÇêGƒüí½`íÝÇô;ÛF¥ÑCdXqGHŒ„ÜƒŽ°@j‚¦µ–þ×—–­ίöËÌñÈ]Yê1[âoгӟŠV%þþeÕ’êuè4·ÿ$u^F“ñž?{‡ `ÌüNP©°Œ–ÙGƒè±¿+`ÌÁÍ /ñŒ2žË.ý韓ËiKd¿> g×{TYÁ&²ažÊ)›¥Êþ§p²ôžÄO `ºÍœ?Λ»Iå Ç¡û×Hja$>3é}–§@ ƒ°öD†]§øˆÇüMY:40˜YPaƒVUüFÎxȸȎ»)´‰Ãß“¡&Õ"EÝE÷7!r|R/$»sHŒcÍ_A,‹åºÅS‘.ÛOÓ¶U«žÒéu…žšpVmÇ+¿ØAUu±¬­Ü…o75½bE!¨&"BÜØfÖÈ×Öß Á”ý¥É¢<}¨¶~Ñqro/À-úh'9Õ®Iø x95}Å GoDéÅWÍ…™ƒ“ÕJ†ªT[K½ú#ùRë²áTÿNñ@º‘¿”ŸD^ݰúPz&É&âF]` @É—¾óÅP¤;üñ %ñS·Sœ~îöà“Ö¼$‡ÆC-ïö'ÐÒÓ6jy¤´tAÃAt9 ÝÐ…{§Øò>¿ñãD4Z?:‡Ÿó>”$$/ñ ²-^Ž%Þ"ÇDT,È2$¤ã±Àè¶°5žÁ)ë8DH2¹ÀtV-hCaÉ–/²ÎÔ %Ì©"æš*¥Y®ŠòL©ñ–Rù;o…¤`J=;c÷6“¯ü1€Åtáå¹YUŸÓÀº¥,¬|•ÇòÒðzžÖ$±sY§#âAÇl7’}ïBº¯³ j]mo0YMj¥7nÍ/0³ÿE çOÜäL êlgpÍ›ý¡sp~ÂŒyåõm,ÕñGƒ<á9•BèŽ%Ï% ƒ¼¸îÕŒúx#`à}!²EÌlV9Ïž°×Î¥E{àü~(„Ô,5 aØ&’D¸{!6U>§"ÜHÛøÇÓIhxvàÖÔU€80;ù§ eâ³ZÀƒhn¤ßã_‹_³µÑAQ?æivü|®vC\B 9N°NåÎÑ¿ñèõé[ö&CF6¸:M›­‘êŒïµ»ãª&hdýèIòèT€*ªf\Vl•ðŽ2æåÞ­“ŽÊ>¬šÙ[#ÇMŽ4 üåÍ8 CU7“ÿúÑ^¿8Ë¢ì;V"›\ kÌLax¦ŽklÀù»ô¥–Èmwá±)J »‰Í ¯~‹×aÙl@@OÎ=†\åäÑ't`1ƒ4Ï*¿] 6§¹ÏÖÒ%àÒ.¿°¤µÞ[ÛÏl5þƒsŠƒy»ë'Ì—O( Låm®ñÝŠg]SÔÝ2ì<üX¸£æ }8%AyyšD‚7 –6P ¾L!P¾êSOC B·Ñ¦VÒZ²¼ëÀšBçc÷ÛÔœ O†§µjlÀ÷+u¸FD¤ôF?Ë”+„{zÿIç¦Z†]*¬ü÷|ƒHämlžg*',R£ÇenPí†ލð5gÏPŸÂ7,vOŽéçkKtP×aQ›. ½âÈÒðbn›Áò&“G˯õ‡vv•¨Þ/±-Eh1ÏÒ®{1fÅóÔÓƒzf+W‹î€qe{Œ´ƒ7Ã^i ž'ZaûŽp µ^üL˸ºy¾ùâ/*Ìq‹ûþå‚vX(¥¶Ê$iJÖþôG`¦¶F™I®ÖgÕ\–O>ʨaDÕét/_ŒüÛÑÓþ"DXH´èÄÊ*&ƒiÛJš¦;lYlDz@,]Ø!XW“m/¨QùÛcÁd®3Zz6jù~ðð÷¡•¯ã)v8Tc×Zx’ÉÐ!ü„–ü\üÕ³ßf6‰º5]+þ¨KNµ„VU=³³[$ ðüÜ$ªdêõ‰õyßù€±ä«,O«ªIÔ"Éï³#ãq+Z÷LÚQPH\5üL­ Èîg£²ïãÚÛ“É^y" aôˆF— 6 Ý›;s-M% CæëKõµN8w±1#ÚàßÌ'“”HÀÜN^•楹}K ¡[»¦Wn\aîq°Šþy)Šü6V/äüƒŒöÚ‰M Îæœ ÓBzÏ“þåüÏ…ªòGÓ J?å ß Š”ËOÕFhf—AˆÃxW·Ô6&YÍÀA޲7d–¡‰šGBoŒ—¼z¤Ä¾§D›*–™jp j¸}©}°-T×!§úÉÕ¥ÑïxÊt¢ÃòÊ'ÿ}».ûÝ'ýXœ|Vð!™06lѵj 3Ó@ 8S4d@ëgËÌkyìãºëØÍÍe\!×ëlÕ]¿p­Áø0bìÝ ‹T\Š^gqñœx˜ ò„Øa@üLºñë¨#ÐÛrüiáZDr¨{ÄŽÍg˜Û¤˜:ß4bnPÜD%¦!ÞWò²ù!HéTŽXÁU‚n®?6&67ÈqìEžt§Ö•ý¨ í-Ú²àøRÆ$,f[é4É­×tÏhÄD¢9°!90ÃJËÔ“rÓK„,-þY“JlýZÆ×­§¨9Ý}ø²€ûl«bÅŸþ1Ç›Üë Žƒ¦rÜ‚Â'»ÚlÉ [ä‚=$ö~éJ,Á 5Û°ìàAc¡]*¨Ý·ÝX‡ŒoŸ²AÉÄ¡9IïŒÌ¤V»{üQ1œ%ª}üL¼G$ƈ-‹ I§`v:f“hGA#Ì(¨êW›ˆY¼œ/ÿ;å1e”Ä\±«QDÏÉ1OKË*=ß…Bu)kCMâ%KÏ8Ðå¯P‰![,Çrf³SÝÑDåâŽ'¦ˆÞÜ~ ;«¾÷ º8Âbüç ¡vâ2‚Á›¹<°PNÕÍÁ–΢^æDã=ú|}ÐŽèÆýw{àÝÑ©Þ5ŸC!îš)ÖY×a·òSÛvéÚ¦‹€N»â{-ì‹ žf+æ*°Ì| íF¿®¥{X¦ nuÄ {1Þ´FÑY÷Z渠F¦2™EßóüIÜñ8cXÃL4µÑÇÓ2”,¨O…\Ø‘ûª´¾é÷)åGæ’TO4?m_¨0¶©’Õ& 3 õ} àè¡ÝSßEòæq›w¯$cgjo|ûÓôcjZU‘©9KºÔŸù”䂉"<Û߀y¶}ãA:Vò ßaþøÆ¯Ãðߘ0PÄ í4$W‰h‚ïÇ„uóô¹Fpº†m7~^„{&û¾•h°_ç«…3iJñ—N¢ÿKôØtPErHDQ™«Úå!ãpÔþRâž^ •^x½mâ —YÃ\¾NŠø#o¸Ý»OggSSýÄ n ŽùÎ#:ÿÖÿDÛíàìßããñåæéëÿÍâÞáÝÞÞÿµ×àëíìçÿÐÿ…äîêæîèèìêñíêÿšàæèòðöÿ¸ü|®r‘ØupÄ Õ]=š#D½Þ˜Ñ!Z„ýp*pƒ$É1]ã ¤X©t×|”Ü‚o;‰\Ç]M4‘\ B NIò;qÊ4þN¤*ª’Ì#CWqq`pVu³œÛÞ«Õèá|±UÐAˆÕ];Gã’E®–ªÒO‹²óŸÀ åÁK+|i %Þá7%ÁSÄô}zQÜ­ ¿T­—®‚ÞNDøÉï½¶ÊU"S…Sáöè·^Œ'ÂéÀÔ>µr±özýßuOèX{¸ó­4R3åˆä±Ççʲ˜ÀI'¥B¸‡âB Äim“ó ÎÎë¾T¥Êƒ¡Ù=Á¹qCºË:Ì §s:09:Å\úpó‡HHYöb»XÒÎ$F výºR¡þÕÿ/Ú|nÍl&ôÚ´ïÚª‰¬0ÉŸá GYÛ~5}|Kšp£‰ë€¨Ò· R·“Û)êÚûý²´J½ ¨¡„|m³†;ŒX5•O´I<»C]œÊ)¥©ÿîÈqzý?´¨Ü­G¸úc¯„šù–?«÷r’O\ˆŠ"þ?™›÷€ÛÆÉ>Wþ/ ÁACûA¯íav±»Éí f `1Yd]‚fº†{0žü|ª·‚åløß¡]Mš8¡Áµ«ù$JZ,Š3BÃé†åpîÖý¡ƒv¥F°c¹Ñ; ó Ùpn‡­õXh†]¹‰™uk†›Â ÚªohM$‰7¹ÕœYÒ+nÈÓ{¾À?½DƒÖ¯(¹ó&tmy ðezmö©Z…nî8¨rT™ÅeâiöäÙ?é"Š™R”ÍŠ+âÃÑâ¶ø_òÇD £z8¶r˜ÄïóQáˆ6[Ó„°ð­Åkïlõf.szøÔš\zdþªã¤ä¢[ë)Ì:ÑdÊ‹ÅR$¸[wYÍ®•ÒÃi_­,§cR _þj`Ò¿4ƒP¬†1™¡“f"öÔ…¥¹Ë&‘ƒnމ¢2ØÃóe'=ad5Í*6‘e*“gñ¥ÞÔ×¼aûá¯I’°±FKhOxƒÆQõaðÖP"¹T¢ù‡Ü¹/sÞ\D¦€-ôÖR8Ól…®ý”\Œ†.àBn‹':Ã-¿ü¿ß]>Ôx²Ô³ÌÍŸÂ(eüMszò^6RXĆeBœåµf‚«¸ÛZ˜¸& ª•!ÒBÃ*U¦­õ'Wýž€ ΟnЍ!Ï^€>Sö3þ7¯EI’Òkå±édÅ‘ÅódªWŸò:ÕʦšgÝTÞN)ÁE9ö–¾|‹i„ ¸(ã.ô\¢½^«píSvå¯u¸ÎŽÈ²p¨;Èùd´Ú\!NQ&ê$°þ‰ƒ¢&¡¶´Ø‹7ŽôN1ñKFΡlhØx‘Y‰Z²œ ŒTøy‚ßS·£ “=aÊ¡¿€¤’ðº1*ŽúFP¦üIý:ˆNW‡šÃ}³½qÈ~RPÊî¨;h7`  Ñ<ÁšÇøÈy´uÅI˜„ ‰9è•k)>~;™æà—±ÃéeÒrgtº2ýBýêa ¾=¹à4wv« ”¨‡»eÀ{?o4ñhÈþ÷œÅȨž~}å S±Hÿ¹–a%hSúyÀ½Q)ƒ­ì¿…ÂÁ4Óê ùXGB’ý‰÷cøÌˆœuª¥Cà3òé7ŽÀÊ;ëøæOýOBj {i?‚_JÍß °’Ñ9A²z5 j`o…ñS~ýqæ8×iQÿæÍ}861?)+ÎüL¿òlÚ_¯v>¼}Ÿï%ð¦¬! 2óóLþ³¬l•I¹õj#±²ô>Ä«k\QIõðÑþÖä¨W6J‰ã8*MXËht@Þí3¤F8@!6Ôò¼âï¬fh.lƒ5È[˜:ÚRÍÝÛŽÍÅ}>ÆfK&0 æk7wKáÚátAä"Y n‘è ÛÞîBgïãHx˜Ñkv ›{ÙeKŽÕéè„¥É{UñÆ®ôNuZŽ×…4Û}±6š)Ñ”ôñ¸×ˆ|{üÚ=—Û£‰ËÐÛN+lüL¾XËñÛjòcÁ÷©ìµ9’Òˆëú_ø”LÓÖɘ®“m~„UKÙ·q`´2Å‚ÿG¾°îF;ßl”Ú(„“‘™ÑÌ¥ ye „ÝzŸÚ訹E9Dûë.¯ôµýãêç×’g˲WùgK»B»eàã¥MŠ. lrÃEÉ·0\ÞsÇM;{$='Ødì—>> t1Âár‰¬;‘ï‚§B¨òãhxz®ÞŠÛªF7vkyUØBºð«–N-Fø¦‚Q›Î”"´HÐIVÞ›;»Å\æ?Æ6·hÓ•ØÉ2åy°³@üN†5›\ H7VMZÆ€¿˜´g‘¥Y6o5;Çú¶5ŽVT»\Õ.à]DZA_‹ˆd$´yeûK+^ÿ‚,H-[;[îÕÙBÿ£ª±zEª«eØS5%Ý®›íð!aÉÐÐv™ŠÙüȬß{&‰ó‹BÎe†g¿ ;CÐ@!x*¿£nPçÔu ]ÉÛîÁý&rx $.@FBêªg‡Ô»Ct{¢bHqƇä9FCd—nñòNŽcÞTÍݸ”ë›øZTlÝj,¸>·h™ï°Õ3|†üMYç>åm1¯y˜ªâ+æ9\t ÝÞÿÓ•~†x6eDë$›ó~ñïo@Aè2ì8~Jƒâ‡ ölÞðJ€…ŠCíÍÒµüSN—Â52 éyÏáå|,¶çõ¯‰#Êœ œ+)±ô«Ïg®’µ—–/|ºs×UíMöåS°‡Õ{s؉ýôdò›Ç”¾€g` ý¸ø·Œr¡‚ Êú†ŠMÔôþ%Ͷc½)/Yeu×ÏUîlêzÍÀüÙÚ™¾á†7S<Œ–¢“ýÇ»té§L•CTh¯ß9‡y¸L/ÐÖ{“ø^¦&©¬pWÚ³¶èÌD5ñwràÍÆáòl;W[ž'p>+^ƒ½èyFöâ}¬<ÊÔ_Ð×dÇ"ιÖA(S}jO%çÃÒCg{ÛìÏ ˜Ì.`í/ñ}^ J8%Ií…jATˆewßÍ\im÷~‹Û’kp~É6Ÿ ¡vŸÎ7£²0p? ?wKÜ*oX¹B„> ÜŸlî7ù¡øê°+4·ïÞ©ÂI4bTFPl<‹ZXy*üLóÝÍ(§270Ï¥'×üãÀ/Äpˆ¥UmÓ0C¨Å]b½¼ýgÚíå̇hQSuƺg7¦ãfš+ž-X—se·ômŠ: –•àû°òÈíÐs)k.ÐB¼Ûˆ²lH ÷çÐTò O²°qjssƒHQœyöˆöaž7{v·îu…£ 1ÅÂò ½<'Ìù‰fõ5™Æÿ^ÚˆZN‹h$r3R§b`bpE›.3pIµâuK¾‘gÁ>B N ÷ Wr–jF¯LyÞ^ñía1ÊPyp®Ý4RP4LŸ´øeÍüMv[Ø@ž„Œç1_ÏnzÆ‚4àc£tãÈ&P3W±©þ ù@}|½Ùªî;òÅñmSa¯L(î"Ö8jÃØ/¸¢Ÿ ‘Ñé3{ÅmÎüU€qxä¢ölIaÿ„-ËÍ%ÂOcnŽƒ›óNzçxí¨²öeé/*ù~¾Åp””ZÞÒ-@™˜°_àkZ<ŠC­ÉÛP„ñï]u»{´}Û:w3Å”~ÿBTüǃ‹>¯Ù¬Y-¶[‘4ÍUßLèPÑGJÚÙú>´d1&O-I®>Cjœ´I+@ßË.tˆÂIü|®q—éH$OÄо‹dC“Ýèh¢D­ú6yÀSFþ埜3>/š—Îøóá¸uÿ̱Ë@®<0CgÝávÐMÄr…Þzqœ¬¡&üšÇ¾&%Û¸…_†NÐä%¸ÓÂÕckJª ‹¹`Á¿­’¼K_,·¥øü¦G$J …×ô{í|®ž6/7n ×o³¢ {2ÕÀÒtìH(–›~ÊÌa³‚/ +xõátâe-¶ï®Ì ÜJh…EüšÕ Õ!yΊøž(ªm«æ:x…§Ø7í&1û{¡étöcÂÃ: Åœ9?âŸ5ß @B(1ùuúÖ‰Q7¯ªyÎå.[Äz|‚S±jD–Ç®á{›½#ÕÊG°Qk1wÙ‚êÕÿELŒÔx%Ï…j&:åÍ`騧ÛÔ3†nÿå¼`Æ|&s©ðÏ6›ú"†cŒÎ±ºàéÄ*Aôp‹¤d©¤b4)øþªÈpý-è.`È·+'iw&ÕKaó?ŒÎäh·¤o$w©I²]/Û…ÃZOoZ;“¦¢h,¦¹I„®%û¸0̓Õ~T,© I î©ê¼ ±âóò¬Ã×êFB扒\YyMßa“v€L¤Ÿü5T ÕÈ øj‡ãŸÀω©³»^ÌÎ/o_Ÿõ 3²ŠOåbô¯YÁƒ"jÀ¬]¸ÎEiAÍ@.•^Ë^g$+Âã5œ¹ñ´–IGU&´85µ¾ÆÚ—P¨kë0ÂÚy2 ÑJõP©]ïŒøS• _c§ |4p_sÃë‘wuÛOÝ ‚†-¡ÓÙƒK,¥‡éÚ<¿r¥íÔÔ»;üS/Ý„F©«‰ÀÁ©BGùqþÏ1ß©nº,'¶¡¥B4éÐÌ/õA «¸-RjÀ›ÍEƒ‰<öw·üL»"Z –¼9Ý0'·îûÐ~‰ëŸv74ùØ)Á¿­¥w»cwV¡V¬7W?èWE‘ù´tnÎa܉MÍÝe?ÊrdÚØøºã3ÎÌZ ÄžA3³R|»+‹G|¢ßŸOZñÔbŠPÎL\j¦QÌ¿¼Úl”B”™¼N¼Ó‹MÆ*™áäG]Ùî¡Y™Ú•Òl"G ?ñu:aéÜí‚fÃh¹£¤²ùˆ¥ÞCk.5[I³–SçÚ¸þRä1‰‘±8Ï1u©É¾J*x 1§S0¡ª“µ9i#üLªæC"ÆSFQOø™1Rjöy„›¶[M´ê(+‘:ëNÞÉÅ6=Ôñ;Þ8Y ¯€@‹WàëšÛ_‰7Uû90烳#ÄIeÕœð” Ô˜q2©ì~†ä;~™1àNѵóÆ!^¥X¨j7Ǹµpͦ)¯+'²ªòmcq=„‚q`„5$ žªæÿ‡;hzîå²ïX$*)ŒxRn8‚‰èZó—æg Mšt•`øñ¤H ™ysEi`8Ñd6ûSŸÅÍg‹-mýhüÿ§H³ôÎqÛƒYZèWé5º7G¾êÌo¶u¤òb5â3‚+"ΜF1tb®¦\oüÂ@œ¡G ùÝ4 (LI÷ÀØé_û¸aÒPÌ´ý€ ìKÁ»¸6³Þí[ål­fagä¥Í4^Ħ { Z-:kx¯x'ƒ¬Þ{ ìE1­¢P)¡ºW.7jºÈkª!Úƒ¼Çaõ Î»Œ,(HH @¥"–P5ó1çÌüÊað¢ÜB{±–AÔ±ZMC—F3Þà %È߯6 ì«§¥ªp SÆO7#rËá55?¤·˜Élã^Ä÷¸8¨w­H0o›ƒ vÈk~àÜì¸T¨çSulÀ¦¨9±(k]€tÂ$CeF¸d[”hß™8(Ïbçk8Ø\óCò§a Ü”~N7\äÛ4Q7¾¾•Ê•ŠNçJœ£Xx\µcO¾DNŠ¶Î®W­{Þá+Ͼ©’°Ç4âþëk‰™ËBý‰ Ib®ËY¤½æŽ÷§øÅhœ¿É÷·5?q»ÕZ±çÖóï5¥R zø]æh9W&‹_ƒŸ‹¾,÷}mi«Ò08ÿzÿ íîÈvð)ÈŠYÚÊà„—=¡ÀíV§Ø­ ¤G.Rð Od‰Â°•‹·¦m]áÖ’kÖ£86òÅ4;Æòï‡R|/Å9'ƒã¬·øÖUðÝ(j/¹? ×´Uº´#óe„ hÊ)œâ§+±JŸ+£êÁMÙ3¶5Uûø(Ù'I¢íj$Ôÿ}§yHn7ÿpž“¦­#ü1?°â3ȹG ºÅÀ7p½ªÏÍCs‰é5e?aÿëu×T—¡¬ùD¶AP»—?J@î§.R)¡²Ï d—Iÿ¾¾/…À›Á%ÁckJô£Žº£0cïîX‡@íŠMÃ&0»êÐpÑñ†¢'OÏÆ=ÉQ°ù$Ÿæi§ |$Ì·{Ô—.á™v¦ƒÐ2I†Ê`´Ý/SRó~$ñ¶Ì_¡˜ +yBJ÷ÅO S÷{Œ÷µƒL{^|\µPëW pòK[ƒ±&®7üL³‘ýÖˆ[éî¦8(K Fú'& 2"ƒã×_†I—P˜Ý¯±Â°ÕªŠB”º2µÝ¢œXV=‡€@•?b€K>„8èô|;ÃcEdyÕ$ÆòÒ1ý³=‹bpÐC€“^ÒK"i"à6»—uÚ)ÉÎL›‘WrèõH|zú)AÑAÅ_¨§+‰LNó0=Œ5p7éQÜbWþdkX4Ÿ† Ñ[OnŽöÖ¿šëÜCv/'!T³-;d",®µm¤.¦/qºm½7¡ëNÚÙæ[QÒÛ¶šoö7&üLä®I/‹¾Qñ&‰ß+ýIï~éÁ”4oUn R|`F÷{ÖÏ'UƒÁ[‹~#§¶CZ×îÀÁ,¡=±bšå‚™HΨÉóÁ ÜQ:¤’¦$x7ÆëŸk¹ù¦Ñ}ˆÙ®Ÿð¦{1,Tö3P›lYí'æ‹hNäš8ð—f}PÄÓ–Aä6Ï€ºb&Iˆy·®:¹ÐÍM Š8¿ÊlxçEUzÑ%Ÿ¨I}®3õÌÑùL±ý‘´z¾ˆn¯p62U£f-Âh¾0MèÎWÆy"h=®vgãBoÒo§ÿË¿^O±-e=˜É£ë¶ü°ë+šN—ªØ{Ö ä9Yô@Ì«1%RO9Ñ ºyInGÕ ý×a—6?¶à¹ÂkëEæ3(îEÏ‚¢+â·šÖètC‰„‘DÛAÁ!ŠZ5™œI•Ü;šc®¥ŠÛõOZÆJfÂÅ«gÚD¯¨š³wâ§ ‡÷xi&f§…/Ǥ1dR’AŸ@{+í0椀m=N¼÷íR×§󕨸<\&iC7HˆçII̺^s‹ËéF6¨²:R‘i°g€3k¹Á–JŠXˆ  רå¶ÊgŽWD”›qÀ:ðÀ/DvIüL®÷¨*w’ ³ƒ2²Ž‚+ò” vßksÇ廓Ö ãvíøÒ&ÉÒü–ÞSÝQK7äÞuž÷Ò±1škOˆë¨k¦h憥©g“*µtø<„p`\@EOÿçL™ôîëf£ÐåWW%û Âkí-_ê×lh•«óbÊ?7uÞ¼ =K±JÈʳkô¤p«Ø~å|˜¡Q/×>d¡.ïg;é:•÷¥1ââúmJ䜅‘Ô¡wosE-“€9‚tоË,€ŠŒÐx‚,ñaþ×1Ï„HBBÍ”5®ÔáüLµ©! zn<Ï÷d_†Ño:ƒwøHf¥F©ÞÖš&„¶+ÖIN·1íè(Í?Yb(rLÞuûµ¨ ¡ŽP÷€ o|Ï‹?$Ó¶PCÐåx>ñx¶qž?ÞŽ]b€—£Ãïõ%‹~•ûoƒÈréNæPƒ³*SU"På„^uH…´ò¹–.ÀcßpHÌw`P£r±Ä—óßZ|%,=/nµ°‰I³-ê.iˆî½Ìågöé൛JInÿ¬'j‚Å{|Ù…ÏÏâInwžwÙÖ…K·Æ>2¢Z6¬l‚Xü|®bÎ~6÷ñ>im½OMc×ÁóÚÀÆ…ëP»ùC@C„µ¶ÇMšþê Èj§ÐÄ0ß~ifnÊÈWCª­tk#œí”ë˜g3‘i9k'ÿ·B½L3Åú[r–ׇ ËiÎuÕÏÛ˜ª5ˆ?IC1ì&ƒäõ+L3‡"ä $‚‚S¿‰k—ú–ÿA,hPÃ%›ŒÑg0ÖóÕ@ŽgEµä=Ô4VÙ¨Öú»Ô:ÂÒ|×Ìw,I†É8hî`Ór¾òïåÎé^™WŠ|°±TÉÛåÙ.Dw‡­ûa3*Û‹5KZ·±°×Ðs|ñ³e–1äŸÊ+…bÔûv˜pØ%aËÒ¸§¥S]ÅäH#ðÎÌ þ@™?'íû~ôGD™ö–sÀÆ´p‰Œš„ú®‰OðX E8/WgùŽ>«PûfœÚY(? Ë•ªH„ §mñFƒ)Þ$w<ÅÖGR”]ÀdÿÊ%1^r%Xœþ6 â Aæý²6‚ìÏi2ØDB !Yü6ö=û(#踦Z2qŠé—Xä ÕMÇ3Þ+õù³ÌÎÜj\ Úa¬ÞÇ%¦L"·÷Á¦ü}\.^–X% 9:uqY™Yå6åºC}HqP‰zw ™hSdž[õzHЦ ا+ì …ªÊÝ*~"ެ ìêÙO4¿—|Ü!—*–^'7  ¡û,Úk’„s‹µ6sãJƒa¥ ^‡¥:Á/CØ—äéÝ–mØØñ!9¶8’Jü‹#eqAÅ u,ÿ}•ç¹Rl„(?'ã£Q€åþ`5= ÃSߟÑZGüwá… sfºez0‚Qy>HwG«×ÃP%{5e$có(èNÎàðnØ;"œ£{=F{ÀÔu‚4îRRÏ@ÆxÄÙî¾äÕYe9›+jˆÜÂ3 EˆqÚˆ˜œêŠÖPðºšdwèÝâžÈâL¼4¡Jó. AÆÁ9:­ Xuÿïúgž wgn]+€ áóZqI·{' ã îØ@1‰Ø'£v€—¿À%n)ˆ¥L¨èÕ•R ‘®Xrx|8`Ä¢[QÝlë¤jB1üI‚J$Û7ŒŽ$¸a4¹ÒÛ‹/Š% â¦ì?“ž—̯Ie“ôû¯xž™nÖ%°ã€üNœØ_©ŸÕ‡®äÛ;Ø”bÌ„¤¦ß™¯Ö5×$xfÀ1“ïålóâ¹3QÖtïKŽ„"þíŠWlÇF,’2ƒ?ðb¤‡ºU™D &!kh |ÊiÈÃŽZûÿ1‹±Àè¤A¡Y‰nþ#î¹ýfg%w½ù97U%y(Ö)š¬î¢vrfÔæÓËÉ:|ЭDQ[ï=–ëŸZ \¢wU©¹Œ ÓÁàö6’øï=QÇ×6˜úf»´øÝ¾Ô‰^^¹•W”ëÑñ9šz{£j,ã•Ûƒ¼]¢”ûÓTtœ îRñÀwIçÈË-~L ˜ƒé¤5,Ñ?¯"üMZ›mÕºó@vpÀ{Ë#«Q(E÷#|‡Í§˜Ô¾>¦†Q5]ᜠP¥†ßÛÎÓµ³U÷~x·ý²oÙ*n'Ðt èjš]âΠ鼊Æhe õh?ö.%ßP-Û…ðw&q¨ÏQxÔìa9l@Nç²+û¾ÌÄä´^}¼¾Dœò -0é‰H¥@ÆVÇ3úË6¥ËȯR)G8”ÆoߊU­Ø­\Í.lÖšçiã:/ŠðdAˆÊ†¬s›ÓiYV:æˆÑ6ì3Úz§Ø6ž¦æN4ãl°!W-ÈbËüÅÓã½a­* œþÂÛÈR”ubX=CÛS'ž ·“‹*ÿ8•<»ùe:T@ÝÄ ôËÓ/tÞá“É묳ž>Å?Ë/ÝuÆ…À¹0¬h —tLþ&Jè¾Úeàs[쀞–pÌ¡k,ñÓ(Ç 5üQ:"ïgz¾Ö©ùº<þÖxÚZ/ø]D1?L ãŸca¿À'•­îDS:éÍ&é;Jj º²urƒedüXFÕˆÃßé³3ÅÁ¹¯E y£<Œx)äR‘òÙI¤oÁõ§À×ôR!Z•{CGµË‘…äbŒ£r–6#)üL»qëh ˆ¥Öw6ή„ä 1;ôl1™bÍ2—ðÕ¨ô–B:¬F]„û@…å"* úÐ9ŒòÖj`X´jÍ™º+‡õÃiÄT3µæp!ß !±w-tÛ†~%Iñ†ÒV.ÃmHˆúÞA@M±˜YÖOnÉI\»³÷„"Èúq/NŒyö'õCQ§8açõ«úå9nÅAÐÌ«SŠ>Ú»²Õ´&8ÛÑÛùwÈ:°¨,<½•¬«•±cÊ*¤^pàÂÖ#Â*•êHŸ;.—éë—kóyóÙÜùne4îv‚{wküMNšÀðº{äÅë ä‚óAºÙMì*Ü~6ÛÕ4ÉTê~K9XÐ]inEîÈV,o¯ l u´±0Á]ªÏã;ýΠ>3ͪw Ó3r|FÜ‘;æçÎMålYèßæi?$R¤õ=ôe¬= ûr³:fhS‘fÇŸ¨™Ž¢yv8mJj4ÂUõù‹ZI—"Ïk% é Mtö3 –VÎ1î^íÁ^‘F_¥þ‰1PÚŽŽ1q+ Š­€a>d¨l0"5a 0,ú+DéAFÚ…æ“&E]@î=Á\üM[ ΡÇ×ß;ZL‡ßrcÄ<…µæ©yT8ê”õi\~"?Jü4~Ö¦A/7õÔ2äzc žöŽ=IÑ— 4ýù“šfÅ¡©ÇªˆMv©8zZ*¢Ú“Œ‰Ë“ׯ¤€A/ìÆA”É­ö2è!XÝ“5Õ&ÕØ´Üº·²?¥éaœÊaÞñÆ2IÁë!8Hmµ†m=( ²²bmêw3áhD^%câ"-¤œQ‘@2òùÝ^¸ÄÔ•² Å5 6ŠgXñ{êS‡ÊñD°h¬:¨P  î²|äòdœ%çÊ>‰„2"ü6P…@÷¿¬è+çL<‘c;–áš§†Gªmžx¥³{Lƒ˜ü#)–êgÔŠ Š/Ó§~Gp¸·tY–3ÛÏÝïæŸÂ¥*Q­$âŸaÅì@CÉil ¡™Á (ºLÞ†7B\UœÑ;©.Ÿ×›p]'§òoåþñð¿ÜrÑïpl_Û”P‘â Î’?“甥„]¨)ÖóGsÈbâõ&Iæ95¡ L‘ej¼™³cçPª>f’©¶†ºW#oç$¬2{\TBzµl0ÅR^5jô®­ªïž9/ÔIE“DâüLÚÐ¥ÎÛê‰÷ën‚t3ëØ;†CfFö¾œ¥µFnß|4€ (˜‰?©ä‹§9fâÈÒ¤p^f“¸¡R„}L_®;Ë:Wf¹éŽ0ÊÉÖ‘ýX:\ªÆ›hÕTPÓŽ9™7¾n¡øþ_¼vÇ:7Ëim{\åqGpœÓ1­aÂõ츙U D»Õ&"7+ÑmUÞ&Ëe›AÊIG—œƒ*ßf½ÞoÉär’ßV¯7ŽYeOÚn4VÝÙã冯>2‚I¦Ì]ñÔ3ig õÃL1©‡:³ír¯YøMVɶ¸…þ–°bB|¨9QËw¾€ü0êbmhGÕ©ËZ!ÉÒ=993L!N°=õîçõ\Áë¥á~¿ ioRÿ"†"8ì-i½å%{2Ôü}^4ÏWTyZFá>oؑŤqCdÒÁ”¤'Ì'AÇ`?ú ¾(å8lwά=¸¢!+^Z­ñïA;Ãa`HM€ñ/Íé¡ÛöÎÍ '8ç°ðE4IÕ$:ºàÁyQª0˪0F l¥1–½QOÖv’ ÆáaKR’”ã¬å¥¯]`æŒ*’ó[·Y%“´ÖŠ[/€¾"._uþ6U·V¡ESï|jDÁq‹+iu °˜•3ÙÍ£*¸åôš£Ï…“ŠåÂk±¢}ÑÿW\¨* e@ûo;E1«³@råHÊ¥bdίÉî HϽDÿB(ð‡„i[ª§½ªñœVŸÛD´ÞhAC¡R—|Åa^sôéí7l€­ªþ†[”-Þ Ø=õþ!Áe ]ðå-©m+ûÇÆ¢0Y_6æ©Dî=X%ôa±•l*EŽ{γVÝeF~>غ@²}ÏgnXlë•ó¬u›IŒj8º­è«‘ˆêþkªîNt?úGåÌQ =H8µ’¤ÊD‰´å==@E8{”,›‚{©TÐ8ü6ŽP±ú8Ò6úxV´Å¿UŒñL¤áKôý•¨}ä1 ¸ÝêQÏÓwÛÍ/Ú¥ð*ùÏxz¨Ì 9qÜþqì(»6Ji‡õ.?€Vö?5Fq•5u½¯O—)S'ZíÆî÷ÈÃÎ`zQA „¤ˆïÈvÅe".Q jÞgæï%j©5 ðÍtïÚr¸ª«xazò妕yÞêØûhTŸX‰‹ù$)3•`Q,Ý‚ær[2|©$Êõ~uáüÖK#ú:’½ý½o&ÅÚŸ¸Ã¸æ-ÍL·6›pÈ–rìµ½2 …üLª>"MH푽©dC# bûaë$zx܃Ôï¯>Wå4/qþ-&¤€A7˜ ¦ mŒé­Ü¼`‹ûuÎõºEÁo‚ùTb I/èØ2{·šY!1ýÂvnÀˆjð ÔÓ`œMÉv©Ëƒ]|9N¡‘‘u›ñÈì—àÐ^béõ5?·o`]/¦Ž/ÚF¼Gdèmµ-§sp¾õ{x¿y8>]ïªÏ[þ°Ó†²|ö ÚºÃÒŒÌ-–üqåà<§Yv³úØ,=†ÖÇ6 œ^OXŽ•&hV$0Ôün{ñA†Q7¨†u68·„°Ët°™Ö<3lì›èöf«V3#ƒë³ Á`°DgÕ.¾å!(VO¨¸‘wÑorKÙFBãTz™öɯMrÕ: ¬ëž×&å3Á½ÔÂ^ÃÔç)wÙÆ0èRYÛúuÙ•êv,¡mu¹xêWsÅ™pôâ^ýR% J\_ë…rh¾ýÇ%Øýtѳ±ÉÜ@`ÃÿF!Q­a×+š½3òÜJŒ}(™î×Í ;Â%üMY+6>Áˆ¢Z$³šÔ#²šd·‘+Q*B®QŒÊ½¿k)µ¡¤>Ÿªºýòȵ§Ž0ÜœP¸–¬6®wí(ezvûÿ«ô ~bÛAÃ<æ|sÄB~ÃnÐ^y¿°UÓŠë?Èy²¼¢Áßh,ÿ] ×~П{Dz€»oGþ‚‹r†Îv'£¿`Õ{®‹—»ÿ¢ÌŸño¬%<ü’²Íîô- Xr˜;¶$à¼ì•Ää êYÿ6ÓÃÉÌq.ïO'â[   eâläÐrüL¬Ð'×:Ê‚¸kbŸZw/‰„Pn§ã7îÄRyoÌýQÊä‘9C¿•âzã˜Tv¶„“Ú1j•ì.Ùˆ}_¢šÎªD+Sˆ°†èJ2#°Ô 0<»‰ã~൱~Žól ò6}bØ¥1êµg™œ+7ÈøC£ãŸ.øS PŠD ¤ô~Q$£dÙ‹œ)à@!3xþb¡&WÉúóÓ/EÄÎR1ÿAuz×Ä617âuˆðK¶qƒ¾"—‡<YÜN³ŒAüÄÖµy{Ën8Z(§“ðpØÞ.±±2b(/ ×6“e&ªL¶4/úy¿r_ƒüK#æ Þs„âH‹ÝÚÇ&–ÕÃ>ÒÍa•½cÍX¢1‚Œ“O"¾$•_uAÈù_igêî¼)û¾âû¤!,|÷çx ÏLNÓ-²óÜõvµ‡œ5q˜QñÈƱ(ûythH"^,ș볗j]]TÝ1ŸkàÐÖsî|Â@– Šáùލÿ±Ûv¼´ùšáÜQ>tF´<Ê›ŠÃcìà&1ó’<±m0õœ#ZŸkFDZ+læ=<~c˜ÞãMß§íF À^ë¬ûoã|¿¯ë´:w|KæLTêkÌ= °¶c §'˜hÒDS(|üÊbm/€YÇ‚™mh àõlap›Sì^Ò¸T:nDô3²]߯˜ùôžÓ£4=N´ê¤ÅM2y@†ŸöüwkÍÁ™,«Oliªd“y—v¥ÌaM¸ÓY¯öˆnfw“Š wÕý ú®L}¨2xAkäxcl§=ƒ+°¼ƒ›°ù-%Œ˜^&îjcï¸A/a2üb,$ÆÚ?#†‚ž~ŠÈcaÊú[§ Õ`2¹ß~Œ…àƒÀu s‚³Ó¥œ¥“%š³ÎØ$müNï/·gÚx}ndù êÚ³vP½•íïdŽƒo¡¹‹Ÿ.Reºœ4îk«Qâ{;ìÌ­|¾àÖ¿2“*±YÍ‘ÍËÎ\ˆ¦Š°âÖý,– ˆˆfZ(ÀÕ@Qõ–“Ò)žénã’ïiXéþg<¨ÖBäËò|Zƒ–ø1çßLÂ>²kÄzŸ­gŸMŒ¬ô‘ë>Ey@Î6ÔÞfkD dq‡Ö‡=I©`“èTAhò{&©kKÁ>ö·Å»ïp½½|s>m'Àü5­ûÉ9BêA: Ч²™Z‰{aâ㢓Ì'×,šJ×9\Oµ˜¹QG“ÂË}OggS€ýÄ n „Œ©ó;ëïõùøøÿ¶ÿ4éêèåäçâääççéÿ¬ÿ:åíïíëÿ‹çàãíõíÿ§èèçêïùøÿ6õóîüôÿÁÿ ü/9~©í¬½â¢VÛv};UW¶w*U6ö)”ð™^oýа‡ä`ù¨!áÅE]Zƒ9ðTYüØñhŽûKÎ¥¥’ééÙ%âf¾¿áõZ¢Ø â§Ú‘a«~{aÙÑqî%ŒYŸ>{ö=¸Wуžð ¶dÐ:oxp>J«k’må[RFa¡ fX ÔlÍ­¬@^í¿+TSÏ1œ® oüK2>Ä®TC[¼X´þYâΡLí£71ê%©Q¦ùÏÊRXFaQv“ñÖeÓîQ½?¤_ËOº…ºãG6óeÀÅ6U{ÑLz¡ä%õ§'¤ÂÖ»$±ïÓ ïgi2,ÌÐä[û—ë6Qvû÷¥OÜ·yBú* °U4%»ÕÄ=QAA—`âÝNÀÕ!,õ4¨%¤·5·w†dIüM{hô;þ„2Ë‘ÀÈ÷IÜ,;öß÷¨/8_Á­–1Pajnc&™k(9¶4{,*Üw‚˜}æ!HôÒéú¹ {%5“t’¤zº¥5{Ámïa@'xÇ×”×tþ w¯JaNs'{Oå "Ë&Ôk\IJ˜¥OØ äÐvw@ïÄf6—k;†¸é‹OêÞWíbW¡Z¬öµ(öèÄ&ÛÔbFÁ#+yVhSôN{È—Ú§Ž>M‚UEX$¾jBõ„?Œ)„yr Váù2æÖN±#àÙnD¾„3ªÉþÆÉuø›’ÔÛ“!ïž:Ì ü|®ræ·Ä-”Ûã76m~»:wŸƶT`W²“á~?É;9â¾dBÞoé¨ MÎä-?ûéÁúñ þªîο۴[47_̇=%C[f•±Þ\ëcßJÉ8¯9XÌŒ9Íá›k"¾¶WŽH2«Æ#ýª°QºIíÀt‡Ljà×0ü–ÓÇðôõ%ר£ ö‘qÄ(“3<»xâî{‹``áJuÚœÐÐE๭ˆ¸ßµ¥Õ^(ÌoI#H}_ð4m@µt»²³EV¤ .Ë Ûà ÔÛaXßvxt&ŸIcz'–}+Ï­ÏïžQµ0_ý*V.³Sö`ÿÞ'rŸ«~ /ÏÀ’<*ÞCZÂhK<¿g“£ªZ»ö*å+seïK ,G,ÞõuÇY÷:7ÖüsB¤ÊèáQ[ÆÛv1\±IÞï>!ãSe»CñõÕ‘0ÕÂC‡;÷ŽÍÎ"édA7ê@9J·jŒÚÇ)È™§Öò\«:ÍübWWûª rÌ|W8—‹~~KÉ÷˜RØš¥§ïX¾S*’%h"E-APÆ݈K ü|¶Ú1½R·ÕáD$KÏ>LÊ@6“öORíßÔîÿAŒ’Aš`,ä®ÒcçëçAkÓ÷ ¥ /OðD!7 1‹¹ûôšìIPe†Í*ËtõÝrkmîÒD¶tlôØ!”ðAèÇrO²Í}¦¤o˜ç¢¾1¬š pw•RUÏNM Ü>¤yu4yy’ÕéSûme —æM0__~¦ÇQ£™èQÚªÕ/ •j(çAðZï}»×#{=ÜÍÈK Áëù! qküd¯]L8(ÞÄYÛ¸ŸLд»vôû¢ i\γøîB*(ŽáŠIY°í%6!ï¼Î™±ÕR/·/8ûÊ·tD? ˹[^ko` Ïd9Ç¡UçxƒoÀ( ~÷{¤(Šx20²ü.=Ë&v…bS_ý'NÁ"••âdü§¿Ú¦ÕÀt ?ë’)9 Ö•ÀÌFÌ“”mVêX'X“¡È>wôƒ"EHQ`¯ÌÎÙêÙ„«@©ÞE>²{C—z a4”§wìR S நmºH0U‹UõÕjêxºGå@uŒ¼eÕM2Æ#C‹4ÁÊëÀ´Ð"ÿä5¤uùH*ÿþt‘–9:€9PëU½öø<‘X Âx¤ÏvÕ!PO©–ç«ØøˆB‰\·„ýéG¥…Ž ºo‡ý`§I¤FšÍ¨$ûØ%\¯üLì_^˜‰J[Œnuô°Ofz¨®5¼%uÊÚ]ƒÑÇÝÊŒâVÐ8fÙ¹§æÑ‡˜fo?Þɘ®Àm`ŽC{½Q—RX…:|/t“ËtÊ\4DÁ_cTÿð­8W>Ô¦º,âÐXÝïùØWŠ΋:„Üh •§äFúi#舧+C2¨5ÎMÚ5ïPÝNçJIäüM{ýÖ¢ûBw³°àÕs,Çí ¦ŒÌ¸mÅmqÈé…Õ èû䂉ƒ"±wÅ·Hóè U*…É?°­> ¢ŒØlÑÈŒJ©8UƒäjDH·}øá´pjìZ¸ÓßdÖ» FÏtBl–!ˆgÔáå*ù vmú.$Ÿgš,EÌ`Þƒcû&¸6­øÛ›GjfüF'¼_Ÿ¹ˆ åÐ-ªò>ó ¯¸°sœ™ñç¸K)1ÛZ+1á÷eP?aH Xºh¼2ëgÊœn3Î:u³‹u;?ßï¶—)èÒ§´m!üL°['?¡ÆeûÆg…(¦u¡šˆë‰Ã­”f¿¹ôëMö¶HõïJ  ‘i ¶/QÇHJxÂy@³ó’}ls ’…+Ú²¶ôŸÇgUÚå#Å·3žÛXKk@¤hÚ¢*l'[ü~Ëž0ÑGdÕ¿ùÔûÛD"’%¿÷Ž·˜ wð@EyÌõ&µ“L„²”°e|Xd4±zö]LD—y1‘‘ø¤ÿƵ £rM "b*í/~ÈÚ}º¤zÛFHú ¸Pœkè›$S}ãæáüÙìÐñŒv6tèõ3gIüMT©Ü&˜Sk¨âÅoôÇqëÅ«ß~ÑC² Q½¬·«yŽ™~VdÑîì¹k§!€lÿ«¹Á µŽ2ÛTç[z?…†Tƒ‘vºß ,hhOäaù¢g`+•uwRm>—7O”i”?áØ„ ßµÅSKçCë…úó½Ÿÿ2#¹EGã¤Êþzçyíýü{€Ýþނྫྷsà­“W+r\Fs@ÔhìTö¥²ñàRç£|$œ^o¼RòAàÚIJ¬#·hë@ð?æàéȡ̵õ´@äûF—ÿ%פN,üKWà™Žl#'­ýÇÆåE,ÝÉ5Mìñ0²/ãqhýîÁ:š{ŒãñŒ@‹1A]›ýÀ~Qû™AÜ<€ÈŠ<¾øKô²KGÄ@\º ̵Òuì,ÕL~LÐç7¬ªçbº¤Aƒñk@ÀäúéÔB fR œ¢JIx¡•âŒ÷§Y”5(ÃNð&;M³èƒ}Ž6†Ô”)Ú˜N-]3ý†ZNé«S”È\§éQrØÔñ™w(žû! ÏÏfJXž#B`µlÜì¨@à?®ÄP˜—_ß„²°ÙN,²Ó‹Ö+üÙÚŽbý-BQ¯HÃîM#‰å—®‚ ýœå4\¨¿§Oc?£µ¨O…A€üàhˆÃ;:¥ øã>ˆÑ gKÿçg&íÉ 7^ˆHRe:–ìMþ %¦¼ËíP‰c)SÌ|¿ F辇./ûëÔ†fʃÏâßðC)ÃàL©NK§K€¯#d%>TøÀ¥ÃÁtý”—&}°î^½·ÌXGÛÂî¯zZ6dý˜‚ ÒJ›ä}ôÚ %æêbЭù¦›Áïú,§a)P Ú!Sûaí&¶X²d‹4ªíüÙÚ~t½ÏK£¬avº#æab´=@âÇ‰Žª41\÷òaÀM=]B£ˆSéD*2WŠ3SkcþÆ0¡î˜5Îbl à"%N©L]yø<ª¼ÿe»`"l¹y_ÈŸžNWi¨˜Mð~×3ÜóZõµ8ô‡óÚm½BžöÜ<“PUÙ+wÆ$„Sœ»‘¹—Â=Æ!®ècÒ¤m¾OL˦<¯­:l”zZ& é± €–ý†³Ø§ÌXF¹;¥+_Q«2ªlu½WGuÂÆ-bëâv0÷;+Å´Ÿ5d©sLy$üÛ·ûBSYC¾ýû Œ1H?ƒFbÑê[½UÊyuJvMV£SÚJ\ÃÛ¯˜;ä 8«²Ô”?sŸ»­ˆ˜§Š"­ØBXXtGR‹ÎgÒ‰{Ÿï··wFÆÂ z,'¥×u(Î$àÿýzüšŒä]¸Š^xrÓ¼Ø|‘³'íé(¬¨Ü8“I^ÁÓïÅ%2€à?á?ßÜÁ]0ve¢x“.—KaÖ®ÜcY!ÚùD:ç|£ojdÞÆn÷¤Á*Ðr›, Á„’ GX„@®‡áݽ =tN°9"öœ $:§„έ£@9»ó3$ÄØ,èt2IQ誋·±ŽA óG«¡CŽ<>€«31öÏ×q´„a.ÑSz½ƒcÕ_÷¼±}OšQB&o·IÄ.qš¤ÊG`~ƒPtD\%§æGøc­'zˆV…À2¡5ZN”5E¡š!/ o >¯:nÆu”X¹öï࿆ ë„_DE¯µT¡]èkø‡¯ùZµº¨k®»Z¾i¿¶vIã´ÎQS]6D¢p´qA7ß' \ðb¯ÕÊëhG'1ºiaÎ+ø´+I %í[p•³®âôz§ù20¢c¢ôͰëeL~eöÛ(ó…Ù§ìøè©••c³»‡?k<'–Ó„1 sÜß)ü|¬ÛÍ,^CpGÉ€ŠÝÖ:ýØR]ú’¼úU&!‹ËÆS÷•§¢¦Z)ë~–‚Q„Ž{=”ÈÔIî‰2$þ¿ŒßáB•C¨fºÀ0«ïíø4Y*é…²·H¥Oî³01ÊaÀ5^ãÌÃqön(òßùìÇi­‰Øï¼:³Ò¨0 âê™3w‹è"îYÄ5:wE­à[[Ðe¤ýçÖû&ßS¦öÄ—KËÖéoxDÝqÜ}±0ÖMêN /ëàܹ»Æ ï¦?v ³èó±Ò‰b•T mƒr…šh´s“ÓÖ©Ú0‚õÜõ~”.DÏÉ–9ÕÍîíÚ¯.ó@»Ç}Úíé´Æ/C|“ã­MYY–À“ÂõC%L×W5–m†÷]žÆZ(«’üI霗Ñ0¶ž× ÷·~½¡@¾Êmã²-ÅE½ˆùAÓ‚¼uâBÖz(Žy¢•ƒð7 õ©Š¯0yJØ‘T‹«í8k¶£1#˜^ßn„ž¦CËS­GPõ÷‹©ËutÜxé¢àºµv.ó³²$ÓÍHÅê-€÷g¹ðê·bÌ>Õr²ÂxÄ·šǤ/Ý©–AvAhVjv¸ÄÜþv.|'¯\&ÉFÓ19ì7iàxQ(x(qQdÅL6Έœš¯òkþY)ìŽÕƒütµ÷Ôlá´ÉÛÕ˜ÞBî²Po`üÆ„ýÍœZ:#!‹BhÅ—ÿ  n:üM¿’Ë=BÚµ¼H;F³˜ƒñžTªÐ»/E?–ÔfïË Lå¸#™U› ’P•?ªI§á’†EÆ#K¯€úëJÈot\óÛûcƒ×IJu‡”¿‘¥Dšj#׋Àyƒž…c‚íiåå’c{{<ÚŸbé]Q«¢ЕL­S²Rk¼qB‡ Q’ræ:.kõ¤hòºelµ‡ì >ØâþK“ /Y?IÍG¬‰Ûu\¦ëBeÚçã Æ­Fò\²¼.l4˜ÒI2’’‹í"‚#Ô’üM€­TwœùÄÓ§G³Ê¤€óøfùX^C˜º"8¦7·vi‹ª¸;“Íÿ/^è@-“ ìhË–’fÒn0{ÙWÓx¹ï 14Á¸*4 Ñü•ICþþÅ€‚•~^øÙ~®¨Æ¢' •HYÏ‚¯E-½Ó©iJ‘JIçÔöÙOáÓswüz5ô=±¥z\]´ÿ®.9¤~Ú9ã!æÒ| ÉOkv룂D ¥[wXS3bb>G7ÊLkÁá’lÁXrø\H‹—Ÿ¾‘Ù}K£»Ö=§ÛH(ì?/°/gy‰@r@§Xñª¿«vzüL©l?5Â|T\Á‚Ä6ZVÇþèÖø*ôÐØpm¶™Ù_>ï&ö¨}9¦3ÚxÔÈ‘„Ié&š;å\¿æYdÝå°­þ¹ÝàŒKz^Rä”ûñøŽPZŸþe=»LØËÆ¡„ŽQ!mãÞü4@r¯êšü‚±ýϬáeYþ£¥Jû­ô“§–՜ՑnQ/HÒòœ|±tó¿£»…„§»5JQkBºt©—;= 6z‰ì罩8ÍœVÜà`ßLÓéw6Þl-ŠXÓ®‰–}—Í×.¥À=ƒ]§G„¢Šh=·)âÇáZ(sÞüLª(ÿ]z) i¨Óre»>JwÈ¡Àà7…Ø(u€g¾JæWø¹IÇŽ“÷í8hÍ®BÙe€E‹:Z•5ÒÛ v¼…Èp«ŸHMìPgDððIY!© u¿ç7<þoð]L{ô=½b×”÷ö:Ÿë·wzäNz¼t÷·‰)í/ñ÷¬‰á»ÒC:˹‹õ`ò—hnÛê1Óìú_ùac8f»ÔS]ãäšÙìÿòû'$¸ -¿Ëò=âÔ^TK¨âá+° Ãz"×óŨ"ý!bi”Q£éóF ‘Ńü|­2õß6±' àœz¾øÑX! „ VÕ“™ñ²mäˆK‹„/~Òø·s\9qÑÉ~ëxL(µEŠ—Æ¢v½¦É¼î(Φî‹S;V\{@Ô†\Ÿ)—Ùóž¢$’Ã*Q^x—øŸÜÜäâÖº>>-Ÿ„K[€œL»ÇÖÿ%+Å™ ›òQN“‰lIFÎ*þÕ>àwh1¿W ÑÃ#ÙštX‘61ZîÎ%+w;ÓÿíñæNˆj’Æ©è*(î-*ÛJV0eâ²bv’ÖŒ»«Ì¥„[渽¹ÄE•ÚWï«{6o[Íѹ¥Rz†˜ U™¾z†¨è‹\'ùãWpšcRpRæË3›ŒÙã=9¥À±×‘øgr•ûë¬*õ±ÚccdYØÛÉÅE—¢ÐŠòíM¹YÈ»x[lÿB›ë3þ”q6ª=~¢*[&$U§ …×`·‚ªá2¢òÁ©´¤bÉD™hVpÚ,~†huí6–E^+‰½“™‹•>SEÉûýüXmôj&w#¥ ªõ¿H«ÏÕEùÁG £Â홳Rm û:œŽŽ;¢lz ò’!¦Órî¥ ‰\ÜÙñ*`ÄIîS³[N"XÊUk¥;Ñe8¿ÉÏ—­˜Ex#Î5áçÛtáNP¼ì^ÅQeETiÉ‚2ÄãßÏg$àzÁ•üT¶_«ZËã;*†Õþß6­Ðµò·W|»ê~íO×ÇxýrΡJ_o“§­­Å«®j§úþZðBFðV;»¥½ÐBkí%qkA ‚Ʊ$½X />ÁŒû¨üMXΊaÙzT-ï4Ä»ñÊY#šL-øÄ<ÂÊ•?3ñe à§7{»ÃÝù¡Sa®µÃ„ôDvãr²:‹ }mDÛ U ¨››ÿÌå¸p2=’`¥Ã¥íÉnh»©ÂÑK£îÑÀ khñS§1ßaN@m^jì1r…Ti…Ú¥4÷:ćô¯PΦºðéùŒvNˆàwdxÛ?ˆ”Šï žä¸ÏÂyMï°gøçSûj5¼¿®„#@èc»)‰+4©rÄç¾%KS!÷#ÙÏÃèˆù;üX¥Ïj­ñlâçÑnæµ?>_6žnš¦Hª)ý?©’úK­§JmÓAÆù¦:#´z¦äÁ0“ RBµ(}d­è‘R\kÓÇnÂk|MNÿG4Þ’ NI’b7˜™×Q¿rC'¿ b n?˜Èéï»FEƒ»f«.¹JVý¬$ÉÃĺ¾‡E¢`©þô&‹‡šM%«h¸¶d…¦ú…úy±_Bôðáb¹ ¹pûA!°+Vób¨XQPîUGÃLR~jù} ct¡´v¹–õ úq€÷€xpñµÚÇúnüL²vQœ> ^o'Ö³`GŠÊîÝ,"–®ä4<à)n^HÂëg˜½Ïaå®kïx­µ š±WÝŠ È?:Ž2òLÚ;UHÅ^ºîXX¿Ii<*–·µ 2åžÍ5iƒ´¥Ï0O;…è;y}O‚¿¼cšf˜m/)ØEö:«ðëÄ™é™Eü%"o¥$r³ð©Y)åï|‰æJ@Æöų‘Ž=Í:×Ä[ Ùá ïÍÝä$š*_Q¯Ä“:G—.E8A˜ÞÝSÍÎ*ùX¹‘î °®:Éþ†%ÿ°ìß]däÑóX{lZ?"ÍÒüIoÒYXe+ÀñU6ܦÁ%[á•OOSôÌÐD*Þa¢WTI ¿qßU<}Ì”+¼ÄÄwgᑃ¢)ÙÙÊî&V€ ã­µzG…–T—Õ³°WwMwÉu • †-ÜÝ} *ª«™ƒã7Ìb>Ô3Ìv\ê#Ù/Z® }C¹Ç™…=@`õ8Ô9U«Dð;L?qý{uí;éèð²ÓPu¦ÖHRMîÝÆ?H¯¬f‘Ô 54N›Q3ºŽsJ72´öéññƒ‚Gªpì*ãZu¿F!kk 47MÛù;VE~WKe7bÑs‡\ÈuBX_Ð~ü(Ujë0«ÞIpæ6ã£9â§ÅÉ;³N7ï|g¤D§3Èõý{áa”ƒ ¹5U!0Õ¦¬>4špÞ.RBŠU?MËXUÕfãôTbɨ%o=Ì=YAÁ3 Gƒ}"9ê dÔòîjc/Àaë¨%ç®°ÎWf÷úôpà¥ôš7¶£;6iÍŠ’Ó`‘X~ñO¥ÐÕKß©‹Qêô¯ìÇvå]òÃæà‘<Ï à®{=ªCÉJ¿€¶“—8_¢ÙD±ÔˆC1÷jbÙ\Er»vÚd C§ÄÛ'Éêºü}aòÓ3µ£UJèëC‹–ÎYdìmŽvr7"É£Ÿ-Y©æÞ¿<[Aó•½_MõD 2 ¢R™âY¡ªâÚ”¿Ã^À­ì°Âå•}NÉ Œ°åžÄ?6œ5Òn—¥3ʆšóÅà^ÌQ¾¯dXfîà¦@ƒ .ºýíåÙxÁs-OBW£!‹Ñ»ŽÒúœZ˜³hÀ(bÒK÷Lì.u|ñÈÂ0"[ÌŪOâ~I&AŒï:Í"í¼éKVh晫dnT4—¤¸I,ë sV ”ÍåØ~˜@?¹¥Ó«U&Ëó›öDP­rG ˜]·áQ²T—,ïv˜‡¹&’1&[âæ¯{Ì*àæå³ÎçÏÙ™“Kv}:بٽil'å{úææ'cr«â¨ dj*®¨Í! þ6=dG›Üÿ¢¡ï% §ib#[•QÈ0„6ÜÍP-:ÇÎD iHÞñ-"Ça~‘noÉý1ë“Î2{°´0ò­Iz¢\5¬¦£Cò’JYIJ–dƒ«Ù l61·…ûÉšÓ/šebüUÜ/¹:#‚ü0ààyÁÂQ€‰æPJb›àN¨CÏËÉ?u¨«–™Ñp ˜cr©]no¥´N4Cǵó %tÃPâÖœ[ˬ÷‚UY ‚¼^ÒAiÄh¯1[§¬K$^ó›$E}=V`ˆHJ?ûëЭq¨ã M¸ÇÚ›CÐhI¹i›Þ½ä'úR¾˜úm—)lû=B^ T° ôv”ÆR@¸¬…†vÏ“¨|ðÀ+ ¬QÖÍsøø¦†dn¿è·Üׇ%)nÅy0'Îâ‚(¶pÊ=%× §”7O](s šBœwüÙG©î‚ÃεiïÁgÄ÷‚5ÅÝ™]RÀ?ßæµåèB¤Þ5÷ï=>™‘Br¢5ãƒWz¶ À¡"9¨˜¾2ê©ú1å%æÈB;,Á a6„ YÉ,ÏÌy‹›õ8ù0,q»ODË+Œƒ§«!û‹ò|&‰‹!¡\Ü<¥×€ú}–9¾]õ2àÇpˆÃÛÍ%Dxð#nF7*¾JÍcÄÃ} á›0_­¼УÉPšÞ1Qyª³…ÜR×é—æT“ß7¥2¤x.‡ßúÛà9ÅYâ-%z#ü1Ó•_ÇåZi‚pRƒ¶ ))6ç5Ê&G0 K YùÄeý›É–,¢^zçŸ>û^Ù4!I:¯!Z¡=ߣM¶ ¯Š7Aôp¥M˜à`šñ[¾ûZ`Š: PDä{½$ñV“à ~ß’#Ÿ#–綈Vü›@–ÁïXÞÝX[óB™¹yBCÎ[‚C:îâÂ(îÞæ5½ª¡j¼ó Äy©¹‘±\ĵñÞˆ€ÓUåѪ¢9²ÕrâL¤¨•ž‰ÆæÌv>ïWQBm[h€ÔõRïÚõED!¦ÛØRTzïüÆ'“dÔÏp’‼××(&á½5¨€Ñr&=ˆ¤¶OC5ãg¸ÙÞX5Z§;/¦gõh€™‚醶±³F–†¿ŒB±µÛ3Í a瀥O¥LâZ¢lbõÅ&K#÷ˆÎþmo|Ì<#ŸÆÓcg ¸„jÐþrä°Bäà*È7¸?Ò5àC:ÙþÂ+°¯Ñ.ä³ÛÜXµó«ƒ Y^­;äøZ .Žr–²b†ÉÑç€tÔÕå»( þÓ×i~×ïŒ7¶ÏðH±JäÀ·ÊÙÊ}¦æòJ£ñ~JMñ¶Éü1¨õTUFój¨;´õKq\Biž[ÿºr„ž“,šÙŽ˜¼4žaý…çä ç„fÒc†Ü‹sûtªÉ:ă¯»73aM‹V¡Ì¥Í`Ÿö3š4>ÝŽíû`ŒG.ròõžJƒ ât÷í|\ˆ‰ÛBy™±Ï'‘-â J²­Óq~îU ÞYϸ¥"¦gõÐäÑŠojQåÈ?notV¬ÃÏ®ŸÈü *kpÙoB\ö'ÍÙÿÍŒ[†'ÖÀarîð©WégD‚ºX*£Ì~ÕÛüûœšŽ¸ý·E£D[Ï8äðÙfüÛ|b²XË[Gó×¶ãZ³%Úé͉¦3~E`îâTÂì|lpŸ}B¯ õΤó€f¶q°"¥äËNoá5’7Ív„1²± & ,˜üë0^¯³µrjߎ“¢r“Šû$í/‘xW©ppò°}T5;(…*;’Õzó;Ubõ^¤ ëKÕ œã›1‚sñqìÈN6CXÒ9ÃàÔìW®¼§Ò71ŠLR&× KTØäƒþ-£ºN]ˆ—Ï@ïo[þ1ÂòÚ×wµƒ;æ›OêcMÊ‹,Ñc·®Ø«GI{$i£á}– ]۾Ι`¬ô^ÓÍøÛ#µüÛ½ex‰ê¹w°ê/š¬\vÍ^o|Àõ®±ª?&6:Û~q†]Ñ”¿²º«F»º¯bÊ„/}‘«Ë)J5·#ñb¯a÷úVxi$Gþ‹HÎÜH¸¸Yúo!m†XÈŠEXe³‹ƒt`Óo”ü‡‡üÙË$ ã–ç+ Iø4ΜΦÖÈ@:Q;ÇhmTÂ}#Ž)/I,k‘xh3#ÙàUo0ýuÞþÙÀ¨g}܃TÑNpòIÝërp0Q$>aÿg‡} óBEùLjl|ì Æ¸—‘Dl*åPõõÖ?}¼ØQMµü|·/5ôùå¾².„dEÁu¤ ¦ÖG&^O–‚ù¶ywʹx ~­þpÆk}¢¨\ ã£^<¬y•t$CÍñÏp…¤8Õáy]3©4ÙÏ5³dMÚ±´ZY]^Êëm+aLÓ5Û•1h$Cœ„A°çkøâe>Pìä¾ë&œa ¥4båG6ž’,^äª~)CÈÐ`‘ØyÇžt›Õ¸÷‡#ñž:´Ú ÙQ*c,ÿ$Ù»-dJWÂ^óå$°Û#†ua óݱ‘âPÇνãÏ·;›oøòn3Û#S:3#ør‰B o³´¦@}ŵwâ;ªØ· ‡{~®1/Û'o3R1Sè'+‡¡×˜ŠÍŸm5U\•g‚Œ±á 2ÿŸ$] ¤'áŽIŽ•ÀbfüL½áÃhóȃ[ÁC㉻݃y°?]eýìœKMƒ¸m3Œ ,ÀÆÀ?èñT4£õÕ€8>ü< FÜ#7Ö3 TÔPGTEòŸlì÷ÑRjæ2zmN؃«×rÇ=wµÝ“[@HHîJž.9¼„ ®y (! 'jÃYùÇ]¨FõTWV6ÿª-tì"*qFÐêE¹è‚ñ`(¯l½ªuƒã4½ë‡É Ha`#6EŸŠ´Bk6ÄLj¿~æ3e¬|»H#d¡èÊŸRU‰/7Œ˜ó¶§`h>¢/Ëøu—v(½]®wYÍó5füL¨ñ'[é#•ô8;k2ßùbKþ=ëö¸á”¾e/Δéíæö)«wçü®§‰ÜæCy˜SiEŸo¦nzg´¶ß¹„iRظ9,ÞçÞ-8w@àUíϕγ>rWÉšä:•ó}Ør îšÙgÅzg¼Þà×*ÙlUEŽðŠ/¼õ¶dTY…ä4•/ŠÜ*R]KìwÇ5¨ŹéáÃógsR‡¿>zÈÛàè“äÐ8²±bŠ T¹©¨Më‰5){j=}EhÚŸÅÊž&s°}¾°Ó|ϱ™ÔGÕ­4…Ôe …Šnº¥DÒvêü6O•avUØA#&0f!F]b_bƒYÇ0–똊.6ó¢ÕJþÿp¡Á™¸DÑö®ëMuüboúäÂÊ¥t(<þtŒs|«’5%ûªÈj@PS‡Q‰ñÓ™ÏrdðŸ¢óÈå„ü¦¤jA–}}UvØ èÙ–L6Ö‚ŠYøÐ;bÞ·ûÒ57™Ø¹oVîºp´’PbÎÐøÈcRß¾ ‘Ä_hY„îƒYþƒ.EF’'‹«'ä~N77ùü>õë’>‰ñ(œ­¥»Î{ýÈŸ¦”Zà®u,P\`¤õeñê †'¾ÙÇÀáf'diºHÊÌ×ï¯Cé›éGŠÎÜóK3F¥P(ö•(bi×–sœûä-Ǹ4Œ4 ‹H‹DD™õÉžmü6g+|G»]‹HÌMò?O!Ê©29ŒàÉ\pª†qf¶Œ3ðÄV%[ý” ¹¦x§CˆN+-ÁJïsûÑçcŒœ¢ë(”é:ª"…‹Û~\­áÐMè„gÑT²ü¤æºÍ¦òŽ轂ÍÑåíu–2ÛúÀþ‘èj?=Âc'¬Ÿ|„ªÿC²CýÏÈ\ÇXâ"QK:}HETÀÿ@ÙcµüÀ(׎Ÿ¸ÚÓsùM\—Ãè&ÃËšQta¾ëè?rOiSÎa±*Ù£7iSJ×@ÑÈi ÎYoœ÷FaçúY´üÊbl€ˆ¼~G¯WœJŠ•qûrº(‚ä'“«‹\Ê <1cX ¼«ò06lõvÊ}´ª¨B<úш^c¯2ÊkšŒ{žŸX‚6—EW¥)R@äùÞÉ^(F -^@Ø(”oå-±Ç–mTïuQT#f‚û©iHu×Û;m*+HŽöÝÙ'¼/„ˆ¥Œ~<‘u+XF¤å¤¾Žµ›­Ss/>Ž¥läú°ÌùÐzôµÖñŽ#ÙC»-$‰ÀRóÔs¬÷xï«wŸI#¾ž kÓ˜;ñvýüðñÜH ãò¦É•¸å5+;šýæÙ©†‹à8ä¨P ¡·ÂÒó\•QÛ3ñðÙ¶¬˜|{—k€‚0 ‹¯¨€Á)}ë¡oõíÈéñhX1«'µ);uo÷pVðæzÈ<-ïÌóÁ’rËimðãõ5íW¤ì§Öô¢»¿‡Ì (Nˆ—µÈöKmߪë™Xl‚§/áGç êgÝùæóÉjƒùŠ>šLÙTi¾¹0ì ÑÈLGìüh"¬TõUõjETþ©*Æ2¤sò:°DÃN¨tŠÆ4 ¿P‰ìn™1 ñuüIùûd‚qíÈQ%Absº+'á>àf¶†Iq[¦á ½ô8Ï7r/¢g^Ι48ŸM*o½m¶R•úé–&;2¬ÙSc‡ë +hKNè`Š·´;hlí§WzÒ¯UC)$<íMÏ <m%F±â˜AO·ØsC0‹ï$nÝ[2 ÷ùœˆLH Ö>59Zî ­J“\µ¹Í¤“ p“ÜË0k-ÿ[¼«D»z)Îå‘0S|fÂlÊ‚öÿ…py7òá—;ë?4@%ÊŸ'¸¿]9#Ä‹žŸSÞNœb5È—¹GŽw\¥wvʪÔkÿ›Îj nq¹ñ×ás:I-Æ@—s.ëcÑ%1±yë·5KûÐ$ÞS æ šùæOggSÊýÄ n p,Nì;éóéðôÿÉçÞÖÖÖÖÿÄÿÜÖÝèæîêéâ÷òóÿ±ÿCÙáÕÒâÿÿ/ØÙáæãáùÜããøÿÿüöüX·enÿ­^{™ Üsü…‰´0£²ul¼‚“¯¯!I×ÝÛz^‹‰‚Ó4!mS&Dy5R" ÖÒ‹×$š¹â÷£k½VrÄ2+g¡ŠÍ#;`>{ 'Py§,ø5µáŒA¾ìïœ*î%‹µbE LšyÓ¿÷oæ²¼îJþôz»‘,¹4`½Ü÷Ôèä[¤°;V}Ié„vŠ}ñTZ‘­ºJƒ¢¼JöøÖAnòëŒW˜ŽÙÂMNÚ{r{ƒÃ;½cÓíAþÅU ÙDû€B ʇGgP w`¥ÀüN<Õe#“1ê³ȯo…´!µª8<µ†¸Àß6aæÐ&Åãšú™º nrntâÎÃ{"áÁq|b)Ä]¢"Â8§ÙOûÎÅ €.âþ›…EÏ_ˆä íêÃ'Ó¡í·Ëµ‘Ã# q¾Š nl`xöôßÞÌ&ó»}û^àŸãâÂYÇ´ ãÅ9p353ФÓïtú·ç­¾õ^]Ŭ¤KêßyÿxT©Ø:ÃÞ«M:~ÝÔ@Ìu¶J–­ˆ"­ª$Fw°°·§¥Y¶íÛÍQ<ȶ:‹é‰ Ûûm®ABð1 ÆÇ8cü6N¶HfRN£àŸ5Ã'¾ŒµY_Ö2  _€ÉjQO[¦™™çROÌAæ$A/Ù¡@¾8Å>4}ÁË­AÐÇ7QA‚äí¤Úxκ —•Pü±á¹>OðeG©Ãû~úÓþÊ`ì™<žÞT¦O¬ˆ½¸œÉwŠ;ëñ\ü!Šç pŽ‹ú£ÿjEM›Q„ß,($÷ᆀh–#¥X`Æ»þUY ñ?ñ÷á8‰0 ¥-Ç›$ÈZM”}c­ŸõKÙ¶áK¡I|“|=Ø#Î#þf(õKéæMŒdâòËíüL¸Ñ=±)“­2äLÓLqÒÐÞ×"$Œ*…V—kþ¿ñZSÐÃoËM' Ê ”q_šÏ›Ê OV¯ÆÏ_qñN."–üÀUà±îÊÔ×ÒÙEŽÑë_m0Ð@ß¿1Æ.•ƒ¿äxݵ¬ƒ–Íð¾oè9Ñ|ÐïÜ0èð¢ãÍ-: W $-ï1–E#‹n%nVhîºó¹šè˜)9™„Ô=g¤Ù¼WEåúhòÖÈ O(Ùz,⤨$ðµÚ颽2ܘKï&`@mÓàÕŽ¸bDÒíÔÛ~Ð3ãtƒoøéØœx±c/@ØÔü1‹–ù‰Žhˆû ,˹m&̪¥‹¥[ªvEÏ9ƒ"íŠ?}ÐðŠ…”ÈãVptµ«ã!)ˆ«œ[‹^î:¦ý:òçŸìÏ0ÓlÄÎMZÅŸc!³Šéeû+×wè?bNÌF²´Ähù^>÷œ(X0)fÞ£´7b%%1#¤Á(žuæj.f‹f"ŒoKDªž¬l(޶}`1ã É‘u*u/ªì Ô)9´»›a5_'æç©¢++„~<ßöå³Ö:’=pÅ Þ'2¾åwnf(xVœL³"Zi ôõ5ȃÖ0˜h³Cžs˜ø§äÃi«Wp¯²a´ŠL¼è¦›óâ·,Ÿª‰‚¶\‘Cã•`ÖwçJéÆ&Í5gÕ‹n¶’°âÞ(sðÆ~Øm„{‡¹íÌ®‡™ê€†l} †Ë¸ääXw©ú4ÿ¨MßϦC«õ°vƒ¦++…öffiÝ$8$ß–¥”˜ü0öü"þÿ¡f„;˜Ü8Œ¸ßû‡‹×ƒJïÎ4ürÙØ¼Ï[c›—þįvËP ¨KDcB5@7ƒÆ(Î_\­5²‹s¬Ã™`âr—dfüf_˜#GmX«$}—S¢¯|Eô@ì%xùÿú¥ÝX”5í5;úÌÙA®VÖ4ðÌ9ýè(çêÝzEd1ø^‹ÊŒzæÇéS$³•i’Zlׇœ™UüMWÃSczPr„u_zË ÷ýEOœ*†qüsjÇÕ~(æv9PŽÛcJ(³çRÐëtßhKý¼öä+~cΓc›cxF PDùPøJûƒ¡ñÎïç3Ù–4´”Ò¤ÐÙ’Ù  åÀ _&§?å¬$Lº¶Ö> XwO`=\ÿ<-‹_{œDCaiéó#gÖ/û#(T]÷ŠkUlƒ=†À®X?Å»lwП?ÿÎ+§{úMÔËÉÓôà̘E?kè†?L8Ð}Œ…MO­\½v¸ld÷9Ô}|BQß¡¨•Ô0?¿f¡§¯²÷ÖTW?‡„ƒëõ‹çKdÁ¤³sšm@DíJ'ìÚl¦Áy¨¯Skygâãm_®— À36vœ. Ç hWП<×IéYq'§íÛÌ üL® ËFnzGÏi >ö·m<Ž$T:š„пbwµÐò¥•R¤›9åŒñ–hÊVˆÁSNý¬ _ß­TÀ[ÿ86Lí5ŽS—BafïÓù‡\“X¹êÇËIf‰¸¼‡’ä,ƒêkBÃD|A-ºº5/Ö™ú…k7•+£RîªO;˜Ùx5{>ZÕj=öõ.‘BÜžÒn€‘É]¥°*ñeÖ-ØR­úcŽŸé\)}nl[…›ü@o ÓXºë1:¥)y§ì’‘½\üIö5¶8ò0jôe¤[Èsȶ…„,2¢vË—3åN?†ƒ¯ñ1å`…~Ìš*± ˆkkèèú¯¸Jt¾ÄóIxkÂ6‡9ÙÎá à`ryôxˆ‰«ú…BÞ7cœj…ÌÆÜßé†P‹R†O%áß§nh­iö·ögÕž<-[y(ç>ew6Ïa8Š·áúÒ  ¯îU‚Wš5q]õB&cÚ'fÕÔ~B ï -+y/¼2OÞň æ§´2˜ðà˘>Pñâ§ÃFÍø•XyÒ'Ú´aîÇÝoºüÊpøs˜Ç­¨ñ w Bâ=+(fz”2¡8Ÿà<ë(ueÿEbùyæÎ Ýé 7/?Íš>°M˱Dü¦J”÷îdðƒ”ê:µðNU{M$Ø euñð®£:’\ž ÛtÊ‹‘ñéæ$rz¹åbñc6©ùR¿Fµ68‰Ö*'úÑ£å£r·eoµàäçap~Æ4ýåîHŽæŸš]8k'εÐ=ÏË®~?È•M^Sgà,\alÄZ2º6±kÜ+üÛ´¸ÜÉQÎ#m%Š,¯3Q½ ¯/J£†!µöš Š.¼ù žóШl2_^ñ™ÍŠÐM| ] ´ °ˆËÕ¢Cf1 ö>BlÎ*©Qæ/!‚pâ3~òmí2AoüÞqòýþ)}ɯ| Û¿œë½†÷á|ŒJîkfÇØ’àBðs×,O×*‡{ò%#M[ËM¤0ƒcŸ0íN.†¢‡pnô»6¨c}óiRQ›Ök®_,úÛ––{ÆIˆçsÑÖÕé*Ÿ<ÅãH¡'lÂ+–&Çœ·¯(ŸµòMöòvYoöT…*OaèªIpm´ ¤K,ò,J…ü|­tvO „Š³Ú à-˵KÖ>Î/Á£»ž÷køèiíó ê¥ëp†®¢§þV*0\sxlM¼Iy:äõ¢;tâÆK^·fî^<øl/ Ðøf]{¬¼ ÇÏ7¢0€€N0R(ÕÁvWX›l~ýŠ.38kû›;S{äÆˆšpq¢w¡ÑkˆÒ~¶\¿)W¡.Ë`Ê0ðê#/‚wu£AÓ°+¨gü$é¹?rÄî,jB}GÊòT93˜Ê Ä©Oa9W¾Õ¾ÀG‹p3¿xì"AãBS#vKuü5M·)õ”ÃÚ“4ùì§3ë*·zD¸ÀºÑG,Á˜seúéDIª„Þò¸~€&7×…åšb¤¿=Ô5d\8Ï|aFo™^šN‰U‰¼çÏRSèe‚cìÓ‚A“Š—LýÞ?½OÙÞ(m§ù9=ÖãÿÇEë9ŒÚæl÷~»PŸIUí ƒQ¸»LßÑõÙªÿm<šØJôt/UD£fpÐú•ÊÞs%Gh0QÑð§Æ§Z_+ ÷rW¦fz™¡³ÄäË4*:PkE±£áš88h|Ÿ0Þ3U·Âüñ óoÑCÂ>‹×Àï+· û\cScJ%§!y–¾‹Â¦®œZıAÓtÓá^WY~•ö9G£c!éëÌ„Hž !õª‰by÷¼C6ÂÁ¿õµ)àÃÇS\Sd¢˜_‡Þ‘§l‘¶ÏøL¥%!•3ÀŒŽ×“š]I Ù(øPÈ ÿÝñ ~ù ‰œ÷d°‘Ì×ðÛÙî ~Ø€GGPZZé㣊Ñj2†ÝŽ>üm2òVÓ×çxN:Ê5E&†„—-Ìx£·r‰¾×{tµÌÜJÑ £]´‘üXuˆì94 —¯S¯"^ à=’ËWœM2QÍ4?†ŽNü€]ŒÛ?\ƒ[˜£¶Ù{½$¬VÏÖ!H»GÆH´ ‹aE„½ý{ô®=§…¯ø¢C=Ëg’ª@ª¢:Ÿ+(âG›_f´' ¹­ŒžèCεÿ\$p5Bp®ŸÄçÓýG@ðxÉæ‹V§ØñN—ÈüŠÚ)$–ÖXú™à<³W÷X,½¼Ê1–…RX‡ãõÈõG³~›LÕ@ ó# äâÞ<(q‚,Ž»{_·´KféüIêõâ›åýæAË'*ßPó—á%Å¿Òky]&ér¦èkÃÒ}?Àzwtz3ØœA^— ­U¨&…9d«sya(1C‹¶‘ e&b{zémë<ßÝÀNqq]¤ëhsN;w¹ìzóÊúœÅ^rB6%ŠÕx\i9”·+ϨwÍYœ,D–‹D|ngã—€+/`õƒ:l!‚ª~ºUäÜïHÅ aÕh]ÿá¦bN¹×ýY€–+—R½éÅéS¾>be5ä5'À¢~7í5›øÈ&üýá!kosüL­À÷AѢċ$¤´Ë#¼{ª‡êŽÜ5”a»Î§=bü.šWòÿÐ3m³’5¤?¾=¯EJA|œ¦uÚnÊóáF63¢ž¨vÐ÷ýŽsÀ›2"p®VEÚŽ±wÈ”¨ùLna“!5üN‘{ùUò¯ÃýEqèFRìf"‰&_ÝB“T¸»:~ù„¿PÞP¥ÒóÛ5ã‹ø{õHð–çD\þ7ÃÀÒ)0*È&é‡g½e!úx*/ÂU÷ØÑȈÀ*¿ mAbbÛöb,®~WÉ„QømG¶FÜŠ!c¿–â7vüLªK\Ö2 ™ówöÇËþ8m¹Åˆ€ùU*dÉð†§z 28¨÷ÅBw8/ä^Z—:¯òÙ†É~Ò‰ÄûæÓ7¼H<VC–]È‚Œ?!tŒrœXü¾KYgÊ18p@&µ„=~ÆÃÓÂ]šëQXÉXF0z¸êÂâÑÇÞNž –ÏýÝ+s™¹Ô„7}äÒÅДˆ/Lé(ËÁÕh…ý~O¬ZÛª¢(&RØ~™`À¾Z1ÞqV·ß"½À€c•xÞ·s.άS?À †ªŸ§/‰Ñú0!×MùÝÂô"{™¿×Y—"5›Æ{A%™üi‚hÚËLÚwU™JvmÒd¦B'wS RÉ|® iñR8çc]5OE¼…O'á[OBW´EZ$éz€ˆ‘Þ h³6…+‰†ØqH›H(‡An4Ú»Lý²Ü Í_¶ô­‘Ðâk5~?"17#HƒÜ•øówmAîÂ-êÛ7ò%Ý5ÆYÔ`Œlz†0W¶a!.)àù5áòú!ºEÂÐGá\öº'RÖ"áVÔ².ÍÍtHH‰ÅGdQ¦òîÓëe¥†½Ôàš²ÔÇí µ¾îÈ3Þ1´í´/Þdg¢±¼,üWÞôñ*æ ¯tâ4³Žü'&|:ËžÈQêÖ¯XÏ»¬‹‰¨¸ñ]° µ›‰šÄšôÿLÄŒDˆŠñ­Ÿ<íϤ`ñ áEo #ÛôI s4R›W†\èYzjò5úÝn Å áC¦RWÛÉÌ?;û×_c~ºà§ >Ç¢ááo¾ÙR¥ŒÈ0¯ ôß‹˜Ð1güå©YòQ3†¥¨Õ"ó3‘­-†±æ‘÷êÅTb³þZ¹ —¼\‹ØÒÉÀƒSx7ÊËû®¸;xŠž?Ê—Öb":·BiZµº@+Ž©]-7™ʾ`Ø¥â섦o<^z,«•`¦·R´u¼zš¤} ™~5~{þs•‡¬"-éÕx¿[cxö² K-v1u±0ïXñLøðÉaÑæÀq] Ò Å—·¶ïîIÝÃ@@£'"“·ô†€®qJö(×£2°èºS»åƒ+¸Øà0L6©ýÁ¹ÙO¿ƒ&Íy¿Ë&óÚ9šj2PÞ§jš$²g²¯<˽€ü6_OЭJ,ùAØšiú/cèç'ÁÖ¨i–¡Èµ·3Q(Nwí4ºU¤]’˜ßyí”› =ŸÌj—j2ïRÌùÍFýF’jè/cæ·Î‚Âó2j1¾•Z³gjêÉXKVü`ŸÆø¹Á¦´„-–ôõ{Yia)ÉXž`á®Æ‹Ä‘|jÜ.3%Gy…î)„¨I¤Ç›YQDõn¬ÑFdrû¸ŠËŒŠ4?zˆšö:•⃺ôþŸU9nЃ}—¦-2ï—ÇLˆyY©†±Ù1ŒL—M„ÿ$¡˜áàãìLφ>ß‘¹ 4„‡óö Wùj—ü± ÿ’ G!8Ïi™€í4¾Ì;¤aïiûô”NQâxºø/k¡GóƒL+®qraKnCW0€Ê©Š7ocœYUW@¬ý¯€”<÷í "áKƒ(ÐU‹¾öš·\!þƒ/ÈßÂZØ\Q÷•w(GÑq:W$ÑG`®yÉs|g ¿Ï÷į½F7mJ¶HÁ.Ä65$¼ ì ÜüøÓ¯ŽS¾ÎÛBIw"#¿Ø†‘LqÂRX50ÕD§u× ö˜<ضä­`»Uô[ËUð 3 ²{Ëž¤+Jž°Â¹ì<+´L\Ï0Øoá4‚³"lü±t]_`áTõíÓùïù=?ÜüãÛB‘šbK©š1ª­57|®)/Ó^ yâªG [QÌš ]eG#=ÃÕÊ–wÏ1èéY//7úDߦš,tüÄá#:¥êO‰KõsÔ(]4ö2þ yÀƒ>ÃdûðtJžÓÀóÒWó¹ÒKë…9÷txkG óZºV’•–ˉóÉh)cÂf,ò rU?U;‡Æ Z,©eü‚RÝ0”ñòhÁb}•16Ù¯_7>ic°æ’q+8QäèºAöÛ1Û¹* ÷õ›üÈqÌÓS?s<ËÆÛ@‘Ñ÷¤fÎóŠÐ2nüµ ;²v°;”–ëÔ.ïÜ¥ Èíô!Ûß †øx,ÿ¯º#Yœòϳê=ƒ73ð]ŽXJT*å¼´«\u¸Wâ¥\(ùƾ-š¼,Ý7³‹ñ ; ›ÜW-y90ºÊ–V2gyu‘žº£B8IkW=˲n„Xµš¸¶ZÒ+&Þ+cª™òüÃ$´É©z>ßãOUšO«V›’Ô¡ ¶yr`Äï‡c^*.íÌßUdN\Ú…ÎMþæ“ß<>êN#°Tn>£]¤«L–ïç°¤½Ê‰Rç£ …5*PB§˜‡Iâü1Q 9\¬œ»‡g·Î“aXsåÆ!‹"JN/\5r³°®IJJÂ9¨dÂ#È„_ÄêÞfó#²Ôs˜#ÕcBEAÓëÌŠºèý¾Þ–6ÞÍ8âŠ=®‡Ñ𓱙’Hc7£ë¦JƒžžA´äÇ¢]¶µ†bæQ£Ð(Sý‚ànÂS®óÖ¼77Õ©kÄKÆØ›Kç•à~°[í5°!¢ö;¥È{>ç‰Í¢†·mlÈÂs¸—~¼EŠ rhnü|®+%Tëûì w$… ؘ€‘‚¼~êdóÓøúu} t ׳­£Yo›“cÉ’,‘@X|¯,J¦C(x8QÞ~d„(F­85b"?KE:Âèg´‡Jcjíppuóx{»ÂrÁ¼y%ÿ?Ýέ$ìÊœ»ÅßßAÜD²\¤Ø.Ü)ë;U’´=BºT$Mñoˆd(LdÕOŠtf1üdß¾^<õnŒ š ¯Ã›äÂ,—Ü>Ö£×J`Ü­°Ú@ZÙrÆT1Ýñ3öe*~°I¤š˜Pç¡dMSèFÜße½›dëÆžv£Û~g ¶üØu¾ÁõÜõ²¯/3%·ËÏštw$%–ú÷°óƒäTLyUHxTÙ+' =€¾A˜èì•/µ<@{³™¼ÝéPíD-Ž_ŒðXÎ ì~¨˜ü5Q¥Wç”ü€#äîÂŽ”0Þ'šd°àI¿’wb ‚eö>­E¶¶V£= ×'ý˜p³WþÇL þ· Hìå„ô#ÇÔ( ÔVWÏ Þ­¬EÕõJݼ®ÅU,u©IÊM^ 4¨C¤S¨´n@cfV—°ÙÒVALr ÄV¥J«د%ƒVöÏÌÙ´ýŒ«ÆÜwÑ ûû¢ÄK–±þØå|Y‰=­›>ëM<ÆšyX*ýã?Tù‡Ê#I¤ÌMU¼Å§Ž}nzñƒÿv¿(r‚¥´\T¼T4^ÒÓüñjÌ‚a•¿1L#Äb‹õIŸQ§øžnªCðv2•€qœ3÷xý…ð÷†3šöÛ9Nzâ(œ·ñÆT:§Z=yhÖ†ù ,VñOb+Ê ã¹Rv¦Æ:šNç~eáNˆZ\MÃxì†<·²dAóZ®'ÿç&OÜ‘Wéj„ c¦fìÁÊ+/ù å}?sÑV04æósøÅÈ”É_8”¯¿ÙFÅ7ñù÷t…(¯m}î8“¯dŽy`Y8B´ŽumgtªÀy\é´sÙi³éãlaq¸}”’üXÄ-¿ò…\>BášñàÈ;¯ÙeÍk‡a)ó‘ô˜ v€¯NLº˜B0YCüž’È”í`(¼‹·œ)nµÒ˜I6PûP»$u©BsåˆvHn¿]Ë”Œ‰wt0“Àpk±ÿêßîclJK ea¯£ÆÞŹä=íâPÛ×ö\ÈÌ”nž˜ÝCÆ ” M}ž.'Ĥ4‰{µêÚZ)€ öCÞª|ïyܶÆ2ç·<óºÈ3…Œñ6—ABX¤"u~š¼¡wuCV¶.\¤ÅùÙG…„àüL­Ûò]¶™æ×Ðè0ÏoÅõ6KËú&¸ªJ$ÅÕÞûõqn7\Mdzé #5oÖèÁ ÛGª-5R;5jJq0?©b] û{1¿|i‹ ÎÀB|D¦óò¡÷:a lº‚jÐFXÀ º§kðÑó~øg,ýY´êA6j¼k£jvâÑà‘½n¾/qD24T†• µæ³]Ì% ÚÙ¶)Á ¡ߙۃ¿§®æ:+Éâ ¸‡‡©¬r,kôñv2´ …µ“̓ež•ï¡ì àüM{AÆÉŽl…£Ë™¿-Y±ErÖÀ {„Ù•2°RûÎxÄQ¤=RèiÑÓO4»÷3«›3_¼1õ˜Õ Ú˜­à‚ê‡ó‚eKײn߈Þy ‘z.ˆÅÈÐ s(‚)øŒAæþZ1ÆÎ¶†ùsæ5yol–®éŽ¹Î…uþºZTú5:ç»ïïð÷ï£à>þ#yX¥dq©×zÀôxFÜàÜÀT}8$P 0#Ëhü%h¤ Àö¼“M’Ô~öµsk¸Ì;vú’X«g€šðkl$Ðt­ÚcI>’!œÍ˜ —ïORYü5'w‡Ju‹í•½Ã©6øÄ†X–öµ}Ã/bß«–ðJ/¾ºÅ aP¨‚5ý6„¾$]ÈÂÛ@KË)~ͬk'Y§K ûŒ‚šÃ1Óié9‰·©yfåªÿ‡rlÕ÷@Û[¹ïu±MíþëÐ[džùõÂ2ñ]Ò<ÜÙ2+9rn4x³„Äq ¨Í01$MâºzVåamš¯ìý´=!Ø›;[ú¹ ÒÛ8ºIÜ· ‰é<éGìwÆÒ5h½'ŽG —äÖå“«GÓœlEÒ:ËÚ tˆ8¿Åd »m[c†¸ßê ·Bž ìõø|‰-ㆇ7fCTô†é§üf² æÝÊÕ×(ʹ•&o¼©@äÁ,'ßü}^jn¹r»ŠëÁ+Á[–‡ë4Ы–Åeº!z㦄8„­©ršü~Ab“¹Aé0ÂVœ\…Wz„C¥5cŽ„o·  ÔœaGÙV†É¢º^ÙÒáKh³ÓÊ„=ãçîñÏSMwÜCåD'žÓK Z7:®Ì>áÒ²W>8#ÕltÀRëæÝZ¥]dëâçè¨8z»ý½Ïø)v¬ý6¬äưó”áìIÕ/D‘ tKÂãòþÎY˜‹£öZC(óÛÝUS6*ØM°IzB÷O@«Ò*pîP°<ùdûW»açõÖÎË-ZŒž|‘YpL8W^^ò͘ȸMa_rҴĶÒc†´kp?ŒŸF‘bQC)rŠÜs“ÉÇ‹Q)·ˆ°DLüñ!×VÓ¾øft˜ž¹iZåWÒJLÈ"©­1lïL{u´=9\Ü}N&¹×p7$ü*ÝÆÃo mno£|±[²IVAfu§NEÝ=ÿXõxUŽÛs×À~ÿœ6ä‹'ÑJ­̈'ÆÃ“(>‰’ºöŒ\Kê´ÃéDÀÁýW¹søès&q…ÔÀÏdž“§›¤Vžœ´B°¤®^žÿTôÊB:Zjiú¢“zÆþÖ”2"IÒÑ X<šÊ÷ŸãL3 ”\ I:"‘üL²N«"úIE ÓyE|+Ë=ï›C‡±I\‹óˆL—kHíc7NÝëÈŠ¼i¨zzÎfÕ~<à6ZÜ\-ñŠ”†!=t*5Oˆ'“èò©'ÇpŸ³=:«§+åÉ%vÏ\R2!8Z®k´wh™Ý]o%G£{¯>™é7}«8ŸA­L|¯¦Vðš ˆ§}@¡;´o*¸Y¡I+QVæëbB½íÑ»s°ÛÿD"ŸÅAZü/küJ—@È“¢>(éüœ!3Áo´ÖÔÒ½-­_O]È›ÜüM|™ƒ©ªËÔ¤œèݽš~KwÊîáŒÅ®û‡6׫GVÙ̈§—J•ßuÎû®~¡œ* Slñ±m<]æß0möKœÎZ[ÇÈ%–I¼µ:)ÀJp4Ëâ-tñ=c¨XÑà°¤)ð¹ üL«¤pïº+®5RI7¨Aè± îÔ¢À-¬/qáyæù¹¤­@ÑŠ¯Š…a Ì Ñz°ìUWl‘bßKdhñŠèÎWÉ¢Øô~/C$b±» [Ôkû­u=°Ò¬y²û½ß@£ùcÒÀ§Y¶ÿnß­‡·OþF%>MBƒÔt:^¯·¶ÞH77¯á:zª`l6ÀÅêû8tå*'Ñ0©õ1 X½%rðIg«®2Ëb$¶'éç4¬‘ä2¡lïo“ì\~óÑzr[)èImD,tâÒë=;4iüXQ; ãÚ|ÿ,é ë©JA×ëËÿ$Ъˆ£Ãò0ÌirºçþÒ¹n¢ü„Õ¢-ìûU9Ú§Ö­9¢Ÿ †ïâŸÓ'š€aMÌuƒÉþѸYÍk?E+¥Rú“ž¨‡Ø¿Ý§|·Ml_ ø)Ð'b ­&ÚÅÁáÄÇÅkK Ô;=Ô,2Œ-ór‚þÜéâ`ØÓôPjuz2¸ÄGêÔùuy‰§XXB£-oÅdç“]úå'"Ì#²a8ƒÒq]mh¾þÌnQùO vB£½gTO\E|àözLý©Ö¸vCÇ-ìkÀò©Ê£Zý}ÌÙf£‚¦Û:׈3“Nä•[V'ù“ö×!;·nái8s~1…“v{Nþå-I>sϢȧr2óǯüNOp* ФªJ¬« ˜NŠVƒ z*yâŸWUèrœü4êƒù¢þ‘E— ‡L3õ}¹'JꧺFN|vˆ –ˆ`£Õ´†¸]vy«—˜Ç0€€vñ 2íVäd;¨¨gþWL9!éR™$²>äªä§ÿ[e$WסçËž‰Àa°¢`¯W%)Ú%Ç3ö­„ʼnÙ'eù~­lä1ËVÛßÐ\+] ·WJ¨%tÑ‚>mÒœ±±¦ù/ˆð 6aÉð[ßÈΓ<°ÿ³ndŠ7lônNouµ $Íì¦^ü¯00îW©K¢MÞ´1Ƈ.-µpí@ô·¼Ž?˜W(­·> ¨ÚµõS‚4ÁºàÕÕm«P‡5t‹Ž’‘ž^ëª,ãÃØ?Ä~˜û£Rܱ$G(ó#G=èGü}ybI ‹Oš:)ž)L§Êc«d˜c‡FäH‰9ÇóÈ"9UÊÞøÓŽ7Ú’Ö¼ÉuáOL¯ûØ ŠtÉŽ Yº™Ç‚ ò>¹˜ppqUR?¤Ä«àZ°÷q ò†tŠ$á£M/3%BmRpÙz;aÙ2“Ãi%’¤Rñø?R³ ,nü±—â Ú“ø ¦“ôaÆO×Ç-ê§«„{€0TÝö­BHnqúÌ™žã‡üôoÂÕÅÊ®ÅüÎH!ìùÙ¶]Bm™¥–9«ã8©8k”*ºPððöuÞÑeÌÉîIŒôîJÓÉ*‡dìÕüZ %u.þÍ OmÄYkêÕ8”˜vŽL‰«¿¾>8ITl7ëíd@gTjGM|û)Ÿs–¬Ã>eàñ­arË k•¸ËTsY9ÃìpüM" ìX®¯ÿ†ìÜ¢á‡4³ hí=:ÍöL Ï9þ¬Hvöå,"ò£ý…¦óVÁEÙ²4%iÞìL»è“6 “'®cѺéu¼Ÿ(Eõ;©¦k¯Ùà±½)²½Æá"Åze#Ó_P–­GÛÚ/G•Ôn±½oÊÁuÆ>\W!Üজî .½bp@_¯RJ'Ø|6n5‘3Œå¶TNŽìL4ï¬tp(ÉÄûú žÅ ÏÀ¤ÍÈí 'à1*ß“Iì¢B8…ÇH…sV^5èåb@íRòƳ×3}®{öoù™~É|¾°›FÝ‚®ú)jÖüL¨’o7üTÏ+.œJ´æÍ>0 ú MZ§£gQØ¡7Œš@_ozÞžW› ò¦½zíçúÐûR eà†OÛrX™iùãˆDL­JÐoÆÏ¾:w’ñYʸG¢W#”Ë*U€ ¾``×}å¬ÑÞô*¿äŸSý_mìØMIC—ã¬^ŒLVÙ!.ûðs¶ºqUèÖ_× \ó뫺Zp«°W´V¤ ö+†î Âðü^i´†1“Ê@(kÙ°‰lRzQ™Í¶Á2üQ´Â¤xÈŽq.ÖÛÄ>ËÒ`”ÿ&‰h:R pq—Di˜õÛ-Ì+ºƒû üLÃYZù5>g`n µïVïÂÉå̚१–Ïì£ï‚¡J!ÿ9Š…¹ˆi4p,¸ÉÈ€V<‚3ÏÏ4*uñ^ó•)ÿbØòysaï:ÒÜM’½dÛØ'¹‡í)±,I¹kÅ8Pºåû¢µôšQÇí’óÄ 3Ô¬ºíé­¼‡ëÄX䨉;’„(M&áÃëºù´‹h¿cmÃJ7X = !$ â©äyÁÄ_>Ÿ´q5ýt‚£$/PgólëqtŒ—mTsÐTú£‡‡Šžz°€)Â~ú°A}••öÓq1P0‰ã½ÕZëáOggS€… ýÄ nkÀ§=õñìðÿSÿ5õ÷òíëÿLÿ5ððõìóòÿaãêèéãèåìðîôìíÿYöðÿÿùòÿ{ÿòýó÷ùÿwóñüL«]ëx.öÉ|ó¯B*_ ¿R˜ýÄÉÔ‚³)GaL2s 7ç·ä^ÑJÉz£FlÖ›X˃÷ñb$µQC_ .¾¹ÿõY•qíPˆ:8)ÉÖš-ûÇÔ²hU|{] ×¢ÕÔ9›~-ØÐÉ ßä··ÿü§ ˜‰þ$†"ÁC­&6rHl§~Ëã¦fTM¥óÍÞ»PMèö¯Ø53ý¹¶gGð<Ö¶,ý•·É:qóÔY?µ!UsLK ó¸‘bn”(俽 ­¸Å2ø3Õ{[Ï!GjÅD1R ã‡Ú¾3Î@SÞS¨ŠËv퓜4d½)´Ú„µžü¯1åà ˜tøpè+@ǩɴÌCRuëá¿ÁQª¥æÕ°$Có6²Ü™S=íµ0¢‡"¯ *¾ܲÖ'nDZF7’_Ê2X@ñNå[•Ô‚>UV­*œ’òmÁ“kÇPæ¿Ì«ËlZÛ­ãÈˆŽª±ç8giû~ñh7W_Òæ@Î…&è? tcY¨ÔIMéR cUk]TÖø¤s_uì2‘º†¢¡k‡ÀdÞÚæš/¤×<Écš‰`5éà‰æI@%΄Œf§·,7¦&A«;veä1K;‘´*'š¬J}ƒMp¯ü±¤c´Ü.ÊÃûHÌJÐý¸K`*U²€X©÷`B3GÓYs{Â×)(il#'‡A–74Ó6ÎXŽ€©{/Ç÷AŒ? ·þËÚd]=ky—ë¾lŒ‚“B( !ß*°_H‰@N‹´TF›9Å^€”(¦a¨ö³¥{ô7ÅIy& š~Z·wÝ€'`¨Ýd—ž¸ƒ«Õ´¸ ˆb¿<âoö‘{•/¬J“gs#úE؉9Šó( G“÷B1ô+æÔCÄÉBˆ‹V²ÞæÎ»ÿDï–[r©e#Á?ÿNkíHÇ\ ÷‹CÆ Ò¦®ü6vUÞ^@ƒÂ5Aí.Ë:PN¦S 7ÃâHɉFÍ¢ÞåKî¨CåØ=ç’Ù¨í…\s–… !* •H×\§a#rãcÉšµ g7äLEê†%uƒªVÍÑ×lÿÓäû-*ô»ŒnçjÔí¯Ù~ cº ,æ mš*}°üÅl‰¹höŠ“öEéxÛ™K&Ëü´Ç³”ò)Ý’“¡¨Ÿ¶… RsÒ«‰Ú¯Œœ Mx}ñŒ]öuÉà"‘4¼P f1Â׬tiÉŠÐ;ﬖj8T°,ÙçŹzq4„‡8~T,Õ‡ @’S•ÈíÐDç—…üÊc Lóuü?‚ñìP€õ—í½éûàb{F+ôVÖGê=+‡J*(@È5tÁ‰­aì{?EÅ(Î/#j´¸w Ä„Þ%;„oä¿ZØ«O!`Øù4“ÉàÚræW,Ï´¤…a[ã,$Bï Åï£'?]âdÆ«øÐf–<Õ£Õ‡ï?˜Ëcì uæeër¶‚%çÑ2Q‡ßÕ°tDD$j)]=7ñá£vl¡á6 ýæ´Dפ½ÓôrÔ€VÂ1ÛDÃ'oΦvˆ£Œ|$<§»/[¦†ôä•Ó½ÀQ^¼xCW ±«‚`O”iÅ>‡ú©z € šr²œ[Chì™ÈXÛ¦òذͦ¶.2fÓ¼žùù©Tï³Å&Ê žÌu⯛¡4WɯIíˆÃ®!®pe˜±*0'¬ëãÛ'z§ÛQD,£¸!xâÜü.lšþŒ‘ZÕ>µGùj‡È£¦1ÙR?Âe]ƒOý…B{ ™«¶#9~«Œ€–Áp>ÿÅguVD¡’:$ W<œB9ÙÚÆ”×\fÙDðË­zÛJ¨N%+W³¬¯¦YÀ"¨ör‚3cÀ¤’0M¤£™CÏ2´qÞ×aYX+U­ ¾– ?JRû¤ ÿÏHWA`]û”S,­Eû~L4˜ú+™v>Uz4‡Nÿ!©kQ::GýSV^*ƒ·PZœT`àO!6({obU~Ðzt°0$|÷x{kniºxdriÑk8î`ðÝâñ½¸Ó˜•Ë/‚ú‘‰YUrI_„œÒ€~¨ûfwòý±Ñ"±¾TT8Sòº¹+9!W°¹-Àû䚈âô$4ªÒ«3¹ü6w‹s^,ÌÊTT ×c§§#‚“ Ä›zDN©UŸ9xŸ–ÇwgkÜ«ü6Ä-†„‚—\_$ #è0‰ û…žÑF *‡fÕ ¦÷cë±®²Ý¦¥îLµ.Y¡òvÛ7½Ø·ÞÀ9±¿CW‹5Ý.86†hÁ¶¸àØH^3‹žå`sì%Õ™þðRÑ/UúêF±Æ4ªuì¨õÒ[€£ºü^ës¡•ÛX=n+Úéð¦bŒ—ø)žC¦{iôæþÈí&þ/ÍD  ;¸ãPŸº£žÐèn†±Æy«T‰;!ô’ÊQcO;ßmwü6r5W±ía𜴸'­ÿ•2öÏsÁXzÑŸ;d–#×ÙÊä|¥¢ r}™VHΚK%ŒÉÜ2•nMÞS¾Þ< [èÂaìb8õ?\Æó9bï¡É2¼xhÀc0&à”´8¸˜»>dn><¶-û¼¾‡­ìû€Y îß±¦Ä3ûh"P\~ôˆH¢±›¾\ùÝÆ“·<ÀZûN³MÏE³ ­OÉÑŠ¤käÉääB$Ís&Ë€´ÁëÇb‹÷KÅÈÅ/t<ÁÍ_7óÛÓ(’W¢•^ÁúcÇr»3mɵŸRÞÒE"ÙAs³ƒ*ìŽUüL¬õk% ÓbšiŒ2qPÕ´pyÌñ†-ÏÏX#ßDÀD2f»¥?•#P;Êëzˆÿ}Is¨-Ô¦ƒÃ {]“çwó€É+C¢mþzhi^Íúˆ\ü€šú¥9#¼‚ftÕïéq²W1¹ýÙ9ñyD`?eŠ,±¥þO|$à®`#[Å¥XI²‘˜tÝÕòæ}$§²"˜Ýøn¡'†%µ©Q–í §©z£&&“¯„ó¦8ׯž08j<Õ¯ ÖÀs"J0½œrr´ÅÑ!yÁU篞ª¤ò¢6䃳€‹Ä÷=ªÂiHü6S0´¢íã†öÏ¿¶s'¡¦f`4²0ÇId¼.qÕªqP¹‘rÖ>/£O;×äY ªQ¤uùÂÎl8¿îÞ{sZpýYÛùZ‘í<×û ÎÊØ×Š?N<Ú&ç'©qY,Ë—b>Ûv[°Ð6IAàä@UüaÔ¾,˜t‚w—§.™53@ ú<¬H×qùð[³´dß.´´QÔÆ#F•_=ûà¢Ôõÿ ²ÐEFpIr}O¯9pÇÆHf}éèÏp{W}¶¥(rLOð©Îfº€†å?‡Lš€¯d‹Ã¯vŽ;!VTÞ#´*§¨=_ñÕ|ûšl,’í˜%P¹ÿøq%¬’,vĺ.H©mG{òÀ˾>Š¿Ã–>W—û‹{Vš{¹5`–Ô(h½0XôÔÁÙ^ô!hÀÀÃñÁ¸íΖ’\àûÔK[P4f)¤\‰Ú§ƒéçþüL¨£h4ÒðQAã{Ô Ë‹~°Ÿ·¬“Oµ ^Á;å48É–/¶´âý‹çk(’âË„ú­K°ÉˆOn«GÐöQÝÏa9„ÚĉQ…*±3y™U.2zí­öc˜À¸?MänhÍýZâtÓtŒ²¬‹-ýö’ÿÐBÙS¬Ôäp[òƒoÒåO§ØíÅW¨†¯Âéö1÷,M\mΗ¥}xÂä`¶U úKg’måF( wš“ðC¸à— ±ôˆÕL’M.E7Ç0z!¯–y ¬ã¯‚ËE$ý„œTý‰ü¯yf‚íìl]|á:YËÒçq#@²ðy•ƒQ_ ’nÊïV©…ÜmÈ|×1ĺöçܪ:‰))æ/„’µˆ~X+s„Í<Þˆcÿ.9šÅäÚùj–[‰ìŽXÉTP¤S´$6ÃÝÔŽæ|ÛíѤERԞɋÏñ±(TT¹'á^ôËœ©¸ïkÎaÙ-Ò‡n«ÅÌÈf%Êߣœr_ÿöî|äïЉU¨tQ$ÓNtæH‰ÜOJÚPYÛÕ›X#÷àǾ‘}¤Ñlx¶Á+U¹z…ÐÙVIV[L»ÇpAc¤X\ UÑd\á~;s.®ü«hÁ¨5oB¬_|5+ñ,œ žŒ¯&³à`ŠÕ‹i¥{Ž÷Vm‡´³¤w"T&§óú¢\m¹Fä6]”¬¿[I L[ø‰öÿONŠî@ i Úk™¨• QýˆFªðfw™~÷,’L »÷;qvH³c·ðR•º-•ŸáFîŸebÎ'P¿‚­áRJ3?cÕ§tbqÓ8ÈÒlÁ¬÷hƒ=J&­paè~˜ >ÄøªÏWŠæ(÷¨(ãðÿ‰§¾z”ûÛqÃì‚ãcHêK.†¡“ðíàWÀÌœ¦Sè0ç©ps2 øýê°ü±¬ÅÙÁôÜ„ü‡ÇKS6oaå{}Ü•øå.?G{§È Ï¢îh턺a\H4ƒÞkP ¶êg›,^jé/SWIÃøbŪpá`'&T«är^ ÝtQ`ÁoÚá4m‚þvN6Éœ`2ïƒ06q<•'&¢pÞ—eG¦É >Å-/c ~Ï´õüd§y ºú[´…iýï´°Cñ®y–17ÓO}ê–m M’Ï|f¥·›£íÖUÿ(cËvÂHo"ãMz» zUK’9t»þ+šì*ºO÷!¼‡ÿÃSŽ- Iíª­ü¯5$¡ƒŽ1iÂ}mÕ~ >ªE}îðF´`oÂ5Ž1r¡–ÞôËMöä½"!ËV¹°ê”XŠrÙ˜àFé–¨Íæâü¡pâ^XÑ®*H‡’’IpO+®—µŠ2pypN@!4Oœ|T g{LΰÎsT¡$'1³egvXÀ KÎxrKžË9÷o±#½·£ãÇ7×ܶ(úa\Þìxšø¯5„BšîWX¤V¶Z{•ÇÚœý½}ã|™ƒÉrG÷xÈ Mù —G“X~lƒ#ž‹ŽŒ¶f¦‡‹&­ó„= Wtµ>Ð*°ü55-·Û†ÉœcC,{`ùüÍ b‘o G5·ŽMñ„çLt×+O;«Gþ.¡4ú„‰3!Cq&LïrýV)í2ƒÌÞ‰Õak§ ée59Ñû±½¬yØi8±¸‘*-ð$züðô;#$w̦–ù“ç°ò¬²¬Þh2Xœ0™–I SïöVüTÁheeãÎ*Y˜7äœLOêPÙ˜ úG dÄÏdòÛ6Ca•+£.ÍMÇxAÖu ìÕš6[¥kVÜܹX¤ŸWîf#›µE;1À³[‘r•Wµœ|'ã%è ‘›6”1ýSÀ®:³”eãÄeü°$ ½Øå–¿¢mÁíl:ö|ýÝâ*-Ë,6šQ rlq„vO ~}jµ+œ·ÏôhybbÇ€z¹ü©»C2ïEU)Š š÷Èìú„ë°ø'NúM»Ÿ¹ùYM¯ã^œ&y°ÃÃB^Ò ¤ÖH§[á‡ئ]f),ç8)Ó6õüWè)ĆÎl»IQƒ1R÷Šþ^]¸¥ËhnØé”îÎÞ Ôzf¶;Cz0¦7a7ŠØð”|ÌtWµBîö0Á¦M}Þ‰аÊ?(§ÔºÂl'µ+@K,„Ghºÿ@çp¯°ëE®êØù„ï2à,©0Øy 2çÀŽtËXÄè [‡’лY*~¬ ¼kˆèsfáôÍÐÕð™ßȹEÓ[÷}Oo°¤“ëä·‹¦Ü%1Oûqô`àĹ»€b@q²;·nûM¤ñ’+i.£»7ÍùO”¦Zö@pðüL«¯p´„Ww0ä²K›1Úu"ffõ-’×ö ±-™šÓ'”Ž èF(¬]­•Ö¼V¹òÁëʦ¦ ¼þ$ëYÏT!$P6Êkm]9Þ@µó‡[´‰“¯Åì•ÃôØ K·@§)2’Çq?!W:KûR6<çîK¼t¾Ì¡ÕƆ øÌK6Û…«åÅoš¦Åð¯·ü®Q\§ÔÓ†‹™ú’æï s©™7k.Gµ6B.!$ à›0„÷i¡a)6ÍÞÄ®ppàÚp¯y“¦î ÜßüLª%öù€€»†±•¤h;.´‰þË ò©¯lý·Ìø“ÝòŠfVÑòcÐüEó©‡f”ëü ç3ÆOÛÌÇ>lÅMšÈ‹FwbYý²ëjRάĚÚSì°lîD8Ò¨S‘ˆ’¥ëoÓ! \•3¼· ráGä7àÛó£êñÖ|~ 'ÀÏ& D\q" äErèmd»J]ÄèÈʺC;F•që|æb%HûÉå‚E9I é}\⊠¹E«™>5º!†8¢¼/µf\ÓAÊ C1Ñ }Œùö|R*ö¬ÄÆÊ‘‚üÆe³Æò1æ÷M$º -3óFÙ VZ3î"D.èS§#k†f¿…Ï9 ¨V±«?+(#évµ.> WÈÖíÕè®CöÉ>lTekÕU/²’Ëèe º¸Hs¤ÚÊœú£j°J¹èâ""·²‘>GêGapަ6Ј‰Ñ˜ ™´æ+ Q4µ¡LtÌÜ·-ÎÒÆ,:³Ýÿõþ–ahü°^ÖÛì-uð±õ®ã°I¥¦œg8³r¹n:¦Òxª¿b£þ¬¨‡Q=2ÎòÑ—³Yk@Åt¤9­[ü5(ŽA˜Ú¢® #¿i‡À&…}JÅH~B±‘—î{½2ØðÂN#Iå_VÒ@Ì©¿}˜õ`SwÕ?w5V]"ÖwÈ{tÚ™‘gÛîæ …‚çÒÐ5GêÁ *E7Ñ5ze?¡øÐi…$Üx ÙÛE.Œj:õB„ЈBwáQ¬*lõiÁ»Ï‚e¤æ xÕukZ7Ö=ä ©n¶Pb"”ª§CJ¦ԠҋꊞñA }‡þ(6“~ÿ kÕ%K>6ªõ¼ ÒÏG¤ÀNÖz,1|¾eu7Æ_Cûõ´¿aoǰñ)1üMMjU=ØuÈÉ|Q;e’ W€žæåܸQp»iÃ6GØî¶VÛãŽNž‡$‡>}9ò±Éw¨Ø ~°Äç ë ÈzX%¦ºcšÝÝ!åÅ:]î1õñ+RŒåŒñpãÊ\Ãk_/>´¼dAÄIuý̶h.ε”—ôwMD1VLˆk¤3ÕÌMR0V€ãr´‘òl‹9§ä©]ŽÚ•^̸X@”ñÌÞs¿sÚ?A„†{ qÔs!gÁ$:’$.áêÓ³—ÒÕ/¤C Ó]¦–©jÝ3j¾íšÀ³üLìGTàÕMÊBÅR½«¼÷Ë «<ì­¤é¾yJ'ï"z÷¦—jï±¾ÚiZ’'?{ˆ`ûp\rÕáô÷2$‡x·=ƒÙ"a*ÎÈ%Ü‘tà˜k ‘ÌÇ[c­üîY0„D5è~¦ó6‰kb³ºtHóxÜ´úÐ-·<¯8‘&þ~…3ý Ù_½u!î1pŽ…Z­ã‡ï”>A±ƒ½ÐäÛ?WzÅùQ³f ¢þ*é1üE©×š"tçHÝý cRÐÕÇmj‡cƒhÛÅGµ#G3!¡ôë¼2óCrz³Ô‚¨ðèüLÕ#ÇXç çkBÑ!†sPf¬zWÄé ¡ƒ8@IJ7å˜[x²>bî'g?·$¡§m½^…¸Yä~óÔéßxj“ïäü(ZÇj"¤ùc+á|w}©VˆÜÜ”­×rrý?¦YA§R™ò͆Lø]HvÔò(É­B‰eóU›‰è·‘ù´–Ñ; ô‡>·˜ÔôÑ­ó݇“éöµ_Ô<º²0K5„_i7öq=F%{‡’lÂùÍŠ_0'ÈY°H/.@3M•(hôÎå‡;›r8Tõ /~í-ç3õ”—ÿ‘KBË`HË’½ Ÿ(vq¶Ýïú‘˜ü5ìy[NS‚_—‚½14;‘¨QˆìUä:¢^ŸÃµìV› Õ¶îˆLÊ! ɳ­©‚®Î¸m°37×ýjÿA›"Esaqøô™ü[² Š$&;B£§k ›v`n[QàåbƪX×ÊìÑCEÌV®ñ·yþ ‹ O¤Û~ Í2Ô U4>Ò:Íê½cÛ@ÍÐ nU*#»˜Dé»–¦ÍÌ—I¼þkp¬Ý€\}ZŸÎ1¯‹À³qo]a:ªH?ù•g‰ø0ªî ™‘¯jãJ$Xå 4ϬÕüLÕyEÆlþ•!¶´ÇÉ`^$\]WîöÈš.ÑéÿÄâVÏJ$2Ó´%û<¯¼øj/;8kF= C$á_„ó5”™8ZÄדtH `*%C¢çÉŽG›;Óï1WARJ¥Ÿq>l´0Lâ¯^_Àt z&n{°Oæ¹bË´Ò¶q¥WLå-{2 âö)Ù¹Wfµn'äþ¶Å•¨9?Q"õ½‰O…N»óì¡yŽt(«uSma° Ì¦´OD&ïæœ ÏùÙ„ðxm4ÉQ¢ÞS~ åGºã4û!Ø£Îÿ¢)¹¸,€ÕZœX)ü±ÐôÙeV¦]f¬£.fý÷`_Âû^ÿd™¼À’’üþŽ“¡S²¶÷ q]=j¼jçfr£ñ#Î%y\Ó\o-§9®8M¶m,<¸Ï˜ÖOÚ>(X#eÇüá2+…¨ýW#ì/Ü"„^6M¨c⃹éHä QËѶÜ'²Œïe×~ð2‘¹‘=8É-ö<䃭!8“?ãë–fߟ>L:¿sØÊ!UÈøiZ¾:NE»ò¢Ä¿Ü‰çÊ‚_Ÿb£*Ü„,Ã0L¼w”I’y+”'„)" 1èÛSœ!n‡Å°ü±—Ùš·+j5òâ4-Y IC U?U+‘"zô\ˆê˳ %9T²°Æc½€¦­ V lÒÑgõƱš z\×-Ÿ .Îtoê“—¼Pë@ºcê)ñmOqR—)€É…Åwž ÿ¥'h'¨Sº KZœ€¡Ï'!ö*‹~8=àønÈ:ÈÔÓÍü´ ï$¡D•Ú33«Vn ¥©áöÛâ@ÛÞ{qh*ÉyÌË')FÇ»ðß^Fî¡L7_(ú·é&Ð W•V§:gãæcëtz£9䢑ƒ`T!™MËYu‚—O/ ’¬ü°ÇH­7#/²¥žu¤Ó,õƒYÕâó¥[áð2â *Ô¹×'m_¾ñ2'4*VCsîKÊü8ßh4.9‘ŒgÓáaÔŠŸÁþ)z‚Uý-EÆSáŸuÛ½<4?ò;9Ø ç"p×÷Æï?÷Är†?]]‹©áK¥—£â™SàAší÷a¬£O¾@˜Z{S›ûü5Ù´¬JŸîÁ˜áÚ–ÌþW±I²Xõ‡[Üí\)|‰g°!u]‘Œ^ÉÆÓѶ,‚C¯ª¦A—œ/Y:'?V¹]Ø ÙÔ¬YMxvŸR1õÓ±îϧ4@ë¾­ú”“®Ñ${5ôñÍÚ]ªé±b}Á…’<Í oçaprQF=Ì,vhJá=…‚mm@& ès_©PKËRŒl,nm3' ÞMóܪ&üM'lM,ê¦ÈnÝ9 ¥©üޏtˆµ™or¤ã~ ÿKôÕ›ó:åųüVsç…õg}:Ùú`Ê»2³þº±ãF©_Si®ª÷{¤-ÜŸHš]¦‘ 9+T˜TÇpšvuë¹÷dqXÞ#ê™÷Å~ø;'ñöîZÍýDA:û›DÉ@e2› ~ÂÇ"½˜ l±½s‰m*¥Ø¸Ÿ6)ìcXFñV‘Ú>¯ˆiÔfÛx_õSF½‘<( •ÏÓ°˜“”.•qþbjõé5vò¾A†8û ¿¢Ioí‘êãG_@†ŒƯIé-~Ç«Sƒ¬ü›»\\tE!E šÜ,iætkr?-ôBš›=p6ÚË%eèÑ>¸F;B.ɵwª¢çHÃ\“Ï3ÓH5"Kþ]Ü$£RÿÒ $9PŸ°ñx@XQÈ)4LÇeÕ¦`¦Qïd&ê’p½"ö ‹ƒv,óÊ æ¢*n5«¾|I $3{­t™”ÖÚ2ƲsJ„˜¯Uo7U&Z¦¹ˆÚWcþ5o7[9%†¹Ç36×—¥>¨Ð·Zt H¹Ç°„¨{ryÚ˜¸Í_šJlBH%ysëÒdh?ßéh»ÁZjȧ|$ø³Rü4ýŠæÈ”y5‰?b6°(ÃD\/É1BÑ· u€l™ðü²âeúôô°õvsÝQRÌD_ î{2cÀír º\™¸Ý*váäìD¼yþ*ß½HI1QL ”^kgs˜es/Ž»Gác‡û5m|UúG#ÆYšRËALs®íŽtY-~cãÑAÑÃAÖ\Tï„ [õ;À Ø÷á9méÏ¡m®ÝX­ÕdåÁË·d½“|»\öCÇà«p8»µÏœ™ V3ºø€½›Æ\ÆßO Á÷2âi¹†ô4þœüîêä àFp±4—¸—cÌ—(%P¿ ƒÞmÃΊëüNüñÂötø ºím“àÓ¤FÂ…†{Xj IèñgøSÇŽ*tdÌêÝ¥ZkÚc"ºVr_ñã01ÈBò™!ÎiX²öpþ 0|ûñù‹²œÒÿ¡b.î«,«Ú­'>|ó©1Q¦IšXc½ ŽÎ¦ŽYe/MC¥V•PÉ¡qùÇWí^|ß;šü§Û˜•ÓK+ÈpqÂ&C“¿ÔP-‹cª;Yý\ÕxöãÊ»Ý2Ì¢ÕH-åûÿkZš 7£qté”ü‰WÒ Ðlfvú¦Î <Ñr«O¦î¾bfXdTZnCì n(Ú£V؈rÜtmGPaøƒk;¹5Uf™´¯üMü%Δ.Æøä,>j ù˜Ðu¬ví4¤—¬¡VèЋ÷L{dÕ$DÞõ3o ¹`>xa » ;h F/= ÅÜ‘ˆéMúdß…ê«Û;Ü|Œ;r:#w¹*UuªÃÄ+hK¦n´è›o¿óeûâœrÆã~UËdP¶¦B‚ªÌ½š5O›$0 ›§¹ØäzÉ:U¿3S6SDí!/òç«Añ]rèí•ëå$ïÖÌã6:žyeâý@*K¹ü÷…Žb`ËŽé¾™´H}ë1I ` %TóYÿÅ6‡ñ‘ðl³C¼g’¤ü5kßm9d?sçÌb­‚”–°µ¯F‹Š[FL°[®ö…Jyä"2x)ÝQ™nÓ™E–C~0qž7ár¯o¼tâq\4¸ _cq×nÄI†ûÞ8QÍîE¦&‘.Š/LTûå%Øù;¾¾_×Ê\Î5C¹4d 9õ«ŽçeêrHç§(IRÄõ!EÍÙä7«Zô_\Œ=Œ”—ì[ä"ƒ¬gåB¡È˃8[«ñÀò¿êôAazËÂËðïkÁï>k£-®Ð’74¶‹kͯTï’4ù(Oj6>E¼dîÙêk,L¥žyk'Ùœžü}bœu¡R)j\Ps/\±æ,áv.û Jé;¹‚½^¸ŽF lÕ"ÕáÀC²}¸È<” ’Í!æÒϳL <Ë=í`óp¹VÓã|ú Zç,Œe¥K,WχiÜ\Ê;¦4àA¤ÚQ~ô= ¾‡cz;I*ÝTèQ¸z4qôˆÓç¢þ-!žsæÿdI/7V¯¦B• uYåÞèG7|Toߘ2-£ÍïÝùNÕÅ~áï2CïÀ̶`¯ß0ö«©^S†ZaÄOË+ôæ"™AÊoK{?À R"›°"½ÕiÚñ|«èfgÒå4xB4GáPŽO‰ƒëoY!f†M Dx\ç-S#å†dŠ8.ÃbWã|•øzÝåÑï ¬]rïˆë§q4§Y{©OtdžŽcˆq_§nXÖkÒŽè÷<ñÁûÈå;î͹Â8é«©9Jæöloÿ8c—¾.ÖüQ9Ã_ 3²•è–èÉ^Ëh Õ‹çüM’w„3§€¤Ö{MõŒ­íCìø£÷”]6ÀsìÛÉ«ôÕºû¬TµùBjS`Òõø…@ãiQnÐÃíñš'Ú¡Ç™—àKa|VØšÍC'-i¹ÈÖò­‘ÿ/]Êúƒµ<’'©3®]|këºpÁñ½ð˜q)s8‹iDÙy¢†S©ŽAÿÅ £ã±–Ô¸þ$r¬r|`§’ ÚVÉü8ãs»&@œb%,ÚÜVâ°ËíË1j#ìnL ©ÎÉÐyJ6ʲëlM>Fh¬øú<—’a¤;$É”÷ô}ˆµ»þžj0IN±_dc?ØÊy«p6PHRÍ”È ›\.‹*³–M´`—Ô“UhNs <6ê£Ú”z„ú¥^g—ó½­ïÕXF«Ý{>Ó•ÙÀ#ô¹ÔŒwZÀÃè„"¸y‚{êeL*¥âê°ŽÆÚã ×ò"Jë˜>ØjŇÑá#«Å¸k¦ž™ó`”fj'D0lEÚV/öh“¬ ’µ&BàÏ7áÌAì üJ['Ζx=/ùHbŒŸöŸêÌGòÄêÃÂð%x#jøÒ„ør(œ Y² €åÊìÃÉ/ÌØ+å ¦!ñ¾!>Ö„Nƒ(€Ð†ãË8XØ=p•.º°êu%ÍsO!NR_8«€©âÿ˨Ì;£A›tÍûÙßpn%9â"ü.ÉNJê­Ös•SǯŒoº0ƒ€xlD ¶k¶¼ö±­ÂFk#ø L©'mÅšVA¼$ÜÉöŠ‘’%Äó8u}~­»Eʼnˆo _¦‰KäíZÐr· xA8Mz»s%ÈBv¤ka¾¤|ÀQÈ0ºLÅ¡®IÆ‘Æn‚åBNwjF¹¾´¥`Ñ'<»7X¹|üäºâ^Mâ«¶¡ÉaœÚÛÄ,_X×LÅ üÁ |4ñ• "‘U§ø—Wf,-Ù.«ÏmJ(î°uœÐ¥IW«˜A¬Æ3~—%G­M;Dt¨Ö×°0+M›ð|µÿöÚ6꡵”ý5ü5Aø¦¾G,ók¥¦¹h§Þãq«§¬óúžva¾ãv¾éåÄËârõÆ`™žUC,]9Qô-³\ù’Û6¼\r£¸=I:d¾d"ºµhåav^ž³,¬ø´Ž¿Oa¦#ÁVH sðû·p¼r­ÿmá×µmëÆI.ÙYYðìÓJ # “ô0®öã½&š éØX¬|ƪ©·w7(kÜ3Ö6””®˜D«ÇÈ'Þ7Ôå´™X`.'êeuÕJw©l7¼£ùVaÊ1wÖò è˜T£÷.¾P6é¿Ë~d/á „Yq=q‡OggSA ýÄ n×K@8ðôìíÿcñòëøóøÿaîîìçèéÿpäòôììêÿbÞääãåáãæëîéðóÿxî÷ëõ÷ñÿ‡ùóïüL³æç;eAšxÚǰϒKkliýHE¿Iм$”î£Ýö[ð®ªL7@ˆæXÕÙžÂ\0x|4…£ÙŽÚ}dQô7°:jÞ©eáí:„®\Ó@ïÊßžÆÑe˼/ô!µ07Æ]Ú ó÷8eôGs眹˜„”¶í²ËmXƒ)aúœ<ï‚7KjÜ‚|DªËJ–vy_SguÎÓ\`U;µS…á‹û2Ä9WnCo¥® œØ1ûp°¿ͱˆ»œ¯¡Š•#”]OZeoïÝXˤ¿ß:fŸ s–yãa|`¥»SŠrNi0¹†ôüL©pcxinQ¿ÂΚ©Ã ú(½ÃâØ áÕÓÌZ”ê«=`ÊÅÇ…‚Š.e ÉßBJ)3NP÷RÝ)ÿ—Ðï!âwg¢b{¶Ã׆Fø‘hψ½žSG=™¥®ƒ™E“‡@ÔšˆÎ'쨴Ö|TüêlX&M âk3ÇãüWüUÁEî%ä >ÄDÞuu”S­ZeǼü1t>Dû«DEþ0$?N!mÓÔµ¦¥‡;ä.'“jƒ¯µsLÈmaQÌÝÿOÛð`ºÀ&‰Ü¼§M$À$*aIXŠ“èLŸ±ñuý”b®“.݈†î|H=}p;,Æ¥Íù—N=&˜5AðÇd“mþå5|iÙ‡xòD¬oí܆g‘$6ÙµÞ ÍâÛ(–,i*Äô£z|P¹èvàxÆ8îfm–á ¯¦)“ Ì×Kb™3£¥¢]õ£8óÛf~š מ[¹}ر@0xFën½´¶«ëDkëU08¾ø÷Æê×_O°i%22ü±oh²¿D#ìÒOñÓß«T¢—˜ Ù˜ùÁ¶§0â.Œ*M¸œìÚnQ1Þ6‰> “q#ÚèþóÙf ¯?+ÿ¥'àB4‰ ªeÞŸR…Ø$zBØ…ÁÄ/‰‘&§.ø*eD®Bè·ÅwÝÇwrÏ›dÆ´]4ß¼¹D3“Y&;Ì£K Lœ.kç°yh ®ó²–ÅùQÞ/%'QNÍí¿¨ïµh6°ÄVÕeU+,úÞàUUñz|ãõÓwÛG:×ûÁf-fâ#žŸF´_-Ðbûܧ”“ä(Ñ|ýUP±Bµ©‘èHh³ÙK¬CÿöÀ%@¤ü}bî’Ãâò´ª6ñÁ~ÍØ.jmq½ý†ŸŒï×¹Sý6—¨Ž´XþIÚ ¯>O1ÈQ`ò´°Àw Xª"‘C~ÝçÀ€o8-®¾@:-Zî>:ß< Åo9Øîȧ#-Ì#›„¸ÜüK>î@m§_ÒWŒŸwÔ„yŸÞs¾Ò4 Sé@ÞýÅŒY«4ÿÜí-ÕÅÌ%þçtªîàvg¾=³déL;UL>ÿ³ù‚=©¢0ö!H y&IÕ¤fù†åáÒ Ô¶N]oÃqXƒë訷_QjEÃî«¢À÷"&oOLã2ë¸Ù²K^f“ÿVü¾»á•ÌJE­µèÍÖðãto; £’¹Y¢æC\s8ŸAËv1pwºLazK¸À§ø=GQ_?ÔRó@.³˜ŸÛ¸T•%ž>u+¥ZK¯9ßÖö纉sd@¿ú—DMĹ½v ð1o¦_Þ«§Ž¤®áŸ1úòÎÎÅ€ó´ÀTõCù­½ö3q‘˜›qÉ7.šÏˆEÖ)…™E±:#pHÜæßƒ9G¬Ñkµî%¢´MK¡ z¯~Ë›è¥ËpÔæ\ïðš¹Þ7“¥¥¦~øŠþ¹ÓÿÄiC.\kß—çÆÑê×DÂhܲ|*Ѱ«dõß¿âUªMù [ðÌE±>(è1p×üÛ‹èb@·ÆðRðZ}ÜÀ½¢Þ"-Ubád%þ£ïs0â´@!_êwäyÔ~Á'pç<†¸7º_x€«íDqÉ/ãóØàq¾¸±¨‹õÏéÄÕTä+±´sC$¢:/=®7ǦhÐK¬ÉÈf,ï*;´÷‘“æê!;Pü5kö11xtz·¹ED7yï|.©øf¶dŠdÖVZ-¯ÎÎüÖMùÈŽœCnS:ÞÇ«vˆº MYÊ6ÿÅ6–lÄ3ƒÍ¥+ª2É¿ã#£"=– ©«¿|g I{ ÖSæ$SXå½øÚX&e˜VÃ^iÇÿuÁ=1v|YB÷’’]rÄ/Mífþȵ¦‘Ú5ÑÌÄŽu_Ôå=èÇœÓ}2ÿ1õ" &ÁG a¯åââ;Ø·Lšõ.’˜.m?B¶jªZoÈÎ¥ðš¡/ŸÕ ˜×¡‡Ò#„ü±øÿÖ³ŸÖuÇnÂqÒRdØV÷ŒÑÂ8.¢Ód‹TåŒ+îkÅ &;ìsh=’á¬ûÿwTÀâÖÆoy––Så]évÍ]f×c,Ùóhdk½Êná±þ=£È÷Þè$^¹ÅQ–lŸ—¸*Fë¦%t'K%f«F› †Çc(ìlÞ8Y„Å„ BØ  và'òÜG2¼-¬ÞÔðŸ’Kㆡ€y0¨fbfáéê7Hœ›—ŠPyaŸaA–‘ʃ˜;ƒÐ@š¤Eàï"Þ³)·¡ï¾¸/7Xy•Ú¡ ÏúašXþmÝäpkU36¢ü®–/úÔ„@¦Çg"¦ÿö7Æ’h>Øw5–¤¤D²löÉË5Iã PÍmPýžÓ/™r{ŠÍ`îi‘L³´šhׯ9`¡Ì;™ÀÊ0IMc…î¥Fò{ÃH­k½=N6^tƒîqu.ét&¯E37|¸9‰YOn. iOj l榄gÌŸíÔ|¢‡½r±Å°ïsa„'Ín+<ä«ìïâs¿ŒË&ºXQ¨(Ó&˜† ÔD§’¤“Ñ)i™Lš»ô ù¥Œ1Q¯Lˆˆœaw×=ñ órF³…Àð¨ ü·«Þ!þ‘—@¾\¸å]"%+Ã~¢ü5oX% £Ó¼£ Œµ2/.PÓ3 [¸fT(pR·ùf&"aÇ6ýi»$•ª¯úJ¾šØ>£ƒKÛ"whÝN¸BÕ?¥þûpÜ ·HÆKI7m]ÓFE‚rÙƒò¶â¯ìÿÜþLß„áPØ„f‹Ižå ]YÎûè’y÷{ûO\éÈç(ᤱºµÄ "( ‡¯·hŒ»Ï/ä¤ ãQ–ûÌ:ð!ð¿I2Öí!‡8óºž-ÇÖd@Â`Ž)nÚ% [y‡I~6pþe§”(äâùþa`-ë¯ ¢üM1âoK£š›Æ:ápòzÅk÷O>»ÔÒvÍCƒ¯ÙQºIœ+ © ¸Ÿ§ÓÁ°a™¸Ž–Õ*)VÐ<Þ2t¢ÞçCla“ÙLßËD;ý$–ì ÒOüP-(,íôÿ>ÂãÚÔÅ%^€“³ÔûlfqõÓCÙ«b—:’‚Bû ±ôÄHJŠÄ`K§±sQø$œ›’¯à%žZ5¸°z0ÜêpùáòiZÜÿJWÐk…‹Ûe±øTL€óx¾ižÇ¤eÃθ‰&!ÒP""yROX¥Ë2WÀ[ÖJ—²GHhÃKösš´ü±—¾(_ft=}Ù‘¡‘?§F:hP*М¿ye“82]Ë^×Ó÷m÷ìgZ80$Wª ˜q(Á¾¥¢œ" š”^+‚oyˆà<~¸JQŠPÿàßà¨g[ò·ÐQƒÀÏ,ÕZ¸Hd T%`[ ›û8cé?+‰B©’`2J~…AVßŪ嗓Á†Gç¾ç-÷]~zé¥ÕL^'wŠòÞaíI,#ÝZ‹Q¶³ô¬V‹_e6ÁùÝRR™Ÿ«h|xþJW='Ä4(R\?¾pÊÅS« O«€uÊm˜Š°nR€¥ü}b“Ã@³Oן  ó=ÝyC<œÁ¥l­È!€ÁÓÚŠ~.H­‡¢€¯Í¼+M%±v‰+õNudø\ù~jãàúB^t²k3¨6€¹ùGÇ[DŶûÀ‡j |Ûì ,GÄrÜ›”Ch´â›þeé,Î;>w·Š‹q»uœ5NØò )~D8ÊÕ¿v~ì×ÄË@˂䨒µ[Žš÷Ž>ob©³›ùé^.J»?›'“ç51ùòfóíØö‰ÈXž€‚I²Ïߟþ±¸Gš_“†lü%‡ŸkÐCºpúGšEpDBüžüšòfµ›sØ*hx°sø68à` ¢’‰úÖÞ´ê#¡3S3ø¾_5-N¬l/½U‘Ý.âzbË(ëqd Þ4åò9/qødú@ÌÚ‡T€À·+b?Fî”;Ó´Mƒîü5Y›¹¹œ,ùÀ li;”žñä¦ëCÒ†·À5`zâèïÒÄøºªêM*ÍI fæHEÝlÅB¥î3}Ì17(|”ÐN"êâͽˆ= “§âӪЅ™ëbâÜÆ¦0À@—. ,¬(^˜D1ÍŽ;(g¾sÍã¨âåAi¨‚æ îÆ;àX óµ¿ù~¢"iü ÆàÔ÷•RóU.13ÁÕÈÖNs›` о²ÿ!/%ïÂö)“ñ"¾€ Ø †Û¥ÈvDà\ ö‡*Ó'Ÿ;ªJ£ûÝyý"¾ÅÕ¯Úx:Aš„?Ô&JÒ¬0$êv6%€Y§„äD`¿8ú• qK|žËI¸Ù¶õjC)sÂRw(>œd™xcoüM+>bª2U¾€Óo¬¯\CBñ0Ó׀ƙåÀa-±šÁvò|€™Ý’?wò{P-»¿ƒyA£?G›ÚЏŽäŽ¥|íÙÌfÚütÆC++9 Ø©UÀñ]^Ù‹€ôïí5ÂÔŽŸ˜@Ó‘ýj½Â®ážô²¸Vp?Ð{d•½ÅŒµŸÙî%àtü6~ŠƒÂ‰a›¬WO=±Ô²í #=®´úߦ¸y*Ųrcu†Ê¢íÚ«›«ùIÆ÷rÄ®ô2ìù^ØÚI˜tú;êIMÛÇ90/³š‘T“vÞ!¨c½© mR] ™÷FÏ#k›üLÐÅ\»œßÔF@êÁÒpY_ŠÏ-[óP¸óÍ›UœԂƒòë¦pÔˆ³D5Ç–¾ýYm4–Û‹&:Œè.‚neèb¢m3”ë7†©FÕpË®ªV–8–]à?P¸4É81½Í{Ëw=Aµ @dG–!íÕçûŠ`ÈJ%œö{V 䘢êBmG)Tî¼–ÀÅ!‹ÏE§ðY”<Ù&|ÄÊxzÂ1ˆY 0çÖvAMÁ/IYQ¶(‹ÿ¥èŠÐˆ!¶ªñå‹«aæœ=Ûþ7ÂCÁ^´¥ãäÝbºvœ üM*úÁaæâèeýò'mè‹Òq-î›cÀï€Øs×èIÑŽYÇ=3¹ÝíQå¦5uÉo~5Þ®•„ù]‡ÕLK°f´õZ“ åСUÔÂWóä ‘"šKЩ/ÔÁT™8‡•ÄXi‡Cä•E”h öÍá•!cG©çË$ò‰€G fe5>¶až«zOj×`ZÕ`ÅQs|Ü{°EâKÏ~}:…\Š •-b óge%Ù_ÝÌÓµöoÙóÄ¥‘''c ^'³H^Ét`•s!ádÃei³™`,Ðzå¶Á¦­ÚÚH`h…¡ðð5u¿dü5«5ݹ;bíä0'W©M>°¬ã‚ñ´ÌR¨À=Ñ«Î.[ î#ÈJéÅw éÑ f#·SXµîBm0y„[¢¯ŽŸ|uö‚¨4¬töU”õûš’x¡ë-Ú§÷‡l)EMŸ«ISïf®üWü|·Š$¥|¬ü¬zÞ®¼y#1,ð‡Px‡›Œ¥ë¼Á¾Ú“¥ï« õ¾ƒ"F7¹åÂ$Ì}䇑X$TË•ß9¾õ˜GJO_-‰É®àœÆˆ@ E Êþ_2÷- yÏùÐ<Øm5ñÆ'm•«ï_ѬFVÏ ãšpô“‚ýìaI€·HOÆ1#â_{Xâ¥õ[˜×  ²yxÌ¿Z÷@¦ôè0"à5TU²\3§Cè~ëÓ™Îws9C²‚B,EvþyÓ*îã_Ô4Ÿàê-âÑ‘5CÊÞOŽ×¤Ä.dÚæ \N%qí¨ èûÂþ\mÝIÔ aL,/ƒœ^(…gM¦òut(¿ÿƒ­œ±çdªøÉˆ!Þo¬9aˆ ð¡Æ¶ʧ-8]\ÓzMùJî ')ÛM“{ó×EQ•÷MyœW50¯I«›Í8Îþ³$Â)¾àö‚«G—HÊA_ $ˆêõµ~<ܳ 2TüM&´×<0"`±_ÍP¨®ƒÙÚ»p×Àd‹ð8Eçv°Fjò ,ËÿJɆ÷!ì’f < .L¶£ÖâyaÖ“í´Ìü³¼'uCÆ{cEÎd“Æ7Ø+1Gi›yÎî¥pûcj7Î;nåð ÿuÿú;|ð2òû\?…®Í{Ÿ'¢tî±Ë= Zy걬â”LçTÿÚÛ R­e"ÁïòºXtcWlü ê–‰¾H”±µ`Ê»'¯be°ÝB7ðqÛ_ÜÆ=àKSC²Ï‹ÆÒœ>ûŽÜìfg ~¡á&Q ´V‰µÓ04Ì ƒTiœþDG sžPüM&Ä ¥f€²?ÿΆeš¡¿fW¯ˆsÜz~ ¡E– 6 ¾{oØ5èl¶‚‚»e‰›È`}…¥\Þ]׬Ns‚›M£cçf€‰Gš¢º@f*ÝØÑnMP>Ô± ˜}‡ãcʉfrÐ\Ÿšê£·@Nq­K›svb8O4øä"tw¤&ÄdBXP‚ùÙN›9yy­,mßöá+ÝúþX~„e¾Ð¥kÉyÛ3†s“ØAåK€‹ý^ ʆ©ù§Žnâv-£# .{¿$,þDgðñn!VŒdö”“K±øPêã$_ËfÑœÀŲˣ)òü6QKê³8àš—Ýã ªz‰þb€ŒÑ¸†È#ÍÅXfÝ¡÷Ž«– €°‰¥²V é9 þSŸrjd³ö­ñ`O:Ãî<Íý*SIèü4#.6ÍHhËncÌdTüµ”Ó/U¾1N’:c83+O™¼cQRÄŠå×ûIFëNâùsÍé¨aˆÇ®xJ*m´œæé*ƆŠÞ}ÝPªßtxнlQ- Xþ„Y´b±ð¼^ÑÍM­þÊû Îë ¼&Èíߙ̶ê 23„BDø¥š/¹`™œgûñ>þ€tß+ÂI§LŒ'ªþHüM2²Ôµ6|û,$'aS æ£ØÃslÇÐ3Ô¢®ñQë ×_ä&p`ÁöB´ÁµåeŸ„lÌCk¼X¡Ä8â^N“nLè±ÃoŠÏ¬;S–ðê]ˆ”æýGJ™—,dok?u7T{ý(ö<Ö¾s~eåõàoà ˆÊÜšÓ:ìÑ=oè08·º¿¸as{W#´1’2kAÕEÖÍÃ*´zyª}½a¼Ê(4<ôÁJ\ó.6¬ˆ,+¯c9Ä1}*~,S|ƒlXk7º_PØ=;;R,õñ»É±¡SBÙª "_ï¡Ùü|·…ÝlOÖ™E«{Ö]ã$ž¼œàÌ’jc†`¸×TáýŽ7§?uíuÕª„‚Ye›$we».Óc;BœŒ®M«Š´2Ÿ‘§aupj‚‹w9‡Ô+ åi¦Ù†dm­ ©."ð‡.­Œ ¨w˜‡¢õðÇþh,›?&WB|”±`òhŒ£“’˜0ÁŸÇSJ‡ì‹*Öè½lØfbþï³–s+©üCt}³6m_㵩uüª‚«Qí%ÖYÚwå#ÇJ¡µ.Ö8^&jŒ6² .%9»ýMë^TpW—U4 ›x+Cw{µ³ SR»V5­Êûm±wM~ÄzcîòÀ¢œ—u¬RÄ@—OàVÖѳ~¦ @ïYëŠÍ…'B),3Úä¬vúÇPæòyå³’@©—ÌÆƒ0 WñMOfÖýKõÀYéij=UûÅ9†5c2ëß=j'ôƒ\ð3]°Ë;g¸¶Ö‚ña}Õ´5HSü.VÂc9O=p¥‘ƒÝº±_Aù:е‹êêÉ€Õýan¶¸fC¬^Ñ—45ÕE¿aáøm€½åuÙ^8O§SÒÚÅ~ºJ§Z6.ѾBXË#—d%‚’Ÿÿ½qòÄ“¨NÐhpõÈ£Ãßûc‰úLÆæg<ŠÂ‚æSÀqn‘êlC5ðZ¹™ƒ+!›7œ‚<*¥4Ÿnà¹ÿû2¿zsyE¨ 8–V´ä Úí{מÌñ3¿ltÀ俬‹ž¢ ñ:ˆ»—Œ·{s(×°ò8!IHˆf Ûv‡ÐÎpXÚkÎï JÑÃ*&ùRöÏBf!Ö¶:üM»ËSž¿õÇæ#Z,(†@j{%C0½x–K ¡:ʾVT}Ù?)øÕ0¯H]-ùògìNBµÚHL=ÍÂ\l-RfÑŠÄE}†÷kœòûèxð…·ºœ:ƯFcqš$£Þ9Fí]; ±À’JoµmL"‡#¼¼Îí‰ë§Ñ|¾w¢:}L„'‰óÐ@Ýœ«Ù°º£ˆ;ö“ÒÆ¯](³ö2v§CR ÑÎdÓ™’ÄÙl_i|¦ÞZêMìà hXÒ(õ/é%4ZW!r¾<²LF&˜À²·<£.ö=k‰$L%(z‚ åfd˜ü¯DSEé8—pÜ×zÊÁçh[¬ÿh8öäÑ= mk¼ç8­JýY”¨IMçÁÑN]G²úv‚/CIâA®úçµôÂå BËl¤‹J£`¹±ëã10S% öÒ¨_¼®¯¯7“Z¢ã ™š£æ™é‡»(YÃáÓà%…Sƪã(lmsö‡Øÿ ÅW«‰[¬kÌíÑ ˜aߟÃÔâ¦BÛ^ çf«Åõó9Ê($9Û¼Ci3Ö4áö¤2¤½ü5*+í„ï͘žW½¹I³¬òZ¼Ò³ ‘n,ÄñxÀ§Œ¹°HÀ§s¾©œ–RÊ^DyÏù6žÅdÖ{/<†"8Í>逹ËNÆ‚£V¯Î|ž ‚`• Æåöî.l£›FùeõzZ0Š|/ÞCcf϶Tª\ö¹7Å-mC¦]Lˆ­qWlá;Untf@ž}ÏÝ\U.Í“#Ëu?¼¼Õ8=®‘ü¶`—;“(ÁôclqŽï‹Ž«Qzþo±ûº¯S]ü–…•>çGÙÔS˜,g*ª”ôF%³ûµ¯å Ù•»±)ñÔÐ+:Òh”Cò!=~”õü}^;ò¶²¤ô€åÐ7€‚ÛnÞñp õt ®–©Ó¿ (÷Mƒ«±À¯ú»÷ƒß‹«Ù~ª†ô-w"¾¹¢°ÃkH`|ÿý4:œêS%Ðe~Ò¶]€ºl+hÖ¯s,ô9`<û†‡ ëËI¯2Ëæ“J > ãîÒa%¤º!Û‹¤ø¼pwÙgÈÑ>Áú¯Vè1_¾€ü‡·XD뢀™r#ºêslŽC.}´í$€3»­|"R£2uùÞ~¢å¨ %V–볯 •0.¡a/¼R»I}µeË'š+NȰV)>²äu žËP¾®g:à$žW¤—Ÿ¯·Koã¿úМÔ,S ó´·N!m\…¥q JÀ=Éì øÇi¿ÍVnúa]ÕS-ÃvÍ'.‚¼­Þì¹xÃXË »lìÔânhtš†Ó XÕ½’¼?ü§X}!³È=5\km÷JùñËéL¼ð?NÁarwptK#{ŸpÔËØpÓ`¯œÖ¯øÛÍéQû„SR|òÀÜ‘Æî¬Nëìd/Ÿ‡õ×IDîü4ñ ¾fä>F Fc˜™Yi¡A]N_Ù+ýþöýÅû‡f‚_Ó¿°'v‰o"°+{Èã¨ÿÓ*ÚúÆ ¹B/— N³Ô½ª…S&œ-ÓŒN"U9œˆ·ë"¯—Ž-§®)ôÁé÷ÆØWO–v|«Éu‘þN:5«M4g5­SU«LŸ–˜ Àö™|™nÉ—¸â5+Y/aÑYj‹„(I»ûF^AÄú.ßóþ´/"úÓFPãëh®©ž´‡ºEj„ÔW²ãIc0Ü™´‡àK<æåǵÜoü° ìs§MS1,µm°zéO¶¬ˆlãcý±oüNx@èÂô”2£ut×ÌSFæù”ïÊðCS"ÜþWœÇC‚ƒÓ©à nC%¬ ,Š×½œ.]Ðá`¶Í¸l›ßäà $L ïÕ’vl ó]àtrëU¶’¬3ÜtIjë<½Í3öóô0œÓbN¡ÏzÜ÷/¬2å/ÿ?ml‰l£ÓË ÏäêXvå‘2%€(o¶Tìã]è?w¾p›Q 'ÊVÅk-™J±ô©©¼3ͪJreËܸiOMQP 9_‹M!4vø×ˆ ™´ù”uã °À¾bß÷Šœö¹A3s¿ãó‘Xao艌üïöÒ•°ý^|QÎ…ìÏ?:Hä«Ñ2}o‰½˜òÖRýÁÃú ¥Âj×kÈ'qœ ¯HV¹]”« ê/ày=ÈZÿXxS1YH˜¼M& mä{Ö²n]%üíX„Ò{ΙÜ7Sp%vxøX§ƒ™I‚å˜%¸:«…/tÀ ×K¼öBd |\2A:w»’ÀÍ”|ÃÃ_¦’ì½åˆ_õ=tˆªó¿¨í#Ò‚®‰ã¹Q‡£D–6G*™î 7ãõÝbf!Øü»\iߨ ¤‰ÜœæÛüN<Ör çGiQúìÅ\71v ¨ZòMƒ¾%¹“‚¾úƒÃ¹ó˜®)éÓÿÔ¸õ$¤©r&]ÔÅÌ£f|@Gž¬± Ñ“C~1rIf¯Jc½?Û7[Ð:Áù¿3ÆTÜoÉ× ¥ÞÆ™ð‡–-¬¢Òº¥ÚB¬/tƒ÷ljØYI)µïRPÙ¡ÜJé9¢¦l“p˜€G¬dVx¿Ê]·*êEq‡™?õX×åçèRÄ€FÏÎ#6ƒäC|{`®/¨|ót[¡yÂT+¸ãÍÑ)ÓcØáb’Ô䜺HHžXºÛ’©Ö/²Pÿ*AQäÞÂOåôTçX¯yü¯ãRbLå彋—ðÓã»À~µ8zY4J£ˆ³åÃG¦Aðx\׳º£j¸÷{nˆñš€lfٰľUûÕ‚Š’û{b#ÎYCà@ ÷€´¯ì›€í›'äÉÿuNÊ$æã>óRmå"=²gÝw/0]p+ ’ý€‰,¶FüFuE`£z›ŸZí&ù4MÜ1@MlY¬gjžgÖ[ÖgÔÎ?Ë"| ë¸[Ú^¾FMhiŒ¤?ðHv榖ï•`ºÈ ?g,z@Þ.þFÓÛ£¶lcínjÚ:¥Z¥wùdÖµòpØÇ‹Ýª´ËhæºBçÆ†á*º|üM(:¦È"ܦ”r.Ôˆ‡qÅ“X\Ç]5­¹ã‹^Y¨Ï>5"Îy«yΗr¼k¯{ciQ!E¨³îÎÚLå4ЦÎ|\ž>¿ëY™Â­G`¾öÐ0ôg⎣æÉ"?-H’Ýàò lS#òªw V£Tî,‘Ç“ýmüô³&Â38¥«K¾d ¦Æð Œý7×ÚŸ'n“»®€i{,~ȲA)¸±ÏXAhæ$•Qló×N4Ê¢ _xhu.¥)1.¯‹öQ+Ï ÀD®ašh ¹Ë\<[ ¨î-á™"GL“]IÒMdtÖãüM 3ô•œ¾DﭳɠQ Ýqìõë-µ-÷sGB``&¿8Â}ŠÒèãäÿß]¢ùE¹d« Ÿ·ûÜmî­ÝJ¬ˆ—ª,],çv¥1Ñ-Ðņ›÷¹÷âøÈ áûËvqu¥ÜÛÆè3Ç&™×øŸÇT^“Ò©Îwçñ© VaE˜ßåf5e‘ç,;ñMåèohöýŽ˜ðÄ *:þpô~¨â0 TÅüÖú£)[7ð«‚N 8ÉèR°ÁÜÂÚ®›Õd¹ .£èy%„Ûœ¥¹§u"Æ"$­ÏÈÄ8ñ/°ëøbY£M³uÀ>ÿªë®Oº]$í”õšÐþüÄ¢ñ,àJ$øßsqö•ÚUÁu5žr[y¾=ÊD¹@f—€Çq0í»™³ в:‚7˜îVBúß™Õ6¥q(F²– ;³v×JIÊ”›ÒñV®–xh}W$s`<É'Q'·2õ0Në`tàÕ<¾r±×¾Y`Þ´9×V   Æ°ÆSæÝÉx(‡AÑˇïć>J*maµÉtú¯¨(ÍUš$RŽŒ!X÷|#/ÓX€6€ßò\hÆedJÒ뱨ǚSI0’ÚQ4ÕÄ¿c»Æˆî‹_?1RR©Ùög”š8nÎÌZ)f˜‡cŒþ¸€¬šÞÔ¾“m¶”5Ú‚¬&è>ž̃V:³º%«)h¼’Ñ€X“Á.×$½[*"Ÿj^Vúü/R?…k²Ì¸OswzËÎD">œ,]…e¢º‰t¡…ðqB&SŒ%$¸bS¤£æ|¢ÉjΑI`WÖ ÁXY‹~”Xñ^–aír‹viU’f{ÿ›ƒlàÏw hºprNTi€önÞüËè¥á>^67¶DïàÀ1§?iº*jQÀ$·òhb4DŸ±IÈ‘¢ec.äÍÀV4*EsÒ£èØþ5g8/Ÿ>ªŒá~²ôŸX—V#év^Ç%Ü} «/%*=ÌÅ¿® >×Î`èæ00†§>w™£_®ýx­uˆAãkR†ÚÈŸ9óÅì‚6¨OÃ{ëX‡à,’ñuì÷!5>A¡xV¯Ö“#1Šç@B,˜s ÷ó¬EMv´¥ŸÒ™Nâiñ›`œ1*©a˜íü]]ÏMÊh¶´~¥—¦‰S,„GPzÖøús”’ÔÙGG®‘%቞4þæN‹ØkDªt·„¦šý‡q*7Ïä"ÝOËdåÃ5#¾Ÿöf%ZMª… p§†ô“äWÞô–ŽQAµv9:ZÍn– $¹:—Õw'p»CbûÀpxñéŽV]_°ú<Ý n"žâˆ 3˜[Õ©h0”8‚ö’‚hðÞ® ( ×-,2 (¤¥N8"0NnmüLÖÎl¼H¼ü…©ÓùǾüc×)ËÑÜÕ‡»ä¤².Z…Ñ\K;&õÈ7>‰J™Ôå¶ÈÉ!² N iˆ–ûìv¾ñS‹2à‹ïb]*ûÉšÙ,°îá„2Kc™þxâ!˜® ­;I·î•´+œQ™ > 4šzA|es„)â`ƒü,ó„Ü _‘k,«™n•èkÉS6ðÃ@WÒ¤l–BÊ1×&o:öÓrÙv¡äÓFò"úL²ù¯Þ9<WvvXk:è¶v•Mº3Mx"#;þ€ß­[¨ºN[ºáâÐzY‰XcTI2eÞŇ¾S£ œ¡ü|ª¡þÂPKk=ßBãÑ*êhl© „GÙØF¦ÖVNÓwÙ¶?SNÌÚ™÷šZ½ayxÏá±H³T:›úªöÁÂHÙ4__Î5Ÿ¦nõ㊺Ør{ÔD䈹¡QÉWS‹#™ë¡¡q„¶ 2ª8›Ó¦Òä+!°Š3¹ÝíØ ŠSõ€öz/ Èâ9ǰ-EYà—xêdðßvCòrÛÇþŶIøn8×bª=q*!ï½ôþMšKáÅì}¡ÓV®MÉø”EÌ[fBõµUD2ÆWN®»¬º¹}‘FùqU@,F]æùÓº€Uµ2èPm‚Ù/ÆKóîn ¿âO‚F˱[ù2sq DŸ ¢¯ó0a[’>‚յŹ ~uLäU™å>È6D•K­ú ×éÆÍèlíjÙû¦’E5ßeM$õ:Ã_ƒ"Ç<>5ôJÞ„i€Öìò¹db3”=}P‚™±ØÖÙŒß~ jÔI;n‰Ù†²Þþ•ìÍÖÂ6Ûi¶M‰,;EÐ`¬îüï5CJ”Ò1¾¡ }'ºà¤/6 bj‰Hö ÆÒÏg#°~ í\@zÀy?+üky´;µe¹'$Q“xmX!oÚtMsGÝ-üWD SÁ*¸èf‚—¥Î]¢ÿåÚ|æØT ¯5» b#ݘÃ`gHÞÊ’>&¼šBBVhÚ¢ä[;Dš‘ñÇöÖ+Rð'°š^'°b³KNÃQìD®ÖF`NÓ¡´UÜ ®z¢QäHZ”Û×ÅÝP©žÙX©gšÃšPi´~áf¨¢'’h%ÐCñë`è“Sc õc#6‘¼¸ø$ÿ¢iü/V‚Çl8ñZFCŠé#=Í îÁœÆ:r:dø¥r“§[W“8îþ¨0ôt™d<4ǯõ>?¥GÌ™z©ܽ?%²DŽéë&ß9œÃмhÖü¥¦À˜o_¶®FAãß[ÝÛay哟„ HÃ:&ZØwJèñC1o=Ž”j*÷O¢ñ6ëíÅtP&20¶ç8/[ˆýV¯/€Ògáe}U8Öøâ7wß¼e”‡ ºoJ™pŸQ%’K¨ÈЈ¥¦‘Ó¡ïd>[,L²Á+P„ëýCW1Åê¯RÂì óïRD#ÿÁD¥K3yYM¹B.N^“J¶Ð©¾ü±§±Bš9¥ÎâËÖ§ûtÿ+·Bn$'ô*V ­%`ï]´ptÃL‹¨þÖÙæ'<„Ù Ç‘×ÿ­Ø~²%á&Åš|³oéf ÒËR¶$—4–¸XÞŠoв\µë·¤À,ìèS ºÌn·ùù¼äÀ'ñIVûý,î!C~ëü!)j2“ejMdûÝ‘²3%SF)Tœ÷¨OAÐ%»;æeêgªŸò¨%rn²<§†edÆRˆ–¶9†´çð›g‰up3"Ö!qʳ¶üž2Jñ+E#‹ß6!¡H9#öDŸ)v¥HÛ•ˆ£gz²,øsƦòŒÒùå^þÏcFy€?º ^~>_%+lÈ–Íþ¶& òöœR‘æE&š×ŸKF,ÌÉ¿a¦kõªîÆ­rñáêãÔ©’G®O¨òÉо„Å5!^KNz¦ Ä•¢ ˜„NwÕ Qö$6߉>êªU…6ØHÊÛ•R¥µwûdtáÖ÷ñ'r¦¿‘ù[sÎ.¼„pÔÚބϱÁ·a扚³ºù\$ÝØ@ÍKó>pz3GS֨ɝ3 æéjÒ–†{²·3p Áëî \ iÚüM+d»éNÚ6ždcQêªÄ’‘òm O~…mÔN>MµeA5Îl¡üº«ª+^£ÀÅgÿú-ŠžÝ±ÊÖ`¨Å™I¬LÏ$ñÖ¥—aI©…'Y®_+;·ÿ¿( Á¼ûs2$1Qž‰ AU…W"ùÞÕ*5P+`R[/¤«ÍÀ]è°Ýz7‰C'NÅhyWÓ ¯:à%D¿ÊYé—ÎS 0u3šl„áž}ÙÙ' Z%µœ½(µ·¤y!«°_¥~~üo“¾5Yj¾Ð2“¹M\ÉFSãI®Ù.§•Yu–÷×õÝ`UŠ4æÒ”†™19cÔ!Þ üǼ²Íü$nŒ1\ªt«¢[S*ÑÇ~OeÜF½Æc\jÓ{Z.ÓO(MWܾ;wmIcQÑZ¢ÜÝVä½Ç.!‰Â\aYýíôúëöëÓÝeÈ–šÛÇùW—¶ýo—¼EWЂŠ|LF££åHÉr#PäÑS†Ò¢„7@•Gر•(òIÖrþj Þ’ª´˜Pkg>6–y™ôwhŒ¸¶C’¦¨&Ôi˜=ÈÆ×Ížšdžß€^œêíÃHgÇ9U€Ïõ3Puûý}Û ³Œô7rL¬ú©ËYEõÈR0h~MžS6î-UÚ|™_èó]âpl—?qUïo0— zýê-ÉÜÖi›×°·s@Ë¥-,Ü—ÌÚ¿§œ`_S(+ü,”7±ðøÌ¾ìßæO è¼–XLx‡wá(fÛó¶Ø&EåþEÖíFb¹šûø·%ÝÏß"JÁ1Ì5î+Ö'æ­2h'é;wrqa_²m„Qeyú²U2έ˜ÇØ¿‡uÊ×$¨Ë:G©üM)ÝÿCÛîÊÀµ$`¤®XK¾ ÙÎîáï T›çÙN^ùˆQèÒÆ$æ=4[¶Ò#× ’ç0ÝÈ6K ¨úªÆJírZ)à‹^J®ëœoÃe_ €Eüô÷úÓû’Õ q¬´8ëH+­ƒ6‰ljŠÝ æ4Áa¹Ê>7ì8šƒ÷3p»ÏÀGù±vÎîjì ®=çCÅËu™Í?, v+>ŠÅÂ@-›VQ~ êVüÙàô²:‘›wýŒsaY¯¦)D¢ç}í.Á†0[•áöEùìHÜᎯlMùaÇõÖËòüL®ºÅ +µ zðȇêFâgÚ­·¦¬ Ë¹¢µ¾ÛÞâ^ Œ¼¸›¸Âé©¥œ ÅÝ1åŠZÈtž'·ñcÅC 8D«NhcØù}0}_÷!(KzŸ–'‚ò¬gÞjçÖLÊŸ÷«Á<êB%/ùîQÝ~{'S¾\=ª&#w%åÔSŸ¾íü%ÚçÙ`¦¼qœ/Þ>_£ÙšùþUe&œ˜Ý— †¼'#Dl1*’å¦IÛì76®á3K:-ðÿ *öhçœNåïäŒx£ìßa¾Å˜5à­7Q\«€×rÞPQ~±¨Fyà …(ëüMZ•ÌRt(몎’ #–põVÍ_ÂäÃ%„ˆ~…JFoßÉàzŽëX{t 7v›ó¤‚À'R•1‚ÆFùûií‘Q¤ %›«æƒœ?‹ò¤{°8jv€>¼†jVé†sï[hÚ‰U3)¬í¡µÎb,âA…'ñÕ“Ëöd \B­^ýé8UòT2®XÐt­&iNߎðqââï¾Ë? œêéÅÛ”W;ߛ瑃«â».pÛ¾~‚Ü:W.—f!á{ /Õå“Ì_¦ÁÑB¤1Ÿ¤YˆEG×…÷p"Ð<}øìø;° ¶:üLª;¨¤.Rµ½â@´Ï¿a‘U½aà‘¥<¼êl–S«>ü]1Ç0c‚Ìó¯ÍÁž¬|lŠuF i$@˜~bÆê.šäÓsºŽv»z׉í`~™X9ç“+ŠÌkMÍHµŠùüÚëßàùWeœÑØ ª™bVæTõûùÅÈ!E2þžíù´¨R°g–úÖ%úa›°P‚ñnúÿÕ'Ú:OõèM\Ž'¿Ý©}BufYd$kþË"âNøßæÇ&\ߤ1dŠÍÙ¥^ø ÎÎÑ“£±.ß­Ìó £)‘† fQ’ÖdüM ”æA‚П›,o,ø–J©™T—û¥úµ©ÃC$ù›_¦<cJÐn7!!ýL‡1B‚#ÿ§"”Ò ÒÛx”JžH*ÛHC·aÐ4!%¥³oóY!œÕ‰uØüÓÏ=»}©0@B‡:€™[#“šÐÁúRÊ×¢>M;uë‹€—Ž[{‘çÙämà¡y7±Á›-”Ï2·k( WoÊ›dæó_º`¢p˜R;Ý=bñã¶œý·ûRFyvE%î¸0{s›û€–Ê ô•u|§æ`"˜EŠÊ®W_Îþ?ë£0² ŠÓgÇ×—Æžk…ƒþÀ›v¤¯AÈGÉ4&ü6[ÿ¢ªÆ¯:$æÀr7†S‹JÉ¢nCëT)óçôN¸öG¥ò(ÕŒa᳂äB}l7±ÚÚ'xÌë×W<*”Þ¦œLjXP­ÔÎjŸ&ƒ©-€°ìعFÈÁšÿUjÞ) «\RÏf]޳ãrÛу+|<˜„.ôÐÿn?o“žºMñšŸE_” Î"jº‚\1†\¬¨f踷äÍPÖfpK lЭ7Šxœeèõ=„ˆ~ÀÓÒÎ5+çotXf€­‹ÆdÎzŒ¦FVà­@ÏÉXdîÄh—üøà»1ñÿ„–[ÿ;äV‰ Ó¨ÖKüLÇ£0 õçql–×q¶’Í™ø,€– ó«0Š­B&ù¹4à…„O%'˜â䯊®€ê5éƒÜMÁÿÌL㪽j¼¢åŒ"ž†vÀÕc†SôÕ“KˆœäR‹ºØHA¡¡ßç ›®cgŠEcËìûszT™ìÝ&Z׃tPÇQ”rPõIiÊ–„­Åé*-`–‰IO’;®çãÓD{]dã¹5mf2C…J`šÊu1ÆqýÒ”¥=^YŸÌ‡}+‰ªôऑRú‹;æ>Ìo5 H± Æ{ ü8zåHvzpÄ»žkj›1™bÈòz]fÀ}-ZK`÷`7$sp%ÿ«K,|Â…VÜ'Xü£Š4DÕ®ÆÜÏ9Óz' ¬¨f¦X AîLcÄz.ÐѵOM0OìT;¡®Hq‘«w æÑ·vü‡ÎÇ)Rié8‚ úeìl[êÌ À÷Ê[p(ÀŽ©3ùqùwbicÚkzÊ* 6¾»úËRšì(©›j±îZÍ_’¹oã|¡²³Å&µœuFüJ—ìïV±‰ÛÕ8ìûùƒ .)déà;ÚÚvB©ˆy­ uYf«Gæ[06ûÕ13‹_¹¢vm Á Ž¡Ì”½Š~ ØÇCõç§ì‘Æt¾¶³%ÞM—‚Ø¥þ ¡s[åê#Zžõp¯ŠþR6?âò•ą̂¹F‘ÂC>$}Õ vÔ^¤ZÞáaµ‡ÏwÏm¹FûÂçj¸¯OÍÀ¿ÝàÜ»ACgž¤|rѺýaw·î£²|³RRbýlzeVgb]ºáU¦FG- äê0ÆþmËX¾qšñJÝ‚&ª4N±üL³ (…YÍóÌ“àÁ㿆0«0üCS …èí ć‹TKÈšl§&|~aÀݽÿ,{íR-ˆÍ·U;°ûa#±ôïíï[ho¹ŸÍ4Ó7 ñ}*“:ø¶ÜÄ ™Œbýí{“d±È„#UË| Î[ ’ÇjN<5ì’9cyuˆÔV#&!Þ1.×]ù#Èz^Ó`_ÓÍÌIl«üº¢%ÜþÆ/Õ¾ö;4…ú¸Ú”ä{ZcøVÍs`Ú[š[^D¾É”tYÂ×# i Wåëº)á»üfLUðÑ=¥þ®—$îžT²ãõ”Ó)•Q,`üÛ}†K›òÏ›Åb¹èU} û[#õb[Nl5ÃÆA†rp^IFî xÔì¢îlTm]¨~öÚŒÊÈþƒD*\yýs]žW´€òo>ÎÆt§ 1ëêqcœF%†Æ££G\Úmu=ëI糸gš²:!i>ÔŸ61 &±cãfŸ%,é yÀ­(©”jô™ãoÍÛ*h;m0·Œp$ÐOjªa‹òòK¼!Pðs¤^²eÏ"Ø?oqy€ý|•©rí®lr Â-]ÎZy8!®áç0Ùš( -`vP‡vãµ|ìÐkO 縢ÓêÌôÑç²)Á#¼tR¿KçŠoüÛ¸ôOúyòzh£ËˆqWøé¡ÇÈÛ òÀ¯ä!˜Ø!N7 âŽý®^1(VåÈ×ÉÜáÈõWßöÝ=üI\BÏql\d‡]÷ähO@_±+,ÔÆ^•¨*`žŸ\帰©îÏ øAwg²k+ü§U¤’ áfcö'ǸY•  ŸwÈâÇØ`Y{‰!¿¸MœöÑï ‚ÅÃ9õ¹Öˆ‡tan^Še±fÌ&1`§ 8ezíçg'‚:µ‡ ,¼+I–wž Ã(¡ˆ9žêþØžR˜-f¬²Ôjy@~:K0uw¾%bTEâú"£¾jÕM8ÕÅwšÇ oüÛ}èŽò¦Mj›‘âoò‘7³êA15t¤p™æC|Ï:0Õx)˜.§†½ø™³î.¬T „[a^¿jþuC›'I×!Ž.¥Dmí÷e‹u| &œüoÅi`Ÿ^¶ù¦¸¸É`óÈ!Ý |Zó0ººžÃ%EÊÒ°/H\¡„†§P¨R=j¨Î`³($€Vß!Y´O‹Ûj¤”¨©Ò”kB·mëEãZ÷›”¥\2Kª ‚R¨_pã¸ót KSˆ¦)xô¶$ö ¤“k>(·PqëÆ*ÆúRÙúЧ<öQdû^ä=Á.B~úàT÷n>"ƒ eõ¼þ§©hìèU YÓ¬¥ ÔlG¡·u¦Ã¨;Êoü}a•Žè›‰¯´«»aæÙOqøSR@ÄŠÃ)ò5Œš3ÙTlñ“ç˦‹Z«ÔOŒûwÿ‡—ôùúHi]‹Äö/@\ƒ Âp¨¥ Œc¥{*¿Q*TTW¦õÆŸÑ׸²~4݇¹qp­}Q5¹½ÖËçÖÐ'>½B¹£kÌÖ™ q ‚ zUèõv—ôbS'ÍIÇžÂÑF01¤Þq@*–Áuµ£,×ÁòÎ=Ó¶†‡`Zz9– J'— ~޳â›<á„é[‹iб¢~î0Ö›Zî3³j·Þ25ÇV¾\hË á¨è˜M6¦lƆ~KD rC½±VwÔûPy°7M(¯¹W vå°>KU$ £ái S=3ö%u§uίkÛ Á¼[Æþ¯x.)cUÖyû"  ²[žZ¦+ªytÞ|×'D ”ÍöjBeì¹ [g•–`¼Ýÿ;ÖNŸ‚Í"°! ðJ§ËR+×ÆÞ ÿ@ÀX2k÷ÎÀ¾ýpô¤œ÷Vtûæœ)Aò…žcä˜àúüM*S<0GŠŽ­#XåD¯°^õÿ MÂß<ü|€Cyo²FOjSèsJ´1•ç|´4”" óíÖ§ui.ZLi»÷^ ¦vA(‰‹ÆQzÌÉ,O¯K*7R¤ÇÑ·¿ì¬ìSyÛZד5¬B)a%îqI½æg¾ECU8S¿a<¸?~®P RkéI½à*¹va°í–ܬ*ÆÏ²DNî=ó¶¯Â/ü§«ÉÑý"µÈ VbÑõ®âjï[f³œËèYñã‘yÉvÂ&*ˆB{5“—a•ü™Î?A–¯@+xIËÑåmë'€U]×üM¤8ºs‰í#þ9=5üÓÀ=z,rPev›îVß3—޽ó£uÈöeL¸ÖÎ+B-àï«§nš±%Ïð‹å#Þüݱ~uIýO$_?h>ÜÆ98óµ×ê²@s…ÞR ³[üUŒG}©r¤öoÍ6`¸¨ïë°æí fœm2¼×Ž!u©_Óû_°Æ‘8\™†tužÐ…Dʳˆ-;¶d?í*XfS˜f{§€j¡ na00äŸ2ö7Ehð¿ëzšOmb ÛÓ‰ª´œ¹Á¥˜Ð~ú^WZ<®ÑåiUmÂPŸ’Á¬ˆ ·Á_cÇ7ÁîüNKçdO)ÐÄ=rHøæb­XÍõÇ;ÉG—±\㩬ƽéCŸþÆ …i$pÄd'ÍâL¨fÆ ÄmúÙàÿ±$ØRÆ6˜ Tý8ÔÏéU>;PÔõ“Qè6ߦ·!—4ÏgUŸöqê¸î<æHãØ˜G`ÎV̼AïøŠô=”ZÞ\9(\t¿1—–º/lÀ(TÝ@¾u]ahmÆÏó΃z@Há ¶ÉÿhΆh§uU¸™&b¸þ©½È£`ÿ˜NN%Ft† Ö¸L'܈‹EO„H+­ãXæy´§' l’KwâŸY”ºv©e¿üðÒ˘"s.žwjždK/s`k̈÷Dç2Ôû=»*œ*ÐçâñB–UËx²sSàÓ„ª)[8%*I|ônX8cUÏ¢Þ1@§ymvLkW¬~å7Ͱ‚¿àäj²NòŽ÷öS(H*†^ì fÙÿÅv:ÓŽ“FšjSY ŽëÀäø¸zH!N=”“n„X^žcÓjaù"œgÕö8ª­“ˇ¬SuôÃW⑜BÚŸµQöÚê%W Vйyï61ˆ}³í2“(• „˜r÷¿è‚è‡é®­@÷›E!èÌ&EfpðãþòÕû#T #VBÆÔ©OggS¸ ýÄ nêúþEÿÿÿ”ÿúüûÿÿÿ¬ÿúûÿþúÿcôöóÿÿÿÿ¢ûü÷ÿýÿÿ¸óññóþÿÿ«õòòùòòóêéêèðüL­åÄx~1öŸ|ZóãV¼‹ fË¿¦r.W\t/Þšˆ Hlh )ÊPeÇ'Â?µ±Oa!z/5Â6;áÔð¢O¢3rÂw”Ä öþFñ]¦v_§Jg™ |HúS˜.SXë¡õu~]ÚÅo0SÙÕU¿ZW: Z‡èm…@‰ÿQ%H]bŽ4Ül×¼FˆavÕ&ùéP#ž‹„È6è=nj.  þÚ‡Ûr2^³Õ\OpKÀh š&,"fš4“)Vø¯ <˜9x‰šo»çëÖ•ˆ$€>’¿”,†ÉB¡á›Ïß!vg…›­‡þ¶üÀú%~FLv§ yü±¹MЀZöË ø‡d2`²lªë{R…F8ƒA1© £\*ÅÂu÷VÚœ>¦ÛW=âÓêk›/u‘–0€FAðÞHð–CgÞ8“G,\v ‘˵ӡn ¨¹B×ÓWøÿ5M]éÈÔ©›g„Ðòë(60ì¿7\é[ýñCÕ•HP¤P÷Äq¸ê»#+¾çò#°ÎY#AÀÊüŽ«¥˜¸¶  ô :. ÆÌÉroƒl%@¸ÁNøü°û1’|//I™>ï_–¦Ê;1{lõcž)¤‘çÖ˜ÍãUµ¶Ù£†Ñ·ð,?¨fœô~è¬üpV¥™À“¶ÓvïÓ)]¨ÇkÑ–/‚!“œ–k«áˆÚHí9ª4`hs;áa2k5ÈÉ$™DÖÅwÐ…kÍ©ÆþßÙH‰KʒĤÿÏ>ÊðxP°j®ï°©“Óm¿ß¦@†{a(cG«©ˆJ¼_á4ð@ÈqŸ/æ¹ÇûÈÔnÛý-Ь†À6S !â{KŸ9ôWÖTÉ3ö쟔ÿ0„ϸ¹Ôt‡a>#=mžФæÓ$52– ùËnêŽzZ2E¥ÁGƒImÚ•0’ƒè%úAá1ÝV™3¾0‘ï.™%ÿ•E&HÜÅh‡ÇQ¥É]©¾ƒt9Ń/ý¤7¼"¯ÆŸïJ“º?ï$6Â|éWù4°¥OJ/ëB[œZ´Ô¨/šØ!~N¦Ÿÿ7À_à • ôcÅØjñ¥Z?ä<óãþãŽev[Ÿ ØüNÖÓŸï0Ž.ŒJÆey&¥h‰ÌJGµ±܈\Є^² D`F«ØžÒbbuÅØ[@‡Å´åµ8ÄúŸõ¬ôBºHŸåwÅÊ›‚?–ÆÐ>¿dEʸϭö‘¦¸<ŠqaÑE°ª’ŽïíHn6(^æVFí|œ°îÉËS'š¾ò ƤtL¯%·ð1_=¸ÌúÛÇGtMÎCûÁìYúŸÆ¤çœ?E~‹ ‚Ð+½è ²1ut‡gðÖ(§÷°–“kýDyi_Q³è f]Ü£Éf)Å!eŠÇòêcóãΤÄ_¯rd’šÚüIé—×qNº¡ÏNüM"ºÛIž;‚JlUçá[¤Õp ñŠ÷Ý߆ §yBÈ'*@¹†®6¯øLŠ2E%Å8Õ)ÇŪ·¸‰bÛmÂÞužü†Š‰VD×ÖøJ9¤¸»™XõטåO@ŸÍNø½~€¤ØûßÊÂe£)Ê´ƒ¦=ëžkm ¸Ó‚q¦‘ ;[H×HP•á ’{ÇE2«úO˜Ží”ê ð4´ÒVSëdÚfº¶VKÝ·Õ¼¥€×Ãô‰HUž(^!ȵ颳î]ê©Ò›Ã¥YüjSk›§ «¹äy–ƒn0¦[\†¤8a)½óx‘­GìíÐ2½ü¯1­~Þ°ö;ÅØC¹£BDj¢„¨¿}–>cÑ.4ÉGƒïû'V\å9dIÍŠ:ÆøöS…©wÖJærÅ—T¢05 k]&f v™â_óä=4õ¯{FEÑë5ÎŒ„V\€o˜£!bvµ¢6ÜØ=7½764ûsë˜$ˆ/èYÅ·”zÂeU0çæohü'õ½¯ð¢ùž¥Ï1á( ?Š\Á'Ù¹åö%Rgû¬=MAs@ÍFû¯4Ê ÿûå‘+áÉM7‰ “ŠT'?¬ÙVy2PUaK ‹Üáe´Ï6DèNÔYö¨ÏKTQR¡¶n{ü²SÌ«¼òt¨öµ0È* ”¤¾FÝí¿¯k©úc>~ZlõžøÝ^Ñ@Ìa»ön™5ýA8¹Ù>)žkWÓIvîÍ. ³îF/°à —/‡áì¿9¥°©$²¶ ÞùbÞ(•Uÿ³ëé9Az*©U’Æê…R}£¸2~®?œØk<ó{8l=±ñ±*;RˆJ˜@–ôÅ•uÝ~*ì>pÁ€â”›èåláÂÛmYU~ )ÝpìÊV…á_)¼HšOôe‹¤qjEžÝ! ´2¶û‰.¥. 4˜%À+6 gWÛÈhìúÊ÷}}ñáç£7F] {ü±ýó‚A\P'f™ ¼cÉ_†Ü>HzG]ÛœWâþ v†s÷@oˆÙûüG\uy‚ö;èüåTÛoüŽÅW£˜à-„*èyÏ]TÁ¼“®‚3¨™|D½e-*1“Õ} ¶Ÿ<¥vÑSîhï,—¿wüM3ùGX™éO3ÌÁO/L_©ªí:­ÞFR 9c•Õ*ÔÊ3‰:/3WEG{:îât#Å”jáU5VdçCq*Å^x!ÿ43¼[c5È B€_C³ÿë>Ò­Ù1—Ï;BÂÚzÔÆwoÊ÷dn½P„e»d‹>³ÃšLðÈ]–à ¢ä×û°¥Ÿ=é,>1x„¬ÃãÕõzˆ Ô°Äöbèç+ÏÍšqõI_õd=&>*PÎ%绫mÒTK*]ŠºOÇ:¤~9m1k¶¤{ü|¯ÙCOÒ/K-‘>'ü_Z}ÑJ$…¡W"«—îªñÆØúÑë3ïCZÙï''9²QJ7"FîRDT«)]ÌëJ§[ ¼äÙùÕvu3'Ç+ìæ¦Ûƒ™ÓÉåï Ù§ÕîéøOôÃÜ9H{d`°ŠRbi¸ÙüŸqÒýY.¡~CÑæký¬9;{åçmsl;—´Ov¿ÇS¶Z×õÛ–øTÀ«’[­V¿Sâ¹õè–üÄ̲ B‡J˜¨:@?¥ „…)QOt¹Qž¢Z2n7¢Ks•ÚßÝ4]|k­ÜŸE‚§BX%©è«d¿ÿH8š-X_š¥†-å!íÔ€ù£ïæ wh¾¢•{•Àz„ÒÌ[!÷»I †’sóÖ,V}åìu4qœ?{èi‚}“Ú‡‘"²Ž#ãÞ\KÃâ=~»®}¦@ó3½4ú¢Í÷9«6Û5CG“æ÷œ¬q6 } "hY™í??Ô2³£ÜÇœ#AÁ´)\r§6½JžŽb5¥S³Áæðö4ݳ5_á!TS`Ih3´»üJ’b,8þñ\7àÔ&àÌûÄ'“¯s*ã!¼’ɹùÓZ/Øh·ü€^ÐsË?ǰVM { UÏN!ÑF` ß.áš­27š Ûßo•a¿³ÜÍŒŸ»ãìÏq#cõ'û%!S¹søÇeÇåå¯I¥…qlÕ(ƒÒv¨x²Çï­ÝÂÂFI&6©$íŒã9ÂÂ`fúºXŒRê{·ústÂé)o”Ä™2éGüZÒ= SsƭΓnqvps!»(ï¼ %Ì|s€Öu”•¾Â¿ÉDnyU)¹˜óJúwÇG4çjM*9ƒ|¥V Ã×jqÔô³ ©1˜üJœµÛÕ¨ú5«CÁ9]¾‹}ï<[ÿwHL¦‘(sŽÃ‹1f~†ÌAœ*“ˆÂ‚Á‚fIα`Èb“½˜¬ÎM ñ„lªÈ®§ÿÝ6íá/XõbX.Á+¨}9˜ 0Ô*&&2½†i‚#Ø38ÎWL5ûÐhÅ ý;˜šµ}ÁUÁL3RJ@’òã§½÷wëµ!ç;V E«ˆRµ&Iÿw…ÛéžÖsq©eBeT ©(,qn ø]¯ïE!‹NA,}|Ê~Ô Ž¿ñŸ®!_>ø Æ*ç…W`87xË]i |xþã÷\ÝZÕÞLBu)ErüIä€è@ÐîâÌ~ÌÈ•|x»srwÊ0PNd™¾x`8Á¢*ùÐäC.ƒCgûìû*Û Xèã¾ÁSõdn%“6Š$’G¶ï« Üì džÊÌgD¯L[&?Q;]&S*)iF ¢JW š¦àY”Æl‹Ak ®þ`âö±éÈ.©ôqôBBéO¼»‘ü$¤Ú‹®[[F”^Ø^ ¥á6sуϡëîËäô†„V#vҌɔØYë$  Ë«(LP*‹ü˜rŽâÍì…LvÖ[¥¾YÕ™]–vYz[ªÀ=} ô§íd?‚§Ð¬È0/ÛÜ’ëoÂðßÿGk‡ÖÕxüÙ*‘L%³7ÁY¢™ÿ.÷´U¶&—™jdy‡#KÝÏÓõN!BˆßôÙ=øàÓ±˜\€Qä ðßéÁ(©!Jëø['ãHþÄyžSít\üjôfe«± Ø`!|¦ þ’€4;ñMZa„»¼ ®óUs9þUE­W¡l.SÛÿw©Š•n_”:·ä3 t…¡\V¸ò…÷y“Ü$àA$ É¿š«ž }º’!È÷a®ç¶ “ß3ûüë@ösŰbÈDT'`Ùsû¸þâ"´Ê£ ãèJá„|N£±2?'¡~#é4ÂÅß߉ŸÇ¼¸ÿÚb¶-õº“Ô¦¾ÅòAíFc|ü«¹2¥!4ai:l¯ÿmiF¡ÁÕ 0O"æ…4éý ä{|GÂI‹©ìÜÎ'náWbS†EÕ›*2L™çóRÕ?©• F#Ñ*N"6ŸŠ\♞4¬ÞCüÉ åž²È´°ðuà M(0G`füXMˆØˆ°û¼\›^?Zƒ,´ê¶ñkmˆÖØd‘M_;¡,6ìØ*¨?[0:0Suf•Cƒ6⽸ÍJå½ÀYF¯Æ.!¨>|Î(Ô̾|éßL;Bœ²îߴ4¯®pøEÕ¬g=˜Öž°7åódí>sÀÓ÷ºì÷»ýõޝApͨ§¸<ÄÄÌ‹e^øƒóHúìá¡(ÀE¡æ}Ù^Ôb™)õ{Á°Öªëžjh^ÊÆ)Qs.f+ÐêÌ'"Îo»Èßù9 ;¼{:dÝ‹ñýT–4&F÷£^Ã;Kç. ÁüL°¦Þ+¥ ·ÄXìNš/c§*qo¬.?"á„HNwÿYŠ)d]™Ãˈ·T öÜrj©^_7œ›še¶ CÊ ãyE|¦>ÛìM8Éw{ÛCÐmN=þÇ-Œ$àîÛ>xÊ3‰oX%¯?Œ$1¶J 6à2;:§ìå—ä7ïnÙö†B(Ïêâ–Z3F;ÔT`º.}zãÏ6}Æê@½©õwÌ;’±N1+üñ² ÷.klò%è"ûEïÖ›¶í“©¥–IXþŽFð@V_øÞùŽPF¼†E³ø&âk¸:ë|Î*À i"_•«<¿³[ýÞ|<øó¿úxux´šMÇ7Õ0È…ÖbCyTW\O³Á­ß#-K¬ˆ¹ûÏ-D-¢\ïF»Xüˆ¾À¼Ûà}€ÒÇe45i=ìëv‘Q’ëOyî*fqý…Uùßh¶Cç!sµyò)piÕµ¬V¦Œ]Aœkµ7'™Ú¢Áz[æø‚¾œnŠï÷uÈp_Éj'¥ÒIó¨}5ª]7´zU²6ßüIäÖË'Åf1K«ö­YQ¨’Ññž4i݉øzþó;dží>Tá9Ý='‰c>O]@QJåù´¦×]-,X£Ø ÈÝÝÐŒÈÓÈÁ)"z“¯É’ÖÖื˜U$Ö‘ ÖÙø>ÓÉ$¾ýó€vÎ0‹/q»öø[¥CŒ3^Eų>Kú\1Ÿ—SR,`ÜDEÐwÚšÖŠP)D^Û84P“ó[Uá×ᯠ½¬[»øüÄÖ.Ñ`ºtÚB?LÌ 1R7ªÅã Q¶í~4óeˆnN£æDCªG<‘x98Ú@±uå^…„} éA0T'*—Â4–€ŒõÔtüL®, &¤ùGX¤;fgõ:3À< x–ë‹á"ùz|þÀ “^4wÔ£”-ŠBÐIñ‰Ÿ(L†,äé fÅgŒýÔ´£ÝÏåG§„rÆÝéÏ»¢»“N-¢Ç’wT÷µh9Ü ||š›ß®1·IŽsÆìømáЋAS”nUm!wV-‹.aħ¤¬†ÞÉRêûZ¼;ÖÞó¶f‚h;N3XLRëÿÀøE`ù^ü⢠ß¼k-=ü?ö¦I›ƒSï£Êki‘åeÐÛf7¬Ev¿56Þß>ð?_IFO"b¾¯tÒr)@3­ü÷­NŽ÷H­¾!ÊUÁ:šV뮥üIs•\YëÌŠ¬ e‚ÝÊÔªb‰”Sx›ÙËUŠúÛì Ztˆé±sShüucßgÕ˜ÆÃô„LÁrNò~<åÊš(Åi÷rc.‰U_—]†ÊE| –2ãML‘å”⨵&5©`³5ƒ£œª3>Ѥdײ±b˜°çpør˜‹o=UÈ8*X[Ì%‚‰–]Ý¥ƒúA/5úù•X Bí„Û™ ³Äq®„ìÜ…$Ï—½(:è”»l + ín!oûŽn•¿rÛCxè6¢‘´qTHž{D{ XÉ#Ð|$ð7fß‹d¸È¹pZH„QI”\¾Ó)ºáYªü|¶Ü`ÐÂOGå3‡æž÷ B—.qÂÎA¹¡ Ãuƒ„›£½kf¤·0›o{lo’=ñ¦_ÂCHå¢Ü—9êJà{þ@ý{ñg7Í øJgü!ä â†JJe¢Ý3ò@z6bï´a%ì@Ѭ™ºÊ2‚Bk’¦ýî¦Câ–`Ió÷‡²Øçýï¯y¤ÿxÍ?5EP¹þæÈqa«öbrTˆ‡9TéÒûÕùò¯Ý…R†Hø¶ æ‚&VF³íh§ÉÍòoÔÔ9Q ½Ìd6ÿ®ODïTQ°j šQ^‰+õå®ËÇ6_­…îÂ?"©ˆæ9×)n¹ol¤/ÇBKË/‰ äuÓJÿ¬[G®ÙQéœ)ÝÀ·hõÌÎ's•@ˆµi~ïݬ ÜTõÊ5ŠðôžtƒÖI–섞Ÿdö9Îú©\:3ÞºFç—ijr’wãaÚ³Úuµ šÒ¿¿! P§ô4ÁSüÅiMŸ-à+´ïmkÆÓB{êßEÅx=ÕÁK(ŽP¬©{Ú¥|51ßâY­8ìøøIYZ_üXI†–×ã«qmß:Ë_«ú(iÊè~O] ËÆu EO (bNëñ÷rmPOîïèÉŠ® ²ô‚:Š.+CBpÏN~(Â:.(—oZŠÀ!Ó"ÙÐ[ŽˆÝ}—b Œd£utcÔwŸ1©b9žzµûõ1#ð( ‘+¾£I2Û¶x2ž$¤Òªhš†'ë2m¦›„±oCœ*@J'Ü¿rP2ìªVìF“2¹³J€6{Œ m ‰úZË\JéÛÖOœ²ØÙ&ˆX¸ø=`Í‚p­¯Õ¬@p!4‘cþ¡0į‰â%æÕð1ÈüNL¥¤YÏ—÷š5MãÌÁ®Ÿ©‹EÊÉï¿e±Š«ór± d]÷9Ð@(+nWåñÊ{hÛ¢çŒIŠ¿» *úû…Sæeƒö3:Ú.c¾pȰôJ†–±• N.€ØŽÀú©{·â ¥œƒ?qº¨ušÃ´¤š¼hLÅúzª¦Žàibs!avª†Â§î¯¶úÞ€ô%îôµ]Rìs¨>¾CV??ËŠÞ{é,ß“ú,p¯ñÆLRËŸ:̨ªçÐëÙn§®r”ÙØàölð½¶Ôl»và©ÚñRC+p÷ñ>”l Ø€Ô.¹Ûض(º1Ê]Ÿ’FüL»©NÓ'2'®áýòƒ{«³ðt¥Ÿ6!LM_Ýh%ß/_)|®a—¦ÍÒƒ[0—À°ÖÅ3ä4VFLœj•ì'”-F%1 ãTì‚ÉK³,Žç,_ªhó]xÎX2){kGß{’ága’cM  62º ¢Šwn™aíü${æn«†!.[ñôwò[üœNšÙi hKió@䌿b»q7úÌ‘&V–®ìÄ¡¹'pË!"q. M©C²™Í¢ýå$SŒ˜’„ê…W9ùÓ¯ÿÖWt̶)“ à-°QÈÇ_³=}¹"Dk›„ïh7]ø½üIö.×ïϚʒá*uŽÐ޼°œçÈeNõã ÂÃî¥w­J/,ˆž‡ÈÉÐû½Š-š_–C-¬†Dü‘o»¼îÁŒ7ºÆ3A¶Q¡¸¹£Ò ƒìmRœGI7F#dø"è!”Ç_k¥t¥8»£91%%;\åÅÿo=sÃi's lQ÷…˜f¦luþ?¢H¿×á×$5ÐSãZäÞTs;k¬Iššé”x5´ïánÝaƒßL¯G­îî¹®[·ˆÈ§‡‹—šp^Ú”§E¢ÎÁí´DŒ‰‹àüãê…êïø&5*püé²ðêr1¤¬x0kâ.%³ ¹6üL²uäEÄÛzXN[?MÔévìÃÒ¹U…©Ú•%ÿŒIÍT‰BPÖ–õË6¥{5B§D ñ— ‹®írSi¯SmäõÍ¥Ûa‚Ê´H{ßÄD-±}‘s| m³\¾­ 3[¨À£‘Ë“ Ú£,vŠuA«£×Þó8•­îm¯ŒKJp>ã-”°” Î’r_‚çŠ-ëvsü;E¬2ù4ÔܯìÞ„òJ¨¾ „ÉWt]ø /²þLôq¤¹Þ1Æ]p¼LìVTÍð¹x¥ÄøÕiWßUðÎÖ ¦¥BOG—ÜåŸ wÞôÛm﫞S"¸è¨®V¨˜ü/^ò‹ôÊ úÏ-z¬¨ÔâTt­ÙºOÄÝ  ªÿJ¶Ïv«jûØ»gƒyÓ!ì¿ ßb{æ–£¨Àû%É-­%Éh¦ãF‡þ ¸O&PyÉh·'Õ³Ð`?W*êOý#ZÕ¯ÔBÞ~…Ðþ*"2¥16×˧¹Äˆ 8að}óßœç„ç5—ð_û 7OKÝ+I¢€{ç£Yÿèy8§€¨˜†’äÈ(M8[5Ô|%¿G‚,ä ðùMSiQšü-‡LYæ â|.îÚØJ*SpÝG*„|68íߨåÞ âd^œZt“‘—œ3WÐÃ…ŒÁ ÌsÕÊf“‘ΓYéù¿V+BB“¡ÅIBðQ›7ÞÉÅ’nŠñ2B¾ð®rçæHè‹Y’Ò‹ëì½Ô¹KWâm€_=½„!¶Ä½¶!O •¾ü꟎“¿F:…°A­ò:Z^·éÖ<¸ª=ÀÔ‚X1ºðÇiRºÔÈg¯aH®¸ ƒ$‰›pDˆh^…2>gÌ*B§€fÔSö¬ªâ}Žxšïá!@kÐ ÕŒþËuÎó¼ö¼,k)fV ¾¶úþXÁ«¯3«ðÒ²*/—èü1€-ºjÖk¦—Ý„ ¯8 NÉeLš®ìò؆Œ®g Úl-n<ç¶ô‚­UÙw⫘Q*Õ3[bVjÈ{ ¡¿-ê¤ËøUà¨8"­gìÊR+0ذƒ`t\!J†{“hhq„)”n÷ÿ†Xf«¦/.1« 2!!„™¤=o‘DÛüõojv¶i'ü7 ’¹wŠªòÞäàSá3ÛÃ6(-¡;}šÞÇž«`29ÄðÉá”zz÷®úøCaÍñÙfÑAjz@ÜÄÖÑžqmï#Ü>ÚÅ·û’éÛÁ}YÓ(9j[g+p®:ëIüÛ·Ë£W/}ÒÈ¥xÖ¤ÜÄ÷ ‡å´VE—g«Ö_ˆ¡ÒË3i°u?IÌbâÃ.îßKyüø_¨ãF$?ûÁ¢·» Q" ¦<Þ…PumÜkæ¸ªÊ &gàéÏ« æý¤ b á‹Â®xÿŒ2ï¡o& À÷ÂRX¼+ \ÇaÒ@/Á4$h‰}‹ t{¼!yÞƒcÏEƒ*ÃÃI ¼ëÜYN Ú¦³©Àjæÿ笔­Ì'Šb,Q6ìQ¶EÍÊUx”Œ\Ï{¶`¢ÁtÏÄæhSŸ¨Bmÿ3œ3XNÖYŽÊf}†#ã~º–$öpü6V”E,Õò‹ÃÓ$´ã‰æ¹jÏÚ°œàÚy^•d‹Hÿ]`‡`ƒßX¥V¹*°.x†õsߩݻí¼)XÇÝŒf)É‚]èúÎ>ˈf!ضK—žþ‘üBfmËÀ~Whâ úq}`#v$„xãÜDÛÒa˘‘*ß?‰óä!zî§—‚‹HûV £w8Á˜²¥sv"柋øÖ8ÐOû\þ©+òÔ³ññqÌôhö°)‘÷?¦\mn;F“’õbtDâ9Q·kÕi‡1ý)ª§RãÇ@„×ÞÇO xãÏÔnZ&Þ?wç˜üLªŠr Ъ)™__ÙѽÜ«œyÿJ"e#4éuyg !—¸Ã4òÖ&抅cäüþxkñõúêfPóÚ MÞø0mR9¯=J=' §®/¢ êünÇ·ò18P¿¨Ø>+r`ó|éî>ûÃiî¿ ò'ƒ/±t˜q¥ÍÊOu![–D‘—yÏõœõ5÷+†ªa¾HÛrÈŸ€ÆÈŠ`ËÚ)Ð=טÚ.»>à©‘Ñlq!×õѽ+ïÂ?I½Ý–@4÷”½}©eS˜;e;;ž¼øÓ¯=›0}Ë.8t¤¿RüIçÛ…§"m÷“¨Fw €~‡fUÊåº Hý8 uà¸+ MU(±n,u« ¡a "Ððx«æ–22˜}·¹ÙW §oR‘èC®–,}û¤pUCØã°ýøS·~ŠÖö˜I{‘´Íh0P…Ø9> ½S«ü’÷ ÙDo«ãcž«€ñ'Êè+x‚:4¢\¥$fúál혻LªUŒ|x×/çÞѱ—N¹š"Škjo'ôœaÔ…{7aõØŠo߇Ž~+Æ™ßI½¥[ÇšR†öj‚ Ù³åêšñ:¯Å (†,» ׸tšÇóͼsüLØ•iŠ3& 'x™€Ë½*Ô øR—ÖníÍÅöw6Ñ0§ÅU–FŒHB"¹O‘ùreäó­ÈCf q æ1ÃI‡'Q vô®Qº&e1([Êý™ ´z CÝ“ˆ?ê2fH¾÷€g Ù¢{ýÑš´M^k“ÜÑâsAÞcЖAs:š©Åö ̺shH÷Ò³FcÍ6YÄѸ;=¶~ÃÀ=GDØÈpÓ•Ä´?ÀG0]+Q倧®-E/Õ†ÐâjiÈáuh¦nŸï“4­7B9FË8 ë±}ÿ»Rnéþ*›eÖÐ}ð¡Ö¦ŽìL%Ö©¨s1ŒËü{=FR—½à¢wUöÖY²ÜMƒ§¼ÂÖ´wªU…—ˆ‚Œš‘ŸéþÁ°@M*SG·¢:M>ÃÂá(XÂTý­‚=mìGt{õCÌJåÓ9?²:Ã#|0ä"„OÅýƒÂ“Ë—øË”yWhC™ð¤gÙâÙ£–W¡AŸè1ê¾5Nƪþ¸ZÍÆÍ6ÌAÅ!Êã¶kc––@­¶:‘ÎcÒctZªŠ«&»âõ¥›–zlߢÞ*”ô¯>ZÖ¢)J^-ðb\Ì[aÌת©Àä´ŒzBk ×6œÈá{^·°Çÿ2ºkÄæ¹C3¼Úßÿܲev1VRÉ.>|. k:‡mݶªƒ„ïÂ9£± 9¢>Vd@C³ëßõFÍ{Þeߣ!¯KÔ}ÙªˆÐ:Æ=2ß½Åz6È5XlÆ bÏ)öÝ|D™Ð@ã›TÁt¢ºõQÿ¼x–Wï„Læ]];Ÿ†?N(û³ n‹ô“x§µ™Ž>¤få|1É•ÂÀºòMå•WÊ™1hÓ<.õ7T¶DYµ¦µvn'NÚ]üL¼õo ~øÕ'À‘VÀ«1÷Ë?.:-r›¹7çñµÔ6öÜÁÌ9§#ŽO!üK î4òȬÃD-íSMÁ„j´V‰ç-#¬¸›r¹ûne.+ÏYŸÉ é"?ð"‘>óÚtå~`¸©ŽØdm_íÛŠÃÛǸ„_'¬rÖ¸SÒx@SÊ-ÙG1¨26i}·‹ê³ÄZtPï¤@‡jÊ­9Ö­1}›2Ãý)[Ì-±Óê÷Áù‘ÆúÁÚ½Ã))®*’Çq±#«U{v#ðˆ „‡ óùQ?¶n¿R:r®¦B¯æI‰ F¿½Îõi´p5ZóéüX!(¢AÚs0z3+õü(y-¶)¨ÆÙ–V¶á{䜫Òµ— à§®«›8¡À‹ ÈC¾—þ_„ý«Rt=UÛ.]()kBíOۆ}ಳQqÓ‘¦ÇZÒßfÝû@/¸Ó•ï[ìQSiÞÁ[|FºÊŸµ‚0(:^Tx» ©\å!EAq=¹çb_óþ>$BÓm´eˆï¬xǰÇ#­bç9Î `Ê©Ã= -µ¢Í$UÉJX$…æÞ ‹Ôu©îGä„êuæ7s÷¯Ò'38 Q,@†4ÿ¨Ô ÿ­|èÝ´î¯áËëîöÆ$yüÛ¸¿½‡RÌBt¦›>Þ~‡"Ý,1ÂçEª’Ö‡–!÷ v tNq$’»âs?½…uÖ$ ÑïãÄWžu½¨Ì6?9š{l¶P8,º-w¯­Û†Ž` @æþñ!_ƒÀ#»zèЪü\Ö–µÆ=’Ђòk¬c„cGl-¹!861ͽŒÌ*ÝÔ§lV’×3!ëN~ ¨hÎ>=2Ù ¯7f!àÍ.Ч•xˆh2sz)qÆ©&•‹Žc­#–Ù9·ÞÒÝÒ+Qö¨ªym±n86ÅàMê¾ä9XrD+ÿÿò1qüK5oÁòÐá+Y۬뒪þÎŒýÙ=ï_ÐÓßCÃä^ÝHF«yæq™ìl™SÈñ^£@FÀ³š§¥[¥#q”¿„ûM=j¬G“aJ†O]ÆãºaòïlB è€I}±ÍÉZóA–6@+p¿Ç§Jg©ì˜ç>aa\¦ ˜’íu Í”)õL‚Hx>ãʓΒ¯¸y½Ké kÜcQRæ´ÜÔvÉ•ÑGÍKìÄ’Ól-‚®f •7§{yß§¿~Ζ³H¹]QÿÐÈê‘Æ2õòÀ;:d‹;¡Ã §Y…eì‘qê©„X…8øg¼Ö_®úšÚl¦/n³#þüÄòòÛ¼ÿ>DíÓß³Œ–îÓ’ÿÁiB¦åù/¬ÄhÚnw ±ŸÕ¦%#Á·°c¼0‹Ä6kÄ ¬Ê&¾EBžâ|–Ð^árB®"ÌF°Íe²Õ:¤0J5>i#Ñ¥&Üç‡ÓJuõãYx ä5kxïøÙÑuj)Üp[øLÇlÁáÿ3—æbdõ]¹á¢ŽÕ3rF¤0îÊô¦qÅ•€"êšÓå©4º*c*ÚÎQxô$5žEy¯h % I zôèxúð)ÔK^káïBta沤\èž=s …j>°ÁúÍÜ»äÙ2¿qc󰢑vüÆb#kܧ`Ú׃ôkPäúQ*ŸÉ ÃW¸±´ó*FêpjUð™·çoÒiÒþÞÐEõìÄê~þ ®Ùİ@Þ‹ÝIo[Aß„ÿ ç§ÞÎ׿ù߯2¨á°†#xÎÙà©?å®Â@ñ”pnŽäÍ,¿C(­ðίrØYV7sSéý)cö¥Ñ@C7èk]¦—&MWTùÙhíÕé¶—À~ƪ²½!î3ñè+úÓ|(‹¬üÅ‘1Iñƒ?@5ÆcÛ7Ãþ¾5'÷¥TÜßÞ”˜²ïVåÃù›iV5Z³}Þìúz¶êk°¡îú5ÒŠ9 •„‘vüÄ!Ž´×6¯QÕž¿ûV±pp}h¿éÖüü7kÏ–I [£Ôˆ‰2—¾"k‡ìÒ”6ˆX(µÝY¸Ô—«ÝÅõí`#-9¸$ÊD[á¬êTXÙ4õqœ·FvXnö½›môD<¸Ñ/},¬Äw¤Bµð"ÃÔE¿Å› K¼*Pa×i.È!:©Á••XëO·œ€Yb­#ÂëÚ‘‹«›‹nœ&¸øÀúh娒Uçv­·êì_ç%vS— &UÔ¦”Ì© d?bé‘à â? ¼kçþòó KŒ)_TUª¤(sZí±»!;û‚¼bn}JÝwüÇU®í#µæòÞ-lƲi¿‘§A«( #ÌñÍøëîIÅÔ¼G Š·pok›v:"(5+\N–}nc:L¿=MxfRNƒ³¹é›™(gÍqk„ȳ(åõÂâ u“"ÄKâ“ÈÊÙ¡Â?¡ÊR î=K|îd ‡]êòÙòÝÖ=4¿ ÒîiÀÕcè”f±únäùk bo¤Fw¡_Úr¼$ Í£0ÿÀø´ÌMf>Bºk –³Ïþä_|nøáKÞ²Ygˆ'­ð‡!ý!¿Qy÷’lÎÖô’޶árüIöß :c°EH ‘[ñ¿b¶ß󭢋¦ä¦¶Öo h4Ì@ròò)Ë2ö¬EîœEBƒAÁÙ1PúaYOÑ2•C‰»?«êO‘:b€¬÷áxßQlü®Ùœ;ÑØÏñ$W›Tp{7¨.‹øºK^“ ¯·kbF~xCqDPý°…$IޏšècĽµ'SIKƒ2­²[ Á Œ¦L\²£Üz8,oü¢ImóŸþ,˜½YÓ²žâõ¿c ×A/퇪l7iCnL(Ú5+*S'W&dˆ [2 xr¡üIßñoá÷7B$-ª°ßvÛ3OIº† }·2OŒo4aÐÛ «DËÆž)«Îèÿì07¾Ax¬¾PUTš·~ÌãÃ--k­Ke’ †+PIf“;.D\Kpɸãå„ÞŠ@ñ#¦Xj,±yÅò  ÞËÇ Ñh`„Jß…;Ëc _Lu7£fÞR8ãŽ0s¶Tw·2Ñ+æ)9 ×çTga?ÀÔþJÍU&s„ì¬väf ‰ 8Ç)œP*Ì”ÌN ï²KE²NΞFfL“ -õu)íãšG,4÷¢GÁÌûí*øüLª'ÎŒvv ǰ?ŽP±ÉÞ’©ûθµ>dfÈû%)a„Ò&|ܾà½,f$A 43_Æ,â¡} É…œrþwxèäšiiØÕJ8Ñmk¾|¼Gƒ8½±“rÝØ ðÛá%(Γ#"çñ5"ÁÄÝí ¸,dç1Ó$a †§Ø_ŽÞt|{85¯&„“&ÞO aHEqFç4Ñ»|!Ø*\PÀ Ö_OxX¯×™t4Cm'Á~äæI¦õý Ðm¦+VÐŒ ž÷¨ §àuD%)Q‰tA&Z׿šÏÅ9{âËüÆ@°‹îýEÞ9 ûí"—)ÁÊ YDªÍ¡òåv*H0&ÞI÷\Ïæ•|¸þœ7…ê ¬§\kŠ-GÈ9‹•ÊAÓ½7”ÃïuQò´&ÿФ "ÎB×TªáEï0(`œ”pèAŽ¢º,-ø—»¥€­ã~õRíà+j¦šF~pZD…ÝGŸ"µâkÌÁAâ/›mYÂ¥þ%(>ri†ÀÀã„ì–N5ܲI¦qÆ7Kk'YXÓoÔ‹¥äÕ|†žŽdcßè2(PÈî" NÑ,›q˰¶“h<6}ékÒ¸ÑvOggS€s ýÄ n€ëD†<óÿ¢èòôíùîÿ–ßçøÿõþÿ¯ÿ7ï÷ïñòìôÿúúðïÿ¨æõõðñêÿ¶ììôóøôÿ›ÿDÞâßàÚüÆkëPÂÂdëÔàêBE›A5áôý3«Šü3þëðwRÌDš°®œ ÑNnĦ”Év¨š…½ûyÓœ6 ‘—;b-ZšLZ‘³‡wEò(än?]¨© M[â¨pl÷N3Âá*<«$ŒHêÏèöªTOnù ¦¶îëII±cÓæy–aT×Fù}4N??qû|óÑ=>m -±Æ–ƒtVÏNï]a1õ÷ô"è’ù~Ó Ñžæƒù¯0¹›kqÝ8þJ(îb#O0”;tÿu:ñRJ‚¤]žäë6ól®L×q!ƒEyóE¾œOfMvü|®b:õ7UÎôáèY‚èV`[^kv¸ØNÏÕÀ)£û€È#K½ˆá\hýxóñ 9'}3óŒkP"8ÛqÍp¡WÍ\  —¢zC˜·ßTËç=%àò©LÕþ½à˜r†`z‹ãgëÙ¶!f5ð‹èx퉃j¹Ÿÿ¦dÄ¡¼6¸‚‡Ððd^ú$$NZžÒÅŒÑ<ÐùúpÀÎ A»þü¶Ÿæ úiá‹îdùš¿­ ö›ö˜¥d“HüSeÜujl¥K`¸þ Ñ,'SÝØ:q«èÿksluyØß–NŠCàj5ÊøkÍåøŠøy _fY¥æ¨­×†uaÙv¡‰Ô¸ K+Ìb;fŽ·²¥J kÀ¡—_´U®ëÈ@ìHô¢½‰c— ”<•¹—ŒõðH*l2`²e"Ø}3ßÜ&{Û—Ë oˆ VPóD,.p2‘A÷±Ï¥ f®÷oî 3 ;s™¥•O¼‹͈øÔ.ž Ø[k€Ói«°üT ¯‹·}CtÛmmß¿•¾ÖÖ\iE, ÌIÉaD® xéôDèl’ -Á1T¯Ùnø¸(ó¬MWêc>ÑE¹0ÞSª¦ÝL.ƒ¥ 0YÛ ð·ÕÊüÙtKx/¢¹Úõ25Ô’ÒT-—цR}'ïžm•€°™½ýöÂSõX½©Û6\R½ ìõjo#‰¨;® êT‹ˆóÁIâf«†ÆÆ¢—cR<~|;‰%û k?ÅÐ\=v yr¹HM(kÿáõð]­L²¹KL$€ï<í-ÀȬÐÏ?å(à([3‘ýßJpcó~–¢:Õ}”mj¯qÁð?ÈŠé.Y‚ iUý€€jޏ!5i‘JB³1ƒÆäV"uƒá¤sM)¼ž…ôÝõ}ˆüÛ½©{|àcùõÉæA¡K®Cbà”ì´u½c¯%™×ö¾sXòha@øš/žáÄá“W8®ÇVÓçç¼ÍÀI›DÆÙ·õ#h¿^¼E“«r Ç@jÒ±G”¾Ã¤í¦šÇËgLæ”t^´V'óöÀ_„l*J+Jg«dmùÈ êª©„ d_%ÏÒy7­^­F½¤Œt™/Èu!ïFnx•uU¨û9ŠòÛ£r~¡SǶK 'a=5s ¾§×«ß™íl%šåÉÈÉØûÅ&ûƒÜóp6Ø{*ª•+ŽàNÛŠ{k[ëOA^5KÂ6’Ä‘FüLÈ—‰Ø·M9iÒõ_“úݵݙÇ@â‘SÆÖ6Ôo߯™çÿû_ô€Ö[!ÊZ¾E TßíÒº£pAúKãëKpô•·*ÄÞ±(g$B]Ù§Ú€"Ò/®6héÊðµ&Öý1*Ôy½.Ò .k}çeDãè¡cL3,DÝCi ï™D¢;áÉÒ¨˜æy´gð]ÎïÃ\¹Î$J+Œb2#Ú +u?6¯w°ûÔŒØZÚè(R„qLW©ÄŒùèeM‹½ÑÒ‘#ÞKçÇhƒDâþ? ¤h«Ý{•šêÛ¬5 ÌX„Sü|®2Ï'èêƒHOÈc/áV1ø.Ï­´xœõÁÚ«s·=aQ©à)ÌÎqÅÀìžfˆUgeì‚ÈåáN¬SzÏ`¦éq«<¦M–-ÇSv’$ÏwÖð»„êÂô‚¸"Ê×´‘¶K›Rk¦ÅÀ–?,,se.HŽ1 ,ÎÄT–Q+XÝ… dYêˆÞR½È¾cÓª—7ÝÕw‰[ãœÕ“Ó÷­©nA™V169ßß÷ܳCvßö.Þ;‘,¦7m;)§¦/:iBîQ(£uv.‹VªM(Šé\a‚k¥:Ï?@‚w 1‹b3±:cSmo6÷Ð %tâQ?Z°å4~—é¦Ç,´ã„lPQ¨”I²¸qniuk[]·£©0º)I3¯©2T™$»ƒ_æ¦6ŒÉƒ®¹Ôóæ.éws[кL ÅW4êü6’¾Äɽ‹ †Ól(íúöY¼hnÔ×ÄEž^´5‘Vtýñ¦·!_E†/Óöؘ*—1?¶$IþÁ[ìí"'ç"ýË¢ßü–aÎ1b¿'\§pNÊ÷Ðn9îeŒHžs>)¥Ð“­²¶*9šªÐÝâ,2 #0«³9Œuˆ§,®Ÿ`ãÛ™NW€§í8ï’tt”Dñ¹r©€½´[í]ÉOj¸ŸóñTøqƒý[7슒dýT`WõËâОµ|Èa¨i]Ïl¥j7íc‰âÊ|ÊÑÇÂme%nªZƒ¦2 ìâé.ˆ¶”dÈbëÙîJ“ß5ú¥çs›-ð‰O†æzsB“¯*£µ@¨Ãî¢IQqüLÈÖÊü€?ð·íÛ‚iˆïOƒYq+¢Òe5|pó~›wŸmšª]÷¸uݦ =G°üKЦÙ9Öö/™F•…\ŸI©é­. ŸÈp²È(ðÚAf 3苆9f Q'þšPÅpkà1À['”A0¥E¢mTò–£dbÎ/Š.ʬœFˆb­Cˆ7uúóB*9”œ¦OšS¢Bš'¥IHŠC9Å“¹Å©~L’† >š& Š-Û$ÿrám^SO1·#7ŒÀ]4^^Öóº>[¯žÔ4¸Vÿmk34þ ÈšÇËSl‰ü±vq'9öÀz)ôˆ^vn²Ø/w`CKÌpÜ)¯…#•y¢ ç’‹‰ÈÆGØ/úé;és×ïù]X8 ŽõÃæƒAXÃà¿=Ñç’EJEv5PW”«,åŠ&_èæÀ%{Mbá’Õº†åSøÁ‚Wli7m×KÔ«dŽþîBßÔëV ˜âž1£ËwMªi€Üâ +°®át¢¹”žš«WÝÌ_Íþ_“ïlC#¸,:§Îª¯ xZé£iì0#OiÉ(ò*Ï¿k. ªøaØ/LgÑ÷ä½¥I¤<‰' ËÕ© ø±ý¥Ã“V£[¥&jvÁ’žü±ý2w‰FD\mn'%·”²¤6KèrL«·Ü¢À Îy¥CïÉFÕeŸ z %‹l¿Xô-‡0Ûš×x<½Ü,¦¤VZx%>–sD.àn•<]tZö×@[è imZÃp~¸4`U—œCÈëêSU¼–]4B#ì* ðp#<0‘Ó•½9ïÊ–b¼IB XFYšGº+TÀŒ5š”;î’Òä÷ÛÞ„Ä’„·zÔNü¤¾ËÖmºì®fœkR7àCöy ¯éË—Ðÿ° `–UÌÞ­ h$Õ4´3µnq|¢š± ψ›¡߇žý¶WSiÏFÖì²~wßzj#UµÅö4—q‰ê÷½êôÁwlÕß(šê\K’nÌCŽv§5פªOè‹ ví ÑñÊ9(ûïi¼}æÁ‘[ûü5"tsVˆ½Q~o樜\¾“áÖ0"²5÷aãíçÜÛgöÔ²0)Ÿ…ƒsùaõtŠ ï Ÿ±´ÁìJŠó¬Æ8Άà åúA–†@ ’áˆ.mGj«}ц7_¼#YºÇýªÏ2I/Î-ëØ>ñ:ûA°7ÄþÒü§×~8N™2"’ÈP?M+¨° òœü|®45EóbCO"k“Y·ê” ‹%“½Å,œHµ§© ³Ñõß[Á`ƒvȱäûcÂ^H¼¸´n+ À^¦®?’u/“Wgð‚¾%ãà ðìܲ²j¿r©¯¦$éôi"N;‹ùÞÒ¼ôù¤xeF2›I]L5ÝIØ~ mÄz™ ‘z„7¡“‹´Ú e(ɨÙ17ö—¹ýð=ËT$›ªäyãv¸~d5¬GÓ‰ƒŒË‰Ï +: ˆ©ûŠ åa³t-ës­o*Ò¨ºHí¨¼T’ò>ò-êò&Q4 “\¬oSš’ÒåA¢©äóz÷‚AG¥z0NÓwd„2¾ZñÄꄬQÀ7šÑÚÚ.a6%v„ea‘®?ÜûS9¡†è¦¡[ÓíM‚ùw_7ÀÈÖD›ô*¾Š#wD&ÞirPÏžs±bt㪦‡\0#ÔÑ\@‚‹é¯g+v¾jÎìº ì¦Ò³F@i×½ÖzÝŠtAµÍBØg'ÒrUÝæ*Y=%Ú¥Òû‰µÏ0Bí߆ó’.7&dt=½‰ü†mF\Ä}´d÷!¾s±í¹È_é½.±˜4¿Aƶìð¾Úñç»Òïb‰˜¥µÍ¦~[}…ÀlÓ®‘RJ?¤:/'ðÑB×ònªFø6.ÚG¸4Ø`3†(V¦[H„ÕªâÉ`·Ááës³ºInÀ(|ëߪ^•5'¶£hû¨ÀåÉß•kW7n«Us¾ÐÏâö®KkLTÓÃ%8ÆcúS„`þ–øΫ’Sõy0ÐËeÙ+<•„ÝïëÒâsišv¢¡G{˜X&ÕLN…Ùv_‹šÈÂî{X½Ú½{Oa{¢gvžUé6zt¥úûxUè§Bý¨žœ_Gxê0$¨Óóî6DnßÛ‚g‡ ôoð4‘õí¨nØ’þ†)³ïK›†1¨•½tG6¸/†‰¾ßj°üXÉÝž]l0A²ªuø$4¼Ï˜&›i#šcj6Jþ00k®õ*sÞÎdÿHô®A.bÂ1ªª–F=¾Ysp‰8ÇtN=?l·{·uÖ—Èô¨¢ä¿FZ7!U14§H·.ÃB²FÀäÏìNº½rº ¿†[zúi*1w^€ãi¨ÿº(Á&{t圪t.“µ ̃aòY#¹i¤™š€ç¸¨4LeqÉÃÂèiZ7Èx“îßš›Ñr¬;jEsò¥O:ˆ4ÀU“½ïlÝ ¢°)ƒnÞZѺ/+a{a±+p‚•)´¸üMFW½¯E—Ó'!àº#ͽ‰__§¿'5{.g‹,¸g5üJ\ÆÚk«Œ_‘ºÒÏêó“KµñÖÀ4ÏÍÄ}ùº’`j7˜ÿ ´Ñ[¹Y“¦]k#§‹5,æd5&ÆâC×þßL‚gO|FÎó²©M¨-ˆ•:-ǹLè”mïí៕pÜ­$ Ðî»çlCy„rþd1\ïî¢u ”Ú–¤c±ðè£Üa©©fm~AëΩRÚ.âç,ØŸ‰$ –bžÙ}=ÂF‰®DÑxò9iüñ†œþ"·à7dºôã=Å„­ÙRYbÜÐçQý ÅùüIíµxñ\ü¢ý,R’ü6NúÍáÚ~óÈâ§®9ˆ‰ŒcC,äßùà5ÐnªC~Yç«&$ºXIŒÇŽ+Q@ÖFë2îG¿ai!‚~`ã8¤9 #ÌÖÈCÚP­©ª›¢<‰3í7žT:ÚG7c²û"ÇÛ$¥€¶¿3Ói¾‡Ctvœù˜pSºÞÐaóøÀíü“ûVß¼Ìà>hø%á(bB‚[øš3Ó]Ñ”å™ÉÐW!|hµÎ×ãÿ=öR[j…å{8äùë¥ÖI7Ò[xN hEÅe<Ê[à!ÁÇÂ×"¶‘ñƒŒ£ê4Øc9m?üL×åªR¨ÑŒe\Ã^DW°¹úP–Fõ¹pw~bËËT.٠lj¾þefDóÚý<15U¶VJéqFucÙÞüøk/¥|”á^‚MÁÌ/D˜±•c^àrÁç(r=jàéý¶­ó¾W§{yìýPÉ=®1LA*?üe+uàu¢Œµi6œ·øƒuÐŽÂ<º„¶ÃþáºØõa–'X™NÅ ÷ „Eâ˜~%•Ê5qv”6™B ·Øðª»­sĈu'ýæ—,Ö¥€á~[ b €‹s1á€%bФ÷§q²¿ŸFÑɃUzqŠLüIòšn\.1Ã%aCݲUI4š¸½‹= _\‚&@ù),Ú?‾ÓIk2QÙƒBAÕo«Çû·N#ÚkB‘öl!6‘Šð¶å€Ì]D,7ÎS²yVOuú¿²ž×˜Àx;±à¨08QÍɈYDeé8QöW3žê×™±?fÀwÌM.—”êÀ„lž1XÕßõ[ ¶Y!TH…ìênpzõZdFÕ¢(rŒ(æøŒÚÄéfÏ´šʼnû2±ýËÀüÒ>f€¥”–óz&/ÓƒxA{÷Íñ£†qaìÜrw’ÓÉ,V=oðšü1‘Ð'ºv£E#v…ý¥_¿âä/Úöxj³òË‚D?³;@²9Ю&uU©ÝçwÚÅÚ‡ìw×}w¹zšäÚJ…ÞÛ5_Oñ²öÍ,ÆÑŒ&ºµ™ßîÉnË'A¬È(<±c‚;cÉâûwÊíû´NMé£w®ñy#5Ÿ¤úgô,Mú`^’ÀÉýÁ:l_mFÙ†ÚH€Í;PŒ©Y»K]í[ˆw šíxþeˆÉõ¸ª‰—B¯Ü DY&öèM ÆÀ¢Ëpœ× ®, aç5ÜÞÄFj…+ Ø Ã3~ò7üWâ‘òv#'URþèÔc Á‚œ´Õl~[Ÿˆ jñ »‰¥f[åg§Ã‰WÓB'ÙÒz…Æ™°Ê©'ú~N²ûc9¤k|ib±õ;êiÒöÐ}Cífòé†zX|^*Ê!”‡}‚-Îr$s¥¾Æb„mÇXL`r[M\³¥K¼Þô›ä=:û£Qݳ\z•-ïê&Œ¸:Onò/µ,až‘»JÀ)ªµu‰ š†1š…G·UfðN¢Kp…g*]È&IbJxµf¹vˆ…U mkd›öoªêÍ%Üj•6D‰ë§Ûu‡aŸÐ_ÚŸÈ´¬ùüLÀï¢! ¨ø„ïû­¯Më3LB7MóQ§öCF¼ôÒ/ªÞ`ºŒ¯Ü29«w¬pS÷nÍ.¯ª\1ªÀþwaþ°½¯a¤e¿~Êu).ƒ·à6†î+Ӝݥ¾)bŸÿqþ±¾œ:í¡&všrۈ회¹˜<¬’þÜAC•8N¶Þ®Uƒ\~zË–5„ÈÎD0ÜÆØ„x ÂoÍšž]Àéý^6ᙳ•öoz¸c†‚uª>è‘gXÄcm›é›/Æ_AAðÁ^±RîþnƒŒ1=nç¬Cž9—ÿ.‚*%¶IΙ=êÖáæi¯§HtTüLǦƒKË7dBÙn†ˆùpµ-µéŒx·ñXzÒ[WÅ ŸhNîj=Õ0©vÖKÛ¸.y²Šíë«¢X§„ߘfô£…êt@ct¢àÓÊñwàÄ=Q –UÇ`J×ÿ0­…KÞo Z.þ¬rTsà5Íl "2îK°d¸sE¨ÍÚ–­û®dÇbG'(Ã#ñ=“hžÂ~ET‰”bæò|ŒÒàWÁµ&rþXË:?¥À·príV–d³³øÖ%¹Ô¨gMKTKÕ³K\Â*Vû°ÍbGkÃÃ×Fθ ™gô†§þHäü>®>lÛ,KÝÄÒÜšRÏÉ)TL=„8ÁüLÈʤî04DѲûÇÚ})ÄŒRäI¾m³–&¦<šF]s÷[M_r‰“ô;[ÃôüE$»¼º·EO×â³ gÑ…m;]K´|ØÅ¹-mK„«•e®¹qà“TÏ•{NÄ~ÃÇNáuª±Çª„Ö°F èÙE’§·£‘ê~¿ÏKkƒ3Öèȵh_”M@Ê#Ð[È‘0ª¾yC{Ï5êã–¼0nÿ8i¸w â.!ùÛ¹†ûrþ£™þ ï3¼Æ³;ì)Zto¯ë®½ðZ&kR)a¡˜}ªòBUÿª}Ìcm L¹žüg×xøa3ä*‘é!‘©V©ùêF+ü¯ÄLqdPoo‚4"„*Aþ½²=­¼4¦URq«Ü]Úú^ »”‹-¡³ÈÄÆ ïÚ!ˆØ•™(,ò*)Ë™Re!½"'°IQ÷Xrû…|”š‚0=Æ(tsÓ»õºxH°Å¯—ëOwç»[˜ÿï3ŸÛ´X&éa{ꛫ“S!Ú¯KfJwKì@/©ÊÙœ!­›Ù\@Ö®áŠÅn7=Añ‘³»ùöùmðš ­¡„î½}ñõv“gà_£`¸hE{T1lu§ðxÉxÚÑÙ‰j:£ýD×9¡âýž¥Ž1(~Ûw_gަüLÈÔóMéZE¡~ÄqâÑí§”×^'HSrNÈK£ëÒBx6sR%5d¨ýé…ÚÖôÛu…X‹:RA> p߸xQ„‘Òž" ÍnS¶Ç‘WGT^“ÿ!–o/^/ø²»ભÏÉÝEõß›•o*º™Ê’±B½ÐWˆG‡j—$®'÷#Ko}Ç+ñŸ3Ä÷Ó 8Zb¢RÍþöEC綠›d€{#÷[˜ÌA ÜŠpßµ8‰•Á)ÁþZ &õÊ,ÎsÍ¢E[z—ómáê6l`Íf¥¬:b û¿oøå Æ^œÓÈ$Ìü|®»‘”RS%:sÈ/'åFc¦9Ϻð1Ü{Y}s‚àj2XÀ5 ß?u£M–¤­mö>^@es&TsQÓç 6ôºáéhHû¯*YmØÌ„S³º[ˆè2ä&ûŠÛvÓ*8v ŤßÃì´If®Ûö-ÖWH±Y/×KÍÎÔÌT> QñÜ¥Þ²TF°T汩ô^¶·R¤žj*-šÒ,(nU’m¼ç"l˜×˜Š ¬k9ð½ü-cÇ;ÚóÃt‡Sþ›ì\µ×´5LJ•Ñ.Ü$H¨œhÏšòÊü ¦™‹Æ‚êÄ7e Ö4~Ofÿ¯ÂyùŒZL’yÜÌûÉ?H4/nk]ަ= ‡3X>Ãÿ,ݽ:‹Í½V»oñ§:2¶âV »_c}mlþ½(f–5ü^y~þX]؉ 1µè qñÓâŠZ#Nt‹k@›"N×ÌgSkA蟤XÌšÀˆi8ùé»Xyïµ´ŠÏ˜Š'(·|-7f-ù38óî]Ðgþ­œ€ >Œn|Œ»›Q×Éb ÂÌîm<ÖíüL×Nàê C_ÙjM»Ò _-ÀñŸiZX°@\&îf„>­6çÈC˜4ØšÌÇSÞàÑáê»[~2Wâ§œ¤eá9lƒ3ÖÜÜíLÏì$/t©íÄ>üN½ gåóÖrL ži]B:´½J놛8”Z‡D"ìïU¼w}&A7…µ7¬@oÇ‘ÖiEbæ¶œp’MºÑ¬tßX¶:;Y<ëkî™M§Ÿ+ úÐc]Ës²þ#Øvùá\X–Eö¼3GØp[²ýÛC¤SFJQgß%qÞ7P  EïªPü°Ñ7±Ÿç£Ó8šÔ'¯êÄû‰.·éz·e3UaÖ•1ir¦*,eÊ`a7ÛÀZ;¯uêT\ÏãÇY?‡¢_pG‘7s~ƒSöô;¶{ÃÆî}2æ\ ,òÙèÒ ÓÕ¼Ð÷ÛÎ5@õ.ÂÂH‰°ˆbDöÔÍZõ/™«ež6ú•ãy¿<`ùû)ž‚ 4Â.ž ¿M^$ÿöIþŽdò<ÂO†Ç çq»| B§äÚÝôN‹û.qÑwAhü´ñu;üeRÏUNxlØVÃÃ-ßûË£éeúTsQ· WE¼¯œÆ¦˜´–GÄàcüLÈ¿ú§M“öñÔõõ­€ ^Á¡¡^«†òhˆår™u¦Ú2.‘àúYQ1¡ÍÒ÷X8w÷5¹]lj1Æ“&WO±·áÈ=ËeH¸Ó²ˆU9ùHÚäòš ´=ƒê‰Y‚úvü>Œ«KÕd—˜btTıfÚHªøS¦ìÈ Ôqq&]Ïé†ÃÍ–ÿFª×ÖT:’8²°ò)ì9Át1 VÁÅ3:óIÑ3z-áôfOµ¡½à‚Õm2Çå žAì¨=R‹ÏhDL`*ø#¶FË•kîb §tÈa{¥3G7TÎQöª2vÕDÐüLµ„Ô^"ß0#KeòÇïââÚ¹MÅØÊ>ÊJüÀSCf#óOˆ]R¨dÇ^à™-¹âÀ}t˜ }NéÐMw5‡[`/v2ýÝ|²Li´ùâqÆÓ°\)“òد¯2DZ¤Ÿ"úØwèáwvù†Ù`Õ\Å 3¬—ã9}§”økëÈü@iÔ—nŽóal“‹\ å=Jóyê.úéèe^Š…v¸Õ®dÎ`4~¸8ô=ç $ù$Ѩ)Ä}„Æè†éœ•“3dþ% ¿²wî¡K?÷Ÿ©5ƒQ"W³–¶[¶%b+… dqUø]}üð˃Ŏ‹‰­†daÚÒ0€3J‹+'xÙ6øÁVL• Êz_ ½/Î]ØýdC:æ:—MÀ,Y<É¡¨õÈ@oç‘[¯zøÔ9D÷‹¼è6RøîèÌö½íäÆýd­ÂÈ^”6¢mc\ÞÍt (o{Д=äò}¥.‘P–±YUWm‹nE«|‡Š†÷˜Ïò)!Ž{pÌžÊÏ/މ#¶?¹#GñÈßúôUi˜¸*h·5Ù’ÅÑ'qnK"QõéiQŠPNŽbÂ"q‡9Š ÅÞÞ´…©¶®äŒ^jÂáýúøßòëjüM1Õ™¸GЬ8NÃxXh.S°÷<òVµ~üøp“´Y+´\ã¢åÙãñ‘¢?8%ä“÷ŸFõ}ÏOu«Ày:׫U~# dÄ,5Å Cé2WBô,<îÚ°†á‡ü·a}• ÄFŽ‚å‚Œƒï'&~\…¶õpæ{ªÑ˜x3 ÂËU±ïp£Fä–S*óú9ä"‡¤T·qeÜ'ˆ\˜ju’B¬¼Á¥\y~þóQóãÕS†ÔýèFWÚL¬ÈÕöš×QhJ«,‰ê ƒ(¬ ¿™ÒëoÝ~zµ?é¾Òhã9”£íÔü|®9¿j¶‡.òÕäaQqÅ©¥´v»Ë aÄ胂WyQ ÆÆË MDÆ\nJ"mxoo†T1æmpu6ÅFòÙ~¦·_cT³Ö®,ÓÇœr6;ÐS—‹r21hZÆëÓÓ‘@Örú#P<Êèæ8/Ç-Ö¹ñ÷”Iî@ r µ<$¿ÏþâûãQ=ì¥à(7rxQ.æŒÌ¾ ;Ê-ÓònþŒÈÝ6´äÇ©tÐ Áš+Ú,[P‚~:B¹_èã7ŒxC_¸ZkýΪ9rDÒFëC›]´.äÊúwŒÇŒ[å©e´áÉUàm—|†L[[ÚˆžNcžÅ‹‘n–ƒ«ª:ótÇ!m8$üf8 ê¯"ȹƒ Á!ÎC«U, ÌÕë²¹í8¸ý+ZóÝŒ§Ò§4VÇ!3¿×&ùé‹(;žÍ¿Dy¢›v!TÁ…—õˆ”!*RÈÇKn‘ä¹¶Ú§ÈaoÕ>4z½®ižG³«bKj„Öݾs\Ô “JÞêæ`i ñi ™2&ßÇDä×0·#ßËMÁÒš?ºl0vu’A…/ˆÞ…ß„üJ\L”+d©Ì²¡^2î?ç3üþ±>äe<ØÀ¹@ÉÆ”Á€M‘Z®æSñ›½;/ä¬dtzˆ»2ç6•SDÙÇXxÓ…Ti1yîÄ+6–HI*2†‰)}ë-|.EÅ€ Gp ªUóµíGr·‡·X ›*æ‚r_«U¹$[pWšëjü¦cY]c±NA™µh«¢oã¶L·ÎË$– S Ÿ ¼m¡è†ûO¡€žœ;þàin´A¬…Æ„ ›Þó€t¾$b7,Ú¡ÕOûéç)ÛÔÞ|BÝ‚Ãö1~ÔY¹ƒ½ü®Ê=Ùý5¬ÊËL§lÇ=M%c\Šš¿<#´ù/¶Õ¾Ô¤å¶î0+ü8l/·&KpQ™•õÝ|]4¼¡m‚èÁ’o¾GäjB¹ª)Óg"C‰ìJÛUEmˆö‘3„NÍFÎx}@mºK©™ÞrP' ÉXÄ‹8‰¿4xåÒÖ_{´“Æáš×¥ÆsbƒpË2À=°ùùŸ—×­”Õš˜ŸÓbX3iI¾Øi|–ÚKíÖ:=KcÿNþ€œ1vÀT ël‚áùÌ8ÞBÖ«.#yªŠØÝûŽª>ô·bç0+ÜjŸüJ^%3V˜N'!#?EÛ6òüÿN €v²Ô¶ˆ"ºšÈ«sÍeG¿¾í Špœ×ÔÕðÙ$Zrx’ì”vàW*9wÊqèt.K´m`ÀÎÆçhж÷uOÌy“ã #Šãµ™T‡é"¾¦9Bµ}ºÌŒ 4¯2ÂW§\í’S%ÛÒÍ8Ý..fŒªR0.ÞlÕ¶ªòšF"· –‘Ôˆºupß×m97¬÷H%¦É óåwéû+ã×/7‰=²¾àçš–²VeǪâÕ9ª)°á0ã7 JþßÕîéÝ2Ÿbæ¬ò:„¶ÉǼJ98tüM!þ´¦B †y\³ wW) ÿr5m´€3Ô?oz¤©6ŠêÅ勤#‰ÙH²o:ˆµƒxlH´\pÞ½/>ä¹âÆøÇxØuÄæiø¼è4¿%ÿmÀ&£:ê}oO66zJ’ q¹b—i>l»Ã"ŒÌOôwzÛžèø|<°g¤ €!‹¼äÜ—¤¨ 'Û*%;ŒS±1hJD‰24ò"XÌÌT%l«Xãcg3ë ±>ºkŧ!zÔÓRUp¢Ïÿ‚°ÙizÉ ç·$}êô^]Ñš—»;(áüJFH¾9 ;¦µKIgØýZ{ää=žŸ/Úºƒô`»¹GØpÑ|‘?§"ËŠ`UyȨIU¨Xe…ìPtÿá’ò{Mvš$ßÿ´¸â8O ÞW—…-CïpºrX>M m\)*o®o`„­6 XaM+® ®KÉžÒ¡µÊ¼Pµ$Ã~ŒTØÄçðï‹ÝíjçE×{À/e1ŒA. nôsñà†€r‡QË $s d³ú(¶J¢oŠ0xE6—â‘!\èTƒÏ¶©v= ÔòŒÉô1wT$ÍÖÜc¨ôÆ9»˜ÿ0Ïr–ÅØÙýqž<;»ü°Û©è<:‚ˆÆD¼çe€ÞçERé[½êP$S°nØZ‹#¤Õu c+ž/ ™µnrO­p¤¾ú¦âîVÑ¢ˆÖ‡ˆ&„ÜÃÒÇGh7 6®UIëVa&륷—BHã^cõÕpcàCÝNÀ×*æÔ0 /bÊåà`4(âþèT2%ˆ‰6.NówóÊýé^{º2º=°U"œ°ûD[x\IÀsÖ£üþ¶HÃÜÁÒ ¦`ÓIu¡±üñªp_0ºçKT›æ2LÈþ&‡ªKpˆ2™Û–¬e6—ѺÃI%ï²Î’]¿Ÿ·Þ#9 ¡üǾž«ž|Fu’ wK†Ë ÏOÖVtðú ?ªà¡ÞfŠ?“âtÔò"‚NŒÄXGÚá®Å‘•›\y:i±KKÝËád….–E®À–;3*lÓd”qÕOj`L^©öSccÄÒ¹Õóîä‰?%éY¹8º eϧžrôŸ0~™óž„òMd1¤û6Õk¡àŽ ÍE‡¦¹ #– ت<‘[»:÷,Cô ÕI3­s’2ÕM7E³¸åB4fA¿; û¢&~c÷÷ª=iÞÛLíã³Î±®G#X´bˆ œè’äËT@7ÖÄU“xûØKx´’Ÿ+3´ÓɱPº«ÃÿHß+ZÈyÏkÒ­Uv,°[VýØÄ-` 0äHãMÊj?[ï:^ ~Ëä×­¿x»A§Žu˜¸5m–%mËØüÙa)ê!õÅõR«s›Ôß§˜'ÝDð5Hóì—Ar +%ƒp*C/`‡n£ž'NL%[e¯o‰?‹wEVh6Ù™1±Ëöƾß Ó™gQ”ü|©Ÿû)P·g*e·=L ŽÆ¯4)….®,ßp_åé*.EX¿|„‹`LuÈîàImKÚ#ÿì— À”¯JjÒVl.œ.õ¹â8Þwj°TWØS:ñP>úmÝ <0óvQòƒá³8a¶”T ñ«Ÿ/ ã|tÚö +èJêóè§3 ~íäˆ.þ sÑ`o¼¡¥§wäìŸX6àƒ.âÁbÜ sÔó¦¯Sßàm›AëÆ$Ë t ^K#åÏâÿns÷Ú(™å§Œ]/û²£‚ü?Æ7ùÛŒÔbOä‰`hÈýfñ‡–Q®ýß:é¹+%÷%’Üôº˜ JOºþ˜“ñ¯‹«yA~û5\ö6p…ŽFl§xSœô´ãB±Æã¼Ë«tòG²QãK¼¨,ýš}†t…v;͵üM*Iû¸PÂÄ@<Ä®ÚʲÂÝ”¨ÔRÿ! ?—З:¹T¼1âü¢ýAÉÄ•3DïÈýá·×ñ5fLк_ˆåë<$á"„àRÈ”ÓïÞbùT$3¢õi³¶ˆ>B+äœ2c‰ÌpóGsž¥„Cø[rÔ8¸essaá3æÄËÚRO‡5ããk­³êCØn‡•b#Z6¼ß€é`;òÓO;´jDT{PÐæâÁƒ.–# íz‡·mF95è½]i.âP¹.nÚèh·J±Ï6¨wWíÄë™AüL³·ÅˆŠðÜ–+šßDr”4»ít; òå¢=0ÆB»Ä5|ãŸg©ó ¤”aÑu@:í'Έ$.SuVÃÜGÏ÷±þ£èåh^x#a\iÑù{ÝjÅ 5!qº¨êl}Ñÿ½Æ¯8·âÚ€%¼j†?€JXAØYÔü!¥Ô_iêØÇš€žzJŸ­§þ.ùZ…[s`‹‘§Çkí_“ È×D7sm^†ÿxê…ˆá a€…³ðï`i%<¾~ù¬ÁטÜ_[Ãlº€ •E âìkÓ¢:vëžüMU yMÜÀ õ‹>ˆ¢¶‹™¾X¤œDß|ªî{~8^ycàÝkÁ\+É„#ª(NynÓæ6¾£œ~›H·–]´l¶w¼…éLDïëC°ä—uÿnÛ?Î쯴áÆÀL1ÛÊ?Á‡¨ä¿Â‡ùz,ªOñ´«ý·ãŠÂ­¯6‰Áü|1E\,T>ì­ÅݲŸÕV›Á 9^ÚÄ®ÒÀ´FÚÿ6³ë艖ºjkü?qÖð׈ûÎñðmö=’Ìü‘ù­þÖGGÓá¾Mꊫ8û|¡›üMF¥û®ÂUeÐÚùè^üÓχ嘴ŸGù"ˆ~_•ŠÜÅ3Ö§kú‚ÈÝ ÁNŠó‹^Ñ/§í†d,âÍŸÆÉ­üW&‚Î#@BáK±QT½ÀNe]Úuüƒ é§84ƒdkRyp¨0&fÀ`?‹ýHX\aÌðdSý+1pø´¬¥&JÖÝî*NÙá—FÉ|y\™Ž»Y ÖöMK±lÚ¾…S劓I¶Mâ竱,(~cÓk¿Dž¢ðûع˜{›õErj†ˊßü5–ÿ•¿)+a¼gÊt5à)–µ»ç W§`ra? ij®•?«¤Ößu!ü˜‘\÷ûÚM–êš1ÛZr™8¢/g^Çi¹Ö1):õ]¯è‰xÖ‚‹ò®?ÒÍiU=¹îŸIey2¶v‡çñú´˜ Vlµ{}é-škáMzÆfÇ ÀU“0êÏ”ÉÅÝÒÒÓßFüÐMçKì“8Àkÿ—ûtçSCCû¸LÜ›Ÿ†ý+ÃΡúÕ¾po"VG„6Y9Ȉ»v~¯óonI•)C艃 ËeÝOggS/ ýÄ n²â>Ûçãæûíóÿ§ÿ(æíïðêÿ¸ëíòéöøÿÈîîõññûÿqÿ3÷÷öì÷ÿ·áãáäðüÿ×ÿ ôÿÿþýÿ¹üM= ij›e ¼‡o³ªM™\/S°Q6ôLÛ,£t­Š>Ý4ÌÕ.‘h¢A¸®ãŸõËå0·Õá ôõç0õy˜ÈYûJãÃd…Ö0´#Œ@¡-$½‚¿. †’ª¬ž .È2?Âð± röãF!g´h”\2éSh³Ñh¡¦p”Më6ÿ@ÌEâJ$[2T½þàDâòÕ”ÖKНfåj ¼EÖ—åH /íX"~Õп:Ø_Jêe”P¢j,_'öSh³Hdn5—G¤Ö³Äç‘ÃîÝfüLÈ ë ßÄ£ðQ?M¡E§m8†³Á¿ÕÝ5æ F{CMþUó¿‘m3LJ֡<îB¸?n!B®Nž¯ž FvÓˆ"ìëibÚnï+òn ƒÛáMKÍ9LZY¿›ä{²èÀPÍz ÅW÷uDGü÷ÑÂ{jy;ŒÆÝÎŒ€(öÂu_ìê·~ÍpNņ¸— q f"·N“¦üè×Q}*éOÆ.¤g‹SQ¼wL¿Ü®Uʨ:WÔ>Üè/u ºýÙ)HŠ(öf·tÚgÁ›[Ï%k±€O´‘Q4PæÏ5³‹½üÛ·&áª|y°×úi” Žå’«,ò{‡÷ZXÙŠ«½F&”Ìu‰æ”‘on5ù¦¥± Œ¼Z?~€MŽ(pé¾hžôof½ÑÂ)4»iñ¼\ã~¢íoqHØqÿäCqÌò7lº]Óæ“¦*Ðy ¨†ßGòЧ“]±.,z_2¹óIv×uFã 6~w‹ßÇ€_­Ut wP»©÷kô¾»gv¼p°Ë\zè(Y9¸°“fÙÌjí7’Ÿ¬¢•ñ5¯þ6UàÖy-f4>vÓ@R2³çSzÄ€Y‰ü5@£L»1±ìH4·Á®xĪŠÅžmÑ×! 1}ÇØ`>Zà ¿”Õ(µìí àÿòÔŒÊO7àÝÚÕ q~Ø­ùb¦MóÃþ@_dPÈkC®|…â2À¬˜¿jƒö ‚¤™,7éæT×ÐáZU*ý"…¨D±9ÎÍHC‡ÌžÈÈDV9Ëí/£²óÒΉyâõ*0¹CBÞñzm _h”Ÿ)ùÉä+Á"š*o²ZÚšY´ õ§j°;ñN(U]OŸøŸéPh^ŠNEµÔ±õ¤Ê£¯EjA Éñ­8Tþˆæ]°ÎüLÈÖ¥Gvž‹ù1T¥;F’ºc1݇U™Üã€*|wÀø‹¹ó†“£)vè]Wëacû“þÇffÅWùkž@Æšpje¾Ïøåˆh^dŸìuózª™zŽÛÈUбAº„p®ÆîVk¾ íŠô ùcÚk#l2F€÷úÄ#寲V ý—I>àÙ•µÑ·Q=ëxNáÑšÅf4S*¿Ìˆ ¾,¼ì p€–¶¡¸äõG„*[ÑŒ§j¬µKÂ;Å̺Óq„ø¯哉J’'´bÜÑüLÊUÎWïe¿ä3l÷èfÿîË­â<ç«g¯›LUÖt£»Åê´_¿™ iXvÄ„¨LC³|rc$öGxiîn4>'q;ⵜýÔ•÷J³Ø9ÃØ–$'вéSd© s’Y¨t)äGòi 6ŒÚC‡LQ¿_6 ;WŽÏ~ò@ŠâÀÌÐx¢äÀeà ¥å '‰)¼w™qI+ø~åÂë%XÀÞq[“-÷ % §Ø [cψ4\Õ'nÑáA‹@\õÆd^ÜÝ\=MÖ:‹-¶B»nð¤+rܧµÅBüM%NÊ۟䦖üèæDƒö è(ùŸ+zæ“ʳ¡ÅËáîÀð±VúG½W?¯r§¶™~[nÞI“W2·=67TFT§…!CÅÉ6ÒlÔ®á³ÊÃú¯àüië-{î¸z¯gre*ûl… }¾-°A¨Pÿö6ÖYyÜÊ£e=ÎèÁÒYm-¹ÔIšÈÏÀüîø–yÊ0î/\ìQC;FJw›Ö),pt*íñë][Õ־ư[Ò¢;°á…Jð³~¡œ Ó °OàǸ¬ç í¦ Æ+ÏFI4 ‰,' ÷Ê害 ¨H3P ü|®VÕ¢#¦ö\b[Ϋ“©{QOŠAUº¦ö{êC)nÑRÑï…éÔÆ3hÙê]ÚÌü‡Z½Ê$ªÿÚ5ÚKñÃÈCBžåât©1s#4²T0ëÞ¢äc 9xÖÙ$»le¢¾0Ü3 õÕUx;.›ÑBR.g¦kÚ}Zz“~LF&<åH‘ÊòÙ»ve±Ú•ÀÔ½íy$ ´NÌjÄ>¢o­D:ÞÅv´ð’KL°fÊKIÎ#(éf²qE€–™FÈΗ*NµŒêZJ.z²B÷iO#‰¿Êqo× Ä3 zýÀ0üNMö[Šœ·»ÿ›º#OÁÈ“­¸„Ê.ÚW.¾ÁÐ+µÌmº4$VŒ |1f½^†¯ÂÔ½Üõ‚¬¦\‡5jµÒ¥|v’‰\lê7NÙ<Œ€Úê˜$Z“NÝà­'ã­¤j7Ë«KñîÝr΢µg„S€ŒM›¾ 9( ~¨™@TvzêIÛl˜€Cæ?%M¦ d¨n›Éer'R”ÕŽ®d܉‘@+‚c»æØå/]*s搜ëõŽCv¨Ý)Ãö® šúdP,*2Hm5®¢°©<âË|!?­v÷Ì&.-ü± ýSoÚ!Þm­ª tñî@ðürÁÉ_€™oÊ»än9y QáàyJQ"O¯oA‡â|OY¹pëuxÝ‚Òñ„2¦óýóEþB˜×i¾»Sâ {=ñ3Â1çÃ/(ö÷–¨ù:ié7·nÙþ¦Ogdfr-G€.6ßîÆ0 –+—íÜ7¾ƒ.sšç¡ Tµò³ç©•°N[¾Áë[f\ùþK§Žç2 •öà.œ!a”ˆ|H}6öœÓ&õPp¦™Ùòbk>V£ç ñçñJÔ]™Ž4¤˜8±¸$(àãüJb¹bw6p#Ч»å÷zSrŒÉ~l¼ñš¼ÿíkÿ ¢=ǹÀy_KèFìöñŒ`8U£ÍYç˳/Ól+YëY¨pþQÚÀ:Sǵ\§€=û¹A+[·Ñ§³@¶M7’®–“¡Ýð^˜û|]Šo ÍÙ²swíœS¿`9¬{ïüg¢ÿ¾#&õ¬3_Ú¢Óžqþ©ô/·n~ŸÃ\>a^\Ë 7]›¾Øª,Rå°gá ×V³S·(}xè>–‹o*±HGd¢8›p KxôJÙÓ¹Ö…Â!Õõ¢‡ÈD×*¦ƒßT½™ÜüM*÷îY'|Ä=–s©y˜ ç'"<4šÎZr”Ù…¶Ú*‹Vˆ!pšõtœËIý&‘È@nþ¯ÌiœI%è‹Ï„@iÄeSŒØç¡ÐAúªIÏGÃ¥÷1|…=#µinÍ<4žYB Ä>%{HÃ$X›q–ˆïtŒÓw’Ÿøúëb°ÁÙš°eU„ýDdô‹!Ñ  8nl©çÆ®v;“Ft$iÿ™‚·”€—ÇŸû®÷µÕ@ÿüEþõ–æño®ÎY«eƒ&v¥øs÷ ¦Ã‹P ¼ þ­¤R³·3°ÇÔrøIüJ^QºìdlŠÉš¨îz9üƒØZLî ?Ñè‰YzK9˜u§}µô‚ÿܶÈ#çØ7u€[íàq°Ç¿^mÀJª÷í¹ØÊÌEhxƒÇZ…7 +¹¸¦RÞ[ïl™X@:\:©(ßýjÀ¿IŒ£3ôP’‰b:ÜÔTøGÿàÞÐêAΦJÌň«üiTœSrè¾õVX´Sœ[=àÝíÐ}}¸…ÂÂzèÞ€á´Mu\¨$½dâÎmVjsÅYÚÚ*\ 3öBaìß›RÿÛ† ¾HH/Q;»Yt)Jê'èÙéý ûñü|·Wi”gD`ˆÕÞON †µ!•¬_u*/TM:ý6Ö)¿bé˜ç‘Û hL ét^>ñªŒ…=+‘ÆÚ_Ë*£;ô∾d6ù»\/|û>ovÌÖèT×L·ÑG§ö¡_‰Ðè ´J—Â,ËÂЄ‰Ú"%i‚Ú}Ø”–âó+ ^¢ë¾ãà¬Ö ½îhll¶ätUå` . Ú¢·ªðÇÆW¼À2¥’ñX?'ÑðXgoTH“ª³Ì;åÿ›|J:c² M˜`Þ˜½‚óÐ#…IÉÔv¡ÉZ‡áƒ0¡cœõñ:ôù$*˜ør™5c‰+Ù®®}|M W2 j™ª¨W +ë%åUoÄŽD.N܆}Ï÷‘E/~»æ_}p}#ÍÆ×Q»r“¸n£üƒdý­ð¬_[ZϧH“Yõ篞– ^tbK1+¿-zb“dIå[]¿ Cvr„1ô~õ©¡çnr¨†Š‹$JU¸ƒK<ÔÃW€vÑÊ_·ô1›ø*õ×μ¡â>ì]¿ëáùþˆ^ÀXc5¥œŸÑz¾ ¨V|Ó„ßRüX5‘ïhxã¡&¦ØçžÑÖ[+kà|}3XûE¢„¢¨ÐУ]I}o^_åO·{vöp+YÉžy¥›v\¼Ú;¯²üLµ+Âp™=H }‡Ú•œ6­ÐxŒF™ÿöúM1Rœ/voâŒe ú~ M¡œüÚ£™“xŽòc:î/ÙЕ4jÞ¼Ù}=ÏMxóú$·œqŒ‡ÊÒ2ø-?î·+"€?Á;M9ažvñ ³ Èt™§…ó¹-F㘃›d(ú¤èÛ¥A˜£Qvä¼ÕÊ•=à-gzÊîu@›a¡vRoELÅ-(P 6 ê ºH¤-Ø£kˆÖâ%`"\jq]Ù¯*¶¥ÃvÑÁx6÷†W—ϱ‡æÀÅDËnu)ü±UŽ”4>îÁ µ#—õrSôfepY5aø7wÍ€ÃHÑæ=‰Ux ɲ©ýÆ6›xPRVü¤‰ÞAkhû]“©¥1þŠæ‰,¡+5ø²¼Š„o“€'dƒL–S:hZ½ú¨®Ÿ UŠMöÆÛù”rî;ê¯ÊÚp%¥«Ý¾dÒ/ȼâåÚäÒõm½VþÊÞšD7²*Y–Ûäñ€ø›8ÚVŠf#©I|î[¹¢›Œ¥UößÛÚ )6"4£ýd“ iRç¢Caäõ,\,±mÔ¬0a±L«À‘ËXÆ'Öá®É[»†®Ï8Ýü°Ù¯5-–Hû—O‰î‚-3D%sHÒuO3ßñÀÑeµâ1öÅ,ˆDYàêDó¢í°~ª®i˜¿^Ë0zĦ’-gõõå“á݈i“•½ryãW”ŠÝ-IPߨ1«ê¼gn"œ@tSQ?ž€dç½R­èDO±Š]7Æö¤¬VW8=þ&i3:šwÅs–•ëB¬•€ÖC¾ 0¢ùÀ&ÏkT÷KÜY>Äæ#¢’ &-ur¦Nëy÷p!*))寏ù—joqpRE‘èlª: {>+KŸôÌácŽóÖãü¯`ÍÛdöqDEV¹†Õ*Ë·‹)o.å^@ÒÑ¿:ñcš¼oÌ·Ö>7ç˜ç”|=È'Y‘ I1Ë0,(K]‹_YV®qââ™jºg#HQûJ ”ß´+XG,†ÀYŸÔž€åœ%ý,S¦ÁPÇL­%ûºS×GŽ6û¸hK[^,,˜\y­t* WEËù?:9åÜY<ù+]ªmÌ¿ Ïxê¯tQ¥0âiêÞxÝÿÃg>“,-沓‰+ÈËK:` 5f&{8‹‡SÀ/vâ uõw×Ѳˆ/K²r9œÕ¼Â!^²É‘ÜÎꇀ÷¦£ü±>4h¨Ñ n,“r“JvÅ›$RÑ(78šPVž1íÄ’Q3/È´ORŽ—‹‘óªs =ÆÑšNŠÜ—^fJ™µ¼Ï30ĦYkˆµª!/›‚”f1$“¯K«àé­äŸ¯¤/'Üx®¨î]9^C" €˜>°ÑØGTøÈ`æ±(fΈH á¢J,…oŒε½àácYèU¼\Z}˸㠇Øf¦ðx]8Èfå°è ™Xùü· z[ ‘þú^Æfm§¦ÜQâ€Í ÁLDަU©Úéz::òÝIï›òåA9¸@íjW¬¢ü|®’]±PÀÇšéàpÍè:WW∖Ѥû¼:sèºb¿¡ãX…hExIS™nkõ~9´¼²NO~%·¦ÛA•³ŠðåÊ™´|?Z€dϧ[ät=¹ûë“뺆‹ƒIE»äÒGÁRÄ-üè²já;ÜBÿ^"'US…6Pûõ¥˜å8yëÍ&äz0<¢‰Ïå|ÍVÍ0å; ÞÇήÁ}[Ö”ž+õpl¦ºö"«á˃ª„ù:Pr²ã·?dŠ åÊ,¿¤‹¾ÄN_=oe‚ùÝíÄ·Qv;ÝrJ³ªÆµY͢ƆFð>³†8÷cÁŠXÕêsÛôEÛs’]ϼÂzLüÄQìì%‘¦W+íMÂ#=gÅÛJk¡Ãu7X9 E‹€,~ÔÖ!3^µÑJu¨™x霸_ËC±•Ÿ”සѹõ7Ú§;Ÿ®?ßœ<Åõ® aª‹H:šÉ¨Ã«½Áý;Ô‚ppZ"œÃ×{”õmyÂH¨íé´;=_<ÄÚŒ5h!ME`ëˆKv×Qßý¾ÈCU?YðõŽ–)Í«á`s³Ï©+WuÞ¼TƒªÃÚ˜m¸ÓÅ:üLÖ(WƒÀ[¡OÜ¢«çôž±¼ÜH(p9ýÒmE 7(å]ÎgîÉØ~=ÇI.;Sò÷d¼–ý£v½–„Ò4F˜.4.*ÊYâî¬GÀ±Ÿö“ÕÝ?eð>8ž¢v ^¼"EŠ=%r;ϳ¡˜™Ênó^vX0ÍqÔdM!Ÿþ£¸{¶+9XUŠÜ,/÷½£¢”N¼ZÊÙpüÁ¼ÏÉMÕNÁñM Ä `œmFR vîñ´×Û`„ÆŠŽ-M®ÈƒÌ© <ư2ÒxøSYeÓ zˆjyS¿H€· (¦Ÿ#¥ü6ŠÙKÔìL}Äšä™â;M‹åRüÈsFž¹à ¦Ö‚Îód1:j—•¼v á¢N¹BÕÎMY ÊÖEGO;/9YóÏ(‡Ã1€d`W{˜‹ô ¢€Œtsú7~0¢t‰Þ/÷øí{a¾ýwE7ØÛÞ] IkI¾ž¢¦Hç¾’ˆ|Çè‹ðgS»¥Ç·…Æ)Ò,À`©¼çðËÇ6æÑ¤UÚAÜ`…3ž?^{ †Y²‘EœÏ$Ú~ì°Ã‡¶m²åN¼”åO1G3ÚÍÐß…ÅØªžº|eéžBŒ£ ï.ÐÊùG)ǘ¬Ewü¯0Q;4zÈ1`€õõ­Óì$øè–s;¼ 5/÷º÷Ûû+VVp¥Éf£ÉÜ{”$…tÖY¹ó*£ODAÔS0ZB Œxà»MGXHÞãÕ.õ §ÔùAÒ£4û1áïóØrèÒ2vK/Ô>P.Õš¾Ó1Õ,v3œÒy²7‘|ð³^’.ö¿­uܧ×àN0X7¹²è‹R‡U£½ùú)¡¤ßvAÐ[ Ãx~ Ñô‰ª•¾Í„_a;‹Í %òsC²nÈZà•ÆÂlÄ8›Âùä`ŽÀ? E}Mõß7,³\÷XìYã‚kºbü¯3°°ù|”ª¨9éG°šÆí|ñZÚ ÿÉPÞžŠqßiÒ â…îr«)k ™Ú¬å$\GÕÄkÆyø¹IÇB‚-˜ŸÌ “žr0]ÍâX‡©«uÄP¥á×+±AÕ‹úkrY‚V™›KR\†Ôü*sÎÕºó¶ªË¥¹î4E®(Œ&ŽH˜:!=EÞ(¡fÙ|{–Oé:‚mÁ¢šõóYéé_žSáßáIØTö—a’®n]Ôlóà xܰ ëÑ D˜"»‡m‰½dηܲå-¤‹®(ß^תo{ù’H3^LGë+v×ëþ 6m[Z*îò£ü¯6zž(ó«Ežë˺6Y å¡#ñ¼ æÅ—Ê+ :øNï{ÊåËøfpb%c—µ•F+„ɹp|V¬ÝVúRRoæmN/€„JgF½5”¾‚ï¶õý/)›œôþ’ó62à%’'S—¥âÆð ɇJTARè K´]-+‘{AÞvF¿¥.f‰@›Ò"v,ZÔÐ% 5cFRMStàÝm,Ê£ÓóùO™¾°À¥+Oe uPpÑr6äÖ×þÎÕg|ΩµÙþ1À‰¶pŽ¥·Q&gŸmÌaZ·ǯ„Ý`×'z›r´¼S ³ tŠ¢ü®ibôÙW® ½lzß°ÜåS8„iAq)®ýéÔ+É*““ÖÏé‘»• Ò½þå- dŽ)C7º¤E˜8gÏè¡©H,"¯F¨äáB>%€s`oÆa>F÷Á“6òwyOª6>…NøÛ–˜949Öõ,^No/Ùô5W›>ý+ð´¬ú蟌è|‘†XtW {Øl¡>&ÛÒé»®ì–özî¤óÔM^µ÷¢çµEƒÉæÏЃúÈ0zTV‹éÊê’Æ^Ë„Ža±á¤Ïc[Ix´(žª”ÝyÔÁ“+›×Wä'7"¼V¡ )péÂ:8çÈ.n}äb‡+ÙŸg­ë"Ó-K8ú¬ƒÂE£Î %´G3Ú^îó‡úÓX¤©-¾3žß:¾<ÅÜÊšj“ŸkóÀ¬šé¤IˆJ{ÿ>Ó´˜O¨ç¦Ô#¡n¼ dø 3UóVššxš[ÑFÆQR¡ïüXσ»gšg)$æŒ J*0mÀÜ!ý’!ïµ<)XØhƒðêi…;¼œ¦•Èøµ_C¡¹–#›+¥B²ºÝÙt<¦ÍÓ$/G»³ùÊù¡<0bE÷ˆžº÷†’âvm鄿àœînðil†:þ®Qïõ?q"ôž£À¿Sý˜`",™Àn†ŽÑ8!PBãm˜ïùœ;SŒß”6¨kó¨Š 6ß#ñºlìY<“®¡_) ö#„½¢uc(sˆKÇDÎ’ÖO¿a£ó ø‡ŒúýºðüL´g’‡À²Ãè(ŸÙ~¶0sN`NLïö3œÍùS.áê§ö>ÜX-A´•Ÿ\UîêZŭƾŽîkÂ_ÄÌ%8AÏÓ$ÆèªAôÀµë¿ˆ¡5W"¸Ú›D<7C^À[aGÎvt áİsPÑ Ÿe\"ÛœoóMCBll?¶gò±5Í—¯Ö0îÑttÃòÕxuÚ*8)÷ÍÆ!>Ïœ%î´t³¼.ùYžœ·­ð+Ê6éxŸ{Ká¼UUdSнXÏÂÔúádæÙ'­‰ÕþflAÝE-YÏÌtç¼Ó߀9&Q«Vh\^¾Ÿ ^YüM2ä6¿ûmªC#pEÎZx?mO|#¨ÝåΧãNG¥ ÕWòé׬óPÁä0vÞJVbÎë";ŽyŠÄhâ•­4 …_p¹£K»­Â‰ÀlÀï•~ª£¯{¥<5½ 6»ÖR[$’ÔQ:þÚSdTEsÃ)M‘ Z[ò˜™F¼ã'ø¦Ê5ÎwEö°QO¹ÖM8Î Of ¬\Wî¹V)AÛÕš@ób\p-µƒÞNŪu‘;ø“?ŽÊvÍ·[ 6¹Z”›­ûVOq#»]÷,Ú¬«±&ÎÁÇtÖn•ï¿%,>Èü± „Mƒ(¥“rXt‘0Ô…Îoõ&´d„É ?Õ€½VÀBðÜ”?)aâô£Ò÷ö ÕñC 0KWK[˜äjÌÍÜ3ÎMP1ío©·¥ŸíénÛáD«£’Œê¥&¹œ™*äü«>°ò¶ÖrsÊ…:K\²?a$Aóé”})„²_‹‘ÏBµà¯˜ƒ'@(}˜µÿhzxÇu;KªÑù¦3ìó9&°Î»P$p<¶nòà3ý»Ö&l|}È7—¡§Gd{@Dª{ž_cNê.Žßª7SÐŒ˜µUu¤}w½úG$íïd­ŠúÚü hwÿuÿ§a‡¯ÃäÛFNý ˆ''-å`a¢äëXdV)0åÚQ¼ërpÜè,Áú?#C*{JT)U §] ÿ¸@4izŒ`Ó4¾%Q4' ²«|nEv®~¿ÊV(û‚>¢% ÑœÌ,nðøHŸÿk7…¨D~ŽY²#cé,› ˜¦.íc!Ófòwzñ èÏÃþäTÅñŽpžÌ‹ @l 1¡ìgUz¡ñƒ¸ñvbã@9‹²Lœ|ç¿Ãïlåê,QÒ_òyàüjðôÐA_î0¯d;ã‹ðanivšÐ†µ{Z¼¦š2ÿ?ñšd')—ÑSE ©¤”FW–^ZÞ4y8Ég« ÉÞh¾–W@M ÕW2A˜YÇPˆ×\áK—Qh£Oîª'.V({;É¥­a ‡9,P+ÿ²Íbæ²k¶õGMWʰˆŽN)ò"~Óµ<†3æ¼mXx)`Ì0j²5żŽT¦O"ÍÊ*"ÕB)_C£É±¸ üM"ø¤’ÜG5¬º³Z­Wð¡á÷Š%o~aìe<xùYÏ;ÇÂÁÁÖ7î¨FïNq¦ã²ðeÑ_þ=5+d%4 üÜŽ†=‹|fWsKÛ$‹]=ÐÝKµ¿m«²Z" ]ªaæ_Rª2{²·ã~¸É5˜a@6aÐ\ž5Ù¬Zkœ{< äI-sŽQðûô2 Qà G{› Íy|D”ŠâRÊRKLiÕ©M‘»“KyFúNHLÎ;8!‹!8†Îbe:êfM»{xË|*o¿~oä¼h‚,aÙåv_šßüM[±œÝx«ƒ¯¦LãÍC>Iáfx×a:âÍkX"6ô'¨Ë¶^Mµüà’?ßaKøâ8,™ Ënš)FG0~cÐq:õ‹q:lNGÖUtÁz_ÚéÚ¤‚9ŒEÅvZû’Ú[ðч=®[c³çgSº"å²ÌÑŸ—‚ª¾…ÇCªOÑYò@’$íì$µ:Æ'æí5発p¨x¨ËýƒjQ\+$aŒQgä–]Ú1j€ˆg»l7ƒN]Ýþ½+(HÏa0;ƆD> *Ö¾Çz¼ÄÂ>üNMïD| MXýʼnõ¿GÐçþöO„.딼9ªp¹Ø1²^øûdÄK5à X„¦y¡75wÝÃŒ¤§êÀ.?®«$z¿@cƒ¥¹}÷Zâ0¯Î µp‡Oô:k@K·7úagÀd±|Ü å8ý/,ï®zç ;PªWõLº@jj0÷ìõ„ÍÔLþ/õr_û!M²Î` Ýáé€Ùå‡|®°}hê¹l³ã·.7ÁÛUÁ 6ö=3CZš qµxŠ€÷5ù…ò…„=–È_½/†ä1Ì»}Ÿ ˆÔ.üIíÂo1B[T’ÏÒqÂVGÔ}dÔ9›E‹Î͆Ô=jÅ®.°Oo/ƒÎ —§›ˆî!ìkª9ÒÂh%üÐd‚N£xãÿ¡ÉÒ‹»kcF+™I”V(¢oœžÂA+ ¯gµ”×ìdñml_šôìJUEtÃüðdN>‰c… $½ *év ž¢ÄQ {d¶n»VMÔ'`¡%¢µ±D=QUʼnÛ1" ù¤3ÐѨƮëŸZÐ=jÛˆM›ûhEÂìFü©Zö–ÕW-ofž²üKjã%1ø6΃~á\Ò¯vCe¡0¨üM*ú[Nn )ñÛ/r…ë ññë òêO—ò-ÓÁÿŽGg!Råû #VþÖÉe¿»„RH¶ÝL/ºwí±Òé²íB`–_{·¦XCdO„Âxny\¬â5TQЩ)»sVÉiõ:µ“:î“•ˆ¤uÛ`ÊØkn³ Íþ÷@{Z܈d†{0¦™ÏKkã‘EY|«À_:£ûèh¹[h’øÔ’žsOü,Ô}Œ£¼È ß]I¯Óve@=*"4]™íO*vi^Á\þU¬–šë¡!ãœb™óÞ¹"'C²8Ãéc²“[P£ï¹.ü¯+·}eϦùÃï“ÈB_ñn<­tªuˆç(½&ŸE­–RZÓTÄÊk_hPÃÔ‹XÄ"F»ßYòÐ ÔãíF4÷¼ ÷hž¤ÌØj³ü‹°;½3U¼S¶‹ºÐ3q™/\ž8Ëm9fÉgua8£rÑú÷]+NŽb¶“Æ CG?¥›3¤•Å7˜Ô3{n汈n‡þùOñ¹ñ¨s®ü‘~Ji™›:Ò?õƒnCÉKE %ÓØTei¼mmÁ_–‰"ý6û ðÕ™§+#©w´5Õ‰í£~þ´LçèéQ8.41÷Ê3ܸÁ² P$rh´ÛÌÍe ¤}(ÅÕ›Š*²j´¢°œËtt£ñ~’—fÇP·¹y+¯±šài;¦®{ÚEvÅçvÉ÷¥ås°ß´˜a¤w6?O¥'zuïO*ßÝ5/c«”Ò.9àž˜m3£‘Û +éîàð—šµá•~ \ëÛB'{ÀR?–ú¿° ¤í´ÐwÜ(¶›A¿ «±÷Àˆ,¡7.Kš|qËh¨b×ãF†…%/>x”.ñ`—'–¨(øšÆ¦É*©8Zf+ ÷ÜÖ–.zúÃVYŒ²ï?DvC£]<Ü`||Sr¶‰äcü6Š´2Í@l•4¹"BpßÁak‡Ä©Z˜PË>¸ßŽ-ðpýÍ‹ÅU:xÃIwgÛ…Ì _LÛÉø.1 ÑQ‚÷@AaéÞAž½5ÈýéûNúz€&v>OçM»îwÈ¡§YéÍZ¬ÆÙ}6}X½®r+.þ™Ç­¾z>ÏäÀOl¾Ÿqg »rîrSö”¾]`© šöÐ\ž~f×À&ûÑòË6p{½ÑNôWñÜj3z*Í?uxû"'ÆìMþS,è1ÜX2i”ˆ=}s¹c,(pç‰JuF³ÔíN€ñÖR’Å›HzÊÅ/ñ€Ç!ž¤ô åáþ@JÒêEõþ0¬Ë¼»áb ”GÞ‡üM"LŒÅò¸£ÎÚ*ôŠÃc/m Q³4FÔÂW?e!öó»ÞpsYwí“ÆÜE싈öÄÈÞi{}Ž öq%àø>¨ô×¾‰¾f” ¾h‚Ã>"v4Ìõ­ØÃÆ ZÂO4d_7“Zú‰œž½D‡‘5CPF^Ðv^³Ë‹æDdü*µ±ëד¯©CnëéŒ[óEj›*e¦ÏÌê3,~´bÇ}Æà &©ó¥Æc9U ëL«o“Ü?ìq€Hb.5êc#m²ÞŒ(Ú+pë?$Õ+ ãžóO¦ìô¬ XäJ§AL±ÜOèÓj5KLÒžü/¢T¤µ¨÷íÈq!5%MÛÉ‘,ö5êÍÜ::þу1ꬕI%‰*&^““°à+:‘‰Ñ}>d¥ë8Ä|d‚gÔW^†d5v·šEC_‡v6*\Oéj”3Û‘X¥Ýz¸qϯN3}ý,r‘exÑ1¢Â:Ý­,Ü‚S¹hm q&•ù*ñY·-‹šÅúÕe-;œ÷Êñy%E¨•ïYy  k6܉F%>ûD{óŽr*¹>xM2»°kÏÑ+*ÍdðO ³¶¹7l}ïîö’Â컪Lñ¢–‚•'ë‚KÞ{¿÷4Fço³ñ€¢²õû´v'²N6üLã¥æ¸ Åò!öü#¤Ê ôvI·Xk³•°ô¼‡Ýw©ñ­Ýn8#lÈÏîß<¤.jI[#¸9¾¼5?‹m°†8bÙpg뢴¡ÚU3rM@a@ HgÿSÞÝà !uG¤€¸Ónÿ†¶ QìŠ ùÍgkñFÛ™ó!Aýd‹¿D;ª#Ä}K¢17VÈ+åŒ.I¯˜7%+;¹ÞžávZdGýÐÚ6Û{n {ºä…RšNwnAL£RGÔh|Ì„Ü(í'üŠt¿¹´œjrë}Ôï&¼s‰Ö.ü0qVHQ¬J»¸1Hoo—'Ûêç¥HRðw›L¡±æO+bŸ“qª„(¦ü®Š „NŒQ²†,ÆMþÏ¢_BDâjÍQ_;P÷¡ÌBtÊçZÇ4Øš¹ç$º¼Õ­Ûƒ¶êaq…&?)LÉ×ÀBwÇït[¿' 4„Åhrq4 ŸoX]ј”¶ÓiaÀ 3îM&%±½Ú 6–x^2ýSÿíu],Õ‹aé sú•ˆ‰Öµ+g ÿÁ«e#yÅÂT ¶Œ€vÀtxüÁ”·F'4€ö]$¢CÛ³õoq39Oî@m’Ü«‹>3G¼”DzõˆwßÄkÐy…¶ÔKØÑŽÐc&ƬÎK¯&PGÃ鳫öàËe¹B¹–ÆQØÓŠ9±ÑE¥ü±?@倊j·ÿÝ„QvMŽ,þ_®ߎùòk‘¦õˆ¸a¡„]'ì—ûŽ: 44 õ]7úëJroÓ°/—¶ÜÄ/SoÖ/1€P¹¬Y´7~P®¬³Z·n¦ÅLÛiû³u´i¡V¨Ž`«¶I0¼±o—Ãî3—¯K"þpwý9l$Ýæ˜ªØ81³ÔŠ$ŠI‘×ëãÇÉÜþ;Twz ÷IÓw'„õVsÑ*I•q¶K¶À]ÿßã½ëøS‡ˆv¼Ø³¾Ù1è3¢X€ž¾3/½*ËLgoB V‡ÍkÒ?¤j§ ò‘eƒnçOâ‘òú1:Ò£ü|¯Ö‡Æ/ê¼b&%®x?‡¸…ØØ!µ+H7`?ŠÂЦ’¸AÉkìgæááêÓ_#]Î鲈ºsYn•cz®u‰]ÿgKœìñÓ*¾u5l·¼fžDWÒ]¿¢ž¬CÕRc¡€µ\AòB·©nÏ¢Ô¢ÔÄ/Ôp³ì̓3ÏŽÍ•‰E©_æ»–f£Sê×TÓ}ªÿê ýæ7 ¦2F¥©O£â«išG7LÙÆä¿FaQvÀah/ûs怖X9#vÕ uçxT–ÐÝ2ÎÀ´Mv“¾¼ŸŸ˜ª¡ýÛ Qc¸xæ9œâ¦EçYÄØoî9ƒä[u)"4Nµ1¥U9½^= õH·ƒ³l–pîˆn[·¸«Ö Ѩ Ÿ‚ÀÃ;ü’`â#PÒœ°šÕhv!žN×ůpŸZXå²x¬ë™ÄÚtÖ ûÉf€Ò+_xsÕ1(©¯¤iª‡…à c‘ÅšÞå›FB¾NÌ+ÿÕê@ÒÞ31ív I¢WŸ»P3Ô³úÃ@%qd×Åp¿„Æ?¢(*-s»™¡ý¿…A¬¢ãöOggS€ê ýÄ nS·Hëêìíåêïëäåíþÿÿ¸ÿÿÿùóøÿÏüÿûýÿ ÿÿ»ÿpýÿøþÿÿÿûúúýþÿÙøÿÿÿÿÿÿÜ÷üNPR1!)õš„iVJň8ßy‰U>¾u¾âˆ¼†À”$¤7bÎâeY¶º;¤¯÷§QäF,µ=ïžÒ‚Â8D%‘^^¥[©}kâo€»%çñ2¿M@X[kÔaayÕ¶œ‹¼Ðý׳g¥LyE ÖÝ•u¥35¸<©Óm‹ÃEÂĸ2+ÈVg–µýÍ—ØCí௢+´[W¯µ+ J™¨F𪉩 { |m2‡Šô᪶ch{«Ê7ûÈ1ì 8 ª%€!;5KU2ƒ7\½1ËUpõ—áÚ`¶Rð„üLçÚ`É/-œDè|ÖÌ^ËŠ÷ kE¢a.ì5oØ#õÚ|¹ò9þŠïEyc~ø[°1d¹3FU˜z˜9v~*•U­ ÁÂ×ÌO¾k{õ–ªÙñ»[Šv×ç}Úpõu®°¼Â6œ!w|²ôd±³˜¤5h;–fcÿÑ0=k èú~|üó¿Âd˜ib4[y¶äÃ’~æSdðŒI—<¶]obÈT0“/öµTÐ ½GHÓÒ(Ò/¤¯Žo¯W¬l¬îV’qŽñðÖ› €Dë'Å¥öÉxÓ*…——?_`ËÓHêP¦üLÖœ¦d£ñ^oMÕ8ŠB!Âã°ÉškÙ¿h„¶‘KmŽši¯?\q;p †\ð1Z¯†!„M3@D÷ã«ä²j:ò³øb‹À˜<¥øg¸Ì.½›â´à*%žqA#š‰içw¾rPdSöd¹#ÈÌÀݧ㕽±ˆÞíÜ´g¥$ìV:}'Sßb²c¸›‚²²Y]ꮽ8uŒÐ¦G݇ƒçaLÇÐAª$‚#˜ ÕØq¨á\ÓçI„Îßë׺” 1"c­”¶˜ ¯×ìL{v±óìp˜©ö½³¦®ãû/ ;`Iî&üWô!çf0ÅÎtD’ð¶…AºÔ,LõŸ§'zÂôîñ°_ÐEo‡kÓ"‰‹SõOÁ[hÿ5/ö¿$lY5“ºY$RïSéŒ{+«œUíèˆÆÔ¡ £êŒîŸ4:0ý [,–]£†À±àß¾Ã/еçðEy±óá=OO íg€ûõ°Y*`[Q}†1È3Ã(XÞ‡„=Z¦ZsI›RcB¬#¤š¯òòÀgÄ|S_úîmáU>WXà"¿%Y.9‰•zˆFnP‚\Õè“wb DXGÁõÚ«IÑ8[PýL#&Xü5c8},¯£Ôf3ÅmÜõfC2Ñœ×gØj¶g±4}í÷DŽ;ïìÛQ$U˜&©g‹]Í¥tø™^ÃÈ£÷0ì©{TÝ¿´âî3Vf ÅZM,QH8ò²ÂœÊóî“úøV#ßI ÉÒ{„X%†»ÅO¾Žôw]9L% a@Q¸®òçE©Lî$›ÚÿCÂPã&×á,ѾN¹ÀáÛO›ª]¦=8fÁÑøJÈT|“Žti–á37ô:Íúl¼2=0¾mWAj64ã†ÿ[¤ÚFêWÿõ9åüLØC :¨W¤Š¸aN}™ì©²ÀжÖ?±ÝÊ̵ Ø ’ê°,Qy³](¦4€ËÛ©)"àPØ8ǵ%ûÜ8HS7âBbú†NýÕ­·8ïiXÔa6ÊÏü94ѤS=·ØZ»Ôæääyš…–x…ÆÚæ¯ÀV4Ȱ‹,éO&°(ô‘j2YÚ*n^Ë ‘ L^þ†\ݬ͌,ÖGïbësÓXŽë®ÙB=?,ÔD×/ÊfÅDW¬ÌŸF³ß‰Ç•F¥ƒbx¬ß¹¿HìÛ Ü¸û͹hß²úÇ-ßµÒWÖ.¦?ßãÆ>'oä£lÍ3­p¯xB6Î×ÙÓw#øŒJâƒDšÙì¯ï#}¿UYÔ@8Ù‰>+Y4ê._!ûrÎçrÎðͯÃ}v"¯²¿Û×*­Óã 2û¯ÖêG ‚Û{¯lÃÖŽ©]Ø~E°íÔo·áê]€'Gc º»¤™‰ÜK;s\0ŠÀ;ü5V¾VÃÞ§/¾—bŠ36ª¢Ÿ¥ñÜ•о31øcY;ãˆÓ ̰ÊSŒ ¦»+åøŸ¥H™ê¼e¯Œ_¼\T“%~ èÐÀµë´ªÎY×áušÂÆŒ/8ÝÞŽk~¹mýÓ‚á QKRëpö.¬šKØ#³°ó4çòcÖgiÚ¥>8ŽU$ÊT\áÔÁ%'~ük²rÌTާ …ºÕ4SÎ/»ÂÊBŸ¿sñ›Á´;ºª˜ø{fÙïÄ#Ž©è»lþŠ{g¢ZÊÿc:N@Ì T³|³s ËUçÈCÆ*x{ü¯2 ü{ïÃ’œæ|]°?h­¢âG•‘j¶-Ãæmoú•Ö²ÛnêeT6âÇ¡¶Où.AÑÙw_údä¦ÍH/c8À,¸!QcÖ)ã4œ£‹ím x(Ú{ßíMJz"0’g„LHPSdcb¶þ?›SÄ-¹”}:UDS Ä ª*mÇñåì”®–»Ü´|²Êê—f»˜o¿É\RÀj7o•²»²E"¬&qÕͯ§Â˜‚¥fÂ|¹£…žÒuÞP;Œê5%+÷èò¨²ß,G7>¯Íóm‡«ÈÛ…„*\¦JŒ¨¬“ü6@!ÓwP¬jW 1ØPJÙ`u5áÜ«‚˜¿ò£G-åÅ“ó`ÒTÅ<áï­¨eï§š0t²ŸÕrƒ‚£Ïõ‰ûÁg½ÊàïŽpúqÌHàU Ko{UˆÍ'Ìᨃ’ÓYʤÚ™Gá%ÙüÌ6’ÊÚìT…ó‘$ ¥v,!ŽëË"ƒëùø¶SN…¤C#D<±ýƱó‰TC'Q°ÜžŸåhIl~÷Ø„¦™*ÛC¢ûðPeF·Ù¨o¸ú•ÿ k^.ùgîùÛ®}¨†JáÅ5!Ç ê–Ñ" ~«RI˜˜zXWÒ€(ôf±8Cí'¿_üM‘¬ãKg®¡¡ò-lmº‰ŽŸŠúè!ŒÏöW¬fÓ(þJöšþ¥ØÕ5fšD¹ÄéÁ™J°ñ7ÿtÜ2÷;x/ÙŸÕ-Û:ÉÿkŒ¸8Â\}ZT ò4ƒ¶ötð¬>Æýä"›¾dáT˜VkJ à6Ù>(a]ñ±„(jMI¹VêQŸ!“(]«ÚºŽÛòDVo}UG¸…%xx E»¿™¶ €%Oº—6A˜¯»âG JæÈû~·j\•˜Æ-¥/€d†€ˆ$S¯N˜|lµz*©Â3u €šÏžÅ”AKi@ê XH$ÇÖ…±ÑJdÒ'd‰ŽF¾­™âü|®49VÎoq#²«{œ¹sª¾9qqB?dLŒ—[âø-‘ç6Õ4Î'³»ÃkkÉ…ˆ“—áµ8ëÑÑâˆm+51?wû"Ù…3äaÌï‘N7$’ 0ГÊS—}¬à3qéǯ3­[æú®õ§ÆKâžæv2g–JU†ÚJÇŽoØñѦ,ÿ¬¾v•”Ò¼¿i‰{8´¥îEì#*'_KŠ *þú­MÛpBz¶U®~¦tUeœOzï“Æ:S}ÇkQ¼;?êQÝ`Éá¼·‚Wæ±)Ñõ}¾Ó£ZÇIL=À¢MkÛm¨d §–Ò˜yW‘)µÃ¡÷I÷ÄÇݶLûóí½ ›í›á¼=šÀj1³ÚŸ×4œzd €t iÛ,p÷>ç¤ö1¦4þLÎÂñ<Á.äàª4Ó"c B˜ÐÙ+Æ´Ž»1Õ¯š'ʼå1c«èK.2"è?€©Ù-R$ÁlÈËN|A„>$~˜‡/Méð^€ŒÚòF¼‰Õ<­L9SK˜Ü~ÆÝÌÑ®Ž$%<äãdðœiüL×R¨\߆\Ì 6†çSúÎîYËP·jKâ¨ýRë¹°å½¹æ™9Ÿ€…"ÏèPåë,‚ë‰'¸´:ûíP²sQAßô… ºe^7WÒh;X“­©TõÀ³XA/d¬«7„~¯0$rŒ€ ßãÑfÓ:³!ÒCÙZU°H˜ KZõè¥ï‰Ð2€ç-KÃ+ÿÇÃOÎÓÖìÂtËpÅ>é°+Û§FßÌ&—=QrÒ'±»Xtüf¾ç&$b~gÖÿþv(ÈD~e”…ꀅ<‡ïFÏŸg"qð6u=|•÷{Ÿ½ÊfØÙÍ?ª³ãÍf13o§{Ñ .¸egq‰ü¯0ŽöZ–Ửÿ¿Â_˜"<]N„{½ÀvêŠU¶˜}¸µDÓªR¨¶ô¾Øÿ2Æø} ˆ÷lÆO™WË=º\Ð,»KÓw°¨¢³‚bV)û÷Ç€¦¡ãy'R$÷ 5S¿òì,:RÕ„=Õî½ËѶ^;æ!Ãq@kRo °ÀAÝá…™g¦GݨЧÌÎiÃÍü$R sâŒÒÇa?k5ßïpϬ£13ºE]Tbš\‚(rIí²{¾KzZ¤_Ny‡ ¸_pÌõV†cLL=×5³žÍÏ.ÆR !z_Æ®ò§Ûò½(„µB7l‰<_D¥8#cï’– üM4)âÙ.ƒýö?èUx—j>¬oŒ3(¥é¬:ø+,'íÐÃ{“ªÏëÞ1¤zÃP‘ÿTœª hq_–>óžÛ Ç ¯ rc+ŽººŸð›Ù´L]]b.kLØd_H(Ó%¡æÀ»ö=Í,Opwœ©VÏgÛgÃq4- ÛÏ®ŠÒÁƒõ›\Ï(š!íØö&r&°UwþQwàøw· š<ÖùK¼2ÿ2—™=!+üm"6º‹ru~)ñòúê^IÂÀº7%’ûíXÔSîMsˆœ­téѹd›c ¼x¾ø“T€ è ú„i®Ï.óL,DæüM2TMÎÛEŒ‚‡°˜ZZÒF/+ܱW]é¿>žþ˜óŠ6¹2S· ¦¬©¹j&bb\×/Á#ÑÏ{#c ù”Ö2P›®Ž^ÛU¢:¯%R\@’€E}äâFMs‚S“жA> I¸ôÓü3…ðJ0¡ú=‡º³?ƒ[~pp>žÛCŠ~>ñ¯èæÒEö ˜[‘ f´¬]O f÷pëC§Ö«TSG«Æ››CLSaéÌÞÔ¸µ1¾V“NÌQæ°­-ƒ%@ùò¼$&˜JJЫ/•ƒÕ>ûâ`뜌¥[(YJ.G3Žºj)½“Xv®*œ³Ÿˆü¯<ô“’2Çë”Ä,H9s^ÔXù¥‡~ <9p¢˜3u¡Âšð[iÜY°Gw ¸ƒîjÆ#ñ„52M¥æø¾÷â>ßÿz7ì’Òÿ¼Øõ¹¿úÈýõ„EΉ5ÍšN_X ½“µ Ôö’¾Ò·TŠÒqÒ†z>C NžôZZkïÕ]Mì5é:.ù@À6C+DÐh×â "¾´ƒ¢ùŸû”øÀá­1Édv£v|‡0Y ¦èï?«Ç>ì×gŽÀy$YØØZþ‡&¤6ôý\ó)yt$y!,ãü±œÑ^!é6Áw­¢ÛFœ²@hÑûº|°âk×ã÷bøže»#.š•Ï+]Çî"–‘£÷ @-%Öí¥g>äˆH‡pÇ_ýçﱇO/Äÿ¤vô£ä°Ïc7º}¡–µ÷QkG‰D £Iw¢ ìÑ[¨Sõ†);!Üø±«Xs«ºÓ~8ºgøI óZ1}ZxL$è#鸢ÔöþW&Em$Ikƒg°ïzz{™ÄM‹÷„j¬ HG®í=ª‰S”b!ô€€²Ua组8fËY1§ŠËf@zG¥L­!ÍyÂ7Àl„2ñ« Qœ±Æ$âü{=6â ¼àë×!± S$†NA*êC ¡ušîº·‹el`•>RœÞ.Kg xŠÿ&¯Ø±í³´ªðäNØby1ÝÞ_јÿÕR%°Ð…N{V AqTj8µâù«|a¢PÙ›‰l,3>¼†¼À*ká² ˜™Ÿå&4&þ? óŠ÷ÑØîȪÈy³Æ…¥œªbî"€8Õ"5ÏVYkxÈů£˜íEò»0S2‚1¦8Òjû”s›|tõšÚ+|Š×çÔÖv·NÎc<Ý‚ˆä Õ†£è“wi3l ³ÄÙJ YÇ:ææCŽSì±úŽ4·w6ó„ô^RqÁ$'!¥eÈ5[0¤ëáà9¥#ìÐ(ìõ¢Ò—raç$ÔJз6óþìW±l5DÍ Váõ ì“D–CX_òÔ’oQÆòøà5 ´Û?a—ºxñpÍùÚ¼?u\†$Äfî/í|$G&‰ ‡i>Áoêc á—0ëÑ“m@%M+ )ŽJòt«X1aÆYÏVåÛˆQÜ-¥JÖat¡-x…q›t4F\ׯí¦~­·5ަmŸJÝüM*î€Ó@Tå¥óä{í%sPÌ 첈R߬k£s®Ð¦Ñ‚«•ƒ§¤•ðC5CÒ¸èæÒÅmN¾rPÌÐsFÏÐÈ]ØŠþɃ{£h'™ChqICØ· ã´æÂ™ùO•é0Ò±ZA âœø/¿É«?“;V~J'‡³ª„¯*„Uq£C†{{cMÚk«,Šî’¾ó&‹ƒ+,Œ¥>è)²ä°Ñòÿ{VI’{ Þnºù"üQ%Êåî‚mxVžÊ¨xÏ—·Þf¾i®èñÑ.û—«ˆGÌi-Æww¾Q«)S2˜…Ç&*¼ µ¯’ŒeYŠgü5obpÄ:1íuËŒ‚‚OÛëBîX?ÍXzͦÎ,¤‹{ïýTZs˜l¢0ÿ§ÔÊâXµU('ÆŒ­©n$¾<1¦ªÛ³t“NYVÆ"óI*÷¸ÅZJ!è{19Àœ’ì‹GSõ“Õ@ $¦¹L°‘âÆvÛùb}”œ0ÔÁªïfšÃ÷R@oA‘'£qø9e!Qô¿`@Z#nXÖ›É^tª»³q9hÍ/‡KSÛÐGb{e¬ýþ„&{¼Ì–Cvm:^,Ée´î6!¡–Ò•OŒš6Bj•cŸû–‚°Aº½fIËÞça;­2në ³Æ*²×ü^—üL؇²#í¥¿®‰i³{mgYz«ôkºÊ¤d¬gö¾…G #§J?ßÞU¯€ ýJý'`² ;>ä/ˆÿŸw tྸ~¶²nHu¥ÄU.GH¡‹û0NPz ¢Ô¥’O°(R¦£‰ÚÕZ«÷…ŸKÿró1l(”ßLÔúXD?‘ƒÁIÆn´ü#ü9MâáѸÂRXW.TE°FsUe´" Qõ©I§ÿ¦@vг¹[ëJ˜f~8›wD¯p€ìCžúf´æ,î‰ñ!ÖüLã/O…}ª²’]rhè42!6½ÁÊO}«\[a£7`Z$_Ú%fù*éR‘=üH.r&kzf«Nˆ's|y1Ï€~íM»jz÷ËN¡i Es 0ЇK ÚŸ† º£Ü¬  58ª¸ªÕî‘Qç[¨ k Ê\Qôþ$ëÁ^µh!”öÃ)ñ"¹ýp+~[wgñ˜0žGf¬kRdœT›Å•8vÉž :5=‚ês¡üùN9|òÆ ‚^q¢í5ìÕxME€Åèe³oÌ G­ðD”˜gx`DtÝ w)ß)°oASi B¯¥‚}õ>EÌ=°{¢àí;@®pµdŸ±F¤fo/@#ü®œw,R7W’Æa>^Õù[æ=çK#"¬$ì‹} #"W"Ei&¡ _}ù ø¥“)÷½mĺ‹÷ꀇ³" Uœ*[Åœ3\³!fNoÔ¥¢1”í´‚TÓwæD¥@Õ„3±³ÛM;M›½zìÕçe3¤ÂrøêÖÒ‡¥Øñ~V}y`ZqºàÉ7/Õù®!Y4»æ½È¡¥þÿ>¶{»¢`@cü—’ûø°¬­÷c¸ :ë¥ð#l ΪÏI´›Ê-ß®¸ÙV*Bûz‡Äf© `øk`HKíz ª ¬:ǬúÜd zB˜Ø~¿7,ï‡njÚ‘-õ l¿üZ™¦x8h¢ü|®Óh¡Ç@ 3ã #úš ô­ÐL?:.ãÍCæR`ôGv)¤NšµÍ0iDeËa¾†Ñ'¹}‡W¬Tò‡¢}ÇÑŽœ§Eù…Hú©‹­í8S‡»ÝD¾¦±o§}–U+G7óf±7¬Vûd7;e;È$Ç ´”|Oqs¼C† >Ú‰7熑1ãþm u‰+JøËš ØC›¬ýY"jÀ¿ Þ5§UƒQ ˉ5ƒ 0<‚º±ŸD~£"ï÷gÖj› è_½‰V+^:‚ò‰Om ~΂Û~× þ4;¶¤{$mƒª‡·ØúÆØóUù1Ø×ÌSGI0Ìö]3;îÂB0§ˆ‘ýPzïhº“gm\>Ln!ú»Â@-‘ß ;$[xI÷Ó_}'¶÷PsÅÁîð‚͵(XU#&Ù*xÁvuäÐ ±y'“‡“³uË~¥/à ˆÑRÎí)ŠjýÞ@²·ÐGÓÅOÙÍ Œò=éëüÙF“üž}uÊ_RìÍûß P¼¿Q2ŠDž8ÁxàÃ^÷Ķ¢uXSùùüëY&Œå8ïÚÔ6P6bÌßü}aÑ%K¥8mæŒ,N=7˜èã33ö&Gºã|â:°S¹9¾PY¿ Âk±}|†¨_³È–žiãà£y%™½|à'¢¢Q•]ü}\¶‡”ŸG vºae¡:MF­y#ó½ÇÚ@ |ôy Âd©N1[Àåd¯p†9Ÿ¸Eß:z2IÆ—µ>/_œ>ÖµŽÝÞ÷6][©§6²ÍÇ1XëÕã!óoºzª Rï61u}<ù²3rbÐ8\x˜¾ÔׇÖîvÚ„Tà )ø­€Qt¥éIº†&M„¹}ã‚᥻:¬tkòß›ïÚk®_—‹OœU=ÀW'PRRöà/¶’ƒ,ÌÆz/~ Îôû£ì¤ÃH¢ûLá~$–RìÕõ™ü)å‹ÖXùÏ ,šÌœ¨©ÎoÐ\2áÍLÆXTm"ªbšK(xN/dxÇQ/Ç.ˆÎî܃Tp¾˜¤6è¶•Ñ”Òü¯¶#© ?c@¨Ãæ±µ‰9jDWr̰¸“P‰Ó1ìøªƒ¹§7Vp_ éƒ,k¸'zl¤fʇ*)Ý-™¤Êîþ¡rsÜÜlšµÃNÊ©z%£qNøFCûÀ ÊÝ~ñ­ù]˜›T„޽pu Ñ=õ΃ðmqïf«µËÒls_1—„än˜Gè ¾Áû†Ëƒ×¾…„{ó.”.P!þ8ˆ|´,ÃÆeï°¯{¥Ò\ ·9ÿþæÄØï\£lº±q¯2vØîJ í'l²]¯ç?–øÿ¼^ò¿O{«7ù‚M¯ ¬áóB¦±Ï¾bäû! QY®ŒËüNa¬ƒÄ7Õ~vª‹aX÷þ‹ê•@«0xb %Œ‰Á%lÆÝà³'y§sv,¶–žçkþбeu¡éÆð¯aN"¥˜ˆšæ«°Ðví¤*ÅüiøßTÿ.*ÔJ5^š#Æt–ÆýýcwϺa15ùód£ÒRÑâ/¤´þÈ81¡BzÏïGÍ…¥eרbŸ»½K³?®›*3 Ÿ'âß¶+T#kÎlÃaµ”æ+܆é6óx·ºÉûÙíç[eÜt4'|st´¬¸q-ý B½a\±@ ïà #™Õ¾üùÄü&c†M¼RG‡dÜì_¦ oV׳9§?@J«DΆü1‰^”Ò¬gëš9éu™xÛ6 ¼’µ‡{W³‚$pÃÏ»9bñ\æk+@—$“àOëßS}îÎÓR®&×ФՆB(:èÙ˜ %æ)Äí2áî©0úÒ À‡ Š`šè6ðæ²¥ ø‘~ ùÁLn²÷½P¯Ç›€Oc@Úê0MGTñ›xO+e¨#Ÿ008ìÈD À—ÿ8z?Tû~ä³ÛµÜc ”±Dø3õ¹þˆ€„-º02ŽBÕ„§·S“Iˆ5ñÚXÃ÷K“Žr¥~ ÙúsÛ;Rãô²Fxli½Õg0…'Tæü®ÌN•áfVZ½EqÓèx•¦ ¦HvC¨/UM§b®b7WEÄÎàTµ^ÛLÁxäpX7½Ö?÷¶´Ã­‡i`mî|ކÄ>ºwË£%OtwôGÔm–ÂŒ/³§E´­<,Ä´§Õà܃0o8:z†–ŒvB En•§ZŸLŸÃ £¯ßÖËlýþJoÊQ›ú,ˆýØ#’5Е õÁý±Ýbfù|ä![m®Í?uròï‰Í"\y’Aj¹Óùò+Ÿh`AfyImb#ÌUÓõ<ï> bÜl–Ð>N‘/Vhîúí¶öps Úž¶‹ü.ˆÆ­íšF‹±Iò—l(è?ºHBY¹súxÎV×ßL™Âñôwû{€ûTg1fì†b/´X¢ýÏÛô¸© {™Î¿ïÔó„éw$ŽoÞõTîp\„?€ÀGAWšo$ é‹0SÚþpæF%¸´•ìzeˆ(;½HœäxcôPF;,ÈdÓ«ùu>£§ºr^„¬ª‰^±ý¥Òޏ—ötÀã­ÑÈáÏÀ|hÈ¡`ÓÄ]Ljôeêóó¡w5A,zÈ"øg'/1\Ëu1¼›l)41/éRÉ0l89+ÀEEÛ-ºå)9U¤ƒ›ÏU•±>iØ¡ßýÓ.!½H<üN†xÄ‚)ZØiQvœåïœt—qZQÃE_̺”Øÿaµ¬È[pôqí© ²»)¬,­•1¾O›ŸùZݪ…\ž—ž=ôqm¶»¶ótŸÃ,>?†>v§%½‰Ÿ’ÉLG¼Ë‚ˆsšFÁìóXã×ÎþëTÞ¿XÃjÉ ®º#¹íLýEjiøƒàMdÝÿü§_ðiÛèI=‚»qCïYé)œÁI£í¤> Q%m†Æ©-}77{9ÄŒ§i@‹° Hv€y›Ùç§7ì›g-Æï‚R·›ë#€¨°óëpy5!l1øÔCyòzÙdqÿ-Xå‹üÛÀï": y°c^Îà.PVOºQ±œï+Èz@²Ãï·2Gÿ«lYg%Õ‘á’ŽA3ê6jt ?A!äÙ£zw"^ÿªUZögøÌví²ô0oíl ÇéW/4‘Ѷœèc{ˆQjÇmi¥A@Ï—\峇>uFæHL¢™dìÿ)Vvoæãºˆ€ÿvÔˆa9بî²Ã{K9Ù–lWëE|‘Ã,2RÎöÏIÙÄ=\áo0ã.þ;¬r(38¤SG3Å8|ƒ“¢,ÒÁ8u‚Ü[ƒ{d”+ÞYªBÍIÒ‰Ô‰’ö\h7jv'À'ä*~¹.¦›%üL¬~öI jÚïH¾hJm#ËñÐú<0wKEêX¢!‚¯| NLæ@- F…5[&×GS=w¶ú­Û$§ Ó|ZÞÁ&數|ƒGMQ e,"0ŒþÂûg1`-ž%9§{ûêVƒI"Ñ“PñÀ b’Dÿeñ|©ù(” »ãBºq®}t…Š{€8ÖV«‰ž§ycŠ)îµURTÖêòô^u-N ã$0$Ë ¤Î•9Š…@·JüL«¢+á5a­P½ÁšÜ¯ÁŒz«p·¶%9S¤5(Ö­ÿ—zÔütUJR:|ŽS!ÕŠ¿YkÞÓrMý75 ¨’ü?žm›ýE EƒŒó¿þÒ6ûEA\™ÕÕ³ä$'}þлkSÅe¯Ïý%%oVøÌ÷Eçmì‹Ôõ¶jÀB¼ÙÝí‹ l>Š¡"LBÙ¶CÚÁܾ‹¬NBo¼ ^ºýûõÏs´±H½zAÂÒz‘£f¬î°û8ŠSÈ2õ©„*ÀN:ÉZEÍCZç.09w`Eãù”ÕÄ Ž:A.¶ îŠ ÓÕ„IRÛÇÕ“;LL¾ˆ,üLÖ£ušã¢¢Ô¼´¼Ü˜q£!0à1ôèfÏ=Ü €Ý´ÛPxÃ>oüBWÿñ(ƒºåhÝ÷Ï _–v>i™¨-µ?/âÛï¿ûˆŒmMÕRŒŒÄÄOÝKt Õ›LÈ ðc[ïÁ~þt¯1|C²µîÅCŒ>µ<늯ЋÈL¶¬G?Ì¥²ã4„'p°´mQ†Û.oÔ!>¸LïŸzÕzl- ãZµjUÄ*ÏÚû­Ÿ£Ùí^—.ÓèKÎ\óÆ01Ǭ0†:9­öRŠ·ìáÿ#q|оލG6΋ïÉ0À¿·ëÕŠ‰R@Þ”üL»“¾S› ‘C÷a½6‘V)7Ø0þ¶XI ßPUöÃ^Ö-þ¦(Àu®_"ªÍý6ñÈ@À¸ÿÈø#YF‡R [ÑdjKJÓÖ 2}LÌbAWtXFñ)³út†Û[ccžM¢–‹SÓÖÙˆTmâ_λ½Å~“oÁUßTÌ4i@=8¬¹%—0“p«öþiÉ”‘ßqݤ¸_U¸Üs@ÿ“Åê4Ññ9㸠FòòeÀåßœÆ(+«¨^ÙgÛöN„7Q¼e PÚ7éÈ“@>…UÊÙüLuðʼµ•s<ªLjgÙŽaù³"ð&¹bÊTzˆ›¡rZü|®0ûç‘SÖnŸ/裴~7Õµ›LâÆRì y,(Îc#“œ¸¾&œÇjA¯!JJý×®y|±ÁK‘,5(|‘¬¶è9ú™Ç‚R÷âÇö™¶sñŽ.Ûã>Ïp¤e0•Î9ýÜÿÙµLmüåHàñÊ’ûìãÿGàs»u¸ŸdÒ,É—ˆRI?d3y‘w¹¼ÇR‚.ÍSnßñ!Ý>HA\VÔöà$§ÿBqûŽÉøqös‚r«äḴJ £Z@ÍÎr_NꎯûžÞëé e>ŒLïò,yà–~•ùzv M ÌëŒÍîñŽ1-Däóº~´w¿ÿ&Þ•°ðJ]*\ãŸú¹ÚäÄF/šlþú]´X\¨™Dx­û(تÂ|Ñ@Ì;Wkõî'ÉÉbB¤šdÅwMɇc”gçµöÆCÛˆ<ól !8|ý3Q¡,OýHlLê$Ÿ¬™ð r/EWv¤¢¡–fóGæ² ÚüX –Šü¯5 %ã¶Ç³T5¨w‹s“­‡GzÏ£xA#zK‰á\~,5îŠ@±Úr¿`Í»E·ü±5˽¸aè`ëÛ;åKÿö:f¢ÎÆØ5 “uöl,TÈš€ÇfsÕ ˆ#v{ê¨>üÛ¨^ÃÅ͵ð£AP°6b܃7UÈÝuÉ0ïs.ºT^ŠJø€Òq}RX$!×€éUçæÛ ûmTØ9¬Ð%ÿO¡²^û¸Bå’¥ßô°–wŽXµôº^Û”sÁ‰æñÞÓàúÞ Â`O¦Â:› Ü`J±h¬d?Hp%‡“æ>Í–ÖÔETjwäŠÚùµÍE­ýž‹ü¯5>r1v.î")¢_4Š·™Ä~ÌÛ´è/áí¢µÕÏžŽc'ÿ¹–yâ¢!Ï6ËÝò²ƒ× 6ïÝðC§BHOu64²e³{¾Óš-ÆD¸öPcBøö?„Õw³LT~-Ú‘3‚€…·ß¢†hÞ˱Ûź³÷%"We]˜Ñøõi ¹6øgÙ_©ÜEëÉóñ¼z&5|fÂm˜Žµ§óHúm×) žî6¬–8N°DF†k°»6|M›`ìê·e$âUŠÓ79\€–ξ- ‹¸+¨‹Ž31 uUB¸‘w…Çü DùØRç÷±“mëlÕm³’ƒ&‹Bȉü± Ê™µÁ/Zè˜gH˜†l®·[›2͆Ö´Óöc.³@¿–Ö©?e$—¸–VƒÐ©j#ŠIP %伯Nhm áñxôóo´ˆ›yPÂä‹ÙÑgéŠ@ôbUØ“ùwâ@sóAX“Í•ìõ:ø&Ðò~ý‚±é†K5 ™M•Òé›â"@NFöè9_‰ÅZ-î#¶fcPMŽŸ¸I¸ÍâY·ÞÝ«P«u[gY@Upé¯Í;Gñ˜³ƒ¦œ-ð’Î[št™1I¹É’`1Ù¤„ædƒ¬*]eã%_BPÕ×öä]ÿ“ô¾ŠàF³¶*7r8ý< ²Šü´î$»i3‚ä|Šs8rÄû¢¶w£Æ*3ZäL¶àqÕ~ºÁ3q‹Yð0Êr”»ß{^P˜]n» nbi»LöÄtÿA«¥haŒøªJÜõü€xc\ë Ã?´ÿ²áÖà“ :Ö†à·8úÔAûg5­àvJ ûc:cÍR–”rªùZ£«U 39çó3¡A1Çu6r:Z‚™ÛCµz°Ô4×÷Lôi°ö¿÷ôD ][ºU/Õàp¹µEƒèTv¬Ï·viª†x³êÒKrö“C'ˆ ˆ/íöýol¥úÏeKò· 7= EmZ¬ù‰…ƒ¦í3Œ—ÁYÚ¼Üõ³9»MÏÎŒo®¯†ÌÖ¦s%Är`U øïÕ‡W°m¿·FHôÿƒÌ•anë÷9˜gðó/IÈ$ x v§Êä/·WRòU¡öüULà¥ÆX-zò=H=ŽÜª¡pò9üÜۻ渠Ã6åD—Î%ê–ônÎ${žñÈÇJÚ>! ‚™æÑ’ã=Q„ß•{5ÛòŸ/øŸ‚ê-H}Ïà§áË8`*¼ Á•¿bšâ1Ú÷ÏÉD"Müõ=4ÜzƒKÝóÇzâùaÂmol@„‰ò| ÕYÔŠü±mb&²ä£_î~,‡<|e}éï¸Å±Lü±K»aʵr†âgЧ&’”¦“ÀºÀ)²]6g9‘›½%Gì­ºËl-çT+éC.¶eàÞÞÜ¥ãâýñjR»‡O¬ñž©/ªg@üSä~:Ž©ˆ‡é¸¥\LƒO±…Ôó}£¸Bs[Ü]’ikô@íï%B¾vâêÓ+Ê£|¶Ý¾S­-m‚M l‘Zç¸+ÅȧÎÞHŸpà¶ò¥!#Z¾ºÓw Lr/Œ¨8s´T¦^Z7íÏ<ÝTê‘ö'¥²Mƒò'›ú¼ ˆOggS¦ýÄ n Dy}Rðúþþïÿ½ÿ7çæûóýÿúøÿ ÿ ÿÿ ÿ»ÿRÿýÿýýÿÛÿûûÿÿ ÿÿÙÿúÿÿÿ ÿÿyÿlÿÿ ÿÿÿÿØÿ,ÿü¯n"î×Hô·ôѹ/=Ÿ agŸàÚh ‹2ùrܰbpLf{°õÑtäø(Ã7ÿ¦N ú¼Û¦Í&†vø2À"½‰Na ¹vé:ù¸‘Œ}Õ—ppš°Ûp·À".^«!¨¼ ˆ=Ô#ÊùÆtS™ZžrXr}ùÌ¿X½Ûä¤ ÍuÏqD+uèéø^tMÚ‹AR\yòF–š‚ñl4f´`2³_!eF&*ÇO|Bê\LNk‡Pâ!ËÆü®à¹)Þ…„ÓËNÀl½lÏΙƒ&}?Õ$ÿ€031Q¡©î$ΚX'ä¿üQ Šü¯¥ß¦âÁ—}ÛOVWšó#˜HŸ;›j+éo1ÈÚÊDy‘ı=£ dzìyüÑzÏv“×Û^ˆHÄò.'”éŸà¼~k¥¢`±d»Ñ]êõ0Ùw’w AŒ{–;G3ëZq☣3ê#Î!¡Ô[õo’í€ ØÎVSêj¢‰·SA¬­-“®°f1‡ñІiÆü¼0­ß'ó§HÃèòšø…Àe½HÐ4­©#f•¦ú'KÆr>I†D~fTÙÀÜÛ¤³^žÇláeò]½ü!§ð¼ZË#AÁ:7Ûãcõr\‰Æt94P_xf½ÂÖè ‚#B‹m„˜Šü5ò½ÐâI¸5fþ¾¼{^5o*îà}1³2"W"{TVS¼k±åwÅY²ïsRpÕd{qò4¡À¹žÓÕöó\û67ö=ê˜ù£j@:ŸçnèB/"+{ñð¦fâß)Ù@‚9æ3 ÿ­K(ùPyªY@ˆÈ„Om×Í-#D:óñ¬,„Pü ;ƒD'G^IW„x!CP¡TÑw€%¯½V?Žº^cÕïóˆòC¨F_ùX2‰ÚÉÜ'±Lùo?ø¿ù i` 1Gì½Ëq|1 û€·Æƒn[‰Ç¥É<ÞöQÞº*·O­Ž¼“¯‡ «/ѯü6Âþn ŽÃôœyÒ ÞÁ³Õ­œçi-mÝýC²±ŽN\)ôSvGûŒäãí¡õm*޵¿µ™¸/˜PY&XÒ|;˜{Ó/›÷ð–#ŸÓ@íeùÂ^ÃêoºFÕïß«iÅv ¾õÁézËXé¾x`îŠX$q ,6!,­š\ þMž]Ÿ=J„e–9=….eS,Amgr©ñ´V 4k슎U³^¢/„=ãœN¨ô¤B©yÎTÚhΖ½rMeoy_­ôVã[ôÇ÷aJÞ!g³Tâ4•O/s=üÊ!ë ç_8®˜É‡x ]¥jH»{}V5 †Û$õZ¯"VküM$Àõ³âž©ø‹÷›¨›W— LšJ–¿#†*q(œƒ¨2£@¹gôê÷$€Ѩ_{Z¥näˆáMa’÷¿ø''^ÜiKª'äê—ý¢KèET¾ÂÃ&ºú ¬ üpk'ûäÈ!v››ß©eFÈ•³ƒqfío½ÓòYôv,ÔƒŒMËÍas2WAS‹e;29tï@&4»IhøÍ?âªÛOÏÖ1 4£)~2ÆšÓCÕ4~ʽ%ßß:<’’Ù¥;||·M=¯Ý#ÇçµÃylü|´ÎÄ…½î–¬ÎŒ;ÁÙ<]ë…N9ªsbu¡*H-ΪƒŠ‡ó 2(÷æ‰p ¹T2òË«u<}¾ ¼§xˆµa×É›š ¬÷¶×Ñè¶1W ”¯\íý§Œ{¦ið¼¦Èƒ>z5öna·£Á2™”AÃfsÿ=vÀq;Ü™Kx ¢¨Qæe ¥B³gý þWÂ$IçÈ0–\ƒ˜=–"”#_oì°œ,'@F‹ûzá9ÀoéôÕ±$†¾»g!ŽÎ±×‰†uJYô„ßÌ^z‚‚ö¤ªÍDÕF8¯):ƒ¿•ÅQò!Êd%‚I€ÒÕô»ñ?hBOëgnpþ«’•¯“X[6ªLÇ¢\½YP‹%÷ækPŠ<2j~$³¦²WLâôΊã‹;>-JyMKŠ*»ÄüÙ/ßRF4L9‰I}Aý¢üÔ¹NŒÉJ„†Êd‰!™ÌW–+ÛÖ, ÿQño‰¾€ u?ÞI@8nÊA—Ã3‚|G›!dŒ{Mçi4‰^HAI)ª*šºp›tºƒèí¾þÂGlÜRíËHÕQ£±ûù縆Ûkl´²AýpCÒ¶*½ ÷?Fß]3YN3¸ÚÕbüÙã¹V«¯²¤1êæ ÅC£ot]‚tl‚:_êå=ñÁfÓÇ“Hè˜âÔPy¬˜'jEÑꙄ;^½À•4µE‹4‡_ßg1nMº$üL»2*T@ÙeNØáM®{åå#Í2½.®erjа2Ú’‰«÷$èÿXBFí“í1ƒb´E}±)%ýi”v""ˆ·WF7mnáz¿¾D½ï>Û‹ñÖQÆ5±ˆs`ß½=w÷]QýWØ•}S*w»a)+ÿ® 룯ë y¼v/r§FÁ/•‹w ûœE¾3”Ù!HdC' ûÆn}x‡ÃãØÖû“–‰»×« 0ù9ò­<ºß6Û¥i9}wôñ5Ä6ù >3œ-Ÿ Ù—}U2¼Â‘N"ÿd$‹e@ùeoüMXDàß®}bùÍI;I‘I+=±²’íz!ý_À[V‚99@>ªœ>¾ó„Aœ:mœyMÇ8­æ Ñ‹XGìì*ÑAÄG~Ëùo —h‘âžâÙ~*Øb©s1 rüÛÈœòp³Bˆ½Ûñèµ.1Þ7¡øf1T¿¦ª8d¢FºƒV ¤=šîõ´ &ÀE ¢i„z/ª#ÿ*s¿[Ó穚Åb¿´6®ãLåáÍkSΆÑ%=Ù]o•Ð29’:‘Ô@4 Ÿ™c,‚á @<•ˆd†°™Ž–]ÌcWuÉꬉLåá¾ÃÃS|¸‘Z{8ɲݚ~’6C™‡úܸ!§;½æS«í÷ƒNÄ~¾ƒŠÜ@ÿq”­u;y±G“ë3dK #ºY§£Éúwì ˜L³ò’ÍÿY’LžÆGì*«ómÕÙ™­¶Æä¬ßxÔ›ú‘%üÙÅ]©Ûétb­H}¹wcXº‚j§W—FQãê4s÷Ç™ö‹#êŒ ›"ÉÏ„ë LPÑ’þ·á¿ âc_»¡¯Œ¡*ÿÏDT,…(äÕïª Gïʼnå^¸E{a&͖ݹÆizÓ!!ÚÀ8ÑæI-M^ ¼]ÜlÆšuã´T¼~µuŠ(;Ï\bqR`á­˜j?Q§»ÑÞD7iŠ•©±uÄp;3Î7‰þû LK‰‡Q`hoû2é5½&¸r,ù'5xIÇø}-8,UÒÅ¿¶ÞÈO:’š†Ô/«û[rWÚ0²ï?d~ß_ ÿ^Š5]¶ZdıwÐ+]¾¡$ü6.,KpªÆÀ½w9 \iãXXå”-+#QYp©¢Šæú÷ç|Û(–ªD¢¿§êQR^F´+÷»ÎH%rÎðŸää¡OöM]e0F›ã Lú‹ÝÉœ[²_§àÏ^I¬+#`ÈúH™ùÁšÈ<5œ)Úˆ,PÎi‹÷–Æf‘Þ€ÒýG ½:—¡lãúìá34Ľ`ˆ3æÄ &|EŠd“-+™=‘˜ÃéTV'ÔrUü•®³çx­®Œî‘BÌ©<Ó-©Ø6+þB ü×û£qäÄæIO÷H –I<ÑišStðßkÈ@vd*ݘˆÄÿüÖaƒ?G”ð¡Á“y#%;+h­p|;uïßÎʶ V.àØ¿kWü+ ý+D6ùѼԜó+¡ïÉéÿ¼pÈ~ÙÀAJ!ìz&üÙß^cÃÀhÒ¾äíl¶¾·ÏÅädf&Uööÿ)øÝ B 0øžn‚ßS ï§:Ý›3…áF»çÊï©è±¯J ü·-lj6ž×T¬ü&$—û»ò|6}ÇSí¤ãÏp±åÙÊsùDŸ|„Ì—¡†'>Ó¦·t³E;sö¾Žs ÝëQ6…ʦ¸¾Ÿ«dü:zç§Õ‘¼w–?„±ïÐmò1û ò_¥ZŠ”þ(S5lKá¨O­m^|*hûÏŒG3 âVÏ8шR­F8ZP u -wäX’ùSî=;/º¿vƒ(ZlzEÆ“ ÿQy(:€›Õ ñ‡Ïë½,v ”ô¡%ü äþ¶¡¼îù• ó”D5Ñ}Gˆ Ù$lÜö¾NG¦Z sœº·[{}§ Ì ,¤WÔÿxmÝ8„em\¬Ì– !åÔ¢W£Gªó’MÙ}8£ýÁ™ß}€ØÁNfg;ÊÏëø© 4‰Q‹ÃO™ù;æ™Ûñ!œ¤·QõÂX‘ –ù<\‡ó¥·P0ê)ÂXJ•g4Ýž•£·Ï“L*ÅápÈš~4§þa^´ÈTå¹-l+ßÔÜü± ìï‚È8»sµ·g»ç«Á´Xsk8dÑ^mµ;Õ1yxxxxä/w1¶u1™ïžAÂŽ6*¡ÌDtÝmõÏ-ñÈ@\ÏÛº„3-4dê@èEĈÔ]¼kéDS;5–™“3š¬qg£`éó®VŽW—ÍŽö¼ó¹ÎªëWp×5ZViÿA0 <Õ]'ŸW^ÆöNÚÆº[roo Ëv8…m<8ø–ù m_˜œ–¢E#?“Õg!®g&K½mD‘¡wÞnÔJÄÈ̆:Q¶ÞM4˜‹»/Y^v-8Rø€_Jñ^ûÌÈËÒBþ[øœ}µÛ㻆*«xÙ¢ü5k½ïÐ=Âíý?ÊÔlϸµÉ£:Lïÿ;õ*‚´¬òRà‹úØOŽ™[¤PA~#á"Qxwâù8š×‡ î. 1î¥Næ„ÀÙ&ï-‹Èéî«D^TÔ µAp&©(ý&>Î%?ÕøÁOX¬Q.ë· ÝJ-v¥9==™{U­rÖæ=Lå\ÁZÍï ¥?›ý½nªõa_'Mø~Â%,RÍš8L†à_¼QGÓë}Šs 8Êb²& N;Q¿B:ãõ™¾'_£¹µçHêø}Žw´:ðÙZågLáÿº-6Z#£Blp:”ÈlÓõ }Ì‘÷¢Þ+ó‡wÅìü{:Z¤ˆb ³œø¿1ó¦oVï1´(ªºq$O<´ÚKºØK®Kú R„s#l£Îáï` gñ×.®–£`~Q`ÀI#289ˆæøƒ­¹mŽ'¶Ñ%”nÈ»ò5®hÈãBiØ ØÑ¤{ *^Ãï©yë†ßB!}öôVíõ•%ãá[d¶ÞÍÔ¦´ðü‡€Ä&a‘‹düÜÁ‚¹=Š•ï¬ $%âŒß@¹ì÷#OÓ¦3ò³$öEP!ªÀ„ìšÖ¯'©Â¡¶ó<òûŠaŸvcÐ,9¸ëy†„‚iβòoš5:>{.gNù¢ì¼ÆWÅѶ«¸üýä© œ}2=m‡ÀH•„ö.×’ ³xûð ïôºá‹·ó$åpèíÉŸ×HÃé‘¢úw}2¥€?Ô鉕ÿQ£ý{) ;NŒ¨s†ø:üEsá[°±"ö©AsÛáDOþãß Uüv–6”¹¿;N‡ªÀšð ^o¦”ˆB Íòš^…²²…>3zÖ,&m‘ÆhâõÈQßš°ãJµô)? ð8Ai•”-àÚí¦Ô­·˜øöêí¸­pü}²Ø P®¨UwQ—O>¾ýôå› ,lŤTA¤šÊ`êç,Â÷?‘Ò²e7ðŠ0¢ý,q’ ÿ£—hgø‚@4Q>íÇWÚÝÓ«/æˆÁˆ¦¦øÂˆ^{æ6RÏéû\rÖú®€œ‰á’&Ô¾å[³Ås¦õ,ÑÁ›Ì…p“cáÊl•|Ç?€Œ=•¿í‡õxë¯CŠ0¶×+ 3ë5å¬ùŠ£¹krEºÊ7*0È0ß úsHt¤žÇ+OÛ!…H=P”Wõ´ øq)§Cˆ‰¾õ“ÌT/ž XŒä>„$Å6= ôˆ'¨‘ûçÊ*߈Ĉ—Ïj0©w.£n©«yÚÑ¿Š9ƒÌ÷·ìI­Á¸Å¬òÀáÉní G*-a?èXe°¾š´¹!inMâÆÚ~Œš,!vžƒ$øæfaÛ3D¾QÀ¦ößgëøQü™\&>&ƒwÎ︟Ñn\ÖîŽÈ~¸¥ãKjç¹oÔpa1.-øå¬óªx¡ ô”àåìЭ^–¨"ßBýèX —ïmÇo´jCÇè¨jeÿŽ<{©ÝÐÂ’„?¢óKÔf,*a Œ1½âXñ>¹b" òZ š„†îí”AsaáÄN–½Ææ ŸumU|½Þ€z2n¿`‘õùX~ò´6šLm@n-ú)éà3Av½–~QF‚rî^ßqê°Vé,ìÞë¿TÊHF^O8—ɪ5ëvè—ÐÀ0ÖKMš?äÛØ‚)"0«ôÚÎ`)ò’Â6¡–1d4–ôÈéŸü™ÛØÚî+µŸ»¯Š*Cp˲§ö/7ê£Èý¡uð,$@Qé„£ŽCIø{ØLðÆèË"ri¤Xl=éM„B Ñ·yòjÖM.J9 `FkmAÚJc!ŽŒÙØ6úc Ž@=ŽKrÃB&ЏŸH‘_þÝQœ¦õ]CKt)‹Û“ eX"×í¹K=Œ±ÃÝ›àa*%M@ïO³T¸uÝX‘ÍóË£%'§´«áGõ”2卨é–e¬«'îä²zÄ *ŸØ2G¾ƒ}5µûSÝÖõÏ•wõÇhC|0A¸œj|/æZ—cQÙ­JË›¹Æìp6ÿ»8^)º”Ÿü›1$V5C˜§½¬SÔ¾§ñ¤±P4ʺŒ .Œ^AZ(0êõõ¥ÄÁ`ÓX66þbÈ v©â¤êçkGBt<9\ʇZÊ[¡ ä6¸AÅx%nåì_‹}=¬`l7gElþ\HMpV¾oГ*÷Íåø>Áœ•“3;vrÞÏ™ZvïM›ü|–re˜»ç|õÑ9𶮦è%ëþˆpõ|=;ÒF¼fV¼š1"N™’!1y(ëö®àŽ„}C°¼Yl{^2ÅLº!"§Oœ{h}áE”ã_¸¾<·!Æ7ì½]™9Ç׳K›,Û,ŽeãùüX½:×ä‰í¹6rË«ÙÍÀeð('€$Ç[ïí ãeùñEi…Á'|—ï^š%ôˆ…&/? Š PXI„M¾ÀIæ~/…˜6c¸ aÊÀÛ7Võ‰‚ó’hwŽCmÊT•`Ýa…Mï>WÚjËmU( Îö¨ÿ˜cåT¢C´Qp§«µ€<­Ùû2¯Q**‰näSd¨¦¾™<.xp³äl5ºŸ1¸±lÆýf¢ÜpÊvB}e¹r0Nîy½Ù Ž£ò‹`ÁŠ‹)[ 퀻C^gÍ…Æ$(²ýiÙôo=›)!— ö@³E%P*#’K{‰i 3ʘ“.ü5+f}@8ôÃÓ¹Ê9Í¿«£à×_ŒG ‘ïµ6`Çï–ÌF°Ä§°<è̘•ï^õ²°÷ÚØ©)?J+YØ,Ô‰MOׄ‰c·-D­© sõ`ÖÛTâ•$rI_:‹Ú²* A)kÚx>"ºÍ!fÑ]l¶`R@!¥Ä YbM.E¼ç[œ ^âŸâ¨,ìY.B‰É4´s³ý7³kÉ£uÁ½Åx¹|—º¹f 4®ÈßJ|Í®S ”à î²U¹ŒU •ö©­ lŽúöÍÍIo¹ræ;†Ÿ´mt”™Ô?ŸÔ{‹ñÿ¥¾JËöLŒ«}ËÖÅgü|­I¬¿‡DÞ°l ½—„òS”!{ ÍÕWØ2¬hˆÃ‘ú ‰Üóñ|3&jˆ4CÜl›Q½ñK€õ `íûí1$7VGåHÌîÝ ~žuíˉœj‰…É3Uà®fyp& 60#yŠ©ÚfÑ:ÅáôòÏX­_ }Fa„@fŠðJÂqÍá63ÍÖa”áÔ7ÇÆ‰àiÍÅ- z]U²Ýæ[¥Ò}˜Ô­4öKêA¿ò¹ƒ?DFŠEï_¸IÅ6Ú¿¾ø"¥¨—+ètʳ¡@?ËùZ‘åͰ¶"Ý|Ð1ØÏ±×ඇ z‹åÚÕA%ãoÆË]´×˯‚8Öõ<…ëìn"ZDÆŽ«¢# Àë*Ô¡ªÇ@,ýÿ²zwñ0·qßÜBP¾ôߟ{ýh²J0AQ Š×å$Ejœ]ƇôÎMhóÙ£û‹Ýÿîѳ]íùaÍÙjÐÒ0ºí¯m˜À‹)µòi’ï8 ÷î@¹7éFj§§*Ãz)fyè<¶×¨£NX÷ÑO.:‘nÍ#Ñ€|)S¨Qœv{{TrgÀ¿k¾ÛÕ¨2YÀCë%¤(wu>?Gp<=ŠÒ±Õ{á˜è¯•–üX·jÕõ×iÀ@¥Æ•ð¥®ÖÒ¡,sLR|'…½´é~ІéõO¼O‰fdÎHzLSW>öøh&a6,Ñ L¾ûfÀîPãšÊÙdÖÆBØJÁÄ—¬¹ÂÜG,?ÈvI4ÐÚZŠ„,ÇîCUÈǶl(òQ -rd/Ü62†q¬ƒµ]X6RÃwÈŸ2øØÅ¹Ûßô zŠÈëŠÞÞ½¦½RôMhBÈ„¹h4°¢HB82Y·Uý¶Þl‘yµ¦¿Œ@Jñƒ–§¬µºïŸ–[úbê+0ßÐ"gu’»´3êƒtSTSˆ7l!ÎÂ9­tã @ˆ¢òJÞôˆÏ¥¾¤OQ2¿œÆ•D3„\¯F74ì>XÝöãôJÜYwu‘Í‚&¬·nµNÖõÑÿD;/o>›/ùØíR„á)k!"6ô. ù᪠‰s‚ÎS*åE6­è™Ôå ‹+€³š£ó5]“l8; ¾¿äOóÒÌ_mkþ4›ñ#Oúõ(®N00AR€ü¯5ë+/õ¢/…X>̉hS›ÿ`ú”M«öøµê ÊÝ««JK×_É”§‘ÒÁ¥ÔTÚÚÜ?6 9쑎×ïG…ÁwÎô^ºì„/©+tÇ-+¤”ÛZ¤Ý²àëp•ªK¾?’ž<à (`ÿî¿1–F½&¥·t&»Š_•òåÜN‡Ä ’=Hu‹åh\Ö:ÇéÚ&Áv…6J‘Ò£zF9,<ÊȳÅÝÎ÷ §ò 4mA'E2’0J°ÕÌÇ¿k‘;l¨-˜K 1«`:é+Ã]Ç{Fá%º’”·™|z²\]£++l4Ç_!µ¶¤+ÿŠëè€Ñ€ü|¬n]_¿Ó+L ˆÝRÓŸ†ËdÎRÅ'ëå‰Mød2Â.±Ô iµZçmÀº¢ù ‚Žêùé–BMq¹±^T† X¹‚VZNŠ_"GåA;“UÀß,tJ÷ÈN•ìë»LÙœœ˜“ÚÖ·Ùm!Üú.x:jKé”ÄDL.í;OAF†_?ÍoäÚIò­’&~²µA/ãßá÷ú°9íP£µ][µîai Z F‚ìÍÙ3ó˜üíÞ~*ÅnwDszË™°9(Jä)Ï»aÒV«gᩪN3åæJpÓ|Ù7$}i¡©eÈ#ÖŠ¢™ÂûàÚÝ ˆ¬í1È›µÐE k›å¦¸.ˆ¸Û2EJ\‡]\P€±#(°)©hxŸÏ].¯èÌZ"§tiXûŽ-c¶ª–«¨Ö+& fËÌ/âÈÊ0ç2 =¤ÎQ5”MÌ¡z‰Ÿ Æ­„ZÛôÅÇ;´q0‹‹%ªÍ[1¬kjºXôž‰Âói¯MèŽv•u=hsž¸DtÔîáˤRÉÝEŠRßJ‡6òÉïÒ2xôƈ q Rç*Êrã$Y PÀÀíâ³´PˆZ*Y¸š°Øeùü æëÅ+m¿ºeùë}¾½°V‡[„;ŸÐÊâžk̪ 2mÆ_UT] úþã;4|¶CS¤ žCÊ žQ`–kF;¡T«×Ç+Á›ƒ¨s&'J>Gâ&‰k8#Мÿú£-Ê cÙÕL&i-WçøÎ‹?5\c¹ÞÇ ¦#ð^}-UÜÐÇZêGÈ Öº|Nbö;àÆß¢æ8P¿ N ^±è’}`™Ê£' <1M§¬¹ržpîq>—Î =‡)Q¦À€qËy Ó…>%}hÞ7š‚ôi‘Z4eF‡6†—"II/IÖ½±TŪøYÝ亅Âüjsš_×xâ²ö üÙ-TÀ÷h‹Ê¤„®Z©—ÍÙ×E¹eáIèþO»[žbTËOÄi§Ì(rTL·‰g€T£Þ‡ô·´°‹Ó“¼á#ÿ%ÂQœ3eã¿À.5¹…a<ŽÅš²¢öÛqޤŠìÅ ÷ÌààˆZ{•‹&m;ÐK$ý­±Æ¦N††ð¹b_×Íþ<çÛEÍäºAs <…â£$Ç>ˆZ䜤³”ùiÎÍt£2Ôëá¥G:Ã}‚€ÚY$­H†=pÝ:‚zã(ø;Ì~Ž> îHF2ušáèØÿÏx'QÖÙuYˆ®tà´ï5%}îælöš("-×7ÌÖ“.5Æs¿AO²¨\u,>¹­-ÚmÄbáÆ¹Úh¦r®ÏÞ¿¥N…£}“° Ä:¦ØÚ>9¦ Óö†Íü7qþÚšY%m,`î!èò—–bÖÍ2eÁAŠ”º}¦ ¿ù^ö„[´}t-'Ç—9ïMŽÐâÇüC)•EçLņ¸éÙ½p-^€òíÊCÅê„,q‡Œ0|6èååX¢©Êç®âe¯¦p8=rœdnÎf®A“¬ÅTÂu¯UÀ…£¯<Ö­ÊÚb¶ë Y™ÚîJš<²`ü6Qi`®üÔƒÕ"9Ù4RžËîÙaFTá p¼Q‚ÃgÓò Mg Ÿ¢üÒÛJôÑ=ÏDÜJ–¢¸›IšýÛWy UR‘)…´_9Þ—[ÙïçsôšW4¡·!"I#$5Ü%ðÁ¹¨[ÒWÞ+ŒP*ÖH@}övÁH%®H»@^ÉW'´‡šˆLë—g Ö¢ÒôêpS5Ê‹óJ‘jñ"£_ ùvå}C¶YäMk7é½îujZ›Þϲ¥Á|¥`ñ°—™A£Aœ›øä{Cÿq |8_t/¿Vi˜Ó„§%èý23øè*ží¦O¤ú9ò-ZÍ„¨üL¾»i¢Ëà9ž³¯ñÒë¢]‡ViêBÒ¿-Ö‚Nd +O_DlÝÖ6þÁîó’ZÚ[\ǼÅ.;{åzÿC“÷ŠHý¢ÿ†Cä?ÝSòz˜V£-Žà+ÙÍ`[“!—S|ÝÁ ‰XGMåAn ¹™ÚçÇ£”!Ù>{ÚgµK ÆáöWÖqu=q5‹0?<¹»_~(Û‹F.Œˆ9ÕŒ¿ï6”‹{!Õb±Y*BGú`dâ<Ås3á­â¥Pâ¿c;=\~K™¤B%vŠË\—»½Óò‰%)þÄ9–k©âåÙn)‚z²ÒW*a©èª#ñ! ÒÀÛüLµ¤éªwTöˆµD-½Xã¨ô‡51ˆó&oŽDÕ™âÐr›£ÈÌôÎ×·ä9 cT!ˈÏÔSv*Þw'í}:÷<\ ~”i9ã"+âE«Xâ•É'¥%ñ­z`CœzQó6䄞'tI¡Q?ùC`Ï@#ißÕ—›~ÏÉí!ÙFD™K®®w/¡FvŠˆ)ãáÚÝ2 Ì !¶ï¯ècÀúYÊžŠÏšV8ÑZ 2šp=-ܱ`F º¤ýïbð{‚BSh\guê¸ÊW7Ö‡DËŽ7ïÿ Š?óóQ•ý¹à)ùÃPyJÛx£òþÿå‹„Fü|©¦‰‘‹Aƒi>ß1ñä¢ìÛîàj“Åí„·ñVnyIÚð¾ùÇaªdúwL<ÿ¾=Õ €DÚ§~¹-á"Ü+ ÞñðM韱¸Z<;2?Ûáã‡UF™´=Â/ Fk|¼ÞzÂàè°ÚI¡%ãiY$•{Íy¤XÄÍãm*††Eã½lAü]¿e^a÷/§ÚìŒ|D±‰-çß:=„ià§EMñ*|nÃ'dòŽ U®ëµ¾3¹¨>Äõ±×ÀƒüÔæ}À>fM.ÿbWÂû”©&°PLkh†¤™5º&X8QŸ ¡”_@/ãºdCy?mÍBù¸·XäHª¡+T¢‡¡„TðÃVÂ;*$˜NëŽÈûªÆuµ¿1o¿™¢‚ÒèÐ-…yTaví£¦%”ñs(tkÞ¯NÞÏù‡«¤Ûçûþ©¨«v¾”ñÛû}þ!v 读šÞàáž–ñ®\ÝÐE-¨SìHjü}b€^øô»R‰ÛÅKqä›ÇBh)Ùý&ÝÐÃÙÿk×*«l•Ÿ?ÁUkF%ù5;Æ <¶^ˆ19APžúÆ?bíÊìÅÐù¿´N¢r„hE¾¯°ÒZA5Éí1ŸOR·›9ƾBù Ñ ‰Ç‘à¼.AÍ\W¢ÙkÈðW_ËÝÐI›¾ï®úŠHÊÂXÓ¡Ä”<*Ñí†][—öA_4ÀÙòÓŒ¸Ûyºó…‰Œ/)"/ø–-U¸nÑÝn×JCñ:,3iŒ¨þ}?ê«KfW“)5]`n‰‰­‘iùòˆ2„ô~ _2°ü`ïëMõ¢tb–ƒ7¸ê£¥mÊ ´7›¼'°E<±}k›3‘ŠæPtˆ[µ¤Ö™þh@N×âI7£OæïN–®aD¥i'œ Béó«o¢* ™¥2[¤äµNÔŸ…²À‰Ûøu–6ÒKiœ:|=Î#ÎWŒÊQEvóL\ø”ü09,ƒ¨u>£‡P tôc ÆhÑé›ãáË–šïµe:Н¦ÆEåˆÆ”Áª¨4äÕ㘹anÓ‚À·y°vh1w&çlq¤öàL7×êL¼9+ŠçöRC>‘aÓ!lá$D†J…a(¡ÿh $«6¬ò>:eÐâêÒd lâœÜ}SÆg6,Šua9ºªó5I—Øãíýá‚€ ÀI&ÿþ“ªL• ãû%ÓPÚÇ z£yT+ã]ŒnìDݵ΀œÉÏ~ß` )¸oÑ5oð„ì/6Å‹†¦S`|Âuϵj·ýF0æ8RS6 rÜn»>¹÷DÞ6ÃIr\òbiNƳ8Lúmüü›·Óz0Ïk)Ñ{ùιv‘ô­Ï_”Ó¥±‘üU÷Ö\¿fX|ò”žDu+j‹M 9c0kãÉaÔ¢ÎÍ_àäÍÀð‹9ò4¿Â½†øËá¨oJxN+ÆÕ„qø-¤ MÔñ°Ú5Ô „ùQj ·ûE]‹. ¬¿j[ 0"òºjå–X1¶Ô4eæme6%~üNLA?ˆ Xf <ì8¢ÄBv óF¥šàsYú=ÚÀ†€ƒèɽŽðáÓ"šçyª•Z©‰ÑT´ï< \ŒÖ»Éµ•‚rcà±`]WÞ‘ eÒá‡m¥?ûÇÊ4óÇË’8_•*§»²€”ì;•r}êᙨ ýì‚ÀïÑ@g8JŽ6/Ý Áû²¶á9Çñqe þ:‹%xíHlòêƒ !㨣¼ ¢\ó2²ââWUj| Rî›xržLBºÅÚfdÂ`"íKè£1ýÌi„ÀÂꮃâ,“(<Õ“ˆÚ-›5p,M-ê¦na8Ø,Í¡ðŠK;hkÏÌçÚí!¼¼Üb¤z¦””G1dü6Q´H;üþ¸;SÕý ö‚†â ž†ê®óÒj*¼ñ8ºÔ)°™´€/ì¼Xj4j…ˆ0¤PÅmÞ¶˜ü%G«°±ã0Ôý-–L&óQAÃä¼ýûXº =Rnª£ü|«v+Oò©ž!Mà‡èP› ÍI4÷¥Ü}üøt€ÙaÜ[Štljüêîg_dWÊ´¶ ¦Ñ‡5ÃR„þ§Ç»/±ÎMs/åÁQÞi¶z>ä¹F”½ïs5–…é0ik ¤ð6ØãÑ鳋žÏuþЦZ“h&„: w$x£»$ÚT»SØ9…®[~ÙZIÉÖ>™Hµ’›\ä ,¯ÎRHçÏr¯¨šŸ[{ÿ8¶öÀ¦!1. Oa-”k®8¯ëÇkÅV%„Üly4¤µG8ùs©w?Ïw™»4ôÉOúIˆˆjûnµc:-œ;è¿ú_‡cB±iGΠ‹óæãùƒ–)žñ-Δ_äÖxâó˜¶/ƒT*TœLÎöp"é:À‡Åó¶ÍCC>¿Ç+þÞínÚmUÀþlpòca }¦ZéQ<€ˆ³–êg0Mçki"o~ç်x„ã%4 þº¤°Ñy‹tb¥·ýØôÿÄ w!deaóÂäÊÝ}8]Ú‡’’ÖŽÑ_ÁÚå«ç> yŸm-U‹É ö”^WC°ì™p^ÿ Z6n‡ýÝ;°è"³„qX¶»¸ù(\RÎØcJÃ+þ@¦ þÒÒéüWôý~e+wcÔ•2®©Æ|­2Ñq[n$R?t¢¢)¥Z¤(WnÔÆ7~©Û^†dzZ@…« ‡ÅC‡¡¾ŸxbíyÒ³ÜñUÎ&x¶x,É$’ðkWR–«š[¢£Ì¸¢Ï%¥Ùq‚™%掠R¥¯jÎ7 ã’í&€Ê¶d¬ Eþeû‹Œ&ÑÚ^ö°a‚4ôÔ|²¥*ñºøœotl§†¶[…¼, 8ùÉ h LU–~üH@8a/×­œ]¬ø2›Mnð·ý‰ÒÒçJyÙ³‡«Ý/G¦ç˜e®>ûµ:Ëß<"÷<¨t¸+7‹HàˆLyô›©  ËÅ”5ÍÖ81˜}„ä¿U8_ i]`²‹^no€øÞ3ß.sü†/h±è:Ó|Ü`u5”|„À§pšŒÖœ7ç×j¾k"[Õ7Jlê>q›@«Ö«ÊõWå–^š««:•¸D©ÛÜÁ0î¬Z;’¤VîiüêÕû~,cî9!o³y¤ö p‹E$6'»¬Ä‘ŒAçè}ùÓD†³Ð8»¶t«ºéÜS™‰Z‹Õk?×™vßODÙ‡ Î-sí¶bîr ½ ý VŦ6¸Þ§ôWË6ûªˆù‡éì +¿‰o¾Y'väýÉ|c"z®*kÒ@u¶œi¢–Xx´Fâ ™l0»xªšf<Þ ¯u=š *oxd6Zw°óš¤¿OggS€aýÄ nôHHÿÿÿÿÿØìàÞÖæÿ_ÿ×ÿðôõúúøöÿÿÿ ÿúÿÁãäêçèùÿ^òùùöøõÿ'ÿlÿ ÿùÿþûÿÿ ÿü±œöt}—ùwB*][øï«§C¿9àûm~I¼ïˆÝ–‚¥ ÙÀaá+C‚ÐSû,þëuVð9ȑǧ´zpSN³f†»I# ÎR`¤&úƒžqW6h»ÐaôèÿR‚p°·=ög`—JTEˆ¥âÀKV dÊßr`’=½óðµôžŽh±nïÝŸEX?2O„rÕEB!§Ü’=Ö%2ÕzzÀæFoä›úþ`¿„6¨SV]¬=Òyã@%°Ì£9k åœEúuZ]‡j™ËU²…æ¹51𔳾µVÅR%ذhã@ç\{„ŒànXÏW•¤wÆ`ØÖÀü¯íM+ck =ÐÎX%°æ¾þ 21À¯…}¦âÃ|ìØHúÞ”,Ûž9§2ñ 7êë(¡3ˆ3åfʆbõ©ñ#ÿøÔ ‚m?Ñíüâ® %¿"žª&ú¦s‘’rl¥>Ë€çÚ‹>'Ú{Ÿ€œh˜ÌÜX5ʯ}pç»°rp%ƒM;ð{~ʽ3îU¨Ù(7¼Q q×ärÆXiº=&’}3Žmn8Ö·¡Ëdî¼ÂZ0¼ï®•ª„e Ë”L£Œ ëã[±…I—¾C®Ä-dа1LX:rC_¡‰ª¬‰BTÜ$l>0p±Nó~Á4ë?Yñ9lÈÑè Œèû€,ÅGR+(Àü± sãt …ÿâÕ6â¤vª–ò]cfr·#ŽžZ£÷˜ n*É]=Ò|˜è:ùyÂÚÂB5^+믳!Oí/÷Oywxü|ÖCÃmœW¯5þܯ¦«Ÿ3ëliìóÙ¹#ïtdb/x‘[TÄ ŠÍq–Ày(R°‘•þ7'¤x1YI hE›¬>¦{ ¦g 죟PøÉÀ/òPÙ¨œ™KÐÄ<øuoï_x.N/~÷_‡°¶ŒÊ*JÐwÌ­‹ÄòFnÍ}c ÙÙžNÜüò UxG¢¢ø¿‡0°§4ffü„XÀ¤8î cû¸H¼\¹syMÜ—î³–}V€üL®Å}u‚MÛæõ™+í/íÆsuÈ T‡vÏã³ ÈÃë"÷q;]²¨Ê ä ’ à6HæïëȆ¥Ò4œ#%`"è+‰”~m§jè^Ã}±ÉN±K=ùi[Ž)‘P=%ö¹)ïÚ+7§Lý§wÄTÚ 38´¾gñ?Åö5+Úúšœ¿¤Ü1t£¡»Axü)8î€ßà³|uå¥Å§õÒ úT¸…É"¯ÜÿÃJË¥èÑÀ÷F±Û^j w«H2…(¿­#ÇJiàqwpª6n„†“IŽ?d•¦ ƶæ§m°÷;$®¿>sÏè.cÀi"Zü|­9ôžKlÅÂG l‰0w5¥?Õg8'x%¤‰¶OŽmPñ?5Ӥݤsme£ 5 ƒ>úê¤iá€Î›’- ££bÒÎ |‚ky JÅ×M±Ù@fê ŒÈÞúömwLZœ^£õÝEñÔËúys»¼RÞZ£u aù±¸¹çí’’6\ Ž{Ê($ê£$PbUA4°nSdó_ïÙr¨Ë †ŸX×+Ï]â9 ‚àÑ‘ÜÑ H­«:è×ÊØœÏK«¹—É¢°J$f˾û‰ð9óÇ3v¸HÑ¥W2ˆ•>y‘BÓs±?en³¾Ð!Y“w²Ù ³Q  W§$‡’ gyTlL.6Œ­ÞB£ ˆYJ”^Ç*ñØü̉Ê`f3ªNÒûW©Tÿzª¯°°‚‚Å"SÖ:´3"H”ú,œÍ½~œnyXÑ’!ÀÔÏùÑWGKϵù,ÍÆËâ £8Ü 1ýÉ(9Â&qFJ^uj%B@Eâ3~(iljægÿÏ?޼;{»ÁûUû\£~† l=Ûá;e˜mU&¢ ƒ ¦ˆÑ-`ZËh¬°‚¨Ó«ƒ CÚò½›R ÔšDüM¾«^Bß *Úð,Öö éÂ|Í×2³O½Ç8I/OèB„׳…*ÔÖU]. Ó5c—m%í½:‰ý¯Ñe;•åiF)¼rZö¦c\ÀV‘öÓ–¢(†BÇZÈ4 ¸Ø»¸ˆ+9#ÛÊ´XßЇñX`¼¨Ô|âà@•‰ 7ñóg$ÚC\¹œaü¯ÍëÍî÷9Ô2Õ„÷xÿÀ¸¥aÖ'ÕÝBHû…û%ì²Ú)‚¬ÖˆGžðßì9¨«Ì›ˆõ­$O;ºv0—4tçù×Ò‚(ä>* \$ kö)þÒùü›| ¼q…©€(!£³ÒföúŠh©Å#‰]ÿá·§ÒÄ ÕH>ýÃýQô*Ò¸èh´œ¨æ&_Í™ü²œü2C·å ¼aç1á@Þ¹¸ø,Æ|à²Co—µ%aYYe¿oâvŸ²—8V*x‚q#A·‡ÛM*¦†ì"ÄPóÛCæÌ]ÒµŸ¯²'¶; NSû¹lÀž зÞÉ¿•¢D?ÄšiŸŠÖ*ÙÕùÆ}‹Z J™w_¦U?“‚;«–½K@å‰9ïwžš”ÅÅÜÓ,³wÛM’7Ãy=‘¨>üL»’PT«Tw[PRQpª¢é‚“6 £ÓpNâúêÍèUõ ;ã@œÕ±Åb#\¥·Uš*Kµ~‰xã'Ñ3éóÑ”áo{¬¨½>fWu=íÀ½¨(³Ž<eÌ׃þë2sÓ .#»h‡œZur5`´¾[@Çx|ëi¸ ü.õß©9˜%ÿØIÛýö§ˆÝœH¾;ÂÄ)Pšžý ’÷õX³ E„Î*(ü{–[&ä#ØÈ)8Öñ ßÑÌ4Äu£O¸ÞÈoÁdÔQ >ûC ÜÕ üLª(ÌÙF~ µLË¡¬®Á_Á\‡Uµ.Ì^™ð_ŠcR€ÕH»s5 ˜ùl¤òˆ] &¥Ã{Ò}~»ç¤­ŒÈÌ$:ïçÞë$—øå©cfjm6"9ØÔÌÜag8Éf`ïyl£å©½iìM"U؈x›b<»½ÃÜa©ÿ£+Á(lýÐqç5M?»ZÙM› 1?ôÏ«ÅHÀ­[º€ÜõÕÇ«é¼ ì%Êœ¥£{4ïC12¹XFþ]¦X‚‰ªÂ”ÊW¶kŽ(Úܴξ{t…üL×41=!û«–ØW Ò­èþ?ƤsYq÷ÚOFOt$/RÅ!ûÙ³(豄Sqy kËô¸{ÿhR]Èáq4Ûpy G•0"4©–lË>vM‡Q_‹ZÇÎärBá>÷øŒ-4ª±›½Ï³@"$‹ÙÉI[WɆ×ù˜ E(’ZÓ$@»yÅŠ/29YwíG™Ì/S[qW@ØìŸŒi²ä ‘Ñ"¶§$iÆmÍ;“Öîcˆ‰=(Op4¯c£é‹Aý¶gÿÁkq׬köÞq¼)é!ç¢eñ7i>›ü™Úû¬±ÂÍWx-Éf¡ƒ*µ¾²ÜAmïWÅ”ËF(7`÷Âw±'Mãm"H„,S¯ª‡š|¹ò)gžds­)}¿{ijQ³ÜÓ¿÷§„0î;KãuU§ŸçÙÑq— +>?d',Èq^2­ˆXƯ¥Ê+!j’¶ÝºP ŠåŒEJiÿÇ“ÙçÙ4¹-°2{Ò+4ª‹‘A±6ÓM>vK…=­AèˆèÄêĵd| 8!•7ìÙÈÀ:v¯KÛqÉûLT%g=(ºˆýô’ÞÅ ™(µ3ÕéQ !q±Gl \ð˜Y5H$îu`ÅúÖáVÍP·°ùû.Á«Gí±NRÈ©í uœà_˜#~k%ãtýÌæ\qÅÞ‡ ¶«Öì$ø†š˜¡†Ñõí¶2Ú¹»—†ÝÖ³ÖåX¦öH¨Û§òÔŠõB¤HÌíª»É ƒ&ÄŸü|ª/³Ÿ>¶ÍÑØuã±%Äã Ü•&¡’ìŽ< ÓqqÁñ&,lÒ2îñnüñ©ÁBÆþ‡ëÄoê¶.‰µÓÊm(~ƒ€ÍÔu}o%]..a™ÃH7´l6þz©®ýÐÞ›—Ž;ZÌG5ö«=O¨Öçé‚é‚É`S;#AýÐÙEq‰‘§-WaZK¥rpU±ÃS~'–_ú×¥ù’x{ð»îƒyö‡a?dærâBɤ.N#=@gÍM×$p€ñ—eȼ X˜âp6ëÂcÓmwK•ÿýkbÔnîJÐ1+ÉŠþmbý'Sرµv”òásV@O¤:•ÃáË*ó½öHõŸ~.ø-»øBT½%ªæÌØ9•†¿¬N~,Ñ*5côˆÂÇqÙÏýïFîXs|щ E —1?Qw š;"<|Áë`™:ñ‹*¸«4 1¿üL±Zhàf•-é6N-¾ñí&Ìö±@¾ÏúÕ»ÿb:lØ@º¥ðRt1B6!Sô˜$ãDON +çã廼²t½<>Xã‚êÞ®¯ú\Óƒ±lPƒH4êöse=>ì‹CSƒâ @æoº ü¢…q‡‰Ág1Vu6­~%ù6}ïÓ%FiÑ2w•ä;ruB-(Œ«PöTôôÄÔœ8tP½Qz~ çùm£œåäñ*azá;bš‹¬-LÌkâ-³%G‘Ö“n´€Œ7WœÅo!ï݆7½ë€»ÛµN›x5ÇÒüWÐ÷¸[tx²bóº «¶ ¯îM¾O޵õ™­MšO†<üMm›?þ¬Ð=ÁàfRŽpõÅÑŽWP¸aÄ$íM¶Àèd—¥~^ªã«:$EßjšI€ÓþðO;¨#²M ý¶Õ$aŠ­ÎŠp6]”9䆇PïÝiæiÞ’^@L­]ˆ=­‰žù ðqÒå¾²sª(ß_ÀÑFÕä™J®üM8ü„ûˆß¼¾I“P‚jf&30u¿`é“H†#›N-òÂM’–±ÕÃ;áÓ7¼¢`«<Íq,È@ƒþ¾šЮ‰¼‘Hþ™”H»í*…  3‹r÷Ô† ƒÝ‘Óœ]—«•)fF5ícÐ;=‘AmkcÃ8§;;^a¨T©úêWíõfçw ̇}W4A. ®ŒL-ŸTܼyÔQÒélÙB«”m¾p`%UÇX9v¼ÿWÒ³‘ßü+U2TAôõ‰~'×K†g°Îã“Ô¡}5ö‹µCþÐô{ð[¿áõ=JEaõNä¼€yu£üMrIÓâ…4#TkEWÀ`œðËã½ñõ®äÙî_\¹¿Õ„/  ÅÇTE_W…HØÚ'…¡4Ê…œç’¼×L‰§€ÒTÄô© q]ZƒÚïa®«Ée4z®°øVA7§‚Âúþ?Gz…´Èb¦>:JàŠˆ´¨ˆ´”¶Ièê¡Aõ±a,Áù8·P ’AùÍW‹Ù¼Düщ¼Ö'†þwPT"Q7XZ–¸Ê¡ †Td}C¯¾o B³«ç ]ò7"%f}§bTØ02؇á꽺i9ˆE°BÜ–(’–% Q7Žex?_õÕ{P€ú¼t³§üL¨’H£`ö²µïñþJm¯DìˆØ¿ú²RˆâY³@q û¦„ì¤fë$ ô{£ôÞôc³Yw¤ÂÑèœBey;‡÷x¯ î<Ò6ŽÇ<(¾Y„ìã”’)ÈZFJÎXYkâ^ß¡¾MNjÄd"vD5[‡`A«x¹[d±ùr¥.jÃß¾âk“¾å¤¼WZ ‡¬ £øÙØú¦£Æ÷vUq‡eÛ(è·ų˜ç p´ªÇU£«¸…§m\ÿ{·„[Á‰+μ¯ÜÓiжUÄŒ)¼ý¥ò.¢ø÷“Xq~?½™Ôœ ¥ý×ë¥Ù£3ãMJ{,üL±‡Ãè¨qÝmUõ6IhùùÇÏósÕ§­Ê¬?c»Âf±‚9¤ÿqeço艫½¶T-u… ÔˆêÀŽ•^ãÞþp§ †®¯‘¾íî{W®B®t±ÏHOQoQUá¡Ç“z’¯P5²÷Ùœ)šµ—j­îœ£y¥´bˆŽÒˆb|¯šL•óî2¼W+w]„X†u-¬.MþŠÈ!À>ÅwÿÉ‹™ßx}B¶ŽØA kC‘ýëÖu§KwÄ߃Ñ#ÁnÚݤkÀÏ.Ãåe¸fá•6+º ÆDIo5vÚdüû.¹ ÁO¦êü5îî9_×)ì:SÔ—ÃB1¸Ý¡©߯¡3ys7çý.K. q‚“7¾Øu}M1"Z`>GµL64ê´Gð³O‡?lX'EËd‹ 61è£úÕ2¬ñ)à.ö2 Ä¥¨¨igž_ŽñG•^f`B ÞŸêÙcr¡?ؼåg);S^·Fò¿@2wlu;€!eøøþ‚ÂpPâÓÞSrןº̈ÜùÊoAC59qÃr0k©&-ÇW?W\LöFõâbxË®®àoã “°–eŠI¡á²ï}/ãM„ç…,ÜTŠ_÷ƒ[=•·TFlÝã¨M!EüN‘–êç]az-çìˆf1°'äÂѲ…côá†Ô}„ÚB5þÖ£h·™@—ŒÕضQa‹±&7öÁ<µÞ„±ê¼Ü\b¤D§5gÆIyéÏáÒ'a+Y™I¯R:viòØ £|ˆišÇW¦óW×h Þxa’0赪aS`žµHTÃ4L¢y[¡ã56zÒndðŸ:n†‡Å?ŒÖƒã¨ˆŒ¬ÀÈý™·sH°Iáá߉hÛÁijŒ· …Ÿ‘è|†©¢K& ¾ýGÍæ¢SûZµB‡Ö=),†Ùj«ãêßœ¸>®µÈjœÆ°Õ8z­Œ ü5(„afW99W÷á zÒo]éà„ÓÃP¿"REC!R†·{ùþ¬C±‚N2÷`Í1óP»2Àqœ’©Pǰ†'’ž£ÿ’“ß–1|Ëj$9|-B4««\‘ ãý|†¥îýþ=XÝUæÑÍMY§H#îe‰},ý3Ç)Yn5lwócïÖ®“—µ/OUžµ€å4Ð zTméx€V…ϱ\5ùpËPdƒ.uõÇñç°ÖƯ©ï>ÉOçº Nôqà^òQÐÐð 7üTÉ$ñ©³xÊ€O«·¾ eæ~^ªLò¾§•âȬ\.¸XKg)çp«ØÛʽ® ‰¢ý¿MæüîÌ; õ˜ïq•Õ|+r¦†ð3ö©!aN€îšHÔ¯ €ÏíH²õ¹§êÏì}€ü×q}Œ%¹Ç È’,«ZZ!ßÈB[kçnÈ.ÃóÇqõö“M¾y³®œè#ÿבäçïÇåR·á˜SÔ©pæ|ûÚݘP}œþnØ7¼¢?©ð½³¦-Á€pʼÀkòí˜,§ˆÒâW¨»~”ŠÉ¬yø_¡µAßxÛ®ÉW´› ¶Íwö}]õ¸ó÷ŒQÒWѦÜe¤‘œéEQƒ€/øŒ—v.G¬#¿?Uq´Å7¹N3\ϽÃs¡£ªZ$íÅ®)zzÊûOõ#üLÚŒÀûôOW•Þ^XoNZÁXX]âãphÏÓ{¦ÁÝk¡تñc–Qý7¢dÄÄÌÚº€n5©}` ÖT+: áäAS€ ÌíS´~EE¡Ã„ÛÒãè”ÈkÚŽ‘X§ü:ø¿,F$àg¹×7RòˆÏJè.SÞtvŽÖ\÷©AñU–Iú)+ÚNy…seÿR˜nÙÆÀ W Ðú¯‚8‰¹ÒªAû’K‰Š–ÐxËVPê˜B&åÍ–ý7‰NËs×—ÀL¸Ú홇¨Š5…êrF‰|kf„Nt“úð©þ€üA‰¥JŒ’·ÈUx<: ¼uÛ™ªà.¥Ê°=üaü¯˜²4óíéRQ£ZÇ’dX±žÖyèÓp`ño›§"×aC?·SŽé€ÿ)án‹Ðn$ûƒb? p&½tá¢ÂW°Hª i?¨ùç¡£x£¢ï-½—¡‹=êÆ­ d&9¯¿×p‹)[KD"ü¹¸Ï(›Øqè¿+ç„°è§2ä±%“Ú$ÐNø~*¦a=«"œv,ˆÞH8³ãéÔA™C¿DV³û +„äÝí-#mòথËa‹hX‡ÆÒÅ2’S9ü” zo 'ª— ÷í“…R^ y’¹¸ƒÛÌš“G«§M螨\¤_L8>:lŒHB“Þúœ!³.ö[ž‰ü± ¢—ºC°p2B¹Íâ½mðôÈUCÔ›Ì_µÄ´sGs’r÷æ•Ç„Q­Mçuj’ / ÝÚ‰]^wà &²e²¸Ãh+F²±þÖåR³AgDþ•U'øoþ$ÍRZv å(k°e)‡ |DÎúyh­NAŸ|ѱ¯ï +CËÍ+j­{h7c|OŠ…Ê˜ÝÄ´]îßEÀ!s2Án]`ùbhFT²%Æ€œ®f“ÂãØg RAèþ]]Õ\“m‚w8É;sÞ0Þ†ú­Ùu^ùáèfÔ¸iq&ƒÏaa¹uª4¦è*)Ž©‰ü|·#ö,5ß,Æ“Ïo%ÁvÛ¤øá ]ôÈPË8’q±¡¼Uò1{ÉÛ(P̧ôÊÈñ“󤚀¾d'VÔêÅ­Î!ãzºk aÖðûXµº‹¸0èH¨‹ªo䟘©B“ zZÔkÃâjÃú,©Ä/xˆÛt” fqqX@dd–¾±·Ú«!yÂK}©ŽQ‡-×Ä>¼ög"Ë6ÅÚÇSC…5 GºMµºlŽn!< °Za…Q·gê™cNd¥Ò{ÔÕScÍmÉ–$±¦Œ}‰gµwvÔòˆW,-0À@½drFvïìØú_´RŽßs¸8 ·ëLÐò7"Š» ÒË:Ü:`Mâ=èÀî‚ÆŒ‘ÝMDY\e¸ñTÝ«Uöÿb?Úc3ùTUÎĵٹ+… ªž¾á†s Ù—[vH<µ6ÉX'ž‘‚Z‹S¤¯||©ï‚Vm£•<:Ö1‡pμCÔÇ"ÇGÑ03¨!-×É®ÊÜõ.OÍ)KhŸiìnŒJÎIH,®G…ù•ôð° ¨~.´°VRR5ô„éæ0eD»<…‰Ö7š_X0P—_¤@-ÌÅÑüM.C©Î ãå¶Ÿù¯3tc‡¤&SoÏ{ÖØé}´È*¥&圭+Ï›h‡Ó¸Ä¹Í2¢ý ËÇqPokáÛà®yæÛ™ÌE&ûã9d$3Ê|7Ë1üBH©ê™Wh%ìl…V6ÙO&cäê½§ùn¬¼Ðô?ÝUÏ‘R̶¾4’mLÁy4†šd!Á¶ýq"Y¦á¡ÿmJC¼ÊdLêŒ×ƒ_÷éJÛ´j} ¨±\Äózp¢©ø5[¿¹ÅƒrkŬÔUêmˆl¸G¡åÝ$fe¡¯(oÒ•)_Æ:æüM€­ôAY0Áyý´é 7×àŸï2•/G³èæV‡ÃÃfÙ‡[I嬪;m¾}K8eµFT…/%B löÍÅç ™aI–ô5õ2®²Vt’kyªç'vØê¿É'ü½Ö+RE•"$kó£ ˆ=Ü4|ÅèDLÿ´Õž“e¯ÃW@I1óãÇâD½½, b„Õ ­•ù*×%3ØBn)¯ZF†%Üåõ8Eâ ³ÐÝŠ >íÐÂãå?©d哺äÝŠ ÓwñIâZ¾*×vè²xóp’P[jÊ휶VØnüM(9¿KÅY.ÇL‹ºè³í2Éô̶ÔäG^…2˜¾@$RK¤±6ì÷oT½Ì¸/P”v¢$ÖMF îAÇzù}0ôµ2dRÕ]üL¾³5iæS [·Æy÷:À€Ïj[çdVÈÂýíNH¯D>TˆÝ®â|¹&„¨*b¨ mâðB¾„%An|mOòÈì¶Xß)˜&¦øò¬ÙÞèƒéÀv²-5ýø¸øA'‰-&óä6Vh¤ÿÅ™Dg6ɬF#âSzÛ•Þ• …OÙÑ´ëÌ|—+ñ_#q&ue«tÉc6šD[ ­RD2öÿ¾ìñ½‡–wz W]ÒcÒ?¹?”d®éw¥Òч4;ÝCÅüX—T‚£Rž3‡ÊôÖ}ZN± >c¶Ü üLº÷¾—~êеm xÂcÊñ[$Xòó—Õy+ÞT„¦—áhl"fûôÇ<~ºŠ½ºœ‡óòù ÈŒâþ]áö¯Q‘¨Ç¹/êH‡žpvfýFݤź‰ÚÀœ×ÄP5sÌB“CdÈíQ„»lRÙƒŠ##p¸6)”«04‰ššq>/ÝRÚ®áÃð‡ùo¹ÓÏëù'ÿƒfGæûÁ‰CY² vÁXRôï'J·Ö"¶”çÂlŒ÷—ÉoÓÇ¢JÖ_ËîuçA5LÖÊ¥MŠÞ™jAŸXB¦8ž•'hü$Í ozuŒ!¼šcú.Žf˜lŸ¡»ÿÔø±ÜJü|®úÂ\"ÌXÒYK‡ÌçÙ=!¶ëöXy·³õj@y_\ñÿ;íµ ¨½h’)ܽMW÷0‘Â4£¨9€à‹ùVèyã|[ šáVì÷ŠÉb„hFü\_mOÄþñw0DT¤´x©$y°¶’û›ÇùŸ*Î÷(Ž»9áOÂ̦š¦ù‹mŠ®µœ§°™ ¤O—o›g+ú²±•5ËjÿÂ]>!H9 gª¤E­C\F‡¥DMŠñ[RÅú?Îyƒ•¿9bÂ÷‘ ´É:;XS­¿ d“CB§tâ.shéÛä5ÄD¹nx’ÀeXZþÖþE'¦#²”!žòwqä\)=«)@Wy¾X™½‘ ˆÆc5æ0}ô¹é\V¥hùóLâj¢½¿x^„,8RNLajàxËÌ)ƒ–6Èý#)ÇœD°ühxæ\õþ·]~zfx"Ý’üM.;2fWü^o_çÎ"ëzbq’B¼¢`V¢DG¸Û£éJô:ùú&duÎÓ-åii™$"¦a|¿6gzh1Õž¬ÇóÅC/Y‘›büíšd ù‡ Êðý„æJßíž°æÐâK0W¨¥?i@ÜGÖhº3ôc½ç‰hT™†½QÂÌ„jYVô’Œb– "ÐÂÒ gDÓ<âwŒcgRùÿQ€7¼%'`>Ûî®pÖdU4¥#¶œ^K¼Ü&îø7ÿ<ƒ“ßÙýw‚1aë˜Dèæ&Q¡\$ÿ0|,šÿ¨vt5)Ó9üM€ÿãʃ* ½Æçâß8Rf¸ÅÍ‚ȲÝNŒB†i¡]Dvi¾ÍC#pf½ÔüT^@'tŒÚï†ãÚÂÕƒ  ©¾\DŠÌ-Î!Ûl7pFŽnÚD# &‡t»VÑY ƒÅD^è6ØÖû÷XÇ0ƒv@…°´4;Òhè\(QyÜó­­ì˜¯p˜•f¦‚¸†eF¶{×yNìŠëzèüùÏ?›kDçßß*C•(hz#×OžP!:“½ƒ¬pñ»`ÚÖ~´º‹Š›‘N\`èdÜöÛì}x÷å9*=yÀµI“¬úùÐyÚÔ@íüLÚ„·"E$ÊUÉ*INã1•Nïï Ôl{w×7~Öl?ÑvSÄî?J^yz\Qw9WWâ¸Ñ£Õ×Á3Gµ4FÔøñµ {£´ßå!®z)ÅHõhb…×ó5ƒ3Z\÷ìÓ8†\—çÄ~2¦¹zoÙÙìpdÈ„ÂR ÌDØ1Ê _'±áxsJv\h|i®¡ ë”Õ1ó×ù:¢"8yÝœ:PX ~÷stýóôçËÔÌô›0ïÞ,½R xD´1Œþ©US@ÎóË;•vÑ+Eâ{Ïfš›Ï«§3^ûón!•ˆÒÅ2¹0±e‡úȱÚs»„‘™\üMb´kSúÞŽ«\&¼âq‚>X›{䃃hß#Éѹtº£*]4̾= ·™±8dqf=0 ÷ˆÏ7ÈûÑž?²¶™Ò|ù©÷ˆxœøc‰)ºË!k×+Z¤-Ša)+:Éêâ¿EñÑL6G3ä!Bϼ™‰+W`.`•¿Á}Æ%²‰Úˆ»þÅ; ¿cf«Ûq˜ù%KÄ<9ªt߯ðÝŽ öcª¹á§@\[ÃñI°–:‘-å า]5#Œòà ÚMú¹Xø8 £V"“ˆB¹oö×[rV$)“ ,›ýÝ7‰Ñ”ºŒ©CEüÛƒ:ßè%a«Kd³¿:?"%NªKÿõ]´¯ýgÖp?§ÅjV6Þç® ]$„ŽF8Á¯RÐa–"¾ðjw‰:û4<­g×xËøpÿÆÉŒË‡â¢KÑÖ."Â,ÄÄ5ÒÒÌOî@ùª Ɉðþ¢øíf{^®’¤µ¡Ónç¥d¥?ÝwÕçÚËféž0Ï8}dӅǾÄäË…ÉÖMw@ §¤ˆ4\©¨kŽSLtÛ—üÃFY’©ÜÐú*^õŒ8“i_¯Gž)á‹¥aûߨ¾ÈÅœûûAŠ-'ðo±k…h&·ghÁ®j!ÿáÙüLÏк-mr‡0Ô8D<|>úµ§¹ÆýÿŠ-Ì »pfC@0ɈO®«ÇÂメ ç6¢9Ê\Ã~ñöûùÙRü â´® nP°æcÿiDØ0ÀJ}ób9ÓôŸåˆø¦Û\sû”7úÝÝ.°¾&vTyo0xJ%ò&a$ Hþrºˆ -”›Ï1M‹@¶^Åipä­rÁ£ í£» N9æ™5ÍÛô‰§ˆê‰Ò]J1|9AgÍÍÂú>Uk“F {­A³ÉIK„Ê!©‡ÛÈ1#¤…Ï#:¢!óÙ´Rq{ê’yï¾)% ìßnЄ̃ÁNùï¢=*׿å„ÀKÅ÷÷ÞŒ%‡ = .wâÜvpçB!uq½wm»?Ï´>|°lW¸äë‹?RÑó…ÕŸòÌb£!ü}²ùZÎ’EUšV¬¬Ðçõ“èÎ ¦}VÍ#ü`ŒÕ5Û¡:cŸ2‡W˜1=b™úîâñ»I”÷µÍ¤L…ËDe³ÞßßHÐ>5gSåêw‹ãkŒ^jô†(b84扙1ëø›Ž×öÍ ö™ï¥9ÖùÉ»¦À­jëQð¶GÄØuv‡>/¡Ü%ê(§vü¹OYæDÅ_åÀè?Ü„Ðj¹WøCÄ•ec;–ù:œ6Ÿ†±EzmâbK•‹½ê8)DÁ[Õ_¸?m s#t°º•àͶbTÔ‘Dâ‡@NL c®PgëÍ¿^NóUwà[¹L>¡¶¾”„¸ëY]:Ê’‚Y( sìBÀëDJ´"³o‘¾Mp„GÑi-•ëBfÅêF=ü6M8ù õÖë#ÚÑÌHr£iÔD°ñý–1ŠbÕhF|Ê;Çbƺ{ª´YP öÎ8#6á©ø0˜s.Ù[/GÌÙÇ Dºê¥6ÄÖ@,LEv[t®•Uª¹ÊêaÍ+1ŠÝ‹åÖ^†|ú/2h1ø¡<³Õ `v¡óÌë-A®Õ7í˜áxýÊòÖq·Â€`ÙÛ?Ò'ÕÍWD“1Í»Hl2yW® &kM#F…8óï>Æñ4uÙ’Ùy«‰V(¬žñ¿!Û?PѨüuï^.ú<JÖ9WFãwxýçeâB»ã§æ~&~Ê.Š4²µC± ÿ· m¥±Ä§¥Ê6ü±…ë\f´ÊU`Ö:*Êà3yÍKf ²á)¶ JVK •¹<7G‰è€›+þ¨¹G];“~¦³I;×èçù;·.G$ízÏöÐ5—ëMy-MðG|9L>™'ûñöÈG·Cp7©ˆç]IžV³ÆÇÍy¯´r\ÞuõÎÔ­kvC6°RÓ`Ã<ê›Éذ°$ÓíŠÌöÆ·‚U€¨V|W”ܼòÑ%uÃdäÛ²f`8Ô¨úò™µ›¬ô]7d àá™÷ÁiÙ9ÉV‹O¢ç×®ñ"v¯8‹ØÌ S‡¼3®T„-oÃGV,uÇ0±õ›_è }küs¤ª;pÓü®€$Ëx[­¼€œû>Ä7]Y‹sºÈéüŸµÙRÕF’*cœ½‚ÄYrú°í‹õ‘Bï=AÝ=Ý'JKr¡FœÚ$ãÌ“Á’äqW“E`Hüîêp’c[DJHç'!}Í £sªg½Ó{ ÊÛš¨mÓ5`óÕaSV›5¸ëSÃþVpº1µ§oÐòI¨KÚ‹5+Ø£MŸ$<ÖI—Ë{ H¦üdX&ù€³/ì?2š §ÔÙ‘Óy)ƒX>”™)ÚQ–×+òYŽám‘‘TAvEâ1’“3¨–OÍ„”R,…¬8¨aÿ«æ·ŽU‹·HÓü±1õÀ ¿ù­Û§ZÆUu^8ϲëC–Ëuõ¼w"ŠÆT—ÓËôÞ1²¢MI^JY6/‰Ò}oʼ}¾Þ‡êq*èŽlv‚@ ñf¡%<‹Mû'r±†Søuâx'éPþ™±ž Kˆ²F‹ƒ•‹AºªN¶`N­f’ÔMuÆ(×*±w`jS8m[‚säàro· Ö¸tžüÈ0'óÌq­üÏ‚Nn¦0ê=Yt*E¥i6Ÿµ°($¥§?÷󶈋TTŠYiÞŒ ,:×G(=OäEEqù© íÈðû§Õ÷¤‡gx(<uX4®G÷§Á(/`0m!p°¼’Òü®‚èÇM÷®ì%×òŸÑ+a™Þɺ®ÍÃÔsš©bl r z*ªy™-׺ÿÅϼ߄€fÚ®öyGk^5‰VP(£Â>IrµIK󊂬Å~LÅÚ÷ÒçËnûå,¤¿ù±•+=å‘î[i–cã> ¼û¹ ‚ܨÓâ®ÚMp^½ÔM#çÈbÿÊX¾*Q5e$çaamu¹{Y7Rºím¹PÝ{Í@þÒ ^(öîgNbž }ù(”‘>Y‰qEÛkS7þSÈ%pË+ƒêŽhÇ"a·n±è´Eع¼NŠ^nħÏC’P¶l@4>JÏ«"KÚW0Òü&’Yd|o²øF*ÿ{ÇV8e Üä Ê½ÏDÿÆÌçy‡{…b<1ܳ9ë‹Råsú@ç‡ q:¹/kƸŸÜãóL¡X1Zf+?f¥óÝ÷ož ª s.ÛâÁá J@ÕÌÙCINŠhdûEp®Þ}sîÊ$úA‘ŽÉa׫—Ñöïƒv- %gu3#Ϙoþ8¬âvZ&£|¡¬,ÔQqÏq´°TYTt±òA<ø¡¡¿ôà Þ=Lñ¯·&;À¤-§Gj9ìùËg(®xì[ B%(dmìÕ:–!üéž.£SÕäpîü.1š6Fùd*±ùÎúŵ²g’m^9ü×ûw€J1H*X+—­ j.#2F¡\2ØBrcPĵ!9àБ!ïâÑÙ¢™Nˆþù~²ªÛÇ阦÷C•wšrfùBϽ'Hý8†RK™+OÒÇhm6ÃK’®ªñfDí-CWtf×N/‰”ŽrÅC=_y¾M–€»ÄˆTÆbš•˜MY…Ò um»'!:_}üÓ‹1["Ñþ¤©|ðå¡Àg3SÜÙ{B’о›âœ×ºãƒøòꕎ•=[O>ad'Ï”²œ¢/Š<•¿ö$ ÕkžLϦŒÒ °`*¼QÓsÙ(+,ü&žëÅÈ¦Íø_äã¶Ù)ó·Ð¯ù o „ÀD“úx’ûœÅ•ëTÙ Ëçrþ®ÆE@Dí2@u‰À“Ïäš~?èÈôKuYű–²ú"Sv]ZCG?fÁ°&¿ø,¹êuOÌßü 0$ŒÃZÒG„wêÝ$ öÛíÝ[ÜÛŸñ‰æ\,t>\‚úŠi ¨0a ¶» +å, }D?ùåJ§`«ÓwéÂA-‚:ŠA’ľ8K®Ÿ†—›x õÆ|úÖ_&ÉÖ éÍH”Ý;}ÂÙwrBcF'w}]yw¯$õŒÇEÒ#ò?âá#ûoáä[hÖw8ü/P€…•=dÒ*©²"»æÂÔ®Ñ+^¼tä ùcW€¹š<¬=Ñ‹vc•70dm« „βֆٹn! uvõ˜HäÝ›ÿ¶ÞyRÈo54¥º@•îÞÔ¥n×=N­­mdY»Ü"iË ý2„´õ}õ쵈2íø2×%zåÕ‡øbn™òÐ:ŒûäÁÚ1ÌD…ìާG?IyŽ}ZDašÐe……Wxò´_;×ù™.¸b±ßEØg$µ¿Ö×XPæÂMì³K›H ;>¬¼®UÔ-öëy¦»œö¯¾d‡) øU¯r;çJ²½#µ} þÁ=ÏܽÖQ¤WcÝÈ ‘OggSýÄ nèz!À_ÿ ÿÿÿÿ ÿ ÿÿÿÿ(ÿÿÿÿûöùùüÿÿ~ÿÿÿÿÿÿ ÿ ÿÿ ÿ ÿ¥ÿÿÿÿ ÿÿ ÿÐÿÿ ÿwÿÿÿÿÓÿÿÿ ÿ ü«hà#‚ÇûWÚ—[΄ ª¿ÿò‡˜Üµc=¢}(óÒTˆ†iNFìl&L©¨ô˜:€ß÷Ç/ÿRì©é†usLš|³Ð†ÕÀý¦oáÍCôƒ•_g}@I¦bø)§óÙ€#%ÝÝk*Ø!edqTÆÖYÌåÑHÅj+Ã,ÿ™üördC pŸð\éVA/ÕØû^»¦¾ÚåVÖà³ržÔ=nû”O7ÇuÛùŠ—q/¢¦ŒÔ/n!Lˆ«)Fpß%ÞŠþ„›¾¸°@bå:+Gƒ8n «Ó"Œa&,6äHÃT¨?ƒ×†\ÿV±¯D¡(ë"ümŠV”.P=ìq㟧âêþ A¡O &øöªUÚæúªu¤RTA3žáÉ“õ xᛄi‰ªdû³™á¼ØÏ}P¯¿^Kp´>z.DÙHNÙ{;l?2Óü«h¾~†EØÖ?¹ ÕÊëµèQ?-*úX]¨äÌùØþÅ¡šë(¢àŽVgþØqIüa&æØ•&rc%1Q•Ø}ᚢ^–ßPœç53k`9zhª×ç‘*ݶB†§$!¬ÈL‚»¿˜Õò=ä¾¥‰v˜qÃ]!ªv‹½ê. üÊ:"ZAxNPø›²eÕÔãÞìé¬FPh=ÌöO¹Ä×ÞÚ£-´»ùO` ôÑïÝ~ ­Ø:ë $9 ,>Yl¶¤'BŠdyd=é#Ÿö!ƒ.6/“ùiPEzjѶš¾Q1—Ð4ÞÌmÌ[€à^O°:„aW²QÆèÄÓü°…¨ »H"6Ò -›þèz‡ØÛŸÉê­@Ônà,¨£óÝJü™ GÆ!¸=Ü8 ï í ­±3Šª^X;óz;|Aû±©¥ð-—(&:­ ì ÀcXe‚®:´Âœ¬ðâ‡.±U%ÓKÜy芘ã¨*ŸžvéˆKJì»*o 4ŠËÌä=:ä+êð(ëtèîBRDû‰‰Ù’ÕÆÅéë©ÆW %hÑÚ(P‘yùÑÚwbSTTnÑÐù™,ÈžèÀvÙK²þOãhަ°&ÙÐCgðûõŽD/‘/VÚvmF¥ ‰Æ[¬>Dðà‚^^-dK-:|í½„ÓüªÖNOŒ‘ K¥Ü'³@'|â¤ÊÇ}Úï`Óƒp*uòçÈ”Á}:M8æ&ñxHUWHøTG¿ý£œ¬ËK2›Yr[!Þz662÷þ‹0¨%ëM宫FŸû‰€?=í9îä¼þu"¹Üi7­˜z"ÔŒq`! qÒæòoÒé¬Â‹´d\”MøñÎ8O'Î~ûœ+~S9|š$,/PÍÄÓ+"wü3¦0£<<Œ¶"Si›DWˆP]åVGþ²©§™Äj}Õþ)ÀÒÁ#š"’ÚWà6^Á’‘±æ¥~ÙŸ8›Á£8›]zvõÓ–Šh,ºZm‚e±eXf:ôë2Óü«g‚ „7¥¡Ø]aëåèÜ.M»s4‰!Sg•b­û8ÙLÌ5î ·Gûª£®uŸ ¾‚«˜)´Âȳ>i%„eBüº¶Ø¦Mþ›á`³Ž‹‘YBX{ãpØßÝr.7’:çà.¯]=Ýê YÀבтežõYˆÖ}žaþÈÊýÛ´¸˜éOöYT4]+ütToAí°NúãYG¤xæÓ6ºœ–Kèæ¶ëÕkíT„yT=ìoÒò`3b£[+”œ[_jÞÒüªÔÜ%%tg±½´UøÏ!•‡#<B´è"r«#ùe#z,¯D<ôþ­àHÞ\œï`˜¤È‡ˆ¬3[Í0‰û YF^l|aPóà˜&õ„ßî œuÍÀž½nÏŽVJ°4lÄ.œ{;ð`íøäì½ó'Öu†Nоµëˆ (;9š»·z`Õm€_*Aœ0P­‹ÿþ–Š@"$J9þI"ó^e+-™p™l½—±¬R]&#‡OÓ°X­Ïš×áÔ£qÉ )Y˜ÎÃédŸ½âÂÔÊKÎÔ…ºAi3gŸðYa7DÿUœÒáÛu3¼Î~´<ÁL׉Ìà °¬Ö?8YµdÒüªºVØîݶ¤ßNŠn¼ÁP°_KÆ»5êu ü5ƒ½b4ìz,Ù™Wá’0ϼ¦Í›EõD:hMewMo§{Œylªó)½æÑü´sPä6Ìím{o?mv‚»Lu+Dœ¬ïEËÙs¦tKO|RÇm‚sy¥çBÛš”×66lÈÀìä:gªX«n ÓŠúönlqsßÌÊAÞ¦©öæL |\ýlûªE¾ԡ¸(IøÇ¢µôBõ”‘ÌŸýÌ‚âŸðÏx“À×Ù‘Ÿ¸ÁïSÎ˸Ím˃oqí si¨eIýb©ÇÓEˆ±=æ2YjÀ̓K„‹_¥ì™¬ÓüªÔÐà}ôj¶7éÙ¨µïªîôÛÜÊ£«rûA.£õU|Y«6¶=;.Eü<fÈD߳ɸ¹Il™/G¨rJ{¹æÿ¹ìóÁíÍV·=PÈ…3ð]›¼? )óÐ+¶ZxÛÁÃ$ÏŽJ¸ ;Uèµ ¿6_†\ß[D{æë™7ž@¾ó >³×|œâ”S+m,™½aÁUÙׇ±¸ oÍ» —ç¶R6Ëßÿ•zL_èx†F°ÛªPÅN´HŒ]®çKËä:ó¦ÄÖñ/™&I°ÿ‡—£õü—ló'*ä>ÓõÍ~Åíó nß,+¾²­LÅtj¼CØíWØâÓüªº~\‡Oz°¦áͶåI ÊRhÒâI¯'xÊç[ŒiÀKÒušù7…~/®28Êõ³Ô03e·œÆø€Ûn­o'ë0-ÁÍRÁ¯âͤ@/˜¶xªšà^w”ÉøH±ezv2@—0eV/>¸6‹>Ã5±$W €Ç“r ¢ÉОßøRÞˆ \ÿ¹ý7¯Í¡Ô²²^ž$f”7þ¹@0ŸÖ¸ë)‰l…¾,ÑSLö_[“êwRœpX¿¹:çGE…­;cö,ö-:5ŠmœD;U(à¨g®Æ0ó†fNç05ØSgk!Ô~mî«ÐÛit:RÈS–Ëé.åë0Óü«6Õžƒ³ .ÇJÓ|¼9rðãKp¶Eõ؇fümüjýYþ¨ŽŸD¼ñª9Çï†l0½<¹3f£çM÷ñ›r°FåÃøàrñå¢u‹sU å- Gnòãé!ˆËâJZDÑà“˜Í¼æ@ú*}þŒ˜2ây@–qvâ„kRéWg#Öá°:Õ€ö§Ð~9ÏàdX5•åÖ^pºñ1â$¡Ýþ++ïiΆ”ÔVI ¡˜Jô~Ú†­ˆDFyÂêoÐ ¬å†ÛËB¿ ®©ª_vškûÔVÒ=höðf’¼_8]}÷çù ’n„cÈ„¥ŒÙn%Rÿøj©UéŽJ䊶ÇßqÖ¸/õHbIÇ%ÇHÖЧ֢y±æÏÑsð-ñý(CÉ8”ŽÝFU–JʫƢcÝÔ'Ü{ÑõŽoeô™jwŽÞû¯EÏLsÅ¡:8©W‹ÄÀÈå»A˜ÈÛ[Ý TZ»XÓü¬:ß–ýæ^HÉ¢“_»„K?:°lç§Å\%‚d½kÕ>ðx®žß›?÷_OeÖ¹“¯( E½õƒ6Î×4.ñ&xcppy*\VhØÀ_·#0¤›Pð'ØÈ#"ru»ã]}ä4°Ý5Jî¾´äÚìšT¶6žÎÖÈœ¥’¶á…Ú¹w%àÃjËzqz CÚND¡1¿Á¡è¥´ÅhFF{Z„ÑRø.îµñ]6e%B“*ø“VÐêy™Ñõ ²¿Z­µ¯´l†­Á¾§<•‚#þØ@«£ÔIV"|-æ?Î[øÎjJ½{è…µ/׊֌Óü­ VzŽ}ŸÌcmÇšSj'<?ßŒÌø‘Õèd°oTÉÈ™äÓ´û'y€4]-ƒlµ¹úËô«pu§±r"½œŒŽJì¹ËUW:A ÔsB>€Ãä` ݸФ„ˆ¶ô?5 Ê™)W»¢ØU‹º$ÁqƒjÂWëè섯‡ƒ# A#<¹åªà¨RÕy^ƒŒó©„òvçôöA¡˾|òÈ/²m gw™á˜%n“ó"óžÂ/vµ,¡èeP€›Såc WêÍK\ì8"tÓHÜ‘3§U”Ò~ÑgkuÚjz…·8Ó#€BY͘' Ó¸Ðü«`ñæù?ëµñA.j×EVE¼ÅW4Û0Œd¯àÎ{“pI¬tNZ%Dÿ7〕­ýÀ½îgò$„#q9n8±‹¡HÃ…´xÌ–¥«q]V±3>•® ¤ lʰ=ñŽè%9n‰3+mƒú°ŠNjç‰ä%²Ìô‡wövìcdÆ¿]wt;wæLø@mm¹÷Y}].Ó(Șöηâ "gQQL†87óºîS“ZʪÞÌ·ª €~êìDh°Ší¹´Ka¥„•w9í(ÖÜÌþÈ~ŸÌâKê•Pã$d“Ò¸ö6%ÀðŽÐ %ÅpžM²ÃHX¶Ôü&¼¾%žЏ|Ê/E”»´H")ÁpXžp>cQº‹Ò º‘ÄõŠÅ^!N‰™äZÔV„t©gÖ»i‘3ËT˜È [#€Ãkï¯òØÀ³Nz§_}-ð –½ÑoZDÊŸÜ­090Xäà;†êºIJ¬[=ttE”!¦ÝK=ÀÂ?ßOÅ/[ŒdõŒT¢ÿ©i»(cËÓÔé>–>4Ké E¨Fû8·§~ŸÄxQö?…$ã¹!üî>+¢â ^Šz= ¾Ò“õºÒ† „v8JÃC·R³]uôD϶°::WjJyÎ ùÕ”Ê^§÷ä mžœ+¨©Òg#¶T“r,-»,T`ü°Ñnsís±š¾ã$ÂÆã:xS›S²"/?­¾Sªâç¡&׫þ°ª"i0qû>7æ¹hŠõ2©N@õtê$ôZÔ¦MìîW0 FTÙ¶ÿ¢0%ÃOßšPÂú†ªçû,ŒA]Qhé_Øx³!–G¢uÞ¦187³C‚Õgše‰óý|Ú½ÂLãX- ÙÅz5²¨Wþš‰£@¹P‹AëŠÉuÜ­ßÛ(B;‘r>˜Ïwã00)4â£CÂÌÙrwwƒþ O¡Ùʤ0³NbzFP´*û k‰ó¼LßÂÝÉÊËçpI*¥;+¥¬>B¶„õëÑo²aŽWxý.hÆÿKd(¤\œæè féélñÂU¬@úÉ¢NÔfÁ„–ÜÖ7‰{µy)GHÝñÊë¼Nß™c› Ø\¨7ØNÅuy–÷L)”'¦´ß0#sß’V˜4>ýÄ$3‘œ Ú/—åWʧU4•ë0]·6úÄfoüªÖy#ðh˜œšuÍØ~Gö"†èÍ:b]˜ê(<åb >^RPˆù*g@UØhdH~Û<ë~]D¸õTÚkBÚ1ûÅ Ó§G™Oìê+.>ûî‚Þ™ÂÃUÁaûÜä Í·O²³ÔìάEcY>Úûa•9ê~Ń‘Øå!¨:9ÜRPI1ÝVéãÆ0UßÑ­cãÿ­ˆTe, …¶É…kêé!ÁK;ãöÃ~Q]õbƒv·årçfª’ÁsO;w©»ì|¡9’{Ø÷÷* lì7éx+ûÅȧ½­wͽ?’H[޽ЦÀöÆu9ZGƒ‡$6( éÎNgÁNÓü¬ÈÆ&EÈ$:–¼ô§ó±õ5#7n¯ƒÚ³@‹ÊÈ¢ ¸©Ùó@âþK§—úZÕ€]Ó˜)ä§}ä4´Ó_“&Ýšå31ùH²­ °¨Ž`´ì_0’¢«uÙ­Š}Î ¾Œ¾]ÀÕCú/ü>)™ôdŠ4‘Ü«1y% ¨ ^n é[[·W‰‹ëNû}‹ÿ¤ïuô;Ú=a„“ÎZÿSF#ôçRšÎCéa;~ŸÁãKKVGÆŒc˜rlFHõ.££ï絚#!«µ¤\K<™X¢±2Uò—rê,.&Cêù!*nú€Fw d%"kç’0,VÓüªÔذË>£®Ù—ŒkÇ,Šˆò»¯ÂM‚ihYÈèÀ¾ǵc»vjS³M&~/„ å¡$­Á›J~å:×9ʱ©ªºÈ½È­[]„·1HíœÔP‚í¸ÆÂ/Vüý ´°üæÈrð„F‹æÊS”Uý¢â³ÊNDäéø6¡xVÐèm~LnÉé¯äw 8pÁmЃúm¯f¢0I›NJÄ o?`/‹u€'|ý 4ùÍ)þ¨&Ìýèçp*â~.k쉒q.£ºõLÆäïè Y—ùûDx R¼ŸØ\~ÙÑØ6ÎUðÍúKg+r¶xß`£R†™­É•¾ñÝi Óüªë¬ V×%? çuÃÀÿ©Õ·òîOUßþ§XÇÂ\ÁóEŸÂc7½uà?ïÆØZíÒ–¹‰“Üde–ËoÂG#B]œß´•FÀ÷­åŸy,» 6†€5‘e˜¹+ˆáEæBÂâÓÞX;ðÏ©p§HéÃ1”·lVsfÎ2—E¸ üÔ•æéOŸ9/ÒëJD‡Ä_=DÕ\ ´X¾òÔò ‚Zì…‚J¹:‰÷_éÑ¿jä~³iÑŠrÇ*G/eˆ@¥f$_0yOÔIàyò Œðwuu‰ ÿ¥ïÿäm´ÁåÏä“a5´ð"[cä¾®zì;Ÿèˆy¡#GMZ7Ø/üÞÓü°Ó ß4*¿ï®’—«.épÃÓaÃjPìÐõÏã– y^¸ún‰Ê[d†‘WdÖe—dÙr/í“á}¥Uð=(»ˆÊ1÷$*ˆ´Y'ãÞK=­éؘy9¿ÑNXò]r Ç(*»èL¤ØË\1S4Û<1»ùÛ’ Í> Œ˜Ç‘´l)Lþ7’'åÌ“~ÓÎÒ;2"ÚŠ‘ËôÖw}@mÕ0¼¢ôQÃFÒSêÌÝ`r¯Òoè@*œõå¾ ­ûŸ³Ãç[J„XG•&á–,Xí!üsäýÅ{¼¦k‡øMºjâÃkÒ>ØDô#£b·õb’rÌÔü« à–d5}ÄÝM [ö½‡Y;w›=@'Éhßœ²z"ì= £EŽ{5g:kå+ÃzCG7l%Š í”˜ûÌDn1z ð9æ(é¡?RljJ³ÁUlÄ}hÓ½`-=Êž¾QX7–hÞ*Vžºí›?¼˜ÔûU³ã©rͦÌ>X]mâ®&›©é/>>ÎŒèE7Ìê(·>AÎÿŽ|M É‘/­q=¾E£_¸é ·Š"Þ}áŠj'âñÔ7Ææ¬¿8MòÃÒ<ì§Ì /‹rИö¯>oÄÒÆ~ø¿Š:&vˆh7™õèÓÎòʹÀ lð2-*2—öÓü¬ö072]{ºÒáïN &Œ)0³2ïÌ›$ƒï1ÂŽ°[ÁDam±XÝÔÒÖçšßÇSÜÔJœ»ÁVíñN~2~HŽRfUüH§%²²;õ›~Ý**š×#Kn].ýÿqÕè¯Í8Æ' hgCýæð°ßêÂ#Œ´ùÖ VÖEÞ¶Ì96 ?òµ|T\ƒð`¡£D Uv^’ìÑ4z{ŠcVv˜~2•C¾+ñׇ‰"b7)¼`á¥Ã·ŠJ­€*4uyªµK"ºû @W*:Èàù|"„K7e|ýi.$ÛŽ$øq‰Ý·éæhkUáÓ¦^yò¨Óü¬<àº÷YèÍ»&ÖfùòzÁ„w ÙPa±ªJ¹ŒÛÚ WˆÙ}Ïý•äÔ²&OÇÊÌ€lؤ§ÝrLR½ôaúÔ!mËâ !¶·¨L2Ì¿¨)ç¹Ü®¤èy ‚{®CÙt_–@ÁW„ǃië[æ>­ðEQu¥Üq§â‡ÅõÚ ø§E<à´adîëoìµVùÓng;Í+rcµ¼L?ff•¢,‘hý¡€óÁ_}¿+æ€RÄb‰;Ž{þ°27ÜܠѨg[o‘Éjœ–ˆ¨dÞ «}ÆàjЧJè}2‚ø³÷ÊFyä<`ø#ù 0@|zIø2-kE<ÌKGÓü´èÂÞH ²¢ÏÚî´(\g¿¬/šïÆœ›ÁßÓšD±.¦h¹ ¾¬9.d eŽEU†ˆ¥#&cF‘)4Çå]„1qÂ?uÕ­LõÝX©h .‹w 3(¢8‘ª*Ã@BÍZÉ¡–?¶Äæ"Åþ,Oø‘°é(€îÄàKñ¼ `gºçq/ZO}LzŠfœ3󖾋äðóü¨Xî.{•)•>Np‰~¹Jý©,áo³š¼´D]VðW÷̰ÇÞ¿GIÔcȪ?ºß•”tÕˆ‹aê”÷íB§hoJ:?”J„~€ÞŠWk]Ÿ=PZ˜ù[ƒÅ©]2fºÞFˆ‰…æM䪙ÜÕu)i cʼn¬Gߎ½É@lïtDÚ´Ï»R|ڒþZù´Þ‚q(ŽXƯ>N…¬³)–Ÿ„kÕݹ·ƒºÞH5W‹-0½€BnîÊ.¾p« qå¶%úóöà‹6—$®Ês:äz0RDÖ‡beî¯1™ºHì—:\rfyÚ·ß @´óÿ:Òü¬†œäþÉ×*hØöfŒ83½´k<ˆÇdô¼Aê¹=îk ‡Æ1a—¼äÓ”ZiK’³ W!ÑN“ÁñAênôóóS59íJÆmÛè›ÀѨYš2ÇÀºX§Ô?VÙ£éÓÔ’º}) ¥–J›;dP,Ê£¨cS%(V¯ø›¢MBÒê‚$…"j"Îõá{ðw£Êˆø``¯¥±{Xcf8_ì»;ËcØY`ò"ʹü×ßW—९ý9Ãmóîg¼>ZÂãÜU‡‘x½jÄiAòòÿ!3g`"¬çmKIç‚@þúÿ¼ Îr3[Ñm̬Ép˜¢WÊË÷ýäÚÉ‚šÓü¬zîKž¯üpözÈŠ7ŽõΦü8ÇE¤7ø:k´mƒ^T wØ1¿´Š6è ÞaHÏŒf½–BZnBs4üxá|`þ.)¯Z]=}¥¦Æ°ÌmÃurC̤ð1påBï¼OwÂj¢,€h´1‡¼jë¸`«¸ xç¿ÜLáÁ‘ØEÆMûÉŸBëÛÇØ½¥TÿUqT³Ó ñ#Œg'9WÇLæg¬Y1.gCnø÷iü• ˜FH¢ú~JϸØs/ë`-*0S¿w’È|%nÖ˜0Øo,túBBé\°®þÍîd¶¸1”ÐÉøê¾Xˆæì°.W€o!±˜=¥0zuT¦Ü6ì†0Y;ŒU±tÓü­D«ÎB4ÝbMÕÚgå|Ãø-ÈΙ$æ¦l&̉óŸ(¿ü*2Û …hj ø¤µdÎAŸôŸ%Í¢KÝ냢§„”÷2HE×Ç¡¨ ?™ßÉA•©|O1Bó:‡ÛqøbŠuÒSÜGø4câÓüªºŠÔ&[ n~Áyù4qã5÷–i‹€JÆdGÇ/]Ãøðöm„%üGjfÛ…¥¤@¶–[s}tx=J—:Ÿøüf¾ «ú  ëÏQ°Æ×[ ¦†ÿì öDã7|ùM'ôXß«a¯¢`€ã/ ”ÿuo'J¸œÃëÖ.§O4ç8‹w‚f hܪ½EùTY)ËxTH¶ÑÞûúã@ñì4§í;+¶c‹+ß®ûžYãþŠË“€T2Ám‚°Å™B© j¤ÐTD€7ü?~MT·Mê·ÇªRûa¬ ¸Ùmd—<7ÆìçÑî_£‹FÞ©‡ìÓü¬8ò2@Œß<5$èFì¼ô|÷º¯ Íÿ ¨6Ô**?ü%ë=æ)¾õ›Ôô_,Ü;—cn%ª»-¦|¡<ªó¸"¹uÙYò­$óº,zè˜çrPÇétè„\­ÿhÔ½æø™´%e¦`@:$¢pþ†Ÿ°5¡œPŠ¿y ½§s‡ÁÝl8È©T@¢HL·-Uƒ¬"kãÏ´€ÑPÍG1gƒÀÁМ):õjœÍÞV²£j¾¨cê.KϨŒ_kßjdÿ®ª"9&e#×›‘ò t.ÏÇzÐàýã'ÔY›Ó?°«QXI„uh>SûïÀVàƒµ½ž)æoðÇ[KI¾£ÛYuÀÒüçôˆx5 oƒ³]²l‚º¼oÊCÞlÕ2«‹m'ͶgåS²½ä:2QD ï-aP´u Éâ” t’[™9 ¹¬ÂFóå á½£ø°ù!eÌŒ˜kP£®ÃFûPÊ&!U½®óf œSÒ$ûMúù­æEæ«»{ã,þ”Ë G e îÿùA—UŒ¸/XLîF3^}9~5CÖ\Þ%q˜Ö÷¢O* ê ¹W°[o=]udŠsŲXûPžÑÁóô-Û ùc•’c•È"IPüÜü‚¦Ã,í¢¥Q]3åUv[/JÓRm(ÌÖ[0“Ò×÷×¶Ôk¯K>Nµ¢E½èIší3Ù†ŠÝZQ­üw7JЀ!Fqìä`¥b˜bôÕÖ_ÈAó$%ãNŽòÊòcz"Ln~ºˆÛ¬Z%¤×˜›ñvÕ)ðp[3W/•]¶û·Cb;yï'lJòši;A.#ý|bV-¨BëÄ:{EÔ#RͦÀ/JÄy ©‡Ðµ&Èä0ÚÐë)þÌ÷8# ‚ Ó­{õœjvp ÑÛ¾ø_¹ŸkÄnlp_Ñe¶‹o‰±ÓFNÑßP4Ë¡¥¤®IÀY2ŽªLaªÆRˆŠë™WHˆ±©Þ—gz¿â슕2–³7ºgGB76ïßfû“o¯®¬{£íÒŠÔy\—M!$äsuоÎ]Š ç<Þ3‹(¿ùž“KÅI:(¦¼?«(§rSÎ&?[5ú˜’Ø4SK*‰ÇQ©!kÉÂÌ‹åSÏÁ;ÐŒ@]óõéõ~bAõ±W–{¬žnj™ýA›bÿ£8ºI& Gþq,ˆ¯ ÛÀ@%ËÊ×ä}“ZÓ:Æ!¿?[+¯V"7[ï \ŒÒV÷ÿ€ Êí#ý¯÷¡=ޤµZ4])+5dÌxuÓ¼îÓ1*þ3®¼T÷LìëDÔ¯Y˜ÛÆ´B%”½ÝL«˜J9‘¾üÓ … ±$d¡›>&Ç)ÞÄ­Ô¨ž³jÑæêõ5w½‘«†dXר¶¼™ŒÕ¦ººžoE S¯ ùêìþ?T Ç×rxí™Å¡†-ˆƒ: ;oûŸAlO`\Þ"™3œ»eG\U)Iü¡f(Ÿ(pHuÕ“)½|&X`íý™ã yV•Y #&öŠ77jA‚üw±T?šé‡‰5vn ·–A]29 ðЧßöCc­Î6G\>„Â%qh?ŸjÚ…ú1¨Ú¿ /e/uºË4‚Š 組Ë¢³h«UzÕø—cjØ­”ؽ@âÞm°ŠXõ¹rÐmië.…¬Þ:Írü ¥†Š5ЩAš¹…´·">}ÔhÁË‘p¹˜Æ«ä}ùD&-ˆÝ zdµl‡td!çWhiÜ9—¹TEÈ÷ãFj‘¸ù¸Ê +N£"ÄB±Ó‡¹wrà! ›ïrCú˜ItÃð?ç¶+ðgkFÉ/h Úu3™ Oï¶ö ¦-‡Èê¸Ú«K(£ß Ñ'Z%R«aYXˆÞþ•rgÝÂIgã›J©NÊ›j‰]ìuÚGoÖÉb¹j—øÖ³jLe¡QJŽk Ä&¡ 6^ùÌßšZìxÆ!£$-F’3~rhZ=4,i®ùO´ù¥ñ¹Í{ò7| êTuE ¤Û-ìø½"•~‘ü¬GÝÚÞÅ0Ôåøq¿‘ƒ„¥Rå–ª´¨dX_.ªÍÆ ,›9— 0çK°'jë.¸F—he ¤Ì«fŠ6{úÒƒ e¾¥žq—÷Ûg‚Ïsé¯ïЀèvdÆ^äj¡Yø[ÖCã¿®Y4ß,ô%G$öÉÖÎ}Q`5¯°ƒz˜”á¸ñ‰Ô}pæõTããÞ»‰Èp‡‰r (º=ý¦«Drº•îüËËÑ‘N—0S¾ÌäodÙöIJþ;áܑLJC ûÂ8$3:)-Ž~V`và†Lr߀% ‡ËúzJ­Pߨû-2…ÿQ´˜RäZ*‡¶N—–¶9Ï MB³»æ¦ù=UŠ•×å„u$‚Sèë4ÿ¥³ûVçd±*]6½7û½æëXu‘âˆR1ô Ï#jÍ4»Í{au7 e‚ {“¦¡ˆÞ¬¯£¸;ü¢ÁóËÈIø¸¶ú¶¤ƒÅ¨–@þCü°/hvðµ„_À}í0 ¡* øÓrj"=Z± ôg:Y-;gPcýw9^|u¨ìqwÒ!¿ÅU:@†‚͵(Ï´A~hD·Ò­Ñ™Ü8¡ ‰K4±™æ§=ù9=:e™p‚·°ð¬ºÕkîËouÿg¹¯ènjqtÁd‰¶½íšZD‘Y›íœ¿[’¨»WÉbZ³,$_8QÞÜ ùæ0^3дü¼I6"#¿HDç–!žk>"¬NŒ‘-òiš¡üÁqCA(s.ˆXZ8lQ „tDÝì">ÿ{Ù"³P" ®pƒ6Ù$w½©p*=¼Øš“}=ŸQ-JwÖ.*ѱ¸÷…ß’2(仇 t¿üªÐ) †Ç´ø–žVr‹C˜¯á$ü’™‡…mW*ãHpžVæ9Ê{kswΣèt`K^ þ«{Ñݪ£ ›§ÕR²q‚{z@Êœ›í`³gîõþÉyoPSÊ*B#¹m>Mâ“Å´Fí© :é›ý€zcÚd´]l`ñ•¡Æ=²±7·ñK†~֡ŶKkÜí'Š_VŽDu]Jè(µ’ãiÌaw”³O¨†0²ÖG <¿NXg¾†yA0LîU~ýi{qR¡_yMxŽ¥íÇ¥#™-³kH}é¯[îªvak\{ð"’“……ަ]ûÛ–Ù¦Kâxýùõ˜Y²(“ž¶Ó(ÙéC~'ü¯êC­Þ!$®,y–ûà:”nÃÉ!ssÙY5gr©+º¤€Ï•í±QÕVœ’‡¼±Õ½ä§d@Bê©ôm8s¡ÚY%·¥¼˜‘9¶ ñ¸Ôn`3:ã·õL@Îϳ“e…=³úåØÖëĽzuòÓä'v«é¾G”ú¥›Ï§á6ÆÄò>âóˆúA¤ÓS@…³ï*†¨Ö1“ÃwÝB\Ê%ˆÖ[yš•Éj£ùÎüiªÎ Ó$Ð<ÚCHƒ3K>Q®küˆ áÓëvæ¶æ5w‰ÖÇo/ãÖ*å2¡v}"ÍŠ+q+Àƒ0„\ÜP8Œ¤Nå.3‚b™ðàýMU{rà,!ã)+³âü´íÏm^”«ÔrãÓz›4§ë¦µM°V=@¤é6Â@BžÓÎx¯ØO¬‘/“~ƒ X,SÙ€_ñd&Ôhûª‘ÍÃ<ÒZf$ ‘üO HñbˆƱ°çÿ‡í•!Z`UÆ]üòëš~?H˜•õtvìµÞ©ÉÚ ‘À­9C‡œuÚùÆ çvnÔÙÈþ®þ_ü¶ë¦òúÊÌ1gÚ.y®p{gó'»DãMQ`P“‰¡>MR°}4Í5‹£.yÊ’CQ 1àáž~6*Uzš°ãYBÏšõ!nùzJà†ºÔ²ˆ´Þd™x*aŠxr/¿>Ük3Öĺé%‡£–÷b•K]—¤Ž]‰8‚0k¢¾{kMV^¾0iÀ´ˆW/Ï´ž á a+‡/÷ÁÚ¦5ºÅ™`ë)À-¤Ý®™Ýé=Œ•á={2˜¦Þ^û|/wUÆÞü(Vr);1}Xõ S[x»øMæè¤Tá V¡Ë¹:õ³k¹ùh&ÅëŠþÄ8pÓëXr”>"ºx ’Ó†Àµ½96/ÿ–˶Œã-qœÍ)U[Æj ý¬°ó7HØçç`Ó´‘ªžEŒ Hg9­’õÍý5çü°T$>ƌՓêÚÔ.ÆŒx%)h~¦'êÃÂ÷Õ§¢-PA ÊBâ&…ÑªÞøoj,‹6 ƒyk´`k ì"Ëò<:w‰_(w?'G‚—ùg­Å4Õøg?ˆá¦hœ*ÈT.úÐBCg¿@ŒJv~øÙ;Š Æº:u5;7êJÈàûÿVYã§¡ìx²˜xœu®N" Œ©j²Gþ‹²*îÃñk¯…ýç…l°^Œm8÷QÃ7.å‰×Ì´Le Uíˆ2²\t߃FÕò-Mî…À'ð=¼½V«Y¾/»ƒæ‰{)ü-‰™åqýåµ£X+š½=k}â‡l ¤Êm âá-)-×!™Á3ë“—* Òü«Î ÌK{]鬿 ÁEÑùV·¡ëºQl‡'i·ÛIÝž\]ûq1 ©|xÒ©5°^ú÷+Ý5xæl¹ýú1Kžø,5ãHgŸ£½¹Tpþ6Ó@sÌÜV©ÿ Ð$zcü¬4”“Âúu夣»ÈëÙó¥Zš6ކgkÆ*²4žsà±IV-ÛÞ£åžå-¯L“Þû»f Ï•3^-Å¿:lz{ʇĥQ"¨\I¨«æïÕI2¿ÆGNTükcÀâ©Q·Uß[­#ú‡ãmÖàS„MÍcûT§TEbQP9Gˆô2ªûú¡ ‘øÒ•Øì»l=¼å’óÆ©eÔÉOp˜×°+½»ip¡ñù‚ö/aCn÷ð6WD"õ‹u÷çºÝà˜@ÄJâZ¼dÆáô¿ãþ.˶Ãe7âdÒ?ÛâÂIñÌj1E,[geÏÒ®¡.‡¯'#‹È„´&Ý-}ÃÞËæu:J>Õü¬pÉuXRΆQ œÓ˜®òݹÛQÙyGeVô¯^~ÕjŒÊ‰¼r Š2<‚SP”Óêe·J¹Ê¦S9Eò 3nŽKæÌíÑãÀ‹#Žz¥Æe‹Ð$ˆ˜·Ð·…)¾(ŠãJÓ[Êinn·Hð!^ûh]EŠwª•€£Ûʼn›‰Ž‘°qœÇ¼¾z$Œ­¹ÜK´I6\£¢ Iw'E/îY3àvëŒ ƒbÚ³<^‹*¸iS/h0Nfµ7’ó‡Ò•\ÀK‰*Ýî9ŽÑ>D¼C¡«]ö)¹*ŽNÜs# ‡¾·[½öÛZŒ§÷ù,$=¬žš „;yÅì-•j«OggS€ØýÄ n©HV)Yÿ ÿ ÿÿ ÿÿÿÿ þÿÜÿ ùýþÿÿÿÝÿÿÿýúñÿÛòúÿÿ ÿÿ ÿ ÿÿöýÿÿ ÿÜÿÿÿÿÿÿ ÿÛÿÿ ÿ ÿ ÿ ü¬«¬ÑñX!†+Þ©¿dN+à”&nÄC9pfüRü b%js¦ð3£Œµ±Oä ¸[a˜í±…ur§Éõ>и^B¦èQÿ‡°Î`È;}óBè0]yÅN–M7"ÐoØ×/ Bôß”¨ÎÀîÜ&ý«7ãºÐD;À~Ì`'yY„<8yJ~Ï:,2RÑÁyvœCs˰­×XŸ¼ÙÚZ’ùí¬ä© œ xõžár«×z+·L¯|=b¡¸p nöõ“M†!ÓPÝëR¾ È«ldõ¢²'“êæZ'‹V=Læ`=fνŒîRëi©ÒH¢œ2³öYº²´µü¬¬öè¶Ö¬éeõjÿNyÝoºÙëøÄvŠÙÞ0œubÅuÐA´G1CÔUøFñg¤8®ËÚ\ «2‹Ô%Œ ¹3A|ä¶þ00²ûºìû!hÕ½^*ÞÊZúíôBqvP?Oký˸S×–Ìš‰bC˜ëYYÜá¶ æ]`ÅûÇ1¾¹¤,Ýãi”ê"áb‰ëºc×@iúüµ¹gü- ”¤}äIGHž¯6æ‘¶’ ¯¼”(VzbÛ’¶-q(¹É°wS_•צޤ…n;«¼–ð<4 ‹‹ÿ©ùèð޲GXk°A<2ÌT‡‚µõÜ_K©¬u):‘·kƒK{KY˜kü¬<×=)ôQKE5k?K~5´eʤí5-7~¼$ ™=bÐ2×]""ê¡¿ìó›sT(ÒÂ[ßSÛ®o¤¤÷üånÔ£€üjðyC>ñ2]´®rHÇþm1Qô¸¥÷,‘”'èÀ¿‹®øRÞ9ƒQ„{v› C_ó²ÓNšÞ4 [ÈVÉ œ—iK™k_¤½[%¶Õb½3%Hµ*íç=¡+;fÅ#dìÖØÚk­»{÷~V˜ñhw^IDPh½<ÈP2ÞF_]ª:gÖÂ7äy†‹:g}¸~yW0áÉþµT3ßø¾YÈ GÕV&AÓwJP쎤¢–zO[ÍtDÓ1Se£¡øÛµMPó 9ü¬=Jú©^ ‡ýŒŠsgüåMdkF!´¸[ÿþŽ XÑåLð=ezA>êßãù+”ZÂãÇêžþ3AnU)Áüî¢/ë}.'s©g¥{‡©ƒÅá2£l) ɈúAÿHùBÙÒ,.b© !·¥"˜´#‡g7÷6ŽÙqž-¾å›dKÁí:eJ jì*jA3%Á¯Ç¢Ë~š³›Ú ®½@Góò© ÇOݯfü*)p ;t„BS† &Vo6´kþO°P¨É€‹š‘Ov0nvÁËÔ«ßBÍNxóÃSŽ{é#!ùø»y!¶[ã9F˜úºZÖß@‰Â*"ë"GÛtjî[&%+ü°.Ã*ßþyj7þ´Øh¦«Ù§•®©6%‹Âp.c9"OYk9ËF_…£šh·¸aR,Ø ƒvŸäš:b4#«w“'ÐËöŠÿfP¸þÜ|¦.ªfÉû)¯IêÅ®5¼Œ-[sà@íYò§ŸMäuÀ°NÈQ×3¬Ô?f áe4zc«¥$g¬°Óò!¦ž[¶É#ê¯W6ÖŽ$ÀC(NQGàh›%QmÊ‘ï2¼C÷=Ø…x‹ÖµjÁ:;OS9ki Ç"»8×CüÆ€-ëëÁì¹cÍ3‚ÈÝzö–û²%Qoùç!¯ˆ’8V»iý@LÃy±ì)…™önŒK¸2ßLæp)©®¸Ý±ü¬H`á°èà½düÍ=°È?#[k,Äo m#LUB®mŸs®££WÎä‹.füiñlM¤ ßøO«´í´ è¾u8ePðv=([ Prë·ù[gÚ´™X4^S\.»Hu}Á¨©†´±×D¸x’Óü ÒØsæ1’¥·71Ti#7'%0 ½F·II8;joÀú”‚  ¥‚½\¢u² Lª 2'Ï÷…{ú´p±SïF&?Âü²M÷á[Í“%'–þ)Ÿ¥YýçÚíXö÷Ç"…6Ùý¢lÌ2ÏqÞÏK/ûŽýB"¹Dbµu–ÉE7¥ƒ#UQz2x ®Ð-"á3Áe²´C•PY¨“ü¬FCîU+íEs ÷îô\=Ål@%”UüËH‘ 4¾ŸÊâS4$æX¤ÈG#eî凶Œc£~Óµè2êù€óæöÎg„yÐUQ%XisC•¾bdB€}W£^ÝÔÿùvp¦Ž˜©kíÌÛ7eWhÖ¹'í×ÃÔd’œ®„þ弎iþâ”j£Õñ ‚6ÚI·ÔáÓQâ–’ð@ÈóÚ,9ŽÇ€bSÞ_u óåB„Ð|8ELÊFê¾ëæœýˆÔ½Ä儊?X‚çÆÏ»êÞÔ܈ڟ§FFKêK³‡ÌÅ\¹zËvÇ»d í„Í4OD”v“ŒXì 5Úº”ü¯ê™‘XTJ\9‘·¦Í”ŶÚw}bv˜zwìvAüÿõE)…9ݾ ÅáÕ:oC,Ø‹›;‰÷¬™3Zó ~2ƒH¶‡=("¶Áö~Q}¶u%_ìÅ|ÄÍ«HŽ.Á+WQ¹ªæcdª$x°§}bê\ÜxK}‚ÀÎe}퉾–»rLy,•`¸Ÿš:¸Hñx˜èóŽ†øðªq¨Ë¬V–+òjgêêõøm'Ý€˜l}''·úQzŽoN¾Z¥\&àß]Q/.Ðz‹’Nï$±Üç–èVgõØo©“Ä"jåêñìØ˜&jpºØBHoµõB•5O÷8r2Lò)L (ÊÖê÷#Ú“ü¬4¸v!nU-Œu·^x Éãä!~û»/A\!F €Û2(´)›ø×ƒC€÷-h¤vÒŠÝ<†c!÷çdö$°èônb ÍîY¿ƒ¡ dX ÑXUúm'”†iCŽ¡ 䊨Æ}õÂÚé8„KJ‘uÜäçæô™^d¾ÛÚ{ã60'rt„ŸäŽy™ÉE‰®ø©#[ßIP¼—ÐgâL¨$öÉóÿQ`œ9;`­|ª ÖäØñ*¾¨:S­öâ3~Ö¾ÚBþœÃ§TÊÀÝ#b”S娠¡¸¾÷$‘ŸÜ2Qß—x oë8H…F5õŸŒ@ÃÆàò>’ü´éÑ5nubÚtM­Ô¦EUM“â]4À™»Â·PU‘¹í>aÑýµ8‘Vû„Z£c[,.e‹ÙåZ‰n]»–åèĆ´¥(páøìÂód½ÜÚûoô—r“Õ¨~ÜÃñ, !Å5³©RÞõ¨RT^$ÍAcX•“R”€ÛR¬4´þy' 2b×rSØ,ˆpÛÅÞB–°––0¦Ð>Wè4gÍZ›CÅÄHÀäNö­z“‡²Œ„ÝwÅÀ&lÊãC=;ˆŽ?s|3úÊBnA°"°Ä\š¿Ý&ú¶‹†ü Ê^ôDìø:$âx¥ÙÔeaZï#Ǩõk9(¯;=‰±ÔÎNñ´k‚1f:úǼ§SËÉgn‡Ò×êËÌ6GŽô&8uÞ„‡÷ I¼<Ô\~í¾ ¥{ÿ€«l¿{B {<˜ÿæÑƒëz:k P’©lÝë2¯ì5[Íí/éhKwÀmW‹g'¨eÆu-»D߸#OŸ‘.±·.AÛ ‡ç­Gc>ј¸ó++sºebrâ(ôyU£mŸ^p[ ÓÅhý)Åà&€ÞÆž¬„›þ÷צÁ8!UüP%Þ÷õ2Éî³èi Oð”ü±“2U]1þ‘•žýf³§ÓmÛ"åЂèÀeTé™o“ aÈü+ÒfûåþcÁ‰³×´É‰4‘”ÍÙvLû±JŒQ&$ñѰ4¯³ì}:"5žW0J0È…éºMÝÀ´Ó³ð²¦Ò­à¼se{^:8rÚéMcJâ¿¿æÝžn9f¤^ÂÏK°}ÎôͶÎ.€Îe< [¥ÞÌ3ZmQRÕÜ›©v $;µdôýœËn—–™,ßûÇ"½(†5A˘ƒ”aB•|ê™“ÅæÙh\qfùÎwZǸìâξ|Û  iZ\q_‹J\ä£Â–•ºŽ)ÆçiÔ'¢t$6’ü¬4”—åóÜ_·v[¿ë[6ýYŧ:£k( &ba‡8;gjß°øA’îî8Û)ÙçŸ{c`¯ŒZØý¯‹¶£50»Å¢“°ƒþKã.eÖaIR Óúâ[žc¾Jxduñt4Dí<°¹™ÂR( ¦n#3pßIÒ9œd/¹ñDLœV¶©¬8"@®« Á?B‡ÎÄ£$°OeBÒ (W-z‹ ùvÞ ®ñ×Äk{“øÃ­ÙÑvðN{uÆÇǽ#x&ÏAXAÞã2 Œ™$:š‚þò—‘Ü +{©Ì¹Á“Ö(YɾýWçihþÇв^z8p„³´ÁÖ®!P92Ñn_|{þ¨*Ñ? ™‹×Y òÙ·Ë~:€3w†çRÌÃ0XÌcþ\7Ýê®Uˆ††9Å“ƒžn €!O橉ªÞ°¼ÌåH›rƒ'‚0zæfÒü¯ºö³lhâ°†[Ê2Ô»þ@1¯?>@¦ÛûÙã”Tè ”Z]ý_ú I  ˜„ˆv!5¾þ óÈ!}G8o‘¬éKv{tè¼â””.Èf‘j|wöóú+߬aK¨Î:¸j öŒ¯×æÇöÛáÔ¹Þ4È REvuà« ÌGŸogÌ qðìA&]8õþ• !â‹ý¨¸nk“7x#hù2„†íƒ ÒGÈZ»y(Șb£ è`ØÝÚ”ËÐá9MÐ3 2ߺ㵒áUûLc„Ce„ßæ’ÖàÅLpŠšÉËš·ErHµfú2ä ¼<Ôü­D ¹áR¥ßæÙÅÅÃ2÷é±ÎXд%3jõâ†×§Åï•_ \X­êps''NUV„ìB)”yã`5ç½ß–|1 LEld‚i öaýd {Ð+O•)½XÕénlÔ=Ö¼ö-\ò†½3#Õ…ÐáN×ÞÑ0˜OùÑ„U&%‚üTâ×" >›o&™³év¼¨ YüW~} mLCn×|Ø“±¨™ïä-¢á.¹èʽ6œPÆ<«£·Î:ÁµQ!3"È­ùÎK2Ð7ZIoŸ¢¾ÿÙ}†FÁ Úz"ï(G,ó'5,©_îé_1þèBd5¸j¾^g3®Ù~Òü¬<áÉsÂ~0X«fê‰iƹV&I\Áö™Éò Þ¿8ÖÑqÁ¬\ãÅ %ö,‡ã€…éÒÑCB6J:`ZŠe0lÔÙÄ÷.r·uëÐ]ˆ¬EÔÎ JVt:Ö=¥)/İw:nàŽ¦µb±k¸TCRI[(ØÜ"¸W‘Ÿ" ™Ó™üøˆÖ„M}N Tâ1¿InŒ$¤©½‡DYÆiÖ›Ìù ß¾_·ù[y£—ºÃB\þE¬®C/ú§²\¹ò†ÒΘà:‰Óbh"‹¦67N>¸¨«ôQ*[Ž‘FX"ÇcBë§øõccKÀ 0r9'‡Ö&ÐÖôŠf¸”¦ýÝDÔü´èÂÞÞËVÇ.+¾™Æ—‚²P¤(uؿɲR«7(âÊ *°øôÞ0Jýñ)”©0诨¦Ó^ÀFdºaãpxTiœª%qÚ&ô p×OÒu,eÁÓ Jn‡«†T,·Z7çb<ÿªçûh>Oª1Rˆ#íîçu»V¯é ½Ôîo¶þf{ í¿K$O]’vM‹ žÅ°Ó³Kqûós .jé!î¦yN©EËåŽòÍ-Ý<´ªOtŠ<¦÷ÁÍmÂS{›g`Ù¿íbâÞhkbCÍùÚ©'#ä< þ4÷²Ìt¿1©¶ Wèªò‰`~ÊûjåX‘n[¶+8dœÉŠ“ð dëN—yuQÄÛ¯-&(ÿÎ*³ÞŠ™DÄ~íl_NK1bÑ(tÞ§m_óFý!N¶Oç%Äéó#‹'ŒT[i ê ùäñ„…ä+/]×\ªp "Y£ÇÈ9CÚDïb»F×Xy®ÿé÷þž•ä0øƒæØvÙæd¨"¥Ø§‘ÛªG³¡b?*Z½T—ÄJÆ«U hƒ¦\zq˜íœ¼6c;ä6í;I…ÿÖº£A®vø6¤”|(’Ó?T“ü±£Â~sû±>$º„£¦\½ êx†‰$'Év߯!A÷~ÐÝz6£M;Gýû²ÇùøhÒ2½èô@fžŽ1+ˆ•gưG^è2ç‚þ¡·}"ສ°`3•›R[ÈÇu,Û%N”Dë0?Sª¼Z7Ž*šÔ1…4I©ÇLͱ4Ï}« Üæ&„Ô ÜÅŦòMBr1N;ÈO€Ï£ yÄ  {é²l)ÙiÎXÖ¬×?h ^Ûºœ4sh憓UB½£@+¬È~¼÷«‰Ð¯B lÈ›Òl©Ê¢Ü)A°S¾tUµÿ?ÆVê5—ño̰LI½ ‡e^àh¹Ò™êتNœ‘ü¯ºà>¦Ç;f†ý0ûq=HüÜ(Ÿ¶¢Y-gì‰F³ÁÖÀ„á¬3‡_š2T`.RG®Š—tç¢Nu‡Ì¶|ÄE]“U$³§ýŽ÷ÛŠ>o[ {ø÷{]¨ÂV\6´a_PÏI!ÂA#))CòÆ£þrV×"ÔVïæï|¥ÉþÕË-ìW¸qw5y‹[cX³l’µ•p*‹/œi@]E¸ˆ£%²¬ö’ÖË-DI¢Â•dïœ ÏËÖÍbsú/—ŽèÎ{êí¸™A×R®jb_ú©ÊßĪ^÷†ÔþïÈ ö©*2 l×m«š$ûÉQ¼„ùÚ—L€ÓüªùNõÈp.•äbOcv´# °:ÿŒŒZœ´ë2ºdu_å¦géÀœý™DpxŒs„šÖgIF0\÷ç9ô6 ¾¡|jèÔ _äò–-Žæ^¤º¢ zÞÔœõiüÈÃB½¶ŠÄãu\M›Ü6Ñ"ÝO1Ô?õØbŠ3EØ•0og}¡äö³§VÌNtœ¾R—C.çsÁSÜHv7*-¨[d”ÛÉt˜ü¯éÔ^õtEŽŽ¶>ȶKœ,›•ô¶A¿[R}Û ½@J&øÆ » •ªy3;î‡Hž8¾„Ï¢,ï*‹!.QƒRiŸž™W÷ë Åó¢›K"ÝÚÀ²ŸÁË_ žà&ÜåÏjµËÏ[Õ‡Ã_8¬lF ôL¤ò¹]»=/é§±ÂG‡RÛé—!3<¾/™yï9Zíaºc›”&8”••¾ˆd×NdÈDŒb=¥ý^Hë¦&*܆Ö-¡oùA+ô¦ßë?Û÷€r)ü¸-OX{1ÀÈ,Äöaãe5ÙÖ&qoYÇx¬˜Û´oZ´Œvù}¼!kCŠÐìÈ6Pô$»Ë”G|ؽX¬iQ~võÅí®À}š}\ç@dÒ¹ôö1Ôq"®yäµÚ›5˜+q—…ÎG8Üígq6%àaßÊÛgÓZC+ù‰Ä#³w«\¸±¥ždÔìuC»G?.²Ð2ûaÞÍÏþ°fЪ.DœŠÊÿ® ­ D3$ž¸+æ\› d¯¸[ä<BɺÙó=XXR3@¤4Ùá7©k]I´EbG„_˜?åmhi ¥|Uþü› ÛXûº’&ø™Qq Yß‘¼GBü ‰£æõõÜB¿P11lôö¨žŸ=("„þ×úRzêLøè'H—G‘¥vÒÈ͆“ª7p•÷ÙP0“‡â±ŠYœš³"[sÞÌ$©¾­«º,ƒ9½ä5Åïk<{ÁÐç×ZÍ!HŒdé&@ÿ ô²¦ á5/qt°(cy¹¡žg¿eàMâJ­Ê'(ÊøÖ€<öÓ/wl,³¾Ú«—/™ºŸ(í99HTÃw"-¦tݶBÌieÇ÷§o¶÷:Jì“ü°,)…Ȥ`ô†ÔbøRGüg¿½IAJ‘! îrȤÐL‰¹ôN˜Ë_LÔé?«ç³Ãj¡=Ãß;'™æ¨Æ9¿›ÎFdº>Cá{9ø )`«éuÄçÿŒŽ`Ë”[³WD5#q' .w\ð|º¢öûv¨¬ŸSD’Ôh9T· Ãu|ä$r!!÷¾±î•âÿ1ùq²*…ui ÌA}J16Ì^‘ P&õç:ý!&×4ÑhO¿Ò`ÿêMvœÚöb“¬ uÎÔ„¢sŒ†Ä´‚)%ul ’>6Øf’¥ÞËôC¹‚’ü¬G̈F½Ycë>l‹Ÿ«h»Ãn³XG%8u tÚÕ}}@ÌÂý°CCïPݯØñJÅ–œ É÷•÷fÕ¿?*BªÎ^m€¤ÈÖ#k§ò k‘ž`)¾ø†f¹Oy+Ù‰ð?ûâYß’žPå3ùMZ£9>‹ÎSþ9ZIÇö |StÙ_ 0Ô{"ÍÁ\tµÁÈ-Å‹â0 ƒ‘ŒÑ,M®úã Mg²S¿ +Mg1Þ}s,p(Y޳œVaýßCNù„m@Û ·þéf1BI|Cr¯0s·e +ëœÆkþo·~NÑ4Vú&Æ^+ÓK,“ü±”çv¶½, º†ŒÂ^UŒTÚþäŒµŽøpIh.ª×mN¬1,¨¹×ætc˜¹(“ÝüÕD“´ªþÐÐ`ÂÊs€;KX'[1>P«àý¤möcwráûɽ·BøóÓã OxÿŽƵ//â0˜Cðõ˜¿¢äræ7J·¥1IÛëiJeDìHNue5â—Å e;våCV0ïŽ9È^Úô6Ö„Äï.^^ W Z>wÊnN›oÛØOiS{V¿yV'S®eŽ:£ñ¿Éåô¦ŽÜ­cð-L¦(´âZ½[÷wÛyÇ­‘á]ž'Âjs់m ÛÔ‹m÷nÝ1Ô*Ñãýš>’ü­= 6”ßãSÉŸ ?Ó±<ß‹ ªK^ò›?o+ÉOC"B6ÿýî\¸™iw>è’ü¯ã8^AÚ_b; pÛˆÍ#*“F#ëTV£[tâŠÂÍžû<5Ž¿õ³gVgm¬èи8÷®8@ µ¹ÏñJµå%æcú%íòùͲ‡"kSªPפ‹r/Õó§rÂÈéÆ¿¹V®—k‡ØŸÈgUØ'#qÅ“tfÆ`8nwKé\”Û`Jd¤dKcÝ—Ϭٿ!9]Ö_)A/;Ñ*<%C¾1´}"Ùº¥î ö —}r5÷(Á¹76¡nÑ,Í‹Ÿî‡-‚ðBXþe/,ÅëýÇvÄñthìw\¼húÑÿ¶$‚òðÞ®¨‚Òt/&Ö›PŠt^Ö„9Í·oÜeìž’ü­= pœû±‡Íéf,›x…D-±û2ØÜF9îÚ!­\¨ ´Ÿ%Ï /Ãïå”›‚ÔÈê ‘x{%“5G i$çÊó àéæGœóA9HUz§Ìù¶â½H¨Êõ¼YÊÉQ¸ÝWr¹M57èh;UrÏðI2ITƒ @¾º+Õô`Áãe;º_œ¡ ©(Ÿt¿Õ¥ ü‹)îŠt;2k›P—Z@óŒ€î4÷¾ —|ÑzM2TÓÖUN’DÁX] \+KÎѳ4…¥ÒDúƒ$´¹·ÉMYŽÝ](v©›Qkžì뎙; i‘¬·Ç¨v‡wåb‘X‘ü¬=HbÆÂ0ÂBšL%ìnÈ¢ÿðK{påHc4™e_.‹x÷ íÂG^»wAq¶T·ò÷•Âû~Œ‹–gÛÌt¨]bQãiÔ±ãÖ¡$ÎŒa•%\a>·’b6üb²ÅÜ#^¼üfFjSjîZ‡ÀêÌ4-ÜìU@ÌOâ¿Uõ™-ß$·ÿÊxádDM"¡ØÑ»²#}7DpÝ ôÒdÓM(/‰üi „€Ž—”ãâç ÂN|¡ö× P˜Vç,ÍN£?€þeç“ÙQ$¾LÍjè±nËjÏba?1 ßKæµ œ€€]µ¾"|a“A\FÍ’^Ùèůg…˜@$’ü¬GÕ,êÔ9>ë]Ö¦ mø4,µGÖÝV­,a;WDRh”A·hŠFÊ—gÍÒ×ðw|ä¥Ö+&«Ó-ÑRüùãËñpìŠkVàñ뼨’þÇYórËKëðw U%p¢lhÞGqéå™É->X냗àý< w®ý|¢ §RyY­r$à ¶mÃ^¸j{6ÀÔù´eZþOgkb²«ÓøÅ' Ñ„Fwn¸Dy#áš3õìC©°’>¢"×Â9ÒbƒŸ¨ã QÜ—‰p#¢Ý5„¢ÇSùlè’üªý :ÜÇÛwˆNé–¢\ÝyüeԪ痰Ðv,mœ§H¤zžÃâ'·F„²­ªÅ‰D‡ïÚr¥:h~IoÇîz ˆc‰/Nêb•V`*aq½ YÍËéwkQ𖺌fkQ'ñÀÒ›ù¦•žØ 2OÍüñäŸÉÇ{ õ6eܼTU~¿H&‘Vwå"‘Ç­hA=÷МÐG:í ¾Z“óÃÍ…Èɸ[E&à€n|™»ßôG¤ ’¶G8ÈrNŒfî*0ѨÛoíϬ²?[(jBÀôX`éJ±0«Î_{îöa¶'^JÇB®„“‹ÖcLGùUÀâ `’ü±s_!•¼FîÉNßÅ"†½%¢ ®ZbõQW§£äà „!{˜‰Ö “¾ƒÊû1ãFÒIT¡rvkÃàgƒŠüEãÂ]„Lé²”ûŽ[Ò*Väpá^¨s1äwq=%»ÿµoßUÎ j% ÑenÑ©Š9õÊ|’œ¨J’c›Gëž„ªLȲT€ÄUŽM·µ#Ú§85ùq+2•údì­¢ŽšèÜGÞ‘¬pÑýs€ÍïƒÄ†6ÐãrÇ&?®Î9LY"Ü[ÝÛEvŒœØyWíݺn[=.yÆÁôÅx-0S*Ý'{ùveÄ=bGâæ)ðxÛîD°o´‡jfÏóoûIíºñÙFäùДü«c³‰n+õýP9OÓè©fœ½wtUžœµÂî)^,g°ü Ôehï^ ÂW°¤½k ˜­ºµEÁÆÆ{™¼ŠÓ¯tL>ŵÀG_ôßâ—w©ÍÆuT, 2sLÕDêEZôª±£¥0‡@ñ{¥®ÉIÃ9sìó¥3å"°)<0^{;:°òj‚ƒS¥g¦ê{«ƒ‚/óµ^4#x’rHÖÌÃÚ¿]i{ü¶>Ö|Ï7p„M]>R\´¶ŠÌ,rvA–ov€y‰ÞÅvßîæ9ãFË\EÐÎ VIBµ>´‡Uáºãz¹PïïFñ?,ûÛð ß¶wû6¡Wô’”’ü´éSšiäù˜â¼¬Iw–K3¡Óõ£¸÷¬…û…f‹8_íµöš[,N7þüxZÿŸTËì±· ß•2ÅÕÓEzZ(Çñu¤n“à}ÛtA(Êâôâú´!­<µlìÆá³5,ÿ`:ŸD…†‚•s§ê/ê„‹ß§½Lªð[¼J0` ²Êþðß5—ñÇnûèÖÉzW9j}ÿrbŽñŒ&ã(Äò¶ŠöÖÍn ̵xüÀøV&^Ï!lÎiœyo|92rH*-,¯zH¾ÁàòÔcÚ¹Û=,úZf£ ¢èÚf}þ‹mfå@ÍJºõªF®s1ý|ŒöÝ‘7~ÅœÜ;ÅGtpƒ;ÇãÁþ„ËUÐ÷ϩ⎕d×/I¥.µxßÕ0cëŒEºæ“½¼”ü°TŠû™ªÑi<}„DâPkô·kc"dÚ‰ ‡¹ìC‹å>1ÍíœUqé§“¢¦wèç‚n­ÌƒFD³h¦P7†ŸäíCßxj>÷WÃÜÎs3ÅÇ¡—–2eÅÜa¹>rÔ…ÐÏMÆf]˜!+§„³í0OŠc[3ÈU!Â?+ɪZe¥Ÿ«m9u†¹_ß,xMX7årù.@ìµÔJg£üŠ—¥×’¾CÎ’°®X=N0&'[ÃÄÉì¯5UL<üOIÜŸÝ7¶àœ2L'ª~æ3ï¾µÕ‡Ÿ3ºìƒ3ÙÁÃìˆßþŒªi¾pK¢I:’üâ¢A(w hå½²’#nÆMzhAxnö‘üª°wÄõs·)^^a,žÊ‘Qéh[8[ãƒFó¶öz49U`2GƒÃ¦ãèyh¢'fzÝšç*`áäe¾ÆÆ[†ë¡Äz- ^ôܶ2‹Mô”)¤Nܤß0ÑâMS fÂÛÕTà:H¹¿ÙFOÒúwwú Nãwâc€£4I½õ ðË-îX Ëõ$Z?ôã~öZ‡°'(~òïrzœj4»žÊH¢TºÒGÿKl}ž)¨õÄØÄCܺ…•ç4AC™l µk“7üâçϸmIvùöÈAôøåBé !ûŠ ÷²+eh[ÎÖ“^׿Øøqñº?˜’ü«…E¬~Â]~¦³Óðݘì b9¿7o@ÞOOöªÚ'Ñ Š\\ý>GÕo|+Z]l xµ$s!sw{»åFÉ=•6ë µ2ÖµÜï|ºe•Á Ù›K-j)‰St€„nFÁÍ4"JÐváX2Ö!½2¹Û~ü.ÿ5‰BE÷g3N¿® Ÿ(ÛÕ:YxŸè¢C¯ƒìñ„S‘›iÕ0<ñ(9 è!E&«¢ÖR˜£cV ?¦†ÕKé‚˒ꛦÀ½š^ƒÓÜY6Jz`#_éËØŠÚ{—Ånr…Ë÷'Þª§ê¡Z¥™‘µs;¥á ®Òɸ5sŸqjdø’ü¬FI$küº¿_Õ ëµ¯5N9á›z¿Ð€Ö0  øªfç~¼¤JzT­/ImÅ5ùEûyÝ=Jõ /•ÁH@tø·2‘å žu8¡²zz ç ŠÈ ë âæ:Bç’EéÝ’Þõ1¾ó¯õ±’›AÇg`–§µîXJ[ö¯C"¸/¨—îïf@¦ý0I'ÄcO¸1â!Åï ¾n"i±~hIL…ú[ Id›™…¸Æûºd–Ú1Oîšzñ9MZo¬©»f~‡›Ú³¤–H—?”ÙÊž©Ùaˆú–¿²ò•øÛ¤ Ü—°¢ú‚ÎåäD¶± Ze«{áEný#¬b’üªÍÎX/,°Û* ‚ÙÐDÉ£jý:áç=x=Ó1â÷e¨ ?òÍ ?ê}ö³goæ™+¼q«[¾ÕÛp/ /³Æ)‹‹8çUC44½T„m› “‰/ 7ò•‡r–~Õ©²¾ !x4-ø×âɼ`¢ã}7à›ðƒÓV:ùo}KR­ ‹)´%2#’RŠ¿ %éjªC±Ÿ—Gîj>ˆûÓ÷Ä剃…:§€@ʧè¿]Á^æãXņÚ lgV•¢L9¥¬aXt‚ÅGl1®ìåüé´ºÜrWAãh’B”öMql÷—ºý™_z’¸˜“ü¯ºù).FÑ ³þÇ·›°ú5jà2.Lgð ’ Âm y;xðÙóû¹ñ{ëµ§ÌE`1Kl+ü+&%ʘ{ÈpøûvpÆ«[Òç÷£)/X{Žç×UvÌ›Ò#ÓoŽX‚'ßÀGaÙ‰.bBšUŽo,YD‡¶µ5Ý,W<6ÿ¤_¦¸Ã\’'jl* É2X{xÿaIq-ó10qýÉÌ;Ž4ÚP¾±®9w…–å@žLê-p е’çè!úÝy%ÝÛjW²@½²G*`ºKn´—Ûœ16«ð¾®hª ÷ú'o˜‡Lipvѽ— ?Â%âc^Äœb.’ü´¢Q?ɦžÍV¶ì=•wRŸ™3&òÇ¢T\,¶°D0³óŸÈôrµVŽÒÔä?HŽ˜ŒW²zÁµ5“; z7øÁ¢›ñçÅüJŸ4Ø "b%“™”<‚ßif)»áÕyCR[Nµ­¦¯ˆ¦»D×âž}ʰèè«wŽ$×Gäûé¾#†§3c‹™åN΀>'ÐT±‘$ëiñí=ËpÜÁ+ÛŠŽ‰ñ¸’=O $qg!LèÈûŸRËzzGýÄg¼âyó£’ ±•¸7Æèܹ†Ý—ôá.|ÖQT?³;öÊ)!éA¶­¾½³|“õ¢Å˜]œx Bk oé!¢Ÿrá«iæî§ŸšÂv fR÷âŽÌ®°¨C;«#{z¢$ð]ʨk‡¡ÔÿiWI˜¾ ‡Õ¹™'éÈ —QïV^îQ_¹\‚|&.ŸßÛ m½Þ:^Ž|ÓN r;˜]æÙs’CAû×U²%Üøoö!úWÙÕ†OK!D Üvæ ÐmÙh-–ŸWÝeàkæëÖ°±‹‡Ró2ImM`æ.Êr4rYF+ò:ÙQv(ïㆎln'#!ІwÒJ¸4i”ü¯Ý¤—Í´ÜdÂÇÖk?j­î;¬søìÛÜ×kÞICédÉú˜*ìþ#^1›KŠÏ¸×wç&=¨0‡vª½Þu_E|d™»‰±z4ÞÑ;C50J|It£§‘nù€¬—б¤ö=RO$©ÿgwãeaç^¼ÂK`Ö VÔñk ÃqÝÊRAùé?µ=fuñÅÐJ »z©÷º&OÖ¡ªµX”©Y(óg!âñHÏwµ6 Õ¬ì!?߇òý²¶&Ñï:àî±äÓ.âùsàŠnûI<…Yh×kwÏ.‡.b—üZÐk&`“õ° @~! …gH§²rRÚ©gýÜŒO¤’ü¯¹ó¸Ÿbši|v„3`pEžw^¬o|Š9…]åZmqOˆeú‘(:Bbt0 i:ü=ª…·¢+(É„ò'i‹MK[§($—™²ª¨¢§&2Ë\†ŠÕ\b¡u»Eø >dfô["5Á‹TaÒ3׋EÊëΞPNI~ü†¿|.& ìÏõ<Îá5<úZ"e+¹ï™î‹_rÞ”’,grð'þáÒÜÇ“~¸à~.Jü¥ÿÐtÓ‡\45È!íe>àsH,éFÙý¶9³(BGG Ï™XEÅ£;xfØ•‹r¿d!·Ùe„DJ÷ބΉp8£[¶ùT­ulnõ#h‡†û¿ïä¢×D~Ž’ü®Q¸ïŠYZ¹˜O>ï@ˆPd©X»¢?Žî(ÿM¸—¢ ¿¤¼V€Vôñ»'ïÞ—~­ÒÚƒüg‹ÖM™ÇÑ'±š˜eŒéÖªx“Ù«·}Ôúó(ov:}ÜúÛßUã.‡5´@4wš$Ä+ÒÓ8 rFuMb{vD¨¾?§FxMþ¤fJv+òÛÛnŸ€1\­ôóAÔÓ0äདUc 2Kœ¯é2"Í÷‰P8%ÒkzÆ@|¤GôC>YQ¸ Vƒ½ÿÙ¹z¯ 4€É©_«9êàƒ)m½ ̨ku¼ÑSXƒ’|üIÁOƒÀ®¿ \`ídv­ð*×sÑÜBü¯ºùÙê= ?cJ;ñQ³·Cè›ß-«{½Vãú.JÆdÈÈb¢Ø“=l 3/~ªT/P‚b6á–´2Y/ÅïÓy9 ÉßQsŽ‹Êôsœt™GR:ò›$íBîB¨aÜ\âÕïßj•²Nƒ“ä,”‘Ç&ë~pRn—‡'æ„9>,ùñ"P¡Jix“ÛãAœuÁˆ—ß ¤. æñZ1œ…QŒçÅc=°òÙu‚&ì»[Ê9y%†31*|öNÈU>§¢²wXRWPjðkKû!)Mž~^¥Í•g@ÎÄ*¯uÅVþÅ ‹ ”ñœy?ôÑjõT=‹‚½ Nô“ü®ôOÏ€´š¡Õúø.VÖ,¬Ì s¹8ÝfžÛÝ5Г$C¥+5 ñ¨ƈ×b¦¡Tª¤;އâÞq¡I³Ë«»ñ(BÙ™º7ÖÛ´¢%Ì%Ý8–¶­{œEá…hïóiý£US– ºëk.õòáX¶Y ûÖ©'·ÚÔf].-$ðg›-_ræÅå¡7ß ±˜JÓ°ÜË==á[Áì}a‡›˜l‡e–±Fm-T½Z{_lî¶ŒŽñ ë·Ì’Œ¶>eù¸4}“ RhtàÑQUé?­Iíô¤/¦ûCê0ðPÏVKÄ?-¹ gß µ ÕË»¬J4ttÓi|œóC ÒWYЏ^ŒN¢B˲¢8ß=Müœ_7¸4‹ûÖVž²+ÎC€³×Èeù'C »3Àö-i¬º…Á‘O|‚Øíy÷ÔTc)4Lx¨Å¶²gÀ„cÇ8[•ˆœVˆ°êÉÄ»÷Š­{wÊ—#¹dKªÚ^¿Y3ïÃÍëŠfKÕ¥Ÿ5*¡ß´Ùr.Ðö×BꆉÊ!ýî;ÿÐ6O¤“ü´èÃÛL8´*ɪÂ@ñ4ìŒØYD5f,øþ^à쳉 Þñ%¹263ôñ¼" {—}°Ç&³XMUžDÍ•—·¶g¿]:à Ó,-?ˆ‹E.<ì7=nykYãž+3ãaɉÙve—g[ý©EÚÕ7ܹÁØÒ¶:Ϩåf$ÃMØÔaîbrE2ÉÒÝ7H4?.Ý\ƒþƒíO)!)ú oïQ{­­[¼4a©kbU/êñ’Pçlý uGzªG{AÛIœb:!2³Q§f¾é!÷û™twB•G•‡ €¢eƒõ2;ò/Ý;¢yG¼Z c'@’)e ÂzngÞ§=Ì•9¥/ZÜmœÚÔíõnŠN߀û&r×xóÙ¾"qîÁ},V×|ê õ/µÒ« â> ÎðØ‹õŠËê ©-×Cnïúàa‘0=èêNºLåkÍ;¿OðS7À­ ±`uôàÊ,¥?íK[hŒÕï0ùx{‚R2È?¼½lô·½ª¯ø &H*¯ò ùÖ¬“&ö±ú91HzŒ §Ñ̉Ìʦ}Àâ~î5©—ŠEíËSÔË‚ª{‰P`Óz]ÿy¡ºŸ':››ºx’ü­‰E¢õv»ñJ‘œ…M\P(V(TûÒ6ÒH0A—[Acð!Æž]‡\Ë@µl¥û÷™;7±÷¢Â£ðÏœ‡O—Ùͽ÷AùüLpfʲÉ}y_ÿÑØ¢ì×{)E¢àcm­I´0êæOÇõö»ynÓ†"%b|¸tA-„ `;ÿ€Ã Ù·Wìl”ôiÔ«ìQc‹× Ø“Àà 8 ô¯M€·šþ”J ½kÁ‹Ë,=Sžø=WFº¼ª´àG9Úë†[R…PÁþ‡P³7qá*Æìî?flÛŠeÛ”.Ãóå‡xÔíAKÎ6Mƒ¼ÞN-›“¯8˜ÃÏo4ð0“ü¬÷ɃÂ|ŠÉn˜é­ZÉ9u~<ìõÆÕ›ùwÕïMSXÙ.0)*aåzö²oÊCVBÞ–8ƒµ²÷û…žÊÍT Ÿ"t³0Qª˜ÂjÏÌ m“^ÿ%Çþ…†éšºÿš-!–ý³ðѯž¸¼“iá«Ì¾:?zñéaùGRR7ó­oy,KÉF$I t·'.ÓŸÒ—ˆÚqÙýð÷-p¡=ÀÁ; "„Šr5-}gmj•ZвÅâÚÒ£d k!é+v&ÆõÜXüµ8Ôn½é“p§]4–öê—¿‹MÄÆ¹‚<¢Š“+˜pçÖ{Tï’ü­DÁD{Öf’©äEøóŠˆX0^cÔRmàþòíÑëG„U£µIjÉMÔ ªpYÀóBŒÞN[ȱѳB3˜øè\ð’uWèõú”dÚþqŠIè¸MÚ÷YÕP­<<÷’Ž\ÑáÄEÌÀ¾ÑOYáÇõ‚e{¼ëöe–Îì9'µhñ¸é\'uæÛá ­ý¥BÇsÆŸbVW ’/zPCÓ£ør—@;;ìkú´ 3v{í’ÿ·»!eÔ(æL`|ä|[Š*€ÄUæÁ³&ÿ2*Ç·RéyYw•Ü>5)»•[~\†ÌØeu™\Îæ¥£õ£FzX•Îñ$òX÷iðåÛ^‚\è FÀÖ“ü¬=N7A\¥=ád¬–h ¡%™0.ê_¨w(ª L`·Dë5_ãk¤š2)E…'ÖÓ–€–^ßza¥­åñ«=’-{j'>ð)Rlë`DhÝÔäà_H ]$_ì™1L‚Zäc“0»‡‡c½PN³Í*¬89‡êѼÔKSc¯ÐBU›S‘Zë²·È×hqŸ**ÄÈði$6c}2¬o@ÙŽ|Ûí쨌O*W†B4þ€”~ŠÏôN:Î NFúÅFqlÄéð4Øœ\Yè¬Õ•tÔJ¦ÀFeÜ2ýÜz$go”ƒ+“Cª¤Ýã½2õè¹;…>€ýû‘™â&Ž’ü¬Ï?©â8Q_Ý´Ope,°vIJí*®*I^³«‡…]²àìQèÓ–XSJr¡‹E]¹>3RŠÈx@8 ß7µs…”cŒnxѬ£à’Ìÿ,U|Y2ñÛ¯$å®+>¿¿Œš[hg,2<šföÆAN<¯.2×Ox>G…›á~‡M°Ÿä‹)sðÕLªžÚŠ+ ˜m§–2.O3ÀÌ 2G 4ìùu%Tø¥&~Ž–^”uM)ñæŒ4‚·ï0ì7 ²>…þuÌJÃÜ1Ÿóg#iÙfäZõesw'IÜ| «üBV¢/š+åá›t–ŽØhþ9Ó6ÌžV“ü¯ºõ©D¶xó/wD3`2þÚáé6¤­'ƒµŒÀßÑØ‡ªÓ2€@ê«“6{&gö@§P~N™²Ûæê‹ÝXz* ¶!§(ºbý¦ô×ë¯=qÂÖj†›ß”Ãèó–.%¹f³ryÉ7_ðZÊ3A)ðŒ`>ÇÈ0ò‡êäJ·õ¢¬—Á$*Ÿëô ”— ‡ þgÇ‚~íÑžƒYÀÉú£:¾Â_f×Zzô]d¾\õamîåiÇÃ÷ #™„ z3Mä³þ×g×î’PL™a°Ê"A¯Ø-ÓnE¢9ƒÈRãa‹_,‚ȦñX^åpÎ=Ðv4YØCÿÕ_£¾»iTÓ³ÔBW’$“üÄÃð‹ÉpmŽŸRù±ÇQ’PŒ†›©éLôÀØæ²ìÙÒdüÙhÒÚÉüQÖ¦sØ¿“Õ´¢i´gAïw…mjV%2âÏi…6R—ý©5µÒªôûú™Lš…o Nñ (Dkw›È` é.Ü’<*œo¿è¬€÷Ö«:~UÄsVêî¸4B_Ô£®L¡á€fàqžøªEŠrñ`"Qú_AjÛÁ…ñ-Žÿ‰¾9±ÔVC;>*àßÂþÑ-zˆ yÿoÍY9:}^¸ïøç '0e‡Ÿ"Œ4ŸOÛ/wÞ2+oö•N3Í3\ºÞ‡à-!(`Âî%º:ñ:ñu)ÄZDhÿ‹(ÜØ¬é¾`Ø­YX§´ûŠ6g=#cˆïü.ihP˜¾©ñßÓv=…]cåp¨9^mqÒSÝF?Ü[~Äåí{|Á‚jðòå{Ý»·ˆ¶ƒ«ùV<€:¡ïµQPÕY]OmgáýúX›œ»N¼ŠGA Øbrd ƒ“?×?À 'oãYZ?»I— ·ááí7“ÉeÏ7ÄNÖò‚Ð_⺮o¦pìÉL]ßdá€ô|ÝÔ5zÌÜÃôŸÒ²v©êw™SûÅ´ W3¾@‰ø×PŒ—¡Ä}®(1 Ï@oËóùƒã“0û½2¦Æu+2O%ÌmÆØD³JSù¢Õäuï]ÔÒü¬k>x†‹NAIsæê«n;€ãès˜Ÿ¤d‚ÞÉo‘Ùw<Ññ®œjH ™´ž>ZQV/9îþ"ôˆq¨SØxê ×êäiœŽ¯ÃÐ"àx‘5§z(Äï¶*ˆ©¸±g1w jUss™óŽ{ ¡Df1 5„mcoKoåŸã ŒÝ†vn,ÃÄÆh¦fÞlœÈÊ8ßó€$ÿÖ³ÔúçvÇ?#Vb¡|ÉAz›ênÿˆ°µ<ÓÖs•xèpç›—¼\NmŽ¤Ö iÞ|fîézÀ2Õ?fÏ L•'‡{9}³%W$ÝÖ!'»þ·¯îJ´úÉ«|ôÏʲHݺO”ƒH"Óüª»K«ªäM¼ÄŒHmµÅ÷oÙz8‹‰,/'ƒ¦C\\¯Mtóð¼­‘YÓK•ÄÐb[èÂîç“Ñ¥ ×À¶quiòªµ*Ø ê³…_ÝvúþÓ¬Æ9êC k€DHa+G¹P*Û¢E5¼4eµ /×x±ƒ ·nëíÆÝº…®³¿½i©óéZªügß+oÔ¹2ª#¶+‚ì%Y1Œ¿eië³aÿe#µ²tÏ4u·? -k:àVÓŸ§PúÖ:w»)ËX=H}É™q&*%ûi t™¥Ú#è…8hyÍCÆï ¨ßÿè÷8¼+~WRÓü¬5,­¶óu[ÁõgÕ Õ‘áÐhéùWÞD:*—ííG«‹GÇK5wÏlµ1Êü¿u?9·ÅâÁYß;³÷LDò;ÂøûµCn½Sô„°ñMòa™‚QÊ Œ4´åßúÇ9`‘«ÇbmÃIBE%rôǰÃ:Y”BùÙÊ«»1‚'öäò̤¥¡WŽ”’Еâ–#ñ°ØŠ £`ÂÃq¿™½6FØfdJ{˜22"»Có¨œAb´!Ò K{±:º9hV¡Jâ«ÝÖyó‡aÏPUCe…eô^ª«—ˆ ¼zIEŒQN–jÕ¸ÕTüñ9þ€F @´’üªºgEøÒŠžØCìaâ Ä~l9p©aÓòõçp=5eV(Åç Žåd³ÐÜÿcžD„xRˤhB"¡"hT)KB°=ôiìt4ë¥ßÍŒöU–%o^Fµ&g¸íkuå I’ÏÂnøBU9Yuœ­„3#÷… Ç Þð­¦N¤=ß{<û¶mŠñ®¬Ãr„먢ú±÷ìò7STsÉ®zû°IÎÿÝ®‚4.4ˆžŽëÞHŠ Y[70HÇ.‹Ô’CL´÷á¾¹ »ÀgHx£Šó­Ý_áõ‰ØFLbï7)9D“nÄäÌ×}¶'Z©2i Èæ3Ô`“üªº£ïùP.¨Æÿ°· ÓB]ƱýËQ,2ão©E‚ªEOÝ·fà{X ¤Ðæ`G™1²(øDl sÂ{5µ· \6â\ºK8CÕx.Nr_º\ìÉgÉMÉ®ò½`ñÆÚy͈£¹É6"%´¦Prù=Uíùjž<8”ž¢ß¨ùlÈ’Æ ¼ãßfÐdÇˬ±Ë¢åáŽÃ©Çß¡Æ;(¡TPrd “ßÿù¬€?«ó Á[‘~¶jÐGÆò¨‚µtºqöõÎâLSº¢ú W¶Ôî@8–›Ó®’ü´­6£Á‚Óoµ³“/‰Ov¸å\Ô<ådÓRPwÞµöqim–²¶‘7H!·ø¥ŸBúì{ü@ÈŠòZJ#˜¼§[p–ùcàýÞQÑ_™ý·¢ë€²&ö/ñ”t¸Qª¨ Í8@ÝúJIy´U£·•Ïo^s¦oÊx|thY‰Ò]'¦DØòÕ¬ü'¤º¾šVçÈMJá„[¯%p³½)ò»ÿÒºí zSY`?·××$F‹"AÿŠ…LšQâ†<ÇÊopúWN6©ýÂ~•çq€É™¨Ý˜áDC³qßsŸ3ÂÿÀ]™@Ú6´LݵÑYâ;ÕKGkõÀ7á ½Ã+‰>a5™Æ½<Z¡y52yŒDyP0Ë”ØS„M«²ìOf V§Ü Nãj½ê/:÷¥”GYž4¿w6ºm(Ù„A:¿–ŒI¹ÔðfêyÈ–7¦f}/."æ\‚·ÜÞp;jhù¿úG(ýâ‡ÕæJ±4ÈѸš„OëË Y^üá9©Z ðÜ&5—ñ¡À“ýÿ†«ÏJ­Ë?€6ådŠƒ"*ã¤M° ‚²>©Ü€z÷¤Ë»ä÷gÿJŵCÆK,[«®ÛoÝ$”ü¯á¸ØÇ(].;\ ë©v_Sï3|¼Êö;ö¼-üôz ÌH«µy›K¢¦%˜Ô––œ_©bÉy&ûB¦{»›”ºÑªŒ!¥l=d]¿d½ìò€u¤Ù’[(¥ZþªR|aû66òBžåß¶­¾¬ÃÌTàg-jýÚyN ó‰yØEißi<ÛšRžúän¢§|M-iËGæ™x1ù@+0@ŽÂJ"t‘W¡—ݸ«»—<¢'ÚèTÏÞ™Ò7SýÓ医2âßd-Kûòô¾«Mb°y$ïýØ(íæÛ®9à÷±;똨óbz§T‚”î3Å^í,-G/î ×]è0AO¨Ê»¼‘üªÕª©¦bðÚOóuÓ‚¥·¥§C„§Ñ®•öñ¯ ­ëŒ~Zib™Ž¥Å&ÐáO>øWúŠ cóýA†íÚ)n‰IâÚø¥Á¼”Ú‘D«æý÷£ªG2äêÕßž+Û˜üä3³Ð ‰Q8­HÑÄ‚Ÿ¡9U·âžùô­Ëm¹ áîúòãÆìé Gl¤v¨Çãd4â37– ‡¥†ßÎÛQ‡m+T²Ùùœ»›>iЗ2¥jÜ) ¶ÑƒOxÂìŒ4q€q$ÓñL]ÿ¿¨Yšf‡›Ñöúû¹Xªa6Hc*° ø±áý¦rXá[Š×ñN’µ‰¢’ü«+»a{† nùPϹH8®ùÊâÞàƒü*°ÐÊÉC4ßk+º Xk&ò—6ÓÀ,Skéÿ˜PÕgB|ÎXª”Û(¶ˆ¦£"²±–ç¦wVmÔŽl©%¾³®u¾>)Ú…pgícíùƒ>ÃþتNT¾BJŒÛVŒ°+„ß§‚ ’Ø6ö.ÞîBç‘q}/þ¹ùKÍü~oµ®š~ž 7Ùñnÿzwh7»â@C³S‹ïð% îáúµUD®ñâ‰r‰jlñ+šúâSE˜q¬Ý4°VV—UvÃôïR]°¾¿º%)«•ÙQ积DFúÙd«Šr¶e‚Ø©éà/0’ü«E­f-SOÆÕ®5F#¡¨%ÚÝb½ žcÒd›iå¯4†à¥é÷¤÷DIäZ;Ôg/Ž ×™òlÞ¤ ”ßòGù ËW[e‚Ňš"iŠjïs×=f÷ ÈSß“E« ÄóƒØ]´…`UØNí6Eô1”FÉ>×fäŠrëy™ÿú]LIy¾ÒêHf &½«›ïÅñä{“ŬÙþÒ¨fé³Uõ\Þß’°„í¦c€ˆOYÿø5ø¹¬˜ CÇe†Äž•[ŒtiÎ2]²ˆ?$žþtE_Òõ¡„L‹†½=w Ô¨Ï È¯yï °F¯lߌ7¾†‡.жÚgì“ü®ƒÔäWÁãâ/Pا0î£eN~#jO$]—}³Öȳå]zDEÇ…»-@͹¸ ë[sP¿Dïg€îg1MºýÚÉ(·µåÁ»¬ò²+·pE-Ø€¢/+â5Ÿ8™šgÐâñ¬›èG4Ï—×ÇCÆj}£¿¯R4*l¬>Õ(ù}`¯Ð¨qr»×Jõx'ÇRÒ©-\ ›Ê‘ô·þy3 ¢]D3%):#Q.eŒt*Ò¨¢§V#.¬TËh¥@«r¿Ö›¹’3t†Ež¸oÎá¨w¯öb%ƒÉµ¡jw?•dHã)ãÉœ#«£iÂyiw'`?w~6·VÿiË2ñÅD“ü®¬„¸2¨·k½E‘7[\£ãWÊx˜yå¢àÖÿHÀ`ÁÔÿQÓŠØd‡´ô÷aB[P|çŠAóÞÕK6•¯¾Ûã}ZnÖK//yK¢8ïÅV(µ¹–xqËþ‡$eR‘IãòÎJV]NÐdXJÎQà/¾1ôˆKΫîÓÕ³iÍ—òOÞˆcÆ×±VÇiR¬œZë1ÀÂ}¬býoQ4²í;# ûçË9UÚl÷ú~¤p‚ˆ4’Å´¬ì-´üï廎8EŸ}&,GYó‹Äz‘"ç¥Ñ&:Ûò°6 Ä…B4ô‘Úâà¸HÃAÁ>G(@¢¡"2‰˜\‚òÓbO “ü´îº〫€ å’/ÕX¶D+0J|'íšæ¾¡¡TNÜ‚bv>¶øU˜ÈPwdŸj(u„Ø<’L’ã×@<{%£¶¨Æ ŦGk¯+å«,០>û,ÒäÒß@mp„Ã?æÂWs õ4z­þ‰*U²0ðŠÜ5¥|2IƒwÁïl´È1¤ô¿QÉB_ép—'@r® ð{Œ‡ޝµ ìHµ‡,$Sá­£d¡œŒ§ì|“ 8f¼÷²Ù]üø ÇD´Â;©š÷·ÖìvzàÏÕ žöè ¸ôé=—AÐ÷~,Š;H{V29K&Š™@_ª›åd °9ÒgJ²õ;é|Ž2°\™a¿]fÂê 9å#¢3§õ1ù؇+ô—•“O—À•¥c,úÇ #c¯›¡\¾ÜËëÒ¢tx·@¸ò×$¦.8{òÚ_NÏðŒ2ÆY`ÇßrK²´ 8Ï^5ïϧ·8ËÆ5K®,¢•®¯à&y7d\Ù·¥Ã'¼Ñ©y½¼bQp â@_ð.62„™Šô”f(_œ1Jºm× ©8ï_Ÿ9ÙèÎdBwЧb2Wüún®…”JûvÈÔÆf6*Ìñ_1CA”üÇ÷@ÒÒïKZe‡Š7KDD´3x”S—\² *vUfRQ1ä“–}‘XÕáÝflœE,¬CóèØVpòŒ]Q¸.ü;Æ–¬\kÌÿÕ€ãljiÿRÒ Z(GEγïIŠ%€î P×P´æ:…X#Oû€eÖÏùôÎûßÎ¥?ªÔPò;Á>{ö—æ"yxë¥Ê¹cm÷¢È$_a8ï@q4¦¡I4KÒ^%–æîÁ´×½•¿ËË­ b¢²‡8 ¥,Þ{ÊÍ#Ør·û!zÉR—Ý«¢ç+o{ÙAEÅEÏ{3¾Ó“î£êa˜ãž°Sý+8¸ˆñ’2Vø7áÕÓÙ¾0Ÿv˜3úiO£üš¸r‰ MË?ÀŠa+ ûL ;½Kê–N‚wÔ±ŸéUù~øûnJgÚÓ¾Àõə÷•@ËEÃÆ¿e†è^\ö¦?33ædõ ÿ½à$èÿrÖE±ë›KÁMFU9cU5ã;š:¨ãƒ¦ªÎ‡:b2Íš%‰d‘ìÞéï²Ï#b;l„u+‰yŠ%4ìúlŸÖŠÑÉÁ?åüÃ×HÊ‚w±nöM-êŽ%+Ð="wú‚äТÄÔ‘¼Ö#)›óö ᜯÜ.·1 ˜.w¢cEìGTYçÔ…2#Q‘CcYvŒÎàÞ¾ ñ@ÏÚÈä]·sÀZ˜\¯ñ?yÏj*…j®ÛÐïë®-ÎåUée›¨Ä•©³Ó&g™€†káË*ÍÀãñ(M½C³ôà=ó$˜ÛW_°Æ¸ÂÏ©×Ù1o‡yQW†7@‘’,ÀW¼¼C$ðr4ZêºÊõ_£‘EÙÐê{e®{æªcé¡SëQK“ÍYòó½s…þ ¨?KrARÝKŒmÔŠè]3|Í!Õ’šÐ…ͼZ†a=0­[ã…‰¼Ð©òãÜàáP,^¤Dq_ Žj…”®¹š²H­~ÙtÖúëº-å”=‡öB“éÍùå‡úéƒdØXB,dº¯BžÊÉxü˜k»€=ž`íľ‹3ól—QA&ߘ¾$üÄ}‚c•´Lü;ÑY³¦«LŠ3Þ‡:HtÏñÆo(­÷|»MU#lÜíÒS9–róþ]¼‡=›ƒýZÿ,­Rsh?r(@ÐÆ #a‹Ã.©Ô4¤<Yð'…œTױ箈…²®Œ3h#ªþïí଒ÇA.‚ÛHðªh›–øx»Þê>hBÄ^ò"Ú†=YGp!F;ëåJ4h,öœyKþ)ÎwÒ¿9²”LW´í|Ø­«““šz[„áTÿà½?ÌbÛ4êÖÉÄʶ!Þ‡u¨8÷B½ÍÎ6lÕx)G²É%ð¾;¬;X9¹¬Ç 7Ýwz¶êº£Ð£™\‰n¥üÃñ¶ %9@Åá¶Ô§zÆ÷´ÄØ9m¼9|€c«¦mU:.“ãBÉþ‹œZ ýP£^²È3²gr–`à>z--£¢Þ.]èc3VCUÆ e\4!-Ð2¾ß[0Ö¶’„_e¹D•êT¿Úzþ‡·äz»xüKŒ±áÅk”é39DË éÉÿ³ó-Lͺ©øå›ý…ZƒtW‚äôüA£° Kíìo2…ØÈп „!do¢×ÎFŒ£é½ó4ÿoSIi¦€mõËRžšÉF,gÓµT¨xŸÒ¨oi®^’²3ÒÆ:øB1&*µ ð`wÑ”0[–Y•äE*¥üÀ,É,?PìBvŠÃ[ó뱞§ÿiµÜJ¡÷¹™w%G~ú Ó.E¶–˜Ær'T·¾'§}aé§”dG$ ªþ¹ðØê†óc÷ßþkZÇ0'kƙ׎锛M‘«{ÔDƒJ1"JF÷! ¥¦(DCÉS¹Iff«äø4Kûæ˜;ë5ŸÀm¼M¥L I¦DŠÝ%oŠ!Nj9=9•úÁ©IðI¬6ë8õ© 9ƒ¡;µÃŒ&Â’ƒ…ѳÕ|™`¹’IRW©ðΙ¬d9³¬%0ºBÍîˆîpI¼ó£‹ñ!ÐzÇl¾U= „K„MêšÍ@•ÌÛ›ïÂGÞsº¥ü´êë–n¢ÅÂÉø¥ºÎJ¶Ê,B¹›Jðêé’©#]¾ðè%óÒ%¡Ç­AÆlÑB¼êüb¤,fÎü€:`B,úÉù…_†þ%ñQ„¢\ÜÜ~[óz1ZEþ埧¬0VDžÕJúêFEÌ;ô±#‹iŠ>S9IråŸ0:¥ùsꤵwePFS|=^!*\­å/ oäñÐRð[Z. ‚¢åô)m"ÙO4VÚ±Ç2£@ª9R1&ðY}ŸïÃWH•w à4LM¥Ë‘÷ŸMкø~v¯ß»ã'~~«Ì˜6>ø[Äg¡„¦/â~]sÍÈ Ú çý}”ÀVú©OY%÷¦ö€pê7œˆÌ1‘‘3’Ë› ëRð«+6y×¥ªÆ«ÔÛ¿xNà<ÝÖ¬RбVËä“1·²0z±%¬Gé"3âB/0Ù÷|2:þýÕÌêÏġɹŒáö³Š+î *%G+ u¾|ZŸ¤Íû´×ÕX¿ntK/v»%ªCÉô Ò’tëçQèSw$åØëweIJ=¦Û%›ó¤F nT§A§ ²“üª·¶!L à ;R³Y"·r;QõÜÁâd`ã7øDzÌMþ^#¢’·qÃksB@$¹>»\ÊšY¼-ûo¬¤…pƒµ(ía‹ð5(»9O³@å |à\Ö`l+d°"ß8;‡l›±úÒ,f-†RA°zTæ©Ñ^]ê2þë*ïBxÁµ×–mXžn¸pæ0×ᆵ{õš¡ð’¦ FiEƒ{Fáy*“ü®± ¸<Öþ§½ŸlçוËÊœ)ºIžÍž€g±š.y¸±;ÒVõ™$ 6¡"ëÃçÞÅzÎÜTr÷æv<½±ãNÙ ÉÑÞ!àÐÝN0»eyva¡@ø nšOšîQqB%³19ʾ3’—  ‰aÙõ”?Q¶w’„l°eDVùÃ0\ѧ!íä'ÖÇ=?0.çÈŒi¨iŸ‰%¤¢ìxb½%rõ`}ÑV½Ÿüö"4y›¢Ê§ˆ%ÛÆLŒçk3€E§б€ÜIï§u™¨ªÇÛѳʟî.¢RXeS!R GÐmf Ò«ö]‘mŸç‘ÐĦ®Ü“ü®¶!5è›\/oÚ0Æð¼Ý¹JDíæ1×ö²I–ÐÓˆcÈfDiúbRIڪĉôäͧ•{Ý:4NXéáô¥§;öÏ´ŒùŠö6´eØbEÓ´’YjÔ:òÔ°Ïy«Ø¼àCîÝtbÅ:§‡AW/ôØÉÁ}FÒÝÆ.I¸É­”N§<åÊ.É]â/âÓÄ×p"|Û­7Zˆ÷EÅ)sëÀ¹P›Á†ò²í€¶óøgªp¼£¡å'Íä©ã‘Úèý†ÒÈ,í˜bÏ€!v0Rê 8¡ÎȾè`Rø—j̲ÄjܲI "’zãz‰îÝ=Ο4±kåÈ“ü®,ßÃ4z~Ï%.ÁýïøyõÞ(éa¯cÄÈsÅÏt:¬Ì®Ï:³Z!‡ñŽ•IªÊäQ²EVMã]Rã^>ÞAgiÞ3ñ—¶íÍÓ#tûÏÏqHK"Z2¼³G:f’Ba¬dö<ÏÄ›Kêbgö×…ÓTÚ}PkA70cªGŠ6óü£ Iåpå¬hu¶½ñ<ƒC­ãS7í‚Ú¤Þ¥Úžˆvm½MÄ|ÿYÑ<ª3 O¬u;êMýYq¾H»WQ’ˆs¾ÐKƒ•Å;Ö<îšíŽ4y!ʰ¦‚,UÁOøÇ@FíØ‰†qÔòïHÛ«hºÁMD{‰Ç• ßDÏGG(( ?”ÃÃ|ပ¼h-˜Óÿœ`¿´Zö 0ù¾>SûYU]Çð.ÈÓõ`&îåãíîñ¸»o8:{õCB“ü«^")]/õšt²>-vù……ÜÉIô±_’³…æî‹ÂˆÀJÊì>±ÌÝ=ulÙ ¡{¼ì½»Z«[= Ðó·9/@?HŸá-Ís„á„ÛuÔÙò{ø©¹¹,Á8%ÄÊHoïÕ-Úpk›mb³Ãüí÷9˜”òó]‚ÍtçÖüN, R½ž¼ªm¾¦â.§Ò¹j.)oˆµ ¶`k6ÿ_f_ï„m³ÙjvÈ=J×¾²xZ{…W©ú¹,ïm7PpÛzCe,_¤Ö=ø´E?Ìÿ‰²Ç} «”sLq²*yà4‰O"‹¡;ßš{iËm\+߿ݡýiÓûR¾ÖÚ@Ð.Uß›¡”Œ“ü«_žI а‡‡­1¤¯ixóT”± ‹Áõù%m¢íšàh ý“ú¤Ë\î½sÁÙ}î’+¾3ŠÄÙ]47ç¹ìÚöø–éœ?r«ÉW„ÁE,4n›A»rm;kô W´ó'!Zà;Ÿì-ÂÒ$^ܰÛ](þBu¿Ö>| n ¦?|7“BLÙŽ~ù=l¬žS´„»H›/Â{ˆÝÕa¡´ì«Ž„(³p¼÷àO¼ R_ž~BÍdÿ=ˆË!†ÉMµ3R Æoå¿Ü½¹úVW1Ï¡Ä4~øÖd &ì/œüH£€;tyM+µ 6ÓÔŒíh¢/Þ0Y:ÝÌUŠœâÎ+05Äæh’ü«d¬Â_ý[KF GÅMÑ÷`Œ›ó>Ó;@s§f_ìŽö®˜z«X\Ö(AbaÆþ'%™ø‚ךÀmùÏà2¹úRðɽ×&ºïxü8cß7!æÚÂ~„½ Ô!ª(¨bBë/ø€—¦|ô·Z¼jªú=¥˜õŒÁÂL¯×½‹£“6®T^Ü€ôÅ5Rð¡"ÝòDÓÓÑa2Kîo]me3GÝq ¨¡úE×·þãŠøî‰â÷cƈÂáAfÊ‘,ðÂ$±X†Xn¯+…µÞ®E’ÌùC#¶:Ü?¦¼ôY y# ”×§£ŒŠËØgBh—þeî=gvÅÞ?=¸üJ§x“ü®‰üþ†(zcð’²I±ÿ Ùö%—Ǩ &àÌ®Óü®Š,‘:aËå±Ûã…ŽØ_:qª78#$+ÕÃÖú§µÃåd•w8mŽKå5ÎÈ"Þq Ädž¹ÙSté8A¸~wB(± xš0(îÿÎbÝëLŒÜ=ô]Z«µ÷8‡/'¯ðWnúbŸnF°#Gû²l¤Ðñ¿ãàCƒažð¯ëkõÝT[¼SÜÍÙFË+µ¶¨"¿ÔЉXJµ’µéDé‘¢ÿ[õá»§b²6¼ï›¡š£’]R­:~ž«ý·,Ø Žz™&«ß¿FdδDOL¤P‰%åÌq<ß›8÷²B{áú«E¥ÌŒ&¦S¥‰¹5çMG³ŒêUÂÑ-k©ŠªjƒŽÚŠÛ7ÿX>ÿ¢Óüµ Ø8ßý%~s4‹ú©aë'dÁ\ùaÆ®)ùd8ÜÞ!¼mDF­ ²­OgDÒ¨Š‰÷mÓJ߸·GùOžì‡ Ò–›^2d2‚•¼‡Ch;UËB@0=B`Eæ,É!6v)É^ÏdÀaH^~æS14XÜ`v(÷Ž꼘ô¸ÍÚà~·{ßüƒ:…QVÁ0S Àš¥}j³%¥ž©5 ý¦" X¶…áï÷r}VÛœËE¥rÀ1Cûž@ w£þ¹XËDÛ3?¥VÓIÜà‹àçnX}Ê“Qp:¶{¹¡Pqø:á¶t±2V‚‰´ö ?X†v]‹{ Î¥ezï+]ôéi˜‡”ùä*èºø\R«­g¸7¸K2ߣ›é] ¨¦/¾ÏÍŒdÚƒ—é@Á¢#†“«Í&[µ–sJîÊûlÒ…Ê €ÄÿdÓ¨1 ûøäÁ*„HcE­Ÿè( ï;×€?ýŽZûè‹kŸ:K¼Ñá@‡Qb tm;_ýRÆâ§y°ºB΢•LÊô¤W›Zýl=àçñtq ÷½0!~,ÌŠ’‚s¯1»} =NTTU0Ãÿo—%8˜ùÕQ‰+Ç1$Göe–Ôü˜´Ó²T´_É5ú4s2ŸÏÝC^ª4;¬¾n±-ˆ¤‹l߸†Öè0a¼[º^ë:dS‘.TE„àðwäïß;Ñèd”€÷ÉÅ•ú[sX°½ gÏhªQ9aD†7SÄV·î[g›$Ÿõ=¬õ£ØE¸3Ôguv 7áV‡€ü_¼UsFPD‚ÎäéŒU&2¬6ÙQŽE¨çLÙ£¹Ñò¾÷Æ* Ðí羊7”pº3ì²Æ–{êg&äêÕkÐýž€HYÂïzÖ.°K˜'Ž2mªÂýÞ7ºäû³º½a’Q³c>í\&T Cã†Ê&+ºÙÚÃ.éÁrg‰ö*a¯¬bzœÅ߀(ñ)üýc8hpEü0iÎû÷“x°÷”»úäÜÈ6Z<-êààæy@1ó Zg·ò¤L¾â2Ä'_^ŠEè$Ù·ëögùý%«ù´ôÿïï¤ÈG®7|ªHÁÌqdòµµž ÝŠd?{ZÌŠÌÍ s!Ä`Ø[SŒ ¼ÂvõK´‚©Ÿû™ ]¢ÀRäµ÷K‚°³Šg`Ôaꀂð*„¬AjµðÑÛª–ÒãÔÏÕuŸÏ™3Æ’ŒÉ}ÏÈø^ƒ÷T«Ç>^~S@%;EÈ_ä&æAßîÉÉÎn`a|aw;èïÁ&ø.8¾° ‚K€T¹Âh>SÙ“#NKNK#û¦š  Æ³­*\ü®Šh8¯Þª)Y÷•†*`&6RÙ ´G`¥¼ÎX¶TâY,¢Úެ;͇µÙPJi$úkë-'k;9Œåê¹ù,U° 5¥×8íÚMa“].ÞFãË8€:ð²î~!•±Úº{)á¶\‘ÑÉê†ó­b]‹M¤«ùZlk"ª Õ²™d4áb׶뜖0Œ§Ø‹ôš‰_ËhHªÊ‹FWÎ!eÓHÿ@³mÅÌá7Éím;ñ@JJ¸-Ïýëo9úÃn¸"°›µ_ÂVAãO‡prFœÐg¹}uˆöXŒLС³¹J㈿?ðÓx{–ÐÑü«]Õ&æ#ë«qCŠý±ˆðŒt±ŽH-vtèËFpKØÖþh½r /õ­ýjTèT””Ö2uÓ‚|_ çCˆìž(YeFªëëúÞ“Ò'¡ ØögµdüL•¼vžW]SPJ’Ñì±ÇÂðe2vñœdµpGL£ÛNó½Fá¯;ôí6y ½´­§Ïr²i›¨En*µDü¼Å)Õ¤ÿ‰ß(~e‚í³'Ñ !p8éá¡VDCÖ5áÖ˜ôìBLŒŸåò8-ôŽŒ-€×øˆÎò¢yì¼Jg âjc¡ÜMÞ­~W´†*à÷…‡kA}ä GüÅA–Õ%‘»Kvrü æm#|ÆN&#=|sëIÚ¼(š‚ƒçY^´Ë’~–æó΄â&TOaíÃå5q]Ö¤üÃôrðÇÔDdDäÀ‰JÀ¦B[,g—bOù±á„Õ¥ ìí i‰T\›¢hBðæM@ •”¢(åŸ3]R¼D¢¾‰%¶Ï®?׆ C=¿‰‚?epMV\T ZWÔâÔò»ÿ-ó¼-9š-HúUŠðs}¹hÅqÊRµ"̼J÷7i$©é÷…僵ÙÔšÚ˜ø]?"Íwå¹À:¼8> ú‰ >Å^®èJ†Û`üscf_ñª:Si©çßÈ~é¢T4®Ã@]G@ü8CÔî2W^åÅÄäÞë/÷Ñü6ûŸ¯ƒè.2Um&ÇUTƒèøöÃ’鼸ozÖ¤OggS€OýÄ n¡·VôMÿÜÿÿÿ ÿ ÿ þÿÜþøÿsÿÿxÿþûÿgúÿÿòÿÛüÿmÿÿÿ ÿÿÛÿøûòÿiíÿÛÿZàÛæàïñÿ0ôìãèåÿSüµ O*o¨°ù~®dˆ“Aq íf¢¸®j‰?HDeæHG‰aøßêE"Dú\™—I¨(P;ìÄÿ>L¼5 ]ÀfÿCœ;°%‡ú™¢vÚáŸñ‹©I­=¢|*ö Æ J%SÛÄ5`׿tEÈÏHì’¶ëàð<ò^Y¥dž§&KA9HgŠíl ö”ê&z’´K Ö±OÔ…ï|N]Ä’>Ö§IT^A­L[ríæmºˆ×û™Î‹\Œ”>uhp=À9z”ɧå¨cèD3«o)¹BÚÎ*öžC öÄ}ÆfÅ`Ñõ±‰þ—‰Ñ8/ |á3àCc“9×ÏÒjã ƒ#CÍ4ð æ0ÀiÊÛ% WÛUå×™Ö‹æ%léqw‹]Ïši¨IÝö]’|ÍéÁ™+¡“C€5­`³ë•Qàè¥ß-¦±ƒ´5û™”Œ !ÿ?îó] øsF'IMV>ÙT’Ńj;Z;’T±È» %£ˆ_ù¼¨¯"ŸðÓü±29ïÂmÍ}Û¶üA­€wpónÑI\õÐè" Ã¥ºÒë `5>]A <ŠÙ𤷲жÕµÕ wy¿ÁÙŽ»CZ'm9u&„¾Ò ‰Þç÷, 1kX\2¸ä1cÌ+ùó–f„‹Ü””g‹ÉZôáØß{nãünâ†&r(Pþ¢‘æekluQn÷(öêLŠX¶ÈÀð&pÖ‰‡òë’Y4¬Ÿ÷â}.Ö6UIÈ_Vü|edªaL~‘ù¿z¹FE3DQòL‚]ÅЀ<ûº(ºÕv"²q2{äü—'¡‡N§q»äDò•¾ãíýÇYŠü0ÌÒ=zòA÷š‘|&²\Ycû†H‰»6odèJÙVC7ÝšÇÌ<Î/ÄÁ*ް¸U…»m6‡ÑZ4„aÆpƒûÖk0DÉ£tãš{n¿¼u"'»¹ˆ Òåk•Æ•lüXžšŠ“>o6ÒQ]<GOqR‰”i?›àŽNÒÿl˜‰ }“á©,, Zé•™¸»òÂ#l nÞ0þóU<½”ÜÎ»Ž ¤¿øI6}øé'}É@äªb/xja0¤öB֌گEšWñÈÔø^f7žíî ñ1FCX!ª«L¯ÍÖºN¡­™1$rxÕ³NoSNËòéRJiª—ËfDü«tƒž^m⬄ÈMT‹ñ<×øä¼J~óó ã™é¾ÛÈ „X3å^©™ŒK™Å]ÒoŒdr¹‹³Ê”­vx§»´C ÈçVõñ㦗–Ùx Dç¤í—«ÏO¾{ÿ3¤dl¤±'þì/Ó–Õ˜¤`åt& Ä 3\^ “ä+¦3( ëŸä—…©¸•,¤­•À­o(2¸Sï²HÞÚ™]¢¶€²Åàó_Ï5ð UáÀ}zåƒFè+׿¹ÛéT_žoéjñí­ª&Fv4îñî¢A "T{œ¡}2½^*Îe]YiÕ8_ðuìüx ­ªr¸nªH‘†’/`ɪp„š!.Òü«fòžbb'N–NÆ—Ì]„$mŒ^×û—\²ø×º:(‹ŠÀÃsH_é«&ööIn»!›õ«ñ\jOªíË‚AÏ •cIÖ®DøáÄ8ƒý†B_• Êvô53„®8(¿‘¡vd|Y~ êj‹vÜââ*³€@†)a:y Oú3}Hêu.žCî`×5é_«Å ÀÞ¨·b) j ÁEÄGè³õL¨q–lIû•»Æ¬ì|ԹΟYS --ÏÀª²“È 4IƒëŽÓü­à™WËý’éV+Ì~‰°RÚ¸ ¦>ÇŽ­nM øÑò,FÎ)__"9:J˜ó\hÓ‘ÎP Åk”dloå;ÿ‹$¥-­û_ -èóÇ5á9í"-¿6êz5v6+˜ù)úÍæV޼ò‡»ŒQæBp µ9ü/x'kOßð}’nûú[-»å(Ùµ+œúMZ•ÕzË«k>…2YM°ÃÝ=<ÔD{˜@Gªöû‚ܧ¶UÉe´O<É”y*yÈæ Ï$pí%wËhQ—aõg‚uŽaõÈOu"Åçføv½KAüs‡‡»ý²]¼p ´ÜúГŒ¸¥—*¬ÇßB‰¿ÐA ã`ôÓü¯öaá<Á°ûSÿX“ ´Îßb­`¨§y_8˜uÃhkÉiùfpN…†+ ã*Ú _WE0îE)½ªín,O¶|p~È©åö›`©ïz ò^Žš_þHKçW#õ\}öÝô¤%•|KpAŒéЪ0¾Oi[}üw€€»ÈÎG'„6ôÄ( Ù~äÑEé\ D?­¦y Ë@Ö†Î[ùö]W}{[É!v®æ,x\±”Õ·Ád{òÐ(Üc-#jôè|I¦ñ¢ªJÐ µú8ÐÓh‡FgðlUä LA!\­ëC0Mæì!;1Îgø`ÆÞIÍMo×Tq Ï Óü´î&Ù9¢bÿ1IFâG5Å+™m'¢£üørM¸>gKê_ß>'ènt±u nÔ­¬mhñ^‡…õ:¥µ »ÜÔ¥êƒ:8)¢VkD—ŠŽ™_¾¦-T™®!@ÞÚ¤GoØyêS·Ö¯Îg¸è7é˜Á,W$Ph|1&5œo¬MwEµY[íQó‚n<´Ÿ4éÓóà‹wDÆêêÆ©œ÷ qFí+¢ÁcaÖ=ƒiEÂÈÀ݃% Oÿùí`³æíQeÖ<BéY:¼ó.oýåe``%S5ä-4Ûþxm&ºD„ ç ¬ðC-W;¾æW5ÞÒ¼÷M®ôæ×+v»t¤zC´Kð‚ôø3P5Y³ça~ݳå„3©«ŸVfa’pýûúÕ2f-þuvì~/9ɉˆ0ºÅ]®z-…Œ®Ú¯ˆ<%ˆ?2xsÊÒ8{©&ðõ)ü:¤)}Ÿ_KßL#;b}GéD““h&ò\bñºÍpÞú!º»ÕŠíýÞ?®`)zu¢P¨©uäïþ;PëLò÷½êÝÑ~fë÷» \¶¢-¬˜n$(V^æNÎ:ùÈ“dùzÊY6R8,›ì×þÍ&Ñ \NëdÆ£“üª¶ó“tÌb3˜—Ý™*óÇØ/Eÿ×—|ô \v)šu)žàˆSeHÅÁ@Îæ8ÓðQj¾a]kÔÁô=ÉXß­&Í¡°Ðp©É kD\+~iÝL÷ûÝX©7ã@Ñ‹HI½ôùöóëT{𾋠̲Ξ»)„:ô§þªŸï ÿ±Ð#Ó£= \E_UfŠa5ƒÍ–‡+ßõò;ù¬èŸeÊYÝ"\p+k(ë!Äöz<‡$Gš3BcE1m4$Ù|j¢!›ÛQš´èØkv¹ÊêðÅ™MZ…òwQK{€È^þûðêƒqØ€>u'Ff“üâyߤ& A³ºÐ:5c”&'ί-çáÞÍ­WøS¸jª®Ã’ÅXØ@ûà/5|ÜžKœA3¿ÆS߀¨FCâÖà¥WŽ—¹{'¯Ç?g9 i™Òþ,Û‹“h{JtíegI^ ¡íL(®j­ÕÚIÃëðu\L‰÷´Óáb„Ãl(ÁØg?ɼõr¶\„#çàfFçZŽàÄ,æµ¾åE© Ù¦9E®FAÆI’eâ|rΪòxͳ`LEß \’ëöt€[hL‰,xª~ÃeS­~è^u窣6áÿÆ"IÆ—9½ ¸>„sŽ,üÃèåI ônÔ™ä¹,eôŒYÖ—L(â"8Oš áú¨nóð(I¿žúWiã§ŒX9žÞs±¥9}LiÕ ¢‡j‘#)\ëÐü¯âN–õÒÕa—Õû\åêŽ0`éåèoj´ì=\”Òwuv¸dxÑ[¾C•Íp3MtˆNŨÝúfa-G`1ÝE)¢‹^©(”øVꀥ`V¯¦Ñ/NÎ,ÎÌV¯Ž kWeI ÒÒ¹V¸76yÈKá¾iÛAjé`"Ü &¹ž¹$@ÛV ëL%;Ügv²Êç½~ z_1 0¨Ì î{3e£7 ›mÇåÜ™~]'°;‹5déÑc&ܱb ÝE#óÍŸÕ$†ÄßíNšäÎûd¿f¥üÀ½ê’;GBWY(Œ¢ßÑjï°ÚÊ¢”V¡§án¯ï^B¾Í;plÇUhz4AøI5ƒ°«9ÕÚÒT±ïëÖÐçñ––%1>A6ˆsKßD¼Ùöd~•Âç\ú.Ý^üÅmGLˆiÛÒÐŒ×m˜ E’¿àÃkwK—âMñÌ–áq!¤¹ª’REž¾Ÿ¦|àlk´Î¾f‚1X´ÕB€Ç´CPkÜ0û…ÝæÞRsŸÛ¢E?Ì6ªì€Ÿ©ª¯b¥CÌž™qÓn'åzÀå௱8w=‘™¸ßœåø¤€ŒÍì,;6†ˆã‡¤ü½ý´õú®«úÿ· x¡½*SÔmm’ö¥ü¬÷Ö.VcKhVý!DØ×~qjÎzdBú*f1šþÞ.aÅ}dùà-‹{"`|äÿõÄï,ÄßWŽÜ‘F ÈtÁÛk+Ñæ¡?¡¤‹»m&R4eÁgMzŒˆ­‹#ÆÂÆ~™œ³©ŽÂÙ>«ç"ë(çƒþ*—eü|;tÉ*Ôþ°‚˜ªa9Eƒü¾Ýž\RŒ8ÖÿÐ>©²Ø@ßaõHŸ«é<{¸‚Væ‡Eâ+Щñ.¢ÁÍ~ —~Å'É32¡èU"«Úã– É简bª~ÚÄÕšWëTPÕ?gÐUý””'_,T,d<ÙÞ_£<$å·^T2µI˜þœ(ò8ÕkX9€·%¦þ@ŒMîê˜Ôwþ.Dëœ0˜¯3¨ú1ÓG³yF¬ èåúÚìûX×7œÃ‘¢h€hËúÓûÎÙ´æ7ß!Íí®T?ýU?ÐÍ÷ÙCV´’s­×4 Ü}î•i8èð³VÓü®Ê>05$('™›þã‚v„ÖQöRÖá&lgŠC_aºiÃ+ú^¨…D£ð?è6ý»½ +„²'+˜ÚiKàœ[ÔuZËv[Œsùƒô:ûú®½A«ì+ÝGH-ïY€Qm°ÙXqpAÚò­@”a¤‰Õª¼^¼V×'F\6ˆCÜs1VY'üÍôq) 56ÁZ³IDÍ‘‡¼‚*Wš»wÌ‘­½ð}í’~Ò‹ôø‡T Ât e’º¦OÀµÎÿ'`ÌF½ç&e¨fËí£™½Ò–í(ýƒO¶†z°¢Jt$äÔQÚâ%Ù­à®?«ÙÙµy¢Gõ;÷ÃhiÝì"ÓüÀŒSS;¯?tdzŽž Cøˆ$©?ö³–š?ø£¼¸-_®w~~ëSÜ„ã-öû»6«Í‚b%JqêæuOX×ô ó¬X˜FTÄŒÄ<¯5ì¾ãŸìLsd€F}^C•st¾úN0¬11ü™bþ&½Ö’4áuò%β I<ó ½¾¶Ð3°ì9Nžw¼)ÿŸiÄ{ d§ioµ©ÔTCƒ½õØ)cRa" ž{@Wá·i\ÐÃD³—,‰|c¤Ä6¨‹ÊåœöÊürp ‡œé©ËV¾ÐÂm^Zbð[…ØJJ*K@QVýÊ{’HÖ¬´8'—ͤüÀúÿG,|>Hò'µ(_¼[Ùœ±¹[îÜ Žò¬öùq¯YP)úŒÍ—¢Œ(,{%îÙ—<‰‘Øv}ìßøñà+ÈÇM°ØM]`wíi¸ËL›ÆÐ¸Ã»0¼ü°ñ}/ï"sy<2Iö] „:VZ’úæÒ8dÿN2¢Þ#ÂÒ¨«w’Œß ìØõ–ÂÆ¤¥2•þ„çÃqØÍsN–&´¡à1.„´#|‚¶ûž‰T-œôÝîÀö¹õ5A¾x:`g¸×[íœÍì&„gø¾ Ï-…Ðv…ߘ5kÍÕ/I‚Qßf…÷Æå_õB"'0ÿÐÿ׫TIÙ O%ü«^'1½5ÄU;ÕaÕÞIŠàŽÐtÆò?bfðÿKë§Ÿ6§ì:û¹JÑ{ÅÈÎÁšò7À·çA„5Èk\îk$ª^¿Žî‘*RÀA¶Kl¦™Ó*Øi¶YÐvcú²­LÁ*¹@‰1“ –’æý1†êwwV‚°µšFµËÒ€¥”ÈÂd b$ Ú—¦¨4BëVXªÀPªLĆ ]gCà #LQ=‘`f¼WQ±9¬!„†Ñ˜G:'2šÜ'zuÄñ|i/ÞÆÔc«£hã ÅwŽ ¦ÒV¼hyæ¸å‰Ÿ5ÌŸ˜ ÍÙoˆhÇ÷çùëYTpW2G˜}C`nIµ™?C88*UÌÔÈæ íŽúÐ\è³b~^dt°¡N€ÞÁ¢ºÙ¡mr ÿúúb&[¨ˆ÷Ï$çCËâL ;"€B¼Ýêí‘dæP¸nžA%øÓü®Š¼uÂû«eÕo”h76ž‹ MŠpp¡-t mqWRm8ÈÇçCóçN)'µ4`|5ý¸;ò/Ä$¾J hk<Ȇ𳉤½[èQWZý=#BÛ†@ `^M,ޖߣóIúý©;#ŽEÉ_ÆVg)ÐÖ¶ø—XØ^&lKžcOGIÜO)Ö§×Å`<ÿ;|«µ“«—ePÊðçžê}f»f\I’Z·À²±xð‘z2 »DhäÆ|´÷EZ ´0é{ú:ØÁj!ÃêåÌ‹]/DGgpÉ"x'*àÝbµ­üC¶ÌªcjûWÈO!6  ™¨ûãrgQÙÔÒü«f€iQYÆÎzôEp7Rq±[åY9eô,X¿0Ì`q€Á¨“ŒÅÀ“w–‰D­:]Wzçõ®S!xW­“~ì}OÁ´L%’¨á™üÛè,­}ÃöfçÁ›žœ˜›1Î §kåöaÈ*8uNS~'£_;ææiŸ6¨šj=,/9—‡] 4^z1°¹ûß[溎ƒëè~>U5 Ѫ¾f}ÉÎ>…- :¯¦Òàc¿oÞ¿A°9‘„i(_Vö9y=…ËV<+¬%¸Œ S¨-2¤Z£#£¸Ùljc×6® ¸¶‡qtÛˆ,¼£Ílå»h’’ü«i€K-¾µf&Ü"AkÍšDè^(ËÝR àHÖº¬ô‰K#l8XüŠ1ÙyáÍ~¿n€8ÁH+Í‹hØ]3Ъ‚2«ëÖ1ñ\ÎOr˜Òîµ+F„º…¥†|7º—„¯E¬Í·*-é'ðtPJš?-bÇ1B’]O•8öÙAïÙÅ€Ûè<¦@!ÅæÏ·‹×#ǯÂã’óÇÚ7¦š§©Ž²4–¹ý<ñ(5-x/ÈÅk}ÆXÏÚ§nöÂíÊÓÍ~°™"C—•÷&iU>ÎTÀF‘Nvm’7âÄ£“`ù 'k –`ÿê,CF]{þŠCD¸ír4k´Žsg“ü®œEî"úįd0tu䜫RŸ¡¢ÁqÚãëð‘Ã,“Âqº`„“CnAFMº¯Á‘ìóUü®Ë¡"˜¸™ö—— VPr¥lÄ/Ï_YÙ?5þÛˆXru ßM/š™¥w‡ânΕN)°^Œ±v³”¬Í÷ &ŸIú8 [` „œÆ¡ñnÐÕ’IÃãö.ÉFF¶ì9Ý„±s ç é3Â̸Yc0±Õó׿œÞ‡ñˆÇÝB2b÷ÐC%˜7ŽxßsY=ï —¢u–‡Ð.ÓD46¸Y»i¡N’eq ZI”ž“þˆlÓ&^~“üµ *Mb&#ÆÁy˜•a®E_õ`êwþÆä¤"2ìuÕò]´ìÐv*ûı“®‡äìO¢ 1i¡<€«w€âÑP&¦£Ôˆu‡Ç Í %mª.™“§4TAL³åB“üU“„qlÂxLÂĉ“‰i&ÎðRíg#bggEpa$ý*쀤sü®ÌMqpJæ ¯‹9U®‹f`oðÄ­»•#×üâ+ÉÏö[:ñ ¬aIBƒ) <Í63ðRó?lБ€¿›92Áo8aü·Çig‹êQv*E´ý ƒñP°Vœlœ±ÌÌnnùlâ×þµè}O‘ jS8RVX¨·9aµÀc±wØûŒV|ÉçÛXú2O+l†àÔ­Õ$ åÃ×hdÐe«–»+ÁE¤½ž›ˆ{Úö&M]ÐxBò$jB*Y9™­øžAÀ¯~VÜDN¨cfò€ÏcH–\Ï¢Ðù™:ám1«½RLÛ̧¿rÔÚ¼àù—¯Óì'1+Q6ÔSÿ "ókù¶kwÒ½ÎÙHôÖw%ÅuìÅ%ßLI4Ñ­¥Ðþ;;âËöµÙú\^d}oƒr0Ò–(Öü¦ÿÎ}oÅa¼•þ#3ŽÀÃåàe‡FųR"áO°3xY††Õ¯ó)Mü®Ñ3*ê%Ù ˜À`79#œ^(Ll¶àÓ2&uÔìI;Î×­v^ߎ©×ý=âA:O=7UGÍåw{MÇÉEóפ— ‰ª`Š%U“w7GéÌ7úÓ9" N«VËÇ…>ÓC‚j &÷'CH%AQMÞ§pÑô¤`ªe¼£% ¦6k‡´çõ…Ž ”a/ZÐkC3Ùa°LÍÝü\nQ¯.)ðú.Á¾Vº™+ȳ™9ÔàçíoJ³7LñwžR}þ° ¥'Å?¯¶I/‰xMé¡b,?û¹âò¡£m°©»°Y%ÓÂì#ëò‚Y]¾^Â;É“ü«hÒüm~”pÅZ™O'rá£rëà0Ÿ²BÔˆSñ3S{p‹ä¯ïLMZÓOÊ¡ßðbv‹|i:™Õ”G”⇃¬ÚëD£}¨µ³UƯgéµà°U1¤8h“ /‘j÷LB7NG.÷Æϰ΀Æt–Ü=ÚVÝ[fn[ßùâõ¦mâù6¶Úg*x.3?2,š\x$x]Ôo3>¶\ùp(sòŒwMWÛ3áÑ€cS‰~i#8–T—“z“é±:¿-¸F­©©Â!,G˜»WÍ^†#ƈ&W†‘h… BØ­4ßCÉFÈI¢XWO –K· \`1чΒü®~èÜn†„>ŒúÜ0€¿3×Î?Šç³I8"<¼;Öa@ÎM¿2]Ì6ˆ¡Æuïh¤•ç„ïZé{·ÿ=Ñϵ!Ì5µ{q@’© SLd'Ð_XK+Èî¶U.O…Ä®µ«‰tD%ƒ—(§vox)¸o_„„аoõéÞ ¬K<•V_*>¦¶OÁ!rJG6›Û,2ÉëŲL¯ ¡Ubö‹ ÃC»1°f34±ÂͺP¸{žíʪyä³ïÄPœI`œ\9”h"RÉ -D56. @ckº 3oLænª|×3~Ìpëý(Å·½FÛ½¼“ü°Ý3‚®Òo÷u=›»‡3¿äéÕÎÿ sq6¡ì˜¡wæÕ‹’|‡tDpMÞ©éo1™Ùün£E@kÈëHª–¨{ &:H ¿:àßCà áGC*4Õ£ñUßÓ8c$0ÿð ¼§ùådvuD&kRËi`µJÑ–ZkŠÐ•d`o¿2zzÑb¨êVèèŽT²] ŸÄ¯nH¡e%ntª.í¬:ç´î<õ,}kÉ#•¡nT©¡ý‚¯ÇŽ˜kâ¬"A ˆæ2ˆA#œ5¼Y·C²/â0Ö¡Ž)[Ø2-Pi]³ÌOžIò(~q¡k6ó\1šXd{t’üµ À·Ro©P=Þÿ5“EÎÙgÜáK I£!J[Sãö°žÂx¾¼ï?˜Xƾ8Xí}§¨+£%°¤/Fñä#~vóÏ÷‹øžR~skLuípCVEhìÁ”7©€_{c9~ÀÏÔa{Ñà!·g} hØZqÔ_¯¢ ;f_øf‚ç-€ÖÁþÊÃH÷ĆHþ¹ äÔ8j9!ÚUhRjGǰqÿ#§/>Ø¢O Å2”GÜIñØ’ÍÈ‘7I›ÔMéQŸµ¸hÉ™óUI®"Ýû@7$-ïÈþTmA‹w£¤º²¾Ëѧ$h³ïê” Ö˜uŸQåžúÑ‹’pµÛ°É] tA‘¯TÄ?zÏö‚ÔBÚÉÊ´ Ð2Ü• `ïèç Aç˜áq !‚)¿ŸNs ÿ v8ý]½*» w³1¡öå6·]4ìB”6 ŠO†¶˜Ö³…´=X:a[÷4ñ´M4ö´,líʺßi\<åŠ|…’øP²ñ©tòp¹iMÂ0JXªˆ™­1ôÛÚiY–t(MU/›|{ª RÈJ‘ɱΕ׫lÓ&ñbŒB@×àMnÇ â;?mà<ñ×1k¥a–“üôqÎ.m靨²ˆ'{èžç \†±ï»Ó†eÑóÀAZCž1Ú#µha—ƒ=ÐJ¡œ@¨ß3·|Û.DrÖ–¾5iTEáT_š_É2´æv(Áa„ÑÖ¸ü§ãwÀä|¶%òA¬#ji-Í[„<•B}f¬ƒºm×ñ°Ö rtVl£¶Œ°™mÛí†.ìœÏ&rvtFéFª¥˜;ÓÀ¿^¨;ó [' dÖŽöt¨¥¨_‹¢Ûaí_OòÚû;ˆ½S4‘ëã·pω°ü…e¶2EÐ*\1ÿ(ª$§‰¤°«½!L ÛštÛ™Ø>†ò.ê½c•ü1ƒI¾è¥ÕÇû€¡Ì4ZK˜âE×ì©ÆfxS¤lÓÈs­³lÑM…Ú‘ãü¡à΄ ß‘‰”Ô$røÜ›ž Ãl9~Á¼?[¶EÈ~Ukñ+¿\D ‡Z»Ä…ÿË]ØšWý{ôÊ6¥:Q9œ?öÇt_³B7¥úÐoQ»ã·R“™úS ¹¶>PmjdÅH¥«¯mZPüz˜Ab͈éþÉôØ“#‡¯ÜJDcQ×âcÇÒ뜶Ÿ}™ÜŒmž¨ÊÒZÉANvøâ‚åÃ×»¢¾å=¸˜Òï8‘œä‚Œ9RDP3Ô™Ù£©@üÅÔ"Õh9!„$WÚµ¶8 ºz/ù#£Îf?¨>,âöàÂa3¼ø0ïæÑ}ÍŽŸ=CÄÄS®½0–´èÌKfÿ[νàGº£´´*‘Wf.·ÆLioŸ(*·T ;<ö¡2˧ÒÍ*a´j14B޹7þƒ˜öý9G5Çn´…³Ô•”ÀÄd˜Û00|*!´ã…£¤–Ó³½{{r훼0ÑdÙS@ÖÒH?ûý¥@ e‚ ïºè2Ð! ¡òQýa÷ŸñP\ødUQ 9UFø>‰ÃKT`°q‡>M–Õòåo$Gþ T¤f§¿§šÑ%üIŸi2d7SRÞÖ>›ãÞeŒtHrè'¦ =0o~±ø"‘à;†™¨ôtb#kKžý$ÞÇ‘†°Š¼8%{‡ž0Ø…°J-“ì+üÄØÚ^œæ¦á—ÏÙLú9º8çF©ÍùFÛåPËAÒ™ž¤Ùl½L/wÆò‡"žÀ÷Ye žF@4Ù{‡{§Xz.~§,Ý-§@6^F–xö'--ç&®zfø`9ÐG•áRd±>˜gVàñ‡ÒHÉÚ Æn[§Q¨@búÎÌ µ‹@ ¿j¢ÔlÓPÎpÑä4KZŽ 2¬Gcù$x+¸¸üÆu´@«bñØÍ'Z¬ÔÆ–{*£&ÞG²ŠÔð}Oä…!\3†Ú;9:—pN†8\Sga§¢óÞ×m⨾Åt¥Ã:CÈþ ùçÂ`¯,¿¡£Êœcå$ŽÓ)‹Ñ$(œ%ªˆOƒ(µ†…º¢\PÙ³èº%¶ï¬WbÈ\Ä$Õ vûýõUa׿©/̤*Òª?ÚŠV(å­å["]³t¿ãeFÎÉy™è ÅäøYu­— „j|z„X@æiR¦@— u‘˜t|nwWxv‡¸¶®>ä.¦ó"†¹¦1“ZÖ=<èðÈvµ?"CU %”ý””Õ”‹”Ëd~Y 25.%üÄ“éœ&Z&÷•C±Ñ[˜)E @èzÅ¿¯bÉ[à·ÜN…›‰Æ3iÄŽW3iò<(ÊÖkÛi1"$sY—ØNÍÒi!š}å ?z*0[”|áš1 ×’zWjTkÜóï¯{†?—d2¹„ob Yxc9Ï-*4ó[Zª'(´‰×Y†\Åtº â¹<‡KЕ-¢Æ–bðÊL–(sµR‹ç³èM±mûBÓÄQ‡ÐF\­]ùŸ™±ÝJ9,£\K‹6nÖ`¤…Á×"¨zÍ`íªN¿¡&M‘=6Åï½4ØæÌ ãõ>%ü{Š*ñ1©ÎcM"áym¥XC]6l·ppõÃïì P¸øõi3ÞP\/ùÅjK1Dx&‡¸oÖñû¾jSNqÔEo2± ¦ž¿aÜSJyÕ FRH}eí3ýý$‚PZôIòòZöÞÂmòÅ™}8+2¡»´šE  O¹Sì¸=g{Ÿ «NÕÕ–QªCâ(ȕܲ~ð˰kîd¾±¨ÎÞm)Æ{Æ‘IR‰nä½é²UZTï»1ÿpñ§'_°w¯ÚcwÛ˜@Õõ-lÃò =VÏÄâ¶fîÒvxRLþ>…¹–LÅ¢lq­ñèBý˜ *š„MLÖûŠf,8Æ,že¾¼xY}Ùºá_Ãßþãÿƒ˜ܰ¨fšªäÝäÖ%;¤ ×\¤êdÞŸöõwž®šYÊ3…& ¸ Ûgn ¥>ŒÓ&»‡±ìS¬ê.S0´·½í¡ZÏ’òðµ¤+|;ßȳÑü0[¥Õ@ÌnNïs†2¨^ûJ±mÉGZã9oÇÍK¡®“àÓr3Ö/Dø»Â•Þ[i Ä—À¥®¡kS*­,úέ¨pª?öÓ8MCRÞ5áMKÆ¢ù¸RXˆ‚’0=Þ†|ÞÙ|cxÅ­ÂŵõãYº_ZÞ³2Zö»÷üM[´ìseJ³©J)¢"™Ût¼èlh|ã%uENN@ÝkÇp±ÿåWÂÐÂm[Øw6ó¤ÚŸë’¤iâívæðoE¾Cd’EgàèÃùüص¨8=USØÊB»qy:Q¼êG¾Þa}Rg"Í8v$¢« dÿÖcš¼Ùh-j‘9ïXÌžÃn5Í7ï|²%!g7“ßÀÓ“D¼àÒô¯åJÈ…û÷—à £@‰â‘S e5$í†ÍÒI½âÛ3fV–I YÙƒÄp±E¡ý>Þ­j%XW?¸%üMtJÕò¿Ÿ6TÚñ£-f»âƒ]”<‰Gu=¡ü°D|æhô‹gé b—"¿”‰>«äa²w÷VàiÀ Ö¯£=ùÿZJpòô3B©x×# üÿø;iÒ;œ“Xt¼3(¶ÊªELOCLJT:Ò£â-|Ž­¾>æí´p• r—¯Z<%T»Á{nùÃŽ%ưŒT´.Œ¹àz‰JŒ"/Ø'—`H7ôò§{¼*ªÞ­"Á°ä}‡ŽÙ#{fÙƒÓŒ`üF½çßq ÖqÀêrR'áüÛo¬Vqb_Çʼìa¿¶·€×$ûÆn†é·yÇæq† ¡¶ô;åN B V`#ïg4Ë'öBŒ‡¨a—Ư`²Ì2µ RŽ4ôʼnuòsQ'¼cú« ГLÛ56ô ÃEqÿ NÔ”ÿb3oa.‚èõÁâŠnˆmÒÓ„835ŽlñinÖtöÁÏhê–Ü–ß;’2³àÁ6ôP|—`Zße4ffqÞžbîŠCÐ@w/ù°Ú?,W]UAáÑ¿Ž©_A†¡‘küÛ·al"rò3Gü¸ëM,´žJ_šod:4Ôg[ IЫyë-’à/DÐ:Ä¿kà%÷ÿ¼Oðvþ™~ýª8ÌYŸAyÃ) ž7:©¦ÚÆc‡ö/ˆîqJŽnØ”qµ¾ŠL 𬘆d‘jž—h (Üå¶/^B{Ê4ñ¿^ÃÛîéŒ/0~qbc%DWúϹ“73b4™¼w’¡1ëô³kÀàãs˜øŸ†ìpQâ͹ˆ DúËïW&D_ôeÞ}œÜ†žèážâ µjjÁ!xµaÌUc»ÉŽoÛºù¾ØìüÙÔ…CfõÓázžÿõ"EúCãÂ, ¥îɰmÃÐøÊóK‘¬SÔ=5vú±õª§¸4 æ}ƶ÷DË8þ²œXªw‹n(§¾ªÓÕ®ãÝô].­ŸšTÙžîQßð$λì•Wå4€DeH}S®dÄc´RÇÒè¡ÐPÖý!ÉÞ[«'#¡„ÞžÛ£Ç~·<Ðßâá|VÖ¼e®‰³C=CªËîåkYºP€'žü7Æú^M!ù?xê2Ì䈖îùá…R¬Ùã[fSÚ]j:}},…@zqÍPö¦§œ ·G:º\H_VW¥3ÄKÃQÓ¶c˜ uÒ¸Îu1>¬ÊÇQErç]1L9*üLÃ:'¶ÿ/» ŸX”Ð’•ò\m\ ®€ rä‘¶ërzÿóŠäx¨`¸¸nvèýFì>×(›²–âfXg¼ÃåÖ—óä,ójÚgl÷èÑž´9øÆ¶o.°Xm_«‹Ñ‚b1êË74cyýjÜÅßþTôP|´Üì ãŸÏ[Å0¹†Ã ^§ì†’ÄdÞÛ½S±×€r£íŠÄ`Ç^prÕî )3±xТÈ_NU€uFÞ tW´ïÔ0þ{)Ir@ããVñ.wÇ’îĪï>ï}+鯬úÎìDñW'úJg]üM{hÙ¿$€±];º¸e„û4Q‰N-|¿ õ¥S4œ1“4Wäó™)^u$uûéC¡§ã"úTUwór+£ŸÛÜ÷®„¾vÙQ0;¼j5{FÏÄi*2ª,›|9L˜=íFÌVIUV$l—UšûòƒÅó‡óñMòÛüjpÑåḠMh@’‹QñWªÓ·ôö°Þl4‡“Ÿ&:Í6Êi?CEÁέ¼mÒ|U¿œÃ¨Å«ô<|ØV¨Æzyë´fëÚ84g‡  Œ&DÁuO¥ú=dõ!\7H"PÕüFwM†Éu×5½2ó@޼áy!®R me±ßƒ ¿U9&sØu³GÖBSi·/1ÙÁiÚ±Ê5,ÑV¢sÂùmaÕÀbõ8ñòœàD|_<Êêb'3Ѝ­*ÐT~#ßßižP 8WçSkN¤T/nògÔR¿8íMB×bŽëý sá+çIÖ4ÉSA"Þ_ƒ‘C™fû5ų́dh‚©Õš‡ ”¿çñþ!¹Ju‰çˆßMý®éÑz»YÔžMl»oàü¾0ɦ{¥Kßµ¾¸£‡}ÍÊÁƒ¹üÛ¸øõTöùô¤Îj6wáeåóN6¼GÚ>¹µ ¹fØâ® ä1^êý}fàp@Ã'©E›â—‚¾¨ë½÷—m>¦ƒo®ñy]©èBÝ¥ÂÀ¿64P@xÂ/\Ùš]Å|PtÆ€<Íñû÷ô±Ä©¹ˆÆKSžà_à| æœ×—Y§Òʘî%°Ò­™ w=÷DÑÙŒ(üý̺j^Bý1ƒúÎ&hŠõÈ;5ŽƒtŽšd{§¢Z>´c Û0´ CA¶`ˆ!J†‰Tݤ'$Ai©KuÑXØÄŽÍf Ièü{1©•ˆÚF­§µ¥GjÀ”ýï«2ŽØñb'ü‹õÁÖ­Ø>Æ 7‡Æzò„È[éÜ®ê1Vk Ü¡ôÈòÿþ]} ‚ôܰÃke¡¬µˆEañIՖѨ\š…\$%@ºµë]qˆ‹”OVW ÀМã1È'€†Ãn`Cë—Ú¨ KÈÓgîüôÞáSY€®÷t{Ø(+U×~.Ô£BH‹mvÍöÃ{Þ-BMƒXŠ*>. ç%ËúÓù†bQ¶±-òX{÷l¹ `î)…×Ü`¤È* \xõº"ç‰sQ÷XæìR±¼w8¦úSZ1mÚœGË™‰³$¹–ƒ.s«kê:I¼þqi*M«r6²ÙPQ&•bàA$TB¹[}²Ì(‰üæ¿Êa»š^ÒZ@„—sãØ»)S=OggS ýÄ n裻Fÿ äìçéïÿ+ÿ0ãèïäÝéÿkåïïõåæëæóôýþÿÿÿ ÿ ÿÿ ÿ ÿ ÿÿÿÿÿÿ ÿÜÿréëæâïññüMX=>L ;ë¥0_ÛŠ^ NkcòÑ5{˜²¡·± ðÕ²w} — 0é½µIBÌXÈÃ#ýÑ8#ª´‹¤¡5L—–JxŽõbªÌà¢BüŸU%\üÅ<Ž2 HÖšŽ@¤9cþ’à *OüþäÂ+Uˆ¾fÈ ÏF< ­ß‡Etb]ËCDN&r–³œ+›Zî8¡‹¨ñsSiVÉÚTn|±Ë|Ña|ql´Ô·kÄ›SŸй²Õ<œh[MP¾H‘œ]KtD¶FÓЈé$àïw-Ÿ‡>lcûÅäÆÔžI¬h>'6ø¨.kÑž“A\›¹úFw0i’Dr:j•üL©´XË ×t¥ߢÜNx3÷B9ÀL°³­Tcw‚öýÀ;çìüËunáòÖ/ÆgiWÈ+$›Â(ÏýòžÃ†¢}I<ºÞsaÞ©Ñ‹;ª™ø.“KõHËíé8/`„s”$ÈÖ¥¤"8뢶¨þaØÂSE¬æ”MŒª½´aj±ŒÖØ•±°Z5‡_ê5C7'$±ŒÜõu’°©·ÊçÎuÝkCã4}Õ鯑«Ï[©d*V샼ÎAøD§mÃL×8ª*]˜`ämµ†\mP¢qÀ¾üL¬BîsÊBÙ)´ËXr®Ò†Ü ‘Í›ÁM¦£î¥ABG’!®i8ƒR8–ÀCžb悊$x)Ô_¼UáB†[ãE¯‡Ëߨ8ÛÛµIH·½ÚyLfÁÔI{„™=kðDêŒü$ÆPzGàQ†tõi:`ƒ6çK4Kt¥õäRu]²§üñØ…Rî…ó£Ê½Rõ‡G°#õ±¤­]‘¼ËÛØ¾ù˜ú»€€…«{ªÝ5äè9£6ÛàÛÁõÛ% ;¦Xé-ÚzÙ©'CL¹ ‘ÿµ[ ëmnñP P»þ-õ|aqd.\>êÿ»á(Ä4±‹û+ëzVD{¤žŠ¥V?Ø<£Øó2¬‚/™žRµM9•‡ÌÊè“$yꈤzmûyÓBKþXù2Ñ‚é;ʺ<´4_{– € »Å¯Nür—ê0ÇÕ)Û/ñÊdœ0³ð5r謵Ôâùk1¾˜Ò¹ü(‹9€>™å-¯.iå^ ‹ê¤€Ùï÷ïP D¢_j63ï€jEJGóìs^ff@‡£„Rîw`”“à[½D,pkC˜†¹¢bÊé±”p±Š¶ŒÔÚŒä 6šr¹*éê ûq#gößà»CÌntHªfL4â‹™„ðÃ’ä´ËF ˜&“ã‹Äð\=xð7X¤3œ³,E}B½ìÑø¥¨eæ·¢…jý ¶äTËN•*Šá8\À“v›?+ÞÖø»Êc+Ñàvú\/ši(*uÍ8[Z†”+Û»¸9Í®ü6ühÙ}j¨TsÝsqSOoôÓèó䥨œPçÒª| ¢ûâZj~‡r4¹á\Îb<”ù;F¾6[ƒsRÍëS?‘Mõ,¬CE„Á³¥J÷Pe‡3OÔº9eÊï¤Æñ¹¡ðõ-ù«k­×QÉ¡‚ì¸Ã4˜º,Ê×`ð\0’#Ödz·Iþ®èÚçOƒ/fBfPw Œ¿úÅ®`¶ò€úóß¶Æžl è>0yb?cΦ À”[’SÄDÛoæ¬"&6D%('õ×0‹Ð°è²^˜ªŠS§@MT¥úä,³Y’®³ÍŸåùü/RãÆ¡<Æ7Õfâ©õzã*]“¯»¶‡Ooù$„bëg²0.³ùå’g13ö€å3$%vÍ€ë„ææb6ˆáþoù¥ÎÑwtžÒ˜c˜ëñ'-ÜY &´-GXÁÉ5GEëD„A3Œý:¼qዼðQ«Oòapõ%ñ‰ž¸é/¹ùf-lÂ@/ÐH‘"£f¡!Öì oGYI1=Bíö£D-w'oD}ågKlZR©ÄêžEXÓ;ïn„Pü€K9Cè—ľ ÁhùZYá袋ÌSfè%³ïÄ4r»Zý3ayFm\MÒ´ù¦žß®ñê=öúo*ÿøÚ¥ÆDw™#‚/È—›I‹³ˆÊãé#ѪA½„iñÚ›§«ü}dŽÀô\²Q£Ñöd±/šðÁ¡±4Ú“²Ú ìþ'nôqxÅ8#ÅÝ»Õï£C!uÛ¶Ö_œ6v±N¢Ê[Y-~щ’)¨ýïÛÛ®‹~öKãÑ¿5Œ Ž-ý FšÍ+Z@cóö:ŸÛ'Ùºh¢ÔôAÙZF*j{!^TN |Çå>K¡VÜ‘Ô2(î%Rª èYkÔ†qq%‰;t)E{Ä£p`W ÒvÀÖ®1¾ê¥y* -Œòæ¹öÓC[#,g)‘V·akÓ¿zt£ÅµwQ¦ŒÖVÇ’ÏãíÙr‡Ñÿyc4ó Aï|‰—ö[ö–)ÈêTˆ2ð!’<]òd®U€Kò)ŽñCYÁ¨„êŸíxñ'Žâ{ÃÆˆq÷þìÁ'M;ÚÂüJuÌï$ÿVv&+T¬¢<™ <ã£k€a?`ò ›'Bô¾U?:nÀ'©£‚&ÚßmÍã€^ùV¿uµŠI¦Çƒ´TN‡[í‡(*–Ä7A¢ä—Ƕv­’+˜d<çž g\ÎêFYF®ûÕú§Q. V1¼O7ýûRvclÊQR Wdäʶk)а”\­ùkENÚ~ΜÝ=‘ ÜÖ³¹‚zj± ™^Oƒë3ß ç)6¥Sh «¨GÈðãhÜg%0ÆÑÉ…=Ù·@|½›q™ `s ¦n²N+˜Û‡‹› ói›ŠBy _$O3ü1ƒ& ÌðJØæ“®CÖw8D†Á ¥|o^Hý„ BÒ8 Tif'˜Àœ¦ù Ý݈¾¸h<›_4åpn¬×Að•EüxB˜»¶ÚF¶\°»ò˜«oý‹ÞËÑaäÌë°.Ãa¥´Gß°šr–¼¹ì>·þ<-VÂ&rˆö`&"À~VÌ›¬”¯uü¢ì¢p¨ÌÕý_šì¸6Ö\ü‡hB¢¦ÿ†¦w¡Š""U«äñM£ß×—êGùguÍî~ÕÜ’¡­'ãú@áôößZ™€f4R[ÝüM[ZTÔ{ñ#K<åºD­÷ƒ"0ÈîÓÁ7b®›Y Ùû?Û1|8 ¯Æà§ —Û8ÈGù”Ô½ðFÑ6|C-É<„‡â¶ÿ^=­:SÚñŸpIqö§•بù Î Ô¡XıwýΖ¢ŠP0%"YLlWòkÚàCÁ/jñtPì”=€çŒt÷ýƒámTO]æ¶Îfäi1~0ü.ü‘ç[e[E+G§/Y··An{åœs¢·k¦½àÜÛ^dȯYËu¾;pµ0Åö›nµt¯Œ£{±àͧ¾ú[Mq'Ó–VÙªC<½Á Ê„„§E ‹­5@‡§)[Ú?šHüóCˆÖ˜Ó x;ά+Q©’qÆ:O"AáZlÅq*±ix6©µ+LFX™udòò">o}­Â‰ôÕCòÊ÷È9Læ6¯ì)Å ›{g¯ò£Z3„-¤Ôë®l Ê-TiËóÖà3D(OR¶XµK"F®ÐRôÊëf;ü}´iJ.HQzjNÿÏe\ìZ¯6WøiI±uËó´˜7çTnÀ³³ éôµµnÍúÝi­¿Õë°í¥©#’”V¤ß;6‘QŸz-® ¦²ÝEÊ«ÏøÒ¥èá˜U0R²4Y5¶I€€â8aR²ž”)îfëmuß©1»(«Wt cÖ~•·Ù5Uî‚P)úÑÖ[±›Óž/ø×|§£¡vMI̱˜’ ž°ŒwT ¶Ë¹C£ÒÇ$¾n…®¿½µЙí=ìsåPžE»øZ§¾ã’vUÌ…©Íª!½w8¨âžŒ ‡Ì›O¢@Q³‘ ¿a‹U+±ùæ÷T 'ÕpÓÚb·5N£ýéT³ùO?`齿qwÎ}ÊÛÈößÞÿ#ŒÀ?åì¬ø9[»•ë3„µkZöìE—¯0_Âb·' Á]ÑP•V’'‡ˆ(ò+ö–„™À¥‘›þï¸ü9CÜn£[©»É\!¼Î£6ò¾Âm®S€ ‚G(X²Ï"ØN±„5*½ëvgï‹ųªhÎáÔÞ}I0%–ìzQ÷üÿèZÒ5!àdØxo åÏ{'"Š ÆÐÀ!H(D-2‡}j,ÀÔxYA—oü Ž;,îØÀ] ÞdvÁžÉ@$—º ‚qp+Æ“†šK)Ò^m÷ù%( Å—Uƒ‚qþ—‘±ù%qùãd^Ñ„Ço=ïd™/Aº×{î¤ôm¨Ñ(MØ’¢„øÃ bÍÁšE¹Si ÔÜ?˜×L¥üJ‡Å’ùØÖ˜Þb$kg›5`âÞ§5Œ¼ÒgW³&ÊrpUmSCJ¡"6]³j‰çÖ\«Òì`û)­ç3l6p«1PvÝ·#Œ+2ËLÕ#?nÝŒìÈP ”ÿ€âÄÏAÃðóÞ§ÞM ®E !J!k!±*4m÷}É ¯”;Üœ…ƒ¥xò-E1Ž~u¸Z|dì{ª³:fOdf ð²:™w ¸ùBUg´n¬ß ÿcܥϽ> „/ÑTùËŒ^ú®GäéŠ7»G”:çÆu¼[ÿ^Sf˜Õ§>é²Ñ{dyqkKR!£`“üLÇ×úšëu‚û€‹Æ„˜-úWØLxß*àIæJ˜ÿÜ™÷æÃ— @|ü£gþBP ˆÒ=»U?ô2ò'ì¿­-ªwÞfæUðÌŒ\Þ°bÞìhú°5Roí_Ô&=ÛúŠûùävƘ ÃÙ·Jœ[á°€Z0s)oãŽrW3ƒÎÒ¤Êõh;Vm`=½š⎔¨‰¾ï0‚|û½ùÆÝgíù$ÀVÚnv._7zßµUfiŒ"…»Jœç”œú»¶ÂÄ|~p7Ù–d] ‹ÿäbë/Z92@µê%PËúüLé àå6ÐöPâÔ ×ô²uÎqP8@‚qûÿQB;3‹Š_X€Ø.¦µìôÕЗDö9ƒé;ÁÖ žx¥²ÆòµEµK/Wäºá¿|KA¿½&›{?(ÿ¯ŸµK”£ ŠÇ‹Æ0_t»ÙRóõ‡îQ_¦BÊÎ7oEò@± ÆFÚ›Oê8"Ã߆ +‡^=»ÿ3#çàÑçâ†&õœùîo5ÈSÜÎgœ5„ñ Òlâ#ÌÎ49àõX¬m…™¹üÜ{q©!ÊO´ÍüØrï®í#¬*kw«_‚ãòƒB¢‘ÇLîhþ]û÷ê»÷™_`V…s2Jñˆ€&Io_]nÛ4*ìû!áBw¯Cü3Gy¯Q"S¶¶ûk¦Xš\[š•R`a;¸NÑïvÀ-’‚²ÔñÕ¿ˆ´%©_ò`éªyû]:¼t¯Yz§÷pÂ,‹ ÝßÜÍQanI%]ü è|èíÒ‡ÿAÿ\Š:Ç)Îé3„AŸQÝ?³›É&²ÜÕG1"íüL×/æj*`“ùvFEêpm:‹QC “È"«±ŸJÓ ê‚ïÉ;Sßy[‚«a†•MJ¸ñ³R.þO&!)ºŠšXîkκ·nÝÀ_üår?I*M¬þ8h¬äyAgÓ6§LÓ0-OMã%ØYKLsø{]ÆVøÆsÿ6aL’¦$Lß•ÏJÒâ<^:¡ç^X±‹Œ«µy;NÉñ‰ê²kyhj_¦}‘‚ªÊ×Ü­BÝùJ`«WÚùZì…Ù¡(ÁÖ‘÷¼Š!­8§ž9§ÁÅÀ±yw+nz †Í:΋ëôPz#3l ·ªØ†ÎôFSóì[(àËHšz^QÆgZ&e(È]A‰P˜à”×H¥âðõH>÷ËÇo[ó0õUƒäð@z€¿Â¹v2÷R´§ø‡ÓµPWm²å5à2&õ[Aæà)õAz0¥){M¯oLÞòE÷~Ì–¾ÿšKHSNéÄ5Ý×@!  ëT­Ÿ ¹NüLéb<6óà1ÛıÆ"fÃH Q‹L.´x¹g_Œ`Yö|”(¯R †Ú@F¯4Z€¶Y”ÅèâþŽ% ~ç–¿6:æ»]+ñœÿž7N0^ >jר+‡*Çï !lz ¦Šäˆð?˜Õ«dœ¶-Y”të` +:uê7IÚ#;“Šg.¿—¢•êš¿³»©pR~ÉTZt?ªaÙËn#@oF5Í;n_H¡®µ©ùÚm³Üž y„¦FõÉcHÎ_¬æ+¥®/õÊîCsÇdgÀƨŸ›Ä‘~-j±V%ƒŒ§`³’0Òv,Å(§tŠPöz<¯”ÑÔþQ9ue3ÛüL³Ëx«Œv¸ËgÏ=}0¿8oFAØ3‡vèŽØLCXÕj‡'è³iŸèéÕy[*>‡¡àݪ¥f<ø`€ÏDû¸ÃøTª‘`S³âaá,Š¿ó ´ò!ÍSgµp!NùY–K¶Ï°ˆ¢ˆX‹ëÌØœÙ«êý!„f‰÷0$ʪne½š–aÊn6ã†iw™vÀ5ñ¡ñ{0ü_`XÏ2ärh xÐ^Ÿù$ÙlYSÝó×§mXC'RV%“zÝO㯠“ù+îv=WæŽZ­X˜õ?qA6-‡2¹– é¢&×–‘ë ,|ÎyõŒï<ÒL±#±@È·e˜ê\ûÁ:‘üLÀ½’]§´SÎf"@èÜù?±ÞV™"†N.éI¹Mù{=â­â^ÆÉG÷ñì¡þÿ=rEÍ6–ÛebóŠÿ²˜Ü^³ª`»„cªìNôb¹ÓdØÑ‚þ¹²Jñ«©xHÑ B”x©‰D#ºõ0¤ÙÚ¶£FèAl*@òK§Ôʱ«›Ê¤¯Á| ân«!ˆeÿþò*s¶¡Ù öó`R69€ZÑÌå!àךÉ8%ÅôÚnI‹ôH–•¬Ï@°§} L˹äoiæC€F¨ m4¤xQÕ‹8*sdÆÄõ`ä3ÍÞ)»Éì6Uþˆ³+˳imIQþU^·£»U‡´ ͊С³rMÙ—S–BÔüM t˜-{l_þˆ8J²ñ 2Ѽô…Og·óTsV¾vï¡™­HíL¬ÀHý¬‡ãGz{i£1.EÑî±"¬v»¢ñÐ¥P‚>^—iŠ%£Ž°U¹ÕY´ÓŽyÏUt §4H>¡žesóæS û~ÏîÞõʃícxhãKOñ&pU»Ú›üˆS¬’D±jH˜ä†;Ô—…Ù&W#¬L$ð¼R< Aá>^h÷»ºDäOîÝ+í€åÞâyñ½éK^Exbã©“:£œ·ëÿŠÁ·ëˆÌWÝvŒ:4;u35-Ÿ£â= ”pï¢ÌHÞ[°‡™æQ—&p¬Yå |íôŸ0ÌšJ½ C ŸYìèaqŒ]”†ðT§¸0ìÔèk¸=à„ÿÜ´%*¬T¹ÊÍÒ&\x[ÖTç…¼‹áó &Ÿ¥·ÃjóDdÆ5ð‘EþºáPèÀˆïA¿M;ˆõ»[uLc©r‰Ä„.ðÔ’,~ü*†¥å¾ kû鱦²7ßÉIÌ—ä¹ê% RÀ[ýö§dÓ)ð‚wá²Zåʑ،‹T Þú¢¤_ a ïóO-ê{·Û±q#ìó^c4äqô>ÿ]þ#šñ Wé„oò &çg3ô$€KüMûýòþJg+†MEÇÖtÃC×2ŒK\1äS%I¼45ë}Åx¾%¶=‹øSÑ ²ähÃ6æßæ°^ZT`“…ŠïzbãÆ|Rÿ_¿h©Ó5TïÞÝÚ}W#@R³©¤Fl;Vï¿w+(R©§E©rÞÏ;D¤Ýï@3¤iÒq¶ÃFêÍðý³Q—&{þî’ÎÕ„pŒ°Æ¥„]½¡õcrxËð(f döLO&á—í~´½ï8vÔÄ9謭šÔžÅ\Ô̼ÐÖ¡ '¸©ôøóz„­TJ¼Eûtû;|r@*áýJÛBHŸæ'`ôo1Çë˶y5ó ìK ‹‡8*žGGœü›Æ…£„cÑÝFÚ…ÎþÕb…Ç`qÛÙ#Héĸ—´ÏqL ³®±åÙÈ_÷Ú÷`׳‚$i’c›~–Ž6z`òƒ„³Æ0dûõr‡Ÿ6©à6¸ºº¤Rø€–kyEw³õÑYÆuÏàZž•–PKÿ(eÔ§ÊîKü›Á{ÿÅîÒ]õù.ÕŒ!`ðP}ë˜òôKõæ÷‡k|WÍíŒÞÖvÀ±JA‘µ uÝJ^ Ü–)D.;ë©¿x& Õ8Š Él8æày y~ÚsÈÓ…˪¬,Õyÿ!°¼3ˆ˜¨ðЪ°3´‚s­ÞT!rÕD¡JøW™º(Óçæ£;>fu×.dñ3}F3ú.à¿6)45 ê¼fˤæ²'͹Bÿºî ‡J”>V­¾Cé@5—h£¦&»Šõq’ÂøÑˆ'›Ž!úrŠB ï­q`W p.3ÇSPçú¬Ð¡‹˜S›j‚Dt÷€a{ û üWÿÌbLüM+É{.¢¿‹’&ú.-_+©ÝLã$ø4ޱ³ÓœJ–†n™Ÿ¡þŽÜì °„ŸŽ\KXOÓ!AŸãcÿå(‡A¿³ñ¥ï幇5G"å,ÉW¥Ð\šåŸ’㬦諒7/n„¤/Ñpw݇Óguü‚ÎMSì7m¢è€¶k3…¢IgýÒnÍŠ í9AX UΨ1øXÐüAˆMn‡G@†ÑVÒ¡ºÖ¸@¸ËÙüMìο©¼â¸XÌ¢šL¥Òîáÿ¾á>„´uNøD­càI„ÜÀÕü8cdÈŸ¢ÝlDlÇ.ÇÃêV0(l$a¡Ã“{ ŒŽÃ?LIáÇ—@ó$ñ ô­;ïX¤øoʼN½añ¾Rªoß@Ir‚~È÷™šwÇžcïsChwÝCæùs³Ož”;ü#¸v~Û‰hÁãb(FDÊAæ9¨8õ ¨r÷a³¹ìUdb®ÿ³˜Å­´+ Qey, sѬç9þ_›_1¿Oº_‹¹ºšnod“Rªt‘Ap¤ÈÀT›Ã:Þf¡à@£)£Ò‰uï–ò#†Pó ÃI¬¶gþÞ¾0’Ø Ï<¦qƒN%[«,øy€ÔAOw¡ È߇<­ŸÞ·ÚÆ>CÞ7RÛ8üÈz –·—ŽÿªQ+Y(£s©ÑXY±ÛÀåß*¢îlZrÂÑVÜ+íæõŒµ 4µ¹léh}'ÈëeòÿªáÂ~‘L·oDá©3×EA²ÚÎ!'q!5QyÊ7ãyEÖû …íÈx–¶‰•Žódjõñ<•šž•°þ• }IØN¶LÍ‚@µŽ—õ"Ž­±•Ü™r¨X4Š v¯!3‘Ëû@Qaaa-kxgÉÊw;ç žË(·ýãey˜×ÜÙx’§ò?œ QíZhßüPÛÂSé4Á* }v^õܤ&''¨<†ëÇ8‡y#‡çê:¯Lo‡Aç™…1¶T³•ìg1‰8ŠÙ»1´äµºñX©‹YI0©ÅKü„ÀѦa®[½l|ãeZË5|@™ó{ùVDŠ/bd/ar)êºã§wô]]÷û7nõ‰®+Ë*"Bµü}âvXmŠûñ¼ôuÈ °ÄÚDüJ@öäôXÉïõG&—Yy¸±ÔQTÛ! Òy¿áêð°Áûk%ÇQÐü¡Ãï²^{ÞëëVäç^dè÷÷À¥ K?i£õ<,c”¸¨ê3,æ Dºj†ø>Wz‡ò7gÑa|ˆÛ³1™”}Ãc³}2Ó(QTNãóPDÄ— „±@!KÓº£ÉR™T½‡· g†VÕa€±”»’ÛtË|DÖ¯†2`án…æçØö/‹íØ9kð¯‹âÌyê(šäx‡[ƒCŽ— éZi᱅r2Eb¯ùõÍZr÷Ãþ)ʸà«~¸üLªl@Ë8Ýd1·ÂãõÒe«E*!X4 #Øþî$ÛB“Xó@›ë”µ}iد·D”] ¿gQë2¿M‚ÚQóhí†ÌWXßá·À/ª¼éH÷•Ióœ<‰»EÎpÄ?ßEI¹Š›#7„ïÖë8nÙwzN%t_ÈáQk~{nbÈž”íˆ Ö»]]•`ŸŸ†”˜ŒZ<ZÙ¨cÇ·þÔ!žHÊ‘§Iå—C£+r\6ÇRéhz 8]ZÅÙpöç6Ëñ¨ M!Qr5ú‡4>´ÝßšV«ímûEŨðã6™ç—ÓíüMy§]e¼¯µ¥¹‹Þ$8èø…ª ¿ø¶¨ØX‡&˜.V1ïáàXc°õüN2wÏ£ÙÛ%Øžï'B¦=ô–üL® hãPÞÓês{=xZ<×´öwñ¿z;Úó,4ÿ9'PásÝì<Òp‡lôç­«Øè5QÄ6 ~ûý´ã=Þ&Ø1y3eÖ&N?çç6~……Ê|= Ée|R²ZÉjÖ˜ü]–Åõ—Õ·ú\ {6Ñ¡ˆ¥2ŠüJÇÅé´ K˜Ê#ê˜ÍBøóýÒ|k¼z?,Ó㘒pGI63ͦhë説­ºÅ ÌkH^/zá5ÚüƈÿK¹Ž…´Ú¿:ýºrç@0o´_IGÙ|…ƒžlÚݶžVk V¯åð„üÍÝû²3ô¥÷ö‘yÓ/¾ò+REE/]uúIw0fù3Da£@þHÿZÎ#Á>AÔôKkÄÞµòL¼l ¾Nö1U%ÛüÖtÐL4£0CCΰ·‰•IJ³ÐЬÔh sT/ã9ؤâ°õrP>C¸Ù Íabb|Ÿ‰_Hÿÿä%ب2[7 ¢ÇËY†úäœ%%$<ò4$fç°†P~®¾À—Åùm{üM‘³oôÖÝM\ò[Yµì ]×—ô|˜ÉyÖ—õÕ‰©Y!Kı£kÎaŽ ­cÈõ,Ûe²&+aiËqM6žG6õ–lV-‡m' d~-Ti"56f,Ë ©p×wÑE lÂèI`õo»ÕSY7èõÚ<æU*w¿ñóqZƒÉP=ÍÚ¶â;Xƒg"0 ~ŽûHºWŠÐX3.h¬Ðw¡‡ ©ü+ …ùŒä¢1Õ"‡ü­¼ö"eE,EN“H1ëʺ$fK Ç>8Üsö_pg:‹…k`ƒ{é XÒZÊõÜR˜2->»ô©âüLöŒ¶û±‡Ð9kån\íÝ‘Lë|Š[ïúÇ…°j´Íú´@‰©íQ^œ›f¶vÕ×õ¾'Xàgõ 0çZ¥°?Sæ*[ßœ;~"=Ÿ™ÁídKé†ê{OkMNóp°]ÿ"RŠô7‡8&`¹µ(;í•#D˜!¼íBZr0:N÷LË“—¯C8OÊ´ÇÄ£zržÎÆmçö^ЫCÓ("+Ç:”‚ä:úfþQ¼ÙÆbrø†¹ÚwÔš‰§ªõlQîšö÷Ò„è÷‹àò2½aÇÂû¿‰p¤…ïËž¡È­u”‡žØ~I ¯OggS€ÆýÄ ns0È™Jóòÿÿÿÿÿßýôñëíèÿÿðÿÿÿÿ ÿiÿÿ ÿHÿÿûúôóñîûóÿßðõÞãÜæÜêÿÿÿÿÿÿ”êüL­%87kÜ-³öÌXÙ) Ü¥w¥{þ ®+ºFp9†Tšá¡£*ßÞ8ŸïoË_¨zñxÿ’ ‹kóôÏ©„p»S Øþ(`~lHÁ…þfc…ºƒŒ¯èpK@ú¹ÉO|›±ìCÜœvlÂh.ÏL3†0·÷;&'‚yƒ,J6uÅÄ^ƒbƒoGï·)ª"~Pòô)=2iŒ3•*·F­Ñ5¬IÔsã˜kA«…wÃG[>ëó†óMñM."×\_:»¡35p»@ÜíCÕ‚nÀã1‘2bWYåºlüM"­ÂÛìNÙ>ù’ëG« sö+ÌC2²ÚÀp‹çOÅã c½†¼åYN¦–z*ÞB:Ò˜ª0lX™¬ÀÈBÜ€žÞvWìe¦ýû lÀ§èC‡¶äxH÷k.I,ÌôÖ«è2ˆHÎÝmj0ˆêÉì‡e¡‘KAÐP`¹¸°œ ÞÛm„¹ A‰5˜G\ÚÅë½Û7xYp^-M8äËŽ¯d&Ñš@Ч½®Òoãö†²m€žz—#„ý â»ååz?ßÝõBPž7”ïzå RÉîß­¹BÊpTEŸ™ËWÇZüL¾/$¿ÎXÊy¢…‡{Ý©k‹Z°:åÙ©^-Õ@´`PL õ‘Fž^ójÞJ•œ…™Ã¹.ªEßF€ˆËXÖZ9åÓˆAW€guãÚ˜42#DM{Fbi«¨ÿ7­Ú—¤B혵5Tuât?–KšEoº ÕÆÄP|s µ‡ dÅæ=:ÅF3…¢¿oÅÒ[ÍùTÌh[ñ–—Ñwm7ÐÒÔO£ƒZžÛzóüL® IR)S€Yá]?™'( IØ;ÈÏpŸ•þéúS`·E™ÔĨ²‰.±PÎÀ¥*]¸I-˜Y x¸_]sÂ}·)Ãõ}P ™R8<=Bv6è|‡Du‡ÓÞmbG¶( ”~„oF“Û“õå”Òd-näxeݶBxßéÔµÛ1âî‘iÜ+ªÌ2%ކðuiº"ÑšñÌf¶²‚™– bʰñ*)Ma^¬0€ª²Ø¢Ò:ùæÀ+$w=n¬#I¥(ÜýDÛƒÍÙ~–váÏ}ÅAx®ÜÀNAv>Ue™ËÄ ?IÑ`D£tJ‰üM îa¡ðBg£]­eíº:>b 7…4Öå¿l‡@H8û¶CúøbibU»‚¾gü±Ï–`鯌‘yV¶Üæ‚NÉŸÓÂ¥ÉïóŠýÉ‘¢oyï·ãæA8±YÓÓ¸!35îÛ†Šÿ˜í¼·°b*ïVèššÑV+õäPa'¹ïµPÏ ‹p„&c PT´T<Õ¾uYû(° ×NÎX H¦³Í×nXx¹%]Æ0ªßFGzœJkåÃüce#¼M¼Rg Pha±ÁQ‘;ï—6v8x%Ú5òà2!$Þó¯QàŠô§Q£€H"'Œ^ƒåÅÌÚ°_37ñ¿~ë&[Û!úd\nO Þå¹íDmX}Cå§×4j–aV§gˆVD¶YSÑ„]hg¾qîš±;¯ëh79rüÿªÈ5O¡ A+Ò(#$‹üC7 9E7,_òšÂD¾"I9…¹öõv„à\ç`Êb<{Îîá ""œ¸ë“f}®3ÒÔ+@²¤†v^Ä̺øÞ2wßC÷dó>¤ÖDh¼=pæ—±F`^sºäÆÏÞSÛÞYÝz{ý`òyúÉÍ’à¨üK=£ˆÆªl;ËÍžýq”'j@*ƒ2ì%íD=¹}ÜÓ$óeMÖñø!ò˘YúõS”®aÒíÓ·¾rA§w\|H•@†W¦c\âd^Wcå EU9‘7ÙÉaq‰ÿéì7uOU¸6ä'Í4OXX!‰€GÜ‹L|9°Ûô‰Ê³jÌTÞg[ceN¨ÝHÎØAYÂŽUêÅë’a°ëCð‹<[æXG†þüé–yj¼kŸ >G íb×d+O‘ó»ªMìèÊTT/ïÛ9úBE{‡²g¼Þî™Ï>i g¶ÓrPM¶„ó^aùX–{ƒK DQœ÷ëÒÜŒ°6âüNaõÍ©Ôã/§Û8ý,Y¨bêё쪹–ÑHoÓŒ<ÿ¤éA8|ÈŸsRŠAº@ˆ2äc?’@Z¡ËŠnù«Lž„òŽRq)?jIJ[¦Bi/•QÃ䫸蘗=³ÀCˆHf.DNp ¿Ëßö†èÕþŽ]—FvôW)JóKÂÙÒN:¿â/çi\’|°?Ú‚žé¯üÙ·¦£L hªÐ ÀÀ|@„äÁÇk²?Z…ýúõd¶§ È ˆ¦öÊÞzÚ¦ÔQÀY¨ã&mÕ!®Ð}Oí1û!ϬådEO5™$WFÔâWò<óžüÆh\ÓƒÁ2=täy?/2®_Ÿó¾±Ï¦ý2XíRuÌ—¹žQ2J©%·k¼,-¾éJŠ€ÏáúioÑÐëÔÚgq €ý[þ³hrÀÕ8VƒJ{zJÓÏvIªÀúöžã@’æ‰pú´¡4\À=³•"±Ãú8Ñíl)î ì&‹@à;úÇ„ÿÎ.âó|/³ˆ:Í â”@¯ ËsØv@Dh‚¬ÔÛêKôJÅâî)y«cÂçJu;éËvßuyÓ«‚qbètÂ,µ×ì¦!3;xºêKÒ§†Áã³×¹”KøÖ PRË üNaϰ"Lnø™ ±‰Þ|çŒônT¡øÀ;”G øzNhÑl=:ä©ü£à$L£SvÀÁÅøyj›_É=Žß;ýò Í`ž¸Ûpð;©ýO„8ÜÛåK?â4$V¯[?"áf`Tv÷7 ï§ sqÛÛ•ë–{†ð•”ñ|»WŒ_ S•áÏ~n†n ÄIÿZÌŒ#EH?ñhAܤèR몖}Æxã"’»\Äæ†®4²r÷ ]¾Â#¾"àÎÈ©^=BH‹ü¿ðØx_ðyo1æTÌâG#E´ínËÀÐJÈ]¼cjdoéû¿Š‡ü1í-yu½ß~€äŠ@Óă`¸/ˆžŸãû‹O*±8õ—£'ßÍÆÌãð1ã]ÁØÞ/)Þª€9ÊÀaEþ¤C­’›Œr­¶éÂÞÍï½ÚTˆûR¹¡1Zª ò*œ`VÙCûôWXäI̾¾üÁ£põ˹+’íVÛN[«_â,‹sQaÊhëñä/"$XáÂ(êxª£;ÆåZøÐm¿jÅïæ(¤3:;­VŒYÖƒöÓ|€œƒÞe'w"˜„9RB‘ðr+‰ƒŠ÷®=o²§§¬fÿ:ÝaÓa>íÂ;üÆ0«dM‡nþѪÊ6=d·w@<_QÄb¶·6œé6ÛA°52pHA÷የýBÍ(°½ñúM„?q†U]OR}žwG`Sºds„ü[CÈ¿m6ÔAëQï|X©;C=fÓ­V ØCÀɆ´F“vÊ*’û’mCKî[ºE&¾ù³B]_?30@#¡\ψ %ÚŒ.‡à• ²'y‘'ÈÜÖœ2£èú0\'Ö9ùè¤úßm„P± ÁÎÚØ,Ê#Mý§Ió9ÿÎe¡.å02 >æâƒÚ,¢‡V²Ò<…¦…Ý‘žëü{JéƒüÆf㸊µñȧ®]šŽ)Ò;5â@ZC#l”l#ûN»o,«-ñýá§±Ý!•—<ƒnuß#¬õ©²]0âËÌ×Ü5¶´m…üÆbr’õéX;@¿cËhð¢è÷]Ò,û¾ hmkÔ#‰¿u&Xå~²…‰ŸgWK(ŒuEtï8åaŠ à‹›9}5îìV".L¤ŒÛ ¡¶£êˆÎCêïe%@tߥf_UK,•^<Œ)mBˤðÓj†¿G†½qXhçA:Ãóßçù])÷ó Ø¡¶2™b›ëÖƒs×ù cNg•ÍÙ\c`¹ùªRf¿Žæ;úèAäÊmÍ„‰öîo"¿ŸûÄû{`p÷Wcɹ<:à7ŽÊ‹_íõ·¾d߇WÕ8j,aÜôWÁÚ5=ÿŹ@WËÚÆnè„üÄn¬l/Ò •bçø)¨(ûÅ–r™¹ÝõK× Yݪð,ö†8{/ÃÿǦp{”PÛªß\yq—[ž¶G.ôâ½3, ‡NÛ"1X\ËvƒºO(àŽöÎ2¼šò‰”ÙÔƒ%jù­B=Õ$d-?7WC“ ,£U¶+2“ûÍû^¯ÜÓazbt.`šð}°`ÏðKÕ`cs:àK6;CØe:„d^®®J‰2ƒ²’Q¼AÓõvÒTL(ËÚPáh7ÕʹI4¢L—«‚jZÈ*P_z¾ XÝ·ŸçMz™Ë_ó}¸ö¿«‚9æý?·˜;ˆœ|F­atÏE7èˆsýá–a^\ G1õ€b|[}óQ§­ïƒR0mlîTßÄÛ'cÜ'xÉ8—.9¸x€OÕä…/ÇA‹ÙÖü^ñŒÌô‡ùy¨¿À>è+Ò¿Y«V3õ¥:élARQ#š»€gÖkæ8·Ôß®ûuÉæÿý«ès©…ÇÂ'ev³›v×ÇÀÓd.2êMÛ"< ;Ro ŠÏúç³L!ãk.ãµ)wèR[%9aÄBËî|4>i‰z¹jÓ¥ PB….¹Õ«± Ȳ–(?a¥Ë|VEå$µ>»;H güùö§÷”Šêõ5„€qg–o?,ð2äclñ$š5 Õéw×ïÖX$±8NnMüB¸q„e:ò7å^üÒ?ƒ{Ú<›CÇôAýcMT »_pÁ–¸ó»Ø…ª%¯2,ŽÖ2f rœÀ%¾ó&‰ ^kjLgwE[Fþ#y·«]œgãõêgŠl€L{ aÖ‹> †Ñ8¬;“2íÕÂôCAñHoéàõs-60ôI›‰J\yGf ¤š)M¤OjFÂ2kˆê–zÖ̺ñvw&–@Gc3û;ãL¢bÐζÝE#IGu–µx^›3¡R!;f¬ˆ*Ë»D»ì ™ŒøVáòX`ô&—z@Ê8Àî¾=ß+VjÂKYšmM1ÀØm›Ã²xÒªÑBÎöŽÑ#ò¯¨[uÆ2Ïmýîc3νŸü|·ŠkjvtÓVáàÀì2r®H¥º5‰JsضÏG‰…C˜aÈ&ÿQU®ð}ÙÆÚ%ÉK qJœ™8"LN0Ÿ^*°öþß‹Y€Pg~‹&qHg$;$òj·Ì¬sB l´aSðᦂ`·`¾{¢7–¿êæÇ{°ÌÃAõø…LðoÇǰ’+tÄ÷$´MòwÍØèÆ¼$ÅFÄ»ù"²8iu‰’ÛK6Ñ3^M§$—!Ïp`ïqÉ.欟V‰‡ÃŒ%oA1ÂÅÊú©ÉŠÉÜ6²Äkƒ…ßbå .@ÝõÓÄ]“%‚Þ•ÊS‚³Du¬-%_Ñ=[ ÊSù:cÍ]Q>Êé䈷øíŒ`>õ_d[ìúVË…¼jó:é•MÅ6ÿr€ÿ¾n¥©Ö©ßµ>aš#S-ÛMÓßÛ¥vÒ–-ÞÙ¶¢µF§Â¬à¿'îÊõ>¤=Þôþ¾'¥ü5f툩©3Ï­—6÷@˜Ïæ²_–¢ÑbÖžß–&‹ç£Ÿôƒá)V†1Ÿs÷ê ‚‹¢ôð·ÍÝ‘RµúJH‚†1TPá)¤!ÿ,²­ £™×†¿ÑÎö?ÍEDWÛɳoƼ”§_½mT÷š+Køzo?‰(Uןšð'ØÁQ¡çÏÇ׋6šåŠJ̱Dã[á ¸£D'A¦¢G›àw™Ð8_L Í‘bBºÒ¼o¤ý{½Þ® ®YÌÅ'8“o÷§mœ³œIÇ0¸Ž=hez½µÍÏ$ƒú¢|™5®<=>ù¢ÙÈU7ìþ¾|ýùÓK ù7K·NOòICšèv^}ŸÓ´Úž¸èå]f‹›G²S—Rwù‚EZXË7¨¸ØMË`?ÓjbCqÈ`ÏââÌ‹r_5`!sæžÙhŠ]J•}ýŒˆ|%d!lÍäû‘¯Œ±ï'm¦(ýIb~·¯7$¨Àu„,w#;C±ü¹(-m¹°nclRR/xiÌ ²üL²QùVðbŠŒM>s¾¼è/ã„àç½Î¦=eÄÞ÷üDJDþ cG=rw.¥]ldÜšú?ݰK– BS sŒŸj_Am•wµò®Ûš KX©ÛlÝu\«ŠUjsÃ~»º¨òßÏ-ØT ú?Á߉DŽˆXúQëð†!û+qµ0«õ‚©@¸“÷ ¿DŒ´tQ£OŨ¸ök"V&mãY=ß.ÔÞNµ¨mžR_×| ÿ)€­ŸDJëÈ& ÀͰoÖµ‘ªã)uŽ*ØÊ€uWSsG†ç…ÍßøeE¿Èøó·¥™P(Š–*ü¼íÉ|KN"(ÀŠ_¢L#.ï–º"òûY¡9/? íXÞóÿV3A Yeg†ºæ,ßÜÂÐðÂÖ5ï}Ú™ªÊ_³uÂHñ4å‘:ä’ôãæ@&Äcáí?¨“ Ôq¼£dìîú ÑpŒ™•1a ð'ÃZu´XŠù'’àp)¸dâö¼WÊ.‘ú9ì%9QÖ\ë°Î·a7>xªÖÃÞ&½Ùއ§-2)`0b¬¯Õ&ņ?³½.p._-CÛ©ÑÚê -–)rnz´g³F%€—ÏRm<ï¡“oä£De2E¥²Æh˜ƒüM('Q‘çC”@àF­;hÙoíÆ¥-^ØN#Þùëv&`˜Ç”ØÀPȇ‘ø€fHøÌ’b_–sº¯ºEðqÞSªãp–])<ø|èÛœÇReBÞ¾‡=êÝg ^EŒ«¾ ø›ªeCT¨ æÁ—¤()ÿ] .fx¹ Y×ChOZ¾å} ÙhÐ[ŸÂN/Їã#Í‘|×̨.4@mLJ¹iõHð*½õLc‘nCXˆzàÒ2)EÑ¢mýÊÔ±ÉÞJýb™¥!=æÏ¥‹ú¢É¶ï´šM¢û·§m£+ü§>þ9 pôÏÒNß/–P6SùNxVœUlX‹¤[”Áœ\Q™¯¾ãþ±jã0}i7M¹–£^à8‡´Dh`9ÏÁÁùÐß)•  áw©w´ïe×Â#t¦fqÁ©ìöUã@lB ìšÆäÚ˜ÌMh÷/Â/]±ñúëçžc/ß‚£B¼¹P¬&2zjï`cíò§ B-ŒËî‡0dÕçÝãÍf3É›7'ŸÉ¢ŒÑ‘“Æ|™15»‹Ña¹™àâEÓò™‘ϨKX>R´°U‡‹·)Ä«mçkàY[¹ûž&/©zküMš T>Í;™¡¥Î†¿†„ ˆžˆ®/W©Õ4iýß”¡Ü|ìßCþêþÃÖÑ7ø€–G#ª£³¢è\Ãfèí2×–Pì îRbñÑìGgÍÙ˜$ã/¹)§*ndåø‚¤Awtô"xDE+ÄqTy7D~¥,£IE옧’=øíþ†%BbT"lñXnŠ 8GM syq1 (Èýœ´ëuP|‚¨ìu!ÕÒzú¯³j"{ ~tX•¥òšu™óùR0<ŸJ–U±h–%Éì#jVÀ«t8LP\-±^=UºŽ“XÑÍ¥…4+¥Dˆ+ü½àvô¿ÅøKÛ$µö?×Èìåï=ÜáP4¨†íE“†Ãò䆧jÅaâM VIT­ª9Ö,à9d×ýl-…¸7åJ”F%ø©Ôvs%[*7XT ÒÀŽã=RæEχ÷$°ª@¼m~?3ŽÏEʰ)ëá¼b è’M´¨E\!¼Ð}'ïkû´‹a:–qL‚›S×49 x­ùðµtÚùöJÙê«{§;¬Í‡ùoSÚò$KgÁÚ¯dø4y²ß^wø PÛ^%oß!ò)  ÆQ¶/©d®½8¨P(çlºW%ø4(º7øm!ü}bœ=\ÆìCìÖ‰Jü`üxÿíqt²²/¼‚1%X.ÞUR§M)’ÛKe;y?p¤@Ýý.BzÝÙO?:V]˜]<§+Ò”I¯Ý´˜{íÛ959f^ ©v¶~…Âé諤ð†qÞtT‡ }}Û1À vnÆù³ÈÐÙ†úð½l.l®<²˜]0ŽêïÇ¢æÅùE3Ó_ÞÑŠ0á&Ø)/$LÖÉîQ¡ü1GÅh øêf:ÇŸt޵p9ÉðºÒ݈†'fíÏìèêÑl«øh ^¹Èß¡˜÷ƒ´|^£ÉÕpÌ7—¦ŠiBVœË{h¥ÌŽ{d±wÂŽw=O©¾ä– YZÇèÜvB²âŒ·~Ïöu²°`œÄaöŽNö_1Šª\|=íEFpâ—?>QÂr˜5‚õán­:$£áW™Vþ$¯¬i6?Æ,Ø1NñW[íÙé¼”äyŽj>ø¤Þ󢇼}ÇæöŸ”2@‰k<‘•…³\47hÜê=0;Ñ5k¸û§!`ŸüD?Ò§}}màÕˆiUäh–¹Îèã’S›W2a>ØYád$hé>)‚_ð.ž6°qY÷«‚¬vþ _Œ0†'R>ü‘ÿ(–’"“HhS)—­q’­T_aè–ícSVÐ0šEgéþB÷ ’Î.N£9?,ƒùHežx@|Ýœk§ÈÛE3¯vî˜é(¿Ža¦kæX×q9Ûüç¸\4OL[x%¯©ÝM*<(×[It1ÅûíDƒÏ»¸0Aû·]aÐcù‚­p;çS®¡Ëb¢?ã£Ïœ„;$Æ7¶~Üp”“^‡ªì0AkÁùwÀTˆ¨6ƒå¥s:TC_xÑô‹ìÛPæ`u¼¥šFãj 3zÙ­þ½>~Ü /î3=¡ÓQ—±üXÐ’ËPÔh©ùé²Ã¦·eÐtë¨èW:Í q=øOÿ¸ªf‚ªÉs‚ìO ÂPë‘”ÒK\ùö´ä œ?ª’õ“Du=ëä"¸a‘œöÒÌkת¯ ‘ÈóÊp#fO]²æÿ&ß'±Í/ùE,Z&UçYÿ›P²hYÝÿt òÓÓ6ÞÁ œþ=úq‘g?dÉŸµŠ)/å6ÚÏÁ…-·ƒÚŠÅõás-þi3òp.CjÚ“Êeµ­ÁòJQ½XŸ¯Aà~©Ì-ÖÏì¶ÔÔȤ¶ö¤ úÛAïzíåµÈ½aYÀü/bý|ldÖÙO ?VQѳrÆ/ê»ëãVúg¯qÐÇÔèÔðhÚçF9=0Òu`T˜¤÷[ìOàœÍ7ð5šöë­Íާ ¼{}kI¥Ö¬²ï³60žÙ/ãk 3ɆCŠïµœcn˜x˜«VðƹNôÓ ]@‚ŠYd•vj5W]½]QS°ùYÑ>:Aæ ñ5µÑÜUþVæL<* ^ôqèv¡âºã‹^³TR}I}>„G—Ù$àFiè‘´®]SÆ>ê1 ­ê³KYŒôDïPªüMUsÅõ å+=ü¡íávAcÂR@8cw€užˆÁ‹ ÖÀÎ{‘𨭻tBEôOÿ ftïåBÍ·£èûÚ…U©MU“…ö¿Áº¼OÅÀ'›gYq›wŸæúkñÆUg £{JX—•좼l4cUŇ¹Í»y)N a¡9+æÆb Lr?I~oˆ7åéQgóuz;eÅÏònÅbÁcÞX‹ÛD?Î.EV{”}±a‰³Exÿ¼äÉtcÙë0HA\iÕ]û5q}™ÊAó­MV£èón1‹ŒŒ üÌáßBUQ¼ ×ÒFÝ;ùÚy×Üz>á³´óŠÉ’ˬ38»’Cjk5R Ž…Œ¶Ë˜àˆÐ¥ám’ÇŸC<”ál7ÝM]DG_J0lo‡G¯[ï­ÁI¥ç²E¸mIËuéCªÇM(úBê®»¤²›pí¬KÃZXŽ*ØgdÁ €SxµË 9\>%†·bñ.Ó½¿æ*¡c‡ŸŸb Á‰ ΖILYEöÈØrjçlPØK¿Ñ‹Ön›€¢_H‰4ϲžj©}Fw8üÑõUJä°öj·¡Œç¥ñ]«ø%ÇÇòø}°ž6)i§j‡Ø¨óÉù¨«¾ OI×NÕªÙÿ–Ÿ·+ÌKreĆèLêh’žj2€ }W¶/-Ö ©°JNKŸjM¦×ö3#Á²ÊH“¡Õ÷£Fïq*ìgQÀsçb+Õ¿ù+¾„YÜ:~¸ZÙ!›q‰âSv¥Ž üuRôKŽGà(xâ(n^ó„)© Gê‹ËB®/Qxlý][PÒÌ6ŽEëݵ½æ²´4jM‘äã$ãÙΗ~rÑNÇY…×ÙüÓ5lW˜MÂàyržYæÐ¨Œ€tÏÓmºkCýbyu®»ÎÁH² ¬~¶]›¼C£*@SO†Œ20“Œo¹]4ÉöËNsÜJ`Ïf,vîeÛGú%<`"ºö4é6®i Y ºö$í‘o:¨¦Œn@¬@Ó¿;ߥëx(:WÁR |”=K~çüý….1Öl?c/õÈa™¨˜ ˜'—ÒÈpÝàÊXú’ø-Å2y÷%yÍ>³y Ù'­Tžb%î×OjÌJ¿ùÝHv\u1ç˜FÊ©¿Æ«¬ñüÓ1?à„ÀIú}½ùN<²^+b±¥&A틾¾|ýH+¥æÈTµô>ßoPl `ÿk²!ŸÞ€f>3H³Ó®¸¬óc2lAWñú‡,j´Åf´yC®¡©p„°Œ#Õ\ÂôÅúË“Ž$/zÿÏAqÛÒñ¹ éýÎÄLã¸Û9¸ó/}i¸G•¸yØeÔ_Ú ¸ÑfiŒéÍâ+”+áÒßb›.4Þý4)ޏ±Œ° 1h+Ï$&%¼ïØTqD: a禆ô ª€ìâg5òÈ™õµl› ¢«fÅ¥·4 ö¢ü¼â¤…PÞ!$síU$‚$«Vá08dÔhЩÖ}Ô„Fe¥Õc62ÄÔ‡4ì^‚G+õS,Is3>©’º±±2x:+Æo´›r`G†d ÷$1  O½Ö\Ì<‰Ó˜Õ- ø2y-U}ûcŸý[ôŒ* Ù2áA³ÅŠŸâ·Ÿ˜°¬èŒÌzªÚ)áŒNÝ+Ç]Ø…Å"…Õ¦t¨_Pá3â¿…¢áu®fˆþ\zåÀà0Ë~SPÐöeãË¢XÏŠ.8㉋4ƒrúÃJ@oÍ¡sÀh«*®Q¸˜Ëûû}cw „GUøUò|HXQNð®„,EW??ü¼ÞÉð ÜÍÿ¡'6Šz²•NQÿ×s,Š6Úì²ÓÓ½R¨‡${óo9F7`¿èjóuSWñ…MZÜ÷´³'8®ÖµÓzzâÐä0À97²™j›<'´(G‡åœh7ÖFìêF¤©º Répóç­ÈM£~æFjüÊ}ÎArƒ¾à/ÿàP|…éËB÷ØòŠ™&ØHi#bý)~–„ˆ'v²°£wö•$™Uë\›Áõ«Tv‰÷·ü°°­ÌŽ&­°LJì~‚’¿s#ä?È“2û7O•VAzkMçѶ#ÃrŽÕŽ/Þx`Cv¨e¾ÑŒyXÊË ËE»ú*?üÓ5®9#öqHwj[±¿ý´J&ÓUÙ3ãP¥ÞÏüJ*Øê¯Ûo.?×ͬçÈ¿Âdž笺wC, §‘¡:ÈXßõá˘Kþ9è ‰ËÜÈûAAÕ[±£þYÉÙéŽgЪИŽh†v(×Î RmgT¯\n$<î.‚‚VµŒÞöHhÕV±³l”àlé\©#ûCvs¡„¯í ÆÉ~ñ\8hl¬2-h«‚là?á­J¡áRäu^ s¶Æ£Ê^ ûÒ⹆c¨x—!܆MM‡ro¶‚ßï},Ïqj¥-.‚'óÛ¤Í9(6’I=Xnö³ˆN{hÛõAüÒ>£p¡óq à{Â%ÁLô&Ñ+j¨"ëì…¦g£SK]݆mÞjVæË“C£Ÿ/éë—§ô¬ê²(8®H=€›º‰)Òì­'ìÛPþ®Ú8œ6t$G§ÿF&Ñ’øüÊñ‹QiC¿‚E§eµô‚¯ 7é}ÉENFe¶zÌʈþ’ÉÎäB¥wÁ9 ~}D–‡cM.$¯;ÎQßÔjŠö/q'Íò+ ÖáÀÑV3Ñk¢<2«efÐ3'Ù®ôÞf(Ö"§öhœ¹ˆ|éÞ v“DÍu†å+­”@ûVU‘Ò2ÊÆ42¡ÎOöÊPþ• M –ÎÝ&KAO†i‰Ô2ÝìZüÓ6‘E¡»3;9ÿk ¤æ(cóUÇr?v¦†T©éêU;’,Úô&—ÞrÆC÷âûö8 IJ¹ô«…2aiÕ.«™ ïs ÿòÓ+û¬Ð‚Àm= ¬£sé"öôcfçnÅ`ôVY«×á¯q²ª×ÍúbD¶Ö½Lú}`H§Ø²Ç>LÍc˜§„cÅÝM‚:Nd1fÜ'S½ Aö·²IVÿg£ôÀ¨³ß˜kY5ë7®ððç#2}õêc^YyŠô1Ë‹[¯ªœêO«N ¡fmf€R2¤·†Ù1éZ±)™³éEп´‹ךƒ]~~ -*üÈz'œBtzp¨TO#R»üë!{Ûÿ0d>¢¿)ãiÓ9ŒËKy™í/¡ÿa Ps:¿&¨ÑõÔó,1èŽ-‹M¡n´'ÉòªÂÙãâ“ÔYP'ÿ@^±®vq«t÷oà18ÿ_7ÕôyÙä`*\Åœ·‚?ºï‘l?¡{‡ fd ›¦ÁçiÓ‡_kÂéŠ"'€e”ÄÄŽÍ0³QÅc¿ƒn±ƒ2A„}ŽÑ‰TA„ðˆôþ­³´A>Ä €?bR§£;–¢ä™ÉÚ `Â7 gôiÕÎù/ÙJ†¸x#8·» ¬{cá¬õ‚o3£µWâØüMDâ€d ް5R˜Än ° §§.M€µ„⬖“üù­ q¦üL‡(Ó ¯ Õº„!þ\fгE›Ùa =k׺x±Øvn ¯Âׯw?˜‰C‰*bÈ™Tt¦¶x´Q!µ§âãä‡akµ1óÞÅö·)Ú³ÒVÜÿ° R4§?"ü}VWŒ·¬…üœk?(;%€fŒ Ú£x•Ôì~z¿ž··7l¶ ¡\,ÌÀKÜF®Ì$©­ÐÆ!BŸc­×u2VÉ?@ϲmu¼W-¶`­ŠqOëócâ*šOggS‚ýÄ n¹u7òúìñéáàÞßÞæÛÛâÿ ÚÞÚ×ÜäÞïàÙãÿÍûÿ øÿÿuüóÝßÞÛÒçÞÙëÞÚâÛéôîüMc?؉”jk¤—”š S¸{Ež>Xu¥ä¨Ù [)IWKnª.ýò丟MÇ‘ŸiáØÖ†nv&ÊŽðLn¾L®ô}¢÷ÅÈhþæ®±~Lî<âæã£öòß}œbCO_Z˜N…‹Æ·œ;¯*{xL|ÉYr}§X™äµÜÉÖL¬!|m֕²ܞ¤$]CÆhëpÐgV<j·nÏÖŒ‡áãð!A±æã­s¢(ïì7éƳ÷ò Y¢B†ý²eïAÊìmõ8®ðÜp ç×?ç8ìz—Ö¼†Ý3¬ÿ}Í7«Î®eüX$+¹p®¡äß †Q,ÿ‰‘#ÿ¾Ú½µSVõ«•žÊ#yõ H.Ì!©µHæž»c–àõ-¾ºs®=¶º4´ÞÜ'Ø•0~0 @ É.óXó“%+îÓíµÐck¿5¢`'ˆ]Œ¥4\,úÊÈ&È ÊÀÕ»ÐÇ&‰ë1@¾¨Ææ-Í6V1¾4¼@ĶšKØP¤rì]œÜ׸ð7JSÂ2+êØV®Im¼àÉ€O‚+~¸³´öbÆRA [ ³µÊ”€‡,‡ÃI`¦:¸f·ñ]õátqçúŸ¿C=kJµ»=C{ÇU»;gÁטPcPü7 õ_ôB CszátÕ5ëò!xWJǾ|<ˆ×.óØ]uæ{á ?ÿF™ÄÏÖTbVi"ÝCz: ók\MÃQÌëiiSw£Ö›Ö!šÖó,heîþÄR9aP¢ ¾4YHù¾‡5ÇÕ²±D/ñ/QŽ´{ihy¡9=.ÒHáVP‡Ac’ß“•`*Èÿ‰Oùu¨³e8£WˆaiU³F”‚ó ±`#sé®ÍG£™õ`"x"õ¥÷ź†þ`0~‘pËpsÆW_[gˆHOaÖåOë:xˆ•‚€3ïfòäI ]dÀµ®UüLÁgãÔaK,M^ŠÑ$xF2«'îÂ|¿ ‘ŠáÁ'oéš¾B(ù»$ÚXí sª \^“0©Å™ebl;Û(hŠ“-=5ÂEæ›?Ù‡yÎaXI&7=G~B)á¡™›_ 7‘l…¤Äo-…w”=ÍerôÐŽH9µÌ:ø®ížvÚΉZ%ò0ó)–õÙTåðàF²’§ô<ŸÃ€>[³n¸â64ä^“ï¬Á Â­U²”|kXºEN«üô  M<ޝ,oÈ'Æ—Ý@î]©t.'ÈOGXÔ9 üm&!BY? õ欌‹‹DƒÿŸ”üM+=ÐeÙCåj¬¾˜Ùlmp^’:c?\r¦ŒÝ9„žœËgF‘#ì…½˜ªj4ã£+U”ô>X8ñÕo?°†^ÒS×͉“ß^Ûui½ÿTƒ5´Ìg–j_Gp&u×§ˆö {×Õ¹œÎ$û°[Jíýì¶hØò(~&„ðÙE£q€z¦õÆÏá‚¡.&Wg—kçb3™+h¸xuŽ˜Þfщtr·›ÝöÊßí`[2ZQâ8³GÝw®ÎÌQ_ÍÑ.è, •×ùQ`kÏHᘡÆH°ÉÒé]u¸Ðxî*¬ÚüMb¤#)Õ„¯-gwïjQ.½U"3¶ý6ÒÔ/²¶Š´Êåø˜,»K[t Þ¼ófßÃçݿի[6‡öMИ¥Æi-dbš%iJÀî‚Ô×sãaîqp' Ü73 N4¼˜dƒçJŽf‘Ô±Éß²>ì±cÎ%XOwx5liVÄ=› ëhMMµ²BäaGxg—iáAŶ®XFÒR*•sŠšk(ØÃÚãnc—©¢Œ¦Çpòuªl]ä‡všæ#1E++9ÛJ.¸G5“èa–F •c’mœÝüNN –ü‰scšÉ2pË-m R.Åô·ýÁ…ä×Hä­5Š“ÛmWð­¢9ýe§.¨ÕìjÉ˨ªqšNyˆ³‘OO„aÝ«öµÐH·æÉOŽŸìi¼ûUú”F ŠcƒBòõZJN”6Ñýeúœ“°i 3÷Y˜„ÐŽ&—3¢1s°c('Æá8ÜB4˜)KÕÌ }«Ö² ÍþE#cé±®6¿À'Ø&zJÐJàŒv þEb³ù”2Íìõ°GüMvËx›“ !¤¿ ¶6RÉ6¹O«5ÛXIà$Ö+nîwôèeVF7\îWÅåG”kÙÔ{xu¾÷‡€½ß¹‰ÏüÆ n€^Ñõr`7uFpܹ°QQõ“=9ëÝ|³Î+¼ö2]qv.Ó4qŹ9®ÞËi_4¿îx=X€?z÷Ûò¸fcqð™\Ò˜}¡Ì©¹N3|Ь(DÓØÈ¸Û‹%ÔÀÇj-?\XéÝ%CmÖD´5å輫‡]Hz õC>4šý€&ŠÕ ê}oDÆÇÎÍú»&=Q¼pü5c'1Ž9%aפ¤)»ÎŒ¶>4À)+~½6Ц8ºM#F^Àts“æÆMË϶mÈ»íüLCÔMI{ª1UdÖ›+­,Äo]í ~RÇ‘œ¬zCÑfhi‹ðØø4Vp'Ý‚A#«éæÏ  zfe‚°™ä .Y+r…¨\¹õD—u„8.úE«¦Ò-KùÞ¶*E¹…}˜¢Ï„ÖI?xПHšà×ÁèIͲI&±8T'P骀À‡Æãõ(ÔyÚ¶kb9XnÑö®ÿSÐ}ä8Iu÷üM™¼ ÌyCaFv©ŒŠÙyYi*RNBëÉ9Š»aÙè0­}&ÊRÙš>5 Þ¬é´#ÆQiÔi‰ÕV,ÊU0}xÈ4AÐqyÕ÷ÁÛZÅøU-¬ƒôÕaˆ‡÷v^;|ëœño-²-+,uPŠÒ“3%¼ÒöΨšE1ÂÌš8Ì4Ûk¦¨@ŽþÞe¬ÅÃ,ÉZŶïPežÀú<¯Î]lŸ¦Èí0¹öÔ5Î"…hNe˜çž˜úà[öž•IJ‹q ']¥r„%zQŠçy%Hº¨Ö*©>ŽóB/'ÊT´)s±`–ü5&„ýN2Œ•®£¦Ã–LÉ‹Áî¼%j˃õHæX²¯8ŽMÂãlŒe @pp)4ö£%-Û©h¼ÓžŸó@@0ŽÚdŸ‡M™Š )Ý="üFÝtÔ¬Ïgq™ƒ²{¦.›òä 𤗘èêÂŒƒÁ,“|B!-"Ë‘çDïH›ˆd+Ø“ êF ¡G^Ó–Û¯óލË,—rÞzxMš;͵Œ¿>GÀÐßÐðÇÜPð»å£r1ÙÛLe,ê£Ó»`ìÄ\À$ïdáš›v¡êŠÅÙDzdU¦?¿‰s¿s!žç'ì>5Sk¢Òrï©:ɹ'„ùÇöeˆTZ»µFCL–JzÜ]20Edø.dùÏœ+¨7èÉüM";æ\¹¶ìü}ƒ¨OèhKî£Rè{ '¶êq{ ³” `il‹Ã3¨Òh»`-˜¯ï_R­†{YÃÊYì&ë«4|l7”+ôh qH>Ç1ÜœŸÚ’`æKh™Ãþ*e%T]eѪ,·ˆaôåu¡,’R4k“¯n–l¢í“¸¨ë¸ŠaWèË&›6©/Ž9cƒåÑžHÈëóϹëañ,?ŠH$¹)Äbr ZQ%õtýOÉÐw5 á>Ëe#)€ G’A—¸ZgÓ­y;JãÒdÐçÇl.gÑþü¼é-SO.Э&D©;½ƒýQS‰Pr(a–Ûæ~>¿Ã‘)I1lŽ«ïø cN)ƒÏÿÈ»,ó¤cºzH©ÏTæ‘"H,ç4"ŸE1l0P¬OS8k§f‹ç¢9½ e"•ØEtÀÍL/û“-y7å^4΢dð>\g…&‡{¨ Eü0HPZÔ([„ÆH g‘|»ÿòiwìN¾aetaH7_ïñõ·ÑâÍØ˜-¾„1!Ï{qgñHß‚?Û´ÛŒWe/¯ñ“ÎuÛ]ö¿Ø£}ˆ~Þ›J§ÚŽ2º\üC¢öç; E:PÂÜ)¦üàÙ*Ç'ìI¶Ÿí,¹Ù³©Ê. AÄV…$´äÕxÅŽ‡óоAxGû1-nÜ—h5›=ÍyŽŸüLÙ’²§ÜçõÛË‘ë +?ð+¡ÄétE*5.½*aŒf”¬SÆ®{-VÈ‘H®óÊé.¢SE)äSáÍ—XA‹zÅC‡dzðô"‹þj|›FÖr¦½­îÆúÌP=xؾðocª*¾ôÿ¤jòÖÏb×Úz©6v"t^!â1¤f«Ž–îžus2Õº)Ñ” J/‹ÐOŸÚ޳4˜rk@Wlää"ƒ>ðÛåh5˜ àF‹ì²Xù|TÙÅ;;ÃútÔ?gäqtçU~Á¶ö/n»aGCi@tQú,›üL¾ƒ6FûЙ Ð× Ë/Ër¾©$‡3#‹Ž§Ž¬‚Ð!¨íg2  IyÿÉ7 B¹×é\Ćá¬Ëó¬ËàÚO.¾ðç5WWlFHu•c!PB7•Ô»ºaò DB3à}}GH=ú eK¡#ÂÞà¶"MȨç^N/µ[ž3.£Õ_„£ìë2%ä/]Õ?N°¼%o_š5ç#U¤Mñpüg„æùIëÕ-c)Âhtqê…ZÉÿKp¾:nP?êYüL°/Éf¿Té:±2È2`#fŠ«Ï0ÿô_µÿO°KI Ž—å§^ÏúEžø¾±,T+ÿGè€y€}‹BÜŠC|g;þö\²u³ßâ âÕSk2×ukE˜*hõèÈSúnpAˆÂW«AÚóƒ/2î1“)%êà„Ž' f]eJ'‡ÏA1Œ-~M‰>9Òrxý2ȲéëO 2RpoAƒTwêã$™—Âåðá‘”]Vb$ †ö‹)À™T]‘ŒËnŒ)øšJ@üL¸…šÈ/Ùò4½ÁPPÉÆ=?÷ÜÊïžwãUÙ_sRߺõ’˜/‡V5mJ¨&–$˜ä·{>B«Úlx&>ÒS%2øÈ´mÛÛ%hŸŽo…² ?àvÄúÐú-«ÄjW7† anãd|×a>xÊˉ(gÚ¯±é+¢öº±„û ¬p¦?“·vcjŠÚØ(1ªL‡@â?·ho`¹®Sh*÷ãÝ^…Áž*”¬.Ïö² réÃ;âUì%}Œíæ;ªa ]l˜‚¢b‰”;ÜÚÑLétª c†XëüŒÞÊÐŲE5þ2Y#õF?£ÛÏç‡SóåT­­™©ìË›’®úKWÜ?eÛA¸qR¦$ך…Òèm/¾^óR¥zÔÄ¡ K1ÛL +âîqì¼]@×cˆ`Þvvr{\±Vˆ{øµÔZît=hÜyvóÙôŸè%­h v)åIòÁª:‰§bónâ¹ÎÐ7îsRïÎW§¡KË–%å,Êè÷²ÚßÿÏvwÒé²6à#Ø3bã^ãë÷7´ÉE¾ –VšýΉÍÞR¸ïÌÔæ¯2“è x±jÊü†o†®Šß;É"œ›ü“ý¦GáÊEv!ÏÉä «&<üã÷AÆäÕe´ÌaK‹²)s1ä´…}eì–«™wÇq/£ðH­¦È{²\\pxRò!–‰xsv½m簇ǫےØ+Ê¢X:¥J¶Â¡×zCo­ýO¼ýGûwÕÅB¢ŒB»”*(QËJüן‚P&Ñâ« 4AÕØK(ë¾23XÊ9Y0®1 ¸Ïâ³×ÖfXý›Çhú×f:(+L éªü†(qa,ýxèy«V¨D¦­¨ìDE‹_9yóa>2η|&÷šàq>Ïá¹÷’ü« mvâZ–†Û{ð,‡ˆeÒ1hÅ=ü¨NyZ×}•‰µ #íùYŠPË·§îÉÁùz¤SÓ£XùQØØ‘-%ÍbgÄÛ…ðþɃÊfo7‘æš°™M€z%}ûêg³:ÿ›V·é¯@Âî×ïåHF[Ÿ:Í%WA2)-)ðF+•ÀcÈdp0ýìš(„ï;ìÈvùn7?옦M²iYDºÀŒ2Ùãs•Bö¢†|jŸlÐ¥9ª“Z½ (ü†krn’Œ†âA¢x®*N¾Þ(jþwº ‹‚M×¹®qLfÒLa rO†Q¼‹¨2Tž$,øoW6‘_­6ЉáLËO]$ONàw)¢Ú]öÈ2hŽ}qã„C—ô‘H)Æ’\–árâÿß=3aþÔxõŸGVªÂÞ˜Äaà<ß´1s#¢ß+úü(/”ªù$÷úÁù4§ó?r:;NԌЎ¹ûö©¸´¢<ÃõÛµF ¶Ò¾×ââž–ï´ãVí'ô•}s%½4hI©v²ÞÑ~à¥(üM-3…·QPo~[ë:YxdÈhÐ-¡»Úä c¶ÆKHQ¤ÖÍ4Ýczۿ᷶温}Î,GaÓÔò"XאּŠarÆçTïç‰C4®¼êÁ‰e—‘EçñQðNo #ŠŽý«ò6rPROkËÓp»§jàG7é$Í ½[1”ÝÛÊ qÕçjÚ}á!""JÊ[Ü-‚m#—¢Í& áQ½æ)Qu3°‡’Üvˆ„'õÈÝO4E‡¶›yëî\+n§PW±`ŸW@¬+Ò°%ÊaÒüM'J-?×,ƒ'®æ¼ q â›úZ©±ÿ%ºÄ$6‚„˜%¡e—MúÔAƒtzd:µþÒnàNXŸHB3}—Ìþ8ø‹¢è¾ûÎj±ì3J·5M¿ü’ñÐ7¢ üý+†J8E10’#˜‚Ü]SØ<޵q·]Ÿà~“OlÝé…2|È­nY[À%/’»œ‹`¦íÉOæ’J¼´ƒž~3|ø²@ºtË NÝ{á{eœÆÑwˆxAb@¬uØïG>mº(ÖKÍE1¡Tªyú÷g5ÉimÔÈùåÅ>ô ¾ 3›DíùÍO¢^”!'z™o—W7·½a=ï¤Ã- ìš —œ5·V.W-uýy#ù!ËôèŠ÷  ‚HLwn;üM'IDŽû¾pOD¶œöú¢œ¹JŒÜ 朗7œcq¶¢¥qX,4ÊÚ'│!Ö‰ÑÎ)ûG?¥>ÃlU"ÇòM3Û³›!À:Τõ¨Yæ @.îq\AÍÊèD“å2õø`Y>HöWbýf­¢¾¤k1¯Òž»NâÝväî€ä® ó ÷Oùíõ ,éÖ5ÈLÁû*èà-…óÇͶ´A€E¨Y¢ßþ¾IÓ^ü]‘à2Xt¹íû[¥±eã¾ÅYû©‰Ã”ÚÒ8árË÷ ¿¤1¦®ïvHüƒ*c èC>HX˜}íX« ôŠ|áÅïW •ÝÒ#Ô¸_åÓü¯Áp’Vî¦RO°Ó¢SAI Y‰a.ñ?9:–ùá\AïêwƒkùY! 5¿Â^ìöo‹èonîžN¤]TŽ/V.— µÚïm*½ú]Ù‰cÇhqß³¯r!ÉûkxoºƒLh%¸ÿl¨_ë¬Á3Ô4fÈçg"te#s-³ÝWoÊFÖ™BsRCt¦jã¢Ú$²L¾™Š6*ÚtÍvËù¸€•!„`ˆÀª0¯óôûxù#$šÏ¨nG€wx$ù†- uýSY´ªÈv`]‰q®TÏn¸‘ô8j°B Ta—Hí¢J{1ЫBÉmü±|Œ¿†»¾Â’È3Vèx NqÑ$Mô{c OAZteª"GùÍÑ(hðÐC–~‘ç-Zü°“·(ÄœÈ~n¥¶€úcỼùKI™Àòjã}¬i,+Xä^œ%/ÓÒë$Óò¦9éí£YÄuáËq²gœ¢˜d§Pý^½˜±2Ö ‹R’¿P´…À˜É' Cüž;ºOH ç®·ÉÝmîÛTzp§w°W„u"R§UîûK“tÆ&12í¶Ü4+dË…_pÀqýÚ¶Ö™¥Ráï@²«õ´F¶TM Í Ë@Ã}A‰FçÔˆæ€0NaõÃùÙÃsä5•3ZÛ ½}†º^1*'É‘?^û_¤‡ã ;¤UÅYÍ­6€ ´ÉYY:¢ÿ!52Ö0üaO’)§Sµqžtzè™:…Åæ‰*ƽv—»£R$â ¹üˆÙEÚA©2×6,$q38k×ÿ­ïwÿ˜hiÕXÁ¯ow‰‚€{èUÎuDò£7c‘¾],·Ád©ºÞ†{OΦ2¸KúÇ^Óöät¬ß”á­iÀN+ï>2Þ:ošôY§í¸ àj| zŸ¢€ÈQ -—ľ‹;Y‡nXp*3•ÁL8ãáŠÚ–Õ›2-þ V ‡b«ÏÈø*”¡­k¥U76ê9ê ëIDR= p¼Ò8XB]‡žq/¡ÿÜ!~?Rzz¾ªM—|!'×Önª£.‘ZÿÊ@àü™wiäžKüã…9Æí¤?>/ 7$ZxÈÃÀøÍ@t…Ùr«·$©FˤÚåÞÏ)ÊT6-ê¿Þ ¥$ @uap¯uA5U1Šèä÷©~¸e¿õÇ)·ø„UOƒÐ' t8#è h°´·ÑÃ? ÙÑn@çîÜæ¹)ïu¬ý.:zVÛZ:¦K„» /+œùö(Ìø÷à.pk›(ä£Ìoõư»ÕÆ9ZL ûÿ»Û)èø¸â®»â}YX‘©†¶ìùœ…ap±Ü…ŒWwÄù}‡Phª/Oéì\Zf_ë2ÍYU—˜ Ƚ×60JýO|;·Cöá¶µÙn=†{ì‘‚¼Að–ÙÈÚx^ó5øNå\J qž¼žÈwæ£gäøTpĘu>«¥mÊàäKÄ̇š>AZ›)ÑŸºÚGYÜm_l%ù6¹S~—Ü¡cZJÛJ\k“Õü¤ EHñj¶áÍMÌy1•?Íû`¬…ñ #ßh†$[ºÅú~(CHúº;kìÛgíFb5%"}Ö»§€Va†!§áÎ%?ߨ¸Ý˜¥ÙÅ¡gE^¢åúhqYQçûÍËÿÏ!D"Öòú¯ßç=Í‹ðü„‰üë³ú¶Þ !4ü¹†ñÂæIo:ä8T¶bMµòSGMénâþ³lŠoŠ'¸Cë÷>ž°jÓgãÔ#àsþ(Å+cô2…¯CÎËžŽT§Ç[„7É‘p‹"¿ ,—£Ú"ÊhaÊ©Ãì ¢íÛÌýÃû™?øŠáÍ^ú<¸‹b^Ãpô=‡º±¹âÑîáÓ46Á©©½Ž5\*…g×e*•s¥Gmâ ¥þ¢w‚f[£ä\ýeÊÐl9€)¡ÏD£LÚR}ãŠkÿUKâQb ä:Œª”£›rÚ7@¼Ï~(ü°¤‰üitËëµ|u¯-EY—¯L¿W&^•ÊPˆýÚ8>Q ‘2C”#^â´´õBIÀ¼a“¢¥]ªú$e9Zî5KÉLý‚¶ê¢x¼äIÀÞ¶)GûaÁ;Â÷>{˜îÃ.r´¾0c6ÙØEÓî‚G%§ªïêÜœ±7G‡@Š˜‰Úb³D^ É(Z¬¦l´(þpÔh]È!‰kÖÞé^Ž(‰vÕmÇßàu×LPý¢þf𱾓3ÓË¿ôL£Ì&ÞpOxâfxs³9ë×Sé¢=0[œ$WVU é^ü6õEÚ‘Ú­Ê´w°fRMÈD0¾-/üÕ¼M‡n‰žæ•&º;†£ªnTø9 µiÔss«9Äs!#/)–2Òí÷o·\HV ¨ÒÀ„¨jãPõoÿX´â!ã Kcu²C¯–©X.2O%Á¿Ú_ó¤þhBÒk¾Žd s,Æé;YÌ¥hµ/I’ LÍå•Ú ŠËFPÓaŸÔÇ)”RLo ï ûW‘$ðü,v³oI=I‰ Rt›ÿTé×™'Î;9dxèïüÙǘ^ŽÐ;4ûJÃ~àý¾+UyÓ5dÊ÷Pf34a»F(O¬'SËúmÓ zåã=]<{8Â)ªºrìÑå?òçåëÎà²Ïcìãb¨NhCâŽU¼QP>b$pùâôo3„¨ªskÏW\ðƒ“Ù;á7G] 0äÓ¾Àôrû]•¥·Lê.~0&,|“ÖõñÞ«GÛ<á¡•Š×>A‚¥ðéY'Ž<ÿ¿TJÑ“¥S7Ìze03ºü}Û^ëÅÌÎDœ:gÂíD©¤ÑD©û¯8dQ½_nÒ!6ÁÚÎq()PüLȼóë Ã&—I­—´¯rŸ©IßÔ8¨Ã´åËpYÔ(?5§ÊúoÄâÛøÍmʧôd|V^Óq`¶ŸÛ´Ï¡²·Ä‹t‚"N3óvyüªß€ˆä(ó>L ø¹×ޝй÷¦Ð•¿%ÎbÊâ#!˜µV+ÇwüÊ?žÀïrɬÏcÛªÕ-¨LBcñ,¸†ºxùݾ¦V³í‡dò‚ñÝöEÀù·3Ïliã—ZTbž€ýÙbÎǰ8§ÕìÄir;~„`"Ⱥ{ ~Ôæ+äu(Euš›‘Ü-  üL©<™šÖý:úE+(”†ŒO w[Í蹈”B}ÔÞ! ²*½Mî–ØŒ*àß–™þ•šÍÓ›z¢¸¬¸ßU·×#­Æþå¦#ÕïÆ²W>)Ä{Šl# Ui]P\ä–›| °sŸutõ¯5¸1™ô èU~uר|ÈpíêUt*ºpùù±‚3U8.ü«K9H<’Ÿco”ÿ•éŒaÐnŽ}ºñ7¯áEçëü]Ì™Ã=[¹,ˆ­è¦û/e*ísýÕ2dÑú‰{±ðzdákö÷ü4üLä6Ÿ‘z+o˜1z‰æG /sþ[4“Í'ž‘?.òS Õ4Pq3Ÿ³>Ê)±ë"ÐZvð3†Ç'ïÛ‚Æ›‹HµÏä/»ùÖb˜1g€õЏsÎ¥÷,­O_õ@p –èWõw3«D%[PÍÕ/± Ë€³°nëܰ¶û@çÄgÅ‚xV¿#q¯®á;7W&‹ìgø9 ‚ã`Ú,.|>gåA%¦ÛÊ ‹JÄ«u$9óc³x…7쥱œ%×)¡°®çáëjBÿ«BùÄ2Ä‹ÉvÓƒ{3ƒRîÑü›¸• ·–÷\‘ÍT×L»Ü³áDd€Íbf`^#®2›F;ø‚ÐBt:øs7ìhVÿRJIgØÎ¸SÓ£Á¸ù9¸Þabɳ~º„qòSÛÌÕZMBÉ: ž³]>¸ô!05t¾_°´+û áž3æA0Á…°>¼(‡ OÇä«Ñ`j{ »·¸‹‚û~†–¿q%/¸ç.åõ¢ªÿjËeö0½•˜S"eø¥ÙÅi«hŸ. Y!‹èÁu¿…Õ?§P†Þ"™=?DŽ»«>Æ’ˆ"UQtÈ}ü›¸¯8 ×jåì=o†BD#‚küI]ðö45ZŒî(ÌD¥Ô¨³¾®éبàÞᩌëƒuWÑ"@Ôr Q€*©ÀUyžzŽî#­vÝv´“‹Rló(S•áÊÖ?ÛÑB$¹ågQàzOZ±ˆ‚¾'_Ta•gÙØ÷€j¤+®iàxí>ag’|ùåÊQt¦‹¾•å5Ú6µ¼ª Ò¿O¯‡üt’µÅÙ(m ½%7]~¸"ƒPºWÚ›µ¢b §‹GI¯ùfÈOp CV-g´ü°HŒYUo›e51ÍB-Šyü±Hî‰T›ž‚M+6¸+aÏÙ÷2ÀLmÄIWË«5ûš.UÃët”3 ¸ãd8؆©eT6.=Rp¹qµz%hô¤79M•…µŸËügÚÂû†«?»U4lŒŒC(6ç’|¡¤ª’)uT .½`‚ ìÖ:4–Š…’Êå¸ÚÌÝ™ý€¹[A±ï½BÙAJµEá}<8‚Å­*D›Ršw‚¼j É땽–­ø‹8¢ŽÏ$ÑAÒÀGÛ™WeºUÔí­þéjÁÏ»þ:Žá‰WÀºiäãEÓ‘b-ʯ¼ÊZ¸u©’b¬ôO´â"þ¿nûü±°šé,»7HcD¢¬ÿñ…牟†›tÃq»n<¶8PGÚ –U^¹ªõRíS¶¾»9û!WÛß=_YT½ «)ý)K­?Ú¦´ Q¯¥š• 3¬`8«ÏÿäEºz›š;èt“1ÊíP™ŽкiáeÊ.7îÝKõtµiWº ÞBãCð韧+m³?¡e ålP·{*ôY8Áÿè—/%}¯çÆãîV¢Ñ­.J%¥™-•;Vù‡LºðYì`v;æu«ˆ%@աɤ¤†‹‘$kÞ—&êÎ.uȼ“R q¿€úOggS€=ýÄ n#ë»=øÿñÿ+ÿ…áìçäëÚÚÚÙÙØØÚÿ»ðàãÝèêÿßÿùêúóùñèöÿÿþÿøëçòôÓÞÿÜÿÝïü±Ìjk, J? ÌJ>t>²jì»PÐ`µÐi”ʇjwAë”Jm[±£h™'õ!Â*²[ÐÊjŠ SÜ‹\.<«LÂ<–,Ôz¦c²4šû6ëÑ6ЕG$‹3$‘™GÙõz÷²iLêëü·œî€%жV+ÏeÉÞ´I!Á‚}an@ý­ýåH½žÛ¯kº‰¤õÞÎ5°w`¶',ÊåmKƒnÙlêŽãb_W- ìÁù’@ôó¨Cpï¬O'ŒS¾H2˜û_†Rú¡i½fêÑ÷± D¹à##¦xµÓß"Çb‘àz¹’%‹Öþü±ÚJ)•)EüÇ],R+·£XyyµÍ¯ 3ƒvÁÈSE¯B푦mjÉwÒv‘ Äþ·`{ÿµ#ÀÝäa[/™#ÌPÞG!3«7 Z#”©ŽBÚD¢‚å0ÇSµ6&"UXñ£ˆdö ÓŸ' fv=Ôu†+ŠŠ)З«u‹d%%kc÷k*{AFÙ +½Ð“Ò‰¾drns„„ÖzÛæž÷:‚OL\=Ͼ 4Û_ïqÄÕÂÊŠÝ °£ý$™¿mûƒü†e¡_ Œ—ÊâJ=Þpž0NÑË‘£çÅâ +vbx¿¹êÛ783¤Ù’ÆÍ'Y²ûü¸†Šp›+¶„WùþäÂ{§m}g1­çœÓ,±Îμ ÃñÅü‡ç¸ÖÔåQÔ¤|n˜?´¡h?Î!"ü¸'Äò«Œ…P™ …¥hç™=»µZ·¾Xÿ¹iüVÊßîxȽ!rÓ|»ƒŠeôXwû“шmÎw"IbSl{z&éUdMþ é`Mà‹ulB¥¼œ€ð!"N¯°á$6ÅŒ=Ãï8w0bã®ØûÃËf:‚¯Ev+nqÜ.@Þü+sü¼7‘ð-âëû¯˜¢ø›æ~=Æ>AÕ]§\¾ê Xªiîïú·ž3ÞY)7{ü½àRÜuÆáÆ…DËÑg¶!ß»å …ÖÅŒ½8<šß‰®my‘_\¸ ÅÓ2V}ÌÌèuÄÑ÷ÍñBÛmËz‡Œf`®ƒÄ 9½!ŠÚö w ~K ‹íøYQ`gvsº£\`XCáí1üÎ2|·¶épÆI×ÔH{/™N+ÿ4Êk“À¾Òb=4oô ²lÚS¥–íÜøÌ¿D$)Þ&m/þ­ù¯šÇvØØ°mÞrÎ>Äùªz²R{¶J—_žOãµ\“^F8…%¤—_ç6q!ÉbÞöTö»®rÒÒúûp=íWÍÖ:«ïÉ {[€yæôùÞì7àïxšP€%}Ös¥ìäVGõ\ŽNÈ'l ñ’åR1Ü÷ÊÆ*È4íWïh¨uö…¤úü}b¤¬w<ǃ ö x†Ê,DÆdâ î¾|N K€Ø½¶ð$`[˜üÏÃú »‘Ь7ŠNmöå@EÙ€[öR”$ó–OÔŽ†£}ùÞÛˆVÁ9’ ü^*Cß·O쇧‚/Ö§Cê¬ÁÙ¢ÔÁ£Û ?%¦¥7~Q'’W±¹Äæ°U’¥beÜì}•¸v7[=VÑÕέ¦ÌTäµh#e9jXTø_sL„dð¶áM×[ÜàNnÙ´>(™<­Àzq÷.‹¹Çㆯœ1Ž8Î 7çËHÌó£…+¹ç"<Ñr9 úõøoºÎQý.÷‚À±‡–ðöhT"rN׊VC)x@UL¥mÂ]ø\âñº–“7!ÙôMóâ[aW2©ÃÆ!HÛy<å³£æžÄ3Z붤Ú¢@sÏʸ±ßtÎÊÙ‡}BÌOÚl+'ñ.¹9úT?€Ó ã¹íRÌxoA»jD9E¢“+B¦5UÈÒü/#¾«}ÄY^ç;Ð  ™‰!ãR8±äl‰ý›±lWFyv@3æ#>«E†HÅŒ’¿'Ùb„‡ƒÁ"ÁÀ!‡½SØ3µƒ˜£‡Eœ(ç¥ÛÝÒ°oÁä®ß´s¤ßž–ãóÁ!N;j бA±oÞ#ÊdcÈ•ùõM¬‹µe.Žz0×ÊI‘MÐmϵD¾üLätD¹åÌþ2T¦íãö!B¿±æ þaÁ›£HlKL²z¤*ðߨ¡Ä;?êïƒG˜HAÒi[•±Ûu×Õœ‚Rm EÇœµùAl}ªT%gW¯Mí;p%æN* •Ënû‘Kæªny¶ÒÎ ¯"l8ÈÍÊZP{Ñkvó®uÇ­:{ëÀ1·~Ì ýº¬¦;™È;6èŽðG±ÁY…¹j>µ§¢$mâ‘þ-þ²Rš~:3‘´ËzÕš·—75ÀŒE(lr.{(äÈtM_ẕuÅ쟈×LóÒÈšiLÄ!pˆmüM|‡‘ax+‚üCV5æTŽÆ¿”$’ï”9˜†i4SQ†µ…ÂŒf’ê¶‚$:“xæÉ!;ÞÓ=•ïÙÊ'dÂõwdŽì¸\ú_1wÉÊ.ÚÇqÕw&dȵ÷‡ò™ 5í9žˆgwåSÊPJÇÌ«•3?’s8—ÐläÁMó¿ Zn Ì&†$Ì¿MqÞ6%¬#†?ïh¯ÌC劊wéÞQž‘þ„Ñ3¹fÊ÷¢Çi¸·ÈüQý2\ª·˜‘qkâ06Ä´×0üÑ1ßôõ }™Ha{Oý8´wú‚Ž ´ÓwnüI” ¿:P5á£$ç², šÙ™Ÿ#ÿߌ-¸[|Ro$MhO·´n *âo›ú¨¤ðú\øVEelª-;«æDH9^w´¾½,ÍFÃ+¿²ýÈ­šIö¶+°”PIaIýRîà)Øð­‘”™IIqX„õåƒë·ýé…bÔÌÞÿàÚ…?[ë(7Þ3{N[ªzoTÈ‹fD^‹ƒd #!ûÂ& kô^”~öí¯%šYÈùú8;+üL¾Y­öƒ_…÷T˜)Ù‹uÀ—¶qÃÄÏýqG“rH¡×âôô®÷°Î’€Kâ¦)¥°½EŒ¡;¦ˆ%½Ù'a\W³Tð`Êy5þ‘9òœcpÌællÛv š?ž|ô u¢ÆºáÒ»Q¬|}Ñ©ÒDBÞIæL=餑(Í™¬¼¯6…`l/¢P4´ÝêëuÈèÀ»ù—P䀼ͭ°À?;~å»(×-1Ä’]Ü—å–[£cWîѹ3K›Á¹bÞë®AÒKð>hÕª{ÖE±˜…”ö=¯HšÏø5ܨ müM2An.-¿¸ïšÏî·©ÆÕ¦Ã-=¢™ï?ÕÁçÜ_Óã3)Ë%ðÇï/Êð²hìÉd‹²€8·#ç|P 1uf‰è©^³¡yaŒ¨û6ì6’GÏCYI•eç]Z½\Lܲ‡?s`>ëøðǦüzMóAщûî[ÔÁÒØL¬ɽ ÃnuêlÈøõýF¹ÏVE‰PJJ̸ü±ã/é~¢r<”'Mqer±”¸pRư[M€„­|Ø»b]hœ‚ZB×dŒ”’?/[h׉ü13Ÿ _)?·8†2ÿvæ˜ý þ|ÓÂ+ ‚7ÝŒ²¦¦Ñ2DRÿïÉ>Dð.“ƒN›ƒÀú‘.$RònäÇ’ÐN%ˆ;""­ž·`(uà!V0ÇFî±Ião$=l¢—ŠPÆ}+RrŽV³j-òÓð?m/üv?ˆ“Çã‘/¨û=¬øUsê.qDØÏ­»›Ó핞ʕÞh¥T¦®VOzíÚg‹¼?‘™œ•§#*Š‚¯GLpf©ÖŒtÅlÄEWTñ`±›bª)Îÿç­S_üN‚¬¿´ßt®Êìîð*øŒÝj:¸‡"_÷^Tcþ<ä¦ÈÏ‹bCõ¦º¬B3I0NÓN<Ø;—ÿήٞJ'¥ÿº[Zq²y¨jèYÞ^AŒZP´<Íhh¢¹w¶a¬îC;p V·ü³+Û8ÝØP§×¶e¦yߦ¼7L«(Î?íÍ)Ò*œf&¿éwvb¢K•ÍHž çäÜÊM! a´‘xè9!$§û-~t Ð „ð¯Â÷Ü)ð´MQíùO2§88WJ°É[h·,†Ašx¯Úèô!„üçOÚ†p<Š<ö’y¨Y!l2ú®?~S kwb=vÌ óf©Äߥîip"9£aùQEe ŒÜ÷R-÷^³>ÉG ”]Lk(„s÷85÷ sw§Å ~€h²‰Œ~úØu*ÏC.¿¯n‰Ïîm¸eò³q=VÆ€ä k‚Ñ·—âµ·Ò¶-õa4³E/Luµ_@Œ¦ÖÿQš<ù^˜‰¦"’Z—6K0´UcÙVo‡À!›™³7,™©:ËXR”Æ9‘Ñj› ‡3A%›6 +K "rGüâCÕ6¿.œ^þ¼£Ï¬éÊW&€AFôÊ൪õvEº!C¦‡µrøT ývŒÇ6N`ŒUðAñêƒ)û¤ìb|Û:FUö«5Á~x šé 4mÔʈ4µó&hRÆ„cÿCå“dPr¼töúT¼ˆøBò{$7q-ƒ%·Æ\¡„©üe—ކó£ê\ö’†5Ï~¹^$ ¸ÉU¨¸ƒ©¸ðI§˜˜¢X„t¿ ó<Ï%É Ú·ÔTQ¥¹cB@Ô÷Dí5aHWªG`¹æÖZAüÙÚzÜqz±Ù<~0Ç:ÁÖ–ž¼UõÎ+fëxhÚÕÓ‹J\àNé貫;Ê¿cL§ti.dc2½l•öÑ~ˆ0qÝą̃Z»´<NûÒCÇKqɲ*X¼mYIv!¹$מ” íT-C›…Xí¨ëDÏÛ»¯žài‹úc=dé§Neg“L#ÀóˆEÎú•[ Ë¾Š·|›>¦õ;ŒQ!f*‡{ñ¯îtü¦…ë:ž}l‰k @MÓBaÎÆ+ýÍGb"HØœ·˜Êœ†ÀYŒžW÷¥‚ÿÚF9 9WüÙÛ¸nÄqžp-é£cT%,nOØbú:¥¼ÿ$}¾ÓÃgßóî–L‘ÆÆ®øÁÒv)€ôTÒ$b=Ï™ ÖöwÛlt‚» §!þ-r>\èQS.ÎïÛûÉz)fë?¾ÝVîÔKçuÑ6º~µGâþÙ8[¼[æ+«܉ì} X² ÿCC?ååEa}éÁ>.¢2ñ-2;¾Ôçô0 lôƒÕEœ8J£§¬À,T…Ð5ºhµŠ^g;LÿD|ãÎ!u¶6ï6Ý8ïwóIç`YËÁ ‘zA‰bÃâz"SôhÜT9ÿMv¾“Ò>ùX®Ý‡‡N i)ò' µ_ ¸OÛ÷ÀÖT²K{¯ J…Îf÷Ák£|y´¢šåÍž‹DY•TÜÑfßð¿-–kKbbÐkªšËœª×›Ö*#º:ñºõpåŽW¼Ã@%ñ•Òò<þáŠeZÚÃèŽ<2f®­¸ÁâG3ËAYéw…ÿ7yýc_õS{Ë⦾RŒ ­÷œoÊMÎQ nldpYt;Ø ÐÀK©Ð&ó%X¶ù©<¨>]ÿëëÄñíTY™$ô&Þ#¿wQveJ×_8óAjÿ”L Ž!JqjØ2TŽy‹“k nLö”½–v{ô*ÑfUýúàCÓ¬y«æ¯’µë’É^vlëú¸Jh›„íÑp%CŒoYçüNO¼xnð\ôxFegYBã4_ýÖìmõžZV}b^߉:A銰’!!z#&9д‡ârç–*¼ý&Ni2âðK5 J áP \‰AüâXGª4Lš«J¯Ô5ƒ’CK¨zâ#Óha&è¤ÿèÁtž3`Ã5ïü f3[·±Õ‰ %)iŽÆ-…_ðÕ<ÞþUþi -¥«ç|ž{ÞØ9äôk;¢ºAE)6 c5΄µtFÓ·™—³ý:X aœ/­YPû÷®VbþŸÛúSÈÃô¡˜ñ¡d5›‰•¯}e®S®.Yànðµg 2ÑÌßµË_‘êr¤_{k^iö(í·”†º³æUõ?ú8 ÎüÆcÁò/ÓËàÐÔ´jÑÁ¿äÏD£’„æ.É µÚf »mäX˜ÓKö^'Ž9cº«8¿L‰ äó†QA5ÜÛÔÅfIã옚«gSÐ[´tó˜x¼q{Õ±4¸LôÔáØ—Ú´ösYvêŽ.±¾e¹ïu^"šàˆC\ÅÒY+|uœš4{`îV$ïÌ‘ÿmudñDe^.yë×øöšÐ Õ…Þ† ³èš«§ØñG{Ý}Êî¤óù&·>[í¼ÀÆ/AÍ%<”I4Ñ.äÝi”™Èb± ”kìêIîÒÏ%x¥äÕ‘sÀÞ¡ ‚üÆd†ûÌ¡è³pªL*¤©àá°à|—Šm‘x¢Ô}&(»É[Ÿ öu˜4zš¿2}Pámá,v*-èxñpÙ¯¯ÜÍw+¦õö\ŠÑ6 x£×F]+ÁCh£6y[ èb?Yèg1³÷”½øžÉ‚‰^¨Ù@ÿF xH<Ê“jb>¯$7Nœ¡xÿƒÀÁŽºY:kîPâ}½×Q— ø,9.P¢ñ_\,¿ ÂÕ¡yÔ(­^„FøKô5*3”{¶ñõK¢[–!]§)‚n–+öÒS€D󥸣œC0Nõ!¥ƒü}°^?ò á?oRä­ESeµõÌ2 /U¾õ|¨±Cî@Æs^Y|Å…ž’À«w> ÆŠ¥=hLiÝ9'.¦áŸõfƒ1FXLeÖ½PCg\m aÂÂÉohðµÊìo–,∠٫nì½æÅ®`Öi.iPÒ¯&30e,Íbˆ é$EØ–È™¢¨Éíç2Ó 6ó‰Íô,ZËë/ &£lž:7G­pô Ÿto<ü߸—‹"´ß5X°ŠñQ’1ý. HµC=ªž»ãÿ–Ÿ½lLn@°Q~ã! J°ùí§2Ì;îžÄîIìûáOì¢F_Èo+¥±¡½¥‚õy` ÛàU b ·C¾>1GN€YGÐi2áÉ2>VYT~^-Û æ¤&ì6ÔN&bÕDìB&]€«c"í"…cþ¿N3%©\d¨D›aõXv>¿c^¨…g9Pü„pew‡…9/ƒ¾§ ÓµËMÂ+°Íÿ¢öic ˜³ ~¦ú@“ªW¶lz€3ÕCy@ýU‹fùLDg¦ÂXûN\›Z.ÄøƒÞäÀ€!âÔÿú\_‘5U\ÆzÒHvÓ!ácÒŠ0ømK›{h½k½y:pÆ¡ºÍÅtQ™LVÒÖDE¼™¸· âÞ~ÈåKc„Iú݉žÌZçåPdºÂ—Æú†ß‰P?,#³}<›æbtó:êåçÛ¥á¶Eo·”žÎô‰å•`ÉPµq5l µ:­E4 žÈ-Zh9 ^Fõ·©n @ü›¹r¤]õb ×'³¬ {_ÄÌÊç5þ’i¢$MùùspS+;¶ù¶mèíû)Ù¯.\³6böÛæUÇ‹ÕP_ eËýÓ²¸í/w;|Ëuà—ÉÐ)t¯òèà­1-l ª""‡Héd« A H*Ÿ …nÉ9ڴŽ—s@g‹¼ìÙ`ø:žÈw­B¼Q5´’-®?¼aÛy!r./˜8ýϫŮýµÑÛü¸¸º)44OFœí“ ªÆà# ²˜mX³!+6¦›Dzϸ Ü«ãsÁ¼Rlí'ÀÊ\BDÏ@±èÃÂWLüNP˜ÎGÉöÇ­Ï^V!®6lì!1îÄ0»ƒ¨j)s$¨„àäÞYø¡FL`gu7PF'ÕOz=C~ŒÄKc×x½+šL:©~dþL3¬çRKFùª72õ48ü¼>  ÁlW®æ‰´SM @vnÐxÃnÝ#exUìh-ºè…• ÖI¹|# QaTƒrÃüÆc«Ì§³’NRv¨£"‘öª;áÔ°#Õ:9:ž"BIÿ„F/{ëCˆ,• ýä-LÔým ÎËÞ·º¼Kà 2´Oû^•¦¬1Ò@k¼¦É–… ¦ždÇ­2‘1Ævþ¥ÞD\çtgÉYñ»0Z¸™q"¤ Óh©0‚‚k‘Æ›¨ýDÃ÷_ÛVÉÃýhÈaÌâ!–¸·Äxée –·›“HuÃ"=[ŽF´×Xǯb%­(X“¼àƒYlTvh1«3Ä™•Uˆ”wr²=T9•*R|L¾G±wN«ŒÄ:윚êɳ¢6_FËYº®’ü¯2Ð)âÜÍ–¥ïR&ÞMºÎ]+ð–_.ªÈc(Š(?Éé%_/ƒ¹0Gt¤¾ÃòCeòå« ˆ ¤sUnT³°: ¡R:ô¼‡cÌt?zÆ<êëd/Joy„R†+™× œ/%5‡{ÝÆÌlðø8M&‚EÚÏÊŸüf,"ˆ¾ð/|,ÒæD ½ŒÛy™ÿíÀ$ ÚY¶$wç õj Æô–Ð>†. ö„ÇbÚzÅÌz°lº:z±\ºo}µÞ&¾VDf›…b3"alš”WÄÉ}9êp…H1ÞTûmýmîæ³ÁuÜvi¬-}?üMÔñ#¤@Ejñ†;É-rVÔì¢èlÂ?ÏEÈá=¹ön¼×½¤L#Ýõú·:Úya­báË'´qöX_-•aÜ]¹2n$Ë6ZC4.ÃJn \”‚úáV[…/®77hŽºòy{7ßZö‡é@"–â G)pVárð…¯Ř~½Q€È*J¾hìÓöÌü¥#^È`Õ, K]«±­Ó 9¯ÜAYd¹à8ÆëZCØ M AáÀ5ƒ!צ0¿” E)s¬3>¾‹ÜΆ³:DÜgº óé4:â¯Y5€á5nר>µcI’ú!ÑóP¶¼+ûWµ¶Úãü±j¯ZtÌL»¾·…†PèëÜþO²Lòp÷ƒ©Ê,ß}꣣¤‚J.,Å3ޤ•AìߎîÈ,®l'ößÐãṡ¡u¦4Ç¢sMGPD;(ob Ä]'ÐŒëê˜o /hº,Í“‘ü†Š;ÝtCÎßh–+±ƒ÷È)òó5å3!¼Sä¥gÃŽUÎÎ Oqœ¦°f8IØè u‹ä3Ý\õ&ìXÞiBsBk|«ø,­¯Ñ§çLÈ–?5ÃIfãÀBK`ãŽÆM>£²«Äí®ð6uÓ™˜EÜé%òB5®½üNy!ˆ7àÂ>Õa´£”¿‡qïäõÇDÚ]4£9¾¥°[à5xQn9u%0ïPÍœ¥:¹ƒ¤ U6£)kÚº8’×!BØ}äyßÁ‚‘õâQkSz&ZlB‡ä]ô£«EÃ…§‰¡-Õ–ËôCÚ] q¡¼³³^ÈŠÔ-Öì1 Ýá>…‡vr=„è Ú÷\:¬n½‡Å¾g­\ч,`C*½–âþ']æ¯Ý»13…7´ÊÑ‘(Áè¯(ñƒÚ7œp†¸q6tú#×ê&°…}ŠzÒeXOºZ#$(Ì[g«øüM+Gàs(Hó~-cnÛÓåÙ—û*’½pI—+\%E–~¹TÌV”Ç\I2¿Fˆ.4âÁÅç‚!UÕtÑÉSPÛ$è5Ié\]ÁízÅ!8ðe½Âé°É(óÁ¢PoC‹)%ø(Úúe;4It¼óÜC—Öw)и=ƒªomã¼…®uµl1Ú§›æé9¤‰„£¶ÅŽQ΀Áƒ° ¼wŠ"“ç{ý”4lNLØœºQÄ`ûŠÈlóG#ÄÚûBíhš“bš:›éJh‡ap‡¤O PèŽI?7çqÞhêµq¢Ä}üL±p?=a2QW™µ»Qå=‹¬ß „Ö—xôœàXÈA7M|ˆí¯&T£®_µZ›ó ‘ÿôEZéÉiÁBg€ÓûÙi\íÿ*{îTo¤(ÍLWiN}·´=ð›Ò4ZEËS’w-^Ùé(ü‘íu|Whéé Û$¡Œ91€‚`e'»â®¨³â`SíÚNy' ˜Å#üL¾l¢²Ûá¨ìšqëáÚéo&T±çjÜv´LØa=—Ÿ®J:Ôš—U;ïGàù*'dë.+ª§óúØQœoT™îÒ‡™ò¾æËÅã²ÿßÂpö½ÆZî›ð>,ýëÍÉ Kpj0ðüÕ÷L5$»†³‘–ñjl/…<×ã‘Õº‘fÏìR)Îõ¸ q\‡Â´=øP•TëÑØ´Côû¥Z‹„?cQ$øPꈚ>yø²^i„ƒ ²ÕåU–ìÉÞ³f¸HX?ªÕò%ìÖ²·W>rsw'?‚¤û8ç-–;VÓS›ît÷¤D˜œ/ËU ߬ýk9Ûc]*å”[*DcüLÚL!B-bfÊY|ÑéåBøvuŒ×Q€…ÍÍQ#߈ÆùÈn!;hÄ&ޱ 3ù¨a«­¹$eùk8`C[µ-AmT¥mÅs‘ÁÙYÅLsõ»«Çv¹%ÃÆÍþ¤ÚàSÐP*\T/4žS{ |×ä?àæ[‹¸‘ç:¤mšl ¼mô_M9O~(”/vT’H ’çmÑÔámy#V©^LMìÓXsƒœŽ‰7òÐÐÓŽãÝÂ:MÓýøÛ< -˦S>¬æ‰ÆÛ'“;×i-ò]'Ö7†Œ‡V´xblzËw ZÚK¾‰ãìº-¢ F›ù³ì±ÌÞ·êœüMSJ(õª°ˆä~?f€G÷€@éeäg[δÔÙnè‹s¡T@.;éÏ*9{pTÍ¢ZKÊzB QB’Ó2Bg²X¤¯c½1~Úfã‘Ø&ľRú„•^«½}¬2„|v“SÍë{M­Þ ¨«{ãÅâ‰é¶W Ë (˜2çOºS´xÉ«2|ï^M ýÔ\XüEKM´µ ðžgªSO¶1Ø…¯Ã¥"#|è¶'ŽSýt´W½ÇmsNfPµí¿JŒœ$øm*Š[¬-‡F­ügx¡ÊX¡4º¦5ø·ç<7¦,˜^{ͧÆÉæî.å•5~7×rŒüÆs¤œI1‹" /é Ù¢ô µ/^?^Äï~J³Nø£o·ø8fâ¹hK£HË ôu²:3§/ÐÇ¡)¦<þh²ÚëLlÎx24žÌ¹!qÊè† AŽXà[¡ãˆ¥VI¹(ª’ó~6ݹ9ðtáoc²ˆðwZ,ySúÑ1SâLÄ%èö6,$ßšÄ-C*¢Ñ6¸JÁ‰<¦%c|juR2ÎIÐ/ ’ÀYû0n¹•ç9&ÿŸ2ì(a­K;¤ÔB\à[î\ª0q¿7g)ÎÒæ}ÕA†gJV”¬ðJÿùlu%°¯wÂy/f§ ݻڃüÆŠóå©{!oÍÒw•Ø“_4¨«N|ah«o Ž¬ ÷²M&"…>kóþ’åcgÞmIØwÌ Ù¹¸ŸÇ™yÖ†0cç´ë‚ô51^¦‰È‰šÄº§·Ñ@8!£~ ‡bJ·Ÿ3óÒò@¨Uã{ظ\Éà®1æÝ@Ïž=c×°ûúmç úGV é•& Ï®dÜT›1òmxè‚IÐIÑÂ@23\xyd´ŒL+@VÛ¯'œŒ¬F…®ë4¨æõEgÐüiàha¾ ­a®ß@‘Š;.5Ìx „üÆ4@÷“ü©–»8z|Rö`âuÝœfûÞ´½õ%`Þ¦$œ—”ôr©Õ³ Þ©"Ê÷ÖÔª¾„ ç08Ôf//©K²FÍ…åe´Nñ’´™QÙ±¨5»škŽïΊiIr|0%kOjln‰‰@þ¾†r'mΖˆ7–ØôàyN­Ät|f,üâJ1O‰¥ª.§vifúÖ— Õ|´Ž_›7˲ÈNù¿º†ŸTð~ÉÉ­Me¤£½'{2z|Ò]‘g^ù^‘Ç uvûÐY­²üÐnÆTÝÉÎ,‰Òc^ņüÆkÝuú"¥œ½‰ª¥jG]ºY%ù¿Òk‰;F&ÑŽ“Þ6ëƒ`¦øØrØ fõ€ªKVm¶¡tÉÛ|é¿Ô(û'Þ¹Éo%ì§ .åÏî"tÂ〈F… ‰!c/–=gêËÆYûr/_ÌJ`½uÖÅ»íþÆ~á uü“Þ(@D‡J§×$;'䎌°4–ªÑçè )ÉÀàGL—?w¤½V½°Šœõ]iv—õœ¼Î}ÒLŸÇù$ÎÒÕËW[Àd×ÝV´q·ˆTf ô˜†Rcg<‹UÎ6(F¿ô’G‚ÍŸwˆ†Âó e’üL¼˜ŒÅÝ;T¬Ì€XÒ0±0âÆˆÑ™&l6Ÿ‡x•ˆ¼[ˆ9ò“´û0¥Ó?TŽ>æ¦Â­®­3¾dåÙ8MŠÕ²˜³œoVï&ãD¹fãèQ:¯ðìÓ‘Œ?yþâáF$luoȉr1\mg9Ñóî— -Å"@;ÁÔ¨ï3½Kº òÌ›Jg Á#·Ö‰×¼È ¬Ëa°ô‘¤ìï›~¬óX-mpnÂø0; ˜ôÏ!û§¼m%¥*äµÄ”†y:˜Ìæô8$qDZ,Ž©™ƒˆJI1/“2*IÚþ»ƒVöAxèLêÒæ üL¾"—³Ú$üŸL ×A"ðáX˜æ¼Ô=ÖR%k1‘½¶Ð¥þ’Úµ4ЏŒË©™c¼IË¥ÿ!Y"ëçÚ“@Ãð®Ìr¹ioeÕÿÁ[ð@ÅvXPU¤»MuÃ5Jahä3‘ë×´½Myö¹j|åjæ‘éÀï{¿èeÖÕr’lÓyÕ‚}ÂÑ—_DFMdy¤©ù¢æ³ÛÆÔ•+“‚í–>îJû³ @Ân’¾™5K r®ŽÍü3ÓÒ^ºÀËÌõ³‡Ä‚µŸHâüL±àU‰]²{\6GMQ,325]¬keÌMG‡tç%¨³VFZ`ž8"T!«±®› T©¨D×{ŠAÐt¶Rÿqd¢vjB•éµÏÙWÂöw¾«úzHú;‹ëãmŽx¿Žop4=ŠïO€U‘dk»ühÛÒÙ ¬xÔ‘ùPÇ¢áµðöfáa²/Œ‰˜ÚniZ Rµ[i¡ã2Žì‰ô[3û/ð•ÐWâ)Š¥˜pÞæéù÷ ñi÷­t÷.Q?q½ÙÍ„&v¶§hçî¹U²] •ÑüÈUÞMnjˆ'FªP͵ucs¿_í\sýÿã}®DN·ÝÚhÂX¾ÞÿîI!è&© ›@†á&m¹C‰ËçZøfÑ-°o浞~0fòk” S{K!¸ócǵa¯¦hFBæù9o²¦"NÝÃæà+ŸÌjýž1Å&ªV­gÕ Q<øž¶˜Ëþlr!Þd0„ý«;†¶eHìèçØX˜H"›ËÛy+¬y©+ŽE”ˆ–оS2ËAÃ4°‘?¼[3ñ©ÿ£tÔ¨çMí™ë5þÁ@|±­A5Ÿ½Á½¢öcÒ‘ùJrCS&Á÷hS#™B#cìUWJ9ª_¤üŒN”^iÕÇ÷:®:=ŒÀ¤-Ÿ?‡¼¯$Gº¾ör-#zóB Šœb¸×ùPŠŽÑ>5Rê¶´fRæà:xQÜ™Æ*Z¦‡:(]Ë•×OÑ©-pæŠßqEß ¨½ùR¥*6õ bÑ”ñÝS¯|øû/æ;~­Áàpÿ‘úgS¾òHY5 –u;!•‹Ôí6ÖeJÀäê/ ñ_m/ÆgvØ&JUSU}Î 9ÇÛ¼An€ T™ë)é°âyKåŠÒȵ8b4§=âï[½[0àl—¨(9‘$·Ãé›®d`ñ"‚zŠgad9zÜŒ'ÀpyÃÖn±ú?ïdƺ=LD\1ßwš7Ö9 xY^P\†E‹„ñ' @ƒÈ¡lrüMræm§™~ö¿Ëlé8ª«ý\WžºhâÄ‘pÌêšËÔ¸J”ÔÁ ƒØ™{Áuéý DZÁmxS½u­ußRrçÿs„Óôb”L)øÜîTmܲ.Ê{CEÓÝnUâ+ ~ïë¿ÉÌö#€SÓ±³ÌØåÙKzU›3JvfðªoXŸjÌ=°w«6|Öƒ¾ññ„)Šž ÒË£Ba´?µÏ»*Û¿97ÝÐVÝÛÜG2ïµyàfŒ òmé¨v<LMò4ŠÿÕ ¸‚%.¢ù¶šÙO/p ‚µÃ@ð$8ÛPF´ûOggSùýÄ n„ÏS8ã×ÕÕ×ÔÛÕÔÜÿxÏÒÒÜÖÒÒÖÔ×ÕÖÒÅÖÒÏÕÙÚÜÿ`ÑÝÝîÞÿ¿ÕßâàçéðôÿÿÿüðÞ,w: ÖåN »ùš å´8Í—ÈÆb}—#ž÷`sµü†ê‡‹'°ÆT$P®Yõ’'Ñ $Ò’étë“# ¢ ¤Á‹´Â©Û"ܸ.—BøIS³óJIe@Jøƒë 1*i ÐÀ•ûÛC5±PýØa¦Û]dˆg‹h¡ªÛTb_gï± á„ÏP*sq›%'íšçÄ÷Ž#„›´Â/ÈÙ?n‰UZÀŸÄmWuÖžôgJ^3o<%¡¼2l†Å0a?‚œ»íò •hKè…D¨üJŸi ´îDÁ¥ÿco‹¼¶L¥çn禨ç}4+x‹¸5Ð åͯó™ô²É²»1?˜(;ɇDÑ? ¥;ÄæŒèZzeò'øNàdN“”E-âY†F]]=à^—99?-7tp‚øÐ$ïÅš“^BC_—vÌýrâ‹t?í6£Ý·PW×õ9;ÇqÀô;R©-x†ïr5~§­s<{%@z,#Ä[,¡^Ðu±'ŽÀ™N(ØqÙ1ÑæjW†=¼>“}£­¹³gcAÙ=?ÞÙ ˜o›XüM-ÚóáÍ rn7)}1LM ú#q;õ;€}`4 «2Gñ„½â$@Q©’À[œ˜ƒ@×U ¯û5t9‹ÿã:Š;8©T€I ¿Hô¸W+žÂ®ŠmŒüf½æ|Céà⼋ïÇ¡`‡õ™‡ÆO ¯§÷˜“àžïVYûÍ2à‡ _Ü9H»àZ¨ÀïÝ¢ÖG-Zñ}ÍJZ¼I?C¶±½Ú_añ‰›óÛËþT¾ü–W(›æžØÂÎ/,À¤<‘Í@½”´- pçOŒüMÕ>ë?ó‡h‡àöÔ%è0¼µ­?ŒÍ’Í+е'¥t׉²0ÞR~NŒ ÈîÊž¦Möïãûø±?ø1î|“"œ˜»U] ŽôäœÀóSé&md[^1„Ì'¼`Ÿ,RõË®Ìò1Ït=¦üçXΫ"Áö~0b•ŒzT †_®oΕ7Mû%¸ƒŸ5MJ‹sðU…ñŨŒÑËxøˆJ¸ö,ÏíVé p:ŠQÚ\Ù¼@?€1”ð‘Êa&“ÁüöüMxYS| #96ìÑÒæÍ;a§8«gàA ®pàp¾­U"…Êr'¼;Þ¯@[w8zo>• \Çšæêî͵ÍÈ÷u¯@pLÇÔ™r6ÿM ?}ËТGᎠéX^äÞø] OFP³ö…–oœG-¶ht2ÌÜ!ŽP—ŸÇ§?F½”±ÕâǕà nº'ú&;²"û–s~Œ¬müBÕ:§`ébóˆóø)ÝÝ 6?XÌGfƒH —€÷OÊЂJ•„\Ñò@yCòøôR“€µü6 ,Ú´’ìä·1A lâ–´NŽlÉCºùèÁVHpÞêÍm¿8ëšä(~ØŠ®Ÿ<«Ç.Rò]œÆïÜ>ÖÂâh—% t)?ÌIУwôžïsá¸îN]ˆøÂ\ °ëýDåñì)ìÊnpÿr­ÛGûUˆl$ Øtîþ2ó‚Ôš°!³7˜^‹éP yÌÌd‘…0±×‹~™¤l\,vU©ŸŸ–=@i`«_OééwVJO ®«ŠÎ•ÒWœ››üðܨ§¿H¯s=Ï8h$Nf¤+ã1=݉ÓPl4o¸I-æC£”ÖÂëiÄ>Ø„’ëš;»½+üHÝÉLjóœfï•ïZÕ@»µ«hù4Ƶ«)Ë‚MG#¶kÃ⸱Ud ´òSJ!æBSqt'ÙTk²®|ÑM'å=‡çElÙ³¡¾o?¶\'lMMÑÙ¿I%„˜îS¢SœQ¡ 6_ˆìCöž’W™‰@ %ó Çßé):gÏB ôï²$Á|2 »þ„©üM_y,ÎÁI2ÕÇ@Ó›caÑYõ&â½’Íonv–dAŠ[=ÆylDLŸÒ#²ÝN܃¼ Nå_b#KÃ[(¡ñ~Ç̆¦ =;[›ÈQ?úk¤÷=T"REÌø^tãÈY›t³ì-ü³ÑaÌÖóåÒi²HáðÀPÈëD9Ú‘ªLjfž‡pOX‚éÌÅû¢z^³au9”yD¦¤”ç’A^Íÿ×ú1Œ¯á| Y\Áˆ®ÎIÛ£i©Vð&¯œ¢—ºM@°††s[¯Oo¿ÆüðÚ¡ÄdÄ!ºó€!«=>ЄaE»þÕŒv@Éx£Ö÷=Òl}S§ÒTø&¤ ü7lß²$ÏK ŒcÅG|T!8l ‹ÝT_ðÇ) íÁ…UeˆÆSÊ~à=æ.~­Öü°¿Ü«JÞýCþRÙÍ(ÓŠIwVöþlSÞ: v€Ž¿-t¨RópýÇ0WÊ!›…ne¾6÷zP­ñdå¹ «·¬QXÔñ™°LVnùËŸÎÉ[ôó×4Á½ˆ!Þ6"]sý9ÌÞW+Êá(ybë Düñð~#ã5(-PK§©,L/-v3êÖĆ3œpâÚ—ÍöX½«fŒõµÿb¶Ü‘M-]‰&À9'aGyÝF©se5—F¤—úë? ÛŽ`Í-úË[É'· ˆ°:h©‚ø¸·Â (ûúAÉOh¤ÈØ¿6Ì,LÔ„¬¶ÈhB™¨FЊ"" Ë1厚¦åMœJ—ÞáfÔ“:ºUÖúÉPÀ.€×1X+¯GŠFªòŸ —òÇÝ#7+Ñú ìl¡(IOˆ@ú—My¿³sëøì4Œü}^ýÁnD";z³å¸²¦KÝ °ºin ×%‹XoíòéY6ÿëìÀ „æ 8•H¯ˆ,å8Ñ£“й»´¦§›ñ7غÓx–ÿÜ7õÝL Úðm‡^ Õ„~îhYÞCBwëߣ÷“ô¤I 3׿j{݇b’dU“Éœ‡š/“0F ³/Ãpd 2׳uŽ©Âg5dÍTÙ·o5C™üL¬™á+“8»-c¼|êgÌd_üÂOŒ´;Øú€´îîTùÂ#ô!>»‡‹äÀ þÊl²¢¤b'?¿¶”ãdC€1&cHÕ²LKßãz% õ B4»UàÐ¥µî玠 ™ú0"œž; €Öë.‹IŸë´ÞzUs&™u,Ä ·µêO“ÖgƒFtsCt‹ÖZ`Ï ŠXÿ%dÕ#3ûáÄDÌ=Æ.ôõä8&Xí…’!“u•vÿ[±Ø&‰ç,Bpù ¶I–4OY2k4u@xüL¼¯‰ëa¿“ê8]’Q)¦íÕè@¼ 9¨Ð§óÀÛSÍG1MUloØ +;']Ab¾M ÍÈaÍd öÞ4¹pÓ<Ü*w+,3Þãõ%wD櫙ЈíÂ;óŽo+'b¤Tኊ2¬nrC¾ ä8NkЭëjÀÀm«þ/Ô›eB€ŽÈÚCœ7£è̲öS+=ÞÂM}mhß|ºÉÂ|´Ž}E âªq3ß‹”r‡Ï {bxì’¥çØéÓ¯ úÓAûØ€h“1ÝüVÜÚuë¸vǽ&G‡z#üE,ûa]›8W¿Ø) {Ó0),9mG×üúJÔd*u·ÖËñž¿ÅÈ–q¼Ç%Ø$’¾²öHbPMDH\Äï!Q¤UP@’ÍËeØ(–D!nå¼:Ÿ Ÿ<Ø}3þ:¨ 2Sa*,Ù-ËWÅJ|ý¥R9˜Ë×8€ãö†2z]§$|?ä•>4n»`*¢É ’å9Öô×§±b:ÙÉ[d€…yã>u,²^”gøyðnMµK­ `s¸üMbàÜK·0ܾVd§ŒÈŸˆÊø¾ªøåm$ÇˆŽ ™ùž7ò3rc$Î »«®t^='ÝîଚB§â½e­TmÃLø˜5öá¾ØRœ’Ç&€_½Þ@$Êiv©›V\À0fJÕjª!a‹#ë&|ÚÎ6 5I@³Ùʨ69ŒÚB8Ž€Ê%åb +#pðgúˆÂÜ[‹ôÄôs•UæCôéfç–Á,à¡ì¨¸ÇM½Ij¾jå0ðÙýýŸ§tt´ ¢6¦7xÿ)ëe­Ú{[¶£€ÇÝõ×üL½È:É(êì? ,Rþi¡üð0?b-SS—ÁíJרŽ#îfâ({øÞo-‘õL?ð‡û¬³Yû¹¾Äx¬¢ÚpܶÆ2žæSÛÎ1¼÷TD†t(]wXJºlvÒ<5ýX7,”F‹æŠ° oÞù #Ï{£qZðöÃð^Ù¯ Ò¹`²[¶«dœC‡ &Z(–OÆA;‚° eP<=qw=]æhÚ½Ô‚ÖögÓ¬š‡§Œ¸–3¼š{t9ËlÖIu¦3í ]õfüLØ›ôÓÁdÃq9GÝiOÿ2vNvŠÝT1FH‹›Õ«_k”™?Bæ«Îœ½ØÊLÌœ;m­¢z¬±òH`åv*ðbvúÃÄëú#‘>ÚÄ$ø"w•¢w‰M€AAÎâ8ÚGÀ9NbákñZ™öñµŠJø"E#y˜ Š(¾ÖKi B) dÁ‘ ½Ë4u6^^¹±Àïò°5Ì­ù ˜Á‹BëÌ3h¢c5 h¿"§5‘MÆ=,ªœö»e‰kiL†ÈüL²ýhµÏ+5X1´¬%ƒ/ùÎZÂÙQ8ã.ÄÿƒÐv­{±Ód.:5­+÷oððôùSÈÆ.âレ'Ù6\l¡1 4æCáÉeU1fô`á©  ŸW ¬4®Ú÷ ¢ÜK.ì»ñ“ð¯{H’'™>”ò|‚zJÞ,؉tò_N`˜xº!iÙjÆxQ’.^úL[M‚~Á2Ó³_˜CðÃc×yú3¹ÄѺq@x8OjÒð­þ¼‚O®ïæúBg.Ë·l†äâSnGjõ@- t‘üMvµÄÇò ôçŸyK¢¡†ð¶u9~í®J âÓbšÎkwQiär°ø!Tû’Ô3;5“¡VÓ¯G)š²WÁ#&'hÝ,ž6oOÏrRàÖE—‡ÏíJQ±jRÀV‰AÖð¶ÑÛT:‘ýàmrî¡óÛ|aíµ€òvûÊ[^Îg#ÞøÍø„þ+WÖbí…Áóûæ‘)Ú»øA§â&…•­CU4j²BÅTãy ´_‹ Ø;lÊ9–:üLJHýR~ͽ)ãâ6ûhì-üM”}}®w$ Ö.Êfš—ìð&SÂM÷ *gƒ,îö¸3MîolÀW½“ø“¹Åà§Ÿœ‡¢­[À©Ñ‘2SdˆÞÄ¡¨c+í³·*€Î¬ØRwh™ˆY¾ ¡=Úué깆·ºœã‹»Ç ІC ¡½5xÑÖõ2Uÿv†I§‡¨`Ñô§~«¹*T>œr ÿ*º¥ÿôP¿£×¹D³•&î~2tl•mn·œi»Çù} ê |²°F>62SeÏAÓ¾ÿ&Æ­e–Ê«6 å€üðËø.[‹Š^”r󽺘fððe‰ 7®ÚfR8Ǫr|!N«Ãg3ØÈ Y ÁR™K…ÑÉ_Å”C»ºkÌ@²OÔ ½CáÞ&çL­÷[iì©( 9EÉlܰ'0ò<^+*òVLj—Zn h© Øõ •#1!õ ìa± CšOD¼ü‘Fêò÷(lŸ¯¢ecEùl²:& †Ìê¥{šjýêÚ:Px~SØØ¼±°^¦A¦Š&Æ‘Îó™Âï…wUÑi¢c‰ýq„“üðÈÃC¼á‚'·¹²i® 'Ê‹§‡ÐÞÇ7fØÂB½Ž}Ã9!ä71½3wƒùtsí„VÔØï‡,4ü|É{-w=ùð‡H9¦¥A’JZbªÏ¤qáð^“µz8•uÀšŠ{ûÝØž3Š–q[ 9®šúJÚæGóœÂNš7שõ ƒuwŠÒ¤Ÿ?„ŠÓì£i1U¿Ä­LúoXK‹…©¯ýCÆür‚$’7ã ×ÃÛÃeç“E]ó¶u`ÝÕèB#à‘à}÷vy'ÄéÄ”üMCd¡Z€Ç6CAw¹âýƒ|›Ö¸ð:ó®‚Ø@B¨åθ¤°‹zYý¹ÜOâÖI$ç¿0ºù"¾QoOP©í}÷›U/5…Qp˜Ÿ>;Íè"éš½·ñ¯ƒ^É­vîc Š87ÛcðæÞÂgv„ áRôRüu‰¯²¤¶Ç~CÜtæ%÷Àõ™¾“ŲõôŸƒkF78»Û\yqð3Úª°LQ«³óø^e­ÆV§”‚q„¥{¸V3¹ ½ª ç· E ¼Ûñ¾íÈÍ´wâwöüM–(oçÚ‘0Áæ$¶¸µ°b4Ä¿ åÆÒ²ßÒEªXvÓ¥pp|ÏCx)3L¦;ƒ„ z.ö?þW¸Ú _²Ýô<âqá½.+Ô#õUe‰])ØBãn {z”«Xg×Xœå/¿-…»ÝU~û7ê‚b2”ƒñt¡ð©õ6ºž"Ò*Еé(©oÄáÿ6”ÈluMÙV>Io7 錅 ¶ÓZåëâÂs^°\iJj¥ªh¬6ö\¬i*Zî4¿ÅNŒ¹ªVºè€ ŠüL¹Ø*ydš€Yd*r,xußEègcÕqÆy•ÌÊG(ê,¿S¯ÜãVö DI5N¼Ï!kã^‘oAC£;|D¦v‰ýg3D|¦ÏÙ\ü‘÷×£¥­ Á6F›"Ë„fl«î¸~òëΑ_(S™Mçãškãõ¸t^\U–ÛίÌG8ÓH誷ûW–Ð+±\qX¿âË`&èh&äŸ,³ÊúÙÇÁr³R AIÜmƒPï¸p„½öË©.P”üX,|¤i†Izäÿ᛬®]­wOb ;ÃÖÞOˆ{’Œ×`ÒVñ-§óIkE0CBf®kYÞ~ÅVƒ;€(æf¤˜üðÔ‘îÕ éáCØð,ÿ½Åœô—TP[¥1ô7Ð#~ÍØÓxS¨boi²÷大›£ÇwÎ¸à–«Á£%\öf|&/–†ûLïŽNZÐ;ãpIØðÈG(4¼R·FYzð_*†¯4¬’ûŸ›´36•>”ãsejßXÜd&`çºÂVb¢×6P¼ÂGV^\þ ÷zµ.]è^éç@¿ÓêzkB1ÝÄ> &h{yø]@a|JPó¸x"ßã|¥ú„ðƒ¶Yax¥cÄ Ìý™Ë¤ˆüðÉŠûU™þ?ϱå«ÊˆŸÃËJØÝÆØ‚+RÄM肬n°P”°2A Ãf°e(óEByê —¡pÑðzŠ „\GýøŸfHQCÙÄKß«{öÑ?A.Y²)Ož›æY‘µé„hõG!ùDC*rÃôÞ¥k6›jšþR`.&1É—h•@B#F­×Ð2ü¡ò,¢ šðE¦m—uþó:¸pö—«Ï¦YNïôâ?¿ e —'G¿Ù©OÃ3S ¬ÇÙÃjWRøÛÍšÿòܳVÕj´üM{rfOæYCódíE³Ê%^ypÊèGüD2‘ [²nÉ0ºÔ:Ñ4M·©ø“öÁ1ÿ¼8ˬXü*q< &Zäe²GÈÀq3R?š­;Z}1ð×xZËÛ¯xiŽP_žúø‰>ô ?O6ˆí[ÏNM/<‰à{Q¨+U–lvKõQP°üö@¼³Î”ôé¸XÐзÞÊ¢~±%£Ø/7¿.àË!`‡ V¡îÕÃ"n‰²Î—49%r…•Ò!lˆ”[îJ*öD<¾È­l²MØœËwv­åü}\NÄ¹Û ‚¦›F.Ðå¡ü`C½É_•€ÕƒúðóçŽnÚ~®Ð|œy{DÀË*éÉô>0¡ç’ã¯Òñ"2ßЂM­4û°„„±&£3}£uF›šОÂJ:ÚöTÇ]"¨'mûáØùº¢¬3æ®Ùà¾x b_jU­2N˜èpã•LrW{‚` Ýû墎\H=¢ö}$H[R謂"çã–ÐÈcÖ§¨¾ï¬ßÒÞúþéеʿE*ÐrVÒBB¾fV­¢ìÉÉ[Rƒµ6IoAëãÍ}Qzlì®R|0HR0k†‚Hè˽ÄÚDXÏÆáÍH-±VYWcë¤×¹L>JUhÕÞ’SŸ K§3ü¶,’úi`jpJtßtÈ—A*ñ"­ØÂ$ÏÝxÕ²zò+~Ý,ך ÏazÁ]Û 3ö,©éá„¤Ö s´\Š÷”írblüꬬtà/)ïk…’l<€fœ¡U«¯ÿÆd§ßÆØ‹L ¦:å¹u6¤ŠÝù°d¤ZâÙrÅe,Ñ$`šL!¹«²L0ÅlOýÁäC5É9aø7«Ù0Ié0 zn6΢–ܱØR"C³ÊI‡éïÆË0à,ž¶/õ{âűÞGêƒÅb&Ô÷®Ê¡¨’¬²…ŸqÄê’¨@_½Q¾ýŧ¨œ³ž8þw9ðÁœ\P ¤¿ ›Ö ÅϬdÕ_t5kV~â™üðËïž ‡;Y+šrn/¬’¶Áà§»eeæM_ÔºNÔHcjæJåŸR­'ò–ÏUwmͺ0*p \°äfPÑ"äï/) Z†•0úõ¾¹uX©ÈèÄ$‡÷îKx›l¤ÉÐ$ʘ,É´Õ p¬ŒP÷¤í°,kµ°“•mq1};cÝ㙲¤tš,ã+%O½_±äe· ¨ Ó%­®S–†îÓƒD1’ f…¸áÞ`~œÞuQlÎ’’¢·‡,pçyjY5s{:g _û¨â—üLãí—ü ¥$†ÈçqJìÅ1?_~Ù¸FÚìŽ% Ý¿Et¾P¶Y•F³Ã¡œ)Öi£¼u71wf$­»óÐþFQ\‰ ˨ìÇ©zÎGPÊA°]9šNÌ.ã.¹o|R>c7±^Æ”²Ñª£°§Â 1[\û¥ÁôÔ7ôî YózƒÚ ùÁ‡$²a]*Q-pH¹CÒtæ{ƒŠ5Ï¿¬ÄîKèR ( ¢Iv'LÝó0êÛéÚM ±‡ ¿“rƒœôÄ?ÁrØËÕÖI§>' üJ1ÐÓXÂy¤¯±uáÍÙvß)ª^Õtœ%'¿wŠÁ!Ëíù¾ÆÛLœ&C/² >rj‘™}ùŠŒì ô«‰Ð-bwrsüñJ(TQ–²Í¾ {\PÜÈn–rðΠK'uÏ$ò×¾× •u¢ŸöåÿFÜÅ.XƒÄ<öçµ?´xÉXQ%Ô<þ2y¬6¤5Â¥!=)Š„VŠŽ_¨­ga×Á èH’-Œk‡µd‰›M4<6–nbšl$¥^[ðÃlÜq(¨TÄŸU´a·+y0EѼñ€E°—Î4Þ>LÛðÿÿ?”¡½üM-ÀÖ×gjrá&u&KÚ¸ÿæ|¤¶ÊñÀ1æÏ“ vï—$QÃû¿'û€˜ÌêìÐŽªðÛ/K…ôõ¥Ê—ÍàjÜ1x¨ZLw“/ðÖXºù9¶L°‘æÁÞ‘Xœç§­ì~»Q££ÛêÛÕòw kLxUÞ*&0‡×Á Öit;OéÁúj©ª„i¦å•±ëÉÂò³]PËYƒØï¯ç†ý“4ƒLw7bkw5¢é&¥3̬zýÃï:˘š‚üõ‘Êñ•">'2rßÿìÚÜü|¯¿(pSZ­ Dؘ̹.üh8V)g’?„™$úöé¥Ý–³rm¡Rð¼Ú}c,} UqöÚ›5¤Å.haç=ð.¬Q–ÔÔK$Ô<eƒp>¢©é¿ÙAK¶—Öƒ5\ÚÃ#r&M°ç³y˜Ñ Fõ¥š`J›Ž[®yïn²“##é®'áÚ7þ¬1N =ðšv’· 6€QžGYÙùœþhp°Yäq·E"ºè^2µGÊÇS)€ßŒyêlµú ¡G…ø1 7E>ú—%ŽÍ·>øoŸ%`ÚÑLÓ”3Éq䢖`kpyª…H.ÐC†Ð®ŽÙOê¡<2‘sóiÌúèê3[[?!0¨dø2k}ÞgOÙ­LZ¿j§ž`í¼®Zê¯ö™'k1մŸ‰˜ºµ¥°ï¼U å¨ë@û XOžüé¶aQgyL4EêðÂ>×çx(Qé=0¶œKú.§½áÇP*˜‚îX¹¿j¬FÀ +©®‘'þ›mÀ ©+¾Xú¡=Ãi—9NÅn­WL9†Ö(KÙK´ˆ¾$Ýœ.h¶üKO9PBáÓ0'oyº¹Í¯»)Ž‘ IºfΧ§ˆÖÿ‡zZGèUTÇ 2O`z^ÆJœÕÃÈÁƒéÁùè3T§R2ñ×ÕÖ÷æ=feƒ•l×t‚åÝÚ˜R·ßaàX¥eP, ë ­þ²Ñ0ÄÛ.¦i`•Õh$}°§!Z†¢!ÊyVl(\FÞ6ÑÀl ’ªõÅ NÚ«jX-S¼ n]¤è³ß¥ªÆ{’Ù ÇR¨9ÚªCÒO:C÷K£‘4Œ ¶Å]5Ié‚Duõ§Õ M¼µžS°ž‹?Dž1ËΩNT¸û™¯8o>]MÈvÂ<*î3ø/2ÞŒ^D¦EÏQ)hG¸ S_±ÃP>k­Ã·©rOƒEÞ´N ÀŽƒн‘‚ ¦È6ô¬±±^ü†eiü¶Q4Ä–õLÆæ³wûópU«k¿z‰7ƒ2üý ¸€v}}•0o—¦q ›=›04xoÍ3RÉ“ ­é‚4¿Þu ÅÏMsÑ(L¹ÒSqj5Æ90(ÜÕ²“ùºo¸š¶¦¨Óžlǵò"U¾tKUÙæàþ5¡d)À Ê%G®«Ü³& 1E ŸEEXå9»û‚ûîMbr…`VLÐ!î> &ü†1ïÔÛ¦—æèÞedzoyB\ã¤ÅºCg=¥]n³û…ÿ,É1Ù ÙGf;²ü.^B'Ãg¥e3ÏùäK§Û^nç'PÒlÑ lQ¿÷šKª1Ÿ[8˜Diõüé¥ò^‡Î¹€Ñ5^ŠTÌÕwUƒö+è7tAFÀ¶Šªð»—@_ШÀáx,Q-”•ηðùÅÜ•ðö;¥zG69*æ9Wë—êw7LÚ´¾HÔúEÎÝ?D5!‚‡qð2 S²ìhP4èO’âÐØzè\D©™ª±“gAPv,Ã:&ü.Û2Ý/¤ÿn—g.klF ‘OÙ³5ïÎÞw'$SÞá¥\¿ã6Âì©%?Òç¿ïãmb„z/zë&ŽšDÖr´‘îhÿß6i·—ÿZdñ:»¨ÇFÒÉÕQÝñ\ÚHL€¢ÒŸìæÆ(WR¿¥ùOݪ֓úßÀÞž7¨³Þ_sEÆ )µå@/8h’«û«KI¢Ÿ¡¸Ô #¾þ¡­g½_~A¶ÔÏoåúÐG‚/éžbÜQ)5VØb²„¡qP•gµ?æmZÜüÊË­—7C!Ä`T¶3çÑlhô&ÞÛüÇZ‰&B+ÂψìªG5ÁËE¾š‰ J—jÖ²ONþm¿ríoGG#\j²K=3ËûŸ›ÌpÓ›ü ´Y³Aí·+ˆðŽ„ðsÛKØj‹˜³¡,JÚY¨6ß!ÆÁr¤^8š¼ÆšÕ<_¾uè<ãÞø‡¾¢XŽ#ŘóÜ£mÊS$ܧÐäL()Áô%éT)”ªÿ¥!G;ÆèÓŠIJð8{)ÎyÙ›ÜhM'7ÅuEŒl]4ùåŸ Žw*s‰‘ýŸEÍúl +ÖÛä¶Ø&âµtzwþ%ü`ׂ& üÄl¢ÿhïDE–‚üá*«ÅþiÈ}(ÕpøÿÿÔ@fUF¾øÃÛ]<®ˆ!Ú<×" d™@וËÊëÃ1Ϥ4Ží9%üUò¾ÆìÖ¹ I$=iŸ<ï‹«q’QÁ€àkuÑ´å2IíwÎ~A± Q³£#!¸n™Sb!¶Ê…ÝÝ5kÚ”,7"ÕþFúïB ƒ^Ó<ƒ''±¬Bso>nçÑ@šPî%}ËǹŽÙÖIýpMÇÜ·Þ«‹iˆ˜52Þd· '7¨:k¥³·ôtѤ±PÚ?>"Ú¹ ŠÔå4Õ˜©lüÇU>õ9™ú6Þt­²¯”¼f÷5fŸQd}Ùû ê Å-h¸êš°²÷ÙN3-mcèDˆçúâËqáÕìO£]ªm8T9U^­SªÏÞÃ40²Bw±r¦‚Z†üŸMñÅÿ_«+¹Ðo$¼hüÖ;×ÞBn.,&ü¡t¨ó²T],ydឃb´Î1—4†È‡®×Ú²zñ˜Ù;Út”)‡§!jzê!n³-uÌŽÚƒÌèYËæŽ¡ #O¿C–;§™… ÝJ»ÒµžÏT`·…ƒÿþ–°xZª=cãœ‡Ô ^ñEæîÈFüÆl½J”¹ç¬bS«ažõ™¾¨ÜDU ÙœW–§ÌŒÞë¿¿#’SIY¸R*½9Ø YíLð5ÿÈÄ;…«ž2û Ô·L°T /06£ö|'à->㊈Âov¦è3a`Ù?èÈ2 ;u*ŽÊ1.rÔ£µ÷ëýX?±ŽY@ùgG1%‚:æi¢€MöÛã“ÞE ½í­jLJõ´2ÃXÂÆ­+î–#“Îwídée¸çL“üˆnÙhv5ìh«ÓÀ˜oº³æÒñxc “N"©~a™­-&¶HüÆdó5¬™'þNHÆ2€ŸÌÓ¦‹§¯æQmú£­rT/t _dÂä‰ù4 ƒÕµWL!Ón„mõû$lh¹EP”t«¸ì—ûÓa_Åט2ó¯¢ôêÛ’–‡öFº¢ ˜ÿГ8Ž]ƒôKªŽ¼&õMyŸKÔOÅL„»6©O–'Ø-ï8I陂‹õÝ7! °“Û‡­‹Ž±óÿ/|ÕD-:*z@EÕt†S œ­8%£›SeÚ:³ÃÚ‘f–8á‘sw¹âÍðÿKËËž…îÇT„±xd¸ÞšqÃ'§#%lqio“¾›1÷R;oåèÀ¨NžíÂOggS€´ýÄ n  («87ÿ øùùûúûîìåÝØÙßâàÿsà×ÕØÛÞÜ×ÓÚÖÛáÿÜÿUâàÞëöíèâêþýúÿõïêäáüXL…Û3z¶áIz9þÕ™„YëÛ¨Û­VÍLŽwvè°ØOq]·øÚö SVðaÆŽ"Tÿ‡~¨ %Ɏ슿þÔWuoê4àc´løs—}8=_‚›—Úì1µYN&±ÚC˜Ë»o%I°ßPDø#úp‘ÓcTÎ@˱õaôë¦ÉŽVd;–7¬g±¨Z î ÉÑ3¡.#°Úíç„W°½bÛœ³¸æEíÀ ¢Ò Jçn.ÞX#j² 4zÏÓx^dµû˜Io¢yÄŬP)cÈmÓ¢Ú†V©ô‹…´U87XÄ“Gªƒ!ÕO:õo~óÄÊtBýË…tòB.Æj’Ú»àÌžÉüLÚt@ R{,¢M=Tì«ÆyÁMê˜[™ ù>;7£¨¢ÍÉh 𾸛߾¹ì€˜¿Ã`Ýiò\AëÒmpy~Ò¤mg’³MƒåpVHŽAšy§P«ÒwÂSÌ“ª£ $RöÕÎDëo±pTlKˆ¶(½>c€$‰œ—‰W°ß›È™èµUnÀhmê获ÉðzÍøý#ýW‡ xoØŒ‡ÑXøwC+?¹÷¿yÓCñ—­AB`b‹+ƹÛVõm½þâho5i¿?ò0 Ê B`r#Èr–üèÜ­ëÔ탈Š\·‰jÕ*ÊÂ~`™RR"™üÆ7ïùAZÆ(såù7óéË…iÊÚ§‰í)ÕS"^x>`â†à¨hÂtuŒ½?úäÿGfeˇ+BÉŒ`€‚Ræa˜4†ƒÍë`«åšÉ4å]®+ê:Ã6qq¤…XÉh»ñ°¹¶ïê2ïâ.æÜá=²YøhAÎ5‡‡¥ÌæÐÝK  ÛHÀ¬eúWïà ~8ñHݳ„Øæ(^"ÂÄîã‚è_S¤Yº¿ ²‚ÿo)ÀfUÖ—xè.8D³•¡¨Qü·7˜Ê/IÐn(­Õg`Sü¾N;¬ÉÀ‰´/þvÔ6çÝ1å\Ö×:.¾w‘Ñc,Aù‚üMTâml˜Ÿ²…°Ààâ¿`7P¾íSyÕ×:BÞ)ΉєO­¦º:‘Ù•²bršU®}«Ãw˾ t/?¡zqm·»´º+SA'GÁžXÚ¥+a¹ˆ½A)û®¾ïl?4W¢Îqi$|õ š”zäKí1:Ò1OÜ6hȶ¨“hƒË6O–Ë“0›ÐíøŠ7týyß‘Ù6kèìù >aW="EÌaZ[p>›ç£¶2 ºîl©Ewô=‰ø¯n*Ü.&Á‰SJy|>òÊÞò8¤bç s}jeiEcUd÷›èE ü™EÞ9Fö¯Ã)Q Y ŠµeüLÀñ@5—+kk­ öö q 2¡É;î%S)f¨ÒßZ^¾qªhþ¸iU¶¹ "ÝA‰E‡CL'«€*5vk{#¡øý0Hs¿ˆ¶)·™˜ æ’"Åbj'£—+ƒ$H©wŠJ1¦Ó­ˆä´1™òi{Æðž}ŽöDH‰ÂŸムaîò R+*ß™†m‘w_ê`JèÙÔ~VQÞß‘ÎÛˆ5ùãÕ]­`Î!‰th"½r".VM‡Â?°Ï´iÿcf¦:)Ðñ¶ÖNH£K×A×[§Ig²/ß_€•0Š.cì€ñ¶1X A·}Z†¬‚‰üIù|j_Š\Èi¼*Cå …ðáDAª‰à’„~høÛY®î³»ýÃÁ/!ÛøëŽ_ÅMÅ0òL"ä­Ë6‡]÷‚DûràU˜äÛ }ˆ„lÍ+wn¼ÉÛ 7xïÔº ´8QÈmû#9ÅŸKE¢5±Gûc{¥Üà†š´„©[—ï’Cí[¸Ì0Ǥ“hr –AÜìo͸ùÝkbåˆèp†;^²xEÎÀÊ„¹tÕ¬»¾ì*…¼,JÄp?pFíwYÓÅtêä´ƒÔ60F¨º7[9[¼Üë5jþéÄ>йÿÆáù¨ÄG¹vîkö!d€mrà´üLÚž¡j–½]gpes%«º^ùÑCMÅ›ä',fRå_ ¯8˜Ï1’‰ˆ²0w‡ÀÏÏ2å9=uX‰€I’ ­N¿ø⡘Y†“\lCD}ÞìÇÛK7ÄßþÃác'/Ô c-¤bUpïVN\fÙ\ι;›=@ª'¢Ó[âCx»ãphÅÄ¤Û (BéIp~A—N´7™hSÄÕ›ÜW’Œö° õ–8*reGúXŠXóU—ï|oµáÿ­úoDŒ„Wk‰åyd;Ý¢Ž„D–eÇú…Âê=ܽøþÌwD(kü¼;¨·ì¥p39xî(&ûNZüL¹Ï»æÕ‹üKð·NZé4 {ÂÁ6]þ«r[8jOYƒ¢[Èm(òœÇ'žÆ¾wo5ñÊwyï6¶MrÇ£$•ÑC­Éø®’Ð,E×~£ »ñ ݬxxáÿy—ŠšN¢ºsjÚ—º …Ÿâ[¤¦r"׉Z®Ál1Þm£̪/( Ê$'wôÊû'¶¬yÚU-íòRí<õ;šä¶3šö[œ7ûsƒ=|Qû^ëP <ˆ Ò½|j~«—‚d˜md.‡ô{l^³ç3µRõ´¼’3 U3u¥ê“M–¸N‹B0À”üM/N Ø•áÒeFàíå65ùhÊû¸·nDe¾%KrˆÞ´Ü0ÀZ§\ëhŽ„Z/ʶ!ƒ,ŒB2à!ª-ÿýÍfà j4­ ”)#Ë6˜.­=›„)Ø8«F¿Ð#";Q—mcw!É»}À¸wœ–zzUBCç*µØï;“%D,‡Ÿ$l¸ÉŒäxïN9êÕ÷>ô´¦ú)#°t`øF€¤«N6Q­+œu3É×÷»Ÿöøìd`íQfªEì‰\}Ÿ¯JÖT¦l«R/|6¦ öp¥ s> €}¦6ã^ý 0Û¾ÄüX Ã{#3£®ïCŒ·”Ì.* \øÁ‚Ë8šç]1ëI,å3hoï|à6ü?áSòòOö' Tl½#¶üÅ.?Ð1<%uŠŒÿC®û§àA” 6ùnø²]Z5£ûsW”ìi>CÚ@`”¹\â-?… *ð ÃÍPd¹ü• |ì2„H@fO'³Ó_ãyÈTûùhÜË/»¤Î9úl¿ˆ"¡=ü?çüQôÚãe…ã¤ÑEéò šúr÷ p¸}¼Zu ý5õ­ÚûÉžôü{‚Ó(Òë\¸$z#*9l–Y‰ ˆüMZU|xMG‘ÓiØø6pZQêõÐk‰ˆÚ|{LÞhâ0pÐé?ù¯Vnº¶òµÐ>`ŸÜZ6ÊtËÜ^Òt[èWS uìie)©ðö]¥QhܧIª ¬JÚ¼Wu8®z±’¨=¥äC˜ÅžÐíÄи‚p&ŠÃJ²/+|—Û!zE‡K@£[09^Ìã´¸)Dñ&SZ°«/@À2 Y›±èØ$Á>ö\á>%³Ý<êü/.%dhˆ‰!­Ÿ°ï™ÐX­Ä`d”†Êw[WýÃôüK?5%0³Ÿb Ed”U£á8À{ÝÙ™Î;ÔM|ÄuÈÅ>¹ÕPeÛ²ËfßN!®k˜úXÛLMS{Æ›´ŒOèÑMûwÏP‡c©(ÅsRU<óxmc([ŒAÖ¨&„ÒtJ‘†BâÓŸlÙ;5EiòèG¢›(Ä%VšèèM 1J·?kÑÛŸ‰F8™(šTýS¿ 8xéì æ%‘…јøÊ@TÛdÖ›# â¥å9ÀpòÅÊt9÷±'w^•ÅSÄœ¯qUm²˜»%Rã“cýüM-ÃsÄHH@ó#„ù/œ ¶ÿͱ„$ ’ ÆFƒÆï‹æMîCã"pÖï1*™ñ«ë$\áω-¾ò%†îG—òx)žç€Î#lŸjo·SK½2ì’Ç[4Å8ß¢Ý 6ûá–ÿ²|Ÿfš†½]‡ŽšSS#5ëÖ9ƒ ÚÊòݲd«<\AÀêyšüLä¹’¡*žIßÖÌ‘ÞÚÎYîµ&áwô:"ÐzºÔ,?ªi•ZìELåä’F¾¹ZÍӣЕR‘e†­þ‘çIGñ² ¢ˆæˆt«è 'žÑô¿ê*ã[Ê: dsÙ¨k(q[D|dåÏ/Ÿ’(@]äM®2NßµbXŠô‚~×Ä"c[Ÿ)¦°£ðwúé ÀÉ:­á;±}âtçœw¤\2__´§_(¢Þ}fœ¦c›ºB_Ï=éó‡ƒçÈèšÒNÀ¸‡Ù æNæ2üKCÊK Bœ¿Õ¢=˜X»pC2ûÛfo™ã¡‡$Táô,Í+ç;¨/urÍ/’SÑfô½ä0:¡ÙP£¥±Þ?µ“ù/²DšTü\µySÉ¡ynÒÃ˱Mºz"ð)K§4 ¬ð%ÙPmß8œßñÞ³ÚïsÛm]•ý™aÝ-¯Yò÷Ĩ¢€_2!àæØß1ÉÉÐÛM.¶˜ñ]±`Å£½k©ò¯:'s¡Ÿ0•r$ÈÚ Ÿ¦i±ò» ·Ó{w€Ô’Šw½ñiT¨Ô6ýÀ+’Xø©ºüM›˜ÊFF/GWÔÕù)ˆHÔÀjÂAT(„ß)¸&«?ˆhô-«F²u ªYi¾ÚIY± ˨Ƕ¬9øf¶@ÀÖœ;‘Å„­æ‘¡ TJ«ÆÉØ•n:Ü·k3ìt~§¼˜rËoýûò}wvd%Ì'ôŠíV]daUÕo¼; P\UXiH¼¼M›|WÁ/jiúe¾Vw†4ôÔjeQ(×é¾Ú—îxDÀxÃ+½ëÜæîøŽrë"‘Š/–ªÊë\‘wφ)NMgÀdwHwE!ܼù#ƒ'bü}bõ ü‹ÀÇñºë1DEðÁMã78Õ‡º·‰2¯/ÝšCÝòŒ¨Ñ|(š ‘¼áHiu`í8¬0Ôy 锲Ëu’§Ž¿›á&þ•”Oiíè¢#§¿žÏÙtgò­Ψ*îÜÌ×]ES‹ô–\jÖÙ$v0%ä‚[ Æ c–Rм&_Ð"{†°”lŸ8lÇ6–Óþ»(;¾ƒæ`송ˆC˜b–Ì÷¼Þ³ðX§Ã,ZüN©/ƳÆÔz±ÆG~_9eWmòy¯$ÃÛÈ]Á‘\'jÀ­f?âÓ÷=É¿ŒQ$°îæ—ñÜ$1=ù=Áý£§‰ÿ=Zá•GO·$qbªœûç6V|Kr+qŠž²Q®?QÏ1ûHy x{¤üM)Tª¡õŸÑQÃÀ®9¸›CÇò®Ê+63“³b‰Q€ÿdª!ìôú¿o‹ƒLäëÎÐóÚ;Rðz¼ îñ…¨õg—æªD’¸ÙðI…ɼ~}¾Ðt¥" çPµ=Lœi>½Î%˜(ˆ*HìÐ`å§Û+‘=»¹*„:N÷íK¯;@ÀŸ¤)Ípk+}vtB~G¦>1˜t2˜¸)2ÁwI(Ý ªÌè檢¡ˆ¹µ›Ÿy×!§¨#^}¯8R©Ïð-!T+5ÝÔܼ·5’ÝD‰žY–èÓ:ý6µéú'PüL¾à1×½ÉÊÅòfŠ L”8•­ÉÑÖ’»„‹Ð]ÇÞ„*Jꦥ.(Sùg'þ\ÿãgƉh‹G11¾L3å hs5ÝUÌâCâ«Ï|וöW+¯â^ÒàèV)0Ù¹íÝå«t‹õ]ï¯ôöd@Ý~É úx^÷xeî•ñ9Åýêà‰äF¨µ‹«@­L4r¶%ãÅdû÷ 6íà›Ôˆ¦î•ö,ùï“0v| ì—r"„3={8Òv‚n•Z‰|UL`1TeaÃÍ-¬Cˆ“ÇsqqüLïOÌ>÷]Z÷çXX2C-KúF—ÅÝEï¹ñv Î øñ̒е=jJ~q~~‰#xõ‚%¡ÛäóÎÃQ´–Peg=œyÜ£Â>¸§1òkàU@ü¢t:õߪ¹K°´Y)rpçbæ`…Ϧï‚@1æ#¾_‰Ëf&2äÊz•&‰ž8ÑJÿûW"ƒö¶È®è@ÛiFÃsØ¢þh[§›>¯Ý_d»lB\£=Á¾qc.\ïêÝ\W Ý;í#'r˜mGI¸ÙŒdŠù<çüK%»ÏŒæöe(”Ü~¨õÐ Â#v0É“Es©u QevS$â\¦2/<ëi•6¿R¾ïSƒm[ Ç(Œ¸\I³ýÑovƒ ››ÎèÏ[Í#H%?$»Ú‘o^}$˜¾®P¾|Ýn×‡Ó ¬ºKjK9 #«øüL·O(†õpt#6 ]¯5A‰E¡íEUð6Ä'¯WCì©L§Ÿãüð¤¹÷ák`®Ô¼R½ófÞ&“Ô(2-„}cÕïKw Ö=,1!×ëùßNœæE覙Š^•ô`ëŸÊ³9™ „«1Ïn4lÓ(˜Óêe©’p¶O•tzÞå [PI–ê©bfÝŽ4ÕV/®ˆ^y æÖ„(Ä)&~×±]K‡û0KŒïyY ؽ{‚'Ì“à­Æÿ“æøºâo-½Ìt“Ûùâí ´éQšœÌüM-yc›\PMë¢Ø7 çXM‡³Ù 6s¶Ñj%Ãu"ÓxÞšØÖX®’©”ùÙ(#O‡úÄÃWñž ê÷jµ,Üwñ`µÿ§jNªÁI¦<äΧK¾ƒŠþÌ>{?€“wÿÕÍFkRkj9#“½ tU˜b’Ù×çDÆØfkxÉŠ¢¦Uz:6MÓ‰åEoÆ 'f$Ø`ÛO—ª_2¶î¦ÚŒßO­³®^%p@·£œ¦QEÜ/˜?Ù`ͽtºktf×ÉwÇ5vØÊ6‹ s×KÚüLÆ')iD¿ϰ˜öRæœt,Cc Xf¯žÖ”Uý|@o€òö7Éexq^ˆUÍçâDõÇDÓ0&3 nGöB»=Îý‚ »`­xÝ2ÑD<¬‰Óÿr“&ÌûØ–ãN–"m;^¿û¤€=³eW½€pJ³írÛï!H¸ƒŽ×xymM¿s¡æé ιá¹çãóíé“9ºIo&Ž”!‚Z´ÊÈ©8©×U“[{C1e8P ÊO ß18Òls1IÂ4EnGúòCKÉé1»h,jb+@¹¦6Ø·"îÆX´–’mswLH›3`[û°æüM(ÑÊcKé­œ›E7:³Ðû´Y«y¤Ôî(v†{G9µ‚‘ À=õCz7ìyS3úŠÉ=߉g ˜TmnþÿûcñÓ.¤ÈÏhåUØ@2o=Lië"RUúkg#«¢éµkþ3Ç´I§ÈWPl ^ Ü«¼3ÓÊά4Öï4Ï“¾Ýà a/0¥¶Ã:Jaú¨,sU6BƒÔ€¡–'¯wË/CÇjGÎéešIŒ•TÏXûà9é’ ““ ã䩬/íb•]lŸpRH†aüIý/É?ïôn3êÔ>Ìô3Ø|ÎÊm¹ïQRrÞˆíÙLÊßöÄÛ“i´]r ¡Sƒ" üI³”—ü|¯bB/©"xqÌž¥… sÕ‚¢ï“ˆ shÒÏø¢r0"7½ÒAñ%_¾kSŠTÁ=ŒB&D– Ê|ušxDïTë”CòáVµc„¿ÊBÔªYÈÌyO(lˆúE–9«›†üdK $F¯ýSW°;m긞’Ìl4sÒì>æ{J7Zàˆ5Ьû%™¥Ò¶ûŽo2EçÕ PQHLüL¸‰hN±4€. ÷S ÓÂo \V¹mÚýõ­ª¢îüñêiY1&¤ƒÆûsº´v2Grõ‰B6x¥wF¤}hgßÿ‹I}`mâæ>Pé<ÌŸj]ÿî)ìÊó¼.?G!« =Ü€ìu|bÑqånì/Òµ|¯Ô´¶-`Ø÷ÔZ[ÍC6„ÑRÿBô‘“°â¿•·ë5;õ–%ïÄÕæ²—ŽFãÎO§ý‰Â[à”g®Ž¡g¹3’¢Þ¥éñ€ÃüEbmÿhÐ:Þ 1£Å•¬Ðï,- XdùåøÝ&?)ÐVú`‘­ âlq³Á%¹ÔÞfmv^bøü|¸ îÇSæ~š³XûE‘YÒìÓ»qzaïXlÀÓL‚Gö½ÿER7¥ÑmÒ—ìÚáÀ”o5”¼w,R¿:AÒ†òŒ¨ÆYàUk"R;%š—Gåð2î‹w{pyõˆ2x½¹»"™Ã8OÌÆe€$‚|Þ)ä:[!SŸ- gUÐü†oŸÐèú­A]uïã*|~IýuÙ5¿àÉYö33„«<@GJô5•*ß°ŽRt³ „Ú¥¡m¶:¥mè wGíë¥m+µ¾ÖÍaÑ‚mô¯SèXŽãBÙŽ%¬;‘‘”˜ÆZÉŽmM“Ñœœ—T7¢³¯Õ@— aÍçè”Ù .ËÂ÷W¦# {¡ãµ# ­‚UÓ|$Å×\!¾bOmc‡¬;%S§uLõ:3X‚Œ¡ÇC 8ëäY`äÉx® •ÊÜtµ ¹™ÇyèCQgMÑELšÌl_n&ˆµ¹ª"D°üLܵõB©í®µ,“õÊ'¦qÞZQgþØ«êXMŸkÉ]Á†ZfF¢áó;½<%Š#Ùqã¾vÏÕ¤ä)dT/Üxò{Ýe«ÊÅßtw.EC_ˆ:Ö¼Y§H=ÓT—ЊúPb W‘µ¥•bf?JZ^–=×—‚Á; DÓ²(±«!nkPØ^>5Oþ7W0ƾÓ²z͑鹼9âÅd6ÆôÄrÞv ¶‘8iÄ,?¾‰O6‡Xò‘¼Õ½dd*<ƒoãœG„Ò™ ØËù35,-DM¶sß¹üÆjÝМn¶EÝZ¹‘õK3!<­ë±²ÐšÅI© #ê%­öž”“È(âö@RU>7‚Íž•§X5¥ãÍ´ôâúµ9bPÝoƒmX$8öµ‘gZ@Ò Ä#) jÃá_jÆ +{×G¿úW‰ÇÇ÷I€'W¾eörŸ-{FŠaè^x¼—•‰¹tß÷êišøû%0‚ËL25[HmœÐŽîá¼\'+ª* _'“ÃP#…/…@ÍCZ® ¬,^9‚ƒ‘õš~Å„ÖÛ}ÉwævœE±ÐAv§=+üÆm2{÷ÏexÌîltíÝ—¨Òv½ ÅÌ)IhúŠ/ ÐÎÞ¤œ^!` hÞÆku\CiôŸ)n,Dâˆ0š Œ[^8üFˆ ×>4Ǩç9ºqeÌ£ð9ì$ÏX'Ž#Œ=”kŠìëŒú:pìƒëFüÉ÷–+4†ÄC@ÛÏ—…M]úê9x|‘ÖwÅ}§ó€ƒ›ï’äÙÉò’ʼnßýPcË ãvsacȬ×m|R<8ͯ´ž)ö’ˆ!'+B–9L §bô– œ¿XWÓˆéèE/£ã´Gý_Ö¼”ÎFV³¾5üÆo Ì¿H úKƒj 4UÝP©AË~ÜuŒ ÚOpþÀVJ‘àýG¬PñNá¾ÍÌ‚M¸ C%ß<á1kÚ#]Â’&ææôþ~òýy® ’–†tòóÍÉP„ñ'ä¥Ùá‚âI°Q›wþ½eø„¸=C??§˜ ”ŠáÒÆÖ;ºèW³¯//¬¥Xt…\K4õA:•{Ul± ´øã°Î =ךZÝ |ù©ªQ,ªã–]è-%]U)’kùmz®þËÆ/¤i´&Üœúð*µ9Fqó–Äèú¤%jêj¥Ýè8Ôu'§üÆm‰"§Ð?p.vŠEù|p¦ ©Âé„wl]Ø ³[F! qg€ì7 ÐCѶ¸æ `øŠ 7 \Déë.¹& þ.Z¡þ¸ì¡õgöèI~ç¬I8s³q'Ìlµ6JiàêãZŽ`ñŸ½t»úþ&Y”øö@O6>™¯¸`-Çs“s|Âj­\ x©M–âá»tÒ’>«°àNk.϶‡„¤l.µ÷]q~¶»ATÚÜ^ýc|ïȪ{Q·H2^H›ÿÑ3,½ë&™á°CÎ!ÅÈ™'L‚P¿áXW*5õ°¬çågŒj1V1üF=ÕˆGÄþ;™Z™_µ–z}që7lÂaÕ9l¦¤Û–¹JŠ¡ \WeXÍU ÓÞ” ¢ÀÀßÿÝkƒöÿ–Û+>NĻ8žø7¨Ž •Ec^Ž¡!Ÿ1b>„1–ÍÆ+ï‘ø¢°ÓòЖ‡üƒþ³`HÐ7¿èJùŸŒ>CÒT»"à«w ©ÒŒSBóØŒä»9žÏ†ß>ÅV…Ç· H÷H 3˜¿ÿ3Eæ=1‚[ç­±ˆŽ›¥TøÊÆxDº(™ðL¿À—³XaµiÇ›“<²”!AG;õ$x]•^¦5§PG­ÜŒ,—ù„ÄËŠ†¬³S 6aNRQRšc<"Á¡`U8B‚S#³/WHðüa"—Yw\÷3éý¡&=¬¹®OÙ‰âU2ÞåÑ(td²é2ŠT84¶ÒÍNï3,:ò¡ü†fÅiýpîÍDZ ?`¿é1˜º˜žIDguÐØQÆš™-ífMÃó¬}Üý¥Ørn¥¶“¹‡ô(ÿ¤ábX vt*þtèv×-CEßúæ‹+oµ})žPÂútȣ⊨Z¦§Áˆ¾GÊ?µò«.ã–ÑœbõÊö;ÕÀž` «¼Ì¥Dó9èÐvX¸¸Ï7›«­%z¹«š0¹®o2h¼Îàƒ á}v¢¶C;¨4a@"›s®“ `ÇÕoFÙ9³²fD]yzØ¢#Û5Wy³ê¡ü†n Ç_µQÑ,¸ArƒCöfV ´‡ÁdClÉ5u;»!ÅX*7r߉Ê$Àž‘¹¸%l_á9N0¿×|Ÿ“Š@ºŽ ßW5D)„ öÌŠ¤Ë·ú¸x—ö~á÷‡ÄÒfºaúܪݤ§}½Xh<>=çÉ+?®¥áÄlÑÍ}kGÚhfù#¹ÝzRŸdò[Á³¤°ˆD£ð"Ì·0& UVÑHšõ¾ú§ô—qÝûs><‘Ë ɶÿ©ŽÅù+¿0N’WàUa*wû«ð«ÒAœ©ñº'*û#æs/é,ÇhGx4&5ß÷p¯©dû"Q5µ|sÅ¢üƒ×uŒ0ʽÚÁÖæ§lJÀVÁ‰<ö†wÞZýFΟ ™'ŠÖ?ZDÑÇÔÔ¾º{ÒÝÊ€åÏùjpF¡ˆýPò˜¤b{¤ b`ŸüŒoí.¹w®ÖW‘´…CDS0w*@øLªz.-KÚbüÜ#q¡3Ƹ{é ½ó…~D_Å1OªtJB’tÍ92ŽÐ¾VÏp6Þ´Pœßi^„èÓŒ¸–)ƒax§Jþaâ&¨!º&ft°ŠªÉç°·:%Š· CDI ˜Ñy#ýôQs/. ÷Ù;±rü‡27g?ê·žšI;ðÕs¬„µ 0‘Ñ€‹~‹å¼&ñœXZ¢ü†.‰ô^ša-žAªõ•I”œ>Z_„<‘4Àe‚œÈÏ¡mC¶üº‰ yµ®Í¿a„Ž“¾R›ƒê0 vó‰@qû›+ƼÕvöcL±™Ä¦ý tw¸lÖ¥£#»¶aT–3¸˜­ÛvÖàg‡žÝHTÒª&‡j­/‡G9¨› ž©–VS1.üÉV¿¢G,ƒ.JU$¦”öÿêôóî$§O’1ñÈR#çØ=¬®¾Æqh?!É©Úíö¶þ¹ÛZ(ý`ë^ç·Í€A ú¾­U/§H¡¶_ì—0‰æ°€øRaŠÌK˜Kö íx<¢üL­_&˜Y[]QK(cŽh%ƒZ¬óšÉK—0òàD®{£}’Ål³ÔI´ a Á¾&1lÌðR@ôf¿€#`&höÛäPZ•¿cEÁ£Ý~1!HDRšªÂè´:€á0­Ü–5DK(§V7ÐþòŒºMYË‘ºIjë*q(ºúéÌ’Òã<&†µkT ö("g=®â~ic•ÃîŒnZ<ˆ] ÀòƒqZ[y¯$ä!g¡9*;BuËÉܱšÌÙ€!D»ÎÙÄœ>Å!g<’Ñô¥€µÄ,-PGÙ¤ðèUWòåÜ&ÁO,trÑÃè\ñY/ͳÇ+5a^¡HŸq&Éne!¨®ü†l’… []“9f ±ã?ÚϱëÓu2ŸË*¡óòõ¾ j¦¾kôOtþ}è!`›–jŸŠoãë¹~‘0ÝÐIw˜\Ûà>œDâ}\fû|Ý¡F^~§ˆ¶Aý ñJGþ.¤«;h­ó© 3^Ñ%‰ßTL_ps;_S–ä4¬@u¨59²²ãt µ‚ê¹Dà° ”4¿¢^Q*;‹;8ýY1 IžY[.@ãaš?×(G,ÀŠ=©çä.6G¬ù1ó{æ—’2רÓÑBµSjÁ°êák;ú ga§ÿ®£ w½|Ó®Ú†0žv£º]ÈÌf ]é³üJƒ~ïõã²üä·¤ áί­d?¦&Òm¸®*4P:¥òë¾Þ Š}‡id›”Ôלz¡Y ¸ÊébèMoóÌ=ÉÏÞÜ«’žxþµ2Ù$(_ø4w§ú1»¸ŸÊøÀ‡“™åA2©L•œ?”w¬0Á”²á5YÂUÛpÒ;4ÄÑq ’ *lêûJ¢Í¯ÀÒӼ’MŒ¼ šÆ£4°8eh¢:sjFYïû†Õø0h ¹tÅl°½5v½Ô‚ÓÔwÓè}Û±MlèénÍ>l·ý˜ÄÛ=¦dd‡ç7<¹v|üL¾Ç%6@­³"Hx²RǬ»™¦‡ß© {¯l>èZˆnï?å®4”íË…£[¹¡+ÜEñîó下ák*C±ò¥s” Ò=n³¹¾’B”eÓö${3Y¾k¢Zª[§ÃSˆP2Àà=†=Ζz¤R)ûCw’^@ƒhHò¶KxÅ/üC·˜Z´¦’ióØ(î‹Ê%h`Qbßíû\â'.¢p G ^*;¨^ÿ*Ý —µÅ4·˜“¾W¸À ×?8 Áé0²aGã²ðà ÷¨å¾Ý% P›Ú7 ½Nr ^*8™XL3KüLÀøçAÉH§©ýÆø s˜5Ž%H\œMqæü4Âj‘m­áq·FAÅ/§,yB†~$"‘™¶Â­[õ,-?’æ£Î¤ñ'”|Ba"‡åüb®côÁe šUÊ,['&âD@Y€%ÁÀþ½ÿ‰tðÉË0d­?ì iT\šÀœÇ€¸’Þ( ¤Ã·=üÅQ5lj/¦ù6àØEÌŽü|¯Bç9ª†â`!R¾·2LœcõËDEzÎÜ‹ÞçèÀà=vš¯opÏc Ü)Ÿ’tƒëWWZ¹BüIùvLT8ñPàùö>mE/V7Yµëbø1å&w¨Ëð~è¥û4§\FÇBq9Càè…ÃeÿvCÝ­ ¯?†˜°Øä sS? ¡²(£«òo-SϽî3 mýáÉK@8C\ìÆ{U•2-šs7B æÙÓƒñ 5 É9”~v—ÆúªJ7,¡FxªäÚ:³Iß&µž•±l&8JAÐíðÈ t\¡/þªGý²Šdƒ·µþVtŸ3º_bˆF²\_Û±@h­¦ñaÀ p°Q‹Òë’ÅhÒ×4OggSpýÄ n!bë39åÖÞîóïíôÿÜÿfèàÕÜäâÛòÿÿÿoôÿ¦ÿæåëùüøíû÷èéåÚ×ÔÙÜÝìðìèéïèþüL¼gG)¨£¯]ðARåiƒ}.í%_U®$ýþáÏvY`b‰8óÿ¨=WÚ0iÓ]öÉžÙQXð-FÝ™m ¨Ÿƒ?qú<¸J–véD”$&EÃàÀ´?w%EÚ\ËãùR‹$ß‹ã$rhafNñfTyÌÝ•´-6k{#a|yQ¬ªgLÞ¬íøïˆd|æ“‚óY†q£îø¹·7N¼$j£³5blœ\)"†Cµ¹š{¥  ËŒ°b"´u€kàJiéFÔQ!9W„° >I@àRüL°bf+Gƒ¼ ¯å¦›>ê%«¬Ñše¼%Ì} :æ~¨}¾›)¹ZZ‰òøÊ^h,¹N\2¹C2´a»„B³˜€1;1Œ‡®ú {ƒ}K†»î?Ž×í›uÔíTùÞ¾F,õ±¨AQÖ—2÷KmÑíàTìS™ªÿû%d†…^ZVEÍæ‹"xõj ˆªFˆ0è:¼¬Ïþ€T#>ºeÕñ~P$¾&öáײŸçvç·|t­N;ƒÍ©"m[C:4ðOͽm¸¿Ä2Y¥ßÄãÉÁ%ÒUüXÛ­Êþçgtª§ëišQuhM8Kí¡£ d‰CP6|[‚ÛÞÓ{©¤sw¤˜X/5{Rcù‰Up6Ì϶\èD‘hbÎ\7äø9r>‡ÜXLÎ>‡¹^HBáë ?ê‡Y8s! brxŒ<ìþ¤‚.*«‡_[e‹±ÿÖ_"ú)ô—­WÄ™#X¤WxeìÌ¡G)é&K¯m³ÿLAæd“OÅç!N¢'­mK§&E3P~ÜÞ¹\ y)b»pS,6 7ã¢ÕÕÞa á—ÿÿ{ºÄpüÆ&ñ2c9v“ùÓ'¬´%¿ñåÎåØ_‚6sg`et™¤üýCZzœE ËvFïñ Ùœ’`%"#a›dÍ€ ²cxÜÌöì{\l²ãÒiâR Þ˜ æ¢á¢ŠÅ)°ÛBhŽ\Ñq|E’â[¬Ó1-z9ÕÈâ"ƒ†7Ã×[lqè3ˆ©?¤@úCB$…ÒÊ*lýL¯,ì#?P2ya.~mƒh§C!§ñü#û%Ÿgκ×?ïÙ:ÿý;é#œûȰ½]`Ý›©±ÄÒÈÍÓ”1U»í ©f‹0`uzãñ|æüLÀñ5uϿ؆¡, .FÃ…IÇ õ‘}Âð·Ð>+Bí¡óhÌcz|6žŽ¿¦wÞ® ‚ÀŽ+Y¸\Yf‰¨Ï3ýtè¡îT×¥êi½ƒ¡'jÄŠFe•&ÜKµ–w©’–H^Ë`®}I0 Àöéˆ*¡Ï\o®•K%U²¥íŒt×⊠óÖª”â7jè‰Êì)/’ßÎ-m 0!‡‚¶édSÙ¹NŠ^â³mÇQŽŽ¥£€Í¥¨‰™1îµï“ U&Ù YȰC–gô"v™Uà!¢`AZg€óÙˆTŒÌÑe€ÍéID…¢ÌüM’é`>#< Ö©5õ,1æ·M¤c_¿X˜pxzó+g* q­ëMê2oc¬æñjÓïðjbp°°ÜØ„€$wÿ0éšsÌÈ?ÔsÐgF4F–ÃÌâL‹†ÕÐ&7ÓÒ{H´Òa×éo½¾L×»…e0%Ô†·@l¿-º˜Ýû‚©<´»ªAµí†íÿE“Âàkö94û'þo_ªB÷;‹+¥áA4wëxÊÛÃ@rNêàX¢®hẊëíz¿ýêH×­‹Ï¥kÛ› OêÃ%nìƒÍAG5u^:QMmÒœºÛ…ÅÆÿë(#ÒüJÔ—Ý»¤bBÞ_W%–ÐmÆñÈ…âåKñd¥E+²ØÏö$ëò $ïN [ÛWû¢£¥g§Øó^–#B'GîÏå":Í3§y…Ö(ˆÊTîû¡] B8ÂÉËoµ>ôÿ3•C ä0™õÆñÚ+÷ ©Âø'¾tt»§t«M"Rg)·Ùë6t2ÿmT7“=÷, áÇ%b-+ŽÆçÄHù<.+¢À}¹: óÏÿ+´á¢Å_­Û˜Ñ^»pN€f/1†ÚŒ#ÿRÜÏäEp̲¤ø¥k!>Û§’N‘pžRYÆ P:ü°ÕÐÓVñŽ²É „°fñJX]0TljÔLM`'F¼-ìífD¶IÎÇ×°’—0v*ú‰ä@äeLeßO×F[´°ã¿’Yæ²íÓõ:ÖÓ;‹1Ÿ æyçpº°Ÿ_>aʇ–Â~®ØqîN¾,9èL»_÷<¬›2#tí¨ß&wïóe ?V%cü|¨Ä^ÿˆ‡¹&ØÄÁþbÀ}õ§‰šd,ðÙþÖ ô2ÎV0ˆ8"FmûŸUȘ#Eëx¥Àíôfè!llT f¶CwººÇ‰‡‹ýV°S¸á¹!íÃg¾WbŸIóû&jžwªÈ§ITï£-èm=âj…+tB²`HGg±`%ˆUø¿dÕ·Òûíâ¯O ]×…žlU1QF™g+Èf.£kŒ4”?xo÷¾UÍŠ±å2:„˶ƒ¸ùÒœ bäTJ èܹiž$qNY¼|zÀ©º9<‰Åz’ jXàÚ‰0ôÀ8 ú!^Ã(Q3ƒ÷ùDD°Yaç,ÃLj~ó‹O±å™ÑÔõ”ˆºñ® âô^‘YúXŠT€û•Ì©þžìïªc ôš#ÎŒº=Àä Š(’è!>&5 É=¬¥0гܗžòÕü’ÑL+•xÀj äÍ™úް¹ á‡b*ß#&5ºÊYooC ¦GÕò#kh‡y´2ùÄ.§SNu¿½ík—KÚÔ”Üù¡Í…Ù•8ûÅ]Âd²8ÚAæ ,YæüÛ:ÔízôN|†¼ÉEö¡PO™œæ ÏD±5íë§¾$2 ;TH3wçµ7—¶²¶dèéWõQ‰¤ v­¶ÄäÕKûûCÍ’jÍwd‚%"Sê¤*V]ÒÇç*Æõ¤•^ÌFë§k3píVìØCÈMnJK{Ró*šlDK¥H’¸ ihÇcMJà€djåÏ”¦šmS}ß|þîbªM I(ù'‘èðs€§ë§0@ÒÉ쥲±‘»þ¹¨Io¬ˆ Å? Ž¥/ß’¼x"­ÒSd——p†–êa•ë4VÏQqÕL¾g¬ò6ÄNdØ6x!åãXeÕoöçJøÊïÛ²úZo~ºÖxQŸóIækOMÓvâ3¢]q˘À“áoC"’ûâä¾­ÒÈÙ²gçqG­ýÞøéS¾˜ȃ¬›`ûuû5€@ø’nEO‡ö BìnUÔÿ,˜NAüŒ¬Íù"nëQC›R^«Ä/éTÿeMûÉÐÝÌ>Ð0T†Qÿ Ë6âæiVõ©÷JËÆYÑ3p' UŽŒˆd¬ðW˜_pO…g1 SªõöAÛË…=Ð˪2…öÞ ™CÆI.VT¥3OÚº öÙf'4Æ) J½þZÐÌÃtº±Mr™d×q6H©’ñƒËQT$x²™d%SÑ‚€8âÖætU‡Ød=ÙÂŽf(¯`íÇ?è…%ÐWA‚ENIýí.7c+M˜,5ÿê™ãv¶©Û´nGŠðË'ƒ?¦eÂü’?jîM0ËŒJ2­7Ÿç•+½ÿa`a Ô³–"@Å0 ]-xŸÑ>í0Yu¦¦ÄÎ`NàÓ¸ÅGË Ø³txô8È·Ç­˜ö^~³‘‚ØÒ#MŽ6ÉC}Nƒ}d¤ˆ*wY÷•Ýå&Í“Z¡TÕ_¢¹ ±÷Ò»Z­,£ø›öÜ4õô¦>Éà‡cÏ) Búqÿå÷–‹.*Å]°â¥=i*óÅ>hrn\¡D§s—ç KƒÓcäR3¤Ìà“ážì}ȼp•üDúœÀ;FµûO2ÛšIÖ³üLäL¡·.·„G¶€&á±/ÌàÕT6!q1Ú "䓚ô=ã„(U%¾œá—q#ï¡3‡]Êw"£©Òƒ‡×ìúÃ3Š÷2æžÊRÖáœÄ sð&Ä-µ®ô/së&¹¾Ú€.`†‹é‚ADßE©Hi5F¢þ–*—ÚhsÌK”ìSVsŽ¢X%¼,>Ò†[¸·“¿ñvazùàÌ³ÎÆND˜@¥~„P@{~-®Ñk°8_ìæ\1c‘g¥”ùJ¥ÿ×pfâ+"ë%PàûcÚ–UüM#Wv{ãùDó,–#†A ËÛä¿\CW0†ýóM…‘*³]ÓŒÔÌ¡Oì Zn,rD™XŒßšVõ_íH›è›zs¦fnw¡¬‹ö,bw|•͸gÐSÀì!LÕE—À+ÙèSL3†7¬™Ñ–¨²€˜Ð×DÖ³3b~j’RG§>ôs¢êzŸŸï™D‘Ÿm¹ÿ`$Î^ã¬æü ¯lT¶á á½O9¯d©ü$2 ~­14ÃTêÇß+‰¸ˆäY´Óq/Ðý•\ §>K„Wvv0÷ŸT«Š âÔæüJKÖ^XÅP¯‡Lì0 n$qåÿ€A‚sÖèH»Úxí|;;§èÊ;äìÔUEPN¢ßˆÓs¡{qßâyš¾½$b—g?czƒˆ_%TûRëw#-£‚ÀtA’ t\|:ç²mf#<ïî)0£» WG4ÛQVH„ “ïY3œ¨|ÌXðÒäH8Í3I5téY€`Q$0)ÀjQD|ä>Jkm7/4ø> +áx[°UÍpT·EåÖœˆÏlæ«t›#nÏóA£žÞ™»¨6%”‹A0=*2üJQŠ¤Þæ•[qXR„ßÄ8_Å3†9 C×ïWR »Ž8íˆ×uêêÌx•6ÉpÄ]ù¾\¹=€4A9#ue¬dž6ºÈ7†† ÿù! Ô…¡ªRø”T ŽÉ'¹Ñ#½&^+-({8ÓóJ ûûš2Î('CàW“Ÿn#…£¿µ’ ýØ×s_³³ŸèÓ„Á3ª½i…ÛÏA<ég/Út„ÌÂ1ÏÜöÚÙDyÃÊÇ…á®eêô(c…¢Õ"³?z¢•°¥—•ßÏ3HJܫ܂ÒZ »8¤¹üWüÑ-9d¢NðH®|ËD.ÖÛl¿7©¯BÍiÍáï¿ÁuW!¢`É~¼>ØOÚøÅ΀uš½…où?5’I£e³£t—v/‚šiƒTï‚yÚµà{âs©Î€FJ4ŒtC†@»íŒú‚|%ºƒXT âP¢_€†V|Œ­º6KßV¼ß‚¢ ]±,›¥ô*»oäµ£æ3M9wþÉÄ£»¹<ÔNé¤ayã¬!pôåéK:|¥Âk)BŸ^0_>m_š™Çc‚Hc?ÂI”ôž,OÌWÛùüÓ5UFáu]¼ò]~ͳWp‹¶2}­qz‘ñoG÷iŠeBZ«7ñBu2‘"5ðö\I%Êâ§B&y\— 0úŒš9ƒ {Chæ¡ÏY/°f•ôà ?Ùßý: >xk‘Â|'…“Ãß’5£U†˜Õ1E¾e±N-X£Ì@ùL@ØeÉ)ù8E… ÃË€Ú¼{„ cùO¢­Š‘Z[YëÁ=……n±w¬VHqH,›&÷[#?íÁH8róí¯WÉôæßôº » d2ï-ÙGƒ÷î!ÛrMÓ‡óÙ|àî’fë Y®â$X¾qÜüÓ1™£}#6\Üuæ :–ErÆÆ´¿þ_²ìçmÂãÅl6…AÚ xð?Ž51¢#¸nê&QµX Võ™.UçÁ3˜º0)¨"½ÓÉ´FáH!ŽëõКÇÛãÓO˜=eÞ1˜·àNæñ «È\¿º«ücrÃNN5Å”Y_®,š „$´Õ<=…6˜ÖHŠ/ÕçMæ&%¼!àÏ¢#à‡°©a!£Ç6‰¶i\iL5¯åðÑdƶug0jF˜=¸ê·}efýààÖJÊ÷ï± + Єưþ8u=»R¿P˜¿+½QEüÓ9ø3r|È UþÉÞ~ôˆšý-#Û‘psD•øÄºÅåÜŠx8 ¤ÓV˜•ÙŸðšKÖy^ÑZvú_½« o2ëC ÉêcdJŽ4К鄨l˓ڸ—Q¢÷ïÒØç6è¤úöÉî,BÎÍïš(7·KvⱤjƒ¸èzVS æ°#ž6+W?ç.ÁÉôêS˜™o¶¦ ±.ßKü!èŸÇÛ“|ùT ê‰â¡q–îÄFPÎà5ø·šóÓ9ÁY±–Æ´B<¯ö>¹ís–XnÂ÷=Õôþê%kPE9‚l”4ÙÞ8?“®Ë³©—b0cj `’üJ’oÁæ±r%ß7P6Á¬Ý¡1ßýýËD­H8kcÇ“$yÅËdÏ®EQ‹D„x·Z¬y£®x¼NœfÞŸ|ñ»1¥×“)Aá õ®ì\îé{šèL”]Ñs†ÌuÛÃÐo»\y+óðe >ÚEg ÌeBvvÊ…¢A9àÎJtám6–($Mo9 üÍcè¯F Ó¢`sèQŸŽ·g' € Æ¸²;ÖGA¡!‹ú`×Î(7ÍBFÏg˜Ö"LD7fYÙ3òÔ)tžÕžÂáö/Çâ|ØD"ö1d•Ó±%”ûª%`“Ûe°ŸlK¬íªÈÆŽ1±†²5LSYQåUñDÖçcÒɬ²eÎ"çÉ‹-t»ÝÊÅÛ>þùÑî,Hƒ†)vçD¥*ÌÙ™«yöC(2÷™>Ð~Ot¿ }%Ö“oÕ¶Û›7¨‰ <@nnló =!j–T‚ü§Œ¡Ê©OhWw¦I¨Ê:3:T ¨ä­ià,.к v<31Ä„‘ܧ~ᨑˆäŽRÝD”ÉÍÅ ù/<Ä“Ç"u§7 épñ’ÿDç* ÛÖÜ”åé .vCW!±Só=©Ñ5jcú·#zÓ€+}Óv»Ø˜bOœøAœ€Y‘ eúÑÃÝÆ|›û™Cý=ìŸú½½$ BFjSÌ”ÈX½Ü—Ý©£íÐÞT^/GH¾ê÷[â¼Ý§û½|'{vŸb›f#€‹º“\lÉk#!ß:o·½"lÐ_9aÔ˜¯ônädÅ5‘ƒ£—PüÇ | èdïE‚k0ª"&ʼï&OEΨ \L燎ð WÞÀ€™ž«9–†ë|ƒ˜ÂE£&D«0ÙÇéh¨4pSjÀ*LŒŸ¾A¦½=9[–oÆBþڌ“gæ}ÂÅÖúÚƒ™7+3n¤¦%­×h´£*.O)ÔüÀ“Âj¨+'=/ûç7êŸ%ó®({0—½± Ë Ì‚‘1ê—§Òb±µØ"«âø&9ü›q,6põ‰£9êÊÄÐ7Ése[Z ã™òf#u'üUÆ'çä V_ÁTØ©]É–ç7ŠªåÕD-‘”½ƒßøÒ®H® fåôÅÿwÁuÁëOšíŽÀ€Š©ÏSûKëeÅ §{é3s/ O$‘ÿ­Žçåø7†W Të4òÜ» ·áGœ;É-XW|à=ätCk\Â÷N g{½ãCSÐJgn€*“,ЇfMö‹¾[ »}cBê_Àg»ê«³IŠë2ozg¹ôƒ‹<|Ä*%àVðÃuÁ vØRS%˜#ª!Û”ûm} èZ—³.PüN‚:}PS ²Ÿt.ç$ÏRüGÀ³ÀýAäåÒFaªßÙñÉÃ˨i^J Ïc¡Sö‰Üdê~í—|+ºb¤jÁfåò™ãÍu—NþŽÞÌS”¦„‚er Tº? >À'¶Ë‰Oº$ï{X% DŸ[¥uËì°ýu}û¤§‡/R4u~‡‚(Óp¬ª?¼2,Ité 7MË/PÊ«‰ýTE-Œ€?Æã’”÷Ggi¹ñ,Xý[×ì>aU±ssÁEÑåýë$:Àë7¯ó¾'Ù¯ÂEl±¤N"ªô_-2euj#üL¾"9p£³fÕLÙ†}] xfkŽFó~w´ñ#ÀŠauIN DVcÖ;~z°`‚$©C©†@3‘éruËMÛb%¤/«3U¤?ƒK›Ýkér€'ù\°O!¤HðàC t ·®›†[Õ°3]o—Vˆð'ZÌ7çs¾îÀO¬ø*;ùr¤ªÓeáeVOËä“”’ D$7=&Þµ$©Kþ¦è§À?žsä æCVuhƒŒHêð0 ´Ãôà,ØoŽ–X§­ oÌôcÂí¡é*ȶ®Å¤ú^ÊÚ"Gi²NüMn=É3LÊS#"­"i‹Q™Ì2(~8:àÎ&Qñ½–Ekµïë-QÏŒ a2r{êîá ¦lJê0ÅW g¨éÊÉ z›x ¼üS_õ´ì2 #¡%ù.s3az¥v7°8ÕÆâdVL/T|‰Ã!3Xë} iÈk%¢§°¹ Ο ÜÈYqî}°¦›¸Eôÿë4™ç}>®—Õ®äñ %¸“’W¼þôù@SGå¼oþg@÷8v•­y¬wÀ¨çø}# ú/SM•uråµÄE&üžJ3"9üJJ£ÿZ¼CU8m Mä £&+jý%çùD¸«ƒÒcF±¬v§¨¼E¾/xA}æôO”1öÀiO²âíG™PZ[ùw±õÉ ×àK?¨eƒÜgEßô…ŠuS<ùOcµ2$GÀþVX*ÍÅÜÃíâÐí·Wq6ºtØŒ^bÄ2P>îeŒ¯²êC· £-åŒÕ™>‡c,Ȝ虇°LˆóļÑeV0wêêð«W‹<ÃQ7;pÒâ:# OC»2¢û¢Gt¦¥ÁçÇ'¼ á" ö…ÑeI†Û}ËZ^„x§{Ñ>nüMTͤ ¥ªêƒ·€Ðœ@%Ãx³=\ðý¦>‚Z{ÚÔ*½jœ¤ISGÒDÞQ ,+iu“u¨ã²W%&¬{Áyv ßYÖªµVÓ‚jÿáýÀ«íƒ7V üñ¿v\’Ð^ÑO—d€½ƒ nQCJ€5“‘È íÂÓ†øsRõk; ÃI "ËÃ.;Ä÷.$j,!ïÐ s?T½©l å§jÖšBа0sæƒscÅrŸ8Å¿|L94'Zèá4é:ëàMË/_؞ݺ¸õW(Y§ÞÒ9yUSf÷1ÂÙ† þ¹ýo/üM)Ò Õ´·`´IêÊιÅ*4ÏÉl´bk“h“Xnn² ’ªq9ƒWž V@iß±¦þ1nŠô"#Ê_mIÁ €eKQ‹Ä¦Œéê#¶­jÞ?¸·æ©áªàfV[6Žû‹+[ÒÅÓ"? —ì)ÚFwÑ,rVÚÕ™ûÕ‘kßé;6íÂx±*Ý$µÁ¯åÎ]ÉjDtK!ÄŠçÚª„W#Ð:ugfäê£8’R{ÍpÃ)ÝNž^ðôÖY¤ŸÿHø¡lwZ´©æ%À‹ª#ÜYÖõŠ;MAÌÚdCç†}`md¢Í .Ôï0v‘î2ÀÈ~š“üI¤;â7â2ø&ÅOˆßÒ즑›Bžê·#—©<°œ–õD[h²Oá-ó<åc bVÙ‚^åÌ·¯ø]ªì;˜`+¢ÒV&•2¾ÿðù‡õ*ãÙH’ù»';nk•ºD/¨•™=/DýÃsÊ~›jY©x5Iú.Å'sùî_¯ç~€0⤡ʿ9ùüTcZI7{:õ"¯2/q!_µÀñ.È.rªÈÇl`ÿÅ©f‰/MúFCqn=Ò'ä•òLêë…ÈJ¬ú ëÔ$–[hü¨ñÝ<·E-Fd9ö¸+$¤xc&ܤüM)¸$™ +×.¤2ìŸ;QþQ(D#eÛì«òà7NXÜG æ*C½ún"¯¹¸Alóp Šé†­b“»Üâ3ó'0A›®· ‡åsWñÔ·ú÷m¶jl{GÅÛñb~Þwí/S%íã5·dqÞt.'½î£µbŽyCk¤Uð½îq»øRèYÞ¬n`÷SXÂW”e¹»îc"‘Ö‡¤1Ù6,(‹Ëˆôjj«ÿÙ«údK]1~µ¡aŒ’hƒgÓÊ{ÚQÍïÌ"Àó#UMGþz –„Të-qŸÖAÙrªÖ´®yöB‡ ØiL3jžhY Zâ)pþÒOwþ=}ªŠ:j¯©,}ü.¾ÊvÍ? 5c;7ï`Wx¥ho·*múX©}âî¬}Kµ«é9 Òý°»ˆ!…l3cÉQI®®¸ëJZ D¹³u‘Ôz‰CôÈAª–ëœtEüã{ƒ‘¯Œ2Éß¹-HMgÔ"W½Ï¨f$gîи$ÆL†1Nd"ã¸n+vë;{šÄr¥èk”›¦3â­ÉÃhÍ] ¼Õœ ë݆œ,Û_óaqÒ6‡Û]ÁMšŸŠ–i•?\(…ñOF'ºDs±^FžÐU{{ï}»ä-“]pÊÄ )ùn—ÏüWü“ÀEY„äý1ì ¡ìG%NŽKûµOÝ–/{,Ú¥h³¹õR«P¦ÏK%‹kS¾RÈFìx¨}žŸõ/%VÊ ß³µÄD|vcc&\¿íÉS/Š—Rµ'C\Ã:\H¡°”¤^d ›qVLyãµí¡Œƒð aiiznC65/œatž¬›Ö4½G"¡f–üÎAEüé"ƒV9!Ó†[T˜à(ÂÔÏÏ\óMøÅT•Ö³Óü<6›Çï¨]—sI*³âÉ`×VQ/3üI…ÕKÇ£‹i`ãÚQ#Ó ¨—·mmwZBåŒIÁ£D¶_XðD¼ –u´‹øæk™§ínå.d¨¾LñšR´7©É­x¡ÔÖ²«Î&áîÆÁ9b|ÙÚ="ߪÊ\ ¼SG¾™ñí ëz³¼Ó[üMw. «>Þ.¤ˆ÷â:3^&…+«•Y,7:s—pg’'Ì€¨Ýeòüú:^ÞÌw)Yö !r7c¼ò9Äñà‡{Ùjg­:fý¯á¦[ºˆþÛ˜öì5r3Øõh³›²4üÓ6VoååûŽÜuîT¡IpÕ–ÃИUø\˜áJÀ!y?¡2¡©:l¹×÷±› D¦K”˜:_2X19´€bµÂáwϳüVÎi¹†!D,"Íë¦pŵ Mh”è`£NåQ¢÷{eÍf¬JÞ*äѽ“V«;Úy=Âgh'H$ áOÑÃr´BNM„È‚GS»ê—Ñ‹™Ë“l™ÿxT²-¥.a!¿zf—ïL§Òci·;/m|NþoÒêÕ’eK&lY˜G>fV¿—Ùü´•ž2/Œ…ü͸ÓŸ§G¿Gÿ#',¢Äš†¦êtø†esGø9½(×û¢IjfÃoÛ«Lv«¸TâN™%!ð´TûfÿìЉC!¦Œ!É8ü'£åmâèAœªP²zh—h†¬êçÀvQÏÕFÚ+*ð#ð•É2ã€v g‘Ü3ÕFE]0šlÉ>Ãa®Œ0'²P ß»VybwcßüîîÑèfyXn³ä–I« ¦Ÿ!çsÜ”ªI\Ÿù6<5í:R€ d¢··Íüô…&Ÿ$beïÍ„pÍ¥ ð¿1ѯÇdzõ·}G±N%†%[š¤“eãX,q’ìl;/ÄÍkÎS jwÕZw€KàŽ:ÜIžÇe íAðÛ‡Û³>œÍ®Ô^ð‘ibz9‹TpJ.4/ɦƒÃüX¹^mûb ¶‹aõ'h4ý?Œóéwÿáê?EDp‘æÆ¦5ò0&2éö¡ú¥ePD¸0+é¶ŽxE7-ý)x´ÅØߵo¦OÜŠÒáàÖH‰Ûðoáf©º@•OùLdbÓ2ÄŽÁì ŸíÄêAýÎ@ú=œ>{’õaŸÀÈç—(§“Xh“#²;’A‡%ÔhþÞc'Ãì­­/ºb9½åÕ|µ‘“°±D‡iå10‹‰¢Ñ‡\µý_j„V£ô×;'òd+žß'~HàL†ŽšÑcÎS—ýƒ©µË9ZL?Xã-ºl‘ÁüLÀøò8Ëd§‡ñXãÜÀ@¢H04oÿ´ß7Þ"{x×ý}95ãÛ&° %øªPúnÜqýYÍ’˜á9g…‘ ä¢@°áC^õÚ5À¼äú¹H¡bÉ® íT}kç{# ìQËÇmpP‰X÷ˆØIÄ{í(²ä!‹¹ÁªÎ•á %ÝîF½)Ð쥷v`Píx~» œM¯•iÿ‚‚0Â%È7¦‹ðÃÅ}P÷8¹Ê_«9Èg(…ÆÂtÙµ¯ &áX/-/Qàˆi¯þåk62d]1Ò©—ªíI׈ÛdÉB…æü”¥üKEpŠÀ˜*^’¢s}§‚~M-ù]HQEp[Š""SΚ»º¿rõo%¸•š76l6#ÖhCàüûpéqn~êÌqžªš³ñü–JÇ¢ÇÆbã°û›{Ó'1nÞ/~O+ùi$«B½o—¸‘xÙ™aV=ìA!Úb6Ì—Œ[‡Ó̱ˆcõMÀdâ1›ÐѸíÙ»º ƒÁêDÆ'ùólOíâcºâÆZI3ÞLÝÿºzy« ¦(ààƒùÃöí!àsƒÒý¨#Wáœeo‹AᢌUÀš(ûYÑ8s2ó*síû,UFÿcØ\Œ4ß÷¦ÕµãÊåS. Žê2^KpäNñ©Dñ™sv®G穊¾U£™³ÄÖoÊ×>ÀÚì~¥ïå\£–‘ü±̽ÆPÊ­|ßÑKk¤p0ÖÒbiùæ¸Óòé¡=ó±®è6„þÐùÒ9‹m¤XöjÓ#u^boz¯ÔžÜd÷ÚFãëÉ'ØhSïrLËŒúÎ]ü\oKãSÎÑÿÈÙ,WÚñû%½t wB:BÒ‰–øŸôÎ’‡ÈS¥˜–ör”'ý>šSpŸ»¶²"«?+FÑÙÕ:åN-0·oRB¢).i± Ð…ù˜Ã¤ D`*°<¶ö€+ŠIkkÿ]EbÒìVRÄÁ¦Ÿ²µ3¼$hYÇG:Í(Ò;|Öö¢Jtù¥™“?ü°ï˜¡·}­¥öб$³ÍmGjræâ@ ¦é±îHþϼ¶žŸfËR|v(µã„™\+g @™ÜƒÞG<`ËVOÖR\“ú¨î;„C_Ê’ÊpWœ;D™Ö¼Y«8Šß¥­§T„ï•ç(àÃöûÉb” •úMë@”M¥vB|‘ˆ•=È«Ib4i}»„Ýa.\ ƒÃ„¬ÿ‚¡QÁ±\—(¿4P<=Þâ¦qЊ(µÍ1Ö ‹ ß“RÍXZ›ÎZˆ‰ ÿ‹‚®T¿GðÍÖ­g÷iav«4˜ÚË”áe×­†^ÃÎä{¡‰5áBŠyÐü]l´ÉdšÔ|OggS€+ýÄ n"ÜÁcúEÿÞÿÞÿ‹ÿ‰þÿ ÿÿ üùÿ ÿÿøØÌæäÿNåçéÿRáãñÿÿÿÒÿTÞàçìøìåòìíá×ÿÊÿÌÿBÏËÝØòü|¯Õs?¤õ«ƒx;ü$w”Âä_ïßšØÆ &>Ç]5zejêäMbèY¿×Éøó…Ø_VNÆÕ D /J†³Ïï™J½Dʆ:f VÚ_b±¸^]ì 7Õµ‚#NM0ÌÒ‡."™ä̇þàù6¼gÌÚ«fêfêZËN ‚ÏK—UÇ7’>Îg}™ÔkPð,€²Txx2GQó]9Õsœ}Jz÷¹Ðî£Ò…ÄE£˜¤ã4<4>LÑݪÛ(%BËÏmÚlÖ0Nes¼†JtÁæ8(?‚º}É^=DBq„„ðº xö4xbDÁˆ‡Ì˜vXÉÇèz›É1Ln¢…ªù÷®I£+b #¶I¸f³AüéÙº3|.¦‡]Ê0ÉXcãüé Ó5¿3ß/íè¼íM6I `UŠpŒ0·<`Ø£rE6¥íŸkòE47ø½÷ævK›,üŠqrd{.ç…¢íEü!£h½YOLŽœÊ3#"óÀ4>´µI¦™[×5®nZ99)VskõùûÆ"”Þö(TRR÷ß]`ö[_«5Û»P@zý.'&ÁµwªÔm|2µ÷Ñò‹Š¯pš3[%u0÷xqªþiÝ£Œhá$}RÑ2ödm7êÂÐ+ÙkðX»c›W™)÷úU9q^ ßÐWÃñjfœ¤™ŽÄ»u ‰Ý)–æ×W ÆE“S8Ymr‘‘Ï’÷l ¬ñUáhou¬^ «&|„Z¡ÐHœG<‘z’Œ{NI ·íl ‰25ÂçN¾lÞñB¨Ùj>‘‹7¯Ö¿²ˆÐLT˜†åøï(»S—#‰¾¤×ʺó_8Ï»n¬­ ú§òOB]¡x¬¯³üî5fÏj‘苧·ûVP¸ð×p[¼3#H¯œ0ÚÒ9_Ó±(ÑXu7j†¨k¤‚Ñç—¬^ù`óàãþd$çþ‚І¨'˜Ï]Åxr¢ÔõäÂs7+nh1äÚÒ~"sH cÈMã¹ãªí5×Ý3-Î̤‰_Ä'cð…úÒ2cáÇß’ŠÃLÝ ÿ¼Î2‡Î0|K#(v‡2ßY]d÷d|@üMšKáëͱ®ir‰ *µÚ6)Ã^­8Yf©B!Ú…vÉŒÁ ¯osD§ËDEj92/#.݆e-Zdn7É0ˆ4Ððò'^yàsUÕ!¡7>Môt7ÒR ¼HÕ¼Ÿg›¸ï@|’$¬³YÐ2³ZgѶ¬| q¯–"Ä$—íˆFÙ¨¨ãƒ ‡IÖC'&ãκ׶`&'q“?DâÖWÍÛóÞxÇ;û)£™ –A⊶ÊqøÏ?Ƶ“7ØÉñØ|O£~½±Û¯­g@ârknVZë-ÈšuŠr„ª©NÏ´wc­íèÔ-ë{§!NêŠW˜MæYbh/ä}7ÎN'“³ûÕsë·´)'¨=Ë´9Å#ÐäG»';ï‡Ö4é´–M93ÉüÈ›²&bá+ð™×-äª /&?ŽHiŸ%7^ë(Ú˯9„•ç&°Q §ØŠÐ^[ŽÕyxƒÌ#¤ `i‹@Æl& Y£‰,;ð]i(ð ìG l+#&ü±Ë[7Zƒ¡™ÿµ˜Ú1ÁkãÁŒÃß:i[e1ž!ÅPò¬ƒ§d/µÑ’€¢ß eÖÒ³5›§.·Î†Óa5õ¸ãÖX‘Í(ÌÅ{¨B•÷iƱ%ÄÀØVKÖÞÿ‰±Unf*ÝÁÊKŸ>Á­»§3„iÿtŸÌá± #•èçÑç´APoÆzgâ+éŽ-©’pdY«Vrp=¹2R©=ÓQ˜×êoÅ¡rêDï¢ßE#)Ç ²À›ƒU9§.JWqØ›ˆ‹Œ wßLÉᬞú³|+9†ªÜ¸šŒÁ}œ„5=´ú6<Š{5qSg>ª)0)`ó2ávC„Ș§éj¼xìÏ'ñhÔMµFjh 2JHírSCwϣΪ±èüFb´® ‹ 1”ÞèT_z’Š&ÚŸ›²oÕ‚Qó?ZËÍÕr¯&y}emââmLiÜ¡À)‹`híì¦ëßÅ„õ'ë´­ëûYxèÑh’ð!¨Û7¼†„Ú;³ÿù jÒwœ%¤N* ¦LÅN÷³©áb«°ˆ™”|£ð3=-¸Û^VBÁ Ë<½wp‰VµqížžÎê¶£¥=:Ù ¶¦cs9JVý£™š8i‚"‘¼& xSÚ¨£šG®9›W –ë`ŠePý´ ­Ñ*H¯¯ÌãÒ:Ô¦¹ °eAn{ ñojÅ+)ïÓ[-t¼ü°ÚVIˆ`þ*£ÀêªqY¼Ä¯9Ÿ‰W.j’@‹q懲õ^¼UÆs(þÂ,P æ°õi}ÅÙ.äyf¤¬r‚T£ç©BîT ÓwÞÎ2{ R±î¥Á»»jñç'ö“VŸÎB×ÅíÜØ¡» ø÷æ2™qü©+©E—݈ùyÛ‹¥õ"Ê…ãéà bÉË PIv} ®ÝРÔÃH'2p<äK©]·hD»íÖ2àd°SÃà3¾z>b]Ê7º@=œ8? 9æö”ŠÖ›Ø'n_Ê$[æTïɺ© xµÄãSÄä”Á(æ°¡CBA»z5‰OW˜(älB‘§š#7¾v efÖ‚ß¿õvøðg '{Eª¹4~#6¡ÂUÿF•cgLK™¡„§KªYS”Þ€_0>4lâb‡"u¬ºÿÁMTБA‹mKŒî2<ŠÚD´0…‡$, Då>𘪠POEuX—±PsþÖtõ€²´ Ó=OÝ·FOcD †ð±O^JÐ/ì‘âd ÑVu[=ü±W,+¶èUî<^^È Ñ ¼e§’œ“OÈÊxY™‹:õ–Bj™ÁËR1¤~ (x@cˆ0ýáK¶4U—y/p<ƒj…ld‚åq«RGŸÈ[`þˆIɆ§Ñÿˆ0¹‹½™«s†¨îãÇž A Š`Àѯñ;Q;.Ø\Ük¨?†ÒÆÁ"­F S ·ÒŽf/8¿’nlÉOJ—]ðe €ZØ<Ðnš¢r‚’냿=ޏÞR`VyP)§ò_{{KÆŒ|þ¡T“Ìÿ„-]ß>³SÈ‹aÐ@ÚD ZRJ'TˆxØ,ý­ÁÑzÌ_¾ân–çæñH–³!\þü°ß¤ªÖ?â>&npÅuȼ{vT?ScI©–»Å›I#‹ÿ†šãýV0ÇÅü59©fZ™ž|y÷H´RlÂiBG:xHÅ‚À¦Nºƒ¬ººµ/}Öžy ¹ /Ÿ¡½32Ï% •ÙLºÐ rTBA_篹*­m?à×ÀæÙŒY‡/Ü´G@ [­qËÁíܤGk©£+÷Ùu{ìVS%].ž_º„ÿ~‘\Yþ¡Ò燖š{lIA+¹/ƒíKjÿCÀUÃÂG‹°½ƒ-댠/¨mgï7g½‚&',ŸJšQsWµ#˜ÿÀtÉiuräŸ>hç¬ë)­Í=Ga=ü±  {LV»>f!„}ª÷Ž$«Ä½,ð?)0®IóøOkƒ…Öeß|Çq@àíN3½1¸ è¾Áx¼õÉ`"™§åsCŠ äˆ3`ô:ÐGÇÌ8&E_¹öø—êÀ,èvT ˜û,m3_üÏ-’ܵ…¯]Þ è+›™&"ñpo³ï2S†amzaj[à­Ç¨_&ügÛÿOÊzl‹YL"Ä2Ï~¶¥«cëVÉM)o"‡ýP(‚€@ç ÷îg5Á½¥‡®ßÒ¤Ïú½„ƒþK;òÛ8ö¹2}(ùUæ\Rs€Vo qhEÙœ‚ ÐNÁ ™êÓÕ½@$ C;=ü±Ÿ6\k„˜+gùxÁ™ëyøáBñàna“‡G#êZ캻ä?_SÐU£B’û’HÇi(WÒ.þ.¨ÊåÑ|P*¶FÎî“Ù¸qól¤0BÆ §‚¦%“¥j$D†YLoL 6 ëÂàüåÜŸäx§G¥úÆ#?_s\JX‚–™¨3'”ãPˆÛÛ˜×Hž²*œ±<ÌäØOUäkc`kwqI³Y}4â;Û%ðažî».òÑ‘å|Û*%L÷TŠ•¾uðˆkKVáÂÕ6·^pÿû?03´qJàŽŒMz2—˜€ '55Ùóßx¥W„*•_àMð„®Ì´Ã÷ôjzˆ0ýü±Ÿ %½dãûØš¾&ád&× §+dþ° “Ô¼J&<ú‘˃„Uô4+Ñ÷¸L‹³± ÌdRß“óçb±ƒ!5â§\5„ þúI%¡yt1¦^2Ò©£œ·ד}4Ëô`µ< :8Â1ñÛ§vždÑ™]•ûb*† ¯uüô’-‡ü^Í ÜaȤøöau.„›±O¿8꜓î¶y e Ž7p7Nç lü½lƒ#‹ö†‰3ºR>e ~˜0^´E)Ò¦üü›ÂýZ¥î©¹Û¿?ÀØxß×Ånü†nlœþ71P™[œ”@œD¦Ãæ˜à}kœ›ˆ)ir“À6bÕh)~¡hRÉC‰ h3%wÕNK>ŒË§_÷Ê]“|˜[¥„“àªsGŠCyÐÎ8¼+Ž\ü&¸ðÆIžˆwŸ…¢qಊng†bsïûÀ~ýÃ>¥{®ýï¦ð@_ ¸‘5¼ð‹Q÷{ ÍÅŽ5{Y~{RpÙ=Ë®èM´ÛÃèÿ\6ŸxßÐpÈWs Ð¢~Á«$J“ÜE‘úÂÁzH8^Tïñ0AL^||ØÖ=N­B‡^äþáïÆAyüžF2ä’KàÄÕ¼g‚“>ákiwX¹ð¥f–M¥T/íßRÛ s-²t·AçQ¶6iÎ…Fr®Nù\ËÀvqã¨I}ƒDÞe¬lž ½(Á·Ë79¿V‰u~Žf'#Å’ÊuH®+ø/šF{¯z>¦°ß„€@ôuTæ™´ñ—`N!§äåŰûÈÛP:ÈÍï °µˆâç×92ócž5½{_„¯´ùW£ãf/ ÖhÇ 6h_þÂ%Åý3{ÌTåµI´ÍÃËo§yüWúù…­;Ã5\KâcÖR=Dþ_^šwOÈ)¬º"ŸË.8æNðø\p`|\Liö™é+jûÖ‹ZgÖ®OuîaP¯zÛý ‚c¥ƒîN‹Ì·Íà˜S–Ó~Š/²X°¢j †v>ÕZµ/£= –ñó4¡b$2§SÅï6²C·”*w$µ ãàëÿ”Rò›ÚíìÜî\0áÃ:¯«n‰"¶+ú—4ŒÏÀN* ,؃sk P†(á‚b]­×yrâ6…¹iüØ‹Ð"®—ª¿yŽÌJÙŠÑ0ôî5M;z ÜŒöÇ*-ìêøäy”]ZBŒ4LòÑû½L4ƒiÖ¨„„|¬4Cg{Þ_¦Ðß,…މ,ÉÛ—#1!®žì焨M‰qŒ¼­…7óÒÊGÞOý½_Ä&B?.TÚtñúpXì”H^íFå]Î žCHªSß–QwÛm±Ä‰Ðu³ñ´–ÜM›jû)»Lq˜¼mcŒï«‘³dÐÏYïG“int,b2Ô‘,ÚèÐÌ"ÈõùŠ †ÅwÒÄ⡜ÅRó™êÔÊsW¾Ó¤ÂMj.NeRp¿ zN²äó¹+Ü`§/“°4I$Ä™æÆ¼³(¦)¡GÔÙd‰ôó&p‘Ùz¦¾v¹¶=ߤ~tŒÂ¶§ë—KZô¼©EƧ'Ë™µ¿Þ'ë–nþ0¢Þ•ãN±;_ùxïŒÜkTd޳ý–  E)³C‡Þ_´©tW·FüIpáÁnÓ¼(‹7©j‚yCöÞÿ‹ªv …ô7_µážù¸(ìÝ•$VÚà¹CxÊxÕw±PËå¦ ÖÞ9$ÊŸ¶VÝ®I·©W¶N•äB®UœÌLÓ3‹ôUCOnìk)V)ÁS|¹Á¸á.#}H¾FG2ü*dØ@%X"j)˜ÍRaŽ aĹ€*h™!´ÒzsÃ]Æaý‰³‡P$ÍÓjAÿZü¶-º»|8nįŽ­/ïú°“”Ö8L«Œ§Ã÷D¤”èJ1Ïolï ÞNMpÀ“á$շцɢ‹;«‘^süµß%×Q’cÞÍ|sv °Ç’ÏõŒ^_ó~õCˆÇ!•§0\é pòDU@NÞáùÍÝ+ÏÛ)¹¹JÂ6*Îñâ o9Ð쳄wGÿp8¥-H´šì ØÔM^r‡“ú³ç³\ ¥ÿ>²0(™vRÞãÚe‚&ò ‰‡”çŒfö²´ÙðÓ ¯”±ãÀ™*l¾ƒ #Z—™é†ûâ¬U—£yQÂ0P½Ÿöá®ýPj ‡uI{Ö_c0 ‰·»(ÁðoYê·òÉö™‘ˆ¥“(>³;@ORˆ$Žñey÷B&«’ú"R½Bª¶@° Ó9.+ëYz .Oƒë rÆ×0@™¥d¦VÞY?$ÓhúùÇkÌÕÐ8ºR¥åL*wÏúH4æöœ8¶¹½ Çý¼@Ø-ªN~ÊÏŸ£n#@`&•'C›§õu å¾å7^ä‰ü­ßBkƒ³Fö%Y¢Æ! ´­Ý“H°šH©—ë~(N ˱/•ü¢ž[MBth¡; Þ6×0ÛU*ê¦Æ=:ÅäèËwâiài,E ·ƒ4@/ì€d ,­½ Õ¦ø àš+,¶íšž:']ytˆ ïlËAj(̳Ïl#¥uvØkµyeÔ}ã’5Žœl™S‡.±r ~ÿ§®Y̰ð²±GÝá;«À vyú«ÒLJ`[[Q»<£:"ÕýDEÕk ¿áߌvéÉ…çï8”LXeÐwó'a0\-—G¢ü®×„™ÈFÔK ³6Ø-YkÖ§¹q€2ÿ‹É™3ƒ¥a²]i,^zI¹˜ÂÀV’› “¡çLc½Q¦øgƒ×ÚüW“§œÀYˆ*AH¬Ë2èo,¹Oïk ýÝakÆQÌÏãŒè(0:ÊËÙ}ÕfIG‚&‘Ã0QáÜZª[ƒ¬d ÷2\¿Ù 1ЂKùò(>NÚ£q|hÄÌI¸-Ç.Ú\o;Ïo¬aõÀŸ:(°£š=±ÇLAQï9Dª"jÎmÈaÔðEåªÔpuïÿp0tîK’·•†°%«º¹%ŠÁ4¤ÎŒ™ÜÁoÑ6¾ßâDšÜðã »BoyUšÔ¼BÑôÄ×þ…€v»¨4ì°KΣÈ\Ùß0@ùE0‡IwÅî@»+.#~âWÞsµƒ·CËMœ@9. 7½Ëÿ,¼I‡|‹•2 \!g”Frf6xLšxk‚-H¨•lÖ”D¯…SÙI·77·Cßµ÷AÐC@—òw?¤ü|·MCU}»eêOÑ”Ý'sMZPÒVÿÒ@EÖ³¯*ÄÉJeä½cxn¬XãÖ³xcÚU‡âëqG£ Itn?Gw´¨h²=Ÿ0¨Éd£©_­R–—®Ýt7O¼&¨êM €xsùB.ƒ&viXÎm¶NíBç&ñ¨(ß ËvÜE†Ÿû®S€µ¼¿¹c$Pì¨äãûè²eŒÅEÁ7¨æ7ˆÑˆÖKtÂÿü£ì`]3J k"Q.òBÕ2饠«o¨”0€¢ƒà³ú%»žó꥾ÑB¬Â-´ ¡-zÇ”GaT+½zÇ4˜Ï¢]7u<õ›9mÊÞð/SÝG|ѬxØÜʼn „›`ÅÊ© 2_¨=ÚôXeHÍU:Ôê¼Ò’yˆ#îË…_çM<â’G>`ò<+—…†¬ÎUqƒëß}6¨x©Ù«Ð zÖü.U6tÙ @äYßˤ:£*G¢>o¥)ñ5egïåê…(ìN=•M[b’!¤ù?æg ÈÓ¶k9åÀ¾ã‹A³Xy N¸jMêØUˆéŸ )îtÑì±ÔcÁ¨«*O£¶D8H˾rȆñ) ]¦bE5˜E»íºƒøÆ£¾ ƒLAUÙkª¬1YîË84š9orLγ_€Ê•o½<˜†äÞ$.ÝÌ¡ÄT¡cþÊí©]'B[ ?ë=ywRQ€dD Et«aI©@f÷×®¨HµÁÉêÒ¾üðÑMÛãÆr<ÉZäFÂD·‚9æ/æ<Œf׈?éæµ›#gèkr¼éÂ>öåüdPHÌ;ÈØÕâ„4 B!‰fª–œ°óÓ4pÓ‹§8Õª Ú©$ó¬ÌjïCØÆÓßK>FüùÔ€ü];0^Lq[ìêJÎÛy @.é¥Ò•kÎ&Ê$HÛÌñj¼Z\A± ¹…‰ò€‘;ã®V 7ôÊÄT©å¥ñ6ݧ_-Ü£ALP§`M:âu.—õuݦÊk&1èñþ$ y _xüëö’Êœ¨EwâËüMbûº±'YÒJª/÷H3›­¤ Ř„}ŠlÇU÷=¸ñþ÷1ó¼Jì¯tÛ’ ÙÜög”þE3¼i3Ï„½ÛR'ºåÔ¾™U9ÞÎoc·È³·ÓÖz\õGšW}ü7 ·`M;Pj¬›0ÇÊ[·–އªe0üuXY‘‘ü€: bAŒ„¢â¿E¢Ÿ•öc¤¿:;äTBðã½íÖ0ê•S¾_È|êø<Ôqò.}tñÑ X=5õ˜ m’!JI .Í鷊݈ >¨ S„´&È{›hw6rZƒŸCüIùÍîdÜ…s‹'àçŠç åþ [úöâ‚—Hø24eã*%ŽMh Ô$mò&PMΤenú Qzã[zhU“àÙ`6£¶“ù ˆíù!ôUÈù^ª£ULuy”[ÙŒŽø|™¸E‚»ùÀ½ÉÍ|·©sÂW)æµc—… Ñ)èRˆ“.¿úyÈ.Ò3!š‹˜« M>lî_e±ÈûÕ,õˆÖ6k(Õ›A?š¡´8cXô(_ Ãxˆ´à°PPÛÒ|Å"%ô8kóé“ËŠ6ñÈG ®)frhSÅTÃ¥þüL¨s•SiZÊÚ‰ü¢†TžÎºçêaÀ|æŠè¤÷Fãb=+¥gx”æâ`ÉÊ‚{÷z“)“»ul}çà¶j’ôrHjÔ÷æí‘<è òÙÿ¹wr¾Ñ3‰3 §[[KÉÛì°˜ —˜B€kÃÁþ¬þ@ ¯½ÌõïÀ«2»¤?¹cl°sRCà$PšyØóÆž¿à«õw½é÷±6ÑìSqaóü³ËfzÆÑí¦UuOßê‚N)jê ¶Ñ´(´C´:ò¨LŠô6¬¤"4ú1ǘþ„îey#[ŸÊXZ7ÍN×avH¶:êa¦OûïЧ·düLÜ1šbÓ6ÕÌ>ƒ€Ï5¿ ¸K²óîß!•O¬Ó]|綪\i>\ 8{C8üîÉwÌv2/¸h¤“…ZdßW,A¼/ûÐx½÷Ûœ|,S¾lƒd3Do(À*‰éժݼ o)ÇQª­¿¾Ayû{”2o»éýká2 t%"‚ù!ã¦KØ664ý€?Ûî»rô¿’Ëú ÑägÊ[:'¢éÕì-L3Ÿ!¦Vç0»ÜÂG×b3:WÖ8r!¾7¼Ÿ¼+¾ÏšûE„þà.ZâáM³Ë]¹%3hÒDûв[üWý<›ÆBûg8Â.ÆO¦Ka+õÎÌK_¾~ï´(J[Bï€jAȯÄ^í¼€^í1ì `³’RÉ!°=ñtjMÓËùÊBÆÕ¬?4€½âñ`TOqtðÐ*§žÞ×Ë ší¨zâHEö;¾óËê›Óõ‚ççoSFñ›®C1Ï"€×ylJË[ô••ÔSN«¸[}•ÜC`fž¹ÂQáÓ«ç-> ¥‰k¤qIüörXrJîU£¥[@Ã7‡ÛxåÖû>½Õ6CjÎÿàÃE üIw™k?sjG‚g·:gW=ò÷§ó«sª%8Ej"<§—륷.AÐ/‹ÎáÏ6J¸“ùºõ§Q¯Õ Ué=¥3CJÙzDn4”ðuv‚ËaÏ (ª×=ªì æ&Ń‚äÂ`ífµ¥Ÿ¹ 8N?ñF¢ß Æ•°ßK ßàJß*þ#É-gÃÇvÄ6Õ—i/’¾3D"€1ŒÚX°s™B² 6ÊÈ´¼ Ä‘ðä×脚w Öøy†ÌU4úÄ‘²ë|Grºäw'O™ÏÖÆEêê/ ˆ#x€e–»^[Ú!Ô#¹7wõ*ƒ Ÿ³ì±üIîý‘¯S¨#*å0FÉ¥ð^B r• ÂH\¿õ#á›xøÁ!ïÚq®‘þŽƒHDý„)*62À‰®[-ëÚY…ÛÉm×Ñ4òo§ïIhLÙêÊ4L=7èl‰á¶[‹¡¹òΘîMšæt–`1÷À¸1àL™È‹`ª½ÛÉ0ïjÏã_ë’Çr15Ibê^\Í6k7ãXQjù¨wL¹oj´7Ä_¦±¿±­TáÛ_XÎ.“ãȨí°¬OưóV@»äÔcA1­kef²Ÿiqöÿ{v—aM€8©züIw¸â Ô«{Ž‚ûèœ!‘Æÿò9)ÊÔ\¢¤Ëgj¯ÃQ<•,ìpˆ¬µ·,®·4F˜»êª„(d‘{Ý:/7y sK’—Ö™¸g±Å8fð™ ÅsôÂÅG‡7aW«’LžÃ[«¥ç#6œYB©œ•—`T™æ…ì$ÐbÄ1pÝ}ãçX®ÕMt±ñf­à°Ñ ®~ïrƒü|´ð˜Ÿªra›Ê‰³ Éÿº—e8ü•á ¸ww§!L|­ˆ‰“jH„´W 2lP XÛPžEzî$ ßM'<”¾äôcu¦ŒŽX¬+—Aš.œú(ªkôAHqúaB”1uS‰N¾»N3{Ÿ¤+Ôd¸qrЖ¡O%NPà©eÛÝaÛñͳ(…Fi¤ü,0»ÃiëDÛ¸9¿SÞ=ƒk–®knìòG3€Cvü¦a¼‰¯O¢dîð®TI½…5䔎csv3¦lK-ž63•yÞËð8lK 5’¥ÀCqÜÏ÷ë’Ç=ƒ—ïÜ® ÿ_ÚT,ôWåQË8÷Ç™‡àáqRi¤Ö^þô{¿æU¿C'Y¯ÜÐ>k…Ëb9›"s«g| p²´±êýŸºž» 5ñ…d³Ô£)ïÕLŒè¦ùï#ñFÁÛ„žîÚóŽ4q‚´mÛÖ7Ö¥|‹a³™¤rŒ^›+)VÊ+½äâÿL€F~I¿êÄÌpwì:È5HURûòÐ@¸î6‘‡aÝš!ó@ûáÿ½ów:—@b1#6¢}û}¬Æ{RñMÅ>zžòljꦀu÷øÊᨼ÷‹¹õüŠqLx ²€ Þ«ÎðVõ§¦€ÄšZh/ Å„×½`>±È;hE@™ÊQ@CÌKìÆ©p@rç#%˜h üØõû ( U¿UÛ@ Ä¿ÄÐ0ŠW³Ó;ûÀ% N™„<À;åç6¦óƒ^ä¶1AìX¾>†GGfØÔ”Ê-jh‰ñ”Ù½n¬sdõÉ-®kƒ(èrÞ. @¡› ,ÕÃ^òÙ¼-1(Ý©Ô.Âð;$®×¨Ž0 ÓÒùÉ!ߦd`˜zÃËt&ô Jg¤9`?Ý•TÉœ.=I©JP6©OðwŒc‰ö7ž|ÉÑóø×{-åõU rfUÆ£ü4„ýeê®ò6VÛUX e`°ÿñÍDó³yöäH¡k_—¦}<‚„Â&€æ@éØ^Y院üþÚ&žEŽ|ZÂZ€£rÝd<ÄK&E~‘ƒ-üUÜ/w+<~a'ä–ÙýÁ©vÿ6˜«“Þ‚àÒÖ¾&{Õa4àü âÓW¨©>t‚Ìo~ìª&ØmtQ9eR w]‡·G#Ús4Àüõ †D_¶µº Óþñi ÞœdBqó[sYÿ¦(÷UÖx·MU‘¨ÉJ¶­“té'|>%=ߎEìjª¹ø+ó ê´4¢`ЬhàEõ"|z8‰……'VŽÏ?1V›ãú{ˆ™ãƒïnŽ•)-—Ê@”šOAë/¾©ÉÒØ]†°M®éö‰`÷‚{&ÔêÉ7”ÿ¹¶2Ì8Y±?‰¼¢g. ˜ÏãY™Ó:•§2.~ Z×-_œ}át Å^Åíã®ú ·±5£ˆfF]銼&_8ñwqдYL›¯€6ÀÎz(uU ”'ÒlKËN:=ËêÇPiˆxûâÌïã!´uÏx‚s-’aF/ºæ-MhÜ7°F¬Î ;Ž <Ž˜.!E'™0NqíÑ áºÐÈàÿ5ýA™8ãüƒÖ‚£tChÄÏᇜj’6`>¡£ Çö‘]ÌÀXÊÆ Ø·#ÑÄ|Û¨6ómT×µÍa¾Š¿Uü”΃‡2\Y6¾ŽàÈáê'…ŽËÕ¼ôë^­÷‡ˆXÊ;ÃéêÊ)“ˆŒÒ‹To¨Cëeœ$—±2õ)_¢ †”'qt4¾6¿®ˆÒôµ‹Î0 ,Èð{ OÇZÚßîBM:Ÿr2÷£ýŠ€>eæê,Ò¯äÏÐû!@ËÒ_=­X?F Èú¢w3®Žw/ÖE·H®ú6üL°P?³þÕÖV\"ÍÁæŽhõ ‚sî˜Ö¢ëŸ#|™3•CD·0§m8À‚–•—4ÊPP1cßJrמvÍiÍ *Ób1QU~–ë„BÓ¬°ª,n'ÌoUà‰@ Ö2¥+7u&üïÊL ›ðb…_!ZÔ•;§Œž-©3jÔöFPÅq/,žJäDìzEd¥n~ªKdó¢_žÇû{Àìí«›ßÞ ç饉2ÝÛ.3$»ÜåüLÜcLë"l¤Ü(= ;…¥Æ'@uHìÝhk(ˆâÜÉ––MnÜpgÅV=XÍl* ætÖWŸñܵt«;‘;æ+Q‡§gkBÓõÖ¶âwgK¬%‰ýØÄË_MŠKA$’B8jË[AzÇ&Ù{ÔsÃ[ý"‹#zÍÍ¦çØ‹ð¦¡Ã¯(muFn¢®ó[Ù7ĉpýÊÓòñ3òÀæ¬}Ç΀!~íäc››¤Ì¥Uh'Ï®83Ÿ2u´œêøÓ%Ó2Ïd¸²®mòPíÝŽN'imjsTüÏó¸e!Væu;bÜXI"“eS7An¤rÀy§'ÜïµsS(š ÁFÊ»rl‘ êBÚ”¢ßŒqØ„u~±AÁ +adëbk{vŠOggSçýÄ n#•¦/;<áÝçòÿ ùÿMÛ÷üûúÿÿõúóðöîÿÜÿÙÙØÙÖÔÿ²ÐÑ×ÓÖÕÿ[ÐÒÓÓÔÐÎôÕÖÕÒÎÿ¦ÿ]ü± ûÁCÖ–É_‚S œ2Úòp8.„"¢`ÇHÀ@[1àa”i,ë¥þv_N ý>Ž?^ùAÖmY›øÀDüÄQÁ5Ð Z_…ÈÉz‡#‚“…Bb,¦':dÚ‡¬ †ØF}°T^é缉 ÙÂ%ß_,.µ(ëȤœ«Ï­õ˜o¿‚Q\ÚiìÕxL­5Ö[•Uã¡ Ú¢ðéÑ_ƒ•U T¹\–Öúv95$=†˜F›ÇÝ6<á°´ŒýŒL[„’(¹\;gò“!<¢¤X:b%úŠü¯eLÁ=“J›T›¶¡•*ÉQÁJyr¸9hȃì½V5ay;´¢gtpz}ë 5Aø¿b¼;7­—œï´¾Ž¢Ç½Ñ·Ìû€yð¾¯tŽ-ìIߨ’c±"(DOè«ec:Cìî)^¥%)§¡ã3= ‘pË>/$$ºÇ¶(P`yQŠÌ³1¨ØµÙí_¿ê¬¿M˜˜aµµÅ¡œZ“H obüá0r¤ ›­·ƒmW'Ò–4Ê䯡¾ß+E‹Q’Š³Òˆ[[ܸ!;˜?Yä‚7yx¥XÎ/ŠüL²O=^^wPÉ*{³–@È…ºZð-hÀ07Q&ãêD”ÕsÒ=ÈüId·XÉÑuX±ÉâÀ‡í®úTÓfc¡Ï³rgà W\ܲ1dÕܪ¶v†àVøÅjzvœ…“4T'®Wïäõ9ý€ P²”âüL¾08‘ãÙÙ’adloè“ ·ÔÊ…9¹tŸHiúÁÕ…8ô`!•á°…•@óÈüùCag“ýΧy©ƒ@±‡fc'- Æ!5ÇÒàCYtբȥ–Ë<—nƒ Ø5#aR=³ÙXFD·uBŒEWK¡Pb`“ë\?hÏlèÀ<¢ÐÅ?²ðž¬Ì1Ö×á:‘¼2)y±þ²yíUºSäêèCΙà9Ü¢ ÎÏk³5 ¦ €S…¤Ë¶ W[¦E4™" ®g\}v]ÒŒBŠ0ˆ«N¼ÛcK;ÅNê £\?}A-w«® ‘fZ«}oK3½¹-ÞØª1©èºïÐ ®e1kIú:ù õŽ>\NªöÁ–7@&HâÕ3kçoˆ @3òR,À_KJƶ$8•Ý—HÈ< Uù–=’ª’æ‘ÑåÖ_øBÀÞU*•¢*ä>Îz§9I‘›ðETH\ÿ°ü7Á(5! ÁiËžu´~ÕŒq!JÍŽîùyé¿ ó#½ºÁ’ýÜ2–(Uø Xöô&ü™YÐ.ß\,(Ä‚¦+žf:tXBýù…¾¹À&V¦T¿ªR©ÔéŒ3+0¦?¬åx$Ï–§fv¦ ¾n©‡#ÿÝÔS¤rYS¨äŒ¢å@rWAħپkkšÜ“’¶êm9ÑP" ýYß©z½´Êo†ö½ÓŒa_ïäGÙ™ÏÊ|²º’¨£è£J ¼Ÿ—×UcÝ=–lXc®õ=ïÓKå³ vŸPüÙu'ìùïÁ ¹óJß©´Gjâ£×ü»ß ÜæË¡+"š8yÃÃŽGFj«×¼gÝ \µd§î–¼4ÅaV­})Õ×Õ>`¢ƒUwú~ØS <°˜¤@¤@šQ_°=’íîV»ÄËG EUÀ´Sº¡è— p€V¯‹ý(ÙDüs<…¥ ;cÕ|(Œ„ŽüκTwÁ âPˆœ]lX>lRÊ&ª<üÊù”èÃQ£¹”ã5j¬û/ÝåE*Ñ­¾óë"ÛhT¿÷Ä\„ªk}±â³¹Æ«z‰ÝãÞœ¼%·¡{ÃÇ—¶!T9¾¤…ü1’ë3¸f—q_wVss©‚«œ¤U“¿¿$±uµãû‰ö++ÖåI07ñˆ½,>ÀøîJ£ÒÏüª,çÿ@`A¢³—Ršy:œúOÁ"ußM@jµSlÌ¥Î@¬"9Ø7JRyR! ÚY ø>ÞM®Ç½âÍÊû)ñRD Ÿìï}‘`†Qã«e-¯m=ŒBö¸FµÜ!3ÜÀE´8Ga¢V"ø+Pšì•æ•t÷°öð‡!°Oª¬Pþ]A‘ý$¿™\*ºÿ^š^–F;%“i:ƒcFůþã|ª"É}¬ É…bEÃ4Њš!†Ü k&üÆc„•{ñâRABM„—ÕF¼1ó¾iŒ¿Ï¶òÃî‰Åü¼¹7­o÷ÔËØU¦ëBRã"%m€r#Æ¡þÜ6N»ñeóÀ¢ýïq¤ÄY¨¥Äê\—ÔŽ½ã7…øðB»K󳇧óý—2²a¿r€©Héñc¯­Ç4½NœKÚŒN×û3а›69Þª_R Œ=]JTÀ$)Äçg^i1Qµþ²B™<Žô­½¼£û/¥1…€ªdóŸ°E£ÂAd/!|!l”zè$üÊ^­Iù³Z\²îgˆüÝ>¹¾¦$WnY˜ù±÷ã=‰ô‹Œ»UpÆZ×x!ïå‰þqüÄ!燋‡Xïå"f [¾M¥jádþ•ØLŸÐ@å?,T¼ëºŠÖã2¥ú‹›…Ÿ$§u+E‹´òI»S£ß³s„Ký8:»wög¯=|èÏÐàPæáŽdA´ Û$Åï¡Ý’€^6ÒqáºËûí»Ï _ªGÎF®ßlL¥m×VbRÉØ„¿¶Ã•uãTWpÚ{ÎOíCѼ}û²m‰MÒ Ï¢o1ÁÿÑhD#ŸXìs[IüÆ/ÕGÂ*ˆ©Ñ£eÀ£ŸKé3 3è^äb¿ù¾ ÖO ¯ï y‡QUMB4)«¨ 3ã>äC@W{j¨­˜¢Ùàkã½úð£wÈú=¡Á›¦Aw Ë£÷‘n·ÿºÕ&ªNòñ‡^iÁ‘Ö Ü”û>Måx„Ï´Ø]úÓ‡‚(Tà0b|cÛqʰÑB ks©Š `=`,l Éad®®“±vV¸J\ö?k¾ÓŸ=&`üE°T2Q2âáO[P»ov6."7Å(¸”]UÞÏ(’ñ‘,™¦LÉlÑ®—î¯U uûÁRr@û5óÖÊ6æÉ|sþ6V²v9Ø…üÇ`ý¾F4ΩûdP@óWYcCJV º‰ìäÄù£„À| 9û9¹¬C†Ú­r:¨ú-·ã–<’f7]vh>!ø#<ÅÆ‘ôHÿƦa‘šÙhïËmœµL64È¿Ôø$&ÇPÿøÔþØÐ,eÂI‘ï,êÖI[“ÈLV’’I6O¨jçû7&.ÜöK¼1wà9å›Ëo¦|™Ø*VÂà/3Àçhë˲N—"„ƒO5ÝIuÙ†úÏ~?¨aø!Yá3Àе5QFУ*š1KÍ„úRéõ°‡Ø@VQÎ `u«Ž‰f9¨Ê ·iüć{G®H>pZá[¶I6“^—‚j£é ¡ûü€Ýj™8Í3s«×öDZÖ:/šÄ½‘NÁs–}ßý OÁƒó¹íµùôR•÷§IšëöPø¥Â0µèšåF«@IåHõí0…Uã¦IÖyC0DÄ_‚–q#‡S…ú0ÞÞèøÌ ãC,ÏyëEò™‡MÒQæÉkƒüè®äýz-€6'›©§WoaȈáÛâÊFL͈jÀ¡0ØÑ7É>üÆfaº…ŠIÁ‡=M-Çׄ*µ»X‰.6z@MÎ"ÏcåL()ß½­ä¬ÜmksæoxšÞÎ9ôë§pkÂP& Ú~¦”×ÐÒýLm$bÝäÎ4@ê‚ÿêo¬Os5—òèIkü9ñСŽûÀé=¦ ¸,]¿#Š/ìÿÎɼªg›ÆUt2®šXhÀìüÑ4LŸ:•0 7Îj<è.pþ²5&2db`>!‘-ànÀ’\CK33Lµhªjº(§+eÁMྴLï¾s‘¥æÛK+U;ÃU¤Êl_b¿ºèš‚`P|V¸ֵȦPß—î5’bX “Nä>Ð@ºòöÚx©6æDNÀ_[Ÿ×à ªÊ3jó ï0^ý”„;òZóràÎëÇ0:¡ÏdoVpªSìá+•’Ô¢¢hÔà<Œ¦¾7‡„~£!)éüˆü®eU':h¾ä2‹n=ШÉãa™õ~DöBä'ž1ég¥u¼bÄLìé^߉пM\SkÎÉà­™}+kù±Ã+P PHIìmÞ²g‹ò=’U×D åºd_A$›¦Ã_ö;æa¹U€D‡çݧScƇÚ*¤ÎTÓ?1uÍ]©[Ò‚eÚï2Ü";n/!QV -?]¨BFë¨àPKŒo@§ ÏX'@¤‰·}‡ì EOÁá$)ùA3ãD®Ô”›N_ÖöšB…lÌBš‹ ãNÎ/½1Ž ˆ Šƒâü4cõkgˆ+«DÜøbáɣÿëõ•UÒieÕÝKC”Étüï ;Ú¨¤ò$8"ê!ŒÛã&ÏÆ mÕ6¼µZåõú´ºP"b@süN÷Ña$XeÏéû¹õP©–Ó$¹…ð÷.ëZ/ë¾ø×±æ/ÃŽpšÁT¡*ð˜Æ5ë+û’$œ+r’mW¹ÈÉ<û-|]Éí{ µ‚¾Ã ~7°,Ërˆ!›Åâûkéëç Œ­6qÛ°Ÿ$ OÔÇU`6íèâîy~aÏ~ËO0Âï§ú:EØZÍ=Hj© Ž„_+³È™Îºµ­gÄߣü}a‘Yì'­Î·Ÿ)_öoˆŒœHO ðíļ/ëës#Ñx»ª#hƒOÁÉÆ-²w†I`>ê ¼œO·«qW’…˜`NåLoªëBv+*T:ý ‘F ˜ ÅXû«ã{*Œy+ôéô#!KÏ€Ÿüº˜± fœ¯ôðº^=w©"ãb®ª×ýÓÔr±Ò„Mê3w=kÚO$EM\ÈînÕ¢uÞiãü9šçÅþjA3fa`‹á:"Wôm²Š$™òJ-û1&ú÷3z]Ò1V}ä‰~À—Íêê× ]q%Ϩ%òt£øÛ»KDzªþÈåÚñÛ¸:Þ'®'F~ÂQ2„vËgOÙ ¦­‚ÐPRã#=s!ÿHÆÛ˜œÁí7ÓöRî&‰´ã7oÐm·äjŒÀæpýV=V=B%ÉH}Èæ®×Ûæmn­,Ó²ÓùžISrpiÙD¤O=MsuÞõ¹6y›wE»ñanÔ˜œ×øIÅ ä9DÈ@Hœ¢vƒï8^2…دJ¬Þ5ÄÖàó;R5EjX[ù3ߥ՞ðoÉØnªôñ)·|Àý0LkE.:QZÚ;ä¼na©Äu!´ÒžDÊó`[ ˜µÿ€g©¡ÓZOˆórhe,ͻƂè(°ÃšKjxÍ…’®h8=*ÍShN,µøˆ;©õy<+¨o²5ë¼ÉÒŠ?$™UÁ测ú¯iý:¾ Š%õu¥5±’gµB-€:âç¯Â;$z……)ŸüLª‰ÞÒÍPo•ª“VÄóïA¨ÿÔ/²ø×'FÀÄÚЬðlõoO]-ã®B³OSÂH;õLÐÍ, —”H5qT¶¦m:…‘ÒßVD>‰´âÿALÓî‡08hÛÒ;(ÉßP³ÉxFjQkE­>(jè›q¹o°Å­÷O¸!ÑÇ  c&N¢mù# ¦s·"HˆPu£8!býÅ3¯€†H ‡âVß¡ãÒ ±£ÉxÂÅzª)±"->QS7!+qö´’NßlÁ2ך³°’©ûEZ´Z¡‡4ü™u¯nÚÄØd‰‰éèû +ôTøÖ'{&if‚·+Š»ðãÛ>X×&·ïôøs%ŒÃË#:€U^ÍP¶?å”ɪˆÌââÊÒW¡ X˜QÞíûhP…hOB‹ë±vûÃ숼tÅ?nKëÏÈMð#eMÌGMáð-¨»ÈÏo Žýä'³™Þ`óFdNA5j•a—Oòýœ0© `ŠÔjí¶¿î{Ùp8 ¢?Â\(Bãd±8‘’Lw8(³) 0Ââð+[ÁÜôÕ#½{yüM'á…á˸rÍáîUQ]"0Ý,&‚%”³S¡íÛƒcJ~¯Œç5®“Á È@)«‰Cª–uo¶ÄÜr¬cÿá|3ÍX•¤y›ŸßÐÅS6a©Ûôƒ"³wrŸ+•$L†åîfëUÝÄEü~s­ª—Žw%ˆ^½àAë¡Ó \…ùô$–¯‰ÎXªSº²+81 €à!¥ ·þð¦ö3G †ým-> ¥ö¢àëZ¹› å0O’‰¬,€çÞl]f+Êï\ÅhsàÒ0þ+‰ëËwü›Šy’RˆREÂåkV/ ƒ@+}@Iy Ü©m1 ãm-áAZûnÿQ—àq.S>¾¹~£ø²s0aó³ABÍ£R†3Òõ’Uᦠÿ´(áŸÉÓ1X‹+WÛ÷ʽŸnÏY©tRdÔX/œÍ¦X€+ÐÅ÷¡ÄÒ:Ò€ üIö&¿â:‡=„;·ý E²n¸çFõÁJ¸pÚ¹Bÿ‚–šÂ|ÒÈä[ׇ˜øµçñÎpXÄ´i|Í’Èw´"Ær<±`å%p~xØ´çR³™oÖâòß®áV YXAÚÞ5o9m­òb»âQQÏPb%]Z½2Ùpj9Éë9,mº4¾³Ï½„®õ.Uù½Ù§ ËÊ÷Oºt¬í ?O˜¢-ÈOåµÕì©H"²\c»9¼å7“Yùt!ÒLÄ9[®Ð§q"8üL·O=ŠkÓH=zh“É<âež9ŠÑ¡åÞt÷”3òiJ ±p#ŠD9ÄŸÆÉlŸÙp“”µÿ]öq4v„ü+2Æû™ð{¡ª£Å|áÔcþ×~ÚF—ɯհ¿'ç6m¬‰È Æ-ÀÂÊH¿jS&û¯û"/÷½mÞ,¯ ~[–™«Ø¹]°ð6È&ç4ž;Ÿî0˜¤*| ¸8Š .`› G÷®Ÿa$6~-|L­ú›~EägúA/ |Ò›)¿“dÖ…%’2œ]ÔÕõ¤ž(WFËLŒüL¶uÅ _Å5Éßãžeû5•±è-Gc"½Aüì'žtù ‰-x5R}›: ÇørF9¼Óä >Hš?§²ˆÁoÐØzAÂfµÞª<ö µùùû•bO¥ªT=¥¼bž; ЉgÍXà´1”žØ*5™:»ýFš¢Î60~ܥ虚®Ð낟»47Óï‘9éz‹XÖG{šæÐ*'û¹ƒiæÎ…VYÔDC#èîš N¦CϤ\‡÷PúˆY;Ìy~$ 9büM óî¸âYHÀ3ÒÏ#Ó%$~OéˆRâX´ÑÊÖù[HCB¨c=wÑV|Àsk@uÙ¥©Ž£5\ñn #;Ðá×P[½ÊÔʦ“uNïcšQô  1E_Z[çb²¨W[ܳJL+G|Üà ‘­0~®;€„lŸCÿè Ž×=¾¶(àŸÄ13=àì3IÖ€qq‹ÂÐË‚x|FV%>Ë –Õü•Pô-¯}ç¼QÔT»jÔØ¼®~¶$¼Ùõè‡%–ˆ0 ÎPèúQÓRüM/&2ÑaWÓržšAe3ûÈTÜ寗#¼W³ #:èÖ¦}ƒ,4dçN¼¥l)€&RF0Ù)BüíB„K:´|$cÅfäl×GMýì°åÕÌØ‰ƒ5ïcˆ£I?Eš÷«V´àa®&(þǸo!6(ð©çÞŽ8tFÁû ‹¾ Â\jZíȪ[¿·>j¾Ø%(+kÜÒ¼ÞYQ[ÁØt+ó—YŸ·D ƒËÚŒs¾±ËîêX"Гq/àÀ—V‚o"<²“;°²ì© ¶Ol^ ü}^7-ñã Óišã¥µ™'£G¾ÎÿìtN&ˆ6扄Nªú¿1Z1O|ãÈz”‰g2mñžƒcIuõÙÞÃ"t§óQE'DæP"óxY€bL—qGÇ%z:Mõ {)ÕËIo:é7Ð+¦¶ÅpÏP `ÕM\”PßêEš 5§ô¢‡—ŽBOb4€áº÷lSòHؘfËI>S¡µ18Uèâ³¥Ÿrí=Ÿ©'²ñð…¨©†©¨/SáÈ¥þõ0ºØ Œ ¾ì|É9Ð3b£TÃ϶fŠ÷hæíe7MÊ4¼=ÏÙ\&°ð€å7-ò>ß¼%Cá¿3lš*³ ó ØyüšüÍÎ$âô ¬×°Ei«5õÃôãcêßÂbg I%1‘¿®GÞÕ^†|e4˜uû!XÿY=xÄq´ßä ð›L;¬K/ük uI€H^züL½jõ¨üÔ踮¨ai$R,]·ŒÓÃV`+þ‹±¶%Œÿ`Ö°óöõ9:ßôI§PõN›ã½D”:fE—C¹Ä; ÕÝ7­þˆ×ì%+^®N%ÓƒuØJ ·ìWrz²Ð¨0ôÜÂþî –Ú?Œ8‰•a{oTŸÈN™ß{Û`'pZƒƒ·[µ{,'ßMÉDQ*Üi‰Û ÂÑy Œ#P– å¥ÃÈlD+c±u#,œ©JÊÙЫèMqÄŸM°¥ŒtA3œL™?ÚоüMYÄ_$t­×¹ÆS¾¡ªsOzÝ’«Ñ|©­Þ5ÆQ¶†‚)oœŽÄYv-êr¦RPâ3©_¢nü¶+ š Å™÷6 ¯}¶9HÿÊ£ŒG¤aœu6‚;FËüñ"µ‰”ꉸ¦ˆ[E·Æücq[ßsˆ¾ ‡“ðÆ#oþ¶Z¯gh™J+ƒ„¥-É»C›MÄ¡ƒ—ý™ŸêS‚6Ô¨?§rÈmCKù&›¨»ÿ0ø”; SšžœÜb¹på‘]ü…üLË­[ˆT>«ÛH2…¾žev­SA€šÏÍu¶Çpûö8Üí(…5"õ þBæ!’7á ëíáËÉÚðƒ ²·ßû0|T,"+u±eæ{QÙ$¬ÌÀ¼íÕÆ ê.ç®Bü““ÇS+¶-£ÐýÞÞÌÑ=9ÂNgýl‘îg5»÷îˆû®×9¡jwË*”Â×ÎÚhÿA &ƒ›þg—$õ ’&º^3D [‰bz¥ó´²Ã$„æÕ1ˆTz訌.ŒÁ›mÛ!ßå€ÿ›üMZ±ŸÈó#ix*]†ûñNìºe2 }°à!éEè2_ã0 î¹ÓÖ°ò³ž;@#ÿîF … ‰ñ+)yÓ¥)#ëù¤ø§ºE÷ê}H‹ÆÁê±m/°À y¼ì =E*b*RÛþ>7µn3›ÂÎÂ…e™£Îô €p&K&[‘c pš,LÙt䤱¶d~OKϰR0%Qswêí ¨èýdÕéÞ1Q±mh2'PØ3¿Ð×ÈÝûTña8oaµjoy¸”üLÙnyÍæ9§|Mµù2šH5-èñ’ÂÉŒÂu³ÕNÖv5õ ó}™‰_þ³§¢>/r•ÎÛ?ßhMõ§°|ï)Í:-úƒÞÓØ,*Ê´Ï$"Äœ®nɾ‚ÿ‹FÏПÿç Wëk•ªÿb&{çÏãQGxë¿ Ÿwõ&HæFDJÍ×o|¡,ð&jGöNf†~sæqMŠåïè8àcn$p™üA­huCå/Žu i[FžŸKÂòž¢z*è9÷kYÚ뻫'DìrD›l3ĸùÇüL¼Øå``j_ºåPÒ)XÅÆšõÁ/gÞÑÿ‰Æ’{&@÷.òý´ã7QR„`LJéÀ½mz jhÞéÞÚ˜Hþµ–´¦Äa|R™‚þ&Bè/‘²<5ÑÌ{†;O«ËɘöàþÎV„ˉ+"DÌÈqE•¿˜Š\‘’H7U[Ê3nð(î-°á£ø–n˜Ú‡Á-mÁ·/Ç´H3ž+»_Û±üÛ*S&ËtVô  ïÄÀóÓÒ×ø²õ’øÿ͘¶I£m‹á¿ÐÖ‘ü5fd1 Ë3`:Cºˆn[©z¿ ×g=ºð<½*Œèx¸®š—v½cØÜêÅÁq3qþÜ;¦¡=ÆZ‚sÙT!V!ù3ñï˜çÓ™?Û’¸2¬3!Z0GÓbŽßÆ«‰ðkûÉñaÓ·×6N¶zô=¿0÷érí—$ ¡;½@[ì·å6ûO¹ŸT¾€' t³l[˜o?}¾¹/”«—·óÒWó:*'Çu-áat`./&`ûíj‘P}8¨2Ô߆µ§6E ë²KhF~))Éãžü]œhý­êº¾ìD.š¡á\’ÚúutáqûgÀd·Z-Áh5a7ì| Àå£‹Í %¤è»¼q÷}®Á7UÿÝkãhléc¸Ñû)=¾ÆdM-ø»×Ëèb™¦м1dIsjoíw4ÎĬêå6•ïêË{—h4²j?G’–\À;$váOŸdʤ±YƒOXÚkžPš¯)ãó&£ŸõÄ­5%–&&,°(ßŨ=r6öñpÊߪyÅèùZüÖ–85~¿i\¼Zð뺼MýêŒ0ËØw‹¯Qš‹]*'‚Žx›Ö¤±àÚôÀøüM(#´£äÚpSÄPCö4­ m¦v•]•Ï›oû( 9Þ*C±0¾3ä>LlI:I#Ä)dO­”¨>Yæ¾D®#¡ Tbwd(²ÒfÀr9¯>nE5œª•ʼô¬@h2ÐXfFÂã( tG¡-¡°¿)¹B;ÕÐ!gSN?ì_€ù\ûü”ëÛGZX¥†qi˜­t‚<`€ª‹ÍÄÇÆ/¦¯º‘¨ÈÈ<ŽåË)¥d’û1èl†ñÆá ¦4;@PÖ¶^Úká²Ïeö·=Ëó½ïû¼üNO3·Ê" ÿŒÔú÷`þnß`ò°mÖ&lz|?Û$Üó=k^õßñAæ"M%úŒIC.«X7ÙÙ¦¶$Ì3á-_^¨>Óîô!äÁZÂ"_+©A®Ä 0}™¤©å ˜«ÖÐ4ƒÓ2ueÇüùÊH¿{sþ&›ã ~T‘qöÓ m_Þ:ŽËGõQ˜˜r(‡)›üvQøÿ6žd·„ãŠ;ô~Ä@‡À•³À*ßÞÂãnË–¤‡(;…ÂüMË«¯Ô}¦Ÿéº´Jý[¾žÛ Wb‚k¯B`äž¹jJŒ 6¢(IËt Êv~Xá$ÁOÃôèN”_ߥ‰bF¦~˜­'¢@[k#ÒUèqyHHv}Y¸#]X! Ž5üN`iÖ~Öiëlòß,‹â­F°å®ËÄ+ ·©ýD ©…£šåGÉ/aü¬þ1£`Àh.G¬ªÉ€2㳘.™¹·óEåjÄ…Küj;ü“%0[œ«3Ñ0öPâ )F½Ùû¤l¾RëRüL½Pá`ÁlÈ~À(cÈ'_øÑY’ÆøÁ"ÂÉsëÈЂ17º©IM>øöbC†]¡–+<ËA…äªÁòx7Wɞ耒o“Ü6sKgú/†Í¹YÎß@¾ÅPôXxÞÈ÷¶–#G¦Z¹m ªÎðù³¦ê¦o^çcL½¡àFüc,»Cèb÷‘>£j·L‘$Û.ï÷÷K§ GÑ…XØ N£‰µ8ˆùÓõˆ;_ÐUôÝ£9ÕiíHV¶žï-Þ…ù´­±(•úëÊN~ð äü6iapÛêÄý2ë£u½Û™èüœ\'c\ët?Åh²$¿ŽØ4ßÔ£/É4”îbF«doT=tÙ@Î ü *³¡$tÜüEžqBžë$Ã}ðZÒšz Â,A.…ÑZÆ+ƒvJÛ l'¥?GÔÑy{ˆ1Aº±Ò1 %X–vŠ–i¶‘—ÊÚ?¥BCä)‡¼é6bž¡N«ç‡Ÿš9ñÇ ?S`ù@—ÿÃÝÑw9êÎÇi(ÂgÂ~]îþ ÅÇvÁãä!-%΂kS¶ ÔIü|•í6tx¥±“ ö÷ŽÐ$Œ§ Ì`³§Ê–r?èCÖÒÀ@ÜÜŸ©“=@ÇãNè© -B~Y»r0e„±‹ê̱µ„Þ5w/0KU¼›‹­> ¬Ö§%y¥—Ú¯ââ¾!šu¨ g-.i!°Ë2×hëûØGœ „#WîZtþ/¯âìdPaÎý1ËN¼Ÿ˜¿Mò^ËõÎawäýÙNÃõz/|ư œ$̃.ÚD¾ñŒb´”ƒ=?Cì&ŸN=|[1ƒh¢Ni0W§4#­ÕŒ-Ô´QÜgTeeN¸RôÓµŒþ‰|/ÛÝ )xvµ#[Î7Zc ‰;2 ™WŠt ¶bÎÂA‘".›˜Þx!¯$}ã^ƒ{²t˜} ™è¾X?ãÁ¢'…PM7oÏÕnLŸ zãyÅ2­Žº*I=üC¥ñN¬"ëp5â¶„ÊuÄê¹£ÇN6–‡–Ö‘­²¸‚¼”÷ÚþXmÚ÷[¾2¡¸:d?3©Ë×d¸®ÙõÅcø·æÜ›I¨{ûI$ þ©ñýü}aÌZ_™º«Ÿp„8žè¡W½ddÏs±0øO£¤-Ë7øš[Ð@xª,þ«ª3]=þò¤ƒ3.Ô¤ÎeŸ½æé³Ê¥puá)ô.´Ç€°5,ädŸ½ÐZûÇ9±œ3 É·®C¨>Q’ò}!Ó*» ›N´Õ–-Píó!XèGEÒ®²q¨Yæ7ÂÅŽ©f¶ï®j1k]Bú6á.6u²’ë@؈ëC:±uß dY>«¯eÆG|¬NË^"—É”'{XAq]„­Zy…Ga¡ªçµ;9ºJèŠ-sDØJ˜Àთ¼f#ê&GÌHaаÂ`ÖÕ÷ƒ#¡ª¤ãgûÕãôàë²å‚ó{  ñ"1áá_ñâ¿ùtõ òõÕ”ýPäØòi£D+ T†§°%ID°¡‘„,ÚËõ/ùóÝØg°ý¨Ôêa*l/p°–ÿÏKmGà6ç‡,þCçOggS€¢ýÄ n$}‚0¥7ÐÓÔÕÓÿ°ÑÑÓÙÒÔÚÕÞâÛÛáâáØêÿüòìðèñåÜØèôîóÿîìÿ³ÿÓÓÓÛ×ÝØÜüM'‚—°­"CÔ¬oqÖï ±ø±ÿû /›ô&‰¥Ô äžk"鹋«Ñz£ºŽÖe¿íáÙú#d ¥£Ò1ÿpd%éÌDÊ¡ó°«!ÈaKçËîL,J½âõEW{(ˆ…·å2…Ž«9cîaó_eøµd¿0ÚÑÿ5·ëg|A6:!î_׌dëÊ RS¶DÎ0¬I¾|d´ 9Š$÷¬WfQV¯‹iu ´Ýš©zmñòù= /ºõÍ9“¯™[Wÿf\9.qÚÁ{¥n÷,5<y5^P9OPËñ“ƒ}¢ ñ(²xdS³@ƒÛMðIÕü6€åÄàtÀfÎðÙ¶ú~RB]u\u–V\°íf,§A¦××n¦­_UBs´Sž™œUŒ…õ8« üáu润†8&Ë)-ù^‘ ðƒ$o™gì“06›+VŒÝà=ðz6Ü ­cß×sëÚ¸&dò¶W¦ÚLÛc À¦9+*)Å¥°¿äñµ–  >(²¥DŒ·Æº=Ì~åLó–{šk|ò^|¶*ze>Ì@Ì!ªèG×dòÍâÉ öÿV¯ŒÓ„³Ÿ‚ü}\|Æ^ë>잉j£“ÉúïŠÎÕÕ¶U܉â÷k ÀäRíß·œi±á¾}kZˉoÉèõñTM³.^UýÖ¥hÄßB…%^Ë¿Âp/ȤÐòüÔÜ<Ú`ÕÕƒÕôÙïµ®™©‹C@}c›JsõÙ*kS s'â%šñ$qoߎ(^Ï‚C!v‚DMÓêâ5Ss*$Ý4…ÂÍš)žzÞ’{é/±©Ë<ì"ÒÅ‹,û©ÊÂÓõ$íÌ© ›ùù'YØÖGDËÉÙøâ«ßû:ø4È&Ï _¤Rìàz^‘Ü›å•w1'†ôcÆå£Ý‘–@í­Åÿhf‘==¬dƒ©ßîÀaö¼pq’zÔI|]*¶ )ÕQyf‘¹¦j‰ºw¦AYXHð3¥äÑtʛUžu§%fWf%Eˆ/$&ïž§K»Öþ;«1 …¤£X†sÚð¹»<|ùð”ÇÁŠ£±(›SõrÛ¯,Š¿ x¦ÎÃv¹À´È´=0(‡Cq¡CoRéØÉa¯ì$(“öÒÁÊs\ý4PDŸ»üLݯ\JÜü!Chl"lÂÂ/äL5Ø¥Ácý3„ÞÕ+–QÄ µBû~ 0Ö]A¤Æ:úð®3 ½Û÷Üà'ö$·T*ßf‚±!•‚[ݨ»p vÓöáã%)·Jv3ÚIÙS \0Æ@ H0W¸âàñuÑLƒ".e Ÿ÷ÛYciTpËE9Ïn”«^ùP©†EYVó¼Ê-Ø‚BÄK5D\¥\Hþš¤±US½Yc…‰}Ì» 9>€·z%Á¨Y²¶²u—Ùê¯üL±.ÖWV^­% ›7¹b¨1ÉËÑwf•³…6eÖÔŒäb%Pû!¥8¶ÎÊ…±éƒß³*(Fhˆopú…b–$ä±mµ‡\­†%GƒzšîT?Ú#ŽH¹1+2ó‰zO´™­Ûw0´øQ'QνÁøqÛkðå‰åré9°¡‚bQ<CRgðiIáσíTül>äܽ¬"Õ/Ýè@8;û†4 n4Œuî%wvüK#U$°è^[vž›ÛuVwùdT4@ú¿rÙÎ  )´‡—õ—0ïï”q8¡$Ø•JkŸƒÎ¹ð7 Der†9+ߢ_SÝWÛS)<™R"ÂÒ“°ªºz¬Ûqªæ×®‘¿8^È¡ÕßÏ/;¬YïÙSþg Q;u/W·£CŒé°íÜ%Þ°Œ=•»í(A†þŒÛ%t ¼d5•€XC®iˆ…¯á0«¯ÏΘ¥òC#eTu‘IIœú·†àö‹á¯£:™u#øZ÷`ü1œpÉ"„Œ¶Òh„5Þ÷Çž£iˆþÕÅ·AzðZŸ`= ÿbË Øå͵‡ThòW#˜ªÙÀ/˜ÃDš|ÊI7v†ã×ñ-©¦ó—&âéêÎ.~{>#Ärþ >é»UÕÅóýÞ¦r*º5´$Ë‹múEÚ-Ô|ÿ>[L¥×ÊC.þOoTô.g,-‰ €‰MРéÕ7Öü{ôba^'¥Wº™7YÞßð3èŽ;ÂRCÿnú*|b% ~@•¬ùLKæR²¡ ¶üL½lí}ø¼éõ3Wfþê‚'B 4[4¡hD–]ÄH“Úã=毪D¼I!g/%yÕ17Vb*ór·å±ê5?D’dt®ûŠÒĘ—¯(Ý×bàÆÕÏYÊ~Ë©!M”q@/Ñ5Ó#?”“"ÓÓ@¹ô0/. H«Õ¾Y‡?…Èó‹Ãìǯ+š}ЪiÎ}!†Ü4JûŸ“l¦xbÊötNÜ[”¿#Έp|¢=“ùÛñäâûªcØúüK? JÐé—kl´®°Xlã‰(ñ‰‡k€C™Í1¼f6DFidÿ˜3/ÉsŸâ‚"ä muÕUJ@¸»Xì»>ë'‡eul޼ôÖ´=uêbõõC‰FH²ÕÔùªqµ”gó#ÁkÉKGžjÙi5¸I3šxìL»Ørq÷s#úËXçF«´s½è–„þ]ç­P}½¼èضË`¾CÄ ª¢ã®µL¸âÓZ^ßWçkœ6¤À&tªB›õDJÍŒz"X.yË•sÈ}:ïO±E~°üX¦yIKþ`Ѐ²%Jai†=WR…^Clªw^»FQq¶)ÞÈAÍy9ʱÐþäbIÖâ/}„iôÌQðd?›Dg,Ṫ|h…œ„ ƒ+PxMæÓ«Ô¸µ'æ‘öÓœQ<6+òp@=Gvá]÷xXιš˜^bÖ®]ÅÄ’ À¶ŠÈF{æjC¹ä’Ðöhi°nþÿôû°1´ãs‚‚IÁësùÆ’ Ê×ì¹%øÖÄüyŠSiuÃ$\u³¹I!N1¹FÕlÿJà?WüM'H ùËçnêäÚÜÅ/ó—PV§‡y>=*Œ{z¥€Må±1ÚIÜé˜ôÅ-{€X}^‘›Ns_íx\HØgÿܧP~ÙÏÔ\í—xkóF£¦“,opÚ­¸´V£G>ú#Púenl‰F¾Ô¬Ø|Á¬{–ÿ’—½ÐOƒuw•Ý ì¹W@þσueÙ ×E]wÆj¬ùdªk’·–ý¿NYKë9è]™‘ÃçIÖv‹¿Á„dº‰ø»õìcÁþ—>ûHSEÃìè<]ŽQè€v4ÓÒÛMÏÝ+koküN‡æ¥ˆÎò(×Þײ Z'heXÉ›¥ÓJš¤HZ+¬»å»žïúÜV˜Ø|€ !íŠØ¢uûÏW-çë(¤õpÞ£›06%MΰÍóúpæNzniëF‡‰Nò©?^œHì#¯7øAí UÂç>ó€9TNÌ#Ð3Q8òTX ´ô~hhŒ Bágq”› ¤9Là˜ ©<”Rnî˜ wT(¼K®Î\º›YY1§¾,þXmößÁŽIØŸYчJHC£¹ËÁ±ë—g#ñ“³{ŒüLØ4Ý—• Ã'¹]4Fßεô«A¤åËj]´‘«Š%÷«¥>U•œ<§B-ÁQ½Ñí§tyc·!1,9NPñöÍ"y—vÅ…#Ý$ç¿Þ×( ]Ü@m¾á*ÀïBlfvR‡q¾åKjÈ3tC]fñ‘î ÷¨oQB¡n#ut}ÃÖÄÒ’Ü Ï­Tªp šò#Jù¦é»þõ¦ú urr Ú´ãȹŤÌÒú uã*æ§^»X!ËÒI­²èåC^á={‹eY†5Y‰SG•ü¯䵎WF—[:w«Z4¢¸Î‡º`™IZ²þíöÖ(P íóÑ#Æ#%w+D}±L÷ 5áãüš[¿×ͽ'Å*fT£1dC‰Ðð¿rׯdÂ;Ú g«9š»k¦Úí‚29žkUé_ìŒ&¾ÝøT`ŸÇm¢‹-ŒÆãÍ ŸëAC@g8ĘIµ®ß¸—.ï®à8ÈbØÆìÎk6y–ŠÝáŸh6Cº°'H˜s”7M:QsfdªgTÜI;Xh5AðNê!â†ËOˆƒü± øö&CŠÂ}§ÑHo4O*M±Úmð¼gŒ“žÉŽÁó—Úñ-•ú(ãïÒazÚ`¿ÅÝÍüβÎü½œ°¹ Y¶5«Òw«? ›¬À•óKýÎ"6VtóÐQùB±‘6q ¢ÇØ]«F„ü˜Ìw¢ÃV?òÖ'†.6¥o-kXý»¦æ¨ö#²Þc¥ä75‹8¤ ûg VbÈw@´æKN6ØÝÇ Áʼ´òš0L$_ßkÙ|°¯¢¶¯‚ìMWЫþÕ”¦šQB<çá6+Å´ʃü'GØ µxüb€À½ýì(Z;„8ØNênUÉ}¥-¨\«¶…yz§{Õ*‚áåCì=Ýcø_VÐI$ |;X€qÌ‹ QÏ“—i¢d!æh§KCj„qeÐ6_58٠ݥRÃ:tLUµòoIËǸhLYí¹•êÇêcÖÑõT,½•“¢¢@íšX»ƒæ'tW¤Wbtx¥h;îÖÌ:E/LÅ`HOÊKGFZx ’æŸÕÅe¿¯¾¬@TÖm{EÝ› “Á?ŽÂt$AW»JH¬˜tf Nåbj¥TÔ|ÝUàÁÞf.pW9in*3X¯½ñ D\¡8S+·þ|c(!ÖkLÄåØà^v^öQ]¤M­Î• êíON'‡ç.¤%€TÐY(ÚÙ%@¢üÆl}rkPDv2–2yç²€·Ý’eÖ9:NµYqÎ}xV.*!ŸÒ “ŽÉy#-óŽ:lðœ n)Œ.ÏËdÉ®h³xË0È›ýd«—·‡A«TBå^‘´*ÆÇÿ@ÄgH € óóßsÏû?26&DÕRš¿®„¦2¸»EwæŠ]ÑË}¥ú¿KE‹ý;(‹8‰ÝI§ÄÛìù@Q/\ h‘L2èJrnŽöß°¾ØÐGm=’:~ø\Ú2u¬ÂíÓ‘o²˜$»é$Èåįñâ˜è¬W(0ÙnÀŽÃr£vs.üÆm†Ä°ý²sDøÓÛË»A/¥É5YOý`ÓšúHÊ€(ñY(lM«¥\ µ´@%í ð;…kv爦èϱ8;r Jù¹ãÏ 8â±&_Cv’A‘ªÇ„ µÇ) O߆sŽdDijnº€Õ1ú¾|¯ûaµ1hQkÛ=“üöŽ…ÀÚ ÖÝ CB'°I_,Hsç‡ñŸI5 UÝA×6m½£{*v{«P ášGº»f=3'‚GoÁÀJñ‘6Xvê€pèS޾¼’l|ê—ÕWÉQ\N»F²!“Ó,2—0.îÁËÙE÷m–üM0Øè4M°ÛÖ•K.:ûøX§”èŒÒ©ùZÖ‘öZûâZ`Ò_œ¡X)H)„þ ówx/ìÆ“)^vøÞÒ¤ìµ(¬"°±—Lù ÀYÂat× a1ú_/yP(í6K÷ï˜ó´8^Iý¢”1 L/ËMì!]g.«øg}Õî—ˆSŽ9l`®ág3/g­I¬Æé |\÷@Õ³õÇ’ô²‡ÄáǦ6Ÿ»Ìm›Óø‰†ÖŦåÎ'As º[Þd&ƒ•·úÉ5öÆÁ^Øt^¢CÞÑØ^]H‡sQæÐ6H!>>WEË¥)²æA±&.Ž3÷+ÿËsnã]üM)иÍíÇV«¡Å ý…”pµŸ~À €dÞZø†OeŒ™ 9í×SÁ¶–æÅ _ //Ò³~Õ¥‹LåM¨=÷M˜ÑAÂÁÞ¼ñ‚ytÛßÚØL¼.mÿûc<(št¹u‹Ìã³þ3vO\VÊn§ß³i8Û¦ÿæÍƒ\wU¤jhÖ ML©ˆ–šÖª¥¡«†8zê¦RxØË’'?Øw½d‰+ŸqÇ&h¸$íð|QfpÉ+ uå£këÈMwóìD,0¥dÈ ÐU8(¢¬$^Çâ‡2`)ÔÒ‡HB÷ÏtEKTùäªüÆ0×v¥+Ï^¦ØŒ)øØÃ©Fí­}=ô\”ÊíRé ±mëÒXJ}8™Äxê³P”êû±=Wg´r],þ¸G.ÒF ÔГè/ÉBT–L«è=3æã³çç€X„¨ÊõÕg2nﶬUo|Ø~HðYø:ágß\x¦'~ZeÃÇèªßF§ÞŠõ\pà¶Û¥Ö×ÄêÞ¸oœ¥£—ZìCgVôló2™5b•ÒëF¼-§²éæGÕzeŽÖcßô˜€Ùé»\0 ÜP¢+@nœþàÙ #BwÆ{ï:}t@°ÿØèPföØDjðVè>UD[ºÞF¾ãݳ–—kn¤±$Tz¶üÙܳ‘æ4¼…G5¥¯,'£ÕŸ:P@½dNQ=S•Î:ô3ÏUÁÉ|u}Ìæ†Ü¶‘lC(—²:‰¼ZeUngÔ2ƒEgííAÓŒ ,&Ý/Xƹnµ©ƒ»/V-÷tŠ pΧËÌÚûë~vk±ü(á­©ˆPÂpÝ?ålË ¶;WfÞñœ$ŠÕ¬¢ÌPû=" mÜÑ `‡Í‡´ú@‹hÒÔ¡&6jŠ€Ø§ÙÈÉynÝaðxŠ_+` ?”Õ/h&þß>11]Å¡÷Ú˜ªO…ÛFº“‘]– f<¶z¶üLÀ¨ªäKâ^½þBYzÊð¸j”m÷ÄMŠÜ8¡pûë_ë"½^Å5Ð!}_ƒÌ˜ v†HšËU(Èâ:u¹y=Ej¡žÞsBUŽÔ ¢†èR»‰J=ó¤Ðì¡àKU!(…9®å"U„Mò ½´€X:‰‚Ë öþ†‡:U@Ó9‡E¶ª%d£¾ n1²8oØþ‚œ»Yœn½r%Í,§?Ò”–‰ÄÖeOø€‚hèûK ˆ¯’!ý¶{>ØÄÚì …/XºÀç ©—N4ÚÃü0æÞ»×O`7ÈÙ…qáUv§`¸üR]C©ómÈ8åµËoÇ÷XDÌtMm6yÉIYÛA´‡ß§+ùêÌ”8ÑcâGg/ “GSß2êüs* È…SÒ)='b[=üGô;Äö±Ð4s¢s%µa±ueÓ”¿L(l} :oMhiEþø¿?IB{™‘Q\±;FK“)ÕÌÓEkßÁ«7 6g*»z¥¤!ßת},êU_­ÑöÅÁ#à\JÙ&HŸ9Ên¿üÄxK¡ºŽ$cçíó²x˜¯ç|' þë:Ä«ÈA/~nY Wè  ØrƦƒ,²luüƒ":K/t9D?Àõã'WˆH©ó¥æm¨¤t-šj—æ'µ‹—Ù‡bêo±5ׯÒä1+ä'¥YzY˜Rd’D¹ãuöÿ‡k³#–\ûz‰à¡7ø)ƺŒ?]ñ¯} Ðç v‚¤zŒOXÈ|„Ù?tU~ù«Ï§/_/Òëší)^É ‡.#>tP@ŠÊ¾Ö4ÓZìb¯oFýߥaèhÔöY“üÇ`×óµ†k’:Þœ™*ô_ò«ºÄ­|„2ïë÷¶p¯ )ƒ’¶æ)µKœö:îùèÛŽ ÖYþ=;|v žÌÔÜ?¯º°ïIrÖ¯óSàeá_MN{(óGÒ/!?pRs}¶¥FÉy%^±x† [9(¶ÔÌ)–)‡ÃÔr”ý¡Òê´h`wâ]nfî¢ê*å/¨²Ìá™f݆íùx¥/ž×iGÙê¹Ò‹—®±UÉÍ03¸:¶ò^þÑ6ËÀ@†UOöŠœÉ†ÐS:ýÍfÇ2 ·F!aw½ÎÛœHzÎ'å¼ ràð‚ 1Ç+j,)“üÆ(aîž9q¶Œ¨“?(žŸ)8:§ô²CÅÀ'õÈêbóôæaƒ|pÀÉþ®£-{M³oŽF™+dÒØ‘²Þ æ” ÷Ä쪴VŸŸD®9=OLØúmÚö|$Ébf³xÕ/½¥‘°µ¾bcíÃöî助ªUëpeŽ5g&`­ÿ—ä߬¥8eW¹h {æÊP«<•kª—lG;N®È:›æ é)å.àG†¿ìªáj‡Ò„ÅDrS€Û,iYm`¾Š$÷ Õº —9×úÞ¯Ž%Ä£ÉâèÚ ¥&7™á’üLÚÏBi{i%Ç‚÷„ã8›+I³š…‘¨¦¬Õ>(†6º¯XDÔ›é?aYú7/‰I켪ï!KÃ%Ù'a|¢+<äåD£kÌÇòæ€Ï“>ˆj¡ƒµ‘&1‘›ÂÃ…Åú¾‘ˆ²îIW*N’ÈÛš»·Êëw«#¼#Äéë×­3=j^fˆpmX 0Ë#e²~ÔfdïZ“ÖÉšxk¡¨ `Þ‰ì<"\¤ n§.)?]$§æ/40é¸}#Îàÿ+÷úÂÆ’©ÈMšŒ%è8 ÜÛx[£üIðŸ4´®¬ç ±uoÅû˯ýÛ!‹­_éeâ/by‹âJâ^@4€ìXÇàÓˆ¯BwE6TPÛ ÊœÙ¿`r©¥]N¯"#«1Âhq8u©kpáêAÉù"ñ²`Ã1hš@sÞ˜¾ðj¸WFgë ßÕžMíÈDbsú¢bE7d¨–ëÆ#ëƒÿØÝ~20ÍÔïäžH·êó¤fŽ•?bñVˆ‹oñäŒOŸ† w>*© ˜½¶è[¢ðHÊ1YÛ6ìLÌ5%l¦“2ËöÎBð‡Ügj¨bÿ|Z|þ•]Õ£(ÃìÇG¹¹À_RÞþŽYmwZ)äoÚ¹“ÂOû]šKbÒ‘.§Ãˆ„‡>;bãEû>ì8þBü|·š15t¤à7±ÁÂåq·ü`°8Z(±yVÂï&uvt첑jjžjìÌÛ«û!2j]'È»ZèæëÈ]Ú·<jÈ1ýõl)9Ý-uËüeÅøSƒ^€&ÒÜ™îd¡(hËì1&|5…q§1ïPÆ ï@Û7‡YOÞáÿܛĺ œü`+6Uþâã¯vaù --òoœÚRñº¬+êÆ` åežPŠŸYI;‹Àþ_kñÄËß­é wj¸ÌkÿÛi[¿ÓÑ™œÓÝE¡OM¯yïqŸgñÞîÂTò— ¥K釯ߓ@’XœÎՇ˯TÈHéJW5Z¡•ÙÂZ·œB ,*“ï_9ýCð?6Bñvž)ÇTÅÔAŠÁEø–$ Lv0A¦5A4èà °!m‰xMÍíö9©¸É7'É mBxå’na¤¤”ñ; ÃJK4käÖü4º<$i4!+†â€Ð‰” µð"¸LVC×»àxYd¤¥´¹ÀCã[9ÎN(wÝCÁÓ@4 Èæx «ª‹[hVyc8&ßü}a+L½‰ÁÕ^ÀxEËÛdwÏ«Ã~àdu=tOh䵄»Ò3ƒ'!u»#É¿ÒQEìfhù鬎U¡§lù×ä“S±Ví½ªN&ÚB4¾#D›T}ƒ(}íƒÁµµ¯¾‡%R³~¦A¬$·L¶…O÷V6z_ô7'!@Y~rÈÕœßïMÐèÑ­dÐ ¼0 §( ó¼¬HÀXzÉ3£ä^ʛъÀXLÄRéQ@z°©“xÄŽ&JÃ}nFæW_v!¼Ð»*ë4¨ÔØà¹ïÌî\¾sc+Ú¡´”ÉÉŸç)»<®/ÌßÒÑü‘%”ý*…žÎ6÷mîÏó^V_ÃõÕ’ô“‹t%¬^µŸ…@ü.Ó¯jT„’·nB¦[ž-úÀþ*M "‰‚{i0j`M¬/÷±ÏÖ€òA{¤ÃG^Xø1¸\Í.ê|”ã n»"pb·ËÈF¬|iøáYvËrS‡“q¨BÉW­*hþVføáóHÎoJ/×׋„Èâi ðΘT„´ÇÎØô„Ñ$¬ÑÂÎÿñÜ.÷=á)M1 ']$‰6Ó¯\j‰€®%'ïhüíEgGð©Î² B%²Æã'2°¿û‰ùA—(¨åoGtüX6›ÒÓ#˜98Ò=“ ÕB\ûAñ¡Ÿ£ÒÙýG»(:Œ$ Ü´DÙ΀+ˆÜ¢ùÀ ½ÂoWuæ_÷ž h=ª+ï‘GL ÕšÅó&  hĺk]Ï8Â/^hø—©Гp©¨ªZƒµýGoä “¿g]IiA"E¶á¿­Xfÿ"7”~ˆPoùl¤_Ïv‹”È`s»Ï }Xý\ÉêYWáx„up þÛŒžçà’pÀ“yNu{q¾0-áhâǬˆoبB#XÆqoJw¯›Å üM[†øŸÅ#°PÓ&gÕ pdOmž<äx zʶ«ÒKØõUNÝ œúÉ?íÊ!€½k ^¯Ô0üÊ÷?¦†5oÉìÍ»D&ŽHÁÅø(»šÐÉBK6ÙÔ"´‹Cd“¸:@­}H3NšMõF:cäi5;Èj§!QfÑËmÈÆâþ¥î»ÑGün m;mU}ûùy˜à‹öL…~Ë\KŠ^œ"”ªâN\Ï}“Š…Þd`)C­êªõ¡ÏF׆“Y¡õýÏ’ŠY׋²6rÐüMO'ÊÝ¿°1ÄKK‹×#±|3è2Ï’²L÷3w£ pæOOþ#ÄðrW1ÇQ-ixåPíF—•TFR]’— jÑ ˜  70aPqVrîl/\UE¨»_«þ¨Ä{õx ½ÒæÞ He{åAÌ¿´Pè~—»¹rè¿|då@žåƒ/ú2 Ž€õ8†Bê­b1ØW/ŒÄKGÇßuvÈ{«„CéénpÐ(jˆ…¶ çƤ¦$ï^ÒFnT*û’† ¾ôçnã¹t[žþI¿)nïc üLÞûê{(²f µ¡”+yûày¤jâwÐ6/KûQI9Åã(û·<Î@rº¬¶}pŠOQð”OìÈ~×éb êŸL=$n¥ŽÅ¥«ÅnðòÄa£UL’Îî‚ý>9*³stèTŽ¥1;‰|«[6h¨%Óüé/e²(/–W }ÍoÖGÝÃA‹ëî’§P½S²™ca׽֜˰U$’T¼ú]C½  r‡“¢‘4–!Z7+(¥­ÅÈÍ»Lä±ð^(í_crC|âé’ ™vÿ~{‘büM!òø:Xâ¶ÎHu»Ý×´3<Š÷ }Ê@Z×43O½˜f¶=ÚU•VÇÈêqø`zk bkˆÚhµy[¦Ä›µ^èŸPclÉU3`?é|6£\åökDäàfÉR ýæÀâ†Ró=¸Â€u5U0½ƒ÷oH=>j‹5ÁÍ Òá#ÔÏi Ø(Ñ8ŽÝ ü*ÙKGxðÿbÆR¿u6*.¹AÞÔ•hº®Ì©„§cø)¸oA ÆVA§#Ð îÖ^á.•»uÙ©©adYè±¹/Æ¿Œøó´¥½·1*œŠp(úyš ¤78±ô©ú÷Ó#8ôe,ßIQÏÿE:б ç TOC¬f¨úlµgó‹±Væ½Äþ^ã1²ìÈnt¿¥jø{k–¡J\N3˜4’Ô¡Ù…C;Ã-YÍÎü5,Q¨Õ0ÖÿŒ×è8¥´è¿çn¬…ÆDpi€øtöY~ÎîAhè³ð®z!ã…ÄûrÊVl­{Ì{üt‚öûë”ßõ3K/3¨CÀèÃØEÌœ•´]Eɹ€sÄY®Ù¡°›Š1Ydó/©ãÏR·Í¬´‰Nþ3xÞ&Õ¯’ŽÒÄÁʨ“ÔÅþ¼Ú÷Ù—/æÕ¹úÊ‘‹*‘ÚÂ9/Ùì$ñ1Ó_Mî9þwY1ˆ¯eèüQÓÐ÷ðN(W\7ïf©"™²t=‰ÏŠt°jt ô÷äðÙÓÁdÿAÄŸl˜_\Q~_æ‡s†üL½8ûÊˆ× 4€,7L>–6ªùzøÅ·Í,|r‡ÞõÊ`E O‚¸$vÞc*‚~@ò7öQ,KnH¹,“5 0]‹Éz$Ì+ÍFÿr¥¯é‰L$p¸ð7 8\>Œ}Ýr±D„OO›¯¯€tðæ~ºÔ{C¨O§vl!Åt›Ð•Ë”1j©}ŸD®0Q]wŠ%ÝÝÆ¢;ª|‡½Ì¹ç^ªt°í žÃ2¬ö‚t÷`À="Xo“FN@/T?$·œ]±‡¬á³ïœÙíQ·—жy+üMSá„3ý1~9ÿÂ:ú£74HÍ>Ô”FIS6+éÈWÚ†ˆ´h¿õ?§2¢¨­–|Uójðò䡃 q~£¯^—ë}xÛÓÚ–ÆèϵܤEOhÍ™‹,œG-ÔpÞ„\Z+‰̹$(*ÈxÊáA!E: ÷¤lD¿Ï§O¹KBñT“ÃÆvyXÀøo+P ‡¿<ôàùu@áÀ‰Vg×—¬Iì¯ÿhሯÔi—uoÕ%m,Ùµ“O§`•‡O»’cÎöy®BQ¾ŒM3µAI’Š-²Oû¯¿‚p.LÔ*ž·°b©e µýÊiÝ»V‡‹(¬ÈˆLýµ›ENLnèÇQ¸M[Ò§RÈ:ÿEjÜøÍ“e‰>ö-+ø‡ýa3«K Ž L¡Á­_ÐBµà2¢? !h;û©ˆÚóñ`qÝÂIMÆ™Œìòþ*ˆ%0R«]ÆUËÏV}ûý¶´˜d*y% ½Ÿ9Êš ðpW.÷aT(³}å9ï€-áÿšec¢nŒ]özß„ùÝœxç0¨B—‰j lJ†‘…º=…þÀ¦EmæªqbBåLôÄ2\üÜͼÛjîº+û6J©ÑW(º¾ü}bŸ@_Ê9D,”iñWrgÅgPÝ£hËÕÁuT ?¬S™“4DÍ ’Žú%^BÌÞèþK6Wk•í>TIV¨Ê°1Íõë·HüpêkàRèØS’Ì ]´1ëö¨ëÚ·Yå 6AVÜ©ó¾³H/üõ³¬Ù¤ çX§¶ò4+“ ’^¸]´TÍúÝ•èZ‡MˆmM¢‹Mí[y)ÃØ@ÕÝ~€ÏV¡+0ˆd&¹Ý:cj>.1;¦Ó£b-ÓBҬ̋‘`~RÓ÷AÛöEG‹ÇCR Xæÿhß±ûüœ2ŽQ­ ƒR`Eá¨÷ÓõAÈDÎýq÷N.¸~˜TR¨šØÐ£Á¬\9æ ÙÓr# œ@;‡€º“­†î»&©#ß&ANpÇèªü0ÅSíôZžYÙØ_`Oz0d«b,ѦÞ|`ºM'fÇܸ†Ëœók]>…AŒÿv´Ä¨=µ'K–Bóz°ƒ‹–ËÊw´›Ñ¬A×ù7˜…sA Å[Þ@‰ÛÅ:ÃÕü„õÒà2&+ÇW†DÝð,'Á¬f@N¶¼h0ÄÖ{¢®Àš2 ܻŒñœÌàr›Ô¹­+^¼93—ß 'ý‰è›8ėĦ‡n ÿ…~›y' R§‘ñ.ŒªcÒ¤Yé£M_µN7c—¼@Í©PªÖî6¤£¤tA*\ú!Z±"—¦f;»?XõU¾Üi­XF™… †{¥i2²Ï‹Q4@̾÷¬”ø˜ŸýÜ ¿H,kÚ_¼pÀ5¨U¯µÚÿJ\¤r<E°üNxÜžÔámhƒæÂK»Ù O+VÐ •5^·çþÈZÿ…sô朘§l1…,ºÝÜÈ1˜†sxùYÐo­ñ0pÌâÍ[“d¤wO?8ïpJ5¾b±3¤ñ< `sI ^ÐÍ£i¦MÑdÂã=åM´o~å*ñ¡¼§ÜB^§ÙåÛïȘ>öKKƼ"ÜÃ-÷WK"Gôô÷¿Ö¸S5´ô¯4Y$Èõ8vV«Âφ¹Zº¦$më^ÁYd%¡û¨ùþ7¢ÖONù&PÏ9AÎü6gžË4%„d}æ<$½ ÐNTÞsÀ:‰)5%[¢(.Jª7&ŒœÏÅà*(\SŠ ýý¥¡†X±ÆeóYác%öÒxâC': éPºoNoEægä*RýÿEoÐÚ°:ªd„„b¦]œåö°E §šìˆ$¾Òñ%ÿÅ<óݳïï.œ>fÏ$0‰‡àz-±ã€{š€I³— éDìo“1ß+ õe2†.¤—Y|óÌÍ»¦˜¨ þX»„©±%¡â,ËãÊÀ®›q4´"[EL»M…ãü„üMC“1@%g¦ÉËV+×)ó)LZQÍQä*ªÆ)W±é ’œ¿0b—„7iá˜>¬Ý˸‚Z2hÀlêjg¡at°8ÖÞÇsiy+PLˆ;’Y@™ >ýï%ùQ*E.°XÃñŠYë)ÎeÍÃ˒ƨÕh!f¹“~ÛL%Þ Üe—¤$T÷Dë <UeñEÔ߸*šà\óv+mð¨Õê-®|·8* 5pènÉ#^Ä»ÿ­ÞR•§7àhk¸R#ýHÛ¸‰Í/ôr˜ÒN >‹Ó­ÍM·dCíƒÝÔ¬ãüIqG“3YغÖ/ý+ÐO+½SvaÀâØSÅŸ}ÐÁÓ¦6eQúˆ×˜^×Ò¼¿Ì½4Ôåˆt­Á ?Y¬Ü'‘±j:殃V™WâýgŠ¡,•Pã@†2uCbx¬TùT>E¸Áò¶±¾ ƒ¾{lŸöÙ½^úÎòª[à¡ÿ&á—9s€U©p„Ã-ä_ÿVQyät (Á²~F1œ¦{…|$óÚ I9ø¢=±ƒ”hW3¸ÃÎüŸÒ˜MÄh¾Ótð2Óž§þ.S[øü6ÓÖmGE_XÓ6#žHMu%&+}&oˆ‚‚`ˆ—0GªXž©Ýô¬inà‘zÆË$Q÷þýÊñȈ 5¹4 ¾W°å…Ryêøœ;ô~7“£Íô敜H|‚ŸL)“P'ÈìxSoz¸Þ — ÷Q™ï»…Dsër©zÁHjÃÍÞ:þ„P¿ðÔ½³Ý¸ýv%àöô>—÷'f§Ëg)iž ÈÄêÍ]fðMzYmSA#fðõ`!xëy³êPÔ]‹TA¾áIá‚»B¡ùLÓiNüNŒNîæ|Z#í~Qx/0]Çu°2÷³?e¾íc†^àvðåH¶žªîŽ×4ÆêŽþš¸‹Ðß¾>;;ç¸HjÇÈU&œÕq©y„ä,L \,˜2AX”!¦§£<û¢µžp6ÎäM‡®Ý*=žVb Lwú¨Ä3’ã}ú ˜ÙÑ ò$+\ö5oZ“U•ÛÔ{÷7²~Úàd'‹%ì©2Úiû=蜢ÙZ'3“?½Epc»)Û¢Ô‚ÔŸû ·ªÝMõ¶û+»«Í‰B³Ñ: à~e …ò@‡üLª9é­ïÖ Fé]<ÜÈ@Ñx=BS•€Æÿ)W’ ±r&Þ™¾í»y“¯“l¡Óre“’342Çí$hHG2Yì«è|sã‹/™*ñ›®ïyuFq/Ùq/ _Þs}vU˜õ!·[:¿WIòbT¦—=9oòÄ3u0vV¾`¢ 9Q0É –©­Â‹Ñˆ ²h. ¼7ßÕ<ˆãqpå0ý¡Êõæ Ž[Â$°\V€¨D¼ëéŸ÷ÍÒSš˜ü2©2j1=¸Z}Bü°É°þzœ¸dß!ÒO3÷g3´jµ2)ŒÍÿTþñ‘Œ f„@Žyh£Uz;qa€¦H¡eézŽPoÜ?Ñ«ADòÎûÛ¼¯´‘žA&¤œD Z$X7 –gÇ_vgÞ…Îþ¤·?'l³ÅûÓ#Àõ§™Ö<5œ§ OÀùF‘‚û¯t@ð+kæ˜î~»Œà4u‡P>»“^!8D¢));lûIÓâ¶×Œ)KÏÑdéÙ€/ÑGš$É„#¬WC" î@s4þBÌ™Íáú °ótæBü°ØÞÒ ¶RÃʤÁ¥F{|ŽHÆa`bÊ a->¿ý¸Ö©kMq_ýÇZÀ Îvþmø9Ò€Hqõ Ÿ:" À”ÎïàéJê¥ ³ËýÔ@Qi-’뇉2ῤôæZ¦†9m¢»Û©Z¨Z$þÏ¥êpÿ;ôWµé©m5‹8(œ‡FcYk!þ‰DÖTÍÓ©M;ùk«Ôè„·nyÿwp6õɯđ“¾½¢GäÂßnñk°·É=?ÙÏÎÙfÊe\çЕCÊh¼Ô˜Ûv3CZ:pÜ™ðÃü®†6§‚CIûÉ+DIXø€¨ð¦3?qíãˆ(8¡¯ çü‚þÞ¿÷÷q« ø]ŽJ,k(ö-ÙÍIwZ|‹,oDIOhÚ•+(9£Ã}+aD&¤ ƒ©_ 3Å›0TäeGý{‰Dz]‚[ƒ1ù2Ø™´jê µ©•ý[UTÛQ\låáíŠuÄ®±mÕÜ©æÚ(8´¡DÏ=~ú0­iH¾'02\» s£—fSQœ:ÜÐõwÑÀäž: ‘³¨ú:£ÖÚP‚ì+ÿä]|Jºï8S@hk¬ÝßûɇµÀr„öÜ¢äG\Âü±TjaêŽwKžaÜŰk%«&¸ì1sæ<ë »,NLÊÄÌc]€‡›ˆ!¸s|+‡aœ6®‹òß;©wIÿ§©•lôjxè|¥Ñ¨f“üèšÙf×¹1nAÀïAÐ(ˆµëÌkää×&'pGFL.ä@YG4ÑHÛ÷8„ÃÈÊÁF9§ŠˆûŒÕùÕ[¤ÍåÈÀR?8m5 Y Â6š“íÁE/ÙÓZ¢Ê‘ì¢z%æZ±iÆùûv™ü€.õcµ½pÊDI‰Ÿdq§9á1Óû¢Qª—_W!í@\[v&Áü|¨X^êQ§¡ ¿çᎯwªN’4qÃ} ~4§X±‡ô<˜p7uÄúb¬sIiÓ—ê"LõÖ•ÆËùÕÉ« X׳ÍvÐHVre§¤VYç"a¡†ó“Ç‹SèM ÄD]pÃn_Á€Tø"ò µ¿jF˜­ ±æ¸Ês¾÷¹ÂbŒ6ƒ±“·RŒB¬Ž–Q+8"žwÓT‘BþÒï „È(bS›C”B•. ©wè“+`È[íêaѳ"Äf¾uQèú¾ tÅI`Ü"”|~ Æ >…^ÕHÓN×úÙv‹*[­[rxEw{¾™nP×g8Y¹#¼! 9.%†Ê;ù*h%F1Á©GÊ0F _Ø`»;ÙÇ<ð/F²ýIrgWX’8C¥cì;6¥@µDe~¿›¸àíÈ'¦uó<üÁ^³$4 îN/b)C¦‘fùÌeÓ½j©1ö½»`´uh¼ßl&‰LT†bcL[€J‰TGÚvÚGQ&)XŒO1i⿺:5´šò^öYßbzüRÄÔ©²@?þ#€þb³Càú‰]-lù|{˜M„cü°Óƒé‰´pèVxðiÇ8PaUWH‰½¡i‚HÑGwÏ™.8¸ý_O¯Å愇Bž#h}%þ[V¨ûA"TRœ¨LôX>wïrõ0µ­ÞÚjåoܵjAø‘Wɺ'JADpRªGôrV&ZFå“*¤X“tÉiŸ•/}SÖ§ÝŒ3­ÏÄOÏ]A ã¹zÏÙÖ[a¿Íœ²U(fåÔ8”’Ÿ3d,N-þ3téÆÇ9;ƒXç¹1®aщýÝž@U ÙÑ_êyyjuop.;4—Jx$GÛVælX´ÀçÐ:c.½QÓçάðÃü±œNuÛùŠÅ©/Õ@” ¥Oб°w›À‰™È‡ûùÌ.[¢S\nÑJ:ßÖ‚B¤7‚èS‹Õቮ¶u‘°2˜ýnï ¤¬¨w[¬¼‚£ùÏÿ`Ö€‘TŠóÓÕµ~}”¾‹ÂL©AžèUQ .V‘áöH÷´ƒ§(F0ÑÒo»Œa÷Í4ÔØpÙº—*q¥È·î=`¶¦2ŒtpWœ§ |tOéÜ]ñéFB[RÕƒléŒ9MÔÀŸ×pâHO:<‡~²V¿ýÛ„3­ÅüM¯påÂÎyø™õ Cƒãk2êîJ£Æs¡æ®àj²¶´¹M:öxPÖ~Œ¨»\Ú)‚ÙÑXëoBœm\ÞÍû˜³©¼ÀAŒ«³ŽS8u>³©es´ó$±4P6W‚°yå¸G€Ç×4Ø›¶´\p ž7Ùb•Y•¤#u?à+ïP–ZviX–Z_• = XMíÉ…×k¤;9¡*›w¯?µUxYd2ßp?ÆMRô‡|TÌtÿÀ^ŸV‚}A“+!a°vŒ!_Fòõ¡ý‚ù£Ò»¯(·-ÍüLµ¤¤ûc»š-•û¶üÃ ŽµtôlP´³*„C—|ˆNjä}èEÑñ€“OmÑX—f "y>ÓI.Þ¨µc¥áß²ÇÄí—£Ÿ²£×6"´hÄYs…T›I–à¡…pØâ²‚òùu¤Ëw(Ô¤KNm°‡åÈÒfkíôÆ™F¼¸ô'8r“é'”£Dá2'ÂbSÒMlÉ^èn;ì’]@Ÿ¬Å@=³Q˜ÜNÜ¿EÕylf¸SW©ë "šaâ Ööè1Õऊ@QïŸÆÈ9KUÂE üLÓ³ÚRóÖ `Ûm‰¡9°W²AN¥?Gä>žœ2_ï_/  áöRŒ `Þ¶Š€ÍŽãäJj+³|#¢Î[ò¾õ9µ7"‰»›g£Þ5¨ÿ]-gÞ0¢«Ê¨MsåÍHßnã¨çÜbhqü+¡oW¼ qæŒS%pAý‡³yz¡Cæ$RÛÎjaÝHØÐ6M…IŽdùÎI`¡Jø¼ƒn«Ïcxƒ ¨VóºþE’üþw!S–•• jp‹ôÀ¡ zéãot[Âü  !qÿÐ ÌvÛ7￱b'ûHSüM2âÑÔªç ÓK¡C­Ï‡%Cyü©z%†5ʹ;êˆöK»ãQB©=µœ…pš]â ^äSÔ ÿô±´øô;ÿó=甀O5@Èâ#¢‘XA2ŒÀŠya½÷á3#¹Çse(&H²ÈPÇmTÊhB†2”°Z\Ût‡Pð¯†?Ì ø@@‹sáŽVâñ ^ Ž| ™Þ— (x×@³.2P–p _Á•¡aYBWD]h|y’f”¿ìhwêˆ äÀ²A—Iã]¯ìWTù^ÌÊãMÞš¿µà6ðbUÖÁüX?÷#àEŒ >pÞÀº3Ò?û£Lu°§‰ÿý=Ü·\¿ô5ßâtG÷Ž%Ñ|^)uEˆ§i»$ åÿ7Ú‘ãÅv™¼ÞeMÌD\:øêw ;,Èàb¢•ÕpøL°j”fwpnÄF:æTk¤Çäù«r¨:Å~õ‚G‘N‡=I¯Æ(6Oú/xóš] $7Ø1r×Ä¿'TÆ‹$ÝxQAÞm1ËÙHPŸ„J¨ ¨´9"…ià÷æu‡²}ÌTI¸4T•ˆ O‡f/5×z 1œŸ-……Xó\*Ðsáã4,Aí³x‰™û™ yüÆ1Ì^C†ïÛ42éwÒdPІƒÅxe°lέ–7$Õy…ª †S¹\F$Fú (òU¸~þjÁÂ&üÌ£xAßòSyùÍÁ'§xÌ=:Yœ½9Cjä›ÝäªtÖº+9Š„¡3-;„ÿ;[ (¥žÒ“Ûj÷‹J©p Z ^±¶Ø€ÏwÔ¹ôKÆŠ•¶Øšiœ†3Ñ›²ß¡°²S~Åä#80èEyd6½²½ð-"´1òM¬ÃE­µ”‰Ó<—ësÛaJ@õ}GÊŒå#,ˆ;&q6—ð›Àq½ò(²‘VÙËóáû@’ç‘㳊uOqìlî®°) w4·º/Jõ^QYó x ý‚'ïþ™bÚ¾døtk!+Cv'Dq'x UR´VB'_‹nsÿ5¼/ Égî¦çÅȯêÔ¦·IÆAÐä-«)_ZLó‡lÊQÓWì+IŠÖ$üÄqú]0'ÅÒ&Ãjaõß`ýd³¿mÊ_ÿ!䔼·.ÇdŒÊÀK\ùM¢6Á–™K¹-éRìáð¯%¹âòõíÏe¢#R}µ9hW߸ãÊRÑH’Gø_­`Þ’S| ­Xˆû4›’ÒÑã¿vaËÏ}^<Óî+£&ÊPá—L5^Çi‘j‚¢¸€äÂŒ•_mcù½ôS³Çxn`ãiãçž§µ ⢑‘0§œZ\í‘jpÛm·’2ˆ[FNpxÐÚØœõ<°|#q^ç ÑaǤѓ覮?ŸŽeÝ{ËR2dÌke}TƒÒØp…½³k^~ù7…ú ‹´ü# Ë·KJ…GÓ…‰+ê´Ö^ÑwV2lPܽ¶Šä"ˆR‹Ô0#l‘á?’´­8¦)üÆ5ÙìÛv…‹I”„2ŽEKJÇŽúB„Ê¥…v¡PHw'HFå¤n‰ÂŽ´”ˆY·ÎLŽÌ˜n¤›qÀ4«ŽÚ$D÷®5.ðÂ8âVÞ…žöpˆ©wÜÎrAðFmÅÄ~¶qÆsü]‡¦Öm|ÍùœÂœµÉD§Œ'Ï‘â]_õœQ4÷kØ€sf.TPã>…ûq¤eZ¼_¼‚õ¡¾Ð*bäÛc$‚µ*øƒQ´¤±ŸTNjnt JªR\$‰r*µíTãÑIÿéRÁK+¨çD§â£¯ÚH½i}(ù€¹P—N„e| zªÏæ(ü¯y“t”a³o}ú’‘øXËD£äîõµãRtÄe=dZ3Ðwo ‘2¿¿xÔÝ–ËÚõ¼£2 È¡Á«êîÆìTÄí û0 MÆ‹Íg5Ý2 '›ŽÊìý\­16XÍD­5júOÀpn•F*ìØ¶µJUñÙpWòæá—ÃUU<.´%hlθD~ã4D:ü~sE³‹d³=Í(,5“ƒço¬ ¼“,»Þò®Ùbcà;ÁN½KÞ穽Iöú:݉謥©µáÅ Ñ,¦Ï ¯S¹ï]›z2ô"Šq™­ãK†íT™Ì¾ØÙ®Èý,gÌ×fIžß üŠba,)ü1ûÓ[8Uªñðo±’,¸b¸* | F­ùÚÁ AÒ‰~Xl‡³›ïh®Ü^¾–ð¬¿f>€zþ Á$?øñó ê÷¶¤¿x¥Ã›P°õq²ªTh?}Á”€® x³š/¾ÇEUQ¨2ÄÐÜO9cÞá.½ç¨‚2(ع”÷ÃV¿—ù¨âË`Ö®¯û›kÞ›½òƒ•"§ëxé\Š¥¯ü‘õÁ#ÝE ÛA½U‘,bÎ1G¡­wÝ+oû“õxÛ§cö” ÖÝx½SyÆÓMµþˆ¥‚ÿo:·Ïaö(i)YÏP*­X0l/†{ƒÎüŒB9ÑxÀ‰©T–} ù¿toÐ/ªtÀ…\?™aÀé?bJ"<4,=ýÐ9öqX€¾a(7a (ƒƒ”*•Ì”`´…K¤{pÒd˜È{ËáW쫯´¤å,ñ¥IK!«J}Àáöa;NM–£3‚ë–/\ªêª~O½Úæ8(A×$§ÖÙÇ5©Ò¾?WoWÊ@ü„mýœÙ æÂÍ^H³G¨za7qGùÒi çË{jQp‰zíÖ “œÙ'”Ls¥ySxðÚž? o/÷÷€ ÃJqݬƒ„¸Aþé ^F"kh’Šëö*Biwv™kþí`¼É¼q¼âûõéJ@kvrØ.æÃÜ Á¬Ú‘ÇBs¡] Qñ8•$¨‰Ã*~Ya#`µ¸8\#£½¿¢[¹èm€¥Ü˜ÇÁð¢Vâžæ™Y·ÃÌ®óëâGØ-óÕäêþÔ»ôŸa$-8¼ìMAsëÛ~Ãü†k³Wÿ”Ú³†¢ƒ‹Á¯¿c§j¢ý.­?»lU'Øâ,Vh±NÉ…094Ã,|Ùº†ÛqAXç³N…†OX°å3Í“úL‘>;ôg~†&ãÈ°Ú yæB$V‡üÉB5½¾_ü—cÖÕ' § ÿÕryƒé¿Ú’µ¼ ž?ŸPu¶ÁºBGí{¨‘üXÐÜûº.R¬`ñ§›,qƒª| &í è¨6iŒ®VÒÕ¾;º­ÇƯÉúÉ]s¢å'×¾ÊÆÝæ?~‹¶žT*î@U¥þ@üL®šxøKødý Š%w»Üs¬ÕÔ†Í9Dùê¦ ØÄãa D°š6£!AY¼ªÍ¥'2æžÀí¶~cuÙ´Ó­ÐÓ˜ÂUu«#è¦[;½xì¤ZÑöËøEséKÁ[»ÀÛµ‹*þ+/¡ ®(6ÎM É¹"ók¶âle?_žË†³n¢WW{¨Y`CLÐDI-ZXjZ\m}p­còwF!M›K6Dz7ìuYµdƒ?`1‡ly»^PÆ$¡!Kì‹Af8 6qj<‚n‰Á ‡BÅü6œ¶?¾[×/Ç5U¼:ÛôUjªµdhvÃY–Ά ú¼U‘cçÜÇì±ÝŸ=<¶TKRsŽ˜øgo†Ð_«šW8×^RéŠÀ«ÇÏLϯ tÿŸµ‘XŠlžÕ¥Òâ¯Ë;Ÿ?áçÄ1œ‘šˆL 9XƒÔ,^ Œb ” h€v_n‹£@±òì‚—¿Än4kЭ³–­»Ú»ÍÛÂoçŠ2–}Q åÊ-œà„ûËN˜ßÑObõ·ò?ñSμÁUê`8\‡ÑrúºÍm ~ˆüJbEÖ4qŒº¶^i·¯¬Â®ê˜\|÷‘‹%²¬éU¸ld§™›ß¼)eÓËVÔùðÇtÜù,µ­¹ÎËQÔ$oðÙ‡%;œ1ÕvÂõµlœ ÀO¤ç)U±˜yˆ÷:f¨4w‰ìÔŒÔHùU1ûÇàÞ6´Ä‹~­1xc÷˜×žVÏ `ÏKoÅ8gyF—o‰Îcã^HK„¹z…R<%%Õ»R3FhtE+‹ŠF*ujò¡Ç(81[у x€&Þsòìã YJõB ézC‡Ý=BfkG=üM4|oÈ–¹µÙ ¿oC¥”Ãê}'Vä¼–·n§xÜ-nq=ÒSqlyÏm¨JâlíÙMpÑ Š¢0÷a–·«Å8{@»µódÿžý…"<=Æ"l$n îr6æÑzÑè˜>õÎ8œ¼ìbjüèì0¢úÇqvqܾk9n-i¿ÅJ1÷íQXK`ÖÛü¶Ó¶Y_Mf€F$¹Ô¿ÈCì¢ÍÕjX™jÅÆ§É@ XJh`> fCä°æUmyöT¤³GDø•²âO¸SÚ½õ{‡l¨v†„üCæE¡®ûùáÈ9P‚céá©R>P8½ÿþLæØA$ (÷߃Zê™°¦‰cf̾ÖÈneSX©kíHÄ u¥ÿt7Œ5@Õcvñç¶Ý¡©à‹¦Ð«“¸…Ô ˜Ie™è¸OèYyüJ[mŠƒiúÛ…\‘T¾x†õ¯_Ωíî¹nðßïØíÀ˜ƒv¯2±hTHiA)çl©}µ‹€—5.ð\½l>Ï»PöÌf}Ý÷UL¥aëFµh5Ã=™^ï‘b®H¹&¹¢ŒøŮµü“¾è²²}•JÏÖ'ÜZcæT)%ðkms‘êM»á6j¦GÎdK‡$C[ƒ˜ Ö µ C\uÔ!å!'…™Ý;›1vüóP,HâÌòœ}‰ úÖùZB ‚zæ®"¹îÍñß@«Ð_¢ûúÓ#ü5kúÛǃ!,ã &mAG®¹,0û?Û¯lÌR…ÝvñiiØ©táÙ©«ö1™vÝdM¨“†6$£ÐH$Ý<ðø4´óÝ`ÄÜVóü)õ—¼f]giþ猷aA)Äw)¼(QD8ì Õdï£à)ùÁ)Mê'È:0-’\†¨À'•÷?=ˆ™ E¿Ñ™_¸ >Žâµgsù5”ËxéýOK”™J¹;A‡ÃÈtŒ^œlž© Õ¬q²–µ!C‘Œœ3”mcC”°4î=Ìì›»0KV$rÍÇ×Yð-¿çüJ[»ÌsëÓTúiô÷p-,ö[5)p?D»4# ÷Ú¼¤ÃžgÝÄ\”»ÀùU¿øO3X®ìó‰Ì/ʧf N7zŒBÄáä€À³õSV°ùÓÔò÷]€ôQ8ûHU)-›ß)Òð¾…³aŸ¡± Êìœñ¶JJ4çÜV1Â^¡ª=(Ø¥–X„™Àå )Òdšɑsdí¤ÔäX>tcÊë Ã–±.Ú9¡&”ZþR|ÁqÜQhcÏêÆ?ï–n†Çû‡}znÃ:FlzPjN¥†m y§ÕÅfp5ã,}zFz饨 |W¹¯‘¡¼z9_ …1,è =Þ¹Af|üÆu±ü.ª*Vàû]Ñä̰§iZ\´Tz ØßåÒÇšá{Å}›ñ—Yt{=vD ƒöÔn·Ï¹|œ–»¾GiØÿC¸ £-'@¥T•`U¬‡ÅòG‹ÇNOÏrø±l&œîî Ó~ŽRÌ%™  œÊø)¼¼AÅ ÏdTÀ/¸â݉‹[Èü%Tà辺õ ÅÖó» ™æ]Ñ'»ñ‚aF4åÙ£ÄÝf®—ÑB¦B”ÆœšÃ…!«|‘tÛigI¬V.:…΋„ä¿ÌÓόຓZ,Ý{ùâhPl½ócdª]Ò2÷ ½ç¥ü®Âzö~Šy^$Åu¥á·õp…6Ýmà7N„¿š˜Î?UAˆw‘=lPL:4R’ñöÝ…äŸÑ‘áÄH뎶¨G1òE±H>\ÆcæÀœÆ2(ã(¾ŒwÔÙÀŸ¤ L–´-†%Á·Ñnn„ÚAEù?c1fp—C‘™ÂI”—M2^|k1‚Úé2©ž'®÷iPpïËÍ;æÀ”òxÝ+Ûh8,{ êþÿÄðàY¦òiD„¾Æd¶ØTö½A”Ó÷¯œÛ9G‰Ü·¦P×ÒDXx ¯òû§Z@fë´ˆÐ~½ñÚÉôüÔü°)ÇXTŒ[y©ÒUÖ¤âõÛ[AÿØlÜwìN“Wn¦,S±@sëÚ˜nzIq††þ ¦T¼°FcY, j#ø@éi}"1GÅGÅÕQxg‹Øð)!×2*ªŸËkÛ„ö[¬+ œÎU³„ÑÒjM–}Y÷´OÿŸ¦Ø¬%ú_VWÃNÊ)åßB1ö%lƒ"¨¨v²USåÝö¹z0J“•èŸGë¶@åÕ9¦]é2>h½cš;'™2i£ ÀïB¼µ‹áàac¹ö\w(˜g˜¾g²^\X2@ËÉÚ"KujÛéMÄWMæðUˆÅ¹ ëâr~¸#9°*æ’ò[ÊJÆÈfNH1ódËœx}N¦éeF#í¯p}êB ®‘ÆÐÿå„D€F]Ù›o종¥…Z2 ÐÆ àmôÒð}’º‘ÌÞÍl<£-X¼ÎH!?­!Á½–1> fQ ý”ÈèæÉÖ5¨Ùb:Nʯ"$€³É*ººÊüÅæ»D*!Wú˵2âçßµæô¬°÷?Ï]Òu0ÇŸEÖªÒ)þ¨,˜Tjg£OÇ …F+#ûÓ™NÝ\üM 4`R+taÙ©Dú(ø0±CQι¡ ¿‰îüè œ×-¸ÄrS†ŠÌªå k îü|rq+©º×ŽÏ“{*Í"d &ErfF¿ä”<€”äêyöñyDµ_6€4|z3ÛL‡@(3|86g[PMV͈ðîÙ1“ßçÄ·7F·T¸çTJ[™¿µá=FÝHºiòTÞÍSz`q$ªc.é…ûЃûûÎUñÌê(@†F¦/£w.9Õ™ç$ÍlØ9KŒœ®¹Œò?Í“û;„ƒs&yýŽn0U¢ËgÑ·×ÅÖ&¼G¿3›[bºàAµ?1É<¯B.ø>îä3«Æjé2L^+“. Ö}ê`( –£š¢`®¿Ñ“H˜42·üMWOÈRÀ˜esሬ…ÈA/¬ ';¼ÃIÿ"ŽÜV\¦jŽ>áhi±†Òy£SdDCŒ4ô¨û<ßuN‚Læm„ ާ1AG£²øe«" ‚.(JÎÎÞX|bù˜V”7.ÓfdÖ§ÎNr7ÈCïhÐ0[ε¯ÕPÍÈŽ›"Ch#]­yºâ,mSÑwZl–ž½˜ödñoóp«B_ ^×à¢Ïw¢^(¦e TÝžq J¤/*Nûû8LãÛi×U‹Ü“(Úv;e™eŸkëÑ‹wÏûR»üM0 ÎfÅ2É+¦`@> À ¸i%õmR1z/ŠødÑ¡::µû§í)¾Ô~¬.‚+OÎöd¸|í56@÷-pƒNžØˆ$æ1QLFÞ¶K¨9+­wàHÀrwÑÖê ®ÈäbxßÔuÊÁÉ–bÐÍHzélø¦ ŸÍ•BüH¿Ïü]GÌ ªx-0+—Z1†¢ïg&b}ˆ(³œé«eô\ò,/@°²íÉL¶˜þBŠ"´–{àË´¸rq[ïëŽ-N!š¶ÄýV2ù¯úÛ/ƒW³•™Dæ/`óÞ‡'$ÛÊp™CŠžÆo„Ý-ðmNRþ|~X:%e}]MK*xçÕ2‡Nâ&jËo ”sû/IeèfÇY ‚VÇýú&/ÜÈí h'd?93ÈÏd²[R£S©G«ûßPüMR"ËÖ•¾þ‘*Ž®Xh^éå×}K¦Îè°>Ƨ44\‰v xçw´*—‹UpØ;LºÁùÇA xKÂë!lÃíD1¸$þû.‹Ëº};ÁJÕ,p‹XÝ›Ogvý†ã¬?oL½¡éðÇÞ·Ú¹²¦ƒjE®I)ÄòÁªïÄf$U°ßñ*:FB<Ã`}# ’Žü/±FN-¥Xô!«ñÕÖ²ÎQÅâÑ„´äѯJ‘õ>4J§&hïq˜ÒsÙ6r½¼ÌÞ€¿ž}ü5'^™:ý¯QN´Èßú(+pDäéA(;z)Pv‘Æë‡ ¦Òm ,J[ZÉsãˆ)8†F„ ')A¨ÜÓZ§z…ÐCÑ4~çKh[ìhòlKé ³˜is> ÊLÖî6@ö÷ƒêJ”µ—ØœëUËI69°7l¼ñ[ˆËdŠûS‚+Ÿ½5¥­®x\œÇOy%ÆÖi.ëyÕ˜ÆTÖo­h]ýàÀŽþjü¹ÿÓòˆ p ë+$‰ü½[²D\~7B·ös.pdx‰|AfÔì<6“†A æJéy/üÆu³öà+fxp€G¹r¹Þ^†›ÅAÑ®„l¿*í^––å<„¹‘ã ¸7m‡ü$upúZÓDEF"VR§¾Àî6iò´‡,øÙµû•°ßJ+›G·_ÏEÆÝt— ´àc_¶BË‹ïåÁMV:Y×ôïÃjÌRp¿×}ÛêLÎ\ L}ã"ÄF©òß&ã~<­ÁÖ¸‘OÜrO‹â['j%üÆjõõÎŒMMm# _1![r«&„«ò¢˜!¯otß ãCš퇂ðVæÀýwnÛõªÈ65—ϱ fª®&j6¸Šs Ÿ«½YzT«Ä¼aK‘˜ïtø•ŸnËÑBä5ùº§é `YÇ¡pCýFo¨<ò öšt*pú…ÏCT‡ åp %_˜JÊ´œ™·ÅÿÄÎWv«6X3ÜÁïLm  Ù< Àú/“T1N_ïæI*¼÷‚äÈz–F >ª qéêi¿‰Ñ0‘…ÓJ(ÑDtÐqÆ |ØÃS3ùÕÂSm&üI ¬â|H iÜs3R»Aj¥3Œ8Ñd©ÃÔ&pä÷óULëâ è-º¾LñZ(Q¨c² öš šï§Ê÷ëDÓ )r@ÝR1¤R´…ä=yfj°GÚi29rµß×oÙÍÏö Wœ“!IûläϲqE?:~²•¬ú9>55r *Žf·rÚîB\¹„P3Ì õŽêz®åb´ãªËïÚµº«³sº¹m-±bÍüÔFšàQ§ÂC<·YQ'vg“àÝ+¾t€‚‚÷^qýS/ÞvÓ’êüM2De>‘Ë~ËG¿„ƒÁ-Ó‰-š;3ó5ôÓÀÐéüâ]8—-bö¥·V•Â*7C••T4”º?¼Itþ½ÂŠ×^÷ì¡‚·}žÇØs÷Díçž))Íj ä€tR¶8«­=й˜õDZÓÔ= é¿„¸Ttüª ”ó©f¼F?Ð÷2¶^Q\l{ƒ²náP3$„ùÙjÓÙ³²ß€î”qm‰ºL’IôÜ>Ä!ïŰC\ €ÆzмœÍS|ÍýyviÏF0ù•þ¯.O·ÖÇâ”ÜÍG¾?ž·üJŽ*Ò1 dÅ®í'’I¨œÌv±¾Wh_YæzƒÚJѼ—¢½s[Ãîãš®ð'<…=`'6þo™[°ÔbÈ´Y^¶µTsXo†’V€7´Ž¢u¢x¡…‘öBÔê±Õš%g"*ô-²x"ß åª7ÁC™ê†˜l… ¸Ãˆ¼]y>5Û«eÛhOJ{µ¦¦¯ðŽºvñOë_?%’J„­¹ 4R·íþì7ÍBO`͈”yÒô)ÿO ÉoÈOªƒ4η õ@,‘è`’0ËE¥¨œëÒáüXžhºkŒ¶–Šk¡‡ª¿æ”bŒ^“9˜iÊ« xÄ |š’p%ŸyÞ÷W³Íÿ×›QˆÎ³ê(¨™EŸýgE)ÍD©~5^œ0VýgëÁm€„ž÷T˜Sñ…*¯?J }üâáò©å“\*ëÒéndº’uÆ3U_J`;ˆÖåP¿AaÞ¶b²gÚŸ3f§0~•LЏªÂxëpµn¡MùŠà˜)¸" t8Øârøù•¢U¬Œ-JB§)ÀÛ•#¿Ã6n ºñIüÆmha$‘?J×ÊaÈ™ Å;.Àµ؇1'ŸäTò­a,tÀA,Á¯É„æÎØyx³¹c¾åß>z5;ËÔjŒùÏwzã‚é¾¾wûuDõŽ`í–E¦a¬Ym"ß&ãÞžA!\<ÝbÍNêÆÅ:;GmZÛ.]µP:Ê6žŒX:YìÛ÷¤BÊRxeø({Tcµç 3–÷ ,dñÉh6c&Luñ9­Ä#êõ³íVΗá_ûi—¯èÒo6[ÜæíkÉß(F¯@`$ˆì–_±³üIžˆn—W|÷Çœ•]ª$Ì3׷Ćœ†ŽôMÚÉ¿y{ßs›ËÜîq°øbõqùl•Ô¡Ÿ9Æ EåšÙ è±2uq†OEP5¢›¸±€H넼©äŽ•´K÷¶È »Ê£½Š{¶oÀ£´ò(¼ =D˜Àï‰é»1ïܺ²³L%{Õgƒ¤îR#9º­± Ù} ÏLÇ8óÑS•Û‹ViÝoU‰kZ×DLrêÂú@Ñ*¼xPá5+©§ºÝ—ôÕ|~½+È›íJ“«ßVoÝ*Ò•¬¬6É/…³¶‰žçžÎÊ#ü5TÓMíìYZ\ƒ2 ¢¯n5©Í|ЃÑÂx=ÉÉ,²l‚ß{@åßô £“Mäsê/Ù‰»OYÿs fŒ9Øøú¦0qd _|ÝCšÎŸa?8å¾HE‘=MÄHgoóÜ"Êó‘#(üP+i¦¡c<‘ü BÞ´9«ø7"›ºõIÍÇž¡ ­¶ñ²ÖÔ(Ì‹OK/¬H-‚1ݤzxOx“å¬P/þÃ1"48V8@Tõ8‰2jpedµ½I9bqp•LlÜò? “S÷/#¶m(ÚxÿüJ5·fÏóm¿RÀ‡ÀW9(IÓ•vIípÒ0Ø ¸FÖ Fºi_Ì?¥@Î)ÿÈÚË)ŸµÈEy°•Üng¾!+_IôJk9êÇø )6HH½‘ž8Xn® e—òŽøm˜0æí-¸VúÓBñ1ÿú2êDèð Ï—™]‰Àdÿ˜d[oB5´¤ß/¥¢‹Z}vœ”j¨ÜéMÐ¥(¦WÑ>M*,ò¸îVI£Ê‚8ÞZ•–T“ÕcÖ-Æü^ù¢?¡ƒçþP“7¡™õÌ>Åuü5.5rÑô}ø²GüΣå-Îäñª'›¶VµØ¨áh’ ¾ÅÑë7E‘ò0Òn·ª°±Zµ/·žjÞ;…ú`Žxñô˜\îoptg<³¨AÏ8ù¨iòîa-:Ö ¿c_‰‰Û&O$sÙ`¯U‹q¥ÒN~‹I¿';ÁDøy4%r>†Ûðo€Î¶ºÒÚžv…["]¤¯–ýàŠÝÈ;Ù‹b^¸¬>²:œ¼8¥ìÊSZ±JL=UI}m¯Ô òBÐQâà6Q!7üÆ0M^òÈ1 àtWE^®*Ãyï×!±¥·…u%.El`7€ße@!“O£SÓWš}";<*âDÙ¡dvm<ož nvO‰ŸXºšÕuc:”\³¤@©þ ·7L'ìoFç&&°vI}÷t9z— 0Œ¢}U?•G\d¹;[b¾ìÿr'Óns$$!úÅ—÷½…49ä«ü¥ØŸìZ 2€ìxHÖú`¡²rS‚j]`Ûmxp équ8ë;”'òü1R/w–¢è73^òá¬7þ­¾ÐÕV9A^j>@8ª21A¨ XÉ ßá ÕaÆ9ÓfMÍ=¿âòÙŠŽäèÎÊ¡º¹â‚0}wpTR7‰:VèÇ‹ ëÄ_;cüÑ’Z ɹwþö‰–et@ïˆÖð½2Žç©`!¾Èºs×}Kn´?OÍ ’$ž_`¶ÂiÝv gʤ­ 9ŽÅÏ ÿ™±§:¢ •Yâ|Œ—>LÇ+ñ߀©ÎV?H™1’–;i¯@ÚóÆé6‹_PÅsœáLü„÷$+äÅÛ_<ìÊos7ûòšðÕ“ñ‡':†ÿã]b›ùzž“gŠ1² |‹(|[˜…cËZzênºº#ƒàS‘ Ô…v‰iN=Àµ&t+žY®ðFÞ5α[l#ôŠQ†¥,«ìpŸ(lõµA çèKbRõóžm\aåå@Y&gM$uš8·¹åíÀÌU.;Ëlõ„áo}s CdoD·Ù`†wìP>ê/1¾Ó™'J vqµõ–ë‹hyÙ&î’35àYS¥Uý90dÝùéK>±8Ù„ø¯½üM0xhרaý¦ùeb¯ÌÿBã7L*Ç/6Þ½Û±N†Mr.2£j¸¯WOH`ÿ´aœŠ4úDáw^lp¸jî{TþïJ@m¢ŽMb'°%+5wý¶TS­ ‘U&úp‡"+XbR°\j&Pß±ÊîhgE¹°M¼ÜHëœ`-ßÚ>¨UÐ0}ÓÇÚ”óÂCÓj†%Ÿ¤ T½îvsÆ;YåƒÙ.ò¶·¯2bQä©=‚yˆ"‹ã›‡Bà‡Üˆ6%¶¦|’£¿Ò飼M¡Ì…ôw‚ÂÝÆþÊû+€f þ·«CüKK„7/ê¼Á‘ÿ$¬&ÂY‹HR o(*rºóîŒ4€ K*ê_S {j ÿó÷PùÎKC̬gå÷¸sp ¢QpjÉ˜­ØóUâPÈ×O¿3¿j¥ ‹¯Ø=DRrÌÓòôQIÈÌr(ÓTcPOðlHíU ! Ø~ˆ(ÏNÜå›`ÚQþ©õÉ«¨%C…ˆ­ÆG/²762üî%óÏAÆñ¢PjïSKZqØÄþ˜ÓG÷ÄãûCºM ¾›Ÿ‹Ý:ü&– ¦8«Í³üš ¼¢V-9/®ˆ1(¬”è\3ÉÂ4´íX;ö7LËK|¯Gçü|®&ä¹²~ÈO«óâT˜‚Žøs ù¡O˜ ¾’mw¢ÿ)®øasÂsž¿£4`aEð2Ì4ØrûX "ùŸ‡˜Ð;۪˟?;Þ ÌðW™ÜÀ¶E$âØÕl³9ž1úþdÐÎ-ç‚ÓG]ªÍ’ÂÈõ­ ¿Ü‰¤úŸ¡uˆMàŒBœŽ&¨ì›ø³ÒåöÚì>´`õ Œk[—$­â°ë*·–³š"Þi‡”ðøÓŠ ÈÎq¹Ý(¤KT``ºª2`g~H¯ˆöÒ6^ó±Kôº¦â0û°H¿îü±Îï8:Nº®e(¢<À}‰|?‘>s©µ9×BÿüJLZ¯wɶøˆÁBSé,a&N?qêïˆcP4>;}ÊâÈØßþ0Ë–˜J§Z¬9NDrÌï¬9ا9S±5låFÊÔT‡,X.³ÀÐÑQCˆ¸"¼@-ìŒ2+‹#júgM Í}%Ïj¨ÍX0«µúO&Q,»Ub¦Ûîg%ókØ&2Jßµ¶%éFM”„n&.úâÜü˜8ûgM‰y86'æþáIIÆ S²jãʾ‰±´ SlÇ]J¸ ò'ü}b€MÜìh¥åAXx<ì“ÿ%$ÅdÐPn„ÐZœ…”§C§ÔOd¤Ý™,Üœ±\hõXnØ$ü`µê—'wIÓÇ@¹S–DX´p.ÌŒ>\NóxÁ‘o1š ^1TÈ}w¢¾zS¹ÁZѼX˜›Çá/S¡Å?C§J;”|ŸãmÂä%S¹eð]²:áÀ¸î‹Ãöaοï¿ïÃȸo7Gׯ*Êf'÷u’õœ-á_ˆ›⟠o¬à`;SÙÖÖÌû2©,1ÙpüM[ð²É‹ ‰¾_²/N³˜…¥Y²tÀáµÞj Åÿ™Îè‘ÝötIˆY£¢¸>ž‚‰.*Ò—'ÂVç+u+G;¥ÝîÂW{Ù†ý6ǰ:’¾†Êóy¸\„ºwr¬?¹Â·Ô ®IïèÊ0/çÃ>±Êåò2^Ĭú1¾&¼TËahÊEó•4ÃjÂ-3¿ZwSÃkƒRU#Øo¼á|ü(‰×¾ƒÖµd´øšÜ0Ù·¼Ñy¢ædüœäg;¦ü†¢™]­c$ÊBðPGyaé4v õÇðýIO`ð…íQpÏìUér®F‡f·[pÃü5T¨ßµ* 'Òr ;nJâÕÞ$‘tÜ|ÚZB1¢¤í~~÷Âñ!6ó4˜óñ9óu_ó¬f_V¥swÍ!¾u¡šwkø! ɬn&YÀ/gö65TH§CpGØ5‰ðd…4ÜŽ•°$µí®ÅzãÔŸÅv¢¡ é%UI¹ÐèaG'ÒÀ˜VÚï]Á#Òìü óubUGH$bÆÆ:¼?Ÿã÷š»”kÉèY×IjðúÍ©Lv²vÙäÛc¨ Æ`1j~ÚÌïoQI¶b³â £ Þ?éè_d3›Y£ƒÓÄ©±>{$Ý?Xz0Ûè„&JüL­ê)M×Öp…­Š\/Jópaõ6SÓmÝ¢9>xšß5 ØpM‡¯€zÔð}S®4J?6ÒP"’šD‚Uj†‡D¬ï^:r|ûªT#¿™%¥L&QVûAXV©þFuè;oü_éÖnymýý&É*µ^ÛX.Ó<à zoc“Døâ°5 s×P+ÌÕ“õŠÀ‘7äµí•1H=¸NP߆•%ô«õ)$µ áô”Õ'/ÝvZäƒ'ùR•B´ÿ¿_Ä ±ôð_¶ÎüJ.Ó@Û«Â{v íån9aš…xBP=üÆj°\Ä´ô¼r¯Õ4¥^“¤ñ[ƒRÑÌH8fí¬‚ö ÒNµ÷€N5% ‡GÓâsˆ†]Œ,ÈtÝÆV±ÒñÐ-—.â)ð hÒ;Nmn~Ÿî‰¤©ï$¿P©Ë0Œ+èˆ~ŽÇ¯…í/ËH´I¥K›VLÛWŸ† ì¾8èÏá!…ÑÒ=o_G”DŸ5Ï›í¿ÒîA¢BŒïŸ¶X>Ùià2!ë³,T¡Ûü&_òUG½QŒD מµ-ŠyŸ¼Í9]'pŽ   ¾. 0¶¾ó »ÇËíQüûuÞ67ü†mô¸ÀzòæXXKh¡S" QkÕêÂH°*® ¡Ž4à“¿‡ç!/"@‹ B0æ õ« Ñv´¼èX‘9DILÔðŸ—Ы"¯ú¬ø@Ê/²š5¡àd^<°9|Ýé$À«N{4_‚Š;,ó†I‹l[ØèOpW—†OVA“a€ç÷»±|&ÏGžƒ>Nol‡­ü%Á`ü~ηݞai­ä +ddðþp°@£†¼þ}S… ì«S½TIt‘4|–uz$ÛÂÂn¯[ h¥"q•Øø»(”EÐb3î*Ü÷ßá¿üL¾$°7Û bެª½sžvÅ‘—±‡ù–$ž”2¿É‹ä+¯SæøCu¼¿ã87|°J É:TÄý0›hŸIâÆC½YÃé ðŽ+eêÙA.8J*ú7B²ù—P÷Äî-Ù0å瑨tŽ)©W‚õë©ÀÛhCf牺÷õÎ!R*5.ÒOçI à1ß§ƒTžâ5Ü:ÌkߟsÞGc“[‡|Œ¿µ=]’´¶½¨':è[Âø(ðTJµQ•|<Š[{~ÔÓ õîÑBká @–xD3g½er‰k_Ú ¹òÍþû:%A+gà+üJb±ÔáhÔ•žsOëjªèuã½QÄ—Ý-ÿ³m üý˜`ãÅNÚì+]"½~HCÛ¤j(ý@];GÂéÔÈI”4ôªš–¯VÐ1¸]|.µ´–J²¾!³Dè™g†wÇͧ¿[©jùœöÎ÷YÖŠ–œÁ€kU“W„¬g®¢0Zäq°‹sÿ•ÞO õ«tA²è=`yC…ÈKê•þA“J*«¨mÄÅÌ+ð·¢·$§¢É4yè§¹Øw1ÆVk…Ê´´Î!.ñ}}ëýDW°+Ç1½Yê+±¢¼ÀÔ?‚¶]@‘ÎðÚ8Up«ÑÛDŸóüWû¹wL€v„ª“¿¨·õ5%Vu è1¯êÙµÀS‰?F™7Q@!xòàü¦Çhõ:Ϻì8ôz• ;IT;‡J„rª e‚d²±åsÏð!˜øg~iˆø>âcòÔ4xfGfÛá+ßQ›Æ§Þó¶‹úã,î=7µ¢ƒoájN¾wí•Kâ:”ÃÕÓu“aQ°ÒÓXóŒþ–ìGe_$k’üí ^PlP«~Õ£ŽeŒ™OŸ+ÛZâê»A§šÆœ‡•UÆ‘³¥>ãÉ ùs²§ùÛõW¸DÆJžó{øüî‰Wz_³­I-GGoL‰åëþ,“¼bgeT·Wéfï*v‡Ž Îýê –VCø Y67"tå— !£_ F¸?øì™PýKë7L"XÏ®VQ°ü'öéÌE­œ×D / ôÿc¹Ývs>k]µ@Ä"uÒdijíµ_߇8‘0õýMBãð­™•ö0qWXÊBqÏÄ—wA«áXgìb–;VH"ÔÁØÅ÷hmŽÇÏñéÎ2nhV÷Cgž-0ÿ«?æA]Õaüî½ÆZ•îG;êÚÆì ªZ'v £+tAJVíæý-£]çnÞ ÅîÓ›Ëò º·e)\L*¬©ãþ> …ƒv€ßQHEŒô–][äAX>j“¹âÿÓÛH®<Ô¸’Í€ÍÕ¢ïÜÖmׂÌa᎟ãñ¨-7êÈöTB5ÜÔ—¶ß&\õe×§(ðª;b’eX!˜ÉZ+õ5ûo2˜‡ÊÈAþXëF“{¬01Ùc_SãÊßíèz;~“Zº–rK2%!xò[±¥S'«{£ úÄØªÕoüñxÔnûºEůbõ€Ûü§û®¤Ü=.¨]¹AÎÄÌ®•üMY´#Dcö²gAëK 'CѶ¤Î‚ˆ>¬bhÛ¡k¨”d" ¢ ǮȡÛmwÙ2šƒ¦P¡ }_·®áÙì)“§³s™?1B2U4 äëNl‹ þ,Dò–>DÒüÁIœo¾n«Cr™3…¦Œ‘kŽð»§¨½‚êÿ’ ´Ì&îZtÜ1è å†yW!-†žt^¨—”PV4]U%müî½Ø«À;J25 :ë׊ÃÿôÅGªèÕR(ië¨:˜kü æí~‚«”QèºpŒÀ.CHLŒ‚ÿõ€ß2£µ;‘g= ›˜4ä«oùWÕ¤Èí[¾zë$l½'Ú°ûÍòX猯3—­†©HŠ2'¿î;Å9»Zð ÿ)‡"2Ù—Íßz€÷9—þ„IJðj*2,¼öT|Èd`6º×ྦ0ø·VáåtÓ´Só´5((¸±®‡1›k:ËÞ.[ð5 þgõqüðÑ îŠÛí"döÃ.7ÌÉmR=–ù^w; áØYMK!‹|Ñg!ëÏ€ +È\4ávrÊ?©öMC8;íùs¢©äý]âþÖí}ÒUЭÿ¹ùR\¦RG—”MhµêÜ@T¸›7¦yøõ¼ä.œÒo)ß Ö¨€M—? "é¶"7#ö1’Vhh€˜º¶‰º³tã,Ìpö¬s} •™¿WX_8«¦ñ5Á[èæC@a×î–À$l:‚ü¹sˆÔ˜PÀB•Lüî‚—úÓŒž—¸Ëí®’*},,ÀNa[ż䨢\Hý¸Õ«!4m¬-$Zã Ce)o…NêXOÒP/Õw!(Û}1£|~~…rYÞš× j~ø2^mrßÚ´ob_›KAõÉ¥Í80œƒbƒ#\yû/­öT¡_»û`"y ó™q2ˆ‹ÖÀªƒ1o›~©è„£ê„W©·Y‹4‘MSéíPkû t"™¹G$··,*¸ç‚çufüWûvâßȈw8zÀï¸ J­Wfg`õL}T¤1+yt6ä_YE›XŒÅõмØF—„ãU­›2þâì_|¨›´Æ}ܬr@‰wÚ‰ ƒùoÌ£í»&Z桤{˜Sq°£Ê´Ùh‹?Øm²îoå%ùûXÛ#`@vfÍT†Žt»×®ÞÑxÙüI¡Íõ œ—µZð"kp¹Û vÆÍÑØO:íU[Õ|ׯëËÑÜ‚3ÍõásHÈ’üxX^V·¯ká„I‚ÅÑQß’…ڀп« Ä@oá(=7O rŽ% Ć2 j‘oík×îìC†—‡ý—ŸP‘\L@#³Q„äØ)[é,Kçâ²ç¶K>ˆB‰mZ'¬ùŸKB©ì"HuúȨ:Y³B&ɱ‘ÔÕ3*VzU€Æå_›ðÚÚøtqkÓáïÕzîñäƒ^ Èþ¾u_YÉ1üÆkëTãèw¿±ÄÊ›ì,í¯FÍ·w°„7è”y2@q©ìèªÙÝ]ž¨€a”±L‰§©‘,(’z¡§¬©.DÞîÒ9»®¹*¢–%æ˜ÒN$6B{MƇ†ѲÉþŸc—„Á®€Ÿæ V•Y‰¸D%Øp;¤§b-Uÿr_í•nX¬'à£brâ`Ù :ÃûSµÕ@r``Æ×GÿGÀ ü PëÅ«UÐ&c’~/‹‹¢Ãt8H"×á`Jƒà ZÑzyP‰i@ÅQžüÆkÙ¦?[ûžB+âÈÆ:ž º©ð òkTo˜/£)™bDYÞ  »×¦ë»‹ê©®Ìé“kÈÕçW}ÅBþ-‰¯JÍj,þ(î×`•0å®vÑn¾ë´£Ak‰u(¡:™Bäy1X—uÕb1rCè]Ì,Ô¿û±ø$%½CƒŸ,+) ôö ¶Cº+uËØÊn8žƒèâdDÃ)KѵG¯¡ù wÈ _!7OßÀÏWåEâ”øðtëÂØ.ÛµîØœ¢eà  š  üJDƒb“Ú’|ên–ŠQ À†ö¼LÚøó÷§;Ή9×û¯?Ù÷šwÕý;LáÔ - \EÞɈÏ`@çˆó÷¬$ï ¨[úyžz”ØïLM!‘2CUÖ½)PoÀ@iÅ@¾)Ü"fÏOÒÈal¢Á¯ ÏJUMwuq~"‚ä9Ñ•âÇÐç<‰Y|=§´Àø)Yà••ƘU¿#T•›¸| ž­×!Öâyû³¡G½“Ó#bÔ&ú~‚˜a†£À-øÿC¬±^×Ï Ò±í,µ+½¬¨-8üM0Æd¥ Ô1ÐÔ›BšT$—Èa:¨ì³Ëzí¿àR84MDÿ2Ÿ:®RNsb¾0!€ ªV=Á &ÁÂÔ2œ1ì: Jï¶’ s§-ˆG/“Ø3Zr —,Q1׿jÜ,:­&mÔ·18ÉNlûô¹¢ûšªÏô×a’-·÷'7u Þ쿜":>º÷DÂ&²S˜ÍæÙ’ýhòqG}—ãÈ`h ¡5œ‚®Ý³SýX1ÿü´Òs3LRµ÷/è+Ô®›"…SXÜ õEèü. Cð#”ê >ÛÙa~Ùle„Š,ýâ©tëEÎ5æ»"I•DâÜ`7ËJÒCÒvòf¥ˆR‡Ï/þºÚ%ó;³¼`C½pê£é ½˜a¥x{ؽ®A€Ø®ˆNHÇc¢®ÑP>Lÿ„f/›sOÖ$á…‚”o N„IcŠŠñ½8ê&ç ¶"K3'ÊŠI(€b°YÔp‘Õ‹ôiSôm½ºfÆ˵ød‹«Îd–£ÜXF5‰Òër|Aªœâ·ûNˆÃzR™;;ìšË8IIiswó¶üWú¹üMôÛ j Mk0ÔI…©žš'næÐ,LMê膃£ù\ø¬ùA°WíŽ3¤Yœ1ûhäÖBå Xy¾`– +¼fW¥ËAµu8´ø{ ®ÒgÔþ£^JH¯H`¼qïúRÓ´µ#Â¥¶PãœÁ@#‡Ö—¯„õéŸò¹ Ýó01¥Eõ'y›ì‡”3Ñiúl4Ñlý§d4\?¾UÚòíà¨uwž,«Üޤ´A\E]ËüyÝ©£g.<r?óC?0O]eò(Ò¼hÕ/BöxüL­`/ÌßÌ΢¾GÒýeéÔN×NŸ5D€p_ש.¿;`uìÌcò2—‰!;ôS‹yß›ä¿:˜€ëêžÐ‡¨)ƒuœ6ZQaÒ2°FçHA“W &¥ì»M.Lä„h=Ï‚÷:„Î%(Uô™®>P“èfÖ΀ë0#͹&UݾCC¾–’çž&Ã;‘y„²šüQŸn°hÆ·~RÅ¡ž÷¾fGC'ø#šûº#M¤ºé’.>²,i³sãHv^ÍÃ;“J3—_RyûrÜðßšI7rX÷ȵˆcU6åû£}¦úÏï¨4-JFhE÷ýzÕing‚È&'– % ­VÝÍÆ…çæ-MW¢nÄ*:waù3rº[K ›YL—€êü6kvïT-ª]Péº-¿+ñ¹ÚH=“FÕbÖW,äR!87Èp‘&3hÁ_·mÚ¥a§*Ø»ftÆÂ)‚‚p‹Ûuý~VYLj¯¢¹gÔ©Èí÷wy¹˜Œ£C 3GNKåu©ušò™4\/ýd qÉ80I¯1ȼÆKþ×>ŠÙéU/€ Xüdz™í«íj®š¡CJì ý‰4½ˆ¹™ÂöœêïD‰Ѱ‹Â–—"õµn†—ñµªÝ¡Š:·œTJ¯~¶:¶©ßD•²òz¥Ì$2•ŒEÚ |/EL؆¹žOggSÕýÄ n'Ê™¾:èþÿÜÿ_×Ô×ÓÔØÒÙ×ÚëßÿÝÿÓÔÕØàÜÿÝÿÚìÛÖÉĺÖÕÛäÊÕØØØØÜõíÿÜÿÜÙÜÜÕüLÀøçŠÖO^€Ǩ¨%ÿv2qÎÔWyýžÅ¤Vš«.»€™´?~£ÛË“RMóæ<Фþ_…äŽq®zUIàôº¹ñåïRήç¨ã쵸þë^–yëáÇt ‘ -šèÅÇä?è6­Ôc#gÁ›­é;/'òÂv$ÎË÷nÇŸþB¾LW¼+1 üÉÔugŸ0‰vø¨›¢³ºt|Úu‘<<9ä-[­lCI5?R *ô¤/­A%™=Ûã-“à8êx’~Ó¿>¬^WÆG®)1ꦣÛÈkÙr]‡Ô‹üLÚÑXN‹±ì€{;*Ýc޵ ëáÅ ÛnJÖWîÔ8»f¼mÓM+am¡p§Ø4™iÄAÍ÷ÇúqÆÏå±uKÔJ{ˆ%ý§-œU3z›Ï[á“Þy–¹Äþ^g¿µ!Š~Úš ?®Ó½„Ç”>îjŠ¿V>ìÆ®^¬’–&Ø´S•nç•ýÞÄH‘àð¬áOAÛ#÷v9”$tÕÄQ½TÛZ2VB2øQ]Qðöê XéÜ%‘æFÚ§pc­ h¨²7ys}÷Q¤tX=sìI<²¡ÎyÄüpý£Mf“2y¥€# AáÙ¹JM 5²‡Èk®‘)h‰ü®w‹ŠÚ’À£ÌiïmMòïMÚLûýY¿˜W‚È¿øŽR]žŠbP劮å'«¬9Úv1âgÿB°yGØâ‘’æ)d†k¨Ê×ÜäªãŠ“~h1mjR9«Ïû °‹ÍrïéÃ` f×=Š ÌXõ v%Bgyí\œÍPËðª¥ÉV[¡O“)TÙ®JteB‚˵֊Jç{â\õ]DAPëåàX¼¯¥³ËgŸŸBÅë%z Ÿ%ìÜ_#i+—•ðæi7lhùûíyqU°J2¡3™éwµ‰õ¯Z,µÅ)]³¤³& Ä/²‰éDŠ ,FÆÂ_cÁcý ÉOéxçì¾`ÎDlŽkH ˆWkó Ë_mºï±É“ìÿOŽÈö‘ª¼‚6"†@Ž61Hž­6üW•§º# ÷(­÷ü¨5(J òÀèUŠZ]£ß ÕÙæ›‡‚}B9=Fuã…^ª«òì¿÷ÝzGDe°šMýžÔ.Økõ  ÔœÇrÐâH­¢Ôùë_ŒÆ=X,¥–øÕ’ıF’>¬z0+‚i§­>'ŧ,98ÊÆÞk”‘’@çðzļÓ,ig¯ Ú»&ñÆp•érý³Æ…óð‘Š.}@ªtAòxö=î£ÏÛ]µ©+îÑJ–«7±ëH´Üžl0íÃê<0õZ(Ãá´¯R¿LF^,±t—jØó˜þ9ûÈ©üWîC«çê6É“µ8Ýp:ƒ3“Ÿ´ÛZŒ@€ÆòÏðß„÷¯*”ÝF Ö’Œo(·‰ËBÆ‹=ŸSß@àá?SdÌmEE÷ñ2–¹zN[„[>_áX §2%g’ý¯NÀ—Á{0¥{¨ ðÞù÷„=5™MšÝd!OŒ@©9´·Ýè°pnÎpèoÝCZ›¡Ujf«Þ°"¾Ì1¢tž’.°ëÌ͵í7¬;s~#Ü‹›º€‹‹06eⳓì$ la¼Zý¬”;âÆ²üL¾ÓŽ&Tå “*j×u³\^¶Ä'/G†T£³Ç7ÆtNÜO.‰àðmÄ&0ì/S’/áo5†Šiêß莧|i¼6ÅH/’*Â÷̃ÜWà´ÎÉÏOê¤÷í¬~Ëã,‡å¨DßOŠx<ª•dÂÍ ™Â ¾yú߸â0IKunî✊„ê1"-¿ø]å|ü<Û ­–&ßzI¶æ;ÕÚªAøcö@`) Ûl¥.ÂãW7²+ÃÒ®_iƒÞ‹F4-ùп3ö?»æõOT9µô3³OðüM2lÁiåedðyli¬¥“ø59a¹V‰‘@çìÈ|Óƒ©Î¥3ýP·À•Ìßlù§’PL£Ÿ~Žp¦-‹¶ó@ì¶õÛÉAþòK b]ó·ZkA~òN¯ÿñ™€` Qq'¦zr›I¤†ý*ìCûYNAC‰Â_œ¶}?™Ù4€ HyøûI´J#;ëšBUüWà…Å4na°²ºgÞ!ÑÅÉëÀü7ïØM;1n@ 8²øÿ¶Upx@ˆÙ ÍÇ•”šS†ñ?õtÆSWí˸ ]þîb??P­dÁüHó0ÃåG_©%Ï,ª7ÏÐÅ’“k4M?EªêOG°T×28½t +×{äîËl–üB§Ç8¥f¾”·ÌÝE×­Cc©"{ªa$úSd9ì~áS˜ú,èQ&0ú?Xyð„j«w+`~’{æÍ$Åë8еEHI½/ê,‘ÙZÑ“ï s‹ï,ü0øwm¤þûù€+gŠéŸ°]:³”$/ãd]Áá&23MŒýEîªZ«ÒœN$Iý¼¹£…t'd&û®Š¡ø[ WÚ.ØÎñÇcþPîJH¨4$.³™D$ZIËT|iìs³s5Ë:ÙŒ)’ÃõÊàGrçŒ;%þ <òlh|®\?ï«ã†0K‘L@h^´+¥õƪÈ\•ý7±¾üLÖûó|ØÚÔáLÛti6rÛå^ÿñ‡z¦\+åí@‰F¼ë¨g \«Ñ ÖÖ –œ1z«Ïú"WÀ?ËáÃÒÍ}âz·½"7d*À„WMY¿àf·(.`½Ï*Ô,‘W¾¨”‹”GZ8ÙØè+:6%/¦ $E©†(5!+âïø\dæ?}yÕBÿýÈhâ ªDÎì%7?ò÷Àû4›C®Tôˆbùr-‰;»AQ©:ìÒ:òSƒœÎD–#3>‘'°èŽ+LíÀ»=¹˜üIž±í •<&æÌ®óÏ­¶ÒNÃg0%,êmi¤¶¢©—ר&¥:ñÍMbM9Ì)G­’Ò©à$üôýéþ ¼zŒD• ™LuÏñÆ֕£-ì`óqT`v˜ÎÐ<¹%¼¨È iÀZ¦ˆÔwÏc¦Ár\_XfUzoOY°m2øÖ–ö,’¢¦· ƒ_Do0ì`U.­!ªÉ)áŽ0º2އêÿ']ŽŠ†‹K2ìÈ]³®Á…'ÀLcL>ˆ³r—€BJAãm¤Óa›îÉø‰ (üÆgŒHûç”]è]rZÿ8¾è¾ ÆD‘²È‹,¼D6üÏýãÿCCÙ°GUpddZ°"èñé¶Y]ïQ¿ÉÅdËÆ6ßÌ[F.½HŒÌ9åº6õéX Ò3¿Åë—êÌå¬(쟦;š’ǹ=y¬ì™F”¸• Ò>ùi{^g kùäJ2¯p—!*}ÔŸ«ˆ¤cìÁªžNÂoíêR­ÍŸ¹-¬5N p•èrY Ž„ *É]”mIwވɠ—ût€>Kõ†ôk­z¼ØælÑjìD)(üLã)s㼺~¿á‰ …q~r_6L‡"ô2¯…<às´»}„K…ƒ•1ªw,–KuŸ€[QÉ:¶³rEY’øxrUH ‡ú†Ã2A÷J<Фh›mËí ²O€ÆC5^+ÛnÖ™ÔÙAìjmƒÉ=>d²ò5÷ׇõúfDthÖñ‹N%xEF(×AÌåwÈ“]î“SìfoDkÍLjZÁð`…V½ÊŒT–‹ç| º#ù»t™jÃÑD† $và Š|%Â…óá{eŸZNRq@¾Oúôǯ\L¬iáEi¹D1£¢!¹»Tj‡{.â3ÒBC$\ú]¬¯Ež=‹ÃT°ÃÊü¯´ƒX…HûÌ.OâöÍO9³&§4Ó]a–û“«Õ%C"ÇŒn mö~øv@ñ ÁZþBûÇ9 rÌöi‚õÞ4ÑÁñÏU¨¥²eRúv;¾ÕáÒIMâSEp !ÛF!g?åÿFáJA}˜´ §L›‚½ê'#ÍDöPÇKsoðà%•±…_@N9ÿFÝÕ: F£M›KDIéÿÅRº¼Jörxe_+f5Æmc Ïtýëˆq4wëú^*RâÖJ¦F”“tG y‚`p$vÖÍ~¤uY.¾š·Œá­Œªê ª¥ƒÃÚ¹ÕE8[3‹Û9kv,•€!ä—U«Ì–¤„ *ÊÍBé `V>Ñw4šÆöæ4\Öñ]‚ø\£o2þ±~Jz¥4¾¬Û¸ÐÙüìL?›û¸vÛ«^ŠÅ³2Ö)Û¼h3ðVàiÒSŒçÖ›±@ "° |±€Ó8¯HZÀ€yÐa6¼‰z^š¶­žV¼è0žî¹fkïÕ¿ÿ[ÉNÃ<§ycÇpØBëÊqØM«¾U.+SØÙUØ¡ íH|·Ä SȘ–ákEúävâ&|`pMªvíØýTrìk#OϬ¾á#œõ/üäÊÆš^ÚQ èCq…RT/ð2AL‰üs©’Å‘¨vÀü„XñƒÛÔ ÐüŸ8˜Ó8Y¥«4”Í4Å€ËÜáê†/w&û(Âü+¡2W* v"©ë玛©g×àK'i ¥Ó÷Ðð=®Ó‹MÃS|¥úæ™W-fÜ=R {1é•îú) ø`ü'×]Ü *È‚ ñ£RÃww~‘ÀÁ’ n Ñ+]f´ùk7r8_­uùàêppëÝsÅ 8ÍŽgÓBö‰>VšËñÇÔòtã h÷B"2÷•Õ„CÓþfÍ}X¦y0Ïí›ùÕR¥ÀIÈCPíb¢üX¸MbÆç ®Jd9 »ÓiR@ú}r¬bÜ %&€bø¾i¶øˆâZOª` :swÀºLÞL)“ËÔ0 nà]J•^~pLi Ç6VeªǧÇXe‰;™|ÔØÁÛ•¬î©%^ñ2ô?Î=¾}›;ÒN|èåu’'h¸ÿCÒ… Bo=œL«¨Á¬>ìDØTù#äPýƒSv,8Y;ºëä©l|gQê®Ã?{+—üp'Š3¦d‰(Jöèíó-ÍÑŸê7z åaÕ¯ÓTöŒ£1ßnŠüM$½ò”|~$%øã˰ËBü}Ò=¨pp¹ëã*JŠ™šFæÿ¡ßòÞ–I©ñ §…˜ÇDxáˆ^ìdé#,‰¬øz®Ôú÷¸ òz¶:yM6yêt9Aœ:Câ<:;uÅe3q¤ãt.]0ºÕìÀú¦25úF°IõLùpÁx÷°õõàw*øx¿T E Jx ªÀ ªÒ#Ú 4å"Švi.µÐ¦]¥ÃǯêÖö3R{PiâÙÓ(K–6°E`¿ù$€}ép.`ÎÔ¯üNMÃ^Ô ¦ZÚNÀ"eò2Hë"ŸÞ¬\m,~órí·¨m15Ç?$y±vÛ,†÷šÚ_Öê¿ð†Ì»Íz W,Df:áz¾ÜLx9§ÙËÒ’‡ó݆$Àƒ‚¾q~:RÞì¯zöü[¸óºâ >"‡Hž&Q}X£ÙœÏQs Æ×f[ëúIšå|Êå•%Û_ù’h«Š©9ðIMF…3nZü7Âëûë'uUÂëâzÒSÛo¨ëBØO@cÒåN¶×ÅãW>EfrÙU€•ö÷ĵ|TÙ§;ÝÑ%.>᥺vMüLÖAr¥\Ñ¿…4DxBhÔ3‰Ž¹,/ÉÓ½eäøB©cêÂ\Øßf¹jûÐûôUå;ƒ ë†àÃòµ‰¹B¾»Hy­!ݬ³?lŸB @Jû²¼Šƒ¤lF^nŽôQÁ¾·–ù—&>~à>.N\ƒHwnxÂkÕìü72°æx  ƒt ÏMe«k:‡KéÐY_¯'u7©ÓR.–‰ª ØpŸ» j½,ûÏ%̹jÿ¦¥Cxݬ. }¼Ð4¢óY 㨩ÁºJvÔUŸ¿3ÞæûÖ¦·z=ý ü¯· fô8û\Åè/ƒ`¹tÒË¥$§¬ cÖa §Ì¹Ä%UìÇ}cª5£¾['>z*HqnËG‰äeQú½憔ÜËNë&Áóu©9lÔ¡f{h¹A1øn,T(=­%™! -ç“»%j¦–ªîŒpþð©àÈ'Á q¸!q¦Jš´œÕÙÝØ@‚Ó5 v2üòTß…5¨*/uë=•èðŒ)Î $¹m„kµq®”jB}b3…+{µ‹Î΃Â( E¸}ÒsªÇmRB.6W󤛽{Ï nçI‰V·`q$¡$г¿}b÷ÙZ2⤑™{¬Uª(^úŠW­÷¹þ¨}ÌJ´®¿*n"¯Û[Ë‘šÃ°ålÒ,!ôßB#]¨düAÞN Xy+åY,ênI1G]-¢ƒ¥0åÁf¥„I0œ•èz~lö,|péꆑ0dëéÝ!ØÀpBã|×äjϧzžÆ•üüÚ’N_R‹æ`ñíqT½ á'´Ìü}\õ(t7Eg­œÖZ¡ºVº/é– êPXGEUcä?ýÞ7S¢5¸¸.Ç뀣ºéùƒ`3úL§ê™Ü…Æ‘"À5{üÃA¹rJQÀQ©mÉ%ÇÇE³ýžQˆà‡ÿGëÝ‹¤ýŸ½Þy>›G& ½]îtH,nÀ§œqŒ]ùŽlÐVÅx?p #ÂÄç3³’¹7ꆿߌu°¨IaeGÛ¯X¨¤è·HØ6œÚŸªxQ8?‰G GnÐ: ”S´2~9_¡Ml‘r¤ùdÁÍn¯ÝÚ+MiÕ”%å)qCøXixéÏýn«¸óÑ?ø}F¨˜Ò“æÊÉD·àÐÚ¯ó>BÈOïÒú­K¡ó3sßÅ”2˜Ʊy1§œ‘×,Q »Cê LB†Æîß“œ”>¾FÂ@Lrâå+Æ¿`Šr í$$‘Ó‰Qnª âGGê—-‚Té8¶„,šIN9ø’èTM¹X´•ø òO>7͆ §l÷¨ÍÐÏD°UŠecD.@(KÖªÙ™)¤ô^ÌV.}PÐÍ(á¾4Z¨(à ØŸ™ÛbF8¤Èåퟛà9žì¿ÀX¨ÙîkväÒ1fô¨›¼üMFR鞲ؙªmìéùຠ4++È)ñìì¹+fZÐ^TÙj|!¨pþ L“®;s>¿®— NÄ~·“ôä¾›XqìðVáé0œUEV´=q·»99¸>'$Ø]$50ÐùZÅ7~0Ѓ«Á \S€™ÊìAó}!+0 a‰¼þÜH¨ ÏVºâ €Í°q]‚°µèçcKâc–=§L¤‚QÙmü¯qCê>ÃnÔµÛQôó“ÁÓŸ-jäQ˜Í¡,õR‡hîËã0î ™¯Ó—÷lžg…׌àw*=UŠiC¿3¾W”Dh‚Gº Øü›ÁÁ âÓd./¶…E—ƒÏ<(³òðîè Ÿz¨OÑÁ Yr…/Ë?”EýÎÏó3"ù(SÆ8–W¾‰ÿ…¿Jº*lá;áZ¹À[F‚)[-ùÎÀx;¤ÎSÍ~ 6S–ä½’+sZ̽ø+=ÿyzC㼈þÎÙBÒÿQgÞ#Wâ&E\Âf\핟°Eƒ›VÔä5mÖ6a½ùfyñ’)Ü®ù,Ö÷&˜R [ñÈÄÓ„kA°ËÖ?;>Ä! C¦¨‹¾Gøbžec<çJ]Þûövü™Fy{ëò&3…wDÑMI‘!ò'š©ÛÖT°¬D#}'Çb!ÅB'ØF+ùv;—(YÎd6$îj•„4 }Ô¨`èðT×öL,Œ»Í³ÍÅÏMXˬBGYàŸj•€Ž@è ¯t^Û^ÿ+É¿ ÝŸh\ŒA‘rH€ÛÞ1ƒ “’ ”•õt]Ц½÷‰†ü%[å­öÁ£þ [¸ŠíÕš&¼µÑøªHZtV5×%4~$¬ð+Å„hª³ŸÕkÐR§ò{ü™ÝFEÒ‚O¦‰Ø°Áò+éBqYêË)•„ Ix½ûqè 1B~ =9ˆS²¾TSZÃ]æ©4ùM_}th©¬ôv…¯w¯Û>šäQY¦'å'.'BÏ̽§Ûc†¥’ÇgçÁ;nˆò]<Þá|c²®4,7ÄÔÏ›žãëˆè™¥¹³ìE¾ó¶í©¢uö#vº_ˆ’sŒ:ž¯iIÜ °µ ¤PÑe—ËݸålyH×bDY 9ш¡)ÀV’]´†ZüJ“õÅþmÞ çø 5ý`ì›=ÖøiÝÒ‚$9•Sâ‚Õ†G׫y¦OµW<Þ»äô=ºzP )èœ$‡ñ Ÿ@cXÅXhWsv³ÿþ¾‹‘,¢Ff¡e÷´yë8ɯ¦F(’½¿NÓÉšS¸ Z¾¤– Ƚ¿–â5G¶M÷[Èk>ê=ÆÄšÃv¸~K¹”ÔçÖä4DrÐ{˜éËøv•<ù¹gH*C×¢ ´“zɱe âö–.±eÒR½úó˜ü¯ç}a4w"ÌgÝbQÆ[7QÓ3È“‡.a·u¶A pšÒÔ•¥rÕG¥Hç~mýNtˆs@˜>rÇ|¡®£D”‰ƒ…AT¿ßJЫÔ<–2Ñ HÆöwÄ-×1ü˜ë#R Ú,\œšéé’’8yQU.½Û#.Ö„Ôð†Ô±ÚÔp/+_l “ÎDhaCZÖVïšúeQÛvùViRž†ËmeÒ6( ¥Å¦7¥t¾ÃüXKùât—:î^0Í1ýhTWùõJœ¤ÓTzÛ¾&x0]ÔE625¸]Þé•l½œó,y«Š h€/sä?_ ¿$›À Ô# Ìgj.ºê¸Q'ÌÑv=Á~Vi柕,y°:¨2âák~ñþ¦¹iä™×ªQÅrúipìÍ ÀÌŒÅðÖ¶ÅäδÌCÿ•U—~²"®BÀ.$RC¥S?ˆ 5‹EÁÞžÌùÚ¨&=Ú5épZxAŬHä~…Qf5+“gÉ(5M²Šªõ1ü”ݬW½‘óüÙ(Š9”¥B,Jò¼¢;RÈüT*h‹%võà/C¦àðó¢Ä[E͍e”Žn8ÛžéÝDÓ…ªxÒÚÉô\¦Êz+ï^væ4Rœ[íg_Ñ£‰¿&„lÉÔŸj‘…%F´& hÊ1O“sæi%d²¯ Ê%®WXm~ à™Cwœ®{Ïiµu/E‘ƒâÊiAU,™ê¥Ÿz8Ñç¢ð&Ö(X¬ÄÀç >K6ÇPà5L²ó_ÇÑ\ü¾Ñã¨Ã…Bœ<ÄÏüds5a]•§/j´üÙ3Ì(6Þ„³™ãÑ]å§:ò¬rô’ÌbÜv[ZFdŒ©­¯ðÞ:Ð(ðà.¬^”WH×mÖ·Ì–ú)Ó=–n>yÇÍä^ eê®×zh[ioT‹ÉÄ+°}¥©¬62ñ$²mÉúKQĹ’{BL(¢ƒ’!y$Ç7*ÄH€¶=…˜V £Ž,Ô;Af2»õùNf.Ç.ùl,Að)Ìp9\—øk%¯X¬Ót³‡TH†()Åö¢{Õõd=¢±aže`ÙVÍ-šmÞïÅ_?yj¹úÄüÛÂd£Hø»ÂyŒž?Kƒ—2ó9ì‰_Gp™±ã Ü5Ñ9ÃCì%zx9@yé‘¶QÓ ENäm¥-÷Mj¸ ìáE£dv-A‡œsj¦TûÆ„|O‰3â¡óËÑe§apZˆ`¾œ¨”ÖÊo&Œ øÄÑéÀî{V¼¨Éõô¢†šVD”âFÙãÈÓ¼¤³6mZüM•7ån¼"}©®‚àç¨ZŽßø~¹5Vò\jCõ^ܽ%0Mo¤x™ÞÆx°ž¹Vƒ¤¼ÎÚ–#€ò®{Ô)´5²sþ„5‹é” Ðê·y 0ŒÒ)üSf£Dd3¢–Ÿå¶H!æ ’¹œÜòºÈ"Ügõc&]m:e%][œ«’'ò 0Þú%Þ¤%—hG+íNÒhWÙã'F®óÛño".^Åó¨î÷!n>»î âI›ðâáúñüý¹>à‹kj³# ]˜"B)˜üXŸ"€r€æ-~¬pßæÂ¢"@ei±“M –άöv=ÂUCWz›iåÕfÄ‹:b(+«‰Må0ý8…¡‘ïÆä@®õraST÷·ÂÉŸ;x‚:ÁzïÖgΰ«>Xã˜'ñÃWðò꜊ÐMá3I+ÔX½z•ÃUí68"Qß‚Ǩ.:]¿p*¢›¦9öef Ø¡¼A«ôœ±™@nò@÷cªÝê˜ ¢"í¸ª_UH‹ ,HT´ØùÅì>9”sê‘w§ÈÀ€üM¨CÃpÊ1F~æü»€a™UN’·S?{’p"Nß)&JZ,ÙÊp´Á:Á{â™A<ÁÇ$ }vi=™¹¨ ðð+°‹üÇø€ºš#Á¥Î&E¶ÃóVI®UúÒý ûÂèÀ}äK{ë”'±{uˆÇ´¤RZ99ŸÙUG¦õ†õ‡ŒYäЛ^†Üƒ[+G*±.´\öèm I÷íBE.’Ò[QÅš¹Éº™¶¦(½:³qÎü#^v·  è*’† ƒTiT8»(ôÙ¤û¶C± [p´ÒüÆeRúxÙXûЖ|“ Öø›dg¹@¨ ¥ÉBPPÌvT™vâÂ[\Õ¸ü>4@ý§O·½Ö[2´©K‡ÑÊ €„AùéÊxGS$†àª®§Š¾*÷­ÉCA¼‹Ú€¥Xï:þßfm÷2«Ž‰ ˆr±‘mns/ˬó[ 8Ws×Ç}©µh¾Íb˜óíhºÒdó¸y#Ô¾±²<6ÀæD15eˆŽ’¨ìíaTiZ(q|T¼7ÓÞOb÷Ö剆, ¤™'Ô­0®PêÝŽ¤«Áy²¯`!¡üÆcn¨êb6¾žì¼³v4Žr¨˜Úûɉv+ÈîHZR”ƒ^‰ànfDÓ”0„©¸Cá 뺼v\‘r<÷XpÉ8‹RW©ÿ.±ÍQ0Ú| pèX‘tš7V@d»¤¥ ³v3ÍAEŠlÇÐ;ÁhR\³—µ€µ¢^)Z),¬Â·jƒ³7û‡Ê2é[¸þz!AŲ€_ŸŽ·°ÂÏœÏPÂzùP„ ¾6¿ªÎ’ƒåz dâ3[†jÁÈã´‹Ÿ•@—6Á„ 5h_H~‰Õ3kZHI¥üÆfjT@"²„Φ^xÚÆp7~Ù µ$œ©"íòúÀp=ÃìVØT[Ñ™¨ã\ŠrÖæ½9Y´N¼p$ʨ! ?8ÀhËè¼Áèüúf#‰ÁU’Ö©w‚BP¶=ÓŠ(é®ìFùí'ì¯rk¢éôúDß°Nß$0ÎêoòVlšur?ðtGz{újbþ¸Ì÷S‰÷B¥Ü›˜ñ’þ;v„ž°½·KÈ ¶hÜ]Дø~c€… ?VÂMÒ3 †¿u8A >×Õbþå_÷ðÑçó€’HfçÑîV<Ò(Ö*17’¤ÊQG_zi¥üÆeRœ„Cã®w÷ôÒ¥o±@¦‹a½B¤ª•þàdÚ›aÜáûvT¥pµ‡]ö+_°Q‹ù³ÆSM$]Ç{šõΰ9­¢~®q@Å›œC‘„ƒ·Ðôg°Åë…jŽJR»1W«8t‰GH¿äù¨¡þKü6 #ùÅdë>Ÿáºlcýj‚R·”t‰M‡XapÉ’˜àåð2‚1Õ`ŸQZÔ¬Aæ)ÎlúvñN\ ±©·ßÝ´—½Ð¿צQÜšÅtÁ <ÒE­ ÇOj ¨ä‘Ȉ†í÷å·¢gúæëXãg¿àl0Q¥ü|ª,f™mE+àÐR&±øÙJ穆´'×g·OÕ±.¦0Whb:K§óUÀ´°š&±Z,²@¬}ò§âò?ð+A]â2Ø&B8oËŽô¾`ïbG²dŒ1E™¨w¬Ú­¡Jd:DÙ›IðqßMÞb³!"K uÕ‹g #Î;ÌÛ¼±1{`÷ÏØQ79 ä<€Zí ^Æä—Ð$ôØ–’® ›ÁnÙåúž¬nkNŒ…ƒ5ƒ¾û ›cç·=íT¸\aº$ù$c¹–&ÅûœkNac¶½<ÏX»ˆœiã ïÜøÝ×´¼ùßuÏÔŸ¾QŸ.θþöy/c”XHÌ6("Ëú3áü´Ã(ñ ñKà 8ðI+\¯zí¹ÓxÒÓè±D߉XŠ_ÞÈÌ ÍñòWT“t4¼YœvV®¥]ÃóßP儼…ã™ ²c/}­³¢±^K“陼‘Ù)t¿r ¬ Ãq”‹„AC\B\6BE¯®DK§µõ¼_ènÉ w#ûÊ pm*øˆñçƒä‰quDaÛÃ;¹Å9öµý>[aVkîl3FLW¸GÏ­¬•¨€Ç§§ü}a@7;ÿÜgñ¬M 6Çù•T^\O˜ªz™%„AÃ.rBLª9òrRϹÝÞcl­»T ôu PcB ÃÍk¾Üß²‰»Sµ÷s—¬aÉ·hÙáVñ` ÃQh-.J“”¼Æ$%«HC0Žïu›{€…÷MIy¾F•_Å5)Lq¾-ŽžSjT–1#èTo–ø\˜°‰¾{ò!)‰GØ­‹0"ËLSéX]O¡j¤©öšŠa³kz=õ${El$,é%Ø[¶‰æ€Š|É2(8z­œIqÂyžÂ u‚óñZ.š˜öäáÀÿª£)¯WXE%'²ˆn8Ü¿??µú¡܉ Y걎h–ô] š;ª2…ž¹¾Y†J¤'¶6 µdÖÌ©ëí@üÕ¼tߥuùjsIa{erEþHš>Â4.qV䕹¦Ì¨=)¬Ãƒwu¢ {Ã|ó²g¢ìñŒ%l¾{¥¬]ˆlMŽÎI"ƒ>ªòèQ˜VVxç˜n**|ý.Ú·¥Ýe}ôþH8£UȽÂ^›·Â{Èy“î#Û ”—&´î“µ‘z˜"V×ÜÅÛ\ð?W³ö³d––}6£ÿ¢™ÃVé üJNW ‚÷CLeTVŠ ?y¯AÙá÷b¹D«0ÍBã4ÙV2Å—¯ìUøæ´âùøÙ· ®NsV´¡ÌˆBЩۋ “¤e²ýxì?!Q´J[¦p–ZgÚ)õÙl/SÁh€ŽQy5ñÜR¬½2!n3÷›®,SÖH>Ø‹/åæQ™Þìub²‹ØÈ—Ò0^6§E[h¤þ±SÐIKC…öŠŒ è§Cø*´˜‡Ü Cj«€j#mµŠ%sŠØõ~8©%Þ”¾¢ß•ªü†mÀÕÅë9<œæoÜgÐ¥kÀ-LW >öaºÙZlwDî$PJQz4s’¾eÒ5â¡€àÚ‡CbÖ"cH°!c<&+6x ÂF R2Ve•Ÿt>k9÷¿m ‘ðãÿ§ŒÎßlbRoÒiÝ~‘öÂï…WgÈyÌ)“Êí4¬'äIÄöÒ>0fÕ‹¼¾âOªá†cŒçöœŽfÂ<97eîipìrjË]¢ú›2Ó2Jÿ»Ü »éÅü±¾8Ù¥þƒ-Ü­ìÓ•,l¯GÝ·ü6käjƒ¥„Š æ4\:l!iÍèYª=K˜¼Œ 9@ÎtÇìr•{.ÐÄF$9à´ÊÉRO‹ÿ("c9þ í„…~¥Ô–Õ"¾‰ô…Ž1†¨©“ Q('@ù\TøÅÃþW]&õ3&0¹»°+aɸR§IvO2¥ÇŸv"Ìǽ@Äj{3,7bxþuÌ”wEÀ—ò?þîŠ%jP¢¤4͘ÜJ`ê“Ǹ}JGU¢¶ ¨ ’@ ]°ÕMÇh³ƒÊ’ë$Q<愜žß'@‹&ïVÙúH©­‡-£ó¼¥Ø˜üLºêÞZž]þmJáÛ]¬!¨†ž2÷RÚWé *6I-!Ûi:ž-àm'ÝdcˆÛÿ¹Uå»…íÄÁ—>–•ƃxT*Iç\XNyÖ¤¿ù |ÌVDû²ºª] ÈŸA–ôÍvÛuu$-€º<°szža>1{5*ÿÖmìÜ}¤®ûñ'nN%mŽ ŸÌÓ?4N¨R÷¶°~©Ûgȹ ß™ºO¹SÃ:ÿo§?½<»Hƒò$ÞHØÄ^siþl®ý3óÎ4©Å¹¾#Ô/Eø?üM-yþ¡•/“DN<´ÒŒ‰2ŠÙ,O Íb)ö,úÄdñîèçv5.¥ñž=QÞ¸÷‘~–¯.Ò’:ÂÁâiÒ¿{Áò\ª_:í<Èÿ.sÜ…pÏR *ð®·A¨ü3sâ/Öˆ¾sÛþM”ý=ÔyŠ4Ù*wGø¢<áu%tÚÏ»Û(ûeC€#k607TèPX˜+øx½¤©Ì®j pH"¥ÆÂ„’~_djp a¶%£ý(¡s[Ò0oŸ±sõ 2Í„[DáNÄvѸÎ¼× jm@ÿÊü›É5¡~ GLŒ´Õ“Ó¬]Êt°ÐßT¾|U œdÙmÀ¢@ípÛŒOŸBö¬XD•i"º¾Â/á%Åhvü©{z„Úë2EAÆK‡*¦-dÁµÅ#"~/÷ù”¤5®›Y ìç°Õû¢„ º¼RE¦£1ÿ çʪ­¦æÕbŽäÊ;™Ê'÷ü¯OX(Dû¹Õˆõ·×÷Ý­!±‰¤ì<äè9 И%g,‰)èmºÊÜ `Á×Ä?û§<~,=óæÃ«¥ócb&)²ô®~^»R ÒGKå]‡ëvžVüL¬úפ•]ùŠ®˜jö ¿?.1>W¹UE9Á6óˆ¼Ù¦Ñl¤FJÙ¯¬m<6ãT=^ð*JMϦ!uº‡ÄÍ ‘ŠU–{j©¾XDюר°8™#FX×É&¡¢(qm¥ëóÆmÿXÏRSþw·mÔýEáèÓÜéþê„Іaæ«kÛ°ÇkÖ…iq8M”56ö5hÛ\ ›û™xË“í'‡G<²Mqx‚ȧ)s´›Ï —€&ù¹*Ϧi  åâ Du~Š­êÀôݰný»¤0lü6Êdw¥ß­ðÜütT“Îá]îñêrMp«b·U$þêLÏŒBïÅþn’Z*‘P@ H3cý×k¼TÇàa"‡mûç«qÂû23À'74änô(ÜyB(F‘Ød"ãzM޶ „Ú/ddi+°z´Èo’œ«ü4»šè]UƒRÈû›ÿO ¾¥õe– ¶ý#lˆæÍ+QjIÇFht´ó†MKþK¤×_Jèû*âÁ@ƒØT¥¡×d™‘ÿÉdT°»üJ—L:²£;œ€ÆŽÑ$bò]@k7˜?êobž¹”ÈP¿Ž©Í²hêp—I7š~b7®™ŽÞ¿1î…JÌK~¤ââ·=ø±Žd Öˆr¦¶î‹WH䬤Û-¤»üM-yýÅOãçOYßëRus’쉧°}te — .-,ƒÍmy¿îÎÁAÈŒQ Ü^Ò„Gô„Â/ÍÑ(³Ö!òè9ÃÉÖHT“Õµ³áç‘¢gºË•…Ü™!*¡yNYw-NݼöXÈf.Ì Z©ëÊ VwP\Ê}¬æÙu£º‰sE‰²$¥ì¿êÙ þ…êVÑGº© *+9ÓE^æ Oö~üéV%ÛÎ0·ñyieÿH1D£Ø³<ø9FŽó0µŒ\ç¾IŒôhŠ^е'uüM0%Co7µ0¬.'žN첄wÅÆŸ5+tü=`Â-?¶ˆö†Óây—«Í²7T–l^Ñ$mgÑæý´'̱3 ¼Š¿Ò–t×ZïófO—€5f9X Øêüä–l?ܼ)_õd—ûiŠØËÕËÂ$¼žàqï„Q Š£ìuæÝriW>¯úç*t6väÎM7 9¯O61ÓÌG ÌÞ½kuwáNæçÿAɆ•»Æ’^Ûz 1#™ÆY7yÌ\“¦Ûaw¼¸ÄDþ®Ý׉¥ü|®:—¨A“)‘Ft£–À‡?€*÷Tõ,kn€Ý¤Åð}Ç‹ÁD-°¥Öò†üùÿÅ÷*ï±$:äš’ 'k^7ôó²¤ÀkòãO±i! Å £9° qänZm}Ë« cÈ¡ ¼¬ÓKW¹HEœm÷[âùÜ,·£þj¸kI&½oµQ3/&ðŽîWh†¦Ñ«zXûø<õ«ÜÝ+|)ˆn¤½ãh~¿Ý@`^ iS¡3ñ¿tÒbýy1ŽS2g”¿¨ÒÙe,Ož3iõy·ösMÂö×àÿ-ܹêºÛ%Ú¢6án§L˵ÜüG/õÀ^ŽæD¶d÷@Û\ôû~<x°¦í`ý†@©VÐ…)ïëŒ2R?’NU[Weƒ¡ü}nhÁù_³2:«˜5¤úyùgî½èªŠQ?L L ¿TÍ>,‚õj‚·ÑØjŸÇЊ„O`º[ÖO€v„’žØ%ýÕ.dTŠcß×tƒnf׿âGrõ-Ýž±ë…æin(üM-¼ÌVJn_ØŽP×–466ü¹• — éâœÝÔžŸÈc+…ˆâÍÄì ¤m¹NÝ象ӛPg˜éLI ¹É} ÷-`Ó¡.G!ü^šc‘ý=‰›jo%ªU øKldã² .ü|hB§6ÆH wç ¾%îVF¡Eª زƒÃŸ{,m¤1nþÀ;ž+Àâeõ‚¾úøålŠ €ë ”ÞÜøÃF*/Y5£‰gßá”FHÅqöµÖ™ÏÚYﺵC%šs²#»1æ2.îsNvr[ƒ?~&¿S¢ ¶4‰!¾lWÞiÕ«m@²·4d¤ˆ]kÞcz~füNG5€B0£nHIYd[XJ“‡L56°¤Š³ÑÚš-ƒ=Ï“%ó¢$cÐÆˆYΖ}G+6аUÓ5° µKðÔÌ-T)oé2¼É¯ïÚƒ„± ¾nÿã)™ù&s±’ŠMÏ”Ãï&2”:>í«ô‘÷ã=½Žjäí8ì‚[qf‡€@¬‚˜[ì°×äÈ#Í:DÂêÌB+ ]G±AHb*Gµ—&@ΉÍTZ›dVc¿>ŽÑÓ¦×?kÓÙËçèG£ë6w1´MRîHÆü6÷ä,µ¾³ž[ã“\xÛ^(…ÄèEC4¢Ñé‰#YV®ŠnÈ ÎMX2­Ÿü&ˆu“D§ØÜîù­¡"äM ¬à5%x¸5ii%É(¼ 5i‚§Láj t“«‰ñdéË|v Ó‚$š’??3V“É·iqY$Õ ÉÇøŽ0&p¾Ä˜T©Œ.Óàm­Å[ À©w²|…¡n¨¹j ¯Ìüµ|I&¨GœR? ú˜/Eäµ7ßsÏmHùJfOÐkÞUÔ…TÀ uc‚›üLÙn¯}}K oÄàLµrÑ’å§&W«¬lj–ã!0#Öoì{k±‡9Û°–ÄÃ3 ç¾ôÖ{AZã­vÞþ^íd"™,јB8¶í€$ƒF¥¨vpë«€°§§î.W©Ù–ÄÐHï$×H©£=Å– vû÷6ÜiöÚ0Æ1LºGŸ¸U+ù>`7pVÍ+ôúcÙ œæîy_´…@ãž§&‰`~Ñ&Ì<0 i—“ÑÇhÕf8x´kÝA–f~ã®TÒr¼ÊZp›ÑDü6lÕm©¾×ÙaÄ)Ö€,ìXê :Ôå/V/±ö~†;²_K$hêS)ó3ÊÖ⊙©…Ü7Ÿ´, wî›ðûÌ-¥+iTqocåÆû»MmŒ‹c>ùælt5$×ï—ö"ÒÒ‰È=:hÌÌ«ÝWG]ÝëNüe¶vøâÌgúV–ßäJŸd¸–[&c;lVOdWÎ!Î×ÍôÎþ`rzX%ßsš€o#³`ÜhAò+¦T©ù(]6Îdg¢Hr—üLÙVªÔPi»ÓC# sËü¬‡¬*ÅýMÐeEÑ_‹ÓP\™o=uçº.Ü= 6š­5NZíPap‰—!$ïùÒ’A½•VW›ðþ¨~ž|ò.SY®ÛÀÀ¹ŸÏ²°6<)ku   à?ò%Ñ ¼ÓØ€Z¯­!/ãšef©QK!nZƒb±Êì…칦ïYˆœD‚…¬ñ¥¹"T §¯ø¯ñRÓíõªxTUÙBÊ®I§°ýÍß@Kð;]ã_þ[òEf5±Eå˜#'~üMDL“ÒGâŠÉæ×ô{î­©^'ïQ阆o dŒ-|; ;îLø›b~ÚN[ÈèmUbÃr ö¼ZÀ¼Ì/8UQ §,\°F­³(vžZX’j—„è$-—võ{7u¼{it•£ÿkï‡ÉB<ÐÑz£°Ôt»Ã’ÄÐέã 6ù ¿Ú=`·U忈·æ±#Ê­Ì;7kÿJ““½!ŠÓófùñ“Å•âÝxÂ8Šýsû"™þ”¹5Þ‡õKë[P¹Rˆ™h‡óRJY§èQŸ¸ÒûÂ5 KP쫼Сÿá—kûÕvNj¹ÝÏ«æªoòQ&Ý«ÔÓæ¼@D¶?·»¤„ùH²êŒÌÒë£ háV“¶ö•¾¾ZÏ|ƒlxcÖtÄAT/Êd[†2üÒ$p_üM{r9)ÕÃB¸©ªù¦4Üç§ 6²‰ì²Å&â¯OŠØ»ÿØɳ‰.¯ËgdžSr`Šï‘F™C55£Ž±=–ÂIøg²ãJBËA=Þ7ÌÜËɦfÌá1^ѦÅzßZyÎ!àþÕØŸ"m•¬Íjlý!k©ãÅùŠõQ Êuš‘çŒAÊãΛwó&;<úýoû‰Ëb_lÒna’‰GHÑ«iIå3–J“UYVJ‚9M¸™~Mbøs팵{®©4ü8®>²\Å×P³<< NÇ¿´üLÜ™az(¼2À,5I@ƒF¿àt,cdߤ8ì›ýf„t‡8ã󛃱dfì”Í"þ3\Wÿåêg(¥) xçZÎì´RìÄ-<ì?Ý›&·¯˜¢úƒí÷`@F@ÅÇRÅ^…4 Œª ѽ;°ìõÄ<³|¾D=pÈï¾ïàhùÒƒ€CÖœ*ŒjF„ Ï*_„ ^;ê OÁ‡—¿Çú%uà ¢}åÀG 7ÄfZ\ÕQ"v~¢ˆÈU{-;¨õUJO“Åö趤üL¬›ö„lU‡„³™øÐ[0òûwT"‰Àm¹)@¦ºë„ß/W‰†5["t]ènž_† —$sS(ü/vÞiO w#iÈ‹@F´+¹ãµÍY÷ä;ê ©‰rõÙ~hk·Ì’ènk¥öeùì»é£Ñù rŽ>¨”¯ìŒ6äïÙ_ 2g_£¯ÍPŸ$\?КYPl&téÄšÑ`Š¿Œb2;³©¾ñË—£õŽ•^Ô"{h5Ê:SñæànÒãó)Z—lÄ¥ËüK¶Ï°ERüïóužªéq¸)ü#¹NlQZ5ìq7¼‹++ÝS,Mµƒ iuhždz'ïK DEJM’ç!“f\]ÛS¶« ŽÆêWmë|§¼5è*)/Yη]¬—r_±€¤%ÏõM½CžF<€4™†¿È¡iF5‡ó‘µ/ëZ ãµðž“d´4dЋœ²n mÕu*&ä=Xû«UÜoäk9à±a@Ðu}ÑTõæ÷ ÚÆ‰)Á5^¬ñ3pBÉK¯AÚ­cüLÕPÚúŬôaZ«n³¶•TëŸ!)’>ôæäÊqY¶öPéDrò±û…ÁT1ü—¡íôp2:Ò² WÓ&©‡PSöX%0*ìöÉ)PSñîßþŠ·„C8 Uœó÷X²][¿ ¾Dº>—4õŒÇî¾eó¸ï‹­wëMÇXvãa4:Ü`3ÎLá¹8ï×I <¸ïªÍk†ÅÐFìø0H–Ä$}VÚùsªÔœ8IjšƒA` ¾O ·c/¼m"Öî¹>ØS üM{/UÚêú¯ÌÛlàq?âz*ÌÇÓªðæ7øÔéçÝ=É»‹ød¾TmuØ TP÷DS™/ޏՕüüÏÂfï[IR‡WŠ›P.BØúšk¦Ãþ\\´¼b˜žCüMWÈßSPÐÁ:–ýf Yò“v‡ƒÉ@ÀpEà…øû @uÌxö¾ì1>‹;,¾ I6­ÅeTò›ïÜ+q u‡½Û6:ϰÞëU&—dfü¨çP¾â°€ ?åëß÷S²úñÝUSÀù¢ß–är&º´cäÃcX…þ±m–ú똞øùÿÜüÖ>$ ¾<\¹ìLu… ”g‡Ð•ÜÐÖ†M”QN¼"ظå•Él·Hd}€ã“Øâlñð½sìnùîpraømM7ì<ü}\/¼ó^ð´rÚÜz¹ò­_"±gÂ1­²ÙÉnî™èz @–Ö¦/¼Û(bf1ç¥BŒ,b=Á])úÍÁàK®ûÜ„×E„æýøÕ>¾p¯v~HZ Å»R`„ížcˆÚTÂråËi$-ëÁA3*…WânÃÀóOþ:œÙs‹ì9vL.z펔“·-æ;˜ª(F ИFŽO0Dg±5—p8IÄï8äãQ|ñìÒÈwŒpÑÏQU–MÒ·trn– e•©„Œ ø¿êÅÈ燕Iéù·h ó!Þ?dzù Sªr68+wYDâÍ4èžQ7æ,d¯fe–ÄTzó«š‘?Ÿš¤9ÆW€uóH­(ÜÂOEsË'YnWyüî¬Ìé&·@•Ϫ”T`ÔóêY]×ÃÖ÷q–à`DœÐÔ 3ïD«ÎD*¹/FE´Ñ-sµá*m ”?˜ÜÄ]ír™W~”ã_[ºáý‰’Џh’É :h  <ÝUh.þªä0ìêCÅ®K8ðŒ½±4/²7SUÈÆNU䤤Pk“÷u0¾b‰l7Ä/í™-­×ëÏ¥Cpº}²ú:ó$k”‘Âü2¾Œ×F”§%Ü·˜ÍQèúþÌ„%äÅŠmëvÀ×–·û ˜ Kt(ø€åSqüLË®I‰KðPåO½žÌÖŒ%ô 8Ö#¢ywi  Vî2. ]•¹–¼uäÃ5…†¥onç5Ïq "r•>Q‚-®ãO\¼a!ÈÑcà•µ–ê,K¸aäšÌÎõÁpCµÚJûk£gŠŠj­“ærZkLKKF9曞:†¼ßqKkÖZæóܼx'}ü»ÞRHÿ𙼩 U²›9¦¯˜2¸ÈæG]ÖúSÙé(<ûShÐbÍ)Nª¢=î‚Ét?”‡3!è› 4¯à=8Xq<*üL¼®+ÝaäÃ)³ë4æ"èÀo„ÝèT'óê!¬þé÷9¢“ /œ±ðº_´5’‡¾Õ¤±´ÉÐØòVéml$TRÎôÀõœn_ô¬m‰L³o?}!(MÈb"ÊÃXíd²Ct"“œÖßýÁi ê)_£ú€bU²{¤Ù ìÝJ»˜n£ûYªÅd.Df>p,îpan5ÖíO pµZùE8BEH†û; ²ê}ãûé}væÇ"^Û…®oÚÊÛL¹záíž¹•üM& Õž¡É†åí²BÖù‘â’¦Ì(V¨#xÕŽÎ ”š2»øÞÀmͶ+DR ^Éþ7ƾhªÜz(GÙpEpœ<®D‹£D ó£þ†Lf”MbXÃ3ÊgÑŠ¶ÄÞĬÞÖ{1"E˜p§¯¦,8²øMD–&\szAùG©à…³ #¨Ò"4¸kõP'ò‰é]rPðÎü;§À½CÕ”¯S´,ÍÁùxñçe‚°®Y ‹÷Ⱥ¿VÞê5D›8N(ÄQá áéåü|®QW`9…Õ ¿s¬cßôí„.æ7(0cLo~HÒyÛÕ­› Ùγ‰M<ß`æ/´ÿ¦#šñrÔ…î›p$«çãc$k RB.æ_„úÂ쑉¢ïz}ѽƂ†D?!Ê0Ž?,þ)¼]®6ÑIOˆÈ¥3ÐdjJO–äD üŠÁ¡Ë¨µ;ðPç:ÿuçë-–Îü­e3íÒ\àÜØh4 ÀþÆhŒ×÷“Š"Ýmt•oiê2Æ¡¢ÆäôºYlß„JK½Û\ĆŽ7‹«¥â…°8'ÅöZE]=·ÑÂaïĆnÕœÆg §_/=3VZ<Æ”žð±ÑãÁγ3Ô7(±—êÖ}ŒîCñ¸h=‹¡ªù¡òƒKƒ‹JØ*ø?b¤³%ÿR¶®&ãs¤Š:ü|®dNpæŠ æ‡‘.º"³&Ø„ê{…E¦qH©÷ ‰áߦ²õY\²ˆYÈ@~a:63ËVü½&ú‹¤3Þ6#¥ÊjÑG`µäFï0¾öP‰C4 þIHbÔk‹O($ âZ†1Ø o·ÔçØ ™Á ÎãžùwÈgses@,TDEî{>iEú áÚºRÎø˜:lÜüR­5¶Z°‡½Æ..wnv×Ñ16®“Œ+Ve òk– r,” ©Ï}¤ìó.IYh~›6 Á„1îskEÌÀý¯êšž/zàÓÛ‡î™èèƒrI$iELýñ–¦46Ó¥zaT$•剔¿b¥qÓ3bÍíÛ·(¶™vPÅ3L¾,`TMŠôÀÌWÆaC_Q)Êõß›§°‹LÊÈ,çaöÔĶRe™÷å|øˆºjÝŸBDÖå}^S}isëy<ˆAVbuë @=4zí=¯HðrÝvÇüôã¹:jü‰Ƽ•K«õ1vX*þ”vǤÈ,Ë¿/K¦,d¨*Ó£3kÿ,*Õ$'à*«ÖjѠ¸/1û®¬18‰õt'?¿ãá#„R¿:ÖnBWú@̦l¯ œF„ØçJaÂ\¯7‡ík@Áf¸8Cj¿t}?ú ;Mš”ê9}$;WYÏÑ Bd|ªÏ<\¬†€h øÂbÎqØÆIÿñjdE[&àÓÕ-–1Á9ˆlÖ¸Ì}”B+¸‰Ê‘ÜS\ ›òq¿ÑjŽÕ¨\ÿ]šÆ8¬ÄbýÊ‚8ÑIGü†d»â W6oîÌt…®›(¼3¾õXb(o²†KÆR€ë(G]‚M¹7±jêa’ÈXÔëµ,ž³O’}¬Ê0ØÁ ²->õ蚌ÝÝéŠ.›ªfíÙ1`J u"<Òýž¤¸ƒé:cÛ½ çü '7S¨o…t·ü±on¬ð«/ÙÑïòŠ­ØfZû+ƾÿ‹©,×äÛ¶jKiÛâ Ý„ßRƒoÆ—ŸÈ^“g¨·Í4-Ú.½ …”ôåiBã1z*Ÿ>qñÈ©_Ru‡å9Ô~®þ€dŸÜ,j9œ ØcÏï Hwy #Mk&Ç™5`;^‡eƒCc ôpäë•ì~ð8ð®0S§&ËËJ‘áÇ,»UìÇF~ê²Új£å®{Bís÷I&e{0bNëæÑ¦GΉüÚ\š˜ß¨íü®B¥€°ÔÔýá½mz#0µŠXÛ¢)˜aØÎ»7l©àäθЃÖì æÙ”íBãWV—Nž‰÷Ü }ØJ#/åzRÄSB‰óñ‚™ëCcXlÒÓâtzŒ„ _4þ—|]}Ô,ñîš½C÷¸'N›DŠõ¿ mží»'eF_¡Ç#óÁã # |·¥ª±Û Vâï€Ã™·>$¹³˜[á[üX6W æµ«$P°n®Cs“Üë>mR][šN°O«†üÓßeqk!Ñ?0‰ägV¬¯ )«,¯ÒçiW­E8ü¿PNïüM&¡¯_$ –Á¦£§Êü²ñ﹦Kæ# í¯{w,ot6( ×#„Ÿ1_–.@A_wõ”´`aƯ¤wÔ`/ž>®â[ Gâ3.êð÷Ã*xf™•>‹ÆÖÓ½#“§ç"“ù'á¤È‰- „¨Ü›‚wfäÄRÌeyÞ;RˆƒýžûTrIrc43OaŒM1‡Ì=]’Õu Ô{ªÃl ± 8gð&jg¶h¼vt­)±Û3âV@¬óIÜx ðJ'¼ÌŠ\¾ÐmÇÉy7Ÿžò±þ}3„(ôDUó>9AVB‹nÃà±èüNE8ת_éâ"­…T³i—¶Ø/`êû¢´ITÆ«÷Ǖ׉gK¦ß¡/a*­­«šÅߣ›è­6CCŠX×ÄÃ:Km´ÏƒP…}P.vžn /2];ãW!…¥¿ƒ÷P%I6ò ähÜ5Ùý€ »¶Ã–_¸ëOüUOÓè^$W|6ù2eùü€6ˆâͬNéw^&4‚­ùì{ºJü°ØëÔ+:ñ“)ò8b¿ÆOÑ-ƪ¬GZ|ñ«Á$ùî¾ñ:Èù-TÆAR pL(q"¯“¢Ä!;¯×€§ô|é“7ÚV‹ëý• •Ý«<&÷Þå¼9I>:&þñÀ,d ðò¡«`Ëk2âp‘Õ_hHæ§nÉî „[-áëQáB3˜óÍ ¤Wív±PkÔé´BYŒšäwP[·‡—Æéy*)up;wWÝs‰¡MµÊÏè¬N4Á!îÐEde€Dõèªæ·ü-t«Ñ«])ªÔv!’}_Øì<©FÜ£o¿Øïnb!zÄaøèüM!Oê&•Í—p¢!Ä&i Ò«C…8,¡á ®ÒwEçuYÀ Yýø¾äÎy-"ÝH‘rÖ×h^¦ú&¯îÚjk}o5ЫÕAw¦Š·BÖ6ïª4üCÆÞóiôS¤~‡ª[IÄ»6Sœ›™‘‰æò§æ|¸Š&£žˆÈùäôšÎ&(à¯Y}5‡ø1qðAm:Cp%dåÏè[ä“àEÏrù¡ ±0ÁÈM¹Õ8K³m òTä¿rü–Ë2¨^Ó1ßÛ^¢KÒ«B»ÈÁç<Ý5v¿AÈuò—‘vâúj ¼·¨Á x¬S§cˆ’&@+ ü¸‡ªÜ£B4®‰Ììž8e,äÕå`¨ñã,æxµ(zª µ“É Ÿ€ÙD€ÂnO¼æGŒVYkê =ýñ®" |§9µ§eeX8ÌÝq ^}Oÿ27z2³o\ / b4v%Š™Œw“ jÜpx¡‚£!…œ ›¦2 ®¯ÂyeBaaM·æ\>§9Í'zÑ¡å]‹€al&!™Fª`½%ms‹Þœ²èü½ÛöSÖ>‰ÈΪ ¡(ѳçiö¢9N@—&=A×­°1Ì’ø%É©\ÅØn×(Í †¯#yósù9Ž£‚»¾Äóélý Þ2jýD”8†-â¶M|âi¨VhnnÛ²\ÌÝQ(Ô4ZÝIéK=y›1Pµœ¶†œ“SŒÜÜÜÂ̶4¹:ÏJX²ùÉqBìõ 9ò÷ùWˆh³|s”ݹÿÕ/™ûL¶|*ñÿX_ž‘P$Bs‡Áˆ½å„è é%ôlÎJSö4¥U« “»ArÔ±áÉ/þ!n«F$ÓYaKE³\LJ듞åíÀS2±éü½ä²‹šë0XIEÞÓV™4I ‰öNwï«À_nBñº~fß°hbqìÚ¸Dš› XÿÔIÂ)/V‡Ê‚ÆÏ5˜W¢­ÁÚ©TpL-‡˜$Ôßbÿ\ÝwORÏ»®‰Ø&Z/2^$–r‡àîyº=cx–8ØzcSÛì×QÝ’Ì»J«£ÄÈ¿1¸äßIMS©üŠèXcðþmÁãûóþÞ';½Ú둬¤ä-ÿÎK·%ÆO¸ Aeq áNÀ«rÄ-ôs„7‰Ç7Þžãrmø:îEjð WÝ”gijۓ5'·Ûû?2MûŲû[¥›¼ó&sšñ6x3é Æ:)Ç0ó®Fÿ’þ˜éOggSLýÄ n)V¦Úq>øçßÛÝàâûîæáÝÙæÿÝÿnçúÿÿ ÿúóéàÖ×Óÿ“ÿ¼ÔØÕÔ×ãÙèÿýïûÿžÿÿøÿ õ÷ðü¼›æyL`Ô»£ÈûÑ‚ši¨·IE˜®õþ«ޤøéXèz;§¢¤kauIÒþí LWj@—œUÆëéx¼ÞcX­“v¦4~°FÃsÒM¾PÁêVج"Þ·ÃzåÑ%öÆÔNr« ß‹õR‚û•pFDxŠ}XÒ…ˆf¯æ'Ñð–7¯s\îPøËˆèÉ3M ¥ ¾ÈÖÃ/§§±<u0‰wÚ»:w[KšÇ%&ôø¶½¦¼£FŒ™Ž™« }Ñ(ˆ´Q4ümasŒLH,ž±ràËÛTÜ1˜ÇTŒ;*“f–‰PCÓ <7á×Ò•ÞlVSùŸŽòàÊ'1îF›äÏ‚xq¯! ÒÏææ®âÇ›ŒÙBÙ³S­Å³ÛÊOij[¢ ¤p–†èÔr8¥QtÓ(ûó47‚b·(e0-çé#BäX+NÄÃÈL{éâVk¡ÓIÊzWI;ÑT¼z¢Põ ¼Vü¬p€Ͼ®0ÍÞ@ð@qFªg)ü½ÂoJ÷Ì5ÂÏwUþÒ"‘R~¹¹g«§Â‡…:]'×ôî­b,¿ÛQÄTÞÑ ÛVÂYÐyÅòˆF==3LÊå‚Kúü0À"OÊýÙü<$I?op ðÂ^ç•g Q7Ô$›Ü.h€§)­¬£Ëo2Ç{‘M2¹¡µÓþQ7˜¦Ã`½/2.ÉrÒ$j&ážd¦;ÜàÛ§R0æÊÙCÄ«Ìè7ëVbÏà7¹ò j9‚@ ;¼Î²¯5±ekøy¬Fð écÁ&¯é¡sTu+ü½ºÆ¿¤B’‰Òz¿”+‘ÊBõ».­Ã9‹`ï?UñŸÌµì#å?8­YÒŽ[.n!0sü¾©S”®Ÿ9*^9»u3rU[qm¼uÄóŸXŽdô S!Kl™ëElÛÈÒ†¶ñIçR¦b~_ Ìûv€‡3÷>¬Ó[ß,Ìî>–pý þbb«?é¨S5`þÂå]ïKAÊjxm|ÉFë0=Õ ²áIº°¨ý*ëžzrÂë™>´E+kùT]àn3OÞupyc±¹¸|8¿Ê Üe½îtÑe+ü½¹%Š}xUÆ¥¯C®#~½(Xþqz’ÿ×Û.’Ù5ðPzNíê!<'.Tº7¢¼}Â'¼³tqv…Eâ0FݯDB@²+ËE h„Î…ú~1ù ɽ @ÂDÂ_ 1þŽ4®°ô¿DÇbŽ»#ioukœ²§±’ž•J¢ãìºÜ–¬ª” 1ßCeÄ *šÚ‰°néäP9Ù»â}7Hµ ýðó’óµCùø35áÝW}Gâ_£8£¾TJýžšõQB²ÛáÆ\ Ö­;UVÙUŸÞw,ü½¹I᛬6cŒÒñ—5¢ KWW¬’¿Ü7ªüuføXIRꊧƒgŽæG´ìfGâZÔ§nuòaǸšZ?r¼i׫[¦?öÅ ƒïoÑq ¬çt)¼ÍE–噟Q*†¨—n…c-ÕÁTÃen©øÿ°5÷¹û§¯p®9qÒ\cxºÓ¨³—âcøVÏLÊ0RÃÏ Õ;Ç¥ˆeƒO^„Ñæ -'ô¡)Q"ÅÍxuí}`·~:Ewvº×5Vªæ˜•éæ¾IZ,W¯hÔ¨(¥I]}xË—Ty-ü¼ãÃ<õŠ^¼%aù¨Ÿ~6_Ë6a\tàîË^ÿ¡û»ÀY± ²Srùûa­2yvŠåkkCAÅ+` kNÏèœ/vªô~’jT–•óYu’…µm2¿v?‡2þôès|úé¹~Äß}Zs­UA¦/( ‹ˆ~ÏAäZhöÍŸüXžmP“EFÆV•#U¤òDýá¤Õ 9Šâ1·¾$ÖxñçJ>5;ëI ";«¬Ë¹ë ™³lcÛ8m[6†¼'Ýù°éP‹Ål§g‰¯Ã¼>»#L/gùaÕoAÊk`YñLc}¬%ü5J«Ór§Üe€ŸQ·.»(~bØ[D½Ü|þöÙoݺˆY2å • Û½§ÕKÔ~T‡¹Ðßý¢Î_l´ëB÷Þ lZ÷=À„¬Ð,„-:ª76ÃgÀóú$þ#WˆOvTzÁlix¬Ô&ìz€ÙI:Š—c$ÒàTýB5S™Ïµ~=km&7„#z&÷¡Á ¬è'ìÄ|î}¦# }o|.o°iÏ9#lźFM´ÚûµÚÈô•µIXB;º!›£Áœ {,I·‡ j“Q¸Ô]šQ°/¡Ü5}”Ó‚.õ$”m>€Xc!À·¼DcÜ{Ǥ3·ö+ ü£´Þ‰êÉ®íâ(ö9˜p×zcÉ è€ä4}kO8x.3%“ß¼3–KÎ6½ ½l 6Û™âµ4¬BF¨.§ ôèlù±†kúá>m&`'òïâÇ»„‰°ÕK1ÚEkOh+®Ú6…µxGù]úŽÀÞ )²ˆ·R²ì‡/«l¹Ø)íÿÆÊ2(u 7f —ʳw6š¾‰ßÏ‚¦6¤o_gam5º" *]òNMwÆŽø%¨j¿Á$-{6“É*$:ÿ`4Ub‘:tl ˕8©÷qï Dù2¥;É™¬™Y,Ú|f`t“ÝÐe§­>/h;yÌ£Þuyb,¦ÍÐól°lXf»ò ‰œQnô7RI ~u” ­ö/púv~Ýÿ&gqa#­GÙ;òE<m[•Å]ü}a¬âkÒ„ÿ’  ÓlУ.åܯÌ«ÁL °G…ãÃVû‘ì®Æ¶¼+7%× œ¢„ÄhŒ¿>v%n+ÇɈÿ•Zˆ¡è51DlB…ª›ÚÄͯs' ‚å6'y%“^=«q:*Ÿ¦ÒI¢ˆ%³~SŠd/W “ðœQ ~ú<9:S>ð½L©cÙòVjxiR¼ß-ׇ–ðÙ_¾pé{ ²°‹X¡ÿ–AT×oƒ#Hˆº?°>×ùëy«§ûgã§8P¿¯ŽJÖÅKl 3i„ȪVèNYêBåCø|un™ï,ñZPëÚ¡€WÒ|©ïóëÙŸärÜæ“ê Xlêƒp½ñÈʵ\$£è£[;:–ß¿÷c\`Öm‡%ž?êF×€”ïX€<ÓØ…QF‡£.ò|k1tb8JÒ³ýGÊùÓ>dàƒ_xÚ‚˜«!ºè}¦Á/‘’´“¾ú×_©‰ü5¬“\µ½ûšö¿¢ú™ù]ô,ùBn±]OÖx2ûwj±ÚÐÒt%*Œ9/°@‘óOD,蘘uDš"F´Å–ÁèiJeRwØýmøCátJžv -mEûP=Pâ[l…AãjOÈŠ$‘i\´j†RÖœ¨ìò«wÊ-ïØ­ÀÙ5l,¦´ç÷]0Þêë]0?;e€Æ4ĺ—~HçU;Ÿ¾ {ÍœÒ,ƒzÅ€ ðLS,6C–wžì…Iï&P—¼Še¾¾ ¢#HÜsUï‚ØølÉ>ÇüLÛOJ\œ8ð«aZMÆ€›”áô˜Öe*',L =ÖuewGˆ¶Ñ€¨-UUûP°R6À7Èl4å7ð E“Ís¯œý·öåŠÂóãFg‡üM)Äæ]a7q+ðÐÐÌ÷ÒóÕ‹._=)Rp•Ker×rüÈü“F7}_˜—°Ú‘RPr7_´'d­]**·ÃEê7A€åÌtK=I±ø{\6â¶ÊEJ-Âgø™ø^êâ!pfoãKªß›¾(3s0¶5¢U– ¡–)%œ¿Ãnœ±Ö_øÓ§Ü wd¼òFLÀ¦Pã°C’}ú ¸ó`û_°YÅ |2ú1yëÕßœ…KRK&#üOÇÒ ¡eaÉ»%@¨…ÆðàT—âl×àãwX¥¨É\·{µ)›?üøHXżð…zåw2žEßþ˜—ÉF@öÚõºXâ¬ì·q#_ÌüLÝ@%ÑO[Àð“×.°#“LëC6“ĹH¡]‘ Ì£Ëb˜¥ö¼±dÖ:Ý,`ì ¥8Ù"m;Égšå2° OvΠO¦õ!¥D(7ì⪤--y—_ø‹½ÿÛR ¤:®WöV¦Kÿê @e&ØÃ™úåOë]¬ð¾ÑŒuoÕo'ŠlDK×L×ûÛ §ìÛm©tA­ŒÓÍ*suóq¢¢mv°aèØ Œ’h ÁS\iUÈã¶ÝŽÒé¤.¡qùô—MI06¦Ü=—©4Ò½ín!fئíŸFÿOŒ©RçJ5<þŒ Uu’”´ÒW"»¦ÙDu°èêÒ™:^åü6Ñ®^«è±æd$ovð+rüÆ\=5áÕ Ü“Çv;ìÝÑhæ·_õØ-@EiîÛ㻈 ±ƒ¸z&”Ð*žY—`„ÌûêmAòP1¤¨¨@,«3eK]¡¡ühºžîEØCÇëŸØÜk§þ|­FÜK0›ûÄí¶ƒúŒËÃ1è`p>½¤†<ÂÖ“6àxoY3꟪Åa—îB±Sp‰$þÞ¿»› 4t¶ o±jª­>­Ð&Sꎸ†{À±Ò;/:¨Õæ¯^zlÐ5\“BŽÎ¤­ÿ/ {\#9{K@0vo`J»„¨t˜I·qÄÀˆ´6„Å,X£üMaD„S[Ü×=¸8bÜô oâ½òì³¹ºýýlvP£cÞ†B¯’/j# ‰• xF‚G6Z ~=ùEsË­/É?Lænh0è°{^`ûmÔɯ‰èÅ€>@ÇÑ…ßÅæ`PÃQ‹±1!lòëçφS¬›;U#Í•ø÷æð<<*Á¿¡°Õ@ÙBtTã$ÃR"ôßî°Jyž9ÈëQßìÀ ~€š ¿sÌ㬨:Tà×&ˆ„˜E£Qm‡0øèÜŽãCVî§,íàM/(Û©¨ì}epçth/ÍdÖ:µaò7¿EIoÒüLÕ+¦,½‚+?°ìâ”6ûG£Wþ«™„#˜4“>zWÀdÉ6x^ÉÈÑ1“­y|çÚÕUŽAÇ^CI&ѲîW¥·ìÞF^w÷Šñ ´YxZ¢× Y/ƒÙ ”¨‰à«ò¼ºF¼µ™’ò÷Böæ ÒY‘Û06Í‹ÀU2lî¾gÝêºÖ_ÉÙPÍi¾»Íª»b£ÙáDæLsAW›ëݦS“ÏÃréXaK½‚f?džzsó¤6¬ßZ°â©$„2e¡.zå„öúvl à{ü|ÛMcS:`§,ÑÆ•m,¬`/`üM•]r(ˆå?¸÷xËÄ!½å˜ï5Ôþ*4 35 ‘îa à¶$›3=¸¦g>´Äš jt‰Úª[>jÇàò8Û·Uê}Ÿàj3ψé"BùûwQAlfjš†½¸ý¹ºG•‰°¥ôŽÅyÁ"{“íWœ¸<}•1¿ÂN—²wÍðl+jçzþ¡ÀÃ%î[¦5 ƒòGÙèñH);‰Edw©ÒÈÒ“]üªîmíHBß;oÙÔd)ñ(%BQ#Ê‘Qîå´<ø?èÊO’ûÓêDzYÐüL°ï®3ÁÒ4eT>kÊÄî„Te>µ¬Ø¤[ P¹a¶ö©Ý–Ö‰k°{Úœ+ ùsÓL¯£ì+"V(y!åûXŽj÷Zí€O•8Ìt#r6\,xšÛRG›yÉNF#éû÷·0Ïö].óaeÒ5ñgºŠåCÍÈuo;fü_ÿ"O©ïÂ"°ØÝM¹ oE‡qfês !&`Þ©Ä}POä6¹s6†MÇå¸9FÜj…Û ¾Y«¶ïg6ø;Æ.’R”’Æ¢¨0¿bêÕÅÆßµü5%åWt´\:M‡ü2ze·|Éf›h>K®Þã캇"¾?ˆgN):Þ…ÏY¬öbýÂÂPK¨D1üwWùM¹àü  v—PÙ’_ªzו8q¹ª÷“x m^ËQÇ_½åÆÆÓ€5¿¨ækŒÊ´Òý떘“òãÍe¯0¿¤z `yúaˆÎL#ýL}#kñ¼bÈZž_ySK]Õn˜|Y7X=j%êQ<œ,qR‘tÇ m½4³Dé  e<"6äý ;Éí}îžF:g ½çü5-¸šP'ÞèBñ"x÷vÞ“ÅÚ±¹=Pb©Vä>2èÏpó‰¥èê¼¶œ\ñt÷ò‡îÆ2ÎñÄÂÖÙFkn^]WÝ<GŒ­~†ÈÒªŠ÷‚²¡Æ¬ÌBÄÝ^·ƒú‚ EN›O(ü:Û UÛk‘/× ]l5•ÙÔ±mè‚g½EZpüç Ê~>۔ɋ>€£sÛ%àÅ¡9«÷˜w˜·ýàJô'þø ˆ¨[’ö"´áÈB'燑äÓVý¸L¯Œ–w6¤÷ü|¨2•u³„‹!~䜟ìó„®@ôSªmâÙ`_Á»¶ŽŽ\»!ÊÕZÐËgl^è’]%«÷gÂd£ÿ{8N(û4ŒƒhÝQn€?F¾|¨ÉEGEϯ¸ŸšæÛ¨›_ßÌõ= €è£cAþÍÚÞhXÜ9]¶Â%Hóü}^?+ï'¡]º#¥×7ñ{ÿ Ú3.ÄÂÈ ›Œ’z²»kˆ|t_$æ‚’¶T'Pç·%娶ó;~œ¯Y ¥@":ƒ­SѼJ ¡P’u„|­—àwu²Ý9›—Œ)è«ã)ï]¹Ä–`D­"*7ïm´–¯bŠÓ»Û«Õê7Ö[ÞðÈ£x‹àNšnÆ>é w±ù†§œËU¡µ/kÌr¬Á(Ñ›æ4/RˆRx®}Àób3“Ápét°Ú0ô†ëYÔÅš¨ 7Qî1¶¡ÐìªEëŽø«JME°£µÁíÎ n÷ÓÚ-Yd+fãrš°² Ç¥hú¤:x3ñ‹WJé´8h4q§jÌÛ*µZ*…ýrŒkÛzx™÷ìò&¢¡kÝù<À<eíé ÂrZô¸¶÷3ÞN~xµvÌSMVE³ÿ©#:eÄj«\L$Ýü-¬AıW]î Ü †ŸÖ|ÑYe©/¿l˘õï…Ãe78 Ÿ™,ø¹ŸvxF"SŸôJWWg†zܶ£Tª ©gålÊ}üÒ0.}¾1») lú¬à¼›î£‘fè$QËÖÝ*‚½î>°ƒáXݵ¿"•î•e½ÕvcRèGú’¸­ƒˆÜ‚µ¿„·H¥ÓÈ—[œfSž{ÝòÚøü,º_êK(‘ýG ;öêÅžÎËvü½ßÑRÖ«ëÓ‚îØ÷8;4gþ…σæÌéÓášé?Ì¢ÌæBÆÈl¶Z3”\©»Ð)qSÞ”„åœ~—2F&â0ãxÒ•¸Ò šFâ¡ÎÃ;Öw"mÓT¼]6è[í/!À^ Y™GËO+4âüæÿ†·'ŒX–'ašóàjŸ5Ê{Ô}ÿ„¢YÆúœjô§¦9òdqUHËû@L¹˜!Vlü<ëZ­í ښܮ}7a!|{Ûê ~à–bç¹Ç²ÏB¯u¾?>œ—2ÑÅ>ïÒ9ü½ßótI`ƒÕ²ÍËÔZ?ÑÂ[ 7%SÝõ¦°á§tβîÅeê ŠÁÍqˆ†ÝÄb!²­3¾ÿ|rc¦LÂw|§&z 4Þ¼S@y‰)7Qg¤¬ý¹{_aq Åû˜Áˆq¨yÊØ_‰íSZÍêNد°+ má³ÉmÍ+æ~@ƒ£ô¹%yáRè¸k„ˆoÕOHtp-Ø©4wXg¤|¯—Ë!K²¬pàÊAÆ ÷Lôu?_ö¹fô­€Áü±Æ“6§‘N;6Ó…Z¡'Öù¡­þ'¥ÁÇ—#ªºü½Û\hƵ 6ÿU¨SˆÛ>·_%0ògÈ ÙîÏù…¯¯¾Dž/?Ö¨ßÕLr›7v§F¹Û u ¶û“&1.kNù\ìís¡z‚§+.ŸdŽØ$Éu³È—ÏQŠÖ®U†ß^ÿñ9®ܺ™Io.¸ù+¶bãÙP5á§2dÌ̌Ιª·>Úç Ú? gªIK{¤–dé1ƒ# l×p:CìÙ•i¨í °É£I|Îb=±€tAæŠ^Ð?W¡×Ñ{eè†À!“¸»ü½ßÀD¢$9/AT‚—D~•ª/7ïgÀz^âÉï#8»Ò‰Ð´: &±aÛ[õ€ax{ðôæ!1ÍáÀÝYî‚['òÃau@Ñ’¡é¶¡‰Ó‡œMÕòÒjàÒŠrÚÞÖñ,ˆy¸š64_˜+Ê}¢]!ap‚ÿÛû€¦Ýãºv€ÖÆÄÝ£Œ hdpvW2Íݧ¶3èrÈ,(rF{ Ä«žWkøå‰´ÎÇ_èz„¾9Q*;¡€Bµ` *'5#œì~1DƒN‘J $ÒôßϾø€ M—Ëv»=ü½Þƒ?%ÐC-И(Õ§‰ÁÃîoö^n!;åX?T/¡cŸ£L¢.….Î…J©„()ˆõú8áäT³I뵪Llwæ~]ãð ZPú“Ãã= ©Öd5Ve²Q[+SjgÌŽ¼F• ä}[ßZé¥u@q­‚Dl¶®•<­¦°­ÍQ×§ýI»úbðù¶öuŠÓúöeÂù¢—v2¹_Ÿd«è9êOŽ¡½I Ý/Ø#«‰D.@¼«ŸákY]SâÐEÄ[ºo.Жáâaëý”ºV£ÈúâÎ@ûöκöÅ€$„#¤$UÍZ ®†ò ó5Y‹óüWñÚZcW75×=üL»µ/aŽJIˆ¤oGõÀ #jÕ@ë?f2mÖT/GEx_´Ì7Fì¡‹ A¯ªw¬ÒäF>†"½r¥Q$˜±¯ö)ÁØTl1ü{QhtŒPžÎ D”Y®2O÷É“‡éßF/¨„^ .¶1Ûly=¸nÝÐëùËì5†Qÿ֬Р²”czÙ*'œ,sùj$›Uûÿ¼”%ù µräx"/æÁõ–Ö£Æåúr|XôpþÙXL}8]WÇÔÎoÞÝh¢›õ36«…Â)š› RvÚÙmGx °ó…Ržl¸}ƒi&»‘è¢1$ÌT)ÚUß`œÅ½ ‘ü½¾*s³…Iäq:~ÉJ윇qT‹à° Øù²ø!ÏM¸Õ‹†/ç X‚-‹(ó78*Œ u•÷³\ƒ?ŒšãÏLs42¸([×CÅs ¡n•pD¿»‘¶‡ÎV! HbÈp´ŽâÞ ZsÔ&.0èoŠ"ûTÜ#õ¢¦ d4¢VÐÛ_g¯ù´Rúü½àAÚøÌ…§PÆŸ“¬+ŠMèOþÿÕ˜­+¡–YnÝb¯(ÈŠiº¶ÆnøƒcX·H!©N*MX.IO¥Î¼ÜÒásÈYˆ­8ç6tiÿ¸ ¤K‚À7_½Z”D9²`Bz)G]ÿ¼jzDE·ÉCQF¦à0¹²lžÜ8Ó@~õßµ3yØ[ˆÁ?nóJ¾ÇˆÒ¨¸>ÙeWÍXî%£=þN$ £Rwsô‹ ‡0Ž>Ÿœ3f»¬éÇË”e~$òÚ~ªfˆk³ºY¥n“Ïz0òåüÇkÒ·sÊ„aûˆÉT˳%Ân²m:ü¿Û"£Sx멞p£5'Òã»ÝïwoÐìDƒô¶—5?ð¥E´Ú¥±8÷ìÖê ^¤9ظ’ÌEFaF»ü~9®ß¹Gq#ž®I4óJQ¶Ÿ=±$lÿRÀ+c&î@9Ù€ ¼ù«pZ³‰Ô{-΋ºC¸³ý§G#²z}Ÿ É?ZPIqïÿipªÏK†’äí…sdÚ-%¯e7À=_~Lsrr††ø"PãÚå9òÀ¯³í¹×Ô,cĦÖœƒ2ZxÙ®¡³lÀ[ò=Uþ³­ ËÏ6(›P?l`,ÉÒ·¬UÙUÊîŽÂ*1Z*øfk©”¶Š—BJÅâ’´x “á‰.3nê¾ØÜ3(¡¡¦Ô‹î)Ï£FL½gtÔœBÔ]’æ ïyˆNW¤  @’¶‘ÞGœW&hÁÎ-ÿ‘BÜmÌýÖÍ7âe ©y¯ëkþ2‚rÅši/PÏýô¦"õçàuÏe—¡Æé8ù\ƒ9Œù]3·äÚÇREpœ »“ѳáúÊu¢c–4Ÿ½æG;ü¼ààã> JFÉuiÛuÚÓ(Ô¥ŸpÒb13©ë f$¨ëÅ”©µ¢VeÝ+¦hÜÙ½‡% Lò¡ ¡Û½ôÉ>ÜáúÂÙ•H¼Håèù‡oâê?HY[©9‰ÉÊFÊ«g%ë‹k?Âá>£X_LàP >††CxSDT*š&—]fýPû •š]CÏÚÈd°º1Œyµ©‚ ðÝg‹éÍšËͶZ‰œ²E^¬û²¨Ÿâ},è8Ž!L“lM%¶^u¡ÔbáFÑ—ú¤Þ÷-sF²û•铌ëKTÇᵕµ»8þlMÙ¤u ½…ÎÓøñȽ$|š 3á±{š¼ü¼í¬¾ܼðC ë ¤nç\‰žðûåì’­}Ö¶6@ªã¾&™ )ÔOˆ6:´Ž¡ÿ­xëYÕ)L¼ÃÀ Ù´Ä/íã—½UÇtåUÛZm6?e£ªŒSÄûžúX¥Ð;*9W®ï†úõ×»ÆÂi­ÁöHûP°ÚFkåJÂf•˜ ›¤º0Ä^]AYõé´ @? ·]~¥ÐeH‘œ*= T ß^ï4ÙÜ”`âøŸ¨È…8˜Õüá û–ÐÖ©õî/—†-ƒ•=»J·€¿Ÿaéþ­N(¥É24¹FKÚãX—ůçWjä > šž¼ü¼àÎg;,6{®‘}A›L3Â4²2߯a.GÔ² bðä`2HßãTk pÚMð§GÝ_£f!E§$½Åkÿ¤e»iüÅ2^ÿaHmJáGÔÑ['X'#ti¢‹I:X´±âœä=Ó¶ë PúÑtq’Üœ÷‘Ѽ®À Ȳù´àeÞoïÿŠøÖ,¬±­íŒ]ÅGôHLJ¾ #Òg1ÀéÄgn€VbRi-v‹}ò>¼ü6‹ÆñrƒZ,€skØCi•ÐÇ€Ç cöwÞÔFD S†‚ãÕüÂLžs8"2‰÷r¦ÒFoXX.ˆq‘ÑTFa1îdò'k,HË1êÊlóZÏM0 Oä* <97<†ÅÀ åßJ°C8Ñ@ÕñÐÎûUÃZÌw9”«H–èÛ,±¬i‘:“¬¦Á–˜¸7Ì«䃔Ɯµ ß»ˆÒ%F‰½ÀœÊ_]žªÉ)ôZq›Yù¥|œ±e¤öÓ úe®ë–ñ_WCgõjÓc ° ¬¢ÀPæ!v“K¶C›dÌ/Íá¶ßÀ½bΫÑŒ ²ŠwÓ¼fæ‰l/Þiiú*ü¿\€K•ÞFÞõǹ>Âîu›1û7@µ"ƒ‡°Ñ‹xË90Ê6˜Æ¾Zˆ«ŠL@'œ*íÈ×îø£Ô{û>î*¬Tï»S½;ü¼àB+ˆ ¨hø¶^Ú´5víá0].;I÷$§öÜ/V@+AôÎh}‹EËù„¿ÃŽà"šýÌcjã´ “ߘņc³°Ì‡ÖûM:³ë"ï¶ì#†}²½ã—æ’Òû¢HIn=HT>|YÐÍúî@ˆ€OUZ€LðUÀz‹öýi25k NÜ%'RÚSdãËE?à àb„ Li…`ruuûzjýÒÔû|ØÑm§|vZ×Pf-s&%]û5)3^€e*¦;ÁMá«î×ñÍØ€z8Dïæ”Á¼kRæý:Eü…Ÿ^EÏ9ü¼â¤§˜(³—®[–‚Y€?‚Ì$rŸNc/éµg„7H´ö}‹þ|&oôþY_ŠèÓ›V…Å®ža¢nç B¢°mèÛù 8¶¦t-Ñ*^ÅIÀúXd$ü‰QVD/Íëï¨ù3 8Y¯ØcPuP2¤E”¾Ýëoãg<Ü´Î{ñ„Ät‡{òií+B9ró3Ik° ˜us…€üþ`“‹ÍlH¦àøÕ«~ØíœIWÛ.n¦e¨ùî|ZÁç4?,Ê.P]I(Kæ E‚UôüLÈæ àßXZ /c˜Ð©bäk ºî-‘Fì·º=ÍLo™5ÕeO@b(à–ý8CßcE!'ŸœÂzmßûjcaý˜‰¹j+bá*ü D®f7B™Í:n^h&²ùãrÈmïÈM/`AêÅþœÇñle1 Õ¢È;ŽÊsŽ_.ä²®6‹ Ÿu&¯Ú0&]OÔ " @ôà1Ê» y0îfUsaŒlI4)á–€?D(å y«öYO”؈¹1ªùˆ5˜²ÍN$(žuãÉ?8züLÈ&wy©=‰¥â¸›ŠŠ¿U«ïÑ‘zûSe²ñíÐÕëˆm‹Ãð…Äß·8Û$Wóœ&L^ç긗_!MÐÉ{ѲøÁÖu¬ÃAƒ µâ]…iÿ¢ÉaNå}/ì›î±7%€dÃÅk‹|nƒÓʵqߨâ\DZàŠTƒÓÞãI{£©Ý•Ǽ‹¬Q†Öau¢«ÙŽì.õÆ;·QÝ~ÃYýõüIãԬ盼‡ÀaÒv{†)¹’¹íÎaËmÕ¥äUy/‚¯2ƪüLȨ‰¡‰Ú6ijéU˜ÂbSÛè%õ£ŠÎÓ–ÊâßI´³æÐÒä¦àCô 4ÄXCHAJ_á«Íû/÷ÃáÞgð©ã¤Ð)Òt©Ý å]}’‰»œ@NÞµëQyZmð(à¯/¥ó8æð¼7“ŽoU™ °EôGL›N.OR™MÌÑ5ƒÀ½Xg1F£çaeðz]*»"Þ¢?·"¿¬û N}FPõ ¡è¿×?"|V)2é¡W'ì´Ž8ÞÎTá.¼¿Íh%L”‡`=Ö6ÒTÏ4Ø&»ó4á½óI@+Yç¡EݱåçTÜ=„;œk-Pf|g=øiˆEIö¦­ÄÝ×} ü|§˜Ô©ÈNXàƒ8£•)»Aí*Qbwà²Ó6J;Š×Z IÏ¢SZòÝø_Ô‘½Öc{nÝ÷‚zs*$™6Êã«"x¸®0×Å*>J*¯Z½¯8‰j×gˆüš® žnâMëàVªùÁ­šeü6'Ž]drò]2½ÓipKÖŠµ@ÓNŒú¾ôI±¿pfâÜ¡àßE´Ñ´2ø…üäÄʪ5 mÃõp öõæ!­—«—Å›)´_¹ 8H5jlø‰>N½«ÓG ¼Úû“,HšòÇÐp › I y3-|ŒÓ,Ÿ÷ŠWéÓ°Ló5:ZÇ]¸#ãÃK>¹„dër=ƒ › !ØCÉT°65 ʰÛ>$½@GŸŒ)€Ìs]Ñ4¼È ‰þaŸ'¦\ÁE›Ê:ÆÅ߯¸·8˜b û8•”Ýå}á_ÕvØF&™Ñ!1—§GLO®/ëÈ}•ð(4λ>šAU¡‡èì ¿ã¯a‘Fc²÷ùïðµa““›ü}^V,¼`õæ£×K¯Š{Tuòœ¡žW`§EùVý-'!êìêþ°*ˆ¢3Í­hR¶9ËŒ¥Hˆµ…¯wëëf]˜ ³ä²͆Cžk6€m»&¾&ÁÚ„:hN • â‰ R\>ûÆ^Ÿó‚{V´J»;jwÐà<Ô9$8ÖÙ”‰ü°š=—ìËÙ¤¸•&Â…õ2%çh"ðþ:®W::›å¬-.PScþª™¦ÅÒ4—kåªF«ÿô/®JüŠÑ»–OÈB2ié] AfhlêâÆíôZ͵^m²ÕbŸâ©‰nÊwlÜER–Ƽt)Í3°Œ^m»_Ù§+ñyN3%•Eßñ±²zÒ+zÈo²ßF¨=&ƒ‹Æ)øÅ€²@êI~ÎJפþ Ř…8TErùIŽŒ5K¶&ìÓý™À{ J߇¥.åò‚5ª§f÷N¢ŒÌ;Ú…¾J.Ë;.‘ñÿ0\äÇÌÅ&Z§!/Ƥ 4ýõ¡\òfžœæ°b7Ÿ;yäC4[ˆ€úaÛ‚oߣ»b 87úú± ů'óëù¨’½0Å*Hõ¥ëýn>ðGg ¼ü”xó#$ìõæÉ¥´$î/`"¶°+ÂÒÔ©¶N!Ÿí÷€`Ðê‹ ;¶Œ"6B9Ÿ¼•@kü³A 4~Ù™GCÓIRàÝ?=ÚÉVsµá!RUJpê¶·7¡1$2#«½#˪øˆ›’ZPQ9%ͯCG8 2<и,1yÒ^ܬèÅÄ÷€T šÕÆ/ \Dj¼’šVy¿G|F© ¶ö ŠOeë§m8 gG÷kø$ÅÂ’ý&Ú"Ð+šã3ÙØÕšï¥7Cû>‘íÙkì}ôúž¨2¥i6##›¦aè$R ÁóèJM!=DæLŸÇÝ›±GÜi˜-Tì»»ZÄãÁ\G@7¼T< QÄúZ«É±zlIð7"…E›OÀâoh*”Ó¬ÈHy‹¨fùJZ ùÃü’7Z÷»½÷Éž(­ëjÎw¾†ÛÚ÷‘ì~/_—÷j7å§Í¯{bxß’$Ö?KûR¸ä×Aª÷»RÔ ,1GJ¹Ó(j3‚0½\;my¹ŠÒü ÛÜÿb^Yƒ¶œyPþ/lP…Ñòíþ!‚ñèvÿ¿üxhŸ¹è “â‚Olã(ªc?PÁñ¨* ƒÁÑ^dN«âƒ“,Bj;¾ïÌ0œâ;üX€°¥¯fq B°¾q2^+b{œó:uÕ2¯;EïÁÓ‚þ8D¹JÕEÓ(«Ž]OîÜ*Æ\& r óÇJEX³üLË£Çå ± tùºúц€_z‚½¶ŠôÓª Wí¯Ç ö/ø lI"‡WPíe¬TÄasç$îOï¶Ò» µ?[¯eM‹–µ:^Îܽ¼öw¥yJ7³n뎪ÀòÝÅŸ 5?…a ©2ûáh¢­jWÈÊóŽ <³©1v˜¯†Å—]Êu@ªGçÜÎßlvûr&}»DöìÀ{L}Ì(£¬Ë ªÔRpRbÌknhªÀìk_Eˆ«Þì–ü›•)Y…Œ'!ŸÅîé/Ý=ȼ# Japºü6"Ò”€p4MÊœaÕÚ¹ˆ’ÇH®XÕüŸ"3¥É’Fª¾Gö3ôØÌ2þÛÈÂ|ÇYùêŸc<æfÉ!5ªÂ©¯÷U€‡;8)oAc6ëzì<°S®¢´jü{ZÀ+…€g~eê ,ð!Þ‡éüÐlì<Õ¯gàv\tÊJÇmÓ"í¸ê¦% „0ä­“.5ÞàZâÐ9²ì§ŒâëÀËt$ðàÃ\*ŸŸ‹eÔз D×OBê;:ÍÎú¿ƒ£6ìÔÇΆb ¥ŽäµÝx§“bk )bÀk“®üKV|ÊvmýtC`7",Dˆ ɘq-,°TÁX4¸ïnꈥ Lý5ÊŽ÷osæ²¶¨_k•îÉXœ-¶*ݱc2ÕÏé¼ÀqÀÐfYÅo¥H;{·y{Äz™ÂŒËGóê6yÒ`õŸvÇJ0ƒ_ºâ¼“—E±×“0U¿ælÍש%ò?½X+*b0^»*^ÝóõÍPJ³Â«A[‹•ýüà––öY¡îâ§éÑü wqCÙ LÔBiÎa鬧ܒ:æsi¹¶Ô ÀiÚAR€á¼üM|†¢l¥§ú`/äePŸòWWd•€`h—&˜àƒMO{§×;»{û€jD¬õáºtD¯CØÆ…Æå”+Šû/\ÕD\§— öaœ9h©‚mª‹g5: üKGòؽÄ{ ÐZKÔ ÷ß·J×V¡"’´Æ!qéÉr@9ŽöÊÅóc³•äš`°Ím×ð¿^‹¡R²’yŸ-¼àÜ•²¥Ã&lÜaŒh²‹WîñrÀB”Á9|Ÿ%Ú)›4Mr~#RPW÷€ Èm'@®Þ/qÚ4vE¼Æìc­üÒ^ˆòf ›Ôáâ Œjm¾J=.)&J51dé%¡9®oi8‡ª°¬B]Ôº§-ÓLŠž¿ÛZ¿/«8Á³|ªLæ¨øíÕhv‚¯©D–šê)J#4’dÚ”¤è¯ýO5Ò††d½…d¶²…û l›®HßPVÅÊ!×¹¹‹QØò“íÉu”vMRœ3Ø÷*™"¬V;– 9囡iñ™äùNòéEôhÌñXïL—Nê‡i?t± ÕþÍWúaìÒ‡7} §!;×ëÜQôß›ä¶Õ%Õ^“üL¾-·RMðb—J£ÏGA"ªá¾=V<¾1˜(ró6£åì†AߨG«Éȼ*ŠV`k’Æ´XÊg¡"ןS„ÇhæÒì…?[ªˆuáö¤øà½ÔxümF7X:‡á+®!„N»¦# A¥DƒIDA%÷öêCÅx‹¾µwmî% ¨Â†OFk35–_…0×õôÕãâ½Î6C»L=nkÝö*ŠÊŠ\·[­3àER„:æÀrDt˜;osagÊ]O‰ò:¿ný _r &Kq£«‹è–ˆJbü6/UVÀúBÐËm.fpÞ¾œÃj—…À‰©ƒoŠ{>†ž(·bŒã’>Ä’¸ë¦¦šVÿÜkE ¯™jôÓ[W†8 ­Í¶í6&(î:1"Ø@Æã§Ë Á]âŵ5Ž”‡šÇJ,:—ºyŒé «ˆ7ÕµÍ~<8‰¼á1{VµÀ–åOºÜWÛ ãÛß ÍÊ™Q#”ìïUî¿Àà* LÐsÚ'ÙYÄäü¶º³¸é¹Qä!èkƒ\ôÀ‘²J‡‹ *”±Ÿóü¼ãt2ä»ýu8.§9’ñÜ9wÿxž.â‹,i„çt9̓£ì¢3}>kL3AƒÁ(Æ Û¥Ë:Û ›º2ÜSU††Þà\W­WÔÌÂÅfƒÄôº Ð_›$.·›ZIMŸ¢ºœÑêê­¶C‹¶,ÂxhW“A7&Q šõ\þÍ4ÕsÏ2EêÙBÝÆ0ó pËn˜ÈL°Þcí⬯çy°Œ‚ÍIìîn÷yÊJ÷/L–¿œîè<É}ü— Ï”½õü=@ãÊ—ñàIx€D Ã&BZ‹ ü’rßž2Žø ‰qh´ùºì÷=.ÙæST(x*A+îss¥#PÄj¾E|¶Ô97à0@À‰6…ª \Ò1º1FˆUÎR~üJ{5æVÙ¼¹æ«pr¾‰%JDÞïàêZ@‡|ФCü|µG?VÖˆêñÊðÎXŠ7z3&NÕìàs«™˜¤×ÙÊĨ²ˆ$D˜;·<ëÁÎi|öÉ2²‘~°M¦˜^AüÛ—ï ú´õ‰Ïº·ÆåâÙ躹£Ö/Q?f©òLzü"ÚÈæ[jÄ2+ýv«ÞùVë]5“í ¯ Ä¥¬é÷¼vR¡Èߨ‹Ê×O&‹âÀ-,lG­®©"3nÿ½h€ƒÈ?þ¯­/0W»ô„8¸Á*þ­]ç;kýa¬»RöqwNGe¶`÷¯ÔŒ¡ÏcÊv,46Ú6 ê(Ʋ€œa¼wbÐñ¡ÒÕÓ™‡Š_¿áyÆ=\v‰>Iþ/³Üg;(ºO¿_í¨kc…}»Ñq•Þ:îF®ë~ü[h  1Œ† V¨Ç¶®ºÑé­Ô±|¦U˦zŠÇ$q”(<!¯-„'¼ýæ½¶¶pR)sF¬(ÎÍEÂÂ|Š »­¸5ne( ƒæU禤Gjo¢”íæám z‰úNmo>9ȸ¢›Ös~Hb°wcóÊz>V¨ë ,Z»Ã”Jƒ1µ4 AÞr¨JJ¬“Ž2WÈR¿…”ònð(†,®ý6ÈÞó;Øg7ÕÙÆ ´‡ŠO±åBWãY`ñ—Ü\õTþÎüÈz% FºæïƳÇ h¾tš·Q%.Ó'„õ©óý;.¬¶ˆa$§N»‚À/›k\õRËsmà÷V1^q ”œ°g>I°þ¢X*q’¬lèÆK?Z°Ü ùΓ7¡ØÖ„3A2é#µ»\ÄÍòî˱¢VX {UmŽ_\ðpø…µ®Ž[ç]ù<¿,Õ4r¿\ï’ïH Òã7¼ýÓÏÞâæ¾Àu·ûJìÙRí#…›,'…É1½‹œe$T"ÄŒ\ß® ²ÎlpÝ´àăöiQi®îÊ'Njw ^7Úžœjœ5ž ÓѺgøïs Û°©èÐhÔZÄ€Úž‡ƒâåZ–×M<Ö  ŸYR$º„ón‰EÚiösWµv†s¡ÄK§#V·[=CòR†Ójh@üèŠÎ:Ÿ“ð g¿ÕVÀûù*0ïùâËr²Zf.¿®²„Ò81ËÜ„,ôò:uºí`×éÒdñ#ß,ojYÎ…_ÒâäR|/¯‘/¤¡ç¯uÃþŒS}‡‹ž(¤„;; ˆ:èìþ‘Û¹æõe¼ÇóHÉO”à›²Y Ü,NŽ!«ì¹¶ ½¢tÍò—mÃ-[ ¯AW“îØêÃÖ-’o·×œA2 'ìkº,~F/$£ƒ7` ŠdWŠ=så`Ì|vmŸ~£ÍîßôöÖ×';‰bRÃ\üWî"Õ“ÊÕ3öÔÆ œPÐéI|{€õìiG jÙõGŒú_œ Ÿ:˜¥&fCË~Ë '0©ƒ&üH$Òâ)Yªøm¥06=Zhü™WÅEjî'ö+Ñ@õõÁ]e xá'~ê#ĸûu_U…0‘ÆÝ`îêîR‰¨Ý‹<×.œñstk5rýSó9 Îu ‰AÚžåÒ%ó†X= x 2i %âÕýqÆ-l Ý7 ·9ÍœŸWô ³C$Ósh¬’¬ÙˆG3®:üMbôÛòïIš³×õÊýÝ*ìVšÁíçù D„4¯·,ånÞ®Ÿ÷ĵ²$¢~òõ³ªÚ=Lí·¼‚]ѳR›üÇì+· iàœT;2[¾æI½ ÇÙ컉òÔÇ¿t¶Ð„ÔDÞ;¼hRÝdöcoÃÛØ¬#6ˆÿã8’¶“Õû—,šÞ¯(a.=×þ‚±(D ÿSE-æØ•Ü©P?àBM)YÖiÍîMä{!ÔÌÐ.² ë3Ÿ¿Á‹$öé±î—iMíݺꆠôû»üIrs⎢ù¤<©#èWƾÄÖ_ŠÂ@x–É;uŒšº§'<ß+³h!á×(×Zãö†§ž Âm #£ÿîâ„SHR†å£—)¤²†zxÿ%È-mÇ=¤Nÿí‘€ͲW¨<$À¹¸Qc<>$é0ïÊÖkæ²2×Ó› ¨¥’~Au-Ã%R¢D„»n¢}z+°÷zMÛÝaãS7dt –ÀOµa ‚8*ºçX©•/f=¬¿N¥TˆÎ æ¾b;cõñ­×Y­‹9Æý¸'ÅüM&ßÿ÷þMªœ\ò€÷·2‰ºu·5Ž(‹‰¨ÝÒ%1™ÝÑììÃìû'˜p+@:F®ÈŒÄ'¤€ŽérÞø-UGU05·ÛZÍD±ØB;X¸—/¨?µš7ÿ‚©…7ì42Æq=ja3DàÃ~IRúF貉P˜qÛLø]!¬Á¨!x•âþÃ&RÑš_ âbtCƒp[VP”§œ¤X—¨IpE›˜C,Ña¢Ù2IŽGæX” Çêo{:7}óWåe¬SËOª&íL•VA¡Æñù-7“Tÿ6D–›—;Gfê×/‘©DF÷ã¥U üL¬Kð£¿Tåä•\ 8%>ë8',õMëÒúYC½QÍ“Ýwk¸‰Ú…[þfõ¤~“ÏÂsð6š}¾ - ¿<¤wï [íE·´½ü¥+ÊûÙ–è¾eL7òÒÕ †JéÈœ– ÊærÖÆ2¹-õª »¥‰Íð- /ÎÛ=)hêÇcÑ9øo'l—"Ù°¦¢Â¯>1…n&äQTŠ ±Ûb‰`øÀÀQ廘FV5™=)¡…í:<¹³[&¹…s³+Ù<µ¬”ÌŽ–Ïè•üNL“6­Ð¢RãøáÆsú¯¦}YxtQ(HŽ ð©œÉ•¤&ؤ•ø`´ÚfÙ!%µ{Ç574˜õÆ}½Ù Åk‹/+X½‹çgˆ(cAÐ}É«“3Íø¸qYñÜg€D†wïn¹¤À]?!¼ª¯¸müð«ôX)$–„¨¼H¨®ÃÛ.ýÕo}ømD¬ÂÈ=Ñ´—%‡½ÒÖxå@9ôYÕ›W|"þLX|chÕká6•7*šºóÁiÇÝÔ;m]êA¾\øoon±¯šÐaÇ$ÿÌäµG§û»§Ñܺçlpò6«[z1u@bÓÔžõFÏ›TüMy¥úˆ‚§Ùp -W—ZªIá¢ÑОVV¨Ÿ÷üb¼Æ—àXO»/ÂhZ’énùÈ´¾ò•=ƒÙ^õ&AË&¨å*év—uÙiŸZ•¿ÓÊYÞùóËôÙ}|âõ¸[° Úo“á—'Q 3HˆóJ&û&³‘eûr8#”#nØ|bÝ.'›ý4sqn ]ÅYÆeÿUúu †JIáñÈ×ó™Q±Gàmˆª÷çkKAôç⾯ 6P©ŸÕâÛHª¢o,,j$’íõAÉø[üX—Á†5-;ïg”eÖ%Iˆ„„E ´?ƒoÈÐmê¾4a‘‡Ãú†¥]!‚ôsñ–ô5âàoˆêÎÖð"WuÞ%zÚ䯈C²!Íôog ƒ¤°<¬éöoI‚ÛtQø'øð…÷roï[“Å¿?íår7|LBÉv"â rÊöÀ­Ç™7IºÖa[²q¨èŒíDææÛW 8Môô½‹ÅØSÍïÝ>jÈôÊYÎ-€OƒwÊG¨;»EêEÌ(ïUƒÀhWbüM":•r)œX‘åÙJ~Ø›­ïm…2’(­ÒÕìû^$rà# .?ù«#[â¶ítÁ›fpÔ„À‡ÞP(¿ãµ`¤OÍ~÷½Ç â!ûÙSb¿m®!ça=ÎÓ¼M GãY@Dh° c°:y²K§´"ìŽ}¡Ñ75ÕNIƒ9uÆ,¾•w$¿)!bÕ5 £(ƒà¯#ÉúõíbOåï—ÌPœ 'Ú®ý ^YŒp\1kùEr³FÛIIî´šçˆp±¿%I×KüJ^QyIz{ïX-¦ŽËÂt‹±¨’.f£‡;§Ïýj‹Ä—†ÝN×~–¿Ä¯:ß~Ø™o¥ ÍLÍ]½®p4Ìüí5 à¾N•[n}\@ÂâõRJÚÁŠ_ö1ïYMH$Ä$ㆠP™7¦ësWæÑQ)–zEÊÀbr^˯Rz¼ ãe£ðèÛ\Y$0“9ÀD¯¡ •-f§Œ4x?ú¹¤iÜ`õ!â1ß“—609šóüa÷½ ¸pµ=à!Ö›gªTЕ%a.Ú‘·{òÑÝ©Ž2oÈlü|}ûüM4,Z]ÿJ{Xi´ª¬ØßÁ"Ýâ>`Q ~§f &_½[¢°Ë°€ÊȧYãNT\}'@œa/“st(™Ix0iëQÜŠ¥µy³n»[–D¯[NhŽsyµØ²ø*Љ‡qb%^| "´ó{Žà­M£f¼ãòé_ öH!rj\œ¶M{.g7¾§z®#¢o¾Õ+Íbòi âbP§wðÄGä\!8&øøÜæÐ^)ꤳ²QXB{ónÊ‘ŽÓq{å PokLnï ›ØPÌi cåy¾®Ë¢쀞Ë9½‹mô8¢€Õ¼-t‡®CŽ%P/@ ]üY.¡h¤esÄÊÁYÞÜ€BüM(ã¦çi¢üÄú¯Iû·,ö“˸Z°)ÓG¹™V)ÜÕUЈ@oÖ-Á:à|½>øQãöAÉ-ñ8Ö‚°Ù‚ç6êõ º[½ë›$†vÃkÂÚ¢Öžþé=¿zð&ˆÃ55±ðÊÑ/‰ð±)N¯ÁûywL¦hP0ìÂ¥.J%€ý¦àb ~±•ªe|üLaúMPM‰ m Š–m™O3J”h¨¥[8‘÷eaX™¥E­Pmp `Ó·_x· s¬ÃþwÄåÀª+âç,¨â©ý°(1ËûHüM!FÎaTjÊ;”ªj¢«ÿFLº8^ænJú‚?‹V„éV!.ô -{žSôtÕ#o(œ/œ…äMÖl8.Hƒ§,Ø3ÙÂ߯Ϋ˜Îm‰>l<º;»â;RãÛÙ³¤Ó7„…ÌÔ±@ÌU>ÓÁu…ãœ)ÌLfø=|µ:€§#û]rŸ†FÈ&I>èÆßá¾kÔä ®k¢H»à¥?±15 ‘;Ç“ðšD«¿Ÿe¡†;' FÚÕB„•š5[3V©&#ŸÍÏäJ ц .þ3†Ë$mU1HmêÉüMXùø¼,¦CÒú?“­èí±—™§™iø0QJ¤ÌٵϮ´%‹ã5ú;>Z‡‡ZÿÜT¼Hq¤ÔyrRŠ¥wˆÓ<øÍŒrlWûdÝ•üD5TܺiZÔ‘|"‹6){I©•ëå1/=1m†î` ¯oJøìß'eCƉ(+n~È;ÀÔ#B4G9ÿ˜ àb’+ cuÔ…½=ñ¸ÌØ#çðå®Ï “SÕ[× LÑ" äðgqió­­äLªÊ$šõ2À†Šoô¥’!íø¦ähGÖ'ð˜©çÂXFJüN‹V¦ÞÂoe8gês ˜Ê¯ †ù<ªsÈpïøúºÛNɆ̆‡¿°{Îï•¶óª:ÁͯŽK.í!@s4¢`Ꭰ‡?‹ÝÁ¢J šÁnIc÷‹mv^pN[ÝyLy=þã–ó.áþ\€›Îvª£ïFØ ”aÝ‚ßC™FÜQê«îe® ÕK÷ÃýÀ¹] ‡8†‰µ’P‰‡X¦‰xTñêÍо6²Ñn± cM²Â® "™ãªì*pŨáÅõÉpßêÉÞâRúÉ7Ȧ/£‚…Õwè§üLòßÈM"y;º›zæ·îèNi¾)#’tQ1šHÊ hlÕw ^&ªã|BLvIl韶j 5®"Ï ù¼îÐ*0·Ú  „†ŸÍc½FôOXV(ž6&ó})MÝÏ‹î¢Ä« 8qò2Ù)æœòmgCF£ö gñ.Ðò-»|Â"Ô€PX-œ rõ,Q\QLcHñÕô9•îâ’XømLþë½â_tß0•1 ŠN÷ÛC9HD‘FÿiŽÛb$BO`µülÓϪo›™ðÖWÈZ˜%9¥PÏœ oÙ¸>Ðû)ùL=¤Þm˜ò^7o/…Í…±_B,©¿7Öæç!6¯¾&)¥ì~VnÅYjXO³G,Àœf¡>ÖóäËkÜh“Lá¡¢éî ÝÇ’ºaN–Úë]D|`Õþò)T6D…•BY€Å̹›1nƉëõ,Aai¿ß4±>Âûäé3ç»ö=ý+–zÏ#}9ñˆ.û“Š+èehþa‘>Ž`‚"Vb‰ºý"-ÑE¿{¤[ïé¦ÔDü6‹ }½y!›ïÌæLÄ'´OôNXé±xÍ xK' poÔ”/M0]iš~ÍwÉsoai `"7ëÆ¯¿þìψÁqDîWaˆjåÛv³üÇ %úMÒWö°  tWÀ´´p@íb©‚5±) üÎÆì´úè;Õä´²vakÕXÁÙ…N~éÌ“¨èlm:þ…`Ç®?>ÖÚ›ÔQ¦iZ8q£lÜ‹øö÷“&`3‹•#r(Ñ?¢QjYø‘”ŠŸ¿6È*Ò½bhæ \iHæM®üL¼áš+§œs«¥Ýúa&¥ÐžŽô8Hò©©bõaŸHIˆÂ.XœWM׃p "~ÿé¬ÓãOUC7~g{ÉddÆŸ)ò}—£Á'ª¼ÕE·Ït½ñ»w^,«Žo«ìÊ0GGšÍYøYì³Ç0¸ÕElÝ’b†ÔZ¥Â50›¸w 3ý<Ø*m’:÷^Üs¿­× úV[B˜ƒvtø:\•0¹õÇÝé@ï[ Òè¢JEÝyéÑ›Š\^– °  óà £_L§ÿGü}\½2¶@“"ö*sO™nàAðR=^tX¨gûö5xp5=\–Ž·*ƒr} ÕšöæfmM%òe—•&Ì{)ƒ&O©œiçé$;&IèhÑúÕ’.TÝAñzDg¯ަI£ñ`™šè@Ÿùd–æKñŽŽv«À1·Oa|J47:uYÎlï˜'Ý0Yj®nq/‚òü—‘—ûèNufƒ0Ͳ Ÿ¤ù‚ÿÐöó3´PÓë{®d7=SOB ´L,Èc¬\ôòs²dñøl8|©‡ŽvØÔa¦F5d@ÉØÐB/%rKB@èöo‡[mNâ³výzsB£Sþ ‘Ÿ ñò]í©÷tXµ ±z®,Ä)Mb$çê¶#±bÁ#@œa´Íܳ>§Á“iÒk'2qûàÓ¬M¬á á*Ö<|Jé*·¨g_B!Ïè³-ØÛ=tœrá´ßî£ßr1Ñ+ªBèüÈ\<ÀúúGüê½dµ%G”ú§¯V *[t®ZÅ)Ѝ£‹{Ü÷Ñæ¨ŠŠô­h"Cag@äI$NòîÒ¹1d®W%Í(¢øûÓT¬ó RF“`k>»iº£?ØÕv€Ni‚ó:)ÚhLpÛ.ÍÊñ¤†ùÿ,b¨ å8hj¦tëÎâáñæÛ{áï8Ûÿ“¯-ÓGØh×0ý0¨xOq§ƒ¨˜{¿lBüìjµÄ¤©Aî¹hôú…DÉ×:¬ê´ ›éZšþÃÅŠÓ,Üï[ÊÀ2.V#ûY`öfSqý´¯ñ:g¾­Ó¹×ý d” QŠH3ìÍ¥Ý 'ï¤&&í2fýBðì©8ãøÛÛÍ ³‰/ƒCÊÔçd÷H‡ÿ˜¥*öÙ&Djv,´ÛJÕtVN~î°»¾^T<)N¸ŒlÜ|ù®ˆ’SW«Ò£Ø‚í€ÑÓ¸ÇZ¡uûw3+O®dÕp0‘1OggSÃýÄ n+ûêàr7èîÞÔØáÜ×ÙÝÝàÿVæâêéÚÚáæêíúÿÿðÿYÏ׿åíãÛÕÒÓÔÖØÿ€Ñ×ÕÒÙëèëüJ2¿*'˜±Šì{H~Ê®Îø ONËX÷Þ#3ñK0”¯‘žñ—‰sá½’ ÙrݦW4bŸÿó3m R,XŒœm•‡ô´úöý•~íu2f'Ïß×éÔz¹áèOgL1²ƒ/ü´zŠ»ÌY€ UVº·œU}Öé]'<ÜÉž¾ó ¸!KGNöLM´.ùÍ¡«÷ü†ñ¥õ¨c›sÝ)Ô>Je/= c©»Í+Õ Šb3KG»~F(Œ6ÏÄ‘{&Õ4ž9§¡X« ³…JãZÜ9dOøÇÓÄ„ÜTÅÓ¢à[~ü“1u5ýeJíÑöãQ›6y4{FwÇaAáyüŠÖT òc«Þà(éº$äLÃt¶bæ§¡‚64„ŸûfBâ¡g2_%”ˈ;ó6,V´èøû²bùˆQMié›!ÚH46’ß./UntEØäèXäèYçNk äñüƒ“©²(Ô‚³ŒÁoy¦ãºÝö J§Òø~!Ò‰@5Òp\ò ‹$†Š¯z¡!Ãb÷»ŠÞ YÑ;¹lÒœ×_,êdv&' ãáÕº¥S+I:LhoÝÎPÅ“¥=Šü^3eN,•ùÚ"üM÷á$@ðNɯÂ<({1uØ‹µ-ÁyZ-Ë«sC½)qâ–ðýX‰ a'Kò1s4ÝumoÄ~aí¼5Ç(QMó.á hð¥Ï”ÿOÙ‰WÑ¥BÁgŽLÿþ±Ê«ð±å€usqÜ5Y˜] …¿Á9 [WÚw¿7ذ۶{aÐ~H?“ÐÏÏÅHΠŽô¸ 1¶þÓËV­?ùU-ü_£rí–0¦%\“ØI>ûýrèÄÎ¼ìØ·RÒ+ ?ß›Ð[åäQ1ÿ!ý™Ó‘7û›ß:ÄNîüMbòþÜÓ 2fÎÍPäàaÜWéïšÇ"¼lãs£ß+ÁÝ×#žÍç;—ÖöÊ È Â#f°ÝR瀥®vâdI»V¡ìo†­™k²ºA_7¢vÌѨa–¡î+ô&ͪ©²h¢Šš8¬’ "n ?A»Ð{%×ýeΫŒŽlG¢Tì 1¹ZɪŽþàü$O:{2½šGÙ>Ë"Èá> >ºÑJ`pÙùB±L‰œç†M 8ÎY!áTJ÷Ñš–‚é‰E× ¬Mx¥þµ¿ÙöüL¸ä&F”`Ÿßº°ÈTä6íLpZ“çJµÕ#ÿs5>¿ÇŽ»0P÷Péß.Ø[7WÛ`J¶aóÕc”ƒ£ô'é7˜‡¥^†ÈP°óÕC!ŸòÌßv;<_ïq£¸¦ cAvoôTæZr)i=Žpi<<]hOTg¯õu݈€[’a:Vï"D•¾ÔÑrõЯT ‹àbS÷ç5üyâý”ô1VG}bÉC/¦}íÚ}c„=#Âo€Ü2gLÏÏÁ 4Å5Ço²,ü6˜·XŠÄxˆIÏìB÷™Y!#‚i=ffϧ|š,B¼™AÒ²Oj0Ñ%tGÔ`ê=÷Uö1áüq[jö4ÉâÀÕgÜÞŽšÄ‹»-JËòR'ZAM¦‡¥Ñ ‚g¬øT¶^ä—5ä6wÙþ‚ë5ˆÐf—údƒgþJÂL$z šÑM·ÃÓàAO-NQqbxËî-L•ö`Q †,¤Ç\+Yoï-^V·c¶Çù©ºlO?;v¶7¶yǸ…D¢VâEÎ.sÎ îp¡˜s8U˜\Ž1@Ò‡‚cü¨i±}ˆy&¤;íåߦˆ•Þ—qqq×aË'Oà’?ï(ŽÚÁ†ÓÞå ¢pËX¿øÎ]"xÉãšØIÅ”Œ2o•V#½Žº${n nw;QjmLº!µÍU#³-A dÂ½ÊøÔºãu»Óã!³TèZ3ƒiFLr`'ÄË}„¼&ÐÙfÌ`~4¶íÄñÅ.vJDZ­õö“?®Xr çEÁ„ÚÒ+¹êq³[]‚l<¾<)3ÂÎÿà}ÕZq;þ®LȈü82sù–üˆY´éLüL©­ÐFr¸w5Ž£kÏN~ªd·`kU»2[y5“ú1¦š&ΟyÅHžOÈ:á(²ó Q¯qJ3Eâîz9HUÃ/Ñ9(Ôæq€ªˆyb>Å¥àÅsÔ‘dÛ÷G¶¼ ¡Õï„ó¼\Å1.aÊÛ+€Ó€¤‘^.‚$÷!íB͈"¢äœÿ_F< ~”|¼"’.½y³&ÖÖikô_®Æø|5uôÿ^UïXÄ‚i«9 ±*³ªé  ìî´ &ü¼´_Ù¢×ÖÒ"çÐ 5%xx."ýs¥…åG\G@sàYvâ‚To¹[wÐÅpñ‘ÇØD¬ÑÄåÝuPSrz©-¦&Ç-›®ô ºžÀ°ÚC â}áz·[æGƒ…€À^ô³r<ÕàŽY:wËWY:‡ËT}\HÌ3h¡­ty¤ì]+þÌí6Ç]$«€{²’½'ˆM(”ø×ru ‹þh‡DJõÇŸÞ™ö™ “v´î”ÞÃzk_Þ°½’_F8 ‘ÏG©MIz¶`¾5¶Ç³ÉüÌÆKøôÖ ^_!ü½·ôlÕhd÷Ña¥™ÚM^Š3Ü3M¯3þ÷ðªw¥‰Hë¯öIöÁ ›(ųægþe©ôßÃÕóè¸eð…­Z€í$T¹OsVÚ–à €xtfæw€“"TúY¤ "uÍ#ou±m»´Ò c^l§*–‘Ç!ÓîÇ* ü˜´Le×:@£Å/ u½…“2Q˜ÄP³ü§EK6Ùb[¹H Ù”:®þÇhg.8Šçô›Wî6©žÈå~õÌ NÃD€ä®’_×ä²²d›ù&7 ;~ãÑ­æ(Ÿ„#:-𪠆r¨Ÿ¨uÓ¬¯¼ÑNÞO²hÆ-U[·w˜:5ðx>Ššˆï†¥𲽺b ·X$$ß-ÈàÙôkmÄ–õ!Œw‡“<¸Zf{µá·/Q-OýÖ}OlªÆ$ûWôÀ½spíçHà¨Ä»ty+Üøèv £‡áß§`Ôw2óÉLè™faÕnÇ[ÌŽ‰ŸŸü}\´e'¼žó@áck3?ArÀÐÎo2*ÜÕ{;Ç£í’ûªHø­Š 5+6þÓ._«n%¼û1¶ç^j!¸¼;9V«ÈCudŠìë×-Œ®/3¦L±…~„Ez±£¹ýÏT¸ný%•æ1ëìÆøY}Zü’2L¯èžÄ›sžÒ_ˆ•ݸBãa==1–ó·ª%±ºAŠêïk0ÂüË$1u¥|9h!zØÆ«‘°B¸” àôN›’ÿÈ™6/Uú{G§_~Ø·KBL$ᘺTéúW ÈÖ/2ųÚä&x£…+r|"zT/1£Âºëü“Ñ{{g·ñ6.¤vVøV;UüÐ{Ôßů}Š~žuYœùЗOp‘±Œ¦+R®ÇI`ðÓQË/èt|¬‚ðâØÐ s4#%ro‰ß~»ÁcIƒÉý€ºK± úI‰¡üM' µ†ŠˆÈü:Ñ0 –OQ&7‹FÀ!Ú°›q¯%`bã,·êÆ&…ê—¢àʱ¼áQ¦ÕFpû 8MÅo÷V¹tVnÐARÃðîöspïðÂ),†b£r® ³†âž¡ýËNGAëò¥[^¾ã†Î ,bjà;×\Ø€n1ß`óù%q¿E3Õ¥Q)ÈÀMj}Í^"–²ö¤1fϰãÌ4èuuμzö>åkõÓžæG2Çž8Ê|¹ {ô”?d—3˜ñ0ÓÕ|GÌÇ@©ñ ¸¶vBÓ„GÖxy­Riq€üLÕX§{©A¤k~ÝOW= /÷EÈ‹øElûõ¹àíGJ4þï©ÒÝUÕoìG™cžï‡!8,Åà¤`€¯ì^cI+ýj‰uª¨IEÂ.%wF½mùHýJjùB °vDP§‚—€Ý°5/ÿŽ®BÈFJö¯’>ÉI-©Ç¶°åóþS«¸Šö—W dü”~·cþ “éŽà«æÇ¯c—¥è6öM·ôY¼{º-dÁö“5§:„óö%÷W°i"}Ì.œØ*…óÉϯô‰6Y›ÞCîˆû „®·ªŒüü”Þg~¦tÔý† ï{á«9éÝÈ–¬Å?z4–›#„½¥t·Ï´ïź›yÂDé‹¢ý¢½thêüŸÅµÆX¾—Mq!$ǵ0æ:ö)„0Mzê?ÃÔÍjh ;"4èÅߨtpo¥¿)„oãJ®-àŒ·ÿ'=;0o>/h‡ãs©F é‡Ç~þ¡ˆ´3Ç¿0ü±ÎZÁÓæò‡­N¶g6+?oü0z/Ÿ—˜å¶s(]аTžu Q'Ï®+‘§üïjÿBn´¤ÔN32N+´ ¡*8ib;/Ø/·rcüLɱS!øÁÊZù¾p?Äqº 9±/zõD¦Bîïd”­w o±Óâ]ˆz ñÙêR7ØèFLX)x¯ÜõwzH¯œ“Ö°Jù¸ÕiTŸš»6x5¤Ù-Óe·¶ç‚̬sbÌàwº@°1˜/QHÆ9 ۖ¾mÍÀ¡>¾¾0ñ E„©3È1/ó´ ˆ>â®Q¨;wsý´§¦´·D¡)ô™Q\#d‘|ÿ€¹‡ÐöO¬¶MÄbsFÞØJ®Œ‘³XÉÍ´’ÄÔ2 ´õ.¥Ë&óGÙ]²Œoý¶ßÌyÒxB9€\û¶ü½¸ž•öê  ’12Âtk“[µTvv™×i£"í%vÄØEFzÓdl;5è²:Qëtþ“J¯)Ĺ’ŸýÝ*zjÊS“7ËûódBî1÷G*p­€ VÕ-¦ëI(B&M"›™ˆ¥MáköAù$¸"i/Ìó®ý®€DÒvÿ˜:)”¨ ¬¨UÂqhAõÍr¦Õ3Æ5kÅ7 W®¸ºŠ¼XÃ7½¯^Õ·¢‚üQ˜¡b ±RÝg¹ÐªØgRRT©³.Ã`…äí$PÞ=qM¤f’&æJ'%ü¸bó§ŽéV—Ìj³'¡œ% ÅàÛn‚ç{øÐˆ)7˜–åÏ{Ô΀HV¿€À†æwžE€ßMø=I©6©/½—·]îš; ¹æêýÙ§¦"† ’ß s– ¶:,¯!„LבvÛ:hïûÈÒVTjS§8+;Ç•¼PGê#ÔŒÊÊþ€¯#3L®4¥Ò`“Ó¢Ú#³˜zQSŒ’}¾¨¶yè-® WDtªœ¶3Sï4Z ò1jüw–†¾lc‚Õ•œqpDyIÃŘ{$C ž|1Ùþã¬OV;%üLú~ÿ¢›÷ÐÍ‹šÚ+ºþ6wHÏlX}U^e › eB»Ñ¶ø1±¥CùRÃDnYâÓ7¨ç88´S]"©AüUnTB!ÆöÇ=‚cÈQø}3¼Vàa0åù(¯ÁždÑo²Ž,?E#ÞÁ(9×ñ¹ ,9çÏÉå£a¯ZE¡ía²5VÙ»"¿ö³˜Å¿J+" tß#4¹¾ 2½ 1Ê€½V‰ªT~¿©âÂ9\êf; öØ7é6H×c !( ß2­ÌÎüàKÑämr"!ÿ…g¬š`ðAãüWåVÆÌ—tšÍŒÏÀë1‰‰þý 1RyB„ŵ'8.Aàš9΋ؿ£(M§%ÙÃEÎW¼ÐòªÏ4ML»1Ò4ñr!Ì~Òt¸=ÞçK‡™Œí×RV'…ÅqÏP;oļôÿ=¬àmbèMnüÄU‘_V½(¶Íh74Ц9ëâѶ¾ìÙ5 ¢Í2ˆ7YD&–æK…¯&ËiíŠÒøÃ)E°)X­ox&Vée!¥÷ÍÂq·…Ÿ5´C¨Má ie¥ÅÜxˆ›:XÍÞ{óоyÅ0ìûX¥Ð¼-.õ:NXüLÅ#0’º¤ úxÙ»Tö\ÝVDvåùÂcëz&õhd›½þI'§‰Km@9j”•Wëy0³1!—@Ü,N³±ô‹ž>ß"—´®­‘^H…—͸a?R~54UÇÑLX2jÅ:#X¥5L=--²¬í°-Þ­$¥¦êøJU¢?;㢖²0²jåy±N\Ãì„ÅñÈRwYITó»²úeþú .:¨¨Ì)Æ|n=o+&@‡È`/Òz9É“»të\áˆj~ÎŒ``FE°7—m Óõ€ö¾ åšœ_ fz°_˜†ƒ–éE'àü½Üþ{”®…ây|Þ½´ÔÖßeºÏž ¯ ud§w†´|Qçd‘ã»Aõ€‚5ÍÁŽ2Àß#úš/næ\+›˜þÓ¨X€žfí€]«}î¦ÓR¯=‹ž´íÙÝì œä¶ø‰!$£ÒЃ ÞÝcÒ øzÝ;ua¬s_„.ˆó·^9+e&⼿õºU,Ùª@uœ¸È°-ü4íFƒY¦8\kTÑC?uãNûîB!Y•Üöa„K'ôôä@‡y´Ú—#p(ê[Þ¯—¯ªpðä[ájilÌõ={mvÜ/7Úñ%ÏJd°R{«p&çüL±<Ïšse&?næÓ•ÐÅ)<Øü??Ü«”ûÕï݌߷÷­Û@ !Hy•þ1îDš³ýZ€E®#HNÄX/’ÂNØÉµüË^ཪÏE3tíoöH5<â9.—Bò¬XQ¡¶(*ÕÍ{æu{8ÅÏfDLìÌýf¾“®’㙡§üüM“rIhþøW?¬}ïúšÖºà+¥‘bìXûôP䱩nýŸê ˆ»Å47baü8Isq`¿"EZÞ&úiÆ$]‰|,¢•z·Û1Îé¸rÍn úmÉ,ÝsjBpÚ{ü;òäÄ„mÛæjýÑ© ìâGˆ»,P©rÆ›ã;áK‚Cœ¯(•üLµdßq0T6æÉ²~ê¾ùUð[k”¥} ån¢f\¸Ä£G¸z=ƒ „ 8þöeLû³÷ÚïP;Àjø ã"Y„hl‚+§îEÑSNÜ…LZÝ?÷ä6‚lxToÔÛ]þý6]Q}_¤)¥¶û$\§œ ÙAJüÜA;}UZý{ÛÒžF…!-²Î&Pû¡¥ •W¡yþ“-ø[-ÓöOƒ¢?¦eÔgAóƒÏÛ}ÅØ]šÇáðêâþ@ðà[uƒ.ÉÃQŽk]äZ!åÀ%>¨iá[ôby3 ƒÚ|¸²u7¾„FOkC  Åus`æÁŠ9'Ÿ… '[9yog>Q‚±ˆª ;8·Žcoï7Ðm á‡hÙÅr•¶ÌO±¬­zÃæFfJ'ÙÈ(fdÿ%„WRpž.+¶(Tc|wËcCYNø…ªBÛ]¡4óRü”Mûc âÀ6‚\˹6îÔŒ>Ä¥‹¬¦R «=K°vP3\Hÿû‹¥âž¾¾„d•CÓs Î4“…ŒìB#›1æäˆ£Él†.¢q‚‰|IgK¶xvîÈ_"ø¾˜¸kXèÛÖ6n±8Ñ,›;ŽtÇ[ü.këÎʹÓ"·=*8¡î+¡.“oi²?“€) [31Jï)gE%ãòÕqS'GN1Pò¿k¼bwT‡`%å–©aBþ~ ›sa>ÉA¦õ§ßî(7Ê_i,äPvÜ×EŽw$ö×wG6¹OõÁ¯°ûnVꋳÍjëÄÈiÛ(Uê÷4=SѶŠbk.® ¯¤qÕ‡?Ë3êçcöô y}ç-C|GG$*mœIž oÎÃClë§i?sÉØÁa']`Iä³~üNJwªÁ[í"dùv†6O` Ýù“äñŸ˜©r\ǶŽX®;¹ mp1 ü$*à“‘x;S<åý#°”9k ~,Ug¥-H“+Õ³X@ ´¹†ÝšHšwÒ=vѤ¾miYÓ܇“… —€¿dÐtù©”…ý(ùä‚åÙ§ŸæÅKÖn‹~ö–ôÕé*ñÍcxż¨åÃ}éÜÈÆÝ„NaîdÔèÿM`Q{—ïä^J¸ß@}£fÕ9zHXzÆ×ksöo|Ѳñ ±<ÏüM{LÑ4ß ŒÐœ?o#® ÌÍØÂÿm›r’O×Ós™=«}=k¿;Væn³%Yy¿ò®Ì9&ª^ãð¹ß£:í8*6P4ïaðEÞò* ÑE8¡1EÀyûq ä>.'ýp›Ì¢ÃesPßÎä ÿz¬½9_‡2ãæ€È6ÄüžhSÜ™©“R3øÁÁ, Å£ñVä+þÐíI—ù™”w*i}¯uºt`8Ð)œÆW¨°¯ùcr„ßÚá0e`µLÆ–sUÑt÷Á¼)Ÿhœ¿ 1~“æþ>Zÿh7;õ7üI]6eR¤r¨˜ö 3Óüè]<™WžÍ¶­ìç2[=܆N¤àÓÞÐ8ÐjŠ(6­s€Ö‰bäð$oJÙ–nÚuõ¶¹¿8ÐÀ2·•~x?wBˆþ+ZÙJ+OÎp #‡å™Ën|€Pé`CñÑÞfÆ}جŽÃ¬õ¸ŒÝ(×ã÷âhIOdƒFbôÃ,AìC™Q’Â!TP¯ùâ¿á‹ëbã÷`Eo¿GÔXó´mgl.wãô‰ÜvAŸË±½¾À¼à¯ §(û3órÁ?\Iò¥§«Ìä·k¦öù®Cû‘›7süM 3j=;㪠LªW5¶#C€»Ô[31íAzÎE ['Ý—Ð1yûjÄE5éý9CË £þãBÏ$z”¿.U¬ÙþŸz«Qº®¨jü¢•mÆÜ$lA8G‹$ð.³À‰ž$îi±RÙ± }6 tÒˆòt9‚Ûl¯hJdUe/Ã3î†Çr™E*Yâ4¡A>»v`Oõ‹ï1RÌoµ‡Ï$˜éLБ¤çŽó¨6@—mý‰8š“½CMVqI´ÖsëÔ7¹¾/‚MܘDF€¶¤Š?T€`}NÂ%jü/Sªï~ÍÌé°"®Ä¦Ú…ð{ÜÆã4öž¾‡Ç-®ƒèãþk×BklÊ”»Úט­p›Ê6v9<ŠJ¯kÿ=„ü¨¯iüÆ…x¥Ó§a?'ï&Ô?ºþögžÙá@e›‹•0s ó ©ëæbÕáQ³ CâgågÝI¹ þÂv½¤\D)Ùa.Ž e9{™Ño¯KôX¥üL|?iòîk_Š9¦&Lpc]%,Öî¼Ïôáöh\/ãyò6ìÅ‘ÕÖó™è ‡ ù M“[ëÖè#?9ÜÞ2t¶üMYÌÓ!Úg`¯5›EŸØA¹ü»ù•–ç@EÉ…¨FSlÕ·~*c×ûÌÇnf†—ëÐ!ëÄš@±«Së,Š”™ 7YÃ2ÜõËø§ÅÏñpO$M°’"¾”¼LÏBØóçºÃ×ê¦/|`„’S H|§¯húö›(§W¢Íìàcx…ëÁ@s•î!xå6 ÁH•ŠªÈýÉsÛêÑNòIg·eŽok;nˆ ·YëÔ;»”J£@wµUh!Ë­b†a.“{a·D§ÍÞ¹Õe$üLâ‚›M|9ð³ÙC$µv VÉ÷_¼I<?ëf[ë©ìkŸuòtJ³½[ŠHmeµ·oA'm=;kñí°ÜmxåXb¹·m ;–ŠLœÀ &K|aU.ƒ{A‰ÍUwFhÌCOšŸ v q=§2Ë9En$"óÛ2Ux—;‘{æ”gîL*öçÐS9ÞÙá½ÿ°Lº*)ÔR@¿ù<¡Nê'=kæ$ zÿDzÜ¥œZ…µsû‹»{Fö ëLw¡€>é7ó}*Âéü/[?p”üpÐë¿ïŸù|Mf´¹lpï<¬(‚À©UÍÕŒ:ŒÄ  Ú\Â'mòh–Å]ú3˜Óˆ×G4?CæIcjãè¼X\ÆZ“ºÌ…o\FgÐ5ßabí¨Ú¯QÛ­È:ŽäY{àâQêífÇÙ²‚åÍ{>©ç‘€_e Ûd Ù{+‘;,åÊÉ=æuX9ÄX GÖ÷N|^~¢åß¹5„*j»ðÑM!=YpŒ‡Öþ4¿àc¸Z~Çe$ã¯ø“ïñmÙ¿üL½j£¤~²À뜠ÍÏ«ÖÕ$x+Ìã$wVè°¼ÃÁ_õx2kRÛöä= ¦ŒYnXIT´Ýì¦IÄw“ SdÊg4ÔŠÅkØ–T a§œ¸ClâE9¸5hçºWuTh$´þ@¯õ}7ÕårëP4¶ eLê¾k+»‚Uà­agf’a<ŒÔÝ™r «hñk—EEë™ÇéÕE®å‹M“Ëé”b¾¹—ÙP#±ª9¼”Òë“ï´è‰1:àaý1 ˜A0¹Á¹üLØÉiÿêæmq”­©¡ôH‹«+lX½K‰CyÐËœU­Ü땃'˺ñ· È…ÓÅDâ—™ø?„À9ý^g稟Èו…*ðŠ‹ùL¼µî‰•%8¥~!³kB°~v÷õõË”ü%p€‡ã\ ¨C[Ú‹JaÜf/YŽý9,áî犪ð°¼ÞM˜[&ï¨ïP¨Šô×\fxßé¢5­Ãõ%»ÖÏ[˜–!Òú¸SÒ̧2Žüç+0¼¤<ê´W¿KÉ›Z^˜d züýÞÜ*‚·Ž³,pZd…FÓ(#SÇ7·œ )¥¢WÚÒ¨]Oßr鹃ï—J"]ðÀÊ,j Gè[Ue·Ck©Á¡nÎIzÕÑ÷PÝj úÄb¢±;èou V‡”õÏt‚&ÍìØ p²iÛô^;ªÔ1ö¥;o©pGtzÏ Ü†Ùmx=ê”k9Í:ëÎN %cxbT»•Ľî¿ñ’û¤>ê¬HóØ{P袱{ŽìÈJÇß¶ +  wX ˆ¡fzë‹+m8Á{–¸[ƒ¯&Xüý߸²üèêý0;!T”xaN[žŒl<³9õhII¸Yù  ÏOçOO•ç¤~g[}´®—o>- †Ý£QC(1|¨s,KºùöqôºÚ{¼4Vö;”: ¯^Þ´AÜÙô¹nwÂÿ©ƒF+ËÓzÇŠ'¢Öè4¨­e1æÐk¹)_ÊuªEnÎÝĨ,‰ÇL›íá~æØØ/¹%Þ[ÕRø,ܵ—pÃú-vÒ5­aŽg|œUžxQ˜´ƒŸ9ªcã?Ûÿ§M>ÜPpm[ü}´_.¨”fOÏuVâã{°Ôó4Gj’Py²ï å¼i(‚4æî˜D¹!±Ç1`•õ€`«´` ó³çà"æ³Ýì¯*r.vêÚþÁ/ŸBT‚FÆù!eƒŠ›èŸt9ºOˆš:~Tpxá@×zÊlÀÅ$"?nß[±ÐŒ'ð½*ÕqÊa,N2êü~\>¼óÛp†x“³Ü Gù«˜´Wȹ+ã› ò+Hõ}Šb0 ¥šÜæú€©üoØåˆ¬–HiðÎçU¸Ý, õ‡¡ûGEïVü5ù32Á€ž Æ,Za¹>ioŒœL8æÎ°êq‚ô [HŸï$“™%_ÚÈüL®1)6J±»\6ïv‘­ùr§/¬Ó³ÇÁu¢ÆKfǤ!át¬÷㤾ïÛ¸žìÀâkúx}æ¸c‘f@KÍLxe¸›ÊÕٹյ̫ÒçóÕ­õäãr=€³RªÀe`.${Ê4£ÉnpÏÐÁÀ æü:ˆ…%‚%>ç¡3%É—wVmÜÄ"Ó] :`41©Í\ĪÄ`›Ú8Šèßß«íg¶sý™ºö`i²í:³!†È<†ú'wÏm›‹³ÏDp³±Üê¤2ü6kyo³€+?ò¶(ÒŸ¥^”’çßFrk÷°—7¥N4÷ª%ä­9ùe Ž€Ç)¹®–wWÁަ­w-5WDùQkÆz`cyÔC7iÙ·éÓõLJ6³ë¸zÛ(G&ì\D‹açåïкá+} GßÁž"$TˆÛrk·µ®æj“º, ÛUyhÐ…¢±ûC:¹$Š+ï á\F6û¢ ëoû¹gqè¯y2B³SZü)taТƒ”« ¾±ëß•q Ò=ñkådoÅèþô½LF'ü¸i*­È¼ RV¯.qSÑÕ4K09!E…áA›M•;a$µ¸ÉY“ •çCüÇ>È`—y‰%ËX]&t+šä[Eñqî\'‰×Ç+³ÝÎädDÉm#î$3_c ó…•¼þ£—µÒlŽÅ^ßúôñ¹ 7Gê@ÉñS;ѦëSþ1;¡‹Kû[oÉnV؈rðö¾^ l?[¶¨ Ûk ÒT6 9I |ý)ËÓ/ëÃÙ¢ Ñ£‰„Û#$ä0áP‡ë£?Ú¼«Ly*R‚–ér J9þN~\&²Xן٣¥þë©e±î õ;ü·Ÿ-¡$²?ü×SSeñ0Û+„u6k¯<¬Ñi¤~U\2…!…©X+Ïcü£Õo؉4xN_?IJâ_ÒϸÈáè.ºÁ"8¸èoNPP•¿³ÊkÂ8$P%ùib[Xƒ»Ã1€ó­Uƒš Dš‚)„ÝÆÄïØ ûžŽöJa· %»G’K«Ä»´¢ÅNmÛÕŒî«-Š‹µÿêŒÀYQ>Ž.ñŸø¬Cñ[›uvã;ºF@ñrÐiÍ4W€sZ O3 8æ‚Vˆ›šš1ÿO?D ‡0–<„ýýÈ-;üŒãSDyãš_X}lEÄ…Üï×Óƒ•-çtÀ’`ßWèdð7X¦:|Ñ"Ó[90à/8eäWšÕ[Ø?ÉXݳã,ÄÁ«š–ùš™Š];VïP –“¼f€þE 7*FQå î>y–Ü8½ŠábR³3H©+3G„¤}eHâ˜f¼='CL~¶ÿkD9¢ìÞ<–p‡±O¿þƒ '¯¾ê~sª>?mÖÅ¡gD²¼Aí{<‘AK±õèèÕD®¡k}M®°Å°?YJå„ÐͰûŸ¸k„-½Î+qüzéq߇í"OggS€~ýÄ n,îKÜ¿AÿxÿøÿÿÿÛÿ ÿÿƒÿ4ÿý÷èèäÚÞ×ÿ¦ÚÓÑÙÐÛÿ9ÐÔÓÔÓÓÿfÑÔÓÕÑÔÿ%ÓÖ×ÔØÿ:ÌÖØü’’·~w9ÀÆ„Tê\— ^.X«n¼!8d*ØñÇIn³Õg±utµiÁcáYÉò,aJ.ƒ™G öÚëdZ³8dŠðŠûY±»‚D8 [=”<‚3ÔþØšpÂD;y^S®C0¿)Ò¸9­³/¸çðíªUKѲß# ‰²®ˆŸ˜ÍmÆbnŸì]^N M½<›ƒA‹&_ˆ©ˆäLnÙ|W1Èóyiû+pÇR„»øâÓ43a‚Y¯—úÎ/®ÀF=A\œ•ÀW:úH’YŒ‰ð¥øâUHc¢ ¦Ì[­Ê.$ ãÂB°ŠG7@Ü# *OLL~ȲœF³$« ÖÓúR0öýbkSƒM^ˆnð7vyÛ’ì>«ã®gmRtàpf|×.èäé»ý„i¦ÁevVZ¶:eœsà¨ÅÊhð· MË+#îÈZ‰uî“ËUˆ½C¦. ·ë°_–|ÃIüL¯8{ ãLß‹O{ŸÔ¥z°ŽJTfíOþö³ tXç-$€#Q¦Ëî˜fR Ź‘ÁÅ-¸÷ ²ðXŠL<ê¹tc“À ¬–¡øš¥å/'Ëçp‹t0Ç€kZÕòÅi…› úžKÎ4ËÒ¥ÔF³Ý!Q6ðNZ‚¯x‚ „XjGÏÎ&Ec¶F“+§”¹3‹ÿê“<§L¦OùÖÁTÍùÂóY² õ€ÁDД|Îó§e ‡Û™iâÒg•,%“·5ôг²‹‡ pd7Ÿ^°º4µÌ-9iÄÛ1ödÿ¤/£’ù%+ì0EZHç$'ù|ÊlèâÞÐ $Ž&`[kן”6[ÁöF 8H¨ÍªLCÕÏ ¾‡”Îf³÷O7ÂìŒ0(¼Û•¨ˆX‚çˆ[oH„;–ÞÓâê’]T òÞí›éÍD^tUAZs…M©Då±V篃¨'• ›ÜSuš±ê¢3·¢’WPɈàüÓ0É šN‡_E¯³+jOÛ$Tw:ª×‘‡‰¹žë+PêV'ºˆ#¶I"”p#à›žÍeïõD@‡Z‰º{m{„›゙.7A¿7¸[q˜NK¿!"§à—ÁhȆˆì•N¹5Oï¨=‰ÚGœóÀX|‚§ÈÜnè` =X`^¬=á$)œ5.y¹–${Í9h9¶ ^rF¥M|“`[5ÎÛümumò°î25’áLUòˆÉ—uèÂ^™7±C!ÆËslC9‹UžFÖXã·FÑ­šúê“êºI.À”ð 0òˆ-Åü6¶œ×ô{žhè¢0À`¬cç.ˆ²ÃGc \Ãnͧú1ÈD¥ý$óH O½¡9† ý¯:`Ö: œ²ì©œÚCfÞ:— ÎÅWi"îÖ,)G¯ª‰‘ &šƒ)?ç»õÄš”!Í\k=“¡@î´'#UY'úÐ'ûèGê./üÓy ÁšåÄÐÓ64|R³_1ÚøìÍ=8ôË@…û26s×cþCpŽ@Æ`ó¯;÷ãH·dwŒ Q©±Ïí¢ZÅèlÐ¥ŒÝ?ó !Ó$óí¦Úiê©ÑþNvP†´øÅ%}P³}¨µVxu¢§‡<úضL¨•Í÷úÖh<,ü‘ñàS;¦¤¹iŽYD=-Ð[+„‘¨óƒ(-ŸÐ]ÏGó-¡Kˆ´4qG ÍxL‚êþ¶up$V F—XvšCÚ„ãBý 8ð¡#ƒ×r¾8Äþž‡”˘&+»>Uüܹþ7âÞè~¢Šë†Ä£‡ýƒMþ‘è¦K”–²êÐ}¯°såk¿ëµ¥ï`cÙ±7÷@ËøÊ”mצZoOlx᮸®rq›¦­³‘©0ÜY,æ®\‡¼L3cHõzqŠÃ~T{+@ÁËC„jP0{gÎñ2c°‘yÃäô^ƒõÄÖƒ›ãlә̹ò÷aÛ¿.˜@% ­¥nÀ\?RK5Éü•107žðUÊ*«q–0ÿˆÇ—Ⱥii{6Œ»ª2Ø¡÷;V×k׎úý™ÕfÀ, ã&6ê}æ[  v1®Ü2¸Fl\N$|@a@ bâïºUõv*Ýîg‚‹í7d¤ˆ)ÉøÀAt¤ZZA‚ƒS::ëïôŽ/‘¬+ß‚ÚÄgèúðñõ²Å‚œ‹+ð¤)AÅt¡ìÆ q)Ý T7¤’´¡½q.ƒÇ-¹$åÙ[}x@zí{¤÷<[ÝqĦŠð‰ÁŠ·6 šd¤ó^m?œ¾Æf NÇÆ ÊZÅ­þ™Å‰¾~k½rŒÍÊ$© Çc<ÔÓªŒ°ùM+*´9âW3rú»,'øT(úø2¢µ6nŒñž¾¢‘u¾y«£cMvÚg×PJ“’: Ñ™„¨“þÝ6y®: „â "2Â0l’? NÕWj_|]¯õ™xlÌn×ÿ×÷šb¶lÄÒ×D!ÕÙ•®çŽR¹`'E !Ú°bêTú^|ÃHÊI£Í =’£ÄL —A‹ë&‘¦æÙf¯µ ªmÙÅ€â©ÚÅÂøáœ{e¯ö—<6_åÞõê„6Õ³DÃSSÇ„Y+j`‹ !ü»/|`öHt‚‘nñ!ºÖêô܈4XË­õG82¢î–qÔTü ¦Gã¤a¢™¯K!™Í÷!+1ý­¦ÜÂRñŒÚC[<ÓÓts9 ¿!N½ƒ{"êdÈtÈîF¦ê~‰oµkâya}<% ×pP “'õmÈ!ªˆõà×èBÔæÂXTvâôS¾T§[˜ß8itäaϱÝ9›2³'D6[ÉAMDN¸¬+ÿü‹ã®²d[¯ø¢icDõÀ•G ʆL!•-($5÷ÇgEž¿o:r}“ÉQ!™6n¬”ÇÛÉv˜¾ b- äkEœc8¾øË[jHUS7“2z0ÈH¶?¨ýü5.„U½"~eˆwRéã¸>U?ïÞ¬ÂÀV»ßø< …Ó÷#´Üë±æcŸH®ýÏþ¥ÁjkãŒl­¿¨éÀmÆ—Æ»é;7k=ªã+¢MŠä{ˆïýÏ—69bKÝêÓNwCâê½ØŠ6çóÛ]âZ–éðׂîשQõªÇ'ÅÆÑð ÄQÏÔ©B>ïSG–ôý~è›zÃ4E QZþ}ƒZy¶ÌÃçÚû»©Îe+uÞ‚_ Æø.¾Ü`°…¾ä%%Iõ ªÂ«vú¾5“ÖrÝ\ååª9MLæ“úÜøž“£}zŽ×ò¦÷$c郉 pE>ªWBëµÿ“[Ô™ûLRâ&[DÁ›ü¼í¸ê÷†3ÆV“?ª@úÜ*qóõôŒtDT"äMA²íç~cPAúÊèaŠÅGðŸŒÀûÄHN³ÉI³â•%29¨:öD»ú‡"—M­„s‰5×Âú¾í0  À»E®XMdÂÏ’qh:Ÿ"Í««?1ŽamÝÇèŸu§s–O£<‘ÏèìÁ7‘Šæ„·³NnBE‰»Ä­¨‡A¢a¢ðê^—Å3F3ò'. οަp°Ç—¼7ÐÝÄ}7loÌ[Ùš­þÔ0â*ùå}ÃLCA§˜©†ùÍí¥ÝFû(™E=Š5¯jöò%³¦Tמ‡Ç ÆÇë(þô½s5HIWZ9l•}ÃÏûѾíÎnr?ª&ìu!Š#$›°PI-µ›m– S ‰ ·snóÜ}w!V©S}¤¯y:{dX³–òýƒ4š•Û÷Œ$ž¾¥øø©ù©O')&¥ÖôúoÉ•Q&ı˜òV•$f wÍ{ü¼á°ížd„šFqwjç±¾ ^>K3KŸ$È;ÿõÃeä¢v’}ÊunÌ5k{¿;áõ ²z´¡ï“X$(­6¨r‘Ɯėà/é÷ü÷ÒNc͸i¯ˆšæ™»uzDì_ï%c¹Ä° í©˜0¹L@ ~;¨¬bìû7˜,ç.¶–2euæ]mÇbSpà+«‡R·)£/·Û®péïQLÆ"û×5/£Èµí>Pþ"1—–ll< ¹q§½B*ÍöfXýCQ€67™0Ø\nöŽgÒ1Ë¥<'©{×5#S JR(?ÊéE¹•;Ÿº€¿ÅÚW=òn¿Â õ«h-S¤©Ò]©ËE‡°J=<ñJ£¨nb?öf¡ÑT<Û xo—ÖßÌûüL¾ +†Âœ§é,‰Ôà™¾CWy*¸’ꃸÁÀI©g© áÈSo q#þàB‰ØxWäV‰8üí‘§‰Ðsº<*‘Ae®Ì Þq4 ÿ “íçæ‘ë®/¤#È*Âíˆd.LAÇ$˜àLþÑo¦i‚¾Yå•к±4¸VªúdØ»#ó¹9{X)Œ#¸›Òÿåq”öûLDß;Ýë‰Ôº­þaþAxc­íñ×.ΰ?Xvì'ÚžñÞLìQ\‡ÒªÐGh"üM|¦¥Ö”Iéøw„Y¦‹x–[«i¨+ÀÙX—Yk$\»kLýeçnGpm˱#e{}TåEl­w‘kkÔRkvlæËÓþƒh³ö,\fë‡õ£0‹·L² “f¡ c…ÀÞRÕó‘rß"ŒèpSÌ&Å Ñm¤ËåÖÅAf—·ž~„ö<òYͪñªÞýJkàùBk:ÍÍ!~È"„¢â©5âU« ÎÛí ¾ï\Ì£‡ˆ¹Ê¸§‰û†”ìšèE–Uh(Óð‡ÍÇVô«³R_V¬¹^sŠJIŠ)ËKJ—º$”cøÑZ2ĹË3–u±"üLÌ› #S 7ùÍ$öÑbë¯fª÷¨ýl¨Ðcç± ,ƒ ýX}±«òi`ü’1xƨ“B²ÂÈ6Y™‰;µúPññ©<Ý€4ôý¡[öàO"TÍ×÷U¹f«¡p<5.§Lñl¦…±)¹ì‘î¦;êÕû éfZ&̽ê9_Á+ávOü¥¢}f± õ“j.¢íý9áë…}à’°–ø|xŒÑoÜ笇*&‘îóÂ-[sh8.|¬—ZP»êÉk=*øj¢¼.fÑ ¾Š7æè@®ëDõÒöµ¦Y’þüàË;°*FQ‡ü6n™¡êñºÏ2Ñ—¡vÈ‚-‡}+°ú¸Ÿ-L‰Òâf+ø Ð( ñL©2°_ñã}zlï!2GÓ~‡ŸÖ å>ºá›åR¶ZqOÜZÈìÕ^u¦è†+ÏBš”…Ž¨Îâb6H±ÎŒ…꤫b€ŠrÀœÎs~gÖêž¿…Dã¬ÓÓHÊC¶ UŸî÷ ÖÎ"«þÃNÝ;íûDÂBŠy f;(‰¡o5 ‚#Ñö¹aÇKë¢N-tð­P@ú\š9ÚyµYn3Æ™Ébè†jh”üL˧m:÷ÊGÝaìj)TD&`¼w@© óïýµzÿ" ´³í‘ð #g’DÈÅ…V!XÜ$IãÕ‚Z‡ôs£UtßÖLDÈ-±(âWð,þ83¦°×i6䕤~•ÖÁÓ—f­ \f¼‰¥X%±íĹ³Õ^ÿÙqÚyÿÄVKè …] &'‚-„ê‡ûŒà—ÛšÙKûÒŸpð)ò/žå Ð/™–MâÆmù@­Ü¦ñ¸Ž–%‘¬‚s‘ôäøˆŒ›: xIê9>£U=¼˜“ˆï­¼3^ãÕn¶’ü¨k¢[SdT"ÍÛ¿X@ÎTX&Ówüð˸‰”ã¯LŸÐ Ï2òõ‡ð_3Qösó€taOoy»Š.Ç~Ʊ”µ Œúå ç$_ËÿN ó+…éµOo(’fKk ßK8y¾ |¯‡ÿHÜ’©ûÆ6Ç©}µdrÎØSø ú9>Át ˆÈÍÎÇÓÚF½£åý$r¡#€870èÆ@°³ÄÉèàsè×?8üô|òYÓlkW¯z¬×‚‡/•Ùd. lO5Yk–ëp;8]ü°Èß»™ÖUvgù}÷ñ#°©“%Õó7‚‹tÿGò•ÛÉŒST•lš? Šôjó¿SrÂZŽ“š •úÚNÉ&„öxÖ‚€cœ”=?©è ÛÛ‹70žOŠ‘¯á•”}úþâ+-å’ÍÚ=I*ÓüVñ1#Ìñq»šBwÄ2O𼽛喀ï@IŸš3 ÇÀøX”Pµê"õz·Â`®£jš¦ñ õUúçöJ~šóiéã;±q[ßä.DuvöÉøRv=lõcÆæñxæÓŸ"Ÿxʉä}´±)P ‹•ê A³üÏÊRõõ%”âçvJýÈßþŽ>ÊBãS8?†þ”ˆ/¥èM³X³†]nâß×Iž¡}zó_³jD¥L~•øŽ“onù  6)kÌ÷y=4¨ó“>&]^ºª]Òt¨ )NWIÍRÊË %Á|Û·V¯òžøP?‰R |tkØ£ =ªÀvü”‡°ÕÒ³MÛán,¨ÝZƒxâBÎÙzD‹=ÉïÑÛK?z)r«"›F¨h|­jI<y¢ßë©Ó#¡$uaóæÏo­=N‘+TïiQ& ì{äAé\JÌì½%Ï0/ÆØU˜^k‘nÆu€Áûå_/ÃK¾Í*àaðG žºùˆ‚+™ý°‡3‹™ßj.3û˜TuÑi76®íE“ñ§gÌNË™£ë7KÛ·Í_ê)Ä™ð^áùŒÔ% yP‚°^ü÷ÁR¦¢65_Þ1ZxÞ`Nhÿ¥»ÀüNL’ÿû=æ¤ )ò ʳ ïÈ29AÂ’eº²¦VÛƒÊ;c´g‘rÇ”@ǵ "x Uiåä²_…êñÔ­+þ²QÇì-Þ.rS—a¿‘é41çN CÒ¡‚l˪íc"³röX_£Öx¾k7/5ò¨IŽëªåB— ‘¤†®à,Äœç¿ÛM .'k ĵÚÝI0÷†£®`¼%Òqû½yWû€˜ƒ‘.ƒâ¥7jÛDgzýËâ)g‰ ñ —È(\@ øà Éâ߬EãªïõÔ€ŽzX_ü§—þ²ïÈ&«»ë5®“wM¬Õ§;ßœü‹¢-W¤ÇÉÈCÌÅ$r±“ H o¼7t¸Gò”Á;²ƒ<¸`û˜ÀkÿÜÞô©™g0°uÚ­¶\äÀïÙìD, CFÚ\*â»ò ¹ÿ‚þæH‰ŒÞÃú9Ì|Ñh46‚`Fp•¡m+f/íQCà–Ëôq-Ö17–+~'4–>ç! on•B9%¤Š¬ÏŠ[J†l éÅ3?eߟ eV²€œµN¯Ûä Ú¦Vöq%¬çRüL½Rß¿ËÆ4íoém$™©rÕµ‹IÚ4©ø}B0í†Ä9z–ß‘#â ó!”F(È#" iÀ@º1d8Ö0~|h(€»¢Š{E—›G2:ØÈ”™£ºrº¾UP8°ÎT'âÀ[8j²R`þ–1Švl2´¨QZÄðuï½2¡pûo%FW+ç/Ç/ï죖}S¨Cèç¢Xí -&ûñÕÑ`C…Øcbà(ä\P+ÆÆ}‚øùç¬Zûõ¸Ýd¯C·aˆÌ°üÚúÍ¥[Ð3Šî7–¯ü5=Ä­“ÖZ@…z0B;Wò„øÆ}ŠNËÀ:É…ƒº)é}̇¶ïN„E¤K"yƒ Áíiÿs6½øÅ{©Ë¼åY:š á™ z³R Ý&Q<½€“ýŸ¨±ãç;J¨Ü„U!™†Úäæñ"¸üK‘¹Ü©™*JÅ7@ŽþTý£ùâI/è ˜ª€ààü<õel¨^ÊÈ;e€)¡#ß#À—™pL¯Îïéi·ùˆå¦Y 5!%„um¸ÈOB‘C”mBGT`Ä>hüšü½Ìà…¼›«úW¿äKß âež©­uE½:ÆŠøèB ‰YˆÿòX éßyk½è@ýnÄÓÙ‡´¸œ·Ñ »µV¸ôl$P+€;N¾Þù 9—Ù“€F0½«rä¥|™ù[]öÔ—˜ÝR0L¯Þ‚m˼I¬3ï ÈVаÈ%ɨ¢S¹|“â-â€íïhnåâÆM^$¡Un~÷tød®&:ÚhçOœ$̬íO\ê`²î!a$LñØ÷.}ÌÖÐz’Ä{EdgeßÇwèê=¿­ÂCÔøü{=O¥N…¦X/ì–ΦÙZâ÷Èœ’Êñî]Øn Ÿ6³E#Aúã}·H¢)Áz ãq ¢”]ìÖÜóÞŠH"ÓG9(­;Oqµ"æ@­ÙóOŒˆÓg €#ÇPº A—çò”dÏ®P9òÞ‹#H¡j*òÌ£²'»Ù;|QÃU†ÎØC… ý¬iZ:ôöÞáøŸÏ~ø˜5xܬ˜Ž¿³Ü~ÄÖwŠïlx8p>rvrƒy¤QõßQ‰øÔgGX¾fwZâ#¬“Ê'åÈ=Â!äŽq°³|ôÛ%ÄÏÇÀr¾a,$:Ê`ÚéL8×F@Èœñ»{ZfÖLQŠª¿ª¡!tüo³Û²V <4L4%ÿØÀ ÅIëÓ©>1ôS•3baÎRC¢#C­ü.o%ý3á»Û­Zº+§ïñFµvKjï]Ì>ÃÚ@îc–Ê’ä°ÔøÄrÇÓ÷—Ìÿ0úrI]ˆ'quÈâo°×¶ŸP¯*³ø4Õ–¤¿…†ØáÖº9¿†ýXÝÁ#šDðèœM¦îÐ qfT+¤ŸÑ–hÀ%Cù… g0lúÚ~ðqø¯ŒÿÉ”¶™ ?*BñôÌ!Ä¢ûXêø)i‚Ä]6Ѱ%ñ:Ç+¬‰!W½ÕT´™VhõM„HU‹(sc²0PúYZ—®D»ïöAŽüLÝ9…*—7Ö`ÇÔŽ!XÐNw4‘IV ¦ÜŠsMá•‚ØÃÑ^ ´â§Ü°Ëç/„ÐÔD ¾Þ"‡]bMš&ç}îÂ(¼‡Í?«è,ýµ_ú‘XÌÇŠÉ»\NÝžÆßZψNíæÿ©VÕ$¶{×Ñ2监êY‚ÌÍ´PÛ6ÙŽ™Ã‡7êÿäcïŒ!#ZæßæL™syØ^åQj{ƒ‰ 8ÁE©_ô’±ØôbbØR¼OæS@àôñN§i¼›WãoÓæÓ›Gƒ—´Jñ7 7+ÎY I™í̯n]M*ÁûºJô½I£m¿þ èEVÕBb¹_ŸÖÄRæÝÒü(ç¬Yïó!‡dÁ£ŸŠòwžÍÚKF5„ ’鱋FœÇ®Z«ñ4¿4òdŸä\*TI”­aÚàÄêC„̵JA Y·N¦ –›½œŠ-“Gjå¿Z-Q8÷Vîct.3Ý+Þ +Ñà¿Þ\Q‹u” ŽÑ€|áOäô®P•ë n¿à$GÑJ*aËä$ BºákŒâÝ3uÌ$,/´E|²¼|\oÚ,º4æ­DEµy૪è¸ÒüM%ïªw¦æÇ$å¨b#”Y¸ø¡dkñŸZœ¥]Oæ€ø÷§ÜåÙ7è uŒóA¯xBÄsÑ{ýFuXÄ¿Mcú7ŽA’wc{ݪ v-é%H8JáÐppd¬Í%¯«ÂájÁY-†–¾¹U#aÈ-%×Q£ƒ]åfªvôæ˜|¸v æ^m6'Õ F«Íuh†Î©üOx½¸<IÅ‹‚í Dé´<ñò:Ø6ñŸF_»#ºäÕüRÇïºù ƒ¾ÉKöRï¨8Ó@Ê_²I‘<3ÂÓ˶dôȉT^)[XÕL8cÑeRäà÷º„?ÒÍâ§vKCzjð«B¥Ž^Ôp#£¨j*²Ö³ð ¶ŒÍ±­…S&s'QøÝzÇV1ͬ£‹K&ïhˆ”ˆÌ ¿z˜y‹Ôw†{ñ­ò,é²Ú%eS è F¼šÝ¦Wíš±PŶ<èRáÎÚ,ß;®±¯]$+ zO&ÈÉÖÑÎe„zî^zë­xˆk€„\ïLø™üJA²‘4îÃÙkçÔ¢îô2Ëa½O~M ö;Åf¡Ç\Ñ1{Ø×~KT"ApÍ]QP¹zè`bm‘—Wõp0Ò5õKG±”™!8^¨›)àªé‡=‡Mµâߨ:ßIˆ!v…Á,ï—f“A·ýSÚ”èððç7 6ö|î¾ÝT[–ª×N H>¢RV¶zAªŽa|˘UñËëX•Mé!aÖr> «º&÷B=J¶†[ý&ŸÝƒ&΂‚m^aaõ#ºPá¼ÎÕNüM£ƒ°ÅžA§@/ìòž½¼¸¾*¯’©þ]}攋ªÌ#gטôh߃‰ËÛ¾8뚟4š‚iô9T8†7ÏûÁKÏŸô NÈÝr£±ûc¼±¯Â å´P³|™"u|¼Ÿo“©û‰PË4Æw ò[ÍO‹g-¹›ÓLHä5%U)7–¨wk.@ºURñ–Äù…"¾_³ªJnÅ»E3?Ûd·¡ô7„óŽÊn|¦f<‚<ÚåZ­@bt)Q‡Q0]Þ5¨¸;Ãq¢óPÄ¡‹ÖW~/yíüMb/,ôîùÒ]Òò¾=‚ò“Ë6™~?NË0jZTñÀŽ`¦i?ÙlsÔÈ‘Z;gŠåu=ïÌy\Ã(…ËvªÕ<}¯š‘«¢õ~s"fynmâÆÏ¬'ðë% $Žo¬5ð-Ž¥’ÛpÂOj«¢¤Ѥ5{2™›à‰ ³g^L(q‚,î9ó"Ö‡9V˜jj.R[r5zÉȱrux&z÷‹ª³ìáÂuÿÓ”™XM„ïvìË&õ £©P &áâ¬øÍ÷ª¤wzüL°QH¡KÝþš›„OׄKÒ#TŽ«³xõ÷s½G; ìgrOÍÏ6­ï^¯EÔw×gž«8v’…Q±Ÿ¼*è\"]ñ¥F|ZètA ‹º}X;bš}YZðd©ŠFFöõ¹æzíPùþòFâóÉ/ãS€/½!€}œH“È3Aå®UÎ<#ÿôíÀ#hGYµTuCŒ:›óÊ`0ë¶1ÐT‡•ÂIDåvÛù"Pó.啦«˜ lsÄò¼kh´ÆS¹| â}Ä6ÖËÆ9Æy‘¢É´üL¼RõG‡ç2Úß.”e‰Îryó3+³¸òû¾¾ ô`¸EN úUš[¾ÇaÈf€{äNkÆEÀ²½ÀÌíCî|ïàkE[„AäLŠØÀâµuœί¡ Afn×þ?‡¤,QŒSˆ÷OìêÔ ÞÞ“/©Æ¬wÝ×-äU\hf’ˆD¶žCü÷,MëmxÑR9üaŠF­5)µæóÒÔH_ÌóÉ!s²|YyˆùxFP¦Á°±@\ò¦‰8cóØþrIãµ{˜i Vü6‚Y½dGN&‹AàñˆŠiÁ–‡Bö:Õƒ‹MÏ)¹à]Ø5*K¨61Üùð® ]9}üjÜU9£ˆG*A‘kL©`¯£¢¦ŠákCß ß?rZ ’öoMˆÁ°<œ‡†¾i Ï{_+'ŸáŒy¯âAý˜Hþ¬±µ-Æ["ñ›øŸUR 95í\×n‹Yn)9¥&;°aóÿÕE£¦Š“†ÒuKVŽ]ë³±$sºH5Zšªú<”>ÔôDëÔcvnó7ÿÍå¶BD ~xX憗ü}^oãøÕ>&5“!ËßYkq(ƒò¥=ë5Íû> †‘hwÌs‘n‘Tb ~^ȱJÄk– A SfIjY¼ud·7Ømæ¦o2M¿[S\*W4l(R[»ŸÁùåÅoxUÁ·þ“ô5©¼°ÊHà‚âªûÙÓÂñÜCÓúÆÿ>U´ ¦að£ÏÙ—±sѾS.(Õ6QÊíwý;)|"ï¶ÇeÄŸŽ `-ÚŠÏ•§7==^\±JK[0ÊŠ :Acq¥—©¾ªµf?ìèþT|9ús5¬5ú^õ+”=UÊ#EÔà4xÏËDÂýîyÔûÅŠg¤@¿¯ýzúØÀgün#éZÎppÀÿh­ƒQIJâVŸ õÓ……õöøÅÓ¥02îü“37Ű üÌü«8\œI-Òó‰°§”ÍŒaâ¾ËgŒ*Á¦a”†8 ‡Ïûsãk©Jt‰ÖG¡£=ÚÞ=*N@ߎm–›ž…¼:wl¬P®F0N¨‘AÊ,p¥ùyDc †cUãü>iá R‹†hl˜é®?#üûV½zè»ÝB"ˆÿÚ b˜åÒÌæ¿WQOû|8ßn\@ €S/:‹ƒr™.!6Ú·™jy:ziîõÃ#_Rƒ§—© £È*LÖj­ïª‰¶>G×XÑ ”2üNP Ü—t^í—<½±§¼ÐŒm¢å°ÁÍ´ ¢‘²PÌ×Ñr- M&îk,ƒFE]d*,ª¤',˜}ÇM˜B.çÕ?·; ³%ƒÓ6¿‚—™½¨„9 îôUßmd“¡1)? {d›ß m —¾‹öìh 5¾ ¢EW›„ç 1ÐÈúøCMí4óyÖ °ÁÔp{Àîj½ÿï)æí=pÖøøä7ÒJDíºF„”…Ib½7½ºZæCèïßœ˜*§ÌøóÚÊý(ƒäß<Ân‰9f©6üL±)ì¬QÒÛxñHÖWÁ-týª'zaeÿâW®OiJ²(…fÜCq©GÉG®pøO!I­þ»Ž¿DÀô",5×¶‘¸ãÙ œÎkéìy_†vþe=ûabí3¡z‘-µNçßúÿV~T8IíOx•›Âd´é›ÓRù'€ ³68|A$b1`Í{ëS0sý?á¹ÀðS‰g.£y™è‹m‡þ¢Nñ>J“r’È‚™åîyÉ“lÆg~?ìÛ¥;q6U‘÷Ñÿ>{¡ ø†¥üJL#íÔÑzP{ ”Ê~îd_¹ÙÚößSc,ÃZ¾ôó%ü/ hËÚ ¦Í*½9ï´,P¦kþ±ÎI` ìu½¨9uÛ×GXrŸLãBA±ú  ˱—êìpèì¡51õ~fIëjI9q>¤ƒØnݱ<:Ðúݼ{:è/Á:WLï•l˜Ù_x*̲ÐXpêNìôÚK_+éSGé]Ó‡:Ž^Àž»sQË\_HƒùS/Šg9¡šª­Ãå{õùé~þ¾LüM->Ñ;&Z?I¸EŽî)Æ%'Óæ‰]¥ÌéÏo,† «Xw’€$¸ëÙñT¢ØŠ³—„˜9ˆ%ð(*º²3jê·JvHóSÕ3 =•´R+X•5›GXáàË9` ¹÷å5E`|«R˜÷ýkÎ0RU–~•}“›ï‹ÀŠ6‘¡(âÉ! ¨ÃrȈ2šÙŒž¹Çÿ@ø˜L;J®•I WvÁ¦mI RháÈaNDÇ{2aŽë¯­àÃZ|׸~)„È”Óï[û_‹ºÌl1¸]¢Mü}PœB?­3lç°q8Éo ¼8<†ošÞ²ìV{ï'Lú[%8hÇ͈<éŸB³î¢ìø ݵ5UûÄàl¿ïÌtø$<ìSÿ׬Å-\õÎȈ¼Ä¡*‹ÿ¨IJË±Ž žð©©tqFòÂŽbÀ•È×`d1mÞך± $)”fd¦H ï}èÒª¯7”<£]ƒùVaDÅkØïVK)nA@@yŽw÷ªmWæíÎn-ÄáþNޣěœ¨F<Ýì'CQŸ¤ºUøðA­bÙ£¸0‘?4Mä ›¯|ÁsÚ7–xðÃÏïƒVz^D NÌm¿zD$K,¾+Ma˱û ðæ^bÝ'ލ3çȯÈGÙùb{BÇ«¹ãíh¿ ²E92ÀöèÄ~¯~¾’òÜ.]%ÞÊ©·Q‰XîE“ࣖÌßîc ùofŸVÚectïúéï*}]‰™¾Y:ŠÞ¾f^Zœn¼5þ ¤õâ,¦ª®Ü’ghˆ‚Y¶ã޶Ð÷KM³á ªÿeê—Ë·¨ûÑúüXrÖXË}=üm{Z”Ìf#i“Ó<”8Ñé)Â}Ù £òéDw²%GÌ2ñæ V$h#ø ’-wl&Š‚uÕ„T‡©Ð¤Äã» ƒ÷­¼XfírÝ&ôãš.„þÔ^²½È($àþ@»ŠÓˆcø"½ë0^ÛcAG™]åŒýEgk~à=¾ð+’Q;!pfrÖìZûæ;}­Ò¬쓶=sü=Œøe¦Îò–6\T S /‡¶aÒ裑äk)PWž¿åáÇ}ÍüÍ/{üNtµ$V+ ŽòàŸC¦’`›Å„²¼ºþ“L›ýÞWÍ͸”‘;ñ7`Í& B‘Ò¼?þã6§øÎÄß„Û$‘%©;¹éMì/®Ã^TŤº¾n²ëc…o€{ò•j”ÓðŽÁ¯Õú¸0á6™ZeùA-çþY<ÛÖÆb>kw[î|Wšß3fÆë$RõkåŸk\w=)E¦Š,õ2(pQâü`A=a>Õîùþj'Cæü­-©V“æ?Oí’uHVÕ3³³‘ÂM‰.È)EúØ>W‡OggS: ýÄ n-ó¥:ßJÕÜÝÚÿ|ÑÓÑ×ÐåÿJÝòÿÿÿtÿøøÿÿÿÿÿÿjõùÿÿÿÿÿÿÿÿ ÿÿ ÿÿšæäáçÝöåèêìüL¼@îUÏC"éŠb‘ w¬†bÉØ¦Ÿw×Ú7§íZ‘÷n2µ­ŸáB[ys¨C œ‹ ƒUŸ¾­Ïÿ?ÐÔBëÈÁé1„áõ§ßDA0 û±J^5óöØFPkëþmLpyµbv9~Ÿ£dKdm"ô/Kˆ•>4Vóüp³£1ó€:F°CcäœÖc™‚gúwœ¹dÛ·£øðÉ»ÉJ½ô2²%¢j¯xù xÌq Átó]X ¹ ù÷úE&âSXJŒŠîª=ÿýæëÞ§[üIˆÌ4ÙñæàÚ,…õ@ÜcXB=VGÆËd%:æ(úî´ôᢳF̆) "¢¼HB52'-€´18JTád¯z¶ÛÞÖ‚ù¨RCäãŠß8’7éjd©ù±ð’ÞÎ|+4o2Ç߇n#}ÊЉôš•§¡4+pjHóAÂ*Œ Ò1ˆ¬¯rT”béoí0È}Z±$ëÌß{ Ëön[“AÙ”ã¯HwYJð 4‚‚Ê/qªÌFP×~äu|)ßã7¡îwóú0›¨¢úüM“÷Úâîj0ØòÙõpߥ“JVbä »ÎØ„C (4.‹Â¡ü$ôLw1B0í®—:hÀlªìQò›|ž–ù§¢êQk'£NSBð:G~ý“߾j%$¤Zœ³orwÚ#š©10Hw´&Ê›Q~÷?þ/õî‰êëóHá¾g|äw.'zê/¢g®¨þÆ©%£<*jŒ7…„5Uuû©(à…œ_×`_;›ï%ú½õâQúàŒ3˳Ôï9N »u4È‹`N‡+eÁ ü–¹ÙÐe#bÊüEÒ÷ ÿÛˆ^I-»J^°Iõ¡IGƱ=†èV:³ i8L`½% ¢Bavp{[ 6,ç"øyeLßEË0ª±üâ çˆ@8uÒ>Å¡îEÀž'õ:ÍÈY)• x; kykò£Ön·($3²å¾ap¤o Õ=Ç|µITwÓ‰;¥Ê³UæF¡[úfå>z-7击JþéˆÎë0^|º ,àÖk2Úg( PYöÝN°¬×\Fg¤Tƒ^¸~©Æ])Èi&r+б;ùü}d ’>ÏoD(Ëkô®ÿ/>[·ÔnP¼öç+,üÅ&m9ð?'ª÷[ì—†7” Lý)b9ɱÒÆY=x~ò´0ýÚÉm¨àÐë–]u@þ—ñÂEnýî{–Œõ}ÂÄ­É/Ä(˜§ÁnB—••Âéßή‰AΑK~â_ )­ƒ÷ÐÕ¶‡äàá’R¶^ëîŸÔ¹±>žOOli›E‚Gé‹`¼XY4ê@tÍϨN9,"Úp°9Ö,áèü…þ8p©4ÿB¢Ð^—íµ#G³R6ÖL^ƒÃÀï–\S­|*?ˆº¨hø¦'H#Ó¥Òa:j¦fËYfÑ{oï$œ5 LÌ—qÿÊìÈIàdúÿ“Ä81s·gé|4¹aÛvŽ-¬‡i W»¾V÷çBiÙŽ3ž*$ŲÓ§± w( æiÁ5º½QnM  Å¶©{„‚ùòÉŠË倵–TLüˆõdÀBhgé üL½âk¢mä3Л£Ê‰‰{Ì®ëÄɇ-ÿ'ºSyå(5–, —Ê©z_íÊEÉIûøo›Õ ^]ÖàQ“”ö XÎ:n`‹dØ KY!!Só5 çsÚºÐ{Ä¿×YJ¹˜“—µÒ{óÜ/ð4uÚBކeǰpB¡ê•ãÿ‘”2ºÃ´ÂÌÊGš1ü>ô7îpÉ]…³IÓ|Ÿè¯Â@$M–ØI>Ú½ÊÒÐÄ鵫! º¡9ˆ(s7QHµî¡}*~&èîHÇ<£Ã>l%ø‘ÎPüL±b×§ê~€71ql(þ£måm½Ù§<À3ÎDˆÑ_,Š1{•'–¹³f§Ó¢RƒØìÊòç»–º79æ‡-sÔ‹­Q}ÕÀW! w=ªÏ_ÂEÞI¡ùœPÛí¨ªÍYØ×'@b§À‚E/ûJÙ£¶L;ÈÕÂ!ÎÕ’E¨ÒÔ9«1b» é+š=™ˆíîí Sq AMTÞ„¥JXÈFÇºÃæuŽ€Ó‚ ˆlÂy (U »Q߇PN‰è¸ Y,óIÓþ©BÍ2õüK1)NNÐêV(ÀºG†'(Ì0‘ o û¯âÒD»¸Å2¸ê¬lÈ]1Ì_ƒ/µ¹Må´~<–gH„[Ë¡¤„²ëddŠj„àh“ä?ú؇è`H²~“ésÛLsáwOú¨<Ù'Ó"ÿý«é5ÊRœÊÅIÿèM%‰yFqÉAF TŸ‘b‰¨RÁøÝ™~ªò˜¦lŸ°6_ŠâE¾‘U^üʈ{7éž Nb Ó[4öv{ê…ø5.“W?I],k°²?0tüF¼Vòrì DïÝS€€…k¾GÅ~pm¶=$€Xùœ²€0\ŒÀIAzAR¼ä0ÙAÓ8>V’æUñ3ï •<×þY,Î¥2¥.C†ÍbÈyX_âºHŠ|f¸Š6ñ‹>îö[~À(ÏÖü®Ý¡ 0€ÓýÛFM#3üxHîûŸE¬ûNH­UEäNH÷qYËþ]F>¤1‘:xCAP€ÆíP-F– ¶ÆãH%U$Ø5›5³G°ãÌÉHlŽK²6‘%AW±]~î]v%ˆ¶žŠöw3üL¾³“›Œ‚)þ]6¶bt‡V èïÉm¼ò. µ¾ôÚw3y‹²Qk–‹*=‹LÊðæ$O&\¬Øªûû"žl®äý87Ûx{¯‘RuÑ©ˆÖÂ5KÂ=úH€»VòR7jK‚½× „Û½ XºZ3 Œ¬Ô¶s–'ƒú¨EÒxÿÔã^1ØvÙô%ÈÍxÁ!4¥ð72Ý4JêÈ¥†j°†–:ÉRÆZ?Y‹sÚ¿3ª¥#‡’Â6©÷ò§½B.µd·Œ#Ù}v¾”›ˆàIe½üJ AùëqÜg)Ìm8yŽÕy¼p0÷c1¤16¤842DÁÔ …| ™Î>KëÕZ9"ßêœp¥àóð<ºk±jÐY@ìyOqéŠu¡ã Á0Õ”~™Ö`_ÌâˆïÔMFÄôSñ6È%1žp£âøºfÁ°i©cM°ðèÿ­!µ+0Ç |dèݵãÒÛÎ0á i÷hYÄ7K°FÅNÊ’e¦”lÒgÆEE1F@5 ZÎ~Ô3œ-Ýã:¦|)(5¸\."0wÿR¶)ÜgµPU¨Ÿ8Œ¡ïÀý_ âÇp–Žÿ,æ×épQUü|·$c )±Dßs®áHDðZ鮔ދ:E¢»gþA}’;CÉfE3’ âFÙeàmóô‹ÝÜzØä ñä 7%zìw×|æU‰ÌLçß ?ÒøQÊ_¼ê›òó‚l¹Y;zÀ`#2Ý8V„®¬¹Ÿ úƒ§«Á/‚ã›5lÃûå¡Á å§[ï¤Å £octêóG´Ûÿ`4#'ÿØ•TÐm7³®;'ïBžó¾ÞèrªÀUò×`ú«:<ÈŠä[ŒE'ÜO %tsÏ~ª–“õÈšA!WDŒ·èjšN¯ð4 òÜ·¦Ê‰ðêO@`%Äo”¤TT‘¹‘j³:GœA¢½Táö²h‰JÃ…LŒmߣˬP¢xˆî­J,R`­â]^I§÷WeiœoGNgÝßÕ)Ãlׂ;Uü’80 Ö· Õæ¿’üQýÈÎȵ@¥|p¨¸IàhLƇ™³Ä'á¯i2ကƒ†àpµþã>6–4÷PÐX dˆá@&[†Ûð·Öù¾êC‘YKg k”Ž;\`«"ÉѰ×&úO¾ù‡ä+Ï_ži?ø©-àVó™[C±t«Â-Dµò÷™n< ‚›ò ÷¥Oû‘K–b`/gvõ=¥Ö)/Ac£§{4ô;}½^_³¦ßÝTRš4æv]ë~÷(ßñ³ø¸&Ö«Üb°O¼|`éâL$$›„­9»üäÝøØÈÌ• -> +˘¾˜w‹2#‚d•QÈú d•®0ú“š´×÷® –neÐèB„ÞJ§:›uCCµ8hV­fôá¯N& iâñÀ¯ƒˆÄ㛸­ØÖë ´§7*w‰#íÙ%fÂÒ&ðî§.àï’@Œ1 ~âÁ¢ªÒu˜ùþ4éNÕÌ{ä ï|>(]”¥Un5¡ºtVGMÕÌ’s t’“fú ©TübÙ—kiž\·-Ôž‘3W£§Þyë½ïYu(äbpeáù„C9–þ1"!I÷†’OˆƒûªüHLï;üLÛn‘ÁÖu#“5ϧôÞ‘ÿ¾µ¸³uÊxUØ­Êz¢Tf‡I¸>Q2Iö¿?ž…{46Oî¼̤ð°[k@ØG/ì@ÀpÞ ¹Ñ‹­ÅÄźY7o±4%ñÂQ•PÌ(°÷{´eÄ€±¨ÔEI¤Æœ‰„›Mæ››{Êm7“Gã³ 'ÐøS…þ<Þ‘¤qyž¢ççé{UG}вëo×Û\È‹5Ù§½,ÀV}™hh0Dö@ìà,ºüÇUä®ê9´‹ÀmÎü‹FzÀËaY<2]£çGíO©¤§P¬9{ÞH;´ÈöÃhãLuqóR’x”Þ‡#ž~uæ×.ÝR¯þ¡DgÅYú‡~Àr(®\AD´áeÈÊ:úÜj{ç+^£mEàW’3Ã;•Â£ÃøÀË»Öû¥»Î/ËZ…lNxÊHpo£™)ÓhUt ;us½DÖݹ¤+ñ-Ö¬uºlˆmòözæ¿DX¼eÔ®Fïiº‹'ùß%Ól-1Wå?±C:¤{x²Ñ¯uFójêßUüºdç·TWÊ,h¶bê(²HŽ!ê>c«3<ËÀbü5_£P¯æX"@Ó¯#ú7׿oòáïý­¬¾ñáh1 7ïóF¯ÝlsÚçˆÔeµQSÑT»÷²êΆ¡÷3LjuÄ¡ƒÁÊ nXÖ¯ö$ôtôzŽ5|XÍ-³8WÈ•]Hg¶ :²ôÒ')÷9ô :¼zÚ· o"ù°aìØF³ÕøÁz(]ÈÃ|,ª²L´˜ì sXïÍ8…ÁL‡X/çtÅEJgH‹VëWÊËuÕ¶õÈÕr¯Ø…E€)&âÒ6ÛäkýY`"m´•ZŒLAñ¥6†M{*.ólù'³A2ÊódÇ „o¥|~yð½H:™8¼Åh™D8RID†£y`+éªFÛFýnT”z÷ Ä>ELÐ%Û|èZ2ÓR³+¦â[  À¥†ïXÁ½Œ}Ð ƒnr»5v|(¯­òe¼ ¼oÌ–Êíšý¡ÖlUœHnÔß%À‘JÕüJK˜ë õBäøŒÇÿBŒãH`fß.Ðǵ~ÙG¸ýÈÃïYs©žK—JoOjhÄ;ú_4pÏùŒálúU, œ2mž£+Ò³©î¤2‡ÂB¶[q2ä˜Òá3 ‹ãAð×®PøÀÕ[À— ÎC› g— %“‰Cì¡è¹…-fîã-3TLcŸç@)ü‚ºw‚fÔ_ìRì-ªMhQ¢Ôâ±^‰åh1.LÑ^—sSÙIOÂQ…¯Ëõ` BÒLÑ)eeþd– rg³Ï•Ró´âG%ðãXPÚ‰>•å>’DÏ2³Šœh-hÉŸºEe¨ rWLYh|%›üÄmÆÝ 9y\¬ã\wTäÉ#´„yc)ªü7ì .ô_9bvÒÁc?""H§ÑRµPbź!ZU^td}pj4´ÉÚÇáE^v}í5Zå{Z_!Üìš¿9æY¨dv³µ¥š-×÷f‡f6U ¶mÏV¡;*-5‚pB(ä`€yD˜ëè`Æ+ñ3Èmg‘÷c¶¤};ÑyPØðž<.¥€8QÅ;vÆ+€ÄŒ7Îö>÷§ŸÝ¯_5Eüš28À?n‡É·7‘p¢,zH|ÿg›}i³Ô3Bw=Î>hÈ;|¡è``FOð÷¥_+=ƒüÆrýke²%«ñ|äsÙÅ }Në•i â ©Pì%1~ïÈMÉ¢ 6jöá™C?àÑHíô.<‹^rZʳ‹j÷̺¿Ë¶`ßб¥KD^´ µ7W‹eYg+Õ›¶xµJ‰ZÐm…¾†‹E®¡VQÚR6H|[Z¤øªD~‘Y2ñR!#š­{I„ÐQ-Tb‘„ÓøsWÈk²VKî°¡O3Ø“ýNg:û5Þé ÑË5‡×|:êñeÀZjx¡}*Jgœ‰ÒÅ4«/ð ô,„©_L›lo½TR°¾'Ù·]‚üM-F—µ:³òì6ܳ&`××nîé‘úÃ&^ Q£ïjZ^àNnè¼5ñÎîìd'I`¾J‹6ôl‹íîhòôàÀóýй\6ŠV±(‚lµ…†ÇXm-c’Õ íŸØ¥‘#Íy‚õ.5“ žyxY§£&Š©”lÃ3ÛŹ÷Ä Ü`æ‘qMÖ\ÔV©Ë»$%4(9‹Ø¬ÜÛÂ7„Ø”ŠŽø·œŽ„È&kÞ}Áÿã{ÆúÛ’„ƤÕèe­B¢… úW…{ݨmÙPhÿKõµ)íTÔˆn.¹ÿo½Á.U*““m´ ¦‚Qï825=$[ú $›!$/æ½ËH}D|=ÌüM( {CeøÙm)ÛÈǟσvmâáQü¹É·–ýg®a·ÑK «1NÁ*bà5Ñ~Q嬬6çÉ0œùÖüøü “P> #iß«.éÚb) !VäY­'ÈIÙÌ!\Q›8å· " Ÿiì]|- Nç04û£OùZ/©ËYÏИÞ™à–a]ÌØ×ÊOÔ8¢09«˜‘é„3Zh9"Yéüo<É Ú×Ê«Yç,nuçr¶—úb˜ƒd‰¡ðÁUé—^žÌ»–fÁ’Y‡Z&`L8ËQ¢í”±º;àƒ­„\@‡¹ªÙ•ÿv©©’¤=‘6·V_ÀüÆk·è’[Çèƒ Œƒý‘Ô§é#fÎY€QOxì2;“2.¾ ζ¯ÓaÞ"¡“Lœ×ƒÛ×E›0Pg¥Ô¶i¢)´‹J·4yÞkG`§S=éÇÜêb~í–‚ˇÃRsèìOÓÁ` òÇXªkë½Ìl*<ä*JíÄæÚ9z£Zà¥,Õ‘b‰8cùôà}Áj 7xb¥['ARgà=#ÔÓgE`Ÿa# ¶¹4=Ÿ8¹19Åĸ-Â^™+}¢ž‘ø (&¤ò¶¼êt©\áF`þî=‘Å ª´H:gˆ®Âû\áïÎû@Wë:¿f í’{ Þý—Ç0yŽù.ü– äq³ñˊ㞘`XÅ^¦üÄqj¨nK¡kƒÂd´}sîõ’W†åg åZŠß êÙÿQŸG" P€Ìß÷}dka„hC“ÉA'xœÎ>,&¦ßÏ-üzÝš›&&bŒ EXR]ßèCœV#šÈjÓ¢nZUïèu·áÒæØ;ü.G7€¿š\ÛJz:-Õ$WA£úgoûÙ»G¤{‚tXÙª¥i‹º.fitoí4÷CÄàD1hù.2,*Üaãª6– Hºl2Z‚L[ì4F9õ:yýrrж0/þF@£ŽÃ1šJøo‹hæS ±NÅñÙ_–]w³*…äçÒý.ï=ƒüÆk5A¨ÖTé¤L@æ¤ÇgscQÞŽq}Œˆ,Yúú¾¤r"ŠTòå9:>éò;ÚœHò·ŽÀÎ4ŸáyfW³æÚ˜âØ‚lþÍ,ï¼/~§S¥Ò°a3 0àÔœ&EÇVk “íá{éÁ°Í÷°# ­t¾egÉ OT\B;ŸïNò#ŽVdüAªº_‹ÿ’K¦Ê[†]—/·™É bBŠ«ˆ.ì5D„ÍéÿGA$/ju!{¶_ÃâPgöÒt ÉÌø<ûŸ!$©¤Q6ù°m;Ú6t!ÂÃ5?]E±GC2bØpÕygÁÐ;o6ø 2D*ìïàGæ:¶4̉z9ºðX1Î7®÷””-„ü®}ˆ^g:}JÔ–ד ¡vªw wðÇÇDÃñα<Ñ0êé]zJ£ï4:–Óâ­¹*ø€‰Ož¡¾p®ØÂ—v߇uŸËnÊß¾ÞVÜÜïë+÷kݹeKsãä½è´U—i€Ä¥«Ý¾< ¸E£ƒÙÂg´áÇdo¤›]ï«:ÀaÈÃô+ÔäPZ’Q–„!TYá4Ýáå›i¥pgŒÖ¸P3ÿÚdµ€/µìˆü#²bȳXÔÔ)/õŽ7D^sœf E‡Ÿ÷—½ tBªÈÐ ¤ó¢aÕºä:é.,)‘p [§?°ËàŒ6L"N~˜‹µ•Œ@Œ’cÍcÕVZ¤³N7 Ô¯@% ‡üÆ(˜H®d¯¡YD°HÒÂïµ[›Äø™³„˜=Òá¡è”¬ƒ3»c5ë Gô„cWŠÄµ+ÍÀl €PûÒa©‘89zJaZíòœ~H†>Y4ì }Åy`‰ßðm­v#ë =šâ‘¬ruѰ#Ö¡[:A0Ö™áæ§gJ‚êâ|Ô4ÑïÈà—ì-Ö‰ý2,Aç“V&j¦°y 2uîýD( 'ÑnOé*MÜ#K7kNíxˆ;1ŽX*p¿wUè›ôF;kGp‚§;Äö3¿7Ìص&êóðà(B‘†{˜Ž„KN:&×°±©áïßh¶* ÃT¨VÜEˆüÆcP ÜšçOõx’kßg—PÁ<]VP~ÕWQA« %£6ˆ»Å²go/f„0JlÒÔÿ;ˆ®;ži¿®ÒõÝ„Ùç¾ܶ'ùŒÍ µéµŽªI µx÷ŽH#в ™gë‡\FQú:l$½ ;¨‘¤`ˆŸ¦ªg’H=þWâ +ŸƒqBÍ %=ÕÐñOyýÀTØyCk}“oûMN~½]\Ž“•meÞêömâ‚«³Ì)*~xL]”Omø 2»­o!åAÉóŠjfÏf–” ø†Vb–¦fŠ3U¡(GHX™ˆ°’göñ•Sgë©„Žáü1‰üÆ*/{t¤î­Ô€y4'1+Á%6eñõõ½tRmfÍÓ/Þ#—_ôåíj‘Ái?ƒwEë·ûdÈùŽ —ql3æQ,£T¡,g{µ5n Ó’™™ª§B³ÞÏ;;'MÕ6õ×+áßtè¹ym'óéí×”®‹õÁ÷¾è ‡ð¦çßrç†RØk¿|THsh¨??*¹~W‘!5ºn 7ÌÆ5Å.¦k–;Ký€K]^ZwÂKŽÞÒÏûÀÆ-Ž•éHïä4ô—¹4Sx¥ˆégñö[§zžñÚÄ쿽!×›×<eLCß:æ5a§™öŸÓêä<,O~þ.Ï5Áû‘¯ÖÕ<Ô˜ÛËá‰üÆjîÅü`<ÃbB‰?·–„ ƒF“Égã æIü1˜«¿wÊÞSI"Òï@‚[ð:¥zfê©>"¶e:“ZÑ eìþ–¥™lF±±Á`A{Ìó"`ä Úï§&bùð·E†ŒN>¸&–!HîV³é¼3^+3E"#î(à5Z$¹šä‰óJ éºÿï7á[-N"‡rpL'mœÌŠI•«g†@鼯ªÙ–«Ú×Þ¾Sò¼ª]À±® øê~œóVè¬óWâå¼v°^*J&wd¸ ;]Í,ÚKNfÛ0·{¥buÙöMäîÖ^\,¢ÉîÜÑ0GÔ ìß^á'Ÿu‰üÆc‡²eÀä«“Y%XÙ..ÐÔÜD‹o7'½8_j“C([%ÑX„Bh:ï:PΠ˪Êõ¿f;WÐÓªâc½øÖ‚Þâ'ãÕœîBÝOr¼U¼†¿ø¬>®ÎîGÞä–ïù!éç*Š~o¢“Ô(a: ƒ¾Œ¹Hj3ÉÒ®Þåî’:ý&ÜýË *îÂçj1ä4³Û¾WP÷–«úâ\ǵ™šT¿“D?[ø`Õ8žî 39½]²¾8à·9F3[Q—;L—ëƒ.¸|ã:GDz–U¶7ºDžT¸Hæ9j ?PèØÁjœ›´’,ͯ–QCÍ8ªbxF!=x|qU4Ëfï†EÿĈüÇU³2 l k¯‡ù¼Êä'šÈeCñ—¨ é= ¾9º|e ¹ŸÌ®»‹Kë%¿öÒ]``ÄYõ–Õ†í7û£Qžáé|5(C1c\ç‚}8¢]û³ï‹Ùaþß+‚OzrZÙ—Än<àæu³ÈU8äXË Í¥©`ƒ’³-´u)‘a'6Í€¬€/ ésûõõ³ez )/…û(ßši÷“húÂF׫nâ Z‹ ØÛ% _Œ7ê裇E„é®Òht‚€ÚŠG'ÏÝâMqûœ:ЭìX]‘‹! ³#8ÐÛG`ˆCð˜-$TÇãí ƒ –) üÆ5›T ({vKŒ}ÛÔà±ÁŠõ‚‰t.†/Rܼפ•´y=†@Zì¼dÚÏu¶|dw×rëZëU6ðn&O–Ö@›Ÿÿª7áÀaüE«<¾áõý%¬ÜvËtÖCÚòû¡ZšÒ—¤Š³¥&¥¤/døJ”AJ!†®á6ÃvµXžJÖ¡ tùÚ’¤´µ½2\¤üIN0n§j=ö‚ì0Fà‘åmQˆNÞ¦Ù¼tÛ>yàAI™TZ?c=´&³. •ð%öàÚY0«göüZjù<%ãNy÷lߎ›nj \Æjþ¬Á"m0¯rÙÙ—×n}íª€€j!n“KüÆdBowìðj* yh Œ’Ù¨ÈÍ&ß.n4¶7´ÿ·ÉÎk ç‹çàw¹A£…rÞt¹h$haL×áƒQ\ÈhI;™ÚæÁÆ,ƒhmèTFSø<²JÇu=Ñ™¢sæ”K1èP¤µ´sh^†ÕÄxß™ÿâP´y¾)A;€2}¾øe†-LÍ 7ÁF’HOÞ|Jõ­¼øÇ ÓþÕ› ݘ-IJ?«3€Ðsö]Úóæ?]œMòüVŸ ï”WAº.ÚSå`#Eí«¥À™)ÓiÊ#J L…Öè«smV~5UªÔ:}a—ê·â Ùc²Z:€Töâ™iŸ1މüÆf7:=4S«'Þ×Tiá:Ãîo þ|5h^[qÂNŸñ»âYš0´"ðdž'~ÙMäÍѵºÝP]ñ=@^¬œiÂ3aF%`Cv°á’tºÉûLˆkVUŸ1„*c÷¹ZÖµ)´ùuÚÑümvéÂÒ”\ÎH™jäWèë!.•U­¹ùô’s‡RÞ‹W ¥¤TM®v̓7ó£¿È«ë&Žœãô#ƒyç}ªë—3w%ÌŒ Ÿ‰´[:÷Ý' . ¶ÃqËé?(ß–&&¦¡±@¬]ÃúA®§‰Õ™®Xy|î¦(cI·˜Z®µŽS50o;ÝÂHìXbìhLÃðÄwMÍ>Ròö%‰üÆm Y•ü}NÉæj²žl±'^Oèe3Ë•ó5¯“‘À;{ YÉ û^é¼ó¤ÒÅØI¾Æ›fm@C•»ð!†ÚˆÜ~;èS!Cš¯\†ÜµŸûÚqÕ½,ö„IƒyãÈrô4»û3]vÁÙØýÀ£žHÏý’µ^Œ²4¯lïkƒòkL[_2IŸEÚ?5ð•[§Žo8è™mIÀú~¥ÆÎódf²#U¡ð\ñºØãѯgø£AH¨üùº"0 @ðN±DÆDp 0£–J'a-hkIceЊûÿi:¸ù%ÔƒŸH×ì˜@ö èž¼Y¯Îó~–ä0ûL‰Ë=oˆY=Û6M‰ü}U‰²> £í²~ÎlK² 0Γч'>. }º2ø,µµ<¶ëÂV m}”±©ì‡dŸæ[õ6€ÁŠœÆÖ½sá\ÌÿÚíœXöwúñö[’Ц(Žõ\NOž¸ÞÉcôT?ÈÏœòðùd¡«kçMªÝ<¬VE„úÙϪæ^±S!Ê ¤³¤£meÀšüÏmS%ùèÐË-¡Ø×jû:Œæ•<êI}€9Œ¡D¬ÈPÓáZ ŒsX»ÀjCöh¬S” ? ­ÇC"X)tž‚¼œY?ÔÌNNyª•˜ðT./ê†$þ0ÏU¡5ƒ¼ÃHðrØÍ$œ~••ÝÑ—N†…$%‘w¹Ô<ïÖµmÉ&ÿ>؇2ÖyØ=hK Ežå3^ö`Ü)³n]!mÂhuç} äGñB”¦ ýë^8ó8LOŒX>¥g8XoÛ;¶ÿË‚tά¬¬¼ÕøÖPWŒü·Æ8ü%Ëb´¾¢^ú$Ž´‘©”IÆp§eûÑY3dç2›;Ú3ÏQ¹üLÀ¼ñs3Ô,ä+lìá¦jNüZ©ùÏô>˜Å¿?-ÒX6®Õ°š©¼“^`JD* ìïíU:KR½ 3°OÀOâêmpqqà‰~îƒ|m²³”j$™½èEÕ [Öýö«µÉËeŠ(¥œüÿaéÑS}8Bg ¥­Äõ÷ÌǨ×8`I+|{l© .~yçx´^pߨ/|ÆÖðC¡!ŒÈMÞÀ3=Q?“ !j™ëÚßøÿxe5êâ¹¾hÁ?DlZeâä¯oÐeá°ÛP+fwÛ†‡EC>¶4rfð3üL¾/@r“Ï$|‹L¶µîËÒÖݸ0䊯òu`ù.øw qÂ=û´æøŽºÆ$}®ŸÜ9ªå´ðGˆt»)À÷Âêî¢c>T¾*‡þpé%N×okùÎçîež¤¨P;:zK_6´î†õA12‰M²Iû¿M7SöÙzò] «f\)Ôïö"r7îoà¨#¡Âcc]†!Y¼3l4›•¿ï3·¯ìÓ£°Ö£»Q>¹ù.·zˆ#yž³;Ãp¦ÀI£¢šÐÙ¸#+Ø‚¥jXŠÙ·¶h­6«Ü#Cý:Ê­¤Õ¡ÖüÛ½‡Jm(Ûš¹LØ1,ÔîIzørh6Jõ>™þ[.èg„7v/.<8îj´Dæ­æ˜âá°×è÷ϰúÀƒ‚£Ë"æN»EÈêdñÙ5¥ÅÙ™ì£ñ5¦A·Ç›;–]o—&e{>ú=T§SlϽ°nãÉø¨JnÍP ‰ðG%_qÈh™rfŒCȳΠL镲LºÃ‹¢ý¬ÞÅbÅhœÖVó'€NxS¾9ÿj'a%Ø#¶³Þ3[cøëÚ’S›[4u‰ qÍFò¼Cê­aõcËï—'‚-ߢñŒüK$HlO¬uùœC)ˆì NÍp=©Ú•È_ö’áˆG ˜…KMZàMZ?Žõ¹ÀøÅ%e˜Þ }þí=ðÄ´ÓF ieG 0„M1B§­’hÓž¯“|ÚÉ\û„ï{þL>FHeoæ'2–”Ia2‚VJ&6zË1¯cÂÃÌL–ø«ÄHR«M†G`òocMʥ̟¿ÿõ-8C¹Þ¼E[pQðâE^¬Æ^|›³xœÅ5À\£‡ÑXö“óìD¯ý:Ç3â~O“wóHÐ7í-º¥ˆ3Ú¥ÓbüL¾ „ |í +D§Gßµž ¼! É»µl¶lÎañ†k&Sš³þ‘^œŽÏŸœ61X$Lyß©¬³Žô_&^ŠÅú¤£¶Ø“kæ'?8!÷¤ÞåFK*.CY¦C7ËôR"Á3Üž70vò=q7Ÿ>å5ZLp._šü3† Õ§)@XÛAh™¶è4Øö¦ âS—üÝãû(–”—½mY#/O¬„Ú°·èT^;ÕÕJ»ZgIÊðn©ÀÍ£s‡šó•ߣÙ~ŸK!O6jq1 íƒüÛÄ›ÿþG§½Áß¡ˆk””tòÐ[Ìð«.ù#¶öNãl´å¯}9ûúqþñ«ÄÐÔ3µ”ˆƒÿ:–ƹåÿ·ÀÆ!Ø¥{íõ—¯Ÿr> Žº\¤P  yÔ‹«iPa²›@B°eEü^,¾o#•ˆÇ“²uEK¥•™lpÌ™¸Í׬{³W#¿¥«Na×m‡Þ‚=`ºó+´Ý:3ŽnšÛ6ROr^íj™VlÂÁêÎq£("5Òá9Ÿ¯1iMŸÚá!©Sjèy-ïۇ‘qˆr1ì.ˆw­l“g5åH)»³ìí–»k¸š1ÇäÏV;üÛ{»Ö…{vyç½Ùãœ"Yv‰p—÷¦šwl÷¯-¼o š¼›ŠüÚc¾0®õÈSˆ'—°² ðì°ãgF¥¬bŽŽuÌ­á¦Þ'°ö`X²›5˜P¨‘üZl(ú“,eoFjÂ|ùA«HñÇ|ÜÚŽù4vQómV)Ï-.c|«º¿h`¯§–ˆº82‹Ä CUwV„,Náq½7êX‡O°µV¸ÀO¬AWjòcœf: pÒç;|Zvž¥¯ùà‡ò¨+ú¨n9Óc`uÎFºÁΞs$žE½—gtö¬¯ÚUzüLõí±@ðp´ÇOPÁÁJ\L†¸Q—=·Ÿ®µÖ{Þ›ËM˜@E~ôÏÅÊ['÷Lã§*ÜÜÌé Ó 7c„ãyI§Ø¢±B½…S‚àæfÅùï¥ ÕÄè:Óe•x!ªÙS¶x:ùã"Ù¤K"t]ôÄ“wa Yȸµ4 «˜%RE+—j_h Q~\V~¦;J„YùùïŠÛVG hŒŸ0â6ž ÷ïÍåtAE¥©¾ÆŠˆùôì´=;èØü™ý¦¢=R#`mNqŠ <{I[g²axÝúÊ&(h/Û¼³A™*7ôþ£uüMiv5¿eQÌÄÓøõ÷.XÐ/®`õlÞ¦ñb 9VÎ Æ+6d3Ò‰ëÅÌèƒÏùi‘Ot´•_Óø±±®?`< ‹— Œ¶Å#| `%5ïêAÝJÍŒñ/xÁµÀ° ˜;8÷PÄy‰'}¼ÐÖ<º_¸>ª­QÅð  R³ípýYÔ{? ”ƒáü al»éûÙç§Ø>A¬T þ§Gü²?]¢Ó×~Ka’X\Úý ݨjt@÷Ì×+I•kâgm®0pd³ Dz®Ô‚¾3T%I™¶×ûafüª\ÉüFôA.( ™éD©ÛT;¿HjÖ–”;f¨ÉwÃUH8ÈS½ç™È˸`z–#§OããÕÕg-Î3Ï2÷+`‹œX¾ö$¦òpQËQ!¬¹7u×r1Ê[QÊOÊåI¥Ý·~¦Ò?É‚`qëµÕšÁmbCøø¬ $ÀÔ,­¾çMÅ Ú×áÉû˜“í/@¢¥’®Ë›ë¾ä?˜„‚§YCÀ'ø¨¯Û`í)‘ô½MOøl)޼q l*‚IVKx´|ûÁ×t=1 NÝ‚ƒìÑҳд¦EDíØÌö'#ñOggS€õ ýÄ n.¿6cí@íàáÿƒÜÿÝ×Õåÿàæôëòóôÿ†å÷ñôòÿÿzçíÿÿ ýýÿßüëììîæÿeçâòÿÿÿ ÿýäÝãüIùÓ8õ6iP‘#´—­6JÝV “u×µ–¹Ü럪[Yߨý#§M sHÌ„-DÙÿ ±þûUªawžÜûé‰,¢úßöìüGŠÙK„.¢Ÿ7Ê´p;:È3ÞE®ZYà ¨¯\î2Ù§ZÚ-»ŠPVÿ|~ldØñ k~v‘i¾^SZâç[PÖ1Õ@„ŒÏÐûD8R…&‹0Fòk¦ûáÆðªW:@×Sé1}TÞVY õ£Ä¶Wjsúß­pSݬ–é%Öëä,²¡Ev';ßêk®ŽA_q.Ë£ÂW-d )T^»ñèrè¾ ‹ÀKÌqÀ[µ–÷±æ<\IH>A­Zø+0¾Ä)Çà(Ì¥”ï«_â÷SÈ1@l¶ÿ ÌL²öºô"î0<‰×†Ñ=À§­JØsÉÉ(¥ÿ奎D¨®7Céy¾VzËáÉÖ²ÃüLÀóM«÷â·š¥;¤|´q$:ÙsDŒ~±Mñw~í—Þãäë$ŽÄ„e@†g9ü‚øçÃ¥¢ËЀY4C Ƕ]ÍûàÎ9EËyÄÌx‘<ÂùaTÙ€ ­rŽ‹uäSx3aYÎ Fܾ"X·U 1ˆÚd}uû2Ž×Ô»SÙpMJhî¶­K-+õ'‰î v˜I]ýÉé2=Pµ{ôkM,†a?••Kr‚ @¢SA(Ù >fîCÁ†4¦]¤çJ¡WÛÿy yÿ’ñÄÛo‹-Òy˾Aî2¨aÛgÕ ü}bœÛ#§l w]Qƒ’ÒEâöïeÁü§åù7å>åHEmT­À¹ h?ïFñP^¦ˆÛ>l‰f¶çÎV¯÷d¯I<Ò¶3ú£?óõlèGtº¼úçÝ3qbÎtÜ.º->šaE­ûÜUÄ@]•ÈU£r$ÉhX-g Äù‹ý”Þ }ß8îºÉØ.vn—+ý•ùC²PRDHp2ùmJË_s`sÓ ˆ˜E0\@Ðpë7—G¡±?ß$éÐ[ûK“GÐÿ˸Ÿþ`ûÎ;Ö«6„JexÑ.ä¡IU+,̲‹+|5žtÌ'ÊGËáAœ„èGü¢¹‰¥hP:3Œ›#È¢+»åt’:—ÂW„Q\B¡µ–.ÒDã—š‡¥mLõ±A'GH;¼ã°Ù/7«¤¦,âY&p]œ·òŽÏö¤¾™™UÎæío»Š–¦ÑêW\©geƒ‰]hw*EoÅŽ A^e«’­.ȬôuǼ.{ûíSø\?׈óáÛK + ü‰%ŽvÂ>ÉÜ[B~+´Vq¦T˜´6® ›ÑífМ+wç“Íå[¡ât›„ãØWy¶íñµ¤²Ñ¹EúåTå¤Âܦ!³Ê»ýùnW¸gX@[Í>…™–`U¸!vŠŽÉý¥-13à<‘Ø0æe÷=)Ÿ:Æïb«yóQï.ujyjO¢£ñÔ‡µÿá0=kì삥ȬDð“Ê¿úÕ¥¡ì^Ît´¾!—ÎÔA‡ÖÑ,cžRLôùAÑæ¥à!Ѝ×Ú1E ò|t«`!s¼ãÄPü›Ä›)§s-Ëdkù­Ú•²¸1*Ý–Ú‡ù†<dj]ò ÑàS"œBs_eøÌ»¯ÏØL¤+%‰WSðÌU‘f«š&¼cÛú‚‹¢ã)ÁE±n­¨G’»Ùžèrª¢ÈRÁpV«áYã00ÃörŒöèQPL°ÜÑ^ÖT?œm+ꬫO„Ñ~Q!;̸ZM&À‰Ñ%Ë™ÀLÄX|'ÍN[«ëI9+µ^c„@’À¸Ù/"Üd$ÔQ?ôõ$8´4<óNõ¶é–L+ß¼#>}žß•ÄÓ6xBÅ–ãö{iÊ´Ÿu;i£@M3RȤ îÈu¼_÷šÛZÿ±¸€ð÷Ðó««ä@ÅqöÏÿ9üNQ`×ÝžA Þw?4“/$?]¬620ègXÄ€F(ñž1p®ƒ \¹à—*\ÿYAý¥òv•VÛ9™šãîдïÙñWú¢\4öé¥ ¥î¤ï[P9½®tà¯h¥Œlò÷d>TAo —~Z^”°–øøüÑ/$:‡ 2#%ÏÞ\‹ß„™µÑ-VHðò:K |⊔”Ç®[A¼ž_—ç<‰–¼,æ«‹‡Që +œŒz|¢5 waI庹€Q.Î.l“,Jìu`E=£­¸ä<öΈKüLäZ’vÔO]uÂxm®¬€"iܲ‹9·8¢Ðsàþ»Ú[„ĨUþ3¦ì¡z3ÞÔöˆi£)Y’Ãóåƒ~¢öN„ÁšIRU,ØõšŽþ:”P½ë>l+ö¹1uÀ‚¡ô¦–†ÎäÜ+öïË·N7Íx ëIÔ!J ~ǰÛSp¶—“7bÿ/©$ž<áñXò… 9öK) [–K /çh$É›EýJûÉ×Ò¸)R‘E?F.y…;ï'Fó¶L ºü°‡UmPÀ@‰NA…–5àH·t¯Wü6kʈ—Å%Ù¡=SE ôU,}›nçÞõ¥Ué¬CÊ ="c xm4•À„á+×-©kó±¼ó#1uïmì{øŠEƒlÔJ{ÜtÆBÁ…¦ ÝøÆ¹«gË7Ôz-Íu¬,¸ÙB˜ú›Õ’ì|òª 2ñ®š2–mЬ,¾Ê#¼é2õº³ÆæŒÏ˜s>’àãd…ˆÅŸ=ž2<±±ËÂI\ÀÒm°V¸‰ûÖK¯–@´v H¤Kl˜~ò·-^Æ¢ë+7¨‚%Eñ@Îå7ü™w:O!b>BŸ‚-ÍIÍwöÍC;v®ùWd\”²’»ðcx`ig$ZÔï«€ÖÐÌ{d\@ÜAŸ×œW}zìv†LÎo¡x z‡ÑRNò&Uù%‹ùà‘7 -ôµEÐgx3â4ÐÀf-¸ŽëêdvÛÀxÐr†¼uì×ÁìÝóT¶.jæ*ù¢mäæŒßɵI©Ï.ÒNØëJAC‚ÿ þ~XÙ f•s‚\œÑ‡oÐmCS'Q{ûy¡Ú´’Xö…™l’º\±Ü›xÙÐG"ï·‚WA”H·^–xræîQ.y~{ëÐ# ¼iþ¦ IžþÑÜÉA¹eT£ü4|b°k§Ú¨_8ÃLϦ ×)eÓ1 o´µÖ*±ÏÚbv'³ðÖÅï¡A脨ŒÝQ@ÿà>ŸaB< лyÌh9œt¼nxÜ•ð§ýö-ЮÄA±ñpT_5ê³ÎûAWf=®0ħ ÚÞÿRÚóÈ('Fƒ¢–ämíë/6Æ‘¤‹â;®&)ƒxùhؼ¢öb·´üm½$M¥©léû Wªçó^ŠD»#XªP¤‚ä*±)åZžo&õé‹Gy’y5ÞÕ$¿¸zØazÇLÄÄ6,|Ñü†D=zÍïxÙ¾´„á{±WÅíá¥ñ›t—§î²ÐÊ2k3`°w¬^Óž«±G׫̘/­1ºYdæÈ<"tNéHWÊA^åí d·Yp =KL•oþh `›lnFÈ÷tí•p¤uïWè+Ï<¯´0=ŒYgÏ:@ô/•bƒª”Þ#`Gz¨€ ý°ÍŠw£š¯ÝŠÄë€@a0&X6qñ5'U—å’il\¼ËX¯ƒC¹qÅ®˜v»££7øåѧ ï÷?‡n¹·½I# ]l„”@üN”êP×_?âÖv~ë)5,‡ƒË}iÕ¶JTK6ïΪƒõ.¿Ý}^¬ >}AÞvTˆp’Ú}„âq·gh— ¨&±0Sý2]I¹‰m§WLœ)9Žpëë:ÞÓF‚&º©å3ëTÒÜcžÈqõç`_^*eƒJP$®¨vëöžžT®4Ö¥Ödʱq‰ON5q‡ÄHg€Ù‚ÿŠ$…í$|œ‰Ø¶{X4à€½¶mÏ+ê±Ã’8&y…_g£+iÜ‚Ÿë2o3ù0ìÅYøA@WÅñèVé]϶X"êí3±ÐÉ- S*äj':ªP嵈ëú*\¯   ~8¤/ñÝ-ÍoûÃa/|¤Gïе_‹’ØUoìØ¯4$9ײgZ·hŽc^d «}›!uŧpymoþÑ-´6ãGúh*Õµð忳€{ÉÝo-DÐCêkõv³Ñ^¶äÚãÌWQJI®jÛ¿¶oQ¯œøÈ&*e£uÊpNª«h¡ë¹ äì}õ ¢ªlùØýü¸k¯i9®Ðmñ£öCž¼›5[Õ~ø˜|ÀõYnŠ@‰ú>7Ä{ºŠJÕyNþ½NÎÔ’Ôj„w9ŸP]ßÈQÐæ‹ÓŽóKÂÖÀkŸÈÿpØ)€#&ZùDÍ G-iz…n^vSSŽÝÏY¶gðD¹šb/¸yɤéìO_\U&Á¡›~‘á< 3 YÈÜ?-ËdJà¸LëSLÓ}–ÿÂâUç}„I@q‡Kd—ÿp‘Žpö=!…HÇ&‰¹A¹DEëcôæåÓÙk›%ØOͺ2‚^¹4“q7r/úó,™û¡#Tþü¸‹à;Å9‰èÍHeƒVŽ·ØäÀ)5~âmë ïÊËݾ-£&%Ú0¿™5•÷!Û;|A³ÚÅxkÕËÄWmZäH8_þš0ÏÜÐï¿Ï]ÀK£:µÊTeZwlЬ»¬b€uÕÐ{FG‹t9ç\9zˆkiE°XNb­È±Ä’nÎϬkÜbÞŸ–“½Êß锋¸ìýÕ0ÍîH-:ÒS i€8úû]PxC¼¶Þ榩¶5†ã=ìqGoX ÃÂù¼û­*×CN[•}{ L¨Ò¦šrKKÖå,HBšÒö‰Æ9v¦ÿü.igÇ’Hbír2lòïH§OÆ“üÈ‚ž*°d/G|•§d¯ºz  æ¦ í¿„Ú¿î•j_æí¯9–åÎúßì\SÓÖZ:A/ä8ÿ—¿T“J{;H:Pïv„þs…¸Yð/ErIzªvóUpÜü½ÔÞ×å4Ó1~t@$ ¨¾4 €ˆ†©ÎeªììÀtå†mq3ðõÇ'ü}[}ÚŠˆæ‡/¸6|Ùd—€G¢¹.Ë×;—›·æ4|šùå´Y”@fc ˆo~^ÙŠÿ6T:zsI†cid‹è¸T¯d[cj²iß,ü/Ï´3dºÏÝÐ"W &q4UNÙhFÎU–ûisYþH\Í(ïÿ}&þ­(K©Pa5ß‚cÒXêüÚ{ÍŽ¦}L3ãW¹•2qa0ÇÆxñã.5RZ.ä`h$ “ö.uëÿ•è_Œ~¾¹!vßK—üzœ4c¦dØîêó$)€©.¶¡¿'ô.ù¡ñÝ·JׄLˆ.”Z*NÎ¥Tö/¶Å¥(x/Z^±‰¾š]ÁùX*ØÄ[ÚŒ,GÎG‡Éœ™ÐÜLÂú¥ Ï‹ÿ¬ðÝr1êXë.ªÖ`ÝS®ÌÕyÝü·‹ xi†0ùœé{È”4üùyÔæÏbò\ÒêL*šà oÙ‡¡¹~Z\¤Ø=–(Ö`̲HC¹èP|Ú†Lª„wÚïùé–S|„ÍŠàÁ^È’-ä4™æ¾¿£fŸe䚥m/”s3¿*þ#Ø´ÔÞ/ Ú/6‡`…ÿ7sä“keL¸®hU¿³ÕM¿.>{q¦wi Šå²éÐ…xPøføê‚ï§$=ƒÜqÜ‚Wy3ÄA˜xHŸ°0A•=+.1V“ÊàuÀb­U}7/÷a‹ÎkÓûÁp"úÂq/*¬Å´ƒlíÁçʦž½ü6U‚ýGèŸåA’q ò‡æ¿:óû‹öÎfé™h¨ˆaáºRlkÜý¹2OÉ,‚+.ƒ#t³‰¢˜gî¿gæXÄ®QÝjt¢«¥Ã;h¦’@©¨‰6ÕbGéÿ“HÚ²KrމàmLDÎÕmʇ}$Ï‹qþò “ƒ®µ4ðû8ñ5Uú«t,FŽ&Y×:UOT@K…r¸ÊC œ?Ç»ì4Z4WÈiðþͦËRýèÒôEò¥ë`5(Ù†Ò²áÉèí,ÀþvWX€ýª‘8)o¸éOüLÚÏT'¢Š/8~¦àIŸøx›XYB&?H¹Ùè«– •ŒÜqÝNB,ØÌù/žž4à‘Ùo!ÞÃ@¦d+®“[ÉEáq!­¹¥:¾qÎÔ×ì0ìéK“7IìЫ‚W0ˆce°š×KÒ=ŠQèˆ úán-Rûv/(žlûßÑ"5xÆvR.Ö 0´H÷ê Â~Îϰ\ñº¸¸’D»„Ôõ!1p¬N¯“Ë.(5……qøÌïä )fH0a/Y{nènüë›!†š|ydÄ ì†q¤ÒoÖ†~9‡/R¥û$Hü|·t­¯0LI;˜ …†d§…„Oñ/W"‰ñ"^!#H:™“$*ÜAv$ùÒ–°ø Ü5QlÙçñ´¹P_Ä­»YJÓ³¢þÉó+ª† g¢ÀÚgë­V ’¼Cª©²A[ÔÌl¨&h8sKLöŸNãákÜŠØ›ÝS+I6ƒׄ¶MÈ<·€rí‹rÝø`Žs¶yˆ…ðM7¶mö´‡¾°ûŠ@Ìõ=]í3¤¨ …K÷0Šœ×磔—öòà:­ïÈq@õo^+uí~z~uóœE}+­&TÔZCA‚¯ôJþM£ŠØö\­lé dªeá“øÅNYˆ`¶‘ÎmŸ#ݨùö"cãáú¨×Ì\9Vgñµò–’j3)H`ûüçÉ ÎBëÖê› 6ä Þ ôèšÁ0ìçU2yçÕñY¸Gz»º]M†°/¯"hÀÉb+6°ÂÊ6Ìd2QÞü†7uùÝo‘LÄÈžÁß-% 0ÛÏä/?­‡:þ*|»6¾Ñ4Õ “Ò©‹5د9¾ÿ ÒÚm2+=Hr)ÖC6#>7 ½I›•˜Óÿ.ýQ¢â=3Ø[ezʓԜÌQI?ÐeÇJ‹¬ðlùxƒ‹Z_ |õ%!"=n!”ÉÎ bèz®PÜÎE}meⱺ#i1èµÄÔ&¡Ü´0¨^†\T€jÁK˜Ö#0Üáì ”9ÅÀÿï’çF˜öwJþ¤¬Usjg/-gØõ;ö‚®ñТ)1Â;VÊ“ÙERü†m¡—Š_65íVÄ*DÞØþxgº5F€Ä‚—ë­R-7*ʾßüE{|\­'h+âTpœ±'xÏÙ×)>ä,‚’Ýq0Én’À¶?[Oˉ¿&MÎ~é‚k æ+© [‹+%%Ó%eOòæÀÏå!.ª ëóÅ:,,wÚéäî`¥Î5´WÆ2ÊcêØNçöúDJmGKïL%l>¢\ýÄÓÞ?7“N>2±?ôDÁòWñgPÿ9§º›W¦L›qîkJ)ýu ºå‘°Á4µ1qÑû)¡N„€ñ~•ò#‹3YÎvp@üƒÖƒ’X¢|¬qùviRŒ[¢ÅÇs™†«æiWž¦Ì r™dÇRÔ4¯±i 0¢7/Ô“zK6RàÆ ÛŽª:ó>¯™¥©;2Ytž}?òÇv¢$p4»¦XÜ$Yÿ¢-V¸¿Ê¼aÍ‹BÐÛE1u ‘X wÊ‚+ì,ÿ>góràWˆ^b16ýïÝÃc¨­7 ª™ƒƒmDT´¤@؆\Nû}æÖõò<Òb£b¶Ž=n ޾#DÙÝ-´f7ëz‘g.0V'p¶àÆ1¤¦»Ú:eu8ÿs%ˆ½Cõ~7¢–ö”)[Ç‚+ÓÅx=иº¾L0×i²ü†"0„Ä™æ¹á|õß›—‹˜9€d>U°í,5Ý&1¢@ÖAZ)k˜6Ã"’=gω'±eÊód¢f1è”!qƒá%*:¢å¥ß¥"ͧš|Yx¼å¼£z¶KQD‰¶ËsÄØOå] Þòfø…|›IþúU]²çw{µæš†HÁÊghûnú´¯F}%Yí5¡Š Ñ ùb$zר½<—d©b5©X¯¤@褬phÒ˜9U… »9~pÛ³¶ÔþÎ`ª´h˾]Ç ÀM‘ÒsÔh¥³Õ<¿dW;Y§þê펷íÇ´‰ ôàŠËFiŒ`h…½(¹ ÆìÏ\YËÒ;±üÆc¯¸‰…+•Ÿ’á¹zw‹(É»ñ¿ûÑ€ôå$˜ç|±b¿o¦<çÜK£ÿ…aR4ª¹˜\‰¯¯§-G¼–»Ëlû&$Ðß#×u»…éIZÿéÔ¤#™›êø(cršmna¸EâË=˜¦aìj¶ÔˆVcÈù6È„ÉÝO ké)î/l¹å¹>åÚcQ¯jóÇ4W(Æó|²j@Þ÷à& ÿ}œÅï¾fÄN܎Ÿm¼iiΛ\‹bï×ñs7&·þUlùÚ‘ ˆÚ(5Zذï·UH¸„“yŠãL µh 9æKçKÄx{Á¡‚ü†0Nvø2þÌ2à¯+Ã;ÞáëO “¿™‘Wé{ 'c‘¤ö—ÕÐá0tˆˆÒ5²à\èeüqé* R¹ï ÏLÀ·ÿÂ'±ùO)J@ÛÉ'Zò'íñ¹Π,ÃiÇ,œ{x#‘sHl@6µRàL¦2Û;<]g9á‡Ü¬tCxÕŽÀ÷B¿’t0ý¹WZ)*7YÂxšiÓàt™óbc9]´ß¿5ûlsùä‘Yˆ'Dhý"ŒTÙjØëøîqv%ã åÏì Pì¨Ï’b»ÝmíÏ×%)<´–ï±mÖ€ª„:¡ÚÒ†D6OÛOÈeÁ»T…?™±üǶ>¿bòw…Vj?²#aíKámw€þ«h- Äç ä³K2§{úQEãׄckcw¤{x< QæOå¼9]ù×@ ëŠG6õcmæ3–HYi1óˉ_“TQP! ¡Bö8“á6'Må!ê8Tp,`¶€$½ ˆ™ÃÑ?¯`·6 $’ü§²"b'0³\"ÇŒûÛj°ÏýÄtt!Kã,ÃÊ/Fçfîß v€ÄÅP¼,‹¤?€Ô²CµbToEaÜ÷¸½ Èø®-Gرí¯Â%M¶²¶^ký Â6ÚùB=´$«9ï¬P1`Tkë8î½wG.UÅ'póÊæÝ$Ÿ$˜Áª^ßþ<ß·k«äÖžkÙµk•ošù Á¦æ›‚¬hWhô5ð¦Üí’JiípÖµk¼±Ò¨?†”Ø/ôjý³ã%ªUì.&.wˆÚÛûØá"ç&8ÒË )&<šß¥…¢•ÁàÃaÁl°Ê’d°êüÜy9¦ªí´F1ºÌ_I6Oããëÿ!¦u¢ÉÈ?×»˜Õò'2àyzæÁÅk3‚ÎÔ³A¤Mtœ˜܈æ g×Ðñƒ¼ SΗ­R0â0·{º†çX¤@VÉÒ.]ÀöüLвx5æüSmQBÊäSÆêdX:FÊpÄ*0ycE•þDxÈÆâg—zb¨dûöA¶6ì ©§¼D #+]À4üÁ¼›õaþ®ôí ±ÉhzUzˆ‡EÅëÂiŒBÚŽ è#}§Á÷/-]GÚjá6I´(×>vÏο÷YvF`^½´6ažGO5ùöxy´ºžÔAaÚK­i€•Øê* ô#ó‚Ï ­»/ðì`O줃Èyœ—õÕ°»m0 ÞÍæ—I!;ˬ•û cá×Tª-E†0M†Œ@·7ÑMÆ œâ eW3}$º´]÷åË\3O+]ûÄd<*¸ø˜µšÐÁXyvù«Ö‹ÆI릧ËjDÍ!üX”TE£«ÓønµÐîo€±‹ÜñÜÿßåÆò²â2ÖáSË­,©µ³r†âÓÁññj„±ðº[í^îJ½ÉuˆIÖYŽӚǩª‰*ð^ˆöoÛX†‘±ɾ2-~ W (úÐ0†_RBLÜö7QÐÚQ¢f™¢ÙŠñÿmóá$ÿzH¸Cˆ¬ƒQs 3zWÙúH’ݺNÚqœ•BOw”3egA¯ÐP®¦Ùí ¤¡%\=¹~]‘ü°}.nˆ%£†¸‘‹Â§™µNˆOtyÐujÞ—A¢ûõŠVxx²Þéà2nåø&ü- »ü ƒƒü%zVtÂédÒÚdG/Ñ.È}ñÁL„I<]œ$Š;B?è’ƒ úçZä¦qç¾f$¼ãcD[Y’ŸDàUe¢º'Ÿk »VrôÓ+ƒ·}³'–û¸xn2Ôl$SÉ7JÏ|F¢AöºQ~}C|]}*aÑ}¨DEªp­¬}°éÌ!J‘¬¡ªý¼eqD콜×ËâjÓφMÒç…¤ÐròÇ1‹µ<;ê÷/(h=ÞŠÜxg¨ßÛM@®6&Qnë YÈ¢rZ¥ÄÃJmQa„®½éœ¼Få‡òjÉg|êª £ÙÍàºTÛ÷­üÍàÎëL(Mz¶)5Ò…›Ð¨FqÓl±/×F±aá‰ÖÖA™¶ÃLÔã–Ýþ5ÁÄf†îC°V±KXž˜Î¸ˆÒ?g é?:ÜâY:~›~=<ìZ+:6"vÈÓøHçüVóÄÎ\C­±4ès• ꤥJ©4À¶§uH±=ìLâ­Ò”RÐÁ.4˜?VuÂíÉ8¤>´sSy6ñÅϪÑüÑí§q‘F,xì¸kÓ#^Ô1ôR‰üÊ£D¿ŽLK  rKü$ØÚ^!¯éEŽÉ¶`‚˜1&[æãVü|®![ùº´gDf!סóM]$·âã,¦g­jÞIfF¸êT-Þ‹¨Þ碋¡¿Uðiœ-ˆ™»dŒP†V…tà”æ(¢õ7°¥9êNÅDåÖk4â㤈ߔ›¶¢ž§.<ÿÙêUþ¯™ [Ö¥¬¾·~íË#;–Ìû gz[§º5Œi\ª¶V¯¥½EQ1ÿm€» v¢1JøT±‚»MÊËeÐiÊnŸ[ÄPö”s©îãïbÁœ™T‰ Ââöé"h•‡¯HÍí<ȈON3ÇìÖ`®^”zæ»Ö÷uÊ1'%¦Lv„#Ei7.ÅÁÊн,£ãÁÆŽ'ùÜTEî—cËô;¿&F÷WÙ¡¿áìšM&]’m0JÒøcÕóÃ)ç‘2ÝN!8¥)é6)µ¯øRxå¸çéjìFÇØ)Û€+i’0œ¼^¹Ë¬jî2žB²ØüÍÄ<Ž“ˆœ@1Cc0§1"EÏSØà£4Poö˜S¯Ó ©Ñ÷T‚gµüqmÛñþƼy¸ÕÙU»`gÖ¾š›g·Eù'+)Ù½÷í¨Æêµ+!§$7Ëô]¾!Y+VS _&EŸÔ‹U»ónQæ½Ûj¤”?^¥¥È¾§çÂ2Ƶ‚ò$ªç,0?Úe±Pj4íÒ@´ghDNVßÅ&[í¤•˜<Ë‘3Ú[ø9 ¹ÂĨƒ–n~×’ãÇv£R>üˆ’T3Á޵»m‹_ü@?Ø;œMÄÒM(xÍÄ4Á¤Öl é‚üL¾\œÛÂ=:ƒ$3jÂô»4Ъ„{V{Q´F1^aÍ êáËÀÊý !ü&òÀÒCûV…ŠˆwSð‘5 ‡ÉÚK„† ªvÀdF…ÉÅiI_shó×B³Ö¶sãy†@W>I¶c™ŽòøäÛy(Šøñ¿TaŽšbž'2 ²=+eó%~kóÔZÏɤh–Pc›Éz/Z„P¸ŒE%5¨5+òRpDÂø|kq‹;O"‹ß;£vßGHÝžõxs‰äô–—Ô;hI˜„™pÉüÌï[—âyyÀ‚d”žÊ£È¸é…Å÷24«š¢œXÌ‹ÿÅQ°'JçJ¹Â+ú½Zy·Ü$ꦬÑÇn9ÚÕùà ¡sD£ŸNM±Úæ>`¤ðÏà¨Ò£=Šß rRoÛ‚Pn+,¶Š½ZÅ[™;ø7,¶íðEj G­<ÆÁO³¯—`M ¹dÓ= †ŒOuŽ''0(qÎA¼}"&ÊâP¬Yìœy4\­$35bÍ+}qýß eƒ(çUú¢B¼hfÁRèA»ry)6xWp˜…¦ÖgföÂÓIë “æß°çe—åÉÃ’ƒüÓ5¡‡â›NƒèÈœ|1¶Ë¸×%à¢l¨Üq£\ «UAd€B/å{i©÷oŸt¾zãï²¹|pJVŨµ3örjOì FiÅnIºŽh¢˜hù½V:p”Ðѧ'¬vMçB-yðW~D/Ô õf„¨bÙm÷\¾›Àc´M« 9¯´ée+&çžI'¢‰ä'¡?Ú¯&[èþ¹`±Gt‚„.ªOˆë`Ó xa{?™:7j#W¢àE‡!vr᤮Ô#µ$€JyýNâ#äa*c’ø7м¨rÎ/h³ãû-5…·R—«øЙéÄRQÂôrYN~´è†;L¢µUƒüÓ5BnÂ8uþ^ -]ßð l¿¡÷‡µ¿bóÕdÄA?¨×¾>–$»²—#?‰CÞ¸á'F1{zªõA¬6ß,o_„z;bãCG-ÔÑn±G=“[iDU‹éö5è"À–¬UµO¿Æÿ€TM.ñ¾É†ˆˆ²u>WŽ .övá»Öá õ¢àôsR‹A/ٻƎM: ù ¹Eäh6d¶ì}û8/Ó¡IO K2ŠÒ„ zÁ´~´6²m'å 3ô ¥ú#–­Æùµ€ÈëWN\á°K¹KÌ2@øè Ÿ®e»­‘6Òøÿ•ë+FóIê u‰8 MÛv'l"ºz‡.ZMÞuý•Fƒü0Z=Œ›…‹Ìƒò$×iöav«‰Ëh>Š?ÎÝÔF¤¼mp¹\¿iK$Ö1Ç•Äħ´Ë@ÛyÆ7tÒ÷£Áe)œ~uÄ}¸@ 0V*“mOX{u6ê‘PDŽÛßî¬Y2aùS´Î¿_®–Ú"û ÇC±›€ƒ±u›öÛ½ÿÌȧÈ}Dw1féõµ*?eå&,pû›öŒ~fš†Àö©¢Ï“,t5-’wî¼Ì¼TÝŽñtXPÈ]Mƒ„mïDö°'%½ü.Øž²õµS†R(f™ªêNëKd%ÊZö}8²ˆ~@ÿ/T{ƒÇ;ÈÏpð²’N‹XðU¡'ì7¨of‡KÈnü}b°LòØVáx@ï¦.ý^¯à8Íô­’Cå`"S§Þ^¹XôqÐpÆÐ¦pFö൬ºncE~@üÜÚhPmØñÉÄ„"+îá-ñÂö˜±µ_25È,ß*ôãzF7'h†ŒŒP@’艒a«€«çtÛeÍécâó¨èǦ‚¾ø0ë–(}­Ñ®›^þÞYS)‡»ï€I¢ˆ¦âË)H=H±šÌ+WhÁq!š®`~L@f^—X¯ËÆ„ùËümnykâÿg ⬠4y7B VËÑýÊJø†…Ä9üd8P‹äìsá€$>ï®èVµíÕˆÄW‡=›‚<èe+ez¯onZ\TBÁp;£ÀÚ0546'ñ·ã€Åsòée]Hße Œ>v+ ¹‰IúÝ^Š?œêþ4§Z'^/ý—±ÔXÆHÝVh:R=(á (àâe–é' í·æÀ0jC #ÛRDrŒßk47t)Oˆæc2Fí=P¶>ëÙ8R%VÁŒo‹d¬ýðäÝ>ÈÜgüMäUçKÈD'¸ $µTzDÜZ{ iôbPËÜkbÙL «¶’A9±òá½c:e` ž9Búm€X heÑÔùuŸ‚ 7ËÓ¹eÒ+Ú˜,ò²’¤£ASûÊIàç‡ò+s°øêadxò;PFêØ_uÜL¯^Áy!Ð/=[ÍH(3mx§Rbš íN‚he~ùúœÿøéÄ&s'Ö۽ܦf²ÿ‰µT4œBs‚«zÔâÅÛÓâ[ìýhœliÜQA¡6 ¹.ZñEÕäxV…ÀÈVÔ çkÏ"™tjž¿; )›~Jë6îÞjT‘EcüMr$º^¨‘ïÞ— ¼7ôg"aF¸~RÈü=‚Vuø\/üiÌH ÿÇŠ£PM°ïÇZÎÏ#š =ž­‘“[”K|o4(ê–Kè¤étµÛ“>s*sqIc–×AºRß8“Ð{¼¡çpf)hþÏãë§ÝG•Ìä.é×$~©ðÐÀ ªÖ{Ú%vaOt€0£&v¡m^—åê´ñ‘õdÿ4¿<¸ÎGÝ/”po\šâlü®*!¤ðZnØÃ¯ÔÅvî ¿ö2z"ý/¡ýjYÉŒõ±îN)‰?¯î¥üL¾\/ †}9‘sûZ¾m9¢ÀýÂNDà”†¤+±†Ûµ²„eì8çà…¨§[ý’5sH÷C òØ ÔÜ5ªwZaŒ˜?& Gæ¼ýËà\ ƃö€„>_‘Ò~ÇÞÜÕØ"LëîCmc“2@o¾›ò‚½?X}Ú>WàÝ@¬‚EÅÀ gO¦‡ƒT†ÉŽ`äê»®mªûzwJ—п"E·6«3Á¥kdFd@¾à¿ÂVÌ~rÀæ>5\p½žÜv qp“Q#^øÝíÒoI9š¢sîaüMc?v g¸™ë«ðd4žá;è"Ìøi›)§@”€ÆÚNǼ‘³åð;o+Vë‚7s„éA¨@“Ì*Ûs¯ÕDâ5ýÈØ~ÜÒëÃ@R1w(š„º_Nµ9š‘D Š°ãÝÂÚwwU¬éÒYsBÒ;F½ÛªHÞ6õÃÏ‹¾öÐsÝ€y€ßž¼Âô·+°wœæX’ïJ`šE„ªUå׌OB¹›ÙžT3£ÁIýÝd]íí îyý߃§øÿaEºÂRÎ]IÈ>' Ò7ü$ÙÑa‡y¿êñ͈­# ¸­!¼8Ò=øeêJ¾:Ÿ}-´/Çy°©ãªÂÊž#Þ„üm,ÑðÚ¸ëEª„÷DÒ¯bÑÉüLÌ*EîqÖwèÉ}7À,†<¿ƒýÐÄ2[¦0ñËÖ)Âÿ9ç0ÒmvÔ×ß$- $|¨*Œ''»`Šm»GSDU2ã]üIdL×tò%á¦F4ú¥»›_!Ç_Ó šìË_Ä%3ìé6tyÍ i+ñ¤ÿáÄyaÏ ¡ꈚ\Pý •ª}ùò}¾¦„–¹g¤€'c¦c\¤¿†£|¬„DjÜw~ú—{¸ö‚;ÆT®ôlJDøX»5ìWŒ®Å´·w(ƒ^`þpjp„`yP™ÉV½&ãM?þîu¥·6ÛüM{rQ¨<Ï…½’ûåÖ™ÖÎ' &»çš€ëzÊ,îžkÒT,OµéšhìcaÃê3¬£ÎHE ¼ÿú§^ [Ÿ$ _tb¢: sƒgLaµŒšÁ.A?©Õ¤×UV€œ9tK£ñÁÅLzà Ùc9`"ÿ²–{RÃô¾í‰#]I–‹\l5S;43Ú®`Eè@^’ÎílD`9޳@ÔeTì"Tê¨Ï¸]™öT§Õj«‡9xå‘é¤Ë>lþ#©!ž*ÅW¸ðU”å ƒP”N…©úÓ°$h˜çèЫüL¾b=èãÌÀø“t[\2ZKÄaº6`a:dÞ:^FmGujíß=ôŒ,-ªИ(íkR­Ò‘ò…cÕò¯Kyc%³ï±ÑÚ¦pÒÎ,2pÌ»à–Q3Þ+øoÒ_Ö[3…{ˆ¹YµKý¨!Üîn,4ƒ£^ê¾Ä¼Ä,Æy´¸k6Œv|tpÅ0 ؃3`Â#V"!‰mÓ{P;1öÃI¾üÈR)¹·@…¸Y~ôœpQãt¿7‚KSˆ¿ºT¿ üÓárÏÖËÁCê—ó2Ä.‚U©é"ßCÁ“àgÌU[£¿dB* Æ/ë›fž)£bEh,˜g䢶I‹“éy|â­¿–¡e,ߘb& _¸ë°¶¾¢M€Nr{ø\æžyW•v°ú?Я ²ÎAþõÐq2ÍR’SÕÞåÉ ò‹ÆÂlÎà?ö‡!éäª: ¸°QÒür!ÀÞˆ¸† ÅH/§bÕ‘>#võ¢ñÔÉÖÞZzÞ ­z5M‡½ûªü !‘:¿|L(hðˆÝQk«4vzÌð?äÊ# §þ{9jÿB)¸ÿè‚üÓ6xøò¿ò˜…¶m~¡¨ðB„ÓšRi¬¦_þmѦÓ¥0 ÆFJëïÒÑ:£Ú0aÜ: Æâ3`t†§ MºÀvĶôiB¥>a¢ÆEK*ƒûœJû&§z©XäÍ!JœljuQ{½Ú£§²à÷t¦É˜Q{že‘‚Žv€øä¶iî)á VÑ$Î¥å¾ï³FA´Â° ‰< ¤"F•—ÔƒˆX8Ý>Ý0ß§Aœ!Õ¿ K¥@×Û1}•¾9¥!:!Z˜}¦Tf@ »79µéÞQAÉ‘'ÛÛñŽ«ÆúÏ» Ã×ÂÎÈN·bRëÏ,$o[m"2gL¾:›¦ç/‰ùdú;‰]]üLØá€æJ™Ozã EYŒ˜€ãà§Ãàë]‚ê¤H:yÈ•M©?ìLÁ¿ºwwDRÝ$‡F‚ÎQ†«TìêÃ/GxdµJTÖh>Y©×¬KùR÷ärº&Êóv .%ê5~óä9ê-ÃàÛð‹ |íÚP³@EQ€ô£Ñ)9w†ÁˆàØ’%SÍv¹úb4W£¾9É=२‡`ÕëÆ?œ/Lñß%âe Üœ_ß/µû Ø¥\±–Eg‘DŒ"í1|¯€Ð¡·a‰rÇ.[H$ÿ‰{r«üLõW:èÄ%Þ'×(ž 0#Û71³ÉMD}Çé…ÙHô¦ìÔÊŸ0Éñ Ü„eÚ!Ÿ<‘m•z*ÕLŠØCš½J+[%õ×gITœ›0þ|à­•—ð,(”²ˆÙœVêšW;8q°ê…ùÑ<ÿù×Öë|$…Ú'¼¿6©˜Q(°×—ŠþØ·’ìö©r¦J&G6NOd:™a ’(àc‰"°2>5Ýö¿:m0‘Ëlë«8•v?'ýx×2Žm1RÑÄ\´¦¬ÄIm_.Hà)¦¯¥}”*nÔ—©ÇÁç×é‘F0"ìÍÅ)Iü™ta’Y‡æ­Ü|#ªßu´דæ½ߥ£àLõ1Ðð—·¬÷xKQÒ| ùуØ?1=Kqw¤]ŪNÍhR 2àò˜ãˆˆG=EB:õaWyR»ux .D›EÔè@Gæ@Д–»ÑQL~¼ö6mÒ5ß½rOAâJðmç<­¤©u5£C Ô +2ÆüýG=}  ¦kW­ìwDîóŠÂœ¹zÐQ…{nÂŽú"ÈòW†öR ý&µØa¨ …–8ÎfåÒòè§Z¤“"›p½2§_B*Xo±‘$ËI‚¶wü›ƒú8 w¯œBf– NÄõÈéeöE…ý~ ÂÃ#i6öè³ÎØ5GÑÍ6ðÿɤÈ_ø5fEM5½Ö8Ý€†ly¼”íL°ÌÅX;qÜD=BéXó(@EåzØ=ƒ‘hóÜÑ96iÜy÷[É•º/–[‘ƒ›{Îv–É„ ¯°|k9=¿XO.ùµiH"!`Ap®ÀÓL×Ççg”Ô{«Œàjy5âIP$ô®!!>šãšæ_±§ý/ˆ’UÒ\É7Ù;Dk¨)»‹ï[Î÷ùÿŸ­bd[Âkz”¿äµµ¢9»Cú=„7§¤W˜*hËU u·h)6K–:1FˆüMW¹+npÊ™B°{Æf+RLV¦*v4ÖÄ)‰ŒV•=Ȇ~æJ(“t÷8΃Tõ: ¼Ø6=í  _)’i­˜¢}¯*Ë9lŒ?W,.•?ü-qfSgy®\ßX»RáMüÛ»RÖoôNì=O;\{È'Ê«ˆ˜¯ò8*·²¥¾°G}9åí,d‰ HÁZ]„V*ÖV‚“†PѬ¾Fœ:|O9olDÛŒÞoÕùä[³A¹rTF›ÖÆ ëÉxÿ¡Ö ÷é“­ÃÛî,ÝòÙœbÆðq¹ü´0½÷§ ÐîüX% )Õxc·ýNb-…E•vºž®ãWj‹ÚÏ;8k âMQg%ú"Wà­JÛ£J—ò/E3GÆ0óŸÓ ’MniI·›Â($·`“ 1¦¶w@;6GÁôß³ÌòÂ+-á/4è9âÕñú´Ÿ‡n0‘‡Øk:(+Ím“f¶?Nf!Uf-f†H1±½.ÏÞº„ïý'Æ<«“a×ó%¶®eK:Ëþ|Uà¯ß €a?˜.JïîpõSŸÀ€9kFçe…ÿ($%ÉÐ+f#†*á1¾¡âìéøüL«’jÌLBç§Ô¯†×gœàîă¸a'ŽåXDŒ%iÛJ®5WQ\Kfòî2ûaÝÒé^ˆ\ßÌì&* ÞDá…ìWèü’0ÄÖ¿š <¥‰2j'3Ñ/û*ò°äü@ãõsÔGÐëÔ®eªÔÃë~œË‘¢Ï8SM? ¾HV9uϨÁ”‘„&SÚ©ÖÁþ†ì2#§‹@U„Zh~Q#Gâ}Pã·…ÓÝMž}¿cدÏAÆÓ±ayŽ;TŽ&Ð9©j¼s |/Z´Ì/â+x¢ìÈîe†Œ"}Ç(kü1†E‡ð‚øåáÅ3šã„l®C΋¼£»^1xv^œLKäÀ5Å~;Ç®ŒÞ2ÏmM‰µ“ ¸Ï7™OC°‰¦_&^BóŸ-½Ei¼?)ͺÈf[† N Žr£ÁMòçÔì÷ÔR>‚ñPMçvÿ@dD°êšXPÖ·¤¹8c1p0À ¹š÷}.<€l½®…q¦K—¼ÎŽ­iÐ\:u“mb™)U^e ¾¶D…*RŠÞk"âqFÛç-¼€.#d2«TŠÍ;¾ W_L #»„îw«ÕrDå•hìÈ韒ަûal"@. ´0GÌ'45Õß+àùš@·9åŸ÷èÜQãf,–ÂøF³<ìw=dn.‘‚׃Œ”ÆóÖÇ®Y%sl & ¨Q×R, ¼smla# ¯yñ`þLõFRâ 2•n+/ð%wc:<é§Š¡Ú± “ePó0OŒ˜Ã/» éA` jš½Þ7j›5I¯bÏðm…åÎ!R[ù Q ÔÞ ÆÈ¼yiÝü€ß×É)OK$‡÷𠜘˽¼cÞ1­æ²EÔ²*-˜\§OiŠrBoÉ‚‚ÞÐõï >›¯òØã¸wušò•Ðhóê"þ„¼MÏìw0Œâ2Ä`>¬Móæþ"@Wµ5qŒ[uúl '>Ìe¥aÀ导7‹*50šxz!D ?YƒQ@x×Dy˪’KròÇJW2v@æµ¼'ôcîÑ‘[¹1%3§pR—[ýñ­hí|œHp û‰¦Ü {Ðv¾21rìñx$¹œà_þ‘s¿Ð G­„W­Í±¸¥fñr¥ƒøKUrvkÌ|,ÆIð{ºüM&O¢ÂRÊ<ò¸Ô"v^¤ó÷H•9 Yc-Ò§?„Ø2„‚‹ƒ´Ä‘öͱ+AW:JÃè·¬:'ÞïSD(ãlm¼¡1äùj‘BÑò+~O$L³Ä'¯w˜€B?vÜ èNtö~ÎËâC`VŒ2þ£æ›$mñ—«Í­À1®¢¿äÌK P6®hÚ7 j:@˜±œ#aNª|&Ù PéD ãù€Çf¢Õf˜O1‡1‡ÞIœ/èÅÁ€\# ek`˜s¯ø)"D£W,ª@ü#æ3«€E_‘—&™5ÞÎPÄåÁiȨ%ì)èïü¯ý–·7ÕÁt—H¾œŠ¶vW•âK ¼[ŒU ½.)ŒÉñ2ÒFjÏ}sL•B  'þÀ|º?¿í–­rLŠâ[vÐò–Ècz: ûü¯x½S}ÔnÝøµ¦ óNäÕy…‚òUþ£ß´8î±|±ñg9œj&àE9k+D¦–†+3®q*³ÂŸF_×ïÄ÷±¨I‰æ2X;)ýRÞÞF¦‹bÍRÁùÿÒÓg`cIq,’ö–äy mb=^à:ˆœÓ´ëTâÄRãÌçzT/“ Ù.aÑE*OĨÚ£?ò4pÀü&šÎù¸¿{4á°ÖL>‘™}¸%â%üÐ8„kÀR–ržXÖO¡ãÔkÈÛmüL«ßWÍ Xõg8áÛ£ÛÞör¦Ó¶5~ñoôÁªñ‚T°¶‰pAA‡ù.…3 ­q¿~ïw_rú|ã1ÜFÖi›Ð`›§¼Q"Ö·hË6©•â¡þe†ºÒ¢K±ÁåcÔñ±ïÞóùü0ü>")#^Û&iÛ’Ýö*e± IRÐug5ìd:5»"‰´PvSlj|¿¾ÙâPlsÁûŒˆró€Öa2ô»<:Ý7ÔsÇòާü :ÀŽ®¼þAúZ®*$á;øß¿-¨‹'¨¤äøAB†BBäe‹JÝüL¯9Ž_ªÛãÒÐwþ¶°«$¯cnZëyr¡¥õ@ÿz›òc}%\XjÅû<· ¯´kÒS”¥‰“µel×D¬QÓÇYþm¥Å& \—üóí§îÎø 9W:0yÅœ‚„¹œWz9%Ÿë;Ç¿¡³èãv8 Ê(„bü¯Ê3ZwŶæ¥Ò—âù,€VîÊQõ‘y•°‰%ýyÍþÆELáö]3ØOéu»Ô2èÇÀüv•“êÞOÉ8YK¥‡ ѼEÚðºF•ËV³c”Ŕ囸áw¿Bïxp¥Êp ö`‚µWÑ)"‘—WRCï7“Vš‚Ù+ÿ(07Ò·ñXþ-tÆórjRýÈüö³M_š¢%r,b‹Y#ƒ+K[Χðe‡Å(âåFØ•ÍÆ#yì]C Áˆa´Ÿ”’ ‡Íª.TÅ„îòÝÅcCWzåqшv°×u÷eÏ÷=-ü°Ó 1«H—Ñ-KZ‚çÉ‘f"œ‡i{¡mÔŠlIdÁm9*Õ9_£†4(\ÄÆ–;¥þªæœ$ù¯ x³¨®õ¯b¢ÁÖ(r\†7ì¨2>êºÃ–ÑOJá/–F8¦¨öËÌP+­P‰Îê%ataYpLábŽÏƒ£ÒAÊËÐP£ m¨…9s\drï{Ñuë.Þ‰F:fæ%Baä†i0š;Tëó€Ô¸éåHpyŠ”ðá²ÐøüqS2ørŒ>ä49æ>¹IŸýúñ¨M# óÉL›ã¤Úü #Ì] ›šîoƒÂçÅúïü±…êŸÒG¿w?VDö¶DUàkšÛÙäÇJï"Ž džª=o'ÅDF<¤¿ÉD¼ÓQ;=tàСû$Cr~ç„(*̾É\¯é—pÂÑ´hëŸ?Q6P—øšs¹Rž"8…½âúGìQ¹ˆ¯€á™Z¡&äìo. ºÖØgèÍI4/? Ö—p¼i¦îÙU­&ù£¯Îxzuö _.XYjëÁuý†!߀€€@½Ƀ•ì|þ©jĨP<9˜jÁ]ÅëækÛr›Æh]샶}}1¢´)Qw© ÚÈf?§µK¦ðṺKéPñü°Ù!&†.ºz:…f‹@©Øº_Î÷Ãsh+Ø”¾=i§q8îLÇPðzϿ©´‹–]°]Ë[¦"?vO†iw\W¼'œí {jvÜK1\_£ÈLŠ“Â“·¯¥§uKø è Yæ(Jœ[‘;®U^' ÌÈ” 7Ô‰ýöˆ•>´ò¬²Âõã[ž ô„áŸÿí£ÞÏX& F©~7#­£ÛëÙ+˜Õg(ÿÒAv&leg‰Øâa‰Òâ<ˆw¶ÀŒeËŒV¿Íß$ú—›®Àoð–g‹º0Þ Øã tfuº ¾‰Y‘ Uˆ¥6ì¿x^ìÊñ6-V¹àòü.'˜ª)ÈЯ2…I6òM¸å Ú*ë_düRû#(j èóqGHäî¾ÃˆX+†{ÒrØ ©ƒÌmËŽŸŸLóãÆ˜Èœ?Gµ¼çÞ~óÔ.ȪymQ¥d Ì@Î1€sÈ(²àx@ϺÕpŸ?ü’ß*ŠÐ//ÎRK}ÔG¥Šý‰ß„èFhûÉMÓ}k1p€5¢$GMÀT¦¾ÆÿÙptt Ý×?wmÄ#ÄÀªœ9ôÛ:FŸ§½zt’¨ÛN5÷Ì}=¹®K9Hw„¿‹löBðG×RáÛ¿Ìå'p˜ާŸù(|Gl¹êó©1°ôJ@¸L]ü²(*ÆË…Òª.+ÇX²m3ñp° ¼?;ìƒö §¶ º²÷·o,•5Ën{ý{½íúÂë8PáeØZ§†Ð\™s·ò}ž,¼Éˆ]<Ö´tO7K‡¢/Zak~*|øzñ“ _Û…µ€­°°«s$ïÛ°}|‰0fUeN$îÍ…¯«ù‚µ¬h·%í ¿d¶/Œ^ƒ‚ÆcƒøãK{‹âU¤Å/ƒÌDÁ yŠD‡Vuæ&nŸ­µ‹qüæ"¥Ðbâjå¹±´Ðq°Õ#`^œ° ùß÷ YöÆ9TˆÔÝüÂòüIâ¹­ïA,÷qõ„Îï¯"HÑBžE&rj6ôœTµºÄ&k.þóe9¯‚ÿŸ×§Ö‹Q*Ýõ†slòù±±¥äX¨Ñ^±f9§ÐCSüÙVøÆ¯å¨:O¢ªG ¯ÛÜcß…ÖÀ„CßeüC©ÁVPÂåg@zâMçîÄ#˜c³ý=¸ôóV¯Ñ‚ýÕY@–>~ŒêC\w…®˜p|Û/±&©?¿Ic~ßãâ6vQ[föU¾hðnöN ½`ÿmðnìû0¢v€b*eYßÊÜZ{+º ­ÛÏtÙU]z®E P1ÝÕPáäTAÒ´ Ð–k¸îƒ$ü±L]Â"ƒL? 0Ë´Ü{mä!yÅϹò캶bó Ú7Æ U£RÃ)ÏM–Æoo&«êÛñf£ñJ )÷.aP•lzŒž¨ÜÎ þ²íp F[v$*§ÖÜÉ©Q<ËÈ<ÁFÓWWpÁÄCƒÞ¡W®¿ieÌw5íýpdÇZ”~èçz÷ɪ3üe]{01²o­û„kºî:µJz‰áQ Mv|áÕuÔÒÀaHZOóDè,\¦žN–‰c Hp:½ˆ"o> _o¹ªÈDḢÞÉ™P‰9à n)dj¸êb-ß‹ÖãHÀqB²ü/ü°ÓwŸªÀ÷áöí1Zµ®ÕÿMÊuP{ü¢V[ª½B’P{%¢„AÝU¥Ot °DxýR ;aƒÈú5H(¾, €S)Îßxí-M³ÜGà¯ýÊ~3Dô£nµ¦— þ1!` WöxQÇe\¡`PX³Ú©÷ ’ÅåB|–øâÇè²[æy˜Ž s¡³h,–yZU¹„п‹Êߨ+·ôü7åN Ò•bówQøÕÑ5ªïyZ¤b8‹Œ†\tDˆ/ú9Yz?îÑÇ|£8×¼ “åK m×^ËÝ«@¯©Üf&ÎÇô„¸Tç‰êgïPíß½Ò¼ûY2ü›|nm³Ê’EzÁäYå_÷O©Å³ ŒéïöÎÿȳÝÖ=ÕgžSÎ{”¼ö&BìŠØÓS—-NPè5ľ¾™7‹lý•±îg¥_|L}ùz«Åв~“±ßε1Ÿ5–ïCå¾^Ø+UåÄlÝ ZÞÈ9ŸD‡·‡B’âW­s,pîùæu}¸ï”"dx–eÝCZ¡Á+KÇáWQù¹xÔs†è%Ü…ÁÝRju%ì'çŠhË83a§pÀº!$9aðÃ:â1œ@Œl@O‰fµUæ’áB•)*©9nÌ5¦A‡¯Ù%ùU]Úí½7Aƒù¶y¯ºðʉ€8 R§ÐGÿi!ûŸ´a}v’¸ ¼¢¨fݤ„C¦œ’G½÷g=õseóÓÿ€0ZÀþo9è£AW.2ÆkiÕE‰ºS?¾K +ÉX„±Ö›Xe§¾(U þçËÃ3ÌØU Öù°4†G[ï³FsH±:Øw!®Fz…® Æ/Õ’è.ý§thGží¿ÇD8 Z ÿŽºIîœÂ(¢Öbû`™DéëZ!EaÚ9)bfÄvÇ=H™;X?5œ÷!˜Žif²ÍlvUÓ#ÚÃMîïÏ9 ‹LôÖ5ö³Uòÿ8ü|­ƒháSÜs”ëàå§ç¬t;L7¶»õ”¸þ“Ãöh2i&§îÂ.„âGY½¶£%ÍF1šùhu}^w5 ð‰ZÔuõkU¤’·»·· |JÎöè9ü\ÍwG+«ÊÑÎçŽ&µ ³”?^_[±õòéº7XlÔ8-A0‚O}M&·ÖeT{ x°xî·˜ ·¦¿÷4…N¾x²’âê£à$“/«³ÿʆ‡»w¤¤‰i$/#§˜*GxkÕwX…¼`ÚÄ<6=4;ñν8ÊWJoêJ#3.ýel!5J>Œô¾ëqdË´}ÕNZº)„›˜*s.W_Ô??˜£s3Q‡ÖbêÁ¸Î(fØ»~ˆý¾\¬\Õ•â¿f`?ޤc——¢õu˜l ¨šÛ„Ûª‚;þ‘Ö´…K]ðØQö3Ulƒ,ò\†kè*sú@{îšBmj¿+¢@™÷MÔ¿ô¯NÔÝ8˜òW}ñÞÃ¥–NÊ妰ÔÛt‰²¶<|Ë»f‘½ ÆÅ‘)ÇF˜›É3Æ"›?άêÇœøç¬Œ´”€õaDI«­1;ŠüI_ÓŸ*ì¦ëH‘ý¶Êíã-` ÆÎþí&C1Lé2\Š|ÌÜ ×?â':sÄ8ÂSy´×˜sÔª.ù+©@Ù7Ê©;D΃Mù0 c5™×熥û)À@oCzYnªoÞ‹¬º¡þd(l~ZÏlùº+ú!Çš¿†ÞOɼQ¾Š ÜÍ]Üp |!X\6dZÂx‹ÞÀÁÚŠ®Åo¶±Ç÷Ø mq¤)8ÈäÌkø7t©Ïx–Ïê3‘êâ( 6-bÿvz{´±f&6þ`’u!z8.ÆÚz. žr}$ÿ«˜ ‹ÇQüÙm–=”p³åc[†[ó$ˆ—{iæ0ýˆó†nÛ-£Â&ÀõË(Û•/KJˆÏ¢@Pv¥·*NcŒÖ]~²Rãæ?ŒÕT1V…éþ‰5ëm£Í™¦n(àh¨o]€O«"íŸlÛR$½VHÃEq¸Ñ8>R:-ÔÖn‰ÕíH4R]”ç£ÑKxMº·žÈçr‹¥…%t$¸‰Ž©F÷¦úѨ/0;=ÈžD³¢[HŠ¥ƒ‚¢KV}Ðû$Çj~ª–saB…6—8È]«¶Ôžï6Ñ(:òŒ,ôìwŒ6ý«E·eóLú€ “agOòŒ ±PüÙsû‰€hÆ•*‡Á¿†äBh°( Kw‰4SÈÑÛ9‰Õ0´ø©XíN9]}¸8I—ÈÍŠ$ß&ïL|šÍø˜Ù®›s‰rÞȉ¯­RþežïxjþI°ù÷Xv²º)Ü\çŽz8äó¤ÂüŸÞk:m,àeXk,‹Q³å± ú„ÑÖhReÕê(ÓmGr¶ ÅKMùµÈ)­k{\7¨ÄA½å†vÀMÌ-ÓeÞG-?›ZG]âgÞR¸(®—cï› b±ƒòÒΧ£p¸oëR™«ÙPüMXx¼Ë]ƒÕ]òߌ™7KÑý‘l!í¬Chôl$SÆí‘_=dxMÚÏ1åè9TÜ UñÐí"YÙ« O÷Á1=»ÿÔõJRôû0º^ôßG4÷Ño>—`sEéâd€ÙøêÔêšÊr±zÜRšçÕR•½CÃ9¿þ8+¾_´ÕüúfϹ–}s~ÈÜ’ÌqC«QÖ׉Ö5*Ï"4)ëIÓÕ/bì³ êÎÝHÆ®ÆgÙ­§efN8]Ñ(±‘RE‰ܵZ¶‡"9ƒŽþ„éÕVy»)N„~m7?AöÑ,$µ¨%4ž—'‡æŠøº¡;ìi5Ôü‡öùÆF®©g«42M#Zâ:–¹ú°@üL˧a3L•¦M4Bz»u^DaŠÊrý3]QV­:—Ò+·A´žœV9À­œ‡îo†Ï— ™‡ÃªžÄRÞ  xè$áûIø ™2åñ"^Ì;ú¦x•ŸŠ™µjmæ—Á¯KtQÑÍd]J`†í¢ö; ½ìë©–[¤34zÃ0&µ¤´>¤Ð8S—Â)ACzö€<%taSÉ™¥#€Åµ²¸š?NßÈî9ýÙP¨UÒ¶L(½Ž~rnlUèˆàüB+\fuffFÃ\z;÷tPÜM5Z§îƒ–%Ó‡i Ùoxƒ~0•ÈŸªÐìâg)û«xò›u‰ü›·ðPTb[<ÄßÁÈzú,x ÷òw-1$ì§SrhÏdfKí¨’ð˜á®öC¥^&Bº‘Ý9IšÁ5¬7[„ò?¢çPçÀL6;Ô!;Vý6qr›wž)fëb8@ýàîLWÇ ÃM¨79êaNM4»Ò°>‡]F£SŸG zÍbÌ‘J7Ë€]›Ë@@®>œç;JȆô²{c+ízjÜ®B_ê/0ägd$Ô;Þ¹–GÓu‘4½dný|fjeœÕ÷¥«ƒî½Ié¶žIñ%&. â™wÛñ°+þ}Ü3ˆyü›À ?«‘TœþÇJ ÉÎ)ppmK|Eæß:óôÝ" Ž9+‰BÙjk7ét_k;d«m¬z±ÊŠn˜Q†'õnÆË,®2~Á­*ƒ€ÞG­çιßw{•c9¬oîÛpjxDrÒ š¨ÑXdQgkµ?:€½!×½Uk¢Ôûp@7.®W(dv•n…˜ÎŸ³ Õ™ä§EtG/Hy»¥a¼2_•£M~?¤â¶Œ«¥%=!D$ˆT0UȼüÉ‹æ~ÃVT²VEv’¡wêØxЬ]Ï·öIH|‡ CЇPâó(d!»Z9üX&Awk]Óúà kQLöŸ-ŸÓU¾— må!jÇýœ~4x­5¥ýsŸfß%ŒÖ+ Ø=ȦefUn ¶¾ñÒœbgÿû\ãˆpk:àæ2˜µ™P[ôªîê»6©ˆQ ÀH1~ªÒú»u Ò©OìR(6qÀÀE&]'Äxê¡V=«ð´cNÖaEÿ^çóÚqî.zlP-ÿ>öøž.vx¬wnlxàa¤!>ƒP›!3qqT˜?` t]ùzNfâQíî¾õ.‹ `ä&þ«ì½¹¹ ø ëº×Lð $ð(àü/0™bj×?H´©X2ïzƒ=µåŒêÙÿŽþè8t®"-|üŸÞò"ÓKÙ¿çÜ: _5j^ʼjËŠÎmx]š#…8À¹m n©\#þš_ƒð™‡Z¬òÒ\D‹¯!¾§ÂpiɃðGç\cGÜž5Q¬b÷N^)Rà»mi¨Æ©©û^ƒº‡h?½|ábÂÃɺŠ((-Á÷*ïú¾U˜\ªüI÷ÊAZ™ ]Ç3öQI*–Qçè>Gñ¨Í¨´-B±Neˆˆ¶ì9#oÅÎä’Ž†ºÿ‰¦½ èòO1Òn–üÑ bì8wèñhòš¯¦È¬@i*ãÁËnáó:MV%QŽÁ.=¸ÏOõ8H³±à©IåʉÒ`œ´dp£Üô3\Ìï%$å‚ɪn½g,•ƒi]¾Ë®Ãõ;uéWë ©û˜H{T{Û=­cž•µÞ©ŸsÙô~»ÌIƒôËè?}åM8ê3-ÚóijWNÏ™}†¾HÖZ޶ ]2x$_ýÇzþ\{6Ü×$™¤Q uÍ;ß|z Â¾· \¿`i¤4}‹8µ„Oë5¢HMÉžÉL€Xó%ü¯8Ìé¿°¤0XW=üš.þ–™’nQÃݳìáy‹Ý3àÇVž’Å5gwo ¾¨É>9îïÛù#±ü©¤Hù=†§l¶âÒòD:°”R;ýSÈR“™ª)I{n£H÷Wrúp‰dZ[ïD›0Îó¢Ï 0 öÅz–2ãEǹhÙGPÆ5NŒqÎÝUÍÈõ„f7Q¨„Éx3Ï×Ë¢S+±gdù IÁÃåc\×lúLùî"l/©^å[>WÆ÷Û ³òGÀvƒ‹ãØLËDC µP¶žÂ×Y}vŠnCœ¢žï¼º"I“_DÿøY F—Ö|D³Ë·­ÊÔçñ01œ›71µª•Ëô—B ÙÁÓ 'Ò7‡iø±ºXæÛ¸.EBæÞù=rÅ‹1n±ÌÝ®5Œ .À"„øÆä½ Ö§‹P>Ï™”qÞZF"_Rw/øZ:,e¨Øü|¹ +ÓT¤­æ`,Ï[.ÐûDÁ¹hÆF‘=ÅÇ‹Ó݇üM”%{‘’õÛËo¯…¹Óƒ§„*»Q·•`¶õ÷Îù¹5§¢8C £ 6'W§IJ‚âáÛÇnFYZÉ€®©ãÇÞv%"tg¾öø‹‡$½69u÷®èYmåÐÃ×~ôY£ßƒúv>Öêª>°¥È$®2K¾kñ-ÌÅ>ió<´ÖºI™”¦¨åÒò,’¥á!Goå+îŸkjʨBUr»FFß œúfASJ@ËCJø‘ê§›ívÊ$R"lf/ÚÕé¢Ö ØÅgLŸN‰aG›DÌ6+íÜ3WZZ•;Æó5à,áûfaAC/°ÄÍ|üLº›Jî—êÊ ôþQÕÁ¯Ô'Þºf­½ê))Å…Œ”^î¸xï)¾•ƒ5oÖ0š[Cò‰øÕu\xFTÜÒ ›u¯•0¼,Ü^ä©M¼¤ ã<ö™œ$á9 ÿü´Yüɵ|Qìï«'|X.ÖÇ[Á¯oj÷£°[Û§Ó5d<8BÞ²_„²Ú_[ ¶³ 4 n3]ö\µáõQœgR;d nÅÆ›ñð?½´ÈiØGÂXr„ï;·?Þyçkùí E•H4ç¿çþw_€~w1Â6fv6‹G9 ÇOúȃíƒVB¶˜ò6œn¯¼±Ó&¤üL¼Îð ÷"«ï1³rõ{®cžÊù›8E¥è+êyŒ}Š6ÁdI“~Šòâ wõ\Ôħ6FÊŽ»OÙfvØbZùƒú'@­™«\®t¡ÖéZ´uÛÏÌ/¡!çWãò%ÈS ÊDáÁ$å7žÆ„e4E‘÷êĤ•xÝ;ïÔâ7‰¯ÿ·­aT•¿ÞŽô®Žž¬d—¸OŸ6Ÿ>x𠦧²ý=¹ñt~?ãuV {”? ›híãÅP»„NlƒË ^ûš›;ؾŒ NÙ¼¡0Àg)kpÁò‚/eOoò<éïu*ý­¦£º‚¬2øüñ‰RÙ. ,šŽ¼}¬ÎslZ£ÚÐUõXQ(²\ûñ8µ@% @†o„&{Öœ(ËK-ÈڤĭüÛq{åVJh¿x‘KðÉ·UŽÈAžhÑõ¦°«Ç «V>x2Ã×~ }á^ÁãÂÚ—´M6å–U+ À»ilPÆ¡Nž=ö=çÇðÝé¨0]FøDÛøDÙJ,ø¶`cÑæy™.íDf,µ5 Ä2VWýÈÀ.ÅPÉrœ|€„¬Jz’rýr«2-—ç+‘³‰©9·c Õf¢_Jx£n?×o¯A-ô¿W¥4áDŸüI÷ ±ÊRÉ—þ!ýÍk9ÎwÒ÷) 6\F€ã~jw–[³4 ‰üxVʾb–ø×Ë7:þý¯= »jDNt¸ ×ìò§ØÁ¸ €²Ò¬ÞåÈ$°¡7Îß'ÌY·£X@År>T·™äª×NV‡¹#Ài3¡¤;\9õÑî-sÐrÌËK]ì”Ww§QïöÞøý™%VãÞsö•ÝQŒ£g/“¨æÐU‚\u<­àáŽ"¸º¸V-»ó<³A$Ÿ;¤E´mW#êY¸ƒkÄ[Q%:voº==³[¤ÙØ_÷¸?ôüLÝoRž9ÔÃ?¾<9/F7µÞ×JDp¸‡Ñ/ÐË–Æè=ˆ"Q~ø&ÿ²zršÈIt®bºëË•ÌÄ}4ÅŽEš•íRÅ.==[+Pgy²´ÝdiÆïM^Û"'*ên‚ó\_DÏÖt-,„º)Øâˆ«6Q%LH-Š•ÑAf–0ƒÁO•ð f×ÌÙô“¼ ¡5êTÜÀí>H¯Tdø«’…(gQ kz ˜c«JXrzCü?!¹i¹- @‘äŽbá¯Ô,à½!ÚÇTX;Ñ ûÁs:7~ÍbÌ^œ\­òQF·gIT‘FH@Í<7{ÔîA+üJ™Rj |÷º”©{ãIÚo}<ɤq›éé GýÓq)pråÒN£kK[Ê•'p,܈rLhWÛ[¥¬½WzÝ ’° T´ÓåÖ; £$póüí!½G醴©ô$Óuïk‹ø[·Vn„“Œ3Ëèw~¹ü Ø×\ )~ªN†PaéûI³\< ~JÖ´’¥5ý×ÚDé«j+}]}ª%±êü÷Ú±©yÝé7´ÜòLDHœ_u#G€úÔ0½¥}«ÄðY è“ñ?¤Î›ik~ÁÿÓ\ëÝq-üL͸q%‚yÆÏÑò¿p·gGŒ£ÇƒT@ÏÊIg0ßÄ *ø÷šH:ô¶bã«ZL“³=¿êjù7áU®ÊºyÏBxY)|rºÞ.¯“hWÌ·Ü1+BuÙð'ݾ-‘ΟhÙ\³„Œ£meJøÕ ´„f]…Â¥¨æ]_mãejðY5‹ä˜lo‚"k¦I8©QÿsåggÅLw¨®ÓÝ+³i8 *â}µî40Ä»ÞX¥›¬±!äb‚ã)>÷4úˆ U›mRü(ŒÐcÿ=Z™ ó"N›tߤM£ºÔy}¨#ÀCvëòöØòžY©9½†ŸLOøvÍ?¬fRr”÷ÌN¶FG¨CcgdjþÌ Ñüêöˆf#ç5§fp¾d‡‹u>ý\H¼úè—¾C]’÷gÂX ‘6*Ï#ÔV—Vrqy'LÃn¨|Ýö“Á§séÏ:¡§œÏUƒ¸Z‹¶›ÛaŽÅG1Hˆ~!x¤ìôñš>—èל~è>\EÕ°5ŠÈ v¤  NR4ÆÌFú¸úÙ’}3‚Ì S„3ÙM—l³7ñšsØZšÝ$ãÆ¢Ó "ÄéžæKÀ©~×G Ká„í¥¯O†ÍJÒâ%Ä¥þ'Oæ£ R+@e¥ÆF÷ ÄìTf gº¶ºÚ[xKˆINwÉ™üIá§M©ÑÀÿX(ÈËÍÀ‰e"lí›WßxrÅ'}· „ë¼À4sw®ëI;îñ-’î¥vÉ?ø_ QüÙ¾&W‘ù#g™Pç.d™ÿÛ‰ŒÝ;ðÄÞT›fA} _yØEQnî  AT¥}VÒ:xF¾ðV+|Cä`ÙO\«!j;¯ †jV¿':À °åŽÇvªS YÐváŒU*VlÿÂßiòÚZ>„eVW¥Œ|³£›DpµÈsÛ;ïèÒz¯Òæ 2|]$8åú Q¹,­AÕ/obÄÑW}ÊÕ½óIv¢õˆ‚ø\}ØÅhK«ãiY díX«àsè’ÏP¡uã-Me—C‰Àxý–ìª.óªÃ΃Ú<¡ ÷\MLÙ´„…Qa¬âJü|¯l„r†º2SM_e×Ï•_Kø¦¨zWŽLv®"·ûîgTasŽupÉH ôüut?¡j£º&†àÎí4&y]}î{–|DÄ{õ×háï¹i:W¤<ŸÔþà"`Õ@hØE¬ŸŽ^udz~Þw ƒ¯‚džRC¶“–ûÇÂC"dœï–¥b”æN€äħ3¸FÿP3…Ö1úPÿ ¥ ·Ô,øp–33½–Ë•€©˜dIK²©lûš¹qÉ.©~%©¼#.¯XÕ4É Äúw“ÛÒ‚ZÎn»ÝÔþ@LŒÌØò;<îï=x¦*ó[jM|·ª9$„g6<Ÿ4¦¦€2 8»²Ã#SWQ®vp"y¢¬š Šˆ,¶Y§…ð¿Ã¹vK4³'é?´Æ·ô/]v»îR”8– @F£)XôÊJögz8p*ÊÉ!ÿU©¨S~œü‰ Åmmô@ú»=WNìPr£™;¹$¥%'ýÚu˜@C×¶‹öy‘+ݺå"þÂ\é+÷‡ê–³_Õ÷\bðÂBÇ‚4²:F‹Ò²œ¡ü6Uü:M£Þ 2±kôóšŸsiá'®5·ãéK{ß|CöИÈ? ¡WóâsGz–¥†‘ÓÖð'÷óvg]N¢×Üé½+¦Ë Š€Ç°ÕþI¥ðÔ„7Òç'ÐÈûT³¸jµ;0µå;¤ltíÒD⟷c8±õ+†ºc€zû¦ô4Ⱦ|èÃöp©ËØ´Ÿ‚.ëΆ(¶ùy]þÅí_ÎÀ|L[µ0WÏ›¨$ü>ý#Ë×} Bš¼¾n4Þ è÷¿)•À”¯k571‘êÈítøÝŸ ïê‘ÑZ¤ü|¯Ù…?æ~bÈ•­ÈÇçe¦Z«AÏ\†½¢)$¨oõ)¢Ç£ßuîÓèä‹ëï4ÑŠÑ‹¾Q‘½Åð'ÈRé†>ŒxñÃ0XPƒ/芭¯³GçÍEqA™ ñ´–3 C޼bëØÇz®g¬S&E.?1Â6õ»:+`ñÙñHëîZ”N}>;•ú ©´0™§ñu®\“Œ=wZ‰ÿBxï© S¦§|{L´“`>­-³ßÓŸDš$Âw<Ô¡—^40ï(¥¿ðIíñØã$—å.3¡¿.íÇ47>®È›„¸â{¢GìJ}:Œtï* d~ŒºÔHu] Æ¡¨ž†Oe­­Ójœ"ÄP&æˆsøé™JõŽ>zGR94•x䈊ƒo»ñëD¦/ãpAþéªm—Sßô{õ èsóû.ˆþ p3y[¢?ºOËo}\àN—ÈéÇGÏ|}èUÜZnYh½¨sP!jGDð2UîiúO/?h÷ëQ•öÏAÓÂþäÏÙ]/ÇAp#r§ÔŒ·RËù7Af‡‡È,g| ?[ñ\ ‚£û.¹¬âÜŠpîw?M8)’Kwe ‰õ¾ØìSd5ü}[c(A&²×=æµÐYÈ“"Øn?Ö>³?ö‘éÙô»EÂí³¯`X[v ¢ïvPe'ïNkâJIàõQ"½ƒe‰§ÜBÔ_™þ¶7{ª_¥U^ îßOA°ÖeèA¡v¸Jô"ñU*w›¥á·Œ–_»ƒ ¨„Y¸¯©CÞS]ÁôðiÿØ•uvôÅÌM.€)¼¨= —1ic"¼÷%Ö˜¥‹ùÒÀ⯃fI¥sÑÊI«1¥= ’D:hUáŒÍÄ$z£IãC½¸J]Ø`Û‘aÈ×óÂ÷ü}ÎÙ¸\pi›^ÞŸyhW·GX:Éлå"ëí[#a†í <éœÁ',ŠP†Œ8˜‰LŸ¾P.Œ^{ nQj3gf«ŒÇI’ß¾áz+ꟺ±­ÎXvÇbózúG¥ËÙ””×JUjðngÉã/žWÆR]®ötäd'ÞŒè,H‘%ãQ¤{åü6 TÓÇ_^§ÝUW/{!ˆM£¥'µ)ôØš¶ ðM&âî²”>”çlpâz¹Àt¦v×oùXŸm¯Èëìêx¯áÔc+A”Gl½ÓñM‡’Qá¯Læh£2™Eóûõ Iô0Hý 6ØC³O×Ãß88]‘¹üè_3.*¹M >Škm.U}‰F€]™ÿÌ”ð¸—C‹}¼vHVßÛ@]¨O~”mœ=Z€‡’Æ®±ÅKª‹›Ltû»x†à5&Ò`9§—Ä òCþ³¥wc<€Ræô¶Âeê€[”Ÿ@égWüÆ„ÎÄ—{µD¤9 œŒkáµMáH“ºsËM‡-Mö“X"D7œ^x’ï—eºçÞÊm?{i C!Þ«+FŒv ø1áà8&ÄúE:†«lþñMwôìÚínÜ‹h{˘1+{é%xKúº÷…Wt)9(ãÆ(ó÷…ëƒRb ¹]+ìÒ =¯LvÞÚ‰á8½ÆÂˆÃë³Å­~•f¯Ôë i_蹺"9Ê[Å­{ŠíþÁ½wYµÒ­jÖÖ« 5šð8s]Â}â@ÌÔïv™4K¯Ã{°ÉÒ¡’â®æÀQ 2üM§ CiéÁôžêC#p;‚ÅŠØ9Šb²ÑÕòf(Œ»G=ÚW¼eÆ£ÿð/ÂËîDÿ“ÕÉ_ºvFç"ÁR>ËZ;åý¦Íù2)G·h6Âåàm<9w´‘ò€ä…„IYvY"7ÕÈ=ty.ýpžœç®Rö×oCLåE–=Ñ­À#|ÚWyÈEõÓ÷šIâ(¢Þû-JL•QÊ㎇²LYq‘ Y5Ò_ÂÁs·©-e^¦‰¹žÞºƒP?çkKDÑðžHej^缞 ycGLfq÷íæ‘f`R¯ìºÈWü5K\~„ÉÚM‘Cè/"›¹ 3 ¢M19ñƒJáç&ñ™!ðXc¨¨Ö7:'âˆ2|ûß8Z7í­û‰€=b~Ï—Ðêªî@¯ðÝÐÊEðSs=hŒ±ÄÆ›×Â|Œp²¶of`Z¥©dW‹Ìv¡'wd…I)ÛÉŽ¦¤ZJ‹{¸Å“^#2°e±«’XZ æ0œõ%PÉ|@Wuü¢¡Ðä?ó¡CïShäéˆ=Ø~–˜Î‹&àFs!æqbÄvåæ@M(«ò/ún¨ÍYpvÅ nµÖ@P°G¾G­µÇ14WáÞ”}O,xbsŸGü15¿å¬²Òήè°ºÌ^Þ¥B£ƒ]Æ#ûA ¸ ¼cìW2O½ØJUƒr€y}©´ì§ËœcÞ3ft˜Ù+¯É¶…Ôs2)^®œ—ºhÆi˜à]¸Ö—z@ãƒÇÃ_¢KŠäñÍ…Qj¥Ç.=w£]}ÜÃôNLÏX´øµ‘ш?R ždºÝVKÖ8Ü(Lô)ÊRý4 Ç638”ŠÍ6‡oUYs ÂZÒ–į7|9±Gú™A´ÐŒ›£ó&ô×”Æ{¿@‘a¢ DÏ™bYí(ÿèò‘ÂM‰}gŽ·AE5å?º;« Þ=ª¯y)ºL©ü{:˜j*?[-q“l¿G´³et.ˆ5XÓ(X6N[W±H>¼^1Yr5[ÏÂ×c°fÁ¬ò93eÊs]æ^”¼¼i‡èðK¥’\˜­—="œŸÜ^­=)ÆS¶4XXA“"³OoFÔÎÛuò¢/ Gm$⨙‚Š×„YHlñ pÇ„5ì½¾QOD¸·">Tð}ÿÀ"‚Á+ј§CêÞ="xÁºž#‹渢zM hL#¯xŽùî{¼šw yÆ:TœŽjµ|à_E }ˆC]²µ`µwi¬Ï€Ýü8Žl@0tÆ–#žŽÖ]¿&RÁºôÚœ'Z&Ú!À˜þ©›`õz*<Ö™æˆU@î…G˜;R¯H©¢LsÀð;Ú+U$x.η0¤ª)ÁÅcÙ×µtt†V³ z½h<#6 "ü=Nåo™“ Ì¢Ç꜠¹˜š#Ÿ·2|ósEï6þ7¹§ø¢¸t“If;Žêi´œ‰ú@¨Û’qÊ Ø=nÉ¥óØíÎŽŽ/ wÏš •©|·Š3dX&ÓußÖô~ÆÕU‹pôŸüM1ÙZ.vÿ!jF‹;õ§Û€Ñžšà_õs)®¨ñ6 ,œ3Óè_aT"f oFÚ,Jðx}°#óÂ0ïÓâÐI²mˆBa%eÈ/ Ñvrq‰¯È!| Šù{¦Äom ÌF ÅuÈŠk²Œ6èçq®?màú(òÉ(é9âpßÒeèO þý§T-)n8`¦¤=Û8³]Ÿ½y”0ÅÝižäm˜ eMe‚‰–¼nó+\™c½7dÇ?‚‹ Gä´»RŠÞJöîQ²¬ù“ÏNräP]nÃî›Ï{¿ûü1Ÿ¡âôW¸Nòìbaý“PSi!å>ÿEÊÜ|ݾJÛb?|§Xaš[=)ëå)¢ï&µ^Š­¼ŸG£¯üG½ËØ·°6{ˆQ~J*¢¼½+Îe<ð|o°‘ÕöêYÿ*Z`ÚCr œ cHá"H‘´xâç\Ò®‚“ŠW…þhÑ:]<ªK? öZ¯ˆî¯¶Lïf¥Ô ’eÕ!y@VÐTÝ-?FD”¶"Ä„þFt<Ò­•.±AÊÌðö"ÿt¸G ®9Ìks÷ù¥COÒ ô‰ÏƒûÕ©Ö.÷©À¤bY’g8$AÕ ™d‚Ȳûôâ+¨°Y¿¾AãÿŽBy¦ƒc…NW9PÛZ K±šÄ´ë[ËbQ"Rýäûœ0ó?vã¢Se4YÈà ä½GAy“Ï·³æóÚ€Z‰kGüL²KïÇæà©¼bòyçÅe3­Õrx>­øxÿ‹®h: ã9b½9µº ,ÝûWææ›·XJ¯›Ü€J‚*y I°3¶)‘/Éå;-å>°°¿Ç¦v¡o%õÓï —/‘Ïáõá÷^&(ΦÕ{#£sxb-¼D |{½‘"o•еì Z9HëYê;+ïfÎ×ß¿L"Yc»Øsµ vÜ£r¯ïEYë®WÞc@g¦µ"°ÛBµT>аýŠôÍ4È úÌ J÷RKéD·ƒº¯ ÿÃuÖµÞÇåë;ô+þ£;æM¦/„Ç‚¾bKÐü®ÊĬ¬Jò˜5ð`·¥r$B©!Sa×$0v3¹á»n¥<`pÂWå3‡YiÙ…ˆÖ«…x_:„ ç" ©Px÷}èj˜SE1]jG|xŸ±#WÈi%3ñ·²ã_Yà¯Ó-®~G«•þÿ€Ó Iç‰Ã‹TWX›çÁ. É;¶:縵 A8‡¨ëDG¼¼™-õÙÌà”iDëïYd-^ôW=dIçQÁçŽ ËÍà¶,䱊ñ~J ïVDßW;hˆø/–”k2Q áÞ4ƒ^J)äP`®Ò_!Wzâå+—.ù®ý˜|.`ˆTõJÊ‚ü®Àà#Æ[†øá|sjÃ0*òù  ç;\È®l`1WŠë¶A~LNsô±rÆLQ Bß‘„o—-‹s 7ìØL«ÈÂï™Q¿ë¼D#ÞÈ@ã'uû¬êA ßÈ{Dkâ0A8K´9Ù­…2!!³]K…º·!ÛéָȸwΪ+uHüi˱ë2PoÞ­¨[†¸Èâ¶Rñ:(3íú†"`7YVšñ÷dØh"òKðiàÌ1¿ô¢Ç§ÖvîUš"sè@T€ïÝ£øØÊjÿMhE.ÇÅ;°ÃJ´®3)%˜€ðŒ:KBÚ÷°v;Ž ·²^I[ˆCøÚ‹Y,‚ü®zZ'Mn$ÇYµ5|6fϸÁÍÞ7Sɰe\%f&‘,+Kx¨îÇ|ǃ¸ž!RæÕBi !GÝèAfVMw}"™û¯!²BR.4’Þ„|0%6¸:ª`ÔÐ7ˆ*âV ¯ÕZ…{ê[Aó:Îo…ü;0ŒË…šÄ`vöèå.x58 °ç.V>.HªŒOwsì}›&¾"‰ÓŠnL‘‡WfGÍVHÃ@¶ôïèþv圑.ªîãä€ö½¤Íh'“ŽêÕLé’¸JÐŽySœÔàD¹âPYY_*Ínz ÃŒy.wftǬ{½õJ}þ‚æ©à·0:ú`±@¦ý[ÀpÓ e.ô)¤yjòvÐÛ…=ú‰‘I©ç}SRRMTxø>ô ÷£!”I”ÅþˆÈìžÛåçÞ;ÝÞOœR¹'@¢Bï8Æk»‹Õ+û¶˜?d=»Û9¶MÄi0<Ÿ_â-Uêmßµì1éÑ% eö‰ð¼v~ÕkÓZ†“Ä›œž W…2›·z`-“H1/ ÓÀ)Ù¤XöMòͤîÿ‡³§ù$ ¢ª$ª1õlÊZÇÐ⻽s¥üR¹ÝÄ%×dzoJ½*9TãêsÍæ¿üLÑ wÞè²Zì‘^íQZZþÄ×÷%×ryT²Ò“#޵~;ŽåŒòaUS‡j»Héá¬D¯º¤™œz²-«€.¦t=a <#6UcµŸéfòlãí<7Bk ŽHV®·J¥¡ÆXp/ë+áŸÕª™Ëg= Bö€e÷š#a°$ð{ÑBR Dwá=_Sn3FÓ̃­î%f:3îJÿcêp¥&L^ò!íÓ")m°q­à¤,òZ¤v£l1,¬ _©är@Cþ¸êEÒüU™Ñu£8h Y˜yÆpÓYx õ»Êž@˜>1KÖ‡ºyZ1oãÄ/£9=Øž ÞÐ@¢ÁDì³R¦Þë:cš“›; F·.X™4¡Êcë™!}žÎæsmÌm"Ë(“½ŠFýSTx.‚5´÷üM 1l¥ÓîÚUe@ ¼xS¨ö÷ð(oÂ=éo_ó;Áä¿/ïãHem ÑÜëQÝîDÔCã®Ë²Q1ê$Ý+Ñ.ª8Jí¹¬|”ÿ\C¹Ó1ur Ý„pdmjf”TQ\ÚS¼ ð¡¯XÖB„®›óõ#—¦3D¹qD7ÌÓR_e6J—µž¹<èX*ñ*X »]x`†ó Ú¹91Sg±+ÿ^–’&±–új·(ö¾ƒ¿/ü9š uá.¸n^—x÷•ülÈ*Ì ÓEÔšÐdøŠ˜<+ áÚÅR®0=K–©ÕœÓÛúavôÍCšø1ÖòEõÊ #íŒDŒŒ6+Ú Äü6u»³QúL¤óåì ‡m×ÈìSk¦¤j…e2e·l°`¬>%Yk=§Þó¬6èTV_åDÞ( ü# L‚ßU;®Fsí`\G±ÈÏÅá Üz NÏ ‘@Ó<¹V©µÖbLE;Ì 4nï7yL>=%!9†…¨ æ"xˆ¨‰¦?am.›ÝàþÀZS»Q‡©V©3Ë%“¢å­CGÀÜ Ôrõ r=­|p舛2¤¾‘X’U¤ñ„Æ»å²,è•REeÓJÛ½l{ÛHûÌÈ×,™žÑsR“YM÷¿ù9…Αw+}=ã®Ã„üLÙ4à§¹Ñ[êGÜž¢­`ƒ«‰|è¡ žúIMO­x—ps/T Uês!9sÓ4ò(“Øð@žtZöhr‘g öÚå\Òþ~Á"Áý ›ã¬NÆÉ=qÞoÌ¥G3ÕS†ˆÖ›y¹;P–·fiŠ‚êŒH»â$“…OàjuÝá ã6Áñ]Á‹¶Ìb½Óï‘6Ò\ÚtSYÁ·-òk&ZèÛöUüÃPÆH³êÞµºÆ»ìÆNõÏtË-EšþÞó&‘_=} ;]¡$0îüÝ£Ž¬Î-„Èá‡và–«IŠÞ‚°!œYoüJ?œã‡HÅõ}N[ïË´'+å)=Ÿ˜¦݃âöpèG?CG§ë\w>gjÕ:&<›~-¶[qÞÖü#ÛDEùÙ©^4V®Çñ €ewÂñ.Ö.xm>7¡ÃÓÆlÂ-ü´ùˤëØÍÌf/º´Ë ¿sÊ<Ú⣌á¯HÚÄ~Àe±P‘pݽqO‚µëPoÞÊj·³¿O±7Ô°¥ÄsF.¡ 2µñÎß¹‰îÖ Ý=+"Ä‚ûÙ.«ª;A “ &–úX]áînɯn“V"?è»À0ì{ñ·ä—B§ò½3¶áÑØCjü|®¨\•þʛݸyõÞ1Œ¼z€†wåï™ËÅ ÛÂF/ꙞäØÊãÌt2¹îš¨²ˆ©…#ü(µ`ªŒApY“è>ê ò“@¸Žq­(S¶®áÓ*I›² ÏŠ@è áúÑWcø³°ðS§hù:ܧÒ>@ ÑàÊt´Ü?@¯ÍâŒl4¯3D÷ÍÇõårK|ß(ªèÆ@†WŒÜ/‡„†é×éÿeZ…ÎjÃ5zà‰UçYôÙÐ5Ĉ™ÆíxݰI/Ìy.iöE?q¾; k•Ò“ªÓŠîS•wç ´ã‡õª³ ~YÏÐ8sV~zñ²¤vþšr©ªöºŽï›úüUžìär¬}wÒµô`á,Õðèá!–,§wÇâF;[o"PJ…ä?5ÿœ†,Çñ)«Ÿó¨€¦ $B¡²8Ob#Ý›©§áÎMˆãìñ€ÉãlWû%?uî|`%çxìÎ4œðá÷B²=T‰ñaü„V£6;P§:<…ê<ÿ,€lrRTÄå&}ï…¡ Ò5C¼pyˆ…Õì¬戓=æ÷¤õH JC¹×Ô¼šÄÁâ-äìâ–"k}éƒÑ¡¯êp2Å%†Œ‡ÕUÑØ«Rœ (€ž½W¾«b»ëœ£ѶR0_ˆ Èóu¶ÿö#éÏèŸr BŠÞßÕ&ŠºØ?0E•¾>>½Ä ýi¢¶0£ˆªÈ¯[•¸²kµ.ûö”÷NSl¼DS¯Sâo¨ÔC<ÄZž üX·Z–îÎì¢hï`çc­ú?ØÌ2æ›ÿãφZM€Ñœ,¢P5ŒŸKáÂ"t‹"..A¶Ö1T_GÂá wÚ0D÷‡¹%aöW³…*¥ >$A€[ •xþ·‹QùÂø˜ŠG•$Íõ ÿ„Þ×I%J„ÒÕA~€Ä3À~.ÎVïX˜Õ¦‡8´sÔ i+Ü3ò##;Ò|¢?‘]Ú£Ù!†Š$“Ës³øH8Ê4µïrûbEôxΫþrè-Z„Œ. ×€ìÚ£á:º¹³$FC_PƒÓßÑüÆb8+a-D‹]‹½ÐŸ_3,}{7#8™I™ØÚºöÐ3|çO§`•„Ú¬îÈô$5@épÚ’Aˆ²:–Rè†ÑEîxØÌÓx,ðß0Õahm!DB”Ëõ›0°”ŒQ¶ÂJ¿`"´’d%ë`Y0ì.±/¥Î ¬$åB s#÷©QWu”ÌI<ÆD8šI eÿ¿%2`nr¢o?…5¤]N\¥s}‚S×ð1Þ K‹cõ(Àò¸^ :s{;ëÔƒ:ÍMµ„.Dï:™jÍë0É'=“üÆœê‚VUvŽ®ÏkUÒ²¶##¯Ð~”m¿Uªï1n¸–I~ÚòãA_(ñËJ±í—Xp ¨|n¤O5Ø$i&uåÒ%:sñÞlôò£+CåhR:¼i{;ólû¦¨ÑùÍ“s¿˜4?ÐðºQž^;!XTÀ ”øO/•ì-Q´c¨^?ñ¨¤}Ötßax4ú€Œ¡ðèfü‰Wø•ÃÝzU¬b±BX­|ìÎ|ÄÁ´ÝDòf_cÌ*²ÙÃb³lªzAò´ká÷÷ÙRh…7á¹,¶Öà?6p€ÑÓ.®k½rµä(úÝ®÷gß«ÈpÔ£Œ`û†n~™Ô{‡aâïùnö/¢ùÉ«ÝÄrDØ|Ç®òdG…»'HÎfd†S X¦ÊÎí¸ÁÃ~:ô8©X#2‰çoËli™±/OggS(#ýÄ n1áü)ª;ÝÒ×Üêñçÿ™àÑ×ÒÖòåæßéàâçÿ¶ááÝûÿÿÿ¼åãà×ÖÿCÿ´ÿ9×óìåîâëäòñóöÿ½üLÝ=±%$Û(ÇÂy3»¾€Ú&\Å L¯*§â_.,Û‡=N"¤•Eìó;œ©5D¹™ðØ¥…ן‚ïšZKñ ï9O¢Á³÷"*'~" ׸ újÅ&¶ÜŒ± 4Ä[^­vipR[0@RR‹‘à¥ô]ÀØ·EßÅšqV°b®öW>žú&ÌoÚ+Ÿ¤ù!j`Ržü¿¶¼:EÒ9 Ã™6 cÒƒb†VVËaÇÅ0º:{õ‚RN%ԣƵ¤a؉ G¦¥ÐНÜn~‰üWûUD)£r¤ei"¼q`NSÄe’$Á®ú¯k‡¿Q—qóº»ÊÐÎïFKVçmr §i{à[ Ý&%âJ¿„7@´Ùš3%ŒÍ;šªl Kt“i)ÕШ÷®AÁØ!™Ó žÖKX½øiñŠB¤ÿE5mr5¾]íZ¦õW„JF¸ŠœkÔ"VÈáTúK_R9â2^"M]Y¥"÷ý¿Ã^Büï¶Kñ¼½ºÉØHÁh‰óÆ#«“}H´7VÓN 2Å^âðÛj«6‹ýXøéü5dt˜–Ž¢f˜J”I9ùLy .ïÕ˜lþ{®W¼ü¤ÞL}1¨bÌb9Š;ÈÇìêõsÚˆ«ÜP³¯ƒU¦í7&½IV­®í`ͤFig2;˜š¥ûZ¹z»ò—ÉFݯ-U‚?;Hw©¦Í/(˜2yÈÔžø¸”ý×*=°~¯¯ëŽž¼#Îb1¦ k…¨X èóÆgò¡6´Á¥f¡AÚ[aìî„&f¦¹Hžl`,*ûãrvi²ÝLê:%ã˰„4"¤dû¡|òÀüMŠ@B”bUGIã…„¡Õ”Ò†ÿ.3CíŽT ê,gê a Î_òpxqî[(:ZSÝËg›žr´rìÐgZ(ëyãW܇Ìú í[!°]e\4‰mm€0y³‘U„$¥F‹yÙ1yÛ ›€‘ÙáµlÄÒÖm çß¹EB³ìÑ.â‰?ýX=kŠKŸøÄ01ŽÛýNJv³¥aóŽ~Þáò½ÄÛÓ‹}§Æ™™‡‰¸ ²£u\’ïçJÕÞ\u‹~›Gç~+ÿ“Ý]ùT9@è­ÌüLÈŸ¤Ì†rkü7ŽCCV—"DUoÒÜeFÍøZ¸`y9hl/ÿ6qÓ¢Œ7ÈXìx2%Õ TW¸¹ÚKI ¢&1’J¤Xñî û®+ûO?ƒ“õ`/ÅË4u1Ë\q¡ ¨åB?$>­cdb+²ºÐ– ;ÍjŒO(f703Jî¶ù}eöñ&K;²Û6‰v€…¯Ä¤Šãqʫѓr :ѲӖ:uúè>°3æ¯Û×Ý,°Žšx×ô„±¼Å0"U­,GnlC» y0Z‰‹¶D=?\cyû=¦wÁMô š«üL¨àGzV€×—ÞÝøH=,Û¶=ŒT£‰e;ÖBò¡êÝcóÁmnbìFd~Ágº¦Ü½˜äo‚=ÇóÅ^]×ïU-@.™ú^¾3øŸ|QòÛ°(9«éHº˜O=ïD¯‡òÅ|tâl™øåúû×+õtÓ݈2Š¡ô»ÿPÀ‚Ä­ƒñU öPiÏ]ô€Ò!Î\øÞ;þž7 ¶R2èæ¡’¬+e^fÃ)š ¾SF|qÜ’ú' ¼&!E.n‹ bÏ‚szÌðce¶1uÿ¨ ¢­0áƒÌ:¸üm=¡ÜÄQímÆ®ŒyEÊŽü‚KwéžDb€üLäm''fî&+ĤʚaøLNÓäÙíRnx¼WüQGI_õêÙ1¤þ \ñ_W1ÜÓY-©m`]vy¯M(\ÕŠ_0¬V%T¯ÓF“k @éÒŽ÷fhjx‹1:õÆzÄæyô¦ŠÂ å[d`mO¾u΀ëS¯G¡ÖNÝ^´Î°'õ=þðwZ6ãë¸ n†HãÁ_‘¾ 4·Châ}1ÒnWqÆ|®çôs#I4?:ï^Ëlw—-Y\à MpÏMhóílnU,èë€:”I„¤M6žó8“™¨ÂBXµaÿH™ü|·•s°m‘í+ä;yáã°ü½CQY(œ•îý†’‰ŽgPÜf…ÔüyV‰¶û/øÏ¹w~˜@Á*IÒðŅȺSõF_Æc °ñäqîü¢™+¹.Á° ÞC³?øÄòÖPæ¿ÈíHg­>³à›wÊ%ýÐ4Ä*ˆäñª-qûQºRøôÇÝUy=Æ…¢,+49‘º½¢óùôT7­OéH$±ÈùÒ>ûúbuÄsè‹1é±48¼WT¯yÂàÙÈ­Ÿ PoÜ ŗOÙÈ}x?µVM«bcÎ\> B쎄 mÂÛ .ÅÜ´„¶ Yîˆ7ù­`]¥1ó›Â\ueSÙ‡'²ÚxÏ.*n50”˜ 5” XÄPc…MØAÿ­»/ø^ë{5t[ð½ÅÖÅ®Á ¯CHÒÃk ¶ÍwªèÚç„ tº ßbBrõ õŒÁ¸µ˜æ\˜ Ì©tD¬÷z…íyÔ£‚>¤o|í¾ºê{BÛ!‡sSóà8™ÉSü6’W?S…U dUÄ7*ÂèpZó-Å 1œÖž˜å¼_ჲ” A¡¦xhÅ8)!c¾°Æ6¿ÔcÇú8;ØPTiUµ?[Ì’t"Ú ÍQOÖö/oìZËž›ÊEþ0l©llñ¥£å©)íðý's¤e$«¥2ããȲ $¦û?ùì3ËŠ@©™g °¸+¢þ$ssRŸäo”µþ[wÔ–³fNÙ"v9ŒÅ§;b©e9žGa#ʽ†ÂÒX•ÀFJ0d˜¡æ^;PâêTÒS;‰`ÿŸüL²w©Õ³V>ŸÓ†(ÔºLçñÉIg,ǃ±û ð"Âaã¶vy}2 C¦zÎÞÕfðÿÕ+ÜzZŒ‹ÏİÝ#ñ"Á{zÊ>ÀÿJ`ñÛOï :|^¤x™ñ;ó6Ó’8:=åé"%e?eϼ ÀCŠ<ñFúMÁ‚›}ÜË? X‘_95}+§¼2 J[üLª&úºò¸Aƒ>'ÀöŒ¿ÖcÄ$Ë5Ç2¹KiîŽŽŽ·@nÞ#®Âb’rA³)ùz•¨VªŒ¯Q«&z² žmóJކŽîæ WPš#bÅ¡¿¨)œÛ©É\YmYo| ãåÎ}#u›&¨o@ŠË#m¯µb-«–üMZ’b]"΢cѽ‘çãûK;þœjTö†<9qƒÆ}£±Éª'ϤüšõåªÎS”açAFn ¹OcÉ©Ì?¼éÅÏÊs7þ—Cõl,pyP¥iXt¡},Üä¾'æMÏs@€3j™[÷ؼÈøöyPê$x¤–g‡Ù³c@­ÐlûÌtúõ§p[&ä‰¾å ¸·F©rêÏözœ=sG0W <ßx åû`¼ ‰½k8EÁ¯²2–[eŒÉÎQYâÛ娫ƒQB#×ÚüL¾\ü'YÁÉK#Ñ¥eÂAÎ;;k*«vrÅ+Ÿ#RífácÜàª]Ô~0mOç§2…½Ê¦MøèdCíñûBÏ HoŽ˜29ù±Åld†Ù1QEèØVA"/ C.u®ÈOÃ$]4™ŠWôÁ-yIòx(ÓC˜Àóvó:þ%…á‡ÀÄÐ}z;A@0ƒ§È™Ý-@³QçUµîCò€V‡€…T¡éãú¡¬WE­Ó[Â>Ìd&‘ Œz€ÄöWhçÂâÈè§Í{ºn’°Ë>{„‹ü53¯Mè/v]•gÃÂÖešÎ“ÿaš]Ì3©> «6Âm|dPô“TÇIÊd» 2Zy“t8ÂçÒ-@‹%ÅÐ;;TÖ ¤æåå–@û]C×òŸ­õÞºŠáËŒþaXk3yÄkݨrc±†¤¡Õfôú‘úÛïÏE¹L˜ñÛ“Ü„f–q岌ùvîcVðÅðJ7¢¸m5ÖfƒÒõg²C@udb«5JLŸ*Ê>"6ªqf%Û7½s •5\It&ÍÜÛ…ÔüM.T4uôc¢|ΰx5h(í-«p{IÄý½&ÿÂÒiÆ™Èò|ak2¡úÍq➼棆V‘+(¾ +,wfdKz.ÔSpLcÌþíéK0£c•ÇÕwQ_àù£(½xDuÜ./^o=é³½øtA(àøý—šÁ2Ûä_lDëq1 sS· aârh§VÝIUô8±¯s®ê‰´Å€ùM#ÀýóRÞzBo|k°ô‡\àw"Ú œâä›uÒ ‰}ìÏÕ‘âcW mÇíz·+Í<6±$7‹ígŸÑäüLÇàãÇß!Mz¡9Àp7„¥»T‰™ vyðãRÄ8U ͧ¼LxF‹ç+äïî1 Ó¨ï½´á"`»ÂëÙø8éLfoô¬%|® Hî=Ë}‰êü ™ò z`biO³(­‰'kiû*É7A·#ðà±€¸pBíÇá®à·ø€¬¤q± tF®t ‹)ÚÝ­¸Î’Û¤$×õŒ˜*ÖÎ8ÖØKilðh7k›¨?é J>Éå…½íæ¤ ¹°¤ ¼ æEuá’eS,–„W¯j–zz6“U=â-fT!òOÓ›¿ü5 Ò!:ÁK\oÍ®wÌóð>¤óPö Žål¿‹".ò³‚¢á|%@âÊ1äI+Ö+A-”fR¾ r:‹ˆû7l ¨‘íüØpeµà/™9ÆÁ¸r78×-wÀ·ÞWû3Š™ƒšÂ·™o¹©wÙ¨‚•B§ð×üLÜbæs.coÝNk­A 0óÊü°ÎθNºú;Î%×Å͹4”}ÐÈ*Õåf„ —³è°…‹+<Ž9æ'£fp×ïû׬Ë#-Å–ñ,Èþ±Ó¸[’ÒÒ}Ú6Ò{æ0V"LòxyÔU^»&“b.›H?¸.>ñ{+B·ýS/ýX‘T¾ÚSÉ«-eVC§¨®ŒLç@ªþ.ªÔÌT¨¿TÇló¦r¹Àƒ.Št  †Y¢sžZÕìE®˜,vùÓï’èܸujº•hÆÃÐå]ºä¹Ðª6Ðëržd¾×áü®ÌE\×g«2œ2ºãê[e¤’~šPP9œ1è¦MãžÒä6©„5¡– Z|LÒŒKŠø_Í;®œL%‡<.BCÕµj ‰:ó|„Ó§âÕ¿?Ÿ‡9ÑÉ5´®âŸ"$ESÊl¨ê 髉eÕFKéÔ =`”\}®Â"]—Õ¤ÂÆ)¹4¼îv®x¬ÚòÑ»½?D”~î-£ü@¡ißoî¬ÒC¹?)[*°Ä§Wf¨lÏMÀD{¦Ö3HyU´ ÑŽŸTÇ5€É%ƾ íõY7äºì‹#¾Åü±ÚN‹³»dsReþa^k‘¨Röˆ¿‰S,á&ŸÁM\¸ ¼™ é}fâ^l‹o¿WýàzÅÓô¬ÓýìæµVA ÜX÷e}ýÇÒ௲1â{[ÿ×Ý„ë“eŠ|Ð3M[cE^ˆ#ÿg|U{±%ñÚ;èx«9cÚ’tNü°wz>ùЇ 8æöᣞ2Ÿ¢ôwÇHé 5A÷—° šr3QÞs•ïò´±.ÓÔÃ` èrþRДxÿ²Î½É„ü³­ä“Þ’C|+ñëcËÂ/4„é Åü±à³V{> d»Úä l™øâÝ1Äò<¤-» /ƒ¥ö• —ˆú¨:Keb³üÓÑ:ÎH¬X5jÕÌ®ÅëËMŽ{ä2Y|øpO2'¢Ÿ#P4á4îÈëáZÀJ2\¦H7ÔÇ'?kÅay‘ˆš>óž÷‡Ù7æw¾@ïÍÚ+¡"|¹1mÜ0ÿñ{™ý‡<çŒcú qj0¸:Vë¶håæ2{0Ÿn§Û>Îüš½µkc¬>ue‹ùFÁ$óW8«Ãù4½Ô0ú’Šä &÷fÄ~Bhi4š@ê;>n‚Åü|®qT€6–dïW0žA ÉËæÀ—Û{WË32;“^ì û+M‡¾Ü’Uä Ye¯Ï;eVS•‡BRÏ™ UïõMI°9TëöX†âcöˆ^^f½¹¹IÊÖ†’ƒÞãO[ ŸÁ-p¥Fç÷*™NWªrü(Ç‹”@Ã]_üç0ôK.å%è~³œÎê{ù¬ç­¿DÑx¤ÄèRmê¸GN„ÆÑ†=eßYú­!ØaYD÷¯y]‡êjZöÇTƒ$Å»‡r¶a —ª¨ /•—çRØ›D&:×’Xî;,/°ß¿ËSè¬Ó¼{t„Œ´p´L{È߯$¡AŽl÷lÏ´=Û@LàïÄo¥Bz÷F#Žš7,^'^ƒÛÂÕqWrîÄ¢‘ÓÊÖWŽeÕ¹×ú Ôw`Ù ²‚X6¼ËòÑZFÍnIšäÇ~ ýb½__¿›Ç6Øå?p.”ˆy÷=øŸwÔ­¤¤/ ›y€ ë{ŽñEFàÉ·±9þÖÎj±eÔ SI ô9vM¢¥éÈ6UGÿ°Ùƒ¹ošdýDÁ(†Ô+éÕ‹IÄMÓÀ*IÍC„ôüM¤ïØ.ÝRѪɕ÷_Yrmšš;ébƒñWÝyi× hÍí’5œ[H_¤å&Æp{¥¸æI \O¨) È=¬=ÞÙØ‹Óål8l½[OuIðMÑ| h ²FðuœÃ§ °Ò±ÔE³½·×i»ÿ\ŒM¾RüHg˜_ÉY !‘„›¬ØÐâþáõ>ó@ÇáÃÌÁõ?!& ûSÉg¸î»øOòï ÈöŠÚH›*"/±€Y”xÆ3ñwp‹ç¨ž®P§¦_¾ÂsAÉÃ~¯?:«¬åRªÛ‰ Æ•1Ýü5hV–<=ËI†Ù`Ìç[äçJQÜY}ÆY*[<ÕEмN^WN~¼ôÛW¼”óaY¼yoú­ ›ÕdJ âJ "êXƒüQÁôŸ"º—¢…cÍ’LæýÏ'艋õ5+Ï4´/fxÞżŒ,hò¬ÚÔL3º`èæ!¤š”N¯zŽ‚±f‰v8Ϻ¦’aX¦¿÷Ëoz´ \Ü^Fí |Àž¸.a›‰Œ‘E-õò¬EåÑÊ–.Ó `LóæÃ}²Ãø»'kC?°Y¥äÞN­GüÆe·ý/¼‡—ëg¥ü®h2nß»œÌ‚þ¦ÜâŒx² F©ßª}]9Ü2jÐhÁÆüˆœì»úŸìÀ±1Ôö àž©yŽ67Ò;öÞÿ –NzâJw –·hÑž‡Ð,¥|C±÷¯ mæ??DÑÕNfèû¦hš€ú„>ƒsP ¥;2ê §ø·Xó™ÚVZ6òFûÄßðqgGG¿rû7Z®½_°uVD©ŒÛ½©òT·¥x€Ã€¡?±¸„ÐÙµž|E×°¹XŒp%p’eÓ©þKmüÆf&*þ¦dåÀ-n~¦ƒ7¿ëÚ¡ÜB稵èwô㬔‚Á…ˆ•¢€#XÏäþÂú¤Ì¹o—íýÞ…ÃèÓîuæÖ Fµ<ÝûÂì ƒ"ÿ^ˆÐ¨ƒò¯sy÷;‰V]Êšü"Ÿ…¹uZ±¥u첺Û]^¶ò"½2 ÖìÏpÉ;‘cÒxÅò%ei"2Ùþ4¡½’qŽ">ø"Û0Mtþ}¶·€è@%üMõ4–ï¸Ñ”’pÞ¾ÿ˦!PÐeáM´—äªqf½Ó!`¥B0®ŒæB—ÑÕ œW&• ÀOãMã…@çVì2Õ†(Ò®ˆ¥‹ø.ÞØfŒ£3@2„Âòïi¨FMïgÄ€*­Ö˜ )M,bæ·^ÙϾUÈCöÃX‰¡j=R.•f·€¤™Ó®æ Z/¢ZífXwgožè(ÃébØõecyݹb¹è uÄÀM¼…Å}›ÜÍF«ƒ‘Çe¥¡q÷Qsh0dl@G®¶¶‘ [Qf¾¼n4XöhN”»­¨Óqÿ¥eö$ñûÍÅoÄ-P2Õý Y^Ï™­Ï¨ÝœVÏrK`½Ìùzn8Ò¬bÙ—Ûy"üñ–îâž'>B¶ø°ƒj±pÄi–,äVÚ%ç²ä›Ž˜ô‹„+Þㆮ˜ôóFŒ/6áë?õ&Óð¬*x‰ü±”5•ÆŒ»9„Û³f[t¬oóPºãeÊ£ùB­G-‚‰à¥Òê™MüXÝc±œS¿•àdhì•Úÿc£ã§ª!váwM|±(…÷4°}Ç)n9:G¨á_I*dŒ²þÂûx†*Ñ9ÂÙ·B.ÐÇ E(8›ßs¬÷ùÓã„Ø4Nì2@<]{ŒæùòPí^è€ áµ€z¯¯.¬ÁѿԛšŽ@MK‰HÎ{¥kIMÖcE¨Káå#€Xàµ#ÙQJYbå-Zõ¦üâȤåü|ª4¾Íý|¿v« ‘Øþ óªÂᬄPÄnß%J{ͽŸZÒ§3µEg7…ÒoÛÙoPþ8d_‚äÅQ)U £]^ é¨(4‘0t{XÀt“ݰyšyi×?³¿i9™bûédƒ¨yöï¤g«9âFu=Â%¢h¿9N\ªÿé>Ož±;}ÿæƒäÍÅZúE¶¬¼@Ó…¹žkYd¨ßE0i¥ý4;%‚¼P¡6…¬Ô«·mé¥ù„%_†„”Å^µ_Óã?›ÚŠÊ±eŒœEAÿ Å´e™À}DÆùnx½½Þ×&MH"‰×# =CïÜ©ùI›~‡d D(vÏ—ñt#×?C£6HK”¥€©¬$·CkjðëZ`EwNO§o¥oUbÔúv‚ðn†´$yŒêð9Á8¡²õ¡ýŒ!«âÕOû“ ¨I­²>Sø¼…è!SáÕWÞI6ÝS«ü` ­p…þN QB™ö¥ºSƒnee9+@°)›|ÓãþÛÏØ~ákd*‘WY[åâO^Ó«ý/•¥Tæ&LíàúˆߓۊF~õ– 'a>ç8Ö+¬ßÍ·üM¬F¾Lµ }Uß q>;™GµÎ³{:žù‘ Šï {EÖLŸ»èmøwES¤ÿaX$áÆô°ççæšfÒæk½×å9ž—}ê,?Úô¯k¢ì™V™¢߯†ofô¤Á‰÷5¦¿Bt­:eê’ŒÅ"M(v®°»AH¾eç(:üðÊâRwT-Þe4¶$q–Ú2¦ß[|¥c<°r©·íÉ}7þgy~\ sëè_ì Ø¸ûꮣսBÞ¼ÔÓ)’I]ç5#º1)`ôŠ´9&qDDx>SÖÆ%>Õ}ü®µÒø)Ç”˜ü8×›‚E…­ðGÌnk_°<{‹ºD÷ë9\5Éúü÷ƒŸ@›â<ð@ÈÔ1¿…¥ƒ”èW cB† 27N•áäÃæ+}¬¿îH­1A¼Î¹ŽÙ=o^ èSK"%<'GKѮޥðûG¶ÕVœQÙ/×§÷/Ûßõ“Ô´“}¹4ógçÛ³¯ìV‚GzÙrHŽ—êª*è ÙK+`ñÐöðC)z[”Ì×X±}’‰±:«0Z檖xó*v4t°¿iäƒ~Ðô^)Áž‚£6˜nìˆü±}ü Ò%7r0 Ë šŠÙçݽ6µ­Apˆ85bñ‚-OW(ØžLU'c,z;)9O>/½ ý7«wap _PQÝm¥§%5aQL&,›ÆOfÞÆ³™qê R¥¢ò`Ñ¡Iø§gvônêkFi·-ÇÃz¹Ä±Jb‹^þMªõˆ^…Ó@àÝòFtU塸ÖwÇâK3ëq É79ª:áˆTµ„q ‚Kë#…‡OkᣨÕ6sÛŽô.ì¦X¢‰òæ’^C7½×¨{Hn„éBa©òDD?0ø›•h¬‚ÂüM-Gù~æWz>dž«²ðl¥³sèî´jvÇíª±6üñùðæe„Ûé‘“R•îm¡EúÄDœÍBFçñ+M‡=H¬\»^&l¢ÿV¿Bœ{~èÞtjÿ©ìíãÖÓ¾‚µ•qª0\æÌ®ÛGo3Ó]à™¾¡"Çà~ÂEëÿ.‘Ü«tDK¬ýQðŠy:KÖû£NO\îK‹ÅŠ{:çá‚*ü5Ó{9¸zp¥kŒÆ‹Ù,Ú/š¼±cb"‰?íâ{• .‡!LÕ¹StŽÙ76üLï1¬ñÇëËB?n4rª×gŠÎâg ¤¿±ûúÏÞøƒ‚­êBV¯Ov.ˆÜÃÓMÔ]8KøÁú]0l*tçÃ-ÞF©Ój¹õÈDÖkgóÑì¶,ëêw#Šýg5%?…ÜÓ yGis—Â%¬5¢I‚KN½ÐŠ„(óxX¤ä~è#½[ŒÓDþE–©ŸøÉ"ÖЀf\:'nõ”ð{ sºHEjdãOÄ{Î@.ø?”ù®íƒ ²²v¬þ°÷M¾Ð¥ FÅÌÅ\Q±ü9®¼Yï,Vlmiøñê¡ÍÀËÓn†øx+rmñÞÊ.ÅÚ=ª‡Gü|¨%ÏØwÊx9Zç¶‹Z»” [‡p©v~ƒÑcŸh‚·Ï& ÅÖœVx?®9dÎ\ãИYpW´ {ï–'E±…?â8RÿnpŸé:,ûdÐúÜE5O)i«€ŽöåS‘Hfš¶?p ¥/Þv=&„@½dëú*¾fŽO¨nb#²Þ@5±°«¬$u¨_ ’[&ˆ“—Je îŸVúEâ*arÀDRbSTΘ/ RIÏmïúWZ€²³G]W눜üu__¢šÍ@Ί&¸I2OÒïjv3Šƒ!t¬–ÖwDO–‚%ndžŒTÞvÈiQ4èž:É¿(©'{9¬¢ÚÁQLkZNq²RÍL1’“—[3ìRaÚmº%Úň÷ð%”ËS]×è˜ÿXwÖf{²c»DF’íy¼BMóTm‚C£–Ê-V p…ìñþbrÌÎGÄóŽÞñ¬M(Í×wëò¥xm‰Œ„WÅ‚T{Æö¦“ÝéëùVa®ÅÜSœ›ùÂþ°ÑR­:‚„•V Êð;*^ËWAìÐ._ô'_dü}]=S“ñ»@­Ú¯™­âw&qÈ5ÓL!×a„(SŒ#m ‹c†Ùè¨Ù–wdd,õ­ÙýSZ~Ã÷ƒ?çÎ.ÍmEþu?ïÕZ1³¹óÐ ÄÚ×k"­óؼ«i16PäSk³‘È‚96DP[îJýF 8›º)pnšfü¸µû€ý½Á®R)wOâç¼ b”¬®_QÕkÇ ëg.@ )å©õ·ë|.‡mdŠFIw½ÙN ¥ÔMË¥bÙXwQÁbÆšÿ@ìY¥A0¬)} ·y9sL—_%/£4Õfõ´ÂÍbdÒŠJiKKKÖ¯5=·1«–t? ¼¿<îÌ(°J3²Ò€,V¥.ý—ûÕÃèz)ò³€ ï7Ã>‘Ú±Áí¿X&f¹O *ó4ðü.VbRÆG±SÑ=Þç'pC,ÔDúeÄ OÆ\†]vð·O€ÂT!îvÇDˆ$à Jï™úÆu—®jÐÄ?E_p<@¾©-˜ä䱋Yš cÎ9þÉ4ãUQ¦Ì_±5ļ£Ķ“~PúóÝÄÚi܇ƺµˆ¼³,áÀѯdœ¥áNžyÍa|'.êôi¹”­óá±”M‰%.l‰Áú_ð{çU%w\`ÃlmÑ®ì7<žeęтĨ½pM“7üNO±Xƒ—',§ÁbQ×<¼*h~½2D™2ñG¯ù­Ž[‰xÌwx0ÓçE&3 –Ü;l*®ˆ ú­´ÃõZ¨ýgrsë€Þ_ º¹›ÑF €#R¡Gï:eçÈxÒP¡lF×…bìûoÅF¿Œ»ŠÕ»Ðj8ó 'KúÏöÖ¤j–èo[ü ¥¢¹•ô0´¥?ÚPŠÊB¸À¸þD£[ea²F¸«„Änÿá¶òQ·-ªN¬IKÄÌØ‰›“†`¬,³¸ß€0z-Û wý[†Fƒêí²•ÕµeÀð ¢.j¢wC˜ §rj¯û—´(ÍüLät7\:#9wJ™%i§[°©%1S7ßÚ%›Ö05æضå®mòêA^»ê¼aÓã‰í„:ÀG‡cúËÖ¼_ùf{ÓH¡—SmØ00"9vÖ]lŸ|ít‘ýñéf¿(üJ«!ý¦4B#Žz¥õc-’˪±Yôæè\ÝÏÿÅXj”>ùbß÷x~…,hñ‚&wå슾¡Œ‰VÖÝ×àeMt¾ØBëŽwlæÙBÐù†­ÅìµÎ_ïùÇ‚Óòóä ‚+CÐ63*t ìº2á8Óû¢m%³‚r81ƪÿ\³6ðMv†$ ¼”üÃÖ‚ozmK´à3Þñ;-ñð˜jä¶>¡£ÆJp49,½15þ0j ÞuËË­Ñ®¤GÙØãx¹¥ã¼YZÄÛJvÕ€ØPVßÔ6]nèÜíÖÚ–_Î N®IÙêýãÈ-šêò–Wè0%´Ï2‡ƒj²ñ¬½ç¸äáÓ9ŠK¡;ÓZgJ^þ|*E”R“AŠ“½Í ³“|¥å?X‘Îhçcx/Òbœ¡‘§ŸØaTo1éÑiï\×ÞdnæiºEC8¶þˆiñ@b‹Š‹•-†X̲Ϋo¹\ÉüLÍéNFîÆ|ô—ÑàT¬öN»ú¤.µp¤-iĵuÏ¿Pte¸dÞQƒ~—Ó–CÔR"YªË<[õkúë+¸øÀQµd±ó:ù|ί²G?3ØÍC´%ËÜÊIÑ­Íûl¾¢ìƒXŠßÇkÞWƒw¦&ÉROÛŸÀÅ5Ñlˆ»ö>4n‹À¯b?åºï™³8)#;¿!.œ5½ýþìh RäjK+×Ìæwq¿GNÅ,½Níë ƒ®õÿ´‘÷“Üõ%D©t.Á5˜ÎUˆ«w\ßU]4—obµ9y ~»„£ê˜¤üM¶Íަó³Ìs/[®Â*ØÚFLBQÓÀÀ³+’VkÈT ù˜Î !&‰XsœjÅ:‚Ø,tÛ¡^ªuWJËV#Åñ­U‘·h­Üâ¡û±øÒ™*”3‚ýYÈî1ŸìPÉTÅ×€ˆ› ðâ¥#p»‹ËéI2Ý«L²z¶4CŽ˜£†lqMDŽDþ»…Y «ÿ>Z©ès|”R¤»z'YÑBrâV†3€Ó¢ªm_ö( Lé8aYå¥clìØW†°séµ:+‹´°:ØŒÛÊÂ~k圱æªî°üX¥$æ|‚øŽ{Ý%…µåÐù(ˆroÇ$4_YM ÇÙµrI˜˜mÉÅ"E×êô=ÕÚïÉ`Wh«_ˆ$rVoO1Z ŸÆ“¨“Ñ…¶»à¾w ^úQw`íéçä-¡XÎ^ •[qɯ>ä*i9‘ÿŽq/ºÆ±Ñðßw@¤_õ ÐZ¶UÍ÷®sJ£wtnß9vk‹tAóG%ÜaÙ&Ð÷kx9 >Ñ@M/K*n³®R*õ¼1éåËVåµUJ6ír¤Bžå$a,Q~ÃJ™@V$ ×:Ë‘Iù®áx…ü™ÅËFñP Ê­Ÿê]Š#7V#´Þ·ÉÄNøÜ\UjV®‡tóÁ`c3Á¨¢@X „®:o¸y¼ñ~¬¤ÆÕ>L‡ÄKäu¬6'·%½H¥ :™[à³G*_oË^2±‘—\Gý ÷päðeûÛȤ[dø2­ ChÃLwº®À¬jíƒ Ñùe3õ„~ÆRsbëšZ{È#Tpœ‹¤C§b[mó÷Þh^볓VG懻áYä:WªwÀºz¹m—”Âòß*UvÆL1¼ì°kÏP÷î «|ÊÄDüLÀÂÑ?ö` µ ï­\y ØË9ÒM¬ªCºB=^®—®Rlvîçp›Ý“½ãIÔ„ëÄk´H;ìâÚÇw˜lÀkËdXÖ¡ÕÓÚ×¼!f“ç"Ã~áÃÄSP<é.æ N ›/¬F‘^y.³n#B\>PØ ’$dZ¯ñ/ÇJª ƒJ»ëµÒŸ }yÕÿYNCȨ²îpv Ë»aÿÒx’Ÿ…æÄ7þ½àWiº Í/m=&G% •Ò×Q*ñÓ¯!ÿ`\dÿß ×I|Œ½B*º(«Àµg—(šA&Õà ¼>¬ÑŽGñPüL¾6=)‡pÆŽËŒ4=B±yazúïàßmªÛX'VD3ªÉ_Ér3–žÿ}"¯/ÈaŒ aß½)?^émxØB4 (þ9^MEô&õNÔ”Ú¼FŒ?¦Êþ0›P „ã6U¡X>êÙïM±è»@žØ (R¢õ'뽤ÇOvÆ“¼ºµ6g)䢜Å­ õnq¤—.“ØV5&iËše+2ƒìsO4±D^Oáñ­Í1·§uÚ¡X¤Äpúhæ ™0†ÀˆE¿°Ñuhl‰1bßË$_ß÷ÞÌÞ91µÜDGéoTüLÀíqcöñ_í-ð©ŽÏlû-sæ EG;WXí ¼Á¬Å’ÇK1„NA9;3‘Aµ³µcö÷Ÿ©+給z¢–6‡v?Re—–¦«9Ä“ôRP„$`JcÙzÏ¿ ¤Ö¾#–F‡Ok¿?pTÔ†¨Fq‡‹kïê·2‘å©ã”ÙçàË´Ðc~IJ$3ZfR~z7å˜Ç8âxS;V]g‚*—Äh®óZ/<Ô#çŽéÒ1…ëâºh’™hE É ÞJ±ë"BÝ3ñÞ>«Y"•Oò¤ŽzGSg$½HÐ?µÒ1cìºY9ÅÁ{O0àPüÆm-ã°¬Gê¬<’ŒÌiÍ”{‚0ÐÄR›øNw"D³å%¾s#.1¥e{dV) ·u"á×2bµóöîsU'³I/»1Ú¢¾²»“Ü“¾uÓØ@ ™r– Ý…©âóúÂMK(ƒÝÂ9â1;•ߣâÈÒ¤:ÜeÞÃýµ]’²,ÉÕ7“eÌpJnÚéPˆgC”&—bB¼}†C¬š¾[PÓäÁõ¯º“Ú!±#øR(…¨¦DÆqŽ_dKœª¾6R#Ô/ðÂá5-MûÍk š›€ˆpFi¬¢Oó6bÀ0Y…¥œg¢<éÞk¢hÚ˜´Nãe„ü|¨¬î(ÌnXr{,a …çwgY / oÖ˜ W+¬ˆþ\?Ê·N|æ8X^k½XM¹nPˆ­,¾zÚa¢8š?Þ_]þp¿±  5× .Ï©.`Ãö=sYöØ.ºeÑq«OŸô~ÆÔ}–KÔÂ× "‚Ô¨<óþoJå®o4û•ú4é°âtµ«¦wZ§eúUaNAÌ• MC(Š î—µƒ±òÙpí`"ç SQ¹¶xÃd)ô@-æ&ëÃnŒ]]þ1Q§âÿŸ¤!º V¦Ñ-4ƒ §ÃÙu:åµT o_û0~Æwëɧa¥;‚4B TõDmmk#ìLfìÄ]Ð)0ê<2¿Ô>êΠ„O7¿üR¤ÌÈÏ)1).“F¨k'öMOõ˜nY’õÞWì°^ôXK‹1AT>Å©5AôàšÊp‘/H·gEkÀeýŽm')Àލòµ ŠY¯3fXDUJm-¶Ÿ_ùI$’L4§utÈRÛ’ê[mu+\ØMÒâê9²³õš€åíD#&ªÝÖ“7ãeO•‡çC£Gê¶÷HAýRäÞ4 Ž€ïOggS€ã#ýÄ n2¼Ino@íðüøòõìí÷òðö÷ÿƒÿ$×ßßãîßÚÚàÚæåÿ°ÿX×íåØçÿÞÿ•âåÛÝðÿÚäÿÿ ÿÿÿÿÝÿOüL¼JÙ¨Ò%€ÅÕ™“*‰õl…ÌQŠì¬M¸.ve¥Š!ÒÃYønIÅÂI£—œ^eeª¾¿[ ,“ÞÙ?h×§sÚ­‰C<«wÓV[_4¸Ø¦¯l—V#ÔÑu1—ñi×?¸×\”ÍtŒ[2¤è¿½LXŠ—÷³•¼…ØD,Rê÷?Cë¢ìfÏ–×¢:ÇÝúúÓC€yÔF¯ê»ûQZÊÿ†$¨óðB³aÛ»uˇœûè+`¥ŒíwŠÆ¹çuƒ‡Ìº’¶wG›ë «•ºoƒ«¼M ÿ’4ÚEÔÄw—üMúƒŸèÌ{Ö²š>˪R‚«m²,ø4Óer í¬J±Q„'"Xø‚(NÒÅ ,‡-+, L¸èêWa4)ƪìädÖtú2 ¾L ®šŠK8ëaî-:߇ØO³­HùÓ9¹ –5£LéàW1àT÷ §jW^5$áñúû>€1$ËÙ³4È ¼Ë²‘º£îrg)­¾à)³ºË³î ÎK°¬оŽQßĦÛË$ó}ªû&$Aë|Ô(ëhþwÿy’Š^” Lž*Ž5EÓ«3º´œßY™–Æ‚Ó@*ªõ (áüL¯nçRPàêó¥¤ ŒéHàJWaPûò%·ƒÿ„êyÕ‰V£é²G³#]o«÷ÞÃ4˜ûÐ΢?1J([S.»I»Q™í’´*&c!àõ ȪeëY\9T8Ru}R8¢:5Þöi Žò!ãš»ÄCÈ»1¯¥‚Sh÷ñÉØæ»šOHSiÈÛ=„X<Õ£gñú þù‰/¡œ¯¤å,ŸØ˜‡>>oÜ—žÝ¾[‹pí½ }]òî»PÁbµ³KBY¿¹8xcöá žÿMo(.~CÈvÑØìjÎ:†qÓɃqn’–|ªÇ`ÞcéýÆr²×QüL˰?±”öª¨¡Ø 5æàï6=àR©®ME ]U]¯ÛÜ*¨›ƒÍ‚³2¹ß¶ÜœÆ$²Þ Qˆ‡µdO’SGchy=Ô‡)§MȨËãfŒƒÓÚá{̪T›ˆ%P‹ˆU?UÎó¢k¶ûÝ×+¢‚=ǽŠy¦1B¤ßZн°Ø [¥Š¸4G£ËêŒÞ\M>™JÁ}¤„ã'zòDPI&®4¤/[°pQZ~Pâúþ°mcFïeüK¸vñîI}[-C)˜@[Á#DƒnžƒQ´ô¸È)dhC3¬c¶»QS_ù‹ ‰ÒvÞüàüðËí}¼ÒÿI2ìOÎjðí¤qßo9—ûÌUQ²ªYíKÈ+£àÍáß·g[Ê9·Á45\¾j Ægø†u¨CRôÜQž¼Ь–mŒêª„yAfR¨ø‹ú±4ŒU;„qúøü€˜Êoíú®cÞŠ‚6Ü#‚¥Áž‡ŽÃÈ}Q$W¯2£o¯;J».0l)A&çº )–§ì2zdŒ [4½+Û{  °ˆ6(£g½‰`ö7ÖÁÎ[wÌ'í¿ÕŒ¡dêrL"3À:Ò­YÔÌÑÝÓ°+ÆòR¢1£“7è?y¹ÉaŒÖ¦ÀçËìÙ +æW: ›Eç#GÄ.ÀiÏj^»~°.@¿5>ãD¸„úŸË¯ol,Â@n¾¾Ìç5|ÜüN®%_î†Q¥\(ÓRVC‡Ý¥¥î&¢bTigâ¯q·äß”éÀùö²W zÒ9T>+ðu_t»³žãË(©‰õ)¤H–'ÜüOC4P{wŸ Î&°ÝX2E?Gâ³Ï‘¨¦Ykü×Þ#,(Ò0¢Áð§ò×ûm¿}*NŠ£?mu}¢c”ÁÅß­¤ûÙÓL—7j®47§h ³ûè\Ÿè¶ÛÃÝrÃÏž|ãâþØ ‘4`î´»ÌàÇQºRÀX BSàü? X£ˆ7 SyÊ6ÇÏ…Ø#–oQ·´e]ñÊú §YÃÒü5qfˆ›òpå¹ø;Í´¦lJì¦(«'M>$•¯Î hî‚”"Ç‚£kYsa¨QÂF«\4Ú2‡Ç>¯‘(©åµª…³@s«) ¨©ø9@Pæ7€BDìRÓpŸK=PŸ`æKAv|Ú(¿ÚÍÿu…,]èV"Ù¼AZZ’1mÓÝfL ¯KÔÚr׳¡ŒèéÛ#dñCü:®tØi—ûSŽy †k©@ÊB…þ“°²×GÍ9ˆ5Ãf’j^ÙóðÛ¶h Š¼u¬êÔ1 ‰HRqõá°™Ú_Ônæx뢑ŒúýüM-ÄBó$™0íÜH±g·›f'Pq±¾SlŸ}'C7 I/SP¨°³¬ŒºØg Ø°%ël("9Šcð‡Ž@ØÖoš~ž•&XP©îÏæ$(´«ŒB8Cú¡v˜±T0ê:œÊ%Èõÿ@Ë^*Hž¸RCsß/ Òã('I5§ÍŠ×É”uâUm»ÝÖÚ‚Åó¥ª#Q{zT/0ã$WL~jÞ}}¬àþ`Ôg´Ž]Ðm<Ë ¨½°Éa8DEJ™íÕ¶£ »ÚF;~öpþ¹Ô—´ åýæE;˜þQ:=*I<ËâÛ}aüM™õE,SƒJr$H³²‡«o˜w8RǵeW&[©XC¬¬Ýní¿Z¾FH¨Ï—ï ÖLÙ*•k¢ë‚9¬wWŸe×A<ËÍþ»Q uÎàCyªš’èn Iwgu²vq8zl [ò£'™;ÉÛI®¶ÑLÈÏôLjțfX5£m傸{ÓðRF¦Zs³,&8,!à¦ÆC9åôäuÖ>Ø’ß»Aœ.ò\íS’ù æÈY·ìAêxñr)ía;2Qÿo®Ï޲ý‚ÃNŸ…²¸·ý½Ë7"\_[zã–§€9Ä)“äúFôÔ:ÄZ`›GüMroQ“”mE)FžÁV NyrUd#»Å¶XÜYxPâÓt_'·Ž²£Ð:¼–1YU™ö»CŠ›MzÝ€? 9³–š™\#P»xkX‹9õë9†RÜ/<ÂÁÆpP„…ÎÕHÛäwÉDlôy첂¢Ðec-- T÷ƪaªJ›$HÄlkDRˆ•]<Ž«¹)é„}°[¹f©‰^dï~ÅŠD›·w~ˆTÊp =úYßïÁ§MàæÜ¢i †`û(Ù`eé<ž]ÚÎÑMKx€´O)ëŒO†µÈˆœA!ßçÊÉ¥aàUlÑü¯ýfýölk7PæIÕƒ”ãß¿q÷?³­ Ñ8ÍÖÄ«þò}&½…¾¹( `(TѨUOÆ•ãŧYáŒ8Ç›ìlgªã2>ÞQOd Ÿóìïݾbõ…xR1 -Ìõ¿šµÁGs7kxÁšÊѵ‚VEÍLŠ:bêŠÞN¼v˜Op‡˜™ûmŽˆ…&–?ž öÏ[RÔ-”-•à ‡ª´ä;Ùìchwcj]iºÆ8]ÿû½‘f[¬=‰"÷C t¥.S wj[Dþ‚ÍÆ^}pÁëìozPâ6˜Ó~NŸQü K¨Ó‚·’éM0Ÿª b±ã²JG+œo K°3u›ï’Ÿz¬BXËâ?ñÙ!«ÇV‚~™ràDЉ?µY3I渵ü©É¶ëé¡qA©ƒkRÔœ0|¹ò†ëäq›Ž*J ”<[$å0iÈÍyRB„'‡3¢¤ë&þ‚d\î¾Ú˜Wà°Ê^póS.`þš² â‚¶×3~øFËšü|´yù'Þ·e¸Ç§·®°ñÞ!ï[!ÇþæçF{·©Ž—X5óEÍ ³„Õ¶A<›¶¿] å,›aÊÀaƒÒéÇísÁ@o¼NÏ9òÄêNîŸDÙPPK’dÚÄ𨂱OBR³ ýã*¿i‹È·3J•_KÔ>ÜðK ·¿cÍÏ1~óóY©=€†·|þüÂpª¤<ÆŸ9¸~ŽMF!Âßu©*x5ÌV½ ÙÍô©+}²©ù>,YˆèÑzQ"r/ôq×™,wËEu›©É KqøN×ÜÈ ˜Š¸ðrçs«QE<¦‹·@ãuóݳ_`kˆä ›qV( „ø/à/_KÎb°§%Û,`>‹å ³àn:N·üLä- ›h*W¤ôtVÁ ·}7— <à‚¬â•µìÄÞï“\ ƒ¶ºÞºo¡ÞõL©jžb7å×Zé8²<•Ê+¡ØHÆFZh;OÜfщGïÞîÁ,ˆ¶Á¹’sH8øÜÐÍnV©Ath8ín8˜­Qv÷ß4Ñú%ó09©Ç¥íC>̬øo=TQÒö_SÙ öìdçùÀkšT£…™ò+u¹£i€Àø“ààbú‹¿Ð,ñ÷ŠP<\>|ƒW-M˜VúÐ'TЦˆöüÛ¸ø ¯ƒ¤¡ñæ¤öü•„/9=WŠ :™ 3 FxŒPOW¿ve°p•¯ó1úTë<îæ!áP,¥'<|k’ƃ¨?XêÂŽÙPZŠóÂÕÍk  ×SpYb¨fRü– ±Y¾‡Á%¡©öy\½ß¾“ÅRe§…þT÷í„%„ôv7¡IÖ5¨ÏWâÞ„¦ pùÊ~ßÞ@uýs; Xë-ÝiÄ«|]Êb+4Zi¸€>7!ëè½TÝšAò¿éjä{ê¿{Çfÿ y›K±ûÅùc/9X±YüMqûL Æ=ÏpR¼òCkö<­«\x+B!-áíE«#ð¸Æ/9³<ÙNÅd ˜Óî-ù1æ¶NsÞ>ÃÀÙ•üwº»gC+ý#ñÓ„® ´VžirØÕ}¹j[2Ff¡,Ÿw˦vXn“Ϫ%k[Á»F9é™.æ„Øk)5m¤…åc¬ Õ*®ðÇÎv!ìÅnÑ'…4+ú—xž¬OJ&â"#žñG¢í:jz¼ˆZw ’ãžsñ¿"¾¨„]¼õ=6×g6Oœú]Àp\zçüLÀñ#ã›C± vƒþ…?ñ®2oènt<=â#{߬À¼¤L;p[ Ç?Œä@?µJ´‘Ü­€DŽ (ÔÇg§Ê'Ç®ä‚È£ ›˜wÒ6‡KøR þáuóèí“JVºÑ]‡qkžd¡§ðÏršXÐzÎϽgÍš—X«úiÌlwëZØ¡¨X„SCï?(Z ™í~éC±x4B¹J´pI5£Oç¢pÓîöõâétĬâMMÐÑd«kšáÓn´möðEù: ¬™sز¹mvØË݂۵BüLät-ó§M·ñakU1”⌷:ªã e?}´C`éÊ^ê™ëf1*ƒTrÜTf3pÌÌÿJë¬î”²œD ™êŒr“Ë­D³Ç„ • ç3ôwÛ}a{ùÕÅ¥ ócgÞEݸ ½æõæ‘å'‘æž·ª}÷Â!nT‰1‘ƒÑï¨&GÊ]™kÛuÊEM9,™3›sArþN)7¾oÈÞŠ'K‹Ô >jª^òíŸ&J7=Û6²c®JÃE@€†ÒÖiüMê³+p (GxµÔuÐXk3ê”û®1¨Ó‹wߦ›¤¢n É0 Í ƒ6¼gµñ/ÇßO¤ßœ^R–J¤åjÿˆ™þ¨{×p¾žßø¾è×e}Ëðq> é,àôqÊÄ»EöúfgpáCýäãÈ:R=N±-óÇ¿º5Cá[ÛCËüï2PËÊñ´“¯H MíñÃÇ%M¤Èª°sÀ"»»}JÜÔE—Êò"™fs"d!Ê#„ŠB»Æ)À¿“"ºÿ(µÿ/.ÃŒá€Z “¹i¿§F™­§yÌÄË®>‚‡êÈq—nнb{lZáuš‹u¤ òRImåA¯Ô¡SiëçÀPBÿ&Ò–¢·æÖ*‚ ‡Z­2b½Û«6„ëyY÷²Ç´5òQÅ–ÐfÈØŒ§8†ù‹\Uθ©;çÔœ³·"¤É¥ŸØÑ 6ÒìAƒÓL°íÔðHôßüðÓ¬bÙkÆD¨]Ù:>aÚ%Þf‚F›Å6Ð÷U.ã¸HPùš+aü,ú=Ü Ì\Cï®Ê%·äC—¥™Ï¯‹ If‘ÐEÇTy[GìL“J%d­…\dÎÁh Š/Áä5)?ÖŒŒ™"~+éêÒD<õö£V°/ÍOÁíë¿)½Z ‰l«Ž‚nU¸º/»‡¯«)YV|­m€}ãðdù¹D˰§äxê÷?ÿË­M‘ÓÉ;º(gö1zfšêß‘Z)PºŠ]Ð?þÖè±øï¤÷}ý¶…¡#èYÀÄâü}]0¥‡âƒ`‰;,Ófü¾ H""–J„—ÿŠXM{|ö’:ˆUíŸçN¾ÛiØ]à‡ú^ðö Û6Ǿ±u6²oé8WÊÎXÒèÌå0µ'`þë|ÓzSSg)ã¡Ûž×ÙJÖôõÓ;“%Ú£3ý0E¢%c~ZΉñ1v½jb9ýÖ²<¬[Âò€D[r×Bmk—jCÛ.n¢™«¾ú\ñp½ÆF¯^âê÷ð9C¬±óMÃqÔ×ó-Â˯¯£‰×ÛèÚê}¸•@cüu$V¿‰~Ä\bñGQŽFä‡L;ˆ¯_‡´­6gÄÍàño–ªõÏÚ7=jQúT1 zQɃ=òC5’¨  Þ¥8–W¡e})c¡v¯©¨gÅ'ײQÆ«„÷–°yOƒƒdÍ|pƒ:YFüØžùIyI¹TÞ¨¹5[E3ëï(•ï·ñŽ7x¦kwºç*Žñ\2|ãYM“cZ›äÛˆ¤÷‹@âq¬­Cú)C`„åß0÷Ù-bZ0žŒÜÕ†ô¦x”O­SŽí OãêxüŠbÓª»­…oQ/ ÉbÚØ™z"Kô¡ÃR.8^‘3à'• ÓØ×ýmZL“¼tÂ_-sY¹É1¨ïr2©{­ÐÑV¨£)R3têÆ_Ç×(½&Á²Güø<ç¶sîÐY¡}œ‚ÂÀŠÞYä슺©½ÃSrÊ(jظÇÃâE-lŸž{ì˜[ äjþ@$‰ÿŸ‰ð¤Ä¯{éýÍUÁ.G–eô1²±Íú;äÐ8~3]‘ÉB¡ÇŠjì‡Gú™¶õR³é Ý9¿MÅÛ}¼ÜÇ80«[tTðŸ%_–8åjßvûïJÏÿñ|™9öëVpÿ*‹ñ{ žëU|ÒÖ#0Iör8;ÉNÇŒ¯•‘ŠŸAÐØóùý´6t¤Ñ6¿åp??è‰ÁàòüÍš4ÌtÌÃs+zk¨ÄrÚß”ò™A:ѾÁ GZi³é`Íû[*^šEȈöáÍNÿRçg«NBoûCJĤj¿ þ©'‚¨IS4êlúš2.õ ü›w!¥¬· œ²_î!SäÍ€EIcZ‚ãòÌãÖŽŸ©[É¡; ZiSP ‘ÔÌSeH$¡Ý¿~òj«²sB€-í¥C–Å0Ad2 –SÎo°¡×30ÅŽ¿î4Òî‘'\·ï:÷È ÌÕv*A «U¡æÖ<Ñ´Í~8šãÖ20<¦â(¯ý l~›°em“°µT&ULšEY*™‹¨rÖÿϨéÂLG=)ñž‰åͱÏòA`ÈZd ’øðA´f~Œ}H%¡V ±•ìBóQ•qÏÀÊp9ü›†4·)"QH¨ÇsØ}ÎñKÎ_WCè5Ø«–»\‰ÊØù&ÓöúMÁücV×áåJÓÓ“ÀòÛ%ÍØœÏPShþž+Q÷q"|lß0»8 ܱƒ› ‘8r â¡>åGúõÅ÷pŸ )„WuëD>¨€—L¥×è&¢Í½GçBŒK`V7øN+Äf©Æ êO¥ #%eiˆ9éÑH÷Uyùω2 ØBŒÿ Ò¤‚ ï㺠&NäÑ´žºõ9üM%¤þå¡ Á¥W\²Ý4KðéôdÐÓµ'¿ÜÕ@fNùú—E{ qÍ> _Û¤W0ÊÏ~/(WJÅæO ÷Þ‚u`ž ÛåzTs{±eáÕZÚ¥Áî{wzÐRâ¸{h“ƾê` »‚¡¢T©Xnb'›R]•È›ZÅÔøž$–d½¥:Aï¸é™ƒßËÀzN^ f‡ò­.ˆá" ˆÆèA~Í÷?Å.=þ—Â4™еN.n¥A``â ƒ€‡×ãC‚¤hȵºÇthö‰;ɯ­B4{Ç|Yü|®u'¾¹wƒDI~0¹a§•×ioºW?Ä·9kòœ qpN)bò¥üPËþÅ!.¨’£wê¾zŽ­m\ ¥ãà2+ì鉵!qÙ¤<#Á¥ùP7Y‚š5úe‰8©4!°4s ›®°B»Å>×PG¶»ØÛªšé‘»Ø.¥TmM…üc“gu†ø“-†ÚE^…âMaú‚{_ˆ3=–Ý'£f–ûž÷áã|±æ{BýìªiFðÝ<œ¹uatô3¦$-÷-§q”/œA­0Â%žÌ§‹ñfI ×j—'*Ø6?"aþ; f s³³RW'~~è…oÞ<¨Ýyj,QˆÞ׺T¯R )v2ëÞk‚Ÿg ØPôjÞÝVûÈÛ>®Éø$>;ü6ðÍãÒ·áÂï®zf¾lÇì ¯þï2÷—ÆIümwïqò?r~lðßI°òg5í-°²i©àFÌìõÊ2& …Ïï>,.[}gûóÛqªÀ7 *Ì~bC£<ÑWó'Á%¦Ù&îH ªˆãZO0Ë'Áï ž0¾Æõœ@>ú— ^7Ãå9³R£=&¼§«îÿfûÖtæ"KÆÐ£Zu™õ~þTã„kÝñ^T”5–>0=D¨§àËîÍ·ŒÒØù%ÌA̬x˜\æWæ°Ê0®‰’§uÚó†ü¼:ÞüX#5ºÎ¢œ3¾ÕC&ž–ÓŽ÷þM›Q³4ÑÚž}$ê¤K¯á©¾IH©® àv‹|ªv~–¹½J-ÆêóKÔôV1^l»Ûs%Ì#à)ØcÇgÃ=®-­ð½à2tdhaûžÞ j‰%z?õ9g´>&JÍT¥Óò8‡6›Š/”átÛ ³ÄA×Qûu9ì…äÁýfwþ×D¾Roí»Àd·Jâx)©rð‹µÅ¹ezÛÀ¨ÃþsHµˆ´¾:x§LxŠgŒ{„zdvT¿8b8«„±üÆ4®†~å…>TÖù ³”.„›gmŠÞ™6]÷,Ö%à‹dÌ^Fª½ V(QbðŽ1àÒb¸XÎee‡Y&ŠçÃçýÙf­Òn¸¸S^QŠÌ&ãû{adçžS{×.Él­ÑÛ=ºJÖîYåÒe79eG¥´T'GŒpÇ">Ì|lã{å¾NjµrAPn3jÔð¼J­t+êÜkêxNT£ð!ø¨ŸsTÎ;]4=ð·Û¦Ô%¹cšÖ|g­;}Dïÿh2)%.²áÔ‘Z›É‰üÆnâÕ“äI´Ô®ÜÿµwS_Õ…O».ÞO‚.ï‘ÅÚI¢°úüDZM?(8Å¡—îÚnæ׀ΟÿÜxzàY¶­ræÎm¯Z¤µæÔ®9®©á±ñ.^ܾ7)úq¿žðýr–]G×ÞA}ÙAÌÖë=Îc¥qô”Ùëܰ[õÀ›ÑY#V»a0+š´Hî#—'%éΟ“ÿPqßþ­¡÷IèÂ4ý-”ç0• —œ»ýp¦3{J…NJA}l“¼èƒ†Ô·rÍaÜ™ä­,QEB}‚ |}ˆàŸa‡ü­õÃ*~à'”<ÆBÕ‹9Ï+{DM:Öà ެέÆÈ>bNTÁ¾äzª^b|ùkF¼PBÄÛ|•² ¤ÄÁØEßöþŽ dìú–¥Ÿ*¯TØ}~Ÿ÷láAhcgçNÅ OT..µÐV†Ìyvæ`š^–-ï_ØlÜl&Å]àDZ@é–ü(´ø JÛÝ?2î嘖³Dá}0æØÞv$ô+zB‰ä}¡Ìðù&õE‹[SÁ1÷maÃä]ˤ+êÚÔg`Ã3‘ÀýTŠ@ÓC©o™o)«›<ìXgõæTfvuyNn±"¢ ÜÃp§ÐHôÉè$Uˆî<áñ´Kµxq¬¦V•—šía7xÕÍ®‘ƒŠD®Î…+Óom|dÆIüIˆkIÛ Â»Ñ­Ý`h$ÿ aðnïm´ŽòÊâAÂP6ȶÔu· Ý%û¿*®º«mSÈ…Wç/ÆnN/õ*Ct…âWR‡¯ù/‡÷ƒ<+ýÛÇÞouqÂuí·W@©ô´Ø{‰ Õ ìe¾!ÙÅX£Wáù×ãÞ|õÉëPõûH~…´I;“¿5¾[P¸üŒú Ç¥Y5 i)"¬?Ù.㲞2Ìñš7‘…È‘>É`ö/ÔÐsSŠVÓO –AŽþÔNkÿ¨Þ]ZK³upÊ™&l|ì:‰³N’£'~¨Ø¹ÛÍë*š†FÊGRÓ­í :…‚ ÿg¿ÿL8s[NÒN­Yr¬}ÂH+üMa|n¦Dt9˜– pë‰WQ¢¾>(zž²§k¬í0CmVnÕµÊåù¹FÐLNI jPõÇeÆ‘JÓ âr´ÄáLmIÝ©P ¡d”O‡/1H£'ª?Fª¢ïB†/[.]RUãEòÇbG‰ l8?†|?JÜÎLÿ"Br. øø´¡ü|® —HhçcvйÑlèF¯4¨&³ó11¦“ì°9êO Ÿ„ÄaRÅŒ„×Þyµ±?U«SMêÏ·ÉC·Éî'“ètç"£„é³ÅÏUV~yrß„EìúPpë!(½K1‚ÉV«W:~Lö{Wämh¡û/I¿ù–•4o¦“³Òý±ßs4Ú(F={‰¥ô‚Í®ÛE“\ªu]“dö:ºB`ìk(Q½ÏóxŽ‚>›­Å(ÓŸŒÞ—_¡€æÏÒœKÙûŠöw•ÿ<Å׋͉‰¹sCB¿Í"ä ©ƒ›u/ŠžÄé‚4åÒ{츃‰’eZ ãðK¹0£-?[ߘXìk§ÅEb{I;’§¯À{B¾ëŽ#fœ®éX”þ!ÞLXx&œh…p-òÅpž/ªÀ åg!ŸÐDBP8‘<œ˜V@TÆå|jÌ-Žþl½@?NÛñºº`#i¥a.ª ï* ƒbÃ7ÃŽ“R¥è§Ã‡}2ipìÏÈd”¹,™ðÊå¶Ûîn²EÉãnõç‚øg^ 1ZmÐ’¶1ÈûïaÓ‰¦½÷ù‘LRô¾FßÕ6{žH]²“OïGŒaDÒ±•ÃZÆyÜd¥«Î^´oÜÔ›üŠqS–g9äñ6 ¸hŸNÜàà›¶—C("ù+L“—Ɖ,·çÆô³„;y.(¾¸G «)âÒ)ïŸ4G39s—,!Ña™³R˜Ý4~¨Ïc diÑ⎠çqî'ÿÀ+:A¥ˆŒÅ‘Iæ_Î# “˜ ¦f6q:+¥’§~¯;1øJD PØãFéÙÕ‘Ä‘ŠªŠâÑZ¤ƒMåØn• ºœa«wiëE×x¾¡”äe‡’ÿ29²j4ÎöÈϘcÞc]EšÃË«µß½2¯tKK´¤À¯ÐìûyeôÒ¹@ĬÙt4µ…rË‘²µž¦öË&màïÛ)´ªá® Ÿýèå»oâ’LŸÞH­=2<§`ù:q—Ûð>¾ÓÎY9A„ç‚ÈÓ…£˜ËÉ×C„&zZn3›>ª|¸°OggSŸ$ýÄ n3Ó8;>éääêèÿrîÜ×çòÿøíÿÿ ÿÿ ÿÿØäÝéèÞçÞÝæòóëîóììòíçâÿÚèíýÿêîÿÆÿeëü6 SÁaƒìŠ€ñ´Q—È,ZT<ª&ˆcÑ‘U`ëzPBHênЬ£õKâ:Tù¨òWcBä(ˆ —klÔgÇ‘Ìí×ù¥¥–+ÝzžÀ–¹À¿|Ùl–%öÀgØs1foc{Ô‘H¸V%¹–Y`ÿd£hÃ=_ЉŒå ^/¹1˜z˜AhŠÕCê°WÐ×§e MSØÈ$­¯U1Ëbäi8ïñK€2á‡'}2„Þ…"˜âsÒU†úÑÿ¦c‹ú™TZyÒv( ‹˜A­‘¼&Y‚¸–Ü#BÖü›¹q7\ð'¹óvE'µ–†%+ÿA~ Ç}¤?W øFÒ™œOÂÇÈØÏêïþ×£Êõ­WAÉË1mØæúKM#E t|âÞc(%‹w#Z‚J ¨(Œv-Ðö/ fýû_\«¸ i¹ï,6´ˆiî©‹¾øq "M*NµD™+‚³ʺ W´w¦@Hraàï&)oÇÿÈxº%u$et®— z-¤äë:RP7±kÎáÊp2 ~HgŽ($ubcÞãmò½ûkÓQp£!T>R¥åšyüM&!ØÏ*$&^mŒˆRDÙ,k ¯ P%ƒý•oOÙ§ˆ1ºq,á`Ž™ ΰÔÅj»å§zªY÷ò „âßaO8|¤”gá‹Í}Ž]´J­J’I` ñ˜´B±ªÈPÜ–JBœw€*°4þþ¨F¦CWP~ÿI2P¤ÃÎ š[׃êo…÷t5ã¡>âŽ}›]i•Ï׊gÐ2ÑJœòh-Õ¥È<.úµÞÏŒ1§õ9¹ï†Öq.±{Ú%52‚üìB ôv¤seBF-œz Ð(ÖÍü„m€!3e åìÙuü#=×– Å¼ž˜Î¤×X,#ýׄ¬Ü»QÅ™`ÂÈFQäbwô©»è»~Æ““=áCl¹‹¬ž$Ê”Þ`E\sô¶}R]çlH›šnhœ*ü3œ,¯x9]Ñ\É}ˆ tw>÷tw^ºNj :k()å"£e0v–º»åÞÚšM »À§Žá§‚­ þÀ é"hduøJx¥‚úBŠy È!›†ä3 -+öžHvÛ vÐÁPy¨#ÈTûêÊAé¾ N–wh CZÜR8-FSÊ€š±¬.üM™õWÛÚ­@¼i¦.棛öCs‚Ë9=w,oòN…>[FâI—¯å7œ£·|Jfÿ—=Ï—¦ñôE›²»îâØJ&†º!¹Ð×MbáDCëäÍ£¨£Wyµæ²è‘éÜy3èÉ Z4Å¢~Ü3ŸÆ*œ2ÝYŸ]_°ç#jtIù:(LJÕ‰P!ë€ðq22¤_Ý]Ï£i¾ãê£ÍöÜY´³K‰³ºô'ü¨v&ËÁ‘fwMVÐÇp ¨úë0¦ädß“´VוµM¥~j!Ÿiu„5ðsŒ ]FÌÖžXg#ü|®qÄž—ƒ…›M‘°§ÂßV!bûÒ |¯ÂL5fd áÍl†Z­íè†[Ê念X‚~xdðg ÝeÿÖ¨At}÷¨>U'µ0Ñý‹Í‡l¤ 1Fgœú VÒ–Xr%ÎÝÃCyжk›¾P+/ˆ)_PÖŒZÛùŽ+áç,Lß“;ûíu"!íf'×êZ»5w Ê=h€xM`Ö Ò•ª•™œÃ3ÊøôÞ ¡G±¥Í'Uµg”;Ižê›0+Ù´âxÛ5Ä^è’d4ONƒ¯üÚ^b]¼možv–|¡Sj²\ª92f) Ÿwõ\£ƒyÕQR1pk"öjrªÏ iÞvo¢‚¹9o.SÅÁø‘©©çc@ÿA#çJÝvúPÜ ò?þø1—WW²kÜÀ—øI:!¤&HÙ{+=Ñ;ú ì à†.«Hn·ÈMÑeK²ut÷5ŸRH3]DˆÕüXДeG‹µƒÖH¦":Ùj@^úàÑj¤¢’±ûøHIÕÐXà(nó^%™êsÍmð'~·E U@sÁE{.äwÉr”ÑAÀÌ=šÞ7!Ýq 4¦½¾–‡w#ÀîÓLôšPz,VÀ©l£/Ìų ‰ü8¿|d6«Üþh|úJð 3Š{sr—ªx-Oþ„ý5ƒóŠg™Ü+Rl1 PN3m£3û€lmÕ|kŒÎ±©`!TÄŸŒCDœh#EÍEÌq!c‚ô&QÁTä®;tpˆÎ&€¾Å¸ñ´/³zÌkÝœSya›ÂÁJçËBüXF.ÁÞ·â.JEpÔ£­¡‘ñûjD÷¨Š ùK‘±ÇhªVQýÀÝ äØË›óÛÚ “ÐrÓ ûtø|u‘ŸjF³î`Ëœ3C1± M¿90@º‚C!©û—à%K‹ü2^£Áúj¾»f··ã x£ötƺÅvT¦f •˜W­(>¢¿‹J¶N¾êÌÈúöe¼Äi ®ì§ºÀ{ü⹇< }Âîúr Q\éy_³à±H}›+]{[ñYiÿ€¸’î%à0Õ$!¿æó_øüL¼CÙ,N‡Ð_éCÙª5éßóׯ¯¿Åˆ·DÁœžsÒ¯Z|b%û¦WÛºgã÷ÛSÓ*KìîKmo<{FP3žîñýroOÈ‚Ó-Ý[ðÔØ¹¬®ƒ}ž<º=˜ Ý#_ýrs™ÖÄb™ÿ™r+1ÖçfnüGr¥6r¢4¢ô"¤°ªd×ä /Ö+Ó7}±‰ÀcáˆÚKÀo™?$18¼x‡éƒߥ~”þ¡›?CDJ“¿u }ƒ˜2…+):Xƒ<Û…ý>R™ˆøüJ Õ¥šW:Òš¢•Þ…ßîh}UÝk©Ø¶è¨3ÌtU-QqÀ;/„j*rD³ *¼Âi¡)…CŸª† #bÙ¶=ªµi€º 25«§Å¼,~–®*oΠ럤ßiËM䣣•™ðœð©×“‡êÛ±h·[:!beçeÜš©»üÒWÞ×vËÁhäM²ëu8<™²hЛO½½ÞJŠ¢ðŽ©à¤· å³Mù~o”d=.I/jAöÄ£œy@ЏˆÂ?M”·Í.'ÕæQð¬Ù˜"#» 17Þ•Á³$ã[•¼ü›~… ·»\F X|娱HàhrbÞÁ©½B P®ÜKlhXu8>²4È[Pi&á`\]@©…:åÓ¯Óóåû>HL||ß夅Wߌ?×1‰³ Ø…Dx¶iCZ¨$î^B9|¼³ò­n#ÿÛÙüÒ»È%Õ;—S¯{•ÚF컬*#FVªì!ÃÃÒ¿©©Ñ%æ~í±ÆD"Ä´C¥­{ræÎÓýÖ0û=ˆÖ'´G‰ãþ±}ãÊß‘>«Ö䲪½iŸsw¹Q^ë%óÚê‰ÁSéøÀÿÈÿè… ëGÀÈ¢ü™À›>ÞÁ0"«krRŒàP7¶ff§­•tšû‰r(×ZòÅ'úÖ<`¹1&q‰ÒE1º€åaÔé{ç齪 ¹A½„ͯ(HúŒ¿â®Éa©g…š™žiÎÙÝ.0¾>ÒQµÓJGßP#\æ(g‚ûLxºúØ£NOÁƒ§:²s(MÆ[XF=Ã^¯tz,þü³]–i)Ýzö/\~¹ÇìCÆLóԻ̰BÉ]’RÇCLèrù;ÓUAù€´¥é&FµÚù°ë·nÍ€’!Ø+¬;¾ŠW=95%nuA{ P#ˬL\öÂX&¨$#íUãø]Ž¿GtÆç†Oü›|à:~aµ8—|œf·÷[ˆè—ê¤(]"qП«÷Uú¼shZd.¡3…vĬU2€N†Cx°±fÆì×€ïŒëµhÆšÿû¶©ír&°Ø·ëÑ$ Á=õ„LԹ̰%ohþÞ’¢ì{X–‹Ç$Lí 6%èh™´¾IÚ;ŽÔ°6ºß„,OüX¦{ÆÓf^Žpu1biËÏDUDŠô µdÔfäO}L4Áš¹ò÷%’Í^yýKÒÿß!÷ì[Úà8è Îð|…9ìbÀÒè}ÚçôÂ7C;’8;8ìîðWi^Ç[ Å.5éÀöÞ½†¨÷{3hVêEBa …÷2t˜v†á ïÇZÏøJ1æ0§ÏÄHó‹y&¸q#åaÇã?c}0ÃÞ6a»ÛB¡†l$ÿ=uck"X‘dûR€åZ 5ÜtÓ‡Ôd Š‘Cœe¿¯5¬À§.³¯82&ø,³„4fÐWN3ÏÏtœÐüM$}mÆZ=i£ß°#`¿Iÿäá_L†â3.-¶ÊÕ|(@‘–;}ím²¿›$æ6DXܰޔ?eÈé'ç3+ïzð}Ý»ÁG•Öæ¿ÿy4Q]R­¹ °=)}LQWDù­j‚›!%~z‡©s±NÐ)Ç©šš™ ˆo‚ 5‘üÓ1”ûn·ˆÙï­ÈW†"¯5j“ W¬BA}^±ýHöIˆ¬ j5—Ë7ËÍ·âSÓ£32)Cèw𩕦ÔPlH+éï¿Õ¤•‡UÖ牓=UÄ5ª©ª)_éFUIšƒ×õ´C{ฬŸ+Ú†w+Š^áÁ²Ò*_~ÙK×È”ï eò«"gKègK¶D·j~»ˆYÁ.mêXoMýZãKuLÛ-Ú*Ç Vújµ¼Pí¼ÀÜéÚA?°ˆN½g©»ö˜²Æ {}ëåâê 4žÂ“©t“žTŠ«Zý爖€1î±§áhʼ8R¡Ìùì£Û¶®»Î 6DmÇ‹ù‚-R%‘üL×Q<•ëxbg¡MëcÕâãiîfÿË&Û:@ ˜Ûª´Ë Ãé"`”Ô ;禨+¨=#TFç?iŽÜF@Ò­.lv(컳äÛÿòÐædø]Ú/Y¼TIì-dMäÌ0gååG`Ñ€XžóæpòWøì á 3Öýëj¬·(l¨aåzÖ¼g¬TG¥Ü¨ãq£#‡é|xÖþJg–[¤×¿¤÷R‘+—[—Žø®=Ÿ­¦½ñ5 ‡¾ò c£;0Qp©HôÐã8»º&¸&3±º#-µJ}¨={,L~k~€=d¥^«J:8 æ_= Í%\‚îÀPÖv…ƒ !â%–? ˜DéèÓüÓ5¥Íо· Þ¥Aß.5À#Ì0jÿ_xùÅ)b×ødÆq°Õò‘èµ5á À­Óa¶zŠTÍ~ôïö,Ûâ²øbpjN(}OoÉpzs‡ÅÍ‚çÝ­I‚¦‘¸›A;t†q”;sJáÓÄÍ:µå*§ÆmKû Œi‰Ù´ÏQ¥ø-PZ;RtØ2ÃÏ|Ei}›=¸ÜYe„§€ˆï¡yN6³Ñƒž"¾>DZsv“mV]ƒ¤Qù$±¼"0é¤È º ÛR”Aˆ"St¨áypi†_9ÜšKòoE(ø³‰Q‘ü|¯Õ³aÓ\“.oI½œÏÅ-Ç`ú äBhÑž`4Ö÷Ÿ9(OúÎ (…Üœ±…+'ë8¡íúKA‹/¸ÞîÏÍL¥¤³ÀµåÂÖ•YA²ºþóWõM5àF”WÑ_¿ŠÓl\.#¥âÑV2ç3"– è¨Ú©€R?% ö!7ÐÒ_ت¸è>Ìô+6ÜÏoΨ0oôëðŸDˆÖcYß5ùÂàD¨’m»€šÝ¿“…³E{‰ïš¨«œW‚R€“Kõ!oÔM¥ðÊç†æXTL! ¶zeâ飚Ìz´¸×ƒ¸®‡,³ƒÇ͆5CzNò†cô¤U~t\ô¡wÅá XÐi{ Zð¸éEˆ„w°‡UzÏDÎ @tbdRaÈOí»vXa}àÜNã’÷€Ê9ÿ¼©¦MŠ+l4œþ\ôÅ44œNã¹pRµU]ÓÚf<2ùµüÔü¾_)›”ý]Á·…½[ܳY3’‚'“ß½Ç2î7Qó•¥*‹:ÑZ:ã`ÐMÐ\$ëCyìü&nœ "ðQeW K|í黇MÖ@©nÜ"á•v5A.º2A]8f¹V.3›GAãþZüLÌ)y·¾²…·ó¯–í½ îCÓVïÛ¶‚?F3 ÄçÞ§t§äÏ^"¦zƒy¯ùY‡[â7ßÅ.Œn>ò™§„Ï*H¼–žÝã”åÓY©`èu Üà +¾LÏ&Ö¡îþÿ<ÀTikßÿ“‡¹¬}>w7P¡,£xõï7t¹–NùX²*èÔ}iç_~b«_fäöÙ­Ô^ W¨z²šôCê2§›Üä‹tpî÷eàaH³E¹Ím7'ïéŒcÌñÉ ð âЯÇÊxpÄS>9Xyó¼94äe5øzüX#,‡ôQ…š`0#¤{ã`qTà±€W îÜûg®Ñy ùu¸Y¢¥ó¤*I–όɪǧcŽ÷ó"ËuÄ´Èx1Ú¹^¨®ÍÎù˜œÛ†Š» ä׿Â!%©*ø„Yƽ9`áøI"õÕí¥)^{i〸e6¾laÙž·®u48Öæ^kgEŸc_ñV>TâqÇõÒ®=¹í(n#=ƒê,< [Û2 b0îÇZ^r¾ˆáF'É m¢¼â‰ôÃwx×ÝGG¦$QŽÖ€Úä`ÐdäüL¾ ФÚíhPÿËŒVy¥l@çkrÚW< pá¬êuðU¹”=ÞB[ 9%æ´vÚÝñ·¸–?…n×HôVÞÈë<‹Ê×ýNiÆ1ÿR²:.²ÚƒàñïA7€1…Uïx17ˆ$øvê¹î?lȦ‹¢sE[r-†iòÆÑ)“èнmì2u¼É¯õuûÅõ^ Ã\ؼg]´€O°©—Ç<‰1–#"ÑëÀ /äÛ¹Tò8c…¯¤ó­Ñ±#ì6 \ÂÕ ].ê¥BõUÏ¥úÊEÙ* ['÷~¾¶üMZ›Öt]ÊS’'í4fI!ïÿÜ¢±õ »Wy}rq+ p«‡PDº0ë·e {Ò ¯Û@¼ßq éXv>À×þxéL¹„+Å_H6¤þNøÍ¸®q‰ &¦ÚHò`ηç‘çõî¼UBR¨z({¸Šü0@KÅ  ¤!1ù,k. zš^ªîàË…š -š[¦îâ…ä_¥º]"'Ž X_´s¶ȪÎ\‡Y™Yw¢jÚÀ†ÒŽý£²?ÜÊ´SÝZGZUœŠ»¶8aˆŽ¡3}gþGÎ'ó0!ôý¿ÉÒ-â4âöÇü2lp MõGpßùÆS«©¬ú[³ŽDÿÈðÎÄræ 4ýx"üÍ4EïöÅÓ+‘#q˜zƒô0þ¯W±dý¬¨}1(À‡ý/k~,åÓ"÷O] ¸_Šútó«þ'Õ£Ù‘´ƒ·”0r>)¿æÇÓÅq‘€ûmL,‘n-ß“íBŸ¦ÄW‹ Lujزï:õó«Pè/€.\÷0‹§×ø Õd‡"E"Cñ+z+­…°¹VµõƆQ¸ô¶ïÒL9ª&(˜³[}dØ‚òÍ6·fæ\8:)îüLÀðÜp—z9U«¶B(¤±†ÊycÛFþGè©>8âÿü¹«*¡f’êÔ§ÐFÞ\Àc·¿1a8Ã{dml½ p¡¿qö¨@4áò/oŠ'ÄB¹Óü¹Îž*5µ \Ú*éàX‘ezƒ"/Š)$ÿ·œT«;óx¡‡å7Jø·Ï¦j¨óàÏÉ¢Ìù†nRØV]hv=:6/\²G5OQë+Í@˜*ع) >Úî–C^j\?ÚUq]ËÄüCÚ[Íî§å* /}[È Ž¢x‚ᆟ)˜#{ fšD䤂»î-¢»CvüMÛÕ¯8.ÿ €>Z"[9çáT¿Ê— iÅ£ö(W§3ˆ¾/'Rã¿õßòÜA$ð;ý¨–Pà8EZùXâM¬ma¼k‚ƒ- Ð¿xEÜt¯E¯I”Oœï øëâ i¸¬\.kn©[ù¬Üûà5Z9ŽoØV§ƒíü¢œÅA_Ø›«×êÓÿ`Ýxå¿uK±h±T>ˆ¬ß÷ýÇâÚÄ/ß—\™^𵑒=8>ÕýXEÑù)ÙU¨âo^PS&-Z8\ï-sî×d~“K7-I1H`S˜•VüX¥³"†5Nœ†)”ðö¬ÌÓÛ‡•Ÿ øRÌ(•i–¹­…fEŒÄÝ[ÄŠÆ‘µñ²5H6.ÄØø<Mo¡,{Çlˆ/Ÿ·Ê·(“Z\G‹3Ñeû¹¶ ë „t©kùoÏò}ýút³ÝÂË ©†ÝhaÁdR¸êÁçZŽoœŸ“zÍí\û™hFñ6cÜ?GQ"mÁ¯¨†)Êžév€Ð§±›õ%½˜ÂæÞÁ¯pŒ_‘O2¤ËÿX |Cضút>ðlÿ÷Þ Ãø}V€üMxv> ,í)HÊC\÷ ×WÓÀm÷&#Ê-Yv¬–'vgàŠâƒÓŽõdˆKXO½m|ˆXÀ.NtÂõE«"5,¨Giˆ•Zn ³7Á‚?X6)óg´oižlììÆ³ Ši H^b <¸•FxÊÛñÜ”¨RmÅFp¸Áï»vwàM\«vZáäØpÍ® .»Õ+¥¸É/Šöxâw*¸j…\Ž_dÀ5§þë㮉ª 7ÖæøZÿw+eãúKã'd¶vo²ÜàÁnÅÚøaÓNÈP Ì8yßüLäNŒõìscùêJ“'gùœêr€w?W€K/$})2ñkKÁƒ¥)oÿh <ñs£Ë"™¿ÿßñ‰éœÐþÂÉe¼Ú"è‰ùð2Ûó’¿fÉqÊÝŒ"î™Sˆ º˜,QLTbãx"åÂÚÁ9æ¸ÔNÀ´aliR_ä¤ß|ßa'4®±÷u11ƒ9ðú@r‚Ç­ø;6½®]pqó" •3ÏTÏÝúL ÅæZû¡PzLÆ_½iÓtVX*çã7xîíÌò*ا5.“ƾT€ßó¦Hp[˜„ ñ‘8ƒ‘º½ó‹Ç3Æ>‰—¾«5üM’ÿbþfÉz§ý±o-F ŸjR‹;,èo—RiçÌ„šB!¸ï0¡Ûw¦žß%³ùø?æÌDýçÒ¸|JyáNlý+Å…qaW'K.^ƒju3 ‹†­ˆ¨…iTQ}P×Ö9š?€cÔ(fªt‹GŠ4šs‘C´BJíÐ@mþØŽ<`Ô¡L5PaíEæòˆ¤‚;—ÿQ`ؾ¸tƒ˜t6¼xˆe³‡Jcyðɶ}ýAÂ)½Y a#ÿÓaÏÜ뇱Ø"fï\Ñ*GcÎÜG”bÓìa:Þ Ûcpö[uQ¶X-Mç% ý“T°¹zËüLÛ± e ñ̸iÈW¶e¶´͇²Á·UÉÅÝüB|-NÿQ–™TÃC·µ¨ó£|¦dpŽb¹Ä³ ðQˆ M¤-Ldú 8|ãOÂÂùh Q3ñb×€øSmØA޼Ò^°øî1Þ¯˜ºË¶øhÂ:µÓÑx *Ô¦[û|àÌÄ<†ªåøn[uÇ£Ñ)w**6ÝTgò<ø¦¸ÍøZÙp ‘ê* ½_®DO^I ETL¯=5ðõ×qa’ϱÉZÙ¦dü(+åÖÊt=Ý ;Ê8çu¾_c>!_µ¾Ïû\œÂí͈ü½¹Š­Vèß'½²{C‚j½üû½e+èÍ»J´}±èÚéôËX{v]ã@\Lš|«ÄE¥N¼BsH0Ruî.†DXs®Ö"ùƒ1 ‰Ë¢¼Vò€0/­AQ3è´ ü·4”rìƒ=lªèÏïlóKx»É$2%Ñz6Ï9§ÔפPd4Ü“C# b&DÅt:ÿ#vû×—G~3z!ä.õ“’ -[±#È¥œO^ îc½†`Â(A7§[ùkì™Ðå-Óp|È B“VèfSOÖÍÝ4ôf^QD ¦Â;µè×K;3R!µ ÖÆÙv0Of‹üM3f=fuÛœ·ËâõˆhB¯@K¶×Vºt¥Ûñ¢|Å?™vÙèÂä4S‹Ð)aÂõ!+O¼i0qžÔíîéJÓÀ©j¿‘•Ê“MM”nqð†U¶AyÀïx¢.#ó|×,̓Õ]Ð^›ã¦¨~gEO&†vçæ'͹G„Ñ üL¼h¾xëÁWï L¡äšq¡wÉæ'ÏSí"ñì]²šúAÎQ9ÜéV$I[ŽÐ|o b8IO‡¯×È`¢ºšDÉ®ïñõß©Îùý›¹í\—7Çì?õ‘âRdak†ÃŠß$IÜë­rK²nhÄÁQ¾V–õsúø¬ Ó¹vŒš¨ív–ƒ}s_㉸Þâ\ƒhå#ÔÎËÀôÁð8ˆÅEÂÐpÇl܆U°„J˜˜éð]´-FÙAooaá7ÄŠ"è½[Å:f¤7f¡x‡R&±®]Šôâ5Jè /lBõ=qMá£ãÏüL½âØ”5?@ͶN®ûrˆt8®RB³½eX‡gX'à³à4ºêÛX+aW¬^!Ó× ¹?^"“[q‡;fDÑÇ,gBF êÖª5~Jïsµh+¥ê´#%Q#yPÉêŽlñ;ÞB·[#±æ *hÕµGÞ#‰ò àT¨Æ`lý9JOJ.¤ïAÒ³j\NŠÌ"*>ƒË”J§ æB©Ü&Í?K0Nâgü>­5 -gP•*»)p›$õ ÔòEyŠ IãÄ„Ÿ‘ «0"¨ì‰7,ñüÌqwòûnäÒÈ<“A¨82¨LÂöb:gz›»še)0˜ë²Ba~×’Q?1i/iòÎ+K½ŽÂ¥ðOXj’xTÉu“Ü¥§`ÏÏxU2ÄùÀ:Úµ¬;ý+PiàêœÙ_xP,Œe% É>±¸gHq›]æ§ÇÕ€—¾8½†Fð¥w²vžv heøzõ@s2úе=tÐNÕ80tùo6‚vCׇR£œÞ¡ñÌB:Ó_o²¸½¹ÒüIà#ÒBµ@¼on÷~u}ç“"šn²KÏ6TÕjgù_ìgÖïÄ?1Êä7gwÖ@= —‡ Ä´d¹D'•ôhXT8íäYÓÁh|Ë÷žé¢…NHæ­9‹kx*ˆ<#G9Îvµf€õ8"Òĉœï2„OóBÚ,¸]nÑö½*\ßQþlöÝE(Ñnl:gPDvOÀcÍ~–7D>(,fsH!ãÖp7yƒãÇ ÅÿžÓýò@ †ü±½¹#ƒ4LŒóÖXš`õoˆHUlb$7N»†ºeâyÅ{×á<NïüL»!dá]Ùw»Ö¸¨¨óc^˜üèOÌúï¯Ö%›ßÔ-±“¬g¾ž’”²æÑ»*h¬¤^¥i­€ŸÓµ·PÃ:§MÏdzíz²”}hº¯®ß»f®¢DòžHÿÌd^„…M‹#XG~ÞÉšäiE ÉCu*oãÙ|à‘~ÕFˆî·@ÚÖ@¼k‹Äº×%ÇDD\$Ãq"®76“gíMÄ=0ïžãø ç>»ž‰‚ûK?Fo0¥‹!gph˜†W\¥ÌÇ h«x>r ¤œj²œ%`ì¯iÐ+N»]ü|­CO„¡Vsjë¹¹ÿ×ünùLÌÄm D©l•¸²µƒáƒê$Ÿ¯¡£ÃåòÙŒý¦6¶|!ÃbÎ |ãZTêBŸÆxº·F±rˆA¥†)TRŽª–¡6Ù¡Þè¿©7†òe^ÍÐA>o|éщÞzA™÷äZ»Ìç×w7$y€¢éÌÞºg$Ûöa¨ŒÉ¤¼UVZÍV{Z«8D–ÛäST­^6]ú!ÁÈ+¯{õ$ 1€Ï¢ÿúâîña®(`H–¢cJÒyÕÍËüú¾“%sJ?Õ°ƒP¼ݘL»XÓ©¦»î¾¦Ó—»éÌs í…D3§(Í÷\* SJå+JÄhD@D‚壱("oaò?®´ƒƒêXH©o¶/VW_Ý?ÔÖVÌ~ÆÑqJ™Õ4¿\hÆ”hs':@?(ÖGgþN‡‡óÀìÄZµ‡Ó`Ù54™ÆÛ{ð;ºŒyU"~ƒ0™• Õ^(íÍ%•äKãR§3|:‘\¹±eæt¦êÛ1§Ø©4rÈxUn¾#ƒ(zuj=ê6l¶Kœ’zÃtä2£WXn•?“(Lëo§nÅÑÅ?ðkq²yÁÈ±ÆÆCŠü[ Ã”× ”Ï‚üI¤ÕÛýËYKÌTÝ–ÇùG0,{"PK>1{™;G:Vß#n¼×;ÆÊ¾‹F$ñÍ!ŽÑ"$n‰uæC­°Ç³Ä[7¹¢Îõaü° {Ü £Ñú¸q/ÿçðæËÜŸ¤Fx_Ò?yî$á±Çâê–×sQsbQˆîƒü‹«¢å*v5¾Kcc^sjK¬jýî%ÆËÓ‰ãôмl¸ù îðSÌÏ­±4bí‰}öé< {M‚UʱI~EÄŒôÜèÙww<ž„âÐȱdº˜ù>C½Tè/Î.^3ú6üLÚ‹I¦ê«²%Trð3)XW6Ø7(‹Þ·Ý·á2Ž£jºì'6¯{h‘Z˜¡ù®{?ò /y*:•a@±†”eÅ¢°ÎWÀ´{€Tév~)¦ÊëúmˆY˜*J;*(Y*äF³ûð1k س©{›•,33œ™ÌõH Ë•1’.o@§®«›ÅÁB#ý߉¥¢¾˜+×ïÄÖ1l!¹ÓŒÀ‰öØgÙÜœWr!¨Ç¢D e  HVV!8ç[•-Õ,“¶ÔŠBaPpÞh*¯»Ú§´Î’Ú5».ûåE#ƒ@8™Äç;züMH˜6ôÌÙ±¾-Ú ¶+O½>…Ë]á—ZÅ¿$Ë\õÙ¥H¦±édŒé UhøUžò)e0‰*†3;Äõ¨®ßTÀ©-§©—i™ôÈý¢iW']à’Ðó©€76èàžF¿P‡ci[m"+™ÙéðÛÓWÚvŽ3èF9¸ W»–ëªð“sc!KüLät7Éø2†D}¬knGYœ!ùô¸–3Âï÷.ÐË}Z©Ñ+{IvýÙÒµ½9@ù?_[8FˇuÄN¬¯<×'#c8öGŽu=xÁ¡A@´¿ÆðyÇbË"ŒGàAÕzK…½¥Âtò†Io‹2³ÅFü†TÉì(°®¢ùËAø_Súòñn–æèøã‚¤¼¨Òº@$®Ž¹IJ*¨ØHÇtCõ¢^w{fïlEx _o /ýÊ•Zœêº[1ñ‚|#iªìiàAÆ/­³ùŒ:—4LJýÌ‹ꌱ*•Òz ÉÝqëwŠ’Š;ô'?ÐS‘Õ“ü¨‡]i4åC–$X°íYu¶å?µÌÁííqávê^—`•±joj€ì¦R¦k«zõë4!ÁwDZêˆçÀz?jº²À£aÖh¡XQ Ö ¬Ÿ†Ä³<õV8 %8øot í0'üm;^c[݉¬™­$Gnäû›–$M.PísÛ•À]u“MÔ a9- +b !P3Ÿ1¦,šÖr‚1±XU‡¸ØÎCblõPŠníE=R4gqåt õòԜͫŒ •NñKgì8šlœä²h€aO`a¯ê¦²†èn0N_üM.T'D½¼ïŠØ`™@˜|3åN/¦ƒÝfÏzˈ…ûâ€Ç}³ÄkST ¸†IÌcKN NÅ(¢mÅÕ‡ &ׄOwy… "‚ðn§'?U&þã™jÿ ¿qˆW{N‘œTWÿƒÑ¬þžáxÑkÒ›\ú ëg™3}oÓ€mâüW5E±NÚ°qd›‚3B Ö²•°Ô®›ÃTi&Ë ~Ì=ÅóÓbž—µ€ÞêÞøØrV(UŒ2 æ]I’Ü"› ºxÒ“Þ£°¥¢Z‡òc†nIÙ⢔§ÇP†^ü|­FFô*œ³™æÏ³žŠ¥Î;CòZK¸Sއ4oQVàš-u[L«ÊޝÌÐŒÀ$!§lt^ý¢ØY³S)¥Õ–!¯=˜*] ¾iˆf¨vñýù ‹F#ýj;¦j²Ùo”ÓïçW݈–ög“7^ÍÉ8}Žæ„=+õÈAXþ·h ôu¦&ÝBŒ ih½Ÿ‘Š_¼ÑÁïbÃç¸í)²«Þ@ü[D¸¨!ˆ õtj€LÛœBì&´Y¹AŸœQ…Þx^ 2w$ú«õ(3Rö^^{ˆòÖíÀw‡£ay™°¥f®­¢.Òy¡‘΂0(±.=A¶°üµÑU+ͨŸM+"9‹äˆGà9Ùgï°<«[¸Õ ±û bcfÅ0]—F™m7Â*h߆D]àž·^f;ÈéÅ:ÑÈ]B®ßxÖ_Ó2¾ 2n“H íqžÀ†Hd²Üœ®=ÞÙu.M3£Jžµ@Ýqyt¢.4†ã’gŒEÆá”(Àø'7ðô¨¤a¿ƒR™$}¤i4¬¦ ‡‡°»ŠN²>¶äñxLqæAùwØ-hw©%:‡y ThµXMì0chüü±RBµ$§ÎâéÙôL~>‡ø3[d>3ÕÙ(ìcßñ€>l0x [ö§<ÓäUs2Ù:v¾Rr3j¥«x³¿»×oÐs&éÁÁX™ˆŠùÒÐKzÄì0Ç^P*²8°Ž±¼Ñ_9#økÚ¹TmiœÒÁ¨kS«ÀDHà¨3'»ÚÜ™wÌbÙÙ1×"¨Î™(U Ðœí·†k#qú:*E³…5 "Ê~Oí“åäø<Õõ@ÁÄ* t޳J,µͳ!mdlÙÄtú2v:, ô˜1õRä×6 #$ÞL9¤¬É&^âýü±œä‰ždë)åÁ”"m‘írrX”˜5Û]­r2ê@ ü} æß©åÿÁ «#ŸbÃdĵ©„<°KßÒÃæ…¨(2¼êÛþX# Ùœt–^¹ 虯.ðŠD„ú!–k’´^×})ωaú{µÎ àÖw’¢ùYãëHý‰îØ|ö¶òŽ—r0܃w3\'âÉ´ä„»À–qçŸ2+]7›ø¥S®·ªø£ñäåØÿD…íÜW"ú{ASiªôR!Nílª)€›\þ 9Â/Ÿ¢UþÞ&‘;(ö4X0¼Mé:½ü±Ù°QÓšQ²Aé&¶ð*ŽwÊ;t+W|sϘý²Þv–º™Áý™ºÿ€ë#jþ´Í4TÔYŽ6…„v#'µ@_¢õ¦›è¦¹M?_3­Ø«Ê;uëxûP[V¯Í’Jß2*WìS£Dö® *m½-Ës¢br$ë|[ë_¤k5š}Fß ”æF‘½Vj´(ô-õ¥( i²štymÎ}±mzìEÁ´öýAŒ3HÛ¶@‡(­ ’¸f¤…):GQ¢”Y³WÀCBb¦Cȧ]û^&Xâä@;™?â/wîôÛœ@ãÕÚ«NäHZ’d„ûü² Ó%Gœªi¡út|ÐYÞ½€£.ä†ÞÆÒï©¢Žš¦˜f%8W!=<áûk+í*‡š¼’ü h.ðùW€Qdšøˆåcí]ÙlS•íB$ † ¨R‡RݤÀÓݲg¿À£Ÿ¾gKú"•!¦ÿkœðeþé2¹ †·âô–'”!Tát]xŒ×@úr­Ê@ô=æSè}þ'  +ˆæ øñ$ oîjoÖ.UÑÖ»ú„HHþß ­E­hÈt€ÞÁî’5ªHŸlµ~Ú=ž’­~¶ÇÃ-ø¢$öŸpÝœå,·_òpÝ1öì¸2"K›•Ьàá§Š an¢úü±[cùëGƒ“–¹2„È÷ ÑoÎ5ôÜ„ uªïÕìò^0ª«)€¨o«ˆµ ’¢k$?§¸\0ÒyýñMäB!‰zä¼ÐþT#gRL]&ÿ¯o//vîŽÓú¿µ»7Hä2p´(c·¨ÎÔ´ñÛàÏ‹–¡Ô`GêV¶üâŽ9aÀž|ý&Ô'W^½žvúhq,"a4´e ° ecÎûýú7P_œWYïÙL^RÇšA r|i®™JÚŽáïѳjÏ®2Î%@yÛeù3CلΓŸZÈkòаp€Å¨:3g‚úü±|b¹|û â2Ám€'S|üY–~YL,‚4àŸ@ë€íÑRØÒ4¯ d ® ­ô¯)ïŽl†êXw^¤Ve]Òg(>#¢ä²DÂ’~¿Mõ8Ý‘jàÍZú3?*.¸®42¨>™Vß÷…‰S’ˆØ’1öѨׅêùa ¸/iÛ¿Åæ‘^˜çYWŠ-3PÌç¨v¿ôþ\kô–²¼ú‚U·¡ ¶˜udmüNRÑ/¥N“Û¡Ã<=ÃØÄ‚­Ò˜:ròˆCÊÈ@NÖî *ì,1)žg2@[‘êØ¯¿Ç›ßhMiååTÃi½¿xDãJd'óÿùÂúü5(W ®~;- ËqƒKh­0gû&èÈí¥«cœRµlÅç ôUŠËñcKâ–œ†Jˆ« dqœùOvOåB¢\“43Îw ²’ßrx—B&[òÓ=ÐX3vl³dr·6Ýo§zWy×ã!à«éƒD¢³~WS^>Kpºó?o¼øà ÷ÍQ—: 5˜rùôU*ò²Üè| +hX~}ÀΞ ‰>Äü"N)-~ö÷ŸÙL»w{ÄËã â/gÍkØC-0„Ìû¢O>‡Zr‚”Çþòök㘦‹ÄXj™yÑ"•ºŠvd…™îñÝ`bæ™QHîvÀgž‘À­Yq5OQäÄM²ÕïŠÊò¬^$®‡mX ªp…Sp(L)¨Émgü۸˳Ô˜"Ii‡»›ÌP€Ç›9VAåµì–Vé„¤Ö Ÿ»ÍÓÉ3Öå6„UûÚ¬ósë?ÐP4ëê ãÊM½,¦*d®÷ä9l|ŸrMâ!ä²öÇA”ÉÁµ½’@.¨ËåIœ3VC|qžØå€Î,TVS¬Õ—5d‡ƒ‰ÁböCÃB-5ía>éj(yè è0о@©ïj"T‚l ÍÁE‹4Ï¥ÎU/úõ¼ßºûòdÑ# õaù£ãÝY±}QŸ>t£ïÖ‰ÆkÇ©ÛÝ’A(§”Ñp¸·ô.Æ ²gÀ¾ f®ø§ áAî  Ë˜¢$FÈfPF™€9Û-þAmë–jSk"V#kÂgüLËY¾þ5Ðk¤ÍÎíÇÖ[ß–SÛÏ/ ºêÖÔÅ-ä§Ž¿@o°i»Ù½8BƒC Þkb;Ž9T}Ò *sÈÒáPNŠv4u~#šhÂï±E ‰älÀN\·‰/ Î0WT£ A…¢eê‚äsÓjÊžUy~öÙØ_n^—üb`¸D¯ôƒßž8–†»*mubzÈ88bdDÓ‰¸LeDF…sŸ]ð.«ÀIž™!aaHå4Þ»¢4ewv9wE 6—Ð×4ÿ‰¢ç¶& <$v`e:­¿Ü+Hãm ék9¨Ô {fy—ôzz„äÿåžLŽä±*œâíÖDy÷¢ü|¨¾†ןŒBg¸kãn>+³RIÔ|‚~‘ ©>ÊãN× ÔÓ>Çvë‚O%ì’³ôú0€ö{ì!BŠ¿{R…6 ûÖì¸QZØà)0Øu̹ïÒË’bPßP‡s UªBòµÜÈT-×=¸¯ÍtkiºvÄØÕØ-³¼0\s×a³“Å—ãõÛ¨Fq’Á„?œ¢–;1‚%¿\ZU]b@^i:²r­–¡"½ÏŠ›ÍðR'ˆhD¶$X(}ѾÐ …qÎìѦ’àE. Tƒ=ÈÛj _ST‰J#õ©h2ògJ‹¥f!>'Ö„ÿI²GÝÞâ Ží¶k÷ŽSdšm¡pQ¶^6 àcäpÞS¯ãC¶@Û*=F2=xb΋\¶Ö¦PwÆ'FæŒÄ6£RSêŽ:æ>gÏr¦ãäœìøšç`KµT[»<¨âÊ”°À’Ç'™ÂtO3žD®Ë†zÅÌ×ñ[A3 ËŠ6béª3Q^재ÝFÌÒªæ-k3YÃÿîß´~¶G>Jf'ÉK*®Š 8°SÝ|™žÃœ,¿}üüMõs‰x€¬ãŒ‘ïØFx´ÿùºb0Ä–ºüc*Iêy.ûWñ“GDª×û¦TYD·Ϙ øLQC€œšc$ººØ… 7e½l*îq¬]áÐÙE}m¥ò{'5dn+æ´6¥ë*0U j98;²p˜VóØ­]Ç‹øJÿRHñ}’õV­×=Á^BµÁ/%†ŠnþWã_ØmSX\uEý5d((I¥¦ÎKzÖ9nÅßòR?>õ/a4,ô ´q"ôA$ñÐ;¦~Ó]$èôÚ…-º^Žá. Ñð³±;eüÙwVls&bdÁNµ=îŽ:аï„{Dg¬µlÕlÚúk¦fä`‘ú@NE;\î”çfv1¶@y•:À$…÷eòçY”‰,Äþ ê„Î1fr6•˜GGŽ-bМ¸³VýÊ0 ÅFäjÞåÌ€¯»1Á¶V×·d¶[½6€ÁK·G"ÆÌIqèþj6òÇkQÓ˜ws‹¬‚!«‡yÎO–öølÉËCü‘U}/öž¾üá’o"¹6ÚfUà½(:ïÑM± XR^A¹ãrö´½ë"ôcὪ©`òó Ábƒ -D4~M5‰xN ÇnüLÃ:בt‡L͇ïŽd&”œ4éK¤BI¨`‰Øc»@Yn®s‘›7Ä¿îèïæm!Î<µ‘Ç~.-ä¬!V\:í Ø}20EæÚP`Ú8] ßxv>pšÚµ6¤ìô“›Ô­ì_çˆÛî*"Üqûxª¢°IÉš¨SÊÆQî"Ĩäó~®×ñbR¤äÙ³š„! üO*O°É£þ¶ˆ¨Ã¬Øú3Ëeæ`æ ø-ĺÝÝY2—„r;ÅYSsÖ%0ðð%ݹ¡ÉcÆŸ`ý÷'ùµïè>:­,Ã'—5Þ vÝpNC)ÂÖë‘ÂÈ&üMWK’œ™ð À_šäZL})öæ:æŒ [új‹0;1©—ÍY¥ñšiH„kj¿MÄ¾ß $Œq­MÑ)@é|G·Ü>Øü–&órW œ%§ûÑTÊçNL0¨÷Û>Ñ6G’|êö´å E Û*næbFð:Ž"sO¥©¸ÃÐlÃó(§.%öÓ øŸäj‚2ƒ²àßÂë“qÒîí6œ?З Æ3Fë…{…t Z×\o+EÜjWTù ]Ú ?ƒqà ’[±`[avn½° Ž®B—¼úþbüÆ„Ìeèõ««ÔТh¡³~ææªéÁ™4EØZÝÆœÑˆü ÐŒÚ#BðéðŠ¦£/vG®Œ„¢,< —ÙnCCðÏ»A + ÐÞ‚¸þÚg—ÞûUG¶àÝÓÉ®4à àíë`ztÁî•ÉføL³P™ Gƒ‹wñ»>“‰A ÒøÕæˆ¾hŽÒÇWÒ£ë߯sÎKÙBâ W³F’ç `åýꉳ•òªe5;0À¦ü–G®í¨~&²â£÷ûàú‹*_œý!†O¡+ Z¿d4f ~™Ç#8j"R)²õ…üÆl âH£k*s0çí¬xPçÆ ¨TÕô^a$.lÚ¸ÈvçZo(´µ€•l ¢¶ð£ù5\DFð5y!¯»ûÐ_ª—¥²ÑWé+ý@ÔMÁ½? #¾ôz;Gm/øžø4µÉ›úb²09Í©;T® ª MT ™ˆÐ`ÂNG´)­Vêò–ßø¹±•Îñª·u ¬sv‰˜æŸiÚö/.³-U¿•“ZB…˜R IàüR(äQNåjÏ‘n”%éµÍ‡Èßñ‡üÆm£›­fÏ^Þ0"rŸCê‰k4‚AÝ»ºf@Óæßà·bÀ2Š?ü‹P¾žž}…–Åža·ZNs$ ½­ÓÄØ¿kKâjS‡…²Bþ%>ùË/Å@46þ¾és“ëv”ÞÁ)©®3jt œTš5ú»ZB!ßâÜ»›´:~·\t ýúpÓhþ3×ÈŒ±Y°ÁP_±µs“4¡”H›+Cà!°tåûzz°“|éýhjcŽÙ›J$J×—R¤=tIgœE­$Wµ2g²H~‰jÇzøßV?­S”7a^£Ua·µóD¦³‘Ö>Ø¿±•5(’’JÍÕBÔ¶Üý^ Mð7Ñ:¶•=©ÆÇˆzrÝ›@@\Ëë…ˆüÇ`ˤ"ÞÒõb×зðÓM‹wŸWðI~帨®ÁÑÆŽÒŠ6uVÙÚx„yðÎ7!?µf÷oVy¬¸F±vhöoƽ&D"Ö¿–tLa3Zqë÷`QÕPõ4íFÄДŽMupÆ+D×§ ø´q<—¯â~o6Ù.Pk<ï¼!úæÂòG‘7H¦mÁÍ'äL‹ŽÁ(q^¤kèZO§/ªŒ±SO_qjÆ£&5íO‡éV¼¶÷Ѷ޽+PÑXûf•ní9ºÕnNb½$\“e¯6iùªÍé—i‰ü5J¬Dß4LêŠ …”Z H§ ÙäTÛ£+Zv[O€o‰çÚcç þ0»³Æ–’Ò°«Ùk];3ñPŠ”}92†÷Ö÷z ´EŸ<ãL¦½¦0¾rËšÁÅæz R‚±<¥ÉYmç'>kªÚIÔk}S÷íÏi¬§Q4UÑðª7‰KÉ]ü}ðÿÉJ†¸uŠ­ê†oµÓ§¾G^¯¡yx3æ`k¦ëª÷Þq/a$ïVÿ…¬XÝçþ©iºiÆËl‰õ꽑£Y z© H 6Àz¢ºû3Æ€‰†ƒüüƒœáyYNãߎüMæ%d­é2uå9Õcá;|Ò§¶ÑçJÃdqºà|p~BÆ„,xâŽ13dg¬ÛÉc*æY%—dãöS¹mƒ?ë¾s¡Ë ÂÎËÃE‹ÓÁ ]Cl$-Ÿ½ê\Š˜(–ÙÄ­.SÏÀܼ5áÄÚúÚï`#O¼ÏÑ±í ‡¿òsW‰DÍÙŸ¿ XAüý °Í•iËìÞ·¼£üÐ¥§‚¼ØJ37ÌFXmh'aªIÁU¶¨TŒúþvÇJ‹Þ?…âF—ãö?«TêY]Ì Ç©Î- JóÉÙÿ½g‰Úq@l», =M•è5ãåüÊbh¹Å9üMœlù8‰òw¯£=@-ñÁ°Š¤ZØ˜Ž±Uub#²­A›vÜûžú¡‘?¤}`º¾\À_[ò'¬§Ô}±üÕŒ_û‚^¢¬™!1Ö58òøJì¥tÁ­ ˆO1(NÜ3ˆ- •ƒ³"ÉÓçú†°=s­F ó;6ÛŽH²’v­Ê4­Vd%)®–,~2Öû ʟܾ]ú ÎKÝÝ­02¶ŽLdʃÀг=€©ã<º»[/ûû”¤ÁÁî hÌ Måe³Þð&˜ØjÀ…©šš•(¼5¦è&q¿SÐô†Ò^cùnºlÊaa…Ç•¤2Þ…LzÍi'ÓèÇ’ê9ŽN@Y"BŸ£öZ:‹µ‘l ºÀdzɬ’ÅÉ[Ü> òQ%jbEhhèí»ÂàÏÓ%„eðÒå¨&WtJ`S票y;´ ¾"ݱ¶ÀpV_úèaPÊz…^í,’`ªÆ|¸hþªµn<Ìœ|o ôß e™«ezZÅe 9úÈQ…ŒN4üÿ*Y?Ž’«¢<ßÈ­ªü(Ø÷téÏ–ž­sÒ4Œ)îA¤®è?â7#¶|qÔ×3WöƒFº«ªüLÚ‡âÀ!¾´ð̦*·9ÍÓÈMÁÆfVKxð¥ú\17o"w—hÞfâdOãûˆŸ¢9^‡È¿†=šUINI/¥Yýë´“ “Ý€ ¶Í·Õõ™Ê›æ¤=`t½==ÒkžD¢m’ë:mªØé›PtµOÉLuT>Ú´™·Y¹X•Þ]Éï°¢[ 6/úðŒª4ÿ‚c84‘¸`Ï­âA¬>ÊSþK;'V˜VvüLó†çj;ñå6˜òDôƒZøAœâ‰ùëµ D€»½{6¦NòcQ¾A{PD:œå0@-'g“¾¼¨€þ³)©ºˆ'é?‹ëÒ÷gþF€6lÇ‹ý%2› ¨¨hgBDS_ê5 ”½œSƨ²S@kPP”#R'ì/Ï…«wº׉ìŸIµÁ ¢‘žòîÕXÃË R%GY7Ãk}%Qh¹›dñÊYìùLRM͆_„<³ÖP̼U4ÜP½Ýs…]„ÅŠ]\eüLÀø œÄbšDßi'5ê¼ )k„y€4="ܘ†Aq„ÐÂÀ!ù_Ÿ«ŠqñŠ0›#"þR<‘Åjd£ûRxÜJÁ£?þyÚÆ†kÖ¼A•UÜR"Qž„¯ÿ|vôàÁÒœñº»¥Zª¦€o¾üç4C˜Ìòu½éf5‰’nôÝ©¤@N_ßWþÁNa˜D Å6;5뽕H¤<Áï÷",`¨µY°”÷™Ä¼ˆ ¶K=Œš= *÷Új4/Û©£Hë\Æ“#­n• Á%ðšKüMW†Ç€ÃŽ(áÓå±^c´hÆi½è»ÿÄVµôEYbË%ªú@ Ý]°º~ ‚FDƒ£ ߇ˆ‘ý9ï nÂAH·ŸÆK7U mÒJA(jJSGî£sœFW¶Dš• Ž¶%]C$ôKÓzÈúOxĶ©º²ÉUd(£­sr@kaôŒ­±@™ô'KW?á¾Ì%ÐÊ)³ñ#ŽÚ~ãš|¶ø@§ÇáëBúóIoüëǬM,€kÎQÕNÖÕµ»õ¥Pɽl›m €»ç$Ù'ÓÑ8î…ÙÖ]ÝÐP^[³Ê¯uüM.TƒškVˆ3 … _>ìF|ÍSe¤Œ @Z±M‘/„ž¡ál­›×Pä-¿K9ïÁ5QiKÆ—¼©ŽíȤM>)’éœpXk ãÏ6ÒöÙóð Û"½ÛdÁ­¥¾roëí„V9£º,¢õ¼äŒµ¥ÇaÇc|@š08žP.A¢uÖ습Ôü0¥sQ4ü>ž˜Ah|¤~Zn’g“O^Áö¬8“`ÇИ:‚Ó„Hcñ]@s¡q?„‡TKú]nÌ/å¤I0ÖTÆž¡É()oå'z}G–ÆÌmW[Ò¸(mlîÙ¾§T<ù5›VüL¨Ð8K9‰ÄöcX²r*ɰ.Äà!àÓGÚ8— Ê(usL{z‚Â,†LÌ\>Û¼PÞÉob,}›K}»FÚÅuüÜAËç#¿ÒÓ–>dªI뻊óD*¤)zÔý8D‘„ZF%^w»&OŸ©”®*¯—òZ.•ññÃkösäÿcÓ -‹<ƒCNâ•ÎgÜ{Ql³‡×S|˜@Μöù0®›…âˆMæÛÛÛev ’:•AZôØ[ØRSŘ£’SÒðŠZš8±„/ÂÚ½…§¶g%3†ty¸l£Zß“&ÿÏô¶ëüMD싸ÝJØ\™—€66:üXÁòÝoŸ²Û›máp­néÞeû»ê¶ïßÖôt…‘,çÀNÒ¾˜oB›|¯ÓW&Î9Ù[zÙ>¹ò=Œ)<‡º‘ßHë€2õx³ÌPðQõo<³ŠhVQ·]ê¾¼7?vsãF ú(|w&6$âz|Ssˆþr7«ºx@qÉ‹*¤Ê½âÂïÊæ_K±”Öç|¹Æö¬4h›€Çp‹UMݨ?Lðlkk¯‚¡Ÿ>ø“‰™œŸ¿ÚÔÓbŒæ#^Ÿ\{˺¤Ì·]P$÷û$vÈâv6û&æcqÙüM…Þ!'Ÿ'@=|ëCê ØHÜøæïjE[hCÇ1T°Þ›©ëEMÄ Ì厠<áJ»´Ò›HÁÖ§W¥Eålú:wG_:©0ëÎY;îÄÜ@øÙ€ª2iXi¹èS¥½QÙ´ð3 œ~Îß(©¾Ï:ßܹyð–2ZR‘¤—#F6wI`½ædö¤Î2Ší¯\½)}ÿ®Æ»³(_<¨M<¯Öƒ ÛÛNrÕöþOêàq$±ÜE6“SOsÌÉ(ÛÕÃ3,0,%¥o c´´ëIöEP1Wreü5MNsâ#íÏ73¶ 5ÑZœaBÙåP¹”ÝÑ¿gNI¢R)$tTé/>f3nÁÀá³åÇ—•›+aÍ r6|=ÆW¿1ÌLi£ò€ßE:_ye¨ j+w¼C<ý\B®’¯ê›ñý°…¿lèJG°%*»å!~ú\éT¨Ÿ#³ë£À„±DIU»>ŒÛ‘zº+2ý¤´T14ë´,®Qªzß–… › ¹yRæ%1NDÑ:1TèpU'ûü5Õ"½-LöØ­‡á²ÆOÊS_üLÚ~„`‘×vÂÏe«Ky")ÿa)QP2ûD \ãAìúØEW‘!ù¥| Dó?™˜êú_  [Ìxóh$2ux¿ù0‹œ|v`€äÇ"M(ÒÊͤ¦;Êj³…æ.5Ü“»À¸Yî&8à: ŽúÓÉûÒkq %vZáçÐC–HËÍ芴]þaDLâ)Ø* Ëådâcwý-§ GW±ƒXôY‚2‘hpbmUuø ý”Œxá÷8÷Alï✪ØÛ>f‹‹÷ÿÿA]2ÄÀû¬“£>@ßÁN¬ƒáÓ÷=£üÛqÛb†„zw¡Wñ­On-5›-õ+¨ly°>øwù5Fµ ›#­!§g.Foí{,Èt3ýá­8ìpKàÑñšÎs{Õ7äu1ÍÜY+´lß b 6À³vL„˾èé”ç“’tÇàÃwÅ5ji—Ƕž•üiÖØ ™ÚReçÕMu2Ÿ¾Ý{÷’鿏JNÓ øQŒµÎ‹ü¸'ØXÓõ#òTOЇšv€6¦“ØË´KéÑáÍ´o,¶‰RÒ!·Šƒf8ësK`BÍɱ”|L§»}Ùáwoè€=ñj¦ˆÑˆüL® ÛˆÏeƒ4LêW·¾Ô›>liŸ“©Oí´ÓÍn&Íêi#IdCN 7Ry]p0 uêoê^nzv¨«3…ª @j]g§oäŽôoǵ¿QºÉ¨„¼ùLåÝ©C9¬4Ñé„ñ •¯ Ü'_kä0-¥a@j眳°Žzs°"®<Õ¨¹ÀÈ_få.“™9™1»~0•oÉ’‹ÞÌŸŽÇ)<ÿ‘ÕÀ;XUP2ë¸ëÌø¹ù$=íÉH›…høŠ ^@Oñ¼ãP«ÈÄÿ™µ>,t¸v×£7*÷ÇžXõÊ×xô§##žüL»y÷»;<:;ïœnq¨=›'@Uï5 G›¦NÅÇ,+ä¦>=§ÿ‚®@k)é Ò^<›PZŸÝ5oO燑ð~Ëy1äf{ÈU]ÉûÃ'ŠCˆ‰è™¥lNÚZ§`øÛ*ÙqŒø÷³* †Õy³ÀÑ?¥XV]=׹ğ˜[ì}þTO>ž¢ìš*•5ç•%­aX/¥¹vŽol°»‡ç-Cp› BF¼(ŠÂ¾©jÈÌ)¹žúxéñŽß c¥ùŸdïlþ²|ÄþQ¶Ãiðº:C­Ã~hÂü|š]+„óöÈ ‚òF²z²¨Ø0Pymõ`xWªx_#Œmg"ÛyJŽ•þJ>NaòÅmè+ˆø&z%âw÷'z›½&{¶†ÚÖacq$ ð¼ò$ "ˆæpÅYùÎú,T“Ó1Kw6ã=->[‡0×ìGs)îÍi,„Då#µlvÈ’NG:é0„Yð°ZUW^6?‚¡”A‡Kqáû+ÏØ¯»–ñ©¶þÞ,Yg®aÌôÏ¡qÔ Icx)FUy&æH'xP@1Aþ|“J¥åD50˜t·~iÒ›H vEû!üŠqËhØ6qHº–gÜ Ê« èn]Ob2¸eo £”#§±ú‰?éÍÊžëDgïc“~ý«~Š©–fSþŸ»b¥Ôm“/Z€C޲,;1öFKdÕm$³£eüu$#ëÕ„ @ZŸ£R…Øü ˆïÀOð¸7Tð 1hùQá¾ÐTÛåZÛë7VLä÷—4¨±Ãm^„þ¾uÝõsDÅé,zÙüÿ%5¡/Û2~8O—*r¹½¢ ´›ôÔ’ÀŬÒ9ªJÉ•þXj%0ü„Ât¡ÎSç'œJÃLQÒi„*˜¯û›ß0g°e’ŠsÞDNÜkòå8ý?#!b¦Á—óEá‘ÍøWì8|\ÔjLan¼}ëYÑ_ø×Ø5ÄÙè‹S+õrÐn0e¤†^S,¤·YËccßDfîCðTÍ’@4i—ZøÐïsvÝ´b¥“Ÿ?ús%Õê†`µ²:«@Øõ­pî¬(2¢Ü*øm&°ªÙE/%m¯ûìtî jv0ü± D-$}ãÑáGÒClsÊög –õºS¥ò·‰Wp¯õÁ– ¢‡ÛØUÚËçK5ij†G2HÊ…ñû 4×sz£øûˆÐå[žflKfªîÆ["Nôéy®Qzm¦NÎz·ú·ð¾ß+_Š«8%?@Òar0ò¡ë,¹Ž5NÈ8¾TM5ÍiZ—QØIÿSÿJ†‘†“èîª7/YMNêv•£*ÖQŠ-ºÂúÔ.Š ž(ÄØÈbð’Í:@Iæ´‡$ž=Ínm‘rE¤£0¾;Æ ÍF—€ØïïâYª†ôC˜"õA«E!º4«z®1…%_º“f!ê­ô¼s•°ÕÓR¥d©«¡š‹…½3–€Ìê“lCð.ͲԀ…ÿX¯¢²b°ØD0*UgN^yäSãX”³0aë4I$ß'üBßCZŸsÿ¨S> Œ©àqPÚx5-oRÔñæü¿¼íŠk“a¬¹›Ú¨ëÖ5Œ«½kvÕn­Ðò(èV+Paú}œ€àKÕ´#Òþ$7ã¦%)bY.;ÔzV<ÝÙrˆÛøÊ­©Æs_ÜÒ‡LÖï^7„qW-°¬êy£Ã6$(¬Jª7aõ”Áë‡o#— ˜¯÷®ëAÓŸ2¬<—ý+¯hǵ™* jbu,æ5~þÓÌŒ%îK8×"óSœÍ üÆl™MK®œ5ê´?+7¿”éBtûÅÜ!Àñ¶G¶8¶J³SÂCïr”ØÙnú!Þ%Ã0`öêëVðÙÜö•/牣G˜ƒ²]¿ë‰o…N$äõ††¹MNß_Êk¼þ,bÕ½Á¶½Ï`.QIí|…Q¥8C‡ùsãƒíì[²-27ÇméaY{4 šg=ua¿,åR¤ð2iñ>*¯ÅƒóPê"6ó%ÞêÀ’• Zæ¦ZØšØ2þ;Ð(œ¼eU Í“×;R%QU C-¢TßíEÙÖ}!ÎÀÛь݂Md·!9ÿÅ÷À³ÏÙ/þk ö¼£¹¢ÀÍUf¦¶Ì%¿œUdnlnZ>¾+š|B/»Â©·VýÀ~5Ïõ'ñ9>N‚±‚z>ï>‰×Yñhý.ýœÛ¾(¼¼«_NFýß¡U?Á:ó€O¦Pš– ë@o ˜Ã¯Ç…eçUœ%×l‚á Î"«uÎg–ÌÏ¥èêü®|±B4ÒöŸH]i¦ýJÜ—<:ó†Õ#?.˜–#ɬ¶ ñ U^Ùmg!7˜™Á0$”¯Qð³?÷ñˆàúíOñëïgŒÓQÔ€p2G¨Ü-à—H¸¥\::ã,É2]5ŽÙW¯œÖŒ:âºuk£žZ‹½\ÎãhuÏìlùœû±¤~³aß¡HˤùI²c:¯õSÿèvsvcü+ÏA»Ù(’¯³ïç¨=ÂÝÆö(MôÆ!»ÚCö.ä¾L<¦ˆÊÍ<Ë„QÀ<ëzüTÎN¶° »áSŸ/ÏŽ»† ­á«„U;¹›{ eÿ»S¾Ÿ ¬=¸\ZAÚG¶žO6ÔÐ_I›»Ë¶Öãýçjê-xo1ìë| ðoÒ§%bÈ©=Ëú2I5@ŠmÊ—ýy˜WŸëuéZ{‹#›z°OæG¿…-Ð6¶D¹L¸WGDˆ¾=pÂs¾]Óúø°bü}bZ½þ?_Z—Y" ÆV泓™bxµëïqÞ™ò³äªy[&0Î>©"iöü Y껄{­ ‚aÜ¡k'WvØ-ÌŒ“%{‹/X5´…ÇÛè«üç‡ñV_0ÿT±»w ¢3Û̬WyS¤U^í­ÿZáµj£ÿ Æ•tèÉ IˆÌ’Ÿ×дÛjÕ‡¼ ì×`—ͨ;‘Yæãgì|¬žO 8ë׉åGÓtÍBIÌ™l%9ýaõ• ™®Ù;Ïh’IXÄÙE—ŽM̰º½Æò®\ºÌÓ×5°eÒ1ž|‡ldHøóÈkU'çQ'õÔ‡ƒ¡Ð¡ùìÞŒ÷$“ÎÝZE¹Æªçþ ‘\†B»Jë%ó“P?ƒ/” T¡Æüü ™RGÃ):h©‚Ãv]èÝa¢“…vŸWWMª¿…p"AŠ×Ý\?™þª¹cÃQnÃÍOß`4ªv¤½-t ç¿çKývÄ0~Ô.s¾üŸ›FæA«BCŸ“ж†ÙÔœ¥OÈ…v­“)›1Á^$æ›CVþ#ªf³àËeî)ûÕQšnÏ)Ä5üM™š~¯ÇD™Vs52‰B}üÉ Y%T¹Çr]Ÿ‚Òô›Uxv:.ŽiãMu½KbŸp0m~¿)ix;ÀNlä`ŠÕ¼ÆF!!ÜòìmÁÝ5\d ÖìÐÆ™ òlÎe"•ÀºØ (”•,ëJæ3•¯öÿu ÿ0gU[Ò„Œ,ŸvåylŽÀý³‡ÿç7Ds ããúËa¶ `0„ožßšBwn8R¤ó ¿éo‘Óží³E‡Õg,\M7iWôm¢0G¯ƒO-ó=28LQ;ãÝV&Y¤kÿO3Êô<ÙÏ@üNP‘g‚™MÿÉ–³’º>¿ƒÞUû(6$¡~‰ÝDÙQo%¼›¯"DèǶs{ÃÛ·(/BËT”9|Ž*L˜•š'(TëP­ò¼e,CdB¢Ã†ÝXEM˜äAcëÏSŠòÈz Fç”Ç#•nP}Ù þâÎ+W2¿)Z_&ŸÁ7L4“e“žÇÿlwMeR9{¾Â_ÀĦÐ7ßÏÙå!0p«´P ŒmßQ:yã] 3y¤§²4WWyPýA¥¨HÉ;•Ñ“)òDžB […‚~ÑÅSÏL§æ2KÓéÚOggS&ýÄ n5ÊB§‰?êçéÿÛÚéôóìêÿÚÿ'ÿÿ ÿÿôÿÜÿ—üóåááÿ·ÑÑÒÔÒÙÿ¶ïÔÓÒÓÒÓØâÜÛÚ×ÿ­ÿ)ÑÑÓüIùÐʼÿúª“‹/6ævFÚé¿ÄjÁ¹Ì`¹rüÖ¼·ßÆG«˜ìë"M¥<5*j:ª“XÈÚ‚ÄDÉöÚ’`-ϼè!¶CS¢„Ñ¦È ­‡ UÒÞñjMH‚ Ró>i\C î‹s†îƒÏÄ¿¯e’kæÞ[ USd´»=GÓG—I±ÆO3Ï˦,#9@—P§u£Æ‘²%½Æ']‚%#»d‚Ö¡Úc‡¨3Ýc­Mrp3klåÖ(ëf“ñ‘.ô„ÿñÓü>ïж‘óh7bíŽìœatñÂ[pi®˜ ƒãN »Õ±æ—M —;ü›|¤.39.Hä0šÄ™¤ú)Üí”ú7…èß§½Ûë(ä½-̬ú?jþ+l8>B[Y¹yëìw„ÐxØys*”"ºŸ³béÐÊÿîÊœ“ézS>lZÁÞiÌña,úfôrIÇ&œÞi¹”„©[}|˜µÔRÃó‰Z&þ‘§Ç˜_¹Nê8bî V?Rg¢ùúÎèèV\…µbé݇¦Öúëú¯ÉS#u"’” ÍàOÀ†€¬ÝŒÙñ#Þ‚$÷©ÌÓÓ€ZªfýÙáï#tt ÄêK†ÆlBN6¼lgNÀðoü™E‡/öøsí'ê^2û(/£ùÔí £¿¹ùf¹ÛEåŸñ ¶ÀÏí>uvºi¹.¯ª¬iF©•R^„–fRVñÀ7uH-H±8 ,:ÚÎŽ'>NTˆ7.…ŽYzEРXáîþ¬ÞrQj@Ý: :ùaZšÑ‡eÔÐÞ®zL/2eVÞsºÃ%Gà¯oÄLówtð%8üŸÔ %$È8÷RÈ1yo›°b QZ—ìÿð{|6O$uô4Eú‘ýQ!/nu´á Å^’wÔeù®©z5¯ü噯1ênü|©y+Ú-Ÿ!Ž&Xð‘üÖ “éÖ ¹&oEÃõêË.P™ŒHå§”6[˜ ¸|¸ßE¸E —‘w˜A 7úÜŽ”EÎLÆ>²¦ ¢zÿ¼°Ìà3ØM‰üOÏ?8vÆÄ‡ý¼à˜»‹~‡».Y½ yfƒ·ŒÇ´ΖK¡ñ[úA»•Ì2‚õöw›D Höø54†´}·<–žyN_c³ Åë´Rhä•r5mÛbÐ\É«ƒƒñ$Œ™º˜Rý3ô»—†fýJÄCÝï’­y½d¢wË)Ié‡O„n4¤K$„JÎdŽhx&á·çÝt¤ÛY¿§Êƒ•½µ÷ùÄ7xp7=ßœþ_ÁSÈfLìW QB¸0ÛµÜ;µÁÕÿ¬w¬«IbÚ û Û'[èÜ™ žÙL‚3™hÕØîj¾R«Ä!…· o‡¢þ4€¿† `CŠÁ÷üâXGå³Ê?kk?zƒt¿0Šׄ]!¥fÍRžÛÆ[/,zQ¥l\ ÓÂö(é–ƒMSœ‡È$äâWxì”sfãFžÎÎë(2œ;£âŒ4ɯ£E)&ïþì¯j“ÚFï»õ½èsà ›²CÇüIì<ƒº•ÕP÷NQÇLs7²wý4ÇK4v²s(€˜òÃEtîËËØ=Q¥ÄÎ!­ºÆE:V·Í¡~è²âÍ‚–a¢ÖÍžPÚÒÅ3Æ9¼Xó£GFŸÆ¼à¤0\ïw-‡úŸ2G´Ù^~ìžß.Š+%ãõY?€½4:Ë2á4Ë‘¿FùšÕ#ðùѽÒÇ<÷^kltº‡l#x+yÚèòôœ;OßûYÕ¹d6…kè©ÿŠD*TvŒÔŒÚþйŸsÀö6ã6O%÷uyÎà]üJ[œ,Gò÷Œ†u[SªXÃÝV÷ñuxåûYbÜ·lu÷7õg%Çpi_ÁÃTÛy%Ü9žLÉï°ú5koà\“½@‡‡ásf½¦p²‹ß1ÙN Òo[*´2ÐLëX¬ÆN/ ‡ù"°a™õ;d$Hn«iÌ»u¤^g)ôö¤˜ð±¸â?Ä9P KŸ¼£ƒ÷ DPRdݘüaâóåw#³Ž8kyârODÓ¨÷sÁÆ‘Xx )ÎPö?O‰y"Óf_u„E‡ÇDΗdG)î4$Ý,÷5˜k\Ñ)὜(ú´¹~wÏŠ¹q—íí€àÎ;„V 3x¹žESoÆfQ‹…/Ñ6½¨}üIê5UÙFÆÀ×$…úز],ñŒ„ÃI[uCâ¸Aid V`3%»+¬«‹w=4§zŽåÁ® ´}cµ°eʆ®áæ{ltÝP½ßn-t7Š ˜ôŠ>îñ°º,åù¯/×­FcY sQ6ý_Ó%sÎUï²Ur¯…¿J!.×é;€…hZ° ]p >¾µØ a߈Ûõ^yT•µòѱŠ=ì9ǘý:…[ïñÙB5Bb¬]#K‹àØZêÓ w PrR—kq-OŠ)œêö[V´Ç/ÄÏŠF§lQæ>»ÿxü1‰–0oÌI˜ãN\îŒÙü§{“×:©O˜Zó^ÿ£blx¬Ó,‰CxwÁt×íž‘!Åë^–Xó¾÷ºç‚„|à®}·pb¹csÄŒøw°n>͆eÛúœËíÝÇ-/ÃßF6Ô¹Í(Ñ=KOò÷"ºL€9p¿%¶ Þ›& g/éŬº>]òN'¬Œˆ[9üŒ²—‘ŒdVQÑ °\,Wu©þ¾õì®Td—ï B`%;» ß\í`øVI¸~'|aXÂG˜WPd%B™MÓlªŠsq'Q`+7Œº“ð¹‰OO µ#f3üć_"s™ÃoÑö†(2ù‰Q­5À¡w³v<8ÚÕa <0Ö¼òù߸›¹~šÍo×gGÌâÙC­A^ž’ë±’ HšìÆûÔg[ãøÄåßj{ŽjÈñ|›±ï‡ÛÑ>22ÁÃé¬Ú;¸ ²ºz?v¯¸1È„Aîìs“Q¡Òé=–„¨ë3•ËÕÀÙô ÿ˜xìàÏ_\¹—I·ÇHµ¬VÙíåÛï5*-Ùýr4\:î:¿…êK$v&‰-f?aD’³#"¼ÈÅ´P¸ôÇsRüµ¾Á(°» ñQü{.~ç¦/ã§l•Y)óööKgô¸¨W W£ò ¾Ã5]•‚`aÅ…¯zò«T? ŽGÚsŸÚ„3,Ñ@à<dÛ,¼!Ì6Œòµûvð‚«V|æO¡.+IH¾ÅgÝË8öYç=Õs;7y”콜òÍ)?ÇœÆÏËß°e@Ò¯Üü²0²4¯†ˆ'´§»L s¼Çþr_X©úö^˜càN·„–±ŸÍ×âÉ<ÀpíÝ¥õ£ƒ²§§­ÿ˪0º³8ë“fM¶äƒ´BR\ˆÎ|¹Ö%Èrãè‚]*»=áøF´!;8ìó¢:éóvÍ-8–AüñÜþµVÈ¡™6úsDJk&ĦºÈÆaÜÖCÀ #ý=ØG=h\™yVË—|«ÒŽ®î_^AàÓöŒK…+½#õ‹QÄt-:å‚Tð×4Ÿ#7¬_yü³³ y‹˜ã™¥ÄÆM’õ.Q‡û@ï2dOirx2üh6=ÃE$‰›¨ÆV¨8Í;…Ò×㪎¡f&P4Â3ï".øÇ7òÏ{Õü"T¥ Õìö¬_$@p[ò½„®Æå©˜R ´pÍw% ¼ÐÁÕÜÖªK3í{8ã(nàöüWå¿kÍ}<Ï›¨z6sV¯3¦ ‰Q\c¥TezÜ[€q^ñ-ÌÆðhr5F˜g+<Û­mi‹«§Á¥ŸD Ö•Oý‡­ðGþà,ã͸)­;5v+¢iåoå`áü[¯;Èž´ì<È$ÝRcö:YŽILÐ äN­vºáQJâÍ@Ò[¿~ä5^Á ½ëæ›Q¨\b“·ÏÄ$£‰L’ Dn5‹ÿ-§–¢¬ƒz‚ÖEÑYî C_$¨Ízlþ®n?Ôµd&ÏC1¾]€Mž±–Šö}nŠRÈlç‹pW¿Sùßâ/Ð8T>7ãàTŸõVH.¦°iÀÁÞ œØ1´%"¾×ª€NÃOÉÃùK°eLÒíåÚ$ üNKæ»GñQ”wŒˆ€RŬx„VßÍfQtû9•´7A !…_)˜?©ÿH_’>]fµÏ'ÝN ¬¾cE“paBì·½_gJ¡ç7Ež”ÌçÆ2 gÂHÉÍÐ[Й¿æ5 ‘@k£N 9[EH¯v½©Ñ>nºLüP~t²7) ^øÌÿQ âñ6sÒ[§Ü@ÝRqä/•Åé”4Ÿb¢­v)ç_% ÜÃüÆj¿Z9Ài Y´+‘µ´zâ/vÌõìÕ.„Xó½ìÿ5âš‹¯@IŃô¦µdÅÏ@Qô´&ŒÍ†—S7a¾¾ "tÒc«O±A('Øu„*“ç&|,l(I™_™ g^–ÌY"ô,Îhá×ú,ÁÎr?ŽoÒùµ‚¾y}XÂd¡ åݘG[I•õþ­I£8emÃâ¤+‘’©•⳸ V@ÊGxNòûPîéŠÆ*ljzåcUrÙh·ÚòäÿК4Ç5Å(X½^ä¡BðUUÁ„ªa³ÖKR'· ñ+1„rÑFËÅ&»™+Œb¸ãÈ,•fĽWtƹ݈}E(ÁåI‘Yš8‘ }‹–•’ü/$¼°•òÌ:i6~*M«W:yjàÛ÷¦L-(A+H™k×ÌñqºÀ ²ò¸¶»yw’R)#×]«ÍüøM¥2U¯Ä¤÷­tŸcÎLç/{Žï®áwïL—v>\‚Ã!äâ8ãFl¡ösB‰;?èÆÛËÒÿщô©0lôÓ­Jüä\Klµí’Tz)ô=ÈW¢ÔïîE员l€²ϳoi-m³®°ª.6?KõEï_ª6…uÞιÀÍÔ]0km·ô³®OT9µ snÃM,X&ÎexlW©w`')⌔¤ÅìÆpª(¢P” G¹¿ê'À(oÏíÑNü¯0Có7|g¢q€¤6! h¿SÄqÚzêÞjd– £œn5á+q~5¾Œ_!jo#ê‹'®'Š?µu2¶ÐhìH&œ†j;næDŽÌàLÂ_’†¨š>Ït6[´JS=wÙeÞŸo _Gœ:#Œhk Ö=UÐÚ †–Ù9¤¾ØEy{CŸû^ïÚ—ýÖâ«ÝÊsvù¡DC™¢ÒëeÂëkóc¡ÓÎ ›JY-¯¬Ëq\–~ù©vœ4õõãåNö,a0m—? ìä^’nbYàÇb_U>ñȦO†$ñÞÉL-½Ï«c…>ÉüLÖTßú£è0³…x‡£ 6Ôƒå°{¥ î'Zº®wו 9¶ºžEÓPÖýQ¨dÜ>JÐÄb³Ä:Ç€à„ØÀþ¯ÎNž«!¤!èÝJPz¦§úçĈÚÖ+Yj ¦Ü¨îT3Ö\C9yô tGšÕȰŠ–úM!ñmZ0Q:!Î7(¹&çæúš‡Æ‚ .ð”ëp餜I <Øo¡ñ¡Ä׿n¸²ÌuŽ?}r$ ëÊð¡mÞ6"ïóùþKÒVE«ô]Î;½½„µß<ƒ- Ö%,;õ³µ’¯%ò?ƒÏîÂü}]Y`Ý8‚ç‡n2:'â' u²ÍÑ®]G.)ë[3ŒÞ'˜ª<=Ä„ šðuHùçªvª^IIÃo®õ¬ž#Šz!qÊ>‡¤ËvÈ+¿ø¬ù‰–¢QÇDæYÒXÚmj @jªû¹5ÃÆ Ú¶ƒ;*Ù„RÍÕò Êù5?Ý®¢=h™O'ZE²†ˆM}›©ZJnzP»ù¬§Œñ«u¶_êrêYÛÎM°¤‡un$LYõØ:)}íÌéÒά_’Ù­Ÿ¬ÅºrdjS_S¾ž ô¢wsoLÉî®eEw˜ 1Uø±æb+ícT5o2IÇü×»'ØøxÄc¢ÓI=ïK\5`øŽ¢(q¼;ETtlKÕ©’®dµÚÀ›½%ïú—ógÓˆ)N £Ë±‚Ë|P²†Jù©³'*ùdΛÎê½¼{€Fœ¨æã"”vdXËýIþ>ó Xðv,òý¹¢¦ÅsÖ?ÌÜŸkò¯þnÎò·ìfu5’*>9[®Ú¡MT%}rlâÚæ­å…ÍéM"[€É¹Ée;ß–³ëÂáhµwkp6–îŃ|Á›—n ‰B—•Ù0ˆèD³íÝ2X…Ä.åNý Êžœ2jY"ÊülÕäù»:CÉm÷Pü}b]_t.gHŒ5-ÒàÊÔ.\G¥U /ë®úº´<íòÁ¸ÓÃM¨5§WÝÄ® Rûיּ«{ãRKs ¡Ä=}}&oJî-©´øÖ^îmÏˇ§õq×±#!:ðaݾGô2]5+öëà–°=Ö¥s&ñ 휿®0S†§ë“ü==i,rç%yÞ¶ò!ÒÏ•Em´%aÖéÖ)ÿù]ÚB£A;”ß1ñ×øùç_Í4ØrÛ|§Òºö~òxž ›‘ƒ!­µÍJŸ€”· wÕö£†òw¸s†Ü8+OzQÅѤ…¤†¯b„D´¹É"˜¢½ë•zàÏŠv\u;ôHüÙ’ ¦\ÊFKI†ÁhUlŠ…BûûzúˆHwž€Ô~Q¡¡£~ÁnZ¢Ø³Yó‚‡ìÿÎÆ_š¸9òÆ„ó”‡C¿ûÉÖÕ[o§°“v ‡FmdÿœÂ|P|B¤•NÂa{ÀÆ­æ0gQ³@×}~*é"HLLn¾I¼Ûû +Ù6…­ €¥2se$ü€a(²Jáe€ì‹4¥I«é í:ôßlð—s•+ N„þZ*å=ƒ0ªËO°Ñþó„ÙcÐ&½N1‰Æèð¦%{P+ëÁBºÈ ÓšîmluýOv7.rTϱù#ôÄT¼»6oŸµËtº*0\$Í0¹¥¬®½5~ªw¾¿¡Û•¸È…9w8ØxŒ_ |LT$ÂÃûk͹—*]ÕNЋÆ¢Ä& YâaœQPõaû¯Û¡H-—ŸþôgU«M`6ý–¥À@òƒ¥îUWŸ¶o}/F )OW@Qf¤Zdz¼1T´Ä HUÏv—­òÌ01' ü‡c£^ÏÂX4]v€DïÕͬâ¿lÚνbˆyi‹)}*>¯E5&ÆHý÷¢ùó~öEɤ»-r~Onç…:HOƒeÚçPqØ*$¿;1s“cТÿ.˜8R‰l9‹V¹×6HÂ?h#@a%8žU«^æuÉh7BQÓ7%ØIp¶¼&Ûo÷·=Õ¶Ž.«ñ½PÕ€ ê¤?µW.ío¹µ{1¾°$ŠE(»íÄ? ¼…âØë–q]ëf,9+`¦“M¡fSßçj”@êî§]öHB-­½¨H4„E$ší{üoÄ^³ÈŸL–Ýå¾—á` ü6SÄ8A¥–¡-½ë³Aø¤¯Ùx\÷Dbï¹$½"èRŽ3Dƒ‰7Q¬X»¼}²×Ur¬_V22U Šü}©qûGo@éú‹.~¿L½Ü;¼ÃíR¸”VAa¨ÄU_Ô_Úˆ¨èä#íþ“_ÐÜ_ÌôÓˆ„ülŒ_o_–wý5ǘϚ$·jl¯æZZ e¹(üLµu»˜‚œÞ%\é” Á,xëÜ÷»Ûm¥ªâ1“lööì_{ÄÇÑ›>’a)rf©º‹¢øPƒÐV¶ø]ª«Ÿ¥þ¬Ž x(ñ6ŒÅᯰÉåYö™wZXk&ŠÜÄÌx-_Ðnq²¢¼í=‰Äa>“9×FârµZ‡¬QV>8¼Ó5 õP%øß£Çì u扭Yà<Ì•e0þ#ÇÍéÜìtq»jœ‡)ð€6áWÐqŸ™êcZƒ”/ç÷MȪ‹*6Íþüü«NýílŸF¥âm¥êòéBdü5fþåŽiB¶Ä?"Äß³d7oÒ ¢èôò°¼¢>ð DøB<á¿ø[ ÍdMRº%!Ú—¼ÔV"¸U€´*œê¤f‰ýt2Ô± ÂPVÁ£ÍšÄë™ÐÕ]©¹ê®~Ä$¡q~ÂÓgéî,zh …6¨½uË•LøJ†äÜz¯ü:.ö·SZ-?û–qù=#Vâ-•:è5Á9,eä_*Sw ­#\FÕÆ¼,Lv& FüS‚íåN{¡š¶5JÂ&ªö¼Ú»CWpM YL…ë& ¥¤êk­Í³NVC¼gJÎÔü¯¶”õ)[……Þ›Ž9[mIÆGHG9×’Ø!ÙVIÚÖX5w*u³6àIÍà/ºÔ6ôYéž@Jf¥‚ú£Þ«ð•1†¶ï꥿,šSJDkW…H63j¨Þa6z—]i|œnP  û©Ë¬À™ äÞ7©qãÓÂÏuŒÊ¼ôõG­çߟgý§ sÄ^Ù~ǰ…µïÂæ\.f•×+·vQ‰ã£lÔm‘x޾¨¡t¨¾éñ-3!\u0Ô3—45_–??ÄéëÜ#ûŸô´:ÄU”ŸG|¤°´ƒg§¥üLÕ:à:¦œŒ¼ÿqÔ| ÄOážyÑ–cÝ)1Ðh>o/Ò÷êÖñwözY¾ÌÅŠ㫸mÞæ?(— #Ø”sd“’)×®H¿ívÏî‘DÉ2Í€›Þœ1,ãk7Zœ2¯•´ƒâÑÇä}ysLÂNö—,@ÎŒ„Eddž$0ôÂ+ÿ÷!™Y7ð¸/í_,núöWïÛ¡VAš%¢£ëÒ/èK¾-,ÅϦP1R’ÆðާÑëk2«:>£º«>±#’h£/±–üM€ô©ÔR&vè-FQƒê`GÔs¡ Þóæt;}ÐŤهºNWØËIç±ømÜÃÄéCC¶„0„ͪÊÒ;»Ü‹«Àñ¡íÑ!ËC›z«‰.JÍ@V¥¾KïFH@.ÿWxVþÈe»=ý_wÑê«/Ó[ð§"Ø®Ýpÿ°˜0Þi?aµ2@g1—=è MS-í¸H”`ÀÝv~¤tyúiL àP“¡šHΩ˜â¢¶Eh ‰òêuÀ…J¹»«p&¿ðy§‰üIžXžpGhÙÜ‹•òȸ¨òØ1~W–¼`cžzä\•¤‡¨±…{.ŒÐ<>ºLGÁ+Fµ%¨Ï»š Û$¨¤ÍÅ ) •ÅÔ-að«ÕH8L9C–ódÉ—m§z=€KV;¨üÓ2“ÌYä–ë˜@.ŒÊ&4‰kþ¸¶…aJqðLˆéØgðÏiãnI ´_ò™G‰¾èÝçÁYÉœ¢*$´ÿW—í§!Ï^x»„ÀXà»4›-c/azÑ3ð“Ï 4ã•«ÍUN0üM1ØÏ0‡JlÒùåjœd”Œfœ¿!voäeU‡ð+ xôxé]®´ÀεÏfgêþ'|XøøD!Ì u!9§I±ø«µ*SÂ×Í—’¿Ÿ‰f€FÆ¥ìÎ’\] ”½s׉àòL~,ö:7äNÑóÙðVl:ò%‚°ÿ2ÛÙiêE<}†Õ™l‹?àTëmÅãbT`šjÖ9$g=°e}úÏhÂU9{M¾x¨ÌÝÏk ô膭4<ÜÎ ‘ó(QDŽ˭ W¯Âüñ1e®Ñj˜ÓÞ8ùº(ƒ‹·üS½`ë§°¹#¬îÐüàÉ'5gÄ5lÓÒX-ÊÕÈU;Kfî—O\Cfã3qY¥´ì²•O0›‡¿µËû†ìxl`Joõü•ÑÐÄoµ$­Ò¸L†«l-¿5†+K =ø&Rv¸± Sg‡dMy¶BݬãÔA…Õƒ™X&ÖÃ: ÀVp7N2g™`Š":=‰±KH{ò:—KSQñ<˜3 ,1¾…vÝñœ<†®%éþˆÀ«åü|©,{…¶–Ä”ÑcÔþE¨ªë@Ëv‚¾Y߀IÖ1®Ô½C‘”I9ÿÒö-Ôq«Å•ľETø è3¨jÄ ~Ímæš¾pƒ ¨‹JU€†'v_Vk9\4F¸ð3EÚÞ$’ãd+Á•Ù À—µ†‡)^â…wQr¥HÒä'ð_ïµPoêidAÁ’ñ„nmšØé–Îoe•õ4¢–ðˆ87æÅ0Þù²‘)Ê…’¯ÿðfIë|ŸrnrQvÕpg>…8nË7åUV”uëR-òg3~V«{ÿ¢þ& ì(ÚÇ-:TPøµÜý”Ñ È4N ‡Å·À$æßÞ„ÕKƒÄXux÷Œ1 v¾6±Œúuj9Á§!D çæƒpà©ÿl}r²þ1È‚ û¡Oó¥×åüU¢„óœBô÷žxëïÿþ43(iµ§ §ïd‘MÓeÇg—:Äôâ닱ÓÑ®¯XggŒ\=ãWŸVU0 i+sôaDIYBèVõ׃ûAü•´?"gªL>±4¡Î8(ð$¶üM{‰:#€Îöáú8&–á) *|ioþuÏí§TöýàF}þΊ]±qòS#¿šBVä»ùÿ$¿JFÿ»>ÉÔÚe Dgµlab÷..MüŠ×z»/ˆs107þÌ.Êét”ZGŠŸ"vb¶ŠÉºÕÛ{{§”Ð@ˆ½ò³Ç—m3Œá”ÿrQjÈij¡!eÚŸ&Ž"¤ûÿô],Pÿ 5˜~¾¡gSêð-É£¯+6cò™Äqzár….‚–G´„„¸ÇE<4 ÉË|r!”°»´Óg\/ežÂXZ]]0TÖôýû¿N‘÷Ä M¹óìpÇÂDŒ¤‡vÖ‹,Ô®% $²X¬s"^gVÆÕ ÖSi?”3ë —ò!ŸÔüMXDPí2袴=ÀˆŸNÊóÆôÓJY“VÊzŽ\¤:ô³ÑêÙ©<¯ýã]¯ƒ‚$«_6º-›¾9ÖÚøâ˜lŸ³Â>f–ÕÞktštóßò;ý+ž'q6íš•g‘’~ Ñ ©!'cx ³õÖà¼ø•Ù-![ã [7í·Íe¨F·.Ÿ×|%<„ڟùk”CÉGÇW_ élÞé’Û'¡þ50X¦v[ݨ%¯’¶3Â1,äº[lF`¡kí7oÓ>gÁ1¢Ãü1dT>xî£5rŒg ?yï/"E¦Äi6Ã/ˆ0^‰§ñúzà¬ÒÔÁÑû.øŽC«›0®"«œsà`°ÑÌQpþ0zÊÂü_ 혥 ÛȆI‘JWÞ„$e}sg×-±æÊ2=­³÷wÈËg ‡1ÕzèÞs%^‚/™ímy¿¼„m­ý9 1õÚ+Õ° ßOMD4ö!䄼–A±Fà–5.Ø»ÈX‡ü‚㺆ïµIuB˜±C~óÄQ¼[VÇO«çs¨¥_‡2ÒèêLO´þÛÕ”I*s³|)ðQ©tw jôi3Òðè»fiK)¶Êûm_Rs ÆãÞüMô‰lÓ¶íã²·T)hÛä˜ûÂHàˆ2“Kq›GCR#æÝv‰Û:G+’H ÜÒŒ ˜Rœ80swÃöòCÚÓP—88tóv»Â«Ý¦Z+§·É…:ý>¹jmcjýâ”xD|¹„3]…˜=#<¯$D$ö¯¿™÷NQ¿µðuÈã÷Í–ì[Ð ¢oÉÅå6~¹É~VçŠì-å*Îßé~Òö޾ÏÃǶ»ö.5,Fœ¶–Ëÿ:é<¨£‰ ¾UMÙíbìþ f²´úÎ7qù0‘üLî|[“ìBâL¿±ŠpÓ‰åíŸYØûÆðEµfÞ×#Íh/û><‘¹¢"€=b¦O³ÎØ¢@0ÿcǶäÌ`t ²¢ÏþE‡yXK‹ù- _Ë÷›4Ð|Hel»åû3T_o]PÉ×[Lq¾"…£¸@v”Ý¿Yëƒ'ó  åÄñ”WbÒeÚä¼EbZ¦ø¢v[0Cì‰=zZko}Ÿ%Ç(q ë ‘'½;¨Êµwº›¢Ö¤þ<ÛS]}•S6g¹+5Dqs[v´Uw‰ÏÑ~u ð÷üL¨1nÆ06´=ÞÑ—©2 â Ž.qvâ±,¾‘åâaûÐÐ^Ò1©ÂÞ8¤¾Ô§Օë9A9ž•<ëÈ'ÆÝ]W]•A¬6·²ŠA$´õ°# Ýh©>Nk‹óÉ™cÅ{ͤ\°çÀçöoÛ—ç›ãÆe¶˜„kTOp˜€ðsÇ7ÏÚuïÉ<Æ öйÖÃ_f«¶1›%ÍÓ:ë‹Åýæ1AW"²ç¾çXBbIÇU@GO?_WHE¯ˆlù;ã ¥¹âu ¹1 ¸)Òeô’Ö®jñ‹1Šü/S’¡ÍÁ!>ÙÊÝe£™œŠ·†5ï,þd#'‘ø¢@l)Xý44+‚ðƼP­™BKÄÔ¨Ú ’ ³lr¼Œ9Fw.&97)¿òښʒ°•ïÎÍLñò.\šx É_±˜@X6·Ä.Y-ÌþeÇ[Ò iy†+¶ûÅÈsüæÇÍ8l`|± žJ €~ýnŒ»1Z _pBÎD^µÓ Ÿ§Ñ».”—#fÂQÁq=S#›äwÆ„{å#Lwdµ`ÔK³•.äžY.À¤5Úp0aTÿüMbË”²ƒL´Þzo2Éå%€$ö3E¬±3 •^ú./ønm¦‰G?TŸ0Î& 0¾Ê–¼|%î`1Þ Œ9í5Z+yÞæÖÍÄôãï<´^ò¾¥*\G×ón’϶rÀtທy¬º+ºïÔëlVò϶ã0ùìR^ÂÇ&iHS‹D›i𭌠8ïøß·ÆãóÓÚFX¢­ÈÚ«Ö¶Õ(ó#z™`f˜oªþìUp‰XãäÞÀF’™õyo(ù=,%gœ'wíWùã¬c] eÞ2|/þ üñy’™E\nÎ~÷0â@mæÓV]usÑÎa.ôëþSr¯- ¼ð ¥\^tžëåªù5Šê‹³’9yidÈVÖu{N×hèúúûŠ­¯áÔgaŸ_©µ¢KT¢Ä¯Ôú(~ Ë"™Ý7Ž]93GQÁêcŒ‡Þ2*Ò°Õ¶¦QqÖ…×) R°¸Þ.2µ•œ.QKáXC$-«%Áëf%QAžƒb:Ákñ˜XÙ`ZVçAúòö‹2äTô€-{ à‹*”eÚËÁæèü6ƒT/EnA«HIåL#@~]×îbÚZ¿ÕÿÆ(“ë¢GewW7ÁQUý‡úš³D.ùºzNO@[½±’ÅÝjÊ 6‘†šˆB˜€¸3èÅ€Ÿ %¾¬1)& Q;ÔN쇶µSe9J&Jx¾¦a}\s x2è·7lÎo­¢7ý˜4AB029ßL¡~η‚ ˜e¥'¥$MÁfìbðä–’±ÌhvÀJO˘'ç¤i…ŒŠºÂjèO¹¿l¬GXÑгû—O¤þ)LöE¦ <‡ü|®!wÐñÔ‘Ao—7/s!–6Ù°ŒÛÄKÑü¨–O¸OëÂtBY>ãÔ}¬Ò¶÷on÷GÁŰó!‡…²¾'Çö¨A%w3buþ$é³—1Ú¡‰(ÅÊÕkã‰X…jMcZÊ"uqŒ² ,­i~L鮦9c+NÇy,“xkR‚UârÑŸÁ©]K°Ç„ŸÎæ–ULD–-êÉ>‰×n¸õUðì]î€hóÛ£_[൞Zc€²ªŽ÷0˜uííãêÆyŽTîŠàŸ .í5Á¢z‰|zf‹öhR‡lk¼ zD†ê§ ríçX º%¤?‘ÜC‚þåËèˆpB•þQæØRQØ—8*º¤+Jº M …µHñ\~.ÈzjbS+ÿ‡ôkÎÿ«Ý³>n¤ÕU22«Ã9{Q°èG±õËï ¤>•”Ðo¸ÀsÑ7¯!s¸ Ï/¬„¹Q;c ‰'ƒ²Óæddï^ µÒ7 rÌÌ×Ãóë(öawK{™ÃM¥Y¯ÁV€-óCÿŸ2ñóQrÞûûN'<Ñ¿”saqš~#åA;rü}bŸB`b¥ZL YM¡9rŹ,V–± 2i‰:¥+(t#kŠS·p»Ö¢NìrŸ Eã’;?9ÞÏyÏA0Ãü=¡Ó÷òAA|_œ êBˆ ,êæKÈ–ê³ ³žTM0Kت vfYçnÃ-æp%uFvÕ-æÉiÊ%¦·D©ÈŒ·ëâ49}wÅßå!v\S#Y¢t^(®‡'vŠwpœ½§ÒÜ eÀþWt‰·Œ‡RtBùq´@ö,.ïõ£‘P+ñ¸˜ª$.EŸrÛDu6ŸR§DŸÖÎòÇÃ'=CdÙx³åSѬ\+ùø€b)'.¢üJsPÒ{ïË$†ÇËTB­Þ#ú32× ÿ+&¹z¼ÜWZ¾‡2m Ó=“R6ZݧÂr>tpŸaÿõ›¦ºI2ÝŠ:LÞIrXò¬¬šG`]Ú>A:”«ŒWEs0–xKnFWù‹qNÏU YÕ">÷²MŸè+d…Fj¡ò»$8ñͬÊ!ã®&Í áNOàÔŒ’;nÓH½s¡˜¸o_ª¾íüL¬ò/®òýšj1ùÕxÝgõö¥ ˆŠD&à;û_¬/ÎSÐ!Fu·ø\%þOÿÞ•ùå«~Ä|éZ,n:&>ߟ¥³«OèÁ]Ç¿ ^^ÆÈ—ö³7íUJÉÌ‹V°ÖFÕà ü·EýKùõCDœˆ0bñoªÔrTv»qÎ9cŽÙ¤¼3ŽÓÄ£WßU‹<Þ^ò‰is¯d _o…âWI]aÎU„ÝžaKŒçVÜ8¯IÐU0ôÀ:ûhnÖm‹9†œƒ“ÎOggS€Ñ&ýÄ n6ðù»S<ËÖÿOÏÕÑÓÓÑÿÿ ÝÕßîçôàäàÿúýÿÜäìñÿÿüÿñôôùæñÿÄÿVÒÓÙÒÔÓÔÚàâßü6k'ˆ7ü99=#[£·RÑF¤jZzL³luTó2gqÀAÒ$åõô‡Bˆl+Å%Îxí«Õ >qÇn±go:Ò 7p&(Mí•ðkƒéÅ_&³|ïCb+””[]ÍùÊã—º¦Ü’PrgA³ûK—ÀIzî Ç s'“$r’6yS;‚bŸíNSª¿;˜†wðµ×Xlç–®v× ÞÕýB Ä¡NM€45K²¿PÃGkØgdÅY ™sû 4g¥£ ì¥q>bwÁ¨ßê¤,6¦E†9}R»N±È_h¢™Hô©üL¬¤z%8cø¼Î©žºà¸jq†}~Màl .Xs¯,SÇ—Òøêžª±ôÆíÊ @¯ßU¸¯`¬fÏVWd¼àzÊlZîàrn”MŒã‚cT±Q³z:`ðÉ…ž Ñß³Ms<%­7dVªVò¹ Š :–æSóoK1%ÑÆCÂDþíb]àÌPÇ\Ï ÈL@9úCÇbò×,ÜØ Aᤢrš>¶ÌÁj¿39|¡1“÷eZ¡^/G»@ùG#«ì‘«ÿq$vºšÎáV¿£üL¼å ­TfÕ%·FJy:ç|¸Ùo5^ݬéš/ ê¾<®óá<ÅÖ‰éÃPÆíŽu5øˆ—þ.ÏE’6­±fÎ$$}_P{)çˆH$Á ùVä¿tÁªð¸o"X> ÒÄìÓÆëÛR‰Ÿj[¶ø\P\ûtCÕJ†Ùz¯¶ÿûˆ€jeàº|=£Š™wW‘<ÈGέ¥ëŠW™5’Nx•›()ÛgLj©åi YÊgìL|c«6“Œ§QffÒE’¾•´ýQ”ÿüLºŽkþàÁä n%–@Á¢VooB)Q•Ö‹•9sÀQfЏ dËQ1«eÏÓ>Š€ûê¨ÁÔ¢ ,+‘á½ œ³¿k\áP£µ^(ì>ŸÌý(zà³7Ó¼Ž¿¥B“cÈö;5É#ðƒäØÿvNë£þî4jËHÁ€òO &°HÕc'ãײÇ<¸)AQ¥ß!ýMä]4Õ“†£%K^DzL}_Æz¼µÕ2ğIJ Œ +pŠXs˜Õgš)+é=w±%JO¹¡*Ú'üMbÏ-O‚c:#ènt?U+Y†H•V‘Ç9Ì ·01yØ/¸,×›^P¡ˆ²©au͵ìKàU² =Bÿ=¡ÀmŽdF¹’ÐPF²¤nÕj;ßAò´Ùþ¤Œ û</–Šýcb+?ˆEÝO=»¤86ÓRkŒ6âêK}oŠ? V#üikPÍÓ9«±`Þ pä[`AÕ/ªŽ‹ZŠ&®ÎÁ_ñ•cGú}Ôo> 6ðnƒ?övçJºZQSýøoVô‰:4ßkŸgüL¼kh JíÍù&ùÍa¤1|¢²¶r2e*¡ Âý\“˜›[´•Fp–$Ø!”ý…Z&QN_0‘_ïÚÛ‡©1HæÌ…źüF.µ*L)ÑP‡´i±ßÇ?Ð¥j'û¦Z=—ÐV¤:©ß|sñ•?¬~(K{ØÉKî¥c­ï» ’\U'ß½±kë,ýIB!6çšs6âÖpiáïÔžëÔŠÆöNHklŠxïæOÝ%3µ,×)%"––vP¥Žd:¦ž)ȯ¸¥Å‰Õ±;û»i@/ñ,¼eüLܰ0¢6èï­‚«ñþ.hnUY[í˜ÙƒQa\%w?b^r« %O2…lŸn|PÛaL>“hFX-3‹Û"¢\¥ ö.Ñ þíã`íÛ‚ÒåÁ „{çz]ÓŸˆÀ-„}ÚwÔ¬&B9‰Ò,¶íOÕ\kVì‰Ý96Ì ‘¼a…ÈŽš‚¹ƒIâFO<:®±4u\öìb?ZÕ†–wBÀ36ÿ®:Âtó1op6–/8ùÓ)ÄÕä?î¨Kȳ)½q³g¯l,‘Û"¦™L{ì n^ü|©´KUèÑp,¯"ÈíÒsûoÖ{nAº°¹¸,Ð#~î1¢V_[»«Ü~(ªo*¬ s»oï(øÊ… ×YG˜ :¶‹U톞†=’™•AʱåtmÒ[Mj` SC®ËKMˆ´Ú¿W!Al(vŸç`õgÅÍ©,V”UP…™®²4éúÝ?×ÒvöÙ=ôD V–À`Êq5kn>ÓÇY‡¨ Õʨ Vâv·~ß2ÿ]C.cÉÿ@e´&$Á \¥SWǽfuª«a¼/)ïN‡_«¯ø %–8LgêÊÃd¿·4:"s›õ¤¯LÛmÍÌî‡èX¬<3ÿ0xò^:Û¾)+Ïô¦—hÊiüX'§ò]©&:Ÿƒ‚"ø]»[rìÍØê—ª1¯|×üüÜòáZNÁUÍ#ÎÕ:<H*š¸]õ¢9R3^ÚºqƒVn‡ø\õwÇcq´Ù‘£TFqB½iþnå'©Ѳ½¬Ï—UµlÇFO–âc¸ î+Ê$”÷׋ ”ßOÔÕ#Æ'AÎ02K,•˜Ïä"i•H’mPÆEF×8ƒª•½—(læµB#y¥¥ÈyD±Ô’%ˆq˜Ù§öÒÞ!„¥{¤O%,T¸xA67@'ÐÓ”ŸW½/nÌ`[léÃÎZ®ŸCGÞl7ÐÁد“ô`® NkìkPáªÒîh)h ú¦XüNL‰“tŠG†Õ£[$›—éB™Ðx?µËj©—Å4‡ùëé…B"HÛUP{ßSq–"B±|k Š~„øƒkª m[ßé»L£â·¬plVyJN¨hÿ“Èœƒ›g:RC13@˜1Ûày¥Ãܹ¿‚ƒƒ¬ÞÄ®ƒ“-,^AÄMcÍ"†æ+ÀV§1;!è¨"F¼3´£cyuX\Û Ç×:aG¦+PüeÞ÷û:œ™5õ|šyˆüã…òò§D8:Y«2|§Zn-nèL¸¶D£ŒüM@Edœ»ä Ü‘]6¬HÐÁA5vÐ+Ç^^ è%] ÁåÖ~B*€™œñlËÌ‹ 2é}!êç)ë=Ûð¨S’PÅ#zxmmL¡ÎYå+®Ž:Ôõ±>˜ßܯÿ«»é›6Ó}¥ªv;šóÒw|œº7¼ÀÒ o!(» ð&›ìv\ŸÃTŽ…Ê®ç]Ñ{Ú'ÅDöÕV0Õ!i² 1  Ê;Û!aðQçZ~ã”Ú·p¸òŠèj>–òd1!„ Éï¦ER¯ÖƒÆ*•ÂIïÎåÿüM¶9hÅ–ÖëMsO(‰!Ø-+öÕs¢ Ô9Ü -ͪ²e ¨Pb_<7®*k\!T÷ü¢IýFÒ@]èŽÕx/¤3æAû!0ª0-EØ_1÷ší›²ŒÐ³ Û Ý¦o:‡õ͘{¤ô]|â e}ïa£S?lò”ཪiå¦HÊâ’Þ´ãhg·¹¦€ y• ìßP<@ˆ»¸$ížœ0µ§…¼ùÅ¿yÁ½ý½EÛà,2æõœB¥k!œ sø'ï´Sÿîù»ƒ…àÒ†pX1TÅš5s¤ïŒiߎ]c¢îëIÚ™äOôuÙѯÊ ®}°§JÞGDñަ@ãǶ&BÞÕŽ? ¼_+e'Þ>^­QÜÈŒÂòBhi¿|QÀ[(ù !»œÔoå†]Õ|óKù Ü}'­Ÿ÷ÚðòœŠ ªj0ßEÉÔˆ3Ùsa•Ò¿¥¯[3Hèlž *ë§wÑ­´º—­ŸÃhr¾7ÒáÒèÊ]9À\üÄ}L*™Ž£Áò€ò÷·š¸•Œ€ôO D Úï²? o¾¹)Ô`B„Y–Òs)DzÉoÜû1/#;è/ìqx ã$! ¯Hã8]þA÷ÖEÞž]¥…ÎðEGV¥+ˆï*X›'Œ Ȩ—ÝÚ@E«Ü®ÈÌbåý¢¯|³!ÖPÄÖõ²8æ«iÎÃÆ¡þ‰Öt‘—mú ˆó agâ {mßYUY†¢FA ´BF_ŒÏŸ{¾O»³ÒX¨‘äš”ˆ¦jAìn2—Ô³Lç;Õ2BÇ=üÆm@S¯rª$qQ­ÕðÜüFÕ“þÚ[çˆ)ZÝèªÚ™QÛ´~î{WÊÚÖ,egxH¨—Q' ¸§Et£}Î4V]™Ü§_²à¦eɰ­XŒèKÒçÃæ0J*—³”_2¸vŒ®¢[A‰º·Ð¬ s'Ø•E=þJ­Hý-Oœ}ÜËûÒû‹2þ]ñÎ=)«` (RUö©ˆ­KF.;œ€¸;=-ð?X;¹ÔíX5џÈ qcD0xF»Ž"ÐFÝý~»{6©ø´Þ4n²<<ñ¿÷×Eåsv‰KÙM}ë]ŽÄ5TÏ7åN2_>¶ßÂq¶²¸žY2±v üÆo Éö’‘ ïKÑTpH_sfKƒÆº¿ª~¹ÒfYÎg4Èÿ+f&Ad¤G2!>ßlãà4ë‘xsëãG9’+ê^haBy¤Ëm3®]¼¥Ì\N1*£ÙšAP¼[/Œš1ïem±CøïNõÓ[nªçüå× Ó$Ý25˜öi¡)¥ô¾6ᾺÞw¤iöȃ¢ì9Ý^§¥£¸&)ê[!ÓŠ‘¢¼ ö@¯õZ˜cë2&þñ÷릴%UKMÂö2fÍ¥ÏÚ žrd!餟*¼‡î3j¥‚H­£DÉDãý]l…Æ‚Mlóè2ÀÌ+©µe üÆ.m¿ƒçN ï·^ýZ«LéRÌjï+MVí^Ö€Ð,±Ï«#kÏáñ wû6Úå Ëa¬SÈü¾ A‘éÍ“§ôÇ %ïXƒôJè+U%ÿÞ=d;oÅŒÑ2a"X -?¹ã°ŠÕ ÊeÞ’À¬²¹ðö;/Ú•î]•ÉÚx‘V³ÛmïÉe[¸«×ñúgðšæ«Ë5ý!¥ïÖ§°âÓŠêõ¶Ú}º­*<ôA¬gî<Î6õƒ´X½«Ø2Ôl ÓΦÒ.ŸúË}.\/ΕíÀÁ£§³HbÏ,¿? CbzŸØ_ËdœÔ~‹±ü{M\•³‡î1¯‰.Z÷M„}aV/Ûö›qñaaå›ÊÍy¢[›I/‚æ>w=»wz¢:fÇBLP»ÿ»®º;Pè N€Tj{­éö5I+æhKþRDüTxõõÿõŽA£¬2<ˆê#T>ƒúåk0ÞA ÜR½Ö‚7³Ú¢©[Ý¡8?7ìG¬†ô ˆÃa±i«p÷áv³*ê§Ÿe†è”µ•áòÊÆÑøiÒIíÔ3Žñµ“§ö»¿×Çu{ììšyÂS§K=ˆ)¦øfÙ,šØ+ú•Ö+{Õhnê¿0{ÿ*sSH› ˆïɸb!ÀßpaidÑ{'²’e“âS»šw£j°½!ãö°‰©6¼UÌ QÖ)wêg>…e]éGåI¨)Ѱ8“4,Yñ”î·Æeû¢)kîök9êŠ|¹²³L©+Ô‘Ôɡh’“ùÀWÝsãŒa5§ xÆ#‡Íã­TìʤéÿKISù Ñü*üJù² 10ÛoŒóN×®ÙØ‰pÇx˜ÃˆVë¦<õHÕ cB§¸XU¼nÈdø0Õ †HÖ‰™<½¹¯"vˆl¨¸«ãÖ0f®¶ÂPFuïUòý­D1È3:¶1ºÚ¼ÌüMb¡BÆaŸ¬ÕyÀ¡¿xŒ¹Þ &]È¢ÁJ³6¨êè/ôÜÎÆÔ-|sž5½v´ô²¢jo¦eóœ|Cv69àCe—ÔÐàÇÑædij.EûåT¥Å“^ÀÓɯøö¸&QÎÜ»ü¿ò(óa/™IÙÊô8_ñú%·ÌU7i±ñ즊<æÍoö/êRùXÃ;jPЬ,˜~„· 7ï;L¢Yëç©T¶°§/¸ôà¼&HÇœšä„uh8 ×8Zƒ °Ù#ïõ}¬…U½b`;L]U N¡ÉLE4£üM1ÚîV³NÒ¨X={ {@ºs#NêêB6ŒÏ‰÷' ¥Ãù£;skr1.óEÑpÔ"%®Ôdš;bãŠTà, „ÓBtYoušÙc¦òxö};©Í€TÊô~©®>¡=͈ Ødq¾#›kǘº“ŠƒË/Íx2qÿË‘Àí¬–Áìöótr ;F†*ÒCëæŽÓÿJ,q™7R·o¤Ž7¥ˆÜGe<è{á™®úM¢oe5Ú×ãä ¢"Oú»º´vl\–A•0F7Ĩ€|,~/8•óc{>ôm=‚ã:ñažþzÓüĉ»ÀŽM5½µ­á`s7È1,*¼$û°ÆÄA¹Œ-à"ør¢?˜™i˜i4Bráž÷ÙL\æÓñ™5HÊá˜ÇE RMüy„;•2S²•È›è*ó™âÑ¢y¯ŸÔG*¡(q°Ç0îß~ˆùÊD Û×ó[K(æ7i©ÏÆÊÍ|kŸ”×öc»gçI@Ó‘× †˜+¶Þ¨È#èPPâ#8ŸíyWØ5—1Œ*ì2žkôCëT0sáu_–­ó°e J?œ¯vv´Ðãco•þÎ\{+)=+±‹¼b§ÝH×ôf¬z“üÆf*` “ª úκ,[Eá'9\ò&InQ41Ü )~?©j­3ÅÒ6£¹ðÓ‘~À~³’T3š¶Û¥è’ÞìUƒG‚œ¢²¨­ñ8½¿ã[”ggÕ훉`Ž/—žún³ënÃñTõÌÎN-òÝÓ¦@Má2¤NƒxšéŠ¿­ÊvÅÇyèóB¿n ˜ÿxÃ/`°yŸch 1Ê{ “û˜Ùnøíí€U3 õã…ŒF—2Cžª½M´ Ñ÷[4lº…ârâ=%¦Õ™å  gÈ«ÍÕ ?y9ÙbdÞ¦#qsŽmr•ˆ¸fž@i¼Í ÿö_ý«³õ²tz D’üÆlŸÉ™t-Õ²Y‚ø]”c»wWÿÌ/¾::ÙUŠâ0“g\ÈàU*˜'''Á‹ª’N¸®x¹h4#÷nì¶¶ë¾;F{;\Kz¾ýÿ %)kíJÓTìÝ%Έ¤!¦Ò?.Þ¹`®[²Y½7Zå¯2âÈÑ¶ÐøœóZ…¥Ëwà°Ÿtݪrn‘zšäÃF"ñKµžNš~˜L>„${½ó¥I7f;¡ë]\èÄe *ª"Hà^ÔHžD‹Éa–ÞÔCËÃY‹h> Eì?OJ84†6¡, g"|©šô¶ÇˆŒƒCÉ[=aŸÞ‰˜ 3Wi³~3š{ˆ˜üM!|c?ôÞ‚0q§o4áþlJ4XÑ}al,õ­Œø‡cøâ•Âʃ”õN{Ã{µç¡Ù¼ce0æ’N§÷¾ˆ–ȵb ÌÅÍG²½ÇF¼â¿‡±7Öâ+È·Ãq( E¹Ge•ŸPü’jÁZعÙÿg:ßGV†L~Yc8¯²–¡)•¼P~k$•ÝаéXÑË>VÇŸÄÚüÛË=žêÉ€Þ-e,4¤oüdNµ(ãgUéóÂ|À1º ¥•38‡æOZ[z­b .:Î-Òa –’æŸCú Å× ž!Ã8Ñ ”ŸøðºÇ5éèáK‡Qøpœ’XtŒû’¬–)Þƒb ”AÙ©-^•Л}ÝÒ!Ì¿ž½´ÎÑçe°Ù)é÷TÞy{ª[±ö̇⻾ík/’ÿ‚Å]7t{„ØüÚtÉg¦šq¢Œv÷óÕ‹’±Q@üÙž¹÷ÐϦÁnÅÖ‚ÑHQñ/ œ©d¦¸ùñ¨ý5£í›Ô缇>«[û›#üÛȬøE¯©fvâˆháÌs•‰R˜Õjÿ›®¹Uc©ÎX(4üÿ­§x+TÈNÿ«”¶}ó1_€z=M°sU”iy¢c÷ ûgESõ*û“¥D5]øÀm¡úÑž ’ð¤Ñ&#踶P•æB©ÒS`¶‘«YtJaùàF(ä‰"¡*84_%NvÓ!®gÒú^v0bóaè)ôgwÕ*u~ŒsDgë¢Å 7D?>l/ Õ`Ú‡ú4T PûQ…÷yÅ8j]W20 Ä!.¨B…í4å:1 ·—ší"È›ãˆ3?GRžc{#üM(>~[³â<=©/9-Æï߯·ªÏD*zÇCs6g9ýjpÝÞÙùrH½ô ¥¸çtSÛ·nǶ«É¡©|FrUˆ–—Á­=°ò—o”$7#.IN:Ȱ±‰9O¶6°eðÑ»à&ú†s°®Á‹J©°~F1/œRÑýÄŠ|2¸L¯X½,7ËàW²¶å±ŽÊi¬lƒ°å o)éçЖ½^ô«¾e¦+ƒ4Âbã»®J>á_‚ÈÊ•Ÿ8ùLc'–3KHùbƒmÎqQÔ\žú\R!àr?׃•ú½‡øC ޼ÜÇÖF ]küM)ÏÆ –çˆ)ˆJ¿L9(P¬á•îþÕ‹¿Ï´:X©Tt´ïš ”±Ð” »5ZyÁ¿ë œÊÖÕpö3Çï’çûæà0Ošk{mø*_¿„Æ7¬@P£+“>0yüoŽÖË•’àa¨Úí©&«7m^ ¯4u\zÍk¦7ÈT¦°½'+–$V`[$ïVŠ£Itõ E¬5tÊè”sJŸ',yHØ´`ö™ŽÜ:¶EC®UìÕZ ¶ÐñQ½žÛùP=SÄ_›%õ½øŠ„ð,’±þawͨVý!I ³Þ9+[³»;èÙü6‰M7žhãydЕ¼¾²cYV6§A¬‹WÎ3züPløZõ4‚¡Š'°6ÿöÃ1Ì–L]Ù¦«ÒYÖb{¶u•}‡Km΂Òð·^ ãÁ—!ÚÓ&Iˆx·tà½îHÜá<\ ©MÙà±§`€áÃ5b„„0ý† ÛŽª¾+•Q†\‚YK/nÿ^P6Êi IûS@—f™!`±ôîÂfÌ—dDò¦ô¯*@˜×ªÅCÕeÛŒۀJÊD&0èN?ˆÞ­1ˆìÝ#wÜÔµû püºGWé—§Ž©!;FÃØãŒÑ+Lõ]üM"zýí™oh„E°ôÞH¨<ì1©5™‚·KÌ×s¹ø‰ [ÿ nÉ‹YCšeŒ§3:mÑ…ôåJä{®“Ù1“j­°èïòt*À/¡Ex5ð$0?òlA’baÖºk&»F(˜/3æŽZΨeþ>òî›—•:¿›¢–îß ð7M€Z¥Ÿ»*˜ƒœÈ}´½R̂৤ý%üäÍÓ!XŽôÓº.Ó°ƒrv[ óKnÎaÇ+Ó¢©Ò~¦¨¬¨Db†v¬§ó@ŒÖ5l{ X,-P¤Î%DµÕü6’€T^3òF@r;¨£ìU‘,Í®!”šçz–§áºañÒ„&tHež}í°­ËkY™¾d z¦¡=j–—_»€¾»W/É+­ow¼Ö™pLwSä%C; QYþf7Eγ8cõ¿á–i’ÓxðŸ$½{C³$ú‰\”eNÛ´Ú\uI…Ž%¢àzo+ÿP‰’vÃÖŠCz)ʼ¼RŒ·Ü£©VÖÚ/ÒB¿I,²ê ùøA ¸³’5qJ5%´—‚h­Ï àÆÔ§*Ž9éZ‘v! j«§HžÕXô´µ¢x·øÓ>7’ü}\5Y <ñÇP(?û(Sl€ƒ“ž­ô5‡` õ?ûÙß`”ß즷¶š?×*wÔL…ñäã¨ëT»•ï„H¹Ä ¼I+ðpú¾sØI‘û@ÌCŒýy;?- Íd¤ Jý3ž´ÃwŠmåO“2ÊzZ¹®óŽÐöZS»ä­I°r~‡Ù ð'ÃÁr¶—ªa“£æ[QÊñŠÛÞ²ûGú‰ALÆ>ŒÀ…¤€í ÑY.sæÙ¥L­1ð}á §[ìÒ!ßœöK¢ˆ·Õg†~…«à8=h,…"¯bBÙî¦cá*ìq¬8è®Sã…v‰ùl¶úKßPÇqÆœ:/®³ÉP—¨DÆII‘ßÀ놃§Wª(3mó³ð¹]PE­NÒÖËu§(£ŠÇ…¤bfÝn‘Fö~~ëi ¼ÌŠbË Y"Ò÷©Uéù{µÜMqbES$ÛOìÇõðÜC ÎÀõùŽûc²øç0ACœGñZƒNÀG‚º(Ü€j¾,`FïWGJŽ =ÿß9ò)óãÍYKÓ±2…'ìGª,påI[nx Îê¿3M&ÛÁ—ü|·uO·Í¡€R¨ÆUúЭò PKVïš×O8ñ¯C°”„d5«|BK–õÛÌ"ÍŽkرÛ|±kµOùÛ~ÛÂc²ˆ´Mé`Ù|&ÂB7"¶Tõ™…wÛ½²œ ¢–«(Î ·{ FvÏ”Ráì(3üÜÔ?µ¢T²šñNâ\³‚2=Âcs´‡#Ù³¯§:‚EìÇs?wJû8Ëð9ںةû£wI Ïgaàá Vá¡9Ò`Ö:œi‡®]§Óß±ãxkº1C ñ›&áÓQùã2¡3Dà‹.Û; ÁsÌ)‰oÕ‘Ó\¯xorHf¶=¿-XÅš³þbò®GD!b ³eP{¼S±J3‘–+dã(y↟WW¾.¥²n™ôK¢"åfzUã( Ôp)ݳŚIÞ1okï~`¦Ô Y¾Ñ7ö˜ìŽüLÐ…ªûA;µœ€ª¸³p 4‚P¦áó1{ýsb&ÑZŇžÈL3±¼M<³Û­׺³ÜE-àe(ê“-ùMSoƒ—gq΀ª w¹ Ѽ5„̇Àhï^S@ì 9 ­.aQï ¦°ÅÑÆ 1«àÊ8l‚|hs:Þ4ôŠùR„\.Ò{t~ŠG=`…6r1ݘ5ÌÔé4ÏÝ&]† uÈ©êzà>ŠÕqÊ)Se» »Ô} á<‰²Ê˜Zs‡À’Mívæ 5ãüLäC¬_%(Úcƒ¯ÂåÛ¾õU ý)¤¬¤µgÁ¥\¡À³¥²!ê–"c²~0‹Ú Ÿ×k =g—èÃDTµ„vN3¥Fyüh«jU¾Ã3ÿÔ‹fœ·ƒM‚^àÒÕ$–µíù18“o:þÙ¹fÞ½·¯ŠT¥Ž÷MÀ”2f5¡[˜ò6º e†˜¸"l6“%ìÈÞê[.a¿†±–«d”‚ï¦ô>ÀI69ÊþÓBõDú@H6Ûäírc Ôûë=— R ø{>¯©®üM€×;:[òlKß+6Èœî*è×U·+Æn WÏ–²l|gbé8»¸ÈŽ Œ²c[þ£ è¦Õjgãy©?ù/s–b|WÞ—ø‘Šùß ™L6R\ÿ—r!€R\³4eú}Ô©sȤīø·Þ síO»Í„]r\µ¤WÁ«#e°øGB3 Q…¬(€/ Äß²` šêHê5o«ïÂBÜÅõªúh½`~5_Hz;Ý?ôƒ$¨Vt€¿nÿ:–¿ÜÅo<Œ sOîý=Où¹ò½ZRÜüI`'·Q÷ä’˜å-ÌoÎŒ½y ,Cªnâî+à†Ú+ ¤²3æ‚MbÀ±ré þ!±óÀÉ÷"S¸ØìËqçŒ žVC`i‰ù«Á®ùß)•99žKúK]Êëqá‹X&›ÈòÅK@‡†Þç5[+Ï}]PMj4&-N©›4iq”kàrZë±,ÔH*äB®ª%z~°Â™Æ/F³Aºd*<{³&Ç ÀªH¥DÞC8“Q‚ËtUaS¨á-òý'¨ˆk~òï[þÏÃõìüNP Øt_&78 {.ÙXØl“ï‰ýxÍw¡•ß|frûÉä² _G\MDÓÅ °4Ùòvᦠ³b¨Šnç ÿaXcY­eä94‘m{P›øÂÊPÉëk8 œx¬x|4Ÿ6¾ig^1ƒƒ|uòji(ö0nPš‚«¬—.Šè`!ž±X$RS¼ØÙ¿E2'ìA~%)Ø_ÿxã鵺‰àO\Jæ`‰h·“µ¦RN[ÅQ€ €šÂ~t•c·Ëe¹è픢ù÷„jDüM&®%^nFVO›+L4ß]ŒíYT1qìËaiÝçÏ¡-¾18£ ]®±«súš/ÈüªéŽsMái9HÛ{LBT³qC‡½<ÜoTé+ÔÝ &OõS-]ðoÛ„±À-°—µñ¿ñÓ랪¤ñåc“ÔòÔXþ¥Rmˆ)[R®îS'ƒOK©,ïHg'3?^ö¶qGžòY Iwõ.Ö›õ…Œ8S¯›,ûñ<#\ãHÑA´åîl„ Eÿj¦ž¥ðqO!0ÑŽ#f4nÕüNSªzòÓçY˽ qàun¦ÒÍøÏqZ.s%4Fn?¥u•2àÞm—Ýcé,L wM_ºçoló=“Væ/;ÛeðVúÖ´ìhûá“àMç!9Áv2N¶Ð©¡ HNô›œj[€³T† ˜kô|@‡¬…¦!ÕJ ½¢ï õш[¦‘ŽöÏJ6Å‘€UÉx™˜{>ª:IÝ4þôÏ u¹ùå“ñDžgY>%­ßJ«Ò¥ÚáˆHb‹‚öT|þP™ £+šæ`öG3ü5+l™QìÚ?›¼CtzLÃÉíÇfœplubµ„S×Îå è£ž–qŒoä”5~!à3Þ&\Ht2ºá®˜šüæÔãW Ë\õ‘i½jÿWo{d¡Ž,S«ûrÝ1Ï”¨]õ)Š,g[­IðY_ùx0ÆnaЬ‘S©#Inàä*.D¨ vÊ€Â2ˆ_Ô8úI7…¥0x¸‹Æ{ç®'×+ë©^Tßð4×íV_N~?éÿµÿpåöôûûÿÞÿ½ëûüúÿÿÛÞùðôéüÿÜÿ›ìÿûúìÿÚÿÜÜãïóô÷óòíòóõÿØÿYÖÙæ÷òüï4íG'³ƒ–~|}8»É‚ì=„Ãäæß/¦—D»rH*K@"° bðÓí~(O‚$ÖÒgÏÙ‘y­+ŠÝFùÍž§€ûÃ'¼ŒÿIo=(˜ht c?€U¾d5 ¶ 'Œ¼Ø‘ëmÛBø‚b% ”´à=–Ñiy°ªl0ÕUÐp¡Å“<‚ȫフÕm}?ôÆ"¿ÂŒÆ¥ŒÔ/we™žpÆ‚a •Sò@™~Z>'ÔW•§¦¥ä? ·D60+É, +‚ÛFˆ|8mÔç'mì¦*º¸•1]xᄵEh3 !n`£†ü|©Õ¤X)³Î ERe÷‡àûÿSV8zâ§FU#yòÕúéU©jë&{½X¯š®Ç A:ŒœÚÃ&¦AØô[ËËñ ¸ádfœÀsÉMÔ]ñ¦|i—êhßÏ6ëÖ'Ù§5(z<;ý޹&Ò,É7&áL,1ý$r¯Ûå8s}PVšiê›mCÔ,ªYª1($ª. ¬ð"@ó[à`Ä\³»w+ØÝÏ ES¶ðNLÊ¿'¬÷àÿÚ 7°:ªåà_˜×ް%[IÓŽ5îýK~…áBÖ}wúH`C¡’—ŸZA+Sù£©t+û!t(ѹ·½ÔÄÝ(u$ìÆ·Æ…È<©LgTŸðy~xîóç™ìâgŠ—VS¸öãÈéâLµÑSê‰Z‚ÁX52¼úPøØpJ…͹–¬¿¡¬sÁÅÐGXñw¥ÏçÍ•8fwÐd]k ƒùx›ŸpgTß/‘ò¸0Щir§`’ÝJ-ÁðãÄw­´"…ÒM-ÆìßZªšq}@þ¡àôwØ(¬±ßšuŒýÂÚ N30eêü}^A%Ž› `ùùàÜq½KCå®/Éàl׫¨‘~´«ür»§`Ó H:t›Vù‹èµ¡Sf®зî‰ï³Å…8œ¡ª{ÒõëŸÍrÌñ[bˆÓ·õúÑæÈ¶$¹›G©E/Ùòî9:ú«:ï. »ZÏž®)j_#¹Rp NItÔ  ÎÐx¬JºçVà Nñ+f†É‹§œV鹌„y‘7Ÿñ•cG‘uôBNÖØÆ°áã\ìÇp¥Ü`·fn¯Â„k0³ž‰±fQ?²Å ûÙ¶¸é4¾]øHF»³¶ž6™ 0† Ršð}*ô£Š uDm%LZÁÅuaøÑÕ%#IëÜ¥/ðˆ@7ÒͨñÞÓUPßVÞ¢‹^ì¸w„Á}kš°õ1àןս«äQ;z¾5‚M¸œí+ùÌøŠtñáWhY)©0{ !çFÕ¡€K—Ëù’¤”É¥Ÿ`ë‹\ ö~"èƒêi6ü5\Y4 d Ï›3ÚóUW‡ëY«34Ö»ëQS²8-«Úòtÿ6†h¬¹˜ÝgÒT$dsfÊ ùg·Ý$“‡‹7[¤l˜+éy±wÿÔ4Í=jqøQ ‚Tj&˜>®XÚ´%™¾s°;¹¬§“-4 mÛPÕ Š:óÆ}ên1šèx=·b¶îŸ.=ëEãj¥¿`$CÈ­ö€ ð¤j+Š“]摟±ª «SVl-xNY掻¼òb|H «5éR.Ì´kúCob;B`_ÁÁ¥—çýœÿ ÷ Û°ØîüñôËC?ûï%ÕZhNµºcPX¹fÊœÞ =‚ºã·þ¨Fë:¨ŠÍz}‰É ›,E8V+²Û‰ò¦%þ“Àa U3Gùÿ ¼«Áµ‹½›”¿ãs4P «$úJsùïãÓÅËÒ¨Ó %f~Íi/¤áZC÷t0brœ|ñ(Ζ Fú5C‹e¶+5–“åÞ®÷Üû¾ÇZ¡àQê“ã~­J+gÒ¹a3‚Gä‚e1ßLû|6D«ÂÛ$ûŸ ŽÁVptà”mÊZ<,>¨˜s;½¸8='m<í@ìûòMìÖ–r8HûÐèØüÆ4ÎóM`!S¨X×Zaó,\ˆ/Ø^¼Qs޾³ÁÏfÛo;J·­‘^QâÄl ªì‰,øäÖvçÆ>Ä—IÆRJëÕnüÝrÕ´0ãûáiÚ縮-q‚«¢‡:KYKCTŠg¡KûdOF¥ÙçIlj2SÙïþ´~"‰ÀR9a‹,óˆÞ¬<ÛœQA)™~ö¢Î£¼l¶pó^·hÓl+í¬ŠÏ²Þý2†s¼ fÊz9Y¾@¼£â©•FvÍ(þnô&oßK-$p9 ’mŠÎ=}½C“ÁIM0/æ}MJ ¿¿ Óõ3*ÊgâüÆm.îÑÌôÖÍ»µm Æ&RÆrÈï £³µÄê2 Ç·p©è*æ¾—G±=PE‹—qJ7ÆS¾Êë³FjnÚ°)Y1Wv!„w˜v~ôyXœ*iYÕ/} 8q+¾ÉÎ3As¯¼ Ø-a']ÌÌÒáv…è%Bæ¢emûðx·LçÛ@ƒ€$·œÏn7Ý~^|·ô¸ŠOöJÁü8x`[NWa×ç¢ü*Mpú+øÄp‹P &RZ1ÿac Œ6‚‡j䔻܉ ÚÝl¨GG­¾4ú[h ¬A²-*ª Ü^DlTºœÓY²±ìÚüÄŽñ^iƒ¿Vý®¸~J¢¯†€ÅidW[R* wZ•£ÂïÑL`‰ù èE´TŸDFQY?ä3^ˆ–§žœ« yúÐ|óN4îÌñ®˜Ð.§èçèl]פ&1ç«Q=ÌPCöÆ,MéÞ$(lC ¿íz¬§³Â(4„Ó0äxn\Oß²¯s¿‘ÈË d¿°ÍVXf¡ñ’…¢(Üß÷¤u°Âýæ×pa7w%/À™û¼Â9%> ¢«&ä}àyÏ¢+\—Áf0Ú­f¢ý¿Áï¹P÷¿¼·ÖÞMnÑi/_à`›•ç­õsÛb|–V'rÙ6ü|ªIWõ’h!Ìá… Q9cų˜¸RÍXk‹eÀœ1z™DLmîÿzø?¥VÕ)«Í¨Ó™ŸeFï¸#[·³Å{Æ]/qä3%ÐÑ:H$¼[ê­T’|)‹–¢‘”˜x’s´ê™‡ñäÐre)…¶pâø£`ÀRcZµÕªmÄÄPO*ý zÛê}Ü,@ãWI~(Õ*ãÌE·çŠeö•bÖ@ÊÊC$)¯_Â=Ó(d@¸Ñ¿@³Û™„ÃIš–àj5Âiô˜^ì1œÄ@ü§*&Ã|ïFu¶U.—­$mÏw.ž ˜uFùÉŒ 8„:zg¥ˆ™ h“úÅôÌ·ƒ¹@l˜Øš’ )u¦Êà²j4ÒËßç'é0†T¹)p‡ÝüqÖœ›Ân—‚µè_Q!/H4¡É©WBcýÝξ¯Kð0x¹š…«ÊÄö»Ðº @!O+MyDDÒàøeÉåþޙ狡=OTºæ°¥nðžxv“Ò@‡6°¶;p¿n…޹*x½PôýÈ(N*±”rKasí-WºE»FÂ8Ô&ùëSÓA¥ô ,›>æmÏRÃá?9i >ˆ ‹8«órc²óHø5űdVÚü}b\çóx¹Šì†Q†Ž£$WN>Ñõ¼\MÅ Z–Y"ÂÖ\|Æ b vÎ|¨ÚùQa#e«¬qᆄ¹ÛªBä™ÎýÊÏÍVŸªò‘XK0%ÃK$\-ë Ï6dZU‚JZäŒùÛýÍCw) 5kR™ „í<²ÔeÅùÍz\Œˆ^`‘÷8Ù–óÀXÝa+Àv·KÀÔ=•ê@Ð{  ?Y·([œ¹æ‡G„-;@ÁKÕe“a½Ó‡›C€h,UÓßøŠ|.£æ«aiì| !‰ªÈaœ ÃãÁ µ‹éï€ë2HŒ¦‹j¹è8`æüõöwøã'‘ìõ9éL½çÖ7ÂE>N£žG|B!ù€¹Göûd|êVümÔMßç¿Ä÷+uœžˆóÓô¡gÚðÞñYy! ¿7^”ÀƒÂÝŸÕÒòÀ(}jTb÷ ?ÎŽgsïà)+ÑDÿvæ‘Yø?{‹/—÷ ´œ*øéƒÑƒÿ+uÔF7ŠÛÞgB‰ôÛphP¨A'À!o Uô'vW_õÝQò,å^Ä–ë‘Î2ÉêÿEÿi€x–I['_=ô/O ;­éóŽªe wûSØ7¼Œkÿ…‡K¹÷Ž¢Ì÷Ý#?|Tðë5üž‡Ö¤¡ê9¤R†Z©t¬:ÙÊIZµž†œ+þœ…Ç ÐHÚü†uü¸Fžî¿Õ%Aç…·ãTȃ꘶?d ml’wuT÷É¥;¢Ñ™xS!œ‘UŠØ'Ðtnâ‹Kè£BbYɧ8Ÿ"EílÇç{òÏ¿-uu»Í¢~TÔ•xÎûø5·°õ°aõ’ÑíKbÄM¸r–%½ G÷Ž+Rny®×¸Èh˜Á~Ü••ÄTDzP'â# 0@˜›//ž'»Ýt"0û'Ož#SÒˆÈü@aˆ’Ý‘æ3Þü¾™mi›êŸP+lù·¶³S]P šÀ‘ jWÿÔt½T§.¥æíîúÁË1s‰ÜLùS|í¶üM(ÿâŠð’ .ïNL¤V¤í ­ÀGdÁô+åýã´WݵV¨§Oâ‡GÔàȘOyYð«ÙQæ¤hTpÖ<¤ªñ5=É!y¨à90‰ŠÒ6YÀâ ú_7ݱn5NnªÉ®ç¦åX#ƒ¥ñÚ¨­‰%«° ÄjÜ‚\ur.,õ¸–ÚK÷Ä¥(Í¡xÃäP¡dó@𣒠$Ùj³Їt7ôLI2æ³ñ‚`3lÔ*ñ7Öã)Z¥ÚXt poÀË/î5\ËÔ= 5ÙhqÒ:Ûêþ…† ÎG xɘ mä:—É.I”²ÅE Z5¾~@ÊC©KÙ¯düÆDã~Ö XM˜/5¢áÁÿ$ð!0K€Œ^ÙžZv88Ë G4³ÇNBcä¿j‹3­ uóÌ¡‘W¾Ìœó ¿Õ驸¬k®²7ÇÚ ‚i%Wçß üLät0SuC"®Ëä묊NGÓª†Ë±‰Xl;§;P¨lŠÀPô”Ï´$—=K¬Þì¼¹åHÑ‚¾ÕÚ1]®™¤ïäè“gÖîøEï:Z »ÓËœðZß õKxü´ö˜Ëî˳îœÞ (ª…ÔF‰Öc¥ÿûñ¨0mÀhä‹h ÷„hÚˆ£ixÁ„û¤g~Om(žL·f‡iÒÖ½¤$h¹ôrbù@ ˜ø¥+4‹#QŠW j¸_­XComà´Í²,_oÞBnÌÊ.œ-2ÉûÇr—5Ô ·ÂÖÅ‚ƒ¢„RýåA¦Ÿ7†‹ý=8GÄ ´k\9ü{:T¼…o†,ÈŽm°a‹×–j¤6÷”ÉŒßR0MöŽžÀ'ûñ,‹ÉЙ̯V=]M°@éÍLBòšJ¬¤‚ü(@Þ£X*X¡OâÇèݨ»‰ì/øÜHn”V¯Ðs#3ðRª¦½(4Ë,eVC‹3D+"ƒ—>2ª¶™ÍsüŠÍ(œÆ_”Á‰nCŸSº÷WîöWAÍðmÅ3Kv½V£&Þ+v¿ÐÁAÑæ°{Ÿå”¹ÿòY3üsš‚ùò„üaƒ ‰ýú ‰GÕ²DNà2ŒÃ¤D:¾¶=àò¶Òæ Q‚}Ú,øvN™t:t1ÂOÏr|í²öµÔÝXHƒÔ¼~‹Ó‰;•ö‚nkWðsp2’<ºŽÌÇ'Ižögx);ÓTÚâ7@Ôw2`H®úòI>¹<¿?*â÷ØÝ"p-lb):Ÿ±¼d•i»M%ØYærñ |t@z¨ö7ǘ~‹§lX|àˆë9àÔçåÈŠx~…ˆû­®YÌn*«oËU=žy.¦Í’#Ĭª#ì¶>þdF71æc ¢LšÇ(=é)G@اhÞ¿Hð­¿kØS<Ž›Ûö@ÐÎs=ÿÛ8üG<Æã#¬YXÑgüM ˺<_ü;# •£OŠIÁÐŒ¡otBZßkm¤WŠæÙ^†e…dW£<Ø ÌhÝ£ŒK( )uZÛ]xˆrï]Ûs1à‡fÿô|¸X„| OE¹w ܃êYXXçPJàÿð ))Àæ4 ÙØPá|¦gž#XYˆ ¾×®vaøøk]KÎn¼ø.„4ÙB÷qr³Ñ_¹½zÉ‘P¡V8æur#ÎS?‚cbŠmuÔƒîúd…'Jb-¹Þ[$¹‘«_hŒ=.œv]ñ[ ƒ}¡lð¾ ¬îØe`ŠRüL³ðÚr»?<ú¸ O•»Sßö¨ð]>¶Ù—4Lôê ·Eðeü§—‰¦ rÔ¬ý _ʸӊ¤Óë?ÿLjÈBæŸ1Ë»‹Ïý®ÔSªxp):›µ„º?8@öGte|ôæÓw§ÁÛ-šwF8 *U!ÚnÀ²@®¼{!ƒ®Ñ( Ó 7u ·@©ÂNvkW–ÐʇJk[ƒÃž]6—:Ònæ‰ÅHÐ0"æLŸ:ôÈí…ǃ«Ü¶8C ìîmEq1›Ïðn§p mHæ%ºÅ®9—BÊ¡­í~×èkÓI}wÔÀaæŠS~5²!ê!üLËYòQñ ³›®Ã½…ê@>¼˜õ+ˆOþ]{Í’D©g))Þÿ†CÜ];žÌbV©³Æu ìé\¹1x¾º¿ç¬:› K2t0mÀè«<Á}qoD&¡¹Ù¢ËU"êÜ2϶~ÕÖô4X‡R0¥çGwâ@y?0õˆ!BÝ”R~ º=¤íknú°ã‚HYm©06Ú/‡UŸ½¦[]–H"°G2\íé|€i|¨"€CÑLZq€„•›”HŸj‰MP=è+ùm6Þ…pó˜—£-w>t°:±%›t5ùÑŃþÂÞ–<á`fq•ã‘1+¯Áâœrôa¥Æª _½ñùìçùÿà âì‚ò•ú²dø˜¯¶þcÃÜùá°–7Cº¼P7Ÿ‚9 Rš"Ûßϱeö—`¸ÔE‡š_½è¢­¼ü¼ Ö";X0g:ü-È“|+£À ¥³2=š‰saâ&¦R ö6¼äsQ$ýætÀ_4Ul¤··ôïfäð™+U†£ ò Óuènj.¦î%Q½3Ÿ­`&> %àq:‡ö'…å\_¹¡.Jø÷—”fâ,Ø%j°kÇn4ubbü}[Pð‰Ï PôX>·‘Ø|H&xøñ‘§¿I–èptIa€^[ïîÈJ']ÿš3o[ˆ‡ßí3§ÄvñpüY6Áã\(Vô-ç:Ï¥2ŠVØZ¥€¶ã^¥çÒ'«Ä`bã13/ÎYÑM­ï­¨î„ýx~èPÙ¯sÿ ÞhQUJ$FiժǻÈub –e0aCu¹•ù«ä›Z6OJmnˆ¥ã¨ÒV«³ÙiÄóŠ›J¹Ži9ÝÝ®¢ÿâšBo4@»*ìéçÈ€ã“0vvËW‰…­?Œ£ß¿窨@R1.Ïäéþ }˜á€o\7¢˜Ëí6üb8…A`$³€=h 8ÐUU†îpk3˜!øÇEšâ8]´ßTáB:L< Q±epFŸ.®XWüÉ5\D-`çs|c›è–0Hâ*¦›ýI çÁe’Tò†ïnX ®Œ%<ã*ÒÎÏ,Ý»Û<µ¸Ï >±G#¢6†=_íö!_†ª-©¼´ÒR–ÈŒ¹?3üƒärbþå8P¬þÐ:§¸0˜áЦøm÷;)ºõ ÷ýº}Iû7å –¢™NËz@­cX6^ƒüHl#3)¦YÙï罋½t ˜ íì$‡&ò+±j"´†%ˆ5½÷°œ8…Làþ8Z«OüŸŸsϸÞêh´¢ðd”Õw €ã9Q¨¤!ö[iöø!ø†ÕV¶Âª”BÅQMË<.·`i¥}(ÂK£‘x:#ŸÌï1BÞdûTTou”„W°ü†mìê;fFØ$¸¸”K6LŠ/fË®É:’sÌPW )†ãÑåNc[ú)`8â¿ì`n¥‹í(ã°Û >Pw‚³¸ÉWåm=öϸ§‹µ$¸Þ9wþQŠ“Ùß«xßB]såj¡í“˜c”ÜÀƒ‰* ør·ËEßjšpVÚÀÌß~­£tɤIvȱ£f ª‰œÑèé4²´Ã³“R“Aï@ì,ÏÊ|è`kg‹M)>$ÊõF–#°ÙéL(­˜ïlÆ2†í(o¹V›Cv  ц¯ÿW±­`Á½X„ôáa¨q ¾¤X|,œ0üM{K£o?áÚ«xK™²ì’”Xài*¶ŽÂØzközQ C>"´ôÊ“Ísš1|x)Ì£Vf¼‘šH¼aD¶ÉžúÑ¿L3°îBÁ3âfCƒ»ÓÂ5,+ï¨Wî·Â+P € ¢\c¡Ÿ,À­é¤Cî&{m¦’¹ªž›ìÖZPÎTöâÿêÐìÁ2ÓÊ|²\ 6®¤ù1ðÕïî u ´Êƒôê´‡ð*ÿÂByâüàLvßœJ*(ƒ¹5Ì1("B»©5=Ô†o½ºßbâÿ \hkéó ×XÛVÓÌ‘æÀ¨¯¦Ú»‡üc¾WÇHíõ€*rüX ˜~Š„ A¿ÎØ·ƒ3ßb_@3ÕyÖñ˯^&â1ùÕMjº"æµùÿ‹àÏÁT€ ¶ã†ÊÂC÷”ZR|È#8ï¡ìo—N¸¡)˜§¢|+Õ²0m8¦ê€b”¦ˆþà ¦/FçÜ¡û²Ü¼DÇÅ¢™a®¶o¥j°¿ýLà8à7ð º,©´`ª“³8šEüʈàòm«OÚ1$Ûp¢”‘™ÂP·Ðú“‰w°z¾ \ñ_7G;h·6°éÅ÷ÌäFñx öë¶Ñ¡{[‰6ãTt¢òA½\Eô›uÃî@ð2dæ&ožÞˤýÕ–G5g¿Rz˜ü6PÎVý`E’ºÏµËºÄÿMŠ:q£œ¬íëß›iØýMƒÎ{Þ|¬¥ý†_¸-A[Ûƒžfbøwþýu ëU1Û«Ò ,÷_UÔ_¡Œ·ÿid™æ„Ëkgܲ¾žTa/ä!ýä"Ò sàO+ݧùž¡pˆ à¹E×XF'sK25’&U|´ºÆVw9l\çÍãÎoö°Ls›Gc ’2h9$ÄwÆkå½Ü!”-ñ÷ïKæÁ}ÓÝjÄö•Œ&½ÐfwѪðcƒŸùˆZ¿p\a[À,꘾†¡ÛFk ¥´Tü}]>ÆG¸?;#ã Œ¶ýˆ9:fAX¦íyÍJ4ÊBǯà¿NѤ9Aë%‚ dZÛÔtfCr£‚ޏ;HI‹ó°‹3o(g:GĨN`yd6ý Í¶˜?QÖLi—´|ºnëERoAl{“nĆ:‘t" ‡×%› §‰)–ë¹]?Ë€ÎaŒ{vÊ7¥žˆ0ìžcrÝj%%€{*xp6¿PÜóò¥mgÏë‡ÏÊO…g±™-õÌ8ú\«­>‡Œ6ÙB­sB‚U½ô@ÿ¨}äuìol©‚¡Z äˆÑÍÝO< }Ø|¦²ZJ»êÁEëŠÁÝéîPöŸ¥ÙBi]¤Æ ­ï礖yA^{s|ü®Æ‚“ f.éÊgÀ´ûv%!kA˜v7ü>B`•á¶|¤9ß\…ˆ,eLc¢F€Äè… µ²ÖÂcþÀÜ¡”gU±âó/6‡"e¦”KÝíØX"º—üš\EW1|$SÍŠÐp@èµZhÑUz|xFúAè Õ ¹z»£õëEGišâÞF/Ïa~÷UgT‚¾Bv ¤çÅzĵùÕ®”…ßù|öÅëZïq­ÔZƒ\cíOÎr»íùZÃØü}a@P`LkÿAËyX×:P¤ìZúvãPn…Š5Æ€øô²*r½Ô]ZqWbS¨Å1ë¤îOë¶Æ~k¢úüéìþ+¼:oPÊÚ¨aF¦ƒ¦Z6;ÏÎÐÜ+…èW9þ_îjʘ,¤i¹Ñ³ýÌo¿PI%AR},ÒØoîbÚ$Ã{¹j)½r9Thó¡W‰êýB¿áØ´Ø7<šÇ×<Ìü›ÅØî"É)1×`GWù‹ï‰/2 Ãn"Éo½O5¬:öÅ–Žé~ ½~–‹ (áî;Õ™¨ êg‚ñùº_p±ÿBe’£Aqªßê|Y0ÇL”fÆ^úMž&ô½íRþ-sœA§ 锺úgÒ xlGž–Ï"NÒv™žùÂòV+¸´?~ý*sô!‹uülŸùðiýÎç‘ìŠþH0ï¦ •£´1wxkHÒ?ϬСa³ñyŒˆ†a6ÇTÏÊÉõǹeøým_óÖnQs›÷Œ‚üÕ{LŠ¿åƒåUMf¨‚âÈuûV°—Ǥ6/…ai +2ù¼©±ˆïU§8òy©$‘=“YáÛÈŸ«¿-8ÛY›Ðü™2v¦Ôr”3ÄšbÆc_¤K;Ä£yØŸÌÔ`ž=ÊÖŠísVa+ôϾýu*÷!€SgÏÄSÉÖ؇0+@‹ë*¶s鬸9ûÐÍó›ÜriŠéÜÏ6hPtßÍ3IAnä#„7 »PI»Åçæ7(eQ9½ (%ˆN/@šÎzúÀúL7 Tòrég׃u­…yQ4L!ióyÇÎDä’ˆ°9ý£¹Å%åÒŒAºAõ,|准±-Q¢ˆôñ÷×M![ƒ] Ë2,P‹K‰tïxü›Ã*¦ÐðtG ­¨_KÀUˆ¬õ£ Zæ1ÝAõ1ëYoÃë ÃtË®>w÷ïNLǼÂäÕÌØWlf Á4\¾÷ÔMȃ+SŠßÕ çñŠnÀd(¾)C¶‰uÇÙÁ!»9x}`¤€Fò¤Tµ|ïW3@î,Ê.žØMyojíÚû8@ì Búyдáa0ºèƒès3çüpS_KÈâ ï"eDÖ³ÙTå¿Oo¥®±¨ÿý÷æ±L[w¾+nŒ¯£“ÉL°³4p‘cwQ¯Ap£œÔìLNלÚgÔuþ÷yü™.¯åÛ_?ÃÏò¦9…Q4› Ø$ Âa2k±cÎ,WáUš¦›=§‚vP‘ð*ú[pψ䤯n,&ûxð ":Õ3ƒ2¼| ¶üVÕËì¼ ò~Â>n/c2Ÿ:¶Ïžóê„§îØÝ""-Ze¶©ÌÒ¯T™çvr.Ú^öP‰R³Å¤/&ë™?@­å/(÷îFòç½Gkßì ³ýâý½„è±#ö¯ô"Ë)uq "Ó/ÒÐŒ‡Á%…ŽªK9¢ñ½\Òy“À0×W :MÙ7 ‡Å½3T…?@7Åsh±u²ËéáŸS(m)yü™È+£AªK»þzœh?÷™«:nÂ=æÏÑ—®­Š™2ôÍ!ºaphžÕ€ý­±˜lÁçŸHM¯' Jí‘DñSƒc•×°Øž¦ÆUö¸Æ‡ÓÚ½¦<æ–g—ök≇b¾yˆn¨ø (uÛ8r1á,#Õ…¸·â¸‘;;yüúóÝm`w3¾º”<4nÑdM赑ßÃ!Mp›Hh7зê=ó¦¤.;™îÞc}Lïh…Z¶$#Ùê*7[z\¢ Áè…ù}Š“G”}¾5&¶öàödB/>;ÄT*Ô5}¤­`ëYüJ˜Ô®;íEMÂ'KsU¾vBË×5Ókq=ÿ9«puÔ!™}Z# f{–¦³æ'4ÛÅͰXyÍ Ô´.B~ÐÜN†æ´ãøænÜÏä§Qc§Þ)‘IÐ úmâ¦ßª4M«Ýú¡ZFYáºr˜)uQœ%€)/êrMiÒÉÍš¬7_·±sB«‘ôë!ñ¸ÄÄžBÀѳ0#繫 ôˆak“ínÛ˜VÏ¢£3>ª“Žº @V‚·,ŽmÁ)éa*À„'“’ócˆßy uˆ¨a3‘‹ÿdl›•%ð(Ø;Ÿr {$/ÓñüLÚÑÓ|¾"rtglHgÿºÇHä•^oÈS!`seÁgP>¡v»|:,aÅC*XĹý¡’Ö>$àiàØÒÖhhóQú1 Åï÷%È´¥ÂøaóOQþ[b΃éÍ‹á§Ç¨?µ²öÐræ$®ˆýFû½—ä* ¡¬¸àòΛ@¤ç調¼~~Ô"Þ ñ£÷k„ܧë4¾›ÆÑöP %.€3¥6¡ð¼áqbv´ª,ÖÊ®ê¨t[sÀÜ4«ô ™ÐóìT‘î'é>*ˆ–RzmÞÕ3ÉÃŽJŠ©½’úÙ¶ÈÛº]‰mÍ‹ÒlîE÷³úîŸMC±ˆ71®z;)vå½ ]ç_»u{œqU›ã‚¾>—OPÿµçCº€Óð²Ü)æÃ°à#J㇠ëØ}ÿšHTÿ}ž¦ý«G£tëãB0–‚¾|ù» q䜱Üa\Eø}³)|Žf?)orHÌÄûýlÛ'übÇ≤èœohâ!½j¼Û`¿Lc¼lëšßaX®ñ>¸x})¥•Jõµ~šÔ°“iüX4¤IGÀ*̦–»M ;`ódÈ ôâ‘nÒ©Ö>Ê8Dx"m«AÑw&d,ã‹9œ 5꽆iˆ#ŠvÝ爌Ýëç>iyA³lzê ׇÂçTpp·:޹"›`=øU½CþÕ•PÅd`µŸkgù$TLUz˜ð*V©ÚoüL»þB]—_Ú×=ø,Ô($w1¡ž ÏlÆ‹ èaD?žC3ù­ˆáë7…‚Ó[Î@=;ddèd¡› YO¬ÑÀ¯~"²]°b~¯4¶EäG%‡9±Ë(þQ'Z;¨¥r´¶Ã`|²%9±¿¸™¼Û}'5~íe¦¬L–Ò!}u%c>3Š&²°½¸ó]¿° t"a‘N¥V­Øybí_l?oºT¿ðmµÆÓ¯!ª:©‹Òè¼3DñŠ“än8¹¿¯‚É EOÀ¤×tÓ*Ïr‰,StéD{9< þ7'Vד¡`c‘ü6YÕ‡È*ašÄn®n¦Èçt·tYÂ_“¡½;i’ÿ–.ýÆwºgK‘mh’jG1%*Øîˆn m.piÆõä5øàeÐôþyjNÜÚ[ör=çF VCÞ'™EfN©hÚÍQ'·ý wá¤á P•=›eŸHAEõuÖrÁ$¥‡† khÔi+pèªc²cd ‘@¸1EÖ­^ÕEÝ5²LÌ¥´¼ø ~¹¦{_EcGi RGñï9Ç ×ÌÆkN8•KBSm×ÿSteLŽ–…–e"&Ïf;Ð6±Gƒ½éI"Ⱦ/îߪpôuåëEüL¼Ù#³ÙYW¢¬áŒÃgÈVÕ(1Ö]ih4lìÔÓË+b‹¥ÛèqÇ ±bÅOÉîNÝ€‹õuý Õ{ö×–òœÖÜZD’˜Z:³‹w%—6«7 ð‹ycBŒŠŸáR&Ošºs9'©-kZ)Êc"m¼»‘>ö­õh9N\#±èh´¾O¥&xrUmxH‰Ù¢º¨Ïj¹ú³¤ñïY—pwd^àÅOMï¼ÉÀmñãþBÐ?Å”¤ R„æÊؘçp* ©'½ rThÿ/ÙùñJ»ó îHõ`öÌeèó²á³¿b®Û Wü6Yü¶ûÛæ\Ò§]‚±äT§õ’èU–rÞq8ƒ±×Ũ¢ùÝ~ÿ‚+'6~B^s_rŸìŒ;û07øàY‚Òzl?a/FhΗCØFeõ󣋙ÏVãôÖÃ8fùJÇ¢3ÁYN—€Áùcy4½3Ž\^müõ´eæ}1ZK&½¾²ôòƒðÕ®&Gx@åÃ`gÓ¹5Óñ…•`L†X“'S½–È(J9ÁåÇTžm?±ÄÞ]ê~/½fÿÜj˼n}a·wõÄ÷ñ©ÛxÚkn°­8m»ó³ ü|­”õ"Ûôekìåºc™{WqTRi -½äðŸ ì)–Ê2~nsšúQ7‘ ^Q¤áˆG@½˜p¨Ícï˜ÐJŒÕ\ÆÀ5 pì#<û‘:tÌJY©&5V+7[ùÅÛNàËÚêWÒrÁM&%t¬NâBD Üjä!ãžÅÓ-6xÌ\ÈŽ¤_‚a¨øG å%ƒWÉÔ}† Õ<3Xஃ ›·¦_Á _‘¦qä.ÏY[åpöoÒÏÀ!ùf×Öœ"yËwÑ&2¥÷Џ¥m]‚ÛA@§ŽÔ“6*¸;;Š ÃŠFEiO«ŠAì“Ùž oqrx‡•§lK {æý×îag¨ø*7ògñ¢‚pÝœ½¬1bÚ¯h¨]ýÛ]¶6" +›à<µ±â?éŽv8+æŸLÁkÆðà%¸Jß-ÙnlEgvÑ,_ù§Hc’Ps;žr Únc ½óݰ©Œ¿º§\ 39Í[ªFT·÷]S9X™{¹H¸ê !”¥Ï­¤–og#Ãp4À0ú#«PQçU€I¦J~L?¿VÞ›ÀbJù½~e»¹4=O¼¡ekÐÁ€t’d; ÈÏݹ\RòÜ<²|¤Ü厼Гü}a–XO»¶£û›öh ‡àãZmëJÛ³u]M/P,P¯þ·ohC+QèîÓÀHRãûü"R_úv-}xt‹ÅØòaúÑñÜp%®K³îÉNIWêÒ¿Ì×õ"X@l²£ãmTÁóTù$žbŸ…êÚÚíõ:dùšèsô"ð°KˆÇg€< ¿¦‚ûž²_¸pû€½9AþôIŸ’qΓ€Vd§eé3Û^”Zpý®´2†öDiE«¬Ã\2Q#¡ð<ì?~ò3T4$êýň¨#¦ÃÀ%²ÌÑ¢ÄZ‹O€±›¹çö2æMÓÊè Ô >!—׆[›<Öì™y 'zJ_c¯e+¹…9#ßp¸ÎYŠ›«%Ðl½qãïÒã³Õåjâ»㽓%ì}G-Òy|Ç·Æ·Ö*1Î…´Vn9ýâÏG•e/IDê‘|²Ã@üMF$“ýÞ!)A©~_îU÷ý=솼@‘§FÞ/H›ë+?ûU¹+q™N´|G’wÙÏßAtê{Ú°MìÎÖl{ÈÈg•›w\ÎE’^öÅTñ%µˆ‰) ‹-ŒVÍœ ”Óå`F\ly¾„ŠiËo™žó͹Ĉb´€êFÓSÒU¼y›CÍu{Wꆭ`§ç_òV$È;žÁôÂSUr¸aV@Çk¹í¢ŠªdÇ’ÈÌ݆_`RZ‘¾z!sÌ[ ³#­¼ ºü/n+½Ë†ÐüLÂàízûÕ}¸ ±¢ùI²/Ââ·*—ÍAdS«çŒ®°qáìr-8 Å/Ñø$#¿çÃJ×Ažì3DÓ¬ÝÂc‰^É óÉ3Àqñ®Ÿ#›W,äG•*JðrîW6Rܾ±Þ?ý ú±<ÝIð tg;´D¡áò<Ã(Ú•9¤epÊ8Ý+À¤ ¸=ölϺĪMkÏ)±Á¥¡ÒàÄ1ÄG<íé0ö6d™åKôÅö߬Œ gój´Ÿ>Q0ÿv’6¤9â<á–öÝn÷X Œz)ÇÅ”üM{|§R|×óÑÚ 4²-pÁº$Tl¾ æí±u¤,øU"¾½æ,sè(#êþ±þ‘¦ì”,jx*‚8Ö˳…°¹8j¬Wgÿ@zHz…[ºò€m‘»:gè¹£ÒúõÌk†¶¸ÊüñÕ­Ç™Q · u¼ü}ñ"|7àÉéÆö\ÁᆌYT°¢ô”º$œÔ"èÿ¿åK€,¸ÎšT á9-‡ `ó›¢åP ÈV«2ùíù9ˆ•_*¢mc½ {IËY:Hî9^ù6o¹jéÚ™žá®‰‰µ„÷Àf³{óÄÆ³Ëæ±«Ä ô´æ=iÏüLÚtâ×Tö5±„uý_ƒíö)X«¿“=[8£òì(ÜKîÚëuŽlCžq'$ìL%]ŠJxÆÎŠ©}WÿŸÚ,Ö¥g“ — {í„I>ȤÜÓ "¢Jü @÷iÍHÏÊ T³wݹ˜Ñ:·d"jÌxsûÕÀ2§¿d™ö´q 6°™ßGîïc^´øyIΞˆì® ÝÅ„,7mW77H[y Õ‰ì¶fó²;¢efD£G-÷ò6ÑR˜éÂbÆ€M­F¢nÇÚ©‰È`'Áx6¥~>Bf'd­hÉ@TSëa~žOggS€H(ýÄ n8ö}9È;öôõ÷ûÿþÿ§äñîéÿôÿ™ÔèåìôÿÿÚÿÀáéúöõøëæáÝÝâÿÙÛÕðùþûòçãæîøøÿÛüM`Unf ç}þƒzµCݬâö—“—kÜØúo¶ÊÌjÎÞý÷¦ s7ñ拪šØ8 Øå°HrªAqÿ‹p›,§{Êo3qrï×Iøâ~ÖãÅÖ¦K{¥&Akºm†5u,Sé£4Y¤H<ëYù|¨e›g´EÀK £6`†Ks<Û½Emñ ·ËóîÅc%Y 2=.én‘äPÎDI̲³!¤^æÛº^ê6»Ç­Çc§Ñ5ýÄÍv›:ìW2ÃorçN<¸ˆð³Ÿ¿×’ 9ÂpˆŠ’Å–ìÌò1íîÔÂäM]Ýþ¬åÅ}{‰óo“LÙ·xFé¥ùþüúPIÃËD_ƒ;åö¡Kê ÷o¢âˆõu7žW˳yàÚMåŠßso÷í7’òüLÕ£âäRî`ßt¿öØ?°0ù¤&šõÐA*½ª—%@“å5ÖÂiÒÝÐXöéµÑNØ +’2gúð6,wઈ3¶ô1w@õ! IT¾fBàÀPâmƒú¸m*c­Ÿ¨GdV,(e< Y¹3Ò×n™Jr" Ô˜î[zŠáV›«÷Içy~ã®æ+%? 47 âGšãn‘§bªh˜RjV<ÍQX@ VêþÏën08  Ø:1C½Î1ÂÌ m¤Ã["?‡¤&O;ï•“pâÍ 4#]V­@0–핌 Cœ¶üM2Agñæ"m¸ õA Ô“XìXÜ­¹oŒÅgMEø4‹Òå#îÁâÚßÜõÍ÷´)$¨ã ¾‹q„³‡ºÞÚ¦£›o;è“7Êi^ áÒNs¶’õÒM®îƒ^ˆ*yÏùYÍ[²Z¶ÞªWù­c¦hÚeˆ J1ð š4+u£¥Ç„ס¢G ¤‹P`q%’‘:Îb?λڽ¬ñ´¯„q¸Í KˆÒ4'í²…vK~¶{¤õA¶Ø³´¶þdIj‹Ðœ h0‚·Õ’,„0ÞÌTéô,è¥Fƒùö.ñ™3í´ãŠrÚ‘¥-ÂTïd›Vfñÿ«!‰™üM™÷F øÇø ŽÓç˜c¼¾:x‡ôS¥V{Z˽K³2F:ãž?Óáû/ù>U%‰î èŠ8ªÞð­”Ȧ!Ÿ÷[~¶`ßå¦ËrýΗ:Ì…$µ‰·Rtšô鈡S±x ‰Ýdûë£â”Ž&Ì]75#—Hu†Ö!•A„NשcêDŠtÊNiyájvcßÈÂímhÒNïÈnmsUG6ß «¦×8¹…PLâ´ùTxüM2AgÈ<¼—Î|&‰xé·`N›ÎÍÕn"ž»ý8 ™ÓbšE¬ ¯·ü£õ±Û­=œB}|¹¥±³€Ó»ÊGˆú‹M#4#êk Uš¡ ÎÓQžQé„_Åf/¢%bAH…š½*£h8¦¼Æ?{åpž«Oîà¿lf÷9Ã%â_ŸÎÝá ÏEÔ¯¦D1ÝÑǾ´ñ“Yf˦/­E…q§¥¡qpÇ»õLÚÍѧíKJ H¥æJù)Ç¡¥ˆ…c¬Vœé\¦ µÆ<1§²©gÜ 92–`.ׯÃë [¶ <.mA3y˜ÃÙµ´ï‡Á²\9rùÿ‹"ü|­É¡ÖRÄ kê¹F²^yLöS çeÞûœ1ñÇÍŒËFÊMX¤T×çËPŠûþj&èm]Û©YJøyqœÿžZ½Ãµïðª÷,¨6ÎpÄþÖ°ùýuRN:ëÜ6 ÒVÂo‡Y¯ú3’Kà@Iy÷2…Ôû ÃzOO¬31Óðuóÿ½©‡ê’òOeÏ´«Å Í–›g1PfÓ89,lYG¬J²‡¶RKTÈ6@x;uÛ“ÄPƒ2L3¶ú•ÙÒMCó,ˆDéÆŠåZòæŒ+’ž»ÀNn^À¢Á€j%ç8Êä]‰@~E®ð`oô26oöX&hªÊ3ðTmŠåh¤§Ü°wG‹àS6·¨´ñu®x`2°½3HÔ>HýlÑÌÅüX7YVíøêš Ê¢sG¢-œ°%¤éúô.Ù刳?Ó«« uãÁš>Â[îgƒï´ìØx™tZ„a0„ŸrrÍï¯ ÄåpÆAluê8Oí"xcñ-©:Øjù²Âð&Å[ÎQ|HçµÕŒëá@Á1ùw8å.‘Ú9ä÷øÚ7Ïmáï6oÊ“Wú0¨fR¾Oçg&–3Ù_ýÙCüDŽD*˜!tÞ/¯wÿ¹MJ¹lxò«W¯L,+É<Àó ž½’’¦—p?ò¡ÙFC¥¬{mFM_Þ”©ˆg(N9Dzñx‡7éÐü5¨#€žÈ–$*Žj •SSyPOa ÀHèí»² r%ÃoÁ¤“«@{ebyòÒXXOFùzÆ:Þ¡¡ºQ| 9ˆnÄ}Ê1¬c>©ÐL—&©¡f&] F ž×ºðf8þ³ 2IG©*:¥aï ¸U³ÀsØâbíªÅÕbâ“ mµºŽ¿rƒ¹}§1.Xí¡×$É8kcÍ£J¦^)×ÏC£¾-† kÂŒ ÿôç·4 Éèd‡­žBÊid„n¿1PÚ<ök¡µ8H!o…ô±´CL,ýñ­˜È£”|)åѰ¶70õ÷7žÛïüMšîüLr·lU zo°Nrõˆ9‚?¹> ¦¢NNèŒÏ0ú`Y·ˆ–eoñ°#Ž=y†úÉÔÆßÕ÷gª¥3“Úd-/çžÁ¹^2³Œ® ×=í'9ºÆ÷fb·Ýø€[øÈŠèS”¯›îµ »Þè1€)OÀ¸ËAØóoÁûMÖΫƒ<‡®£³ù ýˆÃûä/¼É"˜e$Ü<Ïô2 àÓ¿´SÇéåtà?ZŸ-ÉÄY@ÉR»7çÕk'‹ùš|y´uã½Ë?}ܲ1cö铉Y²\v Mü6q‡|°Õ9 , ÒÁ)ÞDTñ/ ú*¦wÇàb ò"}„½ &7s ¹k0Ýatª6¬°ôþ‚ÖÄ[2w7Y‘|=k¥À í9@«$±%¢ª…1¡ŠýÔáò”ÊÖp2ý‚ËTG‘x¹+WuRÒU“£Mû½«:Ÿ¾²uVÆŸœH™`ÝhôPÃl˜ìƒðûƒªÿñ¬·exªuΪÄòüO&"üÔ9˜ ¾ž)üb«`išŸvºsY+JÍþƒ9Emú”»Œ]j·\Ðh…?ÝhØÿ-x¿ìÇdÚÞVZ~oíêókÆXù’k)%…ä£+¡ Ñ6Ò+Šü5óYµ&µÒ4K¥²‚!½EñÌ•ÏÅz’:æM6­…¸”»æL¿{88¹za«å|ø ®l‚ä|žªßÕ,ç\,l1>’)µ%Õ†±nb3yñ[¹á.dyÒá&½f:­ÿ|² Òœ“Á‹kw·™‰tb‚@Å=Û;pHüÃè—r—vZãkˆË8’S£5] ;©N½³kV?©ÓKo”&£ÚÖ¸pšÃâ­MÚ‚;’t¶h°[Wl½?L¤ËqÖ‹ ñÏý`‰rüÆf\á…Þ/[å H>=? ÉÔÛ@‡—h²Ûslóò󚀻†„EÜ·ÆÃF£úÍ©?‡¢÷Û î’o CªD¢ùŠúŠ/ˆ©Y@V¥8ÆÌˆ¯àÞ9ëUh•›$üKDºJLñ\$’v8“Y>ÁòK³lµBç·òá1œDl`§ŒÀÍNßõ¶µÞ xa±Ú'QÓšõá'^sw[µ¨%ÿqKß²Zå§°“ºNÅ/ÔïSƒ·-‡H«¼L×2Y [¬Áèø¬™ `·Q¦5Ë{•Üv‹¦Ì(OÞ&ÃeÔrP`˜ ¿üÆjò-ã·™·y¼|ææÊ E#¯êAx,o°’4'{Dž Nn Þi‘)]ÓÌþ§^/\ Ô¢YDôVIò¹?ïÙã¦Fçq¤‡i¸6ú­—Û ´1Ùâ§f¤áUò,¸¶'ö²™ðg)^ßä,9ö€ŽFmÄu>dù§7äBé´-žø:üùC·<+Eê©æ~ÁÙä.-ª·ž½´»½¸¨¤ªÞÔ¯±”0 ˆ½i~܈ÆJÛFžþŠ(j#î\K9ôÕêpW¬æøFÀ/G5[”â-€+Ù!ªóaqh”½`‰­LI¼üÄp1YâµëºO¦W¶…RÞüì\¡ºèì)Zû8²sròU/¿X?ëƒ7§q ì$yxn÷“ 6.ô» ©Êâ-bE‡Ü_¢ûrYy‘¤Piúf¦"“F0‹w"mowN…X—eq%E‘™ËJyl~öû©ù|fȃûŸtõ¡È0ÛßSÍã)ñ;ëà"›Áý‡Aå5C— §\<Î= ­›q0ÈŽ³káÕ^ò(;Y€ìô ŠCIN¸(1Ž¡”T æd\Sq0…šao;>Í‚¤ÕŠìÔܲ߈“%,Ó<Ùˆ ‡]¹üÆj¯^¾$S?Ý‘[ #·©vìݦ>ìj cø{„8Ó8KñO0¾.S§ýâo§”zÿ8i$&çb…{dOŽ)nMtƒDú“8·jkÙVÊP/ƒwäIdX~ï÷ÍjPî¯b[—ÅŸa‚.œ\ìtw¿e”½ì÷¯Þ`òáTˆÚWï[/Ç{K\ô•Áº{²(lfÚ<’ÄKO¦ýÛö±cIŒþ–ÔZ-ü§­%PCJšaÌîe}å5š‘‹—Ÿµ‘–35½8cccÔ¦îv¢‡|nÖÐe3mà_šYÌ.l;"e%,ù3%·üLÕ7›²Pp‘GvnsÄ·ZÎ8KªzÕÍx‡°8Y66©È®xsÛlS}™Ãú$·$ħHmÜ•h>:á¶ÙpTp¤kºÐœï˜ÍLV;ãP1©ÚŠíÉ,9”Xé\›‘Y|=2pMGÒSªÈ³ý£È;!Á€—jü{‡¹†S›Â‹ž`ÄX“–õ²¦À„ûúÃìˆåHÕƒXêÀ££K@„VŒz0Žó ™v ic¬|Aëôó€–ÝZ4Ö¶T•ff¥]PEà33ÎãXõ?Š× <}÷ÒŒ¦©­mIÿÌâ Ù3Å){ Õ<(1b€1‹5FÑ»…o)ó#'âøvs²ü|­1qV¶ä£°cì9Í€Œù×èÏÙÄ-hº£Œá+Pù÷K¸&Äï€Û+¡Â¼U9\=º +¡jt§_sð~‰¿Æ>×Zu.æ0@⦮'dà|û4ôîÆF«eO«ðÙÐðÍ8¼ÈžwWÆ­iÜyÊóò?¾D¥Œ¯~+’«à—m*¥+N<óØíÊø+!¶J—;¤-ÁʇcÈ­<0Do°:¼ÔQ“Dº«·Ãö¹²^äÒŽÀæÐg˜ô‰‚Ë!Kñ ^­†bKØ}Ü k,#ˆGbîi1ÎnI"%x ²68uÖ€Å`÷È*îú ]þºÊl·±–ÛÀ@sZfü·›õ³sW!á0ö…ïMMQÏ.2糇 °/mÃYí/Љ¸[ììÈG³8'=«ZWš©§0 áˆG9ƒ±Ç€§Wæ:H‚ØŸbö á ‰twûpîËw <„> _ª.ˆ‘”mZ, fnëAs¢;7JIâñâáO¯·ÂgI~¹šO;*(! á¬â,…§±Lƒ Ñ  @ ¿¡:¨)KzÁšÈÐ^P9š)˱±·æb†Ê/L”g#AR×[‘Ï¥Í×y6»¼ßøòü}\4ŠeDÆ2¬ÓúIä\9ò¤Áb®ì¢v¯ZÝóøAn¨ºû¸ŸÃtà“QÀD5æ='Í4ß™uæK,†ö¯y›ÒÌäÞ pŸ¿ÒÔÜ%CSÝ'…úµÂ× @³³M[+R‡vÏ/ð㯄#Ý ™Ê×}f)m¯Nê„A¾×?)×Ôléhß®l³¹¦¡GüÁcRs? –™ôvòâÊ6rñ70“kwî+Ï.0]!;Ú˜@¯v¡ZOõÿ¯Û” àªB²´äV ÏÊ”¦²8pÿõ‰œJ‹’¢[šàÄâó8ô¿ìßQ½‘¤UÙ˜çUÓ…à$õ†ËÍoÎö»$&¹•h(+3Zæ›è˺UT,¢®ÃîoD‹ £îå…`À]ä;4ï¿8Œºø„JhʪxC¢ò§SHÕn3»E¤²“t®5—'Ôm…ûöŠòŒæÍ_)wë‘Å:®ùÿ4:DgÞ¿>¿â#ÖU³´Ï•>îßQœÃN1Èì»,tøÞÇðz;Lªåû¡1ÔØp!VŸ#P ™ýxç»H¥"r׳ÞkÆŠ2I7CÜMŒt}§K=Zì)ô)FKß$Ÿ‰—Yp}»0 4¶bR¸øð(ij£~nÌÏÌFðǼ‡)nÙ|q¦uFšÍ´M™íeÃR Y¸ÄNïnX_¥ÜþâÈßÑë0üX·`žÕZ ˜ÕS‡ËÄqÔœý´Þì/þž|¬38Ÿ’kùMÓ—Ê"-4ô =Õ 7ÚÔ™r&Q÷z7¾éÅÜ<»8»+±mc""÷Ž,9np~„ ¬+'óŸñEÙH°¾uÃNi„ˆ|–¾V«¸³˜­%xë'øc•0$ÒÆ$ ¿˜”àÁGqZg²1Té”rZhE攂LÔˌ疋[?eÒ+âà÷®–UHRãße¤~íqi™WbÐj\™¨öÂ(3k*@L‹þÊ…5ºÃX+Ó°0ùãëÜ„”ÉÏcâ+ªüL¨^‚§RžæÔ‘Ý`.¸Ÿw¿ÇIЂc[W0H$é—æ¾ÇÖÉGp$ӳϾ¼À÷oE²—u‰žU8½öü§¥üÜnN!Âo‰ ¨‹õ¤¨°dQœò3ЉC÷Æ¥.¼¸°àšéL®¯9)zbn ø³´Á† K²¹HäÜׄYÜ;¼št)3ªu}*ŽÛ²ݢï¢ì¨ÒéF^á-ßÀ¸4÷ !Š–†Hü1l¡N¤’¢È–¤ž©#W£Æ¹`¯éø§|:)#…¨Þ-»¯_[áŽóîR3J¿+AôG‡VöTƒ‹öð¿˜i™ øüÇZ »çí*>þréëàÙ}ÖB©Ý/ø Â;NzB<Ýõ|qReJQ¸â‰BüƒÂr'zÖtâCÄ+^⯻÷Ü<‰Asl Âcîñ;{±¤+¯ÇKx>™ÍÄ06Tö ƒ<øõoYÙ©×z§}5 1zðÕbúd*æO¿wƒ_T ñí}±-9MæA#ÑJÅw¯¨ÁóᎠƒÅ$ €hàUÏ:oµ™¡&ßl<¤y´lÌf'ˆhÌaÝZÉñ/ÝCÂÐ1eÅ)J‚*öáQˆû4÷ÄT·ÐήI92",¨LÃô<Š[â·Ñ[ßI?üÆf=;¿‚„ôšüž€}`„CÛ¬À5°H{ÏŒ__ 3vtïß–=÷¡ƒÆ½‹š¢K.m¢ÙÄ‚ðâù<ñ÷GÃu¾½LF‹ˆÈ6âX…Õ‹™á'!žïG‹ùL5.ž3«"u¢nD êå,c'ÌÉ,àM›š²Ê‡Ê¶J®XÚ½|&Mô‚ožë‡Ò+AÅ0Z«;¡u^=ÝT¶Ð:ßœmÖ‘S¢ÍÆî¹dê~[Àfư(¶ÜHHC«=È9uoœ9ãÎÅýz¹üBy<2ʵ5²›Ø¼¨~ MºÒykÖ5S†o =üMÒ3äsÈ­ÜÀqçÏTDHMm³!ÿl÷a¹åžÚØâ¯†ûY$îÙ™ñšø8 7ªc¡¬%¦øÎ=µ}ˆëÒ¸DÛ1cOœ êÙ°¼Wº ®ÿmtjË =í½ªÚÜz‰“…îM¨¿´° fZ›¶Žuз0–(IÍç-Äìµ£CŽ3˜E<‘ÇiZJ Þ"ݱ[)ì­*jÆúFµ­Œx4ìßÌû†òÆ•^ñ•¦}ó4 –~à4²˜ŽC+Æ1æ2¤Óºr[xNN@§-çqEgTqJf†qòþ€”zȱy©Ë'ñu¼lf„©Çýس—n üLìn³c¬¸Em. ˆwËe!º¨îKÇd²ù~­?Y"$déL{ôئS|¬ª‚Fè{ÿɬ‚7r„÷ bÂ\Ú°à7‘Q‡ØM¯¿1„$›ndTˆ±“b€iœö =’BòOQê™l#˜>qô¼7ØgA_W«\.,ÛE,ß§ð·Ÿ”Ÿ¯‘$hÍ‚«ˆ`Ï2´vû¢øÜF>|¿ˆŸKì±Z ¨ŽŒ‰¿?׌û+ñZ8îô×`ïk"WCù œ_±À78}ñÿmk ‡fÌ¥¼FÙÆSà~ðBÏuŠnü6Q[~£FÞÙh-Ðkæ„êñ¤+°ô’åûšä™{¶'.o5¦RSjSÿV——šjÜÔVÓK'ÝM •;¿I ?EñÑÍ™u…y±ržC&ì˜P×L•ö1nÒ·lYºJžRËó0~õñ ÉBLî•3z¡»òéÈ¡è8+ï'iÓ§AcÇu¤-ÞÞ@ÛnÚ!FR{”²6o‡I €4§*j«ù¤cõ†ëuUÕs]2¢ÿIàu!;0ÞÖ«ë¼æ´éVaž¨'Æ j~É! ¥ûë²JÒN;Ë­˜" >L£7ü±h¸GÀ5`ÑØJ{‰mèi—æ¢]î}wöQ9¾ÂΓúí"/I)8Çî\9]<¥zQîrê³×^H0©y‘t¶”FÀ3:êä1Þ<ò‚˜¼^_WÂdö¤“Ìk±O˾Çc¨ÙOÁ(D¿ËQ´­†<²ƒ3±r×’}[ÀP¢‹$ÁøBmƒèpF>0¾jËèÌþwåöÒy­ñ, S·¤qœ)Út—êÎóbJ1Éfí¬¦2~š‚i»v«Çªó!ªÆ¤Ò™¾ ¢† j.Zï2^fU‰ü°Ñ5´÷mJy·Ûˆ27ˆ îÛÕˆvÏA"ÂQ°£‡Y®ñߌúãûQ9K/’gÔè˜C3ˆÍΔögc‚«‘;·„o)ƒd–!ÈÂU-«Œy?/¦øs‹¨Ûp¸0[bÈ>.Ê“ðt,L‚ž¾Ã:@–ꉺžâÖîAö°!’¸¢’?Èî¥ÐH P§R=XÜ'Ô¨ÜÆÿ}ë àCuä6ÇBïăSî {4Ö¶óÈâ^Ä58¡îkÙÛ<ÞÈtð‰ü¯ƒÍ¸þ:rhP‚¤iZÃo2 z™õ ]ºææôôüêëv±fnïk ¼™ .‹˜0êØÏañÇñÒ-yþDÙ®~ÔTÆý¬¥HÖ콈Âñ”®#/ç럋¶(6pŠC½¦1U÷&Œi5%|:m\fÁì~Hš(ÑÊMfË ÿ†£º®Ä 3¾Ñá9‚@‘)ÜmÒ‡h”ÍŠz ̾Ø0àŸ)cy³ËÌÿ¨­ü‡á>¾$ç`˜KZŠG”µ§¢•̹zÈŠöí‚R’j{„‚!œŽÞ‰ü¯–QDú €Î(ùO*ÑúEµBéD`Wοޱ´ÖÝ=L_[óe¿÷*2&ª›ZeêW©„”ù¯:ü)|Ápê„ì¿Þdú?޵µôŽDHOÒTâ·4*}øJo)áœGç–V¯W/‡g‘ί øÑ>TlöQ É©öi®ä~2„Òv—¿IâòÆÏ?öÝ·aPw“Æ•(#Ƃܠ¦í®yËßg‚×Ú¸å_—†ÞóδçÐp;g!LwÐ[} <ý—cc¦`û(cV&^a¡EDd`cCKÞ³—R‹ü|§©ŠL°ûDP0¼† îÖ â´’a>«tö"h_ìÛ%Ošb+`Dúþ±+•íšiâaçÞ‡Lð-o›“vd¹3Õsgšá~Âc¥0܆ġe%ÕÑ—V>Ôî–÷ó=µªTˆ•!t•cKp¢Ÿ;%Hÿ)¼D¿”[êÊo÷Õ2êuÂ\•YºãW½]%ÁŠ8ˆæ æÔ¶S,åÀO[ü9ƒúY_*×[½Ç78Åîw‡è.ôÝÒsöé–™AþbmjÓË”q}MÁŽ àóλzÉ?ð‹1{²!Cš‹µ/‚á¼ùSo©K»äÏŒªfíTqHWh²ž}Ôq ¢¹€å•¨°Y`pþ·õà€çRKDéòE-(›¿,KWgÞE…¸»¯NOÌb…ÈÈ~sÁ®" Sæ¬D>yv˜Ö:NbèÓ®b0ÏlŸÀ¹«ø{*Às^„„Þ‚}PŽO4!+åð =×/X›ª´µ|Xïp;nÈ…kÍÖõÈ’w†}€s3g‹Ã`“Œ-=+št¡Aó{5üýfðKÂÊ9Þ“©Õdx6ƒâe²Sa¨+’ï%IõÒuYñÚÎ&"É"]'<ü5k¹aHùU!ž„÷8€N²Z¯ HR˜ð,ZēÌïŽÜÅių ¢áA%é>?9ácâÛÖf5(h—ÞÇ—,tri¿­ |<À5Óóƒô~äm\ààØá/Q+'ú X᥌|¿áÛ“•¨›²R¹ó¾ºz¢ÌÍ…£[¾¦LõÊg­rc‰zßÕUæ½Ý"Öš.ÙFå‹WTÖ6œ©žwÚßÊv°ê(ˆX_‰FjÊþliÑEÙ ˆ)jÁ¶5‹èæ>ß™OŸj.-Ù€Ú €îêQIÓü4ÿº:¦Ø|‹íó»VÑ•A³Œ,Ãs¢®H4Lp¿{ñõ½!«éË`^©¥äÄÕî •®xX§’¾uƒlœE3£}x“š&ÆNÎ'o»ðP­ìêê1) ü dЈ]黸ÝÀ¡wg$ð9” ³;å‰IÄRfîJkéxòjzè¤Ï³EY;¢#6V ~ÛI““:¶šªÐ2ñ›ÃÍÂG¯»ñVÚǧ º 6ò7ä]F7+ZnQ~oÀìY uÿïí­úLçÉÅZ+k¬ÆN¹ìžü5l'1—ŸÎø£²8Lký¿9&:ÇæhÝ.–1vY•Ù!õ Z{òy^¦ü4ÿ¹=w"ŠjÊmš|M¯›AbÐe=âBp,•¾!î¡ #nç³æÎ¨ï§ŒÔR1Ý„Æõt­ ”sQMàÜ4Ëq§éñ,¦KéÁÏaØüíìJ¯ "_)IAÛ |ÙJH»–R¨‡"-í£ÄÅe”šg,ÏF¿Ãºç½d¤LÚJWò5e3™œ`ðN˽\k„Ûå—íçž%oÆ _,"s§¦íL‘ó݆þ{É2P\Ðúšp1,Ë ‹dÿÊœó¼B+ÌX¤ñˆ¡^ÜÑP™5‘vÖB.…ڭП(ZÝ^ž‰šÓþúw[}ÿr]Í÷­Øæü6[û 7°?Á# äš{KŒÜ™”¨Ë>8på>PN±ôoBh…‹ÏÀ£Õ¹Ñ\¯öTÔô¥¸Þ;2;kÛ7ƒrÖ öRñ”äV,æ•ëj$†ò‚_¡h?H’XßùB·y›åª›+®DT‡éÇÌwÞùçv ÁFfµÞ"`¤6ý  [„k”°D~>¥¿e µlcã7µðŒiT°ë–û_ý$±U%B`o£4ø¨«=ÂlÎQ©‰‰þ2ò BQwÁ»áyØÚ­%vñ=¾H tÀçÙpSX¬ß È“‚wâ%âEú“ïáaš(¦üÆeq’°´ŠÒA2¿ÜW1lÏ0ŸthFAÔù•åÚË„B#I÷£aæbï‘A`o*öÜvBE Þ§Š µFÆzböžJ¨£ ¡®jÜ]ù…Äž¢¶¾©}çDKÐB(Ç*LÆxòÊP‡È’>ŒI!æíD°àù+ F‡ó€šøuE3»T+¯›Ì•, Õ"–úbSçÈa0ÁˆPð³žÇž¦#ð¬c«bp•·0NðærV‚AÛÙ!9%îŒÆô”=Ÿ¢_Å-hÍ•°ku¸ñCÆ¥2º_#šcš$ÂéêßIO˜ŸH‘Á!<óÂæ­ c±‚ÓðüMXˉl"¾š«ï¡˜Ë`»€ñ}k~ñ!i~?÷NbyDëuäá…œ§¾5↠ý×ìâž‹© ,ì"NØw¿é)nï¼Â4MÑÍlª¿¤76õ¡¿yg={¢"híÊd®†7CòÕLj½êá–¡œÉ"Ù0å›6Ç,‰›eê¾’wX–³:7BÚ€‰ptÏ–Ìv±Äëgðy¥A„­lc¶xL ƒWoÚ³v¢»ºÿ E&òÔI§üC­)¬ý€>óë„Ô`ÇÆâíì”-!ü%FÃ4º+ü6|](àž8‡g™\8ö˜T掮uÊݾço ?õ浕I´Êf£ „#䬟 ,Ao‚·SÙ¬.wQnsõýŒ$–öV-!ábO „j A/d*;ü•„}$HÏx{8ƒ (†49o›bË ºû°B`]vß)µ窈q†ðT=è¢aÇÆaË=Û*hM¼Pn‡e”}~~Ué§â¸È]³£êö*[—<:lVÎù~q1dƒEy¶[—db‰8…ÁVÐ&j„å2®ZÛòT,¼ç Øüaëgávõ ȽÀXÈüL·ó2Œ6ÏóÔ~Æz“Z (æ^)ͬõX"¥Æ‘(/DÎé Ãë«ws•5/]aüĈ:q©£Ä”É«-&ñƒòR÷);JCùÛµj¿ºz"[ } k §HéÌ»ÈLöUé.> û¾ DÛ–0øG¤eÃŒ£îVhÂM0=z»0ˆIúhMÇÀ¾Qâ²À? –㨋QS"-zä”XÂBè) =ww‹š}mRK!Ü3Þ£FuöW†¾ž2QËÁ+]®¥”•°ºŠ‘–©‡´/ÁÄÀfh ÆûcQò¤Rüñ4óÜÜñ0þ½Ò\µ5·\®Âe…2?|Ê‚WÅ:¸?¼˜jI*ùÒ£\S÷@°™ÖΤ$I¡’oø ˜ƒó&ú©ÎeiKy?í/๠2x×6ÖcaÂP“°Ð™OÁWd鬄•Õy< õ fS…”äÖr¨)à ÐËÛxnãÈT¡*ìžÁe\š¶áÐ}5öß«¶o…Âd²ÝÑ“SäÂUúô_)a…DX JFN§Ø¥~WAoŠw"H°âÌ}š\ÿ1(0b¡tc„ìñÝ`¥ÆŽ!›ø“LH‚¹øO™!¤wm̱2%üM(ZÆð¤H›”›4À+ý²Û ½!Â>¤ÅÑ{~Ü¥µñ¿ï¨œJÜF ‚Ýù×_áÚc—ŸŽ¸¢AÑ|(uñ Ç¥3s®"á Ó3xùUË…ß=Vó9f©Æ/wxà4Ž~ØÝ»éN—*v¥(2VÄ \Uã“‚G̱šá?cYégirŸ ¸Î¨ã '´“»¡€r›?vÒÄÚ)abÙüˆ4ܧ§·p6¡œ³e(1HK¡˜-°C½&c?‡‹¢C‡ÍZ»Üïà4°ú¾è˜>ü{}ˆQ·»cdÀxlLPÖSü|¬ä[™è§-«©^몶«V-c ¬ —U™Gã"Ñ%m¾&å]6<þç).‰ßŒƒ%q…µ^%E &…£e•ÝZ—]„ M¼+ +%ãç-¾ô±9S_;uéÙMLžñ 7*ˆ\ÙÖìna÷Ÿãûià"ž£)­â | ƒõüþhídø©:VÕá(Íô‰œý3_:;q"ReðmÁ©ÎWˆ»jdQc»•ZjÀd„³H‡¤tÿ¦«£«(ÛFŠóï_.c;“Ц%ÿçÙ ÷ÿ8¶°Éi½%0»yÚ4Ô>å¢ ~‡)ìð¾.ÕS¾Ï¢*«fÌ%ZŽžÎ+‚×}1Ýyð³S <Õ$Q ©®dfHï>?Ü'Æ3£è¤` DW] ÁµQ…è Š–þ‰˜±E–Ò]c¯ „;V×!4šfEðOêçÄqÝS×wĦajs ”dŸZøKºGUó¸ãª3Ú/•0Æ(ÞbYñã‚ÀˆgÒò¿Ò=]¥íÌ‘¹A|X*ÿøÂŽ[…s3OO­3ÿ½Ý³šJþ Ö’fš¿'åÀ0›À˜Æ@‹A“8f”SO ~ßµ\ŠAoé"B¤Åqïéù[‹ Ⱥ„Ú—°ÿW$­Ž_»pU0Ú `×'!E¼¥Î Ã*‰ Xý¯'Vž‰þìÐ<Ä4®¯×G4t…jƲ°Õ4ˆÜötF ‚m…±?à´kX­C!DØß×)ÇüJRÝ7$A²ò7 íçÌ[Ÿ¬í†ÆÁÛœð‚©#K]s_J‡úJ2Ê^D©€ª™Z”‹É\•L1ö¦@ §‡˜˜ï ú1o2¹„°~öBÕ$âížì2ÀµïúÁÀÑÁð7wˆ {§>àtV¢6ÛÅÚlçõ)ø¹D³âYÞ«ÝBs8ÈžÅm—Þ’­±¦OvUÿò)ÉŒÐ\T’‰E™³™æÓGD’¤8K)Îh1ÁR‚ÍSF݉Êc¹j£¨o¹jµ†ò˜¥5ú+hVâÈÜÖ±ˆúnÑxøŠNüL°›»ZH½d®K¸, ün¼K‡ôÇOÈ3‰TÖÓ†':Ë5›º«Áæ”8dzÈô”ëá8jÇç¥nyœ°,˜mLNõ´Ð*´´z*¹ýøEÍëzø +/G¥çkJnL᳆Mäsšœþ¥®!^Þ¨j«ßš€ñ#1Ʀ ÿ@%?DZÌìW®þ7èTç4@ödsµø|nˆ·h™¡û‰Ôn!BÏï|ƒ£¡Tçu!±PŠøoȦ¥ÊòTl€=§½Ü¡Ôv‚kÍŸ-$Ö_4ˆ… Ú—<“ëüM€Ûþ»4„ª6QŽF~²ªR Ã$½î\ó¥šþ_ô²Ë(`ˆO™*Á¨-e׆-xÛX1±ÚÑ¿ÌZÚ„@²–õ‰/ÑÇp+Ö¨ñÔfµyÒ6|f©u‹B¶ÐŸHÏY}d oû;Úct_MDÇ-þ\÷Z[ß’w†›5P`ETiQ™çªúàÜŠ)±? ÄLÇ5×uÈé‡o¦'U`©Ýëd)™Iu°Ón[¾Ùš5'§údFÉ%s+LjVƒFœ˜U§ý>ÌÀˆ>ªŸ9½W#‰&>ÏöåŽÔ'EŽþÄŸüMqýC›q(-"Rkä¿„7²!_ ))¥`ÔÚ×®VW¹UñÄ-8K>´9s' QÜŠ‹“¡î>¿_C+µ8P§¾7?#g“ˆCöû¨ý–ùÒ—ÁbcùnÐHïb[«㡦ˆÕï R°…™V¦è0}AMn€á»VÝ E¿iˆ>”¢»(ì KýgÆàÐyK5¯œ¤ÎžòkŽ=Ć™’4±ä6–)õMŒÃ²®Ez»]W•!˜¯„]K‘ ßO×áHšôÓ‚ZMmÝ[+ßíÿ}lfEÛ—ÕŸ˜üLòÖ>&΀§Þ`°p»ì(Mš ÖYšçøoŸfnTÁ°Áå8Na>Z]|¿tc/ýâì¯Ê.ÖÓŠº‰‘I®gKΙwžÊw\ÞH¼ðªD#¤tlßÌÆiåÝ=´ìü^@¾xPžúé~¸Wù0³cÆ P!â44I»ÏÔ?´r†š•ÀáÙº´q£c^àmrx:¯.MÓÆ>±€Ç¨ýò›Håë^øi ÓôIŒ6#l§±‡ßkþ­qˆMYPÖ¾ fyTä-ÀŠFËŸÉ˵ÈÝkú×>&2äü5uR-e|šÁjâu±1½²éÌ ÆK«¢Jú’`C™¸©0“PË&w+XŽÁ=º³lÔ O´ÿ’–À?—ð¼W+Ÿñ‘Zç|³„+N/eô~Mpíjÿ»ÙÖÀªF#᛼ë¿íñ(ï0övÕ íHÃ, XLè/M¾jC¢”e}†ƒsg<Ÿ“~ä?Ç¥P ÷y6^o1fíê>¦SëØæaóì¶a$>kI3Éç)0…›õ¿ª¸_Ÿ¼îÛ&_9íò·Än}ž=LŽP(L¼ -q…'°5r¸ˆòõ£õ§$\üMsŽ´×WUáñr½ÞÅàÖf!²:pŒêœÁÝ0KE m ¯âIùDp˦nWHÕ¢ï «ð®½¢ab<ó3¾ïúz’ÖI6{nôvªíÎ{%a‰XÛu=‘ñ¨å! *k[›ÅŶW£Û¯›ˆ¡sŒöPˆÎ|èS¦[U¶ ¤&á§S{²l6uYŠCcëM¶¦\ñY¹‹“¶á~/1XâBOQˆã«Vo©œoí ‹ö»·{³%?1 ¸™X}ó‘ÒXQxå-ð 7 ç;O­ÞÉ-ʰt\Ô{ü6N—¿Åð°<4âϯi}8fâáv¬¹Ðû©0¹Hâ”lØRÄâM?#Ú•iþ«xQ¸U¤+’Õ—±­ö {·€è¢º~iT{$NÄ“§2€>ÏjáFCÝ¢º›ç–tP‹ÝõCC ^ë'ðG1êû±9Zkï"`¨òßÏý4äÉlÀt]×wj1x)„­*ƒî¬Ú½Ü;ö#­è¢³( ˜_Ü¿þXm ùŠ«ºbðòvÖšµŸ!C±²ûÞw7PŽÑ®=Jä sLôÝB­+@8à$O8{ëÖ…ü5Q®Ç –Öµ=‡ik9'ã*2´/(÷†G¼cf…7à{)¹Üp[n4M»nS V§¿û˜G$ÐÝ>‹þ¦ÃÞ§Úú­žƒX4¹•öºŽÌ¹3zTQvOüÜ‘ŸÞ[m–J<åû6¤/¦M]ÍÉkâãÁœänÒeÓ @ÝgŽ÷ÏÙHíþ×ÍcrÝûwä¶¢yÌqá ×@¶ì'æ·IülY#58èp Hf—e ¤‰?®ùdOµÊŠ„—Šà(x0iñvƒ=xž?:€á¬ÝØÛl!”›ú¶|g_ü6=«ÉÂ>.¦Œâ÷¾2Õ†Îp‡)µR TÓÊÎO( ã °g Å~¬amm¡èÆOc7s²GÌ:ŒƒýÇqÜ[¼ÚÞ9^wO._¦Š¹!|LvÊ ƒ./w·-ä‚67rê$AAŒzüò|@k¾ Z…p|/Phœ®§²ºº&uªmýü„¸µ°±GóMÒ¿IÖ@”L§nÁ³ E–ÍéáÂp%ĽFœõxÜ” ñVÎHVû`2ø7¹üº;áÈ7_ˆóĤ㠱”¶à6/„¹c‹ÏŒÕ 5ã[$ö¯;d#ÕWüÙUh|×¥_ôl.$eô¢TÕ¸ÍâíL?1ßHJ^l‘äp05b¸¾7§ÄÚ9\=tnÏ™¢YþÏþæNÈéÎîg‹NlAÂØmíÈÒË{aÖ÷BŸ§Î“^e¶ø€½ËÏûÎÙîãî–^âÝÔë!ýüõQc5À¶†4Á™FÀ°\ëôÚõÑð,v6¶‘*bÒ z^%äxŒ…«¤@eI™Ò N4¢;ÔÎy‡V«w:-ݸæ )]–¡æÙØŸ?áÅr ð†ÐO@°ÂѹKmy’¬Ž÷¯¶ÔŠùH¯¿5·kÊ6hÝ[s!!ü|®|áâZ­<2m¬nÑ™¾³¬@¬^Ý”~Fê¹Ö¸Có…öÆqžb+A³$aìÉJr›™ÊøÆÔÕûÎežŠj…Hê¯!³F+©è–µ¯4íü}\¢ÅK·è²½S¯A|å5y[ż7'n¢w¯?Ò²Á·ƒ¼‘Ïn[[(—x<ž²Ó…»¦y£]®0Þ®M›s O žüJðŒ …”Øô_ëQ®;Ë\#Wy<‹Š$Ä Ö°£ƒN‚T÷☿ëåC}&-¥ZGM]Ú³¼˜]«D:+ô‡çÉ*6ûƒÌö.ào3¦ä¦¥”ù?ƒ†°üIH‚ÈI]“¯Z1-ËÓ ´æŽë£S9c¯¯ösæˆÈvi:éCU"HÕK)tcæ¬V}ïš©Y`îQøá3ufyó¯­J%þò©Ÿ¹u¬™ fÒ´ S’+23úc isKó¡xfðý…p¬kèiEý,=5îS†£]/ìÖ>峡!–¢XÕ¸= O,bé$­ÄÎc¦uÓŽÓ^XËÂÐ# •F¥6‚}ÊþòXGD$DS×6ô™™L<œß€UšVðwÈO‚®l˜ÍÊRÈêuGü“ìµ.j˜ K޹ü„‚oæ =aاÃ<„?È+ÖëÝÄ–ÇE‡Ê9±%© í/.Æ[Þ•ù¬šxƤœ¤¥ZëÚ,ÙØ 7AŒ´uLq–yɦY^3&jJ\çO¢áöyƒß…ÅéjÚ“»·Û‚¬¹üP&êØò¿æ¯Öfáø7øÜbàëΈoʨ_OÙ¢WûÔ—ÝÕ:?%¢­RwtHÊò±éÛ¼@$§&Ò‘àlÿî¿H€÷}p))¸üD ¤•²-ˆi0çÖ“@×±eo+gFó‚Ivгü™g"8m€€Ë·„B¶4ºŒ®¢=þ¬C8(ˆÝ–¡fm)VȦ CÔ­ÚΧþÀ°jdPUG°uÄôßNÏwœÈ[℞Ð!žlÛ–€1¥I@×C•,6ö7þÆÝIpZg¤³Ê±±gÐá‚.阤`nTÕàǤõG›Æ&AáaV;þoOqßû”#§òË>‚À• /E+á”M2+¯çù Å*ÐÐÉ$=ü5JvþPh]Œ²„é뜑³"l!z§‰Ø/y(0Â[eZ„-–JÈÕ>õ>H>p€¯ÀÌ•¾R]R¤ÖþÇ[ÿSz7>8 ½zc 7ÌFùR"ó3µmBÄ´€õ¨b4æ[ß/ùE¨/ÓPž×†fõ»÷äD ‚t‹"Ó–šý‘ZØ(uǽǃC.߇š%Æ Ÿ[ ^3=¸ ‹‰ÒÐJ¶Ý·@oœôw’·\4{p³$`&¸"¥v;àOf„ëŒ%îm®Ž€'°Úð-P_hÏü|©þGKÿÍòQÊÀ l;‚d{âJô~å}v׈ª8~óÆ-)—"o(öÆ /å4à¿Ò ÄŒMÌb{¢Éü _T®&g¯óDê#öФÐì2¤0!³:h#ùdÐ$wX­OŸT}2gÊ÷Ü ³Es¸Ç汙ήÜÓ?÷eE(à|9Â` rOIëÚ¸ESÝ:nœÞ­ì+m)Pe7H´=&¢Æï4î3ó.‹f*Ã:”é9ø=jë`qvÌŸÀ„²j-¾}äåÏ ‚""DÏ”%@ó–…}ê{ÂÁÛêOøï"Ú’ÂåZó)£‚ÀEÃyíóˆÜÅw˜1웘٦ÇÊýeñc[G귺ϴ\ŠÇÈR¥@PbÈ ¿Fá(_öÃ@ŸËïÒâ¿ ‘ºæEÑ­€Ä<·8÷GÖ.Q$ѳ*›Ê?јҢÆ#ü}[]–BMâ_ÀK|¾A¸ïæ·žÄ3c—-}õ>:ÁÕgíÖ>D¦Á-òæð\—h¥b_zjXT@ 2{_„ÖÆ“‹¢‰–:@ÅJ‡¡‹?aؤHY†ðƒuê²äÕÕ¾lŸWr_[Èÿ£vA¢).Ÿ Ý µßb"eù„_”§ò–ñ0yýSi€@ô†›¬cMÚ^÷¿ºÛo$ÔÒ»H¢ëkÆ‘šk:Õ€hx§okC91ºAõ6ªåµÖ9èÿ‘]‚z»#(PM¡»Á·ÃÁñªÝUN÷‘CŽéÕÄ2gߣG _Xb’!²8>”¢¢¼zez¶˜`"·1G®öÊ«˜Ö–âGa i5´“©\¥^<•?pº#mÊ6—Ö9™~1žZÂÔ‘Ê´F±tˆ&¤ÓzÖ©üo¶˜£NÀÜDg”hСomå–ù¨3ƪðWÑÎì0Žß•¾ôߤö>däsc‚»ÃCYØ‚ÉK~lIøÊf¯;ApQì ðsÂéWuä­~úoê£ 3pIÎÙ•ÙÁéÐ'D‰X—Ë(Øw-‹ )qYûòMî Ú&ÓõØÎ¶( j"’’ ŒÕ8Në 3ÂG×Χ!ƒí¡<1Í6ãðWqÂðÂüX¸3w¶ C¨†âñ‡È íS£ñ‚ŒÅ¼‘Õ,`ßqìF­\EnÞ4–R·á¹Sôz]Jòún¶ÏëkÒ «svq$tÔ!DSÕÐK£ÅðøUT`ŠÔ|›"¼à¯ªñ¡?ºÄÛƬ¤ÜC«¥Î­€¿è™¦÷'{õ…ŠøÆªÐy°Ù„ë7ôU%ω»Å—ÏÕÕsÌö¾%¥åÈõîÁYx8}`Ÿp ² |:ßA|-­¾pj툷Lò™m(ÍÏ’'yÐ9  .½‚© áÃp¢âó+nOßòlõZàn‹£A¼· ¡+DDü5h#Õ·3R­¦¦_ñã×OÍ}tBRXb\ˆUNÖnˆzÂT à§~ ˜­ccaß Ä¨Ñ™u‰\ô…Þ ÷ÓÀ°i‹?œ£_Ìy5³)ØéL©S²ÉwCA¯#/†šäÜÔ6óD Ý¿R¥R(s4¦Uø°$,1àvØÃL§eæ14l¤jd@Þ¢hÃ×kì's½øÎwdö"C€ ‚~Ô‹øïþ@µaE0Ø]„׫¥}jà„‰iûš]³Ò+ZÀ1{€’%-G,f‡Û Í¡ ‡Á.)‘9mEŽî&§üßáim8Øûì34[ÓY’ŒK6<üM!zúÿ ùŸd•‡¶¢„!•mÕzÔ,ˆ‘©µ?`Fà\Íl‘Q¬ƒ“CÈfßw.Üyâ¥$*õ8W©dµNÃÜßè~ŽåaÙ¼Îë·ƒ: °Ìéèž­”9é ðgÇ;ËaŠí䜵BwÊ^tC”³€½üN¢k@›Ýí\±øž¾ÈAXŒCÌ•(T B_0¾™ÆäåÝ*g>Pwg²³áçÜ2¸+ºªE×¥"ë!dtxt…ŸÐÅâåû½§xõóš]?þšü1!Jÿ§êœCZ£ª8Œ&“!úˆÉ©b_y櫲m_!qr×ãǧÃü6Zý_fdÿþš¸O˳)Íóάáv[t¦É`‰ÏŽà¤lD–gn»*q6r.M?ѽY½Îó„.´üÖé=†\¶L¡`'ïØGÒøcðõÃj H·ã¶Í_7ɹPæ$wHBƯ´ïVñjéàþݰ/=ú‚iÇÍjFaIޤeW.LžRÖÚî¾ ¯>É-CEuÉ¿Šâl‡À¢ìqú·ü9â–8†&Vä9o@ÞgëÈt!â­T$^"K-WªÎ¦D²t~¾¾ýÜŒÙUiq>I›'°FÚ¯)Û=ºÒq>Í ÷1Æ/¨vœ×ÒÚ¤èñ-6µ” Çü}[µ¯VóŒÎË]piˆ¨¤SuH¥#Y©]Ày„¡øËzBv»ªÜ£ q^´&-~Êök`³ökË6Ùaá•Å$ób2 þ6óªcå6 _"I`P´Ì{H_„v‚Õ >cñÛH« á9y_g³F³éó°GuN£Íú†tóG†¸ä¾p@ôTõU0@ÎTpl£ÿ…4±®¦~èÐwH{¸,Õ™¦ðE I0h3KLóÐ,-k‘ZçÄ;WµˆÎzG&ߟ²S›q×€ß}W‹vÔH Z8MbGR±˜^ €ÿ)SSM¯ú2¾¸]CôüÙ9xÓ×Î=ó®¢ ²ÊÈ îDó¦­k‘La÷êýN•ÆqŸ »ÍS H‡_ǯ™ØÅÈ\ ª û•€Ü:(J§Òc"ûY|ªÕkÃb¶àeÛ¸®–ÀAEò¯ò±Gæ>=MÝyÀ,½Ž §ÅÌ5$ã7€`._rÜ­m›Úi-ŸË5@ª@ÛJå§R #s=¢‘[±ý'¬'ðwºqê¨ô—ˆ}Uç} 4$;S–Ù)æÉç@Å+DxÑž<%lqbæ8¬±µÂlr›çímWj€À4ȸœtS>§ÞköÆ$(°¡ÁçŒHܳüÛ}Û:XÛÖ¥>¬ÇV*B¶† Îõ9Ä–l¤ã¥-â»"ð"\hðNVù§æ–M)+hi%MÀŒŽ€~òsë¶åæA{ûä—˜Ž.3M²µåŘTÂyŒ©a©uoU^ŽÂÓúøSµFJÏ“A„8ùeVõ-ö«/À®/¦¼;u2IÏšîÐÒ]& zõ½ ^öþuOÖ‘€ ×íYuxBBûòjÙ) «åðaÆf“€~µGUJúÎFrÇ«0öõc}ú©ãV¨Ca µY ë{Î{ œÃ“²üÛƒiB?ï wÓ—`’À ÿ%¨!Ï-áŸ5²0wÕ ¢“Ê|Ad¾ðšö“fº H Âu•2•±}fA—­×uÉu•øDBñ²Ð@¨C>iÔ½Ágõ¥ñ¨kO_ÏAÙ–;\Çê½Ôß‹r;ZYr-»qed{žéÁÇû€Ž>„"{'‰”ë2]ÃU6%T[Éû5 Rã]ƹB`â=%Hpb›[^ú8àêfÓ’òyXî`ISP¹ó\‘ø1"7µž¿Ô÷ºø³¾ úD„KÇL ´Ôm¤Ë ?˳üÛ( #,Šú}0[{oB0Ÿmvžó¸7èYFYPqÒ®K2?Ã?£ì³ßõl°wYŒØ£ŽêÇðz+DÆ]9Èn ^SõVK¿êÕtž Ø8xQšøVE•« ÂwZ2boßÐî´¹‚þ*å~`™—£¹ËxÅ»õ•~2¶ëzöN[»‹z ¼¼þ(’:¡hu1Ž P/ DDÃeþ·xO›‰ûIØæšÊYp¢K\^·ßñkåÝkË'k@Dè7IoÀs?×XӃΌÚÁ£Æz&Tq–BQ°  Í#ÄéÐgÛ@E„åÎÔJÆ”IHÍ‚ð~å¬{ÿ~"”Ëd3Hëáû¦.ÜÌ®¾ åÿw[]OL…´9õV²5×¢Ú I3+XžöŒLj™¸0D‰s5Ð7¦#»s2즇͋‘ÎÎù¯CÀÅ'’{ÖOÄæéUψsº `*اi`KzÕ¬µgßõë;u=Ì~ûÉØÌF<3F&åžwO!|²%ñºXÛ3ìeä þÌ=²J~ˆ I<§bsz€ó5³rm¬²m,Ú³Ó¡0€Í4N•¬ô°‘ü¸äÇ pà[¾³ßñ¬=¼`ª³ü°!ò‚ÿ{àMÚŠ|e¬êóפ þµe¡ñ`ÑŽJÜá8»&s¯TÛÔ€OÍÄï{1O¥Z g4¨ ËÁÐ6mÓ»,NÛÎÔ@DŸ{eᯠÕÒƒ ïV¬0> )‹ï Ì>YNÚÓÓbŽ{™ÉëØy{™þH,æjŠöé1“¹–ÏË‘ ·¼z6A2Ú;™%ðŽßqÈ•ï™>ûp}eSÛë\µ¡·B~‹3¤ & av5ÞTu0ÀA¿¼$Ë£+ÈÞ’$ ÆNFÆóênîèÒiBܸ¿¯mÓÆ™Ñ~$R×£#—B(õ~ ÂËù2\[†µp›¹i¹ÊB W¿Œ·ûh`Ðñz¥‚(½uÓÎܬjFç?ƒm®Gã£c”˜u-ø ÿæh[ TT©—á¯ÇS†t:ð3Q>Þ£ðh-†'öX¿"d5}õ@©ŽöñoqÚxí â^dÄš#˜vg¡¾ieû-Ƙü‰%a£MMå¦m4 hç’Ë¿SGäd!N’™òbÒ†ÿˆÛKàt+Þ™W¨—’F-¼‡©˜ŸiÛ’w`ÿÁ‡ÒÛ‹A;x³MHÚ¤«R°°éuƒûvÈâñí¬;à‚ˆb“$Tª×Ÿ%/Æ3Ûõ$*ˆü(hœ|åiÑk‹@«ó‘9AZbÎ/²±dCQü· DÍŽ›agLè>S, 6*D-ïoj™‹FL!êu·_Ï4 ®ÉG5_e¾¨vÑÊD¸ºÍÅ ™ n·øl5šZ“c€tϽ6̰ü±¢ÿ3YÌ¥k \kdûw Ç¢i6Ð#­‚ £*/mqrQ‚»üèî“ý .ÆÙãf ¿2?÷J«(ïÔèÛÆÍ¾(5l}£jÌÖ(ÿ([â?&ãBŽ–]µe ¼þBy úZg—ž-·ÃТIP¤¹E—ÊÔ ™R#SÄw´;B¥-¡’~É‹à(-ùŸ>iâ›âÍ•M&€¶aý9 ÂŒÚ9Gç) éwè?ƒÊ€îdAa(€ ˜Úº&?ó‹d8”¸Œn  P> ë)‰ðòÿÛ)̱êÏü±éÝchÆ O"0ò!ÂI@r>‚¢Œäé¯V&Px0WP¿W4? ©ºŠ±<<$¿º²P»çƒJ´KŒÅµ(.²&>u||çM=Bc¹‡û¾Œtæ¡ÄÚmì ƒ*㿘Ì;«íÁpù(l­ =C,¸3eWåΙ»;ª÷2² 1—¨"£ÿ¸«¤nˆ\Àg!+0Äúºx£I#Ùûú‚ÃXÕP÷bᳬÙ÷%Z_"eÀ`²äânA⸠Ùê/ÁÎÝÙîŽG—¸¿^:¨dEäl`É*½•y Pü._‰*]I9P"^í#äSz[+NÝ­¡ß;ÅGïÃJ†C-»0õù¯KŒ¥I<¯åùõûðŠàüŠ^×÷çCEz|â RøNZ†EîSý§Ç6Çž—žîA…¹’Jv„‘±Õ²Þ@ #ÃÓ2þ´Âž3Á…jË.z©hâ6Ù¡•»#`Iz“Š„‹ÑІÝF†Gû„ËÖ~†DJ1gÄ'4¨½¢vs¡}´IÓÓÉm”ÄsEæÕ3nZ)µÏÑò­…½æ÷¾ûïøÅY­ézÚ8^ÀöF.yµüM3ÁêÏŠ•-7ÞáqÚ¦/Š››7=?/—3›ì¨ùïtAñé˜Ã¾ãU?ëò¦2 ¡: S…³ÍEÇ>‘ñÐLSnþàÐft¹Z?C¤ù™˜éúOyKãHù²!ñÿ?ۥĔ€ö«rOGåXá$ t U*ß1h¿‰R×o= ½Í«? 7Yï121%ÚôQ- ã© ØŒÓjÝ™N w­­ŠÛ!Âë§«•cèSù¤RŽ!O™X>uzÔÜ}^Ûø'æû1RBÖF~Á‘ìeAÊdCü|¨›ƒæŽX…¯¬xÓG­vÿ‹þ6täiáÆnWT_»ÑÄãòÉ×4õ…$ªõ_˜NOÂ$7Líœùþ o¼H£0!Þª©ü[˜Rµ’` ‚N«jaüYÓäGXx},ãÇE™yAŸa¤xw é9”ácr²çæ(êÝs¿z÷ ò–µ’B¡ɂyäÇTït(#ãÛ¨¸î­rÁ¸³›îmLˆF˜—XŠá¸…­bÎ ôwŠa† ¢¸†±¹ù¦³moæTWƒ"'èñ\0u8biê& .~eÏŒ¡7¼¤Ì ½Ób¨,‹:¿v J5 è…*ÎnSØÔE]·ÙeJð˜9÷½J\j²ßDša¤)dpi·u‹p× ø¨B¤XÂò¢ @ù®Zª‘ÓoÇ*L}=†ü}aBì—.{e¼æq²1eeBõÄuýÆïÉË}’S9ª>Õ¾u nìSé©ì¤V3î m¤3³æ¹fÚÛÕEúU ³6È7ˆü£?Ÿj9 ;"âP§`)nf#ЛQ^Ó=÷F‹ye ½"òäbLÉ C=µg¿L¼ Ãò6\ "2P«~¦Ù_Ë® /±5*Ë9 >Tï+9Qhf¶âºaÉL¨ÌO3ÈP•ë¡ù* aÇA¯gà­x ­-F ¾„!Š6mÚ왨’j!!œÜÕ^ZÒàðógÙÇUû¥ù±T/ÀoW{χÝÞï.ÔÏ%1S†ŒXÜ‘„ý{Z€ä³úZŠÍ…OL°u–ë¤é¯íÙkô{¿.…„EÕì 1Y‘2ÑkGÊf÷5rYz!áD/†sÀC$ôôX³ bØs€jï÷>u‘ft CÉUoB×iHûÃ3'D‡nxéŽ ‘ºNÚúùÞƒóôŠzäú®¹þvëîòÌøöOJgm%~•aÞ݈3i2¬=—~ÊZ&kPPRl× åØQý ‡µ52Œ]Ù¡éZÍL‘û(6µŸù³«`º˜ˆØ'»Có©É$+¾·{rà*Óö¯Iüƒäw éâÄ cœxl!ëÑbÀ‡Té†pgΟôŸ•vàmø“e¥uׂÆCVeàj%¸Œqº£ ˜J)t$/È´È5®T¬¾é´ à—;]èÎL<ÆóŽØ2-7+iaZ”*/ÚѲD]ƒÆ1†Võ):ÀØ8¦¿rÌw£fØyA ú¼YÌã,6$½RòÐ(©PÖ‰ þ9Zô?èfDíŠã„'2 b€·jgÜ-š°{þÓ›â4-ÿš»'AL‡øŸ»*gÜñ#7Äzj0žL¸n‘°öˆÍ \ç_]ˆ^ÆÇ’ŽÀüñ2‘ðLŠÍdU«uÃmîšz ¼Bƒ…BðŸG6}` OëG®vaì¨PŠÞËÄ X¾úµ{ý¶“–㡎K.<èÞãÓ…áüi®µ[îýE.CÄÒ-[r’Iæi*­Œ ]]yÈóƒ˜ÕK[7ëÅ`[Êp\Üäwÿ¶zG]r©:“I¤ÃÌ™b¦ëZϼ±ÅT§O„¿ƒ'J”¿Âb¶Û¨¤J])£Å-›>;”Ü÷çF·ùhT˜ ƒ_ìã;! 6Fs{ü¶7T@Ãü³^–¯„’ªsô-»°bʰ”ÙÄ<±ÁçdLŽãm¬§ÒŃÿÒ+Õ%ü6aâ²Èü@À’ ¢„¦娯…×à¹Ù-Ðÿl[i»8¾Q†&„»[e—¨b‰*¹*]{ Â¾áv §[,mÞ´4æhPý\\Ü PCrÝÇ鲇Î÷©KQ=DÎè„ÁF޶Œz1¼µ ­Ÿh–ͱZñ$G}ʬ‡^Ãy‚è{:%báú…ä$ä_˜ýô6Ájp";tƒ_'%X¬æ$ᢷEëtÒY’ùÙã‚JNÀê#)bgò¢4¬j¨Ö#)¦<È@Ó¡X¾7ܵ!%­M—˜a2‚êëø¥$f䩬l~[ŠŒm'QéGIÐîãH,žwÍÔ×Áiè=¶A}Øë­ì°€ŸüVÞ@Q¸…ņh;‹¾pEüË®7ãý:ˆ¯¥þ![†¬‹¿ÓÃEŽ|]])&8 ?TÜV=h&UŠPWùûˆýùI§5¤é¶(/.ðµ­Ð·÷Ü%”]›Ÿßs*É£ÑÁqm8#µ€õ3í¯Ÿˆ3ô¯ 8)$óq‰ãê³N{² ¾xV» AÜ©VrŠâ—½<±ù#„L"¥ofB¤«M÷:ÔŠÓª4OÄþ²¢zá@r Ù‹c¯ñV©×¾©¨•ž¬$ùC‹èZ@rÈ]‚#ëƒò𬱦ææ6ºï–ˆcS¦0AÖ3v ÈÍRý¶¸™øh`AÇÐæ9;üL±sô–êY“ê*á#<ÚÌn:»<œ…&îåN~LV¤«RÎï¤5…²R¤9úÚµèßrÞÚ4þâ–RO{U†Åb´ª-©‚/è ª¾p.$¨U¡^zÕ=³~C,îÒߊ@+üâ¶Ôû!ˆ[D†¥LýEIeŸ<޲ýÿa‰õé²×álzyÁ¡ú‹H³ýWöOWÓUµHoSzuÝ!™}{n€ÄZäþ…Ád(ȨkŽx V;¯«ý¤‰˜„¶½ü“WíÔÞ‘üçwn>¤/ÊÔC ?ÐÎwÚ2æ=ïáD¡JüJFYd6¬F…º1Ö*+†ƒ–´“Ò„õ®W g $Jx… k3¾ó¶ )É!øà­¸ÕdË,@ÔÉ(o͇‡‡EÀÐf +ÜE¦ƒUÏÅ:“Âeç-¼›0+‚'È ™jr…äìçå9qŒNY ‡w†¢†\ßåßVoÍÇï9ÙÜ/wÛ¤ÂÉãN¸hí¹ ÅãÑ*`º­‡w3ù­ó¤¼>Á3£³)ðÐ;˜¦ësÑ-R»¼ÀÂM*ËViT”9hwCêÓa‚zÅúºKºq÷x5«áJHwTûÙ®„hÕÃüLù¿A4·´/#TxpÚ.«¾ñÝÕô V†ø–ÖùÓÉÒí\t- ¥ª JEƒý… Ý`“%§ÖÌ[ü‰Ùz<; Ï®æ¸Ç—xÁ¡Ôþy$ª,YGÇ9 R'<1ÃÄ ¨ÈâÄxæ¼úòlÙßkt–qmšÃóŠX{Í™°Qˆçác¦Hv6K»J°ëAð?²êì€';aõŠoíËð7Jòz ãĺ:m<ßöÃJ572\Ï+š¶v](]5 4Z†mÜ;Æ`3Æm¶ÂYNrÝ&«f| ð•Í}§‡OggS€¿)ýÄ n:ÑÚ±Ý:ÝêæôÿÿÜÿ]ÖÞÑÝÜåÝìáÜ×ÖÿÖÞ×ÒÓÔÿÍÚäÛàòÒÿÊÿWÞßÕÖßäßáîíêòôÿ!íüÆ·ü÷ó­2e d"ÕI;q\p£ÿã‘Û†:«žøÆO ß³p_èòbî`Lðs¸BRíÿvRéZ’gÖ·¾\hŸ|úÞÄËÌ;ÜJoÏ$?‹%¨È¹þ— ¡Ù ®Éu‹nˆ ¹Ð²eÐs¤„W²Q¡§]5u…œ»˜Ç{^,K`r)‚µ¡Aû—óÌ÷›ƒã*g~N¢Z ƒÜÓeïw¡ ÿ~„•û˜ètA“cíHä=¹ë½…¤{W_ÕP¦§bZ“^w55¸Žº~~P~“Ø­ãÒÁ6q‡z}£üÃÕA˜h”²°˜Ë5œ±êÝÖ˜”¾9 ~ìžrvÎW¤mç´âÆ«˜èÒùƒÅ-w³%²¤”?F¼<3A’’ÞWÚfÃ4pç®ZyY•ãÞŽˆ¢j²«R—›Ý¡üJ\:–¯´¥OоÉW…ªöAÏD!“1Ưû*l±Uw¢†0Ÿ?w=á{5ÛX aw×öíÈÕ:RØOm(jDgu((N…·c9o©~Ò&Vç( ðÜ4´™Ü‚¡Œ|{)AQ¥F £ V/¸ !­6²DŽüϨÒà= MˆãðìBòmO}-‚à0£Ôše¼2ŒQE-# ¸÷b(§œÙa›xßiãÈž©~î)±`ˆÆ õß¾Ì@Ú*}2Šðw®~Ö?(÷~ŸpQwäßl”rW -C}ŽQÔÇŽþÆ-(8 V›üM0X”³ÀS#÷VÎò¾îƒ÷áþ•,§“àOйª:ÍþOëEC¿dþñP§ÒUEˆù¾ ùfÏ2ËNñôeʈÙë(.YÆ>„ßP9ñ§Š+Kôõʯ#÷Àmˆ1±Ðm§fu FõiU‰_OèÂj5 ¶Âþ_e++ûÄ—s:)ý$”óU¨ðúÌË ;Ë;ÑÕÛ nîó;Öýð"´«êðÍèë¾É…ráž³üxŸúŒ§Ù½;sÝÙá®Ù¹Xœ0…U ÚzôK4Öá$YÒ“>3®+¯ÞY$#WHŸß ²‡ üJUo7×gÔé6edÉbÞOÏb½q4FV‰&õ³/ùÈx$ìmAÒ,Ðñ“/ðÏKsìR¿ç$‘ïùƒW¸0deºtù39 Zš‡zñÕ*¯ÔÄ-öºU"½#!G¾¬Ûó Î!uÀäÿQ}ÁáfT±¹|膟PMO 2i’':À„çqËfS…­QÐ9@˜TØO†P±fµák7ç.écB™ÂÄ —YôuA#ÓöÉÕpbu¿ºLé¶Ì-ä±õzÅ1M=bØÑR2“xmšˆ¯=ôA€TÀåáù;•:~Ð/Ci¼nÂ'Ö®"t×pÇ‚ú㓎;ѤüŸµ½ #°uDüã†mRóó•—'‚C–”²˜M´L\8°©ù(dKí…CЬΠßaF(X5¦¯KT*ؽd\…GÇS^k³“1lY÷E[a_“hnŸ¦Yé?®ÌÔrþeC«§=À±7ç2É#fzh§â§o@Šn½0 J:£Uï¡3©²ÞQïVK´+uyµ¦®ÆÓß{Üæ0íYMЃcþX‚ŒúTÅ´QtËP¼\ëÇMUXŸY"•‹m eÚWý&í¶`þ˜Ò”\ÍæN‚âh##Æ«tü¶iô“_L¡-Ú@à?¼,ÜKà‘Ò‘Â9ì¶¢di†ÐIäH­ ËP©+gÑ/túû°×û÷眞3ïNgSbPš®¼Ò‹íeV¥b§Båèàó¤©tÿD'»XWòt}JÏS¼¾7LÿÝ3q>þÃÐU1EÓQ6n]¸®šsË"bn´©'ýÕ ‚fÝË-À4b–ä¾àßêvV6ãJlì·ûHU%5[".У°ýY™MJŠ„Õ<äM¯jÀøNX¬• Ú.‚z©"]>À)u†JŽ"¨=a9€ƒkù;”îRëêôb+ûÇÅ{¿´Lü}a–\.OÁxõ&ÎBýhS@@™âhCQO1ÁñÐpIJè4U.SÁ+LØ'­7±wf ÅÖ“LâkH÷åÓ ‹üAæì+¯’ÜÆõu¨4óìÕ*5•­a74¿T[®7¯'^G%.1§@\üÍŠ:ÿNÚ…߃Ø}j‘nf) TcKîp¶fºÆRxt ñnWDÙ*…Øìñp²‘²Ë»=å5€wÙ¦'Z-Š=}yúN Ÿ7oh½±ºÁ &üg"X®€#®’”¸´M{àƒåÃÕ­{Ÿ:Ø9¼ÞžÏ"›æ¿éáøe¦Â}ùðGÕ¤fnˆï¯1(Æžn¥Ë)”;ÕS1FêÅ3d8B¿ÇÁQæ|‹Eõ—ÅùÞ,€‘èÍ$VC¡îƒ ž,€ŸþT퀓ê ù¦ ¨hº`·ÐTÀ)—L¢ST”=¦‰ô‚H" Uù3|Œ¨üJC`¬!t—ðkÁÿëÓåm7ýÌ #©Hk'\5 ¥#[nb50Êô å0ȪKŽ2êZ<¾êÒã¾haÆßåh¢ê•¸¾ñPúðþ2åR.É û ÕïR6žÒu¤ z&p iD_êA*ý,‡«0󾔂!®žI"Ikü‘‘&*•HITg(›!o|;71“a%iN wÎÇ’¤†<+þ²ÂÔ|ã©ý—ª>í¥-/ÜÌóÂ?' ïJ‡Ù ÓQ.¹f‘úŒw?v-ÊøüL«­%î–k}s“‹ (È!,wa‚›ô‰gAÕGªr1I û:Mwzú+^×Î\ÎH¾ûߢ´õ÷ˆø©®JR­¾üLÉ ×ž\œû‚Ǹ€O%l¿JÖé,C†Õ0_ÅþÒ5Fù=³œqÞ!™/ß©ê`g>cé+6µéþ[€C˜&µð'½xvMæ&hº~WÑu$k5­¨$X˜ôCp[¤#Œ#]Ay¹D¨ ­ÉbÙ€š4f‡b«z]_#Ç7]Ž­>pÓê™Ûô"^è†tkw ùµÆnÎdRb-Ïzœ HÛÍ~j|6‰UÒd» ¿wѾ ¦ö$±@º>{Ä•OÏù®¤·oõ¢H’@ç°ÁE(ÇüLÖwÔ²Û…èPLš>9å“ e{ß 3ˆÏ"O玺>ŸùŎ؃†L «_¡«Ös;чÝÇDn*æTϳóp“¤_ki¸`å+®¦J•¶ ò&à¢ðôÝZ~€fkñ‘P•¯FœÒ%Žw={`íÂê0ÐEFx˜ùŠg¼µšMòbú¿W/ÄÐù'SØÖ³ð2ÀòûŠŽ³ç™7ƒ=qRv˜ì`‡±µcç´OÌ ¥Ì4"âõÐ…†7:0­?S™á÷àç ÌH9 ë’¥RñqÁÐ ¶JQ4…f£¡xF‹'âÞqß×ÀòXä`ˆhªƒöÇ"ºUº†¬z¨Ÿ±ÊB„jcˆ‹ŽF­†½•2’Ý/`’ÿé§C¹³ßöVŒšÍ¤µT¥d 㸲ñ¡¡üL²vÃù[]º1Ä,=· AÔÑ1[vr«ÒÌ?’Bª•0®°$G ù}QÐ4»è7X]âÃ\!áe±5LJ ûŽ5¹‚í£ÉO‡øÎ|t ‹×¬ë÷YXåGˆ‡$r/ :z‹Ð›ñgÓ|´°‡‰¤Ú ËùJ›d–fGE‡/û̼[LŸ¦8áQ*šW]RìmËœ!$ m6tÞfµ+y]˜nxÿB×g K.íÕñ–¸ c®Ü‘ê]¢Ô°½‘O"va…jìÖ'ßÐ*.5ÆÇüLê…e±n™µÞ½,˜r2½»ì­9£õß$3†ÙÓBj1DÚ;Œè¸zlm¿ø7ÈÊ6×í/´‘zÁ¯¥w¡D ãò~PB®¦u—¼¯ý.-ÆfôMNO÷µúN k€– {²j,ë`¾}zܲ¦†yÍÞ'%¨äašc-æø-~ðÚvµMlmVT)Ç}"L‘Þûmº½Ÿ+]¸q= šRþ/!Á]üI÷&iL>{oaàÏývt¿>šÑˆƒøú=Áêí”6·.ãÜ4¸n<©ßbšÛ…¯zŠ—4LWºt‹º‹;Êbs@˜uÍèÒ¦dâ2ͳåÝÊË ¥YŽTN06À-HXÏ–h½coõïÖYOGžuB»¯)JõB«Ö-§ nÓÛYM-nÈÏ,…pÍl‰äÐU;dÁg¨T„ý ’¢Ép®ô¿; Ëà.t<2zuÑœ±+ãé…ŸµL2gy)<²ý“ª!…rç;™îä¶ÒQ­aŒœg> a:üðÛ ûyÃ~˜áƒ•3Xþ °e jûy…85”<ªIP“q*q±8Ø·Ë¿Xx²yøÝƒ)–—QØÔœ}¨à €.D1Ùz¾*¿«tÕ¢u ËK«o)jkß¶ëŽ8n)ê =MÍ «xš “¾¯ì‘Îûsõªâƒ}°´u |#z|²ú ³ÜFM[ü^ ‹ÏDg•…y̕š³rêIËÐ;[+Î\Èuï)Têa3uzÖÿÉ5;éøÐS/o÷¥ç7ÿþöîq=CM¾§Å‹üîŽ{*Ôš›…H`bÃO·暦ú¼V{XnCp°JÆŽð§ö¿õnsFÜ…zYÞŸ¦0ÂBù¹3}4 ¡¯>§æð~Ie¡HŽâHÛ¶ ã2õÊ5¥…î ÿ­Q\˜s/kðÍAÊ@ùŽð ¼kpœîöÛ?ë¬JçþŒ[Äß3/1ˆž©Ø©ÌÝe¼‹“‡êpR%• Wu4Î,©œ§çÉ͇›ë²¥:-_LµNô)¼ð3Ç-A nÃ[ ;@^Ã*îº%‹eTmྮõüJ‰~O »¿ÁÖenÿcïLËGÎsÁ_ÄEN_@Iʆ[q˜í¶?œŸª\B±}¼À¥?“šÜ™`€ÁRØ(| “w<´hªÂ2TÆ4æ1!*鵊žÈˆ·1÷úY é@7Á÷‹Ñ¸»ï ¡ÿÜÁ[B_éwÒ®·ÀG¸ËÆùlŽa¦ö²¨ÑKPfwÆ\»Rà2Oî}§îë}â0èÈhcÓ¿x¹l5Í #Ù­6ÎBzO%¡†îŽS?xo5Kuîž/+ÔÆÛµþ`|á7ë¾üM'º‚ÿ’ñ`" ù¦g‚#Aßn œ5‰Ü”‰`Ò9rÌâM:×ÖL8£3ͼðzR1VÑÂÊ#þªî¸ðÝìÖ·*€6P¾ÉÙ0(Ñ éžf™ÂkÁ̃Jeæ–0,o¸¹ 2§R•öUR„Ÿg~gS¬ŠúóûRö¿eÈíuŸþ?7Ø'±Õ–bÎÔ_¸š†x¢DwsŒnŸæõ$w 8¢6,LØ¿ã`¤©]Kn Uõ«!a[˜?¸XS!{‘êY£?o<ƒm;ª ”žÔEaÊ7gØæ”Œ·þl9üê¡}—\à‹œ¨E­ú2HØ>œ‹èP ¹½Á7`†A²üKGéË«|ô(­,#4`£m¡/ Ä(bë±YåQÚYd E§”“ÄŠðžÐCîúªÆã¿~åýåÑø‡Q™‡× ¸Ť€¤8:ÆC¬ï·ïI TF²¥¼bR㥬Y³O‰lvª[w÷â/Mèý@WƹJm2 î& [ìHS¥p:p½ðN "¸ÜI0X9~êá•‚v£yÑ YJ.KRñµ¾/_’ЛTôé/T%ùÛÆµiyîbNDõIä§Ã¸E&ž‡#oüLÈÒMîƒüIùÄÈÅ>&VK/rq7o HB fÝá^×’|GÁ¹íóF4ù*EC”Kª§¥ŠÕlІç°U¦‹Ðòƒœ¼•çx1³ô2õr#'Ül™Øôë%-¢Š“b6ê( ý} w™ŒGðCÊ^ˆé4ÍG2Ï.}úPèý[ÙÙòˆÉ@cÊ”E'ÎÐ\²QŸEf´æüPùÒ–ñ%áÙrÌhÝ¡uT6ÝJ\+;•Þ—}QÓL½qO¡bÕï_¯&ë…A{‚ðØ&­üIòø ŠÝ»Àjù¢Vµ¼œ|‚žM_ØkÙˆŒà±AG©p¦$—/óÖ)L}{¥ŒóÿFîÃEõ£¦ )Q³;.û32‹+Xé…bbÁ\s´q ã÷z¿^¼S€|Ùå"Á’õéÆi6ºgáéQ^W]-žP<•ý]¨¨I¦ìÆ=€!ÍÉÚå˜>m1Vî.ï&…."R¡= ®ùlcVWèzãNø€©KëËX÷[p#\"Ú,³—ÿ/Ç%ÙÆ”¬í”-üI}KëÊ»›ÖLÛ}‚ -›AÍ£h_nôÖ,ãØd´³4iÅ?èPêøÍ<—ûâ÷DkÑûHÝ%Œ±Çì¤Ö‡ªÚ$é:$G—䱟!7+î¬&{\VMx _ßAm|2µ7ñ{0¿ÈÌzL *}È5šúÚ£³£É(6ãEû-Û¸ÐfsÌ_y¬Mm{ =ÅA#ý¥Ìï ®cçìI²rd¯ Í.-wPɹÆùXdG%CiºÚ¥+PîÖ+#â\ ôé&ãQ®Dzº þdüJ1êÙ¿<±=×ï΢zâ¢3ßÀø¼Æ+²lKù µMî…Ší3\¸n-òÙ™c߯}™ô¡|Ú5<üJGwpÞ7¨ÓÙpB$–\ˆ.ìšg⣈HÀùŽÜ=ÿøûSß…¯C²}l3oó»®\4¢e€}ò€¿so#ww—¾Úš.|<èYrÝmÑ­/ëEõƒ,j‘[pb=‹Y¼%&éÅ”$Þ[®øSó~Öï!4»bO?1ÉñÏÌóƒ®4‡}LI³d(oû c$n3a;õMÑ"¥ÛC¯â5ÞàNÑN¥¡Ÿ7KÇ‘[Ø×ƒŠ@š)‘ÚæU£ehøŽ!Z"M Tþ[±Ùíü}[fó.CM/,ëƒ{1øE+¥” ž9SÉkãþ;ëzƒ›­Ì¬—èNú—Zn`JL£yÖ+Ðã¡®Ï/‚«òü^È=!`·±NužÔ4Qx>Ž[oÂz‡pïG6¬_&ŸSÆBã­ ¶Â…–ýV¹Ó¸"¼ç$„·SfT~ñkHMIŸN©;X<”2­NÄT+öà[‡Cc¥§™Õíƒ#‰YØP>~0PxÍÅ“(ðC@,À‰œê&¾V¼ºôPÉsëN±kfO†Ñx}‚ĹÛÖüà À@S”ÍÊ™zmra"XˆË­Âùõ cSÔÃý.ÙŒ¸ ÚEDŠþY•>n9¡fc96×7ä·c‘– p®ºB[¤Ô$OéÃȺN, uÖ €pVA'+’a§§YΫï/B—{gBÃ2c¹ï¤颪Ð8… _ â-zq‰¡Û-Æ™HïЄ q˜ÃT,4W[î™Î`¬3þJLÉ"Ê5†#’ϰŽ@xZ¶§È¹æë÷l²îö}5l²9N›þÿ³ß!^Ì»díyô™å†™1¡Ê6#üJ7è-³y sÐPUæÆ§èÔPdšr¸z=ž¦#O›C3›îÚç$S-U[7]ûŒÈÚC$%Ø­¬taºé·ªxš²yöÏ?>"νi°†?£nÕ'ÎÝ7©+`Z‚lµ¤ÿ!CœÔqÓ^1dÓ²U$’yQŒe¹ýŠ×òâmàÙg{òagBf_ÒG–B~ÝkŒJBͧÀ®K8‚Á §Ç'v®ÊýÊŒ©Ô²(Ô¿5me£eÌ œƒèQNüÉ9 ÑA k»,™¢´ö%poia.ŒšÓÑùí9ôÕ(üL¨Ê‚ƒµƒä[äÙp œ†ëOˉ%c›É+%+·„Êë’X"¢¤ïEƒ q¶wúb@Ó‹<€ŽUõª 1õf‚–„¡Žèz`ÿëÓ“-uR!~hLdË»¦&£(ꨳTòIéÔÈ–cÆå#.)±Õò0çÖx±¨Û¡|5˜&>ÊÞu×’86“g(k¹ wh‹¶€ôs5]ÁŽ(¡©$ IwJ0¥—i¸× tw=~ uûÓc*0¬ÐdVµÐŒW,jìåy6÷e,ߌ >e§_âÛQC–fÜ×üI⥹Á(‘ ?v7áÿ'wÝÓsÂÉg§?W*=(ì éš×0h*« õÑbP¼†¡—­³%LâàéÂã x%pQ©z.øóü^³0wù¼-Vô“)ûÏJÁêýÇzµÑô!”62f,f·°Ä}¥ùy¿#P¬å]ÍIjŸ`­Þ’)_y ªS¥;Ë«Æ"Ïâéxße6äPå•[V„®{o ÖÍí¬Lß¡ c#bÉf’_|×T~Œ¡Øõ‚“l÷…÷üÞçñÞL¢œ#vµ­üI~„˜à‡ì‡l´1H¾ýuç c‡ßy×5Òð!'Œ€!ëË«“ÜÕ÷¬øëV߉.´|­Cê~KúÁ‘nñsHkö$–ÓV™•¯«ˆgØsó¯ã9O+'Óc‰r_,ù€: åx[ýÆ„ýôb¹>fpÑ¥ñ¾­L0ÚÃíTYb=G±J0Mƒ_í.kEšŒÎÌŠ'G¥MI£•©°ª#¶I5lyÞ´c¨óë~ ‡•'´Œ´“©ä}1žx;…?<ÿõ5e$m½°2•™o‹ÞD®HÑ"­4üLÉ C}Dù^" X¿wE‰d .½ÃžÊÊ+TƈŒ5}‡ºúóíEšk¬‰¶ê~¤./8pËÍz義£ÌzÚRRr˵üO›üMG…sgØTzཟÂó㕃SË6Ä~¥ü£ÊÉØ*Ô v¡ /(Vo{ÆõS±ÉØfD»¶=ÄècYÛg¤Éß–ý 䜦¯Á´-Hà¥âëÞжß:™FÙó2”´…«–Ú~gìÒ öï_#å‹¥/hx•œˆÏõÄM‡zd3{H¼5µÌÆÆ&ãPÅ&ïHó@šç0lȲ¸–îRÆÿG¤Æcd>CÑ–ìo’—f¤ŒyO¸-U X£AØk¶rÒÙ†,jCñ”òÊwë´>±QÇ¢ÆwfÙR(8¿"ív7¥_…ð[ªˆÛ±Uă8’Wû  ' Ø}R=Álæ ‘ÝoL!-Ƙu˜mÚ½ 5ç½õñ7’ EaÊ•ìóL9Û÷M»Uˆ{¥A5å.Ú…æ‰ÙÍ{UÜ£ý½È,ØoÁð`^¤OZ†ù…/Õ¾/Û5lG…ÁxÙÑÃSö„6‡IJɽ¿‰›{§Nµµyü|§•B=wá*PÑ»”òEøòVÓbè±F1"Ù8Ò½ërî"§õÒù3Ë5-ׯe+<Æ›Êî¢U‚Z½ÙbʤvðÞeP{Ë1fÙd?¬€¤ådr ¬Ž:cÏÜ‘aÚŠ “b˜à–¤Ú+P¦€gm›¤Ÿó†2ö%îtÜT? žvjŽ 3g¾«ÿ’Eüï07ÏÐ\‚| #Cå^2q U“,Á‡Ú‰-[(Ÿ¬\\úX" 4¿¢3~г),÷”òÙ8ž7SÎÅ\x6h€b´Ö Q~ UzŸJ}†ó? Q芉Y”-³ƒÎ¼y¦ÞõÑìŠ>b͂׃}‚îÔQ®ê(t¹ß›}ˆp&¾ìôŠ_ÝØ ƒˆG°§5]‚ÙõÚ/bw>mëÌû2â8Ì+¿Êï@æä†?HÑ}Bí¾\)ºF¬ªòögšÓ]_˜tÛlѸ±Ùœ¤xÒÍ 1ªø+µá=ߟÆIeDµHÅhtÖ:ž‰ôw´bPåÁàÙ>—¹bÅ×]¸7ʈH¯M³ìk³¨üXI§æYš†t¶ü—) ¯F°Tå[}©€qi ?…iHžøŠ:t:>‘º'‹Ë¢Hí‡Lݹu@9¼¹˜Í1‘6Àeó£èg{­bÜßÄäNûcÔ·“)„tç-\Òà5nîá½Ã`³M SÞh9àj>N¶Ù¡ß‡„„±H1mrÏÞ­˜"ØKöÉ#å‰/µBØ[uœ¤G€Þ(Ç–ºõ3цWpË?èvÿK€}oPœ²NQEø§—¨>‹ÄŸñ‹K±–uÓ±ü6k pmî`€vyõ¹ñ#¾«úݵgí)®·Vße|ºµ”yß"ŒG/ÙôræjÚ«€ L¦\VÄ í§< K¤VùQåçëâ­œZ‘¹gJÀðH³5N,üö3²‰s-CJ‚ËnׯuE¹GÀ§Dñ}öªû©²›ÇÑ~»Àºy…J˜##ž Îö sC°“ÄöçJÖX¤ÁøVã±r.BAhKžè5Þ)o±@¿ê)“gæTâ…¬—Lÿª\[±æ)‡z,¶WY•7•5ðË‚i›ýØ üM®ô -F£êÍÈTtt™Nĸz=~wüT- \ïòƒ^ÙD”ÚV¾m¯=¿oWêPj:!šµÆd9‰0u7+6È7E"¦ëÍ© ݈ë}ó;Q‚•³@"úY€Ï<²üÃåç¶Þˆ1D $)Â>“­ÝGZÄzÛ´%}> ¸ñ,›ËBgþóóÏ ÞÙYùé´5V%2÷œ±nS (€FJœ"ÆR¡'×½Ú÷M<ŠñÜ@A¨z}ÿœ©”GÙrƠò4°±«¬¨¤—]0Bü5\· ršÚ=›aöÓšui¶Fêóì]Oo|¼5î* ¹·ŸvfZÇWûv}š|òæ®n$\ÔX¹¬X/ñÏ™~ên~ —ŸždZ´ãiŸáàéLWNo¹«ü#¯6w+üë6–äŒÕCY»ùÎ|ªÊRW”Å¿jÑ[2iö+¹-QLEI¹F±¤G{g¼^åðä è7D÷ª`’VÜ›>+§4´ïb[‚—( c9x «™fQ‡aÌqekO¿$®m$ ¢-,”U©«]ß<;ªšDCý5µÀÃW@‘Ä34'üXLÐ'Ò›îOup£Åûz•–a]>S5û›Ì‘a`n’f€$GììTð0háYÌÅû:/m•âóóaà²- ÷}¶v<TRwS{ ¸kö&wß3U6¸_Â21(†éÆ©£=¨s`¼”§œ@­H}ã—Æìôô%ûíñ%ì÷è›ØŸ†J.“ÌöÚ©©%x® ‡Fü‹aËA&`kÂ…i'q>µ¤—?,Ù줮?Ê’E}1p)C( †pÄÖY rýDO9N½_ß:Ož¬øV¼J$5˜"+;³@üMbÒ¢&[‰2àüåŠ3ÉjùõH!&¸æ2@É ðʀ臒À/Å}ª¯^ÏOÅ’ o§xlÊî²M:ÈÇ `)”Ú®8ë;ý‚/ÈÇcâ‘E|FXß)ƒ‘ÕEHÄ3Ù1ýñV5âäBôD­Ô¾l'ÊXÖï¥y\l£ûsѧ…”€Ô;™Vv(£Gá-d¡ ¶ƒf7:GÛ~唓y³ Ÿ¢³y :ñÅÎÍÖ‘€%t(²×ãBtЪÖÀ â"©Æ,ާ,¥qÔ“ÇyWëÀ<à½lŽ›ý÷fü†/Nuä¹£ysø3ÆQ§v’ÌQ@”UEplŒ»5 ¬—3 ºÖžÌ™Â”£8âi£×=¯rE†XéŠÜ‚Ú½ÖŸYYœ6g w‹[ˆÆŒ-Yyß²IWóò &jÌ8OMt" ‡ß4¬ý:ê°|í­[ž´Îý~6èf˜;Ȩª‚×ñ¥_ªi2ÛñaP®nRu™œ¢®½òàîJÀx)Éáç`&úæPãFcHiª5¾ôož *ls$eL×ó±©Ù‹æàXTŠW„¸>¸®Ì„Šúîìnm3oqc?ìsWù>J\=ý} nÇñ…rÿ7\Ëè×ö÷BŠÿ€DØF*óËQÆñwOTaÉGö§ò,X“n7)á­3üLЫY+Û)ÉdRúaÞºVùc-”:ð— í`\ ŸO²åÛ†JÁ×Öän&0•™,0g—jÀ&ñãŠìZ9Õöx;aKÚ…N*’ç2à#%ùîgÄ<óËh÷·.ð½«Ô=¯pñÖ£2Òìœè—-–•ÎÕ(¢`ópŽçðƒŠ ¿|S1ü?²ƒˆ…w‡B©G_Ê£PsI°œ±æyïØBãùù/z\@ûeþ0©rrÁIݹÞR±-µJ„çè8N!„CªW0‹–(JAä¢ 38“ÙÓü#Iã,IêñœOLü°Ú’ê¡+ŒÎŠèÔÑf5àPzg·íAãÑ6\“¡nñÙº{êúûG—íeœÛ!á°ò×ÿÔ††“øNì!t¿àÈ‹÷æ—ñÛŽéþ¼ ɊЊí†ÜútVPN•o ŽÿYån)jŽù¦!}º“åɯ·4‚I€µ‚5urȤ𨨯û [Åö •Þê•€z/f}µU¿ˆHòhjBEõDV;¤ªål0`®aŒþøÂÃÒŒû\ÜMûrÚÓ…øì QS4ÖIð#ò7MhlÛ <ƒ P¼xåË‘)ü±_ÓWv4ηîsÈ¢Ïà~"ù'`"îÏ"B`åÒ Qìr ëf°I¸äÞ™61#fE\t }…‚£#w› ÍÌZúâî}»Y[}K{þ~l°F{_¯qJäwÿ:DÚ\ÍŠ–ܸ>xº°Ä’;˸ÿY,¬g;=+(Æ®åÔÚȲՓFÛ§ißdb‚œ«Ò:qTaàPSߨ¨X#2¾T x š66‡³i@Oï@Îxª˜åàÙ©éA!mž¹ðÀÄQùΡTÉFÎZ>vlÈŽNúòVm‰|XÐrLÅÎÞéðÿ÷õÿiçïüIaòJÛ¿ÿ‘¥{y“f¸`#\æCÇ~9cXØD‹jJ$˦¤æÒx”ïÄÏ -¼€%Œ}ûSäã>ÖIå‹ãÈokVÑ"ålºäIå`'9ò4|ÄÈCžÐ;]¯É4aSæG@æf!—åühQò‰îÉKæm¡QÊK¤E;ð‘¹3w—æ ƒ¿££TÂ6>ãå2àr8ÆŒü¸…¿:ÄéúçxÝŒcT—¥ú¨f|«öA©\}ÇRCä ÊY¾±i®¬UtQHcžß ?p㺈6öÆÕ°Ææ­ÑñÑ{ôÔêh'âš|µàg÷Æûª°6§LÈÁÚ_¢‰úÚKã¥zN#\*¢‰ß¶¦ñâF¸©7 "Å1ÞÖ©úM…3†Œæ1vÓx¨Äžb JùòV ‹–ÒÂ?{¬¿,U8\&) Ž4ʬ€É+1‘L;®L:(@4ŒœgÈA©y?P Rš¥ûâ`A€à m´j3=â¬ð^´tÃûµ¹ÈÊo²áüM2ç!ҷư1ÑM0Œ [­Zí©%Ÿƒ§ö òñ°ñ¿&=HÈZÜ›ûPßÅïfƒ ýA•Æþwøß ÚᔸÊ]‹ì@¦ó¤D?l9búAƒ`颫M'ÑˤS Ÿ& &Tóh·SDRˆ}Àtša£Šô CH‡h~™CCü¹ÉJõÁþ«è†5%ö-­G$ì_ ;mìúKÂæ¨ù†8 R™ÓL˛說‘xZ­1oþÐ5×>ä%GÓãZÿ·ðBŽJܽÖåÂÒY”œG&+6`—Ø’ÖåsÕmú«}v¯Ûv³Ý£eN)ôü†üK`nl– ÑÔXÛbŠMä¶š.›àöùLÙBìöÚÿ9ZÎdRh¨Å·6!™W˜[ŒÑ²ìÿ´Ê!‰_Ž`.KÚ’oM¾IâÍÙï|0ÿÍqÊ$»ûÑ-o‡[åþ§Bæ1üþ¾Øô~yà,ùDäñ®Ü”7€;ÖæûÕÊNcJÈבGòÔÎý •ÊÓ²R×R &Mº^ì!u"6à çÜJÊy‡iôr…Ýo¬}ZzNn@±“ƒ™ÒS&髉æäŽ`}AÜ#‘ðæ²pi%ùLûß8-Ð×´.°îÒp«4j¥kðm°?÷x>üNuøNd ’VÕòÙ¦j塃êt*1VhE²V“mI¬ÄokÈÏ.»“š³ôÔg¨÷1CñŠñna‚&Ëûmiº„£$‰Þ5ML Ђç~„îH‹ÆšéhE“#Ë&ã–pazÒ/ix̪q*¬Üç)¦ÉI:÷Úmçt-¢ïdóƒE§c¤€ÚEоDrìª'â>ÀþÌcwˆ¹ë™¦*‚¸ƒù {dâ­զŞuuUÞߥT.CP­{ùoæ*(½éhmíÑµÓ ª?¯ UÀ/ë ÓÉŠé9OQ¢kY%Ù¤„ÍD" ÿÎ÷ ´¿ão°Ù,‡º-üM)$”1?Î?I騼ӻm)+Éc_o8l@pÍ Ñf½‡­Å)vßÔ:ã”!Nâ ‡Ô;ˆ7§…ñÙ6W‡S]²[¨ò9¢Nƒ‚*f¿Ã50y®ßjLC÷`¬`a^ŽAð“iÀ­µ¥ ðħxIˆ&¨¦¨â¢î³Ó›–®‹_²‰ 3‚ŠñɰѭÅÐÖÎ]ôZ Õð¿¼üsDˆÀBrîõ“ï‰vÒ7 K× 7 CtðšmA×¶áÔÕæ K:bÔ¶JÝ»@BµhÈrÈúÂÐ1 ùÇ×Êöðõc‚4 9 “cü\‚«©»å/3ÚwmDüM-r@k¦#)„嬕ï¦|i/ð¸E¿Þ#×L[³÷áæn²¬Ž†Ž°†§²Œër¶‰C6E Ö™–j9'Nƒ9¿lÚXHƒG²oã<Ÿò¬ç€™ý9êß+ÿ;êøk•œèž/c‘áÇ[™Òó´À=Âì\¤ùMæW’ ÈÔ‡‘%.Ðà ©¯gW/Ý€±ÖÞMwKäïî}­”º±õ„Ô‡øJÐ õûÔÜ/ÿo±ÔxEÀ{„ç¬X}ú²ÚT€DEqIËÊú§T5L¸”m²cï¶g`»Sˆ'†V©Gâ·=þNÜ}D+Òwg `¢‘ÈüLÛMœ4çN¬ÏÊ‘œ§l÷_ZÀe8>}hNÌð§´Cû©¼ä´†q«ë]ÿŠê{­›†„²ñè|Ö…ðtÐaµè†ú¾n؟ÔQy! L-8+†ÌL›Îi§(‘a³hÀÃRÔ™åìYÅïöm]hö¨D¸Ž*¿vnìðûp$ž}UC›Ùø%¥‡ ‹œ`ª_"å,A^ƒÍFÙk·TbÎ|B¶Ù’.©¤‘°d‘Ä+ÇÝnµ–Ÿ0§Š´Qâ'ãm¸Ì\ˆ²fülÈkruwù¥p[5ß©‚! ñ\ ©5ZëÒÑs*òY:¬Â޳uàõkÇ?ZxiÒÓ¾– UÕ‚¯'2å"‹—d¥;UÖŽòÛvÏ%³u2¥½f`îifùFr§ŠJž.V“ng—úa‹!¹³r$¯g¼Á½É „‡ i þAßßhr•(ªçˆÊ¯)äGÆâÓnïìk•×XìýŒï|TPv)-õÌ@WXv%ýü–¦³p6œ€¶Ð/ºyú:öK’áÝ(T•óqûÛup¢7ÍðÉv?ŽduNíå‚è ø "àm g*¯Wo[££¿à–äüMëÓeÝËæ<öúáËôòü¸‹VAç÷ßÂF‹LŠÕYjÉ×c õÃ8³ä^Ø&Ó ™£Õqp K»ÛÜI«,p·ï)ÞD(Ò™_@ˆšùÔb ãW¯?zíD€ÉB¼¯ªù@AT-R""tüÏ1¨â<€ŽÑQ²UæÇl™™ҾΌAZVÈrpáh¤w ƒãçC_Ý1nŠ"m¥x˜ÿ¶»Ò0¿( õÅš~¾(¼o‡‘“xG3[Í÷'ã,Ò{…:õ`«9I¿ÃÏvB”>ÊÇšxQºyHÝ&8k„ÐQÿãÏå¸(Z„þ¯,¾„fòƒe´¶ ómì/ªüÈz'é°žÓ!=DX RеD<Õ¨)ôþŸ¸º4vÆØ¿ÈÎmâÈ]¾(¾ÄÈÓóìÒÔ4ÔšDbDàk9üzGM=m hý¨\Êe#(ý`1v¹2ût5Ø&–Æ»!KŸj4J3Úƒ™ªCNúM£‘Ø!$$]H¢KIXqÁý#SH¢9 ¹ù-ýè黈 J*ݬџ},¤Ëk†Y0ÀÓ]yÿwiŸ ÿ êëµQûxÙÀ§ë&CàÉZ{VÍerÂt96 –Ì\¦÷ àÕÕ½žÝ–ñ­ËPEâ+¥áÚ±‚kŠ…¬·“‡ê[înýËã“U5¯Tl!ë¢oò=Õ¿Q®…=g¨§EpPÕÒä…!/ã’Òllð¨%XÜ£VÎbTÃ…Ém½Ð”ÛAE$йíŠod¾i· ¾bH™Ò &PHýÖÛ'­›0Œó×¶ÒÔ »Kã9çFÕ=G‹¥‰$`Ë*Y {Žۙu©h³pÝ#lpmˆ«®ƒÉž™+¾ Ëš} (΃Æ@ºÙ7‘ÔR-¶­«óŒüMc?§è' W„K +kÐÞOMñjÄë9¥­þÛûB9‚Ê@×ÉûØaofìÚRïWÜßðÖÐQ0ôg\ƒj«)4¥2Ú´ÜOŽã.€(r!yB¼ç4{1×C€E6¡ËY-jSu^Cys¥fØxÖŒ™ñ‹ãuàh;Åzíb?ø`w)—Âý]ªN˜R á•–‘…?»…%ÓX ?Aßœ ¯üK$HׯÝ¡ü’½ÂǬ;O·Î¸)¶›|0’Ð[ëÝ•ÙxÚKK¡óÿk9B%µP§U‘ÒÅ‹¸(*VQžjK¤L”°‘ÎÆOTnÆÃ` %¾•€ûo.M7è Œ†û2<ò"Ø9r$^ê†üîÓp¢éØÏµ xIˆa³Äâ•ñÛ"óp×9ÈóWt7Q@Á³ž+·+üß:rxèRhþ†Lg×›˜ìöÚ¼U©äz y¼Zž•ÝIë#I«"”!ú QÆÊ´¢ªt¨r€dJgU Ò<|àÇ—7Ç7:ÓÛY¶ú&ê€d/‹ @âüIø‰ Za¡Æ”<È' Y¤#³³nZc1¦u°:ÆP[üç-é…B¨Ö… -‚[þÒƒ‰öìS¼{ƒw.júI‘›í0ù¼i¼Uתäo*Øâk.míh‚†&³Ãbÿb»~ÒôVROGüCÕ1SØþ´½ÌEïíáàÌ>¼6lˆ+Ø@ó¿ÏleînRÚù¶ÌhFÀé&2`|)ßµ­]6ÿÿë?çxÍͳ]—¥¥‚áfÂ_Uz­W/]–þ«*Úbû;C=öïnîЬu77~ŒÌcNeßY1‹[Ýë¥ŒÇ Ûú$)½üMDZMUWý÷ѪYk«Þ_¦ö™xãxUžH\Î^£ÎCŽd‡7`‘ÅV²h¦“i¹*H¹†áP5SFº4¥W{0?80T#÷z%7 ¯U¥í¨ÉÎf¦0tÂVìçÊŠ©\þ"æâ]zB„êòÉp"ØÁt³ çµó´(O 8½`†À˜H2^ÒÍ©ôìXx¿îèžpËKíˆÆSÈÜêšÑÄxé]x²ÐAt×2ÝbïyXMaæ²çDÐ…ŽòTiöä’nHbQØG±:ƒ k·4 ïߨµ²Y`{ˆWýšüLëS âë+Sâȱ<ó?KE dÞvºU©ÊÅŰÈÃåö‘oàA|Eða“´¹;¯ÝMñ+™æéƒ­Y';Û»\§—!+=œ2ÃÕ_Ð+Õ ”]˜_ìÜ™•¯ÙP­”Rféil0­àýã]!ÉÄ“*‰Í¼’€ô§ Šï«°fJÛ©Ô- ±±…µWP Ä“1Ñ+«7)‰\÷¬ôt–`5>=†g;«z_ý=œ ð65™§¨—Ü×oÅÆ~ƒ ´Iݼ$·3WM±(¥Ï}ýüMƒu ½p.ôBuæ´¦uƒ©ÜC&Üp•[;¢Bå¹@Nš^\Ôi5|§hË<Å8ßÖ=w®Üñò~Çr¥­ÑâfXöŽŠžÛŠE=¶z²Nåiè:%ÇÖ˜Z«ÖdÙL?-5‹÷¥#¼²ŸgAÀá®6•åö« þ42IV±Ú¤Õ¯°Gc¥“n³—Oøì0ºY‹)ãøYíDHÌüIêLžfoÞÓ˜>İR‘ù*@nO‡–Âûá:ØêW%Ћ¿ }ý‚ñ/|î’­ ÚûtcC²J`ŽÄ^Ŷ™í6Íß `¿¢#Ëÿ`‘ûýˆskÂv5ö2Žç·ŸrûÕƒ[.B]Zƒr‰\MÑ}Þu‘¯ò:€‚îí„ô¾½*ó#*u„æ€%"% èe5Ôy…ÇÁÂK±íN-[ÿ N nCHvMò̸¤U'øMÆ| ²3MzxŠyYGHÖ£8²«:¤a•Q¤i'Èâ{ùí’À€ExÁÒâü½¹™²_俇åžáVí5%Æ@Õ•èï’ÒXßÙ÷X‘ˆÔÇå.>0‰-·Qüb±‰åºÏ2’(p¬OÜMm2ü°ã´!sîêÃCÒ¹¸ÓGÇ}ºu墚ë)›³6ïBy—¤ãé )#ûj´¹qw,éÀ"É(w6–d› ”ôò˜grƒð”lôüX“F+ðrÂQfËÉï<9½tæ÷±Un°f¿š m#IË¿TßrbO_Í>ô6h†l +dq1äºù@­‘9SDÜèÝ-ßb þÉÁO³üÏX>FýG6‚ùpÙVú{nÛ_dRë^{N ”æÉßaAyxÁ²©+즰m=“x7Sï2`Y=È'û殲¸>0@Úðk AȨf¸Z°M¡?ŠV ÅJDŒЕM(¤i“žË/ðªó—õû;ü½·à.fÀ™{–ì…s{²D¤ò#%†×âUâÄ%JöJ[£tTc®å²ÔÆ<BäY=glÃ\4&E Zû À¦îؾZO•ºj_ucTç‘$ô@š¨3»ýâ³h¯Ì1¡·!~ç|saúþæá,꾌ÿd844S!†¼ðA#QPDíHÜ«_ìô?ù‚ ¹2-ÆÀáñX2¦ËHȨIAÚgSKš¢sÄ J Aœ*Iz®§óÌO“¡ñt¡ÿ¡Þ+Ñ_µØ|ãäÎ쨵Ž.ÔcõôÀX Òøs-–.¿›oi(7°óšÿqí¿¶HŒÇmËò¤bµ?ªºÊªo·T“{9t„Ž\t‡÷¶”)Å[r,kᡚÿ\g¹Qx“›ñ)¸ÏéT¨¿pôà°l¾JJ&¤W8/ò.¨IHžŸ?Œ Gø’/#õø—·åÄäþsVf‡¿ûlM]ÔpÃÂC.ò‰ü}dŽó:¦8ȰB oó6m”¾ð Ðf*÷ÄeÏ*¼O€›wÞ»íé{BToqx?þÅể¢¾Ê',pÓÔ/þÕþÚ«uŒº¥ôây+gˆ"ƾ<$ÉesvXi:Ë_Ò‹cuôÖЀØgaPJeÑÆÐ)¯±0=ŽS^58¼ŒÉçmUþ7G ¦Y’dx¸…÷ã¾`¼ªEö‘5²>1SLÂΔ΅øGŠEí˜OcgvLE‹°Å „_^6å n#‚?Í?¦C­ AIîÇÉnó#† †7ì¹Þ˜¦mEdj®8²Ô¤l5Ž…&yIíc¾5 ±%9_Ùâ[< Ú>Õ5ØþÖ왺~‚~³ìÂqSºÅ!l#-SJG‘š¢üLÜ|>í;슖‹#¬ Ô§ž© E 6<¦¿‰ŽàÊ ±ÁVŸ\µ» YÞãÆ“î'›MªšQ+uM ôo…7÷‡¿Ëß§ˆª&+RòrÖÏ’ …;'_ã1„‚ëA¦b =0ª%1\ÔóQýtA§óåR\müÓmü’À-Y¤ÃîÙ'˜•r.ŠÉÐP&“É~>¡7þPân¡—!ÝQ~’ }¸-*IN 3äÉ7ótÂqû"ßKT\V˜‰R ‰Aô(¬Š¨{¾Ú·ý"®? ñ‚Ü(žäƒlžüM/8õPjØêâÁ—}àýgï+ŸüõîjÉÁTÃgábüÉ ÙVæ0’B™'Ð55Ém?F`µ;*±Òv¤&-!S®‹xÒôÆŸ{”IL&o®ˆ%Í”)/‚þMõ¹3å1"X?ÐzƒD×+‰3n?¨zò6ÛßHsÒİ—L%ãz6RŠmm¢L¿Á©ÉñüþºP•‰•~õÊ¢æ™óÚɘ¼#0T{TIWR‹RJØ«¹‰ÍÉL>W)Ôµvéè×¶£vYËw5ÒäSµì,ÖŸÐÔ ¹õÆï‰{¿B%súœdüJC+àþч,À?‚tWÃSÔLàY‘Ë¥Ðxù°èþ†ÔµW£ÌÔ‹åÊÐã?žÈm†Ø°1‡ãüÕÇËТ…?Wïõ§M«!\ã&èö÷kàc±rW©…吸©Ð\pþªñn#I±mæ€4:{kÓûô yðHåî•þqê»Ø:­Mº«oÓQÚ,”ªü± ÚaǵëHj¢Sf]ã8Ö'Äx£ëÞ  ºô¤ À^󝯠m5y$:G¥|L>×õ‘ Ù‰}Ã?ƒ­¡Má¦zP>3ü6ñ©úœXt1.5bu×=FWóK,ðž¼ Íä*5ÂéØ[5‰O'MÑK¢|ñl³X…{@èê–ªéÛ.½£½ÕßkK$J#þoQÄÄ„wÝr0/rÀä>õöêÐИ[)WJÊ׎[q6éî|øxµ+„ù¦&Ä´ýYê^óu9qѱnï¢Ë? ä:ÍE½«ÐßÓd°£ÅáàÎiËÅÀ;LìÏ÷t!É€Ò¯!ííKF`ÔCÖ‹4eÿg ?ééC>ñ=G I¦.Ó¿V’²ŠG1Ó?´³°ÛüÈVq"`„þª£úÈ2«nr+‚MùAà>¶}IþûàÇQ^’ºt½CŠÍº ¶Íœ6/pap¼÷½:ÒÒerBbtçKç&@Ä'úÐ&éŠ!ÿn®µ©LV ØZÁ‹¥ˆI<ó ¾9¡þà K€©†j.Zÿ9;6dºŠZál3¬a·‹‰8Ö„7¡%´H¡¬I<ûr ]{"¸i;ToÐpã· NöÍÌo¼u³É˜ÿüî@-ÝFÝ´,‰,ø0|hÍæ¦©-ÏÌÀ-új-L)w7»“õ«-‰‚Ù’QÁ,Gë 2Ô¸QÊüã8aWVÉQi± ˶‰n¨’*½’ a­š´\áÞøjóò÷Â6 ?Ï.´`ѬÓm«"ƒ¹eEPuóôi.ÓØ®–ˆ_ÄhŸp ðÀΜqŠ ê\,€÷‚ƒØ1îrµäúé?7WúÁ%$­»  _KÓa¿êøaî¦ã4Z5k¥‚d[ R;N‰œðò«¹Yrî^GÀé"¹æêÔòK²G¼5F{m‘MBSžÎW¹7 h=¸2px+M;ÖÙA$5SÜ=Þzc©7'#¾¡‘êLj<+–%·µgLÿúêrè„Å2¿ktTJ{§±p‰ œ<båˆdÁ»¹»¿15÷K¿O8Ž …œì§ïR!² Ÿ$Šs~ýoÆJ×ñÌna¦‘¾¶ùMÕ¦7=€wqO¿œážIŒA¹jüFãržÓ'5˜HÒ²O qÿÙM<¶÷/Hˆ«¨ÈÅ Òü›Üu% T]6yØÖãŒáæ]`¦®ÀΊ'û±û‘¶ ¸‹ö™…"Ø_°·\EÛ…£ªUt;ÒÊUüjÿ<45Û%¨±IEwÿbí¦dK>.2œªDó1!³mÿùIà¶HCÉWgÞðО@…ÿ–vDTk©Î]ã´$ ¸®iaÊð9‚™¥„õ‡A „yY+·y«,M ÏYþ™¶LÛAU6E~3 l$Þð„|ÎUæOa½‰!~æ ¢£Ñé.JÎysDucdM.XüM$—!þžƒóßR7cð(|ªÎ¢•dº¸ä®9‡ü"øŒ{«·nÄš1®tlïBÀº+âbs~W‘€³ÂÖƒêe•û tDZôä(ãmÂX2@NNµr˜òÂID<Õ`]‚dšÃ«Ê/ÀÐ*Œu}È_rÑ8k^g}T1§KZ¡O£L™³(,J7þ• oÖ¥¼LRQÀà»ý$ùx}KH“ íÜäE‰ýåœç/G½»ò6u‹ †'ò›i?Ɖ"íü¾U^T RÚ:c©·ÉÄçg1ÁiÄ´ŸQç•Mü±aæžø<°Å˜v¤h 7ÿÔ…ë_`‚‚˜k¨Nd¸ÒGʃx ÿÃbç:æÜÇ&ŒÎË´9/ÐdÁ)YjFÆ…Þ©íÑÃÖr%Þ {³—”C‰8ˆÃIüæžN:‡²ïx•ZÕýÕÚŽ:_\3«mC‰ÝPûox€KyH!¸ÌM —¥|Y곿ŽÍî³ë„eÖ×8¤U¿6K›ÄÉ™íìxî¯! ¿Ÿ«1Is OµÊ±ËV6à6ØBÑ€‘Di후d˜W¤a²9ü®…¢Ñ±~¾Šlê‰þx+ ^,Æüî¾3©b~û\vfàcpleÿz0°Žlˆß¤@û½¢vÍÙB+‘’ï}ŒŠ3€½$ì៲øQ;Za Sbx›Uú<[&ãF±ã­¾Æ¥‹x;Ô.îGÇ®”¤¡>úñmƒ6è†`iW<­%~Æs]:[‡¹*AEf ™˜G‘§˜Õ û|Ú2£KÄ™)ü{%È:êŠà»zeº¨XP7½¦m¦‡ùñü|®c´É›qH1Ú‘ƒ\nND€ö_.¼Ëd)›uç¬>W!‰%öÆlu¨× ­—J –f«—.ö0+ =†ÏÔ‘%ZÞ°7êD9vFŸc¶«G'XN@÷Ñëó@•~óÛú? àííãýÜfßðÜ>¸ãw< éŽy3l ¢ƒ®“¶õ¾d€»œC.p’ÚJ;7†'LNö o&ZÁ‚Ç8P)“‡¬Ã¬ŸZ„‡ÿÔvˆ6aÀôpE´šôN.Ï^j‚¸Vù~{Ñc<>[ÖÔLGdªa‘—ĸ\™`õA[W¾¼n8X5)[ ¾/©iá‘F·fk'ªnxÖ[‹×fù– þEˆ<òUí ”ç€é^6ñ‚I;Ûˆ!ý_ìÝÍ’Ç‹ÐÓ–²+ð²O…`oü(˜ùçÑüJc™5[ô´üâÓboÎ¥g– 0«Cù•Íß®ò3Åúbíä\Îrà¤Àè aË Äöž%\ëá¯RÅ&8³ÉØ8ÁG×[-tëÿ”¸Qžª]TµeÕ–¼‰xé-tn{pº¤¬æÏޝIk«"רz<æÊ€ø3"5D¿f¬½¤šu@³¾ñõüHËS4šxq ×;ñmö…¬¸Ê¶%ƒû áF§¤‚ý¿Çÿl…Å<ÿØJ‡4ü÷>ŽÎ?ª@°–K ªdìU="}R;mxÖ‹ýE*§¦yÇ@˜Ñ1DžÀìm,åÚ¸Æ×#JÖ‘_ÿô—Ë+‚ÐÊß] Åšíb·;jég"2¡¹§1DÏþÊU…ȈËD»¬]£oÜÏ`Æ€ªïÃ38ÛÔ]™DWítÿ‘Ö,ëôc²uš›Ê)ˆôbM8w¼noª®š=Ð vüu„h¨62:„»f¢·˜/†ËªÁz)†ß”êš>-¿¡ÑŸ{¶òàÌD„L›ò‘õЗÉjÝâ…åiPf"$—4Û¤<È—tåüL¼ã¦÷bÞÖoõx‘ û’:G‚< I¨ïÀÆ[„¥‚ë©~iÖkdÒ"bÊP-¡ã7½\°5bXÏ,äkdˆ4íñ¶^Šõ²ºäó`½D´E>PÒÂnÆ*û1xÑ[Aõ·ØcÌÖÊc–`‘HW#¥JÈÉZ D¾!NÔ„ûM²µ5rT­1í-ó—':ºžV!“/2ÖÜ*Þ¡ÜVaû æuC-“ȶw;Eø &d-Jˆ¸2Ë~u–ø±<êü˜0¸åŸ†ÎÐQÌl)¹†$ÒX¾j¶jA»ƒ.à}´ýþ9"?²ËÓLŒü¨h+–å<·N3¶wÖ+íÒ¦yl×"ú¬‚ÿ‘!gb…Ë=ó^ø!ˆÑ$ÿ@r &é×= s὚u28]#þè½1pâÓ´;·¥•½ò-X6Õ;í³Í¹ÅÖ??àØäÅñ$k=$°{™'ß2 !ý¿îçl`ÙìéÁI{l=YÔiƒS¢­PÖ‚O €yâ^;ÆÃlT„Ø\Ì t„–õ1Ü7“‰¥aò‚žc¬ËDþlžV¹å%ºHÂN)ŽH›oÆZf‹w“!M`Å8uk:>Lj¢zØ£‘)…‹\ßÁà§ôþ·é„b~ü§?±ü…“ÏŸ¸èÑŠ9£ÿý«µ!nF|€V[^(po×Ôaf^¤Ó\»]ÆLÐþ?Äkž82Çù‘§ `. l»»»ÆM#…§, š9^Jø³rAC·côპQy[„*'zØšQRW¢sRÀ¬Š©¼–‰UÛ‹ŸDíãÆ6ùÂI1œ‰ +=¬mM šì^€é×§Å¢¬ ¸Ý,êÕ‘ié [é’{ç– LýØ9ÿÃ3M.Ñ6¹¼ÚyÍ#yÍøX‡Òß<°ð”O“½\úµÛ¹ÉºcrÔ«ž\¢?Ë·‰§;þ0'þ òWg}üýˆt>1-(%Z”N¾˜¶:mÆÂÅÎÀa>ôüÞÿðû`íð+ô#Ø¡OI·OOSÎkÁ4Ҝ߆‡‡{„;ÛZœ{يн:X’Ôyøô»(?ñê„t/œ[ÔZL9 m#M,Qgo–\À™Q5Ú*ªŒUª\o½åôûÑ5¾ù<šÎϹhƯ´•4˜Ù»î‡J­"ú7¹¿lÜCõ  ™ð+¡1"Æ×¡IiIèP8 á%C %© 5qTšöR®?~ÄMÐOÓuÖ5GpóÝÆ…:v%©‡¤8š$obÙµÖ c¿z[GrbOèü}bô–N¹ê{&[á Æ74ÿÿ(¨Ìê rc2Çß´ìN¬6?²F±·ô'²äŸKàÄpy1ô]¶-/óßF§2vF9]O+û!^TËeØѨ­Ë†¸FŸ¢ñºz•ƒ=ÊÏô7qÉÓ µNSy‘ão7…(}:Œ3V‰›ÆXaYEX¨oiÁ`æä¯Àm^E‹!˜vyuxÏZáߣósùäªèEËüÄ׊õ7LBš3ŸåM úu*pQ ©­½‚  BÆŸ1àŠÑMLÒý¶Š„hS{¸,ò_›möŘiËÂqü“¯åy]xUø¼ª¨;hZDg1ŽÆT©JÊ('ÁÛˆE¹U‘Ù3i!=Íxiñ© \ˆÊ-†Û#@L È(ª’À£K‹‘Oˆ JüÏ"~סù'5ÉB©¥ì@{Z5Í–{p¼%¼†y!þ¿ƒÆ/aËöNœ:;cž–Ö=GÕ>ú­,.YÞÏþ­Q:êO…G)’€“Ò;#ÒÆdÏrÈM]ãzùZ ,ªQžÍn&ü÷jÖ*7ËbGg¯ §»œŒ÷­6O¬ˆ‰e¦äÎÊòõ2ü“:^^³Tç¿u½þ**VNyš™s±àt ÌÛëuÃIÃo…@`RBnur¯…Á>r*/uBÏgµË$oùÿ×7s;|E’X” ­É‡yÿëk5^…Eˤáñ16öQ ÆR-q—ÛÉüWŪ¹Ã ôÖ-ÙÈ< 9›£“@‡ñ!T¥ ¾¹6ü°!ñü÷Â<±±ƒ$>öNgUXš2<þË%¼‡J®Ö~̼øf3ùmþ«û¹w-ÄÒrTÑ·i3\»A ^BÇLû”•üðz÷TŠ;`tÖí<,Þ2OggS€6+ýÄ n<.öP=ìúñéÿ”ì÷ÿûôïôíöþÿÿûÿ‚ÞÖÖ×ÓÐÓÛÚÜÝØÛÿPäöÿÿüÿrÿÙèáæÚÛàÿ ÜàéüLÀÇÓ=XMÇiA ,úJANVp³âm 3Óú6½­yNê¿rgE þ¤gu±å”ª] #¬‹¢:ˆ‰Ø ëÈ¿ðÊcô2¢)„%J=EÓä&¦Ÿ;Ž(çjæ“¡=tÜ>4鸸"Q¤üòö} e¿cŸ“ãK9tŸò;’<¡sw©›ðB$IÊ`h7€9§ùW«ñMþ£Ÿ74h¦f§¥‰þ€·ý6¦¸<œñߢŽ?½ã¿X\ÞצèK¹‡aÕ‚/Éí¢˜ŠÒó4«uœ¬_5¿¾ZOøÙb{³æuÉs~bТüM3e§pÅÍ÷3È!¨¥éGtDSËåîô8—ësø™rË›¶É÷Šš8£wªùö ¢móÌ%ü{œn>§KïQ\SÅ$Ú·ìm•õ¾®ƒµbZ5„}ÅRKlT½õ/`Ó¸f¤d`¬érZ"aî9AªŸW­a"b!/6@>)X=˜ÊòO~lÒ¡–ã$yÛLížœëL£…£9cn0!^ ¼“ÂTûø<îøšd”¿4µbJÊÜ\œö™Ñ|¾åƒ ^ð›ÚOã]õÃÉ,›¯&‚ *Ìiuöwj󕌳glÖ¼†ÐÀ½|«ÿ 6Ab/sIµ;¦ü¥­fxáTC&úïÃ.Æ…11Os÷ñ€-²ÏÍ0Ð%½é—[†Ù†4{)g¶fClmÚp,sBO‚ò:#׈º‚ÎÁ$²ùÎŽ¼Òi‡™+S¢Å¸S¡h݇)D ÿ×G³¯(ioŽpêH Ýk{–d›—¬Y’]6N&ß jŒŠ.ò'<Ütâ|‹{“;yjhòÒî<‚¹Ít©€ˆ-yPÏ"^ƒ‘ñ T‘å±² AUâuRIÿ•k–€¼ãáî–ÞzÊâXàYÛ+ÕÉQð»# GªÞS¶ÙQ"4X&£(R™íį‡ü“7L_s«‰¹jŽòÊf 8„ö´£Aw¼øŠ™fFccÜ6\˜½ŸËÒìÜ$…žjnÆÙªQîëŠpª„¦3Xÿ?“%ƒ ~n.¥}Õ¶%}¾#0r%o äBîÍ500U:}ÆŽµŽuo?ç´Ì²'“ˆ¹§C=•…y*úÊ€]ø 5í²T•éeôöâØ, ÿw‡*@òûƒ¯=щ½›‡nÎÑ×ûçæPAÊzÏÅ\{X°®×Ã@ìH°ÞƒßhzM m³†øÍù¿Äg¸`!¥5§ßJè> ŽJ‚ì³5èšbgV.¸üÈ[…gö…Öu&Á`iܶšþt@Të‘gÀó9:šÇ0LйüyYäap¢¾eY)Y65}i°ÄEv ¸å£¾·ÇÙ0ØÆ«ð°âó´6./ >&%ÇvõAü“5ö”7²Â&Ë`ëˆpï/P`½iÑTáfô—©ê\s< ²fÍ>üþ“ÿœ =á¬öžÖV5Ô§˜Ñá1®ìÇÞÅ´åo&³ýáý õŒ«'³€Å«Ó”QGwÓ´xRN$B+Ÿƒª ç«<ÐZ¡:ØÝ—Ÿ_Ÿ±K 2«QC®WÖ¾ø¥z‰3F —øjýkþDñP#}a÷‡hðœþÐb½UÙ´HP"p‰©ÿí®ƒ-=¸Ê8®6P^Mî/”7ÌïV–ÑâÇg«±–߈¸™JNn"t™º—jÍ5Á#¥¬ ˆ²$nŒ–À]|ý¡üM„LRÃVi ¨¦ R^ZŸ"x”9÷'4â*G®”ŒbE½ §˜0Â||»Ä40ý’5û¯Ì¾_Ùø< vVÖÏYC¥ìlŠ0jgpÜAÅ´Õ¥ˆFMŠˆç!·ŒUúÏW›Çc cÛJûÊÞË— µöÖ¼þ#" döI &ü q‡üÓ|‡r *Z@uÂ{ë½O*øÁkôT-Œ¢nØ<ÑçÖÞmÞNeùQ ½§ȺMö_ å—A ‡G¿¨iWÃ\8\d(§¥Œá´™ì®Ý³Ž5þà φ”éW\‚È R²j©ÜKæùÝs³~‹ÆüL×J{ú¾l>š£Óë.Œòê)ô˜ W¤(ß²Èø¹äs¾åäƒi·¾Ïa2!0’0ãÍ–À_CWA㉈>õÅn윸`)ueïK %PSáVög[ZùŸóå£G°î]Ù±‰+ÿê–üZðS¯½>Tá@ï5î†öï¨{I®ö£3ˆVŽ}ÂÅõ -¥ù¿jìd 2ìsåYE €VˆŒh%³û/´›Í›pú„£œm ë÷;}v*®T±Á†©-Õ[Ö¢ÑRüa›yͼÔùÓ¶U=ˆ7’÷Yùj_üF$BG.‡¦˜:eI3uCøçÜÓœñ UüM2çóÀgç×59æÂëLÓC¡º!ðuyT=J¨^îhxM)àÐÝ ¹pp£nãÊ?ÍÃëǼ5Þ…à˜o OÅ7Á?À€† çd9®™d”ïÊ…®nñ1Ysõu¤‹^}a‚üŸ´†´ LÂÊ©èÐá]&ï™Ç/&x¥¦ÅðÎ0ÙÀµ“KˆÞÊŸòš¾SõOu'{c¡¬£`ÿ’;ôô…ŸxIŸvDé+dMíÕIÙÔAråëÞp~û6¹ë ¢àÌ #ÕãÖºŽ÷´Àm˜ÇÎ6á9€’tWÙ}F0oYOjxjÜü¼¢QŽ]»+ü‹”=`|X”óºu„­©ä¨óðÉ-9˜êæ’ŽôHÐè÷œÜ¡®àÓ/µ˜¼AÔý%¢ÁmŸîmƒa(šÖpNÛPG›¶4×ñɈ»]¢#_ö*<÷ŽõÁƧ¸õêèuÆx/¦¡s‡èï×m—U€{ÅdóPÀºu¸ŽJÐŽ¥Ú_… »£€¶%3k‰9ÖðàCW¹éÂï9DP¡"þÒËËéÉ[Ô‡ÈݲùäÙ†Nàå»=ÔX³êƒTú:˜}v‹¶÷Ø/À0ºs qŸÄódã  N°Gy4€LÕü½Û0ÞYžþZJ¤JÎF¢%ºà”5£aÇ»ÈI±íô~t®Wìeø´•• âh5ñ;l §sH¿1°¬±¿úx‹wÔǼYø¼®æJµ¿ íW”*_1TÍóî~·ý°Ø~vÁS, õ&î:Nß­Ñ|©öá«P2òÕüM2 ðÛ‰Wõ‡‚¨v°u/i<ŸäˆÂµå»Y+Xã×—Ï·!TVþøƒ¬—C[ôJhkØä²Ìp?r²µÈÓŠ¤•Q–Uòî¥Mjñ²VCþvó”¸I¥nQõî ÆÝAøó 6u•–YT¼ÄnÙWØfZcïv ùß(À]ô•¾=±šÈTutdWëÂ9?KÈpCB?€'‚½f8$ÙËdÛH%‡ç9÷PäºÜ¥Ä” 1¹tBæÅüú½oßêåÿì3ÇÇCïÙc>ȦNy‡B(âbd›G%“&:%D¤¹ÁgK°¸ed¿Óënü§?!ã9åø÷èüA©XW˜à52GV´ÀêÛæÐäT ïRœ‚† DC”.iCù/ˆQ"|s/ ÉŠn{Ôf F§?´I‹Çh Æå`ÞE&ÏïsPN½¸1‹þ≌ã@ÛõÈÒ" bGRfcÍ;LŠÕ„”öíóÙX¹-êÔ¾7•'þçgxÝöþúœfä)â¦îvã±}ÿUKTp‰>±¼e€0Çÿ3oþðžæ¼/³,knýùÉó:¿ø>Sü0M¤Œ)Rà*ºQŽ–Ïnu¹±Ù:íß³ ¤‚ž×$Ãt½7ðt²„ ’X¿^üM’ñ¹}Ý2FFšôg_óöK6liô‹>äböðµsÛóqâÖZjú—K÷ʦ×ÞÐ9|ô’U¡9C@nË ÏÄÚ½O00ï†P*q³ìEÁ}Ü:äÒàÖ3/ű=·…£Àÿ¤U"ZŒŒø¼ÃîîåñgǸ$Öuu#õqðõçNêD¶ûúCÝePäïEަh:ÅÿÍAs3P²óTëž.·š:D쮺ϒ|ä…~ è'‘N %£㨂dŸÛ¢ÅLé@ºogì´€I%á=8ÝgÇÒ&4LJw#Æ38ñ­Ã{ŠÍ³ŸN®B!󓃭šù w :áäI\):¬Ã²Lü¼”Å­·¨rØß¼X¬oÚë¨B@TìœKS~—²c&¶ÝY•˜ÕÂ[ÑXñR *6è Tˆ˜Þp@|q®V%ü3q®h˜/fíÀYó\UÔuu·@gš¾GKÂ$±¢é:ôË’Nÿ˜Ù²vá¶ ½6t]ŠÆj¢O‚·Ùfæ"51 !~\¿ú&îú|UCœö„ÊàΨZì–y±“f U–{ùòÌR‰†z›º}½ýìQ™äƒ”´ cF£hاŠ‚ñ€†çRã“íï¼_u Çw/ü!:µkBêòp«xVMgÃD×¥ƒgÈÿ¡œá ƒ_ÇþŠüMšDÆ—ãÑk9CäýÆaÜ„‘‰ŒžS<À‰Ó5ZN¢úQ·Wð8®Úi_Ô “=s2®OÁ=Ü1ÉMGÝ9+G÷„ p~–fh(õ‰w¾“gÚÞ)¯JdâoO |r¼f¶$AÍéÊìÕ-&Eý‰£“™­÷>3.¨syÿÊ?(ôt9^y$ú”¥ú.ï‡<Y¢¬Ý°Ü» †½óæˆî¥ã¬Ç\ñLpoxüÈU£NT™€Yâð·3.2ö´1 mÝZN2µÚÆÊÍÊdÛŽ&à$ëúÃÀ®F3†#ɱ=¼CYNY7ö©BŸJà '«E8ô1\{ n,é_hiû%ihB)¾Ègœ³ ®Ô¡UÔðFúæ§é|íóߪ³ìÊŠi‚æpï*õ§»D5šKwÛŸL˜Õo;çס»,5[·@k].—U؃¡û¢×v UMB`!Ü O"µ‘¶A¢˜½wct§c=Üy݉ýI/@û{Å^–3”ë‹ëõ^Ù™€ô²ÑP>„¿Øe¾-äîžW=ôë$”è.{R}Ns²c°ŒªÏèŽ2+‘‡äó^Wþ=¹&1cãÕ’Ö;‘‰E²­-žPŠ»vÇ_„êL\ˆÈ%^%¦ <&', Æ»k]ö¨ ]QE¯YžVÞ2¸d¡‚wìÐêPOy©çLd}i6BÒ6hŸ¿÷T5bDZM”müLÌ%fH‹±%Ñ5ÿJ/ý¥FTÊÚiæE¸’;‚@2«¯.!®D£h¢Ês!§Ëª6Z…ž¼/5-äš[:H•eªìýƒÔÑOnžuæh¼ÝM»øðG¸\,Êô‰Ç(ë†#»¢­¦_X¹xTŸðšËéæE°´pûcæ¾’•Ø’¦4Õ˜8×À§Z4´–Q¨¦«¨Àfz‘âׯ‡é»g2úý똅¸öR©5ŸéîojºæD˜²îГ°`A¢åÁ÷¤Ê®L¸>'Í1šJus}Íc€eí~´üL¹"]y ¸Ö„•\ÂO½*”$Gçà8dà’Ø¢Áÿª¢KÂ?ÆÜ#¼æOô¢Ÿ‰¬à1±ç3ü}þÉ[7H…EBõKļæDBÕ€s ¤BáQÙ¬-Ê™˜Ë6‚*oëþ¥Ì•¼¸»˜O¶3H6.°}%åojúš£¬L’áUEñU.õ‡})‰$Û+Z0qæSÃDã³DÎòN@Eü¿¥W‰¸(÷k“õyãc^ÔHé°ÕÖ´Z~;Û£N[Fmõɶ•˜WÃ4’ºûW9K2.ØOüM€ÑeQEj–3°èò¦|ûO{‰h;Ò‹dHeˆB8‹‚%¾,¥1Ãs™vî—ÜáJ_‡Ö]8^ñ$8'îY,üjmÇ¿çèqä5<ñ;ÇÍtÐËÕI‹<Å]©-YTKŸº¾ï’}”‘çjhw‰Êà*#t\^oSš=4·«’œãžÇ ó> \󦫬{wnü¸ø%ˆÄ JM‹­¢…®5Ïàî¯ wÙ-$[}eO|ùÄà2Õµžæõe\éêïq㣋?qímzx>`~LüMZ úfzFǵÀp¯UMë\ƒÂÚ FFºdkªgk0M[l”á[t"i`©®ËÑG*±‡ \°HøöBM±¡†«ˆfoµ×˜‚#{ê8Ë`#æá<4?ß×ãfóëì_>‘Âf§øƒ¤Ø‹g©Ê;›dr‹»:M}‘¯ËLPqë6¾k|+EØ·ƒ¶š{6=ÿy”«Ëв¹†´[xxÁ÷¸ÅÔBÀÐÞ~E2oV„Åki…P,X 2ÊÛÿAHä.I}ÓÑOgÖ¶kJ^üL¬!´î¬UÑ|m,QÐh™Ry?‡O”G¤®0ƒÁ‰ã¾6 o`N™ã®yžO\1œ £ÕA)dRÉ3ݺf†§>Ni&/ꤢÜÿ‹ÿƒ‘[°":Lf–%7=È×+Âñܲ?ò1?ohç ´½KoZ MÁÉðAÊÖÕ¨z¾tÿU^h Ì~8óJüÇ)°§(pýQæDA7R†ájÜ‘çö¯ ZÈ8j†Ž„=—*~(HIe°½<á™t`Ø)ÍÜ£Jö—m+Ú·CCA¥eüM&·zÇC§Ô~Ÿé¯´Ûã=6\Ì“¤_eŸêÚLÓPޏÓ&I˜“^I²ä8c¸ßÍd^üV¨ »ígçë€Í«vãЮžrˆo‚\O}Š4c®ke‡ÙMƒænÕ»¾¾iÇîçôÅ]Þov¤Øæm€ÐkܵÇmc~·Ó²òzu“,2ò(^áРÆu†Nþ9Š&4ÒV[”Ù3숳©Ä_—ºt¨Ü"Ý7¤`ƒòWq’üdït'ç–bBÐj²,Z™,µêëy]p”B6¨Õ üL¨;4+ٌᵠ¾ä<Š k†‡Öœ`ý2ñ"•8€ï9cPÑ…5ÚúwýHÐà™m£YZ¿CçNÚ{‡.ª£’sd¯":¼Î>úƒ:=Ï”~%*ž]§ãØâ%?3º´2¥sÅ„M®Cƒ±ÕpDq Ùð<·©9«pßÀ8˜iʼÒûÔû BBXÔ³âÛlMßn®$|bSá$€gÔÆÆˆ'NÖÕ´èþÕúÂï”ÇÜ´Æü9ÎÞ†{BøbêÏ®ÛjËÏß`”\üNP #¿¦¿’¢°§Oʶ µó”a-#õ.~•zUkóœnÜSõ.l'¬c¿8c‘³ÏñB“‚éÁÃÅÕÈ8R¿ãž7oè©qï•z'©‘ÇgÝXûaôÓXË›o¶”DeGBÖʾšý¶¬ =QAçíãI·w÷ß»·yØ›£ª&;CЖ.NZ‡¦»=;4OEãY´ô©?«ÇƒÎHÄU(“§öȦ[Ú0¯¥ˆ›‰nàœŠ,××½°=ðÌRýç-|0i­ßüKVÁêÎU|ãÑLNµ\b¡,¾<­ETao%†ó¹t…w,ìÖij½!”57•E=hU¡ÈM*½_Àì#¥g óLÍ4{ÿgévÍ%øñÐuü{±ÝÃÛñ®1”š×Õ‰y;¡Nbõ®ËÇ7Þ·ç±Y[n•é¥dî %­Yέ½g“†z'º—摱òdt© sn™õ±˜yß׈–­!HÀh;[¢ÙîwÆøx“fÖd9#‘Ds³<«þ¶"ÔNæ›ú±-ßaqǯ|ü½Ü÷¶rØœ³ïâgv4˜¾·íãêòÖßÞÑÍf÷Épî_Z˜t±ùÚÅ7”&/_mY¥Õ,õ‹Ž‘KÕ¢ +‘W€aýÛŽC—h*Ùõò_d&ÿaÁ‰%¾$gãåä7]à`5±aÛkwo>R_’Œ ŽÕÑØ:/pXï·Ì½ PH;‹îIt<à† 8´ÖÞ7z@îîgP€HþÊ{ñφLƒk”Íž|·R ~v§lŠÓ”t2¤þ+åÏ ReùÏj~!’O¦èà¦fصk™ú{·p@ü5Dç€Ï…DáâÆ¶]Kv¥ŽYyˆ…]3sô- s¹Ó1;:Ô QÞèzcJª4ê¨+BgLñâ5(æd)@/ áÉ:'GPE%¶a¿_â»põ¾œÉÒ—$ãæ(üдˆÐ˜ùáþ†">0²)iüL«Ì¥ƒ Æ…YÌòq~ë2ȰÛÏývÿXÁIŠ *Žn¤19;¿ªŸ‚ãOùxNªe/®  ]›K…È%ž¶ÄIÖç´¶‚å°…i†DU´ž¬¬Yë*úûï컩æÉ›ðá`6’‘‹WebÀ>(–‰0TÓà#QdÜûcT¥«ý:åm%ä9RÅ6úuL•¿,ktqˆaoÇ/^ï¸üÄfâ»ÛØIyÓ†9•Dšpð_hîÔÙÍ  ²ó‡[ĶútÌ›oÀ?_,§üL¬ Ínþ~>Ì¡Ôq'›KMo˜¢¼N¢šOí“9jôP£Ž|X£Ûñ‹¾Rð*y(£}0§44Ò1ç“©/ƒ¶¿¾WîPÏM°íà7*²»ó¶·SZзÎ^Ë×$ͦÇSôcH›-/ðùËØodˆ$JéŒR}-²nÚÙûnAàJ-{°ªbýa`U:í€ @Ùt«YìÛ„ç¶Øù€äz ãøíÃÈ_ßgƒ•üL¼Ðô&é•j‹ Äû5é ÷vWãQ4È ¦Þͳˆr¨\Øå ›ýËŽFó6}®AÉhàõ €KE[bŸÛj”“6€úŒ_ÏšÎÙló¦~Ý È× @î€L%þD‡ÆM+n&a¸y[•¦Ð6zƒÆµÂ#Ž23©’£­wÇ~’¼Aj– ¸Ý MÞeõ9 L)PtͲ´pÍê†a‹¢óÏ¥(’¹Ð®ëïdΧÞ"÷—9.¬˜*²¸[9‰9±®šÄ^ñp„p§Pƒ©Ï£äåŽ[Mè˜üMH??Ú‡„Ô=ý«°25~õ¿rÍ`ÎwߊãÇ pµ½ [K ¯I®`Q;ƒÏ?ÆŸRBI z¤¡ƒ Ö°kÝ1Ý>ü|×Tå`!2 ù8Í(oÏå‘bÕΊžûas%yí“bl"©¦j%ñ\ˆ¦bé4¬N¶•3ˆ` ±µ¼¿,ü ZWrÙ†Q¥`NC!xCó=_¾œön'•ÒK9yeóŒwaó"j «+;€]M÷XÁúž¼k ®J°E»¸¤«»{V‚ÕüMj ¹à+åmÚW£š³ÊÒó,s‘Mä®è1¾[†¹ý\"ƒ†@n®âàιY9 7 n^Ç‹*6=Œ'Ì­x|£hÃÓaëŠÆH )ËAÓlßðàÉq§¦A°ËÖ¬]÷Mà,FBƒÜÇ üL±/´ôyÇÁpˆ® T`8þvÀäŒ?¥½("ÆÙ©]S~ØÇch…Œªl"e} ® Õ@ûâõÜÀ u[ø•ãÊØø«'u©èÞ+©Ó_ÍŒÜ3Ôƒ¿ÑœÍ<ç3—s¢xô|…õwQT:|~t£ô˜\=´¢¤ÊÛÆªã—ò çºU:Ä­æ¥2~+"P»ªªQFÉ:^e衚ˆ>8´4Mœ-ÐÏÙŠä¥Ð Ç)om;Ôw”þ¶343É=†c×d(l’íGaÄHí=×mÀ-¸ÿf»9䬻æ8øÿû ¥(Œ"\Î ¤H¨w–‚ê5ì'ËvO²’×¶%Ûõ:§O7„yì|Mù:?ù„ð)DãŽýÎhäÿ¼—#Ò¢í~"ª|pPt°¿°¶S9ü§X35nºS¥ž+Ù°òq=¯G\x×…%&:_麱ÔÒ”øéo`½’è¼)¾óNlô»О+êÔvyªÊ‰2q¢Up£ÞweÈh2w¢) ±àZYo’ÄWÐô;/j¶÷5¯:æ2܀˛Š9‘Œ™¤«xU¢Š ¼ÊáŒÙ£Kîp_ðó™º]X:Þ²^DS4³ãP–¡“ä³7; Í@¹Ïÿùltþ-Ó"ÆoÛ©³×Ü ñn5óxFëHg§fá}ê¼ãµ}jª¹ùš{káî¯]xbœY]OáHpSóxDuˆ»v¸‡FA Û–´;=“  ¸&`§A¨3Œvî½°]òè2¡ lÇ€*¤|x%¡Xò+RŽ]ge®1(ÄK Õ_7„ç. öŠya—Ž«Û[Õ²*Û0JƒÑ”* Ó;rUcÊC­äõ|”wû¸Fz<¾Œç…ü}b`»)¯¼¬EXÌ%€2Â×û$8³£ðh* Œ°÷5¾Þć䈕Çâš‹Ç!FDpVTéמ¨£_‚èw/-N2¨¼Lï‰Ñ϶¢Tl" íÅT6-’=/Ñ©É-ã°ZÐ|aRIŽ3€œ,T Šõ6ÿú«ëVóÓ6až'e¥\k|¦·3#\¼–q^„¤Ã6jpCÿâªÇÁ€FÔHP ã~àŸÇb3€PÑYéÖ¼uNv¤ÇÆï/Ôžô¹¨Q–×yñ«Žòþ‹×8ûìà ʪ÷”Æ.šf^äƒÙ¸ƒÉro~ `ÍÛ¸QèÅã¨ú¼Õù\~'FˆŒZ®œ•™ !?vò?ïHÇ]âðNï×°µ|ÓNNÑŒÉÍ›ÞÀ.ÎGZº&/ÔÎ ‚ÿ»×£ïŸfrÚ_õˆÆ½J‹VæCi…\¢Nä wIÄ/¹»Ð€]á´&”ⳓñlší&ÃBFÂ`ªeJéNwÄÿнEu¹^¶Y"9Œ<®´èŒö`¯=fAB6Ý"t‘µ§) à< Å‘•Þ6d­?>@—²¸Ó*œ±Ó»d‘ôÔ2dȺ½(áÿ•ÜÐl#¨FÓ¸aüMNf0~`¼2@"F”kçpΘ‹ 9637ø þË_=£„>Û¶s»Ìè¸píö`ÁT3XD + ƒ=ûà,FÙÈ÷O•ð9ˆO´uïïdÙ|óoÅLë®ÀòCÿ¢Œ…=¸ý¾[m±ùIıéWì»Ñ96=°ÊÎ:RêVÔåè€K¬©þÍeòeSQü}bµÜ2ÒOßÝÛ û4p® #%WfXãÁ—ÁÞ'’áûïÈFÃ“o~Ú@ [¼ó}×Û0–”…é°šÀ½™‘ú ù£²ìÄ4`’š^£¶cJ„@ aî0­éA3Xäá l[QšmÙïÆ1ÝS±3Fù[iÄÒWáÏ N¦Öc¯Tf Sa´ÊOçé×À$`ž±ä—…#`S(a»ƒ;¹ÛGIPdhú§Ø•üì×I±[¶jüŸ/ïâDÆ…çm\ ¶ÕÓ{{‘˜1RR"¡ãÒ>\³JªËܘœ¹©âöªüzTFRönYË¢­ÀÒð)<|—Oçzšw™ô„³Of\ÕSßbÄü.‚á&1jŸâ­Žaø©¸ûl"ÿõîÍGÑp]âŽh÷žŽáÕ}ÿ îYæÃ-–‰Ûçs‘YǨã¼Ý¼±Ã–BÕ¤RcJ?G„¨øõm?£èôµÕÿ€çzÓ¨ï‚`ÿxdîþÑýÙØè!¿»ì J3 wåÑ×”h!r¹µ¡1¸uùˆ·aˆiàkž ð8LNâÏñ7ôýW¨×¢‚VSÏÕhòáÇ™÷²kqä´3óUp_¨ FQ!|„g?‡ úò Äȯkyà{íüL®ƒŠCõÏWN?®¾.:I\/RË[Ã5$à—@è·“„|À UƧ!º™ÈùQjØ @hTÂe74.ôàȶ[<…äÝHqK„Û1‘™›ö(\Ò WÜ^$GèÜÅ¿åD^Ç Àï!ˆÖuñ@ââ &5Oƒ"íÅ!c€sd]Z¼-:y%a}îšx5µžj{ôiœ"þ°#î%wRß¾6£èÈÒ ï@ü-ð©oÙQp¶yOÑã´®ºqÈdí¹X²Ú®{+³²2C3ÁâîÞÌ´Ä*óXmü½Û3±£Hxù-7NÜ™ŠO¾ùø–ÿrN¢½Ú…3u2¶'8ˆaQÀãѦwóÀ ºmx4ð•G¥1C&ÖHáq߯„¡Œ•‹„SŽ“eL¾ÃœSt'%¡å.rê“òçA‹à ‡ä g“À ÿVš$@>±¦3•¡¨4Qû‰¿¹æ‰c©^ˆ97N5((Ï]la l?$VÀcÜq‰W-soÐô$&¡íf·’\òP "gS†MÆtÁ ­¾ þÏIû=á[–õÄ›å1ýZ‚éf¨›T)%†)þD"WâªOggSò+ýÄ n=bîa„>îòÿûéìëíéìÿ†àÛëðþúÿ ÿÿÿÿÿÿÿÙåæàÔÞÛÖßÜãáæöÿ…ììäãßßÿßÝóóüü¼¹Ä6‘PåÝbMºä†¼—ÖÔ•ûGS"d@Áï[›’ß¾§ÉÂé5ЦÔèÈ-õ“s¹ŽÞ±ø6êf‚÷Ô® SàÃ~«MßM~€ø> œþõuSU„=çlRÞáèÎy?X`áŽ&ÒLˆæéïºÚË5âhp#^Žz®î)×S±ûzÝžG°ßÒ¾”úê€;ò¢†¢«$"¹Šú&ºG(ù 9h—­@ÂŽF8í¨( Ê NÒ[ÖÑ”¦–‚üùâ eI+.@ÂU`ÀWP“aÛ$i"wz|›|ÎÎx T¨ü¸Šy›öå Xýt+A;êéïn‰£ý9ÿ6bÀ‰rúDÝÜ»ª¢Üît`š¤°*‹?}­¯hk,e Îç¹»ìÍR»âM‚Þÿ…w€‚»5 ǼÜ84t¥¬Mø( ¸q“?ú,¯Ø^—{»| ±ÿ({dü.EP€É˜]VdÅ’Õ2ïKœïÝkNôX<2² õéìè­Â" |³ö'IÒ®€Ýje§àB¶N~£.Þ­†« Žþ†®!‚çžœãÎÀjõÛRfܯcZ±<€d´¸šC‚h5øm³K{ŒK’³¨¶Ý“{¡Y^„Q¾Š©ü±{x¶5ZÄüIa÷ÏßJiŠK„ëó1&ëv:· ß$9tð$U÷·ô±»VS—¹Wr4(cCÌ‘w1£KC¨o›<ªù W)æáLöýwÝÓÅ®qn¤ý|Tu3G\hÙ¦ö/(ºˆ 7•x3Úu»šJ/7%f•6K­™öä,Xi×+…ÒaI;7ÏÝVÕ ¼Í+t‘C‚šEHwü!('nJç»J*¦GzÒBò£ÀA’YŠš6Ï/G kþ$ñÁ¬D÷þRüÓÖ‡¤]ŽWÇó½v»ò4û‰Ltm u Äi›53ä0É2ÇîÁKZ ”¬ü²0ÛÑ~%»×\Ú¡eáŽû¦¢ÄÞ, âFÕg²QµËÒcß-x;Ü<yÑ[V1}í”RJ=‘ç+µÁúó|&pþæ*~¸´[|‹f¦é3ˆ¼6ÕúDkK V~¼lœÕ&rTíS“o%{ª]AÈHzüp7ýÆûXŸÝp*w\ê]ŠÌ²*#ÅÜ0Þ†‚¥ëŠÎ¶]öTX 7`œÜ¯$¯;`°è¿¦bĽˆ¿¬(IQÏûü>f¨­?¬Rˆ¤p.êÐyb_zÆ‚ÇF3äXѶ°R¥OþjÅ5!Ï­N¦ñ–¨P÷ƒk&{^fªü°ÑÕ =zÓ ìž‚ÚDì ±ðÄ#Ô£Ÿ$RRIìªLF+¢S°ÿ‘Žqhq*?rÝL Î;½Ú D)9$ŽeáÓi£pK$÷?:VÌ6ÔÔAù‰h[–õWšëÅÒûBüQË“ÁðF@SCA Ñ‚ž=[¼‰«ÔäÚ`p&tÒ.ɆŽMÿ;tM¡Â<êÖ%Ej¤gXà1›œÍ ¤#d:e–ô·ïàaŠ/ Æìãµ>\‹ˆ³ÌI¿,ÕµÄ RÊ8©è¡¶pu˜ÇÉÀ§Í/3Q-ãëŽÆÙ[ î·~Ò΋?†°n&—¾ðXX7ÕûX!0Æ'‡¿{¼•…\R—×>àÄȬ]£ÖTñ÷¦Ð7(p±Å¸R×~|$j1U½#•u2¨ü°ÛÌ^ëTºD"è#;Т™-k«;yHŠÄ¬ é6KdðW êdñ7ÿ¢Û‡+X$]ÕÕ%–GÏ‚ëqÀTïïðtgoòŸïöùÓS ƒ×(t±Ø y¿•¼{ú=ÙÃ#7nzì*Øåt¢ð‘îsåû°f ü¿vjè­3 vo¤ªåZ2m—Ÿo ùI— €‚-^oð=¦¤ ze'ËY†º<;¦„r“aD{tæbF!ú¢„P,äýÍV„Ž]™©=±Ò׌m÷ÅJ-û/Wí‚–úžÅÒ­î)x ã?²HçüJn G~‹©]qÛ#Jža¬TŽŸ³$«ð9è¬ÖÒaµÎÄM¼‹tà÷?¿PÍ%1Ö\ [^Ó{©é—¿9¸x P#(‹«=u(Š z3þB—‡ÏW‚áj#OF:ç‘xçL u¢êG!®JI>¼Ú Š÷Eø>âÆ –<aè„WôúQƒh«=AU¾‰SÉUU+5plhHÉ7õ‚Ï`šRø^•³ ¹˜RèíbHwïð9IÝ&šBJ#Àû«Ü­-0I¬Êc ÝH…„…Õ¾ºQ赜î¶õÈڨǔ#¾3·%ŠñüLسð¤ÛˆW—}ÒUA2SȇÂ΃ô}ÇÝØxEŸ¦)d–„£tO~ûŸ*4ðÕ‹)¶°ïŽQ«¨2&)©APwÆfv«¤³ô·YU°vá·FìÓ û}|Ç@rOsmÉ b™ÆîÚãj6˜e:8sø…÷&šLÑ d’ ,Qâ c£ Ç4dZ ±oäôZ>tÁ_ñx·xó õOïp€þ‚bLžÆ÷<»€ïžd‰«ÅïÁèºHíc¾‘å R6:Ó XJ ðfî'ñt)ï™j“acÛˤ¶n|®¬ŽÃ° NÓmÈ!LüJE0v,å!©o2‰³ç'tOiJ¦ù ·Å°õ ™NеN"w½¨’@º„.µ!,¬Øâ6„Ý*±kPÓ¨ÉaÉHBWÓOœÀç¬wë·0²?éÇýõ`´)3ùv¥ êð»— ~?ÙMù¯õAÕ[t0U#Éëêàœ;Õnb¿kŠæðô| %Òìv–SЧKÔ±p£¤ãJÌxó›þÉ|„DR¬Ô8£*cäîÖ¦âî …ÐP¤«aÄ#é¤Îà@ÿ 5$z-OBerJW» ï~›ô)“¢¥ &H\É<ØçŽpýéÅ—VÝE=êýü¯ò[—Ù¶Êa±`u ½q¸Þ´ô4±¸h’=¬·#º••< Ûu¯µê®\t 9ïKi1…ñí‰+«TÊÝÐâ×äÅw@/ƒÅni+Ÿž¯äˆ¬•’7½Ñ0ˆS°Õ§žg>²øàN‚#hjVÀùÀr±^×±ø†A˾r>Úó§ÕToõÿE%cT+”/$¬WZ|š ±2’#h²?R>Wv¸MÙ ¥ë«¨mßQt¹Ó{9Ù›ÛIÈHð Õ/9€ƒÚ‡&;†þ{Šþ£ø5a ®vÛ:;~Î/ßú$0Yb¬rç«‹0ð1„Uxp‘¤oqì´£g2[Ô¡! 6ê U™AÓ(}|¥jɬÏH¶Ù4‰ÊgX‘ýqV­v÷ˆÝô«°.òÝZÓfVº«`fsfžåÀËç–ëWù[€¢â0úx)0*‹$×át3×qÇuöcœäl~sË=?ÈfLʆ ƒZö…àìHxÈ2t:HüJ9P‰,.ÿ·ò*ì¼×|q€ã¬ï¹þN—|˜uÛglJ è¦ç/÷qƒú!XÇ·S…qÅ* öUZ®J¸jùô€þ»F×ÈšÜ m:9Ž`¥5–™Iêò-N±ó&öc[͵ ‘Ö=Æ 0Ì?d]D< å.Hª¥tÔf™ö–R?1»òIä×3¡eY5°µôÛ£2nàib7ý‘Ä­Õ?B Ö!  Þj>¥ämѽ}šerE~v*Ê&,FpwtΧ«X‡tž¶ÍˆÊƒSÙµ×¶r~óðÊ>Õ$Gn÷@øüîËnæ5×s³‰X?˜–`Ú=$>‚cG¢°K,61§ r¶E®1Ñ?¿©òe„à\ú×ÜÈ=ûÁèØ ;í¨Ó;VĽ´@‡`áÕ´_Dï‘8²†‘2X.ØË7]t<–1m­…‘~Mb—hQþBwÂh¤¸°½×`i+z&*MV° ÷eM¢ ¶¹©™zÁ*MëÒþq‹ÙÝÃ'S¬æ)ìc¹ˆ¾yö@æèj,ÙÛ(“…ß ¨nñ§þïèŒ0IÈ&%ù§Õj=’=rŠ,»û1­¹ÀÃrøtlØ­‡_¬¹Èù wñ¯Û¬àì²`®Š­ä13pñ‹Dæ^T|Å}ð³]dN®ceP'c}ìzþ+Sgîà UeãÖ6À­ªÍ¡ꕟ&È\yŽTà—xÃsÁóI–åV¸È¥ Ñ‘ÙüüL°ûŽU¿n…&|Õú–K‡| Ü·`5|ž—só™å‚–µNCƒIØÑØ¢ìcÔ ¬#3Ý¥2ñI?üáƒì¨,W®–Z"1ia°yFûLÂt¿ßJe…8u9Ôd6Yy锦sUFÁè™Í$e±—›ŸÁº‰e'Öâ§{-~Lµ8Ž, áŽúÚN1L¥OO¢ ˜”sô †AyPØ“¡âÞud7_(˜™ÄUú¦â†ž(ôÝky^½g½o+\ g¢¡PoÓÑÚ—bã¦u…í뱞‚ðÌa!ûeE žBÃÐ5X´(ú{²SRSüM2LX>)(WÍÝeâüÕ»+™T–>¹$zÃåÌò{î QbEP8B<­9nמæ’7#–½|+Ôžú³R™†ìÂ~U1Ö1+,DeVBÌxà+7Þì1uç™nå€Õn”9Xë²·t;â’šé§eŸø¿†Tõ¾ìáÍB« bÖ=Å_ÁK[¯µÏl6ndéw¼·OÖ†E‚:EîE{Êyƒÿ¨wëÍÂXüzñu–ÑQ=ƤEþL¶¿€SËÅs7¯j!ðEN±:,‹.3¹²®m5W)5ìhçDÍ./±ÕŸCÈ´ùÝf9 zÕKÝ(š9~ ׉£û³J™Òë–®Oøs«±ì$guZM¨êðXšAÞ[{ãŒ.CüJ6‚Æ %˜šæ¸Û‹ËòMBÁGu‰@pNlf@VýðÅpÚovÿ‡]…Ôº¢­ó†×é QìÜÓFy÷[§>nØÿWej×j‹)O­Ì§þÔ1[ýQº¶ÊŠ)BËÙ[¦¨Ôß@Q)ʘ _npîëA}³•Þ¯pÉ!ç¿Ù¤YsïDVP+šÓÑÐA^­™ ^ã¹óûH=ˆ›X \.¦bM†&õM ’Ù}ò‡".ciAÅ‚sÔßWs±'¾ý\>)Ø\kóù…­"Ÿ° ÁPHÁU멸R#âžGWK6k yr~§¢lÍNÂË"ã=ðöýMÞxË–EÜ:üL¼ˆò5öpWO|¢,^9t|¼-”÷¬²3]—ŽcFÒ•ž2T˜Ü}r. ãæõ|ã ˜¶'ÖÈPU]Ë †Rö¥¦¡Ý õY‘ÏeüŸøÀP„a³Y¢ÁI¾FÓñ›9y_6£d‰ëò6ÔaX0sŸÞŠà Î á9R%¾õS—Ë(I-8º !«1˜Æ!õc#$'8!t܇ñþGŒPøQfìh×>r7`¹ó$}üM0bÒ‰çm$8Vª#©o¿HÆßuÓ¾v+—}ÓHý’WʆÖêIä¨88^ÿ«"3SÙlÈÒXì”âÁÁ>Ô£Õ5mȻۿ~|“»aw¤ä6Iñ‹D±‚Ù‰ôX•éZWsŦ‚n/^µT%>oD÷1rÁ•þ´é§›Ñµ¢¯-ôñ\ýÐIâ=ÄbØ£Á7p.É´æ0ŸœK Úeç™,]‰¬Ó,Pà±…ŠÄ® J?‰~̘‡>®Ä…‘ǽpϱŸeÀÌ˪VbG”|„ðCÏIûgîÅ5áÛ“ã |&DìÒæ!9ê ¥A8°„*Ú2*ŒkKÌŽ‰M䱦‡É‚ŸÔϱG ß×»ç'Âü¸ŠDÙëÀuËCÛíï·pŠt‹õ./¡«_Ê–r“í]xZÈPðáë¿¿ZÊš0C â`°‡—B3„/—èÆ9>++µ冋¡¿àž„|¦Gˆië5Óå*©ÓÛ ¥Äß)‹–ÌW÷fÞ¨û`´dBsêô¸_8ƒ/N0mç.©¨£yÈÀO8ðçÊ`ÚßoΨ/Š=KÝ$£æöœ΢rPó¡&»åäx*Cµ­JN°ÂxªÁ€–N×§Š”:L"“s%|GepP+1»…wh0*;ì?ƒr å¶i¥£-+7;mºšœe Êf„kL¢:Ê :9ÐO¥y½ŠÝè’<}ÄG$('éÖ"rÆØ$§˜+9¿EóÄ&ÔÖO ÝRPëòz }=Ñ×#Œá†OØU(o!p<à8.î]&YãÔù¼=½‘ØØèU§/¤*Á›ÉÞ—ÍHÑP¯º8µÞYÊ‚u]al±µK?æ¯8T¹¾Åâü“¤Ôó¦ƒ#ü}b›§;û5·åB$ÏRËýE’E´%c§QŠáúÆ·ž õ]c3 ½×@Ž1” ¶¨Ä è¹ãâãÌKü!A¯ƒßmÏè.E£àËdÔŸKm{Õ•…ü@ÿœI¤G@ø®aÅN?®øö±æÇÆKîâ’e™@Sg€ny¦Ê‚MÍd&ߪ00’Ò’ÊÄ£ÿÅåÕ»zf’óµ¾BåÝyAѾü“AŠ€CB™«ÛY3ß*Q«é™¸š¶‰}Dj‡b•ÄÌ<&“Ò£øF› Ê|9%5ºãÁ”:¨¢Âh­þ¬AÆ*s]ºU/Ë1ágÆÜT]m78›µyI¼…iÂ̘f#=šh;ÅŠ– (ÐdÕZvq›ÆªXâ‚) Çá”fíèÏìÕ„Rz¤ S Du¦×ÏpÅö]!.+à#“ccÆþÀzN°°ÌgHº‡=È?Ï­ˆŠ°/ˆÃ¬aw³¦úõç)åêÒi÷Y·5ûIüÜþ,JÁöE¬ËHD‚é†ò`0êH&›¾÷ ‡?öxý²è,P¥DUKMú@4Jâ–=È/ºîÂHRÝ ·/Nø5–ž­‚ ºƒˆ4efà4öü.+°Äeúl/ñ$ø=6R¯Ê×í½tòk]dÀ¥.ª&ãx‚Ú›v×.jѦy|Ïw}H•Õ\VŽŠTçœÍø}™Cï¾^vý§5Ç0*xÉ}JÜô)\?D JmÁÈãÐÚ¨e uÔC¿j©ÃV5÷Böœ¥º8fUÊhzÒ½Ý~Eã¢b3-RåùÄÀRXñ éÙP–˜× ó­Ù' ó‚L¹îØ…þþ4™î÷p»%djÄ%¹qÅr®ó‹EmýS~«CMOʉ’Reªbmžfk<7üýÛHþŽo¢ÏèhÓ…dÁ¿’…Å·“:Fµ¹eÛ€¾ùžù¹ øŒð›YºƒÛ ÜŸS`K(Ó#Ÿö\ù÷C>Ȥ¼ÞzÆ\÷vúÅÀÄó‹…Ÿc0ßr¼ü_èÝ•óüD›ÕïDû ;N:Ž-ØUªé¿¸µ_åM|òü¢PÙä»íY˜ÈÀÒq‡Åö™/Ú¦ÕmãÍšC "sásQ9çœ6à$ƒ LÄ ¸ ÏD£ Á¹•»GΗÏvÒÛ™ªî`õvŽÈ±*Qc°aÄ,¯m6µ¦^k>AÑšBüMZTxàë<ÜùúF»qÛ9!JAÛó µ¨ (3hHŠ<¹… µö¹ÍõxÛÓ¼_kV]‡3")=Õ»ÙW ÕòÉþ­òFRè³ßΩ  XHí¹&Ýqü´£š ³ÔÅÊÄ#½iíÁp1Ÿ A²-†ÈE{7µò–ºuõüe/»/@—ºX Ó'ð%麪QðŒ–ºú*¤EŸ“§a è·9wªv‡d¦L— .çC…ñ'KcQ„1ú2øŽt Xu³Ç´$ÅÑ|á98wè“ê±±·ètò|¼[-]\üLÒ\·h-Tk¿ÿ­$•Iï´„?™×Ù´1¾(Ê1q vò®‘¦ÇôhG«‰×Àü­B¶7‡\a¥5Df.°ò‹r6êüÿ=!Ë#»ô劒Á¹‚ܘ—P …=|ñ‘P¼ ÒÃhôƒù^#G‚Þ9,pÔ(~Ú %)d›Ï0I3F ÅÁ.`Z@Ðešõ"ØÑÅjÞòŽäÍ…êñ˜Òq[íl»Ï‰<-Ì­¢;L— Q\U^9§bv³¨7@­IÁø]ó3ëwö†«Šžž¦BðïüýÀ_^P¸æ×"nÓük£º8ýÔVš}Mm+|¬Åî«Éƒw=ÿU]Yè£G@U¶ƒ¤@:Õµ.Ý%\ÄqÍ`Å@¥k»ZŽy.Èl¼Æ ‰bw!“/K}wÚØËýZ\¢jðsÓ™õûööh–£(Ç¿f]´MÛ5l¼Ê+8Y8º–>RÍߨb_ô1-9tÒÂ7v&u4 )ZV/€.˵Þ²á“üÚòÇƒ× kÂbfs1€ûîgº*só’42ÁIßoæ‹uQÝ-tëg÷Ãâòüø…ÿDè#p P¹EÎ<]ÏCM¬¦åï¸ëJýø‘Xl·F#.YÄ“ÒA?RK€Î™vb9ù-U4QU¢ÆSZ} 2¿°ÈšA—ÐãëXß@=‡‚pïºmó.ëÞsGT­±'è½VŒ"]˜'tW‰örÌØd2ã¾Z®/õƒ-‰,Cw S†§ž &~³âÒTS³@ µîsJ4ŒÄk«ðæª#ÍÒúˆvö…óJ¯Á˜ÀÙã.€”\±çëÇÃSœÖI-LY»2„Ý`ýüLª#Ùs;ƒà·'–Ý-v»A·kÉò1•3½ø;âM æ‰{ÖWé7í^׳wÔì©*Û½›í8d†²CyOÍ1Ǿ ¸¢ßdGçDZ"ÀÆÿ£² ¤—Þ6zqØéFÆ< ×ù@T.)’ïZSÏÌ$TiÈ»zâ¹½3lDç¤õpì´Túp.ƒ:šèž+› ­½O‹?*ºuÔ(4ßÉŽ)šÐùIˆæqqí«à¸>oÉÇS­Ys;EÕ5üYX-oX…ªhEýŒéÀ@üñ{6X|¸X*ÅŽú‡¦k˜ýI‹ý÷ÿ"Ø_ð°oL·µB߬]Ó¬+ˆŸ®úˆzj€iÀy¬ U[Õ×2 „› d “«r«{-Š.&Q)h¯¢ßnô‹\}üC÷Þ¸ã'Öc4kžôþ„ÏžÝåÛ0•ìL“Y± äüBƒD`M¦b㯄è u»±ptÊnFTÜbalE3¼‚?vZI†Ï^Êh˜ïRœˆõ­ågrwºR”’g= *Æ’Jå̪¡%ª…š rõs­N’­d¹ºÊb"ï/Sûƒ3R;üLÐÑÇ<ͬÍ#_Y‡ÁwœE§¬=¬O§ÊᬑL­£n7ÙÆ[¼š(È×ô,:Z.(ûx|k¸žÚ>¹È6Ô©ìKj~çGÑÐÁ\+ݤš($ØH¾nô$kÒ[‚Û§­ÝëMò 8ñõ'™ñnX€Ös2JÞ š¶Mðw­þÞêüL¬ ›íyŠ@”.å;0½gzdÄ$’[ezÎ{ò¿b!˜©XY±hïE“×1Nc¿€TnÒ€rgÛ|Ñê†-TYé3ݯ˜MÒäµ÷~sæ)OšîF¦wI›“óé„D<ŽEÜšÞà F-.v8C=Gî=A}E,ÆŽ4Þ}~ 1ÚO¨¯×˜`Šgo0Ž”S½òœ#ÜðXð–`V°A yuצ¾#Þ5«µŸJ§hŽLv4uUîòÅÃtæÏŠÛá“&LzWŸ¡€ìhà SÑ!“‡ƒµY»‡Iƒüî‚“ƒW€¡ûeÃ4†&ú&-ï+¿dÃgìß%or¾õ^l%¾JXõjæzªt¥ =*t Vÿ¤p,sdެ؞™6ÕhÙnŸ ôü$Ò÷|òÔ¤îˆiMHÚ÷opSÜ×S:é®gCüÐânÝ?ž19z(£®Øô3«©îþöo;2¥¯„tNŒÚœx€¡ûÚ—®{î€*´œäå›ÝãË>oJÃtkªY;6?Ô*¬çƒXZñ˜••=ï­Ü Ä’ÐwRCitbÐ ”J§}% K=Ô`*çÎ9 Tno~®—ëvYü}b“ô/ò§ë"|‰,;@Wý¿q,Î8÷~oCÃÞ;Sªœq#)æX¹?±Ç‘QÌ»@óKwpúmW{Ñø!k‚lJ±TýD˜Ó÷uù_ƒ‚ÔP´±}}ºžšë&ëANd4¤›sâŽ=ÀŒH8܆©Iñ”ôødÂíÈ ýø‘£(9—©eí…ªÐf’_èƒÕ0U?¾û€MA¦O{%/¸‡­µï¤åX£`ͧÐH®›¿÷¹fi(k¿iÇèÙ›6/ fDDœ÷ûÔÒµ_ŽÁnúžèq.÷š,h €§ÒIŒw~ÃèÚ*›ï_¦¢½-¬  Ò9u¥e¬66Ybn£Ê"*áD¹[(Pá¸sEŒ{´Àj£ÇR1ó¥ä\èÒæz$ß h±fäü5U¡=.œû–€1ÉÜ_<¶|zGºÓ W»T”¬çáîòÕ³ |¥'Ùkz„Ï)¹xÙölU’[Ö¬O›¥ A7Ô*Ü›2€2~êAŸ÷þùËl ¾á‡òh=–}âúeM…F¤KtËu¯@À2‹³‹Û­A[û «I—åk:r‡:®ú„( ”9â'ðÖ¤Ó•™?&Å$Ú‚»-ñ°•èèâ]¾mCMZ%nûGAéu¬R.#'¿Äb%´88äõGçëóÉóÑ«–jÙ $ÌÜ;»-#Ù§ü¢iù4·jµ³žÄ´#Ÿ¥iHñ7Åqñe麵ðm&Q³—«Ñ¥·'„¾Ö%3ÜdL^ý7ž‡e|›‰åVô»–:œ°ž÷¸;Ù½ÎâóW¯F’¥uLϰªì»9j¯Ð†t® ÿ(˜à!#çy‘{ßBi†á€+›¿ó¾™º–°wn¨Ï‡¢óL‘ÔÝÿ™»pÑ ŒkÝSRúÿæÚÑ‘£‡¶G²kJtÿâ¨ÿ¾íŽ/´â<¾‹DÊŸü€Û:Ù¿tÝz%B¦ç6ã9~ä_ü}²»¸ãó‹_Öø´Oñü‡TÆ ®É=áÊ%çkaج2€:Å~Ÿ\jL{¼½¾v`:ü™·%ö"R×ð%n‚ $Ö2ãÄŸHtòSÌ·#»â?ÌÙ4/Žº»gr*ìBeìöêiˆ¦nÝx·qTe7Oª¸/—‚W":8íS´‡P>2låÖõš” }Ó(õ^€ñ)oiÍÕ8›CÕF최qÔ&é“Îô‚39É¡y:ØÇαN—£38Gaƒ`c7]XgjY¼©„rêJ«•$‡‰þ*¯å÷ÊfSÉÉ¡˜ûðúc4Ÿ Øe„“¥¶"KO›ÒDD§ˆ\›tØPÜÌÌL"¢SCœ*J”;:šÒM—|ÇÍš›ý´Ó<©a:ˆñ¥TyJ"r{Ž»åиrÙDc×Lu‚#±´’Òk‡å#y\²]\¨ÅIBbm2îžÈÐU)Ôb³TrC›ÌåDÅÌ^ηƚƒ…qâ õ7Q[½„½ÜðerðÒEF¿œcÕïÛ Šë[EØ•:Hã_ñ(ÔÅMÂl¤4×ÊÔóghè.¾¿ÆÝoŸ•º]ņf6˜Í–Ü“¨´¸mŤuy›Md!²<.p‡amq–e( §¡üMá¶¢*wßóŸoš‘‚š”n0~@ñZº¼GEq“Ë6,Šc, N XcÏ€jþÓ«¨#¼©Ÿ´‰+ÐRÔêxà¤ÔŠF'ñ¢ÚÈäqÝêgÂï/‘”œ  9!·yÇ€”"S¶ço(B^Òh‰¦¥‹bu5€\ðŠŸ74ºCæÛ¢+¡Äž l5r{?y¾—s÷_7]ÇñÂNÐæÐ'7 —¹ò-wÄStY²9Wz×µ~PgRÊ3:vÈÜBÙÒ>}‘ŽÉz‰>C0{e°:âÛüL»IÓš?¯ê4» Ljá4¸w> @Ÿlûîœh^ô-Κ¢4Qz~×Ãð“-:À|¶Ñ\pú‚KÎàž¾»Eżeþœ°¡ma© 3h~¦S¨8xrËA2¶>?ËQk»¨†š$ÇcEø$ÀŸåc÷RÀlmòG \]aT ð9¶³’SžŠQ…–Ï•fJŠËƒ¯ôw‡‡Q¶×«@Ì×Ù4÷öìüüíÛî`&ºß1¡FÒ$]­Á¨þò„ A^È‚Éå§ö6¾÷×pnxRÜ_»f5P!7ÃÖJ´×Ñ;³.TT´÷žògÞU`¼ü½ÛðúZ€™Ê®ñÚ‰ü,µ?ÙëÇÊ|C%Uoûo|¶@Õãúm®¯µG «W5Ž‘¤Tò¥€­nÆè˜œYÐÌ __g ~ÅÊ[ª È8Ö;ãå Ch+ ÷F‡åX­P®ÓISð¿[ióòÖ2 „k™ 6vëcÀä€î+8l'§z*Hp,Yþ×ÀãHÝZçCÚàµ~©f€w÷Î,R}þâ\Bá“UŒ§eülʉ¬’êпÍD‚Õˆïß<“ e5u&FMÀñá.[ÆXÞªÛP†êV†8×Ô¼LäadjøTNDCü¼»ÕÈñ“J É#¡—#‰ÔdkÙ¡ŠG‹6oÖ»±vñ~þ–TZÚ.éØÁÉeG3B¡zx¸é UY[ð6ŽËwƒA[ë¶Õc–UÖ£)  ç—Äcæ%g³ý·Géü)ÊlƒzZÞ¼`AÎm¶>È´h¥Ñrék£óš³(‰V…uæß9šHÀþ^TÁp‘¶›Ž,ÉåÝIµgxàšªûI¢é¿꟱zx¼ `M½nVi¥²ô X{³¡a2©º£­§®?ECIÒ*CßNS1áÜ”&@ǹ˜D©ø¹<ú™#¦¶ät±#rBÝÇŽÛLäÅOggS€­,ýÄ n>‰ÃéK;ÿpÿ„ÿ—áëîæðýÿnÞçóóþûÿ‡åñüùòñÿ×ÞÝâäéÿ*×ìèæáÖÿ%ÚÑÓÖØÖÿRÔÓÖ×Õü½ßÀŠnÍ‘…pn;&åÂýàG­ˆ¹JyüŸ{ÓlÃñÐ"VþÏùÛÔšÞO*z7µôÂ-¯°[lÙÉåÓQfâÝþ ÌuÇ›»‚Y¨|…yLŸ[ôûÌGwzŸ.hÀ®æc\^êˆ}õ ô²Æ.óVéÈ›yêUù%^BÙ¢•=© ì|vò*‚£Ú’GÈÑáRD†Î@?q;ÑR›‰/1*ýlâXõÚÀyXW02²÷0ÐÀЏ«]EØû§»ï‰ ÷X«liŠÚžz´‰àúî3`§½À‚;`WÜV˜Á¼ÌNÄx_âv‚»š>O÷Kqç¢]cåó¸ôÝ¿áTP{ÃH[Þ«š÷‰¶xbhŠ¥H½–Ýêâ‹DC`Ï„P/bžK„ö’ÊúŸtKƒ›‚çÓq2SÜLÏt?x£õiæibÄ¢¬5´(‡a@«ê}qûÐ=}!#ün×P4=‘!ü½ÂRc’2ívö|–k}ž® º³Xö•D\Õ«§æuý%5L‹¶|·Ëz'¥§–Yb¢ué€þllCÿcéS ×6ÅåÀÁ›uF¥Ö²ŸÛ4Ûµë~|[ûì‘\ÆÑàÑV¸Z¦œpõÁ÷H¾(-l¶†ÈùQ"¸lÊ A[\çÙ°tûØ‚ì9"$äW£¾˜‰Ø†â]ï²·³*Ÿ ò{+Ëá.ö?—>9™á<%"ø¾ªWçíî€ÑïžV>Ç5éŸyéзò}¥ÏøõyKkeƒï¯1¤/iý ‘—j'Xj•%¶ò`h_”Ôñó(›(>£z€â»ÔÐŽ¡~×Dx ³9ß$‘Î.ÄGÅbQk+ÁY§«º„\c *£­ZwAßOÐV™¥®;XV\°.âwß"Ý«4'#ƒh4â0m›¶l¢\`xf†_‚Y}ëD/÷#§]4@ˆŸ·å¢ˆOÿPÄüÇɆм¤,ÄÞq<ì""¸Ð+Ü#K%Ù'Ë–š¸c¨:µçÂmðû¡GN’fÔ§’2‰Òú-Ì—Ðu„WSv­Ýž%©Ý6TæÈp¨C¬y#߲ܿÚdXÿjD¥ÀJ#¯W.8|­Ç~O…Ó`óŒ¹mþFþMüšÚ¹hɦ·¯Ë1dø—Êš÷w½µn‡â…R´(Èjâ©Õ/@JÍ}à|u͵¬ ˆè¿’ä¨D¶ÿDõC€<ã'¢ÍM$(i!†xhÐÜW}œäc‘¢×ý¼@Ôº¥ÆM!)Þ.†7!´û!®_:]#'ØÍ¨ŠÄ)Kœ—LŸêUãUkà9øBiD`^k–™1ÒŒ1ÿ¾ñÜ ¯; á.þœ×¬¡¬‘904N5züŸ¢’ÉûÏ£)@\ó·gùüJC”Ê‹¯Á4ØGŠÐŸ;°È_èÈrsCº9:8Ô՚pá¾)–VG2~] ÅA0¥Ø„…6t™ÆpÕ©š™ö0¾[ÂüÅp¢gb_Ap‹üÅÓH£X›ÒyØÅ2T½ÚW5Ÿ®>ke˜N¹®Bò–¤ˆ?÷§‡©¾ê­ùˆý¢-Ê­ÎPísIEªçˌ֔%"eIUlk_ ŒU+N@Ì‚w¦|ᜑõ> Àáš³i@†NHy¢¾É ´l‰à<{Ñ<×jìGþå<—ðÊêüL­!\¢8kõj€ÃFRaî7Câî ÀN>ße*С­éR®Þ¾×Ö3À´:(R ³èίLHu*éÏñzÃõÞ’©¡‰*n”7ºÊw¦3õ“ÔIXï¦õ$ Ùy×@¹ÿ+Þm—ù íãq1‡jŽ:’#äó{]Ê  ¦Z«FšxQ‘Gxz›Ùü±Gð%”¤gªø)ÏJ )·åõ"‚»©ïÙŠ„^Êì|–ú¸íB•§áôQ¶ý#QKöd‘¶³A‰x23–.M:•¯dˆBöËûØFk/ØÑN a^u¾3#X9üL²d^âŽ-#ÎÁ^È©¥YOì3“Ö Âž¯î§W_#ˆýQ×+`ßBLø#U‚‡ Öªƒôy‰¼,Û‰õ&Ï#ÁFÔ†«âHð–ênJÀÝIimÚ·Ž*»³ëÖú<¥_¶q/Üøy’¥#€qb4?£1Ø­Jôªð³Li=ä/6çºû~à ŪÜ)½œãµw¹ j„…ù,—FY¶¿h†êÕ/¤Ë¼ —NÁ!í0°=î'qHf¼XÓëei*h…Ïbx2¤1û®K‘°Ýn-Ñ*ú#ç)ú+¬†˜šÎ],?G‚±n(¸ 6ðFüL¾÷Ñó¥žE_á¥J¥cä•Áð€Žü“€Ñëžæ¢uÝ0?âDñVÚ2ìlŠÂênßF»L.6žSUÇɕã$óîÅß”9+TìU2#œ©ùh¾³ öÒÍì–ëmfpRÏžÜÓÀýæ>·G¦,÷Z¹[ÈäÛPsP…®b§k„WÜ{E“?zu®¯‚ŠúÂX@O°%îúJä±\ý8ø­—Z%Â{l1•̺²ˆ€ßž®sñ|èÔ‘+MáDûæ Ù"r’ãe[Ü|jˆ‘²*ºWÊî´úJ§.üMœüz"ám t“O„‘§×šŸ° [O»¡l*kµ‡7}ŸyÆ{4´§Mu¾pxx´/ƒJÛµeë‰m·ÿ{•oÉ, “jx”àCƺcøŸ3 ÃâÁ\r̺7˜ù{ê­°’Î}ràõLK`x~à­°ÿá&aǸvÐMTÑËi¾&þzØý7U ‡Ü¨·#´Å =¬$WKºSÍtrRߤ“xW¡yzæŒÎK Û]$ìû› ü·vdô¶ÈäH\Ñ›V‹Áªš Þ‹O†¦”ÏlPmŒáÓÂÈ@5FÈ÷Δ4>Aý ü¾Rãp´ –Ò‡´ÿ”Ì{ È[ÔÚÔÚaòSŽdíú+©`ð{àʼå*¾ØI»ýúã!«·æHÏŸuú[ÈOÌîºÀº8K7ß{ˆÓ…+­•£²ûÔ]ápf™Ì )ÇÉj%ÔrrÍ$íצ¬³C®ÐYNçJhȾ[rP•(þ`æ[Ó?hL´Þ…êÆæ–|Š¥eìѧg)nào-ç= З?óøØBïê[ÌÁA“Ò¢Œy€Õ(T­Í†ó†~/+öß½yD?Öx–\Ò·®â_@ä"–Gi.ªA9M“‰`‚½7k™J‚9ÞÈá Õ[þe„ü|· ÆÇØ,+Ë“Æ8#–šË\ ]ÉÏpC7¶%æºÿOœ~6y'Óð×#×'0@]ìñ…psƒFÅ–ÆäSÛ<¾ ta ☖–÷ldrk&aû¸G×3çÏìÔ¦½¾_Œla­•†.'2 Ï5ü½#D—O_XǨ…zøûE$d댹|s´U®ÜhSµqŸ‹r ¾e]ÏËîðcŽ)+íÛOý ^ënEÙsGd—äö'•i‘¦´®ûÉ~Ãɹ3OÆœm«qMFQQùZ“Œü éÎáñIHØ­:'7!±Ãç^HƒTÓ-À¥yˆí«b2§ÀŒös'VöÝ3¥Vôß_{GÛ%æØo«ÑbN„Òµw×ÑÈøöQíVt€¢w½Úó­íÃþ!Mò“[äÏ-Xád$ëç ÷š˜ö}‚žKØ™ ûU²é*‚&£É~¦Ž^5rR™‡ï›x™›;'üI~õš)É7ÅŽavnôL3Àî§æŒ–ÆyÎZ)YϯÔy¤˜¥¸m¼ÉÒ8xzëYȶ‹ÉþEäà0Î¾ÕÆñ­CdÇÔH† FÈMµóKÓ5 8/ú[nc@³B÷³+Ès‡x±×ï°ÿ3K{÷¦‰ô“—Ú“=Ï´/ UQÄà> Ç~LržMAÚ#è82b‡ÿB%vÞ>§ÙÿµMñ›õ=Þ°Ò7X:Ù°¨\… ]¿ÜyG­?ðÎCU‚J–<¥ÚÔ¨Oƒ³ÍìƒI³s¥qüXGëë-îÌëãI#/02W ºvïWjG—¿LuyÌI~F,R^ï¼Õ4(Ãv¸æoFrˇËÀÀÇÓOõœ“u— ùªÿ¥}}eÂ̬ýû@YÖp©ƒ›ë1@°zÝá¡« £VÖÀ5ÛYšø9‡iþQ–ö#Ô¯a-AÙ†XÈ|…å·+è~°rJ°è[vͺ;.:ËöÉ2¡ÿ,ñëUã×úößÍdk¼F­†Úá «:ÁÐN‰[ð2R|*½Ÿé÷EVÞ7é_œi¦7vRÎÈëà>úßüL°NU£÷” ½þž-˜ÀZ·QáóÙ~àQ™ª{€1Ö³ çYÐ+žÎxt‡¼ÞVkTHW% Û?mÜÝ¡4Ø3 ¿Á‰Žœ l ÚÛ/}¾÷íÆŠlŸEA áxÙVm”ÿçÒų¼›.þOwâ/˜×<\^:Rt˜ÑT6†^Ù%;oCøNHX(‘·ƒ_ªA¥ÿÚ¬8½£ÞíG£ÐàË`ù»•fï$ÑÑeby·öÙEݨÀçtoq„oX|yíQhâìª%ÂÆê{³ýÛ ä;«­(Îî2x,“Êë•ZX{ÛX¯¸üXéàHì棽æˆQAµä{»!qÊ*?£Knw!ñÕˆ¸¦ÒfÔ¦ýv«”!ÇÄÀ¸¥ß"J´».þ‚‘Ð­(ûªg9è•ä²-êÍŠAZðÁ©1(Úŵ)þÆçk¾]§eƒÞ×u2'sj„f8eÿSž‹^#-Ã^:#­ÇM*3l‘M\Œãm³|£ì¦Éd¸,éK¥ë¹Í´Â£ú“@—.ú²ùUïä= ‹Ž–i j:bkS’ÓÒúüë\±šr˜²—:Óm%™—tB×>3½­.÷Í+j‡§VÖ÷TÁz{^PüM·+_×_ ŸµPúÞ}’§·Í¥g( »õ ï³†*¦àÉb€¶@d˜è©‘ƒ¨¿d?ðjØÚ×úÄôîºãVÌ8€ b„)lUðvóé¿ @žšnŽœn¿Ìà:Â/?Xχ¨ËãëP\MJ¹Š’C\°,¸„ ØªžÕ1È©áÕ…¯Ó¡>ŠžP,›™GK®H[Γvùõ ¥\r¶37N ‚À×6Ñ…H4õC Bï6—¦1âÈÿÎŽ0HÛ°[øÇ^*ˆpâì÷`ˆv'ºy°ë×8üôN KŠì¸;×´Ï*ôùl‹ßI—]<¨–Ö™nïEbÅÅÀfüVânñG5Ê¡0óå/®¿²´Õ³›u®aÁ|ñÊwgp`æY3YÚ#ò‡a¯¤ÔDçj”ŒãÌvP¼jºAègl!>¦ÉhÕwSr‹,ÿ‹•zhçb˜„¶j¦€·ŒaߨãaV,QúåŠÏ\ƒ÷J3ýN ÷<¡q_Cf¿Ö変‰EYÁý­Ö.9Ú=õ@óf>Aëv¤ÞXÂÔ2š2"6 æp.™lò—s"Ò¤ô™&}»À25 ¥òô7ç‚YWZÇŽÃW\k£C vBꔚ"K†ïóütÃîÔt^ *yCý·t±øÎ/k¦ãöœ¨Å{›<µ9E×Ǥu&0(YÑUÅ ú+*üMjyXÃÊ0ê»ÈŠ*êÙ+]%FS…ÞU¥ÍµÄÉäÂÑ´5êÉh2{÷xoA®°Ào’]›çoº±¨Z”@ £Ë/x °\ KR±áÊ”«á'r!ßÊ•¡Å%e?Kt%š  ¤maB3õiãV‹¤P…ð¶0¼Í^¼é̈?:¡·Ó‰|Šú¡ÑáocòoÑêùÒ+˜Düò3ÎêÞÎ0,_tv ƒ.4/$leߌ^><þÈ]jo´Ga8ø NùúÙdm²t>Ñ(ÿ£:IØA¹×¼¢Õò-V4ÝÝÑ,cÎ}ì\ÝŒ§Ú·í€“zúZëñÁŒ?Ú 1kU«y‚x`?òÂ5'½Qª&Ȝ˷ão¬G!Ýö‹{ù÷=ƒœáŒ^®«(@Idü%®2篳ÏüLä8(U!ðSãÛÛ–<~ÁÔx›=r/Â4ó‘B| {A!°ªSBމíÌB·ÿß1L {؎ЃVòs7Ã&™ ¿Px²´0]Òh¡0}y/qÈS›..Xmá¥Å5¶¤Ì³D·;Ç‹Þ:LfØÑµk­‡#ß^ôYÜômðã´ò©€íºy°ÊÆmbªSwÇàßI!g(`‚OMb¯ÅÔîÌw†<3€~jTÕ%™®ÓéfU[AZµ„é\>Ýõ}*òÄ_Edç¾å‚z;ÓÐLÂYðuðãsŒxWQ§ùcÄ¡ýFä+dÒA­~Ó&Ùseâþü5JPÞ»›"Ÿ[½gƒD¡ÜŸÍjqÂè~X‰åöè!· t_Àm’•é7„Ö¬¿=“¦*o€m‘9X”}樿ý —Bô—hoD³4¶¶Dõh§R¼ ¸žVU‰S&¸º8ÔaNÍßLT3ˆ³Ó9hè¡?ýpiºNø[mUù= lv,æe…7cÆ%æ½í •yOHˆ¿B$ tþ:BˆØ¸Î ¤L Ø¦ÿ9¦s– =•Ñ'wp̪gˆ$×o©«R†˜KÁ1£û­ î~DÛ ;ï¼£À £®‹$ÀÕÖ¢êß,®Þoz­ô&›éÞøüM³d!¢çÏHžw@€|‘W|·z=¾#’wšìækÉÍú¿S¤z+zÙŒd]ã*)¾L¾U‘a諤cÚ®¿9¥ÕdÛfúV®î:pyܨÚÏç3uv€Ä†qüÚî[ ·;LB‰íóe—^ƒŸ`!þPöU¯Ø›B¯ïf ó)NŸ°\T©¥6íÞ¿[!”W+.>è¸|ž|}•öÆ;;nGó¼NŽ#XHÊûBqõêu¯˜–”øæ•a©ñÞ é³üfŠXJ;<5= PËãá~¨ï\Åë÷î¸ Üì$ÂÔÃü}^iZcøÊ œF2Ò‚Wï]BÙw\Ô^óRI“E|ÐÄ=}4u‘Ÿå{лW¶·Œl%Z@(§Ï¼ÒŒÚìxÉ2Àì‚yKò¯Ô8™›vðª.’™ f²;ïgúµHÙ>Çðt¤·´¦Mý™²Ë2Ÿ¥!v G¿ÜS3M9 ¶¾JjMÓ˜¶²äs#(ü•ü›Z¸¶&6Ú#úÓ•âV"Obu·¬”–Ü>ª:ˆî6:]BWZjŸãqf5TŸ¤æ £ K¾–0‹ÈY^J ôœç¥6”ÐÓÂãíÜA7úï|jß[FììÇfÓ­-m©ËV]*µ;[½nS÷SûÚ„ètËXb—(¤2þ´¡ …Ê Å@‹f^lé‡ÊŸº^qÄE{!ìÓß^œªÇX/ò&5ãÉF³‘pŒ4hPÖ0t™8á7°y™TœKü¡¾Mòûä®ì®i“û–‡ Ü<[PVè“hþµ™ÍL5LÒ㕃ªÑüM)ÌgÝXt¶Œ§u×X)ª4Lù=R£?^+&æ>Í™í&³”ãþÃû¡X!ƒ6s ø0‘yJé´àúæE¦ó97}zòÌÇÚ +.h|Õ`f'ðI‘©&õÍâ–úÃI FœaîhU›h³sƒ§§Æ1b§¡=—›Ö¯”{xµÕÈ9néã*«ÃwŽ~ì§úÆSMù¿“ 7>%¬¨>uð…ó<¹ªÒš¥Â•¦ŒÊ2 '$ÌßÑjqÂöGJÈKmïQ …ÚÔ”>4ÖvÛüL¯£÷Æù“#”‚ÔžÜà|"òíðg@Ò\¾­’E³»Æ™rS¿•€8î·Á‡Ä¡³·ÝÉôÁaÿ×+üxÊ…Þ}}”FåY%¹g·v¶80ž7òŒŽAq+X¦Ž[uQ¤k¯^ìë'à¬Â9b{â—7Dö zØd¸ôÏufp¬…r µ| ÍÅ ՛¬ë0T"Á PiD¹¥×öþ*à†ÜAµëÂëä-°™à¦€}Ü]0΃maö4o± WÂyé®äýÖÖ:ïìØÔ|Ë\xžÎ{ªy˜qF‹+ÜÐéyœhÐn¥Ç ¢&ît…â'FÅh” 'DiòôQŸA_6å â@fP®£¨ðÕ©OèÆ³Ý)™³M­p` aÁÖ]CßÕ)º­ v·"sØáz$?P"ƒ¤aniJ·1’RüNP¨Ë8øJ)„ÝU7>g@þ?£€ÑöÆF># ÜX¬]zk;RšÒâLßEE&)q%­v{ó½i?•ÂN/”ói•èmBÓèn-'ÑЈDIh¥ÊM.½2PðÆžX¡“Þçz)%`wÕÝö8tD¡„¤­kl@WCVø[Ò“­”Ï ià…w%Ÿ*¢òµ"3ã;Q`-)á7§kòö°ïë>ê(Jí)d\9ú˜{™ !9j•Õç8ågZåýpækfHÓ2”¼p¶§PÝ"?تÒËüM”w£‚ßt4c#Ùx a‘Y ë‘:|Œ‘1aâv¤Ûé¤Ï©ëEó= †–·æ‡?Žt'[ŽmB’T–´”cR q†µG<,^û¨3Ó9¬zigÙ-y¼†q¬tD‡¾÷ºK‡N@ƒ5…F•”M¹ ëãx÷gA׊$|íæÅâ}©’Ú"[&ëÞÞG¤Þ®u–¬p‚—#QûX¸§´ÓòXO´>!ìVk}ä¨bû°Wk>xá×3÷¬F‹º7£Ôɤ3'iRërßo^¥¦%PvD²Ârüq²üMŽÉú\6 ²Nè"*õGµü‚aØ`âüPÂAR¦Á• %1êj»œ_Ëé _ô¾Ó² qx~±]ñ4*Œš6¡i¨Y ¤žh%yØšc¸šIë»ëZ&`ë,/|¥¡cMÞë/¨ŒßÒ*b}N7B å‰S³ºaUiFx¤²ñ {• üêXÝÇî±ÄÑi'(–£«Yš€MÔñSs¡hŸ3¾7“ª"A½îæÚs]~P§Ðá Q~).vPät€|0’hê62‹FAûóÞ'Üô~:’yÔ¬0[<µÇœiÞË4ü|¯±öp™?¾ô0 $ÐA,5r{µEô¸0ÛNÁO¬’OA )`5¿>³@'«Ôø·›±f9ìòèâpo³ÙÈÑûSvbh{㫚Zym’Ôø´@‚ˆ›0ê.C†PŸ õueÔ­ ³‘R}ZD °ü`nºãmµ˜V„—“ؾ”ÎÓ¿U7Ñ͆K¢ÍÙ Û6û†ê.© pšÇd°ëáž|D¢;Ѐ=/†‘Î}HÁÿ¶åüAö§› hœå6™\¦f«A4¤Oêø{OƒŒ²ËS܆ù¥Òd-U$UË«Oܾ‹¨ó‡n]S¯ªNŸ,oä› +ó·´&¯jrž¬R³¾A¥Œù&ªo¸ˆm®í3Óo³TÚ|s–æýàR×V‰žñV~ü5 ’Krò£ @!放QžÁ½Þi$µs¥T §ÒX؈1Ü,-h‚æ?8&Fߺù6½BQT­D ø :M ™}ÖRtL-ñXd«aµbÐ3Þàí³¹îv=ÕŘÕÃp#H‚L²·;:Î=~Îà äJöà N"V Q,ÁÝÌa”iˆD¹½>o¢íÄQïÜüM¶,'®U9"k<œû”à•ô:•U<Ù |`F!ÊÜ4Mƒu"I'‡o#9È–é€ÑÐÊŀ햕3`o.pèýÿº8rbõ§üL¾/AcgjlaoAè>øƒ |Øü&6+‘p3aጹž·NAÆzL bze{‘,NÆœ¦ËµŽGbäS¯UD:œ ØÈ=8JyBå¹ß‡PËRg2•jVStI ²ãµ%~Ù7Ê\äƒðHA ®p}RA¤k§ì9'¹ÕzƒÐ#JqÉΣ§u9Ð9ä3·u¢„µ>ðžÚ`-€çteqŪ¨tÙ¢12::ÂùxÅXs~`°’úí/è^åLÍA¶¨@8àÆÂÍ„I’,+qÚ ,…ÁÉÅÛÙd mam ù„JîmÇhüLó·*µ®ùcÞ‘ŸáÐf&8zê²>5™ù›ez©vèð-ÁÅv¦˜±zÇÜ^tÝ…E)Ò󆢂²4l1ФùŠóQl^üLr²º»ÿ*yn68¿öMaнñ*‘Vc™š—]Þ<À²ºU¡±¿çm¶^É|`ÅÉÞËAls"|[Ú¢÷Æ JK ™×0»xÝ/aØ•±1,#®pvÝ}3oW-ÚÙ£wGd鿱°‰vÅ6•ýP'$Ý”a©€ñx©í_-€'­i·r%…z“‘ºb4ö¦¹›`##XÙÄŸm8ºiFÊàküMbóyNÂ8=B8Uµwd,·‡]1§ª*°ÛW¬ÿ5Ä¥°3'®Ÿ®]YþоäÒ¿¬åYQ Nà<ìýª´ŽÞ–õB[ƒ…¨sÓÕó©Þ¤)3cuKHx´ (ºÇRf°‡Ä0zu*w?}öúT¾MÜvüOöÏP¸)×5âÙí?ÇîÏTü@]ýmI6îÂ/Õ¾„¿™ÊœÅ@ykFˆa=“»B`J‡¦»‰q]šyc¯²Vu>U|øë½B¸Â'ëÒa„ׯóŠß«á#™h}üM!(:!=*V݆ÓnÍEÆ¢Š6㬷ÚÁª€R‚dÛtÁ¿ÎÈ &¼ñ¯ö÷iRd#‘¤¾aŸˆ–é{ëÙÓò€kílö2H•½¼§Ói„·¿Ò‘ : tÐ)×€VWÍ ñ%âx³Ù.ᱪr30æÄ¾à=³*ܵ²(1/TøüÍ#ûÍÝ+¹y/qMèùä<™ÛtïùDÀ~º×_Té­“ ኺ·6ç8£i`nSŒšvÇÀwEÍ.O†|9b¯ÐY&ð*?g¯ìêÊár8ë(A¹ÇË¥ü. ÊÜñ7£’_œ}8É–L{¾Æ—FzÈÃê(tX¢¤ækš“!^ ¶~°­Ö®Ô…iž«žÜs±{M¯7À`©™áõßÓUë$Ì:XlUȪ»•”v¢-èHP+²׿ ìÿÇ̤¦V'nbÌÎu¡;V$à©9A ŸÃJФÝGhäG`X1÷æû~´7 s `…EhèÀt<#x²q\`7éÓqZH„t+S¸à¯?–bØHòÒ7V³ÈÙ–V”˜W³Ïç¾ü}baCTÌøO²’¹‹&¶n³7¡Î=¤ÂyŽ45‡óYÿŸ2ÒÐ19Hž·öa=/Öþ·ȘXª)º*vã–B‡ü=Ò¿èV2YP ל$rS+¢-×؇]'`¼ %µ|Ô~¢‚BrÞà½ÌV8“<®ðQjç±úõÝé]§R“U÷¢–Heîp™eYQ¿Ü«7™þæ2Ýš"`w'KaJZô•uv 6|I×;ý†®ª´áÛLjžm_¬â>Ž=Õ%Š9ämSŽî„¢šèWŸ)ü,ù†u«‘˜{/Í9È?HÓÓ¦—SVõYŠ×oã5”Æ–5ˆZ¼n‘ÉÕ¨Þ°äè¥(οµ7ÝP$ôdü5,¼±§7?¾Êv1Љ‘ç̪œc›þo ånèh³•ëDí9V·} nÚrfÚ Œ·;2ö&œ÷„Ë+ÒÍ´`üÞ4¿#¾uä‹(Qev°'öÞÏ–€äé=[”X€‡µ6 Ö”:álŽ ß¿Dœi°°ÃlbmEâuòõ~ãPïÝÍ¢‘{ ká Rñ£¼»QkÓ*ýûmnXÓF@˜»yØAéDÞÃí„ÛkIBsbïôõ¼ÓÝKÎ"»°ïêAE¨€BЖêºà!‰_ˆž;é¡Õ¤°3³Ê?™üL«LŽû ZèÆB9ý 6;bÈrð´»,U¶´89, ½\+à±´5b¯ìù6¹Ôèbª\·ŒÏäJwy‘zÏ)-Xƒ˜v|&¨c¡bhþµsK»¹ºE‚öXfâ8RZƒk8³qîš¡ÎÓSÍV+ó41²‚­þE—€…AZ ‹²± øLù`ûºS ú}|œ3¬.dð÷O¶õ-îJbÆ¡@2¹nÃq´¿i뀄NÞ?‹¸åwr½ËB¤Z¡‚oØõÅJd¨c+üNuEÒ[ÛLšR¸'˜.DöÄûb—›L|_T‡æ)¯¯$0U˳‚7Íj$zd¤rB¯³Î5rTKã%÷\lî¨FÔµbÕà>÷ÕÑäÄàœƒHr°¯}̯ ËO=3]UÞÉ,áøò¼®º¯'Áë7×|Î!‡ÓU›+_Ã=ºŽiâFpûC¸½i<,. Ó‘·t’JŸ@ýh\Û°… ë÷¹›ë,%ÜQzMNõ£"©Ù«•0«ÍŠQÇüM2=ü1À²zCë“bšÝ{a1*ºžÅ°²>Ïí3;0LX|L0UÔ€ÜCîÓñôšBã~Ô¶°3¢"ƒ<4f©“ô9$U¯ 2RÿɈÛ3oW; Ëô‘€áÞºFl0jÿ¬ÃÎèW‘ô2Mùh(Τ($eƒ­‰º˜°]cxy6GdÄþló2 `Ðe ð¿•á)¼’mKœ›¦¨á¢²úI¬0‹¬j9LÔ“@E«B‹òŠ»;«Œ:mø×HEä^Ê2uÓ² F:LØ­fF=üM'ÉÎÅ$¶BŸßÆÆ ŽŽô%VÀ G9ã¾÷LEŒùŒ›[Š4‹x5 á»¶{Õó0Õ‡ñ)v²ÖÉ®‹1À—¶ìEĬ ÛÏqCäœmÈoÜè¹Ã0¡Í©!˜ëÀ×_н+¶Xúšh|š¶ûÕ5µ›’N½ÏEeý ­¢ÞðyG@à ïè‡aò…Eß‹ÃÄ}­âPª4•„"A•ùN÷3ΙËúË.Ùé'Žªé™¨N&³œ{ ZÕìzR-uÛ¶¨$Mô(¦`|’üLÝ[˜ŸÎ¢û0eÕ(6z‡Š¾©Ú9RŠ÷#Ë K I=˜*Ú«DY+ÌJu´‡/ˆ)>ë»p}B£ÛV¼€ðÉW•ú4bB­ÜIåvÉ~dذjPLÙ>œ‡øÃÌ+·ÔOa”s.ùéFù>MÊùÓ«hü·ZͺmVFØÛ<•kñ‹¥±}—yÅ?§ï'}Òh­Æ3xi#ÔáVïú—þv³4|§ïÌ™`þK4`žkyi8¸\J“ƒ§ ¹šR[z¾ÜhÎòa&f'Pwr¤ü|¸5Ý òné ³î¨¡¡³Ñ,D/¬ÇÃ!×ôK!E~×Äý=ç¡Ìµë--‘žÏW>¸–hËAkæÉÈsì‡aœ,¬–\NúQvÛ¦ëKàmbRTvÍ\ ˆ-a"½&@a]~,¼`€„¥-´íÚ.zÊ V££Ñï¨+¹¬c.Ű:ö¡¸‹uÉu–†*ÐÙùMÒòØ3køsË^ÀDj<-Õâ'|âJ‹/|™¦„['²&í<:[S8®ÒjëY!)zPã–·Ó¬ÊÉNLŽ!“=²³ä✩Úû$:>ꋢ¬SrtùÌ8î¾Á‘<ñ§­“ýGËÛ_Ò‚èŠ ® • knR|5Éa „¡·¦s¥;1&0{!ýÖà¸ñY‡SÎMG4, ¼nYES‡³ºáwl6Ö.Œiãû­QßJN=á{7m1[üM{i_ïÚ™–G2š¹p1àõ¯M_÷è¯6QÔ¢¾IBiÊé{Þ—‡¡’VSÖeÒrÝgÏ©Nr°g }-í´ P\„Të׿ó±M÷d$ĹV9D•x¤sU‹ï«.¹ÎˆL^Lû·¼Iþ†ç¼£Ã†lpŸéO„ª˜¤Ôë›l·€3¯ƒäÑêYr=®¸ŒL¿ŽQ®|lï£Þ}ÀúÚ‚”£}w¼‚×FØŸUy²€ojvžÔ@Q˜ ؉2ÿôMDù‘8ÁI²?­S‹¹°oüM±ºL±˜Ïê®$ݳ~^« w‡ö“¦~·f'¿÷ˆþ-O—*~¬x‚ZÌÕÉõ½k¼cåóŒ®7hï4?”sF#n†S _+@FÓ"‘V’ˆú[‰õJ(tÚÙðIç{b­+ÕbÎd\¶€sF½¿\À÷|@9cùOý$óùœ¥ß–qEÐeîQAF@^³¢'Ã-ÎXò1û«Þ €hxõw|4WÙ;Ô¼÷æ©ÛP‰¦4oå%ŸôÂzFÌT.íÌíµN x¶Ó)5JÛj×FpOggSi-ýÄ n?®Ó †NØÿÖÙßàÛäÿ%àõÿÿÿÿÿ ÿÿÿÿÿ ÿÿ–ü÷ÿÿ ÿ÷ÿ‰ÿþÿÿ ÿÿ ÿˆùõóÿÿõøöîîÿÿøüL¾\›rÑQ~ öP A<“˜U5ƒ " žñšØXv!–t½=J“ÇZZ÷X3BùÒF2áƒVÚ$`fA¢Âr̃š‡Ö,ƒQ\ÚbÔypjt›2SøD†¡Lû;—žEw·¨<à«Ýwó §Mæ Òe¡Wyû£‹£%H«<¤wàPÛê8†q³Ó+[Yèýn> ÈNÓe˜qf(Võ¯?Añ&~\gšvÓÒªOÄô»;üñ&7êÂ…qIÛz1ÊqáÜ&>{ƒšCDãF¦euÑ2HeÒ!Tü¦üMYÑ'ú6Ôæ¿e_¡–´8oóµ3Ž®.Ê 63gãUÂÆœò—l~ßôúuÂÄà•ìUB´ø} †Â×Mž‡¾Íb®ô¨-e [Ö'%K¼CpÚ𣾛>ƒ"±Ò´j}Ñ„(ÉÿªhÄ<ÀvîlNÓ&Ê·Ú›7¼_{ï•0N€B¡/lê.äu«#é*+¡g©>Óž š2Õzñ†–_fW©ð ¼ö£,ùŸÞš,Kg?õ˜O°j€hÜßjÈ£SSÓ5ØíøBšm™ºŽF9Ÿê–‘ÎÿDš Rë5'èCǹ–ËÊ…Û¸QÿZùÞ6ÈyeùŸ€‚°¶’UbGS»%ÛͽêOåfÂ÷küNQ¯Nig’ÖPŸ9pûÇ$)±Á·}ÀøA΂Ì…Ã㬋½.‘HÀDACRÅPgÞþœžn¦| #Uß¶4fËw›ö]ˆÃ aGx›?*?ÞåœÁñ‰í^NÅ\ZÄ N½!õ¨»wEó¾+ííÝ‹÷)Ä¥¾œs»T´;Í&²Qò4„ù“]qH‘½€gH¸¬¶Aج ÚÛ= ZÿÍ|¥åu±—þjê?]]bðäÓñÙ„€y€DŽàÁfi×?öùü³Õü£0’µGU²™œ£Ÿâ# Ù¹ÉÖGÈÍ׸AJêï ¶BóáTØÀËtø ˆÎ¡Ð¯™{Drï•ÌÛH ÿ~[ÞyÉqŒÁw AÅó68L‰÷?’¶#ð§T©ëMÚÅ“Gî|SÜÜ™Ï÷…g­¾˜ô^º÷;|ªý îÓšÐ}(« Ë{0H´ÓUÆçÆiß6–ZØží×åÏaÛSlŒ¸(ÊRNš‘»·óda£k¥ŸÇoJZAWõhME šÁé¦ð¼>wÙŸóŽd8{’æUüLÔÝ ùPÕb¹^òIè2êrLêøMàŒ·v¾ÊJS"E’ÒQ.|…>h™Åµ„QÄîï§;Àf¸¸•ÇÖ0ÙÒ&_ÙjkJ&úmãSÙëPËuê²÷‰6ޏzºÑ*a—©ù­ ’cq>¤HwÐçbüMdS@`\¬±ÞgÙµj@ÂóJðFW2g6–sÏÖàßâõ'WÐà6‰kŒõ9è…p h³±Ì®¡âVs¥8cÈãL©WÝx2Þ6쉞ØáÞ¨ZU÷8¨þªý;ð¢Õ†K'¡E¶t44 ¼WšëHag¬Y%·zÓ.‰žÅnTñ*QÐ ŒôªXá5Qduã¨(§Ž«†C×y ™¢¹ÕTå)ÔBÂôÂÆùÄ…ü¯5Ê„axÕ2ÿÉô)þ<ÂV“òiFœ¼ñè½ D©]6ÝñC.7Êö*îr¤üiÝb^ƒ¼¼FŒãšæØÔd­ÿ LÔ®Wñã"ƒ’™؃‘Ò›)¡|>(ûWj¡X˜Iq¹£¾| †Xh?Aõ3˜o›Ìny¨‡¹Ê*@¸Ì+!ÀÄ)a†¨)Îpéd}æÛò—HKîýÂ`£«¯Ç/—Šu'‚ÏÂ*«ol[ #yú¬UÁÉ©KZŠ×ŠC÷§Ô¯·É8ÉX™rÄðˆÅê~ƒ›Ò³ÒŸä™»HuÆ‚üL¾\t]Ã>á܇LÑMC·ºYÒSJÁšPw'ªV=töMŸg±Š³#ÄìqÛÓm±Y–kúÿéºK4â$€Ÿ]=¨@/ycR9{)àPWm‘{Ò=Jb¸A‘02Bt¬ àäB>Iš»]Q*Ni9ß»LŒÝû¼L^^—!(1ò¾‡>þÌh QF3«‹C‰ƒ2z^CÒjÌܺõ#Ißj6úáøˆÌŠÀÆožZÍ£÷YP‘ã'd8Þ™Œ²m1ÞuD¿€e™ •Ðá–%'œvz¨³Fª‚ò>ž’ TKÅß6©Gø>rø_uS›”ªOåÏðÍò×c¬`ëݶðLµÂ²¸2ûžR×'ºæ+Îßâ¡¥£üX¶Ü}jv=w ¨˜Ö¨Ñ`N6^˜Ñ˜éà’ V[e ŽšYÎ2a‹¡ÂÕÕOl¸c~#d2ÒPªLp $@O@¥«ó£Hór¢bX@^¯ ìñ„Ù#w|Ãänãµ7ÙåîÏÐP3ZÃh§¢³:X¹®fóYìóü|K>ù{n³V1lÚ;tëÑ ©ÆŸˆ@Ç5§twRò¶m÷4‡¤|~ô“XÁ)Ù‹Å]ñ! Þ vþ, 5d4wˆ¥8Óê„=••Ï OeI–"m"Öëx góÞ»Ofü›¸xŠýªK}J°ÆNÐ7—Ú\)ÅÅ Î~"²Ê¢PÙƒ¹6UYfºìùiK®œî§|WMÍyÉç§½I!~j:…û¯RÒt~©€ŽÊÝÕ_°g‹ñØÄªYõÔü'æí+¼e¸qO5qþ ‘Za-gÄIU5«2%X‡ÌOjýxJÕ?ÏÿјKãœîSa¡ØÕƒÄA8i7~Q²ÛòÙrV?YJ Á?²«m";5 ÅϪÖKñp®AÂêá}ÃèäZ»€«Ù͆†rü¡ó#¼€cª ¼~ùSÑ 8d“l}'NŸ¶”Øz˜Ó GE4Õ¶ÌÂ’[J‘(Å2Wü›¹¯>n5Ð¥ u¬ÒȼÈѧ¥<) (è ˆ‡U),`8ÎÃb ’í¸ÝNxmß½~,n(F±ÆDóÁ +ÿÁÕ~~jiSNïH¨Ð?q²8Ø´t ºÿæ!E¢Â[MX ¤­å þ—D—#¶æM'<²\¿ó§®-žs"G§{\ðwþ&lÊèÝe%Ò[(—°kGý¶~aunv–RsåMtæMÙÓ›–€9tBQÊ=‚CcÃÅ'ƵzZµ{µ³Ý!ÄeuMNµUNâNºh]™/íNÍÙˆOH÷2ò"‰[¾ÉYýŽÇG¡—‘¾¤:BÉÒ}ˆ™š8Ïȧ‹’Ø0ÒUüM’ `Óô8•ÂPOæY’]6DâŠkqk/b¤àã*:Ó¿È-NÐ q8'ÛíÆ‚?V¨®­Û&tž§Ó™ªõ£ïÿm:ù—óæjì‰Á}¡rsdL{Í»С7ö£2AUh埠g{Ý„“cÍBÕ ™.5Æ:ÔáᥠŽðž»Ö-žÈc¶ù‰ðuø# séƒÀÑÍ\EMc¿úŠ "OE5´m©¦zþ4!بÆQ—ÄíÅ–±$úÜ›Xî¸bމ¯ß»^ÆŒàÀ·ÊèQ/:‹#›¶CŸCuù.¾kbà/ÙùV«"ÐŽ.#¢VœC¦!˜Fæœ6FRÄ#Ýw÷BN.k²|få¿=ÁÏfïSÍ6 ù Cù¾Ë3ôPJðÑ¥kî–m q¿2:ÉjÀ›C¦>à¢Ì¦Ü!øýÓ­Ï5xA6Ö¹O›j³7[½#æÁ#ÏsÿÖeBfª ‰ùp A](,˳Ã~ôú‡®{IžA5þÁ¢ÎÿЯn/•œ Ÿh“~†’P„¬­:s…c-¬v+œÞ0õÑÒHõ¥kQÕLedÿf»®N±¾y4 ‰¬…£öAé’˜ˆ¯®¨Âê;}mà÷€\üMšLe+¾™N¾»kR® Š&&A#Y<ìöQvŸŠc3¨zì¢á!{d¦ÕÜ{ðfok‚©¸îóCŪñrk$Å€¾Õ131Li8´Pz“k+KÙa…&5:®ežÖ=/S˜-›ô¢lümõ±ÑaÍïßú5‹¤% ½¾Ó‹P ÂE²òªôÙy8' D©âY®ÖŽd§’=H*A„*f« ]ÛãåÞ.`”‡KTÖ¶·Ó&ø‰L^u[&¸´(Dáñúl¸5Ìp.÷QDÖ>BkÕ^ðŸP}o<âÌLáÚÁké«ë­ ²ü&5ФrD'>Ûèãh¬h.ü0“p¦"üZqPø ›Ï¹kð5ׂ©?Ú 'ü­â æ 4Ü^¶Î¾Ó)lªGXldö´dJE‡›IÎ|arí>3H¹&7Ä&ä§©P¿Š”sÞæÚ~R‰õ›v0%|¶³%ühaVB“Y`(ŸÀü¾ ’ý¿Ã…=ÅßñAV-¸ Áí‚QJQL1”ó&oèB)(y@lž«K€v@¬³G`ó9 Äy/cµ ÷%¾<ä(ZbX{2L¹ºÛ&ü»_ŠY¶©éxÌ”þx‚ðÎßÿ¯©]-ü É¢æ[’°›òõÂîøÔE8GúÛ§l{é«ßÓuÐV-æã¥ºóßÕÑß®bZSõ¬ºŠLPóÚfÄ=UÞ°G»凿@üXÄYoõÚkœÆÜ7$hÃtA‹š%ImÒ‘4·+ßwõ¸;Püž¦¥­É‘ÖM´S&£RÕ(fÞ«ðµ@¸Óßf3tR‚bìírk>mJ“Ÿ.‚*ˆ z¿cKEÔ0Éjzß Â?ùbÿ´NÖAˆ=¥×¢wYÒVW@ ÔÜøNÔO§3ž½«ø]© 2^x½¹'ò¬ºçKÔ–ßMÛ ÍþÝôÂIâzµiG_=™ÔQOòŒP)Ùg4¬âøÂ~7á“K¿D]¢4]ß‚° ‡dw8™‡qêÖ¶Èëæ~°Z’)ˆ¼D·þ¬JÚüM`+IÒL3Qm=T[;Ñ‚™…³µ¼°ž¢ÒId¨†$C”?·Rá˼„ûÜùlˆa#S’i‰3Æÿ.îÛ¶ÛI0b-¨ísŸ>çë$ì˜Nq„jP¡ó)5ÐYmŒ”?Ì¿€eKÅ]>\cNø‘­îŽÕ—„&¾á hûgçúåÁ#J£™gîuæ/¯ùÄŒýª:Y¦ÏÆöÀÁ¶xêwQfÃf‡mÛÖëg\—v‡}5ŽXSþ®y CI η®…r‹ÐŒ‰ä»é³K¡»v;Û·Ú,w£òß"SØÈYá:j¾¼ÆöñH°ª‘õE¤ìË'Å Î2A`™9»ã/K³ÿR5$‚Wü£Â”Ìiá¼ZgÏ#]°q¸Á‘©Ý“DB ¼„ âßb«ºÔ49ÿkxoðL …U@ð‹v{,Îöµ+¹úi‹½¦ü6œãRZF=*nÆìûŽ¿«±-¶]zj>ˆ6ûA«Êñ$½ÿŒ&˜û®,7åÿÜ{êRÐOqÑk‚à ¹^6Oøñ–y-ÂE…k¤[ªó,`R/:®îIguLçÁ×…k…³»¤!‡¼3´‹Dª2!(@Mbóʽ¶òuòuÊa‚Úê Çý‹yW²by,a}¬žšÆØ{/ç.½þ“í•ç± nôÆI_ò¹ˆ¨zA•‘ ¶ɽ³e ¹Õxø‚+}¢÷‡µÖÆB]دû&רFœ$SÓí[/ëšO'®ôï—¬>îêÜiWfžèóÝj­õöȯùßü|®úr¯p)ËEçb"ŒÓÝ@ú³^­%sL´¹Ý$¹+&~ÓÑz‚ ì¶š»8»/ß4#À‘8e…»aÄ‹¬ÃÒ!¹MgÝä—Iß$?«ÍÔŸ³gš"8ë†fgy›{\6Oã3µ˜ê!—Ä‚çë8v·‚Ç €šãà5…†öã§WDñ[øü”{GqŒBVΣ“¿46êæ§ÛŸ™=ÖtÆmÓ}!àéê[Ô}ù-ò§°'n  ¹q5¿curºœ4€ÃІ>ÂäUÆ „ÆÔ½ JH€Ñ”‹žÁŠ@/àb4¬I4? ^C@vî‰EôÎ:…?$Lðý~8õÓž&³sU{ÊoTï#ÑÔ–ñé„Ü#ÈFÛŽt©aƒ*«¼ØzÂo¢´ùl2Ðyëø·œ«ËÂY”°°%s. æ¨uª?‡i¸?¡~Ôþa[ ›h9Ï Rü6ý`¯/y6_©I*xº+Ö_j!9ÍVD Ðý7\äHì‹ÿ0øe_kjÒѱwè"â§´ipï·Ü6LøJÎ7¯d%ŽCŒ©s'ôo ¹I×vß Ò˜± KK#Ôü—'x4 –F—BÎ@[•^Pv0(–üÁ¿å)ë»wB"lÈ×">1³¤<º`k ¬kcçÊ¥ºÕžÜ ºÕ2‘]«'P¬Å¡‚ˆH#âW@92C0*ÚVþð8Tbñ‚ïf¸üçje`¹;ðïäo¨²Ëï›p+Œä3,Nù#]/¨ªî’fïõeJ“•ôÛlO6ÈÔÁ/æÅÐKW[^::>+çÂÙ2èYáŒÝ*Y%.W¬ØØç=óZÕÔW 4a[CXN„Çl7˜ÂW¸‘iT~ì ¼ #‡! uR‚\ܤ­6½³ TS>˃}nœ[:JzÍäX¥·wµUÍF­‚šZ,†D_×b1ßÝnÊÓÓ¢8(àù)]ãHZþc4²|HŒUÔ¹ãÝTËÊéyü1‰’›¬õãÎV@2C?ªxmrÿ™æE˜"˜ñG`€íxž„jË¥ƒB ‰Wð³'mTtˆªËöxó¸y‘÷æªêÆ@£Q/SžvÍÁ0Þ0é’¥¬©7¯T¦ÝUO~Q‰¸)is’êïºå•=lqóÄlÍÂ>Ñ@ÿÜåí! —rƒ%ì“1™RM«B‹î©KYj°Žóòã3È4²ZæGmx>\a¼ÎvÛäªçÙç¦q0œîÔÉ>#çÂÐkuð]´Á"(§ÕAY1ÃóÅFqÀCŒÒÃO¢¥Ìl¨aCÈ,WR¤HÒæ9óëR†¥ %Ií‚c÷C„S«  ‚þüL¾\V½líyÓýÅ@è×ðpWQE¦+uÞ9˜ëÀÙù‰Üñ v¹+N;Oð¯{çO¶]Ø1eÌ{–k»„:U.bwÑ@L"#á—Â;à!CCul÷Æ:ÌÖI&@¸ %H(X³,2÷Œ¥ð1ŠO ÕgßZ°þA¦?”êÉõèþ¢ëór•§=sõ¡Y¥›íÌ ;Fq!}·×a¢o‹°î=Œ÷“»àwsy×Åú\È’0¦Âa—4»È‰Ððñ5U»âV‚d—ÞeE•âÑØí9Éó«šÆošÚcˆséKÀH— ©pý‰G3ÈR}è'»Þ–};T˜ÞQð Ä8üJ C5u°kTQ§èøòû:wÓ‰2}wˆÃ›÷a~å5ø@¼pa—6 #´Í[_¬wúK6m”!< Ó¯x`rŠøÿ‚úêxRóÐôgŒE‰1Wö½®ã¤(ÈW* Í¥ƒÆê{‰wuI²©ÚJž4¦Ø’ñ/›g”nruÄ¡m:Ô`ZØCnÑ™èñ®c%«nùmÝkìÿû9«|_7ï5e ßnX Ú…¡¶úò¿ØÖJGÁsØwµ:?, 9×¢Î$nÙãÞ“ ׂžš¨a®`t“•¨G•‘¶à¿ Î)Ž$Ú¬ú©=ÚÖ›ÛûV¨„ΡG¾ÙÔR#ך±Æp:üLÚøËh.3k7¶UûZ×PÅ”Ôò`Ôé¨^†£ôçï(÷‚%ÓûUÜÃÉhn`\çÏ¡ ¸hp±ô £â±}|8@úÙœ6˜?÷,%ˆÁ‘Á#›Eyؾ¢ÿ`Íò„Þa_EÿŽ`_{\ºB‡,¢©yß”màÅÃe›Ï10Z=,<%{C*¤¦½ùi¤-j%¼ÿ£ŽZL.aí°Ú³ML§FDƒÕ‘9ÌwìU"OëFÇLC¶r”K @%Lõ>K³Œ™c¹!‡¦;½37êŸ1z(ÕØ¤ôÁ¹HÓ öB¤kÞ£îvÔã¯Ó•ò®üô픕΄Ú(þ?ØNª°ãU0s·P²Lò­†8~É  Á-o–CO¥pDÈ$Çu—ÿ_— òG<,»Ëß7¢è¢[޽ÆÜLt;ߟŒ*Äeh`äL&FfäõÁ.íg¿Q]¤ÍQß2íDÔܧ:op ZZ´Zv Dc‚«ƒÿŒ-ïb©›./ɛ۟EÖNÉ@ß"ðÉ´µ¿ßÙrðŸOГfå¤üÛ.•f‘û>5CRáØãj·:ánJÀÁnÉbâÁ»/çÜô¢Ú;úÞ¿æ‘94æy$(æ„0×xiiªíÃvHJ¹Ù*”x^-ïÚ­®Ë?4”|œÊ™Ô%Æ´é³—ÛLé0Phëq±î‚Ipú¥ƒæ¼ù<ß¹† © íu‘¶=]Ó.ӳÿIîv„T…tˆ+ÒWw„m*æjÉGe!{e %œÔažóË{†iå[¿Žµ*õ0Ç¡ˆdnü6ks\ÁE&®dô15κ5‹%Ícz`l“˜Ïð´ŠFéÚc6‡¾ü\TmÜo]“_c‰¹†¨U„ѨÝš‡w¨·ÆaœÃ¡Êmª~­¬}Û.^éŒL¢aäpçãhмRA•Y¥í¸B×ò¨}ù¢r""_ݺIשc3x€ÿjOÅHß RrÕhг'O%y˜(¸¸‡WüñuLD‹–˜Ådz~xs8ŽŸ';“#£x˜tš¿í É£ Œ…êø)ÓŽ½Ø5–À¡Ïüñ²&„ìWöQ^ë× )°´ùL2Yü±M‰DF0KÙW[âÁÿ#ÕH-DýþÏAç™¶³†@d>$w  ìYߺÝÙiŒêæfÖ¬±ía$»‘=¾˜ì;ÞTçjéo±¾¯ÿp0‘f@º%»ÚÖØÚ/‡Sí<ýºúâÕ(\D²±}fëL¦l0J TÈ A„+5üš1e:]%ªJÃä·¨îi¸ ×Ňå좥øo É–{ü®o(ÃuÃcyŒ–¥›?˜Ëƒu¼YðwŽZú`›¦Šm—ÄÐbìlUÖKE p&šTk¹¨¤ÈóUa“¥ÜÃ$ÀÑ=}a'ùC®.¢hîöW-ØqÔm"Ë@º¥¨›NKÆ#­§f¾Øt/À¾˜+¼/->Ȩ¼ãû"¿éŒ7DËÙ`Üh€÷TBG`•Ó|XÑ¢Xó°¦8ÙM6º_i0ĽЧ­>°U)oƒ°F\5ž7¬Ñ#fÓœ“¶ì¼<-óÏî?ÑÚ]Ç<—P|?±¹åÖBdÄ;»È uòLük¨º²hˆGÏ ÕqÙÿ­xHÊìH˜²1ˆÆÜ{|½ü¯ý½ZÈsÔì¢ø÷Wúowš·Z©ßòÆPÁp2è~›Ø4ÿSVaµ@ц ÊIýæz5ÃÌ¡ câtÐåÈ墯eŠsót.¦2%{ÀB™ rÞ´>j ð€ž2Ä礼Z+뀼§›F”:àe(d¼Oÿ¼MÉ€V"=yÛr©QÙš G±¼ú$L¤{ì7f¡?E£‰Lr8ÌR|NLh’2tÖ,ç5€NâzPçýºWÔõ¿³ý¨…¤êß v@Ɔ¤»üA›•f€ôо,û_ ž"b”õWùF–"=>€G"åˆf¢r}íxÏ®b5—@+õ"|·ÉUTªxuŽ[šnoê‚1ªKÒ ³‰ó9“½‚×ôtñmë®¶!¡™þSÅä\ë¢3­¾KEw2;s©RaaʌТge‰*Ç’-O÷Ÿ¥9œEz›¢~ Ôb2“÷W¿fîjÛãM?þɵ‘ˆ C3º‡î„_üM|»m˜7sª>ú¶@î°5µðì>†ß¸Ú]oÛ¶&+¦²Ð?©9i•Ai+]èb¯xíc=ÔŸƒ§¸I¹q$†h ü …^Qš‘ÄH0èòµÈHzoÙ©.ròïDÛ’nÿåá *¬èkÀÕÆlW•=•S6dÆ>õÛQE`ÝŸ/Pœ¦\ºöC̦?Cø§9§Ö°¼+Ä¡ŒÔ"=ãà§L»§à¡Šè9mýt3aõÙ˜ÄÒ{E¶ã/áØS™æÃˆŠŠ÷îw*lvºm0"¼¹ž8Š3OâùE ÿä @‡*\’Öš/‘úò< *ÃãÎõÒ›ÓÖç–ѨŸ°¼üMYø#ˆKø3Óš×¹–ÝëD0¾ž5ÎWÝXÐ0>œ@ ÂP[Ñá3æ~«ÑÿgD³ \…µá¨]“v™^ð.M&j*þâê°yˆ-Ïá¹Ò7þŽHT_Ø2¬¤pqŠô¿#JÔ£ %CÓd½n^ˆ'£¥0|mQq,,ý" ¡ θ˜P̵M•Ñ:RëP66©‚…é{½!ÕA?1(RŸFoËxͰ4 T „”ÏïÔñwÛF¼°#¦GF1̉‹^gÇ:À`žÛpHqšü¬Äƒ&í‘lRoàCØÔè-!sO£`Sƒ¶†@ó{üIŒÆ8z2´úŸÿ,ïö›•×g¿“Oì. ™Ð@²ºÂ|lfüB$fdJ'ÏÈ¢ÑȺ‚ª±à±Ä©RÕRÌ;ªòăÍXì|ëÏØ”.ˆ³Ð¡¾£9¼™Ÿg@CŽÖÈ_À™a÷Ô‚S#;ËÌS%Å[®Ø&JH{ð•Ç‘ZB””£Ê*QD8¾a£àÜè× ‹Ö`.ÒßÂþZzÀ3|N©w¼QE›4>v©]§*„pü¯9ÊYùœùŠÍd"³® ÎRaØLÀ£j¸¢¨™*¶ò>kÛzÚBÖÁ`’Ë/‰à‹þXWFß;ùì#½üMbóv}m‹ª½I:{=ôÃoµêó.Ù˵S[ˆ,w@×»Àeè…¶O‡û‰º Âñ°¹ºüCuüMæpSë¢s†Öé4{#‡Vëš–•A}àí¬ÏÏ¡¤S\‰K¥¿Ogˆe )³Î<8óS®á;W¾HgAq5¥ª¡²Vsœ8'ðÏ9ûÐlޝÚ×DZE¶ jëèÊK"¥Õ¸–•ßÔSÄ Œz9|šíÐy•;®Øü‡âà†J[3žÂ0RtŸì8RûÑþ½×d-Rû›ŽÎ¡÷ÕØŸñ¯ÕÜÎ3R—TG]Àãu[Ê×ëæä´dTègn(ÿûÇ>\±,%pœ6!¦ü{ÏgãLÞ¡Yú6·vÐ[8œWgÄ/üÆm/XTzc9•pËŸ×Ø4¡TµÅã´¼á—Ô¬®·åY¸‡ DMkçNós¤Ê\î‡ïÁÐ1¿0dÓ…·¹ÉD¶ïôcö¨ä)ëÁ¯Ñšœ:Îå,~k]çRs”·ÌÜ@þÛ‰ò™Sqœ!¢Œêã§quYUF‘ÞR:M½âkžöîÁÖfoÝY¨½ê‡ôÏ„ÒÝ¿”çÀc®…â{OÓ óLë÷/ü²Nrª½ ›W!=n½ÆÛS¿Kø#æf}W>c÷¦–Ôõ‰-Òßë·â®»Áʼn¨ëS¶i¾u“íËû¸÷mt˜Ì_#ÌömmH÷üNcìÑ]ùV¥ n¬7¡“˜ú¸©u€‰¹I"3¹¥5;SR›ÃÆ=  †!ÉIà`¤Ó•¸ÃŠÑlÈQ!§Î"ÀšKÑ(túØMä¶Î-œy¦-@W ]ˆÇ7tnÒŒ×ã1=•Ùîz‘öú´ì+õ¶ ©ó´ ¶Y£VÿF;QVüa¨„ç·ÝIág¸½9HTø®ô¼{!s1W¤hÐ]‘œ™$"ûÍp Б¶Á"¾22p Ïól+$~½@„—ÎáŠÆ(‰ôÖj×æÌønYeÇW1D‚JQ¢àUËŽ/±ü6g—¥Æ˜A+ïæ¤½!‡ RÛ‡ÜJsX)Z¿ ßq3ÿÉJÊ2ïGx2#l‹Eg|ù"W' ˆ¾›;ö¤æ\úTdo‰šsÂlñ® \]ri¡¾SÙÕq˜>…3p¿:¢{¸Bi€Î}¥ÆfÏ:å“™3nkj¹+ö°½íu3ð .°Z^G[/ƒ’Xl9L/ëßžú粯­õ !ý5Ú¡?8~ï,Ö¯»Ô/ÛdtU•×Q~Jà/NMÇû/ø¤§Ýldõ§ûQÜo™áÈZ–ÓQøò¹û«£éotüM!€dæìzÐZ½»1ö3p—zfÁ7>¾~,Å,ÀѤˆ 9(–±žÖ_Ÿ*m-{œcG/iláXÀ¯åpµÀAŽÇ‚±KÛ¢øÈi6‰,™§aâÚÚùë¶ÊƒHàÈØdªoS’ÏÇ©ËÕKîÈ·°£{ïxv“”𒦹c*¢ÞaV^àVDYUV 9…††t#ùˆ>Cµ¬P=vÇNob9‚ðÊ€ð®àƒ.:¸0Ùä:Ûf.Á¼Êâ0tEؼê­êžõÖYùå=ǵ+X÷Î-rÚãþ²óÉ}>!MÌbAâÍhÚü±ÉKÕþÑ/êVÆïÀ¥mŽC8_yq}êTÀ)fÌD`3 #£}ìQ†J&2Ä”#Šòü³"I{pdýø9Hã,fóÈPÁƒRÀË M¥_¢êJßú¬æ3 PKÉÖäìú–•d¿GHá * Þð€×—¯³:,ùEŸ  ¦’ª½Rq1w4B¢ ç>ñVÖq„Sg¢‡^-&êu!Ì+%«©ÛlnSz%N Ë Hµ+&ñêZëÅ9,?ùÚe¹GÈEõÂd:è¢lÀ8E’±éÿ½Ûù±«õ0lWpò¨?ô',¯NlÉà’KàE¡+åFûü±™¿©<&ñ3N<û énöZí)hÀëäÖpôÕÌUœÐ`¬4#êÏá{½5~Â$3Èš†aÈíU RvŒ³oâº@‰möw-ïDY.ÚºÞœýdY`ÁSR:@Ä91e¶÷‚ò d— YÅô^JÁ® "ºG…¬wµÐ úæ-£ªª`…›"Óž}X §Áo?n|/'+Wd>ÞJÚÂ^6¬W yœjè[\¨4yØǧÍ6GVm„ -$ž­£L4kã§94e”Ày‡ (Š*E:3±·äs¤÷iK3ӱʑØ–Ï$J„@“Ùz¨Ã;ïÓÖ»üMs½ˆLÙ“×£DÛõZ&Š«Šl§†7Ì{ßcCCGžøtmLÚdzε=áÈŠ¾‰§xGQÿÖÑ–i7aÜìØí@¡v0àhcÁjú—ªˆrp“ †Ñ>)Zk¨oœ!­@›dö˜_ê»’R-I“ѤÙ\Ý e›?A掷âõ>ç¡É:h`A+µ“‹À/KofÜ(ÞDí<]u0 &ÀþÐâ¡-</xªKO¯mW—b¶ÖÙF73yÊíÏ{øË¼bÙa­XvÄœ,v$ôGÝÃÝØžÀ¶Ö9±gïµ»û»/<¬å’WÔ7Ïk¸ü’ŠyÙOggS€$.ýÄ n@D?ÚYÿµÿ(ôùÿ ÿÿÿÙÿÿÿ ÿ ÿÿÿÜýû÷ÿÿÿ ÿfÿ4ÿqÿ ÿÿ ÿÿÐÿ+ôÿÿÿÿÿ×ôÿÿÿ‡ÿ!ÿÿÅòÿ÷ýÿÿûü|­Fâjj:Gˆa-ê;ŒÜÂ×PÁ”¸j\@ër$ý}ÍàŽ‰ô †tp2ƒj¶"`ì«å#!›¢úSùñtÖn_M9APm‹)&ÕaÊÒs?æaŠhR¶ê‡ÌÞ½öÎÑðT›¤ßsܵ Úÿ&9×*2âùGæø›ä’€Ý™7m€jå} EŠ—\Z¼¼Œê> Åöu„:–¯‘iŸ¸´6õz¿å@G⸠ yq.„oœßÈñÛŠ0¯ßó&(î|—ž{ö´NÓ†e85ž":Šðá)th¨’¢AW";“À`œ™ó5Sw0©—’]‘Þ™÷¾xlZ0ÛØ*žÍúorzí8°‡Ãäm©Õµ&¿½•f?É»ç¹T}HEF.B ð}Ò.ðÎpG/Õ¤Óâ H)õB9; eª-â“fÒå¡ï˜L{uÃÝÀíËŽ³<…ÿøÁôA­³[†ÅŒJKÔºI‹ºAöÖ;÷ 0ݰŒï0¤ÉxÈV©  b bƸLTˆðscÓɈs´£o- !L=4/ÍÿÄ{¾IX<á¥Ç껎XüX ï©“Nºt»}ˆk$ ß%íéKœEiNt¤x«H6<­r?"´î»CÛÿRÅîÇ´ç’ y±˜ÓžJè Ä#ùìºoœ§vŸ¤eÓYæZ3Ô i\õTcãõ™lfõ‘XÅ1 v•¤ Öõ§nØŒ­úi n0 ·W‡4·Fê´ðešÎD Ú+.æ]XÂlåé-¥ŽÍ“ÿÅÅS‰Xz‡¢Ñ7g·ÛâK¬¡—º¹“Òvýfmèà_W¸ýç{P¼ìn-5 –6Ú6‹+‡øÆÓ|ä€Î%ôÐn¾ÅfØñX**f°Önà_síÍûÝëzÙ"%7+“z‘$âî§À«„ÌY;L…Eߺì.¾ˆö>Úu¢½3ÊÑ ÓüL½Ä1à]LŠ¡Îm›ƒ GŽÍ‹ÃyGUìð¦ïp›Úz ^0"lõ\>JfÁáDªH˜Àæ8Â¥ $Q‘v%òdN6¾ÿJ{ ,ÉÅ ë ï ·Äàÿ¬»#âX‹7Ÿ|¹â€bþçÇÄÞú¯,Üû/Ç)õN]R°¢,¸_}»!Ó×›_|†rº›W ;w–ÑŒ•ôï’ÉÚH…îrÌ®GÈš.K¡&ú4Ò)o)%%(±¾°ˆJ³$ ôß0v40³À1Áb°Ýk1çW<°ÇP;å{5%‹°´ÕÙÌß¡¬È6´8~ìTnüN°Â`Á¬ ‰þŸÇ\—ùP\Íè!I-Ì¥çˆYvžÒÎ8rI5²ˆú‘Ìö™ªlŽÜ.˜‹œ·…dŤ3×Q^ס1üÝÇ” …–#û¸Fš/è poª¬àßFÁòÓ¦]ŸT¢ "p»¬vã)Àdc Pm[(J$“Aù}ôwz’ ÛÉ9y«4@]àÜ’;-LØbâÚMl+Âܶ5`Ž»ô@|¹µ¡ü‚ܤ<:’ºóÞy6•¾P-®²RË¿ÖÙùÙr^Í0ÂÆü-|b0Éèoå~0¦°ÝåÔÐÝRm=%l9VåÒÚÃý÷Þ‡¥9hüIõ¬céñOøE±}B~ô‘ ‹$jp3Õ"ù±MöâèAýô\…äxŠ1ÉŒÑ64S™—¾òŒËw!OÈw •jaDZ>§§i5'ÿGî2:Y³e•¬=n|´Á’þZx=¸Ztö2¼Àß§ýKZ[_ŒtoPòÉ$Hó¸_È?5ž†»k£öª˜HѦTÿ¨7H蔦e÷%ˆö˜lwÂ#¡ƒ2Y:&¹º6ù½ÏgÍò1p'm{Îõ”¯÷´w­üXÈ„*Pª¯ ‚pÉOÆG(C©5i¿åùá1ÝfàüOð˜ôΈŸßö®1T®ªÊƒ=ƒÕ<ÜŒÃ+ÈüBäfÝîË…;¨ˆXý ³ü±àš•£Q7 ÁDNÝÁÒŒ‘É|¾ž¢E ·Ÿ_ó½À‰âèN¤”¡ðã`²™{ K\•Œ F¨m'9ÖæŒˆÏ—ãh™” EP0¶Ód:*ã{üoi¢}Ï=?ñõ?ßl?ò’8Æž[z(A´¥üó=%]3p¦õËÁ¡ßìä¶yV-¯ÅÒ*þ9«ãÇÍ›ÙA·ÁžK ç{©‹A ‚u0UÏTZà ï9“²¥ÙÇÜãfö&Ôôf£5ñc,Ï:s€É×1åâ•U£¾²®B6NQ•„:3“ﳊSWQƒ¹I;•ÜÊ®ĵq(æAí>³M£j.¼˜´`úü°ïç%9 ŠØOÒ›H> )¦÷Ÿ£’À´bnÁõA?7ÖFÊãg3©då°¹n–Be§A‰’”ƒÜQ¨Gòï·J¨Û o’µuá~X?uª†¹Ñ£;*„5¼ô±›VAiGíÈÑu,¸ìÓï`׳ÛüdÕ»pð¿ßM¦Ù¤”€Ñ¥•X¨RNÉ¢ê;3oZýì¾Á—cÿÐÂó1‹ vq”€nà8¢yQ¾¹‚ ¾¼BßËQÀø5­û'ß6÷N«ƒ¢X“}è±ù+rhÂúۛГ{BÐ9¯7ðð ‘1OPc eÜs”ãPENÈyF}<3Fi0ÿVšrûü|¶ç[hib4ËhÆUZT±uû Ûª‘½M˜·!þyjfùªW6º)#ijÚ,8ௗÂÙä½®p—ap¦n$ýå8w`¿Ð2ᜃN÷Ð, YÉRÒvИ®ëZX«f‚.î> Žð0Y›¸GÌÎ_W/äÓPžl.Æ€úý|Ûän00mò/# ˜ÿÒS§ÍÉü©}ÒÒtÛuN@]eº“ÑÛV“i]·~Öÿ1²6Öò6ÄÂD¹îb¬{/±\´,ËiÜ„ýGâ.ú?‹lðlû¶š”ð0öÀçó(Ä,“݃f‹æ_ì2ÒZüî+º¨'5æ‰@‘|™¡ 1V`¾Óî—š¿µ€ªJhÅ4w‹˜EæØA5¢ÏZ]i¡i ÒšZ_£­›º0åFu†×x0B¿Ì+© þå#‹ŸWT`ð7ú{&Ểsø?«õ€Vâä1}ˆÝ³‡I†Û]p¥ôT8óžjj±¬‹äq¶j@$aÂu9÷|ôéEø…—C!t~ħºÝ$ý®¿,¹¬Äб]N¾_¾dkŸ€~ÿÈ¡cô÷íp˜=×½¥zÌ¥’*¨šaÔ 2µ¥] gÁåËd jø|çMüX’yá~AÂxåGíI)`'Pütû©¦ wv¿c H æ¯[ÏpLûo¨¯©MŽà‡Øé”÷°1Á>Œ„ëc %W—Ps¦8^œAÔÑür'I*~gsm€Í¶7_ÝÐrçð®[ÔulÉÍ\åaàÆ^›Šr~(ôX‚ÿPy¥*@ù9½ÒO<©1hH‰ù0“UÌý0N9x§ü‡nÛ32{Š%ß4oÔBÜŽ¡¼NüéF[ú–P„oRý Güfe YTâ]DK"'Œ;jT•#| H‰ø^‡ÞeÎËÌâã79Ž8xiæ]Ô3e`V]w6™(×òú·‡Gˆ,”ŠñZ?˜¾®)üM(>pº~ :i…óÈé¦TGuóÛ¹S\ØÓgF3‘ ¦WïJ²Jиà)9÷ºŽ'í†Xt£y<ÃÐZEùsßG̽ÏB¿Ï'“Ť٪^‰õv®5´„—€zh>¶«¿‡a •"efSQuŽ‚¸\ÅfÌs|¥„÷Ñ 3ð‚åç_Û©ºzÿ·já£~Y0견µkX–Xæ‡\Õ`»C¬ã ßä¿›žkI?¾ÚøÊ·Œ"„m‰ÇÀ8Z@ý_S$ªµFcäÈ#ŠU!¿ãÚiŒïÁK( īŬaïÔsH]sÛ¥ c!fz¹ç*º•^ ]PZÚ Q ™üXÕ¬è¡Pe+âqåT.NCÌFŽáK>†{›ìÁTÅ^USA,[æc ô’òO4õê™ÀÝa:K'¥A1Ê£'D<9ž0ÜxæÅ`¤(”·8Š¨ÔˆÝÒžýÀ„»Tþ¦ccNbÃ"Lù ­µÜ5÷’W /Q x.½~¿%䥱1¯×Mô¤KD¤ýe¹ÏU_mw¬M; ÓV–ÖK×£¹r–ÊCÉ@{³ßW±T&"‚g4Où¢õ޳)Iú¸hQ\LòtÃ…¸$üLõ|S`íi25gJ­¦FðIUåÍl$F»N@Œ½ŒD_àBH]¯ŠF×õ»ÍL ãªêù Ë=§@IÁyþ³Jõs=ˆ;œy7ÕUÎàr¯‚Mû^Ýt ŒûÓ.¿›:Œÿ÷ö´üÂÐÒÙ|ÑÔ¸j4ãX þÄk+Ô†$n`B®nµ×ÃÅà›p÷ta3^‹€í1™øŠ)-mÍu†'½bz÷ó;3e§ÿ›‡Ý؇rfÀÖ­BþÇ>:Ö‘VŽÝò¼›áE«;£×²üC¯9,nÎ#øO&Èõ¥"Wºl^Á“ ·nº0/,ÂskÁ½î5ÇÐ_¸q6ÝÚØcÍŧ.ô ¡Bü±¿)Ž\¶4ô*Mò‘@XÉõ™u•œŸðtØ²Æ 8¿Ú8Ôl*Þ;é.jôoû0€Ë6m:E9•ƒå,ŒÈ§¢˜Ó’ªƒ>ø)ÙzàvLñ þ/”·ˆ!µ…ñ0ïËêhÛ™h„½ýdK„’Æ¢ûÂíÂÕR;P…FÅÖ$[¥Rc—ÒèÐ>J”ù­îä>SÓôUpzßR·ló;rácµ×ñŠÀ@õº³Ô¾»íDÂ×°º=]4Ó |óOÕãRa<ÒÍà /UÈúBfÀä>ªR&uÊß[½cÁV¿ri¯òù{¸¿Ù—·YåRÙÆœQÑ Àø"±É0IñûPìÀxü®®ÆóQWæ÷A¬7Þ¼ôc±¼~QÁÅSÿG3ƒÍˆ'ˆSL‰_Æ,N¬$@Óöm1~Í[@ž¹U1÷kbºæªw1@kR‰vÌ{ïî’b VŠ­ðÞÇ…Aؘo%º£ óV÷Z"Ï}&‚MµÏâü©byAÑïP&ëFÉžlX¢·­õY…=$g÷Ƈ yMŽìcÏÖ`­¯gÏ>†¤¾÷Z'`\zçxÛ.ëÓ´‹.#cvÍ;‡ž‰H¢¿­Q°íÌ#pÄkD|—ûÅóÈ!‚é0³ÁŒã(×LuêõÁ#V=%w†ÌÏdx²Ðà},± "ù/Ý…2€ðfï9•ß9:ü|§¼öWM"Ëa³–f%ŠÍ-}mxº+/©{ߘ9úØ5Ð똫6³"ÝnŒ°!PÉPH±p^‘jžs8u-Ç|î4tžÉ.k½”¤adA˜9®É‹”ÏŽÔ’þcZro7Vé \ü_šû·OâPÀõnÝ•ù}±R¿xkD¾§Z^©I«õ§¢ŠbwzÝ u\ÞX>v*ÛÓrÏ †6{C[œ› :¦‡û©{¿@qMÈ[Ï' ¢»†t5R¶‡µ5×–ZnâµU\X e¯Uq©iÅàføŒ? ËÊÑqÞpd¦Fæí°ÍÕ(n£f•£µP¾É‘¢ÁŠpóªêrî<šúoº½}ðM Ô`6 óä¡íŒ )±%½kÞgåÕ̶6Á>¿X7V®«t 0CƒV|ì°ùý©OKÍeŸ˜°аjOX‹åØ·E¼ezÔG“f©ÔýÆxÊÜ'Ïf„3_–ty¥çŒ\Â(—ûuiB÷JtžbWå?˧ì:¿åsZÁü;½Ô¡¨ÛD(àMò@BŠÃŠÖ•ß×(xc×ìcåÉ 8½tL‡FÖÅ%I$0£¥¯›@™Ï,*Îf~c†¥€¥B¥+­ë·ü6z`½ªUst¡eíÇVònÏÜ$}NÝ5óKþYÄWÕõ¤`øåƒ¤[å8:a‰˜HD,ÀŠ62î}íïnûawÁç¬oý‘MdÁT†Ãé~˜c,àÁ"7ÛS0`+/SÍé.¦§§ÞQ÷ù­q¢O˜Ã×€0Þ˜Ñ)+ù˜î#Dç€î%)Rä’ó·êë‹g­Á° ©%Ù0E¿uøÉÒŽqηb3ø8QçN™Ð°ÇëoX Çýƒ£—7žÃ®%'Ô’+ V¿7™gˆÐió AVàt¤±o[1 3‰tÒÙàì±r’BK;†‡å¿ü/í -™|IbD« Й(|÷‚•ç•üIéU ºöì©HÑ›òÞw„?öäB+‰žÁÅZJd~µ~œ^bÜàä– Ì¬Iþ†b¶5äë)AÖ½›X º‰HÅOþ¡)6SL Ì?-§ß1Ê›l§”>xòT)ì®nuZ…OvhÙ\CD/F'N@é »P%Œ AÙ,øëAr§PsQÝÅÉÿ xÆ ÿËÀmfu' ˆ˜†fsý-ê¡§Îìy¾Ó¬`ô÷d>›¼ÜwêXÛÔæÁCµ¢Vwã{ˆø¢5¬‘ËÇÍÚÖ6¥g÷ßâ#î°ìlãaÄ;üL¾ ÖSkK—Xj±á]ܧlO›~þ ŠÓ¿ æ«î¢õà©q[M×_˯%~Ö Ë˜ìMäâ^‰ ÄiZiE*h‰¿“ùš{«i„8p龞'?’û€G*:µãÈÓT) ËCϤÒ`\ú5ÔºÛòäµqõ´oÂ%R4¦~;¤’`'røÅ[¹_))PM×.%AD RôçÚ<üÇ0\%Ý,tzÞ‰Ù §¾Èªá¯l%Aw…Ñ÷7›ÔÒÛêx¢½‡¬ÚñÛ›km)I—Ù)‰?®ÀÐA™T¨á§—N‡Ä©PÛ¯dîÓaI3Þ‹–Všü±ÈŠ#×Bý²:#‹æ¢a«¸‰h\&(|¼Fqœ×g&ÚK‰îórxUÕî×6m¯t†îÁÞiBKúŠ=ôfÙóPpZÒ^Þ¨ÆQ:®Ûlä4a*ákeŒ°{n} ÞìtePÆê‰Yô{”ÝHƒ{ºkÃ+Ý–T»œw¸³k]Á#î,²ØàåÚ¶›{8)óH£R †jIKh5ƒ71JŽ&t V*œ>QW‘±Âõf×r Ðêà®V 4üÑ 8L9OgÛvØÑ àæ^1\|}µ²ëöáDúU£d+G±Â/M®‘åÓ¦ØfÖÑ¢Mâ­ÊÈ8?Rê± <ÄŠSSo»ÂüBñZD9öã¿õ÷Qž.¤ù•P¨–¤´“@G“V xƒ"¯¤~÷FÒŸ®þéܲ=¥aÃMÖáQL’—X~^?'Þ_ )Þf¾FžQz„}ìÔÆõ•«÷  ܼ©Ç74zü±ofù=s;°iý Ù­%2ñù›>g´–½0_b¡Â8ôF×=½áíœÊ´Šk• d:ÖôKÕ¤gût‚ñ»66!j*æ£{V¥3¦è­Í>§‡SBY%#~Ï2*9ŽŒ·×™‘o©—‘ËÈd´q(ŸÎ®î¦ÞÂâZóê„.V “‚öÕçfU¾‹åóý‚4¬:§7ïÒ³q9øá¶ò±ä`*EŸÌ?ÂÜ~ÚD;aÖF½DD¶íÔ˜N±Í•<³·‹™[5ã¿Ìµd=jöIƒlèÒŠ34ÑüáÅCÖúÒééµ§·ƒëÈYîÏ lö1_ÿ„yê4ÓÀ뜷¥äP»NŒ –APùü|§ª·KÏq"îRc>q¡“G ƒìÄ]„:øÃdQDÆ@µïúÄ-û™:<‚Âyòš×r3ðÓæ™kËF”$Zãa—gp¸â&vof¡ N|É*ïWN˜„|pa¨ÎGñL,h¶ƒ’ÙÝÐ$ ú¡czñ€8¶¶¡|WíÅK56ã£ä‘A®ß¯Þ3ß­_Àtu­³“ÕÜ<¥aǶc]S;›d¬ÜìKçÎ\M#Ü37ίÖëšöÀãtæEˆtqÉÐG£9uܯwrˆ4¹^ŠZ'À ìÎÙóS6c€.‚É@? ,Å÷²Ÿd¬zsÛ™óЉ2Áô–&dÀÌWŠ›Ê¾¤H©¢Â¼à €Ößÿ˜ChqŽùDÅRwu$Z†ë"¬Â *º…³¥¤Yî°¶ÀE覗kGT1þiõ,ó®*WÛ2Á’û++ËéüXLF*Öö ¨ýbì nuÆ«}ý‘í™»}•o¸Dƒ¶O@ç Ì”B äÓ–¬YuÀ“IÑþæ öuo+Ï ¯yHÐôˤ¸ZÙAº: vÇ–'šEÔuãµkŒ§ùù¼ë·ל}xr¹~tƒ~ÁÛköäʪþ­®ª½bÆGÿ®.3bœ *\”3±“jó¢ê5.9( ¿ÖödYÅÛbZEõIÄw’AõÆ9;Úôx”Ò=+M^ô:pE5(}ÓþÂ͘9õÐû—¤}ò,k´#}œ[T¡ü›Âgö˜ÔÑÈê¡:ãyÒ=åæ5ó›¥ÑŠÈ\o4½$b7ú­¶¶œZŠânuˆ‹¤7:Fñ[.Ÿ” ÝÂdݼÐ8ƒɵgõžÌ]ÅÛE™(2³$ÑòsƒmŒ•y†ž hÌŠi «ÝI¦Å¹Ýº.'—°v✴¹JôÓcÏß08„ÏÞX` ÆAã=0¦YÍJYcCp}f(P%Vó„\\î›É-Ùg“••/ÛôÅ·Ž ^Lª)û[Ów\¼NɄˣ b—l>Ø…}|£qC×ß¾™Ön%w¢…œÖ·öȣΓè =ÞMÛå’ånÏüƒ‡(°í·) ÜxÖ/SÿÃÊIîî¥!\ü›¼œ@Ú£·5¸¨ÑP_*M±vqÛ›£²±ßñ3îšÉ¡ÁkKS_‹L߳܌N0~Ù”…im‚ÉOó9~¦tãb-ˆg,ží¼uËØ°9!P5Í6_PW>¨»Ú¹0ú0Ñ"ed/iÃøæ²ÝX°á‘,5;R[ôv`ºÃjLÓ´cèÝ^Ïm“Ïo,±Þœå·cÊ\+—±´ùHwnœÒxh$>`Bl.tûÿ°3ã±kþz2Ù; „UÔø4_"SÕ­8Kíxý@Yƒ’í~<4 xÄ×>¶˜A­SþÈÕüúa/3n2ñ|—ÿWÜ’µdë(œ ®”ßS•sP@þ>Ƈj8,Yo€ì}Ž%´à¦¡UR *,“N<¿À$þq`üðí¤”ESöÛl›H—yÂq<œ±Ð¯Sšã£s5 ÷e Š|dHE^ü¯9¾‡±•x}ë@EÞªîk-€¸Zçjö\ñ?Ÿ»à´·Çû¯€pñŸþnn²®¬4¢ÖÅð6"}Õ^˜ù9ž{éCÆ»´Òm冗ÎÐݳìzÏ.u4Í!!NæŽÝRæ?Ø ßžÜÜó¹¥yêô½V·4VKäü›œH™OߺzêÏÌ}…âšj”GÎå 7µ¡8a 67¨OŽ@ØeQÎúc7$0ðe½ÑÊûÍÊ•R÷Kß @¦T4d~£RùÍÖNe5.ñ –N€Ëo_´³ìqÊú2)Ǹm³ìû<Úõ–ö†"ró¦zèŒ{™{_Ûé,1\ùü|©ÁS£\û%Ä(Bþ£ù*Ž]Ø_Ò¼{›þp™Úw *s­5 :ap§©‡‡‹ýBŠSKàþu €ï}=·BBd;FÆžå6W®‹DnùVˆ)dÿTø'³€'lßó€ØïÝúnGôô¨¡m] ñóöÂ&»ïÂùwzñ³{/@p™5wµ#ittÅ—+â©#§Ô×õ2•Ãy fH`5J<,ÔgŽ"Üy<«÷ÙªÎ1ù-‡aȪÊí)Íšsùc\keïj]€)xÐÞ'Ý•CöÖÇ{¶\äü]Ååb<ÍN ³÷n¸\L£E\4"ÔIþ °=™o‘7R‚ÌçÍø ‹£¢H áз}JÒÛÉŸ"ä;Ó'¶èvVc釦Deó¡À‚Ö:¥G/¬‘Ð¥âËõLÂe;„Òe$Q¹‘bY;ªTúo6˜"±Ù•uK,×"™ðZ¸üßc€ª-¥ÄðCjSÞ ³àd.¦û¤È)…YÛ¥‡yIÔ þDÿ5ñ ¯®N?rµïšº}Æ\&ùuÈÞ솙}?³Æùì~=DévÖµçhF88a«ãupÕ„àÍå˱ëÞL&eǯFKüXIèd¶ÓDIŒa!+Íž‹÷&ܤé:zFjÛh+í)}•<·éœ õ7’ó;Zk·›8=œ‹µ‚¢ÌO¬Ê¶"ü…¬¶Ðº²6‚P wWE,XƒÂ–ÅïN_Q¬(¼ÙìâÒëþÇÚ‡GŸxþÅ Eí‹l7>A¶’g?2j-˯ë ;DÇ5p´|&#ƿ߷h¶îÉKÐ΀WÞ£ò‰ð,Å(‹.‡•}‘ʈEC} ŒT/MIùʹ»ò€ÍLêb~–T^С܎“P ) ÜÎCì8];r6"Ó%e(äÝkSK¦†H‚JÂθ!W£Û±üM-{aoêÛ‰»ŠºæVÊÙ3Y‚,XM@%–Õ–u™1g÷dë>cüA©<1,‘Äï8û=p¢B-#Ãè´µÒ‘ž 5¾F¿l¥-°ÇNB1‘ÅÍ[ýIdAsìP_gÕÒÛ+´¥£s;%Ðr'ã<“Êâe´ åî ¯`É«ÐM>Å­°¹ì ŒìÒÖ°þ~G3’8I ‘šÖÒWçg3ïü)ztêþUe Â|ð:óõåRçÀâð¿1dܭب[År¢KâwÒq’Ö½óf‡—xñý\úÅ(2ýØ"ï+Ù²H›>"í¬¨ ìüNªˆú“«å×yÿ¦Ú˜@Õ”µ2BR½NU¡VÇ&åͰÿ[8¥ÿ¥M«éâË{H?FY©ë»Úc%ü’ä[9å’ö¼Â-þ5xŽ* 336€ÅnÙmñ€9^EÇæ<# ¦UÑUb™‚V"â½$hXWIÝN"žg…²}D"ìÉÌÌ>®±6¦i/×ûüÑÄÙÿõ?ARsvN y#F•ép»ø¨¦LvL² ¦‰Ý´-ó[#´ÀœDÃóÎQlÎ(fçb!îu)ÓÇh­9ýJý¹Wü¶>¯°:A|²måçLËD®l…èaÏéW³ #{+h´óKh6æŒOѼ¾ˆ)ÁÊ}1üJ_–¯Ú„f T1°ÎPâR ¸ØÌê>2 š6ãC“-yl¶Œ°w;X$cVOXÅÏ•{‡ê’ Wf¼ÄjšX)¾½ßxÅù à=h”tŒL—H#hTB“tMÚŠI¡ ¢lk¦ÑÿÀ†Â‡ØÈܳ톼ùó%Î~£)xÄ®Eƒ¥$¥¿¡ã1If‹*D§RJ9Ø¿çPžkË×éÉîïíü}ìßjüSy½\‰ñ±÷ïf:lK)N•ÁÚƒ˜÷Ê‹¼T–Îü?ǹ§_ÙÚ$Ùgäñb®*̓ ,U°/t†û·oœ"¬Ý93Ñ[ähàÔ4b—dfg Ûõ¿Y‡WVbJa|yÌxzgnöü¯¿tRãÔ ‘a2ÜNœÎ%èrï’Ì•Ybàê'æÙ`T[bÙa ìȾµu캦2‚ôФáUÔ‹-E";!ºSWß ]Æ„ tìsnF Ü©úlÌl•}Å$¤Õ11¼Ö ù`º’?Óê»0"„Åõ¤%.¶¯—eµ¦òâŒóHª›ýÚ"ýÇ,}îmÈj¹°,§öŠê!#7Çþy~²ÖBIÖ)\cü—éGUk"‚Ïò~,ˆ2  JDIUQ”3WS¾âµØûÏMŽje† BSšÉåŠ}³²˜‡¥ d±Ø©ñ&&\TC s Ü{Hé¸IÁüM’š8÷Ÿ6û ¦‘Oy †[\ÚŽýÆO?7鮯mzWG«H½°Þúˆ(…2O¼•—yÁO }À µWbù{ˆßã†` h¯Ô¤Z¡1–tús$²àȈ\èÏè“ Ïûæ%ô>pPÍ5„#Cò7Æo)œ2úïoXÇ·;µ*üØùë¸ù-|LÄ~gC6Oã,Ñ\ŸmdÕHœÎ)$2ž¢QkšmÄxÑñ;û–Äoç =Ó‘Á>°ÛÞÄÃ9=kœv ;ºgYDX³tÑã…¥âë"2IÝžò/ìBƒSN»ÜdàMUØÂkðHó‘2Ì+½ 6Eåî¡\ƒZ #ô–.^B¼{YªCbü|­9æTHx„Ó3êf{pÉCæzЊvPh±ì²›gPz\Ï;/O<×]¡íwÜã‰iôî>k?Oa—dåáZ³¥5¡x¼ÄZ´ô>–_´Δ¯ê+r„ÿÇQšþÃC»¾ «.hî˜GÕfeBVŸ.gÑ1¹DGC}:m•!£VBà¬Ï³S­0ÙŸx {<â¶?‚Õ±F¥DŽ9òª_'1Vǃý®¨[czÌšÖª‡·+Z¶t ê£x2†²Êä)¥†êGãvü²Ž£šZ³~®lœBóå/¶.®´©ídIs¡«*™ûÑþ<; šç ¦µßr :m?çfg9t%S=?ñ¬r}yTÛaQâ;˜¯ƒˆãZæi²GhS¼ÛI?Ë?&„ï.ƒ÷íçz@(f=~(˜I\  &ܸzvž ½œ05fp5)âÝñ¬âp5yÚ°g*çõþ,¾aàGMP^úΕ*ô¿YzŒW%³ÎX”›ò¸æÖ&Ëm¬EèE‚€C÷”Td ÇÌbV5«'ü†¨Ñ²@óÛ¼Üb’U€³k¼pcw»¾‹§ºøÕ¤ 6V :¿ìÓˆü6XWŽV²1VÜDÈ^ûËÝÎÅ>´å¬ÃÒ?kœ;‡‚ W¬!éa5/u¤bÜ å£¡ZÜ7å<å\åmïQctRÞ9…¥º'´¥Ÿ˜º«^ýЧneî=\pÏ)Of”œ ¤¼èŠ{] )Ê&ÍMÔ[6ð5€eøó¶ÃËNSõ"°#?EVÿá¨_nf9¦Zé¶»ñJ@—yrâó5f9p+–—˜OQ¡ÚñáÿÕÕa«já›:®:†/:9æz¶Ÿ~»ØOltzçJ;Œ°¹÷ïƒÐFÝ8”³ŠOL¿o3¿1™+z §gXMYÙík¾â–üM-{P„Çþ¥õ1.,顬$Ó _¶4ÞwI7&>ç®Ô ÖL÷îQæâí±¡à››åÊÅiÑâöûvRÊŸ(0…÷Ù´x¼ XM‡Þ"9r*<×W]‹ÔÅè¦wÎÌ(H\~òúwÃŽo+ã\ŒÌ) Y Ø[[ɯðåðyÎÅÔ¡Y=}W«0%òZb+ÓÆÂ#ûïåå£%QñKÊ%^k@uö2¾¯íT‰rÜ›–u¬Ú5äæ`½ü?ô±z8y þ£¾6”iäÖ©Çއ Ë×£ŒÏŸ‡˜zGð_æ´’èÄPsãCöŒl÷%x­h× »fÑa?ñA“õü¯Å—“ªè¥û¼ÒŸZªƒðøÖðÊž«6ÛþX+¯¨fºW un“bt…õK ª+ààŽ£„÷‘!3ï=;é׃‹†æ¬°8é8µ><}¢àãÛÄœ|æIÐ.dŸš"‚ê?S #{YÅNCž Xg3Z3§Çµ—ÁÆc+QˆòÛ?»m‰4£µ‚4¡ßÔ?=Ój›Ãbãš>J^u1»mC `B¶ú²q^ Þc5ûŠ&sVn¬™k)Í_õeüT¤¡C'ù?p9/f™+eR¼~œáXÝPÑgk¨ˆOM²×ÍnÇšm»eNd +èTáK’fx„éî§ âb)Ùª\l¼ÜáÍy¢ç·›;ü™àxεC?µ6mÑœ¸ ¾ãG¦@8: y}lžV¹&ÿĪ;¯áh¼Ñoj[À^rÔV±y¹`œü3 6!³ÎMh•½—CuÞç#bkÑÀº0ز%’D‰ŽB¼ù; A5™ÆÙ7qCͬƒEëóZ“=Ó\I…N¬‹?^{¿-ÿÒ:ÎHð9­üUTFË× †Øo¼¹Y¢¹ŠPº¨Ücº•ûNŸj€˜[k˸¨Ò6OhŠ„´~0·`ŽÉKú|ì’æ·õ1«ù[æ¶Mað]·Sm¾9Q›9¡€ô|(¥â+DZs‰V[9Éþ^^ÑZÒµ@³”ÈPM+WŠ“¾¸ƒO³‡Œñ î…èɲÕ-÷sÜÄ~QZAyÖsQÅó)m,lEŠJêHQüÕ—Ô¬ïÆØÕ¸ÖIíÑ—ð$‰À`ÝY›•I]xtêâ´¼c-«¹²{, ·–üØ„´Ïo© õýHˆˆïø4r¹ú\ ü÷2æ'4ž´ôW ^ü6åumûýþÛ?]dׂs\Vþü ÌæU~¿QŽ.z3%i…ÑHjÓb—’[ÿþ»ÞÓô^ÒÅÎ2fdzëZ†+ 3õ&zhÇ$Ü(7ö‚9› ‹±Î%è: ;,pjÂÃëÒ€{Ö¬‡­ÓÒol2èÇ_5XjÙõ£‡†|l•7íÙóôGÛùœm‘Rs"Íp£“v-&R%ÀMÉ(šÈŽè-Š+a_nèäDŠ}ÚÏ2,_ÓcÝÁçêmˆÞ!—›–«°Ò­ì'd÷Tk9 íM¼¯Ä“˜œã>·NΖ4«Xü›0 v>kúGG0á'Õ‰ª5G(HfÍÀ:o‘š;/·ÞF’ÇúH!ÎN¥üM-€*i$ÈòH­dZ6¯)ì+£ÄYÀ5%Ã’C„û†‹†x,´L*ÅL&XPB\%©;ôŒÂ^¢¦¡äT«ä ŒR^ÑŒô1щóâ7ÆJΫѱTïXn”÷¨’›øT¡ªrq­ÎÌFgç‰u&’OR ž€Ùd¤9®ûp|Ñ.ø1/Î ¹é,44V TépºÑQŸ#†Å¯3ØáŽÐvŸuãÖðVcˆg:®rÒW8~Œ&qs ¢ ý$Ýw­âán&j”µ÷wzlzÇçÊ÷©ìW­V'Î?Ö½˜õ öu§Hl~k÷µR#xIïS;íhÿè%í2yçÖ˜xÏvvô2a½ú›Ò" .JN|¿n¬ë?%'ë}Ž¿FV_£,¦°üLÜXb›Ë €6:¤4_•d^Ö®Þß\२T Ïþ- Ž…5”Ôp€õ)f‰§0fÇUˆX¡[HäRÙu—.Z¹oDúxÒ¡ùEá½WdÛÓǨŸ»ó s<’æs†_âãDJíbb}¿¿º q r±àh×÷¼ T#/Õàw{BTP{^‡kmí¡V;µÛÙ}ÒQ/Wµ‚ÉŸ$KóYÙäíò-Ýûn÷àõó-SsbØségŠÞÆŠ¼¶—ñÍ\,G˜`Ÿ›ËsK ¾ØôÓ奦ÖÏÊ5n5Œó+Þ'³×Üíºé©kž|²ÄÁW÷;«5náÖ퉄W4íðZz*¬GÔOþ•3UsÛ Ã)çšOÄ8i¿:pP/Ç<~ÞwD¹GZ´Å™.6IýÊRéÐý’í® Ü„´\0fF¶QÚ6æjß# öE˜Ðá÷f½PëYN5£dH`hkçâ>,¼.d¶y4QÖ‰¢#| •œª›ƒ¨tÎוH™M æú2t•šâߣY_Q#!‰nXqÛÌR’Mg)ÒJÉ”üMbô,]Çâ6_óWQ­/Ò”êÃvcÉ< A~ ´ýý-CÐà7–$ÈH¿ØÂô¢EάO‚ÅNŠÝóà êd+Ç5u6jO4’pW³$¬²>ˆ™ÊYì*é©Åã]ÈñÖÍTAù—0É+jJª)ï üwQÏ>¿}éuÁw‡ g\LÈ¥‹\6÷Pè?\íÄ˜ÙÆöa ¬j'aSJ ë—·ÿe§â¸‡ø}2L¡]¹ÊΒêÚˤRrYDT-°,æKÀ6i#•è™V\÷Á “ÂÌ“4Æ TiØ9Ð/Êãzb:øEon• ·p;b9Æq]*"küLÀñ ëq7]$ ⇔†øž'Ò'Üɽ"ð2{Ñjéë.‹Å‚ íàkz ­<ÆÆày@}·zD™%¾M}Ç’${pZ^Ë@›[-~ªw;s„Ѹå>Ì2ë#‚uëv[!E2aÚ3vÀ‚Ÿs0ðƒHZ^Þ/CÚ:Ô%µƒ{-o%`ø}PäžS07Æ>9·1(±¯×Sz¿4Zl‚ÌĮح/ d-­‡Šs̵˜ù1)¥)ÞÅqË[â«_Þ°4Ò¦yß|Ùb«î—½ö…•2É’D×5r>aúœ3 îjuºøŸž~HVu£í?ÚË$O;@×Ý+÷ØüMŒ¹ºE›_{Lh„Q–Ùo.EM¾°8 ,fL\¶Ê[ö9 &&¼æ»Sõ€ÿ5pj¾3•íÂ(A5ýõ 3þ§ã|ºË¸²—¡œ©ÖÉÇÓµÑáf/¢¶ùq¢•† í¸.zΟ§5¼˜ep4=„*„dt‰³†.>?qUny Œ®#œ·e£ûlþÅìH0Î%53TùÜ¢‰TAË ƒËæk’îcÄõó&€G[. Þƒö¥ÀᜋÿÔÀaR‡+®o&᜹åÕhíÅ|MFúùÞ¸˜‡M9Ê¿Ÿ‹/ègίGŽìçþ¦²_剰9à åq¬üÆu>À@ú®¤»áßšÕùd’ ñ^‰x)­Þ›W ‘}_ZÈ#óþ† ¬¦ÇXùfjü0z~‚4É£AÖ_–MèÏ—a¸ˆÊÈf&Y¨n³U°¸X:ÖL{4'ëÿ ˆ.‚Mý‚4æ=´! D& #yk¨ä½C™½£§€»œ¢§Ô6 vuñ“a’ö9kŽþ0XG#-@ó7 ‚¡èµ‚±>[ýf.'횥0ž9€\„)Ðtµ£ÞojaƧþ'J9–žÛïªÞ¤þ¿>@œ%Oˆo2é^~¿$³ÈÚâ'hç½Ïu΄þ4‰ÁØ‘uOggSà.ýÄ nA5¡Vòùþÿ ÿÿÿÚÿûÿÿ†ÿ£ÿÿÃÿBõûÿ÷þÿUÿ+öÿÿÿÿÿýüÿÿÿÿÿÛòöÿÿÿÿÿÝÿ÷ÿÿÿÿÿËÿ?üN¬ôzvЉ;ªb(G1­f¿.4Ћ½âVbù—Ä&«fùxÝ™ 5âh[WA2xÝ Ñn=‹®Ãí);Ð÷Pó ézG&õ䌓:ÓO&W· SdW0+¸+mI‚hÌåx²È.`ßî­ìpCž\ÎZÞdhrÙª($é`´Âÿà>ûåaPCzÔ ÑøPB‚Ö²%Á)'?·©SJ@úL›<­”**ÊÓÐ|3«'„/u`R‚£)e wØ\bq*« ‚î¦h¨bÄú9~(°ô÷ýßçÂüôUøµêZ¶‰]éPz¬êH ü5ïpzº<£lÎI÷Nµx¡îSœÒ?dm-ò.ô:5¥¢«“3Ç"0 ©©¿FìgO«³©B¦;2Ö ŒÍc¶BÄü!aå[E·‹ÑC)!déDj¸~ó T¬WÏ©üê0 ÞBe:dJº«ùÇ*ÆâÊ `Ü:j”[ºU¨û¨=¡€ÍWó™lÙ—\+ /±9’(Õ iç± —›D¯í2g*Õäg'?S¨AFhT­3O€¸ðë«Jˈ(ÀÂåž5Ècüi'Ì ¸aå™Àê¢TF… ‰ µæìý^¹UÑЖG%üM(2éæ¿Ñ£ÌÜOS‡s98ã&œ =ÉÈ•OkÏBßîÎ-¶x?º¾ï·€rÚPÚ@¤_.áö¦mþÇ?-„·"³Ø¼Ÿß^×ÿT Mò¯$"ÔÁΜ»`ÇŒ7h¸6Ü"+Y*Ô\ÃfÌœï9Án‡™<›””¹¸·•!1m¯ì“ ¬(wÊsFœ!aß–§'Sàl‡lë°êÎ%mÙ&ÚsJÀ·5-xHœL ½× Ù¸žžáž¢³VÉ»dÉ%ÚÃ=ºß>7cÐ}kúF8*áf0,Ká+¦h[ðiUµ›š>gžüÆÞ'û»$\qó ´&FmäüMâ“ü©ŽCç‼¤ÀÑÞËtRÜÉ*Ÿ×.üÔôžxwYšnnÏâ‡p÷ÁFÐÜÜÒ^_¥ äxDOãÔ¾Þ…‚Œ]ù-ÕB£ n 2Å+»ÞÎ >úR‘,¯Nê²§åvK®žoÑÔ)ö©§Þ~—B*¦Í>kG åæÈîËŠÌÛc´ô‡Ühþ·´s™¥˜Šš'À01Åv`ÙuYѧ]†HH-“3C6, DBfM"}¤çýt½ÛobþØ:i²ñ…uwûŠa]›+ÎzSvü‚-4׃05;¾ã†]3Ò§lQ-þXÁ$øUÛø+¥œp^Üþù=¾:AN±˜ü±gÉðJç;©;¥ö¥©üÓ{x`ŽÐäiðÚ¯J@&»ÏºÜ&’ £-Øš*K›ún'*"Ã)VЋe¿i3"ø Ö´ |Ô%Lndô.d ‰d&„f , ¿ç¡rkyžÜ@¥ “Ä9~εµ²µ–¹1ësvn”¾©ãKŽ:´0e~ݼ0V~qI.íd‹¯†bv!ÿúZg°Cú&¦¥žÖŒÎbtB8gªs¿5:•'*‚ ñÒIͤ”Ëj=ðhYÂe|µã©Úz¤Pê®ò½ú àô# /jBQX-Áç¹×â¸XW¥˜ Žº±–©ñöW! ,dtó™Û§º€ÁüM“Gvë" òiÅïYñíΨU;³2hPÎåoôûæ´‰J:ãùÕà|úh™d%•[ß³ù>Òö½ŽòyMñ¸ƒÖO‚!æ0³±€ÓXÛjgÉm‡ªÎm\“‚±Q¾oÞ·ëõþÕbµdz´.€Dh‡;À-m#{ Žü¿ùeÕ„…?*DÜ¿9Ù¶4‚Òyµ§ádÛªæyë&6|aig±)L S« 5Qú/¥ð¸Ôp#vOð«{Ó/FBðupœñ¤«rFLÿ´ÑúpÄ’a¦[ãâ$îÃ’Ì5õ|$ÇǸӦcîf­…&¹P-:ËŽ7ªÝ8ºÎ\{;6íìü´$¥‘ –pËçwZe·§w3Ï/®}5@$,´O™³üµ CDæ¿Á´èÔw¨s#”3ý¦¯È„%y¨s+e&nÂo[c®q•´£s‘4ÓwÕsÎÌÁ`0î§—ý€3©}t}®˜¢(Ï[ÇêrÙ¢ë¬ ^uÏgíîïx¸÷HÞ˜ØUÅ-Šlõú+×è0ïÄwC¼E)×böΑü¶ÊTáÅd.¥F'”JÚ’ˆf'04Ú,*b 愼¯¿ì_ZE™C>¾´i&Êý ( Eůÿ¨W«ÆøyiäðÆ‘›ËèÖá˜ïÅÕôÔê‰íäìÕßqÆÀ….íoÏ–i:‹T! >%Àðá"²FàR=B,v ­aÛ s{…vñ¡¨öLÐ3Ážöç:Së‰|^ÍR&èJ&g/7 âoòû`@£'ƒ©¸7HRu|ÒÞÇû$]+Î Y_}ݺ_.‰q ïV¸Øû{aâ‹rSÂéª>Çš-šÖI,‡)>ÊÂþ‡˜è[™tÌ >›Ò´ŒÕÙN¯üÞ•v;gfþø?§ª¼¡´Š}zkÒG–*ƒ‰ Eº§–¤ß+Œ ý uÔ’‘ ENšþܵ×Ô´”4RiN£¤_kû-Ê‹:®÷%—6Ú†<{üL¨ü¥ð-âwên‡³×%IÕè¾Åä«7º;V°ÞNb¸Ð,¥F©ÚÄÏÊDfâŠg˜VÆ´QüŸô]®†”ï½\RzS(ÎÒ1õEV þˆ ûR…WY˜4ëpéçªEæ6›Õ¶ÈÏE¿s|Xí”!)R_¬ý‘ Ð9fOê:[q__:¨ ä)t6à æ@¹z÷£Ÿ_K|½§0åñï@„â*õ.KÖÔ£‚¨©ôêÖ+¸þ!õÃX·©0hxkOZx‰Á“jGDZ.úOn–`še¾ënÊuÇÌö9–¸±z=§ÿzÛ£Ziò[PhúÎÂV½ˆÿc‡•6?P&_¬üL°=µÉulx'ªe¤k‘ø¦íŠî˜†¢@&Ùn*&8”Oeµ¡øâôãTe‰#Q]®"jkyu™Z´/Z®ôi6ˆ6±-Kd‰€ê‡©ˆËèåÑ *~{VŸy8š˜™úÓT$"G×»siGv¡;Bت;OŬƒ"Ô¬3ÒÊœ0gM$@wÐY],aì%ähïù×u4g!rdZ4-N3Ð5­Ñ‰‡–ôA?EuG@†×s¤·fÉò÷[)@µ-ŸrDÏÎ@j½aèìƒÖ8£5)O[ÎmJȪ „es0: ƒÙÆ6×T®Œ¸0›p4dÐmjä)ü6}mm´B‰]9„ˆó—k"ˆÇˆe³µ³i'BÄ9U]TíIîªP—n0ŽR†O.z‚Œ÷ÿÁàúðÃXØW² qœn™È©gŠ56dEM)âFTþÞÜ8‚ÖäÄ?¬h—‰©ÂºR7ð›úÎË:Õ;+Ifÿ‘n-IFѯ¾Ly*W3*wåël¤o«„fú_$„9yÁ]íøIU RéÃÜ3±ðf— ¬xۧΪëÓæÚk&(—ðl$À•*šÓÆéUp]ä Ê«àŽ¡cóZ×ÇVr·£˜+MxîõöÂ3vE.ì¼Gm1£ßcJ¥y¦ð+b=—1¾iTíÞƒ@`zÊÅgwäô•ü±j‡W–ÎÙûç^[×Luù6=Ø_P¯¼²[´îK¸`ÐÏ1“åÁB£ÆÖÆcê…ß@•1¾ •Ø+.é¹Ë`§ 8ܪYšEêîa"U3sá­°ŽHW:¹9RúzvÈŒcvmúÕœñëÔ'Š ¡ƒ®V²  û˜¢:¿3Ñ¥ÃV‘: ·ÅJ\oì ô«ÆÎJÍ}%ë_f®q‹hÏYeÚÏuCz·_;ÖHò®¶íAæ£vvñ1Û £^¨±©¤œõ>FdÒaêeLÎ!ùŽøp8öQ†µœ”G9¥$¿I(8Δ8ëœn«DìÏöJæˆ $pó8'P :d²ùjëyý7èê×s6‚š)FÔ¡?=!7Ö T˜lX"ܲ¨ä£u™7)[@ËÑ'Žf›ðCSUù­«$ÍÞz!ȃ8äJ3”¹«×²‡tk"‘¬UÙ•Â-ÑE7~Ñÿg3ŽØí·ÆØC§Ø+y«ÈŽG!ßP§>;F±i‹;üM(r³+‘Ðsüzº¸‰^ª*óT'o¿ƒ~÷Óm^‡¼iönµ¤Ád³ãŒüb|•“€V³•G;BQ€†buH°Y„0›¤Gl*~ß #„P¾V%„›éW$œ\L CŒWo%Žð˘•„ߊF›è·¡ˆvù­Ëkr·­Â~}è}ʽP(}Áö;/7`»w<èsùÃdw‡ï±O±ÆÇ†×i‡þ—3SA‰o:áœrR>}Ä¢0€›%¯¯ç™ÄOü¶Á|Lî•m(Úå˜\¯†ü_ׇÇv%À삸*Fè´®k›%³fp$2ã¼ô±ÿ}Î(e#|"¶òDlÕ––úywnpØçJ9…èLŠìëfè3ãs°¦ ¸J2øhÂYí8ßéH:nnÒØmK#¦gÿ.ÞÙû1¹˜æñÉc:¯ÛƒÕ°´€Ò{EŒBïx¢j&®‡ìŸBÁÂ@Aô¨ÄÿÔ;ù4§2º¶¯D…TZ v«Q/dy8Ö1æ¨:µ Rw¿5'L¹W’Ý[á‘ãÝ»‚üÖ™†ž°˜ˆú³ü±Ì‚±ë°1“}ô>*·S~¢#gŠ}e#«—ëÍ6F¸Tösªå@>ð¥˜"sxWuxG|p?xž0}VÄPcW”>_Æ¥PÍò*X´„³:H‹büãfû¯ùß_™iÚ…:²“\5ÔIÐÌ©åYëž^8‘~™ ürö–Ûsa8‡ý vnWÅQàZSœyb†W uÙu/êê³Úwñ€‰B ˆàq.˜‰Ø¤¶0x"Ç ð²ÔjÖ CSY ÄÑ,Z7µòåôô, 2­ :§2Gb=åzUäæˆU_©q¢u›–܃8 Œ~EÀÅa·¦a`Ô©hG8ý¼iÃ\çmõþÎkðûü|¯ÕH§d›¾–ð“æ|.$Œ ]Û2©.Be3ç}¨OïOqÌd‚˜¥)€ÛíÅ‚¸®]é>¯³ßö¸^—ù”³]ï#ÍŸ±gª®5˜WÂõé,‹ÛiËÊ?l±…”—@ˆXÌÌ@±•sı†1뎷œ3\7Õ¨H9"­°‡u]?¬IY°J¯z™‡ aLPÃË î¨ÖuýOf%Tµ3bV¿!Ñݰ¯WÒªˆK@<3 V”Õ¶EW‡¾™ïŸÅlN8Èγº"¼ ŽiGñA×€Û»ùõ—ý¬`y&~©õ„pަz^êsªµ²O៦×úRå[ðþß,ç¥ò³Å[ù\‰›LÄç&öT;{›­Ú+Hëaˆ¡u:-’f[p‚´Nn»„Ë{y_øíÌn¦i¯HÜXÜ2î²%HÀ)÷d->ËxwüqÓ*?ÁýÆ"õØ)üK)¦zÎå m ŸW5”àWÙ.Îö7¢eAž[Ä¡«ô†‘¾áZû8V . +gF]›¨8¸}7 k3Û¸µFŒ›ZÞ¡«¦ ¢ß}a{ñ“^é1qü|§—ûpïÜJ›˜Qe×߸Ikâ¡ù>eí(*ès¯4š¡îÄZ+ĽÎô³ß5i+“žb”XsãbÿÌá5“\¸sN=µk¼œ`ò9ÞCè+è&4†>ž]’ÿœ°ê«9-Õ×5-B)ÐE>nÂ_ùzþð)RÌÀÝao>Ùúcü42äd•Ï­c7C«<ŽÄ@1>:°âô:ÔŸ+¹c a½ÞÃÆw¼Ç"NƒE^@M9äûI¬#ä¡îr y1Vž=™ÅÙ†Ã1iøÀÀ•DÇVô®øÿL¹ GhØ·å⻯‡om„&S ¯‡@eíÛ!•è’$‘s×[ÏgSÿe®Ž¥èmß2…uOoæc«Ñä 6’í6'§lôN¨ÉÒÿí[aŸAgt1bDÇXÚ.Ü"ÿÀ¼ž nü.T¼xSÒ¹:¼Ä¦b’z>CÉnf^ü’qÐë›DÃà£äJ; Ø’dªp€RaaN‹‹B<ࡉm2a Q.½|'Š«ï]ØY6{·Œ—’s'îêÙ~Ũ5Õêóü<Š|x‡àÎpr!~‰S­kQÛÇ‹F‡HLDÅŠ @rÁ—îæv͵à,<”ç…Jù0‰ï̶–Úk7Ö¹$—8å톉ݦ3vg˜Lÿz°Š<ÕpÏSžsRÂì  wÌÂÉ™ÝMîdtšá6S²y…´Å ròƒà’.0G4麤†Š>Éep¼üLõxmÄRw…¸àT[.Òu—{Ç_FÀq4u>’ÕjþïÕd}éT„,éP½¼)ɲ܃ÈûxŠé·iÍœ"³¶O#ÓÀRÚñªÇtã®5 y†±*(w¿öááQg]H4wqSF—Cnow.[ LWÃcŠFëp}T\ؼj>ÝI@»¨ûßG±Ù)L„“KŠKf; Ü£ ñî8%].EPT ë9ê<}<îÙä$ß®}íEšL4Ìúò,ä½z#)ÏÀs^ĹÜ*¨µ­ÈMèŸLê#rİÌa©z€±ËcœOðâF¼ª)xl±.R]üWùÎõ±üS*ùôY;:G1wÓ”¶EA%ƒüÙí¼tÀ1VaH­±vËDÍÝàµf"`‹\FÛ~Ø$!9¦‘a9…íÌ÷t)ú3+¨ìz¼Ãû©˜“±nh6ùJ9Ò;¨Ç“ÓÔÑÉiý¿ÁðV*ºÍô'3N‡«é=™fÈmPJY|àKäž”!±‘<”!?jhò÷‘¿zV¸ðíLä¥Oðx·1Ê“Ÿ;øßŸØ+ç&!€¹þÛñÈ7â«ÔŽb(ÅË"N)Çð ù¯T,ÒQ°Ej( ZüL˺· Bó F©™ï êjSŠa2Rc¼ºìÒÉ÷R™Ì váÓƒ=m#iK1šS¸4–Ê“W•›Û¿†WRÅey‚ë™ÑëbŸ/ßÇ”‚@C<üpD‚>E˜Ï[ ÖÆ¥¥»ÈèȹB¼bM ÍãeÂjú ì}Ø9ÚØô¥}BÓMΑㆳ3ݲ-É»gÕcSù,"˜beVY‰Ðb`:m‚…WTÊýxK<œ*Î.Ÿ«¶_“—"ÅëAšrâC†\ÚÙ±oÇ5{ßI¼wzó]c.H@ òû£'zTÚÝvr[ÁçåêˆêKüLÚ‘s,¹éT‘ñÅø[QuÕw(´ýÃ?F½¸™Âzä‰&«$]E‘(»ÏÑÁŦŸõ¼Áobd:^90¹Ë²&»ºØî2k0æ¯*¤¥‰MŸÆ»+™@YP°©Ú‹b¨å©½dã¨t“Nûi|xâ;6°šº¹wï:2e ™ój( (OOЏ{{Ê6ùµ—ª7ï°¡08Ei]ùó=G‰Ka vX\÷íao•JµnA½”oHQ+÷F`Ä`ñ¡ç2è:§,Yónd G\ßz./ĵêÔBpëk€÷‚$æ4´¨ü{1vqz|ãÜù‹±h})ØÆI µòkô.pÀ@vy˹OB ¸‹rÕ5ÖTAh†ôäέyQÓ×­:ÓÔ/r €ðÏOÏ«?¸B|qÕ«žq[%n›lÒY„ÅÝšû1XDëgR¢wHZÈÀù(mŠ!! pŠ/^ÅLdÞžt†Õ9È ‘®#Íu¸Ö Á‚gyê¨ ÂÓI(ˆô4îÙ´\âöÁ©®©ž’¸ ¶ïwN9pƒC¥eñänNFpÁý‰ª¸ýëRéôp7×Z"^'Éáã´ç‡b Ë{YÐÔ2û|›¤`T“ò½{R:^¶:ÅñÖ o ¤+‚)ñçj†}ÝÚï½íõ•w£fîüV½.¨xÚŒ%!’©80pÍÕóIËwë&cü8ÿÁ•!îc[á¦oÕ´µˆo±¯9g:k44ÇFèþ”zÒÅ@/¯pqçIƒ¸™h…ûESon³òÝ"Úñ è‚(/Õ†¯Wu²¡Bj“öäV~@Ò<¢ÃÆÓ¤†ºöYlAß9‘b'û«²˜1ÝRFFÃÞ_vÈà4ÐJ™{¸}1\à—¨)Ë?ãþÍs ù2j||‚ü¤IÞè(“zñŸœ[æ;¢¶²¨Ô=á3”Ô–à#AÓM¸ñ•†¸Ý;K‚aƒYÉ*¥„¶0à}ãð]ªæ^\BËþª°)ª]¼€Ñ3ñ÷èê\s˜jÜW-6?­ýS;¤¼ I2ŽulCoµüüM¡ Ìh"à u’ŸC n•%LñO«N€Å5 fŸfÛÓÌÌØ2pWÌm}غßù¡ê*Ë€ÚÛ³aY¼QÕNLw±Ö»«¤ˆô_d0^bYåšzZcê­3)ûs$ÞƒXÚÅ’2µMÉf¨i ¥ kîsDSo߯×÷–ygü]دIÏÆ'äãç;„¹ÕAc¾‘z§Éc´«P°ª¬IHfá”!¯ñi‚Î=6 w~&kiÖJÀÄžÕÕ¶¤^üýÃPYÑ@%óÃíFö ÖHªF?±åjaá ;‹JÚÆ_Ê´&À+àEwýê^Ä’Õ¼qG©ÿÜxªÈeæÆÇá4Iü?&ù,ÞÂ73sÄ*á ì¹:æccO,Ó4µýA-©¥žr$ÆŸ^òÇŸŽô¼–Ùlžší²]x÷ßÔ׿«ÛY>QúØžñME½K7ƒbïÄÝxÜêüŒ^ž1×]êô|ÁÆ'GOòŸŒ)¦™r¦é-*#6pOoª”½üL¾0ý¥*óDÞ£s$лÎdŠüë¤ÉÝ3†ÒBoxŽ % ²t5ŠgÚ¶}_ Zé׫3¶‰IÂ÷ëlÄÄ-6_’HÚ^³AmAËP1Ña6‚’"! þu…á P)£«¼µÍ¿™wß²TÁ;*/xØà}Ñ΀¸[NG¼ ŒŠ69žø„jôÏä'Ù± w{ˆ6’:”•NˆñÌØsì¾+[ˆã´Äz~øfkT÷õR޲:g ã–øä‡H2"5>úwîü15µ¨Àô©MíÉ•LïÄ|É޼YeÜ¢â°JB=Óš…+42s¾†è,·¾j{Ëtb³Š4œ¢B¤Ó¯Œèà`µg;@CìŸz¢=3í]0ó³¦QxË8æ Õ"ÔÒþ‹–[`YøÔzm,'p N…ZM]Œ3çA\ÒvÑ_]S§ch Ôìm[N®³š–Lòû|J¾+P¶6*g‚~Òü°j‘¤õ³åÕ-À ƒoK’§;\ 3ý~ D¥ñHzwL çׯ’P€O9…#'Cæ™èF¸ÕÅJ¨C}Á:ÇQ˜B®=b¢Ëå[¶,sÌŽNºœ˜¬Ším9¡+Âê9â¼B]3»zZ-ü. ñ)‰\Zêÿ8þ¬Ï*ÖZ…‘ÎiþÆéËHÑ-Ñ‘%mØóXÝ<ÞíÈ}£B•ÁÛySÑJz0ËYNqŽÔ1wܰTÌýO3}e~á³ÅÞÅ´1úÕªI®¥%Íaw½ŸTî¿»ˆâ‚îL`OJÅöþ”[2˜‚nOc–Ã,Ђ,W?Ãè¹µlJÄ6Íšû"*¸#Œt(¾AɆ£FI̸ÃÖÀL=8ζ™úL}v~Ñu_mƒXº8%0¶×ô‹ä},ÂF<—ÇŽÀµÃì´ðä'ðZªOXymgôø‡},À´¼ûíWz¡2>îøjþ—r1žâX­jûÁ\º¢¬(m§züWü?ÚÔ!ca+L¹{¹r‡ŽiBc]º\zƒch $ü)Ì‘CRTØôã^I%µœôV¸ú_ù¬i Þ]«2Õ%ðk±>œÄ0Œ8…£¬›¬5Ùg4ö'h¼™Œ ù‡qBEî#Ä­êıg¶àT5Äë*¾G˹ۡù7»¼ê/¯‚QÇ„½Þ ߨ ÒMŽÓ¶æê&Q¼º†dµÕJDN8_¶?òºòeêÏž.ŒÑõøŽ?/K:rïÙÀW |Y…Îäm¼òï>æ…4çÕú…P2(1ÌÛ'QŽ9á~4¬ èXvu^¥2¹‡ýùü6Y]~¢£[/dBdßW(® ì·yL¿å§õÿ]§2¯Ô§ðhm ?]`¶Ü¬’ÉkYñƒ‡pFÛ¼h¿+ÿ^ù[ Cèå"Îj÷®|·òßRxà «½*û”ûÌ„éjœàZjí›æ½Þâ¸f(å…¾*Æ•2Ëøt^¢b•ÑÛ*@‰±œúlÒ…X“öÈþÎzÔ Ý¡¯/šûÖ_./j£Q3ÓR¹MIÐ12éô®_õÒâœrg®ÈÃå6»ñ2Å)eCà Iûµ)J,{U«R,«¬[\¡F;ØrŽ{i‹Ž r;Œ˜êKžøbÕ¯°N×4üLªJµ&agÿƒS¹¹™è ¾¡=òË£%ýØt©çä~ñ\xÉÅu˜¤J¢Hy`8w˜AsÎ*Y®U…B“µï§RÀ=xw“Éž–hÁÿKfÇ.6 ·SM÷6‰½_)D#D£$è:\ž^Ñsä}ÙKŽ¡‹ðžå G°NnÅXBÉ¿"'¯O¾¯0†Ió’„[Òã¾Æï­îãqýòv;ˆá™ŠöŽ%¹¾¶µ8Ùü6[ÐÏ ߇Gx¿ž2tuA‡¯jí:kb0ÇÄ‘ûƒx‘ì[â¬Ò• 5+¿_Ѷ¤(Ðçð ÄWæ'û…QŒÝb„1H©£+Ô¤”ì"æ¡P›’Ì“¢‘‡Œ;üšAf;ÈÎ:ó•ø6š}&£ÕßÇûrSBÀWo¹MSgzMÿÒ2ðÈX螺ðÁõ³Ír¯ü ;O'†€ó:ÇÞzY™›üùØ…:A¾&Ùr-=(±‹–i/—òùQ}•Ýà7,EƒEVySFàÅ“ ÿââÄ:ðƒÀ7yQ©ñ€·$¾æaŒ)”ÌÍjAw(( §ÿ™Öàçâ¿&U¬.×:¦ü±že^í?m‚ª:éMú_Œï:÷&ÜOîçGZŽÈvP§ ø·wÕˆ…A!Ç€ Û)¯Jí5fÈSHèz.?Š]¡¤úêÊPîf aB´ÍJ\^°[ãuÅ5ÊkðÀA}H’Â\j±ò‰´˜þïR"@¬?ìÁ”‚Qó‚·¶'´^'ÇZ)ŒÁÐ^KßãSë”gIº¶­£’Ðï“Å 4&H$¤êÞçžCµxäPZHjr-Ó§²‡Š úÁvÎ%swCÆÌõ©„\…­u½?C“îŸÂë˜3ó]•^y¬)÷­ýûf?òÖTÐÍ›ÙÑÂ83,¸^Ÿžxòˆûü¯x‡!¿±`®¤˜£Ã ×'™Þ)2YÈ+ϸAŽº¦·|P.fÌc×È}ž7ö‡Ô›ê¢ZìþÂÃ2“šX£·›‚ßZɨrëç¬éÆÒîbKïpÒ£am½Oò öÈÑ+(ç5Þý=MeŠ4¹q5§lРž‚ºZÐù½pcYâ\ÿõµrÜæ‰§ÎÏ£;ÔöSx晢ïZmOäÔsÕçš„Ò@c¾¤zRòÖÿ\¦2‚ŠžÏ;nЦ‘Ô;f<Ò¾¿s Ý’õ7»8òh¯ç†Ó‚LL;á>R$Lã«ì†qÅÆäØ+¤‹n JOe0ªdN±1žÓ:èZ3çûüµ Ö±ßs÷ÉÓÔê)ši¥æS×_,ÓZÇ­aÕ^æûÌ_2nLt"Œû zg”^Í„úì?pÌV¯—[Ü ÌéD3Ǽt.ë–p²ý­ÚTU£FýLt0| {TOhvZ«{1djðdeR‡_"P´ ÷؃é[rÞ7kòÌ·"äk«16›½È"Ï|z{GÀ¤†úØ·@$r“<0j³Ë„&ë5êØÍ[N!¹µ•£ù·§ÇÈÙ[‹ePú¹Á4ç·ð¸·ÉXðßÚä89WRÜÐ~H'!˜qæ»Ci‚Jßr|“â_ªb™«u@l 4Ý ÃDfÕøÈœr­‡q ±M$ÆöÅðcÉ.FÐNË¡ ÝÌŵ.m»¯×¶g)àa#Αý÷1±H$4Ÿ©$f³žJ<ˆ»ÖÂæ!ÐEPü¿=”1kmÝWcÊWä•c1ÝCê@v—ðIøÁëľ`”Ñ’K§I¡b}ån¥€7 5èõÁh°~~пK„ßV×[(mB[®åinOÀ<Á=ƒÇÀvëw€×'œ.Þ­¹^H·³j ô%.b[¿Ñ™ØÄäÒ—Ð2{dÎEC3Œ¢°€ƒsõ„MÚ»ü6›Æçy»9Ï’š½ª´­±¤÷ª|-þíBÓÌ#âÍý£äVýÏÎ\u¹T¯ÍÌsÄï4Ú¨ åÓ›UíXcîU>Wfֳ߆c3Jò'Œ}DDDäì&Œ K)2 ÝÁ{—‹òã¢Ün3ÔKQ®ûEêöHJX¬’Qø;|¢Ê¾®­‰[vü¸ùB|Çi©‘Úbð øÀŒ@ªíw²BÝo'‘©£˜)¬Î_‚|!\²©ŸƒqUº\Üì©€,6G´Q«j¤®?ãIÒ}lî{]ÍZ¯Iëhåv›ñ̆לuÓüWµx0ˆ±F}ËÿÃü.ã(è–ôlÝ;˱qxžûús6ìw¥IXL<ÇØs=ƒ¯»~5+ÈÛn_RÆòš´bÞìne/ùˆ¡Ùì ¥Ês€ÊXD‚[´\¼¾ñui6s§zÒG~gS­•°ˆ­Ô¼BÏÒDòÒÕuü5eÛ]0ñ€Ä @óÙó-`¯Ã¸·Üñ¨ä“§:”%dkrQ¯­®þæ§ 18« « Ûª‚YÎÞÎüç?+¤73œm#‘~®SÃ/Œ§{-xñç¬êÏ»gTli è¨ç‰#d9½‡˜$âyÚ*ÉOHBPT–èì•ÐùÀ|£ð ‡eX¾Õ#žÁ¸NÛÑG–*aj¾¬¯OQ,jÊ‚Sïc× Ñú%i?†¶0ZQS¨÷dÒ,9o8 ËRì-“\í­»}<$6·ÑNì ±Ý z[ö»à-0DÎy4™ñq'ÆÄ/öuoí®Ø­VyÏ•!¡”ü± yù¯^¿ÆX¸×^Ký±ˆÂùÊݤ »h¹Ð‘ÿì@úÎ&ƒ9«~o3élªwœÝ¬¹@_ÙxV!Óå 6¢?2ëªâ‹Íµ”B&Uxä@°[nÍO¾ÌöZ°êàX¯å ªÉèùq$Xjh“ÞÁ5ËCF§æ;$·VÁ9†¹oEO~¬tKæ}<Âc*Hè©'º:Å—Þfå]Hû²áNrsĘkð nÒÎ`le,s>$(îHLŒ ü´a‹“…à0T»¤^ø(:ÐYQPú^OòZ7Æx eœ4ÎÝ\®â²¥3µH‹Ø^mom.lëÈÅ“$±Iø¯EPúü¯~üŒ9†“üOQ‰ŽàA[äShB_ÀŠ&)káïÃJFÈYÂD*Ì¿œÐÕdTüTUÈ8¶ÇëUÕ=)Üÿ’…·û(cÌ4jÄûL†é¼ìñ* Š(@õdò&Öê>gàÉ×û‚¡àÑ•ö¦&LU@öJü®–š¡·Å–ÝݶÙÖ1DÑÚHž¹m½Ðµ Z,ò=={,€ûÏ–>NL0lka}@qÛ×(–ÿÂ=£!øÃbŸï¢tlV…¢!¿=´_€Ì~K«t|ߟ(ccš\ÅI+ÉlšUÂjƒíÑ2¸Wæe<]é,e¡ïèלo5r­Xí¨‹ý ?GÝZèJJŸÊî/²ñÎûü±pÌg±ÖcâP«V_k„nâ3Vhs¼Œõb@Pg;còb5 ªýýê§ûÿêͳô#·@dÑCà iˆmÇwe¾bêÕ÷ÿ<I§µƒKHù)#xIØKY"qZµ2e;õ2IÊ[õ.®ªØíŒûmud¯ 7gø‡‚ªNq¨Ó«1| D8¥bZ=\ž§§WÆ mȲó”žç> Ÿ®Éljޖùw qºŸÀÇbóOûg÷ 1lá5Ž~>6ª©5V™HˆrÁö%ý-:ËŠS4wM›‹æzݱ\=¸¨ØQ:j ¶3HU†*¸ËÍ  \ È^ÍxmêØÈ}Éj}òÎc š…\›@ûü´îM O« ºÙ¹üÏH•o®Æ¯K/ ›À´Ï2H·‚×z«JçcW届8 ¤ßM×÷üsmËŠœ*9 R³z±g1´rþz»é÷y=q&õ¶ Gô”¹ê×>3¿8Ã2IÄ*í”$1ŠHü÷|…³ƒ §åuu_@ÏÉ£Æ%éPç–ü˜à„àûg»p訕A³*A H’Þ ÏHq‹Šp¬Ä7®!)ξo‚6égÚú­^ðŽ£ =lózŠ úV½H@ä“Åwµ« ø=‘yÆhœ4'É’øÊæ=Ó(Õý]âÁêþaìÜOx+M‡tâÇHM=£E¸ñ™8¬‚¯W»yç°ø9 G—ˆªgŸy’+ÆUß‹Ÿm;¾AN½÷3Ò›‘Ê0Ì>Ãü? ì…˜L߫ǥ¯ Û…BEþ³=)–Ów~Á2E w¿ƒ¸sãuåâFy¤Ÿ¼§ö™@`¢ÜlûÌõŠfØjpÍ%iÿ§OÛ‰2­‘°t¡˜;aCþþnä'õ}Qï–ú¡è>Ø{ˆˆFÀ+KZìEÔeU-ˆÕÚ´@Áoðççc Û•Å»†öAŸÔ„mA¸ öM«^dügú’Ù<¹õùlûüL×øµ ø`7;‹Ð@ÿG4 ƒµ´RgÑ¡Öb¥|Ïix’Â;ðØ”äP°•i$‘ÿS$4?¥D7õC[êë{¹é5¦Ýg­Õ”Nö ±ž ®¿ˆK"3|c2ú‚o’G¬ü[¤¥rLøßôÊ7ǽb­Kµ–ÚCÙ2´cäsÎó æÏVi!Òkžàu´T•á2ÑußH¿ù®]×ìðªø“ޱˆ–†)@£Ú2!x£\â· S–{UØr[eê©ØÁ’ÃòŸ°Þ¹HÎt„ò{Ó²6÷Øc·›G‚ôl¥Ãz‚õY„›Ö‰OØ™Ïi°ä¶j‡4)ëð硊1¶õ}ÏX6íÁ€¾¤!÷¾phÑ)¥ò® 8zZû¢Ø¼t~ÎŽd|»[°G )¹]G$!±#ëjAÂü4ÿ¹S?ðhcüNšå.Sîv(H%è®6³± PD?ÌðkÉŽMƒ˜“‹3N'<@êúÝ‘©¤‚¦5ÊñVˆé¶NÙõÎò¾¡›MÝ3¢‡5ï[ÅýllÙÌÍÈ$¡I)Vf0~Ë"‡ŸùÈk‹ägɵ~³D­¶ ÇЙ&’³oX²{‘<ÏYl/–þ0›>lqÞá/It„aÑLô •z!›4ò(t3„ë >ö½[Rì<”±Ñ¤”]™«üô™q3Dÿ—MþžiÓE±Ö(Mv°SyVÂL¿£”Ãn±¤] ì‚¡µ+¸ÝÎ߉i‡Ì¢%§7$ʰÄû|«6ùLAÝMŸwØ3£ˆCWü6}m˜\\Z.Þߪ½Ìd0 lÊDÞ¸„v¾S@·¢³Î^`®r¤d˜}£Žc´Ë{¼CÅë/BT¢iD"Jµ&?UÙ]´GG̸ôþÄ+„‚EVÃn“={½º_€5‘öš«Žp'93 µÎIûRy´þú7—¾i Éuª\š‹Èüë¡âQˆ6Á ê™+ßÔÒYÜ;p#µ²â-˜¸§` ½AÈMžöª¸w@RpYbð\Ls;ê3È`­Ïf@xêuáÝ¡#h[%)E¹c7Λ$Cõ‚>AÕ7œ*›øk׃¡ÈŸ^­÷ö\Ú{£±ë¯f µóÛø! #ÝVþH:îæœü5P8_ùä$K_CîpT¬š£í´GßI®Q¾Qd¥®qµfp²—ßDЛ0ôÅóÃT[êøX›¥!=[ç8œµsU½Ò¸¶‚ˆôH´0‚¢™Uij (÷±*Ö%ëØ_z«Ùè¸Q—‚©Í•8—ú{îöÕÐI(,»»mÎéwL_sÏì®4-ÛŽ$åòú<mq:Ø[O¢´ùqZŽÑIÃjs¶ˆ²Ô}IÙÑEX!OÞÀÈX‹Pˆ¨«n_3ÖáæÀ§A¸sDM³Å^Þ¯V—ÑŽ\@+HÙÖ% ¶a“×Û–BZ¤åx«¨åxšP@ ’øg_ ÿý+ç×üMy[X‹!XwdÔÒ¨Ú-[Lµ8ïó¼wg‹u€ã§yàO±"Êh݇¹ï¿B­=O7`‘£âbKG¬Å„cE¾L-ʸë¡ æw;«òÌÇc‰¥ñ;M‚uù¥¯ødÀ~>£åÃ’©êsUõ¼äÊ‘N„“üµÆ¯ %r^ù1z4¯Ø‹&ÆSÃð3³RN/EêT² ÓÙìë5+šAŒ¹f Êµ¼kU:ÙójG™ž/ T‰ó[eÀÄ'ùµc]Œÿe‡–û ö¢­ŠJvºÛV—B¡HêÀ®k—ÊÃq·!_ÂB7Þè°X4ŒƒmÄ\]òù=UhmÝÙ~QäÀÅ Ù ÑŒ ¨“îëÞ‡FYØÙv%nÀ&‹t¨G–j°¦±¹Š2ôÓ&Êý¼×0O¯ É®T^„×MÐȈIÉQ*½]kD„€ý¿óÚ‚”Á¾U^²Ã¤kŒX4«±´ˆ.Õó§jØDïý6z^i˜ÛSg9,Eõ/Fv*‹uª öÄhl*÷jry?í&¯ÏºÆ³¿X»7'jã›tÀ&ä½D%e˜.¥üM{iƪWÀ˜ÇH@<—®.7:Ùò⡎ mÚ-ƃ‹I¿Ñ±…Ž"mìjöÓ–Çw¨*Àìp§3D Øs€.XÅ7èõ€6 ôk&ãbg¬|0enðûoBvûYcެEËÆ‘ðñÿ}ȼ·@nþÁÂêŶf5ÿì÷<›ÐOëž¹†@˜2—,®R8qD2tÏÈ3Zß™e— ªl¼ócÏe·µþX`Z#]Z Öë›EÀAÀ<§ÁZ‘h!eÛNšWj|¸Cj6§¢½äfB‡Y쥞ÒwjõÕC¦Éùñ¼Xa Wüh°ÊüM(nÄâ­ò¨Ùó¡½  Ü'h#ÿ¶Þx©_T¼/G!¿Ië0f’œ¥*“¿‰7œ´< ÖŰ)t%!õªÎ&)Tº0¥We™yéÿ×nR Ü@”x‰ã“5oðVÆÆa==K‰ãd’zf¸U=tÃí:>”)•ÛŠ’?ºÎbU«È ·!NÑïáæü>h–5Ÿ«‹–»¸ÉèsàýgKº—=ÏÍzÂ9}Í[ŠüßçïªSÀ»IœäT^W}Þ6 fO(ÅJdeÃ8fªz8.=¹³>V€9)Zð§š`Íñƒ-FB{ºï¶m¤üLõvoW]ÄÀ¡v³tDóÅ8ÂËqEZt¯0¤ðÌ‘0¢qć fYCè¾…³å6¾‰ÎæÏ˜ÍÑ©\GÈOÞ&öìÖ4¹ç@= {K¾o¹!¹wX:‚8¡ZlÀT<K«Jĵ!Y‡çUõHKƒKçà, 7yKè)±-ûqa7>¦e=NV3û²ŽaBçQÀõS]i“嫉ƒ´:ËJÀåªkP¨wíÛ7@kó>Ýv!òÅCB˜mý!&~µq¸KÓPÁ‘‰‡}õ[ò½YõÄÿ¶á0yP:F›aòXjá_Ú2æHê]L‘ü.ÅÖÑóŒ¹çbê:‡x-f6Æ!Q„ à/MõËâä®]ÉfH4~Ø›:@×ÙrÏÖãEv%0Á¾ŽçæB"Ç5d£0]&Àå1¨U•ù­†h®–ƒbd¸'¹IoÒU2 ¢(Éý¥…vbh¡†ñFð±á}Ÿ¯«¤„‘öô-á¿_¾TI–ˆŠ"h[sèÑ ¼½©…¾d%Åìu(Kï…€M}Æn‚]Q [ã´ýINW1É¢ÿçš €É¡ ¤ÅhJ " A-¨[™þú{q¬ÓréõÇJ2è'øÂG\êý†0¾»uzn4I‰êFZ-ºüMa åQnbH¹W‘I[??–˜6ør(ݪ¨ˆððBš#PDÔGšWÏÃ8ÏqK©Ô$sf¬y^–w §ó¤M®‹‹ÇÞ#¡7ñÙëyŠ×É7xƒZ‹ØbÅaòÛZ"­%iþ#<«Òy" ÇÙ‡Àj§&t ÿáºÐ…œ-ƒHœ¥pÓÿù}“-š—wõ½®}¯‘郩ÁϬìfµVž“ Ù—Ô¯¦…Ϲ‡’{XúüJ½.b•WŸ7S¢£gJ­-£û9O9„M;jdo¸ŸöZ§ O^Û­n"k¡^ä´íÏtü5rNÍ›çàÈCGît*§µÇŠL¼ãñ­Ö÷8ƒ¥rT4D­•&µî-.E=YsSc(N\覌ûæÎ2™½ç|“KQ«è °º«âñW–À(Ýœ‡àd";o}Óju× 4 C4†¼Z-ЩK’ܨ®Ø¦çÝ¨í¢“2Âw6þ©eئ/nÍ.òQ 'ä>OÖöÜ•ÛvöJ³Ž»‹{–.ͳïYÈÁ£\sÆ ÔÂùßó4œ„Ú:e$ô¨uÞ¼œÙÖ‰dòc>…o‡%ÔùÚÞÍÁñ…†Õˆ ì† Ò´äÙHˆÕ‚¾TGבÙ5¢<)æÔtÖ°$žˆ·Ò°‡U&AçáÑ, tI(yêlÄ•^TO>Ø[ytÖÌÔŽ2}¿GBÍÍÈËüX˜è~èŸ\/[ÉgjEäGÏ“Sã³x%²w}kXß…iÇ?<˜ˆá^)C†`‹çE ²·\"_CDí¨·iáâj渋6-´*rû<ÝêáÑ­!C;y§' ±œ †;y_ëEÿ 9†É—Ý‹$t¶"ã %ôò‚bjÐEøô1>Aê"…±,­î|#r~ò=µ¬gÌB# 1 ì·±Fû× ;w,Qr¾¿<¹g^ ´ÕTNA£ùzjÔæxêO‰ËV D]Æ­ˆÚ ˆêÛÂÌæ$þÙv¥`OÄ÷x‡êírV=$øC€à‡±ÓŹv8ÍTGÆ[›vD”[‡ÏË0üL»ˆhNUQ ì.9$lj6ÿõ^¶—RÃM¦(Œ0ôûµ¬¬4¬¦ž‰M¼ù§š‡dyºH㑪°Y>O@Y-%¨¬8tý»½ý‘òÎêv*K1šjNTŸj¨˜à÷.œp7ç`^„ÕGJÈ +þTœ;0÷ÏòWd©| ƒ6WÞÿÉ]]XF·_EA-ëÍ0Yy‚‡ÙkÇäæû8¨šá7=¬7¦Ã}ê“{,µ=+× ż/Q§NâNþ?Ó~‹³ŸdÌà*òkJK 0»ß.Í .³Lævw&#3ëW÷ÖyQºu«~§Ÿúº:†~r³ŒØÈ6¦~®*ãªRÍ{ÝÉ"•þa¶”dêÜí)ȱmêPå(YÍNÙç Úè^tZÅû¶/i‰¹MC'®}å}–_s­Ìæ'Ù ~5ïTø8Â71ŠÆ÷è«!P  ÖédyœL6´g´õ%Ð۲>[AÛJ ’ÎBÍ^£{üœÂn@âA-øÂ¹bÄDl<¸¿[ ucv±(*KhzQÛà 1ü5 §üûúÖ5ÔÛ ;,£²ioM ~ r–’<UAEiAG¡—RÂ|ôœµoªfçê±’»ÏÊQ½…ºÕ¿kõçB³ò£ú•a;® ù°f¢]^yì…E›,Óš4%SVß«/öÙS >q¥§ã=”›T6•C½&YÙò´ÉZ¤2ppD×}™ŽW6~ *vuÊŠmN”äß~ÂIáçáþ«ÞÝåÛZÐJ½íA ôÿRŠçBÞo¾C€LÚ¤B ô0î?¹Vö ÞçíyWï‹ÕÞ½íVèlh’w„ÏHZÕÜTï‘á.j’\rO^$¼ŸlšU Ší°¼°…¦:¸Ö´ÒW¾®“0Ãø Ð¶™kŠ˜ô ȼ^RêÜl\sv„1e4‘ Gcûð…0g\1žSßúë[ï܆ذîtèlm:ODíW…CÇÝ›†/Bš—Õˆ'üX7T±£ycŽ¡t 0ÑÞä¸[î2Âq߉;àü ø™î  l<­Ý>03ÒQ eÖFtb#´Û·ÙPÒ ­ü{8døÇ‰ZnÛÞ¨(ù‚êRÐçX½m·Ü¨Ãª0 xKwÌ·qc‰ò³Ê5gÀS±ÊÛ¶š¹,ƒ\sëÎ<±}î2ï\=Ë•ô¦ p†ýÁ­Ý3Ü>¥àòO™(ûåkøŠ¼IŸbWÉãC>1'$St*ðAtB› ,šDF ¿Q§«æ·‘TY¾É‡ •;8”éñ)G „¤µà›ï”Hâ~KzЄ"sPP¬Îœã´w^2š.ÁE:ö Bµ…| ¯äSvª“‘úG‡ŸŒ“Iðà~YÿiM…®9óíy+Òä’ѱuÐ]UÀúQûÂMzĉ°f)3}åuÒIðv¢I5ƒ¯>E1ÒÞêOå½ñÈÆJÙíÏá¬ËÚx£6åc¸m¦ÓÎv¶Pþ\j´À´±$%aˆ-+l-SÜr6®Ð"ˆ`â¸8{p@ë7ÄzPßHÏ^ùÂ¥‘uê`ê dõÅÁ%£@øØg…M\ÀãI3t?ð;ω°œ¨Û~ò”|@ø’Å< "h(*&È|êÐd7Þ; šp“ŲùF‘°=y1h'ê`T;ix_™àö×%>·H7áܵ²Eûòª€Òf¸úæüXL¬×OÔ³i¹ €EýâqÀþ¤7a ¿l¶3»Ågí¸îê[€€¢°øA}Á&^3Œ‘ìcØxØ-™;·6‰yKw¶èâåð¾K'#\¹96¯Ž(g©6´b°0=-Ö$.=œ]ççu1­qˆ³X[ÝÑŠ¿0Gi×±O Ø«I÷Tú!C‹Ý—†Ñ1¿ˆw£U>ˆó&H›,â°Ñª*«ƒì]hßÓθ#cPÆCûG‹—îð,JåÇv¹µéÈ—wÀ¹y÷¥[$ Š·ëE·ý NÌu_Ë"Ž|!§—õ£¼8ûOßüL©6ð­.°3–À'à#¹ÏgQö´Ž²‰gÚØ“¶,f“ý¥&ø>~¹h϶Æw›éö¼h:nûÿ’úºqˆeÿAgFÅÜ¢†Ìª·¸û%Ÿ{'zÇm°$Ò êé°v97>±.w»åU–”ÈEúï-eÛ+§F2^®Ñ‡Ù{SÓÎΦk!“V_I>?Ê"AAãT»6Œlÿ Ó¬Z³¶l®ä€‰ HŠ4Ýíü±0(\+œN5æÂÎÈÒ{6ß/fŒ}kå7˜±FQІ•™x:@ x!|x§õßšGxŸ¯ë®ÂR’™R?R™Ñf·C¸ÀL[Ï m¿õ$ê°P=›·%Nâ=Œñ˜þ×éXER‘›Š×“M¤Ø+Ö’Ðoö\Ë;ð†éIÔ«„lPn8jibG§ïeïbĪb_I\Jû– +ÉôEžL¥4þ'éO~³ÈY¼%ãVgpäo]¸çØ]k22t­Z_t/M¬?q.9kx™ 2åý„–¿ýƒIuC°œïm¬â±ØÉÇÆ¬|½–/äéPѧ֨»ü6h‰ãß";ÂÖ õ©Äˆ€zÎ>S-†£ó$‘K›jªÙŠ !­»[?M&ôÔ |u›+¤Hµ[±HTi¹#fÉJQ”%,½£hqZÄܪ–šh¢¯³jÑÌo‰©Üz¢)^ŒnÖ“ò9[ñ墘Us#΢úÿ*tC5óÜö럆2/GÃ=»<úåDÙ0~¡@—tbðÞN†fÝï©Ñ&p@ $XȨhfšÍå°çN®`Ó£†KîFZ£îØœØ8ýXZÊq H`¾®³~êQ'ÉíÁ  @ÉèX^Ö&0Åùùy}[°Ûj¼Óä§™ueðüM(+ù^+]¬ˆ êpïö:A,Ríávc×Iéa3‘‡Ýº=+oqq9QÞU3V×`ùÁóƒìã=)çS,”Yw\˜z,h%Ï~©+£¼Ó_ ºðë<\Aß‘Á…RUj0íú¼féKü3L†Y%Ú°þðô-Œ½pPù”xè@¹D •¿d&Á|œf»Ñºãm™ÊÌs‹þæ94©}sË·lŠ!ês¸¾8áÿ°amÌw„?‰ ˆF¸Æá8ÞÞ¥ÿg:ÐŽ2ä„€¸%ö¤¯+5[æ $ÀáŸÑùtWT ŠfÏb»„8ýØröäß`$&UÇ}ÝZü1 ·.k'‘üQ\xæõS£·}wòœv… !Gø}väHÕZÕ³X{?ô ËñèÅlWú„r Hã`Ãvß—ž[ü³b°Ò([ûç&>kûŽï\"G3E®ì/—óÓš#'JEHÔB±[] ôP¼QB¼ »v¥PF17šÓÔÃp)O~·¢gÌpØ—)‡ò\õ´õ2h‰ŽÝƒ=à5v%Þõd‚h“é>ùæ)N ‘^h·-cáÈÑS¶ÙÀp!¼ Q=AÛÒ v;1[Ø›³Ÿ`sª£°þÓËÐí€ßR<†ÅÃu¡çgCû2Rže!V25âà6ËóÎ~€ãÿõ“äg/Ù/ŸˆCY׉t@*ùcGFí‰UI·Ü4ï´ÉA$íbÇe‹=kǸƔ?è¾jó°OçÇtO„¼$fMÅu7B€×¬k+@µô_…°½¦HbŸë½¨n±ªÁO…zl%¾¸Šµ7IàøyÓNëvx„lŨC½)sШ™@v™éÌßbòb”Ÿ?%®À`A @w¥¶aýI\ä]/ý?îåÊ„’µ5uÊ1\ÄÂ_éc[[õªÙ0 oZÛ’ø¾œð«”ž¡¦Iâöºùܶ¼_„E!¯][ˆ¯±kíïcáæo‹fÔD‚DåüïÂîÞ%Õ·YÁ™éÁM]>*ì43u+î§>pæ`™¾Š»)ü6š¯Óyý¿²ñE^M‚ÝOô3‘û:QWðó;³!‚"ÀmÂã¶`U-Aâ,m²ÂC,ç¨;Ÿ¾ áòQi††~{Û[9¯nošxrSâ²’¹°[¸á€#…±1éêûÄŒ/ãÿvûôh{ˆrœ³ïeçf¡V=ªÊÌQ¬5±özСТwÂ@ÍgÝã Р-¼óœ”AD¡peš“ɬvG³»j¹ß7b ܸšŸ×š;'\Ñ¥«HyQpû‘Ù2jÐßPÅÄ,j›:ÐÖ—ñÒг*<•Ùf’½$÷۪ȫ“ŸÃµW]uÚ-U‚•7.dnc=l\ü5mé0øB~…¹óÛ=CÕZ1½º“m(zøbuÖ°z‡S¡ž÷z»#t<ÃT]àe¡×]îÂûš ÜBh¶Ex߈†4ýSg}lµòHØtRSxyú:Ž«ùâ³fà Ȳ´ ?Ü8}¨ ؇ ³o‹.uí)ÑÐSQ5Ž9%®úôi\£˜Ào,å·ðn?-Oý&-¦rû î údz-9´Ø9'î—aóßó-f*ã¦pV€0Ú%‹9â“p­gDIÏIÌÔx‡åà•–Ñ–•“€9 ýñ”¥±<£<Þ³x‘SI{!¥c(Îü6TOŒéF/ê6M¦¢kÈó&#•üGÓK>B‚Ý»FjGÈx.| xˆÑ4‰ÍŒ‹jKu&”àÕn±Èø‘Ô­g*\þÐ1©ÿ{Þ_Ïv€ T@ïY.Å‘.cЖKÿíR‚SEú´ô²i ÃUä˜ÕÉW –HKQ²…‚†2²6ÄÒ¸·‚u¤apÐö5ÓyêZ« ,“Ú¨zHŽ ~u䇠¡^Ì´ÐUmT÷`Ÿá_­Aç†ÇÎqQmJ7™¬†üß͸tÑR«m€â06·Ò\p=Âr/õõð‡1¼¹YPnRßÙ»uÉ€¯dN ¸Ÿ*üL®+Wá^Øz·±(·Ùâ)jäqüŸÄ WØþþ"îMixpaU?ÿ]é÷ã¾8·fÿSr‚×rµ|wZ „„ð¤­Ü©¿!Á¢9Ñ×C¥:xîË‹¤úÔ?âs[q>ŠÿlªÏÏ–1Aó°#}Òšõ£íÖzYÝ&B$\©sI“æü°Áú«º(¶ ¦ª>í!¡Á”ZÖi–7xèT®W¤Ÿ‚å¡`¡kuEH?ç>þÅýG,Oµî"ˆì ¤•{ΛÓ#ûú˜ÐcÉA5ÝQyñ«„³‰ëB¦¥¨o»KHˆ?LLàYx!/±h‘Ä|j±DÖò¥ó7 ¶„01]öæÓÖo#ûPè JU¬»üL°œ‚oÑ0øð ^ÑŸ.P¤Í&rRÔü&´f*¬Óûe™¿0~v žúƒ¨GÎk>IR å9ånÞQw·1 W´T®½.O²Õ«¾¦æKìr5ûÎÁ¹1¾:R̾²eäÒœS¸ÄÊ%p|zmmÑoIuÉíÛz~i/]`Ê“O•ˆ³¿.†è¾ì¡#]ì^e-Ç7ƒÂÝ4«ÜG#ýp†jõ¤): °Ü%é.²š(˜eÔþí·õ&D"bÒ§5ç §J:ÏÿÃ(N]]iEIò8Ê žF9*×NáíðµV1”W¼²’< xa õ•Ê6mæÌä†Î‹b9IüL¾\½ñÍüÕ ÓÎ]Óê¯î<«܉ YðÔ‡ä…SÏL)õóÜ£6Y=\þdBòê’Í„s[qç‹ö¾uí¯Z@O Ý¾/›éœÂ¥ªäÍ•ÝÆÑR“«ÍËE‚Âzš…¶6.¡qp»‘4xÖÉ5‘¡¹b0ò¾œq{õä½Ünf&·yjN-N!J‹ÞW”îåûG€B[‰ã¬“¶€X„9˜mpùr$µ“ä—ä>A)ÓMÓë¨X^!æÇ0ÎóAu—¯I°p÷®¯‡4èµÃ`Ï EÙEF*ÅF]”Hxýˆ}CJ4.&V+L ÖŒ]â APˇ¡=fXü|©¨ì0@Ê–‘\åI5¨@žB×e·Ðéù:ÊCÕçÚ=.iƒÚµŸã’%ÕON±@%ëÌ»P½àŸ×±B¹õýSµ¯¤Fç­@²ýýx-šµ9ëÉ…Å™A&pÐI÷8˜ëRKDn™tøü WÝGy™˜î6ÝÄí2E5Q!z±NÁbêà­úö㋼',f¶§õPí'FÂRÔÀ›åé¥hö[È[ö€à£iho¼¶èž"\Vfkuåatðú÷kaØ­èåÏh1[ÆPâúŸÎ›xßéXûhò¿øC šŒìGÕª UHévâ´葎!TªwÅÔ¨„æÂ®q')Q%ß™òªñâ_‡;4jåšÔ‹² Ûm@ôR>Ào®®?Ãb&4®¦ˆizUr??Ø2“NàdWŒGÏ¿=†ŒË§ôq¹`Ç$'’Ê"¶Õ·ОËÉ“¶ÍÙlÎC•à¨D?TWM·„#ÛÒŸ¶m.¯Éx9€Àæ%m>ióñ"eE¥4["q XU/î]­uMg%KöɇòíóimI·§s,™ùì„ÜBy)’‡¬g"ÕW=a ü/×3?9¯œ­°œX`i©$‰Çh‡B¢Óê»UÏ5…µÔÁÛ‹ƒ~!KQ½Sç« ÷oú'[>¯SCJ7üßò „¦ ýŠÚ§Âš”ýç®eð’mSèX°M¿÷~Yµ;u&p±Ü»²ƒ[_ä ð^ÃÖ$ç€]äôGÃq_ûºÕŽô¹3¡ÑEöQÔ09K•‚À'ój£1“_£˜ˆ^g’kû-†0Ôoüw.Àü[×Ìž¢…ÀBú†‡«Bõ(^‡%B€›ì{¢\Lîƒ¦È 7IzO@HG¤rÔµª˜>"™ùÒWüñ7oï,Öî^äéB…ñϲN¶O8аÜcEÿü›¸DC¨ [} )’÷»6;EºÊzý¼/¨¢D³pTêvt)]§^Ì1@éü†&tEÎÀ ùHk×*A\F!ß›-aÏy¼KWZ5S„°IãD‚I$ñòœõ«çyÌ4ãeD—½ÐÀZëx9z œæ.\d™V´Œ„\ûxŒ¤gbö Ïî6¸/\¥u·¾b«< $© âØ‰šQœŠYÂ"wPÏmó@¡¡ÕØÊ}Oè&=iŽ;z±oÑßt+þ‹ ¼†ò~Ø–Ý‹^æÙ*ðÐ3oQ‹ã! !Y¿ùñ:¦tÚ’`—sN‰èP×>ìýÚ7 iÙ³DsüûƒzLüMC,¾°*ॲæA8é„ÝÀÞÏÿà·Ö²*A¿ÓÝðД¢Ÿo¿îù{úÄ„èÄNRuó‰s£¯6¶ò¢Hº…}„ñŸàWl•"uî:)Žþô¼x1ežá!Ô„æ˜GœHdù!k ¹òPg²ë–[¥Îê¬.«Žû_¿­Ä‘‚Û·ò„Z¸¨ ?êïÏK1îo6q8‚tæFÀ³ÕrP`˜²ƒík›ÛŸæ„ª…µ¢,¯YرÖל$Å«‰²@eÔΠZû:·Ì ÂzûÉ’.[°‡¥ÝÔûæ÷âbcw¾Èh/‡I™ä«£Òo7`+a'±:üÙ¢xa}xýä$âú»j†KL/£üM3A%c.ïimh+L`¨=jdýÚGÆð‰6“ús-^\µñê ûÃrøÛ«ŒÍ‚Ф=š´ãÞm7 ˆF*§(¡/Pm‡C3¤¬*¶RÏm—|îÙIW‹uõ']é ä\.JZÓÎÛv6 NúÚÜ3§Ž¼YÞ.LD#T}²–®¨ŸnÄ©’¥žFèêÀϳ ó*1ÚG¹°þÁd€åcñ{xºµ†¤aˆÝÙSžSÓ®0"œ-F[?,‡l“ÿªY¼ï‚Ññ!c3Tq>{²–ŸþRë<@Ô“¨m²Ñ…Öž>-'øbªágL ÝÛ½,N_¯n̹ÞuGyË… .¬ß‘ü®…`Çšú­WøqGo«·¼"Y-­h,™â:¾ÜÖtÂÏý [Iùak[9©0£ðPáÊ—¨ý­Æiïà¤&±­xÚô+S#V©I•çòPAE ‰púYϘBÙbß7ƒ} 7ÓÐW'ÛºÙaÁw Tòϱ{Û!òâüp^ôÖq”r-qÂo` ·?¦ §ûJxä»h–4¢†ìõ„â /¿?NK;A¡ÇÔOÊí>!"^U± fH2‡=©0H(H*ÿÕ›Þ$ýÒÎøc6¼/ò0$Ö'snì v;T°è§È/0Y¾-ÓýÙÛðú("n:¨˜½E¸Ñžü}[_7¬ZÜ#ΨuŒ‰ÖòªŒˆÕý.®7›e”v’ÓE/&µ«’š‹CºŠÑ¤ÀN€à€á¿ÍaGíSJxÊQÚìïP‘—½Ì¾5‚ÕM5* \WÅâ°„’—sdK¯.H/7#¸2·3äž&-» «À±±Ûd)íï¢íp4ÕM tcË®h~¹Š¸k­÷ös²®¸ž]Ü*]x5¼œ‡Õq¬6þ{qYþ Õî7¿ž°ê9œm$î½¬× ­qÖUÓѼqNƒ—’¿'•ž³šóZ6â@š QT‹¸÷‚>¯—GÛ†D4õGU­¡ælÿ¬p«õ—boá1ŽÝQ¬®Ç/‚¼á#U&ú‰¶ãNKà¤'œ¶ˆ“ À¯c)'sL×úúm;‡SÑ~½ã O(lšMZG$ˆ‡Xïñ›S›@Â&L„¹3! [¸9 NÑëP•À0L Lâ*¼¥Î(§ÛX…’èÐCÆ ”¶K·«_¬Õ­:÷Š «aQsõ³WólJæb§î&_ZÅ_Cà7”yN;ܘiÔ)úüª#™i¤ öEžaa¸FQQSH(Ú£;j—À¿¯Ô2gEæ·A ׋ ‹¬ü†v*µ\SÕ\X¶„DzÝáu€3è‚ázp\‰v>/RÚ|0Ým7ü¡£¦u­îôÛ&µáV‘ÑZ- ´èÉídþ–ïqä¾"©úN 0†$KN…¦s&«¬=hCgî­Â´GÉè.1o<Ò·}Õ :åeOòGüu )ˆ-oìÛå*ÓüòÛ§ú@¨Ì^ht)¿­öˆu³êY‘šv2«zß5Mªÿ.#òA|†IKÝ(ù¿g·_}„s.¸&B< ׊¿×šÒxŒ[S¥Z:ùÉ)¬¯Š\áÑX ý‚ÎŽ°ùYÚ<‘ÑsÊ1û«álK0üNP©/±Ìíˆ-mL>&{eÛS^µCQ€+Óš™Èï3âØ‚ŽVI¾U»E¬Jl9µìàcJj!â`\v€d@±q4àŠ¬/T» Ô ù¾¬žy§—;~Êú…2úV“E#€6k4ôŒƒU”€sÿØ 2¿X‹ ÷od@ò‡Ê©b æÌÌs@x¦>‚'ËhÈ€»¾œ…ý‘a_À+¥ïiB{ñý¥ùÝžîÿ|eñÛaJ‘VÏf•ÌwÓŽ)øÌ%¼±a8X<ò²ªåNïa+&Fi* ³&®”R„HòB.ˆPMÿ)Ç 6Yo—÷}¸ÝVWüL¾Ž7%iè#þ ³Ùrß7¦²çL ,ÚÓ–ë½XKMWÊ6-QÊÜœ]Þrl?ûâ 5Ö^¯ˬS¶M •‘ŸópzËÀã—Mª×ÍZÍJF;£I7¡'æFhÃBY-Rév”Üì#98á© ú\#£ZÈó¡+5–Ý=ù…וåM´˜(d·Wò¡¼ ݱìžÌÛq«²ÌR<?tYÛ˜Ùg´žâU˜ 梴ÛíûÔa)pjí$ª¢ˆL«„ƒcYXÝ}×èñ3³ÐòµƒŽ]¾Å\Ž_÷7•&a,º®E&èB!Ügâ-j9!ü. P½èØCΪŽ_#ëõÎ8ÿ0¾$û$Wa÷ƒÌe“kÁoýêR«ï?qWÿgu¥0j¥PÅ¢ãÖÙûch„¬}õfSÈdŽ„à7ÞØ*üåCügϼ¹~@é٢ș\¿çzò¥Çvs"— Ëh¤ê'µG³Òšƒ®Î„my–w®?ˆH^°À£jZÄjG"B7M› &…â´J â“„í–>#*º¼ÐIß¹HÌ糕õšÿùÇÒðØ—áýÞŒ²Ý¼6»§O¡éŒíbH)0¡9¶éa ˆ_M»}}ñe×ÙÝçÙ] ~¾}¯FO¯9JDöü8oÏZ­ô QüÆbs*wu9<=íßoÇúÌà“¯IñV›¤ oýlÃ2¿}GÞ_'Ê)€5Ñ,yˆ½“¸q"öQ…bƒVEHþøÂǾâ¼bOcŸ²wÞjÙ­Ö±9.6 Ð"†Êh!+Z§t<Ä2'?J]+¼â›Ë:Þ³kngåSÞjwš’›ÞqWH £%Ux²½Ú¨[ŒnØð…dUåÖëB sEÖ6ÆcII%™û²FBÐOG?Q@1E4¾é,–ºz ©Q×(îÚðÇneËñŠsTD^à4£Ý©½L;CÔ”UKæ¯÷ê¸ò4ïI¶º&ÀQ¤üLÀø œ¦§ŒR'.X|”r—“K$E¢.¡uVÌ-¾¸%YÎtWðŽ°–9Ä4}øá?ÖKfÖÂþïÈës¿ Ðä´Gû{;â±½Pí6IqöM”âBbL6éïáu«)*Mù‚ˆ ˆ=%ôEÒ„úÐpmb[HQ¢AG¢y½Z¾Ç·} A¶FÒØ¶çKºÔnbÝã72|ê8q„}Ür] §·o¡î›‚Ê­1õ¾˜]žßñ’útÝüÒ ™^à©+ýË̲CdÖ’Íb(v~ãx{9µ²kŸ&OÝáðº‚ãd DÐ; Ç !: ”¤x>$Òäãü{86Hõ{`3&”¼u`g΄å…5&œ¡';dÞMÜè÷§&CSõEhæB󳬑1.Ï\=ëÎÂ5½LÅp«êô̤E R¤…â<ïP¹n¡6 Q—˜X¹ô¨ò'ópïkˆ gÙŒ{˜Êd(ůA¼`ê•Z~H XÅž[[9Ž„âvBD½»~{½ ;XÂò–OÇâDQDcâDz˜‘ÚJ}&OaKÌñ.ôäC@h«í·sÞ¾1}E0°£Sa®§ã‰TƒÍŒ3ÐÈŸò[8耟îÃAmlW Ò¾6Ü ÿ›‘†xöìâ®” € ÁªÏX;4)g<À¤XQ•ª•ñ€”°]^# L=Ö9KJÚLcÑFǦf‘#¶ÒB½Ž7«bÅ@ €Þ%xE˜/C!_Yܱ>@d;`6’ÁÛÃrpü»PR(Hõ&ûE´z—;1ô ´;<Ì­Ãîsm²uW%x–ÒÚ'PPáA×]x‡‚L%‚­ú…SÎÝÝô‰=œ…¤ a+õ­⹩"ßxËfÿ’®¯˜g! 0¹ˆ€Ö«è@¤÷QGcƒv.Ó«=„•-íÉÇñFHcê,ãØ65Á¾'ßwûº€ßÒ ù¹œ'q)¸åeÙ‡üL°áAãpˆëÆCVFO±Mª¦ñë<6ßÏÈ]–ºAĶ$ÊŒeÕ@jß5–’AxBqÉàºÞ»ÀE^Âiž jV™=Âq7ÇPB™âÊû3PÛ0‹SêZHÕz°t„D𣻖}ù"âÔóc/ŽóQ¦šê%åw+ˆöA„ëîšYÏРóãf–p²aöwòçrîd1$ù£î©46¾û´#92J¹”+3YÚxŠxþé×R‘l?×y'šSP^‰—4†:#Q¸´}PÁ(Ê- ìŒ{ Š ¦îØÿ}Òú8AÄfK€Ùü®‚òX=så0·y;e@Ý…¤LŽÖuškzdôJ=ÍÐÓð˜/ÄÈ®DÁMœj]f^PÔùƒÚ÷JpÕóúOñi55>;Úlìô¶°ru¹”A(À¾CT¡µ(é‹ú]L¹>ºé’sSêÙÛJˆ^.I(=ìÓ¥¦Ò­t æÉu’SãöqÞú‘}•d¤š!ÚNXÓj¸x}ÎÝÀßp~;V9C÷Wjú‚ækö„©iTYhOÏÙ¥uHâÐu¨V¦Z §6A‰½›fùíL+„5_m?‚r2­%ël ò*&òñ ¥ °_[OggSW0ýÄ nCPmÐÓFñôÿòÿÂØãúëÿÿýúÿÿÿÿ ÿÿÚÿÿûÿÿÿÿØëèØØØçÿ?Úîÿøÿ øùçìóþúúÿÚßãáü¯+rª@¨ß¬í”ùXPg³Jâ^SÕ ‹äÉC˜zècèߜֿ¿uMúŽ×7þ‹¶caÅ'Y÷Á‰T*qeabª‚˜¤ŒS/f¯)3§,½^¾°JEWÙ‰»þn<ŸÜV"B<ìŽ0œá@V9erD%í±ƒ| Aª(€IG|¶ò¡)lu»Fu4¥=¼Œœü£¢ß½Ña {=¶½|YvïÀjaR£“ry^ÀXÚ†A>f1„qg&ÅXØ-m¢¦;©KQ”lL d =4«­Ñ*†Dã8@,ñ(wÇ{Ñó>òcR‰Î‘‚¿F¢¤¯ÆÞ‘drA¨š~C}©7Z`\L®Ç蹤]h”òêÄI£ÎXaçRĘšA"­Ô®ªTïB’®É¿VrÏ9ÿFÔ'çb‡r|e‡Œ^ò rÏ®yQËíÐ&xsWbg>ÕüLÜ2tÏG.bìMZñ¤?Œ#þ5ݤ öʾŽP}(MøºÍ‡¶Ôdtký¯µm@”;Pê‹‚2ö·X9Óô1 㯠ry}kIM[üÆü‹eBmÛ%#)êQS¡Ïà Ò+´/>^áì™Wë{ç×WMöÅ©£A\#D”µ@¨p­Ü lD¨2Š ÚæÆps†}võ¦|¯7ª0„Ò$çcOÀÑ©g4¾à!2à`¸âøÍÂöT5]„•~^«vˆà€ØÇÃÄèõ[;‹ê`·×˜ßm¼¤ççœKÚÇ臋{©Ñ@ mÔ™­Ÿ½û–THFŒNz2Κªü¯?žá°s_|rxcù¡¯DUC2„¥«Žz²"Ž9}$†#HBƒõp”œ)½ ?‚ÉÒ0RÍÊÅ㺔;ðª>î+–d”±^¯Üm#yÍ0yÉ3½èóýþ¥_Yýõ!ã°0@D}uÀÖåV—.}2|r=:É©˜ý®Õ>5-‹•‰E`’_K†EÑU(+µÏå²#ñVË6éëLôSÊ$­ÚÛz6®’ô²Õ Lˆ„6…LMXrD$§)™«ž~2\…˜CþfÉ›ºÐ¯†cvdƒñÚ Y)Ð,’ %N1ñ©N›§ €ü|·’B°Kݰ:ùù–]–—½»Ø¯Ä«Sso˵÷‹áÆ>ž˜Â Æ‡#6îi;LÒ Ì¬ã ÛOÀæ©¢™cö¦‰vø‚ü¼ÄJ{Ê5¦ØŸF+9j'x#‚¤ëá»Ö.Tên5´Í>‡Ñ}õÈÙ”o8³š|ñ­äH«‡Úã`ä«Úq2íÞIw?ÓWAÕä4ñ” ˜uü†Ù%ÈœÖìGyÆxÖî…ÌZ…€¤ ÞÌ mÞ ¯â÷ÿ ÐÂe>#ÎL3œc §‹Šµçv¶ØÖIbǽOh/j|í'Ü¡@Æ;xV"gäÀÖbº54«ç¶à”ǯ‚²š €SÁî Y¾ùŠèÆŸÝa9®t¡°-–9:*8Û–Ç+©ÍÇ¢'>XÏ©^,ÅͿӳ™¢_ù¿Ú»£Œ±àO2|>ÒшóH=ÒóÎU‚e*Â_Z’­lrëpÎæ6.eÙ~<Ü—bÍsÀo5oR¸ÚcˆÓU?«úc4è6m"ï]†U^ôaI…Sr¹gó³ÅM{@ÚÞלGŸÚHNÄ(Ÿÿcü6gNEþæSØå<ʵ¿”ÕÖ ´F†íTNHD)Ȳsâ“ e4…Ì‘yíΞzU-ƒÃvç¦lˆZíÑòYÅê§7ã¢JDÄðéPÆî‚¶Qd@U¼vºzß30o%Àñð ÀÍîHèn›¿ó4–þ‰;*gÓ‹|À:KM¡ä+P3æGÜOÚm"§Uà‘©ë˜t8¾*xiq¾Þ‚–kSÊ?*3»+ÐΪ-Ê­hQãý‡‘ˆÏ)P~I7þŸQ¹v–ù|íHb„ÿcädìL}ºNðgü± 4Äc*2¸ÛŒ«@p§ZÇ fP9Ù»¾5ê.¾S•›ù8ˆoF]äÂBk.Ûô¤Œ¡ƒ!T"W½¼¥çožKùD!Ï=å ÂÊÁÊ®U¥ Ñ+M ¢>_¸âœ¨¹Gòðê[$´ë æŽ(1ÐÝ]À»Iý¼tñ5òu<Æ%ÁÛ!kÐa1Ò0d·»5T¦½ãdjéy“”ŒØæ&ZLœgêBÝ®ÚiiçDXR†±é"bYËOH!îùBïc3Ê*xzäfá²+¹+Ó"[íÎþûdqD¿ÚÐZá¸ÛšüL¼¢©‰$uºã®‘í}X³¢à7DþwÓ†;ðwÒiYLë‘®:Nzv)n8ª9ÊSrŠËWîSîkŸ9‰.@ºì QhÂÈƘyAµ  rGé‚]¤ü–à<õ|~j‰Ð÷ {IÜj–,D?þTåC¶Ä õÕ Âéð‚p“ùæbîø­0|K!v¤÷«;PUz¡ÖyU û£–ÙT³¾x))1•uS¬·“ìPPz´ (WÂ5Ô³'TW Žß™à©iIŽôà€¹Á¯òÕLÇzäuÜøÑÙ:ÐòÔkúl³ì•4mmb\aëÈjÚ³Ô ÖÄwüMZj m™‡=òç9|›ðmÒÁ׃ǩä¤te¬†ucÐ ¨I¾Ó^D )l=ÍDzî•àøúoS"µÃ†úŵäÞZÚ {”Åtq®[¥Ðë­‚ç_@ªš¡’_®Ñ ¯²-«ÖÕæ3éi/r² /"ˆ|\„+ü’ð uD¼s¬™ŒöL§†±ÿÉ,h—Tp߃L|€1œ\Ôè@8kIÌøŒ >>°úˆN§ã)ëÈA.}׳åjØi©Í—3²É¹Û»q<.„©³½zëã7þ]Á±(ÅnäFì/üL˺åN‰³j{×a‰“údÜàâƒÊ·W܉O®4ÇPæ -e·¬P9 Äé „|Ëå”r7ÊÖ^sÚM‹2­•¨&‰¿´}üWÉf!›d&ïE*aïK©oIÅ v×Ö‰M°ð­XgœŠÌ€€TmÄïCÊv„œ¼=>ºÔ›åår¤«GÀ* ªÇ"øFdVÝŸé_…½!p¶TÌ;].V’=âdÖ’Ö¼¿va;éÈðïÄŠ8€aQo›Tƒ½«—Ã{ƒ¯¯×ç7·±ÓêÔ0ÚÍïÄçmG >°÷‰ý}çW*þÅÇ“¦°t;3Ã"jß›°7–üwѶÛBØü6'ÖOņÑüLÓ·³º^¶vØ"˜nt6‹}´.‘Œë°åàÿT(5ºj…Åj.½)%-ÿ3£Jz8Säsã ãu7¼¼´¦µ„s„;£ÌšŽÑ”&ôa×Þp0=¹À[Ç~ü; v0™¼ûIÌ뺫nü”³”Ãy«âÐ’qªÍ‚„O®¼’X‰µS%(1╦†È!^£jŒyP‹Ž)Ðf|ÝŽ=F—åÁ¸¬à´è üKÖðÌùØZ|½ú‚ñÑÌ‘Ý*±„´ŸÄ<µF20â0ãyêSÖ?¬KÒ®êêã ÕKôê1‹¦Ï«2>â½^ªD\à0Óß;ÑòÓa^C¾i&¯¤ÎڽۉǾ{ª´æ–5ü5ÕÕ fààÝ‘£‚ªmh2øpšJ´À° ËžÎ&ì^à5!žr€÷0£üð?OMº#Sn´V¥ðÞ€¤Ú››©Šeuú™Hì2}Æ’J2‰isÕáϵ0}U‘ÖŤ›l 4UNå –€—1tfËÛ£]Ê pÌïI³g%ÁÍ»ß4þî ¨oõ9Fì,ïn-Ö3¤îoÇÎJ3à§£¬—AZ‡×Ìù|<åæd±HÄ¿!XËÝzªlš1ئR¦%ž›Dÿozxc“•÷¬ØøZÕ‹÷‚t—N„'Îh„2{ª=$® Zç®ÃN=³ËKN”ù™Þ´QüN:y¼Š”¿$¼ü.=æûÍÈt3ìÈzDdü¸È¨iÍñ­ITóÓ¹vƆÍí”UÚ(ž5¬ƒèØ™ ([aŽ ò\ÛÃ]kÏõÜ@ë^É8jTyÚÛ¹þÉØÄ„d_ ËUS«ŠBÉi|£ÂÔ¶­v†‰T“NBmÏÓ{"…±¨%.Þ½XŒ¬P—ÀpË7\F0»|+.½vÐ$Å®ô¥a… ܊ΕÀ{Q}݃{+?ô¦"šó•lL¼•5˜goç"Øñ\×ýes_$»6î. ìȨƙÉÚtyÿU„ö„¬h%S¼ˆð<Áü5bš \í”bLË1ÿJ¥jV¡@Z2û•!ò¯m½•ÇŒ8xÕ7<Ú¡begLNeøá÷°µxŧt$šWpÑpH¹"¦+y)\ñPÉbšÓ ±]ês9ן·2½–ÜMµtx@±¿Ë”Uuµ½[,ð[*0èøü’§®€U3Ü’òÔµ;+F¤ŒÐä>úª%MÄÈ„¦»¢Iö©)q+$S ¤ýÈde¢÷žÝ\ A÷=y9Éø÷¬Üùaìûy PѶò.º¦±2jþú¬÷ÂÔ±3=ƒ»Æ/ä]‹r}éúâUw§ ®+f±ôbå—¯ÑÈÛÛ}1ȳa~JéŽFò›­’O55{,×ÉK† í%s¦Uªièà¾&¯€Ï–k¥S&DÛXxjœ«¾ f\c>¨7³Î$±Dº¡îÕO«ü6Â!ÆGÙDRRú’ˆ<8d"j çëµ§R¯¡’d]ŠÚóÍû5ä˜Èÿé˜)N~מG|o“[žø²¦Mèÿ–“\‚µÏ΃w{´´bò 2÷,µ§Ÿ¬ËV…‹d2u8X 瀿GÁsu©Ê´t «×­ï1mRÖnÚÐ^-PZm ¦ÖÒÚK|:àF8k­Îî:M¿sw%€Lr¥Ì Ê»BD ê/øö'V}ª{}–;Ìð2h¢ÿ¡%Fï’XcJçü.‡ŠÄQö¸Û¨ÿE•÷h9¶Tò£Êéð]¬,;{f²”$/RãVý!à®IotB‘D ú-îE3 Éù,w2N uü5\ÃÔ\@ÁyŸ\µß_ü[Bö>¹ZÓ${«öñÜý‰_~QªÍP oŽE3QZ+îð¨p;k3²X<² |V#ÉEËB™B˜l§gâ彯£¥Xå‰àº…þŠª¹h8¡ÛüZ~KåÓtHÆa[Qw©ÉO¨ •>ºŽ]¾ ÙzÙGQ!uÌæ• p³`Ø`·<[HŽËl:†ä Qù-¦„ÛÎZ§›:èRñ«ÎNKÆ•ûÇÒxÅ|åsÓ=þ`ífŒtªëˆ.ÀÒk~˜ÌN8Ú…,ʾ—Õ(QÁ-°;›ï|cã2MWk³Ð"ÒÛ€‹óàmºÐå¬=+¢ü5ïe!p³ÐÎtþÏFhŸ¥-^‰,ÁÞ¿4äômªLé'ëÿÎc£ÂÚ±÷MëÈø‚÷§qðÈš0jÅ?د ïÜÞiâePûÔ »ýrF¼V´?õAƒŒ/x(¢G&†@iŃ· ƒ‡9è°&Ñ?j01J{¦˜4µö‚âûÍ+öüa¨é`Q`&a?j»lÞÔ¬ ¬™H‡ÀJIâeÐÌ žÁ‰í¿ÐóÜÞÈ.™¤º†tѶÙ±âü%jNÆæü{7Z|W”Ö2¦÷/—îÛF‚vQP(1ô¨·©i诊¸cJ$^jÉ»z‡~i÷¢¿twÆšM˜91)hÇ3O§b#“öΆØi6{ Í{êê„Ì…pvkœxÀ|ଉ\îôwêƒß‰ÆØ=Â#%ë‰Åy6ë˜gcPæàÜÓaâÏJùÞÿyâF®“èEGmËé`èÊ’3KÒXñ­À{×b°KøOšZ“ÚŠ`ÛlKÆ$HðˆÝƒÉwWþ¶k©_–/³Mtq/ÑÈ£½»ŸAÛŸ&h§ ýÒ0„¼noZ§Åñ[ ÒñL+ÂÒt*"”…Ž4æ^]²q H‘ÃÃ+Ð)a`àP¡ƒN´ù4Làé–}fD˜Ž æuTÄHî±¹£1Û¿ØøÚVÙ>³îŠ1ÎU? a•ä!Å Ãv3„`7&éÕ­Ñ«µî]×fÔØªŸ ¶ãž·—/Ɉø¿mTS9eC’9dÆ®Aö¬õ¾§ÀÔ z}îæu' î ÞãD<ÎßQªUÓŽŠøÕ·úÿ Æ¢v#ø…°äñf¾•zˆ€Fåñ|î•«š]Êsi¶F}±F¦~)*^yvP,'‰·Ëµ„ýɰr—ÐÐâ‚J÷ªüLÃ’IN;ùåjQ|ƒËs_Êjݶ;K  dùuÈdÆãŒ;ÎÊ_«nŽ<-ZnE‚ŰtTé߬@ÄÖ œ=F2#ã÷û-Õ€--»K ‡½(•}ŇÊÒ§¶Î[ãÔ2YÛP^ ˜ Ü#æ«nˆ¯jFýì#ˆY`ÝÈŒþë7`=ˆ?Õ娨¸ä¶…R»1xÃbÇ &\£(qÏ÷¶%9‘'£Aƒÿ+½: Ôªï³ùÂZH!­èÔýFý×p­¢zŒ±?àí6fà5¦–ÀØ×ÿ¯9ðè×òŒø'§5ÎRâùXÐorHZ°yáÅá?³ðÃGj:º¤Tü qŠPš%1éîÆ6îX]GÿÔá$\~¿k;Óó4Ø ñ¶ìâÿGú€@B·AßhÉ.ÄëÒûÙ„q±Æƒ•/‰Ö©dÎAƒ%=J¬zWœ·ãL{†)®N¾ÁÀ2 ²s îW©‹»t@Y|çûŸpáçRÔå’7õ UΟjú(·á©Þ§‚þ²"1Ft,̪óq,~jVG9“zèi)¯D—å,a øŒ9Vp|™ÑÙ£æ)sŽÇ^ûlrÈQ1õ2Mò‘KÞNv‡^ÓAV=²Á.,©Ù[e¥9“¤L€Ž’H|?­ìWxϾ,@Sâ»P.‡…ü±cÆT‘UÛëHhh(Á¢ÖIÂ)TŽÐÎØCE´äTÍàG§s Y¶¡èš&dnØ/Ñgª:ÐBÜUÖO°·@µ‚i]d{Uy§3D”R*\ÿ6<'Süä˶ÃÇK+bo±IAÚóÐaÆ ä|ɵÔþí7S–%Þrª–V»Ý³ÆëT»NJKÞ‹B·Ø?è£>æFûˆâäÓ”àßa>«4Xš4¤†8b¥J{.d->p9ÍõRRFç`ü›ƒuÅÉ\h™h×kP\õ¶÷[&òø£àj·MŽ— KaŠäŽÛdxvâ]tfûü¯2C|g{“(à<ͯ…5²Ó„2Ã4¨Ÿm•¿7€LªVÇÓ;«v÷ë„ÀmCAÁ1{øì'‡×1q Ëv›ø#Š/{ÃDJ„ ‚’«Ž£Ìh†K‰w,Âû*y×-ç©°0yÚöL´÷D3y4Ãgß"I@kb-Hð3×ÅIM‡sÌ´ñN‚@Ðøý!Áø\œ´LͲ—n]Ov'«±¶îàðÛ¢‡Üwä1QîÕ6næ rÑ 6¼|á&°q‰/BjœD§ÄO”Ë µqÄÓ»€ÔÈf5‘¯CZ|§W7Àñ\2|€oZž+·ÛHPÂÌtLÂfuµ-ô›`–&ûü±žü†Ý*rW ì Jõ({´£~d–*¸a*’ü/À È‹rã¢d¼¢Žä.µtº®èJ˜®÷f‘5ÉÂ*Æ…«cd¾`#Í¡)ŸœïïÓ#[EŒä¹NF–tdG«ÈÖSäߘZˆiÄw<õtÞ˜š½ÿfV ï‹_À?K‘~0Pvîò©Ä+]m}È9ܙͶ$’R{™Ú&CúoŒU}v¦æè^!U‘]2E,¢Ÿ÷$ûØöc¾JÌŠª¡‘c yÓl*œuS >s$d0J_js5м]ÿݱS‘a5.7è b¡Àûü±k6ä fÍû‡ra²¡ú&ƒl­o6qZX6£q˜>ël¿÷y É`w˜ ç I•0g›mœ)E¸'‘æ<Ëašø¯Å¾º§ÐéùC†¼ztÆíÖ±+ýH¬W/ö€Ec@‰åÂ@–zžl`ÓŸ* Ž'äÄÿ¢@ø$ôæøšä×VÖˆ´‡Ù‰™?Ã#ûÿÂo2W€öžÁœ”¢vL0W ƒ†÷ÏÖû`ÎKˆg¢SNF}6טáïO¾M’ãäMu] n¡ßl„=½Í×7¡hbÛÓ.Ž7ðNù%ׇL¿¤Ú»Q@\EȤ“ Xã­ÉÆ33ߘX £nþ®ì¨bЇƒb¦ûü|·/8 D¾ªcA4»µ=IÈ“rKêöKĺJSYpšÅYéðAâr¼Q‡? ô£»—·?x™Ùo[D2¢^ý&Ù Y/x,«Ó£€'I{’¿w[¨ÂvòØ®ÀŠIù4"ùI½#UkÿŸG,}œ"“wÒsêÈ Ê)õÃWûD^ŒÏ*Îòøe€Îî‹”­aG7Mxè¦zg˜.ã÷¦5èðYe΋·(´ÎS†Ê ¥õ^W»¶‹¬`ä Ýß/òÂèêÿWNû5 ¢:Kž|Ð.kd³:hì§—f3,|•KYàÀ\ QûieU œ¾€T&¸;½cym!@mò°|ZÎáöÜ5×ÐHbÇûi©¥£°/EËœád±´g§N«ô6[qC<ñSaÅ<°­«-œQœº …4Žûg1dg§‹"eçð ÑDÞΔ5p‚ûWßÑëæ~óÈÆÓøÇø­ù ˜ÊÂâ4ç¡òç¡ûN‘3«Y'lW·ÚHq]îMŠ›¯ð:MÀÁSþ|èu²8?—Šy R ç8Úmv]× 51{““€l¼i ÆÁ' ”W¥¸mÆZ95‘£ÔèQ9¨üMeJ¬ßߘ[¸=¾bs6×–L'Yäë#†ø'åü¬AÌø?=TH Úa=l¦_-j©´ ½ùöìƺ^Ý6~ï?ÍöìF|ÅÝ•‹Í4€Jü‡ÚT=[bà©(¢‡îÊ,Z\΀þÀv ¿Ê.`rip4Ҿܱ¼‚y§ÜZ-Uvç@,³z‡zÚª4W_ ™fwdáäšÙbý4pY Ú0Qnúð†6>½‰|žzsõy€çc”îmßÁuw—a%0~¾?Ĉâ«-1Ì䧪«¢ Ôª]#[Ðñ€ðÑÄÔôìeFçüMXËÙ„m˜)’i4Öâ$ˆàˆNÑã“`ª“ÀÁWÇìû¶Jù‹íll¡Oß!œ¬w!ƒä« 1T@™É2T‘Çiúᨥ"}MUHt®ô/øõý"¶Z4ÿªÊÄAÒ¦4¬¨\\G"_#°6è@lhÃ>ªÆ)h÷²4÷W÷¬”"[þXÒÐ÷T5‘)§FÍäàB²+Ut ¨…àW:õyœÐß3ä &ç{ïå® |Ã!&S+]Ð#lFQðÔ!:‡¡íÖ^àJÂëßöwÎ_dóY©EïÏÚ.ŒüL˼€(L•H½Zú$|-I}Aº%ÿõ—€èÔàº{6{ŸY}–a¹ÜÛ Ü-˜m›AR‹þU¥M¯Hâ±BY{€õ™vƒ]fŒcA®Ž¨{Ô­gÅÈDmQ„lÁöVòÿÍMÂY«y»â¨¤…\á£ykF'š†—^¸øìfÒ¦(ÝL8ðÈÜŒ*²p< ×Mà´Ø†l ˜Í!5IÃòì?²Ý[ñ:߯Ko÷€¶iÃpÜqC­L 5çƒUWFý —þie–!«ê†ÐýüJs®Î@-fvåXâ[¬‡¶à-†ÙX÷ä¥ ¹®#Ë ±¢*ÙGP£ïjÛo}¿5 “72zÏñÕð6ž´$BÈ ï8øt\²ÐP„F_0¡Qv?M–¯Îª^p1쿼žö+Ÿ^d]õk ÕÒm²mQÂA8ýÏóä¸êœÁ|^ue40–ü‰Ž#ØV–ã-gz†ë^ô£`²f‹ŽÔ%~0e Z-ø·G{Oz²ÛŤ†/À€Òõg“øŽ“Ì[¥˜ÎY¸;Ö‘]]t—g¸t,Nh¸7‚òo?› ‹©²K}T°ÚóóŽ1—HÙ¹=¦ÓÓ¬¬ä‘lÚW úl{ÀqE•Ft’(˜£pû—?zªLëü¯2†äÛ¦°ó²oÛûä:‘Yjýe–¨žXj°Ç+Z…PÕ¢Îc¡(CÙÑÊA¡Ë´jº•ûaPÑC:>R ¢íâ“1srã¶êa a!ò|.ËцMÑy~QئþœÎg.Ô[ÜLä.ušxùFWÈ”àcµ±Bò÷G…ñÀ;à1Öž8Y¦2QùÙŠ'ùç°BŽ:SQmøþhõzµüš eçnßJÉ^¹ˆž”µ™KÔ»1§ «×†å[%ºw9\2T*-ßµ¸5{1ã0ïâÜøà߃]Ôøú§-Q¾êi|¦ÕBJˆüM(rÝhJ 5•tÉî?˜¼w…uµ¶\c<"‘mLÇïiηLôÍOæøïO°“Z¾æ!Ùng¿Õ²~bÅ¡à­SµC §†øÄ0W§ß)ß°>K,ªöDrnEDg~w¸.a‹crü/¤Pųy%°ôíý:Xÿƒ¬NöÿŸ arv˜)q8Ñ èGÜëÙMÜ\x‰8ï¢À°YlëÙÂ+Ún^ÁJ@AÔDËÅÞÔ¿Ghx5µóÉWÛIJNëÅæ5fç%£Þ¦ú:÷\¿i©ÐBŠR'&èZ½·‹‡ö×h˜@?™sñZH'ë^üÄ­NÀ÷ÿ”=$0ªqfw2kd@½äu–¢öÞï —T7\¯ ¸³e°F‘(¥Î-=$­‘rCeüh’Y§ÇÍœÅk- ÀŸã« aÁ’ðd„#lÆFH•(= jÊl£jOׯXô6f_ÜÝ·Nð4ò|o‡Ç.¶.¡¶K.€n"·åÒü$Ó—\zFi¸öMàõׂ›Xý0¾HÖF{\;d pi“>•¨Þ£>w´(ã‘1î*_ÃÄ èÕQŒÀí»oè¦ÓÍòŽ¿öQ¯vhï7RÞ~­ÖŽÏ+Ìð£vB£øe^_PŸwÚ)•Ó®îøVŠ6÷5ü5\·`±×’n›ÓMºa3ÇËòs—ÎÖ"e1r¬ú¸²k ÐÚr€=ã.ªŠˆû)!–¶>¾Á…ò\«7c›SfÉíËOšo[»zâŒ3W›åt²µÏ\žŠé,ÆÏ»díŸìça%´Ìlm4öñ×óZu!Ú™ Áù|¦`šè²Ý§3#é6A[ªàŠº‰10"…›V/“.Jº¨„Îm|”Ï$ëŠ\º­Uœ>ÉE’X¹?wå 0ÃQ`Õºšà1Ñ~()d·Çk[â‰K6"4³< ÏñO>-ûoÅÞs’«?Bç²MÛ>O®r¥¡½­üM-yŸRǧBmÏ2…)êUÖbx×c{$¶K"uB ô*Ë4œgI‡!øùÐÞ€òHžõ\‹üZ×í¥½ÿΆð:`¥–Ä®¤êåÙ|5÷f(bšx(Xñ}nÞ;ÉÞ Ã³ÞªºtJmˆž>yb •ámfØÂ\°Aÿ6‚.Í¡Dç»õæY &#Íu«Œ±­½)ËT;ºB÷çýMiÏì+2¥ç÷ýYï¥%‰Âîw*‹Ä^w<±Š3öÃ6PÍuŸ€B êL4IŽ»vÏ3ì'à^\üær+ùxÌ©VúQÁõ»qÿT34P<¨ºS´äNwüð–ü|ªIþäÀèkþÇ5,þ¸”9ïm.ZWçÅR…qHÍ^t‘–KÝ–åRiK²&~¹êÈ®üßÓ9žÿøî€˜•iKºž¥UÒîíá÷ T,ßÿµ«ƒ$æ»ò7Cl8 rxÓ™±´Çƒ<¶;äì ƒ€}5 ï¹I|™å9RíØ®.›B€œ¬„ÒÉz(sNü‚iÇ;fe½&ì`4‘•ÖÞ“º's¼ÿ¡T-êŸV:FÉÆ È/`:û8WÙ[æïõƒbùÞ¿:,Åð{ÿy K~k~&ÙL— ]h"¸Çt3 tÀ§cè¥r‚c#І ñÚ‚t“]í‰óI(O‘†ùmÁâ6ü\!Õu–F¶Fr Qõ*uÌhÒ’‹Gšèâge{ýl¼ûv¹8¨Œ¡T%@Âíg¥®8M=]vÿÍ#M˜-ª@s¦'0Ýhÿî¶La¶ÉH+@gÃíØóà­mnuÔqõV„«×ÌY,}§· ©Wuk³¿æv"ÛÇU 3z]_jª÷5h%ïPv›¤Rh ˜’›m2¥êC൞’ŸSÑ'£xÏ7jÛ%å• 9€y©œëM8»–yAiü6i±Ä@ƒaÆQ×õÐÓP3>² ç//uwG–¼YW1LZ¶®ßQ½ežxØŽ™Qe%®CŽŽO@‘ëqí‚‚÷p„9~0m{Gýï”;b­Óy“8\HL¦O9§7égÆ"BX7 cš«~ÎtÊÔ¸˜Êƒ÷Ö“2M8øYN(ˆ‘î ¼¸N?ÖGÊmU9Om˜&kÜm·élwÁâz }Õ$FØ Œ¸ ‡ À´¥«MyÔ"¶a“»©I\Í_‘¢£ͬQ¹¤TfUÖÁžqÂdÿÒQœyˆ“´Îü5-;5Ä]h_Xg»u‘…žBx8ì²N÷þ¼P‚äï Æ¨ÅA"Œd ËÈs):©@)ÝrS£ ¨š@&…hÒùè– Î ƒÍGXà;©D n~—1“µ~õ{Äò²D²UÊÿá¨>ª—sΞ€unhÃæ€Â t‘h4Ç9R¶‘Ô¬{ø¼ö +Õ•Êdî´èÖÊ–ÆÙAŠ9?—Y“¡Q@ÑÅbÜ9Ç#eÄ¢G”=A›=ð]>Wa’}›ÉØf=ضÜ® nêØ¥ í(¢uKr-ÖLÕLü5l€aµØ!9@Å*ºÉ(õÅø–ú’–@ç´t=ey_Ù|’‡* ´ú=ë—ï¯'óz˜Å쥫M5lâ•b_r©T€’-ž¤È÷˜V€³nM«!ꂬÒXÝ;xáÉiWbƒõ^ò¬Ž,,…|YÅszµ «Lèò+Ù/¾vT+Ø*ýQ24÷å˜gtsž:ñÍfô˜óIÊÒ_¹>žì›h)˜¶f,—! ›á/`ÿ½e›½ÆÀ à|¶uÆâãIŽO½Ðµ°š£P“¯ó¤>Â3rBÆ~hlàâ‰dMýÞOggS€1ýÄ nDu=10Hãè÷ÿÙííûþþõÿØÿ/ëïèëìòòðéìéèÿØãöÿûùÿÿÛíÿÿÿ ÿÿÿÜüõÿÿÿ ÿ ÿ‡ÿ2ÿÿ ÿüLÏÃÿ=ùÚšS’AêjjüF;“ÿÀ:ý\ËÊ$žѧ¯˜¬j€ÑÜ¢ò.™¦a÷Œc¼Þê–<šÑB+æóúΕÁË`Ùýäµ*læT ™ÆP9œàü¥¤ŠëCÑI `ÿÃ5.¶>þpˆLl´_^“ä®Ç]]r¶LôÖØpø\f>¨¸ò}Lžð5 }ú¥ÛÐÚüzèH4É‹œ_wý@:)\œ’Q]îÏØa‚¹ëÔ~Áº´ôŸnÙ°±/žz[MÌ臻ãÙëøO£–J&¬šyñ­DŽ÷ÝÖØü6y+_?KñÃvä0Î<ª·üÙË€xƒ4-ÃüK³T?Hšùeß~Ò©„Ôá³=…¶$%Ü»ËÙóõ7å©B+>2f4µ «Ÿ#[jŽJ*HDn” Ì0\ÎÂCÅ•oÛ,}̱հö¡.d«²I½Ž¨¿f¯ô ‘ñŠÅ ¬Ë«WÄÈÁ@ ¾–+`dø[)ÂøbÎÖ÷he¼ô7 °6¥ëÈ\5Qêw¦ûñþíˆ9ýÂ…sü¦Übk®nv™·ÿpöj•]pŒw”WQ'x+ûój+;nŒÎ~ÞdÄëÄÑʲ[ü5²=™­<®v@žnVÕ‡‹²”Æü³•ß&oè(ÛÁ˜Á?z¬ýVËéjÜóKä èËT–¬ÎIeò¦TrJÕõ–HªïóYÆ’/Hæå¿lô{ízƽ°\Ër>òÌîjϤôúJO*rD|¿íy^¼e0z‚ _*ÛslkÎ$P.5J„ïôˆobã>2ß_ƒEËoœÁ Ÿë,FO7øXb2{Aû¹ewÛµ1oD“8B¹tÎOʼnï–äëÀ¿[~7WŒÅÚ• âʱ°1u´þí2*)ßÂî4zøî¤Û®N˜ìŽ:=Oc9Ë;¶…Ï"Î h|þ1æKö纷&°óÖ Ø°f¿*T™¶as¯¼”—½´Àx }!U5ù»^èYáŸ@›V_˜Œ}º‹´[ÅåqxÑBR*;1WÜqw•¹Ÿ.b¨ò©ÛÛ¹e›<¨mSp@/j ×óØ]tA·8Ηùâ@¾ "Œš 0j¿ ·OÈ)ào™åG6¶!†n€Š¿Có–}öä«=i`x»J“VM[ºá!Æ®U:>Ûwá?Ü¢9C9¡ qiV‡È„{q—,ûø›eŽ“$®ÂíÏ÷™-Usós|áê\"à ól¬ÃĵPºò0™Å§—iËc¸ëÛ#Ó¨Ò\íÖîÕ{ÞÎoƒƒ‡ßÓ§ÔnŠqõ‡V„ZRù—ÒÕYÒs]ª’T!E™dn¯Ü5béQTO5T€ˆ@™êÌdÈ’^*⮵>ñÕÂ|lèüLЫßãº2æ÷Z ô^ 7†kЬ{(ô´ç6—l>üœ!½ýÿ½bÍÙ%§Å¢Zý¶ä³±!/¬8™ÃiØ6"t( zò#n^æ¥B¶ÿá\‹ÖbPžæTõ™iMö‡q¡LBSNܦ–w½Óp×oú–4ʳ ¤¨ÌõVƒÈÏe»·0{Ü>Uƒ’~Ékì~Ȥ ¾{$L ÄuØÝ§ =XˆjæÂ­*Ë)ŸXÛ•…yôòB!H}”- g±c©2ÿõœú„1 C¸Øî°®èöß.,šÅâOyÛ³œ9~e®ï÷HFÞºŸÆ; ü5l'ïÛŽTÇ·©4¬G—×hó¥yù>#ì£ …MûKÿhž¡¢ÀfÂ7KFf>zÿÁI“…Ö2ß”ú‰g?·BѨ¸¯)ø:šiŽþ¬äqÒ«hüÞ¡ °O˜¯ïÞü¨ ™%Ú èµ!"ú„aâwaŸR³Ùjæ²ÂcW‰Ý¿p¤œfù4õ»±Ýz%4ÇMàRе_Úy¦ ¹¥¦%²¤Rg=–rŠ«ÕP¡–yþCŒÏúP·…r½¹¸t›Ë„ígMı JxL#¦úÔß]ÀM ¦™ô˜ôD7„acloü5m1.µ7M\¬{lBÌ¿³Yì{8HÅm`Etºœ¤¿¤K‡#9Ò¯3¯½ò ~ãuq9}q¿Îý!| Z)äA+ƒ¬¤’BåŸt=mºó¡‘T@žtkÛ½Öº)Ài•/YgE ?`úΆ|¡ŽN™èu+ŒP Â-Çp‰eTÛq ÉŒcÁÁ,âÔűWwb@1³Z#‹{Ï€‡ Q¶ ⢻ú‡›mÚÌŠþI‚í~Õ‡E±ÍËY Q½ª„àLþo‡–¥Ê˜(c3S——òBœù—_mÖiéP0]µˆ –P½Ê·ó‘ ²æ®zyT÷èAâ&o'ü5ì4jØÅ{á ºÇ{é”ý17Þ,Ö}\P§ÝP¦–YÇ®ÜK_{KüWŒJš¶¯Ð<@kbœÿÄy=zr";—„·dÁÒ¿c„0=ÅlR²é*Ë}dq×ÓEŒÆ!÷o”9JAi"ôr„lØ %Øp’% NÀŒGCÒ!ö¨ÎœM c¤ Jj»R̳l8ÒÒ+^ÛSI\eÁ™ÇWòÝXe39âÜLÞÆhf.‡eÕqâÄ‘zÄnHÚr}½¹;Ô¡jMý9ç}¦c¶½†!)~‘TôÉ8Þ&3ŸMÄz¼4ŠIF m1Y26j”:ã×ü5²'½,°™°5•k†©2€ÄsМ^uö}~²‹ÎϵY«ëг…qø%äeã/@2àŽÊ¹ºÜÀ®ë³Ö„çY¿çeòytt±Ý}Q¥AœÓI-žæG¨¡ÀêÕ”Í~•;b~(/9HÖ5+#çI,ú-€@¿…ÔÒàªd+*ôŒ¤’`v¦˜¬4Øv½!CZ ¢Æ ˜¬œê —ªn”,°èaAÒ„¥ÿúpWŠéŠ ÝzZJÉY5ÐÇñ"ЍTk¥· gÆÁxð×ýÎÆ'¬µ}—gî²Ä² *wa’Þ`&{á5@›n^9„€'J ÊŠªiWónUü5> Y`‡ª—?Ì8>ß-—ÀÄù¶PE´ÎcH‡âÑ ·×_b+…ZGœ¦$©EÚ°M!Ô›Îg6`¥ùOÊÞäчP]‚Dy2}ÇL+L[ŸI§×ÙLnn|¸ðV\"·Œ‡,ýñ¨’®>‡ŠQZd x®„Æ^ °Ö‡·šˆqJÅl-7!·äZ>"˜†xŠC¸—ѱ1ËÖŒÚÉîvíßý2}ÿR‹3&Æë™”¦íý\Ä}#ÔJ3M$¤QqoÊ ø rö¡òªÕüÀK˜·ýEÝ4Ä•Oå¯k0/R{×ã±5~¦îºÛåd⹋t>áMt‡pNº=`};Û{ì+;Òyã@¾‚·ƒð²J HCYE¿L 06Xdl)·|裊ìJºvÉ"óq|aNO£›v£ÿ z Ü¥¦ýü|·(Å<ÈÚFPò@÷˜ßK²C+e9·žX‡’ÿÖ}ãÜ«èi7pÍÆ·¦rÛÓ 5Ž8à³€â¡â?eŠ,lƥʣ;䚦d*úL÷ÿ°B¦Lòìÿ{Qìuw|Â8;¥Pì;Ù7ŸÀak§V¢ë‚)ê\{#SïmÃÎ#Ötu'ÍÕÊVD ¯õ²ÙP˜{ïtñ%@¹`º+tEÜ&hÌÓ ï8çü.pФ¤þBÃûç Pæ³arló¾XWqŒç ™Ã¾V>±Ùa×ãŠX$˜%Î`ìG.ûÚ‘ q–NI¤‡Ä»N]kˆ²Ìb%ÉÅb |ÿ_úgîÑT^G¥Ìä‹%J•.Î6Y=òS¡F(aÚ^¡¹½´Ã·íÁ&•üJAà Ûo“”שW€‡zCÒnéééà'Ä&ñú!Ù]ö݇·FÞ]~vóèÑÖ•ãx)‹éif„ N@Å™W¼?"x²“ î¦cÑf§æeUÞh’°­Ã@Wéµ,úá*‰¿U3ZhJËõr¤ÊFgwþ¨ª¨ ÂYúúÜȦL±ð¢Í[ åá/Ã*m#³¹.è C&þw±¯®ìRÅ5"Ò3=W[&Ź—¨¹—x‚Jœt‡  û6%ô²)×=I$Cí••ÖÙ™ö'è³ØQbY8ùüNMök´}¯7!JtÃn=ýPOÄ°Šº RZ¥ Ðz“r,ôB±ÃËí—ûU%WÒ 1åSïu*€Nñ[z7ÄæÀC’š²¤XY?Ó|:abºÞ™É)›ÿJÔ›µÖõ½†3‹Õd.Ÿ€—ؘ;‰a±öâv„¯H¼Ž%<îìU êk‡ƒcOL0,‘ñBÓñˆª½$þâÛR•ç:ùì«¥¸ñö˜­?~MŸN]\Ò5ôó?ѸÃÑ}=”¹¨uBƒžâµ[Òë—>1þlÅ?1»k"þÍõa¼>}p•``ý¤GüMTHð:‡ÀóoÔN ûÎ|6sWˆ¦á Õƒ#Ó {¡š:áýâP9äè9ƒ2Ä*{,׈z%pҞփ箃“ Ï€D¸³‹ *ÙëþÕù©WÚÅŒ.s/J_JßxËü6ya¦Ž‰|›þÏÛìO~L¸²» S¨¬å_ t;¡[£¥*Vcxd =ÁuHTŽNJú¾&*Ûp¦_·Ô# Æó}£™ûÞo:yºM늎‚ñå’²¶„\eE¯XıΓq¥Ô<a™6 Å»F&d«Ü¡Î°§dn§\FîïPwqev/:›·Ê€®ìÅÙud '«i†3¤‡ª‡Þ´N k;xÝW+€cϪž²ÛEŸXí´ÁóvE£¤^ØSGW‚W­ÍN¬)e°éÒ,•ƒ°0K+¬ Äo†æÂD >ÁüÄ…ˆzdŒÇ5èêF®ÁÑ *èЀ#íñ&ÉS}öÞY—’&ӲŠԀç®@³o)œ¼ù‰”P|4®?MKˆ ±Ú4ø=› À0íÒD×FkH#µÎk~9æ+ÅÊs6Ÿ2ñôth¶øÚo7g>Q¢ØÃZ–Çó%Éwï fJ|ØŸþ©Ètñµ›¬Ž‡äcbXˆºòãcX5‹ßû–Ë ƒ“!n‹ €Lä®/~XÚáòJ–˜žƒ·3 ¦n1Öä±r€ü>7Ô) øP¡Šâ?6¶y`zºíWðÏTõ¹vüM4ÝO!¸‹hUÚ\Ž\!¼¨ ÓÎfqV›¨–¢s–?&÷ñ¨9¡)i'Ãvöí¿Þ»9¬&÷&8–â/±­VM*@æJ¢ÍÜ=3F«ã¡0ÙÁ¹Î¬©s±$Èñ8[Ül…êΛǴaP¥Â¡¯yº&Q±éC•*Þ·n<ŸRýpêŸî7Àßxöbòëºc ‰°¨?ÁwšîdÐ,žrè‹¡ÜiÞ…vŸÌA`¯Ñöa;A/l$u1çX^`å\#4 l8py;Û‰6.Q•T¾ÑLÔ¿ýØo³ôgdÑÈ«‚Í%!eLüNS}s:/µ:À¤l\Ê똞ƭUzQ¨8¤cÝEŒõn‡-æKþ‡0 Å'¸ù&SØUœ´ä…ò=ôUˆsgҴ즵81Az5]>±p;Ô’ƒ­O«œ€ëD˜MIÙÎáÁ%Àg eûªË©çŽÈíjë—W¤Óæ‘`… Šÿå휇jEð™»\‡—ëO ª¤8;÷…?¨ÏñJ´%™ýljãx6Â26{ÈyÂg‚‘ä ÊÈUËû¥n `±ÄœÃ|öŒ³ÄW7<÷a&Ò—“Ê gÕúÍœvjЭØÔ`¯Êü6Q \k[èíÐB®4—rÃÑTï¡ò‹mûëÛè-W[ÄÒUKÕ-¤Íï²±„„MþÈND0¯®àxÿZð<±.Íplnº[¿Ñþ+QÄ ² %?yýÁhÎ|K•ø¹¥­›HCGùªA4=ô¸¼ LJk“wó¯tÿ |@m‡CU©Ùœ³«eƒ*âLÉD‹¯‹YºÜåÊïšs›¨Üêxüiõ…JúÉ.f°ôW#ñaïàðåŠ:OˆÜÒWW‘NÈ!ùÍÜï<&±#WEò#ÐöþÏïÀ&ÜhóW¦°¾üÆlÖ±”˜Ê)—uãg@áÁÒ˜piñcÁöÄ¿VпæGî=ƒ}X˜üj@€$ º³…﫬ÏV»˜‹DôŽqh*ßþ_ŽëešU @‡S·î!tÁ$#°’5p}\ò€½lÚ“X˘¿ÀÜòôÛp[9ÒÇ A6¹èŠßILOƒTÓºrãPâãËJL0Nw'cà†„ÄС@tžØp ›ôx ÂÏ{œ-ÂØì%ÓnnA›÷îeÐP}øzì›!9]SþDå‘J!ÃS?€È={°½óûga›%‰½ÈÏgÍ sÖ)BTe&®—ؾ^ø¦å†jSí!‰ÑÎۇ허‰jøÞƳç+ÅÄlGÃ@Ó!£oÄ'N÷¸±ª@‘üüa U ;Ñà4¹’ –À°é°Lñ1ûÉ«sŽWgâÙG üÁñÛSê:2à±2FPÏh”76ƽwÔ™Œß{C3¬6e]òI+ö‹†<·Peúi‰ KÏ$à í@øe‹/©ëSA¯\üM2HDá¬wpþ°–DÎÛlCºC…"Ýœã>øí§ØÛʨUN>Ê  S÷Xe,ññDœ6¼÷N.ÕJª,Ù*KÆ4YFë9@øD4qÈÝ)[â4.å/é‰Ãúåß»FÔ#Éä•çvmƒbë¨t½LMèÓæ¥üÐñ>‘ü벯ÑëYú[ÎâFã ¸ŒøÒTµq‚«¬#+Š˜Éb°4Ùåá‘C[ Þ§÷y˜¾¤¢eCóíêL~ÈÙúÃRÉa±*W' i h®òú Mp—FHRmÜáü55gÖÖÀ?—ÈÖ㱜9bùÚÕ§„a_@RÉû¾6à¤ãsNúý©5/¼Ö|ÞöŠâJxƒQ¯6ÁúºPí)K[‘š\8OMƒ‹%b4yU¥ïheö´Òè€*…µLöêø5‡*£ ŠÙð5ðÛ‡“Eæ){kÝá-Nˆ½ßÈ"­W˜€BÙÒ¿’¾ävdNTÀ£XHn@³êQ^’—¢xÞ• Gœ—Z'qF˜d$S½A ènymjtîˆ_Љ[·8A|֣УHÂå›k: ‡·!&dÕ…r«hArÀ•û>«Þ|R‘1µÑŽd©ô‹eÀ0åGýêÈøL¦²':9*ô„üXfžê¼Nû±r–‰eE§Ý;ò^…ãäÅ|¡íQ×O¼9Ç õ$k¢ÎߺJ=ü£Þ!ƒ£¿¢½¡¼Â/×ðÕ¾RüËù œzÚÂÚ¾RÜ“â§uXéi©—³„Ç»_ TÚþª7×Ët²9'Ü»IÉÆ*ïQƒzÎІˆ—Ê‘¥Ã×Ü·Z;zÈ‹Êí‹ÅÍyݲyó; ŽÂ¯• ¬ŽQ{´À#"ANçÎ~Ë« Á1ÉÅ!/k¡d’]2¹=kTÝÚʘY`z*o(ºO‰HaI$È{üM2 ­|Ê ÄkèqG$ÿªufߊí•jy¾è:<`•ÉÚ³f€©[zö¨lÊBOr¿¤ç)n1Ïü=dÜMáç¡ê«¿·Œö圫ù¨Gên\"ø1µê‹ YÏïÉtpŽÊ%fþ‰KÊtKh)‘£Z},m'-äêË/P { kš+hüì´¯°«Oö ¶¾6›7 Æ¬Ž›ÇÝÁùñ¬‡%f3]žÝ:òÕÏ^«jrí¯Aæ)v‚ehN_O_8L¾ù‹¬öeaü@p{Úb²a4š»Wø½ys¡é\VD™„(G÷Óù«±4óٚüN‚ÂïXèŽ XÂü9ZÜ*Ìg­EAÌZµõŸW£*½|ªk/ãé•ò° õðP aþ1yèØ}((v×'óJ=}‡¨q¥™¿½¬ûû0š^öQS»ö€Tb€ÍvTyw§ã§{¯kc‚pVAŸ®“WÔ¯åèû;éKeúíZçd·±7ŽZdEOö0‹Ur×ˀуVIßø?ª|ÁyÆh ¥ Öžtœˆ7ì*Õ´ÛÖ}†:ÐWˆÊeT7ƒÝ•ÏêÅ»]±Ù#œlMÅïö1ñ-]¥×Š(Þ‘ù”Åʼô§ R8÷Ïuåk0yŽùY©8ü6R@iÃÓÁÊâ(ú8³qLü+ªà¦ähD 0ßGyÕvÙ7^×YtJç¯95åGÉ¢Nf¹“VÉÄw²´òX#¨—++Ô+Œbôk>ÏVtº»Iéx”ne±¤ÔƒˆªwF*/Tö@Zçæ.`•® QЯ•o«êSxíþÞ§Uðcƒ¾øíiŸ}Þi»N(‰NWH¾o# Ÿ K3ë J'ŒwsÓ|l›µŠð(&=³Ÿ¨vëÒh4X¬ <*ªœšqT¿ÀŸŽŸË)¶HYf ‘éC¼=|½ÜÚ:¿”Iñ¬PUÑ`!O’»Þ ¯ŠH¦ˆÉŽ“:p)-—‰|‰Puœ¸-»ä㬠‘Eútô°ú‚žÈT¶Ü—j bâ®{q·¯k-óP8GHm•\`é~.Åôƒ[˜=u ¬LÊþ¹‹©ð©"xrå“>k3ö¿]; ;ƒG±Zl¦Ü-ò¯zG¥˜Ü†i$X¯Fµ7h$«Ý)ñ ]ÍM -=½U °d]· L´±ÛàîqŠÆG&²Ö^VˆòYÉW0eÔ; 3®œtQ!? DpFg-<îÑ.µ·ÇŸú$”[o‚6Ð8©?Aï¦U±”gÃíªFÒÝ Iµua¨(¯²0„¤+Gv6t¯A$Q‡ùx*|l^ci ƒîªÁ>EÁ“ƒ[ÞY÷Q6Da`,K¦ivŒ›‚e&ýûlL×5t±Æ"ÙˆÑ@K𽜓ÚåBÆm¨8o’Òô)~žtyÒ¯$Í[;þÕh§nT€!õö¹Þr¯üÌDˆqa ½»ŠØ {6AÝŽ°12+\•É•1üX$,›œ÷KÜ™3Ø6¹š @žCðe7“h:ÛJ°oº @ÏT6Ô‡’ R.•iî®wÔ­¨6^µ¢f*HoôÜqšË]kÖ`*Ô˜ßÔÙ LÕšæ»6ÿT$ÁrZ¸á’(@,ÍmJGʉä J÷ÛØšÖz¶ö1äÆR]A‚`t¨ÎÞˆŸ;Ó=¶RèUÅJ ßÕyØ8ÔpÔg¯}Î<õzü5QTÃ!çS_$»¯œƒ1£&¼ôÎk“¿‰LëK_àéå5Î:Í=KØÿc5£×I=gìX$9ć“ÄŽpñ[ЄLó”¸ùökvßSãtØ\*+ëxv•ÚÓpn OÙº³#qPô8òÊB}ÌmÁ’+òK"ו¨#æ: G?"?>„ZH÷T’óÖ¾»… ÕÒcšSÈjmĬ— ÃõÏì¥XÁ¾à$ësãs"ÑÄHz°Æ;]ò½ÕƒêuæI\-ÛYž€Ë-™¹Ú]^Ææ¶ Æ7ï5I¤ òML5|ìÒžÔ{¬Øo5N˦wãÉfœªF¢Ñ–žioüX·:O‡sw,Ɔ®Gð‡¦á¶U¼ikè–m°ÔóÁU¤wÓ¢,ª|N÷×H>OLÍ|úZù#¼w1¦ Ü1¤keŸqÊ.W2bÓ¿¿ƒqŒ7”œ@®¨m¥^|sk<¡Æ(k¥ãä· ¼)“é¡Û6÷"&j®‚ïÂF•µ~uª š8BôºKõkb¢Þ¨ïâ ˽ºX!Zy‘Åøj:ÀS rrùDð£K×øFÕ‘ýÁEÂ2ÆîÞfó»猷áã2‰ qeî'“œÃ²Df“Ç!ü0"&‚ãÃw.FB"#Q2+êq÷¯¢ÛeX!‡¸¥ìÂŒ>mmž5`¥k}ÔÝ3¨}}#;®¬½ô%ö\cÛv"Š':X ¶^V°Môœœn' )î10Ï·ôdç:ÞM&dxˆŽô.—ºô Gð¯a¿êšV4tGs¥6¼àSz+(b#ð†iCzŒ¥H”éžk4³(µñ±Ã¤(¨ÅaÁU@Ù]a.ÍsÌdž‡g¸w¿ð[pL[øßÂþ¨Bj„CŠ þéƒ_¶×‘M€|aÍ.æ!ï· Ymà芫îÎ×HÔ3ñ !=ì¿çræ{È5O¦Éãa¿!²r¢ÿ¬ÔÎÃ)¾’›þü5l'·Jž|$pÓäÝ-2Eø»o×W•-³î®‰´ƒ¼-X%½Ò£{ ÿÍÇVìY$ÑÊÝÆ#ðydýOC±@vwîŠ@˜ Ö:gkl¾ý²²±Q´gO¡@.iÔôÖ­-ƒ+üó¸náëíâŽzÚ¿b)e#PøVR,½mˆ4Þžšª¨/Æmã´¤’ΚV?–Uøæ´}ëkÝN¥yå‚y"H‡c¯kΚè–.úÓužq<ø%Pbò©x‚fô¸µìá$—ÄÔ M:öÙNz:ë¾47U‡Àß#¶ G¾$º5‹¦ˆº°>n*•A'Y„%gñ}ö™Õ¥fçP•ô)Ú&÷×[*Œã#~Õ:^Ç#›¼I×5ü/SA^÷r·dOÐŒ*4üXZˆ®fqvQ×+}ßÂé H‹qfæ}ÑPi謱ú™è5<9¿¥á1ïíL·†»ÞÖ•Çß cî'l Î~{g•-]e,¬öãÝ™[I’å¨ä!+AÇnR90*Ì!‘Kƒ?Ê»E¼¡¼ýI¹oݘPZõ>N«âa´îyœ•êŽînUAPB†<ï°œDÔӺݎd)=fÎ1Uâßû%¢ÃG %p.âàÓ9ðr·œ1¯ª,ÇW,%ˆ¯4>¦ 'jùºZ-5¢4ªY)na ¦‡ó>^ʆŠ„)cØÔ!Ö„ÿü6‹<^vX&Ó†}µw©Ãü½fØ{y¦ºíĤ?cì4]ƒo¼…nkù;Ä ß(}Vª9ʉS IøŸÿß"‘7éYPòß G¢£Ÿ#ßO­æ %G©e Ä|AŸZ'¾˜‘ß'„í¬¿DQtXf›»IwY4êCìO-A#$¶Þ䉴/M-9j·¸&q޳·‘½ÖÆ3íXÕpÍ9îoÎyg„ÛQ‡ìvg†u“ÍGùX¾Z’õI~vRõõËõê<՘⩚– og†È ý=%Mêû·­;HÞÝ?O.O5®ï[\¼Î–ÂO,&»v‡DÛ¥|rb+˜×§t@´¯ûªb¾ÿc¨Äd*Q£<}kM÷Öð'µ½ÁÞŠ»*… ·é³;§Ö"Ÿ—2“Ð6UÔ’d‘?õùÊ”9àòŸ©¨ãÖÓ7þ{\,^ô½€ØßÝ“ü®¾V´[Q‰ \<—í¤\ˆi}Aà-kp§À’fnMÄatÎ!D®9ë‘m ŠÀma“0?ýu%½¬›?Û[@RSŠ*¨xÐè%™û¾Ià^C¢_Á¯æöJKk½^Щ9iË‹îÖˆp$ïeè‹tr˜yàEYÕwzq!W1|ŒK~¢ê–ðX‹S8ëÝãraÎoâWnb+¼ˆëض6YL»%·¡ßþúŽBLC ø~Ë¤Ø ×ö® éÁ¤ˆ‡ÿå£,â:"ëC;ôœ~“ü±ó™ü“ÂWdéÓ·‰ëÓ5ê­ÖÒ «©¶ŠiKTì2ΔšBpPæí÷ØMŸ7eãk?S8¬‹ÿwãÀ–IDå%)Ì« ÖÝì^쇸ÙLIQµŽ•?Àéã3~a‘^&¿ÂBå¦k;âT~hqG¿óN°ƒ· <ú¨ëaº4û\@êç§³ô¿¡ÑXãQiUtIèT¯ÉoBf+Ì#k2sõ¿æ T§½¦“¾ï+g|H^q±>éÚh-pÂ=‰x:È)Þ’Ý/›9c_ÏÓ>.ñj–ÒI #ÿ»)ôÍV­l•ÁóÏžP•__ÔLÞ/|eddŽä½|º²”ü±G;s;f~ž½œEÃRÏj}Õº±FSç5îx0dÕ6–Áùèô“'übÉl×Ýú37³mvRËmÿ¤*áéÑæîåHIH°b"wȘ}—ŠiÞ‘‘ÿq@¼Ó©ò‹|¦g²‰ÂõZû–zá&ý¬W×äá¨h±¸H]Þæ ¦tªUeRÝGœ‹êéd¾ ?l3› >!-›Ê¾(^år«§^k—ýÕ‡®»Æ@Í*®(»Ì5"gU4›û„Å£# ²í¾÷I°Çú–½N߆yT»=WdãšúEì?Ü^e˜!™akzhõë íø¤ö¶lÔ,‚0ýEyÕN$•ü|©°&_*¬åáG©ÙïBpé)v‹Ý…ƒñš)X°QRj’uÜ/ƒÎMe0Aª#5…ÕícN<¤®ˆÀÅò»œ®u³¸ïDCt¾1|‡"k.D€á–Sdç}x¯ÕE($ÄõÅ”ßñ•φÅ&®oø%æ×¥à¶Gõ`wT`Â}ûü Ûyµ"@°ðßÔ‘JžÍPGB~×!¾Œ½N$úÀʲ`CwHþÖ-f7€ÚûóO„¼³꘮Jþ(ñH™›P‘¬­9oiÛJöSNôn[û”F‰Þ¨•ý~dlµ UY`YS>xT0QEZñnx`!´„Û”S€Öe¼¤IOµ%ãs—IÜc澿eWç]etîR>A#ožw’üÌ{#nêÖYSöQô_ÎÕ;vN+µ63ºíS7‹ë-{ß™£e©¾kÕ÷s\ ‰ÉÉ›ÏêdÙ¥?ÕÐ¥ÕÔû¶ÁàÀ§Ôrk9†¢’¹ ôÌ'ÿLö_×Þ¡a„åÓ„»6õá¥N÷\dÛ¨ûp1°ð6·Úâ’û#ž€ üqt~újˆæ›Ù!K5`3î7Í/¦m?X?¬©üNL¨Ž(ûuYÆöo“.ý§«¾?,óŸ7NÍk\¿nPâî4çį~ p5ò¢B)°M(©¤ö‹t1×@­pàåþ¤çÁ´îÒe¢×ïý¡>«ŽI-µz…ei‡'ŸeýÆ1·i¥2“qÙ‹ ='oÿW Pè(Åf?-OJû`ž¼øÂÛ‰æö£fV™¾ä²Zl>Ù ¯g|õõùçž‚Æåjô[H>bDÿkÙÀ’SŸšTRò[¼n tD‚?Þ¬ˆx.2¥›bµ{EyžCñ^Œóõx‡jКÚeõ(bºP\nGã(]#·¨¿Ìý`L1æd—•ÃüM2,ûc1­àþ½ú2(jQ±ÄÅJÏ q~>…óѬÌõUø#µ‡9ˆÉB¸=},S?å\Ôúþr_UëEÚÄ$Q,ØëÈ]¹Çõˆ•9±:ÒPØizñy1âháñE4±C!ŠMÜœýhÅ)„Ñ{Hø÷Øg>Þ$¤g÷Ns$ÚLàr´“SžÂ¹¢ë9H¶€øºÞSÉИãX ÿþÊ9yë$æñ­í`)'®d”à÷íwc r3ch°¡×é<­ö•Yd&³€ZºÞü5maùvŸ-ù¶­úMàÖš1Eº,ã'eSö¬±º›×rŒktÒþÂ@T׆õïçt:Hó]Oo[€Â…™D4€µkŠ(¿&Ñis-MúÙÝ”5{ÿ;°I¨•'\©PpClH•ûYƒêK•Yö·Çd­ òÐDU˜!ÊD_¬0…2T뀆à ÔÀ“/Â&ëP=FŽu“ÐÝT'¯áϪ(†Ø@æœäól´'Ào³‡Ð?.Ë›†óÊïL´B «£¹®D8Y —‚Õ? sä}A~NöF»ë'h5lçázn(´ç%ØE–‰Ûwwb—Ìy.%žBY»½ØÔÃpxü:;Û j8fj¹8W±c;ŸhlÕh@<•ÓRDøCø®iÃf©?‚Aj“XE1Rl“|<↸' 6]û×o+þâïò*†®­•¢„¯Üj* Oü,@sÙ˜ïBÍ©X •¾`$·[± „¤Ç׿`?–• Ž£¼iáÖ/`¦°Àü|´ÎqèÍ™” í­&ˆ ¿Ð–ɕˎ8ÔY%ß©äÛ&¦I××Ä‚š FÑ)» ‡É|¦åäQ/ů]ԅŨœ›IA“oük˜áËüT<¦“Óh}¡ïœ¼0jô0£ï!@ÝRi.!© ñÙøikœÜ'¢JÇ͉§t¦3ƒ´»Ð›Nå¡{10¦Æãç"ýHù+mðäªif{ó¡VÖÞ´¹£ïŸ–f‡d¿Àÿ)gþZ}1úu‚'y–S«Gü¢ƒí/Éì¥Ç $5­”L"»ýP¨g³Öèäye7¿ø7Ç:%Ä‹]ÚÉÈF_â¦ßX· -OºÜlåÌÑäyÍ‘ãß ×ÏÇ*^Ëë© ©ìäõbÒ‘°{”(X¯i¥+öcÓ#¸¯ú2+Ù2ßy‰¹Ún±EâëœñueJÍã$¼¹£µj^‰ÔzÑ»ƒÕNRç†bï…x=o†9mòOK“¯gÛ§Üý³åº "· 8`ˆ,t&Iµk„Ê-á« g.jyé–3KœkŽÜœ†èŒ%o.pc(€[þE»K^ >/EбŸ h¦øÐ5÷”ÞCuüb€ð©Xë¤åÊÞhƒüXpúpÁ>él&iZ|±h~Û›ç q…­É>Æøÿƨ´$ËNàþR2b‰e¶~€é¶äf-R?W8Ë1؇;ä..hØ\Zyª†¬ÃçvËÓûÛâí¥›r ½?H³¿ùcî¾§€lóª¾ù¸“¬’ T5øð^ãH´yÎp´Ü²ôƧñK§_ü,(…å|¸?X"º(YÛ;&~•l:ćžGL0z"ïT(޳<Üÿ-ˆRƒÅÙãð”MY¦cdÆÈ´L2_üâ ]&•úìï hÃ3†±¾Œx5Cb¡üLÖV{"¤ÕÌdžÓ-ªÄ~‚´ªiäy¾¤C˜rñlÀUÿíY¼Œ~Æ/ü¿3¯Áx|XÃÁZaPtá kà‹‚8Ô…C²‹¤:${Qly$¼šÊ¿‰ŠblVI°Œc²ôœ¤/©†·^Bq¨ìHÖ‡nJVï§`Ҋ캻òT ð<æÎÐRlF%²ƒlñ§©‰‡]2kËš "¤L—«º ÿr P'‹µ0ÚpHœ|¢ðáò«}½Lúõ$‰l>ÇPP%i\ dÏHßœŽ¥ ­&ì—NóêuÐõé ³¬NOôüXÏ…ô2tÃà\Dg˧®xDýÑÆ* ZQãj~‹!wóc3Ì×Ãqew˜`¬àJ˜r©ó‹!ÕòV¶Àü‰j[JÕE÷’-<Ï®‰SÕn“<àŠÚÒ^2 gQ"g¯QýÊŠB&˜C¯j¼2qìÙ¢±âÚ§¼™Æ/Vd«ðÞØõ@¸EIQ%ÊŠˆcœ2:ùÜ ¼¤±éûšçøÊÇIX” ø cgÖ Ž-²ì´H·×·[¾s¤¶hŸ7ÉØäf¬•ZÉG}17>.ݧñÁÚ‚;%û‘!¤Ê4ª~63³èÍ\¾˜sxОHÑuçâAüM"D¢ùFYù·–t¼Ç÷Ó6n°|Îþ-¥OßEíWË”ñ’ÔßgùTˆAEýÿLNþÑÆ¶f™šHu°Glò¸®WZT‘ƒ;çƒ; ‰¬ [7ž`*‘P9ð $6â-ˆ;Ê P] '¬¢vLZ¿×Ô‰ëy|8×ÈâB˜”yû¼õq^M½5˜Ÿ×‰–ܺ‘¹nDzÿË^½dPn|ôÉÚê¸ä€qe D™;‘Æ[jlk‰uÙ1—Ìš>#èC„Kôu‹>—£µ­b¿z·ÏI(í‹-ê;9yã:ÚU‰yÙÓòy‰*çSÝ|˜²kÂf…oœñDÀ0É0²ô 7ìEŠüMD…+¿„´NÇâGÜ~ž…Ë4Óƒ*ò/@«ã—y©^›Ÿ~¹'í`|w÷›ÁÈ+ny“ ÒÈš=J^yiѤÙ_… âA^xäƶ*‹À²Ø µ8Ñsù‘©jÙ”ú¨KéVÎÑ-äÞ…IT²­tåÿwJ¤´ÏÄå P¶cÖ#”ùh{d áæbu2 Qƒèg±´  :ugªs+ÄF5Ú¿[üx9VfQw»U݆:‡LÌn3†÷`/n…1Ñ`ÎÕÊÂÅÇyZäq®³ç¹¤mSb¹<¬”¥{ºW ˜W¸%z®:Rd$œOön”¿Ø²˜øÅ7ôrciú@,µ¨YS:A”“ÿ½ü6‚ø•ÁDð¸£Jo‰¥ÓÛPi³›áÛñÂù·BóCÆdo^>Óc¦Ëb‡aPᨧý¤7yzà\c ڬËm[<_SŠV’”Çz3h@©âfŸ&›ð94{Éß•—Ý硬骈Òèàf²3th4S€•-àØbUÊü«~8*ƒâÛìr€qÎÝI«ù{%Ÿ8ä^‘.j‘i˜ã{ÿ'Œ¶x E2ÖIdÞ×!%*‰ü"»JÞÐ ˆÂ¶<€¡ðo{0‹®”4n¯o€Ÿ-†ÿô¯˜÷ÛܘÈí0£÷¨Ê<\™ú£ª„Nôäo fÅ,šù(zfµÕ8 ]LËq{ôñü|¨’¼zÎ=lºÑiGi×ýÄ[.Šb¤"4Ü÷Õ€?âøõÁÁSçy[‡Ze1Ú¶sKÉ"Å‹ÙÚo²0ø‡çÑÄPm í†*Î6ˆ²„ëóg„æ/ü†?ª$o¶\h[þþò,Øñ¥E;ìÄçùøSÇè)?Ž‹§±*ÁCæŠò Spl‚ ý†EJ€Ì R#[W«M5÷]MjÊ—Ö»‰oUÔüÙW+"w÷åÙ—álηjÇêp§¸+ô¸Qk«•H1FÐ䯼´({Øyõo)¡µTJ°ïgÔÖ:E ÅÓÕíáǬ)B2Á‘êÊÄ:xÔl5P95‡ÄLœ°ÒPžš“G¥ º·"ü§õ5†Š^™Ý€A· ŽØy–P6„)PPÀ•í¤­aމ['ÜOÛÆ‹YÁ‚Œ0ëí©îŠ›v@ŠÊæSdUb‡“eØ¡²Ì‚"qÉ벋gÆÃ§ƒ,õÿ—Ýñ¥ 1SÚ²5’rƒdÝ[&qoƒ·“ª0&m4öõK‹š4-ó¦òcŒOwŽ HÔ»9ª\îã ØøŠ9I#”Ã×˾jcúIY÷:ÏAôÎÏ ùÍ„ FßB„ôr"m‘óÙü0\CD¬ì4x@|$L¤{ Èõ)eÔbN2æCy¢É¼G¤}FH‘önÚ*†]?H cÈIß 6„?I&WQÿ1²uEKç‹¿nÒh¯-RÈ TB¡7L w¨„«æ:ãdý—¡Y äç‰øSäËÇD&üu›!NN£¤Sˆ¸w&þÝ9jQÄŒø†¡X&bnžšòµüäi¦M¥ù7H‰œÔjE=}̓?ĬÉ@>ïN{°ìñ!ÌS©|Ãëï§Îã Õ„7£0û!žw¶‰èX°â/–ÈEh™jad«¯‡ïÝ*0ëMÔ»5!"\FiwÍJ>‚ËüLØ ÇT¤ö-Z^w 9F3µšçlŸöHÌñ·±È lŠçØäÄ‘! –Ô&¡w’Ü>÷ŸÕèÍÓ÷Õ1(6+ïDêòésuÈÝ«<>^_ñ2;¼=‘v3G6E ôÇ3DH2Ð8 Éeu§WØ wÐbÉÏAH£k›^ç·bm0 Sr/Ì×g"{×rçSØŽE”Á“ÊA;­¬8Ü,´L ønÎqÒ¨žè¶< Îò|çØñ_]IdZnŒ EÚ•©{H­Z;è]wíÒ^.*üçÀŸ¥æÓÕ3w´´}3DÙUBΔh(Ò¼®®u'œxÙükЀZ,îóXØdüÆ0m¡­¥+zýuÛ…ÄÖ:¾Q‘:ù ›ú ®–9„Îk]ÅMËÄøy3wï-&G0cš™ TÑÀ\µ÷©àD¼=Û˜Œ@ñw_­e\Ú—³L:zÝéŒ#7ürŽšôt±Œ' Ô›~Ó<äs[ f_­ d<5œŸLh_ûgI| vto‰–€ ØRa×g(íê[˦+Z!¼ý sª<‚ZíƒvÃ9X'låRxsè/ítãTóË@¶#Ι¢ÜH½t¬ ¾ †û¡S)c*ð¢¤4•ø°)Ú“¾y osðl˜:VSšåï@·&¶ÁÄj;õ8“‡ëIŠ>å£üÆlÜj¡Z­¬5`bkÛÊÉx*N‚lo öTñôÞÖúîgzØ©Ì$cºœ@hÑ!Í2Cn¤Þ±Í †sŹcùÆñwÐç F»`ÍŠˆ øqûBW/òlÚ¯›')øPB¼"„<¥î°/°î´¨P¨o¼SÅmÝ¡Æ%Ìòí¸hu’ÑVÔ}ß i†8aé™»¿ï°«wÙfŠFö!—|†–âÏHB5‡6–º¦@þÀ:sÈ'àir^*¬oo7÷/áb#jª§Ø€j7û´Ê˜âë’„ô!»[>ÈÄSÜq_37R–9áé€ëod¡ór£û é2¾‡‡%£üM ÷’Ðu1ñÌVåŠIѰ}…˜ÑÈ‚tÕ{ñ*Z¥`ÔV ‰ç˜ B‹¶ßÛ´½Š?Xj[~ž~ÃÂ@žCO©F€'yGÀí<Ël­A=» `fógš-ÚÅÊ»œ96XI܈3_û[âH.JÅ„Þg«^량*õvñÎuÇC¿iŒ4ÕQ¸ásåÃhMO{$cY Ô¦HÍԣĹ翹.Åâb 8Œq#p¼„¦´¥† ö»q#5¬Op#’‹Ñ¡B£].4§¢RgÇË“óÖD&½)†×qЧ“B’*\²‰¤â¼ñs´­^r7ž7&ô’üM2G±£ünß·˜¸Td‚aúR÷P]‡à{eœéûsýTé鮨œH¾Ô jGÒb$;B7ŠÅ€4x廜±xŽàd”}²¾bîÙk’l›aJdk>޾–ÍK¢æTAS 9›«û ì ‚ºÌ¥ßQë,ìœ'äC°é`£½wÌÄ×PRa9–i…‹ÚªŒ(À¹Ù¨ý¼ß²Ñl4-%{(âìtwtLrÍ@@øt–ÌY—î.S"â¼6³KAC´X¿a"?0ì Ú†|Ýðs3ÉßqÜ›¹›”Ìà w7&E¬¶ØcÀ3 `æÊ åÜË< 2íå†Ú¤½™sçkº®*Ëü|®hÊr K[a¶ÃfÇuî¯1hPƒ½ø˜ÎTÀÇéGâõw|<þšJÍÕOåÊ›ÐÁ ^îêâ°/IŽã@Ýwõ™R:Ó”wUú€GA‰lHZÎùþ× 3JhY¿SÌd@ƒ/àlî4MƒknಳBf›¥”Zð¬ï/]¾Ä\– %¾!ùb…êÆnü}a£”¼ª« Šf%…è.†&ÙïsÇôÐyh•µlíò›r]Éq,ë=™öž"±é‘¿·e,±óˆƒ‡îPÀb-0¿4c›ï¥”¯kÁ@4LçX݉"嫺¹vƒù{²ÀÎT™Ò£ <ÙÚ «Ä¢ðÍk0ë&·ðéÌF|Ù_ ”|¬KâšÔ[Sâó<Ôa 3 *LÞ.!Ï<6ûx›Œ @õJížà´ôÝPv›KFõ¤-ÀךHMe̲®Áž–&@;»× ¬ÙpR–}-—L]t)k™y¿G„++úŸÏ@#jcúÑÐã'äTL¯èê^“Άr¢ËÖÃÖp†:û‚è §\t¹Y×Y^ŽÎ„‚ä+û¢i‡š¼rxt¶4ÇOÉ´ÁüIÈÀdÚƒ±öe——.ßR*¦Ž«ÍÜq8†ûÏŠ˜÷FÿýŒ¨ÏOÁàyï¸4 ý¨%æl9ßszÄúZ4úÝ bô&*ù)'ã50ÍN­BÁréà¡Áw‡àÅ6"XÇØw•Äcÿyé¹LºAúÆÉÕ éýÖ[®gí«h9rÚÊG…ÚpŸá×.õ @ƒ)¨l‚òcIÌ%)µË©s£!/£"ð’‡R-° ü-0Â7H’ÖXa€›Q{”û Æp'×iº]NÑ N««ŽÆú~—RgX5ZðüL½ UA¸Ï~îƒu¼£8Ðÿ@%Žl;.ÉØ{ßE©¹—㾪¯ä¤6u”ɉëÀ‚$㳜ƒÀ££<¸íøñd]¢3<ý‡J¤îû`¼ÍöíËpÌ5fˆB q Ë*|¼Rú9´ku{w´õô9h½pt×h£º:¿ûÚÂzеÜMøÓîÉ$­¶zdKÒýSmèÕ šö àéºñ‰£½×OjÉ0ïê¿»ÔÌ’•ñža·™Ït¼Cé z)¸Šãôà+ùaFvÎÛ%/k¥ÈÚnüM|ž?RˆûNø»fú¹‡sÕõüVÍ7ÃJ:˜}·(º9 bpŽFélsÔ×Y…Oa™`Š©±UèA˜ÐgiÂQd—lä’'ÍeÞy9H|á±DŒÇ7/‚+QR3ž¾÷%_Rô­d£ÄXÇ› ˜?úýPJ5ü[š)°å°üq©Þ† RÐïX—Goª~>^”`ñ´˜“ä½€N€èTjÂ’Ï(N™?îNdwË.©Âø’ñôs4ÁEñ;£ô4ïÎÞ¿©BÌz-îÀÔ5·R#º$üLÚÍ*”¸pW6ÎÇe ÇR¾vÔ}Þž[—ïÝþšç‘_¨Úø§²ôéLŠ’Ffu€´#5Ùw4‡Ÿ*®êÐá«åŽ÷råÚ ’ëø„z©ÖÎ9ëQ£¥¦1»ªÜwÏT_¥‚œ~³>–žºÌ:,À4’¸ÅEêǪÃ|¬Q‰8Û¿«žÕ3=AØË3üSaˆëh=7¢ÂU¦2øuIxÏݪé>椤ûbCÚÊü—Ty‡£ ¢hŸ’Ôòí„·«Ç Í mÔ&³mw¾Ù"S2ÅŒböMüLã)äýSM„wM|E½uLþ6 Ú/‰_ùt@ëåp-»BA4°ÊyÙtªåIï§ÐiUœA¨úê!|h‰›¹Z4tAQDîòZ @=â[<[T×ϲý²¬DÓLÞšD!àBCs€B%¸“¾--5ïüIJÿ7"çz5Lƒ T€¾¦(¤NŸj%F-'­\Wƒ…Ë­ºSõ†ÞÙ•ÍÅw‡ÆÑÙ ޵Q G`. ‘#C/£³yT¤p÷ë; Îû/X=Òê£ ;÷àslß*üM SbÙ—ruwLÞ–‰?«VS‚,Mˆ}lù—³ŒM·¡]k7óÓ\ƒyuÊÿƒö‡ 3*{Òt*U“­%`hÆÕ£“äÇ¢ijzé;øáA<±`ŽõXE‰‡…Ü뀅ýv¡±ÄŒ5ûg Hã­£ØÔ´4ìùôÙ¬iÒ±ÏéÁ%DA0æØ3€ÒtOz?Ê0®µLíàe‡sBðB•Çú‘°)L±ß97ótÞ|‰cÃݤ5­æÇñ< |*> u¹·áÁç¾ÙE™Î¦rå:PüLÃ5ÈÒ«É $~ Ý;ÔÄŠ½ ±œµ6–̈th‰u¶^¹´‹£Ï!HÍSt¼ÐJÍ»Ùã¹Þ [´”E¸)ïvk®VòÓiº}oWœè ”¸ËªÂd0{`LûÅd#-KÀ~¡hœhV£^Ÿ0¼¦x]Ù”d¨£-øfvFO,§Hr/iöîX0ŒÆ¡ŒèÇR˜®¯q”eHèqHÍ?µÇä˜ |›÷ ;Cñåþ>ÿϼ?°Jv7ۻݚ0ãlÿ¬’Çcœ¦-üMO“Ä'8‹p ™Þþž@ì"‘”ð¨äGEMŸhOˆÛ½Ó\ã»7âϽC ST¨¤%üPSžŸ—Š¥éluOÌl5ÆÁò“ ¨Çžò"-|èH$:91h6µxt'b¦µcœS˜¥-Z1M7ýGtLI+ß’ÏŽE¶<´nÀu„t"³Ù‘ŽgkÔ®ö~¹ ¨ê °w*ß“Òa:Ÿ.˜¦w5F~hi¿îDk&ýÞD´¨øuºG “ŠÆÙÉ…¤­… ¢¦a.üI_ç0hhGhÆmëüdã}ð0Ö0úÝáÏbÚÉ3½›ŒØMÁ n«Ë¦LNæûH6b‰Bʼû 0ÓÒçØ×)¾í/ˆÓn†È6ï§þßÃ#0Eõ‡ÔÁ 0zϯÝÉj^sŸ×ÎÛ7ºrÞì€+˜E)aµòÓ㦮xâW(«6[Í— z/Ä]Uöd3ƒ²têtvš,o£]%–È–4‘^¯£Œ±-ÿ½ªt~J!JÞðÀ%Н¥È®WˆÛý7ùÝåhXdírxðí$'`{xüL»Æpå= #½£†½zSTMû‡vÙo¼Ó™›;ðbv“ç*£Š°ÿÏ›‰ÿÙýê~¹vüÎy•¾7‚o-ŒOHg*ÚÁÃ5û‡=4ÈC|ë区ʷqæÃþ÷G"§jéÖ Ãèû{¸­éG ¢üTIVç Ρ::Ëɾi{ÙÔd:W‘oöø.)bGÏóŒýzÞk:´áà”D¯zZŠbB\o&òOCe}ål0Õ¢,DÇÁÑÝÿ£Íîuuâ§äJØ€º~×7S‰qÉa36Gã>‹üLÖÎ\n×Ýw°{¿¿ 3Åi¶eñ·j¢æUèóà£D…ýá\J-ŒSYV¥fÛÎÛRÅcQáâ¹Ð÷=˜itª"àðJL†GC0@((Ó˜¢õîêìE%½LÅÈj¨âžÛ±¨ã¾Ÿh9˜ `ÛN#ο‹¢‰ŸHÌÇ rÁTjQ†àŠ.µ6³åp¯Ý2šTŽ©ê5UÚvOßE°SU{— i{¹üÉoúŠ¢ nߤÍÛ‚¶‰Ç:T·Ÿ}´øÄ *œ¹­b‡¸ü|ªE¶”¦<Ód“.}Vïn¥ËÒöùy£1äøfÛ~òôz§ë½Bö)J,Ô“:a‚<‡œm¯§¸YIØ;1cí\ÚÐ3Fè¢÷òã ¿âùIWuÍég +Ù5ØmÜê$·­Ñê³¶ŠØÿÓ·ZŽÕ³<€y#¢³‘&lå|²+«2v´™ÊâzwPô¥™¡ßhª™ßà 5 OB”óç}Ç4–?ØGÜZáFTÓ‡?ù¤ÝïÊhŽ] eJ½–Ê>컹cy9JJ~c1;/}Ï®f ?1TPt«ôÓYÌ-…ß'»±:xÁ­ð?-õ=Zà¨Á¯àpègV &*,‚}—mJá$[pŽ,Xâ6\5Ê CÚ; ïä— G0b, wੵÞÄ}Vq‹'Çæ˜«”ôØëç3WÐKŽÿ´D°N³µE¬¬Þ·ôÇLV+2 Ûµ;9)¹±d—ÉW8¹˜<Ú¬]ÒkFšF¤šm 4Þáy&ä¬3 Ômf˦£Û¦§&DÂõ–ß„íW¯×ÆB7ï£{$“êÑþá°™ÎZÓ7õÄ1´ÎòÌ^Ê™`:R]¿0͉™â¯üM'j Z`µøÊ*ú€ Þó¾îg««kdÓ‚q=¼Þ\o'“x‰XLŒq¤†ŸU _z$.؇‡©”]µsÇhœ4-ÚM¸åËE1yããÒx¼ºn£jÊ%áCÜ÷BÃ:1h=– Ñ 9Õ‡8$2,A@o¤ên•é”ýîPMy3z“øôûîÏ¥gQ—U'4…œjœS–„ JÉ‚&©!ò¹uËlÛ.Z|ÌìzûãÌ‘Tr]rZ½A\Aÿbl&¿ÓCD>‰üL«•s)'·7ˆfLëIì8¦Ž)Es®w`ž:ÌäŒ-F æî`ã4ù«yõ eD¡¡J§ö‘XI[*œC¶½5½€òäôd¹E¯9tÉèÿ—«ªƒBKfša”‚»;¢1–}uot ÖŽüª‡”¦¯„¿6eå½ë™âu[î«#]m’ ê†Ë{ KÛ(ë¨'%ƒ“¦:œu™|ÚyÌ» Mjxò”0¤ºÜÏ^Q€}Þ(K˜¡i»µ “P™OŸLc“]+eòM?ÉC ñ’h=å]ùß§i¤!@èµ9UuQüL«ìxD¤Óë"PS¢—/ K¿Tûåû;‹`^:gÐ7¸ Nš|ÃÓкñøàIÏ©NŒ³—å*šÙqæ„|!=ŠÇ‘mƒÕ4!¢ê˜Kë¶< ¿kœ>î‘[@´€g™¯•V_û 7¶o[§ã}Wz„I¦-7€a‡vÜ9wÙ °"¢Òs §tfxœ”|ëIƒÇcmH-w´Qè{£ýÊ-PÓñ-ÔAbÌ›ÓÓó¨)#¯€ÁñÊÿô>žô6OÉ%R•1ÊE”´áÜò•ýªÓËàæ+áMQ"7×-:¢º÷ñ ü°Ñ˜øHª)ˆ'—Øw=y…(N¿Ä|ª$–œ„a”XßrÍzO D‚{Ã>ÿÅå&pé£F‚ Î4yáZå‡ÓŽ*aü99$Û°cGò›\:N_{ ‚E î‚V¿qí4µ Ü&¶s¤Û¢v2>èƒK·Vi[W¨ôæ«ÔÆ]ï¨Æ!£à\m¾\:™–udœ£1T[†—âBSp¼Yïùt—Jßy˜umd²Z§GŒÝEœ5Óe2}0­h\ZHkœ¶y:Ÿ Ä¢#« º.Ù-²<Ü5$ÓaÊz2ÔúS±Çt›ú£wm…ÎÛzÒÇtÒü®Ê­N{‚ ð1N$|éÀ}aŠE¡Ê|zê!w~~ñEéz )Jl–“Àž-ßG¢éCo‚º6Ô• ç¬\I”/H{…öŽ¡»È5Ì~-èɘ)÷%|RhJuÎK0)Àbº™)\RöÖ—=–´Ktµ¢4ª§®“€§EjfÛàD™TÜP/Vè–Áp¬#ÕÈ m½ºµxˆÙÅÆÂçñZ6B˜PîmN3¶)Ή2©ªGzr1©nè[І¯uÂwÔÙwš1»í]ìˆn‡¥P¾H¢)ÎПŒï @PÎFƒ^§Yôì,À|§sõs-Âu‚¡Ïw3V^Ag€z¤ý®yûPøÓüLÆ¼Ž„ÅÕ” aƒ’¨ª Ò}7±X+7óFØqN™< h$9Þ§D&VA=;{İkÆñà*#®=n5DÜG+v*\Û„¬Fóõ5ÁÌ©1˜9%†T]'A¼"ý‚ ¢ÌOFW0/wBfm}ÒÆõÃ<5ô{ìþùÞ/›»«Ú™4zMÿc\à*12ÆQ¸!ýøë7Ì‚|_¦ "&‰³­½…C%ËØ­š~nPóx~(¾…dœnþ²êfF}ÜÊ9¨Ãÿâ…üJÔêÁlþåg€½ü’Ö#$y¨'g7TUÙë{Åô~þ¬©Mdó:°'§þT1+°[¦ü|­à2ƒcaÜÅNE…Ø“aMýÒKxª"ù@¡‡àŽŸf´ÔH!Ë·¿ÑqVk)º¿leÁ÷‡”Ìkˆå<á–?5 â·t< Ï'eÃÄݯÖ\%ÎYxR1Ýb,/‡è|‹&î¶ãL€‘KÇZÙôSèzd¼åx¾ÊAª@çF4”#T„HØÛ—´ ‡Ý©¦ee?ÉÿÄOGî@‡‡õ0±ª½p<£ÊôtGx¶¡Æµ€+îé¢páä‚v‘œpþ¼Íåÿ™´úc8ÿü ¸2" $])áòƒ :X¸á‚Ûê½Îp„l1•ûè3G6„ÆCfØÅ_ÞEÇÅw:08|NWÐ-– <»¼0ôtMÙLÜÕ'R!ÍŠÒ{BÁm[êß.d®—â8 }æ-{“”ˆ¬U… ×1•¶hÏÓ¾€Z)§JP:ÔÒ{Á«2p},æýô¯À?dkÍ£fîQþbjýeh ŠÊëæ ÎIWeˆµiY›žìr»'$<=”ÐÕ.ÔÜ3 ˆŠMrÿu vLoo Jžü‰i¢Û¦¾¬ƒ®ÊXÆÝO'”€]í‚aÂÐAüZ΃ܚ¯[ní¸³Ø|n¹A,k~ëÕÔ‘Ïü|¶ê¿.ùdrÊÉåA_Êg½Ãå(urÎ"DZ[-Al½ì Å£;KbÖšÎÍî©Dé*Ê?ê=}—ß:´šÆ–«î¢Ã¨ú8Ôä mH¾Á®ý1>wΛvƒoòR„oóŠ„y¹ì¶×õè; Á›?·_â~Rª{Ò¹+Øn'N+yQˆÂª–tðäþÉœD¿Ý{U=O|…»Žu`ð€™ääý0b±ú"ûé~¼\ɨŠ.›½i¥šé ü(µßxºhunø ˆ¨Ê× bµmÊÔ6@H@ZßqÑ.F!Žl")v…ønwZ<ËJ®j‡ þn&¨q`ÉmÓ›(œïMj¯‡ŸíJþÿrÇ6á³±b°IÖÓ¤Ìómú°Û–‚áäõ–€áò!p¤ÀHn:ž~’}õáæ^N#æúPg<𾟠ÈÌãïDÞjl¨ÜóÉ$qyËÙ'&Ùb>†òš6FüLÜÍ©å?³½¢U4Õ:éÜ©>í8mšÿ™á·šóæ ùBÅ›­û ÿà)4(+3ý>$å½_ˆÉGßêô¦•Ó×ÔÚþ~Ä~‘мѿ½7šØvàRž*b¾×¤€¨å¤‚/–Ô§´Â³öXbU$ Ïuø»‡÷SWßrc)yTØò/íwC."C°Éš">ŸáEVÐÈÊÍ@Ñ·/P^Žžï~'5¤iö‰Kþ$­oswp'PüL±DäïStÙYù3Êj~SWdÉâ±)T;Îê¢8½‘ƒ@Ž :t‘(}³0åD²ÐÞk¿üÞqG¶6Y&üþ,è}ɉ0óB)î[ª‡%a¤JÖ!œÂç=ñË3o¹+uHLþà 7(VŸ¬9‹+žä0PkÞ"´‡à }tQ© -À7u€–òYù¨ûM¥¶ÛJÞ5n?¦ó]üL­O#ñY5vý&zE{F¦%z¾ÈV”{™Õ–ˆUZ)ÏÉ“ÍÇn: ðcë¥o-¥ý(¢˜D:ˆËsXuèÁ¤–E€7N° F w?8—ˆóâNoW‚roä„í­“Ð'ÜÖB¢VëÏýmrZféš)þK°PŠ›­©AC`µÄ8tG7ê'W鱃žÕ’¤‡¶°•J]¼;å¥@d»ç_Š) ¹$éÂî1—deÛ+NÌÊᆈΰÍJ¯ž7õð}j\“ÖtFÁËÏ­+رÀ†ÐMn­¸ˆæ«T MüL«Ôõ«$…ô]aHÅÍr aPÙ t¢—Ð>6k5Ðã¶2LÌT‹­NŠ!‰™°¼+H]1¿¨`½ä“ybVçñ*÷¨ûèÉÓ…P÷Ï ýîé}ˆ¶g—×jJ©³…p¿PB‹@:Â?ftϋҋ}sÑ_/ÌA‘0×%&ü ¼û)h¤°Œå—>àú¨?ÍTRmN„p÷éÎ ¢¦Â–…+,¹†Â¸GÝwYW0* µ FmÊ´mßn »h£·ôøómgšÙÛ3XÁëÌåü|©³Åô—m"÷Õ$&‘¼&½ö¹²Z…sù0ë³fÕæF,ä`f†(š¾1Þ¿>¿{Ž$Ôfð-ŽÖô«w©”¾º²‹Éäa"ë¼Áθb=ÄÉh=™<ÍùDkp…bÑCB5$ü?õíŽbôtÆÆÙœBádΆ¾u@>η#óˆ§0ô&¸ÃN#£ìøéѡҴÚî@»¨ëɾ ÑUÀ§]Øy,¦ 8 jyM"±Y”ÁX°‰Gl{[0d;u°¹úõST.>¼÷·ônzºÃèøV•™I×*¡Å$ í{Åþ¾4%Ä3c×ðº6±ž®§TGg5 pƒGý:,O¦Öÿy‡Õwž„sÔZî#ºQ”ÇLÃ(z¼°ÖZ¢}Uh„EQ/øîý÷Ñgó•Ñ ‚d+©»ƒ¹Y~˜ù‡&$[i?n;>úGes¥êüM&)\îÍY3cÜþpp”Û‰©Xz²Œ$B»(?6N›ÿª yúyõb/gy¨Ìz‹Ö9…ÇÚSx¦9gL¤Ômß ÑZËàT”Åг7GQ§ñàwsT„ﬥ·}dÃÓc…’[Q0‡´4ÅÛ7°},¶¦· iŸú_ÑÁBcÜ?‰nƒîM =í³Bð28ÐxªUVqz.Ú18ƒxè/“ì6WFìË tJ.aÒ:Î0¡N]1á‰knº‘Š0{q$mh³ñ»Œ-ÔŸX¡DýnŒºãb=scœW£E2ËN›¿Üú‘û5;„”°’§üN ›ûçKä’Àí ®a]‹æÊêà|rýöé8¨ž™úˆr€n·Ø9L¥²XY2¥†®î‰Çà¦ÎìªêÏXÅ+G× ç*„çå:ÓϹق\±T™U„´Š/*à?µˆ•Œ4ÁSRÉ:­67†t,ØS›ß>=e±¤ÊLúòs“FćF}ÆÑÕZ=âM!—4ZœM©`Ë ÕŽ PãMg?­Ãº²@@0Ćహx=#‚áõU€lŸF ë„…sì‰À­¦ÓpnGüM uW(*m¬[oD5öÙ©õã€ø´ ¸¦~{;)·ÐÍ÷›¢Ç,hµHÅç9q¨Ù=ò³@²£bvÆ"tžÿën—MÄ,©þõ¤Õ>´š\H Åœ¸Ê 'ˆ÷êøŸqŠÐe˜WkÎ9”xØ¥leˆbÈ!«¾c7òsé~Æ†Ü ÉÏ-ãÍ…\ðZÀæŸZÕ`õÓ¡€û bÕÐÁ”’—aÈÈšÁ‘¥~4+mÅ«iy¤Œ,‚XÆ•7v ÷„6 þÏÔ¿i{véŸv'ÕÊíÏ⢯[3¡}üI÷U>úWÃ÷,=NhÞüÅ“RC>”!YÛÌO3½lùoé¡×ÞwÝðÁ•æF®i2Œ¤ÜÇÛ»¬®1ž R*ñ v×ßuÿ}ÉE{°™â&oêÍ [ƒv~ KŸ¸û‹ \UÚ6»uÅ" ŒHlP*ª<‰†pD¡¹§ª£9¾&qc{"¬³ÇMf=ßfR+‘2|¶pª*Ћmö–K®Ogêîi›ßWÇûÑ XìðMjö:b9‰goóR–+Ow…n"·(üñÎàn Ó¥ÓkÔ5È×?6h|gÈ Æµ 4ºƒqô²Ï Ñ^ÂO—ë¬,³æÅ¶†‰ŽJ÷…¨É%j/9¥"øÏ„<êÑmL•‡ŠgÉc‰„n À ŸsŠÿ\Ø©R¿#6ߑɆzÐúo|^´õØ© L3¨9Ó¤~ð¹=èjQèL<06÷bV}‹oÀù:zÔ¬*¸J%é ]Hìh5þ$x|¢eÛ–v>(±Vw»’˜œV§á“}ÇÜÙF bªápDR9“Ÿùq'w²³sÝE?•ÄÞOggS€‰2ýÄ nFYÌ À:×ÖÛáßêñòÿÏßðúñúóÿÛéçðÿúïÿÔÿ\ÔÔÙ×ÕÖÕÕÜÚàÜÿÌÿ ÛÜÚÜãÿÎæàöùû÷ü1ÙÎåsÕ¶šRÌE µ'äd]™kÇSÈ8GZgÓJýd“”d>öÞÇÞø—^DRY <Ã%º ªŸL©íY[û?[ƒ,Î ™Rzµ†ÄV‰B²žH3q˜Æ&Î…,cõ·#o~ºØ§r'Ÿ¥-ˆ¯5E”JZ†£ ƒÂiJˆzE!‹UNªÿ Ь–@éÞ­ À– ÙÁŸ=^šS?\a‚ðsJHû7 x‚¦})­ª¹9Yüœ»¢ñ"å`´„ý_Åöo`¬ëdtKZ&>=üLÝ8òªXtgÝtaÑ>sÞ˜!X)„éØë qͼÓÞ¢j•~^ÚA,Öçös?È~„H¦ ßš§$‚ÍWlQŽôšþ0Ú—šÿ½ƒž’äd‘åRß@U_Dºؠ,âɼLݪ‡dÆ]Qf}p÷ ¥½B69±[„qä¨å¹Ñf½¤II0ÛtÊZ)/žOµ†Õë ôV?Û]*ûzåù0±IùªSTÎG0gÄ[vLHÄ6›l™CÊLÏ«“³6ÃV×ëiJ¯¹Ûq¿ÂÕJ>‡üN†;kcUÇvZ÷9ˆêœ0:c¿!%“Åf_k <µ¥ ë,Ö’܇^É`$yzq°ÐèI®´Q´‘ü9ÖîÙEìó1NHL;Êò€“:èóЛaŠ š¬n !÷U’ÈtRÏ©©ÙJO<œN®bæ´ºìU¹™Æ ÷|@‡â†N¡ë+)2k÷¶`A Z›u}D’÷, çV Ô¨±1¹)\·ôØc«;¾øXYQÞt*¡J#åc‹m´=¼ ]į’S”°…üL¼9¯Q¢L#6¢¤Ö”±©´Ðdö1[£“9Æ­þ›ªò³¼]"9$¨MH@Q˜rðmÊÚ¿ú;ð»ãÄfºXÆÅ&¼g©ÚQõCÊØ”97=.ZY–h{¨¹Þ Ü5û'xÔEcC:‘;†â߯+…üö•Eèë¯òVª§>¬€‡É!9‰^å䮨 d•3A¨þRÇø–ô‹°i¶ê7ùÇ¢ NŒÏ?ØÌ®¿Ê§9E‹™«ºem›¹žÝœAâUÔä"™*8M`Šz÷WeËyý/Å‚4á ü6Y´º$‡¼8`ùGoz¢¿ÑT«õ8e1¼+’–X€¼ÎS†‘¼,Í ‹“`ÜFà4™§@½†@-H(ÙÈw™#DØOáÇžén’>c•û!KdÒîH*é#¨À¡AÏ/Š{«ML*g±¸äвSL¼Ø–f̲êJ(‚Ôî}}±ÌJE;”‚ðª ò9úšÎÀ9æýmÒáÄ2/8Ý îúÒæ/–´ù½Þ¥þüöz†](X¡ µ Û–¶4¬ŽïààppE»/¢åM’m̲<ã„W+”üÛ¸£‰++Ø"½]ZšÓÛô|zxùÇiõs3!åZÞ”ðÏã÷ãöÿ[èyíWó Þô.Tç~ãçа-!ØŒÑ_½Pб¡îl!š” uÿÆ-Ž«Ì@ó­ÒR£4‘˜{,—§ñðš Øk¿ÓŒu]žyŠëëz†}8›qôW·ÿÒκô{"pNâñ¹t.g“€µwÂóVž¼-{ìêÍwj*…HáBá|?vbœÃ8O >.ô©óâq+ì—YOÞ0%“í¾iðj&æuõBÆ`ïT`¨s•|9aoüLÚ3ËMçB×8–¨Ÿ³‚‰ýh[_A †UUèÇnCYu4DãíX‰QŒAÛÎ:ÞÃ*Ñ|qïÜï·s×1à€"±æ+•€{ͱkkl^“P{:óábÄ+˜ ·?Ê,’1AA\:X:‹0Ü$XAìXÙ)ÏfÀÃq¬Ü¥³‰DÄ1AU,?[tþnÝ6×31†Md: »_CãMͲ¶j[³X(³[ß5Ÿ`‚z­ù™Vd*DËLm|~ºûmHbé‹ß½±¼,â·U¤¥ é9ÿ¹BB=*fáÿØß¢•xA:8üèeÍy²Ô›4rÌÙ±©ZJŒ›„Mt©uÑ~-°¡VBŒh¸ÑpñÑŠ¨‘®Lcðû,Ì!¢¼íDórÑš?€'‘=‘òŽBL¶Ák­‹e* %^T¨~á×ZÝî˹®ï²~.«&O§É³E·´ð‘õȾ’Th´#~4xtÍü|·gã:YdhcÆ6ºKWûÙìT3ü+ Ã}0èã—=zµBí3Ì«OT{‡òéèß!4é*T¹n”DQ2¿q"¶²ªã7–d>.w+A³…¬E3äP‹wΚßu s€fkçºûÖ -k0_ÄX.nŽQ#fŠAAb‰]ô•\}RöP„Õ€ù^™Éjö—Õc߯!9Ù>s~|•qùúD¾VúèÈø¬ÈO'Cþã`¾×¬í›Y"âx%ª÷/¶,3Ê­B½Ì¯ÑÃÛdžpµïœ2KÑLˆÐ˜ÿ®ýš±B¿î*Sqºœu¤ü—kcR㵑Fˆ  žFdêÚ){=ÆéîÇeÆÂû•Û§8ö×µ¸S„fnÛ{t°œmÕ¼fZéH:uH1‚3—:nBýØ5X·|#!ÀØv²µ±hs𶕆D’äÜý›ïëM†Iþµ«/.:€8øÆ Ä%cI> LÏ~`µ‹²Ø³D@àëF‚Ð ÓR@´.ßO,üÏ«ù°”%À›‘iµìºþ0·=íZ¬××ÄÖ;Íý[Z½‰Ç¢„cŠA¯´‹7_V8Â!s‚JPQ>=ü6›õªƒ…õñ¯TËßnÈ]š”a{ úh©sª\ÇÖ[1of8¥½ñUbÕå‹m°;NûMèH¾EÃ}w4*žCöëŠC4=‹Ø@OÌp)Dgö£Ê QÿIDt {´;T‡Çµp¼ÃTTœ°Zž?XpX‘Ô§Ä߸*_U&ó]ê|“ÀGãÒI˜SãÉ[cË&ÿx)Þ¸Wm®†"+ÀmNüÊóÜðÝ%‰XV$ù”ȱŒ» ‹%ð©®HxóÀ1y–ëäóVïî¦ÛRwq‚6Pi¿.SüÙeãÍâoè&kM|cí6î¨ E¥G$XІ²=:±J°Ke€ú ñýÿ»ÜúÂèrØ«X¥R@Þ'cǾµ³_'ÑHD÷lþE-Lˆ :ýßlÑ$ ­ØÖý¤³ç/¾ü­ u¼«4˜ç³¥vO§óðjá&ã8]Ý0Û™¨,f­¹ðJ °‡D5¶'ÌÐ ˜dd(—šYhÍC.§ÏÕç·´¼Ó™[‘ hlSÁ1Ú#Múâˆ*Ηnž#ÐúZîEçfÑ7_õHEа¬û˜ÞÚ$:!içÂòÓ2&¸â ˬxg)ásüÙ4 @w"ÖÉÇîgî™Ì2RhQ@€HÖS¿ã(ÛO„›,þþód2RÜg;&¡†ÚXsÜ_#±Ä$ðæÜâúÊÙ€¤ê Ôç—Y<ß“„´°óH èÊm†C€ðÿ"qî’tÛXu•Ù8¬ŠpJ«áX•6JéœïJæ]ËjÐz@•r š„|Ð’ÓùÛ¢jÊ]DÜO—ó ÿJµh[‰4’K?n¹ö“\»=Î,“·,ómLêb5b³ã‰6½{1ðOÚBн‰!ÇYð¨qdS[ ·TgB:U}ÝRÚÑݼãæÑ%w¾_¹CÙrmüÙ,‹åàX-p,qúR¾ªdÊ.±Îp-ìõ:×:½ 탋TcÃLØUëD¬Ù,ïšB0á9Pü·sOŒ­6òÃ9¯â”lÍíŽõ8|CpOØm—sx[cpHPÍ—ˆÛ{JJøe‚NnŠÄü5¾!¯s„œ·Ò·úñRXCÔó®Ýõšƒ_>bÎáÊ”E¾£¶¥ðÕzqÜäcå¤'EÏð‚Š+ä¾¢3ëR¶É`]()ÀËÿÏàï<UÀ“ÔòØ‚ÏXjU"‹m.\1ôó– 't¸›YŽAO(-+S7–ÆÖX>;s}Q+ëóoüÙ½{wœ˜¢2³}(DÞÕî;ë«ÐÜ´|¾•9Ÿ3 6È–ûïKCŸþ„ˆ÷`ÚyÞòc+ØTÐ'7há ‘”¼>& ¦Ï<6Z–ž²©Õ¼µnÔpûd–‹ãdløÆ›bSÓǶ©f™¢91à”Uáún•u%™J lù²Ù ;Kö‰åíÝÊõjNz®1*‚>•¨59ëŽb¹J½¨ŠŸ³¯­´Q&ÒoÙdžS‘ÊeûÜmWEKéK ‘TMâðUê¡ÉÉ äëêgÜ?¡ä(FmRbèÝ<Ø­BQ—j®p½àscüÙÕ]ìŠh5fî¾ÂD…šy*:ü]•ºá[ÞZ÷9VlÄ}ÞÌ . óS[·½žŽ‚â‰Ý±Ý/ív.VcB[ý‹8Ó“ª¾où!*iàR+8=‘uTí®—-Œ×ÿ‘J`Ьæ«le] #Ø@ºoåPÊ-w>숩U’¤‚­D>PIØŠhƒQÇ 9v¦ˆ}èò\™Ì¿ç³¿Y‡»«ls¹>ŒÕn’ä*¶ÐàT(›«1Ñ ÀoZéjL™ñ785†Þ·fŒ–G%…%ÐzƦÕ"y[\”„WR!OýÛsó·‘ §X ºÛ>nüß·8™ TŸIH>˜àr–ñ(«›®n‡Ë7láÆØ2êÑ)}<ØH0SEcÿáçѢ襉¢‹&ìdvr=ÅvJëÝÕž˜U‘·„5iRlx ’Uå²Á¢—øšÌ ·³$€HÍ>Ö-xW‚)ð•r¤0l•@jAî%©÷‘ÐÜÊÿ%S»Y×ÙÌ÷~ä÷ã•.m5à PG[”@ m¿çe«Bó'ž2j·go@Èí}Ç=Þï¢RÅ&ËÊ.¸f”‘ŠþÜo@aÀ×¶C¯A)ìÇ咽Ǘ«Õÿ'Y¾5• kæŸCo×áá·töĸMåí=¤ß©_ËÌØV ƒgdœ¢Èm`£_°”ü·ÜAFòþUH ½OìŒÓÏ· Ñx£tB„(Ämí0t‡Jåa¹­ÐD0ç|ò¥Âoü5?923Ï,”»Ë@JƒN5ë{ÅÜ»(TH®ÓaÛĬG²o×xÞVŸ‡ÞIÒÛˆiù 6}æn æ %´Èm¼Î/^>u`ß÷Z\qX¨an^x¨-pDc ¹ÕSÐâ+ŸüÐC'õ`‘ÏùÑ'þXŠw—’ËÜèlÚÆ«àêîFF÷ùÚÞ¾ÆS­4^·ï»§‰nòÝO6>' ;ÀtûÈ‰ë ¦ïž³Ÿ ¶Î “>FYtïiça1ëÿ^9î«M_`{ÚÂÊ{ž“¿4ãl«kx ÇûÕëÇ.üL¨Óë ¡7~’ÙÙÄZ!]wË‚Ùù^È~†r9G`.MY^¿°F ô†tËþ) gqà]Ü÷F-âÕØÚú =¢LûåS¡ÉÚÐð3LœÞ7ÚÃO`wÜ͉ÙP΢9ƒ¦VÞÆè:n®dD—𠮣0öAwí3~J®;@¼ %ÓZ"2uoƯÆù0íñÔ{L÷T›X dÍÖÖÔô CêޯטøPÓ<…Ç·?vO±¡â=¿û&+~*Fù¿?à4z3&´:%3§4€°V0p‘·ÚpÀ3r±)ÊQ­ °Žö¸ÄAIü5S9—Œ•}§/<Ë›ÔtoQuìÅ€$¡ÒÜm›$O"K•kÆÕ—oþðã¶€Ò1kŽ#ë »&æ·+6m‡”¸Ïœ’€ŽÄ%Ó‹YÍóí©5á„“¨_ìÄ, Qœ‘¡B]ÂÁçðKá6Oìg˜Ø<ÄÌâ¸ZõŸ:°-¤Òªê%8£© Zñ:;\Žþž˜qÂþü¸ê'ƒNø&9 ô›¹(¸$ã÷óÕ¸›¡†Ð ŸÃUÚ>€\%Á¾õVŸä>‘Ïÿ€h÷}$_>5,@\Mç͸/"‚žO!ܵŧ±›°øŠ¹fÅDpæü6jvq´bÕ#þûóT˜¯¢Òë‰È²øæÐç‰nØo‹è™®!!bWryzËé ÕE Ä¿ °OÅž~›!iwa^ ¹B5µÎôòxT:êò¡Ñõ9¶?‘êcÓSEþ÷L ¯º:ëvN‡à˜&|Ž%«‘Eâ…ÞFq3l{tq‘©qiÒ´5,K¡,š€’1Ýa™%MñŽm^ƒm—ää]÷6!Í49¸D«aCåpÌâÞû†žŸ—»*ÞÊ€²ÃÞÛæÑV„š”›d)[a©£T~¹¿nZ{²ºw´ÿÖ`kÌŠøõržßƒ€œÍ:_rµ¼îtüLË¡0®yK?ëª1,€ûpáTŽ?ýHyåâ«‚Mº®53òåΚÔï’±·ŽÞÝÐQë?4µ>[Oð͈ò¸±×Ô,Ô6°rÌ õµô±9`ð™ö![NuËtAˆ˜BöV·ûÌGîæ Ç 1a§›Æ?IÕW‘%Â’•¡ÑoÒ¬>DÍÉ â?‡áiLaséH¸×Þ|¾M0*ü¼ˆï@E/`O`Ï.¶ÍŸö[2·Èh.I„>V²ßªß›h„¤óóÏ~V ±ƒ\Áׄä ;0`Ö!ñ5Ç­îŠ4$Å¿St ¬ŽÁJ(ûb¼Q´ØüLÚx ÍTiO¼mZöy_cØ%(³ôMI\Í ”ùÏ›X¼NNEŸ&_<ÝÍFj˜ÿÇÉR†R;jnX‚-‰órÿo€¶‡rùÏÁ:*02×ÚÈs•²Iò : =Ѯ鞤»¦Ò`Ç¢¯æ©'Žƒ¦ÇÎC.ª8â¯;ü Û9×èÌ]¹û°ki}ÌUSJΗ ¡y'ÕŠÈ  @õÃȽ¢\:\kÆ ÙjRË}‹ž1…òçÕÅÍ ’ y‘7VTA¥—²¦Û?iÒŸKL›‹•¼™¾÷ÿ²Óç²™¼Ã0:âvk%˜–©š‹à`áÔ#ü{9ÍE …‚'Y TKÉ`°BgÂ*Äž`'”1)‹$~Ç@Æ XgЉ)z ߯]÷ IÏ@”ïK´•mÌ;> ‰ÊyÜ.‰ðg…Qkkú¸òÒnØ=oŒbÄ“n¿ û[SûW.Æ>ýÛpìÕ&;åËZ&œ,„ÛN}”RÃÕ=EAËèt¿hšð¹Q”é©[(ïY1Ÿº eò¿CƒÛâ¢&Ú«öZ0×}!É´,uFùOAÃWÕKíîÖÔdˆÚ¢HÉrS®~Á®8ž”­m×¼_ÍÀ×4mÁ%&H-ŠºT¦Ù=—ýtëJËV˜_IŸ¨†ÞÅܼ6a~ñu¨Sú5 °GiîøÄ¬‚eLƒ(MT!­Lÿ¸bÒCÑ“AJ&…`¨¼T´Ú¹$0‰Lʦp6Ç{ü÷wéÍjGŸ:í€/¤ZxFõ ŒÊ~¬?æß”:¬]Pä‚­$Å51·ü|¸2ídpt„œ‚mnr00Cz¯:ßÛ¡¢½[`vï{œlvXÚ-Çü3jÊ ÇB”*6š>F>;1¯éa3æG¼YÄÔÓu²EcÁÔ”ôŸ…¿/£v ­&IgÝÖÝjm‰çÔøÃš‡šâ‹€øºÌ¢}ª˜v-îܪ^nÍy’ž<:~ø¯)ª¼—^º_ HÎöxæD̶¦áÍ#´ô”±EëKô¸OÀ„uÍ€t¼{1v‰˜@`”§ÍËžvÂc,nî©°‘!G4‰uvQÑ\ÆvGÊTÃÕ §€»Ì †<²±@}ÖøŠÂ¿´ %ÓÖ1g#–W,W ž¸\aÑ#NšÐßËŠÁïë‡ ˆ U<´Ç¥%¦Æ¤YR g-»f†«–¼øÎ{ÏâB,¬ï}>°åØW³¹ã†zÒ×pšBç’…Ãò0xm‘hóʲ"Mü.Û…•½Ê¹O:¢¤›¨âaã Éœù€00Ñ[žGÃ09¤â§.cI‡À¼•Õ¾¸ò£»'û˜g÷—¥ éçÝþc‚WÇ TÑ Çº‚…ÄÕ¿3›yG¶|, óHÛžð;B¥°“‰CPš¡¬DIîêʼn¤fíézs„O’É6Wºr³BžQÈÛØ–D«#¢RiO*Aégü”›Ò‘d~Ë )1A@ uÀ`)õ!Â(™­•»^5Œ8»Ð´šü®¿ãáÜÑ(ò ¯üM||³u¼ÍÊ)…a‡‰i"þµ¨cyµò/@UoÃNÌ•.ûòóg¡ªbÔeô—¼ÎΓ¨<–溴ñ¾²eó&g–ô—û ¬å«yLbÍœY q˜¯ë¢E‚1û…ü€ål¾<3ƒ91º¿¥6ià ˆ€Àtá›1Ò::Ü%'…É–¾½ÆÁ‡Q` Qc ¾Hú {¡'x=¢ØXhZÓ‘’,i§XyÇi^k6ÒL÷ZÊ öbžúí³˜ÿÏ×o¶ñO¸=Â4?üL°²“æ‡\u—*Ò&vR2jKÓ¬4eÅl£TOºÈYõ:+|Õp=_K!2BS€Ï(Yšh†Â Ç笾(¼Ëù#h RzÁ™•¶…S5Ô&–yiù-§Aœƒâ/@adOÑ e°ó€ZØ/–µ’„dÏ ÛÏ–3Á®X6¨Å¦ˆï“²æNà¼u„¤µ€œLF3÷ªLë¹Ý7¦h”OäR‰ÿIˆn¨ËªƒB:tA7•¾o}ÀΨ‚ˆ@kýJa[%MÓ80x ‹›ßó®^¸™…üMbòáóÖ­—"Šq >‹ì÷Ò%yž"Þ˜8ÖØ¤wÅw Ûöìü5ð…OëÇ3‰†õ¡]Ç¡#.¼ì UrÒuZßJs+·JärJ‹ *užéÁürHH8µkQO$±ÿ½æXõËxÈ€ôþ ¢SÏŒ™OÿöÕ ½wÆC0f¹Ûi¿ŸÁ´ lËc (Wõ°×µéÓ÷$‰r§ç9§Ÿ™«Î,XX5*ð ÂpùÄÒ$8ùû-6ø|V\cM0—½ØZý_Ú «Û¤ßØHÎxbðͪ[¯™gd&¸çÿ¿‰è¬€‰ù_×[JÖ6>³é SXo]c“ìÓü6|سòž¬ÙŸ:ýn…î{9°N°)²Â§Ï´râЬçh®‚]K&½«5è÷à Ìg´Ö% Ž=ä…ƒ¨U¸ªÇ‡ ?ݰüÝ.fWøí€¨f!$Ý!(>g•ºóîÆ Îœ™GøŸáÅã¢âÎ'§A«ê»Ë³õûJ\@Gjœ-AÕ õT9{•Gâ£X&ZleMSÌQ¹åF3ûOE—[µâbÃù¬“&®ß®ÄØŒF¾‹HÛ®½ÏWÁÞ¥©¨Ë´ü1{¿’{$éÊ—#=«ÿü6 ‹øHnÑ|šaÏ­n¶ü ¤ƒÍgªTF’åG À~ðYν©¦Mƒ;¾«í¥ü]~GaÃӸɢÀÅͲ#Äì¢ùwO§Mõ_jØØ:ª:ĤBåÖ'Î_»¼|æíIö!^C–Íp>»®Ë‘3yÀª$¶‚t…»þE¦ƒT!*ܽj¨õÔ4ý¥ôÈhúú®Ç ¯‡ ¦ígùG’#Õ …C±žw=u›ã›­LùÞeqà¯{´H-jÀ}¼÷²»œQµ¶ÿs"xxTpfOdüI[M5k¦ o$ù¼„X€+×a¯h`o“BŽÃ½ÚíÏ]*$Œ-Apöm\A¾>sž¶ç÷“ùoKÀa°ý{ zE;p}\‹a‹êNô³½tË$« Åm©‹@ŽõáÇ»cGÜTÉʪØ?d"R†®Êñ×OQäåÞdø²ÂÎøZ˜h+´æˆöÚsÁ±ïßCD;Å’á©f4~ÔëC·iž"ÅïE1 :™ câÏŠä¥ô²? ÇzhlñJ,HøvyÇa½\¯¯ŽÊ´pÝ›®uºsO $½‡püL½]XÄ‘þb)†C¾%R»±b•>ÚæÎ?Xp—vþíÕî:=Ý’£Õ÷#›Í P¨BQ>ñƒsWø$†ƒú PåSÏöWd¼–=ÁÁÛ¦÷#ÿ£ÈUYܳÈíkšVä*…0`c§úIïS>"à†°l úÒ¡ñ,¬œ©Ù½».g§8±Ø©ùCDï½P]ŽÀcª›|qÑ §°kv5?™¼;þ×4¨ ¢ÐJÝÁkâx ÞÕ§ìLë`œ.áÄ{ Ò¤VB¥¶Tÿ…Ú)Á„-üL°à›WÍŽ­Ó*ê2{Æv^ñ›!ž­¼"¼M_0(€ òCwxY›ã¦ j‰!²(÷l8Ãî¨öý¿³>T¨nFLrésd…Ðl ðèC×7‡î´,ó%œbùØûÂYO Ù/`“·‡oó/òôn€‰ÝgÜ\$"_ÏÔë(Él ÑŠW¢9Î`¿Æž¶­\“­ÜÃ[$†ÄQì(ÓK¿Ì°¨QpQ„P*•–ž¨øÛ’=IX¡B¡<é jR°ÿ€’ïàsÈ+·Ç+´ ¾ÖïüÍä–“üÙÆÄÈ2L*ŽH2ýhË1¿çü_d$R~A¦¸ðBÇ‚üGxUÚ¦Ã9Hš¸¤UÿÞ“÷h¿ å¼ExOy…[«Z7ƒ A v¦CSùXð°9l¹\qïÔ”Ä-èîÔfR-í³™Åãñ òQª~ö(9ßí1̃ʎ°Æ‰è÷M.âЮ’”£R¬ëTÄ¡°OgìÇfÛg‹¤9¬£FOœz0Ó-Qa )ísÁäL•.·g4W³Û>²|;ìÜ8uZÎ$hx+-èO[üd«ø„ŒÔcv¶Jíx €sl›/~máýR“  Š“Ìò¾P’ßEù³}naÏAýÅŽ•Ì.ßùåñaÜ?œþÈ#Ênc´hØu4ô2¨èǧò…ª©®Šöu±%.EH'é[_ж_I÷ÄJøEÖ!÷­ŸÛvR+†võ ‘h‰øŠaf]wùŸ¿áÎ+þ?t¸¹ú‡Œ»Ikpý ¤Õ4 \–]üê‡Þ?v}Òac®@ËâLìñÝJcÂ,4ßÝ5W–(†Æa+ˆîÛ)7_j–ðÔÌô·%{ˆ¹Äeù|"9Ykà56аŸOïËœŒ²ß®ÈM[KlKüXL]5¼5âÄ'o–¾„‹ÅUU£Èåø˜ÿO¤H@-Ì¡ü±¹¬&±ýW’¦yßLñëC'¯ÐÂa-MYÜÑj(À7;“²µTÁ sÏ’è7G1¼dÚÄ6Ôž i£D)´%j%ÜOÝwk7ä[©Ô `+ƒSÊÍ-CãE•¹dÍŒõa'¼Å†SŒÌ·Ç ¤ö8+2bGþm\´“© ÷-3ª[kÜ}Q¢“!U­÷IVÛál¤'®8¡\QeØü ½0’zµ‡*G¤j„ÜïÅ!êãFAÜ×.‡ìÅ ?l˜3“TD|Â_I8:]ö[I¦8ñC2?ìxYÒGEÍ!±V3A°Ñùü„iù ¼hïrç¶ôB_gž°’ŽšjYJÇ:Â#füÀ.uX\Ó8‚ÁAfkŽ¢D^Ü–~é.í=7¶Tÿ.؃¦®e„±;ï‹Øö•²R_é¦Öù˜f†ŒOoÖÙý+4ˆÍ8Ö| ­^O>­O÷õù]mPЀ/MæðÎÛFwú*´|0IðGÐÒHˆô¨n8ÿd+rOg¾ìyƒÁ-õ¨«Cªà!6”+®©JÇ« ¾['Ëü[¹q5'Ø 0•’éài¬ÁMcigý]ÝË¥%Áüñ MŒŠÂÊîäâ­³ÎpM—R'i"qÞ i1ß–ï%½ædŠX}‘Ï\ƒªˆÏ›lš}D¶ÀËŒä–h½—T Å¾Z 92ï¨r )ZæàƒMË2I³À”sž5mxkb‘^P¥dçšE@° kØ-&%Ã(㹿#§]8»jОö힯’#L€§ìŒW O„òª]cØÅ_© òJ˜ãiÊzÞÝN"3ç€32ŸË›»äk5ÔöïSë± ºïÛbßmdþo­NgCÃDÏ¿¦®–Ù üï-;4I±m/Œ4òõäˆnlÿ¬âˆ£®˜'qQà Úï´º†ÇHXqõWj·²/H\¤×0®äÙñ.„í¦ˆÜè3žDYו,0Íñ0 ? L Hvì;¢ÁëðãPxÓW*Çz|VW×þ®þæH1!.…ãhìúä6n™{Üš¡¢=xÿ9*ˆQ4 Tï†.>òÁo8î×ñúɘ–=È‹»ð‚ŠuþÚ©S€è×[Ùè–ЉºŸv%ç @p€‰jè`A8ß{Zx§Y™õ¡¤ÜüNaŒåCÕ ‘“½ ¾‰ë²PÁ11jÿ = lTSÊå”"]2- Þ‹ó€ï—û6LÄ&%}‰o&b†L$¥op%Õ¸.¹D\;(Û®cÿ‰¶¨žS„¡ó˜”;‡‹j òÚ?L®Ãb0ÿvÊ?æÎñõðËß™µ=cu’f¾GRt¹NSêÄRÆã ¸f¾½C9¡x„ò·>àP×J¤Êrlýb!Ø+Ÿv÷¢ 0ßå¾÷;'BŸx!Jz¨»¡ ƒýQHd™IÞ€Vc“IXªÏüM‘ÏÈÌ=òH½8ê·ébV_¸P!ŠÈdeV„ÊÛ˜ÏEظIH ‘.¶^ï‰&ÛkÖ,¹zMÉóLmIî&1З,ÊÂÍ4ol|€ÏJÇ;›UíBTCàxÈ;®Ã§(¹`ü!F´¼aMx‘Ïï Jˆíi5:o˜Ïý=üªØ!ÄJNÑêœt¾W”–wu0s`®ø¯´¶Š|D¯³{¾âz}ërus@™¼BËÄfð+õkf걇j d 6šiKÍ«–Ó „èßFL3¼Â7¬A·BÇbP4ÖnÀü9„˜* C"\æ1w*8ô¸Ã …éÙ4‘)X PÙ…ªê"iIµ¼[Õ/§ÕIYd_÷$ àÃÐ]QœZ¦ùºJ>–j×ãõÆ}É8=Û‡f‡0}. ÅfXh—B«<©¬ Áwž|ó>†?Nn-}SE”Òö¡Gˆí=bwo«Àjoƒ+mkåûâÑ–ô\‡ß÷LqªV¬âÞÖü†d1Èö´V$xNß@|Ù7Í<1dBv¼kOò§ŸöªßéÆèxQ)”îÕ¯•—qþPYºÎÌñ\0gï(û—#•ª‹^¨*_…¼1ãâìê7Ñ›úíÙÓ“¸Ä*‰lBŠYw’Ï% ­WVEŸš¨ÀJ›Ú'K:õR!<  3æÂ¯$‚ªð÷âb ¡pWºÕj^·mŽ Åâ©‘†¼X³{1t| T¤p§×Ø&2Cë¾|§Ž*Ï¿3a!]¬Ã\ÝEZ®ËvYÎ8Z;úºŸækV±üñÁ¨ªk*¤j6=.MÅt&ëý®MÚ…“~÷zød%'Ô¹»¸Åk«N÷í—‡¶Š,ó†ãoäûåN—Á"•âÒÙz½®.i=.€n™|p~܆}ž(˜8hìÑóøäÙî]`UWù RfÍχΚ†§yÁ‘L•®sx£‘žAž¡…UÀŸ F*§ŒôV:ˆÃª"Í×BÕÄwu›¼Ž™r•`4†§Y±¬Z*ìxºRm]ŒŒ>Ú(X=»“ø©L¤—êÑÜÁ˜ã=,–Áß°úS0RÒ”ªŠ»¯ç¶Ie ÝÊ%(ªá–W üL¬úãªøî¢-ÀT©k ³‘'ÛUk×ò²#váÅ@R^=÷@\5N{@¤‡¬2Ré“ÜÕA qR­°€Ç~à¨ḟ^ Ô›+8Ñ­çøN µq¿º[Þ²2½ÚƒxŸèîž”y![32¡ƒd/M.ÊÃl=5ìüäÆW€3‚"š§ó$ùÚ”Ë]õ.îšÿÉ¥}E²7úñ¹ªX¨f]5ÞñtNÿÅÔB-Ùl‚Ù· h`z¢9¨0±À‚•+_z{1ÕÈí¿ -»á²~â[ÜÙ }S':•’*é¬Nö? ÕŒ0ˆ¸Â°âü›¹/®V¢ž´Ø‹?%¸ãP èz•5¼>»çÍt1[–dRFÄ„ŽüƒD#˜–¥ÕÍfºÝÁÞ%‹0ã)—&«hsîI‘«T¹Ð/ú²:ÍŸ1Ì+ÓÓü6ƒ`ŒmkeÈ?k¹µ<ïæF÷B¼\uD,³t í‡y gZuóTÚòí#‚Mó¸s¥‹×¾ºŽ<~95UdÜÄÓˆ"jÅ{Y%Qó´XîSârXû9¾žÜNRÌ^ç¿K´2R»ê ¦ˆüžãPþë2ú¼uŠúY!¾@i—^MmLP‚Aç+ël Õ vë"ázKðf<ü6û‡0‚€ŽiÜsÅDrßÇÁÏSà#À®’xË…ª0½Ìvÿ¨Ûzc´7 ^7š$ª£lAc¤¡Ú¸Q³,+K þâiʳtÏÙa»Ñì๠g«õÀ§t&!*H±ÁΛ«;Ò[.©}Ôbó‚÷xõ!²f¶,¶‰@9Fˆ$3çwYñC#ü«Òü^¡ÒzoÄIˆËyØIarRM$³ÙB>—uûáT!¼ÐåˆxquÇñŒœVàÏyÚyì-è$|Ÿ²̤Ÿ±ì)Àú:q„ÎÁH5ņZ&ÁN0s50])Ù½Ñ”æ­ ){}†OggSE3ýÄ nG8rk>ÿÚâìöññöÿpÿ’éççÿöÿ×ÿ!êÞêüùÿÚßÛÔÓÒÔÿ¾ÿ(ØÔÕæÛ××äñîöÿ ÿÛñéá×ÝÜÿÁü|®лR¾nô-Zh³`íÛÇ(mÁŠg9íni/¼B›$ðßGD?{Q‹Ïv‹Ýq9ÁÚ¶>é_wäo;Ñü[é^ù [4ŽûèñÑf'R3qPâ‰Yt ^M¡Ì“Frk!8¤SL1ª€¿K:uÈh<6Ù þ²æ7ZÜ‹)`îи‘p4õÈ„½<áJùJz"Ó,X±>W˜uÞ5xiã¨ln¡}x˜òô7:Îq± •žúwm½yìnÓb~ÑcÈvU8­=§L] ˆxÀ}‘ƒŠÙ¬ˆäÄ”%¼¤Àwq¹±‚Á«žáŽ”ôÑ®›ÁfÚå, €wÖàÎö©üþ(5ŽŒЈÙZ¾e½"¦ð–Ú— ( ñ»lÙ_}‘šÍ+˜AÞ=ë<ÌCÅ0·ÿ/õ¢L'8Œ#¶±èB6¦ÀülþA[+‰B$]ît–âùn7‘­»@<ÎÀoƒeÄM(üÀ 0!â‰í)ÐPÞ<ß‹ZÊæñùÝ=¯ô×$` T¥õð»£DŠ>µƒ‘| ïEËËù>-±LÒv"gAÉú´¾¢= Dy~Ô¶™OÜþŸxO=ùŽ˜Ä“ñt®åšp1Ê&!9ueÊL<Œ—z‹š‘vñ ÃÃÖ˜l:b«Kì%C©p1Ã=:#»yètºmà°g\j¡#mõT> €A9cšÅ°;r†üÙÈ@÷&¦–QYôCIÕ§_ž:v³p)èÄbš e%æ*‰I\D½¹ºäy••1ýÛí>/`zújÚŸ„:~à¥+dõúŠF6äЫg =cݾk7-DE%ñFw·²ÌÜþæƒ÷(n¿²ÑÐñߤ³ÈÌvxZp®â:Žè¥ gÓÊTè°,Àô®Ê/PK^U†Œžù©Žu̧Å}áF£4ÁK»þõÚP©[ÒÑ­+”o³m™‚¨&ýã»eæ¬Þ6 âË õÏ|š%1K—h@Û´;%«’jÐ%H|1Û˜ŽAXb…üÛ·oÕ•ök|ºWk¤jŒoÃÑß}°&›® CŒVD IÄÓAÌçpÛú Š­Mé566!Y}8 uÄ>,ÒŒä:OH^1Z7‘¶«¸c0º´—ÑÆùÜY½ËŠõÓ¹ <Ѥ.šþ m†‡H›À0eY~@_-ÆmÑ>¨ªho?þ©q?bvÀÈú¿î<üWdžš¿Å<q |7‹¹ê†´ˆ´—gD\+äd•% Øûm{l’(¦ýÏIHe…0Î%Újµ(Å”(>S‹š¯0ôô‚¡Ã¬Ž]¼€“ºÇ#ërâ‘üÙ5*âîpc˜3·)ªÈ1h©òÀf§•93OÇÅÈ"ØŸæ’~_•â‡àöl9{´– c _u ¦)VˆGƒßCìToR$«[¶ËG—);0Ç ç¯.’õôWMjûó6jë¡”ÓJͤºt9‰/áŒÉ¶¦5ÁÕYc€ÐYI d/ÇÑŸD̽Ê%GB§1n³ÀXýQ…¸TÒø™Ú÷ÆfÀ›ÿªÂSŠ‚€\E t”²o Wh’æ:.‹‰ÒéΗY«Òç(žÕ ¸¨z_ŒJµÎ]ßÇø8Ã]4wÐm$MI~?´ŠCq5È‹PdE3}Œ u§ ¹B"M–+ jòv|ìEtâžgš*Óiü‹-‚¦ì%˜Üh¯VAt?õ’=Ÿtü}b‚ôÜÛOüSâµn9ôÝâè±ú%ª&Òòû§±Û¹ã&ä“Ì™>éy?pˆÆ+ØêY+víǺ ^|?œRçUY@þ•œ”Éa® ºpDzTÂé-‹M«“¡T׊µÄË稳l:Þëc 9Á ¨ÔNð¨o%ÚŒKRÈ·æ†9žð6µ§ÓußÑé¼8 ¿†5~m¢w¨OhðX‡,³·Í¸3—ÃÊ4Z¼»ìûÓy·à ¡k)áÑg’òŸ0I ÅûY¿nÙ®`‡ózlåÔ©ÍÙýƒÙlìƒÁ or·¡žíÚ¾³Îj_~AÃxhR/ßšì÷§$ÿåÜ„‡&ýÙ°cé"EóÑæù]ÜÀpÖ|<û¶Z[ô™3Šãtí%üF¥Ï¦ág:¬æw™} ʱmœ Ð 5RŸ¥ºüžek ”ü„,eï7«6cœ5Çw ˜Q3j] Î*ÇI´Â£œµST­¥É®Ô$=„Ý}û ” /—8%s˜Ø[vÍ]8?è6e¼ÉöìM ßä¡Û…õò(¯-ž2¢ER]Òõ~ïÈT“¯m9䣮\·-3.ð^ ¤Gˆ!XÜñ¯«Šmô: :, ›Æí.Þ]ó3†™u´¡m6k4NáØéåG;Cf{ ÿžñ%WV<<Ü©'\Ù(×Ëd‘äJ3Ä”íÌðż3¸WßÃÆ’½Èø5·ý!õ*¶ö=q•á¦mÄwã©Åõö½ üNSÅ`PÅw.yëD (N7*ÈÅœ¡á9Xá}Nm†ºÄ¢ rtÓhuˆøš´S¨˜„øž,M˜††.t¢F亀àôèûJñmý‰úʶ, ~§ –sRxÔ}=Í÷¿d(ÍÁǦoˆiî¶q[½–~XŒ{P\öê³ Ïç7EÍrö&{Z7‡|î~m5ȘÃQžB8à®6÷ k/—Õ§XZ³ï#‚d1^Ë®¨`PÕ:À´¹Érä¾€·ëÙe4w0zÃÔ[eHOç‚›ç[¾[–*ãV›GØÓ¸àÆ‚Ÿøü6¢`mƒu}j7£b7ïÈ¢ÞR¨ßF>¾p‰ÂCƒÌÎ] צQ—_”„Xe°çnd,³ŒÍWEbVé()v Šèj5eÙéņ/˨šÔ³é/Žâ8ù?À9§ÊÌû5îlš–¥âG–kKQä€&Ú¾'› ] u`M´WBÈ—:>ä‘ph<à- ‹vx£_§s´ÏÕ“¼&”¦«< Hígߘ¢äÆÅ߸ttdfTÁ:JïÿÔ®hwUlÀÀÿ¬$ÞN†§èt®Î>™ùo.3ä!ø”U ­üL¨‘ˆ§WpT§_5r]¾µ¯] Z2ío-4ʇ3=’ÖÉ-~5¬z°º¥ ^àNGUáKUÕD¼¶*•¨3¤q)£ø‡Ôk, ¨½ÑÜŠw«[ ¯˜ù+ɨš^Vþ_H«01cFŠÕYŒÓ–ÉlŽPùIÚcŒf©ÅÒêã£øùÛ~!xCŠ]†¾€ß”H\ÌêmÖç1»Gégðy WtPÅîanö>Ÿ;ÂV‚KI7D`‰_]Sl.³×îÌ>#Š"FfN¦ò£0›ážE– Iƒ/Û%a)GfÜÚd§-2¯áøÍNPäYÀJÙlü4ó‡JGŠž2$}º™rzí» q¨îï¿U$“¶­9 Õ¢ˆaf®Çê9Q Ô.&á±Bå[ Ó§9­8gUK؆þh ‹ô9×R•s™ £˜p-ò¬=–¼m¨ñøåqf¾Ö½úd/Õùà¼ñ‰jHæ¿"è*v ùÙ6|ü_¦Ä·Ú$`o9K¼HR}ËÁ x9pRÿU-Ö2E0îÄ—@ó4þzO)µS°Tå¼LTý8³Âõ%yxþ§iªyPQT´¡@W¼k¨#g?„XîƒeW• D_¨fc”9+ÿí´À'ƒHÁ‘súü|­YÓÑ €ÌÉ…Nhý¸ÕÞm®‘q]¼¤$Òôa >¼›‹íªàŸÆX~©6UóG·…ôåD°g•fvÏWö9÷ÆuÇ|x!hHzö®/´ ¡*âNH ¢Ç7¥Ùî+nׯÅýñÑe©!åicƒøó‰à•y½]0g€wf;<{¦ìkÝ=»Ml,d;©ùì(Ô}׿¹ÃmTÌǼ6èªn«È¨ßHÿþŠRz‹Q½Qß‚:ñ³+Nçxrj¿4Å+Èá”åµÂØ#®|vhášö…‘#¼?¸kU¸^/¨?à7¨¯&S¯#»®¾cŸ£mf}Û4‡ä¢|[`ƒ¤cH‚“.±ŠÚ¡ ¸^ó7zs #ÐÝn ¡êDÛÉÄ´Í©=/FB/.ÂÐþÖp×ÀˆÇ¶ãÉtì-Aüš»ÿ¬¯¯•ÚÏÛIÝAD‹Ä›ü„¬Ý‹‰ýaQ¶JÅ¡ÔyS)úÚ„sùób£“[íçŒ{ÿ1ƒ*DM‘ݵ7øÜ€“z޹tC|U~Î(ydÃuH|Ð3žÔhr7NeÆÉÚ D(´~—ïïfÙ²"ï €0]`a×ý4ÑŽ›î«ÄZ7¯•†wÎüX‚“×,zgÈ7 󽤅MJœÌó.$:|ftž%u_̹›\üÛ@®fùðÜŽÏãþÍãõóß4Ú…@0ùñÏx‘U—íˆÿ»7P)y”-°0÷‡8oµ:ÁmpO’ÊïÊ«Øp23ú>+ýV½-Ê6–s"#6Ù…˜yì(ÿŠ@2«4AÎj¡qgônÈä×_ŽÃ!&eÞmO\ªä¼bÞAT¥ã|&Ž…ÅhÔÉs0‚»Deìª. t‡~#9_A¦GŠ}¼”7Æ*Ê }ûÿVÕ"ó¨A Oh3‚±7§ 6r#¾µ#ó©ÐÙ¨ ·Ÿ¬{2vq²ýfÆgcgÍXETŠ@øÔö]-¾U°áãW|‡Ó^†Rü„ne£©i‰›[ZXÑ’—S)‡‰ŠX3àø=·ÜŽî=–:f`LîDâ¾¾A]"܇Ï&ì-j­ÊXx~É\íðà ¼Ú^›—á†Á¯š÷zeç°£pÒÁŽ$N:t¦c‰uŸRáeÉ<ΠXLøµA³¥1¦ì/ÑrG®|=\º‚9µ3àÃðFìäÊ %uíö+î2uüÛY¡ø;ßáFoôëpÛ•â¡)äUEÝÍÁo!²Xêu9BPs/ÉNI"D~Û ^¦éH2Í=ÙÙéF»§ÔxÁÏ\Ù¤œžQ³âüœ›<üX¶Íí@¯˜g¥$úSqX ltôf£µŒµa§¡  "8mÍ í¦ 1˜ù~ÅDbw*IM¶*æ:ãœGÓb*¼º®|£7dA.Ïô¦FL/MÈܼµÿ†QÓá®GuÞqGMXp°²XI11™„’–æÝøàh‡>â»#íGJ‚¬âãT}¤"úþßÅ»ð *Ê|‘! òTÔmû 9¥³–¬‘ª9ÄÜd¹a©à ÜŸø£µNíÚ` B¸+<+€Œáì`J¡mÝp¿ Cû·ÕtØfÆ?NÅwŠü6RÌwh×pab«é½ŸS–¡þóTa–u"¥‚ù¬É4A@󪱲³ŒÃ<ôoTuJÝYQžû)Mž=šÀ¬­‡K*gºs„¥ëËœ ¼$¢Ö—Ú0w©.Ÿº°ÓMš…E v$3­=ž1ÉÙc ƉµÙüñ[éù½Ûõlèû™r›KKçU4DPõr¶e`bPþ´äâ–alÅ6ÅÝ!L`îYÆ(MèòêT >”Q€‡ÔxdwxaõM²\—ã;’þeÖÈ&€½ºi>ÌšÊäõ†Ñpþ̯‡—ŸÈó–ü¯ü±]~2s@ø5¼”©r— GqfOà #²ãOqn”5piO•²Hˆ6ÿÕ½óV¿dc¬rgLg+̈†ãÄàž™J|:%²ÞðJ_c,4ºÑ§ã”Õá<·bÓ@¸tTRZ'2*4ãs<€ÍîÈœNÿCŒÍw}$§PôµÙ1Fée=yÃ…oâý;ØZ%/ãú‘ˆ‘Ó«'œ„ùÓÂÏØÊ9P…8{w[‹]tRrÚˆ³k¿,#ÑÄ÷Ø¥æ¨ó¸q™‰Ýú?`m6 [g"Ë(ù.¹ÿ¦dÖlç3¾-h6Û€­-6Hê”Uo‡è†ÓüM2 ¤Žx‚!zìîxL¶´¹­n’ÓçK=“·(Ì>iW„€j¹€Ó)±š€¯¤þØO¨N^ª˜éñÜ8šŽÜ^¶Ž•Æ"Þ~Jš¾Žºß¿>m"Ü o¤µs…Vƒ¦={¹”ˆ¼ÊPùBz¤¯ÛoŽM̪ûŸÌÈúÊ VùøèZ¤<#BÌJbØìIëF néû cFVT‘\µ~¤lném†0ìø-cì÷ÇZ< "š©Bv‹b}ÅìyGñ–™—ÞÀ¼@á©4|Ü/©.ü7» è×õìoPÁVXÞÝFhÇ ¥¾›¦†îÂ÷Yu½q$R:¾çbÒü|­ Ã[`Ú8¸Ɖ‰÷€‚­ûEj¨g» ‹²42‰Ö}Ä•l1 .Ïe-eU”4Oß:ø´4mN÷‡ ôÚÏcÈpŒA ü<Ñël’©¹RmSI¯öÙDï˧é…ÓRÀH^«§ýÕÚbñ¼ìH"½¨’ŒÉhëaþOî(cyä4üÆ»žáTC†q`ºuµü¡ œ Ø­zð4ÅÿœÿäãlŒÊÜH]íÚSI[K‡)@ôþ_vl¸ÐÛ¯»DBÆ¢3ù\iFJpÀär21ƒ5B~_¥BÌ>3WöjøåcLÈKPíÅÕîNÓù¾´­oS¢˜¢FŽxÙôCžKí¶ŸPqØ.lZç¨1ö£ºíœ‰Íš’‚?]úÁ„+Ì#Z,+n!½¹¸cÕ  (áô‰n`W_¨n´ùhí^éG?ÑÙÿ÷œJ¸’_×q{¦Úãió§4þ'!]86)nûýÂùúþU¨Iýi¡ƒ+!¸D˜î0 øÃbH9ؘh_Xàx_üzðQeœÌæbÝÌïc.EI¥0*8Á¸ÎÉ:åØíãiŸ±ÈYó-xÇ´æmíýby^’Z¿ùÊ®ü/RBð<|œ¯-^d濺àÍÑVBaœø!rKEÛ¢9”ã· #K(öµßI€ÞVŸ.š¸0x®°:h6(õkª¢W Öz͇­c ôLˆ€:S‚ÌØö¾Ì]³)¾DåÍïþ'ëK…P^ó1J‡;d󮬕žK1o„ìëþõ{2…yëMÕìì#Stº êtŽa8˜c¦—ä°ÕtíözÙZ-vÓ·o¦„ÔQvpºþü6T9 ¤ˆv¢¹|PßLªL1Ô|û#»,²‰ #,ݧBkÆcÉÃsË[…%v×:Ü—[=qÊûÙó´TßЦN›áQIr\Ë[}ÃÙ´*ï>}Ÿ6ðJ 4Üíc² WO»…ê‹ÇÄ©Øì ~B÷~—"˜Éç® Y*­n|Ïœú3&Ñ®·zõ¡îÙÌh[H‘k•íg£„ò'(5c‹‹ÁmçjI¶ûÝù3ï ¨·^ÉfËïâTËbçÅp0sö› ÿÿÕ<€5ŸuùšGüL°‘Dýã§Ò³j<.î™÷d¬Ë=ƒ9gJUK1…*ê¿Ðõ$4w×pü§¤-B°«ì†_#PštÒå­K†S¥ñ†íüR5¦Å«• )hž ûâ½ÏA6KSþlyüw­öý%qÇ7TËžª²ƒ/Lß§Ï¿WÐBÒ·#…ú÷­NÑ4¸½äFØ6ÒG~ÔŸ¼á·í…Å‹È ýûÔH½¦¬ô:sk,´{HÖyêDÃùèD$ÎÇwÖ¤_Ѷ|™¨¶_ôúböÀãüItæõVÁÉÛ Þ!ÅiæÍ|=¤#J+§ÚýE¸–ÖgÝú!P`PÍ”35N²ý‰ki§hRäSÙÐÀ²Ç·ui°ú 6 ·=<í٠ݘ~„\Ûý¬Ï¦Û¾òAjgìÁ-¸öÏǤÐÑIR΃¬|ALöÏKÿóì,ù¶KÙlfm=’Øì‹¤U“ )ä sOñZÇ”„ו4W ¦èz¾°t×±¨s7ë}ÝÐãe94EelÀ¾ó…«'(ÊC¥(`^ÿ^ÕúüJ‚—KŒ­S˜¡Q BGÙµ*)»SiÕ«³.»‡ 1¼lY¶³ta šÔ“^ÿO=þßî ü&a<¸úž|°|.Í„òÈ2N=’W~cà-ˆÔ |¯{’ò«`è~hÂÅB€_ÕºP¯Ÿ}ÞOÞ´–bRëºöTÌ÷ªêûÀÒmÆ„ËZ*‰G½¸W˜¦±äÃgª H=¿Î:Ó½QG¥Æ¡=kÂÔ(̬ü|šLädÚS¡Qp<£À€Ý ìFm´Ÿ._§¨°CðSòó§S2¹H9¶°Ýà/¬vNž·§Œˆ·èB(¶R•Ün–ôïJ4ñ¡±„< z ÿ©Ì>u™Y†¥¨}$«ÝЉS(,eªX»IŸä‚(¶«ÜÉ4rã% >I=1Ï=OK²×Á~·ëäH%Á£Kùì³ÔGM–”c²_6Eb%ųî³PÞ{£³©éU×-ÁÒh€>Â\EÉ+Ic~†„n¨El<ì’Q¹‘lÿ‰ñ‚†;*¥z„p¥“mŒ¾{¹°÷‘ð. ¤‡çä<ÍÚÇEY›sZE¬»¦¿¨ÿ™Íc¯ýgHñèèwÛ†¬ÐJ€Ï›4«‘n±b£3õ·¹oÎÞ÷Ëvã+Ò w ¹b…!oÖöÐÿ3SºeVòd0b˜oŒ¶„Ø®ÄW®Áf†òܶ#ÙõTŠ \vËÄñòéÂU¥c³‰ˆ¤ÄŠ÷&r¹D¶‹J~ BBarõ;DN1•â©ÐÌjhßêDÞ/‹€;ÆíAÊ\+ÑСD#>xNö$¸[Ù3´n¦¾ÂßF(¡îæ&Š(Ÿü}a!³ª!PǑ慠1z…ScI÷2:Y“ôx”ò›hñn3V£ÛzxÓöƒÊÎÍàf º÷Í.çÆõ99 {‘iuƒÚ$ŠÿÑEí0–tòÔšEåbpYOÇ®rîN0œK¬™¬/ê3“›&;þï°Ç×1ÇQÀ$'çP>»t8Îáü´õ§A±íç½ýÂILñ€ÿ‹ÈÁ™0üÉP¨üvšl¯ÈäŽ8N #v%™æëYò×ú6uX=¿%¡Å~ߊ–¢1M²"´«Êž÷XäonnÇÏŒ m­V;AØi`R"7 -¯§ì1 ‡8‚‰›Y%pÇœùÛ¶dËzõw’­ùÅ·)¹ÕÄÃûå4rÙ 3ÝjüýÇvó´üM(rÜt:õOÂgih˜Ð šÐbáõº *^Ñíé3ö\©³Ãû¶)qåKb¤:|€]»`坯X<ˆÞ)¢×*ÍøEû!^ D—ïG.ì5ˆÀx(\Ò©zÒÝ ’ìã6æcuèCM~t’€OB{_å"šNª{I–’âü´†Ì¸òLÖn‚WDGý_®ÔË/,5ÈÔŸâr–s’'êÙ‰ÙDx_ߪ`€*`;_ºzŒ–º*‘ª‘ù+_–‰¯ò2?ÛYødS˜`fWÒÈüMYÌl’LëÃdp±¹»1 1l±äBHtÅ_A´;`n-Îñxɲ\æËõÕÌŽMJM\!XÊç´G›)”ÓïNÏ×nb–Tøb— zg¦>Hß\êQ[Qˆ–fô­óê_è⎠üM{k¦69öìp8ƒêã=-Lo‚Èî¥gîúª/Ð,¯T¶kX²ÊNSÞ±=kÞEYÔ¤Ýðñ𥶊®·ŸŽ ImR-:¥úgÏÙ'Ÿá‘÷ÐÙ»‹²[,i©Yx¤méÐø¬n¦¢;g?oÓnêTDó=(Àâ×®ò´ýÈÐìÊ¢ÎÝ l¦@Úòp`é3Oµ6Ș̭¦ØwâP 8FjS•©‘rW#ÿ„$.A[.E,ç»èÏo¬A¤’ÈÑx7÷xüI\ü`évÀÉOºah•±¶î g‡§úqÒò›-û=#¸!Úÿ:5? w÷R9™)~À6Ÿ¡5`w?3¯”È£TcØ¡nßãÅα k•wóÙœúá[Âßz×GècOM”¼ÓLÏç ¼ÈáñH´iÓ“Å—ØÍÇòTç 9œHâc¸}E;Pdѯ–Š›d )TT)x_ê}Üv¿9àŒeœDŸÆõ˜ÄÎa¡¼³BT}1kcúî;ÈdA`°6C]¢:mô_óµs@ÈO­ÄsÿûöŠ6à~¡ãaj^üL»¹ïe•Pæ-tî ´S†8¯J^%ŠÏ¸ØŒÓæ‚£§õàÒFÖ¾‰(åœîÅÝœdÖU™Øjû’ã Ë¤‰ªð¼¦ˆ_GÔzÕ5»zNýÞ tÍãNÑXW •ºDìÙm–%ÅÝ´ï#ŒOÈ.ÌÃáHŠße>@Ã,\Wa¯¦vê¹S«`²h’†YP•&PªZ‰~ã¿>ß‹*¹J7N)þQªûÇ oCÒ &—­';+ÍŒ8‚D¨l×å qï´¾¡}Q òÚëì²G8Œþ4ÐkŒüM(mÅhT Á;Qýà/ìI‘ýê\Iv‘$nóÞˆôÓ”iì/! Ð uà#ÓTÁ˜!LÿZd¥'ÜTçm¥ÙºmÑð:C9…ùJH­I`#4>C–ßy¯ NUîsÚY¶w ‘Èlç{fìêpU¤a‰*ë§7üc}UާáCœSšóQ#eC¨¨nSYƒø¤eӭϦ¦ŽY¼¶Ã£“¡‹e>§EÍO&é ¤kùEsLˆ€ iÔ ãÆÏ¦ñ0j%šÌïHþüMUý~_s\”á“(§€ÏÄ”@:·q6Èn!ĸÊgÒläTq?³ “|ÿ~TÆùA{ÕBðý€ "ã›(5T¦ÙG +ku„|j6Œ´ÿ¤–½(Ä3mmøyJuâFw{ÐÅÆÊOã¨`3EA ª9A#ÀøÆ%ë•à ÅÙ×qQ­Kw†·»‰é´ÛG¤´JLNáéíq¸ÛZe¢-=ÈDU F¢ y^˜ u´h˜¡°Þ&Á) Ê5¥a¶Ú],¨ßʪüVúüLª¥?1Óü|œÉå;Í¡Ö`ʦ2}`þàw$׳d•E€S¯OzÆÄ·ì8 ´”²› ï4夰ù ™DÈXŒH¾R"À½v0yì<˜à.Ò 5V/µÔò“]Ç-e¨¾ì`äW‹~3‡aû-¸¤ÆñÑ…˜6ÜÅC¨§bÏ·¿¨W¦KÚ´ù¦_l+äŒÔùc¨bäàv¶•!„M¹N9«Éšî§3—´èVà;³€åzXËRz¢ãž0H ýÀœc%ë§coÿñ©Â!Å-µ«‘ø¶€y vâ£üJ“þWâéŒãæ&ó¥K–iUðÌÓ-»tJ¯’òÝO7]Áf&@Á›À’$KÍ6âÉý†Üì©á|Å›z*Ô<1±õá&¥*ÅÅA.k«}ÃøN¾17Oµ·±€Àyµ®Â&€ŠÜ2šó¸*{º#âªP!ö¥4¨_ÂÔ©¦Vá ýsHwûžÿû{Õißæ@™Ó”Û¶BHœB *–¢îhÑê£iy*&_%+>j÷AjDÛU¶A¬â;lïˆá±wÞáeÈWðxWQÇ…Àm7>*.õ›SûRÙÜÄ:;ÙzüJD%mr•Fx²›Œ¹»Rjò¥ï~Z{˜˜Þõ…°ØÖUîTßÂôFâËÄã$½þ±¢âÂ*4/ùÎdÎf‹:]œZçð8a$”i!°ý!µhÚ°š©~‹Ý­;Ë)ÔÝqªG¶‚lL››µ6ŒÊ8ÇÀÛT[;:æ} øqÇËùp·T·fC«®WÚ•gèè8{*º51šÇhûMZº…e€Šýmr[®–Th™_Ê“„Ï@ûŠ$"©Là>óEs¨^àÄjí=›6ßÔV äÖùÑ ÈhÔ\òf¨ëf²·é3`ÿE„…™ÚüÆ4xžç¹q®&û[ô[G€q_'*ÏÏ4,9Ÿ†>æêˆ“”ä»ëoÛ•6£K}¥\þ˜ï½âšÇò³µ[Þ?¼UKÐðŸýšÙ†Fyø¿PþMwxV=IømÁ°`ñ÷’<r‘º,UÛ+×&ti 5*¡Àà¶N˜V"dW¯¬Cm¨ ?)Þ?3–^¿Å_Ó\¬.îiø¼â µ™ÙžDœäIrMÞijjÅG¨ZêPBη9:w-uçâàj€†˜ÎC½7&hëŽÈÇæQÓ†á³>/6¸Ï‹iHUÖŠa¡ÎÁÄÚ:x+]"gY¤wô’üL¾&hœ·2°Q3kªjDWVý*uÕÁuT6@ÔmF¤Ý.ígC5qiü‚ƒ˜Ÿ;~áò‚IcJxnŒÔº<¸¦}gSŠBm@Ù€ðhXiòò˜çB ªø]±R£ãApTmXkíKÆ(¬¨.‘wñÜv‚Ê>ó¨î0E†ÿß½>ùôá¾U_²z2¯ZÂóc±°M¸¿›è´R¥¶7l€çöÔ‰·úR¤÷Û›°¤šm®«FIÃ#KžB5ä‘]p:„#…ÛµÈÅ–Ó/ñ½½p«å–d­cf$ÇH•Ë^ªþbžVR@gýÐ9ØTèÜ-²É ò]y Ú˜ÈX ü|­®™n¶ªº­‡Xäö«½ö7>\£Â“§(Øñ¤9$ žÜ7Èæ²›ÙÚ];J^©Ù>QÖxS§j¹Vød/5»èÒ£ßá^X%.]ªÖ¡#â²üå„ÒõA£]e‹ìF€ 5' ) Ê•wHòPÌ6ýsÖöò¶vš«µ;‡ÖÆHNk~ sÙÿ¬[|v2zé•ãú|AC‘Ê›·V!ö™d6 tyí?UÞNÜh›‹,jŒ1MYõ¯‹C¤¶,ƒªD_ÙZ™òB™ŸìlÉ·°†À/¯IŸ„wM¹Ù|jË–Íú*€ß8ã„Õ¼â¥-ÒdXg™òxÜXžç[J!Ó?Ÿ çÝz! ½ÝåûxRfGd[ ®‘eaìPËx€ÐwócýÕÕõ¨½î‚ÙÌ»#`o¾¯Â7JÖ42=5©"fáRãSÌíó!Dó-P€¿êà#Wøú4¤0R#+†¼.¹M÷±÷‚?1(JÌK®½!å©Öìåfwã·qüIüš$Ôî‘3Ly›ßDÎëPÿA—s¦Ñ ?rÍäjpo“ý½èG+`ñ_jèÓý·F¾Ñ¶ÖoÈý!‚E¥ãÐÈ´!ÖŒ~S\Ö¢2[2 ’Þ5¬*ƒ] ;g®_GëÁô4¹]MМ¬¸a¼ cÿ_ n„ã–½O¾º/8xÅí[)~¢Ï.^€¡ý˜½rÛ^}C_ÛD•Çÿz‘EÚ»SñÈâ¼,@©ÕZŽOQ!ÐõQ ËåŒê¦¸Ü ¯­/2.FK3 Ö”4~"H¿faàïÏê€âüL°=|‰C—6OÆŠ3€\YÓ:1G *YŒR[IÁ‘!yæKú¹( LîuÑ\¢…~›mVdIÝ} Ôª$&‰~šî¢îÝzu)Œ ‹8=b•ÌÜðjÁ61úKrï¾ÖðšÒãoÌFÓ4šgÈÕNo0Ç~ý–Úæ†ËL%Çhæ$ a# –’Ð^@vÀôÐÝa« !–uŽ›~'Jw:$c#¸@Ô!•!Šû)qpê°ЄÕ:¶*‹êGãúj¶\#É‹3T)ÇRyYñkâGÚ üIã.–df¬~Ø›«_mërp$ °N!üÎJ-OMÈ“ôª¸>T<žè_)ö¼¾EiÈ΀½ø3©§ær`yÊQ޾²þøOÙÎRÜ/í‡æ­ë'× °ºkcásïcÒÉñ2·²¿-³Cp‰1ŠÍÀM—J §'?äð<§»:.2˜Š´q=Ã^øû§…À«’‹¿Ýa)½l½ÿëÒùFÊ”±YLÁó¿ÕôñÝD`ï¡™¹d¸ï ZëMÏ%²Uó }/Û eJ+,”úÑ¼ì† ztÅ ¬Ž{üJ l,o½/tX¿fCÀ'UPiôt°œñ>~CÞ†jÈò1ç~¹¨·¾BcJXFO2ª‹ZÙãÉ÷¿ã`hðI`ê=·âìdZسß_±†Ò ¤BväL!gjر`hSRQ5îÍwµ-Ã/§ÕÊ„·'d…4¤fYñk¿“!@)/C¤¬® *9UQ'íÄÐ÷%pa#Ú÷T¹Hì|4YÛàu³©¸5­»Ûõ~ñÔ ošîÍ„úöW#I›/DhVa®åìÀX‘RÿmmQÔúcü|­$@k”^ÀÀ_:~p! Ðú(˜MO©¹ÍÔäWóÕfI…oȽqnVgo•A€÷@.qÆŽS¶a¯S E+(œÐ臬– i¾üe¡è²i~d?à°Òcè¿ í+üGrÕט¼¨Šv#Ù…ô¬Ô Eäþ_´QÜn—Ö1ÝiàÞX¨åMŸn]V寢Ž(äHGx)ì›Ú¼¨M¸ŠØ‹‚§ºqøq„KWÞz®Œt ï:ÀãÏ·Rëî¨Æ›w„¼ 5†FÆüt³›âÀ0€®§Çp"¨v|ÖÑ"®Œ4ëh;Žví³P°OggS€4ýÄ nHÁ“o¿;ÿ"ÞãÝâÙÿFÿÝ÷öüþþøïïíõñÿËÜÝÚ×ê÷ÿÚåáÞÜóþÿÛÿOûóêéðþ÷îèæôþÿÚÿHü|¸5èB$’.a§—ÆêmK‹ ¡Æ"ƒÁHSŽKeiŠoMN²U÷¦Ã^$Góo³ôab¯¹Â·G¾ìHèýù™å#bÒ¯-׍è5¸¢¹ë"4 úŠKvâ©*ÀŠ+ãD3"ŽÿJõ"Oâ¹jrQŽZg¢ƒ¡ÿcA¨çêø˜<¶ƒ# ¬ÚÚ9ãÂ4c6$=ɾ¯úîÁÏ"‘Ø}«¥”Ÿéj@×=‡xïžÿcÍüI1Ô?AÁùqµ©i!)n}âðŠýÒ€°0I‡x-÷ÏfàüJ5’ÀéÜèâ}\c18U|-üIPé^ùŠxêªÃ[-œT[i²rXIsÒV*`¦ÃƒƒcŸÅNàðã6Ä´²øfJ#Ëý;u)TVÎÿ{hZúÞT4Í\ÝxF¥˜YŠÛ˜8?¡úÓþÒ‹A¤IDÖ%3ÈÕœfŠ’Øœ…<ä´pÌ7fÍe±êTÈoI™ Ë·ä»;_¾—#—$``07kãFV£rZŽ‹“Q¹$ç ³7×’œ8„†óF îEIzZFö}Áç$r‡ÎNûÕµ1jüñ ±bq¨Œ>Wÿ â1ÖKqñ¥Ç/hù©Ÿ¥x[¢úyßrÆœ­ÞÍrÎa/ÆÆáþ!wíòmTÕíÑse!àVS„ÓO·JÀ2ª£ž¯@ þ£ë”+‰²äÖÛ=0j•KL;Ë‹ÀòxPÜð©5}^c-ÜR+2es]orUìYk8ï‘íØ{«*GnóçBƒˆ8Ù²Ý+B‡ÔâëµxõFðÇ—ÿ$xkÐŒDèR^“ž§ReùmÊŽ^ gŸFèû5—Ytñ’ :¬Ÿ ¦v2‡üðë¯ÿé§Îñ– 06Ÿü²—òª§Œlj{er“Ö+GÅgÓ@2BŠ`½3YX†?!nö 6˜Õ ·jPC¿iä$¸ï|±QOíéâ2Îì’¬ž:”âa®ÂàxÝÂînÞK3Ñ…ðû (’–W8å?ª2,%˜þdcsj¡~MEÎ=-5b¯ª©§á5‡g#®TOs=Î6ëâÁüI £tF·¹PIæoÀ ^¿g•ë1|»I²&úÚjеÙhÙÛ¯÷Êý9~ ¬$xä°ºpéÇ2¦TIÄ^L«ÇöV÷Ý€,¦Có¸òº& Ó›ÄNxnk—¼Jp€ÑëÁ£y€Ž-}‹ p¹Sdt˜ßüLàgø)0µë$38”N{;)Ó¬Ín‚œŸç%¶Ÿr`|Eµ¢^êLçÚüƾ™äŽê—*1h]±Èr d„%Qô¡áý˜"o¬‡“KE›!xf ­!ç²…Î6_‹(&eM‚Ët½0T~wXyçkÞ/™%M(S³á 'LÍÝ1ÊþOõ¿#’mTÙe¹…ž[€“Ž`ÂBk:M€w=¼D{4ô.õ¬nz Ž®ažý}öÏoE ZOú]4-ä`ÉJhµwïàaá(CxñÒÑÐ|´aaƒ¬ËÕ8ôzª£•8’ ZŽwü5hÑU@ÂÏ×$Ç$Ô]Qa–ü’Ì"¶H…%ÚæyÊî>¥¶ïcÏ -Ï€ˆW•mMùàõZL‹3lÛL‘½Ùù`¥ ÐêúÝ­±ž öj;ñªv“`W]2À7½ó+àk8üM1÷mZ:…=Ÿ…ùM…?·.—Ù§3t¶ùVxÐBKg¶7n/èÊ«TGÏÃðz íN™Þo©KÏA—žº.%Å&䄱Ãù"¹3<+Lš'‰¡Lààüe•¤ËQæìY¥¶Àž5*Îy‰è6vþe£Â[qìèh)²*í8yÚSÁìüÍ0C/x„oÃEÅõ|ÆW†`ž|2ú—Ò×þ¾ÍWÒ ,H8 FH•R§ëJ^«X5³‘T¶ñ¹bˆÞõ:ä:gy”X3›Þ•AJ;w14æ=íÁ¡=U„W3‹-ʰd.Ûóz[†~SûSn=½BêñßÔYÅÙüÆ.îÛ+-(ÕŽ¡‚JìºAHâÙ»»/â¶53‹‡2/ôÚËRVišýËú²å8]?â’ùíO?{˜GˆYr¹…Õ®ËN‘P…zBÐuÖ#ÿ¾X ͉õØX„ò]fì Á”uu®¤„S ‘ûÑüfÝNçø.‚j y)Üt3óO›¶Ç²ªÿ"H#§o™Çš¸je*AˆRWŸlúfÏ&®S:•mɇÅ ’£8´oseÁ˰ʴCöàÜ)Ñ^ô.ȳš64ò±°®1솴Ãaq¾¸“=T:—ãùñaP’E&÷QZX2tý3²¼qº˜V¬ôi¡4 ”¢&Hà |oö½Ê©p»½Á+aói—ãÚyüeÊNžma¢¤ò<©ç“¾L˜×£N8ÿ_¾­Ôð ;´9›ü7Ì_pìn/Á3ô¯´ÊñØÆ@¯Ìíh@öʶ„3¦íA·´ènÆ¢xSL[Ì'Wf`YWlŽóë3|㌛‘Åf!DÖŸp1<ÝüNKûž€jy±>Jë:{’0r0j´³fÆÀö ų:8†àš*޾ÞkùdÆÛ?‡XÕaö%×cëéÞ´[½%ŸÑ½A§s…§£p‘-ÚêϳYÔ•³:‚ÛàoåÅè]+ÃjS*÷™®+£®w÷[ÖùæÂa}«´ 9†ãçpSeÞíIËn)ÁÈÎzÔ¹`seªUy?ÄSƒü”•‘Oö¥ƒòWd0ÐÎçͺ‰eT‘KI ¿úتÅñ:ÉŠê¡‘;ÛöJ½á¹œýtàQ•kð´€ïÉìN¡j6ž|»&Ï½È …ü°ÌpUH^F©²ÆØãoó$¯É•æí¤¡-lo°êËå®9«PzÚè݉s/|*  g¦2ÅÀèµ!úטóz.Ü-Kº†s¸6õSs h_èÙ*LE‹ßYyÅs‡A{îù…í„`c90ôI×KÕ¡n¦dLUªð}†|Ü8÷ O4Û’ƒY ´ €º“5œŽ±mmÛJÅØöÒ®ä>§|á‚%4î8U€´lf;H‹KŸ9n8„#ûž¥ðáŒ|Ì—&»{?Ä&\ß<Ÿ‰Å[{vt¸ÇcYmýdJœÅ]Xv¯X¦V|òœüMjÄ­£§@ÁíÙ› eê ,@•ÝÓQç9°b£V·¤D=žB¤©5-U3€}Rà†«"¼ï#‚NvËØ›ÁD×£j-N€…ï"«SSûöhq§ª*žà±©/Þœ80lŸ©½ ð|„[Üx®UÈb3|ÉX* ü3¶5J¢~F©%[„FSs¸óÙù¬ r¾8µ3Ú3XqðB1tÁÉ£W‘+Ç9‡ã©á<¡ä–7â-§¶€amµKûšèYEvoÍêÇd~ƸÙ5úlQ/e–åãòRï}à”‰¸Þ%žÆÓüMj¿{4/ÈJ )»íôóéôõ‚B˜÷ÈXX¬d(örCGˆë;w|@h‰’£ðs¥£»­^é1ôÿgë¤Lª“¹‘_ ë_Ãó Äóüî*_TKzëg 7R3¯Ôïrpa=aÀ]k¼ŸÁcŸ¡9ß+7´€ \  Õ‹²5¨í.î%SN÷ø3úª¿¼¥œƒ¬K‘ ˆdNûËaò°.cv9dÑŠïËc=¿h®Œ¤HAoß.hÐh–Z[G^ŠÑû£øG&hž\‹âŽ¿oAº)"ç¹9F¢ÊͤT%½Rü™>ggAÎr ÏÜß_ðRÃÑ“ó€‚ßÌÃʾÛf·W"}èÕÍ‚ll×mlö}Í_KWŽµÒœÓÍyPbaV6ÂËké^’l;7B;âõA©>ÀAˆ@ž†`‹@­susÎÚ©õw‘¨ñß ›QOÖ‘yñ^8qwc¸_qü1¢ÑŸQêìÉ´„c¡þR¿5Aé_§}Èa5§ð_W?i„y‡˜ây’»‹%§]ª¶‚9ê/´h ØþvÕe/ d«³—öŠÏ%ãx± ¹3ù>ÄrZæ¢ZàL¾$K^/{ûcŽ+óKwªã”øR}˜ÌÞUu;6O ,ˆ IéUJa³úÞC×´l7P>]qãPsíQH:±¡ i½êÂ;4ˆÐCœó ‹™û0ð0m)æ¤àL Y¶puÊã}ÑÞ§¡`™åNÑüJ!ƈ:ú̱«H—•^ù­ÇzμòRV>™˜õçLö}öÒêîÊwpB7@UêG¹ž’ÆT!›g,ú–È E›a°ÿˆ¡b/ @…ǘ ëŸHKrrZ¥-3rJÉ8m`5­ˆ×w–É((Ñ­YVƒ6 Í)¬P¿Õ°q1J,:ãr´’®çéHîbü?sò\}j÷X^îtÖ¿Û·*1Mq£¢›·4/Ô»ɵpsÉ™ÏtNÕOG–*ÚÔàG’¼µr%è@¬úŠjÉ ¥.­VèoI?üIzñgº¥f ó<“ìF>g¢ôPX7…K݇¥]û:ØÎyuü@¡IÈc~wÓá~ž—9××-Æ_‚Âu8Px×&ª±£ ¸r„¾×ðÕÚ! ÎNÍÈcøŠž¥ï°~k]#ÉȈ‚2޼ZLåÕ‹‘B‡~ôùrt}"[jçÜy阣.be{•—y·ÇΖ|é»;wl-* UÕà ýûŒFf ±ePÆÖ »áEPã!$!Ôä¡ûœ‰.8¦Lʱ¶á@ŠÓ)4Gp#×5;,ñüÆ1qÓ"aÀÀ2I.utûË^ ñø63—ܸh—J¶uuwýæR²iprŒ!‚C\þnºqU¥Û‡³nèÅñÙþ ¸¯™~ÇdŽû¢–uæûàÊÛ)‚ kÌaPÕçÑUNáDyãB–ïÚ¥÷Wx+ôñÍ£îŸnÃdÉ$j½Å{Í4Û"øµôQÂnJh°Sa¤4õe ³kV9J€v0 ëìɺ’Ah;s÷ÕÂ(“®º-à¬8×[Ô-|XþÛ‚6T‡ó0±¦Ò¹_Ç4]÷'›u³üIz–·#÷‚y&Œ°fXÞO´ÅoFyŒY]ì”j½¬‚+¬£izqúƒº:>¢Ú# ÄÞƒ9b­ÜþAª6û³¼á$63œn®¹KÅáz]Š^ÙAªÊ†æóäÀ&GĹ’Š}#s 44óÃÌä]b]d¸ø§‰æ’ú© KD‘‚—2ZoúåÑ08í7 ³2 æ'&9¯Î?gSâ+ÿ'І–ÇÝe/¶åˆ¼#*ßWÅÅï1£>|GG$šó„UÎ\”%ËÄ%^åï§ F®Sh¦†VÃÓÖù>­üJb¹c±ŽÎpVÊ}Ɇ¡g>­ Ì5T<±U‡ô):LB7ñjÀ²ôîò<ŽÙfénúÁŒ`Î0 ˜Oj%x:ÃÉØW¥8„¡îšSèª|ƒËRoJ²WïÅÚ˜5TÛˆxб1ç„3I=:Zoe¦#ÏGF£D¾WCr>*¹ ìC‰Ï3qamÖˆüÁÁ²÷Z»F.„Ó?LÕëíEˆaoÃhg®àRMVæŸýÈÍLËÇËfrê%Ë™˜Àpõ›ƒsÕ}ëi[äN»ü|¨ ‘hRrÐÉsÙVž6o?¦µHsÃO—»tüFÕé%þþ¥}ªgæ•íÂVRx<øÙb¬D‘æWM¼MØOÇ\h‘*‘˜^±<Ê ¼QµrJÄ´‚qª½z+oP/Q›s?=lëÓÆêÖJ7ÒÇâ3ÿÏk¼O'ĥDŽGÅ£Õ0€âþýªSĽgÙ¹?ú䊓†‰~ùÇ•…ìü "¬WR>¦Îñáñ¶&„µ²Iܲó?ëć‘7çñ÷&ôåõV[ÓïQ=Ûóf½ÍT"Va»Õ:ÅšÄCëT=*›‡ÖïÆP4¥ÌU³ºy?Ž_ýdûÛO(~ ¬½Jö»‡!²À”ŒRU½qlfŠ^Ï{üTú»¨°Ð/ö™m}ŒÝ„W=òá®bè# p*µï.¾†—‘•ÖÅyÒR€ v–\j ê£ýž†–¶—ª^9Rj¬âT·ÌÿüIå&/âWàDµOŒ!FRß}p mÊ#ZJát)®õâ¬pV*…¦X ™ÌõZ‰X%£±´b¦x/‚©¢µ½Ž8œz_lnV v,Èwöá{ªy1BúÖ†XxŸéÅÅN]‡ëÜ wÎ…cÀ­+ ®'0Gxì¡» × –˜"¯‘Û¿—ú–÷‹íI{7àìOÍuš?£_· `ߨgªô°á£¯¼ Ai‘A8³üJb¨Ú;á§øÛ³˜¬_^›&¦Âªî½Ç`”‰êLý6:! LIÏúÄç’¨ëÔ Ê¿>°Í ôØ ^Ö ê‚Æ•©øeè‡oúü$6œè@üµãPM\Ób ¬qø¡sR‘ø:év©B/6ãdvÅ÷Ÿ$à`±Ž‚IœðMtJµÕƒ»éWaø}òM 㡱áÔÞ ßë8Ÿ–¯Ò$ô¡;¨BU@Û÷b›–dp}55Ê2@ßõšF=>¯~;ÐHꄈ½¼W g{înOhÆÂŒ/Ó¯ú;OÍ»-¡@¿ü¯5óyC$c eX)TuÃ?ól/ÙØ„ÐÓ…±¸7؇¯‘h&ï«Bk-I`’´6©¸lÍ(DµS\ð#ür›Ëˆ-›õ˜3G¥&q6«Î¥ìV{ŒYÂ5ý/dŠA;…Q †Y»fLQPÀ¹CÞ{¼âðëMÞ#ÞÝ+iÀ•Òâëå=JÿƒÛ¾ÞcLsí<´‡É…OÒ1pñZ½šÒO´ú…í1`ìºí›'´”*ó×b…â•sxgÞ™"¸DÜÿ ­Íƒb×Þ|lú挡eó}ÓS-ÞÀ3ŠHnØ5SŠˆï¤,(“û †æ8Õ­¼¿+H˜ÏRÀBÑ„èõVmvb*õáø.u1ò¶ñç#6»0~U}›m^Ñc§[ÐßÊÁ¬þýü¯©÷üû.¯ŠG»Qêà[?-Uª]âa†òÁ &ÝîÌLéPÓg=ùpHÏŸƒ§¡¦ WMŽ„È´³5çMD5M§Ýa¿zvôÄBÚ»Û³¬ÿІkIyBÄ!|©½ò4¿°Ê‹l¥ûߣi¤ÁYŽ'ö>KõÀŠ›ÊÕŠ”9¨ß„n”ª«MCôµvqdX9º –Ûñêë‰}œ9U©pv­©=ÜÀ2ÑlÞ›¾ú‚bÖ7ýrY²  Ÿ?l¤©þBo2Z7PÕ]ú[ýõ—«”ƒ“Ê÷ä°©>Æut"`2Õ½m!5Üé*¸!{¬S¼gSœ7ÕæR€†Óü}\¾6t'EhJŽt^5êD,ëŒó°òÅÄ—X7k¹: hï´¤+¨ÝÚ0D¦´â‡ ¨ûDò+ôåQÿV7ŸU8}‡&t<·×Å8¢Sz¬ò»qm‡ú6ö(ùInU6œòñ}-ËÃ0x_s xf|—WœbF:Jé(_ã-Ïe´"Fab×ÎrÈ_æ·¢ÒpßçO;´H´é‚È“ L¥‚ls6,»5/”ÜÖØG옣8áoÈ@Ñ*šœî†­ÈÎYB<ò,õhg.cÇoÔËm3!JnÓó·³,ë(×*.ÿx*(P™ÔÐnz,,Tœó³1,½Äfí›Â§—‡‘ì€gUœÀâ;6d’t&PFÈ¡ÊÙœ˜6µüM•Œüÿ|ÝÐîöÔ‚Â]Eù=ÚQO8l¥™©×è.¢·¡T0>ÊFøe|}¾×e S)Á†¨/|IH#ÑP—ÛEXAÆ›%Oºb€]LuFß/:÷•|wºÃ–ï1&Ášœ¦¡7€Üö >Ð%Ë5S[óùÍÃsfl­”—VÖ)DàoDL;Äöàc]†u¤  º'ö}>AÅž9ÜœÎé£×Äà cx¼P³ý·Jϲ³^d'–DØX6æÿÍððö²×Õ„ÂÔ [¢Ñgã ø·d»{(Ñó…‰…>Û_žf¢×|Ë *Q€ÁüL°™¬hXî Cx%£ Ñ)½U“nüò¬ÄzM×Q¡0O@&¸SF¼ù}ÜLC7*¶F, 9jDÐà‰Êß‹š7)/»¨ºS¨ y5µ,°³õ¤5–Ù Ø^ƒAAF–cÿø®ªÏ†Ò¤Ê)2×À¶¼#úÎlCçМ$Öç¼Íó˜ô_éH× 4¯-¿ƒ²÷ zHyƒÇXºÜu;ÿÙA ì~>ërOȆðß¿ñ#µbÂo÷)-jIì#ˆÔ¨•·†O%¢­ÔJ÷À5qJÝkñ4ˆDt¿v€‡“ù:îÒêøêý•¿üMsÆÌ`ÖþêüTRƒÏËíÖvñz¾Bµë‰eg˜Kà_Þ!\f (b`˜ªç “`9˜‰uº™ÿãXìx;dtô4÷iò*@§Že ¶!'y“Žþ^‚7’¬`tÄ:*Ýp_1A§U¤üz1 ZMÉ$ DŸÞýõ?}œrÞ5¬ˆp¯²"7~Zštÿç¨]s¢—ïe¿=„Ð>&äˆÆóFµ =í âXcXžíÍ+¬;[¢ÒÈQâANf²Ÿ€qs@zˆ¯ï Õ== ¨Í|aóé?)Ë3ft_} ›,ŒüLÉØÕ'Š7B–`Ír*ZN_  ”ƒ¯g¨ï)ƒ%‰«}g¢W*6´¢ÚwÅ1Ð?ƒ÷™¼×ö(ìVネ†–‹.ß+ˆ gvµæ!¹€²Àú+ëIE˜G¢¦fÑê±[–i0¡ÜÕóÜ È„S¶g'kŽ£ã«™&ãÓøJ^žèPÁ³·Ë%VÝžwk¤¤Æ—+E ;Þ crh–­ˆÊÞ ›Z}[Q¡{%‹p`ö „MŽ…;[ 5»deæË”vn Ü>ó9= c8Äÿ¬¿ÞúeÐqÊ“×.MüLÖƒ£Ð:Wh<ûð‘X/¤"m)9ê)ï®ÎܦfÞ?îÐÅ %6åv¾ÖŸOdÝ Ø,ÞÓï‘kü6±^]  ;yc²’|“„ÒðrÇM{:Þ¢Dp™[»(N¶Dò.£Ô†Žc2ž;5ÎzDÁÂ=΂×ú몾Ît e”R\Ý×OçZÏòˆÇ¨Ô?™¬“¢óƒÚãZÒì,±µËU=z> ßºʤ엉ñQª™û:% –2]ŽÛ“SËP›ñ©e[¢1mÈ•Œl–Ÿ3T{Hõ,áókwrºêN¢û²bÆ»™üM›lƒÉpãÅS—’¡ÁçJzÓy‹:ÙŸÎV£3ZQÓc>Ðïö‰` ºÜé.HãÐÉë¦%É3'vˆÏa„@«ÜµLÌh¬½²´Ð€·j,QcÏÌ@Å? òåÜW6Öž?'…ÁÙUˆmV%‹2ñèÁðëDÙÃCÈ(ÞGà†¼+wí;Äk6-hÇû§ÃxÝÕ6´éÿ~ ~ªx”I‰¬¦Ú¥Ùå#(L®\ ÀÔyœ$úmTv0Û*Zdœ•³÷L„ãÀ±±fଲŽê.M5uô@+ÿQ0”½Ò:Ž ‘çvÒâ(ûÚÒ²›pi0}ñ êÐÍüJ˜ g⹎ö щBCF,±[ú¤HU%tlÛ©£TüØâ=Œ{ÇhLm¹{ðÆvý{þ-ª}ÿ÷À·ݬO zÕ¶Fq1 @æõ"ʱ'ÒvSíév>â´hce7žÐXc3×-•Â^dà¶Êž9ùPÀ (Ú%½ÑlÍhhö\¡Ò2¶­ÄøîÇ«v‰”eQ­—-ê¶zĈù 2¨áÏœüIuBI þ?ù;…^iH|‚¶UÚC7Õ¼Yw#ñùŽBmÖŠ ·¥Ïÿ*Ñ$² -ÍäŽ2œÏWI+f(áÍÉÏ/}Dkp¼‹TB'h(š›4 €%^ªÑŸ'`†h´ºÔ¾½Ÿï’‹v½¯NÉ;zûøÓ•Ñ4/X(I×¶ü¾²ùQùHÁGK¾¹çSÖÕ:’Æ]Ñ%!Û»ü9ÄËÍ4<—. ”ÎÙÞO7¨#äé7V¦­›Åã:LălÁØáhä7z+NÌždKÔjÇ×my[ÔñÙo3.ÏIµò2üJ\Æ€@6m†hýêû çvm`”¢ŒÞaždÛo.åØê¥Ž¢Ó´î HÈ¡¥)ØQÉc⯌Y„íÉò6&²-}¥¼ÂÛ™A’ad:ûÆÕNSúŽk ÚüÍßbé…"^Þ aŸ§@tnƒ‡IB%‡Kù?Iz¬E¨!‘©¨÷/i\³lÊ?Ö«-Ó-:ÞIÜ ˜Ñìk0¼˜¦Ù¸B™Ù…kà@µÒŒÓ¡üÈßkãÛÆ\Ý[aL² ¦IˆˆßnØ 8/> HÊ‚›žºÔì,A¸ƒÂ-—~Ù¯»üM•¬º“Òd‰w•H•V³ºDu=F´¹D7÷ì «ÕDÀÝŒ„·Š\xƒ®äp4u‡\øØq5lß`&¸–›_ )-„rÉþ™teŒnøѡtKº({2b#ͬ,µ\”§¢‰ñ~*µ“Kzâµ¾¸¶úyÆq%Ç ‰”…5€WåbÂ’zfWNCÌŠ“V –‚h† Û1ÎO· mÑÆÏ”¡È_oÜYŒÙF9gŒx+2šzZçhæ7~Ò‡-¸¶¬(Œß±šå{"æË~²D©§þ[,ûÀG¦(ÄÒ 5½â%¡Å %c=&¹h “üJsõ´âÒ€„Äpøû²Š&tzТ/Œ²Ê‡Y¬ÜùR†G÷ëÛè¨Û‡ÈÜæúQ%]\ÑwÛÛl›úäˆÿÞxC'” „éEÞrœº€ng/æû¢ê´G}õ£h8n 7À’uže Mí*“G÷þB©¿oclQö³Av% Õèæ/w€ë$-*¡Æl%èÒ§{;xðÁ†•Ðup~–ÑឯW¨cøi'× ó$ÉKkÖÀ­û|ƒuÒßq%Û‰Ë-ª™ Ëøè5ë¸ÓW:{¢*“Ê…µ“!«¼ Ç©HßSiªÃç®/ûy‹s“탸˜ºü|¨£‰ áÞZÓú+ _¡[à0¸ã!B} RÖP‚€túi|úÇ´—Ÿ5eH]:LféWKýà“äà?‰ö»¡¯œ3u\jËŒ¾Îéz«ÑÆb íØV} äóÒaø%ï™&»>(Sê€Ì­³ÈGöt—{Ó©[\(Ù;·b D°Í£Ô9=sC’µÞÖnñ¿*ĆيÂL@‚“Ú ‚f‡k®ZJ°?"²ÜöI º”¼såfÝ¿Š»f·˜tÖÑó¦ÛT.`»Rü½µ X!µj¹*y&O‰6Ógë™ñª³¾Þí9'À"Ë—DhÈ.ÀÆÎ`’àà›T®ZI¾ë‚,8ãäȱ/ÄùRS#ÜzR áa6ß¹O¤Ÿ&—¸A#ïÃã•À°.®‡Äj‹Ú9͉sØ ™w>jÿ¹¦sd#"QØUˆüCó(‡{B8¯¢ö—Ò âþvÓ©Á±>aP{94ݶc «é’*Z‘’’»ÒÎl¢o¯=”Ž/ñÅéuzeZp†Cµ2 A0^ûwdMÓ”¤jâãràE,Ä )1ÀÀJnn…v»oQƪÖ付Ɨ‘OÆ/И¬uÂ?IÒ°õîü|©³SíâÕ)T]Ñç3çË{±&q›ñ=j¶$õ2鳯–ÍÚÛ•…$V\¥g¼@$—ÏjÐÎ0Š©Ü\ô½ÖòvHÁôF5SÛ¼|šÏæåíû)OÕ¿3{Í4â -t]5K”ŒiR‹tvåe«ÓTSm•àÙ‰û\Ø“œÝd,B|cšÕ°$U•™.z¨ñ¾ÅŠ¥‚ž(š«N‹iHïǸ§žÿ^¯ª•‡Ô`¬Ãú©Þ/&£#V*{lk~Ã1goy˜ø¿ªê¨ò¿ÜÅhqî>&¯L2kŒ±%SìtŽ`8&²×b\s=*9Ò¿nÊ#¢†Þµ™RÖ:` %Àµ…<,»¦^–ÛöPØ €-€Ö¼ž—/“¥nŸ¬ }Ÿk-»†qWPkž]¼ýÄèE‚Ð"Cá ÕÀ2~Z^9ÿh<¹ùOggS¼4ýÄ nI“Ê€CÿûóòÿÿÜôúÿÿÿÿÿÞýü÷ò÷ìæÿqÛêãúðÿÚôïðÿÿûÿØÿöùòøÿ ÿÛÿOàÝáÛïåâîüM'l†E!ˆŸ7óÑqŽ®'§TfTø!Šjz®™rdš‡bÑÐw„¬ «µ®·KI+rKëH.‰ËÎt-¡×6à->6G·ZÖ-Å<·n<ø:mÜŒk3;M©£ÇïZKpg=„#z3­ï!˜(a¾œðÍ«âBòU„Cj[2[ʶëõ¶Üp‹‹v±÷/ñpFy°õM*¬ÇЪlÕ$èv¢ÓÃe$¾ =÷ÊÅÚtÂX¢LÄ]ÕøÇlŒ2ܺ!# /‘…ÈcE‡„¼ôªò‹êß)joi øøàÖv?}{Ìš>S…\†~³[öØ<ꢫÈt˜lܬBl•“ü›ÃUo(ÆÝŽ û¬E>î@e£8O`t}\4÷Œœba¤aÜI¨I•ŸÓï`ßü.Ùu¦NJÑØ‚§µ`TVÎ+ ªŸB¾ ã2¨#m›bGòÎä+“ß¹êžÌ° PÒ•J©a¦o‚’èË?tÀâûêôçœ&=si.¡Ât^³óe%Ø_‰>V)ë5}ýÄ«"E»ï/õ3êý»{IœSfÛ„Šëi gä%³/Uº·v6bÒDTR(ç®|ˆÛ¹õ4rêu—‡ž˜×ß\–Ý*}l>—vüb·ÛDüSë~ñGHx/[ÕÓX¦Jü™àÃ&'é¼ÍRUÓÐ4šCž¿E‰×f½† †‡yuR)r@;#žÜä#k™2åè[^õdù Öø×ÔìÕî“×­5ŠQõ{~{T{KD,Õl:æ¢jÒ?æ«¥îò]œ¨¡™"òóðM‹)NWôTc¯žôH®¿å2Ç&aŒlKMãwÐ…+ÇVúÜ÷fý‡qNõ—ª?‹Ë”õ¥r'7Y¾PâòY øéÏ»s Ž…ÚÏxö¾/¸\rG$x.´ýH—Uü¦SøôõŸéûQm~*÷êÖ -«´æM«ŸzZ.Î74ƒâÙýÙQl&Lü6²&'$ö#ºðé‚çÔßÁÕ²ò! „.*§Bñ». ’å‹Òþõœé0km¤ŸuófKî|CäºRä-ž_‘Ð]ðµ4&@¬í%†gIFŠ6cŽÐ+÷†0h}‰=©òAbóÉ2ŽÎâQ‚-ýNK%¿o­dãsè²ç\®Š_¨i¼Û–&Ìî~5mXYWo”4j¼SîzgÓp‰Ñˆ]¶³~oÄf`ØFYÿ|ùÞ6 $½ÝªžŽãOW¤À8#žsöÝÄ2EÁœ;¢ÞTÙÕ[ã%ßø¼u;®=}gÅkmAî4æW¿ø5£ÿ ÏWüÆe×úÿ æ@Cö”bËôΣv*Ó…û†º€‰»¤p 4~ù)ƒ 4¢AÃF(éV1Z¥oË 4cy:–eLªŒI¢骂v.‚ÂÓ.KМ%!l ùoÇÐÙ19ŸIáî¿û?=Ö4 w=<åpÚª–{‰œô`9rñ‹KºVʼþñPÓõ¡ç¬ˆl £AiÙ’ŠÝU³L_P  ¡$½Œ·*XKˆ…’$6W{‘Õ9f¬ÀqfË®:'gSï)†ÆC¦uÞFOåìs&¬>×éï+qK©ÂˆñºÁ$FûÏZ2ãØJ£9ÚÄ@€WÕ+c-èçèd«’èÀ7ÚGŒsG¶|>qÑ(_aøÎ'+W#3"‘‰z/Qf€ÀþÀ“Œ` ¥ïwÞÉ ûš_æþnÛq¸‹z„–,€¢¹«ÞûQ†”×j|ÇøuQ­ynTx±@zŠ/e$f8Òk">éã‹ãa»…ÿ[û“º³÷éþ¯Ês‹:¡¬<¸GI”ŠÚ#g·ÇŠZ<ÎõIHœ'‰x!k#µB.gÖ¾@´–€CUüܾ÷‡köëLIï§ëws.›o­æ[ÊUãfйzÎîÄÕ¹râàpœN9?£~¤.dá÷BMY܆ÄÓÃwºM¾µÚçä ’™ô#4 S‚AÏŠŒ'=L&¾(®í‘ào)š]ˆ‡ÝFÇ¿ˆBÎðWø£c(Ž2_ný´¦üX¶änªò.áÛƒK ÙðCþ†S $kZ&¨v÷v%aáÒz¦Þîdûi§z Ý™Y¢[`Ê®¾¼SIÀl6øSö4¤ LŠ3®r9Ä;dâöÁŒÙ&i,v¨5ô²!°÷€ºÌ0ö'£orsdâq_/±S8B‹Ì_2”€‡ºÉ›y¬HgÊ?9·‡Dƨ ÛkÄÒ€“”„‰¯ÓΖEðŠ¿ÿcýyµÚžšW‘˜†ÀyìÜZßÜÆ ؈¾¸¤õ¡ÚTÜù¢ÉîùM×&GôÜŽÂÞR4ÀT°?{ªXt j >Èê'¼[š­F~[ÉüM‘´€r5â¹6ØrXVq—…Z’õ®™ ¤Î÷޶˜F™ŒzT ÷P„¢ˆÒLï˜v&½èi"÷íó#½uÄqx׃¾%Û¶<\ s?š¡Í¼ÚbœñNÑÕà3]u“$]rË(äô4_+ñ=ü—H AðÝ]l#In›Í+¹†Ö“i©Zm|dçů< ÑN½Y5´äʆ¡Y@Ûæ@1,ߌtÖ¸Wï렃Τa1ó„ [©#èiö.Sf)T¤ÏiŸu#¹¬4+;Ý\‰ø6dÉmäk×ú”èƒ\U¹2«ÖùüÁ}#<_€³/O¥Ã%Ë\Š3æW(×uâ˜Å9œÿóè!^ »àÒ~åw²Ì x™Uõp¼4a¾ô9ë~|«ß?þœ2 x‚¸µ ±÷m3’fÐç DÎÏ]W,°â)“”Þ`Ü`ú‡U³[îÝAU›9t¸8xÄ^½‰I{’b‚C9BþýÒxî¡~ítxiðoEª\‹«r)fSAOtü|­íɘ¬ÞsXÇ4 |ã5ôC©-àÌÄ·Öâ‹"üGÚÌìäû‹˜«%\œr#rGߤ@ÓÉøð‰NÚE¤òˆ¹ÉŸ¢kSòÚ‰óxǵ¡³ïÏwÒ]94ë8ZŽwAìÑî¿—§|œûGHÄ¢äÕ-sÉÔ!åRi™¶Å&üáïÝý^-XiÎù>¯‰ŠïÓ@L‘ñsÇ«ÒQ±{Y#ƒÃVÁ\ö’º–IqôT‰r•(˜ábؽ„j•ÎåÃ#óðÏÎ¥Š™ƒ/7¾õ½þòž[„)Y“ cšb6äôkN{n-‹F¸¢RØxÛˆ÷Â/-žéEÛÞÆ…;Þ™”gÅhì4-|*âQôë²Ô‡ÕoK»åEåýÇHEùEë¶¿Øš˜–ƒ/ЂR0k6¯ŽÉnáõÑ9¡M–T“Aÿ}§žp9Ã=AÛ5OüL©B‡Â2™æ ³¡= 3fs›î̪R’ý÷Dœ\K„jïú†'›H|®YUÞ7ÝùÜB-(ÓÖÞÀZ7)Ы™­µ¤9JÿŸtÂlû!jÆ>äéù5TH`¨&ntBÜV9¿Û1¿{|Ðêmb>/¸®–Ø€ÊÝÌ•ŸÅbãO‡c湚±Šyš¨fB¨7—ïN #Å,»«4 =Î92÷dxê4&ñ$c¹·’ô¶Å«í·â„8…èF‘wœä¶9ì°À6èTnÄ!ÚJÕ‘("åŸudá ׫5=Ê"[8Á¤A59Æž²,[ÆÊü1®Õ‚´:À Ì8¡…° gZ°‡/ÎN´Fêñ1>iê­Pº¹r‚|1;äÍÕ9ùµÄvŸ?Àm:Ûb~þxotÚ~JŸP0 0¯IL²¼;jŒDK¿îÃÄ×ìØ«m&‹º0®àØõ×þ‰MDá‰L)äôÊy,xõpFë­`Y®ð—¾/$íÏUïèߘx®¾Âð:µˆÊn6ÁÔ ÀEç†èã¿ ^–ÌÝ)x„8umu!ÿwý_’Ít§+÷$ŽT¹iyjäæ\[õ\°¢´ñÿ6—qf+ÒA;¢Ý¾µEc³ª5`”8)/ü5sfÆ ¿,ê`£¤ljÉñƒï=×b—¥ÜmØ#<`gˆbßý‹&+¾Œ2\ ´bm›„,p;b0™ê¡|(ȳ·±#('kÈjEáÇýßaQkìǪ®[ ’\:L¤i;ðÓ:–ŸÏ­^F‰Ý+–áqv2îH*hNȼøáOKD†ì’uÝû8ò”±SU·oô13ß ât|Ä(‰œw‹~”'GFäw ýS£ Ee(¹ÚQ™D¼ì¢¾eûÇAž+ =Áö…ÆþÑ•Š ä€Åw†{ßçàQ¤iÒ4VÓ€Àh׳"C _Ë‘WüM!‚J Ç®Z½”çÔ<Óü€©¡"GpÏ¡SL‘Ó:™»¹ÑëÚ fÖZâem!g&*W8 ,7¸îûàºÈˆ\ùtÓ:™ [pãÝ×!W£”@C/ön_A7w™ߨޕ2—nN3›ا¨€;uçN|µ²ÞM RG½Ç! ƒvW‰œ›.‹Šqi1L†YÛ©db¸á œöÛ#ôŒw.ÄÎî—XÂ1€B3¸Å”+öÆð‡‰¦* oU’¬¨;:€èÌsfûÖÚØ;FíH¬Ôœéá¾®3¨lúÏ?ÅkN$Ðâ;\vŒ«³êÜ2?øÓü.9 ‡×5ü-#,¯HËE• ™ïj‹[dÁ8p+í¥ü¯TàŽý(xö$ǯŽN>_©“VŸŽ%—ÙÜÁÕÙhS™^:KÊ,· ð]Os­íÇã|—DmÍ¡Žl òIïnz²ŠDû0¸CÆt [౞ȂӼ]òÝ~›Ö?H0¶ñÓ ]š^]7ü®›FM{%¥t£×§Ÿê¾Ú¿o·ËãÂõ2!²ÞpïbXN.‚ê±:CEçŠ"©9ߢÄV±%9Ó‚ù|× ÔS¸ö¸«Œ÷ù50ÃɈT%ø; 6z -D¨õYßôð\¬oPq×ãô"y¹0šÍêœûc3Â,GcžƒÐ »»zûVá@€«ÅƾWbwC(µÀ-±u§=è¡=ØÖQ}ñˆ䪒5ë£ýL-¢£4$oÁ °?*àªë6hê\°á§ªpEå%«k ÿÒijÕÐîí@a–ùúˆœç‚ ¦h5!òúOdí_+=bîÀŸµ=¥î;+Hqr`§øï·AÝb˜eeV^/ñ¹pE»7"û%[PQúüNN v øPÚå´ñ'׫iÀÜC¯'‹¬ÅΗ#VöÓ4 /ƒøžL zìþa ûn²aU^Ø5þ™Ç…ØHgWs‰€®ÆTmçH=zÃ09}i»¶`¼ÖÉ ¡ÐKÖsóTtK•°±÷;Ã( Á»xíפD!VÂd„xë²Êè bóv WVhã¾° `ë'ó®ƒ0‡¬ŸdòÐiÔXŽ“Áñ†Ø£‘^÷2ïì©Îª=¬»FþþZ†‚j=7üttS¬eæ±Êy Pô?d|G[~¥[OŸî÷û/Çï‹¿ 8\{LüMðBx53TÒñ¼®e‹VâýؾòÄ‹-NKI³Q°!´_d™|ÕtQ¿S±kûÕh"JãÏ¡\µ³ps.S v3ª³0™„Þ8)IÊuý…P¦H{”xÒΧ·ØGü ·Ç·ÛÍð»¸1¿~/†¯%bãÏ„ŸPÍ8q9 nÒYc­#5Vå±6¢<5MHt[^Ãü*¶XèUö–T{Ìã‘ÏÒ}ãì1øìg)Šð¢C±³ ‹ÿrÛ|p¹ùä”! v¯ßÎ1cÇaŽæ¥HÔÅÚ¡üLªS^”ò–gÚ ‰g-`ª¼ Ýư–3éJ­!í8ÓÛÏ`¤­¤~r¹ÂU>ǬC½I©ð£~ÃâØ¿[O›§%0Û!¡÷PÀ6[&ÿ fM£«œd]éï½Ü5 B-bÛ¥PcœYêቇXË5G9Æ”åÏÑÖÓf1·ÅÄP”L1©òCà'™£ x©•gï#NF¤dC2Õ"vK¯a BË[Á=ÐxM¬Í¹6ßIeáá)å˜Ëb‚—š6ËJå}¶0ÒºþYw÷Û'ñ¼¢-ï?X¢â«™•_€ÄnPŒ‘Eö¯2¸—Š”dü°Û¬ß¼A´†“Éþ­Õ ƒ–õÕÕH}­!@@taÃõu4‚<ßzŠ_¤j'<š¼Óßev*èM6ÄâXº$€˜÷òîÓ7—åiôw›Eæ~Y3¨NÂ$^:ÑʨoóD¢&µ!°xöåéìŠëyYÜî£ÙÑ•+ë.Ûã4_øøZ$'Œpa¦¸…z<~9RŠ ?Ù ÙÀ’ë|$ þk‘¢ù¸U‡d˜¿âaQöàñAÆH’Õ-bG²ÜÝÀE4åò’Ó>•)vR~ú¨ïˆõ¶dEôB W0©Úp'zK©Â“ü|µ<‹ÎÆ¡™6Çá!+$¿î!yÅúWÆÅ÷)p5J¹‘ñÎþXw “éõAæê”ÑQíãræ£im|ŒBàÜEæSÈùnÿ 3@•þð©Fwb  ®žn»9ÝêH»Ò„¼áÒ†Ù6Dçµp "uÄKÚºZ>ü¨+ܶõn{K¸š ?‹.Ô{ 0Yº‰}ae±ò˜B©wRÕ&jç¡þ<Öéü³Å°ÛOµ'Ú],@öÐKtòÉDt˜LZnºÌ¬UÀ&¢BªÆ×ƒñêhfb z8wãÀœãµ.0˃i•Âp|¶?8£~ _‘Ö¿?t›ýqlD_rGJÎP;iš-hê~)5ÁŒŽ¼W &E ÔžIœOÂ+Iô!Û}´¦ó°{ŠoQDF»<«¢[[X\í¤ã9ݬ’"eèï·:3üÄ(€i›08Û{>:¸/ÈJ•¨tïD2¾[ø–º¿Ï·ÐµPò·4R!Aeu½të¤ ”EgIÊ")$Kz`²çéÖ³¡žJÇÓN]šg£ŠÃ,Ührÿp\yY©è¸5V„…þáÐ IˆN}áÐ0•î·[vç”8Ò&ýRWÚˆQ@¢2(Ákñ@B{ŸÂüXf¾5¿dä´„dFõâÕX[ë¦e‡g”‹f7DÚˆ;ß¾œÓ>FIʲ”2uTp{,­Ø­s9¦r8’\,;eªFò(QIÛžb&¨”( œ«ÙÊ$rò×ÄÔFÇËûÝåhs| ކ0—-wò^Ì¥D¢©º«úJ"íÌ™F`8²!¶Ëó:@£‡x:åKÖ Š/…e)xåo(›â2xôv<‹ÆxbÚW^þËJÓKøl–̖庾e¸)LVÔ@îÌùÆ–Š¼ŽR V1æ……=€ƒMÓʶ–/>Bó‰¦ ñÆæ×.!\ üNJ¡äï Ôl¾S`XIß_Óè³ö]X&1b&@%À«2TèW~í—rZ ²U·Õ*û¼ÈïCœͳÅÒŽúZGÄDÁ–&‰m9^¹œÅ % 'úP׊ЀUÐÍ™÷•o\X/+àOƤ×ï–Ѥ¦4ž+Í‹>=ñú}N¾©W8(V©ioæ© ¾‹6$M7(eMUôgîô,1ÈšnsáÅíH‚}¾¬ô0jYõУ“„: ï ’ø†µ9w„ßö‘ŽHüöVÿjƒ„- zc0Ô$öµkÏ:^¼ sŰ‹r’ùÑüNKÊ8 ï—SU8‘G¿Îf„æÜÀ÷оQƒóÈ/b³ÇI/ÅøxÉð¤P%yšÐv%x(ÝPû þRÈ&BP± K‹Œ„Tß7·Y !oa3ÞW MÍüP2 ?ßn&2#­p³'çŒácCkýGí_™f†2TóK‘“xá†v¿R;°Êk$8ÐÍg' üÇJ"@µð2H9aíùK"’2ͳ¤àS =÷#ƒò–$š‡?ÌŽvÓ¶›’ Ñ@„õ­}rO’ÉðÄôUgˆ_»8Þm" „.²#DA¾öWOíÂE[}¾×_ ü™6ºK:þDl)[Ë'ü‘0ßà?[›Áˆ¥X?".¡Š•+#¸Ak¬Ø«*)릮õ(ÎÏ‘…¢§i%ö´)>g²p`èÆþç$W6‘ªŒs–Ò\õC&±Q‘–½ÀèN%;Œ†!Ù|PË)#Á‘åæÀ­>{ƈœ5Num™‡ÉŸo¦]àŒîö—0Hé›ô[:’ˆå‚iòq§ËdV’ p2å.Ç¿ÓNÿWrÇ÷M<¼Y‹œjp›$ˆ³Æ2ƒÿÜKÀ»b0t€nኩ®¸ÌÃA %o¨w™VJx´we,FØÊê¼o9wØã÷ªÃ§ÌJ/åñ•/ ¿:bzÈýYüV½w¶|’…4%Ý„Ÿ(·• §êãf•‰…-µù^fÞ½r\¬‘€Ž¾:Ú"È&ÿ–±ï,SÔ7F~JAðÒ„mMÓþ>¿e9]^tUS¤&ÑM¥°ªØÕÝ{'BÜÈQà g’BYÓŸí‹Ðù }ú6Ò€É{T˱DQ0ú8åI– ŸTeMìön| ·jiÈk†ê8g‰ääü0ݸ5ì?ÏÖ"€ŠÒ+ ʰcA²--3×½kC4ߨNRFÍiÒ¯šb‘¦º2Ò2¦³È£þíÌS¹ŽÍ%Ú®«ùwH•富N ¦häc8Gµ;‰ê˜Xv—¨ˆxJ5¥+iüLØdZÐt©NÊôÕ%$ÌÃzÜ(Ü ÷†ÐáR÷D¢8H®RóOCWI5˜çl ?éa*”ˆ6?QåxÆ¿‚ÚÌGÁ$””̸5Ø+¤Gú¬˜|Îyž×¬ÒGî:Å ûˆ»ÁN“ÇÄ{ä_þòB‰‘4ÚÌž‚è/Q훢ºÚ,ø¬ÞºÂ•„•CÖWWŽùÈ‚™»t? !¬àR I‹)$Æ"Öà…d*Ýp’ûSžµ`Á•ÓiQï˜ÁlŠn=¬™z,ˆ¢ï 2‹ûmŒÂ&¦SÉ6Vu—&F'\çËŒÀºÀä.Ü>B$¤„Í’PèÔÕÁÝèfB/+j"‹¾¼Ã…F„|’TÇÜëTÅmd /ßÞë<V Ù?¾*d¿o #bЄ$ìÒ|ïKùÖº% |N >?XJ” ÏZÏ`üL®LÀ‘µ/árÓÈâäòZ,•G<ÒO6Íຜú Ö,[›û•,µô1™ž2\ݦx­N¹ié3f¼$).̸{b”¬¸l>gÛ†±äŸä8üQkJMÃŽ)H°…|:3#ü·÷èU?d—‰“ œ”z` Z*¿l¯jËN® Jͬcúßc” 2 dšêˆé·Ý³ƒèîRgJäì ¢ÕZ]´©ˆ}A(ú?Ê9ÁÓŸâöˆs„“e’¦ü°È&õ«-Ë][šÁ“(àÚóòVN‘vó@ Úh.ø‡´°^ê3D½¨Ý5ìÐO{ë.ö“ø¿”è‚—-­_)ÃJyöë¾¹âßpTöä‘)™Ô0UƒÓ·œ7h!q5;øæq ”áÖ·ü†M’@1œ¼”SƒzýRÄPnL«åT(ï¥òœ†wvºÕ¼™±2!Bß¹Ù352:­^#Sô£[?͸eìÞßb‘_cuÒ¥m{C“ñxŽuk0oÄn–µ¹[)«%á£1o;•ž£Nä8>ë}¨‡c¹%dÿ  Ú–ùBJüLâ·(±YCEz(sbBM˜Ü×oæ‰øÒ{þR3}Ûç&Dà¡òvíJüµ×Ô¿ˆ%§_žêܱ§5M~6ô-ÏWÔP´Ü†ý \m<<9Pã£o Æé¦;È¿ñ€¡`†öÄ‚ãÀ Ï m’lH³qµHÏ×Bd…a­hÃð E؃| ?=0Çà´K©§ øÀïáO‚¸¹j£ÛìH…Ž©;ªÛ¶Ó raHœÅÔC`!Ÿ8Ã\ÝÿgBw#ÜÍc³‰ÓŸæF>?2}é9\óq¤Ó[—_QßSeâué’jBÆ ¥{¾æYz†'Õ¹‚ï×ù·aévk‚! !T•Ì-ŸÍ#Áñýyfr‚Y × zÈî‘»…„(¥"©A£Ì3¤;íkú70€„;¢€l0‡"0!âÃ…t¨©nG·|^U; ÎQ§×ÙÊ¿\áÇši HçEþcÆ©â’STTFº·Â4o¢W¡+ØS=§ê®Y{–3¬W( 5ËÓJ†KAó³Îæ)ù‹ùRY…¸ õáÑÂRœ­Ñõy Kt`Ö]g ¥âŽnpn$‡VÄ“¾ð®N4³Q¢`¹¦ûs¨D ‰—~37m8É £˜èÓn_Úÿêm1 îÇh½¹Íá  S¯‘ÒŽFžO’w¾>™f¬»È¢‡ó!L+V<þg÷ìøÕ¦‰ü|¯»À/Vùûnìftbì/27Y Ý–7"PªhÈâË(˜óXlÚôËï5ǹ~î¶øˆïº|܈ÀUÀ‹ÃŸçð2ªä¢ƒ½ž•ZÄX*¤UmI+³´ñPH¹Èô%O!;E"VY©ì°8oìvhÈM7yrvƾ¤1!àþ-X°Á˜ „î[‰}V—R$Ëû¼ÉW_ÞN±*>v?PÒÿÇECø­zdP_”'\!6šú»éHà R óoó¾BÐÛñ”:ı–Äø_²š_ÎÈJ-X5é†=qºë Z¹¨=sËr\¬mÜñäU3“5:Wkäœ8ŸpÅP°\ÑŒR|â~ì’+EÈ7¹©@ón”wüxsóD…DÏÉ-Fã&¶&ßh¦êlêBšCi:KÖœ~œÎZ7‹þ®èÙþcø¸Då¼øS&üM)¹ÄB $o¹QïŽS֞݉É9)tZqNÇõåõÅÐdв¾8¾‚íY93+`jW1`‹èƱkb2ç¢!®C“(ÇﵦÙnûÛV™bByɵ‘нGäWâ±G× ˆ Ï#°6JDß­÷¶ld/ŒMÓd/»»ÿ´Q÷e Uq†­Þý¡ø®xK`NçàÈþsŒèÕ‚F$$=Õ?>7¿AKrA”­Ý\©W‰„v†ì%»}¢œ F ­É|Çð+1¹lo^Vq=¹‘ðÂãËÐcU|cª/ÍWÐTí»IËf<)Á·ÿÇ üÑu)àþßœr«Q®ä²}½üMO“´8ÏZö°ÿ»ãØú¨¿?¥nØ7ü·³>K–ßEÔ¡ŠÍz-J0ØHý-· 25ÉWOvx£‚I¥Ùy²µÆí³’Ê–©uzîRÿ‘[D#§œ›#dU]âØHÑS“¯v‚ °+UÈÈETö$¦ ÷ üpùV¿o«¥$Âwƾ^ößttÇu½ØÀª€P´ó¯éG–$PD; xCkÛÅSLuy*jµfÜŒÎWÄo¦šocQ³ÙsÓ÷I K!jÃO”'ìÜöó¡ÿë´ü—Í?–ôM2<„üMXÊüÑM ¬ÇäbÓ¹Ô1—y‘÷¦b¸ÿù=gyžRø¦Ï ÂOð¥+¤dwÙ-RŸšô=Jªb+?Øîž8Ýß&H',Eáð"ëÒq{¬ÎŒOâ©uÕµÚØj(°K^*7…s1 N TðC»ž†TSÔÿR' +kŸbþ‚; Oð]øt!W “4›]e«yAxÉ,ù@E£á«CIå‹[Êά?£E:‹3Ú¢l3^ZéÒ­ÕïîÚ6ó^‡)÷íã¨þZè¦ÕRõIïù¶Ä#kÚU©!·"æ†pªÆ#æ7—)üIgs2„7a/‚zꈱ6ˆ?ý6zz‡ÃéB•b¾˜¼xrPG{ßY—¤v°®þa—ªˆ¡æî_:>¾síæ2Àoýˤ+¯Ñ¾O¨„hÖ­{¸½¯ú`°À23¹‘šøö3èRXo,i},/CûÄÀÝg˜àŽbÝŸßAÓ0™þη'eÆPSC= ‚ZÒ— bj¤Ëb¬nè®Ë í}ó¿éJ6› ÎW ‡ñÆ“Ýÿ÷šÀL)`ÎÆùƒì~Tè;–qè—©tr°Ç¬J&G=ܱóÌßÀþÝIØ‚›^ÚzK{ý]níÀ4idƒ Ä@u·d¨¦úËõj`T@¦ Ó 7`Èr†>*öN©…;ðçn?Á…°++É}`ÝÌ#ûøˆ–M˜ø2ís¸P«9¢÷´H­8ÏQ?¨ª…Gaž‚2àV4oìù0¢*Üs¬É~˜ËÅè£Z˜ÝÝå Ç„Òt˜T%’ºõ$±äLÉAn£;LoZlåÛ×Ì·ú­eš9#v_³]Nlª]«ª8§;¥ÞŽr.üMRÄ/Fw Äx¿vÄÕî¸û¢w“œÎ3;® Rê3Ìårly²Yjª¿‡gõàBA L§… F@¿BR{¡éãU åñ“çy–’3ø“®ê´ªÁg![Ô¶½%ÃÁe™­Ô±UcIõ†…'fÖ-åTÎü´iÆ$LßÊw…Æù–h$fÄÙç L,‘¡K {ãrÆoH¿$”â Ê37þ?L–§¯ _V¤=c7¼]O¼ñ 4‡u¡Ñ¶ü *.…)C7&­î/Z w\e¬’eO3Æ…ÚÙnXäGoYV¦P¦OggS€w5ýÄ nJÝÕ•Á:ôíôýÿjõåíõ÷ÿïÿ ÞØÛÙ×ÞÿTØæäèÞÞÕÝëøôïòÿCåöýÿööÿ]êæìñêÞÿQÑÔüM!™Ì·žÉå¢ù”BÙÓˆ¤é$¼÷èƒg—±»ë> n¿'n’ ŒõÚr»W]—¹+ׯ÷|H‡ˆ×e àsá€ßÐã”ô´”ðž=£TÀ /~›{/ƒÖŸ‡Ñ¶ÚÉ­Ò´€Q+N”|P;$+Ãî¯Òÿ¦Š:i ‹Ã†²  TÚ4”ï}ßÎÀRºÐ9ß–ê5m@6F†µY –ú»›eðr]¿± ø´6›éûóßÚÅ„â˜<_ŠÀ£qfÁ«Î#’­(IC £èí&,d8Ïôk™óè0C]bÍòíôæÛ6O“:ÓÕl+Á<é\üI}M0ßNòˆ¶ÔÎ!ë€åYg¥Z’«3˜ U‹û×xs‚«°–ë^Fäë¶è,û8XyŒ\ú‚I]äå]æ±ûêˆÆ¡-ŠÛ°hä!õﲟN¢•«¡ƒÕ0 ¬qò(ªêÃcØ£d|e“¼]äPÑõ޳ ر1V<›1{Ê${Ÿâì1j éÛ<˜­[6Eô®…™²Ì”swiëç*<2Ó¹%õu¡„Æñ-`í°‘ $D´Óµ½E›‰ Ó:¼2ð¥”k•Ó¿‘¬µ–ê¹W+@*¨¬îo£Yf¶ü±DÇz{z^—»‰Wa %…´Â‚uÑ1'rYþìà×êæ"a‡Ã¹f–á¦À_B@1ÐjÖÓ¦Ô]ÓEïªË›dX2`W>÷Єþòg/wÅ4ìïâ—X Õ"ðå)´UcÙ}ú±¹³¡´´Ø À¶ºÏí{>g42|zË,+šÒIE¬øë¼ÜН‰…,:Ÿ/½Ú{Û\öË™fÖ1æE¯Æ°ãÙu^R1¹YOr³©¾Ù{—cÌ%"š$toKbx:ƾ„M´R׎}ù>‚rÚ—¾†©šö|–ðlÉ:cõxW&¹ÔXü®›÷<"@`swâ·LµÓÂqœ¨‚Y?±–Š‘ês å,l~è陽Ú,ÎŒ¨Ýøá®Rp­ô­ŸfÕgjõøÝe—ïñÏTÍ`­¢p¹%mä ã&™;eˆ˜¤I…Óv)Þ¿8éƒA¾°»ƒÓ½}¾ö6’2ïu/b¨„hwŠøÅráLÙ÷÷çE÷bˆ!a1º:ñeåg 1ùÀOíAçó~ƒ»>k;N–¤hž$áK¿Çyѹ×MH±µzSóô°Øýæ^ÅF^±Ç³ý§`ûˆìAàZk¦8Ñ!Ì>Ž¥ÉÞþª‡Ï¦.ÛM’72\å„€õ.†¨üµ&g> æFå9Ì$vo#—h¼­h¢h︅BùdIx°j<ÄF£ÏA9ð4ŽolÁ¡„-”Ö»ì†ålƒè`¦¥ÜL †ƒr4`%).µÓlµ¢v!rtµ$Ülß^?01#,_ÀhOÅM¸5MŠe$œ¯Í:A½Î,Ìtõ]Cç0ï²ÂìÈŸºÆRaåöÆîîá„­]ŠL—¨õ@AWRÚªx7ë{OA²$0¹€ Щ”V8;¹ñÂ+MŽbÃÂü0ð#«0z¾½µ 4~Pñ©‘hCÞU6>ía‹~q$hžËùbS†Ü+v…‘PF~ï"æp_"šˆVD'¾¬ç¯6 r3Þò‰LºdmÕ¢¡…e¶Ô÷Å<Ôìå:q6¢ÄÅ÷ŽIQ#"‚ùÖp3Éd(_ÇÚ¤ëx½mp²ÅC·É#»¯AŽTÌô‹­j›, ô郟3Xí96•‹ªGԪбÏq‘~yªØe‘û#)ç((#áíq€ï³ïßÐàì-¥Ð»Ä$;¾ÚÒ‹ºÊæ«z–RËd¯Gn>s¿éA/7ÝPÙ®_&“iü6>Ø¢¬ÇæÇ/¼E᮫Á­z-‚mì†<¤ZQîð ‰—Ÿ‰¿mZÐ3åR¦íÆ•þOU QKŽ sg:PéÖûçrÅXijû‡÷Ø£¾WŸŠXtL|§ŒÊ^Ð8rü´L®SáŒ`MóÀ…B7~ ÐƒŒ=ÌÞYýZ³è¨Afìú‹;t+Tî僟ñÝ[Ðñ|=š9.ìZ•CœˆdÑ„É;ú~„]¦ÎÏÞ7ÕØ•û±ÕwÜm9*‡KiÀô· AÏÓÌ3ÙË4€Qijšân óx#(‚Ž^ ã ®Û¥Á^Ïd+œ­>O½m¬+L‡®¢ï·jZEKŸüJKϾ$–øÐU.YòI×/¤&b‘}Y9!n}n§ï¼Îÿ#š‡£âïÒ†.»«ÒŽÁ­Å‘Yen"râýÙwÌXf%7tÈ´#Á¦U,HÑg ÎY±¯Bö‰ïRT@j^÷:cà«B¦µ[v€ãœàëKOÛÈ_£ÉÂþèïâ¦@ÏùRGšô‰þ¢í€·=ï\°‡eoÏ5œ úiýy¢ÕÌq¼–¦öÃx«‹bl¢Z ?°¿yÄàÂ#9‘65ü8¹¹žÎ7)¸µcÄ»$óvK„Swã¬r@Õb‘bÐ0ü|¸eöß¿GáU#`šÍÍqZt)–Þƒo¶Ð! £Q¬Ä‘œú«™~Œf]uÒW½ùí˜f¯B1 zÇÃí€Ìá#äªJiþø^ûÖ¾€LaäÛ½ìÜþO‡ª/ð~ÿ¹ ýlŠé ¦ÂpJÃ÷JkÀ/y õ*áfÖmC ðî͈)/,’ÈI|Ôò®ìy?eS¨ªûŤ f ë=ïùi¸a’ã ß~ì“ec-<á¤mÍ µzb‰—{‘5Ž`{éçºù•\ù1ˆò¡4Õ°oÞÿábêÔrb„"Âg׃dD}¾=|§Yè5Ù%møò¿ø/ìE¶©¤ï1Rü²¥üL¾F—[‡­™§ôJdˆ(q¤8þº£™û«‚Uµeé…ð¦Ì0ñÈ^Ûíþÿ16dê±KAâSyc6Z [ÊÕž)fÑÎYµ»4týéG+x7°òè\bWX K·ŽgU·…"÷äWPKЬvy†øNŸ²ør©P”ˆÌRPîÖj&|¼Yñ\º§±Sk‡‹uóq¿­c§»4qÉz¾ãGL¾ú»éÂî üL¼S]®´†‡åÇö†na¿j×¹#<ž³ûÍ3æ¬ÑAË™ïkB8w–xDåüð&†‘ž¿œ!ï¶±·Ébt QQQžþÂ牠üÁØ`ÊèØ5•š ´‹Aæ›ïTç‚`ïD¹y¹z ±Ž”X_!‡é˜)c1âø–”x$ãeaŒz¹Êg:í[™z2Äè“DQç«„æ'¹¾Ì»SÙ í ÐÜYôél‰£Ö>Ï"7šþa§“*Î þbÂy(/‰•—†&|7èø† Ù4ï TŸìüX±$ö#47gϸC6« þ.Ú°æÞW#·³·SÿyËQv‹ý&~Þß`+©ÕÎs7ˆOR×&ðáÁ¯b’l½/dOLâõ ›2Ù·DÈüŸ\eÍÙFù¦¸gì^÷ÝRÜh½ão¿!jHå?™ºV†!ÌÿEhH¼´¦È‘£Š‚ZÊʾÊXˆÖÈÉ0ZÉõeÉT£‰wð©LAÕÊ_ßМ¦ ]ô0=GÉTØnveaòŠ}°€d‡¨Þ+·êK0’ìþN-M›Ù;5·ŽÚa†áüIø©¿òïdrëa 4ïe0Wóæ|®ƒN\ûnÐB£G¢ý}Ò²ªü«·…g xªFQå-’3LuqŒ=*N¥ÁíëP쪩ªäWdÆç´xÎ]CônèŸpZð™÷Q•™;ºž*Ço³ÑX>TÕz€ÝŽj ]¸žæÝ¶Õ fU•lôãÔ,¡V޼Hj' …±EÉšÃÜõQ¢€yEÉI |Ñò#«ÂvOï„ÝW†ò£c#pw6K´ ßE¦A¡Ÿz_¿Ü[Rf=“RÁûüL½<§µ÷Cõò®ZæÜ§ÇÒäõ¯‚x+D¨æUHßE=‡SKö>þZåè+E ‚ì4N—N{*ô‚O€Z)ÂÜÅNÎcs$2•ÚA¿©v'0&î«Ò©f,%û¬1Ñi|¢¶“ËÓ1l¬÷É´•IH À’-¿(è:ÏnÛ‘Dµl7€Fpb ß[«>¿ä9n\"m`ÖlJþ×ë9ápòPðG|Áì®[AJNÚ¾[v?ÈûÕÈÊ/½¦f_åë€F5«ïgº¡ÈõsÂÈðþƒÖµZßGôÃã¬ÓüJK¸ž¬Bü¤ˆì;aϞʿþ£m$E>²Gf)VY`oÃ¥Sã y¤ã^yº‘¹ ¦é©Ú‡ÒÑÝ4ÔE“ÀY‘á$ÌDz8F¯@tÞbÓgKÿ³Jfr7V#°‚Ö‚{@ão"&2ØœUÑ“¾ÁbPöÄÿ¤/̬ØŠAÖHÏÐÄ$ˆ€ˆÜðã#Ö*qý’Ñáï•2Ýxx‘Ù.Þ±WªRŒ–q⟑ Ó|ûZ™y¥©?ÖQ>GÚ%Ó3ãÓý?Ä‚¿p?çõÂÒùãô|™4»üdzTn}ôçÃ; Z "*9ÏNÅ9ÿð}Rêí@µFÈÁeB(™4B"ãÖå¯äTTÔj좳©sÑ‚*Ñ5¨”=5ÐÖôe³ÁíðWQص4<)XT/&廒ÂIFKÏû%†7´ùÄõ/|óÇMVo:Kâ¤ÂÌ.qØë¤éS©Ÿë&G $˜«,Í ïÅáLz±¼4 áÃ2äbÌÔtœ@ÛJ<¥Íä–:S= cØ °™åü½µQ¹Gët `¶~D ÞC,Ï®“fçM2=ÓV-Ê`u±3È(£‹Œ¬Œ¥Ž9_xî“-.^vaü?¬Þ"µ(M22Pø¿–Äq%Á+ o•Ü%sþ©Ã‹Šôš‡à؉Dk„ª¨åöÌ)œ|ô€Ë±3ûõ×þ”æÔã`ÇrŒäÍQÜ T2Ï´«œlœOBò&ƒñߤü„µ4"ƒ3›ƒX¶3ß·ÛâDNê?³ð˜¨ós6c"zÁc!WbÆfà'å£Þº¢d”ÿz8§µ¬ƒˆY’µ@JÒ‹ºä#!wU´¶®¤=Ä>JÀ}…l¾Ç*>cVyég¢0RÊt«N ÊIN”<:w·Ìøx‡Vj »VM3hC¨¨QÀ#•D•‰%ÔÄy3[°¤XorU`Ç`çË3/)â½Û>î½²'ÑÜ1ç•ÁÇTÍû*°­K'»¾ Ó³ Ø»(ü¬VÛÀüNx¥ß"£±Lw‘…Gç_š´ã\Ï#‡á†Iâñ6õÖ¯…M…ž¿Dì{ŒéþTÊÆñ#™S ¯q‹AÈýjîäÏD‹shCt¾0ï<Üts§pí¥KÅ6Ø›dÀeþnOï‡h ÍÿK¤¡ß3ÑSÞ“4(†Q™$š ~Þ "Ä-EŠCvN€9´ï×å¾cíŽN³š¶B„‰tyV.zÄ•ÖcŪM ³9DcRIh+ÍÜwtg‹ë™f–E1Ïz¾ccEŽgÅ&¯Ã ”Ú§‹—hÃñÝVc²Ÿ'Ãü†kq+ªkr “y`Še¢ ÎÂuNíM&hËI@ÉBþrºKq+pA. ,Ô³dI %aè6õÿ´L):¥K¸©¦Mô"6»ôq <¡i޵OVIäL} üÁ7}“+,|ÓÔ`L9C‡±€@raè>/r Y‚fпSÕÈZÞ"Uå'ç #"‚c«ÙeiUËf702¹%Ì|¯¶gÌ _˜žÍɹTNÛð”J ÁÇ5%#61¶ÖHóVsa8Ò4ïç1xÃx £­ñžÚÚÍ0ÿêoߨjÇH¨üWî6)}Vþ$ûÿuFýñ?ÚSæ#„¸dˆ+b,Ãò’ÉhSsGߌlZ¿ ã¸<¢ªû·­t‹í£¨´WD@ê1'ŽsËYnë!¥PUŠk!µÅö?~2Uõ81Ó_Ù«ck´I—6j¥q’à_"jìJ¿±Í™|µ2¯ÏW"ÌýDMéŽ)©Jœd¦ý»Ôúg@ˆ(Ì‚‰1/h±¦î2"ܦ‡—£¦^Dm8(ˆpu͓ʃ=è Û‹ª A&_Kóo.º<*ݪd_}£øoªUÙìC3±Hø!ê(§jrõ<9üL¼C‘qIõ|@­e°õS>–ÛèÌ÷øM$ݾZ¡´YŒÛôÆ™]L-ôÿFÓ(nÃev(*@I9Ã)çº~o»xAFev€vB61íæ‹•sÎe1\î Þ»ãDÎæ+ßâUvT¬ƒA#9Gˆ9„ b$ôÊýQ'Ȳ…Ž”ÉIìfòe !:[˜[W 3›—¨ÀñL$o[Ù=—‘˜PoÿáÇߨqeY J#Ǩ½ÃçZ,ìÕR•™wiÿ^ “£ÆÞíF3¾¾B L¤·…ü™gÚÅ—ý©°b XFKÔ”»·¢jZ̽|Zö\?6®´âéðí%4ŠªÕF«ùá¯Q–“ƒ3ä;<¢ÞTã.!ÅÃëžWgî¢\#@}Ýhb•S+Dûél€¬ªFpQøøÊSæ&h)T*‚>Ép/¹~oKÎBÖ8½ä ˆáéJKÆÌÏIeúñù´„ O´‘ôÖÒ/¡¹èP®Ê`ͽö>d•OJ×UЛ„ñJ¡7UЉ–sçVQ–9¡Çn»Ë°^ø“»¯½gãmÞMU`µÛ2 f·ZüK‘„æþEÔ}ŠÛf\¶$2vB§“ð£¡pv:ã •(ªsQ¦Ðõ‚Ͳ[â%µ>.ÈÕ"8# ©ÓŸ›˜ ôÖtCç2ŠÚЕ4ùÛ»^–ͬ4µÅùzvÖÂiÐE1ð¥Óýãb„Fd‰•jï虀¢ÐÐâ5ßFö" Ð;ùkEÀ÷#® éuóÓÈzLCúóÝEôŸ&Ö((ÔýöG;rõ²]sSIŒ°N l¡v©©ÛD·ZÒXà"æ:«ò8é¾[Ï­ G•Ë$G­üL«¨»H±ÆL]ûÐ-_àÔ*-À‡6J e ‘Ú°ûëwFçaÛÆféuâ¿zÞŽ˜eŠïžQƒn]½o²åg5V2ozj5¶ë´»ó„¸ ƒËêB®?¨W¼wÚ±Ž;;¼jŸâ0ŽßØ0tå¶©­Œú}*^VP‹þe«t‘ˆõ‡@–aدüF|D˜9­ÿC gYG|fÎøýû¶ft²•@ÎtüÉí%"=Ku|hý7í)O!U»·. Â,ŽNh¿¹Jü$±$™2šQã&¿ùü6ZV€ÌBÝ´K‚æf^jvAÀ¹¬e@J$L¶"Œ7©âA’ýDp[e@¯Ë(ŸâD> ‚vë%>OÄcëÚ Œ¤¥2·nõDy¬éØ=2ŒÝVWêé]8ÐHÑî7H3Ùœ£U !ÁÀb¤@"•Wo×ÿèÂì|笋Vðþ7L™OÏ&±. ¡öbbú­=&\@zΓ0C¢¤l§îj¶õ¯,P¦Ý¨Ú¼‡“äñ óðrä“ÅQ, ÙE®‘µ”¦ç¼È4Xd¨ÆYeHÌÞsc]Æ4¥ÚèáŸ|ÖÿÞ(j®Œ[dh»ôè®NüIôEܵ˜$K°½61XãT®È³èé(˸àYÁigËû¢hR^#Ò˜ØuwTmÖËü‰¯·å“>r؇2E¢ˆPN Þ{S£Wýõj©hvbÛ§a«KÝò‚7Â@‚’Ö»ÆZˆ¨hÝÝ®•G;êë ({Ütr¢R™h›—¨õ{)=›"µÜ‚Í3‚¸q´uÀ&™O®ˆf–o–¼À“Á¼^“Ó0ÙÕtÛ¦zrû6ØOv|”!­§ñÚuÄåΩ«I³ž©ó=Ô“û׸ծ5d—ÚZýÂWÛ*˜[ø Ð^î‘>ÇüµW ±üć¥û$áò[=4ÉÊ‚‰×Üî³/¼/š’î,8ð”ñuaÐÇ/ˆ¹¾ïÃèÎa|Ý(ö$#O{J¬Ý&öJ¾ø¤s?`)M€×z)HW ŒGÿ‚·Ô€Yˆ(H«gƒ¼`¯¸ ¶F0&îh]Ž“Dò.§ $YÑEGp/ã×R¬m妿ˆ£ ÀšGp’§:E/#”hõ¾@x7Óžæp+¼(jA%‰¹¸., ?¢«anÒ¤˜‡/ @á¹Äb’•Ýý—ȱƵ?P€ É?“˜–[&³Ù¿9Î- þV]ÿé×¥Äm%Uî-NÞÉ—!û¯CFßd¼X³•(è/ñœspŽtÀa±wt®VÏn&Þ~„zŸ¼Æêwßè| „"Cï †¾z]ΤU¡r“)ÉdA]â5 ÑÔx/ð¥ûu“¡jdñw¬Àô€‡¡«ÐŽõî©·çÅâ\èH‹Z¿Ž¦Õ:iìeŠö¸ÆWý¥ÓE`¬Œž6üºõ#•ðg(¡G÷ï¼ÁKŠ÷ó ¥0ý9áâ%Èö¶ÝHýQøå?ã콕†qÎüM/:oœŸ =ÃfeâKë:Éî§0ÓßãþQ ¯’¯ÚÈ4'õõóƒŒ#,ªìy]ºP ˆ!ÕÉÁ8ïj<î.g4±øP—p^ªúÎŽ[ ún wÒ•§©ˆ…¨vè€{ÕN®OæÛ_‡.U$X £Øâ.SÕ‘2XB°œS\“!„–’ˆº è\s‹¼kXOÞü#ãÈäk‹ŽG-Ÿ–†¸Mñp2Œ¢—–­øØ+Zåžæ¸<·uænŽOÎS}á|=‰‰{è€>ã2nøÚAiréû•QÕ ¨b¿]€×a1qî¹€ü|®y‚Òg-œãôƒÄ`ÜSÚ3¿ÊlçxhÒ]ƒ“l0¥ÌKºeVJûNSü¹ˆ—8ö½ERW´@,ç’¥k÷ôŒž6üþT€»Awž­Ÿëb¢ˆ]XS;~HŠmo„¤¹õ9¦¿‰A<Þߨ•¸ T‘1žë,aÔÔ¡›®7Š’™‚t`†L}fLåoÙVPíÏ6À>»²cBEÂzÏM<… x‡Œ9ªjà~hë‰Ížàì_Œso}¦’>ÕÖ“ûd©n˸ú…s7Ô1ášIvÑ4f žé\,L†b {ë`ƒO`¯·„×Kd°m¾­º¥'r¾øƒÁÈ,%7ƒøËóZû²†È¨½‚\'ÌÞ²dÔ£}Š Yô¦æf1”Nžžb~Ÿ‹üÆ»4©õî1ßù®Lv»­¾&ü.€5ã°yålæ|åšfüéßu坿–MÚÌ>¶H#1ºŽûS|yÈ” Xj¤Òçèéä>=®ZcjC£§=noJ¬Ög*1#=Eø‡JórÐ'ó| €Ò} ŠF¿©h!"~ÑO®á±‰cgDz€ï Q’Åd)û³ï”³M±`RMÞ t22KÇ3ÁȸP«Rzåæ6-¯‘\Û–ÕX«¨k÷©ñ#ª™v·:“‰wR"›ä—p‡µGžÏ€FõîχÂpý~! Ô,=çH‰ á^¤ü؉hø‚õ<¦à‹øFŠN52C ø ”E„_‹zï=Þ=;¯ÒoÞ¶å©_`ÓößÞ³Ãg’i1f¼/¦®Ù®–tëxðŠ,„7%Fîƒ,á<ƒüתË~<ò¬ÕÀ-@}ƒâ⋲!lJѪ¹ý…ðu¹ã_lŽä†húTò vÙ³n-ÌAH2~ÍLrÒ¥1TW¸;{j Ù½;r‡ÿRFþè­ÑE@”½TÞ•,éFš•Ó¿<`hwLL•¸ GŒYIósἸ\nåÛ¾t1pÃPü#Ya iKÆÙh©’¯Á¢nQ§ëó³üÙFG#FÁG)¦%ï"½ŽñF mú.›ý×ëÁWr ô5'3¦{tË®OÞðs&§•±|^«½ßÎQ_d<¤áŸPU"ì[ïe4Z9–ߎ°)5z…¤¹.±Í>¦£×ÂõFñÞ@·/Õ2—!dÇ`ÜäôzÂK~á9cŸ¤Ýi*Ps(å/î'xa ›eѵãüÝï;B¬ŠA˜Ã©ßÛ~­›•±û=%5Z²v ­iZ µ¯ ½O NÝ“î ' [{8ÈVöÐïÏ…!_¥ŒA!Ú!,æüáXD3+,D;‘øZôÖê[`'º(&âÀæh]‹{³üÛ‰y¹C¾"3‡•ÝñkùA:ÌN#ú–|@¾f2 S=ò0šåzÑï«Uˆ7ËõQœmå\«Šk„c6wúQ¢÷r؇߸ÆÉÅ[û­| ÎöêY×F¼HMJ¤–Ótè ‡:KeÍBú¾Šö³tî|±zó¼ï¯zUT€á £~Z_«¾éB´Í:NÃÖp(,Gqº¯Þc>n£vmoIÚXöÎO_Vº`¿ nqý“ž6€£˜á]˜ÎhbŸ‡¶Ë™-­Ê„,„Õä À?À–L¹ÿ9»?ÚÑ*ÌTÁ…ÞäÊÛ,Ö­0³1`œƒ´üÛ{³Ù'ôPapŠúcÏ·6Ä®¶îÆ¥î5ìºÁíŽXmŸ÷s\‘¡êµcµ²å}b”ÆÚûÁ(é0þ|Óþ8_ñ.?wÚúè@e¸=Мï|²fêÍ»„¦ÔªS¶vdèØ±`ÎL…Ò#Cœ™‹ê"R²09x€!l`E’ñ)ý´aRÒœÊ@´ÑÍ©T(šmP’PWxJ–-¯™oBy<Ýâ w·K¸gïûgÃ` z÷D dâ0bï7>²_?„¤Õú­b\øÈ'Žú qC@d·¦+ÄjaDpÙ„À͵£/ùïÛ“ÜüÙ(\(³êˆØ@)bŽo£8i›ÃËG¿rhéŸ1&>aE—I5ܤâÙŽˆâáxQ6å} â!«–y±Äá´ìè 5@ãÙÀ"8¾&šÄÀdÒÚE`»Žvhs>aتטֶ¥IêTžóB–—£B÷º•Ih8:Õ«Q…øtÃrŸN¬ÕFÆÖ!<Ú¡Ù)íPF§ê=¹&ˆž^½qo8¸'mŽÖ‰Šx€íÜ)ÃÖbc剮ûòPý–¾š")}¢ [•Àzò ˆ_ÿ4ËÝpgãߤ}vFcáAç'?ÒmZà]lz& »·ü}b[ÜçN£PhMë q¶¢pܶItw¨¼F–v™´‰Öa?ìé뼯+rê<Ô1–ý}ÝÛ7Fú•@÷Ìf®pge?ÅnùUYR}‘6ò€š9åæYèOØÑL¯x½íb%y}i²â•b†-11`KÑ;ƒcY1¿™Sÿ Ã'퀬礘®É@’”{À©ðÁVª‘.x²¤Qš5ZïŒh²Jä³ÿ24Å?”ÆŒîýQ9¸>®˜˜uy ™ºB”áÿJn ¥³æ?»˜‚‡'ß²â÷Ù,ùå)41ŠÚ˜ÓÞNyEþ¡kÿÊ>kcLQd‘„´ÖƒÒãðçVöý3ÚóÒèž[#jÁî¬d¯ÈŸ»t¬Ù}}ñUô.¢ƒUÈ3öcߟ‰˜QÈ«vqÔ.v.Ût!­™Œ>W<‡ŒÍ¤;Ëp_üL©Q¡É̽?’"+íd êò< ÁNÌÈyfB‚d0Hù›˜!Vh” ËzùþªGð·eHWÏ•p ZäcHð¼HÇM¸¥›ÈRµ>$ µdˆ0›ƒø„ üIüȶ–zsÇAHˆÿ£ñ—Àßý. ¾7*ѱóœAŸQv¬’måè<üR¯!œw_‰þÝ÷šÍ a¾¯Õ†„î†-OÐH ¤›l0„ûì§Ó“­Ò”a³—e†ÖV6· ‘@j1FŒNeÂߌ)ø—iƒ%®¬ªv‰˜ú„}ïV_èãJ^ú»þ‰ž»„§P s Bò¡ò¥Ž‚YÜKÃF‘‚¢iBÞæÝè~Sätì÷¯BÔè×ç+Þ`†«mKm ïú*Hö!b©MÄpüL½V¢0Š< b_ôx¯˜GnÌåÞÂNVö{{¤‘V]Rª£59 ,º¶|p<Бµa¯K¡²Èž«1Ä}k³²'‡ÖÛØ>t)5)&Ïøù€øåìa·žL&LÚÞhõ£Ú+˜àásc”·éæó:Ä5$Ñe”™ÿRÞ@#Ìž#MM ¤œ:£…ûÅgœ!s~êJ,Þ|åõ?‰}%»6K£¢ñŽÖ0“ËSõ¥Rmh¿"ßg™¯‚ªÏf/Ë_Ê‹ùŸâ¥%ŽðlmÚiöüKæŒÔ«ý§äüÆk~'2(GTJRT–H2O-„«OµtŽ´5È?Ú˸GnÛ¢•æK¿¨Ÿ>¢œ˜$³GPPq¦»–5×’–ÍÊ@ìgŽŠ¡‡xŠÎÑ`Œ![S#žÙ•¾y3e»JìÎýµÙ¾ú96YŒ>Í*r¥RÕÄtíÛØôtT³°¾Ð“¾¤½!±Þ÷ ÔN¾¹Î)çŽM&1F•a<«k#ÆKƒ…wd5À+@¶¬›Oý‰ˆ¹?õ4±FÅ9îJ×÷Ðô!r éµ)t|e…)[[ B~GCnä±ÁI‰µYìo+7½þ|³G?‡ÓÅÂWþæÉpï ·üÆkŽ »¤þµ³ÙÝ#ÈNä(ô½Ýod½ Q]ÆÅpÙòÐTL&š+ ¤_Ÿ!†ˆï6«ÏqWU’FËuE¢ÄNÄB¿NhMjúá„Ë5È:*\b¨jS½í ŸpnImÔø£¤Œm‘û‰çDî1¡(œ(s‹³ÜagŸ‚þ”ÆDý¡:¸ãç¬L ¨Ûw¡ãtð›ÈÈÂcÀâ@q¯’þÊàérÀt`´‘?,߉ýa˜[æÙ^ç`ÝX—ñæÌþOY›Çele§>uÕ%p‰>jj“ñ,·üM&@Ýf8P„ w޹kôìOl¥‰Côà~ÿ"Èï5|–¶•|7X,Ä\ó¯fš`c‘çÔé¿þCæ…fר&;}_ó9gx¼Nåõt†–î…ÂÜ^B6uyí]ßwHÚ*—6êõL¶Þ§@&ƒ[…`¬.g•b p³³nh• é‘n(ø$NÅ/}’S@–ŒC¤ð?—…êýo»æU»PLl.p;?_œí†ëP¼ÆT,Baï¼gÉíÏœ=ÜhØÑŽ'O÷óF§ÂËÃ鱫¬e,“ü°iŽë[ v+²¹HÙ1xV÷‡Õ|ÉÛþóÏòS€L¾· *ÂÇÎü©ª›+™?ס6Ò‡f–BLœ‰¦G¦JGºX÷Ù«p|ÐÙbFþߨ)>U#˜¤ôA˜ á@ÝA¥4ñ³Qu´û@O™¬.nG°Ñ; n?(íOÖDP+A–u…ó5ð±º$ñú}‡LNª ½£Ç p’B°ð†õ-ÛÁxŸ0"tÏÒÔaçl ê°ŸýžeÇ$”J¾2ƒ ¿˜èà]‘Žª§B§1 Ž‡#¾Ð튰Œ|¤{Dƒ=Úšæž9ü;½‰¡ºp¶l³;ó3þr›À¦“Ë6Ÿ¼!hÚ‡´7†aö/ŽÂCþÈKZ}J¢FÆ—­ež,XãqšqçÄú¢jš‰ìÞ­É•8˜NDê£d‡ ãE‡7ƱgüM.Æy‰[)kcƒLG¬e»A)IíM¿·…ûk²jñr ÿÃ6˜ zoo‰hGâ t‡¾±Ÿóø Úy0¡3•5Á5üV߈WŽã£Î'÷Í{#^þ°hüÝEMëÃ\ï‡uÀäÌ(ÁGÂùÇÍÏÆ<*¬W}м$þÑKÿVµq¤‘ÝFÙÆ„*™_æüPNȘ¯d*hƒ2±•è­zþNƒ.¿àpCÊýòë*©e=2Éö¨—ø¥Ñ¹}^m`ÂWýo¶MZu›g¸AÊüL°ùcq©do ͼÞî5˜CÐÄnÖ|5ÕJý“F£¾Ü2Ù£ÅÞ—h$ÖE°¦o¦M{ºS“…bÐÏ!D,¡e,—(‹œôÕ¸ËßN¥ûÍ/ÚoÒx/úš³Í¯i”¢¾&¹ˆ«—ÀŰqríÈþ©Ï—)#A¶l@ÃY áé3u€LÞå3œvÁÝžpÀ\íò ž¹&`]¿s‡¼i†®´ ÅÄŒo§jExÚ]|ІulPzLÊ‹7&‡ån4PwÙ }/<ÜëfËZ.¥úOggS36ýÄ nK]Aó<Ù××ÖÑÚáêêåãÿ'Ùàðòùóÿmááðêÿëÿ1Ùãçòòõÿ]êÿbýüùÿÿvîéõÿõûÿ†ïäæüM€·JËænÕC)™U ´ÊN®SŒ^ÏIüõ½jáç ¥÷“ œ•(Ûab×à]èX‘.ÿÿ«–ÚŸõ„²+>9œ™cºô` ‹*/8ŒÑpqš#z‡HàÑ$’û6D=˜aEÐÇ—òÊ:S‹0‡3ýö¢õ±MqÇrѪ¼]²•˳)6m·!_èîŸÚ0¶ÙcÞÛ1|ŠMZ.|nYöHS{‚ù'R›fј4J“:ºX¹. XAÃæí @ÂZ¥ÐMüLÓˆñ<#`…?,ÉßÄŒÎåNàÍýòí|~“纲ã§ŸßÀ±]mwwæhÕ7Jg±uÚŸ×íêúÆ}K³Ôº*°&3~$±Uû®òEn$NŒkMö»‡Òï6f!ï³t\þãß'C6û€«‰¡oœ{†!ÎN;–7-ødAnÚ ºNygÓ¤†ò@‡½m©pպ˷o új2tÈ@,mhpÙ3ý–Ò­'5¡yqQ4”<–|î˜Á5íOžèŽ÷ M%¨H}pßVš’‘V/®÷…üLÙm߆ƒŒùMЃ»^ª?æqdrY]f$!:zXŽU¬<`®Û(‚ºÄ‘ƒâå³oDAúÆ•Œ mí¨‡Çˆ¥Žtú¡çéý†¦éÿ—W í¼ÂJAE¶Ÿ:Ì‘,ÒW,uÆpW ->c ÄÍk¼–O*ù¼º¦\¸·ÖZ1à úÌ·´4¯T€ Ž ¥ÛROOú;i‹“ý£~ë<ìÞ!|/[ÙÒVò6,j^ ƒšE´ìdÚ”¹ñTXI(cN#†Êå¬<ÕsØ.eüJ‡ÿŸC:ä&Њ74'ì‘ÃÿUß…010†æü¿àÆí^‚÷´Q‰Ü´@í£ µK#Éu&“°âôËê~GØ[HÎ6˹7…®~®çz?tµTÛ6í—fJ2‚”P†—‡š\&M”¬´ù|·úEø3ä¹m”ÆisÆÆBj ‡‚5¡á|î6a`Š= ´Ì?ýûªÏÕÔJpŒ…®¢¯eQ”ªÑX Âù`”5B«*bÀüƶ}run(§èKïìhœ<ø@}…ÑQ‰h@™>6ãüL¼3{EÚzrŽFþ3oìbûq¢7rÅ· ^;×Ý=§Õ!üàÛV¸=Ôh!>¼Ç ¢¯hj\ÐÆ€™ŒµÌUÞ4:דs102‰õ´ÂEêØïA?]aÈ~Ê”É"HböíW„„ -ƒ0§WôhèÐ*‘b%V\¸kͲÐä—¾|pr‰qIƪti-ýŒ½¶–fh´Ý§€qUÃÙ(òÓ0Z)hàÍÛD Û©öF<ïp†Úõÿí0á5J”XEr¡7—¾ó኶xiI퀥.=àñS%€í›Mö±Ó-ÜÊ€›¯+W ¸,¡nž=*Föü•TAЮ96úp^ѽ1Ïpo=ujƒ ÓU¬¡wK›3WW M¼ø8j¼#ÜéNÕ]8Ȉüû4Ú@Âìðô¤•ÉPdð|·Ü°ƒW\|Ú½:2à‚5QRà²+Þcó-Þå'üIàõ³ëaUâZ ~~j=rj†Ô¾·ßaLÓ…µxÈhÜ:mÖ»¦}#òu«(Ã%a‚W–ývï½PQ=ü«Á_Ôxó·8qbþŸ‚Ó!"/NnN)OB¢QÖ …5L‰êè 5Ï“Tàé´ÙˆIy1¾7‰fQUU=46zŠÚ‘·ýq>sˆ#B)ý/Ò¬Ç!ôE»öô ˆDáê¯Q‰’ ÿmŽíPmn“_½ÔÙ¦ ¼ìò)çÕÿø2oß]?ÁOÚ‰ cÕFO ,7{i}ÂÆpæpüIó*RÂKrpõë mç£JÔxè}îö›I»²÷ÖÐ¥ÒA(ãÅuxjíÕ±w–eÿ8Yðü„òx#¯-R×”–EXãFv8¦¹½Î˜°·±œ`Dÿè\O)ÃUU³œ+?SüKf÷µÕ«#~þrÆcËJ›x ™úe©t#çõãéoP†D £AZ8«"¹ÎÁnU¡¢!« åýŒÏR{SlŒŒy>ƒ&Bd֛ǿQx]•4äGègð3¥Þ¸X,Juèá%!ß €"øêvŠ`öéÁý·aRX‚$MŠya¢ cüÙiwÔhs X׎wB¾±3ŸÒ 3“G‚Àiw¢d\ꛬ²°%FÂdÙàCÀè`Ö%b&o1K®_À›ÂMÔk rÚb'ú¥Ù1ßß›ÒݯÀôçô{s Úzù)&~>Bs ®“—¹ŠêÚqwxÚ”ìŒ$âA å/-äY6ýŒóK¨î­Ø©ÓnÌ™i6pÒ„p_–‹)_ÇîFñyªNÉŠŒ„õ{óÂbR€¸]ß-¢{3ìnåI½ì ©R˜ÁnüOtœr>¹µ°°ñð.»Í"EËmG¬Áü³¦\¶Ù‘ò·üÙwpï*ÿé Åí=¹€f|z´å¹Úg镇{ÉÁL¼D÷M´Ç#ÉdÔ8G’ô;6šïsØXç0€;øÉ'o&=W÷¡„!s”é– ÜåŸäõnGäuˆökhá-ÄoAã˜"H,Ÿ(µþ÷SÚ:4îFŽrüt{;%£Ïiå†W±°i§¼=ñ ÄXƒÿqßHFîFÖè¸er—”©.~"ø0ÿ¬¬yÖAÒ+ï»+ªqÔ ²ùNt1ÇoŸ¢f…r¶'Å?ÚÀÕDÞ^‡Nê'©AR^½—ê¹üL¬óù™ÍÎã#ú‡ú-¹½ '*¡kÓѲ‡l¹¦ ×[ó6SXªSÊ5ñ‡Ú›ÓEJ,AÿNA+õÊŸß5cwQ~ÝÑL&ó´"J7%âÅ¡HCQ~ÙLî¢$·;ãV¥(®x¼ K˜WI§dÙhz ƒ6`û›®Yè@ê ½£õJ¶Öç€hòöŽmc!/H‚©Ÿ@ÉU™`—M…¡íF¹×QÌç©ôŠ5Wl•f¯ç7_Ž»L¾ÚÒU *¦Äy".ìM凨<­¿ %(´Mp%ZIk’ü|¯³Žý¨e[:§ÜºyM4‚u` Ç`¤ýfRG÷!7òþBìcxÂÑÆßí;΃‘È)¼;p3¸ôOd¹Iu©‡H7—™ÂÌßòêÎ_hkðIBx)YRûýVпÕ1-Ù…-§DKüÍà.­«ýkxÕ˪Y×îßÙç‚ôãcëiU¨mf¿‘)ÍöǤhÖŸËμÍÄËŸÔcZ®ª¼ÀpÙEûÁ1‡3ó'¯2¸¸ÙÞá/™ó¦uÕ¹è¢HÂäˆÄ8•õ"£øš¤’ïÒVÖÞV—·‚òÅQ¢ªÌÊ*D¤[“-É;·í¬±ZâëÐâOµÑzq7·V]ˆÑTã…"tY{+&/ËÅ’Ú£q­÷vãÅ­N~óŽüLËhéWÊqfÈŽÌ?®KÒJdø%¬N°éHˆ%Îâ…é“DjüúÌ·8cgQpçO»t1W¹ [.rvJ_,ò?üïÙh‹»| +jÂ~»Ž~ÙÂgÌ袋2TÈM)íìs2•¶Â7õ¥IêƒüróJŸü 9%£–qîT9^>§WÄqàÏ8 >6ËD“€·ìÙ´„â-{àA¡ Üo5šÀÀý ä,é Âræoí¹Ëúæ;S’"j8“*°‘f`cÊÄÓhQ [U<³•¦üX·fø™™àÍïKú0ÃnÈoÞù±¬V|Ý] µ“–á¦Yì]tŽütF‘~KèÎBábB–“š-V1…ÇÖÈÓ.™2Ÿû¼,³ýï  Öô”sãiÄ9tâͦ ™¾á¬*Ñ|[Ë›žá3ÜN«¦”ãÕÍ8ÝJ×1¡yI)ï5ÉäI§hrÐѾ/HÅ0tÖÂÎ+®©Šîƒþ°Tòµò/aGžLÒ½çïT˜‹`¤ªÙ™B?Ûg4ÿš,& ù;YGÆ.U&úJ2—ÎŒÿô•¦†\¾2$KC9ü6¦ºíôx=ÝS §ßRƒËò}^Füb#ÈVýPÝÎ$«îùÆÖû±«–µ$›™OAÀâxÙgG¹`ÀÂcUý„ƒ-E*z6–Gþ”ÕÛ€-òáÏÙä 8ÿp¾†Ë~]¾ªéËüå›H¶£ ÆeŸ!À –\ÅÛ¸¡T)”dIú…ñ‚Bò[˜Ü§uÓ¾¸‡\ ~åà‘µû9"—küM2˜§JöêAϬ•’ÇœüL«#°¡X´ÑcôEU¸^ºi˜5é”`¡^ÍÕ·å‹i¸,ÁôwøÙ µJ’qKëqòÖÒvI3ìW£ç5õT­“Á¸%B’GbýTùÿH2…¸#XBއ5.IêŽYÿIC$‹ƒ€×»Èúûm ê |eó±ã/ËÜÁŸ¥†2F; #¥³Uµã=¸ØJ†ßVZ%qy\¥DûBJ%?’qc< ˜×>W'òêª` ¹”µ¾Ë7E8WßVÄ嘥ÀäïÁ´Ì›?f@Rƒ¨½÷Ë>ás" DqB)^òópÌÜGÙÍXŠ“[&Çu–¤ø‰K1Ë«†¹ÞÅÓn–ëejOC£*“2{¥Úˆ/zd`I6½E Ù¯™4x@) Š”TwqC!ÂCÎfM}t>ü`Q …¦¨ÐŸ5æF=)Ï8ޯȢú–+ ˜7=v›‹I×Êaå6Àb6]ÉÕ¹uP/¼"ú­õ>@0%—ÙµS§£@àfê}Ÿ=CüÈT~Ï¢25Uúi,&?ŠùKÊë®ØGŽo´f§ëÚ?[j÷òÈcKHǶ·ÁÒÚNÕÔ+.“ëBBu|||A Ëf~uÿ|° S¿Âx½¿© £_©èþVâuWrD…ïSÚÆÙ»ÍÞ퇶|ÜŒÍÈ,“,“Gn/&\ž\‹Q¬Œò9›F)t™Ó†Å„+¥Ï_I‹3Ë}KôgZ8êÏçŒu©eÀ í‰÷ lg}/Þyv²íÄ;øðøIÖâÏ`}GA¹‰^'. CÁƒâγT†DâƒÛ¡WT´V\µB™Uð‡b”v”h€ÈÜ´ºøMÅaMY´A9 Q ©rž¼^—‡‰uéõãÎ^éÒRF8XM¡tñm¶÷‰—ž›‰bˆ(k`µA”2º{9¯$µ¶¹é ο“¸2íNÛ¸»ÀC.¿ñ(€H¾çQ¬‡74$dã´´™"üMÁöÚâåW¦õi¨š[vv,7V'@˲‚À"}8 P sè·¶H¿ƒÃTx‡aT¾Hú@ÞgVï¬_Ë>Ÿªú'~©…,1-; ?Í›F@*ñ¡$L“o$£N[ ú"æ!džñÝŽmãnó`î„'l…3OKVò]ƒ/‰ŽdØ&k×÷©¯a)ëŒÜ`ÌÑ…•RÆåʶáý;3ò’MµÏ²Å æÒ@Æ’K1…,Ùá ½È;ÒGKV%-EٮʌñßÿÓxó4aÜAÂÎ÷0_¢ø-`ëøl• :üM¯ƒ=}AˆšWÖò)"‘àµaámÍLÒ³Ÿ—¹¼z+RŽ×ëjHþf¾º¤x³pƒé×§.XPù(X“±O üoy¶œ±­% ùü–=ï>½0ž/ëWÔW“¡wXÇ“/„˜Éë(U/a•*',)N®„X¾4 C(ƒÖs±‡‘ÎP¥úº‘†d®,p%C¸b¦h÷e,Œ±èäÚp̪AšµÍwµúXñ5wû¥¬´!KšK¤!±‹·Ô…Â}45}Á2ÿðÂêPߊÛÁ °âîSöðù1Žü5_9JÂ;ÝœÀ%T x‰wšrPÛ`HRU(Öw€ÆeW î¼}bvvÏ^&ï >dÊyi÷IŸ>ܶ‰„XÔ¾1Ҳѽc«Í™ûÿFæžO %š-XÉÓ‘J¬ÖõiÞ_Â+HĪܕ ¨È°o•kv¹åøÿX8ažàöŸ¬#ÙSþ=±¬ˆ+‚x„»ÎîSUO]µ,?«¦ÃmOd§_K$í±ÆYA êþ1ÔŸè¹J+¦¯¹hÌÄûÌzìB!5 AŒËŸ•Ìù÷— Ö©:ÔŠ{F êmv{y£ïTÙx› Ñ> “ÖÝ€f­üÒ÷©÷4ÕN ËÙ~oh}¦LðyêNk|\û¡kÇüJG'°c}íÕìì·“ñجÀ¡a¯6Ô^àEFõK“Ï5/]¸ÙpÒ¡-…Çl!nŸËGýþ¶£  ³§ðSï?ÿ@çOÖœPÓ\6¨Y,B§I¬/1aS‹U*«_å,'ÎbÓÜr Åá«´ª…&Ìa,£j‰õþ¨Htò¶zd¬ö.ck•ð;8päÎæGN¨·½d?"ßr÷ûº_Gxb±šm3ðº(/Ö×IÀÖÀ— üJUSRRwÕGâÜ™·Gfù&HƒBnŠ ö%^ì÷†_ng¹ûâ+÷uÛ»AQýAه˞àøA§¹_£—c1µú\Ù¿žÕ:KÈñ{¥úáác†Ø€^¥ l)˜ Èê´ìK²Ó´rÊ8h…4‰Ñ$ê³Õý´äÄUÓðéKGmB<ß:­»—]@m·»,¬¶Ï‘îÚcÊ,Áú‡S¶þü_¶Š"§ÖÀ-ŒmĪ mä“´Í BþY§\МEŸòÍã­æÐÒ¦"´üM& S윃³iê´Bù×Ã×ÓXyTÖ4ˆµûn õމxÌÕIy÷†’˜ÃçRá?ã<–ë´#d¦Èß§öjLà y–8 °,BËeÑÂò$ŠùÇp§µ”–p5Í=ÍÎĺqpCvީ֒ü¨Ü¦®z}ÌŒIÔo²,I‹K7VÌ-&²4 vÅâƒF,åRôøÏ‹»qíz—`BÌÂ¥KqùD53=7¸Hp ñÌ™•‰`U,«Íðã?˜Ã! ÓÒ1Lç©åëéù[Ÿ><íw‹eW›Tªec^KîÂüÛ¸§}âö˦ÿ{G6›\é)‹0fM=壟Ë9>ú:r·b#P©Æ°'wÅöÔsç¶Ñ3-zßÜISý~4æ,¾ãOJάÀD4‚æò¹%‡)ZcpY¶Õâ‡Üe쫈°ñå-á+uÞ—©)×ëimt}-˜öq‚®ô\+<|Tw¨²}hh)ZT;ú`Ds€7Cì÷êª%Ú5isÅý¦r×½Ômφh ªys%yîñEf˜βŽ+ 啨kù5…™8äžµÍóù'¿‹ô$û’“F¾Ð¤¿Û]ìË]äÀZ%û&œ’®J¼üÛÁÚ¼Ë5G…ÖáÑ<“öµ:22¢4*ãP2-q7yW(˜( »ijí¾Æ x2ÒMX’)Ëò‘Ñ:I6 =õŠè§‚e^b“ì@Õv³ $ÐBöüvM›bEˆûPÊyA—Þ^ÃîNd‡ùÄÝ–n)„îsl`^DÊúg;¶SÇØ‚Lë3Žs³†á aõKíífý{ÒÑcrÙýŽA ªYkóœ:¡ÇbªPE-þ¥àø°XáDsYÊ™âk,Á¢ý –CžñØÇ#$&ó(#»3ð}*HÞ,ÂXÞG‰÷ Ùû9r…íÿ2¡jŽJ±üÛ‹(ÃÎòë (¢O¥­yº9¬X¼u}—¾‹1ýQKšfÌMçk`”(nÊòþõ-a"¸,Äß&FñpY¡=Ix—A™Fn<vgœ»’wT«_F×¹he—vIÓ$1¬n=zàÎŒ7(¨M) ¿Ñ ýmÍúeö ©,“üÆdQoʱú\Õx¦¢8˜tÒ¥Ñ…ç• F›&\¥ë •Uú Âùë"ÛÍDÕI‰˜O׊Þ,³&•1›k»å¥càÄÔxK«”-æïù@rÑitˆ¬yÈ6µîl<'‘†qŸå×_ʶü}b›²š&·èÿ˜Áhfà ҌȜ¸"WVó"‡}ƒldúY‡Yé/D§R…'ú-нy·U©¡=šzÇ­îÞn›®æ±FLn»Ô0ƒ(û­/ʹÀAìSaÇ“\m›»Ø¬¯ÞÓ~aˆoV“ç[“„ŠQKºþI3KßÐùbåeh¹h e÷Ž5ŠÁB kÀŒZÄÆŽozrÇÄ$¤³:‡€ßÄ"’aðø…s71 z™£Áß4:\©ÉIÏOÎNȨ”L„ÚKßzˆ{ªØÃK* ¼iуPÁ‰Ò;ìî>äbõ Û&Â\€ý>sCz®›¥½·,°–Zeñä÷2ªpàø~öbãþª¢uVœ!_•@× ù6žV?{`À¶™Å„­^öÏÍ,ô~»ÈqEÌ ¼´âÛ|ëñózó¢@¥V«0w«zñ3l>ºæW;¹¢Ð ü†v+Ÿ;Úâ¢Ç©öuäì“^åØê%t…×J8ˆóÞ9|8•¹4ôÛü¬þ„žÅÂFII“"ñ½ð°[‘0| wÐJ,üc´ƒ€\¶»k'á)aøv]Š_6,ÿ£c­›áȈnû#ÇKñ™­A,—yE]Jòê…C’jf[ׯ¸m \$8àqw=4Ý"¥ñL¥¸œqQ­ëLj—FMéúþX¹WA€±9íÊJöó×°Á(<¸ô—ÔóÉWßxï;z" 6Ÿï­‰Uh}(`?Á9Ü]ŸŒ™êaÀüñ ©;¦½Vxžã Ž8̃—HÄ-%þzÛø-ŠYjÙ¾ æƒ Ü(†`ƒÚóbAçc,Rt „Ð#z­P/™€ÔóGCKzLîþÀÈV>8W…­pmôApÅ §Tkˆ´H)O^Ý:w‡ŸÔ_³—Eï´úC¨J FŸ™Tr ¼=¤ <^‘#ýµin&”çÑî”–EåºÜr!úÑBIò°_¨=ܾ$6¦‘Ö(Êe‘ª«/w}’ÔÐÿ§÷/AKAÀJC´ R´ñ`ŽlXÒÒ{Elª·¯={'Œ,¼¬ãy˜:—=d_£O¸y͇“§KF<Þ‚ÀJ >ªu„Ñ÷7O7*3=Ó‡|¿|0š+´L9†Æ;ø×8.ª”ðÓžòfãÀ=\íAÔM!UàNF O‡¾È @1ØÐ75$8|ïÓ~ö ëˆJFÞÔëÄ:šM6´üü4ôãvn»ÃO2:‹fÀmP8­1–ÀÎioPÏ—dÊrµLwÅüªæŠ ÿ¢b`´Ï,ºCJ×kÙ%oTÒÜQµ>¢òÔ”[¥üÎ*Ë`x:äÛÜ¿ÙfF¦½ÿÈgû¬‘W°'í#ú¹E⦦4Â2B®³æ‹4ãìQt¯nµ"yN$ñ:ŽUBÇV~ý±Ò1" äj£Ž×—vÁýå²í›â¼ ¬Š‰Èg¾„å`ã?ƒÿ޳šbpGEÕõ»û‘ÙfåFLÉÔ|šGµö8¬ØL%ħ>eltžß £ùùP˜paëc;÷iÕyŸ/ %nK￸C¬ÖCÂT>IÍÿ·sLVÒêrÍUÇ„4Ò5›roe°‚(憅*˜qâ ¡¿Þ9žÃ³ß×>Oâ(R?I‚ìé´—»—ÜQRÃr7S8þ²¾«ží͹édä‚[ñ݉\f-^£¬Ácë„Àš„JhèÞ(ËCVÐÃsÓ9¯ŒãjÇѬ”QK½åfQõ:4)¦£û/M½lG½ü]ì:°m¸êB<6¨ÎóccÊÿ¹ivTÔ±qÈÔSiks“Âÿ\ü¯Ïü™ÂÙ­W‡ÿTô:&ýJÿ<@·xì¨_ Ù²ªý8ªX$·†Þ}ØJgÐ=4-ç` €§Šk†Ñ<˰A]­51ÿme’mþ?`ÛÍgè®jgf!Š”Ê5™ñ§'êV%.ÓËn…°ÃY‘B…ü©´ÕŒy+ŒÞ¬½”³.yØé¹p”¨pJÓ¹ì(B„é£.r%BœÉ<]%3Å‘ x»í,B^âç­ž½¢%EwƒN§ú·ê«¶§$»°9 ÏÊtÚ”§ÖèÚò'LFë$e…XóK~ŸõuÊ—ÙŸ2U%ëf%¾ºëa¶rÆ,4¸Ë§zü›Æ^ªy¢·X…‰Ã@†µÞ°cê÷Š#R澩­4PBËs{\ªT¶Ó|ƒÜ†r2UgFþ_u޽j6?ÂŒÐV ‚Ÿssu ©Ó9ni+êÀå~4u}{âŒú_=Äö NÐl¯ÆÀüÎæ77“p¶¥M@oìû+áYøÇ~‹,_ qa°¸ú‡ü|QÂ'+ò‡ JÜ AÜÌLކ çj‡ÒÁ’ŽM³w{ âhe”kCóê…#+;–'5:RÔ¥qT ”7nL$—ÕrjŽ£¿’|„bÞè~!õEô'ìÉ ³xTŠe6ñ‘“ÿ‰UGˆoÏ ^¡zü}aeý£*þBž ¬ø×±p¹¤’®+ð»¿iDçEÕ+$àà*í‰ö5ÿ̼x—0 QP}†ÕŸ4MÊÄïø5Ã!êÄc”ÂE–DhÒ› ‰gs7–\Õ¹¢'anHz1ܰ?R`êvLëêuתŽ>Q-1çõÆ9‡ÅáØ˜.âd×qvK~ÞÒíÏ``3îåRf³Û¶c9ب­G¾ÅiäÔº6 V+â„8¶¿{‹áæº"íâs˜/¿êœ¹aaôú»t/ã£hC62eèm›“UtJsóóEbáëÁME±{à~læâ¬J¶°élh|†˜Œ€bñ¯ßù©j-­2ùbé;޽ϰ˜jýõhÀ§¾·‘Í—‘b´WaEûlÐi6&x„Cùƒ_ŽšhÑÍ”Ü!  ì½}Ã@–× 8öðŸ]²Ï"RjUPËø§ì)G•‡jç’†ÐE,à©sn'oä$„ù®A„|ë³æÖÕ·pjr·á:óªkÒ)}>±Dw¼ëÛªüX'Lj ‘c6d*¿véÿ°Y¿ßÓ€@=5nlM^4„©˜–ã58„b’vmÍ’NuµÞ‰û#J’¿À‚_Ï>Ìy›÷A|#@\­± =KhTLÜ)€ÌH%#ˆ4ä1:ä l 0ªBnÿê»îÚ(éãSÛNóLì^‚AŽ2 ÷ãÙöÜÿ (žúàf–|÷ÂÙνJeùrq" EÚà!!ŽÒWª%¢øªö¹@;kè|×g×½ÿH·¯Ë 5A¯Òâ¿,úq0cGçmk¦Y]Ë–{`¶¾I¨ùàyLÜÉHÑòÅÇ*ño\®ŠÙÚÈ¿3üƒÓ÷‹\çi†g¦ÄW!¾~#død¢†Åxëk:’B ‹õ­&Áh¶TŌߢ¬¿áìªÚ‰Îöš×ðò'S¬ìÑØURG%×àÊßÉí–+Ö8Æ¡Æ$ãÙdW¤A1õöÀÈ–‘ˆ  Ì‹&nP]:(* CèEP}÷áÃÅÚ!JÛbÉeq÷nísyË{ýƒù"ã2´y§æ¯æ‡LêH¯¦bˆ®kDuàå“wræ9“/pñÙˆ ÌáZ2-±ÞìaHkÅ&É/ìzP+°ˆªÄtÐEìî· Ôåù½îí+<>¨üIò#´îâß¹³;ivVßµâáøìÁ8_s¾.¤EÃ’ª@J×V¾±L$¤?d+˜qÎSòæ_²d,󣃜»%½(+žý´é*±:jÖ¯¸?Gñ$ËAÍ뚢Æ!”¤yùª&¸|¿4_Ò×ídµ>שã=™ÄêDçÐnù,è•ú:9â–ä;[lB%ý.Ñ~±œ¿Œ7Fð$ö°ð™›Mî–Û.)f¾0vêDâÔ0œÝ«ReÕrùÚ-uýóx@R;9Ö^gECOS~÷hгž?‡ëÕZþgˆØµ*ñ9ŽŸCÆQµJ#[ØÞ=þ‚ÍsDÚ"WšI¿™ËhðÙt¦ÚÞƒHËQWøÊã ׈¶ „ï)Q†¯ÀˆzhfZ—¡Ê}–¹[ihsîxìëij!¾Ðõ¤!Žó¦æüÎy&3”ȳ œÛLËZ@hKáqGüÏUtüJU×Q>¢.3i={Ëø hÄFoxÿ¦.}t‰@¹û÷7nû¤‘eŒÿ)Ô6µ-ÛÚÈqRcÝw¥Ei.–w%³Ñ–‡ØÐ°Ðe A47Ī—¼ú— ÉFc3{!HŠ FàK¬ß%¯YŠÚA7R¬ã ½'ׯ’¹{µ¯ÞôÒ-;NêbM+…~™VàdPo0Êïjûê@œZ¹èt—ƒx¢>oÐï ­íœ*{ë¹Õ  5 A®«ÿ@8^†”¸–òïCÜçé&î> j—}]ÆÅ“÷®ÉûîJ‹m^¿I%ÌÂùüMˆ"ÇÙl$üÒeàèpõ(ç‚/¯êE–LâúóÆžŽŸ5†%¯rQO¿ƒ„ômï’™Œi\°Cé]è?†ò›Ç¹8¤I£ÄwúÙÀo–-·´qj‘y\©éttúÛGÕ «×oBÐ2!"­ÆäÓžƒœÊIz±õÏÙMpç),Gtü° "hîîlm`{‚m/—8S-ÆÙƒå`¿ÀÅêZ˜æ_ ÜæßŽAþv¹ó݇¬dÒ.£pó¼g$ƒ‚*ËÓ±b¦bM6|@ËêÙ,¾ãÀüM,ÔoßQƒv3R‹ na ªýf–AŠG«¤Ž| v aÖ§Š™ÍÛ=MÿzÔUÏLæW•Þ{¿QÀºD§²å5t‰ÉËdä·Ö‡OSSÀç¾Tñ-^eúC.Ô ¤ûÁý[‡bGškÌÔ•R<-é±B"¥z£83ƒ¥Í1 ÷pÇky¶öÄO ¹"ÃÌ, ®­ÖÚ‚öR) «Pk¨ÑÒÅû $ýžý ºÿÖÌá¢?svä…Gàãð ìç(u‘º_^šŽÑ]šA[ãb^ ¨»÷Ò6È€r’ ¡ýûfÓ73‰OggS€î6ýÄ nLž TF8äëøÿáØÛèàåÙÛëõêíìÿ~ßèÝîóÿÿ—Øãñãáâÿðöôóíïðîîïìéßÿ‚Ôé÷÷ü0à€`HO£ïÊ å¥Ü'ÀWÆ¥ïåˆ4zeõîÙ^3{Ýà…÷Ú ŸóZ[SEæ¸Èî!´¨}о *øÄdÆ2ȳš°¾Fœ>?ˆ NÑ<ƒ×V ×¶«TÄOŠ.ܤœÝ\²yPJ~³Ù]̓EoÑ ªèFÔ°xµV+x…Ñå¨R7¯ºv•² wšU}Ù£ƒwâK´÷_)ÙžñÉQ«¯üM&OUò q#Ç‚= ¥‚;·Iÿѳ9­™zÍ–'ì:*(H0%L£ùøâZΡòŒtÿý­1+ îckLåfo)¥öúªÏ’ï—+ð7ëNòêð°‰F™Ê§SBªrힸĨߦ>Q\¾!¤pYÌAä'¨#†åˆòýÀ«GžM*ÍöENµ9' [tÓHª^ñÑÉDîŽÞ ªúúhŠ##»ððÏF„óx6ß«.|n¤önCäîÂýa_ ê-©Y•w·ü$I_/®,%ääP‘©,°0ÿcðh ™üï(צ=UÇ^V7³Ö*>DáØ[QuF¡*Q¨­UI´%&V²“u©eAÌ%ÚÈb¯@Œ“S”H>ðÿÜ¿¾d\q ÒYàÕrEd\ uLu §ºö]«¼Š_I†‹?hgÙNà`†!À%·À—öì6½pê#b+€i ¤¶~ko*æå§C*ÅbÔ|“'ÇÉ+¡ rF®Ž!áB›3ÒY»×•8[{;ÎÊúæù—ûÌ=°¡:°ŸƒXÈšLTÚÚÐ#-ÔWÃwIvÉËœ9Ê7žÍ¯D’$©ë™>NšÑ·†siü°$'kìâšStÍ“ºJõAeCõ­y’ÄHÐdMÙ´A©éÏʨӑÌà  ÁÇ*kt,ZÎG²&=Š—µ·2©·pQÝØP¨âQ«÷‹µŒëâ—2;;€¡Ñ¬Yƒ>³`ËB ^]Ëõ»¼±OhtwŸ#«µÐ‡I‰Ý;˨†i#‹°'·3”sÿáԊжttÕ¥Šž·"‰ÎcDêmz2–ÏS^÷œ÷ ¿¨+aªÉ<ê¬7÷´F2Us8è3\n‚*cüÊ þJ&™Â°¿J‚§|Ì3¦B‚XM€è€l?ö’¬¤2HµÈÔ4@¨«è”´8œ^›¥õ7A¸f‘ùÙ±û4”¹v·”F¬ùpUd‹À´üM-Å^›NføVò¬$¥¹0$È@B˜’+ôÐÚ ËS †K×H¡Ï(Y»FÝœ1;òžtp€„ÔÊñGo$¢ J™™}6eÄÑ‘‚Ê6—ÅÐðs­õ¯¯ †81ëÿI•ñëä/6K?HõIh¥@a0åA{ Ó}ä´!ÏJ5ŧ`–^B·QÅ;ÝbIq)Ògˆ•'>G\ì/|\e½eâ4€Ž¬!O@ùŽžw"H©†‘¦ùS”1µyüñ¬ )mÕÌ’{£Îd–ÛŸ%vºþϵ×áõíÚüL®Æ{Ô+òµ%ОG4¥L–hªaÙdª²çhÆ+IÎö†ã5Ìl¢½¤Mò蜽¦¶T•ޏߝÄÜÞSI*žæ½¶’÷]‹2[­ƒ tÏzËó²d,–&0l‹3­êXÿáuÏÔö+Òé‚’WÉ¢ß|^¹c´z;RZÙ©'ª¨uC«HKÑMJòÌûÄ@Í5^ýæ®,ÿYø'ÆÀmÿÊ ,%·sÛÔQZz#<êW«<Õ$·qÄ•¢>&âø]ÌXoàBýüIøxÔSx^«ßù~¡§T4þÙæ‡c½´››Ÿ˜@Moû‹¯Ë ÄNZó:ºõ‰‹âÇÏÊž4³”]µ(ÆÛÜÀ¨®uaÄØ7º]°æ´Œ ¨’]¬rYža$Ä)ó9±œÆñ÷Y%ísU­†ê‡5s–1’ˆô uKØ“!ö†&c\žuPla=0Ô¦Ý Ù’ÞHô²@çÒó}ô–5q×+äœøÝhÖ–ÌK VT…ÆXk¢• !ši³W¶9£øëŒ{@9ϱ¼£ÜÿüMZ²¤“8EЇnÐôêSRdǸàâÌËÞ*JÒ.XÓÞÓÉížãÈqíó1]µ§Ú¨g¨${ ¶ @‡Üåu×±6`·põ®£Ì|è¶ÑžDk~£ÚF©wÇ8P}D4d´M…€ÜæéûS Å“-¥Ùy·sfwº,KvPéж ÀÈ=òU ³Ú}=™6~!ÚCAå´§‰¶5õÊRj‡\ ¿Nëw¼NÈõö[Q­û$j©ÌÆA¦Îd 0QÊøºœ­5ù çƒÀeWm-Å/=ŽY~!\ãüMbïÊûZ*H"<ÂtõvFéÉ`ý¹mÚT '”©ûäÐôâª:>aÇŠË*ëìe=û"!óƒÖâ"¾xâÝ›ð&gŸÒú’“kŒÁ‹&#íºkE!êò–`óõUDx8ä×Ïì;4fD`uöh÷s|½1Ž¥¶°‹ÔÉz€ùKáv”Çz”ÜúíkžÐ™J¶¶ãè³… hœöï˜bÜ'>áŸV22¦âW›aÔ÷xüä„þ8ö‚æš½H¥ö\Ó™¶(—jµç0@YÜIáËX„b88üM'l7‹úw:R@DàhÍêû]ØÎŽªªh#…ßÅ2’ÄDå„Z"Ø sÿ+ì@­z¿ç ¦& mÛÖ±â(¢MÝ{z½âÂâ3N2chX ŸÃ‡w¦’;]°°§ˆ/÷t×È4Äù!hF£1Yºf =eÕOqEËÏš&‡W ý£ ,ü~´ÖÎï.í]Óhè] BÕ©q†¦}Wð (yÙ, ‹28!ÈSÎp’ªÅÊ»UO$ÒíÃî]Z·ŸO/zÀ &F'ê[ŠR3¶€}H“ŠD¶uÞW_Ô øcu«üLÙ]Nö¯€¿þ³ê%<±ºŸ®ÙÈNŠñ} D‰¡@¨©Zç,;¢¸‡n\޲%Ù{—üÖüÀÌ·†q RZºÜAw†ôBÄÒ ßIDÀ©òé"1EjcWfwûstMg=Ø(rLDà¶¹Ì<–Gi/çpå‹}ØGR Ú—ÌHu~ Û¶çCÿ¶@J4wÉ@ É -µüXœì§i°Áñðݦm-èõþ®’#ZÂ~ì˜Á¿Úw?^ÑݘÍ…Ø^q¹yŠß¿±«žh2û‡¼1Ó¥b°hAÜJcm¾švåÝj>g¬à–Ó3rþÚ† ëŒ!)Çô¢ÇÍìEÑ7Í™V˳sÃÒò\pTb†uÏž {ÝôÊÍì›É¾A$Q ïœì¨sMCàmršºÓ ­Î¯V/|bu×ûň›áPUWë!ăÎÄM€IØXPvÛößͨ¤ì£ò¤kle£"õ8²²³~n5ÎöûÐ4ÚÜæÝx0~VÔÁ¿ÚK›œý»ªðáÏ—oDíSŒ+O„¿°CŠñl™·DA¸€\ÚÒ®°IuÂןåÈñ¾Ï0ð;,wð“ð4ËAVúÚëdžÎáÃ55cÞø×¿]T…áxÖ?j£¸¸Üóª÷µâ°6â×a Œé­P’o`ÄðrÔ¢Oáûµp(|7u8ƈªh–/ŧ]ffæñ‘ Ƕ‡¤ìOè-²˜uæÃ`Úâ^µZEÚ[”Îë‰Hu¬EÀúú”Q´þ}–KÎzòl•9ùÓëÁ}—‰îÃ¥Â9÷7Â*nœŒÞÀí'qA1[/£»Ïj-mR0ü®¿ùÊB°§y½„¢2Þ3è]dB”wRŠpc*ƒ‰Ê‘“ø6Œ¡7’?Ólôì;78epX1¤0‰V} •¹’0üÍ4Åâ8ñv/ûR)øë¼Gnªu«9ké‡8M48[Ò9"pšC›1Žñl©Ìý았›ÈÜòÌÿQ¾õ gzç¦ãFv2s½ø·@ÛQÑ„þÚ,!?‹‰²þ¢íbKŠž‹iÆ4Rà¸};Z`é&jtä&øAPIGÜÜ-ªÿÀ“çèpËÔ•ï*ÏÑ‘LH×»‚ áNf§IϺ0G™JÉü°ßøòpŠßê;ȼbqÃÎ0k”;I×ô™£'é&c™CÅsIIE6l»ôobnáð‹òØ«‰Õ6¶3›õœ<Â4Cí –TÀ›LL¾½sí俥€ƒe¯@cU8©l{”¥ÏwÒ$%JÅ^w`DjÕŸB­­Àeù†Ë¾ÈQ° ~ܬRU,ÎFòBWÇT[òÉ¢9qPÝÔÿ#Nȼó¿É‘Ã5;ÿ×/-1¯Ëš–‰rH=y^R/ÀÊ´BŠWõŸ ‹„ﬞŠB9ð€zƒÔÊü±7γµ_ÉRÉÞ‡`ÛŽ‰d‚ÛèË.@ø±S”†í “X/_FVy«÷õú “<ܾ œï¸¢¥èxÇ…_[§×»i9UŠA_/Ì >áØc„)8 ÎN<¡sÀ&‹ ׊KöánÅ.Xc.ÈyïI¼€˜9S$Ýè“Z‹hæ`Â^:9wÚ)Šc&K-Ÿ$cäšùtš‚è‰Zd!Ž~F¤>ÊöLº¼ì™Kþ»ùʳwêµ²Yzÿð}štA=Ä+ámÛ%l×ðŽ@ÞgÀ9?4[pÍöÙ!{ˆyTCŽxŠü°Ê„ò°±kÁß!×ÿR éâ“á^ÜP¬xs|ËÔ—oòîÄäÖa2öHÛ‡ÕØ-½s£H‘ NÝ|²%îDdÎ÷Öãîi$Xu˜®†ߦLå Zî`Œn/ï¹”Ó*ù;Ü §Å¶^ÜFÐîq¬&ñ¤ó ›(\Íh;ïo£’Áhçà ¯ÈtzQâG][sÀm¤ ‹ I™JL¥2p;uÆ¢œ’žE"¸ãx„T°…$c€ ;,Í<“Ú7߸‚—fª4ín0a*žö;cÃÀÇWX!&åËÿQBš—×1ù×GΔW’„i‰tŠüLÚÐÉ3 àgXo~”NL¡èr &š+žª ~!üÚøÅ^á4Ûu@‹°“XÍ–Æb¢î3î¹Ý€óA½n¿Õn/wØJ*­{Œ'ÚwF‰ Sþ9S 4«#ºJùŸ0ðáŽ^)ß´.Q‰½¼ˆœ”žÿï¬2NÓ‡WZ «@ ZGÌu_PäÚ(ùþ‚ÔiAAÕÎG/~„Ñ8]‰]ù=TÛ®êM°Öcì©m€ŸÊây!¹[ØkœþC|ŽMòë¿´G ²‰§½ 'ÎÂ>"¹–WU8Nl…z׳rU”z˜~¼I42Èó­˜/Ž@ýðTÅÉ.¯W¾)ï$ü|¸CΓÆ·þ<ŒŠç. |á%TW÷!cŽÒ ~(s”6à¦G/Êà2A»ðªøÜÕ`Í›jôgn—}ñ™å–lKwä 4Eº§®t©¥¿Z£^×gÃK^¨*ÝWCtyJ`‰ì“ŒžçýÈÞv+O·Áý^wׂÎ0Üè,_ð«šÐãi«´2Hæ¼¥25 O›ØQ0c¹q@Âû%ãoÊ‹C9Ó¼ŽõWÄPïÕlqï%!,5ñV—ðÒ~Ñ P^Ý?åW¤Ö<ïœÍ:àÏcÓ¸ùF3‘D[> t§†žÕþóÍlj×ÙV•F¸Ð!/NfÍ dÜOâá «!JVâ`¤:MJÖæóÊ2ï i†(3~аh¨@ÃáÌ ­Bšu“'e®eç¡K6âÖBGN„Qã õD5½Ü¾ã†Tw»(ã$¨üusq(­ƒÔDX¼G×”tpa5[ÄWhØ$@KÏ€i×< !e±£TØlÝL¥°PŒìáž2 E@ußC‘ÚÉR,¨Khþª±ôg½ µj‡üM(«2<ú[®RäTÅ T\U­ôr ¢]JeN}÷'-‚O«Fÿ¢âm|¨8óÞDÀŒî‰LŠm#>­wÎA”nÖ†\¡¶a˜ÑK·Ê§=C²­8K½s€²Z»t¤<O>ôSÓƒwû6èË]¤½—NŽÑ‘…}_Å8nH×™Ô¥ïàW_bb§›§Keéæ]ë®d/§alÄøØ‹²wÿÙμö‡ðþ’w7Äœž½œ$ÝG»Î¯flÂbÅ3Å™Ž{pµùÒp‹x#“åD²üMZ©Y2Å+:Ru5z }åƒd›nnEmhÍÆ`F,g‡$:c=r_‚¶‘’|ëÂÍíŒK!ö©‚W ¢ú×ÖÀe¶ïV¥åü~L‰×à½IÉ=”à.@!ø©¤ò˜Móôkª‡%|ò˜F½gƒüùžL&]† æÏºkIûÖÍu„~ªò/&qç„h⽄M`3^’«¶1ø'¡‚x¤ÕðöÎx"`¼jPK¼À°ì^m%àÉ,¡»T{[”x´Ù5(àƒ·Ö¡§äz*±ºýθ…ÿ“!õqüX5¶qóP¯ä³ÔKj±mIŽ«é]ÚÓyÒÕŽXµs›NÀý–ÀV0ÙòhH“9u#X{:&/;È„³ÛXŠ÷_ô[áɸÉGá;&=™.iI‰@ðÑê+?3¾TLHíÇS:cÇ}gäƒ+Cb>EZÆßû÷rË%+üá“ÎPM„.tbžô ç-CîKÓ××<ƒc–þušTÕ4`©žÍ€|ï$Åò/4}Œx •ìÄù`W‡ÌŠ!5_Ü"WaG= "Sßî’6Ñ‚´µ±j&²Üb=ØtbÓ#ëFµþéK”üMmÓ[´hHjŸâ˜:äh”§„ Ù¥²\*58¨þ¾‡ÁbÚe¸´¬»{ÜbT¿~ö݈^"ctŸL_‹ÆØû]Q²ãÅ_ÕJ»èÂYQ¨¿‡…£Tê~^ºÔû‰:º‹ã… ¶¶©Sæ/K3šØ£_´·“éz6±ïsL¬–óÛMt×…®ö}’]Bã ‡ÍÂ<‘Ý»½­1ò¾Ð’YðÏ„ìŠÐÔû57M,"!(ºìÄ”ÐÀ4\ K\pÍ mëF4°Ò ìºËÉ…4Í¢K:]üM2Žù·AòJÏ|—7/Ý’j9à{ªIÛ7|ÄšG|W*¡Ozh`\oqQÿä R!Èr×)ë™ëTÁ `„ïÎã?ûçåЦzwƒš?ot AÓØ S/ÚbÆÊ%ò— £¼¤ë¯ ÝêçB¨ðÔ™jÐåeáöj³. 4F5„H¾Ž¦†(pNÓ›bLñ945£Áý‡Ô5ØÑSá™6•g’‹¥Ë¡Aë4+t1]\-¿`Qˆ×ßr;ÏÜ¿ŽC‹CÊéÉÜEò¿e¶É»WÃD ÕüJ°¢#EGÜ“à âRD…^óY)7-95¨=”×aòR³¦*Û"´kýJN™6&èU¸xƒ€‚%¢£rïYÐ.ü§NKR*S•œÞM2ìö ‰¨Þí±:í”Ħ¤Ô‘ç7,‚nJµÍZ¢ÐM- þvlw½ÏÀ×¹q¢¬3¸J>©,r@3£(ÒװŒ¹Ù:ª?&Á•®/êSü½•p¯iÒ_<÷wÕ²{ „ªÝGhp¾3Šð¦D=öÝç7÷>ºJû-¹C£¹Ù\%´@ŸÞpB‚ øülÓçPT"5{¬ô9ªªãÎ$õ?Ή‹¸„ ir¬E§_,•9¤žZ,¼fÂØØUüBzº¹«|A:`à®ýæa-]=PR ¼ŽW²LQÒXBu\F” MF­}"'8€îE~dÐ Pû WN†¸ô8&à ˜;¤E=]èÞ|Ï=VZ÷b” #-„±åšåÿìûÉÕ´ÉàõçäðYÍË8¯µÈU¥½_µê?Eyo© Ù"nw8cÖÑŸL‘ßñë ´Õ™#Ã8i¸}€·_?Ïɳó¡q*žHÙÙÊzëâïõš]‹-Îk ‘.?§Î:d§ÝgØ4’Ñ gRÃéßüX¶Øû’†‰¸êá1¹JWq«¯)Ú¬ê4¡K‰ü=£&_pÐl_é,‚è,©Ôþ¯k1ZóƒWtºT}øæ3p! ð‡”ýò ýýùáx{¼½¦¢ÃÞ*¤·Óè¡?›‡±Ë¥,΂…øA ŸåêEwF•´Â¸–Oyš¦G²hüðUñᇟS·éÓÙ%êˆÆ?©1²ø%æÍýX"²<ñA.Rû¬ Ôú^GúŽIDár8p3áäfÅÔrK÷ðÌ";Kúý,™Öæç ‘´½Nò’•%ÃÕô¤K ĸpüX¥Ã0û Ÿ ÞÕ8˨Uïx< .ʼn¡39ùðõH¡öí]IPsßvŽS“1çÂH ÂÄ$¾÷­î¨*è¹ ÈB y«õ^[ñãÖ^Š%†B.DAH¬Ã›’öûéÓ~=|[„DÑ¢¹Øó€Õ?3¼ÕCÅ¥(šjÿª(ë+L °­‡½üÝW:ñ¹¸¨ò”jÇ+S„>ÁË ¯‘(Í%J˜¥6ºÀ;­z&Â{ìpjð%'n¼{Æ— Ê™Cí1>®kdg!–$Ýz8ëÍ㦛ÚV.÷„›~ ÕîDÔWXüä³Ft¡Œ®Ï· °üMªü¶¿¤?4Ýfÿ 7—¾SàÁ>ç,a|möÏ»F”ªðs:‰oô×»bðvm«^J›C¥É’¿& ›ò>&ûž-?ͥОÎÂ_7[9tE‰T‰z¡üš¿ ‹˜p;…Ý( D‡­ ƒ+¯Y¦Ï“ýÝÓá\ùˆ¹ÀÿŠû­O]¼á–$Gº”Oý!ÕWd|â ¦â CÄ|§"@ùd5 èg7 B1ŸáIÌ”ImÿgÐ-n.²n®O‘ÐÜêÀK7ìñpéRwmñ3/P´Ñ™6üÈÈ-Ô§Ãq øü°ÓE¬#Œ ‰#ÛýœÛdÒ÷ÏWQmËFu\L|k³›ÿîSÌÝ”»¬FbÁæ„Éq—³•œfšž®½wY[ù„B츧Äm¯*þõ»¡gj¡äxRD"k¡£‰|ÔÖ‰”*øË8 %jšlD»Ôf G#’ôPDn§ûp–Ü4%¯(8¥\©NFWzÃî¥àÑë18pV_…R¤Bl~¯æ>vðÖO%N,÷ìúª¥4=Ç`¯tæƒ`ë;E;e`Äi“K9‘y!:?w¼ÊsŒŠœø÷ Õ'màøçI€3R´½¹+¯ÆÝü±±mü¤=’ˆ,Â/ZàŸ  Ê“õõ–& aÃ/™ÃcœZê1&H†ü]«`[kUxÔ‰ì…yÅÞf‡:Žåñ.V™¢¡_ù|=ýÛ—Ñå‚&ÂîIˆIÍU á=EjŸüó‰J§ï5¶4ó <Æ#¤!KíëՌ¯©$ |±l\¶;Ÿ¢óa„ÉXð!çéÔúžæ¸J0[;‰gÀ `èäp¤/e7enÚÅ;¹3Èå€Odz:¢¶Ý…w,žüJ2ù×­ÉV|/Ð9\ýÝ”¼“ØÕ>;?å`¢ØQTÉó¯ÕM’½´×<x°—íxJ›H/†0ÙxS!ÑRd…[ùî ¨Ñ¶˜W;Wk…bŽ1¢‘†“GïåïYwÂ<²–ŒÌÑ)ðOéÖš~®pgªy;¯þÊaŠØoX8q‹Á-øIp†ßYœ װ﫟]:!÷Zy¬KžºÄ5Ž’ÁÑîJ¥ïw‰w¬¤óŠ8Öû犸p˜ñ#’_Nùâ½ÊäÔrµîkSÜmd‰Ž­ñ\áwvgLfäÖù'’p,ÖË&;þŠç,`%3|‡f?ß8‚É9ŸO䬀!{vUî>›‰Ž¢6aK¸JîTŠEÁ4~¼ú«Ù²v‡P¾ ¼ÙW¼hµT“ìÝ´(±Wùýq£À*7¢ÙÒw>–V÷uûÎÐòzüPvGŒS²©Xæ‰ñd„‘§ •œ ‹¼÷¼pÐ9âÇ•'ÐØÛà £ƈ„àžÆÎ”Âv=aMôæ¶lG¤ž»—ŠlC ”ªd·’4òÄëÙ‰À5ttïÐÑùEÜä;ÊCÄjC^EvƒÖ;Ó&ÈU–I&þ&6ü±€õÅ/»= 扄C¢¾Ü)n­"M{øžðÎÉ·~u×'D¬ƒc“˜ .¦âB”YUùQ±-Ýwl˜µ”7u 0²O7[gÄHÃ3âaµôe€Éc×nîâíªî ±Yk—ñQE~~gn£O´1££d:ÆûP¢Ž’:lÈÞv¶fïwá¿íïùv M}(1q?iXYâ"y5u¼&€ ÷_Á²x¸–¡-fãJœŠÄŽüA-¡@O`¸êóC<ö~aI’g©VtÖƒ‚¦•)V0±Å ŒG›iØéKü K“éÝ´œüM/ø6Ðelé„umaîÏZ—õä¬ñ§jpïÛ3g{½y.ë¿mÂÃÏÇfÜS¶($H¼mšýkC~µùùíØaš/Ùe ]üIÕ¨eË»ä‹S Ÿ![Íu))ÙÿPl–9€ 1³r׿ŽJ³f”…K«"õ50Ñ^õÜvjÁ³|#–Üé3,˜à¼ÂZomqˆ-LÒïêÕ-ÌüGý×­£ïÏýïw³¾®*~Âü[nß±}ëÛgÀ~6ãç‘Àyè.[ä󯀉0iè ÕüJN©P1XhÒ:Uò©ÒMsàÝïM!y§½tÔv…ÊnýfýËëHaÏj&÷[^R¼õwä›®¬•]OW>Ïm×d ª;Xª™m ?×¹aºe2ÍWkš(<;å‹ÿõ8'[õ©Ò(±—œÔ¢&*$¶9P«Å|¢¾í¾=Êœ¼!VÂ4á/—º~íüÁÏE >@YUC€·m^.Gp†Põ韋HÄ£5Š@¥« < RЉé ¡×#¨šF&Ú¸ì&ñê„”˜…lŠ’˜âöÜo%a 똸ÌÔ`Rg—Ì¢„Ðë¬qmü±±Ë(ú"¼xf’óJ Î`ºÅƒKY·_U¯O¶êœUÅâ0@¯ªé#UÁq b_ªÙíw¸˜àˆM.*[gDÀÝn$$-Èç7é(ÁÛ³¦4ûÊéo¨ö:šKwÒ8Ø€+ýlÉ*^æËþ¿Ðƒ•@´®öxÛ3þ1Ü6#¨ißy=Œ€—óé¶«d»¯Ìvø:¼»Àêòý#Ÿ^À7­“ÖÈ•š#ÃHNÜ~E?j·LŠ$Aw}rS~e}‚µr5¦‘–‰ä>Ú÷ÁËDné…’= î47ÙLÃßmôÕ&r÷„ˆ»$KüJ ÄÜ­ôxë]HÊzúWçYý}TY0ov`[ˆçZÌüc—²ùP”ÌŠ ¹µ4 LMø[r‚¿óÙ(äÒ »Œ<{£/m¨ ‘~Cê98úCžï[KšÅ<›X äè FÝH |Ï*‘F7é&A½\øF~h­Nû¨’~¦JÁ‰@ÃkšR´•Bó,«RÏö‰×üÃ$œû‹óUj³ì8¿¥^Ìq ÖA#²h¤VÙ™²»¬!xïa˜av fôÜZ€Z@áÜòÏpSEÜE£Ï„^/”E¡üL¸SÙêm ¯I\\„¥â¼EL߇ôòN=¯Ek±8i[{VÚáÏü9k2ð@LJç ÿr‹õ’ª£»”_ ‹;ò”17vXsïOÉkÅ‘4Fb:kq¤X¯'Æ¡)tY|ˆy«Ÿ^ðMlI)LQ §™“.=v#‚’E`­£>¡´ù, K¿¿dÖŒœm]ڵѿ «6iÐ+”´)k’:ͯÑÀ‚®º“þŠ_…(] åϪ;QÄ@KO§›òm’¥Uל?{@ \föÎBÜefB›fšÖü|¯± Y±[ ‹)ø´È€ÍK Ì,—l”ÜÔ7ðiÝz -÷¼¬Ï•©=2ïæ2å¯öþ;MAæJå»6ÛÚy^€ì“w# FÁï®ÄÐw…qÈ´;&ÒG2H;¨ P¡ÂÄ%‹â«£ÃüPoù*éµÕQJh Dð´—º~òLCOnâ]V¢Oyÿ«a5M¦ä î‹â4ôï 1!©í­e|¬Ð*©5"1%r$ûB"Ø_{v ¼#Å1{5γ nüÇ{\PÁ”ðÒ"I‚S™/Ë“ö××1Þ×e–Tô®mX>Mü”¶8ƒ²¶e™˜kcìd®õ‹©ó¬kÓ"ÂZÔúPôÕ21ŸŒ0-W݆…ÕìÎ~BiOüIö}}G9hËkâŽ÷jUÎZ¢UGF×_óOÛÉKí;Ý0i¾!b¬v–hÒŒùÖ:Ñ1"^8{§‰©UÊø¼s1™É!üIô½”  Œ«¡Æ+?›GVnçÊõ ÜŒ–m–‰bRd7Ç®ïT¡J{' /`ÚGÖ-‰ .݈ÁÛ*°gÆôÔiƒw/%U¡!ôéV )Ç›yäpk& ø„®ˆ'JuC™£3ygy¬iuÖµb™d…ƒR©=÷LûíŒ~†¼€üîË·br½ùÒÚ —U BbŸ=Â!$ÌiË/É›l ´Nâ<_ö¯üÝ Ù4lDÖ3”ïƒ%Â~e–@øJ³4éõÛsò»xÊ?I™¦Ý¿ñ~±_‘¸À§/!úš›Ùð•‰÷gbŒž"Ë/HǬDp¾d›¼ÐúJˆ\ú+¸®§öˆ>î…šoØ…ãó+°LrcœZßʬ£ƒÊj˜»OY͆_`€ÞØÛ;zß»<Æ®!ÕÀ[÷„™0íØQ¯ªˆpD“jÌÉMI&K%¥’÷&×I`Wn¢íÙ%óDÔÙüðêÂñ’çìÕ§7§E9´ùÉ?ªHfÄ­¦£(c†PUÜË{WQºåü7Iÿe ¡7CÕ!¼Ë¤vhljžXܶ‘Ôö‡ÓqÜ lûäI—9ºX sx”KÔƒ5îä­aÜ}Tæ\^ÇÍÖ¸íìÆ ú.,ÝQ¾]Íhý}yšØÓ°rUh$Ü/taz3L´‡¨}¥Ou/üÔÉÞ8ãØÁãjsÎ暊儷¢·—Áùü+ (¼úÕâ¡H4«¤ñ¢îò¹¤‰À*ømM/%>j“É«–‰#Ð!†ÑS¶æ0b oF‘ÉïÖS×GÚüL» {²e#…^bÒyùcáIÁx[“NGÑžÉv5£“¨6PéâŸørÓ±j퀀‚²Fýv Ä_u‚³s¤ MtW,pl¦ àþ­I®ÞK—Çœâ~¯ ¾&„0e Šj¶€“ÈZÓrÔÅÐëFßÑcü”…pª­&a$ Àó¥›[׉|ÛÑ=DT“ ³`~; ÿ™N9Ÿ±ò`œÃŒžp%}'ÕþX«wK¶òMÇ9ú“1®ÀAã ›t†‚$Û$‹¬eÃ¥{®a,ˆ¹ú­’–ǽݽ“{þü†ÛOÀA+]ç$yVOggSª7ýÄ nM©OM Fûþÿšùûùÿ ÿÿ ÿ¡éäããÜÖÑåÛéïãçÿŠáÿuÿÿýÿÿ¶ÿqìÿÿÿ ÿ ÿºí÷ÿÿ øøÿCæîóýþüÆe³²ƒ8ºz/¢¶VúC߸ #ÛLÂåøš üí£À­Ë°Úø$A#Ò[L¹jén˜3ü"gh `^æ¶‚ŠÆ5)¼È—CÖé" . TÏ$ü`^¬²ó×Ö3–ìk6DZeG6¶‚«,b)˜Ÿ¦ø‰óâ÷BÏyò¹ù|¾Ð|øøÕ“鞇!>ZXßígGqbÙó¼{ìÿxƒ¸k'ÝU·½dzƒóÙ•{¬Ë úX”Oéàø”³{…@R Ò†cž(µS;»§K5.òüVh$Ó (KýÜŒ!êGagÊs˜x,ž  )QàŸøß@î 9üÆb¾*¾²0BbÚj]‘æïšbêŽ:Œà.Å7ºCÛõ{E2çñëѳåÇ’Å øf‘©ž£)·ê3ÕŒ“ÁË…"£p眓²“§/˜)©[òm<Á(=qoÚBÅ­¤eBÜÓó¯ÇÕNM­B%#µØ²HUž4–’0÷Ô-¾–= …ªÀ° ãòS"£ÈÖ‚[ˆ$‰BVצ0ú-fâ(Ð L•ÞḒà?£Ü¼! 4–[d*_†AhR¸‹{ž(F¹¡Œšo¾„xÉëÚ»3x§|©à'àÑgÒ›%ÿbtG¼õ]ì‚xhCú·;f=)8ü}a!¼^(} ‰Eë/^4h^wÄr*À³<}û v&ÿÙV9oèâÿŒêXnìGQÉ™÷t_FÛœCò<óÓ Ë=W wúß}‹þ,µÀ÷cÿ")â"þã^„A“–êbDŒäXL¡Ñ·dÁ.w‹ä¹Ë ½©dïø°’0§¹bD>IK‹ØVoz½¬i˜g&ãÈ»Á{ø?îÔgÕ(M4Ü[ ¯¾Ê»EfRÕ*sçiZÕãŒÜµå$Ò;/ÚLÀ ú5ËB+_(7ÆãÒž¨’+X&8+ØÖ+)? š?Û"U,ËÚ†’Éüo‡ºaª(VÝÝÐ$~¾ ¢^,‰[îìÏ+§è9CYáHêäc¤wùƤ̄db›Eð.;öé,AüI„÷$p÷báè‘ÈX‚jì5¨ó¯SEÒg†ø($ßqÉNÀ8¡&[1VÄg¸(û-Ža8¾è†k ¿®ªR¤›ï÷%ÇØ×,©Bû°ÞC]K6àC¾,þ/RâSQÏÅàºå;n 몜¢áò5#ü¢—ñœNtÁòv2[ŠBhµeǵ–µøwÂÌW«þ.Üîyƒñˆk2ž `·P-¤ö·ª½x Àçû<½ò?ûØ~ÛOüøkëà~vÜL˜º‘ˆÈ¶¸IG;ÆÈÙgqèÈV—›<¦·Ú ¶Ân¬ò&ík‰Ó9üÆcYêi`¤cC¼Ëûä]ç5¨±@­À儌í ÙTíˆã›W Ð_çFIŽ…æ$$hhÈ6Í®1„®¸üßÍrFúÅ˥얀>“MÏg«ï=cø›d¤ÂñüëðÊ#gϽTºŽ#—mðŠqõ·5q†t± “• ¤g®¨ýkæxès/"ˆ»TîL#nò3;4:‰‘S#,Dݸó¬ž4ÿ#™V-}¥‹³±^U¿dvwpOg**˜¬*Ù<»Š+r÷¥ø@ýxPÜÎÚ2†$‘æšO"|ü4[Ïx ¢¢ܶÑ'nGEÇ'ƒT«ÈÖ ƒý\(·üÆ5¿uî)‰ú­Î•µÊ±ãê~5ä‡<R‹ªåg kÜ^ B,Ö8Ú\Ô:`%0²ÀØÄjFôᶯcà]™àé&¢·t™rä{×óð¶ýaø[xfŒÇy's+ZŽu"–A*Ñ@þ™×IÒd’¨ Z®×WWÚ ËtI”®_-zéØi„ûÔœvùùª|ø2Š×V£ wøG¶’t¼R'ïT5Ê¿ *}ÁÑRѦÞ]ÎV~µ3#Ö*$ØÎUÐ0Ù g'q…°æ_¬e ˆÚ0‘FÎêÃv,-qÖ“é8žšÉé*VsôV¼¦¯‡Ñ9üÆf&O—0K… } V…DŽ(¹¬"ë—èO?ˆeñ¦£j¾†Þ´àæ|DÇS£Q}·í‹ÔÄR¬£a ’Sõ{21/a-Í©SYGùF/]õSéðfšâf¶J R‚!ñ‘¬x¹±MbWÊçöº)<¥Œþò Å}'6R¨äŽí“ÚÈñÌüjY3m1îÛÓḊ ¨¥Õ~H©ïÏ"mÞÞóå"ðÐÿ}X=7sõ»CJ:w»ÿßb÷ 2;ض4+ ,ÃCؾ¡ÙF]›ö;ê¯ÄÏÕÎ'/,Ò.°<ÆA%1ð±~#Y˜_ukb䇂Xú>/:Å®Em&=LQ¢¯Œ$ÅÒˆ$CŠR8„i7üÆ‚( sžfšÛÚÐ$®—ÎÌ|ÏÚ W«?–¾ÁI qu «×ÓK¼2é7ú„»ˆû˜ÛÒ#ª--µIÆ€U¾{[lˆ“…_ îê׎O·rŒRÂã)ü€/iÕAF f‡Rý’ -¼jûÃKË;hËÆ!²ÓšqÌ òfÕ5Û2$ÿ’/N3ÀÔtøzš£óVènlB)<“¤8ú%¼duJÐ#{]Ÿ)Æø?G!‡gsérÇÓöÙ7½ª”1Îè¥0ËÅÉ›ÖðÃü·µÀrÍ£îâ¬É¸Y´ÛŒž¢Svíx«[6<ÊHö4#@ä4y6ü6¥h¶¿¯¡°ø¢¼MY;PÚÎ6ݲ’íÕ;îDŠÎÁî°ó}Q¨ÚLœnŠToöú°‹­^ @Ú‹pl¥É}¨Õâ"§† «ˆ' m›i §‹K “ÄC àæ!DžÂÛ—(×@ ÀŽÄlÍÎyby£E _G~[ÛÉQIA·³¹aDS°¨¤j èÐ Et•¦ñ°×”þ**~2Ž×5‰ãõŒƒ¦ÏF‰z[¥ØÃ²ïnUÉí;þËÆJ°¡¬{1qŽ™Pg­Øl¡ÈëM¸÷Uòõ}Xù0\iÞøé 7Ë%˜Ô¿QÏRÔ.(a\ã¹q$´F„©!A;wV?öçŽÔ–üǾ£¸’,â!ð}²ï¬¯·å¯O´EÀî-éW=àÊ€ËÖYMRd(‡tÛVû-’ýï®ÌLs.†A0JÓè†Á•%&ßÄ)·­}´E í–ÁO|Ñ+È÷iâ/qÐÁ3!ýx.lþº“€ä!„-¿÷²wp‡’¾$úªM(¼&ŸJ0ªEÿºËÿ¾¾JBÏUšŽ>¹Þh–.Ü{Ʋ«Í¥é²X¡ŒaðY6W84ñe*&ü¡šÿ¨»:Kì–{íÿÀ—©AiXQ‰[’! â¶Êm 4dq™;‡ÑQ«ö…œtîs¸^Š­¤s³l³ˆcM¬SQâ`þqÅ×*—Ú"ŒT0I*ß:ãêI?‹ !¥™óv,Þqë¢Ä =—ÑŒ“Op˜ÞŸ¢Ö÷î[ 9Ú,ÅIìF Csð[°Ã×]/ÚîÔ_[ í„Háæt“‘õÌÎClÜ8èl‡wFq,‹\èɲDÄ ¯w׿x5¹ 9u)D+¶Éõ„ ‚ð8éQÕ*üLÇjèçŒhÎa6 é_l~Â"Áè'(“¯îÆ(™D¿¥YSqÿ ƒ•e…dÜ<à ÇgQ~6†Ùõ™ƒº–—%ϧ†± ¤ÔIE‡ûKã5Ð^ÁóÚ×òÆÐæzU¤ŒÑ7·V¾æìJ%¡Ø/2üɶ2¬³øGˆêHÝêË—ïº%ç?œ€ü„)É‘¬È vY0ù OÔsËszô]¾»ìkzÅAŒlìJ7j4Œ,gĆ~ «ÊçÛ¢¤ãóo¡ÀÁ”Áãs‘RIgD„àmÒ¼q2Nl 2ªß)m*Ñ-)Ä_JˆüLÈÐzýà£64ZF)ÍwR™“‘ÏM§ªi¿m%áÓ»Ïöe „½n̈†Ac{pKý»S@YÓºý×%†N@'XÙ+õ>öZmŠ\ ÁåÁW£¢…«³)¶m“@[ Àf"å=¸e–9°q§:á²_²ˆóŽÑýfbýìzβ)y²Ó§¹Âe‘R³3%Æ4ž˜«·o}6ÅemI´Š*—ÖϰV“í¿ïÂiš¸ôlÔ—ÿÖ 6 ¡AŵT‘9.ƒÖSé <üí0g`5•Ù5éó†ÏÒ®üMUê“Cxúc |BYCßÿΓNàIÿa]¾@V$LÕ™áÇÉI¯S>ÁTùS†œó¡'AØ1-ÞQd5¥ï&“¾VªåÖÃì×T¦?ë /@Ü,÷õ–ž=9+.{7l«4ªŽt†.ásnZyÏ(«B.Úqïçðå̶´ØE(øhÖ&ˆ`)Ígé7j0Þ¿A{7$ÿÆã#E”³«ˆíÒ‹‡ê䕾Vèȼ¬u±k!›Ö·%ËB­†«Ô½!øÜ0êþÞ¦VјÏÖk[8ñ§Øbç`77t²Î]•JÇ^üFÏ\ʧK™O°Ã)bTnì¼™í«‰ ”›Æ_aÃͬYfrømXeûêÙ윞ʕP‡%Y,†bó&¤%á—CÅ ÛæÍ]AíÐ(7qôýºÒ^†ùç¹þ‘Z&û:~‰¦¥¬WEr÷ß_ƪ<Œ‡.ø‘ÿÊbm ð—7ýHòÍ µõx2¶Û Švrzæ×”Ê£$1)9NØ^ØA9 ˜˜Vµ1ˆîKv›Ö·áTŸù_Ú¬Ã`©B3ÛÉË\EQžÍÒ­önL¹ø}¾öÄ™„=gt÷¬üL¬}jŽ3 ,g”)oÀå£C±aÖx3<ðCPµ˜KUÊ6àæ…;©Ø°Fnà8ì85óŒ7;ac戱6ƒÀŽêÏ­…+X³0lF 'J©mž^IÞ&¸úV†Lne òxDè:E¼èU…Œ„hmµ-¼_; WC¹þö>îëZ|)´ÛA2$2hõÏ6ó2 •’6dB¥ŽÚ;|ÁÑm[AGÓ/u=,ùRTaM'Žìqç~Á_ŽxÕ›â^Ì»"™-ÂŒ–^hÙö™¬L8|"Çq,,Jáâÿ‰/*’ /öwMIÕ!Ã̋Κêa¶¾°zè¶ Ûz× ‘ÿ))iiyÏãGûŒýÁí§tŒ#a”þ;ñƒšê_ÎÐ`2 ™ŒFNÃÇúG@ç–l9‚3¿}Œ;°Ø¶Ø•^H÷™&Ï6ë?—ñ”C(úý.m^oöÚ+éÑüMO¯Òs»§cúq$ÃUK¡u¦1ìkùæßV“ÝœyŒ¼GÞÎ/îÓf–t~´Î½œÕ?> n@¡.á’v+5²2ï#ÿàŸÖæ£+Qog2 ³_¤ðþ˜–¤,Á¸>2¹?q[CšœçˆÕ¤ñõ÷ijý ô‡/’ \¨šìl œ‡æy¸étgµšÃ÷LÈú˜ÀmzÛžÔ 0èv¬¼ÝÓx*nº|‘Q÷+¾=â-ZÙRíÀžI­[Êk}M) H~4pýc:èuޏ@NM%‚s¶Fz6üLª¬×<¯í*½p(ënÊTYøöЫ¨Qº8EÓÒ8E,ÔÄŠ êGè?’¤mÔ‹îÿsݶÓkÀ¸‰gøž]¡Ï Z>¾Ü. übåÜ¢RÝó±\²-ø‘7páÌðÉ#7ûÅþe sâ Î᪉ÿzAMMäè‚&/ƒæ+½”dˆ%ƒí°•€ög•gÃ.ú¢õSçÌçÓgN³÷Pø¼‘/Ÿ¹[Èʩ׶˜âìàà8ÕÝ@}ëìlÚX2=àñ¬áÜ,¦H¥¶ûi:f‚üIw‰Hœ…”sU<œ‡¼ BÏ3™îaÙ3Åb°R@JÙÂó=Ã2ñ/{.^ÿ1¥·z"…[“]ÞŠýôÔg²LKß~”b*p[)¼3sÐ1¬½ÏÄÕ¹§£ Ó<ìO; 0¸ÿŽ'ÔºþõT.EÚêö¨Ô¨¡‚(hq¡ñ1oÕZvÞ‹žÓk‹Â„(üp='°ÉF ¤9–Û¡2£ )ÂN /`©R”"[ÅA½©JÙ?Å­”ôÃú˜ÿ+þ({ÏÒL[“rîc˜wn²·¬˜ \v¶Ñ·´›në8-P ÌZ@¼!;[ü¸ˆ@£‚“­ |œ´GõrÉTk>Cá’ÒÜ1A¹!nÚL}ˆµ'œËx$T pVKy&^¶ÉJ` {q,ê<ýßPØZ ’èôTQFþtä+e?‚μ¿˜cážt€’v|Åð/1ãËùcme&™žÃ¡Ä/‰äôé½|)ÿ ³ T*ù¨0%¥­îÙ*.£oöI ’Ål'ÊB1Y60˜Ùª æku†¶…šÄ¨Ý2;¸Æ_©K]± 8îá-Œ®24%¹føyRåbb|4$17ㇲ]à—iQSXìyýÐϵpéúÈKüIÊê2B¿aHÒá"Ê N¬ÔMÔs¨…Í \ËY¦eI:&< BUì¡ Á£†°O ÷\uF¼À˜}´Ag£~AËîôì´uƒ‘ù£VÚæ(Ëep‚Q˜Pʪ҃àCÖ!`¡8E"Ÿ//ðK>a¿3çsºAî«ÂDnª?âºGï#Òšw暈exk‹pÌéŸe¿¥éRtæ'³yk´…1Õ·1ëHàêˆêÝ.šN×ã¯Å,÷ ^Vâ;a?a¾Í“g ¦BdÀ“®˜æK4üJ]~1~¦Ó‹i›aphk[Ÿd¶ÑÄ~wõs[åÛl¹ wÛ÷“¼oÙ\W¡€“P–Od·3ƒX­‚“8 ûó¢ç §á AÕ=Ìouc¼ï…7¬¶Ph¶¯$‹y×$ÿ–ÉñÃnÁÀþîôIVÌ÷Âà\öÍA¼vwÓ4ìÏk±e;²0ôD§êY‹Y RQ‚ä|‘Í]ÆûtÙt =ŒIÿàù˜6hÌÂÄ}ìÌçIÝò{ëïÕT¡2ÝðgdÇ¥‹?6*ƒo_ï q›³¹Cñ¦{†tF3ž5¼n|½V,‹}—ªÎß0ÆãòþÞº{¬m®ßþ—cº$£9:Þn" ¯»Îˆtì>Mø>Æ´ž ì³cV$׎}-ï‚ÉÝðR…ù¿Õ+© ýP‰v +$籿—'0ù8ZŒÅœ l¡ú!ã<ºõ_¸+küŒârÊ`+“©¿G9)yÍóÖ]Òpê‡Q2:u¶+k£—`Oit§}ÉzlGº6Ù7£ÆÛb§MUáj÷ ŽA$ª5²Ø°á2ìÜ”€:’J^êI¼ ÞrµNz÷×q4iiœ2¢°-±™Lú¾ÈuÕ¥;þ09æ¹lÑâ’Ñ,9/°¶rxt¸»^ j‡oD”*ÌK ÿeš>ÍÍô¾@Ms7Ý¥VËüñR«æ ¸Ã mEÊÔÉÉ{Á\rwö¢â©¡™ÅÎŽ¦è©¦¬J>zs£mEޏB…œLVUïlœæ ?š!îE‹‡i´.3憞˿U …Cb½/<>ñ¹´¿‡wé^Ûª¶’â¥SrKô¥šuÊN64É"*N Ýbä5§ÌÓá%?€¦24ç§´æÞsǬÆÅáŠÊ"Ûå•ÖJK§Ú(-pÎøO‘Ù…²K²ò¹ïµ†J©sÏõð—=¹ÿê-v#Îßxc¨a·þ¶Û*0+Ðx–fr)tGÿô™6À‚ʯRx‚ý};lZ€c‹l»†Á8‡ÚS夀O[lø¡ï6ZüM•±2À­vr8_r.kPZæ?f°•Ê}>†}:I(Ccòá]_ÀÍÛL¼×ÐwX{C–7§§÷VdÁz*©%6%R²:åÈ´U+jïâyAåXá`nÍejb »¹ƒßg~=Y—B­.…¢Â~,ð4«èˆ°P¥(í>¯ä\ÅÓÐŒ‡ØºlŠ)ðME­öÆàŸˆÅ³BÍ¡1ØSSÝ:´PîüS—ÞÉòuÄMÄ3E@­Äy<^”hdê@¹ò'•§@ëÈXóKšƒºâ_4c0¡VA ZuLÈm±?^&C¥op 0”ŸãE •ïJ·hHÊÂÛ°¿²ÓeÄüLľÕ;ªÁ±þz´ÀIö¾\Œ¯î„ݙ۵"¯•!Ág ¶Ê¼ÙáÇçra3"`£»ù8…{Z)ëlÌ Ð.ñâ ãH2‰Ï« ˜o«>Cvr$©÷~Mæ¿KÊa*ð„RRÎOÿqEnÐqüzâ?Í/{EôÉ1‰__‘ÞùðËu»Ácb BêºÄSãµpöað¿'*KDIÏf3wú0´Æ ¶-zŠPê>Áê¶“aGœì ëåãB´¼qp {°,0ǃ÷káóhAgOñgÇ%[Øž+ÚAxN)S©O•'Ø—‚DnêŽ*•òø)ͽЯÖÖ­º5¹´ü.ýìKÐY¤ 4„úˆf‚?¨ØÆ ˆrc.€2”uï³h¥«*ôᇞ0:s:‚áìÓ†õ^„gþ€êõ_7õ8æ3•äfTšàç“ºÝ Ø‚‰÷#©|Û‡Ñ}^uÊË£>VÑÛß.vÄJ#ŠBÕÓÏ^`§‘‘ŸPzëìtã¯õ*rÎY£0ÅÜÞüCÏHü}a®Øtýšì6Lü_7 €]¡vÑñÌe’ ¥Åv‘k¼7IKÙúø`PÛÚ9%?ÌL<Ý,k5ñš)¬Öuô?X޹^`ûu{%É·vm‘ñ êÞ¹mK5šà8ïm?4i|Àpx*´/©-‡RuÚ:Ù…“w6Ýþ'kN$©†þq™K…’qœÚ µQ ‹µ”«¥FF’ öeK¡…ö͘Ó!¸äÒÚV±‡Ñ6ç“{§X;È¿—UlÙŸSí?±Ù`Õ#Ηîbf!æjó˜9~g`°½¥[‚`@k7,N¹Wu¼;ú‘Òη¤?% ´Ë‚CcFÿ£–t@‚åÓ¥rî»vßfÚÿ›WËŒ[O0•ÀÅÜ™¿ àì6´Çåþñ©j`ÐÛ3)H´‘¦·zDd„t•$zÇ’Óg°‘œº¦`%ëñ·1ö®ê,„^8Ä”&Ɖz²F¨¤g—‡±r,vªêÉ ST€´ÌôϺbÐâ´vŠßd ¸¬0¤‚o&^ý¯$·â._#´,=Ëò*wLÊ™0àÔ¯i»¹—4·(Rñôáw öü†.l…:Cs$×m§(šèVrØöEr|“¬‘$dÌúEÿYM‚Cý¹Mî8ù›ýØÑQý'{òàž5¶j(o¹] CÐŒdø$ÁvÝé`#{ XŠJEN\†È:Ð nk¶ÛÔòŸ£ÍEX]ºð/Í+¾»´!trDr·ýçmB¨b«¦”ШLSÍtÓwË•ý|—¸Žó•våÀÛ…Ý‘Æì(\—€„[dîûèø“ˆþÝ^mX¬¼ÞUíoz³û·`~ 1n'p| ÑcTÉkiÓ5U"DvV$&V3¾ ‹˜;Ï$‚ATŠM Æôê”ÕR°ITL°U,462ç‘M+ݱéœ6£ŒÉ7‘ug`(†±Øxb‘kYô–ÿ¸4®žÀ(úøÙ*TˇL¨Ëך,¶T&ÆÐíb‚ë Iü^Ú“cQÝaŒÜqmEf€sŠ 39ëe7IiéÐK–zÙP3‰gtÁüM4Ù?uãÔ¹Ò£¹Df]¤vb¼ »\¾ËŸ­ŠZÛúyöýÑÕz¶ >fXVÈQÇZoéŠÅ!³ñ ¹ ‚Ô^¹`„üíg¶hÇ¿Þ9ÐR׌ÛMþ_ÝÏ’`m–›Òz|Î#*ò–-a7/Èpñ 2â’ïe˜ÀᲫBÑHNˆf¥×ß¿fC°I/{:ÓnJ±Y¡ nA¸ÅµµHbî¼X ú Y7á‡òF~(FŽ=xÛ!œ6J2†¡Ôó3ß徨Oe¸wÍò[Åì”bºç¬ªåý²LǪƵ<Ÿ>ßÉÁDi¶¼üX·ºm²&Ç—*Ãß[&»ËèW»…ùaaÄÓè¸;x=™@ÞQE¦1º_'¤èkrŠ ƒ¨À#ÿ˜E‹3§dÂù×™°ýá¨"0Ù&„NŠãTo@¼¡Šv(+Ã&¨Öˆœ‘?ãE¯¶'Ôô kƼ#¢< e=8šbö©ª•.켆Ä;­{ènM­¦§XU5·È»Öïl°è`ְͬ98N;Ó’ÚøàlDÜ2ˆ³`Mr*‘äKOQU5.â}d¦ãø6ÕµAŽ©**Jµd}:·TÚD{KóÜC²~mPIšÒ„ZýÌ ¿A1Tۥ—(CcëîÕpÅŸ_}2l«+‹< ßÒ¯«PúÒHüJ[ë‚{î\¼²û™Ë•)‡A÷ÀA>KoÝ®Bf{-góÞÅúÁD—¾ûæ,®tܶJË5¼ë…‹ÞH=oH:.„Â7­•²õ b2µˆH5ˆ!ÊzcÌÂÝy/ãÞ|ŠÁäú}–€q6 *t{}ôbDÊn½Í Ó·(Ðïè#Ö“×ûvZtR{HNCö`:,)´Lì2T0GKï+žÇ_+õ6hϸâ@JŠ<Üå“Ö`˜¯.ëÏœÞ(œ !¦L§ÃÿOè!; $úŽ7\iá«[>Ñ錷ÏöiY7_ðxÂuþ,A=­R„¸œ?hï/>)iV‘1¿HZD  (|‹Y“™åÅòs¼´ü®Ê?äJ˜¡:Nô—A{žñÛ¶xòÀÑTkj ©ð&œ@p½—¥ à‡ß*7[Ú’z#fM#Ýó÷AíMPŠ"+ ýÇ ]nl-’cMÙÓNÀßújÒÓͰvä£w?"o½Çtõ|‘ÇÍ*)Üàbí_“¿¥ï*¦ :f¥b“D „ý_84Þ*{ôÊ›B®’|æUêáF¿±@vsFî܃DíÕV´ú8áú­ä1—oW‘)mN/–äxDl O”ÝyÆ¿Þ$s±Ëêbշ׃ûE¥ž é#¬S¸8D~ªUÞlYÏDì!e?Á«: ”<5ï¹ìâuóhlR‡oͺ%ׂY0¥©Pœü°Þ­oz|²üŽm׬žRý‹®Í'uËÆ°ËŽ•Y/”õÓWþ¬HxMeÞµc<»B mîè%;°mññ©Ô8ûËÛ½môºÂà8sE;—äŠF0.ç.r fjø1ˆ‚Êœëc¯óQ¸ÈÅ3w·®³pvíQX,šÅ;o|Tô‘F‚0L˜û¹Û ¤Òkªëº9ƒìcÜRnŒcjQw H-RP캤B.÷É&¥ |Ÿ§þk}NÞ\OV°è ƒ4Џ»+Ž+¸ž¿1úYi«pö5¡Ï²-í“Ø…ï@¦Š ì ˆ6#€ÙõõUƒ»fNý?–àíuÕ¨ô|GNœü|­< J·üùàWÂâCû¸$¥ÚÕ¿Ú˜`+iÀ‚ÍEº@ejAœ7šaé~²Ç=ÁŸ=H²6V¥Z‹¶˜'â-çúæØÀ®S!Äm׉ž—•ÒœôOöø¢=ˆ×ÒŒ¨^êfO½‘_Õ7ù€KÈ5ß›ÀyŸÚþ€‹ˆK³Á3qwMÎS±Óz•ŒâYcWMC`eôÈ'Ã")€œ¹ ææßó~‘Ÿõª·*m­ƒõ¨ë?ªÊ-6r4¾ŽK4çï„A»ß4zË<× ñUî(‰`&Ÿ`3™P Ø—Iy€æ ªv®[™žÿ:Ù(ÿ— €β0'œ(rÞè¿ûPôü1tŽÛ² ^Á»ÖtMýÄ×Ö´<3iϽ‹¸€Ý²ZιdzòN¯­¦ÖÉò÷~éîf}ÒAäÚÔ lt]F=SùÞñF˜yÖyþ§§²3P@Z0ØWÚÜö[fŠŠ¨ÅýuÄˆÍ [íùî(U¼ý‰^  Ä«¿].Ù¬ŠŠÀ‘+‚R·Š‡%ƒmh¼Ì*¬­`+ú9Ö%ÔСéÿ>Jw»tÎ9æzÅ1<®$üJ@^<Š^YÅÆÞ‹þ’ìç‹Öø‹Õ°€³EU@«•¡_-veï÷{§ÿQÛsï! Ú|ùxò3Ã:E=À]$*ÿÑc1ãQ>etÞyj!*IÞÁ©-õ ìX ÷Ÿž UéTY{¯ºBtwÞÈéÛ½>Ùoã”f’z|Kj"I:†Jkâ¼¶}ø6ÍóìŽ/—(Ø¢ {øÆ1Ï7éÝkÓ~Ú¢-6‚¾‘Â^.ŠCiIC›1`ŒkŸ>ö}³…©ÖZ)6u®c§s»¶ñ‡…„ œ-¯fjôƒ;˜™k^ÛÇ0ר~/<œ¯Nû÷ÀåÏäú\ä ?u¡üIœâìãìÀðÕÄMŠfStÆ”Õ . 9í®õÞHfñ&&a•~ˆ.€ÍÈbáê[# “)±·1êÿ/Dˆ^“¸¥‚èo5éÑ cžÕ,>µ‚Õ^}yô^ÛÛ`jýq+@öMUIFöV¸#8oì˜9m”êÃØŒSò4-âZ:R*ÚÇ0Ú$º$5ÿ\¾±¤È?xxƒ@×7` ¢ÐP!Á×ôÓ¹îè ºÐ(˜wÜ9G%~Ÿb>ßÂeRLô†aWc@Ëþ¼_ÖÛ› #rQ)å¡óžô¿< 1’%^îDtxÛu?–¨·=l©âRéèKyßêÀ+¥l;~*þž{D}móÝ>%8JȼÚÍ“œ‚ÏÜŠuèòK&¬Ÿâ„ýš ³_¥øõËå\Ø[– ÔÛz«l+ÚŽ0ãq¶=:¥dHGIÆþÚ´!°µ–øg© ŸÄž¤–zÐEU©6Ô³/šw¦ ÿÌE/áÙ¤¹dÚ‰HqãìXÝÐ=>ÁÚjkÄ^y4­QWNBeÔê€8žZÓÚkÙ bˆgƒ|¦«bÒ„W­íIQ¦©Gmï7ÐkÛÝ ×,½X¢th ¼ÕÅðšj8•+ªã%ÚVèžîÔBÄ>$jj!ô¬ûüM0æ$”Ì$*p”˜ø‹noK'„¬wð=iânÇŒ?@6UÒÍŸye“|ó72Õ|/Šé…\'Ô-ýô#¿ÙC’µæ&ç_ì”ñ¦`S.²E¦O·-¼ÓðIÐ}7¢åDdß7yrU™¼Éþ–¢åµ9"\Ü6³H°XhËŠJw%-Ó9¯E<6º—XûQM¤±ôCôÑÚ ÛÀJœQ¿´ ynï\øÜ2 oï³Ú’Inþ,íœâS  ªV” d‡æm B!Ædiå.c“Þ5ä7´È8תs-“̽ rÝ nüXLé¤ùl¢JC^µÏ¤Á]R{Èj1r´Ôˆ‰˜Ì~f|ú·ÅÚ3#Ó_/Ø\/±ø%ŸÂ`dƒññ¾\nØo?‡æPöô}µ·RS¾RËð²²ð]I[B2uÑG{OéÏÐE7w47Y‹¢³?O瀋H”sOOÏ>ú‡TÑÓòÌ™±ö€µÈ’p¸¹æqtÌÓ =,V—Áɼ-ÚÃB™äœ¡Ù¡ªS¡…A{,À┦ˬßpôÉɶ=”…&Muüd`ªrÊ |&žR.Ø¿°éj|ºvÊ ûØ=Aa…mkË´å–|SíIü¯ ÿ"þ¬ÆÑ70èÓke PýSúòt|˜í~=­Üv_Vî6%HnŒƒE½hc^ñÁ åx:\èr„¯:—=¶N@‚à÷˜£»bQaGœNé(öKƒŒlþ8Ø~Úý£5N“âŸßÏ©n¢Eº,y™2¥‰­+¼oþ ´¾|P[Àµq+Ý÷A&°ï‚Å–šiù]êÌáëht%|¯¿íŽSšJ;M_oË)ùé_”µ^àm°ŒõR¼wqGqÿ«‹zZV˜}ÌÑùÐ-þ¯iɸxëà,àWFçø‚_ êRö“üJFiÔÒñúùQJ¾˜ Ÿ%JÀ»Cw’|XŸ¸ùná»Ò‰Þ‰¯G¹Âr“ÞŽÌVáŸ&ð²Îó=ñV£#Þk+_X#Ÿ±Âšr½¦Z!€ì˜É¦ÍVïY±„¼|ÑúÃÕU›[ˆ…3j;–ý²GÑ©%ž˜)ÉÞ¯_CYæÇíÀ%°Ùˆ£_HŒm$ ÷%âª5BÏ ƒ<ñ¡ü}^.›ü÷UÄ}DÒýY‹Í {é"ì]R´¢Ð;X«@BòÈ1xü‰&˹­Çdzδuó:»˜#–ü䫟ҰcM ¤‰?«ÓÆú‰\D<™’–|² çøU²¡ƒ`\z€..~•ž‡IÝeuGÐ$©ƒãQéï%èNZ8;Òãš”œë>­ ©t³ˆmébC’óz;fÜ)ë«4s=ßR:B¦ï£f"q ‰_~¹Ã™þ]"¨ì•KØ»"¹ªœU3û—³¶ÛfFúý,ÅlÓÞ¼ÛF§Æå>–!]pÑÏJs°i¢A|RºÊÁÒcÑQö6 &½•©Z›TבœˆJù(Zä’A¸Â|t$Î@Ž«ßOH‰„Ô8 ~¹å”&¯ÍÐüXLªã!Ø¿‘çýª?«6ëA€i#èÛ9˜]U²Zþ/, i9w`7¥G 5Ò¯¬ú¯ v‘{»æô¦¡¬v†ÀtãSÛ Ú{³½´ç}Q§ ¶M™ë³™ŒWvæËRàmèålTÀ¹m—t°À_γ‡ÔÖuÅß'"t¬Dï²:ÓbÃD=Ç œ{èXÞóQ Ë+‚\ƒ˜Ik·Taáß~¢Æ'±‚¿mS &3ùùÚÇP§ÀálÏt¨yC3Êá‚ÁÝr0Žô­T&}SÐ,ºëbÖ¡jïP(g$×Y¸«ø®ß¢Ø¢Û§M2F]&NUýü)†Â@ìèüNz,?˜tí@Ý£%B‚¿Ä¼ÅŠvÇ"%}³§=pP8å*™GÆÖ⸠GlØÃñÐæhq¼y¢NP`X.€+XÈÐG…ö©Y1È”ý–MNjõþÉÙý¢Óßõt¹­,ÖO'!…ژĉÍ"%Áƒiiû†„,ŠÓÖ^Ð%ÿ+ `aÂta8ê¾Ð9z1!YСªŒ—;¥á‡3-öQœ4’lU«.q·p1f;—i»¶‹‹¬y“_ÍÀæ/Çðc^þ´ù7h€_è8ðBˆˆç$÷zqu­ÁÅtžÄé/Lƒ Þ3=GuÜL.þ@2MAdº¸Ñ"AüLÕÉÍeU—©}¡pÂË‹Óje[\‘ð½žBE'ùÛüc•ƒ mîƒOô@)þ愞ÁyÏüÈßdèˆA+[<Ôf?Mz¤§äþó͹8ü…¬â–£»r^Ò¤ e‘ÿò'5µª>Œ K°胉Ū‘CŠ«a0K¯sà 4I M²;J¦e? ›ÔPQàýífù3/-`ÍYŠÔRRޱ%Y a ëgNÛ¤ÞJ‚?…oëMîR;©P´ÐaÄwùT¯Uãµie<,Ò~VÍP«Urñ´ózö™l€E®ÑQÓà\~¶_L‡EŠ”ï>XQòŸ 2ÄI¾ÍÒ%|-6³ÔeJHîüJ—{ĸդèµõOÝØ5ˆ‡–eg~È}˜çµ!U¨‘3ø±º[Þ\O§_LVŸë¼ç,™§ðÏdDh^˜¤v±ØÆÐÞPÖ•øï¦.¸ÍÒêèÌ!PoÎx¸Òsì1ñ Úÿ+*ùÎî¬#‚ÃÙ]q7D;MY—rÐd”€À·L iþ•ˆŒ$~`‘ç*è,>{íáç$ŸsCà‚'Μ„žéßÛ:õhY* $a$õýÇF –§ø-óX?ý¦.üÄŸîGn ;ÿ˜%¦¹Ðs‘ä™êÓû´N-hrÓç çZwPô‘×·¥åÑ@à\“ˆ×‹X6(¹I_×—÷ßátuTÚzAùΤ–Ð)»6ÿóßüLâ1F$~ó“ùlÆÒ×3ØWÅnøT±ï#¼¬NÚÿh}üN5ªLèËz£ÎÞ3ð|i£èä=b"ÓC^Mè-«¶l§y:ARÏ÷%26'þ©&$×ZàËSûÓ@ÍÀ†êZX`Y ‚¬×‘jqí ²ä˜0«x¬¥™DY×q¡9KbnÝÖ®!ïˆtáEW-Z€FaÁÓ}q«hvÉËÖ]8{ å~Žúšç`ª_ Ô>Uç‹»èŠFŸ’]öáçÀ¢\ü(´ŸžÉÂXÐÅu.–ZëK§]ø.°EjÆí _)ÐF›Q¯h5÷Ö²ál‰:¼y'¸’I¼ýÛ#§NjüKHq†rÔfQ…|æç©f„wÊÛ»”¡çÎá?_Ùñçô¶Ôæy4pü?Nòtc¦#‰ºoQˆˆ/ª1MPN¯„¢ƒÑ*Ze‡™²ƒ²_œ¨ˆ\ñÚÕÏÍÄ57í ™é§l«„Á5<"V£…f0Òç㹨ÆP—–Éê6$škÖ‰û•Šíf±©zL ZezWú¹¬2M«³ “˜0•…MÏ„]U*ë!}VA,ʺÚ'Üäòx,ýܪ³ê;9ˆ‚A*G‚S…µø¬ÄÞ:–½$]·¶^¾õD>ÿšŠDÊ@„äjÓ@Âa2Oè&ÍLÐËïÄÕk‡¾?Sm¯€kDÐDwã¾µhü}[OnMI¹ï«¿<;粡k¯4Çô6èB•¡{Ÿ^( ü¦ãs… ¯á·XðNËBà¿üܧ9žëòZú¢Ñ·f'˘C™µžÿun’½†) ‘Í“‹’ULh£ PÚ2ÂDu5,æ·a`e`;ù‚§¼\jðSOõ|ô„Y¸Ouj+æfyDf±P~êõ†?-懂É´€å/•–Šs7… —}íÞ'u4vi†¥ÿ dÙfû· ŽåÔ‰×Ûò*£˜÷É(N5¶ìµêõ•ú“Ü2âØÊ)Hò@F3&_Ùâ±NQ‡m­ƒÕIf=idª“Ì·‚Ö˜ãé"@½KŠb (w—æÙ ŠìQM²ÕG­A~æ–Ìà#Áºl§\âÐ2ÞÙÊT\k¤hÅ–n4ë¸Ú²VÉsºÜîñ©#‹óÏí ÁÜ8ÞºüJ~A8Úœ§ŒM³¸ £½o³¢§á»ëÂ:Bß8àŸÝ¦b€Þ¬¦C‰<-…üQâ/=©Åp|BðûêµHSä¡Þ"Úh·|.ÿ‰d‰Á’l†Ov÷ê$Z)=Ä¿¬MÚ¿Õ€ò.ü[EÊ ´­ ALôHŬè»ÊÉàâÁ’ã.™Cϧ8§X¦ú·[0Ù.$÷¸×ò.S‘•Æ?ñ•T4|‡²¤·H¬TeÐ ÜcŠŸµÅ1Š*©!ëad’û€ÑŽÌÃ&„³X–œ=í¿Æo|O(¬ hËÝ}Ì:5?McƒÏ×@†è ö@qOHb|›-ï¹ršÚ·3Õ;¾Û£ùËžO ì¨ÓÕ †ŠÔÛñ¡üLµ¥³sY`‰ÚÕ…æ›`3 ºsx×u{ØG‹Bfãùä Çâ½8 OW…DÏÜÁàçWéÕÙòWcèË„wúâ£m,7þµáÒ9~™f ÃÂnеG+ù °ÌT\—F æÌq†²:å…²EUT`¶¾ý@ßC›ý—m7¾ú^΂o%×¥ã¾wÀÏ<³h» ðEßès ÊŽþÚ‡ÔÍî„ÉëŽá!¥d¼éù† <‡Ž³Àè œì\éÀî]O]"káb ® ØÑã%ØaÔ Qþ6™ehÜ1H‰§3„]=}à Cjj½øïáýôoåS€;Ëœÿ°/Ž^ÂÈü°ÜNó‘ey³ÌòU9þß9ú81îÄMé¨Y` 8º}JÊQ ´ËôRu0gjœƒR·7Ä+´·¿Ê€¢Hûâ ¤ØMêiKŽÒ ÒªßátüëxGÙÆ–½Žœ›« H{¬; x} «~CẊµînÝØ00¨î8Ë®AÁƒ h³u x6—&«Â©'”y…)ªúIä÷ mm?)•‹qìH%¶+@¦OÂFC÷‰ÏxgSí:{ïÏfYN«-Ê*B…ÎÅ¡~ID6űs’§.7fç6wdÜÀÎøöá÷éê›á·Q,Ãg¬üŽ\Öu×›ˆÀ+ôÜüM4g¤‚çB*µò±&Tî½õySÙI§ · ‹42ȵ¸#ëàÓ\È÷Ï&bö Cj§ Ú+,¿ÒÊÅ8 œºÃ3—K.úÍv1Òé'ÇüÇ ?.,tÁ†Áy‰žAÃmÓÚÏg‰ãÚDؘmi«Â°¿‰Í…ÙXësŠ3~Š??ü·'ªÛ€-©G’Ó—øË“z¥Â¥ ]]¼œ°4åï£QôÁH§#nÁ+«Ã,/÷!ür[1A„ŒRÉÁ¨UÖsD4H3ìæÀµ±ùkÅKÜã¢z%£@„ ñÉæß~Z_c>½¢¬yÍ_m=--®´š“ìÑRËŠvòð“Yá  Oér@á^›˜æp¨8ˆ{~.ÊçÖÉž™Þw¬Bì?¶të~~@È¡˜bã7¾39LªZxìâ cÏ,¹8\üîÅuPt˜FÖ Љn×’ëâa¿ fæÎæÊŽ{DsËxƒežAK¤˜ß܆4C‚e˜(¥m )lƒ¶Ûd îÞéÞÖÅCSî 9ÒR„ôaIËI5²{-#åh§‰’2®4Ø;ÕÝÊó`ì’Æµ*ãDÉN%¼ÞÓÐ¥Ò¤QÔ>" rÒÂF¼ ±Š™˜HjHÏ’^ÃnFÀ¢t6М¦9÷Ó€ÅÜ4ðý@òzän’³õãîÑ'\/QüÒ^™º!¾¢5ðk\Êœ'¢S>×pˆÅå´D¦ åêë·e53ÏJÛË(P\_øÈ}ä¨H$ÂCbwÞªçwEš/v#U¿Ç̪;D7ã}™j´’.݉îÞÝu/“í@UŸ‘トM>ÏPöår£Å±Ì4üLÃ[§— ái¡‡ó úf×üæ$Œ%LWÆ·ÄÐýóJcD)u“¨®Lcªsû¼f€w—þëŒéÞÀ#æ]ø‹ÚÑ¡M\a3!c uJ-¶L°0çXN37n#îíLŒNÔ¶&7…Ü‘øf—Ðg¦¯5¸†1¤ÁŠø‹mNª—7‰b%°ÞêáéšAÇìtÖVqÏCÐÂÀë%­?¹ÿˆÍ‚îãBº+Åí¹~­S ž'çÒç¡cóCDÊ2dÍ]$UG5q¼Lw¦Õh†‡(íá¿ÑäÉ;q‡_TçæG<­•Œ˜@aó¤-aU8³ÏOþ×ƒŽ€ѳoÁ÷6EÝ·›-mK&ºú²‚WŠODm.4ˆ“Ä–(¾xÝx·–0iO—:ÿmÙ+ù[üX¿H&öÐÈ##Ê4‚sUä¾ý˜rmø IOoÀKMOÅIo8¯¼Ã|ëì7ÙšØ2ù½Œ•¸ ˆËùÒ%C{ÊÔP¾—ÆrãYâc‚Q™Ë>É’½…ÃzWŽF:ÀÃ_¬^–wM„»…ÏŒua©H|;Êâ¶%Ìhf•À‘$pæõN’g䥉1e{Gu× É=e‡ƒ¬Öõµ|B7‡ºkƒ%â¬Ð©cHØâ^›ì½ Î㔌¸%ÈÙçû¡’^ßø%½ïÌŒKõhß?:H,ºÃ ªÆe!%ÞÇeét`| O·ÖâÔW•¨v .¾ÐüL©²³W‰]0ßdÐ [wc`GÄ%|¨ã+ü Pað­]“*;ó¹…M-Ùfw¿’¸l5DŽ:Hñ#'-?í-ÕBe9—^š°g¢Å¯çzl”‚(´øD¯ÌÅZƒ¹G—{H5XO^hŠˆ$ÇBˆÐ¼‘ «¸‘y;E‡FYùe_*ÕÆ¸2É«FÁ/o«ôüC{µ‘˜á"cM_û“l+mË£ .C “dÞl‡ÑÎ:q›LëÎÔR}O]'oRÞ–®5Vj‚„=¢“=Óþä6ì#l%™{,ùÃ{5,›v‰¯ÓÆgH:¼AÙ+üLÝpbDQ»ÖX­Laë·-»Íuëƒ?8©ty3£ Çdƒ60yyWÏDU!ûôœ«ÿ__‡Ó!´îKÂÉÏ‘šã:l,QYàís9Õ=é‡aI,î#õhV:V”yXT×OÄsŒ·Köx3ÉÍm›O¸"Ûëjÿ×™]sû%võ_APík~  wã¶ðÇðUàùKq£ÞJ×IcªÃzhX+8W4}í¯Ð ]áZÛbëISQSl˜Ńls®“­a”{½U?×¹tùÛ²¿Çx<õbðÀ,*´×F EþÒŸŽ*Ô/UæR¢œ>ü£Ü|Á <ÄèÊëÙñÚF³]v¾…©¶¢ KØ´~÷ÖҦȢ¾•ãÂ;@Ø<"]s¯êËKØIœ¢AãÁÇ™äûÆ/“Bcj=]ÚX;Ëä&æ pxIdÐÏh‘h4çÇHv—(yBÇ.ëRüÁµ—]q»x´i¦×y_Q`Ö ÄÌØŸ<âÝÂgŸ²¨8FX‚¢7Ø%–ï[(mõ´™.þi岿q÷T“Io× ¯m®8ÉjÊ’½¤äü%Ù#‰'ND/“{À@8¿í¨Ezïeî=>P"à@ù½3Oü|§Æe–o+Á|þ£žV-ptd®ë ýüƹ4èòr'KÀ}.Â`w­’j'~n£Ÿ¿ä13÷sâ~°¡íï®J‰Þ­8ÔûHœ–*pR©è£.Pí±òÐRhyû]Fýå@”AtbÁ.[€ 鋤g kƒCíL)ä|)¡â‚½Ýü=ö“Þ2(¤-X·:jÆÖ4wDQv3Åc±³CÑb¢¡ñpÎB¬V„ÛÄpq9xµ&¢„«tcR-I,}aK]5BG‡?Ä¿~Áì¹Â*8¢·36Ö/{í;‰‰z•B¶f‹‚ȹ³¯¶7o®üÕÀŒ° r¨iÒf¼Âp JÙzq?sîÂÑû@ÿ’©…câPß xï›P'RÛ¸ßÑ„—©Ø¤¡ÕQ܃.üœ»ðÓŽðÒXœ¦¨þ¡ o|Ö;fŽBhàä× ?!Kx©’þ Æ”ô;2é×;L9¿ÕüLÙ‹Ìj.D´[ƒQÙ•£cø\Ôþ\÷¶µT/–ž¯NÚ0³ÆPN“ ¬ †Ú H¯þ¬ æL–Ëï¿kŠPó¥Ùºþ%æ¿V,Ãgt6Œ,õd6Kð÷NQ]'šoÞ£¸ §©=ØNæbå¼Ô3z¥íM½é“ÁpÞÌÎàø›or¨¯‰õ¬„Àì gJð;'NßÜ¥nÖT€0ó²éa½"(ŽôTIiïD±`9P<ÊØ[|pŠ=ÐF[$ýõIב*Cæ uÕ27Vú%vRýé¸*K»¡ü¸b°èóÖÔãÃ@¢Åß±n0ì=…BÙ!g®:s›[´ÊgŸVft³u‚‘볺¨ä/—h°m¦šl&¯ªÑB6r'f-ìÁÌqtj‡ÉÎLWEFUëz£FNRSÓc&Kϰ ´+§âø¥²d¯˜\Έ©‚§,!®&~ÑÙI¯šµžÇŠƒÚ§ê›ˆ Lðìð“÷cIç×k2™2ª’º»/-衸½YÄm,…½M„.í+ÜX®¦]=å¶ÓŒ¶¸q#+l|œüL©¿e„Ç:ÿ«Oœmx+{_ÁqopñáßÏ;Î9UÉ4üY–Ôƒ&4¦†Ûn¤Þ®WâAZ‘ÚÐ `-Hpt;ƒg FïK8|wî¡éÇΖ^€D¢>©ýƒ¤0¢~¥Ön^¨Öc=N-Ȉô€³G [»W¢S"vÁþÆ0OVÝäÆdQà“ïÜ#Ø&­°7¼š©/|(t»BjE æ`Ü [Øp}Ï—ÝÐWaæ _ ¬Õêô•CÃ{ag îV¿¾ÍÂüM.BC•¡~GWìµ?HÈžmjäÌÕzêуýq[Ìß?—ž ±³¨d3¶Á‹é… Ãþ”„ÿÜ8HiD ‡Ç jwzGÐj€^$®¦ƒ#ñ#¼•¸èä­ÍGå²Nþ  ©Å‰ñjÍAm)ÛÍO„5hq¤·¾Î74jà Cb/Ý8FmuoäJq?M²Œ¯È‘(•ë$]ˆØÏvЧKYi’/’3xRš|%è¤Þpi̷̵ü5 ¦·¯;ËÿW°u¯·Ÿ1¹'—]¸öö-3¬z¾:ößÜü±¿9ÿ:ÁIþR­„ÀiÔeg8 Ž¢GED› @˜‹“¹þ ÙÎÓ l]œpnⵞ>u˜¾.‹šNC©×Ed~©d…v4L¿y¹A_¸—$f~Ÿ‡\ 'µW ÐÊšÍ*¯qÙªƒûœxìKtΘº…,>"bíJæHqR¢’èóšPNõ7?ٙĢò¸Ä(Bùy1aYžt!Ì:š¢Ò»÷£çOŸ¾Fye³KNˆ'¶ÔÉ}¼´\¨EŃçË87ââ2 Ô(ä*;f ^áŠàöWüJw-ÜrZ§òЈ­þ(ó[$§±¾ê«öÙü<†¹y0µI=’‚gâÄ©~2®lºê¼—¤b÷8´`w­·_‰±Ö²‘IIóD¾u×WÔä¼P›eJÝf/=TqÇD÷K̰ÛôM‹`Èx9qEo’íØ< ‰%Uªi™ÜQb^,¡Ô*S×UÇEðqÞ0õff•ùTà ÆdÅiŒðõ†¾:Êww¥ò¥eü>IuK‘ÌïUØSÁº…%.ìn™“UŒ'O:b¥³åsûô4c¥Ï»/'ùÒ¦<¶øRƒ}‹÷ü}b¡'å"?ž?Z{@;0¶$k ”aýšû}9ñ\]DÌAÓy¿ÉèÉ—Ç÷t»G¤é§°Ÿ÷ ÝE/’l3ÛO5Üqk1ÓÓ‚¤ <ÂüØã²×_^ßÍ8luÜ-ÜG\¿|Qzˆÿ·oÍtŒIS°í…Pj¾½Sy3[+zŽp¬ï[ .Ò¦¸j;~F«²ƒ‘ˆÔ¿¤ûëêÄ~]?Çû ¬“×í1•ú;œ«á¢PC6uV…°dX¤¨ŽÀæ n`4=QiæU&:ø„Œ½#•}JªæSŠù]æ†. ªÇrñKXËÚÔÃÖÙ݇ò©ûfYüMfÕN;&›yÝk穼}1£= ¥kôfβTy?ÍZ }<& ZýýÔŠæÃÌtHŽzp“ÅÑd+©³cVö²‡*ð‚j¡™{c£½æßÜã|ŽúÇk7ñ©¡ŠçÕšÖÿöè¹§7aµS§vûR/tÔWh´ÎšŽ‡sª?#ÙH¶Ñlû\LS>ÏLdûw¬Ž½Ny Ãø:;?bÏ?âÄÄP}qôÌØ½á¥ÈH¼,÷íÚ²à~2N+Áu•>z®‹Ãq€qØRüLºl^g °D+FçÌÓ§U±MÚÕžSH°Ïáüƒ„{I>}æó« “…Àa0BÔ"âQ²e¨|ÑÃQðpÄá¦Ù±¶ÊK:ïLtN`#ƒ•%î óYÆ„e24ý C99¢RÄ£ ÚÚšyúxúÞ4çwµÙÈѤZÐ;=êÜ·¬Ê“©Ï¥#›¿H5÷½Ø¯ÖbyYžÞdùš´ßD-2ÁEÇ8Шծ#hbKh᜶zÜ=\ŒÄ.œß˶Åðè2çöõË™€ƒ"IXoÊCÚü)Že½üLºCd¦ Ÿ ÷L|@•òå})D=StJô,ä%i¥Úšó;_pS W«óö`¬¸Aâ¼âÇxôŒ> S0ŠùÓ'”œ³¢tš1röÔ%¢Z8tÔ;À“ÄQ(Y§‰Y g'iܶw¥JcZÔ^½©Q*DQŒôĸ8¿­œT„å -Hq½h“õ²P—·¢ÿüކJ`Ù6ÊÆ‹žå;8úEy›‰Cšü‚Ër^˜ÝéQðÛ6+3g‹1pŠÒCíý=ÞuRŽU'büñŠÉ9â6£L–4z¢`ÍæeFMÏmì#$DwZ¥)ù¼€p†ÏaºÁËU!R‡/ÉO»=%uePKØ ­ê¹*IºŽ…sQgýŸÜR5q€p>Á+F6T°j\mZŸx'¶jüª’Ž]8ÅÑU%¦ˆq×aM±ãCl¶GþÓd›å|JK,cT÷DÖ>Q*áÏ­3©¹Ããyïà]J”_eÑûe…fÛwDg½Áé’Þ{H#j‰·°ÈE±ä12Ü=hoÓ}ôTšµžy§­ÝˆêÎBк’!:%qžnMDÕ¦wä°öšt0;mLPñ¨|…Ïò†s¼¼² ôͲ †¯ÌN·œ{Jîã²4jñeW¼æ?Ñb’Ê^­®ƒ³‡oÂø¿}dŸÝøjªð&näPMjLx‘?´oŠÌHµqÆ ²ƒZ5þU˜Ð¹Tg„|œ3‡MÆ ¬Ì¯Y ®A1/þ‰pŸBLÉ•pÿ±£ý‘Œ(%}%yÑLB$vÊU¥K½Ù[×ÎC$~ê—!"ܘ:¢/~V~9 éPr, ;…ÞäÈ î cñ¶J–È9v¡™ú¥þuóy¢Þý»á4Š»ÑüJ›‰_o¢F9‚QN>]¼êáÕãu´,ó[… «œìŸ<éñH²èXíäf¨ßø8rÆÄˆeófn«žnÙJ›Ä‘„ˆcf­íû“wyÓY Bê˜Û¬Ð­= ŸãÂÁÅbH¶¡°æÊZ ûr̈gåŠq[@ôJ³I¶†Uð_œ{Ûz“¢0•Še]íÆKÄ Õ¹ú,Y €tlö7Bͱd íÍÖŠ9¿ §)e Ân˜í£G-…¬gi¤¹°—HñmÇ<‹gs@¡-ß$£&Yß©·<^þàY â ‰í¹í¾æTÔËH4ºÃ4šì’OjNÂi ¼¹­ ¥ÒŸ†ÿ¬ó3Á¿ü5[ÉU÷”‹ÿÜR"PF×ç°•{¦„héWqàV¬=ûK6¨pò›Ó*ôG)M‘³ý‘% ÉÔ­cfê¶;‹Mûr­•ÆÅœ†¸pl©vÓ®_&C…HÉÞÝ›·ªzß3‘v_·Ä± üWû<Î+8€ËþÓ [Ë~pQ⺠{kÝ4Ý,aO`1Ñò™ šâ'MÈ¿»6´jN——ëØØLQx†½Ô¾Ï¦»ë†»SŒ•,ÿ`}õ=)(¤F‡’Š˜BPô±Zm$NJeŠbµƒç¿ m¨1pd׫ƶ ÙRæh÷–õ„L¯WÀ2B2â¯T¯ZZ6|B昲»ã£Ñ Ó_Ø<7ðâY(îÙ½ÊA­R:žkšG˜Mâ[»´ß-Bt÷ÆéPuc ¿s€‘ëц!†¤XwQš }KRkÏÒ3NN‹¬»©ÑÄ„¯ÐRj©‚X‹ü°Ò»1Œ?ƒ¨Î2’¨§ïײZBüÎMµM§Á ùÔ‚«Þ[â÷fÝ`ïý8d±b)]K¼Ö L1„}Ê)ÿåã`¼£€sqk.õvvàï¹U`ŸÆ=& Íb(ꉉ´ÌÛö'Ó”µï¹¼,ç‰u³vá˜^É×pÁRI«ö$O*iÄ ­ðrÝñ wkTomK6Ä5ˆŽ9Áô1u#©´{¨Ü»¦5[W04så‘Å!Û춺>«VßBï|žåó9ZsÒFÓÐ%ÎAàÍwGÃR@ ñJ üçÊ%zj@޵î7ÖK Öf ïîd’»üLØø£AËRí èÑzz÷m+ñìxe«˜TC¤¬°þ™ô4‚-3Ë! Z·3ÉÜ—íûŽÌÒ$íûz­ °¶#¸EŽ¥½ÄŸÓÖë«÷ÌImÌ}/b¾ÄÉÞ;WI¶’àƒ'FӃБษ˜Ü¸Vo"(áÒyØ”ª<Ȭ·ÚƒºQh¯˜JËŽ«€³8ÕºRMjHÌÃì)ø`ó sA™ásÁ±“e–G±ìŒ¬Œ U- æùð'шKœKÉÈ I³=Ð}·;#iû¨ÞBág‚bINdF©Ãò 'Dgâ’vÒÏaÆ`Ù¯IrH”É®Ë)þÿïîDüL±N•ìûg¦âqXäç‡áC_éëÞÛŽÍ»,µÑŒÆ$a!0šã9ÁpÝœ‹Q7±üÊü*§S6l8p÷'Ѩ M[0ÿǸû¼¤é°H²_A²zÝÁº.œˆÂY‰²÷o—¤Ur0œ×zSt(z”l>c–˜B™ã•XTÖõ_EU4·öïÆg±Ÿ’å·óeAÊ: èy,©Õ ©i,I2÷8Æّͯwo­kRjLwÙ¤‹]9—V‚Š Wýèí^Ó•z´/ô‰£,eÒWX²Yäø1´^ocÖ¤ú\Ùœ­¢ÿ¤`¿¯Ep“üI}ãv“4Iø Ÿ¬<˜¨¥r™Ì­ŒL´ò{$L •¨wñš+ þKYb ô=¥*CH(j7…êg= DÏÇÝ_à%Ä´»L/=A©O0åù¼J°C}¥ïø¿ÔaN¬;»ÄOtŒ›ãª°µ ϧ)ÒÓÂÌíü¡ötÚµŸmÀ)íOø`5œô—¥æW¬ó¥…ö5^N`K½/×é¾ëg¨•‰  —Ú‚¯å^V Fá¼Aw˜–(Î ¢\Ÿˆ@›„§ ¤¢i´§×É/Ù£|Pëĵ6•ŠÓï“AîéUòm:ø´¦‚h.Þ*üJIe‹({øæD7Vhè,ÿªñ"Üû 9§#ý HÕá*ïÁÓ3ûԋ`'¡ö¯zìÓ|Œ°¡—¡ Ì8hŠÏ¾ˆÇÝ©ùï(û½&çÚn§.&„ç—Ž×f«ék¨Í6­v;X|uDãÁúg9g‰3r܈ŠsÖº‡íÄ-ÍÌ1|ü|˜H>¨›Š¤KF‘mÈO3_¹ŠI#®EæÍ[f£ƒWÓËj1s]R`¼§iÙR¶¥5©f«ë¦€?]õÅ=ÜÛü-÷Pûx/üu `¥¢ö—.ãa,h _#]jtc‡(}@çe€Í¨³ ¹ly BXñ‘{8KeOyMmòãuxtc°Ç²¾d¦{Ÿ¸¢Ãyé>?3v¿ø¾w\UU ¨»såxYºiõ’êþÓÙ‹d^íÖ‚ÇÆÈ=MnˆYY{³Óh‘¶kÇÜò—Ë›;hw[ï‘ @ ë[QƘgV±Øª2Ÿ‡!Žìd“î“R¦Š±Å:\š$èôôš%xºC¶ÕwçÑ/@˜§u7ó#D3ù› —NÃO¸)9Ú«w†.‡¶é{†WÑ ‘ÙgVr~B£ì:o†+<ÊcıäV–{÷îo¾tµ–¢2×ùr‚\R‰É[§ã_¶ŒáÀî‘ßïª6A†//ŠÎ ´þ\Nnuâ¡vPõت¿“¬ trs+†‡´RSß'?üLÈÝÊc‚<·ço5iR‘/ûÐ+šÉúy¾A¡û'&hd"·¯N¢·×M¼De ª‰f#Fj"zp¶*€ônq —ñŽ7/&Iîá Å' úµ;ìæœSÜĘªvÂfÞ%…‘C&8s!®žAdb•i;•6‡ÎŽã®@~Sy5€%r¹±6û®\›¯mÀ¾H*Æ=©¸ã¦VØæ-¼»-(–nù5ñ»Uœ+¤ê“o ³ÌrlS`D™®ÿļîáIKéç*‡L­fsN]' .i³2²×'óí«Af *²fÁüIa Ø·Î1Ë7häB·ŸÑ½RÝt$×òÑ$úd®S¤~{æl7̼ºßd„Ð5õñïü°ÆÔon•Rx¿vTê°–mM&ꊾ‰†,µ2GªÄ‡ÂJJ‚9?ÿÏ"nwÚa[x\×-í߉¡•æáÿV o[àï+ô [~t¾æk¦L\@Š®/?™=a[Ñjü®¤^HFçBþ;òwöÂ\Îoª°‘6­ $óÕâ•%ݲ~ œUôð¡hù âÇê’/{m%ºdLYï×0SšlÕ+%½=ê×£TUÿëÁ+Øœ,9܆¥êfV€c&çöá3Üm9Ø9ÔMuGÊ×m1l@Òghx+µh/P-¡TkÇ*}-ŸS×_†vØT„x{ü±R+M…×A6l:C ÿ®ý,RÆz92³ûQímIí1‹Qžª•üNbBÁ%ŸëjN7÷æsqý0W"d¬(H$/°!/Dó?k:jƱà|$Áp…4Ýð˽kQèy¶žˆ_ mü>èo#R ·u}ŽüX)¡V]ÕÚÌ\KL–ùPqü:Bec"é¡B¥ÖÏ p…|B° €ÕúeÉŠgÑ.4ËÑj8~SzÒØyÑÎ#|Šƒ½º1ÑŸñ )ŠDʳÂi—ßeFÀlùÅU÷Í÷ðo£ìzkµ‹Ïê ™Í1Ò UbƒÇÍÀ0¨FxAÇåSÅN&ÔzüM&88qßÖQO bÃÀN3®0më¶ct3÷¦kÄôi‹ÐíìW å±3ù¢<ßäÎÏàf ­;)Ò•ö^ηrŸ¡s…ÊfÖÔ‰ØÓÔlÌìeMãrP†SÎC¸Ì­ü‡n6EvjžÊk~€žÆ§ C¢»9­ÖŒå'®LFãÆp;²äÏç™—@ðÌt^Þ—Òöí?ðjU^˜á¢¹œÉðýsCÓn¤•{VïÙOëÖÎó^èÌr<Þµ‹Û !°8ó—9}RíÙN^k¾nñzš™N{aÿ˜.B±~$ ‚¢¢ ö¥cñÅL˜´{^q!½Åüñ&ÿ°h±vOk{¼¡¢o»Œ,'çËgUöEˆ%lýã}Æ=ÿCë˜:Cïxi‘L×PÖ½¦tîÇ1rÓK‰ßÿ-¶´‚HƒIíø‰MÍ¥zÚïÍFáð¾ÃÐßüÚ°d ä'Ï„)ä1t8?äG¢L¦¡Ž6ežÌ»à¨Šc}E!:ÞŠ$’oF ÅüJ8âZ å‰d«µx iêɪäÊ·× ’€ôK»«á.¼ì˜~Puáéx7Jv(©:0 4V—¤6nuÆË?svñ,Á$Úzpð*hÙ®¿Æ¬PsØsb6ÎÑåÆÅqtóÁê*·ÞaJ¡²« 5ù÷ŽOY‰3 ûkÛ³¤î '<£y8ÕˆLx|ʉ'}„ä:AËí3w¦¾ äe˜íks‚^QÜÒWÝ‘ïàŽ3lûó÷umXS]ýKUGœÏ y?pSŒoQ'ø-P9®l“CÃ}uº(5,êWyCå{¦|… j¨bvx–‡¬Yð)rÔL·Yþ|Yíw¥ÏÒõv¾Gg3’¶›«Áwn  ³æúõ5wÀÿÀÝ8Ü–¡Â—À‘UZ\·ãïÆI„7{Ú}É'!dNéîœs³$Þ ¢Ý¶”äÞó$+j¯Ÿ(¯“‡ñ>+­»EíudW-ÏÀÝa½u±^T <éŒ4Û ¡á- H˜ÖcçádnÆTÐÔ²]À^‡6zk‡üM2ã}À§7M}j‡hϓێìêଙ¸ú¥o¤±úêEéö$m–:êµ>goéNþðO_øû-ú˜©GtV3Cw˜¤/ç|§O Ïˆ8¶.ºðÆÆÆ™zÛ¼³ˆñúbäf,|„]¯ ò!elãy6âw&5%y,ø´òÆÙD'mÄœ*Èb屋ù¼2ÈB¼Þü þÆ­}xÔˆ/oç`ÒBnë»RÏ+í~nðÏ}ÐuÓ» Î]V>Vé##û07ŠñK‚ƒÿï –«H/oé;’·‘׃W Çtéx炄ß”üJƒÐn¦‹žõá‘ö™–òy†|B’£Ôá} ’ýn Ò¼Jä) Ü›ßÀ¹tF¿. uŲH fxõ¯¯ý¤¨Ë×Nò¤¯¾z¡ævýJLî¿™ýÏ{#¼a Bò¨g1ŠqÛ„¸h†uн€î)ú¥ñmR:žAPÔ~à1½¨/ÇÒ…rØ}—ØYx/ͶòÀ"¬(Z/äÝ úÚýhor\ÒV\‘Órä~ŠìÁ.óÁAÿ1Œx;u^"‡¤Òöµÿ¡ÿ`8ÃH„^û¤ Ùð$¶Ý©=…+Ú{n9 Êvwà%~'t5f¦`<ÙüI÷-XVðhEC¤(ï–é/§ße2õ®*Êà¢o¿òΚA(üXG‰ª/Ó–@ODîÊ¢X¦ÔŸ2|ÏIÿ~¬œ¤PãTÕýæ€à:ôÜÔ] }'›½¬]Wš a ‘˜“×‡á²æ»aç“Ýá ,ö"Úɉ»Ž»@ú÷Œ—©Ζ˜(œDKÕó»ÊÇkIÛâ·†¯V¶ŸD^‹¼¢pèå·0zm<¸iöÚ®0 º4qà `ÂÐ~­0”•Ao–6RÖUBƒÁÙ¯å£]™ ZãœGÏz'c^ùÛά7Û:fí]vàœŠ³U:ü°ÓƒùγZ> ZXïŸs„Ÿ@Ž‘@Ó“Æ÷ŠDp}6ðéß ÉUÚ•.•y>Ýé¬ù•„Sâþð³ÿÒúOIfØÔÉ77`ŽCºà¹:ê-&ÊIðkgÕ@Fµ;SB•üÖd€P~#ùbŽmÁàBµ7Öõÿ%6Mä]ýB³W5h'=-»b`nçÈv9¥Ìg®))ÓëðS¿-žÞ‚Ú}®žÄžŽÀÎø$U!2ŸEˆ2°H1,õ„Î3LÜ›Œío08êaª±LÔú¢rb¡ýŠ!“Õ_\>pHXý‹ƒ;r< ich:PÂä&÷-³(úHèØœAïü™ö,FYé2_°¥ÎD¶pþ.["Kv3Mȸ i9ª…“üxæ2‚Õ2ææ€^^¾ÍËÇyJƒ˜1Žä€ð6GEº¸þg\¹ƒWŸ80DbýxðX"H=~ŠjÏÒ¼¨„6ªãËɵá$ÐS¤QŠ©ÇÅKPigA; ý•Y¢ÿïŒ]*×Z7Îh{!­SACÓ[ì¬R/—3ÜK€ñfKb&’¹ Çk¿»ä`þ ºwš¸kéõ„îÔ‰…ð©ø³i„$ú=%G²$b[yúLµÜxƒ:ñ[<ú™qþ™PxîýH‚÷«ÀnÜ»·£DE<¤²§â­üLÙ©m¶F-8½}&õÝÏr —ÞTÙ!®uc”î‹oµ6½ø< ,FT&Kê©ÕQ@¸aöþ¡6ÓD…ÿ±J­mÇLèùpciïõ×¥sÕÝù„y u‰?xW¤–`-Y6÷«÷ûÈ!ŽŠE_.#Û±–ÑRû42Yè?Õ=y ¤I{Wam•…Ú^îö¡OW~døW5Ȭø×¡’Ý ¸™Ž¼ACB‡QS%ò:‹Å¦Åó^‡Lµ`f|£öQgÐ }—eÓPˆÈýç’"ûVC/­-ßy¥ Rƒ-pèÃÈõŒ“3ÎÓ•no¦ÈMm‘2ò…ßøB:kú@,Š„YòN>º/õÍÁ‰·”}$Ë¿Œ3×ûzÙ/¹Dm®7,¯ üL¼Që§MÜI/£L“,Ôúã=(š n7Ý¿^AcÛΈ(€ôÀ‰{—îÿG{Xe/)t£Ôf ,»}N S†‰À½h¨Ð¥I20므j|Ô¸ßÓɨ’`žmJÈ9šçÏ‹¥“Ý©,.»žÔ<´mpºw(®Iݾßêö0tØî%ýÚª »G«Ï›> Hé%tz ¤²9œÖn¬DUÎbõg1J~™d)¯%´¥ïs”ÿJ(™y6¾Œ¹ØX0`EÖêÞŒÝâ,JW½!!z²\âiÔ qdò&Ù üL«ÿöATÇË?\2•†½°‹V‰¸Öõ¢±U6Ï):εf5uöד?~pHD¬Ú5mö&¼Hò‰°_4"–[qÉÝç(…ëÊ{ç1¤ê%Ìyµ˜Þmír_$Ø–ˆî†êÿÎÍTb}/¶eó8õxú0ÿ'²œ&Csj¬¥ÖžÕî߈Ã>¹Œu™àAÖ<¯ˆ³žfKêd‹ù³Ç"Bc>…½ÅhúEÚÒƒ:¢‘ #`L-f'OG>»Þ_±ÜÊ’ à2Ê›v9¨íw¿3³üñ!¸SÚ8fAšmú'ãæé~ Èv+€€ºÇ4Ƀ‚§ð;1›è§t©RFÕˆ}ñ¯¼/6º?k}¥{ÄÂÄì5Å2 ™m¸*ÃJiOÝGvÖoKÖ®s‚þ…džsãšXB™‘WJˆéŒ>dëà<w¼tE•H[“4™ÛO¤~<ÚÅñýz‹Ó­.OTÅ Ÿc“0³¡¶?‰¸}üõ¦æñ&­Ã}êdÒ NežA¹P0þƒ¢¯IÈXŸ‹=ÓzÚ õkRÔê@‚ŸüIÝ™è‚÷z=,µæ# "t…Ü ï¯·I´ÉsÐb)btŸÄAïâ³·lèrN0›á&À|gQ¿˜nöØ%¸I¶ñQùn¾yµ”Á Ê}M0%O†åÓœÊö÷M*xeIKªAKgÖIGücz‰«Ðz~æ˜|ζd€I«Å&~|öïÏ“ ‚-ÔP³ÿÆf‰2zÓðCéþ¤…7ºßIÔdæE;ú˜ç‡V÷c@ÒÝb·;L¶3 jdÌÕK]Ú£$ù㠵ѭ/LIËüNP.‚¨äæùdÚê Àðf°ÙFM¬0œ¯ËýéõH®“EJÞðç—‚ŸþÝ=ÏÌÈ6¬«SÀGÝ×”é/Ç‹(ƒ"/º¸®‹¢Û–ž'e;Þ~嵎ޯ˜æ*zæ»;·ƒ¤¡fYüêŒgÂñ—ÃÌÖ–¢b Tg¦»G[œ ~‹ð¿£K 'Î0@ï°›­}ƒ ­™%Ž,øÃäºäçtb[¼ŠjyHº<³çŒÀ<šhBóìÆ`FoDÉ·Ä4_šcÒ„¿Ãi°•¤‰Œa!^~ÄüJJ—[72Íûö£‚;¹CÝM `Wn@OHÐÆ©Wè’ K·)b*„q%#Ti|¯õò³Qê}ÆéÏuåq ›çºä5ÆÐÖ‰d«2ÿ4&XÔ,ÚУ•·]?ÏÅI[á%O¿Îצ€W2Ì>Ò”ŠÆV €!ð8>Ô,™m ÉIhŽÉñ´¬â·ka¦q×Ö^[4b b]A øîКZ…¿3Ã,¼ù@’ÖàŠ·ò–&Ç]"K³V>Óå´¹¨4ŒgsE‘)üNŽk4Þ?µGÊSqFÉi†ö‡pÍÇ×hÜZ^Öšû·0µÏ (elyÇ”Ï_@ðñ´£TèÇ5URÓ•`‹§«§ÄyÑÆIne$f¿CGŒ‚{²³Ah©Ô¯í —óí2þ™¬!JÏe{uÅ’ 0²° Ùh½$Fe†KÅ­†.çÈ3aå][ÆUW©†uÞƒ4·¼Y¾©ú>ÙðÐ}wÔß]‡®I„ÿº?ãúÈ~õÈξ»ÒA†-bæ†4ÊÏó6PÖxÂRÆý,Ž“ëýD/ž† ºô°üM2LƒÑýùšŸ_Û¸é±sÄcZ‚ ûôMœy",ïÇli¦É¯EÈ}Ë[æ9ŽÔDfíJ1BÕÙøµldÊ$˨3ŠæÏ S‰éc¯“€ ;‰ÐŹ\ñZHô篾4¡'ý%r’ÝFKÙà!Ó’hº4—ðÃÁmm£gÎØT¢‹Þx¬T¶Ñiй‹uÆè`OWwŒA_éÁ€>KÉûõŽÞ;š;‡‰À…SÙì+Þµ£–c0ÏúÆizí !þ£†uñ¢Ê Íl4쬂Àkù¹$XÓWrÚÓ©®‘üîŽ>žç« Ê›²ã)¼Þ í¿–8e½÷MƒÔ¿‰¶.ß-»gâ7QóZmãØþ"êÊFªÂ€î_j¿¬m6yÊ ÂÜ*sAÜ—0š¢®éDüÃ)œ5BÁ@úxõO¹­*ÉZp¥|ŠàWNU‹@j† ‚#¼‚V?‰u:®â/À›©AÐWc›2 ;d‰ÙÑA°ѳé}¨ßTøtÙUY9´<ð ÐíH‚:øpdžLF€ˆæHIgLnG/`Ì®@lt»ÙñÑ»]Š@£4 —~2cüðÔ~ÞÐ\Ò‰[Ì/ š§¥èRú¡þRË©&óý <«éFëÛbÁ¥þ¬kÌ^ëQ:³µ3µSj†¤Å²g(Q½7ä2Þ‘%Š6buÛx¹$Îctq4¼qe¤ù5™¼Ë³ÝVÌÅ Š~ó5Û0iVJB™R›ðÆ M?b³ÂÆýi¥èôc@M,‡à}ïé?‰É0îgÐö‹K m©D jJ¡ŽAõÊûÕ|ùaW ch«þ+Ž(.}þJÒ_`ï2Y2SóýÒfJÖh.0¨?Bwæß§õ†Ã Ó•6»–nÍ.WWR,üM'QvƒË2#æ2cTÆziq*•9$”7„9›¡ú}Ã…ÂBlavF&Þœ¶46´ÏNtÎc±Ãj3Ò4•XJûP‹ÀNìCãá€6˜KH©µ™ù.PIÞy±’ðÆèÉÉ{ ¶‘ù~íèâx9e’†©øúvùr:&TmçÐ)Ù¨jâg„*•î>XÓb6óî8âKbR_É#¬Éc6’5Kë nŽÈõÖ|X„îkIØýž//fƒ¤Ü;0¸k‹(Æù›Õ B“g[üÿyLÈmïïîËy´ ç,øÕÔ?²¹ëtÕüJ‰‚ OãMˆ®RÇ¢?VI±CgV߬Z5 Q½.ðòÌ÷ðu8>ÀWÑÑåX°•&dú4 ¯„3]’ŒçŸ÷í¸Pë/I0Òzõg]/ƒÍäñË1G:’ke^ïÞF_³O Ý–òœ­m↥#” z¥ ’¼§ªœY!a”y]®&tϰ߇³˜O 1ï‰fºX%I¡lŒAÄ×qEthb>›Ý½¸¿r¤f Sß$ú8&ë˜î»P<{| hËñKKpSIÜ‘Uq^“ö¦WqEqïc”AAtÛ¶íü|¯rˆ—§0ðÆM\ !{yiˆ3Á^ýÍ6(Úž0‹ŠÀxd«/#³«¦û|?NyA῞@qÄP?'iËDಽVW„ 9&ó¿|,„Kð¿Äø•¢JÇ\Œ(Âw¼üÞÓJE{×h²e ƒ™l÷x™O¢ÿù–‘<é˦ªè)É[¢ìÔÛZ,GÄJYy¨mcañªòR¾[ð 5펔«¶§«¿ØêIäÿ‘ÖŠ—f³Gû4aþ쇸Ãm}*ßeØñ'òH‡ß[¸²Ó·erYµE~äÿ '­‹U’]ˆ9Ú¼étÙ°™ †ÙOð×¥óÎêu¾åm®x²oEˆ-y6Û\ßOÉ$÷+¼“<ÆøQƒý?[­WÛtÚÞm䥸¦†¿ø3g¤ öð“#È]ûO›²ÓµµÕ¢Œæšüê’ªäÇßÒ_åbz8Wò Ò䑞óüë°—MægÜz½I©Ž+Gò tuEÌ Ã Â³”¯p ÆF•ÂxG4ò¸¢;/úBÖ%N.ü†mGõ“8h°¿æå•¼k5x14@x YþÜÅÊ,pê"¸aÝ{ùàäÅ@cF(2“Ôùϳ·ô«)ÂOpÅLå³swL2ž +K|1ƒúÏ£¼Þ‘ÃÓeéq‰›Z4/½w)ªFHU´”8¿Ú/φ,X0ΑßâxÌc6K\^¥q]¼Ml4¡ ü^E˜àG!*IÊð7éÀ9ÃÌ©“6‡Pt°?a¼T…{†»\úºS+Z>²ºW¬›r£ÇÏ x—‚Õé;2tnï :<š²ÑQÂ,¿?2WÒדØ*Dd Fk)s<Áz¸Fû?â—£V›‰@üX¶Á%¦Ãé–b#úž¸ÑwY+ÂÅ CòΠH%ÜþŸÐBX"|l?~·¢e˜ÿ°ùEü˜|UrzüäZNݲÁäk$I,ïŒÌZ@„J.ÕYhÓH\%™RÃ/ µ°ak@»ãa§Vàe—5deѹЯýY¤<<§I6Sš«Üýô|û¶†VìtËÌò¶÷|ûpÓ‰8–s€u¤“¢Éfð£´)§b)& 5Œôö,ZÁ:òK˜Ø8¬m6ßµẳ2S¬°¯ÄÔƒ8sÒèñ\Hü†fªa8E°©†íc›“)&œòÆ—$´k)Á.ÖÜ/¢U‰Dµ©pºçÊOp3zýq¶†Ôðh\öJj/Q.£Üî8gF»Ë#Ѓºþýþ6Q9E½oåèPs^Qk?WjÖ¥Q„«óÈû:îeÄ–Ó`À2NÚ=ð4£ä´ÑU2D”°7Ò#í£[“• yÀpgY;GÌê~í“î‹»­.ïØ '3 Ô¦ÕÒÍ~fQIÞëä' é”:Åø€­]¤kÓv9._¥úËòKÙ%Œ¯üMU0;;åX lð\…í>×± ÄÉÁWsH>;ZVÔ9™  g!’šÅÄz\fK¨¾ÂD¬¦™‰h0âõœs)y† cm&ÌÅ>×$üVœ½ðNF³çðÌ}ÑBF»9D%›5ÊÆ"¿·KDZ` IÔõ{˜wz(Ž~¢¶À?ü1¥æùõgêC׸{uÁR^س®VôÙá<ºµ>T¥P픢bq‚ZܹÆÜ(Ê)èºwã±ûÚÄÓÜËÞàŒ㬓‘åÐÕ€³òöx§tbäÑ÷F  š:W‘Ø«{²nxî¬× ûf²¡vðíÌ^iVUê6=EÛXçÉò¬~•Ëáé 8~ó’Ÿ$Xþ|¶µ `Φw¶“±2tÇ­kµ}ÿÂL¶«Z1—6ˆ!¨ Ž ùhqÆN¤à¶Hö·çåS:ö~ä±Â~ÿ„?27&L£ý´üKH•ó˜ìóÊ^PiÙÄ^¨«ò ‹HlÛî»ÛÖ LOdûòaŒE^wãU÷l±`ÀéB•m¶M›S& mM‘ÓC¸£¨g¡_\LJì0°‡“¶-$—+¤ÙŠ"7Š\ßÇï—ÍËo¬ëQ´*ºk®—¶9ÎÌ(ók%dyݧÃ^ú/`cdþK?sjÄ 9$yIñ¾ò•|îpͱ=L¤_ÿˆ¤¥¼ù4Ïÿ)íÔ2pr€¨fMzÚßìÜg(zmùhü½úÀãžTÿ i#”VãÜqü}]ÃßiTiñ˜Èxas„s’Ômßê>Ùò(£eû ƒ¢þ™É(•jié! úŠT ÓŠ>oE–pX/u‰nF‚Zœ(ìd7zé£IZå~3½[x™óÚß Óªhïp†¾©ïBÜ„Bg뽪؋¬3]c¬ÜÆ¡Ä÷³ž $€L¦F=ýÞ2šP×+(ìpãŠ<\e{ûê’ûÍxA91à=È^zÏe©D°íC²A4H%éî¡êöNE<ïþÔ~*mn>ib˸œ|ª’drc²zv ›ê3‚b³{.íNÁ`éË Ë0ªk¥™älŒ¤J£po"}Ä€7¿XÝz~ç* îÿ|Hqd۹űõí€[&Œ&“ªj¤ùõ¾ÿBcÅ\µ&$u;si¶PÊÍhk€§bí¼4éˆSz¦¨Î…+);Ìè–9Y–R$áÍ™)d-H8UVë2ž½gSú²5¶¤ý.1¥{Ìì®o™oÍžF]C);]V[ì`þéóYõ[ï§aAº½+'̶ùѽ¦@%›wˆøà"¡a[Bd-”¥l¶ÐüMñDò.ðnóÇTi­È7‹Žý_ó–ŒËFu)FƒÑK?9u«}Ÿª{mP”$PJt[Uvï¹`¯Ê.e?íœÎŒ"±´ZDáYCʹZH$·¦ °1-R½µÝbïmŒÀ'ˆQEBú°¾Ž­ùxÄ`×2ߌoÓ.@Ý^É£>߯™0Aä ɪ ß&Œå^ JEÅ/޾ LNÕjåº/Í NgSTžG4í>à,jÜÁH,v¾¬Î'ÞÌ”iͱ<äs{+î;°Îü„l·àKýˆ x(JØÊ— ]”ÝÕ!K* 8¶¢# þ-õJ‘ç‚]6pxÑ?Aм[S$–D,{í`öÚ¦ £eùP£ïÆAï=8£ïÜgmUÅF“ÝœðÇ€ìŸQD=KÎ[x€›Øü!–ˆ’É·ƒ! Ð eï+›!^}Ébº’ )üX»L•lÞWûlr¯{l–ÛB¨g`'Jñé^ ÷NÄ]ó®qé¼…Ì}oÎ y¬fĽö»O1⥼IˆÏïo]v‚»|Áü<¯!ü„„cV;œò°æâ˃Æ/ƒ`¯Ý"&%e±b¶÷:¥«Ûé¢ô‹=Y­î;è#Z+»ðÿ Ü£&l¨óÌa*ú˜Óë|å±÷riÒŽr:¤ž,ñázMPN“Ô2ÑyÐ$Òg~NHé®1òÆÅå`îI:çn¥‰Æ¥È¹YCÙ£€NãM^5˜.ÄoŠ?^±ö8‘6 ÑÉ!™5N?X’õ¼.¶=ÒÍŒeT±ú¿*ír ¼Ön¿U¼?÷ÀŒ eþÁµ›i³emøúÏþE%$üQ6Ѝº¨iÚÔ4Ù’¡üL½]cŽw9‡‚75Ù*Yo4DÊNHŒÑ…W˜Lh;ÌÐFêbƒË‚Y9ƒŽ2Z 7p $JVBNÐIaÍÃËÛÝ@Ïa1Ï™M>òÖj„¢Eî¶OÁËbÜl9$" $:&PrYÅ1ÞkÜ)*h×u9š…ås ó„A¿ãˉôt$+Sà™K5öŠňJLOðP6ÇS…dIñ¹xφÁ%zùˆÊ²¥½ëe ñÛš«*¸~,‚'Tt|ÂoP m1`sî ¢ÊH^Á°‘þjTüLÙ¦b<¥Ç}N}áC6¬™kÃ+ðU)¶Ñ­,‚ØsŒ…g\ެ¢°QkÑ󆼄SÙ³‘€ÝŸÎ z<žÐe>/a쮣jæ‘ÓdÊV°õŠ %Õ¨ï3gVÜÒ} t¬KvVa ®ì¨Ú’‰u U3´ÃiT×$¡öä;uõMÚÿ·­¶ƒÚž¨¼%Âss™çPZ$aW^“¬ dOo–&Þ}•ô| ï‡˜â´[ú½Ë%1C¥_ %Uò¼lÈh{Ý )?ÎbÒ¬œFô¹=¯7 söÞ#ü°Ød¸Xw Ћ6ƒñd×äHÇ‹h«×UÊ)ÔFO€ô›ÿðrÎùÇø²iUG~ò->ê¢oÏËFÞ8o(>µz°ÆÑ_²‰9¹” ÇNÍE>_».‘7\W-²/€¼;ûäLµÔËò¸’QÄcõî»ÜdÍ #vzÄÔžF=“I[3wlô†¬£§‘™âkíÛue¹¤Vé;Aj [÷¨–FÁ£«r’ µpÛÏ"£)øMó‡f]9ž4;ˆS?¬©Žp¿\WPoðk²Sü}\©exã;E=—œ¬°¦ºÀÅí‘Øœ½Í>¼ú:˜–'AÌ`ÍgÝÓ16ßݽ§ÎîÌêN˜V°Â!!¾è¹¶b(øJH¹Ac#$üä#Ãã@É凸º¥£þÏ€PÙ\Âã$•þWÄr ‹N°}ðàóî˜p7Ìâ.?Û-Ýïù±Öo/ –[öðbÏïû ?Ij^¿_Õ¨Òàl ìRÃyòÀT8ÆeÜò(°\ÇÔôÉE$_în38Ñ4=ZÒ›?ñ&áŠpYœ£3ÄŽ@––(™Lœ'¦bzp|˜g:ƒ\1uPßÔ³›o̹X0„éèC¸÷ Eã­Ç¼H.I;ð1„- “¿ø[e)¿U#ÄŒï‹ÊM°þÒÅ~‰B³aäh›׈¼2{ —LÙG]2ƒë™uÕ*û‹†pÑå vÍùU!È÷Ó79&Âç…V9’¤TsÐ,–†öV“•‹ZúÃQ’ÕuBGåPIn ]èÛI„wÏ)û¡ ÜîþÓ=˜­ìVSä¾›C¯1†Â‚­/2~õ[)›!OggS€Ü9ýÄ nPŠÈ‚<ÚìâÛÜÝÿK׿æèáçÿ©Òôÿÿÿ ÿÿËòÚÓÕ×Õÿ˜ÐÏÏÔØÓÞÜëéäåðÿ³ÙÑÕÔÜÙÿ¶ÜüJx´²SÆî ´^ 770üªUI¿4KzâZZqHñaIAÂSÿñ9¹Ø´ð C>КÇÇ£e‰:(ísŸx,þ‹È‰ctŠkM»)ñk÷ÔƒÒ–¦w6¼Œä¬T3XrîŠäQIdô¬>}j‚[ÐÅ·LFÇÁ|çrƱ‡MÃÉ„ J'úòAk~1áñ?vë*P6+0˜EM2¸[ÎTÚaË>UbT?þ•5¹´ô¿|šQŒÝl´óˆáw`*g‚ò!Áí3œ•aqp¯äû…Íü®¿ Ð]a8w§ª´öëSc AðZª¸•x•ÛrÐО¢Ö0=ÜååíibW4 ¹ùS¼öêýv~M‰h¤žÅŠŒGÄ4¥=‡Z‚6´ž›Éù|JDKv[Sâ>NÌeÇC£²x¦9 h­²¥4fZB 3_Á[ aH¤F¥‹ë&|YÝa¨* $›‹KY&‰ü™h½‹Tv,­&Ès¯P^ ÄjhÀ åð£X&èH:bÜRôZwš&RÛ÷€ð—b«Bçù¥VtI§™»”Æ9¹íùþ¸^¶ÇÁŽŠô,WÁ ÏËpIˆs¿% œ þË¢“ ï–œ÷"®ˆÛz‚ˆ¶ÄY) bÿšC¶8×´åæ¹rÇŽAÀrŒf‰‚ýÙ>«B [1¥ƒÐ¸œ |„–œœ\qq° êj{L?ü$ÎܹYÒ=iqë1NRnÀ' &ÂÜ÷ŽßRåÌÞ˜£7¨>^üM-{*ŒÃ §E Šth›FZèM«­u!5¸¿¾l|‹q¥E‡+ìdÜèµz²ÙVºdï–õ€ÿstz¶…Aj縘VøE7YÒMÕÒö\GEyÅiUWÉ“G»}G³ •«¡R’è:†Þt½bH’ \ ²ŸDYþ2/M(JL(Î ¾ÄˆÇhoÕfÊ;ÀÔµ¯µÆOT‚è¿Õùv¤„¨×]S»?¶§2ÑÏwì!Tkf!ï#«4lg¿Z›»¦QªP—¥onQo¥ü›ÂBPü²n`¾Íµr-…úVkC_cpry0ÊŒöžó;[Úí;¬cêòí¼Vü‘` ‡õ×sˆ¾Š”‚"óë%²‹ÖÂÁ56Ó.e»÷ðaÍX0 š&`Ú©KÁª=oš¤Ïe' º~ì9PÎ5ÀÚä{\/âjÙAhئ‘“:˜7OÞ°/u©ôÁdÏ' Fcúx&óÇ`@×%Ø?¨A™‹)Y¡WjÍø-€U.Xí#Jì1…yM覂å蛢íKÀ>=Ô[]ü‚QÜþN«,âë¢PÇßê»ÕWÑÝ2{-wÏn¥ Éhp€w0„bµvqq"ë“"ÌWÞÊÖ½ˆcJ”ªë8jÄ‚2’qA;ùíÛÔæ­º“ÿ·×õÓ‚KÌå¹ {á ,ËCJíCŸú[F“µ/ MaÙJðu,x‡ðP—‘$#wE·‡K8…(Œ¾]uõÀ»Wk+׃à!f8üNÏ1Îhųü‹¢Œb}ÙH‚}ìÅ’Ôì¡F>ÁÀG«D™¿®OM\õ÷Ég¢Å¨•(ÍüNb&*'&Nï<{f‹¸|ÓNVü?>¼´ÉÐWr“{¦ÂOõ#¤êÈÌP9¨Wö9VQ‘¯…1G.qó-À2²x—o>ñÃêÒšçõ‚|ËÆö?¦ÊQcXˆbwûðëÄ&×CÕ¾//j€yƒ’gánk •蘎mç*š ÊÂj»õ6¢al…àÙ±-ÁLI!gÐ)ìÚ"C#ÉÐb'?µ%mÅàòëÏžÙÆÏˆ>Gô )m»z-²÷Κ¤–1YbÄs(DªfUù[Y䓇iŽK?üMä8•)÷cŒLn!JåP’12Ô±â<¨YÓü îùG¬Ž•]éÕæ˜V"TLjBs«ŠÏ¬¥–ÞÅtaç±èÆòPªr)}u;äªù?Sù=1E±sÎ( A¼«/e ÷+{{½I˜/Œ{Œ‰H3ç†Ï­ÈǰŽË% ªÖö:.±oˆ$¢p÷ fUF÷DŒST²‹=8¨ÂŒQ# ™N½ÊÎ~®1X­ÙNܺ‰ 'ù³[nËæ5Êž£ù‹’· !¶Ý—Wƒ èÕðìÉ•ña•âÐGýï.2ÛÞ#½üƒÝ‘ÉÍ "`´rŸ½°kÛ ÉêV!\sÛäA¦3gþ.ÿ»7‡d+ÕFjÖQ6¤¬"W“åŽ- œ³¶>¬û] ›û67íŒCì‚s4°WÐ)]c2Û'A¢ˆN›)L’2³ãóÌé[¿p´{Æ47“$º?AÅ—¯JS3g2ÿUU…ZïÅŒNTéµB¿:,»0±ø'öBéMÁ©RÝ'¸7ªÀ±¹â¹ú«üaª€9S˜Ê^BìŽÉl:y`>‰Ð};ð˜]…*|8íˆñ(s§ñ’éíºeHºÍafC{·ü†m‹Dó…)´NSgTêéM˾ºä Ÿ¡O^ævš+ã$„æhâ·QÓŒÿŸŽR³"#It¥#ÆMŠÊÏ8þñ²fànà»´ãw’ ÎT½_›k÷i=“M´óÞóç2»>ÂXl¾ÒA;õÕ 6¡“ HGZðÐA)"wÊ ³ìаŠ\%HWzÐõܸ‹T"£²ÃýCà[;º-Û„î•æü/9ü‹ä|ãVï½E!ósžúÞûIa^±ï÷üÄ~A¿cÞtàÁf7s ²"Øœ§&]‘1Tö‚ð\×=û#4¹¼$uv$¿œ‡³Pšfä>]£÷…žZ»mHA|º„ ZËT;©7à·rmååÈ´ö ZÍD({œ ‘*£nc+ N$Œüe6A•æÃ¶HhÒÆu±´,Kq³cÍiÂSRï¼ t¬z=™z–¯‚Þu ˆåû;5V=ç¡átTHý¡ ”8"f &z°Hy;$ï„·â6Ý]pùDÇû·OÞ r"ŒÖ‡zÄÄl`ô½k§¨.A§Üm³èÜ?‘8 Z<’Yô¹KGÑãtÕ1²Ð­ô¶7N}Á\’~‹®ï<–?ˆ=]>HÎkw è'£ƒÍN°W¹cNO†9NÛ•R6‹èô¿`SŽ¿ä¦-:üXL¨|(Oxl‰[L•IYU„Á$FŒT7±MÃèVh*Ó{²ŸCy¥è®hî%€Îò4ƒWk³Ú%jÙ¹ñ>ô:ωPŽCx$À³Ì=h˜¶lwŒðXË1Xîpq8#§½¢ýàƒ‰YE¨w+Ðgì81nÄj¸¯½Ö.ŸÅä[Gǯû ¼¼Œ•m^ÊZÀ׬Fl{4£îýq"á–m«N8Ø,Ò¦Ô>póŽÚWàT¶íÎb¸R÷Ìò_%ÒiÄNiü†d„ŒÖh6y¥ÉǹhArí —|)ˆ„ƒ*Í$AqÙ3îÙ.-ÞÚý˜Ÿ^Ë|'%õ|s³ãL„”·ÓwËJd{^ Mú`üýn¶Ðóƒ ­¾;c]D¾ÖÍEöÝëƒÚŒ3žå$;·ïe\nÖel±Y¢ƒu'²ë>¡yG=°ùêR Éó—¾o-s¼,;§Uì{~Z) ’Cç{w5÷ÝG ÐLIl¯&s&̲ Ä’ÑH™ ³Ýdè÷XtÌùûû2TX7ð¾Eʿƛêò÷A Š›Y ˆs\`/‰Ô× ùæÄ·ô˜¹ü±±.ô4SŽü4¨7åÎÖrØ/–ÑRΖ֤Å)—O¯aßàß>ÐÐûÛt”ºšÝbÎrY?¥T)dv;Þ¹´‰…’yʕ˷|Y|J¬–{yQÿº‹°.3⊠¦"Ë̪cå®І T¹KÙíqþ&ƒkGm: ƒØ‹’@Ú³°:(Ýç­×Ô>;zêlƒàΧM¼/*¯ZÍ!áÁPM¸ždtѵ .,±ÍÆx¶çHE@žØ6ÿX{… ýï5²B›ñ‹¾TŒº·'h~™ó÷Fx¸rñŽˆ42?¡bºrvÆí27AçîĬ•¦mîF„Ü£´]äûü°àmÔGN·ýí /í¶×þŸ-Ìlò×´ÐùqÒ@EžA-ŒÍYßDÂÿo.¨Má 5| ÖK¶(ðâ·S›‰ŒM}#E”nëÖøKðË\»QÌé±w8äÉÿ‘âViNä’Â+5ã <Ý<¼„í¨z®š1tú+yŽL›è]Ūݢ¦h´ÊºâùžÓ={´Ð7ϙLFŬ”àâ?).ä¡E\tÐ=ˆyRPW¯jÔýâ> «œ+€¼do5ÔþP>Hżwkꈻ¦NÃ<%ú‘ ûC…è¡ZíÏ&j³ìèI¬Ú™íÐÚÜ<r$Ó^ {ÐѸR ?/`çèšðíâ÷úûü±ù¢¥tàò‡”ö *[zQoqnûTÝÊò>¢  6t?Ò-t9SŒhlô2 6D6EÇk{oçœÎÒ3ðˆÈnÍ,iÎÜ)_Õú‘`=á¼FE*mÍÔ^[¿]Ô#÷vD6AõíìÚø±!õÂ+>94¹›ëÍXûˆKç†h9;EÚÈÆß^ì$f¡¢åY7ïª:s·zª«Ùi@ûâ*EÐ 1¢¨uÅ4ßôn½ Ïö«3:7¼f¨íêJ𤠔Q´¦¾ØäO°›+嬥…ÏÁa2T½ØJR wi–L6P5St^p"òÄ¥¤?_×4eßöTˆÐ,FB4Bûü±3QÓͪ€\µÿ…tÁB h¿JÅããò°Zy×$¦Æ`ΦGúJ|Ã-#´ ¿º¥+„ì#ødZ¡ qÃiqR™±k´Ü¨.NÎ@úrúŒ1ÞÆ¦x¾p ÎVÔêèøªí’Wa«ÛnÕÓc£+mÙ$5‹}º3Cíp±|âòRlXwS©P·­u–¢S-ÕóÄ@*˜·™GH¬é`Œ¡쥈ÎÞ)jÅ=ôbCä‹ìó ™ìЀ‹ßŸÊÿrÝž/%­Þ'YMJ5RÄÁövkAœUh8‚‡àGço“®/*ä©“Áß3âcd„ ò! äÁ}¹ûü|ª,û Ný}L±ßšßb‘*y ¡½÷µL{(€3Ña’Þ`ª DfÔÿY¾<.•(±ùWëNˆÜL |`>Ðê3|2ˆ)œ˜Ûaq}v²nƒ$ Î‘òñáÔƒmAkŒ‚+uØ[,õB†AÚˆ¦hŠi$ÈqKnsO òÔx;®öî1;`½]Z¥mìÊ d?zf£À;þ¦ï54'Vì´D>Íå‘*ŸDu¡÷Ê! xëU,<ñý2`õõÚ¨¢“ÇZÌÝûÅŒ0é}fƒAÜ\ pCzzc¤¿ÖM®—-(ø#bo$cÎG~ú^ ί§Å8Ÿæ”aõC]¥À ±H@ûº¶ÔTÌ—äqo¹³97fúû-d…Ö·ÜW—ú‚Ë]Ùnùýîð ‚Êq#Ÿ±™×Áïžpœ1I°9á4~ãð¾/¥ßØT´7Ÿß©Ï¦>WZ@ˆÔZØ•MV.>–Ñd!½ØS:%ú¿É÷ÛÌ…©2r-~ª‚Ý-oxJ#KðüL©Þœ#¤‹PQýƒ-÷(ÐÜïGÞzÕNñ0­ê‹g ™?B§jTûk‚ŠG…2x À åT5‡’­‚SwÅÈeVs¼¦ÐU›ÄÞ½1|wžÊÊUïvgî"¡Ò0x×,÷q3Ô…býãLk”âmAÃ)žlš«,Kþ%ñÕú—ëÃúdöŽ’Œd,íÐ6®)S§bV²—seo‡¶|n”dºp÷÷hâX] \×ê‘”‘&„I¾&à K€4åœï¤šaq ’÷8Lµ ÉßïHüY_‡¶ÉùVc$©îÛ‰êõ›t8Õü›qåRÚÑ¥<§]™Ãb塇tÓŸ+?ßé}É Œšú­£µÌQ|)#ûyJ|•ôº}öʆ·j‹IÉi캥XŒ ê-£¦_šã:À¦³º¦Lé½ÓWpowоÀ»9­ŠáÉèUS]PTÆÇaáŠÑÓU[1 X8ÊÂ.ÿ:³-ž‘Ù;fhà³òe-Û,ÈÔ>÷¢ 3”sÕG&Óåá8zMADyʉu¤€0à°‘ɲóñ¹9Xaš+NP-A>V£ó;ëMO|Ç+–oqWX_üIùp^^dí1ÉÄT×J¦)m”›ÿÚï¹²ÍmóBÆÓœYßC€‹îö€¦ϰüÿLPmÄ$Å—M_Ãù{]dX ³LÊì’ò"ZCè“6ÄáL~LPpìLýWgMòäwÝökë&FúkïÈ<–ú'§b¨îËÀÑûA?‰ÇøuM{¡0®Šˆ˜ÿ¿‚-ƒ²DYÙ­A BJR=ƒÜuVŸ+âïàK(Nö~A¸/ÇØ8*Àßè9ZëÈJª9ò£Èô“Qp8üLËF}†¢Ô3h‰9ææƒ/rÎ4|Ä!Ò•?Î¥à_"èD‡åNkÕ^5Û߯Wb欦¯µ\Z2÷Ÿ…gÛZ=«œ'¥Î,N ó™‹n7ˆ]Ó·éúãÃäí¯g&ÔYV‘Ëô¼€¥õC\íFÇ>I˜¾‰ãnÜ®˜K6³·P(Ûb4ƒª ՋˇX¥Â3¬²S süåF3S·nLR¹DöŒâ“$S¬Õò”Ëõã½Ê:ž÷ ~Aµ¿·o¤“[‹uÇo5P,üMÇIdVÖA¤sÃC¼»¿Ç®ÔÏŽŸÖáÎÝw<-Ímñ±aDR~ÐV•Ž£³¯?¢¹¨O¼,)Ct¸­N´OtÕÍÅbÜá ¨–21‰ê¿`thúA†¯èìÌ, šaÎb¾”¼GÃ4AÈÖo’èÒ+k“Ib| ÁÑy¡hðÅñx’ö™0úðÈmÞ7AÏÐq`üƶàòb‚òªKÊÒ2ߢÄ>&È~áLÜ´‚ 5ÔP¦jÁ&žqÂHþ0=#}M³\·˜(¼±TüJ8,yÌ–KÔ"rÒ†á\¦Üë_ÛåŽEæ\N¶Í°ÀyúÓ¼,Î9d†íVè×ÊG;âY˜„‡ XsØÉbjÙ$3|W¤l ;ïæ.kÄX)t?FÇ£^è\>t–o ³Êm: ’—ïFdéO›Ö¹Gp†|˜2¦Âq“>ùîˆHã0”ÓL1|É ÀX_<‰ŸÜ׎%üKè Œ}gLGå4ƒg† f¾±è¬Óv†–NÕdmñˆ%ˆÊ:øìóÙñ¤ _®Jæ\rÁ© €Âzü|¯×ÌQE™ky0d"”þ€-²ÔøÑ¥ºk0âð&Zê¶yÂr@Ч'•¼—I’n±177ЭOÆ0‚Ñì⫞ cÜAv˜Â1§)¹5{y/ÔƒGiiïD3ŽX¸<^?(.¯‰<%»Ÿc] šˆÐÅéü&(?£‘Åþ3e%"Öþ…CãÀà·Óޏ}d¶d¡"*UÁ­ûa#â`Ò»6Z îé½íúÈŸ@=Ç@9U»„âÆ7ÌÜ_°ÇéJZ÷õÆ­ù·/°xbtÂŒÓÌ!0Û`Ÿ mA…&WsûÃ¥/ø»<Ž- &#à,ØûwS 2Êíű\‡*ý3žÆ94Ÿ’©°„Öx6ÃKCmÝ70ÃýUæ¤oµb×ì¢ xü}‡¨¬üBšeçþa(ÓëÒL^È´¼n ÷‘Íßú¼l¸Ñ)Nžó¦7³V7þj Ii]ÖjdLúA»î þ‹ëÏxiÑMžag4ô,×; Jë‡ùtÀODwN9y’a2Ù·ö2¢•GüL«YŠÍ©"\»œ•€k¡š>âÛ^o­õ Ï eÑ%ò$ž@ëÀSîý:Íš#I!Þ#=8£ì(_"…›‡ÌgùLῨE UA4þ=_êÙÒæãâî¢a6“ßH—+¥¾Ÿ?RÕ^âû´×üJSY¼ìœ‹[–'Äœò¤®=‚æ¥pÑ6X?l@Kž®ÆRŒ÷ðß¼±Uo½ ´¹¤gŽdkŽs‚¾™¶÷Jsü<€¡49Ûáufú ÅZ‡ú¹}´Ø¢æUãðš9©:¯bOÁìxÞ”8?¸ü—£TÜ1»>¥:p…_äªùP‰ÕÀ7Æ U6À-B剖‰ïƒ.¿û”ÉÇ?pâj8ټĤ=,ÐÊÒçìmœc=ƒn÷3‡Bô;[•͸+ˆTç.3]Ö”Ýgôûù{vÏYw•z0PúÕÔ-ô» yë‡ßšcüÆl¬ÃgŒT¯¸â E‰Ù‚ ‰é$gPB˜rá”(£¹çº¬–¤Âª5„»•àS4` úü`lZøw;WÇÇ:õØûäWw®-A!³«TÐFQ>Ýb*âô?¿é)2“Ö]%U…×a±+还zq!¡öENæ^¡ZKþ»Þ¿ |ODP_j-ZùêNr)—”u‰êVJ2Ò’›6¥±› TolùŒKCÎ-ÝËK2ÜÊR {‘ªÃ‘ ÎÕ9„”üíS+ÚÈzÙTªØ°¾‘þúÑ¢[¾,‹•»8_ŸHƒüÆi` ØÉ ™Q_Š ×ì¡¥™8úàô‰º„7Oi¯Qõ2l]nP­à!úh§A­#Í~ÇllBÅ„h†¹*„žXç¸vh$8Å]«ù#É%[Ì2Z7»È¤O:]§{•ÊS¿?24í&ð© {ú%>,Ž®$À„Zøè“ò‹€¾¥-‰ÍŸÐ†µŽõo䊱ŽgPb“ܵ²%>kn¾ m=UŒyËíwr¼QJn‡ã%%)ÿh£î’dG¯Þ@£¤Ò{$.|Oçaõ(¹Ë$¡fÖ×ZíQê› û%üÆ3UŽ^68±>KzYÞÓL†”4ôtÄ•t‡ LÀ9åÿgçA<ÖÒœµBQD{ûßl\†l®íwGOÑSÂÇÞŃíäšnÚò‡l4´n=†MeN¥ï ~¬yþÜQnáÒœØ^WJªV¦ã°týNQE=`wDvfø_Ž˜tÛ¿¶/1{Çiª©}z²Á7“ÝúÔÁæCoþ}Öý>HÒŠw:/œøMé0çtÝêõ3ˆÌ©Zòô…ø4‘îA’ƒ**¡ƒü|©Òßý?]É"L<¼¡>Œ7?8ñÃÿšwݸ«@î€-/ßRbP›QÔWYÖ·¿Úxˆ Ë`j}éîÌaçIpüÙÆ‡ˆÂã£[®i!ÿ2ÍÅlzuòNxS‡…t”Ü)ÿÝ™:ŠÃ½¡iUãé"!Ô–ÄmFÊÐÁ´s^DUæÃ²ø“žfÌ_]mƒ [¯:I«ÔÈðtf—–„n,©ÏR ”¦r«ÿßá¤êQ_8CÀí‘Mo1—Yá“mÆJÃÝÁäf OYm͛ꑭ›éûÔZÝ#IêR›%º¡ŠôNdç‹Q²ŸðÜkC„È!e~îÙ353ü·© ~·Qe»‘‚ÊônØÐkëó$‚Nô>¹ †ðµwáÝʧ$ j ’ý°†Å‘tþ”“¾Ê(ä¬dû>øøv…^ÜÕððɼ@úLub:c“øy,2)•¯¸2†¦´dð*€Ø¶ ¥ø]Rh‹^2¤_‡¾ WÏ{±íëõ•.hxƒ\•‘Åû;ò15c¶,ÃYùK´ŠÊ36׳«oÕ÷èˆþæB´*ÖüLªåŠâÊP-_FÌ™<;k|Àgÿ“¼?fPÆ{FøÏg:J#ÐsFƒQ£¤ª¬„ë…¸³•C蔪½g»yzfÏ¥+­Jd»§jtšuõ”î[L™¯ü b³ª§2& /cN„æ¦P§(€IðoÙæ‹4|ÓòW_pìw)«ân¬G '”¦[ŠWTÚ úüM`göפªâýäA¯kRæfRL…’# ”…ÙÒ¬&ÑÛÑ®K7´KÖÏ}·H©jc•ÔÅÁFÃõña­Í^ Zš†Ü’+ä5 vñ˜åÍLÎÐ2µ”õ[‚ 2¡õ'B­Ÿæ?I*{¿êMbüµ(<õû eÎw<ÒD)¸]Æ4ÉÌÐtO÷Ô‚ÃÄEeï ÃéC–òýýÖWQ¸h³FåàE6‡é„Þ¦‹nµð#ÍÜРÖåû­ éc»sšŠ:uþz©Šv[P5Ì$ýSüJ9nõáDÿVêD•zÃ,H?Õƒ÷.¨”b˜ÑºoKÍ–-_#’ãÒ”º™RUä Q=o+±1>Â:´weÌ[:†‰¿B4'‡Ÿ‰x+Í#† ê ;—»qÞP]c«I Òìª:ÏS²q fðNÙ§}ç„L½”rzõ aG**ªûä‘°Ž[ôq›ò2}¥^–}KxŸ{¬Q»Ÿ¸&(kjÒ¬­ñ9ÒwçTËS–@MØø]*R>Àsœ®DµeCƒ/¬€!ãö×ùüLä86!Á?ã_ð·0•_ ¡¾b_1mŠÕ»D¤žVW½Å`ˆœ*ßÔ9‹+ßèŸ[jfÉ•èÉ×VZÀ¿æTùߤ{³}9°‘¡óŒ°ߢ€±1®GqH‰UŸ¹“goÝk]kReÅçÁN°¤Åf€º–æâ°_úxšÚ,`ë®x„k.¸Ž·pnOè~NKÇOÈç1z6@u’ [òÑüÎm6)àÆõäß«²’m «+À²‰€RÖx±9FÎ&ñÝd`;΄•“\°Ï¥Ö’üÆl™­hÓ@þztSþ§àJ¤\ õ)£7=ô,ma'Ê‚€–ûáNR“u¾·]âžo2V,x¶âá§}µI`Û]3Ø»"êþA!onÂ0—H i{„lâpŸð™ XÏóþ]íT”¾®a¼1…â8Ozü8˳ýsE¨ÚÕRË,d²þÙ%Üg~bØúŒN_VahçÁš=·s—>4pmBñaVæz²S4aMíÂã,-Ëú)"õŽb!\¥² ë {dlëèz×D}(½ô}Vžh„ü}^oqTÌÙ'ëÚGu’bdÝZ¶} =Õ É¸#r¼-9–úHNá΃hbŸÌû °<¶»²åûA œNŒÀCÏ8é¢bàH²ùFJ™7o%ïoÒq{l"d ÖAÀdÎuT,ö·5CŸ×v¢>%Ó^†yáÌÿÙŒ•OXQ¸šl޳hýCb9Ùh ™ê4éà )U ç )LÜŒŠƒçªß3.4=eÐZkŸÉÝὃ@ò¤@* S£[ª iÂ*t `|L¸Æ^Ú’ ß^OãNÑÀf~ú'“ëõææFŽ 4¢4öµ”®OT$8»å»8ij§}pu_ÕÎBÓ7Ü·8S˜’Šª ) ¨ra´~ ق׫òh &‹î7œPëWœU_NÐí~ƒ–'|ž}|_|Ñ#=Æ p܈OÇð¸1KXËL`æ¬iXÆ k:µƒøl^%6¤íö†Æ—>µ).oþýÅ?thµÆïeì¸Öyßœ¤BË%:ÐÄYW°TÞ}GØŠò9}‹÷…G/Ð߇•'éP’¡ø†¤ÁHüM3ÓrÖE“âV¾ËêÝ™ 0œ ‰¾äæ£úŽöÄB}8Õ¾š’iyaŽ“®^:eyÔ¡–†öÚjÈy“䌫ZJ‰Ê“ÛSÛãwÈ…”°tÔÕ¶ÆŠõ ^­çìÐ{ kT‘.5Ðw±Z9èêì7â·©£±æ#4׎Ìߘƒ{&;Ó©ÕU–é¿—Â4D¹?MÇ¡¬}ŒŒzä›B18‚únOð¯q1Ç–¢dœi—Ù®ë‘?óþÒð%²a¦9øDCpí½…iu󽨦0-W-OÓãTOggS˜:ýÄ nQÕøTƒCãâìììÿBâéðêëñââÜàêíñÿ°×ìõéüÿ ÿÚÿ÷úÿ;ÿÿÿÛÿîïôÿùðÛèÿÿÿÿ ÿÛÿýüX¢|ŽïôåGgŠQ{{µöSH<ÕÒÍ•d˯Âù#Iœ-³ ßÚmÝ3„ªPRlLŸ¾oÛ"cÜ6º“.82kfÃØ|,£ÆÃÍ)꾕kÁ\Ë„V<ñ}æþÏ<Û)™yP"G í̆÷“®‰?_ïÏ<#ó årƒ.FÝ64oqÿŒ\¾¹ Ëô¢*†úYx°fäÇvYêqúVb^£–3,¯p¼AûÛ—cà‚›H›Ò©‡ê{ò¨ýYõûy³/ýLË_±µL¥±™cÿ,G–´öC8`üLËŸÔ`h•¨(^ˆXÙ_•ZßÌ.“F+ŽDÙžl(†&Ï÷ø§ÜÒí 4KíXòÉÛÁ—aås¾xp‹][4@zûÃý­ ÄÉÛCð.i¥.Á¦xí¨÷ìái²ÌÔo]þ·¯²µ–°ýqÁ¡«õIF†$”¾D™@Aµ´+T/©®fMËw¥x•ٖ؊_RZe’…€˜ŒQ†ÑSAÑõ¸m×ÈJBõê¬G“*ŒØäöúsP½ýdÝý^Ô&ôAYÎrÐKg“:ÐzÛÕW–]ÝzË`1{ä|ÆlùâI?Óg3_bRÝMºÉí=üL·KùàýÂ× ÏDÉĸŸü¿‹¡†?ÏEÐìrYáàû>Ëðu;\áÈgî'‚Q_ê.ktáx*€Œ„çHfCÌ÷ûÝûrah®]J@Ջĺ&w‰¦ð}¥;õž°^vðpØ•þvçÂmÖQÔè5´â¥+dVÕ÷u®t ŽÊÛ>R·O^5uÀöóMv-ÕÁV.}Ÿ„Ùœ2 bÆÜ¶ë¿%H8ËÞ.'òSª=ðíj’#1ëîÄ‘åYPòå@l+Oý@G91Ö™ðIO½FÌX´×¿äQJôºéZdÔÔuIüL¾Ík%yX˜kÀ$6?dn©=;!¼á‰kVýØMiÄYú›l‡Ê˜kº°FÙ\¸èÆ1÷N¶WºÿÖ3†`€ü^‰šœQ˜-ëãõPb¾“äý[Äf‚Ñ ôzbÇ[ie­Ÿe/îÉüå••\î+²[¤ò4§Nõ´Á¥N¶É‹ã³¹¥&çgjϵ˜³Æ=åÞ¬ EÈSGÚ€ðd"™Áž`~ÉmgöÔ:œ©¦þäÕE*íG|¯¤Ñ”1×Wü—&~HS’Ͻ}NÝ)ÁûÉ„ðK¬=èmnfW€óLtè]§lü|’Â/†*æ×$¨E;ÞlZaáIì4ò¹êþET”y`þIÆAJÛ8U« ¹UßÅY]Ó»x•¤×ðÙLYÿhúµ®ƒÖ앆\rpZæ'¿³ÑB§¨N¸·“ ïAÑv+“æÚº’Dzø2¥v4mdyžÐ½h“aã=€™Ô¡J±™9QÃG1@t.öW¨‰ÿÞ°P0Þäž¸Žš%â ïÍØnõmhŠ³Ù x‰“h¨ÿÓÜ›è¦!P)WDÜþùåÒ¶ÀgP—ô̺Ӯ#M©¤)%[%>2ñ¶ຉÜ[©¢—ØÝØìˆW |Pé>S-;‘j *ç¶®µeͨo&Âó%sŠ|©vÏ͇ƒ¥¬'!ùLZô*ƒÔ ¢*ݱ2;Ë€©SŠFíû_AúfSJL-üX½”¾ÎUØ£‚v@ïç]\Uí6±¶i >ÄïX’=Wïb®Åc¶q\Ûb7¬´7&u4¾ú0¢ÑÃ0¥Û¤“D´f ãÁBŠÙt3Â@5"ÃÜ—J!îtS‘jÔU7ñÉÈ·ðskz¨‰¥" Æ3ý‰üû &.Dº³sŸõ ŽKGplÜ2a½cñ“úèÔõlÙH_êÐ)¦Ø¬ÝU|N Îp®ƒÓÀÌI,ÂwkŠñP;~ø/yÑ0 QñUÜ ü>‡S%48ë¥;ØÔ`°2«ž¦ üLÚÍ|õv…‘[OO.°2·Ô~!ƒµp< Š:7J$‘ÒBjr øaEh»=fš®‰Èà“cñ«_ôòInŒuvÅ|!/Àã6Uü)‡\C à›¿^õZ¬XÈÙ{x8UáµMæ\¦3رjŒ(üÒiÎ;á–eüGÊQ ’ÉË Œ ãÇf„ø‹ŸDÔêIît+wšØ¿·Äæ-M-‹|(Z­ˆp¬ýRïØÏ'’} ú²î°|yy_†åå`«ä–`+¬ ™…pÿn¸fÍIïGm‡hÀâ!©¨‡Üƒ]¢4^J“°¹üXÐ)ê·ݨþׯ6QÅ·ýVGaHårÂݾ޳"MFܦÌ#·èý¨ :âûzèüŠH1à6¿ËŸQmÀ#?‰T²`.Ü!!- jç3ÍQ¶dB†Þ~ÑžNX¯¤!ò­kU–Þäiµ"Ï—Y&ˆ†…™¾cX@ì…­”ÍIOLX:ÈÝHê Ab¨E2ti–ø…”é¯XÔä6„ŒO•‚-}^c†Ê!t?=+b2^» ÿ(Y$Ö©×?'~áæäïy¼ÍEÖ€ @ƒCå=N2œå óu¢öPí~E¼üKK€µ?\ª‹AîA*ì¡„S/Šœ ÊA¤È–nÔ©)}“q€.ìBu¡ø,œgìùöÒ4Hêµ~tõ9/(zLb.à™k=ä’Àr2|—#ËȈoì³}C:q»ŸgÇIï}QäÆX…¨êal$®×1o¡·º£ÝÏQ¾BO…䦘ªé:wYºR+ã®%ªææA¿…•>TaA#;8LJépࣆ y<óµ³ÊQâݽì·RÕ‰ß"‹K+.N¾™)%ŽDÙ‚Õæ»@ûœsÅ]Ó9p‹Õ($áïßbcÂ11ÚÛ “Ët#‘$Dœó†NeW­«iAü0-T \‘Žý›šœRŽEC¬˜#DÀŽîF)¸çZZãDÑ °šÊ!ö2YÿówûÙÓî!ä\…Å…ú\ŒO¨>¿¬çêˆgb,rD//6±ŽR˜¿ê4$œi@– ÄóåçØs˜·v%ÊÓ𢆮q5}´ ôbHàh]Xx\.îë–·„œ:÷±LÑRFFeç$çý!ÛT| øÛ´úÏP·ŽÃ<¿Ñu“ˆxÞnÿ$/#wŽ"üB¡«±ÎâH%–mø<¼µuÉá½õ®º¢Ò©F>×£ ¿÷•÷_éë‘7ºóÿù|\c×û¿üM-Ðç. ª¸Çÿ Ú ·íÿÍ‹Ç5åvyG¯bu(ú‚ ”Ï*î<…FŠhRmUÚõàç»–a¦“ø$‰ã™æ#ªSÙ¦˜›-] º\=üȬƒªï0¦è¡jY~˜@»¯ËSIX=PH]”\ßÂî¦HA²vioËÀÛd‹ªÿõ+uƒÙÜ¡ÿ¹ ©öâHrù¬w/õf1ÕL;Y„úìe·uƒÚÓ†e¶h§Ì¢:åî'ãRã ~4Ey†ð]ßÅã¥ôÝ#ÎÎ*xãÂ슓;TA„4UoƒüNˆ¦¦å½:.3)(…ìA2ƶ÷'É€‹­ÛyÅÂ66úx+¦ÝÇÙY;=ÜæÏ4x^ž¸Ç‰)aîs¼t•s1¼Ãk¯8ó «“Xû W¦#’tÍŸ…itþ{‹Ýq56 ·{x¾629ɶ×$I`l&¯l!É=Pà‰º¨¤s6;-ßÀP£yÚÄ–và¿\*H,aé’ÖÞÇuíf~ÒõáA%礸bº”Nþ:Í.&m’¤Oµ%­9õrŽè¨FwÑFË(Áég*QøÂ5˜¡â^]•O¤DÚÆüI…›vö’‘Ó1öÇI®Zìujj̹C S“ÍÅ,A³3õJiDA>‹YÑP€ ‰œŽ/•Q€¸)yê‰0\(M©ß°úi'úðcOìöLøÏž¥¾ j^HvxÏ|`œÊg„K¾¸2Ëù]k¡|Îêþ(ƒ¸UA¤ž`\y{2-éxýHEIJ¾,FáDÇÇ–éû™0Pí3=ãowÉð;ýx¿Ð¨'ÀbÛŠC{ÑáE—¥ÙÒB†£Q6jŒß¿ÄÀ¶`ÿ‘UGùóf¬ ”­K=ñò AÿŽüÆ-Çgþô4uÔäSؼj¿hIxž£™ÙW ú׊¹‘\K2†ÃD‚*I¶+¢ASD䬷Ú5#”îH¸ÅùBÇÙ@¢\ Í´ñEÊH†0ºÓìÅŸtÔTŠï³Q¾iðâ#ˆÛ}_‰¢Ö­q° νöØsW?kä=ŽÈh$µâ6“ÄžÁ£ÞýJâ,±7‹ðBJ~Ç:ÿS=} ­ÁxË΋6€*¨hí!uU@µ¸æÏ—þxjs|ŽØ«˜ÿ]]RžQÖ2v‘Îß+†–õ<*ù…püÆu õŒf°dAeºð½‚WVÁ¤^r öü@Ë•«Ä„ó"™Ÿ8[Q°roÃ÷¢eãÖý®ßçÑO…€Ù?\¦U½rïüX³%8*óÕ5ÁpNì¦Ü}2Rqmÿf7‰ZžÔƒu_°46ú+±šrnáà}åFé´Ž—É®`6NŽÑ®(qÃæpDÞYh»)[£”¾Û Öüfú“Põ¦™<¸Ïźfæ0ýAñ¾¬ˆ÷@«Tø´œ` ÷¡–¶,n[iþÖ%Ú^P;ü2ê@ÌBê"µE©8”,‚üM]õ¶E]µÂ¥÷Aí°¸']šm`}ʯ.Ec! •gfô²gÉ®˜y Ÿ[ }²nðÚ‰Üñ€‡ "qn½‹ ‰u¶™ñ\ÔÂéd“?º,íh÷¡ú > uáÌÙ?1`Éàò ÿo´ƒ·ØÛã­ÄzÝY ý/69ZÛus‰¥·ÜõÝQ[Í¥‡ñ¾}²^©ÐwûÐÇ»IÆ"HUÑŠ»¤¯?V—Š$öÙÜ+úvKà\RrzPEåz®áo[Hò°-’(ÆÛu(î—“ Uu­ Ž6‰?œ´äEu°¤¨ÂÆim«üM)-‰˜hªBÇRì·µ M˜| ØÅÁØÝþ ^½èT»Ñžœ•YaÖw(>ƒËÊÚÞ“!Ƥý~hFóâ„€f:­Ž\<#˜âX¯i-¥*cèÐr¤Ìú-)Ñ#G!}”2«ÉõÈ”Ç5Ñp^=!̆Ás@z &k¨0Äãcrç[ dí³ª‰2¨ïYÀYûkðzT_Ê+ $³•PAB£™Ngpri £‘R•¬2!Úùhtúx›Èª$äòÆÊ­SwF‘àGڢѻs­[<Ë”™$À-ã%ƒ2–Û¯ó˜œ 5”ü|®RžÙŒæ$Œn}ï¨Ê÷ƒðøªhEÛ¾$L4yçgKTaƒˆ¼ .<2Íëàú-`7HF1Œ'R¢Ê›e¬Ò¼yÙÁáA ºý3´%Y"apÓ~–㦡fåG´ â™f‘ ¤]7=,t;´no JLžN0‰`¸Õ#bú¹%_²')>NøK¿EˆßÕ.¸eþÓTùäfèq©ÜFS©–v†î^Å,Ø µQuöø~GÕ} ~ÆIL ï õtWtŸ}ÿZ‚EZ›¸êßÓOï$¢},§ÛRc>ÌÆãöÿ-Ë']&ú ê˜BcKoÎŒ¢T®ÞP¹$)4ÙæH¼ÂcFá«P 8Rk;Ix’&»©‰V¿²Îvâ"5ó³èMùøi»a’ä|¼Ì\Ì£Ø;*šñ³o´xš_ûyË!õCš.Q`ÛÒ\=¥sF­ï¶“uoÂ9JtrÝåô⥠ïî±¹KK’¥žÂ‹ºÿ¥®ŒT‰;š®6vR€«žÜ¢¶ÔÌ›°è>çÈœ:ë*¨Dìq» ×ÏdKG‰Ñj¥ÐJ¦üIäÜžhŒ k)¨,¢¤_rîT{²× È:†3Ü•f¼`Ù{«ÄwÎå ~ö¾†Ó““É?ÀçÕShDõ(Ĕŭژx–ÑŽøÓ3¸Ú.®vV´-®ñXâÚ¡:•-e'p•õÄ0ž|ÑRö›+RÍeûà6>'½O;ƒ¶Ã(¦H®}ší–Z)/~À£ Yá@|ÎxŸ_ÒÈLB¿lëï7ÄQ¼n¶“OqŽUN»¬}úô8öî‘|4‡ÀpíXœcĹŽ]û¥D ›–èðlüÄmÃÊéPú'ÎÐ÷Š|/]€Þ?­VôàÛí°{\zÐÕ€¨ÉyeDп†g¢‰>ì—Õ ûÞL o2coàt(”éĤãtÖUŽÆþ°³’˜†¿¯cÙq÷£é»5¯îºÚÊŸÕ“‘ùkto`4Ø ­Êmï²±ý”iè¥ÒM¯Äô¨x_ $ŸÓpŸÄ»3q@‚NÉZ¢‹ÙVTd¹ÛCPèÊMYñ›sk;ë`¶ëíózŽ)€‡Ôê¨Ç» –ëO`}_êLaçv÷¥'#k^Ú‹mT |$ÒüÚäk0ŽŽ‰šRµùWú—tb|éŽ2°ÚŽNû¬}#¬ðCü|­È×nŸB”m¿r) Iy˜gcZ°¸™dŠñX·xŠ@§) -8¼ã<éIOŸH¤;†CK™ÅµÐùûèËg×sóyAC€  g]FíYÛH6Ù¸:òš©,Šÿ~®¤n¿ˆ÷ûd®Á2]«ŠÊWYŒ{¬N&[ äbu‚ÄZe¨·¸bUÊÀÌj~˜NQðS*ËìÇV Ð5–î®î { ¥0e×KÇÌ‹;·Î¶^¤dÉKŠn ܆ž$rÊH½1”ˆsèC¨ >é)¥Q‰šÛYÁÕý(‘[é×[ÕÒËã²Ü#±MùïJîW7®p]é6Ì´*]0ºýŽ€7hŽ6dõïÿþF oSl!%\XcèÇŸøô-«^ú³þO¤ÓÔØ!å+aØÊ "ò‘D5«éÃ'Ð{IÚ%Ü%ʘftÞE,òièçZJ æ­Ë_j!© f*ÿã丙¼sÛž úÒéµrÿRù>=¬BP}õò§Ž—•é9C ÆÙbÏÚü—ÅÔ;¤Oø»#Åt-Q€Ûù‚æY¬v/°ÛºV~0+!´Kœž Q 缊ä•÷ò½·Â\ĦÈ] Q»ÓG6¯BüÆcW>OõPgÐÔ¹j8ȈKŸ^JMrHÌ$£-˜UI§k™¹t£…3‰«V wÈR!heub¿>£ÍáºÕ,±Jçæ¸ÛÏjú׎/•!û?Õ¦5·¹Šï^"6tF8Èaž³–Ω@&& G=”©“š¼Ú5ÈpPBPà„L¬®.mºc‡ÓTv¯Û¢ƒ¡€YÁO’ÛØªƒoñãk‹KðÆL³ ± hšEg!‚M!Ó-;¹WLÎ×¶v&hžYùöןwUÊX$öÁk» l>Þù<äò®¢‡“rX%på>ÕôÛž’'â úÇQ5˜Ea6xP)üÆDdOî<â^ð@£ÊçÃÂŒI‚ÃEÒ>÷Æ ¬IéeÃp·ê_W 5[VTg++ Ñóo“ß÷Ê;›S©ì˜átÑD¿gÙS&äýâ3ùG-ˆÑ@ YÎ2p¯F‚•ê4‹v>=¾zTDL'c¼‰s°Wݺ§3sø‘Oå»C+Í/ó–·VäŽìš½DFÉ.¦^–±·Ry/¨wþ#ãF¤¹+Á°ë(-Y:.å›*òí¡Á^QgÇv"°º ^Ö“ª–Õ$ÛP#ß ùìˆ é…”¨`:8‡Dg—·‰ÊÚeŸpUYw0áô‘ÑüM(rŠœ¾ÜÃa8ʨ}xtøôŸù óàR"OÓ/½ÍÒÚƒW±Ë½c= i=ÓVè nZ%Ã]S}oa#îîry@ì.™¥é^X®µj¨uÖCñé9sÞGzõîlpmì~¯ÑÞ%µ {üSb¶Z»r:²ÇšÀƒ'ê'^t¬æÔw¶ô›ð©çòCxÿaÞL5áÅGðÀÝFm'Ü bå㎘ µO I(úzŽi|&Áü°àLüÊŸI¿às“C0Ñ\ØåÕíØ¸@\‚ûþÞ¼žS=ž¢i „ÊÓÁûƒ*>Q‰&êÿá#mòEWÖ‡¸©/žjÂßñEó^0XyL“ K“(±’h S΀ ÜLö£Î]}ŒýÉ…!­Z¯¾3Ìé9ÊâÙ?TÙÀìJ î±Ö¡5ÉX€J]ÀI80… m*[’ê³@ l_õqa54ü¦< uvÔå 'lÆý,­ãMì@4gþÎØŽÒì ò¯¦02¿} a(ÏC¯Òýüõ|ÁcÓŸÚ(^È.µØE?wïÇ™ƒš‹äŒÆ“¼rÙaàŠšf£¬hÌæŒbS…ÉtBŒû,·„ipoÂ3–¤ñw›dÅ€ÐójÎ/ì bR€ü°ÇO Àoj&¸ãQÖ/5'ÝÿéybÐò¥@2ÆEê.ç‚!–•hŒeº¡¡ëÂ4ÈûBü™e?QŒñ^ïûÀ_0|bh²Ñ3ß±©¦É…!ö!’BÉÜš7¤+a ­ ßT44 væÃÿÚû Y%Õ^±òOh0 ÑÆÆ ÊŸçÁJAFÃÍ µ…“J¬¡©T¶´-¬ýª}£ÏZl‡žÄ¯ð.H9<.®W½^>ÓigØK^XvVóJ¨ÆM1:jÿ”ænGf,>bk[ úb¢Oš™ÙáÏ¥?’o%…¬7ê/n/d±L³€ŸÆ; Ñx4—ØhžƒýŒ5B‚ü±’¸0š}µ{³æÝ½è ©œ3Û \WG[=)T”ÝÂõw×X^8s¾Â©ûާz€+W“æ°TŒµŒTòc>Jl1A~õšƒJÞäµ¹Æq¾I3ˆ˜<‚¦ÒÐ2>ÖÍ ƒ3ÿI³ÚÕ¯!Þ|¼ ïûÛlçÞ¾ÕïÒÙ™æN™MßI¿:ð ³Ø†>9(ºÁ½]²»–ÍÝÒùmç¯kb!ùÅã§²…ú (þ8Wí ^-J{qð˜ˆ=`É<^—ѼAåo]éøþ‰—¤È:O‹IüGçy^°¯ÑËòFnÛòÝÁ¦Æ‚àèk…œ 28ÚÐÇìSĹˆòì h/©:ò4}?ìn‚ü}^m`a~Çx¥G»ºÉK§”» Zú|ñ¿ÚË4–Ä«HÕ¼›ˆ (¢IÜ”bš5auÛ€à‡^C¸t3q½JôÔÆ!ãÜ6×7Š6ú×DàaiÑÈs642 5:7L×ÏJíláHoí‚Olýå#k»å“(÷dp§jøñ¯•^ÄN©›ÚU”&ü"'@Yë¡zÜË ƃ¬JëÖn!ˆ) àŠY-qݘÐXüO³ñx™D^úv·Ït*äpS`øÔÓdWBÞ¦éæáKNGë¢.UÃØA¸8\-””/ôTv¹rê1ÛÀ@—·:[Bã{Ôç(&†øï ²w®LÕ“†#ÌÁÊÏN˜1{~Î0™Ɉâ¡«I¹‘™¦e‚p`Æ[e²s]/êâÑ­…ZÝ­GVdª–³ãà³é¬æhÿ“P©}ôÎ/µr ÔDsJqVËÙJPâÄß2Ú^ÎÒ/äùæGÙ(Väh²ç1¼2Ïë…‹z`Ê,£¥üLÀÃXÛ5õ'6Ï"!Ácz¤¦C·Ï:Uw7Äç¯!U¥h^¬\ó3Oó R7ÕÉ…aÕqÛwÃÈë¾Ô毬¡\AÆúÔsîàÙò’HDU|Œª'Hñ%vû·­xʃ½„i:f=döcÐh}žŸ¡ço¨q¦© šFk'A-¬Ç;å´¶ [æe°U¼DôôâICÝôŸ¿~N~½•Ö9 sÅø6$Þ~ÑŸñvüLÀøé é³Ó(Wð¤Êç+0V0›‚þ¢£5øÒ½®D3¸­VEt¬ªÍˆEõ'-Í|¸üa³a¼yÄ„¨=,G¹“úfž¿ŽÀJDñJ7ü+ž"Õvf +°XY0x”6§¯zGn®·àþéðRû\®2°gxö&»œ²kCëõEN&k™Œ‡(?>Qâ÷Dk Žq›U¤GJtG™7¾Æ>*|sbÒR]“úŽò¤Rf†‹Uîž&À*/; z~ðå­´ÎëwÒ™÷ÈÌü|Z‚fNç[<ÉŽ_K“J˜o*ZüMbû%Øwˆ$ÆÏjèÓÝàë3ò@}šËéz–XhÔ¥0u°‘mÅê³’û'k@zŸð©ri0+ÊÓkNs÷ð×èÉGáÌ6tývº²^ ËØ&¦éGîâ ³ªtäèw§ÑˆYîö› ý‡æX+#Öý+Œv·zbW^cž›I1_nËhDøeA»)!!Ç­FÖs;ꦙ†)—Òøðä»TAÖ'‚êu0úÓðêAºC£à·@%ãA[!9û!(á=ºrç –ÍÇwo¡U_쾕 ß4²ÀhÕÞ+g+9ÆG'eÎq±”…Z°¥dü1©¾°Ô’FV¥¡JFÙ{×*]¶OÇõƒ¶½€qáh±,ËqDb¥àÇΛ¸«Ð›}2ðG–š(†ñºŒ@cοSÃÀ/»VžÈÄ.[3ß3&Ei!ËѰÓIAa]|z&¡u½W&9Sô][üý!’SŒË)Ÿœ&^ojõ5ÈՀТù!‘½ÞúÁGí¤´sEÖvŠOΉצz,§ÎYÍÞµf©·„,Ë•H‰‡Ò‡9½ôèE$ñ¯uÍ:Wêjˆ¨>÷é%ú„×i³:ÉĶkMd ¡xwRi~W·KZ.⼚•5µÊÈ]S7= ⌨~SÁ"¡7lÉŸüL²G7´ÃP^D‡ˆVdq³}»f¯ ªk¸gÔ?¿Ô8Ò²½–CY2Hç☢DGËïÿçø­\Q¨-0D¹?Ú+çs_Ág¥¯„ËéŸtŒ>}cNì7Ë$ ¥ÞãJZH¦@ÄØ’ñ[}ó¦ÛèçI—ÿ 6J¸•ZÝîh x0Efk#7ã»[Šÿüydp@lx×Rª-NóÁ3ü±4/õßÉ -A1i~Ì`E„jšÓò føº·kËz=­Ÿ8¶ÙÝþ&[VʃΈ¡¦ÍJL–1D÷hâµ/úoK’ ?Â."ÊûAƒµôbð ~jÒåþüÙÆXßÕ%³—½)1æú{ZÇsØQT`[¯Ô3ŠWbI\Z„Øpží–ˆ‡¦†•§8'XU<¯=ˆ 4ɪÒû_ ŸF“Bk&¹»B%Rgb9Ó&µxø2mŠ$r!ÜdŠ­“ ¤Q¡·gš_Ê­Š4£¸ è†ýCMGPüù çÔmm¹k!×adMì1Aø‚-à<«m™±°SðšêfÊTFFôXÓ1¶wÏ7¹ÜÜÝq±‰³ß€°‰óšeÙcပ‹ím‚‘6;;9æð½¨èÂj;-GùþßJ[†dŠkpó Œ™üX§”£ãT‹(Ï|Ì4€ÈŸÔ»®}µê“)äv*ôçE€L](5lb0‰æÂí T¥Ž¨5A40ëöýÉuŒ«ýLmwÆ©E0ѹ•×$%¥ì\$¬(D…™µ^’'KaÓÿ?N8xB ; ‘ýW;{Š;¬ L‹¾5á-6­‚ÕÉ “Cí}a«âAû¾®^[LËb/V©C<)˜º½ªÿšóàÚ[` b÷ùZóXh76os…ùÑ,¯N¸u ~­/šçç,l(ûý½¶8>鸉ü1¼ Ò¢¹y> ž ]Rw+Ø€ý´Ê®xÌÔÇûL›Î•7á+H^‹FŸí9•·OvœÃß Ðl“'‹’RBQ\ã€ÉwQ'©Yk‰Î}´šòèAs«F!ÕKvåBvëfýÃMägÒ-qÁXûX?&™ø.R, %ÌIH¯: úóG—’MAÓÄNBUÓC@lñëXª‰L:0“9hØœú«ošÚmA_s[oõ=‰ˆ“©¥‰l\Í Ÿä\ŽxiÀžûfòîþhSsF³Õh¾"‹ =nðöoüIù%*<²¿¶Ÿ [î£æ™•u§âmV7pb ‘.*Ä¥ZþÂâJç€@EÓÔ9v4A"MYµ÷ñ/ ÀQðë´[ƒ#û˜Çá.z¸ÉæõPLÁ„ÔÞj~Iƒ1öêÝ|½8Ú× B‡ùŽO®8=oCõ½ÇzW}]“Ìg°ó Õš¬wbÜH)i u÷Qиþïòþˆ+¥q"ßÑ}ñH¯J>Y˜Üï—5~ÞŽ•ƒ)ìK_H=ÒG/g¢Ÿ»F«Î`œÐÃT½M7.S1ßU*+¾rnÇ‘1‚·ë“XŽBTýÉV‹Ãx”{±&Ñ|·ìµÕ¯:„yüL¾-²À bN'SµOçÆ~àmŽ}L„A¿f(Þ‰ið áj¤xŽhã<Ž]x¤óöÞüš~N R=ì'=ƒœNY!Ÿ–á˜ÁFŸå’;’†Â¨m¼{“½p>¬jã“ 4‰ˆª–0’­ð ÷P¦ ¹â¸ äTÝ0ŸÈ+[ô¥ ×óä®]ú˜ìÓ“ê2Ÿ®×¼°,'SQU'qüÙÙ ¢ŠTö¶ýžÁn†6ºÚõI}Ð9[ß2ãd#ÇZ4K¦ ŠëGþ‘hÇ£è5Ù1¦Fªzz´{Ïì{– ôgú?ÿK*øòu*Ætc ‹)²¤+\2‹p ªb'Š.êPüÆc²Ù Ñ{Ï'ô] ÈdYãèô}r$ä¬vµfÙ…%˜Ðð­x;í9Âor#gÁðsÄä‘H5ƒŒÑçìôÉ´kO 1v‹kè÷ý÷ê£ûNÏáø‚dÚ`,zø,P+èʲp\ÝÑâ¶+6Þ~CÅiʰ“(è%»‰ëÀ‹š{Ψå|_ª€üúíÅÁùëµÈ»•·ÿëàN³™öIøÖS=“Ua“§,Aš¡ù¢•ô–d¹Úäm’ÛŽ4‡¨™ÂŒ>ÐÃ:ükñd•ünElK0è8ªG ‘Æ…;÷TîK‚½›.h¿XR Ò¸&”ŽžËp©DýÝ.Ý@Ä]ѬšÁüÆdéâwaÍTã×X᎕÷»þRÝzå^üo³S&òãn·Xs ¿‚Ïcç=›šì=,ã_ v-Q§yEz?^²p»ÜÆ_§R å™ÊÊ h³!á`oÓÏØ˜Ì'*(Œo‘ê.÷èã_!ƒ¨|ë³jï¡rzÙ°è¸-åd9}Jo máêªXJ-–œP€4»H&kD8–#| (81Pöq_ØàÎäe&nöØLŸâ^‡yˆôâIrFM×L õ@æW•H‰ü|¨¥‘JNž*œØÛé®b1Á³%L8Z‰Õ³D,.ž_!Á½ÅÆð€o ‹†.LÞª`˜Âde*¶ÔŸ.™à9!‚»•MJ$åa$z[ê\w÷ì%ꈾÙÙè{§É¯Â¸Û >¦Á¾¸FHÇ„ R=ªc2[¢÷ù%ÛLcië´I+ídŠá’èÁ»úUü´Fhù˜uv»´(n××´ÙŒæ™Æi2‹Ñ¦ÏåÁUÀƒ_ìµK bG|ÿÄþkHVzÿÆëª @ º¹V)@RÇ(™€SRÜ+<@‹‘¨ïØËäɰÉÕD¤ç2úD<¨&—ޝC‹gšUlnod¤O«M† |Št•ënýw.2ir¿h|Ì“(„tYæÆ±byáî§Ÿü¾¯ ¦ Êòªd™y=w™ÁxxÌ` §Ù¶<!üØØÔòƒŒ¯7%Æ[B¢ìýKæXÔ¢°Ú_êØÔ]Qh"òxÖéŠÛ nôþ‰s°8§Ñš4ßß „Êá#Q|%A€«n¦ø0xl “xÔÔŸï®mÖ‚Š4³tÑíÇðüQ­D,Ã?˜S¡B×…üLÜŽG›¹³õ¬oNö (°Œ’Hmg\Ô¤å8èláÞ°G s…ÝŽ'0äÜÏÖßGn¬HšOÒ²°@òUGr_'{UONûYtÍ;?§”Œž'Zù¦ì‚µ«oœ1Q»Aíy³!fÿ›öä$öa†'ýÈÎe°(Rqa ‰ßïj*ÒU`6—}°fü±¨Ã“µ+Dù_CbX·{¾ÃáãÁhö΂mþÃU’­˜lCKæ4æhlb›ñ¾Ã^ÙÉ?IÌ—ôhvq­–ÃP A2QJØ -TCXZÉP¡¯ægǼ±¬ì Px”"û%f¥ôEwÞz€äËîé ‰EúîüÆcŠ[ÀKE®‹ ÛðÔá=É›\=&z™•öŸ$õLá}.²ê[ýJVÉ‚ÇIH7Ô¸ÎúD„<Æe~ƒ…Î+ PÄ0©Hɼ£wº}DØëÍ­›)²ZÚî–…5Êb”–> ×/«åƒw±j.èƒà&Q’WU<˾™o¦ ‚A6€¾ÈKऑlD=èÚàÛÓÀ‰ñL…lMSg‰$Ø_<åJ±AÅã¤î=oK„ŒikÿGe™nÏ hÐåú¬€k‰uE:UcŸeºíd@ÂÏpУH|nà }ÁNæÞ¸¸*ºšC÷Ïfž=TÜüëŽmo$j6–«æåñÌí…OggS€S;ýÄ nRCáoßPÿÿÿÿ ÿÝüþøÿÿÿ…ÿßïÿþÿÿ ÿÿð÷ùÿÿ ÿÿÜúÿÿÿÿÿÿÞùÿÿÿÿÿ€ÿÚíòôéëôòìïøüÆcÇ9jå)4Åqnòª]YmN̦ËÇá'i4Ïb°t@œ}-µá’5¼O„?Z¤É’3Öû¿¦v»îÌãV'™? k(¨œ±º®e5»åͤã[Ùa:ÛS³šúV ÆÍDBle©Â㬒†;Ž=ÐaÝàÃÂÖ.£Ð@ÁÄêCb !¿hô)¿!˜Zë+ûž°ªÆ™äGŸS~xJ¯m€{†iú~¼B]ð¡Iï.»hÖ@3ïB&5] mÕº<ªõêE WR e òÿ#NûP?Ô²Jté³yô\FŸÕ€÷9Ãn¡/T‡Å×p8EfÁv’°ó™šÚk™¹…üÆlŸwá_>Î…R Ìø×Ý|×Ok Úïü%Šf{py‡9®óëS¶U¹¡~÷®ãÂä~K°Ø´­DÏ[óä—¦Ú§˜«qÍCgæ˜ö¼Óî;Hµ+Rö‹fú.Á0aÂ/™e÷$Ýr… L+àH¸\öb#Jv1cÌÓòvj¬2cŒ¬A¼Þ±Ô³­‘‰6®®íjhFÊY%Å ›t8ß7÷.¼GW‰è…¨N}½-çíÀCå¬u·—ÿР6õ·Ó¾vÎh[¿£]/' Ù_=1ð Ào‚©¡Ô+†Ê{€5Œ+îÊaÓy„­ôz¨_zO扒‚ïa˜yS‹Ñ‰Uƒïa‡üÆlEsÃÆÇtë¹6ÎM“EO$Ž#Ë,·7ÏR&¿#«g~ —%0p`ÍÆ+Œ¶]±æR‹ üŒ*1qg8BžEVÄ©xèÖš>vUüC%É|>IÖi­*¢ÕyC|÷z×<ÕF¼Åés.„ ¶œ˜ë²£då2û‚ Î ŸPˆYB®qMNcȾGÃl_Á#“{üYô{ãæoøÎ}³—2°@•y²«_Íal4¿‹h T|XþÀ¿üXÔ^523õŠñZ ן^êcõ ¼ú/£ÁqÈÅ6=6kV*°q'½w6•“%dR§n?ö9¸AnÒ8f™QúMßJ €ÆÑÉ¢ïÆjž=©î$jçè!máù+ñü|¨˜ÞÞê¿ Óæ).'#(Ç{öøñà“âÜû}Ò“öè®?D}zz!–M):/QjG¡jY c÷™Wè}F•Wàm¶~µˆ@SÆXèƒÊíl‚r8‘Ka>3”Ž—5VüøƒC(6Á0[›X\(Éù—RU±êG>hŒs€×ãSÑ›‘Ö£¬’«ë›j™­ ˜:«ÚJ€*6­â¨å¶Kn”fëPÜy ¶^TäÎû-[ï›O4ùz»ñ“ȃ3 gŽì†g’wã¹-üó%A\$ªwÐܛأKVøÁ>¯ötÉ&ôq&‹|jôíxæËòä ºJ@•ç7°S*8Åm®&Î24`ÓWDš¬®we-Þ<ó±àfzˆ˜ŽÊn(QpÇw%>Ɉ÷ ZÛstº*ünöÕÅÐ_Æ œh‚GD¬IÛòáƒ×o“iH\aZúÝñîªH‘,Ìø}ãñTÕês _COCdÒWhV¢tJØwN刓ç¹_£Nl†S3Q¤„îJÛ¡²¤Q¹b¯ý͈æYÁöjn¹|þi3®Þ£œ"ßnµõ¹ó™=F®?=„œE¸ì¬Ýy¼ÒEûˆµüXLO:m`ãØ9Tc£‡­áëWˆ-hj£˜ƒ•¾ÔTÎPB›ó6Oìê lÓ‰´( ÿž xÂrÎZàMD}Ý/K_çdBƒ²–ªèÂA–E­£õ?–Ÿ/²a Øi(.2!ÎÞŲeq¸«ÏIQÕAüCT×&“{šÆçâ”Ýg¯® ¥’í¤Å¥³}'^DD"žLLI-”WE·D·DjWÄkD!¶gý8§Û½®¨žÓÒ§gDËè{î™v0븤«]¥Rµ}Ù&À ö~Y9É~ßìù×_Û9ðžLì­Ÿ}?7Ÿ¤¼±{DY¹ÜVþ5Œá ·µ%¸Pâ(Ílü†d„‘SzB§”€;°Æ›ºî’¦ÂÌœ¯ä㛀$FΘ•çèI9½¤BXÓK&¶éØžÐJ^rAŸV®u[JmxÿÁ áÖ®¦ùH‰"_¥eÀu/¤8{, {ÎXß[(ßU•Tˆãç5GÖ•uhm_¸0×U|OM»ÉS$ñŸ:ää·¾·œ}dízzó$­ÿMêKÔÑYÿµ Xã"p1Y÷=}œ¬h›î„ô©«zô<\ŸDŸé.Ýs¦ÐV©9³?±rÖOà6¤\2‰ضÈHÎU^‡âÅ·àÔñ§PD®•uõh85ö3Î9C=blà kH^Æ50üLª‹qÛµuI\ì"ƒë\oúûõuv6“"°Köø]…¥Ÿ;ÏKïSUrèÅC°Æ²øí^0½ü|ds!iV‚u 5«W#þãÇ´ `g³÷ô5r¨ Hµ}(Ϩõ­«Î—+’å6æFjÏ‹ºöu””ÄI$DŠâÚ›–C8lƒJzÔ|MáKËýÒGËÄn܉F¹,k©Øƒe\Ÿ<.HI¡Ôe%sµ ˜g ÞAµ• ü‰Õ00â­X Ū×ÎÄ"î eD×UÇMŒjSVðÈá:f¹äÄL邜‰vusn‘ÑÆºHZTScüÆf7l“hBÉ bðBw§Ý÷'ÝÖN ½#µ«Øy¢Åv2ω§'œß‰„ ‡Jɾ´ÛËyžoWñƒnÙX+ouÅ4z\û¨ZŸý þ\]¬ÐdnNªÌB}zxl ½Võœûf˜Ptø~ÚÇÑ·OäÙPÕwFwvœÛ»À‰1¾šÄ]À㈞WþÉ!lÙgf7Ó#Äõ•ó;u/Xñ9° R‚ÇírÈlþ&}kêäµ+!^14h x;Z•åñf©`tç?ÿ9¶Ý)V >±CëlßPl½‰è3Y¾s#e¬G~Žþ<}Kýÿ Gl-Ôr1ˆ^ùs ‰{IÙì‚üK?;JÊ0 3P¦gÎKçÊ6ôÿCÌ×1kFËJt´rÝÃHzø£<ŽÔª9’,Y1>S{¶ëŸjø¥Y"j²ÇÎñØùŽ˜¿ý½wøÃÅŸÍ5ÊÕÉè)n]Ëé$ æÿ7¤÷Ê:ê*b½2KÎ+ëÖ÷`Ló(!ÞŸwà×bÉ|}éôìð5㎾Ƴ)Ñ$óf0= ·T Âi#QvÔk¹"NŒ¤«ép$ñJq Ä|¨óÅ|ÑkžJ Œ9׋.r–Ûv¨‚z„Yh H38u߀ùeÕ,„hO̳¡š GÉ!bùK%Ï?{‰òl ‚æ:ÄðVõ B뤱‡¿íÔ]¢xVÀrG?³üÆc͈xℳ'üëÊVÖ7S×K.tw¥“’·kðý´FÞmù|)¬”Mf¬‘÷E@fë/)ƒõDÐ)6ð“üƒ<¦%ÙТIp¢õø¶&k½? ƒwçH°´è yÙ_‹çncð‡è` ±äkQrÿÃ;©’¯ u@ŸC–úio×ÖKaää4ÜVfÙ> ¹~ké³j“H4ë#MèÌàK!xœÌw¹¹ׇ¨ËQÝnO,[Û¶ è;âë¯CŽ€Šõ®º²};¹ŸPÔt“'ؙؿk¦ÉŠÿó§¾á¥Ø\Ï@Ötܵ!±þÿƒøîËCHx÷^»MÂà‡ÒñüXñ¨éžïe™¸šv’]$€‡§ šðÛ–Cl™À„çdF“Ãß±*f…6FvÁ<Ö^†é´ÛM¼2/Xgë[½ÛÙ8Ø hײÄ}§ç­yj?úgºdFŽ¿¼ç€5,sy_.æ¦7w% I‡@ï3"Š«„(VÂüÊ¢v†V$´REþ¿ü»Éc{ A˜'mbŸ6ÞIýwqÔ’—Á¦'Ÿ¦þ¨uå™+ 5„Ò òÌãJDÙ–´˜4kT :Z8LÞ‰£@6ŽÄ”1w‰ʇÒwx;ŸL²´%•„“ lÕ™ÐÆ¥ ÷‚RÒN[Ÿä9"µ)x»|?©žˆ¯0?Ï̯ú¦Ý^UÁ[Ž45F)UÈ3«ž’HA&($ÜL óò-YÍEe!ŸÎIòU¡ÆKß`Ø3½×™_/Ñ/§ê-Îã•+É”kjìYýA±y:¸ŸK‡ý¡OµœâŠ™J³T9o#§)ëqCðt“½‹¥RçõŽwVÎxÓâªËû˜!›ø…2®DäH*g—ÜÄ ù z© «÷ug=Uíæ¨¹–í¢¸ôŒâYêIJ`z•|àåmõÄÍ— è4P`‘¬¶£Ä÷QŸÀçôcº/ ÏÜÓKûäŸ4ôs!×ÁeG÷Ï–ÓüB”‹ŒžšÆíSpáw ]R•!(áYUÏâöÎäô®ð‡ý؆;iúÁòãúÌCm¡d!šY.\*ÄpçnÉ!1§à Ð|S9R¬EÔº¥>þ "í‡[êgצ16|ûò”1D„ü1€äƒBuë‡= Ü—r^zò4æÔCÝÄP®8W Aß·„ÚŒc¨\mªB’ÃýÀ/Ç_AW¯=#c Ffßé`á4_»õ)•(”Ád@ŠƒELZè*»ø¡ÿ¹Ê1u³Rp£Íá6üh@V1´O߯öyNZZÿ²ÜÒ»8 a¦z·îÒÛ³eµªfãv¥H—0ì¸{-åí_ÉÒ—Nc³Ä?Ò—ÎvÝFXÜC¢jTÎúâû<5-¥0ɽÿç&NˆwÙ¢õ-¿—Q²Ýå>œ ‹–xQ¢Õ²|d1¦û´f¹Â‹mÈúü6VIs%kȼµË§y"mŒoª"X‡Oµ°¹ ÍRÜ+f_,„Ü— k°~æåˆç"Éä&@÷DË8 „äêÊ}õÊ­õ¶p—è|K…¼êx¬Ìq……iØøØ˜h`¢rØ‚'ude*‚jÉÕƒ<¡úÑZ¨ž/@çPºn ÄãJG8­)$Ø `°ÌøÎpÌN »ŒVÒ6Ñ!9÷1WZB™s±ÁåªlôaÍVt§l2ƒç![Gª<ûdoK—7?$¢5õ «ä·¬ø?^½W”£bo~à„<ò°¥«NWöÄð’ÆSápx™î϶7ƒkñËN,±12_üîHçÁ{·ª8—=uƒAøŸáßR †kvËÙ†ÙÚñQ «F"zRHGXYóýȶJΩò+I~  =ky ڣմɶ„Û±h•éûÁÃê.8•ð}‚nÚ]ü@s“†+ƒ‰9ÁêK"ãÈsíÂr ?Y€üÛÎ--S¥”÷~^^þûµ89Þaéê£ }‰( ¼¿°° Ü–ô-ŸSÚ¯kÕ`^ ˆ•ô7YV¿¥^ö ±Ǩ§] Ö; ż%‰ë<”ùUP.;_ÆÈ~?¹ïÍq]ãÆ~Ôêƶ£½y/aiŽ¥°õëzŠëÍ” ÉnxÛôlVŒüL¾\³XË}ÖÏ×r1Uf öKoÐãˆÅ­ïµ6KÔz®¨òã0›¯Ïžøì¹ýŸÊèSL%¸Á1~˜–0JJöb°£ÔÅy‡Ñü*&K-ÖÚ3ç)o]ä UñªñxÄXÛ¨7vûp¤Ú oî32Õ*ØÒÌžŠC—œKÂÿ¨ Y(]ΦŸl—µ ú'-y4¸$ÕÑWE11[fŸvV #Æ2ýú”ü*¢¬áO‡x,}hÃmX²e²!Ì y þƒn.Á›šAxKkZC7Þóá Õxv»Pä·ÒQáÏêk•ñ?V4'r ÝçÁè³LKÕïcƒ!eJNÞd*‡3üÆjø¡5QVs‡²ØÑ}ǦwÉaâª(ŠàSQi¤#Åv?ˆdg¡ówØE&oÙ;ºnhc÷aç«a_­ÁEù¥Â\‘9‰¨Ÿó’²Ð|ñpñõ,§B¨]!é½ð!¢5FŸ'ƒ'mÀ!›]\¾žÛªm¦'±À8Ú!ÎÎWuöm¿JYÈ2 ö÷CÛ¯AßÀdš ì)uŽãêž:ß@ñãâasb½.»Ñòí³e¤‹Üú1ë‰é(U ¤“/ýÆ“€xPå P, ÝF¼¹ÏOt·m‡–˜©TVÔ}ö zŠÝÏc‚õâx³óI<ìEÅN¸„½eŒüèI×ÉD± ¸¡“ üÆdéCÈsì§…¢ÀÕqONÎOáfö¿Õ•j}Ÿ-ŽG}M¶‰S–Òt]‘»ôæW¼…q³CæfMLÚi¨&<…¡¹?j~¶P÷`žnþ^Ž”œwHÏdñðÄ?VìÉ:ã’B"ö?³dþ…Cb_¸é§÷[v@2 ß)\-çâ?ÃWy`»Òïp<\GHzlƒS¢lEÃôÐO¾JÔ)7‰Î˜#pS'_¼ÆeÐz(S€³ÁœV³G“ÀÛ-%Û€¿2DmâÈé°ô¹ÞþN¦¯‡‘ n? ˆ)¼uvŸ!·RÀÍÈ4ŽRЬ鄈³íœHÊÃüâ”3“Eü|¨¥+>|²Iö‹–²*Ò1‚ä]/!H^ÎÑÎ[ÖZÔlçðÌ|W9íu€•[êÛg\_öI}š•u—PGb |ёРÀ¡{¢òø²Õ`@³`îƒyýËÛh¢ãX>œÌèpöœí²s–î·(¡*/³­®¹<&Ð.¬¶RŸ ìÝÓÍQBªìùðhY³xüãÌë kq:[ð8Ô/õqèl¥•bßåEåy }÷‚|eXçýc=ì# /çä‡D‘J§WÄbóíÙÛ4ÿ-z”UØýpb VÙLÔ”Y%ЉtÆ,NrÌ? ´r½;÷æ+wgÉ1x—Z·®ªêëRl'ãzsJs7ðrókõ5Vß#§I ¥z±´FÌå³h׳F¹¦ïN1Æ—Ë©\<èÌguÔ~4û>¶¶¯ÿ–2Ã>–æQ€ýJ{^¾„9ÈÊ“€’^,˜í£Ít©÷iÑ––Ï}û馯 Ïø¬WÙ¿º6wÆ<3/ªSÓ ñ(mŠhú‡¥(üWîDšÎõÒØLÑèôŠŽÀõIOÏ*ȸöŠE^fN¡*eë•å}îÙüiÇÍãÂt·Ca¼iC 5;S!½Æðµ÷æØÓ-§+hJQ.šóKÛÝON‰8A„Æ·nP3” Ýû z£ïËK)Ñ­µîæeÓßÁéñ(¶™«¶á'ŒÄ¹0qC•ç#9j»Óç¸eÁY‹®*Y±Ò³è~4ïÞf 7ðU½=ã~ò2kpÉ36ê±ØÖŽ—GݰB²â²ï GãØŸÀ“¸ØÖàáC_öášíeì|~´r4¡ú±ë4;üMæ × ¥W`¸sÁ-»’aÎF;¼ 3d}E¦úŠÉD&Ä(ú ewv®“>&`ÙÙ3˜ªv=)°Éñ5Vö=LvÙ=ÿ¶Bdž©fiÙÿÛ_À…”él0Kÿ×|Iœ6»ÏIµmèn‚í¢Üã´³S¤n(Rº‘Ao¾F Ú§æðdãÓ´«™}Û·¤B±Yyé¯È“Eûc½í²~-æ’Ÿ±¦·œÎI ÓÆÆö—2©|£23ÙæÏ¼ýòH‹‹†°À·ë€Æ "3m-dMBŽßz O<Œ HýD"&÷&òg<åÕ¸êÊ׈ƒIçüNuYó×zȧ' ø"Å~;®~=vMFH\›Ðß×Èf(B©©¹íºy2èæßÈðñO?eBÁºÛO¾UͯxUõã[=àìÀlûÈéPˆæ¥oFJæéetšõ`‰OÑT.`ÀÊœ+iIñe+X¯.âL¢¾½ŽÙ(ˆ M¤DÆãÌî-¤Iºìÿõ²ÔK\|ýt¶ÑoážêÈ,%Òbfâb§O‘óãˆTQb¯HûBà/bt쇲îò9èÊÅaXoP!þÊ—òŽ”>{7–B݄鮹KÒÑ9®oDUÜ0ˆqh¼‘éä6ʆ!ËüÃë:D{E8ɪ3;'ŠRÌqBì\Þ+ŸÁ ¦ô"²ôÇ»íÆ ’É•c&«ÅVÒ&>v×£Ò:8íê¢×4‹…x4·RÛ•Ôq“iñ(1EšT‚UPãÐÄ¿ôzÆi<b¢M7¡ ÷òj°O¯Oî'’Å0r . m}½œËY+WµBž< )á½(¢Ïíß{ðqæ xY±i¦u¸”ƒƒþ•Z¿ÊÿÍŒfP"ÉK†5¥¸%<{Õÿ¨î×Ñ”zœXkÜ#ó㵤À}®Nôéž½SÄÛÝÓvu.4'ƒ`òì½ûFÞ@‰§h7'RØm¹áOyüÄ¿+j¿A¦þ?eQÔ»Ž°dÎ )îŒç# †oìݪÛü-dà¤D°ë 8_ øTþ Ö-8v¦Ð^Gb–BèËë³Ô)áRdâœ]ÀëHÀ_°úsTl¾‹ûªM¹ƒTCÿÜ áÂ] s3«8a63±<>}x>œ QxuŠ_®rÈï|ŽYQDè<|`Ca„˜5ÔjÖ®ƒ×EMÉÖ^ m‚_™ˆr–^“[Yf{̉ǻ.)çWXÕ¾ak"ň„’ tzɳre7JíKçáMÁIw_—‘äuÞBZÇ^“v=Ò²Ãç*æõ¥‰;¯X‹¯ &É»’dtüÃæ÷󥿧† ra Ë|.2£Ó\X›ùØ(F§KOúNž `H¾Ñ~¾t3ÚÉ-?nƒçûÅÓ±¹ç¹}²‚Wß¶ä’ÓÎÄ@#’è9Jèyôv©ùÑ?&G-bW„å¸.@ìa™­Šz8 L£{Ö]ƽP—’ŠÕ(ßÏPøHË–|Ì»¥"öÁPx`¼E[à¥| ˜ÚÞmÒ¦V¨9{*ðy½¬ Î@¢íà ô‰™ýFŒ®LoŸyó9À©Åj=ü|´æ, ¨‡è‚púŒ1“®|©l1í…¹h[T´þþ¼‡&>^fn.‡Ê•› ÔTôþ'qgŽ÷àBØ-¥ix£×Hw2>þb«º#}SVµ±–KãT3@9~NlÓ4pð‰^ò5?à])†r¿ÝÌÞ(‚€¾33‘`r(4Ìv!¯ÛÅýxeLUI²HWì¿ Nè5Þµ±¥äÌÉqœT蚆¢”?Ç; ,îOI:âåÑBdç2–4²+M <ƈcü\½Ú¹%žs :³õ¥Ú±ç¢Í¤4 á  çÏêiò c4T÷Ñ®is²yÓ…¼Äaû 2;¡í½•‚bi â~Vßýݦ_O_o°#¤Þî£Lzþ»™ÖƒìïÊ5ŠGüæ&™Qô…$ÈžŸtV¿I!ù™Aλ†º]?¤ÔtÚ~¾Ú$|h]¯H7Ÿïæ`êUh·°–îÑ4¡¾ÜÇh¦åme׺HÄ5ÖF±¡ÉWÿ—kÕ7²F%ÈÈ´‡<Þ~ö!\‘ž ÂýÌD@6# ´5yƒ•â­²#»Œ^øivL'íG¨®•ÁËçïç¡n[0§µÃºÿ±;–âiô#-Ó€7|ÍD³üX5’±IÓ•ÙnÏss«¬ mõÂÉsPót£ä?]`…m£Ê;hSºi`§€Š-“!1L 9§Mwâf2¾åÝ?¿;÷RÇ<2uR36÷ gÐ$ß"‚¥C¹ÙÊÚ˜7KUÝ¿ÉùšY8ÛŠÊÏ;T¹V¡z¥-—H-‘Òg¥ûì­oY1Ulû9†Çð¡0@Œ4™´4ŽÝF ˜óö‡Qó²u€ÒuÞÙHhŸ¨$ ¿çµ‚S’²*·2Á*ÿ>ñrP ÑCÈžoÆÖ%’ë ȬY‚ýWæ7kÙ/L¥òÚI{î†ø‹n › Ñ"AYüNL§£³b SNÙr4šû.ýºDMЯù”±U 7èÕì{펼$ÙÄE´GÉõn?0Ñ Qì¹LÏf®ºz¸›Võ}²/‹ó:lª©†IC*:€ó€䙯֭“Y~‡w’û":K £_²±På#Høªgæß®HT`@ŸK¹U–dòNgA»ÂÊÎj¢§e)¤Ý+ìÇy ýï_›‘>†`PhöŒ†e*ËÝ©Ç"Õv‘‹ë”^iàGæåÝFçÉÍhÑ {b³GÌV߻Ћ_9|OôÂþ ÷¸h‰Ð´ü£§Mø™za£.Fë‰ KFƒç½âœ¯«–ÁüX"`V<î.+Ð5ˆ Hæð°yª£ÿdëp&þ0ByíàÕ¼)/Ü«$óÉRω›‘ýD·`r¨ÃHºf Øöž1¿6NFã ÷ïc‚“øq$x(hC˜¼^I½!÷þ.©ñ–ïpwõM×&Ñ 8j‰wÿ_ÇDéîþ¾ L»IuØ-›UHÚGÏÑÒqœÔ ¿³¾|‘¼w··£Vqà“„µâLŒ Uò9¢(×Ùf½—ŸŠy>ÔÈdéR?ñw›Þ7VXzÂëLõÂÍ´Ðÿ§ ¾û` þó9 W>_?êéS 2›uu§ÒNвÀ½ ºAÐåv;€iZ©1üM(<ÖDl/8!ÄãH†§1§‚ÍiîЄ$è|¹K8AÌ#Æ¥¸™ô>‚Æ|¼«ÞŸÇo&uw6º–¥Áž)TÌÉ—˜ú8mqšHžô‚Ï»Òuõúd¥™ðÃ{‡ú#ã°uhîÊV5€JÈ÷ê¡‹=k^7*FÀøHø@~n‹Õ²ýù›w|bsEqQR~Œ“M¹A`: ÖªòFÜK¹ÃcBüúY†f—*ÙOÛÞóÞ7š1" [ 4£ê’óB¬¨yÌPú˜¥ ©d­]­?Àñ)Þ â›òÝ=m{6Œ†­ÆàË•å¶ÿHcO]KEê\Er@ÐGÓôÖ"¾\m¯XüMr»:N)dtOx[°ذ¼éÄ*…ÍÞnZë’FôuÀýXÌrlQ4aè€Î¾e\}ð+s£í(Xö TØøÑ6‡6o£(°nýºBÔñs6=½ÉiÇ¿Ø ™»Úº»Ó¼¡ìZAòmE…UEæ£ Ñšs7Ut±MËsƒ›A¹R9(ö/øÀç ucøï‡'ø'ˆªn¼9•ÓÌèÞHäsUÙ2öë¿ÿ8:ßô¤H͇^sð^RWêš¿hZù (±9óÞdîSÀ ‹¶íækÇ÷þÂÈm6hô}#/|㛂¯VÜæñ hŠõïý_®»öº°TåóLŽÁû{üÆÙsc S©Gƒ±z÷œ#fá¡ä µRI½åþ¨_[1¯ºáVä«_ƒ¡2rÄt.‚ºr ×%˜‚¾øh_—6qåªzŒenëRË”>C ‰Ê်>ÐB}1Ä=±í€ôr$¢¢Ï—*åDw{¦`ÎdQ–ž‰s»10QESr€zºêSGÿ™ån !*®u“ñæ¼jöR÷N$ ¼S#Kc\JP)Ä*É,¯¾rþfU[qzÁi@Gøþ&8GÇÇwx|ßñ#VÌ  ¡‚ItSŒÏá϶¢UjÍKeõ 6Û{ ù+/Üm«cÑâfv”Í‚üÊBºí93©á ß~ëÃe?iZ}âã߉ –©ïýŒ-×€ÚÝÒöæóÇïžÐ–0ªåÖ¢‹_ú ÿÜÿØÎ¾â#”åÀyŠt–°#~ÈvЬ„1éòò@k-MºC²VŠÂuUXfkÄø˜3/ï£_®˜¡T¿u'²Êø!­Uùc.ÿîHô²ZO6»¶áv1ìtt›ü#`íäÍ’ªË ríh¶W>õ¢:WX ”Çx 6›Bl¤{I”ÅE#‡V4»éAæÇºZäßcûT=σüÆb¢¦=¹Ô’À‡E™Bâ- ¦mbLjt4€ª§F©È¡Öß'nª gœ*ñ-ú§ºAû•¸f€þq4ž\'Å]v†!Ð×Ïe—38ޝõÜ#|ÒCD|%7!Ô_æó€™ƒÐ1÷øF_r]tý'YÊý˜ÿþ[2üR@÷D&?­‹ë [|€öÙ¹÷áø?1·J8Oð^R- AñÞ#âr>Õ4«€.Åú}þ<íÊ–)¦?h;ø2³tíÜJ{½[)÷÷Ñ€F¯á¦9d3nòŠ/«~•Edù½?ì>‚sŽÙ¿+ûd!·t› ƒüMзŒ:1”› „Á§š(¬On~6¿Ôûp‘§˜@üÄ*Šg·oàZkïT‰£ª2ˆ …±d‰g:’åˆÃ‚—7£_¶×äñ&üMæmî\¹¸`VžvméFþó=šívÜìÏÀ¤-Ô,ÔfÛÞ h³ˆ¼êZ{çØYËÞSÖÔfR¦{á¤!ÉF)­]$"S¨w>Ô‰œÅ«]5â;KO18ÔÈâ·Óžßš5ZÎ:ˆ‹MR—îÆ— ú\;µÏ0Mz0&¯LDz€bb·wþú'Åë´®$„Ðë”ǽ’húGq ¼9Œu·÷Õ›0â+Ž^±Ê>O5 Š—f n;ÕÒ[ƒÐŠÙµð7á (Œ1÷åEô@ ÅôG‰7— á7©vk°>!գʯENÛ3i1mrÆM3ƒx-hj IŠ;I0zA ±‰ü5í<Ëët1è‡[Ãç#)â²$léâCÝÏÝ3Q± âÞj¯„ÂÝNù=fH†&f÷&áiÎÇF¸£Å¢_æ‚)J;Öçð„Ab£²ôv‚ Ó–Öì:ïŠ')‰aÌÂÀ™éÓ ¢Ëñûzyq›¦—ûJpxCúZe=o!ÉÝt»fß/|žûÎÖ¯M0ÈMŒ¨¢„o,ÐggÒ8‹­(¹ÙÿJ£fêlIAèI£î󼑞¿/ʬl¢6aµÕP‹ßsÐ3nȪ²vºÎajFÐ6qÕ^Xõ ¨Ð×Ä÷â2žiÍ},½HUÿV‚hÚ“åäfŠ“WåP.;çåüM(rB|Tº`g¾äü8³Vs”Åmdsš{:Q“z¯7£Gw-‚¯“§r‚î‚F.zœ5—Û€øÌÞ%àI&Oò†¢ú># ½ÓûÆx ¸å…¶Kˆ[rþÏî|«ãU@m¸‘ëIž!hþ®—[c˜Ý)çè:YnXÒIå:*zã ÷Ÿ¤ÖòM¹îzƒ'`‰Á˜pfÀ¶ôgˆ(ɇÕ>غÄéZ×X æÖ â]dûØÍ…u&ègœÙª®Ee=¦3²¤cß5†¿RV–qu™´‘Ì5™Êª_7ÛI¸ÐØj Ä“zS[jŽüÙÔ=È™q_œõ@vUÐá÷Yçã7@x;‚† ã H <;+E·FùÆù[®¼bßÜcÐ?cã}wvÇ‘åe¶Y*ÿú/w}zñ,ñ^X ¹œ¤Ã“Ú0ºiCì‡b{&å…y«4î<e Ñ>myœëA"™^[=à|õÆ 4[ÒL+¡:ü£Øö=Qóc\éùËDÖVáþ PJÌ6Úl!yŸNk`S OaÀW˜çZ°l;k´˜U²O14KÍìwÔãf±œ¬UÖ€žÓF•Žq#áT9ædÿêZ4þ»:_}¹k2˜‘ÅQFñ€yg¬r˜A’†Sõn‘)‚h~K~«ú?ôQQ$µÙƒ9_…ÓK¤ˆÞÉíï†7:f£©†9 ùÌf j1Ì~¥æZÕzž–àrº‡ê>¦7Vti>$_§¼Â`+`´$!OQoâ}!«…«œ)/ªD¼¤#Ÿ­:•Üõ"…é¬2|…ü|¯×~*Â)ÙÐ" À}É;‹¥”#7Ñ-3Ö[Úâgü¬"gú!7ÐTúÞwUéåžææfc«è-ó'Ô£wº(‚Ã?‹X ’wÄÈÅ£py Ãì&t 5ü‡i\>ÎÊþT ŸŽc¨sX‹èÈ^”èDØýœQ¸§WfS&µ¦k~?ÒMs=½–RƤø’ò‹¦ï ˜DÖV4ªu™¦®)x¨º–g탞¼†£(ŽhÒ‡¹iZ\™"íóQ÷úD\üK~’¢ß&?1ç_ÞŒÊ"€ÁÃòlúÒLýXµ† #‹îÏ–_Q¡2>®XTz /Éë²hM€?˜ÖM¸xcn ˜8iQóQ_¼¡!kQJ#ðt{Cò“ætÒyë@ˆ9c\•Àܪý O‘G­cy¶òfö ³­Ì#õM½æ,11Þ [e¢ëtKÆ»í¨Ò…/>æ¨Ga¹Ø-åØm= –o©6ÂÊ[ÖÔËèä©ôJŽ‹—šl–÷`"[’q»;ãÀàtÖXrü~h>¡*s_¬á ú±]½›%c$ÖÝÉÊ« µE£`ÐìŠÎÞ€!ÄÌIyè|›æ2÷ü‚“Ö`ÖûÝã ^«í4X¸°:E½‡8¨¡›*t \¤v9ŒX NüX6 ÇŸ^6I¾ˆˆ3 ¼•‹%8@à.ò£6·Û¤.ÄÓ'É7»­Â¸þp^ç¢íŠbôÛ–—c¨^ûrk"y€/ìÿŒ6l üŽmJtˆj™o¾ºbåƒ,•TuôVvõ&†#?õs9*¿ÔÀd"†bî<Ç7¡¸ey3äd'&$CRC:(mðe øÕdëêUËÒ¶U§$LþÆÿÕç—ÉвNÌõ¦ÊA†¶ ,Œº»D¼ªÛ1†¤f38¦¦r˜<ø¾ÝÀL¡œ>2pôH¡?õN™×5®£á?ûâT&)°Äg˜üNP2ùŠš òqÓ#‹€‡–÷oøE»SØ(¡|ß—Ä(øó3òòîõú@[O³ øòGç››ÁÎßn°­ƒÄÃ!EäU1mBÔÁ€„:w)+NÒñP¢{oÞóì©YÙ¶† EX9!f…†q㺛.Hù/ÒÔk‰*˜bÊó½©ñy$¿€õ¥hÇ&þ,ºþ — ÈãýÈá1¶Znóô©®GäÂÑVe¶™övÉù³ã§ý@&G¼ŠN5~P[%ñOÇ[Dm”ûJôôÃ,áI•‘ƒؤx&åC+»ÎùwF¨ùXÿR•ceg|e\½à&üMbû`×'|¬Š\­#sªµ Afà rƒ4·ÐTþ˜Ý·6Ž|=×Ç€‹?¥™òÏ,e ê»| €yÉû<ÇkR'´°{åJìºè$ËÂî¤æ pˆ“Ëpð›wĵ€Æ-ð6ÄÈŒ¢q¤E.D‘ø×c°,«Y‰ÜÄÌ6¯t꬘2ˆ6- -^}ò¹Ï©cè¶£,>!áž9ŸÅîæü4ý2¶ 4üâó'ÃÕÍ+FЂ„!+~lÞò˜Û磻DK¬B@uÈ;Å@J]„^ÁÈíσý¶Sr­!*µO¢ÁïKüLÜ2ǃáW?þ—­Ö&FT&Œl£ôäàWI~í) •fè‡~Åå•–.À¶) É?•P·TSG g°ç‡6›ƒ/ítu/Ä0n»M<ý·o¤ÆT,!ãQ|_g~ÿôƒK^8 ³ jï{’f÷ @¾ïá ÓÈÑîÌBÎÖ³5Ç jâE„GêB¬·Ãávݳôs¨¼é\–8ÂhBŸ3¼ '¤´2s×Ä+5 O?Óâc÷“^°íºýUÓjGç÷xãZA³W|8×ÌÖny,'1ïöÚX›`é.Áªcüñzl&¤{VJ^ëØ˜‹ÊÈzp ýΆö¸»ýšÒ}`ÊTžå2¹‚oÃxªìÈëÁf'vÜP©TÀü{¶ñ¾3`€{:%$¿U‰EÉ{ªêW¯¨2º¢5ª¾ãƒ¨R2´ñ¦€ŠTºgì7½]ÏUPŒ{°ˆµê3Væ™`¼=[Í #óLµá™;¦$fDë¾V+«‡Üï-‘£&Wgo0u¡~Z­¥…0ŠpdDr÷û’•ŒbL:‚hHæþDc+~ÈÁ> k÷éƒÏü5Hob<Ä x¸Èß…* =_— …„sÌÛÈ1Íå­âd"^œäœ¹Rn¬ËY‡Äú\o€l·ŽVüoŒ«lMçF9ãœ)$G£œJíü—¥­¢Õ–âÍwÆ™Ä5ò>¯'Í6 «Øïð·TÆKi]þø~qД#+á×kœ¸ˆU8Z£ +SÑu§Õ"/ž¡,¯,8¢K¯U[=â½°b•c¦¥X´72#Üs’Y аS×ÖêÌ—[ÁòŽºF•ÞrÁf½ð†#6ĨÍ\àú?å…8h©þ››î`‡üMi<„™0— -°Òã^½|jÌ]߬NÝÌ뵤]m®ˆüD~·p¡¿ˆö¦s›] ¼ÏlË熣u± Q]bÛBÛTŬÄzU‚_UÔq‡‰qãЧ gRU,¡\££=ɘÊIîd°àƒœƒ‚¶sØm‡ 1w€Ø(ó8Á§>Ö9ÿ-€?Û’Œ¹-½ÑüL¾2B¯’v¾r%Æ9æÖŽGPsxœM¬s>2‡ÏÚ~×kíÎòš‚¾ŒV7lx@©g­×¬S>´N¶Cšè»—Ã¥•œoƒ9ŒB ¸s0ÃÐM©À8-÷<7~K'=Î2ÚÑ¢0^ˆ­/d Ãdš}_AØÜxESeSà ¸áu}“ÔØ%ëDü5UqvàÉy¾$ Á›¨èWŸ*Ü×ÇóÜùûOFÜ ˜Ïº‘9ݺà Ãú·ÃsYذÜ8YQ=ˆþáÂM †ë`Â¥÷`Hu¥7¹›@Çp€Ú‚4ZŠ•þÏ:WÑ|‘znK0ýÖSšž--}Á^¬µ«ô {ÏT‰9=—BÅçØÐæq¶Ú½ ¦*Êf…»’ódåàÌ¥„¯7N£®eÏÜÌúPFšO?ö›A­9XÈT$MŒqÔ!ŒÊ‚¼œÕ¡Ç>üNêú3SüKh§=#ÊJ })¾p¹ð}‰ÀñøG‡u0\—Îiü|¬í÷Œq×Ò|iÉk…ÖH‚Ï4÷ƒž o˜¤6çr´êôkš*b‘yÑ<z Óžá’Z §µ×®vÙáx/Æn2ÒŸ3ù{ˆu =fdE¤=•tÿ¼@]ežb"¬DéxôU€æ0¿ïv>uÌÚÑŒ­T=n 5 i½…¥Ã)R3Tré›@E§Ô[ ª,¹2i„ÓŠ°v嘌Z˜,ÿz1lðg‰!ŒÂéòy­Ž+ûúqêŽÇuì¿êʦî*ë¼°J=ÉÅüZ:'(s¨43÷ü{=ƒÛA=›ÁŸ.#|±£_¸nX ŒÎN•˜ˆ–œÚllîŒøN;âäŒüh]0=èjâ21 üp¥þÌ-bW–RÓ AÀÔ52²{Δ2M;˜ÀÉùvá@UE¼ðqtï$R|é´ÑÞ½ï¤,Ô‰o3E7µAVgk:çÓ!æøoî«ÈºCT¯V1ÃÿMQ¹ƒ>FcU0б‰Ä¼ ÌÊ2Çû ×Q‘ÏsK7"¥Ýœ!dÝÕ³üLó”À„+¼²i0ÖӪ׎;;‰kÊAŽCÕ˜ö¯fD’–Aµû xpÍ%0IKAí³©µ×ñÇj¶+YáFk‹:u „Á|/¶/TbîkdÛx9ÚyKU7_T°»EÒ,õF¯rò×`T@ý/obÖ R¡XyþñîõÞØx ñ¹¦‚¯责j„ö—ÿ€ E£¨—oO(ÿ(ƒË†üZ#×TŒ‡a$Hæ > ¾9pøŒ“Ø’Cž…Öö± ^>ÇÐû˜¦¬ˆgÓê…üëÄZ1êãëÒ SÉXÊÝL!‚¤;Ód?'Ñ–VÜ#šv‹IC±ô=Hâa“LœÄNþj¶=ñ‡<-w{»y[-c ¯àè¶È • ³|ºÚbÅÎ5´àv -«b]Íî6¶I×Ìü6e{ #ƒö™Ä74UEí!Dæ€|o“ý¤48É @(6ÓÓ…ŸÒŒel3 ý {!M¸g… tß>P&/m”Só3¯\ï­ym¿ú…ßßQ_Ðí'»l¥Ú¸UæRªŠ–ª#â)Å ŒÎäJ€Þ¶^&çŽÊ.OYôråI‰¥]áD¤ ¡ZW¹®„‚‡z°((tÂænÿÑÛ;8àýGý›àrǨ ½Þö",Q“Íңܟ£«®¹˜ªVáƒP¬†Ä÷A70öR¦€õ&3îüLÀøå(÷Ô…>púˆ ô²š§Fóè,À mf%Ú+`ûº}}q0¦ ÈõšßžŸŠ!g'¿¬.k‰,ïøìîŠ\N'¯ÿ^þ=¨þ`ŽÖuØPÓ+óEé*Ù©.«4ý‚— ÐD9¬½'ˆx±¾•‰Þ9¥þƒtäû‡h;@,ó9|îoÖf›Ÿ"bEH)Ô;hIZA¤¡6-æoú±KÝŒÅqy9“) nŒ¯³·#ÇRÇø8ÌFºpãMa·àUÖï˽y‹»Š+™K²²Ê£5éQgFµ ûðCø ! ÚI[¬±¡’n}"OæÄüL»"¨fô2ÎÄ:ðØÝ—2QGÀâµÄ¡èžÜ3nñRÈiRã¯@ÊÁ´OE B† ߊEY¦Æ5âMÑó¡6ÂÕ/uÞÎÚ6¿Þ®6ÿÃ5³Ï[‰6K?UÄìÄåUÑËF~¿@›Q»†é”ûAŠ*‹öFðÜ-¦Kn}ïÂK%žo™®³ ½|,_mcßVØÔ`ðJrÀÝD>£y '´(ÞôÈtE“x/â­Ö¿þ±Ìš€ÌY’ƒ«Ø¹ÉØ)í^0+ð¨ÒNHÕÅNôj€MªÀ/ʱ‡ÂYíﻚŠ!°ôŒqã üL¾\¸„Ùô#Y(žðñ{1qÄ0|cv+¶óݵsý06§|¢ÈäÅÚöUÒ¦iKxyóÞà ÊyŽ.¸¯…ANYDKÓ+œ:ÖUçÆ2ÖD%ŠÁ¶Loå^ÍZûÎ6ƒžðÀ(H+ì6GN‘Öø¥^Z0_Nî­Jc¦W,÷C?7 X£Ú üˆTˆðîk‰˜ƒnI³Ö~à gMöd[.¼dÖéf\ @zÊÀÒÜiÀUÿͱã¾k¥ Xfÿ5p”ÓÑ.gò+ôÛ'ë!T‡Ô*ÃCC#>ëSS¾Ån•iÂqöôÚ®’ú!ü®Û›÷”Ô>ܦ;—é(Ÿ¨·¾Ã.ƒ6nÕnñÁÓÊ·&nSñè]ç±OÊÝéè¹I2þ ¹dí>Þ0âª;u‘v•Ÿ³Ú¿Æ”8h¯¿C>¶L•’ÒïmwâÝ´TÅÒKn»éÇ7°#¢˜bÀn訌¢d’ö­r‹V3{¢±–Ô^±Äc€³2V˜[¶#Ù„ -…¨âXŽÝ+õá½aÄe\³IâuýáÝ•SE¥L˺ÕúÛŸX—Å(9øAF2ìàP9+*ÁëY”Ç‘ó‘cã[F‘~–Ÿ@=Âñ`FÞU…‘ÚÁˆpS u_`ü²Y}ß°#Þð&‡±ý1ò<¸ªu.Lq¡Âö°W˜¢_΃-©†.W¿ƒ/…¯'éz`]A+Ü9pù:4lÈDŸÉ“M±0P{A(–xÑ`êä¾å_ã–Ðèø‚t‹zAè-Ðk]•£Zb£žßG¥Î»}zÙ¦°ñ%×ïgØaËbëh™º<‚…­ÌŠÛíì=ÇU5–ÀñÁW§"WŸˆ`ÍdT[ø+[^õ¨ƒÒ]¬coу CXýÐý|8ãmÏ»ôœü9Ưòy’ˆ¨ >v(˜ª½¾ØfhZx\qFÄÎÐF0$=ÀZáÉ®‘—H †Z™ØéöpP*÷!¿\Ft3ЭٲàPU{ L™e§f,Ù%a®F‘M-ÔôÛr¢®kÔ$¡Ê쀻& *’P޳(ÅZ×ö…z<$ÁÏê éøŠC¦õgº–{€¸ >Àðº0]挄¤ON¸-‰ÚóQî v®î÷Œó)r?¦*ýJËå8É·f\htw 8;";¯eï(üïÏðæÞ©7¢ÑßLèpÃMuéL@¬šX%.Ñús¾êÔð æ>ñ ՗ྨ ¥ýò9¾ØY§XöjXÞ#T“?L;r/cüX|JL*æ©iŒtÛ¢ìDDZYQKŸ…tÁþON=`Ó#¶¹¯ñþ/äÕ#”NËZ ,½ÃiÓk…Œ„Ñõ_&Ì!Dô&,âðà—á®MïØ#D ìK,ôuÀÒjÕ«—þ Zþ@ÞZÿ¶C9¤RÓ±4 Ó]FꀴWÕ‰²c\Ká}ƒ*"bÝ"b±äh»ì/Ä]r¢;l’¬À6ƒ¸~4»vö ˜p7Eüȃ z"î†u=à´²T`‰Ó8OíÿU0ƒ„Ê«%m#ñèü6|]Æ)Æ}xeÕóA3F^ZåÇ—¡ôÉ™¯mŽÏg©Ý]¾„z,Ñ‹BC±R ‘T6ƒW[=y¶}^Á…Hщ<Ë ïßè3úF¡OˆQýïƒ}3dNyr+ ¯êј•‚YÚ]MièÑK:qfYáVÈ?GVæör]`Ë0VZÙ&qËûÜÔÛ®€ÅV÷" ÙRáû‰m’ièÔBݺZßwh̨—ýÅl‹Rè¹ì~<ö¼R»ÑˆŸë_³ÅÆ›ÙûšÉ»];wƒXúOø¤[cpý™‹¯%üܪÌÛyÔ«Ië¯óõ~ä¯+{] ë)HG+F'$\ø¯wЭYàØ¶9 ?Ä<y)#Õ‹ˆÄ‚¸\›ÄY}Eº²züÕm¥ŒÃ¬›„E(+aß›Ù7|½ùä˜ýJÇÚ)º’|¸§ …„™tãÑK½ÛÚWéÙ¾ôíP¹n: ÿLª!øð«>Y±w)ç‹«ò—FÏPÝß~!š¾-%ÉÆû—´™}4A-ÆûÝ~sŽ>z€Û‹?‰’ù\¹DÐæ¸øÕ ._~9аU˶»©°R³É\ª‰Ã¾Á—ü2lgÈ’Àº\+ï_žÀÛfĤü—™^Yª Ê×¶º-a¸‚(©&°ˆÔ²øŒ9‚eúSù˜ú@AÜM¢ 9»ÑøtM÷Þ‹0°=$…S‡6?EkÊñÄ{Íïb-¹BÎSÄE×)Ôª†›Ûz0aú’ÖSB^»ÓãómÝßuÛ4#µcO?òÚßønsÞñ;ðâ¾Ù&Ÿð‰*öGúH\ÆLs{u¶^ìȰ†Ïèeí–Æ§n c‹ýCø4œÂ‡ù6 ’uìh7Vß•">X,HÁWÝ5·U”À}=ǘ3üMbó´If˜Ø=˜º¬L¶UÜQøÃcˆÁå”›~¼2õñÑI¬â ·üàM³ éÑ uÙ¹²tÓíF¾Qì(‰R|z}0ðó¡¡ä¡V}È‘ONpôVô ¾æ¡tÁ¨ÌFnBèZôÝ g|áÎéÄ©2Ï-ÄGý‡ûÝ* –N ©†wð;ûØK]à©à`¶æÒá|>µ/ëÅïÏÈsZ€‰áJßuìÍ.”•­ð›8@®s“æ‚ÚÕš˾°ïr" @ƒ) oê-’çQ‘Ãzá*̸Úü|ª/¡ ¢¼d°ºƒ%vvçèm“shU]éçñãLñÞÜ"9 Â÷ÝS¼Ñ¼ÖFFZÏG»F‚Ö¿úŠ¡êP•·ŠÐ›¼ö†Þë5ñu¦ú ßžH_œ&JÆ#jÊ3°!C¨sçÈÇ”ðE XènoΠ¥5‰¾DJË—ü*z ÀqN8ÒK³kØ ¯5FȹŸ>‰?~ዚ g£ÜŠÀó1ËO÷;cáÅqÂÙ>Û)ÅFó`ŠÀ¬N0Ò]„ÃGk®SëŸ@ ø¶)Ó¼˜"ŒÃAãoI?õtC‹#ÿ9fæÐÓ_0þ´bˆN"sÛ¦6þ_Y]î:NÝ”aÌä*‡.WŒ°¾í™ ì2­5lëBtËì+¿¢²²ÈgïORS›z à€®H4NœxŽ3tÿ3†·^þú*;Óü†m=§|±¾ísÊÂn·Ê¡‹v{öñ†WÙ&ùîmË*Œ+’½‚¯ü–á!®9*›Ÿ[;»§Š7u;ÂÉCѪ_"#†ÿÔ'MhðxSÉ„Sc‹²Ë ˆTÛ{§mûsËpLÎYÒw…|×ɃiÜâ bZq#[b·Ñåú^§D!Zàz(H×apA rÂß1N´ˆˆœxr)ŒÁ¹@eÙ g‡¤Hƒ®Øââ+—¼ŠôšÜàËÜìžÌìJ"­!ŸŽ«,†G# Cýøê‹y’ÝÃѨH¹Š8ªK@L“ne£{‡¦w)Þht"æõ{—WÞߣ¦ðl]hØ`æÙ†æ0üN8ò¾7À…]ÛÏVŽš¼#çÑÖ FIÑÓ=‰ gÒ¸øÓ¹d/¢â‚2u±£ŠüOds°…ù|[i¡§a牱…΀٠øŸä˜NËçÚƒè¡ÁœjS!ÿ\ÁüŒp¿f¶6IO¤Ã2Lš¿Õ>Ó!WX ¶èdO q½31Ì™BA;н/šflãB}l}L—ˇ°\2"þ*™ksË*H+†ÈôÍZ»S–“õ7û›Ór¼@õBµ9a–¯•½6Ì—Ð9} &n"Dk’÷Bl6T·=±büL¨Uœ ⊇Œ¯Ï¿ûFÅÈqkÀDp$"Õ9«Ì äOÙöpK™¨X™È¸"ìm¶o@œÉp ô¸´“RÆÎ ä³¼ñSu÷Lõ¤'•µQ+Þh(¬ì†ãvX9/°M Ì!¸›{¾@*6úçmåvprÃüÓ! À§_y«s,·ÿ‘ñz‚'Pý¦¾´¸Ò‡5n¤`ª^hOF¨'K}ÿ»žî3¯AËB¥QvWåÀ.Ú äu%Éøä#óQQ\}HÆsÙTé½»‘Qî”t‚¼™m·7@j{i¶†+k•¿vµü)”7ŽÑ¦óý5ý‘p/ß“ÓÙáµïû‘Ô<Ü»3)cèȧ÷?Öˆ yµíz3!ñ‰5›rYOÇ~ë7ä6[íìîÊCi—0Ö/p÷TúÚq äÖ‘„­¶Í|¯×yøàØA¡ß%ôY)Ý4þSˆ©ÀNìÙ/…F²ÕyîzÂTŽìûqG5”QÙnOs9U]ò¹&Çd©ð«Ñúº 4–Å2Ë.¦ÒÅ‘¿à\O¦`€u Ú^ 3º ¤­"Ïwj6;AAÛÈ£ÒýÇ*ÓûôÝÕP'W%‚–AL²G¨¦†<üX¸Jy*Íì þâRD×½7Ž_ŒÔ)ûÞà›På[)IN>/õßpDI‰\H‘° L—YEÕ¢å…V¨á*vQY/W̪+² _KÜ­p;”ç¤Çêˆä.ƒÏÆŠ®¦ßëæÀ[âJ â(¼T"Þè’🢡ÏÏg©¥M@GÙlÿ‘7.¦%@³Gÿ_ün·”Úúõ•  —]É&ù÷ý±ŸIÍþ…þëeTÅ4¬pMˆUÆq&W_Úã;kœ@Üf«uŠWFÿfpiúl´ãð®rÜÉÕ[FìßÖÌ„5ºk}LÛÙÙî\fÍä´icOçæ¬6|÷”¯k/9cŠ#$z€R5¾|ÎTÅô ˕ѪQõç¥è>’ï7Dm–󫧪B»ñÌ !Ä;gn0) œ.Âôu?ž-kɘ³ÔþœwF¼Z÷íÄøG9È3¶¹|Yø¸8’û:sš5‰ôk‚wüXµ ×çI‹ïèšF¬øÞ¿š´¤;d—áÝ©¶Üu“›¹®0ØJ!Ü‚—Bž“æ§©7[gÔN BäÀy¡yËjDÓ7 ºúoÌÈJ…Ÿ˜+’X¶Zð¥©ü¢».ß;¢F¥ ¡¾ªSêÎþŽÏ"KæJkZìO\Ýß>P º›ò2¥I’’Õ–¶’¼ÊÜ­çƒõ º¾ÝéÔo#q9ñ ba¼*…NAéΜwàsuΠö@¾uºìÕ@ ³}F7åéj¹ç+y¤AP½}õ¯£¹üIÞ ¢”E,ÚcyðTë•󕦢ä;"eŒ0uýVïª-¯ß‚žº–ÃlJ¬žR×6xøéxû—y`V(MÙЅ퉩ïàM&/~gGÐņ4F,çÚ‹lJ§ì+þ¬$ pm¦ûÕ±úËÛ÷ý,¶+×;yíVù—®uÕ…›y¾ËC›zùÀ]B>"ìÌŽÊewmšŽ Xy„ÈrFP]¾'²ØÝ¼èÅІ¶ržv*W,ÍÝE…šàoÂ)–q.± "Ì—m]ÙÀüÆbGÄ$ybW 3iM!ˆáºådô£6&{r‹œòP0܆Í`§©<6R­É;8GŽìѽ GCz‰H_š×])„yȸÀoE”²B~ò5K‹ÔV0§ÅO˜¡Âe¸YõYƒ(kÄyòYµ‡N¨¸Y’íS¡Â+ÚSìAü+À0Û5àÖBÑ|à¦WuÛP4cêØôÙì­u‡­7ÍÒÝN¶Ñ¼ ù@õ;^éc ³üL°Lk¸[ù·æ}ÖÀ~­‘¾mlýìÍĉ°Ÿ ÊDµ“[¡8íNhûóNrœ›vùÛD[}ñòÁ&9AcºÆÁnp¥<Æ0o!3^ KoìœÒŠ¥-5ÉP£`ýMÞ•Q?÷NY8xŒHh>º$Z›92[EÐnhŸð®Çn¥ßèk•g·ÀÐ`ì4;ïaxçNrî»Âë ®/q”~Nèx·;§%Í!>ÆU [ŒH7¸ÏâJÏÙ{ÅmF]Çdb*Ó §%`+ý ´—2º‡……/«øÐÎy£’v]$¹G”Ç\üLïKhá,7”8“u‡T”U(–é½g©¼¦Z«`ùA?—bQn8íáýqGPÆùÿâWJ‚!¸öÜÕâ¢èÚC‚Yù¯ªÂ£Ûìˆ/²GÔ'x¡$^¡™B8=† f­èÃf v®71«/7KÆ¡ž¤g¿Ÿèùê¥CM:ærJÀÙ¾fŠN&òŸ;g°ƒé7Œ{ByŽÐø¶‚7z“î)DP~XÐJú'†ðZÕ¹‹âë\h˜Õ›˜÷ûÙú‹ìBz8}Ëx[9Š’%’aЮŸúp¨Òë—ÑÎá ºÊ-AÂ5\Ådü|®Tþª6Ov ü{Õ¦ γ¿£&Ä4¸ºå&tdòøíhèy×áå~ZGFúŽD :õ 0-Ó¾ñЧÛZÂxP×ñ›Õ; h³˜Ågkɉå‹u»+’6ø Ù>o›"XNW¦)-9ª·€:óÍôŠc÷fa,(-6£^¾€£/#Ù.|Z.ÞzSÇöoÛ€…õö|tß/‚^P.ò'afªÿ‹uÌÒ°ÜÚu¼èƒð¸B0g(–J*vçÐÌz§Œß%5´{øœŸEw) ƒo€Q¨ ÐìÇ8t;×Lþ¹óŽDëœF>FO“ì ã(CÍ·ªÈW¿@èÃ5A2>é¼#í™‰Ž‰91e Ëè­*æTX$<° mË[ü`úZ[È>~û œ.»³NTM©²Õ*5ƒ(Wœ*-§4©ðõ<}.lf¾Vœ£#vÞ¼ÐÆ*ôøÙï S¬ú~NèF§ˆ•ŠÖ;à®î;]s3ªi‹Q³öP=é*1ôÈ5ö›–˜y9p\ív\÷>ˆ2ççôïÑOÙ¿.U£IOÌ ž‡È÷ô/g©l<ƒîÌëæ›á–£6˜Þ¡€ýt t‰í<²@Ýü1¬S,¼Ìëêgd:cG}oý×Ì#W³ÄÃZÉ’¼± <áƒä0K«èü7Ý.}¸˜BʹGû«˜20KÕ= íTK~Í>A©YHüJ©ž€À«ÓðíÅ­5â•!æ¯õ7VFµ•ÛÔwÕÔx­¹ÿdÚ\*´5¢“ª¨zû<ùè±ÖÚ÷ñ±ÖbWKA£ ß4ÖÞe}ðä€Çˆ ,ªÅ¿º_x—V½d(9 |ïoç†øöäc“r¯j6¤ßt;Rœ¸Nè©(BßÊÖÝÔ~u|IR†FsǬñv±2„GçºùG ï&ôëR¹ME¥ÿlûw'gß—ÎÓÒ9XVš©õ;l.¯r-9¦ÛÔˆcÐgýšüq3rßÒn3L‚ Ü06ŠÚh >7ãüîQ–Ä_ݺˆÐ;>ð‹Pѱƒe&@!ªÞp%¹ðµÐ[“ûNæàüѦй!ÈèVw (Ž?B6´É³ÿ-<ÿ%4„>Âkqøö§ ƒbÚN±ccsÆ•þrG›i|&“ņÓBØ}Yúé°ÿ‚Y¶âFã\IˆÉNâin\P#“Gꤿûa:•ÿ h£¨¸ºÙÒœEÐFq¤‡Õ½Ad´ªÝ"›¦-óÂ6 ºt²·q¢G§·?SýÊÛ€Äfí¤Ÿ/ƒÉPîeÍÞª¬b¬ëñί¢QYÀ§ÏjÅåd,yý+±+œ&VüIèk…Г‹¿4Ö¢˜þ’ô}ž#}› ‹·µ¸CÔA¹ÛX»ïòïu1 ,ªÿá²Éྨ· ®0U¥ßA2‰JиTNfMªø˜×)m‰éö`Ì â§ç-g§€´z‡°Iç4ˆÓäQÏÍ>Ý£¹÷” à!ÐÛhgƘ5/…Ru+z€<Ñ¡í XU‹!móLTòÍúQÓ;{˜ú÷²Úê–á†>&þs‹²8_pAY7ÐptÝ""sh~QYtš»4Í…‘ö’Óxr3I´BB³cœqv”ê)0ý^>?þ[KM6¯Xésk%3š-"|Œ/ðnüIèÉg:ýÙß5D˜]¬õM÷¡Sµv iyš ÚnR|¤¥¸×G†ÔWõ®™e|„XOìŒBÐéÏðúYð"¡ÅŸ¼ˆDzí¸ÝÎà“HõöIãxõþ¦ç°ÿ¢ôú ë}d”=_–-ç´{¹õ[I*zf5!Xaè]†wÎúŸ¼ÌÜúÿŸæ1Že~ñH=øï¯½dO)šþò‹+£?2´ÿ«2¥´ðM5ƒÏ`;-Ú3&@=­RkÚ4ȼ‹ì>]F+AÂ4x:~ÿ»Yüf?(ëvfÚÑÃð6ÊZ,ßà¬m¿¦fMöžªã`@™¯MNàmü|š½.éÙƒ>H$ÿ¤ó‡)t pU$Oz¿WþÝL]xn8ؘŸ+Á¢É,ÂlP<ÀQwW¨£¨ä¨‘BA™8Še Møf&ö‹awâV× *ë§v–¼£wÎçóú±7ߤewã!p½7ä!)å gvN¨°ZðÄ~æˆZAk'ðIc±b¹úì“ø¿þ¿kRݼ|Kž«c’íÕgCí„’ŒË¨¯bô –ºz0 &N³ë+µù5²€ì 46šÝÍ)äãh[èi¦•r^SÏ¡<¬ø@F$Z›óEóΉœ !÷#D‘Ÿ›i&›Â+Mˆ6q ÿ¹„_± Þ©.â -N½-kâ2l€ø’UÊKyÂ5…Vqõ¿ÿÀ_ŽVð kNöjš›.åh,±™r¨+}tÝÞqzQ5DýJgŽ–EBe©Qv­^f™Ínêéà­k8=V„DÓ$!†¨ô‰8öd¯8]¡ð‹6¬˜— )n×»š&üJ†[ß3íLL——„øñFÎhwòc'[+BÖEeÚ?YÞÄwÃK15É3ï_”ç—~O´‡Žè×#µ¹þh é B(“.OÅó$8gm•BÇøÐÉ`zö¡*Âqñä¶ñ» ¦0 àã) [”'ÚßXK5ä®Y–äüçÿ‹±CKïRøCS!…w%3Ni‰×m(Ïa—K9øe^eÅg5ï¤ÕV$ÉMp Ƥ1Ö”†w°˜:ôv ”›ÝÅÅ®o ¤㻄7vÅãP)~”ƒï>CtüJŠ2¢ÑI¹ß>HôæFMEþW=åÿ” ˆG=ø“˜©ÑŠ^.9Çê¡Ö”³”ÅKòÝD õ¥ïÆ7ü*èBq¨kt í¶nñˆh¤=@Û -=ÂŒ=ÓꦄÁ§»ã=4e·Ÿ:XÅ÷v)hò‰n–á|šÓð@º% ½MÐ# I¬Ô&. é·ÁQA¶w¹ZPݹO›Q¹¦Y{x€RàŸ©">­øÓ²8K€Î%äl‚¸#¨gHæ”YÎ4–³Dcè£æÀ@ Œ¤[Ë…2ëLmÔÅ쾺•áxZüIbÙ8òi4/x]˜¹¢í®âUc¸ì­]‚4âD€IM©)RpÙÙ£Vò3ë·Ö2ðá5ÊçŽ68_Xþ,½NM ST`ÿe¸Dk^êÒqCäšeé±´D7Ý.½3ó¸]æ¹<Òü®gälïûº$²Èëôûÿ{?ÓÕ`Á)-c¶5üÆËL$ñðñ:Ú3{ 7ÚuÃìì>±Ë²”\èÙYú•¯oli‚û=<J>ó6jjÙ[Aá—Ò€9“Æ”xéùôkp>ºú¡ù¿ž‹ù{§Fxß/¦e6(H§#Á7Ç-„&‰Œ¿7›¤/©—ù+yÀíüJ2ôb$W0šñž¿=›p«\\†ù©@§¶(nKœaàúI—Ú<݈a×m¶§`4(Ù£à;y°;–6§)§ ÙŒX•rî+’¬ b^rØŒ’—`‰@e"+äÏ1QṬ^ATà Z#bB ÈžO¡ —ôÑaðm¼‰üœÂSü'…$š«ù„i¾Ã½Ë±8·HMisypã/&ý6MÚí¤¹±$x*»V¯˜6½‘ª/nv+ê'¶Xº®§éÄ¥üp^7{‚SwH»̲0Å¡ëU,Ú.KÖ͇*÷eXlG¾²= ôÒÉ7κk|/tïôüîŠ­í­¦dš¡XC¦I…spŠu5Üf;¿‚ÿæÝ–ûO¸`J¦”.d•‚ºyÝ/»x×½ïQ;esð™óöÀ—Äãá¶l#²Œ®Ø€áê¡]÷î„\™jïBÿMS-eU‚F›ˆÉ$ʯ'Ùu°á)„åc$ö±)ïÕSC”š¬:þ&ÇϪÊíkZyò7 \¨çÔãjôë`m“û ¥ÖÎMkE“Fž‚NÞÔbʳþJÍÁ—çËKŠ,{†zu‚ðýûé[Ðaçj>4yÏ< EA/o•©äxÂJ‚£Ç’ÔÇ?”ùŠžÎOdŠüðлjE™€ñ˜1Hù[ŽEó{yï~)|Ú’ÎíÀêNQ&ºñx6 ÑKkþPñí÷i¡ÓÊ“áÓ×»˜&s´Wu=4SʸRøË-!Ó©6+‰èÍÖgšßSo Hn1’Í4m-¯DáÄÞ/å2QîNˆ×vÐïªùø±A"ª˜a+t™j¡L{ÆA"6^¡Çêzäf {™ée§Úzß5Ь‚æyÔéL4š”¿räÔÁÞ~€ÌÂϺA1æèÖŪ…¢ËF×:TY=àøïtÛ1pEð$f…±ˆœ.ÁRVÁ>äCglO„ü¯±“-î1þ÷¥­r±Ñ¯x8~bº*¸ÿÊ$à:BÕUq)Pï«Û“8À2nWüV³æÍGíâg®–Yq>V ¶}Úo¾ü×bÿMd‡ˆÜ° È:C@Qîô¹‡ÍŒö\oq+FVAc›“ÈÿnVþ@H@!ЏG‹ZBF~4%”œ†­Q‚PsP À¨mÕ´QönûŸvB0ÛdÄC̰¤“ù:O’ ߈ÉfÍ8‡õ=[2«í²uéÔyîÔ——°s¨5fçU¡vΆuœÍ¥’O«¡âìº~˜w ßï$L¬JLJí èÍœ4%Šv§©ùvbÒ4áHlŸƒZ¦ü¹=xÃ~ü§\%Zâé>Â?Bî5ßCÃ3KX¥ ",Pâï(Za0_N¯m¶‚ASTæÃ´>eK‰‹ÕPRJÕ Î Né1}‰\f×G¦# ô"óšÚ)ðúNeÆMM>çuz̸ö±¼”ÊåÎÊü:RgkÿÿÇåo¿­§¬ 7O©¤½ºè"cÞG‰‚ÔY§ðSäø[«±§Íª´×ÐÒÓåî*,mÆISiWLS ãR·¬žÁ %V]µ^»gª²üL©Â¦Šñð¦Jȵ@Ó„CÂ/YŽLŽS4ÖÈ( æš@$_2â{!Y{ öuýfëô¨/dbxJµ‘ê(ð›‚0ð;l'.NÁa¸‘'è’‡Ÿ8{-5ìZùøã†YnKmµ¿ÄMÖoØ2‡PP z•m‹è'a¬Cà¦Ts6M¼k4÷äOq*¸¿w64Æ ªÙ…àKŠã’êÝ8ÝŸö¡×_øž©ÜR!j‘Ë8<;ñüÁ!°> xéÑ£kÿdÐ6Î8'ÀUN!ñÑ¡ùÚ.ôOÝq;y ôƒöf>™(ÌL[ÞÇAÏ„8w™@–Âq0p¿U“Ée¼ë«£ö ñŠÛõU«rüXWÞÇh^^I›ôrKjTªÈÐð~ËïiÁþ±2’1§µDaåå%¡Aîôccx$—ž‰z\“™Ô]LkyùiÔaÛä{ ÅÆ·/~ö&uzÞÕÒUÛ¢o:‡3¬ £Õ-å¢ (.§Ãbwxœ©Ós~ÿmsÙ¶æá2eUèéñÍeüdQ˜¹4õ«kLªTr¬ôp¨Üèm Þ˜g§JŸŸeJê®Ê¨óq†G¨|,Ì1ÁÚ/—çLìŒâ²–úéÀ¹‚¡#n üLò”ºz@WGÚ0˜¥7L7ŸIGr.áUË©u÷ ŽÏRóf\©)Õ;!W¤ieâGš‹šÒÛ†äps¿׸8¼YI5º…¹HõÏÝx]GÁ(ÿÙc>þØ[ù“ÄÚʽ,´’!µ {¨«öÚ²¾û¦ç‚8’<‚¥GPt»k¬‚s³zµ¡Mçî¬+ÍÞ–ñµ°ppôWtyNxE¬i&Ùì<ªAŒF ÿ8gw—»§ÕL<³w.9(Ï “#ü?{Ó› SLmæüMb\‹1z:÷¸LãœôM½JßÉDtïëæ«JVïg™‡N¿4þ7GtM¹!p2TÖ=M^¦G%Ãí)טu»¦ÔMÏû*ñ%›G@ Õ•Ò8_ŸÚ1soÍ]˜&N7¸}祈¨”ŽGWèab©Ê2¾¸iî±jÅÍà‘’¶6%z’ÖÌ©zs’˜‘*Ѻ¡Lmæ.èš›uä=Y“vPRcÐ5!ªÛÿB×óÿóöîÿbâíëéëâÿÇÓâõÿhòïÿÜìïöÿÿüIèã¬òZ=®Ýú= ê*Ì@K8£ÏÞƒ*Úö]»÷Ó&dy7 óƒ{öµLITR¤§Ÿá:ð*œ~#îF‚DØ*#©9—îòÅÐæï‡•C,´ŠŸ‹{Èš‹ûLב-RÇn#ß_¥VŒÄÐèéõB_û„jyîm1¬!–àEi,p,ºÈÛ€·L¸—ßæïIÝíз뽴ˆ­1‰gÞä6‹EŽkcÈWûÃ(› Ý 5š°/²`sz,à®]ïþ}ó÷߀öË v£”€]üñ=Ÿxlò>Ð~÷¡ï.ö-1üà}MÎ>›/)2·7Uá:ïëDl–³l+M€¤ˆ¼»Î&ÏB¼÷ ‰d1ÄãUÒ2p#…ºYƒ~þâwP¤¶c>SAT¯ ÄðdÙ;A‹Í]‹2ÛZÒ¥òpP…–>ÊHÃ]~X¥·Ëjpt:¹ö«ê¨^„ÑæLM^M!'m»Áée/R¤dv]£wåÛÂO()Çу©)ŸàT5½$ç_t xHD€Ã¤´Ôß÷ŽÅ)¢­³¢ÉüM¾jÇžïÔݲÈfì~˜ Ÿøo†Lõ—ëïB∪o…K*¸;¼ÓŠé õ2žêp&L ,ðð¶Â|8:‹À²ý˜†_q¼0ú£[ôšEXÏ*#2ä“M‘=>ìS»N¨¢ìhýýñhó:Å‚ñ_”W¿@A0^tÕ½Ù¿¿5R&k˜'OÁ8Gü2ÈDHEMŽŽt"mEÄÃÃwb˜Éõ†K;n/ä„g»C*¼ 6£ƒv­ø¡]§â´O–êGqztÒÒ¥®Z¯GA¸püKœÖš”Ò?dÉËÌ»¥ jl] §\½²JoÀC3÷ÉiÀr-„—äêX5xÁË!(h@VFm£ëhsG [%/soŒ§+¥îÌ™åÐVÞúuÓtãO+M3$‘nfUKÌ‹Ñ7$á›…cÑ]`v¼HE556Ç$]£àjîé…FÚa¼ƒØ„½”é–¢Ü.ª à*pËq´º%|9~Ya•˜2æŠ;=ä&»^Æ—©_žÂïT§M† P "ã4øH÷Ô̹õ£cÜc˜5µS7×,ÌX¤š“V#ƒp—ŠËÀ æ³—¸âÖtüJ wX=4ò {òyÆö@ïaUxTëQ«£—v†#r‘cË]Ã]ÜÍPÎ õZq… V4¹´ðŒc©þ7ªP‘Ù016±ÒçÛLÙ^åÐÚPWx?šs !JUŠyçÇà”ç`­ÑC{‰el, j¿œ!ASüøÊ(.† ¾l[çù¿[#•þY¦ÚÕy< äóék“§ô Š­+-øøÐ¯I#|³yV ?½œÛý=q#ŽIÓ‰“n€ý7|—•®±×ä`Ï'ˆõIÖ'B¶¢ÿòš9‹É&Àü5)WâÖÍH„µøcs<諒ªû\ -þý¹[³cŠøN¹S-ÃóÓÑçZDg•œv‹Øpmß ˆÝµ7> ÍVN]3lZÆLú5Ü©Ö.±ÐÓPRv ¬0:•.M6îÇpŠ —ñÅL±”'@Pª0Z(ÌÁbDä6ÑGŸõÄNU¢pƒ‚™n‹?ýÖ¤8 û›¥×$5¹‘ Õj‘MÖÌ\~gÜøÌ›ó‡U9S7Æ‹‰êÔIÏV.èkißÝêrâ´¬p²í‡°²HŒg±ìj6C¡ËÕ#ËÓüÙ¾«Û+‚ã§` íæÀNã’/Oô-§5Aþu9wÀøÖZ¼fùnÜßeg¥tábúDò(œ„uB^( £Jt›ßGšht&¿•ÊÄ÷Ù‘êBëÍ+0¹p²®æ "$­±ÿ 9ü»®D q瘈úgõsè%TÉ^YÎwÕ/Çt¾X/ad¶²³œ"¸B•nD2 }É ÖCŸ*AÒ‹(•¢FÊ\8m°%Ô]ß2m·Ñ‘sÓ@š&eÚÂÝòâöXôB%UrGb>÷¯Öó}Ý@6MAÐFŽ’Fàqø_Eáíc¤‚ÒKüÙÄ›bÕ"#ÙÈÈëû§q_Èë‰{ÑJàÿÁ áTœ—IÓõö¡zGÕœÕLH´µiHfÒÒÉ8lO ÜÒ¬°‰Þ,Å +ŠÜ µ_7Ô²ÇÚÌÏÀÄ4&hÅ ÞÒ‘1=;´»ÀåˆËèý …Rõ¨Iî„.»8q26/l¾ss¦güúGk÷¤‘:û-O…r^d­†Í4Ž©³&¢g›{§·É>Þ‰ûµhJgM4ùàãÔ™_y@ûUâmYÜ@2-×dIí bè–xÈ ú¤…'Õ³¬^s;*Yë‚ZfYŠÒßð¬"e”`Rü"Hü{L[¥Wa°*…ûKÇ¥5jáË( ¼b0T.¼såðºR¯ùBNÝ®BË¡£Ên¾Ù–qŠÖU_ å÷À©¾•Ï^òE•¥æÅÐ@vq±~ž T`¸Ë‰•KôÆËê#ðÞª¥ÙxŽ|w^m'ú©«ÉÓc£®:$w£ÉL,GÊ™´ö£Üz%`"ï0¶L¶.ZŽdKl^ĬU9LÝwÏêZîþ‘]a#Øo$@€1i«®þ»nЯu ÓݶΪÜJ SÏÃM’E'xVÏÿ9ðo§¼Iìc¡„@"]¥õ!g¼>’–W«¤Ìé6¤ Øl7WÖö,è—O¼>zëÀlPgO_SK+ :Ò' ³‰‘ò}ðïò¥yÅÁ‡Iÿƹ«U}õ6WMþôr®}ò*¸¹ ³™ãòwb¨)Þ*²åö²TÏ÷ìÎO–”¿Ða³1¼.,÷!*¸ÓµOðº$g¢0.3œ’S¡~ä¢zƒ‡ Cšù}å»â£5cÝûþ×]¤KNƒ™Ì@? (^âm‚>)0¿¤3R¤;Ó;ñÇПèb!k¶§è¤Ž‹Î~÷CPŸ/SüX—sScçÃИlC´ J¸~2ñéñ â^ô>¢ÙøP²Éîc&î9wXà•{;l2¬¡nÀ®µ󜪎6 \ ¿Üt0é]7’>œT°8]{°GÛ.È·d4=¿so ?°Ó‚¸ Yà@¦‡æ¬Mø¥‰}[žÐu4Ë´@,¹[{tË.Õ Ï5z•»¿¾eÕ‰ê²ØkŠ' ‡Ôy‰]]½8ìYº¸ÒilÆ|„NÎ m`FÈg#nð:Í–•“ rÁ f¡p+kW¦Ó÷•?úóŒ’μlKPO¬ÏŒüIèÑP(ø<²$ÛZ½ÏÒa-ûà @tÄ<‚b¢J\8ìñ§2xx Yû@k#¶†¢ÎŬ‡ „ÏiejdÎ>óŋœðé0>e¬~þËzZ?Œ ©p‘ó/8¹?‚ò­½™Zu`õò‡}¶±#´õ8ó_z®Ûh|ÙÆ+õ§*’O«™q‹½e65OÞ-7õ~tPÓt€z$–ðßYÕ¸4‰7µ‚¦îÔ Bû#LŒ-íÍ`J¯åFÞ†yß¡À+a÷züîk‡+©±3:àþ6e•¬àµa#üYã)"x×(`v& Zml4ö7·GqÜ…íãÜ.“ÜåÑðiÈ,Ê4]Oùžž¾B£jå>h g® RË» †³(Ï¡÷e´›È›[­Ï¼>þºLñß#Ú’×þpžxö}'§,”©öz3óÞÇÔq=~ߢ Ͳ5ƒ)1£š€b+~£É(F'gwc° Ö-pG¹ƒeÃtwî¾4­²Ds}‡Ÿ(¦z1²á—˜De–Š™+^QfP3È€ù£Å3ôÒSDœ~³ãh¼É ûp4äwmÐ#wòÈ@ü6N“…¼}™¯ëƒŸ·‰ E@´öa[êFt8ïq=¬Ã`([£+ÔÛk¢ª¾ëOÏiS.p»¯óªì´Èð¯VV÷@‚Bt^D›{y˜€«}¾J[¦Ô°Soæº?æú›ÌOPXx¸#y&¿ô– \îºÈ¹F¸rÂÃúHÇÏìˆýN„É\‘SÿÇN«wïRvr|R:’ ÙóÝÜd䎉yËjôÊà—8ݽЦ”k=Íh]>Ïþë'>Éá(Lß|=þWKjdIŸÀ+àù„í0©¿yuVú¶££âþIÒÕºP¾i·. ‘á}ÛBέhìÀê~->¹ÄÇN¦9Þe¨ù¹~!BQ=a=W0ú¿*P`B*LßAˆÖ$ º;/ °ä?w]ÖAIV¯Ú}ÔŸ+AÆT›nû*ú;ú\FðM[9YA­}p_Ùoçí1þP2u$²ž&® °i€ÌÑ÷xx벞Zýn»eú·X|u=Ó)•ˆC…9ÏWdyè «í–»ª:uîyø7çßaöž‚N@´] ÅrU›ë£ÖsF½sB'¹0ÒE–ÿI×®›7ÿoÕ2I™[½*¤Ê¸+jXÑj»_{2³?ï˜ðM>@4¦Y'ÅdÈUüXÏŠ®Op”¨Œ¥Š¢ˆc°2ÿVê±K]§â:¥JpS…ž™áÉ„‘á/b-Â0^_© hÅþvØÙ0EÍð.k?#„Tióì¨Ü“ FŠ ä:£yMy–“j1Y4²,¥ ߎÓÞÅ:¾oü¬ZÀëg~¡_cœ­Y;fÅA#}|¥Šjö! k '@—n¡<™ò/Øã¢€99GÂÀ›PQcpÙ\Füöºƒ£R æ3mGjrŽºP fªÑëdkQ:Aá®T‡›Aþ >¿n}Óq‰¼›Ü»ÅÅŒü„oÙÿÂ>|ƒ`Ë¿öø)º Ÿ[˜tÓz×ÅLAQéŠJ馘ü9†¬ÖùüPƒäL¶ÁꡚXÕÜãXg2¶^7ÊÏJÓÜäcêüˈ·ÔdļØ+Žâzt³7$þÈ ¥þÁX†ƒawCY¶?ú ‰]9gyo9 ¼~’þY2ŽîXÒLOÐG`BèP°N%µ³I[3‰‹º m60,ú!2åP+Úlþž9¹9NsmðƨàäW›˜Î/,b± )²*ŒÈáî¼.¼óÕX[šÚZÿ-k0ü†kP}Å=-ÕaÌØþ{Iˆy‰Ç¨ÙÉ[L=ÐKœð_H¶K|J– 1Ãk5á&ᙚ±ÇÂѱq=¸Ù/òÈ ¡u†5¦u~òÖX—´0ý¼*‹…ÔɨGRªa?q\”êÖú ÷\›s7ý·2©d4%[hˆD ¦ÚÓ[;7¸(_“Æ!gôfÈp SCÆE1¾‰nlB­=é)ÏÙ]v×<Ð*YyW+ÉZ ¾ pKñ³Þîc•x~x Þ§)Å{<&Eî[goííã„!"—PÙÿà&MK¬Ø»°üMÈ~÷Xšž³ã4:é â– !ÙlüƒÒHo±.ÂjïprËŶ|î:²Ðß=Jþ{û—ôö›Ùˆ|oï‡J‘'Ú‚ü®~ärÚJ/êSH7ñ×È GН™ÏȽ€!yjÉÁÝoåG fîá$Ö=¼Ü¶\kÀ.rÅL…Æm÷ËÒ»Kgä1œÓIµ7_H¹V!Zµ3|ÖYá>Ñ—öm Ø” jBº¾?ÉUzMÿ]ÁëïxŸ¡Î5w?ïn£|òa> V³}½ÇIU{)1©ü½Ž²% Eº¨à$ðRÕé/Dk 8Jˆ^ì„OxR¿êß!¾2Áq»º*Æðw“¢’˜Ò{‰Î¯†¸þ;-T4;IF ‡:õ˜Í³2=¶]ž°m›ïGÈ Fw©Bñ'Pòþ;p±þþGh÷}L²Ù½>ü/ôoq× jNm²#0–[Tö&PÆ4—3˜ù›©¹ è²[ׯ7¢• ¢àbþìù}ù€)ö„HkÝW¼Bâ=üéöI ®À'lRlv€(_`I!aUˆÕiG™B1¤?y?u â¢z,zî]^©‘]°åÜ.Í×}#ï–ù.Ùg•›m;×ó›h°Ï$–Ô¹^`³·‹ã¸­ƒn°?¼!uÉ'û°-’—U[.êC;º¨/Û倾‹c Ó¨`è´6Dæ/ö\Ú?å¯ft2vífŽ(ü|§Ÿ Ç󟯆M=ˆžÃüøèX[™7„&o§ÌÇ|VÒ¢4gœ”_ñŒ5*‰Sz'X/Ø~/ÃØ„K$¡œ°´>Õ+\ëó=q7]-mn”ŸÅuh:lä^ù…ìFt»ˆÒ`+ç& ·Í2Ãq3Ê.Û¯rŽÝ”F·I&Þ‰ ý"ZÝcÓ¡2² ¢£ðéïZäâ‘Á;€:Ù¢rÝK× ÑõË¢L_,ôptž0ÛH3Ÿ±Æ¶CéY‹ 'ë&ã¾›8 0øæð2.[íUôðP×FœCñý“,ÐcºªÈiœ˜.{¯­¬ÔöÂa¾„¥f]+XÈæ”—~î¸2›pŒû»m·=àø›-#½+–n—¼ãD(ž>S[æd£œ¡ðëìüM4)ÇAµ]JPúR(Œ.¸—š„†påÁµÛ½ò(÷­à³à;¡OÞbÌÁ7ŸAéDÆ4:ÕcË)/ýXÇN»ðUJ_Î\÷zÖ~î9uÄC“Ķ—¾Õuß—À¡ ®¶çrñ^{¨cÆÊ-”HÛð”ÃÖiœokI{u)ñì dð-×J}àÐrwÇXklß +Q0ç]X©od.Õ}ÎE˜€·l['1Ռ݊U”ZÕ7Ñ0‘Õà£ZäDܱ ¡ÉMc‰Ö¡ÕƒsÜ…eÐüÙT/v<—z‹øÀËEú3j‚ÝÅ1 2Í_X—M’̾Q g´ßÊç{P]iã:1)x"ýûp*uÆ0Vûû.ƒÔ˜©Í!Õ»"9tJöõÉ ¹rÝ +Û½±IÂRZ¸øÇÜúèuj—«=©)Ž{ ò ¼ŸÓßæIłڈ]JLTV‰tf>íH`xùþYWÈ0ÀåM0^º5âÑ×ïÛ[î­¾5¶„û«²KüL¬ÿáè0Bd@éÿÌ”$7„øM=Å‹=„ÝAÂK‚#:m@5úíÏk¢|—û°$Cé1+š•4`ǘgôÞ×F5ª…EoxgmožSÐ,Rê^ìÙÊ¿ÊY–åºPѼ*Ö‡,yGW^±“OÖWÔkN(zV‚•_arL¹f3*S …¹á2 LIsGs’q㫲hv©KYæ÷"nDô§§÷Fmïù #êÆÅ° ¤ìm:9Ýw¸¼|‰ðÏ=ÏR1̧@‚hN¬{v­úÀg–¡(o€›3bɳ(wþô €ѺÆÓé†úncOÃ_¹ü¸we"üL½²3—1P¼H†6ð8Sȹšj›A•<µ#*VYÇŠ.¤‚‚â¹Æmy\¨Çt‚I}%·C€m7ÝFÒ˜pÕ)7yq‹Gf”Ù)Çäû¦‰¥Ê½šæx0ÖDþ ¢çð ãÍšP°m;¥©ë7%ª sY+q²À=ë«ÒΦŽñ?gƒ¯uWXéÈÒ{Ä+~·¿µåf6Rd :·w÷H_cíÍ훲Á®ûÑÇ¿öÚÔØPšÊêï2žáÆ‹HðV˜œàxÆ19½ÅÁn´Ô*µúÈáHït>Sóó—éLÙÖ|Ý0ú üMOXï Aø[FzÀÿŒýÍ'ø&«s"œÞÐ,%ÖQTn(üáâ¼çð4ðíÀq>/i`;³n7’ïfÎ ©õ<Þ“nʦSfÌ cL®‚ ¼ˆ×L‘¶R= OïͶ5kü@èòìn3Eè/¼ ';rD_«÷ó|Ñëæçã"iÿ®»Ã_ƒF,㸩 Û‘Õ:=7Å£‘ÊeвUiú]è>iµŸúàiŒ«)J¿Ìºo{7ì¨Â±¯ æêÔ üëæ‘ë.3ºY`¸M>?Š* åŽrШ mÿªuŽïY\¹D£$”òÓsLüðÉ÷#: gƒ£O‚îa:àÌ<Ðuž¢}…ûú’åCØ7ì *gJ8–ÒIš)`@ y_ã­îš-UgÐ:Ž 4×/%ÕÔ,9Åmr~§â—Oë]IG÷´c«·@òÚ¯Êo ©e*Jv­&ð œÐÓ^ÞÊQÌÜ`èGýbãé6«c¸Ëh±Ê)v¸CðàȬw.2PŠTp›×‰ùZÜÈ\­ø‘‰·Ûc‘+¾$ÙÁÿœâî…òÁ4ÄEè’^|\[hႚ•|טeÏâíºÕ ‰º=š¶Õ’uYöû…Ùü®|}ò|i}=Ö„Ç}²NÍ”X`†Žäþ22Ù^nÍJ0u ûÓ·š¢ÔG"WP8ç~ΚŽÄ\ò*C¤vµ"ìòÕ¿DÉrÿìêp*í2³A¡nÆ ì~Á5kgTgD.\áÓy“&pÅLlÛ…*= 0ðX6ép¹ø)çqæ ‹‰á‡9«)"yȰԔxðö‡i“ËmqbµŒ'•m¥gâCÖ-ùnÌʼn† FØ…ìÔW A0ÜJø˜Û ´'ë•H?WhŒ®5a!¢¸Âø%œ­)ù÷éV„ѲTˆ‡ÓvÉ ÛÜjöFâIØÈøO ÅÐVÓѵ !·nM[D[Y¨]iÇ´sÜhËÇ»¼Â$ ×ÚÆ²%pò2±]4¿&ìñçFD]p˜¹wiêïrU`dÄ 4JŸIŸþ½ÎYÏ'i¯‘Ò‘’õá]ÿIå@š°H™¸¸‚!9õÇšÁ¯‰|üXÐ¦Ž ¾9¶¨…(R:o¿€\&"Ž€~ =w$S4ãFNdÀG™É™¸xî”ÝtÞ·—X‚£¨@ŒAªÝ&óÅcJÛ[¹´ú„"Y.‘I‚Û)&Õµž=ª†Ü¥Cé!ˆ7„‰fD.‡4ªˆÙwrRB>Lyüß?(~E«\‚#«Ä E ´º(¸a¦Ü‹F–/ 5 „ÕfÍ¢8 ™iH,÷Î/AúGøS*Ô‚˜­3&lj:·”Ú,š¡³{îuÎß´øCVí-rþz]ÅÍz±~ˆú3%ÇA½‘˜©ò{ü¯4z°’7™ÃAb™{vµ9v‡D¦YfÅeuPo~oF­}mÑ}Á[ê9ÕRÉA7lÛìï@ÈÜ¥éÞË Ïeâ©9æ•þäÏpƒíŒ¹©¼Öwth—…ª—qsdòejûuªøçŒEù¯H}œþ uØ~ß{È T]¬O×+wf+""Ý¿ÛÒž^–O‹Fÿvð ÜA5e-$gà¬ÄýªP˜õXý8d³Õ/¾×ì¥Ë:{J…‡r»B9ã4¶ãýZaü”Tz+ØlÕ îUÛ Á…1cÐíË|»nH]Q¦-À3¨µ€Û9ü‡V¿UžÂˆoJh)ÊCª{C×÷Óš‘pNÉõ@ßÙUʼn€Gñà¢ÍA–×…rÿop·…é9µ¿*•ðPHžN£G&|Ã#Ý 7ÿ«'8´û]¤uÓ–uvwg¤2²*(úÄßLâ~Ę»¨ÿÞƒÄÙ†€iQ #É}eõ!W3O¬h °cçæÿœÃª…yáùºÓXóÞ¨’¬6Í£2³št–‹ì? A«4?”„ ì²dt²Î„KKáy;û”†³DùÞþײ?aANUœPr¾áC*e ‚µ2üJšÍ—ÀÊž4]öŒ1d¢î×4sØrOc²ß5¥N~ñÐ`˜#¤{ÌÈ)¥ê;uS8_”³¦KmË´¸}57IÅW§(g'¬í9ÛÐ…¬A+6Ùº,ÂCéªE8 çrjqqòêNàdAj©›Åd÷5ý>§^™Ü^Ñ©ÿ¬YÈL¼ûÝkk æHÍr‚í×ÑýÜoƒÆ5Àð8¦š$éO}àrƒS-zš€+«®}±h8˜3yqóÇÏ*#:m²«hOÓòSÌuÌœ[ÝPè&HK±øñð,`!}DîüJ…¨*Zš×Ô;›&¹Ÿv#@ÉñîÕLÆ0X~m>FN%^9§ù¦.|ö(¸…¿Uùò?®âô¶Û¯ˆí[½ÎøóC’ q“xX p+ù»"¾^Ù`©´Éõ–j fÌã0±³Œ[žÈþà‹&‘‰tä"Æs· þV?Í®óÏÛÆÌÍæþ279ËC™öRry9¬)xUfô{îªùñ/8Òœ˜o•v±¼~9m¿ |î_yÀƒ©i½öë,а øaäCŸ¥˜H @‚ÓžD¥Ó¹¸iù‡ÎKö‰¾AõÞ Šš« 1¦'PD‘ñ –qnüƒÙã Æ®5A®æ$Óso4(A:Ê—Ä2ÑbÜQ^޾ ªg’ÚM»s´s+EÚ}æü¥\öåÆ{õ8â¤Ò°Ov"B™÷>(’.QÆ}ÖMíʘɺ „+é_h]Ë‹ËY~œÁ¾ÿå‡ôi]â¡mOœFõ–™l;±ŠîªUM :‰×¶j84‘’p a¥K¼{#LÈ¡¾_ö «káWŒ¿#gi5G•ü±H\Já……OÚßž¼¯ÙT.µSð¢ßûû{n½=3[*Ⱦ3åfŽ1ü}aqq –H–•Èèd5¸®¡Lô$ljRÇ0Oáüé+ܘ5F\¼$">Å/¤m®;—k±P[­S:=©Õ9V^-³lIUhå5ëÜÑĬŠá±éššÔj ¾áw5^ó îüíI¡ÐÚÀK¤ÝÖÝuðCL@b½16*û#Λe½€*º"À…&†‡ðß#2?)“ÿsd͇ÂÜ3öÜ«Üa^DI—¹¦úK¹|•Í[!è ÕÑßÐsF1wõ£ôµIxæk=è°5ýžà»|•$´u¿‘µí®õ0&.ÕÏî¨v4UÃM`ínïÊ_pͲ‚&Üð))7!ð)ö±®¨Õ‡L ×â@(G­ì‹øt2ö™ÂBW˜4Úzw‘Ÿ ü—ä‡ úf®k>˜ÿ« à(¬ù’Ûª•z?ºzdÇ:4ÇVí€ßsÍkï«×ÂVÍö„¹ÑN~'¿I.Ò£`°(¢«‹•Õɦ®8ã˜âI÷²3¢×”¯ÅÖ¦ Åàóèi<âÕö Ýšä=VxÖbeë¥Z¿dÀbqþ¬ÎÞóЮ;@¶Ê5“DüXL0ÖeˆÓ`h¹©ÕWí]e×z0QC ß|-ŽõÐ[ Ô×·ž˜­–­ ‚wõý«Ý¥©ã£O-4¯`¶ G»Ö;Ú‡h¥…†—ý’K2θ0£[¾ Ÿ6ÙâVcÆ´ÞiÂæ ªªB"'Öy{¬®µs]^1.ož­Þº–ׇSæåhœß<Ê&„ îè%l}ìÍ7;»{+½ÄˆEHõïë˜\A´æ×{ûA¿ôB62D![’‰óIÜtð.6š-èTh44Z\šÐü†eÖbZƒË«† 2¶Ó*v“Õ„‹’­£Q_Î|m5"}‘*BãT»—+ú˜n uúÌû‘?.)X ¨þ™dBó»÷ÔÂŒL*B‘•{vSQ)²xŒô°N˜({ÉÒ´9KËJ(,R- ­¼‰¨ÍäÞ\%}C—ÂèPßÈ]ŽÚÝÔÅnñNøYd‘ˆÌçwÁ„&rß?J~+<ÙÓ²Ñ3 ¿6zjq€8ròŒÎÓ©æpƒ•Ü·¦Þò ŠýÉ&ÕîüâåÂ#%@ï;*_÷9â@_Ñ @4NöÏÑ¡üXK4ïKÍ Î<þ˜„l(„ÕŸih“¥ÄêØ¬Dм¯£ü5MSXŒœ¼2O-FípðƒûEÊB÷˺´‰À!ÊЪÐ[ü\,(CÈ·\ná’d=<Éuß¿%ùÅŽ6÷ø–Ö€¦õòŒ¸ÌA\:q#Ñó³í|¦cx;% ,•A;º@¼{ª:Ò™6bÈpsWŒ!¯ytêêEiÇü±ýé-ß;4¨Á;¾ßKÜÞ2'üydîôo¿*pÏýë¡ÿÒ9Ô:‹p ü×9¸£Ã^¹‹%^ò)0·ìÇ<§½ Û»¢Õ.ö1à,Ë%a"@Òü®Î¦‚¼€=è±#æ 'Ë+¨å€/Mì˜à÷Í¢Ê÷kQð×fVͶûX©áö2hßÔLŒ·¸ Z‘:àÖ¹Úì‡áà^"ëã«{<°Œ&¿Æ{B:XÌLÃý†B}ü£«¼ˆjÛAÁsÇ·¤®víÕÕv)"$¯_ƒ£X‚UUÂ^òa"–‰³ìر–ºëõZ4J™aé–ŽÓ«õÝBG°´éÓro†òHŽsVù® •úØþDGgF;ïíð nå©ß~LE¯P®ïz˜ä…µyù «ƒzLÅ!ø´ÜÙ®Þgé'Öȯƒü#¶Õ¦rjû²‹$¬ÓŽrŒ“²Œü;oü¯a”’ž_",áƒiÄs¡•}(îUJÅÂP` sáZØžOrð2Òº6á™*Ä­z‰“Pçøe¡÷ J¸ {ÎO±K²2¥ šÏ3Ɔ”ñŠ©q’üŒ£Yõ£fBëx Ëþw’Ùò(gƒ6Ïúü?N¢vtþŒC]2-b¶‰”‘r.Ex»:/1úvFИr«\¤dÉãF1hDëÅ2`¨­Øj<3*’)¨.k‡yìÑÞ ¾.]ìÍœ€Âuçú:…UQ9¯_’üŒÿžt[´ɡ΋„ /¸cNj>r­k—Û7w\¨O>ïü±GnQBpÓ¡ à·Ãièš @úHïž-¥>­ÁqJ5|‚JÚ<–izbœJsÊ:=-óÂlŸýgƒ!oëîAh‹Æ­éw¬_k…*ÿ×œÄ‹í¶‚¼ê(¸Î°K|íÌ–:Á‹‰;h¹:ÚˆØ;0˜™jê¸ v v\‚[¯ʉZ4/r:¿ý“€|Ç**|…ÇaU°—º Ç8ïe;‘j¼|FU² sªW¹*æ[äíP¸4FÛ™ 7¡JUkÐrÛˆIÓ›[¼äf;@sE²$½ýr6"Bq*ßJïü|®PfÚÕJ΂¡½ILû!µô ÆÕÉ,ZKµ­éÅÕ m~ñ¡AN¸Ïõbl"ç]‘¬ðîóih¬›©y@$óZS‰j÷ï­’RéÈñh˜:×ÎZÀJõìS X·,”„ÿT9NfdÉmÙ üº øZ ay½:.Mò/ùÇ{‡-|üâyuõÒ”ÆccüIƒ?”_—"ƒbÒ#¡,.ûXbÑÆýãŽÓÆËÆS·Ü*Tœ _“$ØÿÁàz²þ9¹t…M”‹¯Šo½Fƒ¤ÐkKi´ÐëÁU’ Wa–åŃüVX„ÎZì »u;#ªµº+.$~Âp Ù)ßá«‚àh‘ w¾I*f˜8¡DýùN›¿‚E ¯hF¢•žÍ ¹‘r5$¼³­CA 9øœðÕ‡ýMË‘ ƒZs_ìpö)§#ËO¾&‰ÌÉÌZÆSòëY‚ÕÒÄq¹Ì^ £òÒ󞃯±×¸§gWPTï.Èò°¼Ì"¶ö`ƒø¾”4x7Hlɤ£b €M¥säbšÍ¬ê‘~¹tÄžѼ/bvâ–ü4÷f›ó=$IíB°%9G(Ala6j±fd˜w÷D%Q‹ýì=ëü¦CrR/ó¦KFù3L ïuõIg–*£9bT%¶ U>òé¬ÎËdktî³T.ê룬«"¬è„ _«À·éÝ¿g r¥Üëßz³°ÝÚû¯- Î*eMG€¾Â»DȞ˟@øÜç”°§~Ð=¥BÃc‡ÀÂj³À±)ægCmëDëæ–gÔ6$ˆŒâ@3Ûâûu¿WB×e𤗶¨åïT°èQ Œ—Ö$"É.¢a¾ Çaãv‰*6¦ê]o˜kìü°ÓXí·p/>›ó-OLé|Ê Ô‘1aØÔ|€ò1rdffj©-Ô<«sP/ƒËŠ:ãd¼ØîÐ=Û}õ¡m¨·$/"¼ÒŠ ”1Õ-^ª*ÍÛß± Öga‡„§ªœ…L®/ñ°z\î%ȸ œN“ÊDÆ œ€d¤[Ó8¨f0_R­f¼…¾4ïÆs£:d´cÚ3ó „çÊæI–6ì5|¥ú"b5M¯+LÄÉþ±¾3ÆMÖõ¢Ð&àvø¢æígvUs,'!qYPç×DÄñŒiã›á)›;ѾÇÑ9ݱ<·Ç£Ý)í”Êr®üLÖ|ãëÝ„wLš÷ý7œ³Ø³phº ¾‹»þéˆvÍÜ~JÀ&K볂õ  ØÁS>ŶÝó, €Ž ^:ñʼ# k¢&½ÚhpLO¤\ç¥bR ­ gÁ:B ÊZÞƒ/É©aH'4¨«`Ö1yÖ£öµ xrÂùËÚBÔé”ðÅr¤´kuò öÙ¿{]•EÚrw+د³K4›‚»ìÙ‰ñ¼¾™?vØègÞ$T…ò%‡®ñcˆ«âÚrœ2åï,\Q¹_·œÀ/Õò®áňÊcõÐ$SY\>·5jÈüÎþ@zØdŽÙ¿þJI>¢]#ý@ü°ìtŸ„A¾Aí1X µªèÊu?K£!ì€x•BÃÊÂ\ˆñ?ðè;º.KAŒß9fêl‚œ,°þ‹xÒO«ëyúº­´R‚©Ö›*ëè}©´#-xÅÚ«wró5YËŒî÷Ÿvâ,–ü]–?(ƒAÏ”ã ÜôdÌÓ0šB™lC>üß*ÌÏ¢e»O[ÌWØQÅbèyš¿Á=§ívA*Kw£vs7¯g祛§C¥%ßß¼xçÒqÃ¹Š‹¾°ÉÔœ—@=¾" š]qœ4+¦‰½1Æè§~¼M­Ü=“ÏtÖN“,<´´rîü¯1ì6ȵÇÚRýv9+ÍÏÅ—-eAêÒ”‹2× s6¿£/<çvääøÏv}!ôYã½1CfND_Šl`{Çÿ¯NÛÇÿjþ½A§¿ÉГâu›¼Ê´ë,r¥µq!Lc«™àw3”Ù¡5§CÐo!,!9¾7W v{%W>,IªA6ìN5S{lû(Ô;ÕÝ<žÍ&a`”õQÚ:w{ŒK ‘þk¡ðSˆ6»Å¯e.å„Ë%®ívzbT]-³U|_f™ÓßGþ_ŒEÖµúRnÉÞá%bœð^ß.‹à˄럧ß5)«îàøÇ>I…ïOggS†=ýÄ nU†ê‘:ùÿÛÿ@äÝÝÒÔÛÜÞäïõøÿÚæåààÖÞÿ%ûÖØÙÒÑÿ:îØüðìÿûíþúÿ þùÿ׿èäÜÞåüM*ÕMtÙɽ§8k9 t™;Íß3ThÂ> :‘cI';þO]Uï$¤V{±®Ïëz¢ÆGŸÇÄ1½t (Þ~y¶Dßy–"is¬9è}6aL™ŸºàX©‰ã&3?Ûî’¾w§ICNO!†ï©Ô9iκ] ¸Ý´ÚñÆÁ±XnÙ†®¯OÀ‘YSvùø²kóË1];¾ðSc¡À6ß–-oieä6Ö:aÆxbs"‚¦ÍÎz—)æ¨Hº#MÕŽê”LAzc1¸¿É Úï”_Î6‰Hnlð¹žÅ "PBr‡‹&€OTùé¹Å''Í[œýÍüõ f½ê&®¾ û ešÊjðNG“-2²3ÆÂþ]/ð³GOa×ç:›ft:µ8Û E8›Õ¥i©ô¬õ¾ ®+G(Hßü’:D=OŒµŠKsœÚ~D_*£œÉ¿ü9¨ê}íí–ãþ™51ŠFW 4‘ÜÄxx–5áB4ò’'™Cê?™ÓèͣȣP©Eu˜Ô ~M>Ýû #dtóƒGÎ?ö·T[Ú$Á&+¿}/ÚJ@-àÈwãóØø@Å%ž£.Ãl±úoõ5u€lHì–Î\øº}–û8K„O·Èô:áx^.: .›õØ PS›<¢ùfãÎ ÿS”GÞ|Üw¨ ô~ðhE/€©‡ÔYÂØù.5uTÿoª7“A'üˆ@ °„!îžß¹{[DtŒªf ÄP´y >gÇR‰ü}bœdG›mùÎ oÒÕSrù¡“œ,ú¨"Z$dXO~8(¾SF¿äÙž~néGôËÀU¢³íø»ü·­am÷5;5y»>dzñ¤[x™÷–9‡¸O6¢m—Ïܰ¢êµ»–`hôej ú×õF4® j ú.Ü­%Ó=þ¸y/å­’Y~ç ˽»4uòö%¡ÒÙ·ûËn!&m~A£ðòi}KWÆNEsæ,d5^ÖŸÞÂϰêv€ ÖºT]¦àõn†7²ô’Õ7B…䳈r²Qè«ÿ뜺3>‡ÖGÈQ>.> vRÕš‹‡@Ì5=wýO性w±t‡RG'±çó’5»Sد®1@¡VY"zMTÀF/æÈ:©mÆ,Du!cûŸ¡_Ýnºâ›ÿV£ÍfÏTÛÔüJ48£R]˜¹p,BÉE:öéÚÀ!ØÃE»£P²ö”¡Å~½RqFéÀ¸U¿—(î_6ÉÛ_§EAµ` R9W'³úåàcšwÅ‹€¢@åš@ÊÛ‚¯A÷7”é6;8ÇÁîüzøho×êL$’òGºÉÍD ÏØ¹ŒF5'ßZèVGm£tC¾®m±czX€Ÿ ÍÈ7tþÉ:uÑxr .NXaò‹Ñ".‰÷÷:®‘¿¬šú„aüL¹aŠöoƒ4<ƒ4[÷ã'šÕzЖqoÄäÚˆ¨»êu$DÀæš¿ùÌ–Eöu2êËþÿO[Ú;”Û¬P ’ß?Þ0¤çY€Œaα ê…“'‹ µ?€y`Îø “1ã³äœ'øçoßwÇ`Âëaá"Õ–',7$šbºÞÔsK~ð‚7"GGYOO!BìR‘1 Éu“aW=Ž'= Î*øvå…8ø¤ßlg)²ÉYåR‰Ž6›\u¾î8ˆ‡n ʤÓéÓÆ6æTö£4Žàpñf¸m n@Kïr¼#Ö$X·½l"-Ö!Ì®wW0ÚžI°®ìýœlY$¤âµÄÆ’èµ§î?O0%4–!tTNQy»™^cxSÞO¦NËeÖ†Ái€ßŠ¿×Emp|¹ôdå·[Ç”ûâ¨îâÎD„#P: 7©,ÖßD˜ú#`áþ )ºm|DÐÁµÁ¼„­üLÇ«‡ÑB4\ÚxÔL@‡ëÒ^:/à'©-gß꜄ÀÛ׎áÀjªø&E9Lž¹|Ê Û(Ço"šqUÍí©34ipž,tÇ Ïz¦¸ÝÍš;£jÛqµm? åIF†Åà´­Í —œeZÀYJœâ¼ =Ùú*dakbAawl“O4ä†frCWóö+eä‹';« -ߎWEDn?ˆÕPÿOH€?ƒ&`Èe ýÑŠß$›íKQ9ub£VU~è§ht¦¹ {™kWpµ­¤Šuƒñ!kïüL¨Ðòà ӆs4²wKq3†=м÷0ÁϤçÜ(¿ô¡lsEÜgZ‰²O¡'z­ÐDV4E“¡Ä›tI]šÁ2pÅz˜µÇ‰pˆ'cCßÜ›§J/E²÷ÈÁ^âO¶N¯àh&M„G¤•§žt¯ ”ñ»x{òê_&ÊF³_ÆîV ÞäzZŒ¼w7mÜ ÝI2‘6‘W·Ôا_Ñèo›e_#ß_£Âù×BÒØ.¼oQŸDûÀý†Ë±Ë÷qÇ€Mßam‚‘1$i='ÃÄEµ\¥U¿ØÐü6RÚÆh4gMÌÐï¾洣ɻð €€eA©MrÚê·ôž ÷ ?'ç綯`c?ßAóÙyο°(¥gÛ¢Xí9r›N¶|È=©¯äÂ=èsÂ-¾KØGý †ìþ²%ƒ%ê“ï'óV—4A²Fþí@-ØDkÁ¢#†¨‰&Œ„“ÁÀ[#Š;ŽêzØWdÒ)oÞUOe·Lgr´¯6N2/Kß%'°AWbx§Wk®,yU°I©²þ–—ôbw=žÉÄxÞ@«GYnŒpùÍiçÎÉüñ) ²ÑÁ+!«§Ä@Íf¬™—aó'ó ñà•êèn ê¢Á?lö=ßÂ$(¤o{åîÇy©Êzšv³ %Ä”äàõœÁ@P —êrô§·¿—Ä äíÄë‰(8“vysjk9 ð9dûí[–uWôŸ‹€jh7ì}GAˆœ7;ý•_Ò®G1CÑÎbÏã%ddQ…¿À(#¶4lo3<:¾%ñ×@j »! G{rcšÓ8ó%‡VŽÁý¼ˆ Ú I?a»`†"DÜ4Pí½‡%ÈÒ(Ü@zÙß­’ •üîÊCã­–çîwk×æè°†ôÛlLÙ#.H†ö!IgƒAfý/^)6.þ,Ä]¥™èj½†Ÿ´¸k ‘¢Þ/PU#^ÆÍ¢ùÖYGS÷ÉyÄîÖ­0'³96AÅu,¾D欙Úo³RûÂEA‚0ç.#¥IIà´Æ¶ƒ¨üGT=ý9áHÄ>Ä<Œ,‚ý ¯•7–!Úü ÁH_•š{ç”穬ˆ"ku›Ûb (É>pÄ+JÞ‡Pü¦o)õ beLØ–½kh¥râ¨MT½©1Z äxƒÞ{*¤âJúYŽd4’EñŒüޝ:¡¡íCâ•üL»-ÚuÍ ›4þ÷À¸ˆ’ëu»xPœ–rb¤³1%°Óš‹ßvÀQ’ìú>ž=üQH ‘;S´ÕJàýÎ`bpY¢\½¢‡FJs9jNë3Ñ’ƒ<ËJ)Ò1£¦žÍ© ëµ ¡Ëè¼Fút{Krlú½÷pZ‚¨C:… ~ÛÂcžÛª¬œ]'Px¡4G5˜ ÃëÈåœç-v©@ijXºI¾(.ÑÚé©ÒÍ–T?Ž£ Hª¢ ÿ|Jí‡é{¨ ôñ5'æª8H«‰T TAÎ[ÖÕÿÌéªÓ`àušço8‰Ùȇ1Ð×,“û´)ü|®O#ÍóÃswÆ”ùF¦aF]¹°,ÓÄûØé­ÙÖaÃjÝ|é"üãÈÖoÁ±Ä¥cieù “јG` ^u“ÂQëjái+Q„/qåOß ªGÓE¬1„Y#l9‘ù9ê1Üú¿aÅ8)˜• 8SÐ$ âÝÎÀ…ƒ)xö†ªñÛ)¿%“4?W4úú¢U½jÕÓ™hŠ÷bUhÝK œce_ZÜÙ÷Ä’*õ2)¡itú¢åŸæ¸â5qÌÿ(¡° ¶Ó.â¼Ksð‘­ï¿!–/â­šN2LjY/)9Õ”¡*+’ÂÕJd„”Á`²&B7Vå½Ö†éœ³mÄ-šZˆ–Eýô• œ´q;Uõ±~öLKiFAáÃQ"[ô¿,²7ì‘ÒµÑЄ„“°ÜXPR‹~Ô*Øãƒp¼²â¤šømZú;i>‡NÀÕª(RNœ¦VZÉm3H“ÀÅ–ýpÂzðg)¤/ç)‰ÙæS ~M)³+ñûüù%ÖPŒ/2•“éqd‰÷`n/«¦>g»ÃcÌ¢ŽBc£ïsœEÿàÈ4ù•¢ºöWðUO"ÏEH(C£E¡Õ­-MBÜŒ—W“?MF‡q·:C¢‹A±½R´à׊, ò„+6×?/,[’!G’+Z>ÈÃ;©¶³ë”û&ñ°ñÓÁGûGÙV½´ÜJ2ùH¯\üLºòýèÛ+éA¡rðaûŸµ0~É]Fµþ ãe*DŒå$óÕì·U_þqeºiackæêè_F(×ñŽ´JgóÂ3Äšg-j/D*(àf1Š[ÙAâÉ·rYýÿÿž^lðµî»tB„¯2d¤Í ÒYmôí'²ðãñèíØ\$€r†¿:qÌ­4OàÅÊÎßaи¬#H9­U½TVô;¥àñ±ã­I¬Ó“ÉW’"°:÷Z{¤”MFtÁøí™á±B­æûØZ;x’g{v‘æš"=ÐÙé"y Èjü6Z>\Ŝȭîíî°Ð̈JÛ¾ÿ¶9Q‰cTÆ$¸XØÿ1sqœP_Üì`gÿ#“¸¬6 "+EKºL°úØ¿<9räÛ—}FùýÆ04öåX÷VYK£Í¿¤ !ˆÈhL‰É}òç7iÖÁ ô÷o¬ð-JK #–y¾½ë›yé¼” ªhc£ûò¨Õ|ý€Uª´=œVµ©‘·•íSðS¦­…Ä+Ô Ùÿn-¼/AP 7¤Æ™›6òLF!u¥÷~ ìàDò°ÊìªhC`%i·;Q¶üLÅ[&ž›è ºSÒK¯ïgqÿˆNc:ÕˆQ¦ÿÅ÷s{@¹X½´’V¯¯½—Ö v®ñ$Rj¨¡“õïÿÎJع-Z×—Q´é¶~!\xAÈ¿¿Ý±£ŽârÉ É»°ŠtÊ'«?~磆"Zñœiú®]Г/ „Îsî¹DWñ ~\ÖíWWדšÀ÷lù‹†ñÍ !Ä®©LÃë6ˆ Ý+S¾‚œc0œr^;«Û¶§þ;àÙ/KD| ºÿ°´¼r­§‰~i±Â4‹ÊÄâù Ls&¸õBê)´ø[Ëm˜ªXÀZ ªs7«DÀX’fÖâ¾ÊF¶>×Eâ©üðÙѳ R¡<ŽpÁ—##¼_Na¥T76v?¥eR{9ÿñ¡Ú€ë‚Q ü¼þÿ’ÞÂAh4×r… —™e >ÏÜ|LráA=÷0 %9Z†k“>ß÷¢ø£ßo€‡X=þdº#ü@õÝnâOáÙ!ûU4‡´çøþ_J½ûgÌ/)9<ù{ù¢UW)IQ÷5—£`3í• XÉ‚byÆ„’ö ZRrÖá7a¬nGέtöÑ\fës%ÚÅ;œ<•¦ÞЪÞå/_•F-¬ GqЂô¢ü|§ËÇQ1ŒÕ¸uÎŒålÞäŠÊþ DÑAŸþWþ\ÆñPmr4ñŸ.”!¯Ãû^Qꮀ~Mæî§É×Pkjâ‰#D‘5Ò§Ü¢¦ûÝ„ªÝöȤ Èô“X³Ä˜'Ú½õ“jE>ÈC²²™bµNRìÝKÓ–S*)„2´åàû=V„ÞñRÚ}mÄqÃ,))×f/²›À-7×d÷‚¿6ÂÄrO—–Æã²c·ì£#§Ë‹Gþg…¼k5:m`‡Dì$%p¹%ºO')韀¨Gµçb¾à"ÕôM}ÿ½Q”)&ÀBo)8ù5Õ2¦M:®9cãð»§Ì]¼–qúÍþ„êj¯9 EÂH(Å B pÓÿüMO€P ¤{\u–ê@„Ùzɉ•ƒr\ÂÀ§•¾µÍÈä&mãlÊZÒCxî…$ÙùžN4ÇÆ5ãøZ¹ñ•2W¨ˆ¼ø»ÅØ|E‘,y¯`JÝ5jém¢Aýzª´º0ö…n“›=íÈeh…^‘oà‚Ђ¢UKƘ޷,©žkÜÔ$­Íôß žÜϹ?cÎ9š×q§½9‚G0ÎÉbTÚ)©FFןn3É~Û-{6!M Vd~\èÎ6¨úOÛJå ã+$ Üˆ2(DZވ2œƒ«¤;NÛYnÇÜMÖîkk¢:(¿æò %¾tüL°¨š†ÒÑ¥~U´™ž2ËvŽ1ÇYciÄÑS74ÀÚêq‚È"è¢ö¯»Tk$#a˜P|¾×›Í Ñ=^mt¸BÌ-ܾ÷× õþEª.¢áà¶%t#’9ÙÕ’ó^+éQ1NHkîßía.8h(JË\• D5bGFúåáâfìúu…—r‰ˆH«÷á̘ylø]ß$šyPœ [*A1ÁƒfœF€1h 1ˆf6Â"CMàÊwÕ]y.+O@­ŒÀ$†¤Ñ~`ðßaæâ'üM\L"ÔCGl›Ž°­½¢òß\^+^Š Wj¶(¶Wy9pI3½ŒÇЇyñiiï’F›Æ•æW|œ¯²5‰/Y‡vâH6Dÿ,­qèÖ÷™ÍŠ7¥ZŒº•Mxy¦ù@šµ¾ŽXj-:•錼bDIè‰ÅOZ *b'˜1xýW’ÅJˆÿÒ õFÊäÊS¨P8D¥þG1Ù*ë# o•Êòán±F'ìØIÔ•ÈM11þ9›ð2ƘµWûùÄ’mºÐÜ YTÏöÌè¢,üMY˜¯>y¢! áEz5•æ_“Ro\Ͻ™g »ol¸]˜ãÆÑH¼-ʈgï,£µ ˜ßϵ¾ZÜÐÅ,¡_†*Ù!·@¢s ÖËu1—‚ˆ ªÙn0ŒŽƒ]…Ê:Õ„ƒµó¼L»{—A±µ ƒ›Øï±ûƒ1Óà§a½Mˆ%`¸ óäÂÝd°D˜Î)p×pOg)ÀëÊx æÂy¤œæïVc0Ì1’Äœ´Ø‰‚¢Ç÷K–ÚÕÛñ%ë¡^‚Ÿš(—Ÿ)g4þGªö"5/d䎫üK°%ÅM¶ž[sÝ‹"†?dŸØEÇ`àiW·†ü.•¡¹6œ¨Æ AQ…Ÿ$©ôÓr„á~/xì$Ü’û‡å|:Š]¢Šróê´M4ô9àbÀáÀÕˆâQò/&œA\žÆzò¼Î1š×dJ§Ì«>Gבð­³?ÐÎÀ—Û âY&ž]\CÞöqÏÞýà{-²ò áº˜«7à K qɪ©ßL×PT(ìQ û3 Ö~Z)×tf¬Û5sI­”þtÙ5³ÔüL¾ œ*tÀ9àó5’ ¤â_ðbÇ ð…óïâYq&ºOô"g-‹wQÓ :ʯ°a3ž#1̤ɎÊàåzNïrëû PÍy±Í‡ÙE趪&ßmþbþ¶%¼5ë:C¯@”.FÖ¤<ËgЈ}“Í?="†º×wBðf÷ ¢"à¯{0†2ì\š#4Ïî{ãÞr¯N~§¿ï°ª0'7G+rcN¥/x<¦·ÉRÓ®‚Ú1¢ß…ß¶m¶\Z)î3Ï(xR¶\’¥2¶•’©´ü|ª&0Y·4`žy w(ìÜk›ÌëÃq›Oœø7lÊÔ‡¿Å¥+æ[¡ožÑš©á>xþE@_Ñc¦™þ‚VæF`³IY;tÀ:fé¥,¡kx…„a!˜ §Ðë â¸âÚ€(/BÀ˜TÙó¨ª(½Õ˜·j[Î`{HgbͰLiUûXôpÊX3l0ÊÒ*´ŸÏoªö”S› ¨o¹n þ&h­w7$¢ µq“¿îÛ]æÙÞ=Jžä‹§jᅦwB©¬âÀåЭm·íuŒTÎÌ¡—È´­›ˆ¹qÃRøO Pü!hîb½Ò0¾³y8âieAáéø!Ûµ"׊9˜Õù·öáÁ€¾WCã/ ÍÆe‘®9UÃyÚ×évÌã¾îÌEà-r#÷TzÌ\áÅüM(^œ~¢%ÒØnz\\ª\ùPOZ‰qÑv‹ñJº!ÂlZÅéFݯˆ,Õ¶JG‰HÜÀ—oÀ ‹JY›ºmù ömÎÇW;pN~*»3Õ¥1úæ[]ýR…¥6¼æqÙØP‚¦Õ Ø“¼Xª¥ñ"BÂ|µ# pªPI/ÚývMôªÇræèðmcs<]þ¯ÜÄ-Þa¸ÆÜ޹úN<3{"L +´äôÍ,ð¶!êåÚ £È™ór6ÐSЈ¢góõ´•v±ñОÍ7Ôç6|åŸt5ˆ?3ù§`¹Û¥`:•ŽôFŽ}?´G£Ò5$7óózÒK­´,Ñï™Æ×(•çò’i³ï8õ´Úa vÿçb†‹ "M8°Oì‰Ku¤Èýü±£åôÅB?Úd—íÙÍa~“¢\/Ñ_ï?‚Þ·6!Ä¿!<ÞÍ(Í`C"á8ü:^ù_=K{—æåÛ¯©¦s쟘FNeß§ Ì2µƒN®À¢¸¶äDŒ)ËvÀbŒ"ºöÏMH¼? _—[AÀdúº+íJd|—JÏeÞµMœ"ƒ(Ǫ%{ééH®&&ö~qÛ” „L¤ B(_GKP›iM-Ÿlp˜^ã8ZTûKx°wÚ˜ÆOdܶ\ÖO+r3Çæ‡¨N”aFk'8ë>ñÓÆB?Ce è¿k#k›!”«´¸•rϲ¢%Ú#Ã+ÊÒu´ß·¥›åªf”r˜¾üL® /“’ƒ¹ÅáÇè[ÎÌÃçM¼%‚[“Ãj@0 ŠÓª˜Hrbß Ô”á0|NÁ3KY HV iŸOF³°7]9¶Úò'Ò §¡JF¤ulQaÃÝí̃€¦1köÅ[ìü¨F¦4¤èŽÜúÍkÏgxPvuB„q»8ÿv$¨,|Êá?'9õ$šµÅÊäm½ˆï°,ú¾ÿqyšZPƒÖ(!†ZµJÌleÆÎ«uZϾ€@ª®EF8µæO6KP D_9uü©ÛãÕ.²hÚXe¬»¶’(n+ûy•~[(ÁoŸü¯›¾dëTFÔ‹~…Ùn­ÝÀ|86|fP[¿‹Úº3—i Ž\ŠÒ̄ڡðâîÝÀ‘2{6h€¾X­`p'ôE&Ý÷_ð7§¡\¿”{'æïóEÅ—´´KŒŠ{‘"@r¨H3‡Í¢ ?ŒLvèˆµG Ù‰WKA˜ÄÀ æ%ß¹ÉvÌÉN%˜†¥Ø‹B¯b6PN:ÖñÖlØ|عI•Ÿ¢ âGå‚eûÊkã(c– öLõ†ˆ7†ôíb’ß@P¾*».o»ìjžI³BèÝüOYËTN± ¬S—gXö‹Åÿü“ê—‚HèÛuA'¢éõ°]8Ï,‡üM(re u¶"ŸY” ,÷«ZÕmÄ=ôƶÐ;Eíé3Lfœ*¯?Ð^õ¨ë|Ÿb¸Ñ¡mè¼Q;ŸT$™ëZ?sjA9×k¬;€u‘.K»»ÿž¹`B4xïz—º¥3â(×òì}%Á¦¤Æ;¤i—b«_ÑuÞÈ)´8³W»¤!åA.§>¤õÎòÈÓý'aÈ»ó ¹ŒªHÿ@¡|…àÛÐÃJç²o“s“þEÚ†Ï@ÃU¥2 ËÓ)”QÂ;‡_á`íit¤ýq^£; di«Miݺ‡ÎYG'j³Äá\ ¶ÀMEh:S|ü3œ×•üLÚѵ>Ù_£ÊϱµT&~Q3]¾y㉘êÊÝ%•‚WÄ9êî¿x®ƒ‚ŽBÎ’ÒÊ ö9rèsl±åâãé›îd¢`L ¿«ÃF ƒ#ø]j=|Gzÿ=먹êþî½0ü&öJPIùÙ¦`„~,DINÿCÎÿ—R·0L¤wqÒLX2¤ %Eƒ€:óµMXº¡™ÖL“Ëæ«€êY»å4;+Ð|Q<@æ½”Ývi=°;˜þÁÔòé{ì^ùU_ÜHàcê;~Œ¶ÃÑÑm”F‘un+ÍÊàð“%ï¾x´Ž²‚—_ÐA¨ŠÉZHíí}âí ÌD©¶ úüMEj^Æ"Üq£¹îL€È˜Mæ¦ö “I„pÐöôàÉ“¿9Z~mŒÉÛê‚ã‡i*1ü™VÇpT$p fëU­bE*Y9?›¬™”eVFfÄEëȱMJ*±ÉÌ\Ú ÔciÔ͆ÿ¼qìÕÿ&„Ì@µlz‚ÜšQδ„Îê]6‰eã϶N¼)<•U=9'XïÒ^ßæ¢&ÇÖ/ÀFéw„}ß]SÍ‹ÓOİAݩڨ°½EÆwP, ‘_ÿE%(=£˜ÖJñP½;ü½$gY3¨^@¸ï¨Ž‰÷‡‹À;QÄÕÊCŽgöj‚¼—AYü|®Rß“/„§/J&ÌSØ (PxÍÙ³ˆÔŠ“»ØEø¦. FE-³Åùq–ƒ@‘÷'ÀçväÝ·’7‹ß"’Ê{òwµpKþ´ÉKïn¡Ý¶‹ÂÜɺÊJÃýr8ÖbAv $Ö/ømYè(¹Y¯ýîI‹UƒèÓ¿ËÍLE©Ÿø>wÁ×Ó Ì…Á¥&f–Ïwøç®ä·ÖÜð\ÌðB(ËÆ*]Ði[鋈mÞt³·•„HBìd#5ƒºúxÖÖM"'T¯Ñ öÄÝà¼Àh¬6Ò|¹rý´_|Q<ÿ&/ǃû@pÌ´éèOå>K¨ s!±9›=%תIÚÕ³A¯™’ê_ýúñî!8²¦…¯lp¸˜ç-jIª»>¹™=!g”ÇÎ…AûÅ=EõeL¨Ú7΂&ß¶Û’VC¹c ‚/Q™“ÇòáGv¹ÆÂþ¾Ùդך<Êz¼I Õ±ªãÉ'yq[52Ë-}dd5Æ$Ço4¤ƒRÆÊÎ~aÄk=¨ãâó„E)×çÕxªß*¯OU…ºzÏÆÌÖüIàä_ò–*š ÙŽ€–VÌIF ú°\JÐÆPûË®'=€sÔ¾IÚfõ _¬7ü2ùK‚Ö¯ôt¹Ï%7|æás1î*W­RÎuøŸý€–fS¶ð›²°¸°KŒh¯l–ž8¢KOÙNyðØé ;½=†*f¶Fëm·—Lö]9Ü%L1’äùp¾öüêËy+1ÚdjáÍï3qE×Ͻ4V{VkCßz5ÃK0µ \þù‰PÍ×êõ-ú&ÈDwíYVäX@ýÚ”:S@x9Ù}Âg¤qêÜþ; ÝÀüL¨¾2-Õ–ú³,‰*óôIŸ8ä¨K-½Äû‰>5Ly™é!?®ŒŽ¯‹ˆ†Íx­9%ŒU{iÊ쎺 Õ™J¥øQ¨gýuléɹJhŒè×Ée†?È+`\4ªØ„T¡KûäwbPæ6Ë =¦‘#Š}o’fèú(ûZ¢EÅÒ’HöŸ§‰ÜbC—²ä!?pâØŸ1µˆÜ’ÆàÁJÞÕž¾)´ló7\÷PõZ#P÷Ž/ièÈGs`§:+(u¢Â+àhsµó°Ù b‘Ôs¬ðÎ>q\tq–ÔÒ üîš1®ÇC”„VÄ/IæÐêÔ3¤†)Èì£6O_« ¡×^Å8¨/ ´În,4lÚ H0 Þõ£â¢AÂs¥Þý¤µÚŠÙy1G²™`n<;¤òœjÒó ß_0ÙR"i”ÒFƒÚqLy+¦ÉEx»Ï.1ìBɯ°^8³Ï™_FI¬Ê‡¥–ÿɃEš`˜%v(üϧÔ%ceÿC®›Âæ©%u,¾y¢Um ×ë7Èr«Õ’kö"´•$*?h²‘¹Ü ?ÆM®ƒAÁäž±øðöç›çòÝüMc4þ@@´yø,·ÿÍ›KÌ膱ª%½.®`ek›×ÔVØÐR°Ç—^|r¯»ô9K-©ì#8uNe*Ü™‘P# €Ä‹›½•oÊx]…ªé°„¦ûÒ!DUQž)þ˜³µ&äBEƒ‡=Œ¯:÷ü_´¼À>X²GQꘂAj^ÃñvsÛ‹’yO(ŸäSÆr·†ö…‹Ø*\Õ`=[m‚àQ`ÜüN‡£™#Q€k“·gD½®.§âô,º~ìî5¶‚³=Ý‹X>EüÆjö¼a*y.¢OË‹öÕÓ*—Öuå5ÛË"Ù‚ ì`‡[cÁJç{5 0¹üPcžmàŽº%¿€–›2V§‚õY†YæµôoåúæáÊSW À#©Wm(mtbõIOð0 ëæŠfþèw«ûµº½l;Gèõó…4‘‰bq^¡›=—‰çk®†v°œ÷¶ó-Ò†S9–ø{Ü+¯´zr×õ´›2£:«7Øteº'•2ªÉqKÄ þ…³Ã˜Ã7¦ç•'¼PiÛd¶ƒHÞ=Ӄȉï% üIùÒã»ÖÒU‚²QUZSÄÆˆTéÊÓ8býˆdrfˆù-» Õ"§l+,‚ó–>dâ)¨WDtmY-äK@åÝû`ÜžÂÅ`SÁý–u$&8ÎõéCJïEp"Í QŽBõ#[AIkwò]/Œ J~.“¢ÁhÐÊ·ÕtGdXØÏ˜Añû)J¸?ƒû oFÇ«×yI~¹äÈï7g©D2ÞAÏ«ËNrD QeËBrüéNÃR}³çeoV—A…®è£Ãq´ŒÀ¬†ÄàyØÔ¡ æýÄ nV(s·FÿÔÝâáÿêçÿÜÿYéÞïäÞåÔÞØâéäÿÝÿ0ÛÛßßõÿÚåéüÿÿÿ ÿÛüôÿÿÿ ÿÿtÿŠÿ‚ÿ€ùóóÿÚü|­Çñá6¡wÐtÐ$^ŸáùXð:#`Dâš7÷kÆ#R©±ÍólâƒÊl£î…êd4©f@2­Ã§qµ¤XY &peTñý|òl~3 ªBØr'Ú ŽÆ ³Äˆ³ ÊP5qVÕRªs%öÜäã)*WÍÒZÛJ/ŽÒþð4ÉÒ'rè;YÿV"ÎH´oìDÆeã‚X½GœóKAÞÎùÜ’RwÂ’hàÔ,TOµ‚„¢œ—mY¹ z—²‚´®>ûÚR­ 0ˆRÃ>B¶¡r©¤V³ôœxŸºÚÖ»ž— Ê7°0ŠxKæL‚£¢ÐšKÒîwvøŠv+$}E v°{÷äÄD »Ì0Ø‘ì<¿¦ÏÚg|4ÈeQ×+«¬'gÈŸe>éGˆðÉQiýXîîx7RT68JVÌׯþm”˜ÁX”¤±þÔÙ`,‚ÏI‰'=¾ÅaL#Rk“X63öŠUÃPIÄ$´òÿ›¡CA9/{(q¹1ë‡ÿ¢£ø!Áph MµäAZº¼Rp4}+x;Àç»grh‚ “­õ ­½w«çq¤O͉=!$Ü—ÿÌÂk^õ«üJNte/°èPÃ¥ðtí÷~gð\Y`Õ¯ ™[G¹®ËL»ˆ8€ÌÍa, 7ñbrÆžÃuq»HŠôÀP*#zoþ]·ÕÝhWTÃnº‘fÆ<ã†Ê̥̂ÀON'ß4ï4®™P”kœrõ˜¦Óí&„Úg"CÏœp8G–NEÂëªÃŠXÞù‰•Q|dó­åºÙìGHœÂCõEËxæöìû´¬òAꢸ}¯¢ãÌ}‰Oò÷é#²ë·X²àt*~j0õÍK­q¯²ZûNª>iõéüL­ñ«:ÒJ&00§­GC =Nܯ ò]ºêâK¸Íé‹c¤½ú¼#~D–ƒ‹h4)S…3Ïp±Ý¯NåÝåûý^›òn0MGQ*½ÌéZqË ¨i<õTg"¡¨† •[«²%ÁÂøÎ`U— X(1”м“–ÉŒ-ì+ßæ:¬ÍÌkójÔTE‚1>Ä^On–Ö%{d·\Ü~ŠN:rƒŸõ¹AÝh\,ÌÛ»@ÐPgm£ ÂÌXðš?¥3+î Q–•µNùvOw}–±ÈŽÐGub•C*ß1ƒ‚ü‚ºhB ˆ+/üIùÐÊüWÓ™¿ß¦iYIqÿ9 À©™)IF8@Ý;‰.Dn Ê]ýât9¼ñÅ]þS‘i;¿Ê_â=0Ú±­LôK¾tF)x|“ê ʵS¤³©wð-‰€‡5V8g£ ‡©"Òšœº"ÓWÎÈüÅ3•ÉÀ™f¼âŠ•C¥F'\–âa±Oéþ’µÛgv¯[ϱ,¡û˜»¿P:ifÅL.-^Ûîð‘Âá1d°’›¥BbzÖ²–㻨Ì(pO³ ÑØíuxߦ¨¢ŸIüL¼œŒ3ñøãÍíCæaŽÏ@KT†™©šI1ó’^ÒÃY²ÙDÖ!çHÒ êHAME&”Ew­;³F %žmÏ!˸¿Ü?¦XÉùÆ—¼‰«²%a2üq­]MÒŽ[³~rSýΤ܉~SôªVÓ6ç¶•O«4ÇyKÉ$ø_¿ùš; ¢§Š è3ÉŠ¶,õ»,äL&«šà*\2•’ÐÕ¨ƒŒþX³‹'sý0ôôçJàCÛþ…ö»Ç,å”3Â^]HOãêE—9zÑÛ÷²õ¢Ó¯ÇùúkäÉJu˪ÐSbqÔÕ¦ [¿6ÛoÎ,qnㆰÓÀõS÷º ˆò¢ö™¾¡ã å:_Äÿ烆t:ëÓÈfÈÿxÿÕ«ÿÐM/Ô+ð2NGÿ›¥$-Øäo¢%¹µd¦™J‘³¯Ûa9ñ¶ iÀùq˜„‹ V;ãö:ÔžmðÈv?^ ‘üÆl›]@ó¢³ÀÅït"·¿ÂB•€­ö¬ƒ“ëp¸àǨµ™IxW¸a@À‰*q,Cå ×ßp@é1^ºŽ©cý¿ŠÛ”viYí(¿r¢_‡^ªçN¦ÎsVívÍÁqS qA>‘[E’ÖìÊ"¶°g™FçB ®Œ„2ºpÿ\¤$€˜ fa¸ óÉIÉM¾]P=Õ‹ùóÏQ@>¥²!†Ò>]ÌM¦C½ÅtßDÖWDî,7¯ãé,Õ»ÞX6Û9öŒ|ßå+¶—9ºk.‹mq¦÷m9,m¢ £P-ê7"ØÔ ø9WC¼ßæÈü-_‘hKYÝp¸¼=õ'ÿ€pzõÓ¦‚?`ú\#¥Ë8LoØ%°9–Í‘ˆé}–ÙI¤^ïþ±ÃRp½¢Ô]o´·–P(\Äì3Ú˜ûÞæ°}ÓTâåòÉùbJòg݇òŠ4½@NT¸u5[C›—Ð qå¿®¥F:H³¡€K×]ŠÉtÏ—¶4ú¢–—çµ³§¿p.ô‹9û¸¨ß·¿Œ‹¹L’` ÕÀüM( c{;‰:L(4ˆã™t—©Of(M3B(¸aæ´OÖu ò=]D™XxÂ4¡ûqÑ;þB”/¥ø|¢·Á3Lžá§a#þÙ·üÈä›IÜß³ ™†…l‡šÜ‡ Òx1”À W2.Ì[¼D}bĉ£¾0]ò Ü#,¼XmÁË'£Tgâ´ƒFüM(rÝ+Îć'†ƒ%VœgØ— ‚÷¼…Ëiž¬j|Öî¢y = ¸ö®Ãˆ<áÎ*+á~Ÿ2¼™âµ%'{šög¤.”ô¾e p‚Ìš_=±êRÖTà6i»E”ܸ¸€”q¨™¦x—ŸXÞN(s¯ÉÁú­|ò-_ßH· Î>hp®MUÿ(9êÄê"€ôF7êAÞŠu9có #Z8R _îv.…¬}U µHîŽfBÐÌ\òœê˜¨ ½·‰¬‘~ )Ðó¶üMµbVñÿÌËîjt3áFæ #û¬ÿpO”=m“PSj¡Þ”tÖ¤xhŒwbÎh¥Ö ˜³™å–¹Á0ÿ"z *•¬+ÃÈíµÒA0ãAÐ+¾õ#¤yÚ2ïfÆe'ç™ÂÞ#¦§ äMø•ФVÅåøSí _ó·`Ÿ‘Ð0q„pãè¡ç YÇá»Iñw#ˆ]L±ä‹Ji5v=RNppêɨ¾çgásÞ )3BÆïË¥pbn^©õ æ1{ÒÃ]l?izåþž6ÚD[݃4ðCž¡è¤üMw›»Ìæp@/­íÛ>|o¼½CÙ¡”,‹ÜÙ`¨¦V›PÅ AW¼s+¿—xŸØ_Áq»+jÀÌ“ÿ>Ù9‡ ä1¦¾¢Å´ù6·¸ñP¥Œ,]Y RÙ3û´¡^=Í%l×?¼W¤JÈõ¥…\òî‡ömàN®Qå3[tJÑÎ.çý’Õ‡q"SÏ\ñvn!_sQŒ-Ï»AHhÿyÝÚÓ+ùBm×{Ôéé‡]´-žîçVÜ PW"+•©xs€îÎÒG¤D"tÙH/ü6QÃN]Rã¯ÆÜmZOùÁo¢?ãħs6Y÷Ô6ZJ‹9­^Ì÷¾ø·Vâ6¥|÷‚¦ß ÍR%}”cb¬;âší¿¹½Ð'œ· –fç êá\^ð‰{Ç䇛>sLIƒ³vHL¡] òªL=íÃnSqk¨=Z"ˆß¾ú¼K?´êlê»ÙX Y¹00Æ5HöKq²æÞf¸oêßÜ{š\ Fî‡â_Á–¥é…jÑ¡AèýsŸ²yÌ6Ð8·ôÑÓš®V(®µíœLd³»òs§GüL²0’"q²;â(F¥ž·ŽmUÇâO —T«uö!Ö)Aå\á“bºŸñp˜cÚïzï ГozF¤e4pxâ~=³gAEÛýdFLéKqÃs¢f"åB¹wX>ló ¯'®2¾‰þ êcÕ‰öí¯ Ê•GXõÇ<¶í˜„ãP¼±ÝÖ½Œ-~!,KõV!hyÁÃtɵÊa×ßÚD;ò–iÍŽ£|X=ààÅŽ¼#æ%•‚Ô žÇn,â´%+Aî&n´O¶¹ !ðhÅ ÒyÆAü6‹²{ãq*±lÝÉúR="w©lÓ†²+ëSfè¿1T’FKÊï˶ z²øèÂ6[pcEp­R3°‘1£NGPΓ€„JBwäæÁ³¼ÎöùeZµò ¬UdÚí¼ÔÊWx¡ßXqšS¯­Ó¿Ú‰”­ž;uÈ4ŽEÒ"ú€@¢;3üœâg.ì¿÷+–à^ 2}‚”j¥Ì©­&]BÜ:ã^ã[y:'Oó«Êt=Â6G¹ S„Ûz^5~6Z†üÆ.ØXlefs¾U&qÕdÑ9å8­;Î8¿D=þ¶G5àÆzšÞØ«•x£°a±Q€4ð¸¦Wö ’Ä›Ç –EjgáôPdÛü;%ºªðú0o- Ó"V{º…inøw&"ç·^xl½6: ¦Jôï+¬1\ìP;›×Ô‰¼‹ŸÀ9‰è?GÂÓ!Þ¬3·‰Í«ÏThÕNÓÖÂÂñãdþɬ~Ûàz¼fšI5«8kûw[Hm îÆù´Ï*«•Ó:ÔÜšŽÏ¶øF¡Hëë.ÁØaÉhqˆ›©Å3ÚŒn©Ú¬O±æK$g’&pž`ÖQÿ?¾¸ÁŸzð²è\hg¼å}b!áüÊb6Äu¼MÉHÚ•è1ª‚ž÷‹³„ÃÛ¾'·d¾ø|-ó8{«wm+ ¿9™ä°UÈ ½†!ÂDÒ³üq¼9‚‘ÌŽº0Å_gž”gZ®XXLÌ—Ì‹K¦MÛgƒR@ºüOãn¼CR+#}ëÍ­¬¬?BéßæSEL–×»HËÓOLlø ëaÿðœuÁé/wjG¾“Ø;¨þû2+rÌ öÔyÍ»âß]ÌV Ñõi½Ò(ÉoS7§É„$ß#ICtÅgô1˜¤ÀÛ®¨¿¶êñX¿÷:ß<[EñÅŒ`è#ƒSK”bå?Žøêèo£ê~³2·4Ïk¹Íü®#͸w‚ª$¨PòYœBßJÍ*Y¦6ÎÝc‚ϵÙ…•>R7ô`Ú;Ë š[ܱù…çÀMàØ%‹nŽÉëX÷#?ˆµä‹2m`ƒ н½÷#§ö[6˜[…±×퇱€Òåü}\ •€½Œ÷ÓŽ¯‘•+«8ºBZ©>v ›¥’$PAÖW'_³‡¨œ‡1»†Ç pÍ¢Ôƒ;ÿ\d‘ó?mRe$=–œœoÚAö;1tVŒdF¤€yaÃ}…  øÿž ®'Ùµ°Tiƒ$ÝÓ j¤ùlR˜|—6óL¼4eVÛzHíR Ë!ÛšàEõ‰À¤Ká`ŽíÊ}'[kM ÚÃóî¡QäG<7µ‰ô?¯¨Ú=["%?Ý&Î všû ¤"¬Ú”ôî·Jú~‰k@W˜ å¶‚±9‰× pæä^‰30ÉÛƒôÂl±Òs¥Ýútù¢@â[ŠŽ;Éì´–ì¶Ä3ï :ÀémEÂ;·©a?tù'$ \êW¾.º&W>ѹ` G¾ü„€­“?^lW%ë ˵ î`޹Z‡wÖž×[øzŒ}æ}ATŽÖDÌ]ç{ï"ÊÄ­ïß„úR5WÙ·I±…? «+¿õË›ñyâ¶Ï\ðsN²saÞüÍëBUNÒ/E¨©Âïij¶p`ÚÆ#$3Ò׳ñ(„÷y?#ÕÈŽ&_©”ŽNz=$ËÛã ¬&móq`&*è{.Õ,åv5\U¹‡ÅZãâ ŒRÜ)©¿ÉûdÅ{SW‡ß9å·Ñ²Ÿ‹…°¾ÖqÔÜýà’RåÝy¢DIh&ˆ°üW賸/êª =°°üÏ Ë{Ña#T(&ÎFìTµ?ÊÎ~Ÿf»Ç‹é¾Ôù*š-$;A…¥j&Œ‡^X8=†¦ ë `„Iô¤(.Üâ£YÖ_“UvrH¡DÅt7`{S°|Í£Õ˜_5̺´ƒPô¥Ê¼  ?r=[3Ù>˜4ß­!£í>ÏXóÜøé÷Ó˜"^b*«2³ãzbÍ.@»{<›î³PK ñ4&p6ìtõŒ{®æ’Øö^7›mß¹èvÈ@Z€Ôš³ü6•΃!r§:ïédô±Dº‹ý.”ï°ÍM¯R¸ÒgxZÊ€žstUVp_³(ˆwŸnË[åÉÕY~O96ŽNhì$l}aÌ_¨žAÒ tàK¨§òJ9U±•!L)áv+¦@¹ çÆ̹”Ôm/7®«/lO½Ö ÆF1Çnvž,£¦¨ÛžGýØÀšÿÓ—¿NÄDúªýÙü›Ýÿœ_ßað`pʬ°šè€×¨ñÆæZùè¶¡rÜ‹ê1¤æë«cånâ´*ú†^JY ,šC{U–ÉÁR¾7üñýØ|³~ÇK.S©S +þ’?½½³o‘ÓVÍws±ÞÉ{•b¼ÒFª>óâÜi;~™¸Ãyé8ë¤P¥`G•·<Ò´5„'SJ‡Pº ã²&5ΈÌ.‡}¤Ëš'˜y,(¡q§[øþ0ñQ„{¶þÓ¸‚•ê÷ëàèFW¡€oªa,»¡‘¯-3ÌLžá^L; €Ýœê̪$ú<§\¦ÙÐùcØè_²±La·Ÿ cãœG+Í9/;8–TæOM-ª¿öð?p“{BlÌqˆ[…|äC¼•-·DÂ’ÜüIz™ÎÙS ²`ß(9L·ZP³1•Vl «0È’ÑèÔ÷$ÔTG„Ã^ðFD¸ôÃÝIŸeŸ…×Oï°'uF$†Ÿ,ÅÛšÞò:ç°¡…;hE†o.ódLÙè·¯K¶pZô¦0ffpÓô”LSP‰bOQ†þç0mt X…wK[µå …Ù±:gÓ?Ä¿èà íG¾ôD¢Q쟆ã UtöeÕX¶Æš[” IVM{üîd{†ÁHב<«š›•…®/¨>މŽÚ uꡟ\c󮑼÷óÿ¤ÐZ 'é°„£…Äœ,ü|·Uwñ“¹Ê8”ìÁä›êL€5™¾ÄoùBÝ-YUˆæ3¨²¬Häß‚‰ÛŒ»ÑŸÙä°†LÖ—+Ø$‘8Ë|sò.ìØOp§‚ß—ÃFT%&Ûè•"A³'cW¾»'ª(–^z-7•ï>læú\’4ëßpæßºóÒ ¢Gç8=3`OmK<ò"!ZŽ©lœ¯«ÕÔŠ‚8o6‰x¨p–ì÷ÖÈߌ­ãJúûqŸŒ°©þåÎUšâ#e¸×‹½ºAöUH„Å‹ýuÝ eY0†}°¾_L¦f=Z©ÏeÕ8~RÎ,îxìÇןRƒØõÕ–`0¨£i$AôRÓFš,ÙèØ¡[ 5Bü‘¤ŽGD§1Åü´Yâ\=™Ü,ëcàO=”›ÈKU7Á»Ü{|C¤ûgí—›]³Ž·ÉÆs'a5 v87¶‹Vƒ{pçÖׂAY /:Ø"dBtÑÀÀ‡“WòRÊ«ByÙVÕ ýÝ|¢ø©ZÓ`nFÌÖ®è€1oYZ %jÙÓ1^UÜWî—ÏI|"œ¼û-oÊÜ~oâ^•ª,‘Ž¡¥êÖC7Ͱ!ò릋LmBüXÉÄág|ú%±(ÃÛßå Åj,iÇâÖ‘„ëĹÉ¿¤lYÕè«q(Íñ%«E~•m þn}º6S¾Ïº,áTF®ñ›ëñøè©Œ³èÝu,`m¾¸*U¬‡r¸ìÞŸB !‚¹€Ò46‹È5Ñ|/6¿Ô¡Æ>SUpxÐyH«Ûø’lºIæ'kÊY†½õjÄ{Q~iu$w5ÞùtþzŸ¤_œÖ¼0ÂBý/§yMÀ*²§XHœwÀôo ëH» öªtxXJç#ŸôÞÒøðAÇû„óÀ1DsòD°üXK”°ðɱ³mµÈìýzß÷jÛív*ñêD3š»Ø90ãšû¾¿ùå“»¯ê(ÓXuùÒèh–+ø¬=¡FÝ°Ì ÅcàÝÎ0á×eo™ÏÑÞàúLSŠ£%°9 ãç¹™†§µÄ+Y‹§ž…3ÂÁÎÐ4TVGo) ‡¬ï¾jÙN h6^¡ ôlüjoß±q$êLÖÜPWÉT¸dÿwد^>âøÒ¶*ÚŒš*Ã4­ä%M°B}/tƒ_o›œ@"8WËa´ûu0@‘zYô‘ÕD0ËtLñ+Q/þN¢µ¢üNaV9êf s€NÍ|¾Å›+s+À··S>¥ÌË`ÍüÑj ôª‡4šÃJ¦nÎ"D¢|o4ØæaUÚ<ÇÜ눺Cë„éߊ«ôò«g\ä”Z.É?»ñu;.MG 0'i¯-%Z‰€¶‹íÍLvyÛ@w@=[¤ ~6IÈ€:eô^Ô§ !Ò¬ù0¶l; Œ›-d"Áe4ÁiÜ&åÞ϶.¡­´=‡ô>¤<ò‚×RòõîÕ)ÕQƒ¨ÓЖ>69ÞF»+ iM0ÅWùC”ç°!ä*0/‰3õ ¬D¸×rý„šh¢Òãn¹¶5_2÷}‹ë,ŒüJ\ϘvF¤Ûž«_¬òÝbƒ[qà[’Ož]£Ú½t «Áá&¤‘‹~r…kÕ–$ϤD Ðåÿ£ËH™»K»ŽØ{ݬ$Ž“Õ7ªÓ³“6\;ä¢ ‚ü® î~ Ðr&”'Kcþb§'…N( žY=~º?œjýKÜܧtN¶î«Oûþ÷ ØÀ€$¼Ðtùž•&zΞDÔÆÌäÿµôæ¤`ýûrž8–©ÆUôwðû©',<ý#ûÉ*ˆý‹­-ñêÄ‚jGÿÀ‡Ðp¢fwå'Q@m¾zÅ€–1M1^ù$AEë1ãG Ïø¬í Ë“^´EÍEA¢>•ëžd)û.ë+õ¡$üÆ4|l³: ö¡£®i%HÕ¦ vé?c—oˆÅ„ì½q½–ø í1 €á&iù“APRßôØ’œå6KHcVåóáPƒ·‹õ4%¼ûäiœ ï†{¨<7²o3*9w|>1&MýÇÙ6ƒjža\¬UЂÎÚÍœöD=-à)ûÞ¨Åï/±kÖm¸ã’7`ÒïNëu&É 5L%Ÿ@SÄC=ËhÙ{Ãz°åqÎû)O©œ†A÷óŸ \™lÃw¨ÞÌ‚æk›É²áÞ¢"j6”Ð0‡fžjEí²-*¹$êÂYÞ(K {ˆ–gh.ˆï ®˜Hæ5,pY'ˆ¦§!\O£ ééG6}ªü13w 4c]Ffàª9:VȳVÄV×½mÎo³ðU™i\~8«áhÇåíÛF „—m¨Q¯H¡« °Lœ¤%ÞJëîtÝ5åíýƒ—ûÚ)Ëä©ò:Ô„+‡Y7¸ÁåtÏ¥Ûøó´æ#=ô£|Ì Ô%7!ßT5¾<ày Ç²í¼ `±xÕ묓·\ X륨?£Sœ+Uã¾ÛП¹ìÁ츜ˆàEâ½\<݉õK1¾$€¥ \1B AS} »-È«ßË/£3.d(•g8® ÃU)dMm‡ #çÇ‘KG•Ô¥WÌ¿#RXSÆ"š%£ìcQèü¯·Ee)鎉)úå'雼¿é<‚‹&WÂ,–¯-íL×ÖÆ ¥(©EÁ=_×ò‹zÐx78!Ãÿë_»0XCP‡¸Á•Yýßš£HHîô1s::Ö°§" B„ר+œ»/5Z–ðöø=ü¢S~³£fèæ±/Šy}á 7ÙÈ; GÅ¢Výç°cäòåç­PpÄç2î°i ÖÖ+ðpߦt.ŠèÉÐ…{à^0®š&ìB…ÉI-#TaÔ åxs§+[„K?l€U=#oàð<ˆEêÛb¤¯é=ls¸¯©¨à[ˆråö?é]ÿwÂB®> …PãÓÎèä ®¿¤Þ³±r¬šPwxjmNfi¶’vq†3ú2ö£ã‰«ãÏ×]µ S½Ëíî§WΉg¿7ÉÏ_³åxð®$~AǬ¢‚mÔ{Þuþ¯ño.è»cmU$»Ú»-[ÔÉQtB­ÝPmÎY‚‡ó¬v)ÕªQ‡´¶k’r(LªkÊn,à YgI?³/Ú.’ÿddŽÉ-x£½ ¦˜óO``CÏ¢©1œ‚ûÆ÷Ã!o±U‘nUF¶è­Ðäü0ûÿË,) 麠§q>„ZˆoÕ_µçÌJi ¡àçË5¿‚r]U!9\žîy\|õLLE©û„ÈÚÒ̰3si_ÿj^ œÉB<ׯ3Ò 9÷•›Trß<¢=.ér¹é«‡¢_ë¢Q¥ÃZ=M§çmÅž#Rz,½~‹.\C–ì’0ºtãr'nÎ8JmR-!IW%øÕ¯¯ŒŽð!>wïª ¡ƒGkvme G=q¬m6;6"9Äb±!{™.úK¬šÊí÷n@| ¼uã*' £¨;ˆZV)Æ@4HJƒ]÷³²*NBñ¨ÐØ ç¼7üLµó$“ÿÑŽ§™yÅÔ BüѶÔFåÃ|$a¯’lq8>sö÷-Ñû_à’AdµQÐÈðóC#×3Åë¹Úé?hMzº7åðZùCœtÑ«8ZŒWWO 0GêW‚ŒÐª¿†¹Úì i¸âCpëo[Áæ NËAp’p’¾EÎÒÐwŽd«îòYòyñÞåì¹4”Ý[X{$ï/"Š14Ÿ%vI76ÙQºX¸Èþ¥âûf>œ n@‚$Ê”CZŒU•3×Ë9i˜ \ðÛwxÿJv‘GLýÔKNg³» Ù€ÇýçÞ¿ÿ3ù·„ç:m“Ù’8ü ¨V±ó@Й³²–^ßh¼¬óà.²—ên®7@¦JI‰Ú)ò·To'Í79Çz»®¿OrüÞ¶‡YÊÍì2 eM1Xá*Pgg÷Åî:§‰ !º-¶š|2Dô¿Ú:Õûy`ÏÕ /ò¯xa; Ýq82Îïn6”üAƒçŠw¬2†«¬÷!'(Âê4‘v…ÿ™Š¥   È„–ˆ“*/šxËe-žˆÊô\ rgøÆxan+¼\ÇP€²ÓŠ7aµ··,-·Íy;šÓZö0^œAÌM6d'V~P2˜ÿlUÚäÉ^ Øá£ËC?Úb“üLâ`·ûç€x5ÛØ«¸?&4=vXhàüf@íþüŒÿ&¤ïÇ#ë 8i{å£ài5 0—K½íyŠ˜I-:‡³ƒQ+†öö•¡dyÜIÿ‡ÿãÞ¾}2ˆ‡½ÏZ3‡vNšnÇÃAz £ä:¶†©ú€¾?ô† œd㉣ÊèÆÀzÕŸòÊfé®á+æµüAÃ_¤Ú­ºØ„¾»Ð¢½axeÞT¥à­Tá'Ò5ÂFJ¸gæoƱ™¬àã[¹â –™~°Ý¡u• êL->´P0$Û9é!vƃ¢[‡ÊêòfñyÍÿðVzßÜ’¸²ë¤T,Û¿'‹}¦¸KC¦\ˆå*~–7øI^¼WýçàÑ~Ô´6®CI˜Ï؈…é«Z-F)«Ä ³MÉ{lì¥[ó8ø@ÿ޶ìœÁ2Xp Yýl\ä'ü|¨¥QcSÆ—cŸ#`cjIòÃ$ÜìuéE´È¦ùEýÉ…#Öýˆ9"iNÏ.*¢ps‘  4šŒ=x >Ù‰¹4Î! ššR(VÈ÷ܤªèIT.ç’’ù²6æ¹ aø¡uJ¶,² ýOãÃsÅVc˜p€ÿÔžUÓD,äKAamo˜†ïÏtzjRW6pXŠ2³ «ˆ^@ØÛlíÉ;:ë|“±âN9FÈuZ#>š{E^=ÎËê° ül´C 4ì©—2d>méó¬èÉâ·‰Tr”¬J®ëºJÌ7#J~¥c&šëÛO«hxŠøñø4þ ªŠ>õØåHœ@ä²"ËÄXP€bat]ÐhଠËd·ç¿ê …ã&…™gøîPÀ„ôÜ¿ƒ'Ü©E…,mUù ÈïÌÌ3’—ѰQ%]¥ËÛ³3îVo¯˜ö²×ìNÝÇfνv‘û!ÛAêÛ%Cøúl§–aúcßü}a@|wØx&/*$K2ô *'©sÆé e?ÕqøÎc~ü|yÝÏ•á&ˆyO6ñwh»>=n^êŽó˜=Ü^8°8ç`q|+ׯ¦åÍþ#G¦¢õ_’ž²ì/bIáD„H^ÞêPy¸Å-W†St G4|ãH°ò ÏdÉ‚Ï8Pg´˜í›´·Zí ‚¡@9‘ªž$.Ë z>ø¬â–£­^ ®[xè4åÈ=ü5¡!#TºNájú6龽ɎU¯‹% ‰`ÚNô_íãq}ÄÈÉGÂ|7…ÞüSþx½óv©ü‚{ª PŸ™1ø§pü[57P{gƒÓê9u6¥)óÝõt8ozÎ4æáTÞó`1f‰LpxÅ!‘ÿ¾89k´þµD‘äŸ-"©K´<æôðîi¯]MÎdZx5±–]?P‰|³ãI-è"DŸèI£k¤¤QP—1ÛRŸõå íS¦ŒfÍxµö`8Aös ü„-åyo×­»±íÂÓë'<‰[¢ã=F9ߟI1ìÎþ(6ioºåèÛ•¬ÊÎÅ*PË0¯.HÌÄhœy§mÀ1º`ïkž/äƒ|ƒÌüņÝ:j&43y6XsOF4Åþ± `{×ã{%Ð1y…Å\¼¶áØ#O*öŸ]æ4®\¨9B»£ ½0<=Z9‚5¡Ü;SÆ’HfSÃÍ­ÌBöõÔžCúü Õù°ºMÄé1}ÊšÆÍLïv}rÝò×:7³Âñ«ÿZš&ŒåšvJ´Ÿz„0 ­ö¢a)ÈgÅׂ’þREF"nbØž€tØA•H+Œ`XêÐnM ¥¡tƒìà!Ɇ<æ-X¥EwR8Àe6<ÈÛ Ê+¢MI\k’.]ë‹faoFFï]©Q°<èrYû…¤||‘'¶bªµQ¬i]Ìj[Aìq ô¯[¼¥‘ËÙúû¤°ÈD %ÕGú¿X^ì˜)ÂÔék,¸‰{FÀüñxŸËͳ'#¡xÄtÕ(y³·PÅqJž/x=>ùzЃçŸ8Ô¤Hx: ³6’‹©»Hô&<Âg‰”T€ªQàmoü=†dàr—¼+>¼-¤ô}ùnæÄ™$¿¡(3 !^оTçXDÌë‚6oÜq‹…m/œùؤ¸úp”âç7ùÇD9R°î‰”^¸º4B¹îîÔV!a-o_ ¯ù¬ƒ¨ªo²¤ÛÃcåvCÅÄ©£zËzÌõÛ¡WÞZ€l´ð†€Ê«›_¾}zÜ( ¶ëy%|žüÁ¢¢›Ê· m"–W£Í)Íè’ žÔNhÙ½¢Å)´Ý¬W°SÛ7Ë®BËu?6œ/áÝ(vz{r™¬Ô¨2¨ßUØvÖ~diƒ3G¾ .{S Kv:”BU!ïá7f# bQvn­Û·7üLɤO»®%)'Õ®ñâdƒ4[*‹°­ð7¬cÛ ”Æ¿0Uã[Ü?7½Æd°ÅüÂÃ?>0<ÐÓÒ=7ÌKøË²— <¹õ;«?[ÿ²¬[§íç‰}ªŒC¸@ÒNœß†Ï›LÍÃöØ`C’[¦žûØ©Eß·ÙW‚Cö«×– †H§Z \“Çý•CqgoQû»·¤Ae½lYgsX^s?±üÇkÜÉÖÊ_¯÷žÇNðÁKòÀ³xK™«G0Ï|÷vIÁÈúYK¹Ò§¢(Ù±þ„6_Ù˜/õÑ$ˆ›Vz]æ ¦ä@æüM G'Ÿ#Ò½›c0!Nº0ÉÿS?QÎzó×̦[¯?;è3—wCƦaŸÐI'®|hB#Ç]‡¶OМ™+½¿jʸձ±°>ÜFÄNvaY¥óàȽ‹tW PîX6-&€­œ7;dT)ÍVo¥Å"Ÿa…Qtɼò~…Ö* ÂŒ ¶€©’Z‚8î~»rÖiÃñ´ ˆa®ÁZN%)H#JB«èÃAE¤ÁƒÞ¡'‡Aþ+bpÑ_rÉžýƒÖˆŠ†Œ—0Ǹ9‘:^€l1ÈKþýB/½Z‹öË"Tä̬"@Löå='ü58z:ŒRTä‹Ì¹b }þéˆZÔ9Çímo(Â"äð«BœÞ{z!ZrN#1}Ó° ,¦T½R¢ËqÄNÆ)Æ~ß,g¶â¾®ˆØp ÷›Gç·~fZñ\/è§ÈˆÈßãS´X1å}óåQ¾läFé"üÞ"ôk±¿‚mûtN”3thÉ„žšì|_ïv¥ÙèY&“!+Ú!›‰Dˆ(ö¾Ç7z;Ì>S;¸û’Q¿ 4O¹í`"Ü™‹œ-F|GhejOŠ¼ïƒ¥¶ãñ¢50JO9§ª¤ µ½Óο'Eü|¬ùA[Ô` ¤‹ФjVÊ뺦rÉÚ$?‹Z ªAé_ä|&š#娎ßÇäøÔ&•YÛvNr‚Q‘>Û·,áö7°Û#Ö0ÿq–x´«wgci§u/ƒ56?ŠŽS¥ŽéTíž5,‰Ù¢ÃØ¥(üNgJ4z”}ñXͲ¦µ¡*ÉR@UðO‰ÂÇ÷دO¦ ”y:‚¤É¹Hà>}h’ŽÚÚ [©jÓ€ß4jz¢abåH]·}X¥_¶ßO6'@ƒìÊËøñ´[†\¹çýœñ²áKØgˆ–p‡åM<Ò y{ÅIŠø$iR–\s ˜æOV·Ïõû²;Q´·éƒ  ï3µŸ/âÆù¼rSZö†¯MoÛÿâVåj¨a^Á;=™{Oï93ÝèeF¹tÍÆD0Â.ü,ÈÞ]—D#"ïϤÆEbÖ}P(¸5Üj$ðGÒ ÛŠ"‹/º<'×¹S¹HÓ¼ñ5òÜÙ(c¤wý'OggSý>ýÄ nWk§5Ç;Üðìõ÷ðÿÚõíûþÿøÿÙÿ9ÛßçäàØÔäêëóòÿ×áãÝëòõÿÛÿ?ÕÕàÕÕÿNÿ×ëçæÜèÞüM*Dß7$(“눕Ř7lpÝú׫ޙ¤g¦JU ÁRÙ5FWˆ‘ @i¶gOÎ-ülùù Xm±EMÀŸ^S.棽Ómg8ëÿö4ãP?þSR¿D!K¬ao/P¬‰z»Ÿ¨T謼‹‘³Øfðð2ÞÿDJÚ7šû _ÌÄüÛ#".6dÉ€¡g;,xs"܉á¨_&>IΑÔf¯ƒc–KðC€>}Àð!×¥AÒfÒò̤+ÕÜÀ |-a‰÷»wZU0yö—e^öù^ÔüNEÍ Ìotâ‘¢çFÛ ½B$æÜfn»Ž3­Žqóñ•þ¹îvïmðtÌ}šf blª/æÝ½ß¤ÂUG¥.°„¹<ñìé¤`/Y ™¡‚Ý¢¥Œ)”E‘ ;mEµB¤Í±{éAÝÚmÿPН´šU›½-\.c_K+Ì Â qµ-èÈu/œÓ0käF~¼™à¿êÆTéäYxä}v>!Ð8Òwà‹V×ËÎ%!à‰q4JBÖV_bOÚÀaçU¨H¬]óifìPhA¤{ÈS(PŽá”]¤ Ó0Ø`pT,žEÀ‚üXFebH™¸§p ˆÚ04£Èáe„/+x{ùb°5Êzn0×µ«41ŸÀbXéjųWÍa.x'€Ââë(EÅÅN¢U’ê¢uwTú?U>»ŽX›ƒ0l«ÑªŽ„TVóä4ÖÇ€8ýÅÒé­Wƒl~¹“ö5Y‘ šÆàþÅÞ¼âyOéTý¤®I áàµE JîÍkÁ•Î2dO¤`N ÙbCF#QŽN„v Ã@ÖàÉsû«½ÙG-"õ$fuÀL;[䆷í)ÈæŸ.²uAi‘ñr“x•¼$$ኰâ?>šï>)ü5n.£>áÜ? DùÎÜ™etÊù# €j­—µu P}˜«Û¸(Uäµ$o1Æ1Æ…È«2l¾;±4 Ø»Gã€ßLðWÑ{’ÔôÏÇÓC Ÿ¨Å42ÑõE&æÎ,8=èc”›4Ñö×zœ¸¨Ö‘‹ÄÈMf¶¾µ7lìj9`÷ÚêäYäcMÜ0í;ctœåA`Øøœ¯@´”ò‚o©"1JBõ"×LL}$æaä~ÌÔ=÷·€Ö_GÚÙŒbO)Kº%›-‘W[)e¥SIe›©#~C܉› þC H£‹6—³ûPpæ:¿.ü5cƒƒ£ÔÔ¹Ùá*Ì…¹åêïH\Ï"ƒ¦ßp|o0aµX˜`7pØ©)á¨VʨLø³"²¤‰Í§Ö ©wŠ2_w~%îXаeË;[>ák÷ùTwØäkÞ]³îÐú¹8í&Ë{t¡(|8u œÚ;üÕIݵc2¢ð TVFÙÄCÀæÉW߸GWÌòŒ¤¡ñóP—‰‡ÚœÎ:6 Ä«¿*Öãú1,X©`[%Ä¢4­QØòyÀQg'Ž.ôò®&Ècî"c«ÐIQ;uÓÔ‰æl7lã7ƽ«:úçÛ=^¡‘0QïÜÁþdm\üJcnþp)(œ^ÜŒ‡Cýª ¢ÇÆÍˆª˜|[çWбI(=œ§&¤þ¦žŽŠôøâÏ5xñæ!“ ’@}jdË'Ô1§ÆÃg"Ž»v2zª¶::¨jânôE¬{ƒ;pFVÉ€ß#¹Ñ,àX×säŘ;­;Õn§]¹MGÜHä@ý §žä"âi'¨¢¼=nøHÏ]¥k‡Õ/æ%‡üaâqóÿ6S—ñîÑi‚¢×lüûÈ@T¿YÞäNÃ{2ö̆L•-U†ñMãìB´uPd©½H½$. ;ßÐy¤ŒË~9šÖ?ar/ãü|¨ƒXî#Ìz»/žø½°iäçf #üM(4lìƒ!3 æ =|Úƒ»›TÍ¢ªeéÒôeÉ›>D¸oNþ¬ƒY¬kqU]êC8Ô- 0ŸX¸)ÑeûÕÍô‚6ÅT(jŽÕ5nH«Ú':1«²“r]æ=ǃ}šÙ’º€ÒâèÚ¶ƒ·¸–nÕ=öé†n¾ާ¬kŽÇ„¡{2WCØ€ýÂ=ÑïúÞPsÿPÜÀ¾¤éd*Xƒ·34?;Q_š‚Æä.NCc2³™TYw:å)RsÞ“ÍXùìÛ4Åùã…%æ ©óG3)¨ ´„÷üJ]ü Æå£- ÏÙT8䉮5£¤2üf!QpoQÐÒB¬nF`vëB~£ÓÇ;ê¬p†a½]ra@QPNY¢Ú™ÂØô‰gª%¨Uë½UUÛ¤äfÜ_!еí^¼D=ôò¶Àw¦Æ¿wjOOäñàt"«zìÕC„õsöƒ>/Wôô’•¬7[®Ç´9­çkÕßltëcW¬ 6 ?:ÚïØb®Ô8LÆtà ½”º‡cæٛߎæŽ>ýf³G{uä9°áì« ´±8Kh-C«·Ÿáï´þÔ¿´ü â-Ƥ ûëX|Üíày©o¬üÆkØÿ’²I‰Ï>Z;¬`Æýkî#Y`]êP§8ð-Ç2óiÑ奧Nñk¯˜¬ˆ}wÿ×f¤‹N:¿ý«3ÐGA.ÿDéa 9À?×=†çj*N‹@ =À'PI{:sVåéIô<¦jµ˜hÞÏÅ]O(‘+Ó•¹3oîÚNû'v8dyŽÌ¥ê*®€–@êÐí]BË2Ø7ÒpÏ5Õ•øÊ›ù•²* BÙô-²C’Ķÿßâa*4Ó¼…| LjŒŠEF™ì¼†5C^Àeú–;2ç ‡áÅ)yÖçùCÆínî£#"³ô=={ O )ƒwO¡¡üÆmAQŽI¯b l+܉ HuÏÄ6÷åÿÌ]£ˆ²Ži.p;($4xÖ¤H¥ç­î)Ì»ˆ¨&l—hƒÔ"‡††|Ý@ â%O´XoýkÆæVx>é²Ô­RbÔ(‚61þÂ^¹žÑhÍŽ‹)sÏ?¦sRhã¾õ~ÕÈ)„4W*àpÙ¶×iÛ0Õ)v;C:݉Uü–—Öº‹Õ -"`(œŽJ¿wü=%Ò Ô¹ëN[Ù@€ƒxÜ«)ÐN(¨><†T…Ž”}mDh¾pL–ÀB'¶T]ðïzç$óˆÙûéeJƒ‘Õ3J‰¹èóëÔWâªÄ€ºŒ³]¡¡üIñ`´U‡Ìzé½³ŸØæ««?¬ä|1)¸­Œ‚GAÚ×ïl|Û£`¼[•n/ ÚÒe7ü(j<îv¨ Iq±%Ê Úù_Ä~j05v5ØI÷½Óõ:ÏÙ>¨}PÆN–€ Øp• wΜ âcbVC%$(¢SA9ÑÚ2{²hçßg£Ü€ëO_QéU‹o`㊇·\n`7A*3RÊ ÚS+¥Ål„Tf±2Þ¹y§Z>8Ü1„ĹÃd´aÐÈÊj¨ˆŽ+…ho™J܇ïôÀ[³wËüƒ xã*ra=fÌ‘­ê_mÐòü|ªW,ƒjêq!«Í)I‡|«1±i+­O£|+ÈÏœ|â·‹š?êï êµÙ¿Ý±øóJø±_Bi§i²c˜´'ÊÒ ]Ó@ïÄøü”îAêµ oÕcÚ4‘q(Jè$œ ¨´n§š1lö‘ÆCƒ¬¨rRm“bUù^`Ìz/“x1þ7n;¹º%í\ /W;Àóÿör«*œ€8†Û±pX¢mu ÙUhÇ´ C¢ '­b•âl>kqÖÓ1-¼P^'yÖ°ÄÙY­ò(è¦Ã >-Cn‡ewZäé^ ¾Z‘)øQ’dïKkf|atQCœBÛ€M b$>WâKƒ]ÆEåü•ÐÓ ÙGimv‚1©‡Q 9gne4šlèŽaøíPýË,)5 5Åʾã˜q£’gŸj-Ex% Ý• £+¿äóØ‹›­/›·¶—É´¯õ‡7Õü‘‚u ýÛ\ƒÈ¦½°ˆäÂK ò´@“Ä£i| l@}¯¾ŒA% ¸xìy©¦JÒìì÷’ØxƼ£ûØøP·ÎêîàQxÿÿ;´NëÃýhô¡ïµàw³;âÆ!ãþ–{ü|¯»¿çÙà `_IxS÷kÚh>ôœ•ÃÒÍ$©™Þ«ÐýµªÂE­ÜN¤k=d[¥V>¥ÍóÜCz p– `ˆ9yqânENôî¤M"rBܞ̴6¢+à‘..ñnˆOœÊP˜îñ5PR£åb¡å«í½Ó†‚2Å QkbäÑf)ÎW8E±ïù¹óé]¤ ýñÅ9±qûÅ»Q‰@DÅcxoÔ4 ºL/-~-þõ™É/XYÀÀR(Ñœ:y¼ü¢Ä×@bNÂC×ç2Ðí}jòÙQá¼Â’*Ÿ í5Ú¨ÎB*þËÏ„0m8Òj<@H‡/™ËxÞf?ê~Ÿ8 m;#1ìÚ'ˆU¥¨JZ2†¤o°Õq"ùŽ÷RÝĈH–ÈAÈ¥×èá¯.-üJWGbÙ;·WÍdó¾ ôá*oÌ'Ö’8<ßAœY~)“ý ¡›ÎΫƾôž\ó«U§õ]žFÍMd#ÈáGpqÀ?c«0y*dyĘ è±ÄŠûf¡1¾ (Á ä¡DôÙtUÞ”&Ràb+å!FWB¯×ÌOªËú+A¢‚g¨]uOzèÄ>u|ìî1HÓ»Óÿ°;Ó¨]•Å×Í<ûtŠ’pCÈr})µ Ì·Ðq˽®Ø‚š|0Yx7u‰©ÝûÐN¦×hxC†,ñÎYˆ"ûüN<„ ƒVÒ8ZìXÜ1§æªb>—þ³=qÉÛ0­•÷nL;"ôÆ~è­°¦ ç@¹í¹Ü0¿fƒô|Óâ–rr=ó©$$À-r¼s텶ꊚPÿþ<¹}Vw—%È(€Ð®Þñ]Ï“K„"ådM}€¹‘@‚õ†ÿÜgjcûe§‚‰Ýr’Ó.Úy-ÀЛi,œu_QðÒlè„Уl -·ð‚{'„×­ô7¾çðr}/Þ~ñ§“B°H«Õ1ÕΊ°GàßÓ|Aoï‡Ù+ô¯03¬$ªíÎüM[¿5@­Šg\åös&ñíéË5½\skr'¾Ã³[îH/dûÿÚY-’mÿ¹…·]fï%}ŸÅ,ÞÎÆ²êǸÙlŠÔ»<Ò²Ù*?§&9A¬—“Úe#Yü¤ôp(}ýý£K„¹ÏÝV‡°õ †ÀîÞwÍÝíméÑÎN“â¶}~*´axÙ'9ØçeD‘øk&Ç ¦¦²Q‘HYÝ_èM«®dè΢D¸\ÍÜΉ]´Mí¾›†Ay߈©H•&›?©ì!åË?-.À{rË6&4ÈUíX[VüMmqÿ–Ú(½D¸HNT ºÿ´åù™2ÖË9W¿—Å£’ð¿ô÷ý¸­N¡”‰çyŒÑŒžaS:È÷ÜÈR5‘‰ýÃÎ(”¾YÍ•ïl EìWnBI\ÐMˆé0úp$ï1s½€JÍZ¶5lJE$ÅÚ%Ä?ýŒø¢´¯§^Þç¬õNƒÔÖ¡_0t€×× [ؽø8ðzÅ4zúä´2Ôåëï!3—mØ}Õ0š ÿà¯q^1qCÝÝ páÎu8:`¦‚`…`ÝàÖÅSŠmÐ}¶²—9½º<^ üL°8©(òÄÄžÛ¸j•Ù$àm·Ke®!tp9£ßÓ¸‰#Ë(† ᧸µ}å3œ+lÅŠTÊɧ£ÕRÇÕ9wq¶âÕ XaÜŸû Ü„MOI/ ²<°'ˆi®¿mþ˜p–5ݽ½ø[¬s¡ÿ 3ü6P‰>ø Ý)ñ€Nc°"Ïp?'“ªåþÌã{¤ëhêò´£ßúý¢ *ò;š¡,ÕJ×ÒõXWNºƒ{K¥žÏBØ X6TÞÖøL*•,ÞŠ A ›ÑþÎÈø.Ï›‹ªXÇLžiá~"—LP*™’ßîÔÁ”~y˜¯P`ŠÍcû¡Àå ˜š*Oè³0k±¬zK7µÏ§gºn‚#Ý:Ÿ;g¥ì LTûª÷8®6Oå]£,$Íð‹*0B6MçO®ÞR㈙óçdv—üLñåJ ®v¶gè­jÑ4´™NL[{É£´üöÑhðøŒaËlËͯÏú~a$[éÈ¢‘Ÿ¥6Â# œI°qbû¶Xp.i-O&ˆí](ÀçY‹õÙÔ‰9~òRD}`aVˆ jï,Iô$6$ÒíÃÞM]³ïKò€‹s<¼ ì ›ÝÓ¬÷ö˜gÁò… ÓÁ=m©–µTÉáã,Í%üœÈæB»ôj;ŠúF)7*Žm~q¬“ôVÔ'§ÈϾÚK6eã5½áødüNQèaø>Ô‘Z$Ç»åÕ|ØÐN{h³QІ¤‚0¶€1àÂg,&šEÚ^äG„ÁÝÁS&™5e"Öi·t¸ø˜A3óÖCšÒÇP”tÖÅ–ÇEbj„ËÕ‚ªè,¹AyóûUJcHÕ¼nì «6—;þÌ&ˆhL“2r½”¡Q`úôôËQæç%DÕ‡J.õ°¢5¦ðº£ ¸}P\Ù “Ž£ÃAWøxÄ?Ϙÿ÷5¬Ìàòd¶ÁÔ’#´ÉÛ BlŠ¢úÛe63³ÁÚ ¤½@»Úü6Q²vÓW¯IPÎl~h :ž××&HÒumÚªüå-à¬Å Z íÑÕøŒå3aØ4Äy:§Î¬*ú¬¤(î6ùM¶H¸Ã°°?‘*™BnÖ·'I{æ­e³¶½é×û+ÔGÞ5†K¹q-!iæè"âòÙEœTù3ê3©o‹Ü„´:{a¡›‘QÖ¯w$œ&Œj[$­¸U„§ôôk5\|»mî‰ÿ% ˆæÓ&)¡+otÊ*s5s úYÜý.4zçìNbgoB–ùñ^ÞxŸ’OC³öMsÕôÜ3}H™Skq”}ýlÌ«ŠZ%üI}ÙhûFé÷ID[ÀNQ4§Àiмë2RƒJ¨Ò ðRíöû±Ë_ÕŒ³NLAÂQêž‘æSNO«f &\$Jž ¡‚Ÿ4>Ë¢Ê 0ŠÛ<×ÈGãHN“Š6)`'¡4f뵖ؤР×öSÕa$~Ò0GR“Ë[Üáÿæ†AÍ5ÐJC¹ru:3Ç– ²œŽ?6NzÍŠ¬w¿–d%:`’8% Ð,4Kúc´Ò *¿ö˜”ÖŒs¶Š±¾XÕ[:¶ÄÈcƒ%w—yÓV§Š$Ô†ÎeyB˜ý! êªA´ùÏzãM?ú†¢ø·!dî<ü¯1 ¢a“ÿQ?˜S2yâ×á•䛲k×l A{lÈʼn%¡ ¤½æDôã.\¶wñ”dJ(jý€¯kô“PÛÚ8äLû±LC OJ¢"F¤Î\†ipäûœ6GšÐ{Y<¶Pö Ø1±“Ÿ9¦·ëjÐí ‰±69‰–ºí"æq^"Ùf5M?ÔrÓµL.,èD,?DjW »;(#%5"…;⧠ÛI<‰ð9³€]8Fg_EÏR¼—íº~€%ñð霦¤¦ô„ }]Ù®m“s0Ÿ¡“ëÙà=¿®Iov@Ћ™å õÖŠüM!T],¸ }Ó=kR+äýKÛØM~oÏm}s#°Öß³éV®Ú;Ù<…k˜  „ùÀ;~ía–àS#« U¡tL¹žXi‚e4Ñ›-FàÆå§{»t(+&ä²ÜøJn¢}œ@æU Y¸«3†_õ*GË'ºG´‰ -}@ÐÖahé)ỷVª±«ÒBègúw8ïŠlë{‡‡‹-<´"sdÂÿˆ½)­öˆÝÔ)¿øÌ+E¤Ä¤ ÙeühPc2», †W1übàJ(?€Š<;àp1&déÔqM8Ò$ðUÄh¥„ Uª9åü|®3\ÛX¡ÿ»”Í–rçQ`÷ꦆT{@cÃpËmïêâå?ÊîInCb7©ä{“àR¸kåœii¨Ðè#…KÏ'¨Ò‹˜†Jµíàïckc»Ä²5>H?¨@×X·ìWïTÈ€àÕú²2߬íÎãÉ5½à´G¿,vò.ô¥,g5º­më}È쬞!+*x$8¡î¡ tt«dQîÀ”1Tp"~8$ìq)ƒ‰7¼ bê{±8šáÓ5jØä4µ v3؃•?ö;óî3¥jáN¼³ubÿjY"ƒ6˜±k*EÈ‚ïÍœ¹×¸Qol«ïNK’„$P›Ñ:ÝÌËÜŽI¬½PîÃ-  ŵP Q;À8+ßHz/!Ë €0§Tï£ûºÈ6¤opÛÕ_×óã¶ÓM+eÒîS,ÌJÒ‡jªN4o¬È55¤0[’–ã©ñ°Â‡ô¡˜AðkDi‘‚¬h³G¶€u^ÂZ"óœO?-Èr°q8³[FÆm¡+RI»5~:öŠ ƒž$A(ßNäNÛèbfÔ6}õ<ƒJÛ\0 jMUdÝœÞ_rV4¸/§¯ˆa'áZö¥:…½L~àÆü6’_†o¶vB&é\—’d$ xÁ ¢¡ßu×6rÇ8j)M»3OšÈoV ƒÐ9ÎͶøþëÈÖ)*§‘úì% ŠIê‹\кd-ÊʳnY¡§á[&RÕŠ ”íe#rÝ# [ëo¡#ï‚eÿÅhRÝætºC ÇQ$L*¹ž½=üËÔÎ0aÃh,µ»<P}¥·uûžv³-ìÄãßĦ͹Í'xs²"Jº+@1ASõ1P‚ üõÛäP åHšnFÍÄ}Þ}²FHÕµ5 Ÿ9û–xÇ t´±Ú†N2Âü±ƒP’dö "ó$¶ Í—Š1{xÔ‚v”ÎÉ׊ŸOÀÁ3þ½Å”»îã}+'SxãÑEÃâqiÿ¡]†ã•Þ›–~Q¨ûú} ’>$ BáìŸÒÙŠ›À‡~)+RÖˆ4ýÔˆã—r`Õg5 ÃX¡E‡ô¨Oñ¤¤L+;/éÉÂ¥ÖE¹OõÈRõêŽ+q°$a’üö¥7ïÚ$bÊ»ÜÖ;‚ç¿$Uù(.rS< °Lt_B…dS–ÄéÔH×§+E¶oaUþ/˜ÿÝ+…ÇçûÇÚå/¤(t´öÒüIß#˜.ЏÓDù´kÂ*¥>´¨ÌñÏ;¡$ñÉs d8w„š%ÅÑJë»ÀÇ!¹9 ˆ¥‘Á=’{3!GXéš{÷J¤fåýîhÐ\5F^s˜3Ü™ýJ ‘¬ ¬•¿æ•yÏSÛáå W÷@)|!žµ)óãkýÞÎw]ç~8ÒÁ×ý“‘²–²¨‰9·AÇtZf†í³Þ:A‡Á­*óf†÷~úEyóqMÉ塸,jéh¢eÖí³9W}\M#8A­_=aãM ;;ÿÔ༠ÿìüÄiÜæì˜EWˆà^‰ÛÖ¢ªÇ†¬•ÌÝßÄ” Ì=š×µ§Ë—£cŠì>|­;AS,ýý½®¬bÕ@\3¦ü…%jyD³į›î˜Ã^yž¹$Ù;˜š/Ý·MFTj¢!õֳʓ…HŒ¦s¹Là£tU©ØíÉikÛ2þ9àxK vbcuüáoÕJr… YØÖìi³ÀÔ5S^>N€d–¦ˆ±›+a³(ò«.uŸ¶„Òíø)È]†Ã¨fè)•ßè{œË¬Zƒ8(#‰ŸG [ÚdŽ%mþ×v±!üLï\1~ç•0^ åmâ;ºAÅÅßöf­+7¹ñ½i)ü?¶NC[j„>ΣyF…HlÕH¹ŠF‡¸|ï£:_9"ɰ Íû×sW„ç3»NûðÍÃW»}³¾~ËÈü”F¥‚&5$ùz™r·ÏËà‰ó›àÌÜ<$ôt0G2ìâRBš^x'pÅÁŽ"æB„L›v49ßk#óN–â_žÄæ%áe¿ïóIÈ=4¢8—ˆô¢rm†Ã“¹ôl¢åûæEÿ»:Žm ÿªRŠâ#â3›°Ð"¤' Y¸i_ç–9»^ºÐ›˜š­õ©7¨%ü™x@–¡nØÈÜ%9î²²phŽÁµŽ5q¬…Æ÷î¦GÔdSP(Fáý˜°ଯM´ëu£† ?æ¾`èëƒgï÷–”@Ú&J¨1ŽÆ[ÊØ¬HÝÐÐ+æßô¡T‘aû¹¬™öàýpÔ÷Ÿ爬ӵ‡ÞÛâý->F‘¹Þ¨ô“h£µChi"\êWš¢ðŸ¡U¨*“Œƒ(½VÖª¼é‰E‘õ?S©á—儨ì è1”†9܃sT†æç4›U]™ÃèØÐ¡v X'±)‰«Æ©Fjx¥6!S‘Ÿ‘dZ&i¢§)±>Â.þ–hã3¹M…Qu;^ü|©¦ ñ;øg3UHˬ™º•üLé,“ìvf §ÍÊ·f+" ÛEàÔlyœµWêÞÉ1Äã9ú쉰ñVåÓešR’¼BJÐpÕÏÒKŽ«·UÅ4¨ ÛY+¨ìy6Ô­ãɯBf2£Ç9 Ãí iµ|dö%.#ójü6ÊçV&¸L÷oå&˜’hs·YÚ¯¤ "×ðØB ¦¹åßð¤,žüxsà‡»¡ùõH.ìûo›]è%é6ÅzV2s´O pò哆h¾cä«y¡Ò£@ ›ø+½BîÈ£ZbÈÉèXa•¨ ½ÂéÇÀgÅ<‰Nª€æf¤ááByÝr)žÁ¡v£\1?Ã_ƒmTF+àMެ6h¿Eé×™¨Ž}„Æ”œTÍ‚Y¥£5ì…Á2Õ0ͨ˜á9cVOå”R÷WEk¸å¹ï˜BRsl&õ²>¦ÉA2‡ýQÍ CÓ¾äó€ó—|Gê #,3u÷0Ìéd ¢ñÒá£{bv„6Ðxå¬Ï”·ëGP«Ž†A¶a´PóÇ×@í R%™.ZeÅ7ž2ã/©™&ËnÌÅP¡0}«øb$ 8ŒmâaS̯YÊÕá²*Uûü}^=înWË2(ºaý+Õ™Ö¥8ÿ÷èðˆ†€ö¤z>Z¦XÄË\à]¾ Ñd0²¡äpÙðFÕ±•b¥7ùtC|á–Mè\+êô.Fqž´— 0¯×ãa÷•„ô±ÞmI»12{‘žL=5x|"Éðø èH¯^/v¸Òš—G H·†%W²ÄÀßòTU}HFv‰F7‰Zž…U¢¯8rkj&²„±xö0DjÌJñ 5iÌNºEÆÌGÊLKA g.IWmSëÇïo‰S/€1vd¡0¶ øÂûxÈ9|ÕUz‡8ÿ;¹*/Íþͤ|Ä Óꯎ#¡Œ/_òtÓHá·ïz£Ë/™â¡á„±/ýOò‡¶ ¢(h¤SÓè¸'ÕøtaJ -mpüe¿jKål9ºbç”W”Š{øüNCÈßäD-þßw*ŠÏŸP逰i𙣞E:*•ª&~úó„Ÿ!uô®ŠÔ­¥k“Mj¯'£­¼“âkRva4ö¥°ZÊîïÿó×x/×ÝßGQh Ö€òò«#«EBp¦XZ84öú7ã°µy%BrpÓ¿ gæ«OJZôl”Ý2"Žó–ô¨(ˆ½ˆÓmjñoĸ0O[UƒØj`Æk¹çRZ"žÉ—§ƒNg[gzî©|0ÈÒš2K¤¸FÛLá4æ¾C‡´ÅüM€ÛH jÎ"tÁÓ– ¼$iäÿÅxùíºâmjNdÉ3HfaÍá‰+S†‹¤õÓNNŸ«l&Ó²ÅÞåh(C>êö)C¦Õïå9ÐȪ«ÛªÞß~q0ÓmÊzQ`ëìþ]Î0%W¯`½?É•š[@½ ®ÛÔÊ)ãÞ©VcÂäfaÄ—¤˜0Õ¾Ç &¶h‘—e×ñcšÍ•«íEEqÈt?‘ Ã:ËŸ>©÷|rw¤•‚Êj¸1‘e ¸4ñ’²)Ü!Wؘ É«Ï¬ýG5ñ)í|P¤à¦üMZ¸wÏ6߃sÐÓŠ#¹oϧ´1>à?FàŽñE|^´›aÕ]í-‰½T+צíj&¤! ¨Q#«ò7¡ ¿Fæ^nøÓý!>jÙ=s±Öý̼ë,,3æ¸å€ŒãeU®^*}гà.ð‘K.ꂞ®¤làVèVk­X€× )yÀ]ê}ŠŸ»òNzB|ï…–š@:WëÏï&šM3ÕYÊÒZ/œ qÎ>šådea<û°.p<»×=åF$‹zȰÑWë°ÛXál2w¨•´ üLºKsEÕG§‘ßÚÁ®ï]'È$‘z€n²ûûšÈdu “Þúáçω̸á\gH$ÄÜÀs;J&cœê¼ë÷\èËðªáO‚’lvy´Ýû5B–v&‘&t†–¬ù™Z¥6©Å)tÇ‘Ñe/.XqJ]é ˆ¿7C½ÐÛÝѽ¦¤;-¡îA<Y€ÜÂR­‡án÷›e>ŸžÉÄd Ѥ-‚+Kw—xº_“=J$ÑÕà+‹?"뻫·)S™IÊäð•‰Àâ- ×Ô^ƒ¬Îâ5U¾1_.ÁÖèŽ/§Je(7Jõ¸+ï`%ãtÍóÕ’ÞWýÅàUÞ¬b6Kt½V†WW‹šÝzkæØ¡­>~á°˜h-Ó„|rçΩbi£u¸ ß²D¼[ù¹¾•ï‚«üJ[»†_ü#z£¶¶µ|ª«ßrш㌽LÖâ®i“†qÿ^Ç úNÔZa#ûDŸHù§eʰ°tmßú|ĸfá²B¾1­òzû>™ ³µ˜eµ—óÄÞ÷u¸“#x—XÒ”’ÿóCÄÈVN°7‰ ²‘åÙYFø…Ô“ócϾ%V’Ñ3c‘¯ü|¼Ø 3–?”8Õšy‹g ²â¦–a-O¼ P•š9ñ-˜ ä‚!W!ÞT°ØåíL…lAÊëœs¯WToaÜ2óLIÇ¥x•d“Ã;Ù;@Ý–Âå³ gÐlêpóž)Û÷õc`(î+,ÈÔ‹·Ø`H _ñ£«ü†f1áépÍ> øZ((C  …z7$g­¸o 8¢f ¹}j/OL+‘ѵJ1ÐFÕX ­N}ÞÂ?…½Ñ¦ÿM9 å—§"Ôe¿Ëé*zu…08”‰╺!ùH¯Jä†Ý0ùkäó_Nû43„D¥­i˜h1±¤©£`ˆ»„iNÇj¡¤€2‡u¬jEŒÓ±ðY>Ç¥Y ˜R}ó«Ñ[¹É´ôpÊ‘‚h5ÐïÆBkå˜|¨'ÇgÀF2¥m\@. ‘­2ÕBüñÉ~j]Œ ú½…0Ž€„ÿrâÒÍÉÍüËŠäÜÑ…ƒGQèâw u^¦Êòý{²Ñû ?â‘—hEÛvc¶·(þ¤;N‘›Dç½SK1Àº[àr' þC¾hD„Ÿ%‰ÑÈKMèýÒ¾#íüSL$¤‰‚”ï:pÓUV84²,c_üCÉ ÍÈR\glìYäµb `±š+(Ї`1ÈìVlö¬Í¦ØnÕÇ0Ö¢4ôR}·¢vcÉ·^c’ y¢Ž¢%‰ѰãO“ãÁ:ÿüÕ¿åo¸ÜªõôI|N4E»Ž¥»®öÛüî™~C<äo?¿ygå@‘óÆ.¶cV¢2 °óB8;|–0ߺPŒ\ò÷È/„UF ',îèh—jc¢ø¢Ä·ÍœZkñ˜:½M¡÷Ò¿Jö[~^hÝ·¨tè ßÅÌW×±mý¯¼tFAÇŠ<»Þ­ïí•) Öx@gɈâ3$:²U=<«è,¨ Â Òêá¦SÊ€M>ï—sØD®ã꯿VÀt÷þPÛUØ­§,ýŒV¶J4 År1ç›NÚgßÖ|þ¦}Ø©¿Â =ä ÆŠ‰•À¹²æhžä¸Pkœ ê-eÜ<‰ŠHÝ÷–A˜ÐšœVæÇ^¢M‚ºÍe¡.bP BŠÓÈÝÆ:•BïrÕ©ýdÛüðјEúü’w¨û†!JǹÇ5§á³=°tH R¢Â4Wý}¼<€Ã/C:\˜c¯¤Fd>…Ñ^ÅçÞˆïfQzLlúºw›Ê–%?ºc©­³þ²ÅúšßMl±k!£U(x–«@qœ°Õ1¤ÍAܰOî×ÉVCõôƒšp » yÙûéR.”¢gd|©<X'顼üÓÅÐpI¶îÄ"]úç(Y¿Ôº¬@‰ö×VqçUy¡ Ç¢jÛî&%ØÕ®„€¢S}ö;¤owy¼«Å%üLÙ7…qž¥N^<ÈŽÓq’èG\ Ò·ƒœvÜ\¼žZ-BZÍ8x1D)Ùß„i‘Eõ` &üŸ3²©àvïCxb?Ñ&=—³±6m}¤“ÃʰK[ 4cÖ?DÖ¨S·ô;¤?ê‡ y»ŒtƒþÁ`ר"]I¦ ÑÄú@Æz~ o‹Q©#fû  é‹{àÚvÅ}¨LD»×ùÁ«?íJCG1“èÝÐùU;x*Ħp¨­æ,ò·úÌ{’øÞôýœÀÌ«‘ƒt¶áºÈC¸ý{ƒ–ò‹~ò'°¤¸º·;€Éí»üMz"{‡Ê$A³ÙÄûì׃60åaG\YS=z„•´Ö¡ËA£_ÔWt²A¸ ‚·µžñº¨Å(]¯šÓtW³–E‹¯5?6a‚¿õÙëÛÊu/Áíä®v3 @ܾǫ:).´ÑûpŽCíƒIr3îsþ5˜'%ýªç0³#H”òu¹IkY2`¤L)•Ï I;|ŽCè§%è_bÔý7Tì…ä*&M•©¤Ä‡IoX‡&›Ø·1ú*_ë^ž¨ÛÀ³5G>Ô5XÙ½ÐøFoæ­·çû.Š÷/’òu^8GOggS€¸?ýÄ nX|t]E<ßðííèÿÚÚááàääÿÍÚÝäêîæÿÔÿ=ÒÒÓÒÒÔÖÒÛÞÜãÿÉÿÖèäâãÿÊÿçáîçéÿØÿåüIá]ÜÄ}¯O4[WM7îä®”7Ðà>,fO•†"ZöSzvvŽ‹j)Á^S§|Ï·çøˆX£Ã¼Òwg1‹“f»ì=¶DU4±qÿ¬zx ÖÞ¢vÅ¥‰÷Äî¼ëz~\ýgZ2ß§0“§U„…&T1Äù‡Ø±ˆ]7m†!ÝÛ‡ëàBçæ {;x6K Nž˜HÑ1Hù.ïº ?êÒya,¶ˆ™ åëþB\Ò+½Jü¢ÄK'ðü{ ÷·+s1š+†D!$F²Qƒ“ä qÝȨг7@–½üðÉn9†"6¤Ãúd»Â}TÍPo#@Ü9`æ2ò#zóÝ”s9£è5°m‘&sõæ)e‰.žcßgäÂ<¸ÃÓýÆ„»GqQÂj$òq¸S®»K;üàó5ÿŠú¯cO×^g”ó&N_gâ³?t㘠á|Œ#çHÀNù•Le“g¹áò¨É®¿LöÅž:§ÉÓ3áežó—(òšóD™Å<„?¹AVTAéÌpUF»³²"U3F Î>£Án’*ˆÀz²"óh·m§»Í!›1ª·-‡`°a©þŸyÃyx¥v”húm5"ÛüIí¦Ág*O½z׳Ële™…Èòãòž§Üû¼ñ†¯H@ØúŸßÁð•jgÕàœâä6ú ž¤‡+úöâòÚ=ÇŽžsƒã#/ÄÚVªÁlhY™]m/)¹pݰOœÙ(áJäÐar&r]ïJ¶p9â$LP)Ï:wš}oaíþêæ±ï°ˆ´5Ì5mˆúƒcŸ—+´”S+‚ÆÈ)‹i†¸¸$BÀ=©--2¬Nåaddö`oTf&5ÍÿI¡Œ—AM ›BY•¤wáý¶¾"€ªÆÙ@„ïC¬Ë ûüL°ÛÆ«s nUuÜZÏ]Ç:ù?!‘ ?‰±ß¬ðÔR¦?²ij®y9‚½N—,¦÷… Ì!õÕÍ‚BX0Æ´Y­öQN I4^O¢§ÉZ® Lÿ;„`¥Ã8(M#é_b[åÃ×yíCÑs6 –ÅPJQÕq2Ãp¿`ÑÂF)Џ=‹ò0àîü pýt][¸3ö†ˆ9T†ÊT²?¿‹I^qbØÙ3¿H]cSw[œÓ(yÓÿ[¼ÿÀËéÄþntööÑF7gÉ$s¡Uá罂¹n™O›]¨1h].¯•SÃè4¤‚DÚ„úò+gK# 9SNr¨/$Èã‡Ào¨6Å´AÙô6ðþëzî$ÃÀ“þŸ¤7 Mo-â(øžÇ…Ôì=%Eˆ¤µJ5gLm— Tíí9mç ££ƒw¿>ç6À#æ…¾ó:ø•»#ê¹W±å‹'®ºsÜkñ*‹ª–¤‰ ’iÚEp³#“âýyä“ìÏ‚(ö¬H’ÂóO»b]€iüJ:qÙŸÄ$_?Óš\ö¢Q+rÎÑÔº¨Ö6ΠézÍÚ!‡OfYLJÁJäá+ÑWò´£ðä>"QÒ®·[&öÐèn¿('s<¢ Ñõ=Ôï+f~º0,…c†t;È+v˜zžç Ì·P¨@kŒJL%z¨Yþ£Úf~×E“ÿ…ýN…¬í¼¡ÆpÝ©3-”v'`b¨pHíYŠúyØÕFA¹å%cFõ޳{ .Àä¶tÇú.ÿï«ìz/½#ŒóT¨¨(¸ò"¿y‘zÈcuê¾^pæR©3ïäüJ4p,MÈ¥T…íÕ°âÄÍ8~»Á\-³¿Z§…2bCÌÐ|žJf’ÝûaÉP¯©LW(”‡Ã`}ShÓÆwM2®ga~Ï"¸‡vÄdcÜ✾U’È‘ØYá^™?]d„ÄY·@†ø½K—u»J~ÉßCò3~­QÆ÷¨¼Ûø'ŽéenþëaÛMáç7´†ÄŽ‘‚Ç6šv…ruâ.\«ÐDú«ù·“ q^ƒ}tV[owÁ¦{?–ò?àfl"^QéóLƒS)ÈÈdúî“w‰süL¬ vý¹9MƒÃï>™%W½e®Ñ´…AÃ]˜Ä/¨%4í «úôœ ®|„ùÅxü¾ilÔ H0ĪGù¬<ƒ&‘àÛñnDex“°i9Rª6„½+;JV©-p£°ÃVüÈŒ Ò-§Ü^é!í\²]j^>–®sìRpER»Å¸ñíKSä^c{†6a›üuã8B/5ÞWƯΑ–ðy5—jÖëWP^ÊRR¤¯F4‡ûåXM«ÇG@~Õ4ÊZͯ¾C:«›‚[Æ;ýø•üÛƒÕÒh¼zÜ•ÁžzŽ_ó*pÝål€™Óú§Ü?Rq¹æ~ÒáçÉrÓx¸Â\®Íÿ|þIŽ»ÅLóœZ[R·…ïá&‚æ÷-DFl)ÐRŒó¦ÿÁ„¼x:Z›wÜ_àuh ZRû¾Œ-ˆ­6q½sÀ{»3ÌœnÓ¯YÊÑ'rh §;¡ ¤äí‚+%oê,~°€_ÅåÐÔCÊ®…tÀ¥*…gŽ6 $°¸¡Ts¨¿ê…WAÝÉvâVWïÿ4 +¾rJä)²Oܵý ’küÛÀ^àE/g[“éßU(ÁôµG—2WÔæ4UQúG1>¶ÆW\Zut# (\ÂäPÀ¶E`PJì àöˆÀ«¯áž“›úkÃS €D}¿Eg…WZÔ&6vŒÊ¥Í8šgGÿzâ™”‘j†<(Y— Çðˆ©›S7®¤õ#åŒø:Ü÷Á3ÄySÆÜDŠÖcq)‹§Y¹š²³C)†ÁL§X(_9t¸d }>/‰ÒµBï#üLÃÝÍ­ÔØ4£»V34‹^‘ ûľÆü|èr\ï+_6:ò‹’ªÖ«¥•ŒÕr Ì+WK¥Ä0LNù¢>?µ¼ïÏŠÓhÓ­…) :–'Ï1ÓNòOS­Qÿª/ÑS“_‹ÿ7Ý 6„:…Bꌅ¡Óà½Ñ úØ­cínp6÷¥î2!ûšÅnÅ-ˆñÁX-LñÂ÷yúÂqߎFcªÊø ƒv6¹`é $IËÞòÖ;ƒA§ƒpB&üærwa þc/ãz¯§P ÅÞA"á7ü6Sl¹æ5i·vSñ‡M*ŽdäU]oLŠŸj(“êi0·O”¶”ú{ Jxâ©cœ¤»õ&ÄУâd´ê®r4éû˜˜p—–7þ>¢££Y‘ *q]…)Ký¤¯bj\ñ/å>™‡Ñtu~"wXtïdººY¥® …ï«]î “ÜÜÅ¿ƒvè18CJ0Áhþ g­Ô•ŸØÓ9ÍeD{ø!¾ yÌ4½„R“»1õÙð$æF틸°|‡Á@hDïfR@zVíûøÚgÑòEÿqɦAx"6Ô^:oêh# Ñç2’™qÓf€½éw+¾\Ð%ȨôS:¤Ñ€ù¿v–4äÃÕ|’miÙÓÇ)FX1ö‡Ù®sx +LÄ,]¦Ïɹ„6\Ùêî2_#1¸3‚ËpåÖiv^*-ƒâ4éoüÛ¸ën"ÖÔ Ó!BžÁñ­§ÈdŒO‰5óùî¨S˜j¢*{ ^§‚±0‘ÞæØ¶[Qs @ø&åôfQâÐ%Œ>‚w-Í!‚Ýxû_,Ý‚Óxà>·CÃúú«ôBÕÜpÏ…ÍŸœ©!E=ÖL9£¥ð²C ™ ÔßKòâbÓ¦–*º‡QzGb”Ê2{õÌó6³ë®ñy·^®±d­Â«#?²„â7Àkâ-Ý.ìÒY¢É'Ñ^í$—+§éñõ ã·äx¾{ÎB¯XÖïö !Eóà€Z“ÙXD—lÄ”5ñ´ [nüM&¹SléÈQ†TJyÐ4$I€È­;ŽmêLÝ­r®ãn/#pGÑ^s±éâ¿Nâ ©ˆQ5ü£ž|ë¸Ã?ä(c²Ò›gDNrp+»û-­aß»F˜ž‘{ræfÀÍdý›%ò¬,”›<‹œáh½y8§„÷¤Y…e˜ûZ8='ðc>¡§óCƒErävtTF¨:4Hs~0 ŽëuW¿º»ñÛ•ãÈÁ¸CY—£ojQ‰ ÏÜyUóz{ûö©Ž"h©E𰬀Æë\.³ÿŽ5PSë™Ó“´ÌS_•?Ãüõ 7 ¦‡15Sßk¯•ÔN1 #/"Xå‘ìCÙ2¤‹É‹o°½Öœ‚ ³I¢œ$Õš íôÆŒ#¸¦>6Ó ¼ßgµ›%50MSÆ~ʦv®Ã«é­£½’ûå*Žr¯²&™èYºþìfžŒ{ú¦G'g?‡±ŸoRÕÆÁÈA1á:ÖQÖ[»p¨Ó#§[Bî®Ê W­BÈa£xW˜kgMcvÕ-¬¿½ÚYxƒÝåxáJ¥¶M„¾!¹•ÇNò¦¹i‡Õ"±P›¶o>E÷<Áb5¨Kµûÿ}ø€žã€YWž[r®Ü°ÙÐD×ý²=‹3ùH»¦aô„ԆĆŠÁT±%ËS/ Bj ± €â7º^Ú‰ïÉ‘šˆS5¯WYR"Øt/Öä#ÙàÌà¹né°HâÏ€Û‡dÀÝ£¤cwro¾—ž^᜘˔âÜšlþ¬«iö—n% ½ÁÕ8¦\âqÍw‰GP¹GV ÷U‹dM»`¬"Í*´»‰Û&…Ï6ím»7Mÿ%µE–[XÚ±ˆþ;´o&aÃóìlYË*è8ñg›7XŽf¾@þ×Fa¿S-Ù¿búÒ ¶ïØèé5ÏÊ(1Á"Ýü|¯ÀýmÐ0Š„¼ö“®…ÓâÚ3¡ˆe=çêr“ÓS…‰…Y‰¸ÉØû8•–Uß›Á”+ßXÍÄ’V>¢ð`0‘{àŸÕ.àˆ:Êcð4œN]Y}·Î¸Š…¥Z'=ó%Ö«Ñ^‘¬3V h”,ã&¾ŽÍ—ÿ;1ÈO.¶íàsÖèVSʯºlX”Lg)¯KÙ‘ë¯ø„¯½N4H{ä*ü¥å†|Xï†p˜è¾EŒ ×-:?VˆÛσÞë*ÈW˜%2ð~¯3«ŸêÎ Á…fúZ’†!úšUdJµ~ÈdµƒBñ¨o­(>óxNÈÈÅ·ê'mò¡ˆ˜’‰—ô™VkôOg8ËX.˦sÔÀÞ³‡úƒ½µimm/&³óDl]Æ ¨YCйÐ8½T<”ÛVÁJ[ªhVÒ}f’ŽüLÛ¯Á´(Ž®`®z¿ÙÝ yrfV1÷}&}Dƒ¬Ïõ˜EÕ™òÈC ñ—ýànƒµÒ]z(;FÕÓÂ/Þ´!òúF«*ðEØ”ù-¬ãŸÒ³uO6¯ÀI¼ G×Ó4”Äcó²vßQÓ~y¬«?ÁA$¢hÛÛg¥î¤äÐIn @±Ï*©TjÒGoB°}ä-]6¾õïfÛtô'oÔ`}¥ùiòªòü¿–ÏZB ªÇë›äeú…¤?5ÁúØ,úiy¿ï€üNJ‰`o&@ެ{³)K¡€9x,¨èškF4bo×Qk|Ë1ãhPR²öáŸO %™]?WÂ[ŸŒ~¥rÓ¿Ú^S”H!Ù*“¶cÞPÔþŠ¢ˆÖr>PÓ_¾!ÒgHe‰ÐN ¯ŸM½~¶Áš:ÚV˜ð''bòì[=‰ˆë·ÂŠÄØœ˜J12â’u¬ê‚À¯4§OL‘‹ >˜É1m“Hƒ¬÷xŠ3¸÷Œaíú/ÙqµÓ´í’Ÿ”g™qŽ) QºvXϬüL¾â 5V[S¤¿µýÏ­:L‡ÑõÐ:œMÈ#ÿ_TñpTHbáÐëB5t µ!.2&â æ;v5<È„„l¹êç:&“¶)sÓr\°#WæÎk#˜Ä¾àŠY‘SðàMélñÀyé™èId_ò¯xF¡“‘äjˆa+Ö6jQDŒ·@€6æ÷h9²P±˜ m9yÞWË1!"‰jÃø©bîä<¥hõÇ‚ë,œGlËçySãœ#êœÒ“kp–Û#‡2œ?A9›üMÂÀkmZ½X#\I§ðþBÿ0ÇÀ{éM‡‘ð&ÕÇ €9ÇJˆ—@€5˜+`sÚAC,%±ýÉRw™^{…‚“ t08Æ<›„›˜z,xƒøàÒÜ"ÅÒ]âØ0'‰”„‡#¬ƒ†ðEËÑ ÚÇf møηïÅÔ¦½ÌÍË,SÔ(±D¤æñJàûÂEî¡Í•Óã™üøø_öÿhÅÉ&ïP…“Ó‡Þ FDÏ Úò“áøð¤–ßhS5W]ôˆbc>WA±Õ±üMa€‡ÇÁ½´ÎújïÄ`þ˜cÜ$Ö˜ë|ÅODˆÚù k† áš^µÎècë¹£Hš@‡Xïð}.Fb%”±»Ú¶ðÅd%!gtí^ÇÆ0pQd¾üÈm\dÝ^Cb‰6ü¡K“ã\)¹Öwm ‰¼}ãá¶Âý…OÕׇü1ç‰ÒûnInÓE'Ù7•u¨}£±ÀOƒ­R&ÿ71r/×KW[IºÞ͹åå Î|­¡_óéÂH¤šØ«'>Ði©ô°ƒ*ïñ¨†ü5-/|t¿³IYl7û=Z:Òó^ÉbÑ1ΦŸËï®j’6Ç4Ýú¤ÓVž2% ²‡òM½DýtBIma£ÇF?]öK0h¤ÿ½6˜ðj–<‰hüÝÔqopœˆej4¶<&ãŠèƒä´QLÂ0q̱÷éÇ[0蟒–jé^<2IÜY…ËaˆQúúæ-Ôãφ‰÷dÅÔŸšŽÍE8>l‡õxƬ.8†*—$ûOg#¡¸Ã‡Oæý0~ß%Ž3ð«üJšŒÅ¤s¬htÙΦØPpÀ-­èͦ¸PÝ\À–W̌ۛùZð6æ`þ¤.؉">S|ŠFϲ¥hV.Q¼žXcºå%dœEQm7ê*¡ƒ‰¡L™(åºc½BR†çŽD‡[zÜÛsþDâƒõÿˆeO§N¡(<òg(<_2ÝSÁx åáš&–ŽÜèø’¨3T^j*dh¸öu0LJê]wjÕgùæ{ÍœÁTÄÖ)æH èüÙÆ6&éfI•Þ?EfÒbíˆCDóÉ#à ãñ½Íü”jì; eXV»øM~ç=×\§²~몭qi€ô G °C`‡9º]?$*j;°òŠo *wZµ Rä´IÝa ãæwEd6s8{i&žzÍq‰ “Á™¼‘˜9„ì€/à,°: NsGØ9…¤Z¸„N ø¥²Ä¼ç¼£ÅÛ½£‰ªa‰¾¢â&[?A­ÿ¨J7¯î>ãêW_4Úñ}çn;]äÑ+­­ÏŤ±#‘· ßçvMØ/ç’oüJ6¤/Î»Ö 4úpiK_¸•Lž\›ÖS݉,¾L>Ã-Ëk$X§„O¼Y<”£¥Î¶ÿ ÝŠ:¬¬»ž’rò”?ñ÷vTÅœg›¶î™þtÝüLê*é‡úÁQ5£Ü—»­àe4!Ý6ít©¡ËáþèJ˜ØÓl•ø€‘Y§!6²¢e—X:å>ñîÍ”°8U=g6ÈfžÂF†”5—sç¸:2“jjOØý{b®}Å¡‚ @þG}âx4Š8¡Û¯ÊWó—«eO7ùßùKêõ»JzüL¼0ý0…>GÆ^²¾sóVõœlýEt¹‚ åÎQ!çíSdÚ¸Ò¾b‡öðÅØ¸•惶õ>Ĭî\†J)‚-ÈYžG÷˜Ž?““” ›¯Z1SB²CÚÝPƒ†›šznÈ60˜L{FêšlÒÎ!Ù9½ ‰S® jàLÆc`4|ûéï¯QUµä¶kse§vWÅfö´Î‡#¨³è\ýÂ2ïZ@¥>Ç+ ¥BÜ詈¶göHßñ½=köoï‹ÓÀ/û2YY'K~ždu¤ÑeZËch’+üa`+îA Sü|®D)LúhË©@ª]À&RÔ…m1,¾zèÖ(²sÖR]–½^~ʾyŠ{ØCE‘t‹çÒ¢‰*âr=‚å ÍÐÀ &pÄ’ëKùþñCB£ ˜H{jÕ°ò~¢Ö=ãÍ‘Sé„ÚŽeª”µÉ!ló"óC¢ªW䔫EŒLŠ¥9œg+–‹¢í¯½õ‚›À­æˆÐø)cÕ~ÜWGxùuìáP®µ|œEyÊÕpTŒˆ¼7ý_²¹\{ÚJ€“æè”t(CÊ¢-úZ‚Aƒ®"¹PyèéEãÏ›pg§n†ÕÎQY¾’צ…·|"OZâíÕ¸UºIº˜£É9|};<ßß2·, Í*Hò1vêø~ã¶‹ð–ÚxK̶ùßsö9ò˜/J2Û…ü¨ýlyeaëv[±žwÜ8‚.;û­pÏ/wJ4²‘ ü¨6Ýçá±Có⃻…Y³æà”߯YO® {S“e¢Ê‹~e¼¯¯m/*‹š®-_Œp3g†ì‹mñoE[n ‘h~yšžKœˆ‰\ò ¾˜´0·eÁÐJk.$´¥Ä‹èiCÎØc8÷—°ýeüì”x†_|üJUfLqRK(Ë7Å–ÓöÉý3Ù;“µÒòÅEe S?£´ûQÁè iÙ›D$DÕï¦!ÜÍ“‡ìGuØ•¼5±ýh’µ CS<ëoü,aôƒ;¯IÉÏ7q´lÒQ{ç_÷œS£q¹SimÐwª°”?ÅL?ÿ›ˆíiÖóok”V¥ÑS¶”©4 ¤Úç¡J^Ø‘Ýþô…Y]ßý\<§FÌ,Y@¶ú׸+VGÜW☖¡¡Ü  -j]aB†ewÍŽ‘¨„iTTÍ"äF˜EŠ˜ª>xl²;lã‘@&y“Æg/9Ñ<•­}Ðî£û°?¸¸²5ÈvÑ\}ö;«‹•/a}ü†q ¦Ì´ ²W6 í+Î’œ :bKne¿ljÇÛÒ~ë­¢‘È?-mu¬ö}íÅr*y/ŠR>¼v­1|TïBݺðTýõ>ÏÆsϧW"ÆÓÛ4ÁQb¹Ç{{jèÒ1…(5úÂF P̸cI&{E¿€(~»êmÀ{´Å7|ƒh_2½,“H៬IV§jû`²Žzg&<R'‘H{ÑÁâF•º~¢;7êãŠ(!S!‡ˆ{+{[º¨Þ²Í#a1ÓùÌ\º0®@®yk Püñ 'Y¯NÖŒ}Q:ðcÃ_nFÄ Lú¬WétÏX eg÷ÐM»ÈRd´tιǠi«ž³B&NE:sàÙ—T š¹êíSŸîëƒeû'áZ®”¢abÉÍý}[¹Ócò¦BüÏ„…>ä’Ÿ‹S2i<ܨ“Þ—5nkçû i™yƒ²¢Ú¨ôƒPfcØt‘ÁYüo”ýü^âÄ&]ÆÉ@Δ#Kz˜´$‰mHø»YK’þôÞþ}Ï÷ûØÅ—úØÅ„kžÜ bÂm1žÎ{¾ŽL`q$Ox×ÅWüLâý‰Ó-Ó\C!¸ãÔuãtËÖžZ<ºc¯¹{4ùëîÈ"L®rÕkº0‡¼DØ­™‹op”‘ñ¦!R€6—pI‡¯©‘_ØÀßõÿÄÙ3j=5R 6Ž[BèÓý“®OØþPš=ý`LÐÇ…¸‘v¬²õÓÌuÜýKWêïó 1Dc{4[÷uÂE»9ɸ?µåäÈyõÝÍëßÿ©#…Zø‡€kY»²!Ü–•«ýµûEø8Ê.wÉâ9ÎB²Aˆ o¶f§‡3}$güúêœWʱëØüM"¿-.»É`Ð-eêï†ä¼ô“$¾³¿ó·¬/“볓…¢UÉóáÑCúgËJâ³gŒÿ7Z%:Húuü§•)Ü`#ÏÅ ¸–jÀó8;@,â ì!âŽÙ-:†&Ĉ1g“£¿Î„ óª%a“$DI²Yh«@4.‡Jo†EI{ÛbÕ>ÇÌòõ V7N‚=·I‡ÄE6õã–¤œž$•cÐáÉJЦTé¤4ù˜.ƒ¹nP ÅŽãvJJã¡þÀ™ÃJh y÷Y ñÕÆ€Œ.¶ê™l[0qùæüÄ!‡BÑö¨èÛâ×ýPø¾×·{,±×ò&y¤+<ä^­F„ Φhˆqó=Kצ0jñ ÑŽ Ë >y‡x˜&S}çTy‹Ú_É_…­Àä*˜BN› foÃ!±âDôõ*"ÊK9˜3a ¥Pf<Û½w¶9Ì÷õ|p¼¥ß{]Õœ1ŽƒKJ“kªßrºßÔ §>‘ˆÐÖWó¸óúÁH¶¢bí ¾ÂéÊp½n9·‡w¼»£æi¾ë y¡áÔ|Îré&#£±`F»ãœ’¿Ÿ?=Uùü}\÷Úš±Šs[›ÑŽ€ˆ¾ÇÐí§vP_CJË­‚º%£nSº”Ƨ¿CËaèóU¹ ¥¥™åšÂâ ¤0]a y$ÀØÍËî6|¸Å3ŸÖ‹ñš¸c×”ìJ<ÙIJiû¢Soþf£rS«²ðÆþÖi=d”€7w˜±W"@½I‘$b Ìž6?8­4jÜ'¿ö|¶ÙÓÆxîÑídqšQDPcþMídC 0 ¡á9’Hq™ýÅ‚&®‡Àò÷X µÑîõ…¨8'ÿ~sÙŒ]Èõ»éåÚýKpœU&(s;Óq¶1œÎÑg<Ô‰\লT^ '¯Mg,ùìj! ‹vï›fÒE1Á¬Ï6*ât¥uÞ]Ÿg‚‘Mй÷MÅg—È:]Å–%ˆô•ozCÚÚ:•÷IþùÿCðœtLÛªmˆÊÂüãŽVñƒB,Fæ"šá m+ÆÏóÝÔHïí£ª»NÉ20_ŸF';$m‹ÉÉ?žÞFe楉Ù=©¸ß_ßÎêTçµ¼ÎlQO Ó¶”¬˜÷’ZÅž‘Yq Ôuª%µP‹ºTãf¨üLÚ„Ë!µqO;8à Y'h%âþ;ÓÿŸ‘ç”ü®Ë4›³mþ½ ÞK CbgléHêW@á¾_»nÜȵB,¨¯áç“¡ªR ¥Ø2¡Àª)DÙ•cÐ ½F <6$7æÅ–‰ÆÌhº7MfÀ)n>ÎbÓð šyêÔÉé¯û{r¿´ˆT+r!˜©U7UÍ…ór] …Á9ËY ¢F+ôBàcXz:ÃüN|Ovü¯d¼ßâ“I–¹ X¾è¶ATüýÊÕªÑÄÄ(¹· ú,ºRÍÝ›¼O:4&}OYgþWø2¥bú‘Ø(ÓÞ!K[%üLÝk>¦ñÍçDDJé¿ÇøØßùf’}·ûº’Èr5û¥ r™‰ØÉî½{ÒëÓÂ…Kp·œRUÀ*+Ï/M«–][t½rmý({BÝÏ¿é4ÎEƒ~_žYÐøHÈ”™Í648­hLFv7#[ Èz¡ÞR½,Ü{Ñ#Z°G§Úµ‡Í÷¬ß°Agýô6Q¨tøéÇi2¨ë«¨µÎÂïÊrïÑ_œDtd,’”ævN ½ŠÜ/Vd- F¸(Ùœþ½¾½¹ÜrU1ƒN<ŒtÕÖRz§üM?è÷=ê íOßnåï!ö>â°•Nü‹`ßJ 0Ëú~ØÁ‰”ä$îOqUp¼™ð¤ù´¹6Þ.š?dŒT±ÄÊWtjEß—H‡·E¤è ›MmMÞKÔá.ªÞ]õþÙ)aÝž‚n´©cÊO€‡®š¸—ÿ-ú›·° ¾çÓ¨O£ †þÐéô¸ *1+'ÈæÏŽ¢pf÷œ«ÏmD¯m9,Zݼw„À½X~I†=Nu”Ö—$¿'¶ôº‡„\”³í¶u¿Ïí¢t §õü6N¦â{ÄšÔ>=÷ ¦d&½×cGCó»—ˆh+Þ«u/Üt¾ß 6õ2œì-ea{‘Òú/O1Hð6^?3ìÒmˆó׋›šýƒµsÜE›lodþÙ±ñ3‡n¥E³Ó‰cŸ‡ÄuUç’µ0¬Ì~Âç!)ª®Ÿ„ÙJ(ù dGåDpuqó¹Ø[÷£½æBôæR‘Ñ”µyóQŇl¨÷eÄr¿oà(RSÙžOmnöb}–˜£¢Ñ™qôè–H1—“/¸^ø™äw8g{©Ä9!WS²WAXe›"Ò70|f­YGüLÖUïÙŒËîÊ”'è¥#þݬZÃÀMïÛW¬Ο •Ý46ÚOa9ÝtÀ|™]èD‚jàäËÙ¼%8abÖ&{ÌH̘Å%ÀBŠòIºVJÞ`ª®$@S¤#ÍŸ|³æƒgÉ}Kv«éÃ,‘ÎØl´ÔÅr£Ì!”uoˆ…\£üFãÊÒ,¢ŸWâú‚Àò®ˆ,pU_Bë™ø@§ªŸÙ:}ÐæóÏd’UÑôòœ˜º>` šk B¾ÇE\……:€Ò¿1xÀcogu 4•Lt NF7ô.Ð ÐJÿÁBÐ;.ýQµøð³NöÎß·zü.˜Ívc ±¥JÛ­[Ãh„uiZ!u ‚XcÄ5ÏwKq½žø-š¯ã‰5Y‚û™Ýæîké[«ñ•Ô -“â5brsä!væ˜*Ü#/›×8RlŽG†Ž$vcò½ʧPb1‚Ün²(Ó›³±®‰¤:tOS6øC¥±jfNØúuŽk0qÊjú²Îq¨`Úsr Åü|ø4õᣔ·ý†éñ=øàùûÚ$EQªTÇÀãMMcY…ø€æÈZ.’%±â9$`°ü®Uã4\NgåPŸüT©Î_Ä0IpøÆm£"![òÃüæ\Áa,Ý“²¤>à› XĪ¡Ÿ|¨rÕâüJ*9MW«ï ,—}Œåש™K™£Kç„Z´Vóè¨ ¹Å@O9lP‘ÀþGpAOð˱`ŽÈwõ‘Jþ–Í!¦m×VŠù³Òxý309'˜¬Ä¹˜ÑÖÄbiíeV$ñ£¿¢GºSJ ÷(îªb>¥vl5D3Fœw«ÕƒgÊÇ~’±O#vï®I¤½¨0‚žï}”n®š]¹óÿ =zysO´ªG÷q‡O‡©*2¢®©db¦¨GxÃ7EüÒ-Lg1¸IïùΣ½˜ýuÜ:ÆaM5ë ß44„q}PÉ•R8OggSt@ýÄ nYãEp:ïûòîüÿkïöëüûÿ=ÿUÿrèçêÜßÿ*ÏÑÓÓÒÓÿGÐßÖ×ÙÙÙáéèïúöÿPÔÙÕÙÞêÿiÔÞüÖuÜû4„1S¼ôŽ4@v<²üDg|þ~Ñ{…PyÆ)pÕ %ÆyáÄ“Ð2oÜ´¾ýU…”¸ Ù°0Øjˆ´|é1Ÿz@êÂ8Ô# - *¶v*>ñA€HÀÖvŠFcçÙ὆H™A•o3)áîë6Eàþ3¡ëÆ¥CF"E™DTß9›'¬kl*Yok6¹Af /ÏW÷w€-þMyù8#¨L¤•ޝ¨¯—ç×3Éÿ~÷7‹Ÿ&!BnÞ"äsV´41¼óè*ì’’¯¸â¢æh2…ýbGQa)­´ð;‹ÊhcÝ0BðЙ«"Q£ðmnCÀ@9f_§¸úIIÄÎ?Ý#í áB)=:e)_ÿ‰¬ó´$Ñ/Üq¹ i)Çcã´°×,®692¾_¢ ¹ÑÓðÕ£R™@ÑóážËõÄSk"+#d–RUrÏæóö©±v®<ˆ=2a~ìÓ‰¨/ Ù3Ûµ> …÷iÙ»Ñ}A ýuþ7—¬" ÒÃÊøö‡ÒB+?i`;aµ“3°únî<¤:Ó/‹¾H¼ØÉ½LïL‘˨L¿Ø Êu‹qÿììƒ éÿ!zÏí‘Ý™]6¼U%eWÇ :ü1‚Z>`½d¢°¯‰‡—pgqÔ( Øs¸zR÷q“;lN$Ûª”jÞn°72‹JîVô¢ç<§E.ŽÎBPûZ”—BfÔ(wCkiŽ<'ÒãWr›Þ¨‡®@õµ'ã °×>«ÅÛ¨?‚„ÿ¹G´6JrÄ·,Ç,cÈÞ«T»`6€ú?WɆVºÅÅ€ŒE÷”By– èöß¹õc[© ›w¼½ãÍ’kázš]ã’¬{/>r±þÔv¼ ì0i—ªwO±E¸+NíZÚ_‚ˆ ’Ç ËC2£·VGi\ºÚËÑ\¶2¿é*oüÛ)O´ Ðj£$áêò·,¬ÏÑ3 7`ÒP{«iLÁÓ}·ø ¨>ÚøIüÁ~¾PxK‘8³,‰Ca¶Np@ ê.Ã8Hbû†UkÚ¯£@Æu1`ôâ/BV‰åïºHMËrÐãFsJ»(x>W!ûØ?dZ´“«òbŸ%Ä|© g3{^É8ðN*Èý Í~oþ«!à.MÞD$‡O>;®S£sÿ&'x@=bê+iÛ¥, ¼kæÓÊJUC*Q8½è¸dÐAàJ‘Éù³ŸxþPɯ8v(Èyôi„¹š.áñ]üMW¼0šé·…Büº¼·yP,Ñr€K#1¸—®cÕ6aqkI°'Ö·µ‰|ìª> íûG2—G…í7,Ù50HÇKgò<¼•elüžäÛÀïè91¤.‹QÅÚŽú,uN;Oo¶j£Ç‘߇/L¼Cü¶´°î ›³|ø@ØÀÊF=‘*¬='^c'Tí2æüL«³…%VÙ—pRÿÿyzÖžsYRzüëŽÓ÷»Ý¦zd|nôέ ¨¾ê v¯È: Ù9%ÈK À`-^zœhè6{ ƒ”“×-ú±ŒÎã¼Åc#f$¸OÀnéVG:ö:‚©PF¤èñHyP2«4"y88éÖðšeéñüÓ¼ºÍV÷aŒ¥PÕèÜW)`}c\ÏcE„b vé´HC{­0mòúUìí4 ¡Í}3+ø‘ŠÁ ‡§Uf íTNÜh’¹o«CÊA1@¯zCü ¾Ó|õA„†´-A°¹¹ÔgmïÅÆU´m·ˆÌ±»áü1 Œ0$’#ÈlÊHc°*²7ð—¥Üm)ÔÚ’Üz$“Od‹…w?R,Åò{÷˜’ùšÿœŽúêo‡/'m"åL‰6âCïˆL+Ÿï=ÄÒ®Aóñ$mÚ¼ ;I2ûlw¶kû3Ø^F˜–šKJàô*Ã$À›ên¶zë0c”»"h)RC\c ÔWp$¸óû>ÿ³¯,p7Ñ ƒd¨™ ßnŽsuùÛ‚+@¨4 §iÛ¶N\aº4WMÚ,±¼IKˆŠÛuÒ»›Û¿ ´Ñ`ÃŽô(’Ääʘ¸¨€FÌw¡åÞï4ÒìXдgg ~ÑÝÙ^‘¹±i‰ —EBÂ=KkZÔÏošøßU|uMÔ³,94šÅáÓ“ò‘€X´ø˜¾¥KÒ„¥t£ôWM)&vËB “š»þâvºU«½úÌWzÛÓÕØÛ]X‘§ÑË\àòу²¤•çˆÈ¾ó3èŠ ¯ÐûJÃN¯­…R{WàÇt0¦8RÝçæ%Žu¬¬n;æGf>¸%*Mæ†Ûìÿýl»ZN‰­Öxépša"\úѹz!wÎcúŽ=YOEá„Ìw&ˆPUV?yd’5ˆüãþ¯]\ÛÜßëÛùAüñ‹Ð?£V2½‹þíK rÑ[¯ûðàí¬¡"®4hûË „F-;§³ä²Êt½ gÇ2mMYØ×àT­DÚ@p‰€æ %G¸ë¯h-×?}T¬eÄðDRíQ„dÂ9PŒò›.CoÒmi.¡2-î¨RiVËÁéúœÈÜÏÕä“ûX¿¼'Å칓sìAe›ÎÏÁ¢àjße¹aʈ6è–ר®ÍFÁáØ¦ÇTj X^ó€ ¡œåöŽ ¼]>BzÅbp´8ü˜œ"Nñœ%sf+×ù8(”®å“*â¹?G üï/¥+þ§Çø{ªAÀ$'ÌüA·ó̾¦ò5$j޲øýÇú”»=õ°ô¯ž@z¯{9z’jE—vQM’ 'N'\_½°ÁöÖ0p¼Ý¨©3à omæÓCœ~üŒûÁ PBs4 øjËŠe¸„-ûƒ•© ”Ýâ'+XÄ#{×¾¡h±½èßpD·ß, ,yO/\ußeCYŒëQgZÒSkhãùÁ#‡…2€Ž²ÛdìWE•,¤ú8Þk™¼\ù¡@ôÁ,l¾9²ÉocX±×zþɾíåcí~«žìÄüXqsÄb’³ê6ûMc`Èû{*:ï ¶9¦¬òmŲq@O¼3Ï5 ~©6Ósx´Ÿ[^ …» c ~ÏÜí?Rð=… d¾œ’& ›ÓVÿóØ˜¶ùZ3,Þ˜Ótà"?2ˆ#*2¼Jw¶ÒЧµ•;\¸6®Q $ „tÙdü}\"yØ‘héC›m²0!}âæ¾'ÛGJ&aú0'Ïé&¸~&Ã6ëw–ó:â„ÿ]4³šîŠ¼Ú©oT¨wɰaSí\J„š›ëNk6Oª0³LÒ hnßXÆ«UwvÈkÙ‰ñ¿º³l"™º9¿µúú5óJNpÕ¯8æÌK¨<âm¬Áo/™BË+ætwÔ2:\†Ç½NR‰\7õ{°\-8a ß`&û†Ú¯´T_8ÞŒ*;‘nßÝí¥b¥‹÷€wx Õyk¤Ã³#¹ \pÙæ®a:¤œ'Ðî7z+°õ7baÉ[âÆ×Nm^–!2ÊÍó ÷åvUÀ¦úÖž­ìç²v©—oèŒNøáÑÎt§\„o:2wht“ŠüqÅ·þüˆM] Ênì =™ä)ßÿ&= vÑý6í+¨òß½ÈÇŒ‰0F ‡ôMÓÅ•Q#ƒ±Ø‡£¦‚eìûDÎ<1¹M°s”’IUõ:Xí Ò f8U‰W‰¹=®Ø¸šöÇM2©{‰Ÿ¢SèO‰"Y=ÝÄcʦ9ø: ú‰—.Ïs*j:@Î+šÄ.N¯ZX‰DZ+Å꺯Þ3gá»ÇòÉo¡ßëöðR)ÄÜùlî íhþΕ$A?`ôb¿_¹P•ò½¤ ÒØ¨'+2…|…ü6‚J!ÍS$´ÆOÁ"÷µñ1{3…ødÑ8\à!ôpô¦7:(O‡ew³Y@£iÖÏN¤c…ÂôTð•/“Ø€å´orŒ‰³û¨xƒf?‚Þ"uŽŒ0øþÁLËF:•~»…³ä¬')RëÙ"s {¥(ý2ÛLwSIyšdv9Yr»÷[¶ŒÝ`DOÎÀ,w\¹4òr$ê,]wvá=¤•mVТCTköuò9A¶©Ÿj‰"Oƒy6íR«ž'•E‡6¬EåÖnX²o ^üMÕ£¢Ì;Ãøµ}ŽUi²¡ì ©ÿöìîÆ…÷€À6](äí,"šêÁlÏ%J8Ÿ¥¥ØŠzò2j¬\Qü·zÞ¥åòêÒ.{èu{€Y €6wø§ÅTY*cn5÷šc’‚$ï\ÔÅ÷|ýò…2'š2GßuF¹9¦lZ-â¶‹î¯É\wS¯Ì…|­ ”źĎÒÖwWü9*ZlþûV&è@jü×a*ÈQ\—“æ>m"³’¶Ý+»Éˆ‡éÁþàx[äÐQWÈ=‹üLÇÐý(àÙRVÓ Y'Ø/Úê;´ *–¨Á¬`¿©Ë*b1¡¹\!O·O-B›â.¹–ÄÒÑçt.–Ï޳)ñgeµ]'„3¾ßI>²Â¶sFÊ&‹xN ÝûoUj¢•Vq >DŠ·‰BðÓegŸû ÄË„–ù§ Ý—è>"ø_KõîûãúDãHÁçEs ‚àkÝ–²´÷–³$Æ&Ý… Ï8¡sÈé½dï‡ÂÇn$BÙQe;üMTêå#ûbP ;›Õs%5ÎæÚÿŸ¦£!Cɱ±%;_Lwi‰à‘—c¬HM¼ñ½ÑÈ; »)ž¯,€"]*Й-SŒthl€úZPAÿCC¶ïßc3oªfbñÜQ™wñù «ªBc¯‰ù±â1Wß‘Zd¶ÐfAst@/ÙXÃEÑ%¿ö˜…«›w3ßúw¨å)ØOÙ”s{“ÐV!þ­¼`û„lv’USæãè«¥Öª –á<‚0D+†¡¿ƒ¡~:g)†z@_,âÊR(ü}bœ…µf.µ—÷cõÁüZ²3œ¹]%9]{;]'i¬pб—® Ý?×µqjO±×lV ˆE¼œy„x-–k”$£!.+;TÂOÁ >¶L›.1*ÌüM0Jõ!ò­©æåAŸ¯:\˜PžNÓ»!7B®ïyÕýwß'øÄuÌ'%Ÿþl©ib¥I‹à07Ùkßr–Ï4ûT`×\¹ #^»R˜ .ËÓʲ”á­’äçãR„ ö~–²ý.¢NWÊb%5(2x‚\¶¨™^ÕF׳+вî5,ãp\îQJš¿¯ÊL¾mâ—«úóü<#YñrÚŠ…Óý2Fêu0 AP^¢]ß”Gwñ‚Kl9uB¥ÄüLÁÖ±4ò‚!ÞâQsn¼O ;Í-‡_1ˆnäI( [O8ÖÐ9!]Ak>áÿĨ „².ú4O|Oän34•®­Šé:c{K¾÷FÜ/FÝ*b@6þ¾ª÷lxuŽ0X9ü©aRŽoÓŽc ›”RºÏRÑzó,$Zâ¯N °!ªe¼b2%}hŠ·ÛFZ_K“ÈZBÆê{„¡œg¼aÛ’&CœŸ6»‹ œ6ÀĬøÎrRæ³1R“öýjB¬‰\|߉µéå…Ï9Óü8Ë€ûâVüMWí­‹˜ä¼ý³ÚH+W¸„Ïþä]0ö¦hÝf¨iÀ˜Q@À •È‘jxá\®ÏäcÕ … éD?øÏàpN›õñPw¥ØC­âž¿Ð|&ñõüñrò 3õ‚@¡qâÓsƒ(0²§u´³Ç-ÞÛ¼ë§Ý 4Ÿ•“¿îuÜ(ßßYAk÷æ©À÷€Ùt ]ŠIÔø*ÈíS9Eˆ{DgW-D×.¢•ѹ¿Œñ˜³Ñí÷ vÚ6þñ=†„¬¶¤æ*MäœúAÛOjÏ®»ëó±¢·üIrÓHáwKiGK ÷>²Œ™µUã›ÄÜH«¸«*œÕö8µ¬Rãã9(Ò*3–\éK@ÃQŒp~ —8žØIhÃwª¯ ×>ÜÇ‹vD½wŠõg¢„Fí×#§”Ï_ôL;Õ\°AùƒÞqÕþ*‡*“ØÇ8ôYA¾]gÌ®&ð]}k3®3y  >û峜ìɉæA¯ñ6ê ¢F/6‹5$Ó09ÒLY}ùokEYÔûò±h!,µÿv:ª ö´2ŸX¥°qÿßÝÕe ÊŽ¥àF»üL¹)˜¼ÝßP)oG”eÞ߉rì\m–V®€‘©™õha™/}ÃlûlÈá ýEo•a¢ÙÝVÁ¾nš²ÿÅÉwõËßøãO•¶9†REÛ«.D…™µC*–7þ/ùààES‰â‚•¾w€Ç?ƒ†ý‚Ò­ò«®öÔ§i…Gœ4…´åâ)R=Hç¾ ŽQ–) W»ÅL̃`#…þ+Q…´#ÈÀÜûßÁ$•òÊZBg0íb/ 'à΢2Ádbó’Dx£‹cÙÄ07îœüM(mЇ›BH‹J Bçqƒß+‡jn‰£=ÖÍœÍ_’Ø6£­Ÿôíá¡2¼ÈÀ À$• +¦ÄâOC‡¬Ñ± \ö ²Wª™¼~#×­T&|Æwrl¿’|+§Ï"–d>Ìøh$f²PßzºØÚ½âC B‰:oçŒmSœ MŠ™›.tÎT˜ó_¶©Uªã-ÇÙuÕ¸éL „±”Ç‹þrÿV˜w»a£ÇÈC \ïxk¬„áÎj*æ ý*M ¹]BÍìÕâd'‰0¥29ÒüMyîÎ`Ü`*zHsè€&'(9ûþ×a¥ÊןDe-ŒÖ¨Ü„Eº"|ÏFSèñ¦¨¸›íZÝs„3bsËkCoW  Єòè5¼U>FÚÊ™þö¸ÞÒ+·­|ÜŠ•e«Äl–;PÔÒÓ’¶®yË2J&Iêp­’ö-W?Ä¿-ÙçÛ\þ­Dºa°n6 Õu9.nïW_Ïu.|;ΘšZ=àoCŒ¸Å´®Ž^ùÕ3GÉ÷ÚDˆÇ ¡¼ ™ ´^ ¨õmX¨jb¶ƒùµ)õ&À]mS” Mg6ŽÈT︱ƒÖËh¾0f2@-ׯºüL¾#éÊþ…¯$á—ñ'““EIl¬gìvœÍ7 ̬PÕµ–kee$?ªé ùëïþeæ­Ñ¥‹Jaˆ<-n² š‡¥ºä@  Ô’)ÿv0ù,€bÞ8[¸Ürƒs¡Šì]R]xg"0»d.ekJÀw}—ƒ½5IÇQúôÊЦŒ‘ç5{RIˆ´µ¤$B0ßCX·gô¤¨‡Ÿ¹c&´X 6k=/"Jn–AÎRÎMÎwŸ÷®º – qbëÇé¬C^•Áu2¬íÛö_ÜëÏIÄqlX~ë$o?í qy±¢WôŠü›r ^•RÉú !Zަ˜6Úø"Îr"5¢!w!¨g´3kp¶¬™®$ º¤Øyq#Éc…F~x 5Dë$H,}rЖS®½Î @KŸÉaLwPøùÚoêú9t.­|dwj ”NçŽ\“Öïm¾öÿמ¶®—ÕÝôuPÁïmP,ÛyLøª¤ïO.ÞuÝ‚U䤥ƒ5Ð/‘Ô©H`(©“Äï²Þ¬Ý©;L6åë°å˜Ðoe_ts9ç’©p„íÃr‹ýTJOb ·mjQa«]ñ‚Þ˜Faˆ¥xV‰do´’ë#úõ÷2#*Uü›À_Üq¦l±>-+!î½°dKwó÷Ë’}ŽÅ£5‰‹o8 uã³Å|¡¯´è ³>÷Jàwx3k`C‡A¨ñ£x 2iB¯€>0Ô\ÔsrŸ· Ú]’ðò‹•´¯§r bFóTå×0gWÉí¤ÐOðOç ”¸ªŠ¹¢GÚ`_YøŒË¬€s7$¢8`AŽÞoÖ.$/(`¡ä$]é“Õ, s­#1Û6BV3=jwCúG.rXÒã.Q ôüË´öJ'‹•®Í"R»2âéXœ¦ÆйvjLÑ¥Y…c€‰¦;7l ¸µl¿Å•H?Ì'ËTüM(2ðqÕo¼onf—,ÕCá¯w{#¸Ñjd[YöqÿÏ’Òøõœü»ÐOt]ÇLzμ_"- bo3Áð '¯'£4Þ€ó Ý£” ª¿3+¾Œ8nâ aBrÏ`6n#ÍÆ‰ 6Q½RO!Ÿ2°9H“çx $YžÒòý2Æ‘<'2È#{}®ž¡QëÁKóÜóñ³kÂFòYÜóï]¥> )€·%6“ÍEúw³t˜&oûø Ï3Â̽aŒ/ðÓêWêýbè{C^Û©ÍbU‘Äœ-~KLx§6“~ƒ9þ$XÝ[j̦ÑF²EgTü|®¹ 9[îÖU hGÒ‹ šh;aazJSrRAËå{ºÿ7ظ/‘.¶­651²xéwîqníøè§Èå_Íâ@bÙ‰kÃk =¦Mלý÷"fº²ìp¶´Úg #ÙuáQQéi{'èäT÷Ô·âšjéÄÂw îG+õ–øÇ êº¹ªõÅER^¢T`›÷kŸ™ ÿ0DÁȆî¼mÎŽp‰ØUQ‚dÊHøBœÓ?*Ѝj½<9J»«‘{Ë2©ò EÞ$>ÃŽÒÅŸ¢¯£âµôÖ|‘jææ‹¡Éµqa‰Û8])©RÀ%Žÿ*c!üúžw$ƒ=‚0§‡R’‹hXù †•i ;ü<-Xaû›PP&ÈÑè{B„­ï µüǘ§JæPìIõ+ï­´Kᇕâ÷¶oü-÷–)‹"ˆ 6oÖêæí#YòN I<¡¤·%( ó‹«Ÿs%¢ÓL ˆL÷Iº1gZ C1À(I¿E¨RJë³y|ÐKÇò¶UnÇypèDÜh3!Žž ´m”*MŒÛðü{9 L‹-)ë)ÄÄB‡ikÿ÷0^6ÌL>ö¯I@ŸKå%Ò]Hˆ ‚ª2N÷ÑyìPÂ]yÃî™ïwNQÍPÄï6‡.q5ñí Eâý;…Éfv¤˜„µnÄ&.{bþ p\)5€¢iÞ{%ºÝÁªj´·ü1¥ùéŽÇËp#ÀÜÅÁ©èþ³ÌþH»18½6vIGk}³[ò„mñò›’Ì«»À¶q™æ7(Рäa—®?8¦|l'8Bd–m‹2#ÇBê§¿¡²âÏ|+ÜÓšäNñ)oÛGÌExªr^)gò#+*ÉòµpIw¨ˆC1Ð^BþqÇ7 4ăÀ'„`À˜eòÀT°ÆÍð E ¤~„•°Ô¶¡ZüzY}¤\ŒÓxÁ Až•Ú/|ÃIn"Z9ñký2ç}‹¹/üMd½2¯$ 'ýµ"ªà ÀY¾=sœý[Ì{6èRìÉ‘gM.w[ méü$‘´zmmͺrea‚âÎ4:É5íN37†ù^Î&”O~ø‘$Å6ö¯RôÿN.6#]ñ\~“Ï;‡"(îþî:ä½ü&"=øÐž@“$¥g À•x‹]Œ¯:IºGáßšÑMØHv%QiŽ ð10#lõïtW2djIç bØ~$PÈWĉèÞgPV”àÑ‹8ù:»tö9j’!üŽ4"ñÉüM ÙcÃÜïè»[8âRsë(f¦»óž]bJo¹*øO,q5PßP÷ƒtï)ùЏÝ>-fS‰)E ÓV-¥»c™ P6È¢;ï?­wê:qڸǧaAÀ2–‡CuÐ.V¾´¾ Èež ¼“š-B>*,Ó¶¯SÏì¯Uý.ÉZwâ<'lQ@žG8Ò‹¨l\³©,=f­íV,üB8ÿi½/ßì§ëâ}ÇN—ŠÜ“+‡=Ÿ •bùˆÍV›Q0^ɯîÞT#‹Oš_–ê+R-mû:PY¥LN¨¶ñÛüLØ„†´ËøT”÷8é+<å¤qªÄbÙŸsº%lÎËÛ>;˜©V#RUÙ ó>„`Š¿ˆ¹i˜z9µ®½$Çzå‹¢ž©û.,ptåQ§ê  KþO%Xž½•Sy¿§úÓM ¶’£Å»‚dSºbã–Ótsô4soÑ0nçèI붬.y uÂѾ`Eˆ›FÎ(œNmÅìí®»ûÇK™däpy–EÝc ÅŸž¡7_‚Ãçpï03D«p!T¼©|ÝíÌ€#Í]´RcäcX>ëZËÀ~)^JüM2äù[*µdÏØù|M•vÂL{’ã`á’”BÝû ¾Ž¡­ z=a\ù ¨§‡¼…žøïz8Uo~XÄ—ŸÔK>dŸróÝÚ‘îè§Ûýö|…@ª›‘DŠ7¯|&ñCv¯Õ»wå2È4GJí¦u+ŠÁT¥ìÔ9¢ õËš(¸„­>šáw_ÏÖÏ3ØŒ“ù9»O(å9@¼ájƒ˜±*®ÃÌÞy(À͆?פ›¦˜¿/3£™Æê31‡çj6>ÅŽ^ó°ÊXª…¾ $Ù‡!ó¡4Ïý tC˜[ÇdUS ü}b‘sJvé ×dÒÑ;§&*Ý.÷l‹†˜OÊ„e#ÆIædpmçþõ*ßsæÔA°(¦cþ¸€XÔçþÛÿgø?3?TÏ&. ïúp:ãua‰ÑY»õëãºÚÚ•zô›v5µÂÍF€¶2Ì 6c;¥êþQpÕÛ½·9²$tèòÏÂÖñÛO‹À‰£š©Îz«H ÎË%‹ ô³‰1ò‹j¬rÖDRc¡h߆ëëh™Ï .• Ç´S£Mýá:iBíxеåTL™×ëøâw[´¦ÁUE°Ë`C¯J%áéë™ÖÓ™wWȈÉé=nC´©æ·®šj@ßOö7=ÆàÎ=Ä»˜ÃáäúW9­¾.è÷Võ>xV™ÊÚf¹iÄŒ·Ž¤¯ ²Äs.à‰F¶Ùz“ÀYOÊÁc¬Î]ìZ‡Åh¾ UFÂYX Ô¸=ƕᦒ’\ÿ†¤aWüM•5>¤Ùv¶ÌÚNñJª;òªwÍ;;ª#,@,tÅáñ:<ú›î£ÚÚð®ùåšÁŸ‹§3Þ«3–‘– ùè|jëçW‡ÿã± ²=`\!rí8eä¨,ôW÷ÜŽÚ"И6Ÿ¤7jVÄ™X¥oS„Ð4FŽ‘8/‘¨jO42Žk¨ªð¦‘ÞçL]Þ{áʱ蔡pª‡ð–Œ'Ø‚7(‰áš—^…Hɬêw("š•$¬€¡r[Õ ÐþOºäÖðÍWi8ŠÃOØ2ÅÂüñµ1o`—VXS~pús%R2ðÑ!ÃEL9oå=*ž9¡"¡%[hÁ+a¢ŠÂ,%&öO†‰¯oþr‰BϲŽ-Yþ>­¬P›yàÉ'rÌØ=FÐC€w•PiÎÅTýhû' gÙå0ôçËÜ4ÌVÙçÞÔ»LØ-øÄRJpØk >Êog¹oÙÎe¯³>(sš¸˜pxÇ–:è´º÷ß>m¬›li |ªé‡.ž"é´×‚šç-z„º¾•¹d.4oÍ4Ÿ¼¿FAA~¾¢‹OggS€/AýÄ nZf~Ã7ÞÖÐåÿ'äëûùñðèðïìåáéÿ_ÒÕàëíøÿsàêäúõûÿ‚áÙáâÜãÝåôýõìçÿuììúüñ`é¨Ì¦·íœîýÐú€ÁcaB1õðü¬¿ŸÜj¿@\e`žÿUdwyvr-™´`tï…r ÕŒÜ«— ,2僚֗îž0y# M™áÖ +ùÌ— Àù6Eü Û|¸R¥£ÔN´°õHßÊåký§q×¾%'áæ7›ÀÞ˱í8Y–â¤Jï×ÿ“bm³. ¶GXß «ö^ZW;ž.¾'EêËOÛ«Ðç`ßJ Ûmƒa®@‰–Vž¸× døOx œÙV´©à%Óâ‘tÒÃüLã+ÁOØ ‚#‘ R&)óÔ—BbчGÚéêüÇv#ÝY¡OÅ Žä)`¿=6/‡ó0 SÙkOšöná)mƒ®U„Ø,[F¿Ý¶Êcˆ+?žËÁòÏ}ƒrþÝÒ&±"ð< zcŽ[Çou¤zJª¾*îÝÞú/9GÓ%ÿtš)Qg]‰õ†¶>õìÊâ–h>P× œH«V±?_à ›$"Ñ­°õ!¦/»ÏûàóBÊqq+õWß› ht¸ºÌ3dÉíHšdj…{×kÉ´›è¾úÝ7M¦˜lŸÄ1ZŠñêüM›þäÿëG·n­ SÕI3f®´Ø Ô¨À;MÈ«/“žW‰ø${ð|”D¾@'e=B2‚!ëv&®–¶®fǺ®,¿ê,öøßB«V<`ÿé]:”´`¥î¬óÁr¾ÓúÅp5¶Â¶§‹¤6Ø_ ø ³ôfÓ2Ýç†÷?Œù×cU:½.~âó¼rðEýÂN»™¬Ê,ÔµÞ‚:%ãã™·™â5£ßú4°éùì.ìÏú§d³u5ùå´ãE7‡¡ÙæUû‡ë(’Öä0–ß:¢¯Ž™üWóZ}½.Þ3¶ûo±Ù½êôPœ‰ZV<^f½Ó¥lååm]Éè³E„½§-¬ܵÞþö©‹ë=€³JÛséÔü"©§ŒKvq‹'ÃA"úì³vŶ2'’®ml«4êŒãi3W˜ˆMHÎOìßl:ŠÎåUŒ.(Š  ê -u$m!¨ž|&lÎT3j“M …Ò””£=ǶÈáåàYâ Ò$ŠfŒBþË4„ŠyvŶ>dÓÀYd2µF9g2GH¡vK ‡×yRN¾Àd}÷OO\#3Ápb8£îlÛUy'‡b+_¼{|¨åÉÓXÏFiÆ/ÌYJ£ ó^è ¦•8Dû‚Môõ¶ ÞÛ›ßô3³æÛ”ö̰üX±ˆÂ¾|󤲷¶rª ‹yT´eŒëÚl6Œ¨.WÑ9](`Î/‰d€mùp‡7è7HÎgG•»†a‹±ÕÞo½ JÖé¼O‚÷äG Oê›Õ<†ÖD.Mf³l Ëh1MŽq-þÕ!ÕrÃa³¤6½ÜØQ^”ƒ]ç¹ÁMIGª½N§Z8»©êÈlˆÄkÿø…a¬˜[b¥Ö– k¦9CåûJ‡î5ðxˆaËSš¬ò³¾ºüNM¢ª¢ÅíWЕDžž‚ˆ&ìÐ"@%°?½{Ga ¡d lV~€¯5V@3¦8˜´}x ýêÔÀ/0ŠUQÑZ¥3{‘ #¨…WWYÑU0‚8šÓÎè}Ñ@úÞu²ÿù­3Ó= ýX¤È|ÙFcAHÇšÇLG_añáJÁdG–ýí‘ܹ ѧ žú¸ªîÿ{#¸07Û‹«ÛS%çwçR¹¡8ŒªZ½ÌÙä0Uré… ©_ÅRi+è’ËའŸá2=ñ£©·ŠóbýüôüÔÕ¾í2ÕXWVª|²a|Ú¯ †ÄW¬;tc"Ìü™ÆbrÇ1);ºÖ4Ç<Sño«ß‡•â^ß~c„žD·:”§dD{Ô˜áÁD4}Þ¸0G4ÎÅ•PUîò1O”щ¦š/FýG{œ poïondØe]¶»›ÁLž£]qšbPFŒXóP"_îáÁ¢|0mt3 ?-ØÇö%¥ËíÂV_Ã4iº3Ë×»áQϺÍAuØ´»DOˆ^^Q>+WWÎH³BZLé‹öWhßð›(‚i Ûð“¿é¼ÞyRÉješÏBÐ}ªIB›H &¸C‚a¤Ù™>W0ÏÎ?³! þ $L³ ɱ¾¾"piÅzS8üXMhjoÓœ%š•DáÛ#ÌMð[×w׬ ,ââ³¼”9ÚZ ¦x¯ÍJÅ‹¥]C1Ì¥¼!}¢”Ñu,}œ6Û?Róúeв‰6÷¡Y âÙ€Ó×¹§ÿWóìâÊR`ˆ2²a´¬Xî1Ì8¦àÑŠ: ¨ÛÁ¥L7÷µ ‚³Žc˜z#Q1šÄ|þ7|M8³³€2FwÙÎ׌vÀ0ïÚ¬AUTáæ¬:3;îd+KÕL°r/ñkeá¤ÎîÞ?K•ÆÓ²ªCR7X·‚¯±Õ6àÞ„—?m_w§\8y*/à."ßâìA>çÖÁ=¦ýå-„ßÒ®zã‰LŸøÚsŸ†Öh™fPí²_ïë]|¯î[yå‹[cžÜÅ«`b•BĨ§g³¦Øþþ¨D°Êû¦èøï傉ÜFWd©‚ª¯Ž( ÊÌ# ¤Pò½ÞÖ4‡€¾û!±ST7G’3µŸp´¤Ø?£Ôž]²ùF©×•gv LÒÿé=o(žv’"tŒÌbˆóXO üM-&Çù>uX°LϺѳi~5.¥Û¸Þ¡.£d !¸ÁÞüBr½VÜ{;™ ÔW²~qÏt5ö­(HivoÐsÂI æÌÆF:úæ¬ÀÿU¼Üw‘š&ñˆ£õ/3øú#‹ÿ¶B¼"ż骸 òÖpÏ.YŒÍ¢=^ƒlJ ÞÔ“êPÞEÜ5ã_<Ž-7TCSg˜äç¥ùÛ—¼Šå/dÿ7ˆXOJäS»÷3æcFžUš¹ÄM8"Ð^-(9ê¬3w–ÚÖ -){ S&êUÍ´ÚtÂWʼl6K|”:€SJNE#3 ZAˆá•µEZ¿ü5D s¸fU†JžÛ0G“Áý%ùž=¿8I‰±aÓ]¢p”ÝØ“3>dÁØ´TÚA§˜RUóÃk¥¿§ ‚â•å:XåïððîÞ*ÞIš˜-R;Þ ÞßFšò—C¢L½…bÍ}|.T1ï%KG×MÁôæ"hóK8—éî^Ñb:_ÝhÅq#©´×qÅšÀ~U¸“OÆi«ŸS4o‰Tàéèj‹M¬ ¼¤nï0{‰ÔîLß§)€D™6dê¶úÀÄxîb¥Ú†DEÏi@œtVl¿ºÆIöÌRÖåÁa}¨Jø)Êü6€Ç1¥ íƒ É’#uŒg?H,„£'þ›e’Þ 3ÔV.Ŧå%ßžwËœ…İüOÆ=~ñ©½gß­³“|o¸ª_Zj“f~ÈÈ”ƒDÊw)SM{$ÄŽIÏ …T:Ìî,„¨9 \ÄI:¢€6ݪÞDº›Iˆ|‚4R¨ºÛâ–Ãÿ ×I~¿úBíýw.ˆr1â0¨ú¸¤É¶?ºD=Zd¶}Ǭ%˜ìô|K´ UKGHÞR{œ)ó„d~þ¬ew›»L$#X' íV]mô¡Æ¯ùQ$¶af+Ú"Ø[Ô¨.üM&ÛžÛ¦ñˆ'[5¡¡®êá—ϳçOÒNyYÉ\¹Mc}Lu°Š–¥¾… ûúîßOÖ),p¹+\uîÙÉfÆ„û²HùTW÷¹Ê£]i‰,k‚£“–ChZê>m:)ç+¢±ì•1,e¹ãJ\eÍVT“‘=Ì.iž{?;Ônšf|“z냲Ë\ÝWA«óúþæÎËÉE(@ýßcÒãžN;_zW9ÒÜœšbì'Ñ©bÏ?D¹òòBË"ô «¸¯3îìáŸõpÓ2µ€pÒÚ‹IüAü6“«šS[TÊøšÅ´¸R κîפ="1lu»Çnó²Æ¸Î¥¤ËK¥tíF¾0(sé{P¶EeãÎ[ß©’6_ï0{M‘`y©XÄá¶R5ÖçWDuÛ’Wôe µlɽ CÇa‚’h1l½H¯åü|©Â:ŠydÄ&Ë Úe ³v•—§zPéŠFq'U–ÙÄÕ»>£Ì‡AŒ¦š[`#Ô—ÕV}¿‹˜O‹v€A‘XpQm+‰8˜É˜àžë[ÜÂé²gÞ‹p×»ãW#ú#M<ɸå\а§±†éNÑäÞZUQaºðO‰ù ÒÖj¡öÀúuƒ\¸DŸç8òXˆ|uAö"DɇuZ4[µz™Áþ¸ˆÅRŠpR¹ªêTšIŒ –GüLÈËÆŸ*%ÄêÝе֥¾|ÅIgÏã×gÍœ1þÍ£çv€²mØê¨~¿…NêwÛ˜xv~£;«$b«ãQî ¬ _Šn¸ÄÈKP*Ì¿,À¤ê¾V¢›Ö_“`|ºæ$Pšíèít^´‰ëìbÝ»T„°Zîcˆ*ŒÍBåª]Àhô€¾&t÷’äg©éÍcœe.ðÉ8N¸Òá.'Y ãL‘mHeÔŸ‘V-œ¿«£Ê£ 6‰yÀøÖïk^aD®¦¶+ŒÃ&t¼äeßÒšüM jŽƒ>‹)E€XiÛ”PºB7#ÄL_ÍkÃÝ„ÇÒ?ÒÏEl¤Í’ÈÜ£%e £K f¤/M&v4šKÓÊ*79Á¬yQÆí¸¥*ÝE¶]øjŽ>ó¡/'Ðdøžmµ€³%™M¦ÒN&³ØbPÏ>Üž¢SÙX^ûG™ž^ ë‹+Y‘œ¶ëi\/ g·nœ)üóÚ,ó£i«êkÿ}ìᢣîC•ÂKµNP:¥du:H©zO¬™x´‘T4*ŠÅ¶Ypæ<ÂËÖÂ÷ã‘üLã¶M÷γÇw‰,êÇ´ˆ2Œ¶b¤-êÐv¸KÇö]'ƒÈñìôXË?i‡É`åôIƒ”ö.LT¥Äs£öË ¬,\¯'õûLªÄ5§G{As–›mqŠw…H+DD³„$Ï;Có´Ñ`]Âd‹% ûÙˈ´‰Û ¹0[b¨†FI ßO‹}W:Åzd³n?¤™%œi˜Êë©«@Ûlés>ŠÃˆ<ý‚ ÿÈ<^D½ÜQmTt±IŒs•ø1ù~(ÑSz:uVŽ…ÿ±ïBl ècŠÈ1Á©9²Àý!dȘ XüM%bÓdõ ÙnKzê D&ÜÞoo^#ðë6ÍuŽ2BÙ¶ÙÈúèñÓ‘‰ÚPý†:OTžRÖ tÂó·ã±ÂÃ-fª;‘žP;™fÙ{_…VƒP-´dng{÷lc‹EªLÇDŠé,jÉJÿ‹—2þ±jœ_‘ cÁ–÷Är1o[ܨJöFQ¦WÛ²é¨Õ–àµK0ì¾ã=s‹žqjaƒ\ò—îÙ›ðéÚ? O¦„ƒ«ÙA²zå€ï&Ž;vV™^‘ùn, D@ó *-h‚å]pÍ«XºØTi?LÎ.ÉìŒUlù¶Ýfô A_ê0!ü|¯pjàƒŠk4G¾ÁWýV>wY¤N0ÃŽe€ÃàUij"‡r1®°Ý_n‡;Å â=5³\y×)l´Hc´gÂw‚²T–v)Äx'"¦•·& 3b¢˜Ñèâfl+l4€¼úÚ˜£Qîç `¹àr¤µí­e&apí,ÝSþÏ=q9Ì[i™é?|o°ƒz>·4Ð@­ûç Ù›A帵¨?ãôý~þ¿ýÔHF‡Ù5§‚§ÿ¢Ê¼µ_²W+ô\`«†Ö£eš—f<Ÿ¦Ñò`§+ÈÛ>Þ2VŽIjô,¡[¡¹UP£Gò.˜i©yä׋üakQFçC úd{ˆ#ØŸ¥ºñ96¹Y6Í´“{|‘WP“®?Ó=/dhTË.D_ÕÏ @QF{5”ŸÆg&¢|±ärÑ4Šó^Ú8p ëc;€_Îá³Üîe÷‰6 ¢ŽÇ»ÀY€´ò9ß9¨§+ G• `_ŠÕ ç5Kl•Q"üM*Œò+9Nª/pñÝ`‹ƒÍ¤â‰÷yê»Ù©c‰`éHM}Ï#ЯEh€_;Ê%ô(…ªÍ®üä7À 0m­z–ÍC˜ù”¶ÑŠ¢7àrv×zá(¥º]¾´ˆþ©AMØËé±ÉŒíq#%WH Ìîj*ß›(:´/t¶ºœæªyÌ’Œæ•Y$‡Dh:3±ï8J¡J ¸,SŠ¿•9š‘üºº–¶ê›{Èu%œ>€Š„ÒïÀîúâ“ù°vF7]ÜP=ããxð+ Ô^HüKH&‹]Æ[ÈÑîcƒÈU#όή©i&˜ÓÂ2ÜNÇ©¨:ÔMDÚP¼ )ãGé6ë¡"À!O8 ª¥^ÙfBOà ý¡UÓ&EP ~DTj=!‹fâ¿U£‰ˆ‡óo°\£H÷h¬ºNocøqϯM‚ްf¯‘éž®‹¾âÛk´m!b÷|á?›ýžü ð*Vä”v¯AfRP>CzuNü"¾ÚȬ–8Â×ï|jÁð'»°• ȽiÕ›ÃÕÀˆÍÇ£cGÄ!¼‘üÆe¼,Ô4€‘RKa°]oY4S9Z“ñÇG_LN2½£ôNÃl‚N‰ue£}zn%À>¬2Ñ#‰Ž!D|ɘ¶;¥‚â"ö1äOσSî­"”íç>„`‘V2y®5¨•¬ÍÀ׸å]mRÉT‰ºí~êËÁ—Wçµ¾ÕMX@ù—¬«§nžý6YÏ©£~·^׸`NÏÏT¥b@‘n88_6ÂÜþCBoƒv’~CYl.…¹‘iFvzA-üLÈK¬19 ‘=$ê.- )¦U||1釋¥£²6þÙ\x+ïÒ>"}äc3^‡YÅX:…ǑՀ6oá̯7X¤_Ëн•ªbÊ©ÝÆ¸,ðC–Þ‹Y.àŒœQ)‚ÚCuãüÞùgQ„Vv÷Œ ›½OŸ5"‡ØLVŸHâÅì¾£Y hègýƒËTøþ"B ÞZ!móKlÖ+pª¡†Í{ë«@?'Y}‰ÓL×v¨—$Åü–(\û¼ƒä“XÓ*[P¸ æÎRáûîµÑ`L¿Qü>"òÈ]PlŸ?±Ž7*÷Y,É‘a.GÃü}^p/s¾¡F´Ë1R¸Ìޘ̰ëXeôÑú-­aœ©I×Ìy¦{àÅ®Ë7©ìzSðì û—´xQšh÷•ãÛïùgeøå†.÷/Óʈ%„ø]I• ¹Ýg¯Òµªža÷Ç®Èîè2³µ)º± Âdì¼fTZMŠÖo¬¸6(åeùïcµ2º]&ƒy ⣭Nm aŽÕVÜÍ àÑ6·oýcæh {+DVŠî½=¡x§êp>*sïé8¿¤¢%K‘9‰í›»=Y© \±÷ò4 `F9!)CmÕ(-áf\&>â%@Eü~SÌ[”?Þb„jçØsÙ"^ʼn±— Uk‚ƒ%´™8ÉUW¿!õÒb»ñSp¸É  ’=š9·ˆKŸPЩ‚X3/Ö cÕé~&V¥B–CÚíé§Ô<¦182‹aë ÒUЧ·¤¿'BÚ[ÇKáÏìãz±»,˜q/qñãÿ•Rÿhú÷ÁPLó{ü5+lŸ*–Ñ¡¶Ä"‹ÙWºN«»‚ˆ.ŸëM$Î P6o#‚Œ>Õ»Åë³yq®ìí  "¶s‹}ÀÔ¼NGf7šÍÁ/ó>Q”Ö„Y~œ]ã µYx!ü½z‚iݶ Œ[#%ðiŽ ÊJí¯êêÈ ÒšzöV&ŽÎ)‡Û:®O¼ ¾ÞèC;yvë’Tst/tøõˆéïÑÒÓóæü‚Žßw×ÞÝÊýwg¨“ÀÉPÈ=ŒZ[,?7T¶Ã¤×2(ÊÿÁÙv’Œ'lÎoGÍbÑ<.9ž|$>Ç;4DV§üÛ¹i d#ù!¡0²­qž{QÙV]c¸Ã² ¡NÄÊ2÷œªOõ²zÎD,µtµàß1â7f{Wê/k¨bGì?¦/^–ˆÇÆ› ÐêûÝʈ¤sS ö‚Éÿ×™ÈtH/Ž:8r¬à¬ëåØÐÜ= ûç³Ew*¨~1Á‹ÿÑ1›‹=k$[`hËIËW†§ÞÒq×ÜNŒaÖ¢3ëûê.¹›t ·w]'ïÜp }×­Ê–Èä]þá=q­Ž&í2¬ ååšiœÅõÑá5¥&ÙIüLæ/9‹i~!óØ,‰v£68'âuµÊZŠÏe„È{7ÒYHzEÍ©|@ót?b¸¾ _žkËxH€¹CþÐ@4D3ÖÒ™_\=F_xmܪØÙœ†#D,Oì^,rÇ@(öúÌÄí˜B£Œ¿ô ør‰~£†`6íS¦lGèÂÐ×E¿µÀ)æègškWò•—w ´ž<ù¦ÞµŽ/Ÿ<%Ëi®-ÑÙŸ®™Õ•Ñ€Ó»ÌwnçJb°´ߥʕdÊNÓfï‰>Ÿùr{âÊÝ¥hc·Ëz™ë09Y¼ÕüKŸéo&¶ » ;3BÚ–a“iRg¯·.µÖ']¸ÄõÏšŠö¤1ôÄ\ý:ü±G -§Ã&fÓoqì«‘S¿pŒe"¬Ï WT“ÒJ¦N?a{÷içRÊÙ ­/¤Ïнv’)¦VøëhÉÒ£•¼[sÂUzF,I‰àÂq²ËD•ž5óØDãwËå— ÓÈ VÓ4ø:š>Yÿ„y3Ï×0»ÛöÑY¥iï´ï‚Œ²Vxd@O3Œ¼Òðƒ@s 9Å,C]GÅó¯›t YÞ®3èZ3t"”R—`WtÂÅ(iùbó˜7ê|›Ã9%z} ÐùܦM9þ¿6“`ß:y]_bBIüM2Ñ)™Oi ‰¬ÕÁÙ5 ¬µ›ai¸:¸°8ñmTòHƒ§(V®§D\ôÑ’øE_ÔÅÄßMAª˜¡õÒùˆ÷åÍÀàõ b ÝdÞ;;ö}i2 ép½_Æm ¾6X‡æÃIM·ªV%yÓq–úSŒÙÀ0`̦sP½®ŠŽfœá¸'îZ EVØ+Nu/bMWÀ2>éŒÿ^àfzNÚŒ»%» ƒº=·Œ¾gÕr¨êÔØ¼4ÎC­ì,4áÉWMNÇ]à÷y=i亸Z%<ÌÎÅ“³àHÏ÷;{{4²“ø±IÃïôÑú³åœì}üî‰&h Î6·$‘JîàFÍ0•=M~Ì@ÄGâ{Tåf´s±³4 g%qœ»8{Ò 'LU§¨¤e…ô&4›ÝVáµ1¨£.iôÏf7¹D2øz7-^ØÏ–ïíÇÙ4±þó±œÈTRöÒ¥4=–vÁîvï§ ¢¹‹]u<{~”eø~Jõ3–S÷qò]8Ï « At¦§@£-ªßñ›å²ÒÑÙŒÃ3Ûý²òµk ¿o-¡×IÿÁ]*^Qç‡K#’†u³© ˜Z©¥¯Oƒ‡plo O¥&Ž>my:âSA"~¹´ÂDj=o‹|9:ûóšüLÕí÷3]&ñÚ;¤4qüJ о5: ù„z–µ$íÊ{ F î¡Z A½!S›ÐΗÚìSE³cqëñÁyu‡NÛP?@t†f@ZnÈvÝåhm²~ àtáiÇû,ý¿šµ½œÌ¿ ´T~‡e+=E`¡Ü¯Ÿq` æ¹=•Ì®gŸHÚ§×+ °S£²"®ÎM”zj ÝKØ•ðd:;Ü.Ç,çºü8©2×6gj±ãD,ç£7ÿ q º®{O¥ 1:¶¹³ñeá¦ÑR@¥ÌÙ àÔ@„WÏÅ0¿*m9 Ê>r¶Ù9‡~SüLÆ/”¹©çñ-«[8Ò¯íFö6rž{ÉxÔH!ÐãoAê²*‡`ŽîÊæ ÉEºÇ‹˜ÿZíHðYo­T$£Óg½hýøƒy¦úft¡b³2샙úè^nPùÇ!¤|˜]&t‰—»n‹¡¥:·(†Zj»^%óñœo¤VŠ%y [™ a‡)œðW )"y’.ÒTCU–8¯Ð':r/Hɵà£HÖÀÛ§Kðï»ÿ¨iU Ã}ʉtz2Áœžõ ÒÛ³§öÿ·óâX³úË>ÆÛ?g¤¦(ï!‘é·–!Gó¹#7RüLã™Ý^˜9‡ZÃÖ"}¬Ðvè{ oxê2Ê–HÉxCßœ¾‚Ty½×èÉÇ‹ÛS õ5 pLk»Ì$µŒ¹žtÔ\¡9Èdqÿ¼£A?¬·Ì€°Wue¼ƒœé&Ú-çŽ÷ì TÖ-‰·“Îb—}£xʽ޻G½L†\%e•oé'o(š×3àŒ²‰å2l^‰Jë?´XYkÊTT¢-ñkÂ4S“U¬öµ6"Aì‚?O-˜¾q— í̉¶ ñGeD8n%°J=Ú&P‹ïtzöÊ'Ý͸ù´NªOJü}b¦¨M;©Îר¡xHÄ+ˆš¿R>‘Žû‰Ù…±šÉWgã˜U”Û^æÄ*3cè°©–×C¥A±€²ƒ’ãS­¢ý(ŸŠé(w†Yd(ÈÆrŸqŠŒï=%­v;adO­ÙÁÀXŸ[V¯Ïš©«f“ºœ%®Ü8Dzéåe¸Z¾6c2Ñ¿|ÜÚºSèûc˼nÓâc¼àBØÝAòãùz[—Fî’!;x&*® è³7çϯR ¼“ÒÖzBÐ%íqjj†—vЈҠ–Á°ê-jË{€{… k!ÛÕö6L•ãÁ–5œ(kOµ B³Úô›´õM+Ò°Ö§û´¸ŒðŠ¿)'j’~ejeýþÕ&"úË¡þj/Iû\>Ï.ªÝ ³±Ü5°GÓp÷€5{çÁSð.뿨Þh‘耣k$§xˆ“ì9Ëúh¦?1±"Î8=Š/AüM2I-Z‚Í 5^fþZ|ÏŽôÂáuÄÚ1Àé²wƒ<ìØg·Ø¯±2s‚ò0a2 *mZ¾>áÊ!¡ˆ9«½ €KOð“Êq liÕê'6ŸôjÖרHÜÌʯ½v ,ïž[¬gÍNFï lF£G“i}ôÙ·ÇF:LXÉíƒ)ž†´^ªSñÓ…pÆðhe¥5 jÒ,®¯p¬¼ù>ãCz͆ßuol!έåLçªùj¬<êMõ†[‰c®¨ q•€Ì˜_“ò_ìÉw=©ÞEÝN ¨±ë*9eZü†b§® Cùû˜^}Hƒs,ÖG³ý‹-ÐØ^´I H…#»ãácVùE-ºLú¸p¾Ž§ààô[‚Fq^S€‰üõ/’q„Cf‹{ųãzAçÑz•6ŠÝ@¨êHÃWÐÞ@~ÛÇç tÛS|’²;ôåz‚Ü:a<_UÚñ `×szvZÿÍ‚ØfÆÙòeìäUò@£m¨ŠIÖÐî`8Émþ+¨\çÒ¦àáÂÝè]Õïs¹‰ñ3ÿeÙl ]YE 빨E¶ºàÄ›¶bRÜeüo¾Ö(ëA)Ò›.Ñòñ; üM•Ÿ[~Y]†’꥖4í'ÆW` ÅúSr—ã…_ø¼ßì© >‰êåf¯’²#ªèZÛ,p4ÜM­÷‰Ü^PLT)¹øÖLìµ$Cifue¬ ,¹¼"ýÈ‹ù¤ˆG½Üúw—PXø{ŽSl'1:¾7 „A4‰'u6†!fŶ[˜Ýv<<ðX»±R”¯OÒzìì3ùFëG]º›Ô™™¤lü¬‘ñÏz~׆…ÿ2‡Ç+ž‘“ÛmCÔ;Šô£¦ü™x·]Åq,P=é{§ÔŸB`€.í^{ öhf.AD5!ú†Òð<š».YáÖZg°õ§‹»Í'½¡NÅ·ÂÜòŒ•¥ý¿¡ñ/uÁ™OÑû§Áãn]š{]¿édRJ~C7àvnì£÷õ yå\z}1w).ì oz·áhW&n›…­2>Xë›xÿþÊTo!\Å´8¹8/œŒ2#‚äÆíÇÁ÷¶þÌ48››W.mÜåг´(ñ©zœŠ¶ê\*E«—=o;ìÌ~‡ƒôD{½Sýdí3x[oe"Df¢/Fü›‹’Ñò\Aq§s±‰ ìlXû’f¬’ËëúŠÝgﵷׇÍ:ño_œk(麼çî{mÈ:Ù¹@’ð UމT®ýZ$òZamCŽ ´aûsO(1—E(·‡e¿i#ìŽÇQ†°už‰ÚÌDcÙÁú£ÊõöExÄël#aåÚï45@ôWÛc8tL(÷þª„]žÂ|5" OêÀ§´éæ ì†65[ƒ¬Ð\òþR**À’4¶US2h=(<˜<·Å;su™|äôáÀiñeHo}­yíö|e—At8› Á:Fü}boî;¦Q€øAZ³Ó€r(n ,î++ÉRM?Íë®Z3qD}»ß8€Xe=¸#Ήg‚.r›2tVø­'¯hìRBÊRätEÇ3£cWéN$ÃbkÏ=wåÕgFÀ×ä³ûš;í—?­1¸Æ0ÚäßkûþÚ³_SÈ.ò±ƒxÚiÚôÅÛÈîöÄn!µ5\¿Ä@7ˆ”Ù=ztÑ<¬ë•…Ë’o#°¿„°ý¬MÂ%!ÁÌY%ß'9¶û*#2"œÍBQ•WF9ŠÁ²µQ›]|C%–š‘è 6iç‡A|Ÿx´va®ßô(ß“_bÉÁo €¸Åh1WGOF޾v[!‘œÞ!ûi ý˦¹‰žš`­(i7^3VgÚ_×uŒ&¯ƒœŠqOKP‘¯5äã]OG‰wå+éaFþ«âÞÝ“šë+ñpõY®¡Ñ¥ÐÑø shØrÎÔ)aÒJ8É´Ð(Šá’A”ìjMwˆÒæô*¾ÂUDG¾n~¼þýKêew\­–°[ìµü†Dݲ%½²¶îµ VQðˆÖò<µÓIA¢ÉÒïƒVïÜžµ ½]æc/…h`~i)  Ì[ #X9Lÿ ˆþ& :ø£‡aKä1…efžýmгç%åyÕ=L+ʶz×iÍËĘqJÙYB‡ºÅ:ëét–Y‚ŸÅÞsa¦e ©æ$•,˜ŸEÀ/*ÀÞ`6NþŠIlç!%å"?ÄurÈ Øã^t£âïÇÍ´•¥ERgHÇW…®*.IÍ`+8¨͎Ƴ¶âj^ÊçàÉ1áY™0ü†mÑ·U­G¸Ö`pÜõ\õì#Í‘ŽÝ‚RhöTÊ:ë£7ð¡oÄvüJñ"ýÊå²çòW>Äû\* ^³lòy îóÂ^¡ öåß.6XÐzâ*ú!D±–[–ü8<\’{½üþlP\O1[¢a»ww凷ÍéÎJ'I;Ý?º¥É¶Éu5‹Û°w¼ÍÃüYñh­îRÕ¿u?þq .Hj¥¬4ô±ÖW>*øâþܦD)Î5„-7â™QüRÞ»Ž­†ãɾC,(-7Ó]Z‘˜>1 ‰ˆï°üN¨U# Ƹ 8¦Úe¯ I”³Fïé%)Z‰(»áQ΀'Òâœè’ØE˜k!¬Q¼XÐñf´p)aÇ{ {¨V„dfƒŸ‡«á®§N ™Á.|ŽGœ(ô‰/±ÔªcÀÐÝ· W;gòv;ÆÈJd+¼õTÿ$Q‹¸ÒÞmÏ‚ÂbH Gm-t”ë[¬~eô“ü0?ô+NKƒÂ/{•ܼ• ãí!÷Ÿ|zÃFjÎ "òÆõÈU6 êh+3'–kœKŒ0Ðf}©Q{GuÁ::…â”ÔV­/„VyÌœ¼{3às¥O„>üM+˜¨zñP¹mi©*g½±c-U 7É‘Rk{8¼¦u0¶p‡ÓvfµýU#˯f}ì–OžâøNÐY@GƒˆÊÐÛm“¼„[Ϩ”Z³6qÔc…Y¯š¡—ܤŽë 2ã‡}“¦ö´,€@ŒMC#¬ƒT«°¥xWÏHw!§ªÄ[Ù^¾‹ÙÇæ“Y9‚”9ÂO‡Û™ƒŠš¼>5ƒžÑ.¾Õ1,G±± ·‰1âaºÖIGm3N®ÊòÓ[XQxUËŽaqï–}My2òmã W+7Ø žž}\ê(åõ“PùÍ_ß3?² ü1›qt¸TÒƒcõêJ(}%›°\ôê.Å"Þ p€2¨AÒ$tb¦`å#ö\®ÜIpú (1˜Cê Rþõ{fŸ °ž×­Ï …zÔ(úi|ï¤K]^uG£.·`&oacê9ó(1G%ÚI*õnÐ1ávƇlòò|Öy¾*Êh8ÂpÛ,yš?Ì™ãÁæOñÂ$èî†ý§m€“0(")ô¼äfºl óYLV¿ÓÉuGíG·‹y*?íü¯.é‹èßÞŸr¾Ç|Ž]¹ €mÏA¾ÞJgoÖAU¢OTJw–€ÅYvDܯÇx"Eû6vüÄ€Þù)$V MYäQ0iW–eà8äÚK\ÀŽñHãaæñOûÆa †Ìž¡•|¸\‹‹I2ÝKz!ªµŒî‚wÄ{sk™Ws7ÄË¼Éø$wáiM︲¥FîÒ<¸<¤Ñ•è‡ÛÊ¢këH-Ù½ØHLݱ„é±&]ÿúympØ‚T²X°Ö- /™‚30‘ãÝà"ñv 9‚Š@8µRI‚Ô9ߌãGPëGƒõ凳鳄®z~ÇÛ¾z»¶°JpÄפfwÄþÌ"a±ï´d.ÀV>|ð3šjgÒúÖT·RöP Âo„×u®Sáþ6™“rŒk±övª¡±¿ü|¯»¡2Ç’fk±†'UýHI~šBX£†/­Æ6ôŽ–J;q#eß‹ë®W¿Q¡Ð›#u;U9l¼wKV_ÚKqtiøÑÑf{ß…{ùª;<ŠV¦Lªx]áuÏ OK·¨"Èx›`g<4Õü=y û7ˆi.upÈÕ5ͨ2X\ŠW{F(d—ZMoÿüBñšÆV2€ú¾¤pyï³yzÛm?¸ÉÝc€ƒ2ŠOÅ&ïc«A³N£Ñ*~Fç˜Q%ת;Õ¦[ý)ræelscšé×Ú±©í 3G-—®£nÃ>_hA–,õ–~2ÄþÆKÐý4_Œ¿9SáWšèU£Î€iþ™éØcä÷ƒ[¡ô­¨‚¢’‚úxÂw¢ÎšR!B®°ž^Zlj<›èóÇS.;YƒŽ¿8³õ‡ñ¸_¡Ð¼vnä_ôtí ?|–Î0¬–¥Âé´ò0i0~˜›7¢I9¦ikiû‹à ÒiE‰n.'"¶®üJ\øTŠéðZÒ˜gIÙöoy¹êé«/¿ÝAì² \‚ZÝÌZ•áªc<²Y†³Ó£ç¯ëéIAܺK¿3zåN¤åçé:<Ül=–«nË‹cù"S]>ƒUÿ²“<Д n ¹ESi$'¤ÅäIy1 ‹ ކ@ì‚~yõùëÕ¢KŽW|?¾i·bˆ‘õçy·¼Ó ñìSê©¿ «½]ã{3/À¿$´F—ó¤ê1[ª´u2¡á;Œ²a½ÄÍà}›e2'—£¿àÅ·P6À‘ WXH‡½.B‰- ˆd¹»&Ìb¬é!£S6PŠé"e\Ëꉾlm¹üIÞ ‡K¨ü°³8ÉÌÎ-´Ò+\‡OJ x†©)iS(fÍP›´+̃…A_5w{a- ½j χ/´Dq´Ò‰_µŸIáh¯5E¥È™ÎK2U½ë™Î Ô—Wðdgå©fFÈœ›)èútqÕ§_l¹µ»_°W‚”C©ØÄ1/ìäW g-,0ƒùbö\“áÀ₞ÑåKT ô?N»ŠI,ÃÞ¿–$YÐd¿udqðeÒÂþ¦ _¯²d»P'(F…$…íh®ü‚KÓ96xk­€(‘žŽ±¥¿|Ñ+悯.jvf0yzüLµ.Ú·±BQõ<Á=ŒPÚ:ÎN½Øyt¯h – Šs?Ë7#ª~=Nƒ¸µÏdúLãˆpy›&#à›¿Kí/úg6¦ÚÄ ©Ú”‘™RPµu^ : œ“+Ã^Ÿ ™;aèt¬Sz,-³=ÿ>d§ŠoÁ¥ÿÐJºAµã=S½›¸‹ ¨T+I¾ï;U}löÈš‹Óg¢Eq%¶}RËhm]/é¿®DÇt‚('U`‹ý´ç±Ï#ÿî2¤GÏ(I5u ¤šY-¦Ü¹jk;zV³µX³`€P¿q̸¯ ¨Œ€C ÖP2 {ʼn›»/–±ix@Ë¡h t\T`üL©ºñÔõ(Ö¦RgúùE{.ˆ}D"†”ÝÛíÇГ5Þ°˜Gg·B4s¬>$ wBé¾8T®”ÿÁY «TýdÁ<$sâ|•HxqºnNÍçY‚-ùضiYæì^«Ï2â :[¾´×|Þ­°¼c3çÓéü¶ aåz³Ooz!Kè…”½Ÿ²Àók(ä!ÎOõaØ¥Jä«¶ægàn%z*¡¤iî$È!„4VÇ"]”œV“ Ò1„v>$hÊ8l,ЃcH6&¸ðÆì…¸þ”ßPû¯7n@1p—‘—ŽJÑy"Ñ6Úã(bÒ¢KÚhô°"2>9è·pŠüLÈ ¶0V…P¥[ªP´IŽ<ŠXXš³à5;÷œ­•T·Ï¡R‡FåÃüû'YÈzg.]L_‡–oMäsN{³3J3~|+y‰šÚŽ7ŠÞ˜YÀ¢’e¤&Ùiûz¬• %bÊÓçÒ2zþ‰[¼­[- hÁ¹‡h"}rÿÐAw„Ô¥/ïƒnÃô½1DËm§Ö!ŸŸ ‡Ø tÍiTë ~²‚†ŒGbè·«ÏtlüÕÆ‡ê•r!û6 ˆe·bÖ– VeRúl”q—}xôýŽ XärU ø0?„ÃW»áø¾Ê÷k“ß‘Ý1™’ÜsW_gXï‰ŽÞ   b1­ÞÛÉïïb?†2¡Š‰>+ƹ‘6~û$Í7ì, „ÅPü¡ä|6.²=ƒ4¼~F€e½)€göø§Z|ßo<aIåÃf—ÌpT±®¸Ü/fë$ ¨PÝñêýÑÔ«íáÒ7lZ&8d òæ1?N1VájJPRªuE¹ÛfêÕò&>°™V¹)-ýk 稩7R¹è!´1düƒåfK4rõèM&>`Ç|z]%¾y¸´œýð$­¬½¡¢g)ù¤˜‚9œ%]›ûM™jx¤æ[~Ê—\|Á×ç7í¾˜“CÛÀìîüí9ü@qXFZj•[¿žJÖØq™Š%v#Ú|«–¦—žï~ä–(¦Dåç¬þùªtb¬™ÑŠ\z%%Î^WÙÿZƒ†]=+é"jz£O ƒÈnÑ÷Ç/ï£íñ?Ðâ!TÊXÆaî§&C– 6|½þP¼Þtβv ã R²¦WÈý['í·Ü¼,i²Ä¸2¥Ì†âY|`ÞÎçéjÅ{•åtÆ‘<Æ3²6H¤PjW“pþþ³ó•Reº$]Ð#'$ð§$ø3Ý]UèÕ·Ùz^BÞIî¢ëµ›Þ$/A«Ã˜ÄÀsäO#MGZZiiöÒãRõnžFrïÕ‚´EMZΞ#ácºsQã̃‘`|©X â§ÒGn=…ü¥’&JÀü†mèöy-a8bœŸb±Ù™'§à¦mhýC®^µÜ0PÁãdo*…c÷ìVæÃ›Mgœ¼«®æ ÁñZV=;Á&ÐÜ]IRBMü£8„BëiŸÏ.¨ªRJV.EÌØ<8ÿrG,}až©À¯<Ú¸$þýf+Ê4V°7FŸyúî™…o”ŽV#Þè½ZI¶=Ì^£-~iíVž{˜*òi80"SÏiŒ³¥¤ÇW‚^÷Îï/9S)`‘e©Ïh¿v²›î¡ƒŽ¹`2³ŠìT)±Xužº «å¤NJ5$¸(6œ<ůúY9ÒK× üLÁ§ ƒ‹“àÙ”í‘A¸“õþaÕg 5ÛnÊÒp†Hk’ŠÄŒ¾ëþ³Àê„ê_:­-é„|ÂzˆÈÓ@Ce¨M7½àpx½yÔ…O#¸…É@jß?Ⲃ<èŒXõ#Êz÷~“‘&òЕOY9­«. æÞœ½+"èŽÊ‚ÎØß¢”lªOvÊ FôÏÑ€^nÅ“r‹š(|&”Ì™ çšÎžÞw„o¨–ѹùð¸èî¢Ñ9•J8)Ñ3¸a•/,öÔРájºb§¿îÄ VÙ~/óÁ»Á®0`öH6ö*MVŽ/‰·ê`4üLÕ7(d¢aCw»›‘ó…ÊY§¾éì×ÜTŠ´éxmÛß.¬.=Mù bã*ùÃÁi¨.áåÑž¿Ð)Š!ÛR²ŒÌº~Cÿ Bên½Ê˳^ 9XEn,¶®r]f¨;Á¾ÂÎí°_+Ïû¼_e>ƒüjùÑÍåÿ·>ËÞ.Ûñ8Ža3F§m I²ÃÓøªŽ†HÑ–IÉ¥õ&`“RöUˆâËp×<;àžöG(iÖèêkH#ÿû´Æœè%™*g„Ú¦€NH-ƒîçÅNî¡Ü?¬ Ã…l ô߃Á0I^mü6fÿï$>‡dŠ ™*£/ö6ˆS…X_j)_7 Ï$v‰Ì«½õ·‰‹È÷—ÛRV?žQ7ü§—à@U€w^Ÿ´Ð+o`ºõÕGiQ\ýj·ÊD>]íef÷ªìpú;ª‚D8ƒ¹¿PûŒ*îì¦ó6àqʧ—ï(Ћ0z€,lñ =/Ì¢¶%… ³ñ›».ÅÍuڽΠ;P¢¼ SĪL˜ŒžÃÖÊþäÎ} Þ6iŸ¡žµNbúyyÏïö;¢WHùàPñã6pÑ?Hhml«4«. y2[4VO‘ß"¼PОü°õ‘OžÜâPÀBÅ‘ñÔ‘óüš&\w™øj9—@a³TYêrHäÁÐÏc·Ë|æØÙG½¿ÓN§(l¶FN ¿Jµ{d%wYc„/¥ÀP0«âÛ£O?È—0=X‚llƒ˜®y0ük3­"£’àj)Í#JÙ÷¦„Lý³ô~¹lã™^º5«' Q¼„ÎÙ¿Zé@ 1=‰Ðï|Ë5úñcstÁ¯iæ3fŸ™:°ŽF6{2uîpÌwFæ`G-ÊÕ>¥™ŒWxi‡4 ¥4²V,ÇUêE 8J…g¢ñ¹Fb±"fíü}b-bü:-w¬ì¦¿Øòs”èG˜±x^/©-ûqE¼štEía{GR™8ƒ=’ÅÛò·Ï¨ Ž{9FTzüµ0L|õÉO¸€,ªŒ8(•LZ:œüNîc™!:wçé|˜þC¶“ú ä™'¡Ù¦ôs7nÞ; ¡ðõ«"½ÛQ ýNÑdzg §¬”c^|©…¦g@»ó¶0wu8©véøR²i K4œo#ˆÙ˜¾´è@¹J&n># -=õó¡f*UAhÎvÇ"ž&ZG€¨§ªåý- ÝP¯hxø$:ÿ·2œ§ êÿ=OBFÿÑ)`Þq:Wýpƒ‚_uØÅ{:Gï4¤ ñßú¡a_6Eåbg*`œàF×ÒQgHyϺêçð¼•g™<,•Ú@ß½fõfûe>ÕÆ6½å¢`´æûBð±*ÖgúÒ…1еwßE˰b}Ѭú©2f-3¡S +¼æ$Û“Fü›¼*¹ËhC°_ð.4‡³ú‹ãIŽÌ òåYñ£±îË%‚ýüž¥Î }'h£Xë{*wÙŠ)Ûâ6!ew´"!5hä³ &D ÞЋ'¯­¬óG~˜1çô)ÏÀø3”‡^éQ½Ø.^ذÿˆ&sÜà= V(é“ÊÐ'ÿ¤º4º+mea‘1˜@–¥Ù†ow½»Ñ³˜Ð¶Û¢µ‚„%Cðe±mNÛö­AÚYλ&û-$ã_Ÿ “§žyöy¯)ú&!™_Ñ[UØÁ/÷Þ7/Ë ¨­…î*¾–2ª ñKó—ÅX[½Š`Lþ ø¦Øì×ëÃ>ìæˆôg­ï»ïɃrN%ËNEõ|×?í`WÓØ.^ÆùaR_1FÄêÕ8AlM ñp£7½HÍ51lTÔüsíáXmóÊ 8Ђ &9ë ock… 3È€\Ki™ü±$¸ š½z¬«Q¸n®¤pÝclËzäe€žãS!PO{}e€¨>í¦¢;P[ ˜âÝ~u~¿žÜš)‰¾…@Ä‚ä[s1U‰¡ÝÓï^¢1åYù ï¯ÌóËn«ø8m®µfÓeR©\UwѨúI&Û!ì“›ŒûØÍ.ˆíç\ßYr =:™ûØ{aQZ0´AŽ–N¨)» †ñ€oiéœÈ®ÁƒÒ¦ö¬g“4)ôÉQs(åwÑüLâ$AÏfN`Œ3Ò™,øA,LzÞ2§qÐÝXðpÛ>½GÁƒ½oËá_ÑWoºÖ uÆõÝ[÷dÎmÃ…Á„¤äί=ćd¢¬|ã\0ŒÏ5˜»œ­i2Öª¶Ñ ŠÈ¿“¶fù+ø½ à¬$±Í쵺‹<öÍ\^q¥ã®Å‚5oë±@Rvà;|úIU׊ÿ(Á‹S€GμsÍ«T&‚†e)ÖþQ;PÆòfC«#  q6Ëà‘Û´×f&©ÕéÕYÛhþ½Ä÷Áiù Ôv²‰eÚÁÛÇãw®çWëØÒ ü5–Ùd™({NF[Ä78ÙQÅž]-ÓíxN¥pzÍ&ÆÕ­0´Q†…J4AêÕ¤Dz;NéŸåóˆT ]ÿKìÌ]—ÙeSjŸ¯ÖNM+'QÓæ€ƒ˜¼Ý,ùÍvâbÆÆ"C¡ŠhÛ ×ƒrl‰2»üJ›Õ';ßp\~uÄ–´z>G&‘V9öúX1Úó+Ï+t>%êÌÔAPÎÔ¸À¾h°¼uÝ£Ñk‡g ½T‘«ÓHVC¸Ÿ¶¸Ô5®—ñ _0/®pÐü(ï#•ÈÚLQ?Dn¡aáÔ13¯™g®q -wáüLª—˜`tjúÑaö"á8ºˆäfnìâG`)Øî<`|~"OdÓ‘½¢‹¤Ú˜OoêÝØ¯œ–åâ u>ÚL3:hR,¬5;}‹ZûÙaéhBõ|¡!w„„˜w&*›& zg6ÌØqW ׋ìõQY¦*‚7£’M€ü4ì¿Â^'ŽèÚº*^øi}x䌧“WAF4ܺeR°;[±[mˆÙùX¾Ê´²ÈR4¼;ÛK ®¸°L`°ç„ßå‹iUX×L1Üw¯Š™­DÙ¼\‚ö7qOc4“…å“— 9¬ðà´+þn~ˆ)㉎öZq(’ ãÒà|J_¶ZkÍ®°Å¶_©ËÛ^Ç”–z„ëìˆüL¯2F뙂eϨõ¦Q1—0‹W©œäÀÒ™ÈÞ™\ö‹ñEgfiÆLÅ ²ƒºQÈZ—[nJ-¢Ó\­LçFÂ’½Ê;C s Âñ^Pý4Î(‘|'ºª5‘ { *ºt$8É‚Ésœ?™y• ˜u@ ç­“ÜópR4ÍU#“p–±V›JÕTROY‘QNÁ2"áý.fÓÏl€†õBS¸ehU\ðmö””O6aÝ×)¹˜º4Gÿ~ YêAËà ¾" IFÔ­ÓóBDÇü¹ÑQÊžˆØ²„ Y´p̾‰Ï¤Öâ­½ã¢XÖ’’\›Ó&x–ÒǪ¿x›ôÀƒ²¨Êð!tÑ#"\º‰9áY Ô=¬,ãÚ€(²t«·RÀM¾Œ¢á—>Â5k} Þ‡Ü ”ü4û¨¦æ›æ†'ë*7@ÎvcÁ&ãñ½3\\·z»áÜaÃr{¸÷Ócàð”þ;Üœ"­ÿîåFÊÊèe!(.¥6ˆƒ¦5ÉÓ;Æé±{ d““&$ÓíwB¯[áî"b‹}äÉo……-C¦Ù»‘5cmŽ›UD‹Äì!O€èÆEðÐ 6h—t½_‘~§k]JOy .ÛU>/½ÿ'‰«ÅZ©Õ¡•i¸Ø+™’5²Àv¢¤¾±Ñ*ˆØO´,óª I 5N?:YJƧÓ-@–“–\-ºÁé*²ghýK®Ÿ†Y'üÈUu]ŽwÙÈxpbÁ• Ìk2óºó}cÍbÕ°N§mÇS{’Y'Ý‚|…_h©ÀœÁ°óRT;ï}k¨Ûµ|Jþ³ŒF¯úÓuoVrÆÖ‚ãÁ¼µâq=³AÎä„ÃÓe3á^ËŒ,cjõÄx[ Ô mç;È£ZðÐúôLd[G©J×§Ê„B=­]ËWr`.JAýÂô¨“›W)¹Gªxº¦‚oäT’E©KŠ€´©±Éíòúµ±@TívÇ!žhP«h¯Kì.<ú°þ«¿T\´®¼øI¯ i´J úñ¨M;x;ÅWñ{¤ÀëÛ·uìÌ&zË’ ¢–xàË}ß‚SqŒw6ð<‘ð[0tæå‚Åoê6.÷ž)ña'÷m«'¸Æ[â€AÃQ ȉd5éE¼®ñ(x…!Bë3>ÑjC=8/ñjvˆ»îhÓ‚ù¸–ï˜{ö†çvö¯ˆ­¡à¤³óW×É’¦:bd+#XÇÜ…8„GêÑØ|ü†0GEæ"IƒšüÛů±qZ’áÆãëvfÀUtò:ž¥˜;ðÚì('{þûˆï"ê=š`_™f{5A7´z¨-ü¼a;SÞ¦>§æ[ Q… ãFņVtÁXüräK‘®.P*ÃS©ë»¡ÈÝ é\Ƽiâ·êt¶]L9í@óæ ‹)’^Ô ‹¯Läês¯½6?¬¡ú´äoi‰Ê ¼D§öÞ”m®­Ž'T½É‹ç×,ÞWœç7 âª.úaû<ñTŒCi"Åù¢¤}ÕBô©ë1‰üL·‡†Z±ý—°OÇÉ¡ÇmpŽüŒØ‡Ka$h&4F G ,Ž«y¨1ÒJ@Hѵ!í¸ 3Yá&rÙ~Úá¾ýÓ¬M™„lðîƒÀ¬ Î2¢©‡$‚mÿR0‚ØÓu0(3[~÷1cHJ¹™.¹m·Ò,›eª¥&ƒ:I%Îb_•öŸàhX±! ÀáÊFªŒˆ?'—é‡Ä᳘Q·^tyÉ?ª}5î^§I%3[Ó¯8÷ÃüS~>ßôS+Ssëmºè,ʱËX3¥üM0’Þ(F}f°Ô¬±#3_RÞYóÞ {ÞlŽº ^~¤¸Û©a®½‡3îw3 ¦¡ûùr 0üvoÌ0/w,7%ÿƒwJÛ”ë›/dÌNÁâˆÞÿ¥H¼&DpŸ‰öqz8ˆ9ÍùHèò‰ú#mUpvÁÂñuË N.ÿ)ZU&mÑå¨dFöN›UÑë­RÁ}°¨¡÷ÂÂÄoÄꛓ‰® Ä¶®!‘²ÃÉ Ív’sÀ[§ŠÎ!:‹ìk^Iü m¹´óm—yÞûÂü6S± õõWÖ:6{ ãî·)'·3™'SÑ\Œ‘¥ý%öh8 D^ƒZÇù‚{Ëok.azõpD×ø¦å5c3¢¦R½ •R=²qI+¡~§FØ_ßy6c¼ âÑ…ÿåZ òJÄJ„ò¤ªê|º’ÖÐUÀ5²+ÙÝ‹‰m™j²º§$ûAk k¢êS¬ŠBÀTpÉÁ]©«ºÝ€KÄ'’/+8Ý!Ú"mAêÂá9S¼ÿ˜¥‚"Ÿ8µÇä“ÿ}0üÎPùߨ5¬ÑͤÖÂY$k¾ÇOy/üLÃcõËžðE±qˆ}QswóEFìÃRõÝ }Ú%¯Â÷àÃx>c\§€SŽþÔe®hËvQX.ªÛ«¦½B£!y3Uât‰€[rHî^º…\W™š¸ìZ$K{Eµ:Î’O­Ýá*ëXÛ(Í 8¸\Ðë¡D-(Õ88cÁ.n1Eæ\ÕxU@‰6Š2ðùjy ºÁð|frîˆqZ²Jû˜9å÷¤Õ Ãßú R}³ô&d£4Ëö4GŽÊ3Èföƒé~²]qØwãb€düL³“æ`¬'u™Ú3ÕÅÝL¸Û0~£àÙë†wY»ô C˜€]½?Tµæ@ÇWq7^l ŸKHÍ\µûê;˜Œ¼½d/áÛ~ƒº÷ˆò§U==(Nñùç°!gRÈB·ß´™‡[Ó¡êeVâU‡ÜÀ2‚Ð(DFÑ“š"ƒýhŸ"tÀ÷Z[1ô¼:Òù2½ÛiCå¾f‹gl8õü5)@YŒûl%âÔ«sµÇ㉂]My9Ë=IdVÉåC@¬õäí)Úš:êì¸{g°3n¬I¹jô6:ªþ‘eû!ŸvÝ‚Ò?Î ~e?¹¼MîN B‹ðr× DJI]r…r¼îœ9®ykš9QÄ%/ÁÀö“g½<ÒÔÞƒ‚3þÒôÖÙÀNІÅa?ê‡*»µ%1ÌvÒG×¼dŽn`©x²í‚ëõt?[J7W¡¾§–HßËcâû™[¤ê ß°y«3ú,ƒƒV«Ä)IL:–c ƒèñìºÖAŽs¨öÐþÈóüL¬#E7Ä&P¶ZÄù]ç£.±í5°¥ª’k¥ÿ;æ¹¢B}©Ä;F'Šp®ž©Nÿ¼.†Ÿg)ó>­0ø#¦£¨r/²f$놲[)Fée&.m6(B'7@© ߇×NÖ`/&òš€Ki*MšP—¿„ÝE­>üѦ"¶ew¦ëvƸu&0C¬~€Ùó±·Asš>Ý—e±~'Bš:VɘýCR_vҢϠ¬„8r¼% 'Zo¸c'JÊ£En^h×ýƺ^8¡ ÷4ÿï.,Ò‡NF­:—>ˆ_£â8;îk’üL°Tngò|–˜Ž={R+»\Ô9üEŒü]]¨Ð5$1Ú¯O迪nÇ“:J‰qÀÏ0kwæŒQCgS:®5“GÈ¿X¤<9²ÈðotÌ[£R„1‹¯¾î=¨Ù‹ž9 |2LLZ¿jp˜fý™ˆü–(0r)Yà;"ÅC“a°À+è›à6¬‹7Véú]³aX0©œåüÃ>¾a™§×WÂîpaˆŽ·ÂÑ`ðC3?ŒYÄ{ çàÞA´ü×Û^¹ô,®ñ Ä‹#kÚ7ÿ.ÂDàïŽD”ÒþýcbèâݼPOggS€¦BýÄ n\SâO=ðòÿŒññù÷ðÿÿâÝÕÓÕãÿ/ßéëòôéáÿûÿûùÿÿ¯éñÿ üøôÿ¤åèâÞáãÿ‘ÐÔÓÖÜüLνÉ@üRWE΃àMÌ—¥)мÔÊ ì¼\üdfýž¼˜‡þ§ÂÏ+aJ§¹Ãûç€!—ê›kÏl!_Š_Õì]Ú¢ È^Ï·o&ìgl3Ý×wòšK% Îæ½0«ùϸ_ý“l¥ñÇràKQ`dRWŠdŽFû®jRðçmG¤Óñ p$&®>xIDHíäýæÅ’ßÔ’†wyÝ_¢Yu¯™÷KàK¬ -ŸuaÍ? “¤d33<ÔˆŸWšö(‘¤>йCä‰;¶âIƶ{ÜŠbÈí˦Ø<®-4ðóÃg²#±~ÑüL¨r7Ù4Ø¤ð… ½ú÷Ás_qöKšGfÓ-m¿ý'S [ß]`?àÕ†1ÇÙÓ7¢™ }‘Ê~vÙDP4Ù•1 lÒ8¥ú¿ý”¢m2ñèuº'Ý6Uó\¶ú‰ÖÙ¸ÄuâUç‚Êýæ7ਪ ®?ö„}çAÊ;gfDâ¢óI«gk–ò w{žd”‹]§¸˜¥,ãAÚs°ã~÷èî¼AéÓ¹ß'TH‡gowѵ(kgpX_PÕe ‡Ñ“™Ìg/èÈ|+±ã*Èh$‰.@Ì(¦mh–ßö´™_ˆÆÂg/%ÖǤ~ÃeIü|¶Ö¥ÿ¡¢Ìê ¥L\¤°å‹%زæ¿å5˜þ}ÓB^ÍíÚ/­ò©Gè­Åžªo?V.XŽHÅ=Ë-6Ï@ndŠùÚ»”Ç6°$*ìË7 nw.x¯¢-¢ÆŸC‡uNl+× b%’?©n ,6ÏýæÆÌWÕéëoV[œR¾d–…ðºè¬ ¬?$„‘n‰×1V5*—9¼ÉW1=‡&,¤^QÛ[Ïs8Õ‰t×UêM é±cк ÷A`»sÎÎÉuÅÂÖ†²~ñ?%0Be±›(CÃë ™3ô›`ˆ¥+£ËºÚÛæƒØQWÑ¢Èå@ìñ…õDï62×ÞI°;©µ®ôf6Nž˜=›KFIÕ݋Ն,’Þ“¤J.O–W‚g7Îy±[èˆS‹[õ+?וþ ÔÝüêæM£¾pá`ú³{àºÃ¼[nŠï%ý̨7k']€^”=íE-Ú`„GŠZ¹ÕÒÝ+wÙ¾zwÚÆµª™²·frí&¦ØDü5Z¯A…&·»U\ýcµøjàÀ¿ $¨s=•èø®Þ¡É߃ֶ‘>9Èí>%Êûnå°ìÄxñ«;_oì}Â+Ï MY5TÛ+çânèÁû}OsPô.ÉÊ£ìd/.Î(÷[%Dïƒ(a8·ÛR5Ž/M•Öä3À ¨lÉ$¸û˜˜¾˜LëÁl™ àÇf€Ä·XÆN𣟑š D‘ž ¸—®vɺÞsúÇzñ!-æ -/~ßõ¯éžý½„½Î¥zV¦]÷ Ž§•ÇaÓÁª3lW“"È«ÇFÄ«'éHkƒrhìéšÍ‡Jã f®@[×ìž‚Å^Á®./æv(‡ð)›î†óò'þý]p–p‚|{:楙­]$–à–ÿ{{óÉü¯§ÂÎãµ#öuê6Iy§àTyÊ–ä…YãÁKL$DalÐ"&Oþó¤ÑÚâ¼ýþé ÁPí¡Š&)šœ§Bp¡;U´‰ÛÆ–Ú’’<Ií£|XéD!0‰™&ÐÃm~ l³¨=a_õðÛÝOuamïé–iðßò`«§!ØÕçaIp¹r'•"«Y–‘¼öþBY8øùOiZ¥{ÆxB¼-j*¥]£ê¬…/GЪl ïR0ûwe7W3:æhµöaÄ:,;åïÌüA‰ƒÁÈ™”—¯*µ-bË^šF@Xåaˆ†|{ ÍÿŠç Éü®‚²õR—ŽFì¸Ï­0›ú!ûh~ª†ld/?ÕZ8‡gŠò†™î¿Âãæé‰ªýì*öM°š¡ÝýŒõXÂÍõ “òôýšfpÍ©T\l¸e¶VÛäÉDøçH¼x ޳F½ÕYSè9ûiÜ"Áµ ä€y ¶X²³ÑµçÝO·ÎtßÛðSÞ]ÖÍ^ÞÍx¹ÙØ·È+›áV/ü¤O ˆ2Žaúšú¢îÔË—˜lÀx©Åòà Îyhduù/˜]iàý”&År¦Dë OY¬å˜—³ãKÙ©rï}lïCdÆ@p+ üÉü¯­±oºs+ij#²IïË òc”É•ý¨ fZñµªzks¯…»æl&x²ýáAÍ&4tnEy\Y+ŽÎèbâ3pï|xM2 ( ŽoôûËÆNV+µ›¼òuq‘/ÈGk¡ – ú_ËÐûßÖȆ>o63¬÷Öü·wd’¥E$Q–ç'w>ç’Ë™—Bò5sy3}á##ØéžØåÂD±s¼q¾ºžÞ=ÈúQÚ"÷uAˆ•¦äÙ„¬GI~^ËUA/-µ×s0)‰üŽ^AbU‹^V£{ì©ÆwÍeªp#qŠÉü±6Ö¯ÂÁðFWºIqG ÛjS-´#ß?•Ÿø;j€OÇ|ÇÚ«’4Óz•þUã?€kÚ¥æ.¨#ËQÜ·(ö¿ &ôr/Vs‘RŽÀùe,™¹½ªï61h¦¡v¤šX3zpºžI¹—ŽW¼¢¿ç—’V$® Ýp:Ke’Ôȱ¬N,\À¸ÞæE<îÖ‚H3Æì8úÄ|ã¦j¯|šÁ¨™]#«ŒÏPD„f¤±T‰Ñw¬¢Yg<Ü8–×$Å„wÆú0V&¾h„ÂköhÂ-½=D<å¼ßxÇ÷J{t…’s±¬®¤˜Õ!ˆFiŽªBd¹ ¶7Êü}b™àbÌ®7ŸÍ(Sm?ÙÖõß_Û»w› 7k¤?hǾÁFãÿ–¢§RˆÐN}­(êÿ.ˆõ*±ÕO;8R+Qõ–khRv|­ä©VT+ÒXqû#8JŽ\*l9äü%ï€xé©9n‰Ëœ¡Û "p#ì„sÑÞÜøc$E+b¿8´Ó©öû0(mß9~ÜSJó–{ÓÅž²?–'ª±Ôq©t©Û ¬ó€Áùò5¦PWü²h¿Û8ù Œ"•s$é,†9Œãm1 Ö¬= ÚÜʹl>Ìx…ªF²––ãÇÔ§‰è8ñx™€ïÚ¨ ã}$sÝn›Ì Xèœìd–Àœå¾º®þû•«€™M*> ÅOnR­Àø¥êe®·„7­>Zyw m2&K~Ï ¯·>âùÔë $CZÊ‚¥£\gj¬,lÂñµv¬uÆc9…èH®sX§³‡.'•Åè'é=†ür›&úÕ“þ?ñžè Û#rUhó½ü5ÔsîÂŒ@àm¼xÐëühWqçÊ‹yÇG õV&ÕØé§Ä|ê A?³ÁÜ—ý¿úþ(ªh‚ÕÐ"Ãe£—5²î©<’o…‚“‚ÚÖÂ7ïÜî*¶r{¼‘½åOgð]]í-»O¾^D–i ³ ¥Y؇‘ø.žiEsaüYò`wš¨€Ð ÁH“® Ü‘h…SήämϵћP!ÆÈÒ¤·|b¨Ic‹…H „ñÐλÎ-u©Ì à¨GU-ª•¿áŽåCÀo¢¨P8l±áÊmZ«ˆD Á¸÷Ù"µ”õ¿+ìs³œì™áv1šÒ-º1’¨I°~í¶”Pæb¯¼Ë·àÆj [ipÜXw™eyBœ-”9¿ÿˆûÜ„\Õzý”`p¡ E´hñWJ+m\ìÚm½$EmÛn0àí·cY#ÞÇy}µ5¥€ÿ[¬ºRj?iá“üL¼CµÄTÖIIÌÚiôNoe Þ™{ÆrhÇ–â|‘DQßîÁzr™@´Ì üómOch)õˆ 5]?)ÝMJ}¨;ÚBà‹èp·–@} L*áPz_àŒ£ |ð׫oS}-§h¡C[ûorR*Œ·þ±ÕÜÉq~¶¹M„ö¬ñ HÓM”-Ù«™–ÊÌU`”ìeDnyçbmkï—ƒàeGâ2Xìk»M7 9žŠ?4=…c¨ŸÜifÁT·¼M5I3´,&[O'D¬±îãâãï1XŒ'Ü·ÚTþíž“†“AñLAc½ü}a-NÝÊMR¤Î—A ‡B³KòžŠnçýpuÝìŸè‹þÃôn€/QÁ½€ß>¹·¢®ÊÒ/²«§×<þEgFC­žÏÃ"LÀâëtºò'fÛû Â#¼Æ*µ–3[öäÉx…D¤—6™aÃé—‘ö­L!r¾ƒÕ Bík×~›ŒhЫ]¦xž1ž ÉI¢ÀºH}FôK”"8E7ßù’È-=(ÕKn¯¸ÑDe ¨(é§šéÚYˆå©ÜF'a:"·‘±½F‚ªÎ$î!CXhQ[¿®b3k7€6'<.].U{•lèO“Ä´QôO/y·‰ *ßftuiPlÚ<Í‚8'+gÊPrsÞPrA)úP‘¿OÈ5ôq½ùñ^¿‡•ô(L*üJˆ,qZ–wøÇÜL(¿Äz¹È¬Ädž÷öð¼ñD+pîýwc5 “Mý&¼`„±ÆérÓ»ú3MÌÁEú²LÿãR‹Ù¢=©¨j«ºúEJlí:‹øÛOͲYeklª-X &ñ{ï ò:Ý žíƒÁoH€’… í€Gß8'fò;…A1fÏ"Ð:š­éo󉓯†ü>•Hõ»õÌq­¦ÜÌV÷î¡Íë+Xà³J3"eq€£øºvã ò$Òã#Ïë <ïiÍ•¬7žùʬ1¼dÍüME.ÀŽœøu|P®„¸é§ävi3kä±Áò$ªxKa[¶u4‡³80È6›_'ý K!÷ŠwméXïú]Â$Áç/+Ñ‹vŽfÒd:p˜&ñ[’M£ÓZŸŽ“\뎇Ù)ÙŠe° 5¡_æ4žŸŒT4nž†8wX‰-¦w¸ÅÐE¶¨TÁ–Ù¼ à¸Ä•ã±@vñ˜ríZø¼J.+MÀtµhú.No åq¾\™ÇMëü+6øô؈‚íYþ—lmk”·§ *,Rƒ ³¨cÚK¡ÓU°Op›4‹ÒìU>nÛüN‚-cC>¯m×#˜…²äÄó• !¬Gw=ÊpAÃýê» ?‘Ë`>uT}À³âÚÄþKÝÝE¶‰[:|QÔIÕU=ïZ8ð†_IžGÃEâÔ _ê"ÐH×ÁˆêRC}ßíDÍÈÔ^ÅÃ`|]¿I~©–LœæïsÖ"Ù®¿À‡©²ƒ¨š Y*~8¤ÞR´×î=LÂbïáZÄÝ5Ú¿VGȹ›3.ÑÁ1u› t5SÕìz¤ê˜>šö®s¸w”K3-ãc¾Â%Lཟ¼hÀõ\éý+ I°òrÐÄt®…üL½| ŠMŒ(ªóƒáPš2zÝ诫ˆ?B”ÆŒ" ßmG5xŒ† FÍÚ]ÙXEF‘QÁ92Ú–a*A[Ú঑·¡LÀ.vY‡§Fÿ…ÂäÜ–âjLZÀÒçS¼¥$éÞTÿÇ1µ$`«G_7éO”.êg–Aü„­í+¿Q ræÔ‰E¯=ðk»QiZ›ä \~Ni€ï<¹9…+ǧ$ã½àÀõ×È=ÂäÛ”ïäñ¥úŽR`yUmr·}¼=/©i?‚ {r Bœ–ØŽä~þ¸…‘À½¿r-ú-þÂÎ=Ž–Ô7üM»ÆlÙ´ŠZ«Ax=hWêΦá°È…Y¼eL,–Tk-N(†O.¤nÅ<[7pÔ#ÞÔ€Lt­»£IPQIª$¶22þ=ì° äÆ3ÍÜNó?§¸³:™¯ò«¤wýµÇ}äk&eª* !_DŒn%W‹ÛWùÖæ,mAãt!™ìù[~ß³GisÑûÖ,ü¸ªëj·Žµ@)‹\´Ã´X°–N²€rgµì»ß¾Ìlw‹ƒmîøÏ¥ˆ uàÃ@ùw¢µÙ/¾žkG,U“z¤(=¦µ‰kØ*n «›ëK}y%=Ô¬ü!;V3héüI~DíÇyflݱŒ¤àý\íöhÀ„q2€æ§YNó”[œž"_ÈiàhõMðåLc¾$Hc…ÁaèFÙê…À•Ö ³˜ÜãØ”Êh:ÍßÐp\Ð]5ü§C‹ð3¦Û@gÁµbˆwâÜdyBÏñ0%qà^0ñöœ#¢WׂÖ@Ê…öáòåy4° få Ð;À›šØ}'ÃÍWuTÝ+6ìQžÿ~`/" ¥ó›}ëA >5°ÿ™ƒsMU Gù6×ä¡*&5VSäÍÂÜÿ‹á j Ÿ’kìæ,yA»Ê„? pM8—iü5G@O7)ôô†ÕÊ›o©BU²'{*tÄ’)$—©´ÖV 8ÐÍpÙ®CÈ 7‘Ò`Üdý ø€·LÉr›gújh»/eKªÐ•‘]Ý:.ßÎÒÎn)`îG[ú²Kñó>በn û(^¹‰Ç2q¿)Cw "v h1B‘…ë'ðqs)H«r§pÑ1or“})¢u…qŸ/Àƒ1=XÑó<`ÊÖíBˆÙ):Ñ=]Ò¦#%%…AòVEgo•@Ùžù|z2]f†C?"?Ñ{Ó–ZoG_î FüNSkççî‘÷,ªºÒb‰!zx$c޲k¥È§Ð)RÏjé P—#–fI¯;§Î6²cmñÈÕÐ[˜UŒSâp'ðÑðäœæ:yÿ ¹þ«4_ª…ÿÏ0rèÖü ÿûUZ¦¾ã÷ü¦•õØX¬”á"wÁ îñx¶.¾L„NåÂGHÉqÐ Ð;_JyÿªÆ·(Ò=ͦ™‰”ó›…·þ»¯Lf êÞÛ_Ð0PÚ±Ÿìo¢kË£6ͯšË1y 6læU¿Œ¦w yðÓägÑ\ZŒ_Õ߆ìUÿñHÀ{M!ÑŸMĽó‡¯í›`’›’þïƒÓWâÏü5BÝ””œµ#^¸ïÙÃÄß&{´”‹Ö6áÑY‚šÙ:Û†íÆ\KšvwYÏÁˆ™NW¿è"²¡br¢¥`D†Ü~)}”pk~ ãnÆi–n/ñö' qÚõ”׿ÿèvK þü~*ÖÙ˜hÿŒ'âÙÚViâ&ºÎÁ8ªÏ„Ž#Á·IŠ„jõR8?H`2—&‚RÙ½1¸m9²p"ÿ³Í¼vÇó~5R Ê],uMñ‡tc2 Cê E »LÓ`Ê÷hÖ“©}£Ž4þ# ÊР ýYÏĆýñeï£ 9'…4:Ft ÀL/kÅüL¹¬3~BI¤_0aÉ‘â Ø‡¸EN¿&Z½`íAz'NùýBi–ÆŽåö¾°¼Gµ‚‚ß'î²<‰ðÕŸ[Žbv+Ù9êC+3õ}q0#Å “T < 5t ŽÚJ¬ýäö~Th’eÒ,¦OÖ¼°!ðJ†‚oÄw@Z¡’ô„ õƒex®å>ø9³ ’ Ðä7—Úª‘ájÞ¾m‡ô8ÔFWP`·qʈ‹©|\þDˆÎ2>t˜)À£OEºÙÒüís¬fXÔ²bÝ*fUS ¨–î=ØŸ¯‰Ús‹Øeas,,»ÿ_µoÁ2÷wùÉi"È´ü®~¯§|MrÈ·Y°äkp`þ$Óp«VxÎÆlV6+Oq³`Û ]Ü“äõˆF^”j.oŒõJyŠœ+®îÕŽ'•3•L†ñÿqyÉD¿Ì‰º7.åx ¾x¶•PémNΛû&¾‰îpõó‹ã½xèlTb戒yÝÀ~}‚¸ê>Õ„4tL>¯ý0%ž•Ø£Â|9K›U[³ÖÓS[’r× “‰fÝ šB¨e¨¢Š…!ôüP[9ŸföfÖ Ð Ìô¹T.®Yï?¢ Î%¹¢ˆp-‡”rpXÏáÙ7vÉT«‡0§ P%غ«· vŠü¯)LÀ n5‰à0Àó·–M9ø ¶ÏÜ*½c¾”æoH~Ð+¾ Z>ù—[B¤e5€í·­˜‚y®¤÷§vÈz–Cm¸÷3E^ç\Dß-« :ëýøYñõC{çÓ Ò©rľ§ ª=]½ŽÚBáÄœålCÙ&½Sƒ'äÁqÙ:i9ÔÈÖÑ`}Je›…”9kð8üý/ü™ÁÂÇ’ô)EVAèÕ/Îa³ì_ä'©NJú n4©C5Z :-c/=iÒr†ïÈ`Eý”Ú3tsW‘I(Çê$½%ㄳtCB•‘ߢçBØ2ó6ŠüM,Frq¼ƒŒs•ÄJm—ãÄ·«}ÉèS_¨å*]5-:S‡ªŸøq%L•–ô¨ó¦²gÆÃz{«gpWì¶îÁù w¬®ˆ] Ž $õØ }n¿7%fŠÂ£Ž¨ÆÐQ)v<]ºžüûÏ©ñì‘Ï‹†×zJG¨òÒ*A‚™Tã2‘½ÿC4ôq¥µÏ[ ãîþ lƒáÓéÂ@ráÍSøó•Ê“·§|b`“+ü{¶ÓÙÀÈV•»?`ŠÂÓúþ«¬¯#KÀãË;­ 5>º¼¹c×¶‹$ˆ­â8 t›fUy œ„ò!–´%½UÙl¸Ú»®XƒÄ%'lü|©¦‡=õÅE¬x«Ø)ª-¬ŠeÐçv䨦£‰ßa“mzž óä/,Ý4|ÕCǘ–1YÐëþ]Aõ×Fÿm¹¿y)[w¨NÎF.¬8Ä¥ÆÅ5áê1H„¤é52œuoÇ[ö¢)ôÁÀ4Šÿ¯@ÿÿ<—mDìIuZˆC\aÑŒ‘>eȾ« ×½+Ê™¤\#hÇr‰~ðø…g’Ü…ÕÓÀïoÀ‘oÕ>þü6*¹Xí Ég+ì÷—½Ð?ÃÙºår]2í¸uŠ€!˜ÀS;2/r£'FûlÕoF¤ =áÁðÀó•xã)x­äÂaNþy‰¼½/ÏÏöóÜ×}üÕZÔ‚àÀ:èÃǸÌcÝ^½~O®Z^yUè?Ñe.ýFú}ð"Ë£ð‹Xœdá©­„j¼4ò ¬§HªV…¾>` p«TdÊ‹xïînö«Œ>ζ+3ø:q˜*k3„@·<3b3Ôè¤ÑгiÜäÜ_-Ÿç0Q˜‰[ N”ÓÜÛvAõt¸ªLüÙ[ˆI4Ø MO¯2X{©‘Q†N¿Ù ëñiQ'Ñ¿K‚ãO³PZC¼ÿ¥ hŸ©ö;qμe#Þ2Ú±Ä__ôú¸Þ!¿Ÿ&§ÂýÂý¯µYRãøÁQj¸½‡ÏÞ0Wø×~£Ÿ¨Õ ¨Ý4ƕ՟m¤¿}h ‘l âa2±Hqæ?éõõT—6›Ÿ9ï~ We 4 Û=ýUGµfŒ±´€Òo9é*êI[}!¦‹Ñ—æy9øv‘Æ\…Eðñ#—žàè-7ÍDÃÔ.cn˜Ì泫мï#‚n¯/F1(dRb´üÙÞÖœ³¶ðаSî10ÂŒ{^‹,WSØØ¦Ï»l™QWÓÇh¦GRµu"´h]Ò 1†ˆ˜³ß©²9³MhO³&b„€§ÎÎW/‰òŠ>Á i°™©énuí¼¬t??Pm¼Q@ ÝN¥€Ønºv*?=&‡E¨ºe»ì#Ç盬!øGà~¿bôÉ,3@\؇ÜD3å>v ¡2®Ðça{áÔO=4ËM{¼ u ù…½ÑJü (½À:yM:³CÆÉ ÉœUzà£ÈïnF—WçrdàÚЈ¬Üø•ÕÔGµ&pr°ïZi?ÆÄ“µx>»k>:­… ªž%Õ‰Ô@²³üÙiMåš¶¤àW¥$˜}7r U…Œ$ PBùàŠ !Ù*g=$0´CVH¬X7Cxæ£zlnñüÄ ðdŠeeÿiŽ*{C$¢ Ùa‹QG"Òþ]3OµôDÐØèmÓD½E [lô:4&øöS{~¾of¯¹*ìãÎh÷U7+ 1xª`œšº¥¹íBVâˆà¹°´›w<õR 4 W2Ã¥6ðàÝ,‘¸îsõ¥w,¿ÉþG~î·™ë¦aÜÊÄRy|ô–z "øÈÄCá³L”@¤™ÅÐÏ]9G-gmN8^ëªÎtë°cÇ“e©Ûç•Þa­;º…ïÐ*õ>-µDÙºvym§÷éWWu’c'u³À¶ÞP3=l¥Î…z½¡ H6#•>â[ š~\O›…tV¹‘©˜‘‹ûÀ?ºKjL6>Xd]…£|Ú°ëÊ©‰á2¨t­•s015JQpj9YPüßÈÛkX%®¨ú­û{?ÆC´üÙÅüÝœ ÅlcòÁϕȪ^FbÓ}(Ç@' åòêÙIŠÒ(JõþrÀ‘_>S„1÷¼·ü 98’ UÖO©ï@ag?¯YQu—N1EÏ„öB3!“ýŸÔÔî'T|¤šë¥íÎ=a•ÁÆuÔòÁÆã†ÅDø|Y]vBaWø§à’z0ټܒÝAé÷¦™»f8t›:ÇJpÑÄXN&¢"®Aœ ²ñÈàåŽ8ÑJp ›tëÐ|íŠñÙ$6¿ ‡BqÜÛ4ºŒNÄ$zôÍY¨æ i;I ÀÞÙËžbË´O§H¸OSž¿ÜXqØ 930¢¢ôè•Ö ø·/àÏÇ ŸÁÚ¡³]cBD#™•=$¸sDî ]vZéæQ­0éÔO5ºðSJÚnCÛæ½ÂUšØ:0€Ë¼YâÆ±½èPë4ßа.F‡tùˆ)¤mGÝÄÅŽî‰ü5‰ì9QÂ!ŒuYu{’•¾öerHôyž€™zS{˜™‰ã)õE]‹5ÄÄS8møqÇÚAD-òS1_’âÛƒõN,ãªm&‰8AHÍE?î½—ÑA2ú5CëøåÕô¤`™ÜþÔRóë©ki&îÆ}oMz//œzjé >ÔHï<þk š¤¶‹Â®f|yzOr‘™õ«Uëï ºžµJèÐÞGê^xÝ‹]ᆂ/¾§ o.ÔfqPO 0Ñ<ù2íWÛLÉ,'Á¬ÎÍLyü.H-hƒæñK.³—Êï·|Òÿ®¯-ƒz?$` ~ànƒ¥zÍ¥ê5'ªð<¢…:]ÕaGúK°ZL¥!”ñ ÞêZò»Fg¥ÎŽù«A  WÐ-]Èq¾ÛÆÙĆ#e´Å1âfùdœÎ“€ÓˆüJ\tÓŽÁ$y‹Ç,,ÀLJ7ÑEj*RÇþi›à ˆ1.Uœ9æR~,˜±•v‹¢JÜX\Ô “£´|l!œÖÙªŸ¿`䜖€ß9¤A¦{ˆ'þ'À¬m§åŸóLMf° W% „ƒttp¹ÙÙ~üM&ͱ`˪[—û$mŒªâ0°H ’òÐ>°ÞÈ8eîÉ4@ÁÚ!ƒŽ1¥îc4Ë}+8szîóï²äy§1žŽ©^n¨]5òyDlåÁ—½Ò ç9úÓjApV†Ä¥ `û[“?¦®ÿ_/ˆ-ÿ6Ó‘‘£ïVŒ‰ü<o» 8¾ùÅëܲ9~j( ªSLÅ/³Ô£uP’<ÌŒ7“"Ú¢Y&ÄhU‘ˆ›ÄJoN*‡¶¨|â}œÒ³´ êרšíÁxÆ’#$ÊkeZG%5ŸT†„ÜæZüLØÕf.òj?D¹øžuøEÈ.º##1™=@ !¹Â qÔbÍ!äF½6EÚ/jò&Wߨ²<#¶í-ªéˆ]ë\É„êÜA }oç?ôâ’Bôõ™úJ}ål_r¡§®Û/iÖ?0Õf¾ÎK~43 wبzIÝVɦõ8Dµ2 õúÇÔ1Y™ãiþ^ÖLx•{qذԥùíŸð Lq;oô+ÝDaµC·Cl^j—g¡#<”3r¶ˆÚ¶ñÒ=¾LäP¾3Ä/Û?K› ;–Ô•Ü4~ÒüMµ‘Óµ$JwGò[˜D{šrø/èì)³6òÆ6¤›š™ò$Fltù7Zs¨Ð¡Šñ^fÓ%+§´=‰“ÌÜ)˜÷´IûÕE|I\ u-jœZørœÚÁò¯ºòñÆ-Æï  ¯LËÞx¿o¾’¾ö±mp“Ûy qì–ú=àv¢hŽÿÝ.Rà,¤ÎIK3¾ãmÆ›ËxÚ¤Ø]œÂ¥´¿À+GÉ»lf9¸ïá‚\ïôÆÿk0æ ëh¦¦Æ.Æ ®úLO™’Õ´¬ óÑø/c£è“Êï÷•´ÑZüï1ÖjEÒâØÎYKéZý¹¶ge­"W÷~¯F¹:SÈ”j+j6ëBUÎ)ïôHVÜ&xd‹Ý†´õ©½åˆO7JÐ\S¿„£ŒfE¯ àªÆŠC #ó¢ë}ŒmµúHJYdhvª¤!®¨¯®ù³eWÜÅg;qàr–?ŽÑýVÓp°¹T+Â]­<»‡?•Þî÷¹%Ä«b”éš„ˆ`=ª¦Ä»Ö'v‹ýFX÷ÞíàO†&!6¡i°Ðd;Y“BV¡¬á°9Ç,Û¯]ÿB‚°u‚ÑZuü°*  âæ£i›ÅeXª*÷…”Jl÷?þÏO2»šøXØýªo5>UРŒÚ„Ì7Q1?±¯L€=©ùB5ΑŰ0×ܘ.iD”§ ½nÔY…\ªyê±LbÚnø"Ú!oDk·×ҖĘÄù˜¬žÐrËe1²®Øç"ôq„ X ¿ Ð;÷F¼ÆîªÇ¹Q…¥¢°±3¥¢Õ¿tA$Œ¸¸Û¾I[s ͼÂdy¯ÙmW©Hàz¥©iÏ WÊïd=áé—9ô옰ä]E/ô»OvþƒU§ !þfˆu,E7ZýÉu-X‰¤Þ¾Þv/Ãýpó¡‚ÊJ‰¬íÒ{æ‚‹‡\Z½”Þ“Ó8fw–þ‰7!c“=Ó=Ú ‹é x·±[xÄ¥ÿ)Û¢]÷e“Ê8¤Ò—º8×ð³’ª.¶ÊvɉïZ7^,’+‡|nt㎎Oî#ÐÓvs £­ÑkV1†8…b à™5™“P3·}œ½÷öKøÔ)|~üM&„?à³Ê¦²nÞ6% bÀ– H ]<´û‘-z™+Å­Ãe.Ïñ6B$!ƒŸ—à÷Ôg÷;×3ÝÄG?ÆU++Ѳãvš"–í,ò‘~Óª•Ÿ?±L›jÝètÍw¨‡:éA«X„R#ÅdJ-°n8ªu©6iÙ­È`ÒXqw-û ÑL2ÈØ¥ZÍÛ½Ð\HÚ›³y£'a"Ú]-BœØ¤®ª±ê8/ÍügkDŽ_~Ü4€ãpd”ý¹Šr×+=L¡z”ÖìUÕüL¹,xz·ówî¹,¯Â=c]ª÷^¦îÝ2—Ëõ8˜†mt÷Ò«X¼‹4…™òh<ûZ¸ÛÅùÆ$à†»0°8ÀûqÐVrEGù®Psž¸_²÷Q29à­W:õm®½Ê/¦WüZ (UžV‹‘]Á:ë`‚Ë~…׉H®Ç3yš’ëö=ây2,”g€mµÿœmvzöPÀWÝÒ¼ÁùØ[r9Ï1ìêÏH¹NR®Ï«GÓ¦ ÖKuéBÖþŠ7k6a|ɺ뀢à# A*üL¼×P‚õ—í >7õð_彌Ã=Pufh«ÖͼyŠû.T›=y)¶PËRbûboÄÝ­yŒÐ¯V—¨)-–Æn¿ˆ_½*‹ ;¨§šlðeu;1½³í·6¿z­ÄV¾¯¬8ènRž¾)°+¾x­©Wò’ß™)UôE\¯Ø”g ^©Qݺ~$žˆ»(Ç™â9œHãûÂvËí“N­É^oüMbÒN8{vá":ÝfÎægª îGUòôˆLæ°ñeÎVf*5Q€¡/†¯÷=B ü7ŒÙÎßËO½¹kw’š¹ó†Kƒ_b¬F°üÊ@r:yÒÍ)AI“µc;ò»ÛQË¢D¦J¾›Yt|…ÂËí:.P_s1 ‡5ÐÄ©ŸPý€Žm‚þ2Çáºr ÷ÑmYç´äçÈ2F\؜Ʋòò¹¢³Œq`] t 0˜‚‹m“vÞóב!eêØF=^wJ«p¸7Yy?eåÎË\k9N\MQ]üL¼²9·Ëæú,Œ3µ›à/ÑlkçQ'¼Ù1е‘k4i†¸å?k³¨ü;Î áA`þï“)[׌õ·×IušÄøÿ­OggSbCýÄ n]Õ­×:ÖÑÒÜâÝâêÿ¡ÞÝÚÙÝÞÿH×õçééçÿ¢âòòçêðÿMÛãôÿÿ ýÿ èïéèãëÿ¸áßë÷ööüMD Î*6·æ·T%U%{"ˆ–—˜¾—ÚýüÜ DXì™ «©­Åÿæ<­ý¨Çb)]Î#ˆÂ„“Ö¾tÏŒ;[^’él >_+Fm&§>÷ ‰ ßUº*±ƒÓ±·`°kß§Œ£)$?ϸ¿8ñÓŠzÅØÃ(ÉçèÍ6Dšš]žpOWľ *DÝ|%؈*d„IøaÁ äUPð¬´ÝzŸ<ì™Á¥ÆÆ•{•m§4k\ƒÅ“%çfôØj´ãlÇx†ˆZÁšƒ™éüMïB#g¥=ÒÞan”¬{q |VN&ΠŠ-s×”èf¦×ûÀö y„æÚb|…v%SŠ[ÿ÷öùçÜæÞŸ©¥zŸŽºˆËîÚZSRÊö|+¢CjÓÍÄZÏí _mð­Î>'-¯qÿ—ûqm ˜Œbu‚ÇÞG_é1–K9€Ÿ@\î?äøžÚå!AñÇÒ’4E5‡$ð:q vZŸŽB-2ŶÒívõ¥94²9ªàÀhÖA¡¢=0`‘z蟋!¶þ¸ö×…ß Î•¥ñüN85cï‡t(K†.Àò‡ëN@KŽe­šÎºêŒv)—­pçb ÔØà¬ ggÑòױɬÉr¼”K¢*£~ã—' ÿoÃuƒò`@s…îóQŽQ/?¥Õ›‘eÇõÐ›Š¾C-&qï[¼©Û-"g¥*ÐcámÑ ß©·Ó0ŒÉë5ãλ€$ŽR‘Ñ;…Ó±„¿*†|b4³ùQßh@òCÝžËïÿ¯^:ÒR»_²’,KÞ^I vÊW³kvZ¹1ðâ}qÛìÅü5d?þƒNFßa‚ý<~7eÜí83üS𡆑™Ý[«¾qúÚ·»”9f eNËê K¥Ä4»“€4Ùæ(+Q¥ÇÐgq еFÃ21Þ¤‹«ÅÊ®¬ìé‡ßÜ–ŸpN)ÇçÚ¡4jÉO}VåP„ë~ÍÑM¥¨%u’ Ê qrÒgYîeôUa§hØñàIîK à0 ŒÓVxXÒpZo0ì|~‹^¡6Œ58.²F‚&Ùb˜1œ8¾Ù ¾ü4JjáúœŸ›-Ÿ§/o™üžìi§ªO ÷ÅüL°¬}]b~½ðÕHA3ÝÛ{mŽ®+$F¸¥^¦Ïw«Ûæô+%i9izîÞ/ûºÝS»Ìü€¥OÕŠ ¹ÍùýIòÓ0¸´r?nŒ˜ØÂQå³Nñ&†±‡I äœÀ€‰ß¼JI†4ÁJõ§XÿâÑX„˜€ Ó$É£-Âä@!Ì’QŠ• Ãf[\‘E®~ƒ@³(|ì €+*<~`ž…Ú܈À¦šÇŠ¥zHÂYrx—÷¸³Æ‰Ó÷÷tz**Á»ÊÍ4èŒS’÷Ú²\)S˜¨ãÃÛ ‘Gc+&ÉŽ>C¿à‚üL½¿/$fZ†©÷½_Ó²nñù%›Ê>³ÇWZ£,¼™È4Æ×=7h&}ýyÐGá+9§Û‰}#Š.^Î%õðjã`àÞËmÀ" bÙ¦’à îzŽé-Vóþ[Ã"0—‘ý[˜ÄŠNå$ä•k6uPʺWþxö·o’o¼õšeÎ~H™ÌDj®æL‰¹,ói:ÚÌinÂr’Ùè;ùkdaĪáq[L·N‚ž¦·(?‘¿¯íáZ¶š×‚>‘R¤üÜ`÷üLØ¡‡yZU¹K¶Àƒß°›àñ õ ? ¬9êæ;É5HE¼"ÿë»è()ét¨gCÛ‘“ÃÉt_{[[ež-dG•í§?…±ÁÂÌ(³xL;zv‘]uô/µ~T{æ°û/QÒocž²Ó·º‰'„˜}¥‡X Š®Ya fÔÞ˜E'D÷Eîó_k*¸¦oÏðÕÃQ׎§\‘á]5×gI¦AeØïì,Á3ãdÒ%$IûLÖÕ)—s¹;CºœÇ²Õ»-a®YR)v‘+ìû6“ìÆªáêJüÙvò¨ÙT…5’BbOÜY–=Œª-}²;‹EK&‘¹ }D!­ ìV$ZÄ´-õ3>\PX‡©òäŠçTì4‡=3QUº¡:¶ÍÂf,;…CÃu„?UEõÄhZBäf€ó‰Ÿ oЏX ô‹Egi{¯b‚Ñq”šŸžt¤ÜáÏ’q’­²´JªÁ*(’5¼Js+žõ_© €A‚gѱhT­?Ýa Ž]w6,û§ÌŸQJ;âžñÍ5Ã0†öW%4ä§·N«-5uíX™›ý¯ØcïYÝ”õZJø êâA>ÝÈì{änf¼#)·ü}^ lZ)J71bkÞ±!ÌÖè{wÊø`a,ÌÝè AqÌ)O½6Ví%“¯ q%ó@6Ȩ%>¢©UîŸ8è°†5•Y~Ë¡=qs=.—Ì,¿ÞiVÂE)†³Øš©¿Úð#h…m4?AG³8 åšÓŸÉ-¯¨zβŽ*ÿ½?ë+¨ ¹«_&õ×¥-ÚM+Ý=s.<†X‰™9ƒŒ¡/ƒçõ̾øÉíý¤ùšý°•X:P§ Ö¡6C²J–BlJ:d8³;}kÕ?VUhqÉ̆s5-~9»m[YÈŸÝ{7mbbªLQ ¢–ÎÈøu0$Ñ€ì}?@TA$Üp"e†°Aë;£ÿ¶ò1Ä2¡‚Q<èFŠîèýU7/\ƽ;À¦O{MÅFoźòžqyø!™G¤BVùX…‘uà7^ ÆðÊ éúŽrÃ$~ªúSPf#`šýFó[KÞK8JÁëßiÏpFâVã§Š§ç‚JŸk&E€1 çÞX ‹`'àY×Î1ü†k]*:#Nˆ> µöMÁÝÏ%س¶í‹§„‘[ø Þ£“”G°Ëz¿c.0ƲÙp}yKËd®(Û²Ý~eÌì nñŠ*yÅÍKx)Øñáâ)PdSqæ‚5<çí•—åàÒˆíë—%Un0×òïÿŠž -'7Hl ‘|0±36q“T ×dz‰þkÄ ]H§_Êzf¤'°äUoMBË›TÀª¶Ÿeðø¯ÒÉ3¥ÿsH¬©2¯Š}+ƒ§?•¶‘š÷¾Ë1dóK¸ÄÊΧàQü†f’.F°ññ»Ìkœ ­Æ“Ðbå–¼ÏÒ£pOä¸+AËÌRº®>i ‘Ò^©ŠÏ­»#Ñ…k£H2ëdVSÆ..UXž:¸™ûæütšÕÜoª›¡(•na€~ 5_ Eúäk Z!‚»4éÞ=Nk@ÉB)Øê£ËQÿ/ÁûP°'cõ`g1ŸªSÊà%»]¹yœñÈs,ØìÔ$Xà‡~øe¨ìßʹà.>#:L-çµ§\° ³ µñ1ç!€`u¹»O½æ¢b”ž¿ôÇNЩÆÂ¢f­; üNTt´ e—*ë/0Ç?15œÒf»·fLúûYóã÷s×Âô¿à*û‘ ÄñK·).jðŠ/…/ª&þ2~ˆ!©IG BÜ+þTjMç̽Ér´­¤³bÛìë>/evc‹k±¤_õ›ªJ GnKšÀ‹hQVøl˜§¡±â°^«ÿ:•\¸1ôN¦_Ïöƒkƒ-(kþv¨úm šŒUo º“3^’3Jèp~¬®sewH;_v%ÓÆ¸úr訛!Ç~›¹hë ÿÛ(ÄÃeÀÏå-2CbSü/$,x¿«ehÔMSl‘R·!¸ Õc@¡Å50ËO)FMÚ'ì Êä¿­o¯òé†| SÖ¶°ËO×Å|}]‘Ÿçºò"çΉ`x7†Õ™ßèéÕš‘Ó„J4Ï‘0`­Ô´–`ýM ÁðÆ‚jlV½t#Ȳ;Ì•êË÷ïÐÝèðÖ‰¾$RWEè0Sòü°˜1ÕÂþhä誚NÈÕò¸#ÍÓRy SgBÙ˜ux´ˆÅðúúb Þ娌Eh¤?ãyæÑ±„cò÷ÍÆØ´Sxö× /^;ýüL½[L‡%püî™yÝ3;;&ÄëWÖ•S/¿#¢OöJt½´²âTÂG—®A,¨ÑçÑkÊB‰18^Ï9ý8 –yY„P°×ØÖÖ¾å/²ufgâÝ gÏ‘Ÿ¬Šª4zÄ’Ÿ4®Ì /^—8#.µ¥É«ÂPµ·ÒþN3wïS[0‰Ãý$ƒý[ÒÕx“-†0ýPcXÀ¬ÕÙäk'LbÎÜ6ŠØaÐÊ‘:€ŒI™úµ«ºÄ,OUwé<ÝܬÙÏcýãGÒ_ Öå§Q6ªjlp³§…¬™…“pü}^?4`û*c‘eÊMPýªï ‚êÒ? #0P>þŶmó]á[yÔP“zzñ‡þ—£œb% ¼¸N8NsóH%ÑÅšúàg!øŠˆ¥Œ`i°3WþÔÈ/º"Z† néÞs+ÞdÐ@d¡:=úM HùňE-è`önvãQ?К‹+i-Áæ1|ƒíø·¿MšÆßezOK_úð±ŠÕDú=‰|ñ8¥ŸP±¤öxi”µ¬¥™!R,Y‰úÅpÖÔ6½ë†ÛÀHØ‹x¹ ?aªPÝ-Ò3-Ò\J‡œð;ül‰ÀWà›dàSµþ S÷Ì*N.@rX¢Ô>ñÁqÓmÜ&B)yZr ¢Û#áÙFe¹•éêbð!Ely‚ÓŸ èº@M¼3kCÇ '"ŠX!{Ë}^ü†m¹Ý@…þM&Sà|kºÐnò&`ÏùéÕénò õtØêQ:ªVï[f‡¶%ñŒ‹RBõRò-SíLýPÞó‡çtÍkÂ0&GJEkòIG£)‚12(æµ_c¹áå<¨fQæ?"Ÿé¸ãRÙh@¼Û¸´Ðü+XÞM6B*¾e†…ËB–üIø¬Ã"ßæ¦[‹ì7÷îûÃÁÿVÉ?²ƒ9ܯۮqþŸy"8@€W½{ÕuC7HHEú®¶nïÈŽ0!ÁÃol?j¸–(ÕßmT²$[ØÅLLÇm?!:»Ú¬¨"5ç}$=AÛB¸…ÄéØg[E `ßå¬L¬ ꪆº}‘çØ°*éï—ÒC7p˜oûðÍf¾vÝ-cë]Vº+Eýí™ÞÔôP:Âßm¯Ø<ܯVf}æNÙABš8 þe½J^ ŘýÝÞqô±€VJ6¤(ÿ©À^œËôºº÷fQ̪CÖ2"ÑJÄ |™ `ìXåòW<üLÅ(^’ gúc/K<®TÃÔGoü¾ ý/‡ôê Ÿ.Õr°•hUÛQ£ÕV²—amg:שö6Ø=Tâä¾·uº…P ñ”{µZz^ÓéjŠ'ˆD ¿…6!ŸÀ•»|yiˆT4`ï8Õ]¬iuÜPÙô¨Íyí;ÒØ Í$|b³—²Ù*ßý<DÆ,ïQG‡+xETúcÇ&.Á™å=Ìz÷Úýa©¦ǻȭނ˜Q[ír$ R²â CUZªù“Çý}ìXU"^‡Ê±4 7ò@w‰¾ü{9ëßã¤rÔUk.þÑê¿(¸Êͼ¹m«‰h^.-Ì0:@åP,Û&NE+•/á•Ç¿ÌÛ.óâí9iÁ Iú"!Þ”“—ý}BûwÄF¢ 86i¤½“ÌÀj<·´–ÌWmj=˜ÑÛKÉt²†4uØF£¯Å³ç@:ûñg¼@w±¿)‡‘}ËÏ3C´°VŸ”¡DW¢yߥõKë«I´DøÝ  îÝêø¿>Ok’yŒ6Ã- ¶)õ¢Ô½íU†dX–,Êj‚ÀÛÑ”—ñ3ÜÇ&<ÜF³/< ¹/ü1ŸÊ#ñ_z2_ªûSÂ]QáA¼3AÓ8 ¬„1G \ kñziF ¼”ü6Z‚hþK ‹0y°@vâø…^S(希s£¨ü’uDJ3l¢°èAx¶ÔÆB¦î‘ýÇÖî¢"J ÔyŠ<œÔÂF€b·ù ¹k©ûÛRa‘8(àj£: ø µ; àãÊZìSâ4F®û‰,À¿ß9&·i}Åsÿ=#¶ŸI³•¥é)(BMð™ 9·?”!dG±¾zÈ ,Ë.”0ÀÎQ×^ 6ïo¡ñüÙh7gñ™ËÏŸäsñE‚ö…¯ØávŒ&^G¯d=K”dý†T Ë‹!,¸mŠ=âÀä'=¨’-…™û-ƒ¸ü·×;?ûÚhÁÞ¦9 ôüÛ}~éB(°<ºæ8/™­}¥öG·¿áâ¿´¥Ó:Ë-î·jâØ#( é2îñ\Ø9`ÜÇùÞ¼½÷¿D´j#`®èƒÄ+K3¨mesêÉðƒ<I™ÅŲ£á…l¶ æäÞˆÍòjJø!1ÔÂÑ‹ï)Oî#+Çš3Ú[Ùì·¤v7;DÀ‡1“Å1 f¬ÂKÊ]£à.‘¬ö¤êe¾”¬Ñ|G—o YÛ_Iš+éïc«\2‹÷Ê%­^Éoh-lx­Ñ£ÐúULTÕÂCCÛ»žTRÖ3Ýl ÞãD eK¶°•A¸üM{–šk|V‚¾ùJ¾…\•°7è DTÓ[±84nì›ÌÐ(÷@Š3 -`¯vz`‰ˆ`€w[æ)@þ`£Ø.Ýìw?Úä}'ôeib ë¨43¸)L F9«Óã"O1b=ݪìlìèDHy j§•œ ß{œP`÷ç£`iݲôm°J“ûº¿Õr<ÔÔþ`—Z$‘Âe>ÿ…E:1qÿž™ö/Xsˆ:ùG ›4M¼<5Às.€•!Q¨Â!sXm#-Z12ƒ0 !¢n¥®V†Œ ™²w÷‰Âü}aw§#û™+Y`›Ž• wíyzà4ݵ·#ºãʦªPï$"XÄÚÀTuÜLÓ#ëŠÅ}Ò&Ūœ@ääîµÇß`¼<ÜÔãöƒvcóãìþw&[˜"†Ša÷A††þûö.óWÈGÛmîD]ù)]7½·èQ7„XVì^˜¹nÞÃGk¢3|)ZfÓ O¤½(H/MérnαVÏ"Py=å^Å‹s‚¦¯ÄnàWçb'Q,nÑË朗,3ü±Ñ<‹t4OÚ)ÄÍ>/˜wfœeè+ÆuÌâU­.I¡ý„Qèõ ›K01ú 9Uy¶{Ø Z;…å…=PEȬ¨ÇÛ±“Sî¤úŸ·Å}}/ü’Íg6û@ 5]˜ æñÍ{˜t¥ìzE¬ˆkK4Šo´½I´yÍ|þÅ`Ñ<‚JØüX¦!%®m–o¾1â`Û¦‹Sù˜EıûrB¿YpŸQʘ#.œâ»ñùR% r®²Ëª"Ê]9½ÎVBCDö¢†PÝgýø}1V!´KâÒÚ±àøy0© Úvˆ –ٟ†“-aB¶üñ:3Áý¶˜?†Ž'[ƈ‡e’ãÀnù³Ç4DP^ÙÇ<üMpÓ¯d*Êob¤ð•CeCêу!Ñ4Sè‹uݯùòÈ1Û<4È‚ü™ð„·EíYÁzžkŸ†Ë­\ôÿnK6Ä5ή#n|Rîì[¾?.ŠSS" YªŒ  K©Hg {¾ä€µÒDqT!0Ã_fV9 ~&ÄÚÏ:\,Žåã"eÍ ºÐùüËK€<—ÀÌþ—‰Û%ÎÑ õ>–àÊ1óq >Mè•<}Ó^Š¥¸mu(к Ë Å Ùj­ç4$²û¨0’_ïÙµÞ¯÷s$(µÇ¬ùüNP]a°À&¥¿iƒ3¢NÐ¤ç½æ_àñM±Hòxz²R¯ß|-æ3Îý¡!Û!¥ye‡&ïÆLö… C»‹}I]ž—ð$7‹"Î)Ç¥£¼oXÙ§~ÞÓ¦,™Ô0m+VØŸô\@U„3%ûß"Ú]'uùЇïOeJ[³2¢Îë͸›xeJߘÈFK{ 3§Ý0 îò·Ì+ÿ¶ã~e²Ž Õ[Ì×°õgB¾|q…;îUDlgº*üY/ÚGÏ‹ÇáÂKfÚ~ÍŒžžn¿H–âJ:º‹ˆ•NkgëO `„”ÕuÛ¡]×$eIZn¢ÌõÉMî§¿¢k®ÑÇÙáýrÚ/º˜º";'+ÆÇzŠ·@YvªtõGW„6†Å‘RÂcå`5ßðbak´:OnVØìS“·yöÈš™¼Ù"Òý—ö 胴â:òj«=þz#&^ÐÎ'{–,æ?º_³9Îá ±‰Šÿï/†Vó%»Ûv®ÿÀövƒòWÂ`¡ Ë8ü6jUÁÎU¶AE Ôu°›¶Õÿ-ãsõËqkµFùDæ™^ ú^Gœ®2‹À½S©d)¦ùJL¸TÍ|Þ›…¦®Mœ˜žTÎÖn°bÿ¯%s TTD3s…ö»ÍιOs9ÝVQ}Oc@ée0 Û«*iìèØ7’6 µñ÷hG• O¤]U  5ñ棈â"H"³Ì8hÈø –­åìàs©`R¸²`smµçLòòN ?/ÓÎêý ÛÍÞ7à˜°ê±3@”PUåséôõg$³yç‰5ŽÌ½ÐyåïeNrçs,… ?z‚XãÏÛ¿¹Ý¨Á9ºçÇÛUü}aÛ†€Ì}“Uƒ`vg,æ¼09¶¯æªBƇ/Œ×„ò&ø…WþŽ{ w»°³£\\È‹#µ;Tg)xÔGþ‹rO šr8DùžK›™ 3k€›qÏJã_ËLåþ›;OÛ)ÀÖ™#½ÿEm.:BR*ïTRãÑ3|–Þô,hâY\¼c»|³+Ë•8²üRaèì{ðÓ•dgçʾËÈÃxÉë4‹Ë‹BŸ†‚„ØÌþöÛON,«Rlﻵ%Zjtˆ|ŒÈ¨ufîÇÏ =“K¾Ý×L¶´âàëúî¡Hì½[Â^üÌ{[êc‘3Žý6Àuÿ œJ‰~šÇxŽ9 ˜åB`÷XĹ íÇÅÏi"Ow¢aÕI¿æ©Ø~¿³ï'£œWÙL§¦I.$ÅcÚlàgSÊ–·Ÿl¾‰ëåÀW÷ œ1&p-H¶–TwÚ­<2ˆùö8 ¢æy¥É-Y'”<6áy"µ¸µãȶ¼ T·$L 2‡¥‡¥™?Á?ÚLú€÷QÑ™¼ƒá#¨þ¨{Ú•ó¦!x¶rÊì½d‘¾î½qÀZà»QBÙ'"ŸZjKòæÛ¤»Ž÷R/Ÿôð—/hékN?ÛN –ÄCš—b.tÙbbý1(G†±SøüAü†mR‡•²“9Ô$ä.¦üß8»ˆŽžØLtáÅq$n)úö4·”æÇKµÔÔ^É·Ea±¤ØWàV çÝ/…r C55ñÏge+³œ@Ó =HÌjHÅTœQ˜" ˆî´±~·_èÎ.æ%»á42ÐqÖµ”Ö;ü¾'vžÏ¸L›µ*ã˜ORzéÝeÿfhœ‚½Û¼ ÄÛÙu)Ôi\7ñ.ÜæƒIÀ ÍŸÒÓ ;;4?¢Ë.“›.¥.Î#Õk§ÚH³®úý ±<Ÿ.±ÈFú$±£~*ŽÎhŒ^õ™º—/ž©üNŒ76ÿ PŒoÑ„¼Ë²çØÁËpâ%}î£ÞH»ØÅžHTvÞ6H IC÷š<Ád¨Ú3Chq|xÅ„c§lf'³ ï†ø oõöÕåÉEq„ÛÁ^Yÿæ•J ÈÙ&áòÉãxô¡íw[@¬­úOó¢/²pµ\zu¯Í"ä-œ>ö  Ø.+—âE:‰b.[å¿¡ ºdQß²£ŠÝŸzÈŽ•sÿ¥ŽZa.$ô4µ¨®_ S|²ß&­ “Æ?{Ÿ¹ôˆöN±ÿ¿a¤œ½ ¯UòTAå{‘öÊhÌÒK}î‰\ÎØü13šúI<[!ÿ Ìç)M^(œ©5Ý*÷îgvÀ-\JÒ¯0!Ò7ÇΨ¶Ê+tkÂü©&+7ßçgÇÞ‰¥¢ñÏå²uà}ûÙÕ†<•Ñíd»ù } ‘ ã¬äo<|«‘Ýçc*³Î1y5c½²ÞßU‘€C¡ar1/0k® “§åG¼òàZZÇÚ³ÃtÑ×Úð-ÏÛßë¶Ð¤¼x´¹•Ìn±'å·rû\F'>‡ðQJú°ÌØe§õôˆYyè• ›NvIÓêAÝÉè{‘°‰…«€2‘…H}” ü/njìm“ÌÁÇRa2}@6½âþÏÝj÷xhnWè`‘5ÜúV‹±oÑUÔÖŸúï5I ªg,2‘zˆh߬ª·Ü¿‘¥pÉÁ —r]O%GTò䯈‡ÂwŒk4„¸Í{%…È“gÇ‹C褙–K‹áiAy¢_x ùÜùˆÉÆûøg5Ìî:¤Eõ¢ênOK‚,wŸaí)ÿL½®:pËÔ Ë]üÒ¨ÒÙYXfß5ØËi†ZìvfjØÊ¬“Ü=´i{ߘòvûd¹¥—^î º ‘eü5sŽwJ÷ÕeÌô†²7Yà$¹?ÿ~4]£´žš¼Ò£ %åNãmèñç O^TBckz@H'|ë÷_ƒà©&¥ ¼­éž¨m¯z|MÐL+/MC²€Eo¤dÌï¾ ¸­nC­Ìsí¼Iö=Í~(7GnuBh®nÅ{ö ãAQºs|‘ö<¦Ù…¸T} “$ÿë0„Gp<àÙÓ¿ÚlXûD–žEEÙg§ñ˜ë.çö„<;¨Åqx=k.£Œ6À°žsI÷ ÂØ\¥Uæ‰DÁ$Oëv~±hÞoÌ PÈ ‡ü|­^ÉëÙhy|-»?ÓZðuÕ·àW¿ëµŒÁùÒ$$JáÝßm•¡F½½EèS…Z°ý’Cк=Õ GœH ºå¯_#_^ô¸^®¡iUƒà?1c±n¨¿<3’º–ûå,×iÞó{+at'‰¿4 š6€(ß°{³·<š˜[Ez*NI‚²±ò|¿²óÏÐÁ›™­oFð„œ·-¡7¹b›©b-½ížÀI¯rõÙsì^B…­„ê›°ê rxS—×>ΈH°ý‡×_!,È$ø=¼(ô«1fÝóŸÌCO™È[òÊm``nÛ„uyœ¤S!úÉx}¯ac’kô– —‘_–œ¹³Šg¦[?ŒÒG2ÇI’´èØa¾`sN†š¦(ì/ÜÝ­æÁl¾ñÞB|È«Òï‹Ò=äªZs¤¿4«_g{¨F''Y(îÑ­mãÑg2*Dµó2—$w@I–ŠUê£Ò“ç¡Q5M“Îèø O„õþ“y­ò Ž)ñ^I8Z*@Š«K]c&K-kѧ–¤T½|ŒTÀo ÜN[ü/Oö¾ûÜ ¹`ÛÁ2ˈÂ~À6#!>ª¿bA÷2y%Ù-”I!=ò]И¢ôó‹;Úœ&É$û¾¢ò[­ŽÅg*@FhX}éÛÔ‹4ñùŸ_úÞœ¡­<Ϩ:q`¡—R³ãàŠ&a‰øàÓújÖÉ(IL5*ô©z(ü8D¹.ÚødÕ«»)¬cÉ`ÛªÂúÞé¦Õ8e¨õÎ×›½KÁ\ÎVz…h·Éìz±„!žP`¿Ó^zÈN3º¡÷Ë?qÜVšùñ7§E5¹âlŸµÇ5°/þV|ëì,€þüL¾ìTPUÃ6y]Sü ·5eåѵ|›+î?!M¶åãW«^>[¼-+}}ª Ð¥¨Íߢˆ‘º ˆºÚÒ† ¸£ ±ft.[eó–<Êñ¹\5 Ó°P4 CýÚô–n¡·É\6 âí0&eÂb!q¨cBé êÑr ^ß‚8=¤naðËjçucîy²¥Â˜ç†û'”9IÎxj7^d£½Žu—€ 8*EÛ9îòÝ1š…9Ï™16 ÀÛ½Wœe_3ŠMMoØÌêÔËí|òðI 2TüL«U†Xy÷jªAÉ‹ÿú¤òêêÏ¨]Ï´¿§Š¯ìöÓŸ{xÝf›Œiø§¯‰©è¢»ƒ°oýQÀJDÞn.#Vr2¢ç@›l"…à¾òµ<‹ -À‘PìtOy÷Øò^Ú9£.÷jÂÞ;~dÏ ò™·D¿­9°“ü­N[ká @×Zz°³Åã I­;ÅÒÈ“ä×#0VÞ¬±Ò.+ªÎî Â„Áuhüðмñøí®M IÏn'&ö¤¾'w»±hp …ú¾Ý3L© lÆíC°¶xIúBÓ ùŽb])¹M~52*¾£¨í¨ötJÌqà 87š°|°@”±ð,)(€<û¢TŠ&· "çØ ‡Sh–áÅ¡Ã,:ü‰&ÌÐ|ÝÌQƒAéyùнÑúpêI6üÓþhÿ‹ÉõÀ´‘¼P…B*Žö¬Zm‰åIdKEÁ°ö]†µïòïs1I©7®`1‰¸Ä’25gÌqÚÝŒ"-` DQÑU7ÇÓq¨*©é/]Ì:€*b;Q²Í,RK*{üLÅ/YcœWČ煌oÛþ fÊ@E{ÿºHü–"îô«Z ìZò»yTœ®|Ä[j¼Ú=(ÈIQ Dϫ̮¤cT®xlþ0àyú”ŠÄAĶW 3•çË(®òÅ?é—Šî×#Büi$FdzN“ ï!ÓpÊ©¦2lr`]ÏŒaŒ&Ñ’`X6œ à9*–í.Zg+mzx×½XqK踳5Ä™%cß1”³†ãSº»Af±ö31®‰§(Ѿ‰¶¸y6@¶TotÚí6ÔtO擱~åPÎiâÓeÞ¶-õàDtMjM>|»xÒí^'ú95'k°Eõúcæ;îž{mî„èbîOÂ’öFhˆ½>h³k08b÷+~B»¹1¸÷ “Ì7¸G2$úàüLë©×ZÍðóu ×uȹn·™£™8Ç/y÷ÎØ’€XòBiÀTHéù¡á»8ÙÛZ‡D4£ºåJeº¨WÐàD¬Ø‹è¸ËÑÒ¾“€‰r–j/ØêT&Û´eH¹úéܘ•Žç‹JÂÖèT‹˜åë¶'sÃóŽŒ%E`BÅŸS.”Š¥»qQßÒHþC•M‹‡ž!'´zÙH©ƒ×ƒù:`A5*`ÊM•¤—y˜iè —¶óŸ/UÂ+§†Sv+Ó ²ùÌ2 dv3¥RîÆg+µ^ñª¬Pk€gŒZïqwüJ™±T V©D ç¨ÙFôÈf m®w¾gTsHÆwX{¨¡*RÔªûë@ÜØÇZ²g·Tÿ‰*¤&já­×©MYÈdt~[fß1ð¹(áko/FGæ Z¥®×\1Š“zÉÛ ~a&¯nݳÌ&gBcÌP{¡-¨S;œŠgóT§°µ¿þëj‰ªT>SLNÅHÿRGøœé7»dÎ̺íðZ(Šâ)ð€ÍÍüûº3[ØJÝz°“zºœÇ*dQù»¡9Üèf ¯±p€À‰*¶¸Zz¹3™¡üN”wɬ–ÈQÖKf0©Ä3ýÈg™aKâ4ÆÞ“—ŒXµ,­ÿ!63Œ­S”A9Ëç牀<´L]ó·Êñû¡ö³~¤åõ3:(ì"ñƒ%/ÈK·¨nžnºÃ0¯žÑŠQßYB`f4Á‘÷X9æ—ó=Eª½ðBÉÛ‡‡¨üÉ«‡\>“ã *ÆñŒBbŠE¶ŠêoÑ[{ëj-;Éž¡H÷ý}Nzн9ÁùßÛ× § Ú^vLÒÆ (–•XG“d4”j<ßÈsñ ¥Þ¸ÿOÞ¶(‰\ÉNT—süLÅ z˜Gƒ«³ÐÍc f7ä—oЮøiShßQQó eüÒLË´ŸÿBo“¥å2þ.çu™ï;ÕaGß!;\Ž G×5Ý"¾¿r~i/SÞžwö¾Ó2ª¦w HY)SU[¬Uœ¯q\RÏSƒÀúap”™c¶ŠZéƒÿøÜÙãæØU£WPyPÁ"…ª#Z‘îóêwù¨½6*¾úÿÒ‰ltë›Ñ9sÈ÷Ƭº­¬¦üÐYáåšU&W§_f¤8gÝ®×kd² ŠÔ¾˜#üIìב“B$;}ÜBŒ~ú¡mœÖŽ6‘HÒ…§ )D2z(£:åP30’%Ü[›cKÚ‡’Üûï°RýÉ2ÊrõÈ©¹dÓÄ#]4ô|J͵ãn¹J«„ysIHĵ{ü»~ñ]°¸ècÌø›+†0ÀÄ&†&™ ãV94 ä¬3Oh`ȲuØ8g Àd´½ÿ…RÓ® “æVÔhœ$u ÊÛx戲#ËXχ×ûsä7œ5—fã’ *ôôa müM« R˘… 劥øÂ^8LÅ·¦ÄSH uå±CöúòJw5¸ÙXÿ½'öC©Ã-«öéÌaÐq¥ó.=Ãr,Œ†å¥“?°F'‡Ü×.E“"˜Ÿ ÌÇA}Lá_†‰4®4²ÓsŒ% ëHà‡½üIÝÔ¬ì%™ìm³a_Þ”í¤År¨Ç¤HØ”Ò`¤±ž_™ªÂÙ]o|ѽóý e¾˜.Æ{´þα?es‘±”d›Ôú@ûŽOw-í}ní"U$Àıö”C6¾vxÞKÇ.[W™®¡P¥­B‚°e4Ë$!^]M̧­êו`æ¨äœ%Ú›åAõ•!;oÕRM(&Þoí<|êm >ËC3< Mt“I”³YÎÐ3`Ÿ~ÑjÂa=ÆI[,ÿRnJsú)¶kÈ”]Ötçc"9ce^­ š«‹|zjQ0qmýù¨–|ÕÑ•¶…è¨Ànâó_q7¸5N‚÷nW$×u;øÁÔn¨ƒUüñÜêhÏÁ<†—y–©—Ó/µœƒ§•aÕl"œk°Æp¼+úús1ù\×ÛÞ¸3œ!¼®,8ˆÔ ]#y3±CÇZ`þHÓËX7Ć¢¾YW´0R¦~8È=c<áö. >+ÙØ£á…~tκ‹ dÍž[Ñs]Í|ýâÞÌç‹Ê?[i²ŸÛý)·ú)ó¾þ‰Dµùê®|à¡Ëß*©²çä­‡¶?|$%[m¸5{uø¨nì÷uä0—ÿœÝñ-ZSƒD>=²ÝÒ<úɉ޼%b­LõéþOWÔ´­l€Xïñƒqü}]:!5EÁ q:›Ù•ô «™ñ9ÇS½­ƒi­ŽÀIù„Éfý `}]uÃê*"”áoPÛ¯)†EóÃÛRº°<ÔKF@„]J¥~T–„¡Š¬½Œ´H¾ß…ú©2¯=á„k;ÆäK4KÆC±Œzµ+Ø*Á1´â}‘ÿwèÊÿç"ñúûØÔNÑS ”:¥:lÌä Ön ›x—;¢*µÄO¶Tb«Ê—áÆóÏ>[¦¬K»ì·l?fÄ‘O%Ø ñ“4‰3qªÏp©ÄÏÐÞkˆ”ùRã¾§\nÅ…¶©•êS⨣¼V¨’#¥G¡Í†@m-²¹9ˆõÒ±û†àÀ è1l¶WGðà1YAšRéÓRÏ3g»Ëà »ãNÈs3Z—¸üL®d>©‹µéòrµ1ÅP´Á…I“-N\èý/r|™Ö%«]຤õ/ú©ª®‡º‰‰Ód¥õ™ ^Šc8ƺLjؽÃQÚïŽb5Ñ}‡yJ¶¸ô‰ _É/ÐKc?/ºöï¡æuÇè÷–ʧ”ˆ®½ˆO®a{ÑÓ·ëü\Ý4°FýÒjÙo8ÔÞ#õ n»’ûûl{=ˆ&þÁý\˜°ÐŒ‡¡Y’‘Hs¨¨Þ¤ŠU#ÎãÜÆò­íƒ«´ !Õ%?–¹3¶=ˆ– ê®û?\pŸ·}ZÉs¹äËøn÷îÍY[׺©Eǣ̓=ðtŽû"ûTfõ™Hñ–„hPÍkÛ˜ôΉÈKÚa]mÞ…ŸQ#5‘–}ÅÎѼ¿FÂç¾…X· WÐQö‰ø?.nŽRÊísU:*ý¼9Ý€c½òp€ÔpÐ||9Ÿø~iàЦ–Ë¥±9­'uäÒd‡üî½Ý)X`ø*-ŽÞœ!îT–rA>’Æ1 7bºÍäeÃUÚmc6ák9WPÆ}>'Éôîàô4ä5‰Mfµà·z»aû†ǽQ·#ßx¤/ •ûHŽº67­7&µf¹Â… v}·­7@r:õ’üz×8Œ„¦ªÅã(¢”ܯ~vAgÍšñÚUT,ICåM.xªV›°¡ûÊŽ_9ëµ"NÁl·ïp/YC’ú'!ÔqìX4u-0ÒÙÿÛ¼Y-ã‹:ÏéJ6nêv?Ä—:óuüL±3ç·Ù¿©w _ðÅ‘&6åK‰Ä{…úmšóÅÿú}oûkkáÕx‘=:èÍSñî—N»ñáSvZÚ—ã¦WUÀ§{ǘÛÑè¹ûar”Ñá®R ÊaÉ­ÿ†ò`¥¬¿1Ež_\VÚ“ŽCzCe-¼ì7‚EN ›OãŽX˜Š_ù<”7wÉ 5 Aõ*ÁýÃÇÜÈŒæ&ù_ÝKN²ß˜ØË8ìuªŠ†8ë[Ý´eCVMt‰ãB…u™ëþ×Mñ>ÁòyCJÑ8 aÊ¿6»ÒëÖéõq&ZüîÌ&Æ 5^Sðßq2fg"‹èݬ¢×j>5z“ÈÏ+GàíÓmår!QǕԋ#º-Jž®RÃ,‘ÆaÀZ0ÏF1eJ)PÌä4ˆ/j4èƒÐ˜¦Vמ—Ëp®_Ï\:Æ»a#ÕII¹/öçÄæé82Àwû:ßÖäe'‹-‰Ÿ@Öà¸ÔÖ3%+&³eâžØxÃÃÒ>øËÞu9¸HWàÕ"ÐOê”°©1ëÙÕÁÛâ»ø&ʲ8™ø¹é^­4OwùdpÅü)øv—]â´‹¡šÃöR–UiüL½RÏ/—Lùý€§åi-+zî-h¥îé› Š¿Ð ãö2—ìûŽÖMuš ±Å4[Á_f6#G‘Ìá§C|0/¨Ú”„Co‘ÍÐAõ>à ¾àCÆ Õ;jD?W½"ʤ;È»k™ÔI^ÝÙ”6 É{uñtåîÏ»ê\ÛæÇ?'ôo{z®ón0Vl(\fZÝû(¬ý€"Š,|I eá·r ©ºH 9MªÝÍÇ,r$Û$r9˘—X<,^oæ;î}Mò.ä¬Mc}û­Uëb.;P{7Y·ÍšªÒü}aU¦Žm•N’ŸÜ7ßfNjËÓOã*ëzx÷5y¼Ù ¶¬íž‡%í5€ë¦B&só(,[þEP³¯~d;“Ũ¢bZR`Þ¤LÍ% ¥3µôÊÿí®zÌA`<ôeŽZj"²1p«V]ŽþÊ‚?V¨uß¶6pXâÛæ¨›ZG&ç˜C¬Rmd"êë1œ®r¬éaXñ³fÌØZáó*¯¿4ì8iþ”ál¾ÜtN’„â€ÉÊFT5D¿»AA6ò<ÇÝkQGÇ™à’¿‘;R]ÒnJFrÀìå ül8ü7%3K’/BÂŽ<Õ/ë×–‹qø® H!Xí,°¾pOM¨P“æfò‘ÊÏ 'Q üMZ=îxN±¸a jÇk‡Kÿ³ øFŒÛp›C$—ÐB»D1·o¸ý*%Ô¿RìÜàìîøzž!/¹üŠLÓo©PL{i™¦r(`@± F³‡–A¦‰K­ÂBq7™ –ÞçòE»Ô(w<Åë’j['JaW¤x'BˆmÐ2±¢ç&Š"ªƒç‡ltcÄxy-ìÈöÛ‰pÂÔb`²°ídœY+\›Ÿ®só^Âó*¥ž#U7+!¨êøºP Fšrdž¡úkõÄ:d1€(³ýŽç+cü6fëÕ•"´ø(#¯þ¬i¼”ß`»e¹XégHü-H½ú½pà0¤Wä´c¥Àx§‚ΞÉÝr=P§=?²}‹ÄûÝ‚¬4þjPfB¦ØlÎß>ö m.€·&½²š–Ë:e§TÔ.¥î ‚i5>˜K­·8ýå=RûhÏ*FuAÙQz÷ï8:>ߥÂëúòz,œ5·žè¸‚-¥•÷ðµñˆK×üV]=^ð“]PŒKŠÓÂü£@ª­ê¢†Í6Δ“Ðͬ÷:È>"ÍGüXÜÌ£ŸæSË5Y2›T~ÈÒÙ(–?}T‰N÷’âéj²þÌ>ÓŒ™¿aî5¿’×¹`Ýó"þ†\7€+èïÅÍ›–”û¹¨Û²@>ß]PTÊÏ/Æ8K/MOT›ú^ÞÕÓ8’Ö™c{m@d×Zói"\±¶@¬?f¼{ó‰Ð0¢Au¼£]«ƒBÕ‡,Týh*+ˆ­±øH5'_ÑÚQL.üò5kÌ®ÒIÑ~õà2læ=Ž}cÿ[#1}–å0ý9AšMÉ*µ®ù¶Úü6üèÈ«¢ïßêÀåyr—òI†¡Ven3]<ôy‡i‘·U¶|²CÅ26î °„¶5# ±eW èLeÏ9/_UfSP)uã;û .ô½?râÈþ}&Üôä³~b‰)¾OžÏ©Cm¿®ËNNt2¯7È´š¤ò0dçýîG ±ÆÓB2˜é¸äŠœLœRËŽZZ è½§†÷õáÕ° $$‚@q w Aïßµ«ÜÜ3®Ïwˆô»¼ìøŸÊ€M åªÚ‰Bfªy-CqþÍø¥Q+öKOüLómè;¼÷Lzß¡<Ê“3¥f—´%3ÒÒ@ P¼Ä¶);B×_ÆU|vFa†•1…éì»)ï- èÈ_Æ4ˆñ¡È—ÅbÁV§]ï·“¼m÷×’óò6…þ9Fjž1¿'5!1Ùó¼„èA×Ní¼Qáó5ö‡Ù>ë&’²Ý8² —P{¢ðÍÕcéXŒCûšæCH[^™£ÏÍÂ’eß«*öŸ'KBøÑEqì5ifÕWTÿ좵R ‡ýomr·‰hQ6œÿÇ•ÀFpÎ1Ìü6hÚÁ 5ËÕú§;/°5"øó ³Ø XS¢¢‘5ØØ¸ž,ù:¹s¢ ùó'JˆNﮌ?ÃGÂKñùÅþªk±FX‰Èp‡¶`.ÞŠˆLoÜûá/pùð”Ö9YëÖ]а×Z$dêKÔÔ6›à†’Ndå±tÞªÊTR²ÈSrd€Úó¨y»CxNÙ}2„|¯É·8Ðí^—„yÔ¥vö±_«¯ë¢¸Õ<ÛfJNJ7°ƒp¿Û;1/õÓîžâP¹µ ?‹äC,üM.>˜Ð¡)¯AÞâ†d-ý5½et©Cư¸Z+8Z“Š3;ÌvëPG"›– —0Sš¸:%e?p~[•[¿ Î쑵L#`è¶ùHªQø2µ{HÕܱ#’sðÇY‘Ð’ùüC*'†Ea1—«\SÓñ@¯Ð°d×.Op‚…'©‹Çó¹:á\gq°-™aræîrÚ…Éy+,;Aü‡U¬ç0&½L› t×Èì@V÷ ù¥‘A(=4¯Ôª2¯G6Z”Ô–Yý…÷n謒ŠÌ¢‘Œq-ûîv”¨ZA 9óT”a·¹9p]XVcŽëbnŠÎý´NÄ9ŸI_ Ü¢²Ea«tFÜ©ôJµBâAøðé=F\ Äî ´é\õ(&±Í÷•"wÄÄë—É€uâ0*d*&[¦#9Ô@ éÀüNœýSÐü§Gøä«ýžJŒÈÕ2\ $D{lÞæƒÙ¾f¸'YLÜ@ü†fä–}a„<¯½p ·‹gJ/¿%Âhèrˆ!Ù†1¦ U_ÖSˆ•L’ΑaŸN‰ÇèmXs›ˆçe¶Ÿ'V´Òº~01öS©KéïäJyâî&]V¼Ú‡s’ÿúý"VY)Ô(/¡+ß`Á‹sø¤HnïU°3O8µå?OÙÝɤ+ •÷iõ3ß½øåHŽ~ÓƒJg^åÈTÓmJßp|¨ÔµžŽŠ‰F+e…ñ @ôB¼¾cp†l³KÍzoû¦zo‘Äó‘ä­ãx|öÝ&õ¾v²ü± #’ ÄŸ“ÌW-µâåaËH IàtÊãÚ^‹ØÛ­HØÄÜyñ&°­ç‚óU'Ú3ÌÒ«õ›– —8(ìSi ñXã­Ú¡ÛÎ`¡ ™X8ý{Nö‰aÝýáK„†dSþ©#2¦²¬TÛ”¼ IøNÕ­'wÁŠ9ê˜âû$?IßI)»ë¢½›~f[),9uêŸó¢ÜÈ÷ÜÅÁÿñ7™,?¢x«q®I>q#rÏœðjĬÑíËîÕš=ª“¶÷ÄG2Øü¯Ôkz)«M–EÇ(ÉÐy2ø’éj(æÝ* ³³/®ÍZ+i"ÁƒRÜlc‘¿k-ÕklÉÍÌ©t*ÅÓ_Í¥Ä¶e"ÄÄÁÄÖ¨f|Ýü±l°©É­K éÿÜ Cp¿çª­õFÌâ1ñj]qLZˆOvµéîèkrÈb:žˆÚG@kSŒ ­ú…Sä€UÒÖÆ?;ª±iÆötN)ã¼so$vÐ÷Xî*—7íü{l9ÝcžQuUZi;½ga—Ðú艌˜me.Ž’>/7Vhh¾-¯‰Nr÷Ä^Ïšñ óvšŒª÷;òÚk¢k†ƒ,^,Ù-?žîgºêLùˆ¬Ót"B2Ã÷ E ìðܸÖ8Î vÅÌÜŠB.õ“1 "К2•VÝü®‹Ô[8KÚ5FPx]xêËÉg•ÏßyØ ð°€FÀX+]4©¢Ûº•Âo/ÓŲ&Ç’Eïmðã‰ëù]¬êB ¯ßØ”3 Ø4hݵ{ Ab{~J²ÓsmDÂLºd 7rȬR³:Tï²P»iJ m±i¾2¥{¢âJ½Þ ΛÆJÛR1€­W9%´s-šVÚBÒ¨ð›y|þœŸ´È;óøGn8BÙeK±8Uíà›½Ëé Ú ÷» „’ìõy/Ôp¯7b˜¶ÈÙÒ¢´øÔËŽë=€>)#®J´|+¹4ÃZ¥eýÀ`m*«Nþò5|¶$˜$¡,Bç ÝüLÆP-÷I\ÇoÛÐ’vjW4üU4¡Ñâ¾´Qù*ùÑ7Á©_ü_PóSJ 5³‚~KÃEUú8½dzéÛ·šKÒw*‡Ù¶®ÝEX¢•–-Ã6õI”oNë›ò‚#€á„›ZÚü±YÃÉD4ÍÕ×°(9îâÐÓœ<ü¿Å|}*†ÝTâûÙ EÑ_¹KïÜ6nVˆOÝ ŒÚpÂ`84!ÈÑÅÀÐö—•TƽÁÇ«MV›Û0¥äVGlt–{[8’÷×z-t‚õÛ€£a«üý äh*åq‰es €`”3q·¨A¦ÉNœ¡3ˆm‡…H‹5â VÄHÿ²©†7pñªŠŸ¶+­¯LG°[ûiâ»IG…!E¦}ʧëWˆ¡µ»Œ‡þFÈþ,b”¨@WË£:åP¨5~ ï-:´^i()[?Ò œ ˆü¯2ÕÞCl”Ú Fjù«ùÀ–¶úXo¬?°ª™X“0wuWtLÆ$EÙaa- &ãJÎl%/DÂF£(æ5]  ëàî¬XÕêPË@&Ây¢Ñ!…npSÆ]gÂÝݬqÌ€n…lh¿‹fŠêô ÿÜs¤4[ªû¼y¤F™„n–?M¯¾[o¾¥ \tô˜ò–Aïç­JC17ˆðõÔ8ŽrŽÛ7‘QÆn+IéŽ{ÞdRf ÷O쪆ÚÛóš!Ç6Mq=vy¹GU2ö+â¤*—_QÞˆrD*õVçê÷´…­Æš¿ò2âÛ—&ò‰þž­ˆˆü¯"˜ ”y•É1mÃÑ[Ó~Û÷8žç-ø¦±ÿIëËÍÒÚ“ÒØÊ[­—¾›>ttfÙ©+"4Ô*s!ÿkÒ5|à¬iyׂ:G`=´*¥ ¹ [€“ž3ì+@¥ãÙNætoU39Y¸g…ñ]®düŸò=:æ¦}˜Ù¿kÛê¸{‡j«Ò/ÆÑœZù€¿î@â«éúi |Ä· T…QhzÉxÚÈ^ÂÞâaâO)Ÿ·w¶}wŒgˆÓ7(:ÚMÀ=Înžº3ú;Nq íÆññc<~ c°üt}CuóÂ7Ù¤ ÚéÜváæ) Ž1ˆR?çDoùw‹ü¯~%²ÒvÏ’lúúÂM•^už¬¶ ¨…H?-‚ÒÜýûßmX(¸!K,„s~Š^tL]Ž„—nõÂlfËd9‡%ûè )eĈ”Gt]žßD<$µŠ­;‹âÐÎ-Õ§S?îp~Žú„S@(½g°ÙåËëåÜF6OÃõ¤àˆàOù¶&±jrÍË¿:Œ¥«jêÒCtÊâ(…ê8ST dQ‰Œ¤U,W\“v÷<œYÐGWQHjj` šõ*¿+±2PÅžQS¸Û¤ƒ4ÛüNeÓøoP5Ù  9P‰uë—F§Œ¤ýÏÄW-®Vôû Êü|´é‹6‡³;?³"“ÀG“¹_ OK 3FÞK…ÌÉ1ê¨܈l”O~Lü%²ÚJL“îv§EÄö oÜöžþÍÀÆt‘(Å&`,yÄ·Z­´ÑLæ8~– uR¡ nÐu«½JÙ®Jˆ}GË¿u¶-bñS‘V}wyFaíò£Ñ˜¬;ó&¾iºUbš¯Ô†}Úª% Ç‘’š=º¥ùhþÌÞúæâˆØ•<×àEÿ´W÷(l㬳7ÉvA:ør+“Öõ$SΤ½8¨í¸‡kçu-¡„½8$P²ßs‘TGO2‚,£åj{ë|¢®rúèÑýAéçâHŽÖÜX~ãiÇ+WÌߟ_`g PúšÕ,‚·ü˜Š  ùŠw_¼›×†:š-Ç)ýIûäà/âžÇ¾Öp3ÆÅØnÊzb<³¡ÛS¶ÜX;#"‘ùbc<ãÕS¦±É{™ãi§8ȘÒLùW~ssš`ßiƒ„Å\<’*5è|ò½Ýy¼m6 ·‹’kSAx®¸”ü8T×KÒÉ^lâl!ö8ÀÕ)1ø^íu£fé à¼'s'îËh”jà®ÁOS&¡Eé©$gÓØÉ%®»hG„ü6O&„Ñ¢ˆ ÀýMNÔ>Â~°ù–6yã»;uèuUÄ*†õ÷Tšf/öàÎÓdÇ0Sß«ÂFæóíüŒ~a.i‰³N½Š_ÂÝe¥$1÷'¥ón˜‚ʉ0‘|}'D «¾âŒ-É„UŒ¦4R¼¿É76¥%üžY¥zǤÙûˆ–Óù½ÏEuÎøNË-õææG0‹ÛîÁ&K6%õ±»–ÁâGµ™?fKMÉH“v²¶dÀÕs>rB¥ÉÊ d~èƒQ*»8´Çc›¬¿}CÁ+ÃKº9º³6¾ôÿµ”)>еü/V”Ëýƒã¡™Æ¬!(—ºr¡>ŸOLYùÓóߖल^‚Ÿº„Áþ|GTŽy[`ÐÆ¿ëÎë,€1ŽxÛ(p¾ÄÇ b)ëù-,/vž]Ÿm²aaþ¨.$x„ɲ#мsŽŸR…§º çtJGÈž4…𝄗;¦Ž“‚v(…&‹jèiÕ²dteå-óÄšs34iný,M[`²œÌžš÷}L Ö|R#õºuãéÊžÏ6;swˆTrÌtØàyKǯ‘ µ¾H˯Ðq¦Ї±!í gää{±»yŸtB™Æ¹“B´½ü6k?>°I®øžÒ=æ¬fž+ð % tÝU­ªE5ª© +¹4»E¦Œû¦Œè®ŸižŽg¨`è8—.ØkÒ›ÿå߉þb†Î“¶a¢ÚmEPD–Y†£$Yt3´d™ igçL¼³¦Ây2å§0{£ò·íÇ•JºÒÔ}SÜþ>1oà© Â!Ц¶ÀOJ¯|¶Ñm·à(¯H3%²VøYdàï õO©»VÊàa5Qeù>V¢…ÃŒéqðgh݆ÐAwŒq´õ8–Q…óTZ[þ£>ãbh°Ä%[Ñáø‘=ÌÝš6²D¼úœ±üL­ÛsZ€Úz}Ô¡úŒK/Kã8v­VRÌÿ~Ã)QhÚ¼yª­ÎÿÄÑ#–uÜ?ÌOdŽ¥2àü†±!®AEQùôµï!Y›Àˆ;K‘xóh×c>fà¶ê[¦a’?NÔ=¹,ºH+ Ò rœ$õÓ\YkPvÖk¹=šQ¶óÐ3RöXš:¸¥™;¹˜?²Lø& í`¶B ÄR¡Š)qc•O1I„±ÿ Déð.Q^;é ŒÖÇ[{ø¨?ÏJÆÑæP£ûêóÛ’`ˆeÛ6j©~Xü5sF¯ˆ~·¬£ù¼)øóYè@ðÄø#òZ뎤È[Ù^ÍiÂé•„€UT2΄X$êW4@¹ÅgÍ4V‹¦;B#ÿ¸2ó–˜ÎŽï›ÔƒìMæA—ù®5—Àó_¥‘šp©!òõסÊï`ùÑõt5õeíA(B7Åâ<ÂYÉ5ã;ðVTÔu¡ œ²dFw?…€ÑÛ¿”ßšåÒÅÙ&Ê!Ø~&»yð9Õ‘’ !ˆ¯0˜YÓÀŒM»)¸Õä̽-Æã7k9¦Û•宥,¸ü……o p}`«?¸læÑ,Ý=Ò-²2ýùÄ$,g!3“i4SÞ¾IçØæYÚ IÜOkW°{=5_žÀîPd‰çsÿ+“+ûÍÉ««3y¹ú\Fü{:dêÄö)VÚ=BgÃ’‚¶ Þ `üü–(KÜÔn°ÄêÒŸýÎ]ËÁ0œ˜y†Ó‚G²IQ®Afª˜ˆÙH[jy-VrÁÜõë/0ß[®å;Àu€íìô]@Ö[ÔšSø~sÜMnU'h A/#Úa,|Šù»œlO¤èB‡Išõ­TÇ ©{fVOggSÙDýÄ n_ñEöúÿÿÿÿÿÌÿMÞÝÕÕÒààåÜÕ×Öÿ”ÞáÜÝåàÿ¼æóñöÿúÿ¿Ýåñîòóÿ_ÿ0ÿgÿyÿ ÿÿ ÿºÿüL«ÌÅŠ\ŒhñKú¾^·7OîÙ‹$ÒýÖ΂5‚,Ÿ_ƒOäµ®¯®L(‘Æé–^ì—Òƒèñ1zÖ?'"µ¼×¡/Cém–þ1Ë‚¸'î' ’ŸËˆº…&‹!ˆ:·E¸¹vp*wÿbþ?3RÄâìÞ74tm°îµŸÜ2Y§¾JbÀCÉTa8عŒ¨X 0e‰Ý¹ý·1öß¡åŒz·ÈžŒ‹;ó®¼!T ¨ä­Ø}\òÆŸˆk!—E„}Qð“õàòú+gšÊék[+X*v áÚ5ÊM¸ÒA Ëp*ÔÊãâ‡QqNÕšüLö(ñõ×Ö´ðÆù—¹Ái¼P÷/R}<©æ,X —b?üÄoÂšÍÆ¤ì`]ÍmP¬ šl{Ô»8#$ÖGû¢h˜çT<à»÷«œñÖa]ŽÊèðá o‰ÐDáYSUíÇŠ½7Ñ…t ²ž Ïô䢿e{P©Žò8\ÖǪë>û͆¯ÚÕÇT7ü¤šZ\ü¾œFi{uFº_V3¶M“œ €znzÜ/…nù2qôó˜&ùá@,[Ä“æÉÜú#±ö•9TÌ^LäA•MZxû;¯7zM¦ú’šÙ¨Ç„ÿòêÜG}§€QYÑiþyAü£+b|ìYï?zåT,ä=ã9¨TÇÈ‘Y!w™%OI4½?%f3k¢ã­Àm)Q, L^žO©ËÂÙÓn£«ÝEöÌkëJuC'-–èjeº/_&®d,‡9yœ?³bjšVÑÞ¢¦·_]ùå ב¥Ì¾CM†ÃÿRb‘–2& ©Îmlêäæ½Ö›{KF=Zk©ƒ$–B z¼š³d—WŠŒVÛü¯1hÓ·+.¨³Ù ï™Ð÷ø¬Xª'û` tË–R(>‡ /¾Kfzg° †IJd¤Êþ‹¢Šà Œºÿ†G±u"MŠÎ ñ^vÙd=›>ü7ñè =¸pëˆãÄê\^TÜ,fÿ;²NfR‰Æ±9Æþââ‹>ÛQ'‰LšòÌܘù¨Þ#¦ƒ #{s>î|g•ÍO°«Þ˜"$%sJx%k|œ—J¦Ó] Ò–l|2Ì(5,ÉãÜ·³„CÑÝB²©ÌEÅ–&,Æú¨¬_)d•C~ÍB›–ÐJ@/ ˆõp0@„µ÷~~…!ælÖôFÖÕŒÛü¯1h0‹H"h3~"àpûØc 2N_›´0“à »ìŸãò=ë±[Î;­ ·Øë˜J¼¥9õYš=íýW£îaT6­!™¸Çô_hŸØ"{4.Q¥nç8‚©ýJ%”y˜ ½C21Ï™£%(¨l0Å`¾fxwi{×èí¡>ÿµ[ œ‚>|wGD`öi‰„²Ø@ëG¯ë²Aß!õr‹Ô'í:Ô¤¹Þ¹zÜÉgí!,ýôtI„)~ÚýÑǧÍÇ8]s 7K ý!B9‘zqø ¢e—nK7É-ÕɦlƒWŸGT«™æ5q’ðr/ã%r=EñkÓÕYœ[•KQ嘅šÜü¸†þ³hÏw-›¿ònhd@6 @¨úåðñɤîhÌõ¤HÛSáqús"w-w¹´ó¢,ÙvWº±®õ3PIpˆŠãÁ=JËòóÛ¸A˘ÁR—Ÿen÷pc-Kž¡ÍÏè¥P*2ÌŸJ–ß¿è€6ѯñW´ü[yåßÕZ¦ÀŠÂÅ•1àiàéF¸´ìºæ‚,ëïè 4ØnÒýQ¢h$neÚ—ºêɪ¿‰~m€V±6õšŒhÚ>IÔgOØÌ1Š-+6Žæ’jYç~x¢”ñfáÔ˜9w‚{u:ôäu+E_òÅÎJéize37Xø9¾I^ôÀûÍH8Þ”Mï1!%‚Ýüœ D±š–|Þ _Ä”="Î虂»“âŠÚ¶FÖÕiìþºªª9 ¹©h-9 ¡î däi¨ýÚc 7Õÿ¾Aæÿ3˜–ð¶Úüc!þ‹ß mÛ ÚO´¯•H8wÛÐn20PŸà¶[Òø*ŠóÂhëš Š!9м?‹·c¶ÛÅ7ê4ž>x4dŠ7•‡b=’"ÃSm~ËÇÚådF ÇÈ'„¾²å† ¹ÀÕ— @üÅ,ú'çÌ ]™+ÞɆà…v¿Qüê­ÅëWÐ;ÂóRq¶(ßE¯~£™;Ëní.ˆ9qU" hø¤êúlO|n§ ÏM  óò•íáw?n”S~Ýí 0œ«dãý\¡‡L;j_À<Øâ꣠šd ÒŸ¬Y+ ªMiQܽq$'pÕÔæ($ÿÒ¹C‚.™’ØiðaÑÑï«B>øŽUɾø»oé@©Ð95¤JïÃÌí·"÷ù ßè½Hñò¶"Èm;'14SêJœ€ñ…U° ö‡vü«·qèÃ"4»IÔâÔ\{š²4uG÷Ên¥Åî&ùÛL áH®nÄW³ª ì ¯E<0MWÿ¦šYûü}a@fRáÈCÕ«0 cUmÆiëšà;«F;Å•dèrù²EM~qÑÓ¢T;å§ê5ËÍàÐ*F­§‘•FEœ¯ ãØc"ñ4Hì/àà·kÞmò"(‰ø€Z[ÛLy—ŒÖqèhƒ`Ž?¢²¤zØ<µ€ÖØ`ê‚þ_ òl6R¬kØ2Ñ¿ÆþÙŠ÷¹*„çxÍ,qQÍ’pxqA‰œa$è?ÒÆÀ$kÈfRÇFÔ;T¡](‰w.' C‚CÅ;uÛ­Y’Kã}T/?¥?ÂÌäçCC–«Ùª`å-6"¿ —~Ô‹#2¬óæ- ²„Áx̳èE%²åi !Ô:ÄÍÔ†ýí‹îÉ;ƒO+k„l|^8,ÆÏˆv õÓŽµ,eˆœâ*ú¿/[BÁ1@“¸±½¨!>Kã}ñQŠ8-Åc'¬ã^Sƒ@ü.ÏßçÍÂÞ´Y¶!“côdd¬Äïé¿ÿ ÖüRèH¦©œ*Ú‹Ñ WÝòû+ŠZk¦¥2î¢ ÊãU[4YÚä²V Ó¥ÐÝ,Iôá8Â}ütñ1Ù$ T„E|M0*Pʉ«UM6~l8|[ÑxCbŽ—ïGX€FP¬µå“Ô{yƒ.Jw³“s*›ú€©Ó~ÔùÚBìæ¿‡uY_¥-SG¾Ác‹Ý–„~Á!¬Ø¯Š $Þ aG`bñ'—­”T¢*_$اÁîCœê¦¹ö®FIÍ}üL½±?ò´/¬”êiÔÃóœÂÌaCŸ–Õ¬ª#o'ò#;ÃE+ ˆõÊŽQß;âVÐ âIYÌ< ôì*Lë¤^ë-vö}¡íB?>…n¯5Í©¦€Ú‰‚«fC8’4‹)kO&&¨/©Šˆ—É–ùª5Í•7ƒúF;BÉÀ´ cM–ò†Ä­;\Ö¦¶˜ôþö[J¡Sóôk‚¥( K Ž“x3ñöáM­°7û›£­iJàÏJ~x/ êoñ•H·ô\ZÃ[“‹) ve¯±“–Õm¬ïüMkOÿ.œ¨¢«ˆÂj_VœªÍÎG¹°ù:„ÌnsN†“J±©l¾9‡<óþÐEîGÊ—mB°²?ªžŠKìãÍ™¿% H©‹˜¹½FÜßF>¥3òäѼ՗ÜöϪïê—ê9ih0 taY²†ä‚}D%e1ˆìz—ZÀm‡×{B2~ ïD÷  ö:Ú:i†T%6E°V˜sOho¥i6üm€NcŸñ É^O{N j>ŒCiÏÜœŠ–è`åkŠ©Þ.ÞOшF{¸ƒ»üL±MφàQ”43=2³S<­› Ûcy¾¾í™=øÜCEÙ ™rq{º£î¶àj¾ïï›é[×Ý삘íÂ+}YiŠ=~ȹ *ä †…Pm6æÚ6¨‡–=ŸRå`®SWñqÊ›s,1#K0}=’ˆ'—7ǘÌÖ§W¯Â;7€÷Hù°=`küé±»¹²òŠ ßã’ÖDdé×yO%ƒåŸ8Í‹;O/Ó#hÕ‹¸Ñ—H=>„;üQÇh$nžu¦Öáµþ_¶”2©œ ç“ü6P„¹aFཛྷ+°Ìç½8ëVÒ¬øºÁáËíÄ´ºóÏÞ.uc“¥DM0F²t’lóM`@ƒµ@öìãšõ £¢èÎPœ ¢z~(Á< ÍÞî_‹PËT*j;e;¾wøð˜P|³%ý–¯a§¨¿öáévpÚ¨%&d»à ló_AA›\¨ÚrÍz¶¿ú q»­íÈg 5¢X½_VrôsÞúnào}(¨&Oµ¥©d?ÎØ#sjöW枨É›9q‡cÓ›Cä;üL«E;Fæ¶8Å“•ñ!ýüêMkÄû§Ý¶®Îqgüf…yµ½%ž›Á×¥hzààB¸˜±Á>ÈÈ0 µgwŠùVx—¢ŠH€ÝE)æ¢^êøÈÓv¥%¡èŸ·ìKP¯ø%zÞËo7Ü÷ é›6‚d–ÿ)­Ž%ûì ¶ýáe €tÖüdº3nE€µ™Ë”1±CVUxqÒ—ñgì‹ÓküªèþìhuÕŒ:ƒ‡–>ÀfT¬¬ªÝQLmdŽB­Ï:+ì›cÿS©ÆÓ,z 0£XècÀ!÷C‡ZüMsÒ<¤°–ÞUIþÅ F µ<{y¸áþml£€n1Pzɼk$élºÏ!$oT'«$«óé`‡J¢5ÇԈѢ†Âfn­?äêØ)÷ë3³µŒº•¼k¡¿íØ!iaCο¸øçD·i˜s£ÝØg<ð3l³Ë’Žzi2­ˆx›aÔÿm`t¦Ú9m›~J€/Žó›å ÙÖ=à@™µõ.OG=›ß±³k:hÎÇÂÏ„@2‚=,7[ÝÉT{ˆÊÂE(Ì+>¿YÇóÍ—¢ìtsü6d+LV·I]P[:PÏ@v Y"§ ±ZEV«§RDºAó:Yˆ½ÊðJZüúüòFDµ] 0à:.ŸÜ øcöð^;žxìß¾¼™¼ûå4Sº´Â/ …ª»žK>Pn±ù´íø‰Ãã®–»§º|Š;dÜç8mÕ%c¥uõ+¿DØÂ‘ŽQéOw2øvñ€¹tßÑ´žww#„vÀþðßç'g‹^Bô‹rEÀ’¯Ô2ˆÔJcs¡Eò@ˆšçúŒ4”¬6Åyø»Õx•ê4ðÃÕ@ "“‰±l¨†ðø?º†©?UüL¬K·U¸¡åòU9ÅIXjØÛÜŽ0¬Ì]È#ýª™í¸•ç.<œl‘}® 5ϽõQÕ|IXÜufdÂ[tÜ|8d|u<9«¶ÎÖMOoyÓðMf2rõµëÀ†ºC s8¯Má°ìÇçå‹wú/˜0U4¬'„÷ð”OÝÊèGçtÌ÷r§m[‡çàƒ (P›yXÀì›Õ<ñÖˆN1­€áºäâ–vT5Šö—„¬ Šd¤ç²Ê2åΊ”´¨[jmæÎ.°—1‡¬m‘Ñ”¯üMY<;R;Ë/©¿»An»&ÂF ;Opœî§M£õ‚ˆ—)”ÇR;‹“Cö¨=ÈûÕKªâ)ÂÆI^W1p$¼hˆmÓZþö&³VÕouÂ^@9á]©éè²uà>D#“Y¾îK÷gŠâb)ìm±Nó?!Ôd:Ï«áP¼1è€ÔCüy¬ËÌèvÑ-]Ÿ„Ä;8§Õ/¤Ó›óýF#;rô%ÿÞs³ÕJ^oYs½,J *†>ï­ÒÜ >?–{¬œÇk*ž#9_Kº^šÉýÁKe$ ü6UÃOØ.œ¬âAÓ:o†6v[÷²C>*¢Ú½ÆGL–C Ç(Ìþ~ȽÀ)2}^mt Ô’‘yÑ:œPó5'î ƒR@ øo¾Â Xá9Ûòˆ8~{s ãp9D û>„ªÇ1E4„Y™¡‡åíý!#Z–žªÄÓlϪ–Ó~ɨ@^öÑ—x'È<õc¢Ú;Ì%ˆ¸áD^–ퟹŸ ;!èë¤* ÈÎ4(±øë> Ÿ6VRE#ÜhFûÒ÷ÑÚ½F%— ù l™¸³tïi1à]*\Gõ 'üM(5™ ­Xkja7 H9¹Ü)\K¨L¬w>‡‡2_Ä3G›•Ÿ \ýeNñ¬%¹T Ö8Ι¼Å±$psc ß U5õ½÷ nO÷ LÏ·±áºèj ÞýZ±Ž¥o§œ.9GÕ [ä¸ŠÑ®ÄÆnÚwf7{©ç86Â_ãÜ)’Ž*c¶j— 0SqšçFüñë±ùÖRJöÂ*O*=¯:-/pCãÖ·‡µºÎü·ö¤ù;3Çü“õÞtº»ï² ¸ù˜ü}\ b•_rÕs9Ì?(‰-7O±¥¾‡¦Hlw€ã ôZÞJ§¢ï•ÿ_Öã‡ò9ñ¡ãpÚ0Â;EÖ/ñUd­g;&0nÔ™ÐÁ\2}c µ©§¸KÌE XгۡïDx7Åœô 0ïÌé|U™X¦nÙ$Ì^A€–la(Â/€‰ýÿ§ÂwVШÍáѶi૯š^A@¾)§Òï¤í£y»xy¼÷]'Ò&k›n…Þãwê#œô‰qk%¯‹XI“4û³lNAYŒÕH‚f@27ej¾åàQÁ|}BŸlð{'»Q•Ô¥HJ¹c>sŸ '±O8UqœñŽ#AM>8ò¸Ü¯KžkgžÙ)úÙ5'à*oŸI]u>Ã.&Q]+Æ™¬d5©Œ›žá‡oRz`x´Ígö…×l<Ö–¨¸Œð© {"Þ=I„¥Q¼ßøj°sÏS>€½Úà/zS¿.%ðP$ÎÁ9 f'-—Å\Ìmé-×F®s;І¨[elço—…äü“ð„ef ]ˆx°‚´CP)®  -Þ¥þiâ%­÷É¿×h ^ÉQŽˆ´Øµë }Qº…£L3ö3WúLJ¬Ž§|Ž9ú99.‡4³é¨§`Ðcð= rÕX ¡¡¶iéì0ÖÆåw&!IL÷4—¶=Ž=8Ù¶Áü“2±Èë*½ïwëƒ6er¢S%q3Ĉgçðl 2”íSe±w5XRFÃpw-†üÚNâšÐÐÒtÊ·Y6¥bhžä¸þð×Õ°ðÓçö.ûñµ^¶Ò?’ ‰eºT±D?V4µò“Ö¨áù#VåÈD5އ ;¦f*d™k‘æµS,äGÄÛfFlrs \NÚæÍå–çãŠ#òKËr$»Iiª=^€Ú¥zL(ÿ~úþñöë¢ëQ•’RȹÙSç_•‹ÒÚ¾*¿Ê~ù?ß8+­£€ß%µÀü½Ý°F)JJxUPŠä¬Ìæ»ÃæUHi÷žÚëߺæZµ,UûÔ-¼®ò¨0ÿKðŠEE.nrì”’tæ²P|3O>çí~O)@ò˜ÇV¢s¿i$Oû‚BÄA¡÷_‡FÊ"cþu('nÑ~uY ႃ¹âüèö0 $´š­/¤>ò_!#–]ö‰µã’†Ì6›ÿ ¾x)m‚dÇÅ+>ÛË|¬©CBTl%nãTª|t¦õòÅÛ¥¹pÖ…¨n/VßT ³dËîøEãBsTƒ+›üNM\kWż[‰]Ps‡€^Éž#öù~m×eà7K‡Y`DTAò-× ÏµÔ¸wŸ™úwýAº÷™(A^ †à|oH`æ(ù%ApL›š‡0ìoGOÚ²Çí5ç鯱Ñ_QÌÖ:.›P/æo8™«u¢/»ª°$Ñ–Á/ö›<ÙVõ/…«ÔN-çW§™½ €™²¼ðòÊI*ÿÕÛ XXÏ! :6.íè:‰b¦ý…I8<èmúÛQ¤ÄÐuG½ ”§  8n#'ªÆ§ºÉAÑ\ö†ü¼ÃJyj×xUeb…€&ã+f¬zˆMZvª±ëkus}ƒ¿OÉF¥LT­_\§Ï{«f讀[§E¦LS‚LL’¢õ(Uv50¦ßâ>dÎ5ÿ•ž47Z&Xjߔň;kóY‘‰k+z/®5vŒ*2ÔXUJ3ì:xT«Ö^É5ÝJo8A„¯«^H=$¥Žéœ-%‰Ëžõº¦0ñJ}oé^]}2¿…7ªRz|ò ôžo”jê4úHKï 8"[G¦‰Ï8ÌÄõôœëk?InúÔ×"æVZ5ü}\MCLœÚÔ‰›j¦RˆÚæÄÉI‚ŠH<¬ÊzKB;#7 õ ĨÍ$ã©#KTÕcÃÓ$—¾ Ó J‰°*BòI‘¹Ú£ é!ŽÄê]ê€úó%Ù¡·ÙùÕT <Òk¨×ÑËA?aÓá¡MPàTGOÓß,j†ÝŸ÷Nªho¦œô­<¹ñÞ߯…RéþŸVVspg¡Ô†Ë ’±4[3b€ûãUçI4òvjþA½ûÒì¯ÞÝ,é´/ª="¥œve2‘¦mSG«ŒÅCÊyMÓÎÞœÄaw/_”@ù£=É5}”Æ ú%p™ðžo¡ÒՇ̥Q—=ÿ5Ï É,…~Ò, ·6›ˆ£u·\ò{é8«}ýš´.¡²èª\#³WÅX›,$ü_nûjj‹ÝipÁÏõ ä«í+ ïgjxUtò/3íÑÑiZèdÔcŽhr0–(žÂŽY°ø,ì…±q­-$íöÐuƒ¬ixÒl¬&tùTùf•Ñ9MYô°“*èù~ƒÕÁa¶ ij¬ZÅî$‰#Â@ßE_Ï F¹ž0 @ûq8“üXÑ ’D)¨쟳nDaßjÈò­7æXʪlÛƒ¥¢„<‡m³ŸowÀt‹ALz닺ɂJ Tµ~k×ÈÑ2~i'-]J¥ÏÖ³¡}ñ<×%TÕˆe/¬UN¡ímý60˜…á.Î| æ4ïç#9ÔŸbɈø2‘Dëé”àmC4?àS ÄÙ1SÓŸx/­Õjy†ƒ .G¢%¡õ/Ú§lj»§át]1Ç<ƒ}Û{@#0ªïþrvÏ2ÌOÎ:w–þñ˜x¯«Þ0~¦r©°T4˳k ®ÏÁ2ì©WÅŠE*Áü“6UK>ý0¥v¶  2ìĨ!Šx¡ÈŽ2C¡å0Š^é’²¦Í¡Ô÷¾ÌÿÐÄÛ”%èÓ!*Áj¦uÔ<²6â|œZN÷×ÉP»ƒBeꨗuNê—ò*ÑX78-ºK¢ÐxˆåãgèÉZvÂ?YñQÇ\÷ëQ¨ôj£Åú¨0üá™±E-63(0t‚óJ”‰¹ƒ;H'ÎO|5Ô½˜¬¸‹ãcùv ©ä‰{€\ëŒö}zëïÊ`.#gh½V3Ëg÷²½<—Ħ–yÖ;ËÄé=/!D´NQ”fñ4ŽLz@iï då^öð;Ërò.Í–‡hÇv^kìáÝ ‘½OÙûö2¨¢ŒTàÌš"QùõÒ›…F4¡S{"¸à˜Îà´i@ok!ÍDÑ`N†ÂÕ‡³²[‡_Y&]ÕàÅ= Ø]´BªA1œ‡4°Px´eÆn”ÔÚ²#žåeì°üM2qÒî|NJ™3Vçÿ­e\¥XU¿¾üµ«‹œ$»ŽÑXÏ)UøÛqî56¿BcË †¿Åo’¨Y™¬âmNWZ.qà—×ÝÒp¶Ó'>§pF©È¡ØAKÞãÏX—+”®Þò´3õ5\,ßyDvÄ(Nˉ^\c>$@'=mþÞULe*ü䦣á«S–C$D¯¹p ù%” ·}Ï_û_Çzäyzò(q–UÑ6ÆÅ²Û2uÈY‹‰‘‰ô.!ßD{ ¸1?´±®*ª/(ª4Æ3?þ«Æg”³×ŽýMT›2¦¥Uü.†VtÄdàòý«È_U–ž{ø„ëY0ë>èÙ6ale¤”$!‹ÃXp©ÞÞ¾ÀKÓ¾˜Aâ|lv`¿Œ-À™lñÎÓ+²àÃÔlEBã« ¶ì 0Ò±rTêãžkëQÈEÍ¢p¾„Yó6™ZC¦þÇ"w¡~¤N\ô€’µ ‡›ØžK­{˜ƒús1%*žë=trÈt’èª8Þš,a_AâÖÀK°hø1Ûê“””1g µïWj«uèTaI:Š{7ýÑ­2£Pœtø :Søz¢ƒ•2º*eî,ø&j› ¥2wܘâ guؤ9éŽE€þ%±c)2úòð[ªp¾PÏêŸ>üIwKþ¹UTà#…Æû¢ Bj?%W@‹Ã೸@vܶѼgõ(Ý •Ëh8[’ûŸ´Wb.ØÝ.r¾žs+#ßM˧B»v$ú­jÓ;v9ùyjö>v]?èeý³œ {HWÇj±€Oà0Þå–T07¾–¼ˆRëˆB%]àJE{°Q“áÛª|ƒ—ÜoümRGYb¾Y›­€3@!°Plev©C™‡®”Snò%ÝÅ­><å“Qt3°Lísv°-­Å5ñD‹YÛ¼Å:cëaÝ ®ž$ï¡®rÅó°BÁ4÷î¬0xˆ¨èûZ²à¼úxÇÈ1ü|®)k£e\Ç q3ÆÜGÞ®±‚äÓýe/„£Ðº€¼_H*ý#r†.l«õâ›%ûû]J\8ng{ª€!<e½Ì5Ý4ÄwŽYC ªFäØ*ÏÃí+/€¥EˆÊJ[*¸‘¦®¶# §ì«Cài ;<ß´!&TÖµIÊõì±o.¦”!C:@ê3úè¯c¹¨e§•`µ}®sÄõl纰Ê,±ÒÕðÄ•´IÊ|¦¤E²zx0’[4cQ·é1ïÆ×~3eû” Ѝå9&t_¬).˜]#ˆ®˜I3­1V &wàÆÄJB7¾ëÑ[*0U"\ðb¾˜˜h‚Ý¥÷ƒ–:ò^4¿ªÞ |?›jU‹1°ËÑc•.ŠÞn#ßdwVêüJ^^âá!ÇÅá2è^rèSñRaBÆ¢GËq2—01Õ®H¦ÇÜöø½k\>ÆÇå'j•…\‚}ü¿>^N÷=/ æí{ãG¢É´ÄŽ;Êí«œ|ãz"î#e*]üÆb ‹…¼vð`¨LÉÝ2 ö$'D@GÂÑuñêô#-Aô?¬õ.æ7dç)ªœ'žþ –3”­(•æ m”"7¼×‚m wŸo$€4†RÞh†h•-’›C8)3:àÔçÒ‡a?ÍÆ =™7ƒS{(¯£)ÿ¿æŒZyøå#–Éá@ÜG+‘RgZÒøÈ·«˜µk“ã>¤DÕ5Œñcaö@!@oµƒ½ðHÔÚ[ÀíӚܬ²o…>kAÌí’ôaÖoypµ˜ïû•s´–ÔƒS{ÌL­ÃXº£Yú™àA%üJqÈ ,ì#¼!1èÊ2l¹ÈÉ<Å8KR3ˆKsûmhŠÞO”_qF ÆÆ‹¥,m펒élQVl‚¤°÷bcÏÁÒ»¨Ñ$¬v(ÌNN|ÂÅð?¥ýVÑñS[)zŠîÂß„Ÿù†›u‰;5¾ÞZÅT—ÄDx1ÖoÁ}^&–“ ±Šü°ä\ܹ9•FaÊñƒUš`"zŒÍ œÀ+ÌÇ‘¾Tõ!Y¼ºçÅ‹òþ‘âôI×â‚£¬%Sú¸=…ʘI™ÊÌJsv$&o|­¹uËXºÛñ‹ñhž@ÂkÙ°¿zÙùüðËv2¸¯²166É/s5L“[à;OÒö~¾ïËâXÉ|èÖ¸sšƒ[ßt%…è¶Þ⺠qSpnœž0‰×ÚÜð‚ n6XRäô«4#aÈí£ã< …¨-i"?ðz äZFI´˜–c,%I8:cE*<îÒ òj/¼äÓ8 -Á Ñ @x[¯1º#~&|Yƒ—Þ e¬/Kyò &Þ¨#iw‚‹+—ÜaãCènÍÕHÍsS#øE$óúu üæp¸ Øò;h6Ó‰¡”œl.is³·çŸÈÄð’`l"¨›µüL­Z\z{]"q—¦ J#„ó7Ô1ò5äZ yà®8Kb±Œšn’ÓY–G.8é¥â‚Ï+g5P°r˜”‹ßL-Ÿ¬G=ÂïAô››€5së3Ó‡ƒ”²ÁÈ4Gf}KI7ÀA.…üKüRm‰¤…'÷mZßpœÅé#‚¦¯ÔÓ*åDöÓ3 ,‰Þµ+òçÚÛÀ ¥N‘6ј‘æ"à!ôrWñuË£c]\óÚ „âJš‘J÷*¡W*‹5RRKgIIE!K±Ø×ÂՎ妄ÊþKs˜®t%¿Ãn¿¯šõ'‹üÆmjÎ ¸6_ªP¤\Ñ<ÁI·€½õçÕÛ„{ÐÍõ`â™è²Ì‘Ú=°UžÛ6m¡4‰‰†g'>} TüY‘ƈ¾ÛÊyå÷€OòS9=Í®ÈúE'÷ZÓ wn­âc©4ÒÈì3þZ™ 4ÙЧ“JeBЙ^§ˆÛÇ2ÚÓ¤°ó MWª‰Í³^êŠ7_b’­mû9êc÷±R™h› ôe¥òfŽ/_SÔ*s‹›CŽå$äª5©¼ütp Œ¬wŠC&ò ¬Çä½4b¦‚pt«Nɵ¦øÅx#ñÁK­ÂŒÔ¾ëfÕ™F§ÚIT1)ü|®!ÒW=´-£)·õ]쇵šÜP»§¿×Ѓ¯ÅTóãmˆú¬Éóéi©¤/Põ‰¢ñî^F)Ua.”Ø™Ñeêø4ãþ³™OüòÝÌ+ßœŠüá.>P¨`#úЕoÄÁ¤ø8¹S—¤÷Ð3šGÌ·îr{Ù§xõQÇÅ´~ÓSŒ¢"ÁP¨»=ʧ­§ÇdŸwŽÕ°Vá½ b-óð˧8UlÐL íS}Õbv‡G{ =­21²FÔ¢€^’ÛQ•:?|Ãn†S9ç’RßÐ\xêŒì©JåЃFT[Dá¹³ñ_áÊÄŸÇŠœ®kɲ› % pÉH“ËLZ˜„÷Í««ï¡¥<ýÆœk®OçÁ•øp§«Šæ¾íÇ€ðt|Z6Õ„øðKd"žžò¾æ¸ˆOCˆ3Ÿ·ÑCçgv>(Ä cJaüXOûŽtõÇdqK{·'Ýüx‰ìdÃsªš†“´ñÈý ÁÀ5ݪˆ†ÌomÝ&ˆ£ÊžïBÒk= 8¥(Ëg,~Å7‚îèl¡6. G\~‹”d®QÆë7¾ÇȽdÂ6™_IŸ­møIÞã]fÿ÷‚NÈó»þ@¾àÈúû*è`F=oÔD¦’ùaÇýB.pÊÞåor~<¥^i6M&AËý©Ò$ׯÜ×£nÏŸÃ4¼Á±o1€Ò’¶r5jãã´V,£3Š^þ†,âÕëŸÉ?0RïÇ`S’Påø~‹[ZÕëØ ±o ¸Êë½É‚óã‘ïæÐ[~•ˆFZÌC†_ˆsÌ#³j…?%Ê뉭÷yªn,åü›ºqT&ƒ ¾zÔ'H¶½±Ü£ã…Ö‡(›aá¸n²yº]à+Q95O “‚PAàƒ™˜×)*òv•xµó!­¿s§1þnBVz€›Š&\.…Πf>ûîíkçÞ­Y±‚ ¬ÎÄøNÓàÑÄ8E¿]ÛÄÚ, AáÉ“ëúÍ:2Í=ä¶0ÈèÎ=÷†àŠúå#R¹šd×JØ ®vkhÝȽ&zÂÕ|ˆÇÞ’ä˯–ãˆø\ÈF¡ëîá/ý±ÛÆ›@ =>¤n±ö—˜ú?©~ûrZ£"´û S3 8Ü›œKçïÛùySú.jŸ¥ (\z_š¹zV³ü‡4:„§—Pv£ùCšG÷”7–Äåòða¦=½é»éï ·‰Æt·”`iÅ$waðätf×N-Z¦­?Íz¥Á^3ù½}í ”ð,@ažüïrÙŸ'˜ÑgÀƒ•‹"é5'äâÀµ˜í¨ 9Ó^ô8z‹JþLÑÛº…‘¶‹¾…¬›0$Á:çܺÛxììµËÈM¼V±pæû øÑNjÜÜý—†‹6îZþC® P®?!§ÖO²§8uÙ !²ÞŒU±e`ZÅüý‡=4ÉK¤ÎªHÂQ®x[|¢ä¥ šž”Ï”@'¥(ÌÔ僾Â-8`FL8`ƒ‰€&å#Äž8$S_Ÿðÿ›9úùS!¡ï¼º˜¥Ü4fÖ¢ɨ[JÛFfL=ä)ÂxŒ™}(_o<œ)¥‘)w¿™`‹!uApÆ“<ºõŒÓ¶Šj¿´Út›9ö¬èýæ(S—Ög“0­1"ÀMì'9ƒ4ÔÖÙ’='[‡®B²‚QðeÔ¡“‰Nà‰g3À80oL­ðRòrãÆˆŽz3ø«ö§½¼QND ¨46ýÃ¥äÙW%¸üWEüM$ìw=Šñ8ÌèÕdW>7dî‚Û¹u‘¼Ê\C$Ÿÿ¡Z¤ó–Ñ@^v°ÓŽIj7ž…$3Âp=‰†E6”¿Á*kТŽ;2£7HÞöi/áÔÂÑ_DÙ³Â\Ç…J;ˆÑ•]‰Ï#RùË}”+( Çï>£¬šÞ“µÅj˜šz]Ù–9ׂ®"‘iÐ!Å•lEF¯ß Õåošµú{%Ä ƒƒp‡=+zÊüwåb\lYV/²µU\Z ¼)Ï“¹œÓ¶tÙþJ4vÿ+K’ÀFW°§uª§º´lÞô)t÷»IèðK`9cìµó"$è‰TE0e ý†|ðmmº…,üL¯É „Å#Æš8wZåÃøãæEzíZ 2©æ§k„±0¨TfP”­>¬JÎDPMí¾g\9•üö6tiÛ…ò²ðƒ-“,ë1YÄ¢Úl<åû,H(×ΉøöÈ1Òœ›Ù¸OÒ;RúÀÈÿ¹QP{\áÊ%™CñÃ7ã( gX¾ùö_JLû‚ѹ†ï¸)µ‚a¦9>nËkN¥ødo@è©£˜ ¬D\ö2[VL¢J°‘+/þª`¼¤ß¥m£¡·ÂöG=aUIŸ4d(¼<¢âM†áG?xåAÞ6¥?Rµ.L0d±!ïI²¢ ræêé¿Öv÷:ôR?¯=•?"1å‚•#ü/Rõ6ÝJï [«©C¬Ò^!›þ”Ulw?Gx¡O(ØùP[7ÕãÊðÄò](õ}·Ѥ¹£tå­þ®ü|¨ ˆ)ÐN»÷²%eÔñ7-!ùB¢ŒqÆ<V¡ííðû¨5ÊZOR¶D_:*ËHË‘¶€ÌW>¹Ä $µÆd.QY¸É!{µ§Ä šäŸ~ÝÞÖf“³Zä0†RË›–¯bBVQV Ä⺴³Ý‡Š÷쯌0{‰üYW9Dkb|Ê ^GÿiD襴n´HÈ ¼Í²o¿RÙ ™"Ô Ðãóâ×~´FdÈ!„‡_š½¾?³‰¹Ž['g1ê,ϰÈù™^;%$úrÜ«C/Ö}@~ɦ:°Ò÷=Ée4¿š¹#ÜìÛßñh cŒ lêåÎÌ,€Gws‡“q÷ÃiBNåd{E]sçc®Ð< Köqã¾…l}jíLž&ÆJ…! ¶%·EWº¨PkÄÚa;^ˆÖŠXÇ’Ù§2C'G<ZO›fHe(Ä?àeÆùq Æ££ó`hýŸëü[Iš‡]ç„Oƒ*ÝšæÌÓíáL5'v¿hA‰ÔÎ빇‡¯ŒÖýTHúŽÕO7i ³Û7B)e”Þ´Å–«LÄWüX:‚Î6Ñ ' ^g|Ú6\Öeð}Yñ|ÈzØIüÊuX6}ñ c‹Â´1 8ÕøôCGq‰%ï'O€žPˆˆ–O–á›WvÀ‡%Îsûë?ÛwÖe¬&†GtÆ›RaúÊš›QÆspLg:Ù„ð{ö³4,#]]r¤0r+OÂ}…ö%—-oŽË«*ÿ< ±u†ôÿÁYIóày¢S;Ï>’;ùùØ..žÖïï{½ò¦çâAå]®cz¢<‰¥ô¶zäcBT4ëÎp'Ë7ùkVøý1ó²ŒuO%th¶‘ªY.8û NÔ…„Ìrc¹´Ï…Ñpá*955ê ÚzëÞ¥)OggS€”EýÄ n`tÐã'Bÿ ÿÿÿÿÿÙöÿÿÿÿÿÿ×ðéæäîéêóøúòòïÿÑèêéôóøÿÐßìéÜÞÝÿ@Ðéÿô÷ñîèïüM0z—÷i;#âbΟzWª„IyµÖ©±Àþ7üÕ§ãùïBh¯Kf|ñ<9^‡¤¸'>t0à‘æí#T^\ÛëÖÜÓv‘þÿì"˜‘¨ôÌUQ5Ó1L`–kÎ+A¬À1§{î~Ìr§CôóÒÐ ÙIŒtKJ&Ÿ!ú[ì%G½œg%-2ÜÐ*.â( ú§TpW2á'ø6áã»  Háú‹ØòÄ{ È¶2Š'Ç'iªËšm?D|C2-Ò> ˆ)ß.11’i,%˧å#(™Ì–A7/’Œ«¡Fh<‹Œ„ëÿÈŒW¾ÇBÜÿ”‡¯5ƒC)`´zž3<™\Ùû°´{|züXaýBûzÛͪ_·+%‰ýa¶dGDq÷·*{;< MÌè+ÔlÕ¤ë‘Ikš>X¤LrJÀ‘*‚4fmltçmxû¨ujï-4n§29p’zVÂ0D.Qþ›t(«ƒ´b¦cAµk2±•uo*‹ KYʼnÉ--J²x¡ŸVV•—:—ÅGêj–_ŽeËvIÌDð_—¥¶lä›Öú–€nadzx{DÜÅÝMŒÅ–¶E.E`h¹s$¹PnP¡Ø³0µl­1B¦œ‘3«ñj“ßœ$£² ³1_IVy6¼§i#ë‘øÖGóXýoW ‹²ƒÛd½õÅÛáüJ^;¯Úû΀¬–?+ï ™Dâî÷u×cÝU®qÂÒ_Dq“É Ef½0èÝCÛÝߥ =°š”ÓèS²î[@ÝÄÄ}F¥0ˆ/ÎbÈÀ›"1ªx ŠÜp½Æ÷Ò$ƒF C=Ô1à–nLrÿ >˲Hrf¹üvbfnMá–ÔFÜÎÀ®õëòÓTÞ̹™ï'ç &Љ ÇRßïw¹è*h|ÌRoOXÚ2öÒÞl _‹8Ó`ë®—Áu ®²[³U“ît ¾mhà¾b™Ò20Ìœ‹ (UÅÓvþþbóRßXW×) ä^Z3¬òp}*üM" Ê·~Ö²[,šSÐÛ}3Þß)s…—J¡9¹Ӷؿ[Îë“r¥Ü² ±H ®gËõŸ™òÌÃj&ËØHæy“š‰¨Y_ºÁ¦l(c¼x|Ÿªñ­ÒéIIA-| Ÿ1ª?× (t.á³@HÀ°@ÅømA)ÊÔow¿®áÖg~¯`I«ä³qïHFO@%$¤¤ 5â/ ¨íÖF’ Ös™äYNë’6Àßo‡8¬Œ¯®Þ%aÊ` –Øø£»üêw2Eïò®ä:hËNŠ)–R:Ù­‹VEÅŽpÄRëÔL;¥¢}÷1­ÿñMt¸e˾¦.$ÐåFù¼ô·IåÒðè ½iü|’ ùZÄ&gw{Z•VƒTÄÞÇ÷©k†o†¿úflú Y¾ T±¨é'oÐýÐýêyàl> ¶ÍŽ.vd)ÓD.´oYZ¶*Åù ǰÌí²v¬ ŔĉNQ©iêøéô$øò #§€ñFïjé ¿ši?¨Ì榅ÃQA›jŽw<"ÄnÑË0—yD)•ØWã‘V –Pßí1®!õÒÒÝas0•)}è:§¥„ü%\# Ù§pAÂ~Ò¿_â(§§i}>òH.C- üán»ùÖ{ŽëzÅÑÚ‹Â_qÁC§/'ój´&?j}Ñ2E!Sac.e¨_ñäÊOöóìt’sܬ¸Ï77>Ž¥¼ÄÃh™–wyrzÁÿévÞ>J¨÷SH€ªžË@/Ú<ïPxÌÍjßÚð)´Òqº?|·²/ÜFà?D·ú‰—Òƒ[ÔhXP#_,a#ÌZ¬âýC)˜€%Ö^K ˜yznÚÝz.Êýì¢!šÔ®Å9Œ{ayiF¤$ß¾t†¾dþõaÃwp»ÿV¼¢L· F1‘Øg÷°»°2¨,_ÒË}n½q?˜%ã…«q =T±X¸¶ÓöµýüÛ‰=6ÚÙËaúâò>uR8J© Ãñ­œÔs¹·Ö%‚EP[¡ÌÚGžÁýP¦¶ü=„-mqÊâØ ’hœ5F¯sÉ´±÷–Á! pÊS¿˜Åiњߤ2ƒš…“ËSéÊ;Ÿ‘¸‚‹§˜ ãÃ^ùXÄø.ûh¢,ð! ÅL¢)‡®âÿÀ9;›‘.S~Çš ¯n²Â>NÚ¯þóþì>64aÄ„ÂmÿÑ™“?¹V%ÓÙÖÂù-Éë2A1¸ 7cWèEú‚' ûCú„=Øöó®3â@ÐÍw—^µ¡û3¶bAçaIüÛ•„£qÏ{§äê Œ"0TZ°ü·dzÕqKfá8½4*°4}\EGŸ—Ïs¸ÈÀ° Ià•þëÑ#Ì7í"sY6b»g½‹˜9<™&‰Þ5-àxHeϲUùù0‡àâtæò˜á™¸a™ðØ`Pwâ„Ϫu÷ô¿óa‡ý²±a/±Á˜½|ˆœÛ‰ûÆÛÓ `Õq>¥Iå;01^/ºñºµŸïÓæÜí0 h>o¦gXýýÕëæ¶·tvNf°×D(ñYNOm¹IM@G…×á§Ò½l4RÿûìzfèX±QÜ3GÆï+t1sp•9¹z“IüJ^Ÿ\<ÒùUJ{^èVr6ÔòÉ=¬zî.Þ[¸Ciɾ™ˆà?îvćŠTSPÞþW à~H‹Þಋ×Í«`IG!/Ä;îžtr"þn,ÙB§¿N¡B­‰äF"+©?í¨¦ª¡"ÊÜ9œ–ðù¿´¡âÈ瀰Ä7K‡ðFWÚ æø²0¯¤ò ’±¿^šy/gDãÎuMî\ÅÐ1”+m;J \Ý"Áü"°âP+ðBÆUq|q‡¸õ»!õKæÈnÿK©b;%²œMô?y%8¿'fIˆg’ÆÖ 6`+/å:C7çÔë)ü¯1lnûMNÛÁÒ<ºÚ¦dÉèôóÛúb\˜ÿµh\™W¶fÙ+—ô¤o¸ò‘îô>} aCèó»ÇGSf þÎûþ•º(û–5ØTx+$Öµj‚X7-ƒÀÄb9Ñ-œÈ}½$ºþÐ/V„þV"áðšÁK±3jË Â;ÒXe |rõÄÁ¶¦¾1!D%Su$A(Cº2oŸ%º+C=˜MÅa_ý˜6©£Á†‘p•— mçI›”ë\ØAŽcDI0x JNR¾¶†uÞö|ÇðA¢Ûösg9ÿlï«b^K‚?à³#ÊÂôR×û,Ù÷à5´;§»äήü±N½»×R¯›}Wx < Þ²ë›Ù7Qo~¿]öûqI»£å®Ù âú'Ód,>ù²žŽ N¦%Ò²ÍÅ@’`çA®{§´¨$§Fºqˆ •0©~EÅ—ÞUÀÄž±/x5Lë&T%±”'~¼S*3g )]³š…ÐëKH±î²¢S cTì´æàå6ãL½ÑpWøâ#„ÿÇf,hò‚BñÄâ&ĺ¦,a²±Tü¿›¥TÚ¬ÕÈ oàì= û*–E­€·ùK:éÞ4dü{ö’o¹ÆÛSo!Ø*$;ÙõQ\ˆ’nÀjÈ,'bFÉŽ–•C"ŽuvÖ/¬Žˆ?˜e€ão»+ˆ¯üKX'gw¹ó2Hmþ¼6h-ôå—Øu–ÄiçaÝ·(Ãë êõÄ`å³-&Ox!/eh˜Œ6¢Þù—e&µ/œ‡mÀ6ÂN±²ŒÒA8;€‰¦ëÑ®ÜæP°u†Xlš]Óh ;p‘U^ݬ_Œ¤dœ°Rñg'ØÃ,S桞r:jE”@‡ÃP::N~X)ˆÖ-ÛÿEºøq\Ô}:¹ˆ^(«—û0âü¸×  éËŸ.Fú žwçøá,뢿3øÛDRGG4 ?>·¾Î¤5™óŒ]ÍÉy‘K…5;_Ü ÝwŒWÅÍ9eΓ‡p†VC(­¦¶éZ6}Eĉ2Û¥ëÀ`àü¯þY¤T˜‚YÙwsñŒöêÎÀqŽ]@¶”ÙOøƒ ÚÐÈ•jlp0àΔ¢}Ë ¬$ËÊÕZ[ŠUH-ÃâRz°ƒYÄFvÛâ _¾Ž%5§N”xJu¤§É‡2Ù Æ?žÀzîóÞ#ÄÕ€¯ï2‰4™ˆ˜P™'Èk µyç‘Á ½BÀ—éØÚ»íøßŠ"§Ó º ÚïʰÂq³ ^ •@hüÔM6ræ¼Õí@PXµ]ÿ™ üúýt‹‰³]ß$Ezû+Ð7q:°ÉÅ6vp%&ü¤ƒ;k!÷õ¢çºY|'¹i«©zÇó{\ 2 0¿a–׸ïœ;/Ìíén ¤­ŠÌƒ_`l8$mÛÙì×].óqxªÇ)eüpUUqÑ»{$nÿ¬•sŒ.z4Ú;­êë¨`cLó‘ d€ÐvpÈÐhÖò´’¼”c­£_a ò{T)*ÓPÖO1Œô±£5îË_OTz ãvzXm |ãH5ÃÍŠÉ—Á*UŽs÷ò˜EIí1wk®Ó°2iL Œ=±¹›øµä²¡A” ²#æÿ#Gn }6÷±«=o'öIüL²‰ÚŸþÏ¯Æ ˆg“!“é0Ù–~o~TuVÏg tÝٽ $~ߌ†§Ñ'.Í)¯¶V2Œyõè£×¢µìÒ‰†1¨n³°VÃËÅê#uÇÚP ©6(À W1Pö}½ uÍpnãÍû¼‰1վ¹5U(Ƀ×NPà$Õw·Êÿ|Y/Ÿ‹þå»[5QSúõçA¥Ä“cŒË:¦~ü…1ÝtÉ‹îÕ—Y*øÿxÏa:seyçß6RVÔ‰Ãç£ø\˜°3x8Z<[vW8W»´)Ξåg»ý {?åñâx/Á) ÿ1Fì¨}üL³½ÿSÙîï,‹D–øv{ó«nêµÙ€ò°¼»ª8—nWwjq³ž&YÇ{¬ªeq2¢og@¡‰0ùÊd¯¥_†Ã¹vXN‚;µ½½oÀ¢Â¦×¢D{î·>Á„;¤Ôš˜7:Ñ׺©®>&hè.Æœ*mâ<Ó;DŦå u´&Èî›uóÑ‹³àÎïUÒºÚˆóº>dv)ÂýžCþø§TU n(£h­0õˆÆÈŠÓUk·¢›6X¤e$±(àÈ2,e{ìd®p7¤Øås}º™)±Vkê]•0æüJ”G útxIñã+s9P›\SH;=»÷`GìÀ»i{¦,¹‰Þeñ‡€*–\,†í{>å³:ÀÿÃîyX§s¯´`(·úáEó[1àz<'‹ZÇG„ÍýƒÈnóY§ o—ªUE¬‘Ì*øGvÿ"mÏ>ÍD”¾4™Äˆ'·ÕŽÁG&$eôýc¿Ã›¾•Z€h/Òx¨ÏåÃCæMÉ\âWËô OW°.«x*:¨§ö®@ÉÏ&ÖgF¯¤¹K­ I˜ª³3ºÜP+Ï!ÛyàSÄaó:Ç}P×”×ü–ª¥üMMr¸U;1F‡ä½ªà_ŸÉh$ý ÿå-(˜®¯þG¿£6HUKºÍs>Fí0;.¾_=£éëD¯é•ìý\Œù÷Í4ÁÀ•Áºœ§FÆqŠ4þ-xCh±I„Â3MU$9-6¥k·¤Ârùí3U.²*Ï †$¥kPULòŠ)+Î{Õ•õ¼ºgÜÒå)gÔ2"/±9µ§ªh”¦DÑWùÏÅ–L›…Þ‘ßî,Yó6õ¶H4ùÂcÀÖ•Q{- ©ÿUmìNdþ°Ã…,üÊh-mp,8foëF¯´j­›üK 7¾­Ø}È‘î‡â†ƒ½tr ¬»j,@ˆ^ÝÃ3Ða“-€I'·wq\S¹f§´¨£)ÓÑ‹õñh†ñ™ÑøÐ$‹m‚-BÐú³\äX .<À²ó Hn~ Žµ0À«ÅÏ0+•à¤H˜¿¶GI»=ùc׎ù½!LO…Z!T@¥ûQÚXU_g¡ƒCÍ9fûB.W‡¼ŠGŠsõÔ{ÒzÚE;ô þÝõë5!~"ðIµÖ°Õ<©«RÙ -N²¹b6$^"ZÏ2%~ßÇã 06³)ùšMÊ(üLÃY”„ÄÔÞ-Ë!]…e]ÃAü´PÛÒ&˜,Š=k­‘aãž-tp36†ÊÍ”i!Xo½q¸;Mü6Ìhr¶°‚„@rAÖaùsßR,ú]/¸;–ÅÕ̹±7ÿóܘ·²÷ Œ>š‰F½}õXÀù•ÎÜ1úã£a¸ÐÂUQÀOßf°Å~ÈæN(€ìŒá ŸàÔïë Rz@?I s6'=*ãƒ0j3aE·¦r ã\¡Èãä•ñìiáF½öG"z[¿ëúüëJz[öö¶ø=Ü·ŒÜfL[eDäûråw–dÐØó|¿Íà»üJ[¿7&ñpØû>+¤©‚Ó›J í—3uÖß낤ã܉Ñeƒu®ÿõcÙ&pm¥‘Õ‚¯é`*!õž¹=1ÿ|JV&ËûžG³Ï?¿pëÑ¿âȆþòcm—…’;ÏÝz¸¹åîàýªj·N¢5§;Ž«û‰Raôü<Î QÐåšü¾KWþ5LKc“›L,»pt¯qÐeê½–3,tHµ¡›lÕ‡F(&Û”·Æ¸®¾|Guö9¨r3ãÃkÚŽ Ô¬œ¼Ì‚ã ´íWê ©(3ï6yºòF8@7ña¾#üMt¥ú¢Â}HHø€³ï—MF´tQ„ ·¢Ürz¨*€‹°sæ ~M\wO-F0¯îåozaiš‰©åjÏð„œÍµŸËúSÓ¹Hþxñ(Vÿaú—ÔQèçæ£Ή=yìºj/øOA IG£)ºZŽE‹göÄŸ¾e!Rã-#©з÷Ó/â'ºqÙOU8¡T$XP®]9‚ã8ûá{ýía(AGS@—EÜ$\ÂIX²]$½=Ÿ¹è¸ìG[’ôêÌÁH¬)r.‹¨uÕ|£9#TÍlÍÕf'ÇŠ=µÀEqZ0çd7üM2ÙŸLÓP¾º¡Ð œ­TA^Œ¢«"íò¼‹¬zCd Q2<#b® 9Å…éw6mS‘t+†?9—L›ýôÿ,–:O¦±Ï@Ëïÿ“ÉÒ·ŠÒ£e`{ÜÒ¥9Ò1¼á‰ß|0òXÉay˜Ušn/7õ"|. Ùh7‹‹cãTé{`ys&ôéAèWÒc3Œ‡—ì'³³Ü[€¥A²m\ÆS igʳ7gV/ï [·ïÁÚÝyC$•2nð3àŒýÜÎ0À^G+ÈbÆË-¾ R秇d/:ˆÎ« º¸A(s¿ò”ÏÛüÍÌ$-}ßp—ZÞØþþ?ijZ÷ÂjO¼âö9¼žP"xÌŽc^káUãä©IŒ"ðApçp/­ÃÁýÚþ81…mª—¿jNÑeÉ—¬Ö¾{¸0Ù.“盢0o¬T¼uÄö„gbᢕ¹bVÖR…&ø%þ=ÕÔ. ê²õZʘÃpÕ¿=pK¬—ØÅΕbx[µf’m®ÄJûdRn§ÖôÚÛã"¼Ï)™ê”OÅ“/êºÔ{8Ñej•BÑg“zd@ûÞ& ñ©®à4Ô;W[Ž•@{e®Â…AõH±¡%üͽ2C“¥Í~Ÿ„.üˆW˜oË‘A,ñª1Oz} ÃTq;Ù'SÈ%©mdúØ. G1:€ÃcÉsš"pŠwL^×§ÐN»$Cú%)î0¾uŽg ù™óº%Ôöiüô÷ÐåÎÍ.‡áaâ8?Ü"°à¤6'Bëwkk÷F j‘ø}¯¯#ÿ`Jó¡ïÀ«ûçj#çE×\àׂ›?P„_ÀA鳈ŸU{~€˜-Ê®gÞù׬ëÆ&BI,¹!ãp á:©Gx…‰õv8à€Oó•±t®ýïHÊü÷Z°_ÁÅÑ(üĵüv¡õ:Ï'W"í´úfmt–m˜&qthÿ´PÏ“[¼ejƒK=@)S.gkÉ›%Ú8åU+9¡|XJï¦ðR#¢ºpœuóü¦5"› ‰ «8ŸzÁ[¾2ç‹ÑL$h®"§–ÃÅ"—Ò cÛºhèÚ ëÊS¿1ºÎOÏó1Süßε¥cë^‹Z„˜FŸ$Ó$Ï9j$Jû$7F×Õ ÛBoõPÁ+Ÿ5ßÚ݆5ÊË3›ˆÌ?Z‡¡¤ gÞµéø#Qh’“ÒÒÃØÜ@os¾÷ö)úá­zÖ™ªªgÁHkþÛGæÊ±k,x'üÆc ®T®·ÙÌS½{UÈ›7P¾ôË€VÙ¸õ-ÀPv€PðG¹…b¾=ðæÃ×3®6CŠÈ Fæ`2¯ÇWÕoÚ‚ŒìϨÅ9$ƒ€µ cZŸn_‰ƒ• À‰lîi Xƒ¶Éã‡E$´éîIfç>½ü½ ÌÏÁ˜7>Uj“qž+ J—ƒÞ0w,-íÈoÉ"‚(wî?FKÑîÑš–‹D5XÏÝT28ß?s®šÃ"`QW)@°mEŒo•ZoV*bc‹°›lŸÊNFþø±Þ.û…žéÔ†‚`©åe=­¾(–.Èô60À ü}[O$ pÍ`. ú%ŸÆ4êß)¢¶ÝÒÞBÖ”M²ØBoØ–j>©UšúËÊedl$ž•æN‹Âêîω\ì¶fÖˆA_ôR§t© © P¤,Û׋}+9µÛs˜<ÔÂ1ô÷½áb¼Qnå1WôÖÄy»_:ºi±Ê»Ÿ¹_Ô‚…ªN}¦̧Xl‰Æv»ÖØ÷A‡µ¿ÅAUÇÛ«N8p©TÇ.îyÆÄ8yê{Ñ£†LK9G^g\eÆ$çÕ ëhVQ® ÅÛHçç—¤ŸÕ“ÅÄüÛ‰áñY('D½M `àùµÚ”í5=Œyu%f½Ô‹)™Ð6á@°&xQ6”J¦^·d@@˜PÙÎ Ž­ÆÈnw lþK¿ðÛ‚ÈÈÊbû þ†“ŽÁ¨Äõši?8# ïÓø­«5’Ý‘l`>‡ÎønýIrœî³°çÅäAý€<è¬u¥½1n]=Íì6J“ñ"ø½´%\£,´¶®–¬Þg£W©Ù/Y¼#R•²À©“ p7:î ˜×:έBpæ¹)VIdî–ÁŸÇ`Òè{}4½ÀS1á쿉šIüÛ·?Êó ´½Æ`E)ÙÍx p¥ýnîz5v +%®¯,~¿ú¬òJ-Ä÷kJŸBËOmUî¯ Ÿ{~Ï}S¦+Ò/’»äÅ¡µ ëU#:õËÖ߇ß΂ϗ$-ãØðJSrÂ93¢M50 :ŽZ–=| †ò¸%ãPûYР`:CI cï\Ýö Á¼ÛJ³êB_‹9I¾²ÙyK]ìu0Œœ$à:1­A³‹'× µí›6Þâ-:³Ðq+JÊÛk–)®ŸÁëñ~9=I©iwûO¹Rçqh^n&W^â@K*øHUöÉLÚIüJŠ˜ì™ý yÞ©‰µ2çè– î´©{û´zqA(oU¤‡^†ÿg 6õ=êi1";ô7mÅÙdÍb¹Ã‚H%Ѱj´,—Ÿgà¡°2ÙߎéúšÉçH™_`¥çÉ’ #·aØKõ»lÜ,Ç@PZ™XfUÉ*ªÔÀù ê!öPçˆdûÝÒ(ÀÃJ?æüÒwi ?;N²mmz¾v\}e윲P¾ß”[»ßÈ'Ö.…¨:‘;oÊIž‰Ïî‰HWÃ=²߂ðYêѤ¹Û¥5sŠ´Ã´j…”@{üÆo¦N|΄0FåH]ÞÆƒ,ê_jèS_ìÇitÎóÿ|ÜUú©ŒR?‡Vò‚e Ö\(ÖÝYöÂòlû°ËI)âó8¹bøG3¯Ñà)±éøºî6÷X6¬ž·*‰TŸ"Úi‡ÄNtèfÔQ¦ô Rn kÆ2/÷]×T…6+òá”@îoKP û·òˆ™„>’™/!<4¦j÷“Δôš˜_Ì9@SM€‘yöGç‰òbØíš[4ë(Ž^ÄZƒ8‹o€jQsz^Xmçç’ãQì·Æ¹ÛÛm:~ø¡&’û¾Ø½üM·üLÈáÝËäv½S'z Ä×–¾’ሴ5e,W:Fb§i×-„Ë€µxž¯7Љç‹ZܲúÊ…Ô†?Å€7,ÆlÂÁ4²Î‚„NmýB …†WýÿÀ‰9Íñ‘, ½ÔS4®¯ýä L–DøÈ¢÷ç©ÊìÙVçÓX‡ÑãÞ˜$ÊNñ”IW«¦É/tS¹Åýà×Ïw$óíõ펈Fs´4Á,a&v¥!Ášc´zÿ±¸H°`3±žtO,£ñ‡gØ’ceŽ®¶¿1Ž›©ÿå*¾ô[³•˜8ÕhÇŒ B°v˜û/E#ͪŠüÄi)ø€í]R£¯¢5çÂP½y3È_Ø€aëq`FCEŒMÀÆiÑÒãú{U[jÜ™úÄÛ»È,¿‡•Ÿú 5€n,nhò×3"žÜ ˜.ÊžÂ/ì0çn&˜á‰¯ éŽô£Žg!˜=Ò^$Ì'Qì‚w’…BoˆF_[û76¢s´hÖ°ÝZ°¤\ØŸ‚Ä>™âúÞ¹f§(ûøÿ‡e›ù<œ4\ÙGÏ~úoÍo 9œ 6d‰Ù)ÌC袹ÿ¼+]þA%Tð6Âqj°ä†§'ÎÁPÉ>:ö ¾îÐ?ÐÞüƒ[ e¹ð'Ig5º„9F=«ü}^tP¢÷M¸³bv«ÚfŽs.´›OMì¬ËgCå÷" ±ì*¯ VÏfþòÛÚ¦Hpã˜7’õæ‡ióýÝw§x<Ü¿„²EÌÝ÷ʬBðr&’->CÌ;iV,ÔW õì<†%™Ìòú=¤wçù1±ëYÙÓz=í€tä»!›…#œàh#ó:‚Ì1ðn~à&ˆûó[ƒ™å1[,kßÞ7¾¿§²wLv ü$¾={ß*xQhÜþ7!ÑíLÎ8)¨xÝg'k]½eÝÅÕ{žB Z„S¶KÑoPhÂ_õ£w2G´µ>Ã$sÏ{ð¶Û\éSd%…„1€éaßuÂA ç¦ôþ{¤}´ï¯å替}ÖxÏÇ)žÕ`ú¸~¨T÷[Än²Ã‘wn‹ýüÄ <ðÆÉN"Ï]$Kˆ3+¢Ý?°î;õ?…0‹E¾¢ý™áçhˆ!çå|Hº;â×\i1å• 5¶þí#CÌžixÑ „»Z {õM³$¬3̵„ ~2 Gp=‚LÏWRª ¹ßÖ…åþnt?([§´X³—då _° Sê®YSg&ʨâ)/ÂÅθüL½i$¨Púùð%o;ßÙk%U]¶êæô®·dÆÁЇ ±§úĶ‚æ’í•„ß ™}O*ay—ÀpbÏÚ±èlê¨4æ‡ÿ¶˜””˜°Üi.I¯iÎçÌ* :ÐÆY’¤²9†¼‡ZêIŠ¡¸(ÚŽÓ¤e‚`žE½ŒÒ °{ٺʃÉ`ElA4œNø&ÿèÍó/Ê5ébÅy£\|zYÅ»wº._ªð)¨¹ÓjøÜìÏ›-51MQYûðtngUͽäòZwiÆŠ,R†|A°Ú‘—ZîdÂÔüNNuz¾ŠäþÐkÀy äs„¹4LxL…Ó×S„L†\’x¦ûþ¼‡EB¿~Qzh(e<è{Ê=†èl§LFûŽKÇ&ZŸHP!³È$Ý1×öpžÛD?‘—£T~%gÜÝ¿UÁû¬jVò¯ûã{e› œ5ÿªAYA™›½M/èñ9'‚º6ç©–Å-kºjB[_t½ÇǬgý2™½nöª¡ôâíT¼{*õ´ç–>„àJ +"ÒÁ‹­aù>Ê¡YÒ)¶%|~º³d¢ú7 v¹ªµÀ‰(Á(*üL´û¼µµÇï|èr¯Däe˜»üýt”ÞSá^R²¹­J©5:CІ Ÿ„¦£Ð-oÑBÝ;eg0½Ca,¶üpïíq±¡Ê „¾ö»c§ë}aCwå ”q²U©XÜÑé×hNëÁÏÂÇ¡\ˤ÷¬qÓ†®DKË)…Edúüj€fȸÑÒANQ&q œÒ°ç@´'9âm€*R¶4Gö'A9-Ê«gœ“}3'd89˜û‰§¡\!Ó«{6ç-7+”¾FÜI¯<é9êÝ?X-O¸ÚMd«úÓhµŸ£ûÛ/üMQ¦ËÖ`Ç R¢7E!#>ê(ñ)îà©Õ›žßÃèOÆ®x¢ó‚nªÏj¿èoÛlj.ç‰e4ú¿­œ·žáæê²Ë‡sŒWða8yãùÇ( CÅ ÙÌN·&©²kÓ×ÊËïí„™ûŠvžƒp‡„¶«€[.iœÏ°a†.ˆ™ÁÞsë`ݼXæ¦yâ[µ:ôyÒæy»?¡í Ú§—î\Ԛɑ-‘ø³”üIÞßrËÚ52O÷êõä¾ÕÕÄ¥¼@ˆÒTÆ®#[”æ©ñÚj¿‚×\"³"•]&<¬ÄÊèJk¤(DÒ÷(è1Ÿx‰Ú ·};ÑÂExVCY\¬ÞgN}¿qq}¿ókdRa<ùhø‰•¶¨ ÖïÿÒ4)ƒw?X°5Ȫ¨µÛ!M A;«Diéq³_©ï»ÁG2Amï#mŠÐÞ]§~A¤Jgлü k›¢A'•z.Š #Çi8j‡Ä§j@¤ `P9Ž•Y©KÎ:¨$5™Øß©Fø$oìüÜu+õ÷•„;:b_Öû`_ú‰æe—Ê~ð¼•óñ¯;Ðm‚t &8¼5ù9Ñx«Õê°îB´/½‚x‹öÞÔ˜%Si&šØÖ¤´Z¤æü|©×¥¨zsת˜ñC ã—ˆbj…[Û–yÉÉG§Ø CÀ‚D !jî1ªlÃ!ù½ö‹ÌúJâXwwï>s§(¶ø›O§'¬luß?uEŠd|u´Ô>¯uÀÔWLu8–šôW† @åC² b·Ü2™VÄ÷üBß¡7eµ;~†.Ç ×™"ô¦6îÀ*Œ{ü`k0›iKÿŠøâSr ÌðpöÃ+­ô#'ÁÄlì˜cz~<n{5@³¦M×TI‡ß ~·Qz9,Œ\@—)nä ôH½?e<<•‘>ßÁ€ÕjÁc«·»ï„FÙãE¯£/X×79ko¸\>äÆŸ{¨›L»Ô·´m‡x;Òû¸þǽ´tûi(üÆbE˜ØëtK™Ãÿf«véf»Š<ƒ†ÿàpÏ–ÓŠÑFÛZZûô¶dÄ•µDªñii·ç^¬íZpíÐÁú!òå4íÚ™ã êšèP_'á’êÓ®Iãð[O‡u¾/Fꎋ ÖÅ”dmù\È—Xb—qž¦¼G ÆûgSßÕË;Aµ¨7Óƒ–$^ºShÙØ8uo˜5ÕGº‰‘Q ^t5òŸ »(뻯˜êžÂž'RõéÊ¥!HªÄä*zøáÎÕfb­›Áß’]­¬.¿Ó‹W M®DŽ—¯Xhõ%RÐÖQW£{¢]˜qtÁ ß²7Õ¥•&üÅÐ/þ“Ù¾¸+IÃ:ZQ!šs‹´`á 1î¤rXn*¿²eO *þ¤ ÖÐÁ÷»R"KaM7Œß–kK%g °ã%ÒÊÌ$éfBð"•Jàëê¥pG²\¹·¾ ;{Í·C'— àQžÂ=AâiºüéÊ8 òqZ왽°JÄ*6`dÔOŠû^ÈøH õb‘(ØZýà¬ê £¥6 w.’„VX¼Óø%ªpÛÕÿ¡)y·§$e«„é³;ÏŶ,ãó¸fÒÌãh0¡Ú™ƒ*«¥ýöÆ´."ì…ö™­© (•Ê=…Ű¹í%üÆ6Bk²-ˆó‹ñöåAlÀæä¡‚ú]ý"Jy§÷Ùd ï$h£§ è¾YÔ-È>$~Nmz;ú$‚ + ¼9ò+³ì*ùŸÉ¡h{F"À“1á›PžVrr;ð6mûå!MÓó‹ƒ t}T¾…Aꇊ\s¥ö }öbù*®æ‡ÒL>PÁx)úņ±[[¢Éí¾T‘÷NóOP¿–Úôƒ¢yà„&3g%iv%ô¥À|>—~¹Ü•ºáGñM`a3~v;d×¹‡áüûvøõ„ Û…ÞÜçùúHÆíäR-6D°á2…$ÈòÙ#ü5oBQk×á,‚Z¬q •Ìœ0Y›•¯î- §Fòj …zÑp±Ç˜O9™yŸ8û -ãYïæF£DVVÿ„ýë?Mל]ž¨ø•LæÊ@šÉ¡…JÁ¬Bl$ù/ãZ9yuõÊù숟q• ®¡€'ÎÜas.VN5@„‘[QS½³ÀIõÎô5ƒl1Ù<ÂU»ýý£]Ò' j<§Œü6šÆñë|²“Nw§Î½(®¡‘+±D±€¾^» à ^4ÛIvâÙ|*qb"—ÊÞ @ãÔŠBjʆªÁ”ž„èQ@ Zì¿qÝ]Þ±˜+_k«ËÈ–†Ñ—wº1‚ØO^ AKzZë\f"ò[·tÜpèo“nŸ·ˆî…ÎÆ?Ž˜æ›¸RªR~n îŒH’j<uHÁAfÍë @=]ìÄKét‚×Çczrƒv³ Ÿ•÷¨Ü_&7e/dá 2¹Z :ý…A¦ÏÄî\),вŸÎ‹h땪uyÊm> BÙìJüƃIûéÀð<Œ…]úddøÆKŸÛb;­ècdÎ(H²! [‡ ß]˜ïffm§¦aò2V¦2I2Ú¨y.éŠ×«¢ /míûÕÃ_ºÝ«ô»=ñC±‰z€6ˆøf/æSAò´ÐÙòj²xåˆ)¶;TmïcÊeÛã6Ä4–ôÇÂÑ‘¯.¦`‹¸Ëëµ€ù·qö.Ѻýîæ¤ºA³nó¢†Ú„«]#ì’ÅÂ7ê&øãfÙ9ÄßQæ`-³Ï¿Õ2ZïrCB¦Ë}¼`¢{VEuÉÚ©Ã^vhM Y÷’FÉàf‹…œa>œWÇ«îùnI>ht]Õ·zÖ´Úg7ƒP»üFOggSPFýÄ na|K ^<ÿüøýÿÚììðõøùÿÙûúõüÿÿÿØÜÕÒÒÓÕÒÝÛÙÔÕØÿŸÿÕÖרÙÿÒÓáÝØáåÿÑÕààüL¨Mâ0<ÛÅd/-ãû&œÎùãVÀ[¦9}¸²nÚ<à­NŠsGãß)OP6 ÓM1&isÌÒêní~*ÇÊskZîI}Ý–¯ÀÂEVñ†¢dè…Bio¡öò>ÖàEÜ~îog1©YInR™â€}ÜðÛWÚË#ª0ßj©7ZËõw„NÜ-Ûx×gÔ¹´¢¿ctç0¦²HUG+‰0Ë›ÜæC\£ª ÎoPü-ücåh×0.†7Oè ®!!»[´ÔC“_èí©TÊç„ÂÈ~ÔÂhzÅj¹ÉíŒÛ”âxi6œ¿¸‹Ô›½õݳå£C¬Ê‰þrè5a} iÞ=€}÷ð6'ç¤î*®ŠH ºÖÞŒhÁ‡ñ'p<`uL“h*¬Ùñ{í¼jFï£u5©IÛ?´*·KÙnºèÛýþj¢cxÝhwÒé@ü|®M•-bþ8ÃKKu Ýdô¸pO°‘Æ‚}~gšqÍ Âò̰Z–©Äóð":Ã*»zÇ'ÿ,#Åx˜Fêí<¡@”æ²T˜~+ô»ÌÖü˜w#jyZYÚ2^’†€Iý‘VHûXÏ5,˜¥ãE†Ç%@U9iŽ1Ûµ”éûuÆÑ‰)·Q½×è.n/­D8û7ëà Ÿ¿U%ð-R7«]ijx?ê]é|&ÑÍîà4'®ªPû%Ù•êõq0£eR6?×&!Iáòt¢óY_éºc–æÐ|ϳ˛BV©e÷ŸnÂ>î=çG1.}Ûá¼ÜŠ*ŒûmïÃ_žgÆaжäÑcÜ©ªµBMÓÆÁ×dø¡&šS\„ý óã<{jk‚ §œwáHRr¿ù&Øëj¨ÃýEÅŠ5Þ 2˜üÁ“BF6¨™xÔƒªàká™>ÚEû†Æ[혰OO]î¼G~ËEì[õGÇÆÜ¹Yõ`*°O?…Y,=N” P¬J‘Ðí4èés’þî%‹Ë¼[®'æÂ™B•éÈÅbž‚ìb¯¦¾afnS%âã¬]‘Æ‹ÎVØ_˜–ž@6,U”ö üLÅ-å_Iz%î´>€#“)³Ó¿-$R+‚<ªXo¬¢„ó©3Ð-å÷q>·ÃÈ¿ZlAaƒšXv1œ‚Þ¿ž¢ ©äü1Ôi?1âcŸ¤ìºß^F¼ãB`3·\Ž» Nô“˜õ$áë‹rbs­Ü6땦ÎN7Ç)ªx?Yv<õ÷ïØ‡Ô'fvÍÌ‹˜H¹]sókÂV;tmçQ Ø`ë¯äýÝ œ†^­p0HùMŒýl­Ý µha§&³L·\´ú‹ ^ÕéJqÚ !û›«ÛÔy¸#†<›Z…ø÷x>HZ ÜA/¸gKäT‚Iøén(ŠdìÎÒíruhïã·C·Ó5ý§âqFJǼÂüø~u•Ͼ»´œã{eq)½¨¨‘(/tÕ¿üIâ ‹Y¾“’\9 ®“eáY,>Òh]ÆgTÖÄøð;aÕ±uôaµf‡‚¬ ¤9Ï]½~©è'ÿ·Ðæ‘2ݳ»æ¸‚éö…31ÏijŸ|à~á'À©£âPƒø&Þ ë4_À§Îºî…ê7-j7;ìž¹-úXä‚!ˆ²29HÜ8;YFÅ«h—ŽŠ02cÝ$QÇûI3Ö"u¼j7÷&¸& ;ÙгƴÊMnüË£}¹Ès݉Ç€¦mMKà` TÍû>ÒËÞñ&t7Çdæ´ìŠ?!Ü"꜖»L¢~šQ6ÝzüL®sœ‰å@0í^%q"ö[VÍ´ôçF‹;'Fm¾ŠÜé²y›ÆF“2bk*”(˜ ã*#XŒkx#–C‰½` è 85B*x |ua“•‡ºl•tÁ•]¿¼‘ºVœaG­/ÅIÀq2®"ñä—CÍ­ÓBãÄûv6Û¹¾-l*@^œÔŠ%L&F7–/…‹“ELÜRÓfÐ ` 8”âØ“ùêéoÒ0ˆ#q) Ææ2Ï€#^ìé°?Sn”v®6©îæÀéà)¤âÐmPažT'+SÉäÕt[ôW/8x³ Lû¿+F{x U7‹tOŒÍhyOÅTVŸ˜©É×å„”¬§ü“V¢Íì…;*û¨áJq[üM“CVG}Gt‰¬:µâ–±µýŠ8y¬›0å7é2{À¡E!ó9ÞŠñ\?šðý–ýH‰Ñ{GšlƒO´xµðå4T€…4B³y÷Ôì6˜ßšÌœ­ÆCõ>&o9vžWg\*aMâƒ%BÃ]«4„“f>ö–¼¡\DH§uå~ß(5ÜÄX*µûxuP ù¥Ú/‹êÄ‘ ÌG­Á H@ÒIr‰À<ý >V¢‹%q9Šù‰7úâUõBì ,–’XǼ5OŠ™Óï½)¾Co?$ǵ-è@òîƒ:Ð$T_©ObsúøŽêdeþOëë–ÑÙN±zÞ~Ðü|­ ƒŸTé¨áp&/Ô ãªÆ‘™àT¯SAhö`ü"JS©“û?ÞVô®[ù«€é#`¥ñ'âwrœ%"óܬN¢c+•Ó—(èDe<3Ι­ÿF=> _Ú•RÁrb1#ZšŸÝ¼ù\a”YÑL¥­¶óÎØðÃÆÒ çôCf Üí²Ú_¸Ó”Yõ°çÝ îE²å’Ú|L]8,¤‰õ&¢t^ žÂ³¥{#Ó?ÿGL–Š…ý;( X?èÿáƒ$”É÷5œÉ¸ÅbJßß7 Zjºÿ\4/ Szê‰Û”v=B_n—Sθêî¶_” ®%ç P¤å®~†ôup„î§ÄÞ É­X€âÞBÀ/[œ^I²\ˆÇûs By9»üÇHœÇò ýÁRúÛyäCn8àô'žƒ¤GÎ٩䉬ÄYwôÄ ï”$»ò¤ŠqT'²bN†P–“Þx gTå„á½€æÛ\wª{¹ëðØLm:”™ŽN…‡$úQ‡-w•Ù3*!iŽAZ8‡Ø…œ¾Âû\òW›ON©[¼HDàe‚ ?,‚¬<=Ä/< v_½tÿ»_Èù ï^”sÈ¡b‚Í—¤Ú0²è8JXü6¦©üÿ.ïån5ánG (ÖÀúÈ Gt§ŽJÊ׈úHPSTÃÒ«7K,ÉÝ,¨.'ômtVƒÔwÐöhÍñš`‹møÖv>È@zQztÿ§ð×’%È×gȃ4ô@!2('auÙVÀ+0z´Þ^ÊÊd’hÝÑ…PÕ­¬¾ªq®½”C #/{ë¯ãŸÎ2`þ”òÑkg@Lý}¥‡VVà¬|A=«¦¢ÖUGu~0·Ò24sRmÞ¾Š]iÓ#e’×<ƒVÇ4]ú9=Ä>-/²ýéå _‘³ûÆôÏ ö–ZXm[Oãßü5+[Tš|Ô ×š(ªŒÕþ7F;Î'æ>r”¤ãÞÅ§Ï Vò؇¢rÀÜÞ.7îû‘d_R·@ï´5CÝ8Ùvîä_siÃF/Ä;©Ã¿ƒ÷à3 „%nЈIEåÃ0Î/AüLãÝáÀ8-ðIfƒ–Þ¤O¿ (M*™˜>>}qÊ›p8°­uaØC‹• „<ûk8ÉýT;×®ŸÚò>wSÓ»¹ºöf½2ª&Æ;;î¶NϦg®Á üR%,°J©rO²&´ˆ¥m²Â/¬!HJ:KÀ±Á0•=µB•´“bÊ@(„SAtxÞ`Çü6S¼œ7ÉŽ+&·±GB1¼þ†ú sTdbꔚÌBL×jPeÐØ0•“ MJæ„6,àl9[9£“]à“7ýê~Y»ÿ¦¢Õ>×D¼"#©Åöò,XUÅTˆ«™Øb9I€*-ÒùX®Þbž%$£xúv¡¨ ˆõ¯ù=±*LÚqåe¶&®Fd¸€¹+¦Y`7vžH9©ú¹„~³¢™ÃÎöbõþ¸4G”sF‹åh¸ ‚RöË/ÌÜÞÓCµì~ì?n@£ÈÔt‘Ócm6C ¦“¬,…ÃÑR¶á4‘z?øêßDøåÕ^°ZÞL8—XÙ²K{ü5®Hù6»2*®±¨ËvîCåFlú'ý*Y]SëMïÿå±½*!wêËqÕu_·µ®ÿ‚%Ä’+8՘؂ ÇÑ‰Š‰eSà‘wú§v¸–Räîå¿®‹„bB±âßÝ'‰"¼õñVÊ4ÙIáûéGCÁ¥CêŽY-;óýIs¸®Í‰NÇîºY4è7SÙvC|‹ƒž\ƽÇ[a ôGGf¶å–ZT9-|Ûí-#sÅA·Ùh·úÆI.B3ª€Áy p–Ä6%xèg|*”cñ……)ÁjÅ’è,Ù¹7:Vþ®r)œQcMfóª«x-fg›Eò¬wü|®ƒtl±®õÊȉWÏärÇÿ;íørE^É©qÃo‡˜k 0€­VE “C‰It'^Ÿš/én]’ÒÜZX™²ò€ôyZòJ}Æ>§+ÊH ÚiF‡¸Û¡ãšE(}–èLwU5ð#韌Üo>Ý‹_Y‡þ/«#H~xÖ|$ŠþÊßÙÿP5UgOÁk¦¶¼Ts%€}5ߨvMÀ!¦Š&<Æ`ÂÿÖhH/¥f=#9"z•þïänÅËm’ÜzÿvQ–â‹À’°ö|o¤Í¾3ÃhmçßZn›4[Ôʾ©©Â{„‹0™Ë-Œ ®+¨È¤d2ô›ÛfœêÃÀ ƒ·pÈ× /ÍrL¿u¦%çùrõ_ç}„,dT…P ³EÑe‘{G†&÷9†œ@&Iä—йY‚/£n*Œ9f1FovtÔ$ärÁ^"dïæ8–IÇvJ‚н‡ó‡ŒðTÈ"­£…²ÎŒ>0LÊuÇ¢8Ú£) 6RÚ±Ýìñqлž_=Í„›8(Á)¹Rø3Œg{{ÌvÅÎüL¼\±Ùƒ{ˆV&ÞDý–ÃSö°{RGl8'¾_µ&­‘ÀÜœ¬¤À·CÕ–AUÕäOcRâ|Å3dDÏì¡XCÆÆf=%ÇOIýØó@ì“ñêл®»ã[~o¦ñ…ž…Áô’Ù/·{î2{Á€ŒÓd™lžIÞ°y±˜t+£oÿ$46P?«ÓièI ¤²K½_p’f ápÚç&,æÞk½Ûl{«KS$9ƒ,[w$JÖuÿˆ–ËY¼(00êÞ<„LJ†ÚiÿüMW ¾Q¢vø•Õ;~eýW¨ÝEî¦R7u1ªz‰Ø–—tSäç¿£{0ÂM\Ñ£ÌÆ¥”MÎC&¨í\ªMåó 7á>H¤ ÒQéŠî.iפh;ùˆïêDÌg¶ýø•8³šþéªVvß ûD(Õk”Ê™›Fþé½öÖÎí‘AÃ"={ê¶ ß/›ï??ßœ¥qNfKÄ [Û¢ ¡qÐD5³<"ÓO]ÁórëFMÆpÊ ÞoåAÞÜ]€%eQjõ4²ù°v;üNP ŠéCAúûžÐÈ®äÎUïŒd¹5'¸:z ¬ï—L*ôGÍ!H+¤3#‘ñæf­·CxkVz\áÁ|¤líop‡®ø§iéÖâûU©hD:ÜÓT[µ!Ü"xH 6tüzI×ÿNØ Š ýáÅËÖ?N”N_ñEp—LU<€p4–öÑ)£xèØãKûæT€RY¿š¿É.Ë[îå½üñ,{þk±C±ë(Ì<^iâB´´+a±•‹„ÄÇSüL«Óîþ*SÁqɵï¢@.¥ÅÑ”µì-îÎL;8m¬ÑþÓ7º<³× [~^G̱Ýàn‹<æþ¶?½›ž…™¦Ózs/œx¦ÉÃ.QO£óÇX2sèk` Ì…¿.¹€ÜTõ&¶ì íÜîÚx‰‚¦L«iÝX÷ †eàNåîÚb[‹µŒK¡Æ.:ÐÍo_”¶]Ô–ä"ú$*d¼5_á+¡ÁMa^÷¬š ”=6ôž8Úí§JÄœõBù…hÕüL½|ˆVÇ5»Õ2µ HO|‹_r–ž}n}Ç!Ê˦p¨±=”ÝÎ;Gdß§×a !±Ò»”`íÞNès%ÎÝ8¹Å¯¸ÆÀmÝ"¼ç7ä€{ͬ%ÙìL²^=n_Ýoýݲn–¼¯àžp¸Ü"–1H/9=”&vûôp#®oC(§ ®úüLØ}èÚí )o t˜ jšÆ?bÇ«·£Óx «‰…÷ººo7y&q*ŸÛâg~Ø}öøÚ¾lIý¤K¢A#á…=*Ú|Öbrló˜á¡…JËXÉ…ÏìtWÕ—ãúF]Pb߀:&•xB§%5¿W-F¶_ÒÒ’b\_“¤"^á ¼b]Ò¦3¸¦m`vy^Ð5ÎC6*…ÏŒøZNEݦ¯ŸÓ¡“XÀ˜ånE472ZÛ•³“žÛ{Xý,Fe££üM»ÏÜGôá&úáñ=B èÒhIóEEàY+«¥ù¶âvx;ò«i-$'{^`k=0ªm áõ.R ”Åò;À³„qàŽ3æeBÌVn‹wê`GöÜóØ8OKI~@¿0“wËrM¦ÝžwLPh¶<á®LŽí¨ÅRX;š¾°gÝõ¦ÐL~ÉŸÜÄjsÿÔ©D)8o„BÓ‡—7àg03#*¿Øbîm¾D¥»÷ Gü¿$FvBPy;Ø×/le˜üM¨<@wWÇ+,›|þ÷5>h&êÇH]I1â,Uòô°Ã°Ü¡R0 ‡‰™þ\w$WÌŸ¬¦­Mr¸‹ïš;Aк¡ÿH"8”Œf²?G#›X«ãß6Ò”D­Xü« Ø0›3žI]y&u‹Qéó_õÝ‘Q­cˆÕ¸+—V †J[CSšXÜ…œEÜ4ÂÐäh‹(ì`Ôõ`LÚmRÉÐkJ$²2OL¤{:³¼u7ë^qÚ®ˆsÈb Æ<¨³÷è~Mg‚f®ˆ¡‹ ¬˜z!üL¬ •~Aí]¨P9Õ/èºü,ϯ*ÅM"nBÿ=¬ Ù9É|ÉwšÎ'Ç'W`ø‘ç’àg-òq‘õãxâ§"(ÜOôf„h—«eP ÙŠ¿¬Å.àdÆ ;Rš< L:.Î#øí–YЈƒÄõÌ žŠ¼òKd}ßH1‡©µ|Ö¬¬!5„?ÃÓd˱mt%@cÔãÿÜÅŒD9o2¤žŸî¢lÈKbÒOMˆ£ðÌÉÑäí)QŽ?š3€gŸþ !ö>¦C¿Åb@nÜþò©€üIòš=|“Ú¸›òm%Û×D™úS÷eh„©ÍvÉ¨æÆ›´„_/Èç¾ÜiBö¸Ëº,J›€Í.•±ZJ¨ÿÔ'~_RLÆo€B¬ òc34ÿ oŠjXëw…pº2,¾H÷Ѷm}‡w¤ŽD-3Úz,ô\4‡¶võs<¿ÏIÙªÖêBK<öf ϵkÚ×ÙjýšA…ÐS³f2ÌtNž·™ýĈìþT=×L66“eÜÿ\ó—42â]{džç±ŒK“™µ ½ŸTÜP(hüL«3i(Õ¹ýeU5]çɧĬš†hk/S¶Žae¼šðs>—öì íçX—:wö=ËùH›7®é)",±º‰R¢Q°åøÆLàö°šðÿT²1ÚýþB¸ÉßsÊܪe¼-AƒÂ[ UÂ@EÃU¡3å,Þ4m£—¡ºúŰ³ãMéëÅÞ¡¢ ‹pÈ÷(þö!åì(Üßø,ÄBùV€vƒwù“nìåf›†‰ßi´ý ÈHrÕû­è…§™ñ(íƒåHjHQ$H«f±¤ˆ’lñȹ1 üM*ûâ¶na…NzSoÇL7V "»ó†^µf3a«Çj™L7¨Ap)@@šFl!ù¢i ¯(ZÔèñùâdå÷R­¤*‚0,ªŠ1«#AI›àËT½1>㓇5<ð~€ðEþжþÝšñ‹0ÊÇ›¼¶+óþ¯‰ÙüÜÿ_7?{°/YZO¢|H%ÃÔŠâšQpµËÚ­¸”3ÖüIƒ =™*zHa¿ÔFWSpa—6BWuÀ’–¾X`Æš–õ¿—à+pÊMË_NDÑE{­æ „Dp+Å,ÂAÌæ…žì—êÈN²ëøp'5ãHÍðŠg„ÖîÑJ=1/·¿ò› ÄÇ""1¾`DHœ©*F&bÂh96³öp¶,mËÀ<Î77ÒÙà@Î ˜ø»½%ÝÓQg7ž’û;qW(­åž#+[Ÿ¤ÊŒç6¿PêÙZ,¸BÖ$ò¨L doÉéÂãN4I& êè×´u½ü|§Ÿ‹iîœå[éž½o ` dÓ§E‘vÔÊ•ŠI+g[ðŸñˆcZ š…‘c)Ž{÷Ò—ï•ãÞ[íñ§wTP²0?(þÆz &Ì>8œ‘î{€MÌðG©Ý.éŒ7«£ŸÏ¥lYøTÜd'×µtŒ‰³%ã0ö³-$û,ÞY‡/Y%2ÞPôœ3ï¥'b­ÕócP¾° !^ðÂ{´rÿjÈ„Á2]t@«cI®RÊaêsÁÕL=µý¬Ê%ªkGb¿q®7 2û`™Lò\ëºhtÜŠ®çgd$—4’Œh-?ø*n½/fz¼­,°Œùq?“V£Üôœk|š ßV.þ¢‘ÚéÁáqq¿Ù·R8Õ®ð}ZA JÙEùÖ1WÂ{ý»òâ)Àóȃ ‚ÅÈTzeÖ« "miˆûÈwf„ÅA¾shq³²ªÿñŽ^º*¼vä$ž·Ù©‰#¯$‹»eïP…Y³TȪ0Åé³Lh±>ê0TËlf·%5Š5ÀÚ‹Õ²ñiŸÓüX>&½rmåC̸ЦJOžã vrߤ¼lDõ¸:–Ìí2š9ÜN‘vnã±=¯_À/¾øêH¾Åñ䎇Qø0Pe(‹ajn˜± œr/€§ÚåͽÖlñj¦ÏVhKŸyªSk6JÓ5hZôФ§‚¸¬h¹$™Ø‘å먺¤ 䩤͉ÜÈÛµqª¹šR\s _¢Ì}tM6XÉc%@¬"}{63oÎ+³-¢”Üaõ©Uóž¼"Õr§å{«ï§ì»2”ÿ ¹à{Nþ í­†êô/4rëÒÒiÿ$–!EŽ 4ê"0…¥¥P¥8Öˆ7yEYüL¨¿°Ygã%3ž¥“îá¬4ZU0ï@ô³>œ1Ùlæ—©–8»Ä" X!™>»‚Ÿ@·(6²ÚÅ«xfžïâ’vx†ÿåë˜ø’3¶Œ˜@]Or›^qáµÔ'$×`8QŽ€!Ð#ÔFhërh“]õ„SÚäÇÌè3ä^MKeZ"Цš~QñŸÝkß’£"Ðä(€¦Rh>lº3Ñ5ç¸õ2[ÇWÌŸPðE!|(ªû¼a`,øf¥”3@B0‰(¥üGAÈ`ãe¤Lü›¹'ÿ²Î5̧k¬¥Ÿa¹€Ð=­ÑJå”T©&wÒóÍ­\!`þ+ù0P#ê²€¾WØ´J¨j)+n³qM. ȳÂüÌ-aÛd¾ÂAÏX%‹t‚˜u#YŽI·¹˜ÅRtä«Õ.’°ƒ5dgŒc cÖþêXo(Ó6‚?Âüµ×pÒòßÖÅÂüïuÅø «/± ¹¯\ÛòŠt¿Ö‚ëŒèŽÆÈ/›;]zi>ø<ÜtÛAtS"¨ZyÒK_!Edr 1än¿Ä B”èÛ]üJ2^øEûJ!Ë?ÁPÓMÐÆKŽ]¥HâñÓlþª ÿ^úª!&5Á°¼²yÁþæÍÙD»©ç¸&cÞXÌ”H3òiK<w¤øW]˜ØQuЍf…ͬÕT½÷ŒC’Ø{”Néý¥n…$Þ°` q•)ЬzÞ;†¸ä9jÙº³E»ÍÈ>/)¾Ïo“ “ßí|3, %Îd¿Wrèt!³8æêb!ѤÆgZ‹MM¶õÙ=-l¿š‹æéJ^˜­îüLÔ9½P’—qkî/".ú›Õš(ïy™{Òòä_ÕƒÌMRŽp»g¦”Åþ[Nijïyqñ(J 2©l›–èL¬d¢±²…r MÝgPçzUá3X–¦Èg‚áx•ŠØÕÚŽ–#wËbä~"ضÑ_MxžùÜû¡,¨' I(ý»ÐiÞϯU£*ì'¼š·ßc -»¼«¹²Tk¼_®ÞYhcú/¸² cö1Ò:ÑÓy8À¿åí¿Í ®-ßq,ßq@åéqÌÒz裪ü›,Ü~<µ¡Úí»þÛÖ|þÇN@ýš[ÇK;ñ3çUå¬ < Á'Æ+‰ovÊÎÎîûŒŽÆ¨Œ4µ·ÕPDF0,¡¼/¦˜ò¨&:´ ¼¤¦ÅN¯£˜Äê Üúàl·¦èýI8ÏÄîœáò5Ê•ÎKP+–†/•8åfOúÜI(ÌUl tOWUF%AXùÔ²(Òj¢{n÷c1êTg´œ¨…—•ž"AA–ûÍüåÜ3ØxCÙ¬¦Å®Ui-é ÍÌ;ègŠ}äô¹r.¾PH2ÿ0]ü|‘Š—R¾ ©!±uŒÁ¦¶é蕇¹Vùßäü0K,J…¨R–±#f¶Ë"…=´yñ‡p#Cj=ôB¸þr- K£›—ÀÏ*uä$±ç :m->(©‡#DÛó®ø¸äíŽÒÞ'û©¸‡gNÚÿ”7™{êø«,ø»6_™‡Øã{ovwcß$Pݶ¸E~¸3^8À,6ç«ì€Së<k+%‹§ÜkNÄ©ìbÃ5“D…ì”ÉsFø4ïÊ9²Ž{¦òkz®Àb\zþrå›Å/¸»6+M+϶'…¤õ7Ü'¶íS/80è"çFªO#Ê΂‚ T•^³*Ñó*ÉKO=ÔáÔÿ74:mààÿ+~Ó sø²a©°»e®æˆíJÄyv­U[‚äñ¾Å›z5jœž ˜HQNP°ë¦í7Ö¬'Õ¬Ííäu»¥3œy«1u¬N¨Ø¤Ï1ì/%··›‹DˆmÊëóÀ.´]É1 wRgÁÉ˳(¦ýïï«ÒŸò*ú.“.2};˜=Ák0QšhÆ“ñÛŠ8Ýž¶ NÑG[¥ôYOýðærYˆ%¢ýOM¢î^ÁAb!üîl±ZDÛTüXжd°Ùh¢¹ðPæVùtø×rn¥Êý •ÓL/´Ýõ Vaò4TlÇ£'ŸâªFC.<©k˜?ö²(¶H¾tìúXƒu›™¼2ãµB¡bñÛˆø®Ô$¾Û÷òñN»ï@–Yóã5-¼RéãA-ù•ÞÌà§_ÆÖ+§¹3Ä8®7цÏôXǬ‰ðyJí¤H¼-í¹½ZÈ` ÌÚSRÁãdÈï_v,ƒÔøs8öv(þì· R!† üçIÇn³6 «ô¦µ¶É46çðü†$á/z¤E4e"A–ð ‡ú†iÍé14íÉ©+Q¯ñ4ìù[þ 6x| gGXÿ¬0ôZObšÏmצÓæðÁ¼‚£¦Æß|KkM]ñÜz¼©1¸Õ¥3¬L”£D¼ÔôoXQÃ_ýŠ˜YÞ*DMÒð¹FÞÜ›P%Z*5¦ö˜è‰³¨ãVàι¶ 8X•ýîîd ;@;9)öÅl”ÿ¿ômvî宅'$WH›(Pä +È™#ò/B‰ó43~šqÛ{ïè…ðd(ƒµÀüNjŒñ4yožÂ˜Ø‡ŽÖíщºóÔøÏØv†~ã\&W¯úHüÅSF.©ºþ«a Ýd‹ÖbDÏ£%dgøRC;ÍRÁh,Ì=Õ\ýßF lJs¾9‘^Ú{ÏÙ%³ŽÔ[ øÙQ$Í´‰ðçV»äÂDÚ÷’fáû@ð?Žö+Ê\Q;øàP,MÓj¢Ý!¯É%íÁôÚ±õm«ã”„¹Ã‰Þ]wDñT¯R(æµÉ«³ C£çPÕ Ãö44KeôÓA%ŸÄƒ s1Aê‘æüJUÌ·Üß ]\ÓÝ5¬ÅKXmLŠåW-ßJÚÇ:˜tT­Ös±Ë_Ük|wÔäbçfƒíœ ½‡9ÛZ”CÏ(Ñóú®#äÿت-Ø…ív}°^ò:&xMˆI¨0Uk£ïJy%û:¾fn2JCQ³Å ‡«cT9ø–.¨ØÌ9†Ñ‡ˆLg4²ºäA^³Ñk‹âLùsÊà;@IüLŸ3ÇžÛúŠÝ¨0?‰lŠxègƒYÉG*ØRbôÕ‚ºX67jÛù»ò¼øÄÆ#Ò²õÁ%üM2‰%*b…ûh|+»¢D–gX."Ø–]i–ä.X³_Çÿ6tc&FÎÇĶ-ÃÖüç–¸üf|ÎCŸãÝí_Ð2|“ûXãgç¸SÎ÷‡nÄþ®™Or¸:ˆÏÓ±õ]0Oâj&ÿH`ë¬ß)åÉÉ ý/ªƒL8˜l¯²4©•Yx¶%f–­SÛ1ð=6Mö„áÔ/£ë¬ó a¾(>ÒK¢;ULAì§6˜ÚK\ÿˆ¼¯¾Giƒµeëüã~ØØþ99}œÐA<±2­E=Ô?N X2ü.iŠyW5âóºýð$ùmâªéH<ÚpmÍi³Kz îdßE7CtÃe"âe¥$­§çdAÙÜ¿k†ÚþÕwd*û…'Èä2ÓVŠ[ÐÙä•9“ãhy h¾_ÈN Êxr¹þ“yz€Y],|w¡­w)ûÿQýú †–| †¬"TÒþuLAíþþ™û®›ðz>ò¾ñ¦(W€@•–¹‰»äW+N[UsJà!K*°ï¸‚‘D˜8‡Tåï,º|Ôš`Y¦úP;+€Eݡۃ_Sˆ$F€–îDÐÉ6t‰'Ž¯Ù¿ü}[äkyÍ,MÈžmE ª{8;3{Jbñ>°í·GîÙ «ìÉ1µwD2.ÕüêöîŠUæô±w¬‚fÄF=ñ[šÐSWæí<Ód ¥ô0ågЛT•m¥Á—— Ç šŸol r6Û!‡ÆÂÜ]7êP»ƒÇ Uì˜;‚¤í_ú2hŒ«¸‚¼-ݱxzÃ{wÖš˜ÿ¾€ZAÿË&°m-j [ýÆ‘hÅ(â#ÅÓz(mXf·QmÈèñO12ì³h}E\£+yǶRªèÔ›]‹޳¡ãH!±Î0ÈÙâöD©¾êÄN³zËÞÁ9¢¤;j‰Á¬*­ÿ®Òµ¨DWpš…Úè¡ý}a® °iCïÅöwò”©•|ŽUÑômôeˆ¥s WµÜMδ“&þèžÉ w¬ŠÀYÌãl²ý6¢•+Ÿ-Êbz+Fäú¢Qœõwÿ­RR×Y5ÏeÄŸüOÍJ»Rœ ÆœEa÷¯“б6´bOggS€ GýÄ nb šŠ&9ÚÜãÿXÔÕÕßåâÿÌÕßáØÓØÿÕÑÒÕÞÛÖÿ´õìéîìçîìêëêøõÿ­Ú×ÔÒÒÔÿ±ÿÙÖÐüMWËy½!*ð^[ÞDª’~3‡ƒ¯“çÊ¢XÇ‘„˜cê/Ä~}Ä/]Žv–Ýš¿ Üݾ“¼Ù –À DãÚmøÒxÏP1(#Aì€e9NU¼½`3,Ʀ:hÓ¬ý+Bì:Ââ` Îΰ 4£jù¾Q/ <=`{º=GÚ?§q¸×£·õRª)€yÆ_åS©ÓB‡w7ghåé¦T`Knšï~J{œ$¢,¾äï˰"ÁÉ Ñò EîÈ}Þ»æ.æjƒIoò°Šä<êüIÞ ­ñ‚îD‘Å—:sÛ~=õãô὚ñª» ¾²q8ØcPOMgž®ª84XuârŒ›Ë#üõÝ£¸„U»n“Æ¢C‚àÓÖóŠñ|‰-(Œ¶ÒQ\p½ø(;Vwñ²«Y‰sÎ_}m ÇA‚D¥W^·l*}ôzë!zy@Õón·a“[_Ne”m}™Çˆ»&(Çå´ž5ب8{CÞ ~ÑÐ4A^ `I£Z‘› )Ñ7&J‘ !~˜]ÔªKï,›sŸyVëhªu³*üJ4]5ÉUTå*ár¬žu¨@µ¯ á‰0³bª. ݳ1¤Ã Ô’ó»Š!,ç”g¡È~C´¨ÆÎñE­Þÿfìî‰=̽ç&< «¥ñ°ŠY µ&Ì`!¼g%JÁ|Õä0Âñ4ü¦„õÞZ…{Ò,!Ið^Ò†a¢yÀuÛ‹S?Â¥éz49â3‹½zÒRæõ¥žfl¢˜áVWì3ÈË»®¬ÿÞ’õ«ÿ\5I¡N¼žYv-9÷„’D}S—Ù´ßûëŸÎ9V•Q^Ðâ ãÕ\•¶ªòü|¨šÔ:.{>:uFË!O¥ûÓi5 ?Ôf€JkD»ßNl¿x#dCØo KšdNWpL£Zþ.kZ[Åæm}woIíÔ~Wû¬ÆBÒíjö¼xÌL¤÷þ–|obù.ûÎ&É„ª4•+j¢±QJŽ„à‘f×¼i7ôžÖö„SãÂßÃÛ›ßEÊÈüž´‹0Ù©È„!6VöO–:üúC ÂÿÈûöi #á†¯Ê I#€(Uó²K„0¬ÐYðˆóëë¥J“ ˜¡*=ôVMéÃð@/4æYiHë¾ì_õ­öš´¼ÈçöÙ Ÿ íy{K‡ þ×uMH:ò•®rícoðÈåHý¿˜MØõ”ïAÄÛKín­ä±sºþ˺^e.’»#¢$ÿ–®"„z°‹yUM¯hzhROïoŸñ2—–L÷dÔ´gøî¬ÖüiKüXÌÛvYž@±:dè›Y;V;ûQ¶¥T³iUÿxvÜ'¤F¶X¬mÉ'hÕ:p™£–î;mVïÿ/NæO øéK4ÂES¸%,ãü´ÒÒ§ /ª«“ï°¶S£¾}Í[³Ä+küv9SÑ6Žc-1¨p›PµÿÙÇo‹LãÉ~+x\)9™(ÃVišÌB"wã¥jSʮ⋻Þa¯ë™ë6"ÎÒ€Öë/nÞ„(øÄœÔÊí#f”Aoу±½.¿ÌäâÓmŸýüL¨Ì£™jgQ#ÅÂóÂü.˜<7à­×ò·ð|[V KThSU‰y•±í‰‡ ¯åþ¯Œ¤.ÜüOà)$oc…öêË®FAÔgüÖ³vè»%\5„Íè¢Â=7ªŽ2+IÀŒD‘Ç»–YúCVãaëeȰñ>ìQ¡aþÞ/çæÅñ9ǨI‰ënQrš…‚uöc3Ò‘+5öäB–¹Ÿxáë2âÊÓœ~%­¯öõKc_‘­³Oég/ý­¦ýäžd¢«eùÙ+³ß¿‚·muümÕ«ƒr½IäuD–œHo8\’Þ¸Q +8¸É\¸4}äê!ÀA5ALMåiñŸ;<›GÜæ·yÕUöë1C–;Ü&¢ûLêÛB!Îÿ3kØhU[ôÇŸ,Ç@ªÓý´ý!On;E¿Ð“Aý,eBúY}hÑ— J(ì…ü#€?Cs0Cí烫1ÒçP—ˆÒøÍÔ—£#,‹£œÜò§ˆTÊM64ú·é›Ç^ˆW´‚-ûDQ‹ñÆÝAæËAZšÒq0°ßœp^Çj‘Üà ^õ©½Ì»h†£ÊŽ&¹;»{%%¬‚3l¦Tãúx6%øv¦÷…ÓCÒº^â=DcáHˆ›_9-_ûÙ?E˜GÄMóí’Ö©¤&\{šü®‘q!CŸQÓ×þo·¶ÞoBSÄ—H2È„p÷Ò•¤Žh§¡ô¤iâ°‰3‘ö0ø‹%ÛÞÚˆ_ ÓDål¹Š¨W3£µ4<È_ɦú™eDïs† kÆ3Ô/™±Zí8^îœÈ1(° È¿Œ~ Ÿ*`X÷ +è"Èw•¼œŠ*þšFðzµ}5Ýx8´H#C#TRĝިkqæ~Ѷ}§%èyù ïpHã%û±a[@k jþ²Y¨D{Ê@ á÷””Õß>àá®y9€`ŽÕá"XTÔl Tœ¥H$G¸½_MÊæ! áñ©ûżàY¢Û«{îw—¯¤bz2ˆÊ •zx%kfýÒê3Ê„»mSË`P›Ê†ZS50k{1zíˆ;úJ(Ÿââ¾z9þ†Nëá¼9ð@¼&ò.é­õ¯Ogv÷¥VUK :Kk^$µÃ>•6+ˆ·Fži±ðÈÀ¹ˆ¾izEª-›o)w¨ÊŸç­5m¨r÷ùå›ÌU3°SÒïÂ?8°ë· UÏÉhžô‘ÿoj†©5KÙzÎçàãtÆá—9sŽæ¬(n Úü†oW^ÚLs7¡ÖfÚY&ýÇëÍŽ(Uéñ#­&#:f…Ÿ:,¤Ð7RI¢1úâlÙ~N« Ó+˲‡^ÓñžzAª.¤á“˜åž†2º¨ÔôÌÉ9üu”_»xøæÄ»²ÆpbHÐ}Ãa³¨£@ê%-Ê$Ñ®^dÕû»~à´ÃÀU3U·áwæ\Ù ®w𶝍æ¥"ŽDÊ9MÝë]'êsÿ¸¼: ­±(ÞÜ¢GÍ2ÜJ"—&“Í’Rീ¶¥ˆ]N„'žSÕ;«þ sÁü›·ðŽẎµÖ®ˆÉhhRþV„ªŸb€b©ǺZ0[t‰îÏAÄ$QÉw†(÷¬îx\°Þ#þœGŽ3ŒÃÒñA0‘scú4Ê«@Vʦ¶È<(X³Çöé°ùœ×ó·«×ãE*ú ¬ÄO|¿ i"sˆÕ>2º¸Ø•?qq+]äwÜdßo¦G¦¥B¹ì•(ª#ô·´®À >Fmçaí» íZI>u9îÌG …k³UG9[)A´Ìzlt´\°“ßÎä á”tM×kŸümÕ¥? Q‚#5âCLÊqõ,šzsSìÓ:v³ï]9Ãú2»¡ï!ª«I§Z¢£Ô'kwu0á1êà†¢-rÛîTnÔ!sYò$»gåM ljýU-RÀö’[«d7ÕGWEþãld÷Åóòë³íÈ¿ rÙ…™©úV”^xÀÿŠ\HIˆõ ¡}ôâ’&%9—Zky˜/gAR¬éx4 Žƒ‚ïE¢¤Ãžî¶À¼BtjW@ŽYJºÒ1†•LˆÍgè „Çh­ŽÁFõB5Ùø‘2ü°ØØå¸Õ“žÎjG¾¼+w€ïþ€ËÛø‘-¹! ”•îU·:»­aÓÞ©?…ñ4×:ŽöŽ¥²6;¨Ôñsàµs;m@šžŠšÔƒ4R”•]…ü¼JŸ¥UJd"ˆåŠåA‰‡ë¿°s‘!…MèÔBÊ<0Ý=7ÁNý´*‡0 ²Í_×-Ÿ‹_+²Ÿ†•€WÌÄ¥ð áÀÅÝ$ÐsÄwP@chŠbO‰LJ'hæ×Rgºˆº ã2´ KS„b³aT‚ü›¸øT;7'¥CµmfþÃP;ÿ—ÐåÆß±)àåYÇÃÀj£Ç-k²ø‰kÞužpŸÀšÕªrΩp•Þÿðvlɉt»[Ň º)ÉHçQçÃzèÆÊPZ³A 3G=½e¤A_ò”JÉýxPP+…:JhjȨlÎ%‹Ð%ˆ3È@‰J­ÉT«ä¾¡±2¨‚ÃDYãžFýl‚:ìc“¯»£>~ä54«<ø¡Œ—9Ó$ÀP¾>—óÃÒÒr/Ûû¸¾_#H O?¤Ç”_ü®É UT®ˆ_\Ìü„š_s§ò8`°-žˆK8?€µ9áÙ?䃬àúK8ó]®)—[`b3vðáicàlõ”XÞ5Êøã¯Û¨p6œÌxf½´3y1 D†‡Ç0©¦ª;LÊq´AÛYzõª>ƒäÄʸãäšVÏŽýr.ä‹)[ºS,h(ê^7G°ô÷I£ÈgG9¶…¦QÈÒ¿@¥ŸŒC}@ÙºÏüUqŸYOƒ©då¼¥­D~r»Ú%] Þ-Á;anƒü|‹Ûa_# ͗;µwÝGÿ=p=õ‘«9“²zs_R÷•¯«³6Þ 'L=kÕ‡‚Ê|¤z;¬¯Ž^U'è´eà0aÏQ¼AùKò½¼S‘ólEÝåä}6Ò¡¡A f6mxdîîœÏ×Y[Sû`:‰Êzr+t<] úþŠ W—º•¢C‘ðÅ ¹Maµß¾s?ÒMk«NE¾èì®Hlo7c‰ ú¿«ÜDFí`W˜7µ^õ0¯–%é°»vƒuf‹uƒ©û¯ûwO‡U$|3–ÎUÑ´^KGüqCwï;l¾¹¾• h¨wÕ‘w‡rZ)…™Ý㯮ƒH0ÏKtæë37?²ÀØ'[*vûíòîN¤)Ü"PsDn~¹udc³¨äÝ⛃ìH;Öew, Vר8Ç4€Ç üóõŒW4m¶Å¹nÀ²ë wraBã–y#€Oý-²Ý¯{a°¶ü¦¥}q;YÈ óUKÀŸõ‘iø*F°¥í©˜GÕ‡¸õWY+OÙ2æºÕį—õ6&Øqâ~ìÞö—µ–Rf2½Òécés¥%M_vn¨RZpLPîbph:Nk\Ü«1ãA*ÖVj*~¤üIÝÁÜ]JŽ14iŒJeb»¶ÌÕP‰¶cPxºÖ ¼"óÎÐÖ†ÂO`=ãò|ÊÑF“mÊhð9î*š¼NÊt:7ô½&±ÌM0g|Â<CXOC¸L^fGɵMÓ’ÝËR}3ßkW:= £Ù{…ÑÚ†zÎewªÓmödX'y¨ã éŽn/QÔµ&×RKú—VöÕ«ç—è§®›Ÿõ/ÔbM?q«t쵺Ê×B²<¯x;-tîrÚ^I˜Š/@Ê>iéüIrâ@piˆ®Ï\²sŒ³Ó]'»ˆÒÑŪñ–qØv¶žF«c׋‰)ô>Y ÷ƒS}­ÞæÞbþ&Д#%û&–4T BÜ󔎡\T×ÌCÞ:Ó*ñ£Œ¯²àñG[Þ°½iY¬œ’e"Ai$$ |2 ™š^ëóR‰–hàßå’} YuQñÍOz`4|W0_vÀ¸|Ž¢I˱²Q÷ôMÔ€Õ‡6µ ° À+œÔq‚FÇÊ/gQ…× ÿ?äÙ-FÞw\;^cß~ãgœ:âüIR3JEÓÿ~f™Tß·õü@•QTßK üòƒ‰2ì ý>L`hRœ"µ=êk9Ëwe ,OL½¸F泚ö1v¯‡Fª0î+Õô!ñÀ&€è:|h€S/\²çŸ4—*ž…ÔèêâK´ù }’¾ð7=òWÉðÔÿÙ~(ú òIûáEQ˜<…¡sý]-‰ÊQuM>NàPB‰!ÈqW¸xè®Ë)OSÕ5–%s퉌àgÁð´Ô ê+.[ê?²Ž­|«XB*†îD£¬ÚÜÍñÍÌ)]süM/$æ# zžyËùöÑþÌ«D!Uηí@L¸µç"ªàªÃW÷•Q««Ï¬ ü¤Ë‹Yh¼ù6CÜUç©ñȪ5]bv ßts@O¢]5}4—Ï\ûÞºi“¬³Ë xæòd2E}~êר§“ø¦)ïò: ë×¥Çv1+=Wkk˜´HwÉŒf2³Ê¸3+ Ê’fÒ¬q¬·²d "b×+¡»(‘”ˆ4 ‰@ç%0eå_ñÎH&Œ!Ùû«fi)ˆmþ]8±áãé±·H²ïëlÕüJ8Fâ³$຤0ÀÇn:! TÎÜ}J€­(ž?ÅŠ8W=ú¢>Ýó™ΩéÇZkX{‰¨ 0ÀîYh9m²@äÕ· «xH\\¼váIé›–-C¹Î€s øx§‰07“Ýé”m²Ž·8Ng¸1Êõ€a‹«·pÄÔ .}Ù–¶ ›<×Y„ªm—<¨H OÅ  %ËZ·™ÅÀ¨8@+Ж·—ëjuT è/q¥žlM=k†¯ gûOSßjõNhà¶í°Ž~Npù™ã1ü|®thTät»¦xX¯í.ïŒÆØèÞqý6G¿ ÊMã‘>ª ÛåO¦G/düaz¥ÆÐwòq9s“Eøb%n‰ ðs‡ÂºmŒ'°³Ÿ-l÷ÈŸJ ¢)˜õã{5äû¶ ¤ÁÒQžÁTˆþ†‹;wqÐp,ÙŸý «(6ü†tÿë¦ 7Õ;9p…+OŒû‘–zºFœ™_•IÖ}¼Å,nüÅ);~þ,©oå!`h§ïÔŽ”†ãugÓXÊ:T¶Å?¨‚ö…’…›×Jct»*hfsÁ1ZáÛŽ¯»ýkoøÖÜ€œ>³N&ã1­Ø—ÆÀÓW—1.]ðgÞÉÜnpÞ5ZhþäBKÏþ7z³»¼ÃŸsóÁlU¬÷fÖÉ8ëC9½Ž‹Ðܬý…rø?¹´°ç>èGh¾ÌFîC ž¡rGCªÐïø†Ý9âjC)ÎŒ‹x:gqñ'ùa—›w¯j‡(ȼ-K¤ÆáF)aSfr?ûj<ú«oþæQk’“˜N–æ Zy唾&Û’Áâ{gEÇo1öR7%ÑÒØw)WÁ¡#k˜]ØàËòÓã£]\à°ó‚;r0¿aÜwïÐü“œgM¨è¢:"3«ÁMÄFržê¯¯<‹ø¦u†²™íiï<ØÄêÄÈ¥üÛ¸òŸ rNKC ïPM­£yýHkU0âdíÔMxDef?ìŸÏäZ¸N¾Ùv¹c¾o¾<™ñdj´³X®<Ì–à+ô–3o?û×é9›‹ä'|² ˆéƒ§ó1‘Ìm|xQ¤‡$p2H¿kÍC±ÄňÁÀŸªÄ¤f¿Æ¦n¦{k1ºöï™<¨Ö• Òiu³›B!Ðu‘ oá1¶*ðrÒ¦<")ãZTÔ/&;y³º÷BxáäkÜ[üé‰àºö“ÂÕ÷Õ·zËNAÒ|rîQˆëO“Ãl ’>ß›H¹VüMYíÃÚì-ñ°_òͶž>qœ LCì ¥‚?5Ò0‰¶—µØñT“ñ+.˜è„ºMÚ*œî_"#ë;%AI>Ç; uwJ–ÚL”Ý ]ã8 aÌGðc¦Ï/–±€\»†nO¼¶‡ ¤U*¾Ürtcbîw®+¡§¨B£h½½—á–#8@UköPÈô÷ädôÜ vo [L݆¹Ç—ï ¤KËG@ø=;s?uµaLx‡«EÀðoñ×íÒ¼ÀŒvßk'Û9ƒOÛ ’Àôx­KêƒÉa>x­ÈüKr0C+%0S‹™¤£Ó"‘æi*×ø‰¿(xŽîÆ;Ú›+ú®âD»è@Jø) œþFM-k® Y%EÚŠ ìs>‘™T_Ã/ëçN;“[âö¦xšÂç‹Ñ˜¾œ¾&EÏ[fÐA;„‡…Ä>=_<ßíÔĬ5Ñé!`Ò´ø$ÔžDå\bp’w\˜ô1„bu¾¯¶ úi2‰€u¼b [´YœöâY¤SGø® Rš >¤EÓ¡˜s¼âÈPˆ‰O²A¹LöY0ú§«p·ã?@à#ß×3RKNÎôù£E _÷[&½\)üL¾ îdü™5_ñ×qPD‘±8gþቭm¡œ-¥ ÌÓ¾Fm†+¹‘W1þämÄÂx¥ O%Œ°×´ÿU©JW݈“Zã Î3bŸ¼×ÏÁä¾Ð›GOA½€ìø·ró ?¨gT¢¥BϵîæŠšcUºü…„Å?.v.U! tæÈ®çöG…‹i܇„á(©|©H‘»8Óƒ¾˜‡PIëŸÊ*zzÒ\qÈèÆšbcÌ(³¾/¢ZZØ^c)ˉäÈ´¢Èez?@Vt^p!OïáÔµ…n;àY&å5üMÅ»q]º”ò¤–  _¿úZ¨XˆJ‡Î–ïèfc¢µO£ÚyÒ&SN°. Èà8•×;';žA|¼Íp¢ ÑfKn¯Rõ©Ÿ$Ÿ ¡†*¢#ÏÞwYhliNp![æÂêEž¶px¾×š4Újx§x¡Œ1ó<Õõ—±ùw•q5³?A¤cÃ€Øøm ªˆ¨xsM€4ò: !ÑSó‰îr¦eáW õ†Ë»!1žoW/ê^Ô,àù¨¥øDK¡@6ºªõóXùAÔ9@Ú,˜b£Dï"Nå0H=ÛKj¶ âi›Ù@‹üL¨ˆôޤøÐß2¶2— Å?Ù!0Ï}Ç✄ü¯F+ââE#š&ÚEÏݲØ‘vs”zû‘sÊÂI™‡ÅÊû”‹­…áú¤fÇlNב wñåM‚`‰ÌÇ:æFë£ÿв/¨FÎL4øðÆùQ×(ô:#UûL³†¨ûqø¸F)TÅà&ôhÔ ®üz°/˜Æþ´BàØ¯SgÎûkC„â¢_ É,AàG<ÃÀbý†ÎqÈö ¸ÿhw?hÅÕn">Z[%Ø!d;ÊýdÆ[‚ºÌëf»¶?XÌ]dBÏíöV½‘¾#ï$,ê§üMmHp5jlýÛnîͳá•NšŠ€Á£€ùÜB¥ßG°§ ŲFÄGWJiÞ¯üïg-× &íK1¿ŽÎfÂ>:ynþ«Bst¨Pÿ6O8Ç•·—‚©ùˆj£ÐžLuCüI^óõñ6ò¸±0#$HÒü·=§1°ÿŸ» 4Wm+š¾}À2¿¡:{Qÿ ÂßP 1‰—â_ |ƒ‘ŽÌ…c`íEKË/é4b{‘³ž9{XóSËÛqwzÝ;¡¦æwælÀÒNä4Nd½­áM?BÐÀ“Ë\w£¤%å%®¸ rp•º¹+ù¹ô 5Ÿ%”fóZz›1r á oQçXÅó} }« q9'×9YJÐÍ{J`eMѶ‘AïwÀª7(<Ël?ÿ„Ö[•€‡–@Ü7…×ÜÊâü±1HDÝø.lèBá¬È¦Ë3ð.Qn@=’"w8÷ÄŽÅ«ãw’HHs¹n6š¸Á†$ëHÏ­š>èQDn,{?Ñ)€‰j)íŒI&ýn´*àeèz|„ìÄhܼÏ1Ž!6óQ^‘u?¡c¼†aÒÂêPQ„ÙïâäÃê4þ¾î)s8º¼¨çù|â§ùâÆÍÛ‹ªáŠádíFßh¡ 1Ýò¤IËJJË›è¯}üJQ϶ÌÓ/¢ÝY¨oI‘ý +¬l¶x·Ô“8 =|NÚ @#uýž[Q`DùwsÁ^…’õÁaHYùƒsm™¬|Ãv$ÍËuH¨ãI‰4{$OeÎp+Ð9†‰±Áèî§$N-™Öà|°iÙÅAªøÎ–C –ˆ[U“$ØbüØÌGR\ÉI6K±§ë•Gu£­¢“F98„1ÄHñ$¾_ú{‹UŠPÛyòdž,1·Ý`Eä¼¢ÁšL‹.Ô’Á÷§‘ß{³Ÿ[ˆ÷„‚ò‡¿t$&‰ÂùÒ(º F¥‚Њ~#£@¹õ²»îü]‘šmK1ŒsåƒÌÔUè ÂWH®:Ns\î¢{ADµJy]² KŽË¨ô:Å?óm,¤ÿlÃ^f%9/­ƒW¸£(œ8®í0—æ.iæË{{âg-cï\åãåz.·Ð¶ÎXˆ p¯+ie>ɬ̕²’z$z ø- ¤ÂñGàå¾— =Y‹ŠÍÜ›]£“»äÿVDàÉåý¨¤_øçT@¦ß«¦œ ¾æ·u|[e6 70fì/Óù«üÓöÐt;Ü ™ZT.üJUÔ3h{t¼ü!’Û’MÂý-tµüÙ ßx¤o`ÀÌ"Ç6»J–½Šv¢ûüχÀ`g̤ø@‰[î>l¹ðÑ™‰ô Z@PûBB­ã@öY¥òïƒÎÅóú 惟‰b5‘¹GGâEÚT’üj]·Ü&ÈO‡O^#²®¦2YÕí,šséíi­aóHÚ„ž?Õ¿ûvš“é)Ÿ ~HNç+ZŠÌfÍEò°2øÕ4h ŸZauï¢sKswthcÚÀ1dÎ#4ñßÚ  |â™ùA¡ë²üMm=üÚm“âeع@Ó¯Ç{”O`f Gт߱à#Ý~ ØÓÖ ƒ!/ˆ<ç8ÈÞb«å˜k>¥å—9-뿹»A]‡c uϘí'FHn"Pº¾Ic ¥nŒ.ñôWŠ$!Ë@xBGm¸0…8׉]Ùîì©û3ÙÆÇè°›%ÓîG²ùR‘Ö >õYY5ë×߯!g$Æ~•r,ÿlYCC Šå§—¸ôÜõY:Ú¤Woó·®Ð yêÝ ¨åvR8ö-‰@r» SüM랈¨ß9ÚÓy94ü„%œß}­AÊš²B†õ½Ì€Þ/¾u ° Ì•½:WBH¨.<# Îhž Žãð¾ó²k:Ó "Ò†5 óò.,»ühÞ‰M=À÷Æd‹jõl(Ú°;?¢%kTœãÍ=–É)—½ Õ¿ÑTË£+L»B„C£D/=ÆÐ^µ™EГú)w?Ü˼!s†o…Ñ#o{Õ”€Ô1Ñ»g®â¯™´M z'âûh6×í±úÙbG|õq e°€?þÒ ÍÉüLótžØ1¾ãq˜nT±uO¾V”alå=òu¡ƒÐ]Y=¹~Ù8ÇL«²â¸D3 ÝrDõ)ƒþ&chR Ac=WÃÛ‰¢“P gÂ5žçd!YÝê„¢­m("ÜÕ÷˯é[vRûº¨LèvV?xœ;J£œÉ|3̯\mk¨}!m€=yF>PrÍÌÍœJkK»h]ˆÛ ‡}ñ>X”ùp±dÃè91»ûRà ׌¥¬ðäëݪê1á°!Ì&dæ÷ÏZ2Œß¨Tϱ—„ÿCüL«]’í3ñ!©œ1$vΤħÀ…Ù‰˜"Å3Š®„uê³ ¯Uæ–ß² žîÙ°À®ž”u­*jÙÖ«†¿PXó›õwüò­,·z•¤@?Ù|jÍEQÝœëC‚S!9-š¬&ë©j©?´–3YÜűGA?aáÿÒûÞÏéòI-S%ýC;5[[n÷KzUÑ…Õó¦I8üÒ £8Dý‘Íè9ÜyƪôÒÿβyÆ»qÃÇ,I7I\Ò-·Ru­N'#6üLÜe=ÃukäKžˆ2aÔK\6ÿ¹kZ®ÐFuT¨ÇD˜hqU­'&òpøøì!&Êu¹~Erè0”®ÎWœÙehÔ½þ"ÏLF…ªÑ¤/^ ëÂH}ý›æ˜ (ÓâÒAî¦yÙ´_?¡QH°åyüSµ||Tx&âMBÒ÷®xA@œI,*Bùʲ» ^ úVý=è‚G4›åt7ÏøüËÄ3S‹ý÷›MÁa ÷ñу‡o^§„öð)?œ4NJü|®âùÙ*e>*Xa´+ƒŒÓP‰ÂÁcù“ ë_¥»³ÙïßHÔ$Ú@b6ØUmW0"m3¸úNôÜÎzš#¹_ý‡5ghÇì´rÒp¿¡<ýû4©±tíœäÓlQDÄgZÝšÅË%ç»äBÒªþ¬ iT ZÛ{ÊzaÉÁCf®°ðÀô‡ 6}¤Ukjße˜NfÜ?!•Ûº¦/^“˦¶N}ûZ”®¸'T”<×LH–˜^ä°;*¢Õýȯs<Žho¨­¹R£ŒH 2AszòÇy¯jûÅà3¢µÿ9%ŽÍqØâçÆã I{œ9Jؾy0VvAÈ-ˆUv¥Ï¹æÔœ4ŸÛ»¿0¸D9žÀ*è7´Iµ‡‰ñ3$ÏjOû7Kwj½ž„¿)=¬;ÀH§5ò9àÒD1ÉAª‰¾\Ó•4„'÷AU&4èx=m—ð;¼Â½€ŠÄÛãHèÈ ÷o>)ƒÞÿ°+7ôþC)·ËÑfs¡ÁD±òíÝò"ùþÃǨ1tÿ¿F–a^D¨%+§yqÉ¥Wf÷änJü|®$žÃ.1keÆqçf½A í·a!õhc“vƒI×9ÂêT½ß÷»@ 5¶À4ötÝ[8Ðñ×U™ ¨Dy{Ô¾!¼.»Àu¦IY±ãŸû<Ì`ÚöÆÖœÙà ÇüùœfO·ûØŠ 4'½Ì§*V|Jõw£þ:6xDØE”¡[IbÔ߇)´x@{4ÿl4ªnĹ é¹÷Á8)(3‡¶"t“*1ön|\1Τ‹¢liŸñLë/w ¢ÿ±°Œ`Ó%J´¿—Š05­küMF?ùb)\~ž$Ž#–n  êâHÊê€ ›Nz€XÇy¿^RF¡°T"#ÕÉBš¤nn7VL_ÿˆƒtý_«våË‚(tžÝÀ€¬ê n¿A§³;|³“Á|¡/fEW$*“ÀÛrŽÏ}øs.álIer¤¬6;pÕTílÕg£ s>ÊÄ¢ËâvíuŸðˆ:`ðâçøNk†Oa)ãN„ÃÙ×Ì£ªðù‘¬%Cì')ô‡=.Ì«L]sîT’%c½×ɉˑ¢ÈüMt¸2mÄhÒ0åë]+ Ý^d8_K¢'+Rl\Úð_[»Hßê®ÀÉ RhÙü•¬c6VŒXéÈú¹uA©Z"~„š|K&Ñ.ÍŒUêªÁ—~>äÛlYÈÇ?LƒËt,C‚ë@Ì´§¿N÷°ÊÜd‘-Zî0·„Ήjâ!­ßxzÌi}#È…W‡àc‡‰&Ìø¡º…”…‡ Ÿ™0B©ÆØÿuò T±f^/'#zÛ©¥ÏžÉ¢Ö¶ìÚNU£ üL©=7Þƒiè‡m)Þœ¾ö¥IB}“Žª)©h±»~öH´%…)Å~B·Ûì›S1=¡ÌnŽ[ÞɬAò4…‰­mîh[Âã8°Oy˜ƒSƒ%ÿ€™Ïds.\6{b%g€ôSt Ôg–Ä=CN*~ÂÙËrf«ob?ËŠúòŠø˜ÔÓöVÊýÐö¹tBÄ-ȤH¸M¯ûpä”IÁRˆ1­®­j2 BV¨Ù žU÷9Tf83ªØñ1ÓkoÚÑ”ª?ï®øÞOggSÇGýÄ ncGÌ# ?ÐÏÿ?áÙïìûÿýõ÷ÿþÿùÿ¹éñýÿüýÿ®ð÷ùúÿ ÿÿÄÿNÓÔÞÞàãàáâØÞìÿÜßãþûÿüL¾\D¾HÓ-ŽAv ´ï’¿Ž?8ب§':¤1ÓÞQå‡öŽ“‡Ï¤—b³˜f¹¼ í¤îk 0á !4æ-(êÇ L±Ø*ºµšS3i߸‡{jMVW¦Ð!Ó7nDȬ¹à†°¶«'cØþßµ@qÜ®¡ ,Þ½NX§ûßTˆþ·éåºÔôFSDµPˆùi7Ps òW•ûûÁ5}-0ånª”2@ Ýæu‰\½ÎW$05 xÿÕ+_XdÄŒ%t“KUbgù zr¤ü|ª$âdò¸‘ÚJf(ÈÔM¬W\hþöÓ–Ì]®"§õ«Ž—Ú¢œ®Žd‹£àlaºí‰œHä s÷0xzئþ®¤>²Î­T¤3õŸ-ÔÖú±Éæ7ªç›Ú´ wuÊ8‰ß7ŒÊ;VuüJÙ¬÷!µ¦CÔ~IŒ(!Xõ;»Úâ{]ìA£{· ³®CàÞòà–¸îÓx¯kze„\‰JXqM>m @òWKöŠö¥RÖ0UÙ5·R%2à,¶ÀÃ<; îóø©Û©æòºGÿÐIHÝÁ>¹[ÊZdÿæ%7YˆD]fÇŒ¶ä¯²œEÉ; òmÇz¹Ö׌d5eàšW9§Ò½,5|$¸wxº<,­¹pvüߟàñShBkA+5±Ñæïm›¤BüM’ô­—„T[žœD’fûÕõO‚•í¨´ÕêaÑÿ¸QXØVÑ„ ãƨcüVò6qÂt€N‡BS¾—óO4¾ü ÿmD‰¦Eá8…³Rýªö×Q PAæ ®2Ìëú¬õ¯‚“‡1îhà…hˆ¡¿¶ƒòY’2Tú›d1ç¸FË?u)øZ˜>MQÆØí‰V‚TV9KÝ\|~&˜ýE¹Ó'V€®üXЯðµf©™ÛzZ}ðC›ø”¥ ¶´)±Eb0ÒŒábOL£~Yì‚KªÑ'Û<´àCç´ðÀÒÁñxà”¹ÇSŽêåŒc©•nnÁ±›åñÄ;C†-VE=Ë=GŒB™w€÷|cD†‡èן+â°3‡úÕBÿ&¡TýMñìqGÅØOÄV:@M¿÷²±7ð³ä¤ªËÊÔ"ÞÁs@ƒq¤¡»ƒèbœü!‰¤O¨‘Ï?[.¡•ÎË¢s!ÿ«¶hÒçT+‰7ËÓ LÔǼä¬Y3€DȯÎ~y°þ‚,×Y³Ùp³Ùéä¾óC4ÎóaÎ »¾ÝÖµüM†KÆ+÷Ày²&}*7(— ìš¾’vàØ…›YƒâqÿJ¨¯2ý‚Bk~ÆùG$›ã]ŒŠío>8ïv.§æ‡öO S›’îŠ{ÕÛ™Šû”Duˆƒïê&Jý]glO ©[p‚-n2b¨sS’,0e»¥Fø9ÉÿoáíyFÃÝÊo–_à”¼ßÐÁfqi}<¢|Nk/:u[ÅåÍ5xúÃûþîÞ1S¡×õ{ë& sšãQ±×zê,n!2ç$ejÙ‡‘ú\ä@ŒPÌp:kUò!Ó•q0eߎ˓lºÅßÈg3­ð­ðüJ9@°ˆŠþ“Cä„ä²sü»vô|³Ï–@ÏËćœ¥¦U‰G¨Úð@SCµ¼ …xÅ]7€aKóÌÏ;qfÚFqGi{n<¢#rB ñ܆Vƒ:6úŸH Ôº€jâasÕüh)ņSH™5æ¥aÍ kõ4çÞ)aíÄyÌþ¾°W“­t÷è)ÊtX`ÙW\©î÷ÐÞakœkc¬3ðóâÝ,ÏÄÉÊ`Åç= [é·l½àþF< ,géÑýþ_.™>liïÞáš|4AêQ@üM)-Aíë~Š®3àïí„/ãš±Ž÷ˆí9’¾70T9㣭. |ZeŒí³\oŽÍþ±&× Ëç •ÜôëÝæ AJ¨Ôͬÿü›÷S"ãqUÒ¡œ!“o‰ø)ÆÏ Öd‡GfÉŠ‡1EYÛ p µ¶uãåë@÷¤å„/îxÖ ½YÇu|Ò¶›2÷êöæ;ʆ÷ö¤MCÁ;u6-ì$†Np¢º¯ŽÐFe$ûK—wµ´-â4š!™}‡ûÌ¡*ß9 bÐÆl¤aaÕs~ú›!¿×Ä4„ÁM±íÿ¹>-ê<:B îšféë²Ü$ó£”²|Š/_ç¦üL¾-³–ô2 Õ—Ûú¦j#Ë^¦9_ð¬ôo^Ýzävl Öçf­>pc“w0ö;znj±é6žÛm ‹´©¸ êYÿWqÛkÔm¶mœÑë"¹M"Xñ‡!¯Ð¯ÝÛ^Á’gÉÂæ/w‰ø…ŸcÒÜšã8UnN#s­¤:z· U„0EÑ­óZÎÒ¥z)T…aÆ`\-îq3]þ¤5 êYûUð‹A%†²iÜD³]0F!Zs,ës]XˆŽÝ拤Xu4<`Ü÷‚ȈØ~•Ç0™»rß`fZ¶Ú8¯LÐb±íà Yc‘.MZÔfü0 +ñ \ÆàÖ6zjŽ'f™St.q›ëLoe¥–†¯ä€?n{¬&¯+°Ñ7I”xVRôkQ;Âm‰3‚ÌÙ]™d8Õ?°%LzÝ#IsàæãM§= Μ´‰æÖzÛª³·LS ú‰ RNà}¹BÁçcù!·óìÇ×Ù&êmýÓñKf÷‹æ®ž|I`]1åúh`qî­®<ë¤eü•…õÝ9Ÿ ³Ä}”†îi!„FË-Àì‰9î`by„u²¿W[Ï}«`&ØâŒ%VºÐ*†üfž§¼¶à®ËÒ£êøÚ JÞDØ©—º£óí>¾í%Ê÷×Xú$ïüÆo q)ž>’…ŸxkùîŽ$mU§¾gK'¸8n"((¾Ò¯iÊާ׋ãfZ‹ËR ’¾èÐz VM“>Bñ7}xœè’`œ¦ùo[ˆë©(àkOJAõ#ª Ý9@jV첌€RF$n¥‹hnc£Þ;!«Âr…œ$×ýKÖP0ß(”@…,Ë™lI”kÀ£ŽžÇ+¥‰×Címü|ª½ƒŒ[¹¹kÏ+ e-§É1Ú/ƒÁºui—µ÷Eœ¯My3±s²'…Í_Ò«qæû1Š.¥g>X=÷Ô\¿Áó¶£üÒÑéJv=,äA4+8-|GG81cÏj¤»,ƒDëÌŠ<~ °upbk—…u¶xR»DÀîð7-2eçiÞPšZuoƒ^ ì)Œz ÍNVs.¡$ùÕa<ʠϯÛ|â,`}"w̸€—z"Òj z 7­4B[r]NÚ“/ÖžN\•1þHGœ†Ï‚ [X+¤0j1Lï“ÞßâÌ6¡Ÿíf‰ çcn÷›‚£Á|Kº&×^Òà)ÈÉ7À¯:1=ªÕáË{2~ôŽŽøV{ãb(U²x¬ÛÐw•L$¿¾î¼Î}D°y߈ •.“¦PŸòØXYnçjÓž™ÿ—ý€xÍv>:ôtâr©ó¤ÇZsžk`Gš—âx0±{-í½‚=ˆg–-©. Ç¥ð,gç í¡Z±ýÅ.Ò ±BâJËŸ},·óÎôÛ~’-v>³7?üJ2³ëpUl‹Ãqæ;²y¨Ö$ÓqJÄ/˜æ,°B>³6Æ]êþ1—§í›iÖ“`½tßÄáXÓöéA¬Úœ¶T˱ÅQA+1wJhX"ÈgêÁ‚pQƒózÚÂÿD3c]EÒÁÂÞˆkc_ËpQë‚´ÁÇ^“æIS¢ÎEè­º…ˆ]9ɨ qŒ‡qÙârž"P›(/”vT'ì”\r‘—)™ó\Ö3@AÂTwæ´ÉÜ (îâYRt}F.­’|NØ2þU@DT½“ ëhW›Z¥VÈÊ?¿1üMkÚŒd<ý@Ÿr†¥ÌQ©À1°Š 5ÃøÛ[… œû"Ѐ äL£Øßɲ@÷Àò÷mIßkw%\Ô«*L¶>3{®ðä¶EoZ?š¥å¬H•ãûà!Ÿ ¾)ãX’ª÷Æ*FÕ*ÿÛ‹ï{OY¡”ÿÀÓ4Ùü1®f÷wRÐ!1m³¨[1ÿ*’£àÖ'¹Ùÿ ä_lçvg-+ŒÜšç³ò "àÿº¶Ê°˜“-’ T&&„¸öªH©áï%ŒÊŠý’ ÞWSr^§-œº­*6¯B²ðà ñ¨ü[ˆfsÿÇ5§ÞQÍ‚ŸeÊüî…´¨âêBçßµzù°õBcé¨öèž%”¶aÈ@èm/${šMV¬žùdZ‹ˆþ.æ¸òvÿI¼1uáob_"ŒîйüÚ€~ŸÏ9ã¸1R[Ðï¥3ù7úóçž–©'€Ý¤ÕsoIz€Ò¢ÈNU,CXT0?3Û´ß›ÕV;ëÀ5i;¾PÏXÞ>£cNšS¿—¹ÄœÅ·7¢«¼Ö7F°+¿_!ªWæ_…ZΡЛïÚ—©%‹bJÜžÿ";0Õg j'¾ÅYg0©¡©¦¦³5†¿ Üeo“£[¾ßfIªVø·É${+or‘üðÚ#7"ågÔ¿!YHŒ1cQ›‡‰ßÂ×OMeÇP߯ˆâµ"½ ©m:Ü ÜµÐ‰ÝÚI9ß>LµUÏ6šÍG†L#§,½ÒöéÜY»¡q»0}+6ôô±l!&Wƒ!¼%øŽ¤6A+¶#ß–W=)r6B Ëä“ÝhÒ_VŠÏ, T"fhRàlôI{›ïVbJ72¹á„¹4‡²-' Gç#@Á¢C~´~‡ŒF˜Zã»>£XDšESÒ£bÔ%V.0qN{TjÊ_i è”ؼ˱‚Eœ›øÀðlX‡MùùlÄ]ÿ›5¤dh{ßÊVò_Ó…Ÿ àËnüðÚ ÁHºÕqQåÅœ®œ’’;{ƒFcIÍPg?ò´]3SÒàíT/ç¯p•˜·Á=Õèœ%2.Ÿ€ ktªIN¥#ÄHÿ~QNÈ,“JöãL} É0º?c©]tg¤d‚ã§¿; |ß"ÞñÛoÔ&ÃÜSªAéµáîWÈ ×ÆGî‡aÑ“ß5¡=o‹*NNP³)ǜب÷PÖoø³¥VŒoïSf°ª—Yêß §Ë »ÐΉ»ÓºÓ_µ= l”?%åö4¢‰j9–ÕØoAUª°c Ùo„‚|h¬ÒÉYX+°ô•t^•üñ`,ΩÇÖªgΛMû•²v3W µ¨¦F‘ €->#›£ž¨v4áÆ'úAï”3‡øœM]7±/‘Û 8mé×’ñ;?)¬¡þlšxÀÉ „½ì•vŒN^ÚØºj>’R#°u÷ÒyW1ñ½¤Ö¥“îJ[g6VrkZr‚ôô/„š®k³ðíÍP~W§AÙ¦©Ù‡s§ÏøáÒVU&‚ ¢ 5S÷§2SG‰•¨ëvÚ‘Û:=¦žÝÅaå5µiWtñU!Ú‰t4õ Ф’!G]H®ñƒBÞqìg:ÇÎÙ¿£Ÿ¢“e ³ùÌÐêòB*ÇO€Teüõ Lpz‹#ÐÆJè&ò[Ø4aŸA·s¢oHµZå`€.Ñ5™,Ô{£™öv~Ï¢½À8<ÙN<ËwœŠl0$)ôînK®‡ažñÂ!ø˜,ú}WG»N²>ÔÞçûRÏ,æºïÑéó¤øÍù)ºøÿÜÙý¿c‘}Ñ“Ü&Éëp¡-`’œì¢¸Íð󈡬•f‚œàÙ×ãÛÝb±Ê9¯"ûäļrÝ2~ÏìÒ"gT” ts@<¨€áæÅ¾íZPúÍP¹öi06oCR¹v~$pýÇ Ÿý8%ð„cƒnvËôïn,„çÿƒ-¡/ˆà´j2zZBÎâjtÓ¹ f`XÀë&%õ½:¹<ýËðþgX¡ŠÊC>dq Áà†mÿºÃ"­à^3'M1EŽxYÿSgˆRù¢5èú9þæi°ÝÞKG<Ó¶lbDbj缇¨ùþ÷À¹‚,a=œN1<#.u(Ï÷òD1²w ˜OÕwa”8Æû•½[s®Ž(>©åãÔG9“þ›‡ëŽ&³ô>•_ù Ò…:•oD›üM0l3n‘ n«Ó¢™ÇþçÑñÑ'A‹I7<-{ƒ¤+E4æÞ^zþÚ ÚMÈ#²œÛël þ;H„{ü—½z½5p°úÊñæ4zÕÐ —l,yqÂgÓÌ+¢ Ÿ ÆnÎ1«ÜW% „`‹ä<Éhï{dÖ::G[¸åõ;ˆÍðcOh^ ȆñOžö^qE»-2á¹d±¡ðöQ*‘ ˜ë“n+/±ªÀûCmŒR‡b°’HäÛ·E:¾Õ D³;’¾"Ó\%5»LÓÏkE”Mâ«~®4§öA%¶þþö¾I‹üLÚÏHÉ*f)Í`hÃQ=b¥Jp( cKšÃ€Þ²úû¥ýüùÙwðÆ€þ€j'˜ÅkìðáÃ$˜—Äþìûê8Ï~&³‹ #‹þÍóÞîC©V”B !¡eƒ#1Ÿ=`"‘s:» ›ÌÀ WŸubàf¶ù‹Í¤ewäMR1'ÿÅdXwD¶¡F-š³YþM•¦G¿œù«CÕ@ð!  k*à=°Ô§]»²ëI¹ÞÞ¼![Ï¢›g à}=¿¦¸†PŠž á¸ÆÉÇ¡aI‹{úñ´CëhF‹Þâe|!Ž+ÒÑ¥œ~Îý¹‡Ÿ¬â¸{˜¯\£‚Þ{eiIYÎXD E‘q8$Ÿ5ÎÊ]Ó2r*(ŸXhÖ%éYÓ\$àfèQüM-{W’1ÏH#;ÃR¯Ãù†ÞAÕML}«ä>ƈµiüXf:R¦Ük¼õ6ÇòWر’ŽmØodÊ R¢O”a…“•ëNÂz}{Cµ*«¡b„¹Q‹}cTeèÓXGêI@‹í­­Óp+G}ÏÊÖ›ï»úÕ©'XÆ=L›¹qW´›'*¦=ìwJÒ¡ôâ3”Ù±³UÀ‡=ˆÚÁ¾ Û Úy$üOºÞ%No6ê$ÎÂÓ#Ó»£ãYé¯°í—Ø¬)»Nß NÛ ˜Á~¥BoN•†ùu†-7Y÷,Ääϯ 5:Êå‘®Óç~' Î]ûÎÖÏÀ"reJüM(rßí„j ¸)³od‘É ä°ùu¹ºr:ß¡€°_V Ù'f'ª=´õGHè›ñ»¯i㪖­“O÷jxë?¡³$k­VÕWèÿÑéq¸FËŒÃç‚mŠòÏǤcS[wß\ð¾ÄVûÞG,Xg§sgMk˜—ÜóæŽkµÕÊah^ç8ŒiîG Ðû«=YûG‰9Z¡ötÓa©(ä6 G ÆÉé±Åöcttòv61}™Œ×TÏ¿ ­|ÁŒ*BüBäÎ3àN êàz̧µ|ðÜ„·èÚD­­Ý¹§^f¤“3¥ATد7îpö9ŸŒÜÄ;%ü|­%aÓ‚‡$RC8 V ÈI(½Êž‰P€€ˆ¸T?Y™ä⌭NÆ%µïFA£’V¦FÁb–÷β§•OÖ'{¢[ªð}½PKv·y…MLܺ•ÆPxW‹ÐÏÅÌùPNÑûHà©$r¿½K¬¤«ØÎÁl´p1›ìˆ„À¡ýǵ­W£v4øjtž.¹¯%iüuÉçAwŒFClX…BT2­°‚…äKd\\ã—p¾§Åé n2¿}§{'·ÿÆë %¥É—[3=&0qSg xp~¬”WÁ©ÍB2Þ6¯†bÞÅnUÑ{ú,rh, –Og6„)ù VfêÕªœ¥dŠa–¸`Áàym0ŠL²Ãƒ¶!.}·K¶6]>§/,˜C‚e¬ÙSÖêŠC–†ã§?Ð' ÿ;Ng±ÏG9‹´Å¯@z?jcPÙüßè}ÃáÓÏ}Û Û¹°‘ýQŸ[3õî†EØh¹öm¹VWœønýÝ€ª£Y~¼É¸ÿð&¡{) F¤0´‹G ÅÖeÛú%`3‡ô v4{ÍÄÈ×w@M♶öÚ8Òï=¶PÂü}a¨ H$Ç&KƒO<Û<ýÐ%¤¼µ‚mä*g³î«ˆa gÚlÿ}`k0ÚvÕ‰rDçÖ¹öm>¼qŸyÂ-&Dýá«2m¨µ üpy««´b¥»ïˆÿ%âõÖÓ«_ <4ê$sà‡£0îÆùúŒ¸*r–>øÊœ—µKãÐGP2þdŸ1\;¦~1@šØxŠ˜€ÊˆT”bˆžàù7(¸£÷šn~¡åªÄ4êÃ8"›e­Çî÷Fi4k-þ ¹ò, ™˜ŽÓN›­õfõPJ(~›ÿæúË$AªT–õ!Y~Ÿ63_ºêD8Üd¬VÕù\EàŒÙJ”ð—,¥^·ÉžÊdV8z¢DìU;LP“X2Kµqó¶&Ó…ˆÒ,±M~Œ^J OÜF¯ülêö¦p´É“C½Ú7S^!g‘öHüME`àA7Ùd¡|÷ôæ?äóžÒ¿·7í´qëzÍ͘aþ3Ͽܠ§%¾:¾ž[wABŒ†Ø<ÇŠk€ŒS(Á90äƒScâÁØNÐSW¼¡^—«Âîå™]Dß¾%ã| êÉBÑ€[ú¸ÅofI.ßVf»t¡ý;=ëŸídÉžp‘€È!zÍ©‘•, -.ºEÁ’vlSÇqb‚”9E2PˆsÆY?ÚÌú˜„³dŸ3 ‚Ò=¥ë]›Àãüà ‹“G4mE ªˆEÊûD/5UçÀüL¼|‘_ô¸%0aÀ{9ÿÞäÖ·r~j`ÕÕ$*‰þLj³”³Ì„ Jãʳ˵r:]=;ê×î×¥Úù<½É3D–ß—"sãm£ ÉôCœäiÞê ¯‡SâèµfüWÀôðúM¾‹jÊÐäÙLéC\¨Jj/M¯1«]*àϼ|QGìÀš*÷†x°íß ÁÇÞ Ô „)ÕÉ&A4·¥ÿž–nØhTñÂ¥¸d4Àw|ÆÉtú¡ðþ„tßçQõÖ-i®'Ùºµ[T/¤¶`éö{h•³ÝËsý€Lýjª(9Î??”{¸}@uDø£;aÍž; 12Ô?>y, ÿVG<¸º>nÆ®´Š¼Þ’7&[åä+аåBµ«q¸šlù˾¶pØ1j¨C s…2±Qt…|)œRu÷™êûGÂZü^:ç)^’V²r¡d/1^™¢¿1< …´²Í¼žyà‰>³dbùÙ<¼q*üLÛk»¾{;ëá§ÛóГã&DdjÖɳßÑ´Ë"×V2+Ýð+qÎúbr˜¼h½àqŽÜIm%Ú$ÀgeÑ­U„²ý¬ñ±¹þƒèc›‚'•3H±‚W$|˜µþj†Aª˜ëX©L—¸T€e÷þf£;›‰|PLe]ŠÁ„S­àÊ}‡Õ» õsyíïªá‡,ŒìuXmg-ü•̉ÐP"`•›@#±ã÷dvyºb‚$¾î;¤Ü“ 7öw]’¾^½¯Í_5ФßåѰ©¿ñ´7NüMbÔ@L„«µ¥%'À²ÿLÿß~Üæ™»#ÆõóöÊéOfy…âÓ1ÉÈWo-4Åï«('c_˜j>n_§6ºXH 2HÔ£~ÉÖEUó:Fšè+íÃë"±W#x)ñ 2±%¢ìã9†h‘8,2_#yóh§tÿÇ{º`’§ü|7³còñD|t«> (…ž@žó”ì!ÝÚÜzÎîO¶é,…ê—Œ_n²We«JRÂx^«6Þû^0¬„F®‚¥GN鉽|ÅLÐþÇÃlÚÍçö¿8÷ȃnü66ÙÝYUdü»øÛ¤®zš˜f rÒ Š-œDÊúå.h=©<Ž‚IÂñ_°eGÌQó÷ñ"vòbJ,Œ°EVøû'Ù‡÷-¬ï=_æ<}j¦¾ã(ÑÏI”­ ½x æ\Iœ Ô2ZA‡â“HKíKÜÛd) ü¿ž¢Àþª‰û¯…Ø $Ø¥ÔßxC{¦÷Ÿ÷˜7Î ½âô&$‡¯K#Âý¾ëØ€rK£Ó ‡\‰]RhÊú41ÙÃv»×c Oj”ÆP¨áÌôºàJD¤ÚKÔD"¯@‹LîµüM^íãüW]Ñ cÅx»·þ%›ƒ$ÔŒDmÚI‰÷ŸàwŒPöK®vzù Èb2Â|ìÏ áTÌ}–g+‰~kž´û*8ï€5#C= Ùã˜NÒv×”j-÷dzýX^}‘˜~m¦W‰†-:xõ:”A<Óýc\›.”Ù~ 7”-s,mÍx eüõ'È«sS•&ûúÚˆ&M6Ô-l îùý§¾?ç_Ý6Ö˜C4®Åñ 甉å$$}$’n¢.¬oñÒÿá ‚y¾s=ïÂ|ã¾ÐS% OÎ*Å×üLÀ¸áYŸÑRÅN–N;_~ôœ5.?/ãh½™¼ètŽx'T¶•J*ºÅ¡‹ðD/T?aðÿàSI=#ÄÄ ƒÐJ—ëQ}gÔ!* àyC•ýÃéÞš(n+ªt`fœ¦oâ ^Ⱦ°x±&"k¯6—”5‰Òo ýh?€ÿt¢Ž0ÁÑÀ4è‹íb…óFŒ¥AæõŠ.Hê.GOlö3kÆ× º¹Qx6¡üIpÕ[ÖèF4êKc¤,Dܵž ›\»Ä²¸§¨gx„¡Œt\üʵ±Á”Lå^˜('-Ž˜˜,R>u¯[ž!3øµù«ÓâKå‘4ó‡hI¶Ë¸1MïÔmãì.X’µð­"9]œ1Wê ¶ýzà9EvÜŠHÞ4¨È€f£æmïéžkF`‘ˆ‡XŽð†-²›‰Øºà°xÂå ûŒàÓž†êâtê Q3ÄέLÃ1è-±‰»ŸçËt-ò *þ‹ÐÊ@!¼v²ÎXºüL¾cèij¯ÀJ”žÙ[Sk&í¥_d:Ð82fþšÑQ†ÁàH8Âà<Á471´V$xâHë”v/'?ÒÆ”ÀÖ%ŸÂÜ]€„¤†@æyL’=ôE!Ò-ÈÄжÀù®²Çp ’5.Lk{êHáB ã=öù6™|€$}sËó™¯G+Ýø Ñt`ÙgW`*ǰ¤¬ßŒ¦®‰zÇQ’Uç~¬ÄvŒW­ö"Dw…Rœe¤ËsmP|À=jÒäeä¥Î¨¨ša\è+·ÛE:ÆHóR›p+žÆüÆ.Á–Õ4–u•`GøTäêb†í­šò1Ãç/^òH*n~$*©QVU•BVú&©˜è´ªx@>z>ÙY$8y†‚ìNÀ÷µÑöù":~ÀHÿ•gwfŸòóN̽»0„\²õC]Õ¥f Hbu©>‡.Ò¼œ¬ ð4¼Ò6ï8\švröÂkÄž^}Z xïgOQ® ÞàÛwãr6SˆÉvœ^7@á° Š“6/'Fdè7°ÓnºÅn_#).Zö /R(æ"ãâ¦T_êH6;p—Œ [}ÿ`P+/è‚ü|¨ÀK ç­{$FO y™p!4-±œÄàøºÑ—ç%ì¸í‰"XSFßÕ“Þ;c“fž|LPNs‚`ýèÒF+åhäe¢u÷$çÏ…v«ãCÈ >gÃK²îì {ìßËÓ57= i>/ŽoCK*ÅñE9 سJÏ&E1Ï[ ®¦Ã I‰DWÝþ.HëE¾Â£rIϵš~ Ô=zY“‹hµ–!ézdT„Ü´)"Þ}¡‚†sQȘì}ô†§v—´oD› ö©â¬½Ø+»§Œ79ŒÙ‰kó0Z¬óøÞ×ÜOÆu8ÿêC²¯Ä=ÓW{2’7ˆSô7+žSÂßV÷–!ŸW¬Â[†SÕçwüM{þDë{·¯ Ÿµ²"Z£´@¨È¸Üž³öç¯Áö @:ï_!î]Å,ßLèÐóŽ„8ÂÊÝçì¸)Û}+°D[ñXLÊ«6$V«JM¿>˜%·5,$žíj+ŸD[ÙÉ%3FÖæðóK²¡ŒH2X%^ü,úò5_gÄ3¦ïq é€†¿­â½¡Eñ]8d+a@A ÖîÝs¤q²æ&ÿ¼£¤÷å¿~€=ßÈØÃšìéðÀˆÀÓ¦LœÐPGƒ‘°lâePt'!Ù!½ŠpÓÎ=çj/\Úü›¹3Ç-p½iÚ˜y3ƒà$ŠE6LR¤o«I›\šÑŒô‚yY¡•‚=ó;CÎðŠ´P©^ž5=äôä*@îÝiú UýFlŸT4GÁÇñ?\ª` öÞñ©wR'×§¥X!äø¦?æ›è”ÅÙ=yLBž~ÙÌ2>e/I5jÜAÕ+Z˜Á_³ý¶š“J¸ &ÀUoÕÈD—æ Á\ù‹Ú÷§+\wHÅÍåÂwÏ =?fÒúÇÛzx$m ðÇs©t™z¬„N]âš!™ BQ9þ =Ö©y^ü›Ë'¿g}aÜÕú ÂÒËí¡‘1K{#gÕØ'ç!•?«†NÑ´d åû£Rj¥1æÉé³usÉBA[ApCô IUÑ≉8¢ Ò=•!úŒÝù;=±‚ü q\òxÍ Qå:«õ™Ç¥¶}"R@¯æîÏo¥w¤çž«—â'ÃzQÛ³¾`«‰°‰^‹“­ÇÌ,Z6—*¬pyÏ÷‡e§(µå•yŸb¯„²<.^›rüõŸ¤ñûC Ç]‡hR;w´è÷FæÁZªðHn²1ë~[5Ô sSc„§w¦Ù{8 ‹®À»S×·ç"ü:ÅL¿ÝLï\ü®Ìèu—1ãBM4ÉzÜðJ2Ä"“ùX_Ú\<—ÁŸ1‚ÖK€Ž» pÈ¢^!å3³.Ø ‚o¦£m‚Ý#*Boä~äŽ$å÷DZ¬eÚU áÔ!¡Š,¦~qjUõcK^‡Sn¢v­ÁþûÊŠôú?]µA ¢—ù§Ó!AŸ:rfT3Ì>AR_À¤oIo×VŸÜRS»<£Æ Õ0>U»€N›!p€Ù˜)kÿ¯†ìü`^ QÙÞ¿{_tyÕ^£§ ÿ=Ú±xT‚Çž¾Ë™àO…4Ÿ:fÏ—"0Ðr/{’Nè6‘Ó™ÞüXOßaÒŽ>È^fÐrPãXR€(CÜff?ä,ãÿ“\,6¼öËdYèhŒF6ÁŽqã8åÙEœRÃ]eލí?5°*ÌÝït¶.¾ól¾åÁ´;\·¼…–âÒePûÙ)R•ƒhlfƒ1¬ö™ߥK;/dzaÁ•ñg´kcmʉ‚NØ3~ŒYI˜ÒÆ8)S×fH@ç^øh‰!D,Ä€šíÈ÷¦`+Þd¸j}S…ï’qvhÎíåHŸ· ŽÍÔÎUX:㊚›¢qã5€äkšßÄOggS€‚HýÄ nd®˜ÙãDÿÿÞûîýýÿÿ ÿÜûöþÿýÿÿÿfþýÿÿÿÿßÿùøôÿýÿÛõôïêêðÿÊÿMØ×ÝæáåâéììúôüJN®20{9ƒIedÖûA±fãdÆ?ŒPÂâ œËßöJtÌd‚¯±+ 6Á°»¨WpÍo€ÞÏ-›2MMf¦û("m¾¡`Q gh¡³&| è¡bŽêÓux` <:$?µËö#o¤×Þ ng –­ì ¾=þók*‰¾!¨‹€F¾|—EqOÑ®õfŒ·…$˜Hœéù°÷æ!»è¡¹ü“؈xÎ:¢‹õÌoôà[8g'Þ@~¼éå“nøš$TFï³OÃl.ŠôR2PÖ–Ûesó”Õ2X{­¡+úwò¾9ùe*ê bdcÔ ñ(D˪ȨûØ`²mK±üÊbeÅÍKë¶Sf‘p(þ}1 VxBåJë'ÖWœå^è5ëIí¶Wë*äh?ËôzVÞBå ¹ˆ¿¢ Üø³àd£çPÔÚ½FqÄ)9&ÅC¹PŽ”;§w9RòŠ‘)F“ÕÔ»jžëÈ?YMIÀ±ˆ/õ5t•‚'SZØŒ5ò' ¿ƒ¢~-mšÌÐä*+.¿p‹#û+$WßQv„õú½Â1— "jEƒo݉é7À?,Œ©"ï^ô}d9¼Ú„;å£Jø¶–›¯äge×+>P±fxtÌ?Ó«ã„ìs¬ z‚RrÜéߢaŠe—ƒN¦ŽÜ®Íá¬Þ“óëq°‡s¯ ã ùÊ™¨p5ô3(‘J 0)¢~¬Yp0É´•–j_‹l™¤ïjé¶0JÜhS/ ¥ª 7Âû÷¦¹Ìr™¯¹–Ž|šáS³ÙûAµië¢r3\6{J=À%ïù  ñ]ÄRÎÞNÑâqåáW@VÒáóŒ0¥ <œ*ã„’‘^Ù™žq>¡³ëšs¥sæ£è AäØî¶)§û)4Ow®²šÐ>=Ç'§ë> üXJJß‘µÒ4/•æLåèÿ+²ZçÁå%@?Pfcá>fd±Ü+F®*£nµFL6±Ë+™7 4 |`%wù›1‡šè ïú³O8 Í´UßõPâ* ¯‚‘¦çxH#[ù‹C}ñ´ƒ ]¨ë:È[h¼ßˆ¤Aè¿Ý½c Ë¥²/Vus~R4+Ç‘²½Gýè®,!,‰;&ÁG˜»v­à}á|åt#8|Ôå½’¶·ø%‰œ6£ÞÅ…qåó‘Ö´afÑš.D3¢»úô2§¦¹Øl^©LRø¢°°×š±99ß}w5¡.¿šMmØ,&ÅÍ®]ZlÀèü±´ɼS™©‰E…øDÆš%í8«.Æ•¾bD6õõ‹„²´¡U¬Ÿ±–9ÊG¸tœ‹ªÑ›| ƒ  çµ<´½@i ù“@Ö R³PËììþ!WKko®”ô!9Þ¹p©þ9vJ¹Â˜HùT¯´KokåGjk€e§`lüy:½[Í/ÌH,wwégóèZ<ïý?ñÜß^Ê©ÈnX}Ng×0‡&É騟Ê@Uð3½ÅB][λϮÉï1ºŒÕÁÍÓîksí(ZšvXhüõ*û¨²xu—?eÅ«éh3EóÒHü±æÑ £°sñDZìyÆÎÉþ|˜5‘~){¶wÚ.¦»"?UT0x×Ë¢m$L\’§y7’ãè”ëkôîüeüxëL]™ÃŠŽËúÑ×o¶{`)¡QA5·Z®9‰Ïm0‰ ü‰³¥ž5Aåï&¼ä5OÃ$r xË!l @© ³ „maõñPnáìq8×þH/ÌKˬDÙpW4,0±3¢˜Ò5_ ÏÇ®6­R÷Ðîî¦O$ €@… 5Ïr³tr}"X_ûU2Ú+·O3ä”)@.\­ÛCÚתQ«œØÇæ‚ü6nÝêøåqÖăKzйã32Õ!ûL¨æ«­×ý›`†¹I]u^7`M&|±´vKYäj¥¿Ì}ØBÔÛ×±¥ ½ ¦$ÃEr‘K¾'-ªËXRxûçÓÄ×R¢["¼­§ ÝåŒ[gá) ÞµfñåÁµÅDåëIá>DeK[fƒÏÓ=·nô+yµ! WB„ìØ#¼Ú cæ?1´,ZÙ=üØïØV†Õ“Ãù¬e\ÌÝ…ŠÓÌ«/°W >Q-½Í¯¸…!_“¸ùÝ^EÃêk)‰‹`IXñóB>Ò<¯[ò‡(TYˆu8 —`—ü›Ã7÷`Í’«(|î=ñMð­¨ ¼fºsLêÈòù çÕ°‰TÔ¤âiuKPN Û©vÌ~Nd¦ äõP£°i|Ϙéü›¤ødù±<â6ê™Ex]u5F@szq+.ÂæT£w¨Ó §óNSÑt8púcÇ>/§ˆ±¶•O:¬Ã–=ÁŽ;­®ú³œMƒuy1Ï{«ïà }•§jHë00æ¶Í 1bNû«/ºv§ýÛuõÒ>'ôém÷ðú²ˆ¹à¤.TÍ«¡3uóì¿' ‘]Ÿ“þÊú¨1Iánã¢ڟմS•ÛuFËÍÉèÑÜKÎl,öáYÌVJü.öÚûkÉš$ô§¨ò–33¶9„ÑQ-/{¯¢•a£¼å]¥Dµd¨–i·y¢"ì¤Ùz *ߺ “þ$÷}ó"ƒîí˜ôþƒfÔ4Áª2½ž. ô|f°xG²à Tþ½C܈9ÒNÿïQ@[ßë’‡ª…5 „ÀÚÇ ’È0Ór?%ækù¤ƒH”®‰ »h§ùÞg’$ùüײ¶Æ5gÝ‘F¦çñȘcá±hÐÏÓs!›TÆõT-ù8VTH{å0˜5©$wZš=nüö^ÉF™¨2ƒ†Œ=Ú¢Ñ%¸¥o–‘ÿ’úgLnr_„¢µ~{…p)NYQƃWâ•btúÇ&c)vü|®TÙ:ª{@Rq{rêÐØ F#AyfÛ¶™Û˜y·øì·xãýø²‰d›ú¹c*p‚Øg_:GÜÀ’“€èýþPE&ùkJ'W芅‚MgЇ ÛÓÃàºvÂKo…楄;Uˆ:†Þ}æRÉvƒâôò³Šp9ÃÖ¬5²`IEûRèNÙG©²JÜ/1‚Û,CˆHeÏJgÍmv#P=îâáõ‹ ¨¾ñ ˜Ž‚d„HÃ¥‰œ]1H²SŽp!E¢„FhK:ÆÓLFH|Ny×spÒ:-£áÑ‘”1y’A8çø êØ4‘„ÍñÏV#ÌB‘dÉ"NÐUö!l?¤îN##43êŸ$•øŒqQuh1Djü/‚‡?ÁóK ÞôÐýà,máVVM«éûñÛW ìšß™à’À÷…¸ò³P*Ÿ“äÛŸL¬µKPè^ȧ·}±:óHŒâRÛòØéÂwæîÏY*¹A<9lM,Í3»¨¼ÆÕÄUu\txÓï·ÉVgÒ<@E•“ý¤Ýþé/ÇV?ßCN}/x¾«‡1æ 8"Tˆœ(5!öç¯Ãølnˆ=T .áüÇ“nÏò±q;{˜wåÀØòvhÍ š>}üÛGÆÏ{í2vË+ÐB&tªóªô™qUgDÒoüL×' ´0þkÜ ©Ú”в62¥VôŽSdÏ`{#N©-|¬Àë xlô"¯E¤g§ÿ±Áck‡a=¶dÙù‹’GóKð#¶ÚïNz›vÕxà 0žäÙ¬˜GNè_ñˆÎ7ú𓾊$"öƒ…&²âœé¦JGá‡ê‹x[KéÀÍ[á†@Å’0„IÂõä5êÕb‡p‚ûu¹NpnÏØEÞQ-žefCEEb[pñpB×›Œ¤pý–Ô8¦·ijNx/5¹ï‚ÅåZ‡äHupo!Èå6Rê(ý Þsó$\ŽK1"̃ÝnøÑ ‚ü± ¢ª*™F« þP5°lyÈJHêQ¨:R™ÙüN5.\ßk6]LM¢£6*là^g^\tJxä[Ù„¨Ê&W™®Ì†‘&N‡Óq†Ô˜`Ù [§B,”ÛØZ I|yyÖn‚(d€»½ˆyzßÍíûÎéDm[çrÒ4áŽÛü!¬Ts 4Rô¦dÔÏC&¡V[lÝcCz“¢iÕBVƒOþ™Þ»;Ç"°éõ²ktŸÔ+A…C‡1q2G}úÿßK–4èj* {„ªëÑ’}ýÀ–,;õ¢r!KÅÕÆ¹'¹ðÃ-Si|Ý=ÙýêôÑ×°-"_‚ "züÆf*ˆ`»,W\Ù~:(ýÑqö|{ž¼~®2©.ê%ÅÕ—ñ†±Þª,’ØÊ-ðk'8A¿!u²´3Z¼õÞïì)À¡!A(ë<’zeÂ/;¨¹• O2Ò»‚fÅÂ;5ËF4œïœÅtl4Á~#?Z=9Úà(hhM¶h,ïÅíˆÎÖîÊõ:ìÓôî·únÌuì ²é‘Þô¤¶³] Ó°pGÎIÅ60:Þ•ÑÛ×¶Q<¸„Xg{‡ {KJ„JMW—·¸ûø¡þ\‚ήI¹­¬â‡Aó#Q»í]‹Œ›ìÄÞÔÿd|û¥qn"n ØßS*å€ü¯4myIzø‚êo²åËü)áž·ýxE¯ùvi¡¿5tÂ"cìåxEv±(\8Þæ‚~v£üP×kìºr2"ðÈVuœÃ–U›#ÓÓÈS`ÎZŸ¥vš*´~ûì·r;€_–@Ù c¡àP-Ò'ñ^¥LpÓB}Ì=×nwæ‰Çœ²Co.½5­ÎLD/|óÇȆ2ÖõÐ\ >,¤û$ÃDîŽ\·ÞKW÷¤€Î’ ØWì:µŸóeƒ³sˆœ)8I7¼^ÒB~–·ðµTÛ²VE_pd•’L`\gJ;²ºF„IÛkb8ç‡.Ï{ã–†¿ÎõG”ðßKH©oôLÄ~ü|¨€vÞ'¦T…@Ú¾"ô_ßí¯%kŽL“qT~ CT³‚s«àpì(7x€©“JL¿‹pܽþsw·ùããÿ1(9v%Eð#hÙ¢LÄÔç¾Þ~ÀÉÐP<à;)|6 A]`\Ý3ŠêSõ f5-V(õ…}^²|Ž] ¦E»Žh»‹R=¯x`N- ,v}o2$sK54¦`øŽœXg9œ|ô¦q©5 ×;8h¯j5Ob¸·g®+$¯Õv/zÓÚ‡2í9•N~i››Iå2¹ï¥õ6Ç LÌ«Ë;ôÌd?ùÃb•Õ*sÜ3‡)5Š®d #etôªqMH‚§ZÔu)ªÏ;¿‹ôïá…Fz*¿°ßbqÒMòd.Ÿxí»•t~P3é[ 8Þ38ÈèJpì}´,ë³*Šk3Ëìu1#¾À:ÜFŠ DGÁ?•—,0ÏÒ"«qÒõa?èGYÅå-<Åu![,¤‹_FN·”}'HâÐoBü}\š§ºB„_xu;Öt¬LDµlèˆ^WQ—] üE¨ô__Í;}½H¿ÚX$kwHâš e\¶Ý·ãXèže›Ì' u.³èØœÁ™ÁY)ŠUÖÚç½Épyý=,9Ùlo SQbeà+ÁÚËE›h‰X»áavZÖ/|SYû¸M'W›Œœý …’Œ¦Í€Î¼`+ÜcÛJè«: Ù¹…ÓúÀ·Æ¼{fc•6Í¢x~Ã…£ Î(3Þ 6:yT´Î †Í>>ÆxwÑÊôýü^3&º+¦8¬ûÏ[ƒ¾ï†]„ ('ÓJ<Ê>”Øk ëöH\Šï¾OÛF•C…Ïâ7 k‡Vˆ,‹¹Æ æ‚[ñ*PÓö-£ÐÎ&æ»È'Ö7ñœ;œe˲ô5CÄx8•Ï4vmC=„]W’Ä52ËOmB© öØ´;pšµ!iÒý *¾‘ub5+ü™,™\̺+GeA„#S)òAååd- ˆ°ß,j`ÒUðË_`â7€9oœ´Óè.ëÕüe×!]úÛȘghÀ,ç7Õ#ždg̶$…U¦-òÀœ½¨<T}äÇ= »³ù‡IêûzXV Öâþ¬Še=e˜À›íÈ3T5¸ŸÝ.¬ÌÞ4í}åØ(.•ŠWX ê7®[Uc¨*7ùú»,Õâ߃ñŠŽ©Ü†‰ 3Å–pÛÂûÚÊ1aÅ©±½V¿‚bèê7×RMìfÉ3­AJ‰‹và–¡ü¯ø5L¸áû‘)ˆ‰)y“3_F(8¡°„/J–1Z©ŒBT‹³•ìð 0â¢~8ò YJ¦ø1•sB_šé“s›j†Qó èˆÛã/²¿ë·]$Óåø‡ä‡UsÆk‹q65¢îÁdؘzøš=Ô©|PÍÀ¶ä!åNB–ú£·:מDãs›Š_>™mQ‹ÊÆ”…—‡¤‚Õ-½JºI$ë´››tDë~(ê^òTÀÌcdï³8TL¬½¾tl1$/«±©290ãŽ%BÛœ\ÈLØE]˜!ˆðÂÌÕgÙÏ1Wl,I“ß 8FÌsàŒýüMFjY4µÎú¿:Å[{ L…99øù^Ä0o'Æ¢ã|Éú8i9âiºÔþ€|7”l( lôiÇH÷éåWŠqÙÉÉ•XKŠ‘'Q®Óm÷_b¾Œ¬V쵞’Ëîº/;P_¢\$`­ƒŸ§Yÿ}ôê· >Ð4k4¨ÐܽøH÷âG‡/B#øsò§&,Y¨>Ž–,y¯[–ÍáC……‰sÑk·ú6?®J†4ä.GÁ wƒj×Ö°<|»äÍÝÅáþÚ,>žuÖV‹3¸ü›‹áÎFõØnŸÃj9?õ¿Ôר4ze©|žw*v‰NñÖK»*E [äþ·È€Z"ŒQR‹ úöMÖ…ò_eÝRKf§ßÏÜ: °ToSÇÜqmíŒËŠ5+=°,³H‚"ºÌ!Ç1€§Ž3¸?aý“f¶ÛÒX·Žà|r±5Uú‚xZŸaˆãsnÕß(Od<…ÖëÆÙp TÇ m++ÒŠ”6L:iQþõðü•14;-ïá¸WYy}Ü  J.,xí­¶¸4C+´áI…ÏÆöà­O»›s# Î5Ä_Jöl\ö%Aõ¾î’ÖëLr òÕ.(*¥—7šF©Iü®•ª‹ÎqÜœôðÄôd‹ã9'B&(ãŽB.=\ M°ŽlÒ‘êô‹;°ô-cöÌ) ¸€Ñ-J–»$371Âü?L*Öï9ÖÉO0íoç<=lå»Ù¦Àøª5®¶«xC»ûp-/% hÝ-‰•°%wûo£ÛdÚ8³óÉ"¸<ý+—j1z”Õcd9¹f¦Äœ]jÑcôØö`ꀹ§OÙ¤n­ü‘G''4;Bõ ˜÷S’&ž‰2vÚ £Æbu`Õôó‘îu“A¤¾ò¶rŽ£Ø6»Ê7î´ð.®èy·gYµ¦ xMÍa8w®ÂS42h¯ó5õ±§%¬GÙê¶Z‚Â_Ñ¿z2”O®GÁƒ:Ìþž›#Íí!ºDf–],{pV„Ï 6gºÛÖ´1†#®%”/Û¤áó Z½÷…æE퀛´}[Hj¨•¼ŽÕOð°·%¶sgÞÞ .‡«]m"¿õô>â{›gj]ÕòUJº7«‚A4q¸ʶÞÈx6jò")B“…]vÂj½J2oUU-˜àÝìÞ‘£fZx@Uã¶$ž +èwz¥¹vüe—Ñä¡ý½. É{6QÿU˜ì!0‘úÍüNP™l”‹¥9„õQiŠ1îEU3›ñͼáîå(1 ?³9<~…±æ_•Rn|ò¥9 _%ÐòMWÔÁ±ðý»Ñ9™i7VôCÑAÌX:óÏNÆDOü$À´¨~FG‚PüÕ—÷ÈY¾^4ú%ÂÖXçNuŒ‡iª ²(!}©V–€-ªgp*já¶ùÛ?ܽþ‹æj¾Ÿ Šª«R%Nµ^¸ÚÐB;uQ_YaÉaT/° "z!±W¸”Ǻ~˜v‹CË•]Œ¹Úz¾°vâ‚×@ÁÃå.¸ª2Š/"êvd«òuC\¦~(²bîØ†:‹Aom(òuðÍÑ9Òej3ÿs*òç õ8ÝêYÚÔüL¾èN©KÌû–ž z‘ÖÖCŠXÊ~vCS•QÔåCgö/Ö9RC)"4‹~ycêŽìÖÀŽ€^ü nS½ÿÐ+Y?`ø°Iäû2Ši}“VïØX{G]x$ (¼šë€wRñ)¢Ï}ÇÑÊu¸t›fáVbo¥«šÄ×fÐN–å´)þ›·Šn¶:æoáý…ÿ ×@LhÌ:}W‘ÌS?“¤Öñ~¹zóJ§ÔŒTU# ù¨ÌºpAƒ(V÷[ðxÚËØ/(&ÌÞ@ToeFT{¼`ß 9Ø# 1ßJú;9òìüXϯޡ魎-mB³Û ¸‘x‹Ì#ã'åK-?£ “œƒÈK(Ïž—³œƒ9h.²‰$UÂLЦ°±ÁÝó?ìš7 LDÏÖpE›ùªp žbc Â‘¤¶¥¨K1Tˆd!,  J FÔ< ÉžEÀ ›¸Ht`‘íŸaaº£—Ólå㉖aJ7Â&x‘U|0 Ávô “9ß‚7°¯ ¨óÈñ)cº äÄôBµFÙu¥|SöϬ}ÓDv+fŽ“ÀêÞ/.¶èÏéÌ OöØ‹”’ÁNzJ× Ò‹! ô+8«œéS©¥ü"‹‘ÉUüL¾ îä;&*¹4YDXZŒ¦Lº¨mž#¿Ù(]cDz}W(œ¸MGø7ù&ÊCš),¯ak)Oþ®r"¨ßby)P±ÿÖë(JÀPúöÒš}°£Ÿ Øxl°sô~*Ù–„n·ŒäÌ$ú$¬àž!˜Ä>;N)Äìõß)ñ¥ÕßF®‹MGÓ¾VøË߉–!»ÓÇMe›_âæ;ùÂãXå´g5ADM.x+±Á=¦>“iôcÆ”<0íqØp·žâþñY­{ÿ ׬îjtÅ0AjÃ/eº}qº¥0T~-´÷ú•Fºü›ÂJ~ ¿,ÆÐ-4ÝaD>Ï”}p?ÑY7=”ãC5Þ¬°7f¡ë:Ï~íÊ))\êå ¸;IÒVBáóE‰¦.e ôóX• ëhL89 ý4†‹Ÿõ^W†øÊ‘xWÜ·äU>zl$ê3—m÷%ùuÆh[ØÆ¥SXxãÌ~}¿Á:Çbd‹OB‰ÜÃIMU"0¿ÓÊì„Ħm\8™Oyê*unuHP¨h`õD¯UT͉69y@\ý9ªœ¹ª;Ñ͈dz9R‡}“AkµØ]ˆ¶Š´ŽÃÊ™0Ä­¼L ‚–Ç=õ ·A{SzªÕÙ­µ<ÔšE¥‘“MJüIƒMyE‰OZ×¹<€?U+cJ…8§H‡ {·7~NभkkÁVCJûðB@˜çSÈÖ”¶M÷5û„@X MšÝ-]Ãyí&òDG±Q;K¼>ôoU3ïìÓÌ}ÁÜz ¯OT<¡Jm¾¤‘EXÇ®) fÔw,’ë œå*޹×}6 -Ìßs³Ë¼¸ £ (€2ÖT¢bÑÿøºlͤQ<;•…Û`Íu`šé—`žU˜üÀ9º’ËÄA°=Ð?^ûƒü-J°ßÚ|P+–µ6[¼u c”‡ÉÛseªïî<­u„ž©÷—ŸÆ÷@ѱ „_õŸ-g±d_1|6èü5P€-¦ ÷)Ïd£yhr—ßâc›0‡ÔQoõ^MŽž`7oÕ‰E¬¤ÉüxÌDä¿çùê%ƒÑq4úFĬÐöB×öVÑÞ`ѯˆþÜcžýsªçö '©:Ð1ƒé’8UuÞæN\ôWu­Z˜Ö¥ÏF{­}ôöÀ¡&D`ËÝOšùõ8æ —4gþRóx¹oߨ‘,%÷²­înå äièßMšXKç?NØ¥Þe¤ª #O®?Éâ$ WFÒb¶eõùÔ&Ä”¹3‡0 é?à“ %fTê®8ïñsøg ù¶É†.½íç3üLË[U.XÈ’9K§øwDŸ_2E}uõ„íV‡É]ƒÐ>ëGéÀb~6VŒ,«¦¡@¨)_xãIùË:@M tß=óï~¨€'Ž|?Fn^ýÕiãb‡¶±çbš^Á°õ 2ãñ÷],³!Ì7hÖ e ²Îfta•]k*½±õñÈõ܅T/Øz+ͯFŸë¶`dúIyô Zщ¤ŒÐWº}7§a£ô28~w„hôss’oÙÙ©ámÆŠ»•XÛ| Rš‘A›á¼>Ý—x$^ѵg[¯žŠøÓÕAüš›üJ[&= Xž!}Èrwj %öÀ–ÄùQM¾P×NÈøDƇ;máÞ±@bU]§äÛ%ZUÒA.Z`ÿÀ!ƒÃ½^ lË×Spš_¾ÎLiÛ‹”*›0æ«–M•å¸T#x•SPÕûø;.e-N­óŸn,Q˜žw®Y;±IjãOc²URŒòÌéO"pœ×n7‚+À\ÿ߈Iòßeæ¨|„0¶ügÈÎIå:™ÉDƒüê”j“›3oNÏé…)=ïœ æú*LÝ©TŽCø ìBeØ1ffi‹ ¯ôCÇ3ëã£úüM2“ ´vb·AGü9\ã½”I «X^P•ŠÁÙI©°Íη-¥Ë r2׌¡yrgJ º¯‡Ŷ¯7Lj¾Šñˆ!ý”š8ýÄv\c0%gwx5ÚlÅqxÅFT.ah¤A}Í™ UqC“j¹¼‰`‘Á—ÑÆ¾XTTû©ª–`鄘»_t ´›Z޶F¾u—¹dç›™€¹ôMæÍxL±.`º ìK>× ´ïo"ñáÑôÑó”ŽÜªø­s89a´¥\9ºýMˆò«"V!ŠÜ?Ú?šÑØ¥8·®G‡eû,mYëÐ#ÀÏYÖd¯*:úihQyÁÙ9¡ˆ¾%*;õ»‚¤•¸R‹ X9Øwçÿ;Ó\s©þ$ND¨fg²€‰9ü÷WÕ{ÛA›@–ò3ê_öæÏeö¿/æÜGÇZ‚ü®À§>ðK.rJ÷/²Fã"ù×+ ±Ò·WJ‹Ó¨œÐ¡_Žò8B«ÑnPm¾û~là,:,äãhtÿfD sñŒuõPùý@ŵ?ËbæãzÐLDˆ”jxr?ƒ"£Ûð—)ðù%@ß‘Ïá\¾«O{e«‡?-¦ ɱwG-°ízLN€]²Ì+Ïð165Md§<Ñ.Ê­‡†@`÷mÔ¤£{+Çg¯_BRªyÊÒžWÃ(/[ìÇJ«ßì¶ÀÂÞ"RÆÂÄ¡áÁ-š¢Õ¥ðß[2> E _òú?¸ê'féD‹à3nyO¥™ë{àr—ãB£”új.ðüŠw"®w—…Úðñ£®Wmrx-––Ç%½þXÔB x6¸†ä¡n%TÙ Œ¦äZ1 ä_ÀtC;—)noI(íž#ÞGdÔ8¸¶-FÍvÄȦ븸Ìg$¢7ü#|âÄhTÛ†(ßx Ç Ÿz«EY ްóª*bÒÿ‹»^®RÜ}ežjr‰£ô1›â=ZEîÀ˜ÿ%áƒQÇ&7ŽkÍò9¤¡\Z_×è‰Ó®S.M†¸×V´­AÈ5û¢ÓŸü|·ˆ_”Ž ~wçûg}êô&ì—¹íÕ]³ÁÆM[u} «Z6½xùŠw‹7ÒüÌ ýñ8b±ßÐæ‰ ÑbÑfÑØ*vtFáòIdêz—Ðéš#5 z¡áAH3ZlÈ \'½_X¢+¤WôÅß%ϲ\I0Çyƒ§ÿLχlNÆÇRw‘¢E@}=ìÔ“Þÿ!NJüM/N™Šp“½ƒ`†>»b¿„"µ›Ç#Çݲêò)ù&1¾Îìùƒ—š”ú‰Œ0k•× zu»Î0M¹øM/05%šÓ™%Œµâp=>Õ?ÏÍðo“rSs­ÙÌûâ¶’â"Qÿç°±$#olé'èè5\ɽ&Qz ègejoó}Bóm\ê¬þê!á4cV<Ø¢ê†K$ŽŸ#!…©sÉѼ®øb÷.ìÝw¦˜j±y¹ZïíœU¸¼Ø1&‘-®m¤È6ëfíeÞ'ËCüLÝ7AŒ‰ ¸^Ëol´ë¸b¸ŠeŸGz›¥5G!›èkeÀ\‹i}=#U/çÑ+aÏpØs!óÕf˜×Ê|nðï£ð¹8ÊéøÑ×Z¤*ï\2¤Ÿ?²BŽï)Åüw´z)k’T3’bfÑ £Ü6cù·ØdkB4w|ÂÈhI_½Xiõ)ŒA~AVºÊË`[{Ã1Œ¡!¸éŽÖ¬ãb¯£‰8iUh\µÉ,˜Ö4“œ«r£BâÒ„ü÷ Y0ús¹¢¡¥†ûCé$"\ñnž]üM{‹¸a“8j~Lpc¶ðä rA–—QówqÑÈõ[µ ëCleN½¦o½Cˆ„ùøÖƒˆÕþú1m]3ht£õ+í̆«l¨~ú4ëZ?þRÐ^[ƲMöl‚Ê‘c¬9$Y/¢q@=X+…н°-¥к©Vþk2G^f´ê›¯ =³'7CÇ&‡/˜ga4¾Z–U‡ ¤RNJ¢ sÏã¬Òš•C*íÍÀ@ã˜ó-‰jÝÄå¨$½ØžÙÖæÇq–.ærØ7Ýþ3IÃërØó&C¿EòI§üMd\ªôúÙæµU)ê£núw± ý ‰ƒIÆ-i„ƒ¹>‚àJ%ÑŠÁ«2ºzqƒbô®šè'Ðg¨ªåÓê×1´]­`ärá«P#ìLw‡ÄÎŽ“ñœ¬=©Ø\&ø*>q=LÙŽÔ&âÓ¹¹–„[Yº¦[‘eEp)툓ûT^x;Ç1‡ŠlöYMÈ-q>Ru)sö¼eö".®ê¬Ñu3UìâZö=ãØúq©®Ùˆ³ºÐ$ýØýqÖﶈxÚÔ¦š× Ñb⸧·`ð6’Ù.ñü£”vDüLÉ÷@Í…{¢‡>•ÐoËåÁƒÖ%î ;ÐÛW¾?òÇ•„¯™íŸÛšÛ’‘Uöï×âVeÙ%À\âfú?‹v[Ê‚P‡.ƒ{Uk´uû‡ Îu{Z!`Z*½CÓLyöTZ™ÅéüØâmèÂ$\'Õ¯ŸÏ‰ ¡ªÙdXK¥tZ×ÚŽ±ÉêågM*C"aH2Bu–&?†z6æ §&å±òêÔѽÐ>>B#I¼£¹ 8ôOÙÄí}³^ºZ཭ïA…=X€]¡Õ3{è“X©þ㯓˜!ðVüJ ê ÐðMaƒ%K=Bäûm… òG«.Í=‘Hù@¬ÿˆ+¸/õ=¼|ÁmÒŒê jd€`ÎX>Þ“Ñi%̼TÕÞâÁ¨.ë’v9kÿ7#©að®ªÏön~þi!Ê¿çKë”Q~°¸Ðt\ÍI“eøŽ.Œ ZoQÈ5™jB«¶U ŸwŠ¢u]ðs‹ˆåÓ5¾ÜÔ³P&¿š½Úa¥(An€âq²lFäQ,O“£$Œ¤ ß7Óvo§¤Qù×ò¨•ÇÀU³L³+Þß…w¤C;úgS:üL÷µìd6¦ó¢EKÝ´m‰%mñ"j‰'äˆZ½ÁˆÇà•ކÀGt»õ+pÅ¡tÁƒ¦ŽEt™sßQ´ÜJªxR¼pl3ݤ[º¶×©Îö>—Òh¨f’ÿ· £¿^öÊÜüçìF>ëjãD‰U{šOÂ?š%&ÐXó™Ù·‚¼¥ ÷ZX¬4SR°˜fý¥ôSŒ€ =Í‚ w,dD" Ôrø#i í3÷å–ùßÄ~i)ª³wtO çT!"ÝéŽ`,£¥‰¯—o¾œsß%¯QüNbòÖQJ¢G¸é’­§-C˜ô$ÃôV»ð›Úlùvð®]ûý€y±ä­»~`Œ9Ë›O´9dLäx~9â±³YÑ;¡“tp›ÈØ]Vëcïø|ïˆ#²DÈ£òM}Ž’Iü²‘‘üýüÅQ1¼e‰R8 ²Ð—u¹O¯üòÀk.a’­îØI /ª6Å.ϲ¹ÝD]89’ˆ‘€ós€Y>/mU”ÚTMÈ¢qwÔιÊA·'zì6!þt¸@4íà?½ìÇr´HÄídÊ™Š?OA#,Û†–@MJLQ»#ÄüIöà¸B\2j—mÔX õR: @©cm ΘJ‰è'×™+žÀmº’T€´’Îümñ­ŽœëÐ;ûËi†¥@Ñô”©ø (îï0¨\¹„èo 8ÄêŠJ,ÿcs|$=•Lµ­“K\SѪ€ƒ?:¹4Zbt]"å Bò“óz@¤†áY­ÞòádƒÈulý‹ ì ôÍcù,MÂû³‚·ÝAȳ¤=r—ò‰ 4E+º¥ÜÚE‡g± ,^N†Ì¸„Yñ>’ƒ\– Þ7ÃãA§Nš˜Çìû/\vÚøâ,‘Ž£?Üýy´üL­àœ \Nñ gŒ“^”Òq ƒÌ5|vø”QBýþ )_Z©²Ù~% ÿzæ¯Æ®wˆ/(ÊçþÓè.®‘ ž…ç”°Y”Qx;HT°”d¶võ{ܨC´ibªM1Û¯_X‰,(vJ0zåì×Ó]æ¸Ò޵R|µ¦)ûœHÖ®Ó8ò=Z:mNFh³ù®sgeòa¸$Îû¢kŠg[§™„OÅå˜×£]#9´ ‹Œç"ZUôî! G8ª€ì¹îÒ*U&…j£-©‰ ,$ ]×C;XüLÍúJkçd.¯ßhæ/˜g § ‡ŠúÚ]è=HCP35T`˜EŒuê ö}óцz-ú†%fKu•Õ£ Ù»i‹\¸6M "…ÈAq°2ÏS1šót™«¤µé§b(ŠîÇFÚPºÜ!\Œ½óÐ1Ÿ{¢bn-ÁŽ úµÑ 0T±™5¡3>”VŸhGE6úÈz:ÈÔ•"÷Iüî¸àÓš»†cIÞ[ö5—ˆü@Î=ˆŠŸc‘E· byƒa"sƒQ¡„–Q·&T:E_ JE&hÚ6ùh”…¥‘+ vÍ[š/›ƒ¶IS}³%EH¢(É÷ÂUyTüÄr‚®Ÿ¹yZáO‘‘jOƒºôçõp¿&)°QL ¯,~Φj!ȶ…ì(éʹÒì$ï÷S«ô}Ò3K«Å»SæþäÀ¬ž“ó"æ~üž¢.!ÅQ5}ƒ]©¶Ë×ÐÙ¯3öù¹à$±¸~Ž£ç¾¢ ›ƒoŸØ,.ë~šÀžØž"íi ¶œvoÆÌ˜£„6ª¦¡WZ$ÚL[E†‰z%)ŒXèK‡? =yã0Vøá×Û}b—{µHBâëHÆC³¼Ýü=OL¬‚û“à[~…3Ó å¨:o/‰¤ÊH‚¼©‚¢›y ˜‚OggS>IýÄ ne/„;ÿÏíæòèÜÚÿØÿ,ßÔÞÜÓÿTõÜèæáíëíãïéâßÿºÐ×äæâÝÿÁáåïõúÿ ÿ×ÿsçæßãàäü|ªE§í:Þ›§ÂfØ'O±ÅºëEOæ> ð¿Ï–‰ñ ‡ˆôn)J%{⩪ 1éa]w¿C©òÓ̦Ç#oÛ${à¼i?Ztºòß6ÀT§“}%ä”G.V%ó(%É-§Šß…ƒJY˜MÌ.±Š,¹ êWœôÓQhA&/¢EšûdV[Іjë!gRéq^j£ü¬Ëf=õ¤Žd!­2J¶0qœVs¢– „mgD½œ*fò×}ÉW¥ÂgU4‚ÑÌPÁ¾ÞæéYºл«ƒU+0ms_+/¾7%ŠkúVû.Þª|"ø5-Ó)ÇEk`}™$ª*¿Óú„쌤hÍH|k¶¦Ô³ïj¥ @ÎRÖ“Ô¢ƒ#Vj§ïÖàլl"8»ÇîˆÓR/E%À( K³ ³o^=KÞPEqUßäÔ«gúÚÞô«@ŠìžtéLãøØzʬΩñœS¿Mœ =yxUÉû©#N~g&Œ«Ü-¸*f4#š9 ¬pèn-My¥·©6›ÆÕNøÏë¹Jì8Sá^cOFå×:ãXe‰mfÎ=gI%šܵe~œÕPÕžCÙµü5SJ›~"{¢¼ªÜ·|'Q,-ʰ“ú ð“Òžp†=ô[z]ߊD9œ¯F¤Õv÷°óu„0{»JÈš]]üK(A°¸ÏÃ+}?7¾0™¥°¥+,ЈfOáQV%IW˜D7‚¿ÆèèQ¸n%:À*RÃ/¨P擘•Ò÷ÎÈ4U`z…JÛô¥—$ÿÝ\ÖJ€»(t0Mgg’z©‘Éa¾#»ƒ!ùÄv~gŶÅPR?‡—±\^ÈŠ9ƒC%_ÓÎÔ9éØ3‘zÕ³ø”ªþ£› kcSžÉ‘?ÒÝÂMjV\½5‡üLê;Êáü‚ƒH®žvýSÌ…yç)繂Lâ0Z €þˆûÅ`d5¥ ¸‘û´ï;v¥MóÙ3’„W=äòÝUv~ã˜Mô† ªShf*ìhmð/×+GyãòÝ´{*A‹öoòÕ¬ukAŸYì«T¼œlz2`ƒî§ªo)…:°£NAo—ͶEϘ5­ü÷+Ä’'OÉÕòS¿>†Ð*0u²p6fdϘñ»ª•º^žÇ.œî“äß³A»lV‹êàM ÝøÅÿZ¿×G ÄgŠ/øöõÕœ1¦ºµüLÜ2ÈĽùâ/hx2".•ÑÒgë?­4k'Ø UWÙˆcÜ]àV§'þîß·OðÅÚ ÐŸÔ®â# ZU•´èëç[׫½=lO+ðál'ÞÆ›ïÚä²ã²ðv3AþzžüY™‚*‡`¼-ÀRÿG¶‚æ§v`ô´Æ-D£BR+îëS€ä¿Ë•ïù2I'½ÿ9 ŠÔ÷Î;›Ÿ8O¶ÕŸn'¼KUÄž ~UÌe-8ŒXÁ›>#ó–t™#& ©Ì9;%x‘Vq÷yÆnÁÃÍ’(WiŒbŸa!Ò ¦ËË]×lWhõÉü6k:'‘ƒöÛKû‘u„Öf^£šÜZs"šVçݹ>Ó À3²ÀŠ-P$¹qö"¬xt ã$P´§zã sªç 7gâ™›óUåy«RÍÝãâBŸÔÙh™ÜVKÛíR„-°•êfQc>{V×Õï¸I–4ñð>¿ QxH‹Â†,êÞÞ.n.ïa›ÓD÷@다ÎöhoŒðvöi(×T¸ñÞ*ë@Ã(I… ±«Pšxíy±¨ªGŸ–„q,H—õvT j~“qG·sñF«ÜŽåZÞŸ7äV‘Ð8 æüLªRƒÖ“ÈNÿ•Ãv3YÈAûì“{ž>³€|9-}AäHðîDMà3­˜yßãÀgwñö@˜wë©%ýþÑ3ʱøç›VVÇ<ˆ`tœ F Èž¯›Á+ƒ)šZË3ÖÙ®ÀsË8ú‘«|ò»—’´áÀ<æÏ²(­Ç|WMµ2³6Z\F·tʆýÎädi˜ jgŽÔ7AÙCä‚À'4/í;evqõó 3’𭔜(±±ö‰»Ó T]gÚa”¨«‰)¹,zÅ$Ý êIïì@˜WÜ~ÉE™+\üLÁÁúÞ¡:T Âà3ˆ`Xg(D¡®gz©w¸‘kÚÏ=#êïÙOËÁ,Á¡‹…¶b¢qy`?ŠQ¬øß_ ú´= ÕúêÁ #V²Òm•bÒç€âr`æI¥ðüOezõ›MÚçëÜó%¿53X70Të¾’r:$_`35¨íf¦iÅ6[îºæÙ7¬Ø«í×õÐ3>ÂܸÇSè©ïv-0{}ð3<Ë ÅaèÙ„üÕÞ²Fr6À“ µçº –¼x¶ìHë<¢P(fʶCšƒü|ªGÁÍ_ûȉEŠ7FÁÝÚe Ážxº#ÆQ2íu_ Q5W·…¶›ˆ—½÷7=ãÑ)HÊ…ÔzÆ«ÎÊBWï®7œüõŸNº õý#D¢A‹˜A™F$Ê!—˜µ®ýê­Êr€ Þˆ©8¶áx½’@pÂ5¨œœnáÑ)£Är‘Gf JÁÚ·éÝÄÝ)ãOõEnãDÎ}4¾Õ»ÍÂd}ulöã5- ¾\øÉzɦQ˜ô¼&UZó”tMÄžU¼m¨Ÿ:•sÆ, ,1/ÔýÌ))sü.cÙ«z\>C±Â-8û+×\ƒm=5=Õ °Jq¾ž*U鵇"6®=¤Õ²7´®'ÊœÞyO_©éå’Ë^n˜WÒ¡t“G1+ç…Ù7üäŽtW«Š÷“é¢×ˆÌ"ÙƒÔ’™_¥Pš©27Çmt@(gÔ}’TfVF öïG´ñ2aß6µ,=u°9ç|vnTA!ŒéL%˜®[d(…nRËGç‡Îƒ „>“£¶>‚RR TÞ ®YHÓ} ·œ@Ïä–ÈÌÄIv HÎðR5áMÆä¯¸eY4ôxȆ͊Ÿ|“êë5“µ ”›µ³Z\=®P]ü|®|àîDg‡wP6éȘXÁv5ÂÜžzl4 ùÉc¶’ç`·É5Áݯ̈¬B8Àe¥ÌO ‹£+•:¶6ÿSäù¨xäÔÚy—CJR¢Ѻ5˜zkvžó~ÄʇÇ[I\E¾Ý¤EáÅ ¾è,P c‘!`³öºR¢#àP±~.‘9õ—Íʳ’v"ŠÏ2~Â62]2?‹¹ž|Ç‘Nž~¿‰™Iˆ¼3Õ~Þ¤¸±»\¨ a=“nÝ^\,‡™]dµ ưo Eé·“ƒž”RŒŠƒV)´:¦|{,Û”Ò*ØCôýõÐá4r,Û`2|Ç­ös„B®«Wf£9i?¡ÿh¯RüL¨!ýðMËéûQ6\¶$:‘‡¦Äï ·ÓÓÙÞçª ‡­ sòHz zÕöÍÙ#bÆt âM¥ÿß},Uò]‹ EÉT!Ø ~ÙXE¦†â(3yaõ% 'ã=:~ýHÞÄ‹  1€áiÿX¦ ¶ª»k{½DC;³ðq_ô>nd=œt.vïÛxö _+ç~Ál|³`Ýpaë~yÞBÿà!À”Ð…Fü!OÇïMÂ¥™n3âð”í·c>ØDXHñ[qüX5Ÿ[&êÙˆW%# F$PPc×x¯‰P D>“oZŽJ²± ƒ¸«Â‹t -×qÖг¢–æ´ÙU½ßižRkƶ¨¬ÓÐ`oØrLYÚ„ç’*£ïãÇú.+7£×±m‡:b]½Þtá‘€Îç@÷v§Çò$[)ÑU×kçó3#÷NrµU&Ö›ÖF¯sÍ•¦×–A2±E1~ª¹`0|¶R¤Û’,B¬fûŸ»~;R—/ñ|(_Æ{ç…$¡Ù¾6»Qìù;—Â…üIøV´!5#ã ȯª"Á°Î•æÃ±3_–!)sbjµÜ§÷1¤ê$eªÜJ£ÐkñNKk‹»™¨‰à7\È|QðNÿºJ5 :0ç ɰÞ"½ ¤¡XϽ4 ÓšhæÇuœ÷*áÏsȳ©éµÚ!ƒ¬¹Ðll¡ñ: Iíý•¹w€Ý8¡›ÆY&‘hž`ïrŒ2¹_º#p¼Rìäfž|V‡™ƒ˜1é0 š.ÕXax…†¤º¶VÖh—sG”XDR¤GÐÍ[’Ïó¾‘2QõÚÔb ¢DãÒ„®üLØN`Eô˜YB!¸•²þŒ)zyÉùVs r·\¤Íú99gòšduJ—ª§Ét}è©iñµ»ƒqÏôöê̶}r€€`¤cÊUÀ×( €QQÄn޶4’îÉ…9›8ÚFÕ ¿ õßⵜà ÷Ö©µy 1Êã•¥ /ãhfgÇž.h5{·æu^:­«¸Â?®‡òÎo7Ã+Î)¦)íY,uò—‹Ñ^dÕ/·ÚppƒÕ^!Êù$nÌÞt–»^§þkð…1Æöü|ª3(Ë‚²»4LEV=DÒ.Éœ¤ƒ– ÍUp§ %‡'¯VÅX¥<,KùÂBu¼vlÓ3”©Ï¥„¾¡ÂÝ8[ÝÈûÉ5;‚Ré»êŒà{ [ñÀõ—] ©¬I|Fþã@ŠÝà­HMf¦Müç&‹Ùö^ :÷Bw{8~XÆ4qkæä?ECñ¶lD/ù)ÕוnXãj7H‚‘?HŠÞÄÃG0ÚT]ÖnaÛ»Å4¼æèçXltN‘ ʺ˜¶@ê=+Ð šaêWv é„JY³¢‹·øŸîHŸ”rŒBW$»íšÇ ì-û@Àç¾”µ^D¦ù£Ö¡0ˆÅØ#ÊR›Žk,_÷¸ÁZR=èð´w>à¡ù¸«ÃNˆgŸÆ¿¥íÑÊÀçc¶V4{ m…K¬…©Åà]ðš’ ¯wHóûõp–ht_ú¢ˆá?,BWèëüLÜš@œP1Ë“¶P“À‹ÿ!¤­Þ—z5^úSûr«Iù«yÞ´ÍÉëOããԵÕògÓ9‘T^8ãë"²zBrSM)²8^£×å&Úw~Ù-ï…ÏmÙã³Ø™ŸáxXÚÈ+ Îp‰Å¬h¬ ¦hˆy\Íw)\ þÇßí­“ Öš,mG«»¹¹TE Èoœ :©øµ£UŸ§¨8µ£Ùz8Å©eå´è@hÑq(ÿ^Tqìsò†.ó~”Û4šSôܸ|Ì’«¾‚뾪„$6Ãèà ²ñÃW¼Ѭ<¡C°üX®½I̪jþ‡Ë¾}O…4p=måu¯ÝeŸöÁB% /žs„…Ùñi ̯Èó\j4,DD£ãÀ8ÓòAyK_iS¦‰y>#ëSDýŠÈîx)¹]Ž#´'=VÝ\˜1:‚<Æ \ü,¶YOŒ¥ÒO/»`Ÿú¬;ýM¯ðeî “«ÅVdˆH¦4=”Æ*Á) 0¸hÂÃYWlG[YF F‘wž#ó|ü8¾A¾Ü0UsKºº97B tt޵|§‹&‡ý×þs‰Uëìü8üþ·i¢-ŒÞÄÕ¤t¹NñáƒåVî~?¤I)³¿–Í ¿Éõœ;R!ylU‹Swr1 ßèŽfB©“Ÿì‡§úã€T½Ý°>?2çª[@»r³üµƒrŒ‚Uô]›ÌI­òr?jÜ—hÓÃr4‰¡dñJL¤ÃCd˜+fÁÆÀÈĦgUróÞ…I¨%@u‘œ¨…¯$?1®‘c5“Ãod¬ú›“Øé<ñ_x«Ê&=„ˆälPtN¶NƒíÊô|ç‘[ ”rßùFÙ®~ÐAÌ’K?dÙcãÚ·°o¨Wü6i‡ï4L¸tzä÷™6†Ú‚ÐݳyŸAÚÑtM'–íýü[VMÔ7\f©)àyHGÒœîåHòê‹5²¦ÝÝüƒã¢ž@Õ ­õø©-÷²‘µ±T Çœ@à ]t— aXnyC8cºÜOË–`Ö4îYÀªÉÎÙ’ H¨y7${ ê‡/‚¯ç3Ü;WØ ”ìÇ2¢ÐÜ®J-5hÎff@?¯3˜BÝNò‰bñJ)#£¾P΢ÀEÄ­£aãc™øÏp€…°¯ô§p™l SïÑ€­“.mO{¥üXq2\†JÎ%mTÖ«'Š=.뷪〉%ójøåóÖPI÷#JÉëw£G/À•Àaªæ“FMýg§ª &n’ ×¼á!f¼ö4JÌx ºÛ+ø‘LPGÿÞ¿í{y;ˆ"Bìí«² ‘Z¹@´O@F[é}Ͷ#Ïw«Xq6È*ÅáªÞÁu’¹Óì.Ÿ*¨J²åöÓw¾é¸{iÁÚsßá@ŠÜ‘TñiM2ªŽíd£œµ æÍG/KŸ©o3Þߤ’:’íÑo&£ê¹ÈAÎä`S<ÚæfàüIõiÜoÀ•ôô®°k’?g'†•`²žõèxÕJþè2¹ƒÖ³;šL-Ž!|¥sMaÃ…ÄÝðκJм OÈëËÁ§m‹ÄyŠêú2Pìq!rmDvÝYæ,ÊÖ/šé¿9ÃËy‚ÆÅ,]’+†ò×f&TŒ.&fYZ£“ü×$NõP:z-Ø RêTqŒÔt³ë€=%tŒjª’¯å™ÅN0±½‚y(:fàáÜv‹Hw¤¶+ÒD-tµ>²›Ù"‚À/ƒC'é.e5„€Æàm:?ûºœëS_×ö<{{ü5T*´¢§E‘îgŸBú뙡,&‘a?­aÁÁÄ¢m£Œù¸g•wÚ•|ÿþ;¥¯‡)ô2N/çÂ>`QïåÆs'}liø‹ÂQÕö³ àíï©n PQÇÛ†ðˆO‚¾Â=µÒ**CNFGê ' íO죂ǨE¹ØM`ÖzÂÓxCp\Ò`¶2^¡©Ü.y²¥~’mjƒÍÆŸØfÕµû•WCp.l¡Ñd´‡±%¦v“ ‹¿!ò%•ÔŒU„¶Ò¹ôýÿƒûKÑU/D:å2ªÊÊ& :ÛÕPI¨ÒÞ¥« üM}ª¥“ìH.´ãú7EF7Ú›>½}à_d:î׃¿þ6uC.F÷åß‚ÀUkkMìÉ›vä $‚’ó©f¾ÌÂÆ¹>lú)èy¨ u‰¦ÜMe 2aòaê2|ƒ¬E¥NgƒC1áFŽ'¤ çÏ£F?žÞÅב™ÓªéM-³Û!(º@ fÌ¡eÏLÂÕ»=—zÓN&ÒÏ~€à·ÅÚDDíæbY½f»D•ãACÒFõ‘ëu;—ÙûI~¾Tÿ­ûc·Š°PaZ¡¢ˆ‡”RÀn+?³Í9AÂìYØøµèà=ò–7=ÁL­Jï#×AÉh)¿Êç!ÏüL».Ƀ-PUžßSf°Ç¢c–¢9otp @¶>6¿ ´,µPw‘{¤ùËî’€çÇ0Ñ ¯»'Ý9ëÀNHËá–[ø‡+B&Îø+ÈV¿·]fµiÜÝ¦Žž¹’iöÉxpœBácÈóöì·'’)Þ1.Y&uˆ)cÞC`lOvŸ|¼Ûz#O1æ^Q‹lzÀ!e`@7tÐþÁŒS_ÚÆ] bè9KÑÓU çŸÞ«$Î5}5 h/»°Y‹g†ÑIA)y‚~noüÉqìEÃc¬=5²ëp™i}#Æòôë=»ÕŠüL¨ØlzLd8g×/ú-bìH}&4•’ÿ”u$Î!Ã>7ŽÞ7byŒÉ×¥8Ãÿ5ßrU3pÏÑê¤*`_Õ†‘yÔž#ddÝl`œ¶¤æŽH‹P»“H0u—c¹2@Õw˜~y)ŒÃ¶š“HÅU5¥KÄgðEEAÂÀw¶Š)ŸñyNÕ£ÈP—^˜éM„`oâÓÓcp:2(ÿÓ¹$b~Xý§íD¦w6ëý;Cs´îV3*Z7°®]Qòyï«)lY)—<ªzïq‹\ˆ¤£h,$R?.xköz¡ã®I€lçNÓQ«2üL½éüŒãÐ}Ä’ý‰,=á—d<‘JªDFi»^C«7:¬Q¹"­z »ð¾K¯ ²5ŠXíÆu7Ç2#¼åñèø©¸øhš‚A¼Áôÿ>x•LÏ­¬$iÐ 6sWê!\ÞŸ\¸iºs0=Ýô^ ARç–> Þ¼#JGºQÄÓÏ]‚,Dü3ó².al’ÁOÇSêhcâü¾‘'.+ÛŸve^*bå&·‡èÆäÿBNš5÷!¡aÚàR-€ìK ´ÙëKJHý±ª™Ïæ¡.xFŠàH–”jÒâA%i¯ r!ùŒüL¾ØÚß’ðKqcP×r³-Ê? FÅщ+„Nè,àò#MOü[yàÍâd¼z}ØhÔ½¿8ÂBw$Œ•gnxtÒIŒÓÈ‹âkFV^³OP`^6IsóS5œè…jÎÐ9˜£ºÿ´ôí`~\£šv-œàË hÒJ õ÷ˆÖ!"”¢ øËÇ øñµ?€d»!+Íþ±¬Ø$ºe}¥t·ëêJœ½e0^)Z´¦Žc9pzTzûê>¿»(Aë¢kDß•rÕG‹Çãä %›iœºa·›Ú‚¢ü|ªG¯·’'úTñ5ÿûz8$B/k\ä®—nªÏöšOtALªŒ!Lg›øhD‘DÔ>¼ÝÈÈ|Î äEóOê1¬DmOKHÏò8tdœ¤{ ÁZ Ð8ìt¡ç$FÙ´¢îùÕÔ€óÄ]&dÞ-ÖÓ|i”&úzi ;öþÑoÍŽBðNJr{s*^ƒ+ ä } ,¿â}¨/öôGÝ‘ DŠ>Ù÷ ¾C[;éiBåÙ ZÑô“ç¯Ýî†uhóÙ‡u| Õ³zGÓHƒ5'É!ŒGÔc÷GºXrcù@<é¿6Z Ÿ%"¿Ý§§\ýsóɬ…½1ƒe;‡¤;*\DªŠæA^A`€¡ À¡b›Jžõ~:ÔôÌvúrA.güØ'æ!XR·5±d¯ó—Ch¦ öh=o9üÑÏǰŸv1•­yHWÒiÍ=ªäN~í~抓l›ÆÀû™®!.i€‹nâê":0kEÙÆÖ.8áÜû–Å¡b´hO¡KX“/vSÐXïl¨ïŸŸ ü@6F€ã3ö–bA«N-€çËQø;˜íÍü/·°Áï¸!ø<1‚£Dü7ƧúfiJö,ÇvÂlæz*gWªïÙJ¯2c•¦ïÖ–ÆrÍsŠ©*}ñö^U·†mϸV5Ú?g¶öäð$÷ÄràÂðCÉÒ±BY½â¢|ˆxO«ÆfŽm¥umךŒCý»ø늱U(T¥¢À–‡Ås òcž\O\—à‡EðÄUÐu‹°Bc 7X”èË%‰=s5!á&Š£7od:l ?üÈNJ$ÿðÚ{]`Q*êfÜ ßüJ„o¯®¼Œ¸ðޝÁ®fèQ2ÝsŸÑgÑÖ±ÛN Kv ë ä}x· ž9©Ù„è5fuïµÚ*h!ªF™)Vt‰Qf™–žhëÜÕΕ:hû)…²Ú—ÿÇr—Áˆ"ü‹î$:"¯+0JjLi[M`Ç\¶UíÏVQ ²'Uï©As#üLö[ã8‰ð¦Ö£f朢¹äg@ˆp¬ ²ç­š Ê¡;d ¶­*üð×Àç&‚¬xhØc =g·ƒ¯Yä” ýxz7¨áÓàìgOÜëHCØŸè{ŠÚ$x«äyµTÕ4´Ÿj{.+<Ø^D-φLM•¦„ Y|pøÅpøÿCž{^ÅõON9ÃTÞ/ë[1hH«æ5Õ›Ô/ZêÝ>Ëœ‡µ°t¸aA0À¨5¿¥h K]Vƒi*²>?:u˜³=EVuœšùT#™5/©¶MÁšÚ;N¯X4ãŸóLê6Tö¦sD +Ò@[>kzÚˆ(ÛX2iv÷–æÑ2’üðÑÓt &¸;êÔ·b0¾ÊIf{8ÎXÌjŸÉßAÖt¦ª¯F¾8g^à`3<>>!K¥{ÞÔ´·ÎP-­¬xµÏa½Ð¯áŽQ?"“Àµ8fÆË°R]¿Â­ñ¹Øï6ÎK ÙUØ*ß‘ìµ [Áö—CPQD%+µ¢žô~ž¶ÿì,³hÚ$ÞÖÙ|ê&«Ë®‚j0¹í¤IºÂë4ÉP<ª¼ç­~ãVà4ŒdêjÍ!1'cÆåqK!•j«8ýÑÝf€°ZЈ-$ʇc f©§²üIîêÌdÄÔ«Óapwv–ƒn¶&Cqì³ØñøÿÆ %\.Û©ä â¢ýƆí#D?/v+®j&ý8ý~ù¾ÕT¯ÛVJbA‚Ul²y³¸ÎöeÅ"òŽ½ïŒ )39„šÑ—Ü} ±ûò,yœ¦§‘‹[{ñžP[œ¬Àvf]ѧý'˜õ©¹6S¦MÄ_m›ÎÚØ\àºzzXì"¤,23–ZKÀ‚# cäv`Må¢:4‚ i`UV’d8zÒ®tÜ ¶rß*%¹b]ÖÔ ÿaJ¢Ù³›”îü|›°Œ> |gLw[íSPºÕµzÿN²`qSå”3_ÈÕ’¸%?ðĨë Ô|-$hðÒnä¿®|<ë‹Ç²ÕÖ…Ð å¶]‘Ý¢féIe.VhC]´ÜˆÚåiŽk‘êì.šµ>ý ‰ú×…?s!ÄYãmn˜³?>³°è*/xݪ’W°¶0ï|§°R®Üáhÿ”9ü?Lê…fÿÙÂNOgÂ<®M±²ì«N‹/÷yÞ “‚øYæ](LÒDp¢$&z–\48[(S(%ìÿLí`ŠÁOùq™^í£Ôy`¼ Y„%ÁŠUü `zåžv~ëo@=(²W# FZL‡ž5?@Ä<®c€Óˆ.1·Uä(Å|ÉÃ\Ó¸îß¿Rt ÒÎü‚«–¼á¾ò9GϦQ·–Zaã¬Ä¾¥÷»1…Ðn11jv®úÓL‹rÍ=e«@,MIÉÚ|GG{ôS5 ̰&ƒšAdĺ]ÔÑ ¥éP69 ‘8T°ÿÁt£ÉiÙu“«\ð¼ßP¿£Ä‘5|6Õ~Üd’Ç—ˆ…Þ|-KÚ æÿüJ@®½«~Y“JP?gÇœ…i|®Ìá¹Aípg["G¶:„¸Ï'à45CÃÿEògÀl'ˆ×&˜¢ô„üì’r(ŽÓ ¬A6a¬ç™K¾§@ŸÐÞ‰{@«Oâ.í—é‘ š>нøu0eŸÅmš›1ƒQC4—+jŽË²¶Íž¡½ØW.WzN+ûU®cÆŽ+Äã•lêËvŠ“6@°næBÏæhDz«µ¡"èÁ»>˜n Ü‹OZ[‘,>製nãœp€"­Tö¬yu¿Ì»µ wþ?Q'S§›ü°È:WÝVcQ0¨‚¢¢Ü뢵¿ýh¤–inŠ]nÜõX*¸ßýRï×3Ç(hPz8pv„¦âRáoœÖ5R›¦<æªkŽ…÷m¬+ýs‘ƒ‹¡æwĹTÝ©‘†Â,\SäÒèT/¡,à´M½;B’øÍ,‘µqÔú† m\Í×*ÆnGºhºLj½‹­²bñ/aÄó‘u~¢…)Q~_\¼¶”Q·2ÍG…$×·ëÔ¢X8“Ø$ ²LÎV?´Â(/îŒ1£ Z„c ë¤ÆDrø¨çãoÆÍ8(ÐëðJß%mp­üJ"„G!I[7ëSCP€BŸý÷çÍ×2„¥2-C¼ƒ<ùP¬9Öqùü3¡s+¶®p6é¤e{aJ²S!d€Òw†H1päP%Q‡ïð(A€Ÿ3i9Æ#4E‹3­´¯ØC¤µ‹kð¢£_èõ¿qŠKúeSLË­ê—âò+ô!ËÎ Ö"Ë­îº4““H8ý—” Á]•„ÀUhjD’B¹ð˜ ̓¨r“ï+óVì¡Y?ãRwh¾4Û–ApEOÕ«><Šj¼ ¡dþÈŠx$7e-5T>€¯iá]ŠüLÝEMü=þr߯t"J%¡ó ðcÛïñ•œ×À͜ۇsQB!Èø¸l„ˆ)ÇBÜæ‡.¢õ¶ˆ M¯5½K0·Üv¯4?A‡Ù̬5 ‰ªcÙSkÈÞ45Ìl½ŽfþÙªüSÓÎ’©×@^÷uu ʼyS×xÿK¥JïÛ Ÿà3šŒW 9ê¶¡²xèª~l_Ð4êýZÏŒYï}?bÒ@ë\Bƒ‚aeÁÝZÕbA²%*G’õ]ùN´ØýFÑŒÈfÀ“™uóÆLQðöѤ”knƒÓ2yÎéµ[lqÎÌ5:pUó^/Äüðä/á¤}@h¡Mæœÿædæÿ¯að¢1ÒÝ…ÉßAÔ… à†®·Ÿ)MË=bVzf¶Ù[ƒ°¨â3$\wíœM-¾¯1‰6\GMN×âC¬‰¤Ð ó™×Ÿ7Ãh_5Ž+–¥²Û±ëíÆ,Ì2;š ‰Í-Ut GL¾êÖÒKÃ3GHª2É‹hŠG•³9°û™+ÁU ®U#΂"R¼/«©LGZa[kû¢#‹ªƒ<Ó› ïöôÇ/‡Åâoî \žÙUð¥%Û “ØÆ÷khcøŸ/°jš†oQ¬Zúëì­X4n¢$µüL¬$b.R–7G¹¼˜]q#>C@± J~Ü‘{ gõž¦9×_e±aúôÏú˜lüíÀ¦PCè† Äì8ÍÆ‰(ý8­ƒBƒ˜‘gÄ‚ºXœ "_³½T¯Sžl“mµD–@UëâD©²Q8nhÍ ·$«£wMØqÑ0+ºRùX/sµ2›]¬ÖÔÄ››ÇÌXôD0´§v¬™ÿä s8«Aë%Î 3fމ:cS9x]²›¢n­-]ß5&° ¶ÄC òÜôE\f+ µŒ¾î d$¶ÄùQaŽ ²º/êŽÚnØá²¨î` °?TÝQãÙÅlÏ3¨é#ûÌlníü|¬äº1€ hAœô¬.µÁ\~T dÿqÕi0¿Ø)„­„=”Âå‰}ïœe¨á˜Elû5©h¢¥P¬…÷8;XÒ_u”fÆž¨»ŸŽcX‹®Ÿˆ‰8¥Â©ð€hA¶ÑìØ4’OÕ70†ËÏrÏ«4ì"h*1 :ž^Á1³Çψv-/ÇRqîÙ¼„úã£Ìì¦ûµú=BÓÓ¬wÕ‘ïÉ­Gešô1Tp*ûQÔï‡æÏEÖ¨© fK{9*C^\-£ÏVøF8‡[U‚&>GÕ%£L–óKEÇ1<úðßZx/¥‚+S€w•/Y;—úßÊ>ÏØß”ˆßž…@8Èú]¦^p#aâËÛ´r—ìæÃ®-÷!kˆAË;¸’ôÈ”vhVp6lµÓÝ©Ž®çVj_úþñµI®ëjæÞâÙãRcJ8GF¥ïrÏeß`Ž0†…vûEN-´ÃÛe*PNQeÈ-ú=Û\,K&ð6ýŒ .y³ùäN·ô¿ýƒ<±Ì¤&?£ŸŽ(4Š’¬5¢A¥SS3ü:¥Üëƒò†5În1‰[mªì§… ¡¾<µÄü(¾‘y{͆ª„NŒýomDÃü|·× ÄÐwrä°nÌç†BG.jHµí㼑ÞM=}ZÜ×üZ(¡žuÆéþ+ìS¿!䃹«ß‡ð[ª·óÑ]’ǘ¼[ï÷Úx`„Èp£»é‰3n[Ó¥î+Šú¡ô³qsVéÕ$z1D–òiÏÇŽ)¹JÏߦ ø”5si­6#¬‰/ëù{b›Äk5BCÈ8ÇlJ¡Ù»'¶žr‡öN’ßë#³@Ü¥ñQ{?þÖâ·ña øBæÅË€–ˆFqñ1ôô(»£™Ñ@*3ŠCéJ£EeØþcô‘Efš­~­Ø:íºg'JO{õ¦Í›ÝO1Õ!oéÄŠpxG ¨p†£ÅApÍKxÉ®˜?Á^oëŒ>æƒÞ…“Ýr™[‰ Õrr4Thw'¶©éLYú !WvlóÎ[m¨¤ ôÑÁ(i[šÛËbɺÝ-5?[Èÿ«:ìÓžüM”‰-f#NØL€‘R ÿõ2ØqŒ”÷úéëð$g f¶M„¨Â% d/Ð4Li³ý—õæT^³0õVÔÌv¼ûãÝ.ÖÏ<æc«åèLI†·(ÀÇži·Ñ"^÷R³Aa?•@í\*×"¿)³×Lä‚¥û Tþ"ÏÉßÝ–Mó÷®žžÑd{hp‘)|µ`éà&Lzúüû"½>›eÿµ!ÈðßµŽÅ â—úµôz„?œZxë¶Fº£'N ôxK·ß"X&‡¹}-äÌ߬“°ÚóÄcÂüMYBÄùèU;û  ¤P©z•ÿÚ½ID~p¥-ÎßÌ€*éÍb0ƒ¤<*zåSŒ?ÕŽÜÉBïjíD›µ4ë‰;eŠÌ\–ƒ‹Fåù»rÈmϘ<§L.“æÊ}‹ ž°8Y„ZäM(£•Zvû9ö&fk€âzVjò /M߈…9¥öoF¸rE’pÖ'"eÒ£óÛG4%S¥'fÞF*É.|â!UFV9mO³q!bÁ‡À­ûÖËjñ%£ª’ñ-$õåÞ‹óP_ülí_,àû‰3ôç¿ ƒ6›êûmüK5ˆv‹‹‚1ИzO1åLg0 îXoa=d³'Gëééã+Ì“¢Q*1㉻}e½}5ú²žî½*ç`èà†7ð¹ÇégΪºÆ‰Ñÿ²dïβɤN" ÑÉv@a5d"§.<ùV÷*yÁqˆ_A[ƒÎåý õù1A÷hýJ—ÿ³š¶Šá1âÝÔñiÈÕn7/‰^7f—xG¯°~'[BšÁÂ…57mµÚ:*gÛ âf4ÝS°ÐZ—Ï' üÃøŠ:Iß&3ã«Tú?nå6©¤n ©üKb½FþäM¹Œ‘Ë43Óç7o×/ñwgØ33.‚(ü™…DËÇ@þ>80³7d¤}¸ Ôì`9kƒ^UÔ¬j ¦˜ÏYiø 2¦ö½‘îƒ/,šoDë˜ÓB€“A1 ²Ã¯F¬ F§ó«áKS¥àÙ€¶>@…šxªÒc”2%ñ%¾¶ö5(ÁÁpŒ;Ì4@4·+H}Pm|q!õ¦>CÃ’-Ó~Ĭ³ÙÂó‚ÁZžÈÑÎc5îßð˜ì¾JèA_©wÐ<“¯–)=~8 DIüL©¦¦ÿÜPpâo¡¤½º]†ùV»þ¡­/ÀŸŽEZÖȇeG\ú¶:Ò¨°D;LÏð*Öç¶fijŠœ1‹ÁYãí¼ÚØÓ Ü§T³“j`yúü;ÿ¸ñöæe…X¬HÏf9)_‚ÚÃ2Vƒ’o‘Ž"Çi•xßMd´”§¼™nÄð«,niÛ½¡íº˜ k³Ì*v}ýgm³KäKl©^ñ~Ýæð8SýZkÊWG^RÙW‹Í)Å2ij庈Τz· ï´M,-¢]à/?£5¿ÝëŽÔªiõüM&OMÿÓEÐb_{!WÞ‡#\ô vjb䈤ƒM8¢±ÍFó9ç•«ì™@ÑvP¶ÛwÐ ‰ˆ”¦‚îüS–j/kCA¬ME,­ ¤é Ì@z_Ü×5¾j‰rÖêZ[)¥˜D­B3µZ¾çg=pd0Î,U õÒ"´Y˜ò@Ÿã%¸];LÈ-¡aä€)J„rÚ¨!³Ç62²AQdÄ'ùPy’½ð%Ñ¢‹1ƒ”ù ”}B¹udÆ÷Cž©‰#N1ÁõÚl:.­YÇ ñ(p¯¦–Hôn©*`ÃcOggS€ùIýÄ nféÿW«<àßåïèóÿ”ÿ"î÷òíëÿ˜àãäææåÿ–ÕÝÙÛàïïÿ\éëúýóÿÁÿàðêêâÿ®êçêìêóÿØÿCüM|ý"—e& @ƒ}Wÿ»i-c—!!-ƉbÞ&P$û/±üÓ”nSû‰£û£ä²Êì°´ƒ‹5^d–ÛÄÌ[\ªµSé|ÛóÛ9&šÔc•ÿpXql…CSÝñ¢gäp+öd ÇôÇú$‰‘0â¯`[ä`DõA>‰sÙÞôïéo-”š¶=xEžÄˆÉ¤o™ä.–ˆŽ€Båè4К€«Ò9ÍÙZ?Ük¹»¹v„ó….ʼ“KurS9ûg@‘¶Ø¤ª3Øžœ&;üÙ)¿+ÖŒ ¢N• ݳàÙúOÀó„L ÁGGF«w‚€®ÕZfú !@žZÅŒá/ûq¶xÙéÚ`£*8K5“u7J~ˆUgU#_Y«y3ÅZ$. €EXOw¢´ÛOyáì›_Þ Tã\qƒg&í¿:$i”óG2G—ëÿvoqŒ›.U:ÐÙ„.óz#<º¯u˜š­Á2$ B™ÛäË!/³~vÞOW1¦/G(Sÿ.ÁÃî-«À&Fß/G;t(è’Ð4ÅÑN†¾2ÊщöÀLås±È ܲÒIüMyiØÅÆzdã¨$x j¬ÇtrŽdò»fMíŸÈš5]–º zq¼¢.|Œ¾ò©ïNOÛ8INgÖ¶û§IJ0‹JóŽ-]’É—$PÛZR¦[½¸iµMΑí¤E˦+ormï‰7Êš ⌦n1$+ñ¡ æ±cP7%#—3 64J¬ßx'«¸ù ±Åä±?Ï—îÂ+K›V¿wç÷^ )¯Ìs5£^ÒU@Ϻ‰|¶±¥Kb¦"8ÌýVzy½ |9}=Ð(ƒ‰+ªßÛÓxzÚ-}ï#jåÚüJ‡î¢ ¬ŒãÌšÄ9©XèÂXú7ô•V¦Vg$£ª¡”«§wýŸäù‹Ò;áQG—1]ߣªÓíD¹åðé Gô²”4‹éGòõ/÷ýžÜËÕž8X˜Èo„ùé¹wªJf¨Ö”» !ˆ›)¶X«_w~èÕl)­­täÇÚIüßµôèÙ±Óuƒ³²uÖ9ûÇç¢TpsB–1)JõQ9è[×ýýù¶­¸oþšÉò\óͪ9k’‡‰¾¼0ÇŽÂ$~9—fÝÆÅ3Ù[†IDJÌŽL+3þ¬·ÖllÍu¢wÕw³u2?Á»ÀãözWŒ¸ýW„¦Ýé¡¿•} ™*Püï!v´¶@ûÓÙr°lèî3üÅN?½¸ÄV)ÄÚWôⱉ FZ´±† ¡3H&½Â³…/øð7!åñcýã)p,š–Ðv „dDNRV+šâÎT¨ '>ظ?…zZ"Ó‚ á’&ZvUÛßÙŠNøå$µ'Èk×OAN£DgX %aA Lg ‡_9;¿ß1þI Êf–ɦÀKD»ü~eð)™˜ý_¶¶È[†Û”Ÿ»¥{e‚;5 …¤•=9²éPKúl'ÊÁXör=¡n·ŒlTM­f=€ƒ0 ÞÑHi&+@òFL§Ýø6p äQ4µPý‚¹†Î¡;ËYͶúZUÊIüL¼¥(%ÀüZŽÖ'2ßI §Ãä] /uÔÃÆéxÐPÙœgº'0§ùÁ N<¿”L|AÞÒ‰n`0ŽØJ™ùæn49Zï®§ì)ÓO®Wy…6­þ0Må«BË;>¬o­Ó┞:µ(X'¸ ¯âTøÇÔþðÞæ"Ö> Bxcgåq6‡ŸºæýJ«±ßVÓ|jþ¶Ñ:4­ZTþÔOqp’Î6¤ÔÚç¨ðÝÀ|¶ñ…Ã]Ó¸x Bk$—Bþ{€Xh΄¹à=cQ%î׺¤¸žZúMuÚê"Úä qL˜©I ûgÉveÖ«d Ãÿ}…ÞòÐg‰¤Nôöw}?‹Ê&Ňñ„þ.+ÿ 9™w¬ ®v.·üM2œSÒ®+-ïuôŽSô›»‘ÿR6ÂÕ¬íÅfÝ€2´¯TÌßÌ?ÕÍÙAaA‹à‘;ðËpiwšÃ[½Nm¡È—ÑsÛ­b:ˆ¢™> êJYÝJ"è(i®ˆ¼d³ri_æYÄb'~}V€fAMÁQå’¿ž,Frt^×W?-5&ɶΫœeEB;VPdÌ ‡.o*>×½!ˆÄÊë[+Ý $©ÐܸÎ×ÏÓCà0ìNâ醡ªKÍ 6dÞ7rƒ«õxcŒóµV2=eÓŠ¹’&B1czMTÄ›8Õá ™3‘óüX¸"$‰×[¥I¤iî9ú32„­ñâÊ'ö*ú¢û½ P‡Yb€[ãIÅð–:F÷¬âÝðÁ<Ë[…'¿ß^[IY¾—uXt¡)«åïGæª2¬'2¦›/p¥VµépÆ>ÞË^z4 Yÿ¹J&—%ŸšK#…ÌòŒ·ÓÀ ÿi3Í,¿ÍÀ"F ­N¹ÜªIŒîØMtÈ+×ËTÉ‹fè¡q¦Æ[±²(¥é²"E?“" ®;2.êbÿ´æ ¿mG[+´8³Ó×LµÌ¶Æ àœ¬Xå€&†1jÏa»˜Ìùù­½òÏï>ú¬|¥cö± ¼ú0'‡iË4á~p¼6cüðÛ)âbÄš‚‹.LrõsãÙ˜ržojE׸‹8ÖJ¡láË ü ô9–³y=úœI~§¯G,T‘ÂH J(\zGû¸6TdðÀ·äq7¹|É*v¬o;y‹†™G‰¿jm ‰T%¾Ê"†t³Ë–Êù€CCp^—’ìÓj±+µ‰¿&gzÑ­„ÜÙÑÚ,^üìÇú MdõË{†xƒ.i?)Z#O“æ—ð5dü^-º‡ÿçßTMCÏ*B›š+ÆIhWÍ~M‘¿{:DXKnyøÎý ¨\vûüí—ÆüØw¸¢»Äµü/ ÒQ<«B‰Ž¢´²_á“ãðÀ»±Éjw·œøuÞºGÑ–ÉšÍÿ›µGøÜ9ÙË“ÏÞ­û™¹åÞ”³Vz{ü|š³_Õ4Â2Q_p~nú¼ÑÞü»JBÞ¢±£ Ã9J{¹“ƒ6ë™ãn“~ ôš &-ãÐèù Ç*À[ÖR£ãêÓŸš°šxÒKÀ6IàCš’Ö‚üLÈÎ73™§2¡¢ 0®Þ6øbœç,GE‚inªošU0ìʈ9ÚI ùâLæ!™9.{Ù£R |±¬–›ÎàÈgµÔ/«/cÝ®äuŸ‘†Å\³’Îy'jþÓ¼€½‚žr”[XªWyf¯œ±hY³þ¸%ÏE}B LÚ×Ý6H¡ åO§ñÂþ’s¿$ñ/¤•¤*ž’(Øn¹<æP•]sCâÇw>Í–ßÑçèœâÉ<ºÍ÷_üUxÞj¢$v2•WÊêSW=ÊÀº|²”gqÛl|ùºJüüXÕ¤‰\å«C4ÿ¼<§‹SqB„S2H)~‹× oîqxøf æa–9aœ«}¬®ú¨\!Ôù¢ÃûD}û¤9~rËzo}goÿ—x¡ÞnñB¦Ü­ËW®ÃéSL?‘"8•Eê9«ÎéS îø`#Ü‘… à†…­Ûo‰!µèBY`æÒÜe§w< †bìEñÕW®9ip 7ydn†ðòT Ÿ¡*°í“—!Ýè%Î&5Æ®S$Ç27#öKâwVoa„·XÝj8ˆ˜ÔÆÍh°™ž¢õšã°OÈÚ“MQ)NùüL»d­ÐÀ»²—岫ŸÁ®¹5þ«Í‰*ira›¿W·°4ɱj°ÑÑ 2ó†0üC¸Jsíà]à¨×6e¤„«¼#0Òiº4ÃKDfPÆ y‡Y^›û¼d&BhAdýR­A)E ß—ùÿ˜°JÉb=>M5ÈìaŽ[w` Ä@pfö‹q÷9ôÐÔÒ6ÉÕ}3Îè™íÔ~ýàöþ[H/c"—ÜmAg+”ýç1ô·«ÔB²Sæ†<8PTªÔ³ò†Æ#!—b­–þæ¸h`z¶QüLØ™%Ý »³7Án ×j|?ÖjÝÊJ}˜óïùåïŒYÐ\I‡·ÂDðÌð÷ü¤(ÝiÌ|ðq¿ˆO˜›jÈN.ˆ‚±UV°'r9`Í•b®{žLF.‹,d;¯öB½Íp$Ì dù@!ä6ã´“!\Lsø2µ‚lo6#_¼-Â%&vŠëq-$E (½3Òi¿Ë‘zË”BØ­Ô¢órœLˆÝáŸðÕ J ù£=Éè™Õ«ý¥PÛCA”Π`(êÉTú’š.ôJ  QÛL ÒG[!Dï}Î0[Eôt`!ö/µÚ‹H’ˆÑãàø¸R–rÞÈf:¾©¤: ïz±$](¨x…ŸÍ?o¯CóêûÓóåÿü|sV?ï-<;QÅVx[ïž8Çei¥Ô{t©ÐWá½A#a¦Óó䯳ÎeÖ—çf2Ô`cm€÷¯@´­I ù;! Œ¶þ>ýµ¡`NêõI&{ëÁ×;ÇÕÿï»Fv—$¢úµGP(Àö§¯@}‰]Ã)-a•$zä¡€9JõõóŽÁ\°¢¢°[½ÁP ¹9 …µ-ÿ ùåã)'(×%ÄÃ&OÍ)¡ÜgIØÄª9é´ª˜ÐßÅô§VrÙÖ¿9¾'ÿöŒ­ðFÕPã5à…€;ö‘©°oðvNÌ6·ßTJ,£I JÔxæÇ dN–ݺ&µõˆÕÿ Ýö¶„æKYA8~ ®,㩎<m#$7í¯Û˜  [F›èR'‹›ctS¤©(‘ZjvÝæ2Æ<¢ò!ÀHÃ#fVQÚDò°Ì”ËAáeG̶•zvÃè>q‹&ô¸ìx¯:Áäf,í1^¾qÏÔfÔþŪ'‹(ÞͤUÅP ž´·#¿Ä¡Eãˉ¦J÷"ù ¦Þü1y—AãÏw’²¬õ%þt±ÃÒø¥Ä퀕šŒTÃHļYæ’—É·Èß’‘»´YÄíLÒ²_º_GþL°;œ dš T§à:ÎÂNpû* ÒN[>¢^y×?1Ûážsk›ë"Xýp¤ÇQ«ÓpÉ,Û‘Ô\èCÑ¥<ÁÍ9¼ûQÏ^IõQ‰Ë¯Úؽ™ 2¼×}aúM6vŽˆö ¥ã’–6I¢J©¦Q2a²Ù³Î((ñ ø1'!ÁlБ-rüÛrã6íâiÒß{–îû.ÿ<œæ€àò¾T&²nÁ€·I’Y¤N Âm¯Þº²‘Éë®Gïd Â<Í’úÞ§:™¹F?.À(º¤ö(a‹Ã§¸資ˆÍÙ’µ5Ól‡átÞ‡áN³ñbæa`^Çï©·Ä0'J½Füÿ_8îy!üIS|NM\­!PÝ~¼A* hÖÅÅGÜœ8zfàk·x‘Þ\$KªØÄø¶±æ³y„¿´Óöe)ߪ¥/º9×Z,9²á¿zãÇÀ #y¡HüM)£UÝæ¢wû¡™ý^qj áø‹ð÷‚ NÍ¢’ö Oñ÷RL©4Ðz‹û\ZDÿðc(j°»‡\)6œBCâÑ.Ž{œÙ«‘ÓU\^†“# ^2L P#Üå¯B~‰ãl•¶-”eqœ%Ã}KƒýÈW›¯#RW•AüÛƒÉëÖ!^뉃˜ÜƒY$GSpLªÊëü4/F#Òàžš‚ã¦íud¥L؆—ãTEí:é- )JýªW¸W;:@»WÑcÞë–Á•åIæðI£\„o_+žØ·@—±/|Þ *Û|ãÈü³k—ðv.ÿIKm·Ý²1¶ïËšH)â{ó^[õ/ëm;ÝÄó#œh.^^þznY}§EÖ]»#®3_±]»ÊN¶ø‚ üƒ0 0æ6œ±·a3·Wüü[ÅAÙvæiC–"HüLµcÔà^ÂÕ[àHR|O´û†YõM»/Eiª ®ssRdFØ_4jŸ¸5m ì§ï¦ñ6ÔûO Òt]oÌKaf”Dä8^ ¨OFµ7Ak¹a˜þJ97 ÎúCbbPm[ª§¯~›°r, CŸà³¼0] õùsä¬rÓv¬ÅǬ!¨ÙÞ/óoQÒŽqÓA>œ¹ÎÜ0. @¨³}¢–uìÉ‹IKöh䲚©T0×T¨àÆe„æËøÌ;´Íàž_UDã°¬‰>ê!E_‚m×muE’úP'0G&üÛ…xÍ19ÔI`æräÐ.` …s¬ï£ò€‹Û¤z£G <’B¹rgïüߢWewSC+gýó@Ž!¦ŒüX¸glúæ#¿luW-¢ ,²Ë¬ åŠ= ù{;ËÔN‰ÎÐ@.u½Æ&¸:_¦û‹ÜàÕ€q†G ­Õ™¤&´$äWh÷$›ô¿ ǧ&ΩILŸNɘAMrY½sUß…JeZû[ø­D¡Íñ֦ܽ~x(YÞ[æ†ò‹ö¬°ºÈüu—äA[/ï¨ìÓØ °.}íãɺ}/Ndð‚äËó†Oô$ó <Õµ3Ãg†­j3ô2gŽ|®eX…h‰ gŸ(Eçª'jY‚£àTÕB LƒIxK^TxºG@ÿcƒ®$`‚Kddy€WÛa{U#;Ú•{Z"‹üV½çC#íw(1wMƒþÔë‡Ì='¾x½`Ùã#,ÏGáÐk:§•(÷[ßÐàîÏWíBC Vu Å~»Ì´Ï|€¬P=*ÒN‰ù±Ÿ¹Uô»øƒ~N›‹@37 D op¬Ýx"œIý‡I©Ø=´†bQâ8 ‚15…£˜×YüŒ\;û5î,^élÚo\zJøó´’tû”ú/ h¶ ÕÀ°GýyìDG”å Ò #S€ujĽ;àþ[÷ NmDí™§A„Åj¹dú+¥ïò¥&Y/Pvļ5júWZçVÊ‹JbPg“›¬ÉÌt2îàü4ý09l%õÃëòp™ ±cõ"€)’^ðœA#ÁÎe’º6þ÷.Óx¢hz ¯6šŒZF&“ #àú£ëÜû(WB‰Ùë .÷ïÃé5ìPÏ“r.ÉæÜÁˆäY8"¶fÔÎ!!,9ˆR;­á%7 æ?A ÿ+[QTKís†j ò2ÎÝTkÀ¥v¨HÄ©Óñ •æ­‚A`H6wμ¶?%ö~&e´Ì&ÿ£Ü éòH|£îËI­O`'þóïwÓ즶^¶ú¶2¥¹º—Ÿ 4똃ñL.>¿ãªˆ:V-gé ‡æü|§©ÑiÈ×ÐŒY` Úߌ@âCëϰá©`±îô£Ò8‚®êßgl>»s¦€¦ƒ¹O§·ClÂ%\ÑeÍ«ul:Pð <ÓŽhd.b5CùTr˜oÏî5¢Ðÿ¯ï¯½ HoEñ+hèŒCˆìL{ÿ'î6GM”Ù¬OYîÚ‹aàV·]Pt¹o0/Xýw]†¬?†uww;ÂǵôlZÜ"”Œæx‰Í ÿâøã€&Áž)/T€Ÿ³ph@Ÿ. ÷HAZÚí M;4‘U”w鞤<Õà2zl]Ù’Y°(Ó*\pSF04`ˆÿ€–㼪¸GiñöãL™³3ªôœ†yŸoÄåÝt¶£š/œüú„GÈÖ@Ð fCŸVO„iÃ*(¼»!’!¡<Ó„}¢ÑÈì‡|ÒKýÚ®e~ãÚu–Ù‘?,t5aïWûÚ(9&3×YuQñJtQР¾ sÏîH žmñ‹v·ßÂ7pà*öÐ…ëÐ]8ÉN$¸ÅŸ›P„™‰ R€ŠÆ`Â`(˜Íè€rM›)êâíáí£ïóì;ØfÓ¢YrãNT8NdûüX´®ÍŸÉ¨©Zÿ„TÚ®I®ëÛs¤ªN9 •.媖ˆi}éà4¢§ôn“ý&š° /Ãiq(Öt€Hc~NcRy°ÛŸ«Õ½`6£PþÛxœõFA‚Ó(ð#iþvðæÚjˆ-Ör_Û•óïš“NY†?Ñ-®sCZ¨~Á_¥‰™·£9PÖ!囹#Ôî¹qNV‰tLv,¢5´1´LÏ Qä\[!IkÍFn=kBUCÿ€:Í+“öªEiø_צ¬ˆc}8 i.·#$zvŽ,G´æüwáÕ2 Ð燩 ¡PÖRWòg$½nOÝtžt†W%"m?uo­(vÐüNSÄ@ž‹aÌÂ]{;ò¿¤Ú€i»w@€Aäùrçì´('g ›Á:ÐÑF·TOßÙ_MY@Q<í!ÏØö Ö¢«H°¹·Ü2ˆ¸ÕÙ›óq¹´ÅK0Íèì ã{è^Å’q*z†Ø9ãˆ2g¯ ÿY Ó†5»¸K…m¡ •Ζ4f¿S«Ù[´yúý'PSDNvñ“é‚zM ·´¯óm<šÝ<£-HêW¶,Œu_˜¿žÌ  ™Ï¯OƒSslÜöº6“0—/\N{FJ³\Zx¢Xµ Ÿ8q™Øz38~êüXK4¯’ψ}~ÎvbŒrͱ³» l@ô½×´d¥1Àëidù‚‹ù™±Hg{…%Å¡6õ 輺y:¨Ñ(îž_ø Døk˜Éâ½±çuý®ó§ö Ýé'ª8»ƒÕF€æ]*;0'ÓÇ3!'ïùiÉ­Yéøï…H¢ëZÍJî?Y§ÍO$Ò˜/Äèû_èÐ ÌfN.˜ÿ½&$¦ÖøÓI»\0vë.`Ø ´‚_˜Ô2Î,ºíˆxÛɽ×ñ7qô?ËÔ5#oòóÂýÖ‡Ç,-üïUIÌ¢{.ÿ˜“8p@âüLШ'uh;ñ¡"U|òIuxÍÆÍðR¾ØHy'gË›•…µf;Ϧ¾ËÇÝNì-y›VOàá€È½/;HOu…!~B]·c½õJ”twØ.˜à¦Ñ Å`<Éo³5ºÍ¤ø¡£]¤ÈX‰YW E‘+Õ°S_¼$@š=¨Šäá+0†%n?‡©ÁCJÏQŽ’ ª.ÎŒ²Tã <ÄœÐá™ïW4»h2½! Gz{‡ÛX/ìIr’ß2ܳv1ý ›­o*enÔðÝêÌ£G¢F¹¢<µc’lA¦ƒC·×·fKü°íMú¿éš1Uƒr0è²ÖãÎcñÌd’b)ÙxàÛMJçìSfþ×¹Î@¸÷§«*÷"÷ãÔá® †)Æ|l"ÏIªòCúÓø&úêÿ=yÔš.þ{éÒÌ;¨wãŒìPŠ`'$·ÜmÓ.Ñ‘€md ãÐDÀ,fR¶IEèÈ3øS;¸Åé,6#F;sð·—U·Áõ»#Ý [¼TB2ÿwÔû'ÒN†;»¢!®ÿ¿c£ Xb"˜ ’¢§P14Æð%6J·ÓBÎìÉr–®Èo,èíÕLôÁù®,£o«È‚ÚÓjµ­ÅRú®ü9FMJt Sóè¹Uo¬iý§£ÎÝ}/пÊsÖÖ½zB9ÉÚ¼SY½ZYÆtT?ÎâISE¯X„›ž&d„Ló9—]ÞlæìÎèAVt¤s³ªçÍŒ-,ò@Ê©‡×{j1ˆ”£¥ˆôÏ‹>93*šsoq'ñ$@&⇳|Yïlê5’' ½(ÂN½¨í4ïþ„Œ_#7Ƶ›š‰Çç¨*Ò2ÑgZ=YNÄ=º|¨_/ÙÑ »Ü×½oÎéuWê×ÖÕß :o>ýÿUùt‘×µ•wñ*}7Î ü}\lçæe }q=µñŸ?„sƒ¡ÍZÔlÉXb°¹¶ •”ádxÊsåõ@ù߈:¦î^ä~ªbt'wbûu¼½ÎDdí×8œMgøµ¬gª²(áÊ@BÜ4 Vx¾Fûw?ÈœØß3­)Ó~Ì2ëæSG¢æìØÔ¨g[U³¨4ƒÖ»,z«¬ÍÑ×~h5¥Y,V^> > W"†¡ù>ŽD+m(@UFó»¾\ØRI˜½2¼Ä'ÜÖÃÒ4 ôõ¨"c/"ú.ä®’6));&þSe†ä)ÏÉs*T:1VËMlŸ3ÇÛ"TÆwÚT>) µ-Œ‰á5cã*Mî)•ûCÂX¯¡÷¯¾½vmÛ=ÅÚê´ú{J4h›Ü÷–̦&ïzøŒóãs+ò¤ÅV(SJjU+“-Œþ>|BãK1›g÷¯†³˜q0¥N®Gñ‰2Šx ü6rw¯„WÖÚÞ,ÇZ/¦‘ùÔñI{: Q€Û:½±p°ë,â^˜U>zhÏm™0‹±ËÐ$ê,·òuÛî†ÇLD^Ïêåh4Núé÷¶ó[2,Þ&8ˆ&H…ác:ö‹ú‹o î ³ë¢zÁÕ|‹ Ûa§k½41×ãªhg‘­‚ênmNs€„_(Ž.xˆ5+ºæHî3°ÐiiàýBÒò¹¯>™übmì_®w=­Ô2¦Ùº~Ia?ç!üÕ sS4ÖZõèõ{)Þ;Y±Ù弗燀rD(sðÑU^¸Hùé;êøžôŽÍüLÀ:‚¹*b4¾žYy03¸æ¶ ø?sbAM²WûnO± ü¹ì«ÙÉØjß‚ëÈ¿”¥¬(:†ŒJS¿Z”ØÛõú¦é¥ñQ´><¢µn·²šŽâ‰T? 5î‰[-(¡Ñ7ãý›l4VÿWb¢6‰~“דV*¦Ø¼¦ŠÐ’©ur@ò¸ù-Tµ4»Õ¥éê`]ëÍõ¦ŒáŸUVJx,íÉ#i»\ùú %|e¦˜©64§ žvw¼åf Ý’u›I n-½Ú×ëy÷?[»Œñ¾U'Y}éÕš î*``m… õÈKÑüÆfÃþHIQ±§¡tÿeôxGL¦Øfv×ýjàn÷Ás.¶nþ{mXç)3¨C,Á¼I‡$dW¿ì€£|Wú3o§ CÄ€ù7•*>‡‹ŽzTŠWÜ‹Rbì`rw’èÖØ‰ ÎOÀ‹J|Ï'ù¢ò€ÇóYü’Î~ð’w{55mé¨iˆ®ûøÚæÓöi€üË„©”U¾r‡¦Ö†+FU!×l”eS“{†KëþŠÊÔŸ7Õ 7‡7Û§ 7nv¨›!nµÜœ5}YfÕØ© 8’tEÒLJ®[MJjM%—äzÆÃì§Do¼‡¿’ÕŽ·‘ Ã@8·‘8*õßñ’?·}ÿykF*Q¯0»[Á‘“ËäQk,¹ýÀnÏ)áª]KEsØÛ­J‹¯»ŒùLüS }‹J_`ÖìÚªÖ ‚ÅáBJ|;ì¨ü|®thI@p1›@¹LZš°Ï®1FäñƒiFéSªx‰Ä«<¹i '.µ,m¨ #8|U•r”>€L~†D%áÉ´Ú®F &Êýý!‘¾Š€?²6àÀ`Â.9t=‚àTÀ%YpV¹ÂD-9  ‡FÁ¬^íôø¯Ehh‹™"X&ùm…:§Ôe0†–³|@–8Ò“k„’Ã:+¦S8AÄ€8EjVÒåa#§ºÜüµYà¨Ë“^òOö>pã­83|¢ÊŽnªp9*X}*víE_P­/ûÔ¦öb5ñƒwAó€ƒiZ}€Ç&àµA¸•Šñ&YM½7fû{^·'ª¢fªäÇ5èá(O_Ü.æÓ>u)ã<:wÁ)q€x›…­·8û»ý\^ô§§­‘l£‚Á •m·oï›íÙ‚°LÆ-ý˜ŸíQBi:oð$£ä;µœ0ôÒ,xcü=?-FÒ‘ÚgÍÚ´eâñgõ6³ŠzfBUÐìr…Â! a:‰Z®{¾n§¡‰L„—Ð<Iª…â¶åk›´›È5Xså6åXŽÑ¼ØG¸ ÌJ}wöå9á­k>®ã'ü¨«%Vˆb5¬NŠy¯~Œx‡;ü|®Nù¼}.Ÿ‡’b¿½+k'Ð_ž³ 2Æ<í$·ïì~»ëcÐOûÉÌTÕáóT2p×Xî>‹=4hâ·×aÖá÷àóYì øÅtwÊgZ“ÅŽp-ÎÙéÖ'ÑxÒÔÜÛ§°ÀÏ5-IwÏOggSµJýÄ ng¬€@ÜèãÝöóèåâáääÿ®áÝêìíåÿÒÿáäâåÛøÿìûòÿ ÿÿ ÿÿþþøöÿÁÿöúøÿ ùÿ¶ÿ ëü5C…ÚìÏ73– ýt0ÌšpAlWŽe©üßkîùø§T#Š¢Ö~wk82û‚ÂpÙ1‚‚æ˜Ó޼_Û®áNër#u°Ë¨mŠo•;zê§Ã¨,`0Z¢ä(é+4Ø^&î‰peq!Ýßâè/V]ñZ:`Ʋ|ë#Ž¢Ó(™Ûñ¶[1uiŽtÚ ¼žæ÷›ÇV•æ&«ƒ¾¯Û‡Ô¯Àg\Q½jŽ´t‹º°àX0¾׉*Ïg*ìžM ™-vIÇþ%Ôh üL¨D6äžÙtÝÛ°–È ¯äZeRyE *󋳟@¥åªÝ€ÑÁI}îPúáJÄÜG^ »Þ¨ŸN;sÔ:{'’£¨ÊÁ‡äò G˜;W\YGÒ½…ÇÒÙø.¾®µjs¥’A®¼¥Jh‰úúTÑ @e«‹ Р¿4¥Êìÿ“wÁds/½##éîÌ”Ô]mÁzn bªÅs¶ÜäÙ¡ËI³÷#6ˆöóMy@V™}Xú%¢ÊÂHÀF÷ßs•çZDÉË÷¤fÑ@ªa—ÈýqÂÒ.˜hkâÊŠ?ð6î§×Ï×–öýüMzàyðXWíøž‡‚Ð!)¯³”ZT\å|ˆS?&ÅÄl¬€¿p /t•á>ÕECwW"dk‰G”%Óɯˆ?f»\î¤>W:Z=‡0!nÀ‚vè­ âFĵ®bnÄ;á6°i ·µ9o:¤+’n]æEsOže§|‘Ö~ªír;›Ð~åZ°ï`N¬÷â=0Ìs½»U•ñå¼8WLÅþYE@óÝ­ YjÌäÍ2’ãQH¾ÝW.þÔ(}¿N=V2]ÕI=@OoXÈÿsÚ¬ÑÒýidÂ%ÕüLÖ|(ü2s§ï\ya·ÒÍ…å®ù šqJhB6’Ê´_äåo°öâ¼6¦¦g”ËËäŸm[˜ùãÁŒ×0¬väÉ!¸{û7w‹X&ØâGx ëîÚׯý()Ízê®Eð–è%“>»ÐGÅN¾CŒY±¿ÎõªJJ!Îü3‚äVÄË£¤¬w9üüÿÃyhâ"~:,Ÿ'µûq~ ¼8„G §5ʈEÿXGÚÉ6DñóprÜ·×^èckö5†"ÿ8Þ‡>GÀ~ÀûïmOhé‹‹ŠüñE(Ù3´qlz¾ÚÒ‡õ·ƒöÆ+cr à“×”è—(%˜Ž’û@ù³,aúhö`K¦R†öÃä̊ĤËàW¤½QÝé @Œ™ÏÇÈ'#{Àš ÍôêwJvÓ9_»Kͳê\ŒÐH›˜}›”ª6²è ãfcÉ·o…†B ^@©J€¸%híÿ˜¤R›dî ^âe,L˜nB¯† ¶!ì°kQ?[D Bì-¦ÓÌ0+¼S­  ”Ûºs.GµÞg” ï´|]b»E_7¦ù¤%>l¹þÞC)õÒ•>íúè§pÚÃzQßxÉü5'M>†€a©¬R-,‹vÃn$c#ÚMUè¬%Œ1ܽTW¢*ˆj•ϯHœYÓlkA1G©å±È‚#(…²|’°€·é¡YXŽQ±îíþ‡®]dÄÂÖè*?öáÄàN¿çõªóÿí§L‹ˆ¯ î{ÜÕ4Iû¦„Bþ‰ ?‘Í«­ªå„¶0NmP³üí¸©¥¨id/k@yí¶-U¦R%Âãå_æQÄ;«gº;5räE'=OÆwç)'$DO{ú€^˜¹›}f÷zÑÔòüˆýí?4ÄÖ]Œ.†,VmÙµ齿m>dÁ¸¯*ìü7 9v~~T6³ñufCd㤊b{Ò³³ØÇeZ$°Ò"ÀVmÎJ3{*ݑٱµª/L¹Ù-öOo0“p¯¢Ê,Ó¾|].)ý‚Ç‚²”=K×P–sLýaد gCÐRÂŒA&ÙT&æÓÉ`Z—Ä ¸/¤ ¾°l_w02°«*ñ™q[-ɞɠp†]Á&ê ÔšB±}@SŒâ&mÿžñÏrp’7àWþŒ JmžÐ©?EOáxea&C»KÏõ_Ô7uÈöÙ›b±È¨– el Õ¿Ø`U‹°}ü À)Ș,w!°M-¼â² æ<´ïBn·+Ú©2XâÌf˜ÛyVäÀøæãž³·?Å…i÷à¤ÞÇ>©Ž}`YǤAb¨•š¸Ç*üNcŽSe§±õ'(ÀÛõCBzäôª"iÏa´+¶R„Á„¹l {2Ýò¥CÅ“ô$èžþ‰yÄ#^&6ö×ëîÜ](ã¿áN¾ˆ;ãG:’ÔüUbEߨ½~3G!d‘⣑({A—¨_ŒÈÏR†to•±\j[íÄ<9K9q·F¢ûçµRž®³ç¨8jËôüL±E†®¡ÚÌ…Á^¬Pµ´õ—|_™H¹ fŠÊŽ-T,>æ«L‘ç1¿_qE%Rl¼ÞŸhî êÛÓוÇê6t+Áü™É¿÷ö ¤‹ÓÕ˜&´<„„°FÁ{Ÿ •0!jµ_¸Û)ï¾o&³å¡×ëçL¥Çg´òä…\ü&åûrRS »*õa C‰îò‘¹Îñ¤¾ûB‘æéŠÚèÙEÔÀü{¸*n'ІÌgCŸ3iaÝœdØÓ²P0{„ž¯5«ã™÷Þjzåøì{xwÉ6’õÿÏËjUáŒ#Žü6O‘ý<‡ùêÔ›Fur$ð·Ð]鲟zjjN’¾ä,µ¨q‰ÃíáPkRÈx[í÷˜Ò¦/}âX A0²èc~3j¸‡Ïá®X'ì³*ò¥êˆŠF}ŽæÌµV+<¡AºM»Zx….¯ )ìÞŸsÌî±ÐÛü;(ŽYÞ¸‚QP Û®g< ð¢ç–¡>õæ–¤˜*…Ýy؃¥7Úñ¥ kNæ‰oo™üÙ2×±¼vÿ:b.kÑÂÍìuö˜CÊEIõ­V+n-€9ël›‰]¦0^á]äüï4Rƒ¢ÕŒ¥µø½Ò§ÌÎ`ËÕòâ4´–˜-S"ŽaVä,*$˜³¯ÌÉBýF™q,R]݆Ñø¼²|/µŽ¼ØšÉyêÝ‘¼å­à@Ÿ#<.ƒê»f¾1¥\½/QÊŽœBÒ»­½aaÚk7ÖÇ8³LZ~0gΆ„˜ ëåÝ‘•o߃S÷RdØz˜¢bÀ6øîÁʶ¦€gð‚íiÿ/>‘…ÎÎèïtYëjº$cï¥QmЍÄß·?|k:‘n Cu°ov¬›Pæ&biwý¤ÿÑÿaÅ{÷¯œô‘üLê™B!Õ_eþ‚wi¡OÓ å·%ñg¸©YsYÜyWû\¡äÀÄí˜4ÙÄâ|£Žçî ]ýu4‘Cc׉Ëh¿¯< TeÞÜ&D¨AibÓ¤UWzÈX‰ÖÕ÷ú3¿6jêZCÎFd¶FVƒæÍt’Ь¸Òãß/£—„Ÿåmäi:ö¶JKîØÄÍ[!Ï7”E —¤%m',0›ÕAcì­3µ:ÿÇûíHåmB(‡M¬K~è(ysyÜdVüü©øü eËÎ5ùŽ¸Ì³þݿܗx¬ï•{ü¯ÿOªÒ$†h)3ÌÚ˜k°$`bù¥ö4"Ù©`@‡b 6ÆN{F›®îûæ8×y…# ~h˜UºXO‘y”jn÷iŒøÕȵûÃáôÄnà.O%uZˆÒÒ~¢ ð&“›0é²»nØwp&–NåãPÈ>¥S«ÚÍñó 0ϰßÈ¡‹BÏ~Ò`±¶_Ùû²ÿ¢)h ›_q*$sa6M¶þOç$òfÈg¤/Þìß¡9+ì7_tÖp‡ê¼K?аÁª"X¡AOÛÊ‘í#¶•$œš¸¿-DýR󉆦Þ'~§ Ÿ†KÚÉ(AçÄUöô¤ÀŒ¤€â:Û[&‡¥‹(=Ìc•ê¶b®;˜¯N•²ã¸!a•ÑHç>Û]S>£-öÛT‚ûÕÍkwIs e $š ¶\°˜— ŽApþq³n¦Tœ¨ÖI/»j$6@f7¼Á‘k™g!±8Ĥ싇. Mñ€ïªàšÈµ˜¹³PËÒ—rˆž|a¢¿ ih¹„êÌžíXzFmÜXvo¯X˜Vz~:æ &$$Mi’9 ˆ¬7ðàxüMAÕÙ¨ È䑼ïœàÝò&‘‰4kaås 3¸›ÞÖCªsŸƒŽþÇÑ,.Gõߘ¥*×^4\¹˜»Õ TÅ&4wW‚¬ùì.…Ñ+YÒö‰´¾B6Ы6´ÀêB›†ôã>ÁíÇ",«ÆL4%ŽÀˆ4(`~æBÝCºù[$1R/j·8‘ðÄ CϸInâü5çü±S’Ï×0÷ØÍï™ÍÙÔIù3íC*à²+ zù?Ñ]§ÆGÔ…¼x.´Þ®ädm2hÞ¾;¦ #->+¬Õ=ŽSLR<[_Ê@À—Û&¨ ƒË¢ V—¦[\°=Ù™ô&Ïm0ùÆ#9Ò4d€àI ²ºÝÞH‚ÑgÜœàÇ9×<èZŠ”^ÈRò t)r ËçIž`á{77÷é(ŠšWx»R­Vä¤)CõÒ§ÚîM Àº£Î¾Æþ¢Pq²ê11ê/4Þ ½PP†Ð|¼zäWF±»Åø5^b¤þóÀ+©ÖF#yÞï£"Ò$$uÕò¶%½YÅ8—…öÛ¯ûÖ®e`î9³R¼ü±r·ý÷•#´Ø£ñÞyŽòÇØñPvøýPF’Œf²‰çŒˆcL¡†Ô3®¸l´ÇUûÁÙƒWK–W(Á@í2R#¤mï# SÁßÙýZ74#†mÕ.Š ,¡yÚM¦Ó0ôæX*JRi»Ã½äã‹?p›P{1ùê^]u‚Ìy°xx›ÍõŸÍ ?ibôH¢Ïûv]æ•øsèr;~+Ê`f8ìvb%½Nnéõ}XǾŒð3å5BËr>\ %¡ƒƒÁQ²‰ƒ!ÿœÛO:ŽñÌ #fÄ»ü|·#TŽHn&e¿.K3}¬ŠGk®ÆëQiÇn«Ú,FýMø2Íï7Z”cÀ¤E£w¨ÊFú+¬´:A¿ž5ô®ï±¾j0 ÚÓ…r¡’™’žgE+ƒòäµ{OX¯l¿¸‡¿¦DÔFhð3ÙÚ[åÓÓ²2µ¥,”ìQÕ·LspœÅd”2ØÕ.÷Æ—ãwŽë:$`'1h+¹ŸÓt‚°uú÷œny/úÉ|qGöÀ¬b°o‡êh¹R]Ý÷L§«’éâñ4îXÍkãÎÀU5Âm+:Ù÷âÒŒ¼ŠÁk¤“Uä%Õ3óyºçϵ"X §6|M”‹+xwϲć,²ʮݥ™ö#Ý`¢Œ,Ó ’<‰Ñ Ûº;ËŒ2ãíAl1èöjÒ:(¿õAƒæO@øöåæ§· ˆöýËà}­Zî#w hž…'Z½@ÎO©8uâÝ „Íëñ7)k-ƒÂÌ Föqp­ÇüL«¡ÎP2ËIJعX!áâub?ššû±¬fa*¯†öþè6*®É•§™~,^ˆx}#¬ùåV™íd2{×\Œ ±^Á¯Öç7ßvì³Iæ.d˜ŽQ~"Ç/O]ý£¥^GU%S%žœC)™l®-Ñ”`Öúúû¯á{QŠà¹þ¶H ñL •ó‰Àl¡ß¼ ¶Õ7ÛUÜÔC›ºõçË®žj,lú˜¶*9Pfó3´ Yª U¹FÝ)ƒ·Ú¢˜¯š×Ï«ªñBmPeC>õç¯ív¹X"}'VÞ!IžeßÝõØ?@Õ–»N÷ rp#âÐ^¡_a ›ŽŒä¨¼ .iÄ~åhLëü5QE›e®Ì»í¤ˆ‘üL¨ÞQJ/L—3SÑX“aM ´’ï(x(þÆ-úÜùZä$cÒÄÂÄÏÁû\šw±–»“3Ëpj¨pžPè.]~#)íÿþÝ'ÒšÚ8EóG ôÞÏ*?c4hˆýð-ðѬ’¶7ØÞIà“DÎ÷’A œÁ¨·|̇¹Nú€ÍtÈbÇeí=ÌsÝÖbX«%ºï™Üà›SNvVPTP[•"ñ=Ц ËÚuÕ6ÜâŸ``½„â]crȬ&Î3á`Ö=‹’ËÓËzSy¥Td–üL×RÇÛ¯ÏKצ²õÓ÷û| jŸÅ&¿É‘òOMõÌeg|Ú±6¦D•¡ÀáöPg)ðSÏ»yð‚‡má"ƒú²rëÒØXëhú~‰0­ÉÉÂj|§²0hAð4W÷î¬6.mbo°Ïé«óŠZ ÞZƨ:Ćè™dpû? !T'F³8ù†Äñœˆš¬˜¸!óo3Ã)eÓiC%‹8ÂîBÒiU¯SLÎ,¿Fy蓼·üƒn¤¶¿g ,ŽÉ!1±24þ•ùšª›üM$ð㬆¬'A¤<Æâb8c8áõ/óó@Ñâdz¥¡îžÐ.:â·]^ ÎΖ j®Ê ƒö½Yšg¿{ Ë¡õgz,´_q)J2 ¢&Ê´g: –2Ó•ó¦¡|¥~1¸0"LêQUÜå«*£cíO°ñ'Ýs5šÛYVÁL ‘Þt­¤ãc ôGBgSL9#Xy½–¿uG(2¯}T¾lüØÊ2{âUÀR€»”QîI_Ý7ƃý©(YÑV4ƒFÆv`:‡²AmöB„Ä/"ËL´ùëF(ª);%Ò2¬E^&Öÿ€áüNJN_a10öÑ0jGlõ&ÎÀtÜOu£Ÿ˜­¤TDP”XÂaçuÕlU(ÿDÝ\É…Ih£„H1!--»†¤„QòÁ仳@Ëз!܆Nwl'Çü ýÉ À@|ó&2FsÕ *ð n®ÿ|×µé̬….«ëÁ¡i¬Êìyåðë¶È¼QÄôŽ,@ÿtÂ2Îz˾®J©¥Á/|ö Õ“7(K¡Äs´×Çjƒšl’³!_î äS=gvRÝ +qÔmÏ1§ùÆ'jž°ÁZàýKz›ÌN…˜‰&5_,Ó!*½{ãÇjév(Þœ¿i½C\Œqۆ˗üLø Ht ‹‡[ùHK Ú“[ÉgÌO1;o̱f8ªÖ#ŒÖï@-“@JAݯ¥õðpÓíZN‰²æø'E§G¬Ü,Ãvª†GÊsYpéOµ±Š ÿàBä»Ñì±¶ô”pøM|ö"E )hÍÑÎä̰r6««JÛ÷JsOó*iˆ·—ë¹3=/Ÿd¿Ë”¶±›óWM·Gê“Á?mú[iõ€Ñúαùfv6~*„Úd-…6ìNÄõþ3.×q|9O5ýÑk‡<öäBň°Rt€AÑ×$þüX¶ýü ª…™›Ÿ.˜¼’ò¢>:]e骳Ïôß3ê³1ÜDŸ;Â_qM.ik„kZÐÌlÁÏ ËTï ü)à“ô§%HâÀU­gå8²L³÷JÇ(¢|6÷+锪·DœõK½Ôç2z‚õÚþYÜ7ˆàõ™°ÏÔ´Øó9¶Q?™ÂQXÙhÇwˆ:è ŒÊø÷­SVs¼RUì&ºè­ò„FÜÚ #ÍY–ozˆà ® â3Õµû… ¼÷ôCæËü¢a½­¼Žò.ήQ…\˜C Ùä€n²¢w-Oý’ˆ¥Kƒ ê}c¢‹ø>ŸnÊÂü5kúͪŒÔ8Q $ÒFÀX£Ü>Ž¿‡Ái´Âžo–ޏŽH|a‰¦0=‰U|NÚ.±zª†š’ž3j0ØúÒ *ø *lãqSÓ´Åš€Z½ð†+æôyƒ Òµ¿E¾ïPTI6H¶áˆ­›cÀ±²æ`˜IïÒ¯¬x:æoÀùpD—Ï+$j`e-÷Uò´¯ª:Kp–È¿”z($Á(òžË(¯ÿ|RN bÀœì÷ãÛ›‘›µðíåÜâF†[{¬*Ç%uCétÆÍê"²\ øX˜jLG7Ôq¬³ñöéëÓv¿!}™ÒÎæüMFQ‰“7øT7/Lƾóü¡ß•û$˜î¶”1îÏ/~TË‹ÇK¸X?¦_˜ñø òí]&ý4+PЬ€N…yË7<Í-.|ŒŒlÇ¡aÜ7òÍMS5’Äñ«Í³P¨þÆ*è PNÐS?$QðJ›d¿ög+ Su6ÅAïÌ?äÒdØ}›8J|JvƒÁcÝïö¥kúr)^ÇêƒK.¹tí’r˜î‘"±ýý»)bCYíyÝrè a KÙᬰ>éÅé˰×êŒð+Z±öBZ¿rF¯Åó¿éœ…ÙãV¾›^ü\Ùªú¦~ø5Î*²—D{”³˜²Ã@d,{ë”{$×ήú¯”Ռ½%«t[2g×ýå©âªûg¥‹Ï)«-{Ò"“Q²¢kch?lø{½¡¹Vo½y” 8Ðs®e¶ÙñqÍî Ä´7ò:¸2v¿ý–,Ñ‘7h~#êí,p†¢mt‹6¿Ä½ŸÎÁ—*¼÷ç nZì< ‡¶ ØùL¹€†R+Í[ÅHÃRèè„ó.Æ©+½M¼|}8&­ì¹òý=Ù˜áŠÞ=¤ S¤…Þ¦"E•Ë8 _¡œÙ1€†±‚ºGÝc^Öyà+Ú£Yé¢*:‰4GÌ×]Ó»›ñ’ Å?=Ú£è®ü°ÑŠ­±Ø?ªùéJÙÈ}Túú¸â›©P-o{äÚÚ´0=—¦ˆcyË»9ò;næÙ^Ö_§úœ¦µ¡>qô`‹Ë[$¾Jg·2ðž]¬MÁ<‹yƒŽˆg‰TÜžœcˆ½…ø8,x½Æá §-ƒ¶[ÙµZâ닸á´à¼eøL ènSÚ‡èË#ÕФ/Œ1ᘟYÑ/ÒgÖØN#?¼ë9Qm›wÈ5Eiô[ÉöºÎ£mÆßº¨Ã{b~Þù®óSD‡Ñq¤‚èI…ΰëÚf™Œ}ãx¿zú­a¿I/žsH$+¶¢=œde|º$AQãV,Böp_åÖ¯ü±O [—Ÿ¼+ô®lâ™¶iÏ<%º‚êoРë*`ŠZ0/ˆ˜vД«Û ŸS‡>™n=þm™%mLJ¶%àZüüK'd‹»L‰A’ªcüJ´[@}‡Y¬YR&ÿÏ{ëÛ„ÔA±¶,\ÈJƒnûîvT· @‰„[*vcJûÕgì9yy‡G«MFŒô®ºÿfõ“ÿ¾+1Òü!¹É”cÆÏþ˜©®¨åð¼Bù ]0HÀû‘ç…@å XRpJUîÜ&¡¡æžjdw2L¨Ä=º%¨[¾MRÚ”ç²h~¿Žš¦Å/ò²ŸNêØŸœÈ¸æ’1FƒF®üLê] ¤'î`gI(ôx±‹¸Fôhã•0k´§åá§å…б’i2&hÞ5ËlDóÌs1‹š,UO] §ãmÓgˆ±“=Ðu–¶¬*ªRè½}¡eôv„í³Â– 5Ï\ª ¢æÂ™´¡k—=#4—·#šZ!^Þ¦@‡ŸÕ}RkÂIagx‘B¯cBàdé_ž2웑˟w’¶óÎN§‡j8[š„îj†\S¿ÁÖaÜ÷éÏžV$ ùvD›—*9¼;®M<½F»4VQ†é© Æ'ýÃÄÂL0 ¿oW.¾~ ˆŠµ&“w†¨y„Òï¾Ò÷3E<»’üLÃ4ì’bÕeºñ.λºM•iÜH6*YÞeBÍŸù÷]>¥'´©tÄé?Þìojͽ>Èa)"Øþ± Û úIÏBŽã%öBŽó•3ú¯¹½›©ZWèK¸xþ²¤¦ÎxÏçÔ†§- ×ÖQ 1¤€À©B…¤^ä!phmèBeŒÞ­Üx[õrNâHe3óXŠ‚Ÿm`èÕí·¯?…âcd¨¥Ñ%A¤IÊ%h…\@“âxõ¯åùU.ÄáÔàéOއä÷iágÙ²)ª %óëN\ɰ—˜ýêÇUÎ ìlGÝÉ'¿y¼0×h\kµ[žRë¤Èèü¤<Ó ü±8S‘lƒMþö¤Èí¤ºoÑš‰•sHÂŽîè'›ž>  ³°5<¬,Ó‘4·});´~OAÿWÿ`b‹† $ËçR×Îüw‘6yv{=ÁF•ªÉ æz¤^®\²ñ½%Brh|jÎÐCEÚaÉ î¬)§3Š*­Æ!®Z…Z´lc1œ€Åsz˜fuyS¶àŠS«ÿM°W½çºóËš•3}SÒ­Lß`vo>vAG‹rhcæP²”j¦sÐ_SÑÝg|AnélNÏìDgûÁþAïR –÷tW{g+Õ ›1˜ˆXon¼¸gדÃÑrÚoœ×Ô°Œ»Tå‚îüM"|û$@A»ß½nd‰Z2þËm7Éèy•<›$‚!ÂÀª‡Î¢ôÔ“wOT‚ÆPêú«…“»Ýê鿵¢Xðàž.þÀÔdâ7øxË7\Ø"xá×Þ 8sའKêzW ¨ûà> %{ªœ*ô tŠ=’;'òB¸k‘ÇÌYÕoócD®±gðù7Eéù%ÄUêy¿‹?å!±'€(=n BcÚ†c:>¿ò,há£&N8þ ˜¢ ³¸¿ª1`¦†S<,Ó=×I™E‚loŒ°°ò1mqó°Ígvuü?CïÁsD—RÔfú¶ Z<ÓüM2)@ÜÄ]yÈW”ö9¥຃z×ÚqCð0rÈk&˜68’ÐÃAH‰ß3)¶' j¸è¹=ÿùOÐÒ£ Àív?ÔžÇÉ4ÝÜ­8ÌJ§F;Ëfà(·¤.]Ÿëëjí_ŒÎ*3¥§€°ºø&~ ˜‚ê‚ôýâb·}öˉՑëMÿ I ó-ä®·ìßó aÌA‡n²|õ ƒß*ëŘ:·Tú]¯q~ÁiÁL~È×Z;ARÈj²\*{C`'–Ýǧ‹ ¹½Ëñ{žÒ‡Æ=( [ŒLÛÚ¤ãž`i¸ƒ(65гZüµ :åq‹WñN6q>Í•u$çMF/#¼õ `å–)Ïë ß¿½dï_©ó§Åkp¦O "‡¸Bü#YË•]»2\˜ˆÎ¾+Ùc: D¼`ji’hwGéz7*ŸnâÃ? ýêzs«&ÝæïÈöwÍ]°Aë@æÖÉ6S·&’g—Dßa>ò®ýùâÛ Š.LúìùÉÂüC’‘;¤l{ÆéxT*ŒÌPÕ£FU£&‡îBåÁš•7V@‚,L-Äø÷½ œ4p×—Qt(°$Ë3 ,Øbî?–ivŠ~[ef­ÒÍæM}šŸúæ<é=§u[Ò~Ó†"AbÐá$?+ú"×øOÇ}M* ê–@©ËÍûGWÑqwÃ\¦œ<¾uyÎÀ;÷øµSAà=«®±¿É¶¢O±: nX׈ ù ¸û ñÎŽGŸÜ'²6ß súcßô«ÀÓ ‡ê å¼i#>|9 ­^+Ýùáö4š’‘—*P›tFÇryÙÏ>{I¡ê5ÍÞŸn-êÏ*ú,¤hÂsŽWÁpxKímc¨þáG&€aϘòæ|¨ ì>O>¼´OCkÙ}9%¸üL¨œÙ>\é]ÞÜ ˜õ {ÿ“ŒL!hÒÝ‚d”ÂWªïÅË>êvq:ô¹"¶&O;ȇ²lè‚ÜLÙmìǾ–aJéÃ`ŠÌó=Ì÷•M&ƒ)o‰I ®ç¹ÌŽ`³ÄÁ1¯‚¥ô]4FéÖ?Å=VqÌ“#·ÎÒ¨ïc3ñš¨f Ӗ°¯ðÇÇ‚”€È‰,cÔJÉà•““X‰ù@Êøù Ñ×QÀÍi Ž¢Êß>êY™õ½Ö¬¿?^݆K€Ðç¦òáýD—úCÜÊÞo]5h±£I8¤8 DŸäƒÚxëÂtˆ>"¦ˆÈ½îìüLÖ}· OèNA`EòABHøºÌ êãBþ^®J”í—1òZOA$©ÌÍVUhÅ›W7L4I^pÈ»¢ºÉvkÊì½1CÃèÎJ1í¼ sÒm Þ„ï«[_}¤áØ›à  ƒŸ²ñA´±ˆSÀ^ÆUü4ÝÐhð–ò&ƒEËíM ¯¯z`ÏïÀ¬Âä«4“j­q@~”4B‰ ˆ‰Â5¨›:ùâè Õu‡ÂZºõG5gæ)Û;I=³†@â{NÏŠ—“ÓW‹¦'q,‡rm·ó91Cí~YÑL '½À ®Û sëçÕp0óZü±™¶ÄöANÅt‘Éø·v5{ùâ_·ðB.Ò+½Ò¤AºCFÔXelø0•デ…aÃä ¯‹û„zg 䑨DŒQÎ+ùZÞË’LZ¬lfL‡‡ WMtæ™Z%ðÓ×Ӏ›¦…!’õ,aáí}úœÐsïïUÒþÑ@‰Ì(4ËeU9À©ŒjTØ6¬5´LJÆ„!Ñtò¦r¸Æ,ÒÑûHLñ 'öb ¥ýÞÇç];Ÿ6¾õú:,÷×+AGWh§BÛÄL=*‡ëeh÷B9õÚóAQ¸&sh™œ^c·IÕdùcâÜçsá'4nüM2ä0–ù±Ã5eò5™‰ tµ-b -Â<ßÀ¶Àx6ñ)"Þ ? ݹ1` '8y¯ŸaO{*i *ïóÇk€?Ï€ß`:!ü0!{²DÎÚÉyêRï¶—;sr%z¸wt*fó. G+ü/Ã:s)¬’*tÑ`ÛÖU½Ï€8"òåf}2 %éÉʼnrÑvÛ9ñM.ä)õÇ`œŒW'²®Cùr†Û ·Hƒ‰Ü¾¿^¨KqÍIbÚcJÃÕ ½ª=#Üô`YÉ„4¾‚ôáŸK–M2º%?êxbÊ ž\âP \µÅ‹Û¯ì+ÝUê^$ø0¬ÿ÷rqõø„ÓêüÆkÀc©H0t@夌ÜÀº³®e ØÎ"ö•ë’ì3ðHÕW2@ªÓ‹¾Áƒéø°£=â+¹µ¼4«”Wv‡Þ ‚ò ¿©dáJ œŒÜIÓ‡OQ˜&!Ë¡ë6$ ár„åÆ)â2©×á÷žèM›×h©IK_Ê…òЕnáà¡ók¦pè\xcÀ?­``!à ¦¶F¡¸ìBÕjDHŠüëÊ32é1‰˜úbß8U•¾=xwŶ’Dðû¢—cÏÛüÝj=Œz%h)øÍ KÄ™‘„ß7q« }“c¤í95¼‘ÿTpQ¾Y“Ë©—š?]ü|®c¤ý·ø§IO}XSq“„½®äïÿ?qÜðOƒå\Û¿FqäZÂÎÓ@ž\&&ý“x ™ÔéÊl¼MðÏg\—E»±;×=4 97‹÷•ÀË¥ûe‚1þY‚:"Õ.aÁ=éKÓdtùÉ%d„] ý¾½RñÒÛH9ÞàT›@êìE™”ÿoÖ$eî’IU•‡§•åË¥è>Ná,Ó¸Ý œ^ƒì4¼u¯ïx8ùmÛV¹}--£Ò.—m1xlqLËÏ·Ã4˜b…?ÙïªW@}Hd?+*XÖmœ¯†Ì5Å8 ºb¹úªƧ'š3#–Éqüõqœsú­,ç*º¹–F¯„ߎØ%COàá6ÇWvåP|Œ›¦0WÂÍèTŒ£Shz:EörKOåÓëÐ^åví,ú4L’r<þ5ôz¥Ä¬-)7o‰¬ Þ-–z± ¦lµ£¼Ö@ÉÒÀ7`@Só8ò ¾ˆißêøæjúl[ï4 -^IGq6§,èZ°ßåXHDìŒÇ›†>…4ËbçÐ6Ù×*ô¢3HZæ´Ÿÿîþ(Òv Ùqq­½ÒF>ü.˜Æ^!ãìéá°¶kí8vÙ]%‡<Ÿð´´’Ñ<Ü)’:u¦¦‚Þeƒ­#.Àjo¿4ÿµÊaÖ™¸q7f×-­]ŠâŽ3ŽÄ ónEå87%þ&2V4 È”×4«Q ›pE7ùÄé !FRù€—­Þå·MÀöê5—T£ˆ#Òaç¾T¹ª­YÑ¿ðSpLÛBc®n¶ö$IÚfd<^oK‚VI ¯y£R+`Õ² ëÑÆN3‡°œSò«Ε²m¨ž×N|UjHI&æm³v“Fý7GÌù×Þû4½ŠÅ Ó^±•3 ¤ÅOñïÐ > Ãp?j*{´´ûÍè=άüN—Ÿ¡ʯ~×®¼áqQîqš®1zb¢m¼lظŸ‰Z¥pÈqlqƒôÂå|Gk ƒïˆGë…+âÏïÔ þËÈ:AjGÚ34ÙxŽ´Ï 6=±tZ*E–%Å4”i¿¸ âfu ñŸyîÞ¬d»kÆZÙ`%ž»2ýŒAJå!ž®ì víÎ/Ÿ{¸R½x-ú?ºƒ"eÿÂïÒ^h¬ÿ¶À0GÛ`t¿,T”Þ·ë‘"89tÒºðgYg2õûdõšÍä'Äæogݺ«C• ³;Z~Ÿ-\$eSª{tL·H?·C ~OggS€pKýÄ nh.N?éå×Óëÿ×ÓÖÙØÔÔÒÙäéðôÿiêëêèéÿÿHèÿl÷ýøÿÿiùÿÿ ÿüÿ ÿˆáãØêææÿCØÙüM$êÌæì< !qÈ5Ug_Á˜M~6͹ô$=–ü–|ä|^ùih†&…¡BBÞ`«ñN«Ðöà{†Å;JŸÔ“H­A¸©û6Í]£+жt@áæN”T~ïf…Ž;šj˜¦âÝ?![Æ(gªµ3 1»Çý¿CC¨9¯¾‡8ôAÓ g_õÆÃ½í.í¡ë¼¤ƒ@üåÞÄ¡bžLxoLæéû½]¡E(Cÿ’b.«úwÇî…ä Cv1ÃàºJDºÏÒE¤hùÍPÍå÷õ޶LÄÊMT[¾š†4›óÑü±óÒy²8°Ä5HÚê²$‡×³|ò×rŠÖÉ©ËÎkÉêÊD^møëý Ë¥o èïr$[ýOÀeDie.ÆÉŽ<Ù¢=’Š;ÃöÏ!Ók‚Ë âí&»CswíB¸J*`”»²Ík±?÷F'0Ë•qùø/Ñ g5Œ\,¿’_uj,‹ë…çæG\_ÛñÆyàPõ•iãñ³þtiý“@^|¬¬LÞqZ‚£ÈAõ‡ö? w#?óË÷)Rw˜è›SÀ,ÿ8@åüÒüòvõX¯g©ÁawküMÜM¼û±¨F¢lRM•¶í×oñÝxp?›÷¤»ytý–ÝëGŠw~Dj6€ÄÍôPD~›‹ÎÙ“4²;4[ÑÀí¶ÂTލâD×9è\¾ûrJ®“âÖ€™Ý…·Ï;D‰ÍW'

3‘-ë GBL!~L½ÅÀ•°Ñ'KFƒ®%·ëêF1n–Z 2g¼ÊÑV“_RàVuêBùùC:¾g]ÿN&gå¾£¦ù$[üM*I½°’¾É÷:rOl>R í¦òmi5;R¸ƒ}¢Õ<™bf}T#DŽ©ø¹œK;]»rk\³ˆA‰Û¬ Æqj7œìJ %ýƽ†L/ûÅ5¶#€U˜8‚Í‘§…³ÖïÍÂëß’"ß(¢¾OQÄæø‘~¸:ý3±S!W€Ú[: ®E›Öé«„WûÕ¤ÇèAÛÇò–‚#3’hØRÚÿÿ×ÓËnÅ/I`l8#ës¡ñ0°DsìiÞr¥Å €›} äüMD‰bì¶ WëE#*ÕàbÆnO|…5Ê!Öœ‘·Y:.«} rž¡úXZ°u©„M 3öVùyÕm\òv wx&u6k}ÇAŒ8QbÕk±WÞ.'ï‘CØîªÐ§îßm÷ÊvщvûÂêÈA×N ÿE—¾‡ÿêv"Uû=ƒ&rê)aq"ì»s;N^sBñ™éM嬗3p¸W®¾¹×ô¶Nó…o<&@3ôÄə޷»bR‚xF}z»ô?ÍË´\«F±‘Ê‹j 9R8`°ÃKU¨wK¬ÖMFÓ”šR‰}—ü°Ð¾ K*BŽ%j0ËÂ^Ä‘IEœãÚ¥>¶¾wsÏ¢aÔ2jS>9C@–+I¾?( ,Ìú MŒÉE3Ѿ§XEk½mÍM¹M7M„ì™¶ðSéæ~DEß75;î°eQZŸõoË¢X½ÆKE[3‚·H¶!@xIé?Çþ+ ì–”Q¦1ƒy¬?lÌ÷tg79s›°`å±oŠ_ò.âÿÈZOÚ„ÄBóíüMDºˆr*.7X§úOmctµ+ƒy¾§$A<ÁÙÜf*äUü›0!° QÅ äh7½ QmaSâj-q}½®×˜MfêÔƒµ€ç˜PbmxD½0eìžWo`u3¦’ü_Œ1"ß&s¶È OW4y^]•]²gçÏ@U°\|ã÷ߞˤ.5¶î®i„ÑýSNIj“Ì5àÒRé)6ZºÄ ${{µôB¶Ì}")sug˜JGçZšy¯y¹ðRT™Ûlƒ_@üWî¨ý‡›heªžˆEü¯òòœšd:iúÂ1*‡ ·ÊÓÝpýÙpò¶ùö±F’&§Ss}#ìj±·Y½Xo'4̺ðZ¦`/ǃÒ5jžªÝª¬ö4ðúRÎüÕÓ÷‹™¢=‹…óæHû­öå: R|k²PôC’]¯OüäÖUÎgâ*~›ÅÿÍ%LíÍ ’“£¦.³ài× WFò‹LŽA’>Úßøã•&§ Ú¢jŽÝ„¢,¥WO„dÁ‡¯ÿÚ8›$Zánø)O(üX!>¼1X_«íW³·VÔ‚]Ô/õØõšÉnÇã…{-•“ç{OñkTEïƒÇuãt!j[T„µÇצZ )†FÚ?jujpvDŸÝ¬_SFž´ÛGQf°1‰ÇÜ|ë€EÕ-b} Ç”…•^³O®EÉãñ`ü*‡"ägPéÅ[­ctƆÅÚˆÚ5{"t ‚œf­¶= ¡¬È8ßä/†´ÅãrˆƒŠ\ð$‰ë»]»‹”d­ôiZ¡Fé#€ÚstÞ²ÑM*_åÑÜyÁ¿#UÍÛÈÑóPûË º|N›ÀÇ·Iå"‰H³ßo¯Ñ5R:?ðþ/˜™E—ÜÅa¢>¼|®MÌõ¤Ãa=l¦Ó¥!üç} æ^ÆMÖ®|~‰&1èÞ{~ë¹ÓÂÝàâ@ˆH\”·äÒM3;M¦Û<L2ˆÃ`*üL¼@µ’¬(›Ç] †‡[¢X÷AËý—ÙÄb£ýølÉcô¨ú(ð§¦zEîÕ2Ðg'M4HŒW#ç¼¹i÷u‰ª<¹íޱKª}Krf†­šX/i[xuäë‘Vz"3=Aø…ÃÑu²¥.Ҫݺ٣ÍÄ##ãòOKÖô¹öpÐc,T¦f3²N§ÇTÀÙþS¶9£Þ*]ó¼ïjŸÒºr¤¹Ž´®µÚ²±öUìÐ[§°’ÉèÿÚ^ÿ"X‘LüNN³ê«¤›}É èÏ“ý½Yè¨ úpàb!沇È‹ò¤™¯øž’„¼k®n;[’óèò9l|s4Ôì–íxÕÒ9bˆâ¡^|,ñ<]5”$²nÔ(›_Ö&þ³íT ¾VŸ­ô×#¥EÙY@ë[tnMÄjïˆg SÃÒe± ûÓú3Þô+F¶­ ÂLfÔ™ ¸½Bêp2I®íšwÖr¡W//âÍá_±L¹Ð ¦[©àŒ¬Y‹4Ï-Øa«xzhö’&Œá<Œ“ÕæÄÒÌŠä.¾(i9ñ™M#ü,žœ¬Cw­zYÂäm2D拎¤¢oüLÅQ-ÒÒ3§\n*(¾H7Æ„ØÙüKñaRËÀä~yãq2Lx9:rñú>·õ:sF2¹Ðæ 6‚^øwQ!îoù=}Á•‘ ÉÊÁê_2ùšDç~Â~¹€IuÏàþdTßß×þØvº‹s$Rê ]ÊN±€þ³Þ_ ´;—;⠇ţµÖ;e^-JÊ(Ÿá`11dÿ’‚ÝZwÚÏÊí‘À×"œ)R»rëhø Z küM8ÚDAO® zoÐЇB¶úàƒŽÃa»rwÞÍðí)‚³’ýXöÏ$Í“Þî@Øv\W–à8 2–Úw•LÅ=´–"nÿmùš›Yô’Ôsf?Z‰ à_zSå ‘,ÁreœFòŒ˜jŠuV¡²»ÿŽÊ²‚-ô *l=9—1©ø: Ïwî÷"׿ôT:LLV¦õ·„ä`F<«Z*çÔòN]ú5ˆ|&3ð¾£ûÿd$xÚ‹éÚnœ×ì0[@õÈw¨ë·iÎÃ]|²"OZýu·¨CÌÀŽŠ"ú£¼>™Rš.Dt¨œüLÐN…§†–ž·õ5ò\£h$>/ÁSÙø!> ¶ÀMÇ%Eí³ñl8fÂpŸnvÛÖ]Kg)„—6š‰miÂpŽf A š]z¶ÊdmÒαÀ¼Ò¯íÝWg2Îo¿œHž±U–dšZ½ù´­¨ó²àF>u†m§ÉµfÄÏéÛÕMj‘ÆŸ“c>DxB'JiaFÑ ‚ã/†5.>ú2æÒkÑq ú©Z’~¢¸É’!âÆp³šr²ËããË'Ù\VWòŽVX„Ʋhcƽ@ã åªÈW=ÇØŸ{HˆoÌ.ê%ÿG¢Úü™È:y¶4jÔdß»iøÍƒ=sÝø;jý«\5œlD>vˆ´¾œöB٠ĈþfEy¬J·V(¾;u?ŸÂVCMâô€Â_žNSj•_b>•N‘`=HŒƒaÏ¢§H¹Ež*~z‰–¹Içµ vË=”лö “K?†–ÆÛ;\ìßv.i ènÇJ¼Œ_|ÈÓÚýÃÛý˜ô´•R²HrƒñO‚Î%ó¨HxŽÒ~x' UÂlrpáMÉ×—ã¦4|¤kïÓ| Ü·E䯣}Ã^‹«¶ l Ë%<ä`°¬²‘Æ{ýk_’C¿k2]ÆYü}bp[Æ,tñìÉ¡Vµƒ›Õ’úA_$ü ·,L€+'Z¯Y@ZPÀý?ÂsÝNzhÅÍVW?•FhƲŠÚO4ÆgŸS¯f³œr{€÷FòoÒ¦huJ–¨ÖÍœ÷ˆn$ÍoG Çôæ ïÌÝû]:Ï"£|'i…LYU>/²•Í5QUÞšiÆt<½Ž_íá“°„ƒH‘½=Õ“\”Ô}ÇãTï?ŠoÊ<Œ1ÿ`“)óÜöR¤:{¡^±JÅn5¡EPC~·*ì‹0kö¶iÒÛ+ñûCx{iGºm—SW_+Dº¤‡>%%s¢ðßcÑ­QWl”‹µ¬$¥tÌËö¾áék)¸K¤›{·Ži4æ.»U£×&µÛ膰ªPìA…Íþ -ØlÂðz°£ý`pa†ž¬[s•¡N Ž—kwG[þlU¼Ø‹Exß9†a x‹'ã‘#:ui´þfü™*EÅÍñó¶½ÿ,¸<—©xÓÈæÓ|JèJ|„M‡…½¢ÎB¶2ã’k_°Øf„6œ“ÅÀVEJmy^„åµ÷òœ.S€^Dhhý©ÌæÄ1Àm¬`ˆ—Š (Ð*´ñrá\âbG±èöztÞ×àrÂO>'Ø7ÍÄy¼–ûE€J°É!í…ÊüµÆD*oÝuؘ¢è¡’£3ðl@ÔÁº£Ás!—ÓýåÛšßÁ¬à7“Z³HPŽ7Þ]HºZú‰Uæá[DצûÕŒaÂP²°'#‡fZÙО—üM•-ª2!hÖ ?ìòº¥°æ)-³ÅU4ÃTóºÔN%Ћ#n¤b)ÑÉ<Ó=Ô…«ÏíQ·ÑV>­éa Q0YN¥†õÿ<=x”³=ˆ¡üŒŸÍ;¨A@tÛ ·Wzçèðš¡‰Ó ÝŸh ňõ:àCßÛËŒØ'ßÿ‰­^‘ìõîÅìðP8hìþ%å3DbŽ©¬»0…k‹>&ï§aî#Z¥a¥ŒÚÁ2hòg[ ƒ]\›‚>\ù–û·s:·‘™¹ìä¬Ç™Ä@é5ôÁPÀÄðß""Ãï¾þuµ×ìííÞ#àÙÏüN”~Y𙘠ֲš{ëò“ e¬34?3*­eÓ%d»¹‚Ð.™ÍË‹µ¤tØÉö_ÖŒ—µ¦ôOüó­t¨rŽ–G#j?Ôdó«P€ßÍ®ýjB¢Jtb…¨¤Ô®/~»EXê·òê…GÆ5j­c-ˆqII°Œ,T§­S@:cÑ,åÆ,ß}cÕØƒõ‰®¿;õ•'Î{ÉË&'ìnaä^:ýÙÊbÓ h†nGûnž!û<Ý/Å ~:/Î| èSÆÛu ”Ð\ZýŒj[.šÊ7ö’h6¿É²©ŸïOa`ü±¨œ³§Ód(‡^jd˜òºéûHóé¨+çÂиù÷>†Äÿ ˜¼z¦ßòâ{}iÙaöÐéfãÙÿÛ`bLLPj龋‡ñèþÇu•=õ ËÏÛUI‹>‘飾/˜^>%1W²–ª® 1Ôý"Sioç§Èå¨!Ô'sGª·ˆf˜oÇ&Ô ­k*´ õëÒÛjad @Œ›‹!Q‘~[,ÿçÇÌÂR*Õ¢üf))LFêRˆY)-ÝÒ†-pËÈylÊ äñåNt\É[.âÓÜRÒ‹ý[H²ßUÄ‚aü±\;¡_¥|\ÓVãKÑt(îtmqw§ƒ3¡ßç e¾%ºQH6‚ ©VgF÷äOø#»oXâÑea°²A^ªkx ³ùó28Z°Ÿ×¢^A”J…¡Ê¥¦\¬ìr‚àsQÀϨ}JÅ=É=4ëäqÆÞv°Æ’çXy|ŸÌþæ_<„ÇØµæì%°º:çb'È«¯Á#ߘ#ð¢YÔéXÝ'ö´âadmäÞë:©£y­O¸ô+H9ã?aǸJT¬à† ra¢Ž`ð1t²"ÂH`™´×ö£ ~Õ*–ç1žb†¢ü¯.–`6FKû$ûÕòóТ 4Çitÿmz{[³.Ò}ÒÙ­USéDµTÛ‰™¾.ʧ(IØt,Sƒ>«¸Äá¿>’u%8F3)w"ÙkAÝ“ãq±ê€êsßþi"r)cTÝC‡KœXe\™/).×^ýD]1l_i°R+¸C¢¸ú;Fªy«’ß)N°E2ÍWÚ²j1C× Ž%7¬i¶Nb’9±ñ[%zeo¸Šþ~KP3CÁñò…‚ Ԕŕ@ö’H—ÈÿâsʈWé¸ ã§`\$Íì4Tï£06Œ¤)õߺ—ì&›ž‘ZØ|ÞË}Œ‘ßnÁ1V€¢J¢ü}bñ!÷›:ï3î±9Ð¥Ä6'¹HEj'a‰Q¡7Ö¦ud# @2«ÞzPT¡¼ ÈR6V[\ÌE9\\Œ<ùÙáNÜ_pWJÎøgˆ÷£` –ïEÍv¸ð%‘ùz—óŒÜ‹pñÓ"[€Ë<’ìK¾ºÁcñ0UÅ@ŸÎà ¶<³/,ÍÅè#sÒ»EÛ‰1èñÁÍÄHbûP^Œ…‚¤ÝãµÙO Ee1‡‡=Ú2­þ¿K➥֥×`¦®bp±ƒ8:åÛëô‰Éö£ì®¥zLç?Vú$EÞ„ü†.³W'ïŒøR–Š•·3Òk7k×”Ëß|û¥Ó³¢æç>Y³*³ü®o&dçãqaã'Ï´«V,LG°Rþñ|í#jxT#êÉB÷G;zêlŒfbÅá~œŸ:ÑK2]~ÙjÉ —8®Ê©Eô3¶Y4 ú˜‘”a`‹Ì’4ƲœEùÕPŒØï²¸ÖÚ@Ž—È;³çšS[fÛ_~> ‡´Q¾fU—"z´Ûg SHþD XP$JtÁü±4Hú´!úeqñá1 6c–iÑ„\8Ç(Þ}DXeƒÐ9;Õ´¤ÀÉï»Á…?ê(ÏΑó6Цe ’ þßÍ//L‹'©Â.2סa^J‚šò8ï±³ûž– g·Œ»èJ™÷–úÉãÏ„ú–D;Æô˜l î³|.¥Áö¤B“;û=ðoÙ-”—/„ N9òSH”­§&˰ª¥–¨hBDéc½Áðu^'îêH{ÿÈé]çÛF;g teºA?FÅ0TìΩa¢}+]bàü°Ææn€Ñ”ÕkxdÎ ½å,ÞBM0óò·ú±¦ç¨Sé²%9Þ>1zåPëM sjÖÑëõ–"ª}0ã(bZZ4 ~•ÎM¦i—`.<‘£ìc¢Ù¡µ»ô9ŸâÍþzƒæåœBKüJ˜ fÑᯀYm€½åö‰Z…¥ ¾,\ ¾NÁ…‘t±·¶”ŠZsÔÀžžß·q¼yjkY–[%-{‘†As P1ß6g©¹l+$o}¯¹üeÌíV#Zµ]y ¶C.›éšq—Í(.å¸"d—w‹Æ@˜7þ9Õ²GÚ. "7“‚z nò0&U¶CÖDPý¡,|dd |ãü0›²} ë6ÏÓå¯L\«~ôp€8ú=AÛ{Ù™UÇÜcd¥+dòòü>?ù\õÛoCv|N­KÄ6 ÃÍ—¶( ärXáùi²ðƒáé³ZÏ 97–Pûák4!¹°ÆK‚áRÞæzcMuŒ#uÛ ¢,œJ]R0!v$—q^NÖQ©3™ËEÙqÙ/ée|BÆ9±Ó’àáÞL¤“­Ôt^Kp™ýåƒ/¨z&¢AhcÞ;ñ$-N¤ªe¢”Ç^˜Ý¯÷:pððØèl§Ù"ù)–:@õå™ÐÛ0&w½Ô…õþüLÙ¼¶ƒë\è¡êМTˆ>EebÓµ·fç÷‹RUN&Ì~Nçî¥luÛ:€>ÿÞŸ•F{Ècô )†8†zn¥l‘Æ\‚´ _Ü_dpqp«w+Ó…+ÝÄLDÔ4•Ö¥NMèæh$U…é²m-¸F¢u´ÚdÀooÑ…ʈÀ6x(4áN$- ' mp•DWÚΉ$FøüÓQ’?å_íòÐCÜ*û°µƒÏ]¶JG¯"M s„—¬!JìèÎâ=Tò3Q>Í’|SúXVÈ ûÖC–#Gž|5­ôûC.š DŒ7;ItǦO™p“Y¼+zCp™€¨Pšbü|ª§[ ª#%dˆP‡>ƽä4“âöôɨ›¹jaŠàª¶“œy²o‰ÈM7 J|L§#Íy48“ñ¬ßpqÄ)êag,%–ü^YÑ(aE+*×—²{Åyé:Ÿ Á[ýsàb8]V™fL!œ­/qâmuy¹å¨»ù8š:»Î¡kR’ ”BØø¯[ÜG˜¤ïéä ㆴ¯/J©GaÖ¾ænô™Amm7É5‰•;U š¬šóÈj©S…×»Dg%n.p!#ÂnËÀÔ¾MDÄ!å°Ž¸çê¿`Ñœ&o™œ ¾ýBI‰£åGw50ì<½Oµþ|IpZ;G3v¹?¢ñžÀŒ&º!bÆueÁúprç§5»kZ¬rC0ú*×ÏÙÈy>Z6ºÀ)ºdÌ£ÏÊ ¡µ bÂÅ;ü*¬o”+ÒÄ• 5VÄnÎ]à{ÔíßñÛù»ÕW@©„NÀŽ3Ý›üI}SîU«H L§Qg® ›&Ï}å;L ÷[Þ¢W®p&ëM…³½Ž­Ì :'ý¬ï²›ÍÑ¿B @ˇGoK“Ñh;"¢7¦¿°ÐºÑ¬î-¡;jF#§Ý¦ëI§’ÓŒ¼à·Áó¨ÞoßÅ–eq¥Ô´VVI³èb™ûvÿ)áppüM2TMÁ²E#}‰ÿÔÅ’oú梉RT}f®úÌ@B=2ëÐrñ½n«˜ÉÉ?)Šš#†´ ó>Ï/¸Ä]ow­a!éª fßA(Ëf°ªD©Óðjí\²¡àü·+Ž€‹ óÍ‘er”Hìá[ ”^&5â*B{%ͧÕ÷.K‰yONúʲŸÍM‹Ru€¥T§DšZÇÆòs­t6@ŠmùöJŒX•^.ÖÑeñ6ËbÔw„VÒMråSÐ#9µ)Õ µ¸ï´M_=™ªòÏQ Ì5µŸ»•Úë‘É“˜ð‰,}Ù=tÐbšÔ›…3Y ˜üM/ïÎððÚÞú%¤èZó Baë®òá‚¢{¨¶ò ·ÏXù&æïª ‰àÀžñ‹mï;ÏüÄÿØc yíç`y£ª ¨m3À .Môµúª¼©’â6²ç-Ow= ³"ÉŸn/$A„ š²ÔU‰áÜ RnKÍùÞ„½N9‚Ú‡*ÉnÍ$C íD+úû̪À…Ñpâ;")ž#N’™êòÒÛ‹’¢êb’)½\ÖÚ®/¾’–ªÉÏL[³hä$É÷ÑbÉ}Wƒ%˨•†çñB9x.Ù€KÙ!>,$x˜£]ÙÌUulz‡NqqZi¾"»¿‹µ×ì±F ‹©BAŒ1Å™üM”hëEƒGœÄ:†âqï“„ͱ£Š¢¿¶0ì84@´’ÃIF:ZàÃr¾Ï5û£én˜Á7 S|óìNÓ®Åÿ†e€o›M©å×·®½9fJH™ÝÖF™,å©·P´ÆÃfK$Yv¬­ñ~HÅñ4»*vn¤³ÍÀVÕÈ4»¿Í•p5‹Þ3wÃÿcø6dnþkO4&ÃÓ …´•—Æ!Á+ßLi(X3„•$~yˆ©ˆ=³…B¢Þþ—ë@Ïs(þŒ.ÌöH ¸çÝÓ: WWÎ/öÿG¡_÷ÌÝÅõ:.Ƈ]ˆÀ}q)–*7fÍíðŽr|pƒ„îÁ÷4QCÐü" ÎR!¸E>gy¦s2bùÜ“ŽôPøR(g‰·Ë¤’<†t´¸ÿqzšêHô4µH›Ÿšû¥o5y›Îƒ!±•h桬™óW`ÐÓáêÓ}”–¸+¬Œ©ÁÔ §k›qßZÂã-«6Ê0ÑÔ Þœ†è?3F÷›T—†è­ßvü²`jwnÂ$‚ŵq‚°cØüù, ‚{ûmÏ?­fÔAJ.#Õ+‡éZý û#D…÷È´– ô^¿Œ: ¢FÔ§gÅc‹*&6*&PÌéFo/­ðÿ‘/ w‚À‹9-ÚDIóuD¨”¶Å•¯öaŸ¡>°A‡?6qÜo²ìÄkcl øåÛ ¡u4I|5‘‘tÊú¢rtнæ•ÚuŸZCýáÑ{¤×Qü†/ ÈÔŽºÛ(púÿ°ÁÇÚ½bä)ægË& ¸ÍÒfà=¤+vˆÓÐãþè9ýr–QŸ=­ß%2XÔæ ^ªg¢ö Ê©°ø?̧|7†SuCcÊæ‚±aµx|á÷ø¯æ„²N¨ôÖ¡ÌwÄMQ;g.q¯BÉÌ8 ¨+ÓY[À¼§–¯]=u÷å7°7Ú9‚b­¿bà‘—_Úˆ^˜á=u Ÿå%µÑšõÛ'ìžLw³±úO`+3D”Ipf{¶ûSɜȣ¡CÞÙéZ_åÃ@ü†PXƒI—…ùò’: !'‚VÑÇ0ÉÃü3ý&ÕI=©ÆS£[¡*$NÞy³WK®*›vnw4‰ÝÿÊé×ok@GpÚò5õýRDÂu˜ðml"íE¶§^‡Ô&€{Dù^õ@b±®W®g6ïË:—6“yýܳ¡õ«Ø“È$m Mî( ê}€ {ž)Y:ZqøXfæ›T~´¯ã&a=zXŽ(@Íá1U°‡7ÑfœTˆ½˜´UÔò K®&I¯MËCYfyÈyß&°­æK#Éû…Sü6:ˆHTÇÅ üM)Cˆbç·T:œ_Mòe†0æ¥<Å$L Ã#2l[Mb’˜Ft7ÉðŸmežÀâ¹Ì/Ëü¬N˜ ·< в4û(PÛµsu)w#®T5ç¾ßËL^BÌßÀ÷§Ü±铱}šÃç}>Ñ9±>7öªYüôCU÷ûäùoÑÂ_âR)P¡7Ý1ªŒ¤e°v[Ê™m7)îìa„¿m—/™`L§€áŸ½œ:Mý÷Î@¸`ÝœEÿš^YI&K€‹è¾/YkAü°Éñ­ 'þ=ÐLÁ ±8ªHé³t ½ªÿ…[¾¼FœƘ‚%š5Þu¯³Ž €°¦¤#&ë ÕvFCCäqú8V‹hWãØaO‰™‘”Q‡ ô\¡Ñ¶Lo”Âå©r„D|r«Yè7·ð©°]Š×³|“[²·6‰Ô}‡Ñ9 e‚AãÙdJSÖh|*dÐ{ƒ"`yê—Iu gLç5éy—ö*"fé)«y‹0ô(àrkÆŠ–Éë I`¤FöwÒ³I€Ìü{­7·3Yw—Œ"úóÓÐE‚ O¸‚Š\rü6<>ú¼Ô#˜F‰2©Úg-à1ʦ÷äV™ÝßA×àØðºÜÏ?vNqYSKZ7ùë¿ÂeˆåwÓEZÊ"jì6$éBFÍA®á¸LÌž-´O=ÊŠ·>—J¬è²£½§_·-é^| Æ Ìkæ©Üm•ö@„,÷4´Ð–N+ôDú#ð9 4ýçÔ ø# ߆ر«î§Þ-Íó™Ò>£ºÍí…KDaFIêfÕUå:©†‰–ö@ÿVµ‘D+äü+ðp!ÄÚ˲PÅFÔÏ:IØ«vxÍïŒ(ïò+bÙ–nZûXkIüXMÌU£VÿE 90‘¡4ÖK· "(1[P&íWmàj.+¸k¼tˆÎþ³›¬²™ÏÚÔ>îó ‚YðâÝE­)npÊ)1%Ã]à:XaIê窅dËþÉÙ4¡S¢…ÈùobÞ„A}[T€`¡§‹Óú.éŸüÄõš³}m@$ù6Jó0EQ&fÜ%ŽtÓÛÉÎCª •È+OïêãGRÇåù±¨æjÙ}¬ÊS‘ŽEcˆÁ(JÒñs(ÀˆøV Äá«„A«ŒOuz}ùïëÐQ3ç|KS·€çRü}bœá[ÑTÚ¹™µ§´”3‹DmÊ‚vÛ´Ë/J/æcûøzñçk?ƒk%¾ÛODù ŒÖá ñžèöX-¬S‚#W;Å´Ó'`ûïB!QÑÚ³ª‹Šœa,1n_Ö*ròÀ¯?U}D`E ³ä:@´ædO°Íˆ)¹a*$ŒxoSRùˆ!铌^í l–Õâid 5ó+N·š&bîNòú¦]Œò¬_„ˆâÁ¨9ËñÕxÔéÓ” äeµå¹©…ƒJ°ÌÆæa4”åQn’¾ÓŸÆ~*åªàÍÙÏn{ˆš)¾ûÈ¿düÛÕ/”IÎ5±Ì¡Ð¤§^À'óh˜Nì¢mØk×6Î1Ó ª®ŠÐ›uzçý>¤°Ëa߯=-ˆŸ8cýK¾/e…€òÙÖž\çwàø1{Ô1}›ëÇÛéú‚GŠª»Ëaü#³`DX%5Müf)hd޲é\z¥Eg aê+üNJ5VµXTXÃJoñ«9ŠJ4IÔ.Êÿj˜8Z®vRwZòø^·HA š”ÊÑúö©@¬¿ F™R~ðО÷˨í $D9 ¾š¬ ¬žãK„«‡¿€›Ö¹¹J[VüÖWNT‘xwæ©”«‘æ©Zàdý1YÞúHÊ5ÖÃìÛ¾¡/ÁÊo‰ƒÛ˜ ÐY6„žËwÖHÍ2aå‘Gp &d|ÆcÞíüŽŽO¬P¸u(#/‡öû¦C†0Ü5®6ª4îÂ@à 0ÇúeZüOb£OggS,LýÄ niK=‰Ð@Úìôðÿjðõ÷ÿÿÿÿvîâææâáäèóéðúíÿríýÿÿÿ üÿŠáêææçêÿYõôÿÿýÿøðîöüM¬È¨–u&Ìû\£äÕ¼s3 >Ï+H½{ÑÌ}O{kR¼Â'ß’ËÏPìt4º7`!¥¶ÀrÛ]&êÊtž-Àvîš.|Óÿ¬Rú£êâ`Ó½ëCæVïnÒW–ËýË,–Ô ¸÷¸€aP¡àËèqF º¸o쨟÷F/V|O=ã*µ›Â‰¢Û‚;C¤tötc @´õ̽Բ]¢ÿÀ‰ï¬/8zÅPå6â®%-Ô v|1†uch†Y`GYÅ8´$ôº uH¥‘B ²ù­ÿè®c*üIùÎÿõ¿²À“‰©7‰ô|4ÆUk“Êœ—-[—öõØÍ]$óþÔHÙÀ± ©k0¿W3¥½Úß4´YÂÑJé‰Ý;qí6½ˆ– ÔØí*ªM,Å@.Ò+¦Õ/²1áÚáÆw¤õjfR 9V¦<“›ˆ7À {žhQ}>`/¨…;oðî'¬ûK­Œ÷]ô)Ú˜à0ù´ü5üw õõüÅahuÂ6BHçÆzåaúƧ¹NoOgwÖç3ÜŠà*¿kî&$úžƒÚ¹‰îÏÙvtײž¼h&-XFòWcjPOs©%xÛ5–´½ ƒ“‚vÅ bÈ…lRÅ—ùþ‹D£Þ™­ª¢¯fÑ™¥`GÏÿ…(Ã]è˜9’e˪+Á®ÕDbu³ÅÏÊ©eˆàÚúŸ“ÌšÄQ'çÕ¡ü3vlu6œž,1*)Ôù›ì{»\µI$0œfÔvµŠ~ÀÆ´yŽö ÝL4S0˜ˆ ¹è÷¹£K( ØU7?øÑQ³§ü|·$\zßÐð‡wÌô »!½ˆ0pjƒà®|Lá2}Šâˆ$ç"Ê¢áw1Ÿ›Fp„lù:ÖIûù;ˆNêŽá#qÈ´½6žéh©>ì*×fw–scaê@TÔÖ7x4J›·Cþ`[ÅÚ“„Yè\ |Z?û˜öz«#5朗¸ŒðU#’ìY i‘}j£J“"Å3«Óq˜$÷NB‡aOü.ÿò:(_bÞûmÑ¡?ï(ö5–¿~ºQíSˆð×¢×ÊhUbÛT2ƒa3q¨Jokœ–ž Sì+ØýO\ô9Ýæ¶?ÄPâݾöè*ão[Úöã-s ¥ãáÁŸa· ÞM• {Âeïy4ßÞ×@õÄ×¾ö>(л2MÛ øóÄ‘£?Î:òÞà*FýJCý\rûO¥§DY.ñÛ¶æ’*ÕR„h˜ÈÁɇÚúØD¼ÉÌTæ·‚åv¦ã1qí…H—¤b½$ížð–úìH0»åEUè,¹hÌÐú[ÂçÊб¯üLï‚ôNÕWÛl¾L•-'äÜ“¦òµŸËàÎÃkt£?_®Ž¶!s>쎧½ÕÒvúüõÎZGµÿꎷŒßï®öçÎ]Ÿà*÷Q ֤ݛªŠ~´äÊëüS°—xk„ƒEÄê³aáN &pï; Ò0£úN›|úÕ([ÃÿJ¯?!”èuÌ ›íðÄ"vþ¥* bÔ‹oo«(ÐÆ«·Šlû\8Û¼ºm":짃L·[NgÃd±ã7(ÂÁ‹ö¢'ŽWèèyE+ÚIü8üVèß¾¸<Ð!žÁZ$NY¢¹ú’Šß)‰±1Sͱ"ü™uâÒ¡«ôS6p ´‡ÚuAšÎ—R¡‚jH(*s»27 ó¡Ñ˜°^ü«CEZ£HûyŸ)tT®K/ÙÐu®ƒÃpNQ­±è‹‹qý¢ÞsU–o¡M$:ý[vãÆ‘ô+ˆY]qdtóè„úO$þkâ¶½kìëeĈ©p8y½ë;mÅæTù¼Äz§&û5vâFWž#>«Ì=ò¿µ þ¦ˆ¹Ä44ûŸú¤ pêï°“¹ μh0#ð<Ålªšˆdt¤ Þ$z³kðJDŒ+œ“&ž&Vó€3­!ˆƒa°fyTFíÁõ_üL¼f­Y3 7~< r‚¿Â5C‰¦H6t1-´’”v›'ÿ¬¢ YBQ_9ÿvŠÚx™h»™‰A"§oKÅ ƒ·Gç¤Ò3§é{-¨L;3ìÃhµþ1"Œ^`u–¡¨¹Ãøº·1t4†¼hŸx¯uÄ·üG‰ñC-8Æ=šƒ`¨ƒŸk ú½;4ÕUÎïäm”H*Ÿ?·Þ°¸Š%&¹w?§’çë^ùkCƒ|_èöÓrÙ\õ¨Æ³`°ÅnLÕªSµs³œ@ T†@餸H„ K]>«’Ïóˆ¸LËÒ<ÙT–%ðe…×ü£¢Ì‘\õk;­ üÆf“^ž—½“ÒI¢các ]m•ÆŠ/ÍŸ+ëàù,È\jý€¹r´íN’ún@))¨çœŸ…˜!zà•Œ‡_ø¡,WáúÜSà}Ì*”â¤Wì:«Kÿå#­=!ÄA¸žô%8Ü"c~íTZvæTBtµåV¯ ÅÈ_å\‡#ªÏmQ¸—äEeÑue€C ½óæìaÉQK»vÁWqÌKh|E,J! wò­ÌkœuXr™uå˜[TÝ­in†£ªìÍð~+/s>2Pv>ß(Ï(fàˆˆeT 4)aoŒ`9svU²‡BÁ[xßÓ8h¡±¼ ø5¦%x eüÄj"òw§ªvç£ÈÙxqWÀrzºçø•/íìFwÇ9·©E§0u+‡Æ0‰ÆŽj6”¾°Å£TœáŸöuß­¾Dó„wëð䤣ZòÏðå˜(GäÂyð®æÌ¸Ë¡”“Cк…D‚ëŽYÕp$º‘,Ahå…t+‹.±c*.å¼BÄ!d©n߃ 8T×·Ráþi4¬èàSÉd¼‹ y×qzÙòÜRærÝRL¢V§õ¾ÓAÓï2æX³j'n~á:ybáCÑmïO² ‰»aü¦ólË'ìk8KUs‚yàØ’€‘)éÂ¥(ã¨õ+2!> ø]zÄ4Úܽ×^]üÈT>ž¨®èœû)1ЍñGYÃõr@‡·BövMsž™Ÿæ*4ñ úw²Î…ón±™iâ–èS7ñ}¼Fº£2ÿ¬*ᢺ0]þ=Áz´V‡3m [²´Ò~Üf‰Ñ†;ç~)ï¦öäL¨IJA#w@(–²;éà7Ý÷•ÓD˜°¹HÊ3½Kv§4së(z0ìöÑ4QUÚå—õPIy»éý®~}#²§›o*ÔEÞ‚¥3c¾ÌA¶Bîä7ÿ°ŸT¶ùþ56,ù—q=›'ýé;·ù¡†:‘Ú!¯× †]ã8ç€ò6uh3cÆRHë1 c”ÈØ¶Ât^if Xô5ßu¸ ýŽ/u‹E·+Þ&Š]Dgäx옳àÈ}‡,>/>ä –#[ÙãUR”3¬+ëÞŠ üø‘‘-Â߯ün’§‚[£îéà#üV½ßÕV+7Õô³ZÏÞ®)ŸvzbO [ÃåU€N¸bòínJF×µ¯ªÑ=ÒëVR©‹@HÛ!bÄ3%í`ãË£#´æC‚Þ¿”ç®×,†DˆÊ±ŠC±¬ä'«¬»Ç¨HZ¸&:µHÕW‘j×fãþ;NìCuÍÞ=磧¾8‘{ ²ü|zåéª×W7Ä]§Geã ž¥¬ôWh¶cz Ƭˆ7÷¢nR:\=ì¹oïlòÊîÄàຕ™)1vüM{†6WjíÁ{O\hY >Ýï¥çÅUgt( zÿáÎb5ó×Ã{á¬Í}N`Í'w7¤Rq'ð/4qé98W—hPÃyN_ï'©‰šÉ®Ï #fíu/|íÃò»(-ÿ\ô Î+'úK"SÏšuÐÙ ¬zod.Çýç눟Ëþ¿µáñ%Æ8©Î€\¦óJä ‘†î®pMf ß ‘— \“%.Ìó=fX–5µ’þ‚n×Íáð'2åÈ꣆ºoQÄwÏO÷£ô·£¹2oÖô·-Д¼Ïr@dÅüMZœ®%i½#«§ŠÏSHʦ.:Cnõ†ÑÊíõ¦90M$¦FÂßæÎûY‘m Ï_ZÖ›ÑÆ½PÀDН!ªÏü2ƒ1xÀsÎ?ùþ"õ…tc Ú{•Y «¢JôçT–9uõÊ‚Ÿý—[p‰_7“•1Xê&:ñô¢xT×- 6hxך D×^"е—ïæ¹é6.¢Ê ÌÌñ…_l81Iõ¹çÓ§XåõS ”l¬xüõÑ÷ð"ÄXxúLLT0Ú³ÉÑÕ˜ÿ½Â“H5þI –Y‚ÛuüL»³®°/²0Ämté“®pˆ>rU­×©Âï_kù@îûÔ–ÀB pØ„qÑ„ÞÆA8ÕRg¼ö+3É ­•BhBÎ[ÜŠq„HãœrÒmóFï -¢´ºŠL²ïß‘”@Zµ¢¿ŽÂ­Q»º8EتºsöÈß_©üÂ_zˆý÷NÚŽ‹™<‡ûû ¸¾7\ûõI‚n6“kŠnþ(„~ËXüL°•pØQ8Æê¿*Lxβ^ss6b(„ÒrÁ7AÓ©AmÍΔRŠËÓ6åu MÒM7ü1ªÂS`xá:/>hPhi|‹dC%Í04q<¢S‰.ÖHj{ñq’à·v™ó&š ãaÀ±Jó»p-á=är _ûF+†ŒÌ>qæ%‹Áâ ³@ -1°Q±J¯9¸>)›VPõŽAÍX’âU‘M)X½×®KEã!Lš|Í{ù&…£í»H„_dÜÏê†%al-¹&Ok+½†a.¿-:&ס嵺;-É…G³L±©âüNJÑÖ›`‚HŽì`3ãÊ! Ê&VD†Òéº[³äø?ë¯w#l¡ê7aÉ›ŠkÝHº&yQÚœ}vs}@Jp{<w²É±>zßiHŸÒ8ÜPŸJZ‚ÄÒ:pÅ•ÿSÿHC@?˵xy[K%xœV§^°—á …¤~9£:xh!§à¯& 3üA&ÞZ„u¤NîQ¯gL‡¨AŒÔ±*@"þÅ[qhþâ4£# 6ëév„ÙCñ”BÕÆ§…­^‚ï©vÿ  (Ç” ¦› ÐCêÕ@ 1ÁLIÒ¾‚ü6 “iY,êêSpApÌfà-${ÍõŽòm`.¸ý¯­·^…“Ðlk£œ 0Z vLЧQßL)k´VVX 7K%ºëò¾¨‘ šUó€»)š L(Bî$Æ9en{‰k6pƒsYÌm€‚Lré¶É¿a×TØ…0ZKâ`ù>æ æ]`?BSV8’cŸ”1êaø‰¬8Q: ÇUæNýM±·{LŽ ©h½)Ù¬ ½üSß™dêÔ É„‚%Mt°?¡fkŇ‚”ɦä,†ÜïStdØX H i¶Ë¬#RoõºÝÒ7ÎüIfs¨Åã0Üœ„•ÙHv»ÀߤÈÅ]NèrO± œÁH'ˆùï‘g RFØS^çQYIYBÑå$ðÏà˜éh‹ð±¾#'P{šà!Bâ ¬ÜÔdÕ«ç¥\KïoSÝ÷Hp“ßLÉf VeÚŽ?F£—`ûP‰c‚…f<–“ª6n´Œeí¼×©Ž=(¿=‡Â¶srÙnyçê"þ%îÏ+Îr}6ÎT¹?‘݉Z‹çÆá¬Ðý)×TR±2?!_Ýw ˜Ä¦ézr?¹ÉmBÙ&ÛieQ‹45E8üÆmSsn$# ÌT?95𿼥8ô3UÉ-êÈ^ÚœDhA˜@Û‰x-êˆÂ¬4Ñkó*%†ìçTÌs©‡ÏäÍQbƒ ÒjÚ’€Ô×]§.žÂ6UîŒÂÂŒ:{…Yû@gz‰\ÌÞ^ §l”î:;¡“§@3ö¯ò*½%|€½»¹>&*’…¡1*´~.Ö.‘£-Õètúþ…ŸZ—ö*_}_ñ6*ßïÞ©.‡’b‘Ú ±ჼë)Å ™bV´Ö†´‡ÅüÃÿ®¸™ÁtÇËSJø„2Ïaù'•ªïŠ÷ŠS1ôG©“öý5•”h¼ºžÞš¼6àÎÅŠöîí»¾ÚfÛ]ýÉHÇ#cÁDNÇùÚë•Ãk&Ü3úTÄ£â²Ó!:p†Üô×q½< Ë]s¼àè•°ÌûÇ×GQXÄ©_Û`”`>쿺x¯˜ °û”q0Ãý¥°ŸKìF|E#×=Xíi“¶‹ä"°s²¢wÙÿVÚõ9X5i“MF;Fv÷!mpU켯Š%¼ØÁ&¤åàêXJqã»O\dĮʇö–e;Él’¸ ‘<4ÀŸœŸû&ýüÄrÆ-rÃRLEé£`„C¢‰žI êUÈÌq‰L~p:'EŒ+WBžãKS‘-b­± çå‘”YBmW,<8°•ãðã)rÔå,Tgª´ OǨ G×UÊÔ+Þ:•¶v:ÓÙ¥ÂiŒÐ÷kûî%øÓøÚ~Tg„ ÕxY‹­hîÿ¡k«€8,³aþmF%À߆à©2‰LÛºvc’ƒ ë*7+„[ï—Ôøƒ±Urs–¨)éáö­ z4®9€]œSÖço:-4zÜÝd†JO”¨Ð)ÀŒ!¸Ã_¡³Iü}aÿW¹$Óù12:•~¦<Þ ¤‡±Ù¼c·Äƒ/5¸P%õ7Â\Ç¹Í w f÷Ð)/®4п=õç ¥Ê fdÁó74 uÕ{ö4næøÌ¬]RØ›n±ÑòFåå‚çG“Ìï÷âºÈ?JßÊ]?¯¶cf¨õ§Å¹]H=Ï7õÌŽ™ÿŒ¹RVˆOí ‹x¹ãŸjL:î'ƒÅãu优EW ‘ùàÁ²½•~X—gz#¤ˆÜeO@“n¤ºÊ\t.®ÐMZöaÈðUt'$i8ÆXvnM¨¾¦p•l:ÛÎ ìfïy9<#”Ç$¤x¶Cè2 Ý`žªêqsE2ó_”„OÇ¥Be<†iìÖÿ„·'‡?Ç›"«qPƒJ$ÜéI´]l¨†­ñÄŒCªÃÏÀ£¤[0kE#ÖÙàðŒ7—¢/ÂÏè¹ÏoǧªÔ~eŠu; 0/õ­"¦&Êçšj¢ñÍ‹!üÃà‰¬Ìaº>(ß„•–d\ú"ü>ŽCǼŒ~¥a™zð­ÕxrŒ cP~P"JÓ†m©cmf_Ò‘°ª£eÎWyÒ÷É6÷ȼcã¬4ó$”°E4BT¸;GhÃÖèëB_â ¶nIfôu³Æž²{è19Èvü¡Ë= 0º+EŠ‘°CÐ6yS£j{ñh¬¼Çî½õÙ×ïn0mQŠ< R5àÊ3J.ûjͺ‰ipÐ ¤® kì¡K¥¼68ÃÓ?ÁeT½cbêämç×€4‚Šˆ—d‘¼˜óäp“üÄp‘å¿Ê›¿n1„Ùö!îãÄ”(u°7?\ï3.EñFµ^¨wžVx `¾ÔùOY½^ˆ³j|*3\%pX$t¬{³¶r·€b§°~ Åái%¤xO[wÆâ¸ú‹(ƒQ°¾ÀmsK,V…âH(­u~3± װ̘îýžpùİ\~šÇ2Æu‹^À’k±˜v«Š”òZ]õ hB0vÈif™Ro²U›QŒu&ë7øF9âÔÞÖÈø…*ˆ;Ò[|pÔôÉv,Ô´ggap»ƒFdµÒÀä ñ¸,Ú¤i“D¦¡)ðÌ˰Huµö^˜gq¹ ´]â²YL‘üÆmR(¥fÎd•©yw?.‚C4†‚4O”„~³ßÝR= UN•ïl…ƒ*`*a"1Ù6,Ò×ÿ¾mß@ºŒ‹ÃÃ6³ÐþÛ?ƇöÒg¡¯¯^À|ÓY›^©fBþ ƒå\ýdÅQn"Iƒš(Óü•€£™'IBN`jwŸ2Ë Óõ[ϰÿ­j¹:6\“—€ÛJ©8Jµ8¤OTðrH+J—$ºãôg­]cqFÉexPH È›â•TØ[ì”<­ˆþp§HFÍq¢Ød;0U¿éï­£rï€*ÖÝ>Ádf>:3–ïgYw„‡6¿B耕h¯ó·‰üÄ0AœåêNCÞ3:ÅÛܨÆâM]¤/£µTþMè¦nRñÖcï6‚LÏÍJjô½0L¾z@2v¿sw„:ÖïV­ü<ÁTš‚b ›‡T‹Øè¨ëõ‚jyÑ}Mz¦!dµX°Qð à7GšÍ÷³ýùAŽ•Ó_«¯ñ»È^ÌŒD* I¹%âüõ“3P÷уz „”Xü/Vœe>@³G_µì2s£Í=“ÏǨBºó‰3ÿQ,Ü*gy[îiª,”NªdñÐëó›…-ÿÈt…h¦ž>ÓüvÅ›”Ο²Ò1wcM(í7éã˽1Èiaøƒ.Ì)ŸŸÎaozlŠ<†ÔUœ‘üÆc›«ÈvŒPüt/ Ï—d²†úvæú vÀtñ¥G»óUõ»ÉR_òðÃ4&ø©®ò'ÆK•§é­/àô”ÔÑ?™÷Ç,ÓÐl½3»šMaÎåmbØF–36[H¨˜e¥:Kʕ⠹9I,¨½Ò®ÎÙ—ÿÅK~ 7¼‚On«!¥ürgð„ŠÄVèΚi(ÉÄ ò("þ÷Òòêc÷!-Äå)ߢÖ]½ßÑ{³»Ì÷\wwoþÊÛYò_<®«ÐL¯l¡–AÈq{Ç!"_ÓVöel²;¬Þ¥‚Q'gv¶ýÊWˆü}bvÞ‘º>·5 ^1%=:ágjÌD@ieïõ%üõ¿W×FmÉ‹­*bK³.<ÖõЫ%4ŽÇé`Ì‹½ñO{S#@gŒc*‚«<èR³oÓöhŠf…î·O°†oxfIf}…Æ»S*fÈÓ±¯,d¢/S´yÀ­Ýò~<åœkœ2ö]#åLL‹ÖùcÀ{i+¸T˜ß÷Éõù»?&ÔÕ~¹þ1—*æmþJÄ™0¢›ÿB*ç!]ä³paõO¬áÑ,Œg¹L ažhâîhV¥~,ë}Ubv5üL¹dèŒG )†aÑJ'rqµ$ºëÛ®ý`“Âiº°O£-O‰;Õ§g_\N¡Mo @ª «tÃÛ«¹b7NOr#A[À(l ^øÂ{cf%B5”X'î:PÝ’,ù– ¦7¦ïƒQ”¤ð ù*B7ÝzÎèÇíܪ þ¬Þ2;ëôN;W3AqQ¸Óg¼cÆ¿zb‡Èæ—9pŸ@¨±G ¹u ‹¯“wÒI¢!ßþcœe¾Èu¬ÂÁÉH#‡…K‹*ˆô ‡E£ÝRØT·Úsi?Z³½NwÄ3^fûßüMQnRˆ)8 .%øYårßù~wvHæ;äî†ö­-ñftmg¹jX/¸mÀ‚ ©GBÚè‚ÉOœ¾’ Üò²¾M|'“­rÍÒ^ϰ¿BU9âOŠQ÷»3¥çšÇs½´œíRpÏŸ  ájýÔð¸ÕbŠåW=È™,óÎ'%[ÙzçÊÙ™¡ÕKã#s{]”bqå—ó°Öcâ+ʬ×UI ð­£Ûþ8Bxù¢u¥05ì >m^†ÕL‰ÓûˆèV§¤S*CW8ô´äõ ûO‚Ø#£ÙÍ&÷ˆüL¬û^Øž+‹tS˜”‘×Þwx\?YLNl.Oö·ˆÅNP­¿žÐ[‡NÓ™ë}›Ý¶Ý•¶@€«è-„E.ónáиs>SFÅéd®3ÆÏð®ýI XÙW‘ï^/íݱ-àAi²•"]vnMq º">wàG¤ÑÉ–û¶àÑHß[ünƦ0qY¢ÞíàÈ‹žÞb©•öè^ý™ãuuK•‹—|{×@Ç›íÉ%^€¢Á6ìS…¦Î]æWìbÇëð¼_³#_¸Ã®fœª½0Ùµ†ŠMcSÙ~zïr;ª}hùorÚüM1òº¨]L?5ÝHàh3¹¤[¬·ØÝ‚V–]ħµÅ™l™ ?WôŸ‡]˜]K¸JævXä&q~tÜGäíU~Y9G…%ªí23ÙZ±,X&Ö£!¢ä¥âÿM„&Þ—Óå“ú¿˜Û“hÿÀ±û²ˆØuleQÍvS›K‚8Ý{ÿed'ÍQ*däRúÓ¡ ˜–Õ&–õϼ0l—F’hkÓ^òA>@¹8~P02)5´‡ÉYÚN"@¿ñ^I ÆÒ—¸ï{'9ˤ:4xÄÛ~ΟÑzCÁrÛ$pDâëLͧ—gMbü}aªÉ«gÀ‹Ka-ü5‘´©:¶¼¶2EyÌ™ñiÁº+U ¿É>Ù×Y3Pâ+ÉÕ4†™þ ¦@Àî©úý¹75hõÿÒ@Sö–õoˆt¶ô±*Y>üšä¼ºéf/æ•-+7¢~.>Š‘ýª wÊ\Uz&gòÎ,8_[¢ Ô$ô­í‚ûòÜD¬¬6X¢^búN°ùå“ÄG°=‘šq¾·ÍÒ/ýg½ÚåðJ¤,hyˆHS5gz¸-mý4h×QqÈ»¦3Û”2NcåáñV:Bæ=…Éhò+3rõPHIô5u' $ò>:he/íÊ^+± WI³­·˜œUj­ù'ÜWc>u Î÷[µû=k¦®Qä ¡L”|/˜ˆ´ 糿¿(DR«T>KsÊòÝ_˜ã˜‡`Î -Á^µ°rÚ\ü3†ß O4•]ü%Í·”‡ü2‘eüó»²¥Ú «÷m{ sC'7é+É}¦1çñP$…ýÛjî›ÁX¦ì»ì²\—ÿˆËÒدV€8 wú`‘¡àÖî–‹^0"Üô–­†Î¹8­çOÉTµ½›êäïÔŸû¿Ù ¬™â»ºÐ[L´| @™…N%ä ‡fÂiÏ?¥½ 0ï={âž1 ¼U ÕêøR"Ýe± ŒzèÖ˜ɺÓm$:š’G„ÉÉÞ™3íbì®ÄÁùÿ¢‹#`PjÖŽóî&ì°ˆ ‹L[U¢_¡]½ÈPçcŠEçЦ̿üLª9®ãq”XÒ*cÁ +c¯×ãrý¤@è.Â峉  B±P»Ô_” ¼ ±YôŒçeS6#wóå6Ãкx²°ç'kþ3â£@Ê/;ં.ï–õËœ›`æ]{ñYYZ„ˆ½ÈUŒÅµ|æËk}?ç5',ÀôÂ15Ào€)zëú^ܵÈ|„C'‹U²j|¢ ˆG˜ËþQ.̵gšv»u<’äÐp_kìß@°‚RƒK¬OA.Q¼äµ–êÊ }Aj1¥œaçJu1˜Պ`iKKõ9Î.<ú’Ü/P¼üïLû÷ðñÚw¸Hõ‡`òA;¶¥¯àg[•[uœ\íöEåÃfR ÿ…>Lÿj3ºÿµe6—=jC,ŠäË÷£·o( „ü÷JËë®Ó(0€{Ôžµ™‚e‚U° ÉH’ 88*øÒýjª5ãšBÅxAQ)Žl£;‡|²¯œot ÑÕt=ÚSÆæï\E’J„Úµä)yæTGkÒA?§ÑWRßžñÃ.ÓØ<`YFñ2ØRJ3ö*owQX§ÔU2UÞj§GÈýLð|û‚ƒ|®MEu‡®CËò ¥ÈGo"ѱüfuÆßÜ;/ÀR—g°çý‰(~ .ЙÅ7üJ\â¶ÛÖ€aÔeå8ÿÎdAbxXIS_ßâ[¢á~šÞØ.ÕÒº}_·D¯Êô„62¢q¤Q&aè[§»v_ù:;éIJÙˆ³†Ë†r¾áüuèXCm cŠ— l^˜Ûq‰eR|¼¢¿uAgª±p,=¸&£c1EÉÂÆs$º¨x¾x#ª¥³Å4±ÃRdÑO˧ÏhŒ^´R 拦O&KY˜eø;ª¥= ¸$[èlv¡ÎÌõ¶CEÞµÏMk;Õ¢À5q2‰ci›£SÛƒˆÓœ'ËB;áåŽ&™7˸g¹h¬µã2‡ØÚ±/àüÆmm©_ž7…â¼C©X50^-.ªŧk€SûHôr|gȆV*º8_eÐŸà¼æ_éNíÃdU¶¢Zô<.صR4wøŪ/`|>.Ç`œ¦™©ìdl‚þ›]íÑŸCÏ DGÜÏ›³Um0nxõËiSˆé8šôz ê¹áÍdJhâ¹ ª™ùЕ—Åô²™/Œ|{Àþ6«PI‘\ÿî[‚.d‹ŽkFtNl£î‘ô=Ïáj»iTäháÛénÂßâ ñÊ{JVE;C/ü’_‰W‰~8 áT GÜ%"ô·Mhzì¾äB$ØŽí¹’W ?ã+¡ï¯*ù‘%üIz–èŠí£Ž"ˆOoá>Ã*ø¶€´£î xáuß Ü¢¢ÐËzîºá³‡Ë ä‚ALý‘ÇÓ ÝãøZ6ÈUŠƒ¾¡¼RÃòð7"¹øé{Aî‚ ±`iTÃÝ#לO@’×s’„˜=äãÇjc†´ mI¡%„ŸèµPçqÊEDËìXךî([ A—ÔšŸ à7$íRÓL9bIÉÚÜì{=9 ÄJd`Jv¦vœ[4¨dTwéü³§deÊ$@¥‰$Ss€¨_ ùDFFy«³ŒjwþAȶkGx›7Ø³Š‘T¼UÿšW7{§nVÊ¡a*ø8CÒñ~)üX¶°,¥’²À±›±ñüû¨ç‹NsÁ0ñÃE‚VƒÉðZ–.GåõšÏ["™ðS¿ˆ_‹ÑTž4ë´#âP¾­“ÕEoÉ †¤fŸSŽ>Gf  nîåæ_•Y¬‘›°¬žÏðPf€Z{K¶©¶úÝ#Â&äÙM20ÛZÖ¤€$b5ZÍ/¶ú¾züY ‚Ëx‚Ò)~¨é2éòˆ{Žæ¢’>dâAg™[ýÁŒIÇ/fÅo -W'ÉTß×l6ƒu¼– …¼‡°™ V—“=”šY&ËX[:Dzzð@äKÔs ´Ÿnºê¤±èÉLÀ÷‚ÛdüLÁ”ì´?50†”g½{ÙZ}俇–[„ƹü¥.à£4OT¸0¢ R?kƒ 5w¬ŠtɆ;j«LØÕ0¤]òloŽæTA¬ùÄ&ÿ® y£](šSa4bqêŠ*’ȸ»U-0æpÔêÄm1^~h>啉*Õõo5ýs*l>›Ø-ÏŠÖ^£îˆ¼€N‘—žÌ–¯¸ âA™ÊÛ0@p)<”µÐóº­^ë’´–8órŒÈò’áâÑtêX5Rù²Ë°„û9Êfäf‚pH ïUQÛ¾5`M¶ëný£‰ÇkÝ"¢”üJœ ä)Î4T·ÍpAAÕha²Ê×åÆJPòáV3Ë=–ñ?T«çÛdfœ/sûÝØÆïf€êŽ~È‘Šݧ½fæè…ϸ¡û&ŸWÈ|ÓpÈæ„.ª/'Ðy‚.<ùý0º~Ô¬G²l”I‡Ål¼ªé ±¢|5ÒÃF®Ô v¸ðÐGË÷íòVOdÛÐ=qEn)Úכȴ“%f©¤,¹wéé‹ÉRRkÅ¡®\ŽÁg·ÃWy$¢gßOvD§~3Xzz¡R…‡óÛ—Éq Ú„Ê÷!¨á0kîY¹–C˜5b¡*è“iQºüL×òsåœyá]ïÛc-ç¦|Ùðš®ta<[ÿ.:bÀAüSÂLz™‹-Fëí o´†rü“fœ•ö]ˆ˜¿YB?Ñ-§ùëâ(Òˆs-àª_´š?RAì×ÉrÛ4QC=ÌžM@”’/íÉLû‘´ŠÃ‘nÄöeÙõ<¡}ÍÊO–¤œH½üSº"Púéà…äA)äkF¿ý>rŠŒ‹QÒ4‹$)U+ü¼ŒTéÇMŒç £ÚcвpªÞ<år‹óصØÙ—@ÿž¼ ¡fS îÀuàü)K¨Ûl¿¹÷ È~ÿ,§UOggS€çLýÄ nj~ê|-Cÿÿÿÿyîïøøö÷ÿÿÿÿÿÿ ÿÿœòìéîìäçãÞáåøòÿxåèßÛëÿÿòðûÿõåÿsÔßÖØüI¡Õš1¦‚nË€®Ò©ïJG íÔûÚ <#‹Üûy¤’êkùÖ`¿¿9žäO>¿(Y½¯ÛØPèÀyDÕÝØÀ¤£§BÄ2›cPYõ]ráÕx>KÒ½à•{7ën#1t̨©!¨‰¦pA¼ENu¡Z%%îΣÆK™ Ñjüøòu¶ii•ñS>¦{;ñ~¼»ÇXî©·¥?{ÅȰÍ^ÀªÀi'ÍIIœj·)Kílõji”67ª—ƒ<ÿÜJª‘Âc3¨$ײr®ëRáœ«JQ<Ë3X°ôÎ’ÿu »=Œ‘´¨Óµ?ÙeV›TÊ‹[)ÂH(üLÅÅ.ÙIÑPŸm˜v¶6Õ£°¥“Þôfqsú™ ëæ ‹·Ím¼\4n4š0Hiàò9èåß´tXSÈ„\cÃE74Ö›ÅâQÜ ó5ò§1Ó1 ¼~¾\Bd­Hák7˜’.T_/çDÔJ='uÁm aZ¼Ws¬XåfÍ®áÔ–(;GZjÏÿÿÕÝ(™Ó³é^NÙ*c2Û‚ÅOð”»öâÊb}Yœ‡!¥ÙÚ½˜ØƒqòšoÉ€âõø[~F‚"?Øfw³ÓÇx5BÔ°êJCfcTúPþzïã@o$$ð½Ç&bp( }°#üL­Üƒ…äö=òü_oÜ¡Á´®uòç=<ÁÉbØçÊŽe;s±ÎªèRŠ”ZŽvˆÊq‘®4àÀíþ¢ãzzÇ*\Åû°­Ã&«hJã¼æ–YOìà ù3Ýô·œîåãx§ 7Ä[oNyGÙ£…½öR~5Iùõj´ÿbrÃRÒ´ð%’Ÿlß@ˆòtR˜>©ˆç#85a'~Å4j\J•6аÔ.>ËÂÖÅvxލ™Ø‹Û€  ÕŽ´qP:÷¼x¿.…d«@àõx&íLuNY¬"çeÙoyÉÕDSWhpÄç¸`Ö*Åe\ü}\izô‡:ܧtŸ/Ýsͳ§¼È X†è)݃Õ5mCdÒKÉ·§?d¤Adƒîôø´˜±ë€"·Ì£¹V¡$‚Bí nù¸Õ[ŒD/ÝÛÇt¿åÂ3¥[ ü vZwZ¯ÒÙ„ë+¯†³J‰eç1uæ{äÕjœ°~¥«|^u-,_{_å`†sÉ2¥A)äóñS¤0bÊÖT!vL{õŠ\VÇ¢I‰1†,¦s½öÈ¥‰P¤0ª%ôÏ@·ÿûüÙ€7Âܸ٠DWÎ{üKg¯Nz¤À\Ç­€¤ríYšø„,ý¨eÈxʤÜ7 X-Õ!‡1$°œÌÛÛ5p¦($lÍv<”]›êN)[;˜{=H¬÷wgaO.,?eïœ|eÖôÃP:kí=ZåÌ–îž·3úG¾riÐúòšŸÒëÞÅ¥Kù’5ë­Þ2aå~žæí–šùü.ncd=P A\]Ø›ö, KM}Ý«Ÿ 'åÏB§ê×ì ¦Ð»¦ÇµdÅ6µPxý#Å,TˆÿKLäÝ:joùöW˜Ã,¶Zß‹IWV© d×Û ErU…œœéó þz®q”§G¨Yf7aqð$õf‹J;l[]¡Žè¹²;|]ñ`âÕŒÕû>Ù}ŽV~)èðÁéëþ_Ú._8¹ 䘯»ÿŠpL:…”hLÃ;Ÿ{±6êÙLQ=×uîU6 Zƒ(êÆ|Õû€wصâYé•LŽš“t?°¹ÆRØR§(›¾üLâ鈖lD‹ÍìK2|VÕ1©?<‰|H[?ˆ$»È%” å żPESéràkž/Ýr?\d Þ´ÅO ³¨ø=º,îg±Ý\³²Ýà§B1fÒqá³þUqÎdž÷dÞµÝ@ìS@×C”âµþd¯€ V³›fü7º‰ÄbHšÉß»Oî {fÔlL†PPßiÜHA@Â0ú®§•Ï}¥=ç}Ü9‚’çè=5 “•EUEÑEûNXÄÇ›ñGTq€ðy6úI¹Æs³ÈôXC‰sý†GÉJ//PÛQF›—s©ÑQuÇG’üLÇ:u(ˆ€û­ôš÷•j}ŠÞȉ–lr£TN¬|4ÏL²b-5fÂQ„hÊUÛšÏÔï@@„¿©•aœ tÞ²œF¢ÜU¬¼2ÐŽÌôA<¢~ÍQb§²jµÞ™D4”ãìfÏ6‡7ü ¾í&ÙKp©Ÿp:%‡Âx'¤xS¡J²"¥ƒÇL«Á„Ÿ[¨HŔީ3æèÎ ;áÆ-¤)O‚ómöë´eéÇ¿'ÁX€Æ™AtPeÖ\’òñ87D&qAËjAoT~]<'n8–Jö,_B †á”tîØ4—Îpƒ:`af© ÔüMÓúÑq 1ªä3ÆÝe3ýäDʉ P0!¹y$äÇ’í«6ý&Bÿvj%Î…“Á­¦\vQGdóõîa%çh›H†&jD ™õûý/!Œ **$MHk(KJÖÑT‚Š× ³˜Ê8@MT߃ +ä,4S™•™;ãÑC·¤ÈñKZµ®‡í Ë“6¢?ª÷ÅåÍú@žŽëÝé÷©øí5¿3Á¦¶LhYíéNL(DàÐ}0PÓ‹¼˜ÇÁèKàNr+]oRÔü "í'-³´—""i8KÑ Sïøð¥OA‹~>ÊOöM#ZüÙx•P³Á¹sµwaÉ@d/å±$‰¥UW *¸Iù^aûªñ‡"ˆŒùt¥Jbº¯0ùœ-ز‘gxÈ­)µ™¥›ýÞM†nTÁ !Ù{`p››ûÂ5Â~•ˆp Åú¢ÝŒZcÀ„q‡šFi5E4’1NbZ˜°^6ue@=3H3ð&QÞÏï¼'®'CÓ8GŠ>³/fƒÁÁ÷B\ÀÀÅŠ3)vüðYÍ7ž¡è"l …œþð‚‹éØzšïš;ÔùÓ¥× —'$û¸õuêm  u?¼¥±\šñ‘sqf2É(³“>SÉ4¼ˆ=³…üL©=/EÎ Ç0Q_ŸeðY €Ù.ârvy1¬œ&Äü§„s€ò8ú”Ó§FŠ+ö†|] Éó»FG¾gS^¢âö‡È²Š§›ga1.4«*´'xñ2ÚåøÏä(…I&•‡¿Ynõr…Žö]kä‰Òë®Æ ªFBc®|=!»ÅaŸ þ8Ú³x¦~²ºJðþ42ðXV‡­8‹|ñ˜ žiØ pÑ›·¦öø0ΧÉY/÷ò½sjš,”_PZ„å‰étæRæ¢ýkÜ›ª:Cj|©0*ƒ<׫¸ŠjuÒP6ÇüÆŠK°]ÏÂúò`-h-ü|ªå˜sÎvÿca•î_4oMïª#»c *ƒ¡Œµ{u}µßƒÑ©jnùÿïh<0ÝÝõwܶÌlP‘•ûç[Ï·Ø$ úˆª¤/:`ÉÙ-Sï¸þ/†›xäÆÏ›Ÿý…yq|-…ØâLÄüÞñbì»ÐýËQ’ó}Žá$1Îie«ä³¬¨™{¦K=ÍæÛñ`åBqÝÌF¾ïN~ýJÒœM«hüœýA³%êùñgIZ€þv¿õÖ¡W•„^éž WÍÜ”WÙX“ñ×5ÃKØ|²²k wñ¨¥h/Ùæm«(Ü]%QÑ&·3¦çZ)Ó²ÿ/õHòM*Û£:âSkG10‰ 0 ¯¤’ϯÈ©~Îëâ óÄxÁÒ’«_ ­ãÒMÈoOÇ€rê-m-yÌüJ~Y äAMJ¿hS]Æ—B¦@ßÿ7°E˜v[J]n=ÁÙr[víï€b2M2Øu”–ç{~FP•‰\ìŒã^¦Å¸ãÌh´iŠƒ¶wšp¼¿üLÖâdŸ…¡añÇ%µêê™åBåM-º·®\„É?A”VYúÏ÷¸¶ƒ;{ ­¨ßÎû¢ß¦"Ð|«Í÷hÁ}€ç_̺Ò@ E—æýÚ· 능 åh›…Qñú¦å·¯<þ8ú™¤Z^þ}A‡6a£tR¼³˜ô´VØ\£IA †?0NIZ­V ^ùTŠ€K©®€.uøwö(Ð:»ž]¼<ò‘RúNèŒG¦—%¶úýf칟ox~Çí7é*ýÍ‚õuÝÄß‹vÙ¢x˜}1ŽÇNLïÖÀs)Ó“Nùê#åʹ¤–s‰ÿ˜+Pü.üTõ¥B'šÈÂï6(#{Dæ¼ g? .·/²²žq@IÌç®:‡âúH!£/ b¡‘Î5™I{€BøDœ>Ü÷ÿGN²ßŽ'ifJo˶4øXÔðÑíeœiqtŒþÏgÒoxˆ»`Ó<æÿ»­Y‰©>Qá—¾ó|°‰#ÏPǑðÝ#{ëë,føLõ‹œš pwjveÉý+®"mP¸1 å¬4"z|œ¬1ö½™ ‚ éw¯Ê?¶£/³f‘EÂûºdù›@RnµD+îþ,žÑ §J7Üù”$„¸Á\Eüø÷n H•gy£ïñ¾xZLÓ=7®©¸fÙ¯5üLÉU¨Søô5MÑ@êe2ûs_,:Êô,mšð)ýI™p×#Ü_?  [ô…k-¦ì"ðR†Ž—µªàDNUš uBôìÅ5,I:"‹•ͱêõ Žù­ Žº¦€¿‰k&"_{m9Á¤Òkqm’­”kHŸ·îÒ‚Ä<ãu~wê0ãK¾ÇNrGœ—á|öSÅ6{ùŒ$xòâ‰2ÂA~Rf¤?V@‰Ž^©d +‡ùïK¸ÕŸk&Å ñ¢<Ï\·)[”ê!”Ø–¥çàfß{è‹C†¸èãèÇä}u95ÁåvKÆZŒÿ»‚_;~ŠÕ˜ ÕÍË«QÛ¦:ahâ‚[üL³³©8˜SFyÓÀ{G¥µàg•o òª›(½Œ½¡äŽˆVJ.¸(lCI= 2Àd²&ÅÔ=i¨q fè—ùWÉ<&:œÉæã!En'öê“[ß»âÁ}ÇËåèLôbÛçßë6»*€ºýÇ©þèºîlYBµÝ+$Gyø¢ŒÃ`ßMÝ]qî_œñ3³£¹ w­q)żùc;‚ ŽAùÔ¼i5júüá Àë>ìª)g.~—mX›}n*‰Æ“Y”$µ†À—À¯"¨´0pãÊtF¡¥ã÷VIËÉ>†ý› «^*–còÍ?j„™ä=B@úÎQʤÚך]])üL®lf$‡ãîë6ÊŸv¥„I§ȧsxBdÍ’C1(èÁäÖ×ðºÜPµ;'p¤ý\\p<¸>{]ì§ÚIó¤aûæ„–ÊzErܸë¨7FñL)È©”ª&×Û‡¡A±fR_V1\d‘£Û\+ûþ©ŽœÓPôÚ~ è3]þ;!RÿdM„èG6­##r¾Z½yçøÊÉC6ìçÖ6¿%7 c<»û3œ"ÃI¶„¸µ-Ý L5 c<³é¢kpìÖénêâ©¡o#ùFä_îÙá¹÷iä¨Fì#Y¹ýλ1+L-±“d0êÕÉÚUxÌM°X±®^ÝüLªF—ÉB gÈqñQ.ÕFû"pÐ|èÀœìT”mî àê(fÕæt•ÝÊȤ.ýø— —2[/èÍòˆ¨U|–¨K2„@O ØZvÊan§åÀvºÁîØ‘›±Híñ÷¸BÌÃÀî\çáÜ•˜`Sqò¶¿ðåƒmÔer5U¨UwùÒ•z§f’°ÆÚïå ³¨~§s¾|ä -¿`v¸N(±ºU¯;’ï?ë¡LãÁ¬‹¹$]¥Ó^eÊÐ&D“ÐÅxëQp4©?~RÚ6y8ܼjE7è2Xó•âgN÷£óHî\Òƒèøˆ_õõté÷)ãü|¸.œ_ŽÚµ>y«2“ ¸µºÖjSÀÐDÚrêvÜ#/v… ÷\ bï÷´>±ÓLŽ[‡;N ´ã 1Ô‰Ü;ÕX\m*Ãú%zj~b„IÅ´¾)”|\ÀðË:ùýŒ Âq[>+D¿âL1ü>nY§·ê¢sH®ê¼ÖÜ»é„[ÃØ 6E±@ÃI åF„Î÷a ÔUû¡ ¬xFo`¨ˆWáè-š{aÚ8L£žHƒC¾‘È¢SÍóôã^ŒÈ'EîA¼ ”Uƒ¯‹æ4ÍàÚ^LsøÑ§ •ÄÂßa6ºƒžu$a˜Çô×¢ t²ÑmÞmš·×»Ù¢ÝgJšøÿH(÷5ôðÒ¥ÇÌ‘#Ä£gKUr. Éî#½Å%SÄ!\×6 1÷Œ ‡ùW1£¢pS;«’¬‡¤.SD–+'ý.º_èoöÁsfÇ›Uó­k¬Ùÿͪt ö´e³ã[ö!í§Õ¼XåPÿÝ•ÎK¸ÙeÌ"Pºi—§…߸˜¥ÑêP¸.×Ń¥-ÿ1xÆüMFa«pyï£uð¼´ýsÀ‹L÷AÿŒ ýâi<ïN9_ùT† jª CLøQD«°Dò“ö2×Qþ;ŵ1D+Y€‘`+ïmŸ¸ ›übûh`:7E ”ågœŠSTÏØ0/M[¸€L··8ÙD5ì¶74­­¯iÝÂðû« ÁIt•ïÎ2,ók`´Õ™5W¦i*h…¢8y¤qTC“é0Zâ(ÛãŒÓØ¢0Ç`¸vFÕíašâdtzØg²Q—b‡Ø0M‰>Î6ÚóLþÜ—K^): Œé›l~»ááç®pšídv]x“!ØÖ‹üñ1‰z2"ï¥Ø€õÐIAß,£€wërj‚äÿò|û‰´§cåñ)rM~ÀÄW [¹‡bÜî6ܤ GÆ´ö¸6jy‘Á6Z^æy™Êºˆ$ͱœT݇.[ç¤ïáøûùs7º +?BJè½PVw~•=j…-?}PÓdIœ«¿~Uà‚3 tUón®®«¦ª˜É›hVw±NÖåýoµ^̃bžXyÕÀÇÙ)5-ßô,ýžpÛ0g&é±m—![kÀbfLw”£\øÈÔàñ½ðºQª¡ 2ÓžeDÊ•’¯„!qôf´üMz¦ß²Ô™"ó¼¤ Ž·Q®L›x™i½ð^NVT2NŠCŒª>ªÄÝ)ûíZà\Ò×Ï`Þ!>„MÙ§[ýîuH›YËŒÇUÕ b÷cÏFn*¿”Û_“T8ùuå]‰(Ÿ Ÿó<Š ¥GÀ¦ ~£ÌÕÏ8(!íBý,úuÛ¢­Å)«ót¶³ºŸ9,Ä}Ê«°p© 2É=Rô‘½¢@Q»¸$‘v4ª„ xŽMÈvÔ éÖ.#Dq6FÆ4v/×½G"±ípNËü@€¦0_ê>6—yÚ3é®”9¼²WüL¬L¡5†ù›_ð9’X¯‰¬\{UµFôá,l€Î;9"µ2Só· ‘_5ÏC•Ì`únxš‡ Ž ÜÏYù‡ÉüÕ‚8::ÉŸ¿•¹ufbÔðƒ%eð-Ÿ3•pï·‘FÊt݃ä§ÇÄ•]=Ä]ú'²=¤^Ü>žoqlÃÚùœeÚ_ZiÐ/ßZꎰYÐ]öæëý¦J.ªÀIµ^uœ]²¶…`x®{t 7Ò=úSôüL³ªCÖã캸EQZßýõJˆ¨ImùbÈ0™+´ÌFVôÿ½,h¼ê„P‡ñ¢Ïf+ÿ¼g@þÀ<]}‚¦Ë‡ÆµqãC¥w¤·¡Z O²Ê ̼ù°w‘KDÊúaî¯/”Õų”l!OhS°)cOöq –»ÕLå‹ópì³È?Á§Ì8N=ÚNp*¡äTïºV+åó¢kzx0ceΠIZà%Òw¥³\ºÖ˜ñJ¥!ßs->n‹[á$ÂZùª_ò­lE"½ÉÀ€¹¿ÿÿt“57š`tvA¥üï1à$îKÌó.AUÍžõN_T†Dö0?=>¨ô=XÑ?=‹8¸A^G-mùÚŽjÖ7²¯ßÜJlù—£ˆúÁWShÝê~®°•ðÚÃ]OÙ!L¡¥Ò·ÊΖ—²7“¿¸ Ìl¹·Ât¬­#–`üûƯ€ºž¼H3Þ ˜)\ñË¥œGsF£Ò­#èýzÒŽmcª4ÕÔ°°®ú$¼‘Å%Ñ€“ ×ÿ^i†<‰Ëxû.ÛYÓßÅã)ÈÌîá`5m£px0þÌ ÊLœÜÎÊj0k~x˜ŒÎðyî¬âßüW߈ì(0Jm0~Ëã!Æ´˜]¼gpÄ¿¡!o fª­hŠ˜© M-ù 1sDvñ€Ån ¾ÏxB[’ˆ{)-¹Ú{\é?h@XoíL«s³2êä£õ7YšÝ ¥e ò1úv\ÂûE›ZkðƒJqÆ"Ÿ¶e5ðÆ8˜þ¼„Î[qÂaZV’n–™™ÛEWE›ÝЧz6cðû2@IPŽÂ¦¯šZ…ÖÛõ/Ê/¢‹ä) ÷&S'Jƒ»Û¾‰¾FT'Å%Q?‡ñ.óˆ¨Ô·…#k=ÔQ‡hË&£R‹xüLª° NêÃmáúP"aÀÊ wF#1ÚnV/£EeÌXßÇâ`™8·Z„ÕLbuùž8‹« ¤Ôëâ¯Ò1#a̲s×™Æð‚Pï5°ˆ¿h :@„k~#p;|ËíÐËHû |ňf.R»9öÉb5šò_÷ÁUüÛ¸Uñ׫–ö]$‚÷ûº¥Š"Ï_NˆNI:1Âà“wõÃ<röñ <žUá.³±•ukãQÔ¬ÁeÅ»ý`b±ýø¸•¦~ßSªÆBºˆ„i3j<ð®äë­ý…¤%g!u:§_ÀÍT Uî+4|‡¸œ ÷q²X!£©éõm¹†+´ÿ "$à™J·¾C•ô€½›“-Ûƒ˜iêŸ @žðÖ\áÑîÛ¢ìLÇàœmYeqÐÖ¤´=hÊZ[%'ûWjñIkŠÐRù‡&܈ĉUüÛ»NïÀ³U3ø¼h¡(0ügÄæ:q½ë ŽÒÔèÍ[ãmMµ=¶JµòÉM‰Îñ Éúå"6ò¡ú,Æ©ÃOPXð^e>w”v£üÆ^*ôAÇ i­8~Ðpüû?ÑØ? ãhJ67äwâÕhÄRŠË˜L7ßÁ0T1õܦÞÔ{-¯*TïøL³â–yoo&ÃjÇýåQ$(¤ÐÜ=Þ©EZµˆëì§ÖU}ý±J`|f*:*¡¸Öé;j7eîKçfb©LNMS²ˆ16HK#ê¿5wžpé§§²ë†Èsé£Äe‚•»h(I›‰ô/vHªŸòQUüÙÄÔ4ÕÂöuVç,[ýò}?F8y½®øÑeFäl½éuø˜Uò×F輸™äX x¹Ã¸¤YØC¹ŒŒD½6;w/~´IÙ4ÛÄ’‘¹©ïé_Œ¸&‚èˆù­|ázF6ÌЀÿ¬ê€(«ÁÝ€ŸløCÚúI9”t˜-9ÒˆvÙí˜÷ËŽ~M”õ¼úν|[æÛêjY”ÆßöwIï´ ph]£áëR‘ª ¿Jmh,2¾‹ *±³À[f*Ἧ+ ü:ç¢`ñ%·"u u ¹mñœ$ëKØ“ë®à Ú-¶A¸óTü}bŸ(Û´oû=´ú'PåÑô$²½/mR(®8 y%:PŽê©ÚYó|3´rzøŸ‡“uEÙ¾jŽ%yüÊÞÂâz?)D“4«×˜Ðôš7ËÚŠT8¾¨íSZÛ4XV0ÙûÙçø²’¿b5.ÄýàŽ—™r°*…!©í¬Tä‡á¾®©lfAwâØy¤ãÞ<Ðʱ ˆh|Pƒ(NÞ°F}-å=Bº/n°f0i©<…1©'tÃõ„ Ê'áìY|zßϪ“EÇA—˜ÀBÖ¢qÚágÄ_ ƒn™q * 2 (qêv`û,™ŠEZòÐ&A!Yéz¬‰9•‚™×ý^Y›NÏD›imHàœ‡î”zÞvÚü‰4’•+—”4ÖY9‘0Îŧ0ÊNE‘ž‰—1Ö—’17)–,šY½èÙ_§·†  sZãѽ-•XKGÊ3(«ÓÁ».Ç|9±q{?PmØâ‚5SXš`rnZ¿èü†E¼™T`TÎp·²ŽÀŒLg Ø,e]m§Í¤Ù*p €ºYßάíÀŒÛå#sÔ­:ÄšŒÞœZU¸^Ózd-°øwÇß#CvÒ=¯îËÂaîà£s2æn[‚‘—ô·KçÀ­Ã×·™ËBnóãq]m¢§sãßÔO”µ9XÊ{¼ô€§Íó°ü*ü®/Ã~YGŽeP(ãßyI¢H5`nšLtjJC«¬vÿ|¹9H“"_»ÌØasݺLîóöz}=AüX¨51¾Ì vÂØÝ'ŽÛ:qY ê÷†‡N–˜—9’ì %á£Ûž>J/Î2OZû•AÔ¤ÅF…X‰UûµuÖ¨Q»!? ›_XR_XjǼ=Òë5fvÔX¡â4¤&¼ '»¬ûeù$#`«Ï3KYÏûDôPÒªò×Ãv­ìq2ÆÙ]ã´”•CY-«ô¾Õý‰ç„i¼dæ}­½Cªªwå0ÒäÚ‡Üm¦ªú7xš-§Ù”‹V2ÃzFé¹úOo@d—ÀýWN#Œm­LÖ÷c³øô§ŽO›«®üL¹y+/3Î|a†2¦NOŸƒWLi¢e‘8)ݵ°,ÖÂQÉÝî&¦Ñò8ÜÕ“ü ²xA)þçVX¦J'>çVŸÞ.TCòrj6Ã7Õ¯n‹Ö™‚$Ê?É~À!¡TÆ`vK—ÌI’'Ñ@èîh„/ÒT—Àu~u•þÆì»àh sÚØ]Ëžú×m§š|ƒq›]%3?˲ç·û⢡ÉfÕGI”³‡æh]®YM;Uc¯è dõh<¥›M ®Þc‡º>ík8gvŒ.mV"óñ¨‡õöê„MBüL°¤g ŽyYæ#’;ò¯=“^°Nè’‘Ö¤€5$œ¹ø¹L˜DÖÈ幡M)£ß¹dÁfÃçÛëöøÒƒhöF2.Ždz?Ð>M¥‡i±Øz'•ÚAis³ar’E4© öÃ$bتÁGTy} ì|w†_Þó«FuJúnÓ>ã4¹-΢_#ø-Ø€z£SN rì,cÕÚݽT½w°®áÞÐ.¥Í”ÓdhðßUÑqp «)µ¾ÿ.ä6#ìLÐ|;Cñ}Á»£¸_W^üIè´[÷°T¢ ~kÌ£ÁG¿éz$’¿ÛdÍÓŸ…%¸wŒ=3Iû7r<<À×;»±|úŒ:…Ò Arc®h˽š6ÞOƒg³±:éÚ¾žø‹X¢ `ÒÃ2)Æ¡êí ’B{sÞÁfÂb¿·s¯T3ï„g‹@B bû‹ØP&M{0Gz¶Ô-¼ØMÓ&"¡ rAņ„’Oõ¥·ÊÜæos›)eà æ4œïm£jØ[¨a4Î8@qú”ûG¸¬‚‹O¶´Ûiér—~j{ìß”©@¡Q =fgq¬3Å5þ5æÕâ8ÁwmÆõ üï'‚²„-Ýó,™Jæj>úöÃN4³ú@ƒÇtÄ ’÷dÚ7;m•õüµÒÒ“Ü¹Ø Ç"QÑH€æ-ƒ£ÉI@ÆþânÄsóŒ²hÄÏ>±ë5'‚èæÉOx!qAÄŠû6½Y7(¢PapÍ´UP:Jó¸h§T ¶$«ê±Ùk19Às>«ð‰‡ö|à‡5€-vu|ôÆD4°^ÚÊQð¦vê0™“þí&=6Iœ9†x¥ 4“‡uCÐ,0<“}µKjœ¨DÅ\ ìè2âÒKZXWßÞð1=È/rÛóIR#i“âž³ ¨ 6“wù¾ñ©¯Xrk4\ïá³RÛA^Þ˘SÔn°à­¨8wQ§åÑ¥ºÄ” $Ðæ,ÝÖg_^Ð&)³HŽ£¨ì“¹"Uä%òHܲJë|“p¶šv]Ú¸äÑ!Ž4qßmyâÔ냼Ë™‚PÅG?`WÞzòk6CÍ0ÉÑ„ÌøshŠÛ°•$A¥ó¸Ot%v _Z̘rÔ”âüæÉO´*šüV½üˆø|öo€Ø 6بu?6[Øbiæ&b[e‰ ééS*î:ŒØ?/`”iUKm¤Ÿ›ïçÒ ÆÃCèÈzÐs‘K¹ä”¡cE;jF¶tt#~?mÐÀíj±·¿ŒrÒ,™Ó‚ ¿„vlßKÿ¿Xó×–LSu*X¹ž–Úê ªb›¾î‡sw¤ÿÌ×/DöœQr ¡Yºgü­á1­+h}¤°N½¾°óÔ¯ËüŒk[ÉTªHÜvö¸Gt5hÊyšˆ–ü|ñ);¼ ©cŠ!]L^i å$“ þG‘ô.Mé &V¿WòU¢X O_ËZ(T½\?`ü/Uš[ßoÖÔ<ÑljÑÃ)¥uáEa°Á£ž˜Iÿ»€‰Ûq9¬ã(í8MU Kyüë=\²ÅCÑæRyŒœœR4å=gÐwSƒÅƒ%:é2¿jìØŸ¨²ò³•æ{[Ç¥¯-Ì`>Ý:)øã‰°-™QMÖcm6ÎîzX€w Sh(";ÂÛ,+ˆáµOXþX¡ôv]]Û e)ÞNÊó¡ ù~[¨ÊŽ„½5ë2«ºã_fÃÆ$ñ!¿n¶zìMŠcß[Ú5/v åÔ¶îbi¥äô¥*B ̉7f)â–ÞÜöîx¥Þú)÷»!—”3¦üM;‰.Ž­Ït¡R” „Ì §`4|ø#b·d£eO8jŸ([.Hž!rEAèÞ¨B®8²ö”\·ìS­¨p °'Ïœ­ÑòŽÔ¹^aäŽÞ[‘”w&‹Q‚²þ*=ùµ-øØ»‘?ÉHØ¡\ò•ˆ»W½Q02á -ƒ–vàûõ »!Ú™ö.vS½=æøDÝxIZ`èÔ„7bîh78?Ë]Ô©¥Ë•¶ÓxAï¦>Õ\r¨HZP¸œŠ02Q0ÈwAwYU£CWÏ*™] Ú/òq.ÊT°NÁÃLXêü|·H/fPLú=©ÚhOÊ µŸjBŸ¤8â'M†Ök2îƒÓyЧQÖ zBvÇv.DÈ#¢|Êã:\øyzîO4H“×jÛïe¶Æ4 IÀ?%u5ífŒ Ìj ‰ÕÁÏõÓ&2¢ØK\r»Àâi[ì÷„æcªðºT3Ž8^áµ ¤nQ› _ⲟ':j¶xb¾>ÕOÐ’Îýê‰öWðó¦-1è ßPxàó'¡–àb ädùI‹‡ÓÓ5ãÀ üÏ·“>‡xLÂmEÆ 8ÖÆÅ"ŸóõBs1oª§–MÆ`S‡òJáCÄMI[F´ÓðÒªÈÚ“Œý¥Ü6YE-øtón¹C8ñÐìáÜEžTºA جW9ÿÍÚ{Ÿ™v%:#Œ…±•3ycƒ~g9¹„âübu19­›«Q¤ýà®O=µ_&®ýÿLÅm`ŠÂ:&ÐU®Ÿî°øPk9þ̺Äü0I´U´þÊ[­EËÓ<‡"2øÇàí0Äá=8̶@­óAžÿ¥?òï奠ì‰TË^(ºjYy½¦á@ñ!Ì…nˆíÜÊòØð”QpþSϲ$ê¨è…¦¦/Üáü@:dðâÆ£4 DÌâ„–>Ÿ$Ç’"`ÑE»,UC;DÊâVG²ÈŠC®¸©ÉtEße¤¦Ÿü0õè„f"u0/òsŽ·°¦4¹ÓÞÅô‰Þéè†ÉB¶v‚4s"kaôƒ,=ene£" îŠnü6žèÿChŒûƒ‚?w´Üä Npðp2‰© ÏQ3ÎyP.º™,t1¬-fÁé`5dàY @)bù²*9˜.j"óÃ¥Ø0ÑžÍl Ö‡b½4uÅØ›ŒrZ÷Ð [½|ØÖÚàãèÿ†ßæõìåæÿˆÒÒÚÚãéÿ†Ô×ÛÞêòòðîÿ ÿÿÿÿ¬ñäæêçåÿ›ÿÒÚÛÛü6fþ–RÄ÷ïG$Åš„*¿œ‹; 4ÜA³»ËôOHoLúì,þ´tÊ3Ö ÷gH÷ Ë íeþΜÀÎý·\B€F÷`0 ÖCè,ÙÕW‡ÍL’hEÁ÷šºŽ¹ ÃPó–E˽Ä;t›{ò¸¦œ¥›/¢§0`A4WžL|²¨Jxä¿]Œ0ÈSñ›œ~Däè^þ3?j×°Ëûþ¤úÖ*õdú‡©á74Á«ÂL~MÀÝŽæ˜îÇ'‘$»ÝP~¤˜—!g´xÆhö¿$õÇ!‘¨½ü6d¿d6г0/-Ø®éÅ¢ÀÏ%Vx×¹’rI¬‚ å]tòiô£W<ÆaõÇ®-ÊXâ¶l•)¯¶_)WÄ"¾Ì—ºŠû ,~§é‘á〸9q Ò¼_ƒ/ ÛÛ¶o×@ˆæb Ä6¦B†Þ톉õ»ÿýú…MºµfWŒ%ÃÀêçH€»§ë|àñ@áŒ+ªÓvÿñ‚B<ÜÒ|ɹçß2¦³R²ÁR5,±ªêáßqˆ »€NGÉxÎóbúÈK:9”mÕ9H/OÁoé>ØØØ8+»eA¹^™ü}\B/ʤFzG]ðe³pa˜ž–¢^¸5% £]ÿûÿó =üœab¥)ÛŽU u\é?[…‹ôªq•FWh|’yBæû)ôì¶úz„Š9”ð{}]uûÆó/ ©È@‡¤ßº=N àØ“O¶O‘ûë]¥e¶÷‹· Â7©t¹?l±MDÑûÂK-p¶&÷GûnŸ\-N"¸sSÉÆMº ¯Cû“ F¹Ú§©mЖv®b ¡\€¹êüÁ(lãºü‡nd> %m0ðÔëK*÷ úv ®Z@|)æ»LíÝíŸjxL6²ñFß•Z›®7øká)Þ8!þ`ló›ŸfŒWn<ο¤<3Æs\áuYh œ“$EazE¨ÞL®J c“( Çõ <‰*[áÕü†mc·`1ºm‚Fáž1!E,z2 ÄÀ­±÷©o‡e¡D pãp-Ëï6®†ó(z¢šá†äJ¨ø¢„¼m•m@è´¦HþcO+y«üî‚|ž4ÆÏù=C‹Ýe÷HdÈRÙ…pš†’~ xY$˜Ã'ºþÜÉd”WU0Š]çZÐŒÅ܈,BθærrO¤,‡à…L ³û±åø#×ÐDÌ™žVZÉJ$éo+$h2C¢×žÈ !¹c%œ]îÞ¦cw½›ZQ„Ú Ô?_±°üNtÃG/ŒÅeÉp ²0¾§±ìš`Ü«ù]¯¶6Â+¦nÏnb{GáFöîøòÙÆUHŒÂ Rvѧ}!&ë–uöð©iiËæ0íÆÛå‰ÜñÌ'BxÌT :ÍÚ OÀÖ¾ñꤌ©«ñ|vtŸ:ß7½¤¶šÅŒñã| ˘œâû†åè†Û%d¶Æ‚µÄuií ¯×–,*% ž„2`„’ ¹>}3˜P>l_0#ÐXÇïm«AÍPÿ„A²eX—¾V)†s®"(íoÀÇ¡DÁqüLõnXW;¸×-ÊþdýôK8[eM<€Xm˜æ¨ ÚèW¦vªX‡ùO;–§Ë \HH]íä䂺Lú¹°e‰.Ö‰UßP&sH÷Í|Š´ŸŽ½¶î©`Y"µŽÍSÊà:™#C ,ílðÄ-v™mkíê…g{/*šmLq,GÀùÈX'«ã®(ƒŽÍtùêkŠËÔ½0W*'£¶Ëh`(1ˆKBð[åØ]œCEA\ÍJSD…µOLA™\Иùޏú‰$gНó7@'DéðôüMIóö0aõw”{Ó1`„ª/½u½÷0àƒš>úu색þ›]Àª,³IG vš6ƒ<÷ʱHòkí!¹@¥á¥Z$A=tæ©ýHLo;_™Å¨úáRy_3'éù„¸C§/fƯUº!ä~0*çþ×åx†v™Z¿k­Iú×$Isµh5J›.66Y $fF`eúe]¤Rˆ´z á6”â ¿ =°þóü†9Hè„õpñä[Ö*Nûm•Rx yø¦Jâ=õzÏöÇc¨-š0¶úïtú,äÃA}Mb/d¨BÿËWãî¼W6:ûá?E@—‹ÜŸ¨ä¯u15厨äle,\3{¹ŒÒ@—:Lß3gºg“íþ£¬2î4ÐO𺗸Õ^‰O‡Hø½GsÛ`yy:R“…ôdÅ?K·Bœ$u³‚Ïå¿À†ŽŠ…UÈÏƲ‹o´ðÇ·°„k÷#Ç9ö¨‰ÂÆCã và ÄPíïy¨ßüM.ö…§Xº®‡yàäèÉ}ã ·€fcÑÛô ˆ-SÄgC镜Gõ¯?z.Š%%ÿ)4*ÈÉ,!z«ùlýz«*“Sg“9™øäªô£\'G¡zn|Nl¦‚0Ï*Šv"2£Š[^íF0„èËüjI†NµÜ‘,bÞÄ¿'j6T÷——ËÂB’ðDíäë8ð£“ÐÊ1ëË&Ó›ÎÁÁÌB(MŒœLLÀ „SY¶Eöà 7iBQqà´¼%>èN‘3¹5R¢†_x˘6#¢8ßæ,LüM'¹ ´î8fb‡À”oæ`œÒw²¤ÎÇ‘‹5óÅ®í=\íËy¾jE¯“µ‹'X‡Ž´û;mñ«Ñº±gÇÍø6ªù:‡ïʸbÒ/à8¨ø^îic¢GG¶Ã­M+ÔX&áÉŠt&E^?qؼ>¯_ÿÉ*F”¤‚l‰Hmbr+žÅ·àÍ-î%‹K¹Üs߸vpÄ›¬|=xVÌ‚dð÷9q&YÆðwbÍô\dm¨µ—¥hüR”oSN'¢‘0JÎ Ó—Ñï-„kÚ`üá#MR4V'á¥üb¸ˆ…Žþü›·¸Å:×T>íDšNÈ\1Dq±\A l7ø{™ëe– Å~x¡r±ßiZ^qqÓÐkÜL9ÀF`¢oL”GG¼-J<ü›¸ÿÿŽé¦)á¯YÛdö/R$ÛÚó.ªT`‘ý&ƒÖãŠPL°Â­£ '™d´¯y $• “all†QÉNæPoe¦Ô¾³,1½Ò~N"·$h[iÖÁÁb rM­ÒÐQÊôÚªÚˆ Ã ¼lp†›|ƒFè“Ï{ó7öÛ ¸Q¬É‹8—®DÁ Ö¨{i4ß7yc2cáôù^*þ‰¬0_˜”‹ÆáuŠ‚Ù8]g&9§±ƒç:ƒ$·1º„Hq&ÂíyFÌÞÄãÝ<âº,Ãä;˜ÅÁ¨ J5txõÌY>üM/õ7Sl–F/xaŸŸ´|A¬’»0D%Ô’÷7n_*”K¡Å¿L“i™ˆÀÚÝVÿ`¾OÑWyE­ 󺸀Õ.ßß·òRà˜ c"¦Êm¹xÌrže)ßððߊ7Œ„EŽ‘€ >Gúhe_¸ˆ<š+2!6³\ä'$KÛÝá&j®×fæ ÞoÎOÙ=%ú½þ»K0UéôȊ(žoºÓPÈ/_Á¡ÚÉmXvu9, Îê%†LÜ™^N%ʨQ¡rÝD¸¬%þOˆq¤'ˆòp® VC¬Àü6w‘0å ·±³q¾o}`J41÷Æ ›]Vh‚‘\^ôWì!Ê&¨èô Ðj fÖK÷þ/äOø¶gVÄ *Ÿ¡2pm-Ÿúï —Ušï‘éL*eü|®2àÐ×­·ò¢€ë{“‹\å9VÁ1®w'?3€ m­PðŸv45—8ù§¸}Ú.ß¶tõ‹ßÁ0U´½1ý1²¿ƒý†Š\š±­ ¯<¸‚s_ "Im—P ~a:_‡å“8Vƒz+L ÒÂK¬§¿4êÒiR‘àúüA˜$ïç»&þ¿¯Ø Œº[Æ©¡wþ’}QD26ÎЇiº—Á¡/^­ßÌ7, n3ô(çú…kýèV«@+2 Ò°¸”ýÖ‰[é÷ÓY§Êo‹Ù~Cä?ÉSa6âjËÔ¬Þ軬ßXóÃv„Hî cÈX+È]2[û„I‚É2õg¸‰½L‚*6t¥7AaZÇ„‡©ué’OŒoEÅ#h«AD.Çaå°‘Ëàe ƒíY&>ÛÀ6;ݧ?±áŠÚ× vä+°©lvo’»ß$kl§–ýø¶¿¼qn!ŽíÉEgÚ¯*n©Œ'{w̆Q½²aØ‘D ±i;Ç‹üâvü “ŽzÄ>¢IÛîOɼ^Ûš’/_Ò³ñ—PžÁUxo¸OÕG†S¸í &•š•wèˆx9س™ôÈëiÙ„TÂ4øƒÔ·ù¨íqìûý9ò›mÁd°¡y>h’$±Šš€4BÚ&7©cݧ¥;TÔ—võœaÍåèì„©-&p.Yòõý­µ<ƒ˜¦·×EŠÙ‘ÏP6Çg¶Ãhî‚Å •w8J$Å}íÐQŠŒk KÊ/8ŒèÂæ _þÍ(|¬:n&UÑ$è${§ü.3q”Ò[òý;SÚ…'—•Ü4nÔœéå ‡xä…üÅXQȃ®5Ð¥låýÓ©A¥ø•ÈxÔž"?3µ?Æ#zÓ­¤åçXØìk¤µˆÂáþV%¬w2ýÄјåß`qd·Ùü6k:,bJ, ?yˆ@ÃÙè6‘ªwm©Aœäm­^ñ"±TÿN…3±˜H ²°›ÌEÀÅaìSQ"SÆš{’Ë჋¢²gy™÷) º¡7\ŠÃ«óœ­fˆéWÕg±½xVÞ&£™ó`wŽ›lÕ*ìFŠˆØ™ ¿ ¬³¸tzp•U*ꊸuIrªB& ¥ñJË’—/Äàé±jÍUˆh¦xÞ̽ üL­ÜÜùÝþQƒÏO/@ò"1ºí£eÏËmþà›|1Ì.R»«ý¥±¬ðð,ÉóK“ iÍ8ˆ‘Ý¢ˆÏÜÜ/euv2·H.ÆY è%¿±&Ôˆ¯I êðAÔ­uÂüg¨œÂ…uº=Ëk¦‹Á›P“ δÙ0!ï¯i×|Ç™<‡÷Ë=d‡k»Ì  )D.à8YœœYUB{Ä«Qœ"6—X… *—Ý®¨®Ý;ˆ3 z¥Ø“Obïøò¬ ì Y+yoÄß,á)Álé5ìNÍdáúa¡@ Ñï·–Dð×ë!xþKÕ3ÕSüL¾ ÷±Ex`Æ‚Š{5UtÃ2öKJµ¡ F¥T izi@%NÇKŽ‚ÔÛ¬1I¼ÄŸYB˜—ƒ6{¦ßî“Jɺ÷0T†SµœèV‰iÀužX ¦üèa!9²aO¦*ŽeåºÜª«ò†)rg,Â93{úö,GqÙà3—…Å5Ä%Õ™E(ì‰ÚÚðt~аMÒGåIFÛþxÈ·Ž Ÿà°Ü…0ºTXÑå¢>?Âmô0½s{DZ9f@|J= ªhä8/Ì`r*puDtõÕ¼d”ÿ³á"¤¶¿ìÍ¿O›|Qü}bš£b»8Xéì>„6 VnvÖ‹#eÞ–‘¬½4d@ÕÀÚ²vÑ<ç(iVpyÍ+nŽèÕÞ.°0 C ´åû5c"æŠý†ªx"h(õ8NdæRÓ9›©éWð™ýˆÿ.ÛˆÚ+Ú—c˰ˡγ/ŽÛÌ6›ñÞ㧘kuýŠ“¡õ¥ŽuQѳ9ø×ü/xwŠ3aï_»Rq¶ûãû¥J0½wµæÉd›{Ä­:Ú)`xÕÊ×^ÓƒÕ¾ã÷$÷ˆ…Œ« s“ÄT«h§ôMê•ã`âäÓ_FƒùŸ]9ÉìK¤£i®+®­\!•ÝȦPò@$©aitã®F¶c#ÍQwÊ’ÊÏ-&ؽ2¦@=Ö},ž r±ãÂKqçÙ––P.RìÕ¿<£œê*Ï(ÛK­ÄtýÉ¿-‹YÛšîÝíªxQ²ž:æ«x¯†OVj0  ;„Q–ìS)‚ÿÐõÖõ¶ŸôAR5§n §¿&÷ H}iüL»„‘ù‡ø=!3'7muZšºë¥µ€Èˆæ4žªÜšåv6AÄiH4Ó•¡Âí@v¶ç–Á³š\©ß6 €èˆ–‚éyŦŒç„œ›™®ÉÙî¹Ïùë s@ÆWÔ¯FXtâì”v?"¢J³OÝÞP©,÷?Ôà01¹0!6CÑp<“I‡ Iâlu(ä¶ÁÍÓt>uBCŽÈ!u´®¤O %Œ8´$è*B[îôÐÀ•ÓåÁ |ï2´n²Ï, nI6%Ér-þ ï³]QÁžÜ]àpüLÚŸ©ûô±ašâ޽q\sJ:†¸&&ºÝ}8.î®ê]WÔ+Šëra\±µåžIƒòÀ"°ɨ\¶zÎá^äõó86ß%Sä4‹Íq^-Ê›_Å´"›44µëÍZÜ ê£ ÉÕÄy »ï³?®P5k Ô’ B„£"d êk–×ÝŽÒuÑfýª¿TÙ€‚¹‚… j\ båcËtÐÄj¿&ÓYw,3Á†(N˜ÀƒúËbéwÌ—e!ô4Htóßa}J-# VܬüJ$%’æãW‹Zr[ÑoëY²úúíÙ×K£=vF%A(X -°U6 ¤èt_ä•P#4 ćé¦5M8§¯ÂÉ’ç,¡O$ºQ™ "…Ùg`ð˰àr(ÛìuO¨Ù'ÌœŽÖ¥×p¦ŸdÃÞáЪ0µlšg"%‘ˆ×këj˜ÅÚ±Ü×r©Ÿ¼zõ©³Åª€Ø»_à,êÜCÏ2?bvÊKE.ƒÔ=4nGÜfÛŒ êq&á ÙådýBbv­—šÃ2”µ_£›;ÕLL¹‰ä„àúBоÒÒ^=ýüMWÛäg÷Õ Çf9 ÔæÏe›PV{Ð-LMœ@„‘œ m>†È7bµ¾@oØÕ;HÎ#úñøªM»`ôȼKÉÍï •ž—*uÅœÁ‘ø¬`‚° Çi\ê]ÞÏ“çÎÁ Úäûˆ2‘ƃ\æÏÝ«ÛÏ*FW_ÅuÖf…ʧ­=Üz£,\¸ê)¾‚0÷—Ïs`‘xmº™é|rd'ý{À°­™ <^6|Ý©—U‰±k[áX¤CRt^+EzýŒÎtÜ>&Ë*³ÓXN9ƒ…l€¥Ë)«?×ëïŠ(PPwÒ™üLóÞü÷—<\°¨a±{nb˜À•»É´Äº"’ûýñ¤Ÿø1#¦„9¦Þ:nÌSxà ç“‹A[,®½Áö —¤]¬këVa['7ÍÉÇF² œï¬íõÏyÆóÇ_è² Q!Ä9”S_“:È2´>¦<¢È1Í¢œ8Hmè-§aî*LÔìŒ;jÔÃ|´|Ÿ"¾¥’«õ€«)¬‹låQPPUÜ Î)”ò¹L“é÷-w$/Y*nL~|6$ÖÈçõ‘°3øPb´#»ÑÝUbÊVœ7_£þ´Y<ëøE‰UpqçüL¾-´Y¢oÚ ý²´¯&WÙ}ÁÃç¼f .3›Õ¿~×Ïòx¾‘êæ3Á4@—öÛ ‚¿lb…fwÂøÏ%K¬Hò¹gæ×ÿÜM§š² ĮƜ†˜·‡×@j„¥º+¯•Eç’M{ݹYM‘-¶Bt°˜¼Óºt]0®wöL/ŽB ¢Xÿô²9v³šéí!v[¥«ø…[f:omzÕæ [ð¾‚@ÒªoG»P,õQ­—‹œíðùœÍNÎøó‡Ëd¨ˆŠ9Ÿ`‰Kaá\×düX$W®ÖuŸq%“å­±IœœhM–£•Ïh#©ÐúÝYp—+žÉö2 't}‘ìIÊ3ÀDœÄà `Se‹×äó±ÓÑ ŒÕW{ô~¦oàwÊ3*o~2åô·_•Þe%o:X’™PO½µa<Ç‘pOÝü3<Û¿;â+¤ŠÎj;<\Óm—³®*«­MÖܤ0=,4S>=žœ$Êi°²°†–ý%M+VÜ¢}êcd¢ƒÍKø¤é±OW²‹|ñ…š…Â=çLFg}Àüîâëé·˜p8TNïœ×5· Ú 4“EÕmd¶3Hi`ü6k;׿â:í¤î®(¯4¢‡ú‚™%8j(O/*pè*Ú‡ nsÕ§—ÌW$sÓ]~A¬ S!(nÞ}H§9>8äªaIÊEP¯õÜ GÂ1Y*ã/' ߍ!z<À9̪»³ãŸ”¶5=®{=Ö¨îÖ+X@Ù8CªO8¶Êk³ÍwÍÒV{Q<ÆêÑÊX“ÖM AÀ_J ÕU––Ù·ø#CiYЦ²½Ë¨§Ê'*MÙL¬ÒPí·H!aðde)ÖÀ}U©Ò&î8ÛPhŽžâÞL|°Ån$é•h}z›ýÑ òü6|]Æ¡bžFO~–Sú’"Æ­É<…RJ2MCP–íGžmPjË?ûIIã ˆù„Õ£²P)]fÈaÎêÊW…ïû\ƒÓH¥PÈ£ÓCpɆ‘ÙxÇ ]åjê$à7Ž0ĘÎÚ¨žL¿’QoÍÁ>¾óÅ?‚!)Ó›+òš, ¡šÚòåþ‚ÄzJµêæí2$MÍvYw‡‘ë<5…rº $ÁÁÑŠ‚ )ö°0À;ægЬàL‰fÿ’7üMZÃ@‘99B ®2dÐ…;fº’+ì}ÿ;¨çLÙ“E#væWÞúŸMJ{ÚüLÒC ÃÝäÌiÑ÷{T÷ú¥ŸìÍ›Òu$gšL<߸cm—‚•WYÎJ þwȸ'¦]xP?-|»œÌ |UpÀGë9ö…oAÉ÷0i úuÓì…>Öļ^°Õ¾òæþÐᔜ‘¨‹ë¬ç§¾Œ£ÞµÛ0.ÅÊ8ñ)ÐáÛÅ “£`È#¯ØíøÂ)%„2ÁY2ÅÁ¢Ùª­•ì8Àû¥ïÄ ¹Áã6ýIÌîw°xDè—z&R6EÒ¤ 2 ÍÍd[7al{bCŠømTxÃMBu|ës*8ÖNoøþð¼Þ ÷UѸùT‹æ[¶ÞÁ+{¨ü|ª–«O8ØÖT.~*š{Yª‰8¿ÛþÁ{¿­“%­ FH^ž,i~5—ÉŠšf°O5Ëï.TU£øyû?!oíÐÿ`Ââfu5ÃÀò&,-õD|²•¢õÿ±Ë® ®/õAjÒ˼$Ô¬ýµª¦¯%œÒ÷ +‚½ßšSj=B`Z‘Ù/^ŠvYô$zÜêDs6ªt£ã3K ñoh”ùf%òˆ ÎÿMê쉺goÞ*Zÿ–"V×Ðyw‰'+_4æ\såØ)m KPÂ{”;ên–éá¿[Êô„¹ã.$íê¾Ó3Ø¥srÙoySÇÕcÙ»7Á/”»1FPÅÚ—‚”5ZÆî¾˜–9"D(Í;%Žt¹èðxA³Óo+û­m$›¯^–ßà üK'Ësk0&I‹ÔÀHÞ §m–g6++…#9›ô|Çrwµ%¹•‹Vò[„ˆ —R’‰ÃA_$ý©Hò„ÓØ¤ó(ý”d&èw†B–\Ú°ƒ¡§õ[k® ¥Œ'òçQ §d‡hÌ™n•£®ãðU¾žŸSçªfGªüMC’îOåøCª*w ©õäñJ»ßÜàK; wÅu(H‚ëV ±¼ðÑRæW?MI+‡òEWƒ›“WbÏQ`Š/½a#· ­nXlÑPž4€‰ÿ4œ’‚_¬•À݇vÙ.ù쓼Ѿz¾à_(¹”ùjRfÃlf±š¾œ°%+—0'È×¥âTxøroTQ   ×þ«D¦Dº+L‰ÎæA„Ñiׄ;}¯TÏÞUÊBxTÚ‹Üi¬$5·v:äªç´ö BkoÚjµéëêÌO²…ˆ9&v€!&Â9ÓX®ªd 2jª©”¶~µ+vHü6h‚Íí# "Áƒ¶ð¼hT³ úyU±Ũ‡3¥êd€”WʨkYzºÎeÏ ­; zJ°uÝ<Úÿv™þÜM5ÅXòÛ¢;“k33LÛqˆÑÜhã5ÁòÖÊÛ*÷ŒMâæíGѨçØ2å7n–<ÄÀQc?ä{ ±¼ÕÞ/¦ ìtýZ²ñ\˜ü-‹ÒÖÌ=#fÓµSvuôÿBÓÓÕK ‘LÖÚábêSۉϣL“uñö½Ã§ãD~ê LÊg÷²¸hWš¥=hºlì’DIêuˆ×ó ð‰ü5n"ˆ:Èã–A‰“÷ ð¢ fYk£UªÄ^>œêøb¥쉢âEgŽ‘¡”¦#€0Ná>}ªk NnŠ”Ý…·žÌª}§ò Á&]Oaá«ÎØš Á†Þ]°áìö*Ý"úwÞ†ØÛ/¤7Xr’ÖeÔîAò÷Û/ÅÕŽS#g‘¹¸«³P~p]YpM›{ Å}Ž(h¸µÓßtïýøÁ=>Ñ !…[õšìÀNÝ“ }žåšiôÙ34sPI£µX[K.ñ+@] _-©ìBbÂa¬õ)œB‡,K2 ü6yNŸŽˆ];ê®E~ÿ™¶T+ËħQCN´åèó£]iRtØW\ÞW-ù¢Êû¬ô”|ÈÍdŠgøƒ5þõœÐø»n¢­0 MÇE:«[ˆÎ½Nú·“Ÿ},ßM§x~å]-…P-h ÜT±™_¼, »O@ŸYr#‚$QÎ èˆÅM÷'Ò´äl‡ ÇPÈ|¢«Àï=3„9Mf«´ÓEŽE“SúÏ9*ù"áîÀ7x•ÖîÝëØº­oî&ó)mý D{(4M§ÖÃªó° “8{D±Œl͸!%ÇaEo#ü4ÿ¸Är˜½ ·®MØIÍÈîëôÖqµ}8u½„´8ç0sc¾Yîø‹PÌËü×cÔVLå’šDX 6*ƒ£ê4cAÌó¯š 5õÛÚãH™¿5ê×ÁûzèýÇE¬ñx›©Qh_ñ´ýZæ`ÀF¡ðÂ윶lFM‡¨Ü`€(1ˆËép‰a³}ø3,‰…Ë*EýZ0T¶^µûY±tKïŽã²pˆ‰ÿ”êØàG`;RjÆùö¢&ênÀŸ\M×S6ˆTµfØ‹‰öP}Ez@†ÐÖ¤¹Þüï­JÖ&5N€/∃Ù9ÆSÙÒ/µ³þ‘öb´mŽ’zûba˜ Þ]#;_-­ÁÍ·ïyÓo¸ ‰šˆëø íÜ{K£FøÅIžJIBk‘i¿¢4K”E¿˜¿#($[Åf ÂDƒ*íO>Ú Êï;q™èŸt÷ßDn$@¥%6wF³¢€È°ø¨Æ±Óeº˜¨lu£}v¤c›V^Ïš·³ðΫ’= æíQD“ËMéáwCÎ_ðÂæzŸ×áù¨1perõ>ØåmYØRZ2ÿl¼Õü}bŽ'7PËßڎ΀žý8cnæ@7lä+vj«{¡ÙZ¼&dÛ–ÄwGŽDžPMáÓçiíóÐÔÚ}«½Å¦³a¿ÇίNÅf(Ìx©Å"ÜÝ ²©ãÃF!­ôhA]V{_¯—‘}=C"Z̉„`àÄ1ñ­ÂüÂälüú@"âÿv]Ç Uö8[íû õr©ò4ÄÓòHwP囀 ¥ôͳõu!)c¨àü16•/Þ÷ôʽ?ȸä’ÄÖ^ á¾LFÌ=L“çÐÉœ6GŸÿß´ ‡ŽÑ §3L)£’ëaõ O+:= fûùÀ}ÖX¤Êׇ˜2?îÝC»âÛ\€4ïAîÑéUª_ÛÏ`™w•Ô¶,§º”É›#FEmnjZ>Ñ€:ÆÊf¢èÆr™…ÅIáT†BþR“¼àLOª9Q®L·zq[~eëÉ\DUº·V÷ÂÎá|Så¤.®W Xü—IÏÁbOüJ8‘dc=©À_¾‡üÖG‹CøV:Z™ÖlQŒ¸½%p¿U™Ó3Yc¥TÏlⱨ·1µE¥ÃƒZ›ëRa„7ßšèE äìAƒ×ÊwYâH-°§Ò< ¤Ô6EVÕÔõž0  ¯Ö#ô œSq¼y¬UbXÆÒy;mজ5µpt÷þ”Ê^¤|‘‡ô©ì n{{ÛeI,€ g ÂÍNj{ëÅÍuÕæÿü§YÃAx;xûî%ž8á³Eè ú;Üó½-ðÕÚéÒD^•«ù‚»üLüfÛÑjl…òÂÉífDŸåœ *º“…Eb§Cƒ”e5ÇyÉ!ɾšiU2Íc“ŒÄtó&%Œvgl-´R|îa¹Ø¹”ôý((7˜‘òÎWá¦3ϧ0ŠUiö©ìzyÐàœèÌ…9+ug…D·µŽ3»^LýŲx¢k+Ìß,.ÁÎþú÷*üÓo})¹òÐ>£<–¬µÎ£1ùLÐRÆ#üü8y^Ô_“1Îʰ͈½,œÚÒ ¾lØÇïcɇ4¿ßîW<Ýʘ ýs4¸¬zü«³›McE{`y.ô uüL°tÉØþ¿w’V¬u4£C¬ÓøÉP7ø›°Ü¡#¹ÿ ÄÚ)ñ[NH22üQ 3 àhuõIûáãQ¢m3!ˆÐUñÙ\«¨õðð1ip•@]x?<å°0ƒ×ôG“X„Ʀ”ö½ò‘3žGÕñ3,ÞG·Dޝ›Õ™+ç‹ÆS*£ª¯Ä0;s³Ä:M…wæ×¬ŸcjëY7I,­S›èÁ–XóͶŒÚ!:r¿KÏ !`JžÓX€¿13/$_ÈýºÙkdÇÀ¿M¾‡üOggS€^NýÄ nlüñc8Ðÿ Õ×èéäááæãèçíêÿ¤Øëíñììÿ²ëçìõöùÿ°ÿÙÕÒÒÕÔÓÚßéãôÿµâáê÷ôñü6gYgò =jçr°h´·xì,±áÙ”C#Z”õçÈ;ڣ떴\‚àż ¬ÙÙ‚’ Usžr„ ‹•OÒ0¬%ÜtF¤EÝèA4YøÁù¿§ÝñUso °íÜÙŒóª ÷ ”ÁäP¥P0•à°§±e¯_iC'IN›XRÚ1RáÁ1ýE(D‰LwåVY÷<ÇUìr©Ê}÷µqg?ËŠ¹´ìø¥¼ g©±.rtI)¶iA_Kα©üL¾ÆÌ¦‹œxþš¼‰Ý}<š†ÅŸè‡‘†FùZïŸØcevò¯÷ñN:œ/8öw~ƒÈßè”þ8°‰h¥ÏÙR’é„ËÌœúKŸM$Í..‹ù T¦–õ±ÖTðžg6ËMG/öâ¾î©ü»ÀOÕ;r•ÐÍÁZC¾É€G’äÁª4Fÿ»\û„ïÈö"ê3Ó)# ø.o«î„JÀ ñJþm;.3£Gº^‡š”UFöχvq è„ˆÞÒ¨°7JZY"ä­/…"YxÃñbKNêÝ®„Ÿ½<®A8¬²²@üN‚Ò¨eû#OÛä¸ÃoøT¥ïǬ¥) „{ÇÛUaæ»%*øk`„„]aý£gQq·K4Bq`ã}ÀÑ`Øå Ú^ãÄlƒ­w¼¥üàÅ'e+Šè³¼ÖÆâ‚NÓwÏMˆEé—ÀKƒ ÈT{{ŒBj/‚]ëo,$¸I¸y¶u¨íààœ‚u½P‡–¦Mû•QSl4—0ôá2îÖ³_ðÞMî&›Ë+qHôôgǧtÍÔŸ²‰D,öˆßÏAtìkȨ¼ôŠü¯ލ¬þ«²SîÞ+cí™îÐ_’Ü~ôÇ{عæÃ`“†Qu!1ðöߢøNÓä@îàdgk.(ªijÙ¶"ƒCóžº*Ýë$Ã(ÊóV±¿w>_·Ý ½¬$¿ŠÔ;ª‹Ç7ªÀËnÛŽâò*(3²¦j•¿Üëãø®Žsû§â*fÌL›ˆoD¾ìxžÏÚæ lËÏir/Ês²“`eàf$–ܾáᜥW€À­¦BrØ»sWïoýuÝI!“Zi–˜…½;zÚÿ°³ÖýP–,#7JQüXL>Û¤ÑP°g}øÝñ€(ÛšÄÚÈLǨžn* Te°¬{ ÆhT0ß° dZ¡pqó¤Ëˆ¦ÊN@QeZ3Ê"ëÀÿéÄáYÚ3rð ëe~HÍsªØÿ_ ÈûDÝ(6<‘f‰ ¦è<Ãg³¯> Ù˜üL¼ˆß:"P4bZ›%ø13a»¢u_Õ-7Ù$Ü/½sóot—¥T¡v ›¾$%ÂÆqWpåAŠK®Z¯ÏáIq]A¬¯IWã9R4±$©øJžBä6]d5š‡ßã}„4(²­Rxk«=á å›–™ôæTZÞüSC­l)&¼§’§/ë¨"çâ†)d†Ñ3ðñ{¤Ú--ZÏánUzÈë:À3ÚN€vj‡qHÆZ!|‹Õé8ªù°ýð'b»?Ÿ²¢£¾2[»ÞÆYöû2®ImißVzüK? ab9}ç™cKœêXß6-ç2³Öim M…7®7Ìë¢çŒû/Ô—ÎOÝ—!WW îk¤€v?mœºªCøÌ¿= KJ?Á$»‡“ϼ0ÖÞÍêñk]ªÕžWx‘UDýß×dEÞÙ‰€ª ’ôƲYÝt¦`Qlƾ½¬ÊY¡@¢hN¸‚ÝYãâê{‚óDq.æ^k„°â‘xu Ÿ°9ó3|ÿeÆmóíW½r` ÁÅðά-&+‚  >Í3I¹kìé¸n|žhdßk&A•²?Õyü5PŸK“«ùôíõ*Q”Œ[ÙÂ$až0*gQÔØ ŒL²¦1yºAÓjä@X_®NÎ…O¯›2!ØdàZ²‘@¤·€î£,êÿ;Þóž„»ì¯÷ ÑŒÂpYÐorªíc[Ü#‹Ù¾Ã„´ ´KÀëRþz*¹„¨œçþj"é’PHò…´+Ú9¾ùŒãØÚÏà§n˘ž;lÕbª€·âõ­Ú¦uÛ>}¥Ð9ÇC[xKØ‹ém÷ß{ë­C=î£YÖé&¢“ÜÏ íê§·üX Àµ’ÏOáeJkzMHl… 4ÞÎÇ ]öâ0…GÅûª[[S°h¨C8l~îPäsÉ®ÍàØýžê˜1XëäåLÖU]°9fï°`¤¹¼fè¹EUe—Ã>•HjÝ\‹Èé@æ6@ãï'BȲfËB»°ÄF–ÜGþ¢X‰óòȯƒJ­–&{ ‡Ò—®@ !ÿþ½(Ó×ñQÄØ «yÙˆ®ÂBöuô•¹þ«eOI^'§ý0;„ñm›¯fͺ´úÌ39¤I$þ·•2Ò'íÒÄðç÷A¹ ü6|ÎÀAÔQþƒÆå–¾XƒV'tÒzrÃ0‘Šùy˜É^i{û ‰L0iì½6Aö0œÐ„Ѧ¨"êîŽ+F7¿­8ÂwÈ8 ­8†•£ö~ü5\%©+%õLi«”&~¬òÌØ²%îÎzl¬Ï¥±µy*¡ñìõ[î$é†Ò!ò5Ka„”+e·þ@OíÜÀ¿CО IΫi '·llV¡ ˆâuU+V.áIž»¯ì.× ä¾Ä?À›ÉD^;—»`šÙÿ•× â¾ ë8Û„¦’¦0/ѵâ‹€½‡îíLS6´}mh¯æiåˆ$E‘9K BÔ þÎ/ÃF&òÒãhxöÛÒÅ,.× bKÖ€áW¶Ý­ òÞÆIæ9YâÂÚÏ~U›ï“Á+xxgh0‚ ¨ ª9,ºü5Q>÷ËŸ‹3”ipâÓÁ3~EJ @7g[™vÇê-}@Ã>“ëELÉK?D(VÏ2–ísD~sCIÅ屉 ‰Çk°ìQ*æ» ›f[ù %cÝ}¹,A{>¦¦îZŒ¶ £ÓD$;+$2׌A“ï:Ö¤„µÔs”0: 7‰Ê›KÍñ·¤<¨<¤x@¬U¦%DH£É=_³‰{Ì좲G´*TÞJmã¢ÈO\tŠk1q<ƒs7;ÍÆ§ÔêÉÈ3McâƒcPÜXùË2gšÞìÊ¢l]=už%TŠÝKŽ>¤f»{RüÆl—n—ˆ{jJЧ$±Þ+½‘çÜ–zLîÈ\C¦IIÚ1«`(mTOyÒìz³\¯üûè´‹8̃–Ý€ow°è+Þû{Ò{2g’ñDEL o¬‘&Ìnø«`È뻩üa°]Vg¢Þ IÓ4S*ËÇ8Ɇ%Í;›dß\†u³¥›Ï7Xc¥ ´â[‘|”;Mp•ñÍÿÑf%zZ9›‰¡PI¶íhå›CGÀ>Òiíîô¡z¢æš®µ¢ ¯åqŸi)|äÛA¬JFxÕr!@¸ü6GÞaìá Qâ;Ùñlò<üЗäÏzgÒWîOþÏß䡉Ûk…´E&,j(Ù3Råšá&Ås‘k¤#Àÿ(Ÿ9¬ºÑñwEÝñÖ"üÒ+:Fò¸ÿLý0íÂEÙza¿”¤¢¸'ÜÝÔ‡A¿n®ÊÛØÙŠ&9 ¡ëb©"\oÈc#ØoŸ|֔؞fIÀ‡ß~ ål€†ã$tfop•j¸âCxŠëe©NŽw‹²…b¤B—ä¯8}eN¿¬øHûn,)± ¡Õü>â×8ž~øøóËÎ!²Ãª™ÂÆÎ¿„# W§ü|®åýQí$›»!þÁq£¬¹¿ëâ´ˆJ~é’y/H¿Ê¶+ާLFÛŠŠwý8Dǵ.>VÎ7¡ºø°µÅY@+|ÿÁ>—_Ñ¿*kA›ªýcý_Eá‹=ߊ¡ùŽº‘w\µ`¼¶õ2«¼ÃIrsÑÉ7Žjìªú´´&Ú Ö¹¤ýik äãX±žfÉ‚˜g„ÂÇíÓùŒˆn6g:Ã}œ0Î0¦„ÉùÊñ܆¿Ž=¤oÚÈŽX±޾j¿ïÝ93ʽ`JÏ÷Ž˜ŒÎÇé¹sHSYüI¢Ì»U\z¿/ØÊ‹m› *û¶Æëë–°‘€¢"“VË;ma)&Ô­#¹N©@ c: ”mB„^LÌÙÅÝF[vEïïñ#;D/É<ƒjÃÅ2e×g¨kJ Σ]à©7”ã"ÛÅA¸‚Ïëå7‰æÛœ`ÊPG‘|GS$^CûÞ|iƒÇ5No/•DËHzëÆíÜ|°·Ó ™Ÿºy ûcKÄ hÂ÷j¥k ߟOi×VDÖM”À‚%cmo(úü7òïxWM`é/Žty³xÎ6Õ«£WìkÍç˜Q.Îcö–Ó(³ê–ª7ª;'ÀÐpï¢ÛÖOÚqÍÍ)‚éœâ ’Ö©;‚"ÄtÕ‹Ñe§^¯+½’yBðÊ}SÎtU‘aç9¶½ãO£1I\ô-|4^ínó§f¯˜ZÅ™ž±‘ßÐåFõªm¢EaIBf”³ßpÊpÌÄ`ÏŒÒLKò„#ÎyÅävø¼2çÌ˹E,|Á#5!1«—T¤Ãó ~r-…6Ë0µü6gzºÚo_„Éâ<È IáðïõzÔ‚ÐÈT$!Á‹ƒ…Õl®yL6 }Mîä–üZúó€Í3=X_¯qs‰¡üÙ¥å`qÓŸñVMÚìtWÖµIÁŽ!¾c=óñ…Ðwbëø´ú¶ëÑÏB1Ÿ0Ö*·¥s¡1Êä²Ì{ Åd‚ß@)’” ÷¾ÿO´"9ޱE°BPóº©éÂf-9;*HÝAKkûÃoâçÜÅk¿[¨-ìá¿?of-ø?ËuqîXµõ…­IH7¶ÎÁCÞ •¿ÊSw¢z×f I<*çXZ…üĆ2”àNTÅŸÂ4@£ï¨ ª’^òøK»€´/r*Úª–5ÁÒŒ³³ù’Y…[x"¸Òb8–rVêYó…Ót ÿrÏF:Û¥pµŠ:lÄh¡…dìT7F7»Ù^çà mÓ½Pw›Â€ÚŽi‘4!8x—rÚ<™h¹§Ý5œk€®ß»óÍ&HÓ÷)?¶»íÛׇëfQÛm”[Xãž2ROVÁ"C´%­™Ö”´ì‚ÅjML@ÅY/Ãcœ‡B²IeG¾BÐI;ÿ¯G™Šþ»¼š0àÏ|¡üÚ/¥«K† OÍ,O/Mh=ü6¯áKœü,v‡,xž¶©‡DMi£ø¯2T=åToUr@ƒŽüQ./ÏB©ÎÚ`'Aù™ €1Ûß#¢æ¨GxSp$4þyy¡ÎBÕ}2j‚èlM‘º.2o†©$BÂì\i䤭g©~:óKxk†Ç“tËöSy•îÐ6SÙî±¹”…¸© ~ÉþLJo7¤]œçå:ιÿ3 ¡/ÁøÐm[¥ÖœÔìÑ|Ýlw$.ö4'Ñmdâ¤A,AŠy»¢ÕÊ¢Ï_ ØÅŒo¨Ôñ´*5Õ<,蓳6Ť(¯îkaËeÚüÛÀ"^mréÐm r Ëíq‘ÎEØ º³±ëð‰?å¹¥¸°×È^=dÆäÔŽD¡“8xÄ÷”Eð>^Å©<29¦»„/²ô+P$¬ØàÌâ}1Ù~ˆÐ6bštRf·wàc8ï[õ3Û$R¾õæñâ\¶}rÆŽ«ÉØ<ä™q½€9C•ˆà=jêr¡TCZ ÉÀÿQÎ_fí±ñèd•Äè]Òk†]°ì(Gù"® £½08„^mI?:“¾>ì\ç"¸ èó{5EÐDÀш(ížÊÝIÛìä‰bmý~Ù üLºñ¼ø‡Û¯™Up:2Ô¬å-Žq †¤Ù¿Tlq| Qq²E]«Nœ#‘wVÏYÅEx¿‚dãM·ß¢£”ÈrNÅoDƒ¶½N ûKÚ37Vr¹ñÅtÓ‰×àdË–¶ œÿ,(‚ ¼°UçLò@%3¾èVA3ÔØ¨ù øçæbÎUœªÙ1æP0ÙÏIä<¹~€½œ¿þb‰Kæ]÷! Bã!Ñ„É Š½ƒsòKÕšPvÓ-º}}¾þŸåcbÖÙÿgüHçØü+­;Tƒô!¬@>pËã b‚D²îÔ­áü|ªJ[I‡¦=¶p–¦¥ë 4 ?‘©žâÀðT¢/rs és..ÎêOá–ƒZ‡•^­]êøc•oJ”pì°T†(ú%"‘ÊßúÒ À&¶\Ü´¼øt ’4èD„jÞÝ#–’’ŽâÁ[óƒ,ØÒÐ"$zd¦å5qStMΣÑÙG±Ñ6ƒ½˜]Pƒ »œŒqdªIçÖþ.M¦Q¦%~­Yæ‘$ ?aª7g~¢ Àãcˆå§pÛûu€Ä¶ÁÜÃ3èo•1f¥º¬c!˜{ôà À»sBj§Üó*.ì¡Vÿ¦»ßY@þžrG¢Iňpßò&¼åõ8XVºÃBfFä"Ž»?8®O¼@Mš¢ª^›‹_-ÝÚöîìÓm㳸æSW1i{þ\FçoÆ3ä›ÄØ av–ÇÒØ8L)%KÊE\lÿM0?ð|3`Y<ËÆ…L÷ÇïÀˆõÎæ †+£³vž’î=be©ZºU¼Ã(‰£­¹’…à'K[D+òÛû [ð¹NáÞÄÉ“{rÉío‘›øG—î‹È«•ôެ©"ç»x5r¦ÊDÚnô¦ßzµ<u1±;OKýŠMP»¯â§©_  íÐÔÆñ¿8›Ž<™–“>6/‘åBà ¾R¯Àòž†¦“ÌûµßXILo±âBßc•´~€GÁ¹kí9S½&Z™õ ã»Q¨EH¢Ù‹ÐËò¦aíš"¨Á®³~„¢±#}ÿ?±9U»§Åsß;!'Ç‹Ù]¹vFm?´˜èºÉZMÖW¾Å@ü]ÕEx+‘ü¯0ÉM¬à£X9QÖèéÙŸî¥Ù?njæäü<ì»”¹Ðù#,ñʳ®ñ榘¤ú¡a’†2G?Î ÖܵO)3¹ã7¥Bw”O¦`šó|Pñ*Eœ•šÊ —û¹âð£óE/|¦g¢ZW­´sç{bÃa¶w·aeUqYÅÎH7®¾Ž¬„#T­MJ;OIj ~_ ‚ã©¿³÷÷Ü$Uª €™fcÉÈãëçØò6ü u¿\b7'V!{$ºß%ɃúSKW#¦ÎXÖlU‘©—¾³Ž:PT—zg,‡ vœGü¯1Aïÿéƒ~“«ÝÂàO ï5Ôö.T5݉™­8»ûQЫ¶Jo—X[Uþ¤ø¬â3ž|ÂM@û¯‚ª`Ç…d-`øx@^0dǸö’ɶ–¼r¿sö#ó0‘Ôi¢CZ"ç­¹ÍÞ6ј¹´Ú€¼gH!#&L1Päýð^Á™’¸å€FyX°¡W·fö ñ÷ÇkpÅ«];dñáÔm—ÝF8‰®#èÜʤÛHJ,iÏO7uù术SBxXßh’n ©Y‘¦#ä .4Áz⪽LqïJgçú–d–äÈÀnæ5qË㞌ÇüL¾\ !òÕyÊ<éÉÎÙd58î~u•Éc¬î™Ù”:”•€ÔRL‚Lá”R´Iy_KF'»B{"QxÝ‚•²½‰©``Þ@ä2N¿G*1kÔ¼¥ûô[ˆš¢uü¢]œä®+œáhÀv€â¤Æ kôYMwW>W%gÚÒ§·~%ðÛwö*ÿÝB=çwËÕ‰ó‰E^†'ã”$ ýŠ/Ô2™Àsð?µˆHp¡C¸²Î_¨qÚúo@=§[®Ëа;œê3ÿd„­ä–3v¦¨$'ˆ'("Q2S\ê\ Á{‡uÒ^M-Å8ªüÆaûW±L·ØŸÞ“ $òušŒdž) ëp&&zt–ò!bÞ’Ηã½×}Ò†9Y&¦°CHŸô©tÇ Æ±d´†ý°6)(WcT÷H@»°šN¿ˆÙX„æ~FÅÿ“Ùp-©$w_ xKM?ZnC‘£M,ém˜F¨õmemÔ›Èd‘n TkðÐM„I„ûÈ-=…kP˜c>:Õöm‹Z‘#nÖ¾£÷z HH¯àãìXî³ÅHœBrGf ÂS§>$Ia´Ço³ ª[^)PpÂ{Û–ÛÁë}ŸõòYÑjš ‰üć±ˆ:7±E7Ò3!$™S05e_Iåë"÷ Ý­Lĵ°àHÚ:UýÁáŸtj©VëÏϬ"˜¡ƒÀ5³€@ŠŸÆü7—Ù 7¦Ý3ÆÍéÞÀþØ/Z™u²—S+@Äóze¡rˆá_rƒêP‘Øðd-îáŸöˆêanÞ®°¦”m h©ºvÚ7Zœ÷ wÆYIJYú_ o`bv„ß髟Ò[†ëÓª GÂñ^í:BÇU|P³½é±ô¯H`,q‹Dn0WQš5¾Oè2ñ¦^†™I“—½-$”ç™ ê•‹ü°„1Cs7;<ˆÃƒrì”}  sµöS2Ìq¾ƒz%0ˆjÎh^f˜I©¬e\“žS6²ß GÿUÖu£SHhÞÕ Ç f•”XH×2í,x’¿´Ëx‹Çp=”FXN>2H¿]êßúχ¨BD€&bˈê×Ç¢»®ÂÍf­éùÆÜ‚‹3)^ ¶sM~ V¬Í€éÅe UE²0rµl°' ×òºÏ{(Qãûw# ±½ÕÚjwwn€³˜kX♩ÿ¸É"Í0~«,åQuHM°ÑÔÒ²Ë+›x8fŒß*òCÁÀ¹Q4‘~‹ÐJb…ÆSÇ»¬¨ÿ£/3ãû:éê£{”‹e“PÜ$¸ŠfgTÿž²œ¢¾)ø¢KžB/½kì·qêëô0_$÷ԺË+ÛØF˜eeÛ±/¿Zµø¬*ÜUƒ÷üNwú‘ÌîåÜÕs‰Hç9œ«ˆó̱xçN顼Ùbe=t¤\°-Ý1«åͨ€àíEc*5J°àë‚N½®bNàÒ#A´±3VÃB§<óÚ°!`'7ÿX1ˆàÆê’‚¬ƒ‘ˆ[†ª°úù0´ P ½"ÐVx^ï|$,µ Ï:,€Ù˜«À ­™Ïk˜ÕÚwî•5²¯°¼ås¦T!ü~y択ã:ègO±æ^™s‡È žýDß²VzJòûxc(ÁxMrû׉áQuÀoæâ[húP`4ˆ3rÇÚ^HT|áÅÝræ‹\@³DüMbx%I9xsu`€·Œ—V«aöÒLçsÛÝP¤È±û–9ªÙ !¹?4&Ø>Ž%„vt>^|šn‹­.'<0wÅ+¿Z–×èg»4ƒæ•úæáÛß–ǸC5¥‹¥äñð"GKkK3ÙbôPÁßÛÃÉ#ÇQlªÕÑyèe· lI›-Ã^V#±/Ñà&¶/Å,kWñ–Ø¥*<䛞AŒ&xfŠóøÎ¯ÞàY}JTS€ÀHJ¥¹f?Ö[qÿ&á7²¿ÙïÑ|Φò¹Ö.T˜²E•üL¼Y:Œ{¬-N×&±©JÕß¾d"›¶r„6Þ»‹ƒ?w¼±:Éâïþ•]PRÂJ·–dK}ê——±‹Ê@Ããy& ú§ñFQnEᮣGÔ ò!g(¸Ÿ‘©PCWª¤‰«Ä7·K„h›t0Î.+­ö’´”/—&ŒY‹pÙ3fÅQ¹óÁÒ†Wóì/(™@C'~ÒÈÁÝw$Ù¼5y°÷c1çŠÅI†½iQ¤Dæ#ôµü}ÉŽ÷‰ðÂ'ú=¼ À²±¬Qz"u­Ê_üMYé€Ïò˹ ¿À œ4:Að@´±Yò‘S±ŸÇ…´d ÂÜ'1ïû68¥ Ç Á˜ZmíÙruÊv†Z “™í©'#p…ƒôb*¼‰ðy_i½TÙ›\æK‚¹ÛOöÏ%×€þd]=r'¿]~Fov]ÆLAr—ccù,åëtN˶]›,h’¡2†:fé°C"àÄh{ÎÍn‘)³ÃëÂå¤f¯5ÉQüò{„j.¢~ Én7]/Î} ºâ«?vRHy¼üM–-UrìÐòšЕ«‘z“ÏïºÜ”à ‹&¹[ùF\ÀaÛ¢!WRÿÆôA*·.ÌÎ,¯Î^óI©Y騗ÓdË  v'ò™þÜ$KP;ÎòÃU$ Ùl§#Vøø™oòT¡]L-±ß"7Ñï§½A…Á«K©žç¬ü ¶q^Bñ¿£ …aVâ ëM­÷Öü gqê.£ôÝü5LtÚoXª V7EòXÓ…3:"AACô®“ë& l®VL’YÞ ³DU™— Ô‹—X(W©É C‡¹W‘q@{Âw%±šqQ¼í¸)à½â\â/Û¼‘´(@£©M•3ý‡ãxù›Áë38ƒ;¥¼ü·ò] LÜza¥×3t0{´ŸµêL¯ú{1Êr%û ÖoÝo—’ŠCH‰¤©÷zôttîMЇ3Ê^ý«IÓÞ.Âí¼€Ñç­E¤D.Žç‘°ñS3ŸgǾüMb^‘Dÿ½¤¤óA=CN1@³‹Ùéã=_os1'Ã?ãC{á™ó,+Å•ßܤ¤G¶lð~žT‡ŒbU”ÄÁµú¹?ú Ä·ªgXüNE*` >—o„á"¦/÷¢Û]j›Í^­”-t ²Ôöì1¡½ÍWÐæI@°Æ+wòö»­Œ«·àC_ËŠôˆ†ýeºN?x˜¥-Ÿ»UðÒ´ûjÔŽxž7-±q[eÃÄ?e¦A U~˜ÓÎ,·D >ìöœ` júó+ÊpÂþ;A0mµ6¬zUDúWÿª/ò…º+ˆd%·øJ¿Û.OΡãKˆDÓ2#šø=V‡ž×m×Wv['œ‘a†¥ýÈü6i°sÃ#ñðLÀýÆ–)…ööÇ$;:‰aÇg:4˜ÖVÄ•ðÅv^-P±aðŽ_ÕI‚oA[½vƒÓÆ=-Ä_mäö"Ú.NPÓ6=šò6z[ë¹°'wgžzÝFå%·¨T'ZKG¹Š6…tg`1ýñP®-¼ùñÅ^lŸùÃYÀUÎÿÉøÐ”Ñd…ðļññz¼¢Ó<Ú?CåòzÓþkAxKò~ÝÒj®¤{l\CÊÖ¼`}QTÿ¹‚`†s’hUÛJÀƒM¢ôðíU®ø#–áüLøûï™±0zú.ÿáÃzñ[YÞ6ÚÎyû; ¦ËXËÊìÈØìüxna£MÄÚ]Wݺj?„@üLµÓ)ŠvY|Iø´Ò-þ‚Yégï;yº]Çz€çÿ<¯çÙé–—t]™ ¢]\þ,˜fÌ:ž#o!åÕšýe­*H)é–¾õ™‘¤y¥¾û¼Ó¡>š³ÉΗÃÚù•„iÙsÓ¨H89çA[* Š ³ða9€‚çë.Ÿ¶|Æù‰—)º&îG\ãWš) ²¥÷(ƒ­h!®ã¤V•êŸÐ-–1)Úh)éslVtÙœõœ&?9¦š¦ec$oÁ1Ñ@mã{8[¯‡¥Œ-ÓóYôÚj[– úÚ’Êf·ßç Y;béü6ZÏ¥îÛÆ»Öß“­ÏÒ9‘1å’_~%’59Q¨úoÞ~UÝ Po}/jë¢ôª"˜W쮄ú ìhºuRADZ„´³P„3¹/ÝA¼¢™òñ<òXߊ~ ¸äÞptµ2 ¢ÈS×AžKlf##¶•¡l=Èñûò…Îw{í DZ0·x(–mó?siîÐEÞfOd×­üï«HÏ¢»wІ tmö›‚k|Y.m`x0®UäðTF8eE¼ŠÕ(™B”‚D+¹}ôÝŠ„&×Ô=¢÷j\|´Aô‚83ü¶Æñ ß¿HÄN}\âÓ½®{Mþn׾ݫ…žVáÞ&UÆ£4!p¼É÷*À°ÞT•d\Ή Œ®{ ¦Ç5(·Ö1¾Õx·µR3†à<ÌîËßX³Íîv€•s†8·é¬>ª|Ù(­—²M­›Œõ¤²×GåãrÑg¹è“x™)‡ke,òý³ìcA/ùSM* LúËçczÝÕ=¡½¥‹8åÉü}aGÖ»TîÅEä"r+~Äõ¥®òg/¥÷j+¼ø¥ãu]½ÖÁ/#{nLh¨$ŠÕ‰2^¢9ðÇ€Ât°ÓÈ&wPíÅ$fôNsŽÙw‹ÓÎâNÐÿË•MHºÄÇ$J/8gL Ò!saå§«oÚïIÀRCõj8¾£Ä©D«Ê#ÄÑ„d·°ÏªG¯á¹¢_ì†ÂN¾6ŽÔ©¿²ÊĽ“©*Zõ¢«5m¡åÓqÊ (ඣŗƒÇ4‚L˜ ´~’Æ œºd}ô© Q­yö·åÝq—V¤Ñ`úu=O?«Ž7Y9±ùœ3Â9P÷ÿáqœJå*åwˆ5®„|†o.6 ÝtB©üƒÌ³.#Ëÿ#rvàyû˜Ù±ÎQÒ€Ã~ ¸&Fܾ4u¹ä º"ÀÓ ·³=û¶¨­nüFÑ„7Œ°ôô Ô ˆ#b]…Ì1¤è/–ÞSŽP'Û˜=èaAá)~Z ™¢Lâ!¤qS7#è¤o4lÏBÜêÄÿž—R²ÏC»YÑëÄõ€†€ª_›Q±ÁµAT­À¢³¯9݉ü†4=;(]®X—Á²Æ–:}f •^Ny\nuñóÅgâ ¿¼”? gÏ´J©óÃ!ÿ[y u.Ö„Ü‘kŽÿ/ 6¤1r·û螇:üN;ì;ÿÒÂX›E³ÁfÏž¸U¨0¹HAí'ʽCzÛ 雸{ßyü…-ÔB¤kèËyâ./ßGúâ’¢%”2Ç’ l ®ÀÄ)"Š3 œÜÁ>§žÊTÂÓa/Çh Åì7£¤Vªãov…­°2`¯â‹PE[ƒEåÒΪ”â£ù:F>0ü†mêÜ^¥÷m¶±ÊcŠ’›·ŠÊëMÎìÆQ‘ùZŽÓ„yŸ7ÃM ˆkÉk/<)¤Zƒ‚´€Ó—­Æz\žøƒ­´ðå肯:ö&à/´âýŒšò8”ÛgÄÆQNŒUx7šüÀú"ãh}¬ H§š %YÒœ¥ÆI;am~ßèÆè-•ë—‚*¸·0JZ2eDüQÊÂYöM>º®ŒÎæÙ£7Ì£‹(ù¨´~î‹ÊaŸÓ–çFÂXßõ|'Ï+?ò:}˜fs†î;»ÿc›µ,$þl0ü†fC  $æ'qwÇiÁ–Ž`…£Âïþ<'Ü66Ë‘uŒi§¿:Ræ \bçŸûƒ;û+ÆŒl ôîq­{ B¡ÿåPÂ*Žªˆ÷ÿitwÖ$w3#y^_j,Ÿ@ƒ ¢žKøP€#ìß%o¶=­ƒeñ1\îc/Ía”šð%AAçÂæÃNSzÄ?‘l‘Òö6djŸÙw.xÞ_ªüNKt ¹ ,_E;àϸkŽÖåÎÊg5Yàs¼c¨­efè•­p½÷À²vÖ0¾…0¹:êÌõn MÉí×t;s˜ÉÔØJ]·þJÿz/.}ªÛe ­3 Ã ÃÉ™M<ÙÅè@!‡O«øêƒØÙZO<ƒäÎ~€ƒL[œtšöäÔ Ó:¶Yì+‚/²óq1_nr12Á-J¶±¶£S-†ìˆ·½ÉD ‹Í·Â¹^#98¦C4Ì„çiO£•wP aÔ+óE_W‚ºè0¡§U·ÎW$/Œ)ZgðG¹—NÉ$ëõMàÄžûã@ü–M *Š"ŠûAð°ÝÈÃî¦êÛ$нó¨–ú—ä˜>@~úË)÷hM޹pV=7b PÉ*`€a%Nʉ¡•ëKû­Ù½N«Ç.²œ‡UMÛ]º|p鮥?>ârÐB£ùÐ×*{¢eÒkp? =‡ãÚû4×?H¨)9Tè«Ã{úîÓâÑg&“=ƒCñDa1~¶+ôÆC£š!@ZÙú@¤ã9õÚ¶Rì|ª¤  «³»¸£aêŒ/Õº;€ ;†$yí1OTç H‡ ÍjÑÒÇ$Éhã ®9XÇô°«í‡n=fMÊdž]VF_WOggSOýÄ nm#ÚµJ;ÿÂë÷òò÷þÿÅ÷ìøûÿúÿqÿ¹öúòôíÿ´ûÝéõìïÿ¹äíöøìëÿ¤ÒãåÞÚ×ØØØÔÒÕÛÿ¢ü}al1hÐlÃ…–þܽìÓР¢þ{Ÿ-ÛVld@•=cc]”?,f]•´é¡w5yª_¢åýõq9³ì]7ªÙá$ƒÔ:®NPn½Š2X¥È¹8ç“lvn¬K%*2( ·v5¹‡M°†Êµ\¯愜ㆽ¥¹–óÖüJt»–#_ß­ÞÑU L©4ó´d¢‘yký‹îM]~‰l*oyÛã(ɽì6Ô±¯T£«wõ-ES@²Œ‘ÿÍ;K¥€û*ãß×3×~ÇŽØŠEžéý)¬;2—}èÕENœã¡ÄóüUsøÏRó/dî+Õð4/û6¬ÿkÊl0CsáY!2sCÍŸâ*œï*84B®¤©[ÔÛWoðǦ<ÓšG«MÃX=mƒ‘^“()äë{®NÖ™%¡ÅÐ9]žý¸k6`^¼¡ K­¥ÓôWIPùÖJšŸXÂ×e2³Ä{`Sè\+ ¬ÛÒŠF´‰ä-ïxh½q8^nf/?ôJç²cU°=#y<Õß¼Eýá,ÃBF1ÈÃ$Nalð±~bràHÆÔ ¢î\È®?¬¡åý^òKL·ÉüX¸æÕÝc5æ×Ý;:p¡H62Þí…i%Ž3&8w££Hþ Ž<±2‰d lëŽ}-Mª…6€v¥Cg·x‘¹w¥OXó…ÙÐ:>–ƒ÷8PJ±¬™Ôãu(Ëæ~NŠ£ˆ‹q;š\èŠÃ‡—œŽz/°ði©Š¢tŠJA°ß ]ÇOýzAS­ `–L è»®(ÇWÞ‘8‘ÑÏ÷} EæàÞÎŒ\àÌÛ¡Y.šMEW¶É¨»Ë#'êñ[“öäI,0W¨¿¯Œ¾2»ÁøïÎP?«=lp›M¯á=ú…¼oö_ƆŠ\üNSÅOº”æì]M²êã¡x"òßÈÞèØQºóuüô˜WñO{ œuªŽ&ŸÈ\4Ç;½éj®zñ7uðêþ@´<ÖúLuÛð t}¢ÙŸàìU$Z»óÚZÚ]^Ö#ãR³& îrh™Já­ñþ]Šy¶™‚Ì©Z^Ö„K²a=Ï Ÿ_ˆ» žBôWþðaì;á»úR”d¤ÂQ×*¼1¥Áª­Ç@ÕIÐÙjº™²Mjá–*Ûš#Ñ͘FM“O,@ ×.dqõ-žq¶¨‚>})Á¼|òNFòž@Iž%F¼dçluÔ»Zû%›üM¶©øE½¥£ÉªéÏtª‡ gµHé·¶l³ò:Ö‹&²C@/þXSÌ£^ó‰ae LÄÜiVäÂ‹ÌØuoyp Šž›“hªùv¶ðÿfYN³jdËäɳÉE5Ê€”ØÁi˜0kí‘d$Ó?Ó§Ž0Ý\ï)Ôkåuò‡—iTN°dð72Ânìáàiúk×a¤Æ22ênÛ°³/?¡¡…·Í š¨üLøv’3ªpˆHÒh|̰ŠXˆsÍÍu@Ìè,ù(mƒÆÌ„vÛU®FRWp”Ð+Þ ítò^Z{ó2ò½Â†8œ8¼E¢ðÏÓ{‰~Q²äŒˆì¡†T{NÛÔF¹ðõ!¦j²¦µÙôVì‹ña_;è5Ø0a§L/=l´á™öÁJ,îéâ¿Íó[?¼¥×µA[©¨]G/kÒl,?„Ƚ5ð™¢úçËïçä§ÃŽ€l}xÇš¢DoC-N3KŠõ=@n*Â'²7£ RÈP ×ú a5©»¤q(>:<"Ëü6‹EIÝð¹ òÑÿÚFDÑù… 7Å2GuÍ»U Þ- ˜W÷Ñ<\ø@aݵ}—}c”ž)©°+p&}hØweä¡=‘¡ŽTÁ/Ó¾»sx‚ZÑ¿êKˆHÛ#e‘Â_Ÿ*h~vóg¶-¬ðÉÜÒ&ΠÓ;R~nÍ„cÊõ_óHf­[…ù8(HÇ|¦= ù/ÿ4@ÇÎÀŽÅf¤Dg¤þRÛ}RMh÷æ‹ï…ýíôep_•U¨Y7ÐÚ‡Y|%S9‘I‰¹ VóÜFÁ¼£ZPÓ€ Á&‘¢Î}šJ/³%&ÐÇH¿mÿUúáKVøÔïWö§ü6rÌ=ÝfÚ‹9à”nÁõÂîØ†rä^<°/r!Š.M¨~L\ãJ»×®B–«bñÛï·I-ÅF+3\ _™ÖZþ39ÝŠ[6±oØ\ÓõöRÞ ®T³š90e’Gíö/ë×¾þƒŽ(~À`ŸãP¶BXb³ue±ïœÊ8Ã7 Íq?èë~dO–¸„px ¹™Þ"YÁ6œ@5eTr`•×Þo4:'æ£bǯ‰»c“7( â?n´çtL¤PŸÞ n†Úõ ‡®›B-#‘«ÉÉ ö£Q2$ãÇÞŒ3¥éÕSÃ?$ –4N8H ]høyí0ß'å€.Hü÷fo`=jw¾Œ"( ¸ÀD.•–7Ñ·÷bÔùM)( ƒiÐî“Ò!úPS_ˈU DÏØQæ2\ÇZЂp[µœ|N0§Ïj;ÕöÐM"túœ(µ¼êk{¢8%•¦I°—œñ‚ŸÈ𨻼ÿÙÉ`ƒqzÒµñ‹J«^böÛuŠg/÷qè®Mš¬Uq½ÖJú]¡{8™«`·|€¾ÒhŒœ`œ”]:]Å“„SGwrK[kr~ÊU=av\{áÁ¢,=Ì_ZûR ûéÔ“âzŒ”s Î0¤ï8Ž’2Ÿî ,˜ä5È:ß\Š/.}zƒÎm8ŒÝ=Ã{;òêO2W2Ø×÷  y®7[ÆsKx—1YÄÛNî%ü6SYçåw ø”h¶JµêD““ ¡÷9ïÙ~kñ–£Fv•F݃‚Åuá$Û/i¹ÌO/–s{’—% §£ÇéX¯áàËB‰!D¥b}ª[éw=H˜=ÉVÉS-H~K¹–¤$¨!N˜œ¥Üž ïQc:;°ø€J ‹½|6ËÞFvÜWyÇ ñ¥/A‘ÃæhCHwJÐã¤óÄöçÓŸ)¬ ¤øBŸÍí¤ÎU¼ÜM'lè”i²AÂÚqÕEÇѸBõ¹â ÏE+}_Ôraæ::Ƥ–—ß•3!yÃÌW&,H˜gÝi£!A¼%ü6r«ÉES×bF{²›BÍM&þ2×e°ÆÁøx=Ë”,ůÐtæñçæÀUcɳ‹­þjú¾{ÃÎ@ÜàT/XгÍåËtÃKA‹q&tçh©õ®"g¾Â­Kê8ŽÔþãïÈ>Òá¿8ï}$L‚™(o9•R™I#îÏ[™µ@.“yÓïêH•$çi×-²“HB4Œpz îîwCÌýˆQŠªnœïƒBžG²Ä5 , :˜€ÔW3þ¼•€q*Úû¤æÍoÐ ‚€Œ»¡á ÅÏP`qbb®)E‘‡ü5'½²ßçVYã+ºÔ \Fœ;áj‰ª3˜D±Ô¤Sø‚wë^H¸bV»U· mÿ}^dJ‹êˆ*Š‹ðá0þEU9L™Ñjp]þÁ w®6ñÏýÀåŽØxéPE{xW ;j’*¬ ßE6&à•Ëfø—]«W'hÉdpÕÃ}ÚN ©.åXWäÑ-jZèÒ‚6‘¨KâÇb§(Ü™m.DkúÜ+ÄŽ÷Ø•w(q[µÅdÏ73Üߎ£¼ _O3ÒQó.;«  ·—hã¤Ç«s,¢ì|=Ÿ¤ S¨Ôn Ì;jó|Å{·,ð91¯UkëÑüL«±ãYXåšûé'Å#Úx‚…«ÝŠŒ¼b¯æ½—`ÄÔ›ø80ñ¤I´ 3;Ù±ö¬äC+=”—ñÖ †$U†¨wkÓ僰¥,éž<ûèFzn[+çpsº'·‚'¬¨GÄÄ¢2Íš//{âÈÁÉšžÝ)ìx®DŠ"þê„BNþzx­…ºÅ­ž À´ÿšñò*ð‰ðògçׯŸI(‹ßV.]8”¦ðúw.bÖáþ|5w¼ ™ Eí<*ú³¢&0”¶Û ©» Åæ…7.ŠÏ<ö_=¹û¹'î9OÛ—A0æ$…YT÷äç]ªüMò”ÅåÀ½¹2™b¤ý²™ /2,«w¦®”$fð˜t{•qcº?‰³ÌEúq¼Ig[íƒÕ|;û¢»E$Æh1×—ÕÇϺ1ŸJÏ¥ÌqŒ­ÉÔ¬%3]Ÿ&š ççײ°¤ïÒ‰AÏÍÃê³A°­0±ì3LX§üKË1–ï’L±9îlMïÞƒN³”…@MrL{ø qE3äX¹Ógn\í¸í¸vö~çݮϵór>ìÕÅ ÿß³9ñ¬%¿ß讀Š.™K€PãõÎfEFQÞ²y»9iÕððÃzôLWûÛ™nï~ßdÆG¤Ÿ»˜ü™ÞEyq”í_¢þ!y9$G•UV~sïù¼&Á“' Õ3Ì9·V_‰„Ú5"öåÃꀘPmª0I…Û»q ¼tX[£NFC÷¯ØíÛ;&¹(Ù¶_–ñJÊÓ¾%Y#)hJÕ!\ï]è4ð¯8)·IÌÜ}xº´±†®ÃP´ùÏîù›øîo˜6ˆ-õá™æ+ËáK%|xyLx“uÇ×Ú寙~ûMJú¬0Û/›R<©YĉˆàÜ­£ü*ä‹9\t7iæ—е±ÇMz#â2ñ©—ㆫ{õ«ÙÌ+;þ¼éæ+voDWü|®#ð&Í¿Ç×#‘0ï„ÓÒjx!g²U]™GaµÇ.Ä¢‰ kë]+ùST›‰MÁØÑýæöÒ—ë’¼ ë2×#€¾¶æiÂ|Yž‹Z©ã)N›-ei#²pœçºÕ3ÖÜæ«…&×Þd7ÀKÜÍóGžÑ¦qÔrkakÍ·›“¼%D£®åÏÐ8:» >SM­K#95µ÷ËgJ Õ¥b¼Éh;Al'Q1û­dS|Léy—ð¤1A|£àŒr±¹~ÿ³—øé‰U®®À¹›Ú$±±Jv-9}ÎF§»k ©ìÂ/ŠÄ\ýìÐÜ9†‡KÔLûÂÛä² ÙQ>4Qæ¹4£ÔÖ=ŸZí4hì©„x³ÿ³,š†6ƒ£ƒó±ŠœÙ5„‰ îå5ò‘'’a üb§’d¼Æ¢0TQCNýŸy[ “ö)ZѰ%Ñn''æœc¼ßå}lf\ãƒoƒ Ѥü†v NH—pÀ û< Y2/ž^ª­¢ŽO¼`ÚÚY655çݨĉß\±—Uoµ<òˆ„U‹û›ãQ䶨šÌæ ž“urôQ{gsB¢Õ7;äö]º¶Ôþ¢Î,,Ù™•Î)ð ÿl;o*)4(ïÑ6>È}/(™UÀ ·ÜÃkY­Â ŽÕ•Ir†ŒÞ»eXg£ЧKbØH “Ó;ˆ †û_†ï‹è‚î?^YÑÓ]8†¦’D#¡¢£ó"FGEXD}W[bÓÎ÷qHhBG‹Y¯½µá¹ìb«2ÙU„Á$4z IÎOerqÃúøýa÷(Ûøê/gY<¨üáø¢€!®¬«å¬§Ê1øj†;BÇ-¯#ê!O⢲’žˆXtñw~<7¾<]¢M¹ÜCQ–á,ÍêÆ ö†¯¿|CžÁods%]禀Aÿæš;¨»„k8Å{~k5M»ª¡ÿqJ¬ÿŸ¨/sÄdHŸö Êhã8‹’”òT6µ#Ȭõ[·&ÕJ‘†×M·¢ÏÁfÁ\ĸ‡17ƒ' ˜Nè·óTçáü or@ü†dÞ¯Ñ\­ÏähBÄ”îÆfáôŸ#{M3TBö:!É0ªµ5 .Úº‘Ü>³Ñ±‘Ä^ìæ ·ñ[ãÔ;M ±õ&.¬Ðzv6y&›7y®[.?8«]çÖ’ÜŠåq›9’ ýKúþ’i…3Å—e ´Ã”ðó¬ÖõÈ”Cíü\òíä˜YÉäî˜"€Îº/ï-lZ\΃þ¶¶?Ìšè8·™ôÎÖÝ2kW ŽJЃr×­ø-‰D« °žg?€"åÈlËšœÒ©)›)hVâ—:Bj›Z)Ò£ª¯öO.nØçî<ÞáQ“§ïŒÁˆ°üNJXŽY+!Î‹Ì 6ø ¶?t³Éüòä}œ}ý^ùúJü{ŸÍ~[”—×Ý÷NÓ€÷WôvC?WVäŸo]ŒCl’£ ¶?»J¾·÷µ ÓðW@1?ì-næÛF6˜+ø‚è€`$wL;>‰ ç±ß{Qo¡Ñ~,j;³Õ0båË‚ç–n®1¬ÀH.“ ÌšÏwk!÷“rœð¶|ÖÁÝ‘ôÐŹ\¦Î[þW`æâf]¹f‡SÄÉh ¬ðF„y耇ÿ|¬  ó™z!‚ B­¦¾àøbL¶söÜa¼QV¦m¨äV"Ζž± †åB¦ˆg‰\Æî&H£†ù’m/Uzok}3­x¸i{ÅÖŸ¨ýAâÇêÆtRüLµûelu¿»j^¼"j9´×9jÛ íH“\?$UÇA?Ò]¦C+…†Ç,òç1p‡¶è<ïÍ‘¦Ñ±L&j.›Ìy+Œ–£–À遼K8¢íZ[-þá’áau©ª_iã­¼Šo [ë´Xo~9ó?&T†Ëë‡Þ2ÀX…øueGÆ7ÚˆõR ¡sÃý $T‹ò<”bKË[#ú¦Éù7Hp}v×ñ¶#Ä;0FˆâD˜(œâÉL¦ ¶”Ô ªÛÃe<ã»U‹¡2™ýŠ¿ÚNó™Ñ= wû»:\ÚÁ…5{Ò_Œ3 %´™e‰™2•‘$kü5, ªø“¥‚œÓÙ3<ŽÚf³;cß–ªqr¡_Kš-¬'jâÇ Ì3²Ÿ?ë×@rŒz²ßÊž@¯P[„p~žÜ£ô" Ô_2«ëÝüɼ‡ën»^šµvÙ?©íš]°¸ž¯¯ê’ºŠƒceº'0s4øû„…~Áø5Sw•õŽúÈ$–ö²¹+OitÆïâ2Ì¡Â$O‚·Þö5 ä&… ëõB…„5ÖD ›iRUÃePãZ-±KéÆqË „½;üGö†öülܳÐ`ŸòK£n(³«@p9ø ~÷[³ZòyÂü|®T’ò¨>^“‰ß[n§à§XL*'éŸcõ·ÂE“›miÉ~íÖ5‚åqgó›ü½A[ôïSÖyŸTŽ„wLO=NÙ+^¹‹ôì¾ëVò…MD}©Û§ÜîòS ÍL­?±ŒÞÅ ùÃé.Yp#xÛÄ<‰‰¡’ä4¥›I¾Ý.$WsN`ÇØØ(õª›E*ª¾ÇûÁÈÖ—ƒ˜q14¦ÝZ~\¤ÆøXV;Ÿr× (›;˜ÂL([Á _툱8—6/H"-š&Ð 'B ‚m»îµI^fgò¹”°ƒž¾Tbð{Š‘m4ââXœ3À~H-›ž ò|<0á\^CFÿø;ñÕÓV„Á£I&·Vûwߟ½G0f6*–l‚IIìƒÑæÄ5^;¯?ÐE-IhÆlPˆý+c³ !87}‡É‹y±ò;#Rk°Ù"Ïe"øûl»•ý,ÿ5lÀ?7“L첃)ch8²ï£`û²ÀЭ‰4Xh„žSuå÷zk;#,ÚZ¥åÅŸ×ás©Ú­ý¨ÕÀš›Eò¼ü†mU Öû*=de#k^;š•´Ì«ˆ«‚«ÁH0 6ŠÙ+)š&÷ÐË»1vp9·½áÛtXÀå ­Oxæc—²Y½=LªaÒô]¾ÙS©«%)Qä¿`}¹KQ5²l<ŸâUAí3OXÊÄ ]ÒÜÌDUTö"¸ï^yLøÕÅßë.„¬ «îHêbáÙD'•k½yÍ‹Z¨[§C¾UµÍ›¿„$ƒ©ü?gõ#öºqvœÈ¸C:`–ÎÚϧ×þØNtNZ}wå(z^…ª‡˜m£Eîr”*áù/®õ²J¢8Cmäô?Åü#&~¹é0üMWæ€7cWûn'u¦DÊרcl7«Bœpm‡©5ûö(KR¶X€î~”lµˆÂY¤­2”¤0[Û#ð ˆ!ôLÁÛ)⢑̧aõ4÷é‹*…26—Ö’ðób\¾x¥ÿi%V¨¦á™KÚ¹š¶®ÿ ¨•+?ãÜ?$k%ÚD_´”RC›¼ÂuB8Ž~¬-7‘»I”Ó7ΆöïÃ,ä'Ú¤‘]«(iûÁî|ÓÊ%æùRÄé]7Ú:êÃáâJv]ßµcÜ_3gšº€y«‹XþW @cz¤üNuXSu€jkÚZ¤Ã.‹ŽëEmXÉÂî´e¥x4›Y#9:F´q­2„[£ï  åųFÆNh©~¦e›²Õ’šùç÷XJngë %S:%¨„ ¢ !¾—ÑÙ«ÔpK)u-×M\”GÚkqØ©9À¦æR@|yZ»‚jgŸÞTÌ1™B  ?YøyUFÿ971à 0'|!œ#dKò*Üæê‘bråýÞðCéŒ( ¹žRFL¦^Êët‡¡&~»ßåt´îSë•jHVöÊ=¢Û°Sï9WôÛúýgüIÞ^ Q}ê%J 'ãCvf]kȃ„ÿ2)ȤË0i¨K“÷C@Êx«ÔÝ ¹TåïTEû'w,×ß7ÐÜöé†re»ÀlJàÚÞúbèyÒ׎,Ê(¯C*¦ (—𧌷[]Át’”Åo ·^‘¶}cÚ³"ÉÑ1Ï$.)ðìl»›E!Ÿ‰åðߨ£©ugRvú>±¥(Ÿ‘–&¥¥Øœ(Ù/4€òÿb38Ùeë‚^’ÿ/ùjÅ€jE@@Mðy!lb.•Ýáš®À¹„aaKP=©u{ˆ+Ń 1'Ï2±5@‰-@Wex&~scûü1ŠhÛ ¹†¾"9ɬ²[T6‹’ž!{xÙIM.ÎXQÎ@ëѯßm “žö²—vÖFÓ©üjƒ0t¥­ûFaÒ¾‹;½]QYü§¸(a¨±cÇ1"qÏÓ1%žùõµ·w´*`´…Ž¥g-Õ^M\Ί= LzåâÓ‹VK=R{[Þ½—x÷9 ÿCPï\›×W@4³CØñ#Ó("Ý}Êo1­¹WÜOS(J9vöÄhÆ8óß5ªÅ(¦Œ¦Z- itõC:¶°ô@3>lÉvX$ÿœwèýM²dL/YdZðJ´^ŒôÄNÒîü›¸ð¶éâëa7žW퀆°ëdeqn!–='—K>攟¡Íóð!¡“$r@Ú3ÉAÕƒ’]mBï,\Zoû)ô²ƒì&åw( Rˆ$ÒLÅ-WY2ŽôN/@ú}’;@xõ)UVÓhd€[)CgÍÀ›–Öô ™hñ߸F¬u?¾ åK×ÜQ\!1ôü¢³h» ˆìŽ 2´Ó!W¸x™Ìg¡x½µò+^û‡¿­¡×‘}>£eÂó'ã‹F4™y¶{X!L ùD}ê/=:ÑmW=Ê¥îê5м%·äRöøfëh‹EˆÅ.W˜7ü|­‘ýej:=>GëêÎy:‚Aõ†"%(5Ç7^“5a¦,xÛn\yGò—êN¨­ÿtú ;£ž«M°Mi´@ÙRÊÁkñ¼·òU%ÜJRñg5W,3ùUӻؽûfeôq š‰KƒìÐMªë¹ø_‹’­g´™¨ ¾ƒºüÐÓÓ/–MµÓ(8X„ø¶;[57*‚s›ÍI¸Hgp]¶ƒöïŒõA†C“½×•n±)ÍAHptTPÊ€~i¬³%æÌw¼I"B+·d±pŒxæ#NÇ,¹aBðþ¢Gü=F:𔼹¹‰Q¥ZZÌmÖt}ÝýÆ ´ì4Çw¸ì¡áŠðOšA ¢ Ú*bIí÷ž¥ÛÙš©Ó_ùû€×¸xé|}y‰ žÔ…9ê‹Î5RÒEÛu!»Ö:´æ\]r#Û[Æ\âB'Lÿ—*å€x;nèÌ Úh¸Ì,ÙWÉø ÿhÒüÖ9ß4HŽ.žxñöÖÂWü¦óÅ4l+ü7;®‚«ÑNAôÅŽä…hÐýj…ú¿1æUkþê:öÀCvÃ\zü5lÛ*@XiÚážC'ÉC’ÍûûÆÃ“³:ºÈUŸn¾ñÁa:œrFR8Ÿq&'«ÇGs,ñ6§L qÈZ[°Ä¢(ò°Åz[̘¶!m3·W<;ÜÊŸ®5 bŸ€eÃ<Ð?6×.% @Sæ§Å/ç5§~cu#îÐfi;¥s•WZ! Tá¹W²d=‚T„¡ÄR<dy8öæ§—¢‡†“™xÐlC–¼Ö¢'>iýËq~V¨F—4B=2UA €ˆí1"(áf±ÉùØÄ¢óT—òC‹üL¬¶ëPRZˆ¨©àŽ?_Œ•Mzò-Ç„âæd´î‚>õô—ŸRÇÎW^¤€ü¨ÅŰ3ÁUôÿÙÇõ“ãwठK´’Ö('e|!±”ˆÎ` àüá·Ö ÐÍsß$²ø{œþ /{ðV}Å#/¢øÞüJŒžáÖ§–tù‹Î#BÜt_K0:\3F¶'2~«ìé]”-¯Þ¼.x{außI—:ΰ²LêâË&V(cŒ›s£ZP7—É×uQüw ×á*È ‚1!ñg¹Œv…æª{ÿ¦C±e¾Ë}ÇwLXäÒZŸ_fpMË™ü6gÜ H £s§obǤ)…d5…õÄ·Ôè+ç©¢|„Ôã[¾™æ{uìV„ÏâØ#Ñlì .o7Lõ%pEú†ë«ŠWÜ@½ÖèËd´T»–V̰åî°›MˆbHƒ?<›-S6RÜõFL d-ù¥BW6tÆ5ڧ®UE>ݶFèºàoØmK¼Öç*N€,LMök˜ñÁR%Y6·ÂÕžîHáIH=þ6ÀÌ©Nµ#”/9±oëéO︋ïü .\RJ¿i‹Y†>kч~|cpœJeŠÔK4[†qÃT$I%d»‚H"üL¬~n×£¹Î?$DÄS!v©ŽS³½ÕÑ.F4`Bi—úÝúŸç^„¤äwÕù4Ö$/yø±JÍ}Q'Í,ñ  ûXè‹(8è'A5iî¯å : ýߘ™Å~hͱ+U<9”<“žõÎ×DI¹‹Ôváròs½x÷$V9©ZYÑQ.¼(ÚUõ!KûãíâŒJ­Oá)†lG{uz†cį®ü˜ØöEà¼éLˆèuÀï²Ú vqÈ8X!ÕLmÎþÜ .GHÀ;+Ô×Òbx°szkúÞ¯ :¯ëHþõáM K™[,F[¾ÂµzGô$›üMI ŸéºUñaù~s¬!](Ôxé+üþ™Ç»¢ZÞ\SQ%‘·Ùb k:½ãð@x 2i»aæMã¡ïÍŠ»·\BEë?2*o‰Âb#YN/f&ýiÛ¯»Ñ_÷ꜯ;øý˜hO-džJšáòµTÃfò(uèSSÀ“¤…ÿ7†ã¯ÒSa!"ŒJ\z†;kê*ö':RðYÞý4gKÊ— NzÅW¾¶ø×˜iâ_[5¸uµ zÊ­õÞNÀ£~’.©1N9ž¶lȉàü®Ê¢°Iá bö ’VÀK‚ ê k*´ü [½&Ÿ¸ˆ„Y4ò -UL-”Ôß&ôÑ@þ7ýAmÆªŠ ƒÓéaœÐ'3qÃ~C? £ÿÇVx^ù³Õè±9ÿ]cKÀÿïßöëj³FC:^ªý†§*¬ìÕÝCyqÏR)µsQLÿ®W¿lÜœq4e÷k 7I>ªK0Þ·9×ÏV¥°%èî‡P}õŠbXb±ØÕ³òrÙknjDš!~?$ï~Û+pö]uÂk‹Nß*¹ÆýöíI$ËØÅH;‘Á‰Ž~›÷á»ñTl‰ü|¸2Âebæ;Ðf"ÜMº¿‡-Q^gTwVî! öu^#9±š®{õÜp¬Rñ ù~/×nG»é‡fçtªé’«Ÿk M™Ñ_¢•Á¡Èÿ;šèåâêI™s޹›ÿÙÁ¨²]ãç0¢á¯YU:ÓÄùK’nÍãL¬—ßaôÔW}-Ï ÍÌíÆÐâžöÚ¡Kɨ¬ë¥ü^!ÄÜ»›°Tž7+U‹ÉC¸"(¯ÿR{нA‡öÜx#lU›N¿i²:+#L‚$E¯×´ ÁMß½h¥vÁÃÞFr v+ y.Ç ÎÕÊ=R ÅLyªå!ǶåÇQíPùÃs }‰tÎlfMœ2—9ˆØ1Ãóê ¦+W"“ DeÀrõ¿ '‹=ÞGñ‹ÁASTý†õö!©¨%-:ý÷ ]Šéì´¤¸¸@­nRÆÂL¢¿«ßÒw=æPà{a@<ÈV5¸àpKö.cSºÝYä{5ÉÇ.Ó 2gã#Î(Dz¦T}7P¶iÅÏþs²Ó°ð.q£X‡5Q8ëo$†ÆŠEZÑAúQ~§üM-C«ëmbëQ0~‹ƒ“b§b8bnVH›n³Pò¹9jË¥¹ÅöY5ñº3 ®É ÂßEv E¸°ã¥7bÁD­Z¢Nöëk°ŽA»zˆÞéÝ霡’Ø6Ñ Zˆ¯³Pö®,K—ÞM»Ç¿ä;¨&Ð1ÜÆ!áPáβ Cô¬{œ¢ÈÇËéÇñ¦“6—­Ò•Ï\bKïSÒÚ½ËÖÖœ߯ºØë¿¡€bȨϯX*:ò×qÿUò [þv”î½0ö—2.'ZëüL®yÙ•—“]``¯uŸt“`u•`+xl…\[ô›‡^¹élžÀUI½†Ó>‡Õl‡×Läj°rM†O#—óO¹¤¤WиªJ¹Q¨7U))L½n+ð@?/ôˆCÌø(ìö£ÏGññsÿþ3?¬'ÞjølÍúÊ–tÝíNlpÌ¥ÔZI *ù¬‹~ÍņJÇË£êÆã”z¬º€£Ãu¯™–0ÉWX×|î"ÂäC=3ñòXùô'b•±1òÒë÷–¾ð³ëî!ÓEu³,l+ŒR¸×™êüX#–Æ\.¬uûÓeó1¨J:’ôòÛ¤ ÿ°ßv(#äY䥯j^Ÿn—²0‚´£Ò÷ŽÂ‚úoîqPT‚zÜõïâã"€Ÿ¡€è&þ"šã”ײ¿Oë=ÄZŠ#»ITz…’­yV”‘Žÿ%2”õŽh†Rà6ºIsâúBR¸A˜M¯$: `ªµžŽ¬¶À ckîRÄPá,úò»{€B]Æ\Xjäû‰ßîuíˆß!¨¥‰Ù6YñÁê8A=d¨ÿݳq¸ÞN¿+ŽÝÂyu ÆòÖ@®jBf³JÚÆ9ŸŽbÙiüM{KÏ"Í*ýÐ.£1¹|Z±PENáÒ™K¤þË0©Ewûyi˜`½„·+Xþ}önæW2} Ç9ÖÍs?ÐÉÝŒÇ×`Àè&6‹þÝNˆ åGEI‰M 9ß¼“+‡Þ”M]ÒõߟjŸÃe›¥]—œXyâ•yðKÀqÎ/pŸáF7.#.²ÒV§˜ò¨¡úpöÔ‘–°ñÙ>Äf„~Ò©O[l«=q™c–¸éŸÿ þ~³=õ¨ÇQNý8›F£!Ð÷l²ÌtO©˜ÐüLëÀè³€wí´ ãö£M •‚έ¦c^Ö3ZЏvŠ9ÓÕË5IŸ[’:æŒx@ŽÞgþÞÜ(tŒ©ÆHWJ¿X±4Ñ£Z^î2m™*ÊQM2çˆoª"»E˯o¢Eí=¹chsx+ ;Á@Æ-àœ;)>*LAVº”®‡‰ÑÙQò/èîÐSÓí(O>OYqo·@8ËH®ÕN¤~öÙëÂüÕ¬ µºv1Ìý#À¿H\:޹‰ídáÁKûy"̾` Ÿm«˜¤Ôë6O®þÙ¶ÕÔ`D“ÁÀüL½ ìÉ8ñyŒù¨{䟬Yôì­S6 Ưüb¨¤#uµJ$ƒNt£ÍÇánšyuÏü"s2ÿaßÑÒ8žWÜÂèÕBuï;WIíja5D$1¿;Lù’Š‘5[Vñåö—}Äz)‘ºø ÿL¡ÝŸšór¢ÙëCv;^…ñ<·žµš­ ši¶œnÚKi}‰Kõ>’¤·Oݨ"¬M¸RÀùƒU׺ï¿|H¹~àÀh„—¥)µÇ@3ÏËc¶Ö¦e5ÌÆsç±üM0V’ÿ<Üüv"wú!¤åx %ý„¡tdÓãè#)m×Ò'ù¢ýiú­ÈW/^¢NS¿°•}Èá ¡@.|«Ç ¶Ö¸Ì­BË[ø—zq›¡°pü§l¦æŠ`ºÄÐj»×˜N^âp“ê”]dÛZ­$c>ø{SÕXCJ­—CüN”Ö<·^ ª¥­;rú—,»èñÄn_ >ÚgBq Y™œïÖ:ÀJƒÎ ûÍýRè[ÇàPb©/¤b‡•£R«¼¿çÝ<¯£®á²–nïø>¬Åa®acë²áá„_Ñì8í²²ïZWì½¼·@+Ž££…÷Ó„‰§b `¼uÄ:ë¼fòdxK´©ÒsVŽÜ¿F€?wA„ 7*ýœy£Üó}ò1¾z+ÑÀX×Z™šqо`¹¦çî Y„Œ¼ªPýìLÀÖ™3>TüM?ÿåPA^ ,TÏz‰]—Ôá˜O‘×錇l²>âð¯»ú¹šiÑÒ õù(Ki;™¶$HQ  &ßêžþ‰â´(9Ï _‚mÎüoœ¯;W£  þÚ¼ðF%Ça¾ ÉPC4ÜEó%^61W6]ÁîÚÒ O!œÝ ²’2ùîY+…™ü6R„çùx¹»k®Êbo+‘ø ˆ¨tpÍ&=WohƒÃÜ”vaµiÃt¬Å ôÐÅhA{žíl*È,2n‰¶©ç”â­\ýáºð3 ˜?o$G“@›iá…øTóÔ¬>àï\ߺq¬ô=óáUÏÇ(`ò$þ lEªXÔyÓ¯rþÉØ[´ òÎÎg}’ÓH}C%:¢U¢’‚áQ—É-ƒDÈnTN„î1dÀÐY×µ}ÀUÈòj˜¸€ŒÛ˜MèÚe l¡ké-ìŠGüL±UL†)£šk#ü~߯•¢MÑ>v× "i›K‚²1ž¯$æ†ù/È%âç hè®ù"¬È©‘ƒœøól5* s{y‚ˆvõ°§²){‘YÔýÝŽ^Ó\Ç+X†,Åx@íá‹¶˜h¢SZÍáýãëRáÅK.ZQj%¬³UðÓú\q"-ýAS)¿dœÁ$Š3úïœÂ%â$Æ¢Ÿv=Ü×*¶™ý6äUZ9XØzV¬ o’ÃôÿMî=,g …tX•ò$Öú)†òü6i¹.ݽûäçÊâ.H¤ö#$¸¸¯7[5è)»hÈOp[g©ß’"œŸg¬’oöÝ/ ?$³mG—R…î°>{ê:>ÓÖH¥¨ø#Úó®áü¢‹<Ç„7…7 ¾ÝÑõZ¬ áòÉF §P–ˆ€ Ò{îÐ…Û«“È“~±ûâgÕjhX MDPïW1 ëvñÆêÄ]à''¤Áx”®ÆÝ¶d~Uñ¡u1#HÒRt3„»5£^F¢ñ_B} ’%gs ‚Áý_Ô^üL°ý¾l€Ùä—oš¹aÄ\ñû¸pi¼ XW‘Ûî‚ôº±ôðdsÕ¥Þe–ù†°™d¿{‡6p¥Z¾*¾J­KŒPVTg…±a–©Lñ§Gûû`™æîP‰øANW‘tضnEKšÿœç²tÖ»“eøK¤?͉õÓ=ŸGZ°Ð9 üåð¢Ÿqð§\ï2êÂ;žo:›•S}â÷+4#X7ÕÆÖÃÂSë¡”-ð6¨ÜùÉÍ­¡Ê‘F¿3¤ZS€ÖùâI¤ÎiLDæP¾êÀü|®ÒÞ ÛO6¨b1N´¡w¤6ï¢'+¸ّ7\ý˜`B5 æWLÏ£¾Ûf‡BKùL|‚n ägúöäJCÕüðF,x·7_û¯)±¸^è‡ñ«‰f`"øë–‘ÜC…ÊfÅÛ¨ "¿¡‰}`þ8^9²jôäÃÕ-mœñ}ŒöÐ4‘ƒ×Â4ÁË&ý=ì¨ $Ú/¤û胥ܔÀ†0=Ä0gØY*»„ Ê l\%‰Rð¢gí-Ú?m.U;ôüÓP|ßk„ k0ÉG²´7ˆa6ݽ…ö-’ìÖàa…§«E¡ím‚–æcÁ?ºMñ…\§b»égo^žwE—\ è9{`JëÌs) @ z꡵ƒkŠ`"Û{°ŒEASeòBšC‹cD¼Ò ýðº,£±o®bšc=|Á@’é;ÓT+]¢Pk:«‹À‘=òcù{\u†‚ /¿ÂÑÅADì3½‹ÿ2ë¶–nf”³º^+Yýs~=dÎÿÿ³Î[,ÌY€b`0‹0·]pm˜iHh¬å#%wŠ‚lOggS€ÕOýÄ nnð¨&¥>Øäëëëåÿ¡ÿ*ÏÔÑÓÕÿ"ÿåãííóñæâìêçñÿ³ÞèíðòÿÿœòùÿýÿÿÿÑÿ6ßÔéÝáÞÕü5C¾f±®†ÁÖÈ€ÐQË qÅÔJÇ]½&8Œ«ó ß´í›xó_]]9æ4;¨ÉÕé;ÆnŒ ‘²«ýùì‚)gý&̵ Ó'lâîï¿Ç]ÑÃ÷û“yQÞÝäbªˆËw½NÚþ³%AÜPÕþù*³œt.†™FÖsKl!}*;n¯ÄŽ—¸¯j6ô3{ ”Üzų—¦ƒ:óèW0kÈÎuÑE £HôÀµ÷’›€ÏgŽÇûôymGR<Ÿ—œÀFxÛœ! îiD›—ËEøJ×üM[Y´ÈÞ„vwY‘Ág Ö³Œ®-ts8:í "¯âRbnZ³Ý NaAÉQ…óÿ__¸SrÞï»ßxWwoøh0£+³F&mN-ÎIcÖ½º2~S*ÚãPÉh€¬|'ÿX^kÌ~`·¬Þùc–::/>[I5`CHÿ# >Ø`A,l¢¸a¨ œjĤi‹›þò_ºz±/òbEŠ3~aÀ¾à£ùZåòÒöÖµH†lò&›zÙ³:WXÑÔéþªÁ<{¾ R€ÍkF-™ë#¢󙨴 =ü6wO·!÷Çœ£w@˜‡Ì äŸ÷¿±æf oÿ3ºZªÁº'Uj`Um8ߑŷÁ™‘f=5oûûê³q“fÁOøø!Ù‹Ž´L>v`nÖD,6^9e841vtYpâ&õý Žï —[¶ËhN£Æi[üÒpÛYÏÑè¿YµVƒ£peûÿ—ð&¶BÁ’Z;ûdçqÇ!˜Ÿéiî¡QUù•ä½¥g(e 9!ŠˆA$à Þ=H¢`Ù6É #ȯ¡_ߦ¢ånü)AÞ&/¤M£û†ß‘væò¡uƒñ^müL©ƒ±8J¾±³y"JÎV™w^ükÔHmZ˜¯z© ô×J—÷’‹Yçã}CjÔ”[©çx©–;6Â’­tTáÛ°y¯§zo#öÖö‚CB;5䥊ò ÛàFåå0›ÃmáõÙíÚi ÄÏW¡`’_JIÎáÜþ—£ÀZ–»RJ<šúã´À&ŸC&Š2ƒÁ—t@Ηb‹pVãyuÝèŒp6ó2¼XfÈÚ}£7KËT’e´9ý ñémRít—Ø:º¯Og·ü°c/ÆéUÎÝìb˜ÒUŸÌÀ»‹ÄfÎÜô¾ëöe„ºÇîX\çã«+¹q[¤qš‰%;Îfüêüv ü{=þÇÏÄ‹÷¼Ò¾`;Ô&Up‡jí±ÓÙ¿sƒÓ©>©LpaÖó¼Ìb¿î¬Íbˆ9+Z iB$¯=ì±™(öÙ ß‹- u¾ezÙN>iäκÙ5UŽv"@ДòIÛPþç¨yùlÑs±øZ™(ÖÉñgáŽ*N”x‹Ëì.¾AKÈíñÿ}'€Ø/iN‰|É8N£*žôˆåÝ>žŸjºøgžŠêE4Ôó™&à K£³ÅáÆNXÀÂHžjAdÄõ¸“c°»2Råù·ÿ1‹%7´dTbáÝ}#ÂÔ4GJjj¤®ñǬòÿDx…Á’C×µ(…øtˆ×8ê–8ããÕOÅ£!~Œ ‚|˜@¯ü Gf n—ÚÀáúûÇì‘FeeæÈ¬0ɨ<³ë£Ú^Y„Ÿ…²T-ñè€èú-7?â–¥w ^žÍ-Ý®þ ‘~ÙB! ¦d&ñ!>Nš<@¿ÐÍì[Í+tâØåi© ðb*®aB?k²Fz]ƒGÚV‡Šü}a[¿X ghøËÂE×tÍs%­nS HVÿa™üÔ½€÷=:=R=¼Ú΋àâ–ð’mTØd¤WVŽw8G§Óc hÐ67>ˆeW¢¸|>–›ÏP|öŠÁwÔiDom¹%oÉßE¶ƒ•Šrì€ñ¨m’rÌ%–Ó˜†Þ^åÈJšS,ì¢-楠áE4ñ¡û9Bœ%ú Puçœ{±Ú75ûÉ—0Fßqu¸™ê<>,oÚjCUÄ$YI€¹5È)uŠl@×e)Ñãñ¡sÀw³º±ÝÔ£IÆ&hŽóPî½qqŸõ²ª ‡ü´š3H«ï홄þí ¾DäŒÃŽÕÏÿFìýn–-­%¿¼M’…ª#­ŠÚ…N²ùOK(NÊa0€E7pwáyg¹ÖZ¶çÝòœžQþ†M¥þúþø¢Ð —)<üMYß ²Ñ.á+KݳUâýfü-û}¹ÃdI­®ÏÊÎÑÆ¡¡t=o’ßžõ)Ð –6Ìè:cé2.ø '³AÇ´Ãc”ó e—8|vÖ°@k£pÆÚ™+ÂŽ\VÜ5ý™ "­£n`5TYÚæú:7œ2¾òò{èö ûËѬâÃ;ìÀâ¶kúMÏ/¥Ž(wþ±t[9ú;¤OcÔïÚ%  Î÷¢¿"ïÿÙóéeuF‚$ï¾D¡ îÑ+P&þsÏ ñ1D‹üIò5Ê)‡úÖó;!€³\XM/N•ºøÜÍÐÑ1ÁW…+,w1ÓKÑ È’kX(oñLÊã&YrIËoL¼cæ÷MBßb?£üÇ.–ð÷äܶµY`¥ ‹ £ƒwA­@µ[X 5ŒØà¥þÔSâ”ØÄ·Œæw„ ‡Í¸7[+ îE‹èsLFer¹‘|½AGâv»–3²æêŸ¸o ÔQg<ô‚¬õc € ŽC1“bk2K-¶Í™Hb!ÆóüNcT;±?¢|⤤$õÒý¶:ý qês€èeŸy+•£XÉq3lß„ –“±³^f>ÀÍøçÝ^×ýyÂ^Q”÷&䬢7HJíl|ÜÔ½e‡p²¯úXä;ݘÔjJo´¹Ž¦ }ˆÕðªVNÛÃeŨP7Hû çþþ"|9ÝÊò`sP6#BE’ˆ… ¥-6.·3=0TTáãLÕù×}×`ê#T[ Qá°g6 ÒVG‡ŠXx…:ÔhzÔlA´ÎËœM-;gš¿/Jü|©©Ý@Y7Ã;BPv'ðÊ4¶ï£¼Ø Þ¬ bÄ,j Ì0Pù]2³ê„)Âç`d9¹èŠ(#Pxm&Vq¹?bâ-dòá+æÈÂŽ¸tr`ã —ˆßÚ>K¹-ïkº›aÑÝÝÆç¤eöåiÎ!¼ùz‚ç" Ï1vê¿CvÊŒN@†'îÈ8š ‹0 Edâëg[|W]ŸqS:ËBßýëAl€”X1¨ö¾5˽˘º€äXc—Õ3ã&öÓÏs¼232RÜwÛí©êÕåm6Mû€ÇŠ™ÕëóRI×W_ßÈ0ʛDž/wa|d>=í>b`qTx~¡ìرULL ô fŒŒ/ÞÇjê9¢Dôº8áü†d"²|6²ø0#ÌÍ8fvå¥éq¾(2™òuW0êᛯ’Ó±’äs÷†¨Xõï#ç–Å+ ùù÷„ëˆ$“TÌ|^Öuý( •559„…ÑÀ<Í·JÉ(ª‡éh¼öêÑèXS”vL¾ø íÎæ äó°qz¿²÷ÚtžìoÚmõÐ} ÀPçv¢Ï'„£ÀÍ3Î[µF%IV«JjÒ'*Ý- ì fª~Û¢O*bߎ´Úq˜«·¥&¿=Í.wÁ‰‡:b¢oR„R í3‰<¬8¨I3uK·eÚ¿±å UÉêà „ó‚þuôèðú-{Ŭwã›,Ù@üNP9éNø6_B2½‚ܰÕÝÞ–]Ûw¬3ò:BäÖR È59a¦*YmŽ¿ «^çå±n¥è˜)º~$¾áÜfÊáØäÆ|„/¿R‚ YºXD¤2Ô€÷ Ü«•Œ–¶%H¢«+A®t}¡~½@:Rt¹Þ|ܤåu,9—Ñìl’šÁ‹-3ùé-|Û8ÕµÛª¶‡½ZÚ`£@£ˆ*Ú¸Ÿöúì[áf—ñüL¼Rò?åOöí$rÒî´…Sá_ë\½ [üÞ8áÍ1‚ u¢øs5LÄ÷xëe¾ÝoKUîD¼éÞ`O… u$ïK•l:â<Ž`º'ix’óHåqë'á|eͱ@IÛ³,ôÑqË`“-!ÏÝ]~2cc(ƒ™x*ªZT2Õ?LøÎ"ˆ y’Úïˆ#Îç³×\¯)דŒï¬ï!PÌSI˜äu;_qªþøò~AÆ= ÊÝ4d&õ]çu>JRÞãOöë·%Öß„x{&Ò§ ¹ãÐ_|’ózüJˆá)žx$Ã};€Îwºj{ýù 7„‡ÿ„û1[•nh å’²u\—U?âgÒ5šÕ¹î‚¢··‹Û\#«~<$Ë'ng}¼á¼§Ÿçz_¬´ÓNš¸É{MHY✶¸É€Zh3âx£Éc÷³,/;˜ÏÒ3ìðäsžÉ áœDVŠ‚G‚ºVws=àlÿÊU,¼W±žÖBâ|¤"›u˜Ô£8ÌÖ¦kÕÔ-_wQþ´bÜB$™Xyò#ÞÏôZ^Îq°}ÂÅé6tì nµ§±Ó_hëøÙ“®=óœJ–>˜œXü›¹'ŒÈú£v¶Ç÷ÓÚSiS²„Wò¿¨¼9B€FªV%ã„0â–äƒé±G´øo-÷ùîõ(:c_®rÃùÚgg,Yu[p Žä+ôBÔÄÕù¹ÀÖˆñ<]†9 LíKÏ Ãý tÃû¬ƒø^ß)L %¤† š™ O$4ö„®–0XµÉÄ_‰«Hs`) 7yÍü]ƒL!Ç$è‡]Esíù àXÛÉ/e‡ú(d¬RWx fò¶/4žý‚‹3êæ¼ïbOIAA®C,_iÏaî¡€p<™cŸCgÕjÕm’9g*œ‰%[ºú]ü6 pŠq‚@®îƒZwT³z» &ÕŒâ.;k Ä”¡Ó•ER2@TF)Ò-i!½þ¤µ z+P¤µ¾AµÛºW™˜S¬ýE  }s‘¢æÆèx Ñ•OGêÊ”NÕsùH»·ß¦ë0‰Ô$ uCm'ÃØëC=`î%뎧ë Ç ‘ptûwäwÀÝÔ¡ûƤŽP[»hnMH"°Ô%ý\`ÒÀÊcÀÖ–ÅŸÜËÆò°`~ØÒŒÇJ[]V¡]nuýÌÓÈè¾Û®löR¡‡ÈÊý©§Z¬¯M&æÔ¦L' g%so¾É•¦ü5HRÅ7ÒýpKÛ»ë*SxõaËükD³‘Ú;Þ…½ây\ôlYÐ T«[…•î½X%ïÛæ'9…«Ù/%!zIqÓÝ“‚ÂHé÷§‘þÌÄhØ=ÇÓg¥*˜Õa{Dèé'6¡ñ÷¶T!Ažï2â²wñì&ñxalãÙýÁÙäðHÙ§fÊÜVÒÙb²FtÀ{E5q®¡Ig!(X°˜ÕsÌ”KCóïr‘^“¢ÕÓIm»#@…9ìðäϱÓ­édxhØþ¸/¡ø›ïn’6üD®žžŒCŠ6²­±Râo:¡|c[ŒÏüNDŒâIn•ˆ(.ÕPbŸÕ²ªÚ™ŒP•ƒKMïÞ>md´fBQûA1<,]ël·zýÄÄAðÛhfÓŽWÀé“3 Gt¬€'èžø¸ÕË;ó¡jòÅÕΫ˩‰‘I X…I|«õVØô=œŽQ$Ü=´WoÿÊu,Æ@m€ÉoGï¾ÅÞ¿Hi^B?ãXU¼1MTfg’ˆ¡ÕYäfc¼ÏH€²ÉSÕ_ðiævßkwÑþ߃Á¬U™Qç³v˜ñ\žJ‡WUå ÅÈäÎå%OËDUa\&.Áa<$NDz0:srúFކEü®…)BahÄÿ”h߯üû{yxo÷´B<à‰ÃZÖƒ3ŠÔT}*Vjr¨ý§¼ 3 †ÛÞµûCDélz x¥eÛŒ'™8Ç‹ZT;¬„½‡̤YIÁ ØQ—ǹ 祈Ôà<#KZož}h]n½ž¾;Å£>ÈT>qì l0=ÐRÒ)¢Á®3“tY™­[÷-”§³¹µéõNlÙuŸìXD$Úhgk{®Šd‚SÕâ²QŽb±Pul¯¥¬ÿGÎDZ§LjßCrû,ÄÂ;œP!ä½d¾vÉü5&ŽÃïcãE¨ðfn©¹>çÊ:ø?ã°|57ãÁ&Á‘BݬÞ >¡¯^ñVbwQêËÇ|¡U›_MÉÏ@†TÌ>(Ji!Ãñ¹Šú’êK k;ž™ytõ6"plr^úœpD鸇Ö;`s¦Lƒ">Ϻkb—NGÌû‡µÅ:qçó&¾içVÙ {4@€6Ì#0c}'Öb©°£iÝHœÉ›h!¡§µl$æå?ö˜ú«Õ›ûi×Êtý€?êÌ~–$Ø;îù¼ äNáõ1ÔIÓ9 BbŽ6£lÂ*"ñ•ítÞÔçü5I¶õĺHÏùÄñ7 '~ûIXjm¸Ÿd÷dÓú:î—브ðBš_˜uÎA ¨•*Bé»ô–Î&ƒñ˜óMÀÁ9²âðn€\6çËŸáˆÒ[{ÿØ!b£#¦—tÖðÓ˜ègcýçʺŒ=…ù±~€-:ùhÊ Ÿg' ú¬ÏŽÖ”íň‹bÌü×WFúª;Eüç¨ss¹¯oûÑ™e¿¥­Úæ»ü«Ð{Õ‰Zt ¹<"Èê[ÁçB.¡õu‘ÿ’x·è\^Y£ª`©!j–9fH i|**ç‚’=©#& Øž–è“eü5~ÏŽ0ç¨0Y²¯¬i[.E±IªxiýÕŒ ÌèTî|õˆÊ{é®xïi¾À¤ ®]'cS¹Ñîß®ç↛»Í u€›ìéÀºPÜg¡ ñYÞØ€YöŸ­QFaî4\—~pqWÚ;öÉ1y*ëd½bXV鲑µ"£ºöïdoá—ìæB‹|Sã=Z©)¿ ý£!˜M‡tBrnðf<•ù™ûÄQKE΢Æ@2Uþè±`Ž9ElxxëXe|¢é|øiüq{›m1Šk«.¶Ñ`uªq‚Ï/\yÓ·CÊ:´ÿð_\œHUZ_cla”zOYÅ‘¡ö>°ã6H•À6óžµ)uŽ™~n4¶ž»6H ¡dm±¤Ûœ1 FƒG¬´í§ü™ÔE_}ƒešo­Ä‡ 26çsºc-þc©ÌÍÓšGÖ÷N3àÖÿÅúeÄTÙÛ/Ú¹è,.ió Y^«\Nz¹ §w€üЀ2¹³K7½Ù¡áë >öãý§'·kïg„¼^ã–jóf#Ïïb>d™¥–êá¸vg» ÓœÊ]šNlA¼rk*ûŸøÿ¼W©—ÿöjC¢®<×$q’ÉêcÐÃŒ€»øMˆ Y9²R XoÔƒTA·â=)ÛÒ|ü6]’ï<Œ¶>°÷|JO¡Ô¯N/R÷^¿¦ÓÀÒíAв4EH¨Ë ©ˆËl"2 ¥¼KÚ¼§³Å³S…:/á¸Ä$Bá")DƒÛMv¶Ò¨™'Vê÷+‡2`‡Rý‚èxá¿í Êåc asÑeiJeÅäŽãÒÕ’¡ž‚/–³~C]<8I.Ü;Ìsî èþš·³ž‰Aðz°äTg£”'ƒ^t U_Á2ÿŽÇÀ)ù.%ødÕ›ø}šôÎSE#à J¬êò7!¢p.1oE´|# üÙ?«ÿ,&Ÿ.ኪáØÀå1_ÒAÝ’ïOU#Ôýã$o¦ åÿõR¼l^ÇEç(>•Eø‹ñtÝÃ,Mºb~˜,–;A¤çƒ]Œâéôo8£e­-f ¼cáñhD0[{gëwÖŸcÒ±!¶¹x#q%Ië¯-ZŸíÜ­áAYý¥±,C…@KljìÚµ9«0‡€‚6/»GBnF@½‡ ó¤ª8¯æ–÷ Óe0Jf§!|IÚô2ŠÐ_v§PáŸ-î‰È€}}‰ó£ehØ¥’‹¶ü6’[… U¹ÿ$UÍyˆ±ÇJ‘¨*­ÚñXJÎy4°¬¨$Ø~³–aŒ „íæô¹ N W¾¬ð>Vk‘ò†gŸ%v= *Æ8ˆìwº;§Rˆª¡1TŽ@Tû‡eã˜[/LÉ(‡^)Cû!òë,\»dJjú´˜–ZcÍÃþ`÷&¥7µò£ë™Z›|=f 0 8Ðò±ïd =räámÐ(¥·rþQK«Æ¿‡¶ø.¾ÒÒ÷u~iìUòW½Õ™ë ùÊÒM•¤«Q™µÝ õ†Ò/P؈ûÿD›Ü]0œZYüÖ ,!÷–­êü⸚êáße'A·æYpšÿ‚U£Ï_"sOM 3¡"Y£ßFQ™`ÞVi:ß>nIðŽ—Ë•6{—ˆ€ÇoèN‹a‚Ë¢.kaoI—¡×XH”gÿÑfÖ÷!€, Muø”³7ÃeÎæ™Ø¼È×H‚ºYM×nÝñ1µ ©FÔ.C²=®7>Žþ2E d˜ñy( Õ([ _à1Ý«3o\ÓÃ7b:‘9uAþsÃó)åè¹òÎZ{™¹×§|®dÁí₇ÿò24}²–Ó‰U-Tõlã$ _úµüÙÄfá6»évÅ ©Ö{†c¿9AÅ¿>}ɳæPs4HìÓ×,uÎÿŒS]†ñcϹß:¸’_‡éY(Õ¾„ƒ£´9š _?íüû0¸ÑoÝ—gGðž ðK”Z@°Êé)√;guƒ»1‡[SXq¯˜gÏrƒ§oú™ÆœÕÖ{ã¯Mcê&ØØ±cU{µ‚¿ù(94•x„ãIQù—èùGEÜt’Lˆ?ÿùÌ2pÝ5al<áSOÞ$Ò§UÇDô‚@ûNô!–Àо„øBŽÊ‚ &b0=êi˜™W‰ÈcÝ%`4üL°²P>WÿšÛŸßý ­Þ¥Ú/Üê5’ ±…¬€½›áãÿøÔ ±³Ë0¸,ž8¢ R¬%sYX‚Vl^ISjç¹p–q»u³A#z4)½àP›jê¬.¬õUGo5îÜJÞ˜@ ëçL1çAddÍúé_C”Ëuµo}¹{±JDÐZû6ŠÕ©ËFsI*É×R0´ ßZUöãWüï1ùƒçx»ô¡ñ¨@žÇ†Á}_ÞzHa`£õS“ïd¯=(~ÉÃÃÀRZLXwªØØÂlºÑ¿§ìÚ4ûÿ·2¸Œà©ÍwÊ€4è7(…ÍZ¤AÇí@J6ɼ—’@>Ù–vËe‘îñsRÊùÖt9ði¾bƒÓåþù¸O±æ-xv]qL»ûe§'÷:W —1g­ÁæSŒ е0R5 ½ E ÄâX êN²T2$tÃcøcDW<†'xùSàl+€­¤Z—ÁcbB£‘oÛƒ{ý‹@®Q+µV ~ŒaÅ2í}µÆ ½cŸe€Dˆ;¤.ß@U9üMЗ§ë$á—B,M êñ@‹a¿¯í*Í1¥^R è2g§,m0ˆ¾ï@žÐÇËÍK>?.FƒŸ0åæ]Ðì_&—‚:-U€f/¹ö#Ꚍ!áU è!FŒ§<-é³ *™éèU{M$[aO 2p¡¹º)d%‚ê7e¥„Ç`®Þú㣧˜º¡‡ß=Ëc²LËiÿ¹¦_½5Xz‘nùϹڨ)&U4Õú°„‚gð9\±Åu½ÑTO>Ý jú‚RÛk÷–:ž†¼ÉLmSµù½ hg¾ä²iE†Þ–Ñ d‹'-æ5:oÍépüM%þ’4zPµ‘©biL„«ø“ßö+ù4… ©Q¸CYÒÈ"PnͳòÌýmà»nü+ic‡D`êQKbÄ€ [èæuÛ›WßÖ i»Äúqß1.F∱ÃYÐw¡§j™@t/åÌœÛ1¯¹wÔ9™ )Ÿ“¤ƒ¨«F¶µAôx¡ºž…_ͨû©Óög_Îê“ü§‚LÒ¯ðá²&k®jú]÷\‡Ã)Óå4ÆÆÉ¡d:ñk{}ÀC°±`˜­ÂNÀèðˆÀï¿—¶þr!—_Ýq0’^À¬Ý£é>®¥9¹pFþÑtò ÷§É¿Ž[QOuˆ#^˜ü5ÿž½-O3¹Àß&~Ú,Gc͈ÞA>áFó l‰Nm£ tÖ»z}{‘ô§eB{§ à‡S@nm˜©oŒÑέ×ßü}^5œÍÕµK  8ì3Ê~`àÒ_°Wužäß ”Ú¸¦ñ8°Ô>øU8ׄ…bW•T$=×ÊúX¡CRÆ»>iHQÎÓ»—Ú.‘&ª’±ksœU;Æ+ÎR¼š%B(.­ÙM3KœòÞÝgFÍÝk„­s‚”ôBÞ¾ž¨Ð&\òPJM+œ@mV‚N\½¦ŒÈ’žH÷dxì y¿³ÍË3ä@O#ƒR ,>¦ª9g¸àï…Gåµú§‘Êy•9:Mâz«ˆ L«Â¸þtüŽLEgS³}¸1¹Š¦V˦N,úgæ’jx0Qç`sù ùqìt(f÷*·…=àßа‚ûÆcÿÎ=6_‡hJ;Ú¿ÿ†U ﺕ­D䃥³ 9¼*L8öš" ÖÞé‘’ƒçr9JÎ&ãRó1†Ò?Q…ô`*3Ü:#½Ñ’RSÑm˜qz­¼k“ÛHAÉ]2Iµ8K«÷|4i Op‡WÞ)D‘Ä`€â)äaX&n·J»w@«µt-óî4ˆ­„±j•¹m뮾GcñËöw÷À÷NÃI¦I—¤~ÔÓsÒììºÎšì€S>x6ÿ·!Èv~órÕBÁb =^Üü}aÝ~b¼±Rt´×¢,ž:,Û‚#¤¯‰•ÿO†ÁNuM0W!Åý£“S ú^Ÿâuv-ˆmþÝY¥“LšŠøŽÔ{AüÉaäWX$sK°` 3Új+Ê‚ºxÆÁ:ÅQN®Ïš½!²ê¥yd¹Ió\Ÿ†+üÄ÷ÚkRÅ4ö80?Ãûå'ÆF ÞÅóuÚJP†^€‡Ø?64R¹¦KBÜ ¾xQ2|ôÀøïz6kɯ͇òMðþÛÊ:‡ÞÀÞÚM:pÐ2åü^GŠ«‚Üx¯ýÓÀW45ÄÞòïqJm5q_HJNÕm= Ò‘LhsÓ4(²Ru®Öºš Z˜ W]ÎzEÜ{ƒ~õϾU+'¸ßÈm)-fÌÞÙù»ÓÛqJw7øâEƒ»ü6žÌ¥“J¶KíRŒu1 ¡¯Íù‡=˜VÕ‚r;ºl³öSc8~*æ7½S0Å q>‹Ðü@öǧ Ïi(òÿ%ráz¥ú„ïr4ℇŸŠ|NFâg¯¢[®8¡;1È•÷¦;•ëß.s½Sä¤ùE˜C?j婵én”LLï7 oüÃz°œ­zô•.d ±’ó£cþŽ1v ¤Å$3ߛ׊øæ%»R̳OtUÎO #õlUƒÿó:AÅt’_DÈd j¾dª®„¯ŒÚÆØ²]öÈãé×düL¨Ï›PLt½ØÆñ„e^Øe Ù±ñ…6û¸§+­Z @Ʋw‘¬„3ønÙŽ•䬯¢àþ7&—ùDùgZÚ?©õÐîýØö´¦ì04ÿˆ÷`gùwsV¾¥½sþ‚s ³×¥µ]MÍô…Û˜åW”%ÖÊs±Ÿ5˜à«W0Íò xÓïÜÉÞJ™à$ªaî㥻@|áÆ4YâK:„ªtSOügv$â0‡mÀÛ÷Ü9™¶<+õªlHI­\UØžó¡dþ½ŒŽA†ù`}VüMbjçÈ.¬»;øýQŸ|Pá'„©¾Ð}|‰˜‡ÖŒ«`öDLá¼Ï64ý_MåÖí¥6ÛdúÍ§Š¦ècáÊ*‡×Â>T¾ÂmŠ˜÷‚ ´x×VÓ~&mÄû÷ Cÿ~–¯P?ÕJâL˜ÎïÃhqdƒú8Ù5ȯø>ݸÎ9¨ïi¬ô[Çÿ˜Î2GÁ…>ã¿?›é¿´ü+‘bõÄ•9Žø‡K§É\Õžˆ.4¸ò=Jdx¦ˆ¤NžÍÉ®¯NÕùÄ« p\á>œxõú<‹ÿ3U1ÁÊÏófüMûc*ßùÉ=8ÀEôžýJ» uĉ9 ðUìwÒ™zHtç3’Ý™—þëóNû¤M6·I\j^ıÇä?æØùNºËÆ58´t•í6Üç¡«u´ÇVM >é­œ^ö»ž>¢¸w¸'/¯Ñ Éʧps"z^ô(†Ï"œ–$ând–LjºÅ67T)c$pÐ>*¢Ôõufö°¾UøãG ƒɨSŒö¹ÓÊœI‰±ˆ©êŽûE<í ìTš¶Óµ ¢Ñ.mœÞŸµð³Ó‹ºõ—câüÄ…P@ÿòÉýEƒ0—®b2^Bí7xF#–¯”Žà^a]Š[- ޹͘ #(c\ÕÀ@x¢7&µ#ÿÛÕpØ‹«+ï1ÍSu½¤4;RmWߟ;.1 ²æ$LjY÷‡©üŽ{ï'¢”ëÁb²Ÿ¼4-~™ƒ G³#8ô ~ú=%Ø?Ú6òðÓÕRCéæ™äPG@õ>£Nº3j¢£übpˆÏ~ÍÃþaÝĆYkF²”bàó~¹~ßÝÔî)• [ ¹ÐÅ—3hþí­Ï‹ß¸ÐßÏ@Š9uüÆl˜•†tFès¼#µ”}Øú€•f‡Ã ­MAÜlZòCÅPWKŽFßøá3ÀIƒP4—OûÈÛ•†}ZÍé¹kNvù› IÀÆãVØ…^xvÁÁ±¼.b?ìvv'€‚}ÀšjÊC9'|¦5v\p®—ÂcÝ׋hã¬ëêII³mx‚-g1ɽŒŽsº¥:ÍÓ\ÍŸšRêjí¯á#X0ùj£3®§•wÒÆ 8T/IÙUÚ\Ðx0"Xþ¤8Ùá{Ä`Óï DRä4ƒÝ~±Ë4]@6õ„‰uü96Gz]kxä*²§°™ãà6nÁš1„î‰*ñ§Ð¨Ù˜!‘9ì ¿ÙKÜ]LFˆ3…ƒ~ƩӟTÊòR:]l…eÂêý“§V$¼X$ʬFpÎæœ)¯#€êf¶§}5¤2EåŒÌ´ùXæ|.Q—™üÊ´úqBúJË †ÆÏ›yÿ…Ø5/­ óc}èÈÌ‹âGè±µ¼Ùœž;èœèÞÊÚ¡­†ï äª"ŒäN58›8ôÑ=®Ÿ^Ü-¹™“ç·ç\`Åh+x‡OggS‘PýÄ no(s¤—CØááÜÛÿÿØÛØåàÿ›äóöôùõÿ®æñ÷øÿÿÿlÿóûÿÿúÿÍÿîëñóõÿÖóõüÿÿûÿÉÿÞü6N¦!–ÂcZõKíÉë“PÔø‡weŽo_öƒ¡Œl¦DpÞý•"V S[Hk)ä€,Rü‰ü}oŽ|ÈU‹¯ Ù=9ÆÕ_†t¦Uý^b: iû}ò£`“0z±N惿҈¸¾©7Ÿ>¨»ÅêœÌ‚ò³½Ð¹´Î¿y¬8° ±Èñö$ïèq÷K©$ˆ÷€°Â¿0S'ˆ¬õ1J›ÆS—‰ébi#[që$¿³÷ó@f3¶6¸<^üD ó< V§z­Ur Ø·Oö¦È´ÐòvìŠ0ü5e8)¬F Ö=€HšÛ·Ágʤ[¤¹‘»v¡áb¥=ú ¼fMĵ©²ª(Ï Ýö,²ÎoÔ"iÍÒAV7{÷ªãªðGŽ|_Ç©ßVÈú&æô¯ø5µZn‹ôª¶bé M¤Fë¤9—†ý4%=½úĵėŸx2úôu¦< jÉlô¼/Ä©jýEfyMø4À,Sô:qÓÁáfÇ71THQ¿L“lŒˆD¼­ž£ÉC± Ô%ÊšçÔè‹Wáh€?–SÏ7zl=»÷b!,w7µªÞ ÷Šè iœü51ä4ŸõñA6<«÷‘ÖÄk#2lÐñ…Aí¸Œªgn¦;qö:lÌòUÙ\¸ÜS”ªÿžV,Ø/jeãFŸ|Ë¿Žžò2 -:ð ?Z8(¼ç:æ¶Ö!ð×·7Jõ܉›FóÙ—×CŸÄ3k+õ\]ÌN•iÇ1õ5Õyg(qÔ§•¬éÕ3ÓEÌløþe{'ÔÞùг{¾@¯ à£øY%¥äýTg9þ”v;»hžó¸æ™ò¾ÇD•ŸÑK(LÅXZìÒıæíg²8î@‡Ÿ™W¦ÇÝüM6pk³«TçÜØ1æQwvuîn«ùÂdL•Í£&…×úaXèq%7š¯ mÄN@âÏÍMduœ9ÔðÌàû¯j c›µÝäAþÎã“QxqçbÀQB+×âóÖçݼ1®/þ5=FK¦UÕ X6_Á☦$×U¦ŠZLýpÓIÕ‘AÅ?)kSáÀwæ+€ìÁ‚ׯ-ÁXmn.I V÷ûo]„™±ë.‚´í»´LF²zÜÚ”²µ<Ţܶñ=>ä‡ÛiEs’¶½) ½ý„åüÙÜLû σãLÜ.¥óð=h¹Õ ' Æñ&m@¤­bè‘PÂaÞœîŽh#~Ohv)Y(U¦6Ií…ÖP/±Cùv1Kç#o¼ƒ÷ `{:üÞfhØû¢Nß|NI*cǪU*Ò˜®Œƒ<*•ñnñÂæ´«²>Ó‘ Êõ­ÃWìЯö]·Hðo²eÔg–/È¥àô<÷âÔ¦‡ôûc¦”îLeÅ1zqDï;¥Ÿ‡2DÔŒÞö;¦#Óø.ª¿ÃûÖZ M®)ü´÷RÆ…Eþóqšà‰Íü|©¦ÚOÌMJå÷Ï\†½¿køzžw57a=Jq¤,ZîìÛÜJŒ \SÜÇÅÙµñZWØ«ê)F lÔíbmÈìY=S³{ÇäþaÂÀšÚU•ŠœW)ÿ¬¹Þkä®ÕÊ'âÌ0f<ú«qM¡Ž>Bóö‹ù½€©]ô©³®.Z­ƒ;4xõ¯j%z€9}| 1LKÃläâhzV-*/—Ü<Àœ4¥£d[zƒ+DƒlÚDü‹ÕIPh$ûY[m>fØ@¬SãóÕJõ‚}X Ìpz^±Œ·àø®r˜¥ßk£ù,ÞCíA#îgz§È§‹§„Éút†ÔÝn¾‹@q¾hU/€ AŒê%€ˆ“¾‰Œ›„ó¾&7ŽyæQ*bà ˆ|±ph*ò?¬ù_òâRWn<igpWÇåkm‹{*—«kø|ØpìTÕ,1˜gñ7ž¤ã^£ü­3ÝÑkhÒœçm5æÎüÌÇ7ô°íáÛ™`®k7ò&áj:7züb¯Øüuà“ߢÃgu’DÊnæË@§.¸7mk?äÔ“ÜrYŒ-2š×PãòvÐYÙŠHZˆ¼V¾lèê 'È€9ò¸.¿ºÜÌPl‚ÑÈû]~B’Y¿‰³ŽnN7±¹‚N¿N1óäÍA«rÜ@q.šk¨¼¾Z ÿg:LØë«$¶;°üM&mwý—ê&¨fi5.æ¡ÇAN$¦öÓg‡ P[O«Î\iâfO†'í(«&ǮӧôJ¼.(`¯ñd/4÷s%³=k.¤eCE8¬<%iÒËL—•F@¤<•51)ØðÆÐHK‚1羊>á™áÞ=|вi{ZOe|¿ø€+g£=KCT ÖÍüsjXSzœî,îײyzy#l—w dÚò¹·tÐ ua£ïª_'e r Ïk+%Äò. s#Š Ä3ƒ*G@ñùùA·¨kÇŸ·üL«ªëÐr:|7W_UNþÐ÷mIÖu¿&xSŸUðÇ^¬x ImP5ì#†=RÞ Lå6Xï~1?¢àZ8ûá²ÙÝÆ¤'Ú‚8ïΛ"úÀæ<‰xðÄ…ã«ëíºš­ÓäÐd‚®ÂÑËžá¯pªW$ ©; Har.ÞøbDú´p3· „WOSÂì½îÀ•0Âå_U4Ž|T96çö鈕…&%٪ץvº’F3“n“\g5øÑ€w6±Þ.{„Üï­@0cô+Y$ü.0]ƒ¤ÅëóG8ùØ-á¶—xLé¿Ðø 0ðŠ»Ôßô\-u*¾î¾5T+X—º«ï’%T¸ÐóýàP„ðEdž{'ÎKOà ó“iáxþ-ÌÓ“ú/Ñá¼³Ù{D ‚òº­ŽÆs]K£¢¶MzÐû‹h,)+§²´­)ªö$×ZÃvØíQª¢œJyÖ¤ï©^P•ܳáï—Å341À9ãe„ ½y@¨L™( ùk»]‰ÎE†¿Kdùì¦vö¡×ppЧGuJz)4öüNaÑ3cÓRàÍNCoãVMÜ&½±I 4Ì$¾â¤>%ÚžÌ( -Jâ|âNxîœùš¢ŒKš£FoÚAø^S+ÊÍ•L…XQ«íÇ´NV÷y8ðÉvÜ—§(hÎzµËdæߨ‡¢¹gë ZFøDyì‘,Çài©5» #T}(îô¥£Pw¥„ìü–2ÁÞæC™ŸhAEԦʯ<½RØD¶pä[xžK‡…ÃQçWàÆìT¯à¿$ØIxº¾¾äŸåý½aøÁf•MņšÉ¡å¼ïE®ŠüL¯/Äø,uVÎ?óAÁ±p ŽæöRkŒ„-Ê6ÌqÝPPš¥,é÷ -(óDÚGmÊ›ÆKþP°"ÍLÛ-»Ñó;t8e\÷ñ¿›²P¹³ž™…ø'õÑwvÄÑù£Ê<&àÞžyÎâgùTŒo ' lCÙ—„ÜrÉKá€:A…Xò‰:XÚ>~ƒ‚(ñQ,ÈD:šy’“;ÆjQŽÚ€f:÷úN–9¦‹¡vó[ý89Ït¼®GËçÚ¡^Ü’ZYDãËlþÅ9pžžüRLØ$s‘5å'`ùup¥ôü{-Éb)»Ñð\}—ÅÙNÅ@TúÇj^•‘Ä ûp¤È®OÓýüY-²GIìÊ~/Ð7ÈÎ+/¬£ªxúQ›mpn%7s‰W“[ñƒî–PœOEZœ±,7Ud݈%ÏeG\ð¾‹àXñ§ÇNr ¥Cp­É¿U{ª˜–oôÌÆÆ'ã°e ;­|-ˆ=¨Õn â„®u´¡÷F«lj6j³ä—3a/wØK{ð£QÁ3¾B· z¯yX¢A¬±^o˜¯¡5¢dlÎâùñkXIŸæcËx¤oð •.`XÄq´nÑÂrÓ0ËÂZ%MB ª,®Ï6·UòÛäŠÔȧÌzR&ŠÄ‰÷WÖ‡æJ÷õ*:'âAÅæ§)®þľã;pÙ¸:Ê.““kßÚÙÊzà˜Íž-Ê(¢m굇Ô<ÇöÃÒqþ „Ý.4aƒ9]ŒZ^¢¬p ×K'»culõ¢bÉ•ƒ*þ_àì •ÌZv¿Ø+/vž1U‚ÛKy#Òb Ë}’¿¸NŠðBòš‡ßüX½¯/RTeÜá(ˆæM /Ù1šÀ Ýv"j±¿pa,ƒ.„Ù»`bê–€…Æ€¸¼ë)»¥>1 ’_bnnT‘Ò$åÀá‡'ð¤dZ¿©˜"™À¥Èº8‹˜ì„*¶üõÎÇ!Õ4¡ßEhE­—²0«~ nEéãé`Eµ¯_î3m•¡ø›®¥j©±Á;S6 çy™¡X´"ЦüûÒ‘¤žI”i %ÞØÀaXîP7XÃúEuÓu$  —%ðÈO€‚½Wн×]¨zfY (ÏsLÀ½ M?ĺkõÆüJ" B[K %ÂǼô)¿Åê>‘c)ô¥&\v´Å^85&ÎñI Ø‹Æ÷ˆiëÞŒs7“9W^ôWZÓ~€²BúüÏÏêAZ_ZB¥o¢ç3N=ÅOlè£÷j_'ï“Htfú¸&tøep ªÃ:;Bí"!àÅ‘© Žû†DYˆj4ëŒZµ¿ŒIÕCp.DæàÂ^­Rg]ŠØ»ñµ–{ 4á^Ó^EŒ&¶ëÊ)6Nƒ‹Ù¼‡ý»ü±¸¾È‘FêV´=ó»Ùì—ÕÞà 7Wº¥žhD`ΟÌñƒ˜9ÆÍ#{ÿ pŸ8•0åw{q…­ÜÛº5¼ n±`­Þ5èà8ô†ó᱕y‘i&ãˆì:†Œ8„­XÔf Ân¼ºq|Ê׆ò7*/„“|I ’OÎl¿±i‘r5i+!n=­¤‡)Öp6B|Ñr¢kÜZ¢LÁr{Ã7P.:³ %gY·(dÿ8³ÀÒ£F*Àóiå»B\L,§ O‹›¯Nx)†œ´yºÚä2zQè¶Þ8BÓ·¸ÀÉüNª”¶—ôƒ…ªÀ¯”ôϹƒ¤_s+×dSŠ“Ú‹·Ç#„(Ò<³]%×íê$ù‘ŸÏ°ÆˆXB ?{Í„£:›„0„Þý#_ôñ«ÅÃCÖHÐùÀ6w3ïn¦%ŸN–ßóBúdžn—‹…žã±imm …"£4VlLúz¬ "dð‰â,åù¨˜ú'c2¬¬EQÓŒ¼O/ƒä4)sZ†¿óM*Í,…u<)΄‰áÅÌŸÌ€:§m>9<\Ûu*º2üÜbÄšžÂô&àg¹™}¸d’ì&Œê×ÄX•rKÆÄUÅ3üM*ô¢L$ƒ Îû1­vçùßÒ„ÃÚO5fµ.8óu¨O-Ï~J:†¥QVJLT×ê’lr/ºv‡{hKè_ ¡¥L„ÙÙeÀ3•yóÌx™ k/ ¨ÓMPšG¯wOñwOÃ2®ya‹:Ã6›º¿Bm5,hØ4·¾d_í–„ÿ râ ïjsüÏÛ=;í“yt_N-•þoBaè–óAôgÐÎJ»OV+IP|#ší’²Us‡œÅ¢’Û»L“v=’¯ø˜| Tb°²Ñ5³!y½–¯ëD2åôkV™fˆžßãØdîÙanŽ·âR?ëü5J|Á6”PÌió3fjï"*‹I*$æÅ¨Öõ¡zäùù^W'*0BlU5Y^éÝÃ<Ïþ)ºÁÎ –š2¤·m;-ðˉÙÎðG‘?ÿÃ/—ŒÌRq‚Wv ûÛZάîר& AïŠÁÜ: Ù°ä ê„}}¡¸o4Ž.°9Ʊ'¾+¬+°ÒÁ8¶9ÈQWèdzçuQgë8~®'’ËÝœ2w½Ÿ| ‘Ø](ñ:€„!òbžhk·ê]YtŸA ûÕ0ŒsýFéŠ'}]ü!˜Íˆ{¨¸/`V¶}]+YœÆ ZÈ òdŒ(ÊÉ!} 9ÿ NÈ8oý·ûíOÙA^kÏÎÝX],¯QïÈ#¥Š/:ýQгîS‰>gÖ¤ÍPä±—³-/ßãÇ/K1ºm®n—)W®KâþΑØ_dÊ dç˜Ñ’˜GÓÜÃdõÒ%¶@ßœ€mÔÁÙ<| E˜$…‡mùK•[É=çÃ%I•e®›ª_4<ÒÐßµBJ[³Z€Ò5&ü6y·Ê¨fJÄ…A9ƒäJ§âØ­JWøC•‰R©F÷=¤ÎýspƒÿjyÝ&" VަgVäR ¢³õÆ×M•3àŽŠËSx°ú»õÀ$+¶¡J¥ ‹X9‰ yyårϜʮß+†¢Õµœæµ¬Ç…Oí0vÌuéþSu´—uO8&ÓPÏþÿIŸ:ù %PE#ß:ZVÖò“YjúÍoÚ§Ì|¬:fO”r~Lùës!¿ODÅ#u—Å|û~ á Û¹†i0¡¨Æ½7Z½¬Ç.Å™)èékþª¦y"*¡Üôû—¢IüLâ·é†´ôº,©ûtû«ÓÌ!}FÊ^\7¿§îjJ—óçv´v»± tF)á-2ØÅé0׺ ²Ð,]Í’F%<$˜sÛ˜^Èhm t‘'ÀayÝžtx/€-¾9e‹Kþß’2uI5†§zH8”1hn|nÇXî“°7øDj^׿új·l±¬„þ*ió¾/³ä:…+¹æÑÌï_’vƒ8W’{I`ÐbÃà®dqíøªÊ¬ƒ+ùy˜7’à‰DM+2É õH›ˆÈ™ÜS Bë}ë±´=4 jOÝõ²1êx9»Šü6x8ÃbÌ&j¤[——fnPÓ:ÞDY!ؾ6´Ñí4¢[ YÞ.žËK]íVÕ5 w&j¡Çí»PÙüÿ-ûZÊySJªfæt½ÈÈV£¥Ï VÖ§dmORM&è=Œ¿d‰í\ƒ*Ìÿ´ªÙüçm‚þ²øíêóÄÖÇçI ®V„Þ£ ¡ý¼ô:QØr_0Ê‹¿¼´0òæ!Ù'VFÌóF¹ŠZE‡Ÿå¨¯;T±ü|£>ŒÑel„iEñ¼¨0iÔc4cò%Ks±è\ø”NÕv`~’†£n,0¬rPD~ô·°æ%BµúúÏüL­éq¶‹]ržØ=ÐíÀŒÞ-¡MS+1•jw“4Óp\´ /cÙPþ©í‡·Z ¹Œ†í)¼üqù£¿Š)ãHŒCcCzä¿JR^’-=eåœ ”ìÑáÆ»¼ì1koZz%ùÂßÑóêDn}Œ%]Q\oKæÀ¨â}W¹õ©‹‹ª÷&rXŸÂr/Óï.— DcâÙíŒ×i7u1P‡MgþÏ}Ax¥?Ìs_…í2ÆùUZk).ïû“íüG[ÄÀ•J¥¹Ùý08•Õ´)Kt&(tü£µB¨Cl¾ï¸´432•ï=Ó´ê·ÖkÔBð‡h#½CüM$Ê™0–p߯ÑdJ½öë8|¸u LBùi_p¦e¾Ô¾ÛC¸…äÐ;ÑÐüÄØŠ1¿Ö cq·»6ô¿¬íÒoXöPW©)(‡KöÀ&|£g9^-Ö¤ýýÈHyȸkô¼„H•±÷µ‡S[# „gA< SÓŽ–®pŸ¤ZÜD:žwð¿žã\`^<©C±y"QR§ÊˆªKHm¶âŠÞ—Ô¥%Ö2¹:ÂF6™dÙ ¹x÷bˆç‘‘ÙÛ|ï_s(~è&´fD7Úc£#K6>â)È—?9± RttaÁwýÿ½š`Ô¤ “†¾É»S¡s“CÈ;h „üLì]þÓ3P¦„˜1G|§ö|33V4±‹ 9°‹*í u³ÚH¤ÏÛŠ¤D H]÷Ã÷úÙ ºß¶Þ[Mlîߟ7õЧŒ“ÆÞjoÎ'µ o%s,ùêHDp·ÝZ¥X~é±] $ÔN„hªÿ8E>tjð|Y¤qaËT„Å«@W§Ìö0Ó¢¤O'ÓMŦ€7õŸ¦sî–§ÿŒ˜ü½ÍŸìJŒ/¬Þy=Âã'úTéäX@Eiñ·5t  áã·d¬áÂRĆÔo†9ê=;1pCf½2ŒP·µ!¯KC(ãP”ÓÔËÆŒ# s“LBã^[5ü|­Ÿ=Žˆ¯g)â£F{¿t\ýB“´n*³AñÜÂj©¿ÑÓ­•LT~µj·ƒXºG òëÐÖÚò²Ãóx€I²Q7$ëË5¨èÔëRuM8{»ûÒnÐ×w¶Aâ‡ä*Bzk^Û€~^8 Í£ŸlïèS3Z %¾Ÿ­‰¿H8t9-æDŽRe¯€‚muÚ¶÷¾ŽÕ>•‘ùusDœ­õæ<ã¨g¤€çùû©‡È»ÕMÒ1…­vWX邈Ë#wºš7ëò¹ä•²GC°ºéujm–nõðÔRHDy–¢Á¸«"=ÉŸ€÷»9øâ…hÀIh”Ÿ0D³•9!I¹÷\½ë>ëE™Ë"£d¬·×ùþfa¤©%•^*Y«æP¤f~òœ™(±õ7!«Š¹ÂŽo²Plâ¢y‘©·ýÓ¿@9ÙžŒòbÀÖàœ~f)ÙHØû68õ&•ììüNPƒ’#2²²ŒœY¡û(ñ„.¨¤Z•ԃ̞uÅÊ‘îRˆí ¤œUQù{Ç/‚ÕÐ:ÂI®ç9š$ãdýØ>[|‡5E®9ÑB…2îé­úÉà&”¦üøúh´¹³îvõû©p¹è<ÔËèÊ´ùHð¥ÔëèÒÓä]¯"\ÍE.Å Í|ÞŽÔ>&/WK“’ˆ¿U¼é•þÔ'•×mÛsyÑÀmqØr±ö Q‘/‚ý³>6à¼ç\÷ öàáŽ#&.—Áì,þ–Ô†=ch–x"ÄH\œ{Q°GÚ‡4êÞûë‰Û¼ðtjûXÊ{‰„%g°¢Xò¢.ôP­HøÝžV˜ñjù/È;ªõ3ïØèM&¤Ùº¶t·àñüqjf?£Ð}‚­ qä6¸<Ñ“õËt!Z© `Œl_ŠSÌ)ìͯ:å_Yär‡N½ŒqüLÀ45šD$`ìÓ!¯,?ý…ÎíeÜ×-;ÔS8HÄ& qWX”/½fDlpÉhîtVp3÷q,ihÖ÷ㆉ­ÛÈ›ñò÷N%„?Ö劦o÷°f`Í¥8ë6 §tYmýÂp÷ƒÕÑñ1ušo‚íEkò4„år O«“æøü뇵1wº½å šØ9C¯„å;^y[bÁäý±7ËÁFz³ÆþÌ2buˆL(ûñáw¯„h»Nüb´¯¤NÃ;åÈ%ŽM…ÂèHØÓ¨ˆWŒÐw²C…F¶•;°‘0:Ï鑸 f3ÖœõWÎXlÝÒlÂ,<5­ü.Jš©øðåm‹‰BèºùiZKM“qug>‰€º›j ùK*9dçf¤,QU!¦Â7tgG÷PfêÅÉaÞl÷œÅ$ä·O鳘Èr”À/XÎjðp5Ñ'Qº@ìÁxÆÌFjž A£ºêr±5ìI´k O.^dt\ÍÕšͱŸ’DÍ©¥ðÜ—›c’qû}‘çãuºJH’â·Üô¯N <.ä!(lïä¶L–÷ˆ/»Iy\S/„œW”€:™Skß n º ×ÝŒKˆt‰Þ­¾`ß=,/jä• @îv»OÙöÒoÝîÿWí<üMXÑçè<ÎÕ?Ö‰þ 4dá?ElÂ%qþxÒÉËçY-ÜÓ|Û´>‘&šüÆÙÚöíhÓ<–FÝÇB’–¬L¯DmÁSô#~ŽüJÜÂÝÕKÞ¬Dð%¹fA°ÞèK^Ÿ0=Ôƒ»cbR“`5{Çdó°O OÖ2轊%AgŽŸz)÷¨} PJH·£´SõÁɼïéìôô´M*ÌV”3z"D&2à@’ C é…wü,‹—ôƒ÷¤ö°iáG1Å8ʾÌ0žºu4ìÊñ wX=À]Êô<1zÙ-žc·ÊÑD˜?­íµþýæ ±ò f£ê0üMT¢£Ã»W¶ßžiyÌ0â+‹zÀÞb“ø÷ j ë;â÷¦ZwÍWÖ¾·÷K†AŠbÏ5µ<„{à…ÏqŸ[›Áö¯=ºÏ)2ÆÃî­i#š œ«µ Â7ÎÖœ·meš;_\@À §ýI™»þ4|ö»AôJÚìî¹¥ïtM+ô65‰qGýcbÚXÁc™ xé`ŒNÞ˜ÅþÈr¤64Õgð%·Ùh"-¾Ö·*Âæqð«ia[‚±š1±÷l-yø±|}¹ìCŽ…*ͶÄÅMxêõ–wÆj¿ˆt®‹¬8ôDO—f(d0r;µü|¨›,’Àð¯zy»r‰iq$Œµ”ß}.›Šh6Ä‚™FÄÎcçGÖ™ÿcü‚‡n¢¨}ªÙ ê vn>æ;ô›Ñ˜¢ä.iE´ ªj]»–¯\êãöÑ(xíù¢˜OK_Š‘Ôh9ÇÉ7Ðæ€¨¸É+øÕéÎGž†ŸH…½ÏoÂãìòýgeÕ ‡›‡hÖãRJà:å]ÞÂý]½|hB ïý0t_=¾s/ûÙ »ìdMj”, ÀaVäu1gˆ´å*ñþZ‚¬:­³¢Œ"ËbÏPã-»b¾iõ`aÀþÔyx´[Pez—èÊ]n“Q±9Ÿ*õ!.L¢Î–úí¿bpë¹ÜQc²¬ÓP¤2ž@„Hvâ×Í´)HðZÕg1ß“ŠƒbÇazv¾3Ÿ…ÿR–&†gzÌön CLN/B½rTôÇB¦#š Ée5²üMõÚ9 w@‡ŠÚ[WÞöu`»î0Ü<lÁžsÒPW£!xÂ+£úÐĵŸÿ›‚²ªW 1)‚äÆQU¿q]wÚ­8÷—6×b×ï0ÍCC<äx5ª«Ò^Íòñ¦4MŽh¬³DåiäöâÒuxmKµ†#H^Èîºé­h9Ã÷jÐoºþ#8 ÒrðEz}¿g=TBŸSÇ8_úiPõk˜þA> ]•ÀQ·x4­ 7’^ÞÁß‚dXµyQxluKeˆ$p—¿öE˜•øÍ6+Éœëh؃·¶Zh:ç/½/GïÇ c-LKüMWdK]˜äã[ÑßT{¨— LV› @…©ö¿®ä^µ™Âîî¦tæÉ.»ÑõÉLb'¤Mh_6¸6ó÷?V*U¿âÇ-4ƒ×Ú:ÞÉmÙýH¦™Ñ3Ð/U\”äÒfŸulÀG.ôR³ÌƒLÂ÷ið¸jûqð2¼&w(Väë0¬µ"9¡ú"§ôj§ï²1‚/ˆ¤‡¸áÐUr¿È'èØûôW¤Ì€Ù*‘R?Ÿiú@ޱÇ.J5úwñÙœ¤¼ÕË™Šmv ¨%#«UÓxtZ»;Ûùäz¦3ü±ñ´3g3~¨å+™ý-D%I9I΀¶1#âÙ‚Ïh&}7Ñ@åsÐ ¿£Ä# s¥2š5Z+¿!ý:\®×´=ál&‚¦=g†ë  "ýeî@ Ç#™|„rvžÓ^À‹[˜æýÉ%+ý-f:œ†+¹À,ì}±æ«]Èþ±?îŽ,“.³,)Pª ÂT2ñ1ÊCȃ†Y³½ ¤z+br—ž‰TeÒ覼Yé“”6£šÿ ð÷¤^µåìWg¾qÒm3IïyË‘“œ½ëZ4SfVŒ³|¯Gýñ Iþ\‰üXK«î“ì0×Ó²æúÆÆ¼Ø©vtή­âÿ?J̼q4_÷é´l:ºð4þׇ¿3z5æZÕ·0y[ŒblÒ‡¥ëâ”\?œ};˜Á`ÒŠÔ Ø´¬ù†<æ)ÿuÛ3Ch7Ì®ôŽôÒ0®>¼¼íóز{.¬wYüW~kHba“6˜Ö ¥'·Xä)’!nŠäŸiÕy*a6 ¤“‰1Ž]ÏÏ -•Öµ›‚k¶ ûçŠõèûDø©ÚñTüŽ¥ÒW Æ‹•éÙ¸#ç™ÇÆ0 ŸD,‹áL~ò7ieÀôx¡1ÔV¬Û{9üL¨@¢Kã’2ˆ ¾‚w×gám.ÐØ-Ŧƒ½ËÎ4uHq ÇpÄx³ rP¥—e4ZÊ¿ `ª¢!ªÓh¼ =t!˜å‡Åk®ÚV äOØ_G´Ênƾ¦Ô?6—DÑ}[Á’¼rsù¸[ÁIJÒ*2 ~L§Æ¼Áœ+»ü’eYƒ'þñýf '”ˆZä%H] z¬–9TAIêq9n°áý9L›yŒ°¶'+Sß5å©\tW°×Ç»úõ1sW±Ôá…î=+~¥£ý f©x¡®d^rý™“ÕlÉæo˜00Cur“é_wøÏµ¤Ëoщü|ªQZ’à¬u™D½™½‰íËa—åy iYqlë|0M•R#å(êYA+ˆ¼y³ÈÓí±.(¾qÓ‚YârÏ霈oòÀÍ¥—’¿‰5`L(CÖÕÖ°ìÕÁŽ¥s›F 3Ô ¯U"'þ€@¦qæB û»gÇúÝÌ”%¾W%c«ëŸþcª)ÍÕÍõâü¤ÄWΗ,…˜Yl’ (í÷ ˜˜  XwÜC9®2îÉÉÁóh¡Äݫ߄5j¦³ÚEŸAz˽#û¿´·:´ëc¼F ÷²J!nÛF•ÓAø%3-úÖù¥g—ì `þRŽs•¬¾÷KJ³»Èéhîœø‚E#æÈóæêÁ£¶ÚòÑõ'8%œÏßýH_ X|x[Ï_%¬P³ü©V¬R£x~¸î0ìÙÅŒªÄcŽ£{rÏgÑÃUƒ:ß¼‰=^3µêSçoO—ËþZ—<ŠD}‘Ê7g!fø¶ ½¸ÃZqNÝVGJ²ßE­|kAÚ?aÅ‹½4ß ÆJ^zJ½f:&°}—ÿɵ2.3;é)?,ýÊÿ"㛋"iå[ˆ²f 擃ϙ}µ+Ö°´ˆ1ˆüìÛ‹¥ðдG}%üL±I4vÎpXíyz5ØBJ¯ä±åÎ%ÌyûŽO_ÐüÌJ3…÷-0ƒ»Où=ùõÕ†°Êé* "÷‹CjÈTÚ¸Œ¡çQÒ7aâY ˆ‘e5}$ý諚+zÔf?7ÃåÛ g»šÙ]èÖÚ)Ü?¾ÛPsrKV ø#OdOå«ÈÜv>²{ïêâ 6-äóî¢pnáÆ ô§˜sŽ|ö¼“ª”µÀ&¸3[IØ[?â‘| «zmÀÅ£Ÿ“yé[jeg +#”=v$¢‘U.cö$Èá2ÿ¿¢ç¯œÐZ}uV9 f '£œä®iK‡móoÇ6£c>ªã;¼ÖÙÓ¢Õ®ä»90w†Õ¤S4Ñ2+mûyeAç'm±ñ%°š4¿>æÔƒ—³¦K§Z ò !T„¼éNè»Q?¯êI©èë˜×üLÈ*¤J¤™ë=&6(e)ùl­—LåÅSö*XÀPŠ·QØ(¨˜ö°f—vSR¤µ#¯M±¿{'ÂÒ uQp‰(ÇL5@½“aúÏ»Ÿî]\ö#×¶‡h.>΂ìºÉ$®XR€Yö `yƒ‘Mz ƒe™aŒJµm2ÞŽh˜üö35í#ÿ´Occ²ù q›RÚVoV±N«Àøtq߇ ›¶ÞO1g<r·¼(õè#U !‰‚±ŽìeW:K>æÔÁlâ;Á#¾8•ï”åUsŠJ1³³8mZÛ÷´ª¬åÉ¿öH+åÀˆ'›GëÔ§³öšÑüLã‹pV7Gh TøòúØX’‡×´µ€>º@ߘ~xÞHûgû2ëµ5ä5QœW[é¢k‚òƒ1ø’«Êà¨(œ‡Ú ÇÂu?HPàȰs˜ej”ââÔ[ë¶`µý• l”Ï­J!Ñôc6-åòÐÊ¡³!b0eÐÀnTšÚеí #ÄH¾Íî ~m\ôäÏ©õ°e¦ò†§QÚ°&‡4þFsþ´Æñ\ºÏÅy™rצƒ²ÐŒa6‡ªl(©#?7H^‰/š”ÇÁýš^+5®ñT$}kîƒ4QÐ6·‹âï?ï1Ôp§5oú—³ÃÃóOí®ÉD$e qQüðÒ7¦ƒ9k­z˜ùMS7-ƒS¢ûLuëzçŠÑÈâž(m‚Ί¶a¶1Æ‚- d2xÏÖŒûä·°…¿FÉ2Œ°ÌõkjdN»™Ðu0£"lyâ0aÑ«ÏE:88`ò[Bì†À­Ù´‡­ }¾8báN~hì·¬Nz ŠQÁ0¡5i7pÎH”¶BÓCe`á÷! <êDƒÛõAÏoâ˜üv¢¿õ¯›4ÌÅ"2ÏàYàp r½¹¸("Fж”èüMuÆ"3‘-/ìÚD-¾òßNùW´o_ÆÿRÏ­iIò a[†7¡»JUe×àIÊ@O“ü|¯¼[jc8é&Å,h¾^M“zª\´‹Š‹|øË;bN6+}Z ÆQ¶›_™T\¢}<ÕjS)_3Ä…F4«[ÈwŸœh;Ô³WÁ¸Øu8³x¥è( ŸÂSöæégŸ•eÚD¼¨¸…Ë0ãÃRÌˉ£¼&Dg2þóÜ#J]h¿<„K?p;¸.Ïäé`Ó7¿zgbØ]ÄϪ3>Y¼írf,«„ÄõpÈê¼+àØ-bª¢Ì“æEPÔV gtÀÆ<þp ciux¸ßc­8~å:x3è2?Œƒ{ ~ωŒÈ9+lƒÿ.(v#òŸœ‘öí1ØG£àÕu3£Šôâɶ7G›ÑqñÇäT¯ËÐ-J¤†ÜQõ5€›ŸÚrAæ üNKDý‹ÊWM×hñŠÈÒ÷]V ÁœŠ½é–KbµI¶KPDYw]ÓšÐ*\Pà„?†…õ´³Rª¬˜gh’Ã<â ~"4‰–Â<ŽšòJ AY·A ž…‘1¸!,Ú3sP0œ>‹~þ*ÛQ¨ß,›=ÄÓÅì)¨Ä0}ïç§€°“²b Z¸NC*×5 rµ@™pá$ו·Û’[ p0Ó¸Ž@ÚY}Ñ–ke¶Ã &Ø©tu k]Þ€{Õ‹£åb¤Þê¶”‚rX{7a?ŠP½æ?éòsòWabó‡sŸ¸ Vª•ì_Æ`Ÿ}IWyˆðªÛ¨›4ø 1}D¼â-}:ÐDÖÂEüM[e$ê÷&PãÄôN§6]À5·7°³s-²úXÏ$yýx…°*¿ð¢›mMRÆ<Ï€PCÙ|?ôHú}‰“”ÃóQ—`p« 0QB»0=rìç® óäÞu’îøI@оɭՠ[yÑb-“…à÷‡ˆ2kl.=FZ»Œv#³é¶]:}Y  ]‡– ß»ÐPŽê¹™Û `¦ ?ø.ŲXÍïÍ›7c(¶GD­Uéíìy~¡Üôé1‡&CŽö/‡ M쩦 8n¥Ü•òî OggS€LQýÄ npq]Ž9îçìîíïíðîòïÿÍçÛÜîìãÿÂÕÑÎÒÕÒÿ"×íóöýÿ ÿûêåèãâÿ¤ÔÞêöïõÿÖéâòüM!úôé:â«”hÕ³uÓ3R“T!óp&LÞTÿ%$·OeácZð¬Ð¬=öj$÷ëÐ@W ]ѲW&âÞ¶=)B–¼Üç½Ñú1þv¹À° )kýˆrÚeý‚î2k}ØŒÞZÏö xÁè[™Þ-=£=*_Ãô"¯÷þ»‡èu[äKakÚàEpoþŸ<þTý©¸$/®2U1K‚ŸK¿êsÊ(X´TE†å?®ùb ZÙö‡¹r·p 9u®v×ót¡uàYR¤‰¥¦ï5±7ÒC°¤ >Ôé÷3k5{¶ŽôS/üL¨:[/6‘ÀÒݾ a\zÓCYT•Qɰ‰)1`·Ô_žîõ‰¤Ì«LY˜0¶g ÎúáµE%²¯Ð_3`WoR¡_2æš?x‰×›[gÞ‘ŒÝ&‘‡½§ËÑ®­gl”‰„ ±îdoŠ5Å­{«8–T ‰’¦ŸèýÛëf´© í s[Hªß´KËgôeYià ‘=ašº}a¡v ÅĤ,6±¡ÄµÓNjøÂöúÔÆ+XË~HªüÚsðWöù°¾fâÄá…¤ˆ)]Á9˜}øŠÕy*;¹EQmBüL«3‡ 2CC#¡M˜åñ2 Eso¨0Þïìk ¦6óqìyù ²³ÄîÜb¾ÛBÞ§³‚Ó•žB.ƒ#8åÒSÔ«a×ê€8lˆ–GÜ#ÿt­¾Õ¿éQýŒGäu7Håu •ˆ)ºZipô8)ÛŒCá˜scþÞco’žŸ€GõÆÚ©x¡gŸ †7Ni5x›Ø'@ÀšÕ@§—º£¿†5lOý!Äñ)l-r±²?Uœ½8¤O©ìF@¸$XÓKÍþwÖrÖ4,CÝ­m‹]Oõ3À¼Á꿱·÷y½rÅ U2obüM„*!O”(#°rOø9Á`ÊçêFµ“hØ xª­©Å±]©€†OõW$÷`n@ùæx8Ó«ÃU¡ÁRâ]«Uá‘xÌÄÅ7Tr)0ê}ÁcÖæèVÅŸüý¦‡ˆìAŸw[“š¼&ºúYÓ‰ æ½ÎÞU‘'b‹“7ù*r×f¢øSxid£ü ™ÚVÝŒªÔÊúÕ. µ®»iÆ/×õÒEw‡§àÑýŸNžÙŒÛð¾ô;6׬½1r2´˜ßC §lwéV* 1dIw´ŽÂ†Ó³þÐbÏÙì6ßm>”Aáv’.nü5ð‹Ÿ£®“MAãÅjx­¥}ªDømß| =(˜Ï"Úµ™æì²Qq³Øxê ¾-d÷†éX ²Š"‰gIsý>Ç/¦Mc*RdÚÐm°sG|2ÿš¹Öv~yÈyXíšíŸ™ßÎÀAq0։Ȧ¿|HcúÁ:~"ŒùMµ0✋ÏPn'EãWËý¼õöP¥†×å©w¸A%8)I"ì/µzÖúv·¬k½/Ó£œb4í¯ç¤Í(^ ¸žžKvx58úŽ¿"ÍeüIbíV,uÚ –2nÙ„bÖ7ãiœ ¢ì¼â£üMSêìh–¡;“ gÞWñT–æíú(¨ŠñkZàŽ2 ÓûqŸ4ÄÕ "V#Ÿ#ÍäB%˜H>†øEK­¿¾ëIdÑ04¦ŠÆuÛ¡etj”e3ß­×ö“‘¢y\'ƒx#d5FéƒuæÒÁ±úŠäÕÃQ>Í.ã º)'I?.M+D–HÞŽÈ E)ñ‡Ó ‚¯Çí…ÇÊ b^HO›•ñ;”;—Óèâ˜Ò-QŽÑ‚F3ê–“àusE/w­&í\C`k0CP&+û*L²€¨÷B5¤r—‡Ü ¥9ÀwïødK¿ü5k̹-±GÀžEi 0²@£óÕ§ƒJyÊÌ’1ö™¡Xºº¦oÖ¬§[¸ó+&ìªK,8’Cï8ÉT0:þ©¨”÷hŽôv_^4'@ æ2”àšµ“XpÙIcŒ³´¥ 7~ó Q5ŸRQßð¿ÞA™v¦=lÅ%’\ÉÐû»ì0 7AŸ§q%í¡3ϘÅ7+?QÓÁßí+¥²•ø~B¼ç0£ÂW¿àÓX kÆí+ÅE(s×Íæò²*t´Ùvȳ榞Œ×7Ð![N’ðxÇeÆâE¶¤i)±,(FNüHý}hÈ4éacÁí“B"ïDœ·ÝÊ»ÜW‡ÜÊŸŸàbHCÎO ¥§š]`yÂIuîZñ,#›»Ž…Ì0i”Ê%UÆ4Ð¥«0Èüñ‡wå}Ö†z|ÎI˜ÁË>qßcå ¿ቧRæ{;b±„ØFu¶'ûÃ-¸Bð¹Â#.Fóöö ·S…úa¡rG(kÓÂW•GÜeèJ«Mz±ë .%|$EóëÀ’Ád{úFvã]~÷}(»è(è‹ôâ—Ðȧü|Éî?ÞæÚI™Î¥!6y5*&‘aóÚ\A³GÜ7Xù࣌—æ÷`èf*óÁCˆšÄ°’n”/Ö1KÒ.K€iJàv üU‰öΫ„«Œ‡-l0Õ¾b'êQ$â@mÅ( •Ë$-´¾Ã}k?[å ƒ/üJC]aÚVökC›!ñ6ÃU¢øŒdázUž‘k-°_l¬ÓöÕÿ¥ÎqrF‹âøßØP½‚,ç#R?^çBµ RH³¸ËŒ„X{ÔRá³íðÿÇÊ*’Q¦DÞšdeÝjÉ®Ë:$‚C*LÀtòë‚Ò–º0VßR:(&]'”£k´x… ~µð}c¬pÅ\MЗšFCSœjYðA bÙfwHê`Úåësñ•@õûÛ¥‹å¡+f'×9¤Ž«”Ù6YVãGÓ‡qyï¶+ÃÐæÁþÂ&þð?þéÒz§%è¦K)ãçÝ9yü|¬â-Ñ%J`‚ýh]ÃÃ9Ï[WkØM€ ¬†~¡ç þl¡ßÒã#CôYµjPy…(=Å32}Zk“ô§‚éFôˆGÛH¢„ÕYÀµ‚iyp'ÉxÛ‡€­çúV¤‰ØwRWS>pÿ³XíÆ‚Lo~Ž©Ÿñ^Š v)쉬 dL“3[L–_£¨@{:Ï[×ÚÙT 6oñ[ˆÚþîíí§e˜KùÖ3ùr * j¾§—bEÉsž±Æ2ãÁ‹ÑÀ¸d“á[©"ŽÌ‰—(Ÿö‘ç&A,¾qK6·< 7AÆz˜@Hu¶lnÀ ˜PÒÚS؉eƒ?R6õe3H7YŸØ©æ #s­âÄ$_ˆŸS6Ù ˆ^‹ý¤!ï4TШüÝ;?5«|Kl‰(ÙÿÝàCŸÐ„!®KB&ºí[]IRêewïîÙ—i®‰ƒ‡@ÂÒrç6-­Š›{Ê“Â@ˆà\Fß:…û¼Ûs6á˜~.c­L·˜“GA<馬{ÄÛx‡ -S¹} ˆæƒI±éZæ>!Y6ùïìÎÓ›¨PØSÊÌÆs­ƒ<]&úù—jïVpk©q˜üL÷-w¢[‡Å¼+ãÞä2œàŽ˜§1ZL¹€Rø< kƒ‚£… ðŸÕ#¯ÆMxXàº?ô›ßQ«óÑ úa`ðÎùÆ÷ì{¥X'òf H.^½À¢ú­™ ûÂÝikP¸#í,aCX¥›ƒ{ñ2£›ŠÃÃFt­%ÄÜPˆöÇ¢,è&ÆJc ûÏu:}Íy…؆¨ wdLb+>[ ÷çPZRR€¤±ïøBáÏJ¡ü!pz¶ [¡E²%r”„ìî67¬çga1„W„Àw)ë* 6á6×åb™®7 ³ a1ýkôƒ Ç*Sm¡å-ƒÛ%WÙÙñˆ ŒOcÈE¹£…cÃÔ«Çm±Ç4¯tC»²¢Ñµ¤¹ùD1OBYØâ²g"£æ8£l§ùœ);ñ_—üL©º\:ŠàÙÖYCQ Qã®Â­yR>Ðo5#ôàrÍlÃðéw Ô‚¦7·÷lÙš0)GJ6$ˆ© ýU¼þ¥Ü~ŠgO×ô}bŽ$•¡ê9ŽéóxîY¨á¼Éã²·”WJŽøM®¶AÙã'ªú­½¬m–‚Rã"*ˆþ÷áÖ* §mb¯cÁï¬"¥àý"e¾UÕÎYæs·‘ÝXÞÏMv„îPÚUIj½~˜ägiNç7ˆC±È4rÂ@åø½´ý‚ß{Î0ãü¡P j“Äõ"O¢gXüðÐáÚXDEþÄ€ÃuÐLŸ—¢X1F2Ë‹ )h>ÛQ¸€„ÆD½_B_ %€¨.JÝÁÑëÈoJ\.÷OøPžO4Xx6Aw-]Qq¦¨Ö"=Ô@“80ÌhoFw‹únnœ+š~ž 9žS_t›¡ÃÃ5÷zúÒÉVÿ{º °’NnP OA™Ì«2D8ͬ¬R¡ÊXÉjµR¦eŒ7¦ó ˜²ºb×j#lŽ]æ…MYakÛWØSø<Ê›/>…©»¡µç)¿N”²q.h÷íµçݹ ž(³µ!ü|®¥ÞÎñØÌ/rÏÝða cú«¹¬¿#í1øoÔ 9ŸGÕ^é:!Ác]mjŠØîåí1=çÇÓîT!:IozY輸›ƒÓïõ[CY<5ð-–L’•K5 ´Ú_ Tð‡Ç¼Ÿ§#âOå¯õ+‰ÔÖGeìòµ¬u?YÑ®jIèQÅÏ–-e0dç„Ï›ØJ¾º ÷¼´—ãû¡‰S1ì`Hw€:Ô=±Oø ÉÑWƒ.F[7@àŸ}’x׺³æ¾¦\¢å`xoòhgË»ÿ I‘ÝiªÒ}X}åÈKF PYÜMä’úA °Zß˃áN?ð1©ˆˆH¸GN€·û¿®öÿffãmÑÖùŸ•¶•|W mZ½Ý9F5Æñ Þ'ë‹ïŒÿ¨&ýPÇY7ÈRhÞy ‘n´DâøvþûtÂ8\ÂËAKfœZôÚqÇØ^ü:†ÙÞ¸Û= 0~áójù5IŸOúMQâÕ0Í‘T‡Œ„rê(gÎgшL7wêì6êY¡ïñ #ÝBém @Í«(¦‹¶ÜÀ¢p'>i§T’A6¬Â4чTüLÓ„0ÔÐíÌJÐhHCžÿ^§˜ž¤ ãN¼ét…Ðè9t¿W3oJ.þÿXî–ܵ Žp-²úî](Æò'(@=ïhñ“z`hØäMF<ïV§3òÜ€ pÃ;3uZ &˜1sžxbÖ¹O²£ 9/=Bd߈(xÉ*쓊"äžç!9úGìVöÂÙÙ~Ž~m?¤­‘ÑÃüLëýmv»B×»¼p,Ôˆì$C»Ól$G;ö¹Bçiê$ÕÄÜL„êÞ®9Éz?æÓ°ù¢ƒ@XÇ2{îï+½y”kIc¶ wHêG@zË@ü ¬ *ù0K–p)Æ›ÔÏn˜,NÿMÁô˜I°!Å&%ï DûÒiÌZkSŒP¼•ø$ýǸOÃ/”á]½Þ6¼àë2÷þàÀÛ‚}Ô?—[l&eP[´;€ŽûýÞÜ$ú;Èùà×½h 7²ö®ÂEÎÃî¤úüL륮-5åY}øûƒpâ^®Ò†úT OˆE?p²;°”),ò,íéËd ƒ=¬¬šHÁ‡HËz‹~ê5½fyyæ jór'‡ÖG=È=}ã$g$}ÛaŠC;›±ªe{<Óe Ër4( m'^ãoíb³üp$íäÌôØ|ì‡K¿Oãa¸ò´ÐN î·€I+3IyõŠ;±©®hcù]Ä&.dw®E´1üIÏ‘Öqk|œ•‹Æ°žTCÛŸe‰ôÄÓ«§Ò:Íí`w@füL¾ ƒF}Ͼ  ‡è`}ÝÚ,™‡‹#3î<ïc#$*1Añº˜m‡È ’¹r]cl>åáêÒ–oD…uÀs0ÚÀÙÁ¾b„Éù§ÈEP嫱&da·ý°‹1øSÆ¢@ ÁðëjGLóÞµÙá woþ×¢G—ü¡R’?·›sâ¦wk€¸ó3Žà ˆî_Ú[ÎÈE Ì[Œ³ÓíÂy+»ßœhÌñв„¢ÿeÎqÂàçó:Êï\Ú‡½vgòW&±ˆÙ!Åw«ëŒü{L×±¦žÐçýYjøèå;úñÞ¾Ã.y–z®(±}–Ócj¾e€¦êS ôß¿;oD€Bwx:dy…«¢«ÃŠ˜×I¡A”5>ç_úrÜoÉTÀóa”ÌŽ[LΦÚ*¾lTkb÷œ qX3Ð¥·zô]‘€ØÝèY5¾GéŸÙþú‰|óPH/õ«ù7ð¨Ê˜·“.¹iq0Õô¶¹š#³ËaÜ5Äž%A˜>]ž&l·¡²é§Ê%¬âƒh é0è” ¬n¯9”í¾j&~ÖSÍŒW‡ U;˜rÿÚNƒ ñùË6¤É„Êãð©/¥ã Ÿ#Ö3Ö¥mÊy“oË>VêFŽ/]ÀqW5ä(­‹˜ÙM·?²Íi F^EèEüXÿØtµ]ý`dCrH^³h ‰O¸/x–ì,ÄdL ‡+Àôç{ÝŠéXêTqq[¬O—\(²hŠW {ó ±ù^’Ëg|Ì$»HúúêöÉØÄ£`u—äëÚT@*}õ…ž¬h ÌÏås7‹ öʶ¬Q–á^-Æk ʼ ²5˜1¿Î߆t>à*#=ubŸ†±8"ד•‹ç}„ÊzÛÂ=|êØa±ðß”0߬mþÉî:\ûIþNsÓ©˜š8“¸['Üýžè‡OÉ­‰ ¨æ.yüMv¼´nÕ•­ËÒEVœtÖ2*ªþó¹ ´ ™ÎÀ bŒÑŒDªÉ†C7™›AÍÒkÄ1d:YVfë‚Æ>ØX‹dØ©¸£ÈœÝÛ¢½ó‡ò; é,Ÿ%ª?»òðíêØÆ.¶”O:(GuT0 í3œ¦Åi¾üu‚áþQEÀBþã²²r€fˆ^•â5‹wŸKVõtÖˆQ£ÜA4ôž¶Aè*{œô;²¥Þë¹ó‘žg€–Añ ú•)÷‡<øL#*Šñ÷¸Á›R…XÄT·‹°ƒa㸠‚3ô0wTSMA¤¯. $í‚οÒü±ŒßníÆóÄ„fYØùÔ%¤Â‰Ûì© ø¥˜°ÎÁ¢-øQæ#ãKD¬ e y߯½jž,ÀAûq )ÂÓ$á7ô­€™«0‡/H¡º])ˆp×ç­/p¥R+ÈÑÝ,µvèîîêAêíXËá ?$Á¸8¤mºx TøÝ.’¥¿ÙdçÏ‘¹*z%@㪗`ú }ö¢Vj„*¤ûNÒ­?é ´(°&®¿Ê¦SF¿dÆíB&­YÌiÁœOHÎ÷â!6<9ÈËG,ï‘f+ûÛgÖíõÐË©kÓ>b}Éå³ÑKç´;¦>~OüÛü®ÌfÂ396bÅ&­„Ù[Ôä{–³ë´:›½úý(¢c¢ ­ÃyBÞ¶©]æüÀ›ˆ?–:öÍnÕ[åQ•¢ Û†uµZWX.B/×ãï”A‡*h\ß_R•Kv®6ÏöÖÞB,p0¿ª‹«óµó±%އ(`¦ldL¬!Tf¿}Güè°)uV~°„>%E™>åÊÛªÛpaÈxnež«hµ«mádžqÜ:„ g{•lïò+™„4]=Ž ßär†Õ¤D“¦…²ýræ´¤ïxÉ]±®U['#ç] éÞÙ[‰á¢­Ps´…¿õ0ëlÝüIŒôu™öu(tŒ‹ÔŽëfnQ+ ëTáÙiÏÿš´Dê§Ebg•´rñV¸PŒ¬–›º÷2ÚP‡òCqo¼©±Kðâ-•Q ÓÇW¥lâ,‘Tï_ `jˇ®O4IsS[ÛÀkœè+ç3ìªmn› àO½Õ×-f³:¸¯2¶,l–?rΖÞLž.ø¯¹5ÐfÚ¢¤ÄA¢ «ÿ¢ èCôÞkòêºäÔš#1`sÓÖ-qQ Ï“ÌyJ,B¯Ç3d‡ÁwKBÙZr?ïߣ/ÓÀ£’Ü´Éiö(R¯…² ®4FÊô5Òõ‡¥=þ)üÆlÖ©ò^ß“,Š®hKŸÕ.ó ÚÖ­Íà<–†_²–>ƒº€¼Eõ—Æir#ªV7Ü^0Ü¥ësÜ%¤Ýϧl¦c÷¼†'¾.ÝV:½~Ú¶{+šÀ÷èŸÔëèЃ©ºà²ÂÕQÈé¶]D†um®zÓñÛmn ®£@AêBZü~n×ϪˆŒ©ÑqÅíƒSà×XM ý‹›¦¸£ÐNŽð€R‡þ/»¯¢¼«*nØÐ¦ãyžoÀ€¢›ß}6×¼û^Wl~iHPH¢þr›†â3Ìð3!1?ÙЗuÖ7Dv  ^iÎÐkú¢IoÇ6OÝåœlŽH÷Å“üÄ!(-š‘;pa9Q¹•TvÍIÐJÅ‹H-ÌPy›Rí8¼2_¦ ¦§û‡¢µ]Óß0@¨8iËÔ<ᬜ3v’šâcœ®=¼@-Kg Eáá’®^ ‰ÏmbØ Òqr”â©K²·Ì:Ïñ’ÅR'Ï)wxŸ/ÙÄÆÆ¯ìFvl"r… 0FDÛñ‚¾‡C0eu¿,Ó^&ö5ñ}8<¨”WÄík2nÝmHÞ z<Šs-`]ŠÂ.|TÃã²ò*±c*_ î÷ø‰hl–’ÚÀ ˆFù¿qEt€OR2™“È¥µ£âþ'0k§žö‘vJöóLžº©Yô“üÇbý¹)-¬ŠÎ3jn… ¤v1h¸RöêòÃOZ%žX|21øÔgud›ÅŠÐ@dF)ÙãA‹qVΘ©ŒNnC·/‘¤Êû¡ëØ\¸gk¾™o ¢@dµ±D¯Øojë—™tŸ&"¬‰Åª©] ZÒ!\W½8•ܘI³ŠÂÎvn³eÄßõ ï #è*⇹ƒF·ê‘¯§^§™¾Û*C¨}×FîdRÀ˜Jw„zóÝFÌFd¤ŸË¢‡4„ú…l:ú(h¶)äüÁZ§á76(æt%€Î™ãÜ~{‡pÿrÌO™=lš@]6aýâòØ—”qò@âÆ“ü6UÄŠvžúq¢ñŒvjÓ –Aõ¡sþܧÂnÚìÕuÉé*¦ªÔ†5 (æ×ÿäÚ(\l¢ëyÀŠUÇ“œb"Èü ÚB¤S½4#ÖÆôÓGÃÚP'½Zö޽§èûaEo‘祜DÝ‹¶pê†+‡õ[_œù {¾°v¯“;·ü›ÆJGdŒÓ¿uLùñH²j}MT?eGŒ¾¬x=L „ÈßÉ>þ}éýµÉ੆ê𻇣€®}áØñ漢Úë°Ý¶0R°/G£+©œKºÝãªö;«ÌÃíV|½wÿ‰kwô·pB—'öó8=Ý :EÞ#aY;¶‰®èZ5±»®fÔ×W¹{B¶3øò«–h a°VöëÓ<2ZC ìý„WmUÆõ‹)²à’ ž¾û l!2‹ò)Î#¡\;q»9ÉûÁ:#(¯\õ„À÷ˆ¤°ú9üLª¤¤ò±3å¶j¼ÃÞXsVßI–T½3pï,¡Û£%XœÏ££ôJÿ˜I`âßïŒxR@!–›¢‡j42Oùè–#gÜ5,.µH+2Àt6ûÍŒ­·½øô{ŒüÌv02œ<üC“z†‡Òéÿã¦Å·Ù°Hþ‰äí–~S?­˜ __J³ˆÞÛ M[gÚ°ÁÔ3¦gà_.+Æ­®oî„N4¦»º¾ËKa\ç Pó–ÑXß&±ë[1+ ÆcûÞHi©d)A7lïBÚü{=7FÀÛ+5y'i¨.TÓLO¸PklÒ)%Ýïæ¨£²†Ä˜*gÉ•|S¬à‡’Kxò°ƒ—žTä*÷ŽÑi9‡È—or7^׿ðÉD{PQ)0ßægõDÞâ’¢>È[eiÒ9ïÁ£þG4/…¯c U»™ì­+gÑ'-½NN$&§77mƒ·¿Š®1¯~å“ÿúÛL…¾Òª@CB»n 1Fq4f´Ì€D{µS;`Î9ú—ñʶià„@– Ouöü-ô„}q¨ä”üßô8/äk9y^9M¬ m v:˜¦üªÛ=JœÉïe!¶‡Ð´FOÆem(Ò§üL²ÅXYôNiZ넪#pÏOÒR÷&{8X~AþˆœðÒÖòŒÁw†Êu@X~ý-Üó¢H*Ek~˜ˆ’òœR Rǃz^¤CY{åvÐæÚ“ ûÚ æ‰ô—.}¦ŽQi0Da ¾ xßÙöçWS¯A@{§P±C;?Dáj·%Œ ‹®ˆ LS{„àBš“N醂JU çBñl+–)ŸÍ¯É [†~q/1)ÐZ äXE§ƒ ÜDÀ–µp¦‹ÐÎÍØR¡ÑüJ¯oÐk¿ÉõmP}…ŸAýaÈMÉÒeÇa;®üà[Ý:P´Ÿë%. 'yÕ8ÿOï«-) ÌF©ÿ6Ü£^hÞœù†olÊ—‘ÄrX®6ýÛ^ŠÑðΖ8A+Ó2жÇ&¾ Î=ì[ÕÜÞ¿á_(€²g¢*ã+„w7„BŽ™oþsÅìÖ,¡#,›q䊰*fØõa³uf6f‹1#“DÔ;°×zùwŽ ŽŠÄLÑ»vû`…ÈX¶Þœá0Y(‹'òÆÜmÌ8ÑŸ*wÖº{•+uƒçõY¸Ï¤˜üKô¶G (6>aµ´[ #?·lðºT̆‘¸žµMWÛŒ‰‰ÌëütÊÜåßîk(ŒÝrEË\1GÒ¯ýLЯ %ÅiÃþEªùTI’2V;`º¶4tEg8-ÝBf{2{†+‚ø”Fás'ý¢¶ âg‰Åø8r÷<9kÖå ýrì~Ü_ˆØìùØk ŠDÕñ9~Ѱ×êðÿ½î–ÿÆc’9_$MMgÔaƒqsqƒ Û^€àŸ†8aëYyP®Á ÏFV5ÓĸÍs¯´/0ìÜ­žûâ$ðº E&vþeýB9?ʯÔÕ u»oL¨R‰*}X±ÈBs÷®Ü褒y%^';–§òxA¾^¤+Ül°æ÷:ù©å¨×9un2“O]X²l(óæ£a’ „ ¥ã­ëi·¹¾p$ìè¨\_º iwB01˜»KI!©õ9ÍÆ·*,‘5j`„œÞ¨&L{u†¤É5{Õ~]Y%²7´sGËyWLÀ€[e)ß¶]0o&@‰Eë @sžìTÑÂ3ÝiÈ*¼Þ°Ãí–:ÞDFÇøgí)üIõ·þrÐý`#i(Îü.xQ}pÂe3 ƨÔî=ü'àI—Æ–µ(…™©.àñ—œÙ `”yÁ éoéµ!ëŠ ™¤¼æ¬äÂ×½#Ð.˜öë„iߥQŠ‘ „•)êîYw˜S‰Ð]JÌyøVœÅóË÷ç‘O2×β:—û³LòÑ­x>NýT#Õ5š»»U.üRõ^Í*Á΋D =mUßìϽïž ¥™RlpB~˜ýˆ±ö*§y¨ÊC‡yò’ˆ£•kH<¹¾?>öüÚk,p´ð]0ïÇùµi¯} hF­¥)‹} *ø±JÖ ãAÊËÖþ 'oJGVÛ·> S°³¶ÆÞŽ$Þ†CÛX¸0f7Õ3û¡K͋㽹î—M}0?óûÉq‘J©_:‚ž¶çqQ«„“sÓðy^æžII ~ûTºî»G¶’‡ªV$Ú–Ÿ¢ZA%¬»ðb/è//µ®„Õõ/¨¡æ„ÆòPa%ÝAÚ¤‘'ЬDd¹'Z __­œj¼f>Š·NHÙyNÍê}²…üL¼W·U½|8÷5{ÑKHVŽ eØh¿ÉºåÁVa «íë¬î©úÝʦ¤š‚vÅ^”• Ûip}ÿÓ0´vã{ýïŸþDÏùm{–Éúe¨`›HQ„1ùéòŠâ0ñ=’Ðo{àa`è!µ‘}°²oY_g¬\ØÈŒc™±}ïÀo`à ëu\ 8vÈ›§ô“Êø¾ë̯æÊÑ/0`d‘h‰ÐŸ¿34PfùÀ«5SÓ àJvqÛó5íݦ¶Ák€'*3’¾»74òqêÙçð©*Rò Hã!çYø•¶³^|XŠYüL«“Xª¼ªîr(%`Ó¹…¢Q=WÅ>Æ=Ô´zÁBÐîÚd„ce›ÓÙ 7s§Z6 ÊÁ&Fb¹_âì†÷eƒm­e¨$@·¼˜Ñúî_]U-WQ¯ºqmi~hû±#¡¹ÛQX¯9æš÷ÁFì™å< Ä×C¹ÏÒÆ‚;Yy4¢wPv":f9–úqBk&³ å$Ìh%ð{&6 3þ©mQ×}].ä âì—uOs!ÓÑÎA·îƒO\o@KÓP´°Y{8ÆUc)öí!‰ÒZïžS€³ÿ›]žúÐÉüL¼U3á/•·–Czi±<¦ñy_xu“sÔ‹¾ÒÈg Æô‹Ó³Ðî 4Ì­h E'˜oò„k à}ÐK´Å†8ÉšµYIWý„…›½bîHé8Ÿ–v¸ÍO—_T#‘Mñòÿ`¶ÿ)–W{@LTΘEßÀÌGÜô]5•¶•I+A"|‘¦©tX£é¬šµ‚™O@ùtTÑÏ~7uˆ¼ì‚\Í‹ Ù•§Þ  º5ý¥’µ+Ö-K2;ˆ½‰#<þU†§è¿Ì2x»2d ¸ÛEÀÛù@R{Žž»xMu[…åÓª¾DOggSRýÄ nqzúêÁ>ïÿüÿÖÿ!äÛÖÔÖðïéçíéúÿÏÿ êòëüúÿÜïþÿ ýÿòÿÚêåíñòöÿwÿïüéïùÿ׿ôöôü6d€¿Ã"xƒ ‚±t£K¡vhÒÕJ¶Y¡Ö1$KF&J"<ÒÊ‚¡5x¿˜û~±H@Kú)û¶—Ž:V¼Ô ç_ºøåµb*Iã+ RÁ¨ö"!83Œέ{éNYƒw!÷]¸ì)OŠ…`2€NÜ”è£ĪoxÑïêøšAÔa¨hÝŒõ¨øƒaÅùÔþúƒšB;×…îtË+>¢Š;DzvÝç‰5²£ú ˆcwœ¤Øÿ)í»B K˜ZÒî‡8èÚí\¾ ÐÖ Œ9´ý™"ŸG!ä»!=ŒdT`mé)­ŽÎH õؼGü5aa¸Jð#“€–B} "±û,½.â‚Ò'-ÐFJ#dñlªŸˆ?;äëG3®!…ÁMM%¿—øL á»y_à;O¯Föz<’00˜wáÂzì×þ4ÓǾî¯uÍëüîdäY—X÷;OM. yÀ¥çà—oå‡OHôa´õ2Ey¤ ©l…ÔôU¯tÑžc² áNèöYΊ¤¼cíÜÎNßò³…è—ÊÓ‹Œ‘¦åáü|®aâ‹»\ºzù Žºèi"oKª´|?Hé@ ZÁWï¸I [iﯟ)î+O÷&Ç€ÃÃT„;ʈÉöt‡èº¶…‡ ØpŠ5¸g1쉠_³î”íÈlÎÃíõ,“:ƒ7_¤î~^Ö·[ú_)£x’Qor§W‹ÖëTЕ,]% Ïš‹”Ð¥¯±;OÌ—‹»eGCBÌQ„BP<:'-É „öK¦¬íFþ .´a”ûëiJ,!dF`^ÃpûÕ(ùž$6t˜Hôê"xsÔ»2ÔñDÍíÝJމÈÏ÷‡îLñ ÷k›r!y¨+/åI[XW}$Ž(ß¼¯õ샎E\=ð«[GeMÓ74->ógº4Ëô<Úÿ•»Ù>Dp"£)ÆÚÀÎô2F”üwJq´á[»qf$€ô[s_îcI#Fâ^o½µî;æQiíȬk¼àèåxÝ£_a;ÿ>(W¦SØÛܾ¤òµ‰Ï)õ+l°”ÏäÌh’RRŠ£ä<[üKèÆÀ¶³Ø 5tÿ™¼¸H„bŸêG NËù%`m5(ˆ“»L úî× 3º`Ò¨ëAïj]ãR/ØÒà {ÃˉÎ[­ë¯öª#ѽ–¶˜çn±uÂø~ùM:ßElD;¡lÄé)Žz™DUöY` T½½íš#}AiÛFÔ»x&nrûoâÀžZò,€ÆîWeôHóô¾’ì­[Ær £§Q_Þ5ÃÎoC¤ÒÐçÈâ)Œ·E´‡øô¾ƒÓ¼ÁDÈž÷=üLÈ|ØÝ¸éãüØ4ÜÂç —YOÞ•`5·šèqL·"^«L‚Š/üÎ&ÙÙ*4aºGÕÀÿ”9e彟ñë•ß~±'ÅæÂ˜NnÙtçà F‰D=ÍÁZ‚g°Ï)gÌ[3[Â,‘œíOÖ“k»óÝ»Ž†ùC­|‘ã2ŸKŒÆýI×öàÝ 4ñ8U©Š“Ë#«ó¦Rd¿Ý&ZU »ù¼çÜ—8¯œÛT¾ µÄ0åY‘ÎXl–Œw!žlÔ™öûå¸|}‚Çkbrz¨æ#ÞüLÈÆC.ÿ±F®YܵØŽÒ’ð+ñ("ëKy„ ¤·V[Ô|çñTÖ°ñÉNwþÏ¥ª!.­ÕàÔÌqÆÀËKs¡e´}¶Òk½ûqçßûŒ&G°dέ$ó—nOD6Ù Ä­ò:(q[Ry“­qBÛè)¡gÁÕ¹ÏCØœèNgn Ø÷Âu²·³O`®!ùxsAµÂÜÀX-Òö áù=œÔ$»*B~xodJwKRY¶tPrzü½HâO¶9†ޑ˜žH®le]üLÇ·uûu7åzÍcNª[ˆír.z¬‡Ì‘üz?ô±û*Ñ”}¯f?LÝî÷ÄÏÓVÞÄzs®D[ÖÀ_ùøÈZ¨Ë<³ò%Î…÷RT~ÁeÀj|uÀií0"ÜøøAŠBÚÒ»Mm”Í éÇCZ,-c{—Ž‘´NÎß^Ääº$E= Ýç c ¯Ùì@d|†9Y{UÀr ‡r•ïg&¾rõ)"šê«”¿ß[…ÈRó‹PÇüiwîòlŽÅ—¢ê±ØYï³y €î…v,†8®ýVþµ@/aàpN„6»jäaÈ«¡²§4€" üLøtÀq»jÄÑ®êw’³–ðvj°\FA¿pI ô ­¬çQg¶’{bÿLT`’€©<„á€;HŸìŽ À´T•Hê'3ÐÉ'{°ƒSðó¡gx©"ì³á&½ˆ,²qÀ“W6—ãVµÀ5šäÐn{“á–ÅAùhÝ ÑG¯ËgLÕÚJÿŽ›ä+ePÐi–qŒS×ßÌ^ød );]EKÆê¨~±Xd õd.h…j¯\nòGÉ ’ÏÒ¹ˆÞ±GƼdZ¡?kW»„ÆÊƒÕ×ÅÒÏ­ýÙ¡ÞãqEt C¡üÆd•Vxš9¬«ÔAF4y˱ÿ-+¼>¡l­Áh†âçg$]©¦ÿûfd :v±Ø)¨¸þIÙ»seÔI#Û¼£õ¨üžšÓ ,€æ~B¥râ§™ÁZ°e´ç½68¨½ÐQ o¨n4£ â :±ô•缨 ˆþÑž¾gÀƒÒ*°ÄaÞq÷¿DˆîÄ„k6'gŒ(ê—…ŽáR1^y–÷5$…éÙ&ˆI‚óh…úLˆ‚‚²/Œµ°iÃùº$±vºoî%¯X+ñúË%Öw@w·V8uÃÛH)„­üMt²2ô+f¹¤uížîÎVg<þ=Cï³®T¤1 0Sv¬í׊²_ƒ×šf~:âáÑ€k-f,dë¸rÏÀOÌ*$°é GA›>ë2=•‡þÍFÂh>¬Ec`HôØæuÀÖýèE,QNH ÚŠ’§,š©v¯q^pSm¬È:×YyôɯÿÈ$ï""=p+¯Çý…ã÷™¾_):ó±‘8{áN²Uçë‚$ •ß„eÐkÖI©îO¯›[=œPlDøà³éÇÏ YzÁ*dP|¹4F„Ê© ü5oaÒ’”H}£r”}x]ÙÛîzo˜ƒëÂߣ]ƒ¹Ißsó*éïïGÍ*.ƒ—ëŽÎÒ¾lžJò`X©¢·Á™Ö´²Kû/  Ús'¾þ~sÄDé£I±*>‰Ø1‘:³¥Lê°-©É"ý#ZuOßd}-µ)‡—sb™ñ~ÄøÜ1C:“Mwy^û1“,O»ýÕ*á›'î–8÷çc£¤ê» ¸çó.rƒ ûý[TÓ¡RzŠ>ËaRF˜™åDìÔ¼#,™%îÍBòN´!lñ·§3䘖üÆlQµßU@Pê‚jÖ®¼lW­ Œ”|Ô†ý|ÒËVrÌÒ’$½ÍxM¥Ã‚1£>!4<Èü©B^ò[>ÓáÊÅãe €|1Y†l`§ñì[l†HÚª †RʸCÒÈãëÕ¸l:y513þ²m¦çº?km§ÄH’4Š1œë/Qȼ(ìëa<àBæÑÝ„¿Åc(‘R€™{2P ЃE±jNpÊ.—>hW| ª.€€²IbP{Œx–|]¹A•ÙÙaÃé/Œ¸*¥‘»¨À&.«j„Üàß3Bë ¶–ó2³úl]),üÄŠ‚,ë®.µž] ê¾p)¡+,XÚfëtn#¿7ïîRÏÎÕö3“üÿ.Àd,ˆ[­A²j¯:Ý&4%’ò<¬¶ÍéÓŠvàk:Â*dOüÁ¬WlR)ÅVR&‚¤a¸‹We˜7«~sû_¦xî–­x‚칡—h—?/¦R™¹[È„z·wXº7¸kfØœ±1oôc³UˆœÆÕ@µ/ ¯~,Ò> „þÕéXé øJýmÝOªJ8"Ûaì£X›§P»‹É`ÑÉ]Gp9ÍŸ²ª{5×åÚ;x–۾͚{w–ÀCòÜb8s»oFM mêEp_‚ƒüu,ü|ª6šw•âtMP9)gVæ‹þ#Ù6ÁN”‡/ÁãXK5È‚¹–ÆÜô*‚ú"¦ôJ_«vïðûO†äÉÀTgp¸µÓ0ËâTøQJ’©oL;­-ÀçÑe‘IùLßeF̵X,+ˆó.dT‘ð#É‹¤Am-Ç]i8Ñ eïOÒ]lfþÌôvÞ‰i‰J·ÿ^Ã`î%€&ƒ 師êâ²þê=5=å ÎhfÁè*’÷ŠB˜¾ñï1µØèÏFTîJ 4ùó>25Ðq(Nû…@Dï¬x.­ó×Y¦ÍV#Iæcâ ·©b kÎDÎPÜî‘Ïìsä;²K†ÅªûX+¸·ë`À~|‡óÙ8÷”^ð9MÙé¤þ —§ »Ç¤Ù¯ C¤Ã#’¼]TÑ:Èÿr2A#Q€ Áb¦c^øG¯¿ýÀ¬ûñ<‰ãÖTÆ &0„¼ l¾ÅFÓqÆ¥?€&A¢Jw¡'£Ùdz5Ö$$q²­£þhi(üXÖ¨ëtY ï/tÓ|`VwðB bÍB¹˜êý•;©{`Ö¿¿c«” ’«hTW¨…eØÓ½ ò -ÂÙ1î\õpÐîHà>t±agäMtÞíø)“$cPÀôfZ?$EaÆÄVæ¨Ò§NB‹_A~¨x…[ÏæzÍhNŸV¨š6w@Cö%¤8ôÌïNÊno•±O;ù \ÒbÏcU#èÈSe¾±™$/w&¸ŽÑ”¿p Y»®Øcs_¼ö+»%ð\Öwj€6ýMÕˆóIE²áQÙÿ}@$KºyÓ_î.SŽÃ„ÁTàåQÆû Èÿéª., úk6ìr· ´-´éåBñ³¨;8^líÀE2tZ´˜G\­êyMøîáJá°Jb u†]˰Ц¾·±¸”çøG Y>Šöa…q_Ý[ü Av{bVòΨvÒK:Þ)D_‰Ä“âIæÛ!å)î¨i›Pá%¾ÊËɵ£škhˆÁø³ WЖS> ù àðªzÀSâßéµeSL–0©ãF`y¨²b¹A0q‘†OÔ‘ì¼å ûüM"±øÌ% È·¹‘¨™Üžyt·_32'/˜³¬®ƒ×|ÔŒ¨òÖ†ËVv§¢çâùÌnªÅdW`ºnŽï¸:o¹ü# ª:¦é¤Ðòÿ„?%¥©)S–Äæ“ÏÂ%OMhµ–U1,¤C˜‹ŸÂc5¬ Õ‰joØõœœ˜Ôß=ÍðÛ­ÂpïÅ‚Y"pà@¡¡Â ¶9¨&QK‘ç5tªØl]õ !w–Ÿßrâpì{6UcÔŒpœo½7¤Kk®Ä^Æw½Ó½bƒ¬1Ìõ”ÆxRn$ xieØ_²… ÎGU—B·ÅûG¥¤t;öü56Ñà6«Ù€Wðì‰DoØU²ñ›GXÓ dÔ›Þ¨%†)==˜ø‘J©ÆáÆçLSd ¢{ê£2ƒÁ=í¼Fdq¡2XMÿ«õ~wlU°OM Bè˜Èç÷”t¦‚½©ó9óGà£l_ÌâñÀ£–GV¢¼Âóˆ*‚i‰&ߪÿ桲6fÔ´ñ 15ü™€‰UcRí ú%ðÅþ²A³´™³'U°IXÍ|RÀ=X•(‚Ÿù×A?sH_i¥¶ªR;º]ýÖÑTÏ ’O€þ·Àc¥G2J ‰*ümd¨U.ö! üXŸª±s@3–ÞÌ J„Á0 ?ƒ67§ÑYË“©VR)&Ì^ÛW¯ ˆ½¥ËÝjed8/å¯4>{Á‚½ ìõ“¡Ÿÿ§þ×TE¸b¬+îø •ߊ+Hø÷=··½±Žµ¹m›È~mùÃIˆ%tÌЍUýÚ+¢ßœæð`ùHdzð¡b0·Ú°2RFE“Š"ƒ/åN ¡º5ÒóCW™µúäm£d£\B‹†yúó¾n žÁ?4×3ÒF€]yKþo þyÈ…v “Ê’¼(Ho/¹g7Å*Q‰½kü‹$p„Gñ‘ëU|ü5ú °Úkþ´x´’F8Ÿ–^ÁXúí™pÍI€ÕÄœRÕŠF3P"•©@%¤ÿóBÿp“/¿ßÂäÛ!@³Âé[‚I(3$70(B÷NéÚ€†ÁG@Dj°u'ó룑íOص™ ¨ßûpÎÉèê‡3Ô"Úö‡$Ü^¹Žq^}w·{—Iô(XßO˜vÖ<ÌË}¾Et‚3!Ü¡ð¨ N²˜(o™Eо"!idh"5+én\.ß(*­‚Mx¥öª;—š„h"ëŸñbµý¾2üÏ34Jø&nk û‡¯J³“D´?ö˜9ˆgb;*îÚµußü|¨¥s<¾§|Šù_rÂlÚÄp®EÔ` «VœO˺Jƒ|mß eÛÍŸP-­A˜~UÒy™‘ñÌ~-ã/0§í]K„d„¢¯¯Ï㇡À¼öm-ÚÛ#2+±:Õ ä(™H´6qÏÆ"Û-..¿e•Wf:82;s—`r“éy›×5«2þm¬¸}<ÑAÉOëgã5†ð:V Ì›’²ûαï yƃiž²nþQ|™±y¿1Ø·ì vbà;®` tƒt(‹Öó,ÆPY ŒØòæfœ®óàúŠA¤¾úâz¤–ÜwR•0Œë DZžn~#L—«¥HÚQs@mÊôªLè,A¨¼kOˆ|·yëéA…IaçnPäN™Ö£§¯é†æè‘ßÌÍ Q™¶ð,.ýŸ™˜¥}´ùH˜ø™êòOØa7¼aZ˜Û°zW#"—H‡ª.cûRî-ª²X‚Fô0U¿æ¸t4J'äIrÉ7´-KMn‚6„ˆúˆRp-6¥JÝ'HÐwô9d¨ãöK·V;{¸y¨ù½Nr>fQÝb ^±¬¹öï©·ži€ICñ:—i|˜•ŠÁ£¶çãüXL’·‰H¹ÈÎÍ—NR S}ß³Âû™ÔCîHÐ%Î8š ®í$˜Þ lÚ9gñN¸…›yf‡{‘¿í¢(&Q<ûk»¿ùku›½³>¡¹àLú5.@ð§™ÍÙ_z6sóEV1´o£2ý:{þÔǬÁwýîSÕQçï‡ÿ|ó¥I¢bâo@ƒ-Æ÷fW\¦PHp_Cš¡Þ†åÆP•½‡Å"uV—j\óPSnê£rM¬vRXµÅävŽs ð‹«°V¼Î‘€<ç0€cœ%ÎÙ RX=Sn‘W/GoGD}^wqüLÅ#J#µ; _YVÔOGæU0{y~œÃ–QFªB­”åø¥»ÏŒ®ÞR˜O&t½ùa U P†CÞ •h‘ùh b2#ñ»ELP9O{»h·%¦?:ãÊn" ô›¤§ÚM©ªH‡¦²-YiE¨=l¸JÄ…uË…6—({—ÓÛØGpg+}Ô¹¨w|c\ST ýÒ˜dúÐG‘ì“qȨo‰¡Ü4ÍœŒɹ0ÔáA`Œ>Ê¥fßíå+v]p®wÉ…€Ð𾾓ݧXí)õűèqw5…¸Ããò€÷“Œ´ë.¤N˜‰îQ1R¼j§¼üN‚ð¦ÓPb“çá—X|ÿ׸owõ×/åq% A„V"š"Ð÷•®6%dæ–¸AsÂZ5ìB¿n™[IV­Ê,=Uj¹.ÈÇQæž7WR|Ï3‘zn ûÎS`kwã²¶ Þ,%ÜùÊq7è›ÆZùgm^ôHéÃSÜǺ¸Â”-)æ9mæFa~¥çcÚNÿœ’,œ§®È¢¬ æls‡“ÖûI“Aÿë{ÅÏÈÛíe60M÷¸Å1Õy Ðò11õLÇ•åð ³8ŽP׃rð7DÄ+±ÍMš2ÈU1M'çù=Üœ0¸=ÕÁ#8Y„:’ @% üŸÀD9W {×tOãÅo‰ëëÀ­w™&TZðBÓ^`Üé;[ ‰¯ÊÜŒ°^@,ÀN¯²„Ó|ºÑ‰ƒØjÔÔàœ²YÃÍoæxX ë±e?åW¨™_yü5>2ÇþxÒÏDÒ?3%&ÓWÎe8bÈoé4ßsñiN3§-Ï©xA­î}›MB¸áÉ]wžøŽÇPÊ)\æSßRvµÈÉŸ«/£áunÖÄlæ~Jxƒõq™Xd ¤oê‡ú?s€¯¥q‚PržU¸¥ê1WºÌ‚Â}4qw?·÷¼µá7ëR¸þ8¿®Ií]vCXø˜ÁT…Z<ÇÖ£+‡ÕóvÖÅ:‹¬~¼™çÈ.ÍxÕ‚OB©T“±†bË2üM<®à:{£´4;ûíð –à€Kn¯þ/=ýÐ| #0€ÿ¦˜¾&Çü{<ºhöìüH!nìËB_Ë¡>© ¤!ëoAòë˜0V$’=@}_§L>&w…-~´@¡ÜòB®9(8µààp/8Ë–£Tz´j(`UÌVWßÇá2¿a»<—eÐF EƒAé½°fƒL©À•?8á4âȱi)y#Ð4÷B6tÿ?\Œ”³yJs§9` I€Ûf9žò."Æ'ŒfðëUè¼éc¦Ž7&èŒéŽ¡Þ˸¤· $¤TO‹#mýŸ5êÔ(ÎsTÑ_6V©ò,ýò;ÔøðŸY\¡ªqlhf Ž(ñðœ„P#ÖW6ÙÛVa±À©ˆž_¶I±°|/(!¼ Á6²%M'G8}CÁŸ¨`äÝpä9>eØÑ¤šÄ¾¤±û^k&ÂãÄ¥ì¶ÌÆ~Þÿ¾-þÇRP!È]+ÿl£u­ÈUyÅh%>?13+æQ< ™O8yFÙº¼»“K†HÈ>­¸\]æä1›©ïôŸ/þ ZÜ”‚ÅuÝu‹ßZþ/ÉH«÷‹CPi:`œÓá•ÆHç‡¦É ¬ß )o6éc¾â_RC!Z0Á_Œ@\D×µ‰Åè÷ÇtnÛüM -é,^,­:5SÕhÐñî,Oà6Ái¢ä©Þ7ìºHÐS¡Ué^ÌÛCÂFûFæúÇïHfŽ€þ_.Õm3BÛÜ^é×xíçl‰ª·Éüƒ6L=v‚‡åÀ¥õñYòNÛ‰~;ŸÁ¸@0­¿J¾-ØÁÒlû2€€NǬ«HKaƬ"¥îvþ“µ‚ˆ,ngŸdXÇtG{5Ä`òĺ¿š®Øïé¾[ƒl¼:lÜ0!BþDŒyPÚ±æj ¹Ãhdhõó`—ÕÆÖ)p7sÊ _ø‡I½£HMÿÒ¦ËL|äTBÑüMmŠ»TÃ3ÁQ¡B U¯K¬9F(n¡.ê™Iv$–ÎKÌÍ…ï";P‚ÿÚms§î&Ç£ݤÌm§Vï-(IŽ…Ç»ßËòÄÍ`ôrèÞT¾-÷î'ö£ø ä¼ê™ÎnðFµ<^Í÷4ÿ–.ˆ4Ãé€i78„‘23­° òì˜af,Ëïÿ þ!Z“zÑ}w«™Ü‘K¬±@ܸ!Çht6|ßß ãj^…ǹDäÕoA,ì§?¾ tµ‹÷)2ÒYëœNN5ï·‘ÒÐkb´ Ä“õ|üLÂáPl­”óØôú¤Sš€S*m±v9ó#ÜʼnÄPQiAÅ /”]“¨à1ÜT´ÞUÍÅZšÑÜj9Îä%–Û¾6Ú~©Ohkhþƒ4gîqukÄ}ˆ%³™h]ö¢Z·v® ŠèXÆbEGÝÈ…ÿ&×™Ľ–o<”Å.]Ëûfj+Ï´>ñ1%.˜oüþ«jêʲ̹RöF`(üqœ8›ß¯4©öêK4>º©[Ò<¤ßSe‡]G¬"š­F®JÏÉïÃ$šÿy#¡©Ío÷¨ƒ8÷òãÃ?ˆçüLât+RH¼x~7ÿ2úŠ––VœÙ\>T…Bõ0¡í V¾> ¼#2ÎŒ°a`œíbHTð y'ï=Îí¹Pœ“fÿ¶§þê[rÞ‡‡Hdâ–´úéʨݨ’H¼]Jåàb j|¡7v)h¡·‚ÀàƒÓòÕï ÑŸqet'‰Väžž`MJÓv@²d{¦ZóÀq!•ÒÁ†ÕêSø¬œ”&Áps(yÿ~`˜âqÑ9§§À×"’D ú˜-®9­ºü‹H¡µ&üGW³X-@7€n­Úys£®cB*ÿ¹ÈWã{èë|T;üLÈqÕaˆ}®Õä<]­‹ÂÓ" xr„´?ÓØmýŽ“ÈòÅõøÁ´„ƒ5áÒ7©ZP"7%¸«úh‰©¨%x)ƱÇp¶}‚|¸G›§J0̳ 6ÊŠóÈ*SåS'Šœ‰ÓÀ‡YÕyØÚ#R•|¬cUPÑ'Û,ÌùU%MÒͰœG\ÐrR´#¤Kô+ ö˜ȭs‚ íî¹U†›"Ä#13ÖÿAÙ>U:ânpÖös@ï\«ú}Óß¹îdÁXPÖ~‘µœêù¾ßèg ²AõòëÊ é*§Îø•gœ–&ß.e„SÖcüîÂÉ¢‡%0Ç}Ø!};ÊA €$êº/*q_¼šØM„—•ät•EÞVû89kK@CMœ;‚lÖz¾¬> hÈB4N›Zo!Öy?žù›ž;VZzMDzqqF>º‹ÇœÑëPeÄLÑC5x" çgõôÆ“û7½Õ¿Äpë9+öÝŸ5Æ}³‚“YŸâ:ÝÕN ‘ó+Rß¾½¬:w´u/ÚšÎÇ Q{AêØÏ4ÇhúçÞ_SÇ ijLŸY² ZrvV-/;ÎéÝô¶Dß9N̰Às.‰Ev°ü2Úî”áûˆ)àQ"brvÔæü|­€^ËÂ~“Xa¡ º !špÖìžCÅTëáò¬àqfàoœi_4Q{Š+J*ßLÒzgÎ$Ed»f¦íj«Ô/¦{ʤk’Ûf¤*8ƒÖóšl{†ÐJ¦ë+eUaäóÛlÜP¥V3DסæL`“y–UIZKðà@„P1ÞfÓDöÀUC,ßÌÉÁÁñ°]…ÈCD#}rÆQ¥X'ò8ÂíG|v,Œ0M:WÇXö$c‘¬fžPu_’{i}ò® Æ™ëíÑíŽýYR Òæ©Z¤ãüᯇ*ñPm(9„ôhpfêxĤÛÜM !YÙlo™ Ö«÷ .©Ìu™»µÎ£ZõDÁÑíí£9-Ö°=’JÂZU‰wìz¥v·‚Ïòˆƒô‹©ŒrA£2Æ“óP«0IbRÓ¾_`%ËA `Ó>–]X#‹Iâ¨ß Ëvš}!míVDL×áøüm¢Kí½<Ü\zÁAZüXIrå&ù6mÞ{ÀC²³‘ew©Ë¹¶t•Ý¥ ôt²ýE3'82Ó_$±'éM‚k"MsÚµáPñx¿è´j:#z@3 ÃjÑkøðì-—mä©ãy%/;ÝÕ¾FDËü`|ã[>–iæö¯TÞö!"&K³Ó|ÜÈ –§pi= _Jµ™;ÞÁ!ÆV•3³¶€1mY«²oµþ_ék†øÇÅÓðéßžó §Æ³»6»Ã&Š?ÁçV£‡C y¸s™™?{‰ŽÅ1páÏBdïœN)(¡«±<îg>ŒÏxÍË»Ûå]®kN< €6ì×dÑÈG1ðà §£VX >“`«-Ÿñ«ü†mëݼ5U)G:Ç*êrë6¯2tÙžû³B¿÷‘>¾Á«LY·Ö².ŽU' "â‘Ö ß¯”î=BA–é.³{º`yì ¾cN& ÓbHPœòm \¿j–ýÈ”ˆ„2ÿ•`_*!I»)ÉnÕKà›6«Ã6H¨½øZ›;ÐkêõD³¾È(Ä?’¦ßÃŽîæù›ô×] Êmýãû¡]¸ìP½"þ5À¿ ÐX’¤ý f……_¨?®9àd;›MÉ>NNe«•õº"Ž×CiåN‚¨xU›îéXÈò\ˆ)̘Gô ü†mñp%èÄ|·Ë"ªqI®½¹Ìÿz~бó&ŽŠ]ƒÊ¸&ÛýÕgc‡ENX£Ž$OØOrY­%þs·±ŽlÊ4,0îè&¢µ`/\<ì<ìó¨eÖDYH-Ú‰»ˆTœ)ùÕ¶šDCØðáÒ ,†ÛÃüô˜Ô?ßX”+¢ýãÀù’:#‚é²ãS¿>!®¶W? ò^ù¹}ÅŠÈ“àì.`Û«í>]eÙp‡‘|‘ËI6 Z…â?Ò ŽÖ–æÜâõiØÀ‹ó>¬Ãƒ"äêì •.®º+`7kZ_¾´ôx ,¦5þéãLfz üMO{;jÀi¤ò¶ÇÒü“üihJ1ïo<0¢â›¡M ”‹‰‚¨¢Š ½î”yºªv Ù±M.c–׉×ÜWÐRí ¿û(¥ëp­»:S–×4äíg`Þnê¶±s‹œØ´hÃo¤h¾¸·Ñ4kƒÔôÁ]·4Àˆ'¥ÆwúªÐèüË"¥ƒƒéŠô}äê„&æ…y™Q;+sï“ØÀH¥üö6UCª¦(¾±¯tÃ2 AÐÙ—Ãk'õmB¶Û.´è e럷7e¸¥Aöôu[jœqAb”Z)¹´äëÜTü± Þ!󿦌) ÚHÙtƒ[ïLDøQ’ò9“ž¤+’´ª¥å‘3¥Bì%>æ;þܸVÑÙoÖ}Œƒ¸:hìsç5‰w]2ÚŽí½Œ¦¸J›Õ¦acœ†„rŽ>lä$DˆâÛ';¥öXº7œêz´ØK-<âh›ÍÀµû‘é[ö,홺9ð¥i´^¨ØEF»Ì¼Àþëz·¡/#ÿ<´E«}Û3‡ÿNGg\çƒ3 i3B9µ%Wt»® Œ3gxƒ$¢àý¾˜šûØûÜ"åO‹2ê÷;Ậ¸Ñ4HbØ œü/aŠ[rùF¬íágܧ,[ÜæKõþçÑäþëwáæéFíÈîzñ.A<½¢ì»W±Zù3Ög²¤€¿^¡§m¥nVil›¹-ú(ö"«ÕÇöÒþ2tZü™@Xï¸K¨8ÉÔųíûõLú–/BÁ*1)ƒ` ²aN61Ö^d@éûLÁQ¾,ÃF4;0Û¨±1Ó•köÎhwŸO Á»~=2[Â: =8p9Üå*°i™q¾ü|‘X“ðlÀîWЕ›,Òþ>è_ Ögo i¸˜%"Çp^†ÞÕÏUpZµªœílÕ"ŠZr¤ÌSI`XàŠ‰É±hûµ×§@Xà— 3úqó­ÎÚæ`N‡¼Èãú2«ÐávÅqÓ>äƒ I´(Eã¢ÜÐ宸í8¾YÇ0í¯ý¸èž ç†Î5Á±V ;n(³º¿lõ„q´ýg%®–BEUSC¡íÁ'ír‹©O½„ѺÂbœ4BÙïÚc¤‚-™¼˜¥L¨J¦µÚǰñ?ìKY€mÊ&R>FÒ.€øüæEß8ÀC~ÂñÓ迸Ë\G&h¤É5ˆ{Nƒ#$‡‚9}Î` þ¼°mÜÐ"s¡0óìb®²ÅqƒéMâóÿ(ñ_£Ë ™(9 úîp¤é2’“Ä Á ® u¸ó-v¯.‡/ù|p ͵œAÉ3€7½üÈu„µÐÄ3~u ±lt¼ž@—Áó"¤ÜÉ î†—…³?,v8¸|ƒŽzÇéÔ×{¾j}ñîmDM‡¯u Aý¦K, —+ÇœjÒ‹Y"¼—ËíU¬u`ºµt}Qš¡}²ÄršDeÃH©§íü†v ìûQt-È{/0=âú{! ó±ño˜J3HûœâwÄà G ““¸!¶‹@ÄÓÖ-#È~+•‰f˜±ìdf˜fZ&ìÖUÙîÐßDŠGŒW(V4ÐNºð©˜#–L&‹‹ºÍH5ð€KüòޙϷ:‡ÁV…,f‹{·¥‡ 3Úú‘f–ï¾=ÉÐXCBÏLÿ­»ñI´ôÚú`@KÐÄ`8E[}¯?–¹3!£_P×ÊþÕp‰2¸šü¾õþdš®6{±»×mTŽÍîОJ2lÑÿ‹ÆéÀü†fÌ*ÅQ.¹¬íÙMOŒÒƒü+»ì9_mT^SãýÅzÑòM á5L`îìÖ: cØQ£ZO?¡))ht¯§ƒIõ“€ w`_¶p¤éE'Ë ê°ƒžÚ(SÇRI‹…»¥ÏF\®“Çã˼@4ªú¢f‚–¨žî²"ûQ&å[õc„ñK‚jîý#'ê*ß\üƒë²dÇûäWâ‹ß¶Mù¸t5q¾‹ÑQ+`Ž©ü0fŒ€F Ê¦( Ì$> A‡°"- TžÆgŸ*p½kËR/! 60KM?×Á…òŸÞS)÷|niîË¡[)1ü†c±aï%~*«ãâCT„^hï\µ4B™,º;òξǚ³.1°O@üV œ‹Þ°§—VºxóÓ®V|rõ¡yk x¾tÊ:ÚˆÈ$}Çé0üZe-k¥ØIÝ fìt(íî®md³]dæO {‘)âyPzÚ§ž¾V§]<á=*ãîKúÊTñxŒ7XÏgjü,í¨ ~‰ÐX$¡/gCÞ=V}L—¤‘x÷B!Á2%E6‹´Íâtv–SîŽûkHê.­›‘žkêcoß& Ïc½Úxrƒy —3ö?)bÐ;8:`L ÿÙéaÄl>²üL³•ŸBÍUéo©Ûds.`"û?Ü}ç·|jÒÔ¶rˆ yCËæôT¬€ÌÒÍ›šÉ2ضƒTÌÿìæqLÏòiEq ðX¼¥*»/ó9ÿ·’$ô³«ü¦‘›Qõ¼‹h%üI4 ¢#¦Ú]»Ž ‡²ìÌýCážX†dý8³ÔüEZ.ðë6]ZhÛ"^òc{Âû×·ÇÞŒ'´f}Wm¼½¿îà¿`²çÓ˜k]HéåOýoñ·ï òfã]‡!°f šƒ9ýâ%t÷¾HxÛrM¦®xR§U©;`¹2^¦Ž±æÈ‘V OggS€ÃRýÄ nrk¸Xà=ÿÿtÿÚêåíøóñÿÒÿÑÔÓÒÐÐÖ×åçéåÿÉÑÙìñïòÿÎÿ_ÎÑÙÞÙÿAØèïíÿüóçßï÷ÿü°ê?ªŽþýãL­!t%;¥•Šj›-§×h.JꖀѽcÊ Ñ@³kXÓ´¹)åMxÃòê´i£Û­?÷©q¬Ôêô¹6 ö•^w3=çT]Ÿªà™TgøV`"–­üTð –ß忤ÁãZ¦cŽÂä² u·¸6ï¹z=»/¼Na‘Ò~¿‹|t¦Rɪ½ [—´F_j×¾Eí•<[Òe®ˆÚt¬Oí¤Ú¥e±A\¨jz…GÊ §–§¾%Q“}÷oë„z³Qe]XÁ¨g½óù{ûn»¡*?#ŽXüÕuúK`Å [¦œQl䥣Ô.Á sQK ¶…¸kƒ¬#ã¦ÐyÕüƒÙXÖw¡[Œ×G‘d>k­ûcTI 6X8-_rœýœö¥ëc>©ÂXñ Íl&Ëë%ô†{’_ï¢/ž@õ$Þ MZ&WÈ„­ÈбC$ ÷Ä®¥‚ ¡‹ç[eHÚ‹Oô ÿ+üÿÅÒoK1ó¨ÌìüP[@œ7“öõ-qÐ ®aÙæ? &Ÿ¤SíŒ]ý/–0iǺM¹Tì HWl“Ú 뚉U„|6êkó>w«¤R㾕o¬TPÑ>uF§¨|:{ýeÕËF°÷é¤^îðsÕ@Ãê·èÒÁ2Ã^Áš+œ mîæ´±v´ŸÛJ¥É·?ïÕ¼ ž¾~o± wÙ_ÀÐÓ9†íÿá9YLÏim,‡?ÕEE]C[´¬ÇÁº|: L~F6kN#Œ)Fï…®…ÎcE*yµÂì‘¢SÄOJž²0r>Ç.¯ |;'rÅx6Qv ;Qµ°0ôí¼Ÿ¾År Î;Tòú< §tœ“ªZì§ÒvqÇ&Ò‚³€¨ÈzŠÄ-D0B!ŒïÚŸŒ/yltuN“˜H²xfÄ ¦Œâ‹Ë|ß«!KÀŒÚá9˜YQ²ÌWah9LxÝ%U²5IR%Ž àc)‡lòp¡çn.ÒËå´Æm´Üܡ̫b32%úpxþFfc¤'Á¯ÓþÛQ» óèàé3®à%Aì™mŠ*YÚß#÷\÷ p{r¡ã£4n‚˜N°ûpBvŠì½îħ§jûî@Ag rQñ¹cs”áêôõëB¨’Ì£‡s¼@ÈåOqƒMJÓ 5Û µgEŸ[SªwS½>…=f¿^ÞöIƒs¢ã•€c±è‚×àÿS7•!S{¢hŠÎAu²,´G«iÃàoc‚v;Rˆ1ìÍUuüL¼1çÍlOœi»A¸¨ø“Yi°ƒÝ)¢ê¢åkò’MÍÅ?<ƒ*šž5Qô»Cß[©„\´€›1 noÏoTÉæLÞÊÌ..¦ôHS?mZ\5 QÄE‰•)0¬-žÛDxT 2Ì)ܦ žø¤U[Míh…éÔÿVàskn þã6­;㪹U~EÈJ‰$çíÍ·ŠÅß„„àÛLqÅ7Fg'•ÐjYû£=JzîcDØT $FYee†Î$<ó4¯FJ¼´Ê9ž.­n[a9ª[ÇbASí€!KµÐø£*™ü°Îª])Ûu}ÃO¯ñ}nƒ©!c‹ƒµ¡5B§q@_˺m!]b› )µá†“Žîdм¾¹Ù?ùÇ«zTÄ‚7EU"¸§ë ´ 5m¯RaYÊP©æS|-Æ»%« ƒ,ØÉ£;„h˜ù¢I6ÛA¡²õ‘GÌ]Ƙ§ ¨ÂMRDȲCç†a3™åJÖ§µ½F÷'°CXøx@¹¬–¥R4æhÀiþ<±ùu¼ªÈB\BÙÞîV’¯Öaò4­eåX‘XCj‹ÄE+%ñøVëÆoLT1¨V£‚ûpü±´4Èqçô]]ó½bq)eÀ»Äò„Ê—`Ø“5¼å ‘}¿J/ #±iVOäZÞ#,/N ¹TxËh²ŒkÈ!×ÕÆbISHN©¡ðÀrø´·—T=wO6$ÚEÏ»Yú«Ù ~H¦Ë1ûmnIÓà*ÆÅ·DÿÑ|.9öY±Ó»”ç]9Íá1‚5OAêf¦jÑ—T<ãhÆ×8#j^áIg%÷ÈNR—»½¯˜ò•?•”D)+Y|«ÈÞtÿ\I”uiw‡Ù’Œù€<Ù$Sû.7zd9••L%O.[¼uQü±7ØXlÝ"§O敪þ"+ÑY¤­wq ¤š {^¶ a%šwKËÙÉ´ÿ¹@Û¶˜–ÍVO-}|Ãà:ËV.Ìf-ðá’ú}k³rzU?~ò f1x:h< Î\-§I*ïÞæ·§›‡Â%j7ìá/Ä_žµ'+ìñáð‘á—\tË!]44uÿ΀m=$;ñ¶Ê6h¿Çbà—)émÉñÆca»#¯¶ëDuV0t*ǃ‰PwL¯•G+¸ÐdeÐmS~ž| uUÈ?MXRÞ›½ú}‚²<ʉ›g(`¼–ñÞrˆÊY¦Oå®g© ü±|¶­ÍÔ"‚#5;R`Û›ÅR9ʲ6\!ë9YÈ…t}¥bp Ã…¿bòùùYA§²•ûà,¸±÷”;ü(tC¾}.0ç‘N­xµæ™1 z",oÝæ½žxÝ®SËIkz—ÂaÜÉþz¾…²8Åùr´¦ß[w>BŽ #:ŒÎ"¦­c&bP$­!2z4­‘`®ø+ím}庪[‡˜2EÿuINnö]yHbr»a<}šò3Ã:‚u¸¡  -¾,Jþàÿ"¥srÑâøT‘ÿh˜O"üLȳVœŒryMfè”S.q<ñÙ€[@Ÿ¤íƒTñ±X?6÷ü[{ÒÀ$‘¾@†_ù\.5K>yŒ#ú4.bmëÏn=D2¼»:Íð·«|P5V©¹¯Z¡­@5)…Ã? -*.œ)ð Ðj÷09?u°ÝéVf¸¹µ´ ^F]‚¶PL$?ò°íÌdŠþf·ñd#ˆF^ÆÒ½nÚ’Ù¥7IEøƒVh5IKDßèàŠøuçŘê#6kSyLÏ|Æ ÌÍC_Iå;T£E,4ˆü"Käý­< ‘>S³=*#ü{—¨³rÁJpù hô’mnà Æ#"³˜*Å ˆ8çäVä_;fæw^I‚’Ô#€ûÄaÑþL+p:Ž3ˆŠŠå:jEáØ֟&¯o‰%IÑ'MF;Ù°¬È|Èôëâ˜|yC:ZØóáál¿Wpߪ,… `èÎ\«¶eV­&0èîܾΞDOxOû{­qœÛTå~Áá¹tTö/bß™,Ô§¿8xÿ£aøÀ’7ï)1UÔúsiôì:ð’uŸeÔ*¡i–;XÛº ¡™náôµ4sÎ^¯Þä5ùM0ƒÐß/†(Xœºm[û­ÎóݬΔ)E—–p›[ñqG3“O7h‰”´{gD_q­¡—5±&²tºC©Uò8Wxk0é5]Ýݳ#²Rk“v­Jú–$P¶åñŽÉ2ǃk/"wÝò+•sF7†‘AÓõNã„N|sño1èzl?úlxˆ§1çtÞwÆS¸¥¾(8šän¡ÔüGX*ö3èŽÿ‹ò±Rænf÷¡FlÓB{Ö"UZ²ñËŽø!…yÛ­?pˆµVJ&ßÔ¼™¶é«ÞÐ4üS8U…•ÿüoüLï†òÂ$–Ôüjq£D褓)S±’Žï ®[uî&D÷úc~j2¢xúÿ$ŒB$ÿ¹žÛA¬žø=½øÂ=(š^ë€\¾W¯)éwšÁST,½ ÑZ¬+—%<¿R˜8¾IìW„?]‰–“…˶E Êö±!Z¥*n§S®Û–ÚPrv̧ÿr Ú£ùâJ¥„ÎtÕƒ¾1©ŸÎp…ÿÚ|n†H»ÿF·ÉL,“Ëðß±C˜7°?TÈ„ÂWÔ9Û²GSUmYu ß_îµ8¿¶Có_¼,X6ov«G¢›´0¬˜ÿk 03ÀPº%•^IÆŠãDž3+X"IÐA4³‡¦3V‹4‘VÜ‹'üX¦´£¯ß«ÈÜ›‡ ¢2mQj!õŽocòcEjÎk©C#£–•U,Ò¢¬Ã¼Kq­ét &ãny°ät­! –`W| ÎBÎÚL^ÁZYÉŠBDíYp¾4•¤øL5½‡ŸŠÍÛµ†¬:H¸ëkU|• …;Å 7„dñÜ9Á1[n/Or\ms·x™hԯů»üIÝ©£zhƒ#<Ðnî %=K]€`µÁ°&=â䬓Vúv”n™rI ùNüyбb¶$¯Ñ⦈W¬!»ûvÚFqyåpO¶W OÏ"ss—_j›±U&H6\w#/OQ:­N²/¬þ&å[ðž>—t…N"ƒÈîñ¼H<r£ªs¬Ub±æ¸mÓ$lvš‹×>ƳǪ¢yãgˇY,øÅŠtðDÊ:>¤—d‹¹¬¢‚¼½lÜún.nÚ8óŸ0€Fóü6O[±Ó4øÆ@r©„3‡þGd:Ô5zî_!AõúŒšˆjž!$!AÎÅ%1ù@pÔÞ6/™3];Ìèkö_ËÇé¶*©m†úÉ»@;à"Ù žþÖ9j¢c°Ñ³„¾ÿºÒ¹#mÞÇ »Ñ·1­ÜÔûv`EÙvVRÖåøñ¡®Ø-=°Ó¶ºCò$}"!s²(˜ŸüöXÕk¦b¨ûbE€X¹÷‘žSøúÜóGÊúýÛÑ}dBº¬¾ hHÓô#³ý¾u"ˆ#ÀsnægüL¨`Ä@ø„¢$GLtÁ LBJåaÍ0ô—ûwópPý¼I-Н'AôTØmCõÈ'PAi1ë­‰”úÐxb–ÐÐ-—>3±Pº†'ÏýõŒ¶.±»¥™ ÓQ&Jq ÜàSä#²æYWyÛ„;ß4QËX•Û¢K¯KHÜÝÎ¥ ?¿5ê3iÎ^\Kã£zä-²èÈJYxvÝ_eëb=Öîó)Ïú;Ûß¿?âõËã¶H­%îÎQ­÷ø:¿]ýÔÏÒ H{ÿ×3òœÎSÔ‡þüL¨éX;®>³nL gÿ²6;(î"?XÀçÜä1£WYФøÎáè@E ›œâTgUÜTgå Ñ,Þ¸'kžU#‹_YöKáÌyP5PPPeðxøÂIVFÄôzp(åê6kÅɹâY¨fgõÅlº½TéÔóÇüøM1UóZuõ­<‰ãDÐ×­á5JgÌ-`l*Nl´] Š–´í$v¥²Eó§-³÷Iö™#¤þxåW²Z OºGKSQ\uã–k — ¹·$-‘ˆ@ô¬HüL¬—¿0Voݡͭ«âø“+9:{H+Ê|#:Þ÷†˜®Q¢˜P¿á­³½û޾²›;c¾íÊEÑä6¸G•⑺Kïó-ŠO¶ŒØüôI?þ/¹@Ôq*×`IA}3å6/½À%Þ%ëÄ×ê}.¨Çß?‘Û_µÃôADl Áˆ®7X.©6Ü5…Ý¢Å%©¢]ééo™n7‰=óqêòí‡NÅ}x×›¶æõ¡ogFv¬ÜÚG—4é ‚oàÝ8æ…1v­‘¿-:ûÓ$"‰ºSÔ?Ûw«xq ÌÍÐÖi«$üL«L·Ü¡ViÐ/µìÖò †§'8þ%Óm=³_=Ф{_fÜî„É#u§óÓº`‘ŒzuïF°†¤wgJE@Šúú–ô¦_„Îq'&×y„~TÝ'|Ò÷P¥e©ÑÚ+Ò`Ó†fò•UŸ?‰…Ô?2ä!Ë5Ùê;†4üœðR¬ v™DgØ}†|c#Ë_ö«~i`x%D)Öæ¤4D‰27ý8a€~¼§8 û™Ü¢²öæB£Bï,ûY”¥¾ãí.Ɔ~*÷âá½×½Kpϧ<¹“0¸ðpå †‚F üL½Éu!Z-"4ÐtÍr³ç¨/g†EL ø`&ryi3½TNݯë¤þét®+Í3^sâEžÂœÙsm“…1Ó .$ºrÛq‡ØªÅHÖ¼¹0qõý-‹œ²õèTß)ÌgqRbXŠˆ¯¹œ;ØBWñöd÷2”|ç½KÅ'ÐÑ>`7Þ)…~ß®ù“‰è’žhÖ¦-¢f’ÄØûOtx„Äê,v _§uçÃÁ:ÞmWBV1™sÆùC'È=¼Ròp^šdWèVбӭɅ$~ÛÓ¥…S\ÖšiŠüM?Ÿ€ eZÉ–â€ùÑ Ø`Æ}”Ö=‰¸§cB¦b4‹`é$yLËWWv„/x˜ºùAž_ 7ÃVf•gŸ§¼°‡©]ŸD†•³ŒŠ`ÅØ²í>'ä$G`«´KjHYƇHï k^çK™¯¾=Kg A¼ì/L(qÒþ .§¦µäåj&N¯^ÿ­øWÕâd­¿á¶>’âŠá¦ÙÕü|¨tÓ9éÄ?3-½vêêðî˼]dýQJ˜ˆ9<‡UrÚﵨ¾ÂN£»ùXˆûHp¯µi£´×ÿ å¶cþ{ì¹Â¼óVŽ©`µÔÚxóÜ`ŒþÏgáH¯Ÿ( ÍXw¸c‡ãZðy0cpNÄþ?ÃjÍ‹3!kê”S¥¸Èû¤Ë³rjzÃæ 5-yRÉRýS|“ï`.lóÝ®« ¼éî~Nx ñ–Ænj}£œì›†ëñÚC[¿ÃôÍÌ-LlúŸ(ãÈSé—ÒðçiŸÙ öÔÚ’Jmö8©²Ãk—Ò§Ž?D Ì-—7“FÑÑ6vОeù^fÛÿ¦ÖD°æ®q+½¥ £ÅlÞ3bCp£0Ðõoÿ îF,|žõAühã󥢆xÝò6¾³6çw7­º;.ª+ÕžcŽQß°0»Æ¹ü¦ÔÝÑ›­@_A?åáQOð5:”¥²g8ÜÔßG¢s­ó<÷Ÿì¾Ø$^,T¸Ú'{ȉþ£ç:*ÑšMEä+ô½ ¤é†îš¶X¢Ú\¢_i2 žq2khj²?c&cîet¿ AZ„ÁÁZ—ýÕJfhöÐÛŒâüIøNÊ–W¬ÓVÞDìhhvú÷T;«Þüb¬|©<–\ïÛ¥+ƒ’úÖÆª|=èCä„}QÃ65 Õ8òÚ=ëóð[¿Âu¦«·È¨á2Ñö½™6{×ø¾ªà0Úœ(éäýD+˜sþ§ŒŠÄµÊþ“Ö-kÖUõƒ›ë}Xú#X<8;èΈc0¢©„Ñ,ÂàŽ(**¿õ#5ßhN~@Íru…˜*ª¡ÈŠÇ~â צÊ6Šp¦ ½‹ýI½üL¯`®?Eû’Û=‰®|Y™þëú25Àß§Ù¡BV /QÚ7Sëæ¾Tà ˜ÃCŠžás£ÐïŽ6 @~?c'"§ý‡ä[ 3`þ<É~‰Î–Ý(iÿÇܽ6"z·N¶Ž™,Êžì´ZG<'U‘RB¼¸JâÀ5ñÔÌ>‚ݧs]>Ö=<+ƒÇßwâ°/þi¤å³)‹DÉ:ÞL,k×äJfù?Ø\ì BW>{0lµr?ý’@%\@‘Ê)ãˆj®5¶v-(Á†°ÚdqZ¡iÁúüL¼JÊ-]w”u²j)v"¢€f]B,4_lyà‡Y͵tSÁ5~Õ Cãl}á‰ßVµµû…Þê=‘M+ýêi°%²Ë7¦úÒÃ,Þ+iG÷ 忚ê^œ”‡|G‘¨$é Ú•‘Ì@ÈVßÁ) O܃€%¡r³1Ü® ŸDZ„#¯YC4éÉïËùø`7dOøM ðióegöÝ'ƒ6Î$ÅŠÎ(Žme¨ýÕ–Qr‘(ÞÒú·âÐ ¢s†V‰)\¹ñºìA|Rk[äÕ>p¼íyk†òhÚ”g1Æ4æ<)Z]Ôåk'p ËD6ã)ü®o$yü¤þÔØ½*&×ì ¿ÜÂçÒââ†@®8Œ™è0.S ‹BZÍ&ÍâNã8%ʧ¿¶‰`}®–¨ U¡µZŠÿ!ɳàØ×6ŠÄ!*DÀÕ5)–i}>„ëFuµxˆE(_Ø–õ1À¡oyFEDOpÁHž# ž0ð¾qÐ šCmœ+ ì§T3uǬÞô°âœ] à ÀÓy†Ô¨PBâÏÁR›ã7$Ë«v!o&½¦€oR)äiº|ÑPRö bõ³š–A^‘»ç|¢‡†Äß‘^àÁ—eàG¿è#êºíÓTc ϲÑâ1:çÀ2˜² ¸)½Ö9o‰wÖ Ï9¸ÉŽø]mÐŽ4ú©7½ Õ[ì«ñcbðºï¹éªû½ßù9ï› ¾O ôV% ¨Æ¦ªáŒ“U0j¡î;'Ý/øGß°ï·âf²_­¦R3}Î]Qpé.ÇÈ0ä=ÕUÍ_êsŸ,k) ø×UuÜS/NalâÐJU˜¯*‡åy¶ý#\¡zõ9Ì»ÆïP$MÈÃ0ù&oþ!‰j;Ø1ĉYžúÛßµMÀ‚¥~ˆ¥/j:Ô²÷ý«:×ü}bµñªwèIQÄæíʃÀ1H÷ÈþÒêð¡î)ƒMCÒ]Øõs1êwáñYªõŸÊT»n¹TäB¤6¤KB§ä׿vŒü?üy}ž°múwµ¨'XglYñ‰òø›°["‡’*¤Ê 븼*·‰›™¼(Š‹~ 5,ÜiªÓ ŠÁSÝý~‹ù¸ªŠ* öÒ¨z 2›2tæ[m¾'WCI ãgh¿—£oú:®—K0X:5|(ÌJÔâôõôôțŕi@',-Ñ4ùz@ÊÖÀ›6»²>Û®Í5X”Q÷C!êé\°è¢íÛï‹Î`q¹¶àƒÅw¤|°»Œf/§8€‡™V NÛ‰¤V¦‰DëIQà$ œë½0 Žõ’[¬ü«îm’ø!ÑTìð$ÄVÖa°ª)Y:..°%Šç>üNrT»‹øyt¨³È‚Vò!ü.ËO- …jþ]B„µ3?!´i;“÷ñ¿ö3Kî“ìêžÅ( (UêE?ÎWÊÓ»9¯!P†•çh „Q¸±’ýÂJͼ˜ïäû¬s½ë©Á÷M¼×«ªzÀ|(]öTuJR؆æ \ø¾JG¸º‘··¾À Ь—‡L{–Å©"+šõä‚3Ú%[K·j¥Ú/M4†£rØÚƒU\ýE'Uó™°ó¾ÐÅ^^Á¢Ú8.)ƒwÜÑä²E³8ây£&f.7üWî¥Ä”ü¼ŒPs/\DP†è=Žòø°µæã;ý#'"_;ø?X8¬ ù>›D'Òå5Ù”Rþ ¥tLä_D)'¡¶â°†—‰H̪!LDY˜~ÑúL¿É(Ï¡ ПEçÆvÁ­õ¾Aòf/”êTòÅÍtxb߉QŸˆy™§Ž»F$žÅh4œjø—òÃÖ·yìx#Ïy]1 Ô ,Ãz2 ¸ãv‡åSö‰Æbv·Vëf3w^]Ö_v«›) — ,XüM€ãOÓå{Â-± B@&Êõ{'\ÔÎ8þ“ÙéDùÓ…ö-0¦Òp(Î@žBÁÁNf§£yz×û™t¸ SE§ \®˜êLŒUKUÓ@»G÷|ÁVîq–.ç=ê~±À‡™™M[«”Ë'Ú›ó•6™™ƒší‡½ÿÕí¯p‚–§ÿŸ½í0~q±JÅ!gÅS>ÜâKð&TeÇPÓ%ŽbR<ˆKH~ÚÛjyÞ›è¼ÂÓ0¦Uµ+¾£œg!¢q38…æ€zц©lÒG›°—JÙ¨¥qa”®üK#/iÛF²Ê9’·N(×:XÚêÔ £L¡ŽÕ-Þ"YÈhÝ´ºŒrîÆ®¤HÁAž«†Ž˜ó·ŽGgavSèèP  [ãŸ}þ^#*)’n7œy†$ª^J›êVd"±C& åáÁ.câ3ÁZ—©“?”-ü’ -}TþFíÁõ.KLÿm›;ÔZl ¢ØS¬(EùÍ}©ˆ®#¨²¢Þ\þLaWË{ÖV¥±BàŽÄƒãÝo_%­;\?Wø°.lçxž¦ƒN)à\ÓÛ]ûi¤>:iÐ",üJ ȯkožiow<÷\¦S+£ÆEI6Ãä:ß_´‡é0‡‡Ú–¦~ÂìÃ^;âáÄô&ÓÃÐëÝrUžDßíAŠy8$6›rÁt€8¾8®ƒo$LJdR뢂抡H~V'øO¬~ç5zýK?A¼µÆ1÷Sas±w:†¿–ç-óô‚¨ÛMÔR˜†6ð(Ч5b?®õß&ÅÈzz¯µ-¿€%c1)Ë–iACŒ¼{v›íuòÿ¸ºmš•=Ñr0ž½’·ëzùŸQÇ+ ¤Õé$®sJ­·Ãçrü|´])_¢]64CÙ—ÄXææï—Ü wƒ÷´ç«®§¦,KgÚ¦ØÕ‡™'©‘²ÿëb"»øøWcáPS…†¿ˆ˜lŽ`Ù‰5X.Ï‚Ëæ8lĺÐÃÀ°':¡Iü*&ã¾X¶±ßyå 4,3ÊÆ/~ýtc‹ç‡»øÐp‘Ù™Þ{¿öÖy½¶t ŃM¤{: REjPqÑ™ÚåÈ»„A¼5<õ?ÿ±Ì]àQnÓ>É3 ¨P“ÕŠHÐJŒRY°ÜÝþ?†÷ݬ¬Û—Ø]’f2m"©…îj¤GÔQÊÄ •†©Z%Íÿl:»¹0RnòÊÄ&ˆ#sÕ~!mXRp[.š`Ö´„ÙøoÊ€V’w#)~}|Z,Ÿ]§s*%¦«_Wî¦ ö?µ“m­ù\ 30ÜÅ¢üM2„üŠ?ÌŒtM_mwûÚãÙÓÿ(øë|§é&â5(§3¾/A ö=Œ³îß4wR<)ªÊ¡’Ú€NM!<Ü<'b¬f_ÍâÓH›¦2IV¯ ³ë¡\ØÁ;.µöVzñ>ÐíV*Ö”Ƽʸ=Ò1m£ƒ ãcEÈ…èˆb¨+h–M}ø=°6:$ Døæ¥t>¡x:"#{e˜ä»}³xÔØi{p(¢<CÙQO9÷§¥„iMÞ$!’nEYJuþHHÏ覑x¹€'NN\»çüNLxUÖµXøÌø.8t¹XÎ:["å"þ†TüÑ´›¬ 0ØâG®I•dWm£­3³J„@6Ÿ4À-E—lc6©Ä2™Þ5éÑ"o÷] ž· ÂK÷l·|^q,¹‡¥×€n8ùãź2Ý]=<º0pVêsò—®7ÐN#ó.›¦mÀuVFBèð:¶Ù){£Ûü¤coÔªåÿȱBvñ>†ÅìËç«$"¤õ%~k‘WÒžNóö*Žîix’ƒSCæE\IÝy^ÞƒkŒâõâs~"+Ëøb ÊcÞ ÉÅFüX¶ÿç#ŸL”)î—.keYNÿ=›¯qºqf 1ìßá¬ü.¶tUÈv$®˜ýÔk!Èè%ü†uRÏl¯ #Ξ‰dbl«óµ™¼‘=ACî„ÅÏöJT §í®dûþìY’àŽãû¥ãCú kô•²Ï‹в]~¡k§ ˆBáÞL÷Úý¥z d´`ùÏäfbie<®ÖØÙÞ9íåQŒ‹ÙŽªOßÓ\É©E<›9­»¦âÞë´,Ø^Unp: ôýÜ“6H‰ö׸ÓÒÆ6Xšé É{Ù„%êeN—¾‡»ŸO~ hÛ¥ó9Y‡ü÷ˆü…9LÉpm´S•Ì"Qƒn1,?ý«Ÿ yMÝ iä}*ÿø+ì¢sæ§ZP-”Zå.š"ÖÊÄzÀ` ¦Ýd)KÚ·˜?1‹”ËÞE Œù³ ôLnasgòKŒ¿ì|F”¼"½ÊIˆüw¹”Ÿ2 ÌJdÚЪçlnY¨fùXÝšº¨P71yŠSj„ïú€lA^\‚SÆÀ6še]·é9ÄRÒEPešëæÏ¸”²P¹\ü/ÏähM.½YM˜ê®ž±ãýÜ$#lmrEI„¨Îš‚8>Œ4ÜüLÙÝÏ[cX€„š¾ôAϯd²åHCµRŽõ-Q†‡GsË 3$L)Û9dê²Ào|€ï‡Œêǵ?ÛxÌþ6ÂäE"ºVðšÔÖ˜wy8çûÑ%‹§AÜÏÎw4…ˆà€SÞCíDJ$K|Yy'`³á½¹ˆ#è‰97eôÃ#a#ÆY¾XmÓ§r½6’êõ²¸§Ú'Ktfh58¬é‹6Jƹå_ÕÔ½~ûµ1 £ó ÏÌ'–·uØÅ×vñJøNYëAƒ [Ê;‰NFOÔ¬šþj±µüM笜w ѾB”Hú@7>úÔNçiÏ]¤èÕæuüLõGÖ×¾8 ¾.0²è´¬–ÉÆÂ”ž¡ŒýfU¸hQb”MD*©:ó6Æ>Ϲ͢ÀÇH¡ä1t³eQc3òHÿÙ,ÂÓ]„÷ª‡~$ˆŽí6Ÿo«¥Ùr¼™Ùp·¹™Æ|6¶¨zÿ!Ìw¿ê๴1>€ð5xÏØ~|щ°´hóè#f÷Aj7û„v£mœ$ï©NS/ö6yœÊ X¿_?ö8[†é2£6:þAÈ]Õ=Á'b²Jð//b¿l‚{s À>†ÈL­úÂC#YûœÝËþr¿&Q=r®P<£¹FfØŒ},(#dÄüJ=;$À>ÒÀñ²o9d/ fTôImÁÎâMŽ{¯Ì««dÃÅY¬•ƒ^ M–POÆù7sê¡*®P%¾ªëý¥»Œv™0g8º¾Pê¿$Qµó³‹ˆS«´¥}m=¬À¥×Þ«r1Ô§Ù@FDæAd”{ô€;Ø. 6°r¥¡,¢žIÏPjÓÍÊkGNO ›1w] à£þtÔݶUWIZªl×ì«^ª{Ñï—*zV³=²S·N`×i ± ¦ ¬V`°ìHn å dp¯|?Ž®ýåzŒ¿ûer¨C?°ãì¶Òø83¹],‡lüM€0QÍG?Ø's¶¼î)•µ­ž•¶‚îµãÔ¨Û•Dq¸Ñ°>öƒìƒøtx“Á™[5˜ð‚Þ~3AØAÇŽŸ÷€¿£¸T^˜§sz¡‘Ÿ³´Ñöóîaó`”cÚ<Ó3¬ÙäÑ ¦ÊŒ§Æxþ#ˆ¦ÚU·Êß ìöO™Ïˆ¾¯˜Ô%ÛE¥o–©²z•-quåú̆Cö&øÕ¡Ô‡`ü؂ɧé>í㇡“k‘Ôš‡LÔu¤gÝ£Yæi~t~JF&üIáé “á†3èp¶¤ÐؾÅëDr¤}Y7oµEe…3¼PÉÌwÄcúpæ:È4Se‰ÇE5j ”âVJ]ð鈨&r,gŠýú¡˜½×LW{wé€K–Û°ÃǵÉÔ'˜ÑÜk¾WÜÚAMk’+ˆûܘm%¿¾îñìÉ:¶x†$˵Ð9ôÉ´KÑÇ÷ ÿ­ÝÀ9D%`ºñÆË×)‚µ.c:oëRúCb£ìÿ@YÒÅþúÇY>rûß-,'ŸEyqöRÝö8îÌÄd—(ü÷J4ò… ]•¦%B>ª¬Rn.E”¤Aá^Så‹Ç©¶üüFQ•!è!cS ƒ ]Õw±Ú£¦¢dN>›èß9®™œÅ»"æ­Ê«ÚÉèʹ°×p¤6WÂZ» Y5ejÔÿU—þÚ“ bÓd„º÷—9InYp 0Áøþ@fõ³ïu@ë\eƒ×k_•ë)€eè¯lIpTÖŽÉ¥ž±ü·p9Þu¾!ÿ àß1¥r9¶Âàû©—å[óŽ×ð¿0àÏ~ñþRp}ŒÎ¡ûÎÚ"2yËgy£ò{™›—Ä’]táü÷cÖÁs+5uÛbñ´®ªJpxÃÆÉ7ùì—F-ëj§§PXzÆnÞ ö}`[Äg?cìð9L+U¡ëqx z ²2É`Š ®¿aÜÌu÷Mòq_[i¡¨x~œóŽ—#A‹¸ûüãPò\”†8>.ìR³0hk€Ýô‘­l…§Pc| ïÃô_Vø Æb‹ß²ÞGZÆ‚ª»à§$´XG+ì}àlbË•BÙàCªy/a¢ö¸Þ¨©³ŠdÇÚ X\iïa(! ‰âÒ¯Äb~7ó[b†°·–aýëG¹ðN¾+uï©]æ˜hÐâÄ\”\ô½Œ¡õOîT"óM¿h_„#øµØ´ ¾7ôÆÇ^ÕÖ6ëz&^‹J«ìÃôáOggSSýÄ nsi–:ÿÿÂçáåÝßãÿÍÓÔ×ÚîöÿÁÿNÒÔÓ×ÑÖÔÕÛØáÞÿÍïÔ×ÓÜÜÿÁÏÖÕÕÞæÿÏÙóûëßÔüñ<Ð3»ô-º¢ÝÕpè‚ÏL•莨(sKÃ5nØ ¥ þœ¶($8ÜDžù±=÷ÿÒE–rNª–êA]6—­Õl’!ÉÐq‡`Cü¤ˆ¹ý·Ëo9­“»H`2µE ¦þo¦óèx‚Å/›Öfžß[š¨ï?L;Û¦iR^‰¿Î7©MOJ´”ǶŽ'Qh–£f’Ê’ã®õ蓱‰ó`¤Ýîógʽ£ÆŒ-¥o¡™ ‘Bÿk9j¦•ZÜä}!§U$³°¬Ï«Ä€V¼ÑQ™êùY·ò“I²Iû´Ñç]'öß¼íY)¸“ÉRŒrÔÈ”2‰pÚCèúÀ²F% ü|©´K¥Ç$hqÎŒõø>µ lç)**sý‰‡¶±8¨ðÚÓ˜(È .þ?ßküËg1‰u¶A0Iµ0ù®/Mž¿ÐsÜ PQµÝ¡É×OKGÕßÇ Å3®üø­ìÒœ&«ômáô3¬ú.:2‡C`üЉt—-qœÿÖ&®Ø¿Ý+¦«jþ_«ä/Õµ$ÞE9mG}TYàiP/ÛJTQä¿I/–7Kê3˜Ü¨þvOC×ÑŒÚ+×åò¦¦‘¥1vx#ÏÊs¬VËZØ>ö¥Nrp£io+gîOû üJ—sì3Q!·‚[e.9oÆÅŠ*Ù üm‰+8ph2s:ÎÀï(¥c ‚²YÈ”l"cï%ÎÔpóõH ÊØžK¼f $r±:ö¤¼¹ÜÌ-®K¥mç¯í“/¯ü@fãQø¶ûIàœ» š‡úÌ+›P¸Y«È¼%¶ ˆ°Òä‚pI’'EGi”—p1L—!a0> P¸„‚¯~κú™…É%¤j}ö­£•fÜ+›fê{ƒHwÔã7%£¥¹S}ïjš/Ì}æŠ. öí„Ýse›lùüî–DÈ¥i „’%wDó4›àq _ç£|ÓS³ ºéÔÂWIJG¦ ¾ÐûwÆLÿE×ÈÍ#7¾e ¯=ËJŽ–(_º~‹“a¯m»’aœX@h‡'^wÁ¥*¸ºªVé 5¶’Áß+" Öú;ÿXŸ9~q’ Ÿ¡?_‹#!ëŸÎ3•‹—e^Ö*•TXKÊG¦ùéùChó{!kY7´£IV¯pX­ì'Ê"bÖç>~à%2XªÑ­¡ñ×f‹,iÙt?ÉE{zÉA3‚=²ÿud×6ÒEüðàe"ßI‰tžÝï=­“@$Û¬X¯ -³m­;¥V…I=j„p2ÀÅùN¾¹_ɯ„Ó½§M Yy _bd5ŽóÌŠèîIÌ×c=2 ô–ô|îœPC„éÁ…10¨7â·Zºw@<¶"¡¸x®‰†T©Pù¨jŒsXD—ý.}“5;"I{É«: v"}k&1Ä™ä¿ØwB¼CþC0<ÐèN{„©1M¤_¡Ý]ðH!Lš<”ÖR©Y›˜FL:žÍÏ•\èŠÏD^"EüðÞùÛ>£€¼£¡LªÝ.f<,<èéLC ñÁ[Áò‘¶ïÅ:ØeFP¬n÷uì%ÞAI£,‹:ðÝ9œ‰o±ù*O—eB'^Î0øµ5/¿sR@H·b÷uSíŠí‡”Âe,L(Ô13¸¬b¶Êm®Æ1À OÊ÷ÏL›.ÈÙòå·]Åq¥ UIÌfF»Ÿ¦ˆCÏÅ}ÄÀM×(ã+á’¾XsÙ|„u<+¨rÞ`öÍPôz*ŸÌ"ð•"€Á àä;«ÙZCô–¯ · X"EüðØÙ‡„JÔÕcªÌ´ŒlLÿE›mŸu„—[‚ÄnÖ¾Ó‰ëå ÚÍÑ«¸¿n]Eíåm 狼ms*˜ÄC§j:­¬a—ÕH"óü—Iæ„ÿ[s<¾ûÄô\UzÁ™×*ÎãD¶”0†˜Ä+„Ç0šFÒlKSŽÓº6ä«p o¢z☹£ywWEqDú¹,|(û’²á ä²v{j÷¹±•àêA2q.Z¹|[¡·Û–û„g Ne!vX<¬~€9¬bä‹•Ëÿ{ Ž ± $£¬äÿÈúEü|§ÖGw(>Qn“vVç6›ÙÊ.¿ÏÐe®ƒ/¯Ýœ\˜O2ì^Åj¿†Î×[íÝýDs¹ýrŒ·÷ˆ˜4OGê߈:sŸQMÒÄÌ+ÐQ|¯®Í¶Fad½ÐEPêzâ}’·S¨ïa:N+”š¯«M“_QbtsÐ^œ£¼–Œ¼B­O†\Ŷ_ø~$ê4ðIæÄ%žorÇq+CX>ýN¨òOBÿø?Cx]µçÑ=$PÏö±þ4߸ ÓŽË5„±|5ßú äµ`É|(΃»›ÐÀ9‚°‡_ël/Ï4¹èÖ¾‘;1“1‰ëã±Êíø‘¥à dz=º-ŸïYÁÁ,¤Û$ÇžL®‰£#þzc¦_Çõìoím9‹Åþ¯·Qžñä9)!™øÎôKe²ÇA°åWüO·uÑõB¼×ú»_dFÎ)6ú`,?~ãû¬uuç#Æ’`Žé_ì!Óܲ™„â¡ùÀE©9ï¶~áž×?£Ñl&Nˆ¹ÿnQbûZ]åQ®Ÿf‡Êy{'[êr^$ œÎÚÑÕ1ä/&G v9ø÷+a¬·ï³eÃý~f_M7÷ ŒüIëTPpû[ýØ8_÷`Ô®µyk:–p­³,ÏÍ Àz?¡‡NÔ|…¼Šç°‹Vž¼k!árl[¦©8).TíSz¿îJÀ±€ÆM7}UtùP¥SUC CE¹9·6ÁᜠÝH‹.Þ÷¼»U0G½ÈÇîº,·‘\˜÷ÔãÞ°Fm÷î3¡Ÿ[¯B]YÙûüLÕRºWàs¯x®Œ&+¿nY[L™bîx7Ó O"?6Þ±²öÍ}¤ìÏk q}AšÿnäÕƒ€wšã¼Oû )ÀpbNÀߨM¥[}vENÝ/‡k µ.¶úv50j_šWÌï?¨¦>êc j\Ýêàx|¾àý„JÃ3ÚÏ·ƒ€n™_l ð²È:ףީk9›,rå…VB¯@HÛí2®pþšÄêXñ\âý ½7ÁJ*Ø&rqãoh+'q­*}7Š ‹Äîðj_ÊÚ O€üJ38Wš$ÄRS™”öØþ|eÜEÖ|_Ì}Q,~\Áq+<35ÒðPævhÛR€–hQ a™ á3FÿÏI$䩳¢Dþ/zo§Iz3tN®åÊmJˆáƒuƒ¦ôÿ†ª7g"œõ¦Û5˜â PO_¡¤ÂDš”n¸îãÞëY±˜æ|5¹J eöˆ>§¥H,i4 `übšïi1'rî#U oé„w6`OsJò(!´„ÿü¬³YõeŽÒ¾£ÒÑ(~zÖ(ØÆ‡Ú^“FÉ“Zì{ÃVïhüL¼ÞºaI‚ï|—Ï*ÖŠœ„6)¬TÃR¨Ùsm¢¤"¨_ш•N’? ô“¦,: »­ºÛt´iC&h¤ÁŒ°Ï¤s–ð¾™^[Ÿ2j³a eÂ-XL6÷G‘ÚÿÂÆ X'rjø³Òì°NY`{Óg½÷ÓEÔrƯÇÀ:÷¼ýºø ãÿ£ ·±¢G2ó÷(spÈåX&§ËµncOgNIÊžçÌãM/¼þ&µ£Â[oNƒ¶DeîJ­G ñ†ù¯ªØ¨:„Ž1‰<&F(j¦8‰0ü6i 4½ˆ2íôi²º ìM”6HyÅŠÈ&sȤ// 2uKü¦z Ì Xÿ»¥éµqMËÔ1<†¤@áÀ!˜†‹“ FVÓeLø|›Û4>vÎË[¿˜fàœ„›åžÎft Õe‹Oqs* 7XÀ˜4ðÜ&…¯aúW Wq“YÐ'Bx¶&bÖÜDzI+{þÍʶGäýa’‰ë¬âRd¬Uhs†çç›Kï¤? \>±ÙAx­^&sÐ÷Ž!š"¤WˆP”³ÕƒPÈq#[ÍÃâfŸ€ú¥PÏÚØ®É¸ÎF?æÄf[.ñ^üïâî<1™6™Œlñ&ôj˜‡ ùPÐჿ`æbÎÇ3ž”DYZáÆ\›CLîs-®±‰³Õ±©¯wÁHID• šÿüljZ8 ˜,ßœ²ïááÂ{†œ#ô»y¶j‹#<Ô œ_À°éèþ¨¯)@æ&Í/Dƒ-ÍrÒ«å ÕF&‹ƤYµÜ~ŽÐ¦®^ ‚ˆ€!NK«‚:ï/Q|ßApÓe'ëé ã< úRLÁZÁÄž^á+ª‰\ê¤n›<‘Ìç YÚdõ?¸.z])€š%iܾµ£{D¥D ëäK½–ª¢RÁDWX¢ã ü|µf –]c»v•` ŽÏ´·þà?Ù‰™9/Dhpzâüô¼ölëÇ(ÏÀ37!~?C«É²®ÕBÒÔ´v©âÀnFÈÐðŒòÕü¼§³q3}J–†íSðJÙ^¾Ïa¶Ù©åùâEŸÂ—_ñiòtÌ|o$‰¦ðFë!f¯÷QŠç¶3⢓Ü5®”÷“×QZè7_ÎT·ò}¢Q{Øè'Ho>s£Ž%¨èô`}=Öo E8ÔØÌïHŸWæ$€QÚôÇà:òöî¯X½Å¸gÇ?’`y~Â{ܨµ“SÎå’Kutg¹Mî„ðø4«( vâáóÛÚ„ã/¬ˆþ(ƒ 'ÿ-Ý›Xá‘bØb¨ú+nºË´l»ÌRΧñÌÚu Ãz<(šç2߯µ;EN yÇs\‚Ûz2V9³LŽqc°ñPÚÿ–ÚÇkvL¯Ý«ÔÛc:A È.—€ Ö!”†N¡ü|¸1p$È„ÕÇ« $Î@õýRÄþ–M%Æ šWºrd”[œÌ òÐçQ“"T]ÛláÜ1XÜÇ•£xÑaÒ¿:ÐdõU&–é¢oY#–ÊZôýÝh\›þ,;à»zl6³æØbõCÂÛ¸-{ÉXÆÔÍìC¥é;hÞÕ§bÆ;d£àŠÍ^«)ƒ²+î”±:`ÝŒœ½× §þ€Iû2ºu Åø²›¢Z©6ùEó›Þ‰L (Z›–Œ,Ø]ÿ’ þ8×èŒtYÁb£?|L>I_Å‘Åý22 c„¼ƒ%µ$ÖL+—§l›¹7Ä_§4Ý\×mkj+)Ûƒëa8Q«½ìR £ƒ‹ûðB ö*Ô÷ã:~ûÀßwþÉì¬`7¤¢-Û÷Ë„çFàoXB¬Q ¯^q£u{Γ‘‹í>ù†§B©üJ5Úìv,¤YCBj$.IÒ¬m…!@Ó?ÖA}“äWY©˜^"¦‰ äJ€¸íõ÷éÜÔ˜`×í·’å­ÙAUdô1™Ë²¤sTrüÁ+pþX6–c ;6–N'Mö]UübF½wÀk W­)Íi¬Ÿ²¤€NÖ¦«w5\+øíy²ÅAQ™í·‹/¤­ZLaðãp•€ ›í¹šº4;P"×,«ãÅ·Ž@Šë¯÷pP”Ú³üL¹_™ül\K©ò2“°5øúÈÊÄZ}Ì»6ÎÀ]„âÀD_桾¨ªñ8ñå?‰ñUU—õÎ9¿Õ,*Ñð ìEB%`®ìÔë›Éb3$–çÜ¢ÓÔ£3¿0"ÐNІ‡G ÁluI­ûH jÂw•AA' $k~gÚ>{OÀ~im&Mùá¶òŸ"&ÒK&Gšë€Ú;Xy°Knh-°U‘ ”®$š,j–½îuO›µTzu'#{®¶C9‹}l!á%ò8&œö„¥X_|FšëüMZCøtt”å<]<ÿ+¼¶óÄÒùPëÜÍÉØG±Ú®+}ÏûÅû+^Eçw+¦˜0R²„oyø®cW™û]„­<Øc`P ÷èz½uŸ5[¶|pÐêÅ$‚cȦŸ½“ú­º±kÛˆî•x{ÝÕZ0Ç ¬DexS«1vsoa~âéâ–óKK“D|àqåBÞùQòŸ _RÑ#¼(òYèÛ|úP{ûÚlD–¨ Eг¸B0Ü›>ð,Ù¯‡%íì² ‚õJyËœêüK%º5«7£ŽþnÊ/C ’ñ‡7èƒÆE6b†zÙí‹sÝÆÂ@ àù€‰ÅШ&Ç݃éQxfšuÈŘî¿ïF5– è„òWeIi]‘,³(á\º.¹I¡¯¿Éaß½/m¥¹•†Xp4fGÙqê— æÖ¡|$à¥[!Éþ{ôq»Õ/êÜâT…¨±ÙÀ]!G15W›5Âò±T½yKb6¥VÊi¢L!Çä¿!´âq åƒc¬I«¬Ÿù³q¯Çuƒê-m—2 hHü6S ¡ªOådåWס Ý „P’x ³°îÞA}bšº/3àŸdËI%œFy²upËÿ%kÝ¿Í\€èL\#ù.2*z:d¼JÁáˆ9ÝC_9ôjÀò°)¾ÂíP¤Ða¢°/¸}'E_.g`§8ˆØ”ÀðPÅâ±â÷Š«²:Ÿã=öœÁK5Yh³È4”÷(B$ªÙºÇL%—´LÓêÎÂ~ãÓB䟼'î6.ž7Aí ßágïí"£8²œq¿˜Å_üL˦E,àURÛÊìäQò–4 ˆÝv^0$L×`½6 ûÙ·Ãúb“’Q!…çá>÷âd#6UÇ8 äõ-™öl…M„¡ÿƘ/^p·„œw¤·Ä”æá¸‹Ò•vA’U˜E3!|Ê tÄermÞå·Bf“d‚øÎ_‰eníÕž÷…ƒÃ}a®¸lòò• ™5Hñå®]5u/ˆ^g ¿áwF1Aö»<óZæÄÙ:<‹oeÞŠ—îÖj•=’‰dn»èCKR”®ÞûÕajÿôVüK4ÙuÂf/¶6A–¢)àë<ãf‘†Íq»`'—û…9UL]üÇž+èV Ülâ‘?½RIúǨÙüD†?—û½ÂvâNWßr§Ð0„[zÑ Zu+ºŠëæ±7§µÌB>glõ”oørÆ\kÈÑ¡ÉúAo\¦Æ[¡<àµ[³òÎÔoÀIÈjƒ‡Fw{x á™>Á–Eû'!Ý»£ 3;O¡±]¤©Âˆa}óÞçX÷ù¬8/Ç|óô!ýáDcôÔÂ5DÜüï0i¶<À9ŽÀ¯oø®í žê⾜Áì&s³‡ûî´úL¡Bý$«E%¢Âõ|eKÀ:n˱h ‘2 ƒÓcÑ2”æ\xZýí¥¯ŽIˆüê•¢\ѹ ÿ]p2-Zöçs-deˆe뻇/t yŒ„ #1Õf(É¡&&&Ö=%Bœ¾5{†fö‘{w®âh´ |*Z¤…;ߤ"ç­ô—ËlüÉÀÑ$­JEs!†éøRâ2õ:]^@5úÄ´ÔÒ‡t¹ê”™“ùì!Ìb’Eüî½s*ól¨€ ¢&üôÆExö F)ªj‹Ú%ÿ&×ü™T‹ ³D4‚´4—yq¸^’‰wþ„‡×ø¶ÇÂDImqÓ+þr«-àu¢ŠñÝ4W»ߦñ^IAºTÇwn‹‚;'©Yù ëÉKŽ'Q‰M˜Ñé~aŠ»ŸDRUÞ’¢ÆK6ß4êkÒ¨V°òžR¦ý ÄX sÌ­n!¬Â-£µ‹•Cέîé¬babœ¿ëoà¹0Q@åÔá’x+YvuAÄÒ3ÒUü6O Ù¬¤Z¤”fêËk÷<ˆm…A5Ã.¤f lQg.\—ÉÖú¬vF·-Z¶gÊçÙð²ö-Ä0¹€ßr¨”ÚXÄ— ©ØKHöÎâ0bnÊ^)Ûôü{aìœ=ù¯ðÒí”;—ÐÞ¿wÉè¥ ÄÔ¹ÒmH08R¢äj92Û®©˜a§AƒPzf¤%[G~ÐïÅßJ½¹Ò¢z®âs.?  V9À¥WEÉÖ„zýªf/Ò,ßU®+(ç«»D4{§Câ z›Í^¯^×=3Ž7ùGˆG‡ÇÃl‹®tÈ3à˜ÜÈ“ì'9*”Öüû›ï…¶âеiq(žo÷Ù——²‘&aÝ5%€jãjëmÕ9ëx5†0ÚA€àÐüï¹_Àªwº´\#Aàˆõw•sUAW}ëÇfàvrÎóQ@Ô 5®zS N]d+ˆý`›ÀnÑÜÏ=éNw†®ÿ”sêHÒ˜Û´)s—>ôp1ÓÓ] ÛMžŠ–Îôµ^(ÞêJx?;4"ß.¯ûɨ°;þ’TÃó<†ãšQÞ å¦æÅ Å~ÜF4|ßÍðŒ–§‹qw}´ªæ†ø1ñ5gÞ…=É ‹ÀØ×þ"’΋µÍ_ ¤ÊÝ_>œ}´Óã­ôJÛ ¬¬hÕ2<ü|®Pj;o-Pãe ]ónÔ-ÞDT Ðñ´pÙî?Ðl¸ dÏ'Lr'H7Ëwß“l¿ž—~?­çQ¤'«ŒÔŠdhò œêildxWÑÚÐŒ‘²zŽ`WùwÉW6ÏFz˜‡eTÐÉfÙ?pÎ&ôà cM–ò*‘Î#É;®¼ µ¹ÞZäËJD¨*~ÃZ' 8ë½5²?ÛøòrÇi¡í˜K…õöBæHŒ|züXKär„ÄXé:Z6V»kŠÆ­äÞ Ÿæ06X Ķ9<‰ý¨%žÝ»ŽðÑâ1zKžð½1Z2{š+÷¡Ð† ŽÄ±³ŒÕ»ûЇá.±ô§ù~WÌÌLºu‚Y©iU ”3ZË\ÁAPÌK:ç˜mÝ{ô˜6]’¿ñú¿Þ¢)ý«¾{JŒåƒ™½›Ê^M,£÷Ø‚+KÞçÄ¥’/ÖÇ“ª½^ÓãçXÆJ tP+ÜcõET¥ÁC6¾jâ•¶¶ã… Š㥈E(«ãeA/lë û4 r0“Ž š›‰Õü†fxúÔ½ À‹¬Ù"Žñbà y}ô3‡p9CˆM¬2‰ÓÏŽ”Ú˜cÌòÙ™ ª+ƒ²Ìñ­LZoòÛóˆškºàT·óT€Sð1 ü‡¿â™½V>8ÄTIнyú*ýTböaœX"±í$ýO¶‡R÷Æ<ô¯Ñ¤H(ùœdû"ÁÝÓ˜®³0·<.Ó_flX#ô%ìÔ«Ä“õn{NN¦XRÙÖn‰aÿF¼>7Ô Ãi‹M¨Õ¿w®¥•ŠOys-ÏxpRFßn1üXÏí]|5òB|½*²±YÑ蛲n5Å0!¾pìlqš°•üÏr_é—fCS^F'b‚³ â̈OTCj38û&G†þ™ä—ÛÞãíöOÓ]M‡]T6hÒ7~Ò¤´ i?ÚÚ“hÑÊV‚£ëÕ‹Ér»†€N+)ãòKì¤ #v‘Öû«©BÖQÕÊöR_ÿB¶ß`þ¯:–©ê˜«"!9Ƴ=§æô©P¡¶êŽõm3Ê6^+üaŒ]¿}Üß,u™KŽã{À ÖO•ÊTªÓñü5¶Vø~ž‘{ÿ¿¶Ob-ËN:id Á.’% Þ Äq±Ë™á•áZ~Ñ ¼üò-‰ºOýÁ@WE²ƒEÜÉÁ«¤A‡¥pUV%SáuS®ï’¨^½!ÓH*51§l ”SÖ+qEc}Ð ¨Ë”YjÅ¿xyqˆÑ¨†&ötÌ«8j€‡Ç6 ¤XCTbAÀÀ- š"PÁµk _=ئ²ïl1 T¯üb‘–@Þ,sÄéUbHnZ-ì¼¢¹…)›±¶ÖåÇò‹uà½\çqgüMÜÂ,Þ"G†‚Ì¢TÀe!ýzË|±œÔùd~¿lï€nûm¶¢DÏÚîXBoÐpaŠ'søvRÇ×P‚‹\QÍ‘F5¶›èOË_õÁ¦^°êL“³’#;¸”"ÕD$H³Éçòq«£:8 w÷†Ô^È]rÇ›œašN 3įpã«ÚD¸¦vØù"â #óÒg˜ÆÜEºhº1qéã*G7Z-3+šãxÙ°Qó*hHÞáN½îhwyL²á­šäaI™;¬ŸZ%iãbR°µüM’ñ·Ë4ª0‚Esgû¹d…Ù–Ç1“¹ÞÌ3p /ØŽÁuºq9ª ‰NOKBMXyÃHPô«‚,xªÉ#çý;äÖŒï:¬»# ê³°¶$p¤M—ÞÿÌßq†Ë^xqùˆÓàÚ¾3:eê%´&@òg þÉQ H&Ä\ßjÖJjhŸš–W68 mœæ4ò?µÐóàzQð <,ps‰ARþÓrÈU¾Ï8H¹®2V$œli5Ó_T§%†z{ê­ÊºÑã$q¥› Ÿû—¯“ü|®QY]ÁWâH0¸ž¼•¬Ké,!Å›³­ÚÓ;LÔÜŽ*‹Û?Æ\i!9ÓFÂrÍêd‹2S `ÏÔcqþhG/½7åMµ;r?†j‚LFÔ” :ywô.¸ánÎî˜ÈN¬Í”(èÞˆ§ÊúHËÇxŸ¼ìýI‹1˜1ú4H¹¤;ê{ĽçPgDèÃòôó½ç„`ÌÞf˜ÈUUÏŸCSb;Æ85qÖåžÖÎp™¯§Pﯘ „GUÈEË9†Vþ¨$)'¸‘Hs?ØhÚ.QQÖÁŠ0ÜáNVCZ-Xó’$(ÑzÃï+QœüM ΆÓìú¹V9M–õ ¼Q肆4 í¬Ùƒ,Q5B Þp?áλ––šÖ—uéæÌ¢A' e&8“J¦ûÕO0=½NVôÝ ¿rÛ-…l×¾„¼N;J$Ý^èžAî×nB|š6÷²Ÿê})äªâ(üú%êeÙ¹6_¼î>i´+RÓ嘼§ð¸鞊 3” ÞÀܶm´Å¦I–™Ð¿f?‰«ÃÉþhfè×ß+Óècý—ˆyU°=ã`A-ÿ”×|¡ïü†fKö]méB(ºòFô@œ¶õ|7)¯Àtzš°ŽôAC¹¤Å!`œJkκ ÉfvÚ}G:tlmâc,©ëÛµÀqÀVh›Ìv å•´åŤW!kZÕ‘³ñÓEÕæ¾ië¢zû6OÔœzxõôL]é΋¸¬²Öï5ö?I»Ç=™«7Ò°H¶Sab`|ù{À KCà¤è‹‹ÛºœŠ–p +.z2¤aCV1aú"$ko£»OÏл‘ðLE–@xE8ÿÄ&Þé` ɼÕ]ÆÇcJÊÀü›Á­_’еÑ@? B*B·CšäéI¿$³ÿã“BÔö_ûç=–¶<²FB”…ã»D© …\…SÄì! ˆ‹.Nq6rĵTÄe)ZêSL}*¢œpvò§‘›€Y‡ÿܲ, õèS,ÒL’­u¤ëˆG® '6è—‹W¥3èžsÖïàõ°ÔY(óÔÙöqÐ%óŸkïitú_QRÚóWwðlvÏiJ§ò¼>q‰ FÕè‡9ÆÛWyFûß»þRüLØþnAÏSã0 f Õœ8J‚á°Š2¬br4ú}£e²Á}…Bhæ‘gŸ®$ *¼Ý þø¾­_GÏ´©Ø ʺF\º‚Y§›Ù›ðᵪÔ` {¡É¥çË™v*ÐC’Þ[!'hiÓzVÔƒLD©ùa_¥X–;`ËI­Ùfõo5ÿøw ê$Ej‰o7œ n‚ã-{=aF‘g®c: J0y–‹'¼ù †8†¯É¸ïú¼£1ˆQ&‘Z–ùí-eã]«{îÎI‡ 9Œ·”Iµ ¥ ¾ÙüX΢ Šâ¬ ž)O0“Fúè¡ߊ•JNSŽ·ºe£@fþÜoßfÀ7b0WÑåB L®”¨ñÃãiPÎ…tè->óyhZ?Œ€R2…=zäDôÕ0‚¢l/B q£Pnë€öØöØÖ4•®~ÛÜ.»`èõ;ôI´&­DÛ+nk-!ôÈ)ÌA5¥R¾c¯*LÛä-:¬||%/ÝÅÞ»@Ê>‹ë ¸3ÊðQÓoÐ’ºIHk­-nE5U¹nþ[àb^³O2îÄ ífĵàB —Òœv üI¤RµWnà%ÚXÒÍL>,ZëtÝ^ˆO”Âg4£Ë+üwkJ¶p9ZeÆ5ZâÍjÜvŒžíØ­Œ$”ãN˜’gakR49}½•=Ôr6%ѹèÿGìŽV»`uäÝ;’5$‚}÷¹÷ hv¬¿¿è8ëøú= ãZnxiTb #b„í»1•½`Tß"ýuÅýL¼•fP}NIªçú8üA¶÷Å!R¡^g¸6Ê=ìÔGs‰ÿá™#& 2ú:Úš¨Én­õ_BÚe1[µóq€CAù)ÄØNnñ8ü|¨°(IÜ—]úïlÖï6 œ{aOùÁhCIFc„?|OÔóüÓlÀ 2ˆô&ÃGÚñ!:­r^"*‘È=&!Ç„Ã~˜÷Ôª„@¬íGމ~Âc–U@»êì‰ 1ÃK Iú܈qq¤³œE­|7‚®`â­I…u6‚% â:&Öl¶¸v¦ÓÙ+µ[¯½™Ã™éUÜ’^n%ØÃÅØ?ò†%ö©+òe™›;~ Ã,ô±û¾”Ψ eÄt±«$s‘ z²=ún‚8þ€‘|)˜ò˜±O¾&×iB—üH¼T"«‘TyÊ”?}=ÑÌ]ݾü6g¨7_lÛ­O$Ä „ö‘ßÞ¾dt¾`«Ï3ÇmNCb>”Zšãêf—c»,ï—¿´ŠÌN¡Ü°K£O²¤Êb|Ž(J ž¦&ˆ»Åœ# pc3-7G®’ž¸ºÐûêbù½KUÿ¾Öß\¡Xn‡ÒÎÝÏÍžÜï•ï _ÝL¾_¹>£Oïùð©C“¯†ñ3ç4dÛù2±îrÅÏɥ栈®;T<,­¢˜a,÷sMÄymD+Èiµ§³¿óëV9.:Ëçbÿ 4Em“üï4 š¸§Ñ²Ê¥d²Ÿå#":5jЄ:"°üñ¡—)„q|ȯº°[Gf÷ x¤Ÿd@ÌÚ/’’InÇ8(ìϹ䃵KzY½¨­Æã·/5.,ÄúÔµDAŒÐ]½Ã{H:)?¸¯ÝŒ«ТüÕ†‹N~x/xß¿AØî3‚ˆ^Qkl:¸RMS&܉€G,mv½¦†@8„è´,¿Sv¹gâúÆ”–-Ʀë°È±6Úã(—y)íuqPR=÷ÿÁ:ÖÉã¡ÂÐ=«"S´ÌR…Ô{z‚á<@ò˜àØ‹Ö4ƒã0ô;üMZ ‡n^¶èïCa³Ò× j/_6ŸaS{NßA”LZCˆ¢ØsZ}0¢è9mêtÅó¤UR÷ÔPÈ{;;‚†±áŠiéæG¼ÿ¹ÐëW[ÔO÷sõ³‹Âë?m¯šô¢°÷#50tüpoqFÎS¥:©œ›ß–³‹I°¼ô¼žâ´6›ˆNyÕb²“•¶W/j)+øè¥¿ ˆ…Ý̉שÖt—'„F½Ähã O&mdlâB5®¯5"D«²¶³Ž7F¾Cßí%)ænþ«#j mS9f@WÖ8RD˲ÀF†Ù¨aå÷ïþ’Ý`ÈùÈA˜wOÂüÄ…h`ZŽ7¨»…ûJûÜå弑¼¢ôtÔèHUaİKfå5Ë¿ü_ ™Bþ©±3;‰nõòîçÿ Xi8ÇSl#8´µ;8ËÉAŒÊI—ÆÊí<1N˜³r»ûõþ´ñá!UË„Û5(Žõ%‹¹ EB&—4äòT²Ý=ö£ðé60€@¯|a¿°‰®t°8úW!ëÝ©µøõeV¢ñn"/¼Óœ3ƒ $ÌG#¹Ô—Y͆.ÂÑâ…ÆNksI«?)^—ìÊaJ3â‚´%³¼Üòý_Ç L ,ELcF5|õü6¤°Ä™¨«ÞgWý„³î©³Ñ+æ5±ÒÛ2bhzݠǾZº¢µ^]…§±üKÑx¯ÃâX‰4J²Ië2ÐÁ´ße v½µô³Éñ_¹!ùƒ2ÉŸaïÛæ†€‘JÅÔaíÔér[=\l FÀŒ´šà…#h/zƧ˜¬Ÿ‰’?‰q»šÓëÞi7l>¦ÅU$K¬b­S$þ1ë•7çïnA¨îOBë·FDè颼KOûÑbCÉFžÇˆÅƒvö8ÿ,Ã,¼qµÖi«ÊFIáÇü6TµFYœ1òn‚ˆp°>ñÛž/¦ÐÜ»GÇ'ûU ^ütÈï¿LÂqãH¨BÊDiòʸV¬E¼Ê5ÔWµ¸ªvÄ„t¶ô!Æ8‰òX\Á`l6^Ó••®Qû1ˆíUwÞÓ(‰ƒ+´ùØez „)…Ú¡áì–%·ÍlÍ=¢Ñ—JÇ$­ÂÀôP(1:Òpúëòµ±óËxqÉàØ$0H»ß9ÞÛüwu¨'¡²kcEG[:ÕwUP^@8¦J×OggS€:TýÄ ntõo­2<ÿWÿ`Øëåäßÿ×ÿäèììåÿØÙÙÕÓÔÜÿÉÿ!ÐÖ×ÖæááæÛçêìÿ¯ÔÓÒÕÖÖÿ3ûÎÓÖÖÑÿ#ü{9±™¬ßª—¡ÝIñÞ.8Ž9|°YE\ë¯Ê4E ðl@¤ÝmÔ¯°¥ÜHÓYµ›ÉOäÎ7ß¡i+|×L†¶ÔaÔL×ÅJu Nï]YÙT®(¯£ªy‚”Žh)$6Ûd¼:©‹¿ÒÔÚn!ášËf?bûä¢d,š’ Š0{‹|˜vzwˆÞB×baÍ8gûÄœ î—÷Nµ¼»™=òÜn†ÒÐ_}–¾Pþe­h/C 4EKî^$ɧ~©ø¡.N OÓŠ#:I;›wÜNU¦0 „#«êJždtúÌ¿¨¤ ‡‚ÿ‚É[ø1 ÕŒ„b>ß_NS¾HûL‘ê‘¿µt$+…ùcì’PÜPi¡ÏüÃU$ëèm4je×vÓ(P‹²°þüx)Ú®8x`)µ9{ÓLŸ¨È$ÛŽ ¶D/%*º— müÈT[ê MÌÅù~XŒìÀZ-ç¹í¥MpP€Kµ”’ú caªóA§EOÇÚÖß{xÜFQð„Ø`Ó’®¹uOñb£¨ ¿Ú[1ðGÄÚ‡¶EyÒÖ4 Q9fªTÙî#”©ý¤òÖRëñkØâ3ÏØ›WT}‚áö`Œ1„NºÌ¤žâõÌ™4œÊ0cò#1q׺ ž‡ŸÆa4h¶ùƒaà t…j¼ó'Ã àŒ•ÜTñѠ«/eoTê5懕r•QôÔÆ‹Bé•´‰€Ï~Ú5îVç“LŒNU”±kÐV†*L_3 L«‹©Ÿtmª Ãfõ° dâ2$·û—Øg# }¢ÀF»kõ)¬ý3¯T²ôì”`EëZCPð$¬%zAÍe?}‚Ñüþx9}Ypúób¯U– ¶Ò£4~Îû~ÿ úÉ «è©…²Îü6#<ô•¿ëÛ8”FÆMIÄ&?Þµ8:µß™}ôX†#Àþ(R?2ç.1fv¦˜ôÝ™æSâ镈1×tH5áu@'US·§¯>Xrzýøè¶ø3j¡jq0µ‚Òtµë寿‹¿Ü`÷+ÕâQâ÷'tDs0Øñ¶†Áœ±ã  ù€ƒêŒ®íùü0E´kV2¢ŒOIÉ鋨¬ñ_SÏ­q9£ê:}3Éô ¼š„1¶MáVµ¼j8{ Ü^Þ(ZK¤Å=(b’~BÏÌOG¬ŠküL¯3ô®ÐÍ^¢gÊ–ÍÖc£¦„•J@(3Ÿä›{¥èML:3õ3fi ôpÂA­³ø‰ÒEt³>Ÿ«ßÝ÷m5·ÿŒB¨;F;uJQ4–D²‘'‚´DÒAE{{ˆá"z¯Š# šž²~S$ÁD.Ërf_ªÊæòKšPy‚üŠU÷žÀAþ.>@õÝÙÒؤ…‰¿åá[Ï §ÞôX´†Ü7 pFUöcÂüìÑŸ½½j­?j¢a÷ûñ³õº^Òer ZâⲎj°¢˜Þ¥!‡~´ o¾_šÓ­¼ü6PÆòpÐŒ˜'zF3y屺…~D»`ˆ#¤¬^´ÆxyM'5ËÐÛ*ì9œú«D lª‰þ¨çV زB‚o¨Œ }ËBÃr ÑY2ÞÄÐ#¡ùš 7VüLâ‚2cÏOQF ×›æ i®nß­˜FGpŽPýp¯`]h;ÈuÌ0VŒU²÷J~ä¼b}äð„À'J œ¬¹ÛAð¬Ñƒ$^$>ö:q²…°âe¼ŽgÜU÷™z³f¨T ¶Wd¨¼ôTØ© ]œpKç„ àcÑÏDV/tÊ‚þàé“õUƒØYl«Æ–‡’là k± ²Êp5‹Õ!²Ú È+ hùíÿ0èt XHKRFÿ§ñW>®FFjS€šM5YÐV$è*n7¦výèá’ÕûjâÄOœK¬CÆÝ þËõ¢ü1ÜH»Èápò]s\ÒÎRwEËÂÔ'ó¨uŽaãËUæ–¹ öÜÉÔÆ é#´ 2•œ×d,Œp™½«[òÇ @Ñàó8oWfs8•ô-‹³÷®ÛsOI¡¡nY–2wü}]6ÍžŒþ;jpÏÓÈßg¿~Nóa®£üà%ÄÌ9„˜|ïr£«™£|¹ ‚|¶¸ñj·sG`„å=߬™"†„¬6Å5M$‘T©|«LÐUX x¶Ògé­fNRʧ{õ?[àè€ø±å#X_AMŽ~—ˆJQäž›è*­n|j ™gü÷hÖ„'«†éB‡@÷!Žˆ\¤‚Û¶¥xevã!ÑéÝ즼 Å‚SŸ¾A‘'X}c–ˆ2Á‡"”ªÁŒÌï•e q“¢$çðg¿7ĨÂÀ><³àYó àMŠ›"”tB³Ãv÷€‘áë*9*ÞôJå¦uº¦ Ý/» ­Óõ's™ ôk€ïÎ0K£Ó”õøÂ®apFÒWf`µ;É|>üTCᥑh`e3ÓØfr†qvÉŽ™Ìow‚Š¢.p'SŸ£7J¥#¦WÙ½ÛûÉQRdüXÕÆ3ëæ˜«hyïà Šþh£uÑ©™ˆqºÆÿÈ÷ˆÀæ` ·›h9ù_‚Ѱue`r¢’Å”2_BhÚ¼ÝIþšL¢ QáQp]•ÿ£Ugi5&ÉZ…É&MáÚ|B ÙÅ2«Î®Á@y36ïh S7Ö:µ1 P×ëDyCÀmÀ[ô1J/Äc³f*÷ìF@ dÜAäu¶µ®vÁ…Uf㯽ñâA?yÛv%Œu`Üp hga%€üÊýß[aê »öÅDX}ŠžôdÉUJù ‚JÞg W)g8*5Ư–ŠM|Ìú rÝ t—Dc§Ûxü„mS­f¶€*Œ¢ÇïE,0¨ƒõ]zp‚0/’»¬Æ×Ùê5¦â}ÎÜ’žw'œ6)¶ºàF”Ì ^S,L©*9‹îÕ„[ê” ‰4¥á°Ò†ô·".rN¤K¹/MøþÆçÑs%)”H¸ÚåÀ;&»–ÓŠ,‚©¿–ký5úh4Å ׃¿©ë»bM³ÿ8ÀJYò¸ö Í eq÷Ymã4RÃËS…2š™rõ¨¼Ê¹Á ÕÍüÔ =Y+ P£äšýä£ÜÐ$ Çÿc2ÿèa£®°aJ ›‰dŒŸÆ¯§0üX¶âD¿´óê4jÇŠó8.äNOsNʺmˆ©”רƒˆ´šIª¬\/êýÆ#£~ë ,ùm”Ðn¾ˆÒ:ó‹îçõëAl31“´ýeROÕa‹ò€mmï%Û¬úâ¢ú¡¾×Ô³Rƒ'¸7:Ö¥Ü&Ú©ÚéÔ?Ô”º\>V9Ô¬Ž«ã’¾H{YXÊM¾FÊ4÷@)QÆ>”½²R/—Ú1ž Éz+qnÕóðp´Ô|åiÁKI&NÿFTâð‚qÍcñ Ôú0Ü>b ~‰ÒàÝ8³B0i•F,ÅKüL³ÁЩËCÞѺ4#UòÑAßÿ‰íÅÕBÛ@&w_÷º¼¨¯^/ÉŠ@ÀðHÁë×ÙÁ¸Db}¦™¹ôz;vzU¹¸Ù;Ù¶è!È‘ƒ¦ö+%Æ4umðZ•ÙcïÔ°5äÜ‘*ˆ8=S0ÃÀ£ÝI |— Uk<̬e=iƪÿœgI”ÞÙ­uÞäRÂ~þ©À¤ƒ6R®Üâ‘y fg¡a¸z\Þ\úM=tƨ(žNuð¥ÓlÁT¶€+§‡*Kí·»ä¤w“Õˆ©hÝ£sUW^ÁÑhºךÞɉüL¨qêß ~êoV·XŽ¿ñ0 à9Æ&å#ÃàT¤‡*J]ÛìN¾’†TaÛÜ0ÍÛÝù¯í¥—¼ˆµ5á"1s¹Íùÿ–qšß`¿déô/N~{ï ,×»°BrS9˜Ia j3b© ªoö+j†yo¼T¡„ÈÆGøCêuÿ§o4ƒ¸DMžN4ìi"`Ñ8ƒúQŸAÓ<Èþ%e³!ßM¥Ï©C¤góX³ 9Î’ƒŽ‡ãÃÛ±‹rf£1ÍÐõw“ïd:Q2õÅ×8pî-ã“À A¢¹NnmMüIÜÕµG€©H×û>e¦¾cun»õhû£Wi~ š!œJÜÐÍáTz†]Úm©QªoVZÏCÛÿYÏ^žÏïú¹²›6æs¦>ÞªŽßq†òÿLlb"_”øÀ{@œ€TÁ`î_|u1ës˜¤ºB¯-Õ™Õ[¼ÕÄt$GâÒö^ùK. ¼NÕ÷ËËëý„èýk\E„=ñÿy=§žÛß©U÷=­ßš,ÓÞ DFÉlP]z”ôL S8µ S °uvr8;3^ñò×çóÖ´çÞý¡vâÄÿÉ6*8û ü|®!ãHA—}<¬l®^~_÷êßëê[xóŽ 3Ð<Óhøú^ʇ,ü›Y:ûêGCÏòD‚À X $ti¤Lå`àp¯#/sqå{ÿW:Ê‹ªp¿ú,*ˆ‹˜ý ðng­uW Mfhhõ'Ù…BM=ê/÷j1\™Ù~iéëk¾J(ùô $—Uh¿TÜ‹uaäUù‘Þ•Ýqº .ôh¯ò6bsnÉY H U,ÕpeÏNå£DÿèÍuR{KQsð²<Î ~vœW¢ˆ R=C2½9®À˜¶sT ߪ¹£µûg½6`õ½8°h9)'9O sÈ+ 5¼°%—ïò÷oÍZZe û: þB/O=Ïx¡ê[%5…§„õÕ£ 7n²û?†ŽöÏÈ¿›¸ð‰uô_[“ ' ¼`§É^ëó,Aj_Ø`÷ ¼>)I¤5ê]®¦&¦¦ t¢ 'ëå]ÀÔ©føVï+¬×ti§å0ö6ã3´¾O+À0YDèþ WÞ|® ž=lŒûÇk¶- ¡ø‚ÜÞÞ²’á£öCüàÍÏSœ0µ™¦upX ˆð!bü6Nâ}ÊÅ´Î FP$Méÿ EÊë9°ñn|„»Ó_@vÚ”êR¸RyŠ`ˆkw‰ ­‹)CD†øá¾áõÛ¢ì¢%úFª¸pŸ '"-)roU³4÷;\§O¢‹ý³Ñá3ómž{tt‡ož…@ÔU Læv½V?Ù6ý_#ÄŠq0ScÐG”ÃÅÁ§Ô|«2ÏÉË ž ¥×?›ExJÃþo#ÖÿQµˆÌ+w0ðÌì§Jw›Å®¿Eqâ2©z(Ó.ý>µñ˜ Ì üIÜù|¤G6ÿ²dAÆëe¡óô3ܹÊñï09eô´WçÛ^$=£‹“­›ð5 T˜Rå?(j‰›¹ªúçÐÈÕ{€ä_åÍÓQÏGUÅ`ò·GÉMþߘzÐÏDbµÏ7 ‡ îÔÿéf¬kQm—+Ò»›çéU„«ßÛT•ϸĥævѯqÈãwÑyÍ1EüIvg±2Ös^ÖFŸí”§ºãµ,Þ²Ü^¦SÈ!"ãă%Ê/“Ä­ÜA“À‹y¤¢Ê4¼ÚüŽ›úºûTø0@´¡ïØû¯¤5ôó›O$eV“Cÿ,À²öèœ=ÛS›q¾‹å.08‡Ê]%רė:QÖ¸ìc]õe[·1˜Zš{æ F¿ÁÞ®yP^ƒü´Ž±Ïú¥¦Ö|ò¹än)^BQuä¤â¾†¼1u6Á«N Ê¡üdÇåÒ¥¯$)°È¾®^‰üLÃDœd¥¡Ð ›ºú׆ÚfK×S¤õlO<¸‚›å$K •óR³îZï°>ñ¬q§÷öÜPÊZ°á¹ -­ºw ¹7vÆp"NyJpòĈÊ!<%{"¤U\v,uÛ¹“/úÏdKG ÀZ¦&õ¬¨XqÆ~G=.ÄDà{ŠÝG|^AÜISy3œ.,gºe‡X³SõwÙ1©oÝJl¬hí ©dý­5I´²ëQ>‹ÎF§a aXOðËß¾]Ý8¯®XX)n ÁüLç1H¥mõ€»s§î7ϽԹt§Ñ.©ØG^m½à¡µ¯S¹/à°D?®: –¼}¶pxº_¼@.ìpÉǨUë²Ç÷™Wg¯/~¥àüî)“3£¬’t íUS½zÒ+É1ò2l¥ã‹¦Á¼çèuƒæÙ`lêwÑà5‘”Q16ýÕäâ¹Éj•)­Òû½è­e±¼Ž¾ 7¿c6TμsX!ê[Å‘]0Ô©(îÿBÿ,ãnŒ÷§:꒹ǵW!ñÏÇ*uÒ«»]ê±eü Œ-ûNäßo}¹`!·ÖÅÌÖm”ÁîìèÅšå&Ðù9º  §²ÔLŽ„ ž Œ\Í‚Ðm{îÍçj¡²žDÅnÏ}{pɵfce?h©¬2=¶Ä„°èĶB­œÒk„ÁÑ4£Âÿßzí»9pö¡¤S.É^Ͳ¶œæðæö¾Cäß­¿Â-·Ya‹›ÞþB3ã:WEÝõïƒ"ÆË7=HÛ–'ŠÄy'R±­^E ‡~l÷ð=m‡üÈy Ëì áÖ %V0µ3÷·Ñyʈ–ád¶Ïê£êÄ«óg?>›T9ëé ­*ÍFrìá mû{oj;u‘z­äªV¼oÍz ~škÆV­ˆ ¸ÁGŸÅ+k]c–÷’¨à¤ éÀ¢l-zã.L0ËÛ/aX½üªb«Ý[E‘áÂwrUòÄè¹’,,PFèCŸËP]SS>".}haÝS üÖ•‹›Ä ÿRÂzðD<N%è|E¼ñYf¿%òÚâ,„ò¹¤’5†à·:æþuÿh¬("+62RÂ4ºè°AäKÓA­íºú[_qqÖ+Ô­üù¼ßÕt<ÉÔØÝÕJ¿iÒoS‰vF¸;Hô E\ü5wÀ}Scï©}aîLñ~‚ÁZm¬Ù–…xîžüèh±½ n†±±[À »7ÚÒ×'I‡H–zÕw_½òT&ì5~èêUËãqîþ8@=r/¥ÿžbáO,¾US‘Ê%8þ„m7¥Ÿ›m¨3þÛ— z·ÀbR(ºfãü³ÂC+ùÌ,*Å«ÀÂÄ: yçAÃQþdK‚oè:i9]”T ü­mŸUû0ÇX´.`Bï lzÚÃ+/MþެY=¶H~{eBŒÖ×ø”’KwŒ•üLâ•\|Vy ¾š`AÄxç$–z:°AÁ Þ”uŠ Úè‚A¦ø3(¦S˜x“US$4ù¡ˆ|Œžs*d²œ¸ÙDȽwЮ:Ú²öÜ=j„‡»©Œ£l¥¿Õx|>€>ü/S”7Š †]ªçZFdönuF«ÜP·˜SßÎsŠÚqSŠìÅÏõVævX†„¶µ§ÆòN°ÍÉ'ØåpÅÕ=yò­¤Íc›³E÷PPÍx†ïÍJNËñZ—mwùÎã{­¹9sF¿Ý }>ò´×æüMuœ ÓŠ”ÆñH‘CW…•êÓU’> ‡µýãefzú£9’§Æ«ÊÖb 3ÈœÊp<\£ˆQEÈù+$E¹„¹Ê»L“ñ̃Wl™¿I£‹ Ó÷=D 4¼¨[ûØF2/øã0ÁêGfs¬îùñ ¾HÏò¶»‰Ï`+§qþâ¼æSŽ˜ÇN¦LœNe¤Û¼©î¸_ÛwDÖü ë —¦KÙ*“Œi»–¿î¯oNã" ¦•‘ã R)­ÃvÕ½ ¹a l Á¢Ý=Dh™2vÖ]üLȱk›M…]Ľñ'bc6—[\ŸÕ%öÇ$¢òÊS]Ê_˜øö±áì—`3Ÿ·Í«ÐÎÿ"СžiÂаC¨c2KÊ=ÞÜò+)^(G žVïŽ'ïéÚå<ý:ùÊ2]ò W7؇ÌÑ MÌFîý4+Îê7×fAšï$¥b€áö#„ó²-@Þ”«ýüÏ×QO®8cØ+kÏy÷?fà&%9€¹ ïmÅL) }wMTrv‹%êsûM’¾ÛZÂ…stÑOüL³œFs}úí«Ålø¼ °ó›¦f“¸0šmë¤?à·zSͼA½hÊ{ÿýà½æ‚ôÀ=;‰Kݹß°æ1Ú7Ü Èrõ'GÿiT…ü£E¬—h†[-ú“žå­iìÍŸFÓûK§@³þaN’·lôøšŸjô\Á·>õÌ*~çí²Ci0Î~„0Æi/ÌšO²r˜Ëmsmm;—’Ãä” «˜>äÏ1‘—¶jŒrü\Ø?DúYU _ÀË¸á °qæ¡—r騺Æ"Ú®Ál¿q&ü6O-«ÛÈó}~Ro'œ82C×GÃí¡êC^5_àà°Z+‘Æò£«[:\LØE™·A âÛw<ä4bnû(¾G÷¹lGô1/ñezØìg4–ƒ¦Üº–õ­¯Ü|Õ£Š0ß®šD Ô.­­¹… }Ñë< R6ç{áMÀdжYMTÀR¿¤v~ÑÁ>DLXð»;±ØbVdÐÏ£ìsLN¥_¿+ JÍS‚Ìšö’s±CÒ³Ùùñ€øvrtDG´0»m%²aw=7æMDúo%2Xž!h×ÁüMNxF¦Þé‘Á_3YnRœPX†~’€²’jçé {z5œS2 õ*W†yÄûgR‰˜Ý©Ê~a,¨Ö?Õ¼ºR-4Ã|+%¹ãìÂúX9ÆnK›bü.î|~îa›oô¾Á̬;aë#µ$|ZZn×C”ÆÚJ u±Q(Ö¦á?ò×ôW_AׇƒäÜÙ Úyß…7^à2N( ­f23Íâ9™‹=ãTº²%^›Ÿµ#Kå_ ð'õ¥[øC|Úv–=V峿–8Ò/b€3Œ8²-Ó„/Á¡_¼ýüIîÙÊäÔ¾Að–eûtÑ«CííHŽŠºF€”xv"hÐÖ@}$êgýשZè.¦üÕɨ¡"P'Ý ¶‹êc½²³¡X$eÛÿ£ðèÄÓüE#­œÝýÂÏsÄÁÊÀ˜+“÷Ö÷ýmqÇÃýRbôªêF¶zªh_3MæYП]“uU4U îËÍêáðÏJšØûXïíð¤å­þ²zÔòÿò?Nq.E•š÷@Ô¾‚2lÒ}[úúÛ˜qiàï¶€MQíØ^Ïv×ö§³®°Sk߸è1rÏáÑ „ïk4°iiì,¾üI¢°§pÆÀÐ ¿[#i7ÇÖ„W¥ËecÔ#æýün£V%ü Û4Û%ë7Ù¨<ÿƈ-Ü™? }Û˜]y"©[o1)iõa n±Íò`šÂu¸†Ýƒ‹“e¡cBIM¾>Ržž&ÙÂDürI{KM_ \X}‘'o˜;òÑåûοº_¢ o¶Ï4@ƒ˜™Ü„…³‚ó™ÄKãsóÿƒ< ÷,/ë5ÑÌaÜ({Ϧi¶%»Ï$=}ÅÌŠãBêÉwoÆvå¯Ý>?Æc(ʶE-1üJwá” ´©n_B@ß,ïlØ¡´ÊZdJgî¸&".6,ç“o9â9&ë/[‘H¨×`g*wÔ’‚VùÞ€:‘ÕäMsi íÕYÛL*F[û74ÈöòðZ¡Tßgv–ñBoX$œ©æg`¤âž´ìSÅÞZE‚FЄ¶ŠË½àÀÆœ,í·ÿl­ÿÇ„ üC¸D‚lZåãÞ1Ñá¶€¼DÊ8±t™5Þ.Ù«U^´‘V b¹· JÜt#ЄÄ!rQ!ÇCØÓ’{‚¹5ÊÏOJÝKÿ¦2´¦ g0üLÂÓ ¹Ð¹U1Aìu–œb @ùÆÆƒR·wi´7ÔããûÚNc/œsçÉšˆÎóA y\®•jëL–ñU*Ÿ'·+eoQ.qÎ&àq>$DÛQÇ`… O¬TC«ŸJ±#fßö‘Ìá‡s"·­€.ÆÙu¾„ši6 èɨù·ÔdÓd_ ¡Ò”Œ¥÷øSó5Ðx< ßLfz‘L$ôÑû /êi(sCà‘éoÇA2ª0Õ· µük$F¹E—Ú3pyËýV׌,»Tø²7 Ö«JÜ\²cZ™?㬋üJwlýŽ \í¡ÁÆÿZÖ¹¸Ç“d¥B{­"á?0³:4eá¡—~ÔÓ"E”<öÛ†$ôÆF&+Ü@0Æo…:-ho^NÅ_à-\Ÿ%"ŠûÓ:­ž'AËEnïëýNlpúˆðü òÐë~É¥gzcÜðJwOã^ûܤ×à”‹¸ÀZœï­ðÿ//+Ñ€23ž”ÐäCú2‚ƒp&Ú­ :À»/£5ý±r¦àŸœ C• u³¼ó¢â“$nÿ:Ô·€—¸ Í#|•uîäm9\ã¬t‡,ú§/c?al¨ü}[Ž­„JÔ]Ù ã8(6ŠÊ¿H§L{žÕiÜ/%fYÐЕ½ÙW Ác²Ò)÷¡]$ÈÖC§Æõ°©Q.¦E«ãh×8‡–É~Z\RJòWÍÿ·{éÈEÄ dàXqUw>#óUöìKáeaé 4O¡›ß—kº‰«ÝxÝUi÷ž˜T16•EVdž@µ3~¨8Pâ¡Ô…Dñò0«§&-83ž²u1ûôêÙ­‚À‚1|l3“Ž‹™’º2a€§Åj}3ž:þÐRzYÒj›°ŠhŒj¢ùQвx—Ÿ5+7 -°U†6ûÃm–¾;Qféµ\-÷úGÇs²ÈV„ቩr›˜bÎ’û ÂF垀‡1øõ-Òu„>--ì<~çq80âýÙqU®âÙ+o;"`•‘\®_Š÷îÜЄlÛôkbY×À‰6}è( üEÜÕÏÔLÙ…º£TŽç/F†-û_xGÀ¨ýyu ëÛÓ¨öv™VIŒ„ûŸJèÎÎ’Cü1€îÃú$N<;u§-(ŽFç£p!0ø ¬xy –—ƒ™"¯êLk·ÂWaGìMvÎÁ© Ã^q•–Í*ô¤á­)ø‹‹*»/"àGrUî;:‰RÕP>¥À=êºë§€úú+¸•ÎÜ{õýzÆW¼MA„1OP‘­Ù"±”Γ~ŸhIvò5Ø€JI¥ ¡Å3hjÒ$òUî´“¸‘2üJ"“ˆOíž­ñߌb›e#Ž.ín¶Bž‡+Tìùù ‚©,ÿ·¹7#‚ å–­˜Çkå€X2ú$ ª(tÚ9ÿ¶¹kŠE^6›ÀJRÕ:d7Nk°_~ÿU€"=™vwT—8 ”TO_Ó‰<—¡ÇÞ¤«Ø­;†„µnöŽÜî`7.ëæåK·ècÀ(ýÏJ]BZ&‰áŽJ+ˆÍÚõ¾Lúãë¡5‘Ý»š½â…:¥p„¸3Gk*¥w÷)å$Û-"34H|üIŒ*ÕÆ! ]¯v·rõü9Ào¿ŸV%ÿš¢×ñ‹®€q Ú‡ Öcd£_Ý#£Lé§YPbš˜¡’|ÅÁÀá™Ô¼œGV,#¬ŒRçÿo)R€ÓDhQ ,67SWJœ=¬Îc¿ Ê©]E>Áí‘=vêMVïôáåòš@æ q9IMýDEKs¿ú~ú"­«kˆã¨ÊøˆKÕ¿|»î$§É&©uyuP^çþ-Î&ßë,NO6¤(‚E>J¬?Ê–F%üL«¢ŸcÈ4Ì!‚˜çúÕ%‚ú«yƃԔëµBí©¸ï¼mk{]u÷0cštM \Ñqõc¡¸¡q’çÃíõ8¿ß¤ ›OûÑ#è :›Cðí± •Ý¥®Ž]ÖŸ hz C2~oß òýÿSx¦ôÒ'Ä _<+wª€öΡáL4Ñ­+£J³Éz7ÓµƒdX3Þµª’.-7pëÕ7:ΕŽI çµéæôTÕˆ…È͆nÔ/i­ M]=ð€Æmªb½ºF= îr+50üLØg‡¿Oú2‡W‚”ÅÚOoÃìä¨N†±:¯â4Ã+]±Æc-CAýÆöÿù&À=ôUcº~þœ\¦÷ÇTŽY6v;Ýlæ—šeCa뮑+ñÖLtꇺk¸Zû6°[Ƚ§¬jhïU¾Ô~Ë¢Qýh¶†Œ=×1—Õ<39QÀðÃãÍ]P/apéIX | ƪ&g6` 1¼{,XÕÀ¡áÙV]¿³’ãzR×Y(çh˜ô៺ÀÙS4ÄÓÌß÷Ý=ÍÈ¿ÁüLØ¡šyÅÄó‚žÜR‰k™]€¥Wý¨†(5Lý-OëÔ£ €ºS‘Vàs¶Èž&ï•?Ôk¬õ•q¼—áà÷éÛ8øËAñùß»cJ¤Òæ[€ÙðáVIÍž6Ýu(@^¼X÷œfºµ;òÿ‘G¹fä¹ÄcK«3å~Ë5 *‰½ô%–£+N™*?'*ÃÝ„úábÙ"/¯4G]'4Ðïíë…Í_ý‰lš{/öâpÏw)åò@Q1™ ën< ƒÖãq…W‰£]†Vü|®,«Íb^ós+ÒKë„NXäz½6‘ s7yçœÌ} +TmÉýîz ¢„péÓ¶ÂcÝ!®º¨™gøyfq­súÿd&°W,ˆ¢–ú¡fGYüäÒNøéæ„‘%ÚÝTnWæf|‚·îëÇ[Bsï(šÒ´~ŸQ9˜í IS$Ƽ Š Àyí¯ÜEèMÍß&G"óä4L}²Ä¹ªÌ¥hÛKàHø¿Q9fažO­s×ý‡—ÊWó2ÀJ÷„5È«9Ö«¬Uª/v8/A†™g4vÜó×G?÷UG­q6â2HÒ“½sê›cÔ£s+å–­TÑÚ³Öz…Ç9FÂ2cˆ4bë6^X‡Og O5f0áàsº§&sèÒ*ÒPÕt7AãÊ'üL¨ûìO÷°<ÇÂ×ås¦n\ï-o]ìÏVÝÉRxª$H zŠõUésMÿ㼬»¸G7;°ŒR^"f²LS$;CQ”ÍîF²wî=¿‚KRó{Ù ÓÞÌEOИNiYç?"‹ë´QáÎåï‰lK8j½|k¥¦œߨQI=­Q~Ä—®vª.Mº™3óÂK±míÂL׋‰øÐ}øýO™2b¸š—xé}{˜#Ýò G@a…H%¾_nfŠ…ÒÞºÎþ¾éÝ—kf<Ò_ÆvAd›–ç;™Õ\Ë kt AXE¥xm´?Ç—AªüL«ú¹t*FË×-4; ál¡% <ºÉ=º CôY_”½_¥n§ãiQ”.Ô-ë}¦S£z[ÏÀ‚}l[A“ÝSN6·û*yFž7ߊb®‡œ"@ö« ,¯7¤õ¥y‡*«Ü®ÀIÄ"Šâ|MüC5^0¬Öÿ.çYqæÂÑÈ$B0Àèu ü/~½¿·'ÔnõAM<€h2„#ôºØ÷™t“]ø_ëu IO‹Ñ~T¯a‘Øä£Œ¢ø6jÔ®’¬UM[ÐI^4ѲN`”€.¨žüL¼0ìþtü¦ë>0| ÍZVåÝ%³4†[õ±œ NŽù 7ž]Zh¿št/é9«yM)eů⑞½Nƒ|N^Ȧp1·A^C`¤ŽÚqtëBCuj^'Â\ü­†ŸäûBžì!%–ey«¸|lYÎT³W?Eçïë--„ òÕ÷YÐË+ C@ì`&øtä+.mµ°žHÓ$íjÎZáÜ24´b¯»'Wù ÒúPêÆöû­¬,»j!†ô›=[8S’¦hyœüM€×Že‹Ÿ:Yñ]RÜÛÉ$ÉÓ©…ÌÍ5 ’¢ÜN Rí‚JcKsk* §SKŸóq=zbüÂ’<ªáT#o¥ñ;&|a¼ýϘ@*Ó¯¿Rç6 ?!]K=$’Û‰"9¡? šãK4tÚ_…ÓÞüY5FÓñS(bX'­\‹Ÿ=£TT‡ ¶2ç[§°ŸH“ФƑ]€L6[. ½YÖ|ïtÖÆƒNò[lJUü¢ ­¶7—c!™ÝØôðˆ”¼ê¤æüEôú22bXvGjøÔ‚ÐðNc¨¬+=Y¤A]'Á¶¯ ™¦ÓžÈ‡ÌýšµßŒ£éÐuÁŸ¦KÆ—¦HhT™„85‡'3rTÖ¸G £À~ùQ’Nk¿1TÞ~ª²ï¼ö·½1é‘…ïMDóy¯» ’:í”lèXQaPr¡ßØÆ‘ŽôTβä{W,^\ùäìØ=ÊÈ8TÞáÇJD©cÌ÷ÌŠ ʳUÃlCa£¦†½Îö£DŸ*d”Öa®ÚI­RÄÊ™~ý<üLÅY^‚·VØZáßEr"#ª‰š’Gë¡¥°w[PâÂÁñky-³7R#¬}ÏÈzS'\Dit×Þêœï6éæ‘±_òz(å|Ê"•l½–¹Ã\8Š&Û£`ëuJ]h•œ¡2‚õ؇Ö»õ\>ÍieÒþ/`k1”O(à‚*±Mø¹N¦\P¥¯¬LB~«Qá/`æîP¡ã:¥Øri!G³Â™Å4½G’Ï }"úʑɛ¢ãK)‚Ønš´bÙnëÌ=Ñ”ü|©¿­v:h¨žò¨øQ£jèÇi‡¢V¨Sü_ £.|ü;Iœ_r–»^ì Æ½ò4;Œc¼„ˆa¹8‰ü¹¼ÁŠõ©§¥ý°W #Õ?ôngØk²Ezêþ¢ï¿G4êò¼çfÆbÎ`nɯ¿÷›Á*™¬?’#¤òÃ=ÿª-6êè2À)Qÿgñ˜ØëŒôÇsÛü}JHUs 1e ì.ÆÅ”tm†6}R÷·ùê ÝF÷ÄžÿÏÉrðjàBÞ4÷Á@‡NÛÔ×vÖè1¨Ã¼¤×(Ó#-ÛÛÕKL€@h­eÀÊNÆ7•_¥â‡·ùyXÕ×8`¸t*ä@»ÊA«dvAÊ$˙ʥ¾ÙËÁR„r2¹Ö¢ô2¸÷]Ä)zØêOggSöTýÄ nu~[À:ÿÛèÛäìéóóòôð÷ÿÙÞÞòñûôÿÚéèëèðòÿÜÿHÖåêßãÚæäÞãßàÿ¿ÿßâêêíÿÝôüM&½8—ëwd^Aÿð_ òà ;»x›|ô°=ÿãÂÏåyÈê?Ò˜´v@}U¥°Q:Òl ł׋(ÙT¸Ëع)µÛù—Úß“)OôˆŠ£ýÁœvždëƒÔF-èà¥ÚAe™çv­¬ïÜ»gq½ U/?ÁD›†¥ÆãUBß.@ÐhÄd“/­qü~Ï'ÿ¸\]–½pkàÂsxš!­‘KLIVǶˆs(<’‹Ïò•˜Ri=0Õ%z×Êð¦¢LˆgýÊuælÐ}¿ 5zFcüUóðÍÌczû÷ËÙBïN‰v÷}w¼D•¾:òX-æùÏšåOï q´‚ ÐUL{oŒ×-WKÃBÏÐ@e^ü†buiYL£&v°bŠØ@7ÿ×ncýû»÷»P½9ßBÇWÑÎHù¦’OSäGõ_õ§ÎïÿòIøSóõ±$½{pÜù­6¹FbÒu7üu!Ò>€Ùš1yʉ9§¤BVZD™÷RÿSå×ÓL Ô…'Üls["ü» n¬È’7•òx´àŽÆ ìàjP¬n7¤ÿ?s½Ë¦‘¡¸3‘Ü hò<œT±a[ãMÕHãÕˆ©éÓHj¡Jt¤ŸS’î WXÙ´Ö”Œ'ëkñ ü†d$Y2[O¬(És¹ÊÇ?H°öëfs„JÄÍ<)$ž“–·u: ›%g€f§ïçñ 7kö °Ô•WkèN½EôH‹Ý@¸7#pæœf¹ÖµU¡’.ð]‡Ã\µ1Qù¨KÀP­`ÎÊ@¼K`B[É>H·Õ XX÷Š^²~TãŠ1rþòÁx€õ`è¿ÍãÔùˆK}^bIv ýï–"B0§W2œ9@°ÞesûhyX~åTÕØÍxìüa0é<¢|d c£ÄÏ"Bx±¿³uÈK•tYýmfA\GÀçé¼w!üMbòÚ.ý¸ýöSÕMÑm\d¬¾oªfÀ[)i5N¦Ž€j Ù \'tW ãöÞLÅêø‹*qIl –4ÚÈèš-S(’Z”•ç –’…ï'WBCÊïçð-ú²Âeß¶â"¾µ-T“–`á‚yüL°,Y¯úf5RnUs…á`õEp`ÐzáÖÏ›¡DûšžÝu#ÔöôÐ[…RÃc_SqGÄô‘I!jª(¦ˆ·#‰èc¾eÀ2­Iä<ÞTV¤_VHzá £cšBæç«¯ªwC[5'h ã8ÍsQB[A¬mýäJIWÜRùÝFǸó6R¹ÁîòîæÕ³¶ØdòÍø#öúpe¹> ÎÉbts@!|¤ñ€æ¬à÷dþ»pX‘¦ ±ÝÐÖØÜ éùâüVyI ·Ó½?’z ¨Mn6T7]8k0VõRA€UVW±¹§ŠÏ;cüƈâ)‘n–)=‰Q“e9-ìæl™SVYÁÅÈajýrœøTÌËÊ't!ËwÃßéöH#™Žõl•þÉö’Å#Np°–­Asͧ¾µ":»™ne‘‹ è´ÊŽUqË8_ÕC”8 v¹Ë¯vû Ú–- ÊÉ3JÄŽ JLMó¥ËÛ’eWÛ—´ð5kõt*vÒDÕ¡òreójÄ•UhF²×ÎokN.FLE»,õâ-s³Ëc¶¨•F¡Ø@wñc•š?o=xÕàiÚIXDOà!sxâ‰Nª°B s夥üXZÀÖ«]‡Î czŒ¨ÏÒoDÄ£Eñªûz¹èÜë.ý‹H¢\Œ39ç­¯¯¶ëÍéâ˜ó\›ÊѨí ÖÞRZOw§*6îWý‡}‘«ÎÈõ=Cˆä(1%ù ÕkÙ0X 9h,ËìïÌ…ÔþHCŒ\©”/a÷Jæ4Y™Æ¦‚gÅÀôæU¯íóó‰Â…†s M†ÙõmÏÀdR£ënrsE×Á¡+€7»z‚>Ñ®V˜-†©ˆSµª±Ë4€Åýëq9?cfüqBÁð®º{W°žïPOšdpÊ£ïuêG!!þâøüÆÚ… O?Û‰y]É­ßÇ¿j _´ú†´ 1¼+‰©yeÏ„‘ò¤Që8kÅ j»>†½`¥d}ØÆ ¢;P+'V©:£ö\Ôp\œÜ²¦wO9ð*ŠÍ¡·˜ŽE±¶·ØV–Iå$lÈ€Ý \#yÿg^Â×ê¼ë:ZG>9iYjŽ”NHsxM9Gc•xÄ‘Ó⥬²ìê @PAµˆ÷Ek†U5 «‹¹úZ<µÿñ B2‹÷5—{T• ö`ŸûŸ;&ƒ$Æêaœ¼(n³Aó*ŠÕÈIºÙÇîs!üÆl¿Å$¬.%c¹(×Ò/ëöéSÞÈÙðQÎ ·HI  :Qè×47|l#Àh°Rßs_C“:6X·Ú”0S–cgI1¦ä´iK­eSõ­(stGŽ*öŸ‰S—·o6’Ðni±ýzþ[ ¯ É@C*S š /ž=°eµ(”h¨ž½÷jO”›I†¬ññŽ~Ø~õØåÒ· Æ×áçd.¶Ùšÿ_ê1€úþˆÑ“Á]–3b.ˆü_xLZ⢉iÌŸ™S ùãІé—)gvä}´/ïHÛ!nºóãŽø°ÛŸ­!üÆb@“xÉä×½qag=‰1ZÓË}Ø"ÌVåÓ¡-uIƒ#2ÐrO^ÛS‘PÒÏ1uD_fÊí8¥Ü ’àèKu°%Ö†Iœâ¥˜n5U!…ˆ.ûh=е[Ò"ùÁ[çmÿQ®z‰“×…¦¶µ[UßnõEéirUã˜/ŸQ{;‰ÛBýéIúèU›$ƒ­£ƒ§1ÿ›úVÀ!k¹dn3ëåê ]ó"Î6Oð wßT9ÀòWÇçã3Â-Ðo ÍÙlF._½¥X)Çô…ò¯I[%S¯ âº8Üÿ«ÅPÞÄ×ÈÁÝž “徯Þn• ¢` Ñoйoæ!ý¹É#tET;Ø$ÅC²‰‡Nö1÷\Md_Î: óz(iÙz­v»\.ïf4»#ÎÓ¤Õ”ï?›æM$ºzŠšç©Q(Ú°¾ïÂk½Î1ZÙi¯cI”ºãgŸ/ÇZEo¶ Ÿ,D* |¦Ò°“Ô¦¿Gù¿×³3ºî×þc83·â·ç¸]A¼„M©Kà Bæ[Â)Õ3ÐT©2+÷`×8Hj`=lWìwNü1˜Ìe¨w1KJ¶xÒ²]GiPPvlÔüó¸jÓ(t1iàÎÊ4O±Ï”0Ö†ÕÅD6úï ÷v.dÄÖ[<³ÿæHyôúöƒÈðû"ŽvØg-=þÞÖD†ÒïáÓ¤ç%¦V'¼ä  ©Þ IÎz4º ÝX„Ã'åãðIÇ“´¢ï˂׃ƒo.­Ìwà šÀT.„à'~ÇòÝ\¥.¾~~1¯Î¼2ÐôîØ›°¨õäîG¹ î_¨üô“)HÞpxÞQ£_ëGe…ú…üLæ_75Í‘“õﵘÉšj Õžã'C¡àG¡ö8ßúÁƒ=¾Úw'üŸQ§£èØGshÙŠ ©â¤è CµÌU»-&ºCñ¢Ï:×kÆØã®‘y‚€ÜÙÃc²ºGuvf²{$T?ÖxúMòw»aù#4ÄÀ— ~,þ ý°k]®F§z’T§L('à‚”kÍx˕Щ'SþX²µa^¾Î;fvC=¾ÒêÛñlñ5Àû¼‹˜“³ïi)1Á5ë1}³“*¡ßTå·âŒÍ,Ôžjëh¾I‹f¬âq„üîÐÃÔh™Á­$tPxR©Â÷ì’Á4T¿¨ü ’~ ¨ºº÷$l“‚Ì~!òo[W$¬RnŸñy­´‘ ¢À¹'%lj-¾æÏ^"´b rô 9»km‚žüŸc8Ù<Ü*ÅÞ^bTu™Óݤ rÁ¬¦È@å„ú±t^bDMÇÈ_@X³¯jç—Uì¶o•2pnd6ÁmM__Up§q‹¿i1P‚ |/ àJ“È’…Á(NuÓ3jI4î¬_/sRÇa‚:…½ÞûXú†d@¸ˆ·ªn ½$¿*MKêRDÛ)Ç@‹h–bün, ÒüL¨ìý4uah«ÖÊL•Ýmù]T›î>\Œ(7ò´d[LÚÊ*I©;<‚ÎR4`Ú,‹eŠuŽ¿è†ˆe'OòŸ¥¡¿m(0G D •ÆÂ ƒ>*ýx»÷Êð0_ìv§§gÛÇ1=.÷HrÊÝŒñ'Sê®A£ÞNª„„2‹iÓïx »Lg€ô]»›2 ÃáJݯ4ÌÕ«TŒ–l¦;-°ÄpœŒÕŒ'S±¯ÀµV?7ú¦ŠMVxTcŒQ³ã3̉ „#k^ø/çŒD<¾±O|²öSùä+‚šö†ë:œq|LüL»©P2cpú,v`úž)þ¾´¼ÁÐÖöÓNo5%Û”¥?“;þYÛóh)…•€¡ Š@²ò… RÎa™Ä©`B1ó‡ú£«ô¤ ¯RóùÄÞW\-®íQï+µà*QþV¤²®Ø!cΜ.ês°™õÝæÛCðð?‰5º<:´Š€Û$°DP²iµöÎö)fá}™™à…g™££¡Z¼’Úö+yw°Ãt0€©ˆ\ÌD¼àŒÊhñÉ]Nôv‰GLaúCæ­ófêxÁIMÝ`Õ4—Ýðbúñ9z¤V\> çïíòxÿækT\ÿSÈ‹§ÿ8~ÂüL¼öoŸ’…‚TV ÇY4¯Y9/7¶[O í±†X¿ó¸þƒ#óÿí5EæÏukÉS¶ò¸—ÿ‰¬4»èAffa–1$xN§Gô¾’wp3yG=鈀sçßǾtôƒÄÜ2í‹`Ñйõ‚Üê,-­BÝjÁ½ïK H¤Ðs'¾ «Å§'ô¡UõáxÈQö!bCò+ÅÆ s{_YR¼ï»Uze•>ùï§íÕ#âv÷šáe—<È“¾¶Ã<1Ì|ß*Çmc¸Ö~HzäÞœS]¥€DœÓM¯í=È‘¡Þµ³ƒwM£§"@ÓF#ëæ¸?Vè$³~›ñÕÈ™·*õD_L®[¥\FÒP7 ”ݸYAAÇ—õÂgívLD$…0.µ•zh3`æ<#~r<áo}ÏPÒÌU•M/GúÇ@¾2m‹ôt¢š…· }Ž›×4 ðîY ¿Ææ(ÀŒ+ïn oS©;¡EGrÆåíSxÆäÔŸæ~;Ñ”†¼ ‰DÃYï“wgt`Àršßô‰Ï© î9¦r‰ì­Å#ª¦‚V*³Üm1Ï|}  bê1Wèûapå‚ú‹žösküJK½ÝWí&·pã9ݹ÷¬}ÞJ­à)ŠSw£¨7mÍ:È£W—v¬áó–X³sÞ]HÁ]³ùtµßu%5Æ0Ô_Sãmr2A ÞTti¦•Ç€þtç4=i }"ý®0.ÝíÃéj¿ŒËí`à¡V¶à_Ö§¾ÎÔ-4ÄéìªP4Û7|Ê£ª¶Ñ˜ZçŸØ'˜•[ñô®Ükņ¹Ô•Eµ²ý?'|sfUÈ’KžÔtpɤI’›]wk­Ek.•DF^}9"ÏçD‚nù9b$¯—‘þ¬SÍËÀ/éüÆ„“ú¤:í4aG­ÎîßîMëÊÜrú-‹„ÈZzKRçe9gp­ÿç1à©úíZ”Ùù³ú9vÀMá·q'|ð-8j;À£l¤me(ϳn8Î â•^hZWþ-£K¯w„< (•'Ž6¸ïÙ-ì©7BtlX9´ÞN§`5ÆÜ¢-S¶µi Œ…~‘&ïQ çŽQa\´÷O¹ˆz¯—Í”'G«è¹ø=“j\¼38£w‘?ÙMžQo3š>{o8úBj4‰Ý½ñFhû@gº¸æœDï‘Éž‹ÛØJùñüÆhóô6ÿñf;A`þ87ÈܯŸÂZ4œ™ù 1â1³O‡¨BF°4¼S ¯—A(“Ê4—Ÿ^ó;–ìÛÛ0qÚqôg õºuÙ…»3 HE)ãx øiþkl¤§ZÕÏH€™å˜>ç –,³ï9&÷•H ¤Ø<51MRéÄÍ,@MÊiö\?’½8ÍŽµr$ÎÀ¡³bÈ(ÔØú„e·×óµÈñÁlYµ–o¾&Úü/…ÁL Ý7yxé08qqn¿a‘s푵qH†<ÎËè ïZøúM{³S!üÆ'Sp êŠ)IîÉ¡ã¸å.*M)%Ó5½•ÞË)ÊŠ c.Ê%] rf÷­ëðz8áâ#ÏÊLx±=…ÊaN®ö@"žXFrå5§T˜î‰*I³h„ø7"C¯¼ÐíýÍãÒ*ZzãBÁL«š4å/8w°Ó6}¸áñ-³O‘–‰ò®e@ØUŒS$Eýà Ç6â&EiNuêâ‡ñ¨/täQ·Ål‚ˆKs¯ñÚ™í´Fªrƨ |¾ UGÓy@N9éïé½!ôn<®¬Î™”‘ÉŽÚ4ç+ß&‰¡üMWKòVÐ~¸øâ%`•¾û9\p—&T¸B@ šÍ‹·Šü¤Jå¾l¡—è險;$i[X>;ƒëŒ§¨6Öèþ xE¿òÂ:ôP¯z®î6—œø¬#±­B¦h”ÓÁWø£cà.âpÔ5üá4Éåù2¬ªÄ™ˆGMó@;±¢Ÿ0ŠÁ†]¸£Ù†Áf2·‚XŠÜÉ L¾<àÛñ\‘Ïì¾weáÍé˜ò-˪y׸H¼¥n¡W|VrXI—-ðI Ü$žúÞL%ÅnDüÃkcô¥CT¢Ë„¹LÓ%¼g ÇÓ þÐÊó2$üIç{[aª}F/·˜Pœ¬KÆYóÌft¯g‡ïE u§B†ûÙ&¹hc Ý£ñ¹ÓJñLÚóܽ´–F`oÐŒ ¬m¶N*gõ·™Pâ0´Ù žžÚ«H;ýøfl+9˯3=é¤ü=;+{«MÛQ¥KDJ×Ù®´¨Øî8™2µ“Rœ«ÈsºÓ´û÷äÚÀ;ž(S,pbtÅÕ`Ë7Q/€yºð{­ £ß|õ|È<ýšö˜ p¶†ðz‡©à;8¥¬0Ÿ[uFçkAÖxÒ!x¾I`]àÈõN=ún½{ÍVŠa^5##`…Z Í ûîžî{ÌêÚ#ú|jð04 × ã-îÉßpDL|`ŽFDYð÷OĤ9Eb5ðÞa­k-æ~lDzO"éøì/Ù”û¶óŠŽ„ˆDK—â-áV#üZôŽñ˜ÙŠ·Ž`t^¬s\°í îå“ýˆŽò_B§ÎÆ‘Í4ëW«¡NåžgòÕžººÚÄÑëãêÕ¶€}1};æ˜×ò…p‚Îð—61_ÕÄ~ˆ½þ¶p¿™‚¯Ä”áŒå´ÿ2¼@UY|^|pí8#ÚHfj=k}^@Ê3œ¦W'Y—ÖÙ”sžpÌ|þ5ä¶àµðüÑÞœ÷A¡²è.â2fæÐ˜ÐP<˜½™üÃû{>›aã"ÈqæÆDzði«óÓ5ÒMí£Êtà¡Í€yMàAüë{:(ÐMÝê;çHØq@Û)æàôä~¢b6Á7$"½ú™+:lup%‡ÑѶ78h0¥ü}\)ù lš’N½ñ·ÌEÖÞA°%g‰j÷$ÖçÄž7€õà³g!RõFAF¦Àïß÷j©=àÝõK0ìþ^l®· áÅ- FoöM ˆ¥j4ARm ñeÿçá-).Ú7Ol À»²¥•²G-ö™Í¨g™ŸxZä+ž£Ï¼‚:‘òË5wþÿtÀWRe“oWØÊÿ~`P¥Rf$Ò'2cÑ}¤ §ˆ¨GÚ’ibá!+Í=ïݰ¿!£çø¾` ©e–yÓ Ôe'»1[Eݪ KÀ”]2¢Ï hÒ¼i3• 66=L¬Ù©NÔPzP…ôݡןU««ÀT+žmú‹§M&òƒ@Y¶ŠM¬àMÉÈ{e†—_–ñ,ˆ¬¥5ŸÁZÖßi¾ë2wLË—¹"‘ôO^`jF$ Z¿:8Éï:–%r­= ¼KŸÕÙøz&¢»”ļMŸ®°€¯e.qUÞü\Íx ÙLηË,Wö]Ƶÿ–…k2‰‘HŒWÆÝ¤gßWÏ´Ø1ñˆ@gäšCT¥îWôL‰òI´ÔêMßç6¾ƒ‡/NsCŠ`«‚³‚ÄÙîb€üNŒ<ìJÊEåÓ9&€ç´²ÏTƒÙ¸!Àí˜ê‹åó¶€á&}ÃÄ¥ñ[÷ëÖœBÎ >çHˆyZ„6Ùè± h?«ôûEbN'®º<õqaˆ*Ë·À²¡S&EV¹ƒÑýýŠÆ.¯ÞÝU eÌ>҅£u%_Ú".Êžúk¶Ç éúD_ÐC åÒš‹¼‘G"åGœt¼˜"ÁŒ[n]C×v þ“1Tq}µÄdvÈ6L@+ÆÌ¿”ÔIpÐSÅȱBʬFk¬GaG.Ðñû=n•—0Á˜|E­Þ¶H„: ŸüM€Ñ]Ä©Ü,=ªI`¬…Íù…¦¡nÕBL´× ®÷"yl2h©C?k¤0‚gá<ºQ ¦"yÀ‚kòtY)ðßY,ç•TQo**@œø 8”$¸ô.…9jÞmêÇ(ø˜k ‚K|e±];f¶yìlH‘p½ß4Œ•qвcÆ«®´›D+¾”åŠK=–Ô±KGÑûÓÅÖðÌe×;žµ_üìÔÁw޹Fs+É’%ý3‘ƒ ¾›p'e†rÒñÒMZúC"+¯Gÿ ;?å2¸^+rìâ´æœ`(YléT´4íË}²±ÍRM’s”±Ýü „ßÜV<ÈlRàQZj#/²à{V½ÏÜUÜ?èpuNP–F¶…o)~ËùÞi,¦Y÷‘¤<89\o#(-…¬wæÓÖòÚçy¶~¥‚Ê—}¶¨O7_nàŽl\\lÍ¡r{ cÙÅ»Ö$©MÑôúßÞ®´øÜ'ÝÌ™‡|üM ðè8ÄXUJ–=¶µñCÛ#Êsþg± 릉ZãÈÎDÌ_p½¹ìÇ_ʸõS)‚&oþÁÙr„!÷Q/¾²rÌ ×~poÂð€…ܰkÞòÜô™ÿÁ ¡:šo&xí|ueú¥‚½ì/§OU‡Êg$?Vp[‡ü+»2ÝSI£Å¡‡l‹©úDŽÜæ,õôSz¢AÚïÕ ÝÓk0šÛÁµýè³-è6]DZ·*qìI ¼Tü¯ÿ)t<Á‘;ŽxÕÕ$I.4.L¶ ÈüMuèb)LÚ¹™<Ì»»Q…‹ßíFÔÐ?hNƒ.²bZ{Ñö†œ@PÔ¾…Øö$êÈ+د²Iëèô)a¨„Àòyþ"méõ4o=§L½|ïU Âf]/b†ŠÒ& òÄHuɶѢ”)c¤¾Ó®ÀB&èþHð¸n°úfÄ[“ÊCÖ!Þ?óÊ’z²í`íÉ!ÿñ®N?R¥48&Ðhs{#­ìK¦ècѽîYz9/|.ZàYI¢ó»4,뇇„᪣O~ýþ½MØæ[˜óÚ¶úË5‡ÖPÞ*DžüL¸ÕaË[˜‚P´×5̰{¶œiâôMöׂí7VxÙÈthJ¤7ÏÆ"È#GjàãCÖ¥:€˜Có ÇöX;—„—ø?µÙ÷ä½éåà´72–´k­¤¢ÐþI?t½†Îºß³¾zT6ŸÑ¸b‚…Þ™œ€‚Ð ŽÀ‘0ä/Á…7P›ÁšƒW.²‚¯Æ?Ûý«ªLt×ð«¦0Û &6ÕìaïiûW8kSóÉU¯¨¨hð¼#Û…‹$×1ül²˜ÿçn’w°xÄwòR,êKDÿœüMó-%äEž°@-Õ¹ìOèÑ®'þqžöÏ6޽c˜iâÓ`Α²¤ÊZ†³p§jO¹‘mLqÐ`çüGVý«¡£Å´AŽº>sE í»ö@J0a{j}­2{ÙN©y½Q[Ù{ä_‰c²è=èóÌ›Žj lá$Úx"¼ %ð'^‰süëÚ*Â8ã¬÷5pœRäÎ>5ÄŽ…a<°6m ´¯¦„èr6оe“/Iº˜ÊŒç~Âø)ÚlŽî /údgøWÕ²C% $öCÉõè5¬JÝÒüKMCØKƒaôkPÃ$[•jVk*ݰ„  aq3ˆvÊ'Q›'v·E?`ùyï2œ,+6uH·Lâ«y ³lïn•†úúÞ¨Ã"– x9B¬`¸¹'^ Üþ-·ÿ‹Äïtë¤F[ÁUÔÁÁh²"ÝÊ.ÔDó»Yö,‡¶NŽ_0%Õ¨ènª DVaQ¨¶¶%Íj¾ý,¦ë\:°¬Fèé–äê‚n w$`H̘9ùT¤×¡4®^œ½ü ¹¶" vªî%ò5ˆ·’DgÏ£ÇCô–û#üðЪ¼[¤E¶€7SÞî¨KÀ°Ð±êMZ~‚º!èpÊæ·1Ac ÓDÌ€mö s}èüTÒºbl“rºÃ@’µzv ©e>} §ˆ!è`ˆ}åãúìÄÿU$0´ˆvGæÄí ÇÊb@ûˆ²É¢g øÉwäÍq͵yJ5 ¨„Ên¡Ã“±w¿Æz8î(#ã "&£ÅÜwôò-bû æh?µ=›“}x#Uïi~|"¢îè…+Eë'¶Û]Ð~€¥Pýý Ÿ)=b ÚÛ%/ûË{ÛL³¤”(“üðêòâtô’#3dê»÷ÚjÈ?X_ºðÓâ ­}CÑðïxAâÔˆWÔœuïrÒ%&ˆæµ,¨qZm?g xˆMéÙÜ“`jO ­èõ/¤ –G0ı‰æbP|ž×Ú©`~”Mc=kïÐØf³äA÷_óšn<ÐPcü2Šìœð㥱o‰êä×îØT;¡Á~*pˆºû¨xªÞÄLŠU: U"N”åYVòƒŸZtO¾S›6›ÙÞô}òå oÔünÙ\±…âIYyfòÉÍ¢¬-Rµü}\jQqQK³™I{äž8¼g8$";:Ž‹ÆDl7«ømu*]z|ÙJ/øE¾…'|7Ñ> ©ÃdˆÏ/ãæƒ} –ÞDª—Êweý"ÎakýñÙ—>S”›4ý³¥œD´Ój=®IÂý —ëÊÃDdpgÝ7”$0‡Î6We¨‹YùÆá8šÈÞºÍ(v¦îZIËÝG¥ /s³U…«fYKuêv²ÿjI÷·*"_¸5h?$ØÈZœ£vî:Çpã)½´õZ¦·cõÎ;”DÏ?ÿc‘.Y îæ!c*‚éý@í?.#\G—åS ½˜ùx)ïQ*](_«é›Br›ì)afýYÏn!š¿‰‡†ݪ’ï‘%óɪc+ܧ⻲35_]à_¾(6]öoÖ.6ˆ3Žò¾2^@¢ËéBý°J—A¢H:²©¶ÔíE:ÇûmÚà‰íZ=ÌZA{ˆn„n̬úñb2( 4IXüN2–sÖƒh]ú.9»Yæ1e-×…Œâe2¾0©~R×zî.S€j« Y,ÔÕÔQe²ÅÔ%àEr)V`Å©üM(RbViÊç3[‘»rŸ£ E¯6˜ÍnõyªMÄ&¾Žímq¿!ŒÉõ¬X6©c·6Òì„ ~僫áá[ éøàaâÆBHX`=«§hù“Ôp°7•Ô$ã¢c{‰ñºwà/!í{+•±öä>g¬+UýéiUZ&Ù$ûêlζsÔ\ZÆî³8 }…µ ó±)½hÂŒu(œ»3ì*0ä‘…!ë~faÁÉär¿#«Ý{Ã{Þ…÷λ¸pÍψJ“îáY ìVŽñp-9K÷׺áW1jH[ý#f3½h°‹‡‡Å=pÊDB³üÑuQ 7)';ô#z|Õ‡#Öü„‡ÜI†ëñŒ…Ò«XX$£¶§…$—¶l³Å“¨ZN"$;ÄòÖ7ªª7¥ôÉõ‘UYy™ç;Mn¦Ä$>JŒ Ãf"goqAo>„s%Í›»ôæ˜õ”Òä|g4œHfwÏûvy W¶ÎËÍõŸ9ÁXÍÒœ"¶ÓfûÙ¯#UÄc;RÖ"Ø+È9eù^Œ¨jóoÁ^Êã9È&"ßÌaˆÄäGfoF<IPžvWƒú–÷XhE®¤8ë²¹‰Kž%žöSÞœeÙÂæWÖ  }$¥lΩÁü‡U¡U Zîy±x›žYȯQË*ûŸÙ_­ÏZdÙõï?æZóvRDÔf-¥huaÚ €üßµu<‚ßOit)å5ÈO¢o›a-UZÐÜ–ÖË.A’íÔ—ÖüŒgV‚E뫼ÕSþ¯6s¶…<>Íàø¬¸H[%×Þ¨(å "Û˜’4yë¯ ¹K­8ÿ½S·I0j>Š™p‹=ÍâO ¶É–ØØždÚv)˜Îs#šÏ‰v‰§L)n¼%Û(*{Œ‚›¡?ò0£vÒ‚&¨6ßãðKïë4ÿu82üL¬!bÀîæ /ðسdV–%°ÌGË <»·£&Fe_ŸíN2œO7Y‘ïgÐOI#"+ES‰O¬/ z„ÁR\Î΀óX5âÜÛZþð݇—t@I,†Û8¦u“ß<;ަ·ï‰Iô—S¾é•ƒ±ˆßÎu»ß¶r]VvÕ¤4ÏyK»+ù;þCEY&k7¥jBÌÁ.Ãþ‘ïÿÄ(¥V„”&;ï kEGFò=tßF«à”¡ÄN)Á/jµ s æš³öávº›q¦Î<ÚFä* ä]œè𽾞Óò¡Å±P$‘¬¨ks? á aŽž~:ªŒ{Kroë“Ôå±WÏA%`ïëé621WáÔmÄZ-@Ê™Láã ̳ŽÎg¿r‹JR¨qÜ^ÄM@?^ò#a¬ËÜt‹„뇅#–56ÊPrúk­t'Jâa#Þ@×TzïÖÖ¡’‹gdhn3?£üN‚¸dÉ•ÓWîÙí¢ äñô%R½“[SdÜP$ȶóHQœzÁŸÂ¨4ÞMˆƒXžA%Yæi:M›hÌÚ3€Ì )jA¤k"úbY–0±ElðˇsÂùb \lÍÏÌ"3KÌTYOggS€±UýÄ nvó½ç·;ãûûùóÿÚèïìêìíåÿaëÿXæòóÿØÿçîéõóÿ¾èîðïõòÿØÿ:á×ßáæäÞäéåéãÿŒéêüL´d^½tBÑ‚ø‰W3‡¤ªôj‚wqÄÇ~\‚-‚ŸÈ)kç×ß„ 59®:e"Šú4w VÖ º(eò-fÎ/&¾·8P=êmÇ{?ôÞþó|—TOÆfņ¶~ß"Wau—i|±ˆoS…ª &l!§Úri’+†—Kƒ‰:÷\õ¢  öZêIÉ X™n¾ô‰˜¬eºÿxõž³­v†ß1‚èŠuúN»ÁšN¸(7Óàà!G…—'Ç ØG°`¨:Ѷ$ç?ÑßD§®Ä„²êë†5"Ù{ßü†lOq7åS»Hhsm7KÃãÅRBã.ç0¾‚*‰·º†µÛ’F ë%¹ny®¹]³Ó ÄÛáÆ.ë6XrŒ7ÞZ ö*üü0Ñ(ÞÙzVøîoh7€“ÐM®–Ô>Èíʸ%@eœá«H𥱠3<ŽáG×X|·óùüÔâ§7ñÇ ÝDZG?ŸÈ a.´™oÂT¼mX£9UÌ{îvFJܤ°.’”ç*ì#BŸ¡]‰Âjü\§ªWU,sbÝÀ_M¨rl•˜‹+¸ä˜W¥%´¤_]FØ{Ið,³YV0üM4áÂÂó ½C˜„NrnçÓ¾Ðz§Ö.Ö]MºZ¿Ž¹zX;š]ÚÙd´yŠ;§î‘é²ƒaYjPÇøCTIHä°¶´ÐÔï%€¸ó^-¡[uˆð…lX/ÓÙGa¸ŠÝÉèéÆjLæL\“•ʺôþ)º¾ÛN§ï´‰Jf½§ŠE+?3ÕlJ!ÙP¶ÞC÷³SÉsí# i~ ŠÍ ø Õ(”@**æû_P¥˜‰ y½YLZn¸äòáèóën|"l– ¾We¸Í`Š4lØ0|'Ðöã5C(” êúõ¶‰ÆŽèUbO <,[üX0R%ßÖXeÿU±žúbcS°¶{½ñSÈß<›þ«2S‡ß†s>æ8wz™²ðõéFØY\d-ß6ÚÆgF¬le´.þ©Ž„öhz8ÍÎÞ-#?÷šXepDGÓ9I9Ã2Sú…»m€ ) q½bBÔW òS¯ìõãj䚎 /•,ÁXLÄs¬¼ùG¼Œáa{yÄyºKP®B’ˆ[lÔ}oGLnз»Á?ŠÕÖÚ4n|©˜ŽÙ‡LP8l xÙÉâЫð[gõójUe%dìGdÓ¸/äØ4/àšr5rG?“€J)c»hÆ.üÃÜ·‘•÷p'´ÈZ¼Ä+ÉcVé7«F-Ê9èv‡.OsU'ŽÐXoœÍhKÙ*Ö„ä2KÈ ëiY¬‚–÷¼&˜ñzMƒJ:J1¢& ˆmèYãZX<ÿÃÙt xXW‹ItßE1˜0º—a‡¿äëÜH ŠÒߨëÞü¦Œº»´È´n¡Ýr1Ää>¨«NÏNvlÁå&}'l {ÓÙèÄ£=]°×#[û;—¡öFr–8lóì¦Õ k[Ê…ñS]ÿbóÖãË5÷¡×¢j×wå†,“n:>8Õ…+Цü}[Ê=Ö©dF›,tI£HÁÒ•Úc%&ãQÇײHëÈz]Ÿ3 ‰“£T&™fé®§„f'[ßÐO+øŸwc¶8Á- .>üx½¾HûpË~½¹P¯_zXS–̹%)aØ]6[¹b‡Ù'Œ2ž Y[‚¡ú; ’Qá¢S²aèƒä}Y7ApYaÉ´0ÐËxŸŠ ÿéH"8é“å?|kS "{ÖT‚@>Îâ<·L›|¾E²êc(:„þ€÷Ú*ç¶c½ù"Þ´ò‹ë–“ª]ì‚ cy0¼Æ"/޳%&ò?ð`¨èEØ{È\€ì¶¦¤B÷žð]¥'¯Âœd=|õ·µ©È©ÞÇ>ª¦;©&(!QØ÷&-Žû`—ÛoCìæ\ŒRl] ÄŽH…Ø•}“qc-¸åÃ\á}ñ€úÔCç?€a[†µ– fÂÙ³LMX¤{»"Dêç”? çbUW¯xÑ7‚Irä.?IÙýÍíÎëÔJ §©PDj†\îï"ÁKV¨LÞr6ìV¦ótSÈmíýúÇ$jï¦!KÛdùZ1é~)\q&‚KºŠ“‹aülľ¾,S0<>?Ûs?;ØkwH~_Ÿ5”ö_# Rât ©š×‘)yˆ-oßœh³R>TÕƒ€OÑM>QNij9¬Û‚Ô"«Â¶½;ökž ±«J¼X^ÂÆ¶øÅ8ûÌ×_>qÝOø9ãÁŸâ¢˜ëDKí›`ËŒL_]¶tª»ú@…™ká…-î,dœ®OôO¬ñ*ø2ÚºÎrWà]¹( #Äå0$‡£Úg*ÄK³¥"Í™‚è”\íËð—dˆÈ¢õ HlŸƒ—( UÔ¯¸ø5°HcÙN«§¤s«$šÙçüKǦVˆòH~ªWÄñÅV.¾w QS²Ff׈sr5õ¶Øÿã@7;(L…*­ªƒ“iFŸµqèÞ®@ˆERó·WŒÅ£í\ÍÚ};íQÂ&qÂD³ ;p«^-Y+#HZ䃸«9šŸšTeÆDŠç’ÃÏ»¿$²}gÆñYŸ{Eù¾å±zW&-L>©3ïù+Áb‡¼²'¨ò+Eå=¼j½öˆ=HRuÆTÂÐyOƒM4°x»–înˆ{€ù”µÅ­Z/qsÃÊú‡Ý,W¤ƒ'¶xãu•w ü8º!."üîÉ/ê” Á±rg†ïº—¯Ù¶ýéíê9÷—ºÒxŒjKhÝPãÖù÷¥›ólq®Ðó÷ È1l¦³°æXF ]þÑÒ )r«ò6 3£ç3G[$4̯çÅUéÊç3Bú¯4Ö4 cx¾éy†¦Ôïcù$½KÁø®ÝS‰Ê‚ÚÁ°sµ “s‰°]Zk% 1VÑ®=ÀXaþ9Ñ„$UŠ;·ø½V+ª W‹,ø¶ßp¹TÝ‘QdT=6Nž¢Ìç9JDUD|£Ôo@3&±/¦ …. Fò’üIêøÎ%ƒ3îU;ËBt½÷€Šóáäw`ÆÑqz6êuúþnEgùXMEï „x@² ó‹¥¹Ì ú"…›µ|·ñ.¬ÂçÜùcªCôÖ“¶‹ŸœÂv¨7A¦U”}Vj„}›‡Û€ÌÜ«ôÙ8Ä;úüÆbH¯<¤ ystólÛVsúþ…Š Ù±·²ÚÖ=R`ØökÞûõ¢n“¯Òöc7_” Å·ÅÏ&×–ŸƒÌ^8ðïÒós 'ßí«f@ÄaF={œìωŽõ; äKKýTX¶ ÓSL©½Û ;HGå¥XèÛq–YG*X·BÎÉ(͹¤ Kë‰Ýa˜²&Ö_‘~aÆM j·ØãŸà™¯ý $°Â޵°‚{` ‰A·u»¶ÛF{øÊ~v¢ÜòîÕŒ²d “‡êW>Su‡Q.¯ôsêaFöz†?ZUSJ{Î5"üIí[9f§Q‰—_‘iP%/¿6ý(þ<ã}ÍœgÊÉØCƒª†nþÃÔŽ Wg$R4½W‚ß–º ÀÖŸôRþÂÿª Çö.Ì+mÉöü< ŸæP£º™ÍMù€n·[(.|Ïqþä`ŸÇcÛàξØ;ÄÂȯš7Œ:$3Ö¤PIðµÞÿÆ_ÆÂ×ù×]õLäòù”‡•îô*ÖX¬þ†Â³ôèIP«åßãÞ–2° ÏÆÓ†Íg'j¡æxÉò±á¥«ñ´•9“Q‰êûßë#õ“t<Ï59ò+”Ž)øüï2´0`çr‘íôÁÇ™ø­D”Á.úo§ïtÝÇJmÃ`çBqzç®`íÐYüÔM'àÒ¯®þA–VS鋨aøíã¤q®C||þÍP™6î`Ï^.e·p2¬¡e¼Ný± Íàh6VÒý‹2ƒ É nl0±£û¯ArqOaCÚÒA`å«?ÝYq.Ù¬4«+Ö F§I÷ÜÛj`:ÅJ;÷rVÏéæ ¦} »Sö{ 5nÌì)­<&Òþ„ì\Q7ùð”Å8oQSóH·Z›?°fÈÍw¯cîW‘§Trü}²ÄÉs:fëñ!7’Zÿ„"•ÆÀé'ú•Œ³Zùp#€”•kçýù Ç--X:ôëÿ:{M?ò-–c޼doêQÿèH>¼gÁ{Œ6/(ëD{rAê+ÌYŸ€kwÂÿ˜R¿Cis9;ÚŽá= åèöÐÿ  ]´°ž ñ'VSžÆ˜ûì Õ­ ÝÈ:`Ò,r=ë:­Š‹<)Â#ŽHùq˜D{rä},rD£!þM2n«5»[²£½}îÍ8Üåy•€ò.øÖÜGNÒ?1E­Ÿ“¢W4°zÀ Qz ( é)1U½gЧÎètö'íË7M%ÔÙ0`‹äæ¡—xb÷nÄ"¬…:"ž ÆÎ™òuÊû%M¿C£8ëÌ e>â"O?DnDOH TnPä“„“œ*­'¢}ßÞ¥k;J&çg;NÅä'1çVã¬JcØ3?8yü„æÕ:¤ú!½€gƒJó†ÈSV?²t*ÍœË+º%­ (ùÌô´ÈÍr5Fš&ä§ ëµnÔùþƆ4ò}ÿ„Ør-ÖzoNx˾ ÃUÍC³¡(@§õÐÚÂLF ý5l¹O_§B‹˜ôÚˆÎç@[L¨I†¨JÌ­E_–ˆÔñRÙýYŸÎ­ªí§ã ›š×)wåùÕâRM¦BˆHÉÀ/âéGd´¼ ÷.Ž…¬ ‡+¸™®›†:§¶“,hõ{H¹ÀeââþÑðÍjoO£+&JPg‚ft7 A³Òã ÍÀüL÷”ʬd5`‘ö“Ô|9ظ€Ø¸1ÉëKý ¢ðZ¬Q)4CÉ:QzY£ý›øŠÝê ”âPé\d<Ç >¸‰¥Þ6ÊÍ)e®Û"Þêo9§4Üž²Ïpû%XŒ'AÉ?ˆ®— ûñ{÷”P˜õiG~Có:bƒÓU7 ²Õ¼R°hä  ¿é®h¼ëgs‚ãv (WïGZoè³?‰µU |Q¢Óx"º,Ye’ã‘ò’gNÏSk¿c’ ÆÅ÷v›Á)´º˜¶ÔD-@$Nq}ßφº’ã7¶(ž‡´HÿWb$ã±û5Ó‹P#Ë)—¾ 8Éa%Æ¢Ílj²,Ùt˜¼î±ú”’+zÒOíŸÏ)ÁÁå¦<'ž£_‘ÉŠƒ3ïäZ%ë™,4Fô >ÏÆÂÿ®æ©>—r ÿïÙ´üLÈžs–³¦T“nc9,š4š¼ |HœO?úÊ6k¨3°ŽÑV¡È4ò›7Þî¦A“²QZÝ2Z¤Wê⯱9=\JÄMÞ)vmðÊs‹ €ÈÀ²÷”°ëù?»ã3U `ÊEE0Òi°O ¼‘ì¶žìÙ¼TæG``RR©š ìÅŠ<½i|+]mó?®{ÛÇ^£YsºÒ2Íz (XñØÔæ|{mÛæePçÒ¿Iº9M]匳ë³€ÇÂ_TzƒÙ+wÝŒ¿Ú!7˜ëQ‚ÈS›>RÒÀrVA}üðÆDVùN³:[õúbDĤ×K$ÛO^{œÛyX¶rqI6‚Ñe¶•SŠKF¥^˜Ý‹èL‹hC?²àÚ(Ko*±ñ¹´2^Ï ÔMÓP¯ä—Ô–ý¼‚M1CòhFÍÌ=n/~($™25iØ)O!ÏoÄÍŽÚ†§ûžå Üôý+5ɘ !ë™Eq…s•‘JæØDƒˆVý qènZž‡ö–æâûµê9ø(`úT†H‰ï€­n´XN_}˜Ijs‚¡rw¶]dö¯–lfËå࣊8mîÙž»+»ÐÙ℉üM#TcJv¥$%;wŠ“RêH#=sšq¡ì§_+÷‚·’ÐbbL¾ˆ¡úhû„XdzH»oIc_̪d#\w¤=Ü+U5âÛ 3¼Ñ1jqW*ûê;UI ®µ_ÕØúH¶å¼%+Ü»ùÒày®;ì<¶ˆƒ ›ùH¯’¤x(߉f‡%ÖÅS‰1ÔMôÿ·S$’®u/²k;òbœ¿¶âKÄF¢s‚xê‹©El(ε…¯"b2iÌ]F¢ŸÙ6“AáÑs1Íé“o2*tÕåÚ-´Æ 2Q6aÛØ¥Ü&LmS°×‹ö›dÍa G£ü|“ŸoF4ì©«ó]°69ö«±¤é‰éB§áò§y•=xõEn cüÄqLƒKܤsX-ÈkFL@,àtLÚè…:¿,e`¾cƒü&^(ƒ_SŽ_NTK8“Ù«ß›¦kÛw/§ûõDwÉÖôöY°[¶&Æ!ªG‡Ãô^|{Žª@¬×5 ´`ŽE³×õ"|¾t]‰0Ð[Û*¥ A­ãì'ñÉšˆ»ÿ«3ì7œÛ¾…(Z+õ.‚Öa,ËU| ,§—…8¼§Ó¢6 tè|$fx-ÕámF“ò×&v[WÈ[ºº‹ÕŽÓ_Wš»e»õvÆÂCÇ7S »±»3ͪYooðÊ!AN<Åâýup$p®ˆs­’옃H¯<¢òá{<†&§ ¡lŠ"ö7¯ÝYº$W¥¯Ms],@™Ú¿ä‘—zb|²*lJû¢œÐ73öÈ]ÄÆ²ÀK>;À»žR "¿yrPP‹=wøP\ $ Ü2]ZAmNØŠÏSûjú§l¢ï<¸=ó'Ëž)&QtÞoq„®éí4;Õ5*C£tKäé ;_¦kòÛg«Æ°sª5gcY±Ñ }ñ ݪàÌ‚uHFVÂ.gìñlüL»$ÿ£ÇlZ¿Çð]™€O¸Ý@øúXäõ±¬> U ÎÎñúæS¯Ácyi’ ßf®•,˜Õa•$áœÁdP¢E Rί•|¼û7—ìýpÚ‚ò¥a·d°5‘Á§ßøw -´=¥Æ‰Ç¥2fdâ!%­3²h½Á´ô€²/’ï¶W|lÁ¹a”q¿±Ô„¹È=ÛwŽb³µÖ»¶#eøm»p16–Q¤ýtùp]ÃYu”á9.ŠÅeñóëU–ãïé@\ÞM¶¿—“Í]V2-Iö¸ÄÙ˜è¨)ã`Û Š»z¾ã VSßH€ì:¶«dUJe}õ,øÌ=ôE\L0£!õ9BšnÎðp&ÆÜc] —%Rw"ÒÅ{)–Ôs?ÉbHüÅÀ¸ö–ÔñIžïrç¸ýÍ]Lîé´wgb'Ój çÃ/c¤ä^ ¥™¹ë¬5‚>‡69µ@,p¶üJ}c·¢À‡f8ÂAm3¯Ú?oKâñ<ß[ÚŒlc[Q$ïJ«Uë`ÃLÿá/ô‡?P%.5œv˜­­†´ŒtM{s;SŒìqÔI||,~£*«áÄhAúSãÖ™¦È€“Ìž©ÍÆÁFð-•Áï‚´ÞŠ&Á»DOm®•Ì>wMGãó”c^Þ‡]œÀœ}•ó/,GØœKw(WǦŸ³IÐ Vgd”ªçu?¤E•½ÅfºÞíÈþËô"MAÄI1Òp#—“vi·/Q¾ŠÕ#¡A–vL‘ÏÈ"•o•Nÿs\Œxü/l«Š¸žåupú®à´%³Aë°Æª9Sáµ;¶Û_áe๹Úr87Ñ}U‰±.Õžÿ 0Ïý 3@­9b Ã.Ƶ…Þk¿j¾Â´ªˤó2£9y# 0U ­Êè˜Y‹H(é™×ôx̱§IªµÒ•Ycú«¸ã7d?çj À•ãØ¨Œ¬VìoDAQêWžw}måj¤–^ñ&<¯·zÇ^ªnFôáu†%|øµ¡§’ááY˜Î LOë¼ÕÔB&éÓg54à·áçœUt©Pïý³§×ÿÛR'=„-C"ª<81M}ÔbhézÅÔüL¶œâL¼öM¥Í{×[ Éó¥m0zv[I¬óÐhß ÉÌõ¾ Á®·^ÔTÜ,~w ;a‘ÂM×Ý8De øX,ÎaÎ5¢–%!`4ƒ-C–¤*z_&Õ†”õ;£8, ؉ZA©oóRñ½ýèùf‰Š6lZøÎX@Ÿ«+šÖšWÖ!Èqy›–5k[F ¤Ž½Ø!>4Ï4O" ß’%ÚœÜË×q£OWÄxk\NÑ[÷pÑTdnvc<\¹3öæ# íŸîÁ9>J÷3ÏN÷;ʦdäRc|QÞà’ðšås5ÿ÷æ‡\®Áª 5 g eöO ÂòÄÅ”bÁ<;"Y š2„—ŒÞÛÑK²š<>ÎDut¨Sÿ]PzŒp;Hy€êÐKŸ hÁxîmJç+”b»#ùJVŠ™~€L.ì'Ö£Hâbû?=A"ʤaF1?¨>Rø¶ÁURýã MÓ ³¸ó]SgX74‘üÆeJ YKÈÎ/#ËT5O WšLƒçCˆŸqéõ¶#†Eó0ެᄥqe[¡û¡äéœb;%¼Óy¯‰mxòí·$u…Î 9™uàŒˆ´¢2µÚJD¼Ÿ¸úçFâ´ÅY›ç¦nãŸÅ“þHd¬Æ|É9ã±q4÷Íä­¹;4ã¢^Ÿ‹ŽIJ@¤tª¾•¡É«¥eÈMsš¦ñ™åº±!n’Þ.Ü ƒ_5†ù 43tUÑŽÝÁåãCZ2CM,f]o¤º¼CwžsdÁÉÊØ{*ÒnÿcTšm7 ŸÇÓVØ‘dk+´ÿn"4à²(£üÃéIYaðz‹u* XS‡,ž]Z•¨“!JGˆñ”/_<ƒ „åãÆzö:á OAbF:ÖÓýú¨/ ™ØÂ²K4Ò°~<xƒ@|*ê0êuNƒn1Öæjö¥tÔ!0R"ÅB¤DŸÛ&úds¼n‹SΞ—á…àó˜Ø;Wñä»iIØù9_]ZB2|f ªç·éÄ+ÔÁ¡…T†.¤hFÍu\½ŒÓ hãÉ=™3kDÁi¶¥žÇ6 ¾‡Í¥'ŒÅF™äZ„…/U¶Èx®}Lè6ß2F6 çû/Ä<±϶™¤üÆb3EÑVy؆iADXÅÕq… óèäéè6uzú¿Ž÷ àÝxdÈì´}:Îdl Ú“?…5|¸gZO\%²à(BÝ„Põ¦H×`–$MãŒÊÌÐ+kÉÊOíŒõ¯Ÿj±³M‚xµ€ ý!fš†’%/ªw{é&‡Æ·à <¾U ¸\Õ“R3Pwª‹ve–Á'Òàú÷"K#Þ¨’;aþs¡)ˆÝ× ­á£,“µ¯1*;êGRÉÔÐ1Ïþ|F¢†Ýj{HÏ i_ëNnbMgÍðȤ\3 í£ÄmM¿Mµ';\>‰u¤ü|›™›T¬Ü ø²Æu,¬ŒAo~)zLšWÍæj~kØöè&ÒÞͬÛ~”‡‹/E?`‹nLÊG+wûO…|iïÂOåÎbÙè"ß1÷¦>“§%”j‡°¦Qv<È DáÚ×¢ü*#¸éù8 bpÓ¥7»~NÛ”Öë¾€ïÀ´³îö UAE’ý´ˆ³l&3˜ÄBöõy¹=ETR›Vv_ µ=¯ƒMÜi¦à¼@=joÍL½/ŽùÐ,Â$æH‚ybÇ#ÌÌ„çI£îdÙQxiÅ çV/„¨‹ÿE("[=’ød(åy&+˜zt\‰lï ;…«xbØÚðÓ¸Sø Òþ ‚£\{ŸÛ™1¿”¡T‘ü­öœ³yî´È‹U–?všY*Q#%à`oG®Ü#MàSK øAÁnn“k¸ù¥u/ºå°_мë….Å@—y€Raéd œß©Ï«u5† ¥àÉ(#dâñ`=„äaþSó^ÿ+FwâÍПkD‚0'g’8Ý…zÑZ,+Q–¢*ƒÝ¨Âåÿ˜b „Á ©¬ááa&žD‘úG,?4"]ãV¯!‚aŽGfÖ Ü·P¾Çå„{Õ8¼=Ý YªFaŸäÞš7±"†…ö­ª/(Uë丘ëÌÝZù×)‘ç¬õ“6W6t<+¹¹ðx¶FÄÓöã’6þ)ÇÏN€üLÒ]ÃØÖe¾,žsϼ9™‰/R˜¿¼'EÝ4¯N dýkæ[°yR†lúJHÇ:éĘZcDçdݽÇÇã!ŽÌÜ›º?:þaBÂ`œÓàIGî§ nyˆLö¡wó¯éü%©sæ·ùÿâTq½µ7[À:;- mÄbè~+.¥4ß&4¶X2½dв¶ÀzdIUØQåL?HqŠ;SLàZr¾ùX-ÕÎe_hpœ¨TÅö?¢rç1ÆwxÿX/ó¹x{Gj§Ý]a àCÀ™®;µ¸W;–_§/„fäÄ5Ik}®©Ç¢¼ížI¡\ù›ácµ°Åìz•dXY7A¼4!Ýéç,¬ OÖY"•rHØZ·ðÙk.¾‹2ü—‰IL¼Ï¯ávÕðëaò¸Ym†â6ß5Tݬ_¶ :w\”õÚ6 ?"U׉Òbzå–JÎGH½&<öÏHÊ¢šO@ªWk\9okq£<€7¥àž˜¨¼óßZ ¥®À8ÝBO“†üKà +Gßuð¿šÁãC4Ûn™k’߯öÊTÀzG “T9:u†?3™Ä7?Û,Ãp{ª6.?B©:3@ÉFè…Opvg`W aß8Ëp¯9dž^BR—=M}Q6Ü™Úò…Åz°=Ô5ô …ˆB¢t&FU“ÉæO’í8áã„:°QÛ{ÐñîÞÕ:Š£»ØOˆÖeó}åBË1ÄøÖL çݎLJD†Gð*:´U_w“'ZãÙ¥/²§Êg eB?…ØQßgŠó´“.&˜n/—@†÷í·nGódª!S:üMW·ÔÈæ,ŸòQÚ[Èó© "63`¨`7‚̓/õeÓõYvW‚á{# é{«Žït\¨Õ©æ> NÚU’ š5ŽlÊ‹Á#Õ~Ÿûµ–YgÀo«ˆ_ÞÒ˜ëñ´°•bS‰þÙÓWÕñX[8°åá£ð¼]ì—…\]»›ˆªŸ)!צ~*P/«ª.b+Ðë)q î}†fDåÄŒÎÁh‹eË\ùkÕÂCm¹¶z™ _vˆL>އ9¾Ù°NoD6ER½2«‚jž!±¾Ã€y£¤®4ó}]ÈúüM@dv,fð·0«Ò"®¯’æR«#¨õZnÇ–±\f¬H38åÛVÙY ¤Ná¸Æ8 à}tMpž´»†pŒSõ†r]o=a˜ãUK¾˜Ÿ-é¯÷42æ.ñt† €ë'-æ–ÑX‰JØž 7ÚŸ ‹u3O¥ä\­€¾ ÉçÆà 2R‚‚ê[7«¹pkX Æ¡ŽoIC„Pã—ê=FOŒýV<vóÁ8?–-Yo0 ìO¥ã(cÿp+¨ŒÈ’ e±&P® àT“è¶Ôz{в¦>›gÛ–¤gq~÷ÚüMUæûÖm/<2`¶Ð… ´šo-0lrøÅk͇žß8J¿úkÐ"ôÏÂzyDê4“·.¦Óß¶~ž~¸{C«&U«§ovC`‚sú-.=Þ¼ÖYE²MqdMý½œcˆ½cÈŽÁö×Ð%z7@’³¤Œ¨õþ’žÃ)Yõ³‚s5z“ `áTYjQÑØK„¾Ïi÷KŒ[pD}™IØÈüTÁxRé̈#ÿ7èíbaçUJë¡Öä w}ýß45.Øû#cX¶ˆÕ€3ˆwûóŸPͼ¤„û_èÎ×)û™â~dªDüN<…x$¼û~ζT÷†ö‡ÄŒ|Û¾ç(zû›É›úW+_õ²º3ÄîÅ‹ÞÛw=°ÖÞ/@‡ýÇäBqÞHõŠ@ÇøIo†%e³ÂÈD6¹é›³Ø±.QÌ5£ˆÚþA?Lhcþ¾±«¼jŸ`¨E‘- ŸŽKñã3ÿØzÝ“d)xdYs,­ùujoë²aNVÏžh†š8ÿ}AìÅYзÌól¥Bçå–º³ƒÓþŒw:ßüþv1²Gû™@˜çÀˆÄÆÛ¦’r­ ©júM)¦ …OÂÆüL«óF‚W{ŽÙTwï®ÿc#‹K©€ ¤L·&À“,ÿÖ 5ãAÑ­sFtÌ9£‘òOPóš4;³HÅWá ¦„á9ôŒ‰§ydÎp ¢(há;F­æ$ ›H â°@")÷ŽS|]+$(ˈ³nÔ%Þ‹9ÀŒE·µµOu¡pcaBb”6ð›/) ó"ÂÄH¬t þ”˜ÙãüyIkÂf®›+!ãMà iÛÑp%z+“ÿQŬ,<,è7™ã?[Ç7d¶Ø|=KTÊCÚ/ÑTø(ˆ"Pû–®ÞºÓNü1›TBÀÍ·»ÖMÓÈÁ.—šR0/ì¿[Æä äÌ(‘Â'‚âð¡~äçÓ 3ç-ýK¼Qg€z´Ó%xÍêO»áÙU ªH˜ÊëÖÒДTTǪ’¢P¾Þ{(­ŠÝÈÌ0>ûèàlŠ“TZ§*m@‘Ë=ßÇdëêÀ>1º¼õ´S?À云µÆnFå'»ŠËqì^6 ªö[ó†î#la+ûöñ×ÿ‡¾_íLlh5Lôú×fU°;„U“~×é’(àeº¨‡ Âêsø1j–gú©}'®ñ A0«ø7`¬ ”„q«Û Ô’A *t ÇíÙÂP©üL±<ö%»(õûO“ÝïÖ'¹F€1lÍsBmn>¼ŒùæsB—ègØàöj–‹›¯ucé® ²tCUTìÊã¹ÿ…•ÕÒ¯ö6ÎLܦkï EÞ¤ào09ªÖînÌÙ„ô†‹â@²ˆ}\3â£ÈTe4mK?+Ϥ$/k7‹fjK6½Eò¿.šž–ÀÛqÀu=oa1ôg –BJh~°e²žN¡ì(ªÓ³Æµ¡‡Ûû³œc=qiuê‡9ªmÇ¢1‚q8xôò@n)1:pî ¹sM¦OU&й0éb‹SüÊaâ8E1¯À̰Ê%qÐÝ‘zài­¸ )c×÷^+îEJÞÔÛÒÂñJ•)+Ÿ5PÍ&ˆ®Ü*>û Ì\{.N=‘»â"Yîßíì|Ñ÷$N• œšp nœ€ûÏ_çûÏâJlç¦o†`…D8öGä£Á}`d@ÈÁA;V3E.3 Ì;®mÖܪ§Z”ÕF¬lÚ<=% ¿˜À4D΋qÁ‹õ±^¿FãèÀ•‰ãy5=…”rà’p+¿ö‘WDâhÞ\í(œ/K~„†¦lV26/¥±Ä„XûŸã¹“Ûÿ¼´ÿdÐNfïÐæÁ¡ùƒcC6þ»ù°“¨CsÈÕÕ®{cx¾é“´ë§‡ó+xâ]-G2}Éó ?_d°…À%j$ú‹î¤"èjäÏÒR>z“Ù)!b']áÆuÆ1Ë4öédQ.i7çeš%ç‹„Ðõ½"ü1¢ šóúEŸÌ˨2¨CþÖÌ—ÛK&ßíéå\ç%¸lTly¶á aöú"”s„áü“±fÛWˆû$·X¤·&¶{͇m¦M¶ 9̵V©öýo_øÿ¨¡`™B,8ÆÐ|¿ J‚«$®5ÉqÜR¶mÕKÞ ­Wc;DgÖ±KÕŒYá‹Ì½˜Æy9âøu{÷Ï·2'3&Ýá³9fu¢âqy ›ÉȵUU¨¨W‰§q!ÑÍÿ@g Ð4ºÞØÕ|Öɹτ uŒRݯ0ŽˆVý„áØöMÉõD@×dèÉ;v¾µFÝÆ$üXjTDž ß'Z\ˆjŧ{Ñ›6¾gû5y+8N =ñQˆÌXò‰bHÖß±ùñÍ/ø.öo—Õ• Y—¸ÜÀ­¸f;Ú£©°OggSmVýÄ nwm²4Ó;éêââÿbÿ7ÙÎÏÐÓÒÿ3Òÿ`óîôìâØññøñéÿ/Ýëøúÿÿÿhðòðìíçÿ]ÓÐÖÕÖ×ÓÕÚüLÃbIyJ–µj&`"h¶/BÔ_IA¤PWŸVð)s ñ{‡ÔŠ³æŒ =0Ø2Øš(ºÁ)Ê›N0¯Ÿr°j¹0ÿóÅ”(•Ë¥]‹(jÅX“£‡{;øÚ÷¢ÒÒ5î]y™!\ÁXWpI¿«ƒù| ©‹ ëŽô·nF’§¿ÑæíJ' êJ„Án‹Ba)Hê2ßzî\v[,toM< s‚õçØköY‡//eˆAƒT^ï@¦ÊZÖÇ#â˜Ò0·KCq!tZÉE-VŠþ ¼ ‹ü¹@.ïFÞB›K[,Ö‹ˆ0>#üL©Ìú5ãÊT Ï*˜2ôå9y«~ó3¥£=³&OúÍøJØÒ§yËYçå]Œc¨˜­ªx9ÐÛÛ§ ³}§ë´O*6¨–G cgšf§rÉ+pö|3oă£’-ú>à­÷±€5ÍE9õª„w®å_‚*²ïGe~ìLqÏgËErÑÌ×jÇQÌ –JhíJŒ˜ë8J¾ ´åÙ3€C#pl*°C^r CåÖú6®&“2¯m#¥t°„œ£:d«´LcÔDÅ—Ü¥]÷ÙnŸû,mŽ8μ„ˆ©. Nüyµ¶[WÀYÌüIâi¨bb´FVµ‡L´n ¼ák>¸°˜ÚÃ…0Xc±C$$»Uø¯¿‘í‚y­Du‹²„èîýÿ©S(øiõ‚.Ê8Â<ðìLÂò)è:%8“󜂳.Ã*+P÷—$¬ƒ®ÚÚŸí©µyÒ4»€6´Æœ¤¡÷EÜ”×dê!l>ü®ª“…ÒúNŠT¬ZÝ(ß ¸3Á Íc˜в—µfÏ#Üéí¼¬ŽÑ^dßÎétÅ9àúslå,þ¤T/0Ð #½Ì}È9Ñ~Âw]!\Y…:iüM:.6>7jB²9Îä*A¥¸v=ª€ ¯†¼LÌgÒL0ë¤|ÎæéÌÏuÒ¶ºßHζ­ô’}QÀ/zò& £Ò2øeX¶æ¤`8CˆZ'… ¼ç¯¿àÄÁ „…ù*eÿw¬Ì÷×®räþ5Åaj1ÅÑFêjúámþ¯^}­ø_©—@ˆ·øÖA|xé~å2Séd‘au5¤gýñ¿ñ£û*N»HôíÙ2£Bcs¸M Ò?Ae”ÀìpôSVÊ‚œ´9_ïÓ6È–NÞ@~¯Þ ŽWêÐtðfü|©Óš_¶6ªùú»;k½J"Ê,ó# ¯=ËŸùâúyZ¢¥üÌå=™–Tö3d*ÒËžåÓÒÞ¹™ûXûr„½[5½°Ähzœ¢ÓÚ›ûñÖ-ÐÅRñリ±î&^̹Q§ðk¢ žžË¶âRwà¸M_C@[›0* ë– w¯¦/låkgègäë‡4Fw±à›µæ‡ E,Ï£'<¨0ËëÔ+í~3LU£ %8ŒpÔ³ÿ®’±ÄÔà³·n¸0<+û¸"סBWØŠ)·=ÜÌu±Mô»¿(Å"žg‘(Ëj@:jQ{ñúÏ*5´~šÎ ìí!þ®õ[ïÓޏŸ«\•ö*}<±)ø•*ë´}bгêA9ŽsnwÑ#Ÿ:7Áˆ¿;öÙûŠ%{@Y?§¡›'%È%Qz°át`Ô€>øó‰ LÎ1#†«Œ°C.ü|¯½8)u뤾Òd¦^ 4ÝNÊ¿¶†Øž×u-•ZBæ¤GìjËm5rŽ0Ó¸ÿHw¼™-×~¦W«*!Ó'…ïÕ±:iªÙÐ>¤“Þ—¤¡7inBßÏ{›¶•z½àÊ>tõ½|¥Î·>˜oò"4éÆUÙ­ÚjL>§vú!Î')p_w;r©•ó_°åKÌž?#¶–„ ò$ÜôµãÀ’§dkË65êË&m—‚Îå“:©Vì øn*ƒÎàm&lf]{NÕ3îž.Nä…Úç`:nÁÝдQ‰ÓÇ×ÈäÄ?¢±!ñx¶õ‹ò$ËË‘}Ç{-ó¤²Óa("d¶ü(¼ˆS(‡µU²ðª<Þ¤óHª*¢Ûm]·ç@ï~¯&l}üM/@ÅàBuv±Û¤ƒµ—4¹dÙ¿ìëî³ZàUöP ¹•–Iû²)á,m!E”|ÆkDölнØB]ÿ?ö€õ]V"ƒ„< T›ºÏe?S&·¢¿Šjœ÷ëŠ{ã!Œh…Æô 7CÜãÿ¼¶QêPK>.ôž}Ï|Á®qâÇK´ \¾øÐªNãë,Tœ «RÔûmFÙÏ£ôŸ?]3FŠ)EÞ‰\~±õöJ OU±áIé³+c Í"Ú7+§ZATýYƒS•¬K^kÍ'~)^Ó'åKüMZ²¡¢Šã_ÖÚ|Må§AbU´šíé¸ÿb´n–,é_™÷²Œ§brmzî†Wêj¡‡ïeÒu´A9ºèðRqjÔrAÒg±°¥^ð¶ýçìó½Ê„Â+U“ çawÁ#7Ø~® *u¿š*.é¿{©gÀæÅÎÌe³aæ^aÆ÷›? SDeO·|ÿƒ‰h…':6]Ëï«<^¥!íL2(Ó=÷ø#Ñ”²"XPÂ|ŠÁk$âÊêAj¶Áøúö45Ó´)3fú°4üXm¥Ì.R.¶…’œ~ö¿Þ„‘Þø°f®Ì!‰ÃŠÿëOü›8ž‰Þº^kOš'ui/rE–ÎTM;™_¬–þ}sûÒŒcNž‡V·n6ÌAÚFªZ#»Ôs)EÃ,_æéÐm¥Üd<ÚÁ}9Çj„E ¤¿ò9Žd{ïæ4È—ãHœ¬{ß”¨:7ýÿêyXçOî¥ô+‘«ˆd*ñðakgŠw\–-Aõèðòí²a¥hó‰a6©DúK”“dJl¢Å€üK#T:¾›&‡ }ò°V‹0Ô$êJ—}¸o“¿ÎëÁÛm>£.Ü4e+ºÿûKÜÞWµ’üÄ"’™HYò›=ç0¸ƒt~[”ä~¨+]Êt#Ø/Ë‹ }ÊùÚ®ûë>úÐïÄÌ×ÁZD_•Éœäô3K6M~,™ê³¯ÿw[e’¯pÏ–µŽ— (`I"Y94ìkÙ˜M™Fe¾RxŠš³:ýQ5ï1Ÿ¤{bÿësb«ÅЛë‹ÞÙÞ—[îK#]uÛõ¬¹h´ÜpyüIð]ë6µ5ĉä™qïxѶž É-òô£àsÎÀp÷] ©ÖŸôЬSY>’ä+IN*;ÃþpöC¶è×Ô=Q_zÚ}6D°ŸÑ¢‹º°”A¢Ïõº-jW.Π%6‘Þmý¤‚$Z• ‘—ã‘4@`ƒ„ߌ)³ÿÞ;p@’ƒjÈWÂÎáÊ¡do/6ˆ’ÿÝ¢Ÿ5侌ªÊYà]J ñ,ë jÑ [êlŒ&¯Ö©Ï¤l$¦óÖdÖ=í“+‹ïÙÚ¡¶ýüM'Aà†ÔÎÚçg=ŒY}#n¥˜Ü8vÛœz"mÿј°gØX=1¯ÆdèJËf@ ç;ï]r‹8õò›k›ùŽ…f‘ÔóßîŠUÁ.nx¹ŸÙøÚœŒ­^ͯm,3ìw.^›ÝÑÓ›QQ¢A8J+09·….*ûáåÆ2l#”Ï÷:ø@güíâà1©Q!Î϶ðñR&K[‘œ¤BðOl†¡k»Ó:I‚@Ù1³¯&Á1#‡*‡¢ÑC=ù? sémZ[n#îNú¡ü}a—¹Å?“Dà‹yŽýšxœ/¬™ ¿RjßÝá¡E¦(§fmGã㿃]¦t%˜&œÒº 'SÕ3À§6Mºü/ ݬºuì;ZµjÞPcåÕ²‘oÙþÕóRÄÎÉ™mL¢ö­û.0ý–Ån½ú—!GÀøÛknQ€“1í©nbðï”±ò0tø¿vF³„ó‘ÜxB,sǾ8ÔFp¬Ñd¤—”ìKfNw¼ÒCqÛ.Ïe9rk4'5X~|)O¡¿ÆðuªÕdBË•Ÿ†Ž’À—ªzq0¯lW\¾è¦& œ¢xÆœCµÏŠ4—ŠðŽ?…˾_ÊN¬ÛÓ)¨ ˜‰1ú ì÷éÅk¦}|}ÂǼuR:å@Z$A+ .–ëAï־ίLòÒü†3ŽdÚ„£î@«³U>ö€þ¿ï„ß5‰4èÇ)7ß¾±¢ðjÔ×të•òóßG¡l©Æjvâ¨Ñ³­ß¬ö\]å»âêø†¸¬Aü<ñC7óµ†\bKAˆ²¼Úxª‘2‰4î;<¿ xåº.FÜ}‡8C¸ªaÎËY§''¬xÞ§Þ¦Öª^-Ü»ŸÐ<3A”{Jefà,³Ú÷ôœÛœdâ',è›þ@D–¼º;VÊq<éVóµ—F%ó ƒàÞLàü‰8_¢oýKV³Ð÷CøVvúÌž+ÔzÖ…°Rlº¿ôA–Øñ-ÒsufޱõB^% Ü¥¬]);ˆaq`AúI”ðÎ^y´8nCFÅz¡®4½pÏ“o$06]†¸Eâ„~DHOº lÄù;´6k‡¹;nä™Ù^>sQè½þU`–jïšò»Ñ¿Ò:aPšÌŠi²Žü6‚ÔsÜ1Ö9Óº3±¬$hŽ^­Í.Þ—Á#Kš:ªµP‘FOÝží5­ž¶Æd:¢Êo¡ivÕHÄø‘^W†½ "Bå°.žÊSöîêï ˜ÞÒô©[T×qÃéºÄ¸e•:§œõv»'a§ÔTLû¸eê¼ cOžTf%Ç\Mh•ßö@·~"¬Îä v‹ ƒ#‹~%FöÝLÅ~æ€kÁö{NÇ}¥tPüèŒÝÞä›è×ì2.©(ë§ÖÙ›Õ¿ä<Û´í·DW';n|='§•Jã°–G›$-âxéÅþ{>“üL¹#7÷µ§©qß^ï„«%§}GX”ÜfMá¨Ý.ÂÔeïX<Â{†þð8ŒˆÛ¹ßvQsç ˜íº‰5m…C6+oÒYžJ° ¦á4Te//Ý+t!!kN®ÎC¨0%7œK¨=çcTÉóÿ2»gY Lúý&³I%ÈEˆ0à)âVãØö,zè,º%Ìmڊʸ7¼Ž Ihþë«{«ý3ôf˜E\JÁ{Ðïëå$¥‚˜ ïœv•‚†”·`L9ê!“?’©@füü\¢Åp¶0ó*­P8; ±Çµ’×±ÈüL½.y¹¨5t·¥¼’‹ŽÌ7×/²[A}[±o[3ÒYMßû[nY6xü= }9XŒ˜ÝÞ‰Yá&«6Uí Ø¦ ƒ×ÐìÎ!Ê^bwœøgÿ ÏÇZÁ-ö@ץЯ?”j°ãíi*"#Ôøp¨ü1+Š~GgÓ¥ÕE:†¥Çê‡K2šyéDdüJ‰~àd/‚TÐ`$üÖòÏ2óÈïì,½¼s:Ë~N-‡±*BQ/zL×I2²l»ÚR˜û”£±îÝK²\çð5éÜúU0¢hYH °P|„a›}¨åP]r!‚LÂÂ.™Ì‹èï%-Ý8ãÑuhB2”/œ5ËþÅ=VþL…Óò}`¨ƒÇ–ºÂ3Pyrªl0ˆ4 [‹·u>‚Ø1ïuÓŸ—3­«æÃmS…ýæ°Òx DÀxQH¾ÂkçµÎö\Ì+ØÄƒ/DmwL§ª®_¾ëÎÖ丩N²\3·ÔŸFyüK®¤Ù8·AɆîþíɨê³ü&õN‘1©“ZBÛÉEAÎN\"å˜âø¹K¤ w‘ÈR~È1à|¿˜M»eå4½8²ï Ô»Š›”æSÀ€®¡øæç¦ÆW¢}#,¨¶ñ€š w°O^¶m¤0ÁÝ·ö*ûÕ‰’lætž*.ÍûŠL“ ¼935/J 9m#= &‚ Ûèr É6ù7¦v•Ñí‡Ä¨æø[Ý0]ò®ŽÿÛi'¬=1¨Kï_  æ,î¢)â™Q¶ Ä?¹9_d$‘öN8Ý̱õÿM_]Ucö²ü6 m)åB¼ô«‹b»èò7Y(`´Ðîý 8%úl„Kf8;;ûúÌOŸ³ô¦™6íâ8®ÍÆlÙÖË“P@°{V†xÁ|>g°›Qêÿ‹>øæ÷^´`=={«KW¾‹¬î°{Ï9RæW n|mçc”²ÉŽR­FŠù]ÆJ‹bÊ¢@Mv öÛÜä%ý÷ÆtêÈf·N³¥ëãnŠypµYþÁ÷jÜbþÖ Ž'C?ÜX­ì}«~RE,j(iÿ€*ú¥ŒÇ,­¿ûáŽg"2¬ñ%güîšÏþÇþÁ ùkØÈ0Mþ;òÊÍ$¯õéJ²y~eyTâ~ î=·Ç?ÐØ½™6œ¼ré¨oï[ ëðýSü^}ñ–ª<\³~Ô¿]/uJ*–Ö¦óê[b33dš"‘‡À*ö[CÎO×¼ÙxÑm»Ò¯bEU(uÝ"Ùóñ.uG§'TALí˜C‚nŠkÚ‘Ì?ícŽŸps XR”“z á\ÿ謜ϥ֧F5ѳXÖäî+õ°'Ƀ‚¶ÖCÈÎíÜqÊHQ"›[7©ÁÖ“Xxh•\6ˆIËQ‰áŒ_¬d‚düñ ìNÇbk6.”‚ýí:ÂDîOcP/ìCÆž]™€ä¸F@@ËVŸÜ ÅFn“Cª° Z%/%ºè&u…ß¹HÕlTÑ'0œy~–6ؽ™Ž}{ŒÙrÆÄ¤¤‹ -&1¿”'3Ú¯ÔP‹§þ¤ë¶ VÊ0Nà˜Kh­Jƒœqk? «+w·‹£O’‰Að/Žþ‹cš<ÈfT¿Õ•µVëé‹ ’`l‰ù›±sÔéÈY…ÐE Fò6‚æ¶6L¥ ;K~Qpª^7äâ#ùJn?BÎÒRÿ[ážÊäp€¹´À EáÚ“ü6VÀTÈí8jèÖ£ Ø´´I#‚&6ÐûlÁÑë ` :‹oÊUÝ89z)„–ûišØ¨hÓ˰óÄXA>Q½ëèxxY›ìUAÓ¯\9¡ï<Ébž HyóˆDƒÝ‹™LÊÔgRÅÃÅ2{ÎaÊÂØ@5‹AÔT$6ÀçN E•†6iÒ?¿%ÌH²Ê|¨’ *kz$‘«(À:Üú? >AyEoiÐÜI®‹Œk‹vOÖ:XæþÁvþx)#âSqÊMi\K\¨±2…˜îôr¡IíØ:-H'Í;‚“»d,s¿dxoò•ižÄlò„H_üLØœRÿïd¿¸¿îz hD}fs=N¼ûövjføTKêÜTNV ‚rª¦©Nm¦¬ºÚN@g"òof¯Àbð’ÍHú?ƒ©LÅ…å2ؘ˜æåEðŠôâá©Í wzô3rƒÐŠéؽkÜÝ'T ) ÆzLcÔ%Brô£Y„¶p˜qÃ,ŽÔvg`8ÖKÙûgìÇ{ I˜Ÿ¢Ú»üе+à9ÚÖüØXÚ§w*ŸýP›~DèJð‘´ì¶XTï÷}×I–CºÌ÷|&m‹›‡m®D„SµQ&b& ÷IÑš:}ÖüJG!e€¡÷³X¯¾E¯z åß¾³éÔÀç(6~S²Ô~eÛ»ã ÐàrU:°+X’PÕd£N+M:ÐðÁ›ÚϾNÀ€M*pMí&µGú]a .í‘ñƒ”¤˜ö` 7‘ý5•É;ûÚðÑœ°"ù¶˜a0Rcñåo¯ ä}$!‡ß|ïš× :È—ä*»W†GñSÐ:qšPR¾m­xü óöÛ9S†Ûç!\׌¡œWaá%YGW{°Ê 1jHXÜUîÛìöÎu^ÇCm6Ü”ë2Ëåä m9èü|®»4´ñvéÆ$ h'½Çˆ:½Jó¨Ñ:†tÀni­©Dã"ñê½!SHá_mPâÙ0P»QøW“¹Ê#Å]ãÊo!®°^Ø6ú×x‘@Ì¿÷ÂLÏ`¼ÛÂd_ÿ-º{|Ñ`ô`S9N­>€¦Ìi‚b+2 áp<“bL>ø„›tž!”.§¸…ÍgiR59È ZvF‡¼}:0¿ûšfoîâuR·RÝÉÒÖÝAæ‡÷‹Ç0£€ÏŒ÷’$‚SÆ©¿×P2‹åh¢À$:zýk>@ÐÚÓ¢ÉÖrѲÎ( ¨µæ¿Í/¾õ™ìÔ€ìR½¦ Rh¬ˆÈu)¬’1)øÞß¶¶ðR}ÛN´ŒT—7ûžbS^gXìõ¥1x—èB‡ˆªü0d=ˆZ ×××rÈÆn7dëCóP™Ò€úœîPÏ•§m˜€Ç¥½é½hÁñ¼¡˜…H!-À·CÌâô|©€ôΟ\˜¡43ÒÝ(Lû9añ’Ü_í.xö¢:ê¸ùŒ6â¼C€×£¡¿¬–APsÚ1@Öt|$h$WÔ?R.Oñ®§W"@b\÷ñÞ[Ñú~dõ3»müä¡w’çhbž=M€ùú‰üàpþS#Rš€È~ÿ.)ÿàâ½FrÀÈ·!i°{½ÜÃÓ©½Â}×À3f5üÙ(5ÌíÞ©&hmÀžSþ,w @͹fb˯nòë½i!šž˜®Òq„ «ÈœšãxöÚ †Ý~•"2j‹×§pOsG7YüB£ÄûAA¶A/xKD— âHx}q·J1×…6Aæñ\ßlUí¢YDé)ê蓦Z†}BLJÞ‹g'ï!§—ÚôŽà È<Ö6œp·u­"áÍi`ç4¸¦¯¦©],¸ =i,ëb=©1kщ[#¹¢ ¶® ÷¦ñŒ6Åå÷Ó°óÿr~iï’êw6ÛŸ9U<#e¤…œuzHüÛÁ÷´'!Sr¤·í鯩ElgÈé‘𽙜€Ö±ß¹x1‡ÊQå¯÷Áe¢'BÆ’YŽç…B‰ðÝú,æö‡;Î'QÏ€gù®7Ó nrn¹|­›1í-ÅdHí÷nº^¹æ¢vÞÎt:%E¡‚ŒXšG„<¿¡×¡âxƒ`ËÿÅ=hžsõ#ÊŒa á.¤¡ëÑL@¬5r°fДWÞêÅcžSà"W°\’W#Iéºx5¼))¬ÔÚA˜É8*ŽáZ©ÍËFDçÜZ-¢'>šµ”<À&ãœ.×51¯Ü¥v:-(-±¹³·Œ–Æ_uIq HüÛ…ˆ€«ˆ(Þ†ºlB<DÌ•QÀjLÕ¶O ŽÅ/1ßÈøÎY%öbR#œZ.Ûc³¿:‡¼-7ë6h¼ÐÚߘ5JÚncýTþ߸ !5åv¿Tœ™žÂiþøÐ`*L°ú•N#`ž'£µ_~ r߯(*¸WÌÃW´à"kntž#¢Dk žûH:¦ö§ö+5¹P£!GÍq¤WSNZ¤¦­–˜èžÂz³V¢ùØ wÁÓë»rÝ6?Š7rzïšÐÙuRý “i#f úìïÙÿaùÖÿHC²\m]¶g¯T K  %‰÷î/·fzlï[‚\-ã^øV æ‹È9©Îty ©Ok‚{o¼Õ5ÓD%2˜“/%}7Þ\‹Pݶfr½-þךI÷‚$Ç¡4¸´j7m9PˆFÁ$Bã¥NQ£®|š[ü}bßi‰LÝ´p-µø†å»‘žQ®‰«Œ#ÎݸëÒÒ‡)}VÜLª[îÿEÉŸÞª®ïÉÊEª·-ÜQÆ•îw XD÷Z.7؆SÝùˆú'š«ÞÏŒNUNvg+;ŒœDü–‚Gj 56‰$Ìõû@' X[kýÉ wÛðÄÞ°­Ë,ξ½ýÝKq9‘È轺¨C¢—„ª@ÜŠŸ,®xºyÑcà8M‡÷d×ð԰甀çöif’yι3Q™=~¿X™SiÆf"€¼0z¸H(ed&—®_U†6g?}%=>”l=^Û`þ•.•ŸgiЖ:óöCÐP¿4ÇŒnJÐQ¶‚yÚ!²¿>·)Z Î$Nòö:þa#Qzg&jݵJó4 !ƒ¼u¹O—íŠX–’viu×ñWm¾)æhe ò½³šZÐzôÛŽTI;‰8{kí.üJ4ÿC ä&<3°û_0™ÌJI7æ Ãd —êe[6ÅýøFº±ûf¿dgÍ5)uä…γ:Y_Ù'9™·y^joc+iáŸuÞ'd:y^ÐÂ8^¨cNZ‰oÈj®õÂgL2ûÏE³«¸ú¿ÂšW ¥ÝqiîšýGàOÃõô·5ÅùÜüá¬Ð¤Z€i®Si%ïÞ7§w$¶.8ò‘<é˜Gañ—³s=ÛùRNàݬ‹ãÈ&ˆ…Oà¹Éå÷ª(õûÓcwQ•À"ѳ"â¿E|ÿQEÚÚŸOˆpõé’:ñ^¹†I ÿÿ¢Øüî½Ù7Kf¯LÎFt`¾ýe÷@áwTiNdxmµ4gÚuãxíL{))Òÿ¿îYl æwöh‹Ž´ÚÖìZw:Š•À‘ƒÅ!Èo5œ­®IE­„n9zu{7”JòJ]ièÚ£™‹P=gEÍ™ØÅ 5«ç¼ ÓÛ½7&°“êüº4œŸ_V#?®ÿx«ÑÜ ÷›wÅÜÒByã…( ŽM„çË3Þ/Úµ,j,ÓóTr¯|ãâdx¨”†ÿ|I ‡*Ý—g .[·<±­FÀ·wWMtv¾7+P2Ø=\á£öhÁvmÓ·R¼ŽÙØT•üðÉ’LhsÒÜ<Èž€ÒV¦þ*‰–ZüZÔ»ÐûcN,-‡;ñ}ÛŒU6;(bß.O?³÷f 98!ܺ×uU*ùÍ;ùÓó¶Ž‘ã?…+J/»ÙG{Ž$ñÝšâŽp‚V" úÏbáù’*µZ½Ñx~Â6·MH°nºY ÝnûH¯ºiH1f ̧cÌR ×1´1Á¼L˜ÖF<ã`¬¯B!>r…™.֊Ȩ`‘àŠçùÕ`?‡GÞV^f­£ ‘+Ÿ“¾ÁbÊD팗ÉõûžZ:âÀô†³aJ»ƒc™×l5tûŸ%îùc 椌üðǦěÄf°;ÜÄ’ àVü³.fç;­ ýwH5;ëÀÓ hÍÁûvLÓó¼"TêÀ~Bæ8áo˜'ôª“‹ªh sзw³Û~n‰  h¸°×ïóÉjBŸIÑO¼ãöù7È”“Œ¼(<ºBrn®õéîAz…Ânhå‘ ®k…mÀl†œõ ÑËܵ;*ßœDÔ õ€>ç»YbðÎÒrŒf¼Ûö§µ€ ß‚ÊŠ)—'}`ß/è&è’sÒãോo¼| ‚æ¢ ®Nwu‘-Kl >G¿¥r99YÑl‘˜@„ˆ)ß{è¶_(›W+ÒÚ¥Ÿ¦o¤ÛdCFÊü3?ºM7*k 9/1i4í8„òS·½9L‹}i :à)î^·AÞ#¥ÑUar§H_…4c~<ã’*ZÝApåž$µüI`¬IEô{wÀmvå*1ª¯ž¼%òC"ÓpåmEhמ&é´–=~5ò;ÑÖîŽÝð¸˜ÆHÎ6g¨ßðý2Î6xGŽ‘üŒµîö³Ù”†÷. ¢‡qð"¶Fê¢ vñOÆ@b‰þã³ÏßùÖÜ‚×ývZ±‡¿5N;í­ÏfqK¨’¥ãú/}2dÚóy‰)ŽV˽þ¹b1Q×ß¿EŠuä”T{±¸ºŽ ~Í_™„è<0 qÈ’ÿ­¤ãu Ð¥‚¸¥‡tëà{¼ç´Ei™({ ÔôO4›!òm=;Wíeü°$ þ TÇiìkÀ ˆ^bKcN²›È$CÚ[­J²[ès8ËÛúq)/?ÏäI&*³[ž‡ãý迵fŸÓ’ô«-¨ÚŠ6ùý“‡ºm¸¦Õê”&íøEP”^E¦Úã]&N,JÜЧ×ЗÔcw˜ݨ%ˆ9¬r¤(çP$ÉoÞNÛo&£n¼3÷gÉêpÌÖ)ž¹«á÷èB FB¾ªo¶?2ßeŒ5Ýí'·ÏâmSÑ»ã\w”´6?´ùqëˆuÂ[Å¥G>Ï)œ,hÉ®ñ\î÷A£`ÊY.›,!Ð#'K=žÝMÒº÷@Ù6iŸ'PÁÈ.¤¼8¯r;¬oa¨ÒÖÛÛ˜ƒÔ>Ô&ÆíÑÃTÕŽýÂbáÔßcÓÜuƒI¨(Ö%ývó»ïµr𬌋Θ~2Íá›kÈrm ®¬'dO@ó]ÃuÝüM-ÛŽ&ÞDæ™æÀC&o™ør áS8¬ wØyøå©i+jŠ3(ÔÐ6·ÇÐg¯ª ó!ðʪ‘0ÃV`ëÕ°q\NÕ©»· µá9kyÔÿÌ=Ë#NƒdtÆÜºy *SE}áø™ËÑv›}»Æ4¡Õo§æÿOùÆ‹ìslê&ƒ°˜3j‹tÉ!ÆÖéódÀXÿÚ”lz»¦ÞïØG³WN_ˆ$ß º(Æ–é¢v´c¦Õ©´ìþ°pÛ7½ýNíÈrüL¯9#´­Ì£Ó]¯²³¤Ý´#MÞ©…ÅïlÍKìËŸ,É ïûKlûùÈ/Ñz AÝ ÇõIu§6~îá”m*çõý´†mMùÑÁ3‹'o,LmÇY÷F˜ðú…Ç߯£áÜ…g,søV¯ë3º¯åzù‘Â{µçÞlѪ];鯤Ù= yr‚¨ÔÇ"¾÷¤wsCiøÃõX89*æ!>Ñü8åVS]¸ÐJ?ÇÕ´l62aÿ/yOy«¯86ê@ ‰)s•âºE X$¥üM€]ø4©—zj¹€ùqõyaG9h¢_ÓY™9‡„]7?ƒ“NŸ¿¬n³’9ï^IPçz {ôì½lºõãÌÐÄDnP˜ÏHUùˈ6Â&`T>´…ñòÇpÂ~½¥&4Èqų… ‚-z(æê­ˆ§°ÿj#âz>ØÎmÀ³Öñ ŽÖž¿"2F¸qJð(†i?àë;i-ݲzM»(Ä(z†F86‹aê­îw®)άë½Ro¶´²ž²°¹‡T9èM5´C£`§JµFâIÈ—üI}L„}Õ]§ÁHR}uE%ZÛà¢NaIBìn£é‰¢ÞKöùÛ}o}E–C<†Õ¨fŠm&ôëß„kÝJp¾ðÃD)ãR¹€ÀmdÑŒËõ«Ãÿ+/ÙOÃ{®…á#ƒ¶Ý–šN xJ*l¾Ž1@;5'×°o¶­\ÒEjîiÊ0gˆŸ”4] PÕ{L³g»æß™Ÿ‚IɆ3”’ÑbÇ•ç¾Çk ‘íT ΄¢¡ÃŒ·*¶¤SeXàƒãí ïFæ¢ÖHR}åÛ]üLÚ†tTB®Öýï$›drÀú¼®ºsM[qhéþ×–=‘t1[«Hl Ü-ª®‘äv¯¡2µÿÔ™Û ¸Ì› ɸpÇêdÿÅïíÅt%od»§Ö†=j£Ãçy±ääÈ~ÚP~çb‡ýŸú³dþ ááX:8¹YP&€§P ‰6ž>‘aØÀ>lgáHa“y` /n¦zq~&ÔõVkÜœ2¶n$r‘Ȳy?¨‡íÁ]zt•®á©ÍéÁ<ùIx¨ñ]ów,W¬lf¥üMˆ$ÝR‹1÷W¬–5ñDúŒ!x¡ûaÂ¥bfáÍf:zeÝ-^Ê&s±­øä?i€,Åà5²W3ñ²X•gY‡Du {¢+èè1 Å*Ž«n/ÅÚ½s­¨—\\{±CpåQú¦ü¾7Ûû¾}šêðá9©žò.ÁpØä¿ýw2J”ÇC¬‚"A³wÕb^”Ó?<+éùc»ÛМI‰3Éí±0GN¿ N$ð K¹æ;%èz#><‹±Æ’ë ÚSµ÷¸©»o-QÞP}ÀÁËkÌRäïÚüJÆ/:å@#a²V§F¨3DÀFÔ›@ËT†šüu]òµ.¡#“ZPº£ÑbðµªÍ‘›ZÕJÑŽSý 0¤ÂNvÓ/ø²ìBÝÓ]m?㪩Fª ±)ÍãΖ‡áFÜŸ§–jZkÍòàÐϪñ1K£¦|LÝ,hð–™W×F-©°H¬=V^.Ð=–WæÝgá`ãO&ûB΋¼ÁÜîš<Á²ß4jþî++öüM"Ã6_}¼%ëâsö«Á<ÇQծߚ/žÙˆ:?õR»bëÙ*ÚØæ1É_Ï÷xt¸— Qq6~râ ûeϲü¦ó0=ZÁÈÚÝ+-I¦þ$ñ%òÆ’Ü§ŽœGí‹(]”›‰tvàá,Ç)£TþMçà%;h®É5¬ÇŠì]*cµp(í¦þÛÜ܃±xjðv>ƒrÌØÅ€N«Äɰiœý¾'MvDc¥Dq™&°ó¿AHu­*Yõ¬ÌºÃë6vÍ~H¶álüÙj…šÛ¹=Wqù‡Ê³bß¼%䚌Å:à2¸h×_£(|/\K ÍH絛`“¼*uàôG¯$êëâÉuÍ:WA»w‰“ãZdîY¨§ÿÊ”.èz¬î,k¬ôó!ü‹ÁÔS%q2 óyršWÌtI-7[‘C±C7g¢ßd1Zïò… ÃJÍó1Àg|ï(¸P7dŸX¶öÃ^¦¡¨¥M¹\YÂçz=s¯‚¬C<ÛÓôØjO× ÂmÕ)ZÁlxÛ°s£—X49“Ûy¬M(1FOggS€(WýÄ nxIp[²=ÞåãÞÿOÜëóòòåÿaáäåâèäÿ=ÙãüõðýÿVîÿfïïúÿÿméíùÿÿüÿ}ôìòöòüÿ‡àÜáüÛ+Xð]ÀýDyE˜«å?s±u³‡m9O(û@ËôêØ±ÙúœH­$ï[u|Êmgûl[O9,Xn 'õdQ{‰€„cKGÂv/W½Ó&C¦Ü@'){]͹?:}tžû8Ãa'ÊUßûÌ T7iÒd•¦þ_W†GÿÕL'³­Ó ñÛϳSÓ®„Vò8 w޾ZÀ êëPòå˜o`Ï™Ët«,‹ôyšÏrT@€œö‡Í[ÂX;{‹z›ûŒ¼­Ûw¸#O­ü©Öã[\ÕõæÑ÷^³²GülÃé­:¹í"𵋠¸y‡ž§‡œeüŠžü R|ŠÍÉÈ„pŽ=…UIò"6c`˵÷$ÚéM™Â^¬ ×FôÈꌗܗ²çú›ä³psJRh¨ôfÇã*ò±|ͧcœþ€R„5Ëù~}¬ðÅ&Ž%ùI/*–r›fŽ44îp_ý¶^¬â|f­e]»½)ªiu¬€„iX²æ „ÛÆ’>$“šIêËR"íѾ-G9Z¹g3¿hbƒH⬣µÑ¿Ñ‚H¸õP¤üÛ‚Ìœõjwå÷L¯Ãƒ~ý­0 G/Al kXnÝÓ%æn;CÌ{Ò©ŽDÅ„1÷+ÇÂß Ñç‘Ë‹Cg+Ürúây#²ÄSäÚâöä]AS[Yû÷c¶yÜßf6má”ÓÔG|Ý’þ!ðjHÒ­hx™JNf—­ 00Tý7³Œ%0KO¤äSNÅÙ]]á'f!iÎÕü–’UDX\tÝ)>…>yc©‡Ö‰°Õ™«½ÈÖ]öÉ 3–¾‘aPÍäâTá†ísÌç m´R„7ÒúÊ/GüM'Îjµ®µ³õ[D`¹hê ×>àC6GZ…º€ÕZr­Îïîql¸™|"ž µè›ñþÌ󛂵Jœß=ê–>ÙÑÐJÁñÙj•ðûFÓ“²r8€]»ŽE}–J”W´ªù•íói\õ¶$ (:Wî¨ï7‡DºŽˆl—<4š°y³´¶7àÞc$¯Ã µbvž;.›bMMéF*ÝÿêL)4âò '¨\]¨(.@Ì1l޵ÀŒÁåNV©wñ*]wÖyÊàk“mÄââ0ãGŽç|â<ü|·¶1·6˜Z÷ò&™Qž÷Ó~§qûœ£Ývèš ¹ C”ë¡è±PMk6Ù^†’ ¾Ψò_#ê{¯`½,É>Þú4aÉ"JH¹è­zùGØÉ ÂQ´J¬ ™Wxðõ¶o¡>ÂGE d‰—ÞQ…™ÜUÕ5±ªù´¤˜1?²ïS~z¢ =°öQ÷“ÂDëøàgtzµ™ÜréiAç—•9ÞúP8b•¨Ú÷u¤ ÿýŸßê*Î<Ì{ÈcV¥Ö»Í^Ñ?~ñÆqÑ.ØÎ 1ó²‹S߃#d§M‰W×vªÌ­dó°_…Ó>Ð %௨5>îÅ?6Žá ¶UZ:à“ÿNú;&?~:ˆðˆ6; I¬ÒHxA'ÄåÓ!Е bËÖ%ÔéŒ/¯[wž7ÐAwH ýÈÝb2pÈKZÓ¤ü†2ÿ]ºö*^[üÇj²u±}:£¥pí‡éŠóß´«à˜ÃàX$Ÿ º %pùÄFosbðE´î§ž3JFé¡Í±ª"ӘĽâ3ÁPiÂ5g4¼íwŒÿYô›Xø[þî†Æ4ûqÂ\ƒÓdñÈôÌÞfÐWïÞvà9öÃgˆù¨åUló¤U >œŒÈ¿!¶@…bb?# —¼Ó¸!†<ý¶ÕˆðÞÐ@>ôºæâô×öí RŒZ½¦§¤‡Ò”yW®‘¿Ò½ÓÁ[eïnV®Q=EtÓ¬âËà@üNJ¤…ÂXÝ>ÛŒsÐ"3;Øzùò ñR1^ËÒaæ¼^¸cT&é){Cj5¯ƒ›rÛq¹â2V˜šÇ~@9*²à ;” s_ äÜ̪}»ˆÄ«­FF³{Ÿ.Š .²¬ mcS©µRä“´©`üÊ{¶9UƒRŒÅRfÁº'¤e_úùÞ?®5Éð;,q´¡‚[ºÚ½@Qì¾nª£Ó”n-â¸._6ùà89Š2–½ß[eÍѨ* PKF£CG¯]”"ÐvçØ6–tå(€™ ªÁ‚ò?Å‚°¹g W!‰I±ÐpÍ2®å±ßÂ[ä'ðGlc²útü±Ñ&çØkNm¯f=ÆíF Ñ9àxLݽfùˆm­ô«¯ÇaµÈ ÄFÐ>§Ý7D±ÇmïèÿŠ÷žG¡H瘪Ðc*0Já$ÕPþÑJ2Ç·=Ô¦—4„ý\»þ!±þñ' ·…*‚ìcZµCdz}!D˜°y`$ÕÛ܃…CÒ™ýbË6ÆÝCÏk˜Æs.m1®¬(ê™™¥9öòSÅ…=Z¢öku VÑ8f Ù%y Û:lfqDPäGB(d·„[ÝÔÚÉQ´µë6еG¦­‹¦O»ºC/®NÕo¯Æõ­åÿ‡:ix Œ®üI`«ù¯Aª„͈HÉZ‘Ðkxú”è£û|ŽsAB_w®LvÙ5Šk äqœ³›UÞ8{ÙhVÄë rÚ!Š»ûÛL1„)„x£ÁD1$GPˆ8–sƒEHŸèËjLàY¯°-BIZåú™ùTæF÷çµ;QµÏ0þ“ ‘ê¤îa!ÚxÕÏY ¥8&¨ï?~`C]„zaÈš^ár¯õGÜãH¥Æ#a·¶"ÖÜ“+¨i‹?©Æ£ ¿ˆY=ú˜°Ùá' Út(Î,®gn[¸sLCTÆÀ”8V6È ”ëÿéÁ¿ÅFÕB~“†ÌjüL¼‰.–êäHËJµ:qj¨Á‹G!ÚüÅ9¼{Ø$´²y@öÞ@µ—e1ê¶bÙ÷kŒ–MVúOBsüÑûÐìN˜¢”4»‘Òýe SšäÏD+JñwkÚDP{;5ŸG:!¶m÷“ö¸Áà½ÛÉØ°É‹×)ªXúÝnƒC[QË—Ô4ë\ùèA¬.ÌÐmƒó¤&àM}ùH~$>XJ‘ ¦‹£L(ë„·è¬.[jd.“0³½GÒþðmñˆ±®è¢æ¹SŒp£ŸhmV¹…îu½œáQG“…JD°ÔmRHü}bœ$šd³t^"ßü¾†¨\Æ%[~ù™å¹:7'Ç[òÆ‚ŒsÝ·Éù®5!0§; » «PßÕåhªÿ3w6™ ó??ñ¹ØÇ,Ÿïï› . ¤43ìbø™¸òže憴žâjY[p_Áüi'RUÐØ &E[¶tzާ(fŠ 9É!ÖôÚPBº¢³Dí¥¶ìè˜É†» e±œ2»Çå8eõݘþt´5˜õ}òG:é³g\¯°B¾dÍâÐÍ`\^hÒïÛí$¬Kø Â’:#øn´Vš¢M˜IöƒIlGŨHvDyg E´Ý0 " xrHŠoVâÁ‘¡xöÐ.õ¯L·.8÷œ#Ey_˜º§ŸŸÒÁ.|º|¥¥€5`‘ÎÆíhª—ñ¬‹ï‹˜Ñ”Q𓶤&9XàºWÂëF@@H'hñ."`fþÖÉ6Ç«ÛÚ6üƒúp©›mLÉÄC¼Èˆ©f _èbêÉ\æŒ9TKwÀü†lìê{¶€ 3‚uÙýh’ÝbX-Óûz`dlⸯ)œ‚ž½àÆÛ8 ÄÉbÙ0Þ¬+ÝÛ:—üoÔ« "Gø‚†{®˜ó—¥Oœšã-Hè‹•sqÔê™jeRN·ý·ÉƒB©Ï±»%ˆ;Èó¼ «>€ªÑ66žy‹v)ƒ|‡ÛÐy=­X·mC¥B¬ |вrqЇ?gÛ<¾Óf$=éw1/>åfy¤‚TPŒiˆœ˜Û_‡iÝ\ Ð¼”NQcêºù’¸ÎÉffà…WäIvóÖ•G&#Ö°üL«)Ê/û¾iq@sVä ‡žnã½°²GgQ „+IÙò3,VʧX÷È¥í'fvæ#ª¤Ú7£¾kÝ!Å<ýÔÞ*2@‚?yÛ‹ªn“ƒ¿ÿ-‰ß¯¬ÌûËäx$a ½^Š–x‡£:L´9<|°­€—6Äêœ{š&=²|_ƒØb$à¹mÒÓ¶—:¬Ñ(g_ Û^®rõ5–/˜}tÐ=*}JE¼¯Ù›)­2ƒÆœöz«drÝ«\ÑWšúIÔðº·( |n¨b‘·4ÉýœßÃv•üI¡÷X”Þ'½f¾è>qóÕ+[ÀÿJ[ 4H2›%©Ž]'£NTñœ’kªdÇζc¦¹~v‹{u€Ò0#u‚àô!¹¶q¥ê15Ýìê-„öÙK»E#EÓÓSjeTðrVèˆí„åVÀyÙiA±œ&³ð:¤øÑÎ .Õc®ÉÓîÑë:@¼pÕZ¹XÄqá©bbgÙ©§ðXˆî ujTJšltêÅ£åm*·¯›é¢£"70lÑ …0aF¥K‰A~œHBóš“0’AÇ1=aÊ‘Ty×›rØ-MÌOü54NˆÈyn°³óO¿£:k…KÍÈc©4¬¶=CÞ+;ÔçUcÍcØZƪ°r0÷µð™$–­¦aL·+‘Î#žÃÑ¥-™°<Ò§6¹ÑqÖPJ•*!nCo¼$ÝŒ}#ë¾U×ó³8¤¥,ÒÙD¸…6‰î:|;°þ䲂!&Á:AŸÁ%3FË¡ÛÝûŸtƒ«uOçFy¶’!³¼o l‚ÞZöÚŒ¯ü|®2…{Hi!é |7k/˜ÁÞùy–{<©ˆšo¼äP_þós—îj@D \sÿŸ‰¹5qä•kä~Zì,4C#ŸçñËVLê¯Ë“ªð¬!À^¬Ð9ôër.^®ÿ¼‰yºšØáŒ>¿îiZ Ä£T)›ª‘7ëC‹yLÒtbÆi'½óÏ»/—Qæaé%1÷Þ"¼8º,4…µ~yåv¯RÐÝUk‡tÛ`-Rza\ËZØ£°Zd-º´¦¾ xá„9‰pMÙà}Ï ˜Z§žÖHËÇ<®àô‘SrøìçâÅÍ9±›ß¾Q| Â&!Šûä¬dæ¢?R°¨õó€£>ÉÓÁH"ʃנ!Uówýö»pñÂ4ävâ"„#¤V´‘O7®üˆú¸¬-8æ¥2Ì? [ðͧ±Åˆ‹íš§möÂü50Ù{œ@z«bC²,þŸá?x /Ün/7"[êh•KZ¼(þò¹_~7úsÄv› [vY¸÷QÊÙÄl¤«t ¤Rx‹[‘L_ë‹>Æ08*pD¾¼ÍVJ`Þïq%ÎPW …ØóÆûýš":DŠq«Wüæù4àtýÇ{³ qéky: ð°ÊÿºV–kr0§R_°=â¸þãñ2}FÇJí:n0 Ã.ÔðA{1=2ž°kòdß\ߥõÒúT"y>—o¼L;fîó@Õ"†ü¬äÁFcü¯0È¢H¦¹ÙŽŠsÉÔ¢xiû›îŽÆšÀHíâ@Z8Òé…8ÝâU¾C§Á#d ¼4¾3FѰ Ôˆ÷ŒžUÂÔ»øç1Ì„Fš±Wfð¦%#¼V‰ØâÌÑ"á,Ü@jÆ;PáLHì+¡èÌ€ª¦çwÙxÉI…6½Ìæ¶u„m³^Ñ ·œe\ÿï8‰I pŒOì¦4+j©Hð^1ä¤Ó”kD½ª‹W†Üc¦ùÆïAgSq¬Þ}æÖcú0[\¢6Ð_Hñ]ùx|êVwãú¿^¹ë9ÞjBæ ³…ÌG_Þ߃¼rµÝeëø”Ür`¿Ê‚gÈJ®üM $FKªùyÏ«HD¬¯®5—Í‚ÞL“?n®HŸ»ñDcOÕEbËb[sÖ4l˜ô‚óQ¿:ã~:yÁ&MmìEÉà»Ý¼Yž £.žÉ¸±¶ÑX¬Ýn7Í>±ÿÒ’DM²¾æËmÑ´MöÙ^U].ÿô6‚‚<ë²õÆ´1‹¬òÓNyä’sÙ¤ ç~$¢L.^køYƒ;WGÜ–6—BŒÅ8ðdûV`¦ÿ(P¢xõÏ&Çžµ]<•RìäBTˆd²«§Æ€ðK(wËØCwsûNmª.j*ô†Ë9ö÷%T¶q]œ0cáüÙÛº›ÞPwçîcÁŠvH¡`ûôäk”¿ÿÎY-—ÙÑ;NC4ó£_ëÀo[Ñ­f¸ñë¨ÿ!%– «bEv`гú¨O í¤*ú~F3tcH¡€]÷¸Sç±³†Õ|¯üu¨ÎçÏëÁ²øœævö-S”® ƒ8¯d“Ëÿ±¡›@zKS äŠg/køºÇÁ5œ¶Ò[¶™ã‰ÿ6“Ê0NÎBX‰ù`ÓR6ÊVÔ’l×¶ƒD#è$>Õ)óèj£=*öâ7Ò)T¦ ÎΑXT|t «?†ø•“Ð ŸhQÖ¯MH7?-úýmóß'ø¯Á8Ôá+óá²W¨ÌS¦[â¶•;ܙޓê•uá«Üv åƒûLJµ´~_úg5KÂÉp^~]Àªä7~sÙz),Þ\à•l q±ÊÜv lA0 Jù­·v–l;ë…¡Ð aY EOñá>£¶UhË•¬MxQÄÀ»›mëÒ Ú–+:A4ÍX÷KxúgW6šëÍ+‚˜— Þûéw£©ç³Úàô|bvÐÕÆ°GŽþóY |ÊFŽ6>JY¸”ä)÷!ý¥~„ õ…Ç`F fH›HŸ›wd¦J…DÓÍ.&f`i§¹Ô8à£PGGÔðqç«n,•÷¸©Fc© —„îí¤å+nDë^™=¹:®U [ëUncî ð3:毮ÝFJØíš`¦Æn¸ÞfS^Çi…zù‹È¥p˜\ηv/UýÚ=Ûðm…(5÷có1ŠmNWü6R¬^ö¥µM ƒì• æpôƪ2íoæ\QÇŸƒxrˆ`*F²›PopdG.“óÐ:—²iäíµ´½šzc…ê¾ð`Ó ˜$£èu¤K³ü©Ÿ˜õ‘fL #¼‰³p6GrêTæu«´èζ9`=| ˜”Kú×_ 3œIÿÉ1ßbÜœËÙŸý›  ÈNL{fùÀµ 1\;./˜¿|`¢nì÷Í#Å,ï]îÒÚHsFà{^üMŒ»ìûa¦×tÓº{ÉO¡ÒwÉlr»]+d„’8–õs¼GB¾NVüL®-3mK~§ ¯o”):°•`БOݯ¹ˆÀ==ú¯ÌbÞnìHÓ“w®roQŽE–~‘‰ÌµQH„ÈtÙٮ̘k·,É Ôk€aþÿˆ{¤ k´S¿ÝÆAž1–Å©6!ƒ¡ä %{d3Õ–ýôŸ4‚½è—ÞѸŠ‘iA­"çO™ˆ*x1ªRɼdÒ’ù]â;ß9/5RgùÈœãÎKù0#t4%ʉè«,]æ«2¼ò©þÔ’„ÞöŽpsüN„œœœ ÏÞj¥ WŽ¢R-Ú&lãUWx¾6ú{­Û‘™¬ü5lþÒèÈårÒîøjßÎ÷9hnTyán)hç–Ň#ÝX”…h|žý $@Ùғα`‰¸ÅÙ8 ;àq’{" ÍJÈM^EyÚ!=œ½ #†WæÂqæœ2/Jƒ"–pƒB‰„7¿­ø…UÉ4ÀO,_ñæF—cqÞQʺkÒ»-0ßPìBõñ[φêFë‘Àöš ¹ÜáHÐêzZ™k#i다˜Aù›‚æ+‚Û§àv1rdQ « d»7ÉŠœ1xT%‹¹Â‘+iÄK,t, jtÊYKç䤛[‚ÇŠyqÇõ‰Î#T²ÓØ74üLêòá2®™˜”àß6똌ÿhoŠgß‘'eÔhÔÆ\pµ ˆ%Ò‚›ù”ý|è¥ØM#K"ß'½èÿw2dpþúnº0CƒÜXQj(Æz½Ùi}6Bô­[áÊóA”—I#Çvd‚ÄöItº5Üxåޟრs#.(Ø›+Ÿœ(j׉|êoå~mëcŠÖñ¦ÇSäŠ$íìÕ™‚ç7™º³¿&‹·/õ€1<²WòÐËÀß †úÓÛ”êk]ïltÐpUƒåo|‚· Mþ@¦Ÿoºåû,5¦„ ¦ñôæ`LL6½à‘Ɉ27DnÁh k«Ñ‰~¡ü}a#UVWû'bpw9í€JXTS©Ÿ¸x6jc™‚^5òȳiEÍ©DóT¨ãÆdS¢%ƒ™E}Žl—R£ùMDÙô)Ý­üÆÃ»³Ê„äàa®5ȺÐT™ÛÜ C:s31HWZÀöa¿¡oøñp®ê7w= ûmAî™èGCÌV÷u¾LJ 5 ’ña–q¡gÙ›OŽ‚‚Ôý•¿ã/6/ÝŒV×%Ç÷5VB½NÞºìä’ö;°»A9HígˆHxò$id¦ÙdàDMî CJ1?OÒ@a)k£ŒƒÙ˜t„øêþ8x™£¼ã~èÞ‚§ÒWNV÷dòÄ÷í®è j+‰‰{lCÚà@c„Ì‹sW Ã’•Iéƒñ­ðï&™.å·}:íÔZCÉæ wÂ5ÆûaöެÚùÔIÖKh—´~‡jê˜P’vAöP 65 £kvœ‚å²dgÝŒåÉ(x“§nÄüFm8Îé ÒŸÚZ(n[åmq_H_¨Ÿe:ŒÐ£™¿x£´õKêqãÎ%‹Y5 œüuùl11´ôãJUsšpÑGñû†£JŸîÆýa@w”ºlùF­F²ëï»Í‹âƒ#®ÿî6‚ ê…ŽZܺo(·±XçÛI0ÍJ«‡€ßhGœ¹×È­ ”qm7Û È¦u;î“°ƒ7n |ŒûÁuéD5“ŒÒ» ™g©&Ò¬‰ÎMÂ~rû!¤h¬¥ Ç7S^»¤ÊJô‚R™ÚèÈLí&IÁ£üN¨PÊT臇®ºÐÒë~Íç#ö‘ÝS°†[}„ºzöéRÂÚrâ/Ä`Ç©Åß)Ð ¾õ¸H{È|rMÁIì¾ÉN ·2ñ„…|QØÀïtD}»è}x“MÏÔ&jùãX%jÉá'ͯŸtŒ{¯‚-‰Ñ‰®«ä•ÀÞlJWLÌ;çA6©±ç×Ç«¨“ï/wSšýõMˆ{•¹ÐÁ hÖÇÚþ˜Iɼ]›r*³‚¶xOÄr2üˆè2Í »&×/¿åÍ«ÎøšpBï–”’HÆkT¾Ž(&q™æüN‹ÿÒøSÃVõ/Rlƒþpe*µ›mfƒ…‘™–…í{zA@&2?ꊎÁtrüõ8IÒ¾û<¢–>ˆ}Èyv?Ÿö¤–Öʇ‚ÖÎZ“pÕùw0-ÿð_‡;Dœ'J¬ Bõ ª¤&äƒÊ ­ûzÇÝ’¹·ëOð…˜sÌ ‡Há]$Ðä*Ñ(¢ñX`­…3ä}4g ƇjÕ²pí¥4¾œÑe „ ŽþèοE®£uÆÐkÆZd1uT‰©2x n’´ÈO•°¦ºg%%]¯¯½uP¾5I9ŸSâ²¾¿Pàâi@ìÿ|ÎÊĺ©’‘üL¹Œ» tcõR÷iNÛ¾®4‚àÆËJfH…­W'FQ÷ò2 ©Ì®prÃDÅ"R>’—Ó¡«Õ€Bj¡âò5¤ËùÌpiñ÷›Ô‚4àŠAôœ`9ÑboF§¬ÝúÈ’‹œßÙœJMöp†‘Üjk€ÄòŒÖè~ýË0sß …,~ßx^=zÕ(™6Ç?-P>Y ›ûõfç÷χšžqO§Uÿhº$_ —å’PRSã/1¤´DÁ¡)² LŠC« K¹U¹%m¿a¢®Bþ+¤ÕÌÇ2Fþw'nQŸ¬/„Ù‡”î&Ú{®Z¬;½³Ô¸Ÿü6df AIT \©ÖÖ¸%ïlÒbéò¦Âp7ü/è&øÅ‰8Fò–k9N0E~•¾W™L_&Z¢úöWid.=—X8­B&^¥W}æ iðâÅÏ?ô9bʉ€„±±9øðwð~JÅ /º Ò¦ä°ö̾ÆÁóèB“·QýáÚIÝûÎÆ;:õG¸‰©X¦æ=å‘„3Ns‚Òkœ©ÄS·íPñ4æ _-P€8šâÜSÛ—2ѹ{üL»8cHi£Ü=¿JYkȬf­†í+°ÑZ^kštmxUXÀP?:q1•CŽÿö`¤Žº3­ÈM¯yw-Û‹É–©E¥ kÙ2õà¯Q ð|bT0O¦ËÊ‚ á¡Á*ÐS¦BFžø:ÉAò§ÎÒ1~vÕœG¶AVý¯†Â™>¨n±­)qI©L^ Óñþ°M?— r~%Áª.¡·*Ã3œé¦q> ÿ>TDÖ7Ñ&ÔXÙi[ô9ÍVêýJcDÙr'] ¾n”£ÉÙ•p¶o•Š=Ñ:×ë7È<}µ–éz+WÑJ˜ƒû·M›cY Eñü|¶Ø2[¹Ï´‘i@›¢87ëñÛ}jˆZФQïÇe÷Ûð·`•½d é>Ù•M¾ü:Û³ì¨Ø8etp¼ûßú2˜OùH‰ry‰Íñ§ê´… 0ÿ‹RZÃÝD Â"¿b (21…œ>ì¾Ë ‡”O’ªcÞü}S1Y+˨˜\ü#úíÝ @¹VØ…Í• šw@^ïAj  ûí×Ê{<úʧöÅËï)ŠtJÌ}t+ŸI7¾*—ööÐdáôñ’FkÊS›.„K úÅmÌÿ_mÖlï"µ»1¶»Ó(›& ü#¬r yäF‘S{Ó#KGKxsâ¬ÝÓÑQõ@mwl% c»Äé€5ª­ûûJˆyø1#Ì*†}f þ!á¾JlÆèv8¿9>×VÁð >ðìhy Tyx6~êsÏi&Å9†¤¬´2¡ÕÇ|³ø:K¦3 oÇl]`Ë ÎºâˆÖÿÕ‚!V¨Oa0Ýü/P?ÚÚñ³Ù=CË«JR¾Q´¸¯T(BïM¿zɈ‹7T‚–G°ÖÆ0œ˜,¬º(R©·ÄñœÈÚts@!á]¿ŒÙ¥;žÌ(óXƒ«u.b+Å` {ÿ˜Ü´Ò=Ëàˆ•iŠ0Œ Î~‘›Ê‚+HÛì"nˆÐ §2ÓåÃþ¤p5/èh>Š*o†|ÅoR0Úâ>ªÇ`oø…=,lÏ”ë¤2p]s€7þ Wõ¹ ŸÔ­„IAUKþ²‡p+ê½¹·vß¡ú+g…*Ѽúh­¯QA I"5£Kd \¾û–Ç?Ö‹]KôWîüîÉ«º6¿a$Ð^6^Q3 îgûÄÆ%”¶Ðî£|<ùS–‹½'¿­6šgûà˜RñÀzn‘ÙN¢z“¦"ü™ ë t2RͽÖ5’û»õJýJ:òèîFf^[h|€d‘+KÑ’ž]ýs,'õ/ÐKìÖbM¶ò#€Ã»œzlÝ©2’WS‚µ” ´Ë}ïªÊ†)Ÿ(ƒwO³ý°“Ãf!xd€Î‡Ðo¼c×íßaw¾û%y ÜžJ KÞVhÝ{ékO…JB”Ÿ!–]fÖQ‘±ë¢€t‰“ÇD³‘üë¼dæý|Ê”¿nÆÍ6 ¨ôÓL[éù–Êdãî}¼¥%®…­g šWeŒ€×椱uülò¬ó/áÅì¿ÚÛ‰¤* :ŸuŠòe9yVëjæ°ô¾lñš~^Èüd0STœ?@F½Ãóüܺ%‡Ã8CæýNÌЖ;u·°!îoó©m(pÛ®Ïλ¼ŠME²Y„‹âxÀê…mw«„º&çË"† Ñ·SÌ#JK­ÊI6«Ô5ªš³$2vJ{¯“BT3ßÛ„Üi&'îg‘6ѰCË"»‡™ÄxXcļâxi+O?€tãß>X©»!düñ =öœÞ_\!âÍuz„zcDA{hñÚòñßø…x é¬×O„mv'zæX ÞÒø¾o 5Ÿ]軌EO™íKñ LUyš›™íçN5Üim gxËÏc Hã€æOmDX.P÷äÆ@aP=éü"?ÙUËMhñ#Ž;ÇAÔß„e‚îNûH›^óS#¡Ô8Gzx±ú­åyòVT´)vé“™2˜ æ}Á-æ¤îÛÒ,š-õ‘túÍ YѸpÊÚ;–LÃO–ZVðDvæâ;w!S Rhô¿„³â[÷ í¢Ñ<ƒ¡“|0™;§ðõ´Õ¥ôaü hnRË "éΈN~þP ƒ¯ý|å7gÞ½aíÎ%Ãðä0R2]ú@åã³|Bb=V•Ø$SÓ$x‡¦ótþÛféF ¨·õo‰¦/Y`Z“ f3,»¿oýóÌgEÒdºA@-³Ñ†ÜFzæ×ù°}æØ÷Pˆ7A ``shñ‘<Ãe¢ÚñG lǃþÉd ¾<—Æ ‚W1ӾРû(’j'îۦTy–Dûå}&3ð»õuœfÒù}ù°;)GÚŸ°âJÒ°Öž@¹FxG±³lT³”Ö°»#gN$d¿þí²0@U¿gßüL«LÖŒØt¦&Ò¨…É KËÊèj µy‡g¶”þ6kNMK¾äÕmJ>}7%QLî½ ~– d‹ÚGy› `¸³?ë㶻ؕ ú ÜqfxÊq´x¥^ÖÈn5¦Übé”Z»ŒtnØÖ´µÙ¹'ÑZ.žÙ$áY÷žõ÷'îú9l‰ÈX¨Ëa_®‚ýÿ³ýË7‘ÿщ‘èÂCŒ9C] »Ó’¨4¾ñ/7'¯ÖmåÊ‹,%}åt2ˆD‚4ÚÝ(„û¿%ýLî/uO7½¥7Î>e‰ª¡!PIà¾À…d½‚zn8IYÙŠlôÌÙÖ»¢ Ñü° ™PÜ3 žç¢²“Ÿà bxlQb‡³û·r±Ê¡0)¸~–jY’iD¹À’fp:˜€¶÷|‰TqÛÿcrVAaofCstì7`˜¥ïŒÉ’OäKeKþОŸ’»uŽ3=û×ç%þÛöÒå‰F…8ŸSŠ @žr9¶ý´åýÓ0Éý,­¡úæÅ ?ó\FŒ|ûùÚJô†PШ"û™={í÷‘¬O˜~)„B³¢I2$žëZ,4˽eå*ø ýd_ðVcßL—ÉÎ’UùXƒŠ'TúD—tØß¨/ IŒ¥:zÞïöƒ_E=i_Œ†WM¹rÅÈv\KñRL<íØp¥+˜v¦ûîoÊäQ§{…•/©Q¦Ü<ƿؓÉ×ÁôA8°GSÎbüM”*É7ÜÎØ,c2™Ôë„ÒæV«Øòoê§×G%² Šz¦OäáÖM"dÜÖ±r¯Ïaý²or¼£1Wˆ¼w¢Â…¹2µz°7öétí˜â뵓ô¦h|+ytl-A?kÒªsº]! þ¶„ž:C!º®f8Eg ~”n« RGàd@킹xÏÿ2ÝVáë2Ô|âèÝĈ‘¨‘,‰¯1?¶Ypò@¦Ä=ò†éµg(V‰…©¤{ íó§Ù ÝdòS̲ø•ÂÃ8gަ}]”£´üMbiÙÉ ½NÙý9@ûvÀ&ú‹gÇGù3ów tBYHS5Si±â=)(ÿ¡Ñ±²IcÌl;S-²&AÖ\·á·‘ޝNÞù&1hôÐCÚÂ&ß]áàÜ£ƒ>ð¶ %Í¢ÎÿÀœè9nó™5ì!—qã;%üÉ€Ìç2‰ùÄv­JYŽò‚Ù&‹P¦j]•ñgD4v¯Wòµ¾4"øöà{~YN,£®“"hS) rÐàtµ-HçWv;RQc¯=Ü­ /ªR'üLæó:SÞr/ç erM ½¤¾¹VP'‰|{“Ë‚vIjZÃ5`‚½ßâWPâ‰kšá.2Lx\à¥òLÂ÷ÚSèù°½Û´OH4z•Ü„A×8)‡|J¬-ð–SöôM<„dC ej-­%ºk²ŒœN´Éû}×0¼”ÚY½>"§¥CŸaѽø„Æ#ôwîWǨcúãÒÛù ŽÚ>Eéeè= ê2ëérT»…õÕAq!gÊÄm(| s<ªpšìöÊ )Ù ÝOggSäWýÄ nyæ&Á§7ãéßÚåãæãæèÿgØßíîðâÿuÒÖÒÒÔ×ÿÚëêæéâáëëïöñïÿâáÜÞÛìÿ‘ââäÞüï> ¬4žÜ÷°/0)ãáÙ<¶×L„Õ”3*]ÔþüÓ± ô̹¡Ì %âÀVäãJ'Iþ{iWy=Z/1'ür îCðO*bz€Í¤âÛ’ˆ½ñ,šþj³¡ oìX\ŸGÆü?EÕ/l7’¨å·¾»…ݘ¤¸©œÌžÍûD4ÙÕ‹NÌbR:Ò\~(Ñzi“]¿Ï><‹¨è j*”¸Vé¥ûã%j80hu£í8R×\:Ç䦎‡Y±v]9'Ü¿Ýïußߦ*¿Hº:Üa4ÑT‰b üL¾! ´ƒê;¥Aá*PÇÓqL1=‰ƒÃß…­ò%×¹¼:tÏ›lñÄev‡ÑI¡Žà4‘= :~û]!HiÞ¸Çhƒ{sþ»º[¥žvâ=¡—ÝEcåƒXCRY´þþ¾?+7z œiÃÔµ¾Ñ~$ÒhݲJ¤¦”`sÌ ùCw2ƒí+¹cšùãP•’ €^Vk¼}ÑÕ w2 »ék¡v/Êbo“ÌãšhwëÅùڬ둷QßÛÍÍwÛ…säË_´¥ÏÔÐÝi?»éEÓVÅ@ó„ôÒüM ̽¬˜Rù/ àã”9Øñ¦^kHQ˜RÂÃñ)[õ™Oå®·K˜áãÕM&^ü»s ÃP¹¥JªUÁÀC¼¤Óà}&¾•7 ô‘.¤€òNlk!IRâÚ7ÀJ®”‹§A¸‰mÖø˜ çÏ–([짃j€¬»ç4xÌ3§|ݯBÄ¢;„…)e ][üZ¦–/ûm]`˜úʼ:Ò¶á;T¬|Šcë_œ>ÁŸ¾\ä`mX]tãrø“@ˆM÷hJ,vÃX¦úÖ¥/˜ü™[À´üM?îŽÜD¤T×={znD=E­>º.:/U K¬”qŠÔvøï-É{?C7íNØðpÙP•Mg³AÎNx˹²Öâ©‘Á¤ ‚rHЀ!÷6Z² XÂU!'¥áü„æq]^K³ mè#¶GIžî‹¼¨=Au´"·*i<¯lVë>Þv¹±AUShfwCÌìΜ@ÞçdðxdªBw%‚À4¿‰ŒREQÁdK!DÝ–¢òÓªÓ-˜O¤qÁÞ×­ôî½ —3±´ ðá…ÿmuüM§I¸/ŒüLéŠb!0Ð1õϤM¬l‡2Áä迲ÿaÃäNÞ M>lçMª`¸ 1zšJóô¾ž#?VMµÃ©ñ@81[[ñ»EØä®w”j[ʃÓPT¥pð±nG#Ök¡~Tê£Ó²Œú÷`Vš”¢ÚUra`«ÿÌl®Cˆ¥o«¸‚2]‹’Aœ¬ÙùV×Ô1'ª‡+-TFw%·|Z«ãm»'åç1‚. B=Þ®bÖv+P[²;…l½òV“:U£J6ÄkùíèŸ>µËtñÁº¼š±½ü5PÔõ4»<îYòˆã¨° FïÚÖ=ŽÁV3ÿp ‡iAdŒm@ú3„˜”¸ü;e3F\†»LþÐ*¹žÔGuÝ¡mÉ ¢“J7M#ß™cUǾÏÎav®‹ãد¹ŒP†”±)†ècs„v§ü3ÓœS¸’i±tgKdðßOõÙ¤–;–àU›%‡“üï]›ÂÈ\bÉÛe…‰ì´æ_€PMËíÎ1½ßwiÝÄA…ݯŚ|µ=íoº¡Ì¸êÇþq¾p[Üú+•Ï#Áù/úÕ…ò£JêÌas|$LrÅ?i‡Cà·r§jž!ÌS¼CIÑ”¹·lù¸ JPW‹oÜdÿê£Y¸^i8xºÙNÊaz‹fÙÕ²WQ–=.HìNsPÑP©é‘öÐtÒ )3Œ F­úª{Yã‡q›‰Bã½ JÝQ~áU«ˆ ©\7|rˆË6²5#Åæ7Ô+ôr”üMkxÅåÚŠ³»¡WùrFAtr€Uêúts–1z?犽zh%¡¾–zJ[ zªD•ÉÍwÕ*@¿éüƒâ‚€×÷>#þ@²% ³Öó¢3|ìż¾2²\[€9à ü·V?;+àÃâ-ßÍ4(ð«”sû-#ÏÄÞ ¨ö}vÄþ„Nº›Ü;i~·ÄÀØT„‚×[ÍG–)}QŸ©ª^•ˆã®:Ò¹RÚ-1žfx“H@=ÌžÛà©HtU¨€§òФbÛzk6Vo [t5!† [Š.‹¶ÄåÔ)ëgQ7å±[üî‚FdeX³'™oo„í·ëMžÙ>–JFGÝõÿ!8énC™h‚C·ˆãÛÅ(×HoQ¢ W‹‘{œÒÉ mÖØù—|iR²rÝôïá m‘¯¥eP¹¶×âÐX ¦\v¾Îe?ŽÃœÍžÅp mø5±ëk€V Í8†Ä’VõdèoU¿ä†l9ì^Ä„@¹æn8™!w7)œ÷óHH®HÁÏUè”fî )1[_• /ù¯A:f9‚òÇC‡ )!Ö÷‡AºÝ)ä©"Ó_Þ;\j5?£’š`“±—Âü}^#[Ш˘P9¶_S?´Nûr丱"—‡¢ Ä92E£rA‚†«T{ âlmH…n,Evσú:žïþL³)7ù¢•¦|ÐYctéfõ±EmNr:låø¦¢Îí½¦ ~ˆ·Ë£Â„»UÕ3öà¥[ܦÆ^äf“_mËÐ4&¶íò}®Ÿ“ƃL—þ°³4:®Òºš•å­d [}ÙD½¾ è°‡ˆùÐ6Ÿð}”Öosø-Խ؈PõÌjêð{ɉyâ‹·‘b§Š)P4ãŠu›Òb“ÿ&ÙFNc~âѳà)Oã[Y%k+½àë‰Nö;~À:¬€™že^i“´c>Os /"Ý%@Œ"É _Wü&Ã1Š”!¥qš¼ùÇÈß]†‚Õuê2°ƒNÉVbÄÙÚfØ ÊKáfã÷AžEüÂ#„÷1U¸±M¶*”Î&åï´˜æsá`;èë.0ü/S9a§b±øDsÓžƒÔôFœÂû!òð%>óì$€6 ûPUµ—mLßÇiêo-Bš7øúgqÛ~N¨ÔîµY ß4ƒØ6TW?¾ ý&f$œ+ ¸Šøy9ÄÏ댟]Ì¿„&Ž\˜Ùíš¼ ³Î¡7)7Ú*cí:à_—åWUøϘÈOßœŸGmÜæ‚*­ÅŒ^á°kS³ÿ¦£(D,¦ÊÙ>VL÷·ÝÓ<,î»Æ—/}f]Öl9wìUþt©?æÌݘ.PÌÑã|üL°t†Fk• ˜^T§Òù1pÛ 33:lqA9óØ;lV=£‰Û‡I킆Íô<ƒÅÁR‚g©*lq½fhùüµß]riÁ{RC ¸­³ÐWµš®þ0Ì{¼+¯(7V¤ÝŸfˆ[ŽTHÊÕÄñJËÝ´3èÞZÔƒG ìƒÒ>X&«‰†Bù)ZôÑ‚¢TТ³‚œTš-bëNÄ6´4‘JžK\uí£§ã 7¨‚|a€éP=<*L;¨•îuÓî†ÔBKbè¥6…R`Kà¥R1`©\˜4Ñ8ÛÓ$´’üîËÚ®ÐmïöhÀd ÷‚çdI(HmJ©¦£gQš–ÏôÃRÚëÞt$‡D–z¢ƒëάoÓY9—b2ªŠë :²Qp¶”?’£FÉæþ8⬽×ê“ï¯}¯qJÚ<\ÞÆŒ¸r*ó‰$W¼µ—Ÿ>»ÓŽkÈ©9Mtf¶=?mJÕ ¤¨¦šÜá 4£*¦K `C”ì>š¶ùù9+tÁPõG4QS|hªoôq<Šw ©ÚróÚöe8¯AÀL!äOÐ8Ø«…`RíB*woœúo’¡>+ãÌPƒŸCr]üñ\tÛkA=_e_^Ýú“ÃffM8m,Vmêè»\8vø#! |z®~qÆ ¶É>‹¾€Qe¡EÓ }ú½ƒ'G ¯‹^o‹Íz¿%®Ä°DHY ‹îΔñ·|/¿¦ZSêÌÐ[¨ø¢&K™l:¥ÀB`0`~\]„û†Êî‚¶ˆsÜö7(¤Zÿ&î¥Á]ãÃw×B­ˆ‡Õýݺïö†ó_Eü­ÙÉññM-´~y­Â|Yªf¨«ý³Êóc'+b·äø+eó~ P’õ4Rcyx‡o¿Å_ouãµ-ºGE±Ñït¢Šüî‚}•–åYé¢{®Œ¾Ù¸ÅìÆØ‹{=Ï€…IšWP»šñÏgÙ-úC¹2bŽLÏY‡ÑÇD&ä7¨]nÙÇ,º\»4ª†¯—”Í&“\r3¹ÎþE–±Nl扗·vhõ F% z-¾ÀåüýÈÐâZ„N ØLô)!öšz–QYè§:Íü[$¿ˆ¼=œL±¯½Ÿ?ðþªˆaF›YråÛPȽ²*°ÿn\Êì¼w»²ß÷c˜#Ô,Üò½3š&ò=E;OÍæÒ娿^úˆ¿Øs •l¿ZѺ%´1d5(æW€ö²ÒеE:캄ÿòŒüî½ÃˆÑsQ0g}˜ò†O«Ô¶=?²ü!1R¦êŒ#þ.ðêñ¯³H^+°1.’aFÆå†=%j÷no+Rïá¥!÷ÒÁu±VÂd¶LP@5»ÌòuÀèÆx¹¾á4ïZž“°š€c'®³.¢Ô§ážÝ³0Ef°»ú»¤.æðii£Øe…ØÔAî…ß³ÏG{$s3ìIÖ<èBãÖ¬ó‰½p)‘y^“î-¬ÓàÇ=€â–µ®g4Ëá7UP™Š/è;¾­©îa—!ˆ”WH/I]òcòü|¯ØžÛ¥q/‰ =3? îçÖ¼~°2o£Þз¶àzD“3Ç840O.Üß½…ÊÕÉFȬrC+®GÂ}–lëÆ$ÅÆÓ‰a>øaUøÞ›ÒB8›ú$ûÔ¼÷lÒÁ¨'¥÷!SIXö(îáx¹öѾÈï{¬1@{ùÌTYįÕ!$o°XdJõz6–#hwÓ„§×/å»’€\±× öôìY“¼½´yÌw¹‡Ìµl\E4:ë4P/£+ðì)t¦ ð½?Æ„¯¨‹²¬~=ß«žC&1f[¹{0¸$A.í„ÿÛÞ`étáÎTa_%ìw…geJ\A‚ ›°%Š´[”¶bÀÒ‹ˆëŠ€¬9Àƒ'°ÉŒ;ô•TŽƒÑcFbñO æmæø²G'øô˜ÀI Þõä‚À.N#è­¶÷LœJÓ—Ì&"ŠÞ• èrµ‹³Mªl‘4JîäÍ1gùÈæbüX'/ú§\¿V¿!DR¸XÓÖªYùÊ¢;ˆBÀ‘~í.t} -¥ãžq¾ž9Ó9àR²TÔgŠCbdgRù]J¡`Ø–kRp€ä»’é÷q;Gܲt¥Ò¹·'6³°¯Í(­ûS npSŒŸ"OÁ—ˆJ…f¥ÊˆK,ƒ³S›4f朸ÞVÑÖ[Êdö&Ç3ÇÍMIŠù(ÕH>)¬Xß0q©–ö’ šS"ͦÙA­Ø$²üß)à.Z˜€AÂzWUÒºÏ Â+½C0üLø ‘v®±øV³FÉÐÔáØžrªø¸ßã^2ú17V6¾Å ö ¦š…c<ꆖc|¦„ðæsFl¤AoçT03ð H<÷7Xç1à 9?>»ƒ,š©äÀj`@ÅaåŒÅø³’‘s*xƈ§œ{k¼ÖE^Ì:ý•Â[.qÚëÁTJó_2@Ƨ_ÒA ÚªÅXò&Þýë¤8t§Hn JVmüs ´×¿u.ë]x¦ÉˆçÈZi Ø¯ÞÄ'$®½=ΔµàùôIP#üWíÒu ¢}$'±D¬2Ž.*šp·_èÈhë!ÏU{ãÈ="‚B-+PŠ„-‡Îçvùµç|Úœ=xob‹åU åy*MŽ-JǶd2ô—††!˜n¿ ¥ôÈàecÓªZt@aw$1IéÑlU'çÖb}%¯ðÙlÛ|4úÎZlA×R†‰Y˜šiÝk$2l-¡Í}•ÊYtdhu8V,Rb»ÜyS¡Éí–ñ±£¸–Ëèr¨_¥Êø‚–‰p}3æörM¬‡›Òë=îPüMOXÀ悘J˜Û) ‘OÑÞHøG?7mmÑ\qô?"¡Vãòoí« Ã˜=¨ÓŒl‘?ÝŒNy=Û— uöH[ßÅŒü1ÃZï }eלÁ6¨\j­˜çC±“üt8Z"sDa)Zv’Dd¡¸…jÿ.Ë¿oµAh€”¾Ð™LP‡eði ÷&ˆPkk -/#·"Å4ð†Ò˜ÿÏÍ—õ(¢9g§Xþ¿m÷;‚à°€‚{U²RE‡ÎãëuòäárVGCüL«°´´÷böÇØ³y·H-èd¾2[†Ì dSsª—@7ÃÊž¡­k ©Iþ–«BÊÓšö£äADðóZµá-¦t1ûj²QÅ1·ê0f`ý¥S ˆŒM Ä:ŸQ0ýÓd›ôE<ïT1†ÉXWÔëþA(8'Î ¤íûÁàý@“•}˜ýë 7ce¶2 ü"HAëv>yÐöHpV"ŽôZ¨p%EÕâ¸?ìàkúÍäC¢SƒÛv–ÝTdÒeMúMüL¼þÜ©ó5÷ ýëÖ^ ½>me1Ë„»È“_pG>é|„[  „ñd²þx£îVïùëÈ,Óm­«Pþ½úä[ä{É*³s«Í1êqQJêáB7³³atË;Š®“ ÜŒZXÙž,Ivsp_,yêËðoø½qDü ü/ÈU…­ó” >Ó“œa žw›î¶©‚Àã#.°EùÊ3¦âz&Ì¿q“\½ÓŒ>ÒØž³åž ÿÄ£g‘ B|XéóYmq&Àæ…F®ÇæÚülÔše©Nã,=±\Æ<»¾-6¼u¯²˜à@œºÐ:úYI“0('q×–=«q P®å±UÄ4}NjÃ¥ƒ\5Ñ.V)³Om\i®ä_ó¯ÿûܰç¬EºÜA&µWnšÞjÂ*HXý‚˽nøá|™¡0¤¥õ-9+X†/;÷50Jן¼•E=Õ€ÎúTûÙn¾þ6{<úðÜZñ2cÌCnÛJ¡pÌ##CcÚ'@¹r’À²€Ú¡$\™ ±ãVÖ4Âô¨†š:‰û¥mä¨< 5Q˜6y¬©£N¨yÁ'}¹œÕQ¿m—`’ŠHƒÂÍÑGPüX·Œ2À°ŒÔ•a뢳ý®ËȬƒ#zà—¦ ӰЍùqEHÚìþ-ÖŠP—þä‡ä‚…6º¶Í@ö}ÚaŠ*:“„»j—1¦Å„» :ª †·œ|Ùœn/`“c2…3\Zã/êj¸AD²º'ÇŽ·„¸†õÔËs¹¢ .‹Ec³ö²mÕPñ…%Öè§0›Ë &›«(™1 O·°g4ÓLwèEuÇÃñÚzÜé4´Ÿÿêyë?OóåPö€åÜeªºµ#,¹Ü¥-ogþxGõüL©¹|EZTäÁM„@MX×èòÌ@6S¿Wp3¿L-¾£¼µ>Ô}ÕuƒùÛݵÀÿtúï8"qbeT#´ÊžÓ«„ßçiðªÛâßH½ô |“ÛV bã§Øùh½7gòÆÙ™3œÊ9YÒºÿ‰y­áxé(Šä[ùÉïki‡÷’Ô:‚¨b¼uQó­F¥)Ù–ª%!•j@ VÖ©"-›r|âäÖô:"—^—¨Ìö³9Úù9Q`¤}6ÐtȘ?T»!¶îè!-ó¬æý ¿H·<¡è›j¨@ë"F¾üNP”™ß †<„ïbU³ ¤¬*#Ò[TÞc•ŽžMcl².dÁÌ=V9ÄÃ¥=Ws É»û\3¥’({Ýi-ûr\Jç…æø)3º¬úc=¤~Ÿr›ûÉ–ÿ¯.ö¾ÅâC ÓÜ•ï!Æv’¹iù^µ Q{QæW¶ÚíoóÒ6ÅeÙÖÒ{zšîN˜Žyv¡û9•¥[ÿ†øf͘·ZhHá¾~x¡;‘IKЃ¢§ÃÃ* -‘¸eáÞØ‘Jm’¦ñ%u™Ü†V_œ=8ÏIi}¡²úÛÔ6fc™ÎÜçÁüî•–w‰r:ÍšÝ8 ›ÚN¯G¨'@Ìš»ô彪’IæYTd©:BgÏ«×-b^TP£´á{Ìà±Xb+BYúsßPÏ4’¯^sÛ}¤ã·¤_,”ÂwÝŸ=š4© Ãb„‹ÃAî*ŽÑze^wæuW¤NS¹0jyòʸŠÇ@GÐÅS’~èn¤) ]à32©§^Ú@ÁûM²wõF»¨åZ2ìF›FC[Ó/d¾¿ªÛÕóözÂbCû5›LÌ„îfáá#ÄýÍq7Õ² D*œëJ>-­ |ìÀhú S²ùüñPž%k@Ð/à™Î"¸ùH¦éÙ£–•6L×ÂùVª÷d![Iþâ»ÕPØÍÞý^Ûœé$‘8;/vb‹ìžaÌ3Ì¡DBLô®§ Äø}Xæ¹Xþ“W’Yd‚'te–.ÇR¢°à¸áxñ¸/ $ƒ­°´d^ ð.t&$ÊÊë%ö:ÓZ½ÏüLêd“vuÉD6ãüBäíÙåŽ^1?lh~ã¯'‰ÃM&Ü3EÁEæÿœ'† Ùn½w©Ó8 uÝ¢ŽP3‚ )v»àð´bAR©¬Ón°Ø ‰}uL³ˆü2Ñvµ¹€OGÅyøTi5›çˆÐл[,©+R_ý®LVIÅŒA#u«åoÌ(…ÑC– ‘—å5Ç® ÊÞ½N€}w¬C/Ev,‚ò›¬3§=Þ¦‡=Úþ§uÓÑšé³`·{šQÊð°].u²7 ù{®á¤¾û7nÉ[ 8«ŒÇ»žÏ<è€üL¸Î-¬oj“JoáK[3½µ ÌDé.íò æ¥ñ£¯ “ãá¨õ¹1ºNað•¬Põ–¯¨ƒ­®h[*ïN`  8O yk…¼'ÐÀm_§Nêb9¼ßA·™î·1ÕI&‰gN0?a=MGÝúBºQÜÉ OÌ«líDVÄ–Û]Sê[«ÖbUTy³˜0^Ÿ ÿí}=ˆXýÉc¬£+¡Â0Å‚JÖV=‰…byÒÏDüç]¹h£Ðtx·“ä þzæÞx+'4@HAÍÂì[ãÑ¥¿é';þüLêBðQÅ’¥[g ƒ&}³ÎŒü’2Ú;’9P¥¡Y"×}Vêôcw4;™¼–dàí—åjžXý1K”oò¡¦åwFÕSÃÔ©œÖpè'M T28šÚ•¨^ヶPh‡›z¸Î°ËÊöºHnvÈZ¦‘Oƒƒª½zê¥Ïóe×Ï©æÁÜ7~bñ>¶¿k6k &ã¸'¨Mûò‘l®ä̘¼OÐ×Ú çQ]'Ÿÿà@üIùTT¿ÄIaø5×­ë!…Œ”[»2.â´ÂRÛ±Ûèá6`Ò—µ)÷ØÉ]• Jú .ã®Ù^{9;<«íæUs$‘5›:ôD†`IªQZ½(b®[pY0ØÀxí3îŸ~\×° ý¤#š@’)8½©aÄÖ޽̖;¶{åI\›úÃìê-£çÅoÊÒ'iÄi²mñÚuö8‡¹,cŒ‘õg¤zæ“äÛŒ”êT˜FE2‹K1+˜üL½O¾frÁýoR¢@²-C!-*G6çz´×Ù$U™ ]ÜæˆZzÖ©mô«7º8WM ^!)(ŽÙ’Œöf°#áíØZ¹ ×>Wk½ú‹mJcUŽIN âvm0‚Íc)ƒ½üHy&n/ŒÞhwXÙLØ6ýŽ Û\*'¦«˜Bx ~ž»âà €ÍhF*}}j3i×Ë3ÎèõXœÖñ×  ØJ#gô­|M‘õ7Ü1 ü2v3¶iö¬˜d´žf›Ÿ.Á˜e»ªŸë¢‚^9UöE.p”S#Zsh³Ð1ÔS¾ºàç%©ÔwzÆ÷DüĘÚ?;(Œ(wlôRh<ĉN#@ϱºLzkK^qØ@.×RÑ| o ž'•árrTû÷(­Òt÷¿n’Ü¡±A•¹2ÇvqËÂþqrÔ’téªð°~E/Áø§ã¦ßȯÁѦeÍí8“‘¾ŒuA-\pD}Ñ®Tɰ¬Ë8‰çšˆ§ûÛÄå— §&ßvTc'í #CZ„€.š4kXÛ!¨ ·¾áÇ82T¢Ì „À³²‚èS!¼¸‹Ù(ùj+x,Ú?ʛ̗‘´°Ö0êøe¿^†ièŽ@Ú:º¡m\µü|¸ãð‹4¤ų€CåUBÖ¾ ' •Í;ü8|ûo5+~›hÃæcãqºFø±Üzý@ß<„ÉÂJò\ä´aoyr»Ðñ€ä&ePo‚Už×L@Ë}XRœúÐuµóÚ¥Tà®Ë[¶ølßå¶:^Y' Èj-)kÈe¨@lg!—ÁGºûUàÏðûžjzý“ºü>‘¤¾ÖLÀEtÖ³ÉÊ¡$ .j š‚J°êÏæ¥4%pŽþ½yVçoJþ’ÌLHŸü~Ý71åHb‰¦l§}ã“GŸ²ÑG&ÔiÇmÎÛZŒ8‹ÆlÀfÝE‘eŠˆ¾åDiœ•GÔæË„`>Å%NÀ†fvøgâÝI Å&„u’ׯéÃÙiÑÐiìÎ¥* a‘×mæŽÅŠõ©If8 ¤3nàÊɇcÎN‰W“·h’=")ÊKë÷5ÕÒùÉ~ µûwðйæ9-¹ÌŽÅåcÇ ÷„™t„Že˜î“ ª’Q1×Lû®M²ŸnØÊo ¸|m $­Íh]äà=J!)…‘¼Á¥ÅÖõKF~•PÁ“T-´ì"IŽM®³H/ ŒÑì:ïwÿy¥=aTwU;È4W\~È“U:7`ßå0Ñå+éQÉ-Êþ?ɘãùòE©±OÈôñ²îFYÞ=GIý— Êu0J°žö¼gŒ“,ÝÂØüñØ4Í„8E¡ÄÖìÔÝTµ$²æ…øÙ¶~$é£z–iÒTw­"Wøe"¯,®—­T%g’sI â}ÓKLÜm*CØt0²¥ã÷ 1–U½ß¦ ôñ«2¡Œ+Û=;'½¦¹×þ«1À<})AÚr'ìEÝXQÇSú²ÉÖuGmŸ<-[ù»Ÿb.ŒãÑfx´1@;´ÓŽï‚f}!ûÙ÷-’¹l1zlc ž2y„Þ²øÞÓ­ëeA:VVE¹'# ]|I#{Ó#-Iå2ßüñú›r$QËÄ¿¢Þ¹÷©/7ŸQ QÑÛÇiCÔ´,ˆÖeP`[¦ï ;+¾ ¦‘™ûì×™üd¸Fó^ !Û~‡ËÊó È}µ[!f¶üsLñMsho§ÕRÅÿ@&ZŒ±é”e¸`\ïÞp“êÇÿ©ðú"›g9ËR¥Gc‘п_ˆ}OŒjÓ+ƒ÷Š'÷¸™šF®z¸¹–„jõt‰ˆûü´ ÷Œz÷½“¼”ÍIúyøîÞ_œöˆ»ÜÏüýóWq›ôöb];÷ÝüLË]SpÙ|˜Îy”g­Ü ¡‹FŠvý´lš|†ÃkgÁ‰ ü„ªjWñâVuó5YKç‹ö¿>(æ¿‹u3®kÜQJAò:l½¯€"zvNùåˆdõÅ$jÿD¼Y¼lxÇ·†´™äÇ€9Ⱦr^è/Çõ”âoϪºÕJìëô‰Ù70’ÎÓ|By×Ê™ˆµ%—תúˆƒh ጠ}B$uÊçt>øu’òŒ( é’¦S½]0AY¦>Hÿÿà€o}ZP ÕŠîÛ€ë)H4O MQO¶9-“çî.ÄÿÆP|ú yO y?bÓ(Ü.œëP³Ì©Aë«;mSÄÝwáÏtq3¿e¢/YW^ãFç@3d¨ú ÿðGÍ|ÒAX“³Ÿ?¿F zZÃxîomžN-ï· @×Ë MhJãC±ÈQ“/KEŸL}’êvìûÛçòa߸ÐÂ{ßB!v€ßI•ño›Côº*,÷‚´NìØ¬³%0´JëÊ~1M?ôõöá?Hˆ³ŒžõByV°œ¢3~±$ŠÄ,©ëõ$Â÷.š;Jdà3R¬ï:*ùÖ©‰Jó‡Ôɽ G Á‚‹V0ešMÁÖþÆŽMïøÿ$»è™ ð”t–kºÛ½ÞN¢Â4ZSƒ)6L‹uOíE ù|©…IH«©¼•”+=æù:³( Õª aUº •€rtpengine-mr12.5.1.22/fixtures/opus.2.48k.96k.speech.ogg000066400000000000000000057517171474347554000224000ustar00rootroot00000000000000OggS¨ä–¨ÙOpusHead8€»OggS¨äÇزÿYOpusTags Lavf61.1.100encoder=Lavc61.3.100 libopus2title=Kaer Trouz - Falls Through Walls (80s edit) artist=dotjotcopyright=2024 dotjot Licensed to the public under http://creativecommons.org/licenses/by/3.0/ Verify at https://ccmixter.org/files/dotjot/67669TOPE=Kaer Trouz TPE4=dotjotalbum=ccMixter date=2024OggS€»¨äЦ}Á?ÿÖÓÿŠÖÑÚÙßÚÒÕáëúüüÿ“ÿöðñÿÿ ÿ¶ììóöëðÿªéßÿ)ØÞ×Úëäìûøôÿ¬ãôÿ ÿ ÿüy¤—`G↖‹ŽfpŒq^5¹Œ DÕ5!\Àûd‰íÖ5¬ÚÛ«éc­CÔÝIÈM/ÞâÛyý\x×L ×8zª½ˆ ÆØ!šÒ/tRYñßÞ&hoiÒÍù²PV=~^-pÞÐ}¼•}®?¡Àލl±™àÁs¶Ÿ,؈×ã¬ë¨T3 ~˜rÑE ðp€Œ¦ù2Ç<àL·œy»t±Õ/j5³ ¸f©_¦—¡µtØå²4øíJ¨ùnKÛ…üM=Y!¥ãJpWý-rò¢iù¼!ù$´stT~¼}^-+è#îd…MóæãºC¥`çÒ×qJ´CÔsvÓÅLšež¤†"ñH'½“ÁCj‡m­üG‚·5î&iFR¾‚üX >?¤aέÂkC{‹t¹)ƒ„ÖN˜W6ºj§¦xÏ>·m’ä¢71] ‰’æh5¡úJR6«êJëiÌ^Š"Wñ P¾o?È…†Boæ-Ÿ$è•ÒxêÍM;§l¸ÓP¡Öˆ1^X®‘x  Ǫ‰\k×GßíûL@}¢äxÒ}l¸ŸÑ׃S¨ ã÷^a» ò§æÀÚ1%–=Üþ1™¶Q©Â``w–d;1¾¯K¢Æï*”'Ûׯü&ݹ±¶ §p[_õë ×{g”lÕ®MZSh¬vœœsÎBIIÛ:-1If‹³¤ üM,*é(Þ»°UÁ. lZhܼÐQýÔ®‡ß§o€/ÇT#[Ÿ²¶ÄÞ¬ø!2$RÆ–Ü÷“þb'¢P (r!{á`¿›‹ò %q²².LºŸÁC.ëIüY3ý™”´¡ÞǪ­ cj±v`”‡•,}å”hÊ‹ñqf§Ê Ȱ_·íÏådŸ vLÑ/Ôå‰ÅÂmwccwêB'> à}Hrm´mŽÛå÷ßì-ãNgg4“öPœ+—fUìd þzlCñvrœd‘(ÔT…× {züLªiw'»;ÝCQàri7ÞØKùJZknPÞHrcœ/¼1 ‡~›µ(¯êoÖEÖ%[RͯŸ g ÚÖ™ŠXÚâDýoT„zìy›³ÞA‘.¹nv,‡Pit§×ºDNæ`Ú¸]2"LîÖ~Ÿ#hâã¿Pìûnv7ÖÆŸ[ê£Äѯ«N¬à¾Ï® Q%í|cüÉð²JØÆeg$YÞÆQéæ0Iò9—+Yºil‹©ÜÓÊ䊸š„YF´qžTüWæymˆ½«ó•(Ã6`)K¸`dõÜ=~Nø@‡ø„ùÅ«Æ žqž¶ç%_aÜŒ•®"÷P:c‹”[1üb—Ëh¨/‹Õ¤æ32·±˜ô‘µPƒÃn{'ñˆþ’6>›k…ö†l`Ÿ,ySc´FÖNEccè…z´±4Òÿï»q”`òç;?BÇ ý¥(^~ªÉ½R°¢×\D^’bX 4ÉðÖ+3ôkÐn›r±ìq\®ÖŽì7„bW‰P{\î%ºpY%³©>ÐuŠžÅšQüMXÊZµÒO{7†­á±­[״̆HK)ΑQ™AÒ+2žî’{ ‰.Æ-—V52ïÿŸ1K/|Ñ̺SíÉ4]Evt‘/„)è§å½¤Øž4»I ôãŽþ“9Õœ6q⠇ɣ!$ˆ1)ŒÑ‚EÜsû“—Ÿx»Å­vË@â¯+Ý%r l:Í…™Úä“}Î’ÜT È@ê$ÜØ|Bè΢Þeùzø—3ö.Y·àD{³ uxj›  L㪖ãÃfÈ`“Ϭº[½ÌSíe$IüMIŒ,¢Nw¤µ7\žâíñ¨joSM|á?Öç8ˆON¹Ÿ¤dbãâˆÞš ÎAÚJ‹Äd©º¯†­È$Ó#â® àwùZ˜Îo„Å€Å}ãÔ¶Ä/åT)þ“(S!ŠmTzãâú ÒÉÎ¥'§¾º «ÌTõ?!“ÿ^Üquo‘UèJ›ç}úû;^ü°l@XIÇð–dœ¬Ÿ’lqjT…ìªÜäÑÄJ‡0#×*¿DüiiÖß4Hl™ á9ƒ)iùë4ð ZªA^Añ?ÖyWl&دºë“g[|$™¾˜Fü1@šþn!‹øò‰EOª–õ—|¬‘: L>qXkôGôÕC2×L,Õ¢»ä?ü…IÈhfBzWCæ*íØ7¥Æþ j/Œ}-oOؼ[ƒ!±—@ãom*÷ÿür³ޤ½¬xê+oÈ»"x÷'˜LȇŸKÉSÇ4ªŽHš²Ù ‰€9ÏCÜŸñæwl]ÖêºÐÃ,(1¬Íuµ…Þ%•Ñ1ÊÕX¤)ÿ»fÀÿ;t¶æ`›XšgãÙ‘õ“‡Ú $­¢„.5JÖ´3üLÕεmЬ².„õöNè+'˜¬ Yì Ë`ž\ŸÓÁ—QÊ“jYn™XãYÍ#ûM‰<8™ïä_EÍ.ȱ0|«ìÏ*ÓÕ§b“D2ÆÜlãUµUawè°+¯ü»Ÿg;d3L‹t¥´ ?«ÂŸýz¹«+}0ÌQ·_†„ðüýk 3Q(ÅjxÄ"ÜPäçÓ=¶l–;—ÆL7V¾±”u7çÒôèüù#\c糤ř rnµ3ÞÐ4„çív¬bU-Q½%€,iþ`^[üLèG;ß2×RŠ>|ér# Áô<üÙEõÓôöaÊjàñ_`¦!Içð—K5ë7c[fðpwï`è¼|3ä`Á€Œ­(ü÷ëR¯™ý&üÇÐà;›-M-TÚ£Ã:o„ôtÛ=G¯Õ³ù_Œq7–ÌìíݤYf‡)›ö”ƒÙ—1¥{ãé+ç rË· ©ÿ­ˆ«8µ¶Í„u#q‚¿ýyy%¸Zf9VëIµòÛ“¿+ƒ€câæšZW«Ï_­ñÙ€ ˆý§$ÙÔK.ôô)Œ ü5KSahQÁ½r*‘µˆ½D¯6\¢Î¬Y‘ø»Xc’Äû“¥°€5¿ëÐÅWOªuC{•–UÛ™ÍQ›‡àm8Hò`JÄóânOìI³Ò“{¼ýBðmDKâóŠÀ‡²öÖÉo“ÿ)àbó47¸cgÍ2?’Ù4ˆ àQóêWp*“1–’Ç'•W3a§OêímæÎ+×ÎuÎ9½Íü1­Ÿ¢/ÿ ™}Ip2 æ¿t>\'³¥­XÁº­…;æúök——­õ¥‡ÿí@Ù˜4È%C~åþuu£wÀÒv²—_Ū žkÄöÂiˆó]=&¥KÆmë pAïgúFD}#©w—Ý¢ÉÀ;ƒ §¥A|•MõÙ(ï}2=½uª§šÕ/G¿A¼xhçµÐªºà›Íy´ÇïK¸·`åö/:²qšÊüïЙ4¶§OÞQ(}ÉšµßXO‹»[ðÇ&éÍ´‚ø|öÿÆc¾êvò…âͯ¬x÷ÎYpŰâý¤üÛ†q'Mýi±ÓÚTAp5;ŽÓjx¿ã×~æS¢›²æKïAë2ßdög ÷É’ JŠ5 ¨AººãKä­ã“Î1_6*RcY[3JCZÑ(²ïbª-jÍ|uõTUí)óu|3”ƒ;'+Ñ”1 ;ÃBÅÛP|YY›ÙSEͳF™ycO&ûÌVÜwŸ%¹‡ƒT‘£JoÇe{Ž‘ˆúÿVïøh¼DÚN´(o“£)´^ÔàøsçXÀ眜•·›™(C5̺}Sè¯%oüTOï”êì½èàËå9ç±Ã µûqî¬i!Ú]ÂGü1.uŠoœ­ är™)±¥×%éf÷‡ÚÍ—ñ†¶h¢Ž…©D1¼wdb![Äì¤Ù, \J‚à5ùdáwÁÂxeò‰ÐmNKtfíèbPq€ùÚ Ñ¬]+ Pšõ*×JÊÖíîÆìjßÍ"šZíÉÆ—/ˆÑ4>ËüL¬}EY­°+Ò¿õ>šiµ…DÖÛ¾j„q2bøøÊ4NÆ_öJ@X…±‡Û†ƒXC”u"Õׯ\Ì @Ÿüÿ­Ï  “ùxZ3Ýð³‡d:žhú÷¸Sà÷rÉ}b"‘£arÛŽãxÇw7nNJòNMoΦ‰Çâ{“¨îÑ…Q&@7tR…}ðu¾â~²÷ Qê néýýŽ“É&Z1{ˆÖ‰Ü èµÂÑ0s³)å`¼$P½d5°%;´­v¦—VŸ?¢ê~nÜ8Ë a.D‘l;e¡µÛÚÞ>–èÏØ-ŠZ™öé­¾dü|®Š©¦ †C­jó>Ø/7iÏ6:[©þÙâBþ (WG *Bì±°R<ñi“ë Üin?ÅgHp}‡Œ~ñÖk?ŠÁTtùз².NrëÇ 9÷M"MÓIÞÇåÄÀA‰†7í³øÏrhÞ®Â0ç²ܲìí8 ˆ” Ì ÕQp³MÅÜzذTP9ûÖ5øQqk›u2~–>wWÝΨ˜SôTº jtl´Ð o‘”Ÿ…îòÕ4YÚ¤ë(K'Ì hÜñq g:¥J“ã ’¦äDPP.mÙ¢TÕ‚~¯zâ¢=mtÜ>æñd'Û:²”g³—|ìIÏ<¡|º ºç# ¦óü¨xúa /s`ò¹öb ¾ÕWL׆B…q\“THÿóÂG MŸ›-  =êSyU*;­*cÌ6 ½)ÍEÔ,]¤£þ¿vúºÉ}8–x3± Ìv{í—nÿpE îÏKp¤È.`;M ë&ÔÝ8¥BØ™†D¨+%¸Œ°ÙPÎU–î.âæ¤Õ:‰­:•¯4ü6¦ï Ÿ‹E7§1ëœpò494Õñ—WU.>‰©½” ÈΘ…-÷{lñ•ÛŠÚh(£÷>ñ }AÕTQL~uQ0!’qê»zÉ5è÷äö¶B“BÖ£ŒÕU‚°5 \5°¶9AÀ-Еò5mðUð±UaÚM¿hÍã1áðG Ák…S¾®G} ”`î´«Ùó}ˆ†¯2×jÅp–ž’¤2õï½Ø4{œÍÞÔËÜÄVp¾L˜r^¹œ·› 2pci#ô°ñ¿%ù—Þ MQ³„v.&Ù…g±UzaÍ>æ&~ìT̳wsP܃a@OüL¨HM6 æb“_¾pæ/T@øó.‚‚lo¹BÕ{—ê”OÐB<¡-§d ¡C†aÀ{Ë6ÊN½Úo°¥XÁß}€¦z²®Ê.ÅÀK/>ºî—ÎR³…wªøáp#à™@x«e€ì½ÄÀ}Êj” Þ<Ç›½D¯ðÇwôð¼+Eü¿ãÓaÖ(6è‘;gËå£Ð¤ýGup»í!'}ídÏK¡bÄÎXfzg{¼š~O€ËÃ90þ™'Sm×Üî"²Í‹ú Q?rN‚#Þ3Ę|q]­Ó>—`GHïÉÇ-s ÐÆ4@üLÁî­9“X/aÎL5:%éÒözu`-é§n}vVÀ8fuÛšÚaŠ—<¹]N"þ–]=ÿuO°µÕb3ô#’k,”ê;¢‰bPMTMqcaOà }³Žÿº¶W«vs’®- ¬½ýƒ£•aD ‹ÿ\v0x8ÃáF;Þ³8èX%>eþÊƶîÏÀį(ø[[;–û-ʪIPHªÆÿ˜³„gN<_N–—Àì75óÔãÙpæÞRdx¼© 褟íhð%/p™bf‡¯|`ì¶œ¤ÑÛ¸y~gþ }3™íÉÈ“¾ewÄ)b·U…"ü/kÔ¶ä@Êe›Üiáýý”ñ-Óy Ý©QC} Ñwk)èS úmåäôB/S¨’€OOÕJ$åSšA` )MQð›Ýª¿ÛnxñmVðÓ ¼íó!:”ÌMä&<íA,RüéˆýúŽý`»…/þÔˆ,ˆ‘eˆX,sTQ ç´¤í^}iêsöAÒAC÷™ÑöiT/™ax§×ÍS—š7öô-ËA]ep\||Áv;µ d™qnyôK²æmµ¬bfïA¥ªì¶]ƒˆj ª¸ïÂòݪծɰ'cŒ¥G€Žsè1q{–D}öE{ä«Ñ~äj(~„d A!ˆ½ “¥üM2îʳ;AñÄ#P!瘉»3miB˜öΘº~wŒ¯¼&XæÛŸ3;ò" Ø©ò3mË##^2ž†­ õccAò9{Œˆ,/8~uåÎÓœ‡,W¾Ø¿C<œƒÈ§ öp8æ¡NÙ¦ØO–•K`Ö)ÖùoEP ÒË%ý‰?r2´2ú›„VƒúòÄ `8^ýv%À†\Ê^FÏbGˆ7Ÿ+ðxÊÈfö,ód'R®³á£÷WÿÁù1~Š馈 bôÝ6Љ2Ç󞬴ÂZÔ·¹úÞ¿!'ˆ*Õ +T>ƒKËw¾øÎÉ+>x<=FNÃÁÝ0îò¥Mˆk¢¢µ^EtÄ-ÔlØGlj¦…›_lYþ6»À§®ž´Uù“Y'‹Óù]é€ÂbòÈÓ_ZkÔ>蘈ýL)‡ç{e;oôî4à+Ž .Õ8>-]°ý€Z盛q:´ˆ(FqgúlÒ^ ³4©z@=3ìkiþP]ÜÜOGÅ{¥äíú³g¤ºäÇtVˆón¥‚*å!L¡PÄõ3g—Áе¹Û› þ¢ÞXHv•’î4‡LpSH]£ƒ¤‘~•r‰RrmI|ÖXÈdwÑ…»pjA lÌd€™{¾j¸ô|¹ÏåU&qãð&ºÇ^ 54‡´Õ?~£Pßí}„öíàù€åÞÿÜ¥ÙxmcCòÒIM,¼¿¤:bükê0av"'lœW™¼vmQ«ÛC†äúÛ᛽ vð{*{5_C¬ŒæÆ 'ýôŒzÐä8z³ÅéX={&è/–^¯\½-Ü{²¤:P-ÌŸâ-$µ¯é‚/¦Ñ¤¬æÿÛ:¯xèÆe]vA½µ«è(zˆgAÒx$LB1ó'¼ç£ë^îUÀG†Q¼ëaÃÈ L.FK~¦¿Šdò|ü.˜Å÷Gÿ—ú£¥G[ø÷k!ßîÑ£…ª†È¡¬tüTé Ùßê#@l•Fr; “pO„õ^ÿßLš íü£t~µ©Ùo¢YgE—ª ðBYàËXnsœ­Ÿ—æqÄšsïûg±:Ù=” 2ûívý¥X«RåDßgÖyœX*.&è>Ž,¥þºkVuš@˜C_WºcTÁy*„™²ž²F­å…)ù椉œ*}†"œà4cìK_±îX"Ȧ^ûë© õ.oá-¶mÿŸ5]´p:E9$@‰¼6¹0N#ŠÄüGQTÑÿUDäÆ>C–Ç&&càgy¨t6gõA¸+O¿ô6æqÃFü1‰‰P&¿ó[‚+ìßmE×!ññ_!–‡{4vtæcçnLz!Èu“áþÁj/ZUã8>kcážyñÌ*V€4ƒ€˜'<œ@ÄØÄ#J»G-uBqw 4-…؈‚¼h5íA-£½‰3jWŸýx$3þ¦º1 ‚í‚¥½Ï…N‘l{Wb*0*sê¡mW·Íì¢úÜ}Ër«¾§ÝoJUjݸ7·ÌIæXØ;ß_–Ó![x!På»·) œœë=Ù;–ùI)Ñù¥ïÝÓ>ÁŸ«}hU äDuìV†|Ÿ#f¼¶c5üLÜÕæ8¦zYxµ‘ãL’¶£+”‰r¥¯wE¸#0h“Éì“P%œ "˜Ñrо #Ðçç-ýSÑ¡f(8 6~RwS%Š6¬nkAkÞÀ:öKqíÓòèý©‘E’ê ìH¼™lg6º£ÿ‚ªÚSÀMÒÜùÐaÎj° AÍ!?^Ѭž ág[‘KN?N”ô°ÿ¶ö–_k¹jáÉ“c–Ô›9wš©×:qÔÛ[$åBš­éà`¸Ë_Mbi”0ÿÃpN½\‰çI§ áÊ­Ì„ùŸøø(ÏG–/G/¸ÛÞãÑ–æòC,ü®˜'Ð@}}»ÂI7p7I¾´Öœ– :ŒW AöæàN"³†ÿ)â>&Rhìr¼¨k¼rÕ¨Dr|Ùö\¿x#í&zÿr¾ÙÙ N¿N9t+©ñ…›Qæ {%1²aÑÿPg¨f›Œ8Lô™“'Ó'… :7ï§?£ˆýNKÅn&v?)iŒçÃë¦9Woq›i't›p“NàZIdήǾçJ×Ï|—§ÓïÝEKTÇ ¸%|¶fbYy¹ ”otc$m^æN°ËP”ûäy<,€Þ] ¹v%E”rv †EøNÖÜùÇÇÓR!’« ×ÓÞ$ÙcU;l†›¹‹"yØÓøÕ‹ò æ<÷iI%Ç1 äólÁ›9'Ý¢îóⲉkRàx.™~ñ?ÖĶ̯hÿª±õÕ‘Ñ~yáÿN1Gw½0Aí K–Ü-(’6óšÉL•‡µ#ƒ÷®YxÒëZx‹^u‹Ùó˜!7‘Ët¬ŠkrbÏ +;‡@‡$¯X RÎç˜AM¸Óª©föÙã •~ÓÚU1Ó:c&øÎaü†…4˜vÌ÷$OëÊJ ý È.ˆƒ¨f¡ûW÷±2KA¾ååÙÛ08Í~l½YKÈë7^ÉW:Ž,扳oïãæ¢:{›F85Ò!ãów`/µ.÷ÖÜE›q8Ø‚rÔCG)ÚÈ¢ó’1etï "êí:å÷ŤFÛ«Œ;/iŒ] <«,nÜäY¨Å-ÂÇÓIBòºóMÙ‡{QBPîÁp)­t ¹‹j˜GЉW Eô+ã‚Á C;«KR§XlÃébå.¹‘¸>á uµLç÷¨.Àº‚=áñÎç|@üM0J—Ù=’и¨P^54 S8Eü>þp*±Ï… f3¼ÊLƧ¯èUºX¸õ’Œºš}‰»×üÇSï#+'LqpÁXDcT°Ì—‘жÙg.avç:wS®fàÐĶ_X—¹`‘ÚUÈþUÀ4T`ÞÇ«Š${öŒÈG݃'}pã%”ÁÃAâjð8U“´£Â $½M\E?$ã3¾ÖÈÞ,a°i£',÷•½æÂnHMÚMyá٠ã>ŽM=Œyý¹:ù;«jòê{ZBDtèá:WÕ­ÔTpèè&y®§©*«ô ¶Aqf¼+±-þ‡lªìf¾ÅÇ„T†…ˆ]rº,Y*çúà;˜x_êÒ›èucŒ°!9L§,·Ãk¡µ9AüEìlv—Ò¢{(%Œ¹Ä >Ð&LÞ¤3²FÞ»ãß?,D}åIlOfˆÂ9•X±%°^ 2¶®)¿®2±S’ó,°¼êÙb *Ù/ãVöî÷*š»ãB÷»íÕ¹ê Ú@’°ì/¥ˆ7O³(®ôIä9Ð{‹°VsOÀÈ;¿2Ëhëz¬?ùx•:à´½Ÿ–/ „àÙïiκ ;I5‚šyÒ¸€QfR`üXȸ¢Lv-¿¯ öÆ‹ÌkVM@Cµ\³4®Ðtîh†vÿ2ñ™Cqe윘~ÏË’Ø:³[3ßUF ©(ïP"ü“¹ªûömèáN…LŽú²JrÜ¿®†²Åc-T®•­õË+òåçBßœ¼ÃßðwßÀY_20©¿ú8Yîók¨ ’F&Qb½G,f¶ü)Ÿ–¯«á(¦ÂäzZdÂÅ‚•#äü55A=àÏlë±z­a‘Kˆ]…9Ý¥¯ÒW–p4Ìd@¹¼Otvh6j<íà¯~S+NÇŵGK½‚,Ƶ†±ª>~Ó„±Ž6l6„ {àÂ6}†ì2Žô ¿¶ qá–>‡"öª´-SO4±6YÀ'mœ ­òž¼ôQÍ ‘L3”M gÓ΂ º47ØbíU „‰¯ ´Í©R$F=9£Äöö“XlÏ0üæsò'í¨D“eñkõjÓìV­|©£dÉ)mLusRQ×üJ[Ƥ9ð­)_»àJÌÏQN©ëë ^bEã³ù-œ¶¢Ím§‹œ°’Ù¤Ù)-f?#/FËqcûL¯TB[w¬"öƒšês·¢º‘r6Eäu4Pá<¸ñC¡o'òÿ Ÿé= @Fébp…^…ƒ®Ín‰æWõ‹+èCE…ªXà[§Ag(¾Ü<7óáα?®…Š–Yýbε`Œ¼‡|ªÞø®( oå3ÀÜh…ÌÇbœÐ°'9s²€ÁÕéyø÷nc’D#(¬üMTxB¶{‚;TùÿþÚ†•à‡NôŽ ]‡õò}Þ¡x!HoÅåDûD¨ûOÓ'÷Å{û¢I-ÛHPí?¾Iìȶ<©#ã±â»Òpè ¨vyÊ®"qǦî#vl”ß¼MžF~{îXü d~ ³J%Ðû7žQ¤á®HôOšëØY6²biåOo5†}ù(,˜yôXUôétœ'2êÖè㸖˜Ó?­æ RÆÆu¥xU'¿'†C—†¾ZS`Î0ˆèeyS¦EÉä(?™BÚü³OŠ(9»8ÁÓ5W{˵ϳü/U<µŸ14ktCò¦ð©ÉÖLø÷H,í)¾ áLt Iì`œa½7†îKBn 1í‰6íÞs(êi¬~&Hgªêë3£¼p’1/ß9O‰ŒuÚ–Îi€¹~Žu[Ìkî‘f›å ÌÀY)KµÉÚáÝEq‹. nÂÇ0<2¨0D*´Ëf›ö‰?ÕÔy*®¥ä.'lH!-,|€r §Ý><¡GÍv~sOc¿ƒH7tB-]”â'[]]UìP—Jl˜nk`”}•Ú d‘ü4–Ä:Ôùdèb–‘áüü°ä‚K¸š ßI‹ãGü"ò…}ÒhŽdèl«=Þže™áaòUcB'\דEGríKXë¦ùH»ZƃÓýí/x‹ †L×Ôb i|©éG;¯; C„¬}_A¡8/öI¦T,Æhgì\¸¹…á]{!óïL%æXq–5ÅNh¡£v¯2§:Ìôñ)G´¨H« ­¶Eõ§V:¤­ëÇwàK÷;f66«›¯í›\Ù`_•©m"›€aþùïŸóÉ=õÄ©<[«ƒ|wu>˜ž=SîMMjó†èM æ¼¹zÓ‹‡æ0p¤üLÈ¡6¿*šxÑ’«Áé¸TÁ„õÇÀ^€‰@#¦%d­O7Ö›€»?-ë¶n̤æôÏ.†£X„§¾öaZJi~À1¦t+Ò±>Ö¸¦•k¡–{ÁGÏf>ÑDøQaýŸÁ¨zåÙËq×b%¯>–ÈÞÊ'@‚ð5®l³“æë …>’XìI»˜{`J*‡Õ•¬{I SŒDUYqò4üË‚OîY`À¾:!àO`Ÿ_>=ð%/*ÕJG¶•žþŒ €I4Z²ìû§„Ôfø-;9åV‹¹ dk莙íKôoØÅô¯­øØ-û6÷½Žñ[‰×~±És–ÇfK-nqÄ@‘¼“$5®o¬$!¬­o^Œ¡àýFwˆ„w?}*¥ì¢¯ÈÙR”t¿r—Œ|)º¨8½wW…sÚî.™¸×éw¹=»LXݸøA<ßlܦ;?RTRI§5K ëëj܉ºÝª“Õ@²+]´’þµ\<ñå2#¼3ýW„¹d#’E:eÇn‹-Òfö2}E=†‡†üM"âúÛ"úü€ •Ä™$nbå_ÔTóT)®5ó“&fÒs!²…‡óΕ-¥ÜQ½8vi4áO~Èñ76ÛZøßøû½‘ØÉ&,ÍÝ8"ÿ)%Â9ÓØE{’\ÿ~B‘PÙÄ ÄÞ_¨îynùškJ¾ÊOÅZg!ÀnEÄÐ"hÉϱî~ªÓ)ÆbšÀ/Im{½4"HLKBú:V ì½1!kÏXLWÝ:ûýÞ9c¸›"ípžÅ˜ œ+!Xôc+Ãvµâ`þ LlgÁã ·ß3I† ró±F$„çT«eZÒfKéþPÔ“UÉü¯¸äËA,Þ¢x\:òV¿Êœ#{a­Q;µ)šê˜‘Ü$\J7°AdÇLkjò9›i 95-ý­ºÉ¤Ëá1Ol‰‘HÊ0ߨ¥T «¹(|@AÆ»úy‚_ôº¡×–W[©‹ƒê²YŽj/;%:Uµäìw_ oÒ·Ï;Uï‘Í¿¶ ‡“#— 7ÐÀS9û+24s¦È¯s31Ù)ÿ³¼Î ïôÈÖ^ƒü­niï«§cå&BgÃÂùûÎPãdiy0]_ÑJ‡R¥Z½Õ©2 €®æX½îÓ±nî,jì½±<šY„&a¿®2¼Ê‰I)zÑBë!zÔjY½îmÄÉSÓß¼†?¾Þ2sAä–×—.öp¯¥Y=m?M¦zãé¿¢GÌs5 &ÌG® @vÏþj€$æŸ^üIžúˆËŒ˜Ìò©•®gt>‚I`?ì5Ó²£Dú¬É:»uë^!V8J…y®J ‘åü ð¿^F§V™¬–¬â´D­NòÜzQ’p:þ¾óawaýËx•ïƒ÷Û°yÙÉ3ü‡^vƒú.>ï#?éÛ¤ìE…‰àL I²N‘ÞÏ ÎP€ÞÚV+!é@Xú®ÃÅ•h;g— —øy‚(8h$1ÀÿP·ÃU3 þ•Œ¦dÙh{¾+§Yz˜Ç²¦éÖG:S-Q6çðf»áG¾»å¤œŒ¦Ø¯¹N`üJ\樕Zƒ4iØa`ÛùךÁ„ÿ™!ptj#€„ÁÍMû39OÝL®§&R›”-™(±Ö qHG|·€Ý ¶lÉʧV %ÈÙÈöįGö}wîâD&F5ÑV>ŽgÏ–N$8w_”ŠÞÃ0òb7¯ÈB 4)ÒÀÓ97±ESðæ€±N/º:‰ï/Äì´kOÑ3«ÉìxÑo`§krQ0aÔùðê z?ü^Ž"”`šF1RÐE ý›|î…`&š[k‘hŸ|‘ÿïØJ0ì!Cž‚ºá*õûcdæ:U×”¤ªcv@)›¨n!üÆd¬?ÌSH$¶-ŸFñˆQ¦Õ»JŽ»ñ®ÒaÁp)¦-NÈ$e»8b&5=lQº5ÿÎq¸|0[áëšáøµùùšLšžÇmÿ $/ëgœñIെ=>ÿާ$üþœ’„yã"z>¨8]m[þE>m×sËó·>îÚËõg‰ã ßjݧQrmÀbŠšaÛý®ò%K{ЯF†tp'RäÍ÷¹QšÎ8¡ŒÆqüùsfÏ¡ÌÒ>!U!¿'äER„ìhd/Ùö)¦Ã«ìoOœ‘kFº\5WâùºÊºå.êd±Ã…+^Xm@§ëK±$áMÔ 5üJÇ5X-œÙRÇÉà‹CÅ4X6„Íÿ8²¢Ã(ÝáwKšapg œyÈÎð NcšŠ*kÁÿj¸ôð….¬3³BÖ£†*xk Ù'ZKÙ4®×Ìæ~Žr·ûbñ”¾ àæõ³ –nBo‰G¼<çß÷*X=ËôaQË ƒú™VÅZXF$„¤Åö'Z¤ÉΈäP9ÉV’¼8:,»§¶4‘C“cz nÏÍç#É5®—A$á5ŸtÉóý/l®?]ç"nbB’T#Éh›¨eÔDiÌ‹“Mß± û[+ÿ.T7–¿càÌe3}À´Æ±4*ž§} ›!cl[·1rüJÕ°öhãÑFܶëèEB‹¸Ä^AGLj+mv^*y Ô'8eçú^Rp‡/QNSÔGVñ„œ˜ïû4ò¯¨†—TÒõxêùy¡Ew‡Í–m2Zi´  ‡ÜÈäœR•)…}Jˆ·œv&ލ€É†*öVU“Ó$‹úÅ»f²<û£Ÿ´€XcÔ¥»G³þ¤ê—$–ÉØÕcìî‚._¥·I:4ä«2 ¥âPX~è4}ˆ=e«œí†wŸ'MR ¨ˆA–2Ïå‚ZÌ'WXsv2Ô!¶þ‘CŒú­Õ©¥‰;™Evî|q稞ò©ÎïÈ%ý)zå:„[‚À£‘‰(Ù¯}8ûʰÞx>®õ‡ŽÉn`Ô_–•'ЛmŸý6ØÚ0|f ¥!’¶>F– ?¯·š‰þÿºå.[7.'Üfh=²¿ö³=Ø›°16!á*ýÐ)1Äm•mlú'Œ]>V¯FdšÚ‘—Ðàž;NÉ|=‚­«ö­i—Z¨å™©ü@Ôá·'ˆÿ0¤r±p’Î>UZS Vµÿ+ýŒ½¨VŸŒ ~^ë0ë—IJͬJƒ˜Ïp[`e4”ÓR.º5|a6âS»íÚÊî¤`?ôÍÍ{üI|ž¢ã:C«<âAû¿^×j{„á-pö·ð‹Ïš¢´Ä„0«¨áO8àeËéå"¥t:(zd˜NçEò?†`—ÜKYÏ>òQ…^Á@_dKq.Š[ÙŒRÐc¥ˆØf`'KY²sÑj›¨k¶O±ê…¨ušMÆÉà ?5eôÇL¡]Úãe–пóQ3ÿjÉGĉÂ0o†w´N”ï»ÀLt–‰7muMõ'9~B× ¤jŒ'A{Zà¹k!–í3@RËÂûñÍÈp±>.=D%ø˜¡y޶ý«è~&*I ÓØþ¸Â¤ñ„ë„nV_¢ÇKw8Ǿ;üLÈœ ‡„`Mj÷ò¨î4ƬK0¤´îîX } YgÆãôé1 lmžB4¤)ù]Wˆ'ƒ‡ÂÒ·ó˜ÅDrôé’ßö¼s%Î /¬Ø W¶8:£5'ä’xF!n¬´ÛkÀ[–Þtyéät¼ÂÉ*ÄFƒF¼ ^‡²'(<ë–Oð‰ÛB —$² Q….„`@ áõýݪé\ûŒ/ùtŸ™’9¼…|™_6l6Xâ‹dñÐfFV¡h.ci &‚¬ù£A³È‘‡tÉŽñÄ“É&¼<Ï÷ÜY=ìBÐÄäW–Ö‘§Z¥û}¼‘˜d_äùç’°DÁ,—€mNÎaøoÛþ¾ïè÷TqWB`¥‰»3¼D¯G†vGj£úXT–ü.*sêxøò)ÍßÎâ¯jei;„¢¾y¿‰MU€ñˆ>>$¬¦&à2P#‰+LæENŠ^â‡N»é?¦(gh‰Qt»’Ø;C31a“Lÿ~Ín˜¸ó.Ëš.‡Ô IÌIÀª(^pB„hQÔR ©5µ;µ±//êK[*NÜ +›k®ÆUÎv0v2wí´£ó&xP2çè >–æ½¹0ðÊìKp—uð$ýƒóÙÝÎÜô9=´Á€0ËØÞ\À7©Õ¨Ü6|ÎLÛ¥ÀßÙôË“>ø,yúœfõÏžbWëÖp—†¢ D§80sã.°EmT3ßHæ©Ý_ÏOB2)‹¸ Lžd^v×üÛºWëŒýFž+ŠÌåß1PäÚn£cH(/ÑèÕûX 2ÿ] }5ðEpæv/wò3ÊöÂ÷ýsg yRîNEª]=%Ö·“®Äq¨žB·ºS`wfsÀ;;çˆÔ³ê7aÎ5j:V¼óL¿*QnÇ#7qá¥/ëȘÐ|'Ë%Íc%Z±É†¨Ô'µÖØ÷Þ*‘Z3Wbº[+AÞ“%lÙ|"¼¯°²PðÇK†¯‡õ¦ ÷ÇøØTßø)ë3£‚«?ÏÕ™3QBÏ®/UÇ)öÔ-ëè[,²Bºnlb²qu}ÅÁ8³üJ$øÐ9ªÕ¹}MŠ*ûcªúGGÅìýáí šô)B@Þ› R7šíµ"¤*ƒXŸ®5©N‹õd‚ú¥og_ õz0ÆSæŒ'ùí^ícbÂl a™®Ãì²1ð´‡t‡ÌÎÎ&PWs0e_;³tÃ.@èH<5þ’²!;’¤,©É>|Z\¦€Xñm"Ñ-´¬ŒÃ;)%´Cöû˜Åbsn#óÒQb"¤"ssªÅmúªºêåÈŠ]îU+dê®ßUkïühî?0Ëj ê¾ì¬ò¥_¡‹,Â}3X㈣q"û­;?¨ò¼Ò¹.«püJ2jÔÁÔè"wƒlö4´eðýŒ1Ña‰ßÍ(¡BÆXR¡xìøë2^µ b¬‰¬ YêÇ{Úž£S¢¦Ví‹$!>ç3¹7Í8Ð /gbŠî”úÍKRÆ ÷ªc#F+.tIIÓv\"`bµ©ÞÆ05¢ÃͬW愸ǂQîgåQÚ¥|eü/Ì…]Öåò–û6‡BiΔÝSv÷„Ftþ¯½ˆ¦×ªaŽ[¶ëÒˆŸ¡aém÷ÚÀ%1µÕ›®l ~m×× Ýͤàîgë~õ#йŠa§9ºMüJ?ú„z¸È馿ÿ(ŠXÆgŒÕÿÅø%Ê‚¥Š|<]LtÄå²xšT®ËBÊ ®`‡'%•®¡¶æ'¾rÈüµ§°f5Úc ;¸vw§õú¡Õê°Ƭµª˜›HÓ¹R†ì9÷Ô µ-–çº3ð"¹¢ß‰Áô ÿ Æ„½5v‡Å”ù1«:!ï`ÈÂp­¼½`BJôqpi5 np8= ó‹l·(œ'‡K%²ÿÆz<¡Ð¢ÚÚ"ó)Þo´œÊQŽIòKL×£~á.«ÍwFs›ÓÐ\%Ä«ÐF~ï×›ôñü|¸fUí+Ø=Ôxb‡ñHM0£%ü¼'Ø5À iZ2¢dÞü!tٜĕa½êp]³m[6{Wµzð&6oǽ˜i;{eÞÎñùY¤ö ê°ÖöÙ$“-޶Mìy—ór / xzG®MžíygM2, fKrÛ™ŠŒ‰ï¦e ~®U/”^ÃÆ¬R‘VP˜2e>ÎCŽSrsÈv1¨²µó‡æJ½ øÕebÇ“±ðwµµSÙS!¢ítßë<¬ÊõÄà°n-¢¤™þ¤ ¹OöLáÖŸ1X•ŽX-ʽ´×ýš3S ÐÊýÇÞV·Tdê@Ì壯ðç€ÃÌ€ŽMšvÈ'idn ó ¼lfü6ƒ P1d‡Cl‰+·Pw©³QÜHú‚-›V†Ð î8¿¨Û%&Ìp—v-o`õs,BvµMÿärܸ\ cü|_VW³¶H»ËçXÍ‘ŽŒÄ-&#eC›5Ù¸ý›³|PC©.¥ñ,UHêp†€·*7Y€’Ø!ï`«ý{0ð_á.¡e¢'d‘•†}Yr¥ëÌ¢{¡Ïðñ•[äl–ÜdƒÒ@ÕTé \ƒ¢Ûb‹³:‡Ì#õ$ïÄîÝu”7?ÅG8œ¤ó¤+1A¬¡­°Œþ$j‹üWç{ÿ©£|ÍžçËÄ0V/H !t(8û~ ÔîÌÈ(9Æá|ö2'b#*y†š ;n"o1ñzÝ¥EÓ?(î’nyL¦TÌP×ç$K¶ÊFi¶Ï+]ØÂfËniÚnƒk„‚}ù¹_¹£ÞÜ®ÁÄPZ;¶U°ö¢â {ÝØÝmEf}ÿ©?°a¸ð9þO®ñ-Åä¬ÈeŸÊ1&”X)ßä޾ß©®Æ|ÉÝ)ðÉvN#³×¥S™€ÐfZ-0³e˜Ù©÷ö}¢v‚b•{<ʼná½4°É¹ˆüLë«Óšˆö?䨿?Þ.î‡cG—ˆ®ÓËät9ËX¾Ý¸UW×½˜pév|¨ž6OÊ®‚áj(!râÔTøÞnä¿[4oÙoP—¶ì%Iô"okk¯ãyTöÈ›C›±q«¨ÈS_ÇÉˑ͙„væD4vPDz»à" ?ªFNÙ·k«~Ž`N04š¯vªÜ7 ëâÒádïªmlk?†I´!ÃeÛE˜¼ˆviò(Z@˜³:ý4Ç.÷u1ÛY{m&ùœË?Õ¹{—‡Àt/ IüMXC‚ÿ;„µb8ù3°|$/µjPÈÞñÀ¶ ¾v/îåsá†k$_‘¹X«åTÓ².G[Ƶ ôV ݇|>ø&)ÇËšßèûdõwó#uE„£é çß7,‹6ÇŽH.8sÏܽ @2sþ¿“ŠnÎÖ6¤£ÑÅCe§ŒqCN¨1Øn,ä¥YdLbÿö× ò–Æ‘º ñK–g ðsŽ8P‘mÐÉ»Ð%§¹¦ñ&wkÿÜï±m®|`BíÅèQÁìl é($}¦3ó”]µ2$ZôÛFatÞ!ºâmY†¶<ž¼ ž‹Cv€®³3-ÎW Šü®’I3Ïj€BëëLl’;Q½± }â LüIí¹=ÛXðšøc"|o2±Ù°ÊOÇQ'¦€ö‚;\)`ý5´>ìv¸tSéÖûƒd*·äï)Øló¯b#xo<íç-jåÃt m@—²zp~–Ú©ü1uáìí1ÓC)ˆî•¥Z/Š×Œ‹dŠö8ñá+÷íqñ½Í€öFEÏ>µºœyhù1Ð܇–I[É_tz“rò÷£Êg5dIRÛñ:c6ͬ™ 2‹Ò—Ì$«ðšP î^ШQ h\Ò@Öh ]µ»?f†F™S‰yüLùmâvú5Â4ÙÖ‰|ìʬâ}Å–j†³ŒÚº*)›ú·RÞ)‘ªy™ùðfã*‘·RÜÙ„²tG¶‰¬щ¹cµŸ+6Í»šŽ$4à±ðYN² & Õó}®º¾¶ÀŽÍ™ŠrŠ­÷ìfc6&y¿»ðbjAø(Q®G4£§sX«QÉ OàΖP+3Y*ìÄù ÉgDð[îÌz/–ù*qEvj =—žXÁƒÈ1ú.­šÑG/<öMœ@­“²ãâoÙ îü/RÜJ0…0v-asìƒ0ç&€Ó¡,T»hÉ!Ïi¦úã7Àj¡yãÓ¶¿UÓWŠD/šÊŽ„uŒ„ºÀZ#m›k¬S–´H±š†*õ”¬©swˆâªÀ²ÑiÇÌ+¿-‡cn˜bQr›âåEŽçIH“úµÑmÇt.n*f*°ÏˆêÔÞ‰OÁÐI†³8’±âÎ3scIX‰U¡‹†3)…mj‹’„Dÿ{ƒ‰8ùsV$±¤»¿;Þ…õ¬‚Ò¯ŽN¼v&­¢®NÔ£T">ùÓkGa=üJƒ,O/>ÖÎC.èÚ׳‰a™"Kã4º¿ûR&S/ùçxnžE/W-6©u¨1Ü=xÞþ=©‘G}50›ø&/‹û!*OÔÜžwܦ›‘ñªØ9•(žì¨Óa˜L_&,ÀB+Êç°|Ynb‹¨¹™M–nÀX2—öÅ_mÝÉ bèž¼×EÇD±Ý¥Y韄.$eÜNG«OÔ@<ŽBn+÷jpŠQwämÕj5&ó$Ų”y3ÐÛp^h6ÙlmÇ£B#¨t‰*Œ|#þ±m)2~S4üJU1.(WÉ`ó ‚ò·ûb}Í8C$|°^›·Þ®ËóÝ*»jŸðât0sdþIÆ}>y ê)¼yêØ!¨LÚ3?ËEÄðøxš/õÞD³h¹­9P!¬Sx¥EW\:0~=¯ÃÑz¸5—†mÁïÚW*cJï%ݱ#OÈ"øëãË$Š>J_º‚ä¥íN$ƒB÷S„ôè„ö°ûf¡†=fð¥¬Ä³J|5 ¶À™`etM¼–i¼€£1:{[ †²ÏöÞÝnñ1 =ê3§_süÛq ¹]Ýw%©8 î ™ú›É˜Š©\m[ßÊ5x$ÒOé+—hÇgŸbÅLå 9¬xËÄølXÖ¹nÔú–û!ÉIdK‹zѨG]±‚×^>‡Ìu*¢…‰¨ŽQCµ_-ŠtTÃj´±ÅñppœË æ„Ãìèü;_ ¾î£²ìóé]=$I˜Ê_Ò ¦¿ô¯æH¬ìÏÕn3 yÿ´fjQÉC-UFÕ x*OTL”ïÅQò¨E½/ÆýÒüV®Sÿ ]\ß\pî&|iž×ç^ßtäˆ\íЂ³üÛƒô^ÅþqáîwUKÐÆ„½)JãáwEB—`ýVµ yV^%{k y´‰œÿ¢Ä#™Ö Å‘Gý•NàÛ,¦ˆúÊÕ7«a[ŒN45ƒž–¦%âÂ8ã*uò‰¯Š£d¨ÙA€¢Ad-Ì+þpg;æ³ruˆû*/`‘óÂ&Röõ-ká…Ž<ˆóÒ€¨"œâgW–²þº€žFa%.Ž!“çm™Oo}Eˆ*`k„O{´l(KDWmx‹ì7{ù[ÛY¨ŒÕç*ǤC;Ì'Ÿ[®ŠT–K°K1ù\Jµü}\¤èÝ9Ït¶5gø@Êm¼ºþ Ü“¹)ou[éÅDðÛÔ@Iµ½:(Ó+õÓ'»H˜>̯ãd›æðœ#EóÕ¥1)³q)ÍO> k()šU„½ë-/&'`50XkÏÚ.÷à’´û.@a£Ô œ…Ž VF–cýÜ…£5{á¼€"1—qí'}F!Çøúaf7=ÕThÞ Vœžv›Ì¬mÙÖD£$Ný>¦~~]û×é˜j‚%@äÎ’‘¶:B ÇÊ3{UýLÃrw vï›/’õ9ûÊ· ÐÊ"1ãÇ”Vu^’å]6<Ó‚ûóZ=*‹PšªFÀY•³rë«ñoF’Î ü¿5ÀzóHI§ ÏjÁA™zwTIè4æýÛaB¿ëå¿%ŠwX·D7óEÐr]üô´ÀŽŽ ãA˜ò^«ƒ8]phGMÉ“ŒÕúúµ¨%xb¯ ‡QZúnÆ/ÉLù_ ê˜)nlw=&‡Ú §;†-hdZŽá%Eª`6ª|ÃäÓ:)½i«ýÄœ#ÇPpü†/Z…v…Ó¿ÕÉÞÍÊ ‚O£¡yç)Ó\‘¼?à}G=˜hÝ/Rœ›üSÒetÌp»àÝ’áC¹\×Ó5QVV¨\³Î¤³qÍnx0ôÂ:"˜*òøÚcTÛt¨û ÄÁÕªé¦S²„ËÙ•úon,ŧªQ”Ói7ˆ~°HŸXNb*®^6ôy2©Xé!q40õÙnŠ–&¢,æH› å ÷HÁ¼§¿Í½nc7·‘[0’;mÚ_-& |lÿšŠÁ’æ‚\üÅÊîËÓU ü¥…¸ÀülÕ…Å!m^Î`R+&ó…5ÐT½I&pn*mVxj„¾/½•v >K¯sîíYÝQÕ–˜^ÅÃSF4ÐGTÆ/¯±ƒ)“jð©tž°u;³Üúæ°f æ,RvøêËv|_#-hXU[îÚ?®Éû{Ä¡Íÿ£ZÓÞ’ b‹¯P`HIÑ*d]gçùáÔh–÷p-¦ +p¹…¤êdXV3¶ÉœÿõõÐìø!±wëû;™8Œ'CÖp~·´­ø* µ`"+Ê ÌÚ›–Ž\-üL±R°¥}üæÔa™Sçþ<Þ\¿OÚ™ÛÇÅpË`6ëzE±ýÙ§›E7Ä_Á¡Lº#õ™§ œJ‹«V[\¹a*3œ9úûXNþpó——ÁÐNÎ^ ‘C´_qäVÜb"q'3‰^wèW Q…¿eŒ?ßý¯žD˜ A‘› [tXTk…Ê“£¢Ó+¤»Yn4¹d™I¸GJ)™,ºÉòKšSW†K]úÀp†;Å^,š!³M¥ðm~ÚŒ\C2S±uöô¾„ƒ±êüI`lyûÖ€Û¤Œ½Ñ‡»kãúRA»¹”š-®ÜÄ Š))•ŸšaPšpßý.Í”tS›Ô`y6±òC'¼×®w°W«Ðã#>/.´·³"«fR¤ÀÑŽ W^W±ÜÝÁ–åÿå£Òª—K—½ú<øÃG->©ŒÀ ^¦ë|b"ã5ý'k|O®b? - á0Ng› r»çfÏ…Kÿ ÚÓú'`:gVÐd‹ðíjx¨QUùùò6¶+iê¯;ŒwM2aMÍ_0xüJ­»üMF'h–.н. ÓËôV> O¸€¿/ø:`G¨ÛÝAÎWvò¹òìú¤ŸÒò>Œâ±eå݆ŸÎýHÃч$‰ÓJÙƒ¢MÏI…G vÅÚMŠ/ZÁM‡w ÓHΕ‘ÚNºLªK—ÄCéëª?V¦^C° ×¶@D—ýÇ*—™ð#ŽvKKkšé£yßmЍi&0Þ½:¡…L<ÞÞŸç•êìÚJvÕUR y:`eÜÕͲ÷·¤x_B2ÅÖ÷œ1Õ‚ Øš5Dð°V‡{R!+‹Ò ŸŠÐüMD¦$(˜ûÞq] IÒŽ‰­Èà‹‡ØÁ?J è9©‡+ë¨iFnRgB3½æú#·"Å4é¿«b뜒PEo20cdrŸ²Mˆ¢Ç§ýάÇÐ:ÓZ‡‡~€‘ðBÆÍQ y×Z{–n6ˆ5£r°jÏ)ó»ÀU„H;4ám?Úàg)Ñ}§¦H¾ÕÛÕÄcj Źººöã'j¯]ª”±Îi¥’بí™A¾¢l8AÖ÷laRðÿÞÄ\Á_*GbBw±5N9¢‹ÅŠ }<FZ©³ÖŽH8ñÛsZfóßzAüM{0¡ýâ°¿ZxÉtÏRh._®$ÜYvtðÜõê4§QèaÝò {[pÀ¶¶ ¤‰/6’€$wú¬¿hlt§!ä_’çËù Ÿ:…*AŸ"\^•—»ñi¦tÍ)ySUÏl¤i@œ)äÇóX4¨¹NÂóÀho Du½…c¼9Spt牧§4@3õb¦SÈödtr„T Ç{´ûº¥YOàÈV‹u=@î'š/Ù~«ÝîAùˆwüÆì;Q‘çTyÀÀŸÇ‘ËON«}’ÃÛ&ê\‚Û—’»Uü‡c§³›˜ôOVæe4ꉿb£&t/æ„U7bFy¸^‡šÂŽÄò|Ìb©|›!IGúrëÀù‹D·ÌúÛAì3ì 11æ Y¤äó‰u¼7žr+• ¥‘XŸj9ák;bÀÏVúS-Vĵ\ +bby¼o…üPBÁþ²Ze‡îôŒ‘‹?NÒÌPÌÝé›>´ì¥ ºÊCÙâÿÁI001ƒÐ/ºCŽ“Ä ðZML è¶üÐCèá›ì„Ð>t\fYNðŠóH€r/.Øê›W“wì¼iY80üM)hýðaa¬Ÿ-Ô¤f…„£ÉbykýôØó‹~*(qþÈö¶¢¥ä°P†ôR#Ë#ðèáý!©’Îfö¢äxÁ«ñ%B˜á7%ÞöOÓbUØTú˜Mêÿ¸~m¹OÂ;a ˜PÃ:ôÇø¥i€ Ž»Ãxš8PÕîq¿§õÙ[&Bd’7¹¬ÿÆš½¢¼S6TÒúEî½·¡P ÄJÝñªD)’P§ 6ÁyÄé·¹ª`ª0öÁø]uú#oømºVÊR#×ó4~k«¾,9¥®qiþu©6hÖRN“ 9$°ìÓW›ý³ˆ2³gü±°5‡W62ØV‡wÖ™üÂ(³ û=qGp'#’éó%OM0vcPœ])Žf|ßuѶP˜RõD¥ŸÐ¦ì3_u¥[Õù¨ãÎêm4›!-M5¥b§åË• !‰ëïmÉšúàu{w:°ö£|#qÛ̯…µ>äM+)KOGæéä*ýþöú0L(°ºÊ7 ;Ý €C¾U…ì 5zï`GTÂ^-va?—17cv²™âÞ€–vÀsñpmG÷1Ito9æòX"«B 7}Å1ñ|@zâ`¼\ÆúJfî@`K«9ô¢™ýÐÌT÷ ¹…76`–xø‚ÎGÂå=Z̉·“ÃQ‚ ²óòOk‰¹ Œ#aääsPƒü|®èõ‘ù|DZÓ°$gvOŸ}ívƒ_×õak³–sÆc‘Îo—ãbÛ&,‡ÇÕ.üªúÖÙâÝtn²"«mmÔÞd;|ŸõK;¸ô[¶8žO,†Lh -Ɔ“ÝßE’çÖ{ü’û!ƒ2ñõ^ŠÉ§&£ÓHGONGmƒÂia&‘ÙäFÕû`´óx&SªÄH¬9=SE¥Ä|P“ôYYFr|I·°¼™ï@]+©C¥(È ½S õÚÆáèjæ6ÚÐá×ëΌ؜ùuÙ±„Ú¹âKuiýÅùÒƒnèL/”ÕC_® ’0Ò±Þô°ŒÀTíáÙU˜6›)}Ѓ*odRç✄>}¾kôüJŸèÅŠö9áVÖðŠŠŽ­] \äR?¥dèCn4~¯¤½dÉíO´Ãe.¢»ñ5¶¬Aœê¤CÊ4æiiãá7_@}°fnïZ:èþ¼œfÁÀÞÕök…H’öDET#K:¶p}0lÈêÓÄs·hø•& üÜPNæî#J–ÚàTw|­£ÚŸï³êŠÄïB¸àBj¦6}µÙîIð¦bè¢ÑPÀZAåœ%–Bã0‚¡Ý§ü£¼¨núªâÔä«©ZÖÞµ·ï¢¾ ŸzÇ cO„³ñdüÛ»ø b¸;­ ?7üįŒiþuÌùÛ:ä ì“s­Äßån=š 'V:€ãÎ}#\sÑþÜÀ«_l¬®cŽÙ…¾(1ÖªñêÒ òJ‹ÁP0–Û4×íJ»Æyú*^^C@dÁCêÃY‹  Y«#Ö¯Jðž0×ïLjäﲦé¨&ˆ:9{âöÛu i-vu㽊øÏ¯ä“ [1gÇ']f+Ór²’‚¾ø3[êŽýtÃ$—eHËmnÆQ °|ŽÏdÚ @1|.UÅÄÄÇ"äs’ -‹Æ…~|âEüÛ¹WÊÑ8£ÈR)ñ|,«gÿO›«Tiç<·?#cð_TïX„ ÷º´”.SõÂÉú:"¾Í¶ˆÚw%Ot¯[ ýÅXñÙfÑÒï‹$´a»#ðlU‡ÉÑM( ¾Ör!}œq¬.±Š½ˆHëH%Ê™XÄŽ…SÞä&:uâ4gÆo[›#L§và/MŒêJjp;Æ…¦A¬dCCÍÓÊB0û’HµÎ׿»E¯Û£ºüCïo|áÒ[ñÉɦª¨//°3œz<úí3(а¸îâ°ºû9(kÂì£é?ÿl™Xy`H&©'{Þd.zjGüÛÁNK Ë ,¶¶æh‘ÕBm´†+)y4×!†(*-ÉÜléu:æyá;‰ª›³(¸ø3&°ã©Fà/(ŽoV¬~ ¥Œ~^KÁ¤õú'× C_Ðî¶Š$žwiõCf74û<6¨M&ï€ýh=ÚãF<¹Ö8˜üfq=¾éêÌ|ôzéàÉQ ÜIŠ"Iî4pBܦ&7º§¹€ÊÉd{ŒeÑY—B8öÀ»ÒQ°$7Í‘ Õ]§—ŒÌfÎÄ‚n§2@L^V ¯ôŸHî¦Ëäi†ºÅ]°½=„DqeÊ%îªIüÛ{ãò~;Ú@T£­M :”$$m¯âØG9;íjàjÌõ®ÔGУÓè²x#¶¦#ÆîÅ]zd5lM©4WÒ ”x•ïÃŒV-Æ7ùvVÎ)¾ý)ð¬òj‹!·ñb¾¢‰Ac6´P¿G6Ážg ÝýÚ $ʬû=‰Låjá'z ´ºhøƒ-É¥ÍÞ„vìþu -ÐŒí¹¢ªÃÈ×Խņ{r^òõ¥ 'ÖÅtqšü‰½SÖ6©ÒX;gýÀênÉ¥-tÙm?SŸüŸ£/±ò[ªKüÛÀíÃd”î4¡jò0”ÓÈô¦®~s„»~|’Gi°‰–v)ÔAhä÷ÏØ!œJâbœ¿¸µ@F{ôk3\| Ñ$Î:¨ÜA"¨Ø÷“§«›³Zƒ*ô ¢£ú7ܼ°S5ÇVywCò×|õx½Ï_·gíC´+ðøëš{é„Á3&!£ê±muÖµXġר£Vk5¼¥|;‹¸§·Ó'ÈŒ=ãáø"nÅD¬d>™È{ÁùS¤Ã/Ópžd"ílh²×­1i T-h,p³;2àö - 0,]2Nü|­z`“c/ÐóÊÆÃ3°Â¸ë惷޲`X_׈²,ÑÝQZ†æúÖ¿Óa€hÍÜ/Íêz‡àû^ú$µ/tJ|KëÃ…#xÐ…Õ¡è_‰˜·1ûþv*©µº{:íž'‡ ôãÍ·öúÝù [lÉIšÔ#EÈ’ª(ᯤ@û6¦`ôf ÖG1yÚlÊë\ؽ|Ïœ†êË'Ö„~PW”?qÈivªãŒQ}ùT*9x¬gç·ƒc§Þ$“0IO ²*q‚c<4~aâÂ…DÁTFóØ Rz‚jBv€âö˺5(å1†oûÚHÉXõÊFÀV(y”a¡½È8SQ¯³X_„$`ºTek÷¨û¶5`9hql.éÄ)ÍïýÜcž2këwÞI]ÄfËÂ1+ž8y›£€•žf6N@LÉ‚ÝÄ"5±JeB™ÇFo à¾WN5õ0`'4ß`ÝÈïú16üM0^3 ö2aqç¥{¸ÈD.Þ–öEÒQî†ñš:%,ÓåÔŸ¹ìîêÊž¬ý™!züÀ9¨›u·=ãûA±à?a^¼˜ªÿ._á­ðîMÖÑÑU{ ¾Œ±÷Š/6KH±l"š'ˆøÒI¨'½‰CEQd;øÁšw”µwž[²jD‘¡’A[ªÂE¯)w±ª1ûÞíŸit¯”d˜âêjkÜÙÿ2=^1¯œ—µoÒ»’"Ðÿ¸`©7«˜±3Ú°’*™Òó$Ö19&6˜¦I'DàE°xöÁ1¬ôààüÛ·Lèó¼¨NñKC#j­t§wßÁ9-q_62´Ÿ­# E`•üA߬k]­¦eÁ‡šNŸø<Á€‘^ØÍ(º“±êeâþ%ؤM®sÏÌö&¨Ç„ÅÖc°Ñ^DF]ù¢Ñݹ "Õ.Lý¨_?¶…?\¢ æ¶.ê3`¾Q¬‹g\"á,³Š!`’E“ªÚ"-Æ\Ùã/*(ë? ¦Ê‘ÆâL\¼.<'º÷Ã_êx;晤'õ’Û9Ú¥æ¨4zÞmW5csÂý*Gêaî ŽÌÈbJüÛºå;bâVÔ;ì›Oá®6ľíש|Ûù°KÙ¦þ½êe„&)¿©¡d¿¯Êž áñ›£fÆÝBº1†Åˆ S ˜Ü…˜TÑÑÊÂŒ[s1×Ñé ¼{ÇéêÃ4æô®˜s4Ùô¨¶†^OyeÂMFæº(ck'¿™Zðæ,*®ˆlÊJ`]¿Kz@'»%*õÓìt`ž…íïNø¹Û~\º.5½•î›Ò˜WQ(‹Ô3GÑ‹â°}‡hH®_½Prˆ.Þ²®&Ûå3a¹Áöïo{Õ;Á¼OKl%W[}ÃK3ï1HÝÿXô"JüJœAÕpܬÇW.Ìâc$“Nö‘7eÿ‘TåõqŽX;Õ êÐDZ µº1Éò~–UŒIº¢ÁÃ÷µ#«»eûLsvX‚p(´‚$‡ªéO=TT ÑL#Å51ªûØé¢º”ªç³AôÕ©Äh½ÍØ+(2<¸'ß5l½(ßÚëñæÓ¯ôÑ–¡]@;yG›þIbÕ@œ°ø$r˜˜žªDS³¼â `hw-ôŠ,P:âû«ŸYì¦qÀ! ÜKo¨îHà„†+ÛôuÞ(Ö²¢­b’ÒyK5†.~+8(ÀÂNoë>Ÿ;óWxü‹-ËŽèždÉ?qHÖ0'·üIÕ¢ï_6ív-Í0QUÄ‹}‰}Œ&b%u"ÕˆyR§'7³ås…&Ëkì(”Vm+rÉõeèÍžƒC"EéêìÕÔ±¤²¶­²¹!A$!þ¶A9Éßž†³èÐây¯\?E‡¹Ì‰¼ª¡.õ±zGBl":KÄ⠦΢8÷²<ðÒØª¶}§ŠÀ諱þó‹²`A1$¤E¤£MF4³öå*s&.[þhÞ”Œ¶ åCR6 3ÌÐhÆ/~>’X·ÆRÀ*jd¢^á,vý5J”Á7û,ɼ8çTPõÃŒ¿üÛŸ:øA û¤æ¼^‡pyiyü&¶‰ðþz–‰(€m‰=(ȱ~ÚšÌ̯ÇùO} ï5Ê”KúóVkèq’2%²Ì cÕj*ZÂÄ1ä½¾Ëfi°l¾± õU³% gùg€î#¹I0o33*é=€ÌÄUÈ&§xDLÕs„@“D[›6ʸÊV¥ÂU£Þh†t¿ ðÅ·%v'FþŠÜQ>žIBŠEÎMºfëíQIl n3ß^çê…Rpá*•x|ÇT_À•:iN]¹"qe5CNh³ì=Âó¹oácOggS€2¨ä«² :ÿ’ÿmæäõüûÿÁÞÙÖèèóÿ”âÜÜååíÿFÕßðíòõÿÃâÞÚ×áßÿFÒÓ×ÓÔÕÿ3ÒÑáéåâáüDZ¨“¨x«À³ÎÙ¤Zw戨.µ–MÙÑ—®x3˜+‘ÌE\ÐmÖ“êG²8Ž=ÿlAf‡ ©rsä¤ÁwråTòƒ¡'‡¼ÄŽºårš0|aÓЈ-ÍG>«—bš£të[ÁU.¨ —ÆjS%nRÂíoey±‹Vf…«ž®å”¶–#¸;ŸÀC¾x{£ Æyk8–Î1AT%mÕÈ™4%_dgx§Ó¸^—ÃP]L.–4d§C³AéßÃ>Ó¾1f΋Ö+á3*,ãÜ~úáô=·¨ègêN·Ë„¨nÓ€JëåÈÇ2êË·£Ÿ±ø€FPÚ?®ÈŽsd ÿùYÜ#Þ®‹ÎNO´$ÿØá5±s¥Ö@݇ÍY;ÒT D+ô*XÉs–Î’ëÖÎKsþ6àSî´îýp{Ô¸Y{<£¶Á^ÓNZh Ñö6îûò$þ:g|ÂÚÏL¿å+‹‘&Š#ëNKi®·®z£×B(r•rÔOÛ¼9,¨¹EEat]£‡Û+üŠb[›ç*ýû&Ž*:Ó·w\6¯ù’•×îþ힤®Ñ{´R¢Ú¼‰tÚÕ ±ÿAë«ÔêÏš©K©ÿ,Å·ªtŽuÁÁÓY¶†¦`ÏáÔ}6Ûâ‡c…¬ ±M´L#ž‰N!Yž!{×OQx½ òmIcRt £?vDàÅÃ~y°„É*Ž|kôZð Îu'"Œßw%Rÿ†ŒÅ„tØPî í¨¼êåš+yáÅÈaš!-¸uͺ¼<SŠÿExCÎ-BCmü•`v¬×¤aÁrB_óž<¦*åyY·ˆsŠBA³«Ñ±ï¯RaÙí¯ñt› A‘T|”SÛåé^’©Âm¬¤ ØééH´j^ŠŒ?‹£Q¨ZcÁÛÄ;£µÔë½uî’ûv‚0°°½¿Ó*J1½ÇEf½é㸤 6Úžz•d‘ ¿Ö¥ùˆ0ÓÜ¡Ò»Ûøæ_2‹qîÄõ@ uÀüƒ+¶Èª]ØSgu‰–ý &²G²Ú]vQË[ í9“#¶X±ö<‹ìº™­àEdÂ/CU\¦Ð5ÞÆýl>ýÌàúåa$´2L’Û-L{Ñ£}å6b¦Ë^?{D3©4GO%£0„Àa¬[<8…Öd{…Æ Ž‚q’ù«J«|m•œmU$U~òuˆÐRGÎJ¼{2Leá­¿çà ã×*,ÏKÒó<{Š;™CÉú䨯´Ù Š/0ê=9™æÜ–yF10]š‰ìþ¡AÉÐCm"_8üLÈÒ°øZ–´6——øéYëÍárŠ?¤k™çpé· àL³RlÈš¤Œ[´7àܱljXlÖ#½¨?knž×ñ÷R%Áž‰­ÿ*ñ–©µã¶ÖÕ"óø5Ì÷d“`™&S.¼J Óâ?h}ë}TѤ9ä*e?è§¾zÔz$‘+V,!Èêµ&Áûs™½Ó×¢…3Uþ‚ÅŠ¡Œ²9£–"Ø:…íœô>ª(kŽG§,?½%0Þ¶éVÃäUSæÝŸ™CŸG#™{¹Ñv’x.ˆdK©`hõêœhÏB®ü #Ǽ: q§]…zBà±Qß7³M"_w¯[c<ÙwZ¸'^på ɯY¾zåsògÑ(®ŒÖç9­°yO¦± S­Z3t\W]¹+ ;k.ä?Hï•]´qz±Ëƒœ2G¶ä^ŠºÐû @ˆ×m•áÔÕŸÿÒîÁãFÏçºqqËZO¼#‘ ¸usRƒmýt*—ɣߞªÅ®‡ÃàËúÂÈZ~Ì sVÛ®§o ¥W[y¦¹ÓœÖå»Ùu©Z_ÀÜJj4‹önA¾ª¸ —h×ð ­i¥ú;0hÏ >^qº, Ú¬@fÅ5¼$,-{%%uó`â­\QY}´ý_É!3Rõ8rãþbLÃ'‚T+¢×îHä7–ß¹]ï¤[Uå¯óVm!¨•WÞ.ៈøÝS|Ê{¯g¯õò¢\ÖáÏ#ôëõÒ½8¡fä©“·îfa"o溕d=?X=:òào²µ¼Çk[äVɱ¨· ¤;ü††Yß9TDa¾¬¦Yò· œÜÑRPݬTFóåïpñ¦¼:¬È´¡¼Ñü¯Å3롾]N|èë÷Í̧Ûþ”–•¼aÞJ£Í¼^K]„¿œP‘Rï®t6®ƒê¥øUà‚ûs»joضŸS Zžïœ„µÕ¿"ê ›Bˆms¦ÄËŽP=צ‘[[|@±jµóÀ FæÎÛW=«ãtÉq•í)ªÜ—@{Tñ´Ã^s¸_T‡lµ­6êö?Ui¡Á…É„o›RͱÑÚc· ÓYœ[ Žªµâ:zyÛØ'åÙ+ *Y-pä§™¹J‡vvFy©k+°‚.“û‹@š÷p‡'® /8ê.gsò÷@OÐâŒFì@@ÂA¦ɼÈÖ~Ã=HV Ä¡/‹4m‹é ~kiÝ%zkDÝGÃÆÕô)ò›Ž&WÀu ™à#†Ü»‹›>ÄÃwÅlaʦ6~=ù´ ú݆9žd éÃM8Ú&a”@VmaEPõLpI¼sV˜´çàÑø˜Í‹ëpjtäÊff’@È¡ðåOý"Ú{X‘CûÒÁüM'k1¨‘kÖº•Ò»%è:;QÜE®†Ê{¥[7"thùÆ9û¶ØÜ4Hé´Ü[`ŠlpDßÖÜB ûÃC$iI`A!l’91˜Lii:lx?éµäðjòd‰,u¤¡¯I:NJ.ízßëcÈC©t4}+ñ†Ã‹ëŸøÔ›wùJT!jgR›pâ_ÁñÚ¬±‹oÁŒÔˆp™òƒÒGÝéúq‡š<˜6 Ò¬wƒBn2¿Êç›Ïã—¹bç4_W™û,˜ÊÂø`U´ Âû6Ͳ#—¬üM$½÷ª„oJÜÙ´‰ñ¦©31ÜÎ0œNV?°#±ÐÞÖ©÷Ù bâáª96¾WàìÓ´Ó3sîH³›Ìâ®Íþ}v@Í“éÀPZ*ÄAJ$è.<Æ,8°“|ØÇŠŸdí}ÛÏ'=w¸±»»ÅÅ|~ÿ/gkç_Ë7Üìû:‚/”½v°ø-¬pµݘ^‚T¯á²*ºèöeNO¡£›6´®)6’°×h©f{‰\:•x¿B1üÊðâ•·‹­ä"véw™wWÚüM"®Á=_ªÜ‘”c¿•'¸(i]Î4° —ë’Uöï‚äT9$:»`a‚’f“ ° äš=]Y£v†`ObÊÔùNDûÞæ˜Iïê½vÑ[ÊÖÃY¬H‚JN¥Ót³—û,jæúà«1ú‘t§-\þ¼Œî/É^6I¼?0‘[™Ñ ›TLÌÙ,жÏÐ :[øBhU¢ÆGú 2[#t0q”pš_b‰®¤bEâJM2 ³!{s¾q{g? •Ow‡­.ðæ %¼åŽ$àaæüL®ëo‚ü*° 2C8&äì^ƒŸˆá\‚“dj®[µü’cQ׃6 ‘Ðæ”;wÄVŸ÷Ι’‰ [,$%ºÙ¹oH¦Õ‚üÓï‚4ŠÑƒ?Û”Yž:WÛ Ø®¤sò€Éˆ6K†c•,.[k²Mñ¤äÒ¿ÇÒ¨øAý./¦¿ì+åNûU¹W±­MRúÿB‘„¥Ñp>Z êïã_V™IRVpÙî÷ñÚOv L • -{°™¶‘‘9x¬irqÊÔÇuÓ²Äk!À¯Œ=÷ͤøæ †R4¤PfïüL²u_-ӽ߄ååÑó½ÍÝn-)î,¡é[.6‘Ýe£e0PþÛó@®†ŽÖ…1 ä‰¬¥êüí÷A¸°š»Y³bJŒâ{ꀪDM×Vêz\óÔP¦¥ë3ô J“§¤°zÒH~ðáÀo8Œ8<„%zN°Ã^ÚBüu{Éœc°kUïµK6,øDÀœÎù‡3v52[ï$8L\(/o²D©VY€(éXo´„EJä)TÔÕX6:t7tÀÔ¤üLâ¼Ó[¤×rW#Ÿ¹¿’À žÀD7Þ\ù0—9Üø±¯[A»¥Ž˜U½® *lRBŒ{éTO`¢ñ-ßBíß'¾%À𥠹ë"P†˜ÿù‰š¹X1˜07­ì/ݨ{G©z²(}=ºfôÚEÀç|.¯74.G&^ãéÁ™ˆP9u'~ïº ä[Ã>8%™nH ý¬KO‚çË·f ‚ñÿF‹I¬ÎêY}(@DÌ MH‚ŽUø€§|Ùîòÿ¤³a‰˜› ï$ÈYps1qÂH&ªÏÝs2ÕîUU>]çLè=9 Cü}^o}àóù/Ý×l„É–"ìî‰Èï žÇ9çÖÈ Je¬ÀËÚùÞ HQÆ€D ·Ék¬®Ãœ›OW[K Õ¦}ÅÁmvÔ׫»;5e†»)xöÑϾ²>$Â7¥ÕÏÅ\'Ý£‚D¥ z@O!ÚQÞUXä"cÏaºˆpÎsÅ3àlG9F`ñ°J'¼t%©gǨ`~™™Ã³‚ÏÎJšLn À­#ið­”é;Rð¾&Qj†'™6Æä®E=؆Ì0du~Sº¤¢x7çÐÛ=ì(Û3°àfÓ‡ȃ™4Ió |0Ê!ê´àõ^ú.nrù}¢W *Ô@SØÑ)”Œaë² ¦ÃJüL¨#ê™ó#R‹²ñš6¸úå8+|õqÙ]sͤ,?ˆ:§jÀÖPdÌ©†Tв"0GíH|P“—€‡Ž´øp±\2RÔQ·‡àÇ%ÊuZ®¢‰Ë=ÁÒû›žî¿”_ã†')q&5„K¤’ãTÆBŠ×0Y’qÞZ`CÐüõ:„Gîðt+°edª„³°»[…WϘÁ/[ƒg Ž-FL6¶—easŠÈ‡°BKua] é Éñ•8¹“ c×EÏšú=„é³ ë–ƒå0_j¸«ÙM÷޳4$ ´î—4•BzÄ 0ç÷’6rÞDÜÑŠ–ÒdRi›Ù”`üL·NÉŽF@¬Ó;ñîÌÍA}!$o<ÕÖÍ‚nÇC—”KF©–µ°G¡‹8Ò“”ó„Êj ¾6ÄcRøˆk=§ºé{l͹d¼Ôïb×,¿2$ÓHh9>i“… vã™—À‘,D[rºîð'~.0Õ¿ŽOb¹4xž(åhÆŽF¾³ûlÂ/ÞDÊrµº^ !;pE`&ƒ€òÕÝOG3¯“Âê¥ú.f‡2Czu‹5áTÛW´sà 2%’ñד²Ð±m‘ψeöÉØÓWje¯ž°AÔŒ@>ƒ,¢Žp>i,¹Ø”üLØ3ä¡XˆXàÄeÈ.7J8øf ºÎA).°ª˜²ëÊWâÿõ–!f[.j ÔH’ûƱV Žý°¾Ç.ª|áüº;ÎŒˆþŒ:ö"㉮BäÌ«ðÞtqþp¶À’YºÊÇñYK™}\üYøsH¬ÕÑTè^‡kbÎØù¹ë¼ ÍÊ+¤ºIL×eHœ,6Ì:ä¹øIKŒO!þŒ;h¾DÝ^/¿çÀTÉÏÇÃÅãÔ6™N.ɧ›±¾ôaö–Ä'¸+°¸ü& ×NŠÔ£CúÊö‹sNÆ‚Ãtò4¾pŒŠü}\aQ‡»1(ÇÕÔ²N >×vŒ·ä›É´–¤ZžšÜð–àhã¿VHkÓ£ŸP¢X>ýKš³<°²ô{»îfyAÕÚa¶ß*ŸØØ¹oøp7ã´w@ë©ÓðT-Ø;Í,ØÌe¦œó7®ºñQ¦¬(q¨ÔÖàT—-ô¬¸29Â&s:’¯=êVŸ`l5=ÏD (É&ò~\+áiàŽ0 ØkΰÃÈÖËt?énsøøuhûëþù²à؇ûR Wzkÿv›¾°¦Bÿcâ.oÈLè]Pµ*´âcXx;(äLž'‹hÈ¥¬Ä]ZˆÆ8©@{VÿØîœ¸‹Í-ýʵ(¢¸.S&¹Y°Šá~[žëƒ§ô!ÕM8_;l„_nõõ œNÂ.DÁ,S^¯u‚üM”uró²ñØc î»wæ, –Ÿ¡LqªÝðÜ7:B7IÞ=dñVï™ð œŠ¼–PEWê®[·»ËrTx§Œ[nuˆ+ÿ¹r(˜ߌY 1vج¢”™?Sùƒ%ÈWןÍm”œUäŽ:Ä—`ÜE™Ì³ÙT‘À6ÜÖ,‰CˆEî94•/—ÿÆï Úò9¼?sÍ‘¡T¯À…4Ä¥7؆&‘LË¢e:÷VSnþ{õEvˆvù•Ð;u—ÚÈ)nš3¢éT7£ØüLÕ-®iKí_:ib‡“—LêÛ,¼ˆò‘ 㸠øéTØ;ÜÀ"¡~¬O‘¾Ñ(9'ÛUÆÀÇé«j8IýU½ó"Cœ‹ÿ¿JÍ3íé[À9‘ì=H‰Ý©ê ÑaI3 ,‰RR¼¼“>âãGLîªY|·$%hÂ'À¬9ÊjmBlÙNºÌxñÿ’  ÔÿˆÌÛ’I©^I—WUéøÍh°»Ì…eqËÅŒWRm|{b„ä˜\óÚ4ñð –ÂiX³j9S²Ùä"óiÄå׺yÙ3ø³‹Ã½ï-J}üÛ”©…5î;ѧ€é†lß[5ÉÚ9À5—€Xu[¢yÞ4­ehGËåóÅË~¸µÚ:†¿M,n£¡7­LÛáÎ Þ|Í…Û3„s¶\ú  Ô0C]Câõ±(UÎCD½É ¥·Qç }“K@Œ'¦D6.3'àãZáŽiv¿ÒÛ…ÍÔkÀ7öýउ;Ô²·cÒ ÏW°‡’ºª¨AM4_HY6½-:qÁ f;µd@Ý•žYk°EäÞk–ùwIP>L®¿Ï›îÃk ÛÛQ?5½ é\\Lùð4®¤ŒÈ#ì-ŽgÈ{Oœñš‚üÛ»†ogÛì-)"àFËà:mÑû0Öð¹0\á]aÄ}Í0Z¹l4sÝ!3`mòÌ¢j×rñ×Cÿ¶úáÇO ´1õZ@*ƒÿ¦lºåjLCí*~Æ#¢5S&ZϱNçŽ÷Ýû•Ô°]0¶ær*l °£“ûÊá©Ú³6TìáwïL@ºi•+²3Ÿ01^A†›gòBe…Ã,^| µµOFDòZ…R·L£K+F¡„8Áé+§ H¢k2ù’'wRÍñsë Ê.ɹ؛Êà V׎‡S-bš^îÊNûç¾±RÞÃ÷b„üMLõob2°4ÖÆ³ í¢Úš´ú<¢8n EweqcÇ6(qà&øcŸè‘Ð=Wë­ÿ‘Â1$IäyÎÿNv¨@¿G×8çÇê ù¬ÀÛx·”oüÜ&-–9÷×0ªªQÃyE!92,”Ò¾[•"M@§«Áߎ$êjGþSø!â˜gC†;ïŽÊ«ÕJ5ë ‹ãsqjÄaGê1mRèáxÂÇ ý‹R3S”Æh­ ùÓ¬”ÛÛûµc¶ƒ„ e÷й’C IvâDð_5dB-8!Õ>–UŽL0µ÷ÀX¥?yíüL®»SÄ›è»a×-<RL#8A½gÈèÞ øU³LÛǽº<cIétpRTˆ:‚•”8,ÑŸc£×´Ø;ÊÇÆþ‡F7æ¼)»­Ö C1áòXi¨5¼{éÿÔÆÒŒ1%G<•¿® Ç` äèì$ä‘&s®»ßx—8ÑR»Î[0Ý9Ç«ƒVªüd[̹ÎâDzãÁå^cs!øIHE(íÓsR¢ï¹ÜÝoç$áÑ:Ð… ^œyhú–¢†—’0†é,áùü˜…‹…´U°4 œæ¢&™ÏnZ÷…›¿y§ò†º†ñ ü|®UÐöÒs]¨Ü‚á<lj¸^Jó¸þ骓Π0-¸ûó¼¾É)Å6Ö=ãûõ¾;¯ÑO¹¼4:en{…_-T/ù Ðj²'«BªùÅ“òþ×Ô{û1( YY L€°¢Ë©è²—¬¯ ÍA¦[¾ÛDð¬.TýÔ¬ùŽ+`˜6Ë7 & Õ)þï¶_Tèù­ŸÉ‘û´FÔ(9p ‚àýò³O¡çÝ/U3:¾Öv/‚hŒ÷‰cra\J Ñœ,ÆâûjH–>lbmüavzL^ͯñ¹žŸp,¦:ºÈÛÜ©«âùfCïÙ_䜕 9Až“×ÛªXe·`ˈ̽ç5åÀŠˆ»^y 2>ª—ì U/n;£vt.“>ŸvÛA”÷i” e·&{°KÂÞvùEnL¡}šà±Ô>Ÿ2â–³˜BÀêh¾‡“¥9ÿߢÂÒr¸WEf¤O¥…UÞ®tޭ̓ž§}zm‡©bTi¤Ä‚F®,"¬¬K¨ú6ºm—úºì` †K¬Á7Ø~û“Æ næëKg~+]#°ê ¨N)6†û§üM‰ú OïëÙ£‹ó;C¿Dµ–Šë\±Â$·ŒmÍkðË‹ÙïŒÔ•_¥¸µÀ÷ç´èˆÔÔÄê"+·$Ö0þ²‹z@;7ÁÛAŸ¨¼påz2‘ ó³+´5AzÀÕVÖEK‘¥v%M…¦/J]A‡Ì\ô4 ·´Æ™zƒ.>Î1i³p&¹”*HŒr%0õâE€»!·ŠDìïå¤ê³¸ú»l•S”Ùü~E°Ÿ ©I@‡î‹"Dà›61ü´¤ÑUftWC]¡s‘YÞÐ`…hV20'™{¤üM? Z*àº:‡°Â‘ [‡ýÁé÷lÉS`“ð—IåÂÎÔu°§¼ñ¡å¾NŒæ# ð,Õ̺[{ΘÃuL…ia©¶kéÏ>GI° ¿€®É;òÛ¸Æã”^kÊE'Ö~  ÚKÇ)´$Ö÷;v—ƒ…ÿæ@ h n”N.?ÑÒ€ºIš.ø2+[ñ|¦vSÅÚ ìƒCü!<5iÚ±éùÉte'c¼W[<=c»+b™ÇHIL,Ÿ|LYýÿΛ‡‹Æ9d0e³T@ù ï¢S™´ÒüX…ZÂAeë€â$°ÊhÚ €a:QºÊh›–FÌþ…KC5~QN…FÆ9Ñ8ÚžT„¾ ®1C}ñóˆ„1ªøÝÁ­"™@¿P–~P ÿg.xSEâ¶iX·æKÏóCÔ·nJ¾vÖ´½Â†F];Gh(TáP›ÆýGâý˜‚ÍDÀhÆ5>i.ü§ïYl#4ßNë“úïOR–¢Núÿkù:ëùÖ;ê•l¨ËM¿— ö¨LéüM[X‚¹m¯ [JÈÂOuaåm¾è= -q‘œ~Uèw9œ€š*—É N¶‡†TÐë¥ÐY¯t¯8>ÊjB-)jÏ÷çà!c.‡¬ujîò¼çlƒÇºb³„µ¿Ä@ºš›‚cQR*¢XVìvÍ–‡VšfêÏø9rÌäX/ì´2óq¥¿—GæŽy=E.Јx}‚Pv3…ÿËÒ "#ØÁfÄA™GºóÌËŠw°­>ÔŸ) ªÊ-è4“ÂŒ^,-mÔÉÜýÊEo<‰6üIþknÞ2ê0jB¾݈jŠG¿ÏËÅÃ>Ìú•͉Úâ0[I¡î¯µ‚¦´Ï°!f©äW!™yï}>ÿ÷D9]=ÀÑʨå°0 nú1;/)Ï¿õQm00½ª6OÐÎGÄ‹‡§ú;!¬]²®§c¿)ì>w[ãªÔº•¾åF’ÎB‚‡.TÏÖ2ѾUùƒ7îƒ"Lt -'î¦`Û‘.é×ÖŠ¢ß 5ªÂD-xöÙë„2ïÑÀ_ê+kf`P90ªœ~î£$4w!3¹â÷®´éBÏ‘³B¤I­vDRd³1ý(àéüM DÆßT* á2kìådä%vZj‡9>4­ºAx áä(6£˜HIA-3"ëω$z"YÛÏò™u Ù­²EžàwÚ‹“â@p¿¿Ž¤,ð0mðb0ìßIÙ7öÙ³¤Ùûl͙Ǡ‘¿6<Ö¢eÏImEý°¿d{œöÈÙºr#S0ö$øÌãÞúsm²ãŽÏ‡Æs&ÉãGõw®ÉÙ“ ŸÎ¡b¸ÄFû1(å|°X*€çÝN„löÖ¯Ázˆ‹Š›òÀÃ0`$ #PÖI({…í\÷´—ü|®§(0Ÿ½”0b­¨÷8+@>K°7ÅDÑçäud¹óö3Ã@+cB(ÍzoÅäTzñêÇõ‡C[\ÑÔvº3è,J›iÏc)QåóWnÁ­¿æS·lxwŒk–¢aéŒù0~t|y#ë@QjDÊtõ†2B{1ŒÖ ‘ÆþZ@-«òÁ?s*¢ ºï WìD…ô“ù»dûú‹ É»ÅjN”Øve÷Çi™«TU‹$,çú) }rƨg‹;lßp–S†z€]LÁÏ3CžàÄN|/úP'¤f½štRæ>Ÿ’íoXH ¾ö²B« QáÝ;10§)mЙN›æZ)»¥Å̼m02qžø½!7bÔ©ŸrâêÂøÏQËÉ­D.YG…ÂÎhŸã5‡¡¨…øÛ€î ‡æ|Fí ã§xïü5±¯¼ED(o¡È ËÏÊz2§½óÞßJž a4ñ´] ü>¹Œ•ÿ’Îâ¥K° éè™±E¹Q¥oµë¶ŒçûO‰Œ#¨ r *D&p‰Äœ·8³FƱ}«l]å’ǪPMÿÛÚm ž¿=„!,`rF;Ȯ‚ÍQ©·8h6*Ü“füX¥˜4NÀÓ¯`¦Mò[óÛ¼ÐãæPHeC¤?B¨þöÑV©&;,„Çç¼VAÙÄ8”[‚lw¾Ã>ÑÑÁ„ç+£³Ð¹þ@:<3¨§ é9iÛͳmû¼PJÝH®Ý‰¢CIÿ[Ê<Ò6 Ó ’w]j)•dÃ0Ò1d9kÀCKí]AäÁG¨{†{£"†±ypê=¯[ µ óÑÄ©g§qÕ^¯@{èR^ç«Û#Δ}sD UŠ¥ºS:¸LådÊuþÍli…H6kä°üLÂzaë<¤W›=9Wú+!.8x-ŸåÌ!)R?ªHÂßýfIõv L\?ž l©<œ¿-!qV‰?+å1Jðµ«Ï}Es$ÙÚõèo¤Óüh*: m?­¹í®Ân¾÷X·Þ•Ì#n“g}2r+[¨ŸIõ‚"‡#$*¿}¥8Và+:˜š9(¦,’ÆÓn’ý&~¾pÑ;én¼«{=”Ùìc£©)aZ‹…7…èœ,³ˆæLï´b,¸4lOgëpóÆ»3Q%âQ"¨‘ÊB ô=â•ü6öã¢l²}e_-ÎuÅx…p¯ßôP¨P©©Ÿ@°ói9ÆŸþ̉òŠ”§GwºÅ Ô÷µ·D«bÌ£PsÒ>S"€#£vÈÁ#%ÒkÞ®rJÆ€*ð[ÝóˆÍ‚èÚoDLñ¥PÙ ªyYU¯¿Lì{Ëï„ts)k¸x¢æË¡f¾xžï—׃Þõ^½4@ve¢¤Æçà¨GÝGû ¢_RÃ*qB[˜ÌÈN×@m¤š,¶üSE·FI0¤j½%3¸Þ•jfz9Á«Pæ:WüLÅñ,–‚XTï 3ÿn/ýéR³Fòâ?ê±;HÚùú7ÞisÏ"¤¯eÒ7=õnk  ØDB Z¢ÔŠÍN 4{G ¨,Ö£Z¾æ,sr­‚Mµ€¶#<ÚðµÉqû ØÆúÁBKÑÏ;;=yÐpÉUè꩟&§c˜špE׺¸NÕ`Øsi¤YLCv²Øüÿyp„Œ»9ûÃZqF÷Ò÷&R4KXfï“ÊøžøN=Ãý½; RÈ­%MÐ;àJëi8j öŸÌKjÕü5( ­z`Xatr6Jåü¯Ô¾±i8Ö,Í`¥P0<×€hˆÉ§Jð,^ö4–=nà¨rmï–‡{ί(<«úÓÒíu ¾Ý—°sSìmà}š¸ãbXW¬2®®z¸M«¯_R:XF'yGEçÓ .÷çͽËã¾Å‘'$‹Ç7n 8ZØÓýŒE€QHòD~ÏadâSžÐÁÉ©*¢[9е…ó6¨¦óß©®…›•”ÊVÛiXm»éÑÞsa¸u’ØV|½Ö¯VŽHwü|·€'©/²û«ûˆ•£|°îôÑZ\ž$¯&2Ó_ºËþôvr7Ê#â°p1Ú/ž4]Muȱܽ“±Î(€#˜o8žÄ®§HhÌÝî`²W5ÝӆܨY l‹kHlM„êdýZ¯vøÏóÁ ¸Í-¡pr-îÝÎS5µÙ´ôC}åc+oïqk ÈçKÿ¾ ÞÑì]º´úëÑPW1$¶¤Ià¾bXe9WýWÍV&# ƒ°½èŒq'a¯=ɧßÏ¡UÊ5{ÚÝ(D"µØÐ†¯XÛW"åºçü~Ζvü@}r¥Æé£qŒÍÄMÇeê„»ŠQxú|Á[²3pѨ``Âç§Šçrôüå<¸ëk‚¦Ç‘^‘\0†s³N™Ýw‡é8…Tx“[1-Á˜?·!™RÁ-ñO:ì‚™xk}’-¬E69ÞEªs×™ä)½çù¤†'Ǟ˱6ÆO£—ØoÕ:Nl‡v'å…Í!Àï ùú¹ÇôÜd.7ðK`üyÌÄ褺2¼ítCã5z¨KÆîÙn4·Sô\îjBûç68\V™CwOæ°R ä0¨ìŒ€å˹/vhЋ|7öŽÆ—TÊûM'àJÓ%dªIÖ;î)c~ïÈéí8Eñ-k¦ؾißSw¤ÊI8ÍüLª{8t]\Û'Ü ¸Âœ!Í|y•MIà{ßS°¾|1ξ­*ÿw ‘i¼_$Ñw 4þ˜,G4}µP-hù.0ë·:Q¿¥StíàWÈ Äþ¸ê2îªQ=GBGý³xj(»}m޼a8È Å(¾A¯vŒ¨ÂÚ2gÖ4¿“›=•"+v¨>™Þ‹Žˆ†ÈÐFf‹jü5?DxN]ÓÉ‹í¦¹v5„°Fg­ÿ7”°Ëƒr¾ü ¾µ§õ4.áwXkF¹ÖV±(d¾Ý¿Vü—à膮u\×Kà^d ¥HipÑ ØÀð))»n]~£×1. œcMš>œ©¼KU€fã)§ÂH„Ä£ÔÀØ ™ã~!oÇÙ1³fYBÛæ´*£*¡»<ïî=¡³€vuTÎ l<\¯9-‹9À:„ŸÑpJÁÑý6Éís»[2£Ö.Fv­píS5†DÕxŽwH5µ}Q&<þóøHý•Ä»ÒO“¬O7¯Þha%7:¯È€ûJ£R›"–÷"·gÜ?E;S>48ãT»,öì |Ð#ú8³Î„7¢;>gßüL­—¾¸ûˆ²Š£6FAµã[¿-ŠÕŒD§ä¾.uÉw à‘ÎÚtñùño¼ã¦‚`.@o̸ ðÍË« Yß…åKâ¯èJH(@h—7TƒŽäÁü,¡gBœ4qd2gQ<ê’¾møIÚEèSA"GÏ‚«Gñ1‰#Bÿâ4aEþ6Ô,ŠhãUFpzZí_q}2ã©wzNDÞÊd€ÆŽà'RÒ anNpÚ[5ògœ"7|#¾@oKˆg" *öÈú DkÝK­šª» Êj–êñzûüIï,÷Ø®c}ø}2Qó”PùhÌä>OZ+sÞ¯ðš-­üö´PZLÛ}OÁl÷¬²i~EuçÑîñ¹OÁ0÷úA„ cØ›ÀiÏ*™ZÔð—¤G»y‡él“ņÕ;ºa>xGÔü¡\ Bp'ƒ•ö¤@xÃÄdi˜†ÅaüZJþ†ˆVLq]´£ŽTp·°}Óè×0>Œº7¥Úµ4áÔ9šÆc5ŠIðÞÕ”³A߇BoñÎ =¤]œa7¢ÕñÿÈká@ªŒös¿^Ô€esè¶ÄAÇ*–þÁÙ6ðüJ[[t³¡fêÏ;³j›¿â«•š ¹ÓeÄ .†{a²ô—8¥ NÖdM .?€…¦²›I@ÇHÊÑ?üÑ‹y|…÷æ-pôL{ŠÃ+Èk\HBe<½Æj^8,âvû¶ãefØ 6$ýª‚¢}gäs÷¬7+TíEØöS#±v¼ã@gÁHáäè"ši(Y…‹MY³¬ûNx5´y8YöŽÜqžXlbÙ^³Ú&ÍþCÄ1#÷úbô"™]ÿm¹|Ô`-´¨Ã*«*¨¡u{%ôˆÑOggSî¨ä!¾9éëäèäêÿÖÞÝéäìÿƒÛÚÛÚÓÝÿžÿÓÒÔÒÙàéæãÜÚáÿ€Ýåîîóìÿ&ïìõúïìÿvêüMz›”Ø‚­*X)*¤úm‘Îτؑ²“¢ Ùó§Vü[¢OD…‘Å£· K¢G¥–ÆÝ¸Nêg\`Ò˜gŒšsø/…ÖTj!ˆÒU—ŠúðüäZ©g¦ôô×îÄrzC?-ÉÆ~;ŠlûÙiCuco¦ç±^ç ’èß¿ù€'p†O.X©Xห(2‹  ÅX“F|Ç踓 ú½Û‡œÅ„ß1tèÃ8û:¦h멲°–ç¹O—P†èјïeSÛÍ¿ä-ŽÀÍ«„TK ]÷žîtžuRxuü/V§Íôóð_êò„¦æGÔo˜*W2_å $Þ±õç¬[íN¤§ŒèúÊH €ÐÊË„_@‚"7´Ñ‹~fŠªqÏ«KåH«’~GP,B†Óܪò7âfV c–l6’rö8ïLå×ñ;ºÒ©>6€`“|o“°ª UèkãÁuŸë2Ag{¬æ`J.óîß”«qßè¡[ÊÊ€¦=,$ž?¨x°å¤ÑY>ò(ª2öªÿ$¼þ´ü2ïô|¿6J/ù.ú´‰ˆ]¬ëñDsÃ6gZûÃÉ|\HÕ&>Õm‹]ï˜ZöàL—ÒfÀÏÄûüI߬8ÈtÑún¦P=Yðñ÷Ý…WìÎ9'[ÖWLz¥>P–N °{Tô¾È0(ÐÑs“¹É»£vc`x{C†æÐ†]±“‘Àg{ó ÍœP¬*C­ËK.éAÕÛ–b„M¼ö)ý™=Vnan]Eœ¹Ÿ¿@…%6×gâž© ,rÍãØ–Øžq{ÚF¢·äÑÿ¾}LÄ$Z0n˜z(ÄX$/4sZ°Ñ”Lf]hÕâå-é½{~ÄzZ–8îp”Û3Ǹu ÂB¨§HË ŠŒáÒ<ëf Ò{^oT‚bü5 mïGtT} ÖÀ~e—+uô®ül‚ ±Ý;i=K/h¹lt`!zî\?e’åL+8XM›º;Âz’2 eóú–‹)Ç%^¥ÁOß;0öÞy¬'ÂQQåfeIÓÔzlúþ}o5ýFì¾ä^!h¸ç°ß&uVîhÊòÊwfèÉÓ(óøìÄÌÎ×½èAZh=Öp3 Sáˆ/¬"šÂwìüàîl!Ð)gÒ·ž+KZcI«œL 49&Á Íæ¤\Iê:iÖQØ¿•>áó®,¿™ÞBm¼ $ÏüJ—ëÇU¡®9šBRô›RJÁk™QŠ8²m#ŸÊš‰4ó;×0`p6nÌ¡Bû´OmCX¦•‚è?]ẩì½-9p#»oÉèÄÁѺHA¹ÀA°(… @{çJœ¯#çíJÁi]{F‰°óÝÖ¼;Þ:ÆuCW —/ƒ/Yz*½ …IyMÚJjM9Àö £Ú÷$÷À\9U5Â\æV€à±òTâÍÑá ô“ mY`]ÿâÓ:#²aEmœÏ­ºjHw-–ºQ»ÿ:â¶EÂF¨¿ SÔ *üÆjÉR·.ñ­ù†@‡ËPhÝgs‡•µ‰@³9Šª0ÑÞjV» w4±ÞP@ó‰Ä¶U¥Ü6·äÚo•–|ýêøâ·ŽvzÅúœ^ü{ {¬ä,½È¹Uë.3sãD%X65<¬¾ÿ@œ4ix‰aHáz >åÊ‚Æ eÒOM]˜#¼WñLOV\¹µX?cø¶Þ2ÈT>YèÓÉY,¨I²Ã²€€ëþ|QËÌHÜì— àðÎH«]ìVì Îaq-órñ Ý*æî˜S;|TϦÎÄ·À[ÈSDS8«ÅrÒ#nAg Áü|¬ö†µ–kÍÿLŠCÏ1‹‡ÅGyg>À™V>ÞáØŠÑgwùÔ≠_ÀÖ”F:g&FõØYõk]r´úfÒà\ öƾ´–…H1ÙÄÏDÅĺF÷ ìr¨Wm4*|RËn4íOk9 ¤»y͆'Ç/÷ ’¡ ðVŤ:ª?7xCgœ<æs9uå`Š•iJëö¥x´jöô×åvúáï ÊÖ‹;/»ãëà_sê ¾*¬s¬c_@×<9Q!t"ç¦;ûlёϵ¬‹üJ^lkHÊl‹€[ á)JæO×@7/H9xI9§ìtü˜œï¾¤¯¸êUŒ3PÆ+B6M5>‰se Sô W¯ŒAø®ÛÓÕõ ·ý²œ Yœ¹ø.ËàŽ-c»Ï7x‹œóºbòÙLs>ØIĘ÷à‰-Þ×fÃãŠö‡‹‹…â‰OÕ‡ÌfÏ}ŠÌý™QSÜ2ñì'kZ#œ—¥ÿ˰ºëØ”³gÛd(0ë¬1”ÐŒe„ ëB#uÌKËÄ~zªÙ£â‡¡ggžKdº­‰ƒ¦Ùͧqü6]è.ó˜%Œ¿ñs­¹%ºàD²•†ªk~že ÙÅÅüœK’Î…‚R¯Ig¯À3fé»4Xvñ—ëûüÍg®+‘¯å4HÙ0ËýÊøyÛþbP® FP9S›kEfæû‚E›ýáĶhÏ2‹VËïØ«h¶@† ¤PȻپÅÙ0ž%xµ§ÍâÁçëÍÍaÀøÇ£JŠ€Ñ±,jÉ\_únËÄÜö`â#¢ðæf]Rªâ:ˆ~ÙUc„4Yp‰îyÊœêðéðO›uáÃÏžç“>,$!Ç.dWüM!ô, ‡CÒ[èC3=×(¼"ù$__{âáînÙì«,æuÛˆv3Èð°’ ˆ…¬ü»pá•4Ùc¢)koãß*˜ŽÿÜ`¯§oS‚RTÝÃzÚüM G”cîYÄÒˆ„s´º¯K=‚˜‡o /»Š&7á}§iT3f~ÃuolSËËZyþ5À¢RB7ˆÁà$ñ^ý„œd¿ªT¡‰Ë`Çes.½ Eþ;œ˜f)g‚jëÜöO ®HjA_My9ÓÇI­8RÀÙ 8A) ‹ÄH^y 9¨1½Å§3’@ÑŒ;xGãš\ xŠlBb œGVÎd[@‘øz*~¹Œ@Q[3HŠc¾Ôµ·R‚íû‰oØ …‚ƒÀ”²zÙÁ8'óudÔ«NÎ(~*™! ñËœüÛ¸È&9‘urÖÒ…<í2t¦T>ÚdSÍ܈ ¶‰¾>Û)BVn ,²oâ"aÃÝøZT,æIpÆ‚Rû<èãn“Æ3cûä!SLÜ‚UÇ¿°ɇ ^<õІ½ZqÀ2W”Ÿè-¹Ç“1€vãQÊÁ#è_›ëÚG(E÷ާG'¹¹·˜7ñê=ç Rµ’°ƒ‘õ.û¢iK›v ‚ùkO¦+Y.X€jƒ$@¾úÓ1 é;Š é['b¦ô¿ˆOÁxâ”K^hñµrþSÊ‚aòö/À#ðü‡ûm¼*Ïô%¸?­x DÎ=³‡›ªÒ†ü|®½Ug¦·€Jg­½¿8ùü pߺ²÷¯Xçe;SŽžYÕ…Fñ,oìïà l–zÀíñ \é‹ã½™dñJäᨆQ¥6ÚUlWçÁqŽô')ö½*ÅáÚ“´Ã;0›Ø3Hæs¶&w72"2Še¼G¦úÁذM×퇌Y…ædiq°½v‹ç© Þf·Bï®·qœ;ý°¥:vôXk}ÄëË£!¡ S¶G_Å KaGDÕ–#„)ýÓˆž7‹Ðzkœçýp„\Ž0-K Ÿž\VšÙõJƒÄç¢rÛwxE и,aó&n_8´ÁàÂúÏñ†ãTo>6ÒiwSZâ VSÀéü.IBnYÞO§ïç¥()É»…Ê…"éÄášÉ2&ów£¤:ª *t­5C”/€Fè€Þ%‡¢™ñj%S6äÉlÀN¶6{íê"Õ“¼&a¾ÁIù¼“wDóJÒ‡Å^êØ­¢‡qJ™åGÀÊáXRáZ÷gkj§$Ñj“Ê{¥Rƒ˜Ìó-+f;MªŽ—:zæ]uhn¼å »þT¦[Ñ£,EµMÝM C'4Ìðl[ yM'Å|¾ƒ~ab5}økæd¢aÍ­¼Ïu±¸‘ÓŽÞ2ïü1€þ€TáL¦÷nñõfyÚ‘eðz6õ TNU¶m\xÔÂôëü©â„“~ñWY†/Ì©ü›„°çjÙ7~|-ëë½Ðf©Ã¥b(sØ[:úåE\LÔx™ïâ[¹Œê‰¥TØ¢M¶!4OVörçç‰ø…PüÝuî}N žëžÛw©F•Ô”…¨ éÉɨ Ï#'8Iö9µ6zîàʘ„xûÞZ"Xn´8¿I™·5á.†¬ù M°ˆlðaÆ«$ì)3˜1¤0T‘d–+ÖmEŽ„éM7ÐOü0Üw}QÄ'¤Á÷ÉÏ oÅÏÍ_v ê»:ŸáC)ˆ\‹Ö\m~1剀ÇéìT¹øZ8yÓ•p‘æ9Ã+÷¹Ÿ¶@í02NâãkF-kròÝ©$=È¥i¹õã5Áÿ ‚îð_HqÎý,Jo—^WÛ¹ÛHs¿„è€ó#z`&møN­}Û'ÔÞGË(b ›Ô’ Jo`×zž-£ BR¨™•wÅæŒ›f>¥¼pSN+gŒ·HÒ-Û ,fA©×1N÷%•ÂÝŠÕ#„)©‡Åà( 4žÒ½üÄŠÉ@á¥4ApižÅîˆ&z¡¤"aRåÞ!vfAÞÌ…¦uàp[K€á ‚Ø‚Ïf²âw©…£¬ ë=„J긄ûöö5r›]ç$Ùh÷hBÊ’fbÎmPBÎBîUhÕɲþé®CpÉv ¶ÿÔ¿2ÖÚ7»­h2þKë‚b³–³'ø`»Ÿ‡TT—“QjRvz&î=¬vó=„ý”n/FØ\Ò¼”Íßà®Üb€Ž³óìˆoõ@-Ê‚e ñ¯ïû8îö^;ëݯ9·+TŠ/QJü6V(Çúz§æs¾Z}^ ~l`©•æ7å ¼®éÒL<šõUG ÐþGõf^ÇÐdøMebm£RŸ°ñ¾Mä{mÌ#Œ‹ °kÛ‹ýp-lc˜VêÅh0ü/,ö6H‘²ô3>åLeþ>8¯CI'AøDô§½ç‚{ÓíµY í´¿!'ç ÏöŽówпƸØaš„ÓVžÒÃ.K8Ä#'Ϊ³oIŒ ÃÂ!†Xj˜³YÏVÁ`J†eëÁ˜Ò©'“3ZÇü6]ÔGƒøY4x¨ÛcýS¶,a‰ÙiêUSCÁôlïn¸±"²Uì;gr u ÆÎ¥E0y\5ë·¸“Gu4ДEâü5WACbþEÒV’AGþDÐY|ÓDƒÅͰ{ökñ³@Þ™Dc$&®¾ÛGuð“ÎvÌ@8ärÔŒ>3¶T³ŒõtÇ_xK¼<ÏY׬†&ÖÌCñ°Ó4ÝéE'ÙkTFVüÖF~4Oü}\@»äâ(&ýë™¶nÞ‹ììL‚ /þò¬[8î¿m!"£YSÉh-÷hcô¢aŠ4Ù\ÇA¢¶=˜[Š8»çŽbô\e~8ãuHGeÒ;åÌŠy=ða”€GÕF íº€uvhÛêâ6.„¯Y°*ð•/®5öKÌ-t¾˜.]5ù¹­ÓU]úŸØ‡ló&!6›û´„”ß!âaD©g<‚t×ÄæªBO¬ ºÒq}Ù9‚ºje„y :Yò‡r•›<(6‹…ØHÿµ$©áê¡XpÇ ÎdÒ¶É|&cýŽÓ¨Ÿ•A¾úßlæz·œFÃW¨ç—æèÄšÆFÈÈÏÍœ E©œ$¾$sîè‚FöÑíãØc«Ö{Ôx;F1yi²{T™Á+eßqÃJ¶µ|“ǘÃÓ—+î¾ùBé.mýðõ5Ö%@p¸X‚¨˜ôû¬#›¤rìþOF{ ‘“ˆ9E¤»9HÈEDÞÈx< wMím´¹òŒ#Äé6*½š¶b^âðRoØÎ¶oÚŸ‰ü|·*HÄá ÎøT|#þI4Ä&¾‚ o`ù”;œ<.Ö>ðF€úÚ3c\º*Uï¼S¿ênO½Rv'>ÞZ"i¡˜ô‚h°¨ÞfËíEl|ž O4ïÝ‚ãlÏD‚AÉ8“E?ø]hIu)ÂY&49È.‘O$z6|^g5ö ¼ïÑÀxÿ(ÒOÎÕH ðYwí¶®—Ú;\4»;|üw²úèfÍm”CœŒt8,.¥x[‡K2ñë w)¿~¿`„7>ÐiŒÉêøk0ãw¯EŘ „ø»iÇ,7€Áõ¼';;ƒ§ÍÜár[Âöàçü0už…•WjkµVÖœ4Û„¥üOœŽÍÞÿ½¦H2f‹oŽú¬ü1_âjÆþ"Ü‘øµ‡ÀQ.5â$C5¼ýÑS Q2@ës8½ts(·†z·ä ì9üÇ e¶í>÷-À]u3/³©d óeÆ MÊHÝ\Òí4zShsÔ˽e·¢"-¤HžêÚøG°:ª*n¿óH=$‚à kp›=AB3u#ÎcÌlj©¸l¦:¾_ø:z‹)Ê]gËñ°â‡À8¿9p?ƲœF)8Ćzt)ÉÌWw$нXÜ:óuȹ4s†š MûV+{Öê+üLæ–RŸ|Ï9$KpÐìà"yNênUz!3’è—/ö‹o5c-NtSt"qMu-e°ÊŽuÕÿmÊ>ù‚ð€â/ÒPÚ)õI½]0X>‹2dú½6·'÷þ€<¤tã`Û?¸Å’1ÈàºnSøìžãêÒ? %¶­âë·hO7˜ Þί~O†^7fÈZ¡ì]QÈ ±’'ãÚÂóTvh‘‰þØcæø-L?Ò“pˆß7ŒkWL»O¤ù¦}jâïÊD{VüMWlnoºÝ¯µ1—‘ æ—Á–¨ÈJÞn#¿ðG,ÏÌ2È.ž•ðáQNŽî:’fâÌõM5Mx·JËôÙ±ºœ­¿Ú9Ú$;-—W½4ž9:®Ù¾;T&Ôг¥–fš`YgôþlùòËдÝÕž™ë]é­‡dÀÊóÏ}Åu I›•¼«ŽèÊÎõOµü¨<»µðkŠòñâO{WüFU‡Ÿ.§+AdF1ñªÆ1 öÕñ,”Þ1´Ý¨âD·—Äó‹éªüÿ âƒxKã⇠ÀƒCb©9º1 j:©v®û[e·Ý›²Åå™ßžÁüL­ÔıÊì%†½ŒÛú”L@å–ëZV¡]Õ)ʥаþ°Æ¬®òol"ŽUy”¨¸liaÐi›É6;»FøðuyœSD3¦óqv•þ·£{À…DG ¿‚…Æb8Ú(t=’ÛelÝ@Lç™÷¹xå'ƒLh" ¨ü×Á;*‚¨É¤Ò?’{—–VE©õ ÍÝÇA)ÙrÅH(c¥bjoÎ’ç†QjŸj¸ÖЗ:ƒUÛ¼Z<þï®§ÏIôÂ{³Ò<¹†þ7í=ÍçqT€š ûÁc=EoÃ1@-ªüIöÁ×"lP¶æNÄX\GÑæDð–¥¹ü¿`"†8×e³zçZ¿­¿ó3s¹ž OJÅÑÖWV¾v°U`­ïQ啘­YšO²YDd_6½…>ÍmÃÿÉ7=ºÊÄöB祂/ð¤-î‘èÒÐz˦Ô$C/J"ÈÊÌ{?ú_Ö‰MÿÔ¯Lü8¿©ëj1´ß{8ÊP¸ãâÜŽÆ›NëÀo‹°üì}:§ÞÆMW̘Ôégϧ.i‡.?‰,]P*TJhggIdÍ6·h\µ•üÿÆرüNˆgÝrk²‡æ"žám[Û·¡¥eŒ€Ì?ʰ¸QZ|²6áoØqæ×öe&ÏïƒV»>ºqÁµǹ‡`Q&{Üaü6jEäœ bÞÀf—zH©jkv¨o;Up¤ø'ÿç´‰»õŠ€| š}E¶J-„Û;Õ¡#QϰܠÎ3ÏoxwTþš‹B^]ChBܼ™ï<óM;Rß²l³rb쌯³™èΓ¹£W£UÈ&‘Ñï;;ÞdŒê…Úú†í㿚ɟŒ6ÕèÎÚêQsû4ƒ6|gzDäA‰ÉüI¥Ì.Ëãñ j€AÚçpašýËêO ‘6ªJó^À¨¹ÝÓ¨%BOðÇöB›‰…Ë»f#X„3€.jÁ·KãW¿H“)^ÔÒöH9/qü÷9Ž[Ëqqï3dÓmƒ7„i+Š!]( »Ô¿9‚ëðøÜÙ|ÔÿXdcYùâËÅÍç²bOMòòxR¯u!μ=|` 2 HO¬Èüúã¶N–gU4µAVù°›íñI«ñ'´F5¨³K "ø *_žM9ü'i«ÁÃx¥ñK{¤løÚÝêÜ+ Ñ a™ï¨üL±Ó‚¤‚²ìËA‘ÎÌÀ±úK;0X…¥Ü'’›fõÜñÇ—ì8N~ÌãÏÛ‘œ6aÕŸM|c“ï þYP E5y‡ÛæÑÝÚ4pñ€u…LÈmQN/›{†Pudf.«ºC½5Ð(@i»ƒº¿e$ÿÇú©JR¦ç–hPQ)º^–´ÃÕ>Æ#jMˆÍ°ð·Ìb±¶èêÊ ¢’€_? Pbå˜Ó`$Êì’ÉI78²¢¸ðWq®$„_ BYæ°;Vëå'v— úö4£dõë'+ërí’üL¬~h\Õ[ãÁøÓ–%‚†èœr{ZlX°ÄDÉ*³kõŒë$Ý׋­éìu|ÿ{ÇCÔ¢ŽùX<9"ß—!gšêóµêgDcXÿ;5¹þ©)¥GÐKƒ†/mhô±+’>Ü®¤DMns¯ý ïâ‡ÁŸÇY.2ú‡î]À4 ºêäyS‰ƒ@ÍC&ɧqîú^V5êZT^ÝœúN²\ÆÚ%½ô¾ ƒ‘‡>™ÃÚx;¯m·©vÍž.q¥qŠ)]ÁX¶w²jQ4NÉ­EB‹‡úÇj.´–o¦W“üLµë÷‰G¨Œà‡ïáVªïª»j¯ãÜ ¹¡äƒÓU<Ëzm©QõbQ79€Ãg°¥J!†~}'ÛÌrñ'GÜb+“ ¥ fr»Ì¤úÑ#£ùƒhWxy&¢^Eàç ©rJ½|_’<&û^3lÇŠè°2Å[­›‹dçeœ¼ÙÕ¦±ìµ’^ï†>&–¼ß}gw,ÙQ Iª¨î‹¿J»Å)™üÕãÔGŽÊðß]ÙÂ#ÎPÊ?ÆT&+W(¾ëÒ8Zrx* ¹ ÖüL©5¹a(zsÓµF*p_Ø/æ<^xhÌüDÔ°#Xõˆ1,úð†"íc`œ"H 6ÅÜZ­UØÑR뱬+Y/¿c.ËÞÁ—*Å[Ì£gÄUÁ¿o*`‚®gECß™¿ÿ.\Œ»ÐÔÍ.¾¨l2d€vÀƒ’ I… Úk…¸:ÂK†C6lšß8?±ƒ¡0B> 79–r áÏ˯JÅ™ >Š ü]çÚ®Ýf¹Rõ&'ÏKê°Ï–RDüììFÉ‹Çm>5*=[ûÛ"“–É«’‡EEÇGkœÎ”ü|©¬Lü‰˜Õd¼ý¦ž¿­DDši²ª\MG/‡J{ ¨<üc6û\`¨ØV~aÊ-Ñ ƒKHgé°FnÈ›$pj©² N ˆY‰f8&&™eJI/ÿ"É>ضë5®q~Å¢Ÿs%óú5²€6‡–¢“?µÅ&1¬çp{Á®LHƒv\“Uõ89‚,°ø_wE¡ß©š¶ò±³/—YÑÃ.MR°Ì¹¥q4|;¼ôÕñ‚µÊ ¨èž6¨cºg7ÊäÒ(/¦ˆßT¶5ˆ)‚$§åvŽÂŒ[ÙѪT³Òº˜’x¼ŽÒ –¾›ò²›˜IÐ×ós:lɳ&ä BúâJB8N°GIpéó )¸±iåí½à€<×?6”Ԉ풩XqÿÊ^àVÚØv”º›ÝžÃ¯êLooý«ýц°Ú"{ãÊ«yŸêï‘yîqËñÂ=ÔÅ¥St™t4žƒÎæþŽ žño‹(làé/e¾„Œ]™—À˜óö ”8 ¨ÆÂOW¤ÑÚ$Ä»Ía&óóLyiî™ã¶h”¢žÎú8ä8a°¼§4STg¤òçºLú—[ã«")«…]ŸÝ-þªùT&ç1©!x°8TŒ²ü,e¥8ˆ~b€eÊðlÜVŒw}lU^º½…+Äkìüü®ÌU<ÒrâvM6y§ó/Ô 5#{àÞˆS¬/èdý"©õÏa¡~_mÑâÕ¨å¢ßÐ]½Ñ_ÆoÏyî‹ëÅž¯)"³MîÀ€`v7QÁx‚®qv´iËDÞü²&u’©×÷‹-œšJSÍpìdpW²XLVäN.4/ÊmÇ6mÄÂVÓ”`ˆ ƒ‡>#%8 PúzµL¡¬Š\¼èÐ…9èíö¯í« fŸ2mI ?‹-áÛ‹kJæ—sîÀ¶¡ †lϘ`$®Â|¸-b/ü-ú Dcƒ–ÇO“2kVº¸|ü5U‹º$®Î–MlYàµþ”z3ã§â#{¼ÒÒ|1ÁÚqU—âé°·;ïV4™-GJÿ»özŸڞ9xïo&­I0ÞP¨‹4è¤ð âþ\ôÆÌ_6¯b ´]§Ì™ë]¥œ•Š4Y3[JvŸúkö¾„Û€QcÈ»¥Ì`m`,Ä/22Xû¦fO) ®¼m» 7³Ä½¿³·5f9ÚÓå-»Ö(Y QëI¨Qê—ïr‘­i‡¼!|GM”)÷É‹åè™éV¾ûžaØ]ÖQܸN›gðp UØf4´Z¦9ÏF™².—¯¨!þ/NüÆkûœjý@8çÍ,"+â)’á$ñœWbt\ÇX)—ïhÖ=³]|sý¯Ðj…ăxRžré‘@Éÿ2£§çƒ)=@ç4U <”`·HD$©O&òloôÈÚci¹r¤1 4fºôXÕïWþœÛRGN”y 4Q¬Ï4­Ujqê´õ6DtyOSÖ±t±t½[ÊÒÏL˜¹gź_ðòuT‚¦†W»>μãÀWóÍr¯³PP_åº^Ó,ÿÐtð2}ˆšÅE½Í)‘^hÅ J{ýYaS€ŽsúwÕ³—j¾&äø“Éº/ÑfVÌEŽWetü/J™é}ªQŽ2i,eÌ#ûÇv¸-W°Q óÃà1jst5F ä&ü¸‰Ø8Sé~½KЉí}yŒÝFéƒh¥µ¼ îg{ÂnMâê¯[ôtØ®'tNo¥Yò.l^òöêæ8µ&©8ÚçÖ\³ñ5G-#.cŸš„Ç¿Ö.l­«]•ÎØŽ‰£gí1Àþ£Ï\ÐúßR M*W¤%ÕÃa[ðOïÔ°äÙÀSt$zïôº AͰý7\°4±˜ ²_ЈU²Ö 7%›)ÿY-™ù5ãt¾Ý5vF-¦án2‡ññVñÎ)пžÊ$ÀîÓ·ÇôUß2]ÄOҚŹüXmÖñ²Jx8üÁrU]ç×Ñ‘[ø P5y^°âµ·ü]FY—éSó®NšYѬ¿ÿ»ìÅÿSºRò¨F-|?¬ âä8ôsI³òÊʲÒFºÉÚæè†ûóÂì(jÁ6 È%¨Y_p :uüŽÎ˜.Ïþ÷E?Ñ@y–Ï,/3Ë®žŒ[7»ä…*"F…¥í‘Mw¡ò×ÏQžG‘hÎñåUÌË·(c 7Ö£¨øm³ÂÜÄuõÒÚÀùtÌ«|)\…‹4|¡t’V5ñ$ã·NM³%$³Ð§’ܵQz¤ ©ô˜y÷Kú 4j¸Ô˜¬OšJâT5öŸ¸RÁÇÌ´—ƒš«@ÊäÄü6[ý å…«Á •nSí†ÐÑsô:S\A@Þæ^þÓ?»DÅ÷ˆè•šö˜ß\ØŸÕ¼g5ï ²–G¡´Åsqr!ý£JÕ°ª½W7ä ÛÏݸ´”p5u¶2õìK=Àv"EþÇÛbpPËr<•kÖ›7&ÆâŒ³KZG]¼¸Ðв—£»ú‡Z$¢§RX$Ð!SM˜ÂæåÂ9Š6³@©pÖ³êãÒ¾ZgQ9»ø_°|´™¿ßªŠL+BõÝwõÈ'B×##Ë…ûIÌ{¾@b䥯ž$&÷cÁ´Ƙ©¨š·ó)¹0Œ&üXÍo£í+g· 7'iˆc7Ë솖ÊMM¢¯¯ðž´cÕ ãF3†/3©’ó^¿V¥BMO0çÌ’²Ø¾2SèÓŸS%T1úI;Q9,g¬4mÂùFæ¡=eSÔ¾_³Ô¨w«wqUBVgZ>Ö¿EáÊ›¦…câ $†.æ+†íùÃ{j?<Ôè2[J(šúak]hJ"HIDê²1lDØ…©Ì—‹QA.”{)tf¶ÎˆÖ(%ÙÙÔ!ØÅ'ã¶^Q¾"æ0Íä..©õ>LZ(q« Ø‚nO“ vZ4™Nè;ä w8°ü/#çR†›üZ9qv<oœ¡ú\Jô@´EIúÛ1’¾¤bêÿJcÝZ¶jo$–LÑQˆrÄ•­TgÚT 8gˆ"_µ×?­dË˪Sbë'Hûð|Ç®›âÅ_to%#}%K;§Is´Ývq´M$î2÷4‘I× cy(=nbµ¦(^tߺ߱ØR² æÚ\U |g³àþÐIŒ£%Tv_ðz.eûUtÌ€»2T Ì~¬›týÓÒ©: C¾÷âBƒ§Ù7›Ñ(³.ÜìÉî3ÖŠ$Qõ½i ö¯|_í¹}ÓØyw´ÉÒÙv& !`:ü±‹$öç–e½±ö\ÖÃÄ[ Í‘º0o,¢>U=ü@ât…çmÏ< Ø{ø„L¤Qû~Rfxû•LϿıNq‹-_î0î/›³jƒkÚœ9ü‹‹¸ÃxMN„I6k%ké†?B”Ž‹·W>Ø‹ Þ¼ëj¼NŸ¬À𩾠oºß_%‡Àžia@™Ê˜16m‚ô;äeF>Ôg©;Rlƒ‰ªF“"<LÙü%ƒ_ºÉæçJ<;M;©Ql2³¡¥HvwO-阆—¯VÿhzòºšqpÔeurÙšßvb@züIs„hŒî b“k—A|¦ó,åtqQÊ´£ÖÈ ªÇÿÃñ8д¢eÞ¬ñ0З).„‚Ūæ–—d|Ý+f/±Fj}XžáÇkÐ(ŒFÜ©-T3f!ñ—†¸—vAvÒn^y)Ý6Ãí›"GŒ¾ó³¤ƒÏêâ‹XtÁ—ÒFùb¸¶Ífe<]8E\Õর»Æ>m6\Oç’If†YûD’ÃÊÌô’å–ËâtQ¶z³« o%‚/KëÖñoC¢Ô=·p}yÈ1‰5}Q\ ÝoÎ –wj.¼Àædùü|©¦Ñd"o“!p±pyÚ´ÏIOþÆð;G™ ·a'ÁdCHD³w3‰ÏºcœŽéZß=ж[Ãt蟶Áá'ì`ØR¯½ö²m·8-DÎDhù60ÐÉ Ìjâjz…|’/6ŠiV‰n!eAUC°[\{ìe "{Vë`-küíö;,S…?¦d¥´EY"Ê›\aÁæoŸ‡b|ѧ,íOÎ Ì9»L´U¸/É9q¾2¬#}9·oDßht•æ#Y~Ôš$%\dCœ'¡¶’µVaH 7`áÍ'yzE'´ÒmW¼.ÇßM‡t¶Å%£T¬MUêùî Çb.ëU( ÿäWkÇ®9yZCOⱉä¼5«éÛ+²Ø–óuÚe/¬=Fü¿3Ú§&ýÙ eÐNUËE¯šâÂ–ê€ ¢ £Ÿ­˜pü} [™ehŒ×{Õ¿wòu°+Úy h|šýroÊüLË,TÍÖ$ò#ïHdh‘RÖ«ØõIupáŸvæ@EþE°[7Vš­,S÷Qgñî’tÚPkª@ œÎ«ÖR„’ÊÞJŽ{Z7c"¯mý6Œå3iÍryLó%iÑ ÀÄx…$Ü÷¨Ì8A±žó”ݱU—¦/£²ûwÑ ï¹Øá$ç‹@t™%£¶0Ò7@‰&âʈöΰ¸žJŒà›£_ÖXd9oªw\G”œm´o#ÛÛ{žfÑr’»TdŸö#TmE>S\OPCô¬lÜ8ùÒÍör'b*ç„ÍÝbOggS€©¨ä£Ãœ]>êðöÿúÿTÿûÿüüúÿ§ÿëèïóÿÿÕõïëõþøÿÉÿßîáêôúñéåèçêÿ¿æäâæðèÿÍÝÜüIÿ¸Ðg“3åuˆ9¥°–ýnÉŽ¹Çóê@Pô$“°Ú»O/y Óôf›€Org‘$\3PÎÆõ ôtÎc?xº Ê=˜„`J/>úñÓ‹çáÆê9|‘¹Œ¾“ªbî ýIvËsØ–sD§Ø u›fÀŒ¹-Y/i*ÐNuØ«6Ÿv‡Ø^íªê$9Å)§3¹‹/x3%‘¿¸òX|•ôèÅ,Ù?8 Š~• ŸËµ“ ŸÓ:ÐÙ½T­õeŸ‡ßUiÜRÞ,ºB·úFý/fØ—ˆ4´@›2œm¨.xÞä7ö›û\ÔØ¯5¦«£0_Sd®Ð… SúÊQ¶59c 9÷Ò®¦!½F'þ»Û§ï­ï’ex4n&XNËé¢|ü°Ñ<™Å6ŒÃ¢vV݇jÛì±úæ•°¤<Î7¡W¾9 Åc]„üÛ„—ïb–¶r"Éë3Tö)ö¼´a_¢Ïçoø kYõd¨1ÁÕ´*–õ©v9™wú–°Ó)…ð—Ä¢«½Ž ‹_º”-–3’Ä}8ýkY•é¹z+ê–ÌÑbéGDî1ãq4u<šu¢ ýÕ¶^àÙåžy°x"y9$"%·½…qпϕ2üÒ¯)Ø_IšLH¹?œfŘ,-7=’égÀ²#hõ²4PqË\˜_'ÿMðšjZÀ‹*Úæt½ü±²Ô\16¦ºv×ÁfnZ”5“úœrE éáKW5¤í8éP˜’ÀÚ®FŠ·‚7QÊÒ:AüÄþÅã} `œ#o´)&gÒÙ€*i‹ò²Ã#×VÜ©|È4 =â -†ÇCøþ”8Ÿ$lÂ(«Ç"u迟F|ÃK›¬ òšI*#‰jÖ«'ÁÇ蘤hö[{ŒÊ~´¿ZÒi(¤#ƒ´GÕ!Æ«ícÓéÝદ:q]@Tž°ô“ê4¢fS+,!•¿=X©Ÿ’í㪕ÛÞǹÞÉkœÌZÉg äáÓ–‹Xdüÿú¿âÃg?é˜;ÔjÞ_àëc¾¸>˜Ÿª4»üL³æî È‚Y_9 CÁKÀ ýý,Ç5ð°^Â’ô¿9ðùâY£¯2Ñ2tnõöÙ¥…äEÁXŠlN%2Ä’ÕÕ ØÓAkÂ/÷MÀ³¨@¹iæ"v l4qÑyp\˜â&>\&ÎìGf6yзþ ãÉ×iñÑ6ëÆÓúE¤J»ŒQz·_¾ŸbØTO‘Íêó’Zåx>ÿÛ7õÄh5¶¡–×5Ó„‘ÝÛM\îœÒ7“„³”8ªNoýiâ5‚¯•¤"‹?”UkRO-ÉJ™hêÍÖ_‰Œ«iå…øÅÐ6V÷\Ç~\ð© ÝIüß·×-¨w›!/;Ò0*;1[€A2Œ|.oÇ(Ô¼ythSáXžU³GiëÜîMUÜ+:—óå¾Ýôž­¸7”›w£ ¹Ë4«Òè‰ÙìõƒíȾJzd}ýJp ?šÛ‚ý…3®SE(s¢pе’¯lfõR‹ áÃ,uµ·j§Ê¿Cã58S&Š$½PÄ—½°Þ9òrž¹5CªÐ„  = \WšŒ+ô7§?ýÂÍuÆýfúrŠº†>%žr\ì-¼vGÝß¹,=\Wd™vÞêþN%¥ÉÇÙXq-7 žd8/:Ø¥Y êN€¡*å#ï‘J¯- $¨TðÂ&Iœt¨Ås2ŸŽÞ9)ËJÒÚÝ 0¹¶"0¦Ý-àÁ——Ø‚†fë•©d%H²28ÁH…>ŒBÿÁÒ:ÖÈy©©V6ÂîüXgí6×C18U1,-¥ËúÐ$VÖSÄMñÍV.«ì~LÞÛj6Õ*o²ßÈ®k…#m\¸Ä› MÓ_p³;P-Á&E\°W ‡‹È—#@™Š PáKñCŠsbø—G ÖÂÒ'á¿·d±*ªx›¶¨a]°óJ8GkôÞ^‚êÒ% •€oŸ²ß0ž 9uá2ȵµ5Ø@Dž‡8™Ûlj1ìüTúxcs«´z„Š/![®+I•ù`÷ñ|Š®™¦KyÐ5m„/]ëj=#xÑâîœ-;Ga-V„¦Çñ ÅCõä@4|‹Šà&?RMJÛ§Ik>FüLËÿ“¤â` ×Ñ?Y%C¨Vз|¦çW¿…T1oµ­4€cû£ôW^]Á±ß¸]s9½ÙÎgŒØÒ8ÚÂá鉹àbc¨vø™E£j+®ƒL† Ê\wÌSìl¿¼’VÑCœ/pkÍGÞ¤•DŽ€8I/¾üt×3HA_5Q ¢ O¥óKâMDf§bW¨Ö¼ŸBèÐ|¯t,@¥Ùxa‘Y¸cóù,‹ö´ù¹G¥@¸RMQ® b–ïiÊ:Á1 ”®ÆÅð$Ç' È[°š‚c½ŠO_1ÇDŸ«JKÙÛ„Œ-Dcê’¸ìì¹6|ù6šg¿vjÜVü±õ´ÿ° Ïc;ýÕn}­# -Ê6qyÁzš Ï ?‹©ž¶ÅæB2–?pË]hÕUjz¡)ãXláÃÐÚUùñ}w3ó¡›*†Þ7Ç”ÊÛ=¹ò¯MŠ’¨€ÜyH^n¶–YR´§˜×4ï‰pÃJð·½®R`Ó°™ñê!ñÛ¸xÙ£Oud€\¡–mÔ¦"ÏçÀó¢7›‰÷›®‹æàc`´•pñŸ[g°YB|Æ`d/ßdŽP U¾ANZÓþÊüW)}ñõqCÁƒ øuý#¡ÈÕÿ*÷J žŸ^4W’hžÿ±Ï4²ûÓÑîk±Ðl¡F züLé8øPÀ.%Œ.®~»á ÜÖë3Q¥5¯a$ËU£–ÚO$â{”Ü­m¿'[•–nÙò»­!º‚±FuO.é.z×/Ê£˜ÄV¼ÒÈ«Y™èn–Ó2C¢‰£âñÂëÇ<ˆ+4ºåÁk u½ñWQ9Á¼+’\ûGÉ{Ó#_¤*Ë{Ôc#ʶ¡¿PH/?‘å7¹°„ho»¿ðˆ8®ß Û#®¼^õð@¸¸se²|çUÉ´Ék1ò;€ ž·?HÝïü=@XŸÁýƒ–“y¯JÐHtº¡¡jæ°rB¦B š/Yª@g–OÄm,iP@ü±¾Åô:uîÄÛåN‚$á¡ùÜ41ÀàÓ/ïÂ-Aª S¢b¦®XjŠÑò\ Ûu–Ѽ·)=ý +[ÂW§Ì>¥ºû¤ŒÄdÀÐ0qà ùº¶Ñ-M»ãÁ{¹ç'å/M5—ü hÜNö:„E$ ½g,z«ñ®t‹¾Ô¤,Ç?XvóÀõ£0’gäÒê…ƒ£ÅO‘î™:Î¾Ž…“™xÁšÐ)†7p(º£U²³±ö{u}Y¹FXã0èCO)(®"òWå“…—g"äé0$I±·äSo”¢åÏã‹$_1>h@ a Öœù…ñÅÅ7ýÞ¼ü®ƒ®È¥NÎc„Íu”v/ЂKÌÿ÷UÖ¡ÚÑsÔïD:5–K S]ÙÞjϰ8SgM®Ãž< ¢LnƒÇÖà”øenê³a7{÷¾R}Ò}0§+io;þ–qXJ ’Û7Iö³m7ˆ bmÞ›ahÄŀп 1#žiËÁŒÇTæ*.]¾þ…ún.1£úê{Ôû¢ ]qºçÉ›žJ¤DPyo¯+ÒF©y¾·Í£ýéľ¾]ÆÔt³ "1Þê¼ü|’%âˆí)4¦g"¨p…?…rüX"dIc9߃þšõ¥B¨æ$ Uü¸|½tÜw ÖUœñû1õÅ?Òx*Ѹ{¹abË^:›NÆc*K¤^üàVˆ Ó8,»ü¾ÐÇ(m Ö¹ç1”Œ+MYLœ~MDaÓ†-÷M¢o3LÛò¢Ñÿj2«ò4}MMQº¤P‹ŸžôÇXsíõ÷@‚ÎZÙI˜$ÿ½!‹ñ¬cbe2Óˆ=âdì6D²èt%‚ŠÇ&êÎ_zîÇhnM| ÂË©Nl¨|Õ ‰±6üýÏÛÚݦ@(‡X[%v¥²x=GŒ{<°üäÕºr%ì=½(Ýqn$.ÞCôñ7˜¡þI꡺0"{€;üMôÑIÓJ öIZ°æ!˜†:uUåjÁUÈ5ñÎ%Sê’±=$ò*QP ûa'ľԗ„šƒÝëz ®Ï‹'<Ó:@ŽŽ‡mZä:‚Kzðœu6Ë{¡ŽÑºïºH÷…HN}_ôŠ®Å&¦¨Bƒ KÎ ²ѦVÍiÌ(×G.à þqîJ”’œÃ3C´Ð—æÍ6nžß̇øðó§À{„üª7D+\bƒ£1°Ú/Mµáæ(<í/ÊÐXa‘î%}IäjN(]¼R7v›¯°fOhvÍhVÓÆÈ>?²0”¶ßO‚y蔆ü±Ã`WO»„:‡‹PÄ€£W‰€àßk¤\Ø÷  ±—Øb‹ñÅÄ¡—cðSKÙå1>ÖéÅßQHõP>§v?W:Ä#`ÀY=œÎ]t4oºà¯]S¦:ã+"JmDIøó#±%ëÚ9ûSœn¨¼¥s!„£‰G½ß×ÊȰ?!¸ÇäÚ3L´ºéëee óXjh±á¾í4jÝ<Õb&òÚU1·3{ÏØ²º#÷&!Œ>@QZ £`ÐÑ©ßd=€$Ä5çÒo6…Jç…«­ö/9ôm°VdÖzü°ÊyÉnú3·‘—1$øÀ?#¤Þ¹o§³¶¤upõÃm*f7^ëbν>S© ¿ýêY 5F*§ß¿1 ŠBæð-‰ÑAÝÊÖÝÐ@x¡°R ’l*öë+Î %²ÄËüBõ BgЖ"„|bðìÙÊ×µåÖû£ôáO³¶bKý ÆÀÔì‰v®‰2…¬º%βU°7Áì‘øo3r†8ž8ÓÅ`þ²á¡C¾gM,r\ËoW' OúÈ|GÄK ÔD‡´–‹ñôP<Ø\é`¡­Ì{£]ý'wq )K¼r~ü±§·´'ÑNŸn=ÙžS.«*seY×Ý,,É“pC˜7®ˆÙwKÜé¢ôöÕšjåäá`ç‚XÁkq§3öi¤²NÔ¬2îQBÅ”àWJ~:ëfŸ<`,PÉÁµô2Ž‚ æ¨!/‡‰Šibw’q™Ü\vOš³o“xËa Ô½ñÏÄ3el6Š8 Öâ…ÆdgÝ靏Р:ÿ̶ríâ­HÎOhÖZåÊUÛË]YûvKC*»Úÿ>üè<Z/Àblóƒªâ{‘¤˜mÕ™HlòLQ’MhÊ)àcX?C ù -›«ªö¹ËEl- ùªßdm îÏt¾4¹xKÚ: i§ Wƒ½hw‚ÇØU ¸! .wò}™Õg1+ 4ŠæÈÉós°Ú <íG‡Wìqlàñþ…”³mœ‰‚¼üµ šäéT:Í&Še¨hB#nˆdÃW.ÁÔš ƒª‚,F‚É4i/»9ÆsßãÖ¿àŽ‚‘Èég÷Ä6*ª©Ž?¤EkÌôBµçG”0t@òü(Ï?M˜ãTùOÇ!v ±Qæ€ét:ólÝ)¡^¡ýäÛÀž‚ìv}ŠòÓh}Ød‘Ò0䆱rlb‚ë~—9Q‡ÿÆÒ0+Ïý=Öɨr1Q:XT%fz}5Aò0~*½÷|-ÎÊïpgêCêvhCSÊ(p%}{NbQÇiÊ©  ¿©šå/ë+k_›qù€ ¸ŸåšbÞ/·á D9ìR—g"þú ´›n=¬—y`vXwzbÃK õ›ßÆMeÃ+PàÚwÖq%£[ÖñÔÏÏ<éõ³ âÒ1NQXt Åô¬ú½n§LBM¨ÿÅ" Äox ~ª¦Ê;%Ò-wáBÚÛ+±C×ÀˆçËw¹Á‰»vÊ!ë=®4•¤Jo>ø}hw‡½qÅž›u"fHë–ž¶ŠˆØ-Q²zåÌG(Ãûüû%@Uå™¶Â)wâ«´ŽµÿøÅÙÜÓ³dè`Èd®ýÓþ|œèÙU :ÛÑÓ»ò™@Ã!‰b˜&ÁÊ·tdœY¸`ëzpáÞÏCJø )ÛÅ‹ØñßÚeßzJ€.ÔÊ:ù­»ü±‡ @˜=€ÑÅTÝ˜é´ØÞ ¼° K/úÁŽDÑÇû{–™«’M;"T¢˜\»üIö8vb?ˆ…õÍ+Kö¢_,6݆ZM£49i^jà4Ñ/äC.(fÿ|ϱlÉZ#PAy{(ô&D˾Ðú1&bxØïО:"ð1øò@Sr¸ °pÊD þŒö›Eµ'»€¼…÷UÐtA{ÌJPT‚†Õ!ñ{“Yê…9 ²Xa¾S!k¼Ìh&šË»ØšU®!P˜§¸çË»>Bá†|øÿé Ü7±gwsŽ¡›vuýƒ¡Ü¹BÛš‡|hm5Zn<üúûtÞÔ"Q˜Z|Íß0\£Çž÷zZò—ÎZh3°Ïœw@&ÿŽŽKŒáGg¸ü6P–€žóàÿ¿Qá‰7¹Œù·ÑÙºwòlusàèevÌÄHýÎÊ¡µB„ž?†²}á_…8'XOZât¤îîçÈ VI¹Û›õ¯F-_%á%@öø%€.~À°E†µÿ ÉnÃ\EÈ[Þ™Óz.žâV‡d%Ž÷¢Þ ìêŸ|åžÊó§_¨±øâºˆ4Γ™ `Ùl_ý¿ªãÇΓAîß+rÜHE²Èç²×Õï45(9òB‚§eó|"ìýÄCUm8ÿÏÁlêêòþªwH_1Aª MD<çDæ¾Üß@U}%coªYM5~níû 4jÇ…üJ)û~k=¢Ÿåsì/È…"i­ONšƒµç!ú4  æ^ÍX,8mß×Ffn°ÿ<ª»TA¸‡™X<ŽWE‹±s$•C› ÄûS@‹P¼ùXÕàôDu)ù4‹qqI¾Õ9S¦‘íK¢Ü:õ=E– %û-BiåÅÔÊ…-w©)³ñY+ìöðð¦F2OÓd…Ü?Ý|GÑ£é“q?ì:Ѳ¬¦Y·áù¥º!vij-z˜u×G ƒ £aÇRi±¼KVÚZ^û“,åXGüfVYr-¦sýY9my w¬¼xü°¿ôRæÝ*Våí0VÃôìªZ`íZè;¯ùì¡ëWèélÁG€Ãåô&"wìÄ“/o£Ä3‹:øÈ™²JµS|WUé¶gw̱¨EêVLc=‰‰3Úv Tùå-OùáˆÅüÌ`7[ ñŒ¶þ!ÐC¸„jfâ苘9*ÿÚOWX¯%šJ¿¢àÓÂWÉáRj¿_ÄëËP.mxhJw®ª‰ø½YYÉÕà¨ö_ZØDŠëúû.oµ¯Ã—™LL.+ñöÏÉ𩣜Ù?är6x‡EdlcAÑÍâüÍ03q3 Îû\·¦÷ñEÈxÔ÷ÚèÑYseg$PìµDU §yÇ&ý/v1áÄæ{;½†Õ‹¦ðš?sW&7å4Vëü4SREßÓƒ`rm£T4¹à¾iØ>š?=\éBƒ*Pm†;ÙÓ¹[(¨a$6;2³|nÙ±'À˜AúLÞs´  W–ò×$EŸyVÚlz]¤«º¦V@¼‹ž ;òïìOv×Çî2Ž•ºÄ¨6eÙÎæ=V¿Kñq‹-Ä#së¨qC³?b¥*oŒùÀüLãã¶ðaØÛ¯z±cé¤ÃpLUWï \º`}2â,ö¦ùèb·Æï?7dÛ˜8 Ì…-„‹JÏqSδ@DeÚ­bÊ€N¬¾i(L Y“ºüx̵4w˜˜y-¬qU^9!‘ꎦ¨BˆgÔ6`íÛœ‘rf(ä!E.5b>b^—7JÅ|b®öÉæc ®~dÀùk-Ä ÊÚ !¦fóÓôQ¥vÛ7æ;àÒœƒÌÄ‘Rý„mbJŠŠWøƒ/‹¨ŸÖb£…ÂSÒxŠ£Jøf“c÷ŒÃ4¿52¹Í®QÚVà2íb 9ã¥ß3)¾6Ï@JÅS×VÚt yÂÿküLïiÜ+.Ÿ/•É« ᨲV5aà[ [4Ñtø»¬;c•7ˆÞð÷?µO2es Œ¼”WÃb;’¡¶³ãq$™â[H*كߡ´»j¹†V8q肦ü¢¹‘Î2±yÍ‹ë™òâ¥ã2µë—UöÝß8;P¿4†QЧ÷vfÒb nƒŒÂE¹¶Ô=VÆåò‚êæ•ŒënÄ›·ÛÿO§ÙåÇàØ¦Ð6¼ãPêã¡ÁÁλÀ*†¤…z—e÷ªr(ß1תNJM»He~Ê&æX¸kfkgØí"h²¨;üL¨^œ Û1Eažn\cÀBæcÆGLÇUë»W}‰It¤rššÆiKW³¾$F)3q½ØŸ£m)æâPÅ̬ó…ÿS1O`ñM¦ Å5(fÄ^ºÃ8â‰ÞN䀿já†+9xCEÐTÀ ïäÕVý7²RÓ+° XÓ^a­OÉ#–ý5?jðS©|àô@¶¡,Þl„cÌ‹ žB%Ø^±)/þ2 GXŒî“mR}<ÂTÜž¸tòÜu˜ˆ¢’™‹2ºg1UP])\óuIþ𩽠#‹‡×t×PaÿbT~ǤüMZÖÙ™ÔâäË"˜¸3œÏH™r󦢽TWE,@Ú;ZJ ÍãÌ%lº¡´¡ÇFWVèº9œ o€¤ø¾™á-q+ã%Ãl¬Ùã ¼èHô˜˜s-®„y)ìÈ÷3÷õ`䂘§ƒ&Í —p2Ý{”Á§þG†ßLîB@½Ó »Rp©+L†Žú‡ßU¼î\zªðù÷¸xª¯™’¸0ΪJ:ãÐ3[n(Qß¾ϳs†mŸô ë¿rNŠBGÐç‹fw<ÜÇJ£ÃÝOcÌŽüIõkÛk|·}´Ç>fÏ¢N0Ýs Šá¡ÅäE8Sê{’·ªy§÷mïZüãos&§»&åO.¨’з±S/¦þõáÏhy"ëóiiZ9~ R¾î¦{ƒÎþ«'¦ÿ–N-av©î&¼ òߎwï ¿®hï@J-Œš$xöσpL×¾Kêß0ÉX.–c)íëèÝ9¾Ë1¢…„ŽRhªúh½™ÐMà‘W\Ê^OÙyü0&Ô Çæ”¶g¸ð [´´¥ªÃÍÓ¿X«å¾5×j6ñ'Kÿç^¹ÕèüMbËé÷:2ïåÊieoˆ¾äË qµ:‰éöxhu’ š¡Aù=R+°²ž¼4 $9ÿk7#M° ƒÒWòN;C´–¢Ö8ОL3A„“gòwY{gjC.H%š@{HЇqDyè(t¸âÍ(ªráïF¥À@t hš§ ÛV-c¡pqË„hIuåÛÛ±‚dM’;ëáß›Ã-WSZÿ¹ýKÅÙÅÄ­s §|PLk¤}«— =g‘ˆ×6m¥ÎµLykôºçѲÎì’ï'I† "å¶sçq† ß­Ç#¯kQ5Þ?wj&EP¤T×Ì üIóZžo¥A\è³™Qb©i•6k‘ŸŒR[Ñus#½A†fh ‡(’x.íÖ¯t—x¦œ¸:®%e®pïyŠŒB0k, ’Ú·“/¡ÍŠXBIêRäbÛ%ýÁ. ¾!#Êâ+ðX…¥o$3¥™úB2œ'4Ó¯ZíÔ–ü,Rcœ²/%˜¨È滄,@¼Ú]nwÑæûÍá¾!ˆ†gsÓr¾ƒÝE³Ã;ª°£ \;„0±Jà LFîÖt3àÂ#”©¾Ã„\î†1–÷ââˆ3¸ýV¸5¶z£³¡›ìÐTÏ “Þð¶\ÔMÄŸŽšê:†ùüLï ŽažµF È‚ §Cˆ_¶ zÖH¾ËKW×áÃf‚ ñÏèCá¤Ïw*¾â+ˆNu^˜Q€(°s•‡X–ÚÍ': #}—G_ soðvš²SÉ(õKÇS$ìÇŠ_²E„3ƒlÀÌœm›FJâ°…s@ät ä¾Þ#n4Æ£áe£•g… Ê9¤¯$¨úrÒké&w¼á-¼§¢My-ÜkL'PÏÛâšbOøç‚C9MÛ¥9B‘‰a`^ r¯Ü–Îw§bÛö_5vöÜ ~¿Êî¢äQEhªH¡'D¦¢¡­äÌì+F ’®ÐJfסLĈ{Þ•UkO}™¾."XS†ø×qRj4ü6kÓqä@è÷•_!¿]ºÓ:qâwËdÄѯo« 1l¨©5$¿â}JŽ—î¬Sø1a)`¢ýÊn¹K‹Ð"úë¢_,˜ôî4kd·òV=™ß²[U±˜2ÕØM?cÿÉA¼ß‹`IkÄŽpÅH¡²kãð±ÐiW¨Iû6O-‘Q܉lù~³ê ]]>ßC)•—P}ý¤.Vg*!Sl œÜa÷Ok«ŸmÎýbÙKbOvœ»vç3!:ܤÔÞœª|¼¡-¦&JLUAž³.k5RŦ¡8Ò®§g¤é© ê¬ùüîÀ{®l²ætû< Ùñzýûâ@di!𘘒¢ˆáã%U0¢LFŽ@úsë@xK&?²T …ºg6Uä$ÜZb2¼õàˆGr|½Tf”Väg½Rγbµ;LzmÛbo‘N¼ÕësÍ7P‡QôŸ¯6"_®nv[³K\¿›{…3Ö9ÓViÈ®¡¯¶ß‹ègQà~݉08°9QW[ê5Ò· EÛך@¤‹Ôh/ð> ÒqJÙõ&ITze¤S·Ùg„{^¬Áþ’K°]‚î"¯3×üIöÄ·lŠ+ÆÑÊŽ÷ Å›çrêˆ×ávÓí„)sbo:Ú6«Etî¶x,{rlžòIœö™ÙéeeÚ€|ÇîêþÕ2Q.ê)¢ï®øéÏGYZƒîÍ ‘û ðsÞZƒ¦ë®ñèØ|ÊRþŒ215˜.*é˜ h!ÚrW 1Íb¼H1ÿf,¸ÚZÙ8 Tùšlzv¿äJ-xóš†Â{Ô©©W$4ÀÐ,£ŒD¬.?×ß\µ6"î4e`m"@]}3F ×Ýâ%"æ¼ä2@N9'ËzH¯¡Vúü0òzçù=jDÐèNµm÷55ÅÈL·Ëu˜—"ó-+íì\‚'Šƒ<ô~£Æ¼Y¦¹|›–Šf|­¢Líx’݆ò2[ý%3©10>RœöxzœlŸ ÿg›ë1ÔÀR:#™¶§"îŸ=¼Üa¿©>Žb¯¬«²;Ý\éGN^sé™÷·\ÄL86Ê7Õð:š°Í WÓã÷ò¨(á‹økIi²ä‰³žqž½;“‰w°²/¢?d‚×~ùߛ;u¨¦©ø(,7lBÖ¿$éDSkëŠ(QaUe²êçIgnÿü|®m»ž“Aœ`“¥cš (ô.Ô.ŒÒņÁL´ NW \&>¼z ŠN] zØétM‹bõï›Ö”]”?—2"tè¿Ûí;¿ô&nËãTѬìê•‚° ÕˆÍQÙZí³ß{Û,â•ß“)ínßHÐ!¬Læ€ëa ј‚C2åSÈ® õmßÙ1Ÿ5 _ŒUZú›óh:Óˆ¥ r»?îB²Ì%j[h–êçñ6ZîÔ7Ogµ6ê°˜Ô•àbGÇÁóá{Dµ{ÂÎQÄG\W¨¨<| ¨Z˜ãì6ÎZêÞûILjñº(î= ´}NWá¾ÎÞåüNJ„ò\,2ÔåTÁ¤Z%ñû€‘õW-ËÎÈn9Î>3AgEMç ^èœ&÷ñÁ ¬n=.PÄ©Œ÷¦C·× k†è EÌF­îLFzi×Í™eQ¡W>_j¬Dn.ß(Iå¤W67Œ€lb[Ê .d…ôá ˆ}bËŸËÒ_mÜ}oÞÔu,s-n>ö­Ž¢»Ç9–% h4ÑŒ„Ottȃœ2ËûDZüIt£,¥{~¬®6? ‡™§d:3»"ج?¹î»ïøV4¡¯Y$5–¿C‡üŸ<Y“pb¡"ÑB]fÓ™e²rˆ±—¬I£jÏØ ©üš,*PNûâî’°Ú šsâÇ2Ñå03pA ¬J¦l[HÓŒP¤ãŸ÷^ g4 óiO ­ÙÛø—ùþ—`o˜"R@„½5 ubPL®¯Ú‚]”æaŠ—ëoa«R»)Ï""fcDâ”y7å® _Â],sãX~³š!^ ¶ÒAlOq¦¤zÉ‚œ]ª†\9üIõl‡ R«vÅØà÷/‰‘]“˜À¤fÏ¡E›Õiž¨g˜ŠqÄÎ /Aé7äf¦Ž˜ô½plæ³ ð¢WkD¤ØÂOÀÒ.¾Y#¨¹’M['tgELÛ©NøQJ"5´g\>Øä»¾ÁµÆ5^REeñÕ—:å1©ÜþŠ=ˆ-Uî1NñeÛè7£B™`d®8wî|=Ž6§€65"»ÌtðAìä-û¯ {òø­jjC¾‚~°–ùØëº´‡\«;Þ `„ž¡ÁgÝÅÌVVow«n•WkAqŽ­­¼›­²èü1ùçle^€ F Ô:và–coEõµ[uÍL Ò’Ú’äT1þòuÔ¨úÎöVMG#öh jTÐ &+q í 1«öÛ㯳’ïŒÖS+16È)_„Äï«Ð‰è¤›ÍûÞ 81ÙýŽÙŸoz*&;bĸÌšM°ýœµ¶/üo=u Šü?G`fÜUw(Ñ8u»8°ˆ¹v…r€[ËùOò߉Qþlt¶Eò ƒe‰ꇹ ýÍæÐ/r= ¯UÙr¶ë5¦@úîmð,sé·¶êdQôx{Ók÷¿ü1ƒ«î`;Å,('·½õ¿Æ¨æ r’QÓ)Ë«mKÝ¡^ÚÙüè¢[š A½Hßà+‚ï4FG³öPþècÄfA.8æ¹dÎfÛ7ŸJ=f;A8áu‰ŸîF—¡w‹TR¦j,¶9W£FúD‚> š}Ü`ÛHlýšÄˆÐAÉ4mýÝò‘”ؼ›ò—1GE©R=¹G…é¼jZR‹Êa€¨•É$š®j§:­±³×º/½ågõNá…UÊw|¾ç•ˆÚnýä§à]3 öq„c?¤i‰§MéÙëÄIÓ-üîÉŸTžå.c˜°†ŸÒí#FoÐ{šflÅ8Q–&ÌÐgìµD [ù·v§ º[[ªE`@é]€?f£8ÄY©¿ó·)‰9Œýÿ^Áš6ÆR¥Ðɦ‹N]ŸÆrÐÈÂZ¡°”ß;ªþØ4X°òK…¥,FošZ[>TŽÖƒøGíX“‚x¤µxÅS‘âëéf[aQ䤗d¶{ò­ú–ŽÐÕ@õ+Ž’I›«¤°OÑǵõ¡Dn~^š=gÁËÅí6Ò6klr_¹=f"w[н×dDñj2ö‘ô̹ßë·Û%U3æ’Ú–ñá Sàüî̇hâæÉŸ´Ø;Yè« Ü_#Ñôó{u ïýIýÄqiÃ$ €ÉÙŸ—‡4]•9½žcû©a™\{®øâRNN|4/'0e¨"m¶ £¨æòñ‡ Wÿ–]çV9[ºµNa¶UsÛ·þn‹Kc|ü‰4]Ÿ}ã¨DÂ<„­ÉY3™Xj£K .öFÎgäÔ M®ž”;/BüÙò;BÓöL’ÜØcÎ<;2Pè¹=8æ¯yñÉæŸôƒ\SºÝÒ„æòÇ»-ûÍä‚¿bF÷ø–yhX~›Áü0sÔüõ Á>¿ =­/¡†{3è4à@ƒƒûšI¿æÌ~˜’ï8Š™|À·Ÿæ›Pp ÈÑ´ ŽâM|ñ:>/·.'²°þ4á½õQh^ï£ó“R㊖‘Sœ¾EêXíMvÌC¹ù ÒÔ‼°çêj05™R¡MíÖ¡[À Åç·âh¡ýÍJ$çxɳץ%H. =š;S›|z ócV®Ÿ¿Dz'¦qŠõí´nj»Ø£oÆòœ~p’Á”&f…ÕïSÆ&¢/ùpVÊ. •HåÛm®SçJfkk^ÖdñTwô½ôv&åõ<g‡§ä’fëUˆ6Ÿ‡j†F (/æHl _ Vä)qͤk通ý(¾nŽþ6óËü’„Çä ¬Ï“Lb!pŽáz¥Œ].up€§µ€z£Uª õì n_!ÿÀůîíÛIßC@ 8¨õÉSV74úÛ‚Â}^é„Âä¹}ìôªý—Áïß®mÄÆïÓj€àw¦#øöïHWvéiµ\Câü/­P­j¼æ¨Â¼”âñ2Þ(S®}Öß9QÇO7qmá«­¸l†Wc»Ós„[§yÓ²š,Ò>jjÓ½kâz¸k ÷ÐF§Z7ƒ³4"áçK¼ Ž ñ²Ô̧–[¸_R7€)§ôÙ6™#þ­°÷ü}«¿_íÆ0ÓöYæ“dÄD²I¥¦šükYÑ /%^AÊxÚ`ëš­á7±.±Õ…­7?ÍÃq¡/g1£.U€–aº%û,€,%á*T#‚4ÍxäuññZU/si’dšÅr£6CçMè )ZÔÿü1 BtÚÞÙ“Lv§bŽõývÛaÁ1Ì¥¤àà#È-ê›êh #¤Àª3CÌ´é—Ö,ŠímLƒký»9Ëæeœ¤åÞ†ÜÛcN‹1¦Ÿß“À©!æ AjµA*™èŠ[}ö<ñí™×¤ßÊÍn· 2dù–QimOggSe¨ä­ƒk«8äèíìÿÿjãîöóìñóóëçëôÿÕ÷çùùø÷ÿÔõøîóëôÿÔúÞ×Úðûôëïúõõùÿ¹ïèæüÄag²Å·“’LDÃnoVІ*Á8#¤étÿqØñêµK9NuZÔûôí¦é °ƒyzoFÑwò&õPú,Ðhå.z8;~¿h…þ]6tÉó>(y5Ph@s܉û¹#jD0Ÿ ‘fž]“mâ×0ê~ ³£×ZÙóÀŸìsá;7óº/¶ ÜA2D]{S:V÷Ži´‘@ƒëõ¸¯“­÷8BTYƒP‚óôTÔÖ‘jà"ã®:W ¶[i«è‹U¸x±Lü꺕ã{%½7 $‹GV | ÄБ!üLçÕêæïdö"cîõ&Èt†©Üì%~ù9Ù~ a4Ž™Æ|9°U?Ÿ¬z,—ÉR&+Gpn?»ãpêßu€OÎ öÎü¸š“´kêr}3Lõ£¦S +B>‹ï&‡ ©“9Ôù[ÆvŸ¸MzLzFd§nßV“Œ æÞøŠÑ¥,A¦¢EJ†á`›+Ùõ¯¢¾L¼ÊUÎÉ'ŒP”7õBJÞ%÷5n;‰öG1D¡1ÖÝ‚™sk ƒð±u±h[‘Ð^ŨZ`)@{ñúDU®J±9ö ÐüI»2XÈü6»¹H»‰BFÌäQ¾ªËáêô­E@ýìþvï‰I\o_Ár¦:Ys‰××G±ä··:CÆ=PŽØãGÙÛ–Ñ$(u|_Ê”Úz6.B½èIÌo¨æ>æ¹+ÑAž@öR)Kwù°DÖЛI=d»›’.Myß\]`ìžX)cIŽ&Á?:ºڮݓ˜‘þÏ;mM´©^µîÜ6ûù Ù æÆ¸àíù&T#™3n4:½†´|¯:vQk²7<ÜiØzw|# 7f„§]Ò¯úi¦ºJ%Q–þG¨¸Áý@„Š@èëÐs_Ôn·üIàÒæqô½Õ~}Ì‹?×=ö²d_ñ¦u^Ë*ê<ÏúÃgÏzÕLöW–šñ¡_‰9P Š?×Xùúà„&hé‘ Ù áý.ŒMûe¦¬Û^¼sËi#j ÁL/lOÉCÙ<+Áöú<™KÚoüÄnò{æÂuZ§°OüF —a$ü©c¸‚’œ° de,~¦Y–ãHž äÛ¬¿ßî”§åOtcè6ðN©,`Àz»È[ûñI›|BÔZvt¿ù?•„†¼«Î>ïâüŠmã¼ï¦Û‰Âx¤ïÛõÄ36 òºg¸ü|®3R9'ý• _p“¨7JeiÌUÅÝcaÀé© à4~s%mÐ|81J×øC ̆=å4!á l!µ¡0‰9æ¬i¦N·ËP¡”8mCÃ%<ÝQÌ?ŠâF8ñÙ§|¤œu #f•|_wGX[µÍœiŽ˜Ÿ;ÄÇÛýwذì “ˆÚRzûcÓ9+.©Ä¼³xÉ“€°#ÝL¡üª¿OvpM_ køÄ"±lvÀ.QìW°áþ%« à|{Zc¤¤{buº|j÷ZíÞÞUa,Œ—d‚IïŃ^ÄÃD­ýψlmiC)LGÉ È™óú Úÿ®NtYªY¨ºúŒ½ŸµŽ9bª€çŒ,dz¥o×LfyÈEõ> >`X³I³=~ Žï'ôµàR¨ÂµxaVQžÂùÃyÿå†H|ÃÁÿš´Î«Ý·ŠèüY8wB¢Yàà®@uï3•bÜK ã•:A¡›Ý½±ë_3„RÁ/)Ë»™Nå.y.ð/j¦¤2[¾L¬eNƒ·ˆ¶vüŠb[ì‚,èžV1ï±.ø“t+h €Û¼‡ÊtO©§h µ½cX¬Yg²Vâ‹0z*ãù÷÷Ë^W4^9¸ºð9î’(òÊA°“f–¶·u;;´ˆ+›6#c(lÌ'v– ªÀú*]þc†|Á†fSIؼþsË,¨I—úfã)°«õˆk@Ø)q!_¬ÔFVi‰O·i!1dü©ó¦]¹á©œ Èº\"ùåêe®ë[MšÑÉÈIùa^6¤³·-¥õ?žË=AaAúç+ØÛoKþ¬W,/ŽËŠÌ‚˜ÑCÐB¤/4¿24`â{§õÉ$ŽéxŠÝú^ט}9‘¼ÒWÈ™=s^ÄôŸ ³‘¨GfÞ“(íÞß’ÿ¾D—Úé¾·-L9:Ê¢ ‡Ã/^K6’:%Êm>gùæóñ©'OôÊ#Ã5ÖJ­=îÀÄ6aÐxe›uúC·ª@ü/iE.ï*JCîüFój—ÚÌ_SË+ÚN›µ«HÏKývP.h,ue³ëQ†ºª½d¿eAó§@]8£F…«&{Öôè£'¯-Öæ#VKX®‚ÚXŒºGpüº†ûá²›*àÖ@T€œÈö½Z¨×·MÕ :f_²¸“qÉGH…·Ë“~­?Ì‹‹ òùɘÕZ*J`~zw†Nà 8¸à¡šVQþö9Ð ÔK·d¸}Õ…çYTþáýÀ ÏãÚ}_d\ÆQE‘Éï&=G:G*W®.Ä (U¦B2L|ï‡ e^Só!…oÌu„ $¾Ý]‘U]ÎÑ‘WUY«k—©^‡aòÑ7iáüW’ …§‚/L²zÑRÇñ¶fL|ø™D÷¨Ê³Ú?NÞUEÄ›†7©œ“óa/# ÉÐïo7XGH&þüL«L¬ãŠ@Åb~8[Ìýï¥Æ&&‚¯o±N”´M¥õ¯HÛom¼Æ½ÿ´|Mžÿ{† µÅµŒì·ªŒ¼]ril÷ +Ãêgk un¹[GîÀO/H´æ’Fj©j¸Ï£‚C‹æâ`Âëï’µòÐ2[¬7¯j´óWQ‰x„a6Ë22D¡¥„ᢩÀ|(ÌÓQ½ÄGç®`'iÅMfeövA„t›3Íá¡f¿Lb{úEÓÆð¬ô«É¤ø+?´!˧ž}d#F×:ð­ÁŽ q)Cre4Ï"b÷wj>'Ë•Œ¶‰¥$*Lºé@_rˬ®·üM{E’¾ r¾9è;fÁÕñé{¼í1±”ç®­=KÕ´ÕæŒöbœJÉõOÅʸ·HÔä|zl@ý8«T…tAZÞvÇë£[nÿ=ÉQCiiâýTx¢õŸÜ™v’<9|˜{©R”ïånŠ§Ò +¯Èͳ¾&Q ¤õw «Ïç'è«o¯ù9fŸv„é<ý- ÷„쬭U«z—òl6Óû¿úùÉbí¯xmb6}-0›XMÉzòñ’x½ÃVxû¶&=´]G<ÊóÜ6êÓCÈxóC ûv‘iÂ`o3®»°HØüÙ?%äýõ„µGýU–~‘¤SˆÓT'˜âPàPFp3SåùZ¦ÿçÍž×oÀ›òY$¼ô 1qK43I*cÕìë¼5‰dÏ/ìùȪÛ`m¨s;N‡*/ð8ÈõÎy¨áƒR"â¸ì(á~ ö¾O/ÙíeLô›F/Nghwƒ$JGLz¨³ñó;uWVÙzÅ ¼àk!éºww R‹4"q“¯Îz“3zƒ­q#î¼ÿAÔÔ#ìþFà…‚†ÉNÁeŠ­‰f…Ù_(ƒî¼›õîh1t˜<œgu´F)<úD¶LX–«réüLðÄ¥1z(ׇÚQ‹ëÑå>a …”»ßR¬šV÷¡ZDÑéó r©ä"Ô#1» ÞØŸ&²3üðâbtü m sf™NhjøÛ±Ò—bH¨ÃHÉh?«ÑÝÙù×C‚HbD¨©ÕC7+<õÃÁD–¿±ÿœÁMÖsyùÑ#mr‰S V ÍM˜Hdzè,°›‰E>Ù‰ÛÔ¤ ?Š˜!-Ù&w—ÚÓAQ0 ¦\ºÇç˜^ ÞÙ:.*ƒ—˜ y¤ÊÔÂçdºä°&p½ïœÀµÝmòJ,†Âm‹¨ ð³—2müL¸Ü·õÑ}bAΗ§je뮪ì q}Â)¡”d}ú-ç^ÆLûîý¤>–¤·îÀ±ÅŸîÙÛ«àä6ŠÎ1F×rËÚ¨’S>¾%°À×b‹+¾nEÙ6d‹%z³‹y\tÖÿ5/å î»'¨÷&¹»é{$Ÿm õ‹ ŧK[½• .{¦è´¶ ¶ŒÅôªñ&ª X‹™”)pã¨àÑvbÖ0n/‚uÉ|}܃Ķ7’N¯k7’ÏÅÙ­÷«¿«OÔJÍrÚØ“ͺ§¢#ßëÅŒ7F‘BuYî0«ê5—Hüß·3» ]ïRkÖ;Äh"鯣+òÉà%ri>#º*¤j&ùéÀ•Î:r&@¾ŠÆÏ•ô£’„«;V…X¿±ÆÜé¶ÙùŒ:o_àRX kô(y…!|’–ÁîíÈ3$~Dðb“rã©2ey‹ñŒ¹€U¯êG÷P&ç!†b•¬5ÈËÁIé`¸zŒ³×&x»çû´Ø$éÐtϵŽQ 5¬Dé2v:ÌwË3áÁ7SM?<:4Ü¡b‘ÜÅ”Q{æ¾Â«—¨dÈœ\nÔ#@ÏÇ‘G‘Aþ”eHó8v”ñÐÌÓ_µ3•>Õ%5 8|§j÷ýdf7M)¬WÄ·hea4†Ût—ã-ÊœL[:ý9Õ'xKNåOþsSå^˜Å¢Ý/õ`AVª‰C½-L“‰JBáN‹Tõº‹IN°ð3'Ã;€[ƒy3$ Š;ŒT›Lå¦<njô-t³€¡`én‘µgÓ» °6™öµÛã_Ù4ÅëÏ$3÷”ˆÑÂä:1A§ ò¥1fŽCÙ0È0ü´í$ˆŒPßàx±º T B oÖ±ƒ˜¶A!"3t—ŽÇLýÕjE®:oRæ‡äè)ã#µÞWîù‰ñüL´ýÍ» H 5Œ¿gOGçSãQÒRÌé`ZB †°Jï¼$vï—,Ž>¼z_™wïCÃZÆåǰºO:õ¬Ykiáµ) AkK ë|ÒÙ›¤Ïx¸1üjZÈwñî2”e~6A0̘vЉò—Q{ãÌÎÌkÛ”Š%>‹ò|Ÿµ-®äx¾žHúž´¼ìxRVòËéÈé x\¼8ÿ€šs[ÏÙÃ/uÁ9}XþhR-ÔzyFý§I>Ó×ÕÛVÄÃZsâ:{a‹zN’–›† µ€w²|' ôÈ „®çÚAPüÙǺVŸ¹úÞ ”ÔUk‡ºbJ¯Ø7<3B±Zó§­Š/=º®7pù ¯Ôý–ÂM¨­û®èµf’\ý‚YP÷%hÞÁh>(dtJL]S-]Ï&Ö&™Ñ7 (»®È:¢uO6:ùežÈ5¾jºróœlX„Lv¾ QÂW,4ÒL!#³y!ñ¾ˆ<ï ð^â$Õ†‹ë™T¸ªÖk)V?Û Äo«Ê€ŠA?AßzEër’¡äöîËÉtˆåzGâ7(”Ñ‚>fíì¯ SM(_¦kïKqEQR”9ðüÙÚŸgg¼.ðíMÓ5ÐŬ0b(Û‚š÷î£]џרÜÚoE26~¾ã1jVK“nnîÜÖdÍ^ É 1 _«ÄæzTášÆ6fí&N¡gŽQáÙÒ‡å3"+‚®‘KŠèÕßSUì¯2„¸¯®á’1-4bŠ  ¢Øº‘Nõäá˦­%² &&ò?Y·Ëå1÷ú³G¥j{[S2¾þ#厔áY–¦Ã€×F,ÿŒ˜µ´R¨RH½!#)‡Ò‘:›zñ—;Î㣦u4¹‰ãØ­ŸMõã¡ ‘{ÜX¡)=Uº`@ƒ#3£Àaœ?Vr¡êsï Jyêü2jftrKÈùÀŠ,ù½üÈ("‡ô]Í» âT-¯d#ºÆ¼$NüÔu:îiO«òÝž$ï,˜ƒHž© ³A2¾ ^ÝcæÒ³ À›o|ba¥µâ‡´è|uvß% 9®?Ÿ3Èèx÷QÇôéêò¥åÀ]´$ø)ßå§C}ŸýÍ@p‡Û%Êuy ‡„lj£¹±>Åm¢QRü ó!ÌFÈ´ôZëüß·J[0ÅÿiY?…eìâ"i^VÓ¾Ô ·ç¦É¶ƒ­ç¤:·c =×˼h˜º·w°è+žô„œf4 3xˆáÆMúÕQÀU/jÄ(ûó‹œÞ'à4pM‡¼ÑçT )¿IlBb/(]®¿œ˜°Ç‘O¦æÂ¸ëmôV£êƒØ™,L•¡؃Ú,Ó\VJº”tØ…¦Õß5ýå¹Ñ¥@7–8B`$$:èRÁ-iR «Àãïù8ü%ðƒd98¹‘«íó0Ï*Zeëò$/Áׯþ¤AsÒ,Rp›é8Éûû^ÁšþâPÔÊ8Á(8 á¯ÜKP2:éÒ‹­üØ‘.­ùªº§U蚟%B|“mš‹×ÏšU!ÀÀŸ]äS`%»e¢Œ,ûŠ¿Ò1åî%k긼è•qJ†ò½Ò²9J» ÿk=Zqâ/â†%õΗ$hpÚÁƒïõaö@=Þmx'ä:îI²¹ÆÞr’«á=$‡ð§¦Îä1¤6N!ÅþÛ=ëÂ2`´¶8“û‘6˜¬í(½M¯Ô‚e}_ðŸâQ—VX…dòC!h¨]z·û“5šJq¶÷äyõäžÀì³ï¤X#Ï+ù)¸U ¼mÀ*w&6CšAîäï@“k·W¥ZÂ|ç¢çüÛ}Ã[Õb×€;{¦«?»wÉ/°ÐÜôþý(–*¨Q—ª9tf ã[í¬|Y÷Oú2U¤ƒ#yôúÀ#àÄV!["*[ÿ õ€Î'm¸ná|‘žÙk˜£µ”O¼B‰JÆ…(Õ’P§‡mKÛf7tH£ñ€X.)ʨssÕKqv½1í>ZÉ }^…Xt<ÈiˆðTðo"ÀÅd ‘Ú˜à?c •©eÏÜ­yáÖÆÁ†H1á—Í…òÚNuOLº©ÏCR´Ë6;â®)LÅæûP‹¨(›Ç¾¨Â²?¨ÊêüL¬ RÙ×ÿ”ÁÄUõŒSùõ!>QêÎ0öÙ,^§}~˼¸|¥ë²¾GëcÝ€û¾­rŸ?J= 2sé_.:ÝÈKý6N¬±ÚLz¿Žã®\øT|ádz6lŒ#ºøÂ^/dì§…öMª›ìnî¹"Ô®²oƒ¢!=gLÃdF©q"¿ª€ÓXfP:ËèxÚžø‘_‹[ÏÈTyÉãôæ©”á'ÓÖ[O}®$W©µñšdòÚ$ÙfãßÏ-«èà —xÇÉ]Žà+üO3}¿8ÑÅ„@¢½‰5ª¢³²Yߥ4²ë³ÀÙ®ûb,ûÎíyž`—U=–N6:T0x+âûXW¾øJÁÆŸ%ZÞ'X´•ö§ìn¶ù¢¿E§{U8.£– `j"*½ÙÔP;uÎãEþ"Qýªœ´¬ž©k­cZûDaÙÌ]¾%DOxÖ›k]—ŠûüLïKµUlÆ íß}[‚NJIwJêî_V²oŽ'Èål½õT'ZQiœ]öSTøhÜ Ö®…l†}ò£[ö¯­ë¤yãhâkøïØÔ_QQkQòò‘.+ӃǞØvä6¯†Ô–qKq²L©©¨ä5ø…ý¤ðΩu øG»„)ËFUÀKÁQ6·V›üà7øØÆÍóUë«J-ôÓ@U¢ë Oú6NtÁØ~Å7£³JGÊçŒ ïè±ãAääQîM%h› U©6ŒP¸t‡+ôSt0ý¼7~x⤊ˆÎ¹ý’–QËü|®uÄÚå}ª¡áB85v š~TÞÚÛpYq«âNág¶xLÓRýj›,J”, TØG.œ`ŸðÞ?}ôz6îæ 5ß’´;þ5sWÜÇ@I=çâ4Yß[8-iÛzãEÒaœém7RÙkkßês£1<°[#À”½&]¸úJôÔÈ*3 1lÊh0'ÇÒµ ZX_UìËVQ@& Ázå=m CI”©£dË D§ÅBOL°Æ}i_ R´¥$DlpQAŽöIsÓWó¤s§aLŸ³óQ¯žý=“ìt3Q6ñ<7R;ç'å´kÐ&Sœoª/AÌŸ«ààN–¢!X>†”8wé«Y¹¡^o|7Úv×+ ”(°Ø$šCõ#üø‡dÇ!Z8"E©Ä¢K”Ê$Žl›˜ù@U$x#ÆRôØ5´»ýܶà*Ã*üÜÒÁ£ö³=“iÜ,Ubû=”Ÿ$NwåQ×Ôˆ•Ö4¾É¿*/â ·«îªSΡ¬‘¦\µtJl¬ëƒ.aj ¶ ŠðžŽéX]rÆI\YVÆËc¿î®¸ÿ0›xžùKª4³Ñ=è ¹NÚ üMý^&èô'lÑW !BŒ®Ëç21 œqo¸’õLiµA¾¥$¡3ÉvXšµ-“È9£lMù¥:5nº}Å­Û©izj§Ì™âi¿ƒTön’Z´™Ö°–˜?ñü rÌ6JE¾ŸzŸ˜›àÞÖËÆïEë¨1å ÂlgE ýë¾òOó BùÝž§” › Rû ;VŠÏLKhÇl£Ÿ`Ów.AQ.‚“­&›8¶¤—ÌÅ1¢FŸ›ñ ã°Õ_XÊülhzƒý¥‰ˆì=ACUÃ|™šÍ”….z¾o|qQQ@õkAÁÄ6§õüMZNcñR¿Ã˜»©5üª<“w¯s:ÏTlÑË Uœ—Ðiýé¬-ɉ|Èëè­©[Z1h&^yR»Ë°Æõéþp­ß–™Og’³8\:R&°É×Kª°?ft(7±¯l1½Ë)‚-RÑžâ}!ÚÎù­üÍ2ÔíJ1ª¶[e—Ü.Ôß x¾üLç,ðžÂy{½ †Õºiß¼j¸¶»©`¾´|ã|œök÷ŽðÑRkØÅÜ)¿’„/,r7ï©=¶·½Rwy§ÄF½w XQ õ39í“TŒ0†ý‹ÎŠ'”‘Ø"&fZ` ŒG¼UÅb˜™åðÚ:&à%6u±D2!¬Kÿo’¥ÉsI…3 u6‡É÷±ßVx¯+‹Ì!rOrôø|i‹û‚#.@ûF`Ô·„b÷uîS·MI G*S“ü£ý-I3é;ö2Tp¿ò°&ÚþÕˆšuüMX#jw¿'Ye‡ftËДa¦:IÇ_=ñ\å…B’ ³¼ïIç€PÅK–'Æ©³œ›ÁFQÜÌdo„!Ù(P 'ð~%Š c-B`?&™t¨Ö\µu\“Ãß[Äï°E ‰ÊêŒôçk’êÞÒ?A®ÒÝð‰-„*t8™Œ¶þRãò·w$t5qwYv 1nMôü‚ÆÝ”aÕÙ韹 ¨Ã au”Õø¾:Ú²·ì!ò¦™¸ºRù5Ãÿ°€ÞEÉVQ=ïÊ×·w?NÀ!,Ž•¯O¶üÛ{î&æ‚úõÂðÙ[ð6ð^vQÅŽ zUÒVb­”/æúù%o\×Ùá†{Ž’{â0Óÿ ªs7‚xŠ¢6”è5.À ¶¢Åë˜kb_“içÒMª©©@‚Å\:Ù53ñ•z»ˆíÕB:£œW¡¦_aè'x´ÊGçz·…uˆ–@¨¾1”)ì2ª¨öU”ºãÜ/Xô£¼Áp#Sô =u6ïãë ¶”V#¬?#¨òNÎÙG_Æö›¶tf1Û§*Â7$jÄ]®š;=NmQþ¹Ÿü¹Z(•ê?Þÿ'’T=zvê£,IéüMQT‘néΞ —¹{ÌÀé ®ÆwÖ݉ñ.z±²ËLF‚%²Ÿ[I*çGÏ(Ù 2ýúîdø ÃL‚¡{+xd{ O+oø=5Ãj:ÂÚtðOtl_nNVRúð È›šeªZJ²t˜¹ šúàÆÜohdò Bþª¼¢×.â¡ ¿9E«“ç)RÓ2Ç›z$çŸgfú0Œ!Â`r3ü-ðÂQU_^‰;‰êcÑÞ…! 6½Ÿ‹[q„ Œ.-'6ð#±1‘î/QOy A{¨eUTÞ̳éa-"ÎG¯)8 ÁFä—&%FŠÎ(üLòéäúú‰"ꂇ޹ùÒDöO~›M6 · B£ÓµD°Úú¢—š‹`;ª§!A’1¼Ñ |M†¥Š¾„«]ŠJ~C|MSÜ&Ç­4®úá¡#êšA÷Á”³0û{&ý-ï ä"¶Ñ¼·ÑÏÁãZƸšÕ9]ôßò)ÛiV’Ôœ¶„aՌрhqÞ*ÊqPËÙ v%ÂaäMd=,êpÊ:/Ðp?Ï–,Kp‰KÍ×­ï“yʰéÒ7^b¾á[Þ@ 3pÚÿ•qp-ÓROd^ô‘ [ гó?­¦Ä+¡Ží BÔTüM}¸Fl?õxÏdÿ‘ú¢öqÝLzë†Èă¸ŸÁ ÏfzˆÔ§'’#ÐÀpD²ÿŽÃ†ÍWÛ{‚V¸å‚IlNúƒ0[ge©\P)4ÊPˆmh$–ÚÏ[›Ú>‰£®×*gn¬“ž¿5ó£CÚX-²eÐØ_Ã¿Ô ÖÊi9HœÈj€…‡ïü_]zW¤¥—U2|ûKõ¡ájJõO£Pëùõ [3Ø{oÕÜ­ëïÝ=¢!ÞzðC*?ÅüCQm­†» >c®´@–™-@L#S/|2IϦûe6²v÷ToÁÄü |Haj¯-Ï*ýòÆt¨Î¹â¬#1ÖûŸîÿ€/l½ùbÅ“ÐÈÄ…Ð\dz>0jÛÕiwŽ_U=µËÕ†Ñ]Ò:8”2¢’tVܦʭlõº³uïëa —×ß F2 3‚7ï7Mºkמ›È1P ß1¨¦Ób ™ÜU2„AßøJ¢5¤„ùS¡Ì;Tdwjñ_±¿_`¹m… GJ|& ­# Á¼Ýª}Yírq„¿‡´9›}à1 G%yGÇxë)vÍnJœmd¢ªÒì8œODuZë¿Ôî}²‰À×”#K6ÊÙ’é—(%ÇlâØxÃS§•3Ã8«ó½Úôø§©‰s´1¦^ü§îë:Mð_Ôw°c ØXŒUBÖ¹ž¤x&<™çUb1sQ> "zÖϬ{4Û€gÜ¡®#À–â3WÛ[n·µ7°0¸[Š—©rÜŸò*³VâH/ílGòAš•¨p«JvÔ=m€{ŒçWrÙgBwºƒ™ïÇÄDJ'¿Y*+­ºr ë‰`B(Øíá%üÆbÀ#˜‘B&Fx1ñ ; S„ 'Ý !qì¹./£X‡5£fŒ­NÓè¥^é+ÜäSIñŒw~ˆ /ehAÀÉüû’F¿H|å8Z4”¢L«ëUj•ÇE,+d##ÜÒü¦W TXט²’Ð?µ='Õ{ú¼?Àq–§Í˜ßD¼æ!÷jžƒÀ*µLÄ|ä’£Ó'(sÙÊäöعìjì‡_O_\õ±•ž7¦9.޾Ybúß§€¾B¾qlÙ‹LzÁÄ}"âuôe7ˆ‘æØ1‹¥fâÔµ‰Ö|¶F×”Æã ùÌIÝ)–gcÓ°°™Ã‡˜?UÜ? ëÜ!tTéÄ@AhíÃÒgôœ–ü2õÏmÑÚý}HmÅ7b¬­$ü{=hÓµ Õ˽^¡üåßÈâö5ŒI‡µé™yšæÐ(_m‹_%›Ý’é]¢ì•Õ«ãzàžÚ"Cù¿<‚Û#–å@­¤cÙ¶`æF¯Îñ+üA¼m‚ÁŒ% oƒÍ‘Ïo[fM‰ÓÁŠ8qæ a¸âB¬®ëã%ð©éÑ9ü+}tüUÚœþèL9ÓbzæêI!ù½µ"ú„ÍšÓêÙ~è £«—ÏS\ႸPgSzÚßš»e*G§Xò,DY[3èžxV—¤[W.käî •ð‹ÊîÔ.ÜþЇ6$oUô­°E®@TΕëœòøM„JÙªDmõöwæ}pŽ]³™*y¯ËNN_÷4Ë?4V¾ãïË3äï¾~‰nZÀAXü2ëq|˜ž•ÑzÛ=X±òjÌVwšË¨+‹¢‰¦'äÆåC¨+î1K/œ“áv¦^òd„±–#(Ž•íÝâÞw!Y*³¬eÿÔä.è)hÁü2Æ·(ßq܉•6ÀBèÍíØnàíÆ¯f8Áæñó¤p©üVµó˜×b…×Q1³ÏEä¹i Sƒfx·'ö%²«³ÐÒÏ_­NE]O°6^rù¢MK….µ]vøÿàøméµYÜ«&äýõºµ:ñ•wóEÖpk öý˜Ëà %%ÁzšH-kXf¦ÐDNªøìõQÓA¨ÕG¥*IÆßQ&‡ƒHªDG ü?ïÉÝúFõ~—a­©:ULEjr¨€B‰ñOht fÇ(÷)ˆltObd•Ñö5’IgÅbÅ"¿P8å©=ÃDÝ,c› O³ÎB3¨òc/y¯½ÓÂoË­€ÿ ªÃüN;Z©óÊ_Û¹¦õBÇ´§ÇæN_ }{*$!®”»Ú£ŽX4êz^V›è>÷±cŠ:Ð%ÈUH wlÜí±"Ä@Wm'å[¼‘÷á>i×RelfD¬UU˜¦7“¤4ï€+P¾´öÖ~éþq™,Y™èÿ¡,¬M_@FGóMè*U[»"™‹ì«Øm¡Ó9À[ªÇjrÇi ³2–ŶcWÌîÞ«º:þP^SÂvïZ¤6˜VL^>‹6}ÁçÅ»w…èH%U3è”Þ¸Ï"z2úï§ !ð|²Þc­-ÞEpÚüL³ÓýijAÁëöR¢qMÃíò±º(]ŸSÁK°fæ-Ñ?±úúóÈ!˜¬ M¿1hsJ!aÆø9Ål̙ЙM³§j `¨¥S-XðO'_ÏŒç,5x„Š÷­=\Õ»YJ¬‹®iÓ¯.>ö.{]ËTžçHt(­zWÙ"¾KÖ  h0È$ws ° Qs3 °ÄÇ®oeîL,I®œ4î”—)j3óÈy_ñø.B²>zku!–†ª«B_H•g¢'©61!…H` çi—D½º¸±Æ×L$eÊÝvÜ×ëhÖz‘çOggS€ ¨äZÊY;îñèÿ¾ëöðìëêÿØæóïñóõÿYÿ9íôíîÿÿØîñöîíåÿÐÛíþ÷øïÿÙÿ*ÝÕÐÝÖÓÓÕÓÚü570S¹_à5ØñØ67‹žRÆ‘Xª1 ôÉ”¸½¯c=áÎuœ0*:­ÁP_ä‹A“ùŠÑþïùSXúdlê3åPáñ&žÔ?™Ç˜ü¢q2ƒ6Äҥъ]I^ýI ®4r…Ì:ò/ò÷“~Ùãñ™¤œ=-p)ßR*ù»oË7æ|cî×¢§‡uáriFÉ«J1°ü&¢wü±4p!Hb$Àãåз"¨¯rxþ…ÑOãsÓ~ÿáF… 1œ¨;b¡!BlŠÏâ*{ÙÙ£Žâر٣dä’Þ?»qfF,ØwOÌüÆkÀF#Ô{~ÃÆHle›b¡ä~$HÚ+µ¡û™F~@ëüT):”CáTšWt–SdMDŠüÚd“!‹_ÛºÍyŸ®³½ÍÍ*½¹ÍÕ5V<²R×G¬©âÙ %I`xà 1WLr/<‚‰ÖA’’cÝØE%xèÈ;,ÙûG‘2<îW Lï×ÈœvµÆÆ6Ðê²JNÎ,!Ùö ‘zNZ#E-aj­½úŸz¯O¾w¿/!ÕàW"§"¼@¶{øõºxÛ¥{øÛ\KøšAäÞéÙvn‰cc´I?cúë¸+ÛÝG ^ †]|¤üLòé .¶–lZ‰. 3eÃB­Û» ‚?ß…­üíÃéf‡øú‹o[Üý5ÙÊ¥FïÏî7µ·0€±ãRq?´a¶R´mm¸0æ.õ!*ŽÅõhoKË»M‡6áöîëǦRÃÏð ë'd"·ï(p®ü6_°c鑃#u:ÛÚ6ñSÈÌYu´)^m™3ÑÆycÚ6Þ¼°‡‹ó?Þò™Gœ OÔïf“ŽÀAœâæÅÖÊõb=Y”>íËdj«ÂÒµBÈïéÚœ^ž\ŒÓ¸ÒAÌËvÅÂ&Àå¾ù}\´`Iü|ž 0Ñךtê³Ô—L-ƒñkû#*ÃëÄòñ„EÛ~æÂÆé«Nè˜7}³íÓ}Bª×»(\ÉßOC`¸èÚ“aDd3}„<ÌsZ}‘þš4Û?½Úwä2O¿¤„BÃè%¾iÁk 20¤ …$‘ÉND°{ÀÌY#6S†a{ÿ†öRôƒoÇhǹrnà‰sûzÁ6J0V­Jn#²@ß…*h-Hšðlì×èÉau.&¬ò!ÇÏ+r¥ÓìõÊJ†?ÖJ”ìq•l”ÿeJŒ4 Í<îË”û­éM0°v£é…ç`Nåfâ K|;Þ‚×Ö&K©ù[‰ÕÜãü¤©ÚMLà±C㢿\+’[¼Ñœmð'¹»('†|?ðršYü|Kà–M¹Òæ È»3$Î ñ§»MîÑ´Àapãû@’õ¶V˜Y…áÐw‘ÎaT 8þ‡»CÖåÞ´§­Ô÷ÔÈlo_pcY=6–ðŸóR_c?vÜêÚ‹c¼,}÷7zÚë/vÉÕ‹{ºhQceÅ>a·•RQ󘦊"/jÍ!\Æ{¯·^-.ù¯íõg(XT5üXÄ;‘[í$¦¥ÉŒ|uA!ÎZB$RÝ€X‚c$º#ï[&fåWŸ·‚•#]‹¹Þ?ö¹ué«LU[ ø&Paî›=/òФQÌ‘6éíIÈiØ$ó¿X’_Tß» ¨úxâL>0=l&F ösXOͱ ã˜Ô¼…•íËÿßÓOS”š³.{ãx„(d̾Šs/9}‰Hï íœz˜åvòLjÄŽ§îQßu! ïâÎá} ôp¼dL=ÜTžZ x»Š&Wú\ŒŒ¨s ´žBŸr*iUI5«ôþãìB (üMcq^ÌìM~U½J݇”™zb믖Z—»©\„Ng×@6Bœƒj̯‘kðQ<¡‘nU[±°CSÏ[ªÏ{ h ‡MT±”0ñF¢NfgQ’’ÔÙ2n—ó†7'Ò¦òÜUÇ&•Ùÿ’ÚU0¤¹fGI{CûRš](åÇsÜW×J“€5¢çh4Xÿ•ßÜANqh(™D‹`¸Ík´‡É=³;%/†n€²‹ Î2¯Gµ ¶ct§ØsëÎrSê•®™+ʹî|½³:Ñ-Ôßuï¼öߘ¿ÑßsIùôüL©¢ÇèµÉP¡5GÑßm†éuªü·}ÅÝŽïÐEuº¼XLKø½I±º†×œ"ÑØvíÉ/$*½¿gühǼOˉf“Õ|»xV6¼ôÚéà߇w]A@–"~‡'WÌö‡åš!ìépÈâèŽêÐ:iI|SJó/4NŸ^k@»lO¹åC›¹Uep úÁÈ€yàâ `è“3c^à«àƒä;´=Â,D$íoúŽ·uÄ7a©Ì¬·Êt†¼z¼¨×ã3.¢wBˆCëä)B.9#çð‡y™å”Řzð-rø>ùP<‡?š b£üÆd]·¹MñùÔïvwqµÞ·Ô.IbÌ…¨G‰U ;ˆö#•2®Q.‹“•¨Vç4Ð%Œéú×"Ø`’É‘öÆôµ§x´kP`Åkþd¢:x˜;“>V Kãd0Õéáz€Ñ™ocÎ$ý¥ÑÑ8 ‰±š€­1‹U‰#ž¸÷uÖ˜å;†·cžµ½ÙŠÖQ‚u™å"sZáÿ=_1Ææ¦¡óÑÐXs'%*–O‡©œ±7†ÊkKÊë“)ä0yÜÁÃjÞõÓè,×dùí8W™%¦”™…¹_ÐÝÚá©Ð®A%üÆ(` o: éÎk“[+ø<±8ÆE<$[ng õN›­¢´¿¹/·Y § êÕF¦A~÷3rLXÝ…Âì.%"¤/ æð¨ØÂF±5T¡áW<'†¬Þ$³( ¢Ä»ÅCmÞ÷8~:£ÜçÈäýêÞàûw2ÊÆJ¤Œ™ê°jø$ðýÍdyëlÓsdåbí_~d¾öß>áØ~ãJ»àxÈeö/Ž³Ý†scdÖzœvÏ+ê™®·ê]êºgªÝ†ÒË!e8ñœÓêÕÕ#aˆb€þ âo¡¼¶»Y§CÁ±þ’¤Ñ%üÃð5ƒuX{MAŽ+ÁnÒqC~| ÊÉ©ÜM4”nAìD †*Å¿ß WŒwh8®³°T‘ìQ\˜ É÷&)íVwºV½Ìús†\¸¶«OY!8De ºÿû®1*×ô `åyF@i“¯úôBõtJi=éÊšˆ tÚ"Tn ’¥Á*·¹/z3CM˜´XгOP@W4ué)4 T‹ÏB?Â4ä¸DÙ8»èsÉ}œÖ„'DNZ8ý Øæþ6¨ÕÓa¹Ñ:'TÆÓ …nËF=lyécö1’\ëÝ/ŽM%ü|­9¢Â”Ǫ´"Û±…þ(×~¤ þÿï¯ÏÅ•Êr§Š9œ¼Ä —®ÄÏX"ßbKn’Ÿ‡FÀ˜âÇ#Ëä¯LþÇ“W½G4º/·–ú}â Ç…ž~Âd•h „‚7£@g'Dpî»Ï s¡NÌ’sO̳§Éù¢ÿ'Âå±ÜêÿésJƒ²#Òûn”e %¿¼÷ib‡qJO€qdud+’h#›j¤˜µâr?el¾ :úÛ±URûNGj ["ªzÁösžfª•9é} uª§öH­#w2ùŸæšvÔ£F<1VÁ‹|ßË|Ö Ð5Á /š]ê¹E­'Rè|ÔmJ~·6€Mm‡ml†5É0:}{Ê4í¿PÓ&/Ö"®€!›BØ k¡¾Â}јä WZ~µ¯¹Çshy`ÔÖ|P´ŽnÙ¥|ñèEJPß_1]U„­õUŒê¦ÍgÅ[õµ·‘Cê¨üÕ€¹où 0¥BslÎÃc?þHpiÙž, ª€ÁŒ0´õ·õcÝÂö¸ÿNd¤lî'v註kÐE!ü—–øB\é,Ÿ*îbÎûê¨NC«ƒ_Œ$Ê[ŸP _‹•õ¨w“þ¤ýÜXÆ_@‰éVÃdèn‚µ (’I^kÏ&¦®âðÁbÀz›Bõ¹:R*ëÓ¤‘3O1z dé6Š”Ÿt'ôÉ‘wÆÇ-JGóHŠ˜Å®>\hº¡áiv_‚NîeËÖ”Œ,=Š(+$Í/j wÁ¾yM8¤Õ;&Ÿƒ—Uê”ÓiíüF±ÊÑÒ‰£«?¥Ù4þ0›ÖI¼OÔ>õ‚ب0œZj•ݯ0Zt[=6O½.鋃¨U¿‹æ÷ð.Œï=ÚDZHµO°W9',̤‰“@Ät©¦+Ÿ”6¬Õ½v¶ówßt¿ù­µþ›íÚÔ~ ›äËB[7× [xëªPñLQÿ¿›HßäÀ ‚?Á'W TÅ[¸^F"ÛƉ¼»O©ws œV¼•3­j¶sN\/—ÑSý”ú“ûöƧv¬/^TQ•¨†ql³ïÞ1Oñ7ߎ–ZüDxÑÀÁv|„§‘I±`üÆb¶|[)c¡q1„ ÏŠ›)^°@ ؼäÇ…¨ êηݞL&„ËEð»g÷Ú7I±'ã š ô*¶ÁŒ;æí•–£1aÌSèÒ>2aåŠc‚gñ@Æ2ÏøÕ¡‡Cd}‰ø~ß'5Çs›î‡õ×Êm (_f…Á¬t¿Þ58Õ‹TÆW­3¢eߨ©B±f‰ÚÈ™Ý;àÅý¶ŸYx…ÒìaÄL?Å•¾yG±ößìÿ/ÆŠT€ptöwf_äêV¬ixûPÔÞ K 0W’âMîL©Âþ®ézë‚ô´6Ôi»é)%üMPþz„%ÎR3Atnùסj™ƒD}¤ÚÔŸj­Z;uDfk³óN=Ç€Y„Ľò›-C=DZhshOsˆ—¾3¤Ã.¿ëå „o0“G a¥C|®ò‘hŒñx+œRÖf®gnœì\5ʽÏÌík:”Q¦e‰úïçÞ?)+âUªd(!P)˜l$ªðfrÔ\æßÖE{æ&ñç š(žRß)tñžSk´æû¼ÜTÒè3þ § ¶ –Û#òV‚«Ä(!k0G)ðPÑp´&mfßKÿïÜÐYÐ)”kYÈÓ¡üص…(ãt>_(.jŽ5½[‚ª*̤åT²­3r*NQú™$7öÞöÿ‰Jiø Yn{tõ”dªIÆåÌH‡µÂh¬ :(ÛCD[jëÁ€¥-[,Èö¾gîëBèfM§©‘@•‹ØjØ«r¤ž|=‰‹«0Fû®3R¢2↛ú3BÚÖ*Ÿ½6–‚rÃ0ç|·e)wl­ë‰5Zw¶ëT ¯IóM!­:p1tR€/ÊoŽ±Ð±£„0¨I&ô G¦¹f*céì¯W‡º±¬ôɧþ¯åK¢Ø¢ù—•lľ½³‹i¨îݽ’ìüÛ}NF×}>KZ)'"UÔ芪^g'éaÍ¥F'?/(’€Ç>ØÊŒ]vLÿeàì_>šõö$°\™x ®šð‡å·~¯Ëtü u$ÆøAÁu4U*U݃{ ‰(°&v‹ÂÌÒ¹Uh»roì5îé'rOóµ´[ÍPHyÓ}S  9Y—éSÃHLVμŠìü}aJ^Öu$ÚVÕº¼)fW>T6sÛ»©Ù”H)D Ó×&¬ˆÞÎÈèî¤ÅÉbzé-?Æ­Çô@×–‡.]ÁY)èê:.Z3Ô˜/c¹ðµŸK¦b>'s¸ùˆr6wa¡EÏej7l+«Ø.2*j^ŒÜ!Ê .ª÷]$îŠÂ8Õ’tR0Vò»*ïM ™A±ý‡1õ[Ïôº=+è+a²W ˆ=+!ÊOuYnÃ/µùÞGäæs¨Ò›|¿A³Ú|‡‡xÛ2 DòÅWØFö© Ý7”ÿSË;¬G0£êÃ>Åa¸‰šÔ K)ùzO}EÙøcÁæ´.©cÆpé}§G¤€Óq€ï†Ü„¯N_F³°‰ëÍz32òÔ ÆÿÒ¼l$úØë\y§‚ Èا;VV31D¯A!Ù;§ÿï¢è8ËEˆ¤Ääó9ÑqW”¯BÄãš5„Æ:%§޾ÛýùîK7u%ýÜI×°–ˆâüÎÔã•,„ÕP8L¹SÞð W(?¬¥Á2qÿÓ´å"NkSÂó~éÇÐ¥*Ô)Óþm¡rïÅËÇÆ+§q8õļ“ Ëõº·Z™²Ziz°~&J³MñÏOË­”ÓË HÁ¶ßËüµ¿üÛ¸z&Œä.àäŽ Å6rÙM¼ª_M'`fð\þ]¢…ºÛ(·JUѹ5(¦L¹ÓO'Ô¸Ö×–ð©®t/^;jºó‰Ìh¹W®³^cÿ¤I<¨æ}øëŽ=“t¤‚Áh»S GkŽƬÌëûò¦‚•‚¶¾zµkéÍëc|ßçí³ÂMnGjÎÑÙÑ Àh„Ì Ù¦§ÚIÞÉö#ÑÆ ܪ”¡dl¿õÌ%h_ExÄÍÖÆâò¼¡…tk…~gXõ.Øð㊶Íï³ë9L!ƒœGøUá%üÄ…bŒÖĪ<ÅE—8o0>™Ïïe5Ø1ü…h þoa®7hVøKÎgß6¦‹ÆœÍ2e6­…IÕ¥sÒÁbÖ“T¼'pÛ6(®¦zãŸodÅé‘ËfÃɱ\ná5P)ÊìLø|ò£Â®ð39±ÈŠø,¥ÄŽ‚W-Òl;WÛÐÄüŽfpø)ª\&ˆñE^Èú[J9«ÏMETh¬ë?ŽNuý2,W®ÛÈë `À @_/tD‹DïU.áIW|¨1ì«9-_é ÷€F—󆬅Р†ù:(ý:Áac‹=ŸvU7 ;{ýüû)Á®khq»*$½$ü{Ñ·0ªl¶x©¨¹k)íß=2ÉÚ1¡—éÝ«“%I£ô´Ëúë3ÿpm *ÀQ¬ÅãXJJ×0¨ NÃU¡ÒƒM›âàñÿ&ûTT•({#ühêîÆ¬Ï•ãˆnŠ‹cùÍDµã'К7ò¯|í†Á[aE&ˆ7æ·x[­`Þ Æ¥UÎuë6&[î¸ã}Å•½¤ùw.¿¹¶êð fF7ªWâïXS{iÜsÎJòj(íÀ <øƒˆ9óJªèˆàTJÕ€:­“ѳ‚öÒuÊtn˜µX Ý uí6½b%o€ýÞSÝ‹›m]ÙtÝ9WjÑÇ*]/´¢Aöî8ù|À½/Vþ$4‹$À„Õ&MÀV‡öèé:" :O²4k!­¼¥nfÞëЫL&ŽmDwN6ÚÏôݰ IVÆ=â2†i昮Šm¿ß‚Üu¹‚-NÎûp°°ÅÍF¦€Q›WQ¯«G+ÊŽa?tº[ {{µåèˆäBévæoËË æ5? õÖQø¤Õ8,ÕèÇá\G¸ê@ IßøÍ†r‘IëëüX·ð|ÕøÛÛÅiî™MD9-@jœÜëB£µ6äõ]/[É óÃË:Lž’§ñ`Ã/Ƀƒ¸¿E¢Œ"BqhlãìrñvKÔ§= a¤ÉãöEþ¶Þ™éýÐÊË^úÆÄ—à7ó¢%ÈwÆöÚ׬â}mÃ(™#À>ìÞŸßté´Œ•æ£1B¬ýœê–#8D6 ¿gYPßÙÅ>d“k‰Í õšAã䀮DWCŒŽ{?Z« ØÐIãÌ ³OHIkºEå¥RÎ%­©),—¿ˆS+hÈÓòŒÓÌs°Ûž4CÁ7ÄXñ¯'6lüL³œ-Š€~awé™»+`Oæ=½iur–ÞzÛ×!72Ì MŒmŠ[r(õÈ9׋ãj½u€IM¾øÏ7Ìóþ(ô:B+…‰¨sУòy†=9q%ëù™’RÑqM'Tþ$IJÞDf‘@|Z‘j˜7s^*.0xñsl¨ª”ÞAaKù(ƒAx¾ÒFKA#ÂB9B×å53‘v#4!ƾÍÝœA¿ ÈH‡:s‡læsÎÜý)–I4åøŸª'2VºˆÂG’”«%yXÖõ ¹!(¡\$ó F‘™— N¹ ¬Z·áq,<˜ecü±`÷,¶8¾êM´D5N¶š|9QèÙÜ}¯ âGŽt˜2ÓÕ÷Ç–ÏJ¸¶ãzBuä¥ŠÖø9# ½é¯ôà ª“#$Ò‡g ”6ìt ¨•Žit´KRÃe‘è*i˜²õZgŒ‹ä$ü¿"#Ëï(ãv´ÇÏÖîî`]lÐÀØlQѦ­ï8}ËZEQm¼ðûº>TY qqFÅ©?I«tA–ÿî“öO]ŸF(K ]káéd×€¦LJ÷sоH0U­VMãÂ}½ø.rg½†ç{] —;iÖÉHl™"«¼R=£Ä‰ü6^†Åf¸ww¬ÑžKœên0hæ©Üôü ê0]¡ì°÷-.uÙ¯ª£—ݹw¨q.«[˜åºÀ>+ÿxï‰Þ´Ä~Õìt×ñý‹8\µaE“i4Àøà ScÝ¥‡Œtÿ¹¦g~?ħ“f2#M<.“w…ÎΨï±ñ›Û67­hÖfVИ¨ËEÁL•ï8{~)|àišÅ=øelˆÌQ_T]o!Œ´?b‰™„ožË”ÏE|”\L Øâ÷;¦šÿçÔŒVó}QÂZöÂß¡GÏìÖûßÊërÎMQBù#èJÅüLókEk•š"Z\U$z“ˆµ¢ugÒ'DÏNãÑ3¯ÏçÕzÝ$éd sÊC\™òØTì µÙÅ)ž(Ãø¡škýv%äuÔcnοi¿$•j]*~`Üc¢ª÷ˆìIá²&rÔ3–TÕ?þD̳âzX¶8ûûsñèRfß?:×\Dl…Ö^6²œ ô'¥Ëm^R@’oë̦[Ä3r;×¶´Õd`V2P;½§}%n)×8Æyà%×Y k¢½³el Î͘°ÆžNÓÃ6®ž ’˜ú×»}fRI3¹ÉÓ5)ˆ ¢Íü6S±æ¦òû-€ñ¦mÅ@òÌCt§ãïuù6 ábhµâ5¼3„}@\HÊ](jp“Jó‰t®Z±èòj JTŸq-‰`.?+‹êþzƒ¾„ßY’›ÎÈT ÙY{¹r^Î4·…—óþE™l9†÷Üïá"á¹HžªNíS-À3ÝMÇÁÂA™§“½¢à¨— ·Ê†p“€óçÙØ.à`MèLÝ%A€:ü>:Úq™¬1oòP©£Áˆt¥ºOïJ‰Öq7¥ 3¸rŒr¤žB·ïÍ~Ñ 3ÚÈÔV\Nü|®ݵВйä°{Sד»\ÆMuŽ&X8ÇñÇ]8Ò&dÿ9«´i;6›[$ÍÄ{:ÈŸ0#, C‹ .È*áÒUÌ­N×Þ˜ÚØ¶8Óqò¦O¾¢PÝVJÊ=hûeÌæ<Ø•lßU~3ƒ“@‰ÞXº­3ˆÛ$ì6ÌK6jË!b!©$?‡Uå8²£¨VpÂN›a¼†b"ê Mú2©[À² Ö«r$Ë÷2±]Ä)îÙâ¬Ðù§à¾}~Ž]AÞ~„YÖzmغšnnK³yêi‹²,8ëÆ©ÞQ9eõÖ¢`«TÕïhP«ÜYÍÎï]—ë’ÓQûW¨m¬ ló;[F’”;Ýlz/ï_lÓmTžô¤ðÍ´s«øPÚ¼K ’^Š…S‚ Õ-õŽuÇœˆaJ/RŽþ—bZÖ„´êR§ò•æÇPÚÄ%LÂc¦ðy ¢yÝxW:¾=Ã=÷¸P’qŽ·F¶°ÐÜ5rù_ê‘Hîÿš€noá ëݲÚ5°všK„ÞyKnÑiNLqh%¥¢÷(Q°¯b@T¢;O•Ü=M£þÞÛ é“ô[¹BP¬z‘«‹¦”ü1¤ÄÇdE†¢3=bhvË/ÐS4/ ­½žiºÂ€³‘‚ý<. 3wyRn¢5›OêéÔf¡#/‹ÓµÄîw”À¥üýá‘×ãó~b‘ÕY—©0Ï0(Æà”¬ê‚2pÛtLïZß dœž;²y¾Khû¬“ðäb#©Šõ™ŒVßÏšTP­ º”¡PPñ;†`¾뺳/ÂaÅê Ó¸øØ0zœË+–0>˜»$Æ‘Œ šèùq§•`´ÞŠyû8H;¤pÒ”–Çm¼TKÙ,ç>Üÿ·µÎç\FüIëÔÜ¡)Å#Ö~ÞPˆ@óäÀ×Ôө穆oMuÁ6Ã'’0Ð,nÙî÷~œ†œƒ»ì |A7Ū RÞ¬|5µw÷؂Žëbœ]Û4è8uÍÝhSËêœMø4á”=d;²“?òüð2«88€/x>ãë0¯NÈǬÐl¬Øûê’{=,$`é Qæ¾D½ÉDóÜ%ê¾·y*›½è·´¢tbj‡‡éÀOÃåFhu’Wrü•a2ßbÎO©©£ì€˜÷ ÷EŸÚå*%°Á®C†ËÌPGÌ©`i9®XCû1“ÂirüÄ…¡ÚLÑåŸ[fÆàš•ÑÚî†XE÷í²Áwš]ÔUç…¾ƒ÷‡`hå@Gî‘Çg‚U £§R†ó0vØÉ±'‘~÷åÏs #4 :ó&OÜ™âÁ¢b9µ /sËî†ä5^™v!=mCtϹ¾Oš^Bˆ}×8‘)ÆM0Wßû}XÀxIÖõO%êW&˜]ë£ÙeÜM¡øR’FYûIšòžø·Cœœ+X€¯kißΓü*–ÉB)»„¥†ë5§õpê8L§žP²É_Áz¹2ÜÄžà)­E©µ»¾AûÚ Ëç£aÆØ–”d»›o¾äòº×ð³³>&<¤üÆb9ò£Š1œpHÖ+k£9:eÆ|;ÐË^$ÉÃÖVÎs‚òƒÜÄçïø.„ÃàlÔ ç|2vc;<8ä[éŽáMf1*¡Y¹¤»ÆgÇr zÎçví£_–éAýbî–°jjI•E»ƒ˜q ‚¤û?Ud·Â…‚IJÿü¡«ì,JÛCÝZ©áÞ×ájp¦Ð*Ñ]cš,¶ç»wݱøü!× ¦SêŸ T=©]"‹bÈ”‘„#°@œùh—4E -òŽ-¶™¡Výüø{^Ñ7¾Ë¢è`o›ü¨áß*.ûðÏ•ÓÍdhÔ$¥üÆb8S~anðc2*›Ý¤áƒêwøë›¶1_uºÔs‚>s/bÅ/ñÜoà²èO›kë\‘â¢O©$™’“R QÁúlÃqx]/5yd„z—îQ63.%¡b[\õÑcލnC@zSj€UíðË1¶6·ëN$SdT”Ï´7åÐÆ5ÐND§Zw ÀÑA,À4F#pä-ÎÝ*„7ž´G9 >ýÆðø ‰ä¥Ê­Ô›8UÞ7â†]E:<=O8¿…l9»y;íuš-›@&].·Éñ‘Ž›Smœà¤CUÊž¨(ÕÐ+³¾Û1+h9 Ói$üÆguU=:ïÛ *Q5Ãá±ÞñmÚ 9£šqûäÂ'¥ÞxƒG¶ñtM[£ôÙÕ¶NÈপñ•«”àõ\\Þ½–¶!%Ÿ7¶1¶kèàøA È Ðhfí€ËÅ 6*)i×Á~ Š\0 F¶³n0¸Np CºÍ‚³.0úØÀ0ßôói?j¼a„úúÁg¼/·GþÏV%+sÝF‡è1;¢½*\¹]®V_ò-úmzÊÆ-`ØLÇÁL¹Ÿ=ª•‹[ëù[?(žÂ¤Ù_¸fz‰„«€g¤ìÖÇèÙ˹¥ ùm :šöûK…$ü|®¥å·©´ðlåûwYX´™,ÈA=([ƒž Þú\Ä€]«?ÇÁ³Õ†ª#}¶×‘0Q ^p2—1¾ªµÛxÞeóŒDëDA§uŠdåÆùæ=9ÆÞÓ<͓؟Pã7”™‘ýÜ+WQÏr‘ˆÊ3‹ñ¼ÑA÷ÌáÓB–}Ð6=RäC:ôÕ•èºÜ«ºç7C&Ô] o°(KÊ%±Ž~,h=JvÈÂŒ“`¼Žöýqûƒ &K4DàÍ]lBî@bå›h~¯–zCµExOÓê/qÌòÈ6F5ð[\F­ç†ÈGèŒ!‘Aþ«Oö÷0"Û Ù51®à×7ˆë•‚pŽ´!w‘$¬Ñ|žþq¿ÿ 2îùsxM"ëköc2Å”1Öý Fô±·©L2Æ¿§{üp; ÇÏÞ¹û‚$©º6¸]í[T@ÁÔ‡ÌíVñû"}„ß•Ùî…§Šª1±Wû­ËưúS3󲹲̮b•*s…ÈÊ|"6s4àHÖ¦S»'9ú’¼˘§…ÔÚ:êXÚI)VOAÙ-Èr% ¼ÔqCÖ#S¶W`/~ãÂ=¡Æå~+Çýç|€Ùv3Cìµù…z!ü|·Ik¸$"yzó¶äÏ2ü¸™¡Ÿ÷°ñóf@ªþ+•íÓvk¶Ï¨±'®ý“ÆY2Î-÷ÑfW–àcü³×-ßD»>¨cj6t²tUXáBÂÉÄÔqúpð½²Ð|nW"ëüMGÖx{ÜnGiËi#£o.Vœ¬FµÆ)õÀâ¼0¤¸ºÓ¿Í¾©Ý9Þ7¶uJ—×U¦ùYèœÍí4Ï!y‚nE´ ŒÐ+2ÑäÌñì‹Û<ž…ÒädV»"U„g '·+€AÍû)ë`9–dx¶¥¤ÀD ˆ#¸{Íù`9}Q%q Y(DLR‚\Bþ²úY98­¡¥¼þåa%Ô ;ŽzÆdm€0#,Ý$Ñ + dÅÕ»QüIa ݵ&*Ûž¶›²Cøƒ×â2>œ=ämD )™šP['Å,ÞýÖªZÌ=ú…ã4°ÿî}€Éª,\ü¹Û¬nÇkefË” Âé\ ÙÒ•¢ÁZÙ÷ÿ£ÿ[C^8ΑRG¯ŒN{'¢?0ª¥Ö«Øóò¹fâÁ"Ü+âAx¡ƒûÁý ¯»lc¥/ ŽÙùvfãˆi©9ºvÚRk¶ð¿³5Úòeáþð¤u²Î<üMUÃëŸ~~Œµ‹¯ÿÁƒá¨ÿ]ð÷¼MñkЭîz%ÒïîŠg— 4ÍH †FÍuãÅçÛ¬ô!…Œº]D]ˆyx®(ÇÑB{Ž×Ý‹s$ûÌeæ€Rv–²ù(ËÀgàIvmBÕG~à{¡ ÞË,Ñ)DçXgêíéÏrCç´¿©-ÚØªç=Ù! ¸shN`ãvNA¿c"ïîú~£<2ÀÂÜü2jDÖï2GÂE’›sz‰£äç(È"ˆIÈAŽ|5Õ+·«9ü9íaš3£qÒ˜•? œÄˆ6y»/·×iíÈ‘%¥‘Žê!f£— g±²ºW‡"ƒ?-•8BZ³Þñ8…ƒRg ;Ì"ÒÓf-¬M¦ù¿n™…ÈŽŸ×1üN:b4¦›í†FÒKÑšÄ_5óÄpæRju€B­ˆAqí³5G£±‹joÐÄ$ée²Aÿú(kÖmø»Í„6B©O¬ˬ5Àˆ²]!šWö²4ŸL´qŒÐG ÊnÉžÒøÅ{Ѽâ6F3²V˜ôøÓ$ºµïG&§Ãôò“F(×;ì xO¨q¡=Xѧ2õ ³c.‹!(8÷ç‡Õåy›±s,ýÞ*N®72ýTI±°æøç7ÝÊÆvMrœ#k¾ßœüï/¥2IâmÜšh ÍuiVÎÆ@É"‡ø]h(*Û/TKÙ3×rÃŽÐ ašíãã€Õdö˜ËSàÜj÷äÞƒéh+(ô7ºäph£ñ¿\GÈT¿Ÿ‡ôniœÈº ÕÐ_ JÛ.?Îxªðê’¹·6×-¯5Èìœ!ÁÈcÐÅjDÖd0„yÆ"$±“~¯³¸ 7yÖü}d2Ì?uíNI¾¤î½ °a£Õî—*UFü•^ä„€Ý$bÄíC¬Ö;oŽ»TY» Ôné-3ÑOggSܨä E6è:ÜéÿØßæúòðôÿÖèáÿëëóÿÈþæàáÝ×ÔÞÞñòöíÿÒâàÝçæåÿÜæíóèéâÿÊÿ6ÜçàãüLÀ®ýL©ÙúÄ4~D­éß°Ò)C–qŽ!,5†ñÇGI:#É€ˆšõIØ3joåšÇ™·L‡0Ð ’샖B-V¯èôaºZyH^‘âƒJàï,ÿæ¸zL·¤óÀu÷º²¥QÍtÜü^Ì3eD-í)ÜÍBº‘;|Þñv–…É™æËšwºý…Œÿ]ò?66¸„0’và…áð«Hgðÿ¢‰hšÁiÀK¸š?ó6Z6œ˜^äçxM€`²¬5¤[¤ûÖÐ?n"äôzSUugëüï/ºv¨qÖQ½;Sz£E´`¦ríx0paÌÚ›Ÿe´Ì»‰EP+sõpËŒ7ÍÀºsý8×lèðÁjº'c w¤»ÞΡ#dƒÍÌÜMˆ¸rðîªxŽÔŽèf&,¼œ„_†ÚȼհÈ.´J³ <|,¨S^}èoƒc@}LJq­'>Öul)i½E{2/£Ò~X[¶˜º°2Ý´‰Ý8ÒÄBS["}vð/ZüĽ§¤œ«R{=@—PÈI æøWvC┿sݱ۰-Ûlº/ÒÜöô°Ÿ.ºSÑüôíÿÀ½ÃOmòV¬ß¨nþS6ÛX¶ùYHuà±¥þ6Jö‚yxÛÒFFuC<`;.ò"ÓûÍÂu)rÊ0)‚×ŨN •G}FpÙ~ëûê{0`êБªðyái \¤z‚»–8ËQižuD^Po EÚ×RsÔOã÷)aåý HYш™ÓvÜùÓ£cTÆ‘°ÁÜ ‡¨"Cÿ‘)©<Œî­ ÑÖî´Œ¿.puö!xó\â~û#%_¨ŸÕÕŸÔ_Ôßd^~Ia”ž€Çìí:ú Íõ¶`gF™ó¯ò2ªÙ’2œÊkÓüÔü³r:閒š2õÄw’ÇqõPlÄ*]=†l©B®ãáßzbÊ·I¥rŸKÍÖf’x&—#ÔÆ(â;æÎ86º£ÅÕXU%OÐüïü÷aX£¼s^z]˜hö[ ݃Òä/%¡z—ø]½Âx Ų̈q]$R1Ñq¨D‘Fã<¬Å2Èõ1P–ÞŽß ÞñQ»$ šëÔa™Â€£ºjðq£V%€þãpô„éþª§ƒIˆ ÃE°ºn©˜†›1h<óÑü6x4|ìÿ¬4u+M|{P$èeÙ"äÄ„¾ˆ\Ü.[¹˜“œ=Ugô ƒ li•àËo²¤žÎVã7êEôqxD<}×Ûx`ùöhQ¿hi©aO«BFcŽOÃ"3È¿<žc \)[½f–ñ’]Âr3-⩾t‹ÎDnœÕ‚:{$oÉĽÂ\ÌúY—*'ªînÕg†s/¹h‹™2>á«»1ý:ÄiZTHÛ@Ö;'RÆ:ðPÁÃKô;©ÿÚäFãjÁs§%&D"+nÛj_À’Í:üÆkZ£*ª¸)Xí=pQ'ÏvÞrÒæt±»o©.qs3Åf ¦ŒÕù£“Dý1lȵ){ÚàGv@–'éç‰\B³j_Ã"KeZc¬—¸&`ñdù­þaüˆiЊÃõ—N¤ÖÞŠ,ˆ\Gt·*»I}Ë…æÄÕÂTWsÂê»_IŠŠýf¾{®aþöÀ\ r¾´-{â-‚¹–„Ø<È]ÝO;ŒÀȘÛüméá°… µhÔˆ‡çö4[Ú™#5£Ð‰Ts În…C$mÞ3k#ýö0ˆZ²þEWÔëi%üÆhoä7¹ ¦ð6¾ÀjTm‘ãZ¸»W¥”Ý-Œ¿GÆ_/¿ŸSc–ØžŸO°ŽùÒ#u?›–Ñ4’¶oÛ5—T¥L¢Æw3%{—¸y–ŸaÊ<9ضÐuÒò|“p-..õŠ&ë'ºÝÙ€M"(XÍ#^ºQSÙÊiåà: Ð'@ƒ£Ó8¢džÅ2}/…šR§{ý±¯ö«TIêº5ñüË#úi%?î“Uʌ篋j½º ÝbphÂìí|Ã#A¶TÑÚï¹É$…Ý„äº, ÈÐ/£×ôÐ^xùâ› Y„ºUèó¯&SšŠÏ²”#ƒÆÍ»F0‡:‰šÐdR`úoò9[m¦*䱬à3oö]½†Ù²E¸ÙvÐvÕª'\uÏ'³l½„ZWk‰LìT“NЪdh€$‚éÜ▉ cáë²:²”·€Ê"뛘n`ÆPÖ%F«S²Id–™›g‘‚©•u; ˜WÃbË1HZwyhû÷>…›U®õENlÄçïÊùÿFª f¹š-€º›f-»¶aºôŸ¾Dmi%üÆbèÀC½=–ÂGXèDr† ü%ÁEùŠk6QðUÒ|#åÛT>ãýÚý+¡Ÿ* ú-8gð0÷µ¿?ˆ§]lGû_l ±4¨Š·sÈ e¥ÍvnDšiµŠ!ù717?>ä&çc-Ö"Ab„jˆêÍéÇ´ôÍî?÷~Â$ÅÜoðý 5zÁêøEÞS»Zšq?׋Zàâ:*¬Øê0¨wLÓÍ’<’VhT¿5ÉÏêÁ€ø¦ZCa âi)â<óö²ËþÛE*±‘ [El¶Fª|­òº‘‹¬08\ÇIùa$­$üM?ÿ·?žLà:ÿØU>©d™ÚcV›òõül >î9bªÈ”'V9JÕ*R՜Κû@±w„J,\õÍ.‰-Fî|Ô_–vè‡X¸Nr„c fi¿hfÒÐûü›ŽÆøaû‹%‰vjoTW'‰¹šM™Þ¾òµ8$Úò7uÞvC±ú&Dœ+ƒ,Ѿ”Δ¸q¿Hì'èƒ)S-÷£åêOzÆ^;M ŽT]Ÿïúô£Ã`Ìò9»ÜGÞCáPú®wFŸïÉñ,>t wgcS²nÅ«€×'±z‹½cOÂüM>º»`zqÆé“&„q˸վ÷¼¯g;*ò#Í•ME†JËìû!;ØÛÆ=“쿚výKÖáÇ÷8¿@[ÝÔÈ(ÄÛÚ+pnØðÆÿ\ âZKD¿¸ õR±ô)$ú?9¹ƒÁ¥ sðÊŠá-Æm¡›A¼÷9QFÇ“%=çs?$w€"á Ü^ד|{$¦ÉmPa‰„l[Á¢ý{ÿ䪼۲bchèlò”¯ýÕP2÷ˆ&Pj·kó™Û]°Ôˆf6Í |†=ÊšfiˆYÇ…+ÃÌ#´üÙÜŽíG˜BÎK øãx}ð$køh%°{±ù?‚ÉXÚ÷/ ‚¤h*½Èmqið)ìPÊÝê¤`gõn 2›Ý¥ ÀÉÿ8Éú½x:|žxO³EVƒ{ qáŸÒY¼o6 X§‹¤Ûíz!8 É “äü·;a؆/^R1?oû}ýùê¦æ0ñÛ‚9%Ïþ‰Ï±¨ü·=©8&ºÄÍX÷¡LDA Ã/>«f0ƒì•ÿ/q¨³BòÅk©I5ržƒ4÷ÄkÕäi¢ÑÍ«üVÛÞWo0*¸##$¸$°‚ïìºìª5S ßóð–¨|£S–½F—ä:ëüL÷»ï~l÷í`Ÿ(ôÞ'·5¹q“MFO²!Éd<x¢÷ÕsªŽ‚Z¸TŒ7§8 ¿ÇHóÐ{ëhò!v¸”æ¾ B¡ÀÆë(—h¥—Ä0÷‚ [èa¾æu¯a£N›¿8©ªånš6)ÇàªHæû±Æ^ÑíHwÙ¯·`¤s¡¤qñΦl5Ò°U¡C“Þ]ï§@èQW;,:5Ly¯¯‚8ûõØ8‚™"“Ž|¼¹`ŠÎÔ0^`G^­¨?䚣º‹’tQû²þQïW’5‘íVðïUtFèºÑNVQÿÑ¿þüÆcFéáü HÌxe`ï™|Á'Þ‰Q‰åínˆ…–èÂQ®t\©‚—ÈïÁ`!µÐT’†ÙøÇ³t+Í隢¢` '4y‹ð\¬‚Ü^P:OdÊ`¯ä"Žõ.B"v+›i. ¹à .ó*ÿjêÙfÄ-Êøœ¹òNBVæCÔè®mºÿ…[Ø7hGGîyày¼éiÓÝæÛs pùbTM‡¨q½–M'Oó 3Ûý%Jû€ &ÂPMÌ=Z wÓµµÐ ¡ \·¹”Ùĸ5iÀšö£Ö¬M“oNý1¹W J üPªý#üÆcˆj^[¸@T3Ýj°ª”™“pçì½·ü®_^û ÇàV)ó³²÷óº!~^¢ æ8MªÑ ¥B~ÁÏÍåªÕO$RÒŠÆ]ao ñC€z–“¬æÖ9Ãv³ïdú2{ã…ň«T;‰{n`ábj!­ÿ>…÷Ðk遲°ÓäŽÒ¦êW2‡æ—ø‡ ‡,ñ_£&^@eL^sXêMꄾ3ç•í* Â3RI¯@Iê:ÄväRi4Cà¥c댦úzXéȾœ¸e²GÍ™ b”t2¨ƒÍÏge‚Ê£e$”½{sY››{S©òÕ%ü|¶å0FßÀ):µÉ`ˆ¿înZìÁ'îâ1@lhXêï2¥›‰Q!Üm¢·'þùƒrúpÔ·¿ùÀgÐñˆ=¡2‘,™ÐÉE&9!‡_^Ë_›{˜öCåF=7(y Àø°Ðèï´xÅà’ÈqF¸ÿk,$£ð$á(8pä|$úS£g²üý ±ÅÒìm뚢4Ã}ÒA¿81’ÿs’/Ù*/ŒÊJö¡ó‘OFãA±´^fÿ10ó’åÍ6ŽÄyûBsy>‹üÆcòäµÛP3x™rþÅqmýf3U²Zÿ (–Z´d†×bªÏáq0…© æ[êMàñ–S+:$çlIÐÊZ5ë‰D—,¦$ž ;}HõHH~”{¡&,É®¥#é1P°Œçì á!EaP1`Ó³nkÝÕÆ\Þ,‹ú (×±.”ùëZûæë3¬yÇ;²^Š F&~}<,âäÊ\E­ánÉ ¿ù•¼Ž?àÀÈ8³¶vÖ3§+0‡ G-3„%„Ý Óôöb¾ƒ Ñ€˜'² ƒ×<è_à,xk%<Øâ!üNŒQò£âiP×,+¹“F£’7—ÇgÞXn “®¥¥&ø“vÝÌW¹ãTç í~.ès ÅA µø«P;ÝqD3@Y!%–îð‘ùMBP üá}ÇžO˜ÆDé¢7c”N•í¡ x“¤"BÀ–÷ºÒ†Ã8E+¹D¶ ŽÉ&¡RKrö>ZìóŒ©O¡Þ³lw’ËÞÄ£ÉËBRqæêP üñ ÛŒÁ¯®)Y¹Ê®½uöV¥+Lý>þî_ü¶ Ê.Ïï½NŸ~ÃF#mt²Uç,Ögæ¡ñþAO¦ÈÌKXηàô³í››£tsfà}5{[ üãs¿ëRã…0³ŸÄÂûLB ×F=<Ž5`é׫b¾_êÝ牵A¯[ûfó´€³¨ÅÛôŠƒÄx§«j騣)*à|'FÛXd)= yA6ûy‹èía¤±%­läÅÙ…ˆˆù¯a'(Îz|åαä o,¹h¾f¦ÖÜšñªŒDÅÑýáüMY+–iå+w·€ ù”ÊÁUñ©ÆØ#y*Çî8U÷Óí(Z‘“é›a:‚ù‘ˆÈ:T2ážÄæì°m „­ "}à߉é"q˜ª£ç9^‚·i@Á‘MQ å#;¼ê:רòcõ!!Âc¥ÀƤsÏ«õâ0q<óÌM%7÷a¡¿X3)dL':üç;¾ÔE"¤TG-s§$?m6Ñ¢E›çô ƒý[Áz·Ê{ÜÆ¢[ËúÊgxЉ­í7Z8œ‡1ÍBP¾tni¶FI/²þ{'BÚ#üIö#ÀÕIRðÇkÜ®Jª³‰(ãQчà±õ¨GbnEÇ ó;)¤¡öÛ¢:|=R~V\NÇ Ú·\ï†sÀs< СôvÀ«¼,í܈ù\Ù„ÜÇ ëâàZo™V(ŸÇ%ƒƒ5a" ‚:]øÞéÃ58ÁÍ‘)›þeɉþÉý/$kå+Z©cµ+Òb](41ùYjyGo~Æá5Ã:›g˜vÚókµjB^7{#‚Åó+ÌÃáyþÔoh Ö íIχØî8DÏAÒàü6Tòc:NÀðï-Ž;¢óáF2{ñlJ&K™¬9~J É¢s;ðé{í>ygV„8oþò%b{SÑO@ÕA,µ—2סÌsÊŸšµL^ õÿ~j­ô¥Þoˆq‰MJFýŠÝ¨¦69º ?t>mhSýþÛC å#êpGÔÙß'r™â—ºÄ0EÓÎ÷@\ Có/À„=˜Ÿ£'ü¼Fîrá&^“%Z†{‚+òð—+®T©L–;ßœ5Pjœn¶¢¾MEþú™¤Á½ÕüWÿ’jx\-¶Æ)ã 8q~úM”Ë4íF½½Áš2«íñ)v¸Dfgr.Þ­ÈÇV9 X}Ž­Öʾ]‡ï ô"4õÆ™2—·)>"ñ¯™@´mÞ²ªë–U”ÄDÙèS7¤ã…oü*1’ÄœM9µÚ¨ø/ sg¿ÂcÝÖÛ&HhФß›T¼zpÅ͛ŔÐ1¯˜çg€Ë½­©.n¥7IA`°¢œ‚^FâÀÁ3Ëxì¾ÿ~lð“I^—ã2ÔõpǦz¡_›¼§¹C¡ÜäMh;®¬WäÏ~±¥!ò¤.‘èÔ#»H,,ï*U—òõ îBÒ$(d%§ÌÞŽS&‹eFž»…ý}5¸6™ô†d:Nm„rJL¹ò^?ð¢êgNSœa3\š|&€„¿^Y\g\”ì!]÷C  ’ÛjHGâfÂsâ´v«t¿ÐTè’Áj–ï®ßÂÛ@V“ hKHSZâé,¹Æ´¹{¡u—rë»—*QÊPA£™JmñýVCEÚ;¨›uÕÞÃ*«ŸG¯hÇÉJ‹BÕ8€"\¸ü6g܆€‹±0ðåÝ`@ ddJe©·]8¾9ÒÂÿ›F¯én~=RÌ!¯ñR®5*ã>0¾y:yço!wÔ§CQYW­1’à’ûó¯.'¥·€¨HúføˆýFÆ‚fhtœS´ÊL¼Ià{ÕûÄ»™—RÎ#]!¦¶Èc\¼Š¯Æç¦oǧ¶:'WÐLþßHDÂ"LkF—dÜO»\»ÒßÄÀ2V›ó|)A¹ïÕô¤}PÙ©÷¥É~SIŠ>õ[Xü2Ä`$Ñσ“ >¦¤šÅ}T>`Ä•ùærØ’>ñC“`I¢A ~rªÙ¯–nÕüIß®yÌôy°¦þ[ÐŒªµ!3H#c™Jº\Wp¥øâbäÖQEg4êײ… xZ/ÜX2ÆÒ;yPqèöGB“ñÛ’wÁ›pCäÁHÇ´ãâÓL9ЍGÔÜ` [U?Â1xX¶ À„SýØÒõYO||Nök³é- É¼¦-˜§†ËV‚–»qJ+É`l—&Ì!\BÝa_€“‰,¢WÙ?¯ùØÃç8‚‘%ÆšR³„ =gÑírSŸØï¶ÓÎðè¬ÚO.kŽ…L³!À9 DÉ'ðwá—Z¯ÞÁ™8ü|š™G7ޤHz$hòþ³Y>Äí¨ ¬=Ñ«˜ëK'çâ(âÜ–Š.å_j"àjûXÿ9CÕÂËáõ¾ˆÑy]ž{ËüT˜ê»ÍL# ›ÚºôtŒ5·BbQ!žùC#­€”ðf˜ˆÿz£‘T èTÿúDîãÁý‘9ñ‚‘t>¹"¨v=©³Úbp´¿ãù›{®7T¿™¤åÐ"Xº©Ì¥ù_žúž2°Y±\sü¬2¹í} ¯êõl1ã2y‚€%ñ¨ ƒ*¡=ñž‘Þ, +_`H)Ð (nÉ`'ãKª9€†@íQ¾îáÄ"‚z•ÃÉž…¬†¦LdœÃu^ÞüÈÀxl— N7 u¬Ç’Z10æ{¤ä­F{ÉÌbVÿ³µÉÒ¥ ›½†í‰%ûs{²„Ð> ˜.w¨Ø<ÍÎEÝ8cÚç<Õ=aÿÖ¨ÄpL)‹•Ç*Ò)±>„ˆXÊ%³‡ReuµHÚÆ)Å ‡«€àý²ìE·„ Ó‡Ck³ª³º#@˜óÊÚ®•QEÒ…cî ¾oû ùª’ÌD™‚¥þ\4”æ)Ĉ ýþÌkªÇ”½IÂ%²#‚êI 8Â2ßî’üNP î¢øRãô0‰ ©O¹Äã¿{ÕÕ¼x“wþzýàQϯOü.£Õp¡¶Þ‘‚ÎÍßé#9œ]±G‰K[/K—æ)‹io ¹Óü» wÝéÏ LZé°¿!æìKBSä„eʹ)mé!3ó42üOŒˆèÃèþ#ó#c ßf•µÎߙОõ”$3™¸IÈÿf¦èÝ »Û>;Ht†ÃÃGu»I¨ŒxÀñ~éßÝòÜ·.·µJ>‚rùÀŸ‡ý^¤Öª±ãñ€²h’/!WXgÒ ð -Û¯øètô¨–©>Šñ°€b r½b_VÔØDŽÁê@%Œ¶‡š×‹Äñ¥Cô‰ [)Üå}2˜ +­ëŽ>9ß{&°E³ýð=– £çÁÞàa‡¦'>¬+œbQS‹L¢Øê”•i™ô­A]Ó²5båŒÆuÂöK ªÞ`/ƒK{>õÄíÆšEÛüLºò®J…¯l›„´Z¦“U,ȩ̀¾aÂ6¤…ý6¤q0u0ï/æk؈¿Í,÷ý Bd5jÞŽ›u-oë¸[2~žõKMŽ`ô×(ú¶ ±Ã$`‹»ÿoÇÜð[ ÿZ·´ºš]¬FHl¶F¶:’>B¿‘[*XßúwõºLû[÷§L½©û.üPF¥?¢§éˆg0ªrwároD†9Ü&ûðfNaÇ€Ö˜áÍ5!!ó*»pJìWfËs– ¤g¨Žžë×{4½Ï«Î~MüLÁ›‰¼Ì˜™¸PÄ鎹Oަ%m)‰w˜p5>ùDcYµ@"¸š‰pC†‘öñDŒ¹<ÿhvÅ/~ȧwÊ54ÙLµ•wq})j¿#<Ľã‹›fã9£ÂR~¿émµÈ’Êæ¾`¦HÌEZiϘ]SéÇçø}>ÁPÌ+òrmêêõ:Ì% ‚ôí!‰ÐÔågœ^ZªV-Èt7MÇÏHD`—«ÇÏlaaA¡‰ŽÚ¢.ŸÖ}ùBfz\7Ò«H -èõv›Jz/©8B«`•®J·ç©Æ8^V9WXóŸ´=ËbüLéTv 9©‹’ÎíX÷{Žpr;< ÍŽ5[‚I¿Lò_¶§L"ÒÛühø6dŸ‘™ªx ËáñîÙzlŒƒ< ø ’‹}OŠy;M„Ýf=SR‹÷mÈë}cáÎà Ҽê üf¦ñŽ $Äh2-{¼ \h<Ë^š°DÏ =´ŒŽ¢&¿mZùòñ8òõm˜ L7ûs,Nyò9å+ )ô…45²ÅçØ˜°·‚ñs)'©4.(t8ËXJhìqï›(±äãŽTþ5—x 2•Ózï,ucõÚeß“D»ò2ãüï§Ø‚ÿMæäpB ª\/3n½9~/º!Û“fÂ_Zöá_fe1AORÑ’jÝO£ý¹PÎXñ§îII5Þ§ÊþGæ½x£:p%¨¢xe±[U° qbÂ@¢oã9ƒÿVj÷ _÷•R§á¯_qký®{/1)riŒØ¤XH¤Ú1èÖT sŸåÓtáÊ— é¹EQØn©tª‚àÎx\ÜÉo…<”WVp$&+6ˆ ¯Œú(#3ޤú}œB‡Ö¥/þ]çðá°Fy8Epxë{döü$å~ŸŠ¿Öß?„ú54düõ hÌ­‡Qc[åàÈÿû|­´’Õ££‹‘õK0Ò½süÖê×K| ÂJZÆ È¥y?&~CªïàPÌ8…€ß¥p« Q*±ï™ʧ›³ ˆçAöî¾n–§ BJȶ`RbZ·ïk²Äüƒp@–>–ƒ~ŽàX°oÈñ/ Úf ÁÅäën £9s‚ÚϼFåH"º!üòa¿:Aïä¤ÀV®ŠÇ°*@šRÖ¶ávªOï“ÚíùpE›\¢¸6&Ô¢6 ý`9nñ¬Í^&d¦?ÜZ’֢ϳP kÅ’ŸþÓ³Ä 8€Ç+4¬aœž/øp¢ž(Òã±¹øý­iTïbwn{¯8"´=WpÄ»¼ôÜÒ[ˆ#ô,EÒ¿;˜ÎwI˜Jò(Ãû´©ˆw&}t†K)‘l<ˆÐ¨yƒÿ þ»}!ÎðY7ìH ï,»Ì,³ñ «`5 ^Hìh„Y«æÈïWHªh‚†¹E Ñ€¨h0™)äë7¬ÅŒ8ä>ò¢6#ó³ó ÚMÕbã¹E/ÁI Ò°$|ýÀÄ^µE/ýÔÄ\÷§â¶³÷«!ª0ÄJí kÕÿI™Øk‡aæÔüIˆkupv˜¾Îž£;ÛÑ’''ñÆ&æÿíOk„KŒÑ"‚1×dzïg–]È(ˆÁwcà¡Ëû•î<µ]C#…¨¨:Uùpž>¶C÷ì’l"ÙÚY!@oNðÿ‹ZFR F„•§ w±]¾Hb÷Öµ¼¸YÓ0®<è-åt,l™ÈSE4˜ê˱ó%ÆFN: Àˆ|p+òYEÚÕ.+°K…9ÏÓµšÛ+8²>°_5r'ª[YÆÃ) À7rpN%à7ÁTÝÖºõŸ§Çl¤ìCìêa¥ô—oxüJ#3‘¹cˆËŒWU©w¥~ê» g”í¯z+3¬`hŽòH.>U³ª?:–SÚ¾PYüÈòmüâÇ’ 6(tÑ„é‰ S‘Ôlªj2ž|±sï½ËÍnÕþ2À·F·{³iAõ½¸ÒBž\cÖnR}qÅU ¼`¾G},‘ˆ/;Ìs™óââ_j#Φwe•šÅ:¦uÎt´Ã‰ ÈOm+Aêñí¿óï¤Ù‡5|“¯3f¦å·ÝkqßC¥ÂžT¨ø×?©š“ƒçéNÅ%x‹nkÆa×ð¦Úçb˜ /’ÿÙúôûH8:üîËâúãø â`Á´MYEØý{i¥Œþbã§Ö€³wT(¯ùQÔXî·2÷…Ë_"uCÂ…&ç´wL;s7C錔Æc–bK‰z±ãkÌoH’Æ\S«šÄ ôc€ôÇ åG©ÒlßP>?šé§ü­QC/^ÊÓ7?¿ë-•yïÇ Ó®Y”Ñ«kŒ€K§ö3·h–PH\çl qìL$iÀ¯†²" Êåhã:07ks]¥Ýî¿\k0K œh¹‡’¯ ÷.Žο Èi7¾2vº-þç(ÐÉCô<£7U<&’N‡+ò'=_¼P¥Ò‰üJø–¨2ù«0Óü`Ez¬xÈrƒÊ-­„|œtýÉÕ®€A£àÉqå ëûÖ: á b: šáAænÈ ÷+ç9æh!‡ ÒOs½Ìlž¯ð‰`Ûˆ6£+[´BÚVæ’£šƒ†Žå´&‘øoc(Yïè‘*Öé’ð´6* “•×Ë^h3l-·4~äo¨•Œñ1£éC>V'*U,fˆ‹‹Ö­›ÍHTœŽ ¤èßí4š&ØLe5q?Ép€6_i@†Éê%ê8w0=ÄÕ¹YîÌëÙ:$×5 ºÜúQ Âh† âWö  õépØ`9ùw…%ìeê}€MKFjWBû[ºž=ذðíÿ0±;,í±çÆ“ÖÐG€²¡¤€NíÕgÕ8Žó5MQ2Ò”)¼{ÐË7çõ>°{bœ„w&XŽÝÌ·Û^þÌ^ñÀáo`.Ó»ÿq_7Úô$ž¡–ôsoÐú5OTÑá¹£hÌ  @úÕ5Ôb9ÝÝa¦VoÕ¹1(–Wk÷¢A?!—ðsù†4etÅÒæ¾ûwÅÎ=s¨Q—9›wâ=EûØ] ±\'×®ØO‡öŠ*Ò“}ðüåˆhTâÆ`ºcB>PNê%½’ªqí Ö´Å.A£N©úRg½|O–É)œlª¸ÐWŸªñA¹¸ ‚ß¼é0n„rPàp…‘Ù-ö3¸Î’×z(=qaJT|t|©°Ö(#ë­~Õ¹d8ëúrëÖËÑY¤: 5›û«Óü}\-î¥j'z¯læêº†'F†“Ctþ¬ÂÑÑK Fl+ð4s2S¢ëdxê<•lUMV‡5¢<ÒM½+db‘„[«cöNvÎ-Þ®µÐ*pw®« \¡ön óýP”Æ9!™2¡&ÆJ`s¾uý½•œêÎÂeö&]6L‘ZM%®¿N_n§=Ó®ÇX§C¢Oñ£¨XNb!Ø^¸À¬ñï4ï¹SOsÀ@rr ÖK^y -sÃ%N*•Á{™‡ÐTP²#×aô:¨™,8Ÿ ¨Bq ïqž(«ŠD‹tgFzÀ±•8Wã †Bx?ÇÍÛ\o&–¦£4@\¸Ð&’Kì·<¼È¯©Øu…Ä¡×3ô)"¸ÖëÊp¶®¹K­Mšµ4±y ˆü1 ·ñ:3zb÷¼²„s¿È“LWWuZTáÀÁ>2ËJyò‘ ¤q ²tìÛ²Æ Íh¯‰æÐ„{XŒ^Šˆ#íDÐ>‡%¢æÝäoLM«U‹uºßòc›î‡#cf4˜M?Ø…Mù)•¿Æ9—Ú9+Jù/Z¹6æÆâ¸Axƒ#5m³&ÀÒGÝ;«L°ÒžböAN³ :­8õ= êj$ºU³-¸$†é5K}†*ŒQ ½gXè?5É<)>éVpv«.´‘Õ÷­ßÛÏgòIïi·Ïœ1¸u¬n¬¾üL¼hÃÕ—ée@ÂM)\&.}DXýé’×WY¦éOµÌRààüþ:<&Iq8œBUXK!‘Jäˆ%³’‰ø!ð%‚Üö’”)½ä÷vTHD@¿úR"‹`>@´Ç­4±àãßß#íu žL΀“ž—U‘ƒNb”hžÂ,%÷Cy4R°IAíÊ;Î×ú8ñ¬¨ùšmL(ÇŠœðzÚ…-½?m^·0+SÐêpS™ñ5!ÉP×mÇh%ù™z@ «ƒ‹èTÝH`AØ[¡©¸lUy“æ±qb*ì.ÅÔ‰g•Þïž%túëÓÔžõáãÄ•=\Ÿ³‹@›› d}Ä!ª· )š{ùÊC0ëû‘ÉOÉËÔ¥è¼8°¨IUb§O?û˜(|AWs_<÷]ì‘¥¥ç1;üL³G#ŸJ¹ Ø.Çs'-ä~´_Þ1µÞ™Nª~Ù– ]‡Ñ⬤ù§ m°R™¶%œ ">ˆûãÏ*™Ø×±—3úâKÙk¤)BÍ·Øó}dGh ¡_ÝÅýTR£i°¿Íyð®9Ɇ|z>D£ HVKÕi0 “Ôk}G7g,OÀºP¶X&Ó×É"T-%ÏÈ?³kl×îæ“O”àÿ€ÔQ‹— …K^;Üf>räÑSÑáo|Qدñ6z"v¢üL²M+Â-­Inÿ+.WÃRH±,y,öE”ß%Ÿâ0‰ñçU¡;œ5Ì\shuþZV€·(w"3&ïÃwçxÏÕ;(ö«yZ|I÷añzFÂêgu{ß÷±…ªDTG ÖÚfG/?_ŵ¤QšÉtIæ·@+tÛaâe+h†ã ?-QÑK  u;Š¥Zp”mõɇkqvÃÄ¥3|+* €ƒ¾h˜Í‘äpë4òz2Ý[ßHQåeô`¡"©g3¤œ '‰ì`â•ÞøwlŸ”ˆ}dn[ÝX'3°Rƒ}˜'ÎVeÒñ0Õâ¥égLÞ¯W0Ý}¥ƒ§Z6YGº_ôå W»ëàW8Ô¤?¡¬z9éo–¾CvžS¸f³t¾®ºzâd#NNtìÖL:c7Þ4HÔNþ4¾È›.þ‚c£+¯·3#m‘<ÀPšÄØ~3Á…×°:Ýâþ-VÆyÊÍt‰¥ ŒÇÿ@ykD®,Ò‹ègßs9ý}s̽VÚM¬ÙxÕƒô#£îµ&üLâWk/¨ÐÅkkc±°^ÅPwP¾‹“®š&Ö©¢ßÉ´ÑZ &²-꺼"_.qØ/†ÎÉ ëÁ—ŒŸ]L§¯‹_Q7‚Ä,S€ÜáÂ'ֲŻ’øåôŽŸ~¤þÂ0m U£C€B]ÈKÖÆÔ´-,ü‚Þ¸«·ÞŽ×D˜åsÞ½»Dž)½"™ª}ù­ôß5 2¶ÿ»®vçìpä¬^‚?ø?¹½§>5ŠCòJ ¶ö-;.ÝÅ…êùÇ=–mÔþ’µwö'ñˆáXíŒ]hêúDS¡=¿]‘[ë6—›üL¼(`Ÿ:!@z%ÞFœ®ëÀÚ¨yÕ`‡ÑãÞ1?ÎE8 Óùõ¸«ÿä JÔȺrQ}M¤Žñÿ2é[g Wõ­k‘D˜}ß+Hö¶¿ÒÁ´®¾È”-»P ’KŽÅ¾×„Ñ5:‘bØ0 Î}çÓÇÕÿraþ´§†ñÂ×óXP1„Bж}¥µVáFú‡ó÷„ñÂ1 Yõ·1üÄ™¯ÂŸê§jgîºÑ6+2u?(IÇ+f†Ï‡£íË$V¢JÌ.©J;yEQ›?h?Ù> Os6‰J– ìéoÎ@Cü|­lÙ:¼Gб]L—¡y¡ÞróiË”®;h‚8hØÐÃ’*”½kÿ(ÇLçQŸBc¬xNWgé2AMwF û÷Èký;8€Ä肈¦¹hLÂßø4Û‰6º UØ…öá3Ì<{\‰ôqÕ‡ £Q~[™¾ÐÍèâ°êÿáw6 Õcá$ çEq·>rŒ]ôGÕ/•zßa8Í®6+¶Ë™žÞeÚ±Ï!÷É\®i1a$h¡Ë&w:írVë‹”ÅC»5iq¾ÎÞ‰wf‰ïÑKy»'fä§M{iÒ 0<ÝO‡1œçÍÎY§¾4íÔ=*ת†iÒyIÃe:ä9¼3aô)Zºr\DÚxH#“eÎV«[L¹eÀw ð4÷º¶!+pvŸÉ ý–1ºDfÛ·Yû‡yO®ºeý´C(*Yis/.u@ô’¢¢‚(0eA!RImF•çè€2_S'ÄZ7]ê²HÜõSÚ8oÅ‘üãº//”°;4—VmIZ °º»j¸ã+«ét‡N¾\9²œS,ô7UÏ‚Œì­¾7üã‹B—YDÑO=Ì6^k¦ò`‡—ùŸÅÂhÞÎür˺ ò ãkCHlVÏhƒ-(XPá§²Níá0^¡“lû ýoT‹£ý8‘iŠÎðÊÆÐiQè©Îd˜6bžpª$­©mNWí¶ËL°Þš,Òi•N¯¶lÂü=hª<6#íßb¯þÕÔM£}Û*ÕÍrìÉÖ´nGžo( ¸u\Ûˆ¯òmCh‘"=@{¿¤"E»üMböÕeì›cLäм÷ÌŠN‹2£kiV£7oÿPð¯„&3‡-_ÓTVÛqÞ}ü°üIÊ®kÑ̡Ʃ +$jzms…–Q­GH .3é‡ä¯òû|nlþwL–ùçRtuÞÿíí…ÓOZ”$ôFPQ{ŠnJ§~ôM|Jýcõ¯UòA‹AZ.¸WHyvT‘rrU&킞ë(íî»û³¼Eç0úè¿v’ÆlíŽBMãoiOˆ­Øfe‚#šu\UmY‘—ãš9•-HqŸÛ] ì~üIä~™ÑMã¨æN5ÅIz ‘§‰zC)Ó(“,‡ß}ËÌÜø”û,`À<³…æ9y¡†U:ˆ¬C£íÁ_iÈéÌ|<$H+—ñ÷TRÃmjJÓ1‘ýäb£ÏdµÁ:-òà9³õA•øæ©P“YŒHî¶ë¨ös£w–rpÉÆ‹—êÚ}JÑî‚oJ ÛP›#×ÅNÍ6© ¹iTŽ£±Êézl O.ñåT΀ôpW —ów³žäB`HÈ‚·­ SòA‹¨œÀ¯S§áûF†Ÿ,]5×ÊwÆÑ‡˜wãEvãÖ­.w½Îî´©CáædßrÉ9 g6M+;› Œ/Pù­¤Ð,?o¯JÚ=áˆÍ:†„c\ß_ü1¥P"¨0ÂÝl‰>ÆÓßåÔÙøé:%'Ï|ii±›ÒîÈZW*½ïÀwT§9\M[¯åÍRá]é1e¼ßJB7G²¤\Þ7ó›Y…‰“šÑ’m±ìnÝ^ч]–¨5…16Ýß¾Âu© ®Âeÿ¢àÝç>E˜àÚ\OqÒ9Nò4ߢÜ,Ü’’qÒþK&êÎGtMÇ›í8p—ë<0­WfÑÚ7î°V2$^³7­EêE+O¸¡Eåkü¸úçg©KðÅv†äkH'ÛïÙÝø§2üLÃàµÄÎðÏP¤ñ»æÑ¥\´¬œ\@B×l rýš¯R&Ãì :¹Ω‰®m TDõ­(rlÎ*ß®ªHdc`!ç!T»xÙ™O0ذ?~¦éÓYº>´«L(ZïÊMì!g™n¬ýº…½À|j‘zcb&þD+ÞkU’J„[3S˜œÄÖQAÛôº×ŸÒ#ÇOÑ|­»mz(tqÛ¬É-“ÂßE“È÷ƒílì—*ÄÀõSžÏ‰.slY³ƒ™Ïô—*`Ш°lW4‡Ù·3 ì4 ¸ØÍt©Üü|®qcÈ=ÈÛx–ÁÚ ›ú¬î#QJæˆáY®1ä-²Ë··¶‹ ͆-¸J_;BÂdéß=7°jª–P—ÍœK‰r¡Âæi(-K3HtÅzÊ[}I,PJÅZl¥[h¨Ø~”ü&µ~Áxµ=>}éè^_Îzµ@å1NËÇC%B ËE‡Å‚õ¬±ÊD¼ì®?IgQnÿì$ó.3 øK›|ûß¹.%ÊSg48º“O)m…\ÁbÉ^øŽSÆX‰œ·4ÁYða Õ¯.œ–{I_)fMuÍçô\ø³bçÛ˜éÂTˆË.sh¨‹äKüÀ´HÌä“~ÍŠä«„b¹ ˆ°È¦A¯¸)B¤÷\ð$z%3¸Ñ]†¦ÜÕû§³û´rN®c±K~÷Qä$~@g5;„ÝJµÿòè ÙÆu-4Vç_œnqΨEfͤ’^Ýþ‘­ÇE|¼=޴ʼÖgqø{©pkúPx¿+»•¯‹v;žÐ(†b÷=š´€›JÌ ¿†ƒÙ¦R<´KÚå ‡FFé—/úϧ´àÝÃx2~%~Ý¥ÚÊ´¨°FaÖ‹ÎÈ1ÒÔÑaüM• Uו9Zb=Öcâ>£è-ð ‹5ÿ¦å s…j&E²×Õd#»b#FÉý?DÝ©‡ Æ^ 2` ílìʺ;UPÙÝH¹¾U½z®¬–'EÎ[Ò‡öæ[¢®Û ßÙÚmÃ{Ô²ÂòK™Ïr];‘œyB¡¹/âUžx $sn›Óš!ýþÄÕ!Þð[±Ò=Jºü¿QöüˆÏô³¿øâœCi@­ç‘k¯…k)y'Áð|d|ÚýÕ௠bš£ü÷üL¾B Y ?ôE_”Ð ­ãNÄÝ¢ûá@¡eÜ\;ˆâ1~ÑÎWþ‘ÎÊ5ÔÄôš†Ž¥ohˆ èÔGQ$z9A-&Õšƒ‡“±žáÚ`¾m©h‡%}î ¢.DµÒ„…‘9¦KpȰ8/V"‹‹A×a(ˉÕèévhä\ÜZêAÜGù s¤H“%Ú—¼½ fÝaõ½¸°OÆNÞ c³¶hPlàé•bQߣW‰c}ÖÅo[Ú‘ ÊY=?Jê3ª£X ʰQ®6ñž‚àÁ|Èl7‘Å.ž´ò_¯=ÏU|{ÉüL°—µü‚77†`Ö‘¢ ÐPýILêЇ¶Àzò—9o³‡ÙŽõ1ž½už8üì0øªS쌉\#Sçô@ì C W)…~u£Ç´Áp¾¶4þß`µ\Ñ]#…-ª-ªç„³Ô¶t“mÙµžJ’ÇÕ!¿ç Çcï† õ1y×ÙxÅ p÷!º P Õ©¢gx€\ø M³‰Ê@c5]RÚª;$¢^ú/'ƒ·”ý0d«1Wpúw¼žT£—á›òx³Lð§ü†…²ÕMò¦Gu’<\#[¿|ü6gþ ¬¤&½ÉûxA´lMwõKìèŸÏܨ qTd“™›jxûHÒÚØð=Ú9o‚@¿Þµâ;0ð¹ìFrÒ‘ÖD9HÛØ!ѽ¹!kxç1‚sË¥#pCíù%z2Ríw½ªšFE÷vª÷¹õÎ\, ²}#“d=ƒse9šSmÂé¦ËaTƘ•NX“›Éá7ÚSº2§ ù‚VÁщ+TQž­û<¸1ä°w9.̈² õ¸` @ˆxvÔsé|Ñ®+Ù´,øÓ œyVUüIõŸÍƒAô^7&ç¼R¢dT"D bÎ5YD¯v ´‚¿<”æäX@Q”@Bbz5&öD2x‘說ûß’(™ËäœË•é,ÒÛ1ãqŸpá’õ£\çãTƒwë¡ß{v6å¶;Ò'0ã‹Vw(•9 ˜¡´‡ ãê…˜®ÄŸ²!·‘B§àÉ“},WJ)×®çƒWÅAò¹AÁ)su&"4X™ógÇpüf°4º#c?[OÙ%÷}7‘Öü¨úcàNûÀ ^bSÇLz{Î’ íòÚß¡é—Ç]Uf¶ÕטHCì€4(AÌf°œŒrý©‹<Ñ–Go´³ý|IÒ,oeçztk 8Aê´øMÑv"ÓÒÁçÈKHq;Ù†KÔ·â„scc“šÐÀ{ÜJhÿË¡:8ùÊ;[ð›® Éå-f>ŠÛÆsä\ôoX¬²|”n¢TX½‰0ëT*ƒ@ùæ<åt£cÁsD½*¤Ùµç[ÕüH•¯e”èË:Ux›Ô…©÷ü¹W·Dlö¦aúD§ à´ÕwyldÑ,Ž^ü{ôÈ£î2 ›=Ÿ\ÉPÆ¢^,¡Ôªø[Σ®&·ñàÉ %šT­öV‹mqØA‘TJEœÓêt²äöK­í#øFóõçrª 5#¤¯¡I{‹Òviû©5i:>JÙ#-(– 9Ksª©µ¾<®É±rú‚Ù$LÀÎ2LThÈV¡DeÇò'y™¹[xúk>W%E”3Å©4ݾ^æ4™ÂVìpÃöÝfèDšÇ[i™]öïc‹“¥ÏF š×—DØONcWðÚcÿtÒ¹åFEŸ.¹üÅÊ׳ù‡µ×˜nìÅZlâ\Û¸áðÎÛ]«Èo×Ä8o$yG"‹â±Om|w袯<œԡ‘°ƒ°ƒ:õkwŠìF嚘ÁZŽì¶!·A¡ÏÓëârÕ›jˆ›É˜¡Åhq«´tÃ!„æ…‰ì|Ês‘u—XïÙvZÝÕé>KC›‡~(ª|t®ÀáÎWæ×xD¬BÏñ.æÑϺ{¶ÉzûÕÏ @¼hñ„[Ǧø@ ௙OðK¨Y“z*¡¹M©¨ñ„ÛGgj/š3®>ÚÖ/nq‚ê<ÆÐÏE q*]«Èã!Õ „?~üM(>GÖbǨ…•GG7`2ÉNÁBϧ\hj•25¿Ö‚Yh™lé3A¶ ’…žMÜCÏç2› “)LñíG óW¼„ëY-É‚SGÚìþ‚d–Å ¡Ð?û?~¨â jN‚‹1¶¿E¯ øót¥ódæ±²RHtÚ]ÀKu/Òo©oã•ȳç¡gmPûGñÇѶ`²¶È*;JÔ¤L’쿌¾(ËÑJÓ“MÈ·w3«ª‡<ÞC~ÞwY Ù@ @ˆi,Ïhž$=’×åi“¨'büÆg„F%`:% vábåq„ØÔs ävŸIúlß§uyR‘>ìmT8AæÄQ€’‹Єkaÿ*|Ù3:¼ TÙ%t.äµ<f 0Víh ádº:&ý\e¶Öõq[%(ÿÌeR¸¡%MЖÀÙAèm?,[.ý7fõF°Ì+Õ‰½æeh-˜ ™·t mq°£ ü¬Å¼þýRk>zÄRdӗϨö+‘ $“yß­M ÿ£¿C:4v‡êg Wˆoè²¥¼k €&y4¸7¹·ÕV–H’üÆ&åº-®£—«¡BP(œ ²Àɨ®Ò+1¹‘™1aKÞ~§©æüË|{o³ÿWÔá²åÆ+ NÿJÛX.²çÞ"F òLw n£_Ô ëÊ4ÿjÐ8ÁÍ‹c®*c„«'íŒÆÍ!Êi¿ºÿ…34RP⨗ôá‚s9‚áƒÚiŸ•Rï‚–ˆŒµÊðš­ uá¹ÿ_ ±Gѵˆù ñù¸Ìö‰3!ä)x¬+¨¶N›­“:Ù-{Í•&V%ÙôÀ˾?Îk?\ûœJu÷P¿é”à“üM€² Û2¡¬62õ¦šÕ÷%®®®¾¢>\S? ªÍZo›,. úøæ&éÂÓâ½0á=ˆõÚMËQ1ÿtÀÊ—‹¨ƒq]„g:—dÕЂ±ot“vXËo7XVº¤™j2½/)uoPƒ íZy¤ŒöÌÎqãørÚa2p‘þ% ‚ñ‘ÚÎ9ZRÖ Ì¡Ó>ØB}bª$@¼¼~ZøPƒ/?x –2 šÍ™³s‰*T"5†6`ÁìÇnBAˆÎ™ÿçû—­cg¹|H×ëw›àRüLÂè'·»¬üA-ð¸|û»e&b¯,“ñ+E¥ZÔ B£.}ÉÈpßÙP¦v„™¬3›Ï’-Íñio¯ÄÆf‡:]I—x“Ãõæu¼öE”îâö~@l™$ij¿Y[a„¡,!Í­"ùxÁÉÒG²ÒaaŒxŽHì8sİíUiµPw Þ\~U Àƒdža*Md§§°~ºc¥³U·Ò[Ñ^9ßâéþ9Y;{âAx¸bcì±óÁòà%i¢XŒY&ü™ ~QŠ™ÝµÙ {~sÈpÛÖ®ŠüLóÝ÷Í"a7€^HPx°¸Ôóº²nG­øjRòuOUnã%ŠÕÒ,÷ê4ñ®o+³ЊºçRtWèjA®+­¦;öÃŒñÈ* èÓó¥òšZƒ¹/RØ0K ElI–Ñ#LϻڜŠQ¬Ú‚£H·µòÁé†ro$u+_†ÚÐk}Ϻÿ¿®ÆTø+&ëÞ#¬f~_Mª|YS£TÑëuÀuýn×ЕÙýcé½·\Tþd ‚,vf×S|¸jh³Ôÿkã°ÖL¬ ÖG¤=ÏÁ”ü|®qKVà`;­¦ ⹂´P3Õ0eåÖ47©œ zà¥]j´e±2§ð¼µ»c»²FÉUšžá^F}/ƒ«)üâ=ðŠo/½‡«¹‡‹4ÁÖ։ބÓ,rö–.$Z÷"qa¶Ìç1· 3o³3Ÿ…ž»ˆ*}ÞiòÑÏbÉÙ0"OÌú¾ó–8Юu_=´±­ ˜®R^¼ì +¯aTj‡ÿiÉã$¹Ãê•“VE…>ì8’àLt_ê<‡»R¿;Œ2P¼ gwTW ¶B×ñˆÝ\­x~}6‹§t#5ò¸ðŽ /‚×ì>p°åùJâc”ZcIï¬ELÁyØE?bË{c_XÎ¥çKƒŠË[n<1Õ®Cç­•¦°¬'A‘ìÇDÉŸo;í:òÉÒvEU„ âÀèhÇHׯ ªå¸Ž]ñŸ5‰nÊ‚”0?Q‰bL£iæðË(Ykü|¬êØÓ2ýÚnQÕ—ÐÂ/2žÔ*·<@MÂýÀ¦ £Ù-Í_kÉ'­˜ÝT¸=_õÕ›õ°6â$ô‰mÏ Ãä$`j™ß‘5žl #øçËvŸ׈~Xg’Ë °øJŸáüÔê°í1§¬œ©ÆÓJ² Iö=~f®TìÈ„‡›kub!{*Œš×H¨ã*Ï‚Qbðžs#k€˜ÇµÔ©º½™†‰V=oo eã oƒoü9K®¬Â^äýò [ÚwûÊ„e q§à®ÞvŠß·NSô)"Á£!Cƒ²ÓÂ)â»Þ=«üLËžÒ% n„ÆiäÞOD¤ÃÏ›§gƒGIh98FÍtÀ¤-œ®V××_cM§8°g^}øu–˜–à¹XIÖ“ÚâêÑ¿­jéÆ"0š©¨ùg1ü.ãîÞRÖ­­ˆÚ¡ÑfæF!™Æ(–Ä ÷4è¹µv¦éü¾çFc1 \,¾ŽWÇäøJ´5R^öŒd ü6c¼Õï<å#1AJa­…xÖtnS¶{ÄOææX£t…§˜éÆ%óô©‘ÚÄ,®»ñ8æ0úI†v6p‡¡›ˆò/õÂâ&¤Û¨c½Ð°Èóm¹` äFD¤ÜÈ:ƒ¸¨‹šsüˆËx¯bÒ=ÒÑŽ'ÊôNyý+y© Žõ9¾F]žÓ¿ñ œ¦²™lpµ'N²z_¶ú]ø|x³í¸–µÞá2ón¨»ªµ¯Fä²’%¢R*„Ì©ŸAù$úwà}†²÷:©m#pŸy·ü6QÝç±TFi§”2$UuÁ{T¦ ÂZ0ã‘2WB;[‡ÒN¥8Ù9£ ÎlK«–M.L™*¡Œ&¶Ãí)Ï5Y?ncÖn^b,jû3´ÒÛÖï3°Ž·©$P¡108Yëš–0< ÒÙK°}d„Fë=?,åÓ… E÷YâÆd5/3'õtäÌÍDöðGH2°˜·xTûg9pË@øc(S[Œ›Oó’V2S MRl:kŸÊÃí-E²Å…èMœÖÔ Â1/‹qÿ¿õXßSÏÛÏüï06nƶóÞ‰kYœA(º±¾|íŠf‰vå1*¨5„Eýˆ„æ*…Tu Þ®”l¯¼W!ëèj{›£ ¨”äóžgC Ëöñq‚nRƪT1þxà²!‡S7M†h 5ËÍ"ÌðòÀc©9Á  -êuFðÝc•ö‚¼E×ö¾‰&›q(=#´½œòÜüK¯$4·T‘È¥®IûµÿÜXœUUoâ5ÊüÿÅ8§%åŽàa• Ìm/w Ðù©9ŸÃ`ÿgóxW+9ð›ñœ|ƒ<û«þ-<¤Ì²]g©ý€IZl¢É4@bà ‹'çkBíšv3nqôiÐ8Ïf"¬sn ‚§§(ÙoFÛË_­±!3ºÚÁ-‡.àö,ü7l‘NÖ8–?ø¤‘Y†ä«n–ž ¹ ÕŒ»˜›nÿOkŸêðÄÏl¢ýúÆt€t |9—Ý…¤ïʪ)õ8îRŠ1c„™¦²Î;ªDÀtë@8Žü=ý°ökü{=BHPë«X¦âW:|³%«Yp÷¨ÀÐ_:«žÏÎFBºn0}dÏÆSVm‡ÜjRoÙ)U n[*Ûû;çwZÚà -g5€OÔYºÏiáèxÆC¢ŠFKÃâÿæø-¶Géÿ‘„ò0 ò ÐäµÎ˜– O± Ö¼±º¢{6bñý.0ج–aåsÁ¬žJŸ¸?éðÍ€ø[ÚùžúܘjA}ÅC·ñ&GFZòJÃߨ™ÕoLt\¯KrÖ@ÛD¶²eç˜Nñ»„Cé´ 7tVjJ“R¦Îêä¦F \ £­µ°Ñ_ãÁËsJÞÇ ‰´·‘›y>^µò[•™·TX÷h@SØT¡~%0§v¢VÅoK>kâ5gk¬ûu*‡ã÷†þêÒ[ëÊê9ÍçuâµJíî¾lÿÃvèP!ŒÓ*H§‹GW]}/ÎüëÔ´!Ä4—²·V ÿcteiÚù…]¯FD44îq|<;ˆ¶EEgÍ~’ÁîöÄ0ûvšù¶ Ô Ýèï?< a£ê¤x½LR‚ЦôRW“7²ô„E5Ïu´¡.ÖïbÞCo+ô?8ìC¨óuMÌz–n©„üX²ëT—ÑÞãÚ@)àdz‡{gµã„Ž(<¤^º_Ã'¸rÁò·;슪Ká—Ø³(¯ŸÊBV1ëNhGÖMú‡öè]ǰ˜ôzÏd³e"Ir)>.„Üøæëb‹\rÈ€N²ÿÆP.805L* ä©ûùTbä –¯}yäêT¦sƒçmënî?¡ÞÚ5.Šl‹CŠ:Dd îæ¯‚T5¬·ö¼¼¶y¬ …¶^Eª ÿÿñ[ÚoÝ<„&ºZ4}«­A˜tO1yÛ$u^F›ž?{‡ aüLË»R§ ñ²Û¹æÍç\”ÖÓj­Gõó GJâ0tZ Ó¼UUŠX¤m`§?^‚_höB]ÚUÍëcyÿ)—ã {Á¸pQ|3*\MуzLu¹R¬Úöü7§ƒœÆ-×ÙWhxwÔ„w%(ñÜ;¿JhL”¥{øpˆpeK úŠB'Zàës%µ¢ìV´(úýÕ'ÄÍo³„&àÈÆüÜ#jªùyìÅhuP*“¨ˆT2%ŸZ2•î¾…%g_·h»!Š aÞŠî½l¥ÏØ:¬ËËQé :Ïd8eÑK„¶ùòüL® M¯á%­Tç€6÷ÂÁ¢Xðsô÷“ l¯ÁÂ5¬ºGEDcî…e}Gvõöv Ñf>žüy…ÅI½ïǵjG2º±=«^öÅ<ÎçõÄ„¢u£îü_aUÖK3ÑÃ:~;Ö$R‰ ™µ¶725ðV-¾e?_ê›Ç­¨¶~Ñqro/À-úï'9ÖH;\œ’4P¡ÒN(­èžÁ Å™ƒ“ÕJ†ªT[K½ûòÒë²ê´õÎñ@½°¥‰½¶1ŽÈí±PŠf°œ° @É—¾óÅÑPÕåüL²vHâ¤ñÆ^Xc2üÖɬL+ËJ òx<#¶h~ÅfYñ©Nƒðе²Ý$ãΑÁ£ýìúokOJè¿Iwñ~þ Î[Se3 ×þÔíH^C¸ž¨ŠÈ§Ø'Šñb%ßGÛ±ݰ#ø_HF˜•ž'p2øx—ã·LËMÈ^ÁHƒ -‘ZãŒ0áAݬØzÅ¥ÜÒ£‘Œ¶Kiöº˜Ÿ§ðöZÙ‡UvêªgOé}Á!òKzM+¶ eŠM™&`BQg]ƒ}`Rûñ2Ñt-ùe¿s¿f·ŠüðÆ-b´á‹‹vƒ9<¢j~uõÈÙ…)Žuù¼9tïçÌöŽ_®Ûßîy¯©Ÿ¬€À±Ó×Ñ*ßrŽkpRôʽ)þÑŸ¤®éý×ÕKOµ¿Ì¼ZA…Ëã{µÀÝ)36Œ]äÿ6±„ž À‚í¾+Zêܛˀ9ð2ˆHÊŒ½ŠJ/\8õÁ³[]è¦_œ³÷ʣͥ è½ù ÒS¹ä£XDñ1Æ©êÕ‘(e‹îq ó‘¶ –à*¡tk稚z ¨¯áchÖâ˜ë„×¹(Ç„Ùü1ƒ¬üïÞª*¥Êl RÙÅLTäa|½öŒ,›4Ì ÌXæq/OC™å›¥òîì5AXRçª[x®4è§°ñ§Ìa¥Ò€iþ_4‹‚lúx4É%òèõvfãªÓôµð~ÎÃmøsªO;™[ùÌŽ•ÂÞ´’Qçù†2 ?N"´™i2±žJñés¿½[ð á&|FêMc—_²ù@Dó—n4>e‘^°žñ@¸°½R‡f•:ù•Zlã¯`ôªÕÁ€‘´ LcH¥6¬ö^#»n,¿c)‡iJIe—mý¦íС ¼Ô&EÖ„¥Ehe0ÓSHÞ¤;.SkïÞ¼út¡¯¼Ç&¦@“ÚØ(šK¢3ظۜb@¸ÚgµsŠYíWõà7œE(‰ÁÉíËD’UOª ÃF  »ºJ6ÞVEÂKã®d"õràD/ûŠM\ú®ê+41!Ä4`Gц~ž]?ðH­ª+©_'5îSäd߈NT2;ó¦‘uÏÃaô eVsîYrmcL8ùÊÀjýÿô4ã'S ¸#7Ã^iŸ 'Zf8°pÔü1¤V ¯J9 ±Ó¤Óô|[°÷ïÕG‘D\ðÿÕ™á{V¨ \-L4=0¤.<˜M- }>ˆ97£†$TàK²´õ 4ª–ت¶Ê^>xG¢‹~ÉÊgÕëg£±&Å–ÌV.ïd€‚µ…y6ÒóoT~vØÙ0k…Þ–ŒÇ ד¼<=èekøßÊP±„UõÖž$²t!%¿?5l÷Ù¢nVku*SÍ¢>ŠxŒX¿~^Û$ ðüÜ$¸Dêõ 5‚ú¹€±æü%¶ˆè»úg5ãq+ZöÌÚPTID/ü1ˆç³GþeŽ€²v”çßs:ã…?R€}~[a•:=}#æ ɤLð »Jí>-]!j^Œ7•ªH²Œµoû-îÄ[_ÕJÊ…Í€(Eµå—(b½¥M}x¢¬•îøˆ­ú»¤¦EÉÃ¥·ý¸2µŒPdÃÅ%i éçP‡º÷¢¿¨3ªZž’Ï'\²±Ú9çŒUeŸŒÀÿQg`„9,£½ö'v‹øð¸—>CñïKÕ¹N8w±1#Úàß×Q——´6^V>€—‰°ÀtXœwWnXaîQ³ ºþx$kü1 ‡…ÿ î¹ï´Ñ‹˜·AËà™ØjN(•g³uÐ'˜ öŒé ÃÐ(Z öû(„f„tµ!+æûy®Öu½;ŸýêÊ;aS |@¦³L_Ó…Eš;Èu_¦–§¤t&øÉxÞAcøêrlªZe©À)ªáö¥öÀµS\„Ÿêî†z´£xÊSòÊ'ÿ}».ûÝ'ýXœ|Vð!™06lѵj 3Ó@ 8S4d@ëgËÌky…lç›ØÍÍe[Ï×ì\‚YR¢=}.Áq¶^ø+b¬YSqñœx˜ ò„Ø's.ü1‡ô,À¹ÏS‰½×Ç0ËyþòÂ7ŒQÌ ¢”zQ'Y:-ÒÖM"jIô’¥ÏaTÌÄ”C–¥ÝŒìj>GÌ!0?åG­½¿JÕÁ:—Ép̳xÁæë‘#F-’@ÿhÄD¢@‰ œ˜aÇ¥eêHYi°·ø¸B©³õ™5ÃÁf»DÝAÇW+×ß‹(¶Ê¶,Yÿãy½Î°Øè:g-Èø,"q[És¬¥¾Hø#ÒAg̲t» ,:Òª„šo:h#¤,Ë+ü*;ç>6¼¤V»{üq1œ%ª¹H£ü6hˆÅPæÌ°ð͉Uà+‹pÊ-ú~__Ѓ£¤4êoý`hM‹±k…àòÝWmœ£Ï¬Ü•±›Ïo­5¾#Iâ¹'{@¬ü#Z)Ðn,ÇšNEÄÅ:]竈½7£‰;«¿ÑÆá²büç ¶â!„àÍ2‚¹<°PNÕÍÁ–΢^æDã=ú|}ÐcyÝw{àÝÑ©Þ5 ô¡îš)ÖYhÖ±·òSÛwvî.‹€O_\{-9OÛžg½f*°Ì| DÎB5Cö™ú·›°Z îÏ=ÁÑY÷Z嘠Bª2YEÏOü1ºÁ TƒÈCÁQÍ Ò[ë_¯!­5³šNl°â®m§@”uLj³%c;UðþÉ y ,M sìÕESDªDÇ» h¼Å„”çÞá(sñ Ðs~ÚX">“ÿ ²šH§š>ÓÖÀòmïôÃç j1ˆ ï²AƯÃðߘ0PÄ í4$W‰h‚ïÇ„uóô¹FpºB÷~^—à&û¾ò5I2¸S6‘¯g,!vûåÞúbtPEË1H´Ú½A†Bƒc…“Ùöâž²|i ÕØ²Ø·YÃ\>NŠÐŽî-OggSS¨ä kµ†":ÿÙÿDÚíßîÝâäïçæëîÿÑâÝâÝÞÞÿ¼×áéííçÿÑÿ‹äîêæïèèìéòìèÿ™àæèñðõÿ¼üŒ/ßbgÛ©øÈý>ÅOòZ´àòuÖ[[+AŸ…‰UË®¤+·Òf­u-î¸Û®(¡¤«­dˆŠ­¬¯!‡ôu±6 fÂæQÕ?o¾U¤\`âÆ^ê¼ÂV ÖÕ§ð«“ öåo†œUäȼïÁ‘§Ù‰ÊáºO‚>Æ£é~QÐ/Œ±÷ µ®Ht„„ Šy óÔ3ŽÝÓäÐ:ä)–¬sj,j´Vi—S5‰è¯GY1O.!=3ô¤[wË'¦ËRøÅ³þÞ D€0ññp^…‡»:ÓE#>XŽK×Óf^e1€’OJ…qÄ„ˆÒÛ'æœ5JùR—*†Buöãnë,ë0jüBÆÎ äè;séÃÏ !!gÙ…Ž»K8‘dêÆ>6ˆ¦üD¿iñ¸5°›“˜›¿j¨&°Ã!¸ÈHª:ÎÛôy«—7¯ƒ…yLF•¹M%öù=[]•¢«ˆöÞ f‡£àËmœ'<bÁ¬ªx-¢H™åÚìæQM(­O vCˆ¨«Ð÷éý¥j}j=¨90cßè°J0»‹f÷­¥gÁßäðèxÑ{ m”:S#'kbÐÔøØÌhÍö2ÏÅ‚iÆWf:§öWÒ^>ü|®Œ~Aè4QƒÌ!Ñkú#AR†S3ÑO =iù7B‹“ ³±õR£ dxÄ;Ód ´žWQrƒ™‡’eÂÔ&:ö0Œ ·ÅEÞõº«ÙYÑD6ʈw[þØ¿gãjP|S·Õ§~ÆÝ¸IB݉>ÔëÈ8üÓ¿o"3Pe¦¾qçž‹cYWŠŒfÌØ8ávÀºâ—ú ù¾šû´F¾Q.® Z€8Ý<æq‹Áïã½-Ïj£&Ítõ¼¥|4åœÉb$äsæ‘ûÁ…˜”æd 6oÐ…çÅòíÇ‹{'âQVÍc È…iq S£€;%4Îô\w DºaeŽëúÂé±#:çÁMˆÖþ®‘zH?¼Eˆ¿SÖåùœžÎ(˜ÊÜa°K$†ëƒÅn»çºF]‰š@n–ýGÒ¨v”™|ÉyTÕ=\ÚÖñwŸ'ÿÚŽBøcÒ)^$*ËŸüMdSrÔG*%4.ùŠ|ìK¼Ÿ¦ò¹nq†ÿ/™¥È—èN¡>[IK¾Œ+!%fe bE‡áM‰’ “~†D·ƒÇûÕ–þÞËâWÓ§sùþsSékÆã·%mgè¿üý-â‘ì%}$ûѦ5»¾[ä÷¬yc@çØAY˜`útAvú§¥ÍÓA±ND®1+ìÃîštðkn)U™De›«9ï|AµÛÌ?=Ëé×°@—(£þ¹é(ÁÄ‹jäý¦­ŠÞW¥ ½¨½Ú׳¢-ÓZ>Ôx²Ô³ÌÈOæ>üMvN=ÚÄ$rõ?g#?ä Û ?ù& ¢F<øjĉLÂC²¨Ý cAƒ‚Gé©"~ë~á# Ó¦ù%Vç¢ ":—…ËÕ¯}“€ÿLÇ,VÞð]ÒU}€l™ Ã}¤S­|ùÒžT£Œ”W·z/µMÛn Õ+ÙGÖâC8;@¨ 'ï#å’ÐHie$!N›¨’Ãú$Vˆš†ÚÐ?¦¼uˆ³xÇÅ-:…°¶»ðÐîM85³ÇßFò›íPÉ*Q½?ÈŽQë鮂Áðº1*Žë­BC‚–üIý:ˆNW‡šÃµ@ §Gñ3ÝîÖ¶|d¦ÑjtDMÐ…>zÃcLçeN¨‹n™~öÁéè'ÀäÓ0­Aÿ6ÎF' 5zê¶m‘<ÏSRV{K€¸Wll]Ý›][[XóŽiû|Z2?æ.D;ïÉtÄ”"ºŽÐ„>ÓbVˆ?§œ Õ˜:ÞËøši …ž¡¼¬=Ät>Å%“v?‰9&E­VêT>?.pÅ×2¦Vè×VÔô& —°“Âïë;ðíð› -”ÁïËéÃh5Sdÿˆ@ß~§ž‰y«êQÿæÍ}861;e+vZüL³ 5Y«K¶ZG#‘ÆŠ¬¡y§Ñˆ7ÙÅ*̺p9Óu*†¨£#A[¶¿¾f;žàWÉ ›âh©J¤µtYc‰…«ÑWFÁÜÙÚÊΨ³ {Z_9©’ÒÅ´wZ5 rÜU­)A×›»·›.'û™,˜À5ʰ ÒøYxàG¸]yÎýºPˆdz¶÷»‡Ð™ã@ïwñ¤4Z݃fÞöYRãµGºz!¦„{UñÆ®ûþuV+ˆÖ,D'}±6™ •1™skü¾5î=—Û£‰ËÐØŠIªüI„2ã<úPÒLó=†b¶Î7¨óÓ"¡S[Ǿµ%­… ˆíÛ’ö០ruZ“¨? óø’™ùgÙЙCaBf\U£•ýþ7XùOö›w¹ûóЃ1o÷žÝ_òÎ4”ÏLlIÝ¡\t¦$Ëè¼Ø¹±äÛa¢çŽšv`²]ïmH{ ’Ì4¬)¦Ö’{syDÖÈ÷ÁS—G‘æ€=WoEmÕXÝÙ­åWa ë¬N·ïBš¥Î”Hƒ ¤G²è‡ô9¿§vsK¬6·hÓ•ØÉ2åyðoxüMvMû<“Ù½#/îi(¦ämÞÌó\Єvõ,£q¶Ì¯Ü†¹¿$ÿþQ­iÑ~ž@ô£u-2Ö WÙ×B N¶šÀk`˜=ƒ. …-ya¾EW”‡&â©zF¢TʪÊèwMð°äˆ{Èh,ÅlþdV ï½’ ÄùÅ€g2Ã3ßÐ>»%{Jþ¹B¸PÅܾìÔ"g'ƒ®ÂänÝCLðú‘÷hntCBóÌOΜq¡ùQ“%×^|“£˜íu-ì^|Ñ¥ÐÏø£9Ú#È3€úÝ¢g¼bÃPÿ€éλü1e½¾÷Þs%Ã,ñæÂénÓš,±xŠg‘Da‹¢>f'ñ\Ô_Q–ϰô9ˆI¢!e•híÇ×ë5ºF‹;ÒåmíŒ!4/ÚLõi¼±¬°¶ÄŸñ gl=©ÛÀüG7©NR»’F“pý@3‘VÀôÑ2U,~@þÌ}»6]sëÊ%eUûìtgƒ)5µÈ4šÜ¬wÂ2Ú˜À/‰¿Û—ÊÓÖÅ’60Ù‘ÍA£ÅR÷Ä€«àCý9E!“è(.ÆÈk«µ Fu ®™¿Ù)»à«öœXz‘É]mÄ씽ÝŒ¸©þüMX[ÍåoE,ÞÎáì OëËλ—@ñi˜‹rÛ$qš1â‚<#ò f`»ÎÈ'¾Tlbj·@ü.ŽÛ‚þ5&P*vµCb‹_ªbeç{H)–}¸Gq¤lÔé…ŠhrƒîMÒµüRkàrAÂÏ"5B=IyÌ˼¯…€¹ë~µñ$yS”‡™HÍÇÒ6¯=œFºJÕéAüs×Vºvûr«UíÏb'žWo½I àQ8U¶2ÍêvbvQý gèÕ‘Œ›½æ¢ë\UÛï[oYeu×ÏUîlêz'üÙv«,±×|êÛÛ£ºÍÞìK‡úÔÀ'TÍ¡b~¥86Ø_‹!4À»¦`þûRO#LÖr»ßðf>™¡'£ ßpÒ'“Ke¾„ºŽjVî¤jûþvCf9uÁ«T… o­N;‡¤Éx8lï{}™àc!s…Ì¥þ/«ÔI²J“Û Ô‚¨ Êï¿v3}ÙEíÆú¸ ?dƒœ?ÒлOçÑÙG¸ 1ƒw8eêoYŽÉž ÐBŸlî7©#öÁˤÍfJ¼¾¡ÂI4bTFPl>‹M¹)*üJ#3†;!”£ F­ÑV’ò\wÎoX˜—©Sý´iV1d«/„\ÎPöY*4™Ìè‡Yü¥Òrýu¼nmiø¦|έMuyöðટÞ¤n¹øú‚‘J¹^mÄY6$à‡~}*ya'ÙX8µ9‡¹Á¤(Î<ûD{0Ͻ½³&Ú‰Ñâáy^žæ|ÄšÌã‰,ZO¶‘E´9 ‹1E07~âÍŒ¸T$ÈZ‰qº„%ÂJàtB ·Œ]ÄÜê'|ûÏNÎa¾ÿL†Ü9“áÒÇø4ÑI@Ñ26|l:ÃøaÙü1‰Ô`ã§Wdwˆ×HÄsBaŸ iZYpU´Ï?øBêâ˜Ååñ¿^{°^äù–ôå TI?óg™=2ˆ^¾kË?1·|%=+4[]*ëa¿!e ünÙöÒá soÏææ*ò=ìßšrwëÉŒ²öeé.ùt¨WûÂQþQk{HµÚÑñ‡°_àkZ9Öé‰Á Œñï]“µ»{´}Û.(ÿ”~¾ÔüDŽ˾šWÙÙ-¶[‘4ÿxŒèa£U9_JÁysù_Iæ UŽoÝC¸êœ´I+@ßË.gˆ¯Ôüß·–gÃ…<`uÐB=]0ºkíŒÚ«I&¿¤•¶ôf ‚Qˆ”Ú#pØÇy¨b6ÊŽYq"˜k j|ç©PÀÆûሽ²”CÞh%B;ÛO®$#°ËÅK]¦¾Ä¤/Èrq›(~·9ýÈBãPQ3…l»uBXP•³©ái+JÞ[‡²]ßáÙø•AKV¸”ÕFÆ~,1Y/Ã8a+Ö)ÊÂbÆ5ó]ãÈQ½-˜ÐE) 4YnŸ š@ÆûÑ‘ERhÒ¸˜j{¨±wH7äQbÿot0= îžÌxXgAx£ó˜{bt`)þ¨Ir]’7'ï_­h•qjú§œîRæ@”G§È U;6¥¾…]1LúÝßb=\¤p;w&×Ü‚B*Cƒtù¨ðKŸ ÔSX:c®XŠ§í  Êµ²t,Gâýa3‰ûžlƒ<€â’ä3ccÁÝLƒ» ^ùÉU) hSñýUဖ6×2cŠåš™Ü›,øtA_×ÅýBÿú”_lE… mü8w÷Œ×¤©Ž¹X0xíÌÅ ƒõÀV•‡7ÈL>¯n*YúND%Ë´¢ÌOM$¸¶ô›<•†ÁIëσ‘y"ü./éUZ¬åúyJ0ymtIlžöïè UÄÔ¼²en2ôÜýbåº0X’™²Y*Kg¿Üjé¶=ñ`j†(t(—Uà /•ÍÚò‰gÙsýáýµ¾ÆÚ—Xkà«0ÂÚy2Ez¡RÛÓ{à§‘PÕö:qaÃG÷<>°iw]´ýШ(gæ&q—ø4²Ë­Iz2í‹Û¿¹Vvj^üS/݉Ü[úüÉlÁ©BM72?”\: ksº,$uŸIpÂwÔ£˜Ö°¢Œµ9£âo-(¿æ–ÊüIõ]¹¡†c4“Ö¬Ñ(æF÷1v¦å56ÕøQØm}Ó`ój½† O}_ðØ„h:Ïþ$óÏê©$)04Æ#|ð»Oü¯ß0ðjm—SøÒ¸´wÊ-ùôðê1^µã”×giêíʪOûͦÉD>'])3Am8´Üb©žnDuݞꙩ] â€ípÒQ¦€}NõFBI£¤võˆ¥ÞH­|À5[I³–jgÚ¸)çä1qšfãzK>d€ôÔGÕ)A1§S,¡¦ŽŸ²IÈüÄ.tïnoŒ\ÇýÅîžßÓ˜}‰åtùž’’0Ûí´"×oo´À‚ì µSá¼H¯8usb›E+»Ô±­&nü6¢×h>ñ åŠxQXØýL2í@šf@Ç€=;QÕÅO4…xD#¡¨ßâÖÓ>ž1t•Z©…<s®.4 ø˜ï솒¤K ;ϸkñ¨¿k_V1àeH®õªeZ¬lFn®€o9x&—Iáâf¯ÿ—àJ6¾º4Š'änUçªúM~•¦= Y€>`LnFãJ(£üi&Cßý¸ÆÂ‚%´i{;ƒKE(é˜ß$® ü¾T¶Í|©¯ã€8S~÷µð! ¢Wü1–#³>g5 ;1B:>R^½w,‚·èxX]~¡iÉ3%Ã8®Ghóì@àõ}¼èµÑ+à=Úô¹Jºag2–Þ&lc䈮z¢qV4*QJàb>­÷=y4BñJø %d@yU†K‰$ç_¹óŠ0¿aV¦;bì÷·Ó4„¬çZ$ýÅôÐÇŒLÙ? { 2-:kx¯¸j5›Â¬{ ìpL-GP)¡ºW.= ÚÈkª!Úƒ¿vÂ3í5RŒ6®Ÿãy{ü @¥$–P5ó1â½üÊpïsŽá T&ÍU ¦Ÿ‡ïî3)+¯ìOÒàá½õ\j=Z(oc{= GtAŽ6Oa›ãŽl ›­Õ¶I<À,WŒž%Ù‰$V'å› ºM¯µURE ø !"6³žkŒšÜ£óEו]jsîvЭëO5b7Kâhüº¹žóÜÀÏiuüK‡ïü©Má¶E½>˜mjúéê¡ 73C‡¢¨™“ní÷ßQª¹ø¡fdœ¾J —ÞÆÚ ÔÊu´gÏMéàvj2ˆ¹`x&qÍB=õÇ©‚A¥.è>8ËÖtÅ}å6ã/Õ$yÁg™WsË.1¯ß@ù •Ú$Q7ã5Œ+ëuUˆë’ç~ohÈÉí½ø²SÓi5ŸÀ­>—yÞ >Ì73ÅKú?‹]D­ÃàÞ Û¸ü°3Ä*áwGµžÊHêÎh{/0O±dj½-aËølò‹t>¸Ñç9ψ8¤pP„Që¿;¨t÷œyå!¹XýSx¦n‹ £ü1?°â3ȹG jhþ\´íêñdRÜÅS¥T¡.?ñü ê³Ü7$û\© <‡¼Æ®N[<^*û.fúà(¨.+ƒÓ² jõª‡?Š:ï£ìmÊ)ÑDe¹äI¶ÀdôÂï«@J=ÃGÆnˆ??û’J=ÉQzØe¦œ-ð“0ÝïR^;†e·ÊÖ= d“ ”ÁhÎ÷J4¥æüHãl8<¬>¿C*ÊVò•!S÷{Œ÷µƒVGWŒHÝù&× pòK[‚ð"¶!üIëó‚ 9‘mDx–ךw·î¯v2—ö `Vâ¸(¶<ÓÌÛ®O‰öÂià[°?†x¢l»³æè¦Göˆà\9cæÙŸŠŸ1o¿”…e!Õ7Ùî^Û) %A&Ó%è ’I¢?ŽÑHâë´¯5I«Ù‘Wrè+£©C¾‚"Õ_Ð ã!k‰LNó0”,5v¶ªWÀ¨ËfÈÖ+ÿ&@4Ÿ† Ñ[OnŽöÖ¿šëÜCv/'!T±-ŸdR~K”5óå>¦(øLf÷Ap'æ‰æ[QÒÛ¶š°ö#"ü._Âßc]¢'°-b¶µrúÝÛ~uÄ×ÚrbU ô"œ¯z}¹@K,´¨ýþzÙ[»L°WQö°©ðaµ^ç<ê`ò0fÐ7BÁhàÌà9f&3r·$Çã±Rî×OÒ-‘ TœÓQMd?ÆK-¡8sGˆKƃÁJ5ÓN[;Û>éˆLB¡æÇS×DÇ…4&(âÿ)²vS–ED\–~¡%öº@pÏÄÆZ\3ÙG è‡Ó:×sc eZ"‰(&ˆùyÞˆÖå|7‚&‚t~e·o%L¦¦â8Ô±-d=˜É£ë¶ãüIâàk\€»³¯Bè]Í^“Ø‹û\Ä|‡Ü¡_Òg ¦g2YÒ‹ðEam¥4hÖ\Ùû¸=f:Ê?IqŒz*n‚ÃÁTÞ±úaT†õyâ¦7‰;«{q½ˆ°Öý5>¥è;K³uz¶L,Z±µ"ŸÔX‰«4a óSÙøÜ4Ø’ÏóQY;3Œôq†ºžÓw ¸–`ëÏ~Õ-zq_9;Á‡ÝŽdçÇ¢¯ Ys.—µñ5A|Hù×ÜSüFŽGÌNÂü6vé1u,ŽË8š‘ÀOÖO‡îýÖuÅsÇ+¢Ir4î},Ó¨üKÀu•ìA£3 ºrË1$™ÃDéþýÃpª:Üdî÷%0@gbvº(JR?C 7ùOŠ1„ecŠÁÛë*Y1£M™Fõ5Bô6`Gïƒsàqå£=VÎP+Žm–D”b@1£é²@`}ê$³Ó@!Õ’è.› äbE”%'‘Ù•&&c¼ê‘ iüIî ]€Ç¾à”îÆä ¡Gc‰/ç¾´øJ Y ^Ýj{C “f[Ô\ÓÝ{™göé”b4 6”’ÝÿXNÕ4 ÷3 žû—» å ê;þ•1¶Xd~2¢Z6ŸìŠ4ü|®bϹYìrîº݇6F‡­û0º/ ’ñ'Цçkâ„&´U¤¶™Kþ†Û½ïÁšñ¶à)Ádh×Y™Sñ{¿fVç—&“{°D–Þ=¥PU&s÷yÐo9tlÔk¤¬…Ãi2¹ô!̤Íml.t¦ñEzf-]þ_âYÈ(†Û¬ðmçÙÜ2Áö–_ÀˎưÆâ™4–XŠtƒÍÚcjºˆï_ò™ñš%¼q¾¨ è•éøëtü=ûIó]&$᣹ƒMÊûË¿—;¤Uxe^(òÂÅS'o—d¹Þ·í„Ì«lr,Ö5-jÞÆÃñâÆŒB fË,cÉ?”V% éöí0á±°[ÉX—¥qOJ¦»Š7êu‡á˜Aü2~OÛöý莉3í,çh á5ôv’Ÿà°Šp^wãZ%yolo#%í9´¥:jÁm»aéÛ·íNö ÆO;*ÈêVOü¥p D•¥oéY'?‚x‚Py½¡c=¤Í »;‚"eÑ­G$–Ag6ÿ1 ò}¿ø„£Ggb^¥³àìPÀZtiѨš=î4>ëˆÒ2Ýæ½Ô¨Ÿ°Êm|ëe“ì)ÏæÙòÉ]¾]‡7©»}B¶Î•jŽýb.áÏÿu5@^yÐ9îÌò®ÆtIHößda6¤µÓ¨_ôú$(ÍÆ¾';téó0÷#YÔ¸ro¹¶ãÌ{ØÉÏ&~0æþomEiñߊµ q~²½A(¼Ÿ$;^Õ1¤zé*{5e´Só(èNÎàðnØ;"œ¡mg½mžF«Ž’]#ç즨R ɵüáÇa°Ìð¿¬^¬žYekš·¾ÁH”»E¯è˜,÷"mö£[‡×ÛrÀM¼û:xýXÛyZRºP›ëô5SØL4 Û“‘um´ûüõñª?ÀY;zŒ¿ âü…E–/Õ8o:AÍ:Ï Î…,eg˜•ú&ë.!­ú]Ö[ïålóâ¹3Q×»ÙÐ Ž„"ý­wlÇF,’2ƒ?ðbºU’Ñ0Ó(@cä-lÊl–!ÃŽZû楋±Àè¤LăBîþ#î¹ýfg%w½ù97U%y(Ö)š«˜oÞrfÔæÓËÉ:}Œ­zOM5”q ”ï_v\ —œ.„åxä%¦ “§5£t®ñ¢üNM'ãiÒæ:Ω%=2A7 b0Ó^a$ã¬ÿçÍÒrøÞk gZ²o%JG™póá86›„þŸJlCΉ煰¶G 7M®»Ln†[”W½Ú¢²ÖÿŽõÛ »¢vœ´õÅ8çìàÎú4þ®ræ/$¸H;YmCŠ[%1S!âŒñ„2.·H8 @Mí—Ý3r nqZ;fSQbŸùG1â$x%E=˜·©®R.3öñU¨°«ÌË—ÉÛXmuFÛ jò˜k÷Äœ’/ñoÅsù®þ¤Gûêo/Ÿ¬Ž³%€)ÜÏ<^ËüLóuŒÊa7ØQ7®”®¶âé›7:íѯö¾"Zj¢Iõ9ÏfRîÅA‘üî¶Óé®Èí»Í'DèEׯøàöàá-X^逦·ŽyAÖüÙ‰5õ—g°rÍíÒ¬C-ÆŠC¸"hÜ¬Ó SpÔÝD%ùÁ€º.|¾d%ú.£•{lõ…‘>Ë÷U©¹Œ ÓÁàö6’øï=QÇ×6˜úf»´øÝ¾Ô‰F#Þ¹•W”ÇÑêôòú{£j,”eKƒ´l¢”MîäQÐØJZ³Àri ¼?ÝØË˜‚é¤5,Ñ7áü1ÓïXqâü ÈKÀ<ÃP²¬ ’Ë =ˆ³M5/6£¡ܶ7,ø†ë:=«ÁúÂhêó¼ ›“ŠÌ®#LðÄ‹dÁüáüÏ‚¿Íº Ìh$¨{²¦5;ò E¢ûp¾äÎ5ê/Œ'-,%î{!â¿»ìÌNKE¢°³çÍŸÄ×:ò[H”JE*þ2¶9ŸÖY·Ùžèž—ý×5e1›÷â•kvŠAËnkMw§N«qW#‘!¨5ŽsaÒ§§\ÂôëVÞ;°9zHüËÞ4ãl°!W,øbÆþüÅÓ䈅bÄæ"lÔKJ¼^½«ètë6Ùc;Cæ3C¯Fóèsé¯ÃÛÎ;^œÒ—µdIN;œm#Ñ!pnýHBØDgDß8÷Rb*µ1×BÁ¹¨ÆØÊpütÚË 1è “PÆI8ÒÎsR:ë¶’hG 0gÝŹÈ9 l)ÃJÿG)ïS@Qô1oH[/ê'Çá–¦$ÔNö†|ðµÅBGÔ ÷SkÈZ);´V§Ñ¸}“¼­k ä€&3¨°è6M›5ˆ†~TžRÐ,粦V  {\¹_F(Ë Ù/TQ¥üÆcOgÐÂcmâIå±Ü€• j³Ûã5ó8eRV¥·Ob‚M„z™iìôØ>‘ù>ÍMLÙR «¦*þhP„õlsš_ƈ‘umÎ×ÌÜ t”ŸnÀ’2‡a¶¢éa}öèkp,ë"mŒÞÝ’ùßzÏÞŠéMó¬§28”/ØŸÕ»J§á³3#ÌŠz·&§Œš}©¿>W µÆ »gà6ð5tC§ÉOOMÂÚ£bV@PuÂKT»Ð£ X2d–ÌbÌâ†ÿ‡l²ð»=‚Ó4$â¦äj9“HšS¹–u,C•üMNšÃk2é]Õ¼ƒw® ñ¦6ƒ¨~yO¤e¨ ÍYÔ$£ñZD [p=ÇTe5&%ôA9á¬ã®T1Y¥oJ_¯Ý—&ì¡§«×Hãm)NÞJÔŸü¨¦Gy[ÎHÞxV¯ó4ÈV“Ôô#Ñ–° ôJƒíÊ̤­V,ªå÷Ÿ¨™Ž¢^]ŽRÁÚ­s–?ëò´“.EŸ:ÖJ%5ÐQH’û _/õ¯v‰à¯H£.}6×ÐmD}Ä&ËS½'ºSsèÖ¬ïªÒ>“kÆß9Ò9¼ÀÆÚ…æ“&U«X¾ËlÊüMW˜ÍØÉÓœ·ÜDê^«-"³…¼åC¿y=Ÿ(è@¸¥òÞ;  ojÝ„-¶€¹|§?k šFÈÍ$j0×®á‹eüq³`^t¶ÕëU v¼%#ÌîÌã"còäÅõñ© Kû12kd}ŒºwdÍuIµv-7.„-ìÁézXg2˜_÷¼qŒ’pzÈN°Ä6ÛOJ¹¬˜†›zÐehÒv%cès•œA¹2òùÝ^w¸ÄÔ•² ÔÒ7FkgXñ{êRÔ_Ž!OuI(h®‹K~Æ8_É?<äòdœ%êú?µµôü1‚!H³6A€\¯Îd†VÜj¿çä¾9 3~€O Êœ/lÈÔ*q°G3 T²ÀÉh2<­’Tbœ€Ò^ô9÷Y…µ³h¤$sýý‚rèY¿8”8÷k¼ß1[ÈsΤ‡jÑz°,¯ºâVKÙ:“}åí9+ÇÑïpl_Û”P‘â α5j›òá/ý+Nw<†'þ/SZÂd›n¦ªÉz¸V\~2'(FοƒñY&rÖ׿™Ã#+Õ`õá6ú©¨ÊEØ&Dµ1|-g[}>D‹õ@‘{Xšø9 ûüÆf`q°9ó0yõXJ@ÐŽÒbbœ=DCÐký£FZ¦NrV~ïÙ'’ZNñoÊDƒíe~xý`|ìâñ½€:µUØÕ˯©€òY®ïâ3.óN}ÖxÛEcEÞ±Ç*ŠZ³&÷Çòÿ7P÷ŽØçFàym-¯kœw \HÙ`ŠýÒ&dúö,1ƒ±Ì-ì%—À›•+)·~'”­–ËŠO‚l'Ži>^r ¯Ìšî8)›Ó\ìàSæY½Áˆ§ŽÚÐ2Qo„D¬nCò$§ÝÐû¢œåÒÃþ6 ˜A{«‰åŽ©‚=KoqåL”üĉáÙîÆ™;¿ù•Š¥XÊÝ[¨¶¿‰ˆKT3-<"ŠG–Ô V +ãjlÅRòK&c|Û•Yä9ð~uzŒzƒb¾TçëA«R Ù E“@2ªp`Ð í &AMo ‚Uàk@•çqÕ55„h JöŒçÔl›=ÄuK½ò?Â8‘RŒÐ6…醎ì*÷Ü ìáßq–\z‰2ñhS˜ J.Vnƒrø K¤ã¾„Bÿ¾ ]Ï“üìäÍfßýØ‘)•¼jzžæ¢ðˆ)غ݈¿€cQJ,]®uß}´öX‘üMZ¤1чÜÅСz5;†cfÍÑ2¥e€Ù•¯¹Zß¶(Ð= ô'ÍZ´ mÓøbÏ{Ùbí[ûÚJH/ÜC5–©=êÂhtò‰”´áüÆÉ Ðf^5:¶Fñæ“cäÉär’ß¼\ÕçìÊŠþ‡7/ nìñòÃWŸA%ß_Ñ+!~´Ý&/õ0¬ó½®F? ª&Â×¼þ@œÑÏ*^ð(åo8?2½8„“…d:ü1ˆ%GÔÜa+èà{¬š½ ãQ•–Í2-`ÉTzüÌÆê7€6r8ì-é—½ç‡ûÐ ü{=N[Éš@ȇåT•šçy†¼ÞX¿‚NdV5©íà'aØŽõw®J4/áýaËVùŦ— Ã’·‹ó HްM§Ah9{AëG¼¿àŠ|J'å8Τ]œ›Í'ÑK#)iš*å¡cZâ_¸x+%~«š§ãC>ÿ n-Ì^îä6ìÕF<&ûÇØ•T¼·Û{¥;wñÕE{Û©xŒ±›èƒïLç„ÉÚ¤ L "cØÙð²`ñ@|¸Mv ”Oº?êë•A‚¬£mçh¡Àró@»Úd˜°¤™Õù=Á©÷¨ŸèEPð¬ -’©ïj¼g§öÑ-7š‘Щ ˾b³ÑÚß?ßß–Ðd ¡dûô2Ü¡nðfÀ!ï¨Gñ -Þ‡)V¥´¯ïô¡e|Ûš¥º4õcc*Á/£0©Õï:Í[·•øûbéI÷=„ZÃg\«Ù~m%±¨p ¾ŠHé9êþpönM ?úGía’òÈPõé[$<|uvIïPÑLÅ &àñ²e»îüLä),2 š7‘ç4©h»õÖËi6¬dBuwqí1ÆCo‡ä±à3¯beõPÍÕd¦’Ç–Sñ>ã‡Áì°”£=µ ?]¼âì[³QÄï·Æ$ =Š—R>Íå*dë]‘‡œÃÝïJ(4”‚qùج¨Ö¨Q jÞgæï%j¯,Ö“P°´ïڔʢë85Ðõêó½ÅËM5±öЩîļGŠpL,Ý‚ëhlÌŸ*I ú¿$+Zk"Gôu<‰[zÞ^‚(¹Eºl° àÞ±b6›pÈ–rì±½1xËüL°”"4§‰£utö‰h$¯1 Ic~k²*«L÷Õ‰J_“[ÐØòîóHH¸º‡.×$äOêå½òp4GФóÇ6X€¾w~g&Š’W¹ƒg•Zµæ,â'6LêxZ~Aì“’ë<-ÄÜ—jœ¸5×ÔêR;%dž›ñÎ=æ.ŸSSüèv{EÒúhâý¡kÄvA†ÛRÐJw7 ªñ/ÞNµGûçýaVzó„¾á'ÚºÁø¤ÙT*¼Gη1Ľh“0ß™¶x'„ïc¶Õ'`ÔÆœV$ût‹øpÞÓZüÛtÆ£wD7øõo–š$= ¿›õ¬6I×W³‡áµÈD°¡ ÿH£ï…G ØÖËïÀ(1é8À÷EÉEŽ– ÜOðÆ}ƒTw=ÍâEýGlõöBCsRëŸQyB³¢ß‹»Ü’öQ¸Õ¦E}²dµDØ‘lëž×&å3Á½ÔÂ^ÃÔ é\ùwÙ‡8ØšYÛø{RÙ•êvZb¡mu¹xêWsÅ™pôâ^ýR% J\_ë…rh¾ýÇ%ØX»Sc²QŒq®æ”`Ä/¦!]á°ìïë òÜJŒ}(™î×Í‘ýÂ%üL®, ô°ÿ¬MÓo¥cQ11k•>\¼žÒïÙX#+M$h+Œ¥r½´ðÚ s4@ÌÏýäH„¥ÆuRÅÆ C“¸Œe ÆçÞúÚ »Ü{36ÙñJ…ç›û]3ÄKþ“¿ù¤î‡’O:¹¿½HisÔ×õ™Kfd'/ùS讳ü‡›} ¯(²ÏõÐÑ}wà= ãÔ/h‹¶÷ôq´©e(·(À=œì;ôaÚè¹{¿ú) Éä[a¢˜Ã¯É+!LÞïClf×ÅŠ§‹[Î×PÎ~ŽQ· …ø_|]Þ¯-x,   eâläÐn“ÒüLìl0€ýÕ±¾fSN,²méíÓxmö Iœ:ú¥£¾ÝøÔC¯Ïz¶›J‚Ùå~Ãä6^Ìmˆr;½rÄÀNßu}™ †«i —˜|íV,í—^]ÓŠ‡é9Í÷XÙ×ä °Ú¿X¶)¹ÒÄÉQŒp1½m(’쀆iÚh¼u[kcdÁ.üņ tF€—¿”z§uʈ¸¤YÛ ëݸy~’q°1ô!Îh_|= díòlº^ zîþ««0ò%V:Ãô3kHêEY¦Y6Rj¤ËcGþ®/¹¸ËüK#æ Þs„Ø>)Ä”B©vróv‰nèŽÉ‡Õ‰Íùö‹,‹ˆ¿t2uºšåwÂ4e5Éf%ýjðë7oƒ 4¡zjà¶£µè Lö•@·¨oJø6e¹°‰/¤“²%ç몷øÝÀT‚%ÜW‹‰ž»9w ©UÕ¦&çÔz¾ g>çÌ$ b¾Ä&:£çæ~Çw•» kÓçDùÁÜQÐó*n+ Žw°S€˜ÇÎHòØFÃâïÚ-8ƒFDZ+læ>ø€c{‘]ú~Ôj îEx—4øWt7™:} T7'”â„Yà°¶c §'˜hÒDW(<üÊbm#}L÷9ç»@ðUVkMX8.q…a¿(Þ âsü¬z=2XÍñVP+ š–»ŠYØ2iÕ@vÄ»U“sÀnÚ–½=—dðõô#© „6®·$>òj ›(+¶7¾tQ´W‡8„¦ƒ~³÷ÝO›:•õõYf!³>¡?‰õìoŸÍ¿á®uVx®aý×fÍÒ\¹’üÃoØóš¸¹ÐqóäXjMéµÕ°í P¹4%éµW Þdmµ$ég)dÉf¬ó¶ X¯åáìûO­ÌŸ!=[Vnʲ½½ìÅÏ— tè† Bl·S†Íujª–“Ò9i©nãçï}· ½³‰Thl¹5Qo å¾¢{ñèÛ¬ÄDSõ¬ úhÄlï‚Iæ“CGàgY­O†£zêë b¨(Ë비H‹‡,™J×9\ˆµyQ‡ÐÓ8“OggS€¨ä x_ìY;íïô÷øøÿ»ÿ4ëêçæàçáãäççéÿªÿ9åíñíëÿŠæàäíôíÿ§éèçêñùöÿ8õóîþóÿÅÿ ü/9Ž\‰fô¥ &@)Ô ¯J–ø³I%(pñß™óº×›’”§!zý˜Äèë„êøAJ×5KmÌÎ"ÝnW×÷rƒ¥—4Oqì*tüfn&[ä³&1veÙ¡ÏbxÑs>},bÞýnÏ© pòÚC°,Š‚øœ@ñÂÓ—yy¶æ5Æ·ª¼oðf³ë~& ~Ž$¢„¸È"šH0÷¿†±‚—C3þC•c—£R‹§ü¤m™4†ÙFž:OÅ®I·•mI¼ðØ¢)a‡!eîpí¶ü­QS<Æ`ý..üK2>Ã\ÈGé«jO!“‚JˆÎšýÀ?ËÕƒï‰'ørü¡Ë_ßqAùt‡©xE‚v³P—þ3Q„7ˆÕ˜Aip¹û¼%Ô.³½ZÏ Ö¬NyÛtºî=‹+º6Œ©M?™ÄHáÝËt“‡y3 ‘˜·vyVÍõë(gÅy^ë‘Íý••òÇŽf±?­Ê;–¶åÅžÔ ¼nÓöd4Ÿñi‚A7%ûXÖˆås}GÈQÀºRƒq—Gð©žôK¸„ Çbºgä´Æ\%k…íÂïÍ.U|sRŒ:¹qN“2è@CuÄüÄmR6“'Š4½QR%=¥Cú: ÿõòe‘ÒÕDVL×µ„ ‡ªshÖ¿•¸4T=h´?c¸I&_Áu4hÂô*o¯˜RVî·ø@Œ>hÇ=´Aá†<š·âïgi3²³£ÌÐä[û—ë6Qvû÷«w”?rú……ZT0U4ýånô7Ô4PPxÌ»m‡ÜØŸÕx`ÿÆl*q´•9zy<gyeyûä‘jO¼ëŸ¨}ÚUMžr¹qß2ü°ë#ckö§ýÉSˆ^ë<Í1¦®9+à'ÌVrê ©‘¸ÚF«–Ë¢Í;9üÆ&ݨóA÷ÀH˜™bùÒy²AÝ{ a:;ÅÏtüf¨ßuó–Ò÷x4ëBÁ™ïé7á¸ûûvðV/ÖÆ‹éÙ{Ý»ðI¦Ì™¢àU£ƒùeqs¡BöëJN”‚# /¼C=û>*ÚÄ‚š¼›EÙéíþ œ¾à×t;W¥ÿ“uüºãîo£b~e,à¢Î#.m:Yéñ6B[upìHZ´nÕ:[$<igiÍÔH4Á 'k¿9¤@#¥Gyf¢ŒF§—ž¹ÈŠšîpeÙÛaÕë—'ð…&»Ö@ÙýãˆQÇöæô ˆ¥»ÊcÕüÆbÍob¤XI–5˜J&£ôD1üÉ>& +Z4ú[GÀƒSèB‘'¨ªß¢“ìñV Xïˆ`Ÿä …=ÓD˜á‡I4àšV2L¬{ÀŽ!·^í´áåËŽNEN÷šŽmRîð)‡¾\çŒØ.Ré+‰œÞ7ÒOÖW[¯!†è”¤HÔé_~™Ù¨(ÿ.¿‰—–cuG$;‹Õ;ÌýûÔÚ(G(zô0ld™t,"»ÆˆZŽF 'Þ ñŸž"ùE) #ãpÅ‘»õzìñBÞOs _ òØ[Õ‰ÔêËÙtF…4¨%¤·5·weüMZœ JýÄ TŸë³9&ßgÏZuª~Fð ÓåGÿEùêjô(( hxä~Ñ™é\u•LöúXOTü}\NÈAÔ~r¿È÷²—ßlTïÀD8¤Þ°Pþ±cß)Lzt»ê? €Hˆ© Bk=I.œ}>Ï)”²~1NpL„/0DÒ ­yè@ÔÉ}_Ü ª\yJ5]Š•Ý>Go–šÁ(Ì#qÔ° ‰µ®[éePmñàhóÅM.¢«%“SBjêfˆ§LØ^²D‚]VÈ7‹i´î”W]IZŸ€ÎyíY Z9#øOæo‹\G]1E¬f¹²kÙž¶)ï¤è'Þ;äPÀC|ãxôXþzõcÙ!µ3P ø("¨µCsräƒïZÚ‡è­âLr@-"«¶²ÓCØ“[¸›$ÜJb‚Tö±©`â/BCÐßÃú¸ïáóÆ– Ýc¤[!WŠ•¶î¤yu4yy”7/ûméQe —æM0__~¦ÇQ£™èQÚªÕ/ •j(çAðZï}»×"ænog¸K Áë‹y!qküd¯]L8(Þ¼ÇÙÛ¸`Óâ &Ð:SÛÑ—ìq©¸Ï㹨¢;†)%fó”؇¾Bóeæds޵õušá3\kÞUðÄ'…?X½æŸ'›†zzX$òÿ¾ËoÀ( ~÷{¤&ŠxrIüM,E•¶K¢H7qსëTDîèÓõK»ÿâìGÏñojrhqŸŽºãÑ[={ü´¬-ý—1æ7N%;ÁLÀ¹™ ªüÃ!/DÈÜç3˜Ž ŒÐwP;¶5”ƒî‘2Œ™˜iQÞübªà6ÙŠ«0WÔhFüK¨qâäE ÔHZ2ñ—U4Ë,\Ó+¯Ó@O»ÿÖ‘×å «ÿ÷œFXäê¨E­Vô'Ð}Ÿ×4´¬‡@8}^,&fØÎØöîP¿ˆ>#c¤öÖƾuŠ^P²]êAØ¿.Æ~YèàîåFqN«³sOÚ ØÃf‡·ŸïdÌU`°¨Ë‚½´)/O‘ ºIåºe.š"[¯ƒ–+| çÚ”×EœZ ›½ÿ; çhEBn4ŠÓ—r$)4‘žvEóö_N÷¿ž)齞Ú5ïPÝNçJ PüÛȺ¤„¶„ÜþeZîý“~6äöóƒ;ŒÏ ªËŠŽÒEŠa‚¼§NöˆJãh—Š…‰‚ÒPú)¨[‰†ZW˜ˆAU³ú8bµñß;|I0²– `šZøsc¯C¾ -$)¯²FλtBl¸<¡ˆgÔáå*ùìÛΆƃm 'ÇãûDϯ`Þ‡¼OP܈ÕL±º:\úßaý§˜x²†'§ÆBª5Ùix8AÐlÌÓå7èÌ*åöšu—ÒìÛ÷öxÌ(ÌÓµvçÌ~€>ßé.šC¢Ú]²µüIù•ö€¬/gµn¦!¿®äz&˶ó½*äÜé#¶ýy›–Ã=Î1µÖœèfgs…ì$[Uÿˆx%¤DÏø4LyâĬök=QlÛÒÞ×Uläwd½¸áÕ³„†Ž6õê2 êP|©0%ŒÛü(Ëî3«9-ª+-®¤ƒI7×V£Qìp¬QÞÛ嬨qqh†ææŸxljðï!wô‚#Nºîxxh¶¡ÞSÿ°Îˆz{|ø†s‰öê¬Ä:4\¦g{KfXfï —áµP°^†0u¶ù%_²6cóüMzÍÊ€º@òëîMuG€¨ @’ÿ”œkó{‰R@J-mC^‘jÙÇízzÍ:p„bíOÄln:_WíÁµ˜ž0rBŸòœœÈ '}3JOZÇIÉèØfÇ Dqüõª€.‡t®’En†ÞŠ›¼ñÿÎ@þ,kÉl¦ÓÃ}×85­ÄLU¨&ªäÐJ쇬µ•ïµ¾úÖ¤_íubMk_™ B—u„gS ÍC¾ª÷ÙÀÓ‡±C±}Š­k/-‘Ð!²ð¬…Y?ßï¶—)èâ§½€Óü6XïûsAga»‰JDÏ'/sO ÷Xc»?Ø^Áº~ÿ¥{l§_(AMyú9ÿãé㬦«~H®e±nn«?ª{—.ænð3‘h­—xÜb¼ä€œ¥µë^‘~wO|Qû.xÃEgSïm“VÿŠH–ÿÞ:Þ`%ÜXGÁ=I­qcÅrî@€®¢°ºê,ød4±uò˜Ý‰=•ï‹Ä8jDhGÇxYd-Ãä›hDÄUÚ^4ýš¤z£iö²G›ž•Ap³$kæ£')« °i¶Á¹mqÓñŒv4tèõsgüMT©Ü$óõhH³\‡þ´Y%›‘À‡~îÈßµ†o7k}Ù¿QÄ–––Iñ’f¤Òžá» V¨i½ m5äw¦ŸÛ#S¬bË›‰ƒ!n‡5%³`Ó €Nz\‰B0e\IßOSpéð$¸¦ÕBÎðìB PoÚSqgRõøúà­q!µXhÿ÷d˜¨üt™]Îü÷ïüöp½ýÜÕ‡t¶'C½¹4¢ÈFj4v*{GJ[/ sѾN/7Þ)y ðmb[öÚ‰^‹\µ¸æè)V}hD´@äû—ûå×èZ5üKTál£c‹‰uÀŠêk”í4@tŠ¡8Óµ9v'ˆsaáNÆÎ>Œlu›•·M BzÝÞ­Vû6zB²F¨5åúÑ¢ñGd0 ¾¹ÙQ½+ªçi`üZÐ09>ºFõ‚Y§* P’’†(ex£=éÖe J60mÉŽÑÝeo±ÆÐÚ’€E;Q³ÉÅ«¦Ú3IÝ 5c b²™ ð¶áù¦•n ætÞf '¾J• YA]û?!EìHÂ’ Ï 8ŹÁiŸß„²°ÙN.>Ò“;üÙÚŽbý-BQ¯IQUŽ>~œ[à^kLÅøíÄ©2yÜÁc?£µ¨O…A€üàhˆÃ;:¥ øã>ˆÑ gKÿçg&íÉ 7^ˆHRe:–ìMþ %¦¼ËíPˆƒ)SÌ|¿ F辇./ûëÔ†fʃÏâßðC)ÃàL©NK§K€¯#d%>TøÀ¥ÃÁtý”—&}°î^½·ÌXG’óƒòI1M­\áGvT|ÑS¶ÒÙ9*üMWM8Er—ZZ½ñ.MÒ$0}AS ¼-0‡þýÕ*¬›ù„k@i ;=ªö(V·™k§SÛl‡~ód1™|•‡ÕuÐèD«!éñþ£W¨ŠÔXÛÈxmf²î´åf,N{àWÿÕ¯?¬aH¥=×ð°6' ŸGíÛysÞ‘Ò³¼HZ¡õÑ@v EPªRzwñ‰5ËäUM+¸^ 3™»8/¢î¯zZ6dý˜‚í½[ä}ôùa %æêbЩL/áÒÇùØ{ÞžbÅ"ó9o-&¶X²d‹4ªìüÙÚ~t½ÏK£¬ç“7̳îÝð]!@âÇ‰Žª2(e\÷òaÀM70¶¤Æ"ÓD*2WŠ3TA=ãþÆ0¡î˜5Îbl à"%N©L]yø<0ÿe»`"l¹y_ÈŸžU´i¨˜Mð~×3ÜóZõ³¸ô‡óÚm½BžöÙ(ü“PUÙ+wÆ$„Sœ¼¹—Â=Æ!®ècÒ¤m‚ÞˆË<¬ :l¥KZ& é± ܨƒ†³Ø§ÌXF¶»¥+_Hz/é}u½VýÕ²˜ÂæªFÎsnó›LÌR:¼ÿjñgK›uÙU(Õ›‚¡šh9E˜FYºN AsŒÐÝ&R;ô€³¢"á-?2?Ã=D+B$û.• ª¬ã!”†\*¢ð–ðÃêó¦ìgYEÏðíËø`θEétDZûUJÞ†¿ˆy ÿ‡Í‹ª†ºëµ |øv›ÖnN;LåGB¦È”N ¾‡7 —J‹òÞïÕÊëhG´æÒÝ7©ÒP¢¿ŠùnjÕ³®â·õOðz2ûô…Ÿ=õ³‡†çCm“T“Ée#K¾Ï[tGDÚÏ å€tá E…ØÝ+ü|®&Az°—§·¶Ô‡CÍS§˜1í÷ˆ©¼@¯Š¨Ò ¡ø“e—£ ×5`¼GÛÔåØzçñÑ/ ºöcÇ&+§ {§Ô@'fQQS½Ex@æT>Ä2_4¸dÔ,>*Í!ð¡ÂéÜ«‚%æ]ˆãúò ™$LÏDE®ßª;ElÃoï€WáˆwTÈ ¨_AVMx†±§NèžÅ-ŽPè2Ò~óë}“o©û;pÓ{bkt·¸î>Ü"n¸U"a®õ'õðaÎ\Ýã÷ÀÓ»ÙôyØŒiD± ʪP6ŽÁ¹GÂÀ†Êø cPz_&?h ×sŽRÏ3Æ/z­JîíÚ¯¿uŸ |f^Ö5Øg¤Æâ¬Q0æhÇ`aüÁa û²ëøÃUw5–m†÷[¹žÆVÏ)Èü(bÞX§×¥|ÛE{{Ä’J4ÃSl>"=7Ì“–‰ïÐ`- i}¼ØC sÍ¡~È`­Mã¶oAëòðê|1y"‹½½Ý Ú#Sêׯ2éjß÷CÄâ?¡O-¾ñ«¦ãÇM½Ë†€zˆó³²$ÓÍHÅê-€÷g¹ðê¶Õr³bÌ>ÂxÄ·šǤ/Ý©–AvAhVjv¸ÄÜþvLd|'¯\&ÉFÓ19ì7i\`xQ)0ä`ÌELÞΈ›Èdïòý’-~D9a–¤®Êg¥Á´ÉÛÕ˜ÞB6üÆb¹”š\˜Êêù…½0–ÝníRbXµÏÔ¯¸Ò&Ñ- dG×´. éê§Î)©][ËÝrÍIÜÉ1ÔöbÌ ûNÆ%êMŒyo×Ò£´aHÞ ;šJÂÂ'q {×Ç~¡˜wùKùö .cFT¨&xÐ輘9èV8.Ö, åY&0‡°W³Í©ð6.•Õ•.šï(k^¢ã]ãˆB8`Œ“öÑ,`b»’]2¶ZÃö› €%Ɇ¬ŸŠ¤æ´.‹uM-F„˵«`,#¯(#ÜðHØÒI2’’‹í"‚7´Ñ’üÆh:Õ`6 ½–Ý~ÿÖªÀ'“8#).¼^ì?šÏ6…¤]R®‡´l®ÎW; ;òkxú—Ý›w‘mºÈä»Ï²¸™x)“¦»­Ñeþ¶Æ§ËH´zþ.ðR¡ËÐv—êêŒaj!DÒœ&Eœø*ôRÛÝ:–”¨Å)/ÐåÕNxtÜÝÿ'Ž#~º*–jˆˆ›ýeàsHü¶ £˜©!6¤O rƒÊÿÞ i'+ºÂ™›)´þоRc;Í\§ÐØûq?&.¥Xû-eô»‚lînxä´òNÒ"ÄŒ[.î$ ùâRÆšæ*íǨ’üMWdHÅoÊ‘âHl±âD©l»Ä¶3¯Yˆc/+²|Á˜{šJMÀž‰¦EeDåk|t„àLm¯j)(®û\\튓쥎Žåëð¼öþÌcãùã|å“QúT‰ä¯PÈýâµBG(¶ñï~;2UýXOV?¹õœ,«?ÔiOô¢?u–;cô„¶¹«"hܤi ¼Î|§,]<ïèí{H§» cÙ’üTF~™Ÿ•{ÍNœäq›8­¹ÀÁ½eK¬¦l5K»ô¬0]-´ö¯šÁøöoØx¡Bœ¢Šh=¶MâÇÑj(7$üLª(ÿ]z) i³4È›.¤KNàAÈ¡ÀíTAØ(u€g¾JæWø¹IÇŽ“÷í8hÍ®BÙe€E‹:Z•5Ò€×Ó\…Èp«ŸHMìPgDððAY!© u¿ç7<þoð]L{½½b×”÷ö:Ÿë·wzäNzƒ<ï÷‰)í/ñ á»ÒC:˹‹õ`ò—hnÛê1Óìÿ´ùac8f»ÔS]ãïÍÑÒ‰ÿòû'$¸ -¼ò+‚Ô^fo¨äI ô Æžk;›#+!¶D½%bi”Q£ùóF. ‘ÅUƒü|­‹®“ñL¤yÈðÏ8ëaþez]kµ…ËÕ”m1Òÿk»ã¦5•c„pêð:ÆOU01M¾q¤¼ºš”¶õM‚'mWRMíNtPÇK^`Üduw¹'r£’eÝ™¯Éû-]N%å⨅‡ŽÎeÁ{8wÑa›«‡ã=+²Å¤Ue= ‡Bžþ1ªÙg¤,À30ôíÀF—IÜ«¦°ÎbŒEÖ»³‰A ÝÎôÿûtÃ8“¢¤±ª`¨ØŽá‚Ö”•ma“v^+&'i!ýh˺¼ÊXE¾j4Æúc!#ãѦzQ«ýÆoG¡AÅðÆA|²‰SäucͤÇåoF±6JY¶¿  :oð&D6@5ðÇ;\iÊOÆfCi°›w·™#W(òº/Á'gL3(ÝÅæ1]­fðTgd™1ßͱˆé¥Žì„æÜg"µ8#–±Ö:Jž¦¶¶ùçB]‚š+‰½“™‹•>SMÖ(ú›üL¸x–¤z@õy­Ÿ2M䃨õØxÐN óHå̇$òB³ß{Bóµ…¶•³³)¶¯É÷~+:tE²A@|þ⬩|Éóu§1û‡Ãõhª½â£¹™â6‘ÕÀ3@ÚÝŒW(`',Zóت2 ¨ª90FB¿gñýàà äœX"R¿Š–Ëõ&š²:‰ó¢Õþß6­Ðµï7W|»ê~íO×ÇxýrΡJ_o“§­­Å«¯Ej£X65à„à—'v&-À[ |fŸNA¤i`ë”´’±$½X8/>ÆëHœüMXΊaÙzT-ï(ð—Z=WÃHÏž„’jñ9g$wFVÊÔ¤âRVô¼{¡°û‹y‹"ö†%¤!¼$[¤î#ˆQ>.x¥ÕÍswÍ:ïð kCÉÅû3G”°¶{srrÙ|ò3ª°&Ëà5ý)ð1S§1Ó}„m^Šì1r…Ti…Ú¥4÷:ćô¯PΦº÷tëÿxÃCNˆàwdxÛ?}Þ=Èâ%"ޏÏÂyMï°gøà½[j5N±?B(EZ<eßzLƒiäW—jý«”cS!÷#ÙÏÃèˆò.üL­[ýëzɃ˜¨rIíCc'=xÝöû­|î²–ÔàØÊ—ìûEÀÅ{RUb×Þ2‡“BÓõ‘»V¹3j5å#cQC€J’ñÚá"„k‰#œŸJ™2ýN‚G´`Õs:ê7îd R=·@¦0üXÑï»G‚E»fC®Ýß•¿k 2pñ.¯¡ÑhŸBh ©þɤÃÍjÚÆùŠ\Ai¾¡~žoLtì{iÇ}<8X©ÒÉ\>ÐHl ô0Öæ_E/ÅQðüpT¥Æ-BH,mTZpÚ‹i4!ý÷€xpñµÚÇú¶üL²vQœ> ^o'Ö³_´ì“? ½º rIáÚM\Y—#Fè³Ú¡ÇÃK‹c ä™TWqè1ÆÒn‚$â§)Øô´°¤$=òI²u"Å5{ãee·Tœ+¬,ŸÏêÑÜ‹ O;…è;yL— LKÊv1†Çcšf˜má׉3Ó2‹÷ßJk9áR²VJ@Äòö'·Ìí‹g#{šq F§u·A³Âßš)&ŠÞB¼œE}F¼.\Špƒ02\Bœ4Uòaþ†M¢¤=¨âUW$Üø Þ/]däÑóX{lZ?õÛüIoÒYXe+Àëñð»!¤šÝÇYqŒ+üˆÖ6ÍAÏ#Uå–ŠÿgGNrÃɤT1Pšœ)—%!S¹¿Ñ6¯+jÞ{ß 1¥,X,+g-Õ9I§2‚ô&S L£#Žfª±j‚d>3|Æ;.uì—­V`—s3'š€þlNjGê9U¢xèׇZa¨7iß{e –šƒ­6°ò2ÁdÅõŒÒ9»Œ}÷ Q©¢sº¦ÔCšQ¹ß9¶+@Œ’=S‡aWÓ­ú–f:îà0Ðת„ ˜A`ÍÕ7‘“_sAs‡\ÈuBX_Ø3+ü1‘!á#Ãéµü1'Ôÿ9‘Ô¥7Nó¹ Æ +¶Þ™˜„”²`µ“ ؉y{AQvÁ¹¬ÄF}N÷¦ ìyàæí\»Y@WØÚÒx|B3¥dhg]õù§$X‡v0H!ºÎÿŠ#ôƒ™NäÙÖuñq10›ù2¹û)xMG@¼ãÅQëoA°Y·ªa÷ƒÝ/Tc¹Î¥{ÇHσR6Þ`Ü‚•zü2âÜ%~kÁ×lg¥ünñ$ò7š2#gÌVv©/á€ì¡|cC~áæu·J‡…Ð,òT󏆿Jz‡®5ämÛi5 zŸlŸŠÃGü|®Q¹ýIeøûÏW Òcóò BøúùIH Ý® Ä©\fA¥©½¦Ñ¤.*õ]#‡ÃnùÉ• ÆmÎŽœµ:_³ÞqÑ%›ìîõ ä8àj:û½5‹Uý]Ç*ˆ1Êÿbà‡"a*Ⱦ^h~ÁØù< ϭϲñgVç*g}*LY?ÖÅ¿ØÜ½p{’"’ø¤q->qZ?‹È3 ,4—0ÓÂåE]ïüÒjvœ°õrfHêÎá#¼þ½ßo0åËç³PÇă:žl²F¾G \ˆ.ïÎrßs ^•L?´¢ ƒÔh²¦!øì ŸG/ÀýI"¸9ñQhþ\4LÞ5Ã¥†©Ë¡Sì“,†{âÑcëª0ŽŸü§]§³á÷N^ÔSÖ‰Œ,k Ïy_›<ˆˆûÓ¶0½¨Guí{E¶­X„™fx÷Ms8ÿå!1–ÆýϪ2èý½Óª ˆ€º¤ëôy­âÉ8¿r܃ˆ5Cùxoõ‹(wæ*ÍÌ–Z{t泌¡šÓ/šEbüUÜ/¹{RJüLÑ âÏ Œ+¿ÍHE¹•þÝ’÷/".VjžOjÞ; ÿý5íϩߡøwèÕ¼q‹ü…«Ð=œ“ ;¡6>!'ºá¿oSÙ„&¥ó¸B k‡ º_hxQ^ÿñJ§a>Çh[AÀD%ŸªÌ?÷ÚãW¡QÆ›q´-6‡ Ð“rÒ;6¼41{ÈOô¥}5ìk.RÙöŒõ ƒÞ T±Le+ìZÈXghüù:‡Ï °ªÁlÐG?ŠcùÃo>­â—v1™&Vì{'Ò3}+[ÉèQ¼‰Ÿ×o l‡îÝê”7O](s šSŒJüIÿ…Ïî³ݸp&ÄÑ2ÑÇ "5å#½µ>»«i*¨æöX_k~Ž@ÙVUm¬BO´;º¯Þ”Ò3ÝþÝ([œÃœX%!6gé8MæÁKýãÏ\µ§Ïå–Cbêqð„ßL @!äìq»Ñ.þq »Œƒ púüŸ £¢F¢ÈhW¢¨JŽáÔ¢iöXçË‚,ÿ^¡³•?­Áã@¼¤µ~·t6¦ÚÂ!o>rü=çTçVÂ<íâîd͸d0ï=M*ãټðy²e@d@¹ü¿RÊhf´9ûÿ|—8äp×…1üIîoÁ$›?Ü×ÔÍBlϱÈëÌYóê^ù»¤4+_Ñ ô€2I^~ßN¡»²‰@©Ó¦›Î.o3z…âžÁœ·_†¾Õ=S¹³½ÍQïU¯{ø„A³KâPDäx~ÐqV“ä°ˆçÕ8C#–½ËžÚ)›h"ÁïXÞÝX[å9¡¹[YBC㛂C?0 ×û$RŶ5½ª¶ª¼ÿ:|ÓC¼Æ¡²‰)nˆwù‡9µn~i€[¤¨•ÊÄÒïÈb(¬p¬b0io•ÔÂRÚõEÂ!¥×ØQ$ràüÆ'“d}‡cx–!kïÙ¥AÜløb˜úàH Ic%¿WéöY™/d÷H~àÝãâÜ®ÜH‰s„p¾ØvA‘$%ˆËœü·RåB'‹UÉÐ)J§=*&Æ/\Rd²>3Þ/æÑf³ôxhí66p›ˆF­ç.K.Mdó ìôxζ°•úÜB¼ƒ,ô}œ„“f×ή %§|¬¯Óáh0º9ÊZÈAŠ'Gžð-Ž›–ì 'û°‡¿»¯ 7“d /°ŸçƒÅ)$ý¦æòjÀñ~ZMͶÉü1¨õT 1|ÊÌš±§ë¡ZéÚÀeÒ«‘Šäªcñ 9þkuB#“bö¬·s>êÎTº{σü娽=N¸²)Rðé¡KƒŠo"ÈÆœ¢¡ˆ“0F!Î^yzÏF¥A†qN€ö¾®D hO08ç¬Øç“È–ñ¥ÙV鸿w*†w¤¼³S¾2Ê¿èrhÅ7‹5(òä·ßº+Vaç×O¦çTMn-ÍÏÄÞû?ù°4AhEjâ°DÜ.äõyuúYÑ\…s@Cðs^â]¹:÷Ò/oöÝ ¡<À[‹ÀIœüÛ|b²XË[Góµ)RzwÖ1=¾~k¦3~E\ÁpTÂì|lp!–qB¯ õΤó€f¶q°"¥äËNoá5’7Ív„1²± & ,˜üë0^¯³µrjߎ“¢r“Šû$í/‘xW©ppò°}T5;(…*;’Õzó;Ubõ^¤ ëKÕ žã›1‚sñqìÈN6CXÒ9ÃàÔìW®¼§Ò71ŠLS¤× KTØäƒþ.ÀòN]ˆ—¹ïo[þ1ÂòÚ×wµˆìÖ›OCJcMÊ‹,Ñc€àáEaónUþ+-ljP½Û¾Î™`¬ô^ÓÍùKµüÛÉ(q‘˜}CÊ䃃ý÷Å'ÒøI§K¨Ž'e$Þý¸”CüÔZÆsbb‡ow3ÄÓ·p Åjp;ß©ÛàWjÌ2;ÌÎZú¸×PT’H9k9Hc5Ú¹"î’µJ ‡{Ø]wF|\9)ùÀ¦Ïø1³–IËpgS@“ði9M­€t¢wŽÐÚ©„úGÁx:Ic\ˆsÃA™Ïý[Ï®‡îõC¢œà ï»j‚aƒ¼’wN"ŠÉɰšŒ3Ë@¾„à~ᄉ'‹zÒü=2(£¥¿SE‰q õõÖ?}¼ØQV€#µü|·/6d1>r}Ûÿ@CpIÈî`ß1ö½#y÷mÖbå/]DQ¦iê±ÕåØÈÕ¿ŠÀÂ\Õ Kýä»­LV}™¢péßU«Pù(&C#ng~å·|Qœ5Ž0í²ñÇÀKÀÃÖ«àdæémŒ•¼Wìž3|7ÚÒ^—p¹=û&#ïH ølta¬U÷‡2«¹~)CÞ)%4ÅÀ¼F玭6«÷¹"9ÃÎ<ó¤Þ l©c,J oòï+dJWÂ^óå$°Û#†qç_*À팆>uï}¹ÜÛÇ“qžÙe££2?‡)§É¶û9 JeY¨}§™®«bÜ.íøfº¾ClšœÍHÅO œg¸Ê½^b+=6enG€fo:xÏë8¬V§ôÝ ¤'áŽHŽ•øRAüL½Ê“qoW=B˜|^Î…o¦ª™*¥Ê‚æŒzÛ­:ñ£8h§tg©ƒ¹Ã?§í“àðƒµáö]èÀþœaàJFjóæã-Ò"0]!Ùh§Î2Ðd;‘Ï]íe7dÔ„ ®9¾§‹„r†IA ÝZê½"™›nÝz¨˜®¬$mþT[„fwPޱwÞ¶PDôœØ+Û/j`øÇ /záòCRXÍ‘cgô{“†ͱ'qÎ2ÍKõs6ŽÇ˹‚7öUÞŒ¨o$ËÝ*ËhVYŸAèý³X™· ©u—v(½]âwYÜ35_ü6Ož‰¢PKi XI5óŽ­ºšž‘Q/iåLýªäZEr¤*úæxC¤{ð >_ã(´¤£¸²ìIa¢Úæ~¹, ¥ú,bš "ÏR$àåc®XÑN'7æï,e(s•%ÀW¦y­–Äö‚»¥¿ƒ_7¾TeölXï¢ûÏQAg¥E˜^CIRø½%ÙñÍjªþzxpÁüÙÜÔ¡ÅïÏŸ·ÁÅbò$ù4,¬à¼èǦMë5)‰{j=}EhÚ)f¨ô%2Ô·Ç/‚äqÚa; Öíù2äTi"pˆº²sÆ.Ïûû’¢Û޾U ÒDzvš ÕOÎÃà?0Ç<}ÏØJïþA¸9â(_TÂQbN–O³vËšüÆq|VFM±íÑä Ã;s¨$0ë^¸èò˜øP7+ÖA·óÝ$Y†1²ø­Ç÷YK’e-Ì 5ìò'Çð¤’üć\¹ùâo±]^6°^}p­ó°Þ,>æC©ù z×v;™Xç¿æÙ™fXÝ<K›J ÜÚ‹H[—i×Gò3ãSAÿuãÌâÝ2')‘]âr„ÞòÊ'®J|¬]´£‚ð{šÏֺ̿)8q{Vz¶Ûõü#Ò·ØÈjûä9>zöÉ8Úæ'ŠË’æâZ“d‰DQ,éõÖŒËJBÎOX¢˜(±Ä.~ãj•ùw"™mvQ§Õð-Ý%Î-~á1šÆ©ÿÛÐë’Òr±ô*ªXB8בè›…i:Q‹õN+,—¨Õ„’üÊpçH¡%ùmªûõmÅXÞ7©ÄÍ]:Â`ΪDs`$V<3 ãjâÄh‚{z DEÒº¹Ø/§JU£TÑD‰ ÀÏ8ÅRf]iLÑN_°$w”¦Ì)A”×µpì¡û·!L„ýòS\xp·þ`‡A­ ¥TŒn|%º²dÏ'ÁíáR’ËûÙ¤ö ¼Ðîm¥/¾gÍ^8šæ(«%ê³6 †8ÕëW™›ÁV×#©|Ò/¶×ñ Muïx³ì „‡xw6›oÛ•/øùù2jÃÎ"I{ÃУÙR/ê0|½“’Ië°ÐŸÆºþîOÒZ€Ñ½WÖr( /£6:â@`xöw8Y¡HC¬žÆÝv.£!žH.­kS¨Ë8KÅâ93·/°b"Q1½\ç3¼””.5Ò+”ïØd÷N†€µKšh׃q°´á±Ç6üj$Tþ‚!³Ž`2‹ì&ƒöæ›!,!åâ`\Ô}TÔyŠëïÅëÃiìùÇ©òÈw(ªkËœùäiFbÛ>;hcPÏ8¥F&ñ•,9á!¨jäw’Æ4P‰õo¿\q£B¤“üIùûd‚qíÈQ&q$|pÑÔrŸŒ‡S2ÐOH -¹=Ï}Gé&~½‰ïQ2¿ÏñvÑ0rÀe°Y•eÉó—g¾ž0îZšä!o“–gÆŠ'Å¢æ¯p1Eê˹Û÷…˜êÝåÞíüˆØ,Ø{_€†aÞHݺ¶g¿ÆA‚ȘA¬|j"rµÜZ” &¹ks›I&á'¸²ßòÌ·zÔÚôS˂ȆøÍ†4zíÿ à òoä9.ÅwÖ~h˜Ž>Oq~ºsFé¦(À=4¸ü${k‡î¹Jî+ í•U¨×ÿ6œÔ@ØóSã¯úOõ²[»À¤Ãïcó#ÁcÓ5KûÐ$ÞR ädš÷ÚOggSʨä euf;éóéïôÿÊçÞÖÖÖÖÿÅÿÜÖÝèæðèèâ÷ðñÿ­ÿBÙâÕÓâÿÿ0ØÙÞæãáùÜãâ÷ÿÿþöüXAIeÏç"öéߤ{šµv˼œfØ€8ºÚ,ZÄ]’<ˆ NŸÐ…‹]=WSŠÈÅÁ$…àÇ1;®—5lÆfÖ²ƒiwNñƒ³0~PAÕ{3“¤V9@ªê$sÁ­9d‡ßvqˆkÃ|à¡Wq,]ý}B@“&£^tïýÛùŸäGyÝûJèõw"Ys:hÁ{¹ï©ÑÈ·I`v¬ú“Ó Íû⨵#[t…úb¼JŏQøÖAn¥zŒW˜ŽÙÆ\MNÚ{eT‚}hûùKöMÙîd,ËܦB ʇGgP who©üMzý'‡Lˆ¹Ópœ§§½‹-¾”²ŠT3‡^BpÝzRÖž™äP?âkF>¿#¾Œ£¨1ÑZ!m´5‡üx³ý¨²«m<ø·S%fûï”×ÜœÊøJ…s¨ªX" ¤·Æ›:•axñ¾Š nl`xöôßÞÌ&ó»}û^àŸãâÂYÇ´ ãÙe.053ФÓïtú·çý¾õ^]Ŭ¤KêàÿyÿyŒe­F°štý»¨™êB5Š%ˆ× dFw° ·§v¥Y¶íÙñ,g\µÖ:D#¹Fûïn«^¥õ#G~³ð1ÎÆ·²+ü6Qaªº‹>h{¨ø¼IäªBä“NnŒ“ót]Lþ ~Rõ&í‚´ëˆ<šÝ‘—Ÿ‰ÍÁßf™GŸÙË]IòòuKSìºB}y˜cÂU„Àn—2!Ö×ÌÌ þ ±¨õ8|ç}aÉÿe2qÖÀOo*S'ÛxÈD^‚Ü LÜŸX?›ÅšmqŠç 3)pŽ‹ú£ÿjEM›Q„ß,($쟀h–#¥X`Æ»þUY ñ?ÓÒñ÷Á8 ° ¥-Ç›$ÈZ ¤:Kc®WŒc^÷°éS(ÄfHž¥ZŸ–(õKéæMˆdëI¿üL¼þM…Xñ/NŸ8ë+ ‰äï®%u§q¯  1ÃöuEÓ.’˜Åp¬JZÜ™CÖ~‘ž(ºx“äËËÐ:ø·U œÉ£ö÷B.þUi÷»ëíZ"_˜C^ÇÎkmÒKX÷æ8ÅÒàÑØÞÿ‘¶µ¾ÍrÙý:/ïÓC†½\y£!+„ÕÂÉS1–E#‹n%nVhîºóGõs4˜)9™„Ô=g¥xl×EåúhòÖÈ O(Ùz“¹Ää¨$ðdlw2I2Ü‹Y/×­anT÷¸Ø4Ã?öeRlßCoøéØx±c/@Ÿ©Àü0Ú# yçŒYb×§™ñáï‚®Xñ¿~ÙÔz4c¥l„n>‡Ù'bóÊ|~Û˜ø.‹BËbé’gá´¶Ç#Eà réî| 9ј⦾Z-\)¯­#höºÑ®Ã~ß-yóÊøªèDÌ YxûÞpàmæúÓ¿ì %f”L¾°ÐIr1¬4 ‰/z©R[¾-Œw cf@Y° ö^ÕÂwØ‹g*s¨s•Y¹drn;mŒ?H‡®ÒHÕT(orÞY ‘¾§_ö5ÑIR8¦¢KF¹»Âùàõþ}ôÆ •â-/Ÿú ³§ß±n.ßÝyÃYoe_ omü|®¬ì/«Â(ºoكٴöRßi7à ¡Úi4óÿçLrž“q@l:ýÍÅTù¤¿Î$ŽVÈL9›QPi¯@A;î°NÜÒšs½¾èqÅX9é,JdZnpФ娒*Ü'S ‹˜÷F=„ŠpT‡TáÄÜdë¬]µè´#€{}0íö©²" `ȳàպ׳›I‘šqo ˜ú^Ž+¡¸£5Ûh 0«g¬ÕÎÊD ç¨y •åÌ•NÞ£´7b%%1#¤Á”y×™¨¸ ýš-˜Š1½-£ÇA:2YEÔ©SÖ¿Œ#­ŸXRú®ÂB“›K¹¶Uò~nzš"±»ûr‚Hêxól…$zኼNe}ÊâGØ ¸V’AH&MTŽN5Š™]-yÎcä§ŽÚ`jÕÜ+ìØQB-"“/:)¦ý%k'ê£ÕZ ­¡ñÊ¢¡ 2¼ÊåxPÚXäï\»{A³vuéyh´YZ¯DZaÂÌŽfØ7×Áq ›„Þp^Nf¤ð6^$´¸í%ý „Éî­skƒB 4*¬™¼bç­Ø.Ù˜u™§tà“nZ­²Ñü0ük³ÕFî_žhmv¾½ .¢b¯~mà*³n _ΆèË»é—Èú&K°×^}n 7LýfJاº)Þ²ïü]-Xôv¬iÅû­R=òã® ™cƒ o7l‰ŒJÕ>AÄ" •MAùŠÚqq8&Ÿªâ9S ÈAŸúñÿñ]øCýE’„É‘H@9Zí‘îh;Ÿ°_ê}ŒV')üMy]7ü³Æ¹~=_Ÿ4­$wOjñ5geiÕrKwg›ænÄ¥³ù7ùûÀfó·ÎwNç,Ã¥^cjkš|aâ9˜ø i+“BÌg´0€'žÁ_¥cwH¸‰÷ð' Nø .i†zëÏôsͲ¦ <áŸ/®VšÙE¹Öa̰q9KŠ23~3,£¶¬U’>Ë‚)ÑW>"„z vùé^ýTº¬NÊöšýfl ×+kxVþò”s÷CRJÔ¨© KžággKû?Y$û§•i’Zl׋œœDüMWÃSczPr„va‹w[ë̃½K! üsjÇÕ~(æáØ’ŽÛcJ(³çRÐëtßhKý¼öä+~cΓc›cxF PDùPøJûƒ¡ñÎïç3Ù–4´”Ò¤ÐÙ’Ù  åÀ _&§?å¬$Lº¶Ö> XwO`=\ÿ<-‹_{œDCaiéó#gÖ/û#(T]÷ŠkUlƒ=†ÀÔ0ÿÅ»lwП?ÿÎ)‘;úMÔË¥Óôà̇ øäºO0;>˜'—­y<îå'¯Ç(o¨¨•Ô0!ýñf¡§¯²÷ÖTW?‡„ƒëõ‹çKdÇÄ{úÚm@DíJpU˜j¶›/°D\Ô26Osâãm±Š Îh¤_Ñîx»4ñ^ß<×IéYq('–íèL üL® ËFnzGp„¿¦PÆö·“û,‘毬šƒ_ZÆIµÐò¥•R¤›9åŒñ–hÊVˆÁSNý¬ _ß­TÀ[ÿ86Lí5ŽS—BafïÓù‡\“¦þêÇËIf‰¸¼‡’ä,ƒêkBÃD|A-ºº5/Ö™ú…k7•+£RîªO;˜Ùx5{>ZÕj=öõ.‘BÜžÒnv(\'€°*ï@V(è4§úcŽŸ^ð/åØm^^íz'JV‘^ë1:¥)i§ì’Q­SüIö5¶8ò0mõ5©„ۺ鵢 Œqïî:ä/2'½NwêÝ#a|QAÛÌ3É^È ÂÙl;QcŒö¶*—Þ†V§ä[›šo0:„Á‹§ýÍúÓ ¡¤Ò¡ŒfÄÞ¿¥%ÜÈ’ƒ!»MÖ¦¿Ppeö3¬- b× §4³÷2O>ó lè¶uæmÖì²¾uCœ1ø¡…àO' †ÕC¸?•·èK ” .,/–-`bk†‚ûœ$’³§¶ø°·ý‰'È›è:R^U‡"qÍ«GG»™}ºüÊaðB­v®Î°vX2@î­rÏò¯‡ o÷»N‹c`ôZyO×Õ%*© FŸõf[w`ä¨AVT幞M«›T6‡e¨Û2×qïµdRÕ}.·¾ùiÚ÷Rý£°« ½MÜã& ÊšÅ*‚Ð&!->é ÙD¡ÑkˆÒ~¶\¿)RÏÐ+2Q‡‡QwZ> ΂,8º® i…þ¾Õû–'q`CPBê>WõCÀ ÑÄQ{”#8ëÆžžG%¡~À\‘\Pï§»(0[3 ׸¢ÅïÖ¥„Þ^}f¼ª4m”Ù%jžÃZ¯äÿCòÎî"3´ôì"AãBS!vLÌ/ü/#¿£Ðäs<{ÊDÑ1?†²9Ф>xQ/WtŒ©Ž×x‹|¿$¸±]ö?ÅæÌ‚…ùš‚ÉP ‡\ñäÂdÝãk\÷yfên%¤i´Ôgê¬;@¦nÎ*]3÷yüþõ?gx u¶Ÿää÷[üc¬æ3k™³ÝúíB|I%W´* Fâí3G×oò=´ òkgšÊ6g tUCêW+yô`üGTøø¤UikÜ3·4±‹À²™˜1k4Cäºáˆ[Ò'’†uš88h|Ÿ0ß3eÒÞüñ óoÑCÂ?EÎøðU”ûÆ7©ŽÔõ§!y–¾‹Â¦®œZıAÓtÓá^WY~•ö9G£c!éëÌ„Hž !õª‰by÷¼C6ÂÁ¿õµ)àÃÇS\Sd¢˜_‡Þ‘§l‘¶ÏøL¥%!•3ÀŒŽ×“š]I Ù(øPÈ ÿÝñ ~ý ‰œ÷d°‘Ì×ðÛÙî ~Ø€GGPZZé㣊Ñj2†ÝŽ>üm!\ Ó×åP®:È>Ásíës {òci¾×{tµÌÜJÑ £^´‘üXuˆì94K”’Æ(⸼lIäÎ|/a^’£˜àÊÑ,œ¨šrãàÒÖð‡s2R7×]Ý-¼Í=ÙF˺’SMé¿óýBŠ8<}´…ò†AUM(Ïžõ÷Ž«gu0¤³¹dª˜ú†UG+(âGœ<*æ¶×Ù­ ·fCx7÷æw]àj„á]> ‰Ï§úŽàñ“ͬ4%O±â wƒ“Â%cÆI-¬±õ3Àyf©¬™zy”c- ¤±_ÇûF[îÌÒ³Òš7p ©ó+);ï0´±-‚,Ž»{_·´Oe`üIêõâ›åýæË5’´×>Íñþ8UR9ÞÿqŽf&Ž*Úº K~d•¼êi¡×lð|Œd‡ù_ÂÜ æþ^1?š¤UaèbÿLŽ€x*3ƒM‹F‰„ òiœHüº*vÐròRéÛ½Ïaâ)meÿ1¡0ǫ˺1VÝ|™è)óª¿éFUdZD¶¹Ë¥­l€¿žØaj„ô阋}±ïFŸEÂ[13ªQü… ¯k–Ð=<¢Xׄe¹yÐ!ùÒ÷½’øC ƒàܳP ´Öoã ›ó÷ˆ…Ì^ôüL­À÷AѢëÄo‚ë•ú‘mW6ɦ¨oxe–‘Zëm_HcŸ :HðV¸¥Szy½ÀêÇ@îCò§„ØåD,%ìƒþáК/ÛÖ‡šRÜû+TA´ÈøN|dÈM…äU|ŽþTkðÿQ\z$˜‰”»•I«û¨‡î.Ο¾a/Ä”7”)t¼öÍxÅ"þýR<%¹ÍØðßÅ04§J}N1-z€Êì÷¬¤?OðJ¾ûš9š¸Wâ]gÍämÐÞk Û"¸›Ï´òÿÅÈmG¶FÜŠ!c¿ÖÚ—6üLëý=‡/Ìpr=~Ú5‚ÉÀBîì ˜ÓÍÓÁ¬à[ПmÕÈ€mÛ—‘èÝ&<ÀÛ+±Ó?´Ä[¯ÐõØpÏeŤ®X¬G4É*0 ObQ¥ØÿkE(ã„tÖ°‡¯ØØ{O vk­Eû/Wê8å…ÐC¼ŽyaÖç?­Û°–Ãq“–ëÏæ‡YYoÉ`úQÃåm|áׂî•ytB†Ê  a¶eSk“€-´ÌnâÀî—‘_ ]Ñ`j¹Ì|å|œ Žá Íê€Â›`ƪPd¿×Y—"5›ÆzQ%AÈü í©º–.ÃîÃqµ°Nÿð ü€?Ä?Y6ˆÃ5¥³%lšó¢Àô~Žk¹¢.‰´8€•X³Ë]{²>˜S'4©ºÉòïüLêl~þÏ®Î<òy{$§jÃ^^~›<1ñx&¾ø” ú);Zr¹Í™ V?3Ïgn Ä9ÛÏú/ؤßî-)YêÉ2!)•ìf ͳÁºÈ ,*`Å9Ã&ú¯Öër áBq@½)mæ¿C<çñ]:àpá\ðw“޽ïqxÛzõ¬‘'óàTÿùÁQüÝw®¸´,[½ó¡³s VêÍ‹©âš©{Õ5KКFƩќM !Ó0“>ñ—£ÏÊAU»ŒöM‘œ‹6ÜÙÓ3°Ü?Ó/¹’ /¦ ¼°F¾Vf}jqçü6š´—¶õÌÞ¿ÊjïûÀrñµd²õ›ŠW¨ÏÄÌE>'À›iö°ÊÄÇs&Âe ®jö ÖyK):…•L‰° ,TÓŸûrÄ«me‘oíb†ühòªB?Reþ{þs•‡¬"-éÕx¿Wµ”rРK-v1{ô0ïXñNKŸæÀq] Ò Å—·¶ïîá “¸@£'"“·]­ñNqIö(×£2°èºS»åˆŽØØkPëû6¦@ÓèvD“Ñþf½{có¡?æ§…žøjš$²G²n,ÛµNü6^ÓCÜQ´ø0vVÏtX%îœWï"ÛÌ(q£a3hR×Y -³8ß>q¾NS=ôÓÞ¸¡2É“½ae'¦®s^Ê[ow{Ž­2ò†$$BP2e|'²ùÌ-[ñ€"|oái]Î 6[ÓÕíe¤Y„§%bˆ<€ †»/Eí¸#Pˆ¸e%{y*¥¨I¤Ç›YQDõn¬ÑFdrû¸‹þŒŠ4?zˆšö:•⃺õWškU9nЃ}—¦-2ï—ÇLˆyøÿÒQÙ †xL—O«ñZ„ ±ò?Ÿb ß‘¹ 4„‡óú[Èöžü°ÑHiL3Ò&м;H"½›Xé×ý<êHê3†¢­Û¿F;Ir~À‰¡·'>ezÆ1eU[ì)#ê·dF‡Z"½©Ú°húÅo_—$‘šâ@ÉŒçJÞÆ¹ç7ê|ýýþÖÂ⌼¨¸yKAXÌRfFŽÁLï,@…€Úï‰`÷ê}¹iYv„’Ä™Ë ÷Üöí ý³Ø¶£_§M{Q$»ÀÌÙ kßìCH¦_Wú ÊŽ˜ˆmíšÓˆ:ë…y¯öó韛²K1¶Ò×r×éva3 )=&“4à(·m3[´LÒ°Vß(r³r®ü±t]E™cnmþ:ä¨pþVw¥üüj€|vóÚŸÔÑgô"üDÆŠHtó6”#¶¯`yèt\x¡œbLyvF±î·a«ÅTë Y#°…P'…Õ1€ÿâ_¸Íïì~®z… ¼ö2þ yÀ„°ðÙ>üÌ< Á}Eõüî8SŸwG”M®\A"tV‚qL¿ìb|‚‰,&bÏ ·%SõS¸›`¥¢Ê–_‹ HÝãÀ¢@o bS—ú5ŒÄÛdaå un)rÛŽÃô÷L𽩩ø›‡ u” +„× 5 e‘ÃKŒËÆÛ@°¤VÌwo´®ü´î‰?*óÐFªÍØönL ¬U«±uȄ߉ |ª®ìý!¶Ôÿ©H`Ø>ê¢*ªpÏìŽ;¦`ëз<òå 3ƒ‹'®fŸÈ¹ôŸ4¦tì3K›¬Ø8õt¯êmBˆö…•® Ö Ø{'å|:§½tÛ.©.ó Ütƒßɤì+È>áìˆäÕePqzæÐ… ÒçÙÓ+ä|±Zrѽ«y‹v̾_æ‡GôåÀMÉ¿P¹ëå=óÃî¤â; Fãê5ÚJ´Éìþ×—¹Q*\ôJj%J/>Cé \_…ýª!g!ÝË—pì¦>½¾p|¸Ä1dI;¥ëƒ¦¬ØVvÉ)IXG!¨dЋø[ÌÞdv_Ub`{¬h ðH¨:q/à,hTŸcºêjšmPeq.ÊΊ¶:ÅYðõ#?yé‚N• #³/ÓÊàÑ%R*j7¯p3÷…ËÙ­!B uÏÉ+|bö·&<¶¬sŽ6çç²Î"ŸL‹†%XiFcäéaG' Ñþ›„mßmlÈÂ㸗4œA’z®ü|©“Ý5–­ËXûð†µ¢EÁËÓÙÏ´ðSóN_ã^Q +?2ža†‰ê|øòå…™t0Jð†¡ Ç*Nf‰å½¢ 3Ó-/]6†¬Ì°\Ü©ÎhúŒ@ªm3‚‘$®½!6àQv0®“ޝ¨"w¹9 %ýŽhŠNæ4¬ ÷~f ÔJ…·nCJ„‰¾-ñ … Œš©ñNŒÆ?€~ùxóÕº2ß&dCfÁü¾áöµžW+˜m†ÒÖÈ%É‚¡ŸÞ~Ì¥OÃÖ 4©Y«XÕnjDmÌËî&AcÉ.˜3¾Ûôƒ8^æÃ­Ì®ç­•yy™-¾^|Ó£‰ˆK-õïaó ŠâÆåU!áSd¬œ$V>¾CªjÑg&@(lõÄÓ›~Ó­D-Ž_Œði@`•î®Tdà®7X*ýãKG¹}åË!'JÔìZ«ãé眸oø÷ðšf±r‚¥´\T¼T4^°SüñjÌ‚a—y…Þ¥ÚÎJ7—×@ñ©ö&óÀBO™q*d¡—Ï`êÂsB^{[½A"Ò~Ë<¬¸ï…ªÃé­Ô‡#‘ú¹ÙÆ}_wnî I”‡”Í/ScM's¿2ð§D-.&ÿMã²ðz‘'zOÍj¸ŸÑ©ÿó’CrET c¾–¨™™ÿ³'w*Ä?˹ªú®ÀhlRU¸‰:÷§¶¢Ž×r¬e‚“¨ÑìKtPÓ¸Vu!=ν]˜ª:Ÿêe6§„gÒ•‹|惄Q4´sÙi³éãlauô =$’üM{dá×ç¶x³Bûš,׃ÁZçžÍ-qþ-¦už Ã`3?­ûF]Æ,§ÊHˆûD(DðF¾‡&uGåÜœ&äß²´k'•€ÔÔÿ‡!ØXºýpT†åÊFD»ºIà8µØþŠO‡–RX[+ q;°WbݨF;ÛÄ¡û. †Þµ‘™)ÞZÝ›]CÆ ” M}ž)Hi8T‰{µêÙ×› ö±žª|ïyܶÆ2çºôóºÈ3… o6ßJŸhÃm–tÕT¹~SV¶.\¤ÅùÙFµ¤æüL²NÀ‡¸yòr ¼ÑÙÀ2FûÞB¼%%«”‹z‹ç5ʳŒû/–GX×û(„\CqÖ©ƒbÛù9Ûó¢ŽH-üVŽˆÄ~÷'Qypü»O‡Ä‰MæäKÍŽçCl!­—PMZ˯á—Oôí~>oß åŸ§R ®oeã] µ[‹jt V˜½fëâ‹£_Û¨a PË+“õÜÁ/¦Wm›¶)À"Þšgƒ¿¦Ê狞Wâ »2Ui­©|šó·‹ESk¸ϵ“̓ež•ïáèéQüM{AÆÉŽl…£Ë™ ð»•U×ñTÒï6©…Þ #ܧÜu‚%¨c¿ ææ¯¨yÒWI+{B 0q¥m˜F¶HÀÙß+õâ.$m#‰Å”oAZÝÁÁCÔÕÐÑèo, '<œ*ÎæõXn7 ±3 c˜Õå½²Z»àB.…òö•>N…¾þúE”ü=ûéò–Po*ФŽ4Rºs&°0à²(€5äܬ;û²b`ŒPj°l<¿ÚòNmÍúÖý\FǰH xä›% Ô‘ÉîݳsÓI>’!œÍ˜ ’îOP„üMwjѬû2~:ºWü¶:!³Œ®5ê—£à!÷ÂsCF~¡Û+3& ‰?]t0ç‰î÷亲h0=2˜L§]\`p)B”‘´žƒ ÷ŒÛSu<Ö:òp¾Œ„)ç*cåµ­»äèÀò"xí‚2ñ]Ò<ÜÙ3*9rn4x³„Äq ¨Í01Þ"Bº~ÙªþÉ;`4~ÝêìM­‡}\†émœ]$î[€$øŸN—±1à"#‡ÊùpºÛÆ” Ü­Šô ]ã?åtß/Å!•}Á| Ù,µŸj3ykö¬²­»ãñ¥tùŠ4@‰ß£ÐɪÜ=|åŒ-$À]@ê°Ï, ¹•&o¼©@äÂq,‰ÐüǼ’#׎«C¬ê¡õ"7RéвD$ €†‚Gï4Áð?Fgµ¸k[Šm«R·1 Ípæ*/åA_‘'Dn¡Ö !ôœLÄ—þÕ`§`Ë@EÅòRÞ*Ò•@Vq[&;Ë­a§ÉΡÑÜ^Z¢äìýO ûD¶:\–œz:ß‚°k,9·V©WY:ø¹ú*®ÿoE³þ ]«?M„Ç+91¬<å8{uI$KÁÐ]ð¸ü¿³†u,Ìý–Æ‹·‡ŸUTÌ&ÖÅ\^€'PŠÉESžPw(VË|²}«]°óúëgi—J­FOQ/. ‡4!ËËÞY³úkɬ+îZP78ÚLrÖh*×~Â7= òÂÈ¡K”µ†ã"K™Ñ¨’Èî£)}=øüñ õÊ%ÐT…Ê5Miß`Í`¤“,,ª¾¦íråÈ@ßHð*ÈÚ¹¸í6šúü™Fó/ bK§½}w®ÑÒÆ©_±ØPrÒ¸Ý ÖEY1²—ø·節*ü7ÿ8mÓè¤X•[:™Øz&P}%t5í¸—ÕiÒ‚8> ú—5ï PæLã ¨~`o -&,1O7H­=9h„&²Mm=Ò*„t´ÔÒ%ôU]½K¯KÇÖ”2 V:rÑ F>Ó1Í÷L3”\Æ0ša‘üL²N“7É-ÅZ‘ÆÏQRf–G»Ã£ÈµY¦•eõ"5¹Óº&©ï+8—R㤻½rÌý•ì-#t›¼UcP÷ÒÔ¢O 7•2^É6ŸpŸmNhdUòä–ÉQï,xÜWÜÓ]¢üÕCuuƉb=ëÝyö»ˆ£Ä 8ŸA­L|¯¦Vðš ˆ­qÀ¡;µr7”Y¾«fQVæëbAûÃéÑ»s°ÛÿD"ŸÅA[ì/ùÝØ—@Á›…n éü§Ž÷­LÄÒ½-­_OYûSÙ¥üM{‡Zø ý!W¹úƒ³!gpŽ&% Y½²ˆÁnžx.Gy9Å‚ó"”ôbëä…óQNJp*³Ü²?8tåêáÜŸ{dDEd•¡øät\~9÷볫×+¹šJmUß…¯.è"7)hhæx~JVˆœKÔÖ¶*Þ2Þ2 çù#Nô%ÙgÂrª%¼©+›+ú­¿H¬^ÖÇú踓 )Ü“‡m”6lÖÉ2‚”¾ê”DqÅ¡DÃo¯^pŽ×Fxœý_<í[´¸²¥‹ByzmãÑml¸±Ðz@…3"OnÉ¿÷_b&Ç'‹ïëU<~OòM\œ*±/AÃ3¡„<¶dksëlŽâQŠÛ¨C]϶üM€©LŸÔ«Þó»@*LÑô]¥§8%›‡7·ËZN”¤`}†îÏÙ`Zý¡.2Uô8J­èçY)›ë»½RŒW×9,ˆàz^…bÏ^¶ÛN"Ãq’U’©Š”’*…]™:89ÔNÓEaV½£](iÌ— é~ùrŒ%ˆ’ö$AX·°™÷I;ÔãÊþx<àHõì!Ä FDŒæP|xç¼+já¤ø©4àc„\òýœU“ÿ-X¢³^>»µ¾ñKŸk½Ž `Ê-ñdš'lñ=c¨XÑà°¤)ð¹ü6S!YäC&i¥Â6ÚóØÃω³¦ù.))’.Ç'¨á§D“úh§~,smw°%iè¿ õ×@&aµ¹|_"õFQëÓöŠ&^rÈ,ö£¸é¬š—º×SÛ *Ç›!ß»Ýô ?–=,*u›oöíúØz=ûtühòSäÔ(=GC¥êñ xÜÍ·’zþ§ª¦Ãjø«ã´Ée*'Ñ0©õ1 X½mNðIgFΔŸ”·oéç4¬t3ÄX‹“öÈ>:ì7M@n¶#E—‹Z,tâÒë=;5xÌüVÞCO|ªƒEÂÊ«ëö>'g¦óŽ#æLÞñ å(Ô‹ÏEMÿàx Op U¼¶~¡’æQ|OÓS4¿ò(Œ„ÿšow[€ù¯%ìššÒ·å–~äþÞí2‡ ã±^ ¼:éEfÂ_îÓ¾[¦¶¯aÜè±Ö“m‡ŠÖxqü\%„ꂞêFù¹Antñ 0liú aƒBî¯FWˆýZŸ.¯14óToå­ò*œòk¿B ü ¾Ù„vL'zN+·‚Bsû‘ åäÙÂAƒ½R©Wåâý0‹r]¾2íÙ†^¬Û™ÝÊ(çg“ôÐà]¬üNJ5:Éðç‘C'lB#¯¿×dþ†¼I²#’‘¬ÔŸ”e®lw7ÛßýîV”M3ÀQ¹bc´‰Ä¤¬¸+K]%rd8q ’ÌX•¼ŽÍ%½ð á¿ §3:‚Ív*œ<ÕBÉT[Ü"-#r$ÿv²Dк@¿&ŒH”·%>gTO\E|àözLý©Ö¸vCÇ-ìkÀò©Ê£Zý}ÌÙf£‚¦Û:׈3’Ôä•[‰aÀ“•W!>‘–ï¼i8s{‹ÑÞÊ¢ XÑT@)>sϢȧr1óÂßüL¸Ü(WT÷/ë|1ˆŒI›Î€….M=öÛ ð4Ôì¾i)&i Xzê®n±UW> ˆ3”‹ÐÆÎ„xDm‘èÕÀ«Mhßu‰:9F ]æ^ûÅ \=»q/Ù P¬²K©SËuF¶¿B7â92Id}á” Ç:Hñ_\~ûe'öÓÒy^v'iÒ²[펃Œ É‹¢Ò9Ÿµf…μ-Å+|gâÛßðb\+] ·WJ¨%tÑ‚>mÇe5ìõ«“ âçsMŸ´ÑèDÞ„3݀Ăè23ѹ9½ÖÔ4“7²^üM¼¾úk©-‹Ò§?ÿ7°Ú¡¬ý˜É»`^À?ëÅæ…ð®tò +S†§³šp²à&\9¬úĸéáh>ÕŸ¯K$“Väõ»FÓgUÂàä{Çü…C‹Oš;bI )ž)L§Êc«d˜Uê¤I„tIÎDÅFoÄ‚9T !ø?¦’„Þoµ 93æ-Ix~Qoý8Ö‘~dËV6WãÅø¹&½üLÒ 8ª’²bUñ¶é>{¸&Š#C:EuÚó¡VYö!,¸l½ë90ÕÓØ«cÁ´Š’˘ pž¬æÃóü®šß.g•)¯i²^¦Šë›Ozýb*‰‹ß}€ÙIÛ2 ÎgnIVh§9·¨i›*ØªØ lvr…âPꦫ"å‹åµÍ Ž£üÆd(¤¨ƒ:`0ŽNë\´­¡ù diۦŮà¾i𖼘AÒdÎf…1ˆKÝy©,ÍìK}âÊúi›e s£"@ڃΓ;ƒÌÑUõ:<•{T=U4 >2h “obaþ¨F˜=EÙ7?èq`Ü9Àt0‡øaW¬è7eß z‰C…ž§‚MWdµ¹^p§Q£©Ð4y\IÇ™3 ¶Ô„΢v1ùfA-O¸¯ü¯0.ƒÎ FT–;b†“Î=` V²y@r™_µÜ¯p^K^5¥]0•WÞÒ¨ÉeKƒ¼3n5cþóY‚û›%Y2ý…`<Á]èüÄø5ð4Sp­Þï°¯ÿ†g¤Ãö§ŽivPœçB+Y¢ç7ãœìwDtrݯœ6Š ‘Ë Ù7ÿ ˜\;—möšê¤©Jeç ÒÐ8u]ÛÞô{ÏTÿ.pl »¼–]è!sÙôt†Ï8’.§áEX ð½A³ã |ìš–)1HY8Ÿ$GÚÈ©À‚o Äd§Ü²Â"Ç.°…üÈw&Œ"°üJœ)KÚ„aî¾û"Ç(/³‚Šd5®]\ ¨KƒÄwQ· 딺+m6­q˜íÓ«£Þáž«±‰¨¶01d9  !‡^€©s×ñÕäÂ÷icG?Œx.:î›YPTVÖu+y‰F8˜×MeúwIÞ,Vuþêìæõ ¸¿š+C`×:ŠY{îUÊ'‡2á¹z59 àL™Qü’(®É<º>›Þ†¶üw1üJNal?ו¦×ARmä¥Å¹›&¨óÉ •|sÀ*ñ®LÑ3wHÐì*@±õfÞd‘R'¶rÞÕ'I"'Œ{“ïÿœÝ8þ.*)‚°öNÔìQ|hò~•öñƒÿªw²írñLÆO}å¬ÑÞô*¿äŸSý_mìØMIC™÷  º`1ëX +¾ÀGítãØ^bºŽ¿Í êî–¡¡¦n?š†6¼íd>ÉvÐdõMB:Ï‹æß5 a{¿aé½®ê`²Õxe–Ì…µ.±dö¯Ôãix ЇoW¦z¿¼Q—Dk˜õÛ)Ì+ê…Æ ü6qõnçÿMŠÆÔ8ö†_dªÍà׎‹¤éôΔŸg÷´‘-’”‹y™ë8,³GE’¸KvqOѨØo­R’>€*þ&êi.­ö½Úa™‚;¹Ý}0Jrd‚°SÝ+S g;•)´ª?nˆ À³¿Ú7Óoa@Z:•” Ó[yv–rlY°–ç¤(M&áÃëºù´Eqr3mÂ7KX =Œ“ !H¬”o2 ªÕÏþ:±5ýt‚£$/PgólëqŒ—m3¤ûEÅAÔTU3àQMÒ ÚÉ"ÀжÓq1P0‰ã½Õ[ë–OggS€… ¨ä±ÖU÷;õóîîÿTÿ5õöòíìÿMÿ5ðïõíôñÿ]ãìèéãéçíñîõìðÿUôñýýõòÿwÿòúñïöÿq÷ñüIá {^fË­Aˆ>KÁÁÿt hß \ãMVý-jcr€ _͗߬š9Nóà",ˆÍ×–uFIV„ªTYÚÌÖ ]árÆMf~Vß<²ùè(™•¡×ÏXJý¾(N½®¡ÌÛñhöƆI›ŒïÿùN‰!ˆ² ˆŸÂ‡ZœNÏeñÔ6S³o5”M¥óÌþ»PMèö¯Ø53ý¹¶gGð<ÖÅŸ“JÁ¶ŸÚª»˜ÿ ®£7;4ÉÜH±7JçÙÞÐVÜba|â½§¿•jMîºFrQŒlþ‚j\LÝ“œ4d½)´ÚDµ½0ü1gÉ‹m2ÂÈø=‹+X»Ã~¿ãy/ã GKÓÓ«I7Øz™˜è¸ªxb¯ãΛö- Í4ZÆOj©gn–I»i·Vëƒï˜¦åÐÐb—:XÚ"v8¦¾11Í™ÇR¥­hšÁD$ÓäMøâ[ÿhEP_¬]šNòj^üIç>)Ú•I<Ðü æH.î|ö+ÆBø/oó=“éÈaÈü6¤îMÍ]î4^qönl±øþ,Ѷðê}^®vCxDMˈšlý C: ¨NÁ3Ž,wPÙ¹y“6{ µ(l_±Øôè{V§m~Iä(a©•ܘˆ™>Ÿp !11\n49Š `>VÕCJ %NÇÔqãQæ™è4-W°qöy¾¶‚É$Œ:S1}™ÑÍÉ}gu‰OLž'Ñir¿zd` ”µ[GÂ×ÏL1 (NÎrH•p¤ $¹]’ˆ‰¢Üéü{:^uԪʶ5Iù%öïøx­ˆ/7JEÙmÿ¡yTyˆwÏ}Þ \¾IôeQÝ!|,"—"rÑ·‘!Jíye²4Nbp°4€ 7où¿¿|ü©ëJú„ïDVžq¬•k× ÑqþÓ·è1° H©Ú³ñ.¡Ò6ó ÈÇ–C;üc$ œ—T àÞÕ‘Ìž}€‹%E–åmKÏ¢d£¿«`.舎÷HÔR³OcÃFìÙCÂ!aûÍh‰®  99[Ãtü˜5 ±îßb(þøHyNv^¶-dô +§{„ÖÕxò†3_!<-^Qlptå9Ò¯Q4Äç€7P-)¾°™ P K/¦Shßx_éýêþÙïŸQ§Û<$úìhYùÐz°.鎜…½¿å?ˆË¡¤F›=˜@pãp-¨þjEKà‰Þ©Çv”Q—Š+Í?oE­ü.yIgi/ûrÅi±s-¿-œXÆÌ¨(|ï(AÄÍä™› Ýž_S|º‘ ¼ÎÑ‹1ý¥s=;aÚK×3Î}2¡ñáO-‹o‚ÈK÷öWov!Èëe¸’ZCçNdç.Y‚‰±¿Û—ˆƒÕéÁäG!O úÛæálD¥+í`—óð9é!óWA`]û+gNQ÷âˆ}¿¦L}Ì»/]_ÏÈjZÈÿª¨Õ—ƒŠ íÁ@T§8ÈMŠÛØ•_´^, =ÞÁZÛšnžw6M:,<7yÕ¯j8f%rÙx>¤bVU\’Sž‚µÖ'°?¶?Û¹+[åEC“W$ýšÙ0~ÛhLßG*(‹þù6£8:ë¢jž«Hü6w‹s^,ÌçÛRàDÏŒ_åÜÐP…%÷°P‘$À)>‰Ç4n‘d!–˜ /Rƒæ7oˆ•KŠ×°ÂGÅÂÕ `žƒOH<$˜C”i–‘/@t!PoëÓ£ßz`á;KÏbßz*Œ<ú»U?½¹ K¯qv¬t†ˆME;/å*š¤ { žmri‰«Yê×£®6-ÓÓÄý‚<š:=äÎh)Sr3yX&z7ºE©C¨ÁHqüh5tøô4·ý”¸µP¶‘¯=èWð·tJ0†OÂ0ŒéåšßI,¥4ñ£±÷ÑÇü6P‘ÎÜÖÄœÅá³¢­Ëý\’ €NÖó”ÿ´$ÛšÐ8?©Á-kÅÑHåðÝûnô–^ЀlÞU$\ØÃQ9Uãèu•To¼µd?cí&\¯vêÿB7ÖiC)hqq fYôë {qñåø%Ë%bß»Ëo`ä‡ÜÈwÃîi·²ÐDìCú‚ãô¤BEŒÝòçÎä$4ÿØ _ûy¦ç¢Ù…Ö§àhÅR5ò d‹rò!f¹“eÀZ`ô™©CE€¡!ÅÈÅ/pÐÁ¤Í9&¹{(“LÞ(â<¬¤uý96tHÄÒE"ÙAs3ƒ*ìþŸü6T×v9½Ú§yY×±Ì_°‡úïVë“ó(=e&ìù)f7ªöá;J<âø`à¦Ì0 „”?ÈÆ4Kõ™8Dx…~0ârû“Î!HaE9qcŒ­4Öã²&€žiKè(gK’;ÈUïéq²W1¹ýyEÙ9ð`?eŠ,±¥þO|$à®`#[Å¥XI²‘˜tÝÕòæ}$§²"˜Ýøn¢×3%µ0¥¦‹J§©z£&&“¯„ó¦8×?/€o8j<Õ¯ ÖÀn;~½Ÿ´ÒnôÍÑ>ž^>z-\•™ç„©zZ6äƒÃ@‹Ä÷=ªPÂùüL«°A)#Cåò…‚uQ»89DbÕ¼^þ•xHà Mšä *)JbP‚tCÙ R>ÔÛ^¹ 5ÈtDÝDH>K·äÄWƒƒEß„™;QW` f9Ðb>’/¹™ßœž¥Åk—͈ûmÙnÃ@Ù%ƒ‘Wñ„cRúaÀâ×—² œºdÔÍ?G•UnÂ$G븋 |ø-Ù¿Ú2o—ZZ(êc£J¯žý{Ëɉjzÿ†Å ¢£8$¹>§×œ¸ú›î¨>·_zz±˜\¤õðyp(Dãµæ£ÛfÚxÎk#‚±­e !»:&€NOG·ßTÁü6rc¶*Ÿá¡$•5SàÎ$‘qg¥Y)¶ÅK\?&·à¸æ0zY¼¡ Óøä}¶—3õÄv„fyZ ܯ­ªÛ­kTÑRì¥ ŸMG „vÅ1£lqÄ8¸oTÑÝ>‰8U­„¢ƒ8²§uÆ^œOÞí-±AE}@™UVÍj÷¬÷&OÍ9ˆ«ÑÖOçŒ%óŠ„oÌR¾}H–<½ò©Ôä‹»}")¢õãÆËø»€Ik´Z…£™³Á`Ú²ÝCÀù^Þb^• x_MßE’&ãgH≯ŹW~4üj-Îåvæ}>²lÌQþ¾¤rõáY”IÇÖáŠ_?Lîì-Q?„ê&W>¶Û!׬.Ìî,Õ¿ïæ„mÏ9î†úú^b¡¤uR}ª"éü.÷x{ôúùíÛ_*a‰Zkzq¬ ¬òû7S‡xìȉ\‡Ë»9™f£$Ñ{¦©u‹d³ qô ááT¶´d$‹õ†Tòå€2ÞÎ^0>s þéµ.´I¢¥´z.»®ê%Ã!DªÅs ¨îÆ%ëaí“%/…îO?â ô™´¸Û”c^ !Ñ5Ìÿ>2ËE¹‚1Ø))k®lá‚Ióíµ)Iˆä…Ns5Áèœk”þ2j½’/½Ú8슧¨?#´%YPx5ÇûWÆi°÷ݤž‰C¸üyëñÁ%¬’,Aº-S$mG{òÀ˾>Š¿Â¤iõy¾éQGîMXè5 9 Ö=50v št´`aƒŠÜvçípšë jf³ P4f)¤\‰Ú§ƒ9ãèüIÝ|É.ŠËÙ[¦ä$S~m$p(E§ø× (`u%¹Ã³Òœhª1QCŽ{\à>• ±V{Nf<$õ¾K ªh6ý{Ú²§aîìûI)Š\"þ¿5|ãNÿ€ñ¢ýÞ’éÄé¦Eµ•~[ú$£ÕK_¤ôc{õ‡‰¥Ùâ%"v,¯ÿ‡f/õ*.„?HU]Ç·'„|Õu[åÊ®ÖW5^0·% #·õ&E‘ËsùžÊQ]']ÈC+ü¼}]‰C^îˆ]è‘ÐÕ~"Ó?¸²{†›–Êf> H{!8ëÅ ²ÑI=ØH°Pý<ü®Šg¢VvØ‚‡ó§”ÅF¼®Åb+ú·RŸ%óÊ àryKÇ|:«n—æAÝ©áÖ:ßà(aŽtÙ'ßK\Íâ’Äk‚D‘ö/7U©²ÖoƒñÛ9Ë7sß„Êm-ðEàÛ˜$rEäÒ?ÿ‘¦w©߯Õ@ÖèÒ"©miŒ_aÉ?R…[R‹Mÿ¦–=òxØÉæKXì†b\­ïár*Ÿ'ϘP€3Ðj,•4 >OðéF®  î> ›îù €pûÃOw„[“®£óIÁ-Ù`ÛÞÕ£½l'ïçY¶˜h¥ƒ¸”ÛFÍŽ—ž“¶°ü®É¯6Ž†Ý­Â!Çÿ©Ž"%;K·‡=@;›šTN=d^ ‹É¯‰«)LžØÇ &D,F^¯Èõ\¼b Xz2ï|2¥s¿¬<¼”«C‰žNywH)£ëЖdv5¿TЛÆïð%0Ü©»÷;qvH³d€äE)ZöÙYÔG·tûoVHè;|jR×£^¦;)£k7£Ž™ÆF“ª×ì˜àŠ;¢ú©{3–‚Cݬy'˜™á¢/î$%ÌQïPQÇá௢=B É÷¶4ĘÝO”RHê²;¿ÈEü…Bå鲨è1'¥pr úí*°ü°ÛÁPýf4Z¢cÒúâÏ5¬ÔÃ2MÈ âŽ¤"Ø]í–i®\më‚剷 vùJùQÍ–@ß`hDð8ÿð8 *ž*™µ-ÚN [ZÜüPþ¤ey‘é]u/™L‹1ÎtR‚¥CÃ'ƒK¶Î'’¤äÔCnÀLŒžº&χ/vZ^Äö4.ŠGv~ºÌºîŸÂ“÷q«™,ü‹–¤C3N|MôÕ ‘>æjšîÈ«=ñš–Þkõç·YWü¡‹”=M핌}ñ¨ô<„n˜ÏàùÊÈÐ ÍNÒ2¥—=—!­«ê°ü&·«š1ë2“A`l…\3v••}"ö¶ø“²GxÉÇd¦\ŠcÄÙMÇöH Þ«‰¹Ž·üdÆ©ˆ‚mÕPøÓÌ QÍÅØï(¸Õ¥r |FßaØÁõRªc™S Á \^ ûC²;FYÜÊio™>{*Ë*Íæƒ!U‚fg d’>ÿeoÅLc:YB¥š¬ÅD9'ú”¶jg~‘ÂÙ13Ù<¶ÍØDeJ舆*SqÞuB{0åf‚®ÂéZàÜܹX® 4Sôè›­¡Ú¦4Ü]<^ŽN3xÕ^Ñö”1ûTÀ®:µ”e£§o;ü° ö-H±+;-'/qüTÕÑ!² ëú”0è3í×K ù‡ʱ(*ûŠ]ù#Gmgô{\QJÜ“q¾3ø+_ÀS ¦ö‰Q£lÀ£ êJ…&;~Úˆô“DÚ®&é8ÉøF¯·äò¨_žñòÃÄävë%k&JÁó…ÌÈ‘€ðDfxêÕG|#Mÿžµÿr5ýžÓƒQrêÏü.6äXpótþú¢ßìi(êÒJ·-Î=E€Êƒ=HÖ$Ž}ÈJ‹mÿBÔ·*íj0£|ßqD– Ø{v¡ÄlÃêÈM|,Þd ޝ±l æ9HÊšïs‰õOëàÿš7+/Ôð·É7%ÉÖ¹Ã-©=Aß(ç”™™}6Á¤Ã¦w²§ï2¹vÞxÓ»‰ôm1ç ü¿‹A–Rø­> š÷Èìú„ëð× ÌŠ ¼¹ùYM׎œŒ(Ô$켌*žw8ŒnzÏÍÇ]§ئ]f ,ç8)Ó7VüMUÝ+? ü1™¸ÓÝ6ÕÑP tEpþ¦9¶õÎ`ü`È Ç¨áUÏ ]¾žMÅøÀ[“ÊŠcv û]p ™ž<µ¦I‰5xeØCÊ|Âãg/Ò­ñ¦ßbÁ2µ+Yh Ö²Ú.¾ÊûÜ4Zî­˜Nó.Ê“‡Ú6gû¹ð1o]2Ö1:€Çáä´.ÖJ5…?@/â:Ù¾èh>™|&wò.¡ÖýßAcSÛìè¤Å:É i· LSþÀ\l™{tböî]²ÂášÏ˜‡/4#틎ìß7å>R™kÓ;z„¶üXµ@8Ù÷Ô7YŽÓ̘ÜW}ap,A!`Q- 1uÎQç ´¾±ÆhzXb üà’nå²{HD|½|tÒEI–ªÿÿ˜©ðÏÜ?þHžóxHyÜ^Áé\?M€Õ¹t q2“),t„OàUs¤¿µ#cÎ~ä°ÇKìÊ\h`¡`o€\ijmXëp®\Vðj/x„Up¯·ü®Q]ú|±Ó†º™ú’æï s©™7k.Gµ6B.RÁ£ºßêÁ`@%ôo—ÌС¥¼ãd°pàÚ0¯y“¥î ÜœÈüKBÑW˜øÚÂ9ÿŸ firvµÝ º[RHþD´ñ ¦ûÞ{Ý ªÉwý~g ¦8­õ7zñ¨SLÁÄÙÁÉ”aúà =ìžgüâ¤Y•þú{vM#èçó)ĺM¬¬j•ÏG¸Å”‰ð 9ØêK„u1¶„DNŒÀdͧ1XCÇ¢Äãf‰îä·ðÔO°êÌ[wÿ×ø>Y„=£òÁ{[o°ê/álx3õÜXú„:ÂoÎæÓ×›ª;é´xöÝàLþ<6ùæ–V×U¦ÏQ:мø&[lˆ<꺈5­`ƒÞ7ÒPTÆ·[( ±=~ƒÃ ˜G7˜ãŒªF‚΀Mûü>€6’¿°¦ÖËŽ*Œ‡¯ÏäLŸ:´\úƒ Yªu?¿[Kñ¶ùìfpÙxµûÜÖÍvšZe«tͪùí™óõü6§-‰ý%nûi¢r`¿Ä…%p œ~å}–êÖz®Ö´ #ëHýÜKÆv˜8¹ÔˆÁÙæÍoÓAú%s?»ci;¸ÆÇ¾?Så¶•‘´Ù†ãÉqLmÉ3[;–D ¡ AÎõLælÆËö+;§D7¹oŠ–™™Ïò¼‰øQúÏöƒe~ö=Ô‡¹ ‹…h"·Ž¾PùÆ÷C“lBx¿«¿å¬Xm˜‚‹øªö@ÆñòsØCä§Ë4f@ÛGô¤@Ëû Et'Í6=ú@Iljh ×9NÞA¼2óCrzsÇÀ¨ð¯ü6‰=Êéç;/2¶öqN«Û¡ûž´.bæ ^½‰õš"9Ü?«·ÁUÁ„¶whx}¹KÑæúqŽ•’:\¬C䘧… ÇÊ“?-2³DÖVA¬÷Æý‰Œ¾ÄóZ[·½²lUͧ}µVX;jydÖ¡D²ú«b Äô [ÈüÚOÈý†úCž2:ÜjzhVˆùîÃÉ÷µˆ¾¯‡j9O9%šÂ7öwÚHž£Fd›ÒÂa|æˆ÷Å/˜&ÏåU— ³N¡Ñé |ˆMý›®8­ÕÛÚÂN¤˜õÅèˆý»ít“a‹’½ ß(wAöì<ú‘Vü/!ó(-˜StÕ†‹^qÔ•‘éó²}›¨Ê|@¨&ìs€ÜhóÍArB¦ƒGüoSù¾Î¿2­4.”©äoºZd°x +Mß@¨6&K8nõ6öS,–&Ý®–`h?#ÁÊʼnb«¯”3Ù¢†‹˜«¼a nò߄℆åÓÆß‚sãé7ÃUOLµ´Ž³z¯DöÐ%9ºáZ€HîæTÀ‡%A¥©³s%Òo?šÜ+7`UŸÎ?w‹À³w^oZ¿62yÐæ.,¦<½Û›% Hú‘ÛJ$Xå 5Ï´}õü6‰†5´|ÏÛïýEžDŽ4óÌu  fêÌó40#.55ÏKõ¨Àß2~ç™V§OL¾òŽÆ|…})ÌUϳ_ÛÝ]NÖ@,ƒùùOz¡þ=v*µ”8ÄF 2þ«ÁdÉgÇœO°L⨲Ðzòþ cÑ3pó݃ã•Ëþa ÁûM+=Æ•\ 3”µìÈ/‹D@få]šÕ¸Ÿ“úØV áÐ"õ½‰k{N»óì¡yŽqÊÀUSma° É’õEˆoÙÓ¼§(9Óä€ú³=Í>úŠ ¦g‚‚ð‰. Ý–%í Á¢)¹¸(€ÕZ\X*ü±Éé™Â|ŽÓ«é§µ»á!Vm†'S"+6«àŒÜ@§\šM% ±Öý°Žæ1aˆúûtᥳNÇ q„,BG9x!0…ù½@vL1;Ù…Ë —ø„V¡ªxÃÞç׬>} tü_¢/a|Pw-C&Gt¨|÷£ m¸3Fw°¹=‹¬Ç`d-#s!%¾§§yÉZBp9&Ç×,Í¿>.}sÙ0êøÿ” ”7‘ðµ|$sò¢É9é¹ ÎÔìû|*l“ SCxìü &Ó§úůH-" 1èÛSœ!fõÍ”°ü.„ƒ“ùû]Ÿ)o¢ÖUÞ4vÆtÅtþ m¦ ÊPÿøàκJ%ˆZŸNZ/`×´p“Êe=éÄ·¡vsýÐ iúxâ>›Ú㤲GXìEæ@ÉvÉPbŒýù ”X4M9ùk…ÿJ@ÖNž¡Nè%k€ f>,IÐ}‹ì@ÿ†ì‹±@9ép i{É(¡My%vŒÞ,–•ú ‡2Nbû½Œy½Âq9ÐOˆœlؼØ÷>á‡7<--oõ§­‰fÚbgôöXÚ†’üí7•AçÈ&Œ]&²v±-2â’²çÖ•hžü°ÇH­7#&"Ø(.ŒY_ºPi‹€”Ò ì6Ö–Û0é.IÜy4ùOv¡ÊÀb› °’h|"òéy«NVñîç¯Úšü 5ŠÃ:Ú¸ëY@Õšüeçéméü-Ær1(Ôžraõˆ¸24ݯ õÌœ†6/iáq¼ÓR‚Cœ¿àç]ùÂVÞoVó÷Lû‡‘$ã&ÓÜÐí0@+^ì * =G»NàŠÒu³Èý—ók)|HSÙ‚Ò[ÀzžY¿È~Äw‡. ÿ…â0 –°jÞ#†3lvÑ­(†ʶØý€w›ê€pjÀ–ÇÙOdV€rý×g&UðNÆfÁ†=Á ›èûD¦«åŒ+´âûph(åù)ß‹þËAîºcÅK,6{PÍ(v÷Q-܆0£@DÇáx…{ JíJÕ úÍÿ\¦,ü›„€0³Œz/®pùFzõ€Ù¸ÉÓaÿÍ TyñÀÊ| ïååúà¦Ð ò‘y{žú¤ÉÕˆ&[gù‡d«Co ¦®é”îÕ×´ §Fê0u¶72½§ ¿å¡Cÿ, "`’áÐ÷Å–l:Åzí»–‡+óQN¾êÒêLi ¦ÀŽç…›$o] §ýÈh;€bš6†SyÖtÙךÊ@™XCÁg«šíXL\ ŠÂb®š÷ØÇ‰}A”Á DÌ<Ø“ÓFk å¢]Q¨Ã_À(ÒªâÊÂó {BÄÇq³ªú´o –5‰qüM1âßÊVé‰i ’šLÇ­¶ñk¼òT…<{"¼.¦±à‚ÁNz‰t;2íæà©Ïäãr:‰‘eÊ"n< \2Ñuf9 5õ[Ϭƒ Y#S4|&(³Z$°£Rn­ê虈rš=ì°sÞ0±ä^Á"v,|ª ÷KžXÔ1©Fì«s bA;ÝqKefGÉÖÃOT¤ë$òò`¢àÑ;ѰõmÖÌjÞk?kã/ZNe9oZ-‰\3Wp’^Û˜!"‘œ†ŒH&9K\ªD]nS(”F8C«?ßé©Þ½-þcǪPãü4ýŠçdVª¤m´×1' ãxv¹?‰×”Àö-ÓYUÖÒR§³$°åà{eæ£q…Áv B¹]¦°Í‚}êûËQW‹èUÄ¡Á×øŠòíš,Z³Åˆ$&Ú?ÙÇ4XVu"ãJ‘öü.Û× šûây©ÖW€[àyk’iÊ+ÓSþé·L§÷ @Tu55™Fg˜"+iLP_BèÝp!µBÈÓÅBHÔò‹±ÌqQÞpAœ:o²Õ#*~· 1Ä»yÞR÷Ÿ R´¯œ«ÒTÊýWÇ4ˆjeíN#OÄì sbµ¡Œå¥ç$¯´1ä¡Ðø†íÜWîó$>ü<Ë`æ ýó?,¯Ð˜†ŠSz[ÙüÄ%QÔh¹S†Zâ „ÏPVnȈ¯uZu_*Æz™ô¹M]lw#ð¬Áõ·¬³C$>9ËTÇÈÁ9a™"Ž °Ø•ú ¿[¼£¼$Ñ™˜E×.ð*‡öøÉU:xÊÓþÛ ÜS˜å´¯ˆüÀZÍ|µ ÝçƒJ×ÀAúŒiÁí8ÑÙ!”ÂÂäÞ4ÖF,s¿_ˆƒ·p܃ÝDLì­ %º0W…²Ù„­*¯üJ34hâ€3ª™æÂÄ3 ü_¡ËwPéÀ+ ”0¥ðö„“N[S%ÌfÁW8І Ôfyí½± \ ŒŠÌÎKäG¼+bóÐ~Ùn¢³ríò¿ eý?#C^×­ÿ¼dÅß¶–„Þªdo!F×·õò×'v]ÈßMT3Èõœ^›¹(G½6v„t†ôpçcPÓòi¦ 3„µâiYyÞ×…Kø[{, ÿ§öúY 8â³­ ƒè})üÎ9<¨Ed Œa¹¼½=oˆ‰r]mŽd¸æíÙ¬5]»™ub6//¥YÁÙr­B…ˆï€vb3røüÜ´7iÎTa4þCоXñ4u;„ñ/ ÇÿûmµÑ]óÕq…é3Æóª¤üM¡;ÔÌ£ØD (Ì ‹úYb<¸0kJ&šMÅÏ¥T½FÚˆïZy €Óª¹=¯]¯NŠõÁØ) <ʧ™ËÜL%Ó*©ÉŽ v`â¾÷#Æ„±-`™¿Ž[8å­Ÿ>?8èž:Tê,­®·§´ÕbO¶YÝ…â¾2EE´ "ƒ·¡ÇîÇØ¯†aƒ¦Ï!€uÓXriLVPE×ÁñæÙC™¸Õ~i-ŸðŸ™b…L$ 'éx®*n»bà“;kå‘Û=}šÛ´©YNcòãͱ¤ƒ 9fhirvFHÎHã±r¨`Ш¬CWè耭üJV —Üüø€Ö^h˜z_.]¬É¥I9†WU¨ÝÔè±ÇD|¾Jn; Ÿ'NãX§RU—Ê/£Ÿ ®ÇG®u&uÐWOº´™lBiIMI¶†Æ’s÷ò4}… J¸Aâ™.‰«ÊÌ7¾"Å.gèQW$lTPÓøùЧ¢³’zÅá-Pk¤r¬r|`§’ ØWÆàü5²'!êaÁíJzà¢é¶tMл ,(¨¯ÐMË=S¹d›\ÅþH½2Bš9JNÒîW¯–úߨ‡´Ÿí ²O«¢ý=¹ß±™½ãNV|ËÃö]>*;v¾,Ž{ VeV`À&­¿báÒ©/j­ ÃC´”}^a7O¨O©ž_ÉD×»ÚÞðmU„y•uìûNWgŒÒçR0}Ýk¢Šáæ ï©•0ª—‹ªÂ;kŽƒ_ȉ¬·0}°Õ‹aû?¹âÏ Z  ²Kv ÔAˆ¦å7Õ¹~d) +Rd. ô4|È.NüF^Ø(Mü»®n`ß"+Žw(4‰.'¾_Õ÷ŒG†/ŠA?x®¹á/›•Œë¹Cúæq|if¸^Šü$·Ò„¯HÖaÝ„$ײ[ ±+ 8n¥Jyl>ç:‹¢Põæ S·¬`»lrt7yfÊ7×”¦¾m%ÎH?=$ÐmçÌŒ±DÛ³þâɪÎk¾æ¦¯t+Ù“æ’ý5DêOZ)©»[&»ª¯úÙù‡_™Øn¾‹Áë+à¯a¥ÏÃîÜiXq d5Âñ͉·µ}{zñ’J|X`ŽNRºÃ7t0©?ð«°^–פÓA!û@„@ƪ©´îw7(kÜ3Ö54”®˜D«ÇÈ'µ7Ôå®ÉÇQ€m'ËÊuÕJw£Ì7½ÿùv"¨˜çnò è›}mt /¾ýðnÿË~d/á „Yq=u¯OggSA ¨äÈ'Õ8ïôìëÿeñòîôòúÿdìëìæèéÿoäñóîëíÿbÞâäâæãâåìîèððÿuìõëõ÷òÿˆúóïü55gW3ºÀGj[ùšáþ•”Ý}ò["ú¾Byµ¸‰• >$àÔ›8‘x£]D”„iS㕃ˆu÷,{™]·ÐÄÖYœ„Z´uµèNw¤ôwÃß?¿z ç%±lßGr侈î|âS—3’–ݵb ²Ë 5/S‡FémàAÐ[€Oˆ•YiRÎÏ+Êlî¹ÚkŒ §vªc‚¢þÁÎX‡*íÖ}-qæÁÛ…€ ø¦mŒEÜå|…ZÔ©: zÐ+¸yré/8ÏQ¸6›&o:(dÎÔß✓šL.auÍüLÖK– _àžè\ùøû.™q¹U3òb¢:•SMA=éyùâ‚sH7ù %^Vâ[XšiþÖâyª‹Ä¨Á{Ÿqb±‡×½$šúøª6ÚÇm]’n}…Ãܲð{ΠôP£©U~ßO+4Ç‚­£Ai;ñ¢ê°*¿ý\þ› žœ`f¯ƒ÷¤þû‚à'cj»™³Ü™DU<ÌÒûç"PÙê&Žð›ÍŽ-%QczÞªa}æÞÿ§gž–>Nˆô€®èŸ¥ýXtGi%÷V(D+hÞ?“ýûIO}k›’}^Áù…Ø;L°‡oüMzcs¶ +ò¸Q|$€T(Èï#Wp×÷=óDôû‰ G%sL–ñ1„ £`4mWŠZú˜‘‘Dø n“1-7 2ðä¹·+—ì)Ú`±q:¼Î›zçõHLŒoo>|š¶åC™'Ëtœ{Ô¤@€¡móÅ™x˜Àíj.<.â`8Ú¨Z*&©¦vlC!w~¾.˜Ÿ»V{+¶ýÏ îË>0îÀŸÅN$czóêôj²‚ƒ)àÿýôÂÞjtáH-èN"{l¨ÐË´À©vìżfºÅŸZäëë{”œ¾Ï‘݆IüLÕ|/…}7'ǰŠøþNs¯Ø¡-–âÔÓÇoÝ3Ä髹W6»AÒSaó/¨²Ðs«­Ç¬Ú~à„_¿ÿAÁh;g®¢¬?Ú¡ÖHº!RRaÔ2ÄjªËOÁ¨6Š€º#o»Sƒ°+(ºípV‹ê;¡Q¥eƒÎ‹àøÄº†× %OÎ'hæ:æ»'Áa, P ×ÊŒ&n*ÅJÅø›X³¨ë‘™#z…µ¯\2=›Ø°‹ú> ‚ÅŸ¼ü|¸—¥Š š ŸR‰÷KIz´M1 jB]rv<[е½”ì÷å´ã3K(w€XóºÓM©vʱ÷èZ ŽÚ{‚/ÆŽ“"ýTÑAèú$=¦%$·;À—Þ©Š‚>òe$†ô Ù^(™H xjŠÔ!ø‘Ú3ô†Ñx Å:C¹Ï›¼Éä#±‚p‚ÊþAMåÀÕU/`ãÌgm×(ŹÄW»’£Š \ä÷±<)¿‰*•xïØ¦´U÷BìêänQ?ŠìÍ­±Rs40hû@Uù÷ÚÒÓØÂë[+þX…è¤O¿i˜ÕÊzyj8ЫcqÍ¢KŒ+ñmºs'Õ1\ýGAlÓZŽŸ\ !CV<­Ò~Ъ3¸ž©žY0¸sO:ú6‡tkñ…ùµ€Ï½=-£Þ®?Ðes¶û [»ýÊ/–08þ%a¹b]¼ï1%M!Êd”=÷®Û4&¨ˆüLÖV R–Ig£-ïñüaÙj×µ°×$¦Âª\ši¯~ïÁ_u^*öWíübÿ§È÷φÇûºpJ^iƒÚÚO-ËB‚ •Êž›ã}u'Ã>Œ éÏ@'êá›/÷ÿ¤c ¹9õµ#\ ‚š45ºFÖ«G€ÍœRŽ'Œœ¨~Æl‹2ƒ“>ô\€hq :Ä£P3a9ÎB€‚SÞ —7Зi›5ˆö >³i-¯YÉ9…S_Lmû÷¤²‰kÒùù½¤OFlê&«ÕˆÅ]1ÆJІO é‚7Kò°DQ 9»T텦ь7jüJCŽdIÕ¦pý`A¡dôý!/žÂ!¯(*[fçnp2Ï@úIŽE»še5è’ Jjy(^üÙÆ¯—,j6 ˜º€À‚ªÝRDøÇLudé„ i6ËÑ9ΰP§ZgGåî}N@,÷-a{õEN‡b¿òß\Ú2­sq+¾zÐéÎmd󵥆(¨>„ÎÂÅ5Éë°<Å.Ÿ1ð Yµ›ÓK]2³Êhç²,œ75˜v ÈŸ² bÓYñSÊ™±`™EMÂ¥µïÜútú­a94ÀÄ+Ì/ð†·]e‹U€šzRü¯~'Ã¥7FÂKÅÒ`e ªã-Óî…¦mï´ç<Åâ_Öõ8•'æ»'sLâ\ð‡çQ¢iIQ?úÛÝþ¯èkVÛ °ôŒ[ý›½oh_¸‡.!VÓúJÕ³päBÔ¹ðèdã¨@ ÐÕ8ò£¹MT“טwSÑÁûÅ6GÆóæþn7ó-[Òü[eÅ%Xª3!Š6\øàÇÌÍ–>Q®F±žNÚª2dÎVV7×¶š,•I¥™j!Ðæà¢vëä¬ùEì3kÇjxL)GXFdˆëï;Pq}ñßú/[ôh…æ6bü®~òQsøK©“? Q1Š8 ð| CÉADÖ^D#êŃPA¬™8jØé‚0Tl1Œ”ÁvJ¢tµd+Xë1ÎWó’a_øo1^(ÐWEÇ€¿-‰™CÆ´ÈÞïÎlwÆÛÏ…¹ è ,øwvlW}Ý}÷´Þlšˆ×y“\tŸF–ec¼%2p¹°Saå ’Τx¼qCº……UŸjÑÝŽ­| "…T¯|r¶4Ø^ži!ä~‹möÑεþàga„—‘ÞLeÁþÞׯ;at‡[ÂΓè'ô¶§æ¨±‰‡ÖþÓ;æHHh3Ø]ÿÄÑ.ÈŒëã+kâ52©wŠ­™ËnÜØB÷µ¾‘/øejÍR»Qô%€FÛ­Ëlï<õ18d—i*vÉØ±íòC焼SÑ9Ë(¬ºIöp!!gL~mEûµñ˜çíªØlp||õ›ëG… ˜!MÐÆ»ó m¬B WèµÞ½KÆOJæöœ¯B|(¨¤BÙ7«JÁ}ÂäÓDîó@4äƒ<µw‹ô£gÂo0_eTÙnH+îar?êtX\“¢D³rZü, L,{LBË1«çÔsk ¼zÅêÁ—7N{¿Ÿ^|žb ™ˆååia€ÇØßœF»™-4_À€Î”/ zsë[bT4˜ßÃÿõ¯ûÛÊ]ØòȧG›.³£F`$füK?û-âû(<Ìó\AÐx áXÄïgGoAQy%Ÿ“° £ç è¡q´q=ʛƌFC]&Œ è?ŽgU‰©MrB>ERä6g¤D.ΦðÉ¿å£þëÓ~o™9tQ¿ Åb¢Â7_QjEÃȉ‚‹…oEtÎ3.»›$µáfi?õoÁ+ë¾Q¬Ä „QªØÛ^ŒÝhvÝ £’¹Yšãœ\ÈÃe/Wc{¤Ø‹`»Œ ƒÜ.)tó᫟Vs²_)„°"7´*O¥©Ö¤"x>›Ê)Ö¾ £ ¼6Ê÷ªüM+Gc€ûVT;ôl#pCÞRÔ" d º»MŠü»º£ÎÑ/Ö tÔ“~Ôp†‡Ó‡éÄE¢Q•ª\áˆ8i€;pÚÌÿ$«pL¹‚`Õ†|·Æ^%T¼q2åq DƒÔ €ˆh^Ôh2^•«ÁÃjP#[ü×ûq7K^JÓœîÅ1¥¹¼Áaj‡ÙGtüÎ_þÇÜhØJ’3ÿ—b^o÷wLqtEŽ$õH~{Ù>oa(çÜA;Euz>M»bù$$ã­ðàè<ÍD«ðD^Žœ¶>Ò "JûD3jÛ¹I›ü5l}ÍZ,w­;➤Î|;Nz=ßzœëʰv(èô"ñVWµä¹u¶Gñ鹯l™ÑBýÑ^ô š¢\ æ<`S¹ãm_xhž´ÞÅìþ[xʺå½.<ÚÇ!ãJqÆ"š5DrK{ÿaöç©CŠÊwéw¡_–—5¯8íxiÚõɺ3™¯r‰Z´40Âm‚àå”V˜/¶@=o½Ji&µ VÀ ×J½„¥Þ\‘§ŠË‰Þ~J*º…Mè ½âùôÌî·C9×F™ËNˆw$²„!’mÀ¢AÏjó oüJ3hx•Wªê’§p3BÅzû,Æ:chm3ÍJ Á…@ØÞ×í™ß²”hRËë)ž§¯¹8io£€å"L,§6ÿ–׌Žÿl?&žk šÅ›{Tq§¿á•±×á^y '‹×,¯1V<ôG õu<ýqƯx-çv˜#@GcJª‡î£Ä‡ùÈ…" /Ô³S(©ôN-W¼ß9?ìÕ•¢ N•¯­¾ÆmeÖ°•7†@Ãû"â È_æ½_¼ZNð±Låð\5à­àiÁyfÙ]¶yHeçÅÈ»Œ¥o}É"ü½Ä©nœ Û7=ŠN}& ¸&?¢ŒZˆœT1{Ü‚×ó×±”ªzèCÝ îÈÜ ÏSg`TÖPTèíìk…'À ÙT·šyrC4|Úåt\*™€³Ü©-m*ZÜÏn-raWuR>ÎÜÉÛÁ”ÿ½Ï]Ò/€òŸÌ.‡ñªËPóS²K=uo‡Ïs–<ôyüžTc+—ú„÷µ¶éÙsêf½¬5¿›ýÆ`¸5ÿˤJË¥¿´ñT¦£ëHOy,†¼!ák^'ŒDK*BîZ&H¢5ÂÀ_¯ìeÐ#!«|¶­¢Ýü0 3,JT<ŽÅR…Z°zÆVµÝm˜\•wÇ9Ǫš¾°Å\;u E%-„ǘ[+äíÂØ~À¯`Ì"ëÏe+'T–xŸèÈ£¬†÷Hëi ¦Ó³ïx̼œ{ª=¤q0ÛN ´l°yË:†u÷užÆG0½¡íöáN±tr éößÛZr¢Ÿ®{ùÈlÙ]ÄHGãÿËyþÃq„¦}I‘¡àP!hÅ見åò‰Úê¡‘Qµu‘ŸôkóÉ]KWñ2Uî{R%À&$g‡&„— ¾~}M*qÆß¦üVºâ7aÓcü|ª Ÿ4¶Jév\ú©Ç=[ðT¶Úûj“Y¸ò“æMx÷å°. ùõ"‘0 x ýUIÂl";’ñ"úí³.ý.@4ª¸W‹ºÔ:- š”&k•hØU²zäø 4n[÷üJµI¿!+~ˆ¶(1tø£úÿÜC­¸†)cy³O»8´[ÄE£Š¬\,„¿Ô}îˆ+Þ&s‚Ï:þßÔý¶`sžC\ ›Ý/¼sgˆTDqÉ/ãóÇŽ>°¢¤¸IPèèÕTçC¨‘¶¡½ˆ_\¾šàù²“†w䟡a ²¬ï+cKô÷‘“æíëû¿ü1{Ðý‚I”ŒÊjeì€?ã#dP@Xü–¯+sÙIçiòe ±Úb¢T }R÷l¥¼DùBŠCã¯(§UŽ,DEû8¤­Å PˆñnÈ=ú»=ñ"õÌ~(rŒ³dü½Á{‰–¯ í1§¬E7òr¢]8|ÅÚpG„Z;¬üR8aÀ0ˆÆÎ^(F#½ƒ; ƒ¼ç ÖÀ‘vӋϦœs«0±*L(‚ˆ|úXÏîZM\†/Öì%“§&žâEÜìõ¬—)X%þϲï³üÞoY_·Œ†×ü‘clʪ»´Ÿg¨:A»Kž·–v€c|ÞÌŒ5^ Ü´\~×ýݲ] ­QLÍß.ŽbVSÝiK‹ƒŸðØOuGùhÙUHdï>I£¥®9XôcŸ0Âð[ ‚c4­'œA–n;õÓ³RÛmw€jJ¸š|O(©µ¯¥¦fÄÚúîôöe¥Œ¿ÔoÈ¢ˆœgþÀ¹¿{*„³{£Nq]”§å©p&Ð6‘–^±a'e]"}¥MëH¤ü5oX% â+ÓÝ(ˆl³Œev9Lë±òs…·MÙŒ FÊ%‰f¹b‹ÛÍÔ$‹s0‚Í~få×KLùŸ…ýsJ€ç«ÿÝ„Üo¼lé« zð]Në,ö Ä  /•·gü†çògà¸C„UL÷(``Òè‘Nvœ¡Þò#ÜêC‡â?)u¤±nÿ "(Û»HŒ»Ï.‡ˆQ–ûÌ9MHül1h§!‡8óºž-C÷¡ÏÖöããÆ)nÚ% *;yI>6=Ì2c¢Ê9EcXPð]•×ö)…€»f¼…üJZßÈH^æi{ùndj-ì`LÈU1ÎA” Å ©ÿ¿Šj1@zpIÐÝìÞÕa/Ũœ{ÿ^—dGü.öNâ›W«¨p34ÂyW±NÜÙ56¼ï”ôçÔ%IÿÍ6v¼kS8«‹3;Ûi¤ÑN&Ús4pÍBISØovv&¬«YyçATë]š‰iì\ÔGáòNmŒ’¯à%žZ5¸°z0ÜêpcË·M¬Å§úR¾ƒ\4¾£’{$œ* Ûl€óM&šŒ¤ ÎÏÝ‹n¡­ûOB>Ø.›k¼$Æ:d¨úç("0Òös˜ºü®‰²Ÿ@EÔ‡µ(‡`S^rçÐwÍkr3é h)ªWv•zóYÙLt–ò"Wõ¹Ö}Æy\\W¥xþý­MÑX`×ñ†}«K§×1ôßOeÂ6.Â9™A¤06DOb‰<°[U?¡[„…Z¹DU X¿» ‹wÌYÚSuØÁd”0ý! ¢î<§ ¶°Ê`˜œ ¦ËóJãPQg“;û/|yNû(X°'5¯ˆ¸LügƒUGòm"ÔÜÆ&bçXY—'ØÙSéã!‹øXìSð`é¯]{Þ°Ñ O«€uÈm˜‹0mZj¥ü}²û8Ä;æÜ£¨¢øF}1þ“ræO½Ôó›q”8]È‹-è–Bß¿;6Dp ˜ö²4"ý.)ÙÅô}2®wEÍnÄÕ`^œÃÉ5E w oÊâXñ?Ó|Ç_Kß[DG~Ë}}l½`­`ícô$BG>xågù?ìv'Z†Q+mÊ•ÿJw¯_¾(Vÿÿ(:JcnÏÙjs›YþQ%j·¡ìz8UÍìU#Cöt—'V¸õ])üØñ<Ÿ9©ÌïˆÞÝhš©ÉE?'Ôü²E,ÿ냚@É~N³ð–}¯AéÂCéiÁ ò{ðzkÉšÖmÏ`©¡âÁÏàØà©Œ€ˆ„)%’)­½j7gBf¦gàj/‚¾>jS.€:Ø^65ü:€¸ÆŠn‡ FñÍ2‹”u¸²oQ¥9E¹gâŠw£þQ–§T€À·+c?Fî˜;Ó¸L|ñü5Y›¹¹œ,÷Ì…¶þqj“¥\#¿·êîþì˜ÑX¼ˆe);)®¥K!ºDà)Ø{´±"@ô›¢ÛÖZþ7-(( Ý~Du†5:eÌÔöªÚ)uS¿·‚›Ÿ] r*"è;Z’¹Œ%€CK޽Bä-„lÕ%”×e #†Ä‰Ð‹š¨,훃“‹Ê_V>·9pÂöÅmª&‚u¬>‹ƒaäUB?*ÉJB¤lpOŠgsWD$ØÖæ-òéÞh@HïÙîê™Øµ¿¸„ÃߘL·µ«A[«Çö5ÂçîšÎ€zT(¥ªgüL°­”5ÃPQl ]`sÌk[Œ AŽ~iZm¨ìѳÿwbèd=ÖòRƒQæ ñ…6àе['r È? ƒª_EÈ-À[™Þ†œÇÛ1G‚4[badx×ʲ^Ѹ.S(‹oÁ쨟”‘(õyE?öÒE_¦>7Œ‰ ¢.õ/HaAáõö-(ªšÚUÎaMrnvòkéJR•ºz›%E1O7º(Q}µØø–ʼnÇXˋԽÈW ÝÚ6õ'j{`¼~OØ,扔‚Î~ÛŽm|‘·áÇ¡ggä®üM{ ÿA Sþf5#ÅSß.Awyj¤g Êöɾ½IÆ Ýöòf0÷1[@¯s6ƒõÁ€^ºéDö%‰˜–k’Åñµ}µ[+vƒDìˆX¶§Ë÷•&¬}šé¨ÊÆééðKe•'”Ðr¢XEÓ± 4mñ~OTtŽípŽ ð¼G›bï# åãWeQvÅ5 óšÝñ(ºÉ­‚P¢ûgƒ9O8שp$QÎeë°<—|V†Ðjz(ÕÄtS¾)òt O=€‚XÈjlqËoìšÚ-LSüJäq\xGìûºµÑͧ«€mL~ú¨Hl¶ÄŠJÃ+’¾Ï×z˜¨£f›:³æúÎl˜„Ó‚£—““ n¹Ÿ}?ìÚ8¶°Ü&0ÙÜ‘d†ßj,+£ ,þ–9Ù‚@IÔ-¾ðŠm©»YNŒN™qµcAÀ‚ìJ|úI'.'®+L‚ÈËEæÜDáµr?ÚÏï--ÿძyŸ’‹ ï©]ÏHY†dѯV„YÌ™,Ö:ÒÍ3Ç £ÏTµ›Óí6²ÝÛ›_ ÈfbFIçвæ`Rdˆm?»ölnbæ4›ü)üM&þƒ‹²1…ˆÚÆèçÈ#Ì8Ý1%vWåïvÕÅ_¸Ôö×·àJ÷ƒÝs1¥Z3D‹FWR¨zŒ›Áª¤ƒÒQT½Õ%‡»W¦*Ö{_ÄOüLâMÂŒ3_Òà ¦ÿÅÔí(©­‚ÜZÿ Mð 1ßá ‚¥º­ŠØ <ĉ)>þ$mü¸hºyp·<ÁiOÀ6€´Ÿž¢ ±a šéÄëï*z ¹× ¢ÈÉ­ïÚâwiÐK˜NÒëòدÛ}¿LvŠaÌ{ÄO³ÊÒ´q]lÎðèê.´ñášBÿøAÅÏhÍ,¯Ÿ¥ÇÇMê´4ÏŠh½ä°¨v~Á8ÆV´¿`k-føOUaélvàÇNU=Á 0Á»«ÅµúiæU`oò“UÈËõyaTCqîr6#ÆDüMºDZ--Êöe·e30ósÄŒ–QpÁŽª+Oš?Á’Zœµ[~VdÉLÃy‰º Nì43âÞëïÔå¥|ÑÅCd×"·ô–!½`“”Ð^úVuG]Ï •YŲGñW¯m³’ª%‹eÓÝLæÇó\“y &mV>I›’Nb®¬v .C| O)Ž‚e+,°IMõ-zv&yÈ݃µÔ¡‘ÂÆÒ%,l7ÀEFuq,IÉ‘¿úG•(t6r´¿—ujH›¢%M÷»ÉâØú7KT?’X¸3wüûøjÜ-ësÂRw(>œd™uQüJDž0|\j¬“MqÀlÜKÂcwò¤6#Ö®ÕkM’·ö¾NÇUÜnõ]TBi,i*F?*Ök–»ÿ¡lÞÊñ²ßu´²±^Â¥À|b,¡¨u[á\\3…ŠT^Nû¥{(PËæ³ªú8ã/Kt•žážô²’·œ öÁø%o:‘òÙ?³ÜKÀéølý…Ã7p+±Õ<éeÚFÓû]iõºk9Q¬['8è”®ïÝpAwõ'Ü Ë7˜·9ÂdH3;&A#¾¤—é|“&\/Lx"$º´ëã`:C[T—h&}ѳ̣pXü.j›\ð° Z!Ž¾ÞØ_Í'‡¡€ë†êFh†ë Ôe¿!Èã¶xGÃßÌ[ÿ£0šêÅÁÇ,Ïš€ë«/¿@·²S“w®•µÌ»4P뚉D–=WÈØõb'L“ƒÜ×´·sÖîcmCya «ö¸¦ „¢YÏgµ`®I¦ÑÊ.¤ëÉtr•l R¼ôZ‘©CÏn ŒHñ<©×‡¬$B±Ù' 0çÖvÈ:|ËYl¥#Û’!чkhÒß!ŪñÂá;±|í­ÂÎ|*šÆã®´¥ãäÝbºv…ýüJC0jÍ_Y ãÃBÈ2 |צÊ|´ô{wa<Ôdµr²:²°™:eÃÞ4aqúåvì×Ü«nÅ’d3ëØF(îžÜ4OA„.˜áŸuОRQò0Jì°‹´L2q,4®#‡É*‹(ÑAíˆ±ï ¨SÖIχ%ŽŠŸYLfU½³ öžÕ®ÀµªÁ”cÓ|Ü{°EâKÏ~}:…¼¼ºZÅJ óge%Ù_ÝÌÔU61ÙóÆ-‘''c ž'³c<¦‘`Ø*á1i_|›²]†îˆjÚH`h…¡ðð7uE|ü.† u´!Ë7:oÏÍŒw0pá½K‹ßÈž(Fª¹E ­Û¤ÙðgvpÎm[IÉÒòh¨"þ‘C=£ìY|•اÚ÷䦂_øm—Nÿÿå/罸ÖO!5¸XžaAišI¤yÔÝßï¼m`qC6$©¥uôoFЧsGGQ©·€X“M9'™'Ã;…ž†™.ÐkoGí,ÿÓ½ |j…¡›@*s¨éžsÅ I†‹ÑcÈÕNª· D wÈzL½—_f*€`¹ØæÑœ¼gs!Ël)EMŸ«ISÿvïf²ü|©Á`¥_hÕ~“¼'.9»QHÕÏþ³ûÒo¡éPx¼{_EÇ#8ë9ó:³{,ÿ½³ÄåíÜîÞÕ“-hƒ|x ñƲŒV8ÙØÀ½ÄC‡ ŠssB³…§gxs ‡pÃ( ´ZwØÇÉO&RNF„4!ëy>>ݪ¶¹*­Žw¥ôË]3–ýjíùp(uS&>ÇM­­Áàïû‘ó !ä&Ó—‚ ¾…ôQëóÁ—ß§I‡ ¯‚£”PÚ.üÎÂpóÏzþWO±!4έd*‡sKJ?¡§Í¶)š¦ã%Þ«Ó‡s˜ ‹0î‡ËÇ"¿á@“°ŒZx"ó–¾BeÛl§¾‹"&>SÜÆW„&TñºSO‡Åj0v›Êw,PV%tÝÀ.k”Û†šÀ³êÉ1 TGMÐÑd^š'Ä*Öè#˺Ž7g·¢$6’ëDc¦Í«åÕ=†Ÿ $ˆêõµ~<Üæ¾ú™´üJ4‡‡³c¶DH¤ZŸü‚AN; ³ 63 tûŸ¼<4Tæ·-_[ÀÚ—üƱã()°„Å/â&Vkµ™¨á¼ÞòBŸMi·¼Ðh~uß9ßÞèšÓÔ‡ Üù‡Ðíà{cj7º•Ã8í»—À'ý×ÿèíóÀËËíšíuÃøltîçÉêÄS,ô)içªÆ³ŠQ3Sü#kl1Jµ”‹¿ÊéaÑ]³ð/ªZ&ù"RÆÕƒ*ìž¼I‰–ÃußÉœdS¸÷#:BŠEKJpøCî5Þ¨…r•OÖb¡ŽÄaO4tÌ ƒTiœþDG sÜxü-üö”Óš¤RLK8|ÓæXˆv¬h""+Ù¬Üa-–Ñ2E§ÒU¤º4… ™û¨ã¨ÖW'fIÐ…5"Fmõ°~ÇTÊAIzjü”¼ô¯1‹œ­ÖßF£¤18ib ãf„euöâÉÌäjJ£éÙ½C|eGÓ0Ú€µoÚ‹CÞdßhþbÛþtÄïì`©ÂcÑuønA››Ž$GøÉ ãšCý ¾»76yí°+\ƒóu„‚WT Vá‡Çgë¢S—LÏßë¢Y¾ªœÁYä¹Ù»¶[£¥^Îë° -¦’Øuô¶]X8‹µÚöü6m«Ý³%ÚËÚ4 .Ðwpêë+MÊ!ý„Ùøi» M}\×­4…áîi ôŸÍ[54¸Šî,Zª¡úçI*ë¯7ù§–W% Ìn¦àĆ=“:Å®ªfôÈ€ýÞVÔ™¦ƒYlìˆHÓ—çžêË×½ Ú?}0Úò8ã;¾cW»vôa„wÙì»È¡[¤„»2fàš’¯èʾ§ Å6ù 髚Y–„=ßž¼)_Øêý³‰¸„'€°º9|ì¾Ú5ò¤9/o¼B;=ÿ0ùAüÄI.(ŠÕéÿíÛ;vþå4ÒüMµœ„ø û[Ê<’n»i‡{6æ5‹øÁÉÛ z¤8¿Aqö„”çÊ ßwžŸÀ 3œ}âûûë-Ï][I;º–Ç~‰vƒÀÚ ”¿ç‚ ícËUÿo&‹FÕQç$ÍoUº°“àÿ˜®„Š"}~q­K›·@M˜ÍøO4øä"tw¤&ÄdBXP‚ùÙN›9yy­,míÀo‹ÚÝúþX~„e¾Ð¥kÉyÛ3†s“ØAåK€‹ý^ Ê%‰ù§ŽâwÑ,…ì¹ ›áþDg.áâÞƒAÿøèñ¿Á àF »¹²BÙ€F4G'#¿mòèäÉüÙ§¡¹l7}s†*È_"UN//Vcòƒƒç+õ@‰fy·ßƒ…gæ”ÌrÕfq€ÐEx¢ò‹EÉú]òK+¢sËL¾¤£V˜\•–bsì½7{>ðW\MÛÕgTÚ+ïK+¹í=P°‰ŒàÌ­ý>dLVñEH.¾í%|š#(ÞRiV©®xPià±[þV:pŠqšÐÑ[¶î8Iãšv­Š&GAMi·EÄÑ‹&"ñsÇ%Rt¦ä°ãC ¾DÊä<Ĺ?»VÄ¥\ÊyÏ!ÛÄê9ÄþÅ=wÍ”¤ü`e1 Mÿ°5JÒdãFº­ÍljîüÙǨh°ÌŽ8´ UÍ‹îÓ w _?$ÿÁùô˜ð7Õ‡ž?Î!#QÞNß²?Úžú1æÊy²øÍ¿Ð¹‰-¿ª3——-Æ¿BH$¸QÜÈ nwDĬ7pÝ£‰ {L‹?“”{¨÷üÖ¾s~eåžà}”…úxfIíÈÄõ¼o Àâ±Àʼ:áÝ‚ãP•´p¢²kFÍÃ*Ùù­•Å䣼#t~(ðàíðwͬHtØØØžxὉ,åÕáOþA°ÿ¡ÍiöÂ(þo;<Ý„m%g'ˆ˜ò†Ì°Ÿ<î³ úîü|¶ñ(¾›˜¼òÅ…|þB ® Ú¦–·\ƒ:AÁ”m,›œ“|Q<õÆ7—HËhâÔó0ŠÒ¡¢äªrª=Ï×9<<ðÛ0: x¾æBž§6pÓ´düød ÞÊf c‹Š”•/+;4 5”(z†'¿+ài‚Òa" 5'‡ S)ØREî);ôq¸cÚ†› ¤éœmeubŒ4Š`G`Ív-Lï293í8÷ÍÐ[’ i3ù•©u cÔæHtÒ7Ž®òóF’»»‹ ƒ=Þ2Ðe¿Èî_Ý£}ùEœÑ*U>¹ÙC°Åñ{#ýñ¨2yºr0“­#;pàJ<'òK¡MÛUo_agÆ ¥×­(cÜ…§˜)3;˜@ó)BÏ’.‘ +‰ÄÖ Ü§VæöqW)ì++ÒKgÞ _ÿhºöŠ8”„^Ûb‡RéÛGð,ÆHÑ (VŠ"Gý™$ šÊßã؈0¹Úq¼•žã[ZÄd¢p:âulÍü0Ξó^¬(‡¼ùKîüW-ò3]Ùʲ}HïCŸ12•ž_äœ"J¢Ös¾ë×÷æ r^ã È~:¦s\K’˜¶1¯2 S·—`ßÙO1ŸoN&›´ë’[<«üä %X%UãP¡ zƒC©‘G‡¿öÆ ô™ÌÎy…Ìç͸·H¯SbÈÜÕÍ•„Í›ÎARšO°rîÿý™_½9Á¨tPKd Õ­-v½ëÏëÎè~ØéÉY%=EAâs¾w/nöçG(”ò&á•HˆgäBçÆÓðÞ¬Wk-–Ãÿ½±Áû*&ùRöÏŠf!çКü5l¥!óÈÔ¹°@rùœZ˜ ¶ý®@ªY{Ùížöª6ä`±aÅAqÙéO¸´£*Ï.Æj°´³ÅYÂE!Büvz¥cEGdàU×Ó îٔСv‰S(£q×ZŒ@v81IM|>ž’QÈä//3†{C¢zÇ)ô_/莟S! â|ô!²g*öl"Nþ‡(í¤ô¤1«×JY ŒŸÝ€éÐX˜ÑÎiHëL‚ncbKwá¶³tîø^À‡¾?ز¾ì…ñX Mu½¸A2vÉϨ°†¼¥( a!Éì‰$L7(z‚Œ¥¥Mü¯’œ¸ùÆÓ½+>)±G„©…’|mܱ!-C@=>;ό҂ô؈•ðld´=ÑÜnŒv+šÚŒºÜófjË5´}Ë Jø6ÁFÛžNd‡AÅ™tÚVÜz3¨nÕ@“)~ò´¬uæñÀýÍ6Åž1#÷V†`•ñ6­6¯óî’Œê˜Û²Az6æˆ©Â¹ßæŽ %ãÓøFMêSôÿlwã3ü’\’ \_úDÙ©×ww¾çê!Æla'fµŽî•IKh—б×xfÆŠ:¢Ì5 ¿c4 'Ë~Àmr›ùgý‡ós¤0ªâvds‚¼OggS€ü ¨ä©PÄGêÿÿÿ§÷öÿÿÿÿÿþÿÿþÿþÿ”ñè÷óðÿÿ›ûÿÿüÿýÿ‹ëóòíùóæòòóüÿ ÿÿûúöüü5lùš<™gIÓÀ…B‰õ{ê~ÈYç"(©i{ºàÁ†T÷ÖŒ Lú`Øåì +\iŸ‚¾¯æð¢]Ì—ôúžm·_9±F¯`_o oQʸúh€u@‚›Ññ³6à˜ž±¥(=;pÌŒ*?ɽì/ðæ;Kù »ãV`r øððj÷Ö†#æWbRx¦ˆÿM§­ük÷åáfSÉÒ8 Óé_㻕p8V€rÝ(¥Ã]SäÆîÛýð†½(ô°D§éi Vè€ð¤ÞUkÝý# {-¬Õ!]X¼ BPÌ.V“ü6°–*ЬÞm¡w¢_/X¥Çw=&(¢¿ÍýoØP ÝyÒË^y9xr7éX$`("¯{t<•–KýM'‰·gãÈ€=‚W@šøqqÈø‚AÈñK˜W)ŠxÀ Ðt·•Óô¾„x¹ô{’NOäaXr¶4cË0ÚÛ.A¡ô…¤Y ªâ!þÃL-À­s#=xŽ756 àH«ñ‘}g~HQ?3u(Ú„TÓ­íS÷$¦€>[‰QÃF4ˆX¦ÆºØ¡@ÃJØ ÄïÍSFþú°Ç‰ªˆôtMBéJÓ5úUÈ[Hm"~Äd„yü`®ü5.‚lcio*nî¼ Qþm¹G$Ùç‚u¶¬Þjtç)?Â7êÚ]cUr…tˆ€\óú`K5rn•6ZÈ·/ðý§GÛÛOãë­íJØÛèdíMñ”ñ³#ïÍ®¢R\µæáO‚EûÈb ltžìª‚27ú÷ [F N–Ïÿ§ŽêdÆ@Wlá;Untf@žøêÙú~*Í’ê‘å¹ÀÕ8;äJú—2Ù…LÞïzx!×=Õj.¥è\½3v–žÿ2H^‚ö}/©Èu³Þ×NVžtÍ)«´æ,À‚ÙÐY_Ù€x¬éÕ%ô¨t ¤‚ü}^;ò¶²¤ô€åÐKºñôÒ EJ(2>ÈÅ9Ž‹c»Ì DVf1À¤‹˜îÓ·~’ÌiT¼Ì( hsl³ˆ{vßË?Ð:ÁQ^§Š¯Gám•#òàó{ôfȹþŒðWc}È4Ó66,a.ž<²¬W-ˆŒÝë N!„Ÿ¸û^pÕíP›¨þ7vŠR†'/‰88nôû騼[–<üÙßRmnrÜó¼.Cª©È¤r^\üû2î5þGþwºò„¿ÔNƒÏ>å2Ývuá8tY€º,+ùû‹°—ÎÞ)]¤¾€ÚµrÓšI•ؽïªÅ'Ö\ŠÄ÷)jæs®Iöô’}¿ÏÐ)müÏüöÕœb˜^T$ˈ[Táê4D%+÷'°7[~š¬Ýô»ª¦[†Í'J‚¼­í/?²mc:€hžû;59Ëý&¡´èÉK´„ÿÊh¥zrGWÐýÒ¾UF`¾ñɇ׽ø<—ëu0Û0“ÍŠ½†>û^Ç–QC®lžTïº2¾|âµëÿ1¯î¬Nëëd­Ÿ§sÇI´üüM94ç6­-ÄYkÎôÿ|IêU«¼è²c˜ò£žZã5Z‹)[ÜY°9ë âϺ×[^ ÞȮ4!²pJ>¼ø”>sX]ÔŒl>ƒ¦{g˜|y»…ë[$=pþ¥®/õ5‚Óêéó•zÎÎÈK‘­Zÿ'´Ñšù­S'äÕjÚ`ƒ9—É–ìFÇ'7µ’öQÈwž»U&ïìAyãè»ÏúнìkïëLuCŒNâJšéªtÖË¥ŒÃrfÐR¡,âg—•ÿ\@¿ð>À(¨­ÓIˤÇ5¶Áë¥>ÚZˆŒãtàÂãü5*9Д¯‚R»$0®ÿ#t¿©y©@ÃÁÖ5ÑnoØÒÊI¨#‘åG£T¥BîK&Úýáð{£—:'¯e`ñJE† ‡–‡lj¸¯’ÝêWÔ!…˜õŠÊ†æg¸è’ÕÖx;{šgíçìŠ?¦ÄCžõ¿Ö ‡¸ñeÊ_þ~ÚÙÙG§–c¨sù‡nY"X†ûx×]’®ƒ÷{à74Q5¢|¥hÜV²Ù™Ô«_Jš›ÉÌ꜖ ƒˆ—/pzêpÁ’ÝEA ož-4›IC^/Ô½QµJBÙ„ð¦]”Ç&þ¼…>!3s¿ãó‘XYoæŠvüïa@á–ÅÓL¥bMgÆN£Þ‡£»‰·’Ò*óµƒùÝBäFpNpk]ñ7DÍlrÞÄ×g¤ß=Š^Ÿ‹$ kðRî wfŽk\ždwƒQã ½\†(–Ü‚-ñN³ùìùØSp%v|,Sð*3RbkSØ*›¡š¸PÌv­@BuÒï=™_ Nîä°3G%0Ï®ùóÈBÖCåÈþÄñýYÉJ‰dKMfsŠ»4é¦ÝN°×é‚$»/ybýEŽ|þ*<ÿé¼Hô ¬«¢wà/ÀkߊànÅ{LS)=Þ<‡2±ˆlü»\iߨ ¤ŠJì1FÛü6j²0I{Å®½H@O§ã…8`šúËÖÛ’(`>ŽÌc~%J}T‡Õ¸ø>ѽWב+×=öÔ=@ÔJ_möXm€±MQhÆZŠX¡êbbüÏÒ$Jµ‹.îï†[Ä¥ÙðžÆ‚¬/z¥ÚG–-¬¢Ò¯Ý!û™«`]e$¦×½I@#f‡u'%fŠ™²MÂb±‘Xâÿ)vÜ«©ÆdÿÕc[s[ý?Ý?8‘ aŒÚñì¾0¾¡óÍÑp*uiºû|S™‚ 8X´ŽÊ ÎjoßÀ-ÿDÿ*¿X¥-ôßZ, f³f# ÞäÞÂOåôTçL¯6ô¤ü¯ãNãÛ±'mmjÓqÚ«[4Ëéži3— l'Y#ŸjoÆÖpsø”8šI—V/ÝU1V뢟š=¬_ÝìáŽÇgH ± Ïz G+Þ‚7S¸j Míiïæˆ=@¿nE#’Ullccöǘð¬…Wµw/*r ÂÓàV i¹lþŒÎŸˆQº+57>µÚMó h›¸b€šØ„ƒ¬gjžgÖ^´F”Î?Ë"| ë¸[Ú^¾FMnJ.Ndü;Á!Û˜J˜Z_V ¬œÓùË=Ò ªm1ñº9ý¡¢Jø}Œ  ykvîÜC´ùèòDÑ|æ -ô´ËhæºCg^†áÇJ|üM(:¦È"ÝwQÜ!ë7q3!8 õ"ÂYëz‘ø®FœW±¯åî¢ÒÞxO< +5q™–5´Ô3€º@‘•³‹ËúòA¢N¨fèI18qûÿuMf7?7ÖJ{硆aضzh&~ÜûÄÞo¬EãL¤dæE&Üà£GV₊]Š 3!v5èÓFŸ§Kƒ´ÝõOF‹ë3‹˜x†×‡Jï¹—ª-?Ö€­úåeBÑ‚ ÆhH(qWo{€™â‰¸5>’rRN¡ªæÆ@TSÿÓ5²;›ü6Viþ£¯@å0ާÞOµQÈŽI= 6¯<ëæ9 ¬Ù[¼&ðEкcXËR §¢mGPÀ‘mÎÞE7L£¿\›RŸZKߎ ±FÁÞë¶Â 5à×"±Ü-˜¶c”½ä9…µÃö«È n´ÝʆbÝgXyIcDŒB¾L6ÅxƱ6l7—­çƒÕpºòÆV§và2À4#z¬u(Ò"Üà–/ÉÄŽnŸäö‘ }J)›XÃTóY7Œ$?›…Šˆ›}ÄÄÒkÛBβû©B›êHb™¯ˆ+J:™˜m§,\CèSwÄ­\×üL®N !ß(8ü‚8ë€À2WsmgW E/±p=ÇÔd ´â'áQÝÁú¼E D$Fkõkg«³Ãõ‘'Õÿ*¨¶¹gM]÷‰†+]•Px®€}ˆó˜ŸwiÓ¬ ¿•ôÀ.7):¦<ÚÿŽxÖã½]ßyE¼BMßȺ͌$a³.ÚKÝ×`µ–CÄW–g)žŒ\š‘W)wgë =ã’¬d(p—F›ùlO¨íºFν!§»5”çpK;OÎú­˜na%ð|sÓˆ¾º†‹¯}­ˆgÀwG‘žÂé‹8‡=rˆÈZùgqäD fºü™húï ‰Ó°‘ã©.íÇò™;ã[6Í2³ ¾ïÏg^èè}"€ ¹¾ÿzˆ “–V qV€Óø›ƒ°F(ˆ¼t«w2ƒuÿ³Ø£ ¢òè†ä"P·˜;ެ!ÈCU›g•Ö †.Hú4;Z•R-¶c먜W‘ÍrýÆ&ýnË @†íR65fó'-]{ì±+d3§…YI̱êr¸¾Tl¸÷ “°«îïÉÖBñS3ÜÚ)hûBÄ]jt±xâÊ¿œw¯à!Ð^WuÅ2’¬Fzù'Èk|òïd:¦Âû6©=¶ø¾‹(bg®…ò摳’$™["´žLñ_ü™Û¢&k­HæJª-t§S¹«®MÞº“?¦ShP„d±‘î¥2ç8^W©áµ)-"Mz¡n†8œB_YÊ@lŒ5RànˆhЖkªA]…ÆRµÅš¦qfꮬÖ†ã¼é1Ú.åW'àîÓP¨ÿ»€þcL»rÆû™NºIpqZhȘÓHãü 8•8-wå)u,ql»¹*ø"`‚U‚ÎEµ‹U¼qBÏmJÔ ®N2´ö(2¼ ‹ÆUXA0’@’;Z‡e@ˆŽ¥/hjšxb¹ÖdøïGù~¤¯ÒiyÉqfD´Êcš ‹–…‰1PI“–ÊbÅÕÀV ^ü™àÀP¢`¤á¦úÑÒ"—€ÀñöìÈ5tÆM5¸;Ê#6f¶p°j̧J8sWò`7®ÝL%‚É‹U®Ÿ ë/‰ý¶×ÇUÃŽy^ÓÍa2á%1®û©óÌ]áÌ¿s…¨Mž fÔ“ñw­{ÃO^Ï‹3KG³Ò`èo4P[©˜oì úý»Ý©òÛEc5 )bBàe`Ró=õ&apRFT½®ë§þâÅôÖí!°ŸIVlDSùO""qå« 5^ßøl?Oyv€:(6ã»M bL-È›°wB;ÖFÚ6À¡Ò5È< c^ü™Âüã,l½D—~>tÌ$cí”øMwÞ.™šl€Öÿ`:7jyÔ—\>U…X!a¹À)‘¢|öùOMY‚wÄVüMîë$Úåñµpló{¥TÊã#ùìm¯r΃È Š“×ñ¹~+˜NŒüQÔ|Ù$Gïå©Y®G*U)yºå6ÁÞŠÆ }s÷|tÊwÝџĨ츪ãá¶uXÿ_Y’|¿˜eÌ3؈´{ˆÌ–âó[°¤"^º`#Ûƒ 9ÍÇÝT²" >¥B0”L„IÁˆ4Ú£€Ì[äõ$¦`º}”?GEOk­o fB“Hg”‘·ça#^ü5.[ì àp…ÜŒ{¿Ü„Æ`F(‹§¥æü™€Í¦dùšÁý³öb_ê7š?E®ÛùÏ»þ|7/:ýbÑ,W˜;†•Ñ!BNeÕªŒð{…¢–ã§9Ð!‘›Ä.l“чçÍöìæ ’ëK¹·ÐgŽL3㪿Äú½&9¥Sœàï#R¬†, Å«(D+1¯9aߊ|w{G·ìqF aP‰×ó‡£õGl` ¦/àr„Xã«‚VÍúpYÅYb‘â=¦ÑìFbÔ¦Û°z2@Ò®¼ª’?Úæxž,à0Ía$í÷IéH`Í­)Ù¡ÛŒô {ÁU¢'Å¥ü|®« ºªú‡'•jÏÅa•T™ªu(£ïbfsj ¾+VÝÑYÕ.%ñX3&ƺÈ›òkîÒNØ.´‡ùÿB´öyÝG®N\PÙ‰Ù8)Õãþ2§2_¹À_' d]‘äéc'M| S){Ñå m&‰Ï´à'i¼tìw²Ã?;ŒvÚ-<îãó“’ôgûu*‰ ½_’=Q\1úŽˆYúy‘U éÛMJ´²Ï ªäŽl=$Džƒ˜'¹—¨àÕ<²^e •޽ç#Àö€Æ¤äN ök e<Þù/âˆ:9pýøƒ`¢°àçÉcÒ ¬6¿%Óê¼J £F"(Hb:0…cà8€Ú?Mb6Uº™Y´ºìf–:ŒRL$¶”`M57Rí¹ê7莻ššÞž!˜fög†šønϳ€ÊC€'Y¦!Øã?€FD. +&·ô/¤Ûm„âÁDCÇÊæ ºŸþõ­ ‡ ÕÊ£ôeÐ<ƒ?sÃÔ»\’õlˆ‹6á…xU sü4ûx¬†½Y„ºNpaŸªo—ÄÙH½Û@¸mÙU—ç×Ù @U±>HŠO³!-×F% Yg+I˜säâÒfäظöÜa$‰Ôg²Ê´_/Ð,p¼&¿¿ºb Ùå d‡õMéΚ̂…mÌøbc™º”ÿæãpÇŸl‹Êí!ƒÇFdžƒÓLÏ’(½¢w? ¯h Ø‚ ¬î¢Ö×”ÿnHxµtE@@J:…J‹p÷ШøDš‡EM#´¼T¸Àz52 xIk׿OU´zú¬ÿ ðê*eæ…y›¬ì!jý*tÄü.ÕE/Æ2T€×Î`èæ00Š%TZw™£_®ýx­uˆAãkR†ÚHŸ9óÅì‚6¨OÃ{ëX‡à,’ñuì÷!5>A¡xV¯–“#1Šç@B*43 ÷ó¬EMv´¥Ÿß³Žâiñ›``1*©a˜íñÇ^¯MÊh¶´~¥—¦‰S"EÛ–TæêÛs”’Ãÿƒ‡®‘:å⠜ճºãÃ¥ß:A¥®ÉÅlʈžlÔ;^ûǸü6Uö›ÏœbÜð©„»±n‡hüL:(ŠW_DÞtA›ór$l×i=¾»ú2 ];Øô[§º³uÄWÞD£L."´HJV܇¶ ‰­o…ZÞMð>IhÜŽû1ŠÜ(¸dà„ù2íÍ"=Ì— îº2ÒF©¯¼´‡BÞ°pñt¢]†Œç”ŽÇ´X†°Ïø˜[Iýðî,eÚšzurFõQ UkKUØÒz$.V#_‘8åþŒßäc‹š7ÈÔ‰ÕìåŸUCûҸѲ^E`'NøÄ™#nª¯jV(¨2–¹þ'@4ÂÎâC㌴Òí¸^±ˆ4×n¥žüÙt=ÀovPEë™H·¢È¨Cl†³Õx*œ®A§-,|™Ä™‹`@Î÷?”ê6 ‘Ztãýü½C’ñ·å)SC®÷è$/®ßפK×^ý÷p=Æ¿³¡„™d£Ž G'•&÷yªÉ‘תÉÄW xÅh?N›ý ph–^Àkåbfú|Ô|Asˆ`%³‡ïÇ(ð È‚‡Q^àèš‹úN¿e¤o„ž =Òaº\G›îâK¨u›«1»ž"`z¦vLjñ´'Š  ù¯]}_4Ûrû@:û >Š,ã*q§Ž#ÍnH®ÊCoü6R@@{ý£!#ÛÛàäwÅ‚ìN¼¤äIœÁ³*‘(DÏÖ]Ó ]¬ÖeŒëÎäèá;˜t$ÜÚ|÷åÜ›Ä!-Js¾iM•ÔÎúËÈÚ÷sü–kDªt·„¦šý‡q*7Ïä"ÝOËdå#Æ5#¾Ÿöf%ZMª… p§†ô“äWÞô–ŽQAµv9:ZÍn– $¹:—Õw˜›CbÑÀpxñéŽV]_°ú<Ý n"žâÉ Œ2úÆÛÕ±h0”8pü+ÿh’ÅœÇ2-Œz\1Õð‡Ð(¤¥N6"0NîmüLÕÝ]±½›² ãÇ<0Ñ) ³$ïãd˜˜øû‡™FGŒû ó ‹³É—^–587šk9fh-häM­ˆ1ùÿï„9d1<žómzçq¼~¸ÎLÞ[síJj^RbÎd¾ã1¬]ÚM± ÅpEoî”fD+œi‡ÄÓÒ áì£Ü!OÙÉgœ$ný~‹Ys‹™n•èkÉS6ðÃ@WÒ¤l–BÊ1ÿ/FJzöѼbÙv¿¥‡’Fò"ú>Õ϶!<Wt]YvX :ùÚ,•Mº¯yx #;þ€ß­šú ½ZN\8’¢[ãö2QdcTI2eÞŇ¾S[ëš ü|®û vµx,^NãÀr½ev@BJ&Q°ó€ë•§ñ`À¾{ãnýæ/…­ýšùïäªws x£ã ¢~7/Nô$ìÅ1zM}~%Ák-…3Î4A =Ž|ÃÞ§š(S!Ñì¸}ãÒ¥VZó©¿BËÆ“l"uH8×ÚÛ¼ iþöBfnîIünL7ÉXÉMáùhù²È¢yáYÚé?÷7«.ÖD>ë=ƒqÆ»QëÄbûßOäÙ¤¾^ÁçÚ5j¤ã,eMuÝd®_dQŸþ\UID\¹¶$;âØ›4 ¤ý0P ‡SnM[Z€N £.ÆNAl•ù÷ã'7nNÏ'Á#eØ­üÁy¸ƒ*hºOQ×ù˜0­ÉQêÚâÜ? º¦r*ÌòŸ.ô›"J¥Öýkôãf„t6vµ%Ùû¦zE5ßeM$õ|4C_ƒ",_ ëè••>„cáã!Œ(t”0ÉÄxÁ‘Xìù¬7T_~®ëÖKœD(ª`CqÓëßMÈÛm¦_m6$°í ¹¯Êrüî¿_J.~Fu²yez¿~–¤]tÿêc“íoæã[Ì8ñ»§„J#fŠŸSâ¾™pSê q=§K£Q–¢É|eà£C´(f§/Ÿ¼Þò¥Ý°„± œ8osiøßŠ ´ùͰëv¨^DG»œ%‚Î ‘Ÿ^öT‘4„$…!¬Ñ´/Eȶv‰4!#ãí¬V¥àOa4¼Od Y¥ƒ¦ÜêE»+µ‘˜´èm™<+ž¨”yR¥6õñwT>$ jYæ°æ”VCÚ×V|Â'šÖyr}Ý8Éíf‡Ô¾õc#6•¼¸ø%Ï"iü5.= ŒÞ UËðB+o€=ÒŒûðï­çqF8«©+Í zæŽUÍ‘½®08ÄyÈ©¸¡ü¸~ÒÝ.@Và@Kò*d˜oä϶ŠüŸìCÜÚ˜éÆ"¼ éTtÐ~Z²Ö÷wÉyåƒ:&ZØt±±R:<]+C2=Ž”j*÷O¢ñ6ëíÅtP&20¶ç8/[ˆýV¯/€Ògáe}U8Öøâ> {»ìe”‡ ºoJ™pŸQ%’K¨ãï ȧTQÓ¡ïd>[,L²Á*U”…ôm›\”"1ÅãÒ¯QBékt™%£ßжb~yYM¹.N^“J¶É…Cü±§±Bš<žå“È(¶]4Û‘åKTu±Ù5¬Ó|a×<K÷¨(Ø­EÿX]tØ”8Zìd~Õ0Õ.÷«"ٵº¾¡¢-XŠ l-ø¶€V[kLDb-§ãïuîé=kL.ë1ºßçyt´¤«y€Oëý,î!òÈëü!)j2“ejMdûÝ‘²3%SF)Tœ÷¨OA’ mÄÍêgªŸò¨%ˆr<§†edÆRˆ–¶œþ)Ì0›g‰up3"Ö!qëÂöücž2Jñ+E&Gõëï¡ y$9kŹ|;, 1wšã,¨¥°m‚?€þSÕ1ä±²“‚|ü5.SÅ`؉]ÙatæÅVvœ,ñ±£YºM…Ýr3 ðm;0Œ‚º]Ÿ¦Õ•â;ØXì¿—ã•Oô7F£Ÿ`®ì…ÿ4CŸ¢P¦6]–¬è_ƒÜš„³9Dét’_os²¹=ó4#o”lí|5 ’ŸX)T™•¿E#Þ’É“íˆõQßÉ]©øPä¥t#è“d° æ^å´²!5º aB7CívgA—õx9žÎÄmFeªÖhÿ¹ÌQý²Îüa,“ÓàhH°R|9#7}˹ƒÃ0  ½ò¸¸:ÜÿÙ¾á¡~•–ŽÎv‰òÑ Vá"Üivm<1Üg³-Ú]âƒpfRÜüß~mÉ¢Z®ujxú—óÔoXXQqb¢8ý¬}7kq (;‚U)@ÍÇ߀.ïƒÎÀ€B$üLª;¨¤.Rµ½â@B± ¸PËgcuqŸ=}KQEOá[·«m«»í;Ôûk@°Øù_ÇöH'xB­i*–4…©Aâ @ÔÛÐq’80¹]Fåb¾&Ì!ú®sÌ)y4ò·ôBÈ$ZÅ|þ êaÕ†Br«²Î èáPUL±+z2Ì©CóŠŠeý<ÛóiP ¥`Ï-õ¬J+ôÃ0t>õâÝõÿªO´tŸ£ôš¹ËýU/ûº„,ê̲É:Iûk£¿§Æÿ<12æý!‹!è¬Ì¥©šU®ˆI X¦ŽÇ4ާ@œ×£)‘† fQ’æFüLËZpSyCßžå¶æ.·Y‘¯“†¾{äÛ¶¦µB3*ã|'žÉˆ9Š{w§1ˆ¬®ÝáÙ§FH,‘^Á~%‚3Ä¿:®(qœànM;Ÿ!9‚¤›ô7g­ÏAÕ;,B¤Á âjlŽNkCéK+^ˆVÁäÓ¶.KcÇr2=<³ï‡V…äÞÇe°ÌJ÷æVí©ïM²sy¯Ý0Q;Ü&ޱxñÛN~ÛA #<»"’÷\=¹ÍýÀKeŠ úJ%|¹æžÒ˜EŠÊ®W¶~þ?ûøÇšŠuØ>{h=þÀ›v¬¯AÈGÑ<$ü53«¶mÛ|ùSõ™'Ééhiri‹›&Ý÷ʼo98²_X·)ŸÞ¯1âÆ[gTü¥sjv^cÄ Aµ‰e)Åf •01Š à|ø,B#ϰò=lYc[ÉØl_e:Œ†Ë¥» ï>‹Ú*Ñ>.‡edh·Ä!w íòsøÍ×IH/8è«óà$MWPIís.VT3t]ªÅ¿&3ÃZoÙ¡O+ÞSØØ‡ì =h¥bð‹™ëE†h Ù[_ §¡1Ú±Zden Ô(ö¤<ž nÀ·TJßPê¶Ü Ìo5 H± Ævöâ”ü8zåHvzpÄçü;RKý*IÉ…´Ä@þtçW´Ày« xÁ O‘éó *&¥È†–¸6K®ZÎ[ëÀ>‚Qo3Ç3Ø¢ÛQpâáÈ.݇–‡â^„éøˆÈ× ôÜÁã#.ߺ6ÐùØâvÕ='A¿L½ƒKê±xN¹æF‚‹ŽC½!Ú´Iü-ø,ã9ÈJ'&|kæû¤õpÙKž=Ê#y–W"FKgÙKn<ÅuZ1'åóåØiíÉ£×G¶ ¿kë¾zËPKÚ¦S6Ô»cÜ^"ÕíÁÞ8Íò†ªÏ˜ÍduOüÆ5êƒïå¥Þ Oª,)ãç).žÊRÎØ¯"'M?²²£“–žÏ‰cÍ€?˜IK:;vFµÎI ¼5…ñ;9ì¯aÇí¾FçÑO•ðíhåwþ¸ÝI⮥ŒÌlóÔ1o—©=êá^R( õµìÿ?© x«ñQòG÷˜‰K4ì`îîù.½.B‘–E&*Ú¬…¥2˜ˆï/y}£«Ô8Ô‰Åv€þª ȱnWn§¦œ´A?:ä/N+KyMy¬ÒwgÅùëÇÂXöy¥º`àÙ Uæ\ÆoÍé>•«ÎâV%n«X¾q¹*ž bD HÜÉwüL®^oÍ ÞÅö±Îzß;ÆK6&^á=‰Qì0Ÿr¢C¤_uÝՇµþÖѵâh :ŒØ ×ÔÅ 0xuË+JîšxX]ðåÏeo º'8ÓÈÖ"F1‹÷µîM’Ç"nÉ9l< Ó%ŽÔœx*kØ&ò|Itu¨¬žÔrðM˜Ô¾6UàèÈ´n DýX\WKG»ùV t·ëzÓv‚ !^ .˜LuuÍ ­&zþq;;†y«#¢“íIðl»°2k>6`¥|ùÇœ ÒŠ™F¡¿çvüݲ¦‰¶˜[ÆùNèj“Õ0ÅùxÞ¨x9Ò/Y2ç„l ·¸¼À~¾ÓùnÞ9-]ÌZy8®ÍnDŽ먜¸vP‡‚4‰q.ÄJP6s2=Û×QôÑçº*A#¼|Xß þ÷‚oüÛ¸ôOéLÞ¿áúZ9»Ò%”6¥£ [Œ$q™éÒµM{aßÞ¿EæX÷“0wÔ4‘ï¤Xßó¾ÙvoŽÜ…7A´àŒÖÊá•9§]ãÙ"rý8)¼‰RL‹ ,þ§uÈwæX¹n,*G;³È{&²¿ÈøAwiÕFi$‚øY‡a]cÉñó)¨AÝÇr8±ö^âHoÄng=´{è ±pÎ|ü²Â!Ý/EŒ-™lDÙ³ ŒX)ÌzÄ;:…ûyÙÉàñ¡g×eÉ Ú˜Ï‚@æâfíØœwI\²ÁïŠô)@SàÊìöÕm/éÖ¬:"£¾jÕM:Õ¡ruZšÅJoüÛ}èŽò¦Mj›‘âoò’FÝÛ£+òáK¿k”73ÂæÇôY©ÄC‡Ã`^½z.N5„˜UÛ÷aÇ,´z”™Ÿbœj˜pöè,}æ3P ÖM@žø–šÍp ÚŒŽ>OÍÛwù®ÌF{š=nGå}ú¿%R=j¨ÌÔê\­+ô…Ê Ûä,ÁfPI Ú'Åí5R:Rr•![¶õ¢ñ­{ÍÊRÜ%ÕA)Ô/¸qÜyº¤¥©ÄSŽ­[{RIµŸ[¨8õã •c|Õ‰lý'4)ž{(ÄùÀ½ð2à—!;}pšó•ý€o4²4–Ìßd0ÿE±þr.Ɇ~¹aÓ¬¥ ÔlG¡·v¦ÃŠ?Òoü}b0RÛË †–¢fê6óC:¦Láý&+äÂ}™Ljv\Ûž*ÑÜÀ½eçy[¢y ¯µ¼ÿã¤Ãw̯ªŽma2êîV¯?ÁòÖ"‘ûè{AÂpüUË5Ð\ñßòˆ–~MˤtŸÜ×áãÛéŽÕ3U‘Š•Y¥ùb½Z5ª’“@Ü€ÿ öJ£‚ÓNŶÞʽVKûYÛÍÏR¶r>çgÐõµ£*[Ù¯‚ä œx{ìFårGeƒR‰åŸ£¬ÀŠ8¦Ï8a:VâÚgwõÉ¢Ö›YÔͪßxÕ÷T‘n4+†£´À)4Ú™³ÉhŽHw¶*ÎúŸ›ÔàÈWiw*âánܶçO%T|-&z@Œý©öx”†¹ŒšÁƒx—~N}¥Áp®³ÏÙOtu’ØÔòÕ1]S˦óæ¹:!¦o§R‘MBÛ_z} Íß °Y„"0€³IX‰K¹×KJ’+ìòȾ¿í@}¢¦zð„˨–‰ e@Ô4ûæœ)Añ©žc䘲ŠüLÜ\ȹû›Wnt íkŒ•2èaÎ]d{Ù ÕlÃh~fk^õŸÇÓh·u3LIý$ƒÚöX{ôñ›C ³· À¶g€ë†Fdn[vD4B\ï* —–@£H%³Û¶–EuÍ7R¤ÇÑ·¿ì¬ìSyÜÍk-k^B)a%îqI½æg¾ECU8S¿a<¸?,âV RkéI½à(Iva°í–ܬ*ÆÏ²DNî=ó¶¯Â/ü§«ÉÑý"°¼ûvÑõ®âjï[f³œËèYèäiÞ€HÆ*Š¥o¹®ÇK¯fëªm°âvsxIËÑåáë'€UríüMxʵ¾P±—Ayzb'Ì—49mä&ãdâßu†v2oÇ[ Áu©¸ê¨ˆ}ôuk¥ FÆ榇YKêÜø«¹­8¯Z¬càÕ™J ûÙ‚]ÄÂ* azÜ*Ñ«æ;ÊAßáÙ¡µ.T˜ïº±ˆïè.+³~i³vÐ=¡,Ó¦WšíJÿBêköç “1øÒ0ÎŽ³Ú°¨™V`±§v̇ý¥KhfŒÏ3í@”!-Ì&“â&^Æè­7ýoS@M´p6ôâj­¹NG°j,U«>—2^XÓ-†tt¨Ñ§ ^Wè ·Á_cÇ7;ý—\üL®¾³tû«Æ¼±V¢g˜‚Ïó?¶ýKÕ BR+fÝÍA`g ÆeéA2“{²Y&–²µ¤«°¨a¶NØõÈ-và?›§øÊôÿú/-ú cJ«ëæþC4Ö¸Ù¦{:¬ÿŽ«™ÆGqç0œx’ÄÂ;r¶eâÄW¡ì@qE®òáÉBã¥ùŒ¼µß§. u.›u]Sø@ÆÏó΃z@­q ¶ÉÿhΆh§uU¸™&bKšÕ5‹½È£`ÿ˜NµÌFt†¦¸L'ÜˆŠ Ô” «ø¨ šfojcÿ:—’KwâŸY”ºw-eºküîÉí½A‡|]BÕŠ!)n d-å«B,Øv}n^M~ùBãzßV܆©Œd¶ÛI‰ˆLH…§ÿ€ñ^)'—ƒßQÓÛääDŸt„1šÄßÅÃÔ§_¡VØÜ>ß‚j˜UB@2÷`%z™Ž“{¾)>‹±ØÓM`Lu)¬€0X€á1%X‰ÕOþݰ¼C$¦Ûq98 Îà qUYÒø«àê¤)ºúa«ñ|Î!.ïÚ¨ömu’«„«E\Žï^Tyúì>Ú@2K• „˜r÷æ)âè„h~Àï-[/ذ U– ‡É"ôðãþò×Ã#T${çf©OggS¸ ¨äq[“üDÿÿÿ“ÿøûûÿÿÿªÿúûÿþúÿcôöóÿÿÿÿ¥ûýøÿýþÿ¸óññóþÿÿ«õññùòóòêèéèðüM2ŒÒ^G~Xó8äÜoq¬kKJ¼ì0`ó—–-ßj¥=È|Ûðê•û¤}¿õS|PƱh¨G’„y¹¾dùÑE~Z´Šmøå„‰Û5Ë‚‰Òç `ÂáÕ+ɶ‘¥±Ø ie.5kw««òîÖ+y‚žÎ­ÐݹÐ!û[?ê$©(mœi¸ât½g#ÁS ¶©7ÏJñô\&A·AèósQu3ûjSläU?Tiu]Á/ <2hµÎ8MšhaL6LE[ôx¬ò`åây2Wr¾AýÞZ¥–e‰Ð¨rs¯+ ¼’zÁ?IvüÀ!%~F\u ¥­¥ü¯i´Q0s÷uVãÌ|sˆyzK,%œã¶";g8Øýg ÿƒ3¸,¤6: r v[83dd’fòônù>£)ÀPvú;Ç0MMa à Ü$0“@oÔý:ˆ «¯;@~Q Bq‰?lg2‡GÍŒ;/Í×:7®CˬÀío÷ÅVTQ!B‘CßÆâŒ¯ªìûŸÈŽÀ 9d+ò:®–bâØ*ƒÐà¼l2ts%ɾ hX‚àO¶‘´I4•g|Q5PÖòºa{‹ìµ6QÙ‹Ûg«ñM$4Í1ÎÆ«km±a ¢ô1ÜÈÿfxô ‘Y*@·Sî\beŸN: fýÄå3,»ü}\5˜gTë©xIÕǃ{D*:>˜ŒPò } Ò¢ݯäâß㌱4­ÂÁúÜÒC…¯À“®ú•H\)œuegbFÞVƈžÈsySGöhvh[“¬<„´l„58®Ϙù„í/F| V'nÚ2UX·#wN»*’¢¿ o¶£·ºQaB Àî]Ü‹Ÿ°Ñ#ÅZœ½à3¼øÒ1r\ÞŒº=ÆØCúlSÛitx‚$Óm‘kéöf|øóÿ“о k'p~ÿÉüû_¸™é´5¤¿{;‚ˆm T"ƒÐ,¨ûÉwæc”I™£ÅÚ.Ð ×ãòb—C|µy©„‹`Ÿ±ü੃²Þ({]+·rçÇtJ’.51~¸îƤÒ` ܈9’åÚ@úkpœÄU¤¤+å±”~{.HÛ÷`*ªO²å VóVí¾ãØ£ìó;"ohPÆhùÚÇ3'tîµT›^¨a¾“¡|’CTõdtNçK6‹^íO€f3¾«õv D}‚üNtV›¡tä/.íK\ö¤Ž W—g´xîƒJâ=8§÷¬†ˆ?ŃŒkc­¶1‰ÛÔbôÌzNêW×Ò˜¹F1ºŠ{›²´ˆd!uÒLéb—¤éýEJj„:å÷œÝÐ[Mü,­:©ôž æýŠÝ!RQÀýý¢É ÆÆ<ûß³ôÓ?2#ÕÀœvÈ;š;ªiuz<$G,{xgE|FìâY?I©ä£€ )u&.lª¯è‚~Ë ä*\­@ÜáÞ³úWJ¼`_mÉCQNrƒ:ö2±UèqK•-oB[m×{¼wo¥™xýw#æadÄüM2“,ü„ò F„#«RB| &˜GØÌÿƒ\%ñ;ç£e³Šl ’Œh¸=h ñ‹Óíbˆ2•rï7|.ÍSchLC­?oÛòz'µßÝ,¶{ŠŸrÄå´&PûQJú Fÿ•6>ô«H:c –Œ§[h`M÷®y8'i¢píquÀRPÀ=B$žñÇLªþ“æ#»e:…(<@‘ô§U”úû6P,ÕŽ¦ÊÉõo)`5ðý$¾ÊgŠˆD2-zh¬þ_Å@û17‰¼:UŸÆ¥1F¹ºx”©íŸØ öfêí—·c)cO9éóX‘­0ÿƒ«1ü± [t®â³M1¿9],ò5Ťµ_;äsKWvØ]KÜÛã÷OU´Z™è”,OW€ ¯uñ•8mg*ð­ ”•<¢±ØQ{p‡ÆÀÕäÙêÀËnÿpL½Ã¢+«yj_O˜Èý >Ö¡‰¶æåÁé½éºvÍK#RéËj/Â3^8¤3„•09íDÌÞÑøOë{^ Á»!3ʪJõŸ‚™Ü/± “ì‰jDEFu.ñkµÓAk@åæ ßh_=gj4Ùì NñÛ†5oƲ:$Ed ©œ hç'qcàÖ¯¡ùµ;ÓÙõ8Ï!K4Pȴ»ü± x)§ òBpQØ)Ñtø<øƒ!þ¶$îØ|zÜÿô×€!&åÖ‚–PÍ}„µë-ü-q敌’x(PTëøãEŸtþoÒ~l1Ü•ÿ|öY«‚‰‘ÉYK/=ªž¥k‡/ÿg×Òr‚ôT-R«.ÝÔéÈâwpdý\~;8 ³Ï+ÖöpØ{cãb©F¥šÄr Ê-åøùX§» ôø0òb)­•*O«åyëï5³¦yzß×_U’è ”Y¶Ñ&õ*©3FXžö0£if ÍBU1ç#…‚}V2+Ž8£éÌroÃãÜ7ð‡rìYczßå"G}†¼ü± àü«…ºWuo4š5>ln½jôa$nêlܯîd3Í ÖH»3‘LÛÚ²a4fž2]2 ð° ™›Æú Ç ‰‘@—Ž ‘1þA†É×GØðÌ]ºIÌ&XKHóÓB=õ”Ù¡å5^ýýßñ%btÌGí~ݸKêKd‹>³Ã¨MÌðÈ]–à ¢ä×û°¥Ÿ=é,>1x„¬ÃãÕõzˆ Ô°öbàç+ÐMšqÛ_þžÕ ¡»†úœoQƒdƒ9¤o‡v]ˆºOÇ:¤~9m9tÖ€{ü|·l…E©ŠGدO†ß?õ—€#XÊ|EB/Úczjêæc0ÎuŠ ’ÞVæÒVØ­÷-ÅC¦…¿ÃrÊî _Ï£;Äቸ¬/øöÿž <;ì;¯ŽL™úayR¤-cù7Víåsð|íÐsªØæ<ìÂŽ‡’I½ïI>"kFæ 0ÊJÍ’ÈY„ÃzôZÎuš|h ]#‰×2JzÇíÄF¼ú7êsÉòG ožV¡ C¥LÔ?!(H!ø ¤ð_J‘6cÔ„¬ù>{q=I ,‘h-acå1›8»úö±éÈ.©ôqôBBéOÝÈyü$.Ú‹®[[F”^Ø^ ¥á6sуϡëîËäô†ÖæÃ²ŒÉ”ØYë$ "mo«(LP*‹ü˜rŒÜÍì³LvÖ[¥¼ùÕ™]–vYz[ºp=qÕ ¿Q÷·NÚ±Áž¾“ܲëwÃpßÿGk‡ÓÑüL°U¯!Ýo%$¯wJ„¦ìiÄfc¶ðl³#Ó€i|s×d£çûÓqiÀM 9U:¨ñ‹ZœìÊP‡·ƒ¶Œ$ÑwIÍgœâ˜ZžZÈ™]¨™hûvûB`ä¤%9!àžÔJÿ§ìpMw ‘YM |.L‚€ÎqnßÁ·µvò"W\‡ÈfÓ~jp’³öI¸…\£B)“å1©91©„Ÿ˜ëêZto N€9Ö'J‘Ìh±ÌoyW—S‡5ydãúü|·p£Ã®>¸þÿ­³ùC¨Oä W…¹Î!¼5±C}D§gFM…«_m?ÃgâÇJ©Ö2<*—ZóÌèV™]ršÕ–ð²òš¿'}iÝßø7ÿRËÇ©e½=÷ÖÅ@) )š¯s™7ÞÞ‘”Å«<²•IÐ%q‰zD?/58MH®â@N¯Á‡³šábøµê¦Ûî™_†ã0¬o5¢ˆïC´‹~;/.\›%Дß'a™È~2Tã„}úh'šKúC‚`X…Dó,Š1û$*URËñÀÕßä½¼…nã‹æphú¦ª`zƒ"5X$Ǽ⯃à:Q¢EÔAÓex/ûi\:mY]äò•¡M:C9ßð’bê{71KŒ7l«±Y\ZæCÌí™&BIMâg»í,b#‡Hö»ÌõègXºÐ°w:†^tLÚv#W(þ›Ùº­(<pÅBSJLSÄ™-üW6eA4µ¾_(_P uÚ­Ó½©õwÌ;R±MË`üñ² ÷.klÀmöX&'Ö›¶í¬ƒ…ÛJù:ä!á!ÒK7g„‡\´3´¼Í!/ð¹ENÃrÇý¥ûxòi†T„ûˆp=1©E¢žù³Å:ˆ ïâOK"¶¹ÖbCyTW\O°ªqß#-K¬ˆ¹ûÏ-D-‚0oF»Xüˆ¾À¼Ãë|€ÒÇe45i=ìëv‘Q’ëOx­h÷û 8Õùßh¶Cç!sµ‡‡'áiÕµ¬V¦Œ]AœÍãr™Ú¢Ák«æù’¾ž\z4LîG=ðdÊ¢Oµ¨òIó¨}5ª]7´~]´ßüJ]HÔ¹vÔÈÔ;q9ÊBH³™uãæ ÌÒª²ÛQã³£ µ¦Ëeúà ö³˜¢O×ýV8iÃÈ®(¯GuÉ=CíX'É›½^ʧ?MÙÛb=!™ ¿"Ê”†Š7Cœ÷æ pb¡ä’ûÄ‚yÀE— ˜»g¸Ýû|-Ò fñ"çf|—ô¸c?.!XÁ¹ ”‹ ïµ5 kRˆ½¶qi+P涫ïÃ^A{X¶bþš¡Ë²¶tÚB?LÌ 8zZ5êÅãl‘¶Ë–#e‚¾_ÓæDCªzýùxqbfžhz2ÌH¶Y|¤”'*—Â4–€Œô­úüÆc’¥ÚàZ«©lCóà»Gýo)ð<ç¦çhj£„Y§Ô¹ãó4gÛáZѼêõºñ+háá·óFÏú8ìsë¸JÚÆ Sʆ xŸÊËÔZZ[ÀÌîºþãDú%‡¨ÙÜÆ[k²'êUJrp›HÛ¤Ç9ãv|6€ ù ‡B§H*7 ª¶î¤%Ì8¬[’ª~ Hd©u}­^Å‹±yÐÛ¿³{4H-YÚŠORðç?Æ_8©0Ûâv²ÓÁ¤¢2̺HrÍ&Î/è~6Î`Yvà·ÔùC °gøŒìÉ— AÈ)ÄÊèAâBöƒzð¿@é ^L1l¶Û|·áVŠíÄ%ÙðíQIvüIà7”„¡«¢BaßµýÈÁzO/8LCûXfzzÃÝç¿Ãsðô @ <|¯ü‹9QoF!oDm÷%ÍkÝE‹½¦Ôîu ô€~[g’ƒÅœ„»¹lHýZ[7Pl¾ªu¡–UŸhÒ ² 뿎Ù¸~¿v,S‡\iwÏSB±çª¹Þa)a‚°Q2Ë»´°H%æ¿_2£b‹H]¢P›ü¡ƒ¶†ë£Òµ$ϳr æ¥]—]Õ¤R£­Ä,gmËÒ†)-´7‘šz'Çç~Ç统 8å.-É?u]ø$5,îdýB³†ƒ_·DIIÕ\Í*Fåà0±ü|·%`è2ªO;Ǭ=ò9ˆcH`Uvbµƒzg`>0¹ ˜ïœð—×Ä-,;xmT±ºëªœþ½-“¿sÓûG¹aðî~1ÿºr‡žî`XWGuY/s-Û+i`±TV ÄY¿<×øÊ0mC±Š¹ìÒÁéúÎ??&JŽdB†òk¶;B¾3RA=¾ñ“8®XÈ5GŸäêóÂMTP‘b¯(täáD[’`Ü<;äî zE*ôÁÓÔw=É>8£‰Ëú€6WÈʳ×?M§²N÷ÉŠž#ÍV*܉ÿ:¢‡ÐŒ6 Äe3¹3sùÍ35™7vI½&×ÀÙÊKn9þR*d‚ìïðY8„µÿT£Yª‡ÊÀF…ÑGh¥1¼Tz§Ûà ¤%™±Bɿ۔æòOÚã "©SÞù(Ì„ZëpÁÔìë•‹¸ecâ¿ÔõJãtñ¥šžÓ:©ÅžR 5kUÇö1?÷ùè'h 4ÇÿÒvu‡*Zç#~[Ÿ$BdŠhÀÍLø–h@<">2T]zDüXLM›y ñ`žË`¤Î5Õû”[ƒ!­FᇦÓ5ÎÌÐ%1'nŒóéø:ßË­JÇ4Œlª\h%!=H>±{Þî½ñçnßø(}¼§Øÿ¼$«ŒFG–Ü%N0•˜¸Ï´F#uuçÌjXŽ_çž­DþÄ=LFHàC‡€v¾Â3ÜÒL¶íž §…Éi4ªš&¡‰úÌ›i¦á,[Ðç kYîó „‡»*•¼Æ‡IŸîhî¡ažããÛBo£ÇË\n»ùÕ§œ²ØÙ&²¸÷Í`Ë…«vOX¥”{~Åþ||m­¡0Å/‰â%Ö½ÀüL°}%#ÛlK¢q©Ïg!£»ËËq@_h»Ñ¡ø'è>‡üC£“kr천f¤ª_$ l Ü€7r¼oz·Y•añ–¡ÇŠyžy XËûM¡éñ~)l^ɨ@í»”"\Œð6#ƒ~$ò²!îê¤È1Ó÷ª‡Y¬5æŠH«Æ‡™ÇE8–'2;¤X]ª¡€0©ä8ŸWÖô ¼úÏ( èÒ÷ñ˜Ÿ_ ¡¬DŸåÅo=ô–oÉý8Wøã&)eÏf ÔRH¡Í–©rkÀkˆó‘$‹èÝ [mPlÝI4rô§#s×ÿ5¿L.¸¦;ä.¹Ûض(º1:]—´ü± J§ñÁÐãš]qL6[˜Úãœ>»ðïÜ1 löÂo°­àuáTm _żƒXp鈶FޤʨیS*€¡  A+—¿I»…€GÝqªÓ‘~äW„fë×Ìž&v©…Ö/xÆûÜÎÂ\1’cƒé(ØÊÑUìø!ݺe‡´Wð‘®'„¹oÇÑÜ\I oòq:ke—úÙ´Wͪ,¯‹ºvµžÛÇnßIWÿ)9Ké:1Ö‰u@)*9U„"Ú£öLv«…X*¹ÏÅÿTE”ê%4x3Î9ÿ=¥ì´: YÅ×òEˆg> Õ°j¯¦6{üL»’™ÀÑR¤d«ß¼îÈäW-ŠÓF<ôPË¢Ùò‹…S aXf+ºhû¾O_–‘-`—ŠZB÷ ¨g= ·…eöío`Ò1: â²8;Pè,o, Þ&ûëfoïSU@’ƒšöºWJ3‘ð‚SÑ2@LÝÞP¢` ó™âµ…UôóþæG™¼g õ É ^Öé}äµ9ˆùHî)u1»H¯‘ C'¾>ÁMžïôpvÍážÂv·'¿VhÂãeó+ÖÁ—‡Ô}^äî£%]DÏ0sÔ»îÕ.X‚£ü§Õn¹±€©v0>6‡€`aÑO©“F’±lù«Š.%Ï ÓüL²uäEÄÛzXL«kƒ!Ž5$Q/þ¨´ím”šŽ;ªsÊ ¤p¢åL)ª®dŸ–¹Š¢Ñ…wµç…"éÑ¡ÿz_–Û">*¿(:mŰ›(@ñWÝ0ªºÂ|ÃÝçöS‹y’ì€j8ib9ÞãyÆÆvg¯½ÛÒ·6Çׯ%¥8q–ÊX#"gNÉ9 «øEõ»9þ¢Ö|šjo™ÚoCº¥T_Bd«º.ü1å‹ÿ&zƒÒ\ï Û=7~%Óªfø\¼Râ|j´+ï•ji ^Ř™Éi!EL>¥5¨ÃôÛm÷«žS"¸è°o^½ü/^ò‹ôÊ ½#Ï#Ñ=UáKéÖ˃K™—Úé4ølv3EK%á¼c°.“gUÂ-ë±$6—Jl•Dúu§ûíÓƒ¿Õê<Û#ôö5ô‡‰¾^xÑöû]önËs€o«NÎhEÂˆËø¨”ÄÛ^{˧& 8að}å-íl]9Íeý|oÁüNÃqâ3Ò÷JÒh ùèÖÏ`h)dsTAFLëå¸8CÐM‡â6ì­ÒüÌÒžâ!§rïó—(õ(@P3ÆuÁe7&ºþÞ?£».$A¨š²Ĭöt/¤Y¿¿<vcëAcËdKˆ¦ü‹â{7ã*8 ä.`_Œ*ß>7¡=úèÆ‹É:F ×’À[>¡0š±è\¦]Ff‹5ý—ZÞ®Y€…Éönè ;Çž'-e‘‹œxŶG9„™N¼Qª˜‚ö`ø>À¥›Pñdn|.°`gþÏAçØ½Bá5…N ‹ñK†Ø§y¬'m{ZFAUàªæXs®«AšT̘5$„²²¼iª‚È„ú{§W͵ŒX…I%ž I ײû—S* ]5׈Š$‰¸n£•B>vïîœZt“‘—Âx™»ÀΫèaÆÂŒF`†æ9ê‹å3IÈŽgI¬ôÌø&+BB“¡ÅIBðQ›7ÞÉÅ’nŠñ2B½º n ‘ѳ%¥ר#{¨ÏSr[`‰_=½„!¶Ä½¶!O •¾ü꟎“¿"‰…Á°)bZ^·éÖ<¸ª=ÀÔ‚X1¼€ÇiRºÔÈasaJ2 넊ÐDˆh^…2>gÌ*B§€fÔS®-š z«ŽGô³Èñ@+ø;eîÜo1Ëi„ÄÄ€øNÂ? Âל™þXÁ«¯3«ðʲ2'û‡ü1€-ºjÖk¦—ÚãtdHîF¿1 þ…ögÔ¦†¤¯Ûˆ/@~†zë+Ÿ¢Q½´Ù‹°lÈJlvß$¹ôX>IïµL¯Ì°R<ÍÀ“€æ¨–Ç=D&–²™VŸ"uÚážäÚFu€YQ%Rý0Ë ÕoôÅåÂÞš±¡¨2'üÅÛ;rÒmþz·µ5ŒÒOøn!%rïUä#½ÉÀ§ÂU±Am Ú˜{Øóê]0âŽøm§•Xßg Â— *û>Åí-£Eȯk2‚ÒátÌ ¶ÞÍ>$LŒ®”è¡<Àµbƒ–¥¶r³\Û=Ý üÛ|_Û¢­#s@PAy JÑEMQ»·Iõ2zÄS‚ÎÞoÈ>­ámÝÌŸÁKÀ\«Ù­Š¸çöGÄçÛ6IƒæZpþÍÞ£my;YÔ/F€6[â†/ –}ÿJ±Ps~Õ…pÅá_ñ†\þñ çñ¼˜3X¡)ïð¬.cbH/Á$PБ¢$5Ñíö,+z Žð…ç= « $g^Ðqe8'jšÎ§«›ÿ¤²R·0ž)ÓnqAVLQ¶EÍòU)¼ \Ý’`ÿQtõ¦æjSž8Bmÿû®Ziá k­*f}ö#ã~º°)ušpüL®KôX[ˆ,&:¶¡þ™PT"¶»„Wb;ÓàÕlç|ŸñÇ“\«{Ï2Ô¡ k†P*+=±·7 GÛŸ6Þ¤´É$[ˆÁÇ4…rØè8±YFÄó‰sM;w´±­ð¢•ÆLÞþÇ¡ôN/¬‰°{‚uoÙ®‘ºù*ß?‰óïBÚî¥Ä‚”ZGÚ°m¹È!˜²ª®b¬‘Óñ~íú©Æûri+òÔ{+q½¦ì4™ÀEÃ~âGôË€)MÇn•éR°¿¬Ñl9ÛèFgŸïÅvBœY£5Ñ® >8óõ–‰„÷Ýæ ªÀüL»«IÄäô‹É`#{¶¸ÌÛ{Êó[å…Ú gÏ8ò®˜ÏdÔýËÊ€Ö›Èý©Ìu÷, ùŒ‡¯$ôØÚ³Êf.Õh¿O¹òPq:ìýô÷+S—o˜9kÑîíï ä¾+r`ó|éTûŽOÂÿ\j¼Šëù’€bƒe±t˜q©I®ou![–DA—yÏõœõ5öm^+†ªa¾Hå‡m‹Ÿ€ÆÈÀ`ËÚ)Ð=ן˜Ú.»>襑l}áçôѽ-"B=*mÝ–@4þ6äú}©eS™ÿ±4xW½OØ=/<ª¯=›0Ë.8vª·÷™üIçÕ hŸ°¡¦Sµ×†0‘èZØ÷ÖÁM>r3Þ¡aÙ{€)rs¦—ùDÇȬzŠ˜†R³¬Ö UpSKúC’±Øô¢üf°|rΆvd@§BÑlèEíË›pXF¼Ž×ð«ãŠÔ!vOI{‘´Íj ½$½N¬ ÙDo«ã`¼ÕqÍ'Êè+x‚—)HèÒ„fúál혻LªUŒ|x×/çÞÑZ·Ì„ÒéÖ"Škjo'ôœd@üû7aõØŠo߇Ž~+Æš¡É§Ø¡\z:Ò†]¦¼ƒ‰Ù[×»íéŒ~õB 5O¹,» ×{ôšÇòA½+yüL´ ¼tºòÚÂ'q€"”ûó ]K­†Ç[Íœrm¤u´l7 ŸÍgÚ|RBd)6v¸ox©õ›xÁº.QV@Ø®"€–ÚNS¢Û §’¥“,ëBÁôâŠÁÒ?ž_ÉI—@íÙ›¿¸ÜL‹JÔÍ!¼š{ýÕ¢3SG‰Í¼×'¹ŒwЖÒ¦„è3©Åö ̺shH÷Ò¥FcÍ6YÄѸ;=¶~à €½AZøÈpӕ×÷ðÌJÔySf“<<õ/ՆЯéÈáuh¦fÁ&3gwB9.Ë/” (I_Û?™çÓ äênÒ(+“kLݑ֦ŽÜL%Ö©˜s°‘ü|®f™³[W™X~=Ö²¼ÇÑCúÌŸnê=4(Oá{ ÿ58)rbµ®ïJž4+>z 2ž[ãtñ j@Z#JÁ˜Á£}àgå¼&ãîì\e¸É¹|'³í¼ŸžºïçC`8`æfy¯8ÞÇÔ1‰ÿ;êóq°85øzÌ$Èæ=ŽlUBï¿~@Í­ÍÕ1ì ‹ÝŠEì.¼¯õ0u¡[ ‹£¶Xqý œÞȉû[ú™‹­ë•AYü«Ô"q»¯Ä$ל5Š…Üúì’í¿à?‹?¬ãêài^fà®fô„ÌÒ37fŦôh6ÐUuøÖhMe¬S$£OÌP¦H=¬½ÍƒLtÉÌúªç 90âØüÖ9ûn‚lý]{c\ZºÜTg5·Qep _I-¼þ‰¸%ŒÜ4a’…ó+JaX|…½úî§¥É6CàVÄ=·§òcDÚý–ÄJFºµîtÅ3‚qÆÇ‹>’ËM›k¡‚"ñ#zâÝG_/ХƤƒ‘59+#¯Í‘_õj-]›‡Æ‰áÍ:šëü6i¥À:žݳìécŠTMå/ž4)˜¡°ê3…ðtòfS±:ÀÁ]`ŽK˜<à׎Чh€7v-y2wD~:mÛâ0Ù$§aß¡Nìtߤ‹‹P¬ê!x>ó ûGå~`¸©ŽØdm_íÛŠÃÿ ¸„[EüPžrÖ¸SÒx@ÓÊ-ÙG1¨23íÍ7‹ê³ÄZtPï¤@‡jÊ­9Ö­1}›2Ãý)[Ì-±Óê÷Áù‘ÆúÁÚ½¿9&*`_q±#«U}v#ðˆ/½5¶üWÁ?»æKáCA=±5ò„‰ F¿½ÎõY´t5šó®üLëŽ8áo‘/™æºÊо˜#d^»¨¡š·dæ}Æêÿɉ¹ž‚À|»ÿä?‡!ž” °õ,•!…†Ôä°S+•r`ydpkæóšw—UøZ`R1¶LS_›»/ltºc(¸Ó•ï[ìQS4£d(øæTýŒ ‚x»ê—•$¼ÈmJç'9d ‚â{sÎÄ¿çü|H…¦Ûh.ËßXñŽ&ëX« r ÎsœÓ,ŸS†z@[kEšH«—YŸ• ͼ¨êXBÆÖüê+Ìnç`N]W|$ÞÌ0ÀõöÒÈš¨Ý´î­áËëíõ†d7üÛ·RÄÀ3®ƒœ€ÄÚ5;þnA1â¢çÑ–þ|âxM!6?q‚4zW†ÿ½|µ%ž½L¢¬Qü¶ʽŠCÂvš5»nÊ™4E,ŽAc(pF®Ëb‡ªvà,䜢Í+d´2YùŒ_€ šÒָǡÒZ0^MuŒrŒ61HN;F„Y·£³(Åjzâ&+Ik˜4´õ§?ÔH4g™aüÙâ²apVé#ãDb£iÆ" œÞŠ\qªM,ybã˜ëEH6s–m÷¤4¶!ô}ª*‹Sl²–N’§#íeí÷…òä9XrD+ÿÿ9qüK5o²\¾5Ýy÷rDãˆ>Á·™4žo©Ý‹íµêÀqÊKOÆ›|G½Zâí~`…ÖšW2(Oœ9œ”ZƒøÕÜH=ÿ¬wÀ¹þiE®BU‹¾ÒÀr/ŒÖôaH§QVáFzŸÅÒ™1Ýë†=…r˜FOµÔ36P§Õ0F !àûâàçIWÈZlÞ¥ô…5î0¥A53 Znj;dÊÆ³ÑF¥ÆöbIi¶ÁW %6î‰J›Ó½¼ÀïÓß¿gKY…–x®¨ÿèÈuHã{„@—u³{¡äøÎyëçvHË }‰‰·F¨˜Ö_®ûÚl¦/G“£äüÄòòÛ¼ÿ>DÕ‰|n‡åò‚..NÌ(GñŸ;;›+ ÏÔÓÑmfß=5pW´…í÷ ÈÜ_£´¬`L'ña…Çi^o?hp–RûÎ*¾jÇc?œñܤû5Ǿ•xeE2[\ΡúãôÜ{¶¨Å0ŠäÎ"4.û0ŒY‡í@‘Žô»s6ô1-&c Åˈä\ª•W2§9—†|`Eœ ùªuë¦íÒît•˜LxB LÖ«hcÓ×W/AóÄb³ZdßÖôš4ŽóvØ€!‰ðt ¤ü'òÍÜ»äÙ1÷V>l–mvüÆb#kܧ`ÚØ•ɦû2üQ‰ ¯_Åðìt”£-…{-%Fd(`¬OC8‚Çä_ço•̇Û[Þ".î¤?ôÙ>ø6«¹ËùY “ãý5`Šˆ+‹9ѧ™íºŽD ­Å‹¦«„ý©BJ:KsumÇèîL¢·Ã:½ËaeXþŸ×sP¥Ú—E ß¡­vš\™M–ªªÎÝ^gÀ¶—ìj«+Òã?‚±Ÿ­7‹óëiH3DgÌ{fø’_ó¦¤þâ”w†([¸Rf «{|ORè¬ÑÕƒA&ÎÑp6KÕ°áîú5ÒŠ9 ™…IvüćmàG/.ß®MóVµLÈ47qVn¬)·Òÿ›©FM›î7˜,<着b߇ ’‘*ÇÃ6Ë„è3rÙ>'cp³.9¤ÉGÒ*Á³ÑD©®VXkat›@­¯8rm)Ia¯¿ ·Ée`"DÞ•¯ zŠ,Ø<*’ã®?¨3ItNÈ%N e•rÇZ}¼äËi^ÔŒ]\ÜX«tá5¦£ã.Ä’¯G-÷v­Wbÿ9+²œ½2®¢hf¦eKê¡î‘àüÜ0`ŠZ# 2}.ÊçBM¯p½‚(8Íè@ÃZí±»!;û‚¬bš}ÑwüÆd0%œƒ¿ÖÇ›7Ô_@±é3‘´£‚ßNc ÉJI (`?ÎiA3©xÅ=ZŽÀgA)4A„Ù4ÿ™ì²ö:1ÑKBƒ\jù÷èÏYµgÕ"ÄKââþñÿPnOåûÄüð.º1=K|îd ‡]ê÷uKgË4¿ Òîi«è”f±únäø¡­bo¤+DÉ£?Úr¼$ ͨ Àø´ÌMf>Bºk –³ÐäSiñÃ/Hz^²Ygˆ%gþЀÂcƒÑ®6aøC@÷’lÎÖôŠŽ½ÝrüIöà3ðÐD=süEˆŠÃiàó‰o·”ñYœÕ-®0…ñot(MÃs”¥xB[®›Æ«BY¨ëP "×–©­È¯˜_poZICû·à ÑÑBˆÁ*ôYñíŒÿEyµG°a3z‚è¿‹¤µé2 ðv&´gÓ³Ä7 /Ð+±˜RD˜ë‰®€ö뚬 3-°–:ïÁ—=v“h’<6ñç4Öa'+ÅvOggS€s ¨äJ·h<óÿ¡èòõíùîÿ”ßåùÿõþÿ¬ÿ=ðöïñòìôÿúûòðÿ¨æõõðóéÿ·ìíôóøóÿ—ÿDÝãáÝÝüÆbrK^àËÕ†ÿœƒ»Ëf²ŒC?;´tjÎæ&[èPÕßCÑãŽv¯ÐÝ,ïgMÙÈŽD0Aã'œ¬æÝÒ¡î3UÒ¿6+*î¨Æ©~ÁTþ01k'7¶åÀ]œš3ÁQ\<«$ŒHêÏèöªTOnù ¦¶îëII±cÓ̼ΦŒ/Fûé£ey?qû|óÑ=>m -±Æ–ƒtVÏNï]a1õè[ó[ù~Ó Ñžæƒù¯0¹›kiÝ8öj(îb#LÆ”;t)÷M¶¸‚#Ô=UóðlsÅeNq!EwûE®œO vü{=D‚2ê»ö8+ s E\9…z¦ÉÍGÀ DJD„£>äTFgkši£ûÍZ¦º68-öü:%ôÂ2·É3P ý·àKàñð“ITœü Ï îŠJg7Àž£‘*TmÁ¨Ø†îRœ¡Ùf—Í@¤Ön÷{Ex”””K0jµ…)Ë^£ûù#pG÷ùˆÂÅú¿@Xß$ÜlOÕ‘•hGˆâ7ëÜ"+SÇ‚Ãì¯nÜÌEé¬ãÈ4æHñ®7V®1´/bƺRÎ"—6XíIûsé£o ï;Üå_K}ñÒ~=o·~åÏãfJ}WÊN  4é¦<1h$p›Ÿ¯á0±dêúݰ\fz&q CÇ~IfÑ<^ Wäè(g,–.Þ€Ói«°üT ¯‹·}CtÛmmß¿•¾ÖÖ\iE, ÌIÉaD® xéôDèl’ -Á1T¯ÙnøŠxó¬O¾²˜BPÎ[dƒÕ1sï~\.ƒ¥ 0YÚŒ°·ù…üÙv¹Š—AÀ;¼:Šk×ê;“]Ìcйuò,å!.»vw½áÓP®ìnü¢ ßn#‰»?å¹äb×¥&­¬¬ëlAô,=f]ÛÁ›Ê¦AiqIÒ‡¥È7¿QŽåG§<ͳc½ \¬Ó¾$+¼Jp÷µÜ®â)¾O‹ÁB[.õšô±oAµ=t¢t,ïÜмÙ§ôÂZ«g „ª¥ö~½4Öó ÏÍR皘õÎ`2$ÎÒ—?Užg„<ozÌ‘0tëeÉx$ª* ¯ QÐç`R:¯X¨Ånt¥ÅºRërqüÙÚ|YZm ?à<ìØäöR3˸×BØv™ ðÿB,l­xÀyÒíKƒxurÏã­‰æÒ@;Æ|Ñ^NTBÁ¬We3k¶ë[°¦”´eSàD‚Sær+ÐRdk(gê‘ ]@EWÓQ?§sõz ð±„ÃMÏ;\¤n@7ô–:(p8ÐÀ‡'¥Ü€¨!‘,|H%Éqõùïqß’õ? Óc¼Hi`ËI'Έ~éa€aùU*á7o› ôü¥»UúÕ:H»þs%EÃTæ¤R’W¹ÒEúÕÄèX³Á¬¶º dŽÂÓhdÊ2rqüLÊAóü%¼¢p*ÁËÃy/ÀjO)e~H‚}/w={8<ÌöÒy“?± Öàèåb\ŒEüPAêAþ»Õ»Y´û¼ö‹|zÌÌþ6!Jåú!B—"‘¬Kš>;öð¾•lŽñùðî$”Sì)¬ÿBApõØ5åÊæ<”9 ¯þQ0]­L´×HL$ì€ï=-ÀȬÐÏÊ*ŸÎ¨à([3‘ýßJpcó~– Vø5}”mj¯q…ÿ••?ÈŠé.›‚ iUýÃ\ºŽ¸!1ŠA<'?&•µ\ŒþѤsM)¼ž•Ýõ$ýKüÛ½©{|àcúi.bª»´I¬¦Ù¸8݇M½kCZGö¾sX„×muha@øš/žáÄá“W8M¥†Óçç¼ÍÀI›DÆÙ·õ#h¿^¼E“«r Ç@jÒ±G”¾Ã¤í¦šÇËgLæ”t^´V'óöÀ_„l*J+Jg«d“•ùÈ êª©„ d_%ÏÒy7­_¼½¤Œt™/Èu!ïFnx•uU¨û9ŠòÛ£r~¡SǶK !ºu5s ¾§×¨íêÙíl&Kä˜þÈÉÐòo Æþ£E<S0¼´µjI«t{k[ëOA^5KÂ7Ä IFüLÈ—‰Ø·M9 6T™'þÅÆ“›ƒm™¹½z‘ƒ®—6Õ<Ÿƒ™çþUüI›CÏ!ÊZ¾E"‹íÒº£pAúKãëKpô•·*ÄÞ°·™TB]Ù§Ú€"Ò/®6héÊðµ&Öàä Ty½.Ò .k}çeDãè¡cL3,DÝCi ï™D¢;áÉÒ¨¦9´gð]ÎïÃ\¹Î$J+Ñœb2)›Å,7¶/w°ûÔŒØZÀmZDqLW©Ä˜©è¹M£NÒ‘#ÑÔðàõõÛeí/]…'*­;Ý{•šêÛ¬5 Œ9ü|®2áŠB¬—4¥>§!Ò³„¿„ö<Š©¾¼¯ ò”­Ÿ×y4Æ”eêùY2®n쨆ã oOm¤3jØn£`úN>T÷ú™ “P¥¬A±±ײ w÷Ód´,›Œ½ÿ—£vÿ…>ÕºQ8ðG|é+†ª–ýá‘4—¸*ô½•º¹^„aMX’(ÕˆÕ")8Ĉ3ð§)¥·N¢W²‹EBó³O(†n+-CwZ2òŽC&›Qä±ÞjM†Ê®qQ)\¿så19€Ýà­å8áô h°ÊØû½1AY]˜x{Ëu+ÙÆ™ˆì—{,†]ʰhš¾^üJy¾™K©õRgÓ8k-ͼÚwCTÀ‡9Í4Ø;|Ú/)Çã­jö$D”(fî¨ö¾tàæÚ`ºê£ê^­ü ÀŸÇÈŧJù¥®›ì{a)Êðý§òNŽ’ˆò©sÆå𥶋}«O7 W%Tùñ®0èý LJ$òŸ§‰µ…YÖðÂw¢)ŸsrWt¥ÍüJá¿bˆÓYO²Ä9tÝsÈÜN$ÄtµÍÝÜ]%ÑcòÞ y«=Ñ+äŸTðgKÃñš-ïË¿”ø’BuåS}öØÅf²fhü¯7X 'âdKx°¢Å%ö6È’k¡¸ {DÃc$v¼²Å1Ó;H=Ý)°¨›Ž«ÁqÝV FR4ƒÛÊÿî: OÕ&¯Ãû}…ôÈ–àG À!_îîF ¹ «¿§çòÖ'û苆2`•xÿïHÝ ¯\ÀX¬8¢ …*Ú©âÑ@(à3YYÜKu ømIæíæa¢¢BÏ%B+VÌ¥—´ib,ŠT;Æ·êk/D;à=jÕ©bo^W›Gd1ìü8\Ê·…^ñý=FÊšX]«ZÒÀ{ªÇ£Ê•3?þåd•$SmŠÖfiüE¸ pöÃü± 3.”$0¸}êÙ©*Ö€8ç‹3çãtpñÿ€a¾ÐOåøÁìF]{oÃt+š90õì»Ç$s ðÐ,&À Kl’­ úIޱ©šwŠªy˜jí̺À®ý5ü%9!#y²|þáÇ_Ô8”g÷Pܪ%óÓvÝt½J¶/Л¼¼K[E^Ã'ÏlGI†îËwMªi¢—OåkÔ¿áIÒŠúöÚC-¿{³ÿËÚý툤V@e‡U溄ùÕT´?°Ï'´äöd¡b÷MO[”ʤ‰µÌ¤Þ(Fm€Š¥q8vë4ÑøžVçy‰ý¥Ã“W£;É*odý‚žü±ý2woÏ¥\xq†`ù Á;öÕå…‘SÚô÷4³kjàÿ?“•Û&`HŠ2>ªÒ¬¼˜|ÒX€Ò•QÒ ;Th´W¥¦Ž[ï¦Ì@”æv¾H¢‡à퀷ÐÔIlµ†àýt¼â@U ÓFòXuõ)ª„GØTààFxa"œ÷Ôÿ,Åx’„°–{¢´ŒÍS0u(Y¬ïºHcHï¾Ã¬{Þ„V\œTÔNüÊ…#Ömºì®X™¦kR;¨¿vy ·ÿSÐÿc1Õ1LÝòˆ´!oå¿aŒdËüsK*qðˆ˜”Ñå¦ü±XÝýv&J¸žsg7“„ôIJ Õz¯õî'ÖÀŠhjc´ ­BHÖÉõÿúV#^å™·bF( Æ´Š’Ãu§=ÁøXˆ qØKØèsß­ñ'?}Ì|þëÜÈ̆–i? ýÞÈ­ý‹¤°vZ9«D^²úHœZ/ÍüÕðëYö°ñŠöóîm³ûjY ÏÂÁ¹ƒ?ü°ú¨'H÷OØÚ`öÅ y€¿ÖcgCp"rý Ë<_úÖ°Ä6£µU¾èÃÅuýºÊýªÎ JLÖXFa?$~©kíŽÎñ$i¼N™2"’ÈP?M+¨±œü|ª/¡¡+å "@¨¨@ÎfaÁ1=6€ sX ì©Ëb•,¤?mr>T!a5Ä*§àϯqÃMQyýÄh…AÛ/H^–¿!é[*¡¢¯hÖä$«@»áos¸øSdm~œhºï&%™u“qö÷ƒ3Êq|U¶>ù×£p›†Í«LóÜš:»ûƒSûçãkuô.ã7ö NDØú¤Âí<†ÿ›¹#¥"Œ¥_ÃÉÍQÇ:dÂáEaÇ/>Òá°ª~âƒ9W¸’09qÄaÆéØÖò­*‹ÉµWŠ™Dl'à ¼‰”B Éw$´”ÉérÇ ÑTòy½{Á;Ólj:æ?*»ËŸ"$ºn»º¬Ñê%hím0›î%ÊÃ#\~-¹ö¦sC Ù5ŸjlWÆú<¾F²'vIW_£Ms¥øöz¶¡ó»'N:¥%Ã=mk7 ¢úkÙÊÝ¯Ž¹„Ë ¾Êm+4dm1®Å: ÚçÂB3ø#¹'8_@XISï%²#í\ñbH»wá¼ÀäŠK‰<¹àü}az_tãÛ©|«ˆv2q®/¢Få %cbDÓ“íp•SYH AaªBœäZý ®ŠT‹€C¢YY%ÕQ΄8âÙ}t,+-¦‚{ɱlà˜¤BV»xˆšnì/í™ir¦‹ S£:^šѰ¦½b8ÖñgÉ/ÏÏG™æŒ;g¹ kÙJû‚«D'œ'›]øÓHàE>ãzÈ÷§zel „N퇂·Ü¦3ÕÕºÚ¶½@8;YyÀ±p±Ó² b+°ÿBð.ú(õÃä|Ùøb¸ü±cŠ[„‹¨E˜°7Hä%Àa"Ë'ØìjâQ°:‚Ñü;ƒ¡!ØBŠé›Ê@l±ïÞö32»Úº«ê-N0TA‹.Wd© ;4gåy ©Ïþ VVNøú†Ó+0fY:ÜTÛ~6Äü6À˜¶ºÚÛ’´2W7Š“«h+úÓÝ¥sE°‚À÷Áõ„{BéRàØ5á 䬡µuo¡3LÁKUK/ûÉOÄ 6ÜáÒ3ÿKÆÆ~yÈè|?| *³Ò\5‹´5¯a(€æL÷.ÃB²FÀäÏìNº­¯\Ôq‡+õ÷„ôúå7^€ãi¨ÿº+ÆÿßmS•]RKµ&\·£ÀR[Gr¯Ì$aáBȅ¨¡ x]Ÿo,è ‰çpf÷oÍàHzçiÆÐ%µ€i€ª›ܭÛn®½5”,E|ŽŒ+aû¡ÙspbÝ•…ü5²Gp K˜æÄqJÓÜä¥ F€H‡ék…ÂÇ”×c`ZùdèQ{W拨ÞgäT#ËÅBêä·Šäfjât-$íïáx*ëÉò X7Þ8‚¤ÌUNjoâÔœEùÞ²¬L ŠÎø>°Ð°Ê‘¨J ÞNHÏ€¼Ã7tù¾-  ×7‚…òÍQË·¸½ ÞڔΠªã)ƒ ê{¡Æôé-Æj„3Bj!ûöø‰ {ÜdâÃßóHvVkeÊÃÒ)ŸkéƒQÿ¥ª<Ã9–)Þ¤*ÁéOf¥ÖJžÅ‘5%v:<Í&hkÃ^üJ^Tº˜£¼€Ê÷z&ç“䡎CŠpMer‡ãVðÛa›²®kqï¡i=å7jnZ\¶ª ï¨*À÷O+~–¹ð¼é FŸ_¯\÷z¥ ÈrH‹59µ‘IªO6øÁd³U!2ƒÈ“>©v›Ï!M®Ëì‘ÍØ,}²JX kó6;èyÔ7GiÏ™‡;­á]>,žƒB£;jHb`>hø%á(bªÖ¼…³¦×te9frDôÈ_-sµøÿÏ}”–Ú¥\Ž9>zéu¶XZEîàõ%]„ÊlÙqÆ·=]¯ù¶‘ñƒŒ£î$Üc8CùüðÇÝ;«tNv'èzùq#NIWˆn"d=¾š¸gÏÅjˆÞ Mlã$iˆé+„ …(ÐN•dÌæ"ªÀŽ©ðo+éB·ç¨KsÚc{;hÛêWHè´Ô нKn$§öׯÂjôïo=Ÿª'µÀ¦)ˆ%GÿŒ°d¥jÀëMýÓ–ÿµf„p¶)–òägƒ¾ï¼Ùîý§X™NÅ òD!MÁH~%f½¬L§»H–Âd‹üsòÕÖ¹âD:“KuK… ¤RÈû¶…ˆÃmg„Ú£!{årÚ-ÞçêîMæîDÌâ}DW¹USý¢¬ü.$é+Öbu”€F,õ,‚.ùÒß ee~¦ü„'i©q’HÕS©–·ª)4¸™vMWQÎct¯|Ï5LT8)MØø,91+ÃrÍ-ÀÚü.]:9T‡†œjÌtÛâ&NŸÙOQßþטÀx;±à¨0=ýs…Žöÿ»QÒRSsví<¢mË‹· ÙÊC×ø”^áCm“@AA¡˜WÑQSvå¿ñæoòÇIOï£ ^þþKíÅݱhJ€MÝJvô·ûÑ;Wj?dê°…5£«nÓSÚæ{zÝ‘%;—Ëíð.Â]Ç'y15ËY¯ÛåüIêÕ§ï‰Û'ç–Äm`x¡›}cbg£õ™}KG_2òý éO‚@,M´ÆoqA{AЦÚ%ùÊ ì?1<¥aÈ“ ÊO®Ñ« —¸qiÇv\”𢆃³\»ÎÆrªØ]¹ðyÅðŽ!bÇ gõ›«˜’´uŸä°]‘ÐøôøÚϰ¾ÎÎÐd‘-‚=.†š1”ŽÊ«ÒØlÛ%UúúןÂ&¦Œ°‡Cä]Peî3Tvô2%Œ®³ܲüê>R½N+ç¾3¦ê."yÈz@ª0u†ï—ê™æ(Qr°Š €­¿7ãyŠüLÇ£¶oéi€.µh‘O§æÆèµ>ìƒR’=Zªj¡ûD´}§0šo'®Ú\¯§ÒáO8Wý±^UWI%ó`PÛ0+æ•ÔD¯ˆ6ûÙu瘢1ªË–í=ü}Á?–<Ê!·lh_GÍšâžå´²8ã?Ki‚˜í5ú¯É”›PÑY ¡¹ƒ­:<$T©oDßÔÉÁÒ{to‘}¨‘» mØrªíCµüSPÆ3D RÜÛ«À[u[€¢êÂýK²I™dSUO@Ú‚è³¾ªŠÖ½K£ÛŸá¥9§W•(xÝaÈgôìŸØÌ™ëüIûøGG@Q¶˜[6ïNëAÒbXLD4ß´\3K a÷—IäÌ}©á¥~ç¼wD𚃯ØLCl.Reö<Í"ó ’®»ù_†» MNU áöB—£çA4¦ý·uºªìÐõZn&¾¾œ:í¡&všrۈ회¹˜<¬’þÜAC•8NµvÛ|(=V s–5„ÈÎD0ÜÆØ„b: ÂoÍšž]Àé=à+ÑÅ¢Õöoz8cL‚uª,~è² 8XÁE.;[›/Æ`¬ŽàÁ^¶’ï'΂¡E=Üv,Zúâ7`¹]p„ g:q™=êÖá橯g$p¼ü1µ¬ì4çu¤SïYvo¿¨¢áWDÀSâPÕœ)ªë®±F}`Ó·£t˜Y4ª0ø×ÓR«É‹èÐvH|ý¨‰æ[ÙÝ"ÚmÓ¢“J$§üO(¾WåÒÕ›•bàù·¶)Å@lMˆa¿«1h·ð7%G>\Öº¶;Ó™„g]M/©üÅÕ…%œM ”‘ßi˜ÆŒh‹(‰|ö€‡">ÄcwÜÇà¦ó£rãp¢ Í•:'çYÄean:I1\Ò×4üƒc„wYoGk;Æ!JýÍwÁý„¿ù‰ÞüÆ- ºãe±ô.Œ·Eî VÏpšRÏÉ)TL=„5½üñ±·±Ùí÷ cº ÐÄÛ¹3;ÍÇ/0Z¶3ôÙ÷°¿€ÑRÂÓÇ%Ì^ÌüYôƒc¨^0¡—§‡àó­eUÞP²‡,û«ß®I4Ôð>zO˜#ߣË!È2À2ˆl€,qê¡5¬†¶F‘Eg¹*§ë÷£‘óÒÙnŒ‹}ÊJÎâçÐ2‰rò$Jä|ÛPÞÚzïÙêÕº[¿ÎnÓµ…Œ?«ÏóTþ]CáR“ Â%L'õ{œÉó7öK,‰è§!:sž•<œ÷ÀZò4â‰g°13ÉóTT¶Ÿ>Õ£~Lù ¤1çäMÀèQQvoüî‰cño"0¿'i™•OÑë¸|þS—CÐÁ‘ß›îm¡DP­+ÏbI]å‚ É÷‚X±Øj|¦4v.bÓ‡˜ø+õhRO‰½ëÐ$-»nªh¬´W èù4Ý«± šTã¶bwliá\©r±íúÓ¥©Ä¤‰1ÏíÚ'75ËX&UÝÃ0¼6³÷™J'€‘6]PYŒ‹ÿ÷ËÏrÝ¥àƒ+?ù‚Fꋜ3ë_nòúpvnc‹MHøýcsä0Ö¦E¡ÁÀü«BµýyRâ‹#7@Ö¼¤>P8|Ž HÝé÷Ý\‚ÏðóuÏWG,’?n¿h²™Õnüñ‰þ\ªba_fRüy‹ô5%•¡VNñ¥ëÿ ãKŽkF”î1g1†£”DåNjª‹`p²›.'E(ê- ØøUX¶4èø&ßîIâ*ZƆ³æ¾Úè#…§®•ÕÝêÔ¼®ÂÙ‘0!ÉÝEõß›•o*¼µuà Z‘¥0ð †Ö1‰0)rJÚ íôwÈŽCéñî/ù-äóüÛT©Æ iÒ$’ò„*†Ê†wÄ'Ãkš¶üŸÝüærEÜæPTZ¨UFÂæ3ÉTÃîI|{ZõœêIcÊÎÁÐŒohžÖ[S Ö(1oü|®»‘”RS5ݰsAˆ«Ø Q7÷ÅS%³£‹–¦V_üÿéÌHoÙb±œ‹vøêÖ—åë'Hïž.ßpkZ<57ÄW¥­IbOõ:(¼RLŸA¸µ3&aF•ä3Ëí¡ü3—Ÿ¦=‹IÅÊ ü$˜e%QÏ~•L_Y”eRõ9ù“*}LÉ›fz/çÈO}Æ |‹u|f~\µ›ÿO§b*nû¢©¬ãQ,F=y=ý¶=Þמˤ:Ÿôßbå¬g>¿å¬`@ƒêö†¸ðïòº%ÛƒcD‰ƒ ó^@Ù_tÓ1xÐ]X†ì¤Æñ½%ž‡§$S™^c´pfó43:y¯ÌâîL¹‡—ìx>Î)8öåÅûÆÁ8ÿ Ÿ6ªôª ÇW:RÎwÕeè_é‡ W"H¼¶Þ¼¬ bx’†S ›å‘¥ þ\HR Zé³Z†Ýé„-˜³æª†Nœ#‰Ð+Ï“ª ¦Š^2/i BÊ«¢@\è[lâçhS&äÚ%KžA‚Êx5F3Oß ˆË¸µt¶´1^ßç9xšüL×Nàê C_Ùt\ƒ%ÉëPž{¦ÍnìüFµí*€W)Ãá qûñ˜*Û© É={ÁŸïÏd<|-wtoj?‹æª]ŒÌRüÚò±¶gV€w©]pÓgÍ'!]û®ïü:N^ð˜}öšœ ÖDmòU'· ®£"Q41?œZ©ª`¨B^î ÅÇ›´”ƒ'Õç³:êä´p‹ÖXê2¬Ž Y*UruUs/m‚ݺOÖ]’Þ\=ÿÈ_ïž¼àý'OÐâIÿq]ôÐØãªýD•ÇxÝB@U·’ü1“BÿAÝð!A› p±GÑE?VºZP¾ÆÓ̰FùŒÛǧ$0«Êº¾ÅuA;ìEđťÌJs+h äj•7©Üä¦äí âú³ ’“‰èícÓ«°Ãd-ßQà_å ¿¬Lâvg-à¨=#ô=ö©gœjv‡CÆš¨q  = A þþ¬¯“F0ôC™½ lô³D ÿn`¢á#\˜·è«‚jëcjJã ‘<Œ##å§ÆøÆc6Øhï@➬o^|L)C{§#H–ÞÛ¿½áÔë)”“dÊ-å}æ2ôÅ…7õ™%ü6xú|[WWÅ]ð}GÆÀvÄÿC\@ ‚" ¤ãtcž^ß-]ÝQ|/yàSÃéà ø~õ~U*ÔWEEr¡˜´i ±’¿_w› 7Ó& ‘ðçÍÖxzoØÐÙ‚øú¢S°ÈÙøeZ^«$¼Ã+¢¦%ˆÓ6Ò@-WÂ7BôÈÜW‰2ï ˆÈ´Pë~´ú5V¸.´øã]5,#äSØr ‚èb©Ô fuæ“:ô#ÃÌŸkCz;(…ò!ŽÞ¹x“,¨=R‹Ïõ½ å;#ãì¬ÅôÍaü4lÉüû´Ö3G7TÎa÷* 24”ȇüIíµ†;Ú«>Ò6Ð03,ÖUñ`vÇ„= µX…KMu`]qÎ? ð•áS>Þ0o¤‚OêŒhÐ<³Í.¢¥ùp‹WÿAÑU®tLb=kàÛÏü,ÅÎy ¥‹¯¯2D!-ÖÄ“ä ]óáwvù Õ\׆ÙE 3¬—_éü¿ÆøkëÈàiÔ—nŽóal“‹\ å=Jóyÿoúéèe^Š…v¸f5¤ÏôLºEþ¸Kt=ç $ù$Ѩ)Ä}„Æèé”=õ˜ëdþ% Å¶·î¤Ÿ[_©þŸ.D³½ªÎ€F%b'… d‘€S¸Yy8üï2€çí’­ðhº-±–{ÿü ûiЛ'J9k¼F'‘²Å„íc@£x“7Éâv£æTˆàrX4¡\¦¸j`å†ZÐÂì­–C¥ø®M%%ŠtQŽÈáhSüŽ4¾e¶7ë%9R«:ãüsKC±€85Þ*z‡¼žO´¤Jžuâ›æa³ñ¼‡Sy¤/Éö©yŒC³`*ŽnMÐ>b-TŸÛS¥ šÏáÛ“–p¦ÿìQ-­œo~Ó¤µ{ª‹å¶â‰.éìÁïEpㄸ‚j4©n—ã–ŒNÑ7#YV1n”åHþSG[¸ÿrOײâ°ü2©Vk`FH®P·Ö(¦K?91iÏe/LÂÐ_ef¼,‹f©óÏùûO7üi|Z–EΡ(uà(<òm¹ð;q}Þ,Îï "ŒÌl»ÃOôwzÛžèø|<°g¤ €$äÜ‘‹¸¨ $S­/Û*%;ˆO1„a¡Y$È ‡4ò"XÌȾÎü«Xàóg3èlRͱ4jkÆ×hNÔÑû2x„ÛóÏ‚û &ý¬(}/…ó·#}êô]ÝÑŠ¤‚ÚnüJFH¾9 ;¦ƒ÷Cµ9p3œpÛgÁYƒçÞÁ£&hñ˜vB[ÄCŒå åNhHk7»¶¾èôu.¥>™ *T½õŒO;ée^.åð¨ŠßQµìÆf‚(&–äoÍKí©LCè“›sJÙq’I(›,0‡$µ×W%äÏiPÈZå^(Z’a¿F*^¢s‹x wÅîöµs¢ë½g—²Ð«ÍEϵ¥4¶þxpµ÷¨Še…’L¹·«ô[%Q7Å<"›KðŽ#w` ã“myéx] ÔòŒÉ1ššM@Ð;{”h½`2c¢Ó¬Ïr–ÅÚÙýq¬Íq—)q¨,ýš}†t ½r«Í¶üJ@ÒJÕš˜—ºF+Χ?|âÚ9Ò'¼ÄûiVP_UñÁƒ1Ì9‚>E{€>iTØè#o Æ2†&šbÙâgV°L3[øn^2:Šl3¢õi³¶ˆ>B+äœ2c‰Ì;˜Îjž¥˜[cäRÔ8¸essaá3æÄËÚRO‡5ããk­³êCÃʰÝb#Z6¼ß€é`;òPºË´jDT{PÐëZ 2Ò —0EØÆµŸ\ñM"ð‚Oa˜·¦WÁÛN±ã„Y¥T;•P‰I'ø ÏîØ–wexE w qÆÀئQþ =Adµþ?ÒøåPxü¤sý·ÐkgÕ¯6‰ÂÀ|"•?Öoºbµ­{gò*¨(ÛMŒNvVZÆØÒÀ´F”òôÕóëäI˜:jI¦ÚDÖð׈ûËmëšÃ‡[l¢ÙCZñêX¦PBráäÞ( zÐ"‹?ñLR©üM%MIñwpNÙÃËúz ÇJ{&Õz½)ã’òpƒR™|Ot4‡ûh0…ðk(ÃY -;¯ëˆeo ´·2ÄDkˆoqGZÞïC¬¦À1 ~µJ]:Õó åâÙWvœ 0ÐKé§84ƒyp¨—ºÓð0&fÀ`?‹ýHa5NÅ#·þº™æ†Ã>7ß#ÚÔ×!۽ÅIÛ<2âhÙ/*³"íf™ŽÞÉ‹n-›`·kƒ–*{’ì›ËÏûv’hüõ ø×ù‹ÃÁòA»Þ›¬5ú»Œ% 54n•wý½]6öäYR’>‚ñÄPOggS/ ¨ä/aô=?Ûçäæûíòÿ¤ÿ&æëðïìÿ¹ííóë÷øÿÎîíõññùÿqÿ5õ÷ôìöÿ¹áäãåïýÿÛÿòÿÿþÿÿ´üMý)ÛŠÇ.‘ÝùŽ˜^â”|±"»XX©­ *NŽÊ7ײžÃ\öêN,Aë ìÑ!ÈÙç–½«î— éÔt,Ë•ÕD¸±Â|¾ØyœVÀc¸Ù’ ~\BÕÑpÒU<]d…ábåíÂÎ1(£ý¸eÒ¦ /¢ÑCBVsð›boYÞ$¶e¡ˆ>’ûAuX²Õ”ÖKНfåj ¼IœåH /íX"~Õƒø¿:ØVêd\”I† ¬Y¦WÝ£›Ú·/%<5—GäÖµÄç‘Ã#߯üLÈ!(L’ùh¥˜ì¿tAË5i•°ƒsлj@;-#ÔÖ%²ÖÐ@¹@¸S7éá&K ¨+ÙÀ,EðèÆêòTRw¾w±]ð6•%'ÖQ˜0d2í¡²þ¢$…A³Q>£ñjÂôŠ‚ò׸Hø£¯CG̯+Τ¿©é¬…ÆÓ¢ðöVÜO xÕ‡ÉÑ3þ¯Z…¨¥ô_…*ˆkNÿE.9—l†üLÈå ýDžÏLv«¤ÂE@_ §Ì‘Ä<÷†ÄcZa«ÉfÄÝvè ‘U¼Û‚o UûPr C¦7¼åkõùg’ׯtÒø­Þ¾n3¤zµ2¦PGáQþí58ŒÝÇí‘»•šï‚ÖôŒ{M OÉÛòF€÷úÄ$6×Ù+;ˤç*FÉ™[w®u{ðèÍbºeLh_ÞD€ßnië¾£Ú¦pᜌ‡`•b¾f‰ûG¤î/™§çÀ–)\s^vP ¸@K[j¹âz£r.1ƉOtÒe§·ø AÐh¹ç哉Š’'ÄbIü6r5''6>ê`¥óøKà°Õ>)F1 7"Ì5†\b°è\>ÑtÚ‰\Ž+Ñ^Ö—âéâ@¯ lfªýÚAJ¢ß.€ÚŽ€Íuë< ]™O½l >/ûè Ùt©²TÐ9É,Ô:Žò#ù4Fm!щåÈîÕξlg¿y EqGàfh†pƒL2ÀpÒæâ6tSZ©ËuXØœ˜î¥ùÍ Êå®"³ oH3P Hü{=û'¥5Í=ÌŽä ’R»Ü}p.ñóOÞ¹>›­¤¶® ƒ¿!”yÍŸF­{ª·_rÜo”cªŒ û}o}Yhy>bà°HúÀùëxlâë2á(>BèeêCž.Ÿñt¨÷YÐýpÄU¸o¹õ8Öâô«ÊÍË£†ÉO¹ 8â†. À</ –ÊÀ)Á;mÀÎz°i_öÑ7}ñ ÀÇu¨ØxÜEo‚ÚâI΂Ð,D YÊÊ”»B¸ÅGÛºªUyáŠ-Ì̪UÛþr =õZ©Ùkêo°sZm%D”‚œA~àiúš8{w\]ÕZ Æ•%hää0ÕÆY(EÿUZýE=JQÃ/ÞôÖs Xi鮦º> ®Iìº1g¯jCŒ?v¥’ЗÆúó`FÉ$šBæÜN#~°îJz4Âb-D¨bàqˆÊ +Ù?Ú(šÎDzÙê\ÚÆüXMOœ³DñIq‘­?ÜÖ¾¿_/yÜ)V‰Þ½]íe¥i¸“}Ï:ySoŸ¾ØIS˜¡ê²¼@¾ÿõå86S*пØFÎÊ)öÀ’2n¡£«u󲣿ƒ’©A+Ì—FM¬þ~µ›ð2jÕv©ªÌ{´½°Ö„¶vOD*rq‰*³Ç%[Ä»UC€Bø§$-Ó1kÚb-<õknQ”­ŒþAŽa”œÆæê±ÕøÈ¢ „£ÀM»<ÑE§ò˜ÿ4bc1ѳÊÙVÀÆ pN5+€& oÑu››‹ÔÍ®¹Y(”Üø'ô­>ö0L¦±ôoÉg·ä¼¾(¡¢3S,Æu_bbÁlŒ˜òw¶b+«½ûh‰XØÂY³ÃÊâeüLÖM¶”#á빚Ø3Ðñ_K†Œÿo÷ß^—·(¶FZ†E“ÇÓ)Sê5¯A㉠˜¼Cö¸ÄXõ(2kï6l ­ Ìí? s*ùdž›}Ó ”U /,#úÜÔ=ðÁ³½˜ òêÒü{·\³è­Yáà#M‰ªqX3 EÕ´³Ô~>uc¶Øj]b‡Z©ù¨m0dšÔN÷§7âmŽSUÌ›‘"S ¬:‘vê“·ÝÊ^º,TçÞõ¥×ê-Ž¢ÕK·MVØ ’ÎϧU-4±Á†5[È…nÙËD@þ³›ÿ ZZ"ke×*üM!ñ‹0$— 7ýË··®4h[ñÒf¥Eä†3$[jö`ÌÙá„](@TiXêç 1;ž]"Ž0‰ gHo›¶ÏŠÄ]Lʼ¢‡O:[€Î¨níþ*B(þQúÇ·ÐŽþª¥¹o!Îöí·ù©?Éã•ÒÌÎE‡ÏN¿íŒe½‰:ÃNjûW|<\²-7ωI§ÆÒ¬c¨˜Œ7ƒNwïIñ»¬ÀGRéáÞ7 ƒ§Ê¼3X§„ÿ6AŒÅÛ‹ð@ò  øÏÚ@ƸxeH%kµ(ïeãÉÂ¥Ü.RLÉvDAéè1ñü.‹ºÒ‘/R%Xðð[ ð9—‘]|ù¨|~ðRØú|g'©¬­ºoù0aíN_¬ÐâÄ M`Úö ½Ï­ «©©3˜zwÁ(ò†Åe O T¸¾™÷wWdÔÓE_dIlšo%];-'Cºà½1¦ü6»èY=䛿l⩽û]cßãìíÛæ>ƒíšù)Ëâ-ÓžUOV©ô/·Eƒ[Ã\>a^j“+"<˜cæôj,Rß­f¦Æ §–Púóî}.8iÉ´­Šóogœi:‰Z?—k–DVŠÛVˆ&/!3L«?k+bü–üJZ´ïþ ÃèÀ£Myû(òò˜Æ’>B»‹hórZª#~kW5å+øì%hWúöMŽI”ó™Eb!Ëÿxˆ½SÛjD¤‚¢\ÕùBœB@ÃA=w©ç'z@3ü|®«¿ÔÃ{›ÂsùŽ2:yß®›)¹ô2å8:‰àÚÃ"X~Ÿµ¼Ù£~.Ç ##ì%m‚Šëzâé _Ÿ–Ê0åÆ}4G``ò2,hÝCKĺÎ[’Ú¤^ìêÝ&O¯¯Ñعõ‡€ßsñÿ,šÎÆPHlCï}Óµ6bû›ÓáÍæ–æk¢;Y¾¬FN(uHহJ²|†6N¸+w÷MÞ’—•?R70pïÐëÓ’Ä$«"Üͽ'i·y@¦qbûìò -–A©³ Ó°Qþzp©9":ŽÔ9+Pü"°f,sž…ý¯O’@R©€oW)“V8’½šêç×Á4Òs*©š¡Z…p¾²^UVwN$r!tŒ.²÷<öŠ^ýwÌûy¸Úê7nQº‘ŽrÌ6OÐÊß ÅîŒ|zYX³8%Ÿ^zùé`ÁUäÀd°s»òצ)òµ^Xñaù•èxj³” ­ø ­P³;s•D4TY ýxÞ¯‘y ©†¯:í¢ ”½5 W|¥Äú¾yšŸ1íÖm"@“*a¡RyL¥œŸÑzÝ‹`U{ó…átüX½zпŽ1Üö<öÑ¿ýäóº^… }).àv†›]àGtó½ë6äqX.®<¾ÐS9<ÕfžÍÆ’ /sá½È!8ºÆy!9ï“lEÑ[ q&ÿšÎw|þ7ƒ¢<£>ìÍî­Ÿ†úfŽTÔñ'õÂÑbcžÉ»(Ö‚–ë>ªk]Qž¨£ >GÉ·æoUoW¾•Òç€b¹«"ÊKº|°üžöÉŽ]1AS®ASlzÅÒ$Ÿ¯Ów~ÎA'D[=ífîsŸSo_'2[n·ºö{1ýQZy¥œuÌÄêºÄüM˜]Ú§‘¹dåGfÓþ³&÷$xŒÆþS¤ûeÙ¯É9ht‡• 1š{†øÂÞÑKmce‘˜Éé}¡¬§æð£Ñ0!Õݧ §Æ)ö-Ý·.ö–Ì¥¡ »\–‡Y|³\ö  ¬ÎÒÿ˜eâNXgÈt™§…ó¹-F㘃›d(û¥A˜¤èÚä¼Ô£QwÊ•=à-gzÊîy¾#%é¡viELÅ-(P 6 ê ºH¤-Ø£k‰–Dâ$`"\jAÙ¯*ÒÆÄ¥ëi3X?Ââ7ùTx±‡âÀÅDË t6Ðü± ¼Ò<ÿÛ|`ëû]R œµ PCVo{‡]ßhÙ„U`{Hp¢™¸É RÊ…LYV2Õ_=æ\µÞ$Ò!h Î \iyöš#ŽËQ{¯ñþ©–47þþ¡u}Xd²™ÓBÕïÕD‹ ÔE&ûG.ÈÖ6ß̉6­ç—åm8ÒØß2iò>£IpŸ\šZ²dê·ôVàñ…‘R̶ß'ŒÄÙÆÐÊ´S1JHœ¾ýÈ%Üe*¯½«ŠØÂ“b%5FÚýd6irçâD6íA¦0µ0êFjz‰„åctŸ›†»$÷—˜· ¤ü°Û§6ª¢óè¼b:ï“FƒÒ•Þ WFž#;ÍðPù%¯$Â03vº¥6÷£IècKV'íõ\ä¥G&Ù«W8¾[3ÔZ–Ò>ƒc8 ’wZHvšZ‘­üøŽ— ÇUã;q⢚‰ü ô¤ß8ÝïEj"}Ü©,ž’’°¢¹ÂLÒw,Òfw4ïŠæ-+Ö…Y;+°¾xΑ…,„c o³õà÷KÜY>ÄætªxÅ-u&oëy÷pÍA¡åÆ28e›—Çó4.ª: —/ãk_ÑNéãWP£ü®«=œ/n]Ïí W|úm’­²êâLp÷¢–oFs’…î¾J i ÒÓ$ŸÖ¦| }»Ë: pàÆ íË€1­”*Ýwt%Û‘1üEžÉ7 ß±ý|ðDY>s~jù.᎙ZM‚ot4Ø*ÒžýÚèã‘Ç ßt¸·zîGéÓZèT®¶7¾ts˸²yóµeh"Ú+™{©L¯v:¢)‡è²=—ž-¢†cU&X=e'W»“é€(Õ˜•û˜â3™ëÕ"=ÿ×§¸¹¦Õó!©¶À¸ãÂ!^²É‰ÜÎêvªì£ü±>4h¨Ñ n,”r/)Æ«Éó2%aÇÏêcq5—Ä{lßÙ }:#O–šÊ¦þi{¶uÂM⪥¹¿ ˆ¹_µtùŸã6TìW&½†„«OÊFÆÈFcŸð•ýp"¼ò@Aí-$@\x­I ‹Ã˹tå~`úÂv¶áSã!ƒšÌÙÀŽDH$pêè–B7ÆgZÞ‚pp±Òä(„ú->åŠÜq†ÃÀì3Sx<0!@ß,›¹tG„̬|þ[Ð=-ŸXÿ}/c36Õ @î(ñ;ð_óo ï´{BK’gh}Gï›òåA9¸BýiW¸"¢ü{=/ß1†$þ!,:ˆdt‰%r$/žk”s¼Í'ÔÁȇñè–ÂML¼³º$7Ðb¹. ŠÂGÞzŒí¹ØnT0šÕÉõ¶)¬ Áf”"AJÓ-Åñ8=Ti¼wcPÎ ô:Uà.œØ!!ýsì£ç5ÝÂÝ£å@hÚLÍWnƒIPjíR˜à­ß©'q\„¬åÑ‹0ÀæÁýç1¼ãTÃz Ë:/Ô¯À²(˜á/šm ã=É£JøçG}ˆœ¾z ÞËó»Û‰nŠ åÊ,¿fk@Q‚jX—â²yôŽ÷\’¬ê±­Vsh±£@¡,_àaƒv0l¯Sœ1K¿D]±9%ÜûÌ'¤ÏÌIÙF¨öYšer¾ÔÜ ‚ëÝk ¢†ÚèpÝMÖBÑV!3^¢ß›Ÿµ2&¬Èƨíã¦uwzîwc+?(ÁN£‡\ú›áþüáæÕ9Üý|®î aª‹H?ÓÑÚhè°ždƒ‚ï.÷;(ˆD- RÚó„‘QÛÓhvz¾ˆ‰µhSV„î`n*¯8m–×QaÉG&kùžºR—¹È}Ÿû–Ðe²×ÖÊ»ïõÞÌSƒª/Z˜l“Í‚–üLÖ(WƒÀ[¡OÜ *Ù¦*ºq·S¢²UÆA5½NwéfªîÞtKv¬éì©fQ"1†ú,XÝ× þQùxq§K° « ÷Æ]v¥³ÃðþµcÑóÇÎi´ª¥#•š@ׯza)\ŽóÄÎSgC;ŸÀü×– 3ÒDZáà^<ê.Û‡•œ¬*Ån”tRûÛü'^-el¸~w(^gŽäˆ&ê§`ø¦…b Š0JãS)–ÜÄøÞš‘øÑ@ÎdG¦×•¹æT…Ð#V_WRÒ˜ÿ?·'hËOÒÒåVyS¿H€· (¦Ÿ#4ü0øjí5å>j/~ÙÍ]àƒ»@e»6hd Zß-3û\ˆu‘ÝÔðÑM!ó³Œzû˜„N*Óð/³ÑH®3ßé>—°ì ¥P×´Zpïë˜Ä/úJµYŒ(o|Éâñ'Iâÿq¯Ž×o­„ßc]ѽåÚ$–´kéáêjú‘Õ1*ö1ú"üÆTî:\{x\drÌ ‘ûÎ ¼sn#ðÅ]¤ÆS8Ùãõü/`e›)žlòM¡‹{L8Ø{fÛ/ÎÏ„1G3ÚÄ1XÞâäÏD‹Ë^ÙMÀ»+o.ÐÊùG)Ç‚ÝEwœ=ü¯0P‘ÙC鯙×¼&VÉäWySÒBOÇùŒÈ ¶é)J%¨âsÝø›ÃN÷|zyxù i;Ÿ¼T_ÏXô\ÏÕ e‘Öû!E†VåÈR¸@f!¯óÆý7¿ãLƒo1áBlþfØðs$uÚ³WÛ±r–‡ Lbõ­rÇ…8TwÔ5šô‘w´îÓÎå>¯£áÑ‚À‘“8W@lÕäÈ;ŽíM7ÃÙ/™gôÂ/Þ^ †ëëôš¬^ξÂwšwŒÎöd¯4Ã¥kŸêâ;úÒóaŠuöà7krË5Óup?}pN¢ü¯3!žìÜÀÀÓ•ÅBXÌŹÿ-\rŸ"Sk!Öm³LUY~˜z^é ¤ö'x>úÂ4N¼ÐòÒ#™!â§±wÑx¯#·ä¬ƒѺ¹:cÌ…ÜÆUyû'¼0]ÞÌeñF{·×Ç"DDÖ»Œæþ¬üš÷5Üý®?Þ…8÷•© u{ž]2z'Ÿp;éDQáQá#üÍÁ þD] æÕõú[Sá§éBÎo÷qg"Y9aÚ]bVB¨ÅÕIIº–;ò»}üš¹´iZ(&[®>aÇ‚²7ˇŒGmÒw®¿›Æéêå¸g%žî1Áo ž¤ü®ÂÕ×»}YeICØ0¨¸Žú…0m>Ή n¬_€¸+K¨zª¸ÒV4ØäϤ' GÎÅëñÍÛš·èÁ+©Kõ²ñ=:Ñ0ªhß¶fG`”Ý-sê&õ¹EŒI…iÑMnKX’à ‚V™›PÚŸ…NyÚ·^vÕYt·=ƨ_ÈŒ&ŽH¹Š¡E¥Þ(¡fÙ|{–O‘9šõ÷0+Y›žSá“°¯ð´ö—a’®n]ÔCóà xÖCë'Ñ ºET;‡m¿l*ηÎk²äA©¹õ\u˜Ì»±ÇtÔoë+v×ëþ 6o[^“~£ü¯››šîgÍÙ){Y„Qù}¥'U¢V2ÿ¾¶O¤“.¤ %_K›,í ;çwDÁ‰Ç ¢TBg\t¼fšÊ³DmÃ5ªÿGÂJÅX¸_©ÐÐ2B¿Ÿ»[ðô×¢M¥’Y0Ê«`ñx]–2æ/:ËCËõÑ‚7O8&ëÒŒÂW ”‘í<׃° oµJS¹±¶ºTu3·u8©˜h>h¿1–ÝʆæVÿ¬òœ§T&Ë^Úi¡ÆýgŸ3ÍÎ "Ý«ÅíȾÖË Û³ ýð¹ücâò8µ‰Yƒ )‡Ÿ\êmŠÒð² °Ž6㎢ü‹è>ë’X=Qm¦Æ¶@L|fòÆôÀ‹çmžŠuèçU,SÃf ^‰åB&cy$"ÄÆîWOÈ„  +‹È¢nÔc×UÑOÓ¤BìAáêÞÄ~ÑhÄ ƒÌ3Öá¡Ñ•pä‡Ýp%Œ yÈ„¤ÇHT‹1¬û†øV5e| å¹ãÊ^ËaÜŒ–‚WåGËZ>tzž ›¿müK95µEƒÉæÏЃóÔM^µ÷¢çØZØf #vzÏBL÷÷¬ƒéQZ/§+ªHS1ž-'B‰ê©MÇ"ƒ2eszÞæ„à$WŠÔ"ã n"xGGùÇìQ;ï#9]Î58„Ì‹Lµ,ãê² 8$”G†ˆRqáí{žpãB´±#E WÀ†sÛž;Üo·ãÍRb“Z L×Z¢´‰1 O`¼¹Ñ½"ÒŽ¤ìUbXº9™0æFuñÑciâioE\EH=2UüXKTEÀTÙÎ׃úì=ztîøq‰ãoUI4XΪ=–xÑ‘ÆÇ§HÆE*h(˜H¬Þ1g Rk–#ŽË(­–uûÂUgÉêSåH®yUéÅbS•ÉW,<¯T„o*J;é^Þx ¦³Ö8.³MiÕ¾a– ÞŸ!º61¼å±~Ÿ¹ÿ »¯¡.« Q^’+Þ?hà]ÇõM»¯ŸcŽêG19 U™ eíÂf¤^ ÞŸY& WpãÎû\@©É¥õòqçv&m”릥N~ûý§sÊLs"+ndY0nNP8È0O…òkz£¿6®fŠ/(Äí&; ÷D䡫ŹCšü‰êöa~Ñÿ€ïoyLDÞîN†ñ¦[»†º}¿” IyüM2ˆw_!“Q܌դ9ÝW:Í5þ3GþnYŒdÚOçÜ;•É‹:1±ÒçýÇöù`1†ùöº›ãì–d¡Ú Ó]„5¡«11ë‡Ór,hÅÝtº¬„޽«øjáSÜròU¥Xõ£ôû!4À\|¯ç^æLÂ@A‡ Á— #žÍ Rü×8òê—çÍÀ_ìÄ: +’Θ 2‰ŽG:4Ê8ì3‹HÇ2K2ÀNä´»ÊÊ“~“{W\¾‘: 6OžîŸáŒö±1X’V]aF¡¤,¥}Ò"Ö<"7qý„R΃⇌ú=²¿ºüL´g”¼«»E<ð™Æin¾¬’7Ôoæ±#P÷+’´‡ž[8[òÆ¿¨[½x©i­Ýs5§CKCw-T3žuèÚ23îš>Ü9X~vY¯úQRîìp܃Vº2zoÙ–('(« 1¾Í9 pÑ Ÿe\"ÛœZ†—ù¤€ll?¶gMâ]‰®l½x汇t… ‹£ F–íüêe›ÔѰ3qˆøkÆû­,ï Ç ôå½oXixŸ²´Ìj=õpV1pÞŠ½fîBÉû.qÃkÉvÔÿ©UþHHêrxžøþ`}À9&Q«Vh\^ò_!^Üü®Š¤úæ“Ds¿9SòtÿŠí+4‰^û=©•³0±gg@W¹L¤Îj¤ÓZá’˜O«Ô”&©N7Ã2g耢5¿ËDrm p8ó‹¼!¦uÊ…Ö)Ф³zº®8l¢Á¹;õ)²5ý±Rm‚‘$Æíñ©4³ÉcpïGñóyëp_„´ÞµþUmž¬Áëœê®ŸÅž™@_x,p:/ [¶a#6çÑÛ†"‡ï­k 49}€sUþ@sFì X^³ç]p_™ûœÊ«.•L-Í<D|H‚¯|xA@‚㸛ѱ­?d~ãTQÚãü± „N윶YYÄ!ƒ,›Í=&H“)» +*ýËÙC4¸-€žž‰óª¦£,]ØlE1o§éSL)&|ù·iˆî½½Iäñÿ«æã´å´ñªš³—F¡€ ix†?$J¹ ¸¤°sé5hA0ÌÂÒ¶Yá2§«­ó$÷!JÊ.(î°R–Yc`÷4BGOÊZpt¾ú °‚®˜™ïËR—áµ/7_/ó%ñéªÓªÿã@(ª^Dñ Ý…èƒ[š[;îÒKß›Ák­ä2ôVqFAžÛáLË¥‘®Š9F] $äü«>°ò¬¸¿Æd¿ŠÝò‚ȸ  Õ ïu‚Ò×ÊPŒ” œ´ø°³hzÕÝ“y¼¯ç&;å{d”ú•¾ïÚrp—KÞ½–O2vVÓ°€Èȇ]Yê zgL<\JI‘Z¼¾ÆÔ]¿Tn&§¡1j«:ëHúï{ôŽIÛÞÉ[õµø@Ðïþ.ëýšpÃ׌áòm£ '~‡Iˈ“–òˆ00Ñru¬Èt´˜rí(Þu¹õì`ý‘¡•=¥*‹*†Ó®…|Ìv7û†E£f°U¶i×—±¼íËóÿÀ ,> …°gâ>vf ‰>¾åü|›š5È/¦x(0±C"¿ºZ7±RôÄ?r5_©ú3ÕzâÌ}vHú·Ï&ò”$)âÒ`¦ iäçý 3¥VÞuS›ŒŽvôS€ TCüY³Ì‰0a7¹—²À»üeµtèÉÛ2{Ë–ªÈЬŽ'Ú·M®$êoŠ–ÒÒwêb‹EŠRÍÑžµ¨aÑÍ´¡Ô6Z[™«°ÒJ*Èl*K¬Ž¥L¤z¢"f*©x¶ ó·ì“ ¤Í®RÄô ÅÛX 1¡ìrb¡ñƒ¸ñvbã@9‹²Lœ|æK\ãÍTã¿A)ß“ [À@¨q§¹º ×—ÄIH®%,¥$´ÆTøTÙ¹ñ”o¤ä„ÍS‚Ȳˆ0!1ø<€ ¦‰_Úô™mö´.üŠ+Ph‚,aÙåv_ž|ü6_Ð)dV Š´œÙK70ß]Ú7™t2ÐSC¢æR8(g=Í– ý3®ˆ¤ÿ©Æ´þQW¥zÄrùë” ¦–ðÄ‚lŽ”D £4­%H§”D¾Pj‚5Ó²Z¤ b'1÷%´â»-[ðч>OË‘ŸŽàº!Lk–Ë3Fy È…Çj«èOÑX9 ¥¸H“·°’Ôè;Ÿ›´×›fé¡â£/ö ©Ep¬‘†2=F=œc’Cw éå©ÿ BNžéÒ˜Ÿ›…"@62Ò>“ÆÑf0$ýâÊð$¨wX:ûêðFsŸüNN\ít×Séik«©–”Ü>ȼÿAÛæå¨^ÇøùXÓ¬\¨ÜÞ‹èè.N—É⼯jái°—ÝïŠí¿ÖáШÿºlZV˜ÛY•pæE²%Õ—Tªçõîƒû¤Önl€—ôÂÏN}â×b÷¯v-ØõÎ@v§ú¦Uàªt€ÔÔ2aïÙë ›¨6™üê^ ä¿öB˜xüÁAº%Ãûåu„ÀH‰½6N†YñLaàíªî™YŒª*n,¯o*ë1͘OIƒ~á\Ò¯vC£ *"üMw×ï‰Ý„2¯ƒiÄÐW_à¦:ðµ,ê„ÚjÜJ¸pœÞš½ñ\.SÈSsßSì%È(®y×òô`è{hÍôŒ»¢Ô@+Á’ÈëŽ#"A¿×ˆ£=EÀ¤¶­f6Æ,¯m0ÚúïœuÜÍQªé°Öþä+œé"n7ñù>Ôø ôÓf~7Öu"}ŠÞËï¡¢à/S•¶‰/eI=šŒIÇØÊ;ÌŠ õÔšý+¨x²‡ ÙN`:hªYž(ù$Y¥x·ëÊ´;A³ìŠé¹¾¹Ä|È㥎ÊI±eB0ü¯/¡þ@ÛHfÈ4L×43WA§Öt#:â…"ü/ì£ÐÝóÃÂùÍg¶Ëºt»t,DÀN¼˜¥à¨< ccÈr„×KH€cý/DXßmMd‚íõæ02ž½Vk3û“8Ëm<î Ë6HâØOÐÄnZ¾ë¦Žb¬!6ÒbX”hãå›3¤•ðŸ˜Ô3{n汈n‡|¦ÿñ¹ñ¨s®üÛbJi™› Ò?õ»…KE &döA¹™Zoy—žšé". qÛSj@§ó*÷BBÙFV6Ù_nþÝÅìî¡®÷Vaõ‚{R7œdü|“UH‰×‡\˜¼¡OHçEÄÌ äÈ·ˆ1¥g¨ `F¿áoÊTìÏú 4]ÞsÕÏÇÊ–a$Vï«Åeæ]À’ %D˜Í‰j“¨Ùû5oƒ,)öl~䳨5<ƒnÙö–^Ü@œ0x¢™ä`6®^:MhAæ‡pe³yÊÊìg»Aum{ùça{IÇŸ0­Þ£SÊ>n$©£F¬Û©µv‹S÷dq±þåR÷Ø—Ý+ÑE™Ž%ŠåU±ÛG ýü1ëß‹ÑÒ¢p\hcï”6•ÁÁ² P$rh´ÛÌ>µ@¨)J1uf⊬š­(¬'2Ý(ü_¤‡¥Ù±Æ ÷·Jëìf¸Né«»Ú—8Ðç{9|g…Å—'Œº¥¡©$¬E˜¸§Ù¡¶cëÇÁƒý1ŸD`_º Lg•ßÊ.gNu{hOSšôuô¦3^믲–÷¿ä]ü.ývU\ÝÀ¼pxº6Á[T›A a×W+oTé‹ÓÌÜ¥»ixNÚÿ ‘u–»žŠ·BZß§ÍGqï2ÖÌ_†aˆ^ó0ãƒE¼ÁD¬ÐåÌ oçìBš›ú¤ –jøƒ´ c²éæÛòÛçHùùwjü6‹ ¯ß‹ž*\ý›çÅ\“{e¿×mßÙçÅê ,Ö,#ƒÓ²’ñÖDø<>1"§’ÞŒO¤ðÁºdæ_w‹MјÙÓ ]`n·Á“–*-vpÉ‹²g4¨y¬Èª‚=hû+?Èœ½GذîÒ½LTm¶Bûð·O^áÆC‰úVó«Äi!lŒí§ñØZØ|Ú™a?¸Ü@="ûÒ+ý‡Ù$ü.š¶_#Å\¸ãc±•†;‹dT~È6[ÞÊÖN–ÕÆHBºp¨Œ’™µ™ßåWœð 3ÕÕîÿ3ô弯Z '¼JròV/ g¹îqØ×{1k ¿òLƒjJ…Ô%\ŒíTÃÞ]÷Wý,œßK†dY^4Lh°Ž·kK7 ”îXMBœI„¥~Jܶ*ÉÐ"‡5… ô:–ñß+ÄPH•N¸½eèp¬-¬ Ûr%”ûí³¹Êéùá4ÊÜM¿?D¬«5“Á>‚ÎÚäÞ9Æw¿»ÚKœn©2ŠB3©ØÒ0V›\—¿¨%åÙ¹_.5¨€î¡~Äu°‰Ï–ÐüL㟯€‰¤üBÒ,"EèñŒñëÎ[B&ÁWá}^~s¹²ôc¯ÀšânÞóöKiž—=õ–!) Õ}$¹¨®Dùö¶ý²´N[2ªv˜#U€ÑyÈ´]t7À ‡Œðsw'oÏœÖv¿m¹Ÿ2$?¬‘wè‡sµDx©tF&àŠÙ|±…É!óä¥gk·;ÓÜ.ËBxÉ/Ž†Ñ¶Ø#ÛpkÝ×$*”Òs¸;p‚ `õ’>£Cæd&á@i?äS }ͤä{SÞî§y5ãœN°1vîâ”O¥\‡ËKÖ¶uc]ÁÐä›#æÓ(lu“ÊØ§èÝÄü­Ö…X¨DG*#:n nv?ýÝ7cCÑÉ«'ëXm糪µ€=²¸½éÎö“¨n8É8V9Ý#‚vô¹QS(Ñ]u/á‚#Ú÷ƒ8‹[8òYÕŸð²PcC${[o)¹!â®ö&¿ŸrØÙ1;µ@mÏN¯_©Ã:<¨y–á^ò”LPË}ÓAM­§üÞW»iê¶³éê—¸ý2aó Ù"::–0§Lš9 ÌÁп¥Q~¢|;Ó¿>e\‰ÉÂ…¤‡{y§®F¦ý1¸€Ř N^U«Ë®Š2u”³)Ò);ÓÒ C+˜ùle18£Š÷.–È¥ü¯+´É¢‰Œ\7ùÌ“ç©ÛQOŠ÷ÈücÃñSYÚ¼öâ™|2ÇQêÇŽs¼æ†ºø{V:¢ƒ&M¨×ÜsÙîYí.¥š%R¥Vg"C}q¬e üœ¸æV9±Øí¿;{eÅ2ÖÀ`O.6n©˜ U⇂Û]k|IôYã[Á‰hûÈÜŠeÜ#RÿÁ–g74·ûõkï(ônÝ@רM¢å ›.¬ÖÙó;%?×]ΖÄ-ñÈ+zsÔX?Ç F{ ¨K†#ü«Wbg§jðõsxÐþIí ™Sé¯üT‰]ƽc3aÈ)‚t¸D1—±6Þ óDÛËPÀt†á[t‰=µË„öÞ\“Îø"¢+Ëíýö'–Ü´%ù’ë÷Q÷QÊŒîÅ}àKÞ:Í9( /¡ G¹YŸXÃÀ%åSaný3ôiˆ+Œ9…Ô mÍ‹\ùŒ ¶1™‰I7ÖéþOÈål={ IÆønóö!ªëä%*>½Fm§#‘ílØ[¼ÐýzQÀòЬ»*ëJfkpyS¦Û†‹…‰n$W¨Ã3ËZþæËì¡öðW€èµä‰Q‘Õëø•3PŒÝžµÿR@ö>ÉŒ¤øÚe'iÕÓchs N3ûÈ1z°8 ¶÷Ÿ¸©Q ›Œ[bò!#ÀÕ`ö—åSÖS¾½üL´e0–ùü|kúÝgH¥”Ìôðz¦ˆ•š{S˜d ÀcÚ›‚ÒHDhWÁºøè©ûUŒ«6 ÕñÉ“É Üºÿ H¢&:–H}Šº¥xÔ…GV(¿‡r= +sˆú²Þ¬k0§gDèÉ;åœlæ) Z$»ÿôM;–fo\éùð±‚þ§?„á&EˆÑmæÛ“Iû©oQÕÞrL¹åÒ2j¤1d*}­U0“.hÈ^£¤i@h`#$¯…¯Wl¬îCs-É?°› €E£\Ð ă0Ý*…——?_ ËÓL93îüLÖœ¥šœös+»v¥b¹êº20èÅóh.“ÔŠŠä#ÇtýeÔ5ÔÇ$aMº9C£´³tÿ}»î+|‡gWk»;”,úíPu™ÓÐ3‹€—;j{SŸî^õ Ê9¿DÐÑbEiçw¾rPdSö^L^IZø<Þ˜÷nË€NÑ'c/é¬túN§¾ÅdÇq7ed²»Õ]zqë¡L»¨Ý…3A¨ZŽ`µWaÆ¡÷¹’ЂrŸš~„Š&`áωráà2ƒo†uø¹<´œ^ën 4ƒé-*³¦®ãû/ 8`Cï üMjšæµIÐ;´ù^–z¸²I‘š«iB‰9„Í÷ή“ÐU!šz@Ê–¯¸™K®N²¶ Á4äDƒz…edЧÃñ~ õ#Ò¦Lë!sæ½D{ «ÅÝyÄ85¾ Åϵ–…”–]£†À±àß¾Ã/еçðEy±óá=OO€„Yà>ýlJ˜Ô_ƒ1&8Ã0É„=Z§ÐãBƃq\ÒfÔLVÒM‰ìëÌGÁ/®8å]ùRoÎT¤«±1ò ! ÈC ~ž²”†n&G®çMëÆt`}vªÒ|NüL&—ü1„uÂUM<¡xr9 £E µž5g¤À‹J_)‘š F%5ìÔ5@離M¨nÂ7Šu$áZ ªÃ !Ò…‡* ¬Qf»USVòs®í†—Y÷é:]Ð’>pÞ[Y«Ïºøé<) Õˆ÷Ñîï`”:¾ŒñëÑÝv@åk¢-„Wyx 7¥3¸’okü] @Œ˜o_„³Djù:ç•í@?L+!†]¦=8fÁÑøJÈT|‘üâ/Ëp™}hè)±›ô¨¶äza|6àûM5ª_×"ª†ÿ[¤ÚFêWŒúÎäüLµdâ)°(¢eWúa—ÞWæ¨ÕïØÌ Ëy"0Š`%<ïÂÇ™jÎÌb¡_ý1KoC ÃñÒ…dÚ‹Z‹ˆÿtx¡ýn ËçÞiasÉ}ì,Ö¿?ÎqTTѦ?Î+áÓhÍÐÓ¥J-ðoÄ:}@Ø ”žðн͹ ™³i Caa=3Øë[„¾wŸóÃU>ñç/àÄþ2&’Ê2 áqÍNÐ<Z„Û¾*Ú ÿ„ú)­ë~Ö{ˆ$i•Ž2GS-ü·4ò÷HÞ £lqŒÚl.QÄI€?6FãxüKOŸ í½°Ñ„:ÊÙAú:d‹–lM pkê ù‘2xä“€»¿Ûmu…?ìi+ÅKh$KS¥u[ö#\a}RÀH÷!ûR¥jRûŸÀa›²§ŽÝ®è…Á¾ŽµA0Á3[XØ Aù©näŽ1(Z,þS9☂éuúÉëexÊ[%Ï…UÂxüƒôøšÛÀñÒšhƒ9ž¡>Z„ŸñmIJêR1çYÍî‘r±É‹ùKq 8…ãfÐ3ÌJž…Žnõ}EוF´Ãý çg 8rŒõd«öØÆPïÀVZêóÊõm a¾~Åbݱü6¡fÅ.F |ºmSÓŠ%:Ššñ •4åÞ3 X¦šž¥ïQŸ¤.S¥¥UE>ÁvûÈéÃW”gŠU½JX“d°Ø1d9ú®[ È"ëýl•PRÈAƒ3 œ Üå Ûq¯?6Š#x~>Ÿ¿”P׬ñÇ>„ÀÙ'~—¢@/0Æ,kÜú€nì ·Î§Uç±± ÝET0ÒCó‚öµÍrpÈ›Cý§ÃJàÁ`I,_»-r§JIdo ‰ÙN%L k}KÚ·Ô–^÷’ϤÀ1ˆZ (C>¿v#K·¬síhÝåüIú ¦¨;—f—¥0rxošÅj½*C’~YAODÄŽô-î¹ ‘}ùáÛ˜¤&Ì Ïã9yÒÙ,µÿøÓV¤{ÀÒú^!š!çÿ#_¡PÊ óסq¤ìδ IËÁ_;]ØgMÜâ1+Š kg²¼¿öý¬ê¢Ptuãf$ø­dÓ¨¹|‡íÈ;È;Ã%"J«6"¯²¿Û×\Àäk 2û¯ÖêG Ìo{¯ynÃÖŽ¸]Ø~'®Ï­Ôo´¥ —†©±öð’Š÷{¤™‰ÜKHs0ŠÈ;2ü.8i·§ê„!Àƒð&m‚[ÔWbáG†¬–î‹ÜI01ìðv¡Ú¡µ]¬~.I¤‚Ù.sJ€ï‰g39IÞÌPp½w´½PxO'ÏîX˜`ÈÃë–ßÝ1X.–ì8­ÃÀ54šg*Ž:–ÁR/ü“CG­§g5J|qªeA­¹ZF{Âø¤è¿~?¨ŽÌTõg19.$Ä,Ó;h¨i ~ýÏÆoÕáIš¨bwáîGíµ}þŽ2§uú0õ¨ˆFß¼ÉÉÀCAiswŒu‹72 µ˜`„q… ¸zÓü¯2 ü{êlREå; õ\Ésh÷dÈ‘i_Ãlƒ„1íóW`üÛBfD‘ yœÙã¹¶îÙŒ92F§9 މi×Ì8À1W„±çdÖ’¤Üù–s.láíC546Û{ßíMJz"©ƒ×®DÈÒ C6F6+OæÿÐàW›ÏRgó)79r&“Òâ\Á­Óñ¡}¼¿nØ^•‰Êè*9×XÂ3Ÿí%¬Ž\·ƒ–ÌG-ÚPvn4wCÈÛ…„*˜¨J*,N“ü0_uiⓃZ$,)|^Õ㦯ό/¹v*¤êæ•Äý8¤B*W!m\¹ñ-Áv#ÆÍGÒœâSêÙ¥( l·ÓѶ”F!·E~JÑxDÐj©ÿ|š(ÐðÁ\~åeRmL£ð’ìþf›Iemv*BùÈ’UÚ Çuå‘Aõüü[)§P Z!‘²ÄÛ€ùþãXĪ!“¨ôønùZž,$¶?{ŒìBSÌ•m¡Ñ }ø+^ÝõÉŠ÷Ü}Jÿ…5¯|³÷õÝ×;~ÔCòÜ)£=åž—Æ5ùPžd¹hñs|ˆJ£ÐešÄàA²1eüMwÍ0*ekv¢¿ã€º 1~è‘‘Ôñs+û ©û¤PøžsP¢cp’\ïqÍŽ…@©Dùíp¤%ñLµulîl¤²e®ˆ’á¦s‰¼ [ô©^ñÐQ/`6ØÔ‹ñA0G[ uI…f´ ÐX0#m“ößB†¤Ô›•n§£4/&Q°;oÈ}«¬A5f÷ÕY{ˆRW‡€ÕæmÝËbTû©sd‰¡¸:W4yÈû~·j\•˜Æ-¥/€b±<€–W{«½ã/VÚOâ/oA%r:ÚJ?rÄw ¿Š¥p\r[§Å|øiè8-ÊdÒ'd‰ŽB¾½²ü|®49P’¢¾>—à¸]ŽÿŽ*,„‹VéXüŠ$õbžPhO½jòøÚóí’?ñ±;|Iü=Qp 𨑙Øè`l ,i1ÕcèYe⮺•P×!¸ã8­˜ªs¥mnɆ§¼cü Ø"ˆîhµ”ƒW¦–f–¤e&>„¼«®J8ù\¿p¯‹Y§ï_Þ39ÔtAôôÞ}+[Öãfü¯{ÝüåÛºæå¯ë$ìÝ=Ôk]ZƒÝl_[Š-’Å¢\›0ÃtÏã]ò}Çk#¥6oòŸõ(‚î‡0dЬ“íàÕù£l8Ä}_o®ÐÇ'V±Á§RgS‘DüµžMkÛm¨d >®Ò˜yW‘)¶QÒè»âcîÛ& ý€ã»oR¾kÙ¡þøo°¦#Ö{HñËÓ l KHœv²ÅÕ¹÷ØÆ˜Ðsù38tp7?ÄóÂö7“‚¨Ð_L‰ŽfcZä¬Ն±խ>sJ¼èÉa‡S²tÍ ‘tÀTì–©d>|iω8À‡Ä‚Ó½K½=¬(¡.iSü\>é4­µK«~ÅmÜÍèâBSÎÂÍuÞ@üM2‰gB¾W;+ônÕ>„„\T<ɶòy˜›§|…9T舗ú=ø×¯fËЕêlÿV ÛÝõmH2ŒnçЊË÷@*ñŽò¸~ÚŒ?«sšÖïùÝÓËíHÿ6š{²´¦œ$L¥­zôRñ,ØÉOM=ó¾*²êC*I.ûd2z;Á10õ–ëøˆA0Þ{©Ÿà¦oö&b„Gɨà™2Ñ’£ÇÌI Ê#5”3bn’%º>IE[üYÖ.’¾ªÅ§ãCÑ@>]œf¾#}£¯.-ÈNÿIÁÛÁ¤CÇ;¡Ÿ¿'ån'8;œMïD€ .¸eÏ]Ùü¯5*; ¨4¸ }»Ä{9ºÄç¯À «O¨‘]VÜ·èSàžBþ³?íns¹Y‹ç?ÕË_þ»£ë¼«À:„ša¹Íð£Pgþý1ò ž•xˆ&&ÉÍV;–lqögNUwüœ| —aaÒ–¬;¯t=Õ¸I„¼wÌC†åÀû”¼R¨­ý á‰šzt50ŸEº½ÿ9½5Tæ¥M¯ïŠ3:É›J0‹gÑwÇdwtе Ç{)QOk­^q¨)Ä®(Ny‡ ¸ Aµ«AR±ÇÒõ™§ÉvÍÏßF»L` iuÍ7+i:§$­£ko¢üM4)âÚ–QÄã>;Blp€˜÷Æh”Ò Ç(¼ ¸{×,‡îsÇ7Ûût3x¼Òyn«w1É´oM¦Ía_žø1ÒÕ>~ÑÛpkÉán ‚†¤¦0b=)äâ¤iu¯¯‘¦KCÍwìz,wšXŸåÄzñVÏäÍ0´' ÄÖó뢴°f×3À¢W‰šwˆ{tK9Žt=¿ùÿ”G ]ø?•¯h3fUÛkiK¶` ™rM£œïñ³Ü?ºè ÝÉÕø§Åñ¼¸«C©ôº¿T~ã3˜O°AWˆƒQtêA}dYŽãBËnÛÄè°L$Âdy®ÎõL.„ ü5mfà#5H$1H ÄÅ¥û6v‰Dè¾MPgþw¿q“à4ü‚2>W­‘,àI€x’x»•eØÙCë ¶½MÒ•¾] ëv¤1Ô#ŽR¡bô÷ ݦÛ$œ+Úª°-Dÿ(À¼2ØÕuj"Þãîešõ,èÈÜ5~¼u™Øt¯«J¶$,$[Š×î¬É‰Ü»¥ÆÂå†Þ5îñw^Cµ»Dþ pS5k"@9 *¸&Í—$ ûý&8JðeÑ„ °YDÔäÃ@æ[~ Æ'yàŒO»½ •1âöqOæ‡ÿ‘ߺj)½“XvŽ*\£„ü°Û¨Âû½81ñKëУö˜vŧ“ÓÂJÈRu_h?J jŸ¿¼›!‚ç>üÖï0ð‚îžÛa:GÓâQ‘®%Dþ‚íw½Üé4Z®®"ýfuÛÏ«@ &𻯝w>¶1™¼UsFs—ÖmC7dì%i;…lÀ–¯›¶ýx«î‘J9¢5 ²Õ÷wdFË‹“ØqÉÒ¡·KÚT`Ð]øe>ä×pꂦrÆZH$RO^a[[J«T­5+‘è5posW§~Ö‰A@ïF’$*Ù¢·P§ë RvC¹ð)cV°çWu¦üqtÎ ð’£|âú„ÆžÐeÀSp2 E©íü® aV$H’×ÎaÞûÞºi±`âSÞª°5!ºÅ5¦¨"%NQˆ˜iH€²Uaç¶­8fÏU’†ÝŸÊð=RG\̓&!Ýìª7Àl„2ñ« Qµ¿±Ð âü{=4x²Œ˜Á²± çô »OË»\Pj Æ­J¬¹nU-Ôæ¼\Ž?Ão>HÔñ{‰µZ Ñ7ej­?LYB[ßb;µ•LžvMh<„lù€ Ö›µs ÉPà·xZù;Y°[Æ€0Ã*^ù£} æšqI»¶¼x#È ÑÉ:÷5u>¢6´Ñ˜ÀùK šv%âㇵ€¥NX ­ª½›vA’9„PÆ ú 1‡#²;‹ç=Òf‰ñ+tËtkÿàU¼*¾ :v"‘Eo‘ZüúšÎÙÐéÔÌg›°S¢„°Ô}Îå®™‡¾C2Ù‹bl¥ ,ッss !Ç)ô^£mÝͼá=…pI È@©Ypâ Y:öÌ(x úxû4 ;|Ø´¥Ü˜yÉõ´mÍ2oì[ IV&hb·­dš$²@ jµ$Œ‹zŽ:YǨLhûý Ùûü½ÓÒ‰â¸hßηÀ;ªä{1!õpŸq‹ëá 2;ܺàÛzýE¼\+†5=E8ÔW|²˜ä¯±G¢¹d×­+T R–Êù„ò„©Þ»±“`e™ÜJB¯¯í¦~­·5ަnFÝüM*î€Ó@Sát`DðÒ2aå {r‡'ÍŒ¯×­³hu]~¢l`¦Xû9ß!àˆÔ»mÄë$•XÍ.‹®÷i˜,B]î ñGºfô¿õ²µ†ùWÊç,ý×"/L« ˜¢¶èæÓ$<°—}”“×z|noû€K° ³ù3µgä¢yØ{:¨AB*¯^W48a·¶4ÝEYMbÈ®é+ï2h¸2²ÉXϺ”èø­€)²ä/÷µd™'² æë¯’!/ÅYÎ_x&ÔB»þiÃíÿLÙ‘ÿ$‡Û>yÏ.Ðê.ÈŒçgÕpVg¶Ï~CžØ ýY –NxO2h˜ªðºÖÎJ1•QŠöü.‹Ú ­×C÷JÚ©Q«Z ¡91´g×YÄc±«âäÂT)Ô.›c.y}íH4•Aã_¦öö2?„áQñRWvGÄ¿ó¸AX:"6…c®*~Å‘qWrJWT˜ Åû"ÑÔýdõÌž-^é¥2ÂG‹ÛlOå‰öRpÃS¨w½›kÝI½DLžå”… ÇàÇÒý h¹`Zo%xfQwfârÑš_þ–§· ŽÄö!ÌW¥ó,7(™,†ìÚt¼Y’øÃa¸oРÛa•šŸX¤ <ÏÖÍŽRæÚ ýÊ~#×a_Âk µ‡v2në ³Æ&²×DXVþüLؘ4è4·°x,;Ô9§1 £™3{øìžûÐómˆð §ýת#2‹©”tqâRÄb¦‹vPØU.mñäë9BIIõù±tL5#âêÊ æÓQcN8Ÿsº¢|c„‰ø Fö8­Uªw¹ í»£­øxº°‰7r½àŠ» Ò­oS·®)5‡¬<›ùÓαâÀ<è9Ç(S·u·ºˆ 7•“êÊp*ËÁjúÈ|H %׊“â´MÑá¼FžÅ“ê¤ü)sï©Zª¼å…!ÏÁ9·Íé01líªˆÞ‘eç×wwRÓ“5à+mòSŽd“Aˆ|XüÙ@ˆfË¥}öˆ€¤„«\l?4†ä™õƒ Hj/—}S*sæ´çu‹µ”MÑÈ0¨rE^evmD7ïáYÎW;Á©fþÏ) ÕÚ»-çy.Ôý'®S~Þá®ÞmŠ,È[TJìo¨€µûÅb^äeO@h­<)Ü¿£À”ï½ê0å…Ûê]ÜH~«{zÝ{4on~!£¸…‰LÎ=ާ=$&Â! 'Ç…âg?ŽØ÷2ÿt°?²ppAº°ê‚ÐÕWÕIö$(u ~1>l¦JC“81¥:ݦzðÒã‡bï³5ç±-åùŸ*éüÛ¼%L02äi\€ÕŒgG0°BH@d_Ç&މàîË©pB(mS|&C.Û@ÔVyÊШÝpïmÏ'½ Ûï4ÑÌö÷Ö®™~Dv»ý¸ª;žRöB’ß(Ÿ<ƒnMŠ¡Žõ#GÿÕîO“5Þb“jíî³5ÐDx%!òkÖªžØe>$GR•7aŒ,ÀÝz,A™"Zj3¨„¦¿>-â4å²~ëÂ`,ÒOüùN%‹—¨i刊•ÒHIVáT÷1Ãæ©Ý ³Ð©Y ðB@‡@™H3++v³“6Úaú]ãÊ$³û]{b…Jkf¾ZâçOœárRÙ6~|/63˜àÊæü0"Ѹ»±Û~¯7 Oñ–_¹¡+pÑYéÌJɇE#ª66Äc Y?¿7“"rÈ}º,µl¼ƒXl3†°eS'õ¡—Yv¡JJvÓDFoOl¨ ÏÞ*ÈUwF`Ö×(-?‹& ±5ý`Y¦!Ô`i³w®™„ñ²ð;Ð?c]C[iCÒìAÐ+>¼²ž:Ü>3r—ê€jºÌ…­«š÷i4jË‚ ° VÀ${‰[°~¾)ÉqdT•~fb¤â¬Ëb¦d55Fû˜uNå¼5ep.ÀF'ÃÎøA)ÄÕ‹ …Îι¹ÄWÛ¿sи j!gÔÔ‰oªkJÞTøÓd][ü‹é!x dVÚ•Å+O9ßo˜ °ŒUKQ¬Iõ¤`^q)«c†ñôb–ì%Nk˜üäÑgüÿúBÜîܳz{)‡Ðµ]‘Ó ß4öšŒÇ.¥Æ5¡J¬üÆ/Þw‹°âèTÁzÿÊ2HŠ”p¥ä­ b«"êŽ"XI#—>iZnc?Bv@“¹ëµ+PôKøuÜÏ´óù6¾òÚŠ:çDþ5cH….Ó#rž„4Ó>HÑC@÷bSñ9O‚¸.ÿv}f©º…ûØ•aµã¨Ø ÿ(”öЧìè-·ípŸáSC½†Ë²FÍ¢qöûXÛj¿&;ùŠhé&žË¦g}À˜HFñoDì7TUÔì›;Èœó,´‹€ö¦¼$emá'ßM}ôžÛÝAÏ{»Â 4nÔ¡aTT#d`©ãÙ×¼:r³“@€>ËŠÊÇ±Ä NÍ×-ÜÐþ"0˜o{$ئ¾H×*!+6rFž/º]HBéùh&xŠQ–Aÿ9š¾¥Ù¶¿@®3¨­ba]ò%®ÂñÀF+I ¯=Ý­æÃ}é‘rõÐ6ÐîÛZÆ€g­¶½´/ü}aÑ%K¥8mæŒ,N=7¢ÊXWì|VxpÇ¥u³r~•4ª$™Xßú¹Â`â’ô{ž¿a½öŸW€D½_Ž=¸¶{îë|Zäj{èH€S¦W ð¼{Ž–x*@£s>‘=žëbcn#¸¸Nz⯛õTŸVôñzÿ&®±Û“áŽe„›Ho>ý&ßêü=ÓŸ2ö2}ŽQmG0‰!óoºz¥Þmª1u}<ù²3rbÐ8˜¸ð¾ÔÖï‡ÖvÚ„Tà )ø­€UŠñéIº†&M¾ñÁ r-kòß›ïsî[³ª„~î_•hq_œE=ÀW'PR„¶à/¶’ƒ,ÌÆz/zzÞq¤€¬ô™!~$–RìÖŸ‘ü)å‹ÖXùÏ ,šÌœ¨©ËãÍôyê“spEû~´Š,êopÖ‘yíXFÀµ{Y pjÖæp¾˜¤6h ®•ÑŽYü®€ïò¥È¤qè!C²™ëWºU•C̘ØrqÔÏ'Eq¯?ŸÈÊ7gy'ÓhZ²ÿÏÙðµT®§8¸{5œš‹JÍ÷Á³.Š`0´HN2a¯YÂYr Çóií7|Ù'Ñ¢ñ“°~íI—¹„f!@ê®IÇŸ£`Aï®t Ïlxûw¼ýMWk—¤Øæ¾b4ä^Ü%0Ð%}îí—¯CyŽ>ÿ)bp5Ç–…˜¸ÌW—¿½Òé.>æÄÙü‚o Âï\£lº±kÌÄYë5 í'œ²[b/:t£A…“¿U~0%ñ©ò—½$:I_7WÈ>bí !JUY®•2ËüX·Ó0¡fôç‚ÒqÆ:n_a…×KþZèÓhÖDÒÁ1Þeòqp׈\ЬeèØ0»pÞÖ Ïíåiò€æ†£?bH_JñeøxdFA©“í½²+°^Ëú›Ž°XªÄ„*]¯Œé-žp#Ÿþßc}‘?6J=%âÒúKOìƒ).hOYã=èù°¢4¬ºõ S÷w©ÓeEvgöa“äü[í¤%±Zð%xíl6²œÎ;Ý&Þoó·Y?{=¼ëcl»Ž†„ó¬üþÜÝ- HKBÅzºW,SÊ›ðJ³´hæqÂ9»³‘Ý4atÕj%Òà“jisQâ—%oV׳9g@K*dÄ€ü0å‹JÖfG°Œ>ñdLžâÐ$nTäJ Á¬ÚDi »©hŽæIh儹œàíëÖÔ,R®¥Ò½]ÿÊ)ºF‡×ÀULö3zɦ€FhYmie®¾Û‚Z€ 8a½€s¾ÃèƒN_®Ì]ÞÂxVT¡/ÄfÔ)ûÕ—ª2ðñ³v4Û]F$tBž3o ålµs晀áXÿçGêó̵mуçx™¾Ñ’càÏÖçú h¶èÁ2 9 UÔï…94°ûøƒQ&¥†ýÄN9ʨ“þÙÏlߨBíLù>G'í¹i½Õg0…'‡­#ü®ÌN•áfVZ½F ¡îG°œÌðDZ¡Õ-­fô3Åò>7!Ô¬=Îá÷ Þ1… VŒóvs4w1º ¥ÿX9‡x¼Ü†[¡W÷ˆ]I¹å­Ê]*žÿâ&—7ä§B¡­Ê¨ðàéêS™<‘ u$&àï6ðcœêjÚ±fižy´Ÿåÿ_ÓN©v[¨0Ô¨,ß~(‹Ç,@ƒ‚¼#!R‡.Nožg„p2¢ àíÅ'(=¯k8êÌøiÊÝ Òµ9h´Ø.Ö ^à ‡n6 ï:ÆæÆ¼>—-°ûÁӳɀG)m\h„&:ˆí¾mŠhݺÆfP®Šü¯äú"ÄÕ–/)r?cKB›’MK«crò×UB¥îÝëÉ–wS3º:]$bÅnµ_¦€eÇŽê‡×>ÊýH ‰êíóHÞ” ¿*U CC‘¥Óÿ÷±áPÿø¨áð*äFƒÕÛ¸qP›Úe^×g€‹­ Ô¼ú4‘i;uxÿôU¸³ãóŸÄ aý~Ä%@©ãFð˜F~WŒvÝ£IÊåÑ$Ô+x3l,@;; éõ1:EÏŠO¬ÃI8øÛi\øo5æs!:cHI°|SÔA|© %øR¼­ÏúôYTðLÌQĤÏù(qÓ"Zt #ƒç]½Y£ÛëvÛ×0ÍÊ&‹ü.ˆÆ­íšF‹¯Ø`…“çÿªw¶ó-'¹súlSAßL™Âñôwû{€ø•Ú[Uš€è%•_ï³g› R·ÍSD©§ˆ¦ÑŠŽº¨ß§,sw0Òs5˜Åê½?Û<a$ é‹0SÚþpæF%¸´•ìzeˆ‚‹½HœäxcôPF;,ÈdÓ«ùu>£§ºr^„¬ª‰^•K¬N¸—ötÀã­ÑÈáÏÀ|hÈ…ØLÅLjƒ#Òêóó¡w5A,zÆQàg'/1\Ëø$œë,)41/éú¡0Ž8A+“¯!¥ìžÅÉQËZ^•±>iØ¥ßýÓ.!½FrüMy¨Z¯mùŽ\¶.R:òA¨#EăI@~9fŽäOðåâ¶ÂósDµ8™ª`-o6vú­+yºòU+šp½Ý!`ézPMä†û\+ðwøHžø±Ã®›ž•‹Zǀ˂ˆ‘…Îk>ã×ËÁìþþëTÞ¿Y«0É ®º#¹íLýEjiøƒ®’dÝÿ¼Â“B7üy=‚»qCïYéf¦÷m!)4r¶Ã|¢F©-77{9Ç,¢z—‹°•×H’©›Ùå줷(Öï…u”9}tôOdËÜ;ù¥6–øÔCyòvÙdQÿ,»ýy6üÛÀï": y°c^ÐD¡IqʽÊÛm{&§PµÌ`A7S±Äˆ~?‰N ‹Œ—Äݯô­a‡æ{Æ×Š|tÛCò~s$£  ³“D6NrØBÊ=ez‰|¢¶|FžbLœ1­œ8T³>\¶b«S FæK‡>r´ŽŽjVc–ïó(þ² Ë«¨ˆ÷m€pŠŽë \7°$³™ܯ€h°Ø¿¯,2Rή~ÁIÙÄ=\áo0ã.þ;¬£œR)£™ìTLƒ“¢,ÒÄ!ÔÇÛƒ5‰/›ú²/T…”Ö‘+¸½Ú–·jv'À'ä*~¹.¨K%üL¬LÿìxÊr@±ªø_úVµ•BÜ3QËpã¿>úJQnŒç-Ä>ÏwÜÜœæªl‰X|‡f¸1¶üL«¢~¹Ùú¿Êγ,ÉÅÃ|2T'Ï>Ëš,£àT艄’ àqˆ8­X@{ÛÃñ°Þ‚ãšËÏ*ãÿ^¸¦fl¬ÛAèÿkޒЙ¾4hΧ²}à|ÝÃ<ïºo ØeXQ˜U.AU‚L ƒ%ö b+P2ed3lÙ?–è¾AÏ(\ÞÛ´‘oy²²æò.¯—­çŠÙÿž’–Ì#›‚˜_—Ðjš«uE=x-àU€ÓRÃA¶Ój*Ç.šÙ’¡Œ%KÁ7D¥aÅôãëü4ù0S×w¥KGvH=/Êv…qMå ÀÛ:ÇN z‘Fþ(TaB¶ñõdÌà‰üL¬çÎøçU±-ùï}˙Ԫ8æÙœ¹5/lNþ±ªþ&8pãs£‚—l:zñÇ(ûbõèñHt)Q ß7²ÈŒGpݯ€¶*¸bÓ,ëÍÜÚ)¥)“™cm‰ÍGÎÍV™uÎËQó[ïÁsÄ;Ò¿¿’µÇÐã»>µ<뎄U÷G6¬@ª*3Hc$§ ¨hØm±BáæŸ?P+n=½ºº‹I.\J›ø2ÕªùVMÕ³%{gèð}Œ¥Ë´úó—<ð:ùǬ0†:è­öR†·ìËôùÆiaGRfùz%Ðø’é0À¿·ëÕŠ‰RAÐüLÝ^©ø…ãM”UàbJ3zþ RÁ6¹×Ù¦6SdÒ?眰 ™huʲkœ‚nìöTî}[°œ§»ÒaCÌóŒSƒ‘ô$B~Åà^å¨Àìl¹Øƒ èyc›0î´ù†Š´½8ø—ÛRf©Kï~ ®ú¦a§—% Aë.IG%Ís€«öþiÉôkoÆýÚÖ' ¸ÜsO ?æ4Ñ¡9ã¿×’1{G¶Âººs¦}¿!{g'B¨Þ2…’˜H¼ËÇ‚ÓÀB…ÂÿøÞª'á•yj3õæNt÷ŸTR™±±e[>WÈ"ð&¹bÊTzˆ›¡>Ëü|®0ûç‘SÖn÷Ž1OSqþY${öv5CßV¬S@óÃ’ZÆà6¯w—°8tL#m%ˆÓ"9ªQ¶çzGâ—Lñê&ÅÙ^XÂr? ³€ þ÷‰øÁ9¤¯£aµ SÚ\Ä‘Hœ UŒ2è%þW¨ ø”O¾w”ä„è§Óð·1 àÖµ°ÚqAvȾ<Ü?žÈ,Ó†Ò§IÉÅÜÊÎ/K{üà_§8Z]Ú‡•ýS ÞGq´L’z«ëƒÅ[ü§¶¢çaôkUߨ–åiòîL‚¤éË6VªfÕ]`S©ü+º¶¼\I&Þš)…e}c¶—¿wrI™3—DYà\ÌMv6ŸÂµQÈÏJ“éýÉëôÿè*w4»º¼ôPÖÚt­ ›Ë¤0ãÕ͹ù!¼‡¯yrw±C€½îå*x<\ÅJêAîq±G¬[Ã^ÎêåÉ 㔥¾¹˜× Ý¢ÛA'Z͈ø— -ÛĆ»Ÿ#¯­yí¾g¯bp¶›HtÊî®Sa¤E]}D¾yaÏ€/{©5 ¾ ÐüP®ç,XÎf)Áã³U¢i£nFj®Í³§Ø@….èŸxÊ‘_v³ÔúM·¹Ã…*ü1­5(š<µœ•°$ÖøS‰WÕÓ–ÛȘ—à' [Q†äïFë@ržÐÓgÛE?¨Q”¶ä‰ø[±ªÇ7zÉ"¦WÈà¢!5¶qûP”»Ïš¬PiñKR«ÄU® 2?´ÜÊ.LXgʱ691X[V»Êq×jS@SS‰¡onã!@Am¢-"/kS¶ 9Ž’ª<”4½ù?Øa¸,Ab{õÈ—áZ×Û¿±øônœº¡eŠÅTT€Ðé»"qESê=4Õ¢MC÷1l<Û¡ýÕ[†ol«¯ƒºÅöÈS¬5/ŽAÖW>ͼü»*Ì?ÄnÆËé ÐeüŽ`ŽÊ‚²ý%áY²W¾M9%ç9PdÖV®xðŒyE;eU%0+©ä*)ê$Pæ|2MÎ/’ØHcƒE‡Ì®è<æmle¬lÖŸ ͆¾ýg›~X%Qñ"êÜ¿²éöi6]@‰Â€9ãýCÒ^G’Ú!YÿG²I ã6wŸuuKM+ ›ܤ”Q[û€ôÍ7~5*ã•¿þ‰óÆi%/WC…M w«o ½î•÷ªÅ!°!q©/+o¯¦E`kDuHX÷¨—}t¤Œ@z›BwHÈÔETjwäŠÞÁ½• µú‹ü¯5>rI’öÙ<çìNH³2lô‘9÷·'ž'·öŸ–ZÜ ìHu™¼OŒ7èÕb¦ãô=<ØLEµ$ÏÇ!KƒHíÝsÐ0G[õ×¢ pKÍÑ sA37„‚–sBԫš„”*Òå…nyv;»’‘+[?èPL«³<^­!·&ß û+ô^¾«9>x|zyz²4&ÙŸvmZ#ò¼Û­¤}1”†žî6¬–8N°DF†k°»6|M›`ìê¶/%q(UŠÓ791fe¼- ‹¸+¨‹v#1 (YH˜»w»Ñ:à‰ôÏ!b3 mëlÕk³’>’BuƉü± Ê™=åNŠ+¨¿ZH*:Õ÷|ãñ‘wÉß„dÕØž–Ÿ§"Ô6µ+eAt­*°‘¥“3z…¤¹Dë*}eOÒšÕ¥’dªž¢u>»3‚YÛ‰(ºhßiÔsƒÁøHjÕ߉ÏÍb‹³Ôëà›CÉûöfÆ?¦,ÔqïÍ•Òé›â"@NFöè9_‰Í4õ-î#¶fcPMŽŸ¸I¸ÍâY·ÞÝ«P«u[gY@UpŒ£Ó_›ñ˜³ƒ¦œ-ð“[Øôžh1I¹É’`1Ù¤¥&dƒ¬*]d®Aj¶(‡(—?>zÁD‰œàF³¶*7l@þ; Šü´î$¶•þaŸ¶$Ïåkù’Œ‘>×,ì¬PŸäó+…ÖVEUQä~=u^ºl±FA$èËÍöù/Á:,‡5³G¯$o˜È¥J1…y®ÿÙ>eéá4â¥UáHž†c?Îç¼ôiWºm,ƒt }ÈÁ(âQÐ÷£íV<.Åå–½C3wS#ÈéæÕR ©8<éÛèF³KléN{T 8í‰$D)øxï 7ö]o‘"A:³ÁN:ß"®*êtå@ó›]ì&õlŸ^A7g`[‰ÅP¬’õêx½ÖçHœLþBäù1N˜#g|k‘° ?•7Ër³!ä1à°=Ì´¼¥å²ìɃØPÞ§¤d=Z3é;q?¶¢5s;nB$îÇb7ÑC^ZÌ‘RàÿO´¨aúË7ŽâÉPù1tNXmIJ ÎÅlÉ(‡évU)g˜tµ/²$èÎiEȦTXáºÚÎ À*#M§šfÔ~ÝÜ©û*ʰ+ˆ²ÙjG|idu:ꨵ`-¿Ê§üï{Š-[¥’¡(¸|@Á“Ǹ¸i÷ÆRAÙMŠ÷pVˆÎtýBÐ냕\gB†M>ÿå³–ð‹q[—Ú²²|:¹û9XŒ›Cµ¼5±é`1#S§–Šü®€|'~Ù±¯X1“›à<˜ ç—ö‰ñ‡Œ^£=BíZÃg>¸§/ÏôG¦èÚ~ß_K%SLq,ãˆ0¡$mÓrÚ,Fù°2@I’‡¼ 6$VšÁŒ¦|ÓfxÚ:ã߬úrpƒŽ&ÞÙò‚/ø6 )yï!ÓqJ· ÓìgŠï7Ú9Û„'.É6·¸Êüµ„' RÁÛûqui•åQ¾[lFÑÿ)Ùœg@¶Á #G l‘Zæü¸+ÅÏ:)ÞHŸpà¶ò¥!#Z¾ºÓ:ùÉÈr/Œ¨8ɶT¥ÎÍí07êt& Xíhô‡¥²MƒÒ¡‚b°ˆOggS¦¨äSøxRïúþüñÿ¼ÿ7åæùóýÿüúÿ ÿ ÿÿ ÿ¹ÿPÿýÿýþÿÚÿûûÿÿ ÿÿØÿûÿÿÿ ÿÿxÿiÿÿ ÿÿÿÿÙÿ,ÿü®ŠA5-Çs°”‡ t‚§OBQz \—Rdpœ ï`”±ÒÏÝg/ßñÿ_ïg+»O$úmƒ<ÑHsX?KI¼ù1Gµ(Ü7³¨^Ã3´•»‰°Õ?á ™äx\AíEåY&¡WÎ3¢œÊÔó’ÓïÎeúÅîß 5 fk¬ê_¤B´s¯v¢~§WÐEÔ|‘¥¦ ¼[ ­ ¬×ÈYQ‰©1Óߺ—#ïðá@Trò 8.J4𕱓¿­¯1èpÇ…¦}ÃæÇÕ%¨€03/ñjž˜NšX'侘üPÕÒŠü®‰µ™Ð|u³¬ öÒ€ëÝn¶dçe³y]“î\¸; êãëH޽Ê­ü51E+EiqŽÄôï…‘heïìM…‡Ááä»:_¤¦f4¨ëh{m‹Nud²ø}AúbDåP|ç Òó#C§œA¦½[ëd¹°tË”úš¨¢mÔÐk+Kdì®fŸB#¿/ +wÉÁüéÒ0ú<¦¾!poR4 +jHÙ“²¦ú'KÆr>I†D~fTÙÀÜÞVÞÁp'±ØzÎ2ù&ß‹XÓø"³%ÃP´Ù'ÂÉólªæÑ2; Òf½ÂÖè ‚#@ƒÿdŠü6íýOzö@9œqØ}saøQ:ùS`ƒ/G=~GcŠõÇÞµÍÊV}õšt;¸tÏ}¨’ Mê¦Åí΀Wž­]^n1£Ï¾Æ°ÌÐshîéÁÿ”_|'kbl?<«YYj¤ðìpi1˜gýjˆ,Ê€eÚDdB'LJǶˆëæ–‘¢Vxy–B(~æßA§E ¯$«Â< ¡¨PªhÆ»ÀûÔ«ŽG]/1ê÷ùÈDy!ŒT#/ü¬DŠídîTØÒ=Ïþ/þBšXŒQû/r¸_ zp ‰øÎo9Šêë%b‡h;@Ê.·O­Ž¼“¯‡-«Ž/[–ü6Uõîö7áHÖ~¨œk eõì2}µ V :»^*‹à¼k€ì5ãÙ­:³èz9R'ýß’ >»†Ú«›*f–OGŒLrþš.•_°^âõù O9õ…õÐEK üÞí¯h‚ðÁÄÿI3K±ë·åz ¸ýYqCâ¸àgÿÿÜD´²@˜š¨Ú&³²Šß0šéQV‡¯¾1E Éœ ÒƒÐQW·¸£v ȼñ©âü®+Beø™YC€·ö‘ULlß|E¬É«åi;™RuÙ½¸7%¥<=äg#ÓÙwoé¢Â1Ïà vö|‹$m£Oç3öl“ÔjÏ"“VÁMü5>®‡ŠKSt'!'Ûi Øû.(çø¨Q=¿ÁR™e´ÍÖ™ihËXu0Ô‚³g.ïl¿R®¡ºÿ&—®T•øžÌžq´Þ NÛ30”äb¹&é,F g¦Ôc¿>¦ l¯g‹½‡’öyuP“ës{ãÕ&[mºnÖûÛ"VÍþ Å##ÍŽÖ@¢AÆ&åæ‹0¼+AÓÙN•8¸rd.èWnÚðéhùÿVÚ~~Öˆ»†¡l5Øt\ø1ud£“ç„þæˆH…B…àrw}Ü~Á&eGwKÒ²Á*­';]æDÀPþĤ¯àÆyè*¡MOü}^vYÀGø®7Ðצ(õN–CjñððV sÌUФ¨öáAöªû—ÆÈØÌOÙc¹Ð¢höû¥$´è .¤ä.Ý»òUð¶øŸ„4Ú’|G±ˆ~С3ñ$G1Åp—q™‘'TQg—€ ×EÝ@ ê"•bËÙPøO¦¾ó ,È[ñ•«§òBêqNK¼ò—ZnqV5E|epiÌß©I}¡ýþ]ÙÙeâpxƒ·I¾“9aG½ËÖt¦ G¬9²kΙdp½>#\ö`îŽøáãÃÅÙ¡Cs!ˆ\E£ã_TRˆa¶Í!û˜jÄçê·a³Ýr½•ÆÃñ¹z¾ZüciÍ2& áG+RšU‹›B¤aúäú À6°ê×P£Kë }yVIeN‘Qºj¸×+áèŽCì !À¤lTø¸ÖB?]ß/¦¡¾õ×ÆÇ¬Á·oBb-¹¿½ÇÚÓŸ’ErD„߀1È4ΫÂì-ôˆ€Ã±c3-<“ÒðŽþ±u¾F¯ÿœe)jA¬È³gÇŠœauí‘e«aSNªµÆ“{£Þ¥¹Oâ,òëÔ|·M=¯Ý'·çªãkü|ª&Äæd$y$TÄz» 2÷»éºÇœ&è-› ºýU'aôþC$á‹Êhî‚ †Þ-úصš’àë}6Œ8(OPË\i2 h[e!Õ²Óg÷LO±oŸ6?a¦ÏßÍöœ ¿(Â?6Ð"×iJ¸ð[9¹˜2ÅÄÄvô´)ªP?ˆVÒå|"Dž|ƒ eÈ9‰Ùb)B5öñÎË©ÂÂtÔaÀX¿·®­Ý?§Ð’Hs†¾»g!ŽÎ±×‰†uJYå„ßÌ^6‚‚ïK½íDÕF8¨”ƒ¿•ÅQò!ÊhÝ”I€ÒÕô»ñ?hBOëgnpþ¨Š•¯‘D[6ªLÚdT6ù ž@Ò²w¦òSYÆ[ÏóÓAÄúëήöƒ(õã‹;>-JyŽGʦFÉ>üÙ.ä‡U'“äppº¸}ÉÎbLÔÈØ-´Tö6²h€º•׃8F’.TÝ4VöeÓ%zôxsh|yÂJ=”u€á¿T\ã^]~Š5H¹´±ØXòö϶ Z}:*çÝB‹sÄú±ð‘ܤ’ñâ™6¾Ò¿[ÖRܺS«ËvÙaé[}zî(~Žºf²œf v«mù³Çr¬8ç]eEì·0cþ*­î‰ÑC¨.=\¢è1îî(Ò:&8µ^U<ÁZ¢("¢éý(ÅC.wú5E‹4‡]Ñg7±Gz$üL»2*T@ÙeNØâ5°“| ½7‹«ÇCøõí¹®î+1VOíªÃ¨»µê¶¨’Ö(¥%G ¢£H*è ÃnÀ¤ÃÀä‡a¶Þ(ð /‹ïÙu.ú~Í\âÙ¹1XÞܙս=w÷]UL¥_Õ}ŠwºWý°•® ç#¯ë xw¼/r§FÁ/•‹w û8ŠÅ¾3” ƒ¡Hd[' ûÆn}x‡ÃãØÖû“Ó ‰»ŸkŸ‚L>Nt*vY[Pâmeï׿zKˆmò¤g8\šƒ—"“EN™ùˆI­Ô'd$‹e@ùe-küMXDàß®|ô£Fû/9¸&…=#Ñû…ñPͤÜ3¨èóƒ,:mß õ![Ì z0{",4å ÁÉþÚêÑÁ8âq« žâÙ~*Øb©sqK°üÛÆܵҹW¸a>·òH=GK–E`M?¨b#iXÙkgùZF Ç“(RHK^ßüL'ï-ùQà6ôbˆhbÕóàLf=€ÈoÐd¬p*S#„¦•BJ£ëÒZñÖºÛemD]Þ#b>ˆ¦8-êÖÈH'„F9¶¡S¥z]ÌuÉãWj¬‰M«G<,ÃÃS|½ˆºÂ/%ìù‚é#d9¥œ Ë‚4ZÞ?ˆ©pNßqªh_u:3be`žê–»z`SÉõ€ºH%†Ý-Oüçä;€…l'LYYzVþjz@¯[µzËÛ’ù™­¶Æä¬ßxÔ°ôá%üÙßy‰`tŒÈ¨ªÙwƒõá×¥;ðE¿ÖI¿C9D™nXÒcê ,´¨.|÷º¨§ûæ1pÌv·€šŸ¶ ïBïOŸC–üåzi VÖBG0€¯‹F tRë¡YñÕr¢ñsÑ´<òUéVYRT1Ì’C2cf4Ú›¼|Rgau©j,ßôPxÄ÷ž¢—îLc[0Ô~£Ow£³±ý¦\465 a—ͳºô"]ðÍÁý3¨°)q0¡¯Ù– ¤ÖôÂáȰMYçáô°‘±TPxF}oØÞÈO:Ž–þðˆl°U^GgÚ¥Û•DŸ±EKaö·ºª—5]¶ZdıwËd`$ü9 ßÝ)èqgjú¾Ô`ÄéÎÔR 9¡±ë:d^âñ;Ò½‚b·/­Iu$‡q/…B{‚}zHu,:¨=7öø¡B™/X˱FQIü.ÎÍ£HDÁþ¶Fåz°Ò&~pfd}`L(˜×öË5-Hå%›ÿæ‘Á{¬ŸŠ\:rƒ"¾™m-Ÿê^ú쬽`ˆ3æÄ &|F“-+™=—±Ÿ¡Ÿ‚6Ø9Ä·é ã°e¾ûÌ™]¼Ú5tR> ,-©Ø6+šC2Þ…2ÍèTe`¡?ÖŠg‰4&u 2èZÐ#Ù»êKs¤MÓ‚s¹;ý$}Ĥ?ö‰`X¢µLèã>a;IªQˆT/Ds¶“â[³ðWÁSk ?;*Ó-[{ƒ`bl3­;(ISwPâ?èÈ:ØfCØLúÿ¼pè~ÙÀ [†Lqº&üÙß^Pr4GÓt$.GØBxà¦y8s M0ôgå¹Tar㊌WÓvôé‚°¾Çc圑ÚOÊ ª‹á¨ª¦ ‡ó†}LuxÈc¨acÛÞÀ—’àRâ¸T½Œz¾ÐEJÇ4×¾ßô† þU‚&ÁkÐ:åR×à•(#¢ï!¹Ð ÙT×Óê¿ï‡OC°³c€‡vØþ€ÿé ; >F?a~@U7:º\ډŠpÅñ|5 ý.15­0Q²R¤)S‰¢ƒ$­q+£NÛ§Ü ’ @ê&|¿NÏGŽÊd)IsBë'´[G7æ[í=é¦l«Õ ñ¦ ¿,ld Er¢%ü 浺~ŸÎÇ6‰CíǶˮb{0ü#Au¬ûô*ywü¨´"ö´\…ÝpÁì-ºÓvös;I[.Òq=¯Mí*æB4ž\ÈmŸ,º°/9·e/¯KíöýÜ2û¦z…âˆ1ýñ[–è«Þ¬Æ¬àùÐ%`X yd!m‚L~Œ¼–sÅ›ÉÓ¿IƒB¦? úPFSµÏñ„ "}ýñóœB´.ï2s‚U°ŠÞÙ¾«Ý?dΓñ˜QÏR3•ü®ÊˆEµÙñ×5‰ëùÖðÑ@ãæ` Hù’>‚ùI÷µVZM 6ÏlZY‚TëÂã¾%ÿ¿˜W­2 9mRô&Ѩƒ§ü± ìï‚È8¼+ÃS7ÑA–†Ü‘Å>²qÊËÜ;Ç3tÏ4ç( JeQÁoÖ§œj0²Ë}jTúáI>†·ÒÁÏ©¾…¹‰Í òî~EƒN~ÊéœÚŠrø˜Êü+Ø ó›}`óÜi-¹Rì; ½îI^_4Šg2t»MÇõÊîƒ\ÕiY§ý|ÛÕœ1€ùO­µv7²EX2Ýfvš ÔƒÉR€%¾HWæ%Üz¤*ÿr†Ýœ™)•Þ5DJ…Û:I_jŒÞ¢fmLiFÛxëDШ&v^"²¼ ìévZo5ñe½•Ú*Å©J;kYøœ}µÛ㻆K+x±4¢ü5kâqÛ¢a,’L~ååíÙK!í‘æÉ}AŸ„»Â•"ý·O…ý–Îø2‘?Í€*„Jæ×SçCÄŠ"³~Onï]?$ºâµJæ~œà—ûûjœ›‹05tNZ>Äåþ&“+µŠ‡ÝYߌøÕĸ+~»p¡=ÔÚ–‹UZ×-aÎaÉéìËÞUËÔËY¾ ú QI£ù¿ÛÖê¯VòqÐ/‡ì³A&)b£„ÈmJ@¯V‰¾Á~p…9…¦+(ò`´ãµèq‰Í¤î¸~ŽæÔLK#åÝ‚9ÞÖM|Ê×:¾ä¯øU¹A4Ÿ™x²ö·d@biç/ü±Ì‘÷¢Þ+²yDÅåü{8oÏéq¯]ù£ h³kRâ¶ÏXˆD”€ÀoÏ „õŒ¡võãVu_æ™Is¶Ý¡´±ÄÄØB¢ž|¡Æ?3"A¸J?isù'‡Iø?pâJSq}Ä$O¬F /§~ä.û=ýe€  Ì>ӛдd^ã¡#‰#=Ù 1dcð#û'5ÂáçÀ„)YÊÅoC¦Ó-è¦×ˆØ 0Ò:‹ÐÇàÁP•ÛÚµ×Ú•0àgòÌpøâyNµãê³WÀ’vMkÔáPÛy‹žy}Å0Ï»1h¿Üu¼ÌW‚iβ9eèÔèùì¹;戲Ë]2¾.µ]Ççï%Hlãé‘ël>D¬'±v½›Ç]ß…£”hÁ†.ßÌ“”mÀ?Qï˜RçõϸʈÑ@3öwÓ*XýN˜™_ñ U?Ñwy'²’´á¨Ê‡8oƒ¯ÁôW>» {†Ú”0M¾d¹ªë_—ö¾Àv.oÎÓ¡ê°&·µÈz»¦”ˆB Íòš^…²²ŒöózÖ, féÔÆÂG˜«GŠƒc‰?üéanéÇpm†»iµ+@-æ>>»†6v©ü}°ysÜyÄnýf‰¹¾8rÈפbähWe)íš¼)ÑÅS7j§‘ëY =ñ²€øÒbÎg b;J>ø®fÈu÷ß,^ åµ­Ÿø¾M·$;kVX`œ ÌE¿X`Ê’œPàÿ}A…ˆ‚7›kìšã?>‹ÉkØ”ÆÐš6ÎÈ"Æé œ"}–Ĉisfê&ïêSQKLt&ÙÓE ?“âñÏ„`ÆòÛw‚Ôó7Ï[¯©nÈÖœ„º›ÓEÉ눘ÖÙùÕ0“Þ¥ý# ý{“90ìj¿øðËN„ qÅbå4Ý,¯–~2v§ÿ)°p(üð]núæñ†l¯×0P]hlú(mKaµª#ÇUßq詘DÌ>=6Í„¹m]+)ý»ÞöÛþš.$ú!tëó¾QÀ¦ößgMëè)ü•è™GD)R¼š)2—)чI*~€Ô-Yg¿Á¹ Óö/+Ш„(Ì¢‚E:'Xlöbê@(jÊ×,Y|óÚÉ-ðn¸ÝoõÌQLeoÀëÄÚÁÈ6‡uÎj÷¹:ß‚" ¶ë—ï%¾0Œikô!/¡ÉÅ­ãþ²Y˜°úAK^ï@=H7_ƒ0>s@åT?y@Úx\oP…æAÝÎY ð  À±h Þ 4—rñ~‚µÒW\~VR@"ò3‚·™+W­Û¢_CÀDù5voEO²ar±‹.O4sæÆwù¶¶4ò‚Â6Y 1â8CÅŒîü›Á¥Äùÿ‘+¨ç«ÃºT»á&ɬŠXôù·<Ÿˆ m‡rÎǘÈ­“ºÞ¤¦Œ¬Ö]l]Þáð CÍ~þ¢–¾AØÑYÿ¸¸y’bódìQ¤TºÊÉ4F+7«Ð‰®KrÅ\O¤H¯ÿnÀ¨ÎSz®¡¥ºÅíŒI… 2¢_ê ÖŽëd4±ìß Q*;ÍG·!alwV"Gds|önû5²BøQõËP+ 6:e™Ùs8;^Qªiƒaçö(‘ô'Y-uˆ™E·ûSÝ}ŠøoÕöbíoj»móî}i÷þ®2êQ˜*T£ ›¹Æì`7ã¿kIü˜²ä¢ôÇ„«^­;\Xƒ‘½Pºçi4vCÜ/ýÄÁHZÁÐÌdסô+dy¥úÃx£ÍÙ …32O †BÀfÊk5êf N6_>ji¥ŠiƒÁk> ¨¨(mÐBüÏE2pÑ ò¿¦­d>ÁåùÍ*÷œ•ŽÝœÌ Í>7¹ZvïøÜÝ4 V|²e˜·¤ÈõÑ9𶮦è%ì!Ãÿu}©¼Òue¤f6¼š/è:$IÙŠ1y#§ö®àŽ„}C€•¼˜.`ÆÏjWE ÐoôÜÓCý°ï""¿âo4))¤ý^ôµuÈó-¿í0”%ê :š@][Øùñ ùÀcŠÈF:¡Ï'g ceÈM×jCÁõ’ãdù…g·ýkÙî0}{V1óGô±yíþѪQCÜõ ÿÒ-û¢z@Û z·5 ×^ò¯‡_„~ŽÊ•£ú;$¤lËñΚœÿéo’²ý“#*ßv%-ÂÝü|§ø(¶€U&¢¬]DÞ±dôi€'<ávÆä&‹ë>‹˜üå—­ï-Z±3;)FUéíZÎL“äØÎO—$ûÖUêuýñ5¿-§§~oùè¼/6‡PTñY8S³Vá°Ýžƒåd£º©Ã­´'®yé#V]Óë[x§«°éLè©ñß=@ãÞ6K­×7ða±O8˜®tÉþÉd âH*•y—îÑ{XÖ¦w¶7W3?AÒ·íÏUùÔ~Ê–3³}Jx"ú¹ÏÛ%äœ,¾€sÇÑ—–0•€."?‚ï*HíóŒÇQ §0²¦ÆÊ_Êú—H3ê¯m‰gScX&®ßÌò´ø¢LZƒKô;áÏL¼=bD[å{–7G] –.¤†.QíVPÌÌ–Ò„…þ†PB•nŽd‘bZ©¦ê‰ê'`=Z=d“S˜nQ"ür¦ÄìäF* ¸L=Å›g#< ßKEÐ]Öv›¥¢[›¿…WGTþ ”¸Öcý4á%;µ}M9½BçL;p©wðQZøEu1ß8 ¢ù âÆþŒ‘•wQ`ˆŽÿÅó‚mxfÏ—†í)åqp<=ŠÒµ Õ{á˜é¡ÂRüX&«W¥N]Þ‰S¾û±†UJ[Ø•F~….yâ¦-X¸„û±Ýwž‰Ž¹×Ù†œDiöùãxœ©hOÅšõUEÉS®¨¹D¯Ö(‰\Ëji…¨°É WT ;ÇÒØ:²Hlf(ÔïXkfÑ.ÀLkðyÊ*¥ê£) !~á±”3d¨as"c«K~.ìRgó&¯ìñ½ÍöȽ3¡ÒB)&€Ö_ß(òà‰ã´¿lRP*) 9šÒòš¯ U‹5¬—£>4ûhGH ¶M<ŒCb£‘¦ÕJBØÁ6œQ¸ú3KkK£ôˆðä$´¹â®€ÄUÆkMÂDQí_AU/ÙÒ3¨¶n>no>5•¹ü®ÉîOd ômÛýÎÆ&¦Gà/Ùƒ¾­ÔÖr<öáùÿSM?ß…–€€gUá™%húMrÙ«;BúÄ/|éÄ8ówu)Åú¶óÜŽO“aˆ?-߃‰ŠáŸj°H.¬ô>_C2ÈÒØ[ß‚Äs²5-‚%‘ÊÜYw}Ûš²µNÖõÑÿD;/,‰Ž@˹êlý»S<‘•ýYœZù\³uwiãIõd­B#›Ä«ZŠ´Èg¬œA“„…U}LcÄaXž¡ÀO!‚‚è¾rDØQÚ§&5CÛ7øË&€ü± Óê`îG¥³ù¾kÑÉR‘I3¾Á¬yl@ˆ¬ Òd.Ë4Ek¨–ɉn¹B;XðSoâJË/uü†´Ëá”7¥ÏH%gëð7ÖTo)Ú íŠš1/¨:=`iƒõgS§”OF&D"×fþÞìÓÝø$b}ñQçeåËÀýHSZº.X=‹ó,¬4#Ä[¨æßg¥`h>} SŽÔÒˆÕ ðlÏÓXéPyJ:Ï2%* ßÅ2Ùz ý;퀵yȯÄfÈÍ}-3ÕØòÖ!Þȼbš,¤å€ü±´ìPü'J,8–VkôÛú+fžãFwM¡cÑ`·Ù€‡tPµºÊ/·\Q>Ë·+[€Š{³„½ŽËo` (÷WMUHò…Êê-i4Õ—oʼn`^çÃôjnÖ}üUb)hn.Ø-h&Kœa=´â¹r g„ÞýÈýB8V À(ó:ï5Šm?TYßösܨQ ª¨- f3A¡Ë(þK‘¸ÝsMDc|º—lÓëD¼Ð)syîúƒ} þ*}¸ ¶Ð1!ÐÔH”äTfɃ’ÊŠt“~¨§=úàX°` ’åX)WŘjßÖs,ü úûºùÞ4›ñ#ú"í$¾M¢q ’€ü¯5ë+/õ¢/…X@³)ñ½‡~at˜rãsl~=A6ŠPHÃÅ[Ù0c;P]P+󛯆¤ïþÖ©º)v[x½`÷‰>QÛõ–| <,>¥xešcø©éÙ¹µ‡Ûø„D¨³Õ(o@PÁÿÝ~|MKn-z#,‹‚×cKò¾\»‰Ðø±²jðyÞd­ šÆ`t_ø¢Ò‹°7^uü½g™8LXy•‘g‹»œ$%î6Oäh•A.ÊEp5a«™ˆ{R¶G‘ľ3†ê¬Æ­€ë¤¯ ={îË€A(æÇKu0"˜ð7¬ô¶%!µ¶´+ÿƒëìÒ€ü|§ÄºóÞ¯Ìplt¹×jR/¢"$7Ì#üý×mÔœÃä!Þ€4ÒãkÐrýâËJU“õB†ná&%ý™´ï TãÜ;¤eæ’¯¿ {¤t|a¬5K»Ö«iè2žÕ‹Ö¡_N3® ëò¼kNx«×Êϰ©Í“O*·ç)(^ƒwóƒ)ÙA·]à7S‡-B`õÛ¾ˆ…5•„x<|a"úøÕ²Ê蓞•v@ÍwÅÅ{èJäéAô5XçŒ&‚4Öý×ò}M/®&`p³þ¥8œ/²¤îeó‘K  fwªgΆÚ@ýsÛ¡iË2ÊŠ–@qv–³âÔUú†¸j;þ~- «€»Ž‘>“ýùCq"¤Øìõ¦‰X9ú¦í9µSëêì1/6\{ñkÀRÌJj¢·jƱëc’5&¥sæÒk;rò¹Êeó’!žƒ9VnÓ£ÛÆ–ré3¨ôôÖàÊ$£’)£;çgDb×ßû^'ìæžUxñùˆÙÀƒÝ·Ï@=Å0eäòöš¥\7Vj&¬:…ü …N&Ô›2¶Nœ§\›ØÕR‚ƒª&4í7÷Ööki¯+%Ôp]SŠžÎËùø8ÍÊÉå`Ç:Š”dhìa!I%{YÈ|زØ„êãvA Ôñ•¡‘*1îèí[5VX›•0`´_ Ý~Ю²fñ–«ð³ðsSíqŽoy§mWÍ€§¸'O³ïH_ÚnÈæ %bôVÃ>Àh{[ûhùz£º•ƒ )Ü?©íÓúê\ú7"Ÿü¹Q¡oG“¼”ã…‹ä/z„–Fà Ágæð Á2zçO<;ô.©˜šòÖ@„E1™¼Dx¡Ðß„,Ê¡p„¿€æ—óÞ(2ºÜüÙ-TÀ÷hŒFRÁù/‚ ª úO‹ú= ×ß/°·àBÄd¢eKÚ_´sÇòjG]³äçücºkNK—Þ[Û¬ˆ®¾Ó¨"‰ÎuzŸ›3·¾û^÷,%Ã7¨Ó—1m¤°"¶§–Y=ÈD/È`n¤ŠìÅ õ›m;ÐK$ý­±Æ¦N††ðެ:îñ sí¢æò] ¹†‘QžBø9ôB×$äΓ_·–œì×J3-H,×Ôs¬7Ø(|ÔˆcÒJ×ã‰Ó¨"PcÅ\ ¦ búP–fuuŽcŠ”£³·¼Ä>O·™Á‚ýòÊš}îælöš0ª[ÚmÄbáÆ¹Úh¦r®ÏÞ¿¥N…£}“° ÄIâÚ>9¦ Óö†Íü7qþÚšY%m,`î!èò‘“bÖÍ2eÁAŠ”º}¦ ¿ù^ö„[´}t-'Ç—9ïMŽÐâÇüC)•EçLņ¸éÙ½pª^€òíÊCÅê„,q‡Œ0|6èååX¢©Êç®âe£Ærf=p|dnÎ ®A“'SÅ„Uc"ÚBÉS©ø;b8ÊÚb¶ë Y™ÚîJœ=Biü6Qi`®üÔƒÕ^¥z&Ês9d” ƒ‘áë¹È•jí§”†ùŸa¨Iý¶g]Îyú2–»Cn g‹pKãÌ mÅ¢‚­k¡äcºÖö»2*;øÍ54„s «vÖ2Nþ\ÕNÒЇ§îô²<×p—Ãæ¡oI_x®1¨*ÖH@yØ}ó’ jÁH»@^ÉW'„&ué5þHfÖ¢ÒôêpS5Ê‹óJ‘jñ"¡› ùw_C¶Y"b=k7é½ujZ›Þϲ¥ÉÝ\¥±ØÆ¼x™šƒ”£Aœ›øäú@ýä™ïËUÃÙlí±É…+ÁV¦³9¯“¦Ÿ–.í¦O¤ú9²-ZÍDª”ü›¹/µ]m ?ѧßÅ›:¥FÄ¥pEÙ¢£ééDÞK×t®€nÁg—õ9ŸöPHŒlÁ¸gè-:»4Ø«cMO$qP ‰4ü¡°gºÁ´Çïêˉ‡Ï?7æ”ðÑÙ f¸Êpºúgh¡ˆ‚ðòY­Ó ¼ÀÒP¸ºþ†<ëyèƒÑZFäV C¬&džKGvúéö¼¿¥öžê“÷½‹Áhà(¨\•íR”TýÏÖÎ]Zn”támD«ŒzñÙß ·sðï]#Øžé9ÅTuxÛˆ£üç *ù½ˆkÀü|©¥ÃÁ¬Ú«K€™ìAA¦Éæ…ÿ¢¬ 7,J‘øR]\p°¥Òaý8˜üLÐ8ΜgöoÂýe»!šËú}„ $ÀO×|% Ó+Sßu\¬DËä|t3¨³’ø1£X2`øè{Y“<ôIeU)mm`~¤ÞAnq597·AÞæü%¼öIZú·æç¨ ®K×Ç  ãð[H@j¨›©ãaµò¢{AUƘÆÔ‹d` L„ö,°ë(…¾¯óÓVL#Êi©ÀÊNOñEûV‘9ö.ž’?9ƒä˜º,&ĈD…‚e"LPjù–R)äHt,˜ø ‰íJÛ\åÔ|OTî;ÝØqæÁ`ÓC« Þí¢ÀŒÔ復qÿ&ý=½c« …GÉ…UpAÞ€5U4ýèÊW‹ü ±Äv˜ü™B3†¡åÂȯŒ!FigI9"cp§òs´~{}kª­Ð¤ËÉêñŸ  EÏCÌÁ§ï-ªâ™,ZÒå¦hBcÇöóítÁE…Êý_D½ùœ5ŒˆÅ¹†Áì2Þ4ªÖËãÌM¶>ì‚ Íþ®½ÄÁñ¨\¾.ïŠÉ‘0¤îã¿mmqcSÅÉêΕ'mf‰ìBjO Ëf[3bêvt}º‡¼ÒÀJ#¢ÂSçŸJÞÏApÌã'hλ _§2§ï Ø 7Ü[?8øŠÌ]ÃÚÛ%@»Í_'°ëDÓ•UÇÁÒº¤ ).÷†Yà˜gC1άñÞ¥z¶Ñ¦^±A>Ô<bÖË*D’~üL°8üùSm˼ ¢\;÷¸³$$$™qF8)«¶ÈÇEb¥D"OñqœI¸Íw™KÛDʪÇ}ùúS°¥¥Šå~ Çç™”OëÕÝ/ÐçûB«¹Z,i(>@-zÔö­'r¦«×Ss)‹¦è·Âôõ–zVÔð ÀP—™ý쀙Ϋ¿Diß?vUš §ñqG©¸k/ð‘ÔY+!³ŽÕÒ‡ËЈp¢'µä¢PÜoQÇKžq¦V\\Jê¢ÍOª]Óo®SɈWX»La;ý- ´f?¹Œj˜¹ÇœÁñt-ߌüsFdÙû›5s‚ý-ê¦ml÷a8Ü,ÅhbPð“G}êbœ“޼¼ÜTd~¶TSާ}Æí{ü6Y‘,¼¤Ê ˜¬ÄQ÷íÁíª ¯&<•oòÏ(:±a9M z¿ÕyÓ,eÒWkÜVÀª‘Ë—?™bÚÞ{úÈÏjóÞ¯í«ôÕ™ý…NP|ƒC¥\ Ñ»Œ+Mè·Á£lÍø3ä¦ÊÚú¢~*EwÙO—Ñ›°`Rω;Ý÷@ÿ"Î!eߨ,e¬¸PCŸ °ÅÖIß»¸$uk;‰wOvñtäëövâºòž¼jÖ½×ÍbS €*&o —2`9†û¢mÕ†l2#FÕ|^²œêØà9uÍ”ÀµÚ )±Û¤Ó§}ahò®âvi°ìW®PžB÷µUjŒ„¨¼ýûXP: MRZÏšÄ\ü|«]/Y/í® ààý$÷6]Ç,®EK®»{×–3☳æœÍäèï î¦C™Ð$vp¼EÐŽ;»ªÌTÞºè“ÙDÝè•LmX?ß Ï®Øð l Ïº¶^ìR&u—‰&‹#"Õ>·.©É¿i¤Žàö™ æÓ:)€¹Æí«µã+aÝí6×ò? üw+ÉôÀM0ê3/)ÛjàÑD~!`X/{š2Ÿ2ÏÒìU~©/V!%D:¦ã;å ¹ÞJì?‘)—w!’4¤µGb†§Ž©w?Ïw™»4ôÉIˆˆoúJûnµc:-œ0ê™t¿Æ…bÒAçÍÇò?,S=â[(¾6È#¬(ñÅç1l_¨T©8™ï´„®|/!¤dÒMCüpt3ê·m6‹.8Wý½Ò¦¾¯´ú:bûŽ÷k”~hŒVÝAg3˜&óµ´‘7¿sðÀ] ûµ:Ëß<9TÒÈt¸%GŒTàhÅŒxG+© .kʼn÷ÍÖÑ›={…íü \Î>7>¼^‹^noÀüÞ3¯¬3üI^š|@a-µôg(ýùŠMÜõÝë-¶¿ú#àÁ”iDDç(%‰hçp2»/HBÿñsž)4CËÝwGÈ’›wÆì¯—ÿ%CNÿžÊ¨3ÞOšóÅ—ÄÎó’”OÓ,#|îÀ'“Ð4øDÅÍ#|ÊVóô ʤÁÍ0aè]Û*í5­XQÌ„31,çƒíéu½<{ý(í·ú}Ÿêk82Åí°-î•2u IÛU•É~qâÜžmöJ”5^ˆùó`¨§^vyA ³¡³¦h§ª.œÇí*RF]xk3xÎÍ-$;)¶sWþІ>SZˆ¼Í›aòäX‰Ç$€7Ê1C¦ôús6ÊiOggS€a¨ä Ìî•Fÿpÿÿ ÿÿÙìàÞ×åöÿÒÿñõ÷ú÷øöÿÿ ÿ ÿüÿ¿ãäéèéùÿ^óùù÷ø÷ÿ&ÿkÿþùÿþüÿÿ ÿü± ß52Ý…ËFÒo2šËØãþc3W}*R¿U½õROõµA‚I‹ ûŽÿEë®ÓOiµâϱsq›[nHÜ'¼Çîâ°D³3Û&áÛaNÉJõq0y’Y@cN£ ½g·-ƒn< Ói8 mþ~ú{Ǭ~:™ŸªÈ|Êå5{Ø¿Ré]XÐ¥¬•ŸŸqºƒ—œf(sk²ƒ‚‹IwÝ=É;¹³6~Gg‘Úbü íæ­A2ì︭aõð=ßÈ\ÏÈ,†mû¿‰ xVM?BuÁråÍå5Wº×TzMß²€üL®©yÍ`¯Sá‡ÓqYRXm=À+ÖBØ¢1¢òUð« ©]j!«TÕ‰}{_zÇå ÙÖùØÞé§o³Pó"¼=M„d4‰³†³Â¨m8|îQ÷Ó ‹]·û\’§4T8¦û‘"—ØOIh»ó?iìÞrèLÁSh¸´¾gñ=ÞUˆ¾Æ°%{_@ÓS×ô›„zú¡yЛ¨)8fùð uì/¥§õÒ úT¸…É"¯ÜÿÃJË¥å)¸÷F±ÂîØå stH2†×Ç»ŸÌJiàqe°§!…>b°’?ù–NQé/z>nÒX;$®¿>sÏè.p4i$Šü|­:nQAç8rÝ¡ÍÆx‹á”sŽ#S[w2‡Nx¤§”¶Æ óGNDÎgVòWU—ÚciÞÑ}އ\wvh~OX\›mÿã4"®y-â®é¡0[B§!=Hèõ&Ö #'—ذö½û\ÿÍæ-ƒõVÌ1Àý6â ï¯Tèÿãì%òÍ£&î9_¦QÑê׿R6aHÌàžDŠ £Ë)<þrÝ É­‚|Ü7¢å süÍÓKãH+jÁκ5ò¶ç3ÒêîeÁrh¬‰²ï¾â||ñÌÝ®4iUÆL¢%OždEG€°PɃ[¬Ä/´VdÝì¶C@lÔChéÉáä‡YÞU y š2´Ã"R¥±Ê¼l‰Í̘Œê‡îŒ~ÕÄêD•°Pù[µå.ß(AbšÍ{0·¤WI<мˆy×舛?kT.<Г›zЪ²¿OÖE±]sÅr^k°°Ûæ[@¹¥I3‘׈2LÅÕ÷ˈ.ì'AYÉÞP=¢ÀÒ˜ü?ŠÃåEÀ&GήM‰rM¾>qûŸÈjãå~o^ow¹Î­PÌ'¸ø»Çþ …+ n±>®ê’̪$ûµWõâwî}(X™zÎ+/‚Œ-Q%u™Ÿ†l˜úÿRÙ‡x2çSC=`rˆœˆ =uFùOrÍsC©°’ÑIKTÈ"áù5Ù´SnâÛø¯§ì•Š¥Î M\HÐEmáäSJGØ”Cÿf'„ÚÅú|ŒÊò°â¥9M•v”œ—Y.­5Ò}Áüå?› z<ÿP<ðK6â¦Î®tóíÕ.æǺý52£E2ˆ8äuT¼ZÌ3,qk¯þ‹®'¦Qjï¶šå¼Üy-°€ü6hˆ@}[÷5æ™xzoµª…M@Xþkƒ5­b.^’EF‰ C¯; ~íBsßiž ð5|IQ{˜…¦u²ï‰3 ¢)‡ñ ô6Þ¾6$%M¾§•êÆ€pQ b/yú[|jž/nvúò°ö ,Ükt…F˜ïNXähè¥ÂÓÕ‡T&›.Þ$#®ÌN³d\wÛz Kª´1*>^$i÷©3x¼ÃgC¸%`{[Mþ*ŸÁF`‹sh ÇCøâ=²Úr­Œ“2ôÁÔºÔ›î5‚sàÁsÿkí€WV,Ë‚ Ÿ2ÙÕ6&—Sk”ìÿ›/Ìî‡áùc}胓h;ß“øë_z¾ã± !maýH˜;ñú4=ÛfŠC.Øð(z6ÑíxÈ‘—v©Wê\Ûm´/ªl'9øuTõrc‡X3ј¸½QÊwOÝ>jÁÒWå¿—9¤XFV.ZBöª±q(®è³à?ÿ”‚qSˆè;vVLŸZCÕfôL]W1 7øZ¢y ‰å|P–‹4´™”újÀoSG´Óæ @ê8]c­øfÙÚÝö:/aÇýó)þ>ã^vkf#¼*\v3¾eÉ!¦¤£ã¼cLQËÏü{=i}³ñZi•D*R%þ½âXÍñ2ŒË‹ÇŒœ#I W³9Qz(ǸpAÛÆ´ -W¨”kÄ&­:œ­½yMwz˜>§í4 ¥õX\ô›çá¦&žg_ؘؤ)øÕ—O÷-˜†?Áw%ï¶â{Dâ,Þ ÎäfSÂsÝ•U9Ûº*Ã{mx‘sÎÿŽ}FCuŠ—¡Ñ¨ÖƒSðÓ—­¯ŽÂTˆ|“H×™c×Aò³# 'J¹D/!xFÆÑýÔ;—sX»ïkØkÿúÖŨǦÚî:—÷Š"Ÿq@ÂM¬C¿¤ãj{_ž®Ò©Â§¼ë»§ÒJaðå•yÞýçá0ðZIß é-W1@̓™^' Nïz7rÃc™ˆtM(‹?hŸw@1…Žã²º‡pêÌ–ó›ñªH„ã,ªz¡oвÃÈgÄîÍÖ—•_„.¡5*Û2Û÷é’£4§ŸÓœúÚJ‘@Š» I…#o‘~gäÀ&(Ž?…ÓÊtÎaô`1 ¾W ÉÚàùfÛÜB\F—º”ã—Rî‘xzGÇ(jü$XŒûs;„6!P”Õw˜28¸»øÂa6hÏü·õãªãw+™ò´ð½IÕ—h`Eâ'[[“ù>:ÔCVg%6BdΚµüMm›?þ¬Ð=Áàdñ‘€ëý*‘»Sý]Ÿk ¯ü«£“ÁKü¨¸EتôýF˲·º^¾üp°ø­x§Eƒé9cy‡³8p,ïÓ÷Ý 8§~̘®Õ§1Ñ×bPïãz«îùióê%iÀ~ ‹»nC—62,&$éí=–Ь¢ª[פï¦NÌÀV7yƒÈ\õÆqûvôîmI8š»ÈSP‰ Öøž’e2ñï%ú ÎÕ{мcÿxõä%2®®³e2üƒ \ÕzSwì)¡MŽ%k6tŸÛæVSïÖDúœHu·k‡:¢ ýü Q¥yUR'üÛÃ\ÒzÔHOj7¾¥Ô‚µV Òû$L]þ{$XºÂÁóÔŒ–Çé‡UϪc ˜cÝ)XÏü4€_[!؉)wirðýÁÑ訌^¾O»Dú¨Ò“_@™Ï~¦"‘N–T·#Ãìü<½\©Hz;Ö==G;‰Ç‚ kv_ìÎÎׇ…Xk­åM2Æèâƒ]Ûžße…é$\úèÊõÂ7>©+J£¦‘ÖõŒ·qA·{æ­›(*‘ßÐA%l>V/…š DïÚvŒ´Sºaۦϔ+Ràâ÷rïñ;l5<ó¨îB+L*v¥‚ŒküMb´ü`”Ä exb¿Á;Ô6Çx!çXGí9\%S@4ãbìêû–xÕžÙ)ëå×ãc<áõ1YGçCº_œô¸ “[]t1<ϯiÏAà^ëzñ’>èô–ïÂmÙ7U ñĶ른_ÇèïCP¶™ TÇÇ@É\‘éã—ÒK7áÓÄÀ$› TçTÙÝ™r5ŸçóUÊñfoÖ'†›ËT/çuoÄÝejZã(ÊQ‘ôM¾ùc+fÇW†Ï4{È܈…8!Îq5v‰W_»Ðnº‰2€0™›~qáæÑV/M'¾åøïË"Îþm©.°X u¿þW­‰µØ¼åg1Ù‚§ïÏàyMÄQ¤ vÇS¸"t¢€/>à½Åå¯?tÈ­$Þ‚‚©ò€ýI0!ñ*ó*$pF=3ÙË@X|(¾¾ønÑÔµ Å€£Üb$(nÁ膱bÕ×[ßïizŒàÚ©öXÝQ­Ý:E€5Hü6V.ÎOô7â4›ÏÂJû“íb¦Q]ÊðÕw«ãs³\$}rSs…Ÿ1ƛ½˜Å€N&;µ[$Ú§Y†[ÎäÜÐóeG¼J+­’¼V¼%GŒo&¦„L/cX$ïõìSóDÐÍhKˆÕÏÐ*únóÃÃÈú?UÖTü+u{À¯¾ÙU&Ñ3©ÙÔDFV`X~ÌÛ¹¤X$ðöÛÄ´mà‚YÆ[ü(cƒÏȺÚe‰R©£ô’`|QóB©Q·fD5¡Õj #V¾&‡ÅDÄÌÁ®µÆjœÆ°Õ85Êm6ü6O{C°ÿÌ«ÅMC8q„`9âQªEHëf»7(ü9 äUta÷ ŽŸFŒæìu£Ÿ¨ºM&¸Ê’H”ôP/>ïa€r A€úB3Ô4”^€@¡ûF)Ä{陞ìóO÷*íx$÷XÝUæÑ͹–%ô²ézjÍ}3Ç)Yn5áßÍ¿ZºN^Ô½8(ÅŸº×M4•z^ ¡sìW ~5pÉ Ë}[¼dö¸ØÕáÚA„B´ ûpÃÆxÏ/2dbÿ&êÓà(/¿¤ž56oPõ»wðzY÷åꤳ«O™ŽÕÍ‹œ4ifp;ôê BDHÛʽ® ‰¾ûþZ_üJ9Ã5€Q:|îG ]½d²›¯ª_rÞv­}È «JÚRͲ)œ ^2m ô2ˆì Oš²:7ŠÔ–,7šÂû´4‘¹q K¾ë\wDQ/‰¼¥÷/¼×~Íüv½ÉfÂd+²jkòBXÿ$½¨˜Zïp̨J¥ÂÛ¸=­þü_˜µ7[|i©ûRûÛ:a@8qÝ ¡Ì¾"œ4²½aÁ_DU^ä,"²A«¶ç ó¤äÁÙO€«³êñä•vsŠ›«ËÎѹ¹“ Ëâ¶Êê5µN¿û@Ÿôß- iÒ&¾W•6†«W0Íp¹¯NóÇ—–þÚÚ¥¢LÈËîÒªyF-ðü6“žóN‚K£r ÷î¯âHàäŽSnÂ\1áuUKIüŸŸmÂ(h$z@Z œàHZ2öÓÚPî!ËÇ7Å”3¯ÿ¯”q†w#B½¤@)Ho-Ë©.¯ ƒªW!¾zƒwc ýºàI›ÌÖ-Lº—”FzWŠ>s_ã {œU\J©AñU–IûÚN)(~~ 9Þ(Ór#»gP ÐÛ¶8‰¹Ò¬Öœ’XŒ7Õ¶ƒÆX²€?TÂüw.l¸²åhøÙ±÷}p!B”åèû<Šû¤IÐx²Ê›cbãdÄ/´˜{$QËŠ)hîÑ/ÛØÎÒ\=Åg|uÛ©j .i† |> üMž««˜Z Ðé ÷r W*§{hìôk¸A<ƒ^ Ø+…ª¨£bާo<¶ó¤XâÅSÙV@ã-v^ ú;^*JÉ­¬ÿ€7ªoçb¬¨GzmQÓ³fó'ÖR¶–ˆD5qŸùsØqè l—矯JðãôÄ`”/eÀD䈀ÊKUù¾ ¦ôE“ÑÈüŠðɱ©½Â4û$²h‘Љ½¸[ºœ% Ü7NvCëÈÁcü".;|—Œ.¯„÷êx0 ìÃé]]ЬécòQ±ÁCi’°£&í“Ù3íZîqçÐÁ|xfÙŒ!ñßiÏ’žÉ,ÉüL®B¢,·½â2fОl1[÷¸]´ˆÃ%,ŠXÓ8bÅ3˜¹OÓ>Eã‰RÊÀU°ƒæÌFääøöYyáá.d¼"/(Ó•¨šÇe¢Ý­°o8·4¢°Ìá¸IÜåhÜ÷öæ_*š p+˰e BÇvÜ^ƒ§"QŽ$‚|8‘Ø ÿeäñ¼¤È:§0ZÒðXÆõ9²Œ°êRÞ0¯?ÍŽÉ8 Y›¾üÕ¡p›2qµxRðê‰=f”ô%Rü]ÆþœØ;÷|z½%%æzÖ?a_e…´cpßt…XØúâh,756B4#t,vQü|®t¶Ž˜ª¢êåJYhµÌÚ<í]v¥×4ËcÑqs‘òË5Y=Fó³%å<+Oꢸ€iñ!E‚ªÛ w€51›@Æ(ÐI9C‚N¦GФ g5ñç–Âý™WÂŒJ'æ õek%¡±_ •jR!’ñ -• NƒÅ×?xOÝ v>×'ØñIW$Áòï²ê¤r3ÓßóLµU¡­(oÒ“)“8€lüMb´j+-m¸ËÛ’yùE™\îÒBmó“ž/¥gF9†ÒZL”[“Øæ².^AƇܬ|¥âÒ~îÙZi™¢eÎTö”û0è.ޝ—§äX3¬ÈŒ3r7¨F²3šøÞÒ¤CÔÒ5ùÙîÿ4&/B"güí¦¯I-~ºúIŸ?%íé`´²¿Å;£ÚT¹)žÂqMe¶ï"]Î_SÚ¯°6z±A¨íºOü| Þ* ¼™0bƒNÅäZ¦â»j eqªßÁÕ%l÷ %¶°®Ð9ËeQè&üMÚQ4—®þ9ÖsQ}Îkt$I¤7¢ô).ƒ¦«ËS.òôu(%×Sµèöîh¤ú0êp…s[ö7“s¿®Ž]E£´ß°Bæ K\ŠG¦T1c}U³Mú6 œöŠ1'"ÿÃjj˪©ò^+áÄíJ¸S_dà†RÓ ‡ÌÂ\‘ïsyT³WêâèΡ~ò¥»žxþÖÖ’Ã3ÆÃTUYb Ñ@eÀ8þCб &3ÍaÚœ¥¤ñåÀ€¼Ã–¬U”·ÌST44Ñ‹$XgŸ3$óD¾RAdŤӊ¥‹üM€­?„2°“gë[\è=ûªäšWÞ½_MÓDj”ܽ¹I 1é½âÍ” ´¡ì~xÕ[„»ÿ:ï åã£V3¦ö UÜ )ë à?†ðB’"­`ªŽâuo€"ʯþ±šÞ¨F±x2‚4%ú°k}¬ möE(]Lº Þ8±ßÂÖ§Gnn–æKš!שxðL%ùœ¡ÕÕ´*Н%ÄËí” g3?è>Bh"¼Ö×ï.€cØßW‡CRèw§E ›ø_ŠKòš%$¹Ã­Õ¼’oòpé%¡^üIƒ"åáþÙʯ´$…àÜV§lJ•Ü_N+ƹ› 8™HrÚGL¿ùê08SŸh„6øÎ—ýÔ2^„ľ~kë1wþe6Ÿ0œYúæã~“ CÝ…,ÏZ%ÿa,ómͼaÀù<›ÂK>CQ$èOüY”Fsl˜Åb>%7©]í±¨!Sö%CFÑõå~K„}|Ä–Z¶uÓ$yŒx8Úiœ˜#aeG*ÚÅÇúÅFöYÝè5\‰wI óHDþìòªï¥Ý.Ù:mA¢øÐË“8J l(`3lð¯ß+ÓYõi:Ô,ùÁÍ·{üLºö~ƒéþül—ÉâÁþ¥:‘ÞˆDþ,ʶ¸Od¼_×ÄíDxd ùút„¬=™ˆ¿æZäyü‹\_I£ºb¨1ábÅ{—j×»n!.åõo™D»OBcîG_O) i-¾ùGÛ%9® v¨Â]¶)lÁÅ‘¸\ÊU˜Ó8Ÿîvh&kj»‘u,!ñÃüŒ²¸:É'õâðgþd~o¼”5›"÷l…/NðúU¾±µXyYšD™IVôIZËù}Ï®°&©šÙT­¶@›Óg÷3ëTÇY!¦“¹#°eQ…,]›!Æ@.Žf˜lŸ¡{ÿä5Ítü{=ECµIæž'$YO†˜Œ$ŽR,ýC[ô…¾ãCÍ€t|‘š¬^ ^²7½Í—€$ƒâgä›’fÎòª4”À׬»tPMìõA»5ÿ‘¤ŠÁæù·ÔŒÊ½ÙUa­Ûa!^ ð³ëž >‡xgøƒ´èQ(A&«ÊA G¹ïAG4óis”¡‘^ÔQ—=Ì›¦ttÄ g^/¾±¨×-«ÿ p¤§À@枪‘µ •/Õbg˜9W¡éQb¼VÛó–,/yÛAL“®ànGk u¯ââ¡c¬’hhTîŸ )m;|Ž> ÛÛ–|’÷Ô±_ÖâQª~À†{ÉÜCžL¯“Ú²”pW‘1{åʾ Œf3^c }öt$ÿV¥hùóLâk⽿x¤m,8RNHH ¡3q”ß9Gêý A|Ý˵Õo™s×úÝuøu陨“$—üM.;2fWý‘MÁà¦Ò:Ÿ>N³dº¾ÍYc‘¦æ7²Ï¡ uÄA7ÓoÞZ{Ñ= ´ü2Øþ¯ºiZæD,­®Q:2@)Eò&J,–=ûy~•àäéðöLʾ™ÅΞøîÁùø#(~C»Y‚½J‰ûJr<|Îßcë4qÞñ÷ªÐ©3 z£…™Ò *»Ã|·Ÿp_0š¡˜ZD â¶™ç¼a +«ÿìyÿQ ¼%'`7ßo†ÕÆdU4®ï¾œ^J@ÕMë`)Ç)4Þ@*…i+A³ç9ák¥^ü,šÿ¨vt5y¯ÚüMbÔ\Ò²_™íJð¿|Ìp™Ûù ÛE~ØOÊ®ˆeñ¶NÌ÷Ý#k5ß7RDúuoÙ±sô[ ¸tÔ5áÑk°¬øcµk}½fSê§ð0ýÞ¢þK™ó±MÅT¾ê€ÿÞ=Ž.l u8Í ƒ{÷XÇ1l- ÑСޓÿyÜó­­ì˜¯p˜•f¦‚¸†eF¶{×yNõÂGzèüùÏ?›kDçßß*Cîhz#×N4èÊãêö põpn“Ú –~´º~7¯¢0ÐÈ£ê/'t…¶¸w A2¸„µI“¬úùÐyÛŒ—ÌìüLÚ„·"E$ÊUÉ*J祎ÄçÛþ÷K&Qù¼¿Ã÷RÚp#îL O76Áv÷€*ïñ¾äjcÂë©[ývTZ[؈VÃðÂàdŠÙ?VDYQŒN›s‰ô½p7ÜZðgC62Þ#LžψüeMrôß³²5ØàÉᄤA˜‰°c”@¾NPoÂðæ”ì¸ÐþøÓ]BAÖ0)ªcç¯òuDDpó»8t®šýîæéûçéÏ—©™é6aß¼Yz2¤ðŠ­£ýRªŸXEç–v´ñ¢Vˆ:•ĵ7žþ›ÒØË|C$Ó‹:"UÎܱe‡úȱÚs»„ÑßüMb´kSúÞŽ«[õ¤¹À©ÙD' TZ'Ùú¦MM¥üvÖ¿+¥'AñQf(òm[{*¼ÉØEšŠA…ƒûºI©’ýV!忨7{ÔJÞüw×49Ò+5UÓ° ‡[H¯ðEêÂ%~g$E¨JÕØ þ \Á+ÍpåŠVdÿ "ïû±=6j•u¸Ì|‰ vÏWÃv:€jÛ}šç†çÃÍÒÂV ú:‘/‚¼—ô†­Ž„X#܉.¦54§´˜kƒÓ€gƒ!ŽtÑwƒ˜s\DQN¶8ÂÿèJó¼*YTv¬ÿÝÓxK´z2¥ ‹ üJ?5¡>Rsy‰ˆ5z+Bz!ë ºEç9-‡¦%£˜ºØôVPŽÎš˜Ä>V8[¬q "µÝ ”\wm_¥zÛæUùþ²D¡ß•£»å«cxñ5¾ª×¥ ̉Bd™­Éjýb#¥?â=E‡û—®‹Ý¸T˜P›ªº¡¼Õ†«A2Áƒd ï¿N™Ò~Fpúȥˎw‘NL§YaršTº”qQþˆK±Žª=DÁ‘>‡ü£L+]ÝkI!"Yëá—dRF$(y;·LM;e-HxÃØÈØ÷ŽÑ|]é‰ê槨ÅÐMfÎ6ÑGŠÜ̲ÿüüLÏÐæhÕ4ìíÕ\äÆó†–l0_Æ‹c g²%ò:Q;$ ŽßxZN‹ÚuôÊ‹ÍEÎtTS~Gh ¡‹ˆTœ©½a¢í«c RH 'Åç™íY/õÕkµe÷NQãýýá àÓØ³\ø´ $¾–ÇÂÚc¤cÅêä¬+_c˜3Òÿ"Z„©üÀ»N–a†+#C ±+2pÊdÊ\r˜£í‚e%TVø”" |Yg †•PT†°óƒûXé—ß‘ ™á‰ï0eü3j‘’«sÄŒEttBÞ¤òoª*<м)–]•r•Õ…°=4êÏ¢n³òšüîš ÿfìÑ%ý‹AoKFÿ¬šohƯ¯ Ú‚•&áÅBûÔ°ª)«F5Ê3ÍY¡x(tk{Nò òIsí9ÀÉѨw`²4wâwXpýç ü.˜¨x]3¡Þ?!ç1= ÖïhÙ#¨MâXÏÄö)žEØ”R§º•Ÿéî‹wmÝqÏ4É®nß¥â  à×TN’êQ‹áÊ €“>nn¿Ñò«\š0X[Ýj žJJ\&Q L>Ò1 ÂçÒA՞͢“‹Íò_|"¤”@Xºƒ³ní;B2ð_„w¾ˆð«O0,"äð^/›Æð`F¬°ô(¸9Ü.VÁ/ê-(~Ù<ôû¨!U뉞ñ7¥šë‹?RÕu…ÕŸrÌ)ƒ!ü}²ùZÎ’EUš†«Úž£+fÃÉfÇÍ œ³²Šaa $¡£à%ɾÀÙ2Ê'&²ÆEÄ`÷€¶ácº:ÖÒ^ȘÓé'èk‡2”®ÄjÐ!™h¢D·»Ä™ó3Zú§[ºXÌá¡k„üöAïˆQšïQnx—Ê„„þzyU¦Šbnñ‚_VuôàÉÓÏ¡ÔÊN‡[I×–Å?‡}‹â¯òàtîBh@nUþñ%õc;–ù9åM>xᆼ„wƒä·²M‹;+mÏ}JL?rùJ[:“À:?¤{åMi²¶û¹! ö•Ol­'ÐÕÊs±w½G(›Óhcê\¨+z«ââ#m/ dn–R¼¶ÌJúWþfnA„ A¬uÊ Ô/'"'úÑ©Àñ@uWK#à÷-À‘5Ö&ñ,Êþ]…À×ðägrLï…G_Zý]€Ñi-•ëB§ÅæÄAôü®žôʈn—4֜˓•0RAv‹¸Kée è3LÌÄúBÛsózO8õV:‡bDZh²šÐ*Õó NÉ›X‹„Þ’Kà(qòÍOŸ¹V®Þ¤«?ë^±6lp—üÉ•#4ïú·;\ëVAJ*&˜¬Žn¾>õÀLW¼JÆß¾}æ)ˆOû €3W ®×©®wlp7–h @Ÿ ,ir^³žìÒÂbÑßÚ-a¦äs®¤©ÄçÁo€.øE’Ùvká™TœX;sBêºÖóï¹ÄŠøÓ 0‡Ô%Âò/FeCൠJFùªÅß‹ÑçØWoyXœ Œt9q|B9€5%Òóg›TÛÖÂñ×ñë5ŸÚ ¶ –ä¬4ª«H+¬m¦“ló|–d@÷ʾ§§QGgÚ]}¸òhÀài!§FÓü®€$Ëx[“~nj€ç‰ä½nAós=°²ùLЇ}Ð>+:,5^cG`wifÒP'zSú6G±)"æÓ_°I?Õ7 »>N„¶Dão¼`zœ~A"cáxzÕegÇ1‡A}ÈÜö‚ªg½Ó{ ÊÛš¨oÓ5a|u`óÔ›5¸ëSÉuVpº1µ§oÐòI¨KÚ‹5+Ø£MŸ$<ÖI—Ë{ H¦²,ø&ù€³/ì?2š ¢„Ù‘Óy)ƒX>”‰ÚQ–×+ší â%%Ž•TAvEá.Žšf+Ÿ&=¸ªŽ2ZšŒ!Tñþ«  ³Ž•? ÞdÓü°ÊtMšsH&dù‰oó%÷”•w±X˜îÚÖd–oõaQÅ5vUÖ†öR.mV3{ňª­2®}Ö ¿?&oìî%¬u{‰RÄátQøkÃÃðg Ûµñ¬F®«ý-¹H V«ÙU3ÂWΌëfêÖak®1RZ‰Ê£Q©Lì]Ø€†×ñŸ&·J8¡0ì5btžüÈ0'óÌq­üÏ‚N|v4âW‡J‘…ëZV“iû[‚JZy` ÓêN ExúD!G‚TïFk£”§òøôˆù«¨Ü“@­S|nÏîc¿| ¹´èïG÷§Á,/`0-!p¨™bÒü®‚èÇM÷®ì"Н˜üsf·7d{’=Äwé©bl r z)çìé-ß%˜êã„€fÚ®öyGk^5‰VP(£Â>IrµIK󊂬Å~LÅÚ÷ÒèqÃå,¤¿ù³•+=å‘î[i–cã> DÛ¹ ‚ܨÓâ®ÚMp^½ÔM#çÈbÿÊX¾*Q5e$çaamu¹{Y7Rºím¹PÝ{Í@þÒ ^(öïúL¢ž }ùÔ”‘>Y‰qEÅëS‡þSÈ%pË+ƒ NqÇ-v@8(_!þ²8¨y,3‰Á©ÎAˆ‘ìB@4ZÏ«"KâZ°Òü%Ö®i ‚ø øã«i{Øn-Ýì¢Æ&5Š/ƒt±Åa#ä"kÔÂ!3wn2²kìïïÔØ"YÆÊçûKSñ³¦r?˜¼P#IpÎuzÝòV)[M–›  ÃZ«pÍ;ÿk°"œ™«²‡’¸[¸WkyƼúçÜ”6Iôƒ²Y>ïTÕµ´|±hh4è®d>ˆ÷§›ÿŽ* 'eþõ¦9ãCXþY¨¢ãžãi`¨²¨ éb•§¡{î%=—(@»n#€(_k%9ègtð9ì¦GW‹³_uaRÆH¢m.©,ØfÍŒ $¾ !üéOÅË~îü.1š6Fùd*±ùõ¨Tåð€ɲWxÿf§ò?'Z"1îøcÛ5õ¼l@tÁ!u¤H;Uiî¡^oý›·0Éw‡øp®<”2éö‘¤Qn”Är1®K61@¶¯ÁÐVŸ¥ŽÐ‰ÙY(*ñfDí]Ñ¡¥¦×e#£8¾'rÅC=_y¾M„ˆV€»ÔÆbš•šÍ …Ò l­»'!:_}üÓ‹1["Ñþ¤¨jl9kAìFs5=ÁíA)(ªb.)Í}ä8A%]±zTõ^Â:÷ æàs‰oû¯Š<•´ä>ýð.PdÝDGrÒ °`*¼QÓwÕ(+ü Ê ‰Ã _sÜjEÇÞ £7(–w`ªÿ=p¦ ¡¾g#žÔ²úk#X™ñ°n×JÌeä£Ðj+Mizö¿ˆ¶ÏÊ@¤@s°ÉYÝD8KßÅS¶kþÌi óÿj‹G£`=Â{à²õñ$$QLÊMkIDµ¤xG~ mÒ@¿ví·­Š1û·6þeÂÇCåÀx/¨¦Êƒ3ì0œ–,Þõü_Tìò¦¯NRvè¶ê)"Køà=,Fº~^mâ3úSëP|)úÚ€¶ß5 GI+Ì­–¦åìïÈ”ÌtÝ·çÕÀ ¬ëºL­r?âá@{oáä[l¶v÷ü.‚DøÆMö”ñ¼‹ˆöa3¿æ°MN’Çá à^ÄWïïtÆÅЩ&QX¸Ç i6ßé  "&áŽû…’þÿBiúy℉™äé@'½­ìê¹jý'—±—Í‘:ÂÜà\ú]lTCÙ†[‰§,'ôÊÓÕ÷Ô@G²Ö Ë·à}zåÐlU¥‡øbn™òÐ6&ÛäÁÚ1ÌD…ìlî§F,ýyŽ}ZDaŸÚ»Z ×xò´[¿ÉùÞ½.¸b±ßEØgBhµ¿®«xPä›`Ívkœ*­;>¬¼®UÔ¡œÆëy¦c¾ö¯Õi‡VÅÍÜrC8ÏwÁdªÍ1¦ÿˆ)=ÏܽÖQ¤7cÜ ¯JOggS¨ä§E€A_ÿ ÿÿÿÿ ÿ ÿÿÿÿ*ÿ ÿÿÿþõøüüÿÿ}ÿÿÿÿÿÿ ÿÿÿÿÿ ÿÿÿÿ ÿ ÿ ÿÓÿÿÿvÿÿÿÿÖÿÿÿÿ ü«hà#‚ÇûWÚ™.'X1ÌÀg ^G—0],2P³LXM\ØŸÊ%—ý˜¶Ñ¦în¶Ü'í®‡fiÇ!Ü'u˜ÏÖ”ëbˈxÅ«£´¡ÊM¤^X¬AÝ‚o¿6¾U[ìï# ‘‡âì1±VsÖAâ¾»­¡Xm}r‰d¥åìf‘9«æ’ü«]ºÔ¬çœ¶}•d+]·:"R«²—Ëùæ×ã’§o}›\Ø’V¦GÌjÐ@—JÁ&h1é q¦c¶I£ é-SLÛÚ°çRó]¹¹uiYDðFA:e†•Œ_ö/'c—wÑÈ‚ÃÈêDãàé÷ûÜA ã“1\ê©EK¥BA Â=df©—åµ·Ý€}ÛÖ¹*7}_ ¤¹T ÷ƒ´y¿Eu)x«ÃÇuy±{:­ ÁÚ HM¤«;(ÌnçZ8:$õŒÐnÒNÞxÛ?.€w$[qdŸ34SοßWÐ m¡îÏIz…£­·&‚ü}ºèꃲÉÓüª×ÇÆ[æ^{uXFú|º¹OåJÁþh<ºMläܬQ¹@ÙûqkŠˆ>†Ç0fÖfš%¾XP“Ò‹§†93›Q¦ÁeË9eÅË“áßën»Žï…YxO®•>Òëëö1£ \ÑÙ*g¹CÆ\é|o«§ ØaÕGZnP²øp¤QE)Š\Y ÉŒ"[ç4èmcæôE‡ÅWÅk#›NBö5]/U†v|7æŸÒ>®1KÔHHË d*»Áž;ó*–6RSWd¸¶ò; 6Œ¬4ˆz—E\õ¢¼‚\Ã]‰BpÉL¡$¸9„æUìµEgmWäFÜ®áe)9>œÓü«aÍÀk2¨¸1›™K%xÖW0k”)1Ú—©Ð™Ýô®»r쯭82süýuÖsÃ|‹`À‡ßýDr{à©›¿aÚ€Ü#‹îùX †|…’põë^C >ÓÈñg–µ| ¶äbÀŠ1„ˆÇ5Gõ@=xž$ ¹üøm:N§òÿC5èžp3ß-ŸJûZÏè¬RbÔx5ÜÑ×ÂgÊÁ<0;ôJަ~çy5iBåÞÇ8Ð9ú~.¯ê”òo˜µN©²•£}TqÊ©Œ!Ø’õÁÿà *E_Vמ©‰¨¿ù—[ððƇ{‡¤Q9¢«p´>z.DÙHNØû;¤:>Óü«h¾~†EØÖ?¹ ßòO\Dü*Í''Ñù6òEø¢µZÍ£4бL^Çdû<(»±=«„p@Dý¾6Â~ê#·1 “Üj–¥Vœ€™ã–¹XîËu­ãyÐÇ-31>­Òþ@g4‡upƇ£)‰v˜qÃ\:÷¨©Ú-!­-GƒÂÿ1AxNPù7²dë Á¦¡¿(þžsA ç»™>ç{Û§¶ÒÚ£6)òžÅ…i£÷àË÷EßýIÖHrXb «mMN…ÈÁ*È{Ùø_ìC(Û‹ó_&y]Œ@ïråµh[ø(šÏáÈHší\Xصèà^O°:„aWÒQÄì Óü°²}ó^wŠ»©MІï)â‚)[q6ýÝM’åROÆÂäDlú}®v B,*üPqÖÉEúÊ1Wóøæ×¼SA°gЦ=ûYƒ?a@kª¼8~bEõWÆ¢¥¥jŸ À \;ÁËA—3ÿbÌñáN½¥·Éíšn"PRÃ’˜·L@Ýv% á†‘Umýéôî@î^eÈWÕàQÖŽÝ9"}Ò²“³%«º–/O.JÑ£´þP¡"ò9ó£´ìòc(¨$×¢QˆA:vdO~:;l¥ž>Oä6L¦°&ÙÐFPm{ýc‡rægDK×¢»} D½# $Ã!Ûˆ à‚^^-dK-:}mÖòÓüªÖeRNo@ddaQô0é®”!•PˆøšåuÄŠ ­°’ç~pŠ ±–w>O÷Ï`h µxo]šEL¢:k°„ƒ€Â3jº3•Ë%¡©78Vm=À)›÷#Ó´ÅcÊ1 #$Á÷|ÄS¹ïSHc‰jVaèL˜AÍäÛŽ•þ³/Òè£bÉ=£„ß\” sŽÉóŸ¾ð§ ß”Î_&¤¨……³q4ÊÈÿ éŒ(Ï#-ˆŸãÔÚgf«çŠyU‘ÿ¬ƒ§š·sj}ÕýéÀÒÀÚÊ"’0V6’‘²§}'Ž«j䉿´/¬Áÿ¿ìŠh,ºZm‚e1eXnAjÔÓü«g‚ „7¥¡ÜlOpÎ]¬¿˜Áé=×·˃Å8¡/c_”w<’ÎcO(A8UY™Uí~ ŒÇ¡œ)Ä£5%–%,xÞv7bAÄõ‹&4ÃÜ·5ôË㻩XÁg±’~žO’ea¾HT·5d¿CBॠ8Ô9€¡fˆßÏÅÚ Ö2 µø¿ž£æA-² “MqÍòw’†ô»ÓÓ¿¢a"{†‹Â$÷‚ÍsÆÝÒ6©²¶±x0‘û¥.Û@,­Ä‚yÕ½Mó¯)Í\¼Š”Éd{O28ÿÙW¨# »òåGN‘¾±ÅÉž’üªÔÜ%/s\êÚ*lSJ…Æ“í”ûùVäöÑuma($áS³•Æ®é°k@n%Ubé¯jò€ô½’Ãz04+žÜž’‚&ØàïD?/Â"ò—"ð°-*ÌPÒSðÝ›ðLÃéþ(0•ht”‰íïF[u‘„ZAÇ+et® »,?|¬FÅÜÿ*ö=pÓ»ŒwŠ…\Š¥?Y^§Ãò² Óœ‚­žgöØ€b$§×Ð9–ú‚ƒó^¿´OY×—c•oz^FÛÔ¾ƒœo“Q„¥|-s¾Gú—.ªJÁ€…õïÝ“ƒAüÿ‹0)rÿ`zÌû®1>³¥…0Þ¡uØ Õ°Â6Æ'¡¬¬2¶]5d˜ëìùúÆÑ£>j™e¦»Û4úŽ)VA$*lò¬U¿g)™†½ØCTr(ÿuTuŸ9ÑWÐUs6‚YgØAšI,¨Oà?ئBêÛ¿Ó|,’.ñr+)£$ünk›û䎹øK«×Ows® ¥¯`…Ùg½Vb5ô¦myŒ¯Ý»KgÙâB,Å.—í]7l¾¸ÖQëňt=ÊbÜðë4¶Á™Ca;Qgì“™¿Kɀ͊Œl®Rq.š§xÒü­ ‹Zˆì¿ÜÆ[ßN|>€´w'7–ï¾×„q] (Œs/ðØ´~$)WÄ‘FvxÈM…ØŒ˜ê{³LV”±kZTö¶»?‡³Ê+ùrUE¼0!V†Ë©nJÛKI¼\‡ÙT}‰k&™zδEf¡†'ô Ö«˜hraAÙÒ Ž`4ª6À (R á‚„^o†OÍ1lHsf“{$J9ì+-˜š!l¹ÄÝÇ[é"ˆÏôí¸t O›`¥ø™¸î5 ÌÆpxÑóO¿P ßÁLdmn¶9‡…]”‹Fü˜LåtÊò›v#e´Å›°­˜7”ÍxœÌ1 » ÍOÄجÒü­÷n†E¦Á2Q¿8ØL€a`— fu‡¸Y¾ÉèÏš±ò}ðãdοÁÍ›ÝqñtÏY ,]Ùb` «¿õÀvß-{P‹:Êm'‚Ø‘gc}|Pü¥}C2v°r½c߬DI€Ha´Pñ¢nxþf³:’kDŠ9¼Ø-´¼è[sRšæÆÍ™œ‡Å¦5Kmönl —iÂ\"½ë[Ò„C²µ¯šÁ:íë¥ϪCp‡z®.8ht†”‚s:˜ƒ/Ú,šK.˜ °ÇíÊ?s¨°€bÅz.¹/'ËÒlhŽæ’l>bׄ2ŒË“Qy˜ªÑÑ쵩'Þ4ö °:Û?ŸjÀ̓K„‹_ä+zÓüªº~ú\IJ}DÅØ˜«M­¦/YmNL `1ç2È—õfÒ€±Í ƒJàn ÷Ïsìoï9ŽÈÇìç'­³ ôHlã#•+?Ñ©ClôÎß#ëŽ8Š0÷ Æ»Å.ûîç,ÏŽJ¸ ;Uèµ ¿6_†\ß[D{æë™7ž@Ëï >³×|œâ­,™”S+}aÁUÙׇ±¸ oÍ» 3ï¶R6Ëßæ/ô?*ôø†F°ÛªPÅN´HŒ]U‰rØËä:îaÀÊq0¹â!É3¬G¤PD”§À¿çßž!æÇU, ÷¾~¦–&ŽÅŠ^²­LÅtjºCØíTÅ›úÓüª»Ëk‰é-ôkç¦îRfÐËw“ j”¨ ,)oeó'ÒÆPh¤\—¿>³Ëœ,Ù‰¯ÎÕnØä×É+ô9*·—²sîÙD¨ßɨﻚRbA|›këG ¡. Á´ê±yðÅŸašØ’+„Àcr$äèIöø–ô@jçýÎ 7Ÿ¦õê>¥’ôñ!CýšõÊ„þµÇYLKd-ñfŠšg²úÜŸSº”ã‚Åüì…Ê`côXZÓ¶?bÏb×ó£X¦Ùˆ“ë… ¨W²:Ý ù³ù;$¦Wó®w™ãA°4±”Î#É´KiîÚ]”²Àf2öK»TÓüªº…¸ý‹™N \f•ÅÐ}èL\}(½§aL2î bÔ¿~GUÑa†òB-B_ €Ìn¡}J¢‘Ý0UMò´­Ñì,°&Ä€¯cS­¿Œ{uE¯›ìÒ¨y€‚$Vko:ìè°f ÅâïÖs }Q“_ßG(ÄŸ1õa,âíÅ"T¯âÔ.fsÚ@Žsø?O°k 2/ åååÒñ1âŠÔ%ü¬¯½^oâR?$ŠŠ®†a+÷‡²CU±Ó¬äÿÒ@§cœrÃGí¯›D7ïÒO°ƒ¿ˆ€ ­=Tåû‘”†³=”=‚LÅÉCQãd›w!CTÃ[#ÚÀÓü«qøÊ ¤Š¥ÚYþÁ]ø£öN `Ô"ZçëŽè0ýÏâa£Oø(æáoknåýÍ;r»]~×Ï4ƒE™;¸,.Ý‘]âA£·É%'`rÔ“ïÈÍ”6Uùñ²ïWC3l.¦a‡ëQ —RäÁÒÏZkhú"–3e¸•H{ÿáª>¥T’+¦9*–}ÇZáü¿Ô]!Š8à’ —%^‘sÕZ‰æÇ›?EÏÂ<·ût¡$XÊR;uV]@ùûÖ=Áãèa˜%ôæÒc?Ž\Že*òw™Y[®¥ô×0³#–íc#motTjºTJÓü¬:ß–ýæ^HÉ¡ôyqÈXöuß§XS¹2ÎÁ$;Š3ͪÈÀÄ´ YZÅ//i(ט+J‡«©Æ»®`½ÅÍ»ºŠÓ¤ûÿì™%3ògœ*º:õ"ár:¸ªÈ¿ºãpîÎeŒšÎ¢¥Ù4©lgk4÷‘9K$l/µr86îKÁ†ÕTâô‡Òé×ñ( cƒCé=ig‘Ö€Œöµ ¢¥ð]Ýj1ü ºmòÆ+–›ßi³ò‚½Bft]C,¯Ö«mkí£Ú·Î|¼PˆÿÚ¹ZÏà.}¹úˆ_"9ó›Î×û|jJ½{h…µ/×’Ö>Óü¬G©˜ ôùt«+êªú}>ÂgEJðÏ „Òâz©¦r@Fç”Åã> FºWµ‘ƒAƒ¡MƒçÙŽ µ¶vNØŸª¼FLTçT°þS€qzÀ´): ±%‘nø„Û+œY)Ô‚8-UÇíÀ_ä¦Ù*Ű»¢L1_¯£Ú°ŽÈJøx20Ä13×Z® †*|L³ Ðq€ ù;ƒú{ Ѐ€ÇåÆß?xdØæä>ð̧Ê~d^s¦$åîÀ¥€”=;ïP0¬¬d ýY¨©Æ™ix³™$?éëu“Ê[VF~/y•NÜãLŽqg6`œ4NÐÈÐü®‰éi /FˆÔ !}ú£” óu¿“&ak$ÑBlÎMƈ¼éÁø{£º?u¼¬"¤Õ\cÕ§ß­;‘à¥éoXæ2ºý='_8@= åËr œ2;u=µ’íclwNX¿vÊÚè™Ó:°ŠNjäÏ3=!–ÏwövìcdÆ¿]]ù…ÝÐëLø@-¹÷Y^c].Ó(ížäLo0‰EE2àßÎë¹NMk*«{2Þ¨&û«±¤%a 7í¹´[a¥É[Vï9­(íòÜè0þ²~ð¦áWæ}Ðíiœ46 ¤*Ø0fŠƒVÐ %ÅpžM²ÃH¶ÔüÕµ¼t‹qqž•©øU²CûØá›,æD ¥Î}ÖE2¸Ñ­¾!ô%¶ís.¥ÐÇMÁ´¥=Zbk~4­ÍÙ°$Ÿ­uHñ­mè\ á'2YÇeçà¹ïZóM³xY»Ce·q–Á G‡å½&mûx<Ç-PÙ2‹ø|K*Å¥”‡œÓµi³ÜÝHp„O÷Óœ=OƤa¦ì¡1“Ö1R‹úôõ:cèŸJ”KØ À‹PŽæ)ß§ñ ÀLiÒð¤œw$9ÄG…éÕ½×¢žCo´¤ýKE4¶±ºÅÃäÖ{ºóÓ‘Ð àšd×ê uúê©6JíWOÏ)còšŠÁ,íÒg#¶d“r,.» B5ü¬÷É© c§4o¼…íë?ê ˜‰¾²mTÖf!Ïšþ¬zufÒ9SD»z%^Ê]Raý/Q! +¾Ä•n8M´ø›kh¿Hà¾Ó å`ëR½Ö\0Õjïxa=–WŽX8rCb€Þœàäî˜ õPÓü¬ .•peN!‰Ó¹„t‰È¨£ïæÌ_JXëªv70Ö½ÂÕ÷f‹šÁ*aÇe㧘þBoW>ªñ‘¶rôh$‰]°g!e)ãÌ»be7€C -yH}#ù_X®®v(n<»õ©};¸šúÐ,èÀ&Ì[´Ó1Â~LÌÆÅB˜^mOÁ[Áш˘½\ç@àȲº¥õö'ÓÆÉÅ4q齸Lj•-äkPm“פîÄ=3™_ø®º9­©”Þ#Ö]…w¨¥jeJ¬fíwïøÓü­ ¦“ ¿¹Ù…\—1„á²X WR5èT!¡YºyGš<&ôª/­×X“Ìöc¾æ±tÖÑ£Qcò½M /Œ‘ugtŠ·/ôŸf ºG¶¦ô”ÿ2ƒÿãë?<Úv¿ƒµOlìeøs@ý@/õ"Ÿr$‚yŒ¯ÂB¼‹[މ*3ðu ‹IÖÐTP÷àKŸÏG¸Ï×ÓWšÞ·àžsðÃ̹$Š£’œ/Ó‘PSùÌ1;–:_ôm¾vðk0Na!÷)›žã {–zv^K„>¼¹û´`ãû´›í סýÙW(½ÇÀ þvc—¦DÂspáD@¢Ç Ÿ,ŸùŠÓü¬zÜžÖšõ6Œ2F‘6¦‘§ë;h¯µ)m$Xrz?Ä :q¾„?òŠßÌ÷©H>Bˆ{”:ꚦ5?l·Œ¾¨/ºŒIe­Œ¡¾Ú¹\`ć8)i¦¿3tà”àúÚpÓù ðM™ ”^]úy&¥ÿÎcâ Ž®çkûfb·ÿWD¾xf–+÷½—-·©ôp¥4”—Fˆ¤PëÀ°':!ô1ô±íš_­z†3伊ßUIùæ¥%§JQä{ñµ˜„ÉÊT—*NÌè{òxô‘ÊEId0H2åµÓ°}O¶t4¡AúªUÊÓ ƒçzî¡M¶lTæîq‚ŒhIJRf·&Vý@7øÓü­ïÔj…Ýrl+ñE3–­·Œi±;0-£Pw°TE^\ K£ùVðæ…3ÙoTG—”*Ð^|¸†DÅ}Fý Ñ¥k$ÙÁOžöB>…¾Ý\Ñ ~DCô¼ä@aóøhÖqüëúüå‘Ý-„”µ&Íœe-‘¨~93IÀq3‚1N§-›µê“Å+k0‚¬I}¼4›¬UÙPP™ùÖY+á團ˆ÷¶"µú:ƒþøŸ<4~Íã&—ÙØŠWB-ç®øI7ýWK¹xýO»hØyœ žå•ó¡°žä´;<Ÿ /¤SR÷:³ðÇdAˆ€@÷š0…-;°¼ÀFRÓü±Š1¾€ý´Ç-p‡Å‘Y™,–l¡Û,ëùÒ›i—7¶é¯ QÇ;ž÷ÍЭþe¼@J0ežY6û`;þX÷mÕÀø1í! ïú xêæ:>Tµ“ìu7+<¸ûײû5[óì&lì›ksôOÉáù¹X@ÌO§fš8‡³)ÏR‹Ç[Ú¶ûXh†ÎX:–Šô4‡€¯›MgØDô#ÙØ­Æ‡UR‡³¾Ôü®QÀµÑ磹ð)˜ò·^Aœ´^â5Ð瀺à. D‚]Éî&æí±B8‚p;Ê0ÙŽË䯔|\º|(Ìà€Å1„èØS„ŸÖ¯¦°Ýárò¦ÂFNEÑäywÆ“º(IR™GÜ5>Å•lÅßøÆâgÔIŒhrpKêA@´UÄÔ}зSÒ^x¦ù˜·¨²gØ÷üsâhfL‰~k‰íð¢5ýÇHÝ´Ñá·œSQ8玢ÁÎjËó„ÑÏ,=#ÎÊ|À¢ø •ÝŠñ;ΧÇ-<³m!LO×ð„±‡½W FRCæʹÀ lð2-F-¯¸PÓü¬Ø Å€â*U+ª•ÒffÚç°:ü‡,¥6„ãnõþù¸dï<ç^ýTùc<[õR+ßàÛh„`KÿìVÜ© ±ùæq~606kÔ@f侇.õ­…¡Ë1 áÌT8N½&ÏÇŠ—[³@åþ-Vo!Ðà©iµC<Ô¢uâóê°Þ#Œ´ùÖ VÖ¶ÍEà96 =íÍ|T\ƒð`¡£D T°®Â^’ìÑ4z{ŠcVv˜~2•C¾+ñׇ‰"b7)¼`á¥Ã·ŠJ­™ú4uyÀì¤wʼnœ_5`yÞ;Ê eÂ(ÓÖDŽï5̇.ÈÜ”¿Ý=gvß§™¡®=W‡N@ù³&Óü¬ 3Þ/ªä*(À&? zY„<Â?ñ²K(S=Á«(€Á=%ÁÁ p8Á”q÷l7ì혥ôã.éÕe¥F_Í 'º¯m¼‘Øj•QA8¨àÌ=¡hžö‘hÕ„²vàUÚÚ7 £.ou%ÉÞp Œ4à-ñNŽ»A³ÓhÂȶ®Ê"îÅöçVs¼Ò±§>µ¨ñ0üa™˜vV†æE£ö†Ï}öü¯šLQ%b¸áç¿ë8Þæ†FàÊ €öqë4NÙ –¬.ËG9†KR: ·Ün^5ƒ‡²ŠsGp5ŸÔ–™â+Ö%.“¬*j À|zIø2-g$ÔfÍ޾²Óü´èÍx o&¶7žÙøå"*fÅÂiº K’{hä&øÒG%)±‘cŸýî" ýÜЇ•² ŸôRÒ½öU4ÓùA¼b4Ùëõ9¤]²l µÒOå¤0s!¹ãkå Tkänï—£'üti:<@†+Ʌ߬ÉhoÔD\ßHv— Ã÷´„". :õ“‘ü§O6õ‡ÂŽ?*Í?!ý:³ žr\sý?ß±£š†èƒ†°Õ¼ `̸ђcã2ëß6)!›¹ÉêÇû/` >Ö [à ¾î:gÛNž/>? [;Ì…æ5%ùE=rÂcØbãÎ÷ï¸Íó®¯è‰ÝÐä@/Ÿ)es’T%ªŽ²¸YÎl"u¶\7k¤w’‰%ECÈçg£«üîuê\ŽØB–pŠ¥úì”m]šÕ*‘Äa6¶(íÜr¥~Ù}»%­?áýš ©ûbjÐ7xX¼FübÓ-¾pSpßsVÌ1(ùaöû‚BÐ7¡¿—sMê±¥ÑÁÑSÅ€6¡ žG6-÷è,t‡-DîÒü°1î\ŠÞJf{§?˜ªÈa `ôŒjô® ðŽóTŒ u¡xUÕï V’¥@¸òÿi1 Ëj¬ÌLèÒÑx7ɧσ)cØÕù8oqïxÅ ³ˆååqA³=úå¯ò÷fó>¾6™üqÍtW{ ªe%M“Mf" XvÉ•GPÆ6¦JP­_ñ7Dš<…¥ÕI E±¾=ø½ø<|2W€Òؽ¬1³/ö]屋ì,ƒ0ye<×Án«ËðR×þœŠa¶Šù÷N²6æ‚­‰±î*×€L2J3Þµb žM ÃÙ?ù~`¤œÒ,¬KO™†öðûªFß§=*{©Š%|¬¿pÞ ¡m³ë¾Óü¬5*oL¯~–lU¤Ø ¾ˆEQ•¦ó^d’\Ø×&§½™( ÝRïXRžù.ÜIôÃy+çœ,ªÄö ÝûãcÊë˜èlkšÁqi]†+â._pÚÕvKY§ÝÓóüôýwh)J]¢+£ Fa,!”šoÞLú© ðä@†£PGô„téÿµ¦û7‡è¶Cì’ ðÃ}%ü£¹Õ›ñӼɎ>vŸÛ×Yì3„äªû±´DæýÁñØp°)¶ÕãÒÕºxOka@h{kØZ5 K&Õp{cnÍr[F|üGå"@FBOþ@›â‚L" Ö2˜xKpÛ²0YNÐEÕfÓü¬«¬[‘qÿAõ+b4¤ð:O›8ÍöJ§ ›ÕõYïj@}Ël«WÑT×õ’Ghðwx<æÕþ¥ZiçÙª:?È2cz¢®wù6!$~ßÔ[¸…µkü碄è·e,`Uöök•’‰Š{®ÈQÆ0$Cå]•½¬áë˜q1P £+*œþß ‡%àËžòðÃ4:F¡w2„!64 MþÕÿvôª‹âÀµgvR݃SqÓý0Xà”rÌŽr0Yš¦}(¤3¼¥¤—pÇ¡\ÅÆœÅd¢^¿œ>˜4$Ä«´Œ”bfºðZm¤C†\þ.þÉŽ‚N…Ed7àT®ÿEøbŠuÒS›ÜGÑÐó¸ÓüªºŠÔ•X½rÆ$3ÕÂÒ‘ÿz‰Ö= ‹xy‡IÀ–œHXK#­ B¦?¼æ¯Ksqm~ÿ(×í ‘ï6»ÝáŠä+MM¬²@¶jävœ*©û¾=pÏìÆ‚2œË’ òÏJŽ/p½ÈfÁž7ýÕ¼*âs g¬GXº—ÓÍ9Î8&{“‚šû{†:(-¶~%â\¥EQ 9o{mï¿®4ÃJ~Ó±»a&9ï–[…3¹çõž?èªc t¡–áÝÍÀU£œšõIÒô5ßX¡¼Ã÷äÒKfå ün 9AÙØÊuB¯+Ü0+¹Îâ{åñú9¸¹‚mî Ÿ˜Óü¬8òêÆ^ê’ÿ†ª¯™þ5 ?JÞm7O%R4Å ,á ië÷GÑijýîÆt„+\ ãz²>ïËÞ…,:Ž>ư’Ã0˜50^¼ÚCTÆÁ7FÚRH‘ÐáɃtkr!‘¬m¢-^K\AUÿ0~†˜Á{£WPŠ¿y »»S‡ÁÝl8Éê…L@¢HL·-Uƒ¬"kãϺAPÎb£3ÄÀÁЈ8RõjœÍ“n–²£RÜècê.KϨŒ_kßjdÿ®¨"9&e"F ®Ú/1ô5fÙŽõ¡Ñc½ÈËÄR(~òo±ørSC·æàÒ»FhÑ'ž)æoðÅ[KK¢ÂTuHÒüçôˆx5 oƒ³]²lÿæé}åÌBZ|éz¬åê™bðÅSÜ‚DlœÔ<ŽÛz¸%© GÄ\Fú œ5,m Q£¹àhXbÈlß²:mŠ¡æ²Þœvw€+þ'yCÞBüöîå¡%³{êæ‡|ãÃz™mo2<íf[ß®ì F½œ€p¼ÙÇG´DÇèöl:]w_®#´o8m#‡ ¤]íîõmUz~öÿÀýüs5{v++€cm¥'d­¾ÒŠÛÈ©ÁåµZ¨bÞ,·ï·õÆH\ šÁ$ôð xÀ¯fæÙ}‰‰nþÑ4Ï«Ñc#[y™ãØŸÑozf»LúbjØÛaìüw7JОx#ç8¹­ŒÁ¶&wþšÎëqìx0DSÑJŸ˜^‘%“í–“£bÝ6-ªk’±_WÙ‚ ±hi_Î\(?î ¤êÜÝAÔ½sº%ù“+=ºBJo}Ö’ŒØöÍå®Ot¿ø©‘qÅýÔ Üœ»GÓ@pAÞÀ@—*©h뫼§v[Õm8|wØ C>òsç°½9WŒH••Øå½4y¨VÔ4{Ä›ÁëÓÜ‹~¸;”ŒÒs$“Â/ îÖ¡ ê-ŠŽ%´–c´LIö;ÒìïWR¦Rü]‘××i«×çt#snýöo¹6úúê=n”V£Êä¸Bi '#›¨¦…örìU9àžñœYEÿÌð Lq©%à袚ðþ¬¢ÉO8˜ýl×ãã`ÑM,ª'Df¤…¯';2/ʧŸ‚w¡)!!‘õ~bAõ±W–{¬žnj‘> ùvÔöB^àE¹£ÿ9i€Wâ'ƒ6ð rò´}€_äÖtëN°TàÃD7çëeuêÄGjô6™.v÷ÿ¿ZQô›ý¯÷ß„‹yj´hºÄ‡ÚÀáZî<þzN×ÂÑ%U"J/BÛ›9˜Ûưz%”½ÝL«”õÙµüÓ … ±$d¡›>&Ô,Ob]zß{}rŠÌÔ(§hâ™ ƒÄxü%ÍØOЯƒŽÙ,A+Í·—è0ÿàð€”ø¿:ÓрŤuÐ%5É¡ÉȉŸ…äVlq>ef·RÞ—µpÐý­åŽXCÁþݹaž0ÇYúÒ«2o`X£sv¤!¯Ç{C®™ð(x“QGdóp©dÓ!1c¿„Uþϱ7ø5ãdquÁSè@ "ZV +sm¨_£«ð¡bñÖQ©{¬³H( ñ`èÍ-ÈAɺAžÅ9 ó=ì£Àši³Èb¸iÈM ˆ„Rn¹rÐmjk.… ¬Þ9”œôüCÝdò†úRìA)Ø;!¸¬ÊSçÁÂÓÿ‹Îý©é”Ð\3n8ÝIøó6ÜŽ^3X‚˰ë!'…+§#VÓK?)OscÙqç#x&Ñ× H¹ùõ÷Ã.Ô‰è<¤„ó{y—s(ª;›">-wû×OúTnêg2Ú /ßaI·°U1l>GUÆÕXÀBYEøn“¬ê•DÛ`ÊÄF÷ô«“>îúK8?ÚUJvTÛTJïc®Ò;])Šå¦µ›Rc- ©ìÄ#šÈ5i²÷ÎfüÒÖapÆ1my/ã7å!Í£×4U04ד4>jY’Üî‰ö,x,©›ÝQ`H)6Ë{¾/@Á|A:ü¬GÝÚÞÅ/¨Ã(Cœ ÿNcàÝ2·çøŠTð:[éÃKñ|öG”ïµË±Fe: \"èhT„•ë qçD’¢™~Uñ‡)Z¸¿Á¨ ’NtˆgNzŽmu™Û݆ Ø@g¬š5 Ò9”šÂ‡×n{ ?óÒÞ¶øbðøððâˆSÛ÷ÚÆy}ëÛ:8í#»dï³Ò óÈ‚/ H®¥{¿2òÄôdcÓ¥Ìï±—ì›<„¸K-­h/«ªt0Ì>¯ûÂ;ϤΊKcŸ¬3øØ¸!“·à)é$´õZ¡¿±öZe þ£h0¥È,´Ul)Û¼°™žš$„ `·Ì:r(z«+¯ËêÝ6“ æb»M1ý[žé±Ré³ …ŒkÉ¿Ýê×\jè,LÅ p·Ð«õH»ÌÓ]²„‘¢êéà§‘¡5 Fü½}Á9K‡Ô?¦êæÏä~.­¾­„„) ñj&ŒÎ Åü­(<¹³–¨ ß‘ÍØ«þŠ÷U1‚âNI¬…êTõPµ©y¤"o„ŠfŽ2™¼ ‚ßCaĶʳÑÖõ1€8m× !í¢’Nñ`)p³TX‚ôšÅ¨ªD˜þáÁ¾^÷ÇÙû ±ž]ÌùSQÜ¢”BêêCsS‰ßE3$H½mlÒÆ$ŠÌßlåúÜ•EÚ¾K’/Y–BŽ÷.Ï1‚ñž€ §åà²I±úB'<±¬8™ñbtd‰o“LÐÐæ Š C™ë¬PBÂÑÇbˆd#¨¦æakçûÞÉšxWKÔ…¶É#¼t ì³ÙGþo|+g½4¡•kî=áw䌊9.Á¡áKÂ|«ü¬FD»öv¾Ö㤞Â)8åý€qŠÁ“Muæ°’Ql|ë/ˆ@[ÿ5%öâ02n~ëZãŸÙw#ª¿ Ò”æh(€r ÖO91¸î¨„Þ±ä˗؈ŒuR–²Å„ËéãÅM¸£YÉŽc†rŸy|Ý š•¹%ð%ü…<]ú; Dõw‰¡°­f´*Óý̈́ԿÄ3öµ-²[^çi=R†ú´r#ªêW@!E¬—NfzܶiõÆ]¹ ç׿K âÐÏ(& ʯßa/n*T+ï-ˆY†_îÛ½´m›ZCïMzßvaIZµ„»Ò‡ìË(Ê+²”®Æk¤âbž»¾1^ÖafÈ¢NzÛT¢fíÂý ü±s`ÚSÌ“ ǃª²gƒ'ÛOˆ×3º™Šø;§3‰þÄ#Ê…Å–p€þ4þ³Q–Z¡Ñp ‚âøE¢wœ€j ݺZÙ—ÿJ-ÜÝù/Å›Èö·ôJ^,4§Ãe6^7ÉlÛÈPªWNªÛ¦of«B †›ÅŽ:DΜ;=±±<£Ü@§}Åæi4ÔÙÄȘ}Á*†¨Õ:ønü“ú%ÁQ¦Qà o3R¹!´è±|‡g ÿ sGiŒ¸~m¡ô²ftD€´¡'‰K`¡‚¿BdïÁ)X³æÈ1ùáþã·`Óʾ¥Ý2;\öɨð Ì.EÍéÛŸO-8PjÙßÌ‚\£Ä“UGžÜ¸ xÒÉSÓ?ü´îk·‚ç–øA•`ƒlç–Ó²8ã°ÂÂÓ3Ös;ÅýJNõ ±E½ÿ‡@î x§8Í-p7Çùr‡*~…ÔØS3ËT¹•¹¡­vq?Wp/r‡ÞR÷I ؈»hdÆÔIk‚˜ªV­äÿãCx^Ћ–†„¿+Ôv5Íl#\tïV-ïæ—\žýNõ¨5DhB½›¾],´Ë1×1ª&Ð.bXQÞðÛ,ÒÛ&·m8¦"È3FôSžS[*ö¬»¼KÕI¾aÍŠ•^k(YMXsæ½Hl †’¸!®†‡u,¢-7™&^ ‡b€ÞߎEï·šÌõ±.ºIaÁèÀe½Ø¥@’øeé#—`bN Œ诞Úºi—‡oŒ p-"ËÁ³í'ƒxBXJáËôB©n±fX:Êp ivÀ7k¦w@ºOc%xO^™ùo/©»ªão~+9TL_V=CÖÞ Þyú)J›nâ'š¥vž&˜o{Gúÿ£Î+úþpá§Ö³çH}KâµÄÆç¿LnÇU™¦#våé×øüiüÛžçÜE˜ÁISšD[]ÖB?¯ì•_P¦ÐÐÅ-7Æ{küzØ9sžÆ„H5`W–CÅç´v8ƒ‡=n^fR‹ ª}ëÿ9¬ö²_TÊiåÊ$Wúä­ÇȉÎçmêh'««•h„+Çé5¨K—TL˜³€ ±>Ëã@ :u²=üÝW—j0WK ­{a[k0ø~6Ó@sÌÜV±¡a’eü¯¹ôdI!÷‚ÖÇœÀóþJ›ÖñˆàúºÒ¯…)–çþË%ÝQ“C~,r* ˜|Ãõ;ŽòÔŽ ¹¾÷çÔ(Ù Aƒã÷šü‹lbÔðýí«càQÖp‘uÌþ(¯ ¼H®G“ÞèÏ»çÙW(7‰÷r©(·¥kõ,Ôˆ{/¿ªÙ)P €þË£ÖÛÎY/ñJB+ÒÜ¡–ä>UÝKê8³ð²š=1ÕÐΤÖXiù<´ÝÀÛd‘÷¯uµÍ‰0Ê”Qø&ÉT[rïiìB¼W{ è"Åú§pU­FŽŽÓ¨–*ÓEp>.4àO`󷯯²å9\¯“]zú–û²r!Ä{¥ëš 0™^pó08W?qÈ,sñçº"î †7ÅÓ9¬ t‹‹ÞIü¬­)Y8NáQýØÔnèÏä%fдºõJ3 ÿvÛlÓ§æÀ<¨·÷òÃÑ;‘vV|&½ž€JGg„]jyÈ*µd¼&JPC79r0 2 /Ó­$œhWjXÖ{5cΖIç\üŒ9~3cP+rhž!ÂÔl½ßÅã– ómÁTi#$ˉLäk}ÒP'Ú›Åð>¥ Ÿ÷¸`¯Wä(¶:‚Ó*ƒ ‰óýá\Ö„¬X¨‚nûØùÌÒX¾Y&ûð­æÉå³%?ÏʳûϵڱíäVøÝ÷B'ö|zv–yvz[ÙÙçö8… #­ˆZZGžègïëpŒæ~Ð-"á3Áe²´!19&“ü¬FCîU+íEs o´z(U+žSa³"ÛèÅ[U~St(s·߀CJÚ…O»XÑÙ…&³}ŽbÞ¨Âÿ¸ûä9⡌ä¯èH6¯úi—¨u8Ý£œͶ§öH\…A~3‰Ä£¤;::²ÖÛ™¶nÊë’uÚ5Û¯‡¨É%91ýÊyÓýÅ(>ÕG«âm´“n1©ÂäZ£¿µ5-%à"‘ç´Xq¶C@1ï/º…åBŒßú è>"¦dõ_uóN~Äj^ârÂaIZJ79æÏºª>ÕLá¦&Ù×SXL—ÿ|r.óö©@¹$UbUÔxnü Í4OD”v“ˆXì W©pè”ü¯ê™‘XTJ\8¸u2öÏÀ4‹ “‹[x÷qð¢ndþ;ÁSf9(Û~>ê’(~Þ~ÂꘔúOjgk8÷¤utP¢Â0*Š~qÈtÍú„ŽÅFïõŠO`–’`yزÕ_ß\÷ =ø*€!Úplí¢ÑÂá²PX̹òDßK]¹& Š`¼–J¤x½\8o££q1ÑæxLW.šŠK1Ù53õuzü6’úo°L¶>““Ûƒý(½G7§]KË ¢˜Î!x%åÃÚQrAÿ°×sËtOѽŽYg2÷¤o”ösšë…¼(ÛâLÀÌ‘JûSÉý4\áÈÉ3È¥0(£-ÔiH¬*“ü¬4¸v!nU-Œt­rRûé#‚33´Ø ³¸dº•Öf@îT#©£~H‡t“Ìo°š7@¢±m³#ÈW秉R Ô³Ôº4ãYyù ¥KaÿK‡7À òWSR°WîVP_‘%0ª;Ëh±ØoÀÜ¥áïDNσ¡BN'Š]FV¡ øã¹Š%çg±6#º™ÉÞ!aÀPP&,Ç_X÷”óªyy"º­Ðà; ‘ãºn–¿V^[ºíðyÙ¤ßä¡Ê.?vßPR½ÿÉî¶_½MOƽžLsÓ hâ9õ½5(IT¶nÈw_Ø…3š­õqt´ ¥»à6¶s^#Ô2ãígRÙ}ÃÏH— ØÛ—!-„á¹’¹ØøÄ6.<ÊÊÜëXœ¸ŠýbhÛD'לËñTñZ ã0ü€Qi8/ŸLëII~Bò'3P%Þ÷õ2Éî³àM iæè”ü±“2U]sì"™ò;óbÆ]F0¥záYVwãPÀÕtɤJá öÿÆx<'óâYt “| a¶×â‰$ô9¨]#@§ó¯mѬ° 뭥ܢŽeùi‰§ ×J¾uú òß”+DãÄœ¥›+Úé>;–×Jh8ëWýÿ0˜'›™Ë5%ÿ^Ùév¹W7µ œ]âöÆs)àd ÛøÅ+ìÿu°Àñ¶Š–¨åGüHwjÉ&ú~Îe·KËLŠoüÅÛþ”C7,AÊ0¡KžuLÊ Äl´-Ñ<Ïœ™šµqÚU»õÀoåR5tßjÀ–öIÇwp¥¥n£Šq¹Úsyì íº’ü¬4”—åóÜ_·kHLÿ­”3ù?¡f[—¤4DàÝùYüýÝa?ÂVåœ~L eT½ Ó¦é×êE!™X¤¾‘Ýí–cSÎËדn¾µQFãëóC\\ª·ç‚IB%*ú|î9ÌÙ‚ëQœË“”WÌoÛ'@쀨#&I¦ ´¼Žü'çJÞÀjs.pF$õŠro‡ª¯èùÚD‡Ú?†±ô,—žŽe v˜:ÕÄ*&Z-ËïÕZ'ؽuÀCf!ž[6ùoúxc.øÇFY4f Œˆà[½UÂE”e…sœZ|æ¹·'<´`â‰å Ë)÷ÌåH›rƒ'¢0xæŠÒü¬<àBVŸRJ!%¾îÊ­¥’ͱ"¨…J¥1/±†dÇ6¶RÕ,•I71Û!V;ë4G!<¸(bÒ•tV½É#Ôch«Éíš@j ¾Ÿî5ñž£R¬Dó> ÝÉ2Â!‹Jôã8ÛWàscúi„éô:·Ó±Y„%qŽÜê);«‘x„X=€Q»ÒYvÈÿ#cGØk­O³Qc$ˆ¨Ƽ“µY´4#†O’5)L°¶9¬É‘“Ÿa¿öà‡Lšÿµí<®Dyýd¯^⩆¤™Í“dÑÙïÀÈ{Ûy“­f^êÜY"¬)/ëtW$‹VnÈÊ‘(E’Ôü¬«¨yqí3Oõ{ð™÷Ûhn4CãàchÛ†:öºDc¦êâW% ýS~ÞMEöCzy×_VI°~Ä2D'ø1™Ð„]8K¾ÄìY:àããñ5­¹½¯K e]*Ÿ]xÄìCáX‚l Tz!ÿ.¾$ÏE4ábèp§kï ÿ 4è ê“*qkΑY³5(3H„¢¦aŸÿ8®ÐÖÔÄ6íwÍq#‰žÍû¡™mÍíò랈©úž†0~Pÿ¢Bm R:4ˆšŽ´’߀M¢ )íÈ*ÿw¹8!3a0,ßóŸó¸n{0nW~èBd5¸j¾^¡Eí Òü¬<áÉsÂ~0X«7ÅÔdŒÇÚ ØNˆ_ŠåQÛÈR±æP 6¸Ž7Nõ‚F¾íÝ#¦YZVYß·šÂUr™néÔÆpP¥€²æî3¬€Xæ©r•òýª8Á¦ºd‰@ý‰óŒ™0t'~Á{u:–Cl£cpŠá^BF|<ˆ&gNgóâ3aÑ4XH Á¾¤Fªfý%º0’’¦g§Zo3ä'~ù~ßåmæŽ^”´)sù²¹ ¿êžÉräèÄ«Q:HqÔN›A]@fƒšˆçO3š{&+µJyÒ) ç—®£kï´A*“ihBæ·&ÐÖôŠ渒•/ÍJÔü´éR¨Á(Fætíâ’DŽÂî•u,¹Ò2bW¹¤¡½•Ú#Øx1UòªŸ'Pæ¹Ó#ø7i{ƒþþ·¢¶¾¤)a÷/IFÜ09&³L7~æ{A«"‚ÊQæ*ÉLÊÒì{š»×ká²X¢W¨ŸøZ+à@.š|F~H*=ùbÚc‹äi3 >à¬æð¦i^Çd‘ÿ”è–6ŒÑl'&Æû”â¿Êã²^ ä?¿÷Ìt¯'¼­yÉÄÌ)áD±uÁ†«€¨§vq·„OûX†÷<ÐÖć›ó´ RO:GÈxüh+îe˜é~cSl¯ÑJäær>ÊûjåX‘n[¶+8dœÉŠ“ð dëN—v6OÄÛ¯-&(†XHYïGŒEL¢â>^ÁœZ"%ÚØ¾œ,Ô:Íæ¯ù‡p§Ö³ùÈ'K”›†O;(¶÷´a4$Ó‚^O»ÂuʧiÉ¥š<|€€ƒ”=¤L8yMƒ"ÅLøÿ¤ÞÚcf¨´™EúÓNWæÓå»uDò8ötVó5Vö¢%qSÄEžA?Šõw…KqQ ~! L`æ¶Ïë(Þ»óº$½Í–ôÇ@,EÓ› !Ñöƒ6!^ˆ ÏÎ¥e–ãÙæx)Çå{|}Ý÷)£&*…ïÜ}¿‚Z•ò­s>‹«›-¿ÚµMüå"égâ·TµWnâ!r[’!Aš¤lKk§vZÇ"òX’¿9èB îÃY( šœyÌÑ{L÷Ú°É£˜M@ÝÌ\Z®F)À¦ñ+XIÞB|o8„âtußM“aö£HÎrƵ`6¸©ûAöÝÔá˜6hi5R·Ýâ…þ"¶¼÷«‰Ð¯B=ŸµÐÙS™d8µE`EH×9f ªàç…Sja…Pú¶(çŽÎsFÂ}ªvUî‹)ž­€H¼‹µx‘ü¯ºà>,*̵änx—ì‰S~ò¯ÅÞ¬(̓ÂSiQ}àr RæõÏPEœê*ðIº\…òÀ¬¹ÑÓCQ m° î¾ÚŸ %¢ŠŒmö; Í+™%—:WÌëA£c1ð4÷‘ÚàßÜ©©áøÍIÖ!EmOj?é»ß)r\‹Q[¿þÕË-íÊñw5y[c‹X³l’µ•p*‹/šˆ]E¸ˆ£%²¬ö’ÖË-DI¢Â•dïœ Ïɬ^·/—sú¦Þ…ü sžû;½(1àšãöî“ÃqÄâºÙÌÛáCt°+ûEïa2aöö;Hr« >òTo#"v„¦LŒÓüªùNõÈp9Ø Oyq>9àkkÎ×jT]w;`’D«7¢Æî©m€¹vž&l¡O]_iÆ® «%{ü’^¿v¬Gd¹{Êç0~u»Ù‡õ[|NýW ãYsÔálÖGŽš'>;zÜ&ë´KP·Ìu,NÜ 1SC"%Xˆ‘ƒ{;í âÅZm¸¬†Ï êm£²Ú£s¿§Y¬Å§CMU±Qº5tì[(×_ðô#v)eÔ|ŸÁí¹'ôik¡h±ºJ´sZA(´ëzÑÊ—¢Ñ »6TÛv€¬XäXöF©5>ˮÏVñ!ØÜ¨¶¡mŽZ_s|‚ü­>A9EŽóÄZdcbÙä¤da¯dÒåÒP%$5‰ò…5G"f|º9®EŒý±Z$â¿/< Î`¿[¿}9yû ˜…Æ»½=˘e.“:ë2ÎL¯oÀ·Aäiâ›'mb]¤àN{i2â“'n»¾°ød›æUëˆ9 Ü®`×DÒ!Oc…m=RÛéBÞ¡3<¾/™yïGªíaºG’¼sr„•¾ˆ.²ndÈDŒŒb=¥ý^H£æ&*܆Ö-¡]9A¥òx(˜ü®ý·òâ­ïÁjy†ð\Md Ó ùç;©×Á—“’KðïÚ ÒÔ“ü¯ê4ñ¶îìþn„ž÷F^¼NÄÏñ}Z¥Oj«Ï$kz?OàÒ)ô†YAÎ^9„ày–sG¼±Æ{N¹ØÕðöŠº]2ÔVL¦úbøíC#02î~õ,õž*[®jåe‰;§{,>A·Ù%¸´É/` hmÄ}¬Æi"#êÓñkV†»÷Y¬ rnT–©ZÆtp=&ÚÄ®?F˜?ò.°ÜééȘ*3ѰôxïcW¹ˆ(°C 7>ÏpÓ~S}/ “0yÔ7“!T„Ö¶\šìf\ðœŒoMˆpÉ›dzâ:ÍÌŒàÒ½’ü¬÷Õ2F×@ÞŠ¶`ªgˆeXÀÖ… iìo,׆^bõ¥Ä¤Ô‡¡ˆ‰»IÂ(%†<%§½1&nvÒ}k­ÎŸPeô˜øéŒ„—âÌù¢n0ÄìU JÝs€h¯õR½ÌÅDÅ!n £ˆÏÀ¨at4ðTê6t«½—^Ò½Š’7l ^fþš6< ?¥lÿÑÐÚÙÝ ášdC]¢’ú±©Àû’râØ W¸7ßü¾àýáƒm˜]èàHÿèÁ+ë_’äÛîólM`1Dþz>X,'qNÌÄ›å™Û[8(ÉW‰X×2ˆÅœ”üµ ßšdqUª!¶Z9 8 M·ÈÎØ<¿ ÜW°ùˆu5™7å/i\ÕUK6@Šóe\)ãù köÆ‚~‹«»·™{TØI:Sæ0œ¶~ ï˜M°ØQOžïUVצù­• ‡VÿÙ7% g¼kk´ Uá¹ÉܶùxÊ>”ËcÅGשìo4½œo#ri9qÒ¹#ǧüîÛ'¤;£ÒBEk¾_ØxŠr#§uæõ_ýE+ ЬpÏÍcJ¬¸[ä<BɺÙó=XXR3I 6yt»-k©6€È¬Oèð‹á[ZeÉÀë¶ú WÅ_àɰ­µ¦ø˜ÑØ»¢)g~vFñ ñGÌ%ëë§_^Ø$¤_*­Û¨žŸ—üÒá ak —(o9ñŸOÛG‘¥vÒÈ͆“ª7qÔ÷ÙP0“‡â¡ŠYœš³"^…ÀG$©¾­«º,ƒ9½ä5ÅïuQír0cUÖû4#:I‹©DßKcùoq5'k}v7‘Ëšg ž þ`Þ$§ÉÖu’J–zÂÙ&Í~Yß nö¯;dÀ¢r·þëDëoPƾí³DYqýéã €V=Ûà“ü°RoÇLs“ÞÚÖS{ ?Ûêâè˜PH8hR!5è$õÊpΑÇÂnˆ%»Æ|ø¨~Ž(]¿ªÉ¸Ák~4rhRè0& 0@´Jþ 'ŸGI1Í÷㜤±æñ½]J*—NaEPˆ›k.‹df‚ˆ^w\ð|ºÛè»v¨¬ŸSD’†€ýw ùTƒuBnCç!!!!÷¾±î•ã”1ùq²*…un ÌAQ©6Ì^‘1ª‹ÛN¿@ˆEɵÍ4Zïô˜2…[[g6½º•äþ’2&×zÿK•`TFë(üíF_fÈ6Øf’¥ÞËÓÓÑô’ü¯ì(@"ÚØC›z;…ÑTÚ ÖH"©¯w;Q‘¯-ÔÞ¾¥Ô®ü\_¸f#@ÙKÑ^3P™âÂÌÿlâ3$¤œ~¦}ߦ.på·»¼<€È˜žv<¶Á3_¢ –¹©¬U2sW8XÉÉô^p„Ꞥ)ŸÊjÕÇ!À«@‚¼ý‚ŸÝ^ú_( Ę{"ÍÁ\tµÁÈ-ÅéRReñLöØ–&Ð&³×}qÙ.²¡õ¿¦·‚s>¹–8(YްºŽtûƒ€¯6÷y•¶è-ÿºY©T*]YÅMS4œ¾¶:v]„+rÓ æ»äí3Eo¢leâ¾Æê“ü±skâ ÃÌ÷ l˜É½Ü5hØÄæöŸ7µ»5MÐMÞh«!?“ ?2ûˆ¦gŒ8µF/îö¾yÿ'öŠrªc7âÀŸ[|›ÊRо9¨›/²UšZÜYº½öÕ[h÷Êì§uš!Ô΂Ó㺠b¦‘xåi ¡Nœ²¤3SçÎ϶TޔܹÐRvúÚR™Q{œRø¥e5ãDÙNݹFÕ§L;ãŽrW¶½ µ¡$W.^^ ÂÔ$sçyÅ¡ÊnN›o²ØOiS{V¿y3®eïS‡Kã~£ËèM¹ZÈÆ™LQiı¾#½bøî”â´–µ¦Š…1ñG±©P$¿OR-·Ý»tÇP³DNã%À,’ü«„ Yé^]1=Ø¥±ACÔË$ºîÐöçϱE•Xã:íû……ã¾Æë‰þäk „nOq›éBcCM”÷ë7ÊÁaN©+ó+‹»ú-fœFvæ¬á’9Þ7ý§¤?å@G÷ɰºnËQt8n€æ¿'§…K3#ÅÒP¸;e¸‘ÛdÅHù©‡Mxè`žŒ§„.Tr—Ttš]4 gUg„1âÁÒ»Ù_×§;Ï`@ƒóCÈì2÷b÷ŒPâõm{¡’c¾¤uÇöñÚÅ•IºO´ãêQ)w‡•äu‚ÍM^Om^¦X¾œ%qo˜šàÊ»m áŒK²#;VgÇgM”µ°‘ü¬÷‘Î ñï)‚œ°¶„ÕÄÚ™(Žð¦ŸÈã}¾;‡KÞdˆ*oj³ÖͱüŽ£öâK}`‘ý™ ‡¬Æ@D¥µÔ•chBH!äMèl°™6¢ùú º^ø2’$±nŒ#ëŒY ñŒKœn~h˜¦´GD²-¶î9º°ok«¶wø[&sÆg|¹C"B6ÿýî\¸¹qhGà’ü°/hyÉ!Ú©Š·¯ €¯BÆp©Þ?­ZLyÝ„‰vôa-¸ÕJˆPï Šê†ùâáÛ,ƒþÌ‘yçù念,?ÍËÚ3çRõ8À—ô5«üë28,h·ñ{fâqã¹Ó¸ ö½‘,Ç'L½Î2]òYÕv qdÈÜ݆1˜ÒúW%6Ø™)ØÆ7E%óë6lOÊWu—ÊPKÎôJ Pë7ËÒ粉ÕW$þ=r5÷(Á¹|F¡nÑ,Íô9ddõ‚ðBXþe/+"[ýÇsÌàthìwzÞ¼húÖû¶,3H”y Ó)/,1†ëPŠt^Ö„9ͯo4õCTL’ü°2¸$2Ì+¼5Hs’œ3øÙ%Å.áˆ&AFæ••€aÄÊkdŒ³ïƒq6Ú‹—ˆ9l6uÆ´ÛJ½‹e¨öwdJ\€<»§ûO+˪<–ó`ªBap=î·£!fD>Îm i@<8 «€Q íUË?2‘… )*:úè¯Tу”ùʺ\2£¥þQ?V–ƒð,§¸ÑGÐìÈZ„¾×6ÉÎ2>¸Ò]óEÞø&aé4È QÿLH#YU:I at0 p¬#fiú^vlXjƒ¨ÁóIÏåÎæ²LU@ï>û(VË'ÿò¦ ˜XÞÐi‘¬·Ç¨v‡WüS2ö‘ü¬=Hø›~åðj>ÜÑ׆ûô´Š+’¸ÂW™A!ƒÜ†ØB%*+8;M(xI÷ZXXØDGùYCɨGy[ êÇRÄkÚ…>ôÔ¿¬9®]ÆÇj¬¦a·¿«’‡.ng𝳓™| €¤~„­ÍâcH‰üWê¾°3Äoü¤·ò"/*‡4†4_ðô$'¤CæK,ì÷)ÀšLši¥ñ?Ðc@ŽÚÒãrœ|CÜá¸F(ûr‡áªê µ™¢ÉÔ`ÚÉ̼õß-¢Bt`ÞlëKYà“ÿE–{ ùˆfú^ SÃ:Ôa.p ÚÐòT²µæðÇÍ’^Ùèůg» 6’ü¬GÕ,êÔ9>ëbŽop‰à“Dÿ¬ "N^3 u"P‚ArE^a›¹H×T -²Ba#ìc£hž´Mž˜ü †»â!127™u˜'ãT DâjÌ6O4™RÐô‡sd~,IÆl06aaÃ57TÊáEñ>ª ÀÓñ /À,uÄÓ­;Š×~¾G¿‹aQPS©<¬Ö¹pÐ[6áˆ0\4' ðÔó+6šþOgr˜ò–cñI¿&@0—étˆòF)Ã4tøYðZf‡Q.ü’>¢"ÜäëPVÕ0¦™j²Ç #¢Ý5„¢G4ՌВü­>¢$Œ£éÚ(\ïxX’ ®6‡"GÞ²ZÉ\ªò%.Ù ¤Š–lý¬WŒ oAAq4c—5*sßRv©«äz¹÷¸Ýùò˜ÔQVù²-/&,ëtªæõ!V¾0J˜ÝÖL‹Ï¯ºY žà*9`ËáVÏnÞ"OÍüñäŸÉÅáã õ6eܼT@æø•_¯Ò ;ò‘ HãÖ´ ž‹z˃¹ÖlnÔŸžl.E¿ô´Ra8ñèçÉ›½ñ_DzJ +|8ÉG$èÆn⣠¶þÜú'Úõ²†¤-à£=v¼Žl[Íó€ùÎ@_Å´«¦¸ÓŒºN/Y1åUoþ†6’ü¯ìðâ~ÎCözɽ˜L ¼IgÜ·Ör.R²Dñìr\–’¬u'Àú­7°åvg¹­ü ùU"0Ù¾ežéÝ ´½Å€ZûÒÈÓcHÔ¯S–¤ïH($ñžg|£r ¥fNýüÓ#%ØÑ““~š`’L.m~cSšðªüY)¤UH ·±häÔk_–§85_'ß²ì­¢ŽšèÖ>/äw†±ÃGõÎ6Ć6Ø ÞøCð?˜þºå9¢Éý¸¶[EvŒœØzv`aþé¹lô¹0ÖGþ•à´ÀuC4¿r"Ý–kæs®çýc¢uðÆ–ÊA¬³üÛþÒ{n¼°Yä &”ü«c³‰n+õýP9OÔ&³WtÙÿ‚¼M íÞ‡Hf±:ÑVÚôî 1‹¢[u"[õFèsÅS¼Í׉­ÞÀÑ7K®&â×ò±Kü<:E(f1ˆêÃKVú3šWqŽÁhqÍC4ü äHš,ÀòãÙ)8g.}þŠÃ¥3å'†'?½X?ù5AA©Ðú²ä.êuÁüí/¯¼ I'"5faí_©w_b–ÄÓæy»„"jéò’奴V`à‘,L°ãx<ÌNôî+°ø—w1Ï4xÞZãu.†pJ¸A6ŠS/úÌ4‹+\À[.»?¨€~ÙßìØj…òƒ0’ü´íIý®YÝè}g‡#÷šÝ<ŸwˆýŸFª3i:Ù‹3H^Sžœ—´‚HXâUþ´ƒß¯?”ç¼Ùÿz%2+BYK1Ï-ùä9æ™C*(uóGX¾êHbQíiëkMt´î|‘å®zqø™»›ôU|êBâÓáÐ"­dWDº¾6a— Ž!}©µ—΢›>tã(B”TpŽr€6ÀÑ_„”k^\ÚÕ[~—òK>µjz„…_Oå7€¨ZVŠVýîî‹K+Þ’/°x<µö®vÏK~–™¨Âh€z6™ƒŸ¢ÛY¹a÷ŒWUªF®s1ý|ŒMß³ÛvEœÜ;ÅGtpƒ;ÇãÁþ„ËUÐ÷ϩ⎕d×/I¥.µxßÕzd’éÓ¡‚zQ‹écp5l7_~•”þ‡†R §^¶–w¼Ø¦ø«ï¦E#˜Êü˜Kš0`ãjCÿwâ”|Üaó€åì¦d]ÙPÃ-7xëzæRÓ9÷¦6tÝèãÿœdCÙq ãÄ™+[¿¥B±÷sãv>¸Ä\+,9aÑ~Š”ü°1î•¡2@{bbÎÆï9*~%š©ed@ATn3ùF£F6¤òÒ Æœ³éX]B'ì^»àã(ÍÞ,c„mî—z„*̵BLàÈnr‰ýIûƒæ$rí5 ã6owk°â[V_ cŒ|ívûè*C„g¿ GÕei––~­´åÖä¿òÇ„ÙÕƒ~W/’-2 †0[UŽ—÷†¶ÊðM”/0ˆþ¿«©ÆäÆPëxx’=ª©^i‡Ÿ‰é û“û£l†I„õúýªÉÏõp€ü 9‚xžÎd»ô` SR³‚.Ý&ÈC»òå`×^¥ƒÂ ^줄ÈÛ±“^ÚÐxšb‘ü¬4£; ‹w-á•ǰŸQü”þ™n±õzf¦æ›LA›˜ËÛH€~Æ?¥óÜšó%Õ¢TNlHež×WV`¶C ÏW‰e.m”I ¶ŠÞS¯âÎD€tÕ­àâÒ‹‘7ü£ýxØ7gÂ,ÑD«á¾Äç'é}5ˆƒ6ÆïÄÆîùHÜ¢Mï¨O†YorÀnFPFÓùüµ`NœoÞùCöðø#” Ôâñµ ÜwøüŒfHÿém³ëôÑ-¦lf0Ž]BŒÊóš ¡áL¶VËwù“ÿ8¹[ããnN}¹ÿªì>9PŸ$ÏœX‡7­}øÊ¤@QÔŒ+^׿Ðøqðº t’ü«…D‡Z~ÿ4ö†tZ^»q—´Ð„§Ža¼VßñDDÎg ‰ñ˜  Ú¤£Uïk|þ¾„‚)-å°ºï5•Ø—ÈlBŸ²ôë<ù~ÍßQ*¨¹¥vº¨gø}R¹¡@{Ý;$°úhÊù9"æÜŽkfy2·í¿~šÄ¡¢ûdz™§_×PO”mê,¼O‰¿®ŠöxÂ)ÈÍ´Šj˜x”†ô¢“UÑk )LQ±«F†éÕ(môÁ åêi.Ó`^Ïáéî,›%>X;=¯ôåì¡$°}†)âÅ^º‹wˆä‘E®…S44`»^Öðý‰yá ®Òɸ5s¹z,Ð’ü¬FI$ký×sðšTé –J¶@ï^›‚XôÁóÖ!¥³ëþöä˜í½c­n‘¾A+¸xÜ÷ÝSÌá·kF…îð«bü*óÅãÜKšãšsZ"6_¹“n×JrÓvMÚiŸ¡ åÕ—to“hrÍèZm|v'´ o¹a)oÚ¼d 9 Šàl¾¢Y³0ò0ÚIñý0C}ÁâÕ|½ãqM‹óBJd(·ÒÝzK÷䎿õ>ãñ¾î™@å¶áŠø™Ìí¿Ô/Ú´ˆÌ[Ô!äñ% óû›ôqêWçd\­oeHÅii{NÔy,3íƒ4U1 Ze«{áEâ܈’ü«)£$«ƒ~0êZ7Àz"ÓÑÊuIb„S¿8Ës>PÆQâŠ$ûM},œPÖGaêº0¿©¶I›ï¶[ ÿ [­Ö=äC¬½éwê¿æ=8WüËÛæ¯ŸykÉ#•š¹&?îйJ*Æ/ _tÜbJu¿Ô®~š‚ì'À‹N1 d°–ãj*Eç¡Ïk…(ÙÈMÙø¾  ©œD¶Ø­ÔsCb½ˆÆÕ¯eI­ƒ‹gµõ|øü—NV÷1'°¤‘ÿG7Ϙ|Wn‹ci˨?Â%âc^Äœ„T’ü´¤íýXƒj-­à +ÊØK:‹Â’Í{Ÿ»b˜.yx(ó(i k™})œœ‚¶;pâæDöÊšµ»ª9ÄPFs*+©úÇ‚½€ÿlò2a™L6 Û[vìj¤ÀïZ»œ!ÿeR=¬‚²¯jˆe†ˆø9þ]ä}nž?ì  Ö·hh}þ=nRó5­øzoÁ&œUÙ„¥]!@ŽÆL ‰š86<~¯8%DýYx¿‚ó WðC|çkƧÙ óŸKÔ¸‹Ÿ ’ ±•¸7Æèܹ†Ý—ôá.|ÖQT?²€­”RCÒŒÍ[}{fù'ëEŠ+0»8ð$KiÖßÒC_¤VÓÌ9ÚÂv:ž~0Ì¥ïÅ™Xpp‡.wVFöõDI໕X×C©þÒ®“1|ö«îtä1 .£Þ¬½Ýé?r¹øL\?¿¸[{¼t½øœ&’äw0»Í³½dÒ«dK¹ðßì]OhS©Ãž$–3’C:2÷ ­Ý–‚Ùiõ}Áá_7^»ÌÌ*x)p bºŠ7• öÎ˲Œ=ÎÀÙa7ÃRÚ¥KëzP`Æâr2}Èw}$£øfÕÈ’”ü±qÖèeÒùšª)dz$ŸêÅÈÒ’’(êóëw„ÐfãŠù¹O2z섎fÅdzõþ¡aþ+ýï†Üi—$Àï… M+±3ܵîüK]®µÛt‘’Ðiè¦Ùésøû\ÃòJÊ ‡Ù\ÓÓê2p²b}<ÂK`Ö VÔ÷ýß•‡zò k Çw)Iç¤þÔõ™×Åwy÷º+}ÚÖÉÂÄÍUªÄ¥JÉG›9ŸŠF{½©µ­ga þü?—핱0/v™Öu&™wŸË°HSwÚIàQµ‹%aî+? åÍk=–Z¡ûºÁC3ð NFKîç²rRÚ©gý\‹?¦’ü¬ ¢G•ˆs§¤þ¿ì~’„Î9%18Ø N;ÓçÇ Ê\seÁ§ù!ª‡0:€_o ZÈãçŠd‹Ö8i˜Oãòû½gX¨Ö•¾@ˆ‹qýf$¤.cTW”Óœd¿ÍàHS|x6”Aå~á]ÙU.°Ö4Æä—ïÈk÷Âà`®ÌÿSÌîSˆ’Ÿ>–»žùžèµ÷-éI"Æw~‹s?ö^7áKŽâä¯Üx)‡\>ƒ§ C\‚Ç"x.iý ¶Ç6eHèá¹àS+¡º½1?่û0KN·g‰É^û†Þà1všYÙäþàr†9} =¡g†û¿ïä¢×D á$¼’ü« æô“Œ9k¹\Wê•€@#ºSuË—zƨzŸtü×øŽÛ%ôñÇ‘,Ž#ÍFúB˜F@Ø£Í÷LöàÛ·x㬔ha›Ž3¥ÉàrNâ3Æ5ŶãŒsìk·‰]kr×0έ9ßnÇeÚ4&;•éiÍbx8îõsò*kÛ²%Eñý:3Âhõ#2ŠýîÅ[[1\­ôóAÔÓ0äà°Ê‡dW2K {œ¯é2"Âg¯Þ³á²Á:ùH;è†è¹—q@­{ÿ²;rõ^ i;“R¿T;ÕÆÙÙ}*§æT%¬z€äœèµ¶¸øFú G±Ëª¡ \`ídv­ð*×ûÈûîü°»­\O2Ñ®#þ ‚œä¶•.¯f?“ù_ Kº¨FÊÐ6g:õ¨áUèâëÈYé]\@´à˜´´›·…µFè»c âN#m—c9ÜèB(ÂoDœ»R}| ¯}¯â›JÇÙF§E‰“ä$qòR&ë~pRn—‡'æ„9>,ùñ"H5Á …“ÛâñæD"Úì›ÅhÆrDB3ŸŒöÃË‹Ö|Zío(åä–Ñʪ áTúžŠÉÜ^;±I]@M«Å­+2û뉒Â>¥Í•%9;[Aí%¾›ÞäÌ)ÍrãÒ?ôÑjõT=cbµr–“ü®ôOÏ€´š¡Õúø.»ÙŠŒù :nõ/ȣϸz÷PPXW½µ~íY¨Õ´óµPpä’°*Ó£åTŸ¿ÊQW©OIßÙ?nßOjÚú¥à¶-®°†eÞ”Ki À†¾$ÃæÔÆO,àVûòødo¸NþõªIíú<›‰ Aí,%E|½Ë•0™C3ï€7²µ #2°ÚÞiéï“ë <ÜÃd;,°­Š3ij¥êÓÚûgu´dwRŒ¶íó!ó/ÍÁ c³YiQ**½(d»×‰Oþm?ÃØ¦ò¸$h\6 »p7œ¯Ö‡/1 g¸I éžL‰ f„þßmèR¾R\€“OggS”¨äOîœÕaÿ ÿÜÿ ÿÿÿÿ ÿ ÿsÿÿ þþÿÿ ÿÝÿ ÿ ÿ ÿ ÿ ÿ ÿÝÿÿÿrÿ ÿÿÿÛÿÿ ÿÿ ÿ ÿÿ ÿÿ ÿÿ ÿÿÿÙÿÿ ÿ ÿÿpûü°»­RWU°ND›KòK“ÕÙÓî@Äܷ؛轉=º€Ë³kL±CøÒ” ®íxÐ ÕäRu´Ùè4Ù°0Êcù±®Ž^¼¾Xº`•ÉA‹eÜ.ýÑ‹v1£xhsÑÓùZ{×?yu˜ÈtÈ2¸^ŒN¢B˲¢8ß=œ_†Mü7¸5’®¿dõÊÒ+ÎÃä2g¯ »3ù'Ci¬ºàà|…Á‘-ù±Úó﨨ÆRi˜ñQ‹mB’gLJp·+8°‰p#LEÕ“‰wï)Zöï•.E‘¹ U´½~²‰×›×ÝÖ!Ë› çR’ß5 ÇD¯ºê†‰ÃŠ!ýî;‘f0gW “üµ "eFŒ„Å5qÖ²—=ÔíKíÿœâ®ñ¹U<)Dýó.wz \Îâ‚êRÉ]”²dóœ·è„0ã|yŠHŒµ.vs^â¿ôº³EÄp;Êá#Ósßérûµ+ÙÀ ·‹M½ I‡NާÅ]ÖÆ+«¶ö 1¯¨ýqSØÎJÂABŽê `04’æQä6ãD;G‹)4çM¯á5º"É#ÓÓøªöçÍ´ œ4²3vG=G#ïe­ÁfEYqÈ»Tì@¨ñ»+î&ÈH:!3´>ÿw&*èC¨ò¡ðä4L°~¦Ce÷"÷ýÓº!ç”{Å À‰f:‘K(Ós8®õ8¡îd©Í)zоãlæÐ”G(âp ¿öLå®ñàæ DãÝ*X6©ÔM®ñê_k¥Vƾ³åà¿ê —ÔR[®†ÝßõK \©ûÑÔt(‹ ךc~Œ¡LÖ†x¡k·±åÄYJÚ–>¶Ñ…¦áòð÷¤*eyzÙþ½ÁΪ¸ &*®HóÐmùƒV¬—'vìýÒäÂgˆU±Ì‹”½4e|Møø¯ûPåâþé{ìƒü]ÀT4Þ–ÿÞho ÉÎGÁÚ’ü­‰E¢õvÛ`µÐ:]sÃòÖ\dzÓ{ˆì„ÓˆH´^"Âõ¶`æIš‹7V:K70êäA]ûþ\p¼W–Ⱥ®ª_¯~ôãDDÅ —Ûü|í wÆQ !H·‰S©¬P欩ŸaÞ*°|Ãݼ%,_k$Ü”D¬I€CD|¸Ka„Øÿà0è5’;)¿cmu*û,a× Ø“Àà-ž ô¯M€·šþ”J×…Ý‹Ë,=SžŒ˜¸=WFº¼K;{†ÂV”`\êšò\ÖÉBeç„«Ó¹‹k§¦õVã8á;ÊWƒ+hmÝ®$ºBÞN-›“¯)’˜ÃÏcĬT“ü¯»ç¾9 ÀÔÅ`9_lþÆ£þN콩¢[ê;8Ú*`&F¾ÕΫÄ@~a Ç/“܇¯Üm~±%1`Gjœ(Äv áÒKú8}®™ç2M¨3m¡;³Ãrpj2l'p–—CšÂá£Y=uuÿ4ZB3-ù&Ò=æ }O|tiøôûÐñòÂŽ¤<§äoZÞòX—’ŒH’énN]§>¥.´ã±£ûà9îåMr8{‚vE)䀅û‘™²Ý0’ü¬Ï?©â8O@jvÖ@¢·©‰ϲLU53»æõv×»ùSpoûÄ^ýœUŽ–ÙiI6®`à´Ùù0ÙÊ4§ª3Y¯üUrLüÞ Z -ü²{ÙåZ^ƒ1:épJóŽý1Ï›·§¯r5^Á;ÎCB<¯Sy…4ÍíÊ×¼­ý“Ú“s¸d«f85(¤˾,]"¬Ÿƒ<qo}¡ù–†MjÃKUó&æm¸“šäBÓÎÚF†Dó^O¢ûš 0þº“þÅïtÁœ†·rE¦é`sË…ð¦ú(¥ç—v®Lñ±­Kÿ‚òGÅ~ëµ$·l]ÒX;a£øçN·kÜ“ü¯ºôA%Kª{SÆ¿õÜúÉåVqÞ¹ýD‘h °ä ÙI¹;µ&Lß;«>A¡-¯EΔ ÞX%W#비 [;ãGéÉPó3h¤L¹h_­”ê“NM¤$ó—æ)ñ¹¦)?d"‡•Õ91a_Ävªß)ÔïóêÉq\¡pèäÞ$ ¿(p¿JK‡™ñàŸ»tEÝψ„`ˆ‘ÀTp±u}„¾ͯ´õèºÉ|¹êÂÛÝÊ*Ó‡î$G3Ùüo%ÁS;_g]$ <™2Ãa8ÈA¯Ø-ã‘HŽ`õe©h›,‚ ö€>>BwïðJ“þžC/ýUú;ë¶•M;<ÝÙÛ“üÄ¡‘ÄÅÖÐÓp’«Øä©#Nè–#°f€¼ð à)n®½ v¸Áï95;Ó ÇŒÆ¬2DÆÔ±ìÿÐ2ôÃV”zŽz¢®“Qéð´¨[6b}bÖëó‰Á¦‡Òòqx &ÔGãÎL.‰°Gß—n¤ÀÒR½JèšÖQ¶•”LDØ-Câ‘Ê¢ò߇Q–ñ”¦k»=6†“ïÖ@gLÿ¹ƒ ¯J?Kâ-[x0¦`òZøïÏ­$ãu)¬cËr–°zþd2ããdKÑOÚ(¼xœÄÌ¡JõrdQ$ùo ¨ßÿè÷8¼+ƒæ—XÓü¬5,ÁÝýœô]¡X ïØ—"£h‰EWëòŠÓwEž¦›­UÑ_ö”Gtö­!¿ûÌ£§i$Dd©d:¤#­;™FKî„úæf¸_­)5átjª@"Xñ³¯I(ùÑÀ…ŸÀLÁ7þÆì”ß’¹zcØaÚJ!|ìåU¿ÞÌ`òIfDã^ÜóÇ%¡U$´+Àü¥„HfØŠ £C`Âñ¿™½6FØfdJ{˜22"»Có—ÜAb´!ÒÞ• K{±:º9hV¡ÀkWÅ5íaÏPVÿCÕ…eô?E°ì”O3L Fš@œ¯éî6ÕTüñ9þ€7”P’ü¬pËc¥ŒDʼnfkíôe™Â #"ܰ+¾¢9ûÛÇÛn &”0YÚlúˆ’Ü”ªÙ²ùøÇ‰±5\ÏåYGÿÍã hÞü´£ñ³Éø…öûÊ.Ivg_®àà”¦±‹5öþºB…‚âÄimï Ör¶ÌtŒ;Þßh[kák _t¦TëúšÒ­°ö²ƒû8÷N{ࢠÏõ©?:Ü8•Ξxá£OD ÿ¾«¸+,úÜßÙWéX9Š»gmÈ};) ¨Ál7a1ýe‚‰:B w[C˜y–§ðöZ{1bq¶‘HRôO!{§Æ4Qª¢Vý”íª“&‘ ‘<•˜:ø×DΓüªÖtfK åöé2¶c"’'¼’f‚Û$G*-1·¨VÍH\¬úÚ’0²ëc³‡ ã×;ír]uÏ“Jn«èμvLÔx7TG–‡ÕV“Ÿñþ4ð|Сäf¥×]+†œÜ G`™6ÄQØ’lDO”Ê\Û´3Æ<µOJOQo"Q6dIc {ìÛ¡·œ|“ÖXåÑrðŒÇaÔãïÐã!pq Ó¼Pæ“X·\Àšeþ£‰]F¹ åfx[e'ÌÏÙ÷ F” Ъ(N¹2C»¯ÿüÖz+b±~‚·"ýnH§ù›€/éB÷œ¯ó˜Sº¢ú Y¶Ôí[Ñ$$’ü´¬x„vº¨’“£[l4,\Ü÷ þT‘;Ò 6î æ@íC1ɼ1÷è„Ps£Ä—}b¨==„ &&ÌcÜ:Ñ}!¶…¤¨œàü¬ÈNW¨Û½xU=ó%ŠaiÌÁ_/dkÖCŒ/ÎêÅõoϵ!sE1BH2\…ž#Xl «H[»'Y›£p“N |™Áľ6þÂvp<%Š[±KrØ”Ÿ¼ô@ 2Ž‚í4—çK®áH’Ÿ \ÑæD…un¹`!¬a¦›€É‘àþá?Jó¸ÍFìÇ r›ŽûœùžþìÊѵ (£Þ휎|>üà )hë&Žøü!—¸eq'Ì&²)=‚+Tä² md>Ÿáª`r› `p‰µv]ƒ‰Õ¥sˆ+Sî*¢¨Tòõ{ÒÊ#¬‰Ï_»›]FÖ”iÈ3Íå¦$ÜåÝq†ú½‹ùVštÌú N®"æ\‚·ÜÞp;jho´ÞQ©â‡Õù²eZÃgF⯊:»Ï¢Êð# ÍJÐg‡ˆñ¬½xï%v/VB#ŽèP¯ vÎtý0n7¨ñûÐÓèºÖº“:·m@âÿ'ÿJŵCÆKH[«‘aÆÕæ”ü¬g(írd½×(;aÑч›stÀ¢J†O¿²¤*±þ{Èdƒ›]Íþª,¶[Åäb(„…ìËù›îep¥R³eR©©öbG-§ R‚Ó…êÜJW1¢ÆƒÛÚöÇŠ€¹HPÔ[¶KÎÖ(ÉJ%ÁHš*p6©­_»O)Ëï¿(‰‰‹¡§¤m‘3ñûåÝÙ Ì(‡,˜R›:íP­„ùÃgðo7îˆ ¡‘¢j`ëO˜×¬ Ì»Îú§f¼l„Ê‘çF\7¶”~ÿN«2j8ûæ³Ä  óoì~Çjñr ø^6‚$ß1âòŸaÊDõA^t} ÒS&êY$ròe‡ËÄ»ƒu×xú›ëò‘üªÕ¬®†íïpm។÷Ú˯[]¿g¥C[ðÔÎ,nV)'Ú‡—æ(]½Ð¥D"¡=ï€e'Jê¡©|; ÌSµ”Ofn;­æ&¸ øýtçJ s¶A9Å9&8™ÿ/%t²“¯¡ŠH =%Dâ´KG B~9R¶ßŠx_çÒ·nH:Á[#»ëËŽ´vÉÒ#vEÚ£CN7ˆÅ–X06‘ÿ9 MF´¬/€SgäRrìZ~Œ§B\Un&T¬6ÛF =âC ²0ÑÆÄ“N7Å1wþþ©úi—íàgŒëîåb©¥#í^SD¨ž¢ü€rXá[J×ñN’Ä J’ü¬¬[ôë»ÅD1rN3° ×w}0{1yeµã±ñõ¬±5E=¶ˆ¹KŠr!ÑÜ?4³Nmƒó£y§A4ˆóÌPoçÌõ ˆZîßÞGü5#M/Üë`ee@·/˜Xýˆv–š>µÍ;®ÿø¢2%üå*&m« FUÂp/ÓÁÉl{ ïw!_¸¸¿?)z_ýf šõA ­äˆÁt›†§’è甇f§ßüÀõ8òÀ…÷pýZª¤3ÑÿJ:®Q-B-ž%s_\CÊp(³5·yÀKo¡uW`ü9¿Nõ%Û ñ{¢WýÝ0ªM˜F®ygô1«Šr¶e‚GX©éȯ’üªÖ¶ÚÏûx)Ržé¤§BŽ->K°…jóMì<ƒFl¬â+ó/›ä¥BûCôÍ¥ÛV¨å”x«BoÓÊFb¡íÿZò›kä畯ÔXTÜP—Ĺ´ïÍï™ѶÀ'úóq„SŽ5îÈq{óCdTîÞàWm!Xv²OµÙ¹"œ—™“ëSþ–^mIiyƒ ¯jæûÃÁE1dø›äZÏ{–5‘Í3á¾ ß^–°¬(Ôú/G^¤X}ªhTÙQòúÁ^‡t"åWJîCêðOŽ¥¦¸RZ 7”`˜ô·þy3 ¢]D3%):#U2®…Œt+:šUÈÈ ÊÑJ@âÖ ­7s$fé ‹=pèÃ@aŸ_ì×_K“A>ÕýÊÁèÆS÷ ^ÿdŠÎ¥Th¿w~6·VÿiË2œñÍ4“ü®¬„¸2¨·k½E‘7[\¤€¥QŒ(—é"ÕõŒ&gvë(ó!‰æddûÐÅÖ$Œµ$Nm‡舮µ{÷€¾…—©sÛ‰U’U¤‹ÅýÐÛŽ)T„§£íVÜ{2:¶@yS®`„¬ë©Ú þ˜’sI5‹¯8^6¯»OVÍ—6ŸÉ?¬[Œ^žMecº²qk¬ÇPIö±€F? õ½DÒ˴쎃ïŸ,8åWi¸Ù“èyú‘ ÒKÒ³°¶ÓóˆÛvlB8Páý}ô˜°i8§Uˆ8õ"DµLu·Æü¤²8úò^!û ¡':ËÕ!>C'È¢¡"2‰˜\‚òÖâk¢“ü´î3]¥÷÷ ae.® ››åg¬ëÉÖ‚ŠÎ&Óì/ššÈ¦æêÙ­nÁ/“º hµk)$ÿ RNõNqÕcUi¡Kam?{ÚwĬ½È)qÛ 5?G¶WºŒƒ>ÉEüAÒ´hãö¾øWÈ–êÖ{ŸÄôÁ;`³&º›ýŠÿÕ ªøÜ·1'…ʤëÂPŒ\M| ¯y7Ž:S¬Ÿû‹ »ö‹l²ìž•öÌ^ô6`éb0­3ãf<åX¯è߈5xSöÑ/?—'ß+:ž|©þô^™l@÷cS/—dCðF½c*¡Zš>Ç"ƒ¸—FS_8§iªÚ©mXå÷>ìx!¸i|àð‰`¦¦™}'p[UúhOäá¶Scä—¾”kÎQ²Y™GW!ûüÌ`½bjªœ2K’l{îâ‡èo›NmŠ?±樂×ã> Ý`\‘ƒ#v{»`Œ÷¦OÐì'—Ÿã½9—ZQV°?)¢þ¶ hd÷Œœ¶áÿS›ì`¬>¦€ÑYˆãZÁœî¢P~åƒQS‡(îå™@™ÎˆöÍ %­zg¢Tl' ̰ÙÙl»r¤ÈН^_‚ûvÈÔÆf6*̱_1AÆ&”üÇ÷@§z(/¦¨÷³œúÒÜvÐßж‘‹fr³Š·Ç ÚϾÒGåû¶”?»«^eKaË—]‚’øü$ѽѵ”MÖM‡Ä/ÒÖZQvR ¡Éi5MÚ*׸Կ<*¾Ý­ÔQª ©©ž¦,rOdų¾÷óìÿŸAjSú­E!s¼3é׿i~aâ'—ޱÚ\«–2,†ßxï@q)ØOJj«%é/Ë sw`ÚkÞÊ߈åÈeÖ†±QW§”9Á)`óYÚniÈ…6˜]ràpš!¾r–÷½”{t\÷³;í9, I~®fê³wCÈßÃ%òõÐ*“Ûz.Ð]ØåG³_å °&˜ÆG˜³<¶¹ˆHwz¶êº£ì(æF)ãv’¥üÄó‰U6XÊAQì;'ÑF'óù?)†À˜¨ŠÒåcßNû!Î7·½³?¦ïÅ-ª%“TݧÀ4JZdZ°gÃYµÉ³±Ì•§@ËUåe4`Ÿ‹PäÂ'²†ø×Àh˜›J—#ï>›¡uðüí^#¿wÆNüýW˜)0l}𶈆œv˜àÖ-­¾n@nÐ1âqè6ú‘[ÍŽ`2½“‘éׯ·ë.Ä @‘žByÂÇ>°ØÕJ|'ë즂É/½7´‡Q¼äF`1ŒŒ–\âüØoZ—…YY³Î½+ø4 ^¦ÝûÂw¹îµb”UжZ²`hz±š¸;¤Vn"3âB/0Ù÷|2:þýÒƒ·3ÏġɳÆ1aû·Å÷ ‡ø ’£•‡L Ÿ›ñúLß±ËM}/Õd.ûnNf×YFZà!Ù:š4¸ ®³¯À£“iép“?›l–oΑ¹RÔæš¹Rü“üª·ÃSnRĶÀož<±ÕaÔŸ9f!X;Å~º9ãÂ67 ¨êž{ƒ¼&è«^Ïþ{ÍÑNåQ4°$È—oÆsµ™ÀG¢Ó‚@ÅP–=d÷ÓºÌÔUcíèßÀÂÚº¤–ê¦K‚§ˆ õC¦üªû‚d[gùät0á)vÉÔ“ü®«IλOx6µ_#"ª«y9+å‚jÎ-Dîò«Š‘Ò;À )0U³²«¬¾”¨¤P…˜ØáH1穵? ¢[Ù“¬ûòé—A^Ç?´ÎKï¼å”5€;q<Î=~}ɱ/Ç ŒØÈP€V‡~ÐTö€4}FÒÝÆ.I¸É­§(í.hÊ.É]â/âÓÄ×p"|Û­7Zˆ÷EÅ)sëÀ¹Pddò²íçÀ[xg¦Õ¯<£¡å'Í䨃‘Úá \³¶a‹ ÊŠ¸Rè8§—ȿ毽NYk#…%^šfÛÃed}z)Þ¿z‰îÝ=Ο4±ºÚê“ü®Š¢˜> nc´;âÁMÄVï²qÛ±‘+E—g¾&=(ɪÝ.ÝZ}]ÍþR —ò› ˆ²7"qìí¢É90tÏ:×?”¤…yÍËåù·Ã˜X-óu‹"§ŸxßD¬b$ìyž‰6—ÔÄÏí¯ ¦©´ú ÖœQ³‘•Rÿ4¬ìdЏ‚-N:+Eõ[U_@lj÷ìÕ|ÔŒVǼ³PwáñY›e:õ1fÝZU¥5A5o¥'«“—sP~ÀÞ.jï1 N]¨þu¡´âú‡œ~¥3ÆïFÐõ“j¨wb–‰S)…È5%g †$# `L«nÍk.gñÉ™I¿ÝP3,“ü®›"U@ÓÉîÎ:õ*pÈŠ4gEÙõ¦Osó£ Oò–ôéNè~3$YŠMã•)B¨…l§v*Á¡9q5#?üiUàÉœKí–ê–lsUísôTò4‘’{‰A¹&(ã*•{üÁ•‹ðLfŸ[¢yT8ê:wÔ˜o’?Õ—¸¤£%çï] ¨¨óºk¶8Ñä‡*ÀVšŠx¸«ãG·b&ÇPOˉ§§S:Ê#ÜN<¨8Nú&z: O"íW› YÊÐ Ø`%o»`‘žgÁ퀓 &‹jþÿ´ÁF_øN¡ð|ÉÕq$¸e>³û{¼n®Ç›ÎŸQ‘“ü­àì Þ¥å ¤Ò±×Ö¸Ò¿Ã"Ætö>{_ª2Cl•“³œGвl³Ñ{®ÒGH^þÀ¥˜·zÉõÌgKc²ƒ#ý1ÒlÃT”åMfH*þ‘©!Œäjˆõœ׈ æðk›mb³Ãüí÷9˜”òó]‚ÍtçÖüN, R‡þ¼ªm¾¦â.§Ú¹j.)oˆµ ¶VIòÿf_ï„m³ÙjvÈ=J×¾²xZ{…W©ú¹:Êm7PpÛzCgV [s¦D(E?Ìÿ‰°Æç} «” q²*~S4ŠNC™”œtÿqh©\FþN“Jü¥ûR¾ÖÚ@Ð.Uß›#€”À“ü«_žI а‡‡­1|"8FÊQè-¦Ã‡;¿k(k\Pü¤)¸Ú[i¯ÔÓ± àGKu[$–ß±¿Iw1V*qÿ‹8¬8À«!s¶’ü«¶Ù±…;{-ÕmÝk>­‹£c”ܽg® Sùí»!XµbºVú%6ùË•õl Žk !ÇOqe4HPø~.†Ö°e»(üœ,ÇpqÐ9{·Št„É«ŠŒ³÷# ù´{ßW;‚làÓ>z@Û‹-^5U}ÒÌzÆ8P7‡¦WëÞrgKW*/n@z âš©xP‚nù"iéè°™%÷7‚ ®¶²™£î¼§çéÓ+úAÅäcº:w>÷“å3¢#.ØPY²¤K<0‰,V!–«Êáb ¶°†r^GÐYmùxcaŠ’[’<¹ïzz%:±>Jr—÷‘kî=gvÅÞ?=¹üM«i“ü®‰æ?ozÅõ_"•4ÕK”¡Ô§‘ö‘S‚ûEÍ6­ç‰,Å@”PtM%›ÜS\•KMÙvÝ=„¿\aeØ}b@éÏñîîhe¡tÞb”¡tœ5ÕÔ@Ò)Kß³rÆdÜ[’/œBÏûY¹)jåNn¢eIš/¨šÒ31Tš 'ÉVAóâùX8?_z‘½DØKv ‘ó|Ú*³ºS†y©ŽìoÂ?Õ5áø¾¹¥â¬ ‰ÉÒ/ªLeXn9£l¨„6jtÇs£é0kïŒTA¡Ûo ÀÊÕ†}–XÒÀj9ïP›97'V»AôPï=¨H…Þõ¬]c¤?$ËU…ùÈô=÷äÄr}ºwïXd”lØÓg‡ ”ˆÆ}Dt¡[w›|O©¬üXü¡ñG2ªa¯¬bzœÅ߀&µðüý\yæy<•Ƥ¾'-ˆUnôª4¢àÐwL›6˹ƒi¢$s“‡ˆtÅÏF¥!ᒠݱWdø,*Oo'˜ÈQT¾ 5ŒféòNÐ50:lZø-—ð@mó+J˜bP¨²weæ®1—v§{­¨;©gþD“C1Hn¸š©vZó˜NÕ3ÿs!‹£ôX \–¾épVqLÔŒ=P^P•è(ƒ¾;uSÔÎ[Kº®³ògŸ 'šô2_@„!ÐÐ~óª•y{áUçå4‹’…þBnjxþìà<º9±¼id…Üo˜’é#ùªÁóp —"Z_{àtAñNKNK#û¦–Ϭʀ«:5ü®¬FÜ™4A';®±(£(, @ÁÅŸûÿê9^–7"ãaJ™®ìµvÙ[‹TÑùÃW65h¶µj×i(Y†k©œ­WGŒÐ‡IéÊx¨Ù’[E´¤-7ÀiÜËPV$.EâsKµzeÄÙÜc0s—­ØU;Oƒíµë³4ÓüÄ"& ™¥÷­ö³–ë‚ÑvˆžÈfÍY˜“ÌJ➨/ƹ8¢…>Å´ÛM‰ö³ÔùÞp7mªÁÀq  ~ñ¨\7ü!0_t÷{éÿØ&H~ê/°ÄaÆ# Ýçù xÇTåîž ñù¡^‰Õ²K„Œ¿]$‘ •²RN[¸¿\/‡Í僦#ç>W\¢=,|rm¢?^2UL3ÉÏüé%«‚<çǶçzÃ^wéÚló…B¶ž½´VIîÓ7Q;Dú+qU©yŠS«L~ÿ‰>PüËÛ` tBã@&O±ÓÃF0g¬k !­1è5Ø„˜Ädÿ/‘Áo¤tal"¿Ä@Žw¿¥Ï`âS‡põs8¹}âlhLÁå{Hb®xXv°DÞBˆð oÌT \¥{´·g/Àóqy|ͤèLSóø‡út|$)ÇC‰“d²†éêîÞc Z΄â&ToaíÃå“€"¤üÃÜ2!S* „ñ/û^§Ë›.ãÈú‹P¥AèNKÉÓÇ5ÏÇ;E.ÚÃË5fúCò Tü¶{úŒÅ¥(Cückëàšƒ²ZÚÎ1Mƒ 7OÏ% ÌçT¡ŸÇ)Ô(Œv~•e#Êðq¿;ÂÓ™¢èÅråß\¥+R,/½Â ÚI*z|Á€­+]I­«…Óò,×~[àø0¯ß¨±ãì$ZæâT0.ÛÇã›2ø/QÒ˜ƒ8é\šžM! Ÿ}¨ ¨è‡Û>@3+L¸¸œ›Ýeþú ™—hÆ9÷µG}³†D×µU ú>?€dºo-…ÅÒ¤OggS€O¨ä‹YßLÿÛÿÿÿ ÿÿ þÿÜþøÿuÿÿuÿ þùÿdúÿÿöÿÛüÿoýÿÿ ÿÿÜÿøúòÿiïÿÚÿ\àÛæàðñÿ/óíãèåÿRü´êë— ‚ù¤ݯìîÿ†©¡2^ÛLëØsçñEÓ®36–ARÔ¥¸/Eòئf·57Í©º Õ.4¿ÿò >Ä#‰§ÙÀ+þÒ˜~Le ö±ö$½]¶>`£^ßÂÔ¿®2SgtC˜aÔ ^ñ@ηȬîå1¾’&É©.l Á=¶P¬À$¨?æ\‰HŠD _3Ï[á¹tó“j“S0·¾Q‡[¨8hÓ^'Åv ÒzsÁ"e¡ú®#_')ùÔÜ€[5‹šQ «hLI õÄFTìšH„w÷§Ô"…É gòkuŠM6˜^,Ç‚g5ij¹ÛxĈw.I6LK;9ø‘£_è,éå=º.ævîY1† FFÆ46JBË;kŸ¡÷ÒzÀ:úÞ+¥ç† nØ ß>gk%À›!ˆüÕ·’Âúï9Z6heV´¾z¼][ñ!Œˆ[¹·np‹=Ф‚ "¶B•gÉâDxêB`¸‡€¼ÃÐW‚z*¦Ü€ ¸% ÇJU_Då#tu‡œ€Æ!£-ûuÝã¿ÿ™ÄJÿüA^L‚]mN…Ð`Ûõ ™œ„» %£‰_鼨¯¯¡¼þÓü“ß6úo6I*¦³¸ú€.ÄŽ¦ åFúá,3¾´ t'|t–õr4CoÓ•x^FÝ?ïÈ{C-‘Ô¼ò%„5áâ˘oxéxÕŸâáJSÀÔ 6²ÚÀµ® x½â[4H;!mè´#9”JÆPxmž/%ýkÓ„`g}í»ñ»ˆB™È¡CúŠG™•ÕE­±lÕPú•Òô3¶F3†°|L?—MD²ij(«ñ>—rÊ•R(4c¿Y*˜EÐT$~oÞ¦hŠ£"ü1—qD€= ½ ƒ]F…dûm]‘T¸Üs/ÕRLÓq©Ünù<¥o¸ûSêü0o vÕ¨ƒ¼ãz^îLìq7 ¢LÂųøžnn/NÞÁJý6è&ϬD bvÓi?e5æ—ÍèTœoN´«5¹OHjí%ѾDÈ “¯Ù•YÛ’Æt7@ªÎáƒáäº+N'Í'ñDÊoœv$Rÿl˜‰ÇAÌ×ã_ >Ì®cøØ£C©_¢DÍÍñ}̳ú´©Z-n{eá}À:‘¡P^ˆ˜šƒCY`Nõz/}œB¾d¾ÆWX¡qÜ–I¸qYÝ=øºñrdi[œC)UàmÈ”Šp 7’D@L‰úËÄSW€¯½Ö¥ ªCè~j4ì°aÿ&•+)¦ªl*“"ü®¾óZÏ\^9„ ص¨{y62ÍJC¬ßfßéQKágéØ+sƦ ìŒ&>J¥ÚVÖ7Ô¨všš‹Ðr—ÕZiã2Ñ5Sò°íŽì8„ߊð4Î’ã[·›2;96É>MIDî6ê¢Ý=ÊÛÒí·!ÜiŠŸqáÅoÈ31õVm‚06äØ>ªÄti§j´7pwKa“|VoîS˜WÚ%`DÕ9S44¶ŠêPjv7ðƒ68aôyÇÈÖ  è9‚ýò×'›áú a³¸ò«‚AÏ7â¸ç׌­B±‡$ëW¿‘pâAþÏÊÃ!.Še;z™ÂF×_ÈÒ,޽Xò=·ôµíº¬à' RÂtä‹ð;`zFbO©tðº7Yƒ\Gó‡·P¯GÀÞ¨·b) j¡0Da³÷GŠ;¸<^Óü«µ¦Œ7øïy"jôk\V'bîÇ@ Mš}˜kÊkoáÅC€!f×p<ÌCÅLd”¿ë^ ûm!WZ•6Ψ–+rަæUU¥<®ê tÊ}‘Ù)–·Ð )ÍÛ!íL§€ ˆO¥pBDéÙK’ $ÝêVÛäö;ïÞFrÀ@\méˆäð²ýã<š"è½+h‡õµ¯)BùÖ‡]Ë>˪ï¯ke»Wç9¬.XÊjÛ@7—½ùh)Ÿl±–‘µ{f‰¡ ¨Òâ*ÐÛj8Ñ—H‹Œgðkðd LA!{²’‡êÙo§¸Û—*ø`ÆÞJÍMo×,q›Óü´î#Ù ²š¡ ü£k`3H0BÎ¥š§ZsLäeçt žßöìÐA›?×1(a¾c@×þ`¹€íÆÃ{t’Ò ú›:°¦ZÈÿÄDÕVˆyPO±€,^äá¼J¡ŠòæE P(~å0B*·¶ AC¸Ó“§o«VC2ö”³­nÊ}~_  `Æ ¸oÖ7wטÿnôG¼ùùŒGªEšòåbÆÁ ît3¢ÕÂ<2wÚ#ò!ÂpVhU´Üð—9qÇ“YÈ38C¥dêó̹¼k÷••€•L×ÏM¤ÒRÕt(*‰ÎYà†8Wów|u×5ÞÒ¼÷M®ôæÐë ÛÃq²=!Ú%øAú|¨¬Ùó°¿nƒŽÙòÂÔÕÏ«30É8~ýÇ\²^™4ˆ¤óðû‹t0%uJžWkç¢ØXÊí¾¬ØËãó á(€WÝÅÃŽêI¼dC×ô)•sßg×Þ6¯…ÊëEFvÆQ$äÄ ¼~JˆlŒ^7Y¯z±]¿»ÂçõÌ,ïh–Áqÿ¾øÉ/½¹•¼½ïz–¥³uûÝŠæÛQM¦w+/s'gÄåqèË`ðÉþÄ1ú ×þÍ&Ñ \NëdÇ£)“ü«:œ_±Å¥çrЈèÅcŸY9ŒUؓغúÔ"Á¡² „#d4ÝÁÞߨ:ôÔ¹«ÿ„bv ek! …«ð†@}†”ÑL¾’é£ymç_¼4GTgÇåYRº~4š(k<š‰`ú Õ)g³‚¢dÿ¡f§Þ 5ð“{òcíçо‹­Qï…h§Ü­ –…ê!°±F Ÿfz„xd—øùö}‰Îê€QáÿzD˃‹¦Rn#K7hê+òÜmå/âÐÛfÃn¾g¯(Áüùm9”£ñ,y-‹NgìöIÅ|Ô»"¶yŠU"àžeÁÛ¶³“§îpü® ï│7ˆGKW‚“üœñ뤵ÄðòXFÎVŽJ1|"é¬ûÜÏfë»XðN=%¥šc} ?1!±¨Ý?h·A»Ö8² >ï{HóýÂÚÚÚ I\áÆ²€KÁ\+U*£}G J€;M‡–5?Yù‹ŒZ§ƒÅ½±A4“‡Õ|x~̉õÕqbvš|,P˜m…;‚ŒâÕ£Èü7ž®VË„c|ü ÈÜëQÜ…œÖ UÀûµ 4Ç(µÈÈ8¢ ¥â|rΪòxͳ`LEß ‹÷&¯\’à[hL~õ ÷˜V£®÷<åÙ.rUÒõBKIÆ—:1 ¸>ª@ª’üÀµZhmlcY(€êg 0e¶éòNÁ²hÓD/«‚¸°ÃΘónI¸¨—”žIˆhÓ£/GS"Ep"ó–Žmů S·³¶¨N¬.l„±ÝÍ”RERêvÍú#yγWÍàe q-bQPgY@å÷ûµûOµŸEä ‚ÒÑREÉâvf,!ÊŠô·ÄìèþctŠ/Okˆ¡ú?N²–Fçf+ âM΃Z»)i\«\›<ä%ðd×3ý,[³LÓgZ….I6Õ„ïq¤Ì$¾µ†ì²…ùø*¾ž—ÄGÁÌBL, Œ»žÌÄ£@ÁÛ6Û­¸]Z4HI¸ûu“§EŽÎçÖň,8t Ï6T vµ8ñ®O#}ïŽiãQÌùf/­z©*g:ŽÆñLß ©]Û‚@czK¶>/#Oî <.°³KoûRkb¨eVô¦õV8_ìý¼[bf;-¾ûxŸ¥üÄqä•- ¿Z…£ ¤[{rFo;§Ä±ç¼Ì2ž}S&°áËC ÈÌ„8 #0â‚óæ‘Ãè ?÷Æ@Ô¢ê—@³qZ»Ç²Ä–ð*`]V\¥§Ù‚‡×ÞÇ¥ŸXßúÏQPú£v£“QŠY+þ 6·t¹~$ßÉnÒ\ÂâChèªI$YëéúgÈ8×i|&Íg})ª5æ(2!¾ÅëÜ0.ï6ò“œþÝ)þaµW&ýMPÅ{¬dø›sôËŽƒ»‘h¤áÖž û,ŒÍÆü”Ùy“ fh¯bãgù9Dvn0=ÌæU°@«=äºÏ· x¡½&3Ôíg¯¥ü¬÷ØY¬‘çY{ÿÁWëC¢ZÚ?÷hÐŽ–â:›føbXäȩס=¬AÐýßóy*çeÕ§kòÏVÙ™M}¥ 8¾‰¨µúlš(¸Ý‹£ƒ OïN9Ÿé`ßL:ðú©ÙxÇ÷ÌÊÜNáú9ÉE( bÁ«næ…¢¢lAkÙW ƒãÂ…ÓÓÞuê¤ÏÐè“€Ƕ¤ òÏ"~®w¤ñîâ [˜FA8KˆÌëĺ‹5ø&]ø|Ÿ$Ìʇ }TНkŒYªlc“Ï]+Vi^7­PCTýŸL¤ «ø|±Ph²u’Èyò»¾üð“–Ê|\ÊÕ&cúp£ÈêÁɪÖÜ–›ù0p bv7STÆ¢YY7²ûTa1^gQñ£Mȳy§a¨p*ïC³íc\Þ\™†‹ lRø­=æXFq„J7,ñãwLDj¹¦€C‘[u/ò\ëuÍ÷}¥ZNE:ÜÓü«tLs”iâ 1[—âÿ¶õš¹ï³W‚7ég^}õ£cyš‚X$áéjL‘gÂÞ‘>K‚–ùqm¼­äF¯ ðº>Dš¸%i/š0„ÀþIäÃt;>¬/cäM5Œ˜"rQÆŸG¾È…䯱¢;ðD†ŠãLR–Ô-â’XõOãÅNÙAïÙÅ€Ûè<¦@!ÅæÏ·‹×#ǯÂã’óÇ6Ú7¦š§©Ž²5súGË<ñ(5-x/Èßk+[ÏÚ§nöÂíÊÓÍ~°™"•÷&iU>ÎTÀF‚ š 'SÁmÝðh0'i –%ósì¡kÜx¯¦ŠƒD¸ír4{´–h “ü®¢tÔPþ€ºIˉzc÷2çጟñSßLºSa<^Pô3ô¹™_"^Óüù\|ÈYÿ8€0A›O•hõ*‰ÓO=;¿÷KÅ"m; üò—á+gHÍVÿÍ H ÐDÍJ0ªpxMÙÐe‹µ6‹ÙJÌßp¢iô‹[`~ŽÆ¡Š„Ÿí Y$‘l>?bdaû%ÖÛ¸K0†@À60<,Ë…–3ç¯ØXêσ#OH<`Y£&/yÝ2Yƒyç€ ð£“Ðîð°ùz7Ý¥Í䬆"PÇéqfÉ ZI”ž“öéìÊxB”“ü´î~Îáaš;Ð4D³Œ¡ç3q¦ +ntåiÃÔ1€%“…„¥ò\¾µ‘:²’CÏŒ9yC©Ô;ÃE÷0­F>Ï‘3%½:y„'-$m›0;ôVE¼j¤S 9媬;«3ƺ G‹…‹ÂÕ°¶å¥-6ÀÎRá2ZÛ†§S ûúeLµ ¸fiØ6Ö˜÷^—[†•¸ûv”¿¤ê2^Ï Ý4~Õ¹þØÆ[9 ³h '½Ú=ÜL]ÞM<€@tÔ¦õ=@ä¼{Y7ÿ0 íé‰ÑŸ_hícn•ÊÐGŽRºÉ,iÔ’+ïdñÕ–_H] c·=š=LW&»Êpgó)‘HÑ|§,9²ºXA4FV3K#vá¢Ãÿ7¿Nß“*–/cþ÷UÅjá“ÃúÏZNeçZƒIGzϤ. tTåv ³»óíñH0Èu˜fù±Ö‹Õ±SyŸÈ“BCÏÐO‰ò¥u'Ã"¬ƒ·çLŸžé+˜«A¿©¢[†Êü¿·cgß–JO¹ ŽÇ]_%Û@^ÄÇa"°' :à~AƘñlK€mSL×\UÜ„ƒUR=1]¯( .Êþ~Ûj ¦G¤éÍWlú—“üôñ…40ZøqÈ•µ‘};ò@⤜åÖÒ¢€Iîâƒűþ¯8¥9t±Œ´–í³í–ôíð<>ð£Ý7ÖHÁžð‘ˆÕÑu8ûx½9+¾„Ÿ*@ ¤- o>µÑô.êž"BgÛ]sE“¤Ý "ê&ÖµxD\ }›>Äænñ|o õÒùPð•¤[ê†Jg4Ò¾`C·rw’4AC=؈Ì} ìÁ,¦w¬ ­fRu8ËÁ]Yî²Ëœ¯UKeܪ*(`´M-êí¾jå>ðD‡ÑŸ¨Ÿ'µCfsª¬"êŒ ¹¶@>a$ý*;ì¹jEü®Ì!vLöRêfÙ¬@/ª–ˆDGQïMø^ )ÀªrVEµ†-„µ%³è™R4kÁÏÚ-]ÿFÎÌalÉ›ò Y½Ús“…ãnV ßÌsbÓ>šCs©SsÌÁ*C¼ÞÔÕÊ’ †{ŠizŠ÷Ÿäüò×CÀUéóˆ­‡•‰ŽÜ@²ë:%áñ§kËý¬Ÿ‹\…˜¶¾LϽ¶CpuIÔ­òáë¨2Ô2uË]Žà¢Ò^ÏMĽè»&®èº8¹bƒc¼ )boÊoñLæhöx|SÑsº˜¿)ºÍÀ§9ßâžÕ‚áO°3xU·à†ö¡}ÿü®Ñ3*ê%Ù ‘䉉aÈ:j ,›iôJˆÝù™%R_µÉ_ú“1vÙ)s&Y¨9@–Ø§Š— Î[|̤£Ÿ9º¸‹Ý Òí¤ï¿Çh€v!ÇŸµ¹£?ùPˆ»a>=Ó ÔŽûLMîLãPm "QMßTÃGÒ‘‚©–òŒ”‡÷Tf rÕ!c‚m9ýB¤%LÐõ­‚f0û,3w”jåÅ-7ûÌÁ¢ú¼‹9ÁÏÌœêÖô«¯§o´Ï ‹›ÖRÊ R|Súû`ä’ø—„ÐeþêðîµØûž6/•¬àì¡þ|;²ì#ëò‚Y}¾^ÂQèíü®ÉØ06¥Ó ý飷£gÁ‚`=®–Æí)©ü²—zEÓÁôõ$(É ¾¨wãŠãºD=÷Ùîʬr•3‡Á+ ÖEðHQ ûƒiMçäQz¨ÿjß5·ïª¡;GŸaŒî¤³´­º¶ÍöA$^Eq&moØ«u&fH46È«ë 8“åè4q¾ŸÒ¬ôæÄ‹/ ×ÒT03¸muÄAGÙä$ª„1¤á}ñŠúëŠb­[h¼gM¾ Ó3>L&(3… ÌÊ=nÍä†V}Š;éE¿ßpc:×›Œüv¢q„£k¢ ½<6Y.Ü5p9€Pç' V’ü®•=ˆD¢Ë= ‘ºË&£ƒ…ºG¢œü¶ '÷B£…î)«®¼) aðDŽQ wKw}îÞ‡U5tœ§,*> %g€´M3±¾Ë‘`¬Ú_>¶±t$bè­O»ÉH­àÃ¥éÚqÊEgÚ‰B«Ž¹tD%tì¹vox)¸o_„„аoõéÞ ¬K<•V_*>¦¶OÒH8‰J6›[,L+¶Ùa–ORö‹ ÂèU[c3K4;±óÂͺP¸{žïªyä³ïņ±°gÌ$N·âSò0)-C…§vuö[ðÖ æYˆ‚!×3~Ìpëý(Å·½DöB‚“ü°É]5*å§ÌnäԼ˛çéBÒô—ݸ¡‡jnº~º‰ô×ì\„DÊ•¤Õ¬m~>?‹ŽÅÉ!ïÕÛQRŠJâ‚6š þ±Ù©•ÎƒÌæX›ŽÀŸŒÎ÷ØK:1‘Åõ¡BxèJ§³ª3Ør IŒÃÿÀ6òÔ°™Ëi`µE–«FkŠ8–ûó#¬žžUT¢•º:#•,—H1n1kÛŠÒ”Š%,®îWÇŸÆÚT±õ¯$Žö…¹R¤ 4ì.$Òþ˜kâ¬" ƒ‘=0NŽÒ¾ÌYµcﯓOɆ¢¡‡t«c]fÁŒ¶NËI×è~q¡k6ó\1šX¬‰R’üµ ÈŒÍôEÂA1é¬,o4¥a¢Ó²+¥¢6Tµª÷Ln§z¼¿îêDEöx1uÕ;™’àÕ/v‹ z°èmŠÝ‚c°;ü?Ôé*6ªlny»x„ÄsÜñpBGN!TõA÷q ¶ú?ýë’ rØaZÍáe.ìj½år¤¨„­u’û gÜw…*{\9Ü;º>cÞAQ¹œu¯’ûŽu|Îý-]ZUM9î’½5Üág´£ó²]=hÍŒ?E¥Žï¬Ûª z[¼"dþêÁMÔ_s&gÌ!U&¸‹tKíÜ·¿#ùQµ-ÞŽ’êÊû/Fœ\‘§ÅªP3Za°ÍßúÑ‹–x?$ák·a’º(ò{Ç^©ˆ~õŸí©ŸÛ“”%j¾e¹*4%«©Ð € øÂ0âC>ýLâ™ÿ v8ý]½ÉŒE³1¿e> šmn´ìB”6 ŠO†¹a¶³…04¿X:a[÷4ñ´DÓÚб³·+Jáºßs–*5ò ÙY  ºqx &Qú)Ópø„±U3Üc비ô«Ý"MT&ª£ù}8Ùêó…À+ú÷³€Æ©t…’Úñ!ZxzÕM…Ç â;?mà<ñÛ1ë¥E~“ü2 #Ê’ Š7e'Ä#Cxë¨Nä÷{I÷µÑR~sÁñ¸’ÅÏScòÖx(OÙ-ÈO¬ÖSgA%+1ãa‰X .äè¬ÙGma2Û·Û ]Ñ·'gdæy0óUK0v§~½I9qg~‹î½Ë Ö´p'³ µE+ñiZ-¸ÕôüáÚšbéDܯ@ã×ÇnáŸaù ËlU^‚(T¶9¢Å"žfÙé558½÷xÛ™Ø>†ò.î½rŒðü1ƒI¾è¥ÕÇõoíû ÏK–øÆ ª>QsþÓGu¤\pþpj#Üy4°£“£1ßQ9öþ΀ytVB­!ªœöŒ~dósŒ]O¹:”¿æ2a•Ò2Þª£&lP1CI£ 龿*<TC›Yq¾2·þìRÚØÛVà-¦q…ÁÔÌÌGþ T¤f§¿÷ý%ü13IpÀ0ÍéAD}`ygù­-n¼õ $'&¬}`s”wȽ×ǃípû:Ýã‰ö§ž…€>"ÔМ6‡$½”¦èÍólŸJ v/ÆvGi”ÄNÕè’Ä TB|1iÕ qCˆMEÐ3g÷x¼KnÅ•b¡s“T1Üû‚ ªÃ¯ÍR_™HU¥TµfqQË[Ê»fà¶IÆÊ*’ó3Ðj$øY¶]g €ûBX@å*f–@×Ùu‘˜t|nwWxq”¸ëÚׯ‡ gs"…µñ¯.`myøÈ‚<9È¿}\jeíÖ9Um6]¿õϔՔ‹“Ëd~V"ª–%üÆpåV½Ró±%ÛõaW_mèéѦ˜µm¢ßZ—”ÖbŒÚ€°•å¥F(¨‘ˆã>æœ)—§#69Ç€î®FïÍ/xvV»ˆ[îJCF·‡JCo’ˆä[UQ?çr°{нçÞ+˲\Â0e¬¼'–‘œõy„-­UZDë¬Ã.bê×@q\ˆ5½G%èJ¨±–ðÊ%˜–(`)Ú©Eç&ŸàÛð꧈2£ ä­]Œß™±Ýp-c\K‹6xÆT…À0ž&.#ÔÞ¹ÐEº¢N=6Åï½4ØåüçåÐj%ü|šë@g{„<“ÔT[Àe" *,ø—±[q¼Š(‚ï/ ¤¼ÍcNÐÛª8`oÂø0嘅M ígOŠíª¼2\r˜I &#®]¢D“¯še}¹T_í5 ¹°Çæcö?!QüÙ®pf —¹Ÿj}ÑÄÑm;Õ¼­¼…£Ò*H£¤r¬í`l—ÿõ‹×•_>wzƒJ*ÑJ€óþA'ûÉFÛî#BE¿Ìì 1z]¼…Å¿´ ò¥ï‰æ¤Þ65þ›¾¨ðÕ_«® ¸aÞÅÿŸV…n³%EbvÂBàíN'Sþ Z¤:_~ŠË~5¬Ž[-+¼$”Ĺ¼yUæ ´$ÁðBß÷~çrÃhâYY7»jðê-^âà”ôÞÉF}Gí™ç ù¯¡ &˜w’)þ……Öÿ¢Œ¾ÇpÚ…²˜I•‡Å.¢%ª_ ‘±”‘ßžðá<º«{A¿y#"”÷Õ°±z÷Ko ¯™Éyú®}6us - ->Vøô@¡~ÌMB&¦k}å·É°6˜:ZïňxY}Ùºá_Ãßþãÿƒ˜ܰ¨f:ªäÝäÖ%;7i\ÍÜdÞŸõÚ5ˆ27 FØ¢…&F‘;xàæG¾µ=L-ìœ!ÏçQ’ÆÀË­Èò¦N{Afv䮲ȵF-‰í00ü-ýÁNŽ‹1]:Є“ϳ·œò8àAp‡F@˜Nwrq•àZ2M {qç1ò~ÑoHI¦ãƒž1¼8u!Ícvr9;L¥{r›÷÷ßb°ÐÛG¶°\»ÏèPŠáímÄW»§D†¹R«ÁGÿ×ÛM›!qV—ü¡MKÆ¢ù¸RXˆ‚’0Õmf|Þ "@øBþ³ û9óYºßRÞ³2Zúû²6üLØ%dyÔœñÏ˱1¨†Fy¡qXꇰ\5¯8þþªäœ«?åªá/w1Oæ½/¹èÞÙHë~ï>!$‹„:ÑYŸc²IÂS殿ÂÍŠKW‹>÷NЀƒM:·ïoêz)óqF¹ûy…õIœ‹5Øà@ Š®“ÿYŽjód=¤‰ÌZÕ½c2{  ß½óæŽÈ”„œÞON1”KÎ /JþT¬ˆQo¿q¹—W2àÐÅ"¦ˆ™©'l08&f ‹Äð-RÓMAÛ<•oÁÜ€‡ôûzµ¨•a_=O­üMt".Î4²XŒd–¼"˶c²2üKȾ³n\¸)œžybÍ6öÓÝÏ,ÎöþíÊ8£ µ¢Âí7¶2JU»[$6Ÿì¿ÓGM€\ôÄÙÀeµãj¨ââ9@rYÀ 2F{î²…‰)ÃËÐhÍ ¥ã\Œƒóÿáüí§HìBìJï‹lª­/ ÈmM1=PëHn"×£ò:¶øû›´ 3p• r—¯Z<%T»Áÿ{÷ŽT†°ŒT´/Léê*uHoN1( nÀoéòá÷xuÒÊnH.”&Cý‡ŽÙ#{fÙ—ÒªeFüIŽr#VËp¬FÓ(«•îŠ\ë6Ò¾qÇß$îz òW˜?W¢ÆÁ~…V<ÔeßÎÃMÇßK2çp›ùÍl+rzû’g%¾Ô—@‚iß&o…<õ¿ùR³†õé÷›?P‘Ý2µW7_#OLXšvQþEÕ÷L37…€¤.Ótv¹@%’Ï™6bº6^¯_7õèg›.HHá²®ö÷IÁ„râ9­‰'¢íl{A»ºyOr3ÿ ŸÒ¸ã„[™ ÍN϶÷p£’ F¤à'Y6/1ƒ¼öGßíãªWÐF¡••üÛ|ãÅ]†kr¾´mò` »ïÀár¬ð.X$÷ûžXIÅOM$¶‡$͂ʉöQ>&OãÎsJ¬¾Øt£L@ûth{Òé*ùì/Þ\ÑþEÐn°¡Îÿ ZÆûÁ1Dþï…d=.ú,4µß¼èÙØÖ™émŒ{‰Ë‹±t à|2op¯ƒŽSˆgç[F&dåbo? ¦¯E\߸ö7ŒOYM×:<͆Þ=bR°qÓJâb˜D~cß(Á= IÚ‚ØBa÷ÙåÚ©W­ JUtñÕ_T{­ŸVü/õ XîòC£›öõ¯‘*hkÊìüÙÔ…CfõÓázžÿõ¡Ê…F<¿ßgL@°Ÿ>=®åHc¾†/άBaþáçÆ´ÌUêé@‘9빸¶RN—Þ¥ïW\û‚ò#oóI 0›Å4ÝÝœh›~ÄÜÃûWÞYï"Hžõ"ú§LK™,x˜í¥Ñ¥ß ­'‹J_¤"Zi˜¦~Üþ¯¨*"t[SEBŒ†•Ÿ¢ÕV¸qZÑ4ïÚtLí ±Ž<”,ìÊ F5s¹nëÂl~fºÒßÌ:Rx™VU7Ððm;\9³€u8Ä[ û^Öþ1gIR­²z¤uM!§÷’âþ*êüXÉËÇG .@VS`Ó#µG-¢˜ìdîÕH .Û²¾†0jüc&ß0БŸ–þ´Ýx3[lj¶É:Øút= :&èU7ï"ød[1å†Z¹{>â––p|pÙ1:çúü„˜ÏÉ[ùVúzÜ•øBêŸ ?£²+Þí,Hí 6̃eh,»©oËh—g¹&jZ½&<<¿ÀyøA]ßó~àö$b¬®èŽë{à'pœvS›ò\fÔ·×¥®jìÌ=CÍh"(iÈšŒÈY-óLô['»­ñÝ'8Em´‰Î± ~ì†ÄØÂÓ$©áZÀ1ÐÒfÍëv®~£dÃyKõ·±tïÏ!]¬ Y7Y¢Œ¼ ög¯¹œž…ÓÈ„Iy'oíÛÃÑÁ™ ï_‹üNJk¥dâ-¥‹ÿWžÁ‡®ÕRvþ´59÷ntÚÇ鷾H™`tôžäQº;_?öyhA2f ¨Š€µ)yûdV¾…f&f ÜÔ‡€º_z«0åZ 86?BBíþŠóC|j˜*ÁÁSc-pNUŒOq¾vTiM2n s?vDî€+w±/Ô….¤“ß~‹V?4ÂͦŽ~~wê~xH:.Øœ3¦ù.mHxº‹›¢QŒïÇv> :ãyöØ{~Ó8zÐR´)”å!I “JlvJ¨À´AWg|JäÛt-´*…„/Q¥Üa³´c Û0Q*[AÆ`ˆ!J†ÀÀݵ>%ß ÀíKuÑXÚÄŽÍf/œÑèü{HÀÝ·f³-ÖÀítR?8p½à¼#„¯"ß3åm7›…hÕÁîð²ò3M–f™À]pL© 5%ÔðÚ8eçÃMÈãù(˜s:˜™«²‹MÀ( *‚±VH"À™Kfr憓¯ö /Qy­ŽŸèë, í|_Ì ÀÎyÖ¡¼@Iüþ$rm ~Õ †Î+Ò O»© t>òò’–iY€¢µ]wâíJ4$ˆ¶×lßl7½âŒ"ôù5ð™pO )Oæ‰FÚÄ·Éaïݲä0iƒ¸¦\;q‚“ ©‹ÇDzÙsNxÇÝc›±JÆñÜô§:‰Å5hÅ·jq,B@f&ÌnçßB«kê:FŠìþqf*M«2,$wf~uÒÆUbà Dvï©Fne–ß¼WPõÙò^ÒZ@„—sãØ«é‚OggS ¨äcgËjFÿ äìçéïÿ+ÿ1åéïåÝæÿiãìðóåäíåóóýþÿÿÿ ÿ ÿÿ ÿ ÿÿÿÿÿÿÿ ÿÝÿrêêæáïññüMZK)GXÓ5¤ 2ªÒX(›XM¿9#ÍNÞý'ó‘-ûHdži1vPg/F B‡]õø½T¢]hÝ]1^—î<†ö%㪈âß8&TE~,–>m[{X+72ñ‰¢iî@[ÿRæá@N¶/Dç,0 l~½èfèé#£6@npVïÃ"»lC«£™hh‰Æs…dÎRÖ279›ï,‡Ì'‹š›NJ¶ÒVóåš–ÌAËã‹e¦¢ÉÙ›KÄŸxâ¹²Õ<œhWоH‘œ]KtD¶F™áÒI³f>[?|Û×öwR¬hÀŪ×0ÿëÑc¡E[”â,à‡Fw0i’Dr>eÞMüL´ea6–Ñ{å9v§9o„èɘ}dù´#½~8+èÞ\/wøeØá·<ŒÙ¯ÚÈkÆÅÿkjôž²{ áWÍŤÅh¸ùQ ¨µµÝ|YÃ[Šo"OL$à™ëµÆD»œûÃ:ZB#alŒýì£Gõ†’š-g04¢m™ =»U˜ê~±MaÖ¶6 _ÔjˆNIcÔ\ë %aSo³ÏœëºÖ‡Æhû¢ªu›ÿÎÅ‘d*VëÇ&APú€P•Bxv Ã’ñn¤Çt}"ämµ†\mP¢iþüL¬Bîo‚av"š?@€cº{Là4ÃWKŸÓòøŠ‡P;Tº”'»}Aß~_ÎÔQ™íf¯þ¤K:Â[%pÒ¾¨u0feSÊŸÛo}iò„Õàêz.$S+»Ê×»1ž®VB«;÷ƒ81Ê ñ4'DqêGû¸F'ø"õ];Ò7Œ;ݱëô?“2=64xIÕü—Ôû³}šá³iÁ¶êB&|‹_RW}nžÛÛµIH·½ÚyLayƒ”I{„™=kðDGôü$ÆPz{/7DZ_ËthŒMžéîŽ ±4Kt¥õàÜRuNÙæüñØ…Rî…ó£Ê…]$F¿ð#ki/_åð˜Ön ¿æ’Žs5eœú8Ë-˜z…d?Õ®Â!±a·0Ž=i;#ùµutŸÿh(ÁdÉ«ˆ×Âó«ç@ +;2–¾¡-=‹?B9CahÞ¥|¢„ˆOz},câþÊò«VD{·dŸ Xÿ`òc̲XÊ3~yJÐæU43+¢Nü‘=zyì‘é´íçM /ùcäËF}aÒw”K|´4^¸6 p¼)“‘ÞQK÷SÂÅ­Ô¥°piQÖ«$5r謵Ԣùk2¼db¹ü(‹9€>bn‘ÙÂYmø´Åº°Ø‰Fá’ %½ŽK5šƒcv3ñÿ„ÐrMïÉÕ—ç¹ò=€¦ŸÚ?¨,)µg®IĈ¶»Qÿÿ©ÖvwïLÂä±[¡P%q­ôŠu$Û‰?¶ÿИ®tóùwi¨kƒ°Žca<2c™.ì¹àš^'§ÇpÓqUˆzWrÎrÎÁ'õ £ñïfϨG6u~ŒÛr ªe¥)pœ.àå»8<… •ï•TÛÓ±½…¯0vñ ö5åB±ýûÛZ†”;Û»¸aÍ´üMX„!$eIp´ÔVÀï¤Ûa§±¥Ý¢zú‹—6M"]fÄܯ _9Ò¾é Óîûõu€ÜÓ EWPT¯öÕö¿U‡âúh’i¤ ¨±Vn4û©\³b+^ëÛflAQ§µ•Ù—€Dþ?ŒØ Y‰öN›½ZIJI'¬kiÕÝwIžÎ s§ŠÁ—³!H3(;…Š·û*üå×:=ù°ç¶ÆÉïŒ\¿±çSéàp”™)â"m·ê =ŒòHž”tx+¶Åòzæ-”žª–ÍX^ü³Üóƒ,³Y’®³Íž2åøiü/RãÆµ‘áèNÍ0êg%7àxW!Ûí­ê2îRº„´Ò±4(© ä+e™ à+ÿ6ÎÝ7úÁ -7›¶Qudíé=N¯––Y¼)þì-ü“–­ÃhË–…‰ Yž·Eà¡1_%7ÝãRç7šiÌÔ’¢ QøŽÜü³¶a è$H‘Q³¡!£ckv·£¬¤˜ž¡©ÎûQ¢»“¯0ÏÜÊÌf6qTâ`«Ka¥X·ÝvwÞÝCŠ~@%œ¡ôK³Êm›àÌ2µ³ÃÖC(˜¦Í@cgÜåv·ˆiúfÂò¥¬®&éZôÓOo×xõ K}¦šÊøÚý·< ŒÌc‚,¬NÙácgìÊãë#ѪµôiñÚ¹‘ü}bœ!:÷¤¸á\ nŽ<2ëÑ@ ƒ‹Á4vB«oœ,øXŸ]Azº$ÝDºæá˜÷UÈËù”Ø÷9Ãü4Aض€Pž´ê•>›àÀ­B½Máè¶þ÷1Bᆋü U\‡í # MJÛÿÁüwa*)ÔàohÝe–¡¦QzÅùÝýën>ó­çÌ©¡Û’9ÜJ¥TV½H:qqnî bNÝô.Ûê®/ÔUM'÷l Öãïõ+ÉPhÏ.D¶5϶šÙc9H䊵».ÚeûÓ ñ­«º4Qõ ¨þÎk×e¸9Gýå‰Ó΀¿Þù/ì·í]Ì®PeàC%:‚î.ù ò{ŠÀhC³…<¡¬ýd¢v¶&-ïÒÇþÃÆˆq÷þÜÁ5N;ÚÎüM,ÑóðÕ(”6$ôÝ6Í«GüÔqˆMÎ#ÍüW oÈ—qSp,3óùåèoú:‡2Õãâ¾låM-7Bjæ<µ¡òrÕzÚ 3dZ@Šâø^|ìá7cJå´MÙÆÂ͜ݿÕïU,÷>®Ô•‘íþöõï8NÌlÿ™t²Lš÷òP i:˜Úxx±-‰ˆÍV{áìø6Qü 3òÉÖ‰F6`äË“%9º¹þñvMˆJ{BÙ¬(ž€­¡/p²Èøk“”ˆ%çÈüMbj—H2Öe H[{ц·‹7™ON¦÷Ì£(˜ç¹I´ºÕúÅÖRœ¨î¯ÿ Žªu}…å[„ùŸ«ÊÿýŠë-³ëiÚá¥àH–•32dŽ|M Xú\nþK̓?P)o|¹Ù С'yˆë{ ^¦ô³ú:Ü"ç *øÈBÇki¨5Ú¦ñ³Ò€]•á)Ëêþ"±“èñ“ÇúþmÒ)‡ÍÏ$ŽßÏO6ðR¼Z†Ê÷¯j5DÂ…]÷hy øT ÛØaס Q¾ ³Ql<ÑRWˆ .Êõ›{Ïîpæä^ºüM{;Ö TŽË*âªÓ”¨ÍIÇŠ¼ap8;ƒ)¯îi‰¦BZ׎ãõ˜Æ¥iŸ¶-w;]×?úúûe‰]±YÍ,ÅcÒ#£!a–[¶è̺Ý;TNÉüwo+ØF™³–èç¢\@­#LYæÿ¿b¢è1·&‘_,þ7jÚIî"5Øôÿ¿ŒíCí–¾v®4ô¹Öá! þ`7¬ÇG£ÌiP·»l%xaÁWNÃa†Ý~`8ÙÿxÝ—FZ^¼n*úK‚ÄP˜¹%ùéF1 ´þ›ÔãØûÚ±xÐ û³,:Tͦn) äT1|’Wbü2jk0ʪíA:ÐÜ]D©5¶™ Ô<*m€´Œ²ÝVªàç/b7Ym7†]Q£ Bk¥x<#"*×#Ðæã’Æ{`¼h º>Üíœïí…à$6'Khil„mt§—f5ý€yœŠ<¥´Caýñ --yXM9žÃër=˜Ö U°øòb,åaÚÛÝd å{·eó5±ò'¾5Ùp0m¬¹ùЈ ÿ Lî AÙD‹Þ^€åâ›G¿†³ê ÖcßòÒêýÄìwŒ“!iâhq¢@áôößZ™€f4jü6¢]–•J§)Î{¨]=þ̱F2Ç´C‡É MÉm®ÆKoiuºô5ûw=úm¡Š7¦Q±7Y‚ØÚ®Zb¸|Õ·@³o¸EC ¢ú[4âwO•Q¼õ'L2Åoû-E^;²þ mpßG·²Âkù½«ÅÑ@{²PôCž1Óßö…µQ?1Û9›MA­K#‡iwêã@/s'§íS³ìïk·Íb¾rPëüÀ­ÝnµäàôxÊîÆWö,>{sèɽ±¶»®=̘åʵ ¥‡v>vï€X8Ø›§rYªc±Ó™õ߯û;”°`•o€6väCðÙÖÖÿ4R¶Û)x ê L[ï,[r´ƒSV‡„€W6û°8R¸/óv»hédS±m6Â"˜*ñ­jH¯`^¤ñˆÁ·°íÏÕér@k˜– ~>ïM~&{!7 ;c͈éˆ,.Q•Ÿéu ùl«“ Ðu3ÿÝî%{=Á™òÃ>ÿÙÀ°êzxäœ Ê)­:®ܱóÔü0í™y¦ð¬ªb¢å›Ðôý@÷:=©BÎéWØ}¬Ð½[¼Ô}®þ8Ó!®¼°¡shdÆ:,ýäê=)/ÜÔSì8½ˆS{žÀ{ Lïf<±fºeKù×”w²Oµ'2ÆbH*zŽãØÅP(Û.äKQ¾n€ä”JºþöÔ{Bg´÷±Ï£‚y<-w~žûŽIØUW2§6¨ñah ƒÅغ4Ö Í­‘’?;Âã€ê ²¾K[¤±ºgÂS]@CµžûjçÍšÙ¯ÂHÕnдâåÇýN4ÃO4=¤o7Ñp w=„)‚»GÄ šHí0êS'ë'/iM™xf ü7·ôÙŽ{á½éÈ©¾­Ü~‡æ¸©ëäË#ºQ>tÙOÀ-± ¿ ãÁ-´fCØ6M<‡K•¯ M´2–9k¡«H…ùcA w“Á g5Ò‘üJ˜Àœ¤6U­ÇÁç›ðB»Ç9XP€-;ø`š&Þ±Ì3nß ¸fùîFÂf ‘hf”.¦¾i.˜ۣ¡Æë•0™¦?ädÇü|a”"³)4ƒ…°Po"º¶”G©OGÄ£íGß‚,wåÇL ¬V>ÝÑ‘zZGî™VhäaÓAŽ6ì.ëªü$œÞÔJðl¢A,ÄÂP ¤/’—‡J¹2L§uB£ÃhAùl¯fJÅ£¼ iÊͤaΆmÕ× ¬u›#®ÏbØøÅú#xÇȧ°ø[£WiœeCˆNYÔUýtkÄÍ'‹¸ü›}|­—ûÓu°¿¸ãXÈF]M¤{ù¹½më®ÍJ*y”ßy>Q2?·|aâFKzNÀKºœ¨»ÄxTZ6+úñé˜|¬QD"ݲÄÊ,¬÷Ö°§‹Føæ\:  Aj|~o@!¦_,ŒcÑfÆçÄ7®ïçRÄÉ`Ï'ªfÕÈÙÈÍ~Âvï7¹v?TùEt0O¢É†©¿1çšÃ>,ø-jÊ,/§ãÞà5·‘í¿¿õ>ÏZäÿÙlè>o€*æÃ[*‰°gsAÇ ·/¦É‰æÒ8¾iX€¤„q™ùߺ’#Y)_ýJ³ÑTiq0Jü4ÿ¸ÌŽs Ø(‘#aF«Ûxa{^7ºA{wò˜U.öZª>b{†¨®;.•2`iÂôäÞ[ |5):s1e£ºQO ÿ]QÛ…Æf}F(bª× :Û&"&?èzKZŠC… ¡ßZ‹bteÊ ¹¨ñ¿ò‚8hz̳»`[’¶t3zu—ù¾ÉÅ4: |=xˀ솚K)•÷ù%¼Å«Kƒ‚qþ— ³ª£d†û„yúk'±ùÉ! XÒ w»kspÑ(MØ{ì:ê”zõe”>E¹\i¢Ôå(@§²­·ü/ßzØe§nµVÊà9€M<Ù;Y©&3Fz¡V2Ý9Ñ• «”Õ>”Ã.Üc-ap|Gg'ªÜ’Lnèñ dq\%½¸«MöG5q½u'Œ•#4¡ŠÀÔ›#½lšƒˆÑç½O¼›.jJ*Òo¡†¼îS²I†|6@êÌØ»´ØõÊNä¾wª_ÖL<ŽU¯ÈtÓ©JÒÇ!ÇYÉ¿²8Ò¥n/³ªÆE¡ùiå}Ži–{å³;¶Y5(‘GÜj1$ø™êå@Å/hËFmIåÇ­.(´¤üMSö Ðúä/q¼mÎÆ©j¿°Ó) › Ÿ:Ѐé¤8N®jd¸š UAœn¹4ÍÊ, YRz…RŠ@äp@=l3¬KU}L8ézY·Õ%·öf{Ž®ž¼y†Ìe’ÿ×øÖÊ«ïä¯{B¯óÌGdaëV üp6 FQ-âqõ+€X“WªTš°ífÖÑŠ‚JÅó@â¶ÄA>}Þüã@6ü’cmPvÀg\.!C­TŸ@Á»HÚaA—;šª–•6¬rãk÷2Á ¬Ù÷¬½XäpÉ㨓UVü6¢ùÙl׎‹.ïwÇçF¥Ž uérÎ}?[ï©ü[‡$‚bš·Â\•ÇWù[8È›Ž¯»$Q©ÓÀ,åî@/îÅ–_™­èˆ[ü9¨Ma^ö%ÁH Æè?çÃþ–RŒ,*+/Á}ÒïeKÏÔR_Q¸V™ +8ݽ!™#h"m?¨à‹~ëåÏnÿÌÈùø4yÂK uõTlΨ#”…§eÔA²ã[¥G=æªúµ ·/sØMAÿi›\Leˆ½9»’WƒÊ^vùayáö™ÿ-í!Ûiü6`À YPÎí0Ëø?ù~4­—Sô¬`Êî S& Ï|éa´Ò²[(,ÜKxö„ô@xÓL¤¥­Çá17[·Ž³2¢µêW3Eç D»ªLƒªù êãåƒ/¯ìo>ØXóþ§œ/úÅ€rJë¡ï>°ü¦ÂmÒ®.¬×ÇVÚ !È?TÛù¦áéŠ×+Ý3Á7æõ¾Û 4/Çhͼµj8½¥ë¸$9x&ËÛžV¾6xdÛ©dÀ#\ńƻ@î7Ø"+}1.yt`—9xN=•*e‚QYá–E6Á»°DÆüÙB£sO:OT•”îmÀ8[ðÖGX`Æ&Å'ïŒ`rE"õr¦ò¤Š¢F9²R¯à‚±Î[‰P² œÔ2äZ§&Ðh É p?¿e†1¦üt”.ª‚“š=Ñ“V;¤«ýÍnOKòn9Õ7°¹×©ØÄß}u»l®Ô+쇅 Þ½ò¯ÍÝæ³WIþÚÛÖ6ÎÖâÜòä‹q{ÏÑB“vJ ËPÇVýÚ>–¦AwMWâÑçítêñÌáŽ*‚&‡†˜lt².†æjÝßE…¾X•yC·ÂkZ, ÙpÿÜæîl,.p7AŸQÝ?³›É&²ÚÕEòíü5n$r+úfähHhĪÌ_ÇjÖK‘ÄdåSY–×m7þ¶ä¾\3>®L{³Án îS»b2Lr´Ê€¼â¿š3*‚5>hþ?õž,Kåbá¾W­Çþ\l”`É›2ª’u+uÌáîhMã%ØYKLsø{]ÆVà÷Oÿ6aL’¦$Làƒú Òâ<^:¡ç^X±‹Œ«Þ»I·f‰ê²kyh#œUY[ìŒÝ¥BÝùJ`«WÚùZì…Ù¡(<ת†‹e½5ø»þIfë5¾Ïië‘V©»ÍG¸q粆x?w”`æ\µ}x†~8£ÜÞü10nû'áý²Kºõd÷ól?‚³fHfš##Cd•F¢&(ŽrjŸ$>ÿ\Mq+ ó²ãË•ËÃq3lgJ~”º…\?™tùV锤* 3¤d¥«~Húk¨ðMÁd>^Ͳ­ÌT M¨êHˆbµ'¤ ¦¢«Ö…}ˆ­Þá’ùZ]£ŒV6¿a1ÜPÜß%¿ªL€¨F4’ qÕf½ãÈ›Ðø[z€#o¢Ï+aèoä¥þiI U¤µW—\£"—©<š7\i²p ÛK¢W Øðpa« "„ø—cîȆ9áâ–DV å§ÖxèjoüNDLZ‘ó CoÙ¤±š½¿)Â^h%;„3¨jåHé¼+PȼôyXVƒ¶w©¦äq–‘9÷jBž/Í$Vîö1¿/fðTK{ÈaDÃÌ ,”‹©"®_Að6Üb*ý·‚ýQu3î÷‡ÕïSAP6õ[ççØ¶#&w¥ÁÿNÜÍ fh4.T&ÖQ‘3,å3€H¥âðõã·[:!ð÷¾æaë¹ràPøW.Æ^`ˆ”ÿ ™È3Ûl¹TŦ„›þŽv9 B‚Û‡]1¦Ø~øô.͆ŽÉúyÔ%VºÝס  ­ Tm›ì»FüLµÒ1ŠÉ$”É/`)Pv"†ÓÂÃrP–¼š ©áÉ=L¼Š-®¡!ÁãkQ$Ddî‹CµByî; n/+ríháïcØ\øè~­p³£ãÏß¹ï¤Iƒ™Ãôìp*,+dȶâòbš”Þ¼BdðÐq»¥öÎ…ãu˜ƒ§[aYÓê7IÚŒû“Šg.¿—£ªg_ÙÝÔ8)?dª-:Õ0ìå· 7£Þ_È¡¹}ÒV£Wß_î¼rO=ö„¦FõÉcHÎpwèæ+¥®/õÊîCsŸ´j@+e@D‘NËn‘%f(²¦ 4æÌ=—¯Évz<¯”_´þX9ud?5ü6]˜œç£ÈlÎÉ>ç|kè°ÄîôMºcßVsæ0|2y¡Ü™Ø5þªjn8„%ÇFÊœhCvz[‚)¾§¹…Š&â Ál%™’‡‘#Kþ S½o}Kñ1Âp’0Ð_¿ ãÕ•®Õ«sIE‹+Ó—´R}_¤2­’Ì Áòª›™of¥…˜rÆÜpÍ.ãS.¾4$£¹"tÃñ}c<Ë‘ýÉ 'À÷‚ôÿÈÁ*ow%êŒeÄ×¹XXC'RV%“zÝO㯠“ùAîv=WæŽZ­:õÖ–93šÔ/õpÕdòÜEËHö ڿܬ{øÕ™4šI#±@È·e¸ê\ûÊôºOüL»-âSþ…šqîÞøj6¬„«Ãs'¤¶>ºŽz˜´õ™~«õSãâ0×̶lû6¢÷ÃVcs¾»‡L>{zŽj‹ÐŽŽ’²TòŽ—DÍžð¦“} ·p!Q£±¹ãìJܘÅŠúKžî2:oÝ"?s€ýaÀ£(BF~©CyTƒÛºDäOîÝ+í€åÞâyñ½éK^Exbã©“:£œ·ëdŠÁ·êtdWÝvŒ:4½4iõ.)ƒàP-±ô Iºû6å%EîU{¹à)HtFfÄ~Lr³ÏNªbÒpßäK’üLÌH®ƒ¶¬]4XþË!÷ä[ß)ÐÜ…¸†jÞ¨§(¯›jÛ©­<â(,Âï~C²ÅF¢ã™øÁðé²c®‘¡ Ûq€ ,j¢,‚™#N€Ú!7Ô£2B@’o#¯µã]`¼bv…I”µÁý5>O+½ Ó+ £€áæ>þ¸¾‰¨sw[TnHBî¢ù qrÇÿèÁb è`z^_x-¯ï¤ZÆšÈÝÿ$ä'2_’âŽ=D)K$L ³ØJ“@ ߆ÉhxèùDn5Qûb2.€CûêŠ|€“/?Í<·†ò ž‘™vNqC[Å1³:8‚‰–b½"…„oò &çg3ô@ðJüMûýòþJg+†MEÇÇ:a£F“…›zõŠŸOã¿3šAs;1VëÆ«KÓgòy›.ºYÌŒ?8|“ðI¾×líl—õo˜ì˜ ‰²Æ)>Á½­ß4 ÷ª@–Ò/Ó£u5e&Ã{85°pðRI|ßvÀA¸ÝYù`Œ¹Ù¨ÏÝÒYÚ°Ž–Ô·!¥¬¼EÛÚV6 Äa¯epËØžN×ëKÞ?ÇmA²…¦šŠÄ䉱Y«kq=P,Þ°n³ÓÊõ%¸†5ßùý©>âA7¬âÂ7»e!@!å%ôz’X(Zž•–PKÿ(eÖÃúÚKü›¸¡ žè¬À ±ssbA¾˜¬Î‘/¬[Ϥä5¿|¶­gx¯Eå=×J]µ˜ ØiR…Q§NqÙ‹7uµRnA¯ÃÔ^w¾`§°ºŽÅzý£*¦¨fó;k«âÆaiÖabû:XÍÛ´GL† ñ؉Z «;H':Ý寂-UÆZ*©…y›¢>rvgÌÂκš,-7ÔaóöVËÇ¡…ÑkA!ÁÐ5—IÌ9dO›r…ÿuÜ•):j:•|‡Ò€k.ÑR\Mwêã5…ñ£M3k._^ÃÒ£7­q`O1£¸åhO¤Ø‰ÚškÂþ§ÂDt÷€a{ û˜ôf:Lü.0‘ÖO¥Ð-¥çæ€@*Ðsœ™M ¢=Αý¿pwM–Ô¯ ¦a6Í‹ú_¥žÑ#¤œ¥Ÿøû <k}>í›y(þþ\Ãn­5œª¢TkÀeÞ‹þyI€QXFeWêÊÔ7 /5ê“0JÐÌÓ±øî±öI´iA3}.S#€|/φ›Eá:~CE5”Üxh3W߉!^mKúõyÄ"ží¹&n #aÜ€~|!¹{pt%!~‹ƒ¾ì>›;®äÐ~ÅM»mD³¶¯ºK<Ë Šùƒâ¦¦ˆÑ»” Ñî±(œGZTSÉ…£Ÿ§@†ÑVÒ¡ºÖ¤]w¿ÚýüMžü¼½N+_Ðs—õ¡éoI”k}˜ÖL‡í'³uƒfò þB-ùŠ=-:ö‡‰‚OE@Ʊ&ycÇü¨Ê ¥Q4P.g3žÂHuÿ‘Ã"vÿÁð„•RŽˆ”ÜÔÆ¤‹·ÁVÑ~0žè/='Ùã?{ÃUF–#õ”~ˆ|ƒÙÓµ·‡œ–u†Þì!v&<Ê„¶ËœQP.ð±i¦kDpš¾Ë³Ÿ–è´ÈN¼¿4‰êt´,#£G`]sS¨÷°ý…¼  çï" p<ód±‚³“Qm++$·vI«h9ÊiÈò’Þl#ðSµú–¢‰y+êmsXü™Æ=úæÀ[’Xl–DØAP½Š-«vq¤y¦“Ŭ¿R}ucL}°¡#y´ÌM­uÎ’“(ASRbå …Yª¢j;> –‘ÀRV®C Ñ#ã'DÏÊVùÍÿ•mþr.Bžÿ“e4äkÓ³°¿¿¸ÿ›c¤œÕ¦Aø³4õ‘ìú'ÆÓ6¢mÕÕÓû¬«/}¨$˜ÊÏ{â/ù•SQ* Â\Îëž+P³œ£ù7‰ðUéà#&°“y¶Ò¯ï“6”7 O_&H%¨p<ª¬ÚS(pmù ˆ\ËODˆås=¢Èû¢(pIO¤mžäãøAÐIÍ®ß!T#éF¶Yˆ4Ñ sòƒŸ·BJü¢Bs£î}ÕJ†è\’Kãq½>ØŽ–u«äöCPÖS×UüÇí.3âã< @þZ°wf%qÜu^>¶æ’8ZÚÐä³}èP=Ö7¤w„AT BÙqù2³u{¡SŽNhþi· }H`Vë’‹&ò-ÀKçךô?ú†Î&Ko Ö0xhIt4gueÉ7ð1³·¦3oÔqÀ|ò R fV\eériŽû¡ù¶Æ9Ü‹ Ÿ®êœ†0lù9CŽç|ã&þcà Í\"u­à?G"I·•æ`;_seâJŸÈÿ p4¬Þô±l`È [ÂSé4Á* }v^õܤ&''¨<†ëÇ8‡y#‡çê:¯Lo‡Aç™…1¶T³•ìg1‰8ŠÙ»1´ä®ëñX©‹YI0©ÅKü$ÀѦa®[½l|”o þ€t„€—ôÄ£+±k!xó+‘Åá-iµâ\bæÍÛuCa¶)k.bGu¸Æ/\ÎXm‰ûñ¼ôuÈ °ÃˆØü5QÞpcúQÃi–ŸNηùº’'S?yîÿjÚe4Š4;޵׋Ääz>ŠÅâüíggg*râåŒÂæ° já †×2-(hW-|û{?Mf0?wîÊšµ‚Më®èäK‹×†—7LÌfepØÇìßL´Ìô€@–…DàÞéñºÔ$^·ÝüMz†!-”*B›CPWþ†ga¶…ºÍÝåü8aä@'\Òz®ÏÕäå,®Kñ™“ƒÏò¨¦]d[—)¦H¶ÔpÁJÏxmg Q•š vk m•ÔÎW(Ä=Oì窛 Ô¤KZz-ö.RÀJgè wÇeØõþxHµ+ùîïb–Ü9x’™ÝP¶(±ä€eún ?ÎYáé#ذl=úZÙô8°Úg×Ûû¶' Åïtz T5hêé9&%ò‘4Ï¿bƒŒhú.Ï£ÝÛ%Øž¯#¦qòü1‰™ˆ)9Ì㧆âô¿ø„Aj䧻įӗ» ø>Ýq©"1ô­ŽžsæJ”-‰Îz6z#62ó¾¤Î\;¤læãä,fI·ŽÓ¼ô/Ÿ”öv}…úÿà à ¶+‡¾/Œ~.ÙnËêÛýG®P=›hÐÀÄR’ƒì°â%câôÚ%ÌeõLEø|yþ‡é>5Þ=–i‹ñÌI8#¦m3ŒäßED¥VVÝb†èí¤/R>zàüƈÿK» æTÜf2H{ÓŒísŸö^ï¶ÀÞeõ°Úݶ¾Vk [¯äðæüÍÝAÔôKkÄý«Ñä™L¸¾l Nö1U%ÛüÖtÐL4£~Á°·‰•IJ³ÐЬÔh sT/ã9ؤâ°õrP$猅fŠŽ0±?ÐRfí5ôÿß?ãò[7 ¢ÁAd‘|‚•ºõÕ%$fç°†P~®žÀ’Êj){ü5ù\€zïW/X ÜÚá†Ìl0#õ¯bÕÿ„XÃñ²âªž“š;¨ ²Å I0¯³o~öÖæé¨&ÆY´¾ýˆ½1v -˜Ç€|êeõIÞkŠ‹Rx!SGYO¨nT’ÓÇK^âEÈ_Ó³"oSW‚¼Ê¦ý»ENôÜWÿ’¥ñ©»VÜGhÖv äBƒfÑßiBªñZ eÍšðáµ0?…apçp g%Ž©Gç¿(u·žÄt¦æ½#¨¨h&=yWF«ÉdgVµ­O.â%œ†žÊy,ÚýÞôî$ÈÿÐÒZŠõÚR˜2->»¼ˆçüM?"åX T*ÂóA*Nui‡‘­Ë«ÈPÄÐVó°„Ü JÔEµì|*ãµ{µ¼©ÑØ)ARîÆ½ûŒÁÚáH|~)¿¶.ÐüÀö‚o‚]Ë_/KƺúYûÞ~z{O¥a½9Á4oX.mJƒ4Hî ‚<P{æ¶ÎªÒMCÒñjû®mÞÂ~ôéFWÛ 8ÖH–‚×%á2¼g° ¦(‡àœþª•iQÚ Š¦ýý#ËâÍyßRj&ºK±G¸hfj¦^©„ûûø«ÈÉÌ2å ˜\AGŒ½„N@Ëž¥È­u”‡žÜ€YßOggS€Æ¨äot™ÇIöôÿÿÿÿÿÞûõôêíçÿÿñÿ ÿÿÿ ÿaÿÿ ÿGÿÿüúôóîïûñÿßðñßæÛåÚëÿÿÿÿþÿ”êüM²°âwhÇ,…¯nÑ_6„¥mÃ=¼-.ˆ$q{Ü!ˆØß¥vêÏoTq¿ïȱ‰DW51uh®ÿmöí^ÊØ8‰c‰ãÊ¿«C¨OÏ!aa¢O±K?C=é ?ÐáW9)ï“v=ˆ{“ŽÍ˜MÙâ †pÍû ð)1Îùb ñÉFθ¸‹Ò‚ ­èýöå"uROÊSÐ= & ež˜Ã²¡âeB@vòÕ3ôMkuœý´Ðjá]ðÑÖ«"¾Ìa¤<é¹E{ÐAÐ0ÒìaÅô*Uú^4¶t$»´rî7ñdÞÀã1‘2bWY ¡<åüM"­ÂÛìNèþ'#󀃰fÃÏûHÔžBLxÇú&û/ü¿g2Ø5Y¹uÛtlcŽæœ*²ÎWRS¦D‹®Nˆåj.1^N8„è³>öÆÇWï=UÁU txìK)5,‘îÖ\’Y™è=­WÑ!Á¸€TŒíÖÖ£øŽ¬2ÌR{!ŠèAÖ ™?{3°$àeMöÌW ÂÇbMf×6±zïvÍÞ\‹Sd92â¹ ´fô)ïkƒñP}¡Ÿì„Ûiüm$­¡?C8ƒîuzV §ß÷}P–ÆQ‡‚1^è/ûN‘­¹BÊpTEŸ™ËW·™üL¾.[Þ&W×4;Ýéµ*ïFÒÇÖ©“—¶¤¡ÕC¦fq„•2é¸s‡7é³Ë!3¿¡¨Ë§îQ׳-ÈìEz߿Ɩª½8`2’ wXqtEˆ³ž©–œ²™Ãè-uÖ#‰¡œîÈ,kO/yR³¦Õ¼BÌáÜ‹ÂÏ“Ñ ÍÍž˜{»ˆåÓнguãÚ’üÂð‘*kÚ?@M5s§ÍÁK³ÏÒ,Ñh¬.ëÄè,—4:Šß07GÐ÷‡‰\Ùþú´´g¤ÿn’bêàîF +$r’î:H´ßSKQ>Ž j¸XzñüL¼äIر5á³*x=ÿMyUDµÖæÏˆ‡¶yó}ú×z¨´ƒ]U³Ò"A”…Ô‚:xØ“~Õô|'„`‘Éí®‡>…å~¡Ïò›TDfÚhÔ»@uÃÆ÷؄ֽ0è àIá;qi­ÚÛ“õå”Òd-SŒ¤„xeÜ1_æüþK6EKaÆ<]Ò-;…aY†D±ÐÞ­7FZ3Cþ9ŒÖÖPS2Ä YV%E5+”H<ÕXk "cùÈõùæÂHw=n¼¬#_%)<ýDBŽ;¸%Ô˜t¯`n¨î&BÆA]³<ÝŒ \™ËÄ ?IÑ`D£{BùüM îaÊt¼S0h‹ÄþÑ7)žC Pû3÷Uyx‘Ï•]…p½“ÙVtZ5á wØ2Þô…–‡Ûsv¤ šˆôm¦qlâË2î6,ÿžÐÝk±®¹g.Ü`,JìxRÃöV+|}®tæŸb\„™† ¥&{† À´¢øµ¡X=Dì{u²r­¢æ]ì;쉖bŠÓja^µ§6ÖGî| u¨Þ·à8tG›:OdãSÍt_E±>‚5yqœè7¬Õéa¿GÄì8{»viJ2¿ÄY”pqhÊN°Õ©-qC@3×¾rPë¥)†^Í5§ºe!tâéñ(‰‡ôk™üÆlظû•ÔúÙ3ê|芤 ŸÅ„4œOhÈ'(£†¦¿µ$›æZ÷Œ¿a£U_rzböƲÑw¶^é:2IõYÖ]tZ”W)=ça'ã‰YìO¯óxþ%·ƒƒHæ:ŽÆÕªó=ßÑg¥N¸Z‚{î£Uð|â,rCf­Ô-Å-èå\íb|ò'‚ÄØ=GGqàõɾĊjI¿†¸îiŸl&÷Ëè=ˆÖ4¶‰ià“k¥¡ë!Ú¨ÜÕá6¿8ŠÃÕöð\iå•BwÏ,f×NÝ.+W@wÇy<ßß²mL¹g7Ï}h­*kuI‚ü}bã&°ç›*‘§Kç­ß'ù;ôÈ0{Ï,ÜDâ˜tYÉ…;jðË/ÃàÉ·°Ú¬Å)›9—eîûgî s§ü†fû6ÿ¹æ$X• QØ"ê:ðð|¥$rï?,¿CêäÚLä9hÒ ½ùY~°4GüæèF¬'5Âs`A'G£“ÚìåÕ®ÞUîŽÉ0¸C½ì{@L¡ÊצWg¢<Ö]9ïià€KÆþMLQä×ÍÀж'éÈUÄ:¾ÐåPüÑezy¶!ZóÓÙ%OÅ„SóÈ·Q‘;ï—6v8x%Ú5òà2&ÆÿÆ™HÅoÓo”™ÂT œ3ç^¡…ä§Q£€H"'Œ^ƒåÅν³/™ƒ›øß¿uЉ&qƒ 08Z©`–£qp ò`Ç¿è3`ÔH^Æhõ÷ ÎÇæØùeÜ*q™«¶jªÅç;èܦÓE›UO¹©h Y¨ ;$knv©­ùz©Rˆà2v§0å"•îÃoÉþä,õÓé!KWÖû9ÈN´rõ™•}híöJ½éT®gñ°|}&ŽAu^¨d Ñ<Yó †4Ž«¹²Tá¶Q ygt9iïõƒÉçë#6ƒ.?¡NüK?5ê«~ËøcR¤¶ â$ö(„`8rå¬EDåJÉV7¯˜Ú{ÕT’à JPªð¬@ªK-ÓÝj±;§¸šfDú˜ç’hbøn{@FšÏsºX6œòÜ”58ñ÷.>a ËÒÂÁ L>äZcáÏjÌTÞgZÃoÒv'*Ë*uFè¢FvÀ: Îr¯V(øääLÓ6¤›‹#Á9–á¿âF%žZF¯šçè‘Èþà5Ù Óä|îê“{¨Êk.éNsô€cžmZj½ ÜCï¿ß “Ó;œ4Li&ÄÝØK DQœ÷ëÒœ¯ó¯büLÚ”{Z‹ÖcLˆOIøcšb€Â\´ð>˜dêŽ]jµ(½Û•qÃÏjdœï¦þ„±@³O{6Þ…´|·ó@ª+)ês§»ªY©=î!h9• 8ø¡«eÎVÔ:9Kë°lï/³ñÌ ;螀. œVÐÝ¿Ñ˲ã¨ÎÞŠá*—{¼ =$ã|EÕø>v•É'Ëÿ¦¿ö §›zj4Á@¶Š¥àð:_!9ðê$vGëÕïÁ»§P)%çÖ騼RÀÁ~³=ýeqÜžò)´äxèƒ+§s¯2uj è¢}óîFy5™$WFÔâ—.]¸£üÆm`»[zÅa‹YƒJœ•ÐË*¨Ü?‘¨ÔWÊ‹nOÂ4'ZÐ'¦Å6Wƒ5‘¤Äo0­XôŸ‹{aée¢—ƒ6>ÕoÚ”ü£‘ÇÙ…௉Üáà 76àr¹œ%IiÞiêsG’æù©}ZPš.`ÙÊ‘Xáýhˆ„v¶÷‰#Ý“¤Ñkúǃ€àŸâzo…õÅÜ_¬Ôì\Rˆá9n{ÈêUš›}IkÁP8¼D±Å/1µl™$|òæúrál÷À=ùÓ)»‚qbŽ• Wÿ|]kUäb d)é®Aã³×¹”JøÖ û3Ÿ®üL»(±‡-4Ž µ˜*ó‚{]ñÂI¨ÿ±ÝÂñFÒPT›í ÞkÊŸíXá¡·ø*D_L0„âO­Xc‚2„½‰ ž¾¯[òïp™\¿C<Óíeì°˜gÛœ¶PÛÇ`¿Äñ»»6úp·7½¹^¹aG±èoz;a—W«áªzs/ÍÐÍԃѩ?~fF üTŒx´ îRt)HuÕL(¸ÏdB2Wk™ØHƥ뽘.@3–ÛŒEÀaRãêU ‡Èá&g-p2‡—DC€7Dj¥—ðÜLU+!vñŒ ª“¿´àÑáÁü1í-xà 9é´=ÜKI)![ÐÉXÝV‹,kUªú‹q †6}ß„úUyͼì!Èá®4Õ1Iá´pcxSðåA”ì\¯·Mè£;.Xmk †/%kéZª‘\ºÚ#–u^Í€™XY7^¨$æ_^ÖàѸzåÜ–˜8ú‹´ÚñE¹¨°@¤€y>ÇD¼±¿pb&§Jš,˜ekà rƒ`lïÚ…±{ùŠ) ÎŽëU£u ÀEC‡ý´ß /€àÊ9AÉäȦ!X6Ÿüb„Á-œœrr#½gÖ(:ÝaÓo>í˜1ü/#ê­cY" Í%¦‡A;¬®)Útb5ÿ¦iª´ý·ÐU$)!%ô¢Jÿ ¬) õÀtÄ‘x´.oŸïf[  ?ŒO™H%31Ìß&E¡bm£¯¿Wki ®ù ö ÐÆ Óô™F[Ã& í”V¾å÷$Ú†—Ü·Z_‡¸ù³BgªºêÚ+>ŽË³¯»Sš‡d® ™ÂÒSlDºŒiziñ¯NF<ˆ»Ò*T›Šq8¹ûî›\[D§Á&<ªóR‹a}ì<­€Ë3æ3é>où±.•¬Ùi…¢šhÀ>q/üLânÑK(AØŒ“ qÂH3p´i½œ@±¸KT];ŸQûšL B±A`+Çh•€Çˬ=Þ’“ ±~ÍôÓ?§0ÀcØÎÅQñá߀ UO¬Š%;R½Ækt*¬méூtmØË1»ìô(~Ú}ª)•VÃ|×\éP1“¯î® ØYƒfŒ^Oêˆ4¢¸i}”=\4Ú–éø`¥g*K€õ‡l-­*f^¡P~–)'bzsÑ‚´ò¼Õ\n¤¼"XR0wL­•è‡é¿qA:Þæ0Þc÷9¬Z&²­¯lBôøM*ÊzåöU ò¦ z6Þ èÖPÌU;°Y{'&Œü6VIlÁ¯±y.;âÇ«ýï½À®‚(|¿±Äó_—AÉ«8ŠtVœ¨˜ö3+ÅŒYJ ¬iÂX Ýu3 úåOåwüŽþÒ^zÔ\ÁrºHÆ£¤OV}l¦\@tcÑ~̨º 0HèƒõïÓwÀ]^d–nǶÍÎp<¯C×,ÍEàlfåÍOvÍÍ× ë "¶*”•&+®Cw£mýïµî¥-Jßœ3eùÍÈ0vèׯÒ1òÌâÈéƒ7Û9ÀÒ:›*öTr{Ã2¯«Û¡%¿\Ï#ÏŠEvbÑ…üÆ0þöˆ€ƒÛƒIÎ÷–^~ldãº}m²…gé—ž@º õ4·ê¨çÐ ú§ÝœÏóæ½ÒmÌšeNƒèPÍNmê%&±N~ðr°×›TÀp(c>LQ¯ Ò¡- âZ º:ÂÎŽTÿÂÈÄ”àñþkéÉäÞµ-̧äÕ8Þ š$´i¸ýD›z`OGyç“?`vI‚lQ4»q"ñSÍ‰ÛæÊ“<ýýNO4'o&%2{zð¢Âê~Ò¡ÄM>ê t^ioЙ-D$AìûcàöR¾: ±¥¡IØÒA¢qZ-ô_ öD wî_ä é}})­B®*(e‚üÌï{La„› :iRB‹Û ŽæÂøJƹDs[‚÷¬%Ó:¶¼lsÕßû!þêï`DæJþÎfDŒï'X›¬›ß}™ÄUR¡Þƪ”  |ž#2–3iÆ»âß}¶hu D‰ …È>ˆi«éÈÛ#øÇ_$Ð$×gOÂ}a9?9Yáa#"õurTIÀ ìÕFñOÕÛJÇà”î½½€—}ð_ƒúRQ!%ŠÕû‚jF¶È,æÓÚóíB9“Žnyeg6ÿ ~ÅæûqÔáÓàúo ¿=ž1 ê°¤b$pîŒsÛ¨êíÙ»«åÀM;ú`½$t³GõWl&6ר²ìUDß Mf ¤h żۼ#uü̪1`s}E Š.kûU3žk×jÏ,ÿÒV½·ç½,¯C«c# Ø­(|©kxF)ÕÌ)DÞÓ¼U7›°àùö6aõ Ù=έUó8##4ÛØRÔ»:BòBý²Ç•µ4*vé™’ò†¦N|k³//*ÑPŽ0JFtŠ£Å@s¦»(W‚ÙîˆÍhÉ`hùR2šF7ñw ‘¦:QÿX,üœ¸™¯Äú~ ìKuiÚUœàºã&‚þ¸p9ïÈ)°žŸùÒ²W .V¢ØM%j|nv®Jgüùò«ùK ½µ\l,Ñ©Óëa¥e¬'” Ñ!wÞõ.t‡aí8ÌÕ²˜y’^aDÀïX®®i–¥ž™üÌž(q|¸$Æý,^Þ`ÞÕx‘z-{ß°!ÏGà†`Û°_ËÏþ¨œù˜ó:µPq‚ü|·ŠkiGm\C÷}’‘Pœ¤)<–4í\§)•¨XCi‡u²°¼#z#R®OlÅF@ßµÍNñ÷Wtj‚榄¨u9Óçã¹æ”|Mñ\ 4†\­%ÞæÂ’iÄÇá. Id*ÐöR ,5 Jã«ÖìÐS±”Ž„©ñ[‰O3•ˆž"4ò‚xGàö‘^EUÿÁ¥Ù‹bÞpãa"Çɴ䃑càAµþÁ”¨^,®52a+x Žœž¨¹Q¼ìVNàɵ|\›ÙžPà¢ØoM—Rélh` L– &.ÔÊ7‘ŒPÔGª’¯¢ ¡ø{tJ'Ly«ª4:}†ûÃáWE¿Ç9ÅÉ@\‡Ù»[L_ÌWò@ÙFe é‘ëqM¿Ü @/ªiÀø¾éäéânEÒzqŽW´B”ˆQ>šA<þåØRP)>ЇŸ_ÎH¬óõÞòéúK}ü5f;“ÕU&C«®²3l‰ãQ­uÕýŠ\î’üéÝÜ7M„˰¿DK_E’€½L¼äç×`›(¦zÛoyeo7.µ3V²Ô/ê 1åÕ8|xcD+A ¶:)x»eSÝýmÓÁØÓ3n§S0ië±H‘æ”2D‹ª7I‡—6ldMÏ·Ž÷€þþ¨ŽêÕ©hö¬“>ɈUU裨çþñHîM#2†0¥ŒÙ)Ô ®”pM à ŽçÙ³}xÀÁ¦c¸KÎìË“úì?®ñPn£y(ë±Íðì¿âÏŸã^a“ü5)äJð¬@ð«¥¶dyäìßL± å$¾#ìÙôÐÔ¬ÛÔsÄ ’nΈ;" #b øð™º:êO˜CP'ÙÊ+õ`@‘×ë¸H×9qŸ¿o‰N<}B“ì»3í*L'§Ü¤¾£y,&L‚ŽjŸ¸0Dœr0®H‘Ùü‡â Þí±¼Ló”#ºS*¨{ïÀ¶7.LU}/Öäë Þ’¦ÀÖ·t`/ÞÔH攎Â%Ê 5–­ÕþuKìíî½»ÄVý½Ð,Õ$:¹t¤ "òŽ#Xr=—´ Æ„„—ɰëèAõF“w ˆ^íûç­Ìã ØŠzÒ¿•ió Cz Ô Ü¸Hx3ú• õ:xYGnü­V¡y Rü 1èÑXÞ9õÜú®p¤‡AÉþ ö08¹ÐµüA WüÍܰ…+PõK:¶IÇLb¿E² Ð_júÔ#’ÿžåc\¾àÖ,ë5‡÷ érî×<{»s,üçÓ•üYÎÓþÒ$1(zÊïÈ_°rå ó˜Úö¥Uè7b˜¡´œà¾-‘ç t)_Ò"wÙ~©¬QTXÃv«iEà個f”¹NÆÀªÙao\î ÷Žà\™û[ó{}£‚“…Ðiòy÷Üš’5°4®„Ò¢_™ofmÛp¥»Ãƒy%ëI”l´Lr“ߦLyŒ7‰&Óæ•&CtåäÊóX¡ ¹P@×Ñ!u#Ú5;Y@r\y ŒhƉïÔ1†"’æ_|÷…G©‡ÒÂ[jßpâý[¢‹„$³¤(iüÌáß>?Oæ{ª…öÉCÖ4Ï ¨Èk ’þ?Ú‰¬ÞbQo ?âTݯ72àÆùÕH®ÞÙ»a—(•98ÇIHcÖÈú2eó>òݲ‡áUÃ6Ù¤ž\H¥ð²KÔή×dSŒ@5b)LÉŽÐÅç_~&±s†ÑzTë0 39_€ ½1®½1®€3ú3þÅ~BüÀ„—N0L¨†˜UâOUd?Ï1ówÃtˆøüî¦Àáž²_{}£ç¯Í.🡀»Ä¡ "Röâu $T7kГ!Ÿ m§3‚ñÈcþ§ÖËQ‘óÄ¡ëåRFBHÿqüÍß04!+Ž$kèÄZ#êÌ,îž ^'!!aQ@™;0Û‘ör‹­í·TËj–HýIwªt×%×bz=éV˜²Ì¯»fn6¼\¸Îh½YAÔ¿¶{wгQkg˜7ËÛÿ;ôXZy·HsÛzYwoó¤®É¸£§hð@ÒÃŽÜø oýðñü9d5í½#g÷òbÏò)æŽW"_YZÀ t4ÞãM¬üM§ž²-ó™<@O‹€/„.e:nyhŠÚ&žûkÖ3bVÃkø„Wó^à?[ÄqÁ)b~ªËw)ÝRk‰âÇx$µ¿Ð{4ŒÜ0±#¢EüMYלÒ±^¶µ%FŽý%~$a.6eöAæøÐìh¶Slø¦]Pbß÷oP=/ßö`ô6;ù`Dðʦ•Õ_.©z‰‡ä|Ô¸€bñ•ÓZèÍôáÊEh ÇîÇ >‚¸WÔ³¤C;àšèv^}ŸÓ´mR…"åB#±,q¤kQ„Q–6é¦,! ó{ñ3Ô`–n†hšÛöìa12´= Öqj3(¹pò(úšìô«^°[xWó3˜M™*¥sT²9¨sXއ`³¯MçíQÿØ…´? U)’œQwÌY®;ôu(e¹ nclR´‹Þ1ªü/]^ùä¤UÇC#¼®r§/™¶éÏvô}ÞÚøŽžÈfáZÅÈ< ¼¤¨Øqœ›i­ìý ,½eaÐ S=ˆÝÍ”3êÚGÔW»ëUýø¥OôŸ U~Yñ]Ç ót–­SZë%™„RPž[ùå» ¯ÿGø;öHè…Œ"{N)Ýûñµ0«õ‚©@¸“÷ ¿DŒ´tQ£OÁqîƒTk"¦¬&­SY=ß.ÔÞFµ¨mžR_×|¡Á”­-’6wÈ&€É²û×5‘ªã)u-_¹qätºÌ”\œËGµ[çeE¿Èøó·¥˜P!Šnü5JR?ÆôöpÂW#Q#PyLJ~OêqÁ&MI3f¯·NZXÃÕø{¢~^üâšé:7b–F“bV¾ k{çtƃÕ28HM¸åêQuYõZ5hž, Žë=_Áƺ]æÖûÄò ŒrɲˆSÝÀ¡•t®%mà€^ÏS)ô"Ožïâé†<Ãøò–&|5|ýÜÕ箋Ê=Au¿›ì!ÕGÈ• “Òb%¸qôÉíC'ÁÂQPœí§gzVTÄ:+gr гFWíKà3_qjÓe¶9ËÈîIsk~©ßWƉŠ2‘Ÿ$Â[B}Ì —î]OüM($õ+étÖ•èåã×{!7ÏMõóƒ­L0ÃVXüGá¤ö±õü'T¼Ìa“'Ÿ¹äú’X0ƒ=¾­®ïýu?ÊäÀÏNÎ%® ¼/m|ÛŒÞgrõ.¦&ÔÛï3!ÌhCÙ*É‘P¢>i9ÿÿÌ»\(i[9s=å›°+}nAÖuÐÚÔdòù_B¶Z4ë[‡ùJ 9îϸ=’UÝH<™…Iö´?ê…ùŒSºõõ©ÉÖàŒ¥0üžUýðÂRb¿Gã4s°W$4e—]&ŽÃøOa9duü¥°ðË1ÄÁF'¡tõ*-e„—D³zï y‹d~Å¡†6ß÷Å)´¥ Iiüníü°^\¹Ø&7ÜPW#mX°ÍŸ&wbƯ*„†Ã0"æÊ)voXŒO܉ß('‡ìS1»+½¿½vÛgÝÝ$÷±^eå¯Ä`gJ¡ dÉr<à+ÎvEaÝQÙe¾7•—.2c?sÿ86öÝÙ°j¤4í “6\×f°åsW‚«F£›:E1°ê½0t¶®‹§”=Ëq>šX!<øú4?ºÎŠeϾë·\w••§·Y{]&H·KüKNKr£?錠½F¼–LUx¶Vé-o\ðMæruŠ]ÅÀ Ã@“!y¹ÊC êˆîýiÛš4U"1H¦JH­Çѧ–­çí*§L“WaÁÕÿãþÀ„Þ“¯Ñô –Ý 7Õ„¾ÓÕK•©VÀ+×Ç(jˆüJ:YEã{2ÃÉ¿vÿC¡+È*7óHxžìarApŽš.EâbQ‘û9iÖê, ùPØêC«²õõ)Sj"{ ~tX•¥òšu™óùRãÙ£˜½t±hîÙì{ÝÁNÀ¯°‘Š•×(à&˜áÖ{ñwËV±Í¥}ô'¥ ¾j4¥¹ü¼§ ¸6õ™°ŠÔ…E¨|ˆ çI;®# ÞV<>äƒÓD:[Y÷&A/uË^TžPŽ–¢¹Þpµ‹¢Ó.HГýºÜöêJ-… µÄB‘ÿvñl'RÎ )Sjzæ‡$¿>¢‘î…e³ÕO²]^êF+3a‡ ,ö¼yÙðv«Ù> oµWþ6׉ZÒ“Ø«B°×íŠZ…QmH¢ôö²,•ìºW%ø´h»7YÓýü¯´Ç'~@——, /gIg,@x…[tü®>håýpN(+ÇÏžHPÞ­ŠAÞÐÍ]°E^©P<ÇPÚ¥8Ño"ÌBGäF»…¯ÍN™Ðà¾Æû?=Ú·¢S&¾ :Å‘×w9×ÝU*½™?ÊÍŽesíbÜæ3”Ð蓸¨~Í:áÆ/ÿDä¨åÓÏR®é£SÖŽ…®NMöóF‡µ’”A/`•†¡có-e€.¢p‹júÂQZó•øqñ@;Îk®ÜþÎŽ©ÝÊ¿†€µëœú+dýœ¯Qä‘"ñëÚËÓE4¡+Ne½°›ó#…žÙ l]ð£ÏSêo¹%‚VV±Í7¬†i Ÿ³ý€l„l'1}£“½—ÌbК  rÿt¡ÝB- gåÈAxáò4Åš\Ž ³ ‘  ¦ˆ¯ü˜ó!½|­üÊ‹6 S¬i6?ÇŠºØd¦òQ˜Iæ9¨>±I½î…`dÖŒ¨{±?(dm—$µšHÜÔ÷BhnѹÔz`w¢j*à>=%˜C®"éS¾¾²iA6nà›ZÔ†X•Ã'¹#F×C@‡ÍÅ&w2­Ñ³|ØÀ,¢J¨G©†ç¥XÏD%@óf¾õúxÉÞ¾ü‘ùi{•8üîÄ€+ÅÉ Ys#îÞ$ŠÕÂTu«~'hR€ÁQ³àÙü.€ÈÂÛŸïO"™ÉmÁüM)ù;ðì" )‰Ã–8(îs‰ Ïû²žÃOÎZêuo¼ç“ûرÏïS¯CeŒxEÚëÑ}l€²mÂÞ'ÇtóEqpÅ„Â,n¾Ŧ‡•¦#2óç¦Qñ›WÇ!°®@ŒJ¼?Å»чF±hš_agý1BÉ¡gtúáEhÜU00ë6ÞÁ ¬þ=úq‘g?M­dÄK%Š)/å6Û-Á…-·ƒÚŠÅõáƒ8ϤiRp.CiÈp“Êeµ©—ø-E¦šçמöÔ´×Dîá¹þšjàh²fµÌ5ÏÆ;?­¤ú÷¨ÿÞ[Tv†í¼ü6‘$ º ê'U0 ½¥3ÔŽĮ́µ»Î³>âYÜ:ÿ Þjºµ\áù—«€Ì~àƒœ®Õ¾aËÄçÎT¼ ©CÃÿå…­Á 呤ÚuCIÌ"&™ÚWnÝ€n:Œ²ï³60žÙ/ãfKÓ<ïµî釉o*Ük”ïM0Àj ô(¥‘&IWf£UuÑ¡€{Õ×õ1†?ã¤È]À_ån ТïG·iÚ!Ü+®8µë2{P'ÔŽ’ã2`ý¾;p©ZàÎ#ÏY—š ­êªK™ŒçEçêüLµ±Û_ؼ*î2 ÿ;ha\%lvd—Ãã ¾í±}ËÖÄÒ5ÏÆãþòf Ã…š—(ż|gÝ„–¿ÐÒˆ€v5þ` dšDTį;\õW³3g¹,í&… `õ yjÿœ’,Ì­Îòļ¨RØ]ßeãa£®,=ÎnÊÌà¦ä¥;gS·KñSZÆQclp¿žq½`Y½º¼ÿª¿ÂXoþî@=iH¬š²ÖÝ7Ë<;m ›éY[ÌI6ÔßÊ6}ºµ£‹hiþYK‘p—{uôZ£Ñ¸Æ/ðQ¿°üÌ•A0gÔQöXï¡H3–¹&WÛ= õ—óR’=Ÿh¨diŽ›!¸0Ì?˜`Yb{¨Å?Û]¶é œ¿K–õ||Þˆ÷u‰vÁ;«;ú°Ù§±¤Ó¹`’l;™Ä$—Õa3ÃjN[P9¯J iGßÝȵa‚%”Û‡k’±, ib8«a“CPLâÔC,(åpø–݋ĻNÒ/˜ª…Ž~}ˆ1¥þ€? ”Å”Oaì‡'ÊFwÜ.õÂ_siÔdé¤ñOAoøÏ²žj©}F;9‘-üÓ5mg#KCÆÑù·hŽFI¢C±8æ·%ƒáª_¨ úIYó5Ì„Pç½þ ˜´÷WÁ7Eâd÷o'Œ¾Y7œêØ ú:¤›óì©ôm'ì9Š`îúöØ6 Ù„/Ó±lBBÊ9ïOÉ{ˆ)üp«±Gyψ¯Vÿä®­_":—!7§!œ-Hlƒ¨Çrq|‹À ·êñÖlg Ò;ׂIãtu6жZŸÉ8ös¥ßœ3²åÁEüÒšÜzàÆM@?Sçç%쪑 ÷™Œ<Î6Txä>´²Å‡KË%u)±ÍÎ`†Ê»—E´¿ž»+„õHV$jí‡Ï åœERœœ“w˜Ü |Ëí!®Âí Ûí‘o:¨¦Œn@¬@Ó¿;ÝÈkx$ígxâ kä¡èÈß¹õKKŒ|ý€ –l?Ù©vØfŒ¸2”&ç¹ýÈ>n2¢>¤¾ qLž}É^sOéMöNëQªàƹúì$·3»²lMLy沪A/ñ¥÷XÑüÒ6q1íƒ)½ i ¥p'äaŽ»)!Iž1²„Å3P;Ô Ëä𯶹)ø2òDôOàsáY`ðbh¨ÓHê N\Ú{yC(N>XÂIÀå$ˆA_—,Dõ<ÝP–ŠEÆpÞøÑº¡Àq»MºKؾ’™;hº=ñŸúØíÓÇ~ÞUÖ0ŀȀ‡>ï<¼…“ ¿¼ÅÌ›¡M‰žý;2HÇ\XÆHj§žHH´Ñy¸b™ñª 8¢PŒ"<õ8ó³ôµÌ”>Íàgå––¢«fÄÙ¥·4Æ~ü¼—˜Nž(ýhê}Îá…u¡RFÁmÅ€8uõÐ’ÞJ°ýûZyJ°(ÎÄ#·!ztPU ¹¯v´§”@¾Ë·N"G`<$n¤àa5þŸƒ_lÃÛ›âgR®æû?„Ín„”D iÍÌ‘/AÒmˆ–ÃÌB>2:³^üÕ¦H6x£‘SüVóð¥–ù€UsE<1€]ÙñÉÛ¥x뻸¯Ä"êÓ:T/«;þŒ²Ôj.ÍŒ¦µÊ7¸a–ü¦¡¡ìËÍÕš5öŸö®‘e5ÇØIÝ <—ã7{ÿ5Ñ*_¹cбùçëÇÚô3KJnƒ:šÙÇ ³Ãš?O¢@œW&\¢ço’¸m(ò–s^–jŤÒM÷2 GT*E –¾à/ÿàP†)òý±å2M°ÒFÅúRý- Ní_Òßn5í©2&«Ö¹6?ƒëV¨íïoùaa[™M[`˜•ØýŒ²³¶ÝöGÊ P,²eönŸ1up?JñJ‡.§Õ’w÷¡ÂHkÖûF1äQc+,G4÷-þw?ü.LÇra±bMQW–;…xºZ¬8 &žÀÞJo`Æô²=Þ•Á¾&áÛJÙ¢qð€êT‚-g/®ãÔí)›YvSÊM9£E9w5Fžç9,UðÒ"9‡âKt÷X{´sìþ#F¿åsÍ&þ©ÿ`ÀÅ»F¶FàÝ×¼èy }7ï!`yrªïFMª¤#Î[Aî#`£#÷sO<œKÒïѸkrX\‚ Ö´"åIaÝèí‰O1PyLé½r[¥4ê9*4,.XÞÔ4`·±8Á9³a¦¤†,¿€ÛaÞ 9M~¼yl‰7í¦=o#H“jZJ74QZ€—mŸx8ŒcüÒ>¤ Ë GUéoê)[¹§ßè0$ìÆ1𪹠ì‚~,çÑúYS`sd!m¥#„*Ày }à gh×ÁYƒD32ˆ÷P¬Ü ’)ÇœXQ¿@¢º‘•P f‰Õ-íz–YŠq#DNHzÁ:¥LÔs¹¡½ðNTP?> ˜,;•¡Å¡éK‰l^ó£Twõ¢‰‹Ù’ÀÓOÊžƒF‹^¬FˆðÊ­•›AüŸfÍå/Å­zšèV)­y/Å­Ú2s5Ñ/`ÂyzE;Zø8' *(&DKr òæÉsëÁt™)>$ }™îVj¿¿üÓ6–dÌ '»{Å0Úø{·°NÕa!ŠWo^Œ¸¯ÎD”ÝmU(LÕÆ™NâÏç}ø`˵g¡x° EEê¨K"ž[HqE8-/º‚©Äh¢9¸ÏÌ¡£¼@#È4ç%íB†r–©Ba? |k•@«• (Z×­zš2nÀ°$·{À–XçÉ™¬sðŒx»©¢GĬ,Û„ÎèXе½’J¯#ˆÜùeþê/;­d׬޻ÃÜŒXÎ;x{>ÕÕõä•'KÃD@M- ´¬:­KϘzäýËf´÷Òn ޱ=] û@xÁ9Þ€ôABËwüÈsÊz$\sîÖÞžÁWŒó‰fQ-ð [_9¶tjE™¥RpÈ®Â7#"bk}Q¸ÝU¾¾½‰•wVliÇyÜU Èç a`ˆô2DA'¸^i#ì ªP«äg^lVtÖ¥ØékË<€ª{7¹8¡dèŠx±²|×®xÇ Gý>à}üÓшbS™c25ç3]“ñØIÊØü O…Ä ‹«£FVyÚ/¼f&rÒÞf{Kè­ 3¥¿&¨Ñôù «ÌD:#‹bÓh[­Å ò|ª°öxø¤õT ÿЀ¬kÝœjÄ=Ûø N?×Áõ}vy —1g-ÂÅ@ î»ä[è^ßáÂY™¦é„0yÚtá×Úð» âxYLLHìÓ 5V;ø6áz‡3$.Øí•'‚ÙL Ô¤·ø«(bÓ³öiSˆGÑV­|X€*ï“u¬HàÐŒ(÷6jšQø‘»­0ö¸÷-Äó_÷˜n_üˬ{cá¬õ‚o5£µ7lü5_OCqø¾ÀN¨*éTíî…áë¼€=E¦ÞưJA¹ñâ qÊ3ÀHÚ­ ¤¥CøÌ\aê \t˜îgäB;€ÈOúÈݯ2Ë8Dãvÿt]éJ¾'N]ÖÆŸÂ÷}äæ8¹ï#¿-ƒ[G-F¿{ÿÛæ>Vå „ô•…·?ÆlµZ‘¥9üyãê²¼`Õ½d/äãYùAÙ,4ì`« ûìs¤¯­çíÍÛ-‚¡30ÔíA!̓h:VèPë¢z¿_ýãÒ>Å=rdËPÞé¦)¢`­ŠqOëócáKÒÏOggS‚¨äíjŒÚ8îùîðëáàßßäàÜÚàÿ'ÛßÚÙÛåÜíÜ×àÿËøÿøÿÿuÿóÝÚÞÛÔçÞ×éÞÛäÛçóîüLÀñ0 ~…T Ø M;ÛýãÂL”L™ÄX߀(L§ö @¶EÊÛÕš8Dê6 Þ€®N¼òà#£·6?^¼w…í»  ¿¾@›nþàÖEƒ”·º,¨ù€fð59E¼ƒ­:Ú‡Ô¯1ÚVÑ)§±&Bñ­å@ÆõÞ žß2‹«Ÿgò3Â1nœÊÂÆÝiY +-ÉàjBEÔü2QŸXJ¨õÊï«–Zi—B÷ì‚;tŒ±%{•¶>{†u‚D…CØ™¤Žzè2Z¡š¨7|Õâëø\ ¾¿Úå ­IÞ¸ íí¹¹l1ˆ~†ÕJn].ÙQnêâ{;BüêHHI;/U(¢·µåê1ÖIm-4' '¥ÚBI|*Xä·ì¡‚r¬Yñ)ÿ/WˆN(­E}¡°´ªÙŠayAy„ذ¹ô×r™–Xõ`"x쌥㺙Ša/?µ ÌWòp (M·½c2±eF ¡¸A6¨‰æÁKwO½›Ë‘& ýu’³¸uüLÀñ6S£°»ÌÏ]rLaªUîÛÔÛB8²b§÷)¡n+îë4^+üÕ¸;I§kBûÿŸdolÛh£ºJw° q´° ¼à’…ŒxŽ˜/3øqÇ]’*1\1úcà‡]5êHü’8’柗¦´7-÷M¯‘]ÚyÃD±*íµ‡dnʧ/…–ô<ÊÀe%Oèy?‡|·f"ÝqÄliÈ6½'ßY{Á‰Z«e(ôGp!ºWùîùöÂs ã‚S€ yž>h\)¬L8ÈPÂ9õYID‘O õ欌‹‹H†:–ËüM(=£vK$]œYÑ@ìò¶ù3•†£VøPKuþFÝþÈ¢Vù½6ë8Çë %¤¹pÌ`m£¾^Bü&Š<€ˆÐW œõk²ÝE×ìéð?gùi–y½JŽ2ÏúuÞa-O@5]Õñ÷ ô×`_/ŠÁmY£cÈ«·÷²¡øšÃeéEÍýÆê›×?† „ `¸˜M¯Ÿ]ž\ˆÎd¶:ááÖ8bcy›É}ÑÈÞr…¶÷}±sû]î“LjâÍÒž¹1E#í ²òß^&DMyÑA·´îøIԞФæíbé]u¸Ðxî.­G‚üMb¤#)Õ„¯-lÍÐrj‹¹/݇* =Æ‘UBƒ sp“¦6ôa•[G'Ö|ÌØ)\ø¨ôÇ7H¢³fÛ¦Z zE £@ãd#¢à'úþDCAé¿ªþßF"&- ÄùÒ£™¤u,rw줻œJ¥‹ÝÝ<•±fÂúÚSml¹QÞäòìPqB&ѧV‚4 TŠ„%\Áâ¦šÊ ç0Û˜á”ØëÔÑJ‚õÕfÅÛ­uê ©ŠpØm2U`ÊS&5“èa–F •bÑ.üLµejµ‰hA:”îÞòëg sJjmÜ"`KÝ9×,ú¸sœÿwÈöÄàŸÄ„sáÜí—Ã%@\ >0$†ªÐJ..¶Š%¬Êé§¹”6,õ°‚öü&ƒúˆˆÏ×p…Ä€é,wÄãèâ¼9ÏU”UBR €ÉÈüÿ¥ÔH6Ô8*2½<Ïž¬€œæÔ ZWÆÑ¨Ð׆I Ûºˆ õKWÖ$’‚à„Ù»F]Yဧ={¯‚CvyÅwžÆK£n.ÅÚfŽ8·/5ÛÙmöL?ýÏ«ï^û~W Ìn ÞWpƒæs*nSŒß"«¶Œö$´JÞ6¢Éu01qåFO×YwIPØrl’ÐÕתMÒÆ,ß&è…c¡|J+Ž£wA€Åh­;7êì'=R©ÏüM/{±¦@°³Üán}O¸©}ÂÈMMÏãuš§RîÕz®@ ¡k™jët’•õò,˜¨1JÝ? ÂÁ,ŒÚ‘A#ñ¦ K¹%*.Ä`÷kBÊkÞeÛ*b˜Ö¤,zCÑfhhÙ‹ðø4Vp'Ý‚A#¶y}< zfe‚°™ä .Y+r…¨\¹õD—‡¬ wÕ«O 'RÅþw-Š‚>“cc(‡3á5’OÞ´'ÑZ™^«Q30”|›d&•o¿“„€tæZÖ(ê5—ZI{GÚ»ýLCA÷\¬AdTü07Þìhsü»Øyw2hElgJq†¹A6¡vÐÒÜèg2'W ‚3ôRä´à9s·DZë­<ˆ Ü“D/ìxvóÕì0 ’¼ž#›Øúeã·Î¼[Î>rÛ"ØÒ²Ç“jå)32[Í/1& ¤S,É£ŒÃST!¶×hïíæQjÌ\2Å‹d¯nõöR´£Êÿdû#Ò›#´ÂìW8Š M:u¦r.‘nžý¦2L’-ĶýI€„=F!×üy´Ý€ŠL›{Iè!‚òxÜ¥KAÐ;Z¾ü/ÖÊß^d%8'ç ‘O)Ùåø÷ݤúo 5s5 1UZºž·êƒJü¨ ëp] ûdÂÚÓ˜"° =îŸg¿AYP±DpíôN8(›íÂfFˆÙ~uÓR³=œQÆdÈñ´P-áÙ¬Î)*ž©YÝ}wÎnýð >JŸL*WõgÉ§Šš5ŠNE$|Ð÷óÒ<µùo„±¦Ñ3¿.D&Î$ÊÂð{—nŽcC+„·÷ä4V‰uŽÉÑ¢Ù¢”^ c!Võ¸è’í † "ù%ío‹¤^ü6÷ߥÆ'¿U ?Ý/2¶tÞK‘sï.Ú#ž³63•aÅÍ.“»nö¦Ðoö·E²K7W½¶$·ÄÏÆô Ŭaaî ô§ws(‹œjiê©•pãª2Ë%Ü·žžfŸÛkØ6/Ï‘ð47Àt<±÷<.ùhÜŒmçEf);¶Í AÞöC5Nñ·j¨©Ü]œ{&EZcûø—4o2îr~ÃãU6º-'.ú“¬›’xOœñæSËŒ¹»µFCLºFoXk‹„Ý÷•Ïø.dùÏœ+¨žK üM‡xûv¢@å‘^k9àÊ vÎ’A¹nÕò]Ðy‘üXÆB·Z*ö¶˜à7Ò¦§ûˆ_ø5 ô%i MºË?8=5Œ jbçŽ}¥èÿEÁ´_ã¡ËlGÔ×]†jHZ-ÑàÁ±¦+óŽÒÙ¿ÊGQ÷ö™œe:ÏãÄ•ّ{òç“xÃd3Ó(¹Õ:E0´‰ê]T1ÖË—%{û„J ¡‚)މX~n0{}Æz¶¦%úùí®ü©h—vªsŽzü.L¯ Ò“ } Õê–}N Æa³¾×xß9€ÒÐV¿}S`¼°8U‚Ña^¿îÛéUĬ6L5,}‹)bŒ·´M8ü.@eîyb-†‚Ž7lâ²ÿ3£{ÕŠ¦ŸñÆß'Ü7v¨¤úÙãWðí ƒ=T›;:/ŒqÒ3KwGUÏ:¹™jÝèʥŋÜõgÏí GY¨8¹µ +¶r rOíxmò´Ý®p#Eö Ù-ç6qNÄŽÔÉçœS©ÆçÛÛÓ¦XKâhn»aGBé@tQú}æüLª;ø5®¶ƒ^%jL!58Xñ6—ÆG·• ‚!äɧíÅa¸ ¾_Wv+&£‚lŽôºYWÿuÇ{u¾W>Ýþ›÷ZŸÄƒÿª]ûˆim({‘™Ø©²J #ÐÜ÷Ë8vÄŽØŒ‘ë*À†B¤o+©wtÃ䈄f7ÀúúŽ{ôÊ—BEnEGáop[/Æ|Íâ+u¼.³/ÂÜ£ìäI„ xÕV“*£x^ÀÖâ9¾ühÔV‘7ÅÃö>áH³+mxÕ²ÅÇW‰øxQzÉÿKp¾ZnP2 Dü1¤Ì.Ûa÷G(m|“®YìÃÛ‘÷7ýSw@¼ç´éc4" šbº$zÈ0ŠÞ… .üYù½r?ô¥ º"¹¼vµQù”¦DE’Ÿ»É¬•þÂo¨§æŠq5š×ê¿ö‡‰ºhûôݯC‚ FÈû‚%µç^LP¤eÂØ SÓzŠQ¶eÖQTðÑ<ôak&1éÔßqãã''Þo'ü[–œ¹ãH¤‘U ³¼R—Qò½¦xÏÉ"†Ým?ÖFòCl6QpÔ ¢aíŒËnŒ)øš]ÊüL±S{Êzè“ØÁÖÙoÈ7¿ÂsBoó öä Õ4^T-S£¡I½õ-oŸž ªÈ’í5Fb†<•êüxmáØë„ÎxC=IÇZ0·q²>kÞ5‹x&Â|ô3‹mQ•—_cÒWD=íuc öö>[©5ݒϧ¶¶ j“!Ð8€OíÚž×ÜÜT–Ê÷ãÝ^yƒn*”¬1ûõ‹® réÃsñ ZïtêTýNXØ€<ÊcˆLÖWÜÚÑLél©4 cÒåàüLºq®Uméÿ÷å½T³ŽÑ˜*¥«mé8oá%kHEvèu¤ÑÖŽÑ(áX𜦠)<×åé9m[–˜A¥‚‰ sêEƣ߻&Òœð›NSjhn;ñ6¯÷*ݾƒº+‰þN—Aaw[—Ÿ¦þ &¿A-MV„ÕZ[¾¼V:¢pù/ÍÇ%fÇRîpQ´ž'SwË•(w 0÷êW°¥ÚÌcÞwÔAkÕ<[æ9O¿ê窡Æ>Ë‘…½´K5ûd;µ/ƒì;oˆXŒYµ…=^4˜®¿v>üIÙqDç?ŽÐNa3Û®ÃY‹0 W[x—wsƒ*v»'è¼ôƒ@Ûïœ@Ó\oY_OzO6ã‚;Ù³!f})WÌÉDŽ/7 _¾ŸÇzÓí¢q#F å)¯»¦|¸ô”—ûé‘44Ñ‹¢(ÄšŠo\]×¶óú‹D•P¨¢£]¥ Š1 îQÈœ“’­ƒ({C¼jKS?ÀAb¯Âà@§{Ä,MØ ܶŸA(hì7KŒðñ ¨´;YG÷Ò.?QÊÉ“{‡Aå#Îc š²e|GŽ‘ú.Ô[ ^Qùq:0ü½¾x!OП™-Ã/öëü³×¯F’] ¥p25²óÉs û‚RÉgœåX¿”a.DZ ™ ™9¾ÞæªNú¹£«qVô|O•0Í;i4DÆñâ/AB“$Àø£ +ÿäouLƒhñY±ÐëI[d7â70Ïe@Tb@W¢`UË;dGïØ-ÜN¸9GzôÈèʵ¿¾·€§)>šŽ6 q£áØ#Q¬Ç™ÕuÛ:ð˜µVæ@L<vi†#‘ÐŽÔRà[q LHš‹¹ÑÉ^¢—…˜nGC( º’›Ñ´¾a ÷­ª¼Ðþ:¥\͵ÿ!J7h‰Ž*@«Ã¾¹Fþ:&žš8 ÊK¢Ë—ÖÀQüM-3l9`wvº6¸ÿØA¥Aã¥ÑézˆÞ§‘RN¯+‰9{ÉÂgT´µS9AÝ–Év¿=ÞÑ/f›5£\0¥D»yÁý,¸˜|.$ÑÐwƒW‘ä弊¸Ízhø'7‘ÅG~Õù9(;¥$åé¸]Óµp#›ô’f‡ž¹˜Ìpv=H.λVÄ—'Ý VRâÊ‚Âi½uRIŽ:¿1KWæGêËzÜvŠ´'öŽÍä×-i,c¶ÁƒòE7 ÅCV"}¼ñ_@¼ Ó¯ãD›TÒ”üJWsáä×Í{Ñɱ§‘ŸvDÁ›‹ø ëˆQ ½À±F".íñŠ«}«–Û'x«ë #1 >*¨“&'„ ý„Ur# #Z“NL¬U–ÉõÝV¡dMOˆŸPì%<ÌpÑ?, 2~ðrU±Æ,¨ºšîA\eòOfxs=ú†j-[‡«¶Ø ,3ßòአx)2mȘlTI;ÓÐ×Lù64,`=¢"ш >«OéVíÆaºPÿáô• ðUg^êó}âA$&ˆ|¤ã$cå0êYº‡ê%Y Ú‚áüÆÙ[eư}©Æ*Kw[‰ynN •ªg…èÆ¨ºè¦q 9XIÇ`¨¸a­Š°Ò¿ª¢«¯úu0Å~u}…æûp…;‡¸Ží˜D˜¨C†o(tã*µj3xò0Ø®ý"&Q¶ôÑîpDO¥Œ¸j¤&æfy.¤M¾M°¯%Köˆ’C/hÆO qº0ã1º¨ÑHš˜ÆGÙòYIÜîmHÈ•¶¡-Â¥Ç;µFö‡d²&,À­¯eÂS9湓_¨ý˜ˆ×ºm.±@"Z°(4f“xÆ™nR®X>ÔçiäúS±x7¬—Ò[ã»ÇO简ù1`¹è©î+¼'4D2U®êŒÎ¿ÕþóK†í!Ææï|=5š. Ûسﯛ–Vð Kä näyQÃì’ŸÍ$•’g VyøÍóâ6Ã#jB@‰Ô. ï…í€ýSÞ!á‰ÎCgz<ø¢wY îE2óM²ÓO×»™ʯ:tq#¯Û5£b‹;Õ8f† âoé·Ü³€ @AJ³mÜÐhlÓ”ؽ TO~¹ÖÌ€÷¦É!‹&‰°-ÊÛ§¹ý½#ö:ö9¶ï‰²åüLÖ¦°ªzG]®éˆôxNÇðî|d0¥òåZj–)‡]Mv¯®Ê†j„’É£ÿm^ZvÉSú¹(SÞ†øä3ëAm—ÀœÄÚfbâ}x•˜ z¨Wo$~Ýšï—&ëP[q¥ã3gâÿÏ·=û¨ð}.Ý ¾IlÕ¹C|¯ºƒ'p <݈ñ5Lý=%½w­3šé­ŒWPKg+¦·¶Ruj¥¬ºÆ`ŒŽ—)V¤©bøŒô[tÈ ¨­Óå‰F5€‹çþªÙËÛ¬Ï5pÚ$íCcô4ÏáÍŽn¤¦šƒu—®É§‘<¬±“ÑÑ2ü.½,'wV•ÓŽy𠮈Çwb +ŽºIàŒ@C®¬‰†²‘ã98ƒEï]mÔÀ֡脽³7UÌžÂ\ÿ~ëÃHY/ÔÖ³µ{¹A…^ºÐÄl"*µË©“2Œ¥p€]™^×trßnò¬ëª´QŠFV®·èÍÁźíÉÝ •|æAîŸóÚtëêZ%(™ƒöUÛ<@Ý dç옓‘t´µ ÿ×É:s°%‹²<X2Xkt¶#`ãÊ£œFPôaÇ„ )ºîñÂ-ƘÝzk4Õë:Óª_iwË*Y2¯JpóŽ_Z]´#ò w+¡1{Õè)w$b3¸íwü½ß0 vƒ¥kJOœGÕm¶hmÀ@~É#òe脪EÛ%ç[H~ Úüpðº?nìkì³0l>uçI |ŒÜ×ÞµEˆû£s}ž8ƒÈ Ê…]$H¬ p™×9_zúpp­˜îÏ;ƒŒ]#¦»! ¼yPÑ‹“ÃgU q9Þˆ"¡KŠv*öÜÓQ"|á ^¸2ýµÝªIEš€móWœÃ‡S=ÿ¾\ CÏ ÝjÉŸ!·ÊLp+“ëÌËŒ!ŠZÈJS‰$g¸º¾«&AÝÂQ®fßô-ˆ Ž+Î/à9–a¯«‘èনã<!TÿNL~yI:Œ{ÇEþgi,6è¹û}]||ï)"›Q”k´U}½¶h}|À†k¼0:Mj ðaEªI¬#èBS?†¡@NÛ~ðÀîaBOöÓ.e-»õ®Æxè¶QóÝщÊi¾+W´:9ÝÔá¦Î´`LâÁS‡¤ŽÁFê—eDœµ.ü§Å^ÿ} LLµ€Ù‡¯M=<ã¢|ÝÑ1ŸæÐÒKMÆå©kQtõæe&ÇÈÒ<ðÅg þ=”‰¬á$¦(Í5‚¦hƒ48ц˜Ù2Š:ªBTü©)tˆ`ñ ¤->-à Ö~$¾Sò÷¹ù[P¿ôGWuPØäsì§tb:Tý/ÜTîtO'SùÜò©ªÄáÞàÁ“SùQëtwð»ÿï_~©µÆ¥¡)홎ëŒqÄÑÐ7×Ç*û[ô+ õŒËGþOÛÂ%¢ÊŠ2 #(¿[ϱﵴ¸^q§äž´_ ¡ˆ/Õªq®s*@'*èíä—¤]#o^Q©Wµ*ÊÆüÅHüÔ±2Œ…2øFÅ&É“/в8|ËXÆ4QƒÇÆí½_êo“Ç ö\*ÕŽäaÙï7½‘âÄ“‚B²²â7-ùÃS¡ÜÑÊN¤U"ò~…#I‘fo¾™¡M¥îŠÔ}Úò½IÅkÒÆÃ~qÎoF¦‰Yü§_ØB˜©ýµT€7&Yþ|ëã(VßÉ(<6ZÉý<âôúpˆOÅ&wi'©ªûM¼€K…UÏ£ÈDf•W9óìP3™ñïÃì8˜ :ÒQòzãîˆåЀ-‡ùæ/Ýí—š>.8«gÞ6Jª¾mV”hŸúf P­vÿO-)†ÎýîÁ',=âûî²kfo*·cð†½ï Dl f'¬ ÿwÓ5ýb£ÃÚÙƒè~z÷©‹Fv$ÞöªÊ¢´”1޾õVÓ¾zgMŒ$ç‚á%ÿ6̸¢üL¨ç®»ìE@©Ë®¹@áˆG:s²޹µ( ‰¹Ò׈TÑÜW›/‰Úýd¥ˆL¥¥QqÏ”g Œ–íGv…•èOC„&s“™,èO=½D»0Àb~% Ÿfù¥ñd:á9?GYsW©c6%xDâ'º[´Ü‘)¯<ËŽñ`î›tìN,kÖ½£Ç·´U'ÏÌ–›þýb÷§Ö–X –ÉëJ¸þ¡BâKžcµÉ•»Aš’ÎÓØZ6Ç¿ ¬pAk :óVÄÝ Ò£“¿Œ”†µæ_kèü6jOʸ Îls«÷sMø¤Ó¿'gè ƒ¹LçM9²ðý^æÐ ¢êl7ç„@#:TR6kù’2¦å)Ú©Ÿ´œ5îçѤiµÎ[:oãö†B`ûCQ^·YL+Ô‚$ê¬êT]DÅ™¯FK+Å«ž¼6'Zàñ’&ž?Ó›”̲²>/{v˜Ã!ò’d¸À¡Wýæìfä¨ ðÔžPÿ1Ú;‘> ›U¬–høw´«{„Øöˆ˜×³ÜeV’’f8ÏÿÊnÈLT ’Í;ØwL #§®ÿrŠeèÏüûT{†‚ì}äl^·}pt€MiøBðV_àé ê(jV$è®äHz!×ê¼L*”}4štôÅKp]v^½4š¹ëÌh™hpH¯>³]n%u'¨„g»øì22>’#–¦t`ì„ [Ò!Ç8ÈQ¦ÄS1†§Ê.]Y„3ÅJ§aHµŸtÚ/LÈÁb]7æ?5jÏî¦$ò 2ŸþàG±²ÛØK·†dP{÷C)>]mÎM ê°I,ÌI)nTäNÝé3ìzÓÌÎW“æ™âý›±éä6¥ ÄHãýæ¬çKÉ–Rw8“=~S´À‚3ïý’_0”Ä{tÕÛÙ¤£ö°û0Ñ{ óÏ'Ve]ÑÆ´•¶”¸ÖH© J*4’¤xµ[pæ¦äÆÇŠ‚~Ø+%‘€¾Á·Ú!‰î°å“üWÕ¸jŽÚÅ»0æÙûQ˜cFÉEH›¾zéà•˜a€iøsƒêÿMâÊ\f…ÝvqhWÑ/0W¢ÎÅ„¶J ãí¨+Ä"Öâú¯ìç<Á‹½Ü¤‰üë³ýŽÆŒš`!LûbxW=ËÃüªò°$-›¨$ÏÏæi­•ÚùðÙ3|?ë÷[…€m¶LïŒÙg‰MxËÞ].¹MÏgJxn[ùнJ¬c õ¥,í#„¹° :Žð\N0äÝ‹ö×™ú-‡÷2ð#Â"žïqĽ†6áè{ucsÅ£ÝæhmZjoªä‰B¡YõÙK/éQÛFø‚ÔQ?¨à…Y–èù?Yr´&õ—xñ‘¡ÏD­Ù…RfzK¯•)Ž*á¨"3@H]šIkrÚ7@¼Ï~(ÛØì$‰üitËëµ|u¯-“DV#Œ4V‰èN{ÞBebM‹·…³ÆÓííîÐ`æ¸÷3u¢ó†½²4 ?#?r,ÏþµÛ„ßYo$“?]‰£>pf©·*°;S7‰§ ˆN'Uš݆]@5K ‚ÍÔØA ²é÷A#’ÓÕwÜú·G‡3c ELDí‹Á€ÅfŠd”-VS6?œ´(ê ´.äĵëot¯GD»j¶ãïTâ«ë¦*S:þfØ*¦lÉË¿óïL‚ß@.‡h¦*=<­?ê²øè?¢=0[œ$VSWå_ü6 ’‹ÚÛ&‰[ÞbÉ#³Û 9ìFèÅÔ àÑô=tÙt›>:¨¥³c‰òõs“ÕñvêI…ßgin])»éáÔX—YÂýF¼çÑå¼÷òü…õ׆ßþ¢ºÅ§R[­“S°uòÞJ‹×ŒUê+•÷:Oæ„-&»èæ@—2Ì`œÁzVŒDp|&Ký¾‹yË* ŠËFP¨}aŸÕ7¾§+ÂLo Ï FNLD“ºDõý‘Í@$T½õõݺ”é×™'Î;9ªHnîüÙ4u&DN©U«jÂÔ^¼–ÆN¾g]ã’1öm]*ËAP˜,AòŒ#&p¶Æ£Jiþ²„9˜Šàjõ'£0êÀ‚ña^Ù.Ij,컟þPåÆXõ|:©–©Œ¢êÌ$©¾SѼκóÕÁ¹…PIsÂN7d§ðŒm O}­9‡&äfP9}Ž.€ÊÒÛ¦u?´6ÑûzøïU£íÚxÐÊÁŠ|ƒKáÒ²OÉ_~¨žGGöNbxP|\bºü}Û^Ôð9¬×Öµ½éÔ¤+6¼š>ѽ_nÒ!6ÁÚ¯îå+éPüLȼóë Ã&—. 2mïKÄLõšá}‡¡›~ |{½úæ #¬#ùeˆ(Úa”û ÑÜf¶„NV™ðmvÁœÛmÍã–Z/§ ?pægX³±I°§Õìøüdò9H4…"ÇòêÚÖ¹·Küu(Euš›‘Ü-  üL©<™šÖý:úFö¿ËÚ£?Æ4KL\z³õÊ4Iç|gU¬úÅÉî“·;w¢Ô4G󈿲ÊfÆ×8Aµ`@±ª‹GÙF\0²ô-BšBœ+²ñ!d <¢§¨䦌¤¤ÝAËI„çÐ}Ö¼Ú~­¸1™ô èU~uר|Èpíþ*é XÀaóòÿcf$ªp]ùT× ¥œ«%>.)þÆß)+ÓŠº: ‰zþ^)¹’]fËw%,kúÊUÆ 1ègÕ`»-}¿)j¾‰{±ðzdákö÷ÜDüLä6 Níïv·ÊT³ÙWÛ¾þš†™¾s^ûWê[»%Þ˜ó¸èå:ÙÚu:ÛËȪlq“†g£ˆK£à_"yÁ”±ìnŸ²èk¾)ïÙ‘ê‚6ú'w¶ÄÆ»píÇì0t1Öæuh„«jº£—´&rÄZ€Ó.X[} sâ3âÁ5ù½µKb:n®MØ>Ïð`½ÁQeËCe…χÌýˆ$´ÛyAqiXIÜêʤ†ÙœvoJ—XŽÊ[9Â]q©uIO†96ÕßE+ÖÅ…YiË/%Û ÏÍ ‹JÑü›¹Õ d}¸!†¬Ò§Ä €Ç§H`¯Ž³ÝLó"8åÄv!ðôD¸é]:8<$ø[Nn"¥€‚áÆ’ˆ"UP–ˆ}üL³w줘ۢ~þôçdiEòq/¤K64{ŸÃ1âTq‚ã%/öÝ¢ê½T?ôúO<4«¢8óÔI®IâÎ5…[aðà~Qfü”X×/¯ Ì]ðã]T7âEp!Tõ ûð ¾Î>¢¾ˆÕWÕf!¬{Á‚¼ J!0õ!XíK!á üð–ðÞðŠ/ÖþˆËj%1mj„©xˆ|a×A€ÒÈ ]RR‘c%x™ƒ°ÖÀ‚pCDÆ‚(MI_úáºÑC§Â–„è¯èLZV=f—á´åIÕCü±¬÷3²-ø€•1ù:ü/§Òðõƒ,”BT¨Ú¥ú=PT‚Ä,„ÇÉî“VLãáÃI3å)Jãå»ÅiNÄɃ:׉Ž0 wÓÇšڡ+ΊqˆLOÓŸÀæÏ:ý$U«.½`Aì´º4–Š…’Û•\·°`7K¹[A±ïO\ޱï2¨r/ éáÄ-kòÑ›û³uò¤·®“.²Æ‰3 JSÁžLò¡D;…iéø8S2=ßü§Ï-oéšg$¤Ž\7TJö'5¯$xÄ·zÝÊd”óŠRu¡‘b°†@°b³T Øûü±hò{Š~òXN–³¬{ýÅ¡ö»[ÚÏóó7‹ªcjÔãFú‰(…‚E„¬i?<Œ0ÆWÙ“_¨hm |Ï&ÎEì¢ËÄEŸY [ShïBDmçÌ®T*Ñh~çºI˜åó4LÇ h]÷† .7÷£‡©bt³ƒVª÷GÈ@©ÊÀæ|m³?¡e ålP·{*ôY8Áÿè—/%}Ÿ´¶cîV¢ÉOÄ&”?ÇU™– ºë¢'LºñD;u›æhÈx0Fõ3I²;€NØË¥«”&êÎ.uȼrjÀúOggS€=¨äqí>øÿñÿ*ÿ‚áìååêÚÚÖØØØ×ÜÿºñáãÜéçÿßÿøæûòûòéöÿÿÿÿøìèòðÖßÿÜÿÝðü±Ìjk, J? ÌJ>tuçsäõ±„\îÖ­w›Ø‹èqÌÇÀLÚaö”rk[‚bü"I §~¢QÞ¡ô2ê|‚/[–D\µ_s°¯N˜Þ‡—ÉjÃü™ÇÛn–†!{¦–¯ÛPÉ[É+ê¿ÁKp ÎèQÈ«eb¼ö\á«D’h'ÖäÚÑÞT‹Ùèn±h ·^ß]ìãQû>™¨•µIË2¸6í‘F+8î6%õrÐÌ’}˜??6î•xKøÅ<ƒ)¹:=¼ê…¦õ˜W«K“mù5z2õk–Sß"Çbàz¹šŒíþü±ÚJ)#PÒÂó}EÃL*×>@9°LújôNœŸa“ÍyÂ2½‚ÿs0¥iî'ªFR.ûlÜŽ¤wé·õŪ¶—ç¢W¹ôÞ°vµ}ƒD3½ÏS®9rWHé;‡üÁʦ7Ý()‘³ Bj™vËEç5¹¤1ï\¬QNÉ}P—« A8éMÚ: tm’»Ý =(›àq–G&áç8@8[ÖÚÃ1žiïs¨$øÔÅÃÜûàÃMµþðpX¸@ì¡ÐH­Î„*?Ò@hú+…½ßþ™cèFÞ¯¾W|$ç‡q\»Šìטøïê¼6y‘Ø¿¹êÛ7)³¤Û‘¶Íxûü¸†Šp›9dïÆažð;¼FEz›­8ÅQLI}]Y¾Q¯Ãž‘u!C[~ªÑtí]$âãÇí½“g+÷¡á#¦Ñw‘Õ<ÔCFÐJ¯nÌQ_ûémö¡Ù•¢.%A#Ú‹³^hüüôÄ .ç;ÿ´âª5öŲÕd=‘7÷¢ô²gpEº¶!RÞN@x’¬õ}€ 1d6aè âÅYþ‚0V§¸Pd$øylÆ+z+¿ÛÛsˆçrr wá]ªàŽ»¯p·‹¯€©Í ºsCØpµ –ÿ#ªùòâV*‡Šz·ž3–ä2£{ü½ß¿û-9/(/¹Ç{!Zò²ÁRr*º ¥¥†í¤ë[4äcpSÊ$J]ëÞŒûroùåì¶gãNªnƒ@:(‡ýS• X;gý2Ú!ëk&rŸÍng›¿° !†ýz'n¡•®ûÉ ¯U{†äIØ([É-µƒý/ÜÊk“À¹¦#ÓFÿÓX;d$Ù´§J-Û¹ñ™~ˆHS¼LÚ_ý[ó_48=Ží±±`ÎDåœ}‰óKô D=Âwl•.¿<6ŸÁ)0íW…%¥yá.¿ÎlâC’Žì¡íwZÒf¥ð=+w;,¨|Ú«ïÉ&û[ŒßÁw«ï°ÝBk9 ” c•L!pþÉ–Ïgqòl=7É^÷ÊÆ*È4íWïh¨6±½’úü}b¤¬w<ǃ ö x†Ê,DéF9G=hx“äG€ìÑ[^r=?è'2¯§iT„6h™ó_bLÉ_S^K«6Ž]r/d1€4]`ÔÒò†%š•·ÿ Eʸӌ¥÷Ä€•šÚ|2õ!ù{÷‹RK‡¦òy5j/t׆—NÑ.„%%"y±B¢ssÔ= yÆ(Œµó¥tH±™¾•Pš;ÒCù3»ÂÔ°r&©ð¿–Ÿ¿Ý{¥%7]os9»fÐø ¢K²çn;Ó¹t_ˆqŽ8jùÃãŒà{¹iùžtp¢g.æGš ÎG$^¿ ÷Q¹Àª?¥ß‡³BµÐæðX0òÊÈe)Úñ@Š©”­¸d¶„`—Ô°Ô™¸‘ÐŒ¦¶(Ð׋ãÛpðñˆWùއ¼žÍ=ˆf´9lèù õÛR Ö¿9P×µ\X:e$ÊðÝéh‡í6“µÆ}€à«2@)£òG¢˜ž D9E¢“+B¦µVÕ„·ü5J;ÕQð6¾Ì”Ÿú\"¿êìB ÞŒ0¦Ÿgî=©tLy*½®ú©&ïž88’4g£·?)Ñ¿,ü ÇSŒÓH»²I¨¿Ÿrtà?élueA<îiÉhL9å% ͬ%OÕÑ'“*.‘ÁUóÄ^ýULôý3J$ƒÇ؃šÔP9“¥‰jû‡Þd‚OåbÖertv¾£ãÿ÷˜•ƒ~%vý£˜µ&üð·ž í¾ ‡×•j Õ,WoÞ^Z¼naøŠT ~EAÕ\0×ÊI‘MÓýuüLätD¹åÌþ2T¦íå¦l „·ðšÀ²æè =л$ÿÑžèfLÂ2·w8è?iixë¹×xøãÆ$ZÕ³±sêaA¾Í×,?^»±zC‰ÐGe.öõß‚ ™\¶›Ÿš®û‘KšY·upr&À ŒÐa´¡å'½·aï:øóªÓ§¾±ÌwìÀ겞h?gòUÊ ìÛ¢;Á"Çfå¨úÖžˆ‘´ŠGøNFù´"dJš~:3‘£9ÒÓU÷—4ÀŒ5(Q[ÉB!®\2ìR©P%â­…‚8×LóÒÈšI<Ä¡qƬüM|‡‘ax+‚üC=…åUêÁOØÃŸXŠWˆM[ë ³’°væ#ü/=_©ß¼(ÍN `/‰ \ ç“äB¯Ê·Æ¨ gÇq×1ÁRÖk”Ç[kÛŽç0þŒ^®TNx«cÿLÙ§˜GÇæUÊ™X”œKì˜ Ù¦ùßÐG®CgMÁy/¦¸ï ÖÃ÷´Cëóúw¥ŠŠ(ÏI4LåîXöÀýè„1ãNÎçmv?d9òñ@âzÕqkæ06ͳºá<À¬/]ž™Ê.áÀý8´wú‚Ž…´Óc/üIƒpžßsê‹Ô®|‹-ôÜÌëJϰ…<ªäûk6£'fx׃Üö›ƒHßÇ)Þb 4 ΑÝ,dúšœÃ'{é6&wsWÃ_Þß1ÓöR‡qIÃ}¬Y ÌNÏùZSX†µŸÈš_ñ0oI)£œÊ°êì'¤H(½=уŠ[^ôòÙ]d6©p¤ÿ‚ìxV™Ide$¸¬BzòÁõÛþô±yº™ðm BŸ­àßËwŒÞ[´A–4êž0«™²Í­ïEðûm0ù¾†ù™¶$ÊîHÀ A¶~öí¯%šYÈúÉ?W*üM…üÉ¥@=ð]°ÜéÍ8¥‘›ÝF?>Cº:)T“ï8àÞõ4{P°Í,•Ä. ˆ¾‡x¥ßò· 4u"ü&21 <~`V¬2”‹mx­“9¦žI†õÂóvŸSt­»Á@¡"†zí ×X‡¶RóC $Mé‹·Õ|§0i¯ÌkÌþ“Í™¬¼°¼EP4´ß#£ìuº½Cù—P䀾ïàù±’(ƒŸ´õcÿ‘¬P_e[ xl U%§f™¥ë÷hÍÐn¯}¢µ‡Ô¿»»þߤø®ãàÏdÑÊô‰¬ÿCë'÷ü/RËñåT“…UçÜÆÑǦ z£2…ˆž{’tø5º­fIšÙ]•È9;ɽìUÑà§-Œ»ö\æP`ƒé.'ëRÛ™DE¥V}«å½§‘Ð G¦Ó´IŒ8´î`žìêÕè*ã–´9û›ù÷_È|ã6 vŒ¨ÍP®r5óCnRÿÂAc‹¶­[™>¶˜uâ&ž—V~«G:ÀÑ·\kønÙËexOÊâÔ¼™œ„¥Žì8aÂëÅ„ x)p£PÚ²ª‹³R×dŒ”’?/[hä¿üI¢Ú•Š` ­Óœ D¥*Ô~Ôô­,\*®JTqsyB¥Y¡åLFÜY ?råHö÷Âì4êÕ ¨ÿy߆#]t€ddνÁ'QE„g Õ==ñº&q€ùu::”—ŠãÁmÀÛÅcÒr¶›Qo–Ÿø‹j]¯üDž*Ô#öQµŸ Î#È×>¢›#ùõ·sãq|³•*ÑRš¹õTÞõÛ´Îx#>Ô+NF[S^F7ô¸\,‡ò̧°•ç×¶e¦}ZcL«! Ãc8ÿ·4§Hªq˜šÿ¥ÝÙˆˆA.W5"‚Û?“s)4`„)~€óŸÂ±4õŸì´øô1ôÊNËÊòößK™×hkHúX°Fc.Á;h·,†Ašx¯šèð+Äüç‹ ×k–ÍW\˜©¹ºö„Óa¨ÒMPiFÕ&F´1KO å=NHLž¢ùåŠõÈåB)zÆv¨\8qS9å+:L´qŒ»i×xëFbèA”'ÇV4*‡ãÂMVÀã©Vzuý{û„n‰ÐËͷ뉕š¶4%\¼¿u­¾íp¿« ºOAß Jmµ_@Œ¦ÖÿQš<ùólø‰¦"’Z—6K0´UcÙVo‡À!ÈY¸‡,™©:ËZâR”Æ9uòU_sK%˜¿%›6 «Kh1’GüâCÕ¸ýàç[ETµûZD+Á“ùcüÆ¡‘¿²J5š¶Ñ‰÷¢ÛžÒòaðÏfx~§åÖûÑ&¤Ì㹺ö8[(ÑŸp´½B=UxPcYê%…L &ºù¸’ÉÐ¥Çþ‡Ë&È ëxéíô©yñ …äöHnâ[KoŒ¹B# SøË/ çGÔ¸> í% ?t³: ¸ÉU¨¸ƒ©¸ð\嘢X{%=te?å"¿Zz_•Çš_“— Ai¦†‰í5aHWªGa!àVAüÙÚM¢OOüøÿ{F4Æ̾ë·s[9ëp…áI£šž 86)‹Šø'a¯¼öo÷è ÔÃö°ãÚZ îRúï£b$6·çb»w«ƒ/*6ÄiUë"2áÉêGvÈ>M‘RÆÝ^6¬¤»¯ëÕoµ>I¡ç§ò°Ù²ºýÞåŸhŽSÌÕÈjÛuXá¸Ô¬Élb3ŽeNõÝ0^VƃÉÿ$³CÓk÷ٱ肯yVx®à Z¼[—põÒg m3úN…ÎSy´_¥‹•ýé`‡¿ö‘9Šv2WüÙÛ¸8ñDn¢^ÿV·ô`ýjh –_Qe£P§QL(<Ô*¯•Z¯‘Ô›„ORåC+„‘`âðCÔÛ,b°DŸ‹2¡ó %îJô¡†ýKaÙÝÿ|¥‡?õRÍÖ}º­Ý¨—Îë¢mtýj©Eý²«}ñ—ŸØ.¬#r'±!úbÈ+ý ¥ÚEhûÐCâ¼ËÄà ñgÖvÿ‹]”£}üÞ=´/±XÌ'Ü{æÐªÌ–¯‰Äƒµÿ/ð…t×ïí&ú§æö¬mwø[­ͤJ'J¢?ü7ícêÀ×1EèzçâSz¼)0Sãm·ÌÑ7¦‘u±æ4B´Ã2MvÏÔÁ.ÐxýT]ªÜðTím©rß¾ùSFg¤B35Y+îÃC.;„š…nÚ`(ÌÄú ­€d€wšÚ¥hgаAœå`=%r:=BH¨ÊfvljÃçE:b õàó~\v¤²²ª8£î=«Ü\Ñ(f¯´«nçFNKJQ Ê|º¼ƒwŒ¯÷ºZý{À3Ý¢ÅÔòÒGMW›c1³­ú·= èÆjü|·kÏsÄÎ15©ƒB0v¿:iw‰¶_¶ÜQ&¡cÏWkóI—d#h˜Æ§ïò.rNWZA¼9+-²=¸oÄ¢MÆœŠöï³ã"â½V ÚzašÓ2VÂFç_–kdÜ2rKβ2ä|ã&ˆ¸Û?©h¬êãzÙ…Ì79ѽòð›2à5–03]>áÙÁ˜»ïAÇ 4”/µ€\âK ë!¢„1JeèF '¢%?FÅC‘Ïô×ké=#íØxtá°Ö’Ÿ"z `ëáW û~øÊ–Iop5á©P¹ÌÞâ¸-#6•toŽS\¹³Ñh+!ÃòªàšdJ攜ul'TöEK›"Èâ€Ç5æõŠ€Õ]xÝúǸrÃÏ0ÂBö}âòº_û‚<¢qL£Ë[¨}ǾY«¬µ1'DÌóÃú5ÎàyŠ}?§þGþts¹Bão‹?Ò¼4S&×päþ“?OWêð|C%Q]G‚S~îÿ@'†•›ÂXcë—pn°R“s®kF06üXΧ.Ú³˜å‚‹ÓΑÜÛKZÛÒG~÷ã¼|hÝÅ›µ¶\á$è«åòœöRV°?¯'ÛDµÂiIG–Ö#\Û‘H(GÜl§T]U/v¡C¥¡ƒSóKï.B¾\y«ù¼DldpYt;ØTG¶ ›ÌAÅ%"Ûæ¤ò ùtoÿ¬S«{‚ìÀ²ƒèM¼G~î¢ìÊ•®¾4qæ‚ÕÅäB”âÕ±d©ó&×"BÐŒ (û,ì÷èTòÍ=ËõÊœ‡_:Õæ¯’„kˆ›šŽ‘.øúÏ!蛄íÑp%CŒoZBüL»|„åSí€àuZ`iX¢r¯ÅÆÊÐõw±uxöMX[ÄPšÔ6mɯÏr‹&!&¯Å„àbBp§<þÊ™ˆª/°k+º%¤ˆ–Ðn>ÛÖ(“Š8ù¿C†‰“BÀuiTá&°rCHi_ú\Dzm $ÁÝŸý.“Æc㦽ÿ”,Ækvö:¢±!$¥- ¡dŰ«þº§›ßÊ¿Í$´µ|ï“Ï{Ô¼žçr±"@ÊMˆã<Ö–Ýc 2qTlvarˆã\ÄœGäG4Ë#–B¦˜fʺ„t)üÆjý±9ÊIcÁ¼ÙYÖ=Ÿ}{¬:¯Oû¹´Šúܦôû^vô›qR8|#'»û[ýÓä}X›îŠm²Í°yA„cû:=ÕÅ:ÊŽàDçêÜ’T8æOãöÜBëƒR‘ª¹ºžîº¾›SK™:}.we«)o¡Fô¢ÅÍ—Fï‚”sdÍåàV«6%­°ÎºÐOHº)»nÿTÈ£Ôœö¡âÒ„7MÝ¿ŒRíàºTi¾~“qÓÑÉ0k˜VMödÛÁ1ƒ÷G; _üN•D“tdýI*7Ir܆•.üÆb¢.M€@÷J³¸ß5²©`˜Ô V Ý?V`R#1A6oy.ø‚<¿‚K828·&6šð†BÑ¡´OKfʺ’M‚_ªñ!¾]Ö@‘wÝíÖI‡[Yè[¨·‰]¹™-Ñ#ävL•ã »´ùŒÔV®‹gBNÞf^Ïôè`1†pL¼`´ieCïÞ¹YYÐçoéO#ø¦³Æ…’<Ön)V½óÆs¬«½nÔÌ7ïøtý0®¨“Æçií/ qe/’@~w7”†º³æUõ?öH üÆd<ǵé¦MAì„Rstb5º÷'Gv«CüîÉ2þš‘¢9Õå”/à³.#ˆ0çL•šÈ2LØ¿¿>ÎC{ϸu½»P›L¬CŸrÚ§!»}W|²û?í£'›— ¹Ÿ¾2/KVžÎk.ÝQÅÖ7Ì·=î«ÄS@\kI\ôÑ£Ûq~'~d[”h°»«'Š#*ñsÏ^¿Ç´Ö…²45Ÿ)]A¿‹7‚8ÃÞëò ÕSÏä˜\áï¶þ+íw4”òK9^ÊX.!I™{áÍ.¯$'(^\m:ÿƒÀ×N Y:kîRdU…×Q— ø,9.&d_\,¾ùÂÕí5 Î²’סÂÀÒ­J8í…ü}Rc˜X5nþ9˜Ì ¶°B¸G3Ñ<én(æ3×a€!=b¡˜TûÖªÕ™û4¶“NUŠeÆâé9#‚ÄÈ+ËÆé7ÞaÄšWzîÖz?úÂLYŽ ÞÔ ×z¾œ¨õI}¯&‰¢ôüÑ[¡µLò9…gM€Ú.Ã^ùbÎ(€Íš¶îËÞlZæ f’æ•ý*òc3RÌÖ(€¾’@t]‰l€!¹š*ŒÞr£lo€sêfèû>€a“îŒ1·„L)Äæú-e‹u™â1yçæýĸÜY ¦ùªÅ„WŠŒ‘ép bE¨‚íTñ[Q7Çÿ->5z:ؘ܀!`¢(ýÆB•aóÛNe˜wÝ:¶9'³ï…?²‰+¾b§BÍoi`…:EE–àݾEj* t8£t£¹4}§Ï†ßVÁ¨v£òñ@ÂG8íŸw¶a¶ã%óÞäSÄË#ø x¦š0‰>BÅÄßÇ]¢zëaõXv>¿c^¨‰jž}´ü†.Èóoƒ¦ÚwŠÁB%2+”¢~R’d¶W à¬ï÷[¦âë¢s^ËjPmð…·µ©~:2²LhwÄQÇðpœ†(>³¿@­Ú è«@>×§‹aªY×ÁxÕÅ?R2›h*RGL²sÒØ'‚ øÕЉkw¿f¸¿"jª¬g­$‡m2N=(£†ù¶Ô±¶‹ó5Æë7ÐmFf1_˜'¬:È|i(éÎÓjØ’õáGìŽT¶7ñ˜DŸ¢ã¡ìÅ®~F‡Åd\¾7ÞºÖ¼Îr¡›ó_;Õ ùçÕDÞW—†Ùï>R{7¿â1ÌV…´ ¿ ¹œ.ZRDJ)žÈ-Zh=Z>õ——d¹0üÆcO]K=kƒ¦Óˆ[ÒUoá:œ—›N«“l²ë²ÀŽ”æ8Ä€ YSßÝ«aWx¢¿Ñ}ÿ^^CüvÑsxÊhw‹dñ–QM¡‰½çÔý1ÛRÁj'ýþ ½/³Yé©7Uý„ @˜7K$ÊD'œóÊ ˆ:êE¼a‰ÎË@JvjÅø-5k–ñR]¸sR: Nê AæŠQ¥3a˜q2/C0ÿ3uÂ#˜Í2ž¾T™k‘ñéå  ¾pÈ8¬qx¥XÇœ+%\þýÐõMêf©$Z5hrçM n¬Š_Ÿà¤ºÃÝå˜ÀjÑ”u"q‰ï ô(Ô;³‘ì'@^Ú‚¬BpÕè³~-ó4_}­\ʯ|`C b­ðé:ï5~íÙˆ±œ-4h&x÷(Á艾ïså¦M²–o%U“Ça~F&+ «'C Fý*š’#ä, Zç©ü%½üM+Gàs(Hó~"ŸÊÙµè30ú’¤âã—+\%E–~¹TÌ ¡O \I2¿Fˆ.4âÁÅç‚!UÕwªžÑÉSPÛ$è5˜(]ÁízÅ!8ðe½Âé°É(óÁ¦PoC‹)%ø(Úúe;4It¼óÜC—Öw)и=‡omã¼…®uµa6YÚ§›æé9¤‰„£¶ÅŽQ΀Áƒúz°Ûz"“ç{ý”4lNLØœºQÄc‡ŠÈlórSG#ÄÚûAT§-¦Ø—Pm‚žÚ >—kØ P®ƒ{GuI?7çqÞ`êµr"äüL±pœ6é$]lT—ÎÖ:²Æ‰­Ò¥´T²0‹Ê SbîÏ» Ž˜ìŠ› ý#Žn[ÿæ^8Æ­7Nù?þQ/ä§“×;êF¬TÒW¤‡AH31F©D ù!‚w-^Ð$­HŒ þˆB)–q{ Æ¬1!nÁjCZë宬³â`SíÛB'. 4›üL¾l¢²Ûá¨ìšqë$σT µH jTLØÎv>ûÉ™ïµÔš—U;ïGàù*'dë.+ª§ó˜˜œoT™îÒ‡™ð³M¶ËÅã²ÿ߯®ª©ÆZî›ð>,ýëÍÉ Kp¸0ilÕ÷L5=ºN3‘–ñjl/…<×ã‘Õº‘UH³R)Îõ¸ q\‡Â´=øPš…4+ÑØ´Côû¥Z‹„?cRJ9ꈚ>yø²^i„ƒ ²ÕåSìÉÞ³Ž¸HmÿÌlìÖ²¶"žrq8åØí@sÕ–O4Íí§U#»±ö¾ƒÆ_¬ýk9Ûl]*å”ÓS*@,üÛ»J ßMä•ìªá« •¤Ÿ À—>«áÌ|Ô˜•Gbãæƒ› J!þ)hü£*Säñ›ŒË÷•éø|†ÌD™ha/yÒ&®YoƒçÔxüŽˆ žn¶bÉ75àÐKö¨^iLžö@2ù¯"ª‡üËqwôü4‡y­œuó7 )§2o$„–Ï"Ïm{HCŸ©Ëoòdd˜›Ä£€d sUÎKq¡ÿ ÒF wü;@.ÈÍß?NÎy 䡺ÿì낪>¾¾¹½í>-L¿c|‰iuž6× ¸˜A»o=vt$;¼‹AÿÏ~Ú¤VüM!(ÖíôÓ†ÞÓ£"ýƒ¬U‘jâ™#>Kž?@“>®ÕÑÉÆÆïû¯ °Å&ÙLÖ z;“‘–úN‡çÀBãu?vÓªIó~èERÜÐ"Æ×qqÏQç8ßlÓòoT^£*ÂüÝzã€üx€ ¿ï­ÞM©¨«{ãÅâ—±Êá™ae\é÷é•y‡øÉ«2|ï^M ýÔ\XüEKM´µ ðžg¾&Ò61Ø…¯Ãêf"&ûz:ãrDŸ¼s,7sWD×)YH8X¥FNð׊§-ŠR,ÃŽ‹¯¢y 'ÚXž©RÈßÌ“­lx–™=kN«TÆIæÎ Þ‘µ´_s'»üÆ+ø»Õ[0;Ê÷‘ˆðº,ç¬à ÔKNd®˜}‡ä¯P+³Œ7iRÆt²t’žíFoB=}OãÐ`-h$Céá:º†­°)®Ü ³è!IuXëðöÉZ¤ƒ`ÓÄÙH­c Ñø×E?bzÂ{“ŸNìªR#ÁÝh±æÆ©ýh˜©ñ&bô{oÍb¡„Qh›\%`Äž S±Œ¾4Œ°žÇ>¼õ/hYû0n¹•ç97È_2ì(a­K;¤ÔBRž[î\¨’x¸óT\ŠÒå°Ãl‘ŒÊÏnÕü… Ó"õ%¬¿wÂy3vë ú9ßµƒüÆŠ2Q}û.ÝÙkhõW™¢^\/>…­KDe—ðwP°y#çúÍ^ H37B¹pñ‚[9MÒ¢øß¯~3”Õ¹¥§ ošà6 ¿•žëþë'ë^ºøj $hñ†L_ÌiP\ì;U¼ùŸž–’B¯ÞÀÍÂæOq7*|„ñàVö@8á`¿HêÁ= {Õ~'­…13qRUâXGɵࢠ½A'G ÈÍqáåÐ12t­!Knëžr0A¦}ýc§`îxœöšVI‰tįN Ìé®ß@‘Š;.1¯P „üÆ4@÷“ü©–;;Ñ…†*bô½«[s1z?3~q%§ÄÒÕÙ“4³}kK…꣟úŠGžØÇÒDו±"x‹T–sú\ôÈŽéP9EБ;6F4F€íºà‡i Ö/ÁT7«ÆÖ¿ßÛc4kün"TÝÉÊ ‰ÒcV†üÆkÝuú[vJÌÉË$ù±VñŸ‰{†ŠÐ‡Ä¬÷ö§·ì'¨k¹ªÁ,å’ÿà±ß*¸ê§&í8kƒ©6;¸ ÊY‰˜^êÕþðþNueÁêór½Rƒ§XäòÇíí¥·ú<6lèP;?æ?åpúëb‰É ?ØÏÜ$¿’{ÅéP4úä‡dü‘ÞƒIj­~€©i8GW‰’çîñ´—ª×¶P5u^•v—õž#Ì.÷I*t"Ëä“;Wµ­]w‘ÿK)Ym£ MvnÕôÙî° 8.Ûþc°mV$’G‚ÍŸ”•ÂsS’üÍÛ©?}Ƹr Žið–þ°º§|>ŒÒƒ€/áãY`ÀÞõÒ…âu«×Òÿ’ÕÞi¨rEJ±†‚…®ë¢"&ö¹tª{IÙ©$€ôŸ÷õ6äžÃÌûX7l™Ý©;*·aà˜ìVöÓfʯä}j÷HoÔ {¹uó‡Í'"¥ ·xë*Gz3ýPá[ÕL¹ªHþÀò•{>£“JrãRý—†¼;š·± èÒ¾*Û”ËÓèØà£çaýiT 皣HÝN@§abÙKÿÿÆøÑ·öc Nb'|Îä@âÚ¹M9à1òR„»™"—üLÌ)ÃO΋°ô‚A4Ó:ùró–Ú-¢Ù7ÚÂÚ½Ã@V¨/Rñ=pªm ƒ ¿ù’<§Î—ù™d$óæ±’ DRÙÐÇÈ|4¬@èJýžœï±|§h1l(0£Ý2† × ö9–OxÉüÿ3›+*š\¯©ó•«šGØ÷»÷¦¶«”“`†Î¬Cà)ò³ O¾`ÀC4}3óEÌK‚p±1\ë4Éí>îJù_ê@ùí„+&Õð4ïuýNò( §0ûÌ,ªE–ͧÊÙÿòØüL±Þð^¹¢þ£²š¥OK儼ZäÈŸwÙ·0®¯cÜœ„¸‡ ¯gŠ&¡•»2º¨÷éÕ¥Øój¤âGmé¦\šfwsA‘ašnÆœ%ʇMÿoofš-q]éF‡ª²-à0×wøÕ€­3AXñ©#ò¡ ‘{áìÌ;Â*Ãd_1´ÜÐ1РEj¶ÓCÆeØp“è¶gö_á+ Wˆ¦*–u 8æãÙDfÏv w‘'Í+[›6;Ýù ©ì˜ ¿Bеy§d÷î¹U²ƒA •žÑüÈUÞMnjˆ'FªPͳ™ªß~Á„?y²Rüïp%‘¥¿^»x?êQ*¦Rd~ÃÚA6ŽqJ†ù:†ßáKwPç8bâÜ_;zÖ¯[X¶&¿ò¢9óD‰nàÍ2ë;)§"¯&x;¤g.\‚ec8¼Ò›û|<´2M§Ÿ­gî@5mŽ$&]p0™ÖòþÀœj€ì œºÑsúj‡W—°ð]Qk¥–¼)p¤9?¯yÿuúk䶦T*‡‹@åvFÇ1o šï?ù& ]ò¯MЉˆîå“®¨}:,±fVW •=½ä€´Èß;1_ë´’LÔ:XsÉõí/AW¬O#æmÛð>kYção&¹JÕ7´±’6<¹j¿aLÐŒ…ÍòrßeLDV½Ãæà+ŸÌjýž1Å&ªV­tÏ£¤Ê¤ÑëiËZXäC¼Èa ú-Vw lÊ‘ÙѾ©!¿YD²0ÜÂ|^þ·¢+ŽE ­p®õÏÁ0€‘?¼Ã-Q©ÿ£RÝ(çMâÙë5þÁFš<òm»z[Å_ªö½˜Ö¿Ïê¸.¥Åüf"xÌ##™B#cê7ÈyÉü’ÙXÄŠ ¬x²ÈÊ&´ÞÔb.Mv±¦0ê[*·p©¦?ð›œ>˜íyW U@R•#Ò‘lï JÝ~YŒwtmóf#Úñç\,Ρ¹ê^Ä'<1Äá©X0ÖÃ#Û­Êûîµùz‡Çø¢¹ºD’"?å1O)=l ÿâ:ñž]í,ŒìnÆpyX"ݵµ}5˜ï2‚*@m¨kâ~Äã.¬y² ó%oò¼'lkÓ:º|<}äù×”Rç](A>«üWu T+1 ,‰)Öw‹[±ÇUòϨÍ+ô_X ~išû¿©9ßðÊ{Í:cEl k RÙÕœ–~`/fo>LÃ’cmY‡¶õfÍ€§}­#ý ùà†¡°¼ âÛ³ÍGC ™q6‘^iNnö'+|ÃןW /q&FFóš${?VÞLÕ({&Åÿýdù–EœíÔÙó¡ýÕM@èm„ô¯±®_¶xVOggSù¨ä³ôŠ8áÔØÕ×ÓÛÕÔÚÿxÏÖÒÜ×ÓÒÓÔÔÕÖÐÆÖÔÏÖÚÚÜÿ`ÑßÞîáÿ¾ÔÝäÚçäíóÿÿÿüü­_&ÂáZ·àåÄ8aµ†@…³ëdF^Ãa®xôTŨ{ß»”}kéÌtÀZ–ªEÜ¢¿¡;Ùâ9iÏßo9+Æ·g£L˜ •ðløÊK*âWr ÐÀ•úZpŠ1ÄeÝ Öé‰àú?a†’¤u’!¿5EÀ·×y }˜Ð}ög¼0(ZØ-Æl”›£¶k¼pωà`ŽlbÓ¿#dhTý¸v$G´ýÄê]zBJO¥›Põ”ûªq@%øû¯tɳ°4d›à§.û~‚¡FÚ ë1qT¨ü/jö]Ÿ' ol³üI¡ç/IªsYõ’¼µá™?aÈ<ŸZË"äÚÐ!Qù/ßtŒ­ê§hº<^1Ì¡þøùˆŠdÃÞB¦GzlŸÕut÷‚Exr\ääü´Þ~øÒ~›å^¤×³ãåÝ€ó?\¸¢ÝûQ¦÷mÔõÿÁNñÜp<ü.ªKcÞ GT³Wêz×3DzT)¯Âkc(6°…ó1Pé2³¹wzåô´.æ'Õ²9‚G¢šöJ,‡³*ûk|¾—]O2C§]¾V,‚•ÍíQ_Õ¥ë¸êŽå±žKãéæ|@⼋ïÇ¡`‡õ™‡Å}?ÉáW˜“áU_VYûÍ2àW _Ü9H»àZ¨ÀïÝ¢ÖG/Û™€¡!IrÓô;kÝoÌg‘Â=° ¿åKïÉeHnTiœÐ*R‹¼Ã“jK1:öRи5ÀsÆùêüL­ ~½kÔJ¸ª:£7 S~‰½[,9Ò°=;5²×ŒÅš¡\HЦ™C açì<Øøµƒþ8øêœ€³/ÒË-{.KõÚÌ;Éö³¯ŸÐVäœÀóSé&mdqŒ+bŠÌ'¼`Ÿ,RõË®Ìò1Ït=¦üçxΫ"Áö~0b•ŒzT Y\·Ä†éStЪ»QN0ÉJ‹sðU…òX¨ŒÑ&nxø´rØô&ÏíVéBŒ:Uhòp—ÅF€1”ð‘Ê`&“Á ,5üM,m›p̺láÅѺkäˆñ|™§:P¿â·ù:lyTn"uó8à3§ž¸kΉv¸ÀÉÝ•”¢7ÜøèÃA.sˆXúlv’ó±6ÉŸ\~¤¾ƒÛ†]m|_OV¢G0ro|"°½ÀSô/FP³ö…–oœE³å¨‡ß ³7c”%çñéÏѯe,fø±åpÂ[®‰Á~‰Ží}DcoÑ•–?UOµN©£ªX£ê<þ wwBÖ3Ù¦`ä…ËPˆþöh5…%Ÿ%Ñ› yCòùÄR’£µü-ô:Þ+tßyöRÿuãëJW裄I³³Ë¸Ô“:PÒ;Ñ;‡/E7ímS¤ÄóôHi›€5&×AèˆæÐ¤޹¶_X©ÞI–.¼•êàã"P©°0Iîñù>Žá´àeØPµÈk„¶¨<¾=…=™MÎîU»bˆj±­„[ÒÃf^p[îðª6ḢéP yÌÌd‘…YÓÈ/Ù¤l[…ZÕ©Ÿ¦V=@i`«dàV×ó8¶ì=Ab¿®«ŠÎ•žW¬ï’ïü÷BøÈOøÜ ý:þ¨gy-dÕÊVäeÅæª + n%¯§Š‹©¡dD— ƒêýÄ9¼Ow*Ù0¯I6SˆOÏ.öì‹¶“Û§åo ÔqÕÝTÐTVp)¦M.êÚ=[ˆî 1”üø¯ 2ÌŧìSÉü(‡ŸkôÄ(ŸdQ}$Úº·½¤Ÿ”ôV³dÌLe6òÄP‚vˆÑð} Õò¼É /A‡S¢SœQ¡ 6_ˆìCöò®¦ñüÀ r*pÇßáб R„<ßo²$Á|1 N t©üMv ¯ks–]Sa 9Q¬—ÕåDÁ‰H ÿ…]¿€«xâ„°³õ RFdxüýü éÏÌ!Ó° W~à*èÁž=ªIÏѧh>@‹_Þ@QFÿ鮓܉IõPó£ÿ ™ð AfkÒϰ´òÈE‡3[Ï—I¦É အÞˆrÞx,Ädz§NzÂSZßGíû¢~×au9P¥D¦¤”ç’A^Íÿ×ú1Œ¯á| ^ܘ®áZX(j)T¥°ÏS_ª_@°††sW¯Oo¼í:ü÷A°ÐsR3X4Jp2Uƒ5˜ ýµñ]èØì %XW©Ü3É\Ó‡%KvÆLF!’(º=ÖR»ÓuCñ<…IøMúg‡j%7sáªd´ˆ’Ÿ[àŒ’èãVóÍô¬62á2çì›` Šz´­ïÔ?³›)|©ÿ¦¯VöþlS4’: v€½ìmÑœÒùdýÆ”'Ê!›…ne¾6÷zP­ñdå¹ «·¬QXÔñ™°ÔVn“‹•É[ôñ/5jìþéDÁ—#LñÞW+Êá)ycßItüøŠ‚·¶tǤWIhÉ’Ðú¬"ÌgS^KYÉâèšJ»©–û¼³8CUųY> @´û€iرq!Âîª_õ³j«Ÿ~SHkѬ%ÉdI(K>ûlýnLN’ ÀÑ¢¦þ«eV[ðÕÕ®Ûj-#LAéÂÛ@ræ°m5SÊf¡B(ˆˆ7,xÇ–>:ÀXÆ•œJ—ÞáfÔ“:ºUÖúÉPÀ/¢gDêKK ï¥D$§¼*_ÒFq“üŒßý¯GA_Pä¾0—äP>¥Ó~oíÑùþ$Œü}^ýÁnD";z³å¸² õ3äï…Ö˜âÙ»F×T¨zÄ«ˆ¶ÏÍcòXɈv¹‰“•t†Â {ñO«À9Å…Úûà¸,ÖÝ›¨ccÛÌòzeS»Žd "V v›¥¶rv¥îÇœ7{jâ’°Uƒ8”}™*¥Ýßô{ÕrH®1®#(ÔIhÄj·-d½+Ñ$Õy€JԪؓ!€‰¶Lb ÉÅ"fnkúÛ>X7WÔ:yögÄÉžú‘uy]¯BÃWlŠÁôâ˜è„Y뼸VÈòQÀ;ÞßÎK!¼›ÁÉi´gÝíªJîq#y«8œ~]Ýv]Ö”ŒÊ )NÒxˆ=Mé6Ûppƒ-l½uB©-<»ß!fÍc¢Nðä¥$·4‚âp¶çT[Ÿ•#oÓ[œ¦ëD*Þ‹oxмODuO¾3{mx’–8\,IUÓ}^Æ~¦(p;O ÂrtŽÖú_Ý&Xó¶Iž4Oy2j xšLˆùKáh´·ì)&#øe-KÕËA@ê…°Ea·!TY_ß?CÅ=Šq±Øº‘€AÀ¨D³öDð‰úéÙmycéÄÜu%À•Ï!Þb@Çþ0?2šfö¥ïH±\ L³±_âþY † ;#©ÒŒVovG l¦2W '@báw¼ÃÊé1[ Lžô_EJªÄô‹¦åQp±r'©'S=€Ê]½Ý =+4_´‹‡…òXÂüVâ&Šòöªxq÷à5ìŒo ‹ãÚê©ÛnÐŽ¾ ²9C:˜4µÍâóñ:,«00GÏ5Þ„îmo 5¿H+yl¡úBËõNÇÅh#8EßÊYÅD; 1Š©¼ó<}—` È‚È…»–ðê|0T |ó`ôÏøê €ÉM„¨³d·-_)«ÙTif`8ý¡¹ÄËÝ(f:3v‡ßᣘº0 +¦Pè…å9ÖôÔ^âb}¬ÒÙhôÂ[ãÂßY£í±ž©°yðnÍuK­’`øüK#m¯žá2äO^Ï¥þT,¶z£.Yá–ßíìÉC&cl ͨø6w‘\àÁ|aö=f|{UÆ}]§(C´¡ÖÈþ&­¤-P㬘´k¬ÉAÚ§ Å&å´áJ¯‘»²äøþb<!QxÔퟢ'Ÿ†ݹôÁ)Šä|õή¥ rÂ0émÆ&Ëp>Ä-+ŠìrŸ¡SL¥Ä! };™ÕP}Ù³ŒÔæs‹À1É@6‡•ç¼²µ{À“OXË΃cľRîXÉuâ>·éínÜŽ‡Íú\üL½È8wàÔR·I”´è³ÑÉ…Ž„h–f#kÙ2¥Û¥1¿"*ˆBw/È߯‡Kpn˃A„B!ÒðXOýA8¹7Š2TŠ0Iµ ;eÜôhñÙ4ŒÑ¼÷TD„(Vx*ø æWªL2÷N‚@$J»V˜#ï —@n3z€ò4ÅdãÑy­IûsôÔ}̶Üþr`xÃô n7äø°U¢«`$†u¸ÉŽæÚ:–…}sÄÜE%Ò­´/é-ueJ£µ¾!Ìi×:Ël¶Gm¦3ùÌ lñfüM'j)³Â›ŠiìÐò,ª¸wwž0'¡|M©sr¿ë¶ÁN—†?)û¸¦þʺyáóÔÇæ]6Æ·]A‡»ÙG¶f/Xyg»ÂçÉzÛècÊ[qXBkmáðÛ™) ƒÄq´€rœÅÂ×â³;C,Xåµ ¼EJÀÁÁ¼‘E`ât&(¢ú>CY-¤1 ê|aíµ÷”°Fù=>xîíó¯¿O%x­\#Y‹¶üÎ+šD§jïÓó< ÓþxIÉh5S@ö¡k$(ÞÇqð ¡rÆ_dšü ÐE4]—*ÿzÍ»)ãâ7Ë ¾üJ2 †K»óÕM`•¡=±\BíŠaQ¹Y÷ ³WË Š­§€·F½%l¤‰F‚¹å¡ÇZœb6|:÷Ú¦\Œ8/Ýg ‡ŸI}Ê.d”-‚Ño,ä)Èe@=W0³ÛóŸ`Öžõ\Ã[ÝN‚ñÅÝã„C ¢¡µxèoD,°ŠŠ@È0¯AÑ1]Z°ñ(ýWrY”>œr ÿ*º¥ò…þ¿£×¹D MÞÙÈwð6J¶·[ÎGÍÝãü¾…}{'«(é#=lv‘ऺ,U5­æÆ­e–Ê«5½læxüIø­ÍIY^Æ`Ö¹Áz=JVW°Ò¬8v½Çïù¿Aß™ÃQOxëãÅ)Ž„aon±vT"ÂÌå‚ $} rw[« TJ| ÀÒ·ž…:µé…¶‘>Ê‘’‚”ýÒîs#Ükb²«$Ù‰â¦%Ô§) ¥¢‚Æ”8Ùy×®- ìaÊè½»¥xUÿògŒ=:¨gyjêucÄÛƒ¾ñÒe’Gñ©Â¡ÜmtOˆ5bŠ·­ð=‹©²º·…@Ń Ü¥œ.üW.]š6'[üðÈX*}’3–,txnü½†3*sØÐ÷lN5[Ê(m¢¯U¸ãЋò©Â ^Ä\RŽü¿‡ÈŸS–@r4Àì=ÔÁ2ÚB§Í+¦]hIŠ«>‘ćÁzNÕèâTHyÔè^†zï‡bxÀZYÅl0æâ«èe+k™ÏÒñ¬ˆ$àÿTšá_^¡™ž+Iô™Sié6`ÙFÛue¯9Lú¯a¥a½©ÉICΚôAÃt’7ñ|ËÃßCeë33"¯1“u’€1Ó#â‘àí÷&x{a”üM)kÄl´üj†Hü…WÔ ñ;ÞtÊ•LïâîO2$¨¨Øûéoúo^â2ÑH’öјW*Š­®HŒOÕS›Lù ³ ·s`6ºÀ¢IÖ`!f…ayíGOñ®öpopû5®Ý”wƒsºŠp†|9†B7‡ð™Ò¸D6ƒ”gÛ‹_às¬©-±ßöíœàWÃ7‡­Æ•¾æ~þ¶ã†Ö8»Û\yqõâxTñm3·³óø^ºÀˆlD‚q<å{¸W¾•<é¥#úÅË›á¨òÿ¼Ûñ¾íÈÍ|„wáUüIÁwÈ…„#Ú?ùRE; ¤áR@†x* äìÊ+7«{«ˆ ÇÁ9ÿ™ôªJh•éhÄ;â¼ÝZñchÃè½?꽫O6éFÉ›¥D™YãôÜSe›þþ·\‹RûXM,Ú×ÀºŽA‹ëìÖÏn$"æ¨x z¢Ã9¥g8E¥¥ŠÝ IG ßdàçQ0™ë¤NOÿRa }ísñ±™ÈgN2!oó<†I?<ÖªZ f¾ Òšâ+!V|ðÎ|ÅNŒ¹ªV·è‘H¹üLË9aAµ.6šK+ ëÃÕ¶3q69ÍJ!Þ'Oó:YæÕ~ÚK×ô ÓñãæX–F^ÏOhóù3ÅšëšB€[Xñw7ä2´ßݤ¼Ðöš©ÃàE6~Ê÷|¾½ ¶´j,¸l¯tfl®¼ºó¤WÊ)Æyøæ›pèߪèý³£J~Ö$võ÷93<îW [` [›‰ê0d¿àY!`&èh&äŸ °ðàúÙÇÁRºÂ2_9' ~óQ(¸p„½öÇ©pÌüLÈË5UˆåwÇ÷ãÔp²âK6阚š(Ýb§ò•Ò§,¡̆¼<˜û|ª`¬=*ÔI{Ÿã¹é/lhÁóÆ ’¢†ÔåPœ0Ãì— âoò[¼Ç´³*ë‚tý®[‹a+§SYèçëÎkÌi¢Ç¡jfåÀQ&„Æ"¶¼¸¡ÐˆÂò.µ¬ià¼j.› ÔÁÈïMàLK:›àv»-ƒÁ©0ìé=MˆãÉìö´dç%Þâ¡á.4o sq!³‡^@Õ$´«7ñÐgiÉŸ.üî4A†ñÄ£+„G–â$ü`ч¶uKmcïîœH3BDÚWO G ¨qÚe)\Aæã†©¦/6ζw«9Òn~‰“ßã+ZÓP(ySMnnØ'Än ­S’(##v­ú´h||pþ KÂz®§GÜsôÙ+8½Eü°HCÅÚ˜AR Ïlä§|ªGg˜á«záú)zu€u†/ŠœÑt˜dðëó˜¡m°ÜÙ)Þàú$sS*’ ºWñJ>ø‰î¢Óy «~g" düðàm¡¸í'…ùøžâÈÔéE3ÄÖføZ#½&(éU’íŽ\Íï r"[ш®¬¢~$¾ê³ÿ/ßTOÉbF±ïíIz^Ñ¡8ŽÎB#‡G•Mª$äy_¬ +ƒÌIèHq°Š <æØþæß¨¢°~ñ Û ,ÇvÆ 7C#ƒ¹ý&(‡•‰¯#û)si7U/¬m§ZùæpØ7Õ‚Ðó™È\ Ü4S®ß˜V/W ”•°Ü‡Üˆì,Cå)(Ñ-ãš¦æ „€üðØlUÀåã¿×I ó¥ẩ0™¹¢YécôÏ›âçà¹×°Ë¬{Ÿ-˜œñk&Ùë{öóE+“bæ¥?ÔÓøåP|pY‚S倉oâ›@L·…Ùñíl¿—§öÔ_Y¸æøƒvÅD„üã{mÎ]däû§÷±ÌášÈlЉ½î0h†ï"í%p3©ö„F¬7ôh µâì2ŽúÏá–9Ûxöˆ¢_Äñ¸tâå F;“)_HdyÿÛäûAÅøD?y÷X|êÀ±`’¤˜üðÔ’4Àñb!èÇFª‘aHœü8†@ ¯÷›óFR-Ÿ@<|ÿ1GýèÀ@³òÆ"°Ì J&d!Q=õ n¬¹[!Èq{Íòå-ê.Yã¯0ïàñJß]Ѳ¨jzð_Í+O‡Ò_fÇ-ÌÍ€€Á%CÏ¥²œnZ·¬q÷9˜9¨µŸçÍBGyü /*÷|¬|]è^éç@½Ciów§bÐŒw[O¨ñšÛÐgã9ŸToü 4¹ypß›×Z¨‡Óâ]ʶYap¥cÄ Ìÿ‹ˆüðÉŠûU™þ?Ðf]A©7·6êØÝÆÆ ¥*Ãâƒj¬n°P”°2A Ãf°e(óEByê —¡;;àzŠ „\GýøŸfHQ>Kß«{öÑ=ù.Y²)Ož›æY‘µé„hõG!ùDCÊÃôÞ¥k6›jšþR`.&1É—h•@B#F­×Ð2ü¡ò,¢ šðE¦m“—uþó6 a0±«Ï¦YNïôÇB· … —'GÙ¯(æGÂ< M×ùWRøÝÍšÿòÜóVæb$üMz8ý_ëмõw’!}¤Ñt±ÊCÅ™tT·„jJ3 Ò=2X±kù;ϯq=Mùâé?m^Ð,• MEeß‚,1 OÓ6Ïåqg×ñ´K©¤qøsgS÷)UГ½õñ}è~žmÚ·žœš^yÀõªËAôþ÷c²^¡aùìygœ)éÓp°¡«{ûÙB~–†$´{æ÷Дd,ðãaSEýÚ¸dMÑ}Ö@=·NP9J>qW«wT—ùšv¤à/”_`ž!l²MØœËvÐz}åü}\A~°_™Ú²ÿò ƒÜ°/r Œ—ï”÷d˱ŒeÐí9º§ÁÆzÏb–•xù@ƒ•LÃV%éþ¡!D­ß„Éi£0P-´û%‡z ¨#ßÛ^«¨¼uÀ¯ßóç[æ7§ôÇ/ï÷ƒÇ¦ ·@@Ê4ç;{,q¬¥c·¼aÞ0ôØä´§î*ÉÂy6øôNvÞÙX»A6ÜøöpÏœ­HËЕGH[R謂"çã–ÐÈcÖ§¨¾4R­àw%m$$+æejÚ}õ›ú[ß_"Ú¹@›$· õñæ¾EÙ““¶¥jQzlì©¶˜˜$ ˜5ÃHì$teá^æc",Õ–Uóñ¸sRúé5îS…•Z5w¸çÃNj\·?‹$¾šXœ-þ€•y‘.6ÝŒ"^5x=ªž¾«©ýi¾ìØbĈTi޳>¦‚GM(‹!„¤Ö s´\Š÷‡ìªÂ4ü&¾ ;ÿ ‚»ž ¬v†ÈŒ³æ(XŽ˜£o,&÷BØòC*8B³SÞSõ€”®­pv*ŸaDã¯ü§ƒÝD/üJ|Àä…žcÑbÖ3æá@@ŠÑX󣫩Ý™Ð9°:~ ,Œ zo¤ÂÆÙÂ\žÔsÊDCŠ ÂRSaæ7Œâh®STÛâË ï~%@A@ÂðÕ÷g¬¥üœG'Ñ'ÓÊȤ.]ýå6¤–ˆ?6 $1ÅM WÑÙsYG6׸jæÍ­\úÁöMUóOWƒÌqüIR·Þ™èóЯÿuoXÑè§´ ¥aÙ·Gˆ÷èçÀÞÚ ñ‰*¾ÖÅ÷ª«ï‡ zŽ­¢óGºËNÎëÝ´Äs´Ï ÒPiZ"„q%RNªÕNI›îÝcïﻂ¶ê–ñ6ØÿGDÈ:I•0DLËi©aY¡ïIÛ`òÉk` '*Ú'b-¸W÷yIõ×s˜?Y @W¡²æPŠ¸ë€ŽÈœ wL–»ÖówiON ÆH†¤i"/_¥Xcî4¹j¸¼_Þ´–¥sW>³þ+n‹-üLåÔ\¯eÆkó)V´‹PM¥$£ºj–*ó çŸEÓFüÆ™äcÜ.öÑfO·±N-ÃqGUØÿ›öÐØ^_¶$eëµÇÖ¼P…†ô‹[ùÕRÖ"wGÈ쪲vawx;éuȲó° ö4¥–U…> B ¢ÚçÝ. ¡¸ï†p|ÛYRƒ~p9#…,¤T¢Zÿ}\GîNv¡ê£s=€âŒ°Fë1:C_|QŠh·ü_ÇÉ‘ÛİH¬Ñ·xÒé,óäßÖ’¾º ]ZŒÿÍb2—Y&Ï7\TüM%éôd®ôB'”ë7~¬ÅK$Í’á…¶Tz€ í­,°ºHmž)q|jšÇzœÓ:Ɖ°›šLÎiÂhqˆ¬#:îÝæN‡$¥„l¬´½¢¾[í(€À©uЊpuÕ€ò×¾× •u¢Ÿöës¢¿.XƒÄ<öçµ?´xÊ$TIu?Œˆ¶«…ZB z"S­¿@2ÎÁ _Б$[×jÉ6šjÑý6–nbšl$¥^[ðÃlÁâd(¨_$ U­ó›x -Õ0NZi¼4 Þ’umÞLÛð“ϲ˜ CüM-ŽÊðÁýb@늹ãY‡$¾ïÁ]}Ž{LÍÏÂoÆ¥Rd*EtÛ‚í½ÆJ¸%Ð " <[õñ“.²plœ̜зuâüÔ&û%‹áÑÛÇA ~Q9½] g0EÞ€E£ùë­ëzÔhèöú¶ô-­1òwPNAöLqT!õë ¸!z]ßÓúp~š‡ª@(9gñ°øæ=l­V~Û2&"º¡–°û\N: û&|yînÅk”§Ìކ¥XX T¢NîŽä=ê«‚\;iù0âÊñ•">'"rßÿßæü|¯¶Ï>Çræl!º—ÃHд™K©Ëú‘b̦eMXµ¤ñ¢éô×z…D) EšÁnPóÇ]éŒÝ¯!—”ƒ‡ë[ßjìIâ@çõ‡Öê¿+™™ò¸ª dvÊ‹0a±ƒ¥kCÎRµa)#wã*v]*Áz§ÿ®Oˆ=ßÇÂ?ùî"·e…_a«»»#ÊÓ®ƒ·ÑØa6ÙK/¹c -yßôo h?ÝÅWH6æÈŽR©Ü„¥öú<Ê:AbG%8JÈTÎeX`ŸgÖÇ}4˜LAqZÛ5ñªR}ï¦o…Py$Ýç¡¶à­ÛF©mž—¯‰?†Jˆ üš–Ð}to î³óûš¦eï¨ ÿ~6¦‹®Îú ûïVŽ*å·ü¼ŸþNoWò‘ü(Ÿ†pO„SåèÆ-}rÂYr©‚/ƈ”†±ÌƒVïw}”ëªßn¶ðÂ5³Ö¬‚×¹’(¹¿ìp´4«W•»ñBCe2 ]E£÷¼3eìýmwëg"lÕÕ_пªÅ׈¥¨ú®V'.Ùt’Á¥KÙK´ˆ¿ÝžOÉ&üK<*C¾?䱤,˜dÕ=Þâà%ë©+κð‰gˆp73ÛpñÝNˆ±8¦Ì¢Á"Ÿqÿ7ƒýŒ˜ÌÁóíêÜo~Ã^_ô$«ÞT'0ã7GËx7bÊ/' B“ Vûì!ªígß¶©È(³¸lB~­³A—4œ@…(ƒt%Ù¯b¨Û|ˆÜÐ,0O¸Ú‚ ¢¦Óâ¹ãÅl«žåòßVÂÆž$³¿­ëÃ#Ù#è£èëUÏxQÙ¬yƒn ¢\QšQ‹.e›2=¼iüMU_=ÈëØáþ†2ðŠâëá¢ÉÑÄŸÆMß“øwò‹K˜N¦ì•«VœV¶øÅŽþ!,Çî<wq72èÊ6Þ®f1±@lçb^Éøç¤ ‹d/µK±Gnó†ÑQ„O ¶dîPô“ÎýÒèäM#(-±WMRz`šÓ莽BSo-{ àžQâÏÑ'Œróªãr [SÒWœ6¨¦ä;awü™oA)œ^N|‰†£‡ ÙJÝÚä6ÇŸïmôAF ºìbxµ'¶O;Ûe‘‚ ¦È6ô¬±°5üL˼˜ÄJÚâ`Υ첛Yï¸X%اÕ&înHÌ‘dІM-ã©»Voʪnœ‡óŸTªoGZ]©™â™+\ëš”z¹/—ó°Ôva8O¢—# íå*^Â/òʞ&z”˜4%¤Jÿ€/”¹L­*%ŠíÏɆr^Z Ó9å ÿhoÇ;ÇoœøÂˆ’¾rꎃðK©YÝpý&+tzBöâ zÅ5 Õ§ñ¤wÔd¬Eè{öš„âi!¯^:ëòÀÉçH ¤­ ‰õ— š9ÜšÈSVQ“õ½Jÿx%Îü®‹×h¬P’1¸ŸáŸÒrÊrvõö³âyE@a¸öES¦‹²Tr3R”…×ÿ$"’)[-‰ZTQXø=­ï˜FyŠÜ… l…Ë.¦ Os/÷ ólf(3Á櫺±J˜š¯Gt}`ýTl a·^¢ª¼.#åПô+`¸@KKœê’lÁl°@+ØØå~·c  :—0X4˜iÚåú€&Ù`bõ "Æ€ëpÊæ ‡'Y!Íœƒ_§èŠ’žÀ´Xa tfËÚq¦dbÂ=Žñ<׈¾,…ü®‘N€ÞýL½Ã¯wt[@¡ÈRšwpo’CEû,•ýŸ¤aÆ»²¸ù4SÐöhޗÀÀ¨,Và™sg¬£k Jø[KT÷޽…þ“BpÒ2+¡ ÁUþlH+XŽHÐåø¨ÉIõUm`GÔŒ¤þ·*%_µžž7°«–4æ‹ï/½„:eðfAògT¢Šä@û5pÞÉm¼ýuÇêl[½N‚&È®³^ócÛF°ßû՞ؙۮÄ%$šË›B8]^µõ|C…;×ÞÀAò8ŽPdš´!dP¡À§Öž{ÔÚÏðyë(+wF-[è1rYö2Ý5ý<-´CšƒÈÕ¯¾$MtÖζW®¦—T¼‹’v3¿XËÝ™ñr?‚zž·IÙéåÁ„ø®Z VBF„ñ(Áîòüĉ8%uìŽ@ôóxaÛ|^ï™:æ2ÚàÞ$Y¸vaå¡6¤¶hGIõm^ôW~Í>ºé–PãY®R[“Í©°Õ7—d‘)‹D¬ŠSÏÖV‹£·‡ÜqÓ æ’¬~ä•‚ÈÌ a7¯ wP¡îûšGÍyOs+Æ®[r¢ÛŒí‘„BW½Nzmæ$L‘xÎ"Ÿt½IX@F3ì¯TÍ?Üe޹üA|'ºO9ã°&]ß²3ÕÖ("c€º¥P-%ys¦ ÖÅì¸má› æÜJÆ?¨n¹šx=Êér$«È­RCŸ%ËËüÆ›ÙÀÙkî4‰KÚ‹üLéIK×a Mš<3ôaå4á“îʈùHå…°ÉËnÛ2™ôe âñTÁðˆÕ饞ÿBâ–wbG·òOýªÓØJ·—röµ´È[ÜF¤Òè¸u£+ÂÉ͠ņq£ó_2ø‚¤5Žõá7å ¥¼„Ü\Z<ì•KY8Aáè6+IÅÆýJ¡ëkèœáG®® ’é)í Àä-O]S­Ö¡ú‰çÛh /”®Œ 40,>Xîu¾æ®BòïJÖx a©¬«×t™kBÓmUœ‡Ô ^sïA䜹ÖüÃÛaiGeNêîv^/ƒü:¥™€BªñÍf™S™’`¬òD]› ‹ÑÎñ™T3Ã:f”µ-roœ0ZAË›ed'™½œÐ qJnÅ*m¹SHQ_„ïx%X$eÃUÀpÖÃâ·ß ÂH-¯®gáU›'á”ùñÜ×Y:ªÓÙ¢0Þjs£”E€çÕ8~Ž/€‚u’ö'Ãå©§>UnþIŒåmW5ÏËSnþèÂäçʆÅ-¬èž TšMÉZäå9‹”~¦Äø·I\ÏK™žÙÕüÄl¨µ¤ëU¨(™‚R"'.Ô ¤bZÚPE×Ê¥îô÷ÓÌþ†#‰gµž8=žæ¡&üzºo¹ó¼—gj½èÚù—|Öp„ެÁ¾¢(í™FëH„ :`žì­­a’?ûJVYÙÇŒÙÌ“î3à,Ý©¢¢0†ƒ͛؀,üW  Èðº&©‰sFbB½5ùjf5儼‡ ùgG}k‚;t>„ð˜öÙ‚$«C #µÙ©: ÖÌÕv‡C ·ÏUNø :Gq{öƒ5ƒž6‡¯’1 ‹ž…KB÷»»×xt¤¢ Ö³ðîÉ^“`üÒ ßGîmê/ßâ9Ãü."Q EwúDì¡ú{OµF®âæä¿ÊW3¦°Á†¹ u“*aի؆ö†¸¼Úÿk`°V[Z7€I~j?±§Dí#½Z,JæZÇ5^)éWP-S\yà‰T ×CëtHb7û+ÐJò±Y8Á#Ñ0“ýØþ‰º0Yþ ³•)í¿r·7Eo»íÙýç ›å† . dšcnTD ®­U18²)7.j¾¾3…@²&Šÿ Lã<EÁIÙ´u_8’ÌÖé÷Ì¢MK_Õ³'ÀPè.Í´ò‘®K`Š¿÷°ò«W¼T¸bç-0rw@Fðü¶GÞ{)­Kb8ìOggS€´¨ä ]§ÄZ7ÿþø÷úúüñôæÛ×ÖÚàÝÿqàØÕÚÛÞÛ×ÓÙÖÙÞÿÜÿTãáßìöèãßéöþöÿ)öôéæäüÛ‡«Ý`%!åðñª íR¦†Ë‹oÄ ÿ¨ 90¢ìŽZ4Ý3ÆŒ!w›Ç,HQ Sù^Æ«:²²3Žp®Érw…a+ª¥˜·ùP% )Ý ï[)wêìm}….Ã( ¢ó?[ÒVT!¯ù.ÇÖç¸S®›'3j¹%Ìž²6€Í¢È/º’QgB[.%˲Ϫîa¥pyGJó`+|bÅ¿‘‘Æõ¤vjCI¿âupбÂäÜ­¤¾w؃Â_GÍ“˜üDíµŠSvL¯Í+ÙJÉ»º¤\ có/ó±;µrEàìÒö»¯q|WâñçüÆfüîFÒbD[Lå:(·5¾u-Má÷T¤jœäPHRÄý·Ö]M˜æ¼+Aa‘ÈÅR¬Eõ¿ÜF ­­¯€ ãÚôaFfÐv c¨‰­‹íNx&æå<Ÿßø2#«ÌÞWwY섲›WN©¥T^¶(½>c€$‰œ—‰`]‚gÐ 2áº÷ôâ½îjýÔzh'‚ßíGÆG*ëþP›'ìð¦?er¸“YfvJû$TŒúÔ€‚;8Cù½ï!ØVyÍKtI˜á&íœ"øÇ¶&Ð}†rdÌÊXÞ!ÀÊÊæ\l棌ÏZØÍ«T1È9¶#}Dö8 üüLÃöŸŒ¼šY!ñì4‡¡dRl’rX\b@zÇâF?w]`L3h4¤qÏŠn¿ZpäëÄ(Äãsã¾+„þ,¸·ªÅ’uû¥#ƒdÕ˜.0³¨¶ÊÔ;G¸p±Ú ˜‚ŽWÓë\ëHÅ8Ýhȶ¤I´A‰e›§Éœ0,ïü³äÏ:~(³'‰{hIÿ4L3ªç²1Ƚ0_Xz1Ùu¥PGfê: Sï›?¼õG'ñ¸›>Í)åòНå úÞ2}Óý¢‚@‘aðyax^w˜mr>µ$Þ9F¶¯0˜Hè b;hü5_žv$ƒ´édtY$)ˆÏ8-NqÎk¹§,â¾+M>ý¢+5_Ü)¬Jd5u^å‹)œG²Cï=ûxJÏ£`41ç(íeš\*UÙ°Y"¿¼ ß\*èã¬9-ñG;A-E…[^ä¢Qs•‹†‹õW3 #oÀlôX¸sO4ãÙ¿Z»Îl‘iš·@…Ô’(£z%õÝy´f$m\ÿÕNÔÜü§Ÿ¹pté›íVŒf¤0Kj›\:ƒ˜‘¬6Aé3;ˆ7Ü1w± `b¯:¾ ƃ“¢V7(òõÊÔ†¦…ÊÉ]ŒVÐmß¡«¶êïÇüIù|j_Š\Èi¼*eqŽ0]øÊ}ç*IßÝHç• ¬Âœ¹r°Zì‰uinÆãŽ ,m´Ço<~‹I¹_vd6-#y'vüSæ&‚]A\EÂQŸU%E:½ nb(E½~¼hõÜw·dAüÛ>Ã¥ÜÚBTÁ 5[—ï’Cí[¸Ì0Ǥ“hr –AÜìo͸ùÝkbåˆèp†<"ç`Úõ’—&TtÕ¬»¾ì*…¼TÕrp?pFíwYÓÅtè¸Ø‰2\60aƒËn·IU*ÛÝQÎÃ?tÒ& ‡Gö†\9>œó´h3ivîk¶!d€miÀªüÆdé üªøµ«Ggºö©¸¡ÎYK‹s«jÁ^é˜z×OZÀ1qê;æƒ=ëÿ¢p Ðæ }œá"·ùG¥]¼ÿû^C‚$8v Zͧu.bÚ†ÚÃ,F®…)Š œªLèÆùzTG'sg¥Ú§Ö—$%ÏÞbã$v:AºŽ%t2Ífá/ïÒ „Î1qV[uåô8L¸¤ßÜC³|æòëz] ½ 1sŸIòC]ÀìAÊå}úØ5¹P(üý†îÏ0‹~È þ:×vR8¤ Q‡üL¹ i¬I'¼5‚v ywKº[¶ËòÞãÌN\‘N¡÷ÛšNQýýu¿fÚ凊YÛ2w!DØPßÜS@¸SÁ…‘š³¢˜‘Chò'þᇜΨ1lÞ/†µº Z9n¼ÊL ÄtÍŽm[RÅó_ )*Ó”kJçLòuýîçý¾;¤j‹¨fþ‰ø²óø#ë­nÝâE#˜Wæg±)‹MŒc-¨—“[uÕ³YGbÚcn5ïÐ`³ˆ–6üIÔ~piPPž”Ò"Ÿè9¦¢—Ö ÏYrâŽ?àƒTk»—Tºú:– xÐmÛç"0Ä"m5Zöo-ÌŸ s-åõbƒw±%]Ŭ£©þ¢¤ÆæÕå;Dö%4̧df/¯LBüX$)☀ ÐÏàÉbo ¨é ¡€N Glô×øÞr>þZ72#ý)œl¿ˆ"¡=ü?çüQô´Ò¦¶Mä^‘Ÿ;Í–à©íÂq& ÞKí‡ ,;Ò¥ Q­˜¯fqÚ\£?®jbFM Wl=ÕŽ~¡Šcr1´i›0†Gf9;@l…òœì@¬%98-Ùpɤ@tíÛ% d”†Êw[—1tMü/Ø>~R´#óÂ,ï´É*=]9ø)/§[wI>¶‚ †ÖþjáqíL¥€4gìË-“`™2X L$Pø 1ÕkÔO*Ë×øô0Ñ48'æ†~&„j‹XÊãsIÐ0ÈO%K‹Ny·Ç¶lÕ§Ê È›£¡£–uZk£¡4,xUbÜüŽ×î|&%-§*ÊŸéÃá#Ž¡¿ENbY]$ÌŒ¡ÄM·AB Sòºªœwï-9}ÎVÉ®š/6 ßkCÒM°˜Û%’âƒÔ*ü.OXIÅpðÏ%0 ãÖÀÕGn²ní£#òÙµ•jÿWqk4™´tDwO ¿o{A„ǹ6<žv”¾óQ b¡™ZÖpôfXˆ@Œ¶r¦-I ;ùðH7Þh:Z”ážäd·±Û•³!³‚4­bÙh&Î:æ¾Ï§–D¿‘¦/¾ü¯pŒrÑXÿƧf<69ùõö¡íN¥Æ C·J•VO9q¸Lçv(ÂjÉwöúpgɵûI¤šå÷·I;âkd/˜r½Zü6ñÆ¬Š¿5‚?p ä–})ƒÍü/‚8d:o?'Ô6·~©ï¯AÊ­Œc¾)3ï¹ÏYÿÇžÂÝÓÜ?Z@n°8òØŠÙg‡„¾‘å¬XJ©_³B“¦wÐîm÷€ÞqEz €ŽåÄH&D»Y®]ÑúžòB`AË-¿÷ìÉôeÝÙ å°ŸÖ«‘Yu‘Y5WU¾ðìP%Ap`¹òñ4nkáo„½©§/(„_4L·ˆŸö¶ŽÉ;€„`Ò®éÉ€RUo›»Åsî\L-‹e˜¼“Aï—Ùhm–±® æ,Gt‡tRËÏ¢ .tü}³z³¢ö®–äföú¶>ÿLÜŽúñãªØnëÎ`™5qÒËìµÀÅȶ.øˆ¨s tº®Ã^þtr}ºWË1móV#ˆ‡Ôöu÷ÁÙ–tOeü†h8wr‚ÙV-¸‘WÈ7»þ]®ö>7†)lÕâìÈ¡j¼'AÙTjèhð»b¨ ³NAÄ,ÈT=È*F{ùŸGÏÖÍpÉ$çë¯:}QJðá €ÞÙžã—ýoLJ¬Sá–-~'T›Yë z±ÆG~_9eL'Íy&ØBî Šà8ù;Vj:w-?sÜ›øçI,;¹£åüw O~OphéâD?§ÎQUa`QÓíÉXª§>ùÆÍ•Ÿ܆JϞǒ õ€Ñø> ¿X$ðpüy›Qõ"ÓâÝÀ#Ø#’ˆv¦8só%TùX"¢eë$À…jsU9×°,TÏ­aØO"O8âV*tqŠ’ž²Q®?QÏ1ûHy =F±ü5Nm €fl 6ögö÷PÒƒr ÿñv‘8=Jay¥áÙ^G릃¡±ûé|ú‹¯8âYŠþ`¸bm(éÃ%u‹§Íé°<†gG©K.žÍp“¥¹!† °€RY‚‹]ýŽÓÁãHZ/ÍSËc¿ª cBõCš^Zß·:mµsÄ…çp³â dÙpvÍÂp Yyâ1Rz˯Ǥ:ìòàPãæº{z§œßäòjZg+¢µ1$só3\8ºsÁ tßÂYϨ†Òk‹»˜Hß47f[£LëôÚ×Iú.·üL¾ lîS$Ö-&a²;Õe‘ l'á"Õ†P×xHÌpEo˜˜×{iÒ¯¨@)¬òüõ‘ç`™µqüf èY9t%¸Ù$ÒÒóTQ_»屨óÈcdJÒô1&­Òw«Åw¾¿ÓØ7Y`Ø_ð½î2ðËÝß%Bs‹ûÕÁƱujŒ½€ä·ò–ÔÂ?b–É÷îmÛÁMÝ+ìX)¢ó×&`ìùBBäEf4@/t©"n–,ÌTº\¨ÛÁ¥î8Í-¬Cˆ“Çž°AtÛüLïOÌ>÷]Z÷çT$µ6Ìè!j›”}©Z_37Ö è-©˜N·YÎÏßsÒÞùü „–ç{’¨Ž0¶P¾Ù,Ð~-}Và-I:Qî æä©V+GZEF0Ý¡Êå.ï]ú…¢ÉH“‡;w3.}7|¡0‰òü¶'0y¢áBâ“DÏF—–¥ý«‡Að((NÖÞ° mÈ4£a¹ì¦þhZjO7]Ýcµ.QvØ„ Ûô%Žu…wêÒ šß+ÚÜ—[èmGE¨ÙŒdй,ÏüMd[Kž7™oÝ ßN sL¢{-L“…²z?Ê ›“}¨†#-ÕRÄÍ»f7„,.º!y䃛Z£L  ×±]K‡û0KmDÝà½ßßb1ža8Ú‡`*u`P&Ïét“ú9âí ´éšÆ{ü.KïÛéͶԿP%þGà‡A‰éx£Å¶N ¹8²tR!{^ÓùÈ1S°ýõ$Ü <¤_À]Xyŧã;ñ,‹:¯ó)ÇÆhh›©€ä¯B<½ne’si1?½^¨…sµÙÔsõsQšÔšÚŽHäïC]D ó´•ùÒÃ)^ÉŠ¢¦Uz:$j8X7_õEoÆÏ6 $Ø`ÛO–çPÌ­»©¶†c7Óëlë—‰\-k{&X¦ŸD<ÃÈô(G1Ç©[NÏ£¡ÄÕÛ#(Ø,1ÌORKùüXþ³y¸U(÷š7ôÄèºÀ–oƒnÜÛxâ‡ç”x ¸V‰ ш€ùÙÐ _ ý«Esùz3¶$¯ A^¨ê­Ê6ãt;ý·AhF¿`Ì:xÖAº”‡©üDcÒ™¢t×,”‘×:€2¶.vÄhqï&Ѳ^v â0ŒV%޵­Õ:Æ)&É;c‘Ð{+uñ˜–ჽãÊ­d.C?löÖç‘áŽÒM´Ã9Å@–öÿ»,ŒÕò(×ãñŸs¾J‘4ó¬,‚V£þ¹±¾à¼øüL¨¼¨ÄU.4¾.6ýa¶Ã#ú®Ï×[ؘÙsL¥ù"©DöáfÁ?zÂÌ€dJ…ý/ktoëÿy©¦£×\ubàr|\1°ÁC³¿ÈÌg:¼KÅvÈ×á–£žá Ï|Õf§6ĤNã¯$ ¹”á¹çãóí9é“8¿D¶é%”!‚Z´ÊÈ©8©×U“[{C1e8P ÊO ß18°gÂls1I²4EnGúóæ Éé1»h,jb+@¹Iöº¸I"=œ |¯mswLH›3`[Ã;–üI‚ðž*TC ¸ÙëùwnÎo|Ö@ÏǺã1‹óYS\)³\}@½óŠÊ­‰ô„°jéHþÙ£ 1î‹gÕŒ¢Q÷N¶'<ϧµÆW¥æôi—eÌ+çJß)ê­“jÆst2¦Ñöp4}웹WxÚ£H@*w4·BìŸ4MÛÀó4l3TjD¬,szß%Ô€¡·CwwË/CÇjGÎéešquT„¸ûÙºŽ x?¬pI2¯­b•]lŸ`RHF8,üIý0 ¸môãhݨ*cæÙ†.mëA&ó>O´å<ÿK Ü ìõÛ³f¶BænrÒFx®‹¢8Ræ*÷ ü¯ÊwFó~ö#DméJmNåЊYHA ›Æwh± ”˜Lì}Ó¡=ŠsN²K$ÔþºÍG‘ÚMX’> ø›MûŽqŠÃ“ü§j‚ ºÜŒÇFÉ"¼™cš¾»ý‹°¢F‡é•.(¼hÍÎ2Qº“liv'>mò¯ŒÚÄ»þAkÑÖ›WÁ£›Ì‘yõ£ÃGp˜üL¼ê ¦¸é…MiH½$ !ÿé# ßc“ óBkn(Þ/ýRPÉNò=À2Hß çÒø»ù¯Ò;ou~¨ŸÇo½¹õ&~I\ É¯ñP·æ\Êh mÉp«?Á®ÿÔz4F"´cÆà4œc=èx®™³x ¬°ß¬U¨ˆùÃûwE® Ž^.=vžñ‹Þb€ÿ"ûŒj—ûÆF_9˜[\^+ÍaDp°Õôè¥ÛŠXA库Ä̱^1‘r“´JÍv±Êdû^s?\(°¥cà™üIéùÕè…í¤¼].cá:اDÙ…7C8é"z!rÔˆãCd]½ºi®£4óç.,¥á³ ͵E^ðÍÑtüïÀóB®¼#»‚;ó˺±=Lt%²”sªïãP%nIgø<¦aUa þˆýÉô¡D[>B3.|xBGïë4Ý^«·E(g§3¢ÈøËãßÝ8ǫ㷪÷I“”‚fY2Èögz©QÁÁ#ÄyÂÝ"‰Äȳâ¦wªT½Ïx‰V¢}­<‡Ø³ò4ÛYfé[ð"щüðÔ…î±%(Yç´*i¤Sk–Ših‚_{¸t×fB㥦ûò¢a‰EŒôù5áT/Z6&à3ÖàI¹Ú!ÔQìóÐx‰3±tV*#ö¯~KÊl»Ea†¾šÖÁš3óÈnž[™FíN&ó"M.ýÓçÑ;§€L‰2¸£(à„ MŒ~÷©Oï)5wâ(S9X©Œ‰Æy"*„®1'îØò¬ýnk‡¤[‚*ÇhGmDœŽâ Ÿ†ïÍÉд&$ –«é¤®‡ '„¢´&†Û3Rmm2ø¦é¨ˆ¹=¡ aj (~ ÃS kÚÂrÜIk3?ªV4 —_’ÖsËŠ¢½M¯ØÏèÏdl$ka£X7Üëa‹«‡è±<’?‘‹DÖMÌО¼°“:Y¿å{]>žfZäþÑÃld‡_7…úN€ý|±k6ÌÖn¸<çW}ý‰éŠÉZ§5|¥"¨ƒb»¿õò@y…™þ²cQ)7®K{§÷܉WKÅÕ3øë ˜X8º¹EŸæ“ýîݬè  Êày½Ú;÷¶´uû±¬ª" :3Í×ã¯ím)åÿ%^&š…–á«"Îg‰áçâŽé!œ‚óŒÙ¸ OóRA–üŠ`†A)ß] Î…¹]Tr*ŠXå<Ö>êr ã=®yu§Åjš¥kJµ IšËȃ ¨Ü诇MÈlü­R6máڮدzÓ$,6Ø­‚ˆ(ñ@•«©®™¨àRæÞ£õ„üJ9p°_ÍŠ»©Ôä“«GÊ8hÀ¨—Èõ¾‡Æc‰[aü „]$çž|‘(;VâânK4TJÃäðH­õ*þ炲pøÿh€w¥Ò 3JÇa(ØNÄd¬K¥Ñ+">å!*‡åÐgç®sÄ›º9ûmê3ßÖ—yÆ¡ÙMNË©ÒÈØå[áÇÚ\ÉÍÃȇ8Bu:k(àܰn Á8+tó¡/°Çs®ùÇ CW¥Ñ6~P[‚1}¡ðð^¼æï„p¹OqG1mq&)M vW=„-ðÌ4§+—5È/„½coü"üÙüLªHõ]бìE÷"kŽI ¨ÛZ8W}ÝðIÖRÛP‡-¾£¹0[˜á˜hƒ›tHþ‹8‚*'9A(Š– ÒtUì]_ˆi5k’|0:ã !H˜Ÿë <{ø°CôàÎáâôÏ‚~½8óÕ®1ãP·g&5«þ#‹ƒjÄ#é2JÄöß‘Ö]˜€­”ê• á °êœ¶SRmËS"¢¨BWÆSd´BFÑœ½b4ä‘‘Mù߆ŒÁõíÓüõéIà³ûƒ@úì.0ï~ùö_È?v;0 Æç’“0 P¢ü.T®°~ Ús3NíråÒ–mZoúöà+‹2X•E¬jOO[Ÿ(×P ‘\Ÿ³®Þ’² A ÛÐÀhožuêAy*7ع“‘±‘TØÕ&’UÉ,¼ ¿„Y¬Ó 6­ÉžYJ ‚Þ t¼.ʯSN¶Z¶ÄzÝÈÂÉA(›/AªÔˆ6iMŠ¢Pé¼3<¯¥¡®]Ý'Mo-³&ì°Èðü¥ñIŠWm }:dQñEÔ-S~GÊ)ðb/΀UY¯ª8N=½r¿˜¬wnðÏ0]nwê! –4‰Ÿ-¡Æ¨æ°;;{“Z¼…»ÀAÛà I=r퓟ƒ#Ëjem.”5ÛüÆmvjÊ‘Õ^ÐÀ À¹4N™™2en; ~ßåßlêè»c†åþF’xqà±ÛQ&Ã`ÊŽl¿)$™…{çÝŸ/½àÖ·WšÇ‰ O5=¤ä úÑårb…Nˆ¡~Ë!?8cðë—ÈÈêO©?WVÓ7 ~ËNi¦áïRüá_‘ Ñ<>3†ì})·C: gAN@ÌœRÓÕ« -¾¡ªÜw#S’”­ž˜0óìn1Iy'óP†Ó@ê‰õìAêñê{ýfTTÊÞ£<=àO‚~™mP`¬'±– +‘ò¶¥ïB“Ér°ŽB×â4 ¡éÃå%¹ä“ ÍüÄF»¨8ØMVÁ­PgiÝ妈®f(56±OÊØ+¤c©¢þб-q¾$$gÇ]s‡Œ@—Ø,°`§·c½){ÿ÷¥(òñUœƒdÖC#~Š¿œjñû];¢.y„àƒ,]lÖÔ%¹ Ãp-—=à—›ÕDÐíU cêÇZ‰ºBx¹Öø†ÊJÆ%Ý·®˜1,ufÌônÑ¢CSüBJhq>^'†ªžtAI ÙxÛ­Ëc¨L­ÀZ7tqÆ_fŽèI«ÛD\ÎkªŒ{2ÝÌÎ#j±G—ø Vß¸Ê ©q|f%Ì ƒª,Ù´©5ü6[è,òi¹¿êl¯ÔºŒ_Ë«…ã€G‹( ~K?ÝžZS”+ÌpàY£u¤ø0a0Dí»&©o^Ò  çf髺æÚAé…ÓB²Ùô´»Õ<Ør=$SÊ¢ŠF!â{Èuä£Á½Æmº¯¡‚äu ¨›kM¿*)µ—£@[鯜úpöi‘›^Ӻlj„FðR5ˆŒD&t©c9ÇD|œG.ôd…pe¼‚0ôåpûÛ76 ºTQ »A¾YRNìn Ì^ñ%ô*…J0å†Â—“½vô—YS/@~÷Ë ÿúó ÑàFõ5å<¼á7Iþ®9ÅèúOÀƒß˜ Ý6ÙEò‰ƒ“;ú'60uXÍ¥¥Å[Ôeë’l4Ó’ÞT¸üX±‚]FÒÆVÆ¿:ƒÁÍš”™n@Ÿ}$²­ÇûÛAšî&Åk˜ w]Aë¥êK»˜gÿ$“25ÈÛôàÿW\L3»‚ι&Cp¿Q Ì't2È'rEì–«!fû€hâ5’PÉÆÌû`€ÿþTÇzÏ’ÄñM­ùxŸãuW±ÌsÛŽïsgÃÌ%ZæSžl̤ׄ³K9à‚ª®J%qȹ¾uP1Ëxp°~&ˆNráThÜ[½Î½ð¿%'Z<» ·mÚ'÷R5D·ì/ài[hf_]•¬€ÓÒ“fkC…\¸¼O¼NöG¥0 åüJƒÃ½}1|±XÛz¬ú}±ú¶«y]§O>µFO²¿§ùrHÇ"¯”àQõâK™X(Û”´ uxzûÄg]p#/}•ßpž{X|zº¤d©â&¤« û1ìlþÀ5ŠM6}Y;phÇlÉ„Eµ _À›,uü`„ÂÈwBé­èöøJç☩5(Tmݵq<‚é9/@, z /ÞDÞ×÷kÈõß"ÇéÝÄ»Ó_œ‡ù/Ðà»ïdm¥ŠÖÿŠû!žÕp6ý¾‚L±h+úôp+¾p×Ð`(}š8óÃïv€sÄÚͦ@òòÖÿ¸? ²üIý+W,IÐ\꘨ÂMZÀJ0ùDî"£·Ë‘– ªñ…ƃ(wšIõzZŽÙÎU!pý„Ééó¢¯ÿDî°³¼²Òœ¨\ƒ0+êi§ÿº9J}®r©(&%ÿX²»¨J˜3`Vª» {ŠE?iÒÏT†ï$¼Ð’[¶<‹ÿíæ­)½‚ùìwEå´ °(±oöý®q—h¢p/Ä(œ*Ý —µÅdÒ˜“¾W¸À ×?8 À90=b÷·ã°nÉ:Æ}ì¶Ÿ3>Ékñ(ŠÝGº½.r ŽP&8šxáxüIý:kÏ “öƒt±Qç»Gº‹ý-£à}¦Öà!ÓX³R¸Ph{©– (=oÞl­ s"dÈÃܵœØÍ¨LtÝ‚çrÃ8b:¦9!O‚ …Î8»g@ÓÈíÕ‘@YƒˆP“ B\[X±.ž2íi¬•§ý‚4\ iÃ"Ê“«“Xs˜ãR@[‚’(¸vã·'ª&¸ñ%ôß&ÜÛ $`á„ù^&…ÎsU ÄŠûýndœÊ¨Ùê;–ˆŠõžl¤ÇÅ–S´HB.>¢ú Æ1?q&~IÒ­]LxK™•:üÆ(¨Ô2®Ó¤“xgêN¼ÐI4ö “Í+œ†Ã–i²EmèEEÆï£”2ÿ3§@÷Ü ´}n±¹6ŠlÛWc,¯g$Ù𮯠Ùiú÷¶‘Gêv:[ÖÁ¤¡]¸R–€q†¹ÙŒûuJÛÇ–ŒM=Æg ?1U<æš„÷ÂÜf«ó´l½~ÔŒ}~wd¥„gЧƒ,= Šƒ[Pié[À6–*ÝÌ9øaEÛ5»¿§à{*Ñ…ü1hãv×þZ­¬ÞoAj§ñê%©VFžùlñ-:½‚0XTÉOggSp¨ä!’ Œ78åØÞîòðíûÿÝÿfçÞÔÞááÚñÿþûýÿªÿåâæøüüðúõççÞÛÖØÛÜÝíðëéçíèÿüL¾\ùÛ.† šÜ\qA±•e¸(Ú@”®šØÐø8º1= ýˆ&š‹¨gݶx ø†«n+ë,ûO_¹ZYUlXÏ€¢s~‹’ß "g‚2 iÇv´(Ù8ÔÀšUMVÑÑ“U_ó¼u;½&ü_L*ÝÔLr,.nˆ–kÔy¤EŠ\Íò9…¬H£&8„l0òWZ©œh z³ºC0TQ†É8OaGáœhû¾# T ˆ@è¶±–¸ÈÒap¼áæýw€ùºX°‡œuÇ¢õ\Jõ}üWN@åˆa(2®—˜ÎâÁüL°,÷SdQmö9ãFòü™<Ôaô‰$‹Oa¹1蟹ÛÔ-ËÆkÒ“6¥I!;1i0“eÃV}ñm…,65ïÌ=0ëMþå,±|"‰—H|y—d#bÕUOzýr„{¯z©ì ¨—u™{¥¶èöƒp*v)ÌÕý’¯#B¯-+"äSE‘™ˆ kÑú®G¬1¾:ØqiPeìŠõÒà@2/KiDàyz‰@S_5¢ƒáÜš^,Ň%'\¥µ§ˆk&·“03ªƒ›™Ï†xö;TBÎÝë(˜NN½ŸŽ7P¿M•!‡¸¯îY†Ž!óÅaàQÏúü1‹Ø­Ÿ]M»;Æ©‡•+•WW× ç7ŸËzÁ0˜jĈ®1­p—Û= ú¨¡f2/¨ý9äZ8a–~_H0ö,cV¦,·í6³¡‘DÄ­¨S÷É)¶:.@Žù)‚àZlºJn%NA%ÎðT*)¯8Cúé€'%iãWÎ|ࢴÏd¬YùS¨±µ&ŒuÏ;Óu½ŽŽŽ¿±bŒoXE©rïYì„o‹±ÅâCôЂñ;{œ£—`eeš)@¥KPØ‘²) }µÄ+LÇS™©?@ôŸ‰€ñ "ÔȬ¼HNLÌÑ\?ÄÐP¦}üM.Tn;öû»k°¶e9öéHÝÍvï>Vüãx±æT–Ò­MûŽÜ‘Ãû­Ùœ½Á²(CPÚ$%ºY'ª9ïˆm†`(›– ÄjåºziDÃ:ñoÕèŠ$T•“fKº˜F­ IúŒí€û$.åx¬¦s‚˜ktò½~[u1©<¶ïÜwUˆöÃv‚ÿ¢Éáp5ûõ>Éÿ›×ê¾âÊéxGÐMúÞ2¶Ç0Гº¸+5%XojÄz+=@º’5ûbóé[M#ž$WW‹"FM†h^ðçԚ]™ëÒ|¸Û…ÅÆAüêGœIü0õ‘Õÿ—-Ò,ý42£nõ6x¡ƒ ΑÝX—ÈN ˜7´Õ9ËÌOÛó€T«ê 15ÅJD¦°½YIƒc-!oJ­`Šef: ì"5ìâK@Fß [ËóåûÝ(ü2Â8lªg!„Èÿ®7ŽÑ_¸MNÀA>î";¥Zi “möw)Y³ª ¨F_í¼ìœ€‘ï¹`°o9(‹‹­7'³â ¸®[Š$èÿÏ?ü¬Ó†ŒU~·ncEÚ½ÁþA˜¼Æ§jɾRÜÎéH¡ž+ó¦ÄéÁ½wÛ§“@‘pžRYÆ U\üÆm2ƒü¿˜ÏôËÆÏÝT}³w÷ÛEßó¡+9qÀY®a»>örÿÞ <ˆ¬46ø˜_SIŸçà{J—ÒeTƒÊíþNÏNçJ6Fµºí¹ÁFi×í[ɹ²Ï”TC™Ò¸¡Z‘d‚ Ïs!Úw´BªàFºøëËÆZ@Ñw òè®çœé‡GF…™²}§'Ÿäª&fœ®{žr.á:¾Y/ËØ;âÜcn³é˜õœLëý‘5ƒgº'>‹ÊóúîEZÈ¥Èî¹%…± kôj·äWæì=0¶¯ôR–ÃG# Â4ñÀJŠä,ƒåzn*„ONŒk¯"øž½´+b”§àÿê‚`¹±< Õ–˜¸/ÆÃørn¾T¦IÆg‚ ;û°ö¬BQUH “*>‡Aº<à)úé–êf¾Úw¸ 7]fkª§µœL1W¬lôvöI-ÇJñàaô$—Ý"²Zxɯ2µòË‘ éC ”®cca¦!5u2ÎlLk —Ú­ï\îɺ¸’Zou絞5Qª“jTˆ’Ù 8”t½nƒ™Âè@«s{…Ë÷˜'x*ü+※?ƼéšG‡’/îOQ&ã9f¿`”nÆåÅ VfÁüƒÿKõ–ô}è–ÙZ[Û"‘ò‰fåàÒö …p–“gšSœ^±OF­Öß}K°>uE¥i­&p¨Æòü|©/©k™ŽZs’JÿO@J}ÅÕr‹oDì s°q…°T¯¼‰ÎÑb'gÆÙ^r?„rð3¿ÿ ôر÷@øèô±ŽèsÓ\§¨O ¹KÂ*x<µüÐH“•£^Ä…ÈÁNgXµŠ°û ‡»8QÌÅì¸çý¨€Ð`¤]–r—tìñN·÷#É«â'î›j(êÏu¤,_úð«@ƒ?&f-Bü„„ B›§‰‚Lu3¡sæ¼+ÄsM5J7ãQìÒå¬A?Öç»+lŸY¬ !¿(ñ¸'ŽÚÃѾÔGfï.3Ï‚¥op6åŸ;5‚jH³Ê;° dÉV_œöx7 ²/+»ÊjÈÎFš•¥oŠ7ƒ"Ý}ô®¸Ár…²ñTã^Û¸"–Ì”ÇÙ;Tìyå!‚h_N?ü¥¢ÏpMÅX«¶Jk–êgŠ|àŽú¹AwÎç/Î ¹sºgM‰ÝÈ?þ9E%ΡS$T§LŠÉ|ÓÈ£öÖáo³üLËa;í8¤Ì,ÜÑ·„Q03òß«z&©¿Ì @@SÃˬáÜ­êáÜÅ0ºeâ|Õ3On~˨»§çxÙ±Ýyc‰Õ~¨ÛV~é¶1ÿeÚ Ôéɿ׌ødׯƒéÞ¤ ¨º(óÎßɶì6¥!²$³XÔw;ëHX›‡<ý@ç‘™e‡Üã„h“´/ ddF £“ÿ`6¯ž~e\SfD˜@¥~„_&ž'öÓZ4âö·ÌZ.O»^oÙlzŠþ"±®±u^Øù5üM JÄ}O·îŒCÇǪ*çUÒZ.1Z¤—q}\Û‚dS¨L'v˜¸!›cš½!À"©l+‘Y<åwÏVüd¸+ùBgMØ¡íĸç±u˜UGï^w¿±åoä?^aÌz8‘ÙVڡ@Lhk¢kY™±?5I)H ÓŸs­u=OÏ÷Ì¢Hσ ¶Üÿ°g/qáø^Ø©mÂ"D0ϯ­BkÙ* ‚Ÿ«(Už•:±þâhöóFm7çÝ…‘xídE­Jwvw4‡ŸT«Š âÌØ!ü.L>ûØ©àûáÔí;!Ÿwî´×}’»TÊí³Ð'z‚7íg+>¡‡QÑÌ!õ“1 ʇ¤Å .DƒŒÓ1¤“wk¼˜öC™ ö¡WõGÎC䦶ÓróOƒâ°^‚k寋‚¥«œn´ÙeMǹô‘‰ë+Üé™»¨6%”‹A0}*AV¯ü._Ñd²Šñ´Míºõm¢”ÿN‹ï§qÿµ_¯“YIqw8HUP%½zXWfET‡ú9àD‹£Å]@«2J(bÄ/äFô†âäÇüᜮ£Q‚hª8å%¨®áï%þ~Ê· û²°.>þæ ³€ ÐøäÅgÛŠBµßÈZŒIùXû˜zýši¼åçÁ(u€· Ó $žÂ;zÒÎM=]Øc3dÀHô '+=ç=c4ÓÄìœ0Þ·é„=ò0ŸÕs2FN ¥ŠJß’—Úç?•ÚP½½L>OÇÏð’^ ‚±ÏºÞžSô”üÃÓ “g±p9l4PŠìrwß!Æ;¯¨$&]j ê5Q€Ù9Š|xw< ¦EVKËZ‹<ÅHŠBõÞÏxë…ìmÍ}¼Î ³ƒ&W¸Dè ¼ñéüA]Ò\=L ^,˜)¨‰I›Un£EJiæs5Ýõø‹¼q³Ó·Ïº[…ë»8B‡ ×+€þ Ì\ƒz¯õHŽYb¤]«ÑUªÖ.õŽ96õ’Q^ï H·»òÒ))í;?e½Úý’âÅ£VJï-Ù*µ¶ÊpÝ\pgK rdš†ÖëY/K¿U+D¾“õ“üÌà NÊo,Z—šJLvÐý´ªâ×K® Ÿç0`ôíÌÌRcwjV*ɪ²UÞ4ט8zÂ[èKhp2¿ºzç<³Òz&TÖ§oß{– (ŒÒ¿í5$õõ®ô]"hPý6:Yü¼XkŸI>M¤ûÌÂRä-O±xdö“ôlDÅsÝke¯NYr§íJ׿é î³pbÊIu(Zã xPsS¼ŠÌÏ/wrҤȤw”:ܾº§|ËŠÿæõXª³w‹Pµð…ÜÈå&³N–øÞAÝC©Óy°…ÂrÁBy› §ª“y ø]ãØUÒ¯Š§±“ûˆkœñH†]üÒ?Wç,*´~™>q·Á ¥¡Ÿ ý,ƒ0;ÔD!p «AV ¿áÙ£ŠAJ=Ê×aöô.ÖÅ®‡›SÃêß Ú¸;3Ž}àЗ†Ê€è Û¦C»n C޶:3Ü\PÜûÍ>²9"Ø›H` ¥XÓ6ìLÀ]/s èÒ5QÙ„W)…s Iëðû•?[b‡DVè=òøÙÐc_7â]¾Å aCBnÅ”U'‘—f-®)8}-¸\æ© Ñ)ˆ:D‹ðãfÓô (ËG‡˜=xR¶K¼¿d#†õ“°iŠÉs¡.p8c¨HãzüÑöR ’:Kåþàõ¦*D~m¡)P\9!¹%VâÀÿõ¾?r¯óæj\pg l/¥ „ž%uÚÕÏús³á?’¸¯?Ñ(uëÞ‰Í8@IXDù©á£€&º! ®9üýkÜÚÑ 1ù¢íþ·ñ™y‹{u$Á%äÓ­ó-p×Þ/Ïd0ù;ص| ±ä êS^IÏ ºÇŠ\¿•HKèðÛIq‹”zÒ_?;±¨»ô «*ËÔã´´Ýè@ƒÆ11ÁKíÚºF¢kŒ¢îƒUü Êô¿o|øÎÙO­!8‹ÂÿÏ7Πi¨qBá´lM„ôp¸_=²üÓ;"pæåz>"§æ}ŽTlÆÓ¦ ñßW5X>K®ßÔ¾™ØZj‡Ù§é®.õÜ(Ûpì;x¨_©Ä79ŽåZºŽˆü@xP)pã•€]ü€ "H&wœÎÄr,)2è1j) P9Ço¤x@=úÞÑ^ Ï"õôÅVy§ö¹ùkûÚ¥z E+=u±UÐìÐ)tì¥!îµÑ>¸Hæ™t‰ðÔéï•ií;HͪÌÿŒq‚ÞpuãhgtW¼|çX@ ¼˜¦å«Èá(E^aä!HWK‚(Ö™û¦”¬–YÒI?©!Ð.ü„Èù}Õü¯¦›gï;èÉq–îŸ&N¹³›u)C—ûQ%wÆŽÿÕ1¯; ÔN„jÜ®fϪ3áæ4M?Õ›b lk;kOÕ6quR*åûYr}ÏpØÓ,¼†VÈñ6è{Ïp%ן Qà“Œ3f»FèŸü_°ål¨Ø'ãCý`qtƒ4.&u7bl„Ò\èê\s[Eh,Ž9üŸQâøÀ7¹Õ^“ô™¨CûŠãùÌ%^ä¬Q•mjƒŽdgÊ5˜ÔŸóÁ1ÌOd£°CÖ&Œç«+@Õq‰ùù(6*U—ðWrAe¹Í⪹uQ ua³JžÿÀþ•rEpc7.¿>ýßÐ=©ÖŸ2íŽÀ€Š©ÏSûKåkµ´ï}&neôÎLdz¯@oìÙ‰Ÿ~é&ØÚ\Ô[ÍsvŽwáG¡ÖŸÉ-¬{mxyÚÖ¥«³26¶w…Xôž‚\ðôäKÕ(?¯{ïÒ§Øy@´®ÚÍT@g»ê“ÝÂv«h8X“ÿ°"xöuI„Å¢%ƒ÷餷†3¡Ã}ñ²h‡nPíµôƒ¡JÒ -˜üNwT¡b¿lYéš¼ÍP˜*´'Y‘1»Æa¿B û° íÏ «ºx¸U´´WO¤œY©f÷ýx§Ü¶N ôÇðMÑÊ1DÜ󈌊.Æ_UI¬Üˆº¦ÜV´¢KxÓ2’5 „Ò%ËçÛãÜþ96C2% DŸtG¼åöX~º¾ý å)ÆáËÔŒ3ë\áàŠ4ÄÜ+*ï ‹ R]"ÚMÄÓrËãT2ªâUKF"òñ¸ä£å=ÑÙÚn@|DK?Võä;˜UlY©Ðò%W ±AËoc³óofÛN¤ì­èH•rnO—¦–;¹§a‘Ì¡@ŠmëÝp‰zê×¹ÛŒJê±³V±å£FŒ{Œœ%x üè‡mT÷ç›B±?[M±õf7Ü´Þôé!~ó`þ}ÞdÜN¸&¯oŒì¹¬ëAo‰Ã Äuƒ“Ç]¬ô~ï¿>ޱ;ÂI÷/–)0uy硹j€á+^±C3î \kê¬Þ`‡“R Ød•úæCiÌEÁ/и ⽯§3Çl?€BîÒfe™Ÿî³Ô`Ej)k>… ‘<²ë?ý0yö¹¤ÐX 0·Úq•÷içwcïY¹®SF~b‡„¬¤½ÝÌn¥L¬z+e•iå'–|§ål±¤N"ªô_-2dï#üL»Ó(oZ£ÀØ®/K½—­,¼îIÈR#¢ÀÇ‘@½È¤¶j7Ûä›W§J¦·U·É½kõš¾.>|,à?jwg“…Ž^Úýlk®©D4ä²Þ°J3ã%²auŸ0 Œ·®7 F[Ô1³]o—Vˆð'ZùÜ0ß¾îÀO¬ø*;ùr¸sôÙxYF“òù$å$‚‘ ëRD›sù\6‰6ºë“YžÌ>/wÑ‘Õà`k¨N3ÃuÍ%® d8W5vXFCüžÀ,‹£!Óéxn?+iü|‰-v(—üMƒäMÈÙ3›üQA…bÿý´ qR ̶Àx¿ÐRÅ´ €hIg£ë§aZ»œJ ºì,Í€7E Òû¹ðíÈ dÒÀb§ƒÐZ;ªòïŸðx˜bÇțÁÕ% VŠõïLTq}W7Õx¤à/#=—¬ì?(ÉùÓïRÈž`©j7Khý3 ¼qüKQhhy¬³súû!2önÖ#ŸÃ DI'%”ªXè_fÐÓ"^€Œvóýò)$ˆ*tÃ+‘[éÞ‡*çâÊŒ—Q öÀþŒIÒ/½¾;Pn±/€s¥ÌNüLó’anumªUiW)s« bCLJÈâA±Ó@œÙgÐlìp±¨êy²ÐÖÛ’ûuü’«%>ê,ÄOæ–mƒc°çÂî7HJ4D­Ný®p:9¾:á ›Q›qß^àÂ1ÌOá{ÉSo®8—%ŸÉÀ©ÝêìMJ °Þ KIë%MSbg•­¦p_²‘õNùE³‘Ü¿\^[ÌêJö9ÎïÄÒW„#å6Ä[Ÿ…¶`x,Ãðl»NŽž¯$¡HñOXfW+fަ1NÇ®ñ2¹ñ#i€Ö‡o€ëÉ ä²ŸcˆýŸ#ö÷·Ž Í*˜Í<ü6Çêr¨MµË6àPu=±ÜÙ?²Ú™|íùRf/=£“ë°à\YMô‹Ü.è©\kåBÍVJêÕÿx¤-ÃàUí)¯e !êñpñy‹2û­åVWùÑr™’w¿øåkîåóÑ™o(Ë@«Æ¹°(ê^L)Ùñ=¯bˆÕ\VÖE‡ByáÖ9»÷¹¡Pj¬•ê=¿P!,º”ù½ÃºòN–ûAŒ•À¨Ûý\v–¥Í¬T,‰òEüc¢:U)¤¸›mgn•v&‚ÔÚ|yEÉŸ¦ö#'õ=1`Þ3h `aråµÄE&ü®Jt üèvsB…â.¿©C‹2h@¥ôÌ0Rô”RÁéZrf¤æNqÒŸ©ö§²¦ã'¤O>Ä&<Ø ]œ…„LoãKÒ€µ¯Ü"—ˆOtRàkx=ü¼–&sßp 矡°ÇQµM¢ˆŠðŠ9h<üµá°Ô£îuÞï‘§hgÕü!+š¹ë€?ˆÅ/*zÄU³åÌÛä:Ë=2"Ûf²H}oªûz’A!ÅÌåÀ[•¡rbüvüþ¡„+¬pÖ‹uQM§lyV´£¢Kj˜|Ħ£(ºØæÐÜEV67Ê{飉ˆ1 øYî½!0Û¬KcK¾Ž %ˆ¢%üMte¾ª‘Új–Ï6k¿=$pV@àWå,ÉBÆ] ±tspóft-ß%ã›&kºæÜî‹T©­ÄÌ¿üÖª·E$Ò(ü¶/ük¬r71’–ȧÝ©¿¤dßÇFêwrMï8ÛèÏÙ /b£ckÝ­‚KÀº“AâÔ4oÒ­­SÃ…á¢"¼2ÇxžåÄP%ƒ¤DJ¡Ggê—µ,ù\°ÛVyÑöhX9 ÜÁµ\Z ðZY B+¼Jò=Z£²&å…Ë`ãôó'¬ øF E(û͛ܶË`Z€ÿÿm¤ü58Äi¦àP|`ˆ´óF6žùøzt.™î”À‘oÙö6ËïÚžk)NZHêMòJ—`®øëæ²ðˆ¬E4AT%Ø£ÛË©?I‹2dnçÿÈB‡ Ô¹ŸA«¿É±K+[ÒÅÓKöD~ÚFÑ,rVÚ~õkV6Qkßé;6íØ•ñÝ$µÁ¯åÎ]ÉjDtK!Ä‹ïÚª„W#Ð:ugfäê£:Oy¤’pÃ)ÝN†Óîê쀟ø¡oö 4©æ¸‹UOqú%(ÉÿX@¦d+˜ À]| ÏeP®Ôïö‘î6ÀÀ¼Œü.KáQìU½n&·óÉcF_?ÝoHxÖc¤œ×`Z¦‰à¬ª@gˆÉi†ü0†îãªɳ†.á›ùl'›ExV%GGìŒ^½ê.ûoóždEûqCЬ$¨3'ò ¸%‘¡Ç¾2ÿÂt8ì-4Õ ÞOÑœ±§óe$¦` Ëú ¿ãÕËÛ”Ýdv£·Œ×Û’å¡å4ED.‹Þúv–ë–·^XRC‰:\6³ÅÝÉìOM$Ñi/¼ŽP$ åStbì[±îþ qwýÝÚåeœÚ·³žDmØ‘SŒ1‚ƒÆí­Q¶­€t\2‰N˜Z*yÑ«Fu ‡cæn$Úî3µõlËåðá9~ü.œÚb²Ýühèn¡‘[ªŽYåÝ$s}ø6 xö—ººª)F;™‡‚b¥yüï y-ž±Xp~±2lw•Øýz wä»…ê™én[7 ‡@Üí{Úg¶¶s=‚"öù 8“Y5‘Ö¡„Û×{__lòF¼HÑþÏ7jŸ^×ÝuÀ¬G4™ ÷ LÒÁ°¹7ÜÕ/´cný¿ÉÅç(Ç“†=´¬]U}1ˆH!¥+´î¹#×dýM¨g´¿YŽzžÝ)#Œ.#”mÓÀ–ÞÛ Ê Ýß-GÙHwË;*q.üJd!gÈHµO…¾ð[ M÷I;Ü…pÈ[ÙÝø6šI“ Á£¢² O ƒËÃ3lóŽï-öó—ýWS0¹Ï.öÄôs[¿£q(Cïo[BgôïÐªÆæu5Œ%x:L.nÀÀȤu¡é‹ ŒvJ"òâ=•ýWöjþq×L_­hGcdš ÙÇtòžö”sCŸûóñªà†ÝIàVZPO¬µÄvY]ĸZ«ZÒ¹äT î’H6ë£ÛÝ&mØÛ™ënï°=ßøôö¨B(é­ †øü-üˆìè-Ë+—Ê­1&Fl³WT0Æ£mÓþC$ÓBÌ7þv«?:Û4!¿ç/y‰Ñl9Yyd¿ÛËp‘ãÕÕéŸHÿO̧u<::ŒÐe°‚.0É‹ã F¼ªë®B RYõ•ïsê‰Æû®41‰!ŒS˜páÖvq[¾æ±©zä†Ý0ø«r9·E3WC@÷•g ¶Óa§ 6ßiÜt¥ò7öÅ4Œ§â¥še§˜°¬š–¾ºDs±d£|à§Ex¤i-“]pÊÄ )ù.©BüÎS£XT'ò¡Ù€ræu‹ç*ÄÏÑ]oFé}j'د„».¯^¶"—ÒAR:WÃÏ1žô)€ó½MÚ3DQt[˜ÅÂYi6/,tª¾Õþ ]©‡íT¡P¼Ó;öà‡z cçôBÌ!)°Z…͸» ¤¨˜ò%—ÛC֣¼]™U´o ±©|øÃ)9U% C¶GÑYqË4·æqϨ/îáqÉœ'\°çþ&^éÉP1Ýcâ ©[”ôT"ì8·<Þ#8ªÏfƒ\xHX¶úd‘üÆl«·B âq¯3qF¡äæy8¡ÍO"ü@ÂuRçx÷êá‘äöæH‡®ˆ×É+… Å/_ŸIâ ä%;ÏÓúûì’œkýÆWÝÀØà9c´J„øÒꎪàTwzK°Ç2g8Âb¸­®2ôš"3e.Mç«5þá<ÓKW`ƒ°Ék€X"yq•£wnÿõbG^7&Ɇ20¯SúmWþ˜c ÃE«Ÿ·?ÊLÍOœ»[Ç€ÙÛa¥BW.ngÛoÙÈŽ/´`JoDüÄl¡˜W]àQ¢ôÜ/Æ<ÿW¦¯üÂ/Û×_Þ FÐ5ò·â±Ão…‰kÒ÷¤ŸäVüÝqŽ^j½2;‰´¼–þà;ÆämhÁ¬äï¦ý8#¸þz?*`¨À^Rà°C@=†Áw`Ñ«~8_:Kú2Í äÃH·|ºA­»"G'\‚À×ð!¬`²V‡>¾4üuôC¢Ý[Ô·&ÎûFs6PQ¿zekt}ÎIO0$oA^’ñ¬¨;31eAŽøÌ˜M@+é}¿»‰¡7LÖMMYüÆû‘í%äU5ÂÎÿ>†ç˺HØj½ÌòÑ^mKOŒ~g›Ê4ÙbÑ8òù±ÜvT ’@F_†ªc–³>ãÚ/±¿›3Ñ6Lšä0I„hx&xˆw/ªÙ!óV¦Þƒì€jðÓ?ə凢V«ÊMûÝ }„AÇçG̹Ínû¾cŠ|ìÝÊP^æ¯>DT‰c3èzp/Á7þà®­Ø Öm ¯’Y&¬$ŠTHã „0”¼CÝŠ?ËÆ³Ð ù†­þsCè ½Â†ƒn’±>¦ÆŒ¡,—X&!xüÁˆóîBunìý]ã‚Ûl‚Ñ¢ª+ž¹8È,ØÍ¾GßÚ¼€Â_8P4½è§ü°¬J+èôT\Hœ1ÄW€äŸvàÄü®‡‚Í ‰¢/¯"’Ÿž¦÷Ñóe}N-=Á‘0¯í©A´8ž_s’jHªð01i™@¯½â¿†ìeçÑôÔd°ÖPŒáê½xqN‚¢Çw]¼ÀsŒÜà¿5…Fg{AFeƒphEFËXñ`]¡忦lxj>¯¥4XK ý½¾oç¤)4úå/~lx`Þm(_…ø‘ŽŒ ~; ø×­»ê=Šq,1*ÜÕ$š{°H1`ö6—âf³Úåd_WZb>KàŽ:ßØçœ˜¸|U#PY¾ò>×ù oãupÈæ-QÁ(¸DHпšò^ÆÃüLÇÚœÍi÷~Ô”?¥†LüðÁ°î(’9ÖÜ[~‡ÜBfN^1æ¿ÀžKJ²F?jÉ n/+ó¬1J+K ëmŽå ÒÖòÐÁÓÖÁ;cgØ·ôŸ)q[%ýó¸J€Æ³Žä¤vèH#Ý“ý¸H?UÎp‰žã-XD'˜g—*‹ÔùË´I‘ÛS]Û„7[§SyŒŸ²¶´¾é‰•“UòÖFNÂŧ”ÄÂ.&‹@p/ýkµlußœì*bt"‰-óáÆºÍ¦žELĺFwþ@Q|5ZL?Xã.ŠkÃ>ü6}m–#PU+þ].%1“3”ÝíKc"-´E¦íÔéµ|ä31n#5j•`¡)0H¡¾cÙJD¼ήÈ%$¼pDуÜ÷ärÎë5MfX‡ øuB÷Öü¼z*¦•fª} ¨Úà¥PŸ.$ †Ä[÷iE— ‡sƒs¤1DÊ(3" w{‘©¯cJt»%»K%Ÿ³ô^®ÃgÁÈiý`e£— ÞžqõxQž–SKœ s&9Ñâ1ºÝM3Œ‘Vk£ÚëE»Ñ•[óLóoN`"þRpníI׈ÛdÉA…æ¼ÝÓüKEpŠV½APÙ—á²­±™÷ô]=½.uó:Di"ûA­H™çÒ&EÆe/ÄYRg=Ë`so¡®54£òјÃ²Ø¢ÎbË~”•ÔJº´‘–ˆ `õ"UézáÜ-#d•hW£ò÷9™ãPÄXUŽ$;LFÙ’ñ‹púy–1σ~2qF*f3z7»åyPx=Iþcîm‰ý¼"‡a‹©Œ¿RD™»ü/æÔÞü†®GGðì½f_[Èð ëF<Úú^e÷A,0½¬?ÑÃ|²Y¬±Ìh2ŸŒ cQÙüM)ï®Úeª Ù€¿6b… ;»‘Œý6Dܶ‹ßfÛï1µí×E?É;üX—Þh$É` *˜•¾„ËÂÉ77wÕžMf’éø“µ–áµ'°d¦/Ø…4CŸ­:ôc;kä­)<8¶¯oùýZÕ/¦(€ø&œÃ‰ú+ô2%\J$†àCy¬Í F_’—,xMTÞ f.ƒi}È‚òm[ÇO8åÞ!ŸMU.˜#Y §TL±¨}ÑëýfŠCËÊK:ºØÄETÄ^¢xDÝ®={&°Ÿ@Úì~¥ï#%‹ËXü®Ãy©ó£ U룡Š^ãðÚ®±¾}=ï (kà&‹ÚjD …£‹¼ñ¼t  usG: .TQd¼’o¢´Ç›%â $7uÿµ™†sØ)7C–1G‚/7¸¢¼#eòåê‚ešçœ5là Óßúk|GICä)ÒÌÓé¥5-ìå((XOÝÛYT­Yü÷B5·?ðìä‘à ÂÉ$*"‘2æ›ÀMPÿ¥»:JF«ËëøÕQ` %­¯ýkdĨùh)®@ÙT®û—žÑ¤¶ž¤.¶m(Ò;|Öö Côž™òå?ü°ïÓ– Añ¥çÁŸ™)A•ïÝK;,Ìm1Ö/šÐj笚x'm­{A[sÏ…£Í–ÌcaU¼iÊ=xnäÛE/^ cë nŠP©ŠÒ­›ÖÌF —>ŸT1%³)XÕl’rE¤j8UMÆûU¹©‰H zÐ%i\‹{d'â%O_ò‚5%ˆÐöʬ%Ð&ëÕÂH<8@²|¡PãW%Þ/Í÷(êfœw"Š-sLcu¨.Ã7åL4f˲A!^œÒV —èþÜתõ½4ù'ÞVµt¡ZAÇßepœ4ì¼Åùé•áBŠyÉ‘ý^ÒÕG ¼Ä|OggS€+¨ä"§ì)FÿÞÿÜÿ ÿÿÿ ÿÿýùÿ ÿÿýÖÌæãÿNååéÿRããïÿÿÿÐÿZàáéí÷ìçòìëãÖÿÈÿÍÿ>ÇÌÝ×ñü{=uˆ¶øV쨼?5³Ì1©§'kêC.ü‰Þïf9ª­ˆ¥óf2ͽG{mgäÇÖø–ç Ù?2œ>èám-ƒ¢.¹`×KÖ>$§*x¤Š‡]u*ñ¾Ÿõë`Â62šÝphxß%Dîö%t§ TIQÜý öÙˆ¤ù)^½uÕB׫KLcèBÓˆOò””³½ŒÔ+0)aኟ——?Qy›VŒc0þNÑðGq3:xÿÚï»;ØK¹ÆX± OdÞÎÖw—ÉN˜<çðWO¹+Ǩ(N žA¯Æ H˜1ù€sË8â=Sy&íÔCðµ@ß>í’hÊØƒHí’n٬кvnŒß §i¡×Er‡L2Q‡‚1ñþtÐi‚ß™ï—öôͱx%,„:Å8¹ÆDômƃçµù8‰e6¥í“<Ê‘„Ów<ÎÚN&˜ÖiRT‡åÒ”ÄGÅF0=eŠtd-ñœˆ³µáw·¹bœ2Síë˜kîhÃ].½hÅ&V¨&J qí"3IÍi?’ëâ¤/RH~;ürÉñd÷dq´E47ê†4tnþKZo³Ÿü}avuC-ÈÏ”Õ͆F;D'uz•KóêAft…“týǃֳq¼Þ¸¹«ØÅ’Ö¤†ò °‘|AwÌÜ<-7²\ÃÕ!«µx|àwηwño3¦ @§%=í lej{µê#OÏ:&¢œËm>m覚ö ¢9c5¡3#~zËòÜÏÃ7ÿïäS‰±û®6ÕhÿFëôý?dæ5é_ž©-²Åwh¼¤áU4¡{÷|þºy÷‡Ô·}Ðz‰w9jôâmÃ/Ôð|Ìðò,ùµB# ‘8Ž y*Ï•%öœ’oÚØ­dk…ί,Ù½!â„Q²Ô}#ãKk_Ù@‹ÀÇVT˜†åøï(»S—#‰¾¤×Ê¿˜Í_8Ïú8 De¾<©)ZÛP7²·Ýn¸•PÖÞãØk'ÅplN(eâ¤Õª“G%,¼»•«Á2ì¶›lo® J%&]ɶv+2OxëÔŸ]>B9jtª6¡@îE+Ù?Ùreζ”y­Þ'ó¯d}TÔ¨Á¾ð‹"[/×#¹&™ËÌ“W€E߬a:gÐp.væÈ·:¤öËii8Ù˜ÈL¼68’åò܃,'ÍùõÖâYCÔG\ÛŸubáôÇöVü0=~k(º¬ëÃÄÆ8:_¹¿G,Ó™“ÈH6cèÊŠöA~rr²wzÊÑ…—¤;6‘M ¸‡˜±þÞ@ý8×£°G"!J€×(£¢‰’ýCFii)yiÕø-f6ú ö9Öq-щQ!‘]£7·(*¯F–-èÕçÀWÿ#¹7ýÐ| È|8‚Ù!<)ñeï3$Bj<œø®ç€)Ï¥¥Ôñ‘\ϺÌIyC»,Ùv+½`]…w$MÀF„b4÷ŵsþO#SóáöEðzŸL¯¬5ý\÷åØrl+(å¨2Íû\ðý#ši·špZÖ씿ñOÒ0ÿ &’8üZL?÷o{0vsü±lÂXEïll$jí±2ŽàNoµt˜ IS…y\°Ó¬ÓU„Þ]˜Õ!„]õD¨v„‘{IÀp.@_Âàïžq ÊVφ4dò¡( ¿h —"O<} ¬ªYº3Ž:¢ŽS˜±×”Lw)²,¢ªi‘œx¿Aþ¬‡†H°pj€}Æ›æ1Th¾µ÷¾¨ÿ€ Ì€ùÔz›ÍÂv¡¼ìÃkí·¥ÜL «Xî—ÕQ䯦rX(;¥è\¿}nâÂÑ—=r[˜ÔªèúCXä‡à<¦lnÞãžâØSc"›]ÅìR+•Cùo?,àšŠ—1Öη1¸ÚB V‚ÀbN¡Ks=ü¯"¶ÔQÖ¾vÏKÉŽ¸ARl]±-5–áõ”Z瀘éÃýe6}r9è?P”´é½3Ø”sX^=3ï|èÜGr¹äTÔÜ>¡—Æ;º2ؤÞÚ5 ƒk¾`N5ìnÜij`WT!AC¶Jl7Ù¨¤ÀrT°{…Ù"bœw¥ªñ£.dµg¿ µFBŒ’¨i¢HíxY- ß>˜Ü"vý0Gàq û!møk)nªFáDAh<IÔ-$ÂÜ­8ô@‡=üÎøeÇÓªËÚ<›·ç¬?`œ°e#ˆZ†8†MäØ\@6¡0úUŽ›ßX»š~3CæŠTÍàMiÂ÷‹åPÇÔvÜgÌyÀjcOª d7&mŸ{ÇøSŽjöuýv!W³+EØ„=ILÜgémÆÚò²ýlòw†öÜéÄo¶z=aªŽŒì‘¡V2™›Üäu*§ÆÝ\¡ÿ·‡Úq‹ÉŒäa¯Xs±4ï› ¢“^@ä­W€khisÖ ÎR–W »=Ä÷­Õ¹ì88ÉÌ*¬›ö”gíÒ|ü±g*{á /î£[aåpVÙ Œ4{<|áE¿2 N‚:-ê(®²%Qé /£2­–«¥¡ÀæÙ>R^ "/¿üÔJ\7ƒ Ø(g­ŽÞØ9‘‹pcF5Ù×ìÆ7ñY5¡}ä:ªda A‡?+° ùŒ¾=ä¬R¥\{>#åçn.—Ô‹-ÃŽts§ Y4±,B%ÙÞ³ÒûBƒ¯ A€HtÉÀó‘.¥vÝ·XË¡ïdÏb¯€Ñ&bÀñRîQ¿æèà6ÜøAÈÔÀÒ´V´Ù㑃U”óÃV!ߥxwWRášðÕÆ˜q씽Î4¸³øôÍù!˜¾‡=ü°Úeˆê11€js⢠ֽšñæ~”PÆY˜Äຳ½ä¦*RäVäåèJ¯¦t5 h~[VÑÛÑ‚+¹(±Hó(’¢±5y¦:ƒñ¤8̯šâÚ‚½K“!béS‚êØŽê\ÑXñ‘W½éYä8`eg Vj–8Šn»}ÝžG›Þ»º¡³7 iö#ŽÞãfÄ ×é÷\48·Z±;›ª(Þ'R_D˜æÕæN©K2ïLß«¸îÒȳG Ù3Z»QÆxÔEM¼oÔG5ŸÎßèJŸíuûþ‡5-¯ ÷d»JÐ/ì‘â$ ÑVT¹=ü±èYrÏ訪d<#`2·G»,]X–S@„©€@úPŸ`ÙÛŒ¢ ŠZ-¦»…Gàr@Üó²´&ÒЙo®0ÚH|ˆ=›ð²gyÆüþÇ^ÜŸ ™”*¾h5û8Ö6Ѳ÷¡,[©F,/(!¢˜+ý'j'eÛ ›uðÚXØ$U³¨Á†¶áíç#€‹Î/¶2SÒ¤››'eàV¡¢ø0 T…Þi¤á5š¡9®v¿=ޏÞR`^yŒ\¼d;äÇ–êI@¯øBÐ7ç¼µ<ýa@iëéÎ9¯×ai„èºÌ_¾ân–çæéL–¡ûÜþü®—o…”{Ü_wý>wìxpÆR®È¥†To\]_„-Øßd{#hç¬ë)­Íj_=ü±œ_‡r¬“ð êI4#üUùWDóû(ÚÞ¤O`SŽ1ßÎð†^K~F/ìT’ÉÁ¹†Sè[" ‘ôéÇ ë’sÑØçÛ·òvD÷ —Mm$%B¶?/IàØŠ{œarÀzôå}TÀVaTܵ…¯]zæK ææIŸy’EâàÜá„Ç€Ø[^˜Z–ø+qêÉ¿ŶÿÓòž›"ÖSˆ± ³ß­©jØúÕ²gSJ[È¡ø; û§€@ç ÷îg5Á½¥‡®ßÒ¤Ïú½„ƒóe b˜4n´[s¦I¼ü›ƒÉóù%;ÿžPV½²û¢çÉ«9, Iþ·—õ?Q)8ðÊ‚2Ì dÃY_ó8Èö¢d¹€14´ÆaÓ*%¨å;OZD$üE6ê¹IË}|9‡EǶa«8³˜¡,óu,pµýÂMœqx*W¹øMp=ጓ<-ï? DãÁcÃ1Ss÷ýÌ0››€ýû†}J÷]ûßL¡)¾q/<X9£îõŒ¾< *ê—çžÂ¤á²{—E )'¦ Ð *]¥LQ÷¿2Íè‚"üæB˜"‘¢epÀ;<î[Ÿ¯=Ë‘‹cXõ;5Û{s~þM}øyüžF/”ô-n¡ßy¡(žµÎ—È·¿½ý“/ªúòœ[ ä¡Gêµ 2 K² oßÛAìTÇgn…Áª¼“ìÙgȈ QP{†Â—RHc'#÷+\g%8‰(Åø9˜œK)Õ"¸¯â4¾i î¼Iè úšÃ~ÑÔuS˜Fxƒ6ˆ~\H¤7ß“—Ãï#m@ÃV£7¼,‡"Ö ‹œ\äÕ†ñ–/Fû# ~˜h=¼jrU?2A¡€ÕZµ/£= –ñó4¡b$2§SÅï>]€÷”*w$µ ãàëÿ”Rò›ÚØkî\0áÉ:¯«n‰$ +ú—<ÈÏÀM Ò)1saËaê#:áÉ¢]­×yrâ6jºëüØ‹ÑlÒ7MWÑHƒÎ¦ä:h6Ž:-„w'#ëG†Á!oðl•&0GŠRßš4ìVÂ>û0âÿ¬<«r» ØÈiЇr¥Å4iþPü üÇ}ˆÚ\c/+aMüô€r¤ÿÐyuoWñ Ë•výœ0Ù¾i“pC”&ì˜ C-.Ý‚`„ÌMW—^íøöv•ÛsüÛp»@Œ|Šžø»ÛV•íÔ¹WÚ¤Útž´È‚¾s[|)¶¿Õº‹n;1[±¥‰5¾k”dÙ†pG'C ïè×üÒ=Ã*g:wThÃagy‰FZ‘ ô‰\ 8#¸ì¥w³œ)ºœì.÷6×½ÿ›UðšÅ]h|º®%IUsQepÛfnYÕõlGµ¿Cy!­îaØÉh„'Û®Dªˆô<~·oÌM¶ê¸P]Iø,(iþ Ÿ=`ðöˆå©&@ÓEÐï|Šã ^âuÜØ%«Ïšè{o Ø[š˜Ï}±ÅtKrü|¯¿”5Žƒ^Ô V›²ÃqZ…¨?뎂áNãÛI¾„ÇÖ°û|×—2,¡Ôª_\6>²CÁ³»kže3FLZ5—ÐÛá‘p´¦ècÚr=¢ƒ°~òÚ†¥ˆ4ú¨’|3Pÿñ;ÛX4|V?6tÏc=«L3ÕPw.‡ÀGÈÏ.¼Yþ­Fx0d`Ò ½+ÃpÌ_Cƒ8 âXÜ—%& ªô½å±-GDòöä.ö¡Íð‚Xòm!ªÜ~³sI´o„±ß-x1¾Á” ;✙s’1xÊs ¼;kŠÚw›Ìz-1öÛè cö۾%UB±wÁwý}&~Š| +õz{¡Š»Cq œõÃÂÐpk?1¶¦ »ìGÙ]ʈ˜Wò)o'­éÅÓJYá½û)U‘núï§]ž²|¢/Õr‡W…8.øvüØ•}5 S+O‹‡8PaÝñÇb+%Ó“ß]ˆ6‚'=o32Lê?å{±E+¾ß”}¦újÆíå û¬ÿÍ%ÜŒ7yÄ Vå]#¨:† h3JÒDzÓÁA®æxµÉÏS4 ¨¡=/aZj÷SàÉÁ$=Õy_×*½€ÀDv<.«x3¥ŸÊK›çþW|j ¬ µþkµ{»±^ƒt̤u‘:þûÿy ı«›ÆšªUVèg0—q’=,Á¼7ªö·ÍtfÙP4Âàæ!øúb‚‰c‡ª lCÏ^TË$X_*wüL°+ :ö³Ö>¼Á)Ð魲ᩅFÓ×—Ÿ/p°¼òx»)(X=Î~ŠH\¸^*2§ñz!”€ _©[íÇø­Ü“;é#"ý3«4š„Zù‰êÔÊsW¾Ó¤ÂMj.NmpµRŸ zN²äó¹+Ü/à§°’$Ä™ç(§ðƼ³ÔÙe¡F‰ôó&p‘Ùê¾v¹¶=ߤ~tŒÂ¶§ë—B43HÖ:î•q?ZMe%ÖýKkŠæ&ÎðnÅL9ÜŒRûP؃28Èͦ¼•)³C‡Þ_´©¸”)üIr£«w&mdÍcä0­ñ¦wú<×+ÿ‹Ÿ7`?ED Ï÷±û»´w€Ü•¯“é*H\Ó„ Eh?¬/lð@yÛ4ƒ…’Ô©%êK>…Ç#5Åf^i©æJ'Ä“õ½‘HS‚¦ùsƒqÂ<¡sêEò2÷à!S&Â,“P¹LÆk²®ºCì0‡b\þ`›Jd‚xfaw §ÃÓèblótÚÖ¾ÿí‹@îØË¸nįŽ­/ïú°“”Ö8LªŸc6,¦ì–Ÿ¨JvòQµ6ë¸"¸Ýÿ=â:·Ñ†Éš‹<«]!üµß%×Q’cÞÍ|sv °ÇèÏn¿lƒ¯áX| Ežl§gß æð D¦Lbé0Ü£ZÀFëj8«”>wórßÿÕpAŸÉdRéÍÐunX—A)H†ÐŒ²fn(#A¸’©‚]÷yGN kÁ3ðÈ¿–Äí¢‘Š¯F‰íL&Ø…ooà¾lÞ:PµÃRû.#åeKÌèo¤Yzoб¼¨á5âêŠmú¡:ÔJ¥7ãÞ±Í™óØ¢’ÀÊŽ+w4¡š'Íjd1ÀQ7BȽOóÃn(ö€Þ¦-÷Ù ÌáÂÞVL˜B²«6éVíñªU7Î$Wï+­HN}ú8”‘ëê—hMi[—töîx+Ef³ `µü%D:ˆËáµ½Ì X…$hYWë¾=û¬ó? ß(Ï7^¤unŸÕÔ7—ø[sG~Úò‰ü®;!j}{Á²ò€3Uƒ¬j(¿»´6n”1 \à±Õ]éίñZË ü@”w)g¾©†ë¼£ã]s¼,Ö¦”dÔfDÀôŒeÛ‚ñ}ãe4øEM£ )€a°ñ}½£1[óÌkðg7&ŠÀñ,¶è+Ë lÔñÑ:ßäp©i3(­°Ž¬Ä35T™.3äýã’5Š–¡äúžI®±r ~ÿ­2Y̰ð² ôC¸N2–Õ ¬°%¨VÒ–·AÄ… EDý`*¦ÔˆŸl_e0¼iúf§yC¯"Ësp‡üÆ/\6‚%9i-$£lQ:Fl4‹X¡%ÎvßwÕÂa㻄<Ÿ%ö_u½6Š õ°J‰¾Âo¿4õ„-c @Ý´ã|ÈÃè$c '{6¥¾ûRŸ>oiÊvºß2Q©ã¨TËB‡ß­¡ïcŸQò„'u¡ƒnp¢ my5šLÏØe‹ Výƒhl'ð¡ªÐO¯ÏiDá«ÙaÄnò:Yóôï··.LÖEqÉ™«DyÎî*rAžy{NóV«ÎÔ·êÿ2x{Rl‚6 h>¶Ëap­¬‹¬›ÔÒüÆw>ýb[RšŒèI\ËrúÆÚÅýÙê…š©Âý¡‚B°gªùð~î[×ë§¼U°üÔp|E¿å½B§TFFMÚÌ+¯ÅÐŶsòHi³BüOåÖ‚HÀî‘vsõÑ1Öv SùNSûCh˜1¤µÑ䉵—$9Ÿ€èkyp ˜ž‘Yä⦼QX/ñ¯Þ¨&ý¡J¯ƒVA³myW„2 ¥¯æI¤–¸—{Ó^ÁjY¿?XÅ%‹–½ÂüÆmŸ`v|ùkW+"fÆ1;é5Œc’ÄùÎap–ºÓ7]…à·à™u@@ƒ‘8”Ä­¤×¼¤aióaxa3N¿ÒÝr%—u3Ü2‘òq987‚HÓjU8ÐZe»É4O!µÂïÇ›<1–uÉ…ÏPç¹Èö:ËW¾!} JÈÒÖW ‚ÍpÊžáX™ø1ÛÁ»Q¿®øîíbJ§G/îQßÒ¼€$ïšFLŠ!‡3µàzðâÓ©]¡¤¬,qÕÐT@»ÎQ*ˆš³›ru<~Ô$puïÿrn\.K’·•†°%«º¹%ŠÁ4¤ÎŒ™ÜÁoÑ6·ü[FëÚ+sÃŽ‚í ½äVkRñ @bkÿBzüWµG ;,ó¨ò6wÌ>QL!Ó ñe7P.˱È߸•÷œía.⮽-6pUä»è*.÷/ü²>ñ&¸K9p…žÚR¸}›R•{kßÃ\PED«fP„¤uy*žÊM¹¹¹â':šA—müš å¹¾ÕJ‘»ÖÅhþxž‰ü(„JWñÖï*-™Ž{b’¦ ¡’ÍÝq|Âð">·Cßµ÷AÐC@³òw7Kü}[ZÝ'%º®Z‹ƒýMÿX?Q;9¥TÁ—Qÿq3¶ØW†hé–C Ãp9¾Ì-–‚áLží­0±ÈAÅ‹š4‡E™Xp0˜û³]*ýÉå~¯™×0 ¼}¶3íÑô‘˜àY0ôsˆxbê£5Dý“ñúRDÞÿ.?ÁœÈ*N2RaŒ8@˜H=G­0Ì€NkBÃ^„ÜBfé‹]¨vTr˜þú,™c1QsBõ^tæ11¤·L ÿÊ>Áæ!`Æ…Ó4°2%ï$-S.šZ ¸Öú‰C (> ?¢[¹èU9 ³íP2†"Ðê×4Ö<¢8“鮪­&3?# ÝO:%Óë6w9e½à^§º©…¼X¥¹6-i$¥r`‘á&Kã»Ds?1Цj°@gK q¯>çMEîãªLPËc–Ä— †UÆ.(}ôÚ¡âgf¯P¡~°ü5_g8—¦‚É^ßíœí Ûí}¿õ™Tïúö½á˜:›$¬ö(72Öf˜¿v²pÞ¥ Ô³duc£eVz+¾=íøŽÓb{ ðu”8§ùy#ðXà+•Øöéª1c<в¤ú;dC„Œ¸ûäÜþã ]¦bE5˜E»íºƒøÆ£¾ ƒLAUÙkª¬À™54Á<³ƒI£–÷%ÉLë5ø ©VûÓߥiNÈç2ìƒüÊp^õ3#+¨µi“ª[ ?ë=ä1Žz®a:—7ñä¸o}jê„‹\þW› Lüñ Ǩ†ºMÀRƒâ”\#ŠûiÇ›%D1ÃÛ%õÅ­—C§iŒÕ6ŸeÀ7mGŲ –¦©š)œ?Æaf>ÝÈ„óþo=Ê’£Ý k>œ”àõëJç?0ËÃ7Ä^‡±§äo÷ÒÉò%©ýeŽ+EÓ³ìêJÏÛo&é¥Ò•kÎ&Ê-ÇxØ&b©€nBãòâ9…­.¼©2'|vº˜¾þšÔ›c­/‰¶í>Cúᥠ`z…Ybi׫¤¿¨Ã®í6N±ÓåÿÒkúA'xøëö’Êœ¨Gv"ËüMbûº±'YÒJ©R).ü­Øž.‡ì7,Šô²Dp´âÄ’T—fÃmO;7}ù õöþg3ó6ÌØº·DóæJ•fo¹ƒ‘¡œsÈÈ©±‘üî_†·¼³c$ý ßs´ü(÷2ÚŠºp–á%6a”·o-;TÊaøê±þñ‘ü€: bAŒÒgÑq_¢ÑOÊþµ('ŠH"Ñ»±Ž÷·XÀªUsD‡Ï|óPùZŽ@¹õÓÇD-`5©©´¡Â^™ˆS  ëùQ:3üöèŽ@êˆYì|n ŒôØ{›h76rVƒKüIˆÌ¡‹mÂKþƒ¤{Ù)ÖÌv4!ªWŒ›£”϶2ªÒ–vÅV{áe.¼óI²MÃC ]Cðé­Neç9ÌÛ&í)"À‚ðÙB<=nLFo< åÍ4‹`DD.é^$K”„ ˆfØUŽ' ^å]üßÍmúKž¹O5¿èÔ¼(cèºe×ÿBSÐ¥È@–AvÉÔEX\Àªiógrsû¾õ*ï7ó=š•Aä&ÐOÛCš¡ýÒ¦ÂpÞ"-=( éû¢ ¶aŠVmÂÙP£C¼R•®…º ®9frhSÅTŽÅëÏüL°/–J{”x“Œ`cn[qÒýÞµ y]‡xÖ>æ|'üÍI–”ÂØÕxÚrÁ T‚yÇt”ZvÈL±´G;i]Sø«×ŠD!ÛV‚m´m ;H´…üÊæ„4Tƒ,¢»FÝš¿°òœú¤«>W,¬ôÝ ”*ipL¶:êa¦OûïÌç§ñüLÜ1šbÓ6ÕÌ>ƒ€Ï4EYs·–IHñbÅfj º°—+šƒµ60­D€ˆ©ÊPƒ{µgµøÏŒ³/AÐêõ„w(ù¬H1ô5+ÙÙ.ƒoñÜf Ã’Y=¥eªgÑlÿMò¾ñ«@Æú·nSŽ£U[|ƒùáCÞäßwÓú×Âe@èJEòCÆN„Ø,`liû·Ývå;é:ÌôA£ÈÏ”¶)[?EÓ«ØZ˜f“ý¬] =îcî$@ÐxWÕ ªÇ¾7¤«lÕ ½ð»ö/‰'Ʀþ8HPÑÃK]¹%3hÒDûÐÎÚüWý¸@çeË;P3^Ñ”Aüaý êsä_n5ްn²ô´dËMwØÑO{Ÿ..{’Œ7@ð‰Â¨8ýú)-—XÉ‹Ä#ô us‡‰IaEù¤üÅì©ËK7qÅm {X{s%S]»Úùa¼I¾ÇwÁ`™}SzÇëüã¢íóªhÞ"”ÄfcžE®ÖÞE–´>”!Æ%++¨6§œ Wp·ûf’†À/\Ç'„:z<ÙËÙ¶ÒĹÒ7éQ‹Fäò`½d£ÅÅVY¼¹c¨ñS 14sTÙ ¨x:ïÓÂdáüIw™k?sjG‚g·:gWIÕH·„Ç#+ÖŒóUj#_WF†V\邇pÙ€ª~Äx¾ˆë ]]£ã ŠÊ_@"ܪøg±‹tÞåæ ¢Î3ˆµã¼Ö©Z‚e$5­,ýæk/Š5N£o…a‡%7£+|«ø$µŸÁ½Œm<•ú+èó1¤B(Í¥[9”+(¬ÂCURÈøªM~¤|1 4Áæ5ðó ˜ªiõjZ7eÕýßrºò%/™<™—ír5êê ˆ÷*ñ½Ã]4MNª»&¹7wõœƒ ¯³îùüEÝ…6¾ãùònÙZµj|e¦ñBA ±D[vóŒò…¾OiU¢U5ÒÇÅš·‚À®ms†9v#Ë¡[¹Ò”Y(Wñrf'[ÊZïJ!‚¶wþèé $÷+HO›ßÆÞcøûÕož¢1x–Þ¤—¥Á4¯z¼D|äaËwmý ¥ºÚúú+ϰ”DüM²Á¶Rë¤}Y'Çyïf™>“V6§è‚À;IùŽX =ÃìбUrKãzÎßúȦ¥• >ëqK56u Ù( k­’ïßig1hÌ yŽu–H=ýÌÉ2o+Pù-Á}}Tä«­%?kƒ²C†2{kí@œg¶”ô²ãFF»ßz+Ù©•ä<-]×9,H.Eî)kÔŽ+Þ‚e‰üU¸ÁÄ©>wÅÆ>?ÊÔ¯Àþ7ß„` zÇ 7”ìí[›Â‰ûzÍ#2ïa ´æ–»®±®ýý—½t|ÏåwýüÙ+í´8^µÞ°¾§QûöÕÔu甥جò]¸ÐxÆÌ^X³4ŽüiÚ‘˜”€« dV×s#Ó0P¤ú¬‡¨Fbï öNÿ;ç@ï¾.áÞ„ÕökÂÚó7÷vÛ9Äùß‹ÏåéŸóîÕ`BÉê‘íÑÌ®³ÖÛ GûSõ¬½ØœI©¬‹‚âYo1ARnß);«+”¿ùP´ÇNšm¥ž9m©ÃQ‰7·…Ã{ÎcrALb[Vࣵ¿ß5ÿ÷|2a¼ÖkÖ†)i[ ý¸Xk…Ë6D±ó«PüÂÊÒÇ«ö|jêzî‚@ׯ’ÏR”ÈÁõú™NW¢›ç¼ŒÄ<:»Y}ØîÕ¯¸ÑÃØŠÐ…ôR­Jù¯FÎf‘ÊK:l¬¥[).÷“ˆ{ý2q’·«è@aÜRPë ÔAïxÓ`.žÈ¤aß›§ÃMîç{÷¾|»¤äÁ1Úiøk.Øi¼£?å~U!Äb¢Û÷é ꦀu÷øÉý¬„;eùüŠc|O%½³a +¿}ëTy0Í0 ¶–ð/Þ3“çÜ Ó'Ðj›—l}@j`¤Äu¡bx7øÑi˜Žñàâ˜Ð*J‹e€Í¨©î\󔟇Ȏ“òO®×fÐpz4.7Œc…fäöNKv@æQÐò’쨞a²×o´Ýå¸ïÜŠ£»ùi9Ĭþ¶ddœP|g›•Üì®YU*ȧð'[¯±„š1—B½UÒò¯NnÇYõº*W¡ÝÉl6E¿L4È×àúÃËLJt&ô'¤ï ?Ý•TÉœ.=I©JP6©OðwŒc‰ö7ž|íÑóø×{-åõU rföŠýGøi úËÕ]äl­¶ª°ÊÁaÿ㚉çfóÉ܂ֿ/LúyQ±JA€æ@ê%32ϰüþÚ&žEŽ|ZÂZ…²Ýd<ÄK'‡„úJ•¿ðñ¾•zè0cz”Ì=Ò4k‰L$OoGÚæ%k |INø‚Ÿ±]œ…Ñ&jË@^é>GϘ4µ}ÊÏ XIù%¶pj]¿Å ¥m'ß¼ÔµžmL {RÍͦóß¶ÙyDLŠÁߞ䙩ÎÜQ9eR w]‡·G!½¥ã@üõ öemϹK¾nŠW£Ý·JF$)2Ä"‘ 'É­Fgõ!ºŸž($ÆféÆFQ.˜{bÚÌìì‹è ÕÀ„i !ÏvcM“ïþøêp^ƒ5 ~ÖsvYsÔ©+®¼&BØ.™Œ…`å{Ã2êòÈäQîN ²vߥ9³óDrS£e,¬#A¨¢e#݃õo܄ٚ#XÑ/zUˆóy´AÜ ÞñíÑ¢ºàTqE[«Æ¤ÉüL¾bÛ„¾Ò¯7J‹4 †ï Ð~þ¼–Ò>2ª¦{y©â“L¿»nµElw´£{T‚×ÑO\bª .ãÕíWµôò3PTo#8a“)㋩ÀHàãµQÉÞüQRZ¯´(NÛÔðX®RØXDa¢Jô‡¿jÆžby¤6Í…çYMÄŽ¦áUÀ"O¾C0œJ[‡Rð…×{ÐÂDy³)ø£JÓ0îBŠ\„vxïóqEæîcí Ó#nØvK„˜üL²cÿ+­õÞ›lîD¦¸F¶ÜD¦÷Á/ÂÖûýµÔÍëÿ;ñ¸è}ZßÃÓ]_Ò1Íw_æ;V€qHi®Ïª,—'ºŽoØÅp5jg–Šg6€¨sK(Å~›q[¬b N²ÍÄø¯p±½W‚% ƒXÊ»¨êViºëVYI`Ë~";ü…fET½*v^x¶¤Î=¿CØÞ„úû¨W#–†–m`*aûì£Ò>÷ñ×ÊËpI ?"p¿kɨK`é·Ü’Ý3g¸ üLÜcLë"lâú#Ü2ŒÔ|Aÿ“r;ÎE€Sõuõÿ±æV¢¤BˉèÚcGÂ}¹•åD riˆ”8„æú$ÊßÎÚžð¤^Þ&SRÁ‚ÿ¸ˆ%™£%QP€Ïõð“û‹ká é³YFQÖÓ˜že~NFÁ=h2Qh)£‡gÑÍàüP~ºÇª’¤õHß#4ãz-]téÆi`5C®óqøhä‰Sc!PM·³Âë ‰_kŽ_ƒ@q&ÌDV.‰ç~E fbêU|†¡ D…1îh¬ã©yßYü®Ìq"J–耒3o»èF×)eÈe¾. ö„ßÿw!V'yWöï£ÝßBô-ØÑÂh‘wõÂ>®aÖ”ÝZ¹œ³Ù¡+–5ÉbaG¬ ¢¯Tw¾Ôà¯?µ¶w¥^¥«VÖ÷nrǘuDÏ»«&kûpÆbô)§å6›E6T¢aŒÄŠW8yNáÆ&ÃÞµŠPÁ×Îd!=-¦æMÈïNÖFŽ 2óë÷y»™Gc¸OmA\TÎP±­0Ûý\Q¶¡ÏÈ´Mh‰ü¬÷¹§ƒPÓƒiVÊ(+Ó…äj˜!½ãÿ[QÊÇ],x¯àºAáí×Ɇý)wɉ¤ ýT@/ÕEÅE%'¦S]”*T:%l‡írÆÇ,[àȻՒ ‰–¾nC?1dýÊÓòñ3òÀæ¬}Ç΀!~íäc ›¤Ì¥Q>­œùõǤçFN¶øÒ™¤ºÎ,½’®mòPíÝŽN'io*s|Ïó¸ÊµVæt $ÂÜXI"’eS4ñn¤rÀ`í foĦþèšO$QS^UYò4-©p•³¶Šcݸ*lPB03`ŠøY:X´>øŠOggSç¨ä#ÉwUL<âÝçïÿöÿRÚ÷þûøÿÿõúóðøîÿÝÿÙÖÛÚØÔÿ±ÑÑ×ÓÖÕÿ[ÑÒÒÒÕÑÏôÒÕÓÒÎÿ©ÿ\ü±x£¹è¥¹àÌRNÉg]r-J4¸À ü¨jIvz‘d¢•ïtÿ§\)4f¿ë^ñ8‹æÎáÛM2'UV}ùmX›ìéX®SïÔŸÅ¡eUG¡-wGmQ2B˜‹)‰Î™F×a¶Ÿ_ìºyÇ/"C6p‰B1¨+n®¼ŠIʼúßY 7¥õͦžÍW„Áw?½²Üª¯LÖ‡N‡‘üGTTt<ŠÌ¹\–Öct¹5á(FXFº%*röDØŸ%³yùÓc¬ß¨•;gò“!4¢¤X›ç9~Šü®›ç-s­Ê&€­¯þ@úÄ…‰„¼‚»mD:©ˆöQJI¥|öê½Hj´Ñ´ÝHoA¬ånØpøØŠÃu'”äÏüź²€öt¾{‰” ÎF¹SŒAˆŸ×®82ñ_Å+Ô¤¥:)ù#3= •¨pË>/$$ºÇ¶ˆEAåF+2ÌÆ£y¥ÌDP(GanoŒP1SÄMÔåÞuÉ‚CÊ6¬&™­öÂ5/k,<[Ù|Ó^½ÖÂÚ‘XBYƒ[R‹òÃÓ.ÚCÛÓ\|Ÿµ!4Ãr.,R÷”«8–BfW’o£Þ[žVÊP´áq ¹D´X†N>SÞÃYs´<æ|ó‰‹'®Wïäõ9û° ³¨füÆb¤M³ïeI†ðãàÿµ,Ϥž6†3ë v5 .Í%¹7½[NNÔKY¼Í$hxÖc™¸ßóé;-¾hP½¥– ð@ÛÝŠ½ÏE¨÷™=R{-ûùªjšµ¿OòTí—0…»¾_WX”î{)YEmYS.oF2ÊȰíÉ}Ü)ôŽ(£žB…Ù<Ÿª¯œ’Ú¿x°Ð^Œm,¢cÉñ…t • (Cùßϲ³?ïw¾t< ÓQXšU"*‘0k¢®Põ,ùŽ…6®oÕjT¤Ű¾áviWUî]KFrŠt›i$V­ÝGÑoþÂ5üÄ‹Ú?ð¤Ö¶Ì…—;ûðAêöŒSÍ ø?Ò”÷±ÌÑϰËý°!t‘dfY†–u7³K±s`c+û¡â*Y}¬×Qb·ªœƒÂ')rÆÝ\GÞ¼+× û§Á.ï¼–•öÅ;Ò­‡ [wΚ͚rQ@°dk5ü6è¤Úa†›Þ~݈¢ž / ù~mšíSB(˜½¨&ä=7 ?Tò¡sˆK·ß]2fcúS»§z ¡‹VaÄ3'w å/j¿°‹¦Ôåø$VGà…ùML<ŠÅ­Az¶–®ë…ç9Ëp£ ¼Yî½(ù}ãúý§k´­0+HBi ‡´k*ál ù»Å¿=?q9üÆl»6%“¯T:Kó±øî‹¶ÚO›D!*¨¥³ö¯·¡¨6¢ÿç–¾ÿŠ™W‘â+.øqïÄê§¹—\}ÀvëN»þèÙr¬Vˆþ{¸3–sKââ`+ųšArIy¬“'ò0,-j}NSwN=sƒ7Ÿ[2Ûn#¹[¨nç9zX/ØBÂ}²Oá¾ ¨ùW&:o…:ÍHÊÊá”Ù«§Ï*ó"›–“ÈaòŸy>å ¦tˆéðFZt³v¯Î"DÊj½ï ;7å•r,×óúm]TLÉú–j¹ÉD„?üÐEÕÈÙˆ6!aD©½ú+¡ü|“Å€T|=µN·reTÙâ†*÷±u’®ëÐØ‹,2n:‚r.g×·iIát£»¨ƒ(|âärH"ÆŠílËò° ¯W>¸\0¹2«˜Èàí'6‘ÉLÚ¿ S;Í|Pé,“$g[ƒ+”.gÒ†‡*‚anp©|Я“*­ =,u®e£9?¬åCŠ`×î“Ø.\ºÝ7Ýä\סõÇ\)—X†­;Kƒ˜saÓ£›`CLigx©ÝDk‡ï¨#S¥®õuÁ²,ËBõo­â‰cnKwó1«l+¶*]ú-o.ù÷?Cf_$±ÑçˉÕCþØ2ÅŠj-S6¾Xñ’ºl}#¶Ì8ô´¬[ðƒjƒ<Œ‚½Ï—¦É¶Œ‹€I‡séQ= ÎÔYõZ6OŠBû8îœå&VoÁ”}_éG{ü6¤Ø‹ãH݇V2˜ž·ü│áPé/ÛTdèøR^³që|ÆÿrËxj‹éEѪ’¨/ÅxZ™VZ¿ÒtqWþ·/’˜ûÆNUû/c¿ä虂ïŸfv§/•ª=ê¹£¼J=ê¹£ºo£r!s›"ÏÈäÝýlç¾>vÏ“õÐÀn?+ô"O†Yª©Ùðº›hÊ(Oþ‘P¥.ξíƒß8Þõ¸;¡žºì”$õÜåñZ÷kw¨òŽôríÅ­¨:’E*«ÀÅ›_3ÍüÙu'ìùïÁ ¹óJß©´Gg¯ÜÁÌ^+ŠT7.v +"š8yÃÃŽGFj±ä¤!Ý \µd§îh*O™aV­})Õ×Õ>`¢ƒUwú~ØS <°˜¤@¤@šQ_°=’íîV»ÄËG EUÀ´Qº¡è— p€V¯‰ý(ÙDüs<…¥ ;cÕ|(Œ„ŽüκTwÁ âPˆœ]lX>lRÊ&ª<_Êù”èÃQ£¹”ã5j¬û>8eE*Ñ­Fóë"ÛhT¾þ÷´ÓSÞ28Gºém65)ô˜®ïŸÛ’ë $¼»¾ {ÃÇ—¶!TY¾¤Š…ü1’ë3¸f—q_wVtãÙiªí¨ÑN¦w“/µßÍ>#…èSOîÏ=×]<®.ëxÏ¢{"m´«éòO`—?XNÙ×HV»ô8)<¢yTë%ck”¥ïC'NWÄ[_Ä#¤êå¢L÷‡ž|¥’Ää`^H2—÷1Õx5²þùÿBõÒ®õÌó» Ó²P®Îtó³à£sg0ý ŠÍ€vh=ûZ ›ž†jâc5òš)i?b„S|bïõ¤ÝŽû"F*mš‰Á mÖÄ cFh~¦ÝªðÍ ®>Ó3a‚ˆaÓIŠš!¡»`iüÆaõfV#ŸsÑÿü›”X¹­™‘Ò3 %©¤‚J ”þ¥^íÝÖ÷¶]pEѾöI$íKeÍ[sö¸2ŠmS€üðx×€ÐÌŒü}É(öFFù­úrÊÏ­„\©úPÀ–RE$áPª¦D€¿"õ€“Ç /S§Å޾·8>~„½¨ÄÚÿfrfÇ;ÕKêhkzíìÚð q¹ÙךLTm¬ž0#½+oA¯(Çý"La`*™<[%î.Y ÈAß[%º ’’ÿR~lÆiÈû«…èÒ¡º}sp–Z@^É!ëOÚ0†ñ»Œ»UpÆZ·x!ÿá¨?)üÆ(¶åat¨\ztêWìÆFÎÇ*ŽÀ+¦¶÷.¾ìÌOkMv5PPëžåænÈ£A†pƘ‡>ºÕ=~ׄ7ÃMé:ró3H ¸Uý¥fÁ±Ù-¤7P¹ãùgb/;³`æ±#¿Š"¿0ÕØLý½Ö••¦v‰·¼>òÂJÀÓ9˜X'§ßÿ¨-­t=ÑŽ çñ5±"oÞ½µK7ëT üµ? M'ÚwK¸ÅŽs‚!òt°ÿ‡Íá¿~G2•”]RÌ<àä!õ7úìž3í:¥,¶1O–Îߦ]y¼ÇÿE¡Xìq[müÆ.„vsw# ß¼µyúýÀT7Þ@b ‰&Âs-}9²ŸNâÞ=÷û+j:=5¶ŒÖH÷>Í*#­×0Õ+Ú±·ÀËI-‘<Ô+R ;)H"WÁh:)Å*$Ñsd~Yw~yÓ€5“âÑ„(#Q]ѰCNwêjWˆLûd Š8 ʰÑ{nãƒZÜêb‚ÇØX ²EØB ëÕÔ]…®€×=ÚÇ¥´çÏI˜?l „ÔL¸¸SÖÔ.ÛÝ‹ˆJ£Î~ ³g‹(’ñɦLÉù+®ƒôðëõÕqA¦”µXU}$ñ6æÉ|sþ"6V²v=üÆŠÅbk!Ì=㎗ünxŸ'·Ïï3Ø(2WÒF§ ³F÷°aK³n~bƒÃyý-d‰m ‚ÖiŒd²Dß‘öÉæ)« "I¡öá}g-ruÊ£²¯£ô{Ùúômw¢føFú®5çöÊÂáÀh2á$ÖÖI[ûË:‰ä&+IHšÉà • \øpwfäÅÛœm/†.ü'<³yaÍô¸À†“[éKÍ-uÚ:ò쓤%È¡"óšÑuÙ†Ï~?|aø!YáO…å5PüæÐ£*~ŠP úßGê¯AQÎ `u«Ž‰f9¨É·=üÆ(nØG®H>pZá[¶I5ê6¦q¢ì“}eF·§ `ëbЧàÿzzÃI ², ˆx½?¯Ó›Ñb*ÏœâƒÇž.–êJ“˜m7—àOR}‹‘nXÅ­„ €¯™Ç¾öÑ_€Õôw‰"¹‡·%¨àyìûs 4Ä4ð‹ç_Yêߨ‘ Wé¨uŸÆE„3&vô¿Æ©‡^ì Ë">Uã¦IÖy^ PÃ0Dóöq#‡S…Ê?Fã½½Ô ãEhO™ëEò™‡!°k¼Í“M”yV’É)‰¯ƒ)¶ñû|ɶz3q§¯âÊFL͈jÀ¡0ØÍ7ÀæüÆcÃ} XĽPú2ÊÇ'YSxÄ¿\’än±aS%¢Ü-R<‘æy²ß™Ë/é¯ýFéÔàð4³òÚ2qwP+.¤ 1älàAc/¤z  n6ÖDÛgyÜ#àŽßNÃ"èÝMSùçY# ÍzÒNGÇCü93ÚTÎc¯æ‰DŠF8‘J-åÏj`9+b8Ë›zó×Lïè<#» ŽëÈòø‹)‚z䜦¤àxÔ%8&܉@Ite·z ¨Às„á;d ÅZ³çÈoÎÅ;ŒžÉ¢È‘GÑ÷†9Xæç‡` &ÛèÜÐ HóÕ[jüÆe³rLADŠôÝ(èšòK­%«lLÒ›3<‡)•7;¥[@ éýüz%Ÿù*¡Éûzß¹-G[Ra 1ÁKCÒm–³@+ª7ÅÙ[ˆÉ$Ôà#m‘Å{R¾otìÜlº÷›k“&¨2_Ñ©^@Åmm4¦Æ¥,³Vpq¨æ¬ç@ÙWjnŽ+àíÀ=_“åÈ4Ã ÃÆlÂ=é‰ S®+ ¢ÝÏíÂ9oѳꠧ aªùT™°°¶€½¥ÊOX͸o¬¹†øyW>x}©™WùÚ³_1†_qÜg`aÚ…ÔóÂPÒñòŠÁÜíÃyÁUn%†üÆf÷$ü8)ü·s”×$þw Áê¿ dUœñ8é¹ù IŠìŒŸUäï¤!é©|™–Ü"¶§&VœGÈŠâÙß`=xX]…ÿyÒãMGŠ‹„1ÿD2SŽº=-ïC½”‹7´Ûr¯go†5ÁÃX5Â’ÞíÔ֜ǜ•åñõBô¨$Œ <)€[cmŽ€,s¨Ó±ÅÈ4NY€«â”·g'^«B”úЙÿƒRxÝ×Õ@Èî¼™ÖdÈ2Õû _Ä+ßsá÷•éàµmïÛÃ&e |Ä“Ï-òΟô”Sì*&QHoåO¯ŒRü+)‡üÃÖõõ¬PžÝ¡#åy#àŒÆï¼ ¥Hv÷CØ ÃWYÃòߨPRÂÏ#놜l¯-2K’+X’.OŠçR¯4¢Œ¬Rþ½Í è ú„¡”ny£þ×_K0EU iDpÛü S•S·ü5ZL¦Åö+û®ùš‚`P|V¸r/ZæP߸Uî4ɉ`.M8?øA’¤™iâ¤Û˜Ñïð‚}føw\ 0«(8Ìi¨Ì,o¾Ayô’êÒWà͇'zƒNd^"îÅ!•ßÜgXÁb¨`¿ƒŒ¦¾7‡„~Ã!-Œ¹ˆü®’ÉHÎR”ç-$;é˜^§F˜[ýT´cà¬!U=H6Çj§LœjCý@žï™”4—gwà^9%¤îÊ9V,&ñâ›Æ(–bë[ûw±¬Ä;}Á¼üÜçq‰èîÔ á ®U6¬2ØáuŸÿür¤¥‹Ö}±½ò]™èÚñº#+¾”éAµìÇ6¾e •ÿÄjÕ½:/\Åv?×ÒCWDå¾­b%ÿLB÷ÿÆàŸÂ–Ìk?ïU/ºvÁRJ“ï¼OøöÿâpÑdËÚìÙ-'ƒÎ¡%å˜/"½tYç½™ j, 0C;8¾ôÇ.kgˆ+«DÜøbáÉ¥Ûÿ_¬ª®“K.®êZ¦K§f 1-TžC"¤‡C00‰›|b$ÙøÕ6¸%·–«\©«2Úý%yoнônq–sú~î}T*F¥´É.a|;«ûÇþ°߀{bü8Â{úeJ¯Û^²¿¹9ž F#j½Î¸çÙjÁ~LkÙM¨žö[ñ½€‰F7.1×nͪ ÅñH¹[Û7…Ußµ€;ÿ:÷íèâè~\6Ï„Må_[Í›_WáQš^âêÌIa•ò±»<‰œë KZ–|Mì¸ü}bc¾e©à1AâçãÙð€²öSd<‚Þè E–¶{B °ï‚V,rØ3¾fNQËYôèÐ “‘8ŒÔ=fPÈçU€m ⪭ øk`„ Ú•³pµ(üÁê•øtâ4ì?kÌE_kÍ;wÙòÐŒÐjH¸'öd+æVD¡!bsØl?MÿStö®-½b‡M>?WÖ8ǤŽN½ñÐp e¿#ʼl®°¤ÿ4>¸mÔÓÃU<üŒ;\Q2h<™*y’•±®ÈÅYéwOy"`_°%ßózº‚õÂ×\IC³Æê |„Ý(Ç~6îÒÑ€ª‡¿²9v¸ŽÙvC&tüÕ°Z Aàüdg û„v¿˜o8Œþý… 0¢>dÈÒ1¶æ'0{Môý”»‰¢mxÍÄ)yXÍ·äjˆbwUŠ~UŽs&K’‡ÜŽjí}¾fÖêÒÍ;,!æ<:œ›ƒƒNÊ 9#X4ÓÀ•ˆ»›wC¼˜ñaiÍØADœ¨c‡ÞÈV¶%D}ç ÆP»èÅ. S®$-™ ^*a‚ÂßÌÝÅ–´‚¬nÀûn2׉Md¥ÿrîN`A¡sÁ¤Úvl“ܱ‘V øÔgi¥eü0Zï(¡°aÉ<†Ç! eÔ½òæšÀ3§j±› x´ÿ{BEÿVwPy§¿P4ŸýYÁΉÄí%t3‰éDuªs]E²1'­ =¯Ç( ]…| öÒ˜6ÐsVÿj~)RQlH.b×þ ž¦‡Mi ± ¢Ãi-©6ãJ¸a àô«5M¥”'TâEî§Õäð  ¾È bÛÌ8¦’IüÖ±üçþ_z`ËÐ0aƒïÒÊ&§€Ýp[úâ篂Â;$z……OrüLÕ½¼Ì6ûdgt‘wèÕhÊEu âÔ»:XZ×k…ØÌ.ðιA±ËÇžuÐ'ïg ã=ÔÒ·Ó¿0¬·¾J€B…?´Â¬›xåp)@»Ú{ø·‰†f¦;¸¨Ú“`v\¼#6~9ÞxV3¢ÍUÈi™ÿ÷Oº_‹…Ûû}\T;™ã£Î)Ã,†ÒÝŠg%ÍÇfJž7*ít!Î5“v©<õ vˆñØÎTº÷÷Ò¼u$ñ Ý]ÀÑ5ûò®i!)Ù师ŽìClÜ™”äR”ƒr.ñÎy«; *Ÿ´U«Fêa ¿ü™{Þ´Õ±ê@|“ÐoïoßÃ5ßx?À¤và›Ç§EHº[¼\|3÷)qXWf¯ø¨¿\„íAPƒšK>ã'ÊéÎW™Ï/¨°×¸ë %…îß¶X—¡ …V„ô(¾»o¼>È‹ÇMÉ})û<ü„ß6T܆GMà¨ç­¨»ÈÏo Žýä'³™Þ`óFdNA5j•a—Oòý—ˆ³ËâÛö嫨”‹ÃÊuÐå(9˜ô ëœ ÒFI Í;Á§¸à ˆ[À¬os‘• !kyüM+Ö“ñò°Í#Sûò¿§e'y0bRÒ”™vyïH·+eQñüîp—†oBÿ:è}SPä¨Òˆ˜>Ö 8áÕåÙh„¡Æ 'ŸØz×ZJÙ#¼ ¨û7x2'¿Cf>W9U$L†åîfëUÝÄEü~s­ª—Žw%ˆ^½àAë¡Ó \…ús;–¯‡dªSº²+81 €à!¥ ·þð¦ö2èœI†7¨¬ª²iV1Ý@tâã)!å…O™'Ãhî«¡Öêp® 2ï\ÅhcàÒ0þ+‘[¤ü›Šy]Y} t£˜ð'^ŽCmB9[EzJ@1uA‰Òéþ{¯‰К¡6-¥9ÍÑ+ø!ð«©Ê+VRdì,jÞd„À#W9¡›;ýw…‚Ò(†X1o6"õn%]>Ëî½Ô¸Ö(è‹÷iöPy‚”n˳¡^[?S­[’× Í#¨ ÿ\dµÙ}×´©8” Âb[ 8Õv(t¼Ò²_Ü„MôCséAî„X cÌ —!ØEqeëVÉ>IsLFbϘ‰s}bQà±C2Zü|­P]¯¦~9¸ñ"9†³¾öµhÀw*Y…­Æ (ZÉÂõDæm%"©øKÎ8qkxp´HÈ]üÂídÓÊRUýt¢§:29=ÛLlp[­•¦°6@©Šæ…1Þ܉&¸çNr>¾¼#~ã_å¼ytÒfÚà¬læ\ÛI¤MýÂ+Æñjh—:¾K%°YÍs4 €« !ª9 gNÑ–·Üsg><¬<-§üߨÁƒ»6N £`Èît@ÑÕ¶ÆÐàeá {ûÿñ‰ÛB½ÉVÏ ÎxàÉãDIÛë„nÒ?ýÕ! -ϳé,H8,ðÓvt&¿X°,… qªÁÿQZ²Åg…Ô;üÍ@ïzü[ €³¯—†ÅõÀ áëp5sè·^øÊÛ2Là‡Ü€ø¨Ï:pªxZ&`/FÿCY‡Ë˜@k50&3àP@gJð«3u±N\m¡Dˆö"x©øé„ –Á!{YV‚S·-û¥4"çë4Í—šE¶@oÇx­$,¹°Á!UïPõôÛ/4›Ø:Ⲏ …+HSØFüLêeÜš†«NsÙˆHš—b.³„-Õ'à§åärká˜ôË}1)MÜ¿àÀ»mÎjZH×;‚?ÖgÃçx¤(ø±à:ò$¦2ì//êü˜Ã¼oÛý&‹Ä)"ŠaIˆ/ ƒ@+}@IyåA9m1 ãm-áAZûo­ñ—àq.S=«‘fc*Nf,>vh(Y´jPÆz^²@м šbí ²‰tÍðRÅkÄ–7|”Õè“)(@´¢ é9ý_®X€+ÐÅ÷¡ÄÒ:ÎrüMÜ‚¢£ˆ+˜ÅRƒí¸h¦–ÝQ–íßß‘d³z€ƒïÅø)×íÃûèºû-=áµ s,ç©l0hIm °ž†ÛPü*5(ž1>è­À… ¼…ö^Y½~¬ùÌ¿]¬žã»C[Æ­ç-µ¾LW|J>dHš?§²ˆÁoÐØzAÂfµÞª<ö µùùû•bO¥ªT=§:bž; ЉgÍXà´1”žØ*5™:»ýDš¢Î60~ܥ虚®Ð낟»47Óï‘9éz‹XÖGs =&çû¹ƒiæÎ…VûÔ»= ‹G±xÊ&ÝÐúˆY;Ìyv$ 9™üM óî¸âYQ>jÿ¤t£<«Þ¾B@RâX´ÑÊÖù[HCB¨c=wÑV|Àsk@uÙ¥©Ž£5\ñn #;Ðá×P[½ÊÔʦ“uNïcšQô  1E_Z[çb²¨W[ܳJL+G|Üà ‘­0~®;€„lŸCÿè Ž×=¾¶(àŸÄ13=àì3“é€qq‹Þa;•ŒFV%>Ë –½Å¼•]2[¯}æò«½øjÖ±HO½ºÇŸC˜‡%–ˆ0 ÎPèúVSQüJQ~XBL“ç6š)qÿ´GŽ ,êá¸Xž¡Ó^p0„ˆ²©²æÏ^õì÷flÑ/’\„ƒìhѶV}9×1Œ Z~©Vùz뫜…:['‡ Ñg„‘º…š÷è²’{uîVZp0×{Ü·›÷Î?½l°!¨ã@Ô7/¬¬55½è ˜¦ø²Pª®‚Zñ«&¥; uN~­ð.­(ä_§ºƒIo±r¸ÖûÉòü önŠSÒX¿aƒ–ò“;°²ì© ¶Ol>,ü}^7-ñã Óišæoï_Ä'«‚ÞŒVÒæŒ©TžQ˜FpiÉ$ £Š(v„SBà>f¯l‹®n|€¨†×…sevIÍÅ1Ù?û¼DnÝ̈Q–ÿÜÃ4S‘ѽIfnˆ×ÕÔ{þQH ½¹½üR@®çþ=â!è¶—h}™J®¦lë›)µ#`óqîska B…©ë0,ïM18Uèâ³¥Ÿrí=Ÿ©'²ñð…¨©†©¨/SáÈ¥þõ0ºØ Œ »Í7dœèTÃÏ´ÍŠŒŠ™û´sv²›¦å^çî ³Xx@r›Ži sœ}>¡ð†T™¶MY…y…ì<þM~f‰9Íz ¿á 5ìZjçM}pý8Øú·ð„DYÊ÷)$4•ú ä~Ï ßhg–[I‡fd+ÚÒ׆°Ÿ®ä¦>Ï¡BJû¬K/ük •I€‚H^püL½jõ¥*ï(Õ÷¸@ž{»AÇ–½¾Xž³ ‘ãW8ŒºæüÓ #ú"aº—e¡a–³¤ÌDšP9Râhä©Z†Ä+Iè…†›^®N%ÓƒuØJ ·ìWrz²Ð¨0ÀÜö û° –Ú?Œ8‰Ûz¦uÈÞ™ßOKÕï±òÃÁu»W²Â1´Ðì”E€iìDù!ì&Eà§« Ôå¥ÃÈlD(ã±u#"q€4æÑ_A.­¹¹ÊáÔ–1ÑÎp<Þdÿ*enüL¯`®•Ìë)cŸœ- Ù|í@<Ü佨ÿöÎËo°EóÙ0^‹3ú»†lÞùaÙF_:WgPÅØ](ûñSY93ùO ¿ofD#ü`W'¤Ž15†qÔÚí/óÄŠÖ$X©³ª lßñÅo|}Î"ø‚Oñ¿ørØj¼žÌ’Y„(JQQbÜ›°KGˆ9´å”‹à÷—ý™—ú/ô[´¨?§£qÈmCJlDQ¨³n.Q¢ÿ  Ý“žœÜb¹pÕ‘’ùqüLË(:ËçgkTÔý?ÅÖUAzª4¢/ GU ¿­ñuæÿ›x—¹CÞô–oÏ#,R30Ï”IxD6'Äÿ"t þ¤ŒÝ}fÚöŽgÖ¢ŽÕ]îÓ¡˜vƒ™7Bó! ¾{Ķ«¤äöBü¹QJ‘[× læ1§ ¸¼IÌÿ­£¸s,Ïv"¸ãBÔ2ï–7pìå0´?tÊ¡N#t"e Ôt$õ ’&º^3D û‰byô£=ÄY¦ÿæB KZcÂdêó|Á›mÛ!³¥„ÏmüMl'¯,UŒSºöe´&ÿ P˜ër{I¥[“Þ5ý"®j'_»"x3Z홥$߬ŒpèNNáW ™™Ñþ¿ ˜)/>t7ú¿ôbǼ.n%L]¢—/¡•çþtâÓ¼ãa(oaµkoyš‹üM-7Œ GÛf›ºçœ?Óxý^Osú¡+2UzŰÍlðUÛäïBb"\^ãXƒž¶Ü 38Ýï˜,Î…3¢Ao;ˆÖ8ºV‚Á`JÒMÆä ½(×Ñyüþr%p¶¹Z¯ö"g¾|ÇxQq^0ޱ«ú ÷RdŽddD¬Ýt¡ozÈ Ø¡tdàÁ‚cÑdæC "7/Òc»—ñµ*aê°/Žu i[FžŸÂû³è*e6ŽÔÞúêCâ…DìrD›O3ŸýŸÔüL¾¼K‘¯¸vÝGÙhà‹J,×ú¦TiŠ‹¼·aZÍpV0ÑæãoTî'²>W7¶ÑÎNÎþ$ÄF6ŒHƾqÒܤâƒË+$U0Bd…##ÞN×X—d8.¯/&cÛƒû9Z.$¨™‘3 uØà Í‘"¹"$nª2·”f2ÝÉçqifþ64tÆÔ> kn ¸É#'KDÌàAâ»›°Þ‹l“ˆÇ)«Ë¢D e5À¬x& €–¿éÂÕÊ~-`bÙ&·Ká¿Ôˆü5Dív½càbdJÒeÛÞWÑ÷’tq#S¦z¦ˆ¸Šþ׸}ò4èî‚èå¼ÄýÎB›¸5_Ìç‹`$ ³ÈnÜ„![½;`ML!< $e¬ÀDBc×—jø6ñžäùzt°ß\Ù:ÙëÐöüÃߥ˶\0„îõo²ß›Å?}«È_~¨qðÚi›bÙÎJŠT—ûíõÜ¿õ3©Ó—'u"¿atjMW/@¤YÚýŒ!`ñPTÈÌ1¿6S»“²KhF~))ÈÂ_ü]œkB/mÈÞÑï·Ð]KÈÈ¥Ú ¥'”Îe7˜ _Fñ\ÜKÁíú|´³©·³x)žÃ5W“Éô>eX‚í“SZFµ<ö@^neiÒÝðžI1`ãAlìJ®ÎSi^þª °D!ZˆÙžò ÿ—ú6Ì(‚•ñ€N‹.`²“7 VwÄ®å§1%˜·3ÀœúÀ©û§˜}Èàñ¬Ò‡6oÊ¡ÈP2»uò-D™ÜUa›ïݵϦæórŠËZŒ=cÔ÷#üPËH.=×ä‚/ó?F²ÜNèÝ$ÏÃp…45‹`j^ 9âoZšƒkÓ×'áü51rËH\6öì@|8¬ä|ž×£|/ñµ»ð Oä¾ö5©5ÒËÝŽîŸæŽ¶còœg¿xˆ£y‡3èŒ»éØ½¸žâþÂy²Òdf›OÓût‡+f` ‡¯=+È͆tG D¶ÐܦG|£W ]M8ÿ°>åpWïæÊ€S¯mi`]ñŦbµÒñ‚ª/7¾š¾èÑñè óäò•’HkìÇ¡°ßô#[„ÿcÝnί <Öº’Ïeö§=Ëó½ï_üL¹XÄ¢öÙõ{\§{ò[1D\°0Å·qê3àø)©æoízˆÃ{)2Ï7•ôñ’Aß„ªYøcï?{/â <ðËJå ¸]×–™?8“õŒ)GðLº¨î¤«ú°’à“*^Ÿ±W­²7¦d”kuOùó¯Þ¤‰·=7Æü¬·Ø±ã`ÞîîI|{¨aBY£Èþº¥)ö›øcjþñÔvZ?ªŒÄÀ¨íD9L߯t ¶À Y°pü+Ì}ðäêk‰Aô[‚$t ´[6ãnË–¤‡(;…düMË«¯Ô}¦x8úÀäÜI‰Çfÿü1Ú1¥Ç&1Ïk7Д‚2'ÎÓßg@4â¸ÔîDãJÙé÷}Sí%Gpo›ÎK‹}ŽT[Y#{èqyHHv}Yµ€â‚5Úi¿üh-CIÌÖ`žúÛ<·ßË"ø«Q¬9k²ñ çÍêQ0²ܨñÍrKØ+?„LhØ0 ‘ë*²` ¸ìĦ˦nGmÿ1M¤Ø1dWgÂq‘½pHØITNþ¹·Búv)F½Ùû¤l¿WýÐüLÛ¹ ™äÞ=åCú—œÎì@U»îˆXó¿—Ûf·ì³ùÎh–aƒ$Æõà*"¯ÂÖ£ôß{="^O2¨sùþßêå°uœßDèÞ‰‘þ‹Öv¹†Í·ÐŠ¡àµõ7²=`B7¶‘餮gV#-µ ™Þê¦o^çcL½¡àFüc,}c³†X½äO£ÉN­Ó$I6Üu{ýýÒéÈôaV6frNmN">tÈ… ’ßÓœå¡sù Ùæ»ë‡¦ës. ´­±(•úëÊN~’¾Qü6nsÛ6W¿„¶å:h¤ó+ÄŒAíñ`?ë)^U’–Ù|7œÜõþ·š²z=gD þÖîmÆÙVm"@ß+ v¹P”y©.‚ë=ÉkKÛL ¥!ÒÕ±" u¬nÉQ\ž”ö›qÔ}MaÑËØó,+«#ÊU‰gh ùŸÁþ‘—Êô¨ÑòćǼôÇbž¡N«ç›’K9ñÇ ?Sišˆ—ÿÃÝÑw9ç.+¸•ä~Q^ŒŽÆé…ÔŽ-%΂gS¶ ÔÉü|œŒô((eoœÙŒEsI‚½9¡h&¯Šä% úOk­5Àê—¦¬¨÷“å ö÷C ^­HÃÖÀ1= ŽŽ{2S}‘e\C!Žé­lħA~"ã “•u!¯¹é÷® ‡ÉáY0ú3Ñ|°~3ǃDOú š¤ŸªÜ™>$õÆóŠe[t[Äžþ9T¾ ©ÏŠú¢Ÿ[MÏñc¡0>wh×5'„,/7£Zµ®ŸÀÉĶf´î~è¸[·ÂƒëÁ¥‘Ã…c$ñËZBÛG¦q W›rm&¡ïí$ì'ú_Ú¼ü}b•J$=JzÆ¢=²ÛܬÝZ] 8Á#R–X4ƒÜg1b€”8¦Ð—â¤PÕ"zÜhÞÏÖ¹¹»7tõîoí«FÏFeì÷—@ ªû-ïf…¦S³+.ò‰FdSŽMÉÊ̾eÝo›·¨á{C6c)´04äµ0<ÿp+M¾#a-ÅÇa¤Y¼4èŽô<[ª:ÙIu È –†ubë¾!@(”[iN%^ËŒŽùX–¼E"‘x Ä@\B-ä–­'Ì*;‡C)ÞœlçDt–‹\Ѧ.p@¹Ç­hPÀ+šQót,0˜5õ}à“<·Òq³ýêñúpuÙrÁy½…¤x‘ðð¯øñ_ü°­5ø‹êÊmŸ*ly ì%pØB š§©~\Ñ™cD,Û`Ì1›É„½!¯©H2…Iþ©§Ž ju?ÏKmGà6çÆ0úF/OggS€¢¨ä$fÃ/6ÏÒÔÔÓÿµÑÒÔÖÔÓÙÔßâÚÛÛßàØìÿûïëïèñäÜÙèôîëûîìÿ³ÿÓÒÓÛÙÝØÜü0(dït¬È¤|cPtEjé9`-‘)uÒ“üjCoüJM»”AÛ^ÛZOÂõV†ñŽEcˆ=Æ]S̬)ë¶DzAœo÷ Äœ 6’uÌÈÞ*Ш º½”&ùüQeƒç½™¯²Û‰a˜mhÍAE˜e`žP)æS5ò_ú7V"D’NFÚÒi£o©Ÿƒãk9=êÏÜü¬.Ã꡸ÉWµ{¶`ºA‰ÈFÕ2®0ë?tø¯ÿ[_}üL»!ÍÈäÆâ‡Þƒû®r½ä†î¦YÇßz0¸3>Þ-gËNM]4æ]öy¬0€¡ö’<×`s ¸-ܰœöÓ¿“eXõÒÄ*êáH«ú’§)òûý]“jg¶›*æŒòu÷.hgkQ×–cß×s‚ÁÐel/DòŸoM÷¦ÞœÛbª@¦5ü}á~ÒØäñµ–  >(²¥DŒ·Æº=Ì&ãnåLó–{2škøÑ–|`‡µ;)z9¬ÝP–ýÒ¸ˆbâÉ öÿV¯ŒÓ†À ’ü}\‚ã+ü2ç«X„?¬G•˜ƒñùïÇÙrç.`Ùû+Ì?Hq{Õðvlï0Å­Ÿ*Õ©Þ—v(.­èj`TSà7ãǸä‡ö9èš,¼ìxKfm¯P‚&hát1²b2¹`÷›}Y›=ªÕ×YЈ=SŸžíµÅBËÆ8°$11*/öœÕÖÞòÒ¿_ªï‚Êø÷Ô˜ôßJÀ¿ôÎ ‘1ÐZ̬ð@,ýØ^KZcé=Wwºaš23©HTŒYl©ìÈ&þ~A‰Öv5‘Ñòòv~8ª÷þξÍ2 sÊ=›–ÈË vÖâÿ´wˆžžÖ2W¹B]œKÒ;“|²®æ$ðÞŒxØBaÐu;à}Ø >׎2OZ‰/‰âyÔÁ,ª…ÁšdçÛNôÈ2 Ž#}Ŭž; &‹²äÝxW»óA§%fWk‚hÄ“ÆÀ÷‹OS¥ÝëNÿSÕ˜†PÂѬð®nÏ!liÈ|øNcàÅQس¬¹<¿L-ºò¡¦õ(mgµolo5ÐÛ|4=Ý}Öe¶#ÉŒ‰/éi˜æm"ÁÊs\ý4PBéšø«üNatû¡|ùGˆ:¼Ô†òÅ8ós;ð¨Ó%à „ê ”×3uåØŸçèûÞ+d±ßœœ,ùȸºE9!¿q_³½¦ÂÜ0<€À’Çÿ*ÞŸ›‹Ý¨¹G¿O(Ü#&ìFJSn”ìg´“²¦¸d 0@‘{ŒÅÁâ뢘ÿ`WéGÈ>¿}µ˜ö6•G ´s‰4¥yíµï• N9Â$ó¼ÌÝ ‚BÄK5D\¥\Hþ™Ì²ÕS}ˇÊŠ p7ǽü¥Á¨Y²¶²u—Ù#“üLïbçÁi> 7!¨yà:ñ……Sò‡˜H`Z1´¯ðÚAþcK¡{Müí¿œeVÎù•_,Â2Xîü/4ÖõIæ”–•½æ„ª­8~) :vW³äS«HǤ\šOÂùĽ'ÚLÖm»˜Z ü(œëûöàü8íµ€À‹áØrÄÇ©<×ì,„® £÷&¢_ÇüC _¬]܆³Á1(ž†‚Z NÕ†šÛJÔe›ÍO{Éb&›{û*’†4 n4uî%´®üMr8Sg»K ½á’;º±ýÁŤ®SÌtGðW9ɦ©LºÉ“Ô ¥‘ˆ!žLU¹“pö³² W¼Œ…ŒKYЖ&Òª-ŒGu!?( áhñÏ¿œšz®ÐíÉ®T–æ¿U9?»b³¼ù°%HO ýÕ:³¼ _ˆâ4¯Þ©)èr¹ŸÓ´è·—?9¦Ò¸KZÎØ}1”¼s‚wùÐôêØÙw6[yJ ’4y$“ùÕðmæ" t™ï]Õžó{_EqŸ¼ÇæOüMZü·ÎæŠ.86Ãwó‰Êämïía$›Xå¨ÂB:.bº}Î0àMUžØwÕ!*PS¾<™2ôüɹÆãâSª¢.å¯LïQtëÿk,Þ\ˆ¶Âªèaê³mÆ«›\ ¿8é¡Õì¿<¿T0ºóg¥ÅLTgùœ4Dì@AÔ8 ½^ìe3¦Ã·p—zÂ0ô+ôìTpW´¡[Äú3l•Ò"ÖVa¸›"55C¨%–×´6BÅÕÖ?‘9ç¡÷áK@v‹á¯£:™u#ølÑüLËco\ª’f ƒaPq>,@[G£—ÉœÀ¾Gä"˜®aÎ%Ô×Ïê¡ê<™ás5†r`:ò’iŠÛ6ȤëYå Ã'. ©ddì×¾lD¡éå Ø[-Íb¶ªŠKDê§MPŸîõ:HkŠ1m¡&\[oÖs÷£çùòÚd.¸¶Pn —jj\^и ýc°¶$6ä}7EæãTß[ñïщ…xž•^ç4Ýg{|£Â Ï¿ ® Nõ5«>tü·ìÔÕ#ZÏ‘Àm/™JɲøÂüL±.ðѼÊý«<4 *²…ï*ŸÚlðøýn@róâ wE=>ižÏƒkLô"Nm„Þݰ¦ „“$Ü7°…Oª‘m„I3ánç9¯!ÊRÞo­*ü×~wC4CHù rï[ß/åÔÓñ®Ó§:xMtÈrýVò’cѬè·„/SR—°Ö×Ë!ðçè¢qxA-¢?£qsF ˆ©g ne,¸h³·12†Ù4N ` Èèœ52)—r–5Od}UôéíJ€þFöüäâû§cíàüM’òý¿Iì3¹®Eéˆñ’ëÀÐ߸ËáÙ.¾v½jh4TÙlFÍoïIˆöÖ-sœ} nSÕüššSYyµØ@Ï>,íŸÎ«Ðܺ-,›†/¹I›»h‡%V9•çkâÎð&y«d<¯%-šMnLÇ&ž;Ó.—”Ìrq™>ëúË-1ÒÛrÂ-ÿüÐ…õÉz·œF–ªv,‹Gˆ‹Ê¶µÁ:]ÓÅ ¼õ†>ÕݰË Î.± 1ÌӞ› ±ÐùÿõsÈ}:ïK}0D=ÈüWèÐ #T¤x8žþ;à@»^‡šû*§ Þ*Ô×nûcïL륪³&W¡oÌg˜HíÿêAE³=0/ÎALJV™Y±kcWì”ÍQfô(’ʱ‘tH÷©qh{y¥'§8lììV-äà€zŽíÂ2»îð±s50¼Å­\»‰ q7mŒöÌYúÞ„ÖaìÐ(Ó`΂oé÷`ciÆçˆ‰”“$ôJ|Æç\%"¹$2•»!3rUÇâß}Í…¡N1¹FÕl3Ià?~ü5l yN1ѶF0ˆ‚s¦vœÕضçe¢d ]VlÏSjSÙKW~«/;ç[Zäž j£ = œ©ìe¢À¹wñ×è3$¯§W­1ôÄ«ËZç&9 äØV£G>ú#Pò´îl‰F¾Ô¬Ø|ÁcÜ‚C; ½ÛþJO VEÞV×xõ ºò«Ôë®B[Æ—ª¬ùdªk’·ìòÿNYRiè]™‘ÃçIG/ëûuñü#$ïÝ–uô}ÆnïEû÷Zþ– ´©H«´ÓÒÛNÃ4+kñüNKV°%´êÅ¥q·2 Ô”_nÄ ‹£Ù÷oá:ôí7/|µ&‘¤”œCÅÙ› vˆSg÷Z$”ÿ{¢£›Pqÿ¹v꾑Z)f:ëh‡ML+EW³(•È)l7~BY ™¹m Ÿ6›ñÛßá¿°Ž¼hpƒãMwÀ^p2 ‰ÎQi/ÆèžJ‹¶žÍ ‘HC\,î2µ<ç&^ìÁI䢓ptÀ@g³º¡Eâ]vpZÛ¿+&4´³‹Ëª‚åcî rHôn¯@–¿„ô…Dyþqë—g#q“³ÈïFüLÖÕúX”|ž å½lë·¨:¥)V7û$>OçÏh­`¹f÷"F«¡a°µ]ôyªÛÝ E‡qt¬!4Úæà|ùãD z>œ_­ƒþŽ(‡—/ê¿#÷¶k‰Eh¶zÛÐÆnô'e(¸ÏîT°ÍÚ²D5Öoà°/z†õ*#utÌÛõ›Ò’Ü Ï­Tªp šò%f›¦ïûÖ˜Gè)Ô ÉÈ7lycâç“27,IÔ Ô«›ç¸—` „Èé!š­z¥;r£ Ö[‹eY†5Y SF‹ÞÛü®”Ô‹¦X·)&t\T<…Yó2Ðû~ MàÝ"h€ë–Ûà9Vº¡Ü¥…j£@˜F;?ÃÚ1r/¬àÝ;õX:ó}¼ð÷¥aQ½Ïš™•„ËƒÝIUbxQÊÅ«¶Á5ÙÇ|EÌáJbÇNžf `˜\3Xzê?ŽÜ©£lf7Zªh\ÿ:²39Ç·Ctl,iïóØP÷ð©X›†-Õr âóí`–ŠÝáŸh6EYÙa£‘@äÿÓ:“¼“ª2gÏþO»BÙA°Nì*aË™]êCü±J–•?]#e쿨¦ìl”at@u½M0ÿpeîÔíârç-íÔyvK– +Rç¼-Ò†˜¸g`äÆ[‡ÛƇ’í Á¹a—«¦. ¯/íub.¸y«‡ž)Ö„ÃÝÀèe>ÂíZ4'äÀÆc½ÿ–\0ÅÆˆïkÈAÍþ—9«T{ Ùˆƒæ¸§g3ÝN,âukXœmÝfÜÅaðe^¥8ÛCl#*òVngh„z«ûí{/“ ˜r‹§ùìFÁ8ºÇ}Õ)¦¤P9øMŠÓ.&¸Cü0c6 ò›©VbŒðÅd¯ÿg†Ví Ýyh.ö†Ý—¬·¬KÀ²Ë/¡©øO^oºÃ²GXçVÐo#S‹Ý¬3zUðŽ­RWuSÃ2%û_¤.=³þØ„oõ—”nÆDÍÕ,4UµòoIËǸhLe@úg¶æcÖÇêÑõT,»ãj±å*‰ÅÜÛ4˜œñ/]¥°âËkqn¤<‚¿Ò”hù ZSÿ¤àÖÙ1MiîîBx›Î’ޏ¥ Øï\šÌt\VϞƫ?´½7±o-jÑÆ› ñg3—âG\ÆülÔDÈýõe O÷yLàî\‹¯V«éM^Þ}F÷£f"UãY(’v”×]:ãÚòÝŒXéIu• hÝÁ^}¤ ªŽŒv_ÕÛqâé~G8ˆè2ÄZ`W]”j­ë–kȂˌ•–oòf5ÆI`.ÇšzZ’VÔw–ié}51þ£¤ËåW¿Ö &¬Öòó}s–Véñ)†IHJLYýûé§ÝPÂÝKâ@égïUº´9ÝÒX¡_š-M—Αõy n Œ,xé2ƒ&Zâf!‡ýî­gv¶×P&¯˜N ÷>ƒðÄ`Œ€Ø?çý§¾âëaÓ{P嚥QªJcv‰\E.êïÍ´¿í«ôÅðÓ²“3ˆý±*|NiÁÊñëù•m)†\õ‡‰íÑÞ¹÷È[›'©£G@+K™§5¡çÌ'âsáM̦ì¹eíÅ<šlü|~6Z Ãe»"ËÝ_¢Ôe—üÆ/‘½Óp•Îo{—eu`eï0¡ÌIo ˆª^ ôxºÆµøõâaá&7RD˜NÍܨÎrÖ ¡¶™² +j8¾j¹šZ Ç%*Ú׎Ÿº—S¸å,ºe6Löò¤ï[ß'w‹šjÂ÷3¦4€¸2ŸÍy¨†ë kTÇêùò¶úÔÅ¡E¯lýhàa$â]”`°mС†ôÛ•òć>xpa/ô“\]ÑÄs`€æËÑ¥›²§aWº½ß¾¤{ töÉÓ2x!ÄvÔ< Bj2&ËR“ƸØaÕ«‰)]ÉÓ>µ8qYVkí¾·Ó‚’ç¯Ó,2—0.ìtÊÇ€;Ô–ü5hLîƒéÒ++°W£bÑÕ#Ë÷Ó+" u¯ Ëµ‚ÞÁ‡€£ªmÜÑŒ­‡±b™2®&Y,ï쀡ÉgÞ‚¢ÃAžû'ÑoìÖý4u„ŸæuÉÈÃÎ*‚"ZV*”Í¢°ù¹Dã§ŽÎ`â:‡°gµü´ØBKªþßwz¥âãŽD›+¸YÌËÙëRk ÞàÑæ¢Ì~ÿ5 GÄáǦcŒÙ»ÌlKÓø‰†ÖŦåÎ'As º[Þd&ƒ•zyƒ‰5öÆÃ¦)z!ôt²ÒŠ RÁ£c°ÎR½ä(­‰¸®Ñ(=Ÿ^nÁò.Ž3÷+ÿËsnãY…üM)иÍíÇV«¡ÃGm+¤W–mJ»ùà>ÁoT‰„IýW¶» / hÈé—ψ7økî»ûù塌~5Z@O&Ö)T ÔŽ(¥\¸çÃ-Óÿ²Š8X>kN£Zrek¥!:“;Ø×7dÚ8ìÿVå>ÙMdzi8Û¦ÿæÍƒ\wU¤jhÖ ML©ˆ—£ægjª£-= uS)æ‹1 ‡Ùjƒ:-É'Ò‡HB÷¯tEKU:u[üÆ07G(óÊY„bò-­¯ÊKžmEçbü4Ôa’êÏ©xƒåoN"æÖ9ÓUèøùb?#Ïr³a*R"wÖðFv\0F’‹¥1Áý‹§cÔv}üP°• CÑxÿ,_ŸõñxÜNñ5”3!Ök.ÔÉq²ì…r ;p µ¸!jgëDëKíôœXR÷{Èø»YàP2 œ—ô§Þ‰¨—<¼@Ãè/¨íª µœ‡7"öûhâöJ(õlÌ·ÒÝÁ8]ñé˜PŒÅ‹ÒpNwïꛕ (TËk7a" ¹—ð)þ’Á’üÆw‰%ÍÛʸT4ˆûFZêÿ¥Ò!8ºYœ È:¤Ë] úHÉŸ\æ§pŽ­ð7*ZÌvVt{Ûâ ݪ­|‡§¢ˆÕbÞÀg…/œ#SÙÁ‰N.%Îm¼ûžÊh箄âd¾Ý½6y~ÈJ†­!Û¹ò®lÓ÷DJ€>ÑÆ-|]»¨wƒ•J¶O™_mÝ[s¸£­ùø)b€ÞqBãf¾Ý:ÞÜÝ7ÃE›aÙôôE@BRŒ¹:ü 1»ôâ2 ˆ‰Ì¥‡·T7ùsÐlžmWέ떖ØfT˜6ÐÁ?²ÓýOZ0ð•ºnL’üL²s@øbÜådž¢?RY„ØȘíù‡!×9ûoR,3±¬9b ªÑþ¢Áä2z8ªÁì½]ÉiEïÚ23¡kK‚9vüüÚD£®¦Ÿ„ê)]l)¡†DjuéˆëúgH LdÐø­›r½tY"GÈúqQ¾9ðÂ>MÿÒvËáš@«E<¥.q6ÌM¦þGN‚ëFqÇÖƒ0:KlREl¾ÛG<àf§¾äX X€.6oÜì¤æ–S¢HRâñ òÄy ǧy–󨮥†Pw³ƒ¦8qÙ¼4«¹üÙw,Å©ÓyPXŸÔ!eø¦+dfNÕ&CYïªÁŠm ¡ÙÍÇ™F#Pù9%-⤋¸Ó?…)±[è[ OýïÚÓ£¶ñä€Psúï×ôvä»~_\‰?ÛÕñÝŸ‹Šq³ï¦Yk¿‡ÑU¾8¤uN+½ë¸áÁm·K¬‰ñ;®T$™µV/àË{!ì\kܯ׿#‹AT¶7šÆ ÊÁL½úßúü@p›— ;\0 ÜP¢+@nœþàÙ #IÆÄ(ø•ý™¸ÖÞ'Øíó¯5yÈbrìëµç-ÖâV>“ݳ–—c¶¬µ‚!²¶üÙvÛøÁ+°ÒWÆ×M$.r!ÁÈöƒ&¬L›Kþô_h‘л/éxaÅö`/å\§"õ[ìríKEëy‘èö4r†¥,01”j×Ìq»€¦ƒíc½’:dó÷NK¦O)yAè_(~f×˨c†?…JùÛ[S¡„!áº~ÊÙ–(5vh-Ž+½ã8Iª9Z(uvzD«¨Zù°öŸHmZ”/äÞ²ÑPØ™$Ï¢ï-ÃÛ¬>"ÌWÊØ,ÿå5Kõ¿‡GÊ·ª ü`SÕ¾¶,Rˆa_ávуî äWeƒY'ú¶ü6i×!ÏJ™çÛ_j±íÙ¼íÀgùâÑ/‡³8ö޼Ò:yB3FßöÔoß•y[Ùòk#ÑÝI hÜà±Ëk‰ÿQ~2¬þƒsKjh(ZÇø ÓE Ù-V5ü†R9®ÀŠ!IV6wߺ¶Ò`ê& ,3ØLú­uêßèt[j¢P†J;âã#†ôi:?Î7k+ÈÿIDdï Ïô¥%¬á1#ªâ” š:>Óƒb+äƒÀFǰ‹ñ½™¨Çsb?ÂÃ÷†P{œ5þ¦|DJÇüIgãxSŸ®+¢½q¶Rø#kM¤zUX†ôZbH1_yfù#Bö:û݃ª~€€7EÚ«J¨E‘è ¶ù?åÄž;°$4Z–î¶N~„»³#PÚ1¶ÈQz‹-fOâšvÛÏIH§b[=üGô;ÜèœÉm:‚{Ya±ueÓ”¿N›ÓC¤(l}ž¯hiEþø¿i¿B{šºíErÄí.L§ëµ~Ä¿ÐBè3•v²KRÒ)7c24½èÀ|á°\JÙ&„Ÿ4øª]9üÄq+º}´q¢4TTI)y¥uŽ5k0ÑÙÃDj9Q¦o±YìˆU%¸{æ€í©¾eØ‹Jÿ—£¥Ð•(3‡sœ2Õl¹Ü! GëAöèÌ¢0¬xq¹^p´ºë×ér•‡rÒ¬‚=,áL)D\÷ÛêïãPíÒrÃê‰ásíÔ&ÿ¯êràð‚ 1Ç+j\á“üÆc†˜½!çB22$ ×9߃—“ѤÛrJì*pF~¶ )4ÊñÖÏ‘‹'¶èߨ"ƒ3žÙl¾ ¿p¡È[SÏl“|Ÿ~êRÊS˘?R"Ø<ÅÛÊuK(JíÄ Gä±3HY¼j—‡Ž^ÒÈØZß11öáûwrÄñ” «ÖàÊjÎLÏÉ¿A[ÿ9J5FpʯrÐö(hYBµúU®>ª]±ôN®ÏΦIˆ:JyK¸ðòº›:‡Ò…ärS€Á§y†ˆ¾‰Ö=QÍ’õŽY´TÍ>¯Ž%Ä£IâèÚ F7ˆE’üÆf$;0*ap–%uQÌ=.äQÜ´äsÕ°]ék×Èw?¥ó ¡± ®YäU%AØvÃ_°GÊ7Ëa3Ê\€ÝÚ’º²ê2UIûºmÞ± Ó?7:{“Î?ðœ,1=nõdw„èW§¯¦Róž´Ñ «¦rl·’áú¥WÚ&à+¶¼4ðÖ CPÄ-‹‰v;¸d¨_ô ø›þ07„°‚5¥+ãÎàù³#w¢™¹rù:%ܺpªýäø¿Â'­wòí»—" Ÿ÷Ø•ÑÙ8Vo_~¹ÿH’ü. Ð>€Ue¢=Ð嬹¬è,Ü ¡PøÄd-§îÎà–aF‡c90^6-ì-É£Ûm¤Áë´W]1LŽeû`‡‘^$_ÚÛzF3£9”‰j0Z¸Ú¦ï‹-Ä&Ò©5Ò~ôTŒ[߸VLrC'œ6abæ{<›Ûˆgë ßÖ'?¦KØŠaËh‘g–7À1ñ­O(}ža¡Ü¥hºÂñÛ˜ÞÀ›(õËk ø) vÞ+D'¦q>~EJR€â¡|G¨qÿ·2ª°E]þ¼Óæ3½$£Y~ŠGq×»DÄþ€Šñ¾Å…èñË#óÁšðŽ?l6Ž–¸ 7SÊñSwåe#˜ÏÇüNP{˜·¢tç gé–¾ÌtVœ¨2t©æ«ýZ¡KóÅè ‚mL)ŠQÀ{7{«šg¹þ‘ƒü±Oû…P·S}9uÈ ¾ã;.|Ôñi…ÿyý+º1 'k«FV>ªî)=Í΢|âøtrËfºÑRc~Ò®¼\¶>ù8™{ݘÆTm7öŠ3Îa"OŽÙ8Ñ~Ï» ?$ü}b—8¼Àm¢|¶dX:g×kû{†¾Í˜ñ ¬ï½'u÷;…<­o*ó5}þK2ú+¿'–EÎó•¯äfzϱ×o\/¹óƒj+ ÚoF¬©N™qƒ­¬|ümòa‰ï¥Z¤ªÖMËÍgÑ-% ÍdOoï\.W¾uŒïoÌ—5¡†®—" ,ŽÊwlÞ æ˜ ²BìëBO³jgt{søwlOObCòµ$ ¸¨}ÚЉh­eEMVïHS»UÆ`C_þØÓL‚ÝþžˆŒÌæžê- zm{Ï{ˆ„&çzF?-5P{Ê\2•/¦¿~tMües8GT.½P_!#¥)\Õj†Wg Süq,°¦»*é.Ù>Å)ßÌ ˜ºˆ1XA!xºÉtã‹@>%‰!SŒijA¾ŠÞXUL‰¼&æö€û,4Üd›“ä†6¡<å’jRLÃP¡é[ éæ×RKÄ<þrò@£î.¬èDÊÚø\6‡‰ŠËÝñØ—jÒÚ\€à!ñžœç'4"‰ï†ä#h$Ë`«ª [hV‘}b¸10ü|·©€þ¤k×…Óhþï"ðcÊõ K*‚Â6£¬¦®ûø€ÄLF&­9è^SQo³ ß:oM* iÞåŒ:­É1’äOà‡íõépÈÎÞÃ%aˆ§Ë LEXz*$½Œ³ÕBÿ$7]T0 2!ttP£¾o6ÿsÜÐo9VTuÉ„! •zÒ¦áåfoŽKÍ#9½(¿_^RŒ2«/¯wæä”2Û £ä‡:Ô ­$ßšuÍŸë}ç¦FAÖ¿[(3×lÃø1 .mçØ/|¨#Ù—öŠÑ÷xa ñÔsm ÉÊ=Ë_ôd <¨êq …kª¤c—2®“/Œ×Ö  vÈ{ê4CéénpÐ(j^ÛÔ·¡¤ÆÈ¢9/RÕ™ 7§”Î’ŒÓ ÏEñ“þt[žþIÿ)nê‡üL²va„²^ðc!WYÊ.€"Á‚»H$R!wÞûSgqËßÒh`÷µ¹6©Z´%`×>»‚o‘ÜUZGLà¼=(©\O…7c(…~É%ÖR` ¨8:’-䉯:fØ3tèT†,ìNâ_*äÄÈK­Tÿ:KÈ­– Ã¥•Â_Fó[õ‘÷pÐbúû% Ô/T샦¥Œuïu§2ìId•/®—Vt-F‡‚$è*&Ê€²7(¥ ÕåÍ»Lä±òNÈ:¶é¡²ñ¨t‹¤vH‚eÛýù!L©üM%Kåy·5ÏÿFl/'üZõc¤ú 4ÜØÖª:ÁWøã¾%+bR䛋1ÀG½ÂŠ{â((ržql—*|„Á"â#Üá:—³·¼ÀW`ÚÔõÍl¬„eVáÅ…é_8NU)²AûÍÄë§æz q…5TÀu1z>ÒvÎX0eJÔÞDšÇÉÛ²¸ðùäÄF2v*E'ìxÖÚªCSTVí!*†AO$ál?[Ê€²´S! Ü¡áúÀ[…Yê†fU­‡éSdû¿8‘Ë1CRꪋ¦ŠüMuê ">‹7erü…^zlió¾Q”øy´ÙDíÅ”žn¶/Gõ‰4¨¥‚ÿèâ €3ˆx* Â9£™~3ãímÀºUòçë4ˆŽZ§úb"Œqàa#È•ˆo\ ìQ!Óæéx›à<9Ÿ®£õÐêéÝ„$±]&ô%rÇe S<ÕRD®0Q]wy\%ÝÝÆ®.z|†ý̹ç^ªtir0ž¯gú5D÷l×~]<ÚàÙ~1"öÙLnÖ̪ƒwKoœÙíQ·—À²y¸˜‘ü2e’ùkBÂ}ÂÜ—¢²ÞÎu‘4"[¤°Ü'ÚèÓ$'šŽ†ÿ¡èžâ½àÅTXG”i†oGŸ ÿ¹Çh©wá]ûO¥ü6h#D þÓËOö¹õæ,²pq·QÀDKzq!î>B*Aó.s‘¡I±ã+…X…èƒÞ‘ϧ>ÄKñkhAô‡¸Æi¼U¬rµ¡¹ßÑkÒŠ÷aÆGº9&{Ü2‹¢HÈ?Fùl„ºþô±SXl0¿%Ô˜A¨îsÚõ™À ûs/Ô6ü|¨)£fP-Þ¢k¤ s‰#™ÀïÇxàD÷Šì0¬mŸsTƒg7ߨôx«ñ>¼¹æ1ç¿1Ìk”%]º¬CeÿÙ­tÏÍÌd=ÃDÄÊ;úTÀ +…Eá-n X0·¿5T9^¦êH5ù=oÝÂGBžÂs—ÕC ±,n>.³…š§f ÀevwyÅI˜‰;‰äOõÐ?²ËTÈæjðKeèÙ®I·¼$œ'Ùb«¬ %BÜË8Œ!Eu½ƒ2Ú–OîSNíÚ´ÎÄßEôÞp7ª;ðêZ¿½Ý¡¸ßT$C¨Ò«á–.äT“šÀK(rÎ0*Áw¨ :©«l!´˜Kõ5ÜÔœv—Ô¯oC1±°”Pb'CUÓiѱ–é‚!iVfEȰ?)iû íû!Jeã¡©,tBL´oñ‰ñ›‡ £”kC`Ò(¤Ã N5ÆÒñPr3¿\}Ó‹®¦êæ„¶4(ðkE¹„F8§gMÀÁ!Æ``+=ka»®ÅɪH÷ÉSžjAfjš ±^YÙØ_`Oz0mÉdØ«YÀOŒUš¬Ø=°X’÷9æÖºo-3þíÉÑ_߸~wnY ÍDéBqrh,á‹ ×ëEÜÄL~¹}r“A Ã[Þ@‰Û·8q…œüƒD‘’®fÏ$3 ‡[cð=Ù»[’ø¦ß«Ö¥.>LÇ|¬7Քȥ’TŒâ~y©34Zî‹H² Ñ·uݤ.ëØ^F$¹Jâj㙵KB%¸TË5…#ôT]ü®Ž“4Є°­D™/fùlª3f2&gEì`%6C‚«OÏÊ“µî8sÚ.°ªøQœ9ÐoXFO#3´ˆ·#Yþ¥Û^žžá2øUˆÑ€-"%»ûÜ”ËxË>N›OĶS†)gæ\åÉõ,jV€`R-ã ¼ßZ øé {íMœÏíÒ¬ø¢ç0Vú£Óv%ÅÔ?o¸>Ī{—]e…•S>.˜ö×QB‹¥)Z¬Þœ+¹/e Ή(DŸZÚÙ´ —oé×&‚Iû)þ¢.vUîü.1—CSÄåt| |‰®‰(º‘ßj¢Ã!@F'š¬ Ú¬[1ÁŸ¸Ùðñ‚•Ïõí(tPVžˆè>w“§›®}ÆÇÞž/Ö—N¬MBO7"#"ÝU{R ¡X*n.E¸Æ†ŠŸ#ôX}ÇSä€Íýx6¢¢—¡¹ËEšn)d; g>³¶+Å€Ùga Ï?áVLVÚ­‹®U¦þ¤Cy&7¡00™Ûp?ÞJ¢tv»3 }ûëg)ÖF%öØqä=£U ÜRù-9áÒw_'b0ü-W·ü5J²‚íå95d ð™Éã¡e{%'Ö@Uo"fj`…?G¸û™$ô€@©°~²ëAÏç)›Ü ô¾3®©Lãðb¸,¼gs8oi‹L¹˜ÎÎ0þUüʆ=Ð^òü‚`3èN“âS&¨ìxSoz¸Þ — ÷Q™ï»…Dsër©zÁHjÃÍÞ:þ„P¿ñ½³Ñx}v%àöô>—÷'f§Ëg)ižº\DêÍ]f¿MzYvƒ¡ï"'EíÍþ¹7íiBé§'íÚ/‘Òx`†î^¨~¤`?Þ¤GüLì ‘™;Þ· `a2†1mtu*¡3b`½±ÙŸšyja;öú …߀ÉAŽfðŽ@>@‚AñQ“½ á|`àiYãÑT,ÀKâ[K:‚–ÞÜgçªÕjÛW¢­XJÁ ³‡‘6DyX l/çQí´8TÇS•à©»q–_~†BEæ6tB¼’w»·­‰¾õÊíê=µÂI~æöOÅ’öW 0Óö{Ñ9E²´NgxØ„®!÷tܯ“\|‰H°k`íÚ—”,M=/1¬ôN‚tšHò“þü1‰‘1…Â<µÃ°d‡F¾RAP+8„ur9'‡‰ÊSÏŽÝŒF&‘@ÚþB›Š Á»ÄBy–E +FH¶+[=a¿Û´nên:O–5X]&¥³ëú5·È`–€šwÂí„Ë69ë®þ󞤫0Û­_Ž?ªžLºO£¹éä2ÙlìÝ5ó`쨃DD”L2H&·¦1ƒ!¸¼ì€š ƒyñ÷õO¦Ï »šÖ˜V©ðLrÞJ²`õ¥S&(‰8&u:–ïç¼2©2j1=V¸KaÀ?ü±øã ”HC¹¶öZæ@<‰"ŠY¬ÇuÕ×A.ù*mëH"3æÅˆÎDÆq;ù"Ààal î†ðp’.¶8œ©t+Q(9…®P,‡OñÙC˜›ÙÔ¦ÎM‘í‘‹ÛK3㯻3ïBçR[Ÿ“¶Yâýé‘àxDZyÌ럆§à|£HÁ}×€º xµóLw?]Æp:ƒŽÃ¨bÎ ]É€/ œ"Q‰‡¶}ÀáYñTÂÆ ¥ÊçiFôìÀL‰D¦ÌŠNPéù}7ÜJÃ3M?³&sx~¨,9k5Bü®€&¯Œ#âké6òy6vA¹ÛDÓ1°:¼u=jÑSKí¡þzx•ðeüB 쇛rJ#`ˆUBæ”vCa^{Óφšj”×ÿ?³ôÈÿ þ,é”RœñÏ'}ŠË†þ“Ó™¸šå¶ŠìSn¥j¡h“û>—©ÃüïÐM^|P¥´Ö,àJt jr¬¨Í¬@‡ú%YS4ÃE…¬f¬˜Èaå]¹çÃV/޶S&¿D}OtZW0·Ûª´6¬ü7Îâ_ÙÍ©gw(|» Õ­fæ²ÜÔ˜Ûf3CZ>ÊšXÃü°Ú£ÌüÁV„Ù»{öþL²y#Â÷.û·ðæ…‚©¹‘ ´=ÚÂM‹Ú»àtù‚‚[m%O:;µWíó•²Ò-{Àh¡¯Ÿîª{Ë¡tè›?:¤Ðk}ä.Ì©Ÿ0˜$-Û&ƒª8ˆ˜©–ìܘ™´jê À%[UYPÓmEq°lSËÃ׺ŷOßp~§›h |â…>S<ð{éµ–‘|N`d¹v@çG.̦£8u‡9¡êï£É'$ ÅŠ_5fJ–˜ä'^¦UcÍ1éC ‰.V³J<É;ý½ßûɇµÀr„þÜÂä/ÀÂü¯îvC¹í7æf7Ã;ßÀ± kE…ðR¶u…ýöi[ƒœ]¦¥>ÏœyOqýÙKTµÕ†?Y …Ž9…_øÝV‡†«·ªå7÷*ü Ÿ›vàòÞl5rÌDëk8;Ðt " þñÀŒæ “7žë“(ɘ#—r ,£#oóM#sˆE`£ÓÄø€Æjüê­Òfòäj!iç§áK!xF°cR}¸(¥õÆžTYR#½”BïD¼Ë@V.˜ß?®Ó?•Ü1xž¬…ûþ³]©Ù‰œ™Õ0·è‹¾¬õ¢Qª—_G!ë@\XhšÁü|­§$2”(Pëð ]›ÍM‰2Sì V@ëE(+6»ÃD]ZÚkn£ñ H"É>K«Êt‡‘àÖ50“hî°ŠÔ¯ÞV C»çÇÁ.íû¢±ÛÁ‚ÈB¡îáﱄ ï*”Q”/^Üñ:׺W ›™l¹7Óæ‚õö°|M´Ñ)jÜZ78Iý‰×ÕbFWÔ•bЧ!^ûÅÀ ŽžJvѼr}Yc«cðÍrt9D)RáPºg~‰=KBÙ6÷ àÙº"ÙšùÕG£êýÓ§%%{cGæºå8,ú ›zžM÷s.ÃnåK`U«nO²WÓïb-Êñp¿î²Þ‘ÒÓÊcç7–y,8A §˜ Ó©øïoþ÷°ò!§~Ê B¤VüJ$ì T›C8Œ£ÞsG75êP'£”› ‰>ãw~bÏÅȸ•ataaêIjåŒãÁÏÍùøå´ùáìtžTE›ÂñŽ ¸ç¶àW\:3ü]üÕów¹ôξgŸ˜ kÖd†”ÍÂ÷`; µÈšçË|.@ej\8Ó“Ý%h®q³•¬ÅI?<x@`¡ãCÜG³ŠÇjˆ8甆í¹Û4lqF ËpP»åÖ“-ܤKMJ9¶Â—#I› ð $g»€¯.= Á $¤úIå10·€ŸИ”Ä´“Xïí Žû„ýf·ÀTÛ5¾bUÑu^s’cK< Š>ˆÁÅñ2I¢NClÌÚÝ@QïŸÇÈ9KUÁRëüLÓ³ÚRã•:˜YLGôÞN§BLÓ›NÀC¾ô !¡{^Uñ¢,Š˜!4œ,Ä©uƒÒB~$ú»™Þ&iWWL„~ ò>k2 #Ï,nk³;ûê•ãÒ8sR1˜F°K"3v¼·íy¾ôµÐ%¹=\Gig0Ípª¢G˜â ͦÅr›gTF©\YÓ=P¡¿ó)mç50î¤lwÖM…1DçG%€Z…+âò º¯=â *Xš¦ø?}1ÖjT$sãÝ7Î0 $G?¹q»¹3–jr÷ ‡ô3¶Íÿ nRþ¸ˆü0"ä9_3(ÁüÞ]Í®o&È¿t¶mÚé“WUàëfï ®Üãn#ºtÞq vªîv;Ym²”0™U.§˜àq ]_\ݧˆU;n]±»PZíCë*oSCå²w†iµS)ªà… Ås¸¿±}Òø”6ÿþð»áökÀN9Á7?œUç]†øÿD9þÚ ¿¼Ý–g·Š×°¬®v´Ú ¯³è4‹´Lé6Ào¿˜3ÚeÛÆÿ]z>%^fæ|¡¶(Øî“•EÿüL¶M„ˆêÎCf¸ŠïKÏo^A®<"ù)ÍÚŸ3³¢ÖA¢ê(Ö›Ã)Û¼ ÕÞµJºò¥:«9‘—ÇB昧Šy'i›‘ã?2÷5~ì>={ø*sºO&Êæç±áÔÿ·Å‡‰MF–Ž„i‘ìÎî ØƒàZ¥#ò|Õ¹Ta‚G_½Ç=DS ¢tšüè¿`$äˆ#Ff‹Qc–þö \¶/ÉÕ1¢É7^PtùLE²ïR'á§j$*-NH¡Z/Ÿó:Ãû†;¼øI¼¤T—ˆ Mš“u¸ª|¹ó†c eKW9˃ݹ½«øxÍ B;lÞ#JþÁvüÄ«ÎÖÖd`ºÖÿÒù¡žF¥þBü$JÉêZÑ gQ½O‚Ï=éå瑆JÂG¿ Ÿ’Ö¿%i1Ý6·$7fŸbˆ Š3ŠÚ•à CÿŠ ›‹ä"®ñàbÿ»Oƒ/ºøïsT~°»É»iÓo¹†Àq§œxÜmG¦HAj]“'Î¥„ˆF´Ì2Fç:pä»}í±=lÔ fÌ…nÝ«Qª£HS­4ò놨(fèVöÃ(ýÞFkÏuÂØX=—J2þ%ô±ÉŒ’æÚÚ“ >Í£¯ë$äAüEyÏšÎSÆ,I>†)¥f–j{zEé0Æü¿³ GžaNæ’¤üÄm¨û#Ä›Më#«4ø³îX£[d5™·Nx–<÷—Û¿*b›bõuùöÍsMMŒòM<ŲUæ6åzŠï\ÍŸOÎ%ÆÕŒ Ë­ú”o qzL„¿†R‡ä<7B14µÕ #ê Ûwð ”$¼e£ÇdGÙ· §’ϫǖÅFfM”¡Ã.]Žj™AS›L‹UšKBÓÍ~øãkÍí¢6ž?œ¾¼Mãéž§«ƒCl|±eGÜǰ‚=ÑNH걈is›D¾ æýO% ÕîP=ÝÛŒÁ¿Ñˆç6_–mYÍ­5â2d}o‡ëýti ¥üÆ0ÜpSV2îà°çøz˜ÖÞÜiédç_ØÏ’Úœ7ÓM©œ "yP2Â#y½j7WÐ6R˜efþGžø¦[/=€@ë„åÒ×UTìÃj}Ó)Cr¿M:ãáyD@Wƒ7*ôDA@Â࿟>!J!À·;‘LÒPvˆ¡˜1àftw?ã—p÷¬8€Ýq1Ñ3ñΓþp™Š©‘Þxû³Ý4¡ðEŠ›Ø:Vc[ Eèsz„sbv6+Zð)$|÷ª.ì0p±»A¢~,ëŸÓ'¡ÖD /&OŸ¯)šíŽ ÝÏljvâ‹ÔZL‘¢?‘õ.ÜA©üÄlÎæFçO>¿ô%µr¯,W ‘í§qĬ4C™DOÐ=ôŠšãôÍ&­K€ˆ y ™¤_NË)´ãßt‰¹ÙCÃêAŠÓ`‹øEÎÑÜùGãÌœ«@!¦õˆ©¡KYD`E7 n›C|ù™É¦ÒÜœ¿ˆ§Œ'Ï‘úÁâ]\Q4÷kØ€sqÏRí±·>…ûpP:Û˜¿yê-C}¡ŒË`“ jUñ„pûmcTDjntø½Êìöò´Þ!S0–±Í•õÚ>â~Ï{ά¸ô»Ç¢ôñ¦¼²H‘ˆ>íë• „éßÖQwpŠû ¨ük[\È3ž'‡—ÿ^Xz§5¦á5D*“ ,Øe|jLî<­v<¶óM;ß8nݾü.B› • j.žC¶X‚„Ï2'ƒ ¬°)ý30|£nvÙîNnpàÜêªwŠ0~ ZÒ°wÿ>ñÊS2†Xñx5aeo+¯x¿©RNûûÂg¨Î$š8.°Ý‘ÒzZu JÊù´ËUzÈŽÐ5/M# (–õOTš’Ã/Y-']+¥šœº†¯jX¦Š$ôPó»«AÄýe«r¹±:…½ÎÅZd áÛCÄä;¦¶{lŸCˆÌ4¶ám"^·&G(Ä‚+Æ·@˜ü‹B¡ê„CZêÍ©}ùÝ<`¤ÒÓÚh(ýe_ýœ·øƒãPW2ÿÝÈ à¿ädÉʶL_I†uû~mnœ„½AWöþ 0Ž >8o•´ëžêB¤¨†‹¼ ÙW¶K%\ÊØÂ^yžƒG¼z¾Âru¿ÙÆ„6Ï] !^¥æ IŽYƒô®]¼Va =ùÎ3ý-öµ?B¦{ 6 bØ0¸‡]–³jÁ¯tÇ*±}«C[>zx{˜6&I¶{ÐþR²¨ ïIobNÈv ÅJ†œç¡!ÇXù½÷ë`{,JGᓸ{Ö×IÓ”õ‘hÌ;Aݼ.DÊþæ¦èñž”î_­æÐfE _Wv7b¦'hWÙhv4^k9®éÅ<ÜvWgêå%ih¡‰²«WÒ~ƒt´Ùù@®Í‹aëP–¯ŽË¿—{ ~cUU<.´%h( p8‰ûŒÑüëñùÍDAˆî¡~/è™ìŽU^„Pa¤Ê1`ÀeŽ­’[ù>î•íÞ9X—"·1Íg€tSæQ‹j²þ—˜­ï9²!Þ˜@.x ±øýYQo¯bƒY—…<¼õ¤Ê鸸N$zsšÐ¢ëè_îq ,£•Šæ¶CÎx1ภS©{â‘çb~(]SUñü´k¬bud‘õÁ#ÝE ÅüïUdK„sŒQèk^7JÛþäý^6éØý¥ùì/TÞqµ4 @×Ïaö(i)·ÑþÞt7uZ°`Ø^Ug„ÒÃoÝBô êð!WæXp:OØ’ˆ }œ_s¦D /˜J$ çXBŠ àÇ%3Ñs%-!}Ê 8i#dùy¤µ×‚ÄÈÅcK>éRSb©Öyì}ÈNÓ“e¨Ì:åà¤YqNˆì­çwx(OÑùrš—›.ÙÇ5©R¾?ÎÏïì@ü„Xò°‰Þ, G¬„ir&Ž|¦t¶×k´™ˆqå9EÞob žâªAΈÂ>Am™ýi¬èk¡"Rx¬y«û*`ÕÚT;G}˜’pƒbS;¿|GñÓ¢Ç|®¿b¤!Ö—wþàq¦Ö1Æó/2n/¿^”¤·`ç-†0ÂB\Í©t!W::´3asJˆœ2§å–6 [ƒÃFáÊ;ÀÅôm¾Ç¬…—7×Áð¢Vâ˜Y¸ ÃÌ®úåü“Íù\9)L¤©Oêå¦Ô-$9ØjVÙ~sú Õ³ü†kYl\üÒËð-8¼µš~ž+HD¹XÏàƒVž™§#®F³¾(SO‘&mØlþºc[23`ì1Å}FQÔÆõ ´…]Ypw‡HÝ{¨ô‘xØ$õ Ööø]|Kò][T3<`[‰ï¨Pw‘ìõshðºcK¶©ãœ2il®W¬Õ¸±µhb†¯ˆÖ/íie¶äË$-ž+ç©VןzZëGSdÑ„^tõ4ü6V<½kéUâžP}:+°Ôû7\Ž23‰BÔÌx—<Ó‡Àáø*³(VmÈ+<­¥¿‹º~¯$ì®—àÌœµA9™9…2Iº“í;K§Ie Òü7·hj¢o‰|ò{ùô’´ÝëÆC‚–²úê âƒ`<äØú š›0óùµÛq6-䟯æŽv§°n’^snùy)%§K·Š2¿®¤#~å#.⥚Ý;WSc&¬õ†cÚÿötK•"¶”øKþAÝÝ8¨Ž1\áã­m cF^üI„·ãPðà‡æVfwÆò×¹º?æXRÍà³,ë}b g.|F]àúk­$ [Æÿ5¶Ì¬ùþ>Òاž‹‚%EŒ§A%²€áޝôëíœe¯iF=—Ø¢r,ýŸðóâÎHÍD&¬Aj/F1Jf@;/·EÑ XùvAKßâ7 µ‡h ‡ÖÙËVÝí]æí‰¬?iÕn”d9,ú¢–Ç;þtï-:c%¤M1?i§wæd·ÓÜ\ð9ñ¥1J¹¾…n°[Núüۙȯ뵙 ::ÖÍ££Ú§É³AÚ«"º-ww}ÄhIï5],èEI:H„dûŽn³òZý¾µfË¥Šâ¦«è¥€·~’¤óû•ò*¶ä_dí ¿ç/ù®š ÑÝñhf©¨‘ò«<¸x|jH¾RUåÔ Û{l|˜r™4üÉëDÃil ™rÂ>¾$øKƼ¤9c¤3ãïÿu€µó«1‰F×UøaŒ©Ž”„ãö0{#QyyÅÖí[¢Ú³Pû_é¡£ÀWˆ#W· ‚ Ôg®ŸÃAü.™šàIÁÜ…i ‰¬,;p@ó !ø›go ˆ¥‚ðIºt4.ðÉÁÕU÷®1ù‰Ùy ™ ¿²85 E·ÝkrÜTÇ)µZ!êÓÏþ‹À­Ý7'ýfÚç“§ê‡6Ÿä"}qU"ÊóùyØÄÕøam€Ö;‹³ˆä}óYËqkMþ*P~,ŽÊÂ[ óë¶²ÍfWÑã•æ$Èi¾­f"ˆ9×°ŠV>дlãüöõBòÀ;38|ä®[y­„0-M uÚz¶ËGtÏ.@’{×$ÒYÄšÁjªÞ§»üL÷dFq6BxÞ,Õ· ²j© (‡¤¬g%¦+/“y­òPáê'ë­“® -Ô~Œø;Í®­;\ÂsTÅ8(ÌãS<¤WwÃÙdu Å—–·SæÇÄm Ö„üüÔ³GDø•²âO¸SÚ½õ{‡l¨v†„ü’A‘hk¾þxrI{˜úxjT†žÎ~LæØA$ (÷Ùí"F%l*{HçAZeï°ø~Cs(*€Ê;›Îñ´q¡Ä1¶½ÔÕc"uõR™ ¿š¯åxÏ«ØØit˜Idǹð¸OèW°ÛüJ\Ì~êwF§F¹f8~Ôœ´+F !"š @“((?þê?X(ûzãšwžHB€4m­”~ˆ8q 6ѱõ ûé‹K2­Z2þ1 Ób|£¨í³ö祰æ›ûü­b„p%È$ÔbTøŮµü“¾è²²}•JÏÛ‹±:cæY¼øT%þÐj<"M€;á6j¦GÎdK…¤VÜHc˜ Ö µ C\uÔ$'…•~sýX<ñvüó&1,HŸ•“w}ªåiÁršÀ',“<<¯ùîÍñß@«Ð_³ÈãJhü0ó+„J*JEVŸF^*\ÆŒ¨«§¿)®o?D¹6øéW؆¿‘=-ã5Ý?QE‹x9QuÂÊQ&öÉuÛ4fP3ï5Ñ©ÜÙÕ0ðwª°¥7XºGÌÊ£\ãðÖšE//xiþç™už9ÿn‚SˆîSEúóˆqØß9 ÿidJIQ'IòŒ d‡!¥}Ïê0 ƒOb*oôfAWÅ.é*­Wòk;˜%3±‚SÒå&R®NÞtDðúÝ# C'(¬x––µ!wZŒ dS”ns§·0€_é uèͧ[V$rÍÇ×Yð.sÖ=üJ\ß Õ6¿ô¹`ŒÍ „b08 n âcÍÅ1¹™—ü±2Å%yì¨ Ø ºui7ªR‘©ã¬- ô#ËHk%˽¶™¢hlûguÜ(†¬’œwÖSNÚ3¼ôu}*z`zQo}烉\GÔÔiË)ßÂg¿Ÿ¥ña†¨ô£b–Yb29BÊt™,¦çäA\ø;fšœ‹Ή0娲ºîhI¤K¶'V¿”0\C·ZóÁz±û囡±éò ›°ÃÎ’)×{Aî#ªŠ<}¨E)õ™Yš¹x˙ޑ¡hhÏßs²O‹D¨SÄzÄt³€0P4÷x»æÒ°üÆlÖ.3í“<+¥ºPƒ°æPð1ìbÆ‹ÕvãšeŒ4ìÛÔÙÈÇKžCèwÖ N6ý¸Š°ÈvE£Æ™n~hÞ° °ðÀ+®¶l)sñ¹¸ëdÞ«¦\ǪŠTo8çtÖŠ¡1R(Ѻ̯[©[ fhGÐp ¼¼ ÏdTÀ/¸çžqnÅo#ò<•Sƒø¾ºõ¬bëyÙ² žg]jû¿ø&f©à(ñ7Y«¥ôP©¥1§&°ácÈCß³+ )€p‚\•ᵋŽ\è¸NKñ\Í<øÎƒ&þ‹LÏúï8¥úò˜1¯?®—´ß™*—_ô„LˆÃhb¶…¥ü®¾ bˆ»åÁ@>zf†lÕºÑIrl$¯ÿßÐ"GV­µA F4­^]ú»«æÂZ'" oUÒödìØ‚PÁ®óc:„(©Á£.<ä¢ -phzR cKø€YøRcX¯‘ql2hKƒÜÝo¢ ´‚‹ò~Æ>>bÌá.‡#3„“).šd¼÷Öb5´5Ò;M*O]îÒ áß™];æØ'òxÝ+Ûg?Œ{ êþÿÄðàY¦òiD„¾Æd¶ØT>ÝA”Ó÷¯š:9K©Ü·žPsªõë&:;º)X#Ù¾`fë´ˆÐ|½ñÚÉl"ÔüŒ/ÌEV,"$å°ÇlüãÅ ôk¼1%0Ѭœ²Ì‡/,˜)ÉÚ¤;IëÙ¶0˜Dí¿vg<ä³YÀ³Ê¹+~Öåêl[.@Ïs•×ù.È¡1Šr´¬4–I—=-[hn‰5Ýöœ¸Cu+4U«a›ävjÅБö‰!ÏzB#ÔþœªwÕÍ󺔮†`˜¬t…ròdxã¥6XÒöQyé ýô?œ*ßòy"Àñ€¬wÅâãØ×ÀVï˜æš2 ô+ËX¾;ŸeÇr‰†y‹æ{%åŃ$ ¼Ÿú'V§ù±^”ÜEtÐîoXŒD…OA͹ ëâÇŽl ¹²’…¤¼–ù ÉÉ>qwµu¨z»ÞLôØGX>õ!¿äãh~#òÀG :6D‘yE hLÏ”e:¡ŒgdºÙA| ²š_xžâaå ÜjÅær%Iýi ì³³`¡DÙÑÊdËÚÔl±'åW‘@U‰*ººº¹÷tí?Æâê¿»©™â>‡g7ž%‡¹ø–zíÇyR{Ù†¥ ¡µr·øð 0r­žX …F+#ûÓ™{Ñ üXÕGgž›q Œç2b.¦Ž‡ ¬¸¨ W’©ÈO7éŒëñdOo:-Ñï\s0Ù/¢Ä¨&Uí>›VPHO‡â”DÔ® ŠwpÐZ`…„àÌÌÖ[t‡SÆT¿7Š@̪EÙ$«&ñ[C7`ø•lú~Û ç߯Là"–æèÖê—ê‰Ks7ö¼'³¨Û©M>J›ÙªoL$•LeÝ5€Áýýç*øê2 Ø!‘¢ú¤ÝËŽufyÉó[6Rã'+®›'KþÎÇ¡ Ø‘—‘Øá%ÃÑý‘Óç{h›Mv2b÷ßkÓ{‘æ2P©!MŒÞîÅó0ríÄ´¡¦ÌÉ­Nù}ó‘ç&Ñ a·!k_ª #›‘6D†Ö눱°F»Zò§¢î´Ù-={0 í‘­A¡=^8Hz×à¢Ïw¢^.´q¡`»–q €©%ãqë¬8Å÷´ëª«šüâkvô>Ù™eŸ[ëÑ‹wÏçUåüM ÃL±ßçÍ%×P%dÄ-ûs¨™Í€:ž¶õßè‹¶Ç'ç_ÕáµÏ–:$îÑÎ#ܶœ&á€Pë7 ¨Ci®·\‡cáHƒä€Ñ¤=8% w²Ú‰ËC7Âç™xÓó£¤ ²ÓÆŒOÔuÊÁÉ–bÐÍHzélø¦ ŸÍ•BEô.P ¨ù¢óðb"¾5hÆ‹½šù¼1$ÒôñΕ0h»­Â@z󠧈k¹Vh ¾0ìË ƒ‘NÉ„/ùݽœ—Âu–Þ$¦Ç(‰6syé\:F«p…×nOggS€¨ä&¸PŽ4ÞàåäÞáëáÞØØÒØáØÖÙãÞÙÝöóîÿÛÿÇñîîìîøçÊÕÅÓÏÅÓÑ××çÝÝÔÛÔèüMXtسùŸ¥U ™ýEÔ(dù²[¢ÛÑʃq¡!,wjœö$|{;‹ËwÅ7«›™pHkëõT‹  srâðÁY˜ø¡ØäžV£µÝÞ\ƒ€é(ØFÞòàHTÆ„åên!õ)wüÞ”h…]ù/À¢´±+%ú†däÂþŒÝü‘˜óp áOä"R+é04í:ê[LFôêü§„ŠaCˆw­#œJY%öH•¡BV¶#…º÷N‰ ¢Ñ¼8xßÎâ2”eS·õK(ûOšÕ›#•k&ËVüJb‰©k‚&ôÛ°ïêÀè²u =dT¾z¿'ó’zdŽ8$µ÷$~à<ìøìc eYDº!+èñK‹­L¶)ýyUÍrK‚4qïK“ÅzÖy—ð(ð°‚@gÓF‡Qùû€P°Sj­ØÜELL`A„q³JÕb™¸ÃwC=ÜÜš¨çw™qwþ¾Q ëšù¹Ïpñ>Û¦I]Òqä‡x" î[û3ruÖöÉHòV"²·GŸÅ­^YßK¡–_é˯¯;¢hn69%v—kïÚW1ïü©#‡¢üÛ»kð°ÇŠ–O»¯Ûp¢ú/ Ú‡ û&uááú†Y±ÅuEí“‘Õá=áÏåò”ÝB„®òµn{ëp±?uVÇý* ,¸ÿ%f7Žˆð÷ÇÂÐe1ÃTÝ÷M¶úy#Î*r¼>PÌs§ WW—f±±w#1ȦÖIœ/sòJ¹X`·[àð¯_7@Î!Öÿ¥C•Ï.`=_uÄxÊNÚ{½¡ÆW †ö¸›v0V}¨Xµ0Ü3dzöýåÜô@†‘ùªº•~%4{²*„‘‹§iNŽåÉN°ŠÓMVê”’ëüM4‡âu0úú“¹¤QĪ/À½ö ¦Àgþ'Txʘztàdf§¡’Ô‘,ëë‚ö‡}¢én&ô²ç!ë¤/'„`›k^ñ8ÈRÍñpò*Yv"BêÓ:i¹vºûW’Gžô8Ê'1{9&ÞPÓ„ÊTö=mºKv<·×)mKùñùdAÂWÔù,§´8A|1 ÂGª½°š·dúCŸ[JQ;‰×ÍÁ¼0U¢!DTÇ⃭ÈÞ±øÉÌþ&&wå‹|£Ù˜— 3>kxrˆÅ,–ÖÁiDTåÞî#HüMxу¯é ]Aï"6%N~ï ²Í~æœÁm9 Ô\ú Z•oQÀ„±ÕÎï¤2e+“$†²1zNí¡²qZ4ÜJ¬ÄæÄð'~’Ôðtóýq'KÜâ8Ŭnͧ³»~Ãq€Ö·Ç¦^ÐôøŠˆcï[í\ÙSAµ#W$‡by`Õwâ3H*Øo‰ÿ°#!a°>‘ÐIG~Ø£'Ò¬zÕŠøêëOgY®% hYoÆê:Uj/šž'‘p—.ßË"Õ“Ù6r½¼Þ„1[ñü5'^˜¾ _[G³×möÏ£€ )0t qeF< =µ_,ðUrM!à.AÞ™×íK€Z¥¿éÃ’²ÞºÈ0’ºáNü‚uådm‰{è9Ô}²g0Òæ|A”™­Ük{’ýÌ´RT ¨¼í¬¾ÄçX®ZI±ÈÝ»eçŠþ}6ʨô®¤oMikM²x\œÇOy%ÆÖi.êÆ2¯:´Öo­h]ýàe®,jü¹ÿÓòˆ p ë ‰ü½[±Å¥>Ñ…5«Ýñ rh ÈSÆÔì<6“Š@®çNó7\üÆu±tREÝ Êâ'²F±Aã¤QkFEtHÚ“ú<8‰ˆOóê¬!\ñVÔU«¹W_RÄ‚ðß·Z%ÔÚ‡3Ð (ˆðF¤Žì‹nuOcyñZXƒ¨;õшofä²ÃPTÝ®ì°hŠ[Pu­Mt‡9³¶á¹I‹$é¬Cß×! ¥M.R4`¶ô¶÷;•°ŠÁgô†sG‡Ïo×É­ªò½­Ür]¼„-b ±nþ\Õcž!/Ný®¬VÉ—.;îÛ0Šfrà[úq<³ˆÿ }”·Aýìì8‘OÜrO‹îZ_j %üÆlVIwÉÛ]¿½£¤Q¼Ú#ïíC<3w&ñ“M‡ å:ë÷ýÞ¿ØÉ¢ÝË€ŠNÛ~àjäbõ§»}Qˆyö³«(Ð<ƒ %¼Ðæ¡OÒ(Ñ1T¹FDU¡ÓW:Ã|êä5ùº§é `YÄ\JƒýFo¨<ò öšt*pú…ÏCTx~EqÌ%_˜JÊ´œ™·ÅÿÄÎWv«543ÜÁïLm  Ù< Àú/“T1N_ïæIUO¹eÈõ. lRÍ?éêhλp@“åêÒ÷Jw¾‡)ó`G @çSÉ¿ &üI ¬â|H iÜs/¼»ûã)¡Î655r *ŽiƒrÚîB\¹„P0߬y”ªz®â#¿jÛ,<㩺úókç¿¶”ùIÅfþj ²çCSnñ=Ñ 6¤ÖlÐ0llÒ&÷^qýS/ÞvӖĨüM1õ¥®Çppgö2¥â³G•·õIs×ë3éÊä#ÊÆ#·´«K‡Z9¢¨õñ;ä{〠Hđ쓧’²fP 4®]‹"U Ð&¤Ý]Ç*JôÏ’2æ’„¹ö¡°Ôš+”­­=й˜õÔ3DZÝ)¿„¸Ttüª ”ó©f´=Ìñþ¶^Q\l{ƒ²náP3$„ùÙjÓÙ³²ß€“1‹Õ‡„‘OºÎü[5Æe'0cöú¿ºóbÝýÀqý•€ÜI×&Ä-íõ±ø¥73ïœB½üJŽ*Ò1 dń젳(P¡ÚV ™Ô󘦗®jUg·¶ðØnc¤¸›L•žÏ P¯›z£$`Üèïç±ø²µOÛQ#Ðq0ª&èïJ‚‹Á |š®Óòõ80ˆ“¯àÅd}µ;§¢Nö{·|¬"l(mgW XúÄ´U´·MýüË›ÞBÁ?cýæä¯L€—m«'LnˆxlÒFŒŽ¢1¥…ºÍ²÷Zô퀔ÏA ‡Ü(¶¢~‰Øùó)6/îs.Žbà$z$¬2Ñij7=È5üNŠó0­Êx¿w§<=N¢‘– ›±hi3 –¹Ý4Ëz8 ÇÛrŠ]ãÄ ©ü2dK›G®Ž ¥0šNL¤—LmþÕ UšîÊÿëô˜9Ò‹¢Ix-°“Þêš1…’fèʳÙõzÁPvw&=k…]aú]-ØÆj«é2]I:ÌuP¾#[¨,8¬™ëfûSælÔâfÒ©¬³WXO0‰ä'æí%}XfÝ›‚"-CŽMƒãÓý®ïš-LRñ‰ÀÛ•%§6n ¶ðÆüLÕA¢D!BÞ~<}²”¶t¢MÉS1Pç%^bã “—Â>š"øTn_PÕâždÜœ‚\˜²L„@q™[á¿k·2O8ÓsýƒO›¤x¤³»±—¸Ž‡½Î%÷h‘i˜k$[H·õl W§_¡>¤©Úq2„z± Îƒ^Ïi<É °uÊVO§ÃUÖ­y:X™S<ÉâuºâW´žúÜ›FÉ\Ûãe#ó›Gj£[È1œuöíø©~~üÊË è,ìƒ}©ŽðAusÊÌ"Ü!‘žøü.™l¿ Úª³×ÀÊùÄéO™ÙŽmüÀ4oëÈYè„ìèÂ-_y©í{Ür¹Š}¦ä2›ù´.+—ñWRÏ÷ô4+%Gbå¹n{’³³ž™’{±¶°nxÐÀ [ET]å²ûØ¡ç»fü ;N¤Qz–Ñ&xž›³ýË«.@3&Þùx:Nå 3›ªÄøŽ•Ðs0n ÝîNU9]»“¾Y§oÝV%ªný U’8!yRÇG§¦e6 Ί`ûØÇéÕ«-F Ä{LÔ*©²ÝÖ_¦zÌÒ@öÉ/•³Žyõ󞫟üM*úIJJyX¬è`ëÄ0ñb‡¶?§Ê¼G¥!O«o¼g±`‚¾p‰F­KžwQã~ñ¾Ö0þÜ%»RPÇ^CY¯.¡Åi (D¤m€zÁq/ÿ`¾šH²'©¸‰ ãƒM²ÿ=Þr$e[M~©{£±ù@…½hs`ëï±#æR¯S›?T&¶Ï: [P£2O_ˆ ¦Â1ݤzxO}å¬P/þÃ1"1xV8@Tõ:òrÂciªÉ­úâK“Ú=¾r? “Só/#®m)IéüJ5·fÏóm¿RÀŽÉ&Aø]©?„•¬Ó.2mßÍàséÿUÂäo"^iÞ)ë¸ï­&š(¹NÚ‚kíãs9<þóæŠ*cæl-cBò:Ù‰àE}Ã}, ú2ËÑ/Ïë‡L ÚZp­ô¦">…âc.¤þˆ+ÑàAŸ/2»!€Éÿ0È·&ç òým)KD3#×9*¯ù»›¡Jäø†'ºM*,åq®;’h’ †s¥µ•$öžâ2ÜC»ˆÇH™ÏçþP“7¡™ö8^ɹü5n#mM.*£ž¬_èÖ'^~ò@^x¯@[¦·Àù_ÖŠ=ÙåQK*u8¢üré!ò«ùé¦ Z3[úæñ.}P³í€¡&6B–üŽÕI»ˆhžrŠù88º3žYÔ çœüÔ4Œù ÷0–7ìju¬ÄÄ퓃’9ì°WªÅ¸Òé§?E¤ß“à¢|<š@ä} ·àßlu¤=µ<í 8¹¾D»I_-ûÀR9—P Ù‹cëíH>²: ¾ÿšÊ÷sœ¦ÒUi-¯Ì}òFÐQâà6®ÎüÆD€Y[ˆ™Êdå£o#þ¬T¡•÷c÷jĈÎBæ*=û¶ÐÀ^Äß÷=%p•¾!f…pi þ%ÛFÅà®ù&þîIÌ{üßÍ’¾Ôëäxœvk®©¿Od@Z@ÿÔµ¦ýãw9ÿ†(mˆkn‡ˆÒáF”M—ò¨ë‚ —"¿„X]ÈöTÑwT±ÌšIh+Üm?Œºy„Ê xŽ ï”Â^t†›r÷¶ï8"f*ÓÏ«y e÷Bx¸‹c,nÆv5F %5É¢RHìÁC"·±ƒFÞ Ì~ž#øLÄÃÆè¾ü7(((2Ë|†gø<0DO½V­ÃS=7õÀ$7³C²õ,¿,”W®L©>,âÙœŒMéØÎÍkvŒu_]Ù(ëã¬G7B$™Äž&Ð äM¶©é©]3c9â'˸¾£ªgk%(–”D‘)Ò³{ #M Äá5,Â5öO 0DZ@øÌ(š!¸Î’ÕÇÔø•cát£ZE¤Á­U1šKíüt;N(³×O0l>™öÙ«móÕÖêï¾(æl§{ ÷jx<Ɔ%H|Šduê€nŽT±hŒüJC.ÍBÐÔb™½Þ¶ßÎOÁjØ_?»-hòP§¦„xН×/ÿ ó’O˜iŸFTégžÙ#âòeòÔ÷®Ždk¥…³ ®`R_ CÎèèœ@™”±•ÃKðf#Þ3f˜_|Aés’á#;7¾‰‡<^ÍZ¼¶T削÷µýÀ)(UѼ"*ášf½ß°à ÷>$!úÅ—÷½…49ä«`eØŸô î˜2€;1[ò&Ú` ËWƒ£wgékC¾ìpŒ équ8ë;”Q&Ëwü.ø%³õfÊryåÏ3d!ZcÆà Êpð–Šæ|œf"T‡2s ¦ÊQÚ^ã×yaÊîÀí:åÛÌ_ô¯û?ÉöW!>Ô*Þý•š>‡éÌ׺/Ao6?uãÖqYùž•¿òZ k?]£³%W—Ø+ [ß^oÇ›LRóRùœÕ¾i/4©ëòÜh~Áào~ºp²?¨gË.¦kCÚÿšÛ­W1`~LqemmbÝÆþÚ„ˆe‚Þ¡ü tü'Ad‚çÍZ² ÉXs ¸ºæ-ÿ r­@‡‰¨¸=ù ­ÁØx_˜vÄŸf$´±bÛ’Û˜X¢M8Q_Lups¹0¯`ïh¿bÓ³ 2ø?Ù3Ѐ–mOØÓLl…ÌËaýh‡†£Ã ú y¼ª7ûpN¦Øºô6Óµ`dïÚ/y Î—?ü|’Ù·}EUõ ¢ƒbP¿+Ä,ñ1Þ[õG§K•£õ?¼[·döïÒ›ÆÜÂ:cg`[öŠð ,JçU&Ÿ”²Y‡7‹ÕÊA/w/ú"Ô=†ö‡Ç±Œ—ÿ›v"ʸé…s0¾€ÿ£(Àûz£‹clÒwK?ü‹™y±à¨‘]¿ë‰56½­Æè §‰Œîµº*5>œÍÅÁÛS=ÌYõbí¢Åªºû…c7²@Q]ÉübGé™Nâ<¿;î䜾ŒÅ|G¶²÷ˆ’_¥Õ7‡Ý‚EÿwåŽ}']wœ6Zžþš`ûðx . 9ÔÚœë¡þ%&-W»äÛ|D`¡(а“'‡8õwÄ1Ψ7ÿ¦dlo×3ºKL%S€­VVL|rÌï¬9ا;صlåFR2µ,X0>3ÀÐÑQCˆ¸"¼@-ìŒ2+K#júgMf…oÑ"a´M7ÊÁ…]¢ýÿÃUˆ›lC¶ ÿKe<É(w~ÖØˆ+u­’"Ô~ŽúâÜü‡ßZ…S 3¾õ«±VÙ_ípQjà Â&°­Û1×dÈŽ,A®(ü}b`g rlÑ\v axT„ ªãý™°wX*åï‚u}kòØÔ¨lìgéÕ 3æ§ _LÙÓÑz‹³6RÎЩ$cć¶·§[ù Î)£^iU¨Û¨–Õñà&¨¢ZP ºn´³W×8J i¹´h LITÊI}›jiaZÎÿ¡L/˱ †ÇRdI`hJL+z‚ÆÍ9Õ¶‘=Y-?áXã'?—rþÁœ—°¥ÿÕï&Bqv@[ÝQ.Žœ·~h:‡ñBÇ»+nM”O¹UwÔ˜è Þ MÅ:¸¼'¤ú€•ÚÚåÔ¦Ô©ókp•ï%ªõ 9C¤EBãk.ÎÙ†ÿQêÅk2ùO<Ö¢ð™:HÔ ~ÎZ j‡ÑÀ+i‚Ý@ßÎè³ë‡Zý°*”/±¨‘—kÛ–Á¤÷Ì*î”,©ñÃh2± ¸ Ø•1›Fm&} ‡æ%ùÌüz[éë¾î³±ª0‡ÜÖaÉÇðùÍ”_Kg"Â= Å™þú…sÍ4}Ñüë׆(scªI”í‰ç¶.ÌÚÞ%gïkô§Ã±ÙhŒùþÀ5Y—*çðhvPzß| ü6 l7 ¢ÃbÖ9ú™Þw‚GÄ“ÿK-ö÷sJ¤ÚñaØR‰dF²;Ǩ:z-\™gkmÉ›‚ÂçÊ"âϸ<]mÝæûmO=rQ B8'Øé(!Aû»«¿8Émux•Ÿ- ì°$¾ÅuíªãÔŸÅv¢¡ åI¹’UÐѹãébŽ@˜VÚï]Á#Òìü óubUGH$bÆÆ:¼?Ÿã÷š»”iIèY×Ij€úÍ©Lv“D—eÙäwc¨ Æg-ªD~”â ߨSsi‚³¿1Æ&›ñ¯Ξ¬tžŒ©±:y$Ý?Xz±Ã)C“ÔüL®?ùÖp…¿eHÖzF°¢ô™s@é¦{]4ÔÄ£vÃ{q÷ï z µ\º?†»|åýˆYí2қ•Ïó†-㦠!*hAÈ …rŸ#ãæÇ< äõ¡AÛì6 ÿ ¿Ó³Ë6“d“oïõj¼¶°]¦yÀôÞÇ&‰ñÅ`jç•æº«'ë"oÈ%kÛ*b– SãÚ8¡¿ *.KéV êRH-ÚŸ Š»ÔŠnæ¥vvg„œ§ùP«Ü€?¿t#AÖýƒñiëLkÂ<\KÈ[HéI»v íån9a†FÐcüÄiwè•Æ^ ‡?ª‹Æjmx`SO·ãLÚ–;„Cšâl>­~ÍR4É´<ÙmPœì§R$ÄNbHûú­^P>CÔÿ¹‡ºì™O4êÉ"Úë5U@î±q1¶¼â5,Â0ÑÝôD¾´¿-"Ñ%þ>•.l!Y3m^~4Å÷ü$tfDGHÉ7¬?£ÉèCÏšç‹_éw ñJÂŒïŸÉh>Ùià2!ë³,T¡Ûü&_òUG½QŒD ×¾Bô^©.78˜˜x‰òwdO>™áúšÐ ¿ÉËíQúûuÎ~7ü†(I+IÐÓnÒJ㜧\bH©ÇŽû°ÃSD²:V†+ ß]q=¯,êâÓ‰ëL°¦°×6" C&CLz²ìäì*rþ.¬®]¾ÍË8ýSѩ׫ârX2/ )| V›­OsÙ¢üQÙd˜³ÎbÚÃò`÷// ž¬‚?&Î|`a¾Ýž=|œÞyg[ÃNK‚Áøýo»<ÂÒ/Z1É@VÈÉáüá`G !ľu… ì«S¿¤IqJ¦E–uy»[ÂÖƒ½(»¬©*챋ˆBï;Ðb3î*ܘ`6?üM("D ­`Nð{ÌÆf(Ñ5jô–üBºp¤áõÕ&”Cä•sƒ&dË"H€Q®ìž{¶^ÆÄsëØcUAj¹úÂ'š—±Ëpãé1= †, U[ýaÿí’i=œÿc&¼ò5‘*ñÅ5ÍôIi[hCf牺þ±¸ÇÎ"!PF“F¥ÏçI à1Üô’5ÜTžâ:ÌkߟsÞGc“[‡|Œ¿µ=]’´¶½¨Q4[Âø°ð¯*ÓR½¨?<<Š[{~ÔÓ õîÑA‡ÙúÓÛÂÏiâŸMµB¤éþ9ô`òÍþó:%A+(fÝéüJb±ÔáhÔ•žs—ÚâD ï©ÚZÄLĵKéÙœûƱ­òM²gÕ¢*GÞ|mÉ™!güËP·Ç  Ž © 1i·1Ù@EJOh„݉%“%c½¸2`]4 ïôS÷úâ;˜œô-FAþm=úß#”;ÜYÏo¬ë'gœÁ€kU“%jôg®¢0Zäs°‹rÿ•ÞO ƒº=j²è=`yC…ÈKê‹·|›]ó—’˜\·ÿ+qº!›rJz,“Gš·k‡t¾ef¸\««ŸJ"ï ¸ We^ÅAÎÙÛ1gAÈS.ËÆÆ[€‘ÎòÚ8Up­ÑÛD—qüM†W'ƒ¡È-ÆŽÇ,LÍÜ“³* °%Úr;b­>„#`„Òý°Ix0¶H‚ôÌ&¥&âàßfrQ|èàÞPôU/ÖÆ@Ëz룩ŠÐ¯8âh»úÃñuvÞõ¨2Gåë ,½ÜA+ßQ›Æ¦‹úçÞó³,î=7µ¢ƒoá}a'^bÁûR0ÂO2Æ›¨ä› †–šÇœgð{@ù ó\7çh õò€cc'9[J£ž^Œˆ©8)³”æVÞ'šj3 uUœ|ጥ¦scsî a5 ãbÛõWºDæJžózuüIó .Í×ù¸‰zõlø§ë {?k Í—Áô€/Oúçƒ;¢¥]øè¤'Iwü¾ÛÏ5‰þì¢.Äø^áã‘€vÁƪ×"`wVQ°ÿ·„éÌE­œÔMy /lÿc¹œÏuÝVù¬Tº(ÎVæj‹úó•INgÔx¤q`C6}+5¿÷³K)ì¦b•¸rbZÙ~L Ñe¿ÿú1¤öRJGÛD Â‡6jÇ÷D–üñ›zyfa^°Vqx#`é»}†Üâûüë`j²÷k9ë‘—ºIäá_˜:- ‰2Ä>m1ì mx 5Úª|Ñkß*{8GŽ®éø0Xû õÃÔý¡öâ7‹½˜ˆÇK7 ˜I¾îШš¨á’õÛH®<Ô¸’Í€ÍÕ¢ïHÖmׂÌa᎟ãñh-7ę̂„û!ÄÔ•Õ?&]õ!·{`ª;bü”“üÓŒm«õ5· ¯2˜‡Äã/˜ØëF£™¬U©b¶Ök³¦Út|ç,eâ–™¹ÃZ(,á°ƒ±¥R˜Ó{Ǭʪ]õoüðâE !¸®Ž#KûÑݶB\˜¸6ÀPË–/z|ÒHu*ÙXÞÝJTªÒæy½Ô{ÅãûfV›") äHÐé‚cä{ ÷_U6òƒlšRÍ®áMAˆS(v¨¿«öõÜ;=…2töns'æ(FJ¦¼€ýi͘QeyVÙØñžó&q¾ùº­ ÊdΚ2D}®;Âìj¤B5¢4¬ºÙ)œÌe»)ZvQ¾€J±l¹݆žtN¨——PR$Ì…müï4¡Þ×RºêGŸÊO8¦¶¤çÿ•ºn±Ì)öêu°_Âx&ºû‚¢¶ï¿¡ùœÍ!Æ­I JöK™bcjJLj›³B_¦H¢Ôà"ðPÚ}G¤à9—=uo?&Ì‚…ÅA™z¼Ï>xÌJ)zÐy6þ¶Œ~~ëAÍÚÐäfOwq¢?;9j7¿çÒ4?Z:Pó’œê̦‚'(®Bâ`xûÇ/AE6&\PÌå·Ô¸.=Ž‹]ر3Š9æ{m6¼ÄRD«o(š*П…Ò1}¹U¼{UR>ã°aä ÝVäyAòsõ›÷ácÁÜ8y‹Õ€Sߦ`´P^‹ø¢ŠCÝÂ¥Nì8$ YP:©¢÷%¥ð¦îtTœÕ)tâúüdEJöÂRÚ£< <žØFÚ“­“%yԘαþuLüî”ÓÿÈ&¹gB=;œ©€ÂÙ™óëÓ\ÕEêì€B _ÑL=íªwæÐî¤E¤ƒ™ÞGçü,\¾Û‘Àyß‘m·RÖcC½0€ƒ‚šŸ¾”›B·ö­Ø—æÒÄÐ}rõÄ䧃#\yû/­öT¡_¾Ä¯`"y ó™q* ©‹ÖͳéC1o›~‘,áãê„WÑ"±9;4‘M0Uj_Ú‰$ˆŠ~ùk G$³·,Q+ˆðvufüWý0æ©°çÃ螦D›tÕ…‡¯‹!TKœ¢öÒ”u§+ͺž?–Àë{è½AÝ'SØ wKÍâ{vW^5¬þV sëa½Æ&|ß‘^Ùh4A +FDeRMÖ ”}·dÂë\Ô5Ì(Á»…U¦ËDYþÀÃm—s)/ÏÚÆÙÈ™†’!õ×§Ãdè’õÚG®Ààð§çVxšk#e²û G½Š»Aë1ŸŒ†×{·…lß›9ô q…¬ é‡yÄÇ@åG³U!â= ·Q?†šüI¡Íõ œ—µZP„^/Å ™PUÒéǃBl“yꛞªœï›)R@kGº¥=6‹G¹šÓ"õþD„Á%½`¬xs½þ瘯HìÒx‘Ùß›Ÿ|ÿ‘˜”$5ˆÈ$iªD·>±&üC»°Òðÿ³$ZÊXÝ®‹µU.ÜÌ#ˆVÇô–%ó‘rsÛ%ŸD!D¶­" ŸKB©PÜD%àˆ;‘Xt³f«¹D±•LЫ¡jêÕ€ÆüigÓÚóÁMÜl@Ú°õ-äƒ^$Èþ¾s[m8ðüÆmwÎV8fûÉ$ÕùÒ²9/F*òþÁX2~—b›¹h„ýiÛƒ ¤©@ÊnˆÝô€¦žÓ>e&À°ÝÓšeÆ÷‹Eʵ@ãLjâÀ ß’p Úæ¤¬î³ú6Y?ѳÁŽ^ºmOòT]f&á@—>t”àìEª¿îKý²­Å"•„ülN\Bl4Xbjvº¨L 礵Ñþ€Da)UZ¤t –䇋âïáõ a‰aŽ›k MQãà ZÑzyP‰-i=užüÆ-ª»9RÔ(Â{“á •©kòX!M ×§º˜³ ÎûLèFù¹Ü›NA–ÓÕ_dü׉A?qŽ;x Îò¼YÔëÃØG¸™‘ ~atïKõ»‰µCÆ9Ò$÷(z0¸ÁM`IÔÊ#ÉŠÄ»®«U¦ª¶…ÜÀ"ÍKÿ»a/‚BZj$óö»¹Hd°m°‚\°è­¹¶PÌ qÄð@ ” 9¬SȘe"^ÜÝõ×t׺̀ P@³I«£ßaV(·òdŸ¿ÅnÈp §µîØœ¢eà Ú«öéüM\Ë%^}ïV0¯AüMž50¢ÀŽN¯P«EýØ; †e]"ðÅ}öýÒǯfÖQÄÆ‡h1;³î–Ã&=½qЇö:zuˆ„CcðEd‘U`ßÏ|atDÞ¸µÕÅ%}Úâ*Ó/ŠE7™³ÓôÕq¬¢Á¯ Ï]ÅÝ)U5q~"‚ä9Ñ•âÇÐç<‰Y|=§ªð>0T'¨å@Á̶U¿"»ÁU›¸| ž­×8!ÜBzI³ƒßÿcÛ8ô¸Û™¸ò®SkÐ"P}µŠ¹cX‹ Ò±í,µš¾¨Á¥1üJzÐ܃±Î— ¿Q‰(À²q¨b¯é…FŒâžäî©©¯àX]"…ågËCÅ Êv `Žii·å}Æ.´¨yMÐræVœ¬¤$_crÇÎcÒ”6 S¤WŠ&:üÀ |æÇU¤Íº–ûG4_sUO¿K‚Wa3ý-·ôd‹“›·€zÿœ":>º‘ü ¨‚&»U ÍæÙ’ýhòqG}—ãÈ`h ¡v䂮ݱ“ýX1ÿõ©Mx ‘üáÆüx`H¬/®› ½SXÜ Õu«ž°ü. Cð#”ê >ÛÙ¸!8X½xWæ¬ðmÔóKLÑš*#·ñ¾þüüst¥þ„rè•ÑôS5µd¬·¾îÿÖg‡dÈ” üÉT÷7áÍ¢‚^Æ[)ÕuÌlWD'$c±ÑWh¨&Â3 ͸“†0»²ÁJ7€qZ$±ÅExÀžœuó„[%™“å»D”@1X,ê8N¿ÈêÅú4©ú6ÞÝ3y/à"ì"èCæ¿sp×äÖK$¼…6u[Ùÿ0œ‡ÏöÜ›—^ý6k,<á$ $c¥º÷÷°¾üM[µ·ôt=h´ô4»|ï€ÛnÞ™¨Uƒv‰H˃ žâW÷÷Ês`ГÙgœeîÏÚÇøª”~ª7}é ¢¶>¿Ú¼Ls´73“°©jQRaÓõ 'zCãô¦=ö¥©-²‡än áæ˜$êáz·<ÿ•È^ïz©60ÖèH[ÌßbÃΈOÓ`¦ŽQgí;¡RÀql«µåÛÁPëã([7¹$´¸‡²·øâ|€†3×:Z”‚×á(Ÿý]eò(Ò¼hô/‚íþTü6Ub.3ÔH…‚‚jÇêøÎá””ù%êÕtÖéƒ{&Љ ˆûÏãà654«ù!¼‚jeÆÑ¾‡ÅmÊÁÊÛt>U&-!`4 :˜KVýÕï¾T«³»I3”–„h=Ï‚÷:„Î%(Uô™®>P“èfÖ΀ë0#͹&UݾCC¾–’çž&ÁêP§h (݈…#©üãùaмR—ËVKX K´ºÇsb'*sú¿4ÙR„XI–¿rH …ž­wóÀ[ü¶’écæR,ø”Ùé’.>°J<ÐÑabÌFÙ N™¿¾¥¹á¤¯æ’MÜ–=ÏmTÛmÂÖ'G/ßi¾³ûèÛoø½JFqªíCƒ]ùUJb;?¢ÉTÎqw7îç[I‡âßáÆ9¾šw7#o“7 ¥´±* µ•ºü6kvïT-ª]Péº-¿+ñ¹ÚH=Ÿ„|ã>GÑ~ô¾T7ȶi¸LR«IBÒTs¤akÒ‡"o¡~£óÁ*^xˆf®•ëUÄíÚ5Œ€#}ƒ„¢qãžôËtüöú=TâCÀÉ¢áë hCŽIÁ‚MyŽEæ2_ö¹ôVÏJ¨x„BÇæ=œÏh…_hsUp<Õ ^O™h[îѸw¸½ˆ¹™Â ‘µBJ0‰Ó¿H¢2W"ö¡Â9†—ñÕÇ ¡¾Ù8€86_ò5šu…áRn¼*@äl…u_D2•ŒEÚ |/EL؆ºÎOggSÕ¨ä'….B°:çþÿÜÿ^×ÔØÓÓÙÒÙ×ÚèßÿÝÿÑÔÕØàÜÿÞÿÙêØÓÆÄºÔÖÛÛÊÕØØÖÖÝôðÿÜÿÜØÚÝÓüIùΪl躷÷¦·#ÂZ/Ìw=åbñX´g³Ï˜4ÁÈ`Ik~…•r·â˜¥@‰ékïÁÈ ã÷ÐÎÛÆï!ª<ìc Œà‡%©ø™¬–ce( ú® !¾¥ÚiûÉ XʳÑ]ð·v_w ¿÷V§Á›±Œ›Òv^Oå„"ìV?$Îá ®??ü…|˜®Oé‰qÜÖN£¹É6±ÂÝZx—dMÑYÝ:>m:Èžò­Ö¶!¤šŸ­ò@òð5-A%ÂÚPÐEm–öq¹ƒØ¬›*$ùÏ gxµý1ꦣÛÈkÙr]@a9üLÚÑXMªd½D¼ Bñu ߬„?mrÇí‚U‰.5ÎŽ,äUNÝ»f>Ûhì>.Ó:½Àp’ªß\¢‚E¶é" Ç^fd¬Ày·Ñ ò*ƒ¡¸/úo<²ÐyÓÜsxˆ?—zÚ:…5YFŒ¥z£W/[^èTUûY%,L6#±h§*ÝÏ+LÈ‘#¹áYžƒ¶Gî•ØäHè8IT($¥n©¶´d¬#ÔPš¾z£áÙû V±Ó¸ K#̵NàÏ€ObÌìýí56K÷àõëÀ»²°ºêé*£ö;_À ݉ý=ÿ¤5y¹JM 5²‡È è.’,Îü¯ó!ÆjÏçý´t63‡õ[ÙÅ}—²–€#±îšÂÖ9DÜδÄpÎXÊ84,` >bbÞÒ‰f¬QW²™©Dk[²Ó¤^Rûƒý¼= ¥Õ\vc7€æ±·jràAۺߡtgÿá-¸³8! ,€À6Wry2 +s-±Z¶Óê»pO‡¦!œ¸4FƉw& hÌá—(,‹¸?÷¯2Nª ЯcÅ-S–"åJ?FÖ˜‚zóŽò’@|_ŒÆb 3åyÅÌ3?s{6ê‘¢ ÑYM8h6Сa2ô:jX0Eã`W‘8¸½R[¦ãŃkŽIZzÏN"±Ee![óJGÙXk€X¤­é¤9ôá‡z¯.Ö30Özµc^õ˜©BÀú‘zò Ê+­ÄŠ˜^kà¥#!’jb5*°Ûûcä­Å"\Wj°7 ¼×$¢‡ÔkÙhÏ´¼ïÈs´›zÓ¯ ƒÑåÇÌ Ìð0^­ž¶÷ú¬[ç¼Ë;¡ûqú暣ù·ƒ Jü zŽîvë'þ¥çÛÁÐWB—¡4!0¾T&rÃó ‘rÚÐ9VŠ¥­³™–s÷ÝcûF#*x‰üÀü|·vúlþyæ Òè P+±;Jâ†x–ÇÚá ¢aõЫñéÝ8rÕ`´F ÄÖ#¡ð5z/.­‡È¢`)3J¾yLXÛ}ÉXÝõo'\£{º…ûn°¤[32Ì£;*øgxSª³ã¼c§Rjãn·Mk‰ê²Ä{ò¼TrØÉu&)ÇÖîïåWköW1!™¢ŒÊXG¢¡‰¢ø}–A«²íçš>JA}B9=Fuã…^ª«òì¾#>ê ]~~¥N*•5¹vxy¼Ü®Çe±. ª”ÉÁ«ã:¿êæfá3×<¥ÄG+_ɘÛgžóLÝ£"jœ?ÐZMìú†ˆ¬¸Ô•|Î?ÙØ" hþæ2¥6ð·{dã«¥9¢ÆY•Xõ×Èò»=0÷¹Ìíš½tÉgÓšuÞÀc‚iΨ¼Žä¼öI·®-Ü$¤ç7Ž˜ëË\ 'ü..a»`›¡yú3ÌëðéØ)þ¡¨‹œÇ¯;ˆðÏ4OïÌ D—’XŽðbާñ×¥UâÄ®Ây¹Ø’*ÑôŠTi½ÙÚœ=8dôRÐ]VœêCåé‰el üÒ³N2±·„Zå+Ht^¤¼Ó,ig¯ ê»&ñÆpÞý³Æ…óð‘Š6Ý@ªtAòxö=î£Õ[_Êi+îÑJ–÷7¾°ƒ¤Znވꕛ;r`F¢"ô]ÿK‹]ˆ ±Žëb t—jØó˜þ)û©—üX¸‰,ßö›Ðh¿·1«:+q´_Éd“郃ªð´«SxI ¢çù °Ó¡úÇ­|vÝœ¿Œ'yL•2Æq3V$–È’p qÿ1or™//ù}®u*4?5œ Kö¼};__¶×%{¨°?.}ì7¼Ðžë2›9b£ã&Ò¤í÷z,Û…óœ:÷PÖ€æè`UZ™ª÷¬¯†€€˜+.°ëÌ͵í7²¨æùE¸—3UZ[u.aë)æ V[E\Ø!¼Zý¬”;îÂÛÏpüMbõORXraaÇl`?-Òá^`gŒ·"E}Jb] zq>&Ð…t(´pí~º³«…ÁÖkÒÉ1D²Tï3ñà¼3Sùìôs϶ɇU$ëê}NÃ:¢&< €Y‘»H ÑpèÎX/ËP‰¾Ÿð&UJ²af†Ìá _<ýn#~àÂIÂRè'Sù‰mÿÂÊþQÇÏÃͰÚÙb w­ƒnc½]ª¯Wkd­¶Ãé \¬.1 «["Æ ç¯“!±a Çìß•FŸÃäþï›Õ=PæÙÄ3³“€üLÖÆ£’/Èe¾Åj9.1~S,”ÕV+iëfáú_ï žoËe ø¨“ÌGíE¸ºù`%¨<U<©/_†˜Þñ/¾[7M.C>o-tD´ü1€Aü;xû ‡§Иc9Ôùö†/Áô^ ™¾’¹$Þs¥G/(@µd]vòPmâK-SM|툾kMƒ$êÿÿ˜¥{FÓ”ÓH0¦üdÆk5R|ÚÊr7ê'¡ ± hüÚ³VZýÁv°u'Æ×í&Ñ(ŒïËИ.‚üWà…ÑÀ¤¤^WÍ.z=j’Å”XØlîù»ZOh&’3í8ÆùZÂi̓ÄùY©•Ç]ËaWÉ/?må5ÌÅiCÙNÜ.〺EÀ5¢¨¥bݾL/`Ÿí’¬Ä—ólk£  “ÁS\È×ì Ü-œ‰0[ñŸ›Uÿ3p^η¶µ Ž Ž©„“èãðqû¿åYL})óû¡$À(W³Æ ÖU)CÒDy¨ 7džÈ=0ºL@,‘ÙZѓü/S¼ìè¨þDPvÁµŒ’×àGK:0Õ9ð¸À8ãMG˜³ž"ØRçÉ4” ¹¼¾ãe›vî,B{"¾VÉÓv[aÇÑŸc‹·×çü?¡…DÝ}V“½kÝȃd~» Ñ&3Ùá°³ßô´2÷Îò‚BÍQÀŒ"Z¥—{lŸzÍfz»Fß´ìËÐÑɘAbÛ1=ÆŠ•¥»j8æ[‘èÞLž¤‹¢.P!6jãõ¬è\Ž\¤^êâTª…ejß?/E±›cD”I“:¸ñ)€\üMu-BÔí K6QD‡ê,PNxÜå¢x?fÕ±eJ‚¦ÑÕ!NIàv‰°iWB»¸7úŽâÛ@Žæcí‡Æ^ùh`Q²€Š3I¿+w¼ž/2zsP6ý?•/Û䂯—[2#̼ËbM‹#Âxðb‘ ïR-â¤;Pl4ÿS¨N­± g¦ß˜³ë=K×y‘ˆìã‰æ²Ûä%pÝ Pi=ÿŒº@~?áS¡­¶Xw"5à߆pýôw§‚E±º·)®®/o¤èMA¥õƪÈ\•ý71¿üLÖûðöMíR¯=føï‹öózæR°ŸãO<èq¸Ô €3 “èz wmûœ¥½ù͘„ÅÙÔípPRE}Ã1¹ãi¡¼VÌjEbN'øgª“,5èKzó[ ÛÐuèBò*àWÕ‘rƒèëPHIË“ýÅgM«„)…KÅå(µ0Áå¤%|Qáq‘ÍØA†m—yÕBÿýÈhâ ªE„¦w7?òÝ Àû4›qTû»¢ùr-‰;»AQ©9ÜÖ7è5¦îƒpä3`¶Æ‘'°èŽ+Léð»=»¸ü.€ÖÍiƒ DŸÍR92Ýü?×öHböæ b^nQAå9ßiô‘‚/‘_,:i÷mg«¨Óé$–J< &/s†ñ Vf Q4ApM.>"5QÖ7ýнƒÍÅQ‚AØ:c;@òä–ðvŸU§jš#ýG|Ò›Éq}a™U&ÑG¦ùÁ´ÆåÈXÚ…šÜ. }¼XñTº¶<†«$\7Ž˜ÂèÈR8KâÄv:*-,˳ø"³®Ë8'À;ãLd§‡*Ó|𨲽¤Óa›îÍø ç®üÆb81± u[ѲÑì ¨g^dûÊ ¢×’v6«ì±‹•ÿÉyx²”ʵdáôî¯tN(ÁVJ£*ä{K`6Ð7•t@Í ¿*B ¾K0ç–èÛ×¥bƒHÎüXS®_ªOs0«Ùñºhì€Î椱îOºïü)vL±+·¥Úó--8KF_"/p—!*}ÔŸ«ˆ¤cìÁÒ_~NÂoíêR‡ÍŸ¹-¬5N pybkY p0Ù„”ª„wÞˆe”ù×ûH=,*RRÐ,,/†ôk­z¼ØæîÅjê|)(üI ï2Ø&PÇpÿÇÆF¥.áTŠÞO(œ¿¥"7Ýô™PõÂy¸ƒEHáZv7m×fFëäÖ†ÌÆÑr°@½:I”¼««÷}«•qšÅØJõ1=Gp®5õ¸Ó W¶Ü8­3»ùÀÉ.%‰¡â ¤g­O>&õfÍ Ç+Ö¤²ë2§5:Ÿ–^1Â@oîÑóN݇,lø—åçz¸é|Ýz eEcYWÿX&-9‰wîˆP¤1ð᪄s᢫Ó*ÍŽ«!+EÜî‘?+ äc;„–IèfýäÂݽµÀüªtºüM—‚š€¬÷´ò’HFáI``+Ph4ñ 4b;’Æ .ä_‹¡z$`-å³AvŸÙ6†™vžÊk¢i´dÐÞm>í>Ëü3ËÐjtAÄ&e äÛ/êX’]ÀÛæ2uLÏ7ÿ¼¥¾H ãnPÑ;G DŒ°úƆÚ~°á«¶ ?Xª¤UNÔŸ ²c[ã†Ø„çoC<ÔÃ’“ÛծܔZ¹ d®ÅSÝ_Ðò—¥b”!FÂä¬çlüXG3'w¢©8ø÷_U®Õ6 Óév²½xö‰ÃUF1‘ü¯´ƒX…HûÌ.OâöÍfobÙ•š«!#Q½F°ÚËÞ¿“F‹81VÚÁ{1±´9`òÄ5c#mÈj4^Ñûé\ÎU¢7¥4¦`/ƒC˜6RÕážNhPÚÀ¹¥¾EáÔ9Àšò ¡—Ýó*ühªè2GÛÃivÍþÈÊÜJP[ùA¬­9×¥¬r®q6WfÄ< ©€6õ¥€ÚíAÚ!Åå´/[a ×S:å^ÁÿÓVÿÕ™â—()ì!_†3ªc?¹a*Wͦ,洦諢U éÏSlPê>\Jú¯ÂÓþïúÎÌ É·{‚EÕ£½¾ñUìZÔÁø¤8z›[j„‹QA¶y1lÅQЫ¤)ìNS%WkŒ`¨©ƒàGÛp»£Î>4ó1Y¾VÝ(®î»3%Ž^T n¿ê+«1qÌ àì$Í‹¡Ã=}4QÎtì$ÿYV6ÍL×gûX÷àíÞY¥Ä¸¡"üpc”œ'Üøè¿¦jĽÈ,}“,˜½sV…PÚuáG)vS´k?\‹®–y^â^%£í‡ÏdC|Xr#t–À4\ûév ý"0´FæR¦Y ¨Q7Þß!S´Ùý³‰ìuƒ«ý!­ ó”±EÁÍ@üŠb`@Õ¶€Nç„ËV¬€FÂ1pjØ€yPålŸýä;ÎÚO˜Œ&Ì%@wn©øü8ýí_-Íl’ ´dçǃÿ0®ºò‰ýW#Àµ¿boÙåddŽËÍeU"V™†‰[‚Qñæ*’có ϯ”泓Xˆí”9²ðž.î½à´ÿñ:|1XœM&þ“\æ+ìšÜt)1øcp`o$]hšJˆµLÖîÉ”®_Cï hÝ061kœÐdS€€½³–·bÉXIuZ¼ÉjH@¬¬Ô.š`SísI¬`?nc@uÀà oÑè/…ÏX¿&¼ËÐD¢—Õ›w@»?‰‡ó·×¢±&wY–±NÝãGÃAšÎšyÜg>´Ý‹øÁ1Sâù 1`ÔŒ˜ôâ„ÂÖ'Hêl o%éaî•lrµâ VÏuË3_~­ÿúÞJvå;ÈÄ Æ;†Â×2ˆŽÂm]ò¨±qZžÆÌмëE·j@Ëæ>%žDÄ·Gùß:å ÃÕñhrì»úÞü±¬?>²ë;ÉQô¹ÛØÿ Æ௛ΠÔT/ð2AL‰ükõ©œÅQÎÀü„XñƒÛÔ ÍÐÇOª 3Áh… 1{^ \äãüjXÓà2YVìElÝj̬f²ñ`«B…ý“’•–çp9ef­­f‹±Ï+ &® )˜ôÄ©Àh‚?ʨ7â5ýRëeYM…ü0~ë®îËi¾ªîîîò n ÚG]Èç–³‰Zë5¦üÊJ×3Å88uî¹â‹WÍBұ̬sþ»Meøãêy:{ M鿲+š+È…èšèÐ…´lO­"Ð-ýì@T©@prïBP]E"üXöGº`º‚FÂb]A›# á ê¸}j¶a=ªÏG†UR„WäË ô˜ adqlæ«å…Œ†ŽZF ÊÿM¡Z“(xJÎMO®×X“$´£E‰¤ÑðzpÍOCL¤«Þ=-óìØ9Þ’sä,UÕGè1)èzP¡(M糘5‡‰•uC¾M‡#ÒŸ$|Šx jnÄ-å“L•-Œê<ÅØgïerÿŽeFtùı!v ©¾‘À–´Hh–ÜIßyKÕ¯ÓTöŒ£1›r hüM$½ò”|~$%øãnFèôTI¤nPv) Y¨JÑ5…ßUdÅiƒFÍà˜jŽT_W´•h¸[…c_L&(€ÒF½väím<,¬¬*ð‹ô AY…¼Ìu áÒáÐùÛ¹MÅ(iœné…Ш÷fÕ1‘¯p³è8O¨ÂgË€àð^õýì/Z!WÃÀ%ú R-SÄ–?ùiír‘EF»4íõЦÙ]¥ÂÖ¬Žá•Ó3Röµ!à‹ì‰Â¶ÞÕ y$€}ép.`Ž¿ cüÆe¼ˆ"xžš1ÐI)r½~œÜÁ%f¶ ËœÊèBÇ„ãù˜Â ­î³i=¹Zöi1¼¬A·¸ñ»Ee9ÚSŒùÐǯ»¨—¢´óè“‚:óßÅ4yqÏHëxödìfòÑ©Á×ñ¼;_V4u99f­Ú\±ØÖ?º0ÜðB,'I¸nu,@E8¯3k˜ÏÓèNùä.1ѹ¼ÄèÅ5,Øã¨}öÚ*ܯ‹±[Ó3¿X1ÿ«nõÚmا(ÌEnÃϤ¬üÏ{›ìs[™ø¸ø žPü®iiˆƒÊ¾Õø ÈÊP° E-D,¡¢^™YAºù1}o•ÅÂ¥±înðS¢y n&Nyc—)RNzå29‚Øq ¯Pû€M/[b‚‘[Ö7Šøz$„(p>4À _¦Wxz¶Híà ~ä#0AM…,mà …uÞÉx¨[ ¿äg.î2 íYøñ³7²RÕ³‹E~ÛT‡Ê ®UÌ«Q¹Ê¬û,2®æ«ÕL~…ÓiX ãú$ñ5¾9Èk…nYâ ;» û”ˆXå@ ºbì`ÝôÏ2ƒ00^çY¬¹m„kµq®”jB}b3…+{µ‹ÎÎƒÃØËóÊS|^Ö ¨½×¬öW£Â0§8$…¨·ºNaXíªHEÆÃà þxí;×¼ð§šçؘ€Kv4øÊ³/$ 1{‰ì€-qRH̽Ö*ÕÇ\ö{ŒÜÿTæ%ZW_ˆÌц“;aµ;$é:)ýc•³H°„Ó}w­“±|ßï‰a䯮çðS©¹$Åu>¨ŸC—š–$ƒ#ôâô'J7îJÛçrgø†1 ·b‘MòÑa`ëìùñAŒ§e |KN_R‹æ`ñíQT½D`¢»9ü}aÍKûWÒ'¡S2Ùíꢪg£[š·#΄?‰t0"Oæ§7:îኄ—9ÖY×–½Ãøeg+²Pß.=*9øÅxò+smÊâŒÿ9½;zFú?þpBÇ¿§¯Ò¸SÞš$ØÍ¬Ä Ùk:„ÉSŸÛë¸1%t×—ã=ÚÏPÝ[€]Ôx¤ò*Mäg~IJ1|ÐÏœF"‹‹÷Ç›Z-šh@êÉìù½¯è  Z•¢lçž;CŽGUêƒ[$\©¾Y0s[«÷vŠÓZue yJ\@PþÚE^:sÿ[ªî<ôOþQj64¤ù²²CÑ-ûRÒ-ªÿ3ä Œ„þý/ªÔº37=üL ã(e§œ‘×&-bòżqÄ>´Æ@À¸ÝÛòs’‡Á÷ÈØH Ž\\¥p8À—ìND¤†6IÁ´áÕA'£ º¡}^ó:õ²ðaKä¨M|§O}÷]ÃxtÁÌÉ EÖ9±Ý›yíˆ[±ÒC¨8dåÐ}ˆóô»¥ lè˜"ß!ÉroO7ŒÓ­'Õ9Ý•H5vÍ£sDOI¼qÃ4w†æ#`¸ÀCóÊf×4nôbBîÅ|ÃçÑøå©(LŠnLC=EÕ‰}=ßXYoVØW&¤ ˆ¼qÍÇ-fP¦z”`J@CÙðŽ?åa _OëÃ]Dàà+üuvõ®pO _™ß+ƒe[Ó¾€Íü üNKL‹9&ÂmÉŽŒýNNšmÏ·5èm¹9’sN8´iË.§:š2*ô ¼aîTB%• `Þ$¹¤©™xf9¾ÍRó2a{¨wHŽ£´)d}cptÍ€ð óœ¦*wI™¢oÁ¨*—!ç<ƒÈ¥è‡Þ¢ïqPì´)n#øy¹šŸv3Å¥Ù§³mŠ@‚®tlé,j,r›#·y]ù³1¼öMÕu Zéeܦ<ÏÁÙÈS0Ï·LN¹A}}Vj·ˆ;óŠ òò«.]€E•øbžS$&ÇR³èNü™ÛX\“‡ ê ‰éÐÎ zóeí~_dd#­õ¾‘9Q3Qødâ.^‘Hm¼šWâ}7cÙé„1‹—æ]“XŒn•ïŸH?—…¶¬Z«iFóbwqsÓV4u˜Ë¬Bø˜ ÔrëÝ×¶À—¿ÊòoÎиVìãE¤T’uṬ[j®ÃOe%NÃ0)¯}Å"a† Vùˆ .°hÿz5“ÛEr3 Þ0þ*½±¡ÖöÀ5µ Ô°‚MAtøEåЪ£Ÿ’ÔÕK… Z {ü1¤B\Í̉RÎΰly€™zýM%xÇbË“ òÉ»•Uj0+±f‘R:,h#¼fÝ‘eRÿ sŒÄõë•eHþ)ðy"Q?/ò(¬Ó¡gçnÓí±ÛѩޠYé09à'%Öù9!.#J¹ °»E]¹;­Ïî)ü‡!]€9y^öùoê qw-’¸‰)žpE°ÑR–´–Üû®^ºpƦֆ2èÓ÷êf²¿ûÉßE€€"‚âÃÇm\.-ü/C*½Œ$,+ç¥î²W¼Hê|â……6ô_‡üË8Êg£!²ì̳â¹0úbbå7J#Ù`´iU“ÙwŒÂÄm·æm)·|^ˆ¦cod¢F‹Íúf¡e÷´zRøÉ¯¦F(’“´öR”ï&x Z¾JûíÙŠb5G¶M÷[Èk>ëb®¸Û'v¸~]¹”×Ê]¥bÐ{ÁÞä,NÔðGáSº®O^“­1yBœµsÒ–#nÉûeÏ€¾›Çwcü®~ƒéoÒœ²¶»¯LÊ*úCÆ4w€T_Õ÷º·´o—¦¶¼SjõªÙÒÑ#{Ètµ2<2!âi-ôüˆ­F‹¯—[½“ ‚©¾”9ê…m·%Œ‘ìî2¯SµcÇ^LгAÄkç&ºRÆ”p”ž[ÝK¯vÍ /þ:ð†ÔyÞ¼Ôp/+_l “ˆhaCZÖVéšúgFå…ç8«Å¾3<äÊáR6 å¬G¦•Mc`4Ö-z{Wçlñ˜÷c$õÁk§±#š¥E–-Í©ëY÷)>ô¬²ŠªõA»„¹¼Ÿ½°{üÙ(Š9”¥@å‚LjÒ÷ñw¼1šrƒzK“›CÅý¨™¥5*f3ºÒ:)þׂí‡]±>ù;¢­@÷½®«-pW ¶êÚ—ABx–pÕ^PÙºleP“aý IõL‘îkB`¦ô¢v1¯×>a¼dïlNrñ¶ny¸ã(Û|îïGÔ? k¾^):+#ǢȶÑ)Ô=›VÄŒ­?•þº £ŒpâR]˜¬ÄÀç2ýê6Çm5&©Pj²Ã½hô梿ø œ<ÕQà3>e[ƒ§yj¶üÙ3Ì(6Þ„´3»qCÖò5òά“ã§w?úB[ZFdŒ©®ØøÎë0Ÿyce, »øp™Šì(a{áÌr»=R%­fáxÅØ„ꩉI4\B»ÚZšÃc*%üIoÑ2\È–£§´$PraE0»£‚c]˜ìºtúš 0«ÉlnêüýAf2»ÐùYÎf.Ç.ùl,lµÝË:]\—øk˯oîÓt³‡THžÆø9 씬j¯’!# {è" Ë-œmÞïÅ_?9®¹zÄüÛÂdŒÉºz©ü?‚‡NJuW9’X3{yjX”&Z-“Éðt©”"ÓsÀÂ0é¯y·¶ ÑUò†“;lÐ?_¤ãñ>³FJ™X]þ~Ê⟹ëz§™Ã‘ӈϋ-u÷ÉeBꎎ¼™„¥FÏÞ[ÿÉGÕ™ùõp?à• Tç]>w#Qô§}8æD¾XDË4€“Þ~,ãF8¬nd· /~l„²4¼„I…ÁÔ³r1âFo,”<‡ŠW;e¥ÏwÏÛ5Ñ™/Òt$ˆ™–r”YRDŒtGà³0¾Š¸üLÊoâÒâð ºÓóšs5–leq òìÓ0Áá•Óí’·õÄ5rÑ¥ð,kgB,í`ÞÙ§Ð þÚ¦öŸ?›7yºC×at¤D½¬ÿ5¦Eÿ$¯pø æ *¯ZoÍÙŠaÿÚÁˆ÷Šœ4xÈþc]:ïÀEµ©3³ŠLÙ売 ü½8M먤Hç„øGÙw¬A” .ˆô<&Ûêý!•®“@ª¬=ÓA0¥+r[þSgö¸ü¤5vÛiÃTS„׌%¤üM/Âõ]ðU¶¥*=Ùzdöœ²÷^^ŒAG" ‚òë$#\Çâ0$)NmÌ|^ºM:cª _j—º^Æ)<>vˆQbÒ®‡»3 ÿcœØa–AlÒz×çè‹Ôâ=H ý¸ÓÈi^ÛÓ96Òû2ì\J’¹üå㓺ÿ‘áŠmIëíµœšâ¿ò ð…Ñ”q£ÄuWš\$Gˆ°…Ô8^'U(=ò møÒ‹¦JçÃrg½ì¦ãÃŒ(çö­&”âFÉãÌÓ¬¤³2šüM•7ån¼"}©®‚ྣTø{T"8 lÌÁëÇÜèKŽ@ó"yþjß}š£½ƒ\äðäh#|5Øm.ïr#ú‘ NêÄB•=ñZIsʳX1sø6MÜ¥1þ+å¶œÙ:4FuZ&9Àù'5y ]dn3ú„1‹¹ „€º{EÐÉ3œ«ˆò`´7±º%Æ?%—hG+íB¾ÏÚM#'F®óÛñ¡z.^Åó°î÷!n>´þî"Šžþé̘·dñZ”*(#]˜"F)XüL°6¥ÉAÏ7ï½UDäYŸ–Ò1ñ-«\åGßty¶Æ úFGôwÍå6‚ m§ë+Ñ_B\h*—^)ó:ðÙîì)ú€qí~½Ú™ª ɹ @Zg%dΚÙ%++|7ˆ#¥è@*t©0žÚL¬~pˆà™=ôg¥sc…Ʀ|‡mÚJ±ÊhvîëÁþ‚ªJÒ†èk:G ­¶ôÎk‰@DêO¢7Jä×ÉTÄÞY£Qqoô¢ÂŒ#S ØùÅì>9”sj‘ÞãÏäüÆlzŠy‹ëâÒ¾¢óäÚ&5"Ìá%®ÏTj-åç áÿËB/foá{^è¿÷!ŸüÃÝMãD$nJìë”QÄ“üGïý«šèÔÀ:¸&zóiºYÆž¶Wãm>µ)–§s˜¹¢i[“]^ ízs¥gdè‚^І»|ßÿEYÇŒSkjšñÞŽ}öfÐ]Xè‘(‡3N}†á¯åšÉº…u²ÏwÙV‹¿½šM&u7äeRª¨îUYð‹9÷-@~·ôÙCâN3j—¤dØpNÚ4CÁl•? )7E"©4ri¢A¹Öià0Pj¿L-:·cîWû¬ôµ¡üÆcn§ÒcW›£Ò½ÙŒ9 ÿ¿ÉÊ®…ù•ž©‹?7¨gf@Û&3Ï[EI§ÀvÔE¨äŸ³”£?$ä«Ná@vŠ]ØS9ËlålC΄P¯ }ÐSïüÔš ÍÈ —v ‹ââ&’%ЯDs‘lÇÐ;Á’í /jÙEÀZÞ)Z),¬Â·jƒ³7û‡Ê2é[¸ÿB‡ƒª_³¶ ØY­çÎdFTf#Ï—¡ %Å•6ÚIþáËmÖ®% ¹îÍÅ©Q@ˆìM ZTR_¢uLÄej€%¥üÆc‚âr‹•oÃl:nÃ)ðah;£ë‹² 9§° ñ0ñ¤eÛ=nÊw6—pfí£Ìë¸aý·[@Û;%É=‚¿Ë kĈÜqVÜʉ°-(S9~®dæ*;öb¢ˆÁQšð0y.Ò~Ê÷&|ˆÜÛ»¢éôúDݾOØ,#Òg’³Má#ÿɧUßÀP{újtGzbþ·OÌ÷S‰÷B¥Ü›˜ñ’þ;v„ž°¼÷KÈ ¶hÜ]Дø|3o ?êÍØc\s8N—PeûóÕÓÚêY]ž×`s÷u‡Œª Jü›7æMWÒ(Ö*17’¤ÊRq%¥üÆbTf..@µÛòù¨¤öˆhhôËb^ìužúXñ…xÊ>$o1µŸác÷B-j‚R·•"SbAÐgXapÉ’˜ØÒ`2‚1Õ`ŸQZÔÉÍJ>-;X»~Ý—£Ò;ûK­çšL§ÜKŸïûïðZÊÎXGÖ+·ÄØ/ iÚ)ª»¹1µTã]íËäË€°SîVYš„²8I‘팑“†6©øô ±)Û2z¨ÄÀ¦êµ=}aº™ôdI)Nß Ži1Œ¬ö7ÕYé–D'Èÿ>=ñ;©˜®vÜø˜=NA¤ÓB¢nŠ×tÏÜÓ|†ÝKÐí¸:Úª’øô¾^Þ6àØHúüÕƒçÍ…Þ 下Áá›ì q­9…ŽÚôó=bì~ ~q§Œ/¾wsãt^Òóç|eúºâ~ùF|»:à{ûÙ低Qa s0Ø ‹,oèχòÓ £Ð`Í/ 6@ãÁ$­r½ó¶çMãKO£/.%b~5üw{!öY4GÇÉ]RL„Òñfq}Ûd•wÏ}C–õ®äœë ° Ð0­³¢ŽK›tƒdÞHëfÄ/ÜÈ+ÓóH©ŸµÀXÍ¡ÂX´,‘^û‘éĬˆ³·ú²^¦]ä]J»ŽÜÇx>×ñÆ$ÕѸ ¶PôÍï?ûb`ƬËÎ?3FLW¨OÏ­¬•¦K‚]ü}b`eô;\túÉYÑ“ä+ $4V‹KNjK¬&âíAÃõ#£râ9iÖ`ß^ úZ¡öKsσy«¾ßH8Ü Àªê¸[z¿¼ÇŒÇš aÝÞ"kƒsJ®MJsru–{¬dªwilJî»&„°Á^š/E¿Ø04¶#H£TÍ"<%Ú7Ibfœ*Ü/Wf MÌâvØ ï!SŠy(@d‘4¤Cöq~¸Ðª ô­üáÁÊOžÀêÏ8™¯÷Ňèò p%æ( wÌ“"ƒ‡ªÑiÄ—'™ì(Ðà×X!Ï?¢á¡Hh¾nAÑŽúª2šõu„RR{õèn8úþ~kô+B¹>çªÆ9¢XÑt‚hî¨Êzæùf*’4žØÚ‚ÐI­˜9S×Úù«x"é¿JëòÒ4íVîaÜÉGØF´‡"8²·4Ù•¥8ØàÝà]hƒðß<ì™ÏûéÏ‹¼å%6;~Q4ȧh¦ ¢VíNùe4iO$DqQïù˜…v– '¿“8R[÷ÍV3Eâh,ˆœJ¡¶MËŸœßWã¡ –Mæ/ºÿ¢‰üNuD-»ýê)f¦[PÒmgœÓâ«wËRÜ-æ„aeÔtE—ù–^Éô‘Lwó4wõ¯aõÔe2¼…’,“IItEÙ}Âdî!n웯pRrÿ¼°ãÝܸ"'1ðD©™ûÝ çÞø} ¶0‰š¦ÈvGC¥@S³Š¬9¤>pA¬qü‰oú‰ÈG;€²[zŒìs0¾ßšiöàís®¸ì]a}ß3š¶Jô쇭 "/ì$FÝz|8²£C(NÕœ7¸CÔæÿ—{rÅüáSÖ@ù›ó‡gÅü6k Q‰¥áçxˆn‚–V²ÛìÔsd83ˆqœîÝŸM SD4Oî1h¹ZÕoÕáå²FQ¯±ÄM­/¿RMC)†¦nl¼¤=_hY„z‚r´usR×]`F¡óÉS?ªÚf ™çÉÐPô“fÄÐ4hËF·RNÜ] H¹ñh}†ª¯ø`M Ξ9`úO!J’ÏÚ‘R—®ˆ&ЙŒ!ÖÇü—[äÚ1Ìx+åøóìü<™”(‹*ù,<º%¾ú #=j²õ€R hA‘Èûé"®²šv g> „©ÄíüL¨#Oÿ9î_¨ #jwBÖ´1ecÖ~ïI^hßß©³ÿ•*LØ¥ÍùÎÞl*Hƒ"üΦh¦ c8²FÆmþÃÎQÙWVøŒîíŠ*Ã.õSçPe½óE]¶ÐA”¶èddòÁÍèn2„øð„Fy2‘üºaÚL$Ï.âƒvÄØÎž:Äò59“ÿñ§ ü¨Ÿ%VÀÖ¤ ˜ñžKTß©@,ößfZ{îJU+›•âáuÙ¤Œ£}@¨ñÜ&TƒkejUÁÓûµ9o{¸‰OggS€¨ä(Dêî8ÕØßÜÒÖãÖÿÅÿ[ÎÔÒÖ×ÓÔÑÔÖÔÕÕØÔÒÑÏÓÐÒÿ*ÖÔÒÔÿ6ÿˆäëàìçþå÷ýöøÿü. ¦ã÷ø[Е¬(b—dT 7áÜÊjy )¶_nD4€,›Ÿž×XSpð^¼K.‡y¸7âïß ¡¹Ü‰%É6f,Xò™"•l2¦ú¥©éÐ.âÒ8óž€Æfîd5ŽÑÈ*9A¶C&{,ñ–€gÆ/f¥_ú!·«4Q»ïĹ8”I¶8+1¤Ñ?:P¥ï_ýSÁãçdªœŒ!¯Ü©åʯª/47¬ñá°â‰!/™ú>¿Z;(>Y´ÐÞ4¨Å¹¾#Ä/FˆëþüJŠ£$eÙˆT#²maëJ6k¾¥cÁs…ÅVÔDU³Õº|S˜ð„þG·Ѻ9ºåsb„jÆÿʨ—Œ·‡×¶ÀB^aêQNÿ”6b;7ë­Ðj? Üøh‹Åûÿ&Î{{¨<§èÞb6.¦0Š#ÎwRWM¡lû²~>×_òÃk607 ±ªt³axx½¤©Ì®j pH"¥ÆÂ„’~_dІIa¶%£ý(¡#€x“Ìr³­ÿÍgV¿'LÊѸÎ¼× jémEqüM{LÈì÷"‹6Ÿy‰Öƒ[›Ì—oÊoÊ8|ðC©qlIôY4Ìý¸>h÷ˆÛ,ÌŒ{âÒ#LƒÝõ†Zt]½Ú&ë"º¢ŸŸ±ªø~YÔš†Ùà~ÜŽJBM3m™Ïa«ù? Aux¤ŽVIç_åUa|Þ¡úAcí”87o½Prg¶Vçžæüy؊;s+ÛÙ2×Z ò2×¶üâ6¯³#k_¡‘½†Ïëuï·ØGßàC¢‰6>¶§¥¹øß§|EÊ6¬¨júÇ;NÞ»TgÖg‹–Òõ ÛÍÔÞüM¤OóA¸Ë"e“1;¼´•úˉ[(oH¼kP—îhüK-±üÎ;/wJ [1ÁjéT‡ã‹AVÙeC[¥q‡ˆ¢©\·šÄíâuYmJ/™È­ýÜþ¯¬ O;ÄÀ7Ú"€×É&¡­!9šiF#9㑦 ¶ú@WâZuX믩Oc×=ê7ªbØTvE!tß–A[+…»¢–ˆnÖ\ÚÄ<Æ"`©UØæïS@$Æ€œÇòÓìr RÕ2¡˜¾×BkosÈ?¶H´ÃN}("Bð‡IÇ Þq¡Ùü6Êdw¥ß­ðÞʃÎô§f"OáËÕÛxv® _.PYk‘¥{º”wmwž0ì‡Kzêl‰s1`–gŠ‘™Ná“ôâ}~låÝP-¶·ÇÉÐS LúàÕSw4(Û½ŽÃB4àCʧ8ĸªnB-%è5ذÖf U…Õõ¶7õ¿wNÆý™€˜1¬[@˜ÿx@˜¡êâ>¼UYÉQgÒV‡"¢%—ž|ûi{¿°æááj ÷ªrŸ×d™‘ÿÑdD±ÎüJ—LE3“v3Iv†ìýbë:5Ÿ ?d¿b‡µ+[Gü 8ÿÿ€éäÔD ¸ÕhÕ°R¦tefß±¢>jCi1®‘MeÒK#eª Ò£ÝÈüAëz v[‘vGd’H³1³ê3¹È híMÿLHà ¬Þ`üS©½ŠzæS!Bþ:§6É£©Â]$ÞiøMˆÞºf;züǺ!”Vâú‹ƒl÷üûG€ ÖˆLÔÆµ{çÌhkMÑ‘Я\`T|Áát6_%Eˆ>½‡Û-ƒ¨üM-yýÅOÙΫo£%äA6iê~ópÌ›r1hл’ÁÑ_™xØ\‚c™-db•ô¸%¯3 ë«å•·Œë¨Ýóˆ5ÞË ÅÒ@Íá}ñˆÁÙ-Ï2ÉAβO¶Å•;–§n‹ÊrËyì±Ñ—fP-HTˆõ¿å…ˆ«;¨.e>‚šÁš;eÝDˆ9¢ÄÙRö_õl…ŠÿBõ+h£ÝT„•Õƒœé¥Þæ JzW¦ñÖ%S³ªšÝøt4O)[pà€ü`Nh ¹‡àŵŒl>AŒ³hŠ^б«£üM0_ìÃ5÷3–jÒÀTö!÷1- æ©“<(]ض4ŠáÕîŒusUP¢STå]<ÐP&ö•µâëvwt •ŽR)™¸ ùñ“Ý!HãÈ V,M×÷“ÿ>Ìr·c¨ ùÈ$-,عxR¿êÉ/ö«c)‚Ïw‚±áŽ=ÿðD‚*¨ÕÞAɤq\ú¿ëÄP©–ÙÛ“94Ü4æ¼a<ØÇO.Ê.³¼E­Öè;òŸý&Vïi{gÔ÷6‘‘T"c¿P¥ƒága{„¸ÆDþ®í×ç±ü|ª5†I²[ÍÎ{Bg…|Dz;k*æ„$Ž­ÆÃ¾›1À>±ƒ¾ ·e¼x7s7RP3‡¯´Û$)5Ÿ¨¼Jr e 9]{bÉM÷{”êÚCôü…Iθ…„èQLd œã8²ã|õÍLtÉÚD‹Y({²ž»Yf0rv¿Në6(7}àh²îÁ›«iÔ¢¦töU,¨¹Wý«zM•‹·â²—ôóæajÛ;*«fU²æû1RD š!_HôïS«ÈÝ¿°óšn¶¿ùhFåÏUÖÙ(tÌ»]ÏÄ{jˆÛ…º™®ôw1â45Ôî§C0ÞQ“²jA ¢(˜§9}e¹§í¥&Ýÿz•µ³¶”Sy²¯åRyÊ¿fV\èÀ¦ í˜ÌÊ ¤Ø‚ŽÆRò“þw0®œNŽö¼J æ&ÌŸH«‚/ï ?ï“ZÁ‰4›GY§•«ºy}¸OPÄÍhª”Q‘ØäŒ±QðÒ‡èäv2Í^±4kr¤·mfÑÚi¢*Œœ¤8öþ¤4¶u'•ðª7T%Á5òì3dü}ban˜ØSAeÏf'ðøfÈ$ˆ™w}ëÅp«m¶-›Œü=±¬ÌÞC%Γ¼°ë=¨M)KÊ?‡̶)èôá3éš=îãÜ^Û.;~2@Ñqü³HôD/r&o/{£ˆ5ÎìÖßÇÿÞ”íÛãÁëèH„< o>Sê¬öE·õ. Gù,Ö«d·Ñ‹<ÝK{ÃjßÓ t[Ö.@ʉ˜¬s¶ÈÛ•º|ÝÛSûSê6VŽx€«<_xùÙÜMmsÓìQøñýâµ$çè¼2J¶„)O1XÃ%#ù$åUµvQÈ4?­Í? köfGVxºO§t?¸Ð{ ª)Dý2ë0&þS4ø²|Ô=¸jßW9‚DòèJ $î¸:øÝ‹Ó´ÄÀœáWt{© ¡Î·é¾Ø„&+=õ-Ýž±ë…ŸæjmHüM-ŸGÌ¿WÁ¯„'zõsIJ^~\S+ùÇÕ‰”“ç@ÛbC½½àÉíé¬Yò¦sûOz¸ùᡚ|©Và퀓±™]pæó!œú}™üÿʲ4y%X¥=8ÂÐïÍB‚Û8ì‚‹ÿ*phM…±’d„Wëo;¾xº‘™l2çSÖE޾aÖõõ¤ »¬Ë8Ëœs£u[ü.m† ’¸uE±¦õ^2äQVI©+V­²øÒo¾KîMúÍlqÓ]‡ö¤ 4|VàfÊüL¹1˜Ñú#É!dr=WõXÈå7Oá8l³_Ï¡s5§ÉV$ɰwr¡ð‹‰"HHt¶½ÀˆÆ5g«¾çw°;GhFãצŽðû ž¹}\ŸD Ð…oo+ “yXZ­p" 91•ªUŸK÷¦¿Ñä™õ¤¢˜G˜Š²Î_êU•>u­;ú­9ÉÂõ]ŒžíFÙS?“„Ü^÷ ¼u,X-¼…Ûv§S€ÀÀ¢R«"Äž£m„ÒDÍ—0øj£ÑK=”Æ´·êj{í>ÌAk=A<¬žüM|P^$ÑýÑa؆“X-Ù¼„k¢g*ñç²=;ü¶%HäZ/Ém£‘"ÑQ6•qhÐâ’õfeÒd¥(×wœibî…åý`L§ZèÉ|…N Ò0WP¹÷Ÿ‹®ÚV°ô*ÛÒÝÆÜ5ÖÖ¶l§ÿêA8Ú3F•¡Gs²Žxž“e1a,ï!ÊXó2§JÒY), Çmµ¥²ãœ¨ß%zQåÛŸ ¬ê*YEC€¾`Ñ´xU°L­@ϰ¬Ä¿‰¨}?rÛuG²;îqküI|™6i|Z:Šñ¾Òö õ× Š7‰k‘O¦­aÆ‹ù7Ì>]›ñì¾á¬/Ç ÿ¬8æ§›´Çm"²¶N6ð¢œ)Œ;}É"ueÅR!ÆpŠK›Ý­ìôÃb樰©ÏšÞ8ƒaG‚N´y¦9Á4÷ ¯Ã;˜æêGÌ~L}ý;mµ‘·Ê&”W·¦ªjÿàe6ô‹û´2‹ù"¦ñŸ¡r”Öí%e3>p÷c®fœTÕlQ ©ËZ/jÊëên¡G‡é}¿Ñ)šuLk›üM{CÝvWmDtå÷Fßž6¿µ¼Ý/}ðcó@yÍÉÜêE9tÐë@]Oò²ñÓùxž~°Ò•R”ϵY^þw>3!å°gÒ¼)Ž$õDï æëÃà ÖHb¦_]p®+'$V>¦JŒ¡{_Ö(Œë©#€ ðxuknmaçAnf» iÍØ=¡xºþß]ºfÛ!„s v£=é+x3+ÙÜŽÛÜ0ˆ×éV)r2zާzvlÏ>£p~Dq7æù×m/’QÎßkˆ˜Œ¾d d–Hœc~ RÚ½@ü5[Q!vÈÆõ»‡{q¨a\s‚ p¤â%J‰Ì®ÌåxOþÊ*eŠÌÐäÿº0ÀÑ™sÐW¢öòÆ©B\ãpO“œù¹ F̼û¼ÀÀ¾zÊÓ1R³ö #ÇCö=σ`q2úÁ_}|r¶Eúª¦õ†Û‘ÿ`¨¤¤ ¤ÞÄ‹?†}Ê1+qÐ|ÑŠÆ»L¦®H(mªu|³CnvDwfÆH š;ûŠbÐâkö;ÔÆl áU…JèÂ^ŽIH»·4d¤ˆ]kÞpDNMüMV¥T÷™¥Ï 'T‚9_¼t—BЄÎ&ì°A…É Þ~«k,ÔËhï´ÛÙšªWªóîŽP7‹ÿ¶f…:KFŒ‰Öö"…ðz¤ôS¯'€/bj¶n–ßDoêc©Ø˜pD „F2”#ï/”Ú>í«ô‘÷ã=½Žjë –ÜTí8懀@¬‚˜[ì°×äÈ#Í@H™Ê‹1]GªHý*Iµ—&$„´TZ›dVûc>ŽÑÓ«Y9'»¤Ê/&#ë6w1´MRí{<ü6S .è$²×OÆo§Ô¢.DtW(þý{é;|µS#WPe*•3 )² ]*r©»¿ çÚh¦¡]jq³»Ù¸Ï·ožì§¨¤ÍbGý—·#Üi‚§LáhXÁN–‰ñdéË|v Ó‚$’š??3V“É·Èñ-.(Õ"(dÇüdD(ÒÎĘT÷i;J‹ZÜU°Ü–!ìŸ!h[ª.Z¨+ó?-¶bI‡*Ç/×B“ú˜/E䂾âþ;O`)”£þ©›æUÔ…SÜw ub{ü6ŽEŠQ=á·hW…É/óó‰D )£gKv:#äl ç#Ì]õÙfñNú †quR;mÎCÅ‚|X OXž¨À[N^ã¦Û{Ôú™s–;Â8¶á%°-C°hÔp뫃K§î.W©Ù–‚X˜ï$×H©£=Åme6û÷6ÜiöÌS.hÃGŸ¸U+ù>`:Ù»+Å ³â³ý{è m¯”…@ãž µ&‰`~Ñ&ß@= —“ÈkúBA¾J’6AMÏ÷ùäã®TÒr¼ÊZ`›ò³ü1I²ŸgǸ@îttâ´wªø­íB€ºbÔd§ù™ó Þ7²¯øø¥Ó¨<¬jHèÃCw¯+òðô\ÅeB®ã² ÙqoQÖÉÑý@ã¶ÔML¤àü¸ßwi¢Í±‘lgß<ô1±¤šñýòþ”–ÄZ9§Ms3MÂe^êº?ÛcÞ> líñŘχu 0(­-„õ>Éq!,¶LÆv ìžÈ¬ã aA›;éœZ"drzX%¿š€Ǿá³gWÍ× ¨wÆ<·ù(]6Îdg²HlŸü6Às€Îùö5#­Þ¢úóJ…Ñ«Ù"ÀfÉ{80’”ÝÃw“±V´Ÿy~…©%‰&’#¨Ú‘á3]â„È{SZ2ÛXù g|i9GKÖâÅǪüs‰lì–\}ÚUƒ^aWæ_ŸUZW•þåvà×Ami°¹ä§rY$V0;¿ÂþÊÉw¨fžZX’j—„è$-—võ{7u¼{it•£ÿkï‡ÉB<ÐÑ9a I‰.ðäêÞ:ÄÐÈ ¾B°RÁl÷õ^[ø‹uâÃHÊ­Ì;7kÿJ““½D¹ƒ£fÀÇ$¡-TÓéÿÉÿúŠÖZ|Áåa´°¹ƒèâŰeíL$ÌÕGÐõÝ!ü5CÕy·þo`‚=ëûe^²c0˜xdç] ‡ã¡wuR_ŸÏ޾K¬j“žî´F‰ù¥lº[^IYÀ‘÷çÛzì€fžwfWá^û.§×Œ[ê2.~ úÖÔ.T¢&Z!À|Ô’ƒAiˆ>†ãK×ê) -B³×æPТ •ÚþõcÝ“š®wgXôE>Þÿ%a=Ú½M#œ,KaÿÝ>×»¤„ùH²êŒÌÒåU“ há “¶ö•¾»|¢¿YŠA´Ò·0Í…I/Êd[†2üÒöVü7—‚ý¾ƒBKÓBÃ>aöØ…³/A"^}*'Ë”>×›4œèFI3^I‡òR°lšzJ„b»…YäÿÜ@?Í[ÕÚ¢x^ ×ÔQÓÈ».I4ÌÙœ&+Ú4د[ëO"9Ä<Ú¢{äM²µ˜dÙ8D^ÏÑxðº¿!^ªù„7)‘çŒAÊãËù6×&;<úýoû‰Ë`€îÒn_ñt‰GHÑ[iIí‚“UPºJ‚9M¸rð9bñõj1›t‚ZE§=Ò\Å×P³<< OäM7üLÜi>ž×½J·züÜñ°K×sðßKkðF½ëÌÊ nUem51LŠÆ²øÍ²ïÒö4E§KëÚ»Z¾  öéIñŠÎið:@,ÎæC·ÀÕð'4_]÷`@F@¸êX¢"¬½ MhÁ:6;Ó»[Ä<³|«€ŸÈ‡Èï¾ïàhùÒƒ€CÖœ*ÔF„ Ï*_„ ^Š9Ži/Á‡—¼¬5uà ¢}ºÃ€G+Äfä›ý~ñ¬¥‰‹û-;¨õUJO“É:–OüL®”KÚ£ÉÕ.8ÿsü†öŸŽ„mNªAŠg6wºÏ8‰y<²¸T—õÃ+d;'‚µa¹R_X…ç¤ Ÿ…` çŸ{kÔ(n|_/²p°TÄ¿¹zì¿·ÍšIt(Fº_²ìe™~nš0-NQÈ`cêˆÙ-¾ÈÃn@.ý•ð£&‡ú8ÛÿE€œD\?ÒÙPl&téÄšÑ`Š¿Œb-Á³©¾ ·—£õŽ•U"{äð›’›LöØa¬kPQ«lÄ¥ËüK¦ÏoI@üî›yo¼_—õ»:7˜ÿ}¼ñqþx)j²%ªÄ¸d™mAº"—œ›ë•L©æ–w’¥1*+Ó ‚¡ž‹oo-´SÏFA>k1Ý)â£Xgýê¼0*)/YηR_±¬—p¤$®c‡öͽCM0Èé3@2“ØÃaiF5‡ó‘µ/èj—,ã·«þE9bÎ)ëbbç.¤ƒu]J‰Wc þêÕw·’þß]9àEaz‘UºTõåùKÈpüÀãòÑ£q3pBÉ+¯BLKÕüLÕPÚúŬôaEã „® &<µEuœžc~ßpÐA¶Ô¶ÿÞœ©ùö*²/t…ÆS¼ÅÎò(„ +Y/…0%O?>ÿéiQº\@ì‰*œÅ²¸›~XiÆ ¾½9ˆÐ¤\w¡ÞXë4çUÀƒ“>˜ìß<Cä‹nAô%‚á@b‘ô/Ëçó?qý‡áØå•²ño…ÑXÜ>Eþã1iEŠ?Ú´+LÀ!´å~Uîp« ¢»ÇùyÓîJz‡=Ÿjl¾ñ¶½-nà~O´s„üK3- G›ý™qÉnÍP ¶ÐË‚«Û ?æ1×q|.î¸N¡Ç“´Uö%­¢j’]R¶¬i^[у‡KkõgK3Šp´]ʦÙ÷W£CÇqø“†,Ûˆš·¿ç‰$W5²*­ÊÁþå²ÿ›J(×DÖë…Zi—,hIT{O6‰Ø¥EE ƒ BBir÷ÉH¤,@«ŒÀ”+HÊÌ^õ@-¯$†p@Þá{®$4©Ý?éX F•ëe²“\нfúëZÊ‚ ‡n5ÿ¹8üLÖ^ñÄq4· ¬¢?®«9ÄÒáv;’VBs-Nµ 7/¥™ž˜¿ZbÜ0gá¦±Š‚ãHºiO—€^KaG¡çhYÈ{x”Ö㨠ò,Ö!ðÿb³ Z뇼ðXÔèÛÀÿ£òfÆ´l¿»’ ¢«‚q·ä)ꮳs‹¦ºZjDv™ÍL6ÁßùÞ5@ô×~”Ôó`VŸ"è¢Y#V>ĦB¸ýqÖ|%:¦ 2_&,¬kø¤ùŸ‰*{×$‰ÒîÁÅ>2šk¦Ãþ\\´¼b”ŒAüMZÔ[†Œ;4kȱõ£[1¯Q…dF=‰ªÏ3Yñ¾0nÐ^åúÑ4tì¾ZÕÚ.œç¦ïý¯õ}F‡—¤Ïv•bû|°Ÿ¨hùº'rfG.ÈÍe@hñwÃj…÷Ž’“¼«åFêÆ"ë4ýxà|Ñoäe¹]Z1òa±¬BÿX‹6Ë}Gžøúæ<ÿ`¼øÕ…ÏG‹‚3öôx îºÈ£›Þmö7 Ý»õS 稷,•.€Ë@ž(ûK«mžÆïžç&€¶Ô˜l ü}\/¼ó^ð´rÚÜÀ÷W Ÿ°'âÛ>Å+vÌØà™ eù½d.¥;ßqaÃæÝœ¸_9ÅšX¼Kc^þKÆãø$Ûòª±¢kÖÆ;#ª:íjYA¹ æ|kr}¾¾°cjˆ£é‘Åäª –м™xe¬Šçg*?ûS›.q}‡.É…4#€e%ûrÞc¹‡ú¢€Db „häóF{ÓYw„äãQÄï8—ÏéaØñCÇ ôöAµrÝ+wG&éjÔÁ@ËHÂo‹þ¬\ŽwùØyP^Ÿ›²ãö‚v@ßÎBCÔ꜀EŽ ÝÖQ8³’CC VÝ!™Y+Ùƒ™e¦¯59ÁÔöÀ6Û©'‰’–óH­&ÜÂOEsÇ+Y­ö²üë8nB«#§|E·¹9`ïóõO1Ì«ìA¾Ä©ºDxÍlÁJžò¯T@‹fùük8}K WìˆÒ$ãŸS]ä6FÇ!¥ŸjÏ Ü2*á¢K$(颂€«AwŽyºº«Ã²7ê.K8ðŒ½±4ºš¥öFr¯9Ĥ¤PkŠ7u0¾c¡l7Ä/í™-­×ëÏ¥Cpº~³Z:ó$k”‘Âúëx+µ„f”§%Ü·˜yQê€h=u™Œ˜ Ó)u€”Y:hÄŽ·û ˜ KthüA3qüL¼5õœ<'(êGˆ8öy/s"ô–, ý05¡/¨„QXàtaljÒ0 ûÐËÊ~OÆ$¡´SšŠ•öÅèiª`ß[žS{ÄYœy² 'µ–ê,àðaäšÌÎõÁpCµÚJûk£gŠŠj‹“ærZkLKKF9曜`c©ŽE1KGòZæóܼx'}ü»ÞRHÿ𙼩 U²›;Ä¿˜2¸ÈæT|.±sK>›S!Lâ̤|6ࣾrœîuLÛ›h› 6¯à=8X>,üL¼5E‚nMr”°ç蟵ž·+‘~9ŒwOdi4…Ó^…{øþ‚³Ná ],ƒ[Mîâ{¯nϰ1Úeì—ÁÍÀ“T)5Òâ…Z™P ¼w}ê4ñm4CV±¶$a2ͼü ôú`x+ÄbÐ Ý U¢ÓŸÀ{±šÜ0ƒ‘/¤É}I.†Ôüç1»N–H/åïÉ]¡`_îÞ2ß/„„Þ\@)Æ/¸GÀ¸†4­8á¸NgAHÿ>:MæEÊ€Ð;«›ö²¶Ó.^¸{tøKüLØñQ¥=Œï鯮€&V¹ + pzÖ ÞG¥Z…Ý£BRì{ó”-œí–m1„}q³rn—ýEéƒyßUJC…Iªºi²ɾ2±ŒK“‘Ô”MbXÃ3á¦}«aMìJÌĉÞÖy„Z{ búÁË/„=o‰—êâÊ:쀅³ -Œ#K†¿QxÕp?[™@%×% ïújAÍ1èØŸ{Á´,Ï×Vùxñçe‚û®Y Šw¨º¦À‚œgXŒð8N(ÂQá ¬±…ü|®QW`9…Õ ¿s„JŠþ$µšqÓ}ß*ø—'móLHÐgކ”Ó²Í6–:(ݰ¼“°Hâkj¨w£'2¾=—Ñ<] Úüƒçˆ &Ü¥*ƒ ŸãWtwt;œ.1u14jAtàú^ñ'ßþ+¸n9:“l+­(ÎmI¹ [1»îªù“ O õ$åX‚Ÿ’-¤kƒ¸m»Êr/þÄùïbCÌçÆ…ì€ŽjGík@Áf¸8Cj¬—k¾€ª2|/ì·„ê9}$;W[Ÿ‹DÈùU{ÒqY Š5„Äv|b“/éŸò"ßÖÀA§ïª[-‡xùª‚8w/ Ã~cìÑÂßbÍc¸¦¸A7ó'ÆïY¯PTþØ‘A_Ñî•<{óëÏI·ü„o/ËÕ{†8ƾ_Ïö{Ã×7DS(T‹xydâí/R z“åû•?ò×!Ž'ÂqÞå&íËZ}ú›¯´Ñ²ºjU°ñþjŸþÅNÔÍTã¾v•çQ±aM]Gã”2Ø÷8FÉʵ•¶É¿¤ÊïorÆtŸMÆ” ^iz­‘7ÙC%ã)@uø©Ðÿ[2»zöw:Âa0Ýv¢Æ¢Éë4ù!WÚÇü£ ЧXSÍP>‹ëRû£8¢ëüí¸œLS)g²,×^”Cçbêp¿(éоÀâsu:†Ý£=JÆ7ü±on¬ð«/ØŒG´ì@®KÃ%ô˜d¿QNYÁ‘1Wd]™L±–xE¯7”¯o*Ëö±@¡ý+-Oå·A ŒxSŒ!©"áÓÎí÷xU¶ê;®¾ôá3´-…}Z”+ÉIð5ª$!.«Õýçp×èÜ($bszÑYVTRñvqÞQ²ê"â͉ÿYÄ !gŸD¹U[àc  â#òÙØ‘1e¶¨‰_·IçËÿfúRTµpݾ2&âsZDcAØxÉÔÊIèg€jæ³ T\$K¨³ejïü±SÜÐ ùI!ãr£Pòr¢ï¦lÀîä?ð·A0ÒH ØÓþ¶º,•ÉÃíÖìªf<ÑŒ£aAq`u¸nsý¶§¡í²ðF{Þd©éöÚ0áô®¥Éu1:ÅðŒ¬ÄišL&*håñÒAAˆb¶ù}HYÖQûžR»ú’p±¨æp/a?¼!Ýì„¡…¬ ˜‹z¢€íxZ– ‹¥ÑÓ®}¦ZÅpãÀ~¸ÁNœ›/-*s°6­W¾Ùúi$ݶ>”Ug™üÃË!]æAËñ¥i¯›F™:'óirbq¸¸Šíü®³KíÑéœ1ûj¢Íí T[ƒžßs,å1 ­>t OhïýmñæüU_ 0ÕüOÝv ˜;ÁKôŠ9˜/éy"Í{ ™aÇ}G+QàOäLV ‘ EÎÈ7ðiLµƒ–uúK6F—)‹òh‘S¾·…¶ÏvÝ“Ž²£/Ðã‘ùàñÀ†¾[ÒÕ^¼«Fñw‹ÀaÌߎ“+áÀ ˜xLn¿.°lÇi5è9BÁ«y]\‡;ÁL3¬ùµÕ’^i9§3šôœšõÿ6Ïü™š1À Ϫï_ˈjË+öºÕê]þý9å>ïüMD÷¢¦ éó&JKꙃx3ë/¥ÖârÕ‰ ±{fr§Ñ”ôás%d Ï4ÇmÆIVw\SH1Ÿ´ÿb›‡Ö'“ß÷–š–+{n|sÂñ`|ÏŽ@U¢Û°Åð9²ü8öMðèd‹QG#*8$ú(•×öÏ_w!ý¿®îo® WzyÝöY 0êDN‘µjžÌcÇ&؛њ±†³á.CÚ’KïðD¬¶9ÌAZtÄ1âÖx('qù,ï)]¨¡´Héõhý\Ö.ÌØC´xŒe­i²Rƾ&Њ[h—|„+ês²¦5ÀÊý7nx<†–þ GÝ@•$Øfq£p×gö ³í°ËðŸ¸XfhªŸ§Ðºüs,Œ÷œÇGMN@ZVåþ²¹Ì~&4‚­ñì_{º ü°ØëÔ+:ñ“)ò8b¿›n[ŒíµÇJD%Y>ûø„àÔ­‡š™ÌAôBUqß2š8Žø1•„\Ås_[¸Âïrñ˜pu'NÌßzš ¤Þ´ÝÒ È Ò—ófyY©?Ï[fà¡úJœQ ‘ð8œ"¾Žº9©Û²C»‡‚¡ËxzÔxPŒæ<óCiû]­ATõ:m–c&¹ÔíáäP[£ñº^ÀPíÓ˜ÁÎ&¶×+#¢±8PÓ„ ’ Œ–”iÿ¯ÅW ñäh# ã­¨7êNEý­1¢lžzùÚo¿ØïnbšÄcèèü5Ž Z‹Úp%Ÿ¦òv¬^~·v?Ô[ ¬<W®ÕE_L¿‘÷}fL 0 ‘1ä©Dsq2xå¸Â06S˜ +@–.#áŒ5XÃ7ñˆ¦…¡R>Ù`¿Ko‡ŠKލ€9'Óä±ûÆ= øþ¢ÄýKD︃Ñ<“YÄÑ™@÷«/û xt «’ s!aù,h1Û[žyî~ÿ àjµå|§œ™Ùh½xVœ4° x»»œ. {/œÛÞ>ÊO#^7œ¬YÌžÐbó[‹OކÂN5%šiÚ‡c²èßÎ\ZØ,ß«2S“™·ŠÅ1Šv:c‰«÷Gü¸Šrnaàoäy+x,XΞø²°B|dŒ+ÂaQ‘Ùä±-ãÙR`yÚzŒ;~ü Dë0Ÿ´ï† «– D+ãªïüpY¹sWˆgÊ× Žn­¹ŸÉ5>»^(IÌx'ýÇèê‚Ϙôo°ÇóÆžoJ"Oš#¬é ûBCŠŒª˜ ˆjd6ú·\<¶/Cÿ Ô¶Gñž{Ô<•<(N9"Æ#Qª8=¿JçCèC’wæéº¶A}¹)ô‘m,úr‚nšŠÕ/¿ å‘vVåXjwk´}k9É›|¦jãXÙGh`1¦!™F²`¿#ms+ÚçDèü¼ïcZÏ€Ó)Zîÿ†åpsWm[òuÖCe‚)àÆß[ІP­ÐÐ̃ûÁågCÂF!&Ç ËÙ6Ârc'§ !B4+ðôûOç¢ß½ún#)5…¤ÿ"/¾û9•QeÐb„ÁÅû¾E“sC[ÇΚWäå´4äšœfæææe±¥ÉæÇRŗ̆KŠg¨aÏ—¿Pà8Ñfø ç)»sþª_3ö™løUãøãß™œáÿ/_àÁˆ§o†Äè¤%ôlÎJSóøyYx~tWú•ŸRª™†YJ‘€¶'owy^fê,LJ드}í ¨Sµéü½À½:ë!ÎH!8eïÁMRÑ÷4>ÖŠ±"zÓ$§ŸaÅMÅ¥ª=[KG1gå‹[öµôƒ‚Ò2&êì·|™ã¸ë]aÂ-ÊÏ .mCm±¨å#Rˆ–S¥¥ý"®½Úœ†ÖËÓ’‡û»D/"€åN^¢¹ðã¦&FD”–©U-QLEùŒh Ç&úJhÊOäPBÉÃnߟöñ;µçvtGÔœ‚ñ;á¨/Š ¼‚ÊâÂV鎅šg›þ“Žo½=ÆäÚ ðuÜŠÖŽ «ï߆Yís)@ùfSçÕÔÒø~Y‰¸¥dÁµuµ÷ +‘¿ Æ:!Ç10ó¹@ÿ˜FtéOggSL¨ä)‹°"Ç>øæßÛÜàâûíæáÞÝæÿÜÿnçøýÿÿøôéßÖÕÓÿ•ÿ¹Ô×ÕÔÔâØèÿÿîûÿÿÿöÿöõòü¼›æyL`Ô»£ÈûÑ‚ši¨·2àŽ×$Ér[–<Ó!ðprOb_lêäÍ1$û¥ò¡ªž¯ãk™jF4n|?ħÜùÁ–ü=]ýPwxŠ}XÒ…ˆf¯æ'Ñð–7¯s\îPøÂˆèÉ3M S5°Ë¤ÄééìO]_Ì"]ö®ÎÁÖ9,¶—/¾›æ}‚Þ·dy°ç;¾/–{¦HÍE·é hhŽ*!'›B³îÁ¡ lºtêbýwîÁgŠîE*~4yÛ ØUVìéüMSÏ,$J›k;çpÿ+£ ÂÍß(¸O®=i´½U¨Ð ó1©:&PÖN¢µ”BãZó“Ð'UFÛÐyé­¡ÙDLiõilŽ|ÅÁi8zÆ®v—-Ç…õ;êT ûͬ‚£ß¢Ú;øêÓrV°JFö…ZVíÒ'––ºuò›Ç#^ dŸ‡ õØr¤ƒ0¨'Kúom_7$S‘ÐfqZIyJ'UNur韽b”¢êñ[ÙS(ž"}8Ó·Ö«ÄnJ{÷_îóS:;;’nJÒ*&Î5’Šˆdõ¨,šdÄ‹/cü½¾Où‰(¥âCЂ.i‚s@öpXô¶ÒØqØÇnºÒ¦ý·¸™$*Ï^‹¬«*`aa ÷L“í® 2 9S8ymÉ‹Æwt£Òÿ y›Ž#%@AUô2–þ€·^±yë‡ZHÄŽ)ñF»ÅÕN}Ç|ц¯Ã뼋Ç8…=œ–†èÜ18¥QtÓ(ûó4.Êb·(e0-‹¢{#BäX+NÄÃÝtîŠ?Vk¡Öú®:WI;ä]?T¼zÂ8÷žZfuh•Ã~ÇyO¾®0ÍÜq“ÓXqF¯Ù)ü½¸Ñ+ `æOIÄ5³ñnͱì€-lcÓ¦1ćj,ÕÍ-—Š>¹Çœ®§Ä"Ï‹Im†‘© ÄÇ´{6Ÿ«¬O)ͱˆŸ’GÏuº@Ë*ÝQŽSA-㊹˜ôº÷‹Wıh¼P­ßqˇËüª FÖï#;+ü½¾æ ÓnýïäÀ}â4{!Í´9Il[Û<áÛ`o˜i˜Û›N›µ¶Ùþsø3'¦Õ‘6–ÛþˆÝéXw“Í Îm­÷û!ßµYûcà°—ÐèZZÑyâ¦/2[ÐÔ 2øhˆøSæSJëÿKôLv(ë²0&Ž ­îç,©ìd§¥E(¸û.£÷%«*¤% wÐÙq#ïlƒºxß”vn丟LÆ|&¤E8œíPþï5àÐ|}Gâ_L+ªžµ¦•%vy /æzÓáÆÜàÖ-;UVÙÓ˜¤W,ü½¹IášíPçƒuóFø«T­-ðþ„> ä‘S-“Ú˜Á½å€,¾}W2~êis#!N~L§FYi(¹…<3ÞÎnÓGÏ>˜ßR ‰Ý&pçxLGQ '^eÆ©ì EáÊF6E¼[«‚8Já²·Tü¿ÙËã;^!ÓöÀ—¸ˆé .1¼kéÔYËñ1üg¦e)açÐjãÒIJÁ‰$ëð¢®Ò!éBR¢CjîÚÙ§úá+ôÛ¾`(®÷iR ÚK.’RbÕW„H+"Âý 6º5* )RW]=øËŸeù-ü¼ãÃ<õŠ^§“êôðõC~šga±1XY‘ôäéÁÚm‚ï>ª›y« ñ¾Ü:GØb{›´ -q¥¹Ñ©ÒRæx ~²š=~Aë$G °J–É=|ªqr€»°b«û 7+TƒêæaÚÉoõù6éŽ;áÅÉ«Pr)á¶yßQu<,J ƒ¹bl`$fìàíêwÉu`@Ð’£ý ɵÎ$ÿÑi\lrÏ´ ÛÃ?!Õé—t@sKG¾}c’’§^MËÐÁqh{DÖL«õtêÓNN>«ŒXˈ-ÅŸTfÿZ¦ŸS…fÍø‡>‹ŠfÏQä2h­Í›üMy¥ñ,$ÿ×+­?2Ó‘¥Èƒú( èÈŠ[È!X=E„§Û´.š¬jØ>X|Ú­×̃RNr¦ ý 0ä°~‘ÈvS„ÑïXyÃç¤7t’® tÇ×Çm“S–aH2ð£Êv‘=™> ’û¥Fq” ÍXdÂCR ˜ ¥Ã@­yE#$”‹CÏC÷˜½•®Ê£»²`ùg[«ËÒ“ ¨aðJ•^®Ê·ÜŒÁgh+Ôîêáý¸üßÀ*1ˆ²ð,¼€ð™ìªå‹O•7Á{ ÅD6Bû(¨ÝmåBr®c„Œ Ž›“c¨rÙ)†üNxb£ÍÄëRêÄ.)H h²j·ƒ +••Á`ÄH‰™©ãçCÖ;ø( ÆÓ#ÚMÕ^û5]¤Èx¡¯Æ{gííÎpS–8}¬cÆ `khæ#~î ÞÓ ;D“pé52ÐÓŇšsà¥?ë‹çÊ×Ü¿õ%·_®Áo÷Ñ©.®N7"„ n«µ>Ë¹ë ™³lcÛ8m&¶†¼'Õ>âjZíç=€YÖ¥é¸C1æg)€B€ôÇ ÇfØýJ)LJäùCÃZÌš¸¡Gm¹â§<ø#â‘ðÈŽuIÝi$-˜Ðss0L@ôs1¼& z9˜©oU¯Ìõ^ü.H–e%F˜AJAÑ¥Ü]¹ —'ŠÉÅ'íÂó€oˆ¢žÛJ†4¡!<˜ožW„"ƒqÃio<áš™ž/#î RÛ‰à?6†XöB‚ð"PcÌÿíØÊ œéìÿÕ¶QxhmÝž±ü½Üõ¡¯ÙÅUS+;é{§ò/F®…-í<ªä€9-'”j b8‘f5¯«ûA`2`’EÓÙãbçQq(Cx}ñøºè¸1ÂõÞ1‹;ŒíWÏ_êü>ÅýfÒi?‘þ˜7BZ³åÒe=L­Y¬Ru6äеÙù ç(þÔ3"?K®ù6%.ìk«W<:‰mMI…“è.¨©Šº›¡zƒxN¸\ ö¦$lM¦Š’UƒNOlšWP©'>ÇOMª¨v¤Q ·ÌB˜œ>²$D«-CœN±ülÙg$E²–…°8û¦BΣ¢ˆÈ¿äã),š¾öt|y¯ o}õðŸÎœ,”ޯċm3Cõ°{娫ÅÄ [grw'•›D„ͧ«iÐ&ozõ ¼ã‘Ѩ§y*¸ôŠZÐNѧãÓnqÚ •’ÂT¥˜±¶ÈÅ[ý»k©ðÄ{“=l¾f×ãÇÝRí:Z¹Ó…)Öó»t¸Sœã#ÒàížW8l¶j8;ÿm3o¥ àS÷šÞ{'ÿ Yëíž.³ÓÖínü \J¦OƬ`eQü6³ êO+0:¢M^çlæb‘®5f2žJ,A@ìk8 ¢€¤˜@ü4FM Îés§‚´o-Ò¬Á†'ÒhIɨ-tm úòxG¨'ÀΈž7eO]hv_{Ô ™s (ÙžR:@#ÀÝf ¡7cÔŠ—[)&àTüdšjªœÎ|íU~Òcý­¼ éÑ7½Md€r^ b`½ÖéˆÂ_[Ç_ ›ìCóÎHÛ1nŸÑ“E­6¾Ãív²,ºÙRV+îÌPþÒÀ™¶½;ùØ{ߟW+åxJո䊲TÖåÛÀ‘+ÄËÖô˜©FJ…uÎäÁ(A€…QÞ÷å²e®X#>,˜¸@Mg$*¨¸ÊµÀŒúÇåKÊ)-Õ›wø]^ÈÔðšh'‡•tè<ðõnñk7Ž÷KÑ×~txøwFm£o-ÎP\¦‰ zØœÃOõö6!DÉSªÐ G¡ˆïŸyv6;FªàòUÖ½™²6r›jà1Uˆ¹z!,#pp@Á$‰Ù‰]®Ì¶öÚí¿ýlÑŒø³¡¬µ»žLíÄ?³\ï\ßv[l•N”at¬ÈSv¬Ýo#rÒÀ»j~ÈNÚ2¸ÿƈÃà‰ð|§6´ ®fŽkQà™8{ßõÖ±ÐyyK’xÔ!c½GÙ9²E<Ÿm›¬4+cü}b’qz @Û&‘Õ){+È›¨ç—ˆ^Ý:3~Öpô÷fêËGÝ>!Ûäž,=Ðè’ˆ—wú‹ÐVÃAYaû>Íë\²JUð`_ØêªzÒsPiæ•So»HÐôtþí#V–AcNç¨à%S_ÚZµÍÅaæ_Á]/¦³ù“æ“1ÜÂç©Ê¡~\‹,M-‘äIâH ®‘£‡«/ì] á+ ¡ ÁLÖ ‹·†”F|ŲDÕLÐorÕ%a`ÑKâi—Úó™o,:›O%æ®\jRÃ*%”$ÿGÓñÿñ±`¹O€Óïn[¨ŠŸ¿ø‘ýC`Ѽ|s5mCVº—÷ò§4¸Ô€•û0±˜wPQ=ZÇÊx󯂿–“k5WÊãã;qUMDp Œ§D΂® 5^]Œ£íÔ†ê+¸cJM÷}-Sa‰Späkje,ä\jÓ>€ úÁ³/·®6ƒI%ßô,r¹Þ2§c´CÒOÀQª¿¨FŠf/HPøcºéHV欂%4:—å&ïj¢¥' °½5ÏVÛƒÆÔü†Ð9<I"Òf4j×Êr¢@y"­ß(·¾È¹¬ “VÁÊkNuÓ®µáHñpìlöX cLK©qáTŽuSºçïrýŽ‘dCFð¾,W‚b™by²ìv÷uޱÙ;çQ÷Ýßs†BwÊwÞ#qÍTlo¾ câÉ\¿üè‡a=¾ßó²­qªkÕ’¡ÃçšìBÞ̽ZÑ{M*0N"â³æw¾¨#»&Så"Ìáhú’’ÖZD©Šz.dv[¢ GÞLè˜õ• %´PšÙjm¼7|‚¾[€Uº¿D§üÀ%õÔ(Çæt¤þ`øb€mýf¦(÷9Ù^M“è° Ÿqb'@_%zr¯!áÃå{dšÈöâãá›ñ1d¸Ø½)ð—#«†µ¥ÌV”óG'n«–î^¹dš8‘)\Yjoœ]÷ÌÅ¥Ù{»f»ëNF7×۫ߊ‚±¢)¸ù8²ÁÅ8¶õŽ×ÉK l£l†t›:ÁãË={¨Àzkä¾v‹¬è•„çÍ59Š=úCàðA©žþ”XÄÑ2x$°Òꡉ¨çƒ1p±œÀ{ËÇôK¿·Ó£+%ĬÛ#ïu¥’}w6<Ëš„,Ó²)£zÝCënXk=ü»ßi"ÚÈüLÜ]êÙ&¤Ê¡Ú’}y¯´\h3õœŽ]q0úû$Šú÷Æi·1Mª¼¾Éí~=ÊUx——Áseë)ÞêÖꯦŸ ½meˆ‡nÉÎ¯âøÆtÚI«Ûw€š AA÷œ¤ hæÍB"›r4Ïk^èÀLd‚þ\•;nÔo›/ŽçYj b¸ËýNÎPjäöÏ ±‡<‘šP)”8ìòŸG}¬Ÿ¤ÜC=zT©Ëá—Ñ‹Ï^®÷âH’Y1ÂÝøú:4·Ø ›MÙ°h…D.7‡¤¸ã &¸ ºüŽè »Ý«4º@árëtÚ ŸP„gZ)×K·H?kÖécŠÐ²]Ä”ÿ\uÌüLÝ@%ÑO[Àð““’á1kX»È.¦6#œSÊE* T]£Ð»…ð÷'©h±{É·ï+õ®†ÕIc|¤:[15j—¨‘ @*r–¢âR°3D9ópOAyd‘ûÿÎuÝØ0¸Œ›k”Ð,f¡ØÆËÑÕ4Ò]¬õoLž)°¾Ãêâ$ X>º`6¸Æ3úØe?mK¦Ûb lfžßÝm*p€Ï›Š"Š#h˜ûL<7FÀP”d“Aî šãJ§ùHiÚ Vi qê_çÓRL ©·eëH%ìºÙ§v׎kÎ?õ¥^2¥K˜"ôç4P›³1¼~¥—ÐtZˆ†né¶Ql*2¢™zj¬ü0wõhãÈwÐ0›Ž`WÐ~™v ¬—4 2ÚZéù LAåœðÀä{G@±‚µÓì“V½ä1¹`êp€¬¾ôÄQ¼$@Dˆ —ÃnÔð`iE¿ùª¦ßÄøKy( ”Â0Å3ŒØËñÔ~âŒb»+03, Ç¡üiÀúö’ßLóëÑ7dƒÃ|úY;™V+ ¿rŠ:cI'üãýÜØð £­@‚—}Œ“UTmiõn2ŸTuÄ3ÝÆŸ’óªH~jõç§\ UÉ6û4ŠJߟ‰Œ82R×àÛSÿ,uŸçq›Úb‘ýÕ­œp°b- ¡1\Ž ànü7Álh§Éæ›0š, n©”09rcBWKK_iªÈð,‚³“?À½›µÊZJma-CáDMûöJþ%I7€¨õ¿…, Sá(¿ÂÒ ]Jöì7ÒÁó6žnW¾ o¾s†VVv&0Ç_>|ˆ 6xÊu“gàCµQ›l¨ŸÇ¿7àCaªƒG…lúʤq¤@“†¬$)¿Ý¬ ó&TåýŽ‚Cà&]_—?qÒ<¬M…/¤v+Î +ïTäÉéã­/8DqópÍŒl ]“pSýWp?_@«7¿KÔI®‹opäá}ËV¢èënüT¤y®æ-•ÝP#Ðiâs_xö‹}ÇP ôj€”WƽLð0Oð«@•º=V­Jå ¸UHÀïcßü,´q (i>IÿïO©œznÒüL·#´ïB‹&p=CIü»êÖ€Ñê×Cçñðü@ù© ¹º+7E«‰=&Ýß0¾‡ÎpXC¯)ÒˆndVP)ãmá´QaÜYºœèNØQ÷ËqW%“ù Aæ>ÑჄmljޱ²½Ó»Ð¿ C¼ ¨YV q¨ª /غµeÊúÕü5uïû:xÁÊÏÛŒ£z@‚Æå¾ã6¦ÀH0î(˜ž®™£Ñ޽©çÀý½¶J”=®ã<`X”q#m³§—>Aª¸o9Åìe = ðyð²1ùw'š¯y7‚ÕìµyûÞ\gðŒm8£›[æ¸É¥e\;Þ¹i‰?.<ÖZó úG –Ÿ¦!tìÂ?ÔÇÒ6°ïÆ,U©å÷•55VáiÃÓqÕäVQÞ¥óÉÂÇ9±EoeæãK4Közˆ}ˆŠZÚUÉí}îžE:gÍ ›ü5-¸šP'ÞDûQ …ú™vÞË9ä/YpI=Pb©Vä>2èÏpóŠ¢w|¶œ\ñt÷ò‡îÆ2Îñϧ¼¥Fkn^]WÝ<GŒ­~†ÈÒªŠ÷‚²¡Æ¬ÌBÄÝ^·ƒú‚ EN›O(ü:Û UÛŸ‘Ô × ]l5•ÙÔ±mè‚g½EZ–üç Ê~>۔ɋ>€£sÛ%àÄU¬Æ«÷˜w˜·ýàJØhô?Ú¨[‡¦"´Ý»Ôþèq;›ôxžý¸L¯Œ–Cw6¥óü|¨27ovÓy›P¼kÏ”¨6Å^Užºn»šMÔݸñ¼»©hR(HD‚×^˜sjCE›iÌfâü=Óö¨À4¦ðð,óô¶ÞÜDŒÔ2÷ŒÍ"µE®Cu|ýÃKÄ=CoNö£² ÄD8„Ùk3 „ÖQì2ì*> _g¢pØ’+¹â°YQA—Ëw/Û =ý©`èÊÓU8tø Q0!5$ªÙœêÄÉ©N¬v,‰_“”0Z¡ç„»ÓWÃ4l·²¸©¿é¹BŒQäê5Çÿÿ¼¯zÙ+Ç>}QÜ×z3ßä—ë\›&¹‡¢°à)¬8ÝDUcÝì§?Ɖ¥gª8]Ýö<ÿ8/þ‰O³£i@º¢P<†øSj‰„·ëœ„X¶)v¸Àçfó#Ÿë|EëPvïh«¥'‰IÃ)X„˜½åÎõmˆCøÒ TêVìVûIáÓ¦mx[Ë×kª+ùZ(bõ˜®_:"ïÁ‡á?\™ Ýݳv·šÖ4ÆWj¶<…®êü}^ “(£á É6*Ú‘ Ûáð XçžÍ áã=œ¨bÒÍ­¹CÊ.•J•‘b„AÍÕpzÊp q-¾½ô«6Ç+¸_ŽB’¼®¹Z؀禹A=Ó ãBá˜ÝEšiÀþr†é7Ðô-uóãÙ¢VBÛæ6“þ+Éß>ŸÃ~l ËÀÖ¾01¡ÑHìß7Ê}p>nò¾ÇÝΦłZ.; þ‘}Jnã÷ˆÑ]5eÿêz{¡À“ûÒ ÝÒÃö¤|7ZΦ,Ðå@Y¸Òpᘸ€-µ€÷eR/\wÅZRj-…³iðlàÖï}=¢Õ–A"ø*Ü›²¨&ŠGãÒ´}RAzté]6ã®48Ó‹>m•Z­Bþ¹F5í½<ŠàÑZ“ÄÔT-{¿'˜.\ÇØõ«öê1µ«í.6Œþ~Ïy/®Ù€9ËU‘F5$YÿΙqªä—õcÝ ¼ümËC{¯FCj¦\K3}-æ ý˜`¶É<<ÓGR§^Ç…š’ÑÛº>)^Œˆ@1Èt ÿI«nÓø¤ž0òŽËÐ]‘E ·•(kãÆõººz®Î`¸R8ÐsâœW¬üM—–[Òdd=ÚË3]ËÞ× Ioãø/þ2¦¬9‡GÖŒ¿ïÓN®(=ÊÒ+¼ Þuž†2§ 4ª}@ŒRDB+°HùÕ¤“P6ë뀊uÊ2/{ÃÑâ~ü8»¾•>lœõDq³7‘@D·e}pQ2~Zœ½m.@ýKB#¯íe·ÐÁätŸ³ÑÅë}¢3ÿÀ¿ïò@ëDÛ.*ðØ‹tERáŽ\ÓØªcŒ¾ÿûNd}øà&Võ ™Ú+(y&IJ¼h”#œÎ.•õ/£ˆor{Â+üMW0êíàïQštÔ¥€ŠÛ ¹Óþzòì›Óúù“?(ÌpÑtŽ€%­YkF¸ÍCù—Uìb™Ï§/·ôJ—\DNŒjºúÜÞ_ÉÀ:ÂZšxûFã] * ws&ür¨Ôßç×.h¯€ª‡äP2‚á´¯/¸|²!3Î'ÐQü¼¡€Ë”ÌJgBÕ@þnß"˜CÃ@Á\ d%uÜ ÷³û÷É¥²³÷ÝûBU_ÉŠän¼ßŸÿ8š-{N›¹csVR&_´GØ-â‰d^·A]ªŸ,rÒMϞĵ°€-/!À^ Y™GËO+4âüæÿ†·'ŒX–'ašóàwMÊ30R5÷þ‰g]OÒž˜çÉI—öƒŠªA2æ`(ƒy¼<ëZ­í Ø:¦Ü®9øºÌÂp¥ÝfРͲ2^ªÖ®µŸÿ>œ—0ÑͧpÄm9ü½àª^ù=‰`etMÐ3Kù(S"kàsq[ìËzÕøá·ÑèÅ~* —zu>áÇÏW‹ˆ”™½¼¾™}‚ðP¦8®pçk²TÓ[ÚE4!(•Pì—£ÍǤº‹³Ä•Y•°¸övVïRzÐL¡e¹Ÿ<%·H¾d/]7Oæ³z^¬ìZ‚:ÐqNð‘ ÐJA3¯úä3|st+7IéÙ»%H—„?µ –2K %ŽöI¨Ás÷Z¨ºÝ•Hÿ†µ€Š¸©‚^©1ÿ;’„Ÿ[憷ø¥Áçè7.ºü½â]Þ.tÇ9ÉÙíô›AWä¨,×ò:B4‡,²0Û"ÚÖ*öÍɨַJ2!%ÜèÀã ‹ 3ÿ§‘"qÌPé‰TL¡¯õ¢Ð|âQËTŸ¶Vþ+{¼9UóÔbµ«•a·×¿üNk†7.¦RGÛ) ù+¶bãÙP5á§2dÌ̌Ι§:½s´ Ú? gh%­ØÑÇvëæNã-¢3Š5 þÀ»6dÔ­Ah,2h™-<<Ãô`L\¤DûKŸêÕw¡çÑ{e脦[œ»ü½ÛÙ˜9(ÒÖF~Yž1U/@$×üåO¬™Ñ³ÂÔiøYƒô^•L R-Jä'=ÀWò°ÄGÝþµ&ƒãIùÜk9…ªÙ¥?k©fZî'‹fmÒ5¯µKÆÎñ7À#üúªIzùRµOšr+Ê}¢]!ap‚ÿà)oîÝãºv€ÖÊÄÝ‹C$qpvW2Íݧ›/kXû«Äè[’8Q®y\öÆZþ)ðb`m3‚/°ܵL œ¨•áPÀ!Zx ¨ 3Œš™V <öN½²ëÑòt¼Ä1âqôßϾø€ ͟И=ü½àB?$Òj5ùó½RLmÌØXút©’²9îóðßÈ´g$䡾|’¦ÎÛί N#V—û‘G‡ê‡ÔN;JœXtWoKüЉ-[r:7‚êÜîšæfò×Ö–P1(»òjb–%@×øÇ©Oa´V¥9±eÉ¨é „U £ÔÖu¹ª:ôïß©7L^Pâú(§õìÌßi {]œ 1?$(î:ßìr¬i~Á^¤ÐnQ ç:°ø‹ZÊê—•sü\E¸ø´MáÎY÷réü+QÙK¢ÇÖ‚“pž¶ªý,$¤WæU o0âŽß‘¸ ús5Y‹óüWñÚZcGbòÙ=üLä8Ó‘8èÉ ó]:¿ìÙåR&:uÇ0yÁ©îÎ2Ø|ªUq;>h‹"ÑÀÝ×Ü‚ë@Ò ÚÁO P¹%èˆ –œÖ)˜/•þFì¶íƒ7n› $Û"Ê{êú¤"UwVh^ñö™*V²K1(á+ðŤá~QìÿQÿÖ!”YpÍj,JÑb}¨OËŽj$š[ûæ°(Ü‹ò •räzžíÅ–Ö£ÇÅŽ—.ÆÊqn£Oí˜!•tÀ?PO>7{pq»: LßU­A,é›wS?CúºÞ×z;/¹vœœx?Y­›ÐçLÅB=¦wØ0Ú½Hü½¾* Ãú¢C>qÛYò¦¦3LB UbN7Ë^–u¢sÍÈ“d ri¢Û~9‡„…›¿*Ü`,*Œêe\¿^~ñ Vnï}é »R3ÙÚ;ª–²'Éùg1Çíö2Ñ ”yQd\ëóõ!jC@C…¤wðAÓœ 1t7˜tQڦ๭0p*ã²ãHiK!šx`½.‚¬K/׆¼/VuT&©Ÿ-ª¦Ï¢ø©[í75’ª´"¶«­£K"yç&táŸÂïS…ÔA 8™ç†Z™Û@séVómÇ >¢VÐøQmùÌðúü½ßOSÙ2ÕåÑ©\Ù”ËE[êR‘^ï¨Þ¶­cµe³—tïD›¬ø"¨á†:@¼™ÿü>;hօﻪܻ÷Ç«´ìQÀ‡îäæXª®°!©÷`ÔÉ=Ùís¡ÉlX¼v Ú¹¤\]`Bz)G]ÿ¼jzDE·ÉCQE°¹à&²lžÜ8ÕCû×~ÔÍçan#ý»Í*û"?J¢ýpd”\[5c¸–ŒüF(*6\® ý‡0Ž>Ÿœ3f»¬éÇË”cw7³³þ«èécÌl)²éË“φ{'æ[ \ÊbÛ,sÊ„aûˆÉTʳLÎñm-:ü¿Û×ÉötŽ»ùqt×MÇ£ÁÚ„¬¤¬$Tu§ïÏ»[ «¶0*þ"›˜Æè’É~Q¿ßJµÇÕM´Q´s¥¬Í„?µbR•¶-Ýd@[ûô‚¨MšBÙ=Ê/)âXlæºÀŒl>à€ÉmAmÐÃÝ’­|Ø‚jsâå5&#T 8q„鈈˜ ×T8Ù¹{Š…~® NM®:Gkô³ –ίÚz[Dø;#<ÍÙXö}·ÙØ=Œx•ÂþÈr)N‰wìVÌ! ·äpšÿY´Ÿ yæÅjíƒ,™:@ÖõŠžíÙ%F-„ÑWÃ3]L £RBáQRèIXEf©6Iq›w^µsªPÐÓjE÷é‹$»´|z»¦¢.Õâ2Cœ¯H@%m#¼>ƒ&\H™£8£se4NT.<ãÆÆÄ?­¡GÞ¸ iÚi0F $¼‰V9™§RÉþËœuÙ9LñÅ3yƒB°` Ã0c¬Øº8ºô@lø~²h´õ…ãÕ”òU;ü¼¡ða1è·¾&튰¹õ‘ÜŠ‘? ˜æŸn¶åüø>=sÔNw m;†Ù±:ÎYôs;ií%"‚±Ùü&!ÌVL†*‚õáò®$‡}˜CF¦ChÁ§l(ÄuüÂí^yýôÜc…ãÊຜ!öõ€vÇ hŠ…SDÒózê^ªK«02~Ög q—eÞ=ý¼v5 INÝg‹æ?šËͶZ‰œ²EuÊò²¨Ÿâ},è8Ž!L¾ˆå¶^u¡ÔbáFÑ—ú¤Þ÷,“&²†jAÞû ŽÔÇáîÍ·|!Û -‘&mÿŸþ‘3øñȽ$|š 2w—x¼ü¼í¬¾ܼðC ë ¤nçU»US@Ì”P=x‰ØJŒãè‹,—#½ü){hðÁÔ;®O~á#Ž;¾”30œÉYbúÕÆÁ…ã{²0’Ø"ƒÖÔcÿÄÉ^RY¨øƒ _ª[MU‘qØ$§T“¨ÁÿYrÛI„âÀŒ˜´Öàû$}¨Xm#5‚ò¥a3JÈ8·©.Œ1—@ÀÐV}zm‰ÏÈ-Ç—_©tR$s Žl¾€ô¿¿y¦Îû/ÄýF@œ)ÒC„ _ÚÕ÷,:áý (bØ2S(S×döG™M÷ û·ðÝEzò$o¨ñôF¶¸%3è—ůçWjä>»*¼ü53`ˆ$œÂ¬, Þ½²Joªã¼YÈ fpÆ6.ð}©‡¸D€B& ‹d0­Ÿþå~yÌ®…t¤d†NR.º7^ãÍd}VHØ<ä¼ “Q="] zÔÆrÊÙŸïp3£¼šA€{…™ÖFñ¥U£ ŸP`ƒ,–Î –u³ ˜êl–ö«÷„SpxW”uaÚ~±´>È£´˜ø+:ÔË".˜ZçRCk¤½è²ÚF‡†D_÷Æ\¿†å}Ê«ÿIF}ã¾ÿi¯¬îìhÕí]/¾ß¤ï˜gI¾Ç8Ò ñ³ð­Mü6‹ÆñçPÊ’Q¢³˜å¦ã¼Ðx¦têK²‹ßhtÈ!¾ëéÑÝ9쉂U„ô¦˜`{~"ÂgSClÿS,Ê^õ½~ e¢ZòÂç&f€&;øçȰƒö†8la,êª{þß²¾Ò$ŒšdÈÎËu½@èQÂøÒ´û„ Á€5Ktm–XÀÕiÛ£oh·˜Ï'E£A4qXïXÛÇäó\ül$cPêú”6º…RÁ Ö½?d€@¡Ãí雾'ºž3¼Feå‚—±Ç¯yjþS”³4æÆeáÚ€»ÆŠÿŽÊµ{ÉjÊÃÖ¥(êÂÔšÅWs닎ǮX h‰fûlnGØ“lü¿\\¬ Ñš¡ncyùЛ¯Åíú¨"GñpBj ¦û³T<kRæý8Eþƒ?~ѽ9ü½ä·ý¨¹ü+Jwɉ ð¿— ãÁƒ°€ ›¤Ä®ûQáNn>Á¼ÛÕ “·ŠŒeW K^r©4P:z+|ÿlu”-^ƒXõþ&5éŸw ©­ÍDÿÈ‹ŒpÃî‹/NGøIÆÚê#ëØjx8lH1¨-i¯¸©³é»°VÀ+X€#‰ ‹x9ôS”«ySšLOŽ™ðPPÙ bÁÖí¥ÆÚ%i“Ô€öžtå,'wTe^àôÊÞÌB¯‘79Î'³¦zHrÉ;¡ ª;­É3zÙ LÿÚʼnų“}xš˜'¡?OggS€¨ä*§­#±9îÜØääÜÿ×ÿÃÛÞßâØÕÛàâßÝñÿÝÿGÑÓÔÑÕÕÒÓÕÓØÔÚÓÖ××ÿéääÚØÕÕÖÿoÿ¹üM§ NÉ5´<ù±fo”Ý+X{}ƒ=>ˆ0ú G\¢i@›ÌÓx\­Ln>Wˆ~ìË=)¦3ÎËýt४ò(xˆØk¶pÁ•7j¼ã\¦Â*½Iå!]ôtêC“o-UC|+‰vMÒÿ¿CNBͦÑ'i—·¥à$»æßt•”d²ÆµXÊsükXt„á¯oÜî.ÖÓiô³Ý4Ïmï+²àÛï¹mÁ‡Žöw´iÇ8ƹؾÄóÙ¶†bó5S¨r¼±Vó–äë ýÖ´çé§h`µ€!B Ôª Ÿâ’ ² ×ëgšü• \4öjôBµ1Î9¼¾—Ìã›ÂðÞU™@‡<+ú#¸¹=Je73Dˆz¶WÌQ¨üÕùG|¥ŸT,·²€%Ä7"¼=lnM MÏ=ŽÛiÀ¡â¹××6®|Výß8ê›<¨¡· Çã¿»ènyqÎT„7X+â¯Jk %bNâ-<å… j‡Q ÚD]³bÉ9´bÓuÌ£‡|p¬Ä—кÏeL1»„˜6Ë3'%Í"^¾Mç5÷&XÜUñ à7»$I y3-|ŒÓ,Ÿ÷ŠWéÓ¾$ó5:ZÇZcñᥟ\Â2u¹Á†ÈÉwöòU, Br¬¶Òœ9$ÿoó&¤¦í_O;´梟æ¸1;8Ù¬ã¾0§eÂÎ'n ¶„ÊxÉNŽ7@—€6}úÝ9}sSŒ-ÉD6†_`Æeƒ$çÀën¹;[«z?…±5ˆÍÔÈb[³$(T¿Bwž9³uÁeûì±=Æ7y_xWõ]o·3¢Bc/k–ñß\Jš…BØÓê ô[öFè=Ä6«¼'4V³¹>n‡aQFã²÷ûïÓu@ŸŠú®ü}bpÑ‚®µèôFçƒ0±ÌGõU31ßÐŽ²î÷Wô0z¸[Ës\4ÎL Ë!~´ *‡KˆxßO?³³P$­°.ßÿØ£ÇL/%'‹-³¨1o+«¢U«÷l Bÿ°ö3ÿÉu-¯øÞ²%½ôás3í áõ‰>6E ЈI¦–E’µóŒMlÚÄ"fÎÉ$Å,ÁÛLÑÇ· GWòv&t©§Æ_–Êf^—sŽ´UÁHÌÿý KÞ‡§qЇœ¦ WÌéÅZtN¾ÀãëPxÏu»ý‰Sg Afhlêõ›j±cxfÛ-V)þ*˜–ì§vÍÄU!‰lkÇBœÓ;ÅæÛµÿGA_‹Ë¬hIY¾/ãcdõ¤Võße¾PzMŒSñ‹dÔ’)5ãþÇIý\Úê.,Ä-~Rc£ R퉻4ÿfp÷áÇéKy|¢cê©Ù½Ó¨£3¡náYR‡‹²ÎÈž‘í8ó} Ø ÎB@ü’8åÜG—¶lÆ‘“ùdˆU±†¨µímrâàá‰daµóùË p Ãø4ù°} RÈÜŠ{n†0+À±,±š!ã``™L$WùwväIˆÓ5é @ã°üFZUÅ¿ÁA[¹¶­¡ å–æ1rá+7àT#)½R9h²Z\Ø ô)K‹Ù‰pkåÞ#x”É!VEÒÿ[osm›,BûÒF픪‰ @kÄ9¿—mu„Yêfk@w#PÁ1ùM­]KB<ÖÌÉô®YÊÙ= ¨4ØÁbo”)aü«3ü’7Z÷»½÷Éž(­êØ^Êwd÷j×þÀºp7ÌÆîŸXCìúD–„‡=:z¤) Œ¨•2¯cØ@ò®HŽdºd^+¯ƒ £AQƒï_5rÁ„6 íp‘ûŲBÆÔ€Çñxóbµ®Ã~<±k]žX˜ çîzsŸAzœÝñ”G²5c»Ý#.PAàè¯22q)`þÿ}MGwÝÜfû¤·¢KÑ& ¼ço1(Vj8ý=ŽœS§"Œ^@ ÀësP¨1®6Y©{Z£¢2~”¿Åð0ûP­l5é+óÇ” 3üLämYFx¦ ÿ0QFš7lãèH`é†dìÓÀåÑ®L«ÈúïÇÆ gt-¿‡Cëž«@õfÔÇ¢Èâ-‚1!NÇ}},j_B™èÖÊúØÉeB¿šr†‹ J5†B;œ+UaÄc…¢Š€°Çz._÷ ÑëÌHu«qBùí}©}¨Œ¾`õ] ðŠ¦ŠÖX1W†,‘Þÿ‘ô,ŒÝ{¸Û¸ÕåíÿÞ¡°ÝãÍ?Áƒ­ÏdúÇÔHã³H5‚9*’'{ÎUÖ5Æ!ccÖÿß 4÷"ðŽ43 …îü6@õƒ}Æj¡ÌM"ïM1Gµ¾þaó#÷¶¥3CsÎ@$#v'ý{aX&µ4OÇ{}ý L]82[ñ2i¤Øw‰)'–0ôõ™~Ã’0å,q>Ÿx'f³óêáIaxoÝØAËL½0¥ó„$ISÖ~O7x«wjk¸ËïmÅ–0¬ºoý[¦Ù 6.m\'é¾þ¹AVêëì½h½J°A»0ðÊüM|…ùq›MŽxݶ‘U©}sJ}@ëvѧ$Ÿ‰k™#z¶í¹±ÞêæŚ‚d…²4vA°tãBÀЖX$+9%›—«=G¬B5÷„®âaew¶W”ñÛyd0ZPþ#ZWÔ¨S†¿·JÞ½Bçöb×??M+ÞYmº/à<ësÕ8^CûŠu¼s­ê&°)±TèÿUIGjœâxy¶Gï´11#ЙE}‡K‚óvŸ ˆˆ>Þµ 9Êä;H_ø4ïE¶Ý–†}±ˆÝ5q1GUIîo@ÙedüL³F\Î<¼¹Ôg|º‘®Ýè_ŒC+_8Eà˜Âv£B`veZ˦™Ú[©—쇢ìÈ]W0ðZ¡Jh.†¨LHFg\`t’ E_¬ÖåKhx†;°ÕyÝmfKîí=ŒMzØVKiÚw°ÆÆ¾Ó{ mD:»{ž6Å”mKYð}µGdÕ)Ã6?Ié–µE–¿TÓ”G‘Æ&ä2Î ó˜po2 QÅ:F€.z¿&É‚³"Рž­Ü&1œÝ_®ÎGâ}Øõ†ThúM_ú …5±ü1ƒP3“‚¢lÖ”(¾Ô×°H:šMpó,ó7Ù0Þ¥Z>ùÚZwkdŠ‘~2œ=ÖtCŒUª+y[ÌB¿Ú‰ø˜Ü‚úÔñˆÒn²¢Ûç~¾Ó®G»Rnu?ê"òäaX¾U…Ù7yK&&ÛØ¶ëUϮ۩{˜Ü¶“H¶£ÿY=±äpTWfBû¹ödˆLÛµ’^Þc’E5a’0×8м"æäº™R‚)Ñ¥sŸ©ð®QÚn {Ë<(FÜÏ`š˜f3Ê¡†ÈT ÖÝáú|’¤³:œ¾%‘âü6/UVÀúBÐËm•‚^ô#çÁuÿX°Z”|"÷Á§ ÁRó‘Ó¥›FpIS’Œ.€(š6nl§NÙó†Ú|hÑÁï•ÚtHŠ(W"{$“z»Zpž œ<1@ìâDãøéòú˜P‘–¡ éCÍpt¡æµ‡AØR÷R1$qú¶¹¯Ç‡7œ&/jÖ¡ØÜ©÷[ŠàûcËg{ô¹S*þvæ‘®]¢C®T¤³‰Ð}ç4äêAÉÐÛ¹Z_ýΘ’_i B ‘²J‡‰ +”±¢ñÔü»j˜ª×?¶íY ¿¾< Û/Ák;X]%ÿq¥€õWM«çÊÚ^Paƒ·Q½:ªxÔ!3W¾Ã›ÜGÁSÜŸ6H.öB„(ø¤XrBù¨¤›d{ 8nŒxž—Aº ód…ÔÜ[Š«I)¸·‚÷«Š=]U¶ÈqvŘO 7&^MZ!£³^»4\ü²ÑëÌ‘zÌ"yØÎ$à\š c!0VÃy·Š²¿ŽŠß 5'³¹¸WÄøÉSÜÝõ ½üpNèÈ™3ĦÁ°Éj›8t$ìo¹ÛÊOñnIx€5ÍÒ¥I]y ü°?;ãœÁs¯Ã'@ 0“TÉ7v­YUCýzôÚ/ÙÞ0gôè'U9…o‡˜Ô?àOÊ×&ûæhKÚBûÿ¸Ê»Ñüî«Hºt›.¢DéÁ .8¥œÞI?õ¹ Ѫ>:ªY8•Ä>cýÿ²„3æX¿½eœ´«[ãâ¹øb–î!**×Jîøæ&bXbu&ù×&ßJè€!]s<)NNAœ-W`’ž%<‰§æ9ˆrÆ”¶$è…•ÐÛéÖETìY¯)ÃkAE~°ø'/Zh¶D9)C½ÿƒ©h™™ä,'Ãü|¨ÇѵÎUú|膨؞'H¸í>TZlD¦$C X*&HÒ5µ“v‰ðZ ñóâÄ A>:Çüùè¿ïã«öÆÕÞ"›€x»’{T—ƒ[FI“—ìØlìÙ¤ç¹)äûãùüL:6\¯Ñê øàDh4á%ßÊ»©â:sIzÛkØœ`»DR!K%÷÷2 mô’ô¹~—Šd¦ò¢ÎˆUj’&”¬¦ðƒMr¼=F $?P&®r$Ÿà.¬«Á {AUŠ'‚ÛX]h9ˆèØ$46ÝEÖPŒ7“®ìZ4:Cúºs ¢PñKã÷ü/8ÆŒ‡¹”IòOœ½žã9ÙEÒ}úÿmC[+íÞ‹Œ®ñÐ×r5w[ð܇¶ÛD…aŒd0bµF=µpÖMn Ö¥ 2®]3ÔV9&8½®hKŒe#GþÜd º2ªþï©S\ÚÀö †áa9CT/­Åw[K²”Áó*žóR#µ7¿ÑJvóp¶Ð= Dý&åq¨ œä\Þö+&©HnVî¾yO§ÊÕ`ÀF×xrŒÈ qOóÉyMÄÖpùÒà豈±;í ÌX[Uœó([ á7Èmpµ ·aЫïÒibyg‰*ø„ûÉgJ­œ7ž(‰ †ÃÊ2Kù;cCVð¾[ÞªÛ]x>¦ýKò€2§QÊö½Í\6²àŸ%À&šÿ”ñÉ\™¨©hN©Va_ÄzU‹ØjVóRPŸÎP~oFÛÉód"Ð<¸I9†)“¾Qªëk´ ÷–"n¼v0…Û²_ jmó¾Üõ÷þ Hc±i»„æi˜¢‹Ý Óv=5äø=“´B™FzÅz%«~G²”‹ ¥Æ¡)ãáæ• <–0Ó^gÅF÷³îåOíÅØg¥#€ËÁB¤5Š|#xh¿ ú3óÕ/ÌõŒ£‹÷Mˆ‘»üçŒÒ‹%«eñoõ1¢2“•߯çë–¨ÜD;]E/p=8qÛ\ñA‡žZ±U˜ vMùr!,ãÈÃ2‹2MJAVåSG ¡Ü´þ4Íôà?¦™÷>= „ŽÏ點oVQËÊ4’ÔùNb@¿Ê Âǔՙ}QÚ ;CÞÎå„s²¥(LtÉãÚÞäô^2áÉ+×ûúe›½ç+ï³, ¥n=hšç½Ê¼2ìÖf@‡~ê#ĸûu_ ( °‘ÆÝeÿk¹L¢CߎŞn•ÉsKº5š¹}êœ±ç » ‰AQ^åâáñäªâ€?Òl&’^4Ù×ký·‹&í½[g'ØùYË©‰Ýãã×Ö+$«XˆW_‚üWîC¾ôy…",Æ©3ìfn–%¢üU? ™h浪¹É ÝC„m,Éá§B6õóÒ{щ&¥®pv…ek;šKl±FJþg§±Ã¿U÷¶$ÜÉ=—r„ãê|†µ1ïÝí§8SQaQ¸îëu“Ù¿ob°ŒØF#ÿŒàPÒz¸>c}Ë–a:ks'‡î_ú Ä¡'ýM1âWr¥@ÿ!¼çY§7¹7‘ì‡P 3@ºÐ/Ó®s<ݨp…ŒE‘Ç˹NMìݺì…`ôû˜ü(\Z§S(CH]?,LyªvÕ)_MÜrTýØòN&TP²ÓüoÉ Kœç÷sò¦ÐÌ P)¹í94v—±Ð›2qÚÑÄÑnÚJ™ø@ÈÏ9áZêcN²Ÿå(5‘ïü–Š6Ñ;üsÚžÁÿ÷˜# )&OÍ€´ãm;u¸V/v)GØáO~X$€Æò;tÎK¤ÒÝVéæ@X4>Ä’¸îÄîhÚi¸ú ¥¾e>}Rz@æóôhJpóÔ@jŠ«›/·[o,kuÖkbÎErŒnC½üL¸æÉ_ÔnjØ •Ìü3™© q®£±¦§RÊ’ëÃÆ,}ÂN¿8pÌ¿}RÓ1ÍÅÜ»zá0¼xm}4$E8Z%ÁÀf½j›Ä Û6%ÊÎ~ÂÐþ®cƒù»ï N+ËÔ0 mvC¿OXë_}‚ü•©¿ÎÊž¿—[”r½ôwEtÀÖeA ‰®<¾*¼¦$)½íÔMòþ°Ã ‡]úÎXX¡M»,³`³¯žk^sæ&<†CP Êá°Šì²æêqÞé#Æ>>üM”ÂUÆÆŽ{1üü¢aÉ¡ÈpÜöQÅ^À¹Ë;Z”0¥JŸ´Èrò ú«Cƒe¿|½L\<¨ÿ|A¼ØçBq·¤R©µm„Rˆ&]¹^Í^vÓV´›¿w‰\:/ì2ѦQ¤ÐÎ&'E”%Å ÁmZyÊA%Á%êÃ×ÕBÕŸêŸ(ý BÉ’Lr< Ù–%™0›?,s.º2¯ÊËX8§•I»tú ™*¬ƒCãòZ~o&¨»î4fH w«#¤ ×/‘©EF÷ã¥T.ÒüL¬Kð£¿TÞ‡Èrjoäõ™¡V]ÆU¸k´uµúÁ|§~|»N<$NÃІ¶…-V<‡Å/îoÓ%Aˆ‹îîs\ØRt»©uzs²QSnNKÃãyµb/™R†MPÐßËJºr'%ƒ2£yœµ‡±Œ®K}j¨.ébs~Û=)i%ùh:±ØôN~ÉÛ%ÇH¶k¶è°«ÏŠÂS[‰€ùU"ƒ,vØ¢GØ>00yn敆 fOJEHaàÖÄ¥4lÖôsŒ¤€åhkÙ<µ¬”ÌŽ†ÏèŒüNL“6­Ð¢Rã“®lÏ\§™)ѹxtQ)£\¢oœÉ•¤&ؤ•ø]¢ïèfÙ!%µ{Ç574˜õÆ}½ÉÓ^ ‹/+X½‹çgˆ(cAнɫ“3Íø¸qYñÜg€D†wïn»VP]?!¼ª¯¸müð«ôX²ßwmŒs©¿nñüMC_ª&tr¯B.˜ú‰E]åÓ!ë i=¿dzõàÚo€±ñdó°Ñ—ø}ÉÑ å¼ºŒÑ¡\üæ(“•ðÅ EË~â¹X=ßÇ«¦æ´^#4Lýÿ|êlìU]7ÌW¢¿3,6ý;ÅvÀV³yEgH£}­¢‘¹Óø[MàýtNf~¡#í‹ïò”ÎQ brûI? ЃeáRÁ ÖɼôT‚T~·Gé¾+;ɳt|â²–)¿ÔÞ´Ø+]{R'…h¤DÉ·ÂŽ3Øwf½ðERó>©=ÛTg€éFbÔ%AóWÚ¿ë(.”M5g .3û–ýiÔ[/ü¼‡CEìîÚ±cMØÃÕ4Z*<~5?|¼“ÓŸ›s²×¶Ï4!nÞRãs烼V?EWe¸o¦Y´V”x|C¶£(è’Ïù´EEOL©jV‘_¬½Lk20‚0ÝŒ†ÿ•BãëN±>+ƒ_júöÚž•(/Žàñü0"}/2‡PÊMý†KlÜ4>ÿ'¾—4¯t›v™2ä1UI[a”û‹ù‚Þ,ã}ä‡ðçiùdjHÙsèAõ bøW1Ÿ"ŸÛ‚¬ý-TÓØLç# VžÜÑ\ÉTeáä,Â*+°öË¿~´\nȾýÂÂ_•€ÚFÂNxéûjâÖ|ÈÐÂÙòbï„\{CŒÕká6•7*n\ϧwPíµv7¨ µSú÷†Ä"Î@ü8*°îPî'_FmS4|!t¤×Q/ÐP¥¹‹LPRxsÕ+7–úüMy¥úˆ‚§ÙDþ‡ #!.Ä)ç°bP×k Z>ž#ró±3MÇ!;ëF Z²Ƙ –Å2¤—˜‡g<“ ¶À©Â„”ÑÑ552Ç‘,Á&ýEü½¬ó0$EúÜ@ª©›´ÎõF”àÆÊÀ$ç+!6<±|!#(22„mÛƒL[¥èé¹Íþb#Î-Ä ¾³ŒËþ¥TsEª)îÇ#_Îkèÿ€±«>ø¹Üâo4\ý=Ûšfß³nReœq&òÂÆ¢I.ÐTyÙüX—/ Zª=HV7[i‡U»p{;ÔòŪ`Ýßm]|ÔÛŒAïYúA&C÷?Ë\„Ä™Q%×[™ºõ€ƒýµµï ÖašuÚùBe‘o¤ g™Ã é,û1Õž“…!ñh°…÷rD«“•›?íår7sèY"b\K± rÊ÷tíÇ™7IºÖa[²q¨èŒíDææîu 8iž´ô½=¾­HFŸEư—£å)FòµtýæXÉxû ‰©0£½V'ÍÔéØü0¥EÐŒ°ú}"ÏT7æ »\ 4T@Dšà`f³Æ\²xRnxÃ`>µ•½áNÚ©÷ÌÐ Ñ%ˆ¾@b60ô7Áz¶8œ·;×.SŸyÊÍΧË%ÈW¼‘`tbH‰¿±%æ(jš,̨J?Ê$ vß„Â'¥®Eê‡ûóú-fyà Dȼ'ÇÌšb¸¨© ’YI l,U¬¢ „'ë×¶‰?—¾_1=$ž8g¯ü‹N8Ö8eHqê±¼vî´šçˆp±¿&I×);üI¢6_Îùô¦¢ÃNdòX¯dæä,ÈàÞð}}ƒ œ1ËàüØý ¤ìðuï)[yàãPueÔ p;ÝÒ£hmŠ¥@>J|%ÂØØ]«)©7`NœpÁŠ&ôDjüÒÌÝÀ5¯‘$\—ý`ºÏÃ¥‹¬-gFÚâÄ"“ÙνÆèy"·yµ7ƒAƒÿ«‘:Fž]“R#ù9sc—ù/?Æv)Kí?I!JH@üNÇyÞôÝ&+ßм´@·jcŒ›âÿp-ü0d½kŠ DcMgo)Ô„é°V>xwg¶®Õ¶è¦µÖX¨%£×#ß9ëÛ–ÙѸ†Qõ.š³Ì)À”"µdǾ*ÿ®ŸAö½‰tƒ#^ñK‡ZBo/N¹:vQ‡÷VÜÖ„¨e(áŒæË\ú#o#2ò‡M™s1<lã õ€BäÚîclšŽ™m‡AÔ|+z®#éÕ¾Õ+ÌÄðÓA â-,…;êpÄGä^ã,N8ÜæÐ^)ës³²QXB{ó¸ã-ÚÓq{å UíkLnéí_ØU¬,³ñòÖ¯—"쀞Ë9ž‹O›}(Qö;¯â!>‰8ƒ®G*»ŒE³ç=à(FÜóÄÊÁ}™ÞÜ&7Ÿæü.iU¦˜itFÙšâd£ ~e…§uJøìYdŸýµ–Ix–]󻟮zÚ ^Lo³/-/&‰ƒú3ff- †º­Ub±_i<ÉîITî°õã*ª„p›¬J‘c[º¨îzÖV‰w¬ayá“¡‚úž82’;÷cƒ¾¬ñä×ÉåÍrcª´èioÿ³D=$ì¾ÔÌ3æµ™µÆÈÚ œHŒ 4iâfvú¼ä>Z¦A ~—l ”Ôm$E $™R›áþÝ8áÑ»–Bí À¡&çΆá j8ªh;ƒË…%ü/[}ìJy‘Ãã,0©íŽŠ%ª¼‹d­ñ2‘‹óhI»– 4Cî;ø´¿$n“¤–qº\Ó™¶ûmº¿~]v?ѨA´/'™ä›Ù^J‚ ûß }SžÝ±7ìÓ*›âa“}ŠªH\ÍL'ú‰˜ÛN²xÆæØ$ÔÚÑ3€Ènxr i4šå¤ÅÀBaB¿7Ë\K:wpÂjçãç[˜ê”YKˆ`m(nh$ ®3Ó¦jͳµq‹¥»6}¤„Éh’I`8ÍÖî}Ð3<}[á˜RŽ°ÑøÎ,‘´yTÅ!wÓnüK ÄY8ÊŠ'ëÈÊÜ3xÆ~j©„[ç¬^Ä$’-íÙ¡§S1øS5éðìÞ„#.&5_Éï˜åú¼E-A㼋þÙ÷0Ïà(gŸk÷nî°¯j'’Ç r½ôb^zŠ.–aÓ ½+t¹|çet2¦É4ñ‹]>£'CŒnõä"¿cSœ(úˆžV„}b Š‘ùð•9š-ü96ôˆqûQ,P)žŽ’_‡Ä,ü»4 <•Ñ”9Qâ¿£3s}¾!• û:ó1ƒKü(ái‰£YþüÅÒPô¤ìLŸ›VUñývâ¯2°Š3aCƒBmf‘³;%ëô}˜z1ü.Ç-æ]Ãü¹7œí[Љތ°(û¾‡8M„ý.¨æ©}Iß÷åv‡C¬’h %áR&bšÎ¼xõtP²â‹v(èBÊÆòÞjáâðP®Â¤ÊZ œ\ÔNF³þvkJÉ7Ȧ.£‚…Õ{¦‡üLóIâ®ê‡ª ÐXŽ‹ïºV°þèz‚§}2Ù^tüz/Õõyàßn±Æ\ hlí{†‘l=  Ù™ 0?bc´Žý„¬¬×0ñ‘¶ÍÓ[ãé»ëùmØl ØHiüÖ;ÔoDõ…b‰ãbo7Ò”ÑÝÜñh¿“:°Ó‡#-’žiÏ&Öt4j?báÝ"Û·Ì"-H‚ÙÀ×!_RÅÅÆ4]z“n²•§;Ç'ë£Ë݃¿kêjjÁŸûöbóƒjÅFÿiŽÛb$BO,´Ìük_%ÒKñø€²[6*bµùéTD2v¾ò C*‡µ-M®q6ÈwsÔò% ž 7ú ßöýQ“ý×Í;€V‹vßÎÊqq[‚[w  Å]Œ_H¹jƒ;äêáâ~IŽZMðD,Ž3Æ ÷ï N%W NV2š†× 1]4è•_éà,†6ýî•o¿¥˜P/ü6‹ }½y!›·_ÞÞÛAz·W:Ø»FcYoݸ6G[«^"¨ëE'O§ÇyŸö½éǽgÀˆ¿~}U~Džz¤™-0ì8A´g;ØAéJtR¢«‚Wö°—håqÑèªÅ¹¶ªâ¦Nh€÷á) üÎÆæ5œcÌé€E“foÕŒs÷0¯É:ކÆÓ¯èVnº˜CÐŽo¿ |Ã0<^mÇÌeX=¾èŒ,uüÐãcP›yp=Í=6TÜÞÍ_|¢º…´¯Xš9‚$nJ¹¥üL¼í¹½”V„™.I^ÛoTÊÛaï ÒáÎ8˜g^ïÓþLd'j¡´ÆÇ€ùTˆ2Zõé/XÛ&Uc‹wµg¥Ø$# Üè6%©ƒ½Zl†¸ FCzk=\‰^,«Žo«ìÊ0GJîÍY‹,b7Ò¡¸ÕElÝ’KÔZ¥Â50›¸w 3ý<Ø*m’:÷xÜs¿­× ôVDúP$ v i\|\•0‚õNméäÆ÷š è¢JöŒÄy‹0õ*]¹Êóà £_L§^Dü|®'æÜ&‚Lˆ ò'c¶&ПT ´DÌÝ’ïµEh¾'+m›ÐBu˜]^`SÕ\IDÒ<ôžkéâ#cþ&mk8²{3‹òR¿w ?áùY%bû5À!ßHÞeÛ (ãŠPoR'^y‘Ð \æZMÄEíQ~›0‡ÁbhpÔgA<¶|ކ£ØrHè,Š­¤O¥¹¸–‹ÏƒU›Pª0Gød‡5´} άÐf¶A“ýÁ˜-ò¢—›ÌÎÕ(ãNÝs!¹êšzM¢afCbç–’(^û'ÃaÃåLK£¶sﮋ¡vÍã õŘ…)¾èâ@>~–È»,LÝÀ‹3ì”m??EÂÈÇñƒO~*Ï‚³ÿÌà¨HÜ–É)îp”}Vx‚é± ÊLµO~Þstœrá´ßî£_²Qr«8ü°ÐßuyüTÜ8ÄNG9¹Š5 TDÓÎ ]þ¶¨M§DA±L€ ›Ð›úÛ%§d†7$‡Õ‡ŽÙj–еÀ•0ω#¤ÙY ´¨QÃy´LnúdR\šÜÕˆÑ~þ<¯ 3 }åÍ+Õ¹Œ² “a¾_gÇ‚I3´*Ý5W»)€ÖU(÷ˆ Àö"à­’ “á|niFRS=¶Üþ6ûÍ´!×<ÛoRmü.÷ ÿÉ×–é£ì4k˜~&ºšptvC»öÄ/ÎÆ$4u  9*¤£Óè"5'\곪Ð,>o¥hkû k+e#ÜïLA€d\¬Gö²Áì̦â1Ò¿ i¨›ßVéÜë…[¥/ÐÔ¨¤ƒ=7ӭТ~úBbmé“7êå¬DMO™tÿë·ÔíØ$½£+e²ÿd÷H‹äÚI¶W“"5%‡-6Òµ]“«L£¢×säÕC”ëΌԶñþüä”{%À÷¤º•ûiB2o]ê·]n±ÌÆ`JÓÑk„@uX­2OggSèä+ãVœ–7çíÚÔØÞß×ÚáßÚÿXæáççÚÚáåêìùÿÿ ìÿXÏÕåäîäÛÕÒÔÔÓÖÿ„ÑÖ×ÓÚðæèüJ2¿*'˜±Šì{H~Ê®ÎTˆ×}ì|®¦Q´ºÎ;§û¢SŠ£ÈgaÓPÌr¯<Ó?È’€i ÞiyÒ%Yá6ÿM§I +{xù6^²‰ƒ¨j³RÊSzÿ_Ì_Œ [;?òÎOÝæ,Àª…![Î*¾ëgÌŠžnk'‰@‚à…-;Ù16лç7ûô5rÆ—Ö¡Ž æÜxt§Pù)”¼ô5ަï4¯T6:¶Œíùª·¶j×øy&Ü#Í9§¡X«³„GÉýâÅ×–]•v€ÜTÅÓ¢¾àLïüL¬—‰ÕªbÏYåÝš;Ä­®úÍÒw;¾Ýc`XöQP²ƒže9¡ÖšvŒ-Ì5·¤o”„«BÈ£¦èmÙ…Ÿe¸E”r?>cG_ D¿Á4ß’¬1Óéì‹Ü¾LÁíå‚­]4J!GôX:[½îqËgR bìònl?ï&÷ja¸ø=¯÷»S OÿÌCñ•Ö÷“ãßÓß#,²Ý<¢â¡ä:Qð£ÿ(k‰¨L.U2!›?z;-!eYM<ÌTä‘ɺûþþtl¯¬{ø1&Ƚº†Àh1Öiz9okÈr×âÙ¶µ87=®üL­ë"Ô¤~'é]¯ ýO†T͞ĉ=ΠÑLe<¡í’[1¾B։칡ðí,çõz<úÐäUØéDlöÀ*C.º®³úvÐÆžygrjLj2V`Ö{˜•ª ñ‚ú„xÒ¹¸öÕdçGðÈZ©lD·’lmG2©'h ¬Ñ¢•¡°õ žPGnzbpZj»ˆÅjkñùB³P\É—»–0¦&ÑEݳֈòé_öë¤íŒ³]Wmg…]†÷¾¿3ç? âœî±©w§¬¡ ØU=üL¾z  Vbøëå[3®L9„³M F"½Ó޲ä#OÛªÇ'a/pÉJ†98÷ÞÑf8Ä«œSÔ˜péS”2EËM|¼sÔžbòcÛ¿§€2ÄÓ‡±;šQ úð"Š2hÅtfd’ "n ?A»Ð{%×\ïÖ«1¼XAS·‰¯¹ZɪŽÿð¸$O,°aƒ½°ºÿ[Ý—#"Èá(ž}u¢”Àà·µoÑŸ‡È`ɧv³ú2<©ë †;POÊ~ÿì2e‹¬Mx¡Úþ¹³ÚëDüL¸ä&F”`¢¼}h‚´)þ’Ÿ®67lŸ0F¶&‚‰ôÿ©AàIOßßEÆ? |áÛËÂ(Šó¢­ïÀNz÷Éomn%›FrÍ1Ñ\œ*?jz´©Õþž›ÑÍ•gHq}b¢Æ(L½é]9–†ÜŠZOE£œOZÕ^Òª·!º—\:c I„é[¼™UW+&î¥sˆÇ5Tàëe%ïbó‰ñ* íû)Øb¬ÉÛ#;è~WlÔœy¨ãÏ2ìXta¬µ ¯Á 3Õ5Ç/2ü§IZöâE_yXò¯¡O:ã~Wbœôrôçj¹üìçUqÿ¤±Ó(xQ³uh¸PMúˆJ·üt¡œ kóîYq`PO¤—±bÆ^ëô·Ÿe;šCQ¬§™x«­6*œ!sÉ ÊÌ_6!좬ÞZ•8Ó““èÞp{2?Ð@çŸÆƒ6ª6¥’í¸?YÖMa«Å×ôzx¯é`pn™n U;ÞZ9âzÇ{ûëN6Äa™pŒ€85{C—u¥”b`ß|ƒ­ÊÒèדóž(´|V°«¤[N–¤®¿Lü§fj"…u¢ÍßYáwïØ­ÙOÔ®9ô9_óß•Ã[u]bº¾SõDØïç;ºŠ’(á(± á1Ðxœ^l³'áŒïd\ãšUMI °Þºœ§žö<: uÏ·ß gŽÂ°j#½’»d㜔»TlÚ¦œFno”wªÐË5–#ÚéI<à[fs—ë:Z0¼Ó?yKÛÃi²E«÷¤Ã}~òLÎð‘σ˜¿@®Gy†²Ã‘/*¹SU>ÕN ;è%ûù0bT1íó4kÁúd1Ù.ºçea•eLüX‹w›tUë\>vâûMpÄ—ŽYˆý5+X+hìcÁP¯þ$Ù,­‹ˆ4 -¤§ÃêÆãEk™ÌfjÒC{‰ˆL ÆÃŒ'ÑÚø~kŸöS»W:'[Fyõ".qÕ‰_šx­7Ê­t¨Paí­77¢]V‹G³Íç’3)¤Y^ çéÌ1¡Ú< ߇ù’ÏÆ8âÄí=ƒvælèüL¬Ãêø‡iwUE1çð òØmºMÍþ`K®©óæ‰ùqT—{ÇùÅå|-#¯éÍ:½“öíeÈZÒæ¸»a˜`Š%~&Ô‹ÇR¨4¶œÑ¾œ¿{ÏæµCC°¤w­˜£\ABZ@ðàö…²‘võ™¦Eð…l8ȾÈ_aòæ)õ±‡+l¡2LpsNöø%âï0¶ðíÈ»PªÞ@Ȩ¹'?×ÇÑAŸŒ_vˆ¤‹aÄÛ^¼Ù'--~‹õÙà ÂY:]Ý`}ª§Fƒ˜™„±*´ªé  "À 4ü¼´jÈhÜЗ°§¥ÜcšÝN×ÕÇÚY!CF²ÒÅ)L?ä³n‹ôì Üæ#‡9 ó:š„ Δ· µU6™%ó?ºÙBÍÇÅÐâÚ¡Åžy,?t³ØÀ$ˬ-’©"@2Ö™¯ˆ`^©ÏÒ<ÕàŽQ”„‰<Ê¥æxqíÏc¡)¿ä_ ÇÙRp?þ¼²q3ïÄøQ>ù*3b¡pi½!ßÙ ¸ØX÷À@áǬÛàž´×ä½)Jh„Ñï,¡tÛ#ÕÈL© ªkÂN^E)ªŽÜ¥ñÍtS§À4„Cµùžtáü½·ô„ •Ç8qY1¥ÎW+Ó4ÇÌèÉFo… 0ñ_?Åa“ñ$…ØïT ª¶%LÇ1Ë|‰åc™Ú!Ô tõÞS*…`’ë qä9™{pãt’^*Ø)ã[¢šûaoK4$H;(}7[o×4ŽÓI§Ý”,â8¦½ç`[´y³9¥#ŒJª° àècé’—Ž:˜< 6aµxééRQo2[Í¿I ¹CŽ+ß±Åg Ã/û±FPŒ‘Ç ¬Ó꽞½ ´—Š+…[ Oò#µìu¾­›4>Ì"ßü¼™ŒnùèS=WãþvÞ0ÇѨIO%´~—ynNŸšã,"»•Ûƒ®[Ã1}åxR¸È³J¸D?Z0º£D£ê›5JÚu{4cð{6>Ö³®¬Ùœ¬ýÅë¯Ea·]¿±î7¬D°½Eöi¢fiŽ‚Í³iŒ¬W ÐX,¡Ç#3KPÖ®~L+îYî7¤«Š(T°jmm†vZ%ÃIŽÖÑ2µ…YãÐ-w¶ƒÆ¦µœ¿y)(ªWÀH¸Ï‰ûÒ{+@ Ø X]ËËKžÙü|¨Î+c;IÙd›À}ÿ{‡2ŸØ#¡ø>½B/Èíre_Âx|°3ÏÌÅoeoº¹Á<ºn‹ãy±T‡…3h˜¾ë½WjE«å9µ>†IÐ=%¬p:U2o6àÈQzÖeM|H¯Ñ.5¶ž/þw¹vkµÐ&±9Á 7.ìC”U×kGYL•o÷y9XÖKr¸¼ö# ò?,¿Kcy] 65l«‘°B¸” ã¦ÃÑõÂü8.è\ós°õlÌQ'¤"ØÕUÌ:B>ºT‘!ÇqyÀÂ%æYþír=µÖzŸ,D¨jX0ó’—ÍEqÊC~êõ5é2¬b‚gW7·ûÄd$ŠL&mKÙê³= !ÿ2\ëù“’®±v‹Ó)güÞRê3‘›¹–{M›Æp†5cÞü4˜cЇ=Þ…›t¿ü0À7K±AfØc²4C mº×iPñ×à{Ÿo 6Ó䃹‘ùyáLó ‰Ú#¾HœtÅhbYìò˜ât@¤éO^ØÄ½Z#I?žà=ŠiõVÖÿ‚1Üõéên v‹0›Ì³­Ç œäùY Çciö!`Úû€ŸÄ ¸C«KSm»Šgz…B¿]›ôÖF§QN½s:-õD™Ë¨ZÚù%©CÕõª~>p4Y¥¬‡“ŸB8¸Ÿ—o°åä.\ר†ý¥S+pzYx±{…_d/8Dýe·[sbq±ûüLÖì2Ëö$¹›mË o¡9 ”H 7MLÚÕxÌVõþÚ {já‹)¯»4¼Ýs ÷×Óõúõ>§\MìvçÀºn"ûqöuU²8 Ö4ã}&%Ð$¼ˆ¡^¾E‚l€Ý°5/úBñÕÆJö¯’>ÉI-©Ç¶°äêî"ùÿ,€’{q«…>·aaâôûÝ^Ç1Ü|½/A·²m¿¢ÍãØ(ƒÄ^È# 1ȱÐà:„”Öwz•ëEyï6âÔ»“»¬µWC4Aì3Y›ÞCîˆû „®´¹¦üMeÒ¯gñè7"ÙOžºí+´ÞîY_‰ŸE¸Ï­ ªµP¿Ç´¾²¦åå‡iTÑË•Z/ÎímZn?†èg8Q0½ X­™cÍ_àÅUÒ*!§Àv†y¢'?>ïJ˜+8½ˆ2gÞŒ·ÿÔ^ ª¶Çã©à Ó>–èÔä-–U!=(éúŒqÓS0}j~ 68u÷Ö’.:\t d-¡@A 48Ý_DáP¹È½Þé£ûyiÎÝ®q!¬ƒë²-9×™"ô$=W|>÷Q… ‚;@šãj—$Ù<ÀüJš‹±el‚áÜœm¶¡×¼®¥† °*&Ø£Ÿ9,+Ì]¶ªH5ãÆN$/¤j=nnÁŽž ù–žÝ‘‹„`Úç$,wF­Z+ÃO,š$ñ½Ht¯ýêÜîë,ƒ Šò5Í{˜pƒvøøY·P‘KÖ3ö8J¯ó“ø‡†*}c®E:}Œª{È1Z‰‡ÚàïÕ­: ûYMR´ 9;Ðuúë²|3­”RŒÈ­;W§ì?Ôårˆµ§–ö­n³Å>a.i¸8SB½’Ô¯[¹Í/w6Å<÷©¶ßÌxÒøB9Ž\û-ü½Úï±áWÖ8t}o÷D‹œ§©™ÍÝI]æü¹É¢ÜiöºKÉù¾7îj!|j]ŠJáìŽ.—Ô?çæšêFñhi·É³r)7‚{z^'w¢HæâšÀ0EDɤT‹mÖ’ ÌÄR¦ðµû ù’€£ÚKó;]w‘4Ý¿àóÀŠ‹UZ)”¨ ¬Z}s„ƒë3:›9â^á¿ìNÎO'‹ˆ"TT97.éÖàËPxsnhcI£îü‰,_õ5Í÷B ̼+]R|­²¡%ü¸…Í›PijÎCïïÇ‹…¨Iaš`è^³þQmÚ#µÇñpu®ÁhÐÅ¡ça,:âq‘§Sã–Eë~´#¬ƒµ•K*ñov²ÂÍ¡nHÛ0j;ñ•Ç (ËC}|è´J¤vþø“^B!þUmšIO)A¶µY…V;íPчºDÞL¯ÑVælЖC:L'¡a‹žc;T¢ò.TmuüZ>Ã7½¯^Õ·¢§Î1˜¡b ±JEõ¦v(gRI~ÿ;.ÍîñZ~ä±>=qM¤f’$fBe§%ü¸bó§ŽéV—Ìj³'¡œ% ø’væíðwøø¾ë³— *´4.ù+ó7Ä73þ™~ܶ¾q9É$&àô8?;Oâa»©6‹Â-=ã Ä¨•òåü2e½Â&—Ô±­0Йã: lNWÇ’ýšJÊ‚J`ôã§gxò·Šëz‘™Y_Ðäfi•ÀC&‚Tº=ÚÎÑÞñ_oª <C‹Öï¼› %QkêÍO¹Y#ìx^4æ^IX^9B ÞŠ_ j 2:/=Fª¤C ž|1Ùþã«OŽY%üLɺT§öA¶mèÙ¢1ÓþÐÄ? ^ò±—ÉäĈÚxì´^Te’ÌLª²™BÓ¡ÿ—Ïûmfµc¶Æ4³wG'…E“ú`á°ÎAqLÜ„ê«HïJ{Þ åô Å&‹}”qm!Z(9ÓÞÁqøÿ YÞ|üš½…dZ¯X{XlU¶nȯý¬æ1oÇÒŠÈ‚;Ò(ÍûOƒ ¯@Lr /_Õ¢Dª£AU¯êx°ŽulÒƒ+k öÙSÃYÔÀÌ…³4ɬŒ@BC*ô÷jA­r"!ÿ…§¬ž ó_¥üLêìO ¹|´—·\ùWLÜ,Døv¨ÆÌ({]k‹»DÄ)º'I;Ñ…kOBöD‡ââ Õ,ã@ç>¼bó­¡t?ü·¹Ëí¥“0–¥Ûy>y“vü¨:S\âÞ±b@ØqÏP;oļôÿ=¬àmbèMnüÄU‘_V½(¶Íh74Ц1¶¾ùëâÌÙ6¼{-–û\è&–昒½&ËiíŠÒøÃ)E°%Ø­ox&VJt?èüŽ‚Ig…Ÿ5´C¨e5 i¥»Îžñvmº÷]ÚÌ+ëëa{ã ­ìûX¥Ðøm.wõ:¡Îü571å G$ð¹tGcÅ•_bâüå/f¡æÞúl„ò7»p§{@¼ÅpßâÙŠø…à‡-ªmF¸¹¤ÞN¼,ƒ®¾¬MÍ]^¸iÉÃþûþåUÕ~˜ á6¦Y¢Æíd¢*-Æ*²Ô@÷‘ö!·9Û`[½[IKMÕð”«D~wÇ\̧!dÕÊób¹‡Ùc3y);€ …ZG:øj²wÕqÕE[a«<öãÖò³ee±<†ýg~21«·NµÎ†Ï(ÆÊUüÉrÜ ¬\x¬…þurkä-Ñ™†ƒ–é…6Ïü½Üþ{”®…ây|Þ½¯".› 9×0ÍX‰TœX×ÙQŽzœAï¾(:NÜ?Û§͹ÓÞ«ÙJFömMç»PùL\·/—9eP2±(Ðz¢Ê­ŒJ#Æ„Û )¯±Ó·`’ä8wC;t•ngÛ ÞÝcÒ øzÝ;ua¬s_…ºñ‹¢ y^>²‰¢n+“ß[¥RÍš¤YËáoà¡¡€h5š`#…Ñ¦Š ë¯wßrÈ<® ¯œ"Y?§§"…¯ºgð—Ž»p(ê[Þ³—­}pñ¢p$…"¬´UÈ"iD_8 ?lñ%ÏIì°R[©t&çüL²–+ï߃ɸֶ° €¹kòá—^ 2¼Ï|s]D)0‘žìçó–82K^GkÐdÄáJ®ààºÚèüNZ¬À.ÈðÈ½è ŒÿÖ4M‘„š® Ð8ø GÉÜÝ,iD7Tðñá ìz&&ø÷Í Š&¼n¦É¹ ''õƒèT(s9ó@p¡Ë¦K~º9 .^ŽBïoþ¥ì±^¡ñáZ‡>1ÀVó)›B&`LòÒXÑ 7ëbü†ÿx]qá¦kò/ê%)bžu™ØÔ™þDÀgñ^Æ~„ÿ cs“þ¸‡·æ©B‘ûCä?D ,i¾7ó¾N ~´n@SüLµdßq0T6æÉ²~êÁtS^gÇ»ƒ^¿Æa¦p¤@OßÓ”çFhP2QñëÈìŒ UvDñ¬RçòühÅ:œœ}Šì0fx7˜"¢²\,&ZQ¡…,ë]ä €Q°FÚ£¬÷c©5´¡£†½6ƒÔ†žB¥›È˜kSõô®† Ñ¡„½êÜ/„#ž¨êÚB[eœ*L¡÷CJ*¯Bóý&[ð¶[§ìžXSX¦ÈÉ‹pw± %Å#€¥Â4H2g¡– P‘ŒË¿÷˜;‰ïlÌI5öP+ä6yòê.ƒ DDV‚2ËplŒA¥?-õ‚7C’šõQ<ˆG|i“M ’ hÙ‡Ãô*n:ÐFX؈üš¡Å€æí졾DøƒÛ]’úc“¦kϼ(ﵺÃúÌ&’8i±}ç¢Î5“P´Ô滇©„ÕwÁ/q]‰½rÏÁ@¿€ØVÂÉæÁJtgëR°”ßT30vÌéè~¿@žårhùµž›]‹}ߥ’¨äÕ™s 0T‰ j¢ù/ñö ö^~Æ@‹‘#]:A‹þÈ/SŸ¥Æïv×b” ¹f޹txHß¶‘*r§U¿Þ£Ë=@Ò>ù†Á„°÷ÉÁw§'˜÷—98Á]âkIø^ ˜›@Š÷¢vQBTۺ잒 ÈV{šDȼß<™k%maåIù"½Õó¬å€™*G¹ükߪé`.ãn`'j—Ú¤ôLÁÎÖW\_‘ N¬÷©8€õÔ8Îã§™~í··F>SÚ7ŠX(ÊA²Ÿº½¾Ci;ðз¹{×áJ•£uÄêâúÿOæ9ÛÀ¬0 d/÷‘E g…¸¢_&‚ZТë¥|e €CÓ»,ˆ»–6\r#çåR³ôñW†Ýa¬€k/óAtÞq8jغ¢¢b¼§Wb–w"Ú"}Á†›§ƒÊ¢A›f„’F•#áÙRÎî…©»¯%ç°¬*×ÖÛ²Q²æýð½U+é»hÒ_$,–´iÈnÃÖ8KÀ_²h:|Õô£ÙH\òAsüØË³N¥ë7EûK??ÿ¾Š±÷1ÍcxŨåÃ}éÜÈÆÝ¸ÎaîdèÿM–¼`Q{1órÛÅOŠ>ÐUprãöžŒ;ZÜõ›ÞѲõ ,ÏüMzM_3“öÏWì#=f +¸ÀÕKÞh”¦`?7Œ`ùñvÔ´DDMNóÂøY²É'&äTWÄ_,•Eõ½gbež Ù³J«R£0uûj\¨Ž¶£4¯”=†øõ­¢,/3²¹¨oçrÿ½V^™ÐÊü9ˆ6Äüž¸;´(™©“R3øÁÁ, Å¡n+þÐìå—ù˜i}¯”w+uºt`8Ð)œÆW¨°=K¯ùfå µÀa ßK”Ä!/õ«ŒÈ_ wÁà†öî…­S»ÎCæþ>Zþh7;WüIaatUÂ%›Ï®6ܘl­rhZHÃZî€R¥óJæ©'ØM5xðqŽñŸc§<¥ºÂíKIK 0Þÿ§5#,ü¶tÀì5@Š»NßiJi 6¹ ~90|a2ãùVÜΟ#H[ø!ù›ÝæìVGaÖ=Äÿ¦nŒ”kñûñ4$§²A£1za– ö!̦¡P¯ùÿC×{ãTà„’S H|±õ3×µö›(§T·Ó°]—f2€ç+üBõàâŽS`œ‰Xª¬ÑE=©êK“¼€ÀÓ–qüû‰FQ®È$“­mëÐKû” œP&4ûGéo’u5.“{a·D§ÍÞ¹Õ`äüLâ‚›M|9ð³ÙC"Xs…žž­¼åLZ ÷»j/LDȈšT£jOÅ[„À˜DãÕ~ÚºÐZ__„ÁÑMŽRÍ0ô¤½ 󣌳†¦¼‚‚«œ†z¸ û©™„.–tÏ54?`ÇÂÆRz9N,d–r‹‚[€Eã%öÊð#.w"÷Í(ÏܘUíÏ ¦s¸Gl°ýù`”8tS¨ÇSÛ©¼žТû?Zùž‹ï©=¡ô ™J+8%}ØzwÊÉBò«Lw¡€>é7ó})Æéü/[?C©Ý5i°•žõUDÕËä•¿ïFaE„|žnlm3{ ª@º‚9 GäGýu5Ò~ŽÙ¸/dxÑ¡Joª7 ?nÉ<ÚIÑ$þÕÁ½‰·flßúí¨Ú¯^AÐ;u‡ŽäY{àâQêífÇÙ²‚kܱû¶}ZFE}—l…`'Ê|O+‘;,å-9A`X‘ΫX Ž2÷ í|â¹”‡¹5Iá£6à¸Ãý!mYp„5ø¨ÊdõNÇe$ã·“ïñmÙwüL½j£¾ ³°²[꽨½€Å΂G½t u#}¶±¬àƒBx¦‘úX—©2ŠG^¸/¼F¥Œ„u.óË•_íúš$˜ž&]_‰ôåãy]U2šS­ÔúyË„4SšÎ'ºWtÑ϶ŸÈ £A!Z÷ßS}^W.°A%K`‘à6TΫ治¸ «!ÁZÂÎD $òNQÙ—  ËømK—EEë™Çé믥®å‹M“Ëé”b¿3fYP#±„C‚Õ{¾jÃáŠc¨d'ñ:àaý,û˜0zÉØüLØÉiÿêæUÚQOxÿrmäg á—Ê ”½fþRÑ÷Ö%ˆ×½…ò'>†¹5è†öþȹº›UKv£èPY¼+ÐÞÛ ¡@ãóV¥’²è8Z# ÊÞJ·àsâ6´+ço_\¹OÂ\.5Á8P¨£N‘Ll <êPÜ¢ªðó“hmJD=¤’jÂìU­V`&‚xÅng}ÈÃ_bŽì  ; ÇnܯKz²`…Ó®6”ê†p}‘8”›7³kîÐE>èABƒ°)Ý%y]rm£qo4ãPçÆ§ ["Ã/´æhU0(¤#sXŠF0/§úT5l çM?½C¸ªˆÆèaèµ*Æ~ãÚ‘Ýz¸fºWBcÌþS· 0R·Œ¸‡†Œ>¾5üüá!3ºji§#Ìã£PÌÀ5þ*NG Rð,ŒNÙÏ•ð& 8§z½+8A6V`Þÿ`QÃB›æzºLÃkãX•Ïê)ßëú\ѹÐâ΋Eoc±ÉC šõíä®gдAÜÖç|/ú˜3~¼½7¬q¢z-n…rŠÖSm»’•ö)wZJÝ?ªÑçnLÐbÇsâ(Û©ÿÄ2öà½U!ñ‚Í˔ХU©Ù»TkϘlà0§ÕEç’>?Éôë:~4‘¬øÏ·ÿiÌO¶ br52[ü}²ùÍz<^™Ê¹©ž™îPrø „;ð݈VHÙ¤á¿ú yI4Á€|ÖîÀÍl¹V{*aÕQ¯§2@d«¼J+×@ÉàJ‹¿o¿ÊJÅt¢i²ö‹£Ž—bœŒ¦p=Š,^¾±6T¹nªÖ}™áe~håŸ?žÁð/0Úæ³ÙÊÇã,ÓØl~‰¥ v<þö†Çɾ~çä9‘µXª‡[1wkB€h¬:GìÖù¤z¾Å±RÍns}@Tþ·ìrÄVK$4øgsªÜn–=aè~ÑÑ{Õ¿ ~L̰Ok¦é(‹!üĪßPn'­Eö,÷{k¥œ^!·:„{ä±B`»‰›˜Ü†lÄSMEüoOØ^ž6' ·QEÊÂ`ñë;£% y'Ï;Àkp·ÏUMu•J›ŸÝ¢šË×qG߃•(-<;¬> ÿ+?(¤ÂÍÐh2,Òb1êÙ¦Ék8À–¥H×RÁåšü3¬Ëʧ¾åJAŸ%Ìvi»d#NûÄÚ@·ïƒ­øêÐx—½ÇÁëú :dH#ŸýHlŒû¦Ù« Îb8RU%ŸzÞ3ò剱ÎÇ? :ñî÷v€žžËƒÀ°»ªb2üL²ˆÏ첻رìF½÷ :~…‘×,Þ¤E³GZ®ÖÙö†‚9qdÙQT¦†^çš…\è{Q H¡‹Þ¯áÖ‹É‹<‘-k Pë ·uÙT%YÈ:†úˆdå|{v¼…}âæF=Cê O$³®gÈÜœ‰¿0§Ñ“T¢38÷tgÞ]KÄŠ>6)|Ñ,k¦ËÆO®¢ZÉxgêðRCª ~.³U’#ß±Æ7BøSxÉR9ÌOÍåº? ùžA»(–‡àN Õ’5…sL¡Ž¢lXù±NB‚Š7hͨ3PHú2À-®Do"Ý Fîý ÛºëeŠ}4µñö6ƒ¼%làš}’ UËA„ÊüL®QŸHrñÔ+ß~ñ˜Å¯Y‹Uáhó¨V‡æàô`%¼:wg¿|p­ÅÀºÑ™É'žG"‚Yêù3‡^µ´œqn›Þìù0vÎ{ª9Bwa¯ §ò8ØÐ,~b™4, &zù‹¶cJMµ‡`@WÊDHf›ðè=œ–”Ûµ¥ÈñÝY¶\fCxM,¤:ÊtÀhcR÷,æ‰ÉPt©tç.ø}²^-ÐãFùZb\êÔF,.ÀÓ‚·ÓE&<“¥"¶NŽºÂûÒ@xt/¶&ͱü6kyp|Ái&ä‰Ýj€Í~VÿCìL»_fPb2ÎYî"Ü_ÆLnœ‰ÇUí(4ׇc‘í$Wît)”ñÖ3ÌÜVñ>Ð:…›¤EKû£LDÛóçÖL|6QWšj‰U gÝÔV±˜Ð‘ìªö~3ÉÔ<ågtV°ñ•?÷©¶'Ó,¬aó¤î‹¶×m~d!h¬~Ðί¡bŽ#nC8W}ÆÁ¨ƒ:ÛÑ¡YÜzï ™!Y©­~-y '€èŸŸÙÚë>´1݉ë àâ>ìdoÁèþA½ ü°ÓÔáš '¾ß“¢OÄϹZÑ*ЧûN¤ª’Mùa®“jÉ :ƒc'ַ¼n/dô[âÈÀ1é«w}>à¤ë‘ÏÄ D°‡†’ø‡ynDcNù›Û"ÆÓ 1Í+H)iõ[CH©/xvs YN/~ñòcôp½=CVËcD Èoº¯çÊ7=%á¸QC€Ä™x°ýnÚ¶ÖH'\xÉÊH%óô§/L¿¬kM¹ÛFŽ&lŒGÃ…B®Eu{ÝË:ZG?cÀ>Ô ïöiâ^Ò|œ¬Õ«†ÄÆóÐÞG¥úòÐoE¹ã å;ü¯?ägý½Ð0­?³5§a§”iïŸ)A«þ‘¥"›ÿšJ¯©ØÚæ[Š¥ˆ[¸±-GÙ‡»ÃßeŠVû°¸`̙۱%!ä˜!±ÛpµzÙOjý¡¼~š–/) rtYm·„né˜B¨š"çZÔ•Ê<ßLƒ@ú/zÆý€—háo“DÉnÑ‚’êÚ1.숡S›võ`Ø]Ëb¢Ç­|ÿO0$Ê£‹¼A§à~$+üVæÙ?• šfArЩlÓ"D¶q™Oaßl4–~_¥Özœ3䑇0š<¤XÞÈ=;ü6Z®Wme<3ضé6‡ƒkCÞQ!ëõ•Rhmú¤„°)R;ž¥u¶ÛÉŠ ÃK×ÔXKS±ÊÿF:ò€»üÑŃ.åÒõ}L“û’ޏ’™u‹¶]›¦{ž$ñè£Øš½¯h%ñïJ-ëŸ^›Ž¹–|+aÙEà¬úÜrº'f€ù®·íÄÍñ˜6‡±¨• -áÞ4ìå¦~Û¯,§ è+Ôß"Y¦˜j;SÑÓŠ‰]BÖú›æ¡‹ô9•+íe‚:jk;4 ÷C[sÉt±!ÁDó?¢¦OggS€~¨ä,¿ mÉAÿ ûøÿÿÿÜÿ ÿÿƒÿ5ÿÿöèèãÚÝ×ÿ¥ÚÓÏÚÑÛÿ9ÌÕÓÔÓÓÿkÑÔÓÕÑÒÿ"ÓÓÙÕ×ÿ7ËÕÖü„·k…xÿòˆÃþx›y\ž@ÎÄ…¨o»+qÎÛ£€Û›©ß ÖL<–ým{Ÿ u bÒʾÁÔHê%Ä7ÏÏ¢7g¡ñååÍþ] »ÿÞ”!î&ó[m¬‚“dò@h–…gœÝ¤ZÃ?Àñz+Œlá4º]ž¸˜<2:×°¯˜‰Üge0N¹2Z™&qïÂŽIᇔƩ֦ÁÓŽ *¤ûÊ®ÊØ ó§JŽå^6E÷Wì5§x×Å‹‘‹ÙÅ=·2uõº Ù¿Ó2§€AW ¢SÈ$G:vAð©¿W®Lý.))a 8¼6ã=(G]Æj—ÑoÙ³†N&DH—å^¹ü6WÈ&<ã²õ8ÊŒqØÈÏCpT2pì/Ñ-t Nôå„ô÷ƒ,rE6Œ×€Øbíkú àŒ;üYȼÏ_b±T°Î–åõ•iöA¦b$ľ9!Ó†Œí¹nÚÏ~Š?YgóãT{oÿOðNGwdØ4/ù |A ÚqÕÙýïeÂMt¯0ض”‘gŠðv o…ãx Òr­ rOíîýºŠí½†yph—E¬.+-›Uƒj‹ìzŃzBùvb­í@ºPù¿PC|„.z5RFYŽÓEË@üÅ£©Î%æ§»1 ˜'‰µ"‰¤1¯4e1 ˆ]üÆ(•W†_„v5°E¾õk¾%‚à¡‚m° 6bÇÞuÄÓÌ_ brkËÉæ¦H,%2q‚^â¦.Ô3œ£õÉâøŽý…Veõ9¿î2“xØY5dà‰G”FDZªæòzƒˆ%5à÷Ï0Š•kÔ–·iÁÍeQ€Ú½Þ´*µÃ»ÖNÿbÿ6H¡›ã@êÃÞbÿgÀ#P>7‰hÊÁ|qŸÍQR¤ä{ÐÌ’6nümuoºŽ25’­®*<¬òˆÉ—]ãBÞ™›_!ÆÃZoΈjæ7};{yT3%3žôú±8HîÀÔð LxPíÅü6¶œ×ô{žhîîaŸþî!":¹ÏÔ9lÚ.IJG¨è5t½5 » e?ð ºÚjW”­÷Ææ•É\«m7LÌ|ŒKñn&aA’‹n¥èK¬™¶ÊBØx@žß!Îr—C¤n`@Eüç/°>6=r€âhGêJ\R³ƒ1Ö’û%<;´ËwÕû26s×cþB—?1˜<ëÎýøÒ-Ù&‰p ¢Å;h–±z3©c7ë[½Vþä2OPÁD©Ñú– >úЊ¾ †-›oö¿r~/ž.®ºú¸¶L¨…Í÷zÖj*[üŒ”ó¨¯jþ€`‰øébgHßòÕšbCöùz°È¬H|Hg,œŽH|òšæœ9¤¶%&òrÙ?âN„Tk]àiÂZ€$xteüU:+có„ùŒ.„±ÌBÜ7‹Ç+´­býe/•_†·gÈÁ'ð>`×ú)ð:³ÐÍeǨINƲç=Yé÷ x(”G¤±fÄß»¥d'µag2¼Ø0ä<œP¹S}$5h#7VÎF¤\|Ã}]jVnCˆ;6?Þ°UéÄ+iS|—D0rÑ2Ö´E‘î<Îu€ö±ý‘C¯€äIq5Û¦°…8íUÂ53e¦“©ÞçFäo¼_f&/­¥nÀ?¯0»`qIü™ ÃÅ2-º§„àï³Òžy$£¤xOóˆ(2÷Áò6@Pþ¬ÍN"T«~{KÉî È×)Øo ßf`a gÔQçc,é2ã/Èa &|ê欒qŒõ èÙÖô页јbD&ˆA…È7w:ƒª È9¨ÏD«Ò¿{ìÕ¿´ÎGŒ‚«èMú×Û_2ˆ§Ñ«ý»¸u†¸¾#!²8 fp SñpÈM„Ò ¦³ŸÊÑ)¿dgU ·P£u¢7 w|­kÍè§^¶üµ]$û×¥WªÑ H払ûëË ‘Ó(&ª‚+°ÔúCPƒ…ßuœ±„G4XT—G%œ^n®Ês›«s€AÎFÔò}"sc*ÃA˜ Tˆ>.e–þPb*3è{ Kv@b*3á•ïãµÎûlÔoD' :¿|Ë-BíõËÑtjަÍgW¡@ѦC/H˜d‡6aü'+z Jrâ™U»([<×,!:7ÀäîR°z5ƒœA¦û䍿t@Ò IdÏ»­w|d É®Aáͦ«È.fbO¢^ïJ³ïÓ…¹LUù;õ€äq;ð‡â'e@^ÑX^úâMˆó¤Da˜x?‘P6 (ü¼áÞÐÁ8óóO:0åif˜sGìÓ¼Ö­5ùNœ Fè¥Ì,üÂÕ&sn”(Š=\¸ɼǸÛÑàÛM{¾Cá<]ÜŠm­‹³Ð¦uæå Å褆®„Gœ6šíb?•Wâ’2iå^n>9¼Lø¡X¾Ý–âÉjÚe¼-."œÀÊK õèÕ;æŽër‚à" §#Ÿ«bZ²³'¡<6[ËÚÍ:<%ì¹°Eñ×Yç}ׯÈî@’³¯¥U'*ñ·‘û!•-?£[$5÷†TCò#o:X}–à#× ,7YŸ†þÉtÖ¾ ‘ÔôÉ”VWì€t'ÇÄ4WsV•Û‘ñÏ)–7ýü ž­:}ÑNLv…À,¹±\áçêCRþÂå&pxz²/Ÿ¥'/Ë.ƒv["’Œ>Æüü ¦†Ý^àS©LŽªÀµGt6Ü •®-êˆ^”R“Ùý”`ß¾]]+)[âÆ8¡i;)“Ÿd3?ægÀv Z‹Ï¡€ñjý$L»±Ê‘í5t‰ófàbìÅý@ ”x€GÝêhò¥cWóù·¬3DU#QŠÐóìÓͰþd~6ÔÝÝNs)p¨…è%ò J}ê‚Ì·Ü…Fâ»c³©nßWƲzÑ®[«œ¼µG)©ƒ¼ÒFF€,7å€ùódÏ9¨íßñ4ÔMCdêã£1òì™â8„¯‡ÿ’ú‹L[cÏü½Û¦˜0÷ÀÍ9óÅõ ZÙ½@Ü— F~’Í´æ>¹´|à ]*A-¥6^e^¹èǼ\ªaǶ¶"¢m´v tqè4ïæ“z¢‘$:úpƾ ¾éâÑ‚þµ*Ïô2ãJDñ¦@ûdÌL2ÞТW¿åÍ,eѶUtÖÄùƒ‡SyµˆQ¦TGŠÄXÒšA»òHü_o›10,[û“Åþ[µUô:&ÏvmÏÅ3F3ò'. οަp°Ç—¼7ÐÝÄ}7loÌ[Ùš­þÔ0â%}ʾsLCA§˜©†ùÍí¥ÝFû(™E=Š5¯jöò%³¦Tמ‡Ç ÆÇë)´½s5HIV=Al•}ÃÏûÝØÝÎnr?ª&ìu Š#&°PI-–ïm– T&0‹·snóöKw!V©S}¤­-; س–ò šÃ?Ú•Ð G< Ò¾xxò ïËÅÅiô.d¤ôÅï~ÿÁQ&¨¡™òV•$†+ å±{ü¼áÀ8DAU»\èûñ1J1c` EAÔæa3þìvƒéiL-ÇÀ7ò¯µ«ãt˜É˜Ñ][)Áhw‰â”=¯lýKù…tU¾®ÃWùpù 6T¦ÍGÈ¡NÕ¥c†S‰7aÛ›9DBd³I…ó€WLPç˽¨®‡ÿ©Ê¤%˜áo)‚ÎrëifîL®£aÜË£-±øñ kÔuTêVå5Äë‡Î=àŠ)˜Ä_²à&¥ôy½§ÊÂdF2òÍ‚GW."ô÷¨EY³%þýY™`6 F ™0Þ H¶ÑÌö½#ûC6Æ_Z⦊BRƒü®”[™TÁp¦ÈC¥ryp˜‘>?±ìÜîª_¤¨îœYÐò –ì^=)nØTbžf ÑR<Û yo¦ß<ûüL½Ä4b3¬±Ž¸I¾Èº.Ä$Ê„!GÌ–­¬ì m—[qþ78ðVì,yùÿ«?i‰Í¦®Ë÷fNŸð;•§ïCj‰Etæš‘êzZ¤C-‘J/ÉW,ôYl¾E•·(&‚Ç5=lËQùWbÀ“}ø“Õ:ÛˆòAr'ÿ:¤ny"´´#’Û 0üN(÷FW´÷ûð;Þ)ŠZ‚¼}6B2jpÞ=¾(.ð?Œ#kžRuzCºŸIw¿ÆÀÿ¶x`¸üï8KmU»"šä€ì-O/T©}EÎ͊Ǭ¹IÏe:3¼‹£—êAwufVâzۼŴÎÑÈpå IA?DüM|§Ð1yàWŒ!C°M^€–bzMçõ'_ËÐ1V¿æPí9Ê“n(†ƒ ‰KâGe+GUö/«Mö¨ˆ$XVJâmRp_¢ì]”ÌÆMa¯Ç}N•ïlŽO–.âT ɇ>EñªbȪ¸œàßv÷¯–é~¥Åת†y„تP­AfØô”6* ;ZÜMöØóÝ…¬1UB©÷~·„¾>EšÎ³cóH_²¡ù1Œ«TšÕ ];o´xk¤XütòËÆ=ì+†”vv\¥ †Ý‚þÙ„t‘u ‡‘5Cþ‘Yv›…¶?«ÃB9¬ r_Å%®cøÑ(Z2ĹÇóryDèüLÂ.’áš®~ÆÒ.–À{(¹µí­‹$/!ž"Ĉ¼9v”û–ÝMé¸Ë{4MÚ¶·šL]kWl=iÎU þ‰9ׂ£ù¢IW¬³¡R&%KõSày— ¯òŒÇkBß½a…kж¾ XÎìh&f^u‚7sGYm ~¤qïüMt‚ëU„[ÄÇU%#µf¿“ÑÖˆ5ùr;Ìh \Ö“I=%÷B,bäÞ·”œQ)_Ë?ÁŸ»ØòeIû|/›úkk\ÈêdÄñDuä䤎/"þ n’¨ &p°,ÒØôysû‘d)`Ô¨ üÓÙ‰gY‰ØÛ¿©c™#…Ù߃/ØE%üÎ×Ñbëaöª÷¨ýl¨Ðcç± ,ƒ ýX}±«òi`ü’1xÆÔ\½RÂÈ6Y˜VéúPññ©<Ý€4ôý¡[öàO"TÍ×÷U¹f®Ap<5.§Lñl¦…±)¹ì‘î¦;êÕû éfZ&̽ê9F|¯ávOœ¥¢}¥Á õ“\2ž­ý9áë…}àx€–ø|xŒÑoÒo~èQF½Äc9ÂaÛŒÈÞÜ|!Æìÿ€ïƒÞM=H«¡šâe¡’[vé…üÔxªÏ׿,„¤:!˳䕞p >O Ü÷:B’«Üc?Ñ”iÌÙë‚ôNtõûR•:ç࣭ú°Räªg÷S—‘WVÉä¼Y^«Dœœ‹Ä²N²¬PqGuÜù¼\ƒçBr9­Q75ä‹hcÊ+@9ô’q®½J÷F·${ù(š‚‹×îq5 ž< +dXcfŒGqBòí–{„^÷šøá~¯ö! ì•‚;MݓՌ¥çp®Ö„mè¿s^¥›FJãkjÖ$Åͺ ½­i–d¿¿0Ë;±*}‡ü1©d¨pQkƒ.¥¿šHL= öÊM­;ÿ=Ä<ÂS ¢uúÌåÝúH9RºÝ㔨>q8$œ!}Ê:X«ºø8‚V=ÂÖ³E $ˆ `ó£Ïع{;Žo†ÿ~ì7’š”…Ž¨Îâb6H±ÎŒ…꤫b€J’ÀœÎn0Ï­Õ= ˆë .§¦‘”‡a~«?ÝïA­ÕúWýbºwÛö½äê?:;fÛ`¢Ì5¡o5 …ûmaÆÎKë°æBd‹ºOØýÙˆ4 ýôn3Æ™Éb膨fºü6|ÁÓø©ZƒÊ¾sãêåp¬’Ò»¾@bI)‡¹¥^ý°Ä×39K~ž§”‘T,6¢â)Û?uYЪº!I»3kˆ #T¯ ó•»@†U—Éò}ý-õ±qE 6…’tåØ/t ¥8EfIl1$A*hxΑ´£»:5¼äxgZz¸ˆãÓÑ·˜óÅ*rÇÀÙ¨‚Ù˜Úyܸvø%ô#k{~ÕGQUFƒ©‰+m¨m=‹Ñv6ñùD“2[XfúYÃÍðˆcå|?÷dî$ýOÞ1¶=Hóí©}–pÛþŸÀQâ9>Át ˆÈÍÎÇÓÚF½£åý$r¡#Š=÷y8Æ@asÄÉèàsè×¶üà9xœ=Äò!Öpõ Î(h¢ëËmO5Yk–’ë<;ñ]ü¯ÿ*…vÐioWL2Xãº7ÇêUqh=Òî£ÝZ›‚\nÈ©[·¤ ƒ9+Ü+‡MK3U:)]Ò–§Fä^_‚"?cÖqËù}§…t§ÛîCx®p„JíI=lì„%änõP‹.eèÞíW%I¡‰kÖ^— êé;€sU»æpýæùêÐØì P¶±ÏíÑ.‚¶>ƒøžº8Î%݇¦7ì´+Ç`°²\`eð ?ýL»!#ã¿,úéb`_'DÅ^V)䞤¯8$¹òSôלƒOOÝ‹ŠÞÿ!r#«·°ÆO“±ëg«70®ÅÇ6˜ìùÔûÆTO#í¥ˆñJ†l\¯PJ Ÿæ~Sú—¯©,§;°òWîFÿðŒqöRá„EƦpô ìA}/Blè‹Åœ0zëwþºOÕëkám*ý¼R%3—ð$¯Ät›|ƒwг/°KX†g»Ú5¥Gœ™ñ0šêðuÕPrî’%@aJŠÓ†Ã^jܪf5ÇEÍS™ ³/Ê«¼R |tkØ£­ª‡Ëü”‡°ÕÒ³MÛánMxG­ÅßšƒË:ŽÓ³e>ýX´Üßà8dq“îþ© 8›óSçüê6pøËøÃ|Sz&{(+tÑ\Ö‚T^žÖÞÚTNº6Û!­s;[RK 91fž U¡í8âàÔmVëi²Œ§ÒT».¼ü+îê´Hk¶yleqÙ¾(*ÍËØP¿G¬ñwþ­t-P“×UÊ….@1#I ]Á:Y‰ hQw9ïöែ°ÇüK]­Ô“xj:àf Áí·Ž°þ‹ýÀIèl}ú[-¨ìÐãrøÏ5ëP6–~˜5!ϳrÿ.v•B߬EãªïõÔ@ŽzÕ}üL½i¶Ð?l p„ p+¾j„@ƒû U ©…»míñ$]±¥œh3”4úö $”:C•ÅOÌpׯ»6î-ÚfÖpÁáø8t*†%KWâÑ<݈"óËh2?¹’".5ü輡œÑcêT†æe¼OÜE7ì(ËxÄõx!]þmCíX®{f‹4–=ä-õ‘áY‘«LrìÜÅþ¦lì&!Ík8ö¬Ça \÷P)óãOßÓŒÂÕvu‘GÛ»ü§e¥àåÏ–Vc¦wíšõàož¢GQ»WrssŠ Áï ÃsâÏ“$ëÆÁ\ýZ $A³éX¹ðX™Ÿ ùư?~›Ÿ¾ñk”G‘¾;>¿wƒ'¦½heq°ènfŽPÿ™J‹P¶°T-‰da§)ÿ˜`¤&#‡†Á¦&ÛRBÁ¨ìi‚#ñ+݇¿’v;ò2ùóg£¯ý(ÕþÇ`´Íëk)X:þοãÞ»tõÇ뙤™6mF$kÐÄd BéŽâfòe^´r&*÷ à=dz•šP7Rü5=ĬéA‰Ipí¤œY,h…Œ´úgj£}ë”­&«ÄQm¤µâMNÈæèàõÝ£Q u~M' YyÊ=^€²D2ÎÃâÁ þóƒË…żò']®E%ªílUáT5cû:Åt¨WN˜aI=ô'´qOö.Y ½J÷°žÄ Hò~{1-WßÐ*£î&>Á°QÜ…*²²ßÙ` e(÷Èà1ª´’«óíc:nebMë;‡@+M=WA²ë€ÓoºEž¸0ýA‹ ËA[ü½ÁÊ—× q~È|!Çm¦•š,߈¬ì•‚;à '[ݳۉ–±S½ö‰~i LT%h‚½õkîÔTÜþç»Rû>³Ñܳº³*Ÿ6êát~oGŒöö­Ê’•ògåmwÚ7R^chªF •ûébÛ—x‚·i3>ñ°ŽäLeødäÔQS€xìFòóÖñ^ø–¡Í^$¡Un~÷tød®&pèçOœ$̬ít}\óëºÝˆBF ~h•HN-“¡š02BQfåßÇwèê=½™ù˜Tøü{<™ 9ít:kP§íÀY1>äòî!SãËúÇW<ä«(·ÌUÖòÙ@§ÁOøXñ¾ÒÞ; m±8º’3[δ¡6—>.ù&ÁÓÊc*ZVˆŒÔôM¸5нa‰\g0Â:àì;G»žÚ»†ö ™"{^Ø=M¬¨e6Ñ©+™aˆ¦Í®üÄy¿[ïûáNUVó›ÞéuµñYÅÁ#Í­&0µ)¬Œ`%Ó &ŽÞx*i© æ/KÕ+ÃÀ÷ß`ïü&DvG^M\VNÕC<‰ßs³B)î³èöq™Ìeï2A¿ªÏvá?ïMç2/ÙsÒñ<—žëécb<ÜÛ¬Ë^‰ È®@þ&"¨e·øg‹ ²2yûþ;CÓÄ¢ëqKû€Û”.ÿE9S6 *žå$ì‰6Ëü.o1B€„­˜ý)3ð‰ÞãÆÏ`â¤P¯¯amfMßÔRלq‡ò“«¼ÿ60VÜAÇØ„ÖˆÆ]WÈÍN5¼ 0t……*°B^e¸ò"â¼ßÛQ:®b`’lÛŸÜ[c‰§Ý^ì"@wA¿HËœrµƒÝb:ÅÅëÃtÀ=ëy+–å:#S¬X îµ Š&4_®æn'0^:¥«ÈÒóO9Õv½e©£Þ–6&m ~ˆ4JÉlä¦6P ÷Ø)êiZ—®D¿#2JŠü6“šÅ¦ï¹$}ø‚δ<;t‹Ò:ëã°,‡pÉs9³?„ª> œ‘"ƒ¨*W&ôóO¯ïÉˤ¹Ùýî¤f³0ipÉe ¡U0môˆôŽ©ÉÖƒã-³´?¯ÂQŒÛE ³m˜éœ8qÓ~¯þF>øÂ8Ží‚ã½1·…í†Ó“§r¬®çi=ÿï+F&-á8çããŽÔñtÊî»·7”‘î@ÓåÑÀ åí¼¼³xv"üL¸Þlç¶wöÁm œÎ,4«Ú'õyô–&–M;(G·û\{|¸¹µžËÒð®Ò>]/2f­Hû!0C&Ũh׿ŒëNÃq¿,KFœÈR¯fËà cHŠžƒdx}nt*RÍzjȳïA€èæñ-Å=Œ2²zÆ*STŸ^½Õáxc¥ºUiæd;³¥‰Ï3ú_f¼Ì*ù«×GAðà2^µ¿óî‘ÅE줽‡xgZm„ý”Ié5·KR>³wsÐIÍÃnVeÎÅüLÛLÙ,£ïyp¬ÉÐÃa€ ÒöâçNæ‹6-:ü«goÌÈo}§ ÊÜ~™ÄŠ5ô-4h'È–ÞüèÆq_ŽV<ßOŽ÷ÀZÃM¾]~§É³¼òi;áÜ&X5}<ŠQ¼ÛZ(NÙ(¿GxjùXÛÄ@¹ã|h3Èš˜3€]÷·Hÿ86&—õÿ‚¿ÄFÿbÖŠ)H 5wåŒN­”îühŠ }'ýl$fMÚÌt!Òmàp¥É%þ¡|¸!ÝD#F-Ûb0UÉPË"ü1”ÚY‘ÎM´¸š} ‡ù,¡Áй9à8i:»8†9ÍøûŸ?Ú#u¶Ó9‚ýéY9´¹ànaX°¸RF{$mÔâ‹h) ø’%LÃÙþ@â$&eªRI4Uºu0`,´Ýã)9hŒš;‡-ø>*–‘8÷VáqŸÌn+Þ +Ñà¿Þ\Q‹u” ŽÑ€_>áOäô®P•ë n¿à$GÑê4_ŽP|5 ë…®3‹:וÌ$*ˆ^äE\¤„AÔ;˜xSû˜ÊDEµy૪í´wüM%ïªw¦æÇÿÀ^1"w$Y»53„kñŸÞ.]Oæ€ø÷§ÜåÙ£XPuŒóA¯xBÄsÑ{ýFuXÄ¿Mcú7ŽA’wc{ݪ v-é!H8JáÐppd¬Í%¯«ÂájÁY-†–¾¹U#aÈ-%×Q£ƒ]åfªvôæ˜|¸v F^Wm6'Õ F«Íuh†Î©üOSÛ¸<£Œ \DÆ êTÙ ¹s`…ß¾RCWöIrò}¾N§î%C-À éÐDPu^gµöâ’: Š*V`¡]uȳ0h'dy¯Á;ºÅ¨{èÕÑO¨Ùÿ¶ ×0mÄ†ÏÆh6æe”]ÚÎáVtÞú ýø¼ñI+G·Pj>æQAæ5íÕ;üÁç½b[Šo5 Am†/Y^¾/z*üMb/,ôâ =åS(²¢=@i¡öFb¿$7:}õÞLS’\®cƒ­~V™ ð…/Vwù©ã±=ì¦:újM3hL{ ]Ü9=l>8,løhü㯬]Ãrò!©-¶Ë_$öîÒº*P­CRr„šÝÐ!:«'7I>ãž¶-hs™Ñ„¹†¦¨%±‡#W¬‘' /j¢ux&z÷‹ª³ìØGßÓ]™U5îïvAÒÇtÆÔŒy„Ξ&áâ¤øÍ÷ª¤s[Fü6Y5ó­Mùãn³§øÕ㌱M— )¤^óÖ½²²àþ…zePñÕ Ó¹ZêðQ&W¬qC3*ñÈ)(bfÔvWÕc¨0•›'£è þ‰‹º}bšX9}YZðd©ŠFFöõ¹æzíPùû*FâóÉ/ãS€/½!€$òöq)k•DÍÎ<#ÿôíÀ#ãYµTuCŒ:›óÊ`0ë¶› ›T‡•ÂIDåvÛù"QÊ.е•¥F˜±Ôsµ*/Þ@¶„˜ääÛÐ%6ÖËÆ9Æy‘²fÇüL¼RõG‡ç18µ”Üèဌ;ÍkT Gš€&üöé ÇÛ4úÃØï+¿~֪ʠh]Ehâ¬öd÷yéÍø¼ÁÖT^ƒª³O·?¤;ê p¡½äºñŽš4À|¬ÀíÚ„ ÿÃÒ(Æ)Ä{§ö wW.÷··¤V;îë–ò*®4KiáAšJ!!þ{ȈFà¿yº ãN0€E#Qä”Úóyéj$/á áð¹Ù>,¿€,Åy`#(SxDÂÓq? þÓ¢SØþrIãµ{˜i¤—ü5JW`ȆzÙ¨±—)÷kP/¶vHiÁ²¿É]œˆ¸Š›4²Ó÷8Ç?’qu5",4ëà|6;Ǽ‰¯@{W5Û¢Úƒz“šRb‰‡?æ…Ï!L»Ù‡įŒ‹+ÎáãÈ(–‰„?òßÍû»ý‰6©S^_^ÎJ+ðvÍå¶B#D ~xXÖ½wü}^<ÃØ£›-º˜t–r%ˆI™3}(¥ &t@aÝœ"’V|’•ÜxYÇs'{ý{Öá^…Ľ)¼Òog‹p4|.*½‘µBöÑ?  f³º:•žERñ·dÕ1·tõDµ¯éAsyøcÍÔ¹b=¥ƒL¦c)í8&ÃË@ºfT·öeì\ôG¯”ËŠ5M”r»]ÿGŽÅJ_»í±Ùq'ã‚Ø ¨š-³ä%iÍÏOW—ÌæÆ1³a,ô.ØÒË.S}Tþ?iÿçÄ#ùPiðçéÌÔ>°×é{Ô®PõW(+XÑã?- ÷¹ä_SثŠuºþ¿ýÚúعÓÈD^i¦m»š+§Wt|è²âòzwµÓ……õöøÅÓ¥X=üJJ?Tãrf¦s⌅V{ ’/sbê@ xŸ…°§€×½YHÜÓÒ¤ÈL<Ç®· N¾ç¡9ŒHÙ·Ÿ:hF»õbVíõ=ÔyTTÏ[~ÜYJj)æÛOâk¦úŸÀn†c_Ü„žN_4¬"Ù©ßvÅK¸ž¡iS½a·t^¢ÇÎWEr˜ ˆÁsbݪ> Å(`` GÇd¤~Ú¢îÝö†…Yâ=²$³ípÛþæüÆôk*3äˆ>\8Ïáìq&gXì LƒË}!ìQUýüL¾@`l-ó\ûC¸u _ڿËn‹Jœ¦WÈ¢N}{ö4R!"½çÀf‚Bü$t.¥#X£h3Fù/Â0W3E T êù¾"€áÝÌKٱɥ…Z[îCmD!òv¸N0˜”Ÿ‡Ê¯ÒO¶I‰*…uúN½Z›‹ë‹b¯ÙކG×Â+g›B¡» GnÉnæ«ÐÝV}­éEö‰'ë6øH£•GkIúÚUÿï¶p'\Mîò¬"ÉéºoVH4GkÃk¸üMã„YT#<…WyA‘%ŠJóÓÕý¢¶)·O]O|Eð_®+(rôVf ïh:(LÇZgGZCGº3‚n¡|±û`xï\Úp¥tX(ú,—I¤ ô…êD¶û÷óïýnãxÔì -D]Ðï±å·pêÛ®E¢lZNÜ –„’&ÆŒÞzTÚ=¶F #à²kb'Fâp}ZB?Ø??.ÔZ"UE‚ßÄý?“ Dìr*<š]PíQ¸?fÂÏL,ã2ìeú»cù¦LML}_™’zÚœOI9†i ö·lB´>”ôJkÁD/Ĩòºgs`^¶ ̲ÐYØåäÚK_+éSGé]Ó‡:Ž^À »sQ—±R'9/ðC ÷?ˆó ª­Ãæ¸eùé±ý´EüM->Ñ;&Z=ozÛCb‰±^vü‚yTxp½%ðÎØ4sŸåçŸ>u ƒäÌ«sÄv{ìö!S8“:¢BN ‹A3à#hŸFÆâ[[«â6hÐØú׸TA[‰{.»p ‘?~STVÈúµL{ÿn—F˜)*Ë?J¾É̓÷ÅàEHГ©wÞ)#цå‘e5³>®Iá@ûù0¡ŽU]")@® *ì 3gÞŒ‘ü…9í‚Þq¬~¿ èZ;<ºïDá›Öþ×âî±[ nxaü}Rʽ|£`s9øRˆ¹1Š–.U쯮H~al *âMФ–„“Tå!ét²Éô›ÀF°eg.Ï“Òó¨ §§­?0ξY Ëk‘>ÀךêÀ6O%§µ?i‡¾bb׈¥Dñt'Åš{?‚ÖqEžæVئE¤ÚR-VÙbhûœHG…’)’ûßz4ª«ãMå(w`þU¨11Zö;ÀÕƒÒÊ[Pj.{ê›AUþ•5ñ8c|á&âÞNޣěœ¨G{ó"qÊ áAFÕÝ€]bÙ£¸0‘?4Mä ›¯|ÁsÚ7ãÃÒþ Yéy-8?1¶ýé¬D‘`ñE Ëì0‚z‡vÍ#E“Í!!¥¨¸uQY:W0õ.•zõõÆkLí\Û¤¡¤›˜üMZ¨ÔÒê°$¡-ErR™âº›ÒbOêÜõ[H³4?ïÙÀ·‚:ŸÚ$Œö²ÿq»'¢Ï 8í*ëP縦Ñ8×Å)É.a“«éî…Žå)¹3(juã fj}^ý}%ú/o„G*¦ÝF%d· —Iw‡ž¼ªI)þ¹Ä‹}Ìc-ìÓôÁŒ¬nÿ]=åO +±3=³'Q[×ÏöËÀ‹S׆¿Ä¯@‹((üX3•QÓ’S@KºÃ…*Û”“Z¬»*˜ãc» „nñבOà %j°2¨l"_çËýàÁ/2r yBW•gB¾ôuå>ï÷[Cƒï’ØÆÅÓ+͘΢ä_·Y^àˆcý§7q ¢t“‚CùjRõ˜/m¶4®òƒb³±Ú<þ`Ðï®#åýi%¢? ÎBMkîÖìm÷æ"¬î·Ku ¢¨þÆ| ²ÓgyK:%)Î_ÕÃÔ"° …OÎQV\]¿åáÇ}ÉüÍ<éüM)o#‚Q%'09EäÀ%d¸a‘W¸PWoI½ðž×TÙN%þ…=“WI"h€É’’æÇ¶ÖÈKFã ~ÞH7ÅYÛAÁ’´jåÛcXe¼Ì]¹ ß,À_Fuª;×5Úe8Mì7ûºA-eùá´Ÿÿ—Ð Àó`<Åy¨Ýó'¬W'xs¾Ÿu¾jYÉŸ0aÄZ`8¢Ï&å8(ñ~0 ž°ŸkÒ^ÿÍDè|ß”&©„R1£gM\t/óÀBY!ßä~‚Yìb/‰.È)IúÈ>ûÛOggS: ¨ä-¨* JÕÛÝÜÿ~ÑÓÑ×ÓâÿFàëÿÿ ÿÿ÷ùÿ ÿÿ!ÿÿÿhõúÿÿÿÿÿÿÿÿ ÿ ÿÿ ÿ•æäâäÞöåêêêüM£ðÙÁ$·í*7ø !©¦8Gù^ö?´‹ÙøÃ|6Bÿ.‘ ßòà$š- ÊjH hy•„¨3Röòþ(8„þ‹ÞÕM¯›¯>`ëØÅ@¾ï¯+æZÏuÔúÿ›SmNøY D”ìèã.Rº¢=Jó,û_­éDÇÿƒÄÁ=_¤mF£ñľËÜë-àïø“­+¸îG–v}HÙbïA¬—öÐ:=“L¤¼+*ÐVF×iåÁ‘ˆ[Eyëˆ ô¶©ñü_LL$¥ë¸¨÷ÿäO›ã~êüK$J%eWêÐ[:oTÐØ²WíNyßA×n•ù®¿é^‘×ÌÖ®­Þ$íI€Ø¾½4V XUï‡rÔ)æ‹Ïñ€‡W6¦­·¢§±ÊßµœÃU®#(»¾jÏÙ—TÉSócá%½#%Y£y–>ü;qîV„O¶çN±zO‡‹(}”P|óAÂ'm[y"÷þ/¥¿¥…«V$0È~¼Íðg°9ÐÕ¼¿få™%{QÎÙ‘ë2š‘?,ûºö5@Mÿt`éü7‹P‰´K;7¡îwóú0›©¢¸”üLËVù+G‡.ðiwnäZ®’v¿WFˆ±¿^9vª ô©œwcC¼©8 †Î3aN¤ËÈ1¼¾›¸Y²ñÏ…ëâUDoŸ![ ™íõ¹ÿîÓ% ]ô™½íNîj¤Hsì¤&/Í«Üÿø¿×º'«¯^há¾g|äêë‰Þº‹è™ëª;©%£b³¼9úèªP±¸5Uu>¤öK`³‹úìóë!ÅÖ¤‘™³¯ÙTaž]žÜ}âİ`X*T#솋0q ¥Á ü–ºÙÐe#!Xü‘­>—ƒ×·ÝüB,/æ¨;ˆ®Ò*Á×:H‡0;%àÓ„Égø±»2Y}•åQezÿÇG|^*—Ì,À:žÏ/מ9Í(ÚJç4dI:"ÍKÒ ´Qq(‘dIïY“ÕŽáMp?)¡“|ü—!NÆZ@}K¯òàòhVS—ÉXU%z6^ÓýOòÛÔ`C¿9€2õ,'(¹‚~|>>üø³LB\ïTÌ*™ Ýa÷é pÞ¬ 3” §À ÿ?t“yÈâÄ!b©5a {Œc'd-T;’#À€ÀSj*üÇõ²<¦_bVlU]ˆÊËЇ+Jãöº¾ýO¯}–M‰ç6ržH¦”ÛXu êfÖœz3Õëý€ccj·cÌÃ[ ·=e9v2Q•7“!!wÆj¿˜i«.¾™»z‰á°ÛY×ׂ] (´Å›}¶>pßâ~~Å*ˆ¯¹ƒúàrPœìM½5¨æ'‰Ó.óƒÜº] M÷ *Ý ­çÝ‚GïÃì‹ &H™¹õ\‰³˜ÒÔ iξÎÈ_㇠“Oô*-é~ÛR4{5#j´ÖL^o–× ø‹ª‡nÉu~ 1.±_b{ ºÜ»á}ûÆÑ{q$àá©òfdÿ–î0?fBSß'Ôïøäž"½>;?Ká ÕË!~-ºÈuX`Z½Ýò·¿:sðÑœñ`¹DËL0ßýF+ÊkÂ?°…«0‘¦‘Ù™×ì-Ô¾8ª'ìJ*ü0‹ Ö™><ÑÕª¬!âáyüLÜ J/¢DèØ[0ˉR®§ý9¬^Sé®ô¹¢Ù𠤮$¸„| Ã¼ï¼ØwØE•ᣮYßÔBCUpq ½ÎKdݵoou$þoÛuí ¦š$1éxoŸÏ6-s1'wç¸/k¤ßàhë´… Ë` à…B;Õ”Wþƒ:Ö˜Y™HóF?‡ÞΆýù+°¶i:o“ýÕøHü ²Ú þô½K@`Àª´‰áR²¡9ˆ([QHµæOš Å¡ç<£Ã>l*ô‘2!üL¼öнŸM],k°³ÄFüF¼Vòrëì<³‡á p/=M’¼óÚpœhõºPgѰ ]HËãÖšöÞÎ*ÝÄ['üD½0¹’VCDøb¦ÁõHçyË™œ[ß{w˜y°ïÇâ¢Çö1ç–BˆGRÖ»u½øbØZ©KÓýÛFMPl€?‡EîûŸSlú È­ 6ŽÊ휒{ùuúÆD×ë>Ž¡Œ;Ú [ ”,lŸ “Ió} 2ZؿûpãÄI˜lŽJ,ÊÉ0XÛˆ~îmv%¶žŠö{;üL¾³“›Œ‚*Ö0ž»Vs-´®óCuu6]’â rHŠOx"-Õ- VB_ÏUTù`vQûErŽlcr½õ”ïm¯VåÄ8>*oöLŸø`´W…¿«ƒ•Ž46¬…°S©»R\ì&Þ¸eí=7ÉÀõ3£t¶9`òx!T„]!?ýN5áô%ÈñØvÚùºœ×çŽVÜÊ&”¾9®‡|lºf«ò6ÂÌäÂU˜¶=«ó ª[¯¿w°€Œsò˜ðaØ-à3Ù}v¾”›ˆà •³üJ AùëqÜg'{¬üe1oZó76ÍÀ_4S?»”‡/¸u2ÍÂÓô-Ö¥bwoí ØÌTi`±¦•°WºE ÃÜû˜û@!,²mßÐÚžÿº•_6G÷G~§¢Ÿˆxˆ(›¶A)æv…UGƒdÍ 5,i¶õ¤6¥fᯌ¶¼z[xcO¿p 8€¦évØ©ÙRL´ÒšLøÈ¨¦(È¡+Z(܆f£…»¼gTÏ…%· ƒäÊ•,×"»ŒÇMÃV:5ÔÙÉmáÔj…¦0±Ç%£¿Ë9µú`}Eü|·$dj6oŸ}Mü‰\&ù'x€ñVð³Ç„üË5Ír§ÐH¬6Ç£)4z EØDDâú»¦žïªe¸?ãò+Û~ÃÏtXïú!\™ˆÃóUH<þi ”G¸|×þ‹% 5 h×V3s‡ZqHã&U«Mûî%?øiÏÐÜlÝÃõ¤íq#?ç¾#ßLZ 1öö%í4{M·ÿõ+««ürCbUSA´ÆY1Ù?Yïè@öç+¥T¯–»Õ[2:6W"Üb)>â}"ÕÛòÁR²~¹HFÂ/}|4ŽQuÃõþ”^‚ÀÓá•Iè ¨¸ŒÜtŠŠ¨—2-Vg ƒˆ,窉ÖM"¥aÂ…ÃF7ÑN˘ŽÔO4þ%÷.­ROÖó_eûÆgÝßÕ)ËlÖ²;PQüLä¾¶ Ò8¦Ä2…ª0U®Ó*¿R"É“@Ø›2„w8 FUð™ã'§+¿d"lSÑ¢¯¾¹Â¼áLÓp-Rg†NÐC«Ô"jëãö>EcI¿úW2I»iQòfŽŠ‡ ¼Ýæ”ã–œ°@·W°­=9Û‡p¼¬´¦kF‚Ѻ4ýšçÛhG“¦9ŽböDûÿ×çd K£ƒCÖ?æÈDô{b}_t->ÜÐiˆKÓB_Âþy¼Möúo8=vÆ`Qd-iåO“ÿªR=žÓ¬¶WüÓ9ÈI’èÿžGƒ/‹þ½Â®G+EÈù3Ž $¼KÞ™ÖÇñM¨÷ó•¶%ŠfêZ[G= r+˜%=¬ GžŒƒÂ=hc’Ðad,§ÒíØ!/̾R¾Óo1A˜P‰ÈaýÂdcEn­«ræÐQà`š ˆWp÷˜ìœ™j+BùÙeš¦½ç©×’¬¼ÒuNÈ¥°V¼)Ù ž¤‘=\ú…·´Yº}†a¸:½Ó}Š^ G~!K«dÑ6 ³àV¾ Eæu½J} Âj’нµÎ¤›F]q̘·ì¨ö “ƒRüÍÛÕYeµædšç 8øX{|M–í­{ÿÜÿ³§CÏÒë<ì_îùZq¨üùða`YãÁ Gˆ¡–€SMVsž*y8`Žc|*[]J6 )3è…r y;>ª€~=k›úúØ‹úleïú&†É9‘þ¦dt‘÷B•o½ŒÇ!ô¤DМDˆ²wpݬ’žÔÇ›²ÅI¯[á9¨C&G™þYµ)%}- m¶5SI¶p®YÝ%œûU–˜ <„ës1Ä©…þ=•Ú½óÚ#ƒrhSió%ÄoܳŽTx z¢l>ÐŽž;Në¸,à¾ó,gvûöGnó¹F©‚üÆk·•VbN5ê‚.ÙRüN4®tü_ÂVÐu[ÛLf®/ÿc™(H/viÊ?G¤÷©ð)«Æ²2 cK[ƒ3=Zî#Ý àqrÿ<+‡}fçp´xprQ4D’ˆm‘Z ÄÍ‘O@Åy’¹ª–[æ¨dAßD*½÷'O'«E<6±Šœ,¤·œá½Å!øWnòœU62ã;lbvT¢<¹„HÚëgâ[³1ëx«Á˜úý€ü±QÐ-¬òþÉñäµ$Û´b7Öë–Ïš'ÆÊñ3ýš‡÷Ù¨n©8+:ƒ•3HÙý ¯–hÖØUÚõˆÌÉ‹IÓ;BrPÔøEY{ä€XÖËí– o,o&—.‚;þò #é›+¿híözôÆF¸ªç&§Ó4±`ùIlm°S¼ÿΘ¶‡è{B ›nÿ0xRÊû€ØSGÝQý¡ÖlU¤H£gI•°æ+ü/òÊ=11Ø8s þcû A](å[º#‡I¡e:·ypÁߥCfZa ¬Vl¿˜¹””§À^‘³"ð’viŠÎnDòÓÃ=ðÄSèè¶ÕªY©»&!¨6u·1?%ÌûÍ_"¶•¬T 1Ûœ‡-V7¹a¨)pÉÄ¡ö?Ðô\—²ºø²f¨˜Ç?΀PƒŠ³j¼*£¥¾©vÕ&´(ÑjqX¯Z‰á—&isSW¥ì¤§á(ÂŽ×åú°P!i&h”²²ÿ2K «3ƒ9çÊ—½Zq#’‰ÒëÞ°œ¬ûBd/¤}²èðïM*ùiëðç-›ZÙjƒ]‘Ãeî9cÞüÆaù©ýÜäÄŽË“8t;mòkE¶é“´`PþmcÍTÒôI­GÖÈA )°¿jÒ2ùÅé‘Ï®Pí¹S¸„œ?Ÿ„Ë}šk^Ηáé£9BD¡aVÛìŸ|B…òUäàµì%ûåÈo¼[L6vTZkôäA Aò‰1×Ð:ÁŒWâgÚÏ#îÝ輨µ#é±à;<{0ñ}ÁÂŽ)ØÞ<.1\$a¾l´}îO?º5^¾fT 94dqî?ÔšZÊÞ—g~&½¤W¿|¿°¦ ÆYàÝ^{ˆÑƸÌ|t¢h``FO €÷§B©ƒüÆrù™0wuDØ>JRÝþÀ$Ü¢±—ŽÊc-ˆr)¤@÷)ãÖi¿‘ûòþ*Ì´&“ý³n‚¤ ³»„®0mEBî^Žxk|dpÙ,"î{ëéÓÄŽÜv¸!>\æH•ZeK6"V´›BÛ¡Üb‘)ŽÚêv×ÓÆ æ|U "?H¬ˆŠ™xˆ[A‘Ø«}¤ÒýUQ)HÂióWä5Ù+@¥÷XP§ƒ ìIþ§3}šïtÐcÒ ;18ªÚy-S…)ž’'J>CàÞ—ÀÏ즽,­øpI¾õQJ»àrD'¬Gïy‚ü5_¢¥s涉ú²oA, ½LhDÇ«öÈ™£"Ø„o;Uñ¯T%¶Úx4 ‹‚¯¡jœßŠÞ„Êh÷Ê8H=ïHJ+}ËFÉô« è¤ÉFÄþü0…mz Df]³ÿ^¡EòNìßx—­ ÖN<–ièÈ'ž^*¦Q° Ïoç߃qƒšAqM5Yv©Ë»$%4(9‹Ø¬ÂÆŠ07‡P–‚|UBo9^óë‹™Áÿã{ÆúÛ’„ƤÕèe­B¢… úU…{ݨmÙPhÿKýuf’2 ;TÔ®NÜÛ2¸©U*ݰªjt@HÚÒRNÁÝ—;ú $›!$/æ½Ë\mN#Gü50æÚí¿1Ø¢+ëwÔè,gnÁɳßqFi× èX°Ÿ4j3›ÙÝÁÑÊ52|TH|GZ©õ÷¨na6ðFýŽFô@"aÕVo y‡“™T”„rpqªµ‘¤ Þ¼£§ØÈyÞ’+áåçÄ2Oiž¡Þ¬õﺚ:*AûrJ~g¬C‡èÓMÒIB›tg] JG8C¬½:ÀD}ƒ¬â~œ ßü.Kä© –bé&õ8_Ù#(j–;%¡Ž™ð¸”F?„[J[·AŽ=âÜNr²Ö%5œÖû”‹e‘Éu$ûÏÌ'–ph¿ø†Ê‚øó Ù1úå/rá ü«ÀmöÇ„/-F?@Íøté®e°wø\Žo#~ÿ4¹¶”ÿÐtdmêH®ƒFób ^Íâ·sàù~ζqË.Œ,b0.Ž3(_­ZU#‘Ò§´ÅLQ¡À«À½–w|xÎt@Nò¯#å8øŒV*£Ïè1Z¶uBØÜÍ´ Ãð9ÛÖ)<ÚDTsÜOˆÿãhjaßouS¥–9lG•µÜÃlqq+?üÄoCí¶D8oÞÄÙ±ò¼ë™ÁOÁæ-^cjÍ&`´–B*w©ö‡vÜίa¢I ã$ãFù7á'@åýôH%`*ç¥-šß‹ß¤ò¼ƒ¯l.CBbÚDY7E3GÉðÙ z{¶Ü/KRÅxë£z>§u„öÞ<øùŸ<Õ LŽÜL ÿzpëìû*ZFpH‰9ÈCBÍèSu·t©óD‹kò @ºq! ˜15›&H Þ«Ó¿«Qo7P¡FüýtîB^ð¬'A=§5Ü‹l~¦É%š£¶n+¨GI@Ú½rii«pr&'ˆ˜™P¬›Ç~ …å,UïÓ±ž8©™z9ºàû-©¡U§Ó,¶m„ü}Sy‹ØÎkxŸ%÷¬]z©œŠHííÖö´ÈÚBRK§à©Û7™x3Áƒ<ó½Z÷®¬­yaÊH^îÕ†tîeÝïfŒ|®¼¡gýÏQ¬Ò©¯z˜"T—Ì%6×Ç€ežŸ–/nÖR£±O÷`Ìy¡Àóµmª>JóA0Þ¸ŠOšÝ(™eYúÏËW1Ó$uÊÆÁ·”€ª}„õøM7zíEi¥pgŒÖ¸P3÷@Ék:^7kÙøGdÅ‘f±©¨R_ën‰ÀÂó±ÏX‹?ï/z@è…U‘ IçDëuÈuÒ\XS"á@·Na—Ál‡„f¾”Aïd7Nú"rjkLiŒ©¡LÅtM¿Àãí Dr ß•µûÃ/º›-g²’RÍÓŠ’Ó§ïû"ÌÂ'Rà£ðƒT Ú¼5Þ\+Δηê[‡Áh#%}½Ï޵5¸WeÚ@Ë´ü(Šûb¨y;y>Ïž°.çÿSüž$FÑÈÃ×þ—tÍU‹"jQ»8`WÒy†ù€Åw›S–h"lþ˜i¯Í?îË7ÜŽÙ³7i¿–!±Fr|<Xxj?V¹„ëóä”Ïo®lïïTã‘ήÔåÔBe|b¼Úò»*-énÇ@þéV¡†à û¤®†Ö¼]5A L+CyÑH 6”ñÍÇF”D©ˆb ƒÔÓ+v"ÖZxAºÆñDQ}~Þ[#Ñ¿õfjŒ ÈövnÝÁ›Ú¤ª`à»*˱:¨¦Û-”Ä2÷©´¦ Ý‘YÒž·MLPküÆ)J&?õåbï2øØôT*çÔ^©èÃk9"ŸœB®ÍaYrº¹q//IñÒWKª0C v½%/@K³PsBljÿÏÌÊMO+És„áBöˤÛÈT̯ƒ‹-ÓÝ|Å¡»nÃôiÖDsg8?¿º^àÎùGüÄ%\¾QŽY8¬%¿j¹œZ–•‘°SEÿb DU=Òà%wß½Ùúu±K^ ƒ^9^8»ŒNVG bN‚c¼hko୷Ǿô6ãmè»S›†yýIéuÿGFE~€ä(º }oÆMu·ÒV[$³N7 (Ô¯^å‡üÆ&Zä˜ÒÔYQ°jár¢¨¨%;n–·EWÍ>1 M/w0Âåäõ uWVLØã˜fb äíF¨Ù¯ËàCÊEÜmævk»yüŠÎW^}é'ÁÖGS¿N'~CÊÖ…‚äbcôqOì$^tÝtlõ£èV·PL5¼0óS³¥êâ|Ô4ÑïÈà—ì-Ö‰ý2,Aç“V&j¦°y׺H ýD( 'ÑnOé*MÜ#K7kÚ§xˆ;1ŽX*p¿wUè›ôG{)ûI:Cø;B{oôjvþù z¼ü8Ðþ/4éƒÒö´í¼5/ÚHx{ðçÚ-Šƒ0ÕZˆüÆbç$^XbúHÖm<®kÁÁŠK2¦n7Jh× iFædCä×1IxÿJØÑÃq;c&#%ÂMªÝÏÀñdf2ÁIóߣsßt!Ú\=½Æ«¢`’ú¢&p¼ ýûª¿ÎlÌ›ËÉYúá×~Ž› /BNêäiX"'鄪™ä’•øˆ ç ÜP³h‰OutS>åÏ/"¢RØa€ÐæÑ_* üòü¯"8BktÝ@o™Œ6j+Š]L×,v—û–º¼·¯—ÁUŸ÷€:S‹Ò‘ßÈi$|⎄Øý.–#?²Ý;ÔJkmDmýé ó”å°„µ5¨#Yüøõ)Û#±û+õ÷º‹³Íp~äsõµO6Ý’…‰üÆjîÅáÛrÒU&´âĨPž)Á¨lâÉäÃux gÿƒíÞó‹þþ¸Èé©Tõ[¤0lÂ0°ªLPð-ÆÿH>V?ïûÖÈvKÕ ).àÝX­Z¢ÜJ1ä 0õ]¾yÏ£Ìå÷Ÿã!ÝÅ79€VLÏTüÞ#Ò.ÌÑHˆf¼WÜQÀj´Ir35Éæ”Ò)vïÞo¶ZœEäà˜NÛ9™/„ó•«g†@ê6ªo1¬–«Ú×Þ¾Sò¼ª]À±®°j~œî3¬óWóe«¶°^*J&Ní ;8 ;nËR>Ë0ºfÆîÍD¯§$^Ë´›ä»ÞÜÑ0'Ô ìß¡'æM‰üÆgxZlEû“ƒò.Ì-:f­ÿI"¿3½·é=Öˆÿ”âÓ557‘Ðãu=îú17®m8¿•e˜vøÿƶ z7èŽÇõ¡Îû((6w,ˆ{1‡B¡ÔÖXÔ¶g5˜>¦Š½Ž)þ¹©¹uϘ‚L…ôdí:D4šòÔgˆGt‘×é6çîXP9Wv;Q!¥žßÒº‡¼µ_׿=¬ÈÒ¥(lONúßéÄðÐpY™Íêüo¶W¹È±šÚŒ¹Úd¿\uÀÛçÌcÑòÞ=”²-›Òbäô‘ø¿E Õ-Û4šŸèRâ¾UÒ 6Ф¯O³rdòR^ˆOÞUM2Û»ÆfMÀˆüÇ0ÀQa›e¿DG*zÊSÎìiq™}IÄ»¹ ¤lEÙ bü^â¼ó»EùÈàÈ(ËxÆ-¹òÍ?wo˜Ìæ$s ²u}L—'Ëí)Íõ½äÛ€î‡Äö2ž§A)¿f}cª¶…¯dSŽFB¶|¾#g3±ç e†,±›KQÉY–Ž¥ [ȰŒ“›fÀV@…t9ýúúÙ²½—‡}”oÍ4ûÉ´}a#kÕ·q­óÐW­’Ð/Æ "ltQ¢1é hRft‚€ÚŠG'Ï‹*œÃ íä E Ôk38¼ ZÒ^Á Èþÿg\ jö×Àºi×ͺïÛŠnÊ›‘î£@×" +§\Y+Ì,éÄõÜPC¢÷ðbôD˾¯Î¿Ì»“UÛ‡X̦•`úhbObþ§‚•±¢9!…¹ûTч‘މˆ:PYó˜?/qN¬¢È¼@~!Ë®ªÐ#‡e¤J¹Œ—SmãÉ¡£ÔÞÇÇN(©õüŒ'pß‘‰üJ ÕæÔÿbÿƒã¹ ¢ähKŒÿ ™9OŠuïãyÁÖ#¼YUQE¨›T®þ­rD )»ùa£b÷`êŒÔDz •¿G¤SH×Û}êDÖ^ø²Ðyç%Ò%ë|H%^o}™ ¹ËØB tï.#ª³…Åw`Ò¾0±«öaˆ“á*Q*@†»„Û Ø~Õby+Z†ÓçjJÖ3E˜Ér“ñ%8Áº¨÷Ø<º °ÁÜ‘åmQˆRõ6Í6ϧ^wÐR ³+Œ†‡m ¬Ëˆâ¼ue¨ ¨“üVoŦ¶› C WÝ•O@½gi^šíú÷òÍüãˆWf_]¹÷¶ª¨…¹Ö4ºüÃìbü,½ŒšÃ@…#é#—Pg!v^΂íodZ]l`î9tÇ¿•àMÉu[ÆÀì¡_í¸°Ç+ñÒ€)¦”qQ‡$‚±ó<›(ç,÷Jýö °ðši&N üSxÒIÇÏlŽ^\å¡©Å,ÔéWæÎª…èm\A‡ùŸþ% G›â”¸'ÛÈŨa¶f¸(ÒI ûω5ןáºw`Ïö¬Û¸–O`4³>v[^|ÇâÎ*ß/ÅiðÎøŠèVœªQÈʶȺÆ)p&JF4ÚrˆÀRŽHtú*þJ£ÕQàð'Ï»€¢G½tx…s²Z:€Töâ™iŸ2‰üÆm )²:ƒuh“g-Ã}µnr€K£°@*pRW¨Ný&a"©mÀñ é¼ðmj.‰Óüº½„†Ù”ÝfÊí1¦¸dòôÛ µ¨Œ6÷Ê.ŠÌcîv´/dgRf±ÿy.1ü\ѡȧŸ6FXië©ÛqxghËBtz¢¼ÜüúI9éoE¹aA|<ù€õ PlœØ7^•˜4…÷¬š9¼Tãô#ƒyç}ªë—3w%ÌŒ Ÿ‰´[:÷Ý' 'ñ¶0Ör ö®$ ö {^ ;²i=3„ ¢“L1¢ƒ,’eä,5絑¾îØÆÞ›åïd³9ê'ñÜ~¶˜AîGµÒFûzÁ¨ ¶oE¹xùµ*«Lj~åÔÃ/¿h‹kM¨Œid§WÄ\N¿Í­´<Ó†gQT™ Á‘üL· É0Õá„É?’Elï¹Ë‹Ríó(ñt$5Éã·ŽŠÉÔ'Ùï]ËëI:vîЋ†èEšÇÉPw$P¡Àj¼S8fY¯Q䡃Glrf߉|I]Š+kEVo[÷Ú®×'-–*4¢–sóüM‡§Cê¦á]ž6<2–·×ß3j£\á$¬Qð¤)ì°¹ùçâÑyÉÓÅŒÝ=:ØÌ¤Xù ì3Õù0’©‘>½­ÿ÷†bI k¹½ÄhÁRÂ×° åöX6¡·ñr]¶¹gâfwÚ†…MC>¶$=oÂYüLÚŸ¨¶_Õ ¥Ôz~ Wkz£B1bI…‰êº†‹Û2‘eÙ|Ô3J…áÂW_Õ¿·4œÜ ‚SLÙ>™ØZîñ˜E!LRwŽ´wpöÛéGª2¢£'hæwP2•#³§¤æYêJ‹_6´ë†õA13²IL‰û¿M7SöÙzò] — t­˜eˆœ{¿”7îoà¨#¡Âcc]†!Y¼3l18ï3·¯ìÓ¯#»D¾¹ù$Ô8]^³;Ãp¦i™£¢šÒ}Á}PÚ`d•éÉöÙ÷¿ém6¯Ü#Cý:Êá¥ÖŸWüÛ½‡lÏx}ñ”c|l ¿žó¡%úŒ‹_å—cod£7cz:Pšäu)³™¹©¶Ë¡Æ%ƒŒ27dÓé‡/H.…×S¼onôbjóEÇ Åþ‹‡Ê#M˜»í‚´Qk¡ÏDшyyÔ |kÖ[…&T_µ›Ø¬X­šÊÞdð Ï*wÇ#íDì$»vÖ{©þõm ¦x/gtÉG{1€À U æÄ’±õcËï—'‚4^³ýÌÙŒüK#Úâf¶>p¸±ydë;G¬g¼n0¯”@Æ! Frf[žw¶Æ>JpŠ;X2½h4nF.Áq?ƒm™_ÒæÎülËŠÄÛM]·ß}Ïj¾1¸ª*•1tŸ1ŠÔàäF¶ûß ÆèZ2¤sÞÛû™KJ$°™A+%4ƽ¬±±Èi‰…‡°~¦ËÞØ™4m娦UÆî“_ƒ¸1ÂDpÀj_yxª ¡°þVAÍUnÛ„ãS85xNVÙ80/#çA¨z +R&ƒ%pŸ&÷ã2¹)¤Ó‡èÀ'í-º¥ˆ3Û­%RüIùfZˆžUeúY ÚXÉV-™µBY•Y_ºg¸Ž§™j–e.K˜[öÒ¦ÁsÒT}òk§XÿË[ö 32G“K ¨Õq˜)w“¢Ó(ÒkÓaNn6ýEl£X†kLWø%÷4ÜÜž7ëŽÞ7Ÿ>å5ZLp._šüŽ´+V™)H6ÇK3[t¶…1˜„¾Ï]½ë¥åW,¤½èjÌizMd&Õ…¿B p9Þ®«žZÓ:> •î$»¯Î ùSŽá"…Ù~ŸM!O6jq1ÉyüÙÄ@Mö ¸F‰Uö™Á„Õ>XÌ•Ú-Ž( ç9)e ɘH¶º¦ÑO2ÓOÎFHÍ‹S‚ÿžk¯æIÍ~“_jŠòžG!\¥’2Lk ¤c OtÙ3 ÁÍ u z§©fÁì)øÌ€g¢þKen²F<“ª*],¬Ëc†dŒæÖ>ëë‘Ùžý(Î`ªÛì>ôè3v›§Ak)üÝFqI=É­³b÷kTʳfïVsAÃW Ìþ-^Jl3 H¨°0$Q¬ƒÉo~Û%¾$‹ŒPüù¿ ¾ñ Ÿ•Á(Ñ‹Ù-ä–»k¸š1ÇäÏz3"üÛr³Ñvóú-^¿ØmÊZXEânôF¼A6S¬%¼\Ä`Î Ðk, ßãÔ]~$dž}¨tQh[Ó$_g¦rY†Ûø»7mh6í MÝQÄH/Rùc'Ô‚3Kx–çÊ ZGŽˆº—äÔùè"Ó}ØÀ2`ìà;ÝB7/PÖŽûxÿ +¬ymVé~⣋áA+WÚáú³¨÷r‚ÇàÀþÂ2.ÙwÓ÷³ÏO°|ƒX¨ýOå£ê»E§®üN Ã$½T ¼hûé ¡©Ð!ß3\­&‡Tº ÿö>0pG±/ѹG9EzÝX ™¶×ûafüj8PüIõ“”¦YOÖ¯3rM…å<Ê·‡Tú$Bj » S7K¨;t:šÖzŒÖ+dCú`aW1þÌ5ƒgÒ2‘oxIÎ^gïUK2™äÛŽI Ê"o<Ð3;j>¿¶abhùRiwGíß©´_ÏòD`˜zíuh~0ûXž+I9[~¡9Óqh6µør~æ$ûKÐ!Dö®Õè´Ý‚[Д%}Ž{ˆTssÇs*×¥‡!–:Ky󘾋!UÛ@U\Î|§>.ÈxS­þ")oY!Y•ú#o\Bj(çô¦EDïØÌú'%ÉOggS€õ ¨ä.q½ŠBìÞáÿˆÜÿ Þ×ÙãÿßæóëñöõÿŠç÷ñóôÿÿyäïÿÿ ÿÿÿÞûçîéîæÿkçãõÿÿ ÿ ÿ›íäÚêüIùÓ8õ6iP‘çoH=*ì/ð#È §ècÖZœÓ¼®k½¯ò=Zä»ÏÝ=Kw‚Ê2fˆE¥ýlœ9#g§×Œ;Œ°&üMÈîÈVŸþ䉖ςQPë?øö òm)¤î2Ù§g ¯Xš•­¢Û¸¥o÷ÇàQfM•ù´ŽÒ+ cÄkåå5®.(n·cTÏÐ!#/´C… (Rhï0Fòk§òåUWás;™Wììu¦}ã<ã ì­á,þÖD[Û¬ÏÅ×ïÀ— ã{þïŽør§û@þŸ¸qnMôÉöaüI‚Ôíô:Ì }y-ùícŒÛé_&¸ ¢÷Ó•üèÏ™Æj9èV AÚKkžÚ õÖdaƒé~s©ÇÁWyïÎ…¸ÛÙoFþv1‹U»½6c€zbŠgáµ9®‹î%ÙtxJá嬂“¡e*€v!ãÔ ä'Ñ|#€—™®‹v²ŽIDiˆñt H5±ò Zø+0¾Ä)Çá™K ï†ý±gç ŲÛó~XØdÎZëÏh‹¸ÌãxXÑD÷\GáÏ]Ò`eÿäÚUí½?péy¾NzËáÅÙNûüM± úÀoT°çI–œ~Ú—÷ã»þúÓY~qórvCàÐT¹Yo;Õ.:ä»KÌSr¶+÷Né–<¡@”…-³Ÿdå’ÇÎÐHi2fÑí‡ÞN¾ÜÉJ”Š)·Ô§®ô'Þí“ íÂ9C,}û€‰NAÅ–5àI·tÍü6nÓùÖJ€}D5K\<Ø„dycb—„’¹¤Û`­qY\Û÷Æ–Mhi-!M›· ÿ’&6/}7¬‚%Eñ@ÎæV²Ãü®¿àÊ+ãªò_R@5Slhu†ƒ©¬É·q¨#âYÍ ý6˜‚ÅÆ‹ú þ·›§‰éÐF(Ÿñ äüÚ "«ÆPs‡Ábö¡fì•Ø5ø‰EµŒÔHßN#ïE ŸŽ÷]4=Á2 .¼Þib3‡Òb{TÈ¿Ñ=$ÆÜT}üÇÉW©“O©TWL¥>‚s_2Ô¥Dó¥s‘˜æ³˜xòEXÛ;špžªhÊ‹ø³îëJÉó"©¡Åp¾’æK<¸e‘åñµn­`*®ÄxT°i*˜ÀbÍæŒ1¡ûˆ”¨5Ž(œj(õÒ´E¯YtþÜ/û“Òãã=[C B¼Óxµ@C½á.Cu>q<ëcy]½àNF_D9zÑ ‘$´œR.øýQgúšUÝ««¨¦Võ[ŽLížf’å¾è„¶jš\@üMZ¤Jöé2ˆ(kB8ˆö„Q"èý ا4á­ZÎè=ÝÒ‹üLNoM`^Îô&Ÿ‰HµA8Ú,ÜoÅô4ßG8C¦Ÿ‹ðL‹j.‘½È’?¹W}w4ü8¨l4®ª¥ÖCå÷gZ\Tò™õªin1Ï#=êó°/¯2Á¥(WT;uû GÏO*WškRë­ÅÅ2¨”ôà#WX|D†x ‘(/ø¢H^ÒGÉÈ‹gµƒN Ûa†Üò±®«9!|òg˜IòyžµÈ)ž2ún»ô'j@Ѝ(ªc#úAû"B1ý¶ƒ1p@‡ya(„E“IünX0K­ÿœ6l™âNø¼Z{Ãa/|¤Gïе_‹’ØUoìØ¯4$9ײgZ·hŽc^d «}›!uŧKnoþÑ-´6ãGúh*Õµ¿³ÉÝo-DÐCêkõv²ó¼¶䞣ÉÑQ4‰ ºëCoy¯‰†ßsR^ÝCaó“ßàߢ5=y äì}õ ¢õîoVýüÌ´NR6ò5ã¥øLZ²v*É­™át§0  L/†Wß«¼²™žOŽõ'A]É}“)§•çD­1L3!%t¶ 0U™øOîøC`÷œ¸Ó¿¤ÂãR²JT䬪“®Ï$LGˆ?d/…³ìË*½dt[Ãê¸û™-ï}O§…ÿuY%mØó®Ë\ Ë£cB–Ä“ÄÓŽÕ&C½Y¸<Çð&@˜.b:({ˆI2í±ZcÌqÖ–ßÝ‘¹MÌNÎŒJ®®V+éÅ|b#Ç[h;/àVÉJµ?½þ X¾ûfdt¼˜cŸ8œ}n÷AM˜U€ü½àg¼‘(Ïg%5À(QùÚG‹J?H¤ÇÇYt¶ÿ÷+6 #“*Mý)äÍ+Saª-àFm79œ ô)Piò–WŸ¶âk­A®ƒ®QyPZü¹â×cöɆX b»G5n”¸ÕÀ@ê­þݳ.-\œz.¹ò`>¡· Á?Œ "ÇI»9S>±¯pkó§å¤|÷†6‘w’‹ý¿ð¹ñ޶N™ì©¬üÁÇзÚʃÍ&Ú:rŒÈW†Ì|kÕÅd Æ}Œ¬žæc2·ä2V¢Œ0gmü æËt«Rÿ7myÌ·.wÖÿbúÊzz:Yh%àœ‡òLê’¨g(‡äþínOç;à^Šä’õTÚÏÊÕVû©½îòBà±|M@É@8H&z]À¼Õ#2Ùüøtåªmq3ñ´æ±ü|‘Ós‰ñu3($­ßÆîÇÙÓíÙ4€7 ßšÐ\Ý–_ˆF´é?©ö÷ÝÙÉz&V<‹Ò8ïAì~1‰ÑAö©Øä®ÖËöW CÙȃ‚˜¤†žOAÇjy™ŸÿùƒÇIÒ²òô¨=Æ]’º©`T<2üdàf¬À%íá8öX©†亣ǂ¯Ý¬Ôa{œ%ë­#ê ˜gìØkòÌYW"|•°±pÝâ‘ð£œÙE Êýa‡A…™q÷ay·ç )ÙÍöç¬(Š-ñe‹Úò’¼P9ê8Ä×áñ<»Ýh¨:BøŠ8VBpéÁW‚ѶU^;=XML\¹J“”Më•ýN óp¬îí ãü†ÿŒsX•c)Ãu@„Gý¶ë¶ƒP>ìNnCÁâǹp/®Q6ÛãVƒ!&™Ê™5Nœº~Š»x²^5½¡vœ„KT,Lל˜•‰­Ã¾(*ËéÐBKð¸T¯dRõbj´i2ôï9àüIòGK–”]¦ H)Ò­ò 1!­”mx Q£±÷d½8´rö:ôšVc}@ДAkÎû«• Fä«ÎÜ€þö½M5BÄ[Õ|îÜN‡t Ik²üMÑ¢JÉn²Œæ\ô]ÈÀÐI8'ì\eÍ¥Äo¶)"xeÕðW¸RoŽS*×h„-²ÐKû™­"zŠ”â´vXUzøÿ“_&‘Ž-ǾP³bº¡?¥S†“O»Ü7¥è£¼Ê7ù3ÓÜûYhÕjÅÔC ôž*OuWŠ»÷hÍ+PF×î:˪‚5˜7TksrºØü¼™]k ]`.¶vu›xSÌýÌ3ex`¯t¶´oúÿpü(˜·‰†ƒGÞœ¢,½ÉxËEGµ *òžŽ°,Td‘nb4iÃ*ëx½ÈD]¹£þ›#.kú6R&žœ\m/¥äš_•œÌ´å¼3h½Sxõ66‡`/±ß7sänÒke0$®hU¿³ÕM¿.>v™Zwi Šå²éÐ…xPøføê‚ï§%ÃÜp¯ùÊŒÞ3ÄA˜xHŸ°0A”½N1V“ÊàuÀb­U}7/÷€~ªÎ`b{®^”Æ&XˆÙ¶jTªôÕ´ƒlíÁçèžn½ü6U‚ýGèŸåA‘ü™Uðÿ2l¡áYïW¥Qµw›Î¼&Æâ »;óçLç–ƒt,PNl;*9Ò"¢Ý£á„XÛ»Ò Gò4×å(Ý]jjmtÆJ¾źweOؼ K[~Íô9çzv;| ~6Q­(ó»Å·gÒ6¢2å›ô$¼ U;ܘ³ûÏuöam‡Ým÷¡¢léG9Tz<–l Ç¾­IöLj¨BtoÛóÁh¦2þgý—¡!Ô<\‰Àg2aR,ÛBp™ÀISZ0+Þ$Q‹+ø=ÉôžrŒ¶¸Ú©‚ût˜üLÚÏT'¢Š/8~¦à™R;ðîdÜc§,*MS9°JàÌ‹ƒÛrÓÄðg î~eáÔêÕîp¿¯I6UZî6bd{°Éï–"Ûï³ e¹.b^Âj‚ͨMútÀ«‘DCrØ{ÿ&ײÍþ²Æ<4@¤Ä®+æa mû²¸¶ɾKX![~ÜI‘Ĭwµ¯uö¥bmñbûÏÊññ«˜¬”–ÇÝï±JG3xgíØTe¨I…¶å§ÃÔÖº¤4|—oÕQ_;÷$¼ˆàB÷Ó£… ((çÂH t^´ùºO‰Óµ—OÇ¡AS+xí üÓ2˜¦3·ú¯†x`]…û§ö˜“¤ËÆ?4@;-%!~l$9p`Öf€ªe ê40ÑGrE“¦XEúä¸ìê"8-ôIäZñSŽõ-,?sôµüxeMõb§à–#`ì¨xu299ùý¿%vsRIzŒ–˜Ði,Ê-XϹå1¶{Ô~±ä·ÎžÓ–à °¾Ò@?zz¦ôRª¿>»-0¦FËÊ…ËãaçŠHjÚÖh0±*%ö3"œŸdñe4­i.x„÷÷Pom/¥ì<²?²ßèMŸL7JTfl°3­vG”ãñj±9ªü6ons¿º •Új6áÁqDrÄI¶)û•±6ÚÌ^º”Íݤ#L†]F÷\` ÖiKT>#j—X‹0¾ƒƒJÿ˜÷Èž^—E/¾§Ž_•VùãG*:¦+@àÅÍLð\X£&mÇ‘«QkOa^•PúÉ›¤€›UÀ¼rD1²ØMuéÅk­tÍp*ôÆŽ‘ÁŸ™æ{ú „F¯ÎÊEÚĬ-:'⪠'ìØCØ«‹‰"¸˜MOR Äêù<²á؆NU]/Îï/²–dƒ4ŒT—¶ôÝX&rlʵ‰ÖXd‹ê¦Ü ©&±kã™ø¼¼}J„òÆü|¶Ø·&Dë×kDl.í¸?Í–†k¥É$Ko¹ï¨È“ãkº¦y™K-£C®Í+òš47Yr¾€¹ªô>Çû¤EŒ¶ 6í4\a=Ÿ¯ãÿÄrïÿÛ›š( ^¨¢‹ÝŽ„1e5ÐZ/Ã}ãXÓ¸¤³¯°·£0)’Z;(W0Né8ëy)HÄj¿b>Péœ×¹lØdÂfVQ³þÄùt{9èCBßX}Å f~™ÒRž®ð±ØT¿pIÓ©Í~z9Io.ªÞü‡OVõâ»gP¹§ç_9ÄQ+} ÒeME¤4*ÿD¯ý¸­eÎN¦€M’ª3›§ö;K?P´Žsh<ù6íGϱ·XlïÕàâáʳ?ôböÒMBG¾„ˆÖ¿Î }tçë«uM‚zÌŸú'„‚½:&MCŒ;8‰íV[ÄXŒîåÔã£ØDîåàO/LQ©jÔúͬ ²­³”DqÎ_ü“Þ=üJy…zÿwï`¯á¬“‡ÑKãAýÂJ“T*dȨñ·ö±r~°þ71;xŸ-_‚w•U÷v€±B™<7VÄ…8ŽŽ´«»ÉþúKTˆ½`œ½¹MTŒÙØr£3Ö›¸wéZjÝw]Wœó®=rFâÌèPH€z‡¯Ÿ¢R¸Ú‚?Œ¢ë¢0F“‹\MBj²¹A …è_YH¬š¤íb3 ÎÊ Cœ\þù.tiŽ®Y¯êAų*Ó¦rϲk5—¶ Áð ¡;1Â;p“ØœC™Bü’80»íà“Óï”÷·Ã…œ§œ‹û/è߮ը® ·¿eçJ¬Q£—BƈóµïíŸ:›ÁLaôå`ú„þ"‹3öQ@ü‘ê_ââ£l]v_"<}?^ò"êw;}Ti\_ŽÝª`4k¶ˆš vfïÅlpoa<…úòõžnBõ‡*$M´ÈI»ênvkõ“5ƒÌlx/|s†À.¤;XBpõ?ÌP4ŸHÁÈ.äuòõEYA¨ª-×çYMü×9äˆLÁÎ×–û‰L½É5ÆbÐ|ÄF lÔÔ¢´ oëF`¥‚jSÖÿuå 9Ø_í÷›ç÷ÈóHXŠŒ/[¬5Ì)ià&¾#DÙÝ-´f7'ˆ‘g%Ë…h¬~M¾1¤½ÍFÀôW½˜Éfm½Ýâ‹5ýï#IsîÆ÷Ð ¸º¾-°·l²üŒšt×i v“ ‰¹Ï3z±YÐ5~3hHÊ«#¸ÔNt—µHß»lÞyÚLÔÏ'Y/Ÿû{` w.ÍNÿ7ú·üºË“Hžf夲 Ì7CÔþWöïO9vÂ]Âxz£X†Ù}þû>‚cûªúLV<уñZŽúU\•yw{¶ÙkäÕyžÏµó“Йí5Š]a¶ïª¢ Ÿ–"F)î%îÈl›ü.¾•ˆÃ±ÔŠK9Ž S*°¡-»;N_œZŸÙÌVw˸âáX ²:Nz¶z¥ay@û;«m=]êÛ“ÃßÖ-ýjèºb<†¼¸¹ ƬÏl[Ëò ¿Æ±üÍÛ­nnó÷¦åâô2À µ»ÙC7â>ûô¶"†A”ÛïKc*Hr]¯?HeŸÏíP<"°ãVôê¾…ûY¤©i?zˆnží­âG–”ë=9äu¤¶Bêêlë@]C£w£§æ¸ñôŤ‰»C ƒd˜^.+‹wÈ^,´m±²'bÏÔ{?²!Y§ qi‰“õÒZXi)î/lÀâE>åݱ°Wjò‡ IÐŽƒ±Lj@Þ÷à& Ó˜½ûè0x*ÅŠDÕœ)õ!p"ÛxÒÑÕmB9Å߯âæoøá!^Ê HΊø™s¬óŸ;óPu¹3¤–8Õ³0ç™+× Áý€Í‚üÂ=Üöè@M•d+oLW’uŽ+iÓâ©ØmŠ –[")vOiäÒ@1^DÀWgÝ<ú£Pú Î§Š ™¢« 58©«f°·©Ç2ÈÔž²žË°[bja 5Ñ´"ûíQcm=§}nà±®×üóß þ”€i, õ—ƒÂæÄOÀpáì+eÛKNÛ@&gÃØp¬n'æã2á?b…¯¿é©T~»`rh†ªÖ&F ÿÿòu<ÓÉ ùã Za•СbZmCvIƒ¥'ÍÀÃq1{gÊ—ÐMi$ÕF/Ï Ú¤Î°œ ƒ‚”¼Â󭤣³};™[ºf08gÒú¯ìŸž?îS²¶^ký Â6ÚùB72Ý+9ï¬P1`Tkë8î½wG.UÅ'póÊæÝ$Ÿ$˜§¿ü`Õ/ ªùEÉ[äÖžkÙ°V¾HV¹Qeˆy˜MÍ689XÓ¯`*‚b= |)·ë—tö¸kZµÞXív”çÃöJøH“x‘ÈÛX ÕæÕ½©[F÷ïcàSüP™ÃK.€¤˜òq{Wƒ ‡²Ã*I’ëóy$$✠æÐYÆë0}$Ùvç§ÀþÊH<‡™Á][ ¶ÔÞQÞÍæšÈ¢ ËÛå3Øm’°ì…uE£j¢Ð¥LcµŠwðóh;=ÉÎ –Ts)geXÏêáþÞô…¼Ä¥0d<(ãoÕX{Z¬Z¿›Ýg¶Šç”¹ÓÆBˆ!üJNa®‹•€}dqÔ>ÆÔ€p&±Ÿ¯M÷ %ø½L¥«©…¢Åè+PI¸qåÙ–y†S éûX]¶ÆØ¶Ì¡ÜÁªq,´òH"Ë]Õ­¤ƩР8{Ur7÷:¹£`8Œ(E,›ëžùšø“7±%ÔŸ©š/¢É\úŸ‡ H¸I?ÞEj9˜I›Ð‚¾ÇÔ D–íÒp¥£Œà<ª{¼¡›+: ~•Т{&ØM% *áíËòìäX¹p3i-5ÄŒ.y~UIvWt‡[é™/ÁÚSüW=çOiá2nOå¸'1-š»üM{‹–U–mI(š"f)¶VY…`[¥W­ˆË—ïW쯓øVlâp®—.y Àl  Købœ=Ý¥¬ùG0¥ÖŠüV:=¡ÝoÂö3i+Põ½´é°q»9‚V ^^áôšƒôÏ¡¾"›èÁû](¿>¥ö ¦""Õ8V>ØtÕóŠæ‹%HÖPÕ~Þ2¸¢v^»šù)iP«TPÞ‹º“ Üà5^íOý›ê÷s5ðééš`Îø8š6þ‹¯Ì¢w.²5.FwU”µi†ªIn•o¸ðµüL2.ú’Ô<êª ¢Ù½àºDåüÌá’¾NsÀ‚%Âýmã<¼;3[Fd\ë/,Â8œ^`Ë>%s!U˜ÿœÿº2¿tśŻ„‹¯u|ã(^(|iˆKÕ]†þõ˜ÂìÏTÑEÓ¦™ÒÝ ˆs4EYWç&U;›Æþ'PÉç="¨y%R¸Â¦9oq5*”*¦#ÅÆ£TÓ°7ñ´á߈]´Œ–f’6»'£îc>Še„¼‰²ãùÊÖŽj=á1ÒëÛéZžO˜ÝwH¾ £­acXÖ³ÁMË%VúÃÎ º_…ɶ`‚˜1'[åàüz¾É)|CWUú Ìï¤Úœrž©L³ñ¢óȵí¯+Ênè±7ŠlÁ*Oƒ­^ß»4Jܤ#…|KôÏŸa§Ø¢J+½”õ´1jÜŸ[z _ÿ#-½‰êp‰K²5{Ký صUw‚@¿{ª± "ç–€0 qË_‚åYýÂëÆ†Äg¸;’¬º‹ ×Pagêu‡‘!†|e‰RarI¡—‚-‹F)_ –0Wi¹Yl z¢\ÍÓñ«x ÒŽu=䙫 äÈú¤I¶¦‰Qhé'¯Jùí<Ȉ?N3)¦Éë0W/J3˜ÕîòŒIÎë­àIi“¡Ñ&9Z娏¥“´|x8Å!÷;Šˆ½Òìy~€çwäǶž_f†ÿ„\²i4‰–I´Á+sÍàÄçžDgoc—0„ÀÔ§¤Øabh®*3$YbO<G·¾ðwÙ+‹Æñýzç.¡«¸Êx^ý]ÿüÍßPöÞUc—N-Ý»‘}p‘q³èM5⟲½U÷³Ûy1/pÁ‹c½à5øwHHEäi?‘¿|&¹¤*¦þ™²j%°z¦ŸÌ1ÒÖ!o¦>[¦ºÎaO(8)Â#͹F¿åf½Ûj¤”?Q@¥È¾§çÂ2Ƶ‚ò$ªç,0?Úe·Pj4íÒ@´ghDNVßÅ&[í¤•ˆ‘3Ú[ø9 ¹ÂÄ¢¢²®~×’ãäî¶£Uç‰4ª|T5BC‚f21×TTm»`HÒLèxÍÄ4Á¤Òk —e‚ü1÷cu8ÓÖ6m(ºŽø8/® ]©;<Ãá\ˆ±×ϤxdÁ à~ºóïÉ4uð°íQyi²9'¶p¬Ë ã¶XYÔj2Á+ ~L ˆ3ñ^š-ð7W~&÷”ƒèeÐ3}öt±JþæÑ° ó=kg>7˜dsä›a–9w’U¨d‹ã†9u*Œ1ÓLSÁ|æAVG l¿æ¼É^zK\p"_ÔÊ sy/AëPŠ+¤¦µ¥xN˜_n2Y”Æ?/Rf¨Ž·å—ká¤Yüê±æ5²—Ô;hI˜GÛÜQüÍÛžÙå×çma½¾ÖRýÓ…/úcü¬ðèU+͇œ vÀwM¤n BS·©‡\5Y’ ³îøïRíÒ-ÎÂK^«í1)h\Îáé %û9ÔÚ¨Ó!kqò)ìn‘‡¸„xÚÑo0]ZÿÓIÎÓ¿~Û¡²ŒÙ¿ZØr÷Àm笂'`ý°V»Öe¼ÍMØ•5%D¹)4Ž'&£‹¼&A¼}".äªâP¬YäãÉ¢×ÏÞúüW+,k{…:p’r_-ߨ­ÿC#(‹’xŸ.r=ÂCaõ¡Ê ZÓ¡x —ØÞ°çµg'“™­WüÓ2—ðœ,§¬6îŽs hôyQó¸Vêá¹ti0\ɨ#ë;=EœÖ c„Û .cA;’¦ëÒÚñCÇìpS˜¯fw –ºaÓJ6z«èÛâV ª&ù}ÊðR¦ŠÝªwß.p¹–Ý~Nðôœn iú{7—•a ;¬$æ¾Òw¥”¬˜Cžy$Hà%pž„ÿj¼Ýç úæ5‚ÅÒ º©;›¬IƒLà@þcQtn=^4‘r‚Uúˆc|è%|J²ºQW.ÿê¸Ù UIª|Cyå@À¿&‘|#ϲú6WE´Ÿ2~=>ªô²YN>³äB+\’ -ƒüÓ5BnÂ8uþ^ -]ßÉE^Š%EOÊͻʔFr3ïVš—$Uª' ¸¸ìAIqš¶<;2èf(@ü~­1¾AòO¾%{Þ–˜S”“ ?°Ï†ð¬o÷NTê²áNn T馑‚²½a¬O•ã‚˽¸nõ·KcB}h¸=Ô¢Ð\vnñ£“`tF$K`Fƒq`êÇß³‚ð:J}Y”V”-ë@0 £ðK&ÒÐÚÚÿ(Äa)Ÿ M/ÑÈ>–•DViË‘ü"V w)y†Lé`9Š8o™nëdJ 2”>ë^o”ž®tØö÷ù!f¡«qºz‡.ZMÜum̃üHiaÉìéí~¾w¹ŸEI0–Z¦-4#˜)h½E:˜xvgò“ÀA Ï•îe96+¸ h“Á˜«kYž¯o ÎÚ3µÅ³a<›x4iº+ßaN#¡ÝŠq•…[ †øócN1Z)ýüÖ:ê°ZÚ¦ô×åwQ\uš$È.9kÿ™‘OüÅDvÌ Óê ÜeôXû¾)I‹N€{?ÔˆQgÉ–:jm‚ý3)Ž'xº,(dwbŽîÉÚmï`O J-{øJr:6Á©Ã)3LÕu'ÕRô̦T›ÒþÐ/§#ßm-¾Ôx ÂáÃk¿~A_zªó\ðU¡'ì9¨ozÄMHmü¯ý›oAš¸«-Õw¢HL'u+öÇš…¾<ãš( 8’sòìì?*,>e Q¨Ûgc—]Ç›ñ3 ƒ@Ûäuùö¸Wú<Ÿ^1:.ü\¬-ÏÓðT*Ny~ZF0ã!XæjÇ:áü¿d°žèPìD%ü»Ý¥Qê^J(¥Âleº¥ÂFY(ïqÈøl»]<þuíÛCúv4²»ö‘ĸ«n–e¦» b±rϼ6õ¿çÉ ^z½È ÷ø‘¹ßµž9íõ’3I3bÁÜ8<ž¡t2n—Xš‡ØJ‹±.f¯`Àw6ùìXïFÑŸ ££ùÂxЕ’~¡7±‚¥/ê;µ•L¥ÐãÖ;ó¦óÜôpì©¶EõlŠ í¸’l(§‚È kƒZjÍ!Š;…ÄñÌî’íò²& Nê%¡WÑÃߥ‰Éù`¡Ð •QœüÉñœe’f^–ðCÜkú­˜Ã+ûßì C¤$èÛ2÷>ã¯Èaµ˜¬LM †ç eYÜ–þÀÛ[#Ýõc¿ùuïõ«Çü½à©ßä½äa$FF椈ϻ/²µ#aƿɑ¨1Óeޤß`©ÙzéΈæÏ2ࡪ6yk ©ÿ"•ÿcÒSŸÇÏ¿tÙP¡<½®€|ÎãÃz¢E¤O›œÄ‰+®{"Èî«ó‚Aò‰$ÕÌ\JÄD@›Æ{‘ëüößïì÷1WÆØŸÛàºîî€íN€>w }kÏê\ê ®õC:þM‡¡ùx/\šô·sËÕVЏ>íéÒì^\èwÐdŒºŒ ãül¹œ…Ý É.|4;´¥mk8UOì! î…2@ çkW¥ùz­<@Ƥ{Ù?/(]Âÿ÷BEmœàW&¸€[?îwñpƒDÑL–ñ‚Þ«üàw›ÙŒC¬rCÁ|Î"-B„2c-l`k—Žk âüL»©ªÙÏÂËa sÀõøÊ,öÐã(Þ´0‰)æÿ ³wž…®@J^âÍDrë\²À“û0„áa°ñ+Grs¹®Î]E«D±›: žÇLé"q üBЗätŸ±÷·5v“:ûÛXä̦ïü ~µêv•*_è\ ‚EÙÓé…Æ§ ñÐàÀWu͵Tu(ºT²}GÂÛ›ZÖâÒµ²#2 _p@ßå³_ü)ÙƒkvæJý|`[ÄUk–ŠÑF|ÝëÒoI9™ü£·`=ÐüMs WÇÒŸéÀÝ;yÑ~CséÏ·ïqêån-ö•S¨& IM¼I5#YìÉsRÌ8ý¸Z:Dusc[¡UûeÓ©WŠ©_ùY½‹•¦ôXòÿ‘ ½_z1…%pÓ50«Ô—пÆk=Ü-§wuZΞ9ü2ÎGÅ ¾‡=¦ñ·¬~Œc«åO4xÚH̶üõ¨‡¥¸yö牶-ÄìÔŠú³ê…ëõúË ­ñÈCÇ «áòïâ]Lrõs³ýØü<…§J¥(À#¤gÛm,Å•4ÝtÞ3í6rÔ}óö\˪€ö/OggS±!¨ä/jÃFe?åëøéôþòòöÿ‡ßêåÿàòàæááÿZøöÿ¶äìñ÷øÿ õìÿóÿ ÿ ÿÿ¬é÷ÿÿÿñìêòèõüüL¾YZ²M3ß6ªnJÖ]^ñ—ßOrˆÄ46Œû‚ÏLQ§_ÀK?ü•<é¯üî¯Ù:í3),ÞâéiRÕßï {u*_6ˆ^y GŠ…êT;Á$à¶®7p/;ð9]pJru‚·™¼@ž¯?î®]òZm˜üñq›C›Py$³el’²š±øĬj²]Bt9~º¹®îwõÊRqöžr˜ìîc{ Ôfà:‰©Ö-0» yìG¼ŠArXâû÷}–â>Zz¶GБ»fŽÆƒˆiýá(¯ ü.Kësëœ;=g:5¢ä›'Lˆé›ßËd4|?¿Þ‡ùmï5rº†¶Öe„×óðí,-ʺÙ7ÞœÎ_´G_®A¨£hÂ÷±`&yëOt ÎVÓ-Œ²“ùòÁ¤‰?¯«žB™Ä/(NÜA–íç˜&‘D–$»á*•yuãÃЮc<ÞÃÄ• èðRwY@{{B»žwàéÅ>?ØQn°”³eÒr‰è4þÙÂTXaŒ&…Ý^%Û•¤t¤7‡G¿]IWŽªX¼rΪ÷e?Š[F.èjã­ªÝK±pW}üLÌ> 'eqŒÒ¿“¼âA¡vó·zdJåvHåO¼L÷‹Z5P2sàÃ2RS°6ZË3n¸LF"X´d{£Öš»bCsÔø‹9êŒ ’:˜+õqíq”cœAÔE†o ÖAÊEž”×;j%ÈÊu{IÿÈò&Þ]P#ƒ4¸½ ÿªTZijŸ“ƒë´$µË=1ƒ¯þ9e%ü5åd ² ‹Và;Üë©{ûï´Þ4 ¥w£TÚñ°ˆ*Ũ*/ÉaúŸÍþ¼GJhÛ29ÖÝtŽŽì…ÃDú+h•kÒn4ÓÿîçYZXü7—ôó÷«åïø=p“Ý,d, ¾Âh´ – W¿½tW•ác6ò$y1N•〟QÛ…9IþÐ¥RA!^ïtnØn”%E¤+Åm"q¹„·6mVlߩդ×UV€œ9tK£ñÁÅLzáûõíE€æ9ò!˜Û)gµ,?ݥؒ5Ô™hµÆÃU&/N«uò” ¯¤³»[c¬Ð5U;Ø“*3îf}”êt5ZªáÎ^9lziò˜ÍÎ`FQ¦¶UÜñ1Å#첟ƒy?ö¾ˆ3Ø¢zÓ°$h˜çø$æü1 .Õ§&$BÏ…E§:võeÎѹqoÛ¶B@9<8 3-¥2ÒÿÁ1ˆ Z¦sµ¤NWDž¸YŽÑeæ!jÀ¦sL`°T)UÜQjWÃ6Ì‚1<õ½¹µ>³ú!”ò‘‚ 7€ÖM‚\!žKG“¼œ.6‚—ÝîvÂ- ÑÓT'PšÔÈ•¤Iš3a»¦pǦšºZç(jU&; ½?wÎx1bCXEvijÎʆ‡¹ê5³ëwRŒ÷^eˆ6„;ܰ»Àà¤ö Ê€E9üÄ]¨º;§I½T'¥ÿõh­¹‹ïuÐK3ˆ-l~ü&¤_>gÇO-x‘$Í?\qD¶Íܶf´gK‚…á­÷õ§’Ö$ÇÞ,Vô°çÈu,Ò¡­XI“}bß°œMžëØrœô×§ yº×žƒ„ø*S«öxøÎxÈà(¼kެ<{„Ï|Ù3åT«ófçñSæŽÃêÈbGÊ9Wʼyc´µö:;TΗ ÏK8°DÈ{à–w ËDÏx¯á¿IYlÎî jåfÕ/ö­ Ç¨ª£H:7Úξˆüæy´¸k6Œv}Üæáa—»Íƒ†žB<¹mb4¯Â‡*ìÓ§\/Ü{Î'dOÍà±ãt¿7‚KSˆ¿¦4¨ôüçAåNV»!r”ä~¥)KBÜÒ•ÛÉÇÏEßõšeXÉ /š÷oœøõ¬'lI°ùîÔÞ³T~w÷«Å¿R®P©ÐeÌIa½Ñè”…Çë®—½ffcäÍøl¾2Y€}Ø\˜|­;{ 6‰¬ÆNÎ7x9eP7áØqé3ŸÀ` !K0­Ï±ÞEkçº2Ê^Öÿï¥ì<$º¸÷™ûù›´ùoE×ìZú ² fa£?ÂÆr\/x3 ÚŒÿÔ´‹ƒV”¦!ÒFX„h¡Ûe[Sÿ{´âyø8›όɟšÜäÖ ÿÏVຉA¾×2ü.Žt3o‰yúh“i‘˜ÏªBgÅ.Wes÷j5J5º2ÙÍ´6KÇÓ@l_¤ÏÐvÝÆâ²•8úû~çh2#m÷ØÙþnÀUéöyü'Û5LÔ…oæ4I‡6š ü-®—á{‹„Ë£ÕáL±ðÞJº€ñm?eNË—›LìpZE¦LŠ~ô<ÍKQ3BztFë»Í‡^Ÿ§Æ­­²Ðâã,…7òMõ1Ñ¥‡ö¡èŒ~Ù,§×”PI­ÞH=ÊÌÖÆºÈ¤üZé‹åÓÏ™6¾ûŽ{äEñ–™¶¸­¥7fN.âãú9!\GßÔ¿üËx=¸-Ìv;ÏÍ9*¹}²o°Ê8•ä¶òú­ vEŒ…'êï ~<â0ñQóJóØÚ%®¥ –çphÉí¹Îý]¸þÊÂ.¸ºÉŽ«‡„W—À@(h{ Q¯Àå¥ò sBëÌmˆ¾üŸ¥Q}EúUñô˜ñ¨]Ló+¼®¼Á85ÙpØ-•û' 稬¥Ñmº:Ÿ¯j½ üý"`¹ >Œâº# ú G³ªTOŲ©õÖðଅãþŠÓ´†3R•ÇÎK¼Q]}Þ»Ë ÛŸ·7t"&·ýòt&€WŠ}ƒü|›ØäòÂHËò.à}žZQ« Ë­ƒP²…ÿ½Â,þΘ>4:Ë`n¢¹&%ÏÆí°S¿™ C¤÷ë>†ßØŒôÛåz•dɯÇ/0©Õ„¹e,°ƒö~ë´;¤s:C&”óa‘Æ÷,\pȾ<Q)Œ®¢>;y7Ð,<ÞÈäŽ7´=žÃÁë#ÑN[c îz6Ÿ•b_ÆŽOºÏ™æ©[36‡Íß͆›-#ÂEö5þhrVðU\oœ°¸'k¤åÇæSdXèËòÖÊ9øü ØÔê¢}šB•8wÇKµv\î”Ù3 /s̲0QÎÃpü—ÿÕÅ’Í8)•…Äí¾÷B(1L³6-ÉUäIÔ]N„pŽ|wBRZïEE5àØ/|mïwçA5Ђ:×ÇTŠgæ{‰YÁÚÜYcQîv ‘Œ°Ë},Œ•Ï4ÒyrÍô…#{'¿q*"ÈòVŠ:‘Q¾ÜõϤG§ið_Væ<– Êõ¨¹¹ÎÄzJ÷_CNX·THÅQ.|üJNpÿøÂÆ?,PÿáBùkYVK<²ò蚥wË…š'L·]€g?“Ê"›bGïŽ$À¦ÁUž«Q_çµoRuq¼åZ*\’8‹5RP"¬zI§NuèðªBæ}Ž“èÔ4>Ž0]Så˫ȉÇò™¬mñ¼M×ÜQÙXÛ’”è%dsåBloó-#™ìï¼Òã9…ªÖ<8xÔ£rOqsÛƒ×ÈŠð´–Þlž™ƒÚiÒMõëÉfÅnz—A'†uO¿øÑµÅëwR€ò6î‹Ï;‘悞þ~š:æ4ü©Ð8ËXÆrÑu`H¡Òø€£húQò’U­c$l};3C+üM$'7_©w« º g¡¬长?ø”šÎ&ŠŽ×"›¬á°¡œVŠP+N{‡ÛX›¯s'ÇÒLwd%‹…ÄËqµiè==‘íf.ÿÕ„Pm®ˆŸ~ïƒÏ ? ,ææö‹4šfsý%ål/ˆ\uîz(:^QrbÊðÊóz!õ¶…\$웦AÀYè˜~V{ÚÁØìÀaôM~9P$ÖãRSFpsïVÛ´ìÌ}ÏU;4z{ÑÓz:×¼ ]U»­T„¹Av=9E÷¸Ïüêî7§a»…9Ý ¼•x:Y4ÜÞ~ëÙk€¤±ËŒR¦&ÇÊŒMÝÁ.d}¦U7is0ôч3\y“|Þú³¼KÉÛÕV‹äÎ\ïrVð{ÎãÊ~(ßxbÒ­¿­ëée0“onB«Ë‡äר óà;îg_ôaþ¢'ú¿Vu·x)œ6K–9"ºÀüM[Zmyf³Ì,“áïé¾Ù»]Y>˜GVË­o‘ýê…*‹.o7öxˆ Iè…:/§;.ÓPYÇPånéïŸ9ä5û½÷y[ÿÆÏâcU´Ï9ë ÚßS¨¨Ñfšlï5\ßX»RáMüÛ ¢cìÞì=O;\{È'Ê«ˆ˜¯U½žG‚;Ô·Ý9åí,d‰ HÁZ]„V*ÖV‚;’PѬ¾iðtkât<å¾²Én“ ÒØ¬ÅKä9ŠóF›ÖÆ ëÉxÿ¡×hÐ,Å×ÛïýšOR±hµºq¹ü³0½÷§0Ô)!üLøtš¼F;ã:Û¤9\BÔš…uÓœV+¶ULôî<Õ§EÛ¤“î5AvÖ®ëðùƒôß¿fºÈi¹—Œ˜ÜŸÎÆãþÓÔæÅªý\C søi)ÂÎï|MiYi•†<|#¥å†"Õãe3jsç {Í»±¦‰|èxʲi}Ëzi®P˜/íö¡J§œðeO–VIÊnÍ®ÌjIçy¨mê÷„žtÃãæ^AcØ’³‰%ƒb¶LÕV²½†f“zͳ™Àj¸¦"ƒE±‰ì†*á1¾$¡ãónûüM&f«a÷‚Ÿe•Ï—ÙÅnÕ±v>FfGs {œŒ]ûèšSÊÕ;/ûµ‹7’Ïmª…‘ç ÑÉtßAKúÃ)‚ã Îm¢#Rø‚ÂÈJ )jÜÿðáÀ%“84ôD€ZÁJ‰ÓÓiÆu´ÏQ+–É—ÉCoÌÞh6Ï8nFŠ›¸m{ìràÊHÜúL§µS­ƒý ÈoNx´Y^%(å»ß{õCŽÞO|ðþµá@œÿÓùrˬDl2Ñ-›0•QH?« «œHr@t’Ö±(»2;™a£=×UÑü1†XôSpóc½FÈvÑ==JAHk±I¡O#afÔ¨S-‹¤âEöW«fô¡:+”‘Ø{d]7+,ð¢ŒQõ÷¥ð/ê„jÆæ"z‹œLÜ¿¿{Ô 3–aK_ÎI4i–h«ëì1Ð4²9x—ÕNT%Ï©ÙÔ{ 6¡çqÇ2"XuM#°ÖãL\‹º”cåæ9zGÐöV‚¥Y-û+ŠO ùÜÑn6G† !püËY“¨ÒÈI'oš+Ï•cÖô´-‘o"Òž‹¤ÆHà¦wP±ìßãq©1îÂm /âvü|®¾˜agt¥ âú]‚kÍU½Ì ´Íƒ;£„×tý'=죒%SJ@£÷~d…h€i®Ç<ˆi  Ú|&²zß%Æ û–!ÏÞMéÇÙŽþb]6™³£7û<Þçq1sðÒǸb6ƒ‡‰8l‘‚ëêhê‘Mžò@#“A7ÅDˆæ,K){5§>ñÇ?¤šZ¼»×Hÿo«Ò`aÜvd«Jä‰Ë¸u àCñÔßl-„HÁwD_sæšê9åŸ|3Hûôn(ñ³K àKÎÇaÍž¿²7H×€±ÆJc[o3×,’¹¶ÃÉu'K©^9¶¶0Á†×¼øŒ°&z£)q™J·¡wø»±tÓÅ0í^;Hb" U¬«&¶!ƒÆÝ†þlIæš$ S¸/j:|qäD~L·%4sö}21BR[ù Q ´Þ æÈï÷e”7ü„ âY½ê‰€ã“nœ@¡ù/Pæq߇ì{Èù$èï/<Ê:7ƒA·¡ N;iå3÷ä@¡RãY­0ãv%2|_þŸóK_-N‘æhÌÙw¯M@B£¯gÎDwí9êø‚QáÂJ¡-‡—ÃF¾,¨ÔÂiáè…,ý"ã]é,ËËêr¦ì¥s!©×hÔDÊ_Ìa5Úz4î VÜÛx¢Û+ãkÈ&ÒœB~àL¤Š€y€öxe(¼ÝçÿDùü×¶Ç¿Ð?;;l"ãÈ0èKÑÚ §1ÕqËUaòvcÌ}MF/rþ`ªü5D•†C.yž{Á ÈØ®~?ùÐQ»ALEàxœþ4¾‹x}WI¾]N°ø4®Ùô몧›æªk_;Bs%ÅÓ6ìYÀrl'È #Sz;S6y¾Èò¦ú‘(Neƒ3¡9ÓÙû8?/‰ Z0Ëúšl‘·Æ^¯6¶7ÆòŠÿ“hï)dAš-«hÜ)¨ébÆp…:§(›d-Cð ‚ü}€Ç~Ÿ†&˜O4 Ø 1§ÞJ½%Å_&\#Œ[`˜s¯ø)"F Ãmß(ä#áí:KV~‡Íè8TŽ»þPÄå±iШ!¬2äØÅü®Útåá¹Ô8²@æGQ»6Õ!Êee—ž;‘íIIæT³Ògùç«T»Zý2ݬj49ƒL8ŽÚæqkÒ!Ø"²¨ÑZg9noµú©ðEà_¶F‡‡¶«~¦¸=eØpšÂáèý#6·ø ‘Oì¥ã‹_–gkŽÉVÂ{OTœRï¯Ã=òÅ…£‡oŠ™Vñpñ—ºŒuœ$>1í˜J³3¨¸Lv£Ñ•±zõ¡À`AWÌ®@’o[Þ0ƒÿx©[7Cˆc;Ã=É‚ª³Gaæ~Û-Zä™ĶíÝ3-Æôt÷ù^ñz¦û¨Ý»ñkLæÉªó ä«ýG¿hqÝb™ÙcâÎr18ÔMÀŠrÖV‰OÖ Vg\âUg…>³HÏ(‚÷±¨I‰æ2X;)ýRÞÞF¦‹9-RÁúBÒÓg`cIq-ir<„¶ž±/p”`Ë´«Í_ÔÐz\yœÖ6Åòa[%c† "On >’Âx#G òc!¼_7ïb&œ1UÊ9fË·M· ÄM£tqýpæWyÝÊy`WI>„oQ¼#¢),üL«ßWÍ/à^ ( Ò`^9P­‹'o²SuñºÍ)ÎíJ%ø}Wü‘jŵ#“ùÕ ÉW5 m˜J*רGNCTà4ãŠù"k›6¿óµy}ŒoùÁñ¬ó«Ä‰2™Än×Ü3ùü0ü>")#^Û&iÛ’Ýö*´•- Ëb5g5ìd:5»"&€4PvSlj2/7¾ÙâPHx?xÞxpÐÙ„ó€Øuºeà;:]ñü£…˾ËÆì³°#«•—ŸÈ ¨Åí}"N ú» Qñ½ŒCs6ãÙøAB–BNäe‹JD–ü6WÉïô‚’^³^E¾Ë´ ¥·©êôâÚL4f:™n£ˆ-ðŒÄ,ñØ"M‰šÝ”¼ò€)Hª¿ö­ÁŽ£™t¤ü²P«ßéÙz °ÀG`ÉDäŠÍ{èˆ5e!¯èµœ¼Ù;×Ah4-‚HÞÖB©µ`Ý1"šÏÿÔÂXËqçïg2¿Ó¯ádiä•/ïO#'< õÜÕHž=´‹À“àïùJ'jÊÙ®ˆ³š@Ô¦Ô"‚“s;šTš˜õ’_¨ÑÝV`‡X=0³žtÌôÏ\²‡¿¡³èãv8 Š „ü¯õÖ5Ò9µn]ìÒ]®ö˜Îóy؆ò§áÎ@}”Ë‹O‡ÀŽ|°¼îŽ%ó&Mïö48)¹Ë:ì¿Ýbóü؉ˎÜk½ì& •3Tÿ3°ê¿p,„°úŠ?¢ ¸¥ô¼;ô.öñòJ§üñŸëcºqwç]dŽ‘—WRCï7“Vš‚Ù+ÿ(07Ò·ñXþ-tÆórjRýÈüö³M_š¢%r,k$süC+Kb¯°e‡Å(âå@X•ÍÆ$蹂© ÁA(ÃIÆù ¦0Kc×uÀ«v©qÌjÕåqшv°×u û„ˆ× -ü± ŒCprñn1ÙçMÜäÕ5Qƒo®rv»PüÆ{ÀUø‰z¶0] ^‹däðp!,¸²K®ìžú1ÿ±B«DûH%'BO)„dþ]eX}þuÒeÂt°"‡‰œ™Ë²¼©MhöËÌP('‰Îê%ataYpLábŽÏƒ£ÒAÊËáH# m¨…9s\dr²TºõÇ—oD£3s¡0òC4˜MªuùŽ@j\tò¤8<ÅJSfœøûqS2øqÌ®ä2>éå™ßü[£LŒâ-}²4H„0+ 1;Q¹ä ›šîoƒÂâá§”ïü±³Nò.×eKP8\Â=V¡iýÀ´vÖO¤håR3R¾¿|gà0ˆÈ®ABðëçNK®ú ÒQŒ©\÷süd°DC+CLJõ^n1lh’’…noÌıiÝžÿøDW!VDMkgƒHFÓž 2à€.µ„fV¨I¹;ØgèÍI4/? Öžüiª®í•ZÒiš;Û‡¨÷_>fÌZ¯—y¡ß€€€@½©Ô`å{oªàে}ÎÌ5`®ÎòÒû/¶Üæ{xRr^…z±rrª[©{z\f?§µK¦ðá :볤ñü™3ò(ÕKJ_Ó³©¾ÝÀxÙ+ȰUc†*,ì6nÖÛàSR³©›Eßä$w2­û'ðorÙÿc¨ÿDz(sð{=8MÔ‘5øŒnß½ƒÇÏÚ%9…*+Aê`%˜Èæ¾ ?6š]±Õ²õž âiNG_˾b‰J§3)æñž:Ð =Ëîª7D< AC…Þèóž¯]ñZüṲ̈D»SQ–¨©ž_R/¾‰ÈQ“é²Ðr,"1úµ(“EÆ¥v^n!¶1x V÷­fE3aGäy9 × ßüÜØvsf^|”¸BŠErÕ¥Ôr†HÞ*€´"PRÛËå5yü˜‹"¨o¿Lü:.â¾µC°'óÿWѶc•¡=“¢ñН+ÅWãR—”ùLÙˆ~8|qKÇDêò¬$tMY„Õg ²Ó_ˆµ¼üƒÉ7mÚêðŠÍÓ}@ϺÕpŸ†Ì–ùTV€)a^rò[ì~¢=,Uø4 ÌTŒ%À,3Œ5òPˆ=ÜèRéX±úC"@¡ ´.ˆ?ª#ˆÆ¨‚º™>”"K°Mè20Yé¤\QÇ$ºéY|*ÖîeõÝgó<Äž­žBÉ™S0>ë-é®xW÷Ë©é=Ž ƒ…U•+Ê0ÑÛü3tZÙI|ÌM½Yü±þ|U~}æçÝ* ˆÀüf Uæ¢kBSŒíB›~·üìéÛ9F°9¼^4½jšPiîª"jtø[„ðdö?øD^×dã¸ÐwíôKŸƒ¾ÈoŠþÁ–ájÿIÄŽ2aKûuÝÀVØXU¹“v ß¼fL¯‘P£':Ý›¶_WókXÜî ) =¡“¡Wìœzèbô=3çºÛÜMÇO­%½ùEòivq¢‚[LHÝ*6Ž  tð LC qüæa·\c"jÿqª»9tO+’Õt&~šPó Yû'ˆ—˜ææå¿PòüIâ¹­ïA,÷qõ„Îï¯"H½]¼0ì…ê•z£Ãô¨Rj%£=š ÕE-8ú»hK&™(#¾Bf¼Ñ¸`X Ix#bS?PŠAV\Ecqi’Äu0½ìØ_¼W¤F¾jÐ>â*š›»øhßø:Mñåg@zâMçîÄ#˜c³ý=¸ôóV¯Ñ‚ýÕE?Ž?Fu!®»Â×0æm—Ø“TŸß¤±¿oã;(­‚Ƴ{*ß4x7{'?^°¶ø· ö}­â÷ÄTËYê¸,i쨷Kíß½Õ"(vˆË1O‚LÚéÄTAò´àлc¸îC2ü±L]ÂáÒÞï.î¾v AÉ­ª†KÚ¼]œg“´ÑæÈm %ðTi? TjoL‹9¤®¢ÞpLIøAØ$§¾µü±O ôâ ¹¿Ðµ¯}SÑÀ:¢k¦?–Â\½l6 ]Fýü pF"?ðµ ½ ÊÒ˘îkÖ~¸2c­J?ts½p³TgøË"©v`cdß[÷×t'ÜuióuÅD)5ßp‘ÕuÝø´°Z[ӼѺv)§“¥¢XÂÁ'Sâæ“7bhüIox2ÓÜÈ݂ݥ iglë‰ š$<¨êb-ߪã@Àq4ñØ¥/ü°ÓwŸªÀ÷áöí1Z·Ó k&ñ' L­¤„‡Ø¯íry£ËB%ߌ¨'ùõ?aÿQ ÏÚ{Ì#‹Üdøâ,›` Ô¬4rÌ}Cû}²¯iªðÎáz$NïÏâœ>´R«Þqs¢j¶:’ ¸JŸ2¨7“V4 5y·Œ• ò[ã‹ rÈUo™æb>8V€]ΆÏ?ðY,ò´ªs  '…¿°Woê©‚r€'PiJ± ÿut~KÎ6kUÞòµHÄq ¸èþ‰>àðr²ôÝ£ŽÑFq¯xcΔÛÂàuV…ö=Ä.ÌFØ6Rv˜ <®”äg©¬{½C÷~öcM<÷g2üIù‡M«D‰+m蜑—4–+g'YªÀýt5Óè’ša²©ƒºZØ>-‘?ò?åc.-ø¨”k„)Á¸3¤±øÂB”õ(D+£ƒ?«Îx`š«£çu„Ì«vÐ4+Ĭ”dܽ&’|›ÊÁÌBéB%h"¤Ó÷Ÿïµz ÑCß)Ö­(R}NœnrMöY=´æˆ÷}N´µýù4 8 , fºÑ}' ˆ½à GK‹¹µìaéÅ2«MÔÙ™.j–\X…‚ºÃÚƒQXBj¡ J¿ãá…uHÃ~ÜøhÞä¾.ÐÀvÎ)É~6¥¹@Ó X%ˆFË Ü´”4žF½xeTDâQ©;àü± |‹³psT²\&9ª]ƒWÇ÷*©Ä‘¼Ø ×'•6 ©”:Hç(¾«Ùö+pc±ZSs¼clXÆBZ•.S¡®$6 ¨'´ìpá œßÜëo,5&hoTtP,/-¤ÞügÿRhqÞê¸T -¶†œfïŠH?¹òÍ~¦l*§EôIHdEFrfû0,d¡|°3·)N=H¢C›«Þ‚ê'û„öÅ!ÖB='‡[dí)OÈÍÈ}QP Ü-ÔbfüÀŠeAÎñUo’(-`—«2Ž…a7‡¢)/>NÿãÞ0&õÖcÚ ÞWÇVRôhÙí§çœ¤™§qGá–Ìoý­šïü|­ƒh}»©Kìó’ö–T:¢gÒâqO‡Î8ú+Ð/±U_´$$•Enª!P¨×7-X:š•­VFü׳SŸgÖ|Ž&mHU0µ{¹è8`7u[B£G¾Ãù.`µ°:÷?b³ÕÀ¯¯1Ûsi^]cä"e„¬Ü·¬þŒ+"9QÊ'5ó½X¡©Ý„T›˜Øä!²ò¢tBÍú•· 8È6Ô>×q%ô´r @²Ž'î?|)½T@"fuâu¬UÝbñƒkf4ðØôÐïÇ:ôã)\)¿©(\»õ•°„Õ(ú3Òøy¿‹&]£îªrÕÑL$ÜÁS˜Ñr¸›Æk2ú¾KÈß½oÑ‹¾{5šŒ>³V À쥕â¿f`?Ž®É~ ßÉ6¯Y°‚¢kn5F)v'ü'cZÒu.ÃaGÙš«dg’ä06vJ§uÁ‰)¤&Ö [ñÀâ±:$ .‹(k%ÿ¥zv¦éÄÇâ2|ËÌ:Vª©ÙCä·›`®ÕnþµØBŠ^í¦xú8ì"Ã""ÓO%2¬01쌸’|s's–¸?Yµ®KˆüI_Ч.üu(B_FÜ^ϲ¹¯~0êõ¸Yçf¿añŠõë$z‚rEG‡yÅùÑ€‘çŸ6£€ÉÈ‚ïìsÙ΂t0×ßxðæŠ ¶ M! To^; `Q™O›¢¿å¬öÓ¯åyCˆ°¿íäíeAy»éÝS“5<²[$ ßp*Ó·s4Z†2én¹9.Ô 5Öiá—7Ž1fV 8I$’ÑGÕöa_=Gj Ôœ4>V(êˆö×S]•Òˆ ¹7õ7í`/[0â0ß;²ôk\os%ùøIóªzÍö<“þ®`bÁ™ü136iµÏ—íÚÌ`]\7¥p¾’!¨Ó.jÙ)nã…Ï]D÷èvƒUï… a¢Æ¸ØíÐýàçPsezÉ$T}˜è“Žc‚þ;.ôñìå*Ï1,³]¢#Ÿ“þ‘‘9e¨†ÆëÈ©+¡¶ éHÑ.:+Œáа |¦šÍÑoz½©ŠC˲œöÝGÐR£ØƒÂ|Ø a„–h˜êוHê6ÈÚè2x%Ü3[þ!á<‰^äp¹Î€Kyv8å¼}0Eý¸xcü½£#нœÜÔâoÌvø©Î0qqéšDÊI†îÄ^}«ÎiŸP„ì[â_š±güÙsûþpJÂ=ºãÕj¢O[c¥ÞФ‡K„f£Bö¹•Wo‰š=)°¸(u¨uò;oC_´Í™¹Vo#b4ÛÜË]#ýÚ¹¯šI_7b–€,p‘fr£COBì«H#ùÞôŒC~(Ž9é¼:L#æŽ^Oï56–pž5™ŠÅÙæiŠ(:¢Ö`ýù@jþ`ô㣊;/#öQÀp0ÖYá"ÔlÄ>t~¡4uš™uzŠ4Å›QÜ­ƒ1R¹7 Ž<û\ýÕ–IN9 À»`%¿ÆŽhkªè×ó×Vk—#Ìû­~‹´\ÿ ßHõžH3ÒΟ£p`8o«S9‰¡PüMXx¼Ë]ƒÕ]òߌ™€ÿ‚úÑKΈP]ÛÃ\÷Ðg%{â£Ý·ÍÜ0R0®­Œ/Ãu ”øóµ®›÷zÁô_‰Qt¤7#·S6±±ù4ÛîDËöºx(^@ÙT³ûç °|¬h#‰#·1µ• ¾žç@•½CÃ9¿þ8+¾_´ÕüúfϹ–|Õþ~ÈØ!’ÌqC«QÖ׉Ö5*Ï"1#¸IÓÕ/bQC êÎÝHÆ®ÆgÙ­§efN8]УՑRE‰ܵZ¶‡"9BwùÕVy»)N„~m7?AöÑ,$µª6RÊ ¬ë´ï‰¾Y¿—ÕÈ­©|ÝÖËV¦?ž/§«42M#Zâ:ž·ö°HüL˧a3L•¤É±Ø€!;ä)>ñмîÍAœº‚TC}Ú·æîAº-ôQ'æ·]á;AÓÿkŽï=q¸hK’Kaö¸Þ 4t°pÑRêZèM'÷©Í éù~¿ú…@ÚÍ®üj™Øùˆdo¸s¼ÅonËì*÷³®¦YnÌÑë µ§bÐú“@àX9Nv_¥!egZÿŽÇF<’‘Â93Š'oFÍ [[+‚0dc*k¡Â¡w’¶L(½<~‰N^ÜÆ àüB+\fuffFÃR{ÇöÆ”þ’¶è)?Xž;À©s…ÇÕ)—Bw« Ðb­Î&rÿº·£ã›u‰ü›¸Wî/ÐîŸÍLoRÕÅS¥*OKŽˆÂIàô×/PþD††I%Èìg)h ‰oMËq ?N¬RÛÀYF…ñ%‚ì'¶¨ ndßáüJÃr{TÂÇdGKWªŽOÉÏ}‹ÃM¨79êC»ÏÃ0ë¢ËÒri¬5’b ŸG zÍbÈ™J7Ë~0F×h¤ÞZí+"qòs†ô²{c+ízjÜ®B_×Ü”‡`»!'Wt=Hx\ù‘Ãôq¤`þ±ÛÕi‚hB<7³Ò @æH¶Ú‚Kâ™wÛñ°32 Õõ€yü4òP’ÉË‘%ÿóÕÑœ"[V((î©’ŒM¹¬# Sµ›FI0š>µ"˵¶B((¢d~ó¾ç_Qx+_Á¶/›ÜU¢+=ìE–œýýb0˜´(´ß ;ë¡5p~Ôð‹Lp5Q•³éD¡8­è¯ÄÕûر›¸3î'§ðÖ ú®¹ >£©ìYödá‡üŠÂ¶jhÉî[šj¼Ö?Ô~–׋¯† ¡°ú?òÙ+çmE±Öæ* ÑÐΙB·îƒ^ËØþ{0•<¥®/sêtÝd°)ìõÂ1¦ðöPVçü±âеyG¢ M»ÁÝ)®cz¤Ìÿ#TRŸÉ»¬µÕ.ìÃ9náúœíyT _t%"š$(d ÀÛ‘•y+E1ì¶½‡ñà/S–%@®=…pȃ¸…•„  i +ë"ºW–VÔ½—ê­~j׃îo±JŽjY€ÁI—IÇÍ1”ŸÉ€vÄÒv¸¼˜¹ì;±O°ùQÚ¸ýi+µ‚*y}Ÿá !Üm¹¨4ã Çš‚ ²wïì±/ìhîýÇ1ó¿‡b®3YC6z’ýí(ˆY4âèdÝx#r˜ÎÉ-°¥h0yðÓü/0‚'Ñ›ex@ñªÇZ }ë^Éak­ÊPæÞÃ*ËkÃ9&â-&uÇD¬Äùæk/YõC†÷=€ 7z¡5z´§³Ú—ô(‚$Ìoζ<²ÂJMˆ2Í–å|rùè.Ƴ̕ªƒHöûÁqgrxÕDJ±‹Ý9x³øÛGÁZj1ªj~ï@(î¡Ù^2šxYÿ<§tßK¿‘.¥jË6ñô óTÖŒH”z!GP<Íjˆ8˜4 Y&W\±öšåF¶h‘úÏ ­¢Ìuœ9^ÇöÃsDo­÷V.ØQA‰Ô“@½üI÷sÙpJ:¥%G¡|è¤Â+lv}i¾5O,8h« þ-…dh C½4y3Y!S.+jC6g–G@úõÔ½¼—Ž8¼±*KȦ­EÑ9”zŠbnͤzëãH9õo^ˆ [—ßàöl;‹ºMó^jHn¹Ë.þ²Úžy³ Ï*$ö&F²hÈX`Â’¦æTåÞö΄ÓÚË7»Ž{.µ¬ýw˜“ºeô.œ.TÓŒ¦©î—ãc±˜†µ z— ®Á«xGa<Ñ—B­^î·ÒsŒ^&ºUðkYxÙ‘i’ñüJ‰7=ì)ª`;ðXúvömöḣ86»Zb0› ¦Êy؈UµŽ$,NÛÕúõK0…ݶ åÅEÑLgFŸÓ.) /£€nG>Bþ„®<-Úò.®âYÎÏ™}†¾HÖ0RëQÖY©Ëå/ýÇzþ8‚ûs^ókQâ·5›2¨7‡¢Šþ†ß{ÿjÄ-¿=ù”5…È5 ˜&ë5¢HMÉžÈL‚X 1%üǽÖâŽ5€ÿÜdýžãªª…ö|¼œ¸Ž¸Ð÷¦HtžcaÀ¿ìC ÑFn§´¤01šìŒ'M+q£Øþ„º{œRfÃ&xöÇ®+Ë ú]Òª€ö¡äåÂÆ±ãÜœµ6w`ÙGr¥“䕽¡úsF*#ZÕy _a۫ϼ-ªÇE¤ŸØ‰soc ‘j|$VÆ1ø„‰??^¸ék…—ûzniމ?iŒ© Ù3;Ãåc\×lúLùî"l/©^å[>WÆ÷Û ³òGÀvƒ‹ãØLÊ´C µP¶Ïb×Y}vŠXyI"žï¼º"I‰¯¢ü,І#Kë>?¢ YåÛÔ¼ìcï¼L Dç&ÍÌmj¥rÿ#–÷HÞ§œ0Â~,n–9vî ‘P¹·¾O\£qbÌ[¬Dó5y£( °Œýî7ñ9¯G,5©Ë›µ:HÃæe'\y–‘ˆÓËÅ>Ž#eÁNŽm°e{†—gGµ0«zZgH•¢÷pÖËÆF‘=ÅÇ‹Ó܆]ðüM”%{‘’õÛËo¯P~%$*¼Kzjg!û÷Îù¹5— s<ú£ 6à£Ä²‚âáÛÇnFYZÉ€®©ãÇÞv%"tg¾öø‹‡$½69u÷®èYmåÐÃ×~ôY£ßƒúv>Öêª>°¥È$®2K¾kñ-ÌÅ>ió<´úI™”¦¨åÒò,’¥á!Goå+îŸkjʨBUr»FFß ûèfASJ@ËCJø‘ƒ‰é,Ê#Œ¢lf/ÚÕé¢Ö¡4Ågò¼ŸNV±Õ—TÌ6+Ê ¦¼K“Òmv&,áûfaAB/pĦáüL¹mÐò-,—*ªÑhfÚ­'êjªñ½mß·N»j!^o‚‡Íá0/&º‘µâ8轌vaPC«Ó”µuðÑYÒgÐAVAË’‰\ó:QUÞ“>á$$2Å—uµžx𠦧²ý8f(’.?àcÜp•Ô? ›híãÅP»„8œƒËs^ý€»X¾Œy¬°ÿxZÑÏ%j g°¾Óø–ó››n"Æou*ý­¦£ºN³ðúüñÔ™~ÔŠ,÷}ý4ɳí`ªÎ¯.­"Åyo\†à »Å±ä£t79…hˆKª>P+§ ŸS6»Äà¿|o¥zRéœè£Ë\+Hÿü÷‘k†«\çÖº6Hà@‰\°¶‡Êü^Ñ4Û–YT­(ØÚüØ™fÁgã8(Ÿ°Ê5 R‡^½—×?ƒá»ë¥/ÕIÐÊ,=YM—2[66>n¢`U³é†wºy¹qêàœZwIµNb—¹…ÅzM!ãµæý ©Ç6PAï¿ äÌÅA¢=ó²}•V~}PAû¬bÒEdŽö.¤°ó:m¥­ûÿMs¯{t*üL͸q%‚yÆÏÆ~¹@3ç"‘DDýï›”'cIÏ,Ò1#øÖºé— Â>6>ŸZ±Ô¸u²ÞȨ¥²aªÅ‚^øÆMå;½bHöue,C.ù¾¡›ˆ¨§¦§—(Á;}Y_2ßpÄ­A×gÂÊÌ·p‚:ØÊ ,6Òðßò~µ„×f/X£qsÃ÷±x¯¿õ6Ì~¿gœH¥A'ð~’ûøÒºë "ÛGõï²¹èôyR²™ÛÏÛÂûp9Ÿ~äï߃(ɲÇmødä56kqZ-š¸·¦Œ/ü5+|CçSî{Ž–®Ãñ%-q>ÿvæyÈ1mœÜð¡§ã`í êONÜ=ÛáË8õº·5tµŸ¤Ö"2BܦtïR'àߧט ÷I2$È1—1ÚÀŹhA<­:¡Æ+ÀBòÓr±é/.Wcf#}\}@™ÁW`¦)Âì¦Ë¶Y›ü Þ.{ »XÉ;™„(´ÃH±:g¹’ð*_µÅ(e爴e´Ÿç,†ºA:%Ä´Ô:ÇEC SÁ8VO’£\å¬-`Gº¶ºÚ[vKNIN{ É™üIá§M©ÑÀÿX(ÈÍR«Y4xg=ycgxs Á,œÃÜ9éµ,ûþeÔ ºO^Ú…¥ÌPîØÞL>ü.n–ãØ¬!§¿G‘§”ž%kºòÕqé-ôD1gpƘX&¨!Û$dÁTˆ ›o‰/ÅIî-Í=¡ª{VŒÄVšüØ><#`·þàhÒA_íï)þöEÙÊO·€.– ñ⎔•﹕£’m¥A1jï,ª'g]ŠiW/ù‰Ê ï@É{wéëcÌÆ-’î¥vÉ"?ø_€üÙ¾&W‘ù#g™Pç‹—³ÑþqAÉ û-Ž^lÃ{QùÎÜG»"tÑl¢g€„§iõ1öx&{µÞ«ódzcùYëp„–++Óù &«fqA^k"#“hí=VJ4]Gµ¨mY³ÿ }¤KÈikÄ ânÖÑȨ[Êm›Z|hÒ»€˜µ†sVf u`u,xaÁŠw>ñžÜ,ujÆ›yÞÖÒ/”¨$‰ËgÍSf`£xÖMÈ×K¶{sËé¹ ³$KƒzK©£ ÷§óË ©_Ç@‘õ6G0?°apF*¡*ŽƒÝq53c´„‡QG+*Jü|¯}ä¾ÁÓµszíB?;Ä\ïh|ùjꆠ)Ó%3ãFˆáìƒwÎ+©.QK©s ~v(?v’r"+kŸD=¾ÓÛ²6ʦךWiÍuB3…5Q‚Ó7„—TÔi«Cd#`ê9”—¼lÑñS#U'>¡©ZßÖrŠïÖ˜hãÇ`bÂ5'ÁŽí©£¾dW›KýÚÜyKO6#dWø;‚diúy Â¥Ë ¢~_TÂíþNÝvH¼õ›Ü§Ç>x ±ž öÁÂõ<¶C{UMàÌ$À÷f²ïë<ŽœfõÍ^žŠÚ%@¦¾6Ò4Îiá}¬æñn7öùu¼¦ŸbtV¨ø d1~â2*P÷÷2JÜ =»\áãí<‹2å$,i¡°CºÑðpDP/{—J^)U îªï™§?“u#nÿêû¡xÇ΋)½g´æIÛxNð‘îìÍìO Š×$Àͧo=t ·ÂÏh™Suƒ¡„æ³®J/qçªñå3ã¿O 23M1X’àxˆÅO{Òƒ_Û|%RŠô%”¯Uä@¢ž· qÕ£+ާ= ÖQç‚“µgÐü}bÅÍ–».‡ô¤hvoîJµe6ñ©Û”ÑCH,÷Ó[wéò9Ö0H«»?2î¥wø§—À» ÂYÏpLÅ•š{³[Ñ? |M>K–ù„Þ”èIü„âìÒ‘d²h<=öÀ¬n`“ˆÌI-kÌÍæŠÚD¨se.QG «‚9.z¼úXÇéCü/¨Yí(máÂXdÌÎÙuxó uLÃ"rßzU-ŸsW-Ÿåp§ ÷~…ëX)„»Y£Ì ÛB …?ÚÚ™ÕÔ/U"‰‘†Æ†L¿ë§nj‡ý,¤‚™¨ÍìEß×–/ʨpÓg!Ëàgº{J÷Bå$"‰IKÏ6Œ{ž=?…¨ò“ã´‹ ¢¥?•„ óB`¯©ç’aò/Ú·I—ü.Å\:~ÆKØ?3K2R–øÕxó–qU4½Oy¯#Ýù´áa*†|y:,íòÃMU>í†å³¼_“µ©µ7én®ßÁ<šª$©ížw»ýØ7ZKM¨Å—cg«EùªÓ}Ú~çIo¸^P§qæ_tììÜÐ?¨xaíÞ‰ã-sWÖBúçåžã#¡uZ®Wµ¨T§X8È_8¹®E-Z÷R¶ß@8m Ã0 Ü üM²6­âös º€{Kû„0Ì ¸b0tÍËKÒ_§Gy£ñÀ0_Fseg­ÿcsrŒÔ®gÚâía­#ö0óüëæ$xëek‹²{]dPk@ײQMžoάäÕ±@—q» 3¡ xrœ&–íJö º´ðUp½<Ûò¯éÕE¤5tÆÔ‚!M­8Èa1Í@ÝažŒ( Ã˰äÕ¦ýÖâ?j>¢MJÑ ºÿ°‘Òã0A {:Þ¶Ç×ùo„„Öê&å©mëÓã‘èä’”˜ö±ðŠ11ãÑüLówNÿoÂÎ;¸÷TP{`{gUU›ÄR£f-†edwñm]Õ«pÚÀˆnÚü;È-„<9G­Åœ{R»úØBŒ"ÓO£,>dNÐjܵ½•³Þ¥Å¶_âÿ(:2”Ÿ~ qùÁÂ;K6—¢SÐw1¥0Í4€eSWQ®v~.ì³è£B¿ø¬ÇÀùïÅ¥У 7ÞÍ,ÉúEÇÅí1­ý סr]½î¥gd 'c90!(—¯aVGËóöc܈1ÁQß‘"¥å s½¼ hŽÔC„vå*úzx ~ýÛ±tŽ@v/ƒÌ‰w•îÝ~?Õbüd9[Ûµè'›òÑŠÙa9…k’),ÉÈa)5±ªü5n¦LV3µõÑý¨ø¹ƒ5 ‚4"odúÐÜk?¸!ÂVU Q•Ëli¡u I_=ì¢wÄ[f ß>‹\rNØœê °@×z~4]œQŠ4VÛXÞ‚¯ø&Q±Yvïîy…¯©ØŽžVé ¢qOÛ±œXÆú•Ã]1ÀJ•}Óc…èoß>tb½øTåìZOÂLßçC[|‹<®ÿb‚v58ÿl¼-h¤HÞxO˜Kaˆ‚¼«•;T«Êòù8Ï|7£Ø3ŽÅ4(Õîе^© íöÀº‘MŸîëjc÷ü|®¬Ì'ª1“åÄû®f5u¡Á>äJ|n­÷éaL¼TËÃu¸°‹<¼Ù#0!Uýú:ÏVMTiaw}pÉ3´”t¬^ÕÃ: *Nïßž`ä3¶ç’&çëˆéÕSþ»˜ì?–—2Ž@ë®2k5^Òë¸FÛ;ÀßwB1¯¿s 3ø;à\ qr"gp½lÏѽ^Lú 5!¦m;ÄÞ“õÚç.Ý@H-™Šô‚3Íkµ’uïS="Œ€¢¯H’‡ùŒ8U}l{É7ÇcŽt’_”¸Î†ü»·ÐÜú»"nã‰î‰±)ôèB1Ó¼ª‘øF2ëQ!Õt0ÂÇþ†¢z=–¶·MªpˆytpÓš!Ïà[…2•ë|ôޤrjJîÞÇ~@®\ÅVQßÌé5ÍÇi—þëê3óKN$>]OÑïÔ, O¡ÏÏì,,]ÿÔàfò·D~uÒ!–.Þú¹À!cÓiBV÷‰îâðµ–‹Ú‡4âuü­sÒ:?€fŸ¡\söŽ=pLÂ/¼ôÆ$Oj*S?etŽdAÀž aåO-:ªeá°E2Œh,g Õ¾ïµÐf/¡ŸrÖ…ä7Ã\tÒ ÷¸)ÒKwe‰ö=üS3öü}[cߌ?ÃÞ÷Êö=½^G:vIàI0‹jA=Ù•u®³%µ¡Áfº‹ÕªrƒÒæÇ~¯"A 8¨ÒÓ’Z-5¹Ç6X^íÆÄ·ï³û P\joð#Fˆ¥è¤%ÚŠ Yû×ÐôGfEï03•ãﰦ텹˜&9Lq"°IçMe‹@&Î\ì`}èÖ¡Èw¯ŠHÏßAÄ][úÀFÓºžäWKó¥Å_Ì.“Jç¢#•‰¥,ð ð\’!ÓBè1™¸“¤CTi)$!%óç¦k¾€…Ñ:]6Æ1ó7@#Ù$è"Ê¡ÛBµ$ߌžvrYVkh¯‡àäˆø|ôÁÙôq²Ç<¾”ó=³Ã¨B ÷\|Ý¡Í)é9ìÀÇ ™Õ“}”+VAŠ,që½ßÝÌ>äT™íÄŸ_$L¡O³À}wð9 9+fë;÷ßIÔ0À"vØ¡ƒAåtTÊó±û°^VUëv ¡Ýãfìí®Ä!®ÙZ°Z»´¿ÖgÀnþG6 ºcKÏG k.ß/¹`Ýz mN“­màL3lýǾ¯EG‘p<Ñ*¨ШR¯@J4IŽx{Ej¤…æd&QÀ•E88¬{:ö®‰À0Va/Ú€ÄfÔ_ì†ýiܭʃÁ™€´3σS¬3Dsöè~aÎniæÑÿÆ÷4ãŸWÒ$Ò™ŽãºšD'"z (ÁIÇ*yê(A‘"mY¯Oy˜UáÑo7v!– ¸Åõ½±µÕcp®øQüM2Ñb£vEæWÛI9é‚î ሪwË*͇©‚c—ý×–”Éj^ªqy¹HFSZ;ååvØÝãí6°G-¤F %lj˜Rø¥âù«½L¡>ežs›/×?öq¼BBžÌ¶w  51XPÞwº#ôkà¨ûôQå’QçéËП Aýû:!N#ð*6ZRÜ<8p(ÁMH{´¹¤ÕؼÊbî´Ïr6Ì2¦ÂDË^7 ù•®L‡€±Þ›8ŸÁEŒ…£ùYù(â¤5?û÷Fr¶m‚žräPenÃï›Ï{³=Pü1Ÿ¡âôW¸NùaÅ*éåk#i!å>ÿEÊÜ|ݾJÛb?|§Xaš[=)ëå)¢ï&µ^Š­¼ŸG£¯üG½ËØ·°6{ˆQ~J*¢¼½+Îe<ð|o°‘ÕöêYÿ*Z`ÚCr œ cHá"H‘´xâç\Ò®‚“ŠW…þhÑ:]<ªK? öZ¯ˆî¯¶Lïf¥Ô ’eÛ!y@VÐTÝ-?FD”¶"°°¿Ç¦v¡o%õÓï —/‘Ïáõá÷&(ΦÕ{#£srâ-¼D |{½‘"o•еì Z9HëYê;+ïfÎ×ß¿L"Yc»Øsµ vÜ£r¯ïEYë®WÞc@g¦µ2f¤BµT>Ð{0¼3!6 „Ðq JçRCè¹·-ºoý^‚0±ÛàÈ5å2Ð>Ã;-;æM¦/„炾aËÑü®ÊĬ¬Jò˜5ð`·vXN‘-!™âm˜·03¹á»n£ùtP*€fô<QDÆ&C鳨¡¡!q3ÀÁèQ>Rä.!(Ä¢îÏÀÀ=¥ï¯’ysæëéC6%ç?ä$Hpö'}½™7*áâÑ8q`JŠëó|ó‘§g‹ƒ?sŽ\Z† œCƒTu¢#Þ^Jìç%¾pNÊ8A×Þœ†BÕíZ¹ë"Lo_1Áë/–'p´õÅ€ë`b¼_3¯`ïVDâW4¦ˆø/–{¼ádŽáÝ÷ΨpGÕÂJ°œ.õ¬¡—.ù®ý˜|.`ˆdöJÊ‚ü®Àà#Æ[†øá|skà“Î QU…|§±r³ Ë”ò>Üô”ãCÆÂ+éåeš”`ãKóû¦¬zx“$’ÑT“$Ä/õ&+kåHFÿ§¹Ü–X§-ÔÉÅ}è†>ò”J/.Ì5'ÊJ—­ò8ÍÎõ/Ù®¥ÂÝ[íô‚óª‰Ö¸ÈµºÆ¤~4åØõ™(7ïVÔ-ädq[G øöýC0›¬«Mxû² ì4y$%[}Ž˜ü ±cÓë;w"!GÓ‚‚:7PwîÑüleÜ&´"—cƒæù‘˜‹C?h“”˜inVÝ’¦—ƒí5²«ê ·²^I[ˆCøÚ‰X<‚ü®x%o?8&øTY[µ3û‚Xy¶$j¯y[¾–lfÀ‰tHxÛ\†‹O·_(mNOåºïy“k yEßhóJ%»î»ù›âlé¡G™Œ?©Ð¯â-ÝçzÄâ)†˜ò8Û¼,šn¸µ>r:O!7`{š9Ná’ $4 ©ß6Ñ”³vLÙVÙb[JI÷©É¸E‡×Ò( mˆ?Fžx¹°²¿±#Ó°o¯¡LË„2 &4ˆ™ð®Êq_>ÈK””Rå²Q}q¤wwˆG!Ri…'áÕ9ÍNKž%••ò¬Öç Ü8Ç’çvgL{vmì¬DûýÍSÁwŠ Æ}0X SY¨?ð4ÈK½™"\ÆÚp§°?Q2)5<ïªjJIªÞ•*˜<+ÄáÚ5R®0=K–©Õyº«ßbõCšU‘Ö-‡¥uõ¥k#íŽØ· õ/Yñþüä /ÑþvƒÒå„3U&~Àë3=ññ5òúü6YAaôÂPt[f2ÿ™Ú8Œêþ[¨kÖéj«I¸Õ z‡ªÂÆ(õ뙡ÿáDÛ’O# õÚô³sëöŽÌänQÙ},9n=§Ì„GÀÅÆlH¹´¦%á›NwÎi,¬ìˆ=™:óM‹»Ìu]0øô”„æ /˜‰Ï"¢&˜ý…Óx‡¶÷ƒûiNíF¥Z¤Ï,œ¡IÔ\3aæ¶å´Pÿ}î×ÇceÇYw’¾‘X’U¤ñ„Æ»å²,î–A5eÖ¢™˜d¬{ÚÙ‚ôM™#ËñƒÐšä,³¦øI9…Αw+}=ó¤Ûö–üLÙ4à§¹Ñ[êGÜž¤GÐÎ1Uêáh•°ò¾ )Y“O²Tã:s/T Uês!9sÓ4ò(“Øð@žtZöhr‘g öÚå\Òþ~Á"Áý ›ã¬NÆÉ=qÞoÌ¥G3ÕS†ŒÖ›y¹;P–·fiŠ‚êŒH»â$“…OàjuÝá ã6Áñ]Á‹6Ìb½Óï‘6Ò\ÚtSYÁ·-òk&ZèÛözŒÃPÆH³êß.×f»ìÆN³tË-þþÞó&–†‰£äœ'¢ôc1Körö‚Ýb§và–«IŠÞ‚²"œWNüM)ïηJo[1½qR^T˜lÔÖËo ß$(Xy޽‰œ‘¼Ùíd‘Ôtá´Õ²R×:Íüëp±#8óSäŠOëhVØdºÈÐ+:/Ê^ Zïñ’•¬0鸱‡ä”ªÙQxûÕ¦X }›˜Ì_h/Üò£O6¸¨Àã"?`,~ô®| võÅ> ªÞÎýýì«^µ>ÄßR— 2ÁcÜ%ÓÂ¥8@&Þ7ê'ÍîÑ…`ˆ˜j™Àí” ^kD-ºÙ…µè'ü5‘1aË>ÐÝ¡ùÈ´l ,ЩÅ|¯Lî´tv@ÇBü{þvKWá*ùOE×ÖqÇXÍÑ5oXÂ&±=˜b˜”É{yÕ…)þ釪m¾ÜëíCR[¿Èÿ”›:! Œ” Înp ”*%æ>ÇÅ£´ð¡Z-¨æšºq¢Øƒ^£ïÖUV<€x‹ SOÖMÇ|“R´ G -ë¥EÇË‘ªïù¯ƒ·% è$4 …§ÎÛ‰Krˆ +;Èøè·Êã¤äý™MjÃ@¾R_ɽD×,䘄‚ƒ)•“"h‚æç+ÀÜ(ïÀ>|ØÃ9ï î#·ÇamrºRuZc‘]Êr®üôœpþµVa¯Ë9ú.jÏÏ^06TŽßÓNU5^ýÐ4w|ß×â¬÷`®Iš±õßJ66ƒ0p–jøGôpËS«mäJ oÄŒwBòšÿÏ"Ó1À`|JjçüĪ )‚ɨlŽY{³u.Ø|[ŒBº€xûAöåL+órW%?u³ÎñÙ–1À¬š;Ý„b× Pˆ‰ æü÷½•®\?ñ>µû§ÿŠ‚Ìâ˜Q=¾)í:ÃWMÿéò+¦¶¬óCo…KÆ-åJKp­Q¢ÊײNKmÑÐ.J/¡ÌT*qnota¥,t¾1Fzw0½ü}a€wÒìn^dŸRa–RhÃi‹%’I¤îyŒE§µ|tcU_h7$¸¯ƒZ}«öð[oéšÈ­çc˜Ú ÆË×ùðø wŠ®aAN­¾~QVˆæÞ ºJâ˜Ù±g*vúÇa Ç{D±I›»3•Ññ Ï|¼o±ÌüQÃ@Ê‘T‰¯ð°íBÖFóß3’Š«#ÍvÂÇJµ}€àï ‘(’ß…[—­Œ+ê}»Õ‡™!˜ò„7¢Å$[ÉʹRA IüD’7÷¤ö“ƒ¯ ˜š­–K,!³O¤&,'e(ÔîÃv·Éiÿ٬Τ°Ñúªº;jS„è€g|½W¾«b¼»œ£ïÞ4€zÇâ(2< ðæßþÄbÍ1ýî@ó™~7• Šˆ/‡ƒ”2 ÷¤Þ÷ü?ïÖ„p/EÃèa6>cEé`V”cY#¢15ý/ð¢æÂô±©#x§^ÈPVšÛáÔgyMüüLÓ®¹g åv Qµ@Ìu_üxtºU–tßax4ù$c@Fèfþ¿Ä€‘-2yàzU¬b±BX­TÆÞwˆy¤Áš„‰±F-·D£,DE­4ÆW«]š\—ˆlÁIJ.G‚”dsÑw5íVWiÅZÁŠ»Ù\|ú{è›1¼eÏѲ¤ù!j`Ržü¿¶¼:EÒ9 Ã™29%Øb†VP 0±ÇÅ0°¹Eòü¾u‚W°ßêÏ€]0}؉ G¦¥ÐмœopüMt[ èÝ?5j.øcë¼N´±BÁKÿéç+èfÀÕñ…^Qr@þ1íêû¶`wnn„ ˯Ko8PÒI·Ò*Np+ËéåzÈš›½.mŸä4¾ˆÊI[Å@ )ÕШ÷®AÀØ!™Ó žÖKX½øiñŠB¤ÿE5mòïnFµZ¦õW„JF¸ŠœkÔ+dD(áLïhK_R9á'ž"M]\¾G1½‘3^Büï¶KñtúIØHÄ sÆ }³ýh±‘ BE^âðÛj«8›½Xö§ü.f}ú¶]⿊­©¿&>GزR>³'+L? VÇð À‹¯´>B‘]± :‡¾T±„êOZÒ!pPÕõØtÎnæu;Ö?ˆ.»¦ÅäWâ2íZ»ò—ÉY¯-U‚?;Hw©¦Í/(˜2…9ÈÔžø¸”ý×*=°~¯¯ëŽž¼#Îb1¦ ×õÚ…¨\çóǬ0…6´Á¥f¡AÚZ˜Qaìî„&f®©åÁΚAm)¯Pn닦Aõµ[°„3"¤dû=2‰ûüMŠ@B”bUGP0Ž_)Õ”Ò†ÿ.3Cí‰Ãê,gê `÷v6_òpxqî[(:ZSÝËR¾G‚´rìÐgZ(ëyãW܇Ìú í[!°]e\4‰mm€0y³‘U„$¥F‹yÙ1yÛ ›€‘ÙàF4ÄÒÖm çß¹EB³ìÑ.â‰?ýj=kŠKŸøÄ01ŽÛôÎJv³¥aóŽ~Þáò½ÄÛÓ‹}§PNu‡g[ ³¦u<êOèf›—!À™NL΃+ý˜Oÿ“Ý]ùTyè­Âüï5©µ@Ùû^”ZXf—d¿þ’_ôëuu©ÝÆÈð{$r¡§ÐqçDíÔÊÃkpHù7œ9£¸®ÃAyf>ˆë-¸Û«ÿlÈ]t&Y[ñ³Š „*¶g†ÈÒ×hh*9GÉ{XÀîDVÅ ,WšÕ“ ˹‰4r§vn´oËÉ2YT’•±ááå v™P÷ÒRD['ÝûC©A«…ôÒò7¹ æPs­ÀφіÙEpŸê™Ç–cr€ðîñŠüÕ¢Å1Ž&×Åi¾´ÝÓõ¸?ŸRwü)@ W\ôŒüL¨àGzVaµUAÇ8k(Vƒ­”²ÐŽŒºÝ®æðùÛe«E$U°8ƒÔÄ$èV‘Mã7ˆ’ýŠpƒLÂàf%^˦` *ºÃRiÌ•Ež°(ñ'/þ4ÁKŒu[Ä bb½x¨]&m°hT>í·ŽüœØòÓ%î/ˆóˆe˜€&÷ìiÙÐÚ5¢ì 嵉E³ w4.¥›ÅYB sƒkR‘ çò°°9{æñ Èšyߣê8-l£›€<§Tâ¼ì|ñ¡,ù¾´YuÃkö¨nÑGŠœyF˂Ă&ùž–ddüLäm''f aÃ" }Ù©ïâ{+<Å~­Õi,,‚yDgs2ÜT`'l©Mµ"á…„#éµ™)ô12Îv “™“OÿíR9µŽ6GUÚê÷+c¶ë3!|º2rYaÒ˜±‚Zˆ9VÙSï@u¡ùëgbS¯EÖNÝ^´Î¹ýKÖwZ6=þðozáœçÕgª2C÷“xéÀ°¼(jñ|¡ Î)_`úAuÚ;c¬|Üåv@0ˆòÛ¥ËVW8\3ÙìÆMžFNÑèë!’¢ŒõrçP 8“™nÞA5X¸bÿZÙü|·qÕm?Ñ„ò;Zë€~j³w©"MœÕ²&a_}ûæH™Ž˜NûÛ7õíâ™&Ú¥PUóµƒ.ê9€p‚œ`Ö>`“ÏÚ7ƒÒ,|-ˆg&k¾JŠ@éŽD`õ›æXñŠ´óÖmE®Î7Õåð‰ÒœZUïäæ"Œhü\ @t «zð4ÜÝjÃÞÿ\‰â]I_gL#"&à`«[ FŸ’¹äb\‚OuíLx_d~þÞèèÇ`»¼¨C×™2€šÍáìá´r…ýùzŠ“Âhœ2Ôi±p­I—ðÅÆ¦ž¹U}Qmñ¤ÀÀâôÛŒ:/ÈCþ@6 y¸Ý*Èã¤ç8_» ôUzÑY·i‚›É]šäõy5äRžè¡p´öq†/$%ÝðË6[Ä3¢mE:2MQÍõÏ(ÛÃðz¬ÀÃS­€)0ùŒg»j¾=ø>4íÁ&Ñ&J¥uáoéTŠßaiv–EŒÖã©uívÈC…sS÷Ó8ZDãü6c¸TbQU:¡B!¶°½ñߨˆ·{´ýç<–‚œ÷Ü>àAˆüû…rÐÏ5E?”ö4°R‹7îa$é„É¡Z±r ¡v¸צBžäïýH3A”SõËeì^²ÁÁFÔLãÁIÚ–ÆÏZ>Z’žß÷>Öyük7õ¼’ãÒ3‘òÓ¡Ñ“â౟:*fY¬.bT‰ÜÏò3 Så1ïKfÝõ%r“ßmHŽaùN%Úþ*YFr¬Ú(ò¯a±"– k €j7cª­É¿AÔ‘ú•´”ÎÂ"hŸÓm„+È+Öî'¯ÆIk ï¤hð2çS°Êz²´U´ ݽÚ^ÛLªì•¿Bñå1‘Øçÿ®ü Õ°Ó! Í$+h6ƒ.Æ•Ã!Ãð ?<ωë§4×G¥ÞU’"çÞŸ²/(„>xž!†äÙW¦®†ËáYë5—žç¡R‘cžýf÷baÆìܲÆÅÎÉ;_’úÃ}‰ŒfìȤÏÁ‘=dNóc§1,³‚áwX>¹5}+§¸2 JÞüLª&úºò¸Aƒ¨æe°ÞÀd>¶\©Î!ä±äª’…õ›œ—Á7ñ±Ý46©•¿}¿Ù÷®oduõÚ¢GŠIfx}›:4 Ñ Ï©ˆÖ¿æZw²aLH›îR ‹tj–جÿaç©ÀR5ÛÇ!žLø–SKQ»màXü‘qm .•¨¥Õ6¨ÅIâë娫ƒQA/Û»ÛüL¾\ü'YÁÉK¿¾CTXä$ÊB—íAóTÄtœ6Û&bÚ}«çŒPõâƒ4W8BIãM9ÈLUá·¤Ê9;ßžZ®8~XÝ‹ûW Ôo7—z–BÓEÍaŸEÞJ­û}ÀÆ^¥Kú<Äì‹§†HWd&Á¤ÈtR¿¦ kÊO—.Ë¡Ì"#]æ®]89²l¸§0Ïk7c3¯'ˆÐ>u›íwûôbi²WØ*±ðá¹°’Ö÷˜ƒ½!°ýN¹WÈ=/¨4”ž ./¢0'Í{ºn’°Ë>{„.Uü1‘!öF¦ýæ4¤·çˆÔÓŒÇ*½¹næÛI"ù\Ž]JKé_3øAŸžTigÉs~0¿Ô·‚›CÅÍI—˜@Ðiéô±Âf”j®uMŠÕÎ-éq~%¸nºŒl)ÆÀ‡§sÍõ Ÿ…(ÂpÉs¯õ,²ßÚê¿”ýo®õÐüW_0ÆzÃY™yÞíDƒ•b,`Ä5%«7§ÔÖß~tÝÊ@”Lj>Üžä#4³-”g™vÛØ¸ Á(ÞˆRá´×YšKÕŸä86ˆ²öçUåÿ¢‘Ǿy<3®6}Ð,"TZp•µ\It&‘ÌÛ{üM.W™!†ñÖƒ¥b1úø_#u°2A{szûý 7Ñ`‡ÞÚ9Ò„Qj>{-VðGPšÕ‘ЉZ>^6̶‚Œƒì ïFž´d,ñÏ=4J:µƒþi*Í)²3oÃG`^õà ×p¶/7žôÙÜÇDŽÙy© -¹EöÇôH†¹Öâ{wý„°ñriÅGõ§wRU},kÜ뺢pÒ@>SHÁ0?|ÄCО›ßì=!Ì춃6h¹&ÝEèýõÿ³/Î:¢&« BåLdÈT4ðPdÚÄÞ/¶»€ÑÔüLÇàãÇß!Mz¡9Q±cñaÑîU@½riÀÕx3‡=–ˆ•šè,$6èµG¤¨0 Ë–E°$:3k¬(% ùœoî/Ðå§ØšHšl‡7‘™‚˜õŸ\ÈͺžìÚ#[Y ?eNÖÓŦìŒWÀª0àß;GÛž ¶â»¡ VR8ñÐÈTàjç@ÐȲ  ÚØŒé-ºBMVØJ­/¾; m3­ž ísÓP¥³ì‚º^±ÄIésaOéÉ>«^C%B¦eE~+oÂÛ5¥ããU=â-fT!òSÓ»uü5 Ò!:ÁK\oÏtnÚ®=Gþö™`Ul¿‹"¦¢Â³‚¢á|%@âÊ1äI+Ö+A-”fR¾ r:‹ˆû7l ¨‘íüØpeµà/™9ÆÁ¸r78×-wÀ·Þ‚[ƒZ›x©Î%lÊ ~h•-—k‹¢+]\¬Ì>‘"dŒCiÈ[ ψæã×åϹ©wÙ¨‚•B]çóüIˆrBÛ\_%è)“DJÁHXE}]æ&Éöø7c“ ty„ïêÌbŒ¦çü1ë¶ËÙGe°6ðÚã¾á¢ç¢‡ÆxtS'ðyÏ@zÎße`L3×%Þݹ^J\Úæ°jV¡Xœë¹Eç&ÏÈz¬-€¤Ü —B½â÷ßø:@^Ö[nCÚSɧ8\0j¬‡L4™ÏQ]Uü]U©˜¨Çlò¢ýWLås]é@ ²3I`sôÝ]nèÕØ°VËHˆ¸tØòˆ°éAÖYû-Ñn;4½nçùZ=Ъ6ÐërÂT¾–-ü¯2eq–ó"óް8•U¥—£Ó5Yhj#Ü2é ‡†EŽ‘H4ðßð¦L:Ù:ùñ;äÑJ|Ìçlë‚7ñÐÏjÀ•Ù±£CìÔAÄØ?•ñ01˜( 24bÚ‰²ûY‘­ |–Ò»¢DU<¦ÊŽ Þ¢¸‘Ö]Td§®Pzct EÇÚì"%Ù|9ZL,b›“KÎçaÊçŠÍ O-Û°+ߺ£y3å—±FJöñ5Éø¡šHb•²« ÝšuyyâÌô܇¹t̵ÏÙü›û¬7¯ a¯ƒ;}VMùö»¥òfÅü°ÓÛ¨x@°’ÀûÞŸsyäu¾„mc´…óà„·Qù²Ü¡²UF³üÞg Öþ’ö“ºh ¹#“áÞ×PÈ"Ǫ{{¨ ‹â·DzF¾À—)h6“ÓÄ¿˜Æ#®N·g&Ë!ù b?¶*ðÌdö¼ÝO¶}œ'ùî1Ö{jÖue‹ùBCdîö=\Ë‚% 4ü]Cy À¶Ë¹±{\fŸ~Bhi4œA T¸·Åü|ªI)×SÉkÇ‚I‡ùËŽÒÒÆYg!fÑÆÕ¬pÍ?·néÄµÛØÄJ`ŒIŒÜÓbËE2"X^:Çž€‘L/€‰oÀx°pÎjåe yvÙ ï 'fiw§¿ÞÐ:•i¨ëÝœÃ3Â[üQ7õ dg|Ð5[Ç¥“çã;Âðµ¢çµU•Õ:*ñÕCL¶?ƒA=/Ã_ÎÐûáyJ&bÀo¼J-dí§n˜@²Ð}&`‰.”ÂSèI5?$%7pîVÌ4õW¹@Y}Î¥±6ˆLu¯$±Üv([`]¿~ –§ÑY§xöé1hÏ&(!˜÷‘¿¾"IBƒÙî¶&h {¶€™À3߉‰N¥Bz÷F!„”[,^'^ƒÛÂÕqPyÝþþ$yZÀÊñ̺·:ãŸ@a"íw ê;²¬ – ¯2ü´V¿5Û’f†¿ýð…_û^¯¯ßÍã›l@þQ¸FD<ûéüO»êVÒRæ—Ño3ë{ŽñEFÐÉ·±9øüç4ZáL婤z¹ÆÑR°Œä Âg‹4£Á£) G’|+éÕ‹IÄMÓÀ, ©C37üL˺æü¥så*úS)  Wj:²'Ë›Å$ŠËãY3TVRè/ÌoÚ¨½¯èCcº¬ÄÃùhìâ]‚3!±0SXíD«f•2ûÏ4ÌOµ $eö@g¥¯ç0wC`‹åM½k=ì ¿Ž¢³k´Ýò—âC<Âò?VüO䬆ÈΠÍÖmÜ>¡¡ÅÿùŸ„ f`ú蜈¤.½ ³€qÝwñꋱ ÈöŒªý‚H˜2vt_c³+ÅÉ;WQçúîå*ÜñpwËÉ»QÅ&ƒ‚¯L:«¬åRªÛŠ ÚU2Êü.sÁy™éŒ*Ú/ùhO¡ž­3ažÒýò moIÔê-ƒÿã¾Ì|Sê&g%*Ï€Ìa²PGH+‰YÏK‡‰Ê¥&I·>Þ‡x5Âë5Í‚ÉNAz(V²dÎoÜòpˆ˜¿SR°TQ4´/fxÞżŒ,hòO­­DÄ¢MÎFæ!¤š”N¯zŽ‚±f‰v8Ϻ0­M'ï–S_{9z´ \Ü^Fí –ùçÛÿ‘.U“c>¯RcsÅ-áÓ/~¥ÑÊ”õ7°7·É~ ¶9&)VÄŸöÚ'kC?°Y…èO©üÆeîZ¡™¬Q¶ÌŒ* ÐlRwX“¸MñðàaÕé0F†j•Æü©÷ ©©°P¾¨Œýè Û;îu)˜†Ø6Mm„Ñ…ü{ª«Hرd [*Ê–NzâJm®[pˆÑžvac|C²ÊX×Þ½½„XU›ªÝN\Xû§„æn€ú„8äA¹§Ð@&”ì˪ƒÂ¥1ëÎgiXXÛÉ$ÿÁÄe°iØê5jºõf²üôغ\¾£©@=ÏZšSïÂã–YîˆDK΋ì.V% \$uf¨à©M’üÆf&*Ú%¡UÑA¶ejdPœj­ôCpšÂk—šµÈbó³‰aæ¥Þ²6 (¥è> ÖÿrÌÜ ô%æþ‡ÚaÇËœjBsÔçv Œ—[yЬ-YÕ=\Ÿi\ $ã…ø, ™¤ð¾ÁÖ¬Vç!O§ XémÆLͯü­ž1ÞÿéQ„>iC€bCÅN½æ‚þ‰ægëÿs!Mø¨^FëôèU{ã,U~<5Ħ»¸$êW^Ë)¡ÝµÕëD7¦Uà¡pÌ÷Á¯9=%Ü '><2’­te‰ú%Qg"Û0Mtþ~8„"øÐüMõ4–ï¸Ñ”’k̤!ñD¾“|´ÀÇYd9‘Q?WE1®AÑÓªÂ_Õ*\‡¢DYî©C0GœC° „[l”ë Ë;¼‰ŸŸ”™T¦#¿z«ªÁúÝtϘ[‰N—äx Á(q‡É‘£Öîq­Å(~ó™QegŠ€±Œeº4AÉÖê'Ú ~¦ÑG˜YC²_³ëù!·×¯~ ÁÖæƒ£V¦£ÉyŒ‰’ê‰ç“#AJ65ˆ©—ÄÚÇloiÅ;ù^FŽÉ]¯ö:>:z¢nt×ÊÜÌAÊKe¸äßqˤzŽ+¦Mý†X/³Àøb%Wœ-›t"í p±Þîó‰± ÷1áªÒ0¿>8MƒDîÅ׸î?Äm&º rsk6Õ.éŠýßðtFÕfçêtþIçËÒzª‘ç˜+ž§At>O8ëÇ#ÙQJYbå-zõ6¼é¤åü|ªIZfŒÉW†`Æó-<øŠò‰°YwåÈNdóC*š\óé<4 œíwà0õ†ß©hËëJ:€KªUˆ\26~ÖWa“ä»ÇHΛ"~£ôzÞªf5EÇ+àTvÙ­°¥pùßA“2á—ÈZ±žm!¡(îãBŠø˜¥Jä Aç¿ö;o±Vðožð=Nv$f/4Aëw4Q5}ìû?é'âØ=ø"–((²:'ðcÁEeá÷ãzOÚv¸ ú¼j¿§Æ7µ•bË8Šƒþ‹hË3€ú‰ò  ‹âö÷{\™5 Š'\ŒJâu¿r§åý' mú¡Û>\ÅÐ\ýŒÙ!&–¦°¸¾ ­¨G{ A;Ý9>¡`U½U‹SéÚOÁºÐHAg}¡Û¯Û‚dO¸–!CWŪŸ÷'än¡$N¶ÈùOâò „O‡U_y"hYN¯ñ€2µÁþù8\5DóeŽ:[¤%¶æVSqÄãë b™üÛyó»|âÝ2ö­1‘‚• j<V·²o>^o ® ÝÍkˆ}RŠF~õ– 'a?g0Ö© ÝüLÚ‰-‰¬ FÖž2(s‹Ò,\ïKù9ë™å@‰Ò^­K,*/s­óg~¥gb°üœÄodày`Ù%+pv2áy<«ô"²øLŽ*b®ææ±ìòc{ wñ¦ô¤Á‰÷5‚šÿN™Ò¤§—©H†3M(v®±H¿@ºeç(:üðÄ%wRwTM ·x6$q–Ú2¦Û¤]×¥c<°r©·íÉ}7þgy~\ sëè_ì Ø¸ûê´ãÕ½BÞ¼ÔÓŒsÍQåŒôúB§ç# áàÓÎ!œQ”õ±‰Ku”Dü®¶Xg‘£³y QZî:©²š&'˜(?î3#³­džÁâá‡ZxölLHæ¹63ûyAõþx|:w¥‹F!“‘p¬[üÞWÈPx ?Ê”Зf¡øu…Ë@ÿ”»dÁñ1+èSK"%<'GKѮޥóG~øVŸ¶ÖKõáDWg÷/’ýgodßnORÓ7>²GÛ³¯ìV‚GzÙrFΗêª*è ÙK+`ñÑʼn¬C)z[” Uȱ}’‰¸B´i樑#PãÕOï^x,ˆnR€k~Ðô^)Áž‚£4ÿ‰êˆü°Óbáźr&ÚÊŠÁwùâ=Íw´ã1Æ!6Ñ™yAŠo‰ÝKsÜ÷Ñ‹ž›–tPú˜â5)à|+¶Êƒ…{©<ÂÛã+"¬d?•1ÏD˜ækS†Mˆ²ï¨5J–‰‹ÃF…/‚ìgvônêkFi·¨ÒÿˆÊıJbŽnÞ#äõˆ^…Ó@ŽŸîæôU塸Öwù¾ u¶f8íÓ„ýšGáˆS‡fñ ‚J·#Ú'Ñæ¨†K¦­pLùqSè= ǃ&­Ñç×ê#II >iQä"a©òD5ÿ0;”ê¢r‚üM-Gù~æÕÂ)¥·ÀÐX0[Ë,CLõ³rgWsyJ¸ìž©èýæ×L w­deúNFùb—¾0LÞ¿€CÞ·ÇÇ*ÚqÿµÑSLJ_bGãyQRãjY~èÞržÎ¿ñ­ãÖÓ¾‚'p9ª0[ Ì®ÛGo3Ó]à™¾¡"ÇÒ»åën‘Ü«tG”–ýQðŠy:KÚâ÷NO\îK•qÈÒa‚*úÓ{9¸zl†ò8ËÙ,Úê°ï•Ý2ø ÿµ,Ÿ4¥*®‡!H9Õ¹S(ŽØG¤üLêí+~ø(YµŽ=ߨóÚr§)SôØ×øR¢9Xšu€û(•è•calhì-Ñ y@¸hµË“àæBS÷Ê·E¬¥aS0{‰ràéÖ2¯ P†( ‹€õ~³GèÙ©)ü.æ˜KÊ;K‹—Øú°Ä´é& î„T!G›ï¿Â•äô^ÕS8wÕþP—… 6bÜÞùÏtNÝë)àö@çtŠ}Xh&ÞO?ï9|»àüð¶å9 vVÞq7´íTI3 ”“É´³Yú&öÒp›ü|­ ôq¦ö•1Ç÷íŒ$~-ÃZE™{WîòñÁ4ÒŸØOü Þˆ°®¶fÐâÒIkû•+ÅÁøè°©á ¯ŠuÒ¬xoÍ<§ú:{.a¤ þÔUÌx7bßÉmœÁL:üd¥1WÚüù9d@‘H€ÎJ”¤|DÄšÂtÜaž ˆ[é;¤yÔ¯M"—0÷r¸-L̯ÎãŠ-òËF7äÛ 4¥“œ½‡é;ã.z·ÁÁû§Õ0oÓ1šßƒPÛÒÙîuЧ$º nlÓReÀÆ™Ñ)ƒø[p“ YIšDótÝkæM«Y3ß§êÿïúSæ°qøc ²–᯦X(&bªZâ5âæb¹(ÒÍ^»ÍæRÖY¡ß õÃRôÑŽ]:Âö‰ÒJÜ›|w³ ±v€@H/~ü|©À³IïïñéË}`-üi?ï|nî‘Kz{2Yã6V”kìmÕ/Oì:ÐɘàWÀœ–•âfâûÀ¹½[ÕWÚˆ[¦çx¢T *ÝÅ`Ílë‹ÖF®"o—å`º­Ø¥++—Ô@3òé„·X )å©õ·ë|IÐí£ƒì‘HÃi.÷¶$ÝAó$ .ØüV-•‡u/ô–,iÅšT —ØÖÉÌÓ%×ÉKè«Ù½mueš¦e•(¤¥Ö¹¨j-^k4·˜€UË1ŸM‚_„wfU}Ùn+Q@—þËýÿK¯Úz (÷üÞ4T% ™® N¤n0¶üA`™Ønå<$«Ì"[”ü.VbRÆG±SÑ;ßv`Fæ‹ÑV¨´¾-{pg'0«;ØrSÓ¹öûF S•³˜È›veÛ±·•:Q]˜Ù0åv2'K\cDê6íY`‚i%-1pfñ1)ø³õãW²M+DýŒ ˜¤×èíC|–Ãc›ù… ˜•òóø¶ÈtÿŒè5Þ,³,áÀѯd–NÊ\¹Íb½ª5Âö}˜½×^XeÆebIll‰Á%÷!õ3ˆâŒÂïDm¿‹Ä~§–y—gH ¢×¨aüL»Ë`£×“%Cs1ç$t$œñsàz,}/MôFUó]ÙbEÊ1X¬{ý¾v%ö ‡¡ºÈù£1ƾŸáúÂÎñôô€‰ÿ¡UXª½–f­ 8BÖc­§Ù¸%ÐIíÕ¤ ‚ˆËp¤)¯gÅí¿þ2î+VïA¨ã΀/ë?ÛZ“Y~€qFõ½ò¾5ô"¹— J¾si$\‰ªÄ¼@4@õã÷—³Qî¹„Ó¥æ  0ÂRŠbñŸ÷ß7ôÅt€?ÈöÐøækí+œ |[}+†^ly ¶*…24UZõå<¤ås2ˆö}HD{ÓûLh/«ê¯-’ŠÏ§7ræèþ*V¡ùmE¿îðý XÐÊÊýˆadUõ dJ¶¶î¿*k¥öÂÛ9F_•egãçCVÆâöZÇYÎ/ùÇ‚ÆBôÒ*‚.ƒñ{ê66àÈ\ïº"Q°Îˆç§üÁ™Ùl*ã.\³6ðMvÆ”ojøüÃÖ„4 €#n0¾ÐöŠî©¿Îid7³{r2ÜV\šæ˜ hƒ‰xTÙ¸çð] ŸŸ®>Ý¡ÂÊZHå&Þ®…•¥ûžc+ÎüK  ›!¼‘Ñ¿paó[­í­g‡ÆûÇ[5Õå,¯Ð`KižeÕeó^ã[qÉæs—Bw§¥(ÊÓ=ý#øîT‹(¥;&ƒ'{šgežKÊ~¦£œÑÎÆ¬C™åB~¯ºÓˆOì0ª7™&1®‰w®kî¬@í`»¸¶ï2ä—²œü“ˆj‹•­†X̳«_½ íü/hz´Ô\öšª™uïAeëë=*kÛâøÿFùÌnkB1ÓfB×@ ¦q)˜YUÒenÏœ‹Xßk¿Úûù…hΚ þ/­SÅD›á”n&Z­êHhPTêƒáÛYÛ(äì Åo㼯kÄÁ»Ódªç‹m‹OàbšèƒÎ¶D]û · ÅàW±òÝwÌÙœ‘ß‘ÝVæ·¿¿Ý‰˜åIeb`ZùÜÎãö 1:v)t`wf²•êËÞ¿ö’>òaûž²ÜvIàGõb&ƒ9Ë͸ †’…9y ~»„£ê9þü/$”µ™ëúžS ­†(„ˆ†¥GJë3ç²iBÀY"©ç9|Ž.ƒB*ujûøœ± €ŸømŽûM£þÆK?úK×?ìßâãQ7‹cR~&TEHf^ÏAØöoõÚ…'@‡íÆ=Õ-³rU&è)HãáÑw ¸½Ÿ¸É–êPÍ#Õ±¢tÀû¨‘ÀIâ¹xUš ¿jª^RºÆgEué.Þ‰ÒëV†c£Ñß::‹Dæ( LìXqYå¥clêã”0!ßKi©(ÝFá8ÞY"3o+ ù¯–q÷šÉ¦üÆpl±of~Þ‹b’!ûÆ0ðgõÁn.†îêòz2‚Jô[izÁ´÷š'X6B~%âÏÆ¡§Öœ¼ßÄïEš§[;¦†c!L-µÞÚÀº¶ªŒp̳×¶άkåÑ*¶ã“^}ÈS˜šcÿìky¤£á¾î€û0‹A µeÿ¬LŠTd Ö_m kÊ–0ÿ½9nœhë*-ãBVfÁÙ°•üÃÛHUeWÌ7áµw´Fê0ƹ7G¥çïLæÎ@‚ýJá,¡Lý»È¿ÔåZ‹ÝìoÙ:‚6®-ZÙ K`>Ê@'ÀfHܘ[†…ør±UƒÇà/©6(ŽT¾ß–2¼ecÜAb¯Ý»AîáÉâ·F)!ø EÊ¥í”àÊ®z†!Õ.[ ŸGYÂ\?,*C·èì0ÃÆUÙ+"Ï’/Ù62Õ·rVºUº?†¤98Ø‘Ô?¢d:ɳ›,Z®  R05k!j)‘1}=þç*¼óˆõ ü{Y1…y”…Ú"Lf÷ÊŸßxÓ¤_v(~èfmOJù±!Ò§¹Ç¾0V\l)@» ç9ʤÔ5óÛ2]¡pÁ¾ÊS0¾4|ÎõÓÛ$„ Óµß×:ÃÍ1”¿MªìM–Ì\ÏqKJ½ý¨"1.8.i%dx´ZݸZ–¶_ŠýG ·?Ô=¶ÈìÄMÅô\ÙH’b×A!*ðIX’dåwŠ97·#‹/bqñWo'TwĈJ8Ü̧du^Õ…]T{­a¥DÆãP'´®p±¨@IãO}5›`€Ý;G¯.Ó€±D›$ör{ÒÝö°ô¾“Q®8ï›öÒIpâí5fËŠ«~Áz~ãÖˆs×*ÂíÙàéªNVfN6L=i”ék«®¢øw)ËÆ¨¥ú.熯4  ˜æÃSeù-©\gpL¹‚<\ñ\4€µø)…ЊdÊgåÄs­Z[¦4i¥1ˆ˜¹V‘h(ƒRx:d)mÉu-‹¶º”óc‚éqFŠI¢œÙ‹æÔEà9D½ž;l'Žô4àºÿ'°éS¾½ÓGê¶÷XAüÒåÂ,áüÙOggS€ã#¨ä2.=‡@íïü÷óõììöïíìöÿ‚ÿ$×àßåìàÙÚßÚææÿ¯ÿT×î娿ÿßÿ“àæÝÛëÿÐåÿÿ ÿÿÿÿÜÿ>üL¼JÙ¨Ò%€Å¨:(Oµ± öxÖððÙ–“)Çe7I–X2w&#Úâ˜íÞD(.al²Ôý…]›U@¾½2ƒù ë/úÈÌ;Úêïñ£¿ÛߦËï\ …[¿ãÏ(Ó©ôTV#yMRx釗rìã­_íH8Õø»+ð¯{FF¶rlòuÝFÉÃÜ€Q¦±8_¤E¹ªt%àð¿9øÄbãÓY3ˆ¨ä8O !äÚP•ì}ÅH>[Ãõô’£¢¼ÉÎ(Œ!˜úgÃS ÇøIóøHJ_Ï}ý‚?ß…e_Úkäˆ!›/= ëâg“,Ý8&|ê5ûod¤ógˆÚޏ˜VºWš÷DN‡˜L$nýÅç;µ>([£îÐpÍm°!R%ËMÈF™ÓÀ›cÀ©îNÔ®¼j IÃýc§ñ\¸ ¼ìÙˆšdP^eÙ ¼ð¯ãÆ`žîs¤-pÙÝeÙôä¸2v*û Áþ¤Ã›w6«ì$ó|Ĉ=oš…mÎÿãÏ2QMÔ¡‘œÅ[‘Ä‹ú¡µbn‘ëYØÝz:FÆ‚Ó@*ªöìèàü1‹÷®)„¨ŠóQÿ…Žøó†ÞꇤížÐUi5Ñ~ïdÚ  ‘á;Ç\jèŠtFœïhC’¿Ê  XªHLºá§ò%ãGËS<ºYªIà-cL˜X O§s‡ËtóHƒÊúòÑâô¢:5Þö4äG|D<Š9«»1¯¥‚Sh÷ñÉØÙô€¹¤³Ý6œ„X<Õ£gñú þù‰/¡œ¯¤å,ŸØ˜‡>>×ü—žÝ¾[‹pî•}]òî»PÁbµ³Kpnt9xcö“‰#¾ÿMoo7CÈvÑÒ†( ÔJÒi@³F@µÅ¸ªÇ`ÞcéýÆrIJÕ?üL¾Mv¿@çü¿~ýúNÑz6±¼7Q¨a–|‰Ä™q‰r6Оr8ðºÒÌw°UE1¼–3“+¶ºøÀ¼Ïo¯ZJ>ÖÿÃês9£9 Î=,È­{ü¨˜ˆð.'‰TSõ\ï:'w\M÷]¢º(#Ü{اšc*Mõ «Û€•ªàÐÀidz0쾨Íà5ÄÓ锬ÚHN0w«“ʸÒL\1iH^·`.à¢cø<¡Åõý`ÚÆÞËúœ£]â;”U}[-C)˜@[ºˆDƒj–ƒZæÉí:µ';ÖÜÜÄ»QS_ù‹ ‰ÑzÊYüîÎ'&pâJúßG˜ dåvðŽˆb&Õtõi,i¨%mð—?6]°ùwèú¿âÅC5ËX™‘Æ‘+ÉÈ6¹¤ )Û0uÁÿ„[§ÜÖ@+9­ÝîíFFiŒn€G…6ú‘ëbƒÕláêÛ÷×™ûŠÑWíkVà+ÑC¼½÷gɦ$p½ñ0ŒÜÁTس‚ Û ®'ŒûÕây”ø]Â2+ì<êpÃ’ˆ©º}›ÓŠ’áIÍ1Õ¢³iô1Ô<·áúèÍÀBMŒÈ*Öj±•Z æU"èx©úV%ôÔKoXS'ÞÓ$GNÄÅüî—çõtŒ•"qµsÇlä×Aþä¸Ùð9@â‹\j  Ë:žÓÛlëTþªnqãä›… NÊ¿“`ê©ê7rÔCèRÀ΋ó¸¹ý8·Ï.o.•x þ¾‡cx³ðôÂ)Þœ†—Ùñ!¿<æeÐŹ4Oû;OíŒøÖwUµlúÞâ5àXµŒÂZtÌ.7£´Ù ‚ÝÎÿÇ]I¯&¢0ìqäåQÔÈs 0¢3À@M7ˆ^˜µ`‚x£š£òÉ|Ðù¨d}ùÂÎæ½ ™³{Å×))’{¦—ÊœÉ=ù•­ñŒm׊O‹öÛLa§ó€`>ÇôÅüî}xœÊð Í[ÄešÉ¯ïòf«á™ØTço4õf.1I›®ÎZìÇNþ‹Ò,D G–žõOߘ ´|ûjk_Y)â¾™X£æBhü‹çц(àê!Õè ¦—¶ojW„ŠØDQ³zİ{ ›ˆk`ç0œe·sv‹ßêÆz„ì8ðqàiV‘ÝÅ€dnÎ$ÞJ‚b¨Ùä¾ÖQ 79S ¡š-Úú€UŽdßå|Êìu¨÷‡($8œVû+ áÚ/.O{OãÙ§’ë™a×ÞBù#ñ‰Ë¬& mèļ—Â2Ge üN[¤ÈWŠvðñ×ÊÛ››š”ÃÁ[I÷þgKÞÿ¢õzÖò›þ«„ôU½ïǃۺP¬»æ+i¼^[KF†9Pf´:^(a=v" öôîQúÅȽ4lýøú ^·P{¹ê *œÀ³îW»BuŠ&r-pL™IWV5†1y%<,l}ÞAâͧdRñ™2vþS‰Sdž)ˆ‡;Æ*:oì– ÞТh®Ü3„Â}Dk~lØÜúÏ¢.S¾f?ØåË™UŒŃ—œóÁõÆe¨89rÐCqåžË@©Fª¨/¬WŽm„ü.ApE¯ÍÓ ¸Fð&‚z¶~bš~ÚrXî›ÛP7¨‘³S¥5YLF—À9!ž¤ÚI¼}P}Üè„WBÅ2‡°†çGÅËȠ͹¥œ%¾2RHÆD ã›ÕQÉlBÏ>™e¯ðWˆýu`É_xŒ°£H‹ŸÈ_í¶ýô¨!8:*Œþ5´eÕö‰ŽSw~¶“ìgM2\lݪ¸ÐÞ .Ïï¡r¢Ûjë]rÃÏ¢µcâþ×5/4`ï|h‚àÇQ¿6ÌX BSîŸ?¢c†_ˆw lAÏ!Aàüáל9Ev·¼dÝ ñËŠ§Y³ñ ü.Sšhuæ)fH+ÿªú:>ÁÝÏ:奰w­ªŠìŠJh”Ö<Žó×x[a•B;yî¹u0‘În•I+’;"›Äån#š÷Â㊟ø4J úÉtáW\>ŽKAv|Úˆ‘ê€Äû׿îûY£Ð´@bîÊÄ@[7ˆ+KRF-º{¬Éuéoú›OîZöt2÷<´“ülž(x:®u;æ_íN9ä‚®¥) úNÀLôy4ä?A¼ÝšI©ýxgÏÃnÌ)¢‚2QÕþ¿¬UÎ @HÏWäC„cW_Ônæ8ë⑌…üdjü.³™•ñ< q×cêhÂþ†¦’ÚYí3#uä»ÁÌmßuòÊË:sP^ó/ ü"zü?­¶»PX×sêÚJôj²ë¤Î2˜rÓR¼)13¢¸t_í2}ˆä¡Îü“ 2‰r=ãÐ2׊’'®ÔÜ÷ßË t¸Â ÒtìãÙ±Zù2޲J 3­·ÝÌjÛPX¾cÔµDj/oK{XLj-Ó §Ÿ]¬àþ`Ôg´Ž]Ð|ÿË ¨½°Éa8DLe™‰Õã¾÷éíûÙí])ü!qˆúmZ's€þQ2=*I<ŠÞÝ`<ü.G:u·® ˆ×AHc¸cÇÀºÇª$1õ7ø7ºˆSÃB@øÆÿ^íØ ¬¯1߸însmT3Ýêì1dX$y5²ŒÁ=\Xzƒjä”׉3:½¨þO.üžá“ƒÌäí¨=6­ùTóQ™W[gúcÄdM³,ÑŽ!Á\ =éøF”“-3vðSc¡œòûpåFû±%¿v÷%Îç »¿%òͳo؃ÔñâäSÚÂvd£þßG£$g»†?whþü ¦ú)'Ç‚ªaÿ‰«H(ù>‘†ý5±¨7R”ü0 ®‡CSØ®Ò.»¡aºAbsOp«¸<ß”d=k¶ä靈†ç»‡·6hDÄX šxõ 3uf˜YЪæHÃ’[Ü ƒäj/€¡wN(ÄâÚ‘ñ¨ 9=w1’•áª_¡þ8 W»C•Çxç$m¶J;ƒèž=–P4*,±ìe¥¡jžàaøÕL5ISd€¢éC+bÔDªé×s‘Ô¶ w,Õ1&¾M_رH“vîïÑ ™NOWégd7ƒ›r¢F**«å'劻­9î“ÉåÒ8,Æü/–˜o]RÜp³\‘ªAßçÊÉ¥aàU`¶üŒ.öÊ:OÒó(*w§h 9<Ï qØïªÆÎ# ¡±¹¦PN²ˆ•]<‰¡‚zéŸmHoœ¶ß‘Éù£k.ä˜]<Ψœ MvÆ…n…ŽÉ(³á:ý2ûedŠáøÈË=­å1Ç’•²ê°nk²Pj›RÙ"¨AfÖ6Uk;hLŠ$ÒÄKŠWÓùüBM ¦5<,eõKìÐ$Rätâ“r÷w êG½ßÈ?¡gûpÇøß{"Ì·X{Eî†èJ\¦îÔ¶ˆ?ý;Œ½g0>·ñuö7½(qLi¿' O¨þÐ=K¨Ó‚·’éM ÇŽÉ5¶òG+œo K½fÀÍï’š:¬BX$*¿Çd†¬ Z úeË€eWB$lñ1dÍ'šÿ‹R§&Û®¦…Å* LZ°|¸µ'æòŽO† Öd)²Z€RPðb“”Á§#4ø òÌB˜€èÙ: ‘Ô‘Ãê—Ç  Rí˜#þ³ª² â‚¶×#~øGÂ¥ü|´ó!'¬;´´ÙOß7z@¬Œê©87??~C’Ü”΂qšÈ/Ï~RÚ>$Γ8 »ˆÈïüßÃR[ûlE›ñ"  ̼çyÍܘ!ËÁaáÀ‹Ó¶à[BhæÀ‡¼ö¬‹µs*Ÿ8;ç¸bÜÝ Ì-úVæ˜{­6±¶÷°äûtóîÇ›ŸšÍIì5»çð?æ…U!än4ùÍÃôrj1û¬ASÁ®`BÒ¤p­P ¯F‚vsuOÉóJÌ@7@ÆÉ.ĉȿÓ#…¸ëÁß-Ön6ž q¦𯹑A55"†Ž€‘¦dršW˜$&ëæY Ò+Ø…ñŠ/;`–b°[¬ÔUœ¬ºßL±€ú/”F’Ï„|ñ:ï¯üI¤ç#‚–ö­ÇÝLqbÌÇÂOëP¸r…$ˆ Ý`5_ÇþÕˆõ½i«lÔÓÆlC¸Sûf†äeÁ[»î„tš±hh‚´×‹[¼ÃwSœÚ2J·Â—ÉV[SŒFæHYÍ ããsC5¹ZT º4v· œÌV©ßWošèˆ}Hz§ù˜ƒÒN}™[`PÄ %ªŠ:^Ëê{+Ò9þpæ•(áÙæ¸º£D0·m0|_Qwãšú=èÇõ»Ò¸VúÐ'TŠ¢ˆö 1üÛŠÇŽ­ûrèKŽTà´ÔG3ºRïÆÑûOê¶'Ói¹æ|ãhq»Lò‡jcW•HîE²€´?^ v®âÈIêrÉšÙ5]ÕÔ×§Ù ™¹„Ñ‘šÄ^Ž-?SÌË~ÑeŠ ud Ê^+7Ðø$´5>Ï+—»÷ªMIâ´ð¸£d!Oá=BQÝËxÞ…ÚÔg«ñoB\ë° uå?oïN :þ¹„¬u–î´âU¾@/-1š-4ˉÆ4‰õô^ª²‰ðŒÝ?ÜYAÌŸ¿5 [ÝZ{ÌK±ûÅùe/¶¤—ñYüMYÞ:‘Dï’(Â…O‹R+š•ni¨Ñ†§Ûõ”c¡ÀdETÚ`øÙiw­6™ƒÎŽwlL×yChÒŠ¸÷ÜÂFäsÄÞ›.`/卑7° ¤ÁVª•´ãçž×K&ºgwÝ–¤óê‰ZÖðnÑŽzfK¹¡6$ÊMpœH_žX¸1ÂжèävŸðÆôOÙ‘•‰qÏx£Ñ v5=^H­;…qÏ9øá_‡C½%º¾¼¹ð·c¶£Oœú]À#^C¯ü1˜Í}²Þs©t¼A4 ‚„Æ66Ä̱ǀ~Mû@Yûíd‘ϰ:X£NÕ§=yr𓱂ñgÛþûÈ ' ­+xx¿»‰±ðéÍÛjªfË’ŽŠ¼­›Y­JÎâ‚åRü*ÖHÓõê-íSx†{”G7Q õŸ3æ ë5.¨E¨«û˜ØïÖµ°b"Ä"šyùBÐ\Ïk÷JR»ôGiÏŠÓYÛ°I¢ƒŽºÊ±–;¡Æ´ÂX«ûeEèÇrc´^› þšÈÙ{—ëÖ›¬°ÁÏIU†ƒ¾,®[]¶2÷gP¶ÆAZüLÜE5—Ï©]ñ^g[ì"µ_^ÔfÓ¼¹¥uï‚+¸!¦ç4 }ñ(ü|ˆÎã`0ÆŽ¦{SЯ˜ ¡Ge° Y¶´2¨zСÜé Gæ¶!f‡ÛØKÒŠÒ—NR}ñpƒê·—lniþõMð¤Ö©"LeÖƒ}z8&BöŒ7\–½¬—@r‘YÂÝ›sArþN)7NoÈÞŠ?,ã¨|… åÛ>x¢ÏÞ¨Ûãø+ëÊü‡A Ýs‰#D8%ºBQ¢Æ[þ4 àÔžì@Åd"]¡±¢¤!w£Xë’°ÐB õ¼ÍüMn0µ3« Réq°[e-±0·oÒ¿X.N9D‹Á.=‚ÿ¦5B­ñ>ÓŒ½¦øV\ ˜ç™EM³gôè&æ6[U£%© kFêÿ;nÐIªÔ¢g ð<ƒP*Bdz°O+/) NÕ¶/›èõ[ë@ìx¥Ep$ÅÅ!cò€ÍÒ=?Mú‚vðoÃ^ºÏä¤_º4k’ÇPÛÞaŒÊ„-470t³Ö¤ Ë|,Ý0'.AÆWqÃîµ(}…m]]‰ø€ n.mîÆ—Ë ¼ñh—G<•[™5ôˆÈÞŽz£¤úüMsQ]‘LÐ^ÿëÔÀÇçªä±Iï!pRƒt­K²Åf˜áÊGtÞÿóÄ;&H/†8D™Þ\•¨@Ǧ”ו/ÍæJg¶‹m1Õ˜‹üAPµå@p,¢ ™m Y‹íƒg^ähÏ}m?“_¿hˆ*-Ì_DÀñZË ^“p3eÈnÕ0i•çª^C9¹÷_ÿb+g)R¿…»*#¤E†òBúÉ £M}ºs€?œöKj^Bc³H 0­áüÞܳ} =ÜÌ& ìÒ;¥šJÓä ÕÁ9ü5“bVÔ%$‹’+ˆ ‘fQôÅ/éÉó;L[}|±Üˆ®åH£ å}É!·¾¯}6ÅÒŠ‚oŒ_k™^Ã¥7÷:®ß¿ý<œÊû´I30ë'Mm­Õ¯ì_Ë\ÌgÆ(HÑÅlä;p¯èOx£k.”åAü°$uc…µ‹æ²±¯&®‚B騕UWïl_=Ðônڲɿ™Ù?7´bÆ8•Ã>ÂÄpÔ!S´gûй%Ëu»z,Æ<[UœKˆ]¯©®<(\¸s¬“ýÔ>îÔô¹Þ.ïHÔûÍüIý0eY×ɹŸ€·“ï΢‡·ž)WnPEáú‚dRHo w]©`M„¦´¼³f]˜4ŒRÙöFù–õo(iJ "¬Æa„’£Ó:OÑ$×^.W½5Ûg–‡7ñB ŸÑ„WÔc'+3Z„] yå^ÀÇøÉ¦ÒÀn–Zæ/X0Ä-=Ý%µëyü@OÁ9SH"¶¸Ž~„$L82Ñï×8Þ¦0ªUY’²ºXVèe„ï„óýé —?âèß(«"°Sô¼4ž6 }|ŒáNSÒeiüL»Vø£aÂb¥:¾gmÀÉW[ÙFµ¦™e@ç1XÏ騲 ЙMòÕE ‘k‡dôOb9Ù¤$ã¢1¡æp'ïãÍHs”®»4‹ "`äÿì®ÞmÁ€TÃÿpzk f}RŸuÆ5qnûôÓb””MÁY FA¡f×€  ö¾8ûéô›ó‹ÀjRÁ Tƒ­_ñS?Ïñ]§¤ã*ỿñ|?ÑjõÙOuàâ|"A¥à•ë}uY[›é™¹À7…¹½“ ¢+l¬ÒÍóÇ¿º5€á_ëÀüðÔ’GQë Óú'-cr}‰ÓãÙTmä1¼¡$mP ܃Ö÷ /Ym'6а‘ÄÀÇ>Û‰sßË=Rzwô­/šÂ420B~<ëtl&Yñò†›}E¦&<¶°ˆÓ5´ã˜˜ï9uÇÐPýQ@.4Õ_Re&-±hjV?…­Ö’‚©I$vtC5ó+â„AM§¯œg7ÖM¢øvZˆßœ.:&hNÌ¡w’%ƒ½¬²(›™ìò¤V|{Ì ûÐ~†-¸oä¥Ì’vsF¿=ú4ìÝË:6ÒìAƒÓ€³=Ôïo’ßüïD˜̵ÄYC ÈÎL’*ë3ÀaÉ©âßH²±øl°Œø)À:õ39Ù{m°J{ܾ3™½ 5ód$¾©+œÉöe„0áó*XÊ+9¥4L€!ö}Ê„/Â(<†¥1áQ“ðÙ2E}=ZO臞¾ÔjÖ(´ù¨ OÁíë¿)½Z ‰l«Œ*íWŒŽ×»‡”ƒ_S>@²¡­m€}®¼qø9D˰§äxê÷?À ‘ÓÉ;º(gðg…pêêß‘Z)72ú„OIñPød¦È–(þ/¤÷}ý¶…£_äX 4âü}\)M,‚Q¦ß‘Ã!³vf guÀm ò§‡ªrÇé¥Z<Ÿ¢ E´éqè<>"2˜ÿ—#£œ3˜YœˆÑ S4 t’âÅp¸*G«I9Šw^C ÉOyëºÙñsCºtóíp@b£ÛàS”óoÍU?ýÜ"K*Zäç–u„åï)làÓÃn¸W p©lv³LRµ–¥¡Ç›Š´ ž4² ókë%å¼Oá㚀óMÃqÔ×ó-Â˯¯£‰×ÛèÚê}¸•@cüu$V¿‰~ÜDQÔ‹Å~ýöFä‡L;ˆ¯_‡¹é\ωŸyEO, U럴nzßJ†!D:„Vô£“FgÜ¡¨ä”mDzÍêS‰†!ßVP)v©{ƒm\Ÿ\Õ>£=嬞SàÁ=73_Eª Ï ü¤ºYFüØÄܪoT\š™¦õ†9^‹ŠN ÛùR7x¦Saç*²ñ\2|ãYM“Az1>냇&O œ"?(ƒeãj²²-Q4‹ žÍáÁ7cƒí÷ν) ^%ëSÿÉIüˆüŠbe‡ßj,ærõ÷xAM”^W"wñTM¤åcÚBì»ä]RO }{ô‚ª¤° )j‚Ò"%nðÿ2¹ÌÔO<­C÷& ËÎÖY1ÖÚ‘dó2# Òô‰A+v*pðá&qñ<ޤ²–ï?WƒèG_qÖL0&þØN³RÒ8“«SÎ,×YD]Ëå»ËÒ•–ÍtÉW¹Y—ÐÆÈ^Ç7è?|šÍvG% ‡tn)¶R?êfÛÔn¼Ì¨0!÷›íö%,U뢿p(¶–jÂp|Òºs~›‹¶ûy¹ŽpaV¶è©ñ<%_–8åjßvûïJÏÿñ|™9öëVpÿ*‹ñ{ žëU|ÕÛV#0Eœr=@õEŽS«+ýv}›ïçÝ—Ã…T½oŠÜi$U6ć®(žÅ}‰¦8o"ã•B¨b1@ü.XsÕ€‡€q–!ÔN§RTd –[k–æÛÁ ¸±.ušÅL¼¬çeˆ6rÓþðÞ®JëDwC¯[8hö(‘ØlË^¥í½ t3ínm,½ÒKàIå}ÕÊÑÂ&¸t ¶óîú¾×ÖªoÈêƒ}®Ä› On@|¶~OÍ8.RŒG¿#Ùó”À2ÂÅÖ]œÂ£zØP›Å:”(wV—›þΑI%a³è34Ê>˜wž à]ÔÈT\÷Ná ”ç—jòNõX†i’ªÖ¯LŸùŸüNP8R½Â“âGM²FZêTô¨cÏõ "mK¶¡ú]/u‰`jÍ­«Ë2Ä/û’,9£¿µ«"(Å®Î[gßÁ­Š@Êr–Uß<²… .à e¢C_f°Ìgi@R“0 Ìê(öÉí¼™çý»S ì §ùúÁ=!n¦|™pûl¥Ëo}™â–PÌ@+Žrx«\¤+ؿϊc<\F¢ÿh;kuQ¶–G RÉru¦Ÿ¥JQó.@‰ü9‹Õ?é4uG¦;ÿ þ2ÄV70ª½ ,SÔ¥ ³ªéÛ> 9!NÓ¦Tà ³îê…ü™nAÑû‹zŠHnÛO·(¿©|qu0ð©¿G-Ëc¿ÖÔÓÐ&¢}b^ 2ûVÒÇ_^<Ì)˜”}Dzìø BèëE×” ^Ààp;[Zô$À{óêb^Vf×Ç¡NèÓK·ÈŸ_y¤IËT/3UØ©‚­V‡˜6™ëeøâkXhÈÀò›$Q^?ú.Øý7`ÊÚx=—!j¨Lª™4Š´–På­þ/ŸQÓ„˜ŽzSã=19Øæ7„ì&´ÉA¯Ù°šŸ!ì͹LD .I±•ìBóRQ3Ï <9ü›Ã"ë3-íWdPw×v0ÛÅõ1ø{H9Îè­ªçÿµqo;ìßЦ‹//¦føY4Îs6³é“A ïã…Šp œ‰Rf|Tél½ñ¼&lcWò\üéTÂàLMf$έµVŸ~ý¿-s"Vf ¡Ôó ßbv«ƒà­Ç\=%ÀÓoF²ôž4âÑÚTÔ±šP¬ý§V2¶PÏFùžÐ3ü}a@CDyõ=˯E 8« r0¦Á„ïÇÚdµ·oÃA”‘w9JB‹cÙ:9š¸f9À6»E驂Ǩ`”Ù1^…®4¿tµ%Q(>t}AµèÁ—*ÔíI4ï‘Úì¿ÈïT¥ÁÊ/–¡ÈC5Òÿy†Ö—ñÊõŠÚºó‹ôGŒg†MÃïÜûÙVÃ;ƒa/jiûÏ @î_ÀD3ªçh4™ås>DŸ­Ía=Íü6ð—Yk(éDÏ©pÊždT 1à¼Á&4Ë[ 彪a ÀëXõKŽþ>åé3…ÑœY9‰º@ß-‘Ê4øCRå `d$›´Û.)3i˜ãêÀN:³aI´ÁñS„‰’³£Ø‡üÉçpIi¶Nj’ïSýí¢á_þѾ=,ÁàÌi ´þ²1¬–C"‰Ø|Î,&c–Ì'råštq÷—â‹ìOýǸRÿž™Ò…Ê?vùäõõ‡§ŽxdÚ°œ<“Ër›àbì*¶µW3j¨Þæ0Ê0®‚J×kÞ¤ÇüLÝÏHà×ëJÔ}ÍI ‡ H‡Rx ,É?;u`ÿ²8­GJËg™87p?¬½{u‡¤TLß¾h­†4“P%SOžÄcŠ€½(Ñ3fÄÈ(‹¨¼ð#ÍsÎ~yŽ×;&Ì®s’ þÞžyëWʼAsÛPüI+Ñÿ©Ë=¡ðñ2Pj¥.Ÿ‘ÄE™8¼Q|§3¦Ømž"ºÛ©Ïd„„$ÐC ùL ñ ¥ñ§öoE $¹ß\N‘‘v¸é,Uh´Tg°êUwW4-2Ïg®F&r2ûÃA™•/Î*kC¾7üÆ5˜qá­Mɨ…§©âžS¸¿ÆçQ~⢵áQÅ·ýz9K"Tlއª¯?c†¯ÅÛ „ÎaÞ/™m°ï½FÙ}.ÄÒVżXEPuÞ¤ˆ±Û2F¸ ™ÈbÉÏ<$¦÷®\/’Ù[¢¶{t•­Ü³Ë¤ÊnqÅiÒÚ* £Æ8cœ þ>0{y½òß›$Ú¹ Œ( 5µjx^% mtV Õ¸×Ô ðžöÄ•ñ/>æ¦á|µVøÚHo†ŠÁ¥åžÓ)éd@mý ÐÄ’zË‹Vw­iÁ üÆl’P|Ô¾‘\¨tHó¸U ý¡>–Nñ¤ï>8Æ^©ˆJmÉ5|.ÙDÝñÑ©74NÄEüÁ¶€êÑ^Å{4é7ýÜ9Ûè)©Í¼[bªJM»±È/»)®¬º<ñJÖq\Œ+kHµÏ¶Z7ÊîØ\´^°B¯·ADËE©êl/3?‹2ÐÛ#˜ÑšM7¡öýJÍšúÑ9mup²™ÖygcRê †` LeÅ™OvòñXv#çÃäC£0ׇüQDAûº“ü±.€ŒEü®† %ô«£Ñ[/ÒæN•ó‡yªÎ¯ìa9‰âÆN‹‘ ¡AUŸÕÅÎý# Š ÷,r©N)ûö´¬«º[žf‘Ÿ%Œ•bOç˜Å ÿÖr°¡¤O™ ##°“Ns,Ö&á[ë Kïç/áÖþ~JÎMÌetÁ‹§úŽ¥ï‘)7A…wU"ÞFc4EÚòýyΤÁÞò GÇ9ÑC"F»¬ÖJYËT®ÖWñ¿K~³7¨û\üˆQ_ã`€ÁAØ QêHù²löæ ‹ÎÕô"Û¾»'"Œb“ÆKÐEÃñMtúÐ}˜IаƒüôퟲA#Hy€ÿ€5ˆ²uéqž¾õŽÆ¿¡H×wÞJšWJ@ã¥îN†ü·ÏЃE ³%ÝWH¯ß}~$‰ _*0h)^(#vÐâêðÈÉW¼>-àê©$9ò€9 /’Ä\A*ÐY2ir#ͦ|OIV¥8 øÒNg€7:–ãŠÖÁùÌdýÅeéëäYùÙRpdOí!"ñ•…šÌR©w¸4·²_èöý”~^ÎÅmsòoØFQh÷猪äX@ðµ£á„g6@H¦CηânÝ¡$©l¬%œ¦SZ£-l‡­Ù øƒõ¹$äØùÏ;ÝÉßà2œÄ.Ð(?š­ïeRýóœ.ç²RpSôÉež¼. ãÓ”fµÉ¢‰]Á€Þ½Â³’¡ ±¯)«¥!øÊØ¥:u®1?[©¦ƒMõŸÜ‘b•`Ô"ÃI Wfóã,’<Ô]r4ð_ª1WL»û,¥¿“9ƒSk<ãÌm&$öÓœÕÌì7i™{邨Øxvì x·× …Èþ Ô™oñ¶8vÌIï"HÕÎd GÅb­¤L0l#:bÔÇyà±»® pÕµÔ`h ÒaÖï%”¨ö&£<ÙŽàˆ¦üX…2qg©á–}òF·xÌè×áð‹«Ò•×Wªo”™k˜~NŸÎoK‡ýý¯öE@í€Lv’t Mjm9¨Þ‹è×sü2´E•Ž_Ì $=mºùjËxÍQûšJ´Ƥ–Òö¹sÖ¤P‹àn Î~~Z’ÓÄI~®‚¾¯ u ”͹¯t=—‹r®°¯8³Y¶lL):!g725ºÐH*í¶ŽëÅ7‘ÊãiµÕ;,Ã@·­¢³~²z¿]y;6eçÑA:ve`j >8(˜ õù°ÚÂX‘êS=¡ÓZHüJ?0ì¬.­Òë±(>ŸžJiø«ÃÇ}+1™{<…N øl zéšžÏÓšäÈÐóVáÃ)sÑÔË€@ɼÔk¯ÁM&|¦9é†C}ÑÙª­ËxVÛõx]–c/ƒ$‚oM}:͆$÷ÞpæØ+zB‰å °Ìðù(xÞà–§-„3Gݵ¤+ëä]ÊÚÔg`Ã3‘ÀýTŠ@ÓC©o™o)«›<ìXgöJTfqÔEýÏíØ»/csYŸAßI›fØ„šógÆÑ)¸(oí¤:¦PQiŽöcÇPfÜ>Ê‚3´Üâ‘+³±Jô¿Û]dåüIˆkIÛ Â»Ñ­Ü¶ºK©xyÅ ±*dÁ"éâÈŠ,—ôEx̰õN ÍÀ„««'<eüâ‚"Örð9¿™»q¤½ÄÝ„ˆ’4({›õ“ÍÍVƒ‹½j%âþO÷;'=ÿZ²wmM=Ç¢i84u²ðƇ©ÿ¢¬¬ÒÐgþVæaúrgù»‘p_ÇÁ䃫§‘1ß#ÀH»pŸˆµÊº»¸­2‰ÐÕÏ/ò÷§™Óä°`?ßojî¸óƒ(^¬–•MÔû<¾´sÕDÐÛ)c–Ú¹s;Žæåñí`zt8ì κþ8%v“jÄ÷HmŽ®1*i-6èÕÀóYŽÍÚôXA¾‡kdÔ\Æœi‰›üIƒ+^‡‹‡[ftDr“¨§Âd7™rÂ*¦‹˜~GÌIßçãY×Qiœ¬µ_Úi#³x¶S¿&áã÷ÌÓð¤)Ms¿±º4þ7'[¿–zóø5SpwíŸÑЇonaÎß´i4RðÌ'¤2v[Ë«›evã{}XŽéEéæ1í”E÷3¾´ü 8ÊgR /Eèf¹¸õýÒmÏ8ˆÔë¾µìÄâ³@4dZ’Ôt–mB`®ª ´[ñ˜–æp}Ívþî_¥H®Ñߕ䞅çIÞ—ø3èæ¶½™oáÅ AZ‡&C2ß“²8í}ÎA™¥¦º‘õïÞ;ÖÃc…1˜ yX„.Ð\=9>rª²üIfUa Ê_ºD{Q²áÙO£¹Ñ) èÝ'½Ò9¼XP&™ôù'@Q%$š£H¡Mù³j¢oŠap,ÅvæOS|]U%¯¯½©’í˜h«]GˆEçÆ¸Coª®‡K ayQnM:9{jP7Z%Ĭj€WÛ·©pî½±n3˜EÅQ“âý··K{ "ʼn M °˜(„äq¥€8JçyÇÙU•©zÁÒçëÊÑ$÷‡ö–—¨Búß^ãëù¹ûÑ„ï0rµ»o¬(i5`±ΜËOÈÊL£ýÑú•]Lgn\¦bï<Î-³z9´.¾äsˆ:ü|®´@LÓvF!,®aô*4¼j:¿âVsKìÒ”Ë鈞#HŽ.è˜ÎSp¸tÖà¡›"Ɉ ˆtl ®Ë3¥Ê¨{™sA…Da*”ÖˆÓhÏ_ev~“õt¶È|Kׂt¯ÝÇÃ/Iέ•ÔDËÿ-[äÂÜŠBë°üÂq&@Ù‹\ /êkR4öS¹Ìp&ͼHcèt’égö½çî5`*õkøöýü•ê/¾–gFºr©NŠOÑæã! ·Æ‘í¬•.K'Ù#ÂÈ¡«Ý«Þ_ÀZÃë×½œájƒG7©*Ó7D ˼CpwXl)'k´þ¥Cà¤.`˜¸'MCò¾³·Rçµ(,'š¨O’ÝŒþóÔ ŠI@qYÎ÷§]U"Ïd̽˜¿þÚ4fîõÔ’˜G;Àóež¡ù¶¿ÒÙM E‰|eˆñu@¿VÕ›2ÄmÆþö7èš!³*'‹ª±}N,ÎL‡mPÃÁ §<«1Å_ÏŠ]ÄuÌŽ&“¢cï6çY /öNè~ví¤víÒJÀÇr¡Äß~Æ®™ôœà]slNûM(¿ˆfÅ;ûXú6™1†xepÖ³šy!X#ˆ²°í*œüXK‚Ü´5ÒòSuíiò0M|¾´Úd’¨AN¼¿¯¯ZhgÞL}ž¸ a¿@úi¯©MªAÐôýfƒ¦è†.Qíö8zè$Žg™°‹tMí6·G„ Ü2º‰&Ëð’{ºràÖ€Á™G[4Öí'Ì8˜ÏB@«.¸VT.¼ãÒDk !EÜÞ!ÿzW2;_½ ÎXjžJ¹›Xæ6#xý¶ãÍiyQEùâûÀûNÙ…ú¹õOF>ÖìÝ´µÂvôI€>_Œçzc2OggSŸ$¨ä3Ší!±=íãæåèÿqìÙ׿òÿöïÿÿ ÿ ÿ ÿÿØãàéçßéÞÝåñðîóóéìòèåãÿÙèìüþêëÿÄÿZëü5bu5³ÙöþÆRÙêÞEàÌÍÀÀVJ¹h O`&]7Js >Õ÷7€Ã.‚ ATÃk½;.7¥§ õÜ ì9 H7W†¥Q'1ã|ôû—̯ÙϡžE¶£?´$ßùô¼T_¿ù{Ø-&,ÍÒE"ãº>*[™04$ÿdƒè0ÏWØ¡‡øÑ(–¡jò×)Ëô‘Šba€¬®yü™wUTð:?LW£È¬³Œh0Y 3z eCù´dJdžâj3ˆ“ÞLÈa2@ Э²he°˜¶Ý!ƒv-ZÌjš—GÏVæ¯êvݲ:&qhy$9…`KW/x½><… Éd¸îqÞ†:«øJ¡˜~ľà ¶’´ ¶÷³$·® ¦V…öÎfÂ{ Ö:ÞÑK|¸Ýcf kj2œúHcšãÀxp,ä™gYÄìj'÷H¼Ðœ×6Sè÷ðT‹Gþ,§’‚"uœ[ƒ’OÐ)hÂïI“ Krut÷1SH3Y@Ø üXДeG‹µƒÝÑ6Ëq†–I& ÏŸÂ_:Ñbk¹Ê·‡¯xÉó]†"Ž€Æœ?½fþ†²×gðïÅXñ6ï2)b¨ßóœÂšÍŒo‹ÈõA ïE%[Jï‘þa1¡¶JÙRüÌ[2ŸÃ‹÷ÈöCj·PþiPÿ¤¯8§·7)z§‚Ôþ×€Ö ?_8¦xž‹‘*ñÝ¥ã6ÐZ3?¸Æ×ýWƸÌë–LIøÀD8ÿÆ‚7Á|Ô\Ç¡0¨c]NJã·GŒw 8s>TÞ¦Ãö1ÝÜSya›ÂÁJçßÕüL¹ ¯ C*<„n¸“ä?Õ=àÆ+H:(ÜsŸº.vÌXö’¹fYi‰~ΩjùúÔwCÁA¬q€+Ò*I?v㵉Î7’vÊã`Ûó“ ¨$2Ÿ±é~T¸¿Ã%ê<¦«ë¶k{~0ZŠ?gLk¬WeJf`3ÀÆJUzÑýØ´· ûî¬Ì¯léø+ÌFàÚîÊ{í%ÁN!K˜qÂhþ¸céÈŠ¥Ÿ¥åHsç°;ádÌ2‚OFÕòè®%à0Õ$!¿æü,üNP h$ÿ¥•’|(Ë÷ž$TÝÃ'›lüT X^¢¾ñ\'ú¤:ˆþè‹™j·Jè½ðÉ‚ÉS©üulŽƒj¬èt]éæ&ñ‹#ËéˆÍ˜¤VÒµB<³ûÀî·v`+tîNÎdW[ŠdOÿr)ýµƒùÚñÊ—hr¢4¢æ"¤°ªd×äF—V+Ó7}±‰Â¯áˆÚKõ#™?$18¼x‡éƒߥ~”þ¡›?OäJ“ï¯ÆŠå¼`qÆé"TT<Û…ý>Rx<ü1¼À´,›W/’XÒ-QzƬUy$)â¢bjõûYó—‡°†]•mK»©a#ʯfÞb—Ê¥d®G³;Å¡ì)±‰²4&®8@> ¡÷gÚè¤É‘×CB°…ñ²·ãÚP$ y8~­»³¢-Ö&^vPMɪ›¿Í U}íwK+R€ŽDÛ.·PscÀY‘;&ˆÝ ´ûÛÝáPD¨ */ꞺKpÞQë4ß—æùJþþC%åòØJßäPŒ^ÑŠårœþk¾§Þ—†éƒ„ˆîÂŒO÷¥pìÉXÖ`ÿü™D0º¤‰5XÊæŽÅŒ˜¯Ú¾Q! ÑE³ƒç@Pñg!{óLå‘8ŒÞ2 ~XG)ͪ£ö6¢¿=÷aj¨Ngñi\ÆY²x’èõ<}oŸr¸Ø!†º<É-YYkNjÂ)D¤ËÈ@€/—–~U­ÄCû?œ‚i]Ž)ȱp·y­ýå».ÍÙÓžÌ}³3ð‡|¾Ìé§Dƒô×çŸ@‡Œ 7Ä8Ö¼b.ÒðÈÜlj#;“ë'ޏÿ¬d³8ì .^½n<î‚hz…¾óžt‰ÇR5Gù‚ˆý¸´ÿË@ï…bNàn¹çßOü/1Nù~¬ #/ßv& 6úP%· ºV ÊWZfXÞ噣ìñ•_­¬Oó%øµŒGÅo öꤛ-> DÐ@&«%UÌ®ÊÚ‚©'°}R†L–m×ç}ú⿺ðþĖƦY4®5õ… /S7šç1C<ÜzcÀ×Ðè4 WÿÁƒ§:²s5íÆ[XtKþ÷ˆÉ÷_tï8„úƒn_yzÖN£. m¼‡åÅ«,ðe2–‚ üœ’¸rù£‹Ú¡¹ý½µÛ²eœš‰ÜØsÚQR †±Ñºïü#äü|ÜxTšÁë uklÉå= ‹—…Œ*Øû(šÓ½üJŠŒn VP‘×/üQWÔúÄ E.ü,ñ@ºpY ZŠšu#Ò€¯%,pð&¢= ÑØ2Õ__å›Ö°zæ˜bŒ›¹Æ‰0$\!Yy4G¸?Šq7;j±É›…_Ít¿ñá³áP6+sÃò¬Í²ÝÇš«fƒ&´ºdÿ$5‚ü‡R‚]nïÖ˜pù±|4 ÿ]žÄF˾Ån·iSÛzÊòB°' è@O>HdJÎÎÒ¸Vå$Š’M´¯ˆFi0šÑ‡ææÛ'Ìwq@J݆ö Ëa “É~³WAÕ’&pZ©—=Yi„¾HºMÖÕ¯F±ã&åqâüM[åÙ½UrЧ³d–ÒÒ?ì^Òpá'é±XELC&o´®»ÓO©U½DÚÛ~§’«1™1ž‰§b•¼ÐÇ,f*?fÍbú6L,‰VMcieÂnLy 7Ï|"%`9 ¡¨¥ÆŸÀ'mëØjw³6…n¤T&#»îc&¡mÏ~<ÿ:òQ7d ÔÊ£Î-äšáÀ'Žüðˆ›Æ7ì‹V3faPˆ¶ˆ`öÂOù&\*dk!ñ¶geT2€Æh„ 5ßpŽ¡Oœ§Wã#|(›5¬k›((‡MÝÞt¬³dF%¬ÕƒËƘ¬³üJIßnÛ¼:˜~жË:˜Ñ¸â ¸kçWço¡ÓµLzŸ`S[êOƒÕ¶/Ò€«ÔØ„¹o”‡ùdü’”#Jxø ÷`3‡£ÂTCæëÓ»‰n=¾ B7+©ésü{F-JsvîŒz9"TC†‡tÓßðOšÐ¿\h_êϵ‡gEáH¹s«gB𽪕ªvÕõT%[4O  ³SÏ=¦QQŽ¢Þ Á° ÷ݨ$–HF* pŠtüÆmnŽæÆ‰µÌ*eÇýîw¿ü1aZ „[?nï’ÿ·†Vuã©Ü=“×Nþ ‚.Ï1/ç>DCÝÔõûõöØ V_DŠ·Á–jrÍÅUa7/0ªÉZ)MMQi™-Â}7z.Ìíz›’{D‰Ï‘ŸãÖRØ$áõGÕc»(t?dµ8«hûÌ´š=>ƒüÅü{®¶Ý:EÆ0þxø'ˆCâïýTY­j̵îɶ¤+v¬þÔu9áš㽦; L$feüÆ1A„:ÛHM¨È*çrHôÚ5aÜß#å o·ìеlš“9t)•âVg¬¨€@%Il `v‚Ú« Õâ›å.æeÇB²è)4Lxžk€eơʤJmÉÞ9ᶉ&Ð?)¾‹™Ðu“Õ ê¦¸î×,Ç'¦fdf¦í7‚N⾡ƒUyƒH)xÆ"bªè%‚ŸÔ††±so¢]Ô›;v™;«×±¹ÿèuQɆš´’Ô2» Ïçuv&ÐÐ,´„lb÷í3¤Œ]Û,bî^¾^ÃIòÔž“RœãC­kóÌÒZ¡¾ì‚Ø7tà£{ïí€;Õ¡ÏÔ2¢X)7nÇ÷°ïß¾å‘üIwi©ÊA…ô†:òp&/w¢å®ÿ—X¶\1}ÍŸ²ÇjØØK Å2šÕüª1.¬û°eÃïKñòŽÉ• óµw£KÕ óÇçõåm›)cMðr Ð.„†5+ÉrîK™lÝTÌFD­3ôW=è©Ù1HMƒ=`~ j¬·(l¤EUºÕiÿ‹ÿûò°¬TàŽä·|߸f:dvBøõ™ŽÂ£×tø 'OKÞ#Wóµ.UbÕ{r³¶’-4o¹Anney_gÒM1´Ï¾RÜÊ@ÐÍuªVŸyK‚,¤?¡t ˆâ»’§—Æñ‹apmþýPPØoy "yš!âV/ ªC£S*üÍà[;V]8åxöæÆøÝšeˆ’™AÙ{N6ä¤N¹ð¬¢´Ó·>íÅYó Éß‚¼ÞÔ”~,Þ!g²¼¿½Aç«®ý§uä/ jàWN÷j¯«í31qy -r~¢ìCñ¸9XaÇ5… †ƒ–&¼R¹°vqsòãNÑ\H"Aá»å~)Û®<4Tè¿£§û^Êa“§û\k»—¶g€ØìËò~!¢eDÂEA<“¦Á–`t•C€+K‘’£#Én7#šY„ Êb2ÝžŒñ{Cí!eJ)ÚÝ"Éý "î’LMÀ/©I;dÛK< •kÎ}2ÝÑ\¡v]¾ê:“E.Ãéaü|¯Õ³aÓ\“.oIÆŽ§ Ø»\ùÞíÞvBÜÕ-jc”±Êðwf£^<¹æÒZË<zBêž6€ÁÚ0™ñè *“,Ý&¦† ó"^šôÊaÖz×é!H®aL/ Ãrò—jåL Eb‡nåÐÁ¾×ň|‘õÁ¡ª½Ô•Ub‹ÈˆêLɃo‰Q xBz6K ©JYÚì›_b¶f¦f:®«J•`UÞ)µf{V C†%Ù–bcøp㋽äŸF…ZËÓú>§Çáçcd>ìÙÀ¢£“: !. ÞÞÌÊ_ß^æz4 ûøUˆÝÛ ´• ¤q…pqÖõï’GõZž&XJ@Ù«„§èFÛ8ºSþãÕýä׿þ‡µ€v¾°ÜU3 Ý»L (ÎË/ïjŒ ¬ƒ„o·~Ó1OÏ¢ˆ³í'FðÖpÐÄ¿€>’¶Ó57§ ©µ©7¿]¡®–Ôƒ¨R——HŽC \¢¨Ï7¤¨$¸0ÌÆó«¶Ì|N—~Sß,k݉XaÀ0&©Ò¿5Iêß[KÓ«ØÇÎM÷a>vïuOÐCœí›ÐÞ¿³Aa_8f¸Ö-3OAs¿üLË÷{T“¼+!~ªÉÞåÛ$[3Ú.ðý‡L÷Ž¿|£–+‰•FëìîWÏq°ß„h„ðñRç;:.ð«wPUš[¸!×ùB ‘×†Ç ŸÈاpଓôvã!A Ï'uy8J³„7ªi5ê?Ä7ØYÈ‘Þ4íìÑíݱï—+a#ÇbÀeÝ ëÀ©{YcŠº‘¥©YFÒ•ý/?.—‰ëܚ¼(Ò ®?°¼iò ӌ浤$†½ÑÊ·íQ`µ¬óÌÍ)ð©èu΄Bñ ¿©ã¹Ì …#îc%°Ã¦fð¼¤c¼î‘»ÜÍæQŽÖ ÚäP ÆdüL¾ ãÏ)§c.§¡ä£ùÎ8þ±ï¨çŠC@¡lˆ JzM›![’;ø”aæÓœfEúIä°Ò‚øåÏsº}€ÍVHr$R$?·¢u¹v ƒ\he1K\­<8]_-”˜¢[´0­öÍ6·fæ\8z8;aü6nÓŒ‡BÅÕû ¹BIÞŒWXo{¤]XM_ìÉ|ðà%I«r|ØrûOZiuÈ%αIí8Þ"»´¿`§[†ü\Ê ÜtD Zk®Náé‚>8É3~a»c¥S×Èå#úYý­_Å4 'üý§Ñ}ª›èŸÅî;ž) f|úfª> üš,ωœ¹KaYA1¢­¸lj঩  Q_Ö5`«b䤀HûkŸiGÉî'G±•AUÅñiw/Óçøßp¶ ¥áÆ€zvq¸¡E¯ß$¶i¤NJH+½‹l®e?üIòŒ52Òw@溜o‘KD(% ú¶Áê™·)ŠY èuG]W@Èš§î>d#ï%/ײCø}uo ?…ëJÏáRBü:hM9qÂ@À²ùPž úò²Éþ)ÃÛ‹…ÍmÕ+5›‚ÿ\#+F‡1ÍûƒáZœ¢´Cب+â^¿VìMÖìƒ{¯ñ”9m/•*‡Ñ7qùÛ’éT¼ ÃòëõásG§Ú¿ª ÿ%;óËÔš?SU a»–c-+p´¢ð­CK7-I1H`lµ üL«óÃû·xË ;:bHA+hQh.³‘;r}cƒ¿ºvt§Rï6è­MÝ[ýYZž¦Z:Ó8x ¬§ª õOœP´8"³ðåb⥛'íô­J°ôAͺÀ‹ô*–¿–þÙûûýÚz9p¦Yba·ZpEY®*í@d9Ö£›ð§'äÕϽÇX Ð ÈäožÃ Ãð4qUÖÆÜúˆb‘|©á ârójP§±›õ%½˜ÂæÐÈ+pŒ_‘O1Û¯ù@=F#¿¶3eå>ðlÿ÷Þ Ãø} Ïü/"âI–Vk³ë•u–•”ò¥¥|åùÎ #ëøÔ´tMõ5Ⱦ%O#3ŸGè…&¦Z`OY…{ßÔï*ä†ZóiH—9ôRޝ1ØK39#ÊcL…ÿ`]ϰl~ ç´Ÿ0i½¦}6sÌ*)¤,!y‹€J—ßA”gÇrR PN7Âà;IQ»vwàMkÅVZáäï'Ìã×Õ+›Cìä—øâw*¸k€Ó_dÀ5§þëã®¶ºI8ø&øZÿ@Ž+eÊjK ·®Ôý»Ñþž«˜×÷øaÓNÈP Î8¸íüIˆ=¡>QzÇɽ•þ|ÄHÏ7ª oÕ‹ãö*Lè(ÂGÝÓTðŠsƒ^èíaJ¯SºÛfÝŽ¹PŒ„`,D ™™É®xÞ*†–4U¹:ÐâƒËºk¹÷SX0U‘|Dqq>Gzt·$šÖ'šãPorpñ!šT—ù)7Å_7Ø@ Í+¬}ÝLL`Ã:Ú@zöáë(Îͯk—\|ȃ>îLüõlB:L Åæõ,l¨9}¼¶Žõ§MЖÛoŒhhØ® »·0KÈ«`œlÔ¼pµ) ô?¦âŠTÁ{ Ö “mj,ñó‹Ç3Æ>‰—¾´ë ü/ÍSYáR6£÷”A‰îÕF ÿ +½m€tVŽ Èk»¸·s0®“œOœ)X·]œ‡(¨Ýš{åÒÛ0¿x\™­}KòŒ ¼Üe,:† #Ãè° Ó¬)hƒlŠˆV•Oª‰ }c™£ø‚†j§H´x£I§9;Aô!¤®Ýßí€(ãÆ JÃUù¼‰EÿëËаnàæ ¯ñÃYláÒÞ|2mŸPpŠo@VCHÿôØs÷:áìËÈœæâ¶iü;qQø¥¥_Ê‚ ø{8w\öÐ-Mç% ý“d±‰!¾üMsÆ ¤0ÎM|{K­±þ9„ÿ×d5B‹¤º©‚â.« ×N3'}’úð»rmòV¹¨ùüó‹»|ªÅ¸’]ƒœë¥Vé"Rˆ ÜÀlÑqêŠ>ÿey[¾²´wŽƒÑ_;Í d½añÜc½^)1u—mì&huk§¢ð¨ %©L¶1öùÀ3Èy«†‹»g-ºãÑù.åEFÛªŒþG›JÐæª3pˆ ¢ ËÕúäDõäñ‚Ïõ2óÐ3;wzL”)Uëô¨Â‚¾]Pò€r{Í‚ë±ÖO4QØF?µ¾Ïû\œÂìû°BüI…©hKÙÀµº¢ Ü®VõžbFVXf¦b爞Ãk¸¹>M`ì»)mñ†Õ=nÿÕuŒo $‘UFŠ™7‡ áþ#ÿ_—Lé\éåîm±q¥ïiÒfˆ +®é3‘9¸§‘ÈlÂJqµ/Ï Egym†Hd™U‘÷š¢ž\o¨¡°É5¾Õ4꺴TGÌ‹«L?%m}ÊŒkXÝ×z˜4-[±/ªbŠ.ÀìÅ )%ÛŠNì£T)»#´Jò?ûÏê3®ð«öîƒ.xFî2ò"0¬'#˜ cݶn„Cšõ½š<Ã3Ò¯üM3f=e©ÌÕ¼ü{œh5¤2ªòü<]žq£ÆYø§±šþã%}=RöñÖi‰Zÿ‹ºéó}“zšôCŠ„œmÅ÷M7àlµì‹þ¾@.;¼¸ïH.Öô3H/8Ô‰õúoGèŠo„PÈIŒÓëøû3 ÂvÓ«1UûW±“ê9–}xÆ•I€hûåŽÈ&¡$2=wOjþny ùGÔS2Õ÷s¼üÍgý_•.tvGâÏ´ŸœÍÉãÚQI’Ó;éXjã°Î`^ê(utß>¾³üJOÍ?öZÚZ ÅYkï G×ceÀüX$ìãžh%ü%ÁmôÁUaq#õð;9(^ÄÄu޾cNF¨³Í¢v;tÏiQ>ñ2 ·º}[ÃVñl±uG>ô²Näh$ðNä{ª;³ÎŸ/…êÆ]È$&-ÿ]š0OÙÉJŠã-nP«¦ ÑÕ†Þê ½ó¼Œ°–qÚ=—ñK§k!“š2W챹пΨÐó_! Õ•~P“è,Ù^÷ÕC¬Ž À91"Úգ%Zk$.Ñ®U)Y”ñf*|”H…øl£û~]uIŽTÝêËVK |vvvçæ'ͺé 1üI÷Fà¶âRöüµî9}š ó%y_ÑÃØl‹˜”"A6²\ àú,€³”Š#¾{ÒŽE×ÓC Œ˜£)ˆ¤O]Q™¹;êûm§¶\ NŠÎy3ÍD¿2«¿©æÆAkùïòÁÅj$ïŽ:9$Ñfƒ"LpÉk®5B«” ùYᑵ$T&ÙDƒ¢Já·ªeâ"¶eÂ;õÂÉ®§@û®d³êÙ°&+mS—’}C}JÈ@˜µÝVâûâÉr´¤”»ž4ð¦ Û¹qg!x„"© ¯­¤%|¯Ð#½ŠKÛ ½O\máhù‘jüLÚL ÖÉN" ºšÒ| )3D)òMDÀ+öìÿfµ[ü/_@ÐçïC£•KklÇãί„íã¼ÙC¡¸÷O‰Ûø¥!ÚÏ üš=Y@d ‚ †ð¨û+Ø¡4ûZÃPÉêŽlñ;ÞB·X©£VÖGcÍAGÞ#‰ò àT¨Æ`lý9JOJ.¤ïAÒ³j_º+0ˆ¨ú*œ+,"QS¹2›4ý.Tñ;‹áõ Ï´Ö>€µBTªé™"ÔòEyНq7FÃU«l€üK?è×w¶;\Üïµ›IÃ{ˆµ¨ îG7eÇPu²q ÊŸlaÊaÐ2.eÅÊzÃ~†P0XÓšNNœ:©Í³=Åaež;ãÃãF&ûf§s¸TÉ&Ú¤ÖõAÄ}«‘ØRzÒø RO ƒÙ.²{”´ì ¦X™ùï Ñ5óùÁÖlBÒ¾9´”*+’|(F3ë†fìÉU¤5 ™ØS…+ŒïŽ/a‰E¾{–÷kÊêý´äéõæ$„„œ{xpÄbß´ô”qUps‰Å˜|$ˆíÌB:Ó_o²¼ƒ¿áüIà#ÒBµ@¼opMr>:|d© …¾wüN –ü3üIËBjΞ¨¹-A£ó"‘xi''·ù.ºÓ‚C>&ô@Ú _ëüà†dX$",V#«Ÿ¦-òKÉ­‚» oÌ–íY1Á‰Ïq ª¦hyÐ5WüùB&Û¶%Âå´U»9Vô™ü‘î¹ïx“~ÀÒägG¼ø+Æ»ÙÔÍNg€¢ߣ*"’“!Ñ8¿.Âwö…·:AÓ¯â¾ù\åMÜ=c¤àíKW»½Ùn‹ú&…<˜ø {Hñù®ÇÈq>]’ ‹ÆÖÊ1Åe,¼•ìgc´wa‡J¨ÊA¤kK ˆ8žû ‡»/•V(ÜLtí@âs ðé8~7ÚN ïÛ¼˜uÃ?,ù|à0=æEûUèøe_ÅN¢¦ªX؈‹¸‘jBWûó´‘}e¨¾ ùîôÃÜ¿>x&ÿ=´£~øQœf x-.7ÉMÊ[9©Ë-RÕþ_¨úœ¸^yä%`쯥iÐi8u­ ü|’üü؈`X¡Þ&$ûÖt-šÚgxpèB`ªÂŠXLÄÀ 'éÂl ðƒÝKÆÖÀP‹•D¸!/©õ‘.Œ=‘Ãvç'Ì?ŠûDlÑwÈ›î)ôå`Ûéëy½‹ŒÄÑ3E%:'Ð`·ø‚ÃTvÉ-1| {ÞrFã¢'«²¿É@l˜žÍ"™ ›H‚yÍéJugAH†€Ã þ0w ç 5LÃÈeô¦Ø98vöuŒÏàpã2@£•ikéÕÍËüú¾“%sJcÕ°ƒP¼ݘL»XÓ©¦»9{¾ˆŽãiÌs í…D3§(Í÷\* SJå+JÄhD@D‚壱("Ë®¶öz8”.𥾨¼Y]tÿSdqU6‹‹ªiS xúãF4£C™9ÒùF°’;?òt<ì?žf#€¥X}6â&¤t:Lï~~EÔ¥º©ô„̬ƬzñGni,²B•8‘\¼ßÍ‹/3 €í7yBòGcJlîYЭ׿{N­G­FÍ–Ép{5À8n«Ëz^Š©€o«GºIﯠp+Éhwâ±êò,q¢CÊ¿Û Ã”×¾üI„¯ǹÂ("lÃ! ’x hi’ø°Œ¢Õ±Ó0<ÒP<âðÄÐTøUq…-¸OþBÍ$Ú[žd^zQ±ã$´!“B®÷+¤`‰~à­ÀäCÚ8·Ò¿õFkXXy;ºÿ¶¾~,qÄœ:ÙŒ¼÷Pü¶²æàg5EÜJ?ô•>©WEŒ¦3Š.ðnK¯ïN%ÆËÓ‰ãôмl¸ù îðSÌÏ­±4bí‰}öé1fŒM‚›É‘I~EÄŒdèÚ‰w<Ÿ€}3Fy:›§~ÏûéTè/Î.n3À²üL¾€gÆm «îŽžf_êÕ³ P¼Ì¼´0Öææ!ÆŒÃKþ3‚É&Ù®RjVzÅ`2JÔ Þ.Aå'rÄ8UŒí¸?4•VÕÒ·•ìKÒ&"m…õ5ÔA7²E9,'ç{Y¿¿³Ê¹ýN;›•,3©Bv<Ï”€šÈ¸ ¹T‚sSùº®oÐ)åƱpÝøšZ) 邾&²ýñ3žnú3$DGÛaŸgx¢öŽj­È†£‰4 U–€5!XyX„ãnT·OyºþŠBaQE^iÁ‚9Õý¼£„÷Š‘².ûåE#‚À4™ÄçüJKÁ÷îˆ ‹ã fü‰¤í~ïìKG Ö[«ãsJn ëRÂZ †•³ Ƥ7×ËNQ2O‚e2×1°> mày~ÓOÜ ü†©âUIÊ?–é‰a7䬯dbÓãyè!P÷Ê^Ã?‰ÀtAÖU¿ÅÈÿy÷û¦2ÆÁ;@ð÷chR¤i|ï£3»eÔOí ë#½[4î7ƒh“€ëù¥áx#äKuà:RÝ•^}3;âÆ>{EkÄšïÚ6t6¬¹·GcFz€ ;“~tà€?¶ÐAß??&€x\¯Žnîåºêü$Ü·Ìݹü.VÙSÉùXoÖ%댜æ7Û††ëÇ_ù~†pºF°épf8 †ÞâB’6.¢!¢¯ëŠV¦rR„°#\¶pˆ*é~…‡ZšoÍ툸°L¸¢ºÁ¾þ•ËêjÜtïÂ[¿¬6Ñ!ïÑà[$·ÅŽ™ Yâù £HЮÎT_L˜þ‹ ü/©ýyx·K|qótARÞTi] WGH†=l%U@!Žè‡ëD¼îöÌ? ì÷¶"ž_û•*µ9Õt¶cá ¼AÃ"ìGa» ð¿ÐûÅkÙY1?û&K,IùŠqm•Øè:ëwŠ’Š;ô'?ÐS’ÖCü¨cùølI®Ä‘ÙiÓ[Àf!´]»€”Å[$qÅ‘ƒ0Ëqÿê¦Vë‹DóM§niæì'3àá˜jBãœé»dïY72Pâߨ‹WÓí÷ˉ¤®s9Ù!³¤1­Ãm5N¯{HÙ¬ ÁyíBJ[è9ïI+}”Ïa|ÅÝn¨å#šx žpƒÔf„¶#ßRLa=(‰³k£4ߥKG9N}[©s)é’ö:‹C.DTM¹Ï’àgÈD pž‡¬ØÀrž:àŠnïˆfqÒÞÏ,î Ä[ŽÆÙs'±ÏÖ.ð6å ‚Gd7aÌåá­ÖWc|*%É-ÑÇPÙùbö½Ò0èls¯*Âæ]ø&!]ê ÷tŒâ¢¸·ü‹§¸¬ö‹Ë^”ÚÍë>Œß[g™>œ²&4j‹`_Šêsr,“pFhT kò•Óa’j"m$ÙaOÙ‡¸¾zlSÒö«›À€% žÁÿCtêÞ¥Ó£°¸_åÉ“ëþg̶¬f8^­S³±[!¹'gŠˆRŸ\Mpë£óü®q= ;>i‚8•‘úmT&˜/K¢´ªl}ÔMß×^ø“Z° Ž'‡i슙)J^5Ëu‹ Ö‘ª–¨D›sgøl42+!ì AŒje4uW2ŒyiNä±êTeš]®C§á•„'-4ú1ïQ¥ ºõV¼dwz‰C´Žñ«˜Š"æJêÝȉD,±ðé"\KSÅT$á7œê?DQ{±q]Už_8HX.5=ø+]ÛIìp("zXì›ÂJg&É APãmÑÙ ÞLZÿ(uû¸ÒƒvJ’`°Ô»}ޱX¼Ç\ÄÏ®Ò(çTzL5è¡Î*{Ùˆõ%$~ ÚÍx¿dXÛÃùlÒxÙë›”Ûë*‚»Î‰,òAü5×–üë |a/rØyôÀ>­7[pµ±ƒ}9È|ŽcÓ¤Âsë{å•å†ðV/Áz=ÊzÆÅŒ;ÜnÇg·,¨ºéïW1ˈFÛØLÆgØâšý…7æäQF¦b<:ëÏîÉü•0Í.ÔÊ<¹8~Éó?Ân‰IÿÄøÈ?G´Ý¹'˜˜Á‡vªJ1ÝB»‰ËhËê?À gòWŽ©¡F¼gÁø=롚¶§Èº©zOÜ›¬!’•Ïß&ò ù®Y…A³8—F«© ò€ÿ7¾Iù·‚C%,ò7$í‘ U£…s1’ÑsÒßn+…!¼:QŽ Ør}WtAýÓçÃû¥¥˜GlÌÎÍõÅR ¹}M1‰4“ÔÆ7ÿ:ÁüaXËMJ¦^_bÜF|èŽ oZdî§_c¹³r2G!JüÜ,¥`BÐ0Øy’eÓ‚U…ñˆ!OSÇš;öŽÐÁt`7z,Ô0vÆ®P ›s‹.Ö‹>Œ!gçAawžÊj¹É>Ć_öšU[øý4¾“ãïÂu'z?_7S¾ªîJØ".Òz!‘î‚0(±>;äŸ0ü»(ˆÐÒ\ ‹À¤œXÔ5]/q8±ÙûaøöaÓ*™ßÙó†n‚›V¼×šdËøoãyŒ¶–ÑŸ§,nUqÊvz˜—ÿ|‚E¶×p@ä«ÜrÉ!&Ê=LðÍ0¬›´ËâE9]–¿„ef‰ýÖô¼£èàü²¡¥E[0 æ}%!AcD–±äå„9<Æò˜{ÆLxSRHQ…6å@\o5–P¶ÜŒvnbí­Å‚ï·}ªsðI…ØÀz/Žû!ÙÀêwg½bš¸Iâqk™Û98víÅÃø}ؾûOggS€Z%¨ä4“CCùÿýðÿýôÿÿ#ÿÿÿ·âíðâåÛÿåëóÿ_òøÿÍÿÜãè÷ëèÞßæîçáÿÉÿ7âäæÿÿiÿàÿ¿éêü¼íŸøWý7‰ä3Ïs|³MɬõE“k,“ R'ÞÔ½ rì€ì)Î|§5/" ÷pɼ¥‰ùÊÓÅ”ŽÊ¶¿¥ú¥²¯—Pµ ý¥[5Ç€–E QX“d•#žñý _ÏFÆ_€_íõXþlŠkÎdþõ,–UÓ²‘Ä4+`pÓÀÏ'mœ×'ï”ä ŸÄÁe¾>$¾ßVÝõϹ.´€`˜×pñ¬G‡ …žÈS3¨á/0’‡î‘'ä\K D´Jbš§35ùëP=?\VlÔ|QÐé…íy_ËêHbw¯"4ª"1mÏ7å?‰J.|ûü½ß.°±pø¢'CItʘ&yïeEî—,ŽèJÐb3áù·Ïžç þ/qñkòVFèOWVnŽÕùBО·6N’&bUïǧ¥¼tåîìs<%‘Û¾!•Û 4×z,Ó›{ª›ÑDÕ wCæ"MÒÞmÔ5ÙÍ×§¸1œš”§P`²hFoH:6¨#·ó*†5”Û¹˜ZY.[Ör¸÷{`¿Ä˜aŽŽ 9#[uEäÒˆølïþ¡…3šräÉÎŽžeµ5—À¯†³Þ†Ø^}Má ƒ¼‘-eMÚùºr€âˆ§owÜãÍ­ší=ðë¶ÆÔ.…~–Î%jÉO¼ËØi>"¡5wYª.ðEGɦ˜},-è3Ⱦ4Žêœ+¬£½{ †ÎÉŽ¶FtÉca»åîÛîç²4¢ 4[8QÃQö+óÆþþ¾^O¨ÔŸêuœB¶y™P|§“"7@P…˜÷k ÂÉ•§h°eœ÷¹(cÌYøº[J_'Eù$¬æß=Öýü½ÛØìâ/û´W¢"›ŽºxØq‰÷5æq¼ž¸…G5úZ"ó õR*¿”ïIYAE48»RZ&4·áÞ©á×~‰sö™œÕÞBJÙæ£ä¤ò›Uå}Ï遲ô||‡°Œ³U¸–c$\ÿ4D"éâuÄ_7µ ã_|­5õáA)_¤ é“Wrƒ5Á»™®ùdÚÂ\B ÝàK8óÏ™ƒôHÜVoâ•LZÞ«âÇ“—cý¿e³,ØqG*+ÑH^w›¶ª_„|ÆHø¬ä {W £üó¶^šçq99XÚ(½_å<}ü½¹›âáJ Œ™-<­œ-Kãv·¦É©°J3Mgrôz€Ö» öÀr t¢×`/ŒGü?ÖÁç¾§T´ÿ(Ôyk¬e³‡ö ǪñBžêºjTUÞ0 MÁÜ©ˆ%Àåywî^Ø2•ðõs6ÓÙgÍ¿à¶×Ô„¤lô_B‡jOð²œI'î3a ±¸)¥9–eçU„„SjÃ}d«Âã*YLpŒT3ª,-¯]º?'ûoÖy%‘´»dXrá•i&†áš’fÊ <æÉ3ã` `È Š™ _"›%ÆRHœð0<JŠ uöá,Ú«NäˆZ•™rûü¹)”9_Ö̧Šnc÷‹R aù=Q¸•í#°9> ?Ëšýr3ñÈu ÆXK룤X³Hköаp5¬ê‹úü¯1õ=­&5{‘Q>ÈîûÂÙåƒöú Nt¡ŒDž Ã$²ÃˆÅP„óȽúÄ?-[ôúÔ…¼¼qa=àªv ‹Q±WåFÛ‡IÜ—Ô\ê$©Ò|ñÖe£¸–ìQÿ‰RÕû)?w€5ÈÀ‰áb”B§#Ø“­Ö¦O²ÅCú°îXwiÛ¿Ä «‚ù¤W¦9ÖAÕâ‹LÔ39ê¯ÇŸBåÁ)k!›Ï¨!åPë|²k‡Vrv2RÑ/¤Ž“îEY.=ÃØÄ‚­ÒÇ:ròˆCtIš®&î *•à> ;çGÿÄ c¿t26©«Žé¾³@DãZd&Ý;¬œúüM?¤yïl©¼¯uV ãÝJ¼#^gGs¼ùµ °|$öð“écÙø·%¨Qõ±ËÃ@kIÂ3-ÅZÓáä=À‡R&™±Ù°q8”2nà¢ò»È·ÊVX€²¼£aYþ! FUG¨–S¥µ?ýÍè]p“Mxù-ÂëÌý¾€0<øÓß5F\è,ÖaËçÑT¨ ÊËs¡ð,­¡aù÷)>§ƒ'“ñ»Ø?ؤµþ|ke2>íÜ\k/Œ'‚Øš×°‚3-1ö#Džª´å(7ýåì×Ç1L3ˆ¿?c¢E/ð5ìÉ3Ü3Ç‹šaØí~Àgœ€B‰"á¾ÎoVý½N:ù”ÅMÇÇW]˜ ªp…Sp(L*(ÅqqüÙÜ©Qa£³yHg…sTï‰í³˜ŸÑyÌ^MЮl8êÖÊ©Sr_XØ›°e+»+¾ÿQU¯²sËHـ٥€#R8‚µ2²¶ì.HcóvxºÍa‚®µ%RYdÅ$/qµÃönߥE{cYàø8'þb¢²f¬¹£Á²HäN °Ê{¤m¨¡ç 4"Ó^Öh_$_O{Q¤kehpÆ ,XA~v;ö}»wZ'O¯B§lWqO(<’ [EÂâ߻Р‚ÉŸÄEß³B£w'…ºy`ó)¢ÓÄovÅÍ%6B©Å™«þAmë–$jSk(X'Ù"güL»u”ÒÖKÄü5(Œöú€ ß’2ˆx>Ë–me(^\låJMBÑsJ1ž:"S'ªD¿€8mÊfUvòfFu]¨ Ý]éü–$LØ®Z%!Çv,žÇvñپƭÊ? hØ™ ! ÀñYÒ)uEz ¯M‘Ú²…‡§•^_þvÛ—¥ÿŸ$(JïÏé×bÄ´¦×Uº:çDÿ²ò¢bç>´F…o…X¥ 3Ó$RÜâ)#”Ú›â!b!]Ñ“ä¼RÁ3—si} sAž&‹˜ï"¶Ø˜ÕtÃò]yiMã` cóÔjP=²«~2†WܧßиŽäµ*\âíöD³§âü|®mü¨-êNÄùŸHÚT#e]Ý:*_gvp‚”+gѠω‡² ‰»tIØ‘u‚{æ·–b½æïñÆ´;ÍQ,R¸:‹óY! ÿò–-²;òÉðärLh!Žü3󟞎PÅä¹>(<BÝI~í@°®ÑF|ýÓ€¶˜˜6[BˆËN6!Mrümá‘z ­ú–d¬íOéq`:Îî´W9oO0èdÎÙÄŠ˜âý†Êu«x_ÙÿÆÙ{Í¿R-ïc¥¦q¤wf4—(™pR¤îFÛPRúš¤HâQ­ÒÑ—“4}X+1 ñ~´'üÛ8É+™µ[ÜA€ÑݶÏîñÁ l“CM´d. 6ËÓ¦Á|.|ŽÊp{sXí6Þ¥AŒÄö-µÍ™AܘZ3þuÌ|ÚƒZÚs>xôë•7$çgÄ×;]ÌXÕØçßíeÃ+Òy‘ð'Dó9äJì¸g°õÃ Ú ˜VÊ×`rºu›ÙÅÐêFÌÒ©7I£Úûùº…•é‚ÇæÝܯ&XwΛŒâÁN}‚dkp 2~¨„üMõs‰x€¬ãŒ¤+h7ã€V§¢ÙTƒºU89Dx³3LT6ÿ[¾øòT’ìkö÷•”ö3õ>« ÂfºÙ[꺘2~êÈð>’¥ð͈åIóQûçuÉœ±ãîuà°{ù9Àœáù2r³³"¾gÅÇ¡‡bÍXh€ëÏ ,?’íHãäÒ¿‚Â+DódW¥0_”DH¥¡L`Z qWßÈ"§W—a9æñRG]¬2Ê[aŸú–Òé%ÑMlbt 4Õã<€ŒŸk0›eéîa­ÂÍÊ{büÙu…š á£/ës½©YÖ²5_s6_§™äÃ`-ü)Ñù(Ä ŠG@˜Šó¦è¿„0O¾¯Ié£”ì ¸e;¿7ûÌŒšæ¨<Ä~Á:m®çë¦8_|¤ä=ÉN©,å ý²5,dÊÕ¼Á(TnB@7.r4-N%ûKýW€÷ñ3\Ì5Y,žÛ{åÃcÞøªÂhÈ“°¹ºÖAÉ‘­?ý>A&˜gÀ ä•É=ú¾?hàv޼K_ÚœÆõ²µÔÑég¾(W@åá8me2¹9„+*EF|rTm;\T$‹PM“Mb¸pQnüLÃj ³‹*§ß¬:0l<ð€NÜ¿#Š\T±á›nfX4I»&Kï7ª­ÜÏWæ…Ð?'œVÛ, h¿Ñr–ï’»XÆÜ㣠¾5Iyƒì=HÚrʈœr´ÐÛïþx‘EF+‹xª¢°ä‘š¨SÊÆQî"Äß¼¨ä®×ñbR¤äÙ³ŠüZ„!*O°ɱ!ƈ¨Ã¬ØY7›Uæ`æ ø-ĺÝÝY2—„r;ÅYTžz¥0Èð%ݹ{=äbŒnA÷öûF=Ò Í«ý¨>ˆ—l‰¤s R ovÝpNC)ÂÖê‘ÂìYüMWK’œ™ð À_šè„—{•yæÄj“9ªjƒö:ö{Õ˜—ÍY¥ñšiH„kj¿MÄ¾ß $Œq¯Û'é@é|G·Ü>Øü–&órW œ%§ûÑTÊçNL0¨÷Û>Ñ6G’|êö´å E Û*næbFð:Ž"sO¥©¸ÃÐlÃó'.%öÓ øŸäj‚2ƒ²àßÂë“xÿìí6œ?З ' 3G{{…t/òÊà,•Üp ZÃ\tM] /z9òA’!Îùqèë/Ý¥p Ž®B—¼ø‘~büƃ§Fþ{zº/bâN{¬##íÃ8^OP¿bÞ°¶P•Í™™riu:î‚ûwžs¸üÞ«ÀwQï¶ÕŠVNø(éù yeµ¸Ú§Ò9Rò35“‰eñ …åæˆ¦hŽÒÇWÒ£ë߯sÎKÙAO¬ðKúj»àÖ/s3•òªe530À¦ü–G¯0yZ&¯L£ôy ’àú‹(C®»%æÞ\ÐÌ¿Ã?â„ ~™Ç#8jR)3…üÆl âH£k*s0çí¬n‚úäÂíVl¡Ö’}³…¥®ÊíFÌx£O¤ ü^‰2dàOLùÓól»6Ç\7Ç Ñn{XŽ’Ãó~†ðÄß…wTEM~€påÁr:G£´yÖâyKþ¹3sŸ‘ôÅ}Ž ›RWš ÔÑñÕ@i°—Ò÷Ø!Äí€Ï`-ü›1¼x<[|\‡ØÊçxŠ%„º†V¹‚$7ÓŒ±Í>Ó»í^^]eÜ0)#Éô… T­¾›­3¿"ï‘Áq‘jÏ‘nT%ê5Î̗чüÆl½J‚ß^0¦Bó"ø¨œ$ñ¥-‡1Pøß ²-!¾—LÌMæÈéÐÑÚÑÊzŠJ¶óe£E\D®Cr€w–ÀG^¨wumy)II’°ÃB·B?YlÕÇ:À<;Ÿö•Ïš €bîe׳®:þý8i´ëäJ´ˆ,9Yýnr„÷î˜ a*\Åæ‰ ßE´ô̈ü¯¬– Å1fÓT±ç_þÞ€4RÞ<Fm.K>Ö}#ux;a£qIõŒD¹ó‘—‘`G£PP5Ñ.)ôè®p\ï»ßW.ú ¬ãpÞA›4ÍbìT6°ÔêÉÙkKãXÜð©ÆÇˆzrÝ›ˆ_<:©ˆüƉ͊­·®[¯@²~µ–Ù×a¡åûlv8F uoÃó€‚ÃsëAª0"Ê´Pi+7^Ò¶DJ'ZoÕÛ÷ÍÜüPÖøÓߪ•íêTÕ½sRii‚ DªÇö{Q±4%#êhŽª…]ïdØéÃb´Mx´q᧯â¶ÉÍùçyÊ ¼  |F©ÞG‘7H¦mÁÍ'äL (](q^¤kèZO§{ÕþªŒ±SO_tjÆ£&5íÏéV¼¶öö$ŸÆ½Š«S.P3d¥cáŒ㤽$\“e¯6qùªÛé• ‰üÆlÛ–›¶’¸«o©y«WK§?ôÕfè8Çœãë3fŒS"¯Z¥_3Ö¤‡¶Ë÷¢xšä¶XznÿÔ`’²ø'.‘0{dש£úHø9 AF]ÿÕãà+öi~œÍsœè/UF·òfÂ_Z”Œ —U>±LÑÊŽú¬ýró_¥‰„B}?“j„–»OIµ(/Sf!Þø­Ú”þվ󆵖ž:|¾jO“âÜÅÒeø27é³k)lÞå(üfƒKª¦äñø…Óöv#,B¯üô šòþ +`»†»²ü…sIŠüÄo­sâ6eÚê}ô]°½½n\–`¨Éæ¡ßÒ‘û˜®‚v÷/‚q¿)äžÛáÝU7z23´r=ÃtnNnÝÜú±iÓ’jPû¶x°|²îÏIeŠJªœƒ![õ“›1­EÊ{Xa¦gàn^d±ýj±þFóñíh3TÌŸåø3ôÀ—iaƒçô9À©öUË¿°Zy±x×FÅn‰Ì8„Îäv3ù |"ä*G Ûâb3(W÷#÷„tó¦/*¡9™EGê[-ØÐ*G¢‚¼¯øÊœ¬»·àð|×fû,é÷Êeí–æœi¿9 üÊaãßнսNPnbz¤äöt$Óf¹Çeü\ÒRô¡ÂfgwáKú]p£l¹+‚ãáŸëÒ)ç¸|I#…÷ì§:ÜSU9~BZ=‡ÆIË˱B®6/JQnî•ÖJmÁ¯†# Ù¢g3Óº°;øÿQeás–yB,€Ÿq{pR¡-7Œåi®²WMY¥cIJk¥‹ŸŒ¤5£þÃr§÷/—~¨3’÷wkKòÂ2Ôð¶Çö[ˆx§äó=6…¬G©î­1Ï6д‚`Ü‹~9d&àAæ.r¬<…Ê·hàg8ÌåW Q3ù\ëwK 2.³QŸ—<Ú€êŸya¸A´3î~ RbQ@PÜE*?¹ Ò’.9Š-e€*“娘B­ò?LèB»Ø=à4ˆöhd'pñÈ¡å=Jêoö Á”&s©r¦¦o“þ–^™ö ßý ü0ÎÂ]ª0JõÜJ1©ußX‚£_ýìá̲Z¥§±¥£_z ‹‰êœ™¨V\5u3CKޱ¾¿ÿÜ8%êÆQ©0È}ã>ßÄÌži;…lÔmbý·–/<%~Þvà÷tøÕТµóxŸ‡úV\Žg{¶j[Ÿ’VÞTжòÉ©ZÍÕçh÷>îÿ¼ÁÀDĹg²Ü&}5”ÂÓ²k8Ð%k}tÙTõÛ«÷:¯Tý?¾R Óåo ix8Ûf8˜Ë³‡+‰[ºQe|.{JÜ hµ °›pÞ…ÕƒRTá*f³«üÆk8ö  àô”…A3±4ÇûµÂ?ŠQpNg®svŠª“߃ÀPô‘€²1ü‰Õ„¼¢Ë¦µ÷9â‚wËÞ45+ÙÜ:°Å½ÃœÝ«M%®V®ŸUü=\¡»^M¼K ê Ê¡3 eCǰÌÜ4ë¾V›)™4>{¿ï_ò?ušVÐàyzù3»mšFͦÎÁ"2. {YaNâïDO{zLJUSÐÌÓXöù!÷2æÔî*k?j¥¿ÁcÜÜ=ôËèÕ¹á5Vê2‚ ['ß*Þ” ꪕ‰ú¬‘Zò·F‚ËÅ=†çt ü¯¶ïmý¥ 46{f{eß“3„¼ýÒÆ%ꩾzš;ßæëx¾ÃûGßSxjÃKo´0qešdc(\u•׿¡Z(„B6ú0Ëþú»® šK^_ßèLî ‡=X¯{Ôè¼’|í K£]ǹó%¿+Ž`*ÔÅDz’IdwõS4KA÷ Ë;åBXb|V)t4€?DŸÐ>~9¯yßäB÷]þöÉMYa‚ƒç{ÁR3ÔË<Ú#oÊýÊÍ+ïIx/ÍáIObul!~a©¹u$jÍiº œoÔô=á´—˜þ[®›2˜Xaqåi ·¡S³ZIôB›(ç¹;Žc“H§èý–ŸÎ¢íd[ˆ®° Y²k$1r;ªÛƒÈ1¼”cÉZ‘Z:;nð¸3ôçIDá|4¹j º%0)ó‡LÚ<Úß €0qnèá¸+/ýt0©1=@ÖI0_*ÆöÜ4@þÜVGæ²Mò¿xzÄ5ÝòÌÕ³y­bƒ{KZóíŒN4ýq’*Y?‡¶8Ò¢<ßÌSØ–lGðæÃRöAÔëí=寽 –¶&ÁÀc¶|qÔ×3WöƒFJ²ÆüLÚ‡âÀ%%ÞçÄÌ.µšªœõ•€ÃŒ3èÙÌëNrýÕqÏ_]èÜÎ#¨.ùÉþeŠûô¢—l€uúZÔ³ØzÂå{8Y—úí»žéq4Åw‚ÓjØE᪓ ®þÍ$I}fAà³l “bù&«Ú@bƒ!.6ÍÁǰpP•ô¸bnÞDƾѼÕè|‹ñ¸cÙ¤ÜL‰üqôG*’œ’_J³ú(0zi&'»@m›o«ë3•7ÍHzÀéz4z>{¤×<‰D Û%Öt4Ú/U±Ó{ éLuTÕ?$šñ3n³r± ÂlÿaN¤@×nÜwô–¯ ŽœòaZ¼Dï ~Ze¬>ÊSþK;'V˜U’üüLó†çj;ñå6˜òD…3ŸyBŒB[\hxæiüj–5E骶óWt {jØ%wò z¤˜¨-Ã|ì§7[WŠø( h¨Ï!Fû\w.•Òq«p"´ÏmÚ^ibS#ïâ÷/\䦣/dQÑU3¡")¯õ…J^ÎÏEž4€Ö ÊbcèöãRkÃkÔëÊü?‹Ù>’ k€mŒìÎݪ±‡—@¤JŽ:²o†4W»}­Ýs6ÈPã”ljÁX¤÷,F_„<³ä²Wkq±I Ís…]„ÅŠ]LfüLÀøO¢˜ZÐ+xal·MSPÑ­]à â±ZŒ0ÊájÊU ¸;¢k>½dˆ:‡)òÏÛo=©Üxú>ºÏ½ýè#‚EÙo³ÐVR ß®ÖÛzÿ+«ðÆNr<Ýt")ÁÚýØÅ81_þøíéÁƒ¥;«¼fJ„é«‘ ý[aö³)Öô¥˜Ö&I»Óv¦‘«ÿ Ëû ÓyòØì׬ZônU0–s¿Üˆ±€F¢Õd\ÂPSÞUÖ²ò)Eí-`²hôæÓßÅvøûmª¾Ã;` "ë\Æ“#­n• Á-0‹KüMWªy×â{/ x.ë"ÍÖü¡2ñ»)Û¥±Ïú.K4tèýV¸Ú–]Ó0KßÀñùPŒt‰`^†)Äß¼¢ÞnvÄ•™DZÑ å©» —#àùâî%ïÔI D*º‚%ù'ÆÝ=ÉÏxĶ©º²ÉUd(‘ ½É­‡Ò2¶ÄÊ€~¾_Éh¦R¸ªºTRÃj¿ßÙÏ”t³L+Nâ•Ø³È49¡±íE²Î]LuðV`A:sÛäºlŠ!e·›oom” Ø6HëkÓaoaIObŽM9HÂ+ì(âÆ¿by'3G¯êõÍu Ø-â°ÿZß“&ÿÏ·ôüM.Rÿ{1›¦ÞCôii—½â¿Þﯥ•Ìkrü»öÙP¬4h›€Çp‹UMÛ6 Lðlkk¯‚ ïP““#œç?ÚÕÅ9™^›Xbô¿|ÊY™ï%.WI²8¾É¹¨ÝGõ$üMtƒ·@·ÇQHYÃ8«»ƒ›[Í%wÕƒG0 ßï0poáŽÚ'kјcµÛ »± lœâ0ù‘•0=¿=xj ŸÄ}ê}5ÿj㯒¥Ö2›¨`&aÊKX>6`dÅRV·HËÂZ-èêŽÍ.96‚†¿NgnßfU•råó­ødÉŸ m)HÒJÎé.FŒO)í ”WmzåéKÑŸýv5Ý™DØùåBià­~´nÞíå‡wúLdjàq&[\E6ó~ÉuÌÈ m|)qw±Æ#úƒÍc´´ëIöEPGüìü5 j°Úyÿ°$@’YÑÓÆø’ñô|K*¹Úü Ï2pŠÜÁ±äézŠèµ9(èŸ/3ˆ·ÿ3/,Ru8v cOµœžöÞTtë—-ÛE€ TÞò+HgŸ“B phTCÝOusa £f^Ö ´]×4˜ot‰ß°ÁÞÐ;æ} •ƽ3k•CQ5ÉgÕ3`sŒÏàœßê·””6´ûYÔÏVîÆ—¹ ÔÁ>=l$äû«ÿ Ð&k‰ªaÇ-µ(­‘”Ðô£žÝA{mŠØ~ Œd|H-÷üLÚ~„`‘×vÀð“'ð)°éÓöÑê“6¶÷ƒôTÐòÐÔ]]޽ÿÉç©ôîpúÔòÏ6ãYѯ„t(‘.À,E‚ìŠs´¹¥¨Ú'£}ñ)Úðqm¹Þð_•º±+ÉÀâco¢ Žï­<‘¯½&·ÂWeáú‡#èdŒ¼êÑz!ßæÄD̨3(Šv>VN&7ÒÚpàjE{5ˆŒÐ#)‡&ÕQG_PßÙHǾrÞ³¼B—L™ù«ðDŽGMÃŒf-¼Z+øóÅËM@ßÁN¬ƒá“¶Ÿ›üÛw¦"<ú–¡À$6í"i‹_™ŠGü´„ê¼ n¼CÞ«Ì(=o¡‰¡Å<­‡~– Ƈ6_rkº7ª¸ò„Ó~„wcA5;Cy?nÂoÿ³¬6W”d-bÇ!­­ÂÈx¶ü.7ž ó©ää1ø2jÔ›¾*eñí§¥&v”tƒ™yõS]L§ïìöëÍp—H'2NÐË\è "ÿ0® ö¨±¨ü•â¡ìäÓ°)¤ö;+׉»Ã›hßYÉ\\´‡ÃÈF¡zh:u‚Å.@M6ùå_lŠæ_¸seáwoè€=qj7gQˆüMY+)Å¿ï"î«É¡ü²=Lн4í¯ª×ªÅóuŸ;Ž*…û¥ä1t¶| «ºEõÓçEvÕZ ˆ*ÃÉ7›[LfEu¯ØVvÏ[¢Ñ,ØùÛ’‹¿‘°Ä?ò™Ê#»R‡H8=Ö+^tÂx Ü&ׯä0¬!m@j眳°;'¤.õÌÕ¨—Ù¹ç!.“™9™1›~0•oÍp?ïax)<ÿ‘ÕÀ;XUP2ëÛ9Ìø¹H|µíÉH›…iÙ þƒñ¼ã£˜Òcp˜­M¹)|Â];d”·ÇžhÊ×x÷ßãpüL»y÷»;<:;ïœl9Óy2ϵz¨o5 G›¦NņfK+ä¦>=¡çÊyŽÅ“³_Și5Vݵ²ÏĶð#Ú“3WÁ~{ÈU]ÉûÃ'ŠCˆ‰è™¥lNÚZ§`øÛ*ÙqŒ{³* …!y³ÀÑ?¥XV]=×¹Œv[ì}þTJôÞ¢ìš*•5ç•/¤aX/¥¹vŽol°»‡ç-Cp›ª„Â{¾©jæÌ)¹͸j˜Nßû óòëQjœÓŽG¾ n£iðº:C­Ã~j‚ü|‘áåE¬ÂÓ¤c…<œJ zf(´ÂÅYñÁT.Á¹ã uu´x1w*„#"­)u\½È?óÙáy°x&i«ø6_ø~äq ú6ÄúYOý¡Ê%v®9³PU•æ¾õÙƒcwXÜ”ä-‡1Ô8…‘+0…«½sG+ Ë­gAq~ÈöÒ‹TW²!Iÿ¬›9 „U§Ó Ð(±ý‚ÞÐW ˜Ýas´r¢´Ë Þ¦UÙg&»í"¿}2AÒŽ$è.ÿ;ˆÂÓ8`¬ui(<œ„Ô,£ÀõLçÔã}ë>½ÙYtòÀÀ²ÿ]Û §ŽX”YB¶9¹”_ßj§[‹*’¸Ú9´ ;’ˆ4%lÒÜD¾‹Ë,ÍÚ߆Ø<àÏløêÜËMž~â.’yE? šêpÊôÀ¨Ü»Ý—Ÿ§C¯dŽ4™ +F{Ám £/Ñ׺öj¼Ò021FŸ6;dI'#³[üœD*^p¨'KÁ4¿ÔA†Kq ÂÚ¾+ÏØ¯»–ñó¦}¼XŽï\xîÙ鼉=>¹ðtÀ‰ñǹƒ…c“úâ,‚Àj¡o þ-ßšGt¦ãRÇ…?ã5—ü}boK!/w„r¬¨Hô‹ið¿éÄ˶5†€H–Ãi”O—ÍÓœt]íóýÀ3)ë{`ð ºá¤oxøþ|6[o‰z­¿EÆÚ¸àYÅš¤e'Wƒ)Ìêal¥-´½7S4o"rJø‘^½(!7Q ‹¡˜S íníß·O¦ßUÇ©a®|•©ßDúèôÖFÿpqNfA,v¿¬¬cd¼ËðµV_q¡jlÿ£ÇƒP,¤Añ64Œ˜Ž{»ZÙG å|ÕÍÀÎëLw44žµÚ&äüC=Ù¸åÖ¸O«œ 4ž ˆÝsTø]ã"c —Å7¨N…€ó}ÿñ¼CµzÞ•à†´ íûWÙW± ,Iê” W³›ºÉ¢AÅ¡]CÕC¨RcY ñ*ó“¶ PÁõ2À K^0e¤†^ÖwDfîCð¶60 ý„U3d@eÖ¼KÜÚ"7 @ dÁΚl¥†V5~ë¤Àm‘ÃcÅ)êÜ!@«šYSAöN‹Õ[`¾¼f ¬îmLØ@×^øóð‰ËÄGšÉ›Û8;)ÀH…;­ÄHg.iÿì9— iΠü±¿pÛ1~múI x6°WÚ_§•È{È~HÒÔX¾Ýw:¼ÀŠ"6òŸ¦Ã&Bñ“ê1"ÏÑîZ\jô‡ R:l¡A(øïHw³¶“HÆ[ÒÓæ“Ýol¦ˆæb‚dìç««{|ü-YÁ-kñSô &Ã܇(úÎŽ5K,¹ƒ“Tsü"ùTxÀ­Ÿ´­K¤ÿÒ¡¤A¡xUM¨:¨ÛÒt^»„ âX,ü%r”%Í¯Žµ.û²Ÿ¹òV­û?‹ªL —ÃF£ ÝLBD­:`ÁÂÒJ`‰uÒ·ý#HH‰OÉz‘÷» ü°ÒÏbK–Ÿ¢óaÉl ÕÝ64»–£Š8uäµö-ˆVªÿ­§c lLpÿ¡±üßöÏi˜ê÷'9i»ÿ×Ú#³Ôàe¤cƒ‰É‹ñotƒ v¬—X¸áêØ.ñvÈõr\hD¦ì]aÝÍrs‡ª¼ÿ 0c‡/¡L0}ãÁÖÁÀ_Îù§Ò«_ÎÍÛ€­É(Z£O˜ žÑëÎob¬¡hÃTy‘›ÞÏÆ×s.4›ûKsGUÛì–‚Úæ£‰»ˆÉ7èz!ìbñ¥¡§8’Üë6ãÿ´g9¤Xûä'–‹p~`eoZl¦w…ýû¯VO”YuòNÓÌÌAÜqcWDC y üÆj³xhŠAÿáÿ®Û2ÜiA?¿©õÖE“—Z#þ@ŠJäºëMxDP¾Ï\¯ÞÙõ.I”rWÏDY§"\ÊbX4ÙîRÜy¸+˜Müp¦Q¤ $0œï?UL5î¬GLy&{ojì뾓;æ©Sºž›Õòóø?{Ÿ2>‹¶jMªßbk)— Œï¤w3`\r”·¹œæV—%bt0hJ¼Œ6R!r¼–Ñ*owùÔ_lúC—œìfìzk“P€Ê/à ØŸd-ôâ® öèJ˜Âb2Yºk×£ù*+):"Š…5w´Z+ØTœZ¹Ì îLÿRpfQùÉw–wGÌ `Ž@™+¸1 Zc2z?ØÇ%.¹ÐZ n8” ñïCÉËäq €"`5¶"ܱì`ït+J‰¦n±»FlØBw˜ªÅÆ]s‰æÓ7ÇÞü®hìö¥4­³Ø‡HYc‡íž”l¸ñV¹$cG“šm-xž˜˜A7Y†Åxqa±ß@ú΂n{(«=6Rå·.í%ëõ M~ôJ±¯ÅJ ñYi‘7eÁé¶×æÑ=öÉà<‹…Ò‹¶ÒæqPî wá©Ì+G{;`ªÖiåY=qÉѽ–Q ß3Òè„[P`oo`Í„‡D%1îéY?5 ËªŒÝoÏdZ"…êç«ÄY—[¡¢ˆ*˳€ËGé+ ת¾?Œ)ýZL¬˜¾œ¸\–(WPÚ4ó…ƒDrj¸Àmð¾Íµh¨ÕÔ\U±–t}÷cH…üØ~¹ ºYR6LqçB•þªýÎnÌ…yè7{%Uö}àÜõ ¸[¸ÞÅ ¾˜ÍÇ“÷;²¹/‘ß"2³QÀó.hTz÷“ÛZ˜N¶° »áƒóåù³³&áƒ+{tŽUN –}°B@ì£L íÂX1¶ iº’4ʼnT¥•ô1¦îIEZøÿyì(8Úû:ß¼£&²^~,aßÖÜùÛê'‹–¨M¹Rÿ¯'M–”`7¿ÖNýçþÀíQtúíÍy¨HLÁ ¨WGDІ=pÂs¾]ò:î¾Òü}aA#®è4òO|ØunÒQG.J_·T?WdߎâÑcKørwêY¶è£vÔ©Rî*b4æ¹Üšr‘¼8wl*=H]úNZé,`2øß ”tò(Jó»ºÜ|m£¾~‡Öa‚f»dï=¢I%Ïé^972ÂèR÷ʹrë3O\ÖÁ—HdÆyðRy° “¹^?‚aƒö]èÝa„8…vŸWWMª¿…p"AŠ×Ý\?™þª¹èKÍJ÷`4ªô¥¨˜Ä‹½´]¶òBRùÙøŠôÞEÔgÞ;«›õd·¬z¶· »žê¾DføF @ÅôD&ÎÍ7-l¿W¼ù©U1Þâ½U¡†ø Ó'Ÿÿü5­?Ÿ–‘B÷,¹š¥Ùt‡Cý¢¸Ôš¯gϧ¦¬mªè©â€“‡÷©8Û”mŸm y¢³»ð}¼LÚ[€“°NG;À0¹»ÄŠ‚…o}²hCû¼·YUONf NFC@Ú ílØ¢^…7Õ Š“H‰HÅ¿ç«! ûý0Íå›±³<ІFþÏJuOÖså4wÞ \ȯÏÊ¡ýD¹ÄˆX ¶e$Ö+Ä«³4xbåÖƒR}:ó^/%1c?ˆœ$˜>G¢IkiÊÓcOžßÐÒ–*þiÿÓÌr]õ<>Ù\GüMŽ7;/EóÚZ¸€S\«¶™°)w4À_ô²Ñq~±-iÓZ Nv4°$Ôfxö¨Í „O³Z'Ö¹ÔÊÏ…ùÙ}HDS?ËIp’-n ٵܽÜV5)}W.&5Î=úþý%~í¹O9LpOCªšÝ8ØØ°tœjsˆ¸ßW¹4øK°6ý¦ò¨®ž²a”ý䇄õÉÙkc£è×U{ùUŲhdì?:åÈÀ½¦¸ƒïyøLêÃÚ6ÒF¤'¼8B÷½¦1Ú»`Ów&ºt¶‡”/üU<ôÈú~Ì’ÂYöõíOggS&¨ä5Ñë¾?èåèÿÜÚéôóìêÿÚÿ'ÿÿÿÿôÿÛÿ”ûôäàáÿµÑÒÒÒÒÖÿ·íÓÓÒÓÒÒØâÝÙÚ×ÿ§ÿ'ÑÑÓüL¾[Û _:ÒZ÷]Z|‹siÇ!ý{kjÝ—³y'&.¹dö!mÙñ ±±:ⵡɰS`øðµÏÿiPù]½úxR"û}öš*Ò·%…r‡LÙ‰ºK湉úr± 6›Äʉ^ˆîƒÏÙ&¾må°¡µ&ÐÔ õ“c4yy<Ï?.˜|°Œå]B¡ZFÈ–÷viz}m’ Z‡ åþè Ïu޵5ÉÀÀݳ—X£­—%OÆEæôÿñÓHm5ÿ{¿€y_ÂÔ)Zœ<ťȠƒãN »Õ±Õ‡M¡¹QüI„1•‘yù~…L¤(‘KѶÍ]®AÛu…Õûï ‡2**]Pyö³w7j‹5t1¨þü÷5Ýb"ŠhÅ[Í·µ»L:¼AZØ!­·ûÃ${+ SS]ïkó™ÝÕ'¹§¹$ã“[Í88ÜÊBT­¾¾LZê)@a )°Ð8Á6°5GºcS·ç?€þî’§¬z²ãâuXRÜî^O9,E“ž0HZØivðä’ÁfV¼‡…fíšã)Ò`LÚéÙ>~c‹Æ_Œ4`Ä›ÞæpPÉ:’Ùö.ÏâÖsËÎýü™COò϶Ï`Èè‚lpÃu2%½—OÐÑØ£ù?šEz}=ƇZÔŒ’ÆÆ&¯V˜€7•¢[vatÏ+,¿%6 €—TYFœð7å•ÊC îÖµøØ5JRy³ÄРÜ=ßÕ›ÂЭw.J))¿€_,+SZ!ð캚ÕÄÓª3%Þ;½è}]Y½¾Q"o ÞEô”ÉLåƒb'ò­Ä§ÝK'4„è³,èÃåú7Ÿ¬¾'#yðÔêËX؉>¼KŸ‹eQîú‡ OÔe¹®ƒ5«Ï6“…Ê!èNü|¨˜Áµ!ŽY Ãß ”sªS»«…1ä,RîW·IvçÙÜmÊÝwC¢pz—XJX¡cXzÄb1ŒBÐo³McõU¯ö_ «[³LÅÍÄÇhíùBŒº&' O…õ*TÑC -Žª|huEG“W'k¦Ú`W¸I Æ¡_ðúŽu‘ƒS‹æÌ¢M&ÇÏ^¢)®¨¡ßõÏ(¶ `e¼'ñ6bÄgVø?¢Ó»(³-±q\ÚŸƒ î"wéïå%G+ô"¦§¼öE“»ÊÌ< ôkçûIÏS*Ò›×ZN/¯v‹¾YJOL8Êxü#ûq¥ ÊY$"Vs$p£CÀé …Fߟuàƒ[s;O•+{kïóˆnðàn{¿9ü¿ƒ §Ì™Ø®¢…Fv’—jn <%ÿXïYV’ÆÛyö²N·Ð$!¹2”ô×&HSçÜjìrÇaó! -¸A[x¤8Åð±‚þ1 ^¯Ž+Ó‰aIjù~ÖÖ~ó­ƒÜÂ)t¿1IHºCJÝw.ÔðÎÑoÓvÀñ“4îÉ=à§…ì8»,z"§9Û’‰Ä(–á㘸‚yäåžêü.n*ÂÄ š­ï^ü#‹e|Šù)÷“ÚFçõ¹´½æsâ—Y³j—üIì<ƒº•ÕP÷NQÇ>Þôà‰Ÿé Rø9ò<¬GjêÃEtïx@=Q¥ÄÎ!­ºÉdÝ̡͡~è²âÍ‚–a¢ÖÍžPÚÒÅ3Æ9¼Xó£GFŸÆ¼à¤0\ïw-‡úŸ2G´Ù^~ì ß.Š+%ãõY?€½4:Ë2á6…Ü0‚êùšÕ#ðùѽÒÇ<÷^kltº‡l#x+x£µ2ôœ;OßûY ù6Â+îEÿŠCž´v¬!Úþ…öx’õ>'œã6Oµ÷uyÎð8üJ[œ,Gò÷Œ†u[SŠž rµn#„ù…ïXé"°a™éqK.Hn«iÌ»u¤^g)ôÿ|˜ð±¸â?Ä9P KŸ¼£ƒ÷ DPRdݘüaâóåw#³Ž8kyrODÓ¨÷sÁÆ‘Xx )ÎPö?O‰,y"Óf_u„EAŽoäG)î4$Ý,õüØ«\ÑÙõ…””ú´ŽßÏŽ*ñ—ämˆËÁý ñ`³Ò´ò¥SoÆfQ‹…/‘6ݨ|ü6§.Ô[J5W†YÕZAN·Ô+Ì3ºA?ˆI"ðjk-â¦b“Ly̼oVÙc=¸kÔÆzJ­×ëËm© l< à˜ÁF„.ãºÛοãž"MÌk‡N;Söž¹¢I.^Î_šòì.˜Ç×­Fp–5“Q6ý_Ó%Ê“Ÿï²Ur¯…¿J!.Ôe€…hZ° ]p >8Ix a߈Ûõ^x<¿ïòÑŠ=ì9ǘý:…[ïñÙB5Bb¬]#K‹èµÙ¶ÜC w f’3 ÄŠ‡NB %‘ä¿a¸ç‡/ÄÏŠF§lQæ?xqü1‰§dÁõuÅÝ!5;¡×õCÐÁ-ÔÈ·½}™$D,6å²e Pýbm©¹²O›Ìå4Äÿü¶uÕ÷N²¨™ÎðíšÕz‚è΀.­´’"q·~äÄ–?j·w%ó—-'Ñ¿6Ô¸Q¢‰f½KO—ù·"ºL€9p¿%¶£i[& g/èº>]Å­òN'¬Œˆ[9üŒ²—‘ŒdVQÐ¥k\,Wu¨I´õì®b¡E÷}ä Baí½—ðß\í`üñÙ*¦™XÑXÂ]濌EB™Qh@B™d¼dáŸ8÷Œº“ð¹‰OO Ô/f#üć_"s™ÃoÑö”$RÛoU*Y²Ì3Ùijv<8Û‡=<0Ö¼òù߸›¹~œUo×gGÌâÙC­A^ž’íªô‘HšìÆûÔg[ãøÄåßj{ŽjÈñ|›±ï‡ÛÑ>22ÁÃé¬Ú;¸ ²ºz?v¯¸1ÿÝîìs“Q¡Òé=–{¨ë3•ËÕÁt ÿ˜xìàÏ_\¹—I·ÇHµ&Y‰íçy 5*-Ùýr4\?”P~…ëïp˜Ç×fhXÈz›>¾?*gUݳRüµ¾Á("» ù1ü{8lÅÐX`i’íåéZBy{Þ$ÒàÓìòTªØË¹n[¯øÉ²¡Þ[)0CR†k° ~\†LÈL±·:ÊÏ‹ípv™Xuu Ñôõ }üÐì!HE|¸ØKîÇ„šîøº¤žlwM= iÈ Ç\{,€üäñ®ï‡ÈvsºîNˆ ©¿)S;õO¾ëâ3¡ù î Àlu´*¶¶ˆšhØufÚÌP|™ÙÅ 2øO’–9S§ÈX_Ìæ¦Èluɳ&ÛrAÛ‘È„¤·mŒ¹\}ÐK¥_Ö—g¼$'gþtG] nÑ$«»mK¸\:d@Ëš£¶ 0똩¡âÖ»£Ì*¥O^¶ÿ¥§ÞQFŠÚ&:/ ËÇóOô“¶ pªXª5.ß·Ý[ºç¸E`=*ïÐþ‰Œ ©K4ÌMŒkÉ×ïÏËÅZf“~BÁÐÒq+e5ÂÖ8ƒ¼UóQyÌ# Ÿ-|è!Yºá’˜Äøcó=iMµz;œÝz@茨·Ù[D1”Œ·þǧ­ÁÇ…cöiÂ[]@!¥5"É[ Aš¥äùhÿÅ6*W2Åï±AX@/£S¾áwX)ÿÙJ,Â}Š‘B´Z'7¾Ž_í™Pü›Àm"vVKí®•Ï/ë pŒõA1Ÿ‡ž´Ê—Ê;x =ýŒ…_ÅázÒ¶ ".eQ'Á,\ݪÿÆ~'Ê=9ÿ ” ŽLd÷HP'8•ƒæŒà ZÕ Á¨¡ûh-Wi;Ø9ÎH±fƒ‡^‹ËêÆyè*?ŽoÒùµ fèÔW.í´Fi=y^{^+cà,*ÕL¢]ÔÕLü!6*#XDÊ‘îòøO\Y̵|‹Ž]¨¡&hÖº>ÌŸï÷Kƒ77My±h±CMl;ˆ_¼ë½Þ‰ÆÜeÔ|®7AådÂ.,ßô‹ÞØ­ó á”„EŒ½ch”­É:0jýL…ö²ûÄÙÁˆPü/]Wí-”Ë…«²æP …†ÇW¤w²mÄt;¤Äáxx97ˤiΘŸT"ÔSÝÁ³Êo‡èdKž%ÖL_#ˆÚ¸u`h\©Þão_®ýèÍ"·FýjÍ‹Ô^LIÙŸa?èÆÛËÒÿщô©0sZ•ùú éñ­ 34’Q&Œ€ï]ÈW¢ÍV’æF˜l€‰‰&ín¦M¶×•Hš˜” `;†É¿m‹ß¢õü¯0Côf«/+Ÿh«ÀoÈúq¸B.žýù8–ýN#¯ÿ¼Ú7ö·yå9ÒßmàÓýº^Éé)¤<ޏ>½*¬ÛQ ‰“Ý:‡úcJå]¾ºNØi¿Jž.øp1Î'ã·h<Ï]öD…˜?µ§Ûä‚WÑç#NˆãXf±‚MUt&¢á‡å¶M|#ȵ&^xÇu.-þ½ß³­ÅW»”æíóBˆ„é< ¥Ö.&úÖ׿ÇC§œ<‡r[_Y‹jy,ý¡Í©vœ4õõãåNö,a0mÝo¼KâƒäŽqmlÈÝl»Þ¯åf O ÷äñ^Áº/¤ƒ… ÉüIzׂj¸Èƒ b~3ò¿¯þ¶hFpöÝ4²ÒùîßHšjuwQܨg¬¸†róè'ç>¹ÑRßI°$>"-«F 'D9Æå$ܯw°(PAeÞ€½n4<‰!§›­â>48‚Zàb¼Í×Yƒ.£±Çï®D“¶EÎ唡mÞ6]ÅRùþ˜rÐ̽•œŽ«@|ÎuZüËÖ¬åì;õ³µš¯%ò?ÃðZúü|ªÛ›ûµÿjÞ-2÷¿§ â¥<³Ýwe qëag]úõ ŠVEÔ˜Iä8 ºsÿƒH,ÛÍ[¾–¹5R¯7?]] Önð›5û…xE—7’‰5Ù®“`ilÆüx®¥Þòí%¶ \xЬ´ P j´ N‚Ý_f“Ù¼¥•0P!Ë7p² ñ GU•6¶ß8ó*7•àFOÒûd`ÈkAmsR§à%-Â]õ}„(á¼îá· ÓÞ”qxA) G!i!«Ø¡-.rH¦(¯ Ùl\ã±NǜƚÑ7ù­^®e̤Ã`Œ–”*>VÁo±ð@›¼ð$ú¾½}D mGô44oÀ-ÀK;gj¬Æ|à¡ûLy•z·3VùcByÊC‡¡ßýú(…[o§°’gv ‡Rm‰´ÿœÂ|P¤•N×:{ú¤¼k­G"Gíól¬Ò¤Ò&•Dìü®óÛû +Ù6…­ €¥2“ „¤ü.Âùö2$Ráä7¨–Ùwe¹Z«`¼ïs^vœÌk^ê.hþgm€ÿR˜¤ðO8íàîéæ8$Q”ÙG¤ ÷iw¶ë†Ò ëôÜ>ŽOàÙ#·,z`ÄR1‹áUHEÜ苾xjÉz]§Ëšas6²~ªvëÓ^úþ„{n6Vã"ÁÒ ho`â”ø´;þ‹g;^móTÈê§hJ²ãPáÖ)Ç´Ÿ üú´º‘öTJ@€tGä¬Õ¬¶°1ßJ'€åy )}¶<¬ Kn]«‰´k>}ƒ Or+{´Q2ùiˆ“#€rÇBé(¬\üLµ„µ‚jDE€øû¦îÚÀöècW‡?&OüŠºf1'%Ýñ+pëè!¢ÁCH "©ƒ²O(wa\Xüº¡ïbΧæj¡ôŸRfŸþh¤ožnîSÇG¶ôE¡ãác"³ôz÷$°;8žU’žæuË7ùh fädðÔÉÓV=¶ßïm}5ÿ wìÅꆬ_Y2¸œåUë]Á=Í«”‰T”ƒâ‹¾ÜCòª¶¾lõeè¶3›Þ-‰šL]ºšzЛ²1 T—Þl´T<‰(ÂÉR'kõ'wo3R²ƒ‰#}£7¡¶Ú—#…¹=LBõüL©¬ˆê~È[ Þ†aë‚ Máƒ:¶_ƒÎ G¦ŽzÕÑÒÏËW÷qz\ÿ56áïÏQç~!{ç×àÃ=šiZN2Ðq¾?™ñéúÞ^/¼ëu˽ŒÚî :Âp¹ÞNîx)Äj.âõ‹[Ô²ÈaÕL˜*ü懱£.K_CF Ѥz†F@J¡±_©ÆËÝ+ôЯÊqƒÔ£¦É¾#Õ![‰ŒáŒñWJˆÚˆ“9ÄB@Ÿ³_öòÌ:ãE‘B ¢½š<|Ëî˜iÛ›4Q+Jž‰’ǤµñÜd‡ã“­bm¥êÃÃë/—Ïki– $#“UpÀèRKQnö7HÁ¡i:šëclÓ‘h;Å ÷NÛü‹æÍ³©:å©èmCWfê)N«ëÏ1Fýw¿M`{СyyE$-ÍRöm§J#ªòä`|·ÌSà‚áI¦œ]’&¶yßyȳ‘£bÃÐÙ½†p5s8¡9tÍÖÉǺš{a½7«´4'O}ÐÕ5…)Yïm£G­×ªsÜk_ÈR@¼È€`áêêF_AµÍûÿ¨Ý¥ûÐí5d<Ðæ‘|øCGÝFñµow§LñáBsŒÞ6ÀE7 .ÉÂ…#‰xͳ<Œƒ°Ù5º,{·^1é~úùHz»@HëïÌ8l¾_Ĩ¿utj ',Ùí³Sï×n#·ZbÑ ÎààŠ@í¯ÐòÂiBª¤z»ÿóuŠY·9³0)Ö´#õ-'#k*t¥"ñ¸¹3„ ¿ÿ4z¤<ÕÛFK{³/öÝ mQßâJý]«R{} ˜‚½Æ3Û–òÙªÍÓ§AþïBaæ-ŠX%§œ¢=äßDh­’\yP}# 7ûfUÍ©æ kXZC)DÍ0;)DûŸ”d/çrxC¼ 7¿5ÁSÆ”¶µªu€´&"¾üM2BXC U¾Z”,ѱLòõœ“Øg:¿ËÇQ»ß_¼Ú£gö€­4ª &jÆ1yØ”ÿ…0¸¯Ôù,zîªI"¨Š°¿‚õî¼H»—úwϩˬÀ™ äÞ7©qãÓÂÏuŒÌò¼õG­çߟgýtÖÓÄ^Ù~Ùðg¿[Ræ\.f•×+·vQ‰ã£l‘xÔm½Rg Á¡t¨¾é´ÜM0Ô3!\s—45^ÅYTà­¯p}'þ?”èN;‹s…”ŸG|¤ ´ƒc‡…üLÖØ¥£Oç‹ý[˜~–—› Ð'œlêÿà_Y|.èBgÏ`±¿yUˆ I®n3Y¶¥ÎUYq]I ƒƒ4eHŠ[¹ÝN¹ØØÉáq‡3H2L³B )ÃÞ`K8Û8®¡ Ö§ «åoŤqù[W€o—$ï1ˆ£O=„êŠaè6T×îC=8î²oápMðw?µ|¿nöWÙ&ƒ4JEGפ_-|Õ•BçÓ(IæaÐ"®[ºrãD³¿¶º«>±#’h£/±,r‘üM€ô©ÔR&vè.âk‰X<­ÓG¾1 Þóæt0½sÐŤهºUƒÙ÷Iç±ømÜÃÄéCC¶„0„ͪÊÒ;»Ü‹«Àñ¡íÑ!ËC›x«‰.JÍ@V¥¾KïFH@.÷=xVþÈe»=ý_wÑê«/Ó[ð§"Ø®Ýpÿ°˜0Þkaaµ2@g1—Ø MS-í¸H™`ÀÝ{\~¤tzçþˆ àP“‡T¯ i™\’ŠRYRåÀ…J¹»«p&¾ðz5üJ"L7[uÍd_÷¬Ž»zÌé ¦JWòÊ »¶Òâ_ DÜS—˜€;=öqlF 0. ˆe[Éœc¬úXÉØË_êTK°¹ÌÇJh‘+ÕH˜9C–ódÉ—m§z=€Aj?-XìÓfRX¿Ýv@¹ˆºc(˜"4‰kþ¸¶ŒEJqðLˆÏáôìiãnI í'’™C†±ÈÝçÁYÉœ²*'ôÿWvŽ ýyÔo–üiW눶ÚÎLö1ÿÑ3ð“Ï 4ã•«ÍUÃ0üJZ¾ª„[s])„ÈŠvñšMß؇×WxCpyüª”LO0,{+ïÑ\fá–”gÂs¡2Ÿç&•¸Óš§}Î1‘¿ÛÝ|¶i)üüK4*ýÆ¥ìÎ’\] ”½s׌“£â,ö:7È‹NÑóÙðVl:ò%‚²[gùÙiêE<}†Õ™{;§àTëbŒ†T`šjÖ9$g}²M}úÜÅhÂU9<^¾x¨Ø¿=Tٚ̓"†(pþŠ‘ó(QDŽ˭ W«¹üM?x\¿¦Sº¦ŠIÌo4×çc_€=S‹À*5Ýí™_PM< úDðT/oæLþ`8N²ub£d»úP8ƒr8ôƒoßál/´z % ð±¶ÝGÙŸw-Ó&ÿ+RW_èèb7˜Ÿi$‚óåVÔLbkÚ3ߘStK =¹Ô’ €o9РT$“;YÇ›-Ç™«2Âå cK ® n‘@< TŒíȘÔNŒlëq­~6'>·>[‹©2Ú²„‘«ú2çš´Ãèjâ3Œ¬àŒÞ²aü|§Ä•,¤YªÊ2“û*—;à!6Ê‘ÊñG6ÛÊ™<ý4†ø&úæ$G0­¤7‹©‹F”ßË‹1Ôøë¹ÊI$V÷7¡uqªh~u1FêÍÛÙ@2˜àÛL•R\zqI02h ù&²(ÎÜR¾ Ë8´Ž1#ÅE± >T`±™²D}áIƒ«fs.7áéenMR;hõ€ãì݃¡ÅÇsØ©êg«*œº<…ÈáõðµŒ}¿”Y©Å( ÀmxuEÌ΃™x”{ãWQþÄW»üŸrnrQ ïûg<á¡nË7î¾”uëR-òG{YÊúÕŠ½ÿÑvmc–ÃÌ JŠ_ ƒ;Ÿ²š!9¨B÷À"œÛûпë©`Cðx‹¯â²9±ׯ×N¬1ŸG8rDfÎ~h7 Þ$vÇ×+!oãˆ*±-†$º]~_ÅZ(Q9Ád/OyŽç¾V/Bq›šf¬~ö@) (Ún¢)CÈ”¯õ3S¤õ†ÕxƒÁóLáõ`%ÝUUów«ºáè“ùÜèÙ`G é~2&e3–ªK>±´©N8î}vüM{‰:#XQ0¦ôײMG²ô ‚ŽºèôèƒueûK‰äAò"Ë4OˆáNð„Ÿ“êÚ~Û>ëNƒx< © It^­v÷™ kbv†úçÁØjlr?0^.@ôWî~M…Ù].’‹HñSäNÌS¶Ñ@í¿­&èåržSAÍ›ñåò³¶„îbîaò?»µ ¾ë+ždæKˆ¹!_ì˘Æ=•^—ó[ßS)ç=øaÉWüC“uš6‚ õÀ+?2*ê–p¼s´¥lY†‘ '”‹-“4@uÀö‰X­LQ®=È0Æ2áCMŒ}ò’sÙOD!ó·(\bup^ý£ìú¡•Í]šéC¦†?ôžR>ÆZéÖ ³P:hæˆÛH<L;<~5г©õx¼®Üš1ùLâ8½/ ôyK#àjÐbB\c¢žäå¾9 ÊX]Úi³®²Ïa,-.‚®˜*Të #~ýß§Hûâ¦Üùö8cá"FRKSŽ…ÊjW•ùêsÁÛµs8f‡’ÎlÅCi?”3ó —ò!žsîüM{:l–GâûBRn´fŽïœI‘ÔеVŠ;`Ò?Ú7BwÎÊGUF†PÛ“àŒœ= YÎæ9’A•¸¤a-•½ üN´þ„òøë¿[ÆŽ®Ço]çFäY³wRÙ©Vwñˆr2Oš’v1õÖà½<Yï‰]‘"Ò+f$7~Û|ÖZäkyÒà‰ýwÂSÈM©ñ|0qË–¹G¨'\*sª—ºI 6–2{¿Ž˜,Sv#Ýîԭ°5á7°:»/ãöëí7oÓ>gÁ2£ÐLüIç;1V–l-œ)îñN&.­rITáÏ´ŒOž¦ÿ í`øäW¾ÓÓ#ñŸO*úöI›Oú ˆ-—$aï…XÏÊÌEøM±ðù†='ÄÏUOðø¨ß¥f>â~3¾™¹õ¾ú~ØHnîôïÜÎ>Fy¼o>c¯’(á-’ÑÛNõ]Û7ì}÷+[¡sÓqa‚¹À×%6þãà†~VM¼Y>&DîÐ}í9^¶ñk¦oÿ‰jüÜq@Èãy–Ò¶9ûçYv¿o¶Õ?(TÑüL¨hÎ T_"yøALºþ=)úCÊe>ÝŸ:ò0`gQ2±vGW»ˆ²Þ´ÛûhVäO±bÁ­vyþv5òP 7ôä5_ºê<ÇÔJÀ3}=4Ä#¢|„·’FBÙÀˆ#qbZ—k!bò º‡1gÚ§T,ä R}…ÄQ¼[NÇO«çs¨¥_‡2Òè鯴þÛÕ”bjs³|8ðQ§ÐžtB]ùÙòÂAÔÙÆþ‹)¶Êûm_R?ìÊDYüMô€4.`Ö–dÈl2ô;æ©ß«ë¤‹Rñ¼ßïº`k¯c¯¡‡"¶]c,zõ3Õóû£Ü=D낌 9uîÕÐðÏgÖµ×ó’v©Ò{|˜K¯ôúæ5©µ«÷ŠQáòä"8ÍrõÂÓÒ2JäBOjûÀ§3ôÁ”oí\Ž?|ÐinŽDßí°„¹8§ëœ—X.x®ÂÞR¬îK};Ó%“ÃÇ´Ñ®5,AÛ\¶–åÿéö• l µ³Ú¿O¥Ëf²´úÎ6u=NlÀüLµ¥rŽGuë?;|·hV“\!=¸0^!½8‡‰Ê[äo‰4²ìÈŠKó ˆI†êJs†±²ç(~ŒÎ˜œÏ¥Ë‰þçIÐÓpþ ˆ÷çgšúªÔ»/ÞlÒ[.ùt·Û×T2uÖÓoˆ(îF¡&?"²³×&íðÉüL‘ ‰òñ”WbÒeÚä®ÜEbZ¦ø¢v[0Cì‰=xŒÅFO“%Ç(q¡ ‘'½;ÄŠµwº›¢ÖT‹[S]dœ v&»œ˜°³[v´Uw‰ÏÑz~Ï}.üL¨1nÆ/CzpNSõ·6ÜÙæŽ¯œ/0pýöNþüõš¬7x'Á­+ 2°p"Ù¾®¨.Z!3[`¥ÂP|.ágÿo,W‰ý²5Ž7dÂ̸ˆß¬®yýÐøãZñZ/Ï&6e‰´‹â½òÜ{·/Ï7ØöoŸÌo1 -·¸LMjˆÇÏÚñÍ÷¿&<óƒØ;Bû6¹ÕJ®ØÆl—7Lë¬F,÷˜Å\ˆ~ËŸ#a ‰'U5O?]d¢E¯ˆ 6*å¯[Ð{NüÃèä;¸)Òeô’Ö®jñKQQü/S’¡ÍÓtãhKŒ?O€é”/ ÐÔ¯ÒtšËòxƒ¢isáõþj‹sHÇãMÛ_¢Ì€Û$ÙD2l_±è³¿%#ijÿp;Eûçgn{')Ô’º#§_0³ä\¸4ðAÛ¥ØÊ™‰—ABå’ÏÜÜfu½©~'˜b»o¸!ÌKð öÇiÃc\¬H$'’ƒ`ýW£.ÌV…B—Òêáö£x^×N‚‘+MYÛ À•2Á›h©6N` núl>.ÊÝòÞ2ò@£ÁŒ1àE’ì @#Zœ M:üK‘°Ï(P ™˜òÍ’úðT|õs†*ªÑ3)_—ƒ˜9 ê ¯î¥ôÈK[º¯Bß,ÌQ­ò´ß#ZʤץU%7 _x+•ñR ÿ9ž^¿!&e 㪧Ý%ÜÜ är²è®ë¿S­±[Ë>ÛŒÀl?ç±H{  ñN-m¤ÂB¶0Μg±!÷ÆÑóÓÚFX¢­ÈÚ«Ö¶Õ.QNx#ìkɹ£å¿Û›ɺ›k‚êæÇ€,i¼¢ó4'ãEo¦86A?¨ùã¬c] eÞ2||Á üL˺½É‰øsºò]üù€T˜Ë‡Gî, ÕÁÍoŒIewHÿìï†m&V^ËÜ~ñ³€(Áb¸¯“eB$CŽ—ãþORqc¯õ„º3,m0YŸ@}+Km¨ /¨´ºƒù„&ß AóÊTÝIx?¨6|‰÷Êò73çã:÷Òê¶Ã˜|FhŸ}#NÀ˜í¹©§«Al&‰ÔàçÈ4$ÊÅr…ͯ¼<¸üI|IyDP4àv4E…‘›ŠÝ7j4'‰€Ó9Ù‰c—¡qÕ¤ÝC n1߉´n'ÂÅßÂk|} oöšÜ$ïÖwCBNÈœÈô¢±h*¾vÒ‹S¿>K}XbRLþ"¢w¨CÛvij¦Êr”L”ñ}M0Ò}\s x2踟lÎo±Áâ7éèbÕ029ßL¡~η‚ ˜e¥J$MÀUìzÇ[î*Z¤_ÔröTîë˜*s¤kЬm=ãNøíU;ÈÑÜÜcû—O¤þ)LöE¥H¹ü{=Aݵ¿Mò¿$ &‹ŽÀ"ؽkq  ë‚°²xQRçÙk•RÞ<­ %«Áû”š¾ä>JޱlŠá°½]ÍòWo±˜@Ô…G51ô=NL³ˆ)ù¹Ã5žÑ0Kx4¯}yQA¸pñãÖŽº8—Ì5(-gÓ(¡»$Wbý›à©Ñ0i'Öë(šÍGO/Je„úÆá%¿Ò­Lª©Š—{LFEhV…ÞØñ¿ %pêÛ-çûE½¼}XÏ1ÊÑ\ä¿æ¡®ÇD õøôÍìÐ¥Ø=àªÔNˆ‘”ôb§’ƒA7cÞò\ÃäeËèˆpB•þK­XRQØß3íªG›=ñvC/‚Wê;Ô« ½ ¹óÿè×ÿW»f|Þªª¼3ÌŒ¢ö£aÐbÑ?¼3é$6Q™'ÙP€å ïKîP,-pžT¹²5„hƒ^ÎI>î͉޼Ak¤0ªå™5¦/µu_NŸ"|õ.o}¶Nj!ðØ#áK¾Sï ÃmxÅØ™Gò‘6Q'Y§â>TÄÙ&ü}bp)§9t¨ £@4Í9Ä1+‚ç,-©þ´ÒIØU¹ÍÈüµñ,³‹’“×ËrHÈÁML ð‰€DL×´ŸKæ0Ík°hÄ%žÈêwuÃÛÂ…¯wŽ÷ÔÀ3 ¢Sé?2Ö‡t‹%VÐ@•nÜ-‰Ç]Ê #šÁ†UbØXJ%ÃéÕBÜäIÍ™¬ÉX¹P¬âi'¬jˆ$3¾çåa;>{&Y3ò ´ë %âu0øŒðÖiõ|ã8 ÷ZZziVÙ¼‰”ö 6•n)õú'SZËk43å.¾ª ²­ó¥6CÝ“’Eû„ó¤³nW¶Þ6†Öæxó뎘EÇ`§¨AæIöÎúÙ|Ôôâηá˜ñ¸Y¸åSÑÌ\+ùø~)¥j~üM’ô?ˆp6ê c/3ˆjGT>ËÅ¡·¾"¹,×¥=·ä¯‚MŒ±êƒ¾µ›@ ?)9P¶jO®¬}cP ƃšî5„Ñ<°>”Òó)ôÜG™ö¾ˆá+Þ‡#À£Çç~üñ`këwðKôxß~¹Òô¾­#L¸—7²’ŸážWi«ßê"sjóâíÜï—æ0a­¡† z§ea“÷÷Ýâä¸!IU'ÂûžÍ¹JØm%“[v9a…7ÚŽ86í¸7ùñüMbŸƒŸ ¯¿éÒa-À»H‘îÃûhnÖm‹8¶œƒ›=OggS€Ñ&¨ä6pÁα;ÍÕÿOÑÖÏÔÔÑÿÿ ÛÔÜñçìàãàÿ÷öÿÝãìñÿþúÿ ñõóøåðÿÉÿVÒÔÜÐÓÓÓÙàâÞü6n“šÅã°þï6wð(%§ôRœ`ÖsÖHôS˜Í4Cå•Ü2Üɪ÷êÙp2ý¸ ›Ó¿ÀïA[ õz v5ï T;‡5¢©nB ¥¤ãµZ¯ÍFéi1T‰:'›®W;—º¦Ü’PÈî@€O ‰†zÜïRÀÆì`GüŽ7~¿Š;& „¯ØçGAza/B€æPžþH¶``àcõÓ:ˆrôµoöÍ3ÞÑ‚ps¨qÀÊ V¤âp\Ñx³§‡!ÚªO ÔÞ {>ô&M³ûK—ÀIzǠs'“ˆr$H”2o;‚eNRŸë©U{˜†wòQ®ºÃgQyípƒ°Ö¸Vö¯êfЭ rl줪]–¹¡ºžÐ ègL|¶¦'‡„hÏ\ÖÙ“»q>Ár½…rÄ3-=U08mR»N±È[h¢™H‰5aüMQØúCGo¥{R³¹i®¢p.0‘GÚ|q üéE ˆ-ue‹Ù ¶3‡v®YÔ´ú`òR†.ÄIæ¦á“â­Í÷t¤Ê2f!5Ÿ`¼%eéCt6G1Î%Öncwìoë<%¨ÀN^.ë¥n€CIÔ·2Ÿ›zYŒZ/!‹a"wÌÌ®Pf(á¢íá"p}áȇÒ;j> j­) Òˆôåf`³GÖæ <Äî*¤H2„‚®+ AZSµÅ•Ÿ<áe'ÿq$v¾šÎá†â*üXXâ3Àg{õ%â,äQÒŽf7à²2„»¸TÓëáÑvoÿ ã/·¡æMhÇBuMÐßhj®wÞ¢bËTÿDNäÿŒvü­.òCö3›TÎN|¤êzó+å[’ýÓ«Âàt–dŒAzZÁðNͯ2÷á½[Ò$èÓ}®ª§üMZÃf0ÍÓ¿d©Y‰2ät½Fh¼çUà÷áYv^Vé­[#_ }´M«*93Î*M[;;q 3$†>4Ë-€VФ¬oÚ¼…W ¾!±ßïãŸèRµýÓ-ËãÆ§U;ïŽmÙõÅ o)}™{T¬u½÷aRKФû÷¶ í}eŸˆ…IFžiÍ÷^"E4¼Cñ½H¬odäV¥FdÇÿÕTh/Ý%3µ,ÞôÕ¢–˜ÞPV.šVÑ®À¿gH  7ŽÃ‰1;û»i@<õ-eüLܰ0¢6èï­‚«  R‡à®G±šÔñG÷À;pã=‰š<ðYªNëêÉOñœé”™M|ÕfKfcã;é€û4^¡òL]ïW­œvyOø?ålT“5öáuÛû´Î#ú•0udвÛþªãZ·ÃI:rm˜#xà ‘\^¶ÈŠ9j`9äŒáÕu {+»Öµlì4Ї0 ϯo‹ù«òtó1op6’c¸ùÓuDÕä?ò¨~È^ÆÜp ~]‡c,‘Û"¦™L{Ü níü|©ûË%'‘qj´,]Õ˜²}Y8ªôÈ^+þûmäÁ+ ÃÕOatÏ:iT¶÷½€qW »@l­Iw ï'b^ºQå1xP“›¯´¹gáÎrtBv&$'Œæ,(y¹ÙGÈ;¬rPŽ'½ÊG0 J:ÜÛw†£…€>‚¢>=oàšÿëâF›Ÿ3ÎÌ$Õ™"ãæAˆŽŠ5ªî>ÓÇ]@n0ó»‰ÚÝûzå=Òƒ2ÿ]C.cÉÿ@e´&$Á \¥éÇǽ^âZm³‘ ¡ôÌ?ß«ô÷?õý˜BÒyz²µÙni Áž@S^˜³òóe}ÂÍîÔÌ(V§=û®ø¤¬?щu²¾$üME5g!¡u¯ÖŠèी't>´jüÃW>U9öI4»Jã“'{¦üJ“”锂_ pÆì“I}¬ß"«DŠqºN3„Èþ¶‚ªÛy #ùl´¼â(Bv0hàqéüžœÊ­=³Ç xb* :¬r@p«ª¼Ò‰%=õä"¾Ÿ¸d¥5Hãq‰Ñ!Î2Ë%f3ùšeR$›T1‡cQQµÎ Ī¥oeÊ9­PˆÞiDirQ,`u$‰E¢f™iý…tƒ³Ž%¯U¡Rµxލ\< ÈÐ ô4ü‰©ÕïKÛ³–Û:VöÓ°tÎ"rS‰AFÁUÕSÊGýHkPáªÒîj)h ·­ßüL°ó ÏŽwuÓ¥ÍÂV{´›ëZ½á¿¼Ç‹ÀÅŽNtÕ¼TæÜÖÞë0á^ªIsÈr¾Œb? :ëHe²ó³=$ªáízó¨¤à.&â6J0,Á÷òy96,Îx˜éJHmñŽh¦Åæé¸r N¿‚‡Vfø–%tм)WYÆh-McÍ"†æ+ÀV§2àìXá"F¼3´£cyuX\Û Ä=aG¦+|e¾÷—Æn…²dÔ¢òi×ÞA´u4’ˆÆ,Uá|§Zn-nèL¸¶!%üL½ÃHoiù®óþ'úÙ褡„Ý{z OåÆg Hž¶h¡EGÁ½}{¦ˆ›ôÙŸä‘{E”¬5ÞÐ'7MÜ”M7ÄuX«ýXJ’îh'J® {F¡!ZcØÿÏîTºÁšúmàé¾ÒÝyé5;˾N{ÂèÇ`i7”]ÐxQ-\hßcãßöj‘×J*îUÑm‹¢q,TOmU`# RlšHXUQÞÙ ‚:Ó÷E »…ØTAŠQQ%“(ˆ‡Ÿ¬6"ê,¯–ƒÆ*uÂIïÎÄP¬ü5NÓj­óÕÌvOÀ,ù¸a”kŠ–¹Æî”\¾ãošyü[J2åØãä)¢‘`Ï,ÀÂOiÇÔêO{ÿf?ê´’&ýÌ%‰ŠúÑh|!Y9;l·Œh¸üÂìåæÜÛð9¡Ý¦o:¢ŒH-:·g*IŒàçS†1× •ºþY—ü+Žnà^jš¿Þõdº:ëås¼‘³|†ÈÂreø 76]ãáÍ¥ ážùŒ9>ÞAÚ.¹˜X+)ò¦u9¦²˜À¼SÌË92à §6÷C´¡œ U1®5lñ7öœüÆ6¦'ˆfÀ§³ º”Ë/…—®Ç¶G-\]ŒxwLjéuDè9å¦ç`Ÿ°¾l°Ó”x¨8eÀÃ¥uõÝÁó|šæ^ž§|M¹ó·…X­«aáKAbôh ']­=’Œ‹„o¤);„9­ ŽVßµÊ.õzL&ƒ™1­rç*T?kTD ¤ÆÂȧòmH‹ 2âsÅ’Ô¤Îø8öki¦Ô¿Åž]Hì&aͧ&ØŸ[èÓ¼‚EúŸÎ]œÆs.AcwÀ×4-Hó]BRãäÏݰA™“ ˆ1 µ3ú/  ÉéüM1Q/aô5£„ÇÙÏîW»­KLcÁLOÕà³RiÓX²ÄM ö–Y±ÌÃiw„•!é¿×Ñ0ÔÞ:'m0pL±ši¦º÷Òá–&By$7ìÅȹBo[·ÒbõÆ–ùïÅÅÚÙ‡ü®ý‘EªªÜð“WêÙS_.ÏÖðÀjI†¹6ŽËŠÚ ›LªñÓ–:‡JiŽ!Û3;-í¾ÅU£sŠºÂxQ ÷ÌVMNú¡ÅW´zÅפG20h¨£h™™#>cïôè߈e² dÈ‚ôÖ½Ó.º`‰ÃdÓ¥™)(•ïî!ýJ´Y[ ‘Ë9v@C§˜ çc9ü›ÉP4Fr6y€ÌÑ-\g'´Ëéå°Àh¾³´qm¯'õ-´™aØ“Ðä.ám,Éb©ŸOXõ™Í›¾Ë?³†EP¡†khÊåUWñh­•CÁdœo¾3s¥ÙÄÐJ²× ßzMáÞÀ•¢—Äh£ª½Ê·ï#ðE¢›S¶/³«BßeÖ„°¿Ý)¢ô>—ÿ€pÃ̈„9“ GpÜÌà™4ÉŒbñ³£Ë37Ò ™Šµ¥©Õ©Ÿîeýé}‡Å™ .øõlœIBWgP¤„V¥£ƒ Î@\‚¤·Àý•P'7SìbÝü8€·4Iw‡ôk¸â-‡œG õÛÙµOŦñ¹3£ù/©9„ 4í’‚YfíR­,UG_g=¦ð„L„·ðœm¬®ç–L±„ÙüJK_ Òq¼} QˆÓ²æBmñÕW  ¶”8¦€·P¢ÆÝi¾õÎHñXâ¿<´LN»u{JC€O’o1£L¡Æô¦£3–ŠÎZâ$á?–øˆƒ-Í ÿ÷2_ý­ƒ5®tx¡“ü5U¹Þ÷ºEugwÍøµ"‘<£suc,-Uš"¹~yÈ@–6TNÌížE‘“,ëvþqÑ#†¼ ‘à;ׂmßmJBÚÞN?Xú  ítԙͨ5÷tÁ>*MT-2ŒNû.7˜_wáãGÓ/ýAaÓÌBæê•4@ë\æ\8U¶ÃÛh±Ú߉rÉ­BÖJ!',ß4ê6šäÀæ#¶Û¬™[<L>€Ì"4C&{æ~În^8­‡ Vk¿ÙϤáb1Õ#ðæ£‡ƒ'@£­j”ÈiKüæØÄ ü;¤üü¿û'Ìr[Zåz™ÔÞWK¹ÒÛÔ7¢fÌÄ4쟔|L¸y—üÛÂkxtªñví)íNö8‹-¤"õH Èà²Üè™÷~àØ?vU²M­ÄÈ­º×ó oOä-À±v\5ñŠÐÀýïêTr°UÿìÏN+i;Žq(aŸ(Rô*äªLôŽgåÐiåUG”"B-˜"Zæz¤I n:éUÚܳqaLÏ çP¨fù êo7Ö¹¥m-èéz…ÖØ˜}ëªÃ¯ L$}ò¢L×ÚÀ’ÔnR3­tðvÙ4À°fíÓKÒ‡§xÅÿ¹µå{ñ<ÅÃÀǺ õ²gàh=+èɬX´ˆ)7süº;]бaF”Á×cùÄ‚$üÙÈÔÏ×q¼¶øCÏÉ©'åµLIyÇå5gýüÐÈ×ÏÏ¥C.Á¶'ãèQ™t”{4‡¡¸ƒ;EÙ¿Fê 2z‰®êº„½¤¿¾O³„M,dõ Yÿdý·-âÄ{»sJî$fYÍÉÏ/Q†wܘù 4ha¸±‚?>n²&»Š.ôš¢U)šÂ®„ÛèÂíe¼_» (†ð{a²ÍMîÐóØ)ö}ˆÀt.a(ü "D¼Šºnzþ ²k“:¡û»LAÕ\±Ço]iU¬Q7vÏ3Ë>î×9ÙÅ9cž–ä;‚j|¦M¯wEŠo3Vxé‘î£ôæÏ·aveú«ÇCz#üÛ€Åþ·*Êo,>µ°ÇJñ#ÐsMcÛÖëV£Þ¡íÆÕQ/÷yÊ& 2n3I0öE·ïú$*¬á-F óIrˆ“~²ýSÂ_º ¯¿^MüKŽWR^ÓDLÝMVÇÃN#“ô\[(Jó3 TÀJn[HÏn€°¥:|ð#rD‘PŽ•/’§;i×3Îé}?á;‰D¶B)ôgwÕ*uRŒ…sDgë¢Å AϤ?>l:œê¯`Ú‡ú5ÇöõO)ç'‰×’jZ¢Ü W«0 ǺÈÉú¨]¿ƒµ¬ýñNH[ãˆ3_GT‹o##üÛt äÊmÂøŠs—ÇY[OžõØB'a•"nîó¥ummŸÉGHæ“kÙõ ƒŒI«(JÁ•"Àýû–~Hv.n Ñv”Ê6Ž€ æÛ¹W'7zÜÞ,Ze‰ƒÆ# W¬vÊ‹]ð|\f®V•S`üŒ@¶¥¢1úFˆª[¬|f£©£Ø'ðîíx‡ÈèSÚ¼tƒÅqÓŒ¯®Ë>@äõ€Öô—bÚÝóû”)w}gš6 ¤ùÙ”¨ßƒ&Xì–’lóÕÉ—þlLí«ýd¼ó¬üºgj2H] €\BÀ4p<¾6b‚áŠ$ü.s²u¢Î.sß"H8`L™Q7ÈÎâÁÎÝüÉæd‘K¼Â ‘<°| ‰ÁìÃû›i¯v´[³äœ’r£ôjðÍqØàH…sžý˘<–ÙïÒÛrk"V©ñ…+ä«/YDÛ&Ð×P³vÍT•x‚¼XÑÔQpAë4ñ¦~!* +*î­`ÁR¢xÌ dêÑTjÙŽž´ UùÝ’O] 3äå' Vî‚Qm‡p¼)ÆÛ"¡Ýõü-‹v‘‚„ÞΕ<ò©â/ÆhÇåɼýÕsX±•éÌ'“^¼Í!M ²ÛÉ+Û˜ †9ü. .#ªIð²ÛµR( ü–TU‘.8µlôŸ6Y&\?BêܳçfÀ}CÌ­3ÌY'°·…³“õ¼GC‰_‘cýE©,öT|mÒ¼`éûL<ï^z¿î½ðmˆ"k£ªjýTh”Ð4Ò)' „0ý† ÛŽª½Ž4¬Ä4ç–̦Š%V銹+OÏÂb­-ú†QçåNxyÖ{àdˆÅ÷ù)úÞȬx‡äjŠz%gú÷1§Þ&ô,jÀxU·’\J>v¬®fcm×ÁHéw?Fò3J½De”[ ¼ N)þ?Y.zˆSÔ-¯Ô ?;FÃÜ€§4‰ïΓÛü/aºÊЬ!Å”zÆ…rÖ’mm‚°tq "Þ<7Àë{Þk¨òó mÞpv0eÖebëø=­ü”ÆmêE}æè®J€¡– )†¬ð$î×}w>5¼:þ§“Íü]µmÃÚ~FØ ú|ÑÕ ËY¿ÇÞB=Ó`²ò£&)ÕüÝâðø¾û†óŠlÐ3½ÙTÄœæUciKÖBÝ/S¤G¤¿œˆôÈV#½4î‹´ì Ü’öÛ³˜qÊùèªt…ߨ7«*9™Me+r<Ç£`« X,-P¤Î%H ³Ïü0$s^‡^ôfF+Vò>Xè¹d.ºÑÅõí•Üê……IWJ£•å߸¸‹{ûÙ=7[¿ÂvÝ.¶èMû£ :%ŸÖJuÌv*àNJ È® ,&‹6¯e~Xâ¦;>(Á±9í+$ýÑ !ò”çf™-0‡Jß„ø‰%ëÚ™'ãqœ£*vݦÒã¨úH”,qšlA鼯ý]°ô"žZ) èùyNT=cbßrŽ¥[[h¿I ý$° V˨7çáVâ΢|QªÏ¼àEcFhò¢ªYËpiXÍ"Óê…‹¡ƒ)»‡µV=n-iž,þ4¡'ùü|§Çâ{+,Jñ_äÌ^½oLåò ‰?:PY)a /vKO‹[¯u@W‹LtŸj{±´›É>ÔnÎsÔ¶/…õfU{%š!<ðLVàÕ€†I"½sTX²¶—vx㨠Ϭöº'f¹ó/T¥ üD›.bÄIü05˜ ­õ|ô¤§¤ÚêTKÁÎu6*?ÌëÑV&-ð:EUC«Ûz$UÿiO!z2ón±H…þLÂâ¼È²Ð¯aâýÑ\ëCŽÛ¬Y¥C¿9ì—EoªÖ©r½ WÀpzÐY JâBÐøEÚ+Ê»k:+›P¡.êb-–Ã_I{êî!ØÕkEÖy*õ Àm/ûü‹†Àè:w4 áÃ0Q»qé8Ñ_ •ÕdZÔa¶[¨Åg¦Ó«;xOþW"£ -Ç÷ãïëï}à¦Ô YžQ7ÊjÊßüIu؇ ÜÛ†OÎÊV 8Ô+ô•½”Î.ÄfÍ®pG¤¾¢d^{Cª!“Y.½¸F˜'_wh-f‰¤<ÅNëȤÁ¼˜Ãkvl_µ5XÛÆ›×l°­*9§¼3˜T¦°ÅÑÆ 1«àÊ8l‚|hs:ò¥oz\.Ò{t~ŠG=`…6r1ݘ5ÌÔé4ÏÝ&]† uÏ\EO^ŠÕqÊ&3^é ¬0’ ¹6o+»šdt9³‡à’Mývæ1œüLäO·0§BE›Ë-ÖÎ/û…è¹éTV¯¡JdÓocp°yâ/SkœÃÂß×—,uÃâ¼Ç¼®F1Éô B½…ª(M.Ò* ßàò­æ“ª£æ“ßÕümåÂ-ø9iÁÛx4Ø%9_²¥¯RKN$ß“# ç_Û7,Û×¶õát7±Þé¸dÑ*Ð1«sF×AL°¸.ž#ƒY{27º–·Àq÷ó*v;ï|+—F±Ò™¹\{µ­Ô)š,wÐ(â&NHß›ë=— Rø{?¼«üM””÷?Y`¡ïÐû£œ¼qÝ| ô/"µÞžv]¶É†_0þÚoÈŽzUM¦zÍc£¦©ÝÈhØ¡¦í ÞZ:‹DÁ88õstÓž¼™Hj%29“`'?í)J$¢}Ô©sȤīø½sÞ ¸P‹‡j}Ýr^¬–Ã+à–´‡°r: ‘˜gp dˆ€pðÙ0Íu$uÃvnœ÷˜¾¢•_M¬2åî7ÒŽ÷_Á= zÉ*&΀Vôeßý÷‘Jܽ“Ȩ½bkŒÛ?»ôõ?æçÊöX{ÚüI`'·Q÷ä)¢ÁßæoþŒKG£úÂY” íxÏsö[ÉFÓC›eê‹£ùœ™dWLì1êu'¢Þ‘&£xkÿuø™Ô+ÇäÎTai7ìG†ÍGIe¾Ëh< <ÁNBؾú6a yÀÅ GVÊÇsÅŸWE”EÚ ‹S*vÍ\eJø–ºìK5 ¹«¾¢½9,â…3Œ^Œ'fƒtÊ4x÷f-c©(Óy y`èŒS+1:Žåüá0—k~òï[þÏÃõ\üLÀ¸×±¦¿Â}‡Æ¾l…˜*y =°D†>pèÆ>áE׆Ôê°rhb˜Ñ¶Z;ì‡øPÔÒì]¶S.Û÷jßæ¹€ôéÂ…$ºiºé÷HüT£íŠìØmJ ³µxÂøHðÒ|Ú%pqÆß)¤—ÉŒ=“W(}‚,—.Šèj¥ìúÅ`aILä¨ýÈ’Ùãr¿ˆ¸|cýâ\ô:oØÅq+™‚$=‡¢Óµ®ŠsÌŠÛø¢¥A©ì¹Á)„±²Ùnz;e(¾½ávtü-ûôbUd˜ÒÞù G”ßËKnŽÞå²í²cèÞ› }/õ×ß•º“ªúPäÄ!ùz9>¤Ô¸¼AÁüÔai©‘öYy-òê&ÀPÙiñ[Þ:³¸vÜ÷7ßý¯š s€Z:}sÏõTž<¬rzžZ‹ÃôªM± å+jCõÝÊdðž– vzNô†rqÓ3õïkgyï%œ\„þMi’,aÄ —xÙdð{RÊFŒgFÜr÷d[=¨ÌÃ&CýàqG!0ÑŽ#&4nÔ;üLȲ¹h·„ŒTn;W‡Ô¢/`r烚°¿»ÍõeO“¼ ã¾OÌô`Tiœ YÊ> Ä‘®[v±ñAª¾¹—ÐÆ›kr’ƒc[ò°dä3a­ ÚCc$ëm ´›œ¿¸ 5H`™F¿GÁxtJÁÊbT »Ú/úèÞûÓG¶øáOlô£ý`ºÏx™˜{=¬lÉÝ4þôÏ u¯Ðe”Ù™'Y>%­Øz«Ò¥Úá¤^WHö#©U“K™ £+šædòkKü5+l™QìÒÐ#eq†}AÂÝÝÐÀ¼¶k¤L.YÁÙnípBpRt*‘°”m̹ éJíêd|Í2¾‹+I8kcmÖ ôå,–TÏ—% |É4NZ`Â)x$aìŒÇ;rÝ?(ä¨]õ)ŠÖì±IðY_ùx0ÆnaЬ‘^Kü#In"T_“˜“b…-Þˆ\6¡ÇÒI¼-)ƒÃÆ{Ê—ã=pàÉ>¹_]EMzÿšp?вúv½‡ýÆsHÇ ªûSMúݳ²{RÅÂÖ)+5+n¥¼¢F§2\°¡®ü/Ûù[?ÅDv-#Ú¶þB 01²#xM,Am‡h¦™‹w»Â±ž¸ÒCÍS:bª¥‡ó§¢Q`äN‹Ò†»v@©Åiÿoí ã#¨…ÿgÆytkÀOggS'¨ä71oŸ6@çÿ¶ÿmåéöþúÿßÿ¹ëúÿÿþÿÛÞùðóéýÿÜÿ—ìÿûùìÿÚÿÜÛàððô÷óðìôòöÿØÿYÕÙåõòü5D ©8˜åOA¬èÜ Š ©ƒÇ‰Œm2Gšn„DÑ––Aí‚[Ì–·’~À’Làèª:†ÃâÀÑX)…nL2s™èE[m9 TùmUC3dMF20îlÖ}4JKnEhßbx¶ /6$zÛvÄìéÄ0P©µ)êm—› ¦Ã U]w /¡øý ¢Y*鋪Úóºzâƒêf£¸êÞ' ì’ûý¶²l÷¿ÌsFdŽ7¤°6tôÔºW‰ó Ôë"TŒ·dÏ´K»h§RI}­f«F¶Þ´Q'ý± *çŽ!ËTV³)öÒ+?…ü|©©ÉáçÍ?íØšÍäÊL'ru€¨%$ÎïG~@I”úÜz¾Aö›8|5ÑðfyIõ!9H‹Ó4`¢PÕig–€¡z=&K”`ƒ2|³“9Ùåhœ^Mììã³´òßf×Ôûy¤ó!NP‹óàøcÊ(·’¨«²¶2‚Q¾÷2 ŽîĈÕòó¤yN†ñ»¾å~ñ*5‹T쩾ˆ”öÄd*.Þ–°6ÊWŒ’é£D3*üž°g߃ÿh€ÞÀê«—|^c^:À”Um$`OL8×»õ-ú„‡,"õ"ÆøQ xe†J^|eh ­O接Яì…Ñ1¨§]€9Ü®Z«+ð:{Lž¬gyãO²‰Û?¥qWg9*x§Òv)ßôª¦Ø5kiНþ>e¬Jù)’J>@B¤T!{´šÞ+jk˜$Ç1!J"Â2yáTl/º^DzâNGÌärU‰ÁŒ;–ç]h´†•”‚ JŠ6_—qõ¨2P–³,9þHÈÃ;ï¥üò! ñ)j ‡Äs~iÒ³ô7‹h…Spüxü}^Uçˆ-Œ÷…"ÝxÊbðbY>êqºñÚº_m¥F,ꛄ0l ^H[ðeìÆÑ2¼MJÓ ëY¯iÜǫպÅa/Åo D>%¡w gºíLqQ[ÝŠ¹w˜|¬!Ò@ˆ~h#ÆuqáVWŠàšÆþûi ¡kÙSü~@¨|&ki ¿°°2!ÉÌDÙÿ-H¼hŠª•ñ¢²3j&Ð6 ™¼n,ǘôª4þñýöÔ ¦¯t¿ß‡¼0M†A®!ËXÁÆÊÎPgÏ’eZÇQ–¡ ¤/ö*Æs ·€årþÄÕ üFì©Äöa‘<¡÷ÎA±D£©ÆÆˆ© w&ìôéñæ~H…½#ëË5Ϻý£oì÷šQ¨ÝàŸc³ïÌx<þS©wü®üÆl½3;[|Duñ)íÐFÝÅs‡˜Læ›a_mÕ;ÝØwCÔA± jÞÖSiêSöô#ÆÖF‹¤äMJ ¾¿-T8a¡ÝOn.üÆ*%êoÌ Ë+ð>>*o)¨ n“£ !Ãé<%§!¦Õ˜ÄÏúeñ._ãTÀq¯ø1OåžÕPb(&8•ƒmÈç#ÓŽó mZKN ÏpY!Ë·´è„k(zͽ©úÆ-=Ò%æn«têÔµCÄñ¹‡WÞl°“®Èf@ŠÂ30‡»BôH¡sѲ¶ýø<[Ž[í Q,ÒKyÌöã}×åçÁÛKˆ¤ñd¬dž´ÒÇõÀ~ÿfsv޹•ÎÚ|@Ôù P  ©A–ŒØU04ç¡Ú¹%' mJY5«–Ðn¦/ÎJÜz¿Nxe6›Wqx8A±#,sM‡;bÃÆüÆl½ †hÌ8Ä-7çÌ-79±Gµ!çéˆKL—ä•®d0¦žêÜ H[ÝtÞôÅ ÀÔ¦)-Z›Y×ò}˜±ÐØ “õú'+Øta çÚšP¦Ô ×fâs7j6Í‘|ú¸¿jº „úÊ{<"›^¥y©¦aÈá4…†åÄýñ*÷ù0ùŒ¼c“ćÆJaaš"œÙÜ£sÞ‘ÖÇeäóÅæ×pa7w%/À™û¼Â9%>)¢«&”}à:— ¢+\—Áf0Ú ŠˆÔ6CÝå'Zí?´c¡<®“ø&,óBWž—ÅÕÏm‰òYZœäÉ‚ü{ ™¢vò1ZtÒ¡ Š ¬iz”'v ÕÙix¤þm×0—"œœnÁ¤þ†5.]) B&Ò_…ëVç¦O¤v•A{#Úà·†zÀx¥ÀrÞßÉ\ ÉäkÃæfÁÈšDÂwTôC:†/Ø{-ðþõç I%F¼ò¡âÊ%†ÑîåúÓøÊ?¥ïªf_¿ÑH[kÀ·×ûu•ÜJÔ¤4’Ø@YÓM,6mпoÄžÞ/X˜×ëI9åA¨Ë, bæo¯E$…•T”ðÕz~z[s˜×†ÀP „P=yÿc6ßשۡ+ó÷üxÛöêÛxñî¸òÜM{ÆÄNsýô¯1y™5IˆÈ Õ&î¤xl¹P(‡é¤ ¼0¶Ìþáç݈Å!Ó ÊlTÞÎ`±tæ¡1?>©žVÜ¢{â6ä+ôNj¸T¢’áD`ß{Æ‚„ÅYnÆæ³ZZ¸Ç€iL¼Él&ócÕVÕº{lÅa-dz£âþ×éË“ÿ^£k´Ã`@¦3`ùJÞH` H Éx&\ûOà:dÀǸi]˜Õ]Öy„‹^Uµm®  Ù¦u«½ÉÏ @2iìÀˆêe¬š)lá×Ô?Î*üܘܼÁ’.íűdœ—ü}a@Á³Íªöf ·½áÞ†‘~¡B‘vÚ{D¼î\h/úc7ýk2z;º{ ÙN±úäv† Ø»[1“œ[+éŸ*gwGΠ½ªb÷Äj0"ßtŠ8źIšò³ÞÞqǺ&•ϯsÚå8ËÂÃŒñ? mßÌÓî¦N×ëÔÖËiµ7{8­ºfÍ¾Ðø¿¤~ Gqníw·mè¾^\ìIq˜^ ¤q…îÙ‚§ð5sn»×¤%“a½Ó‡›C€h,UÓßøŠ|.£æ«aiì| !‰ªÈKÖ=ãÁ µ‹éï€æŠ2¬É#j¹è¸a^Ùëð§ÆOªwí'‰§ | ÔökM'bÕOúCÎ4”³W4e°2£bäà*ÓøIxÆ& „B¬z¨›æ¥ÑvˆYew €/+S3HÖÅÎŒ5…쀰ÅÉñ*Jp)…¯œîŒæðl%+;Tªu–õ(Ö×ç`ÜB3ï½7X¼å[¸³n:÷þœÐ{™#"R9ð$«r7õ%G\·4·hÔ@¿†JðµÌ†Ç†È8å¶Xom›Øç‘߈~à.Qý¾Õ ÿçümËd,LK¾$^‘¡C gÍm£¾Œq¢ ù}ë¢2«¡1ØA*^¬6Å>Éÿt¼½æáPº–¢øÙvñ –¡Ñe8g·Ë¼ÄR¸ïK¦ì£("ƒ4„ÔLÄ b–Ä e*¿¬Â“¸°¬Ÿ2f¡ËžìKYž òoª†ItV#™–N5ˆ‘"²^ÜÁmÈôª°Eb{\b2e˜÷Ó±ÞkæÌd’ÑÇ&ùvR‚4x‰–§B¯êȤÐ~7ìóø÷bxRÛ^,È<üÑŸ“§Û5 8mþË<°\…%«Yèi¿éÈ_‚c ¸ü†uü¸Fžî¿Õ#ÑG¥m0$ ·dÃe%Êvú=… g'õxÀC¶ŸøŒ™ ½ð_©n–ڂ棼dÀ‚°ÊºüÂþC‚MLæ'¿{v¢Üÿúà]‰Óž`ИÔÐ1’u”çðkoaë`Ãê%£Ú–ň›på,K#ûèdV8ôd¤Üó]!¯p7”í&9++ˆ¨ˆô¡:OÄ0F`16^_<7÷º$èDaö"O Ÿ]/—²kð¼Y&¯Ç€¡é’‡ Ói†ND8j„l•Ubkvéü.NžµT=ší9ý·…‘—MRo˜Rð§,‰Wâ–CëöÒ¸E#_ýbW=wζ áèÕ«BêOéiÉýªu õX úÍñzÓø¸ñ‡ânÓ?!Û _Æ±æŒ ©,¿Þè_ü5 ôª=Gˆ¿¶€Œ™ÖÊ"¦í{!nª™µÁXŠÉ©A‰Y—‡Àv8DÔY¥ ²jHðZ©ŠU·ºeË{®ðÔÐò@ø‚37W*oJuhWÑŒe‰[Õäºßaø=ÝGŠ£§ßcºº‚ÚàúáF³þüj p9"ÉÏv=átí¥ãþŒAdöÒF› u#dºBFW@w&/›8™ŽO‹R³H²5=›5áë*•UÂýÒçãxÈÃo¦–¹‹tP.‘Ù™mðv¦5Ê'q„ìô,ÆnCEo»RþJËmryÏÙæ¿™*|Ïûî.·éÝ Ã›œ#fü{Ÿè˜ÁIçÛ…¢ß?Ü¢t»YCÑɯ‡ Ö5þ’Ë%M_Ð?/ü´ºMèâà5Á’ yæ§j Xð€$"ð€ŠØêrŸb6u'ºÀ÷‘òº™3ìøqÄ4½7mâ³Ïÿ›ˆ¼Pµ0SžAÜ‘˜ñZC8lzAªÀÃU¾Š²@S­öÜJ%fñŸÊ²Ì=EV"yLœGQZuAmXÚ¤ ·®1ð++7Žä:Œ ÷œÈAlg)­™×¼QA‡Wáä‘ÈþT¾{ÖÆ$|×â>a°;Áåm¤Ì@¢äß4Yðì2èBk℟žä¯>åík©º°‘¨83xý§w+í܃›µ«ÿ ¶<ºŽÌǧIž‡û<HÔ`ŽÓk€Õ›û™H,ÜÛ— ýy$Ÿ\Ÿ"¸o•q{ìn‹‘G¸¶1lOØÞ ²J´Ý« Kó98–>: =T{ãÌ?E‚ϵVkw”Öt@~K)HˆÑË@óïæDa¢ŒLatHñ‡FÖ­š©ùÔuúQõeœM•)Õú0óƒ5ópH[ÉA)ÿÛ8ôk<„ÿ¾`X›OüM ˺<^ÃmõO’b#ÏC1‹ô±ã-É%¼#¬{\BìQ×40yŒªþÛ÷Z/¹ Ý*^dŠc|3;T¿ÔÅy6VG å«‚ç³S˜N *7V9>9Jàÿð ))Àæ4 Ùž{)…ˆY#X õÍö¶aøøkìkÎn¼ø.„4ÙB÷qr³áòg9½zÉ‘P¡V8æur#ÎSC‚cbŠmuÔƒîúd…'ûíºóÞ[¨D¹‘«_¸Ü»Z œd­p¯Gñ¡lèî¾ ¬îØ¡`ŠAüMWx%YFçÞ¢AÊzÒºý­€”€Žž±0£ð™µÈžÔ™œJöŒ¡)Nå‘qld Û8ç ¬©mAM¶Êšõ8Pœ¹—bò,0ñ›¤ÌÖYSo¥=žÙÕõÁì“Úp % ѧ6›½>ÙhÓº0Àl&ìTªCµÀ…eãÙ ×h˜þ˜IÅP S¥’s³Z½'œ¶†RÜDŒy´¹Öš'&î*@Ž0:½2,Ÿ9pÚm^å±Â!?ªŒ5ËWç?Àñß“®žŽÒz€³tÍÅ2€Î¡¨,kTÁ±©‰)Þ.ItÓ{p¢7—hE@âü ü4ÿŧƒD5“!C}EF¢¹&3ÀQºÜ1J²êW”_¯å5 ›Ý±E¦i5©øøÄ¨¦Õ¦ÑG­|§Z?^î$÷ksùصƒtYwâ‚—¢4äóÓÃÖu·Ë}FaEYrArà7'HË©Wqr ÍGT÷a39óR–dï<$ö&C,ÞìÞìѺúì¿ìL¬F?Z ú04ÉÊ¥Ö"ÎíAć0 &oã—-ë"•õ]Rˆ ?L<Èól¿µ¹T°” ˆ‰R¬Ûº˜‡“ìåœà´¦( c^ˆ[ËÚñ±Úy)ª•O üø—¸!W€UOüIùm ¤iFgfŒ[-*ð¸WšÍ÷*¦—¨Cì·l«.«ÆÀW ,ò®ì~(I ­úÇ# '0ô?pÀÅAË‚÷lÁ`ðƱsý°Þ¯\P“ç[^ÉÌqàY‹„ñ µ­“M‰ö%+‘6Ïàçye¾m=šÕƒƒ1J0gP ± ü÷\ֱø^¹£uoèO¢çöÕ)xC4: ´B]âpB@¦÷· ùúKÅqÌãaYÓ Ü¤ŸXL†xg™_˜$]bÓû2Íšè!H„Wv„aqÁÌkçG…|R¶?+úrX-´1¡jÀùüÛ‹JÚŒ„¼ÇŒNŽwÝò<Ï­Ýrù$Fì»-6b(‡À ôÐD®'†2·c-Ûü ÝÁ~…ܬ÷ —Ÿ°]±ÊÑ9&帙ÏïUÍÞïæ‘›BÕ.’$Îâ:彡%aV!ôû³‹(›àˆŒhÁOP üQ_g%ì¤(§W*•ñÚ•OKœ´¿>™ð/¯àÛbkYçÜ QóšpÀN“Öþ–b#T­ {žƒ*ƒ7£>n§p"­HæczУƒs,Bâ[¨ þtMõ˜wÔ¥ÀaæŠS~u°­!üI¥Ð6²<û®§;Oª ~é&S®En…,¨¹òÙO½Ì éùj£Òu5nD{Ùi•ò”œLÒøk~ÿDv51úo ŠXNÈv§§2= ëjÁœ¬ôxôƒˆPƒd 3óÈ‘Va‹K`ÜÍ,Ô-å¼Ñ’‡€á†a`Pöýa2¤ÄÕިӎЇc°œàœ:;o|Õôô)˜Р”¸«÷m[4~.{“q¾vm^·~æã¾+‘ltfñÿ|ºü®wW zH’íxID±¸û89zi´©` K¥>½ï뽑ŽÜå~ž‡L Ñ9 Â^ÁƒÖê'ç…z*§©d‚ÈÖ D§m—c¬b ÕüËE.æ&©)<Ò.e€´¾eËqñé¤ÝM]GÌêFóññf éá×d1m^,ë#ù÷uW<|¡+æÙаRÙmƒe‹™ç¸dVAGV‘‡ªà9dú<{K_£ä‘Ro÷`p°VÌëÁ¤é{ ®ø’8jÁsâ* "iÚŠV’ÙÕÿ¹S,F*“ {þ¯'ÉM}ÜÑI/„(Û §n¦]¢ÐnZ2:w5ûøî·/SˆuNì-½‹â¡Œq¶§§ÎŸÂŽÔ'8Á*8ó¬sM"$z6äª÷¯ê¦E{–¬ÄÏ\÷S"ù¦~‚ZÅ„Q»™Ø”å˜æ»b·›µ–Øe fþvx¶ ×@‰”LÞsùC …wZó»leÌÊŠ•öâ,Ø%j°kÇ/´µktü}as+/2E#Óž/E|›õ5müÃá;Õz´Â?¥Ö:á¢6ó-¿µöŒ Ê"jè¨ÖÌΤt •ÞD3rØ„è+úȶ"UÂWr™Bì^)ÀÂGJÌMZ¤ax2ÿcX³—ƒP~“"Ä.] Ù­h X—¸†ÕnF§6d˜sÚœξÉ,:4¹îVe>§IMžZÛC³à’l<­ŠAvÐEà .í=Ýaž™NX+Ö°„ßø­œW·-ZÈÑ÷ühÔzRè§ì5¿…æÈ"pM—i­¯„C÷þÄqúææn÷î­†º‰“(WR'˜òäÇ?IV*›ùTâÑÞƒÔ$…î~DPˆ¥¥Íêís½ó\õÿ_)@‹ßí)æû?"Ó µYXˆ‹–#̲‡™N–tÈaÝ j³¬ïg¢Ñ`BR‘Ö+„ÇVGº:ÎÿÍØÐì +thŸÁv½0ïõ}Œu¥±?Ï’³©`²½*±­Úuó„Þæª-©¼´ÒR–Ĉ–ù…üƒärbþå8P¬þИ Æm„Œ†Gx §ÖTá1i=)ýëF¨G83· +5?3Ó‡Jû¾Ž€Ç /×T ‹ ¬£: ¾ã¥¯‘ ¥¬½˜Ý¼2Ùê„ųêâ­^Š>"Â5^–ðFBDIùG07•x¼ÛØZ|è1AÛØIMä4WbÔEi Kk{ï`18q 4™ÁüpµVŸù?>çŸq½ÑÌÑbñI)ªîÇr£P,`¶ÓíðCñ ª ô¯ÒQ †x]n¿ñ ‚è„I¸‹ªí[!×4 ï1BÞdûTTou” E°üNJ±ìɦ.#VF;ê±€AÃ4FÈ裰ÐŒ«B ÂÌ^Bóí7îó|ŽgËO´z&@XÊçFçí_u¡`X¨;‚ë&£9¿™ ꮡ2Àn‡œŒ]x‘ç ’ü°l—×9þ»¬ åL†’IDôQ˜—…”9ƒ6úÜ£¼nÔ6‹±³4å™TÁ²ºFD!Ç¢`¢ÆŠK2o¼Íæ.“DÍuh“•…¦šh¢¸aAðëhÚE8Nµ³Æ~•ùUB㌣†löß½t¹sgáBgÄá õâñ¯‚bC)FûéÔåKhøôµ!_ÈY|p°üÄn 8D¬ëÐ üL«ñNÕíÚ>‡[½zMZ"ƒ²»?%…dbzÓòÌnxYÖ¦že´U¡ùE±µÍT[P%·ú>ùœÕ¯=ú¯:"íu²Ìý?³â®6X%SÀÔ†ˆ‹q½‚¢æ«qßeCb´,r!Lš EÆ8¸³0*nÝæ£ee¡z1%sVmã[ò¨”Ïoòë¯òxƒIŠJZ•¦·p=ZÅ@ƒzì¨å^ÝϾ˜3ª$¸ ¤'f‚máù-a[!nÕCȼˆ9쨻k—IöïTÉ(jTÇâ¦Û[,ÆãZ,…\Š5;wdì‰Þ³ñŽùO%`à¤KGlßQüIçlp4ÌŠ¬lˆÈ5ž%í]ægTú"  kí…âVQšaÕ¬•äèÂSåD¢vµìÍ4ø<‚ù{¨æ”ÚƒZéÕ$Þ0ÍXÂ;ˆ–F‡dº®øw©ZìôΖú(f ¢ý$aï‡Þ p™~ö núºvì+‰Wh—YŽ BJEBtÉ8|a4ÖÍÌÚ–¼®ÞLc¢8[¸ŠvÓ2ÁD!väíü«J¢ª—¡½~Ðbæ\ú;Ø&\\%ߢÿÂmÞ‹6ÇEK Ä®°áÏà¿#O¹ß¶)qµÕ¯÷oŸ^’XÏJ‚›Qk[<ã`©-l¡WmÖBè%[ß@äú‡ÞG^ÇÏ«(Ø* ™ÞHÝÔøóÀ§Ý‡Êk%¤¡«¾¬^¸¬-Þžåiú]”&•ÚLlVƒþzIg”%ç·7ÏÊìh!Ù0Öbî §·bV| J´–Š“Ãä& ^gÊACñXéÎy`óí²Ë`HÐ8C"|ÖCaÂüj÷£¯ñVx‹Ì¼Ú‰–šQ/w·ac Šê_®i|Rˆ©ð˜o6(c§g¢Õi£Em»ŒƒéNƒToÆŠî׬y¾¦t®8ë–ž–uxrëÂÅÞœêBÿŸ} €ò‘µWÈ|uâfÚNpÖ‚àE|ÇË\cíOÎr¿€ôùV/Ðü}a@P`LkÿAËyX×:NOµjumÇú¬«.×íÎz;òŠÃÑÝ¿DÓV½Z²/nÞ¬ñXVš)—9Û}ñ”îQ‡ÖsÙn4/òe„f#ÊCo~òÌ…$ €±ÿž»¨Î=<ÂÙÏt`·²ñßOŠ[cAßñÏ D ©ÅÂVø™ÉTÐiÕ³]š'«Ö7Á«ÌGâ„õñnþ2Ç8&U• ©"—•ŒÝÈYaêÌ”6DON™b5¶æ¸úc?ï‚®å¢ÂÊ8{ŽÁõfjº™à¼~n—Ü,Йd¨çP\j·úŸL1ÓeÙ±—¾“gˆûŒpô¿¹sœA§ 锺úgÒ xlGž–Ï"L†Ø_v™¢K ÂòX´$‰kõ÷Õ9úźþ6Oüø4þçsÈö Å$ ˜wÓH‡ÑÚ»¼5ã5gÖhP‡‰°ÙÐx¼€FDCj›cƒªgåÅŠãܲü~¶¯ùë%j7(¹ÍûÆA~j½‚tq_ò‹äÞª÷^Ú“TA¦q ä:ýªì+]¤è×®„SúÉ¥bÆ_7úωrOxÜê¹%yü™Vªè®«<‰µ²»ZˆL™Üº¸:¶` ¯s5.#Ý&3ö]Z-Ö’ÁmHw¢Y€ÅqŒñ픉„î,_«ŠkÖ!oñ ×讃°Ø^á2ºÈÅÄ †üyƒˆê›mR>Š~á=ÑÐø…¹ÌÛjH½RgÙÈ»i{ÙB%Jϼ›®dý·”¼£ßºËžÎ×è|O°4ï7‹ôRô¢Ç¨ßÚ{2¤‰Ä(‹L¿3B2ô–4˜›qXæí\Òy“À17W°h¬¶™d-;u!ùì@Ýeõsh?5ÒËíáiˆI´yü5gž­~äƒÉ!jŠVZ]Ï„f ºÛ‚8 ‡ü¨ b~›È{&š$ćX 2ØwXx¦ØæHÏ®G›£([óßeĈöÂÅ—*¿Ýþü¢µ(t(à,á« >ÊA¶Î’ØKÂ5DaCîmø®$NÚúµDþÓæÍ¿WÂ$%ê$V@íNþˆ|Ÿ|ëB+P&`ó(Z‘-üHí¬Ço1¿4ó?†-yeˆİ ÍÖÕ5±®­z!jÓ>_k©¾¤äFã¯%‡N¿ÖNÜ&Þº:¶Ô9{­a뵿eüÄrŽB"æÜ+ñðÍýkNþÔ¢½ ”PIÏY¤„[¹˜Ôºû_P|óQÙý£ìÍ܃\k‰xEv@66§˜€bjøó©âåXt¿›Î!~j«ÞÄ>®çRB¦¤U÷Äëj8Ey ÔŒïo\¶„vªªÞ4M«ÃçJàÓ1( 4CB~},€8Ȳ!ÔÑN‡ íøÑnå5,I˜ ¦¦pæ»xB¿PÃunç¾¶»P„’z3w[O“– bØß€è¤n1€G#}9ŒE5«+0R›';á…Ô2³×-vŠŒÜP‡ƒÚ©FD ÓJëc¨Z`÷ÃÂIMÁ€l. œp¼()Ë5cÙÛ«³7óºÖ~ã°”J²;Íz|áéÕ[L)㋜ø •\Ôí)¥WœX#lH œuM´þR>œ%¹(kfÄ} q%p åÌ;»r¶G£VxCZ#¤Ö÷±›Ç6IÏÑUxüý¨)jª ãGû× ¹…NÖf„‹M£ì¡$¢]k Jl@áyßâÄíLNX­aAPé "æôFÒg#€…s2”úÏ fOc#"€¾X”ªkfžèÒbHŽ-ÅYó½ÂBÞVqX—›ßkäü6¦^¥ýFhÏ퇠HÇ5\€VöêDga`7¬‡¬2i¨´Øn~FÇTÇ2æ#mö/¿ç6I'$Øã¯ 9?*ÚÀÆÄMŽ3ED5ûJ?¯‘ëàl¼)¶S†1›Üê)v›ãñðV—OPÿµçCº€ØS͇? -°à#J㇠ëØ}ÿšHWg©²wýý«G£aš³B0–‚¾|ù»>Edœ±Üa\Eø ½¥íwPê?)orHüÄ¡}lÛ&ŠzÇ≤èœo‰O;2j¼ÛÅY2cUä[%%Y’Å?s';î}9¥•Úõ½}ŠÔð/üLÖ¥úÎRÝzꊚµdÔ“²){5„í÷oõ úù³!yù§8—*/Jg&² éøÀÜ wì6íµÛüù`Jª[šE *­@`/èä/²}lQÈ–Ö’´ü2F¿ On ÀT?U¿µA¥T1Yö°µ¬ÛI^¦< …Õªvw,jh'Vt|˜ep‚œ ¼ô¹ß˜ï*3lgžÙSÛr‰.Jÿ¬{w rËr¡ÉvɇÎ fJ)¿Õo×]žÊQv-!u›üig;†Doåh’!HïýÃÔô<±˜S|Δ¸>”nËü6g.ìqUQënWúczG¸ÊôúfÇŠ"^2À 9¯öžæhžQÅ`RoZ‰nKð¨ÝórñtoÆÊ<½Z¹3–Çñ°ì"„=ú®/Í¿N^ €xqŒˆˆúò¢"D§66"¡fÀùe÷7›iÏÒÿ¹s/x&Ki¾º’±ŸÅ\\hÜy®ßØ:0ù¥R«áì ÛböF·Ç¶˜*^QKmq´Ä+ÈDªŽ°ªi½Ã¼3Dñš“äÞH¹PYù/‚Ô,ÔÕ4ÖïØšÓ$š®§’>¦¦Z½9;'Vד'\sQüÛ|oúî&áˆòcûw_ó@) ?x®Ð©ån6ú”Þ’ËÞ$` Ž=Ðq@tŒ×‹)Z£¬Eâ<å¬}¥€Ìáte®|D@µÈq¼7¯rDp!¡„Ë>xkJ@…ºæ‹÷9Gð/5ôÙ`‚‹Œ¦ âµ±[äì™|/sôÃ¥¼ðíeÓI%Ò_-¿ù9›37«>›§ÜÁæó#§=}ÄÅ>ƒy89!ihµ 5p+m„Ù8@ÏÒã5U°½ªŠ2âeÔt¿ôé²;¶#vÂA·ˆ}¾žo6*K Eñ5ø¤´OÍvlµI)êüL¼Ù"ê;ù]1²Nš ¯z£û4³hpgSân±™%u Ú¹Ê|ª1Êwqå Ÿˆ «rËpÕ7ä^(B-€[p ïgàŒבXº¨ Õ¥hÒ V¯ Ì&‘ôÖb>'íiÞŠu“sD˜Í¼»‘>ö ^d§&= pŽZ_'‹R“<9*¶eÓî*ïía&ÛÞÕr?Ÿ i%h?ËÇd^àÆa¿ï¼ÉÀjÙñã»?Å”'ÌjçàôR7áòÓõ¶¤°ThɰpÙùñtŽ«êÆì¿Vã(Áèóµ!Ó¿j"Kšü1^`Å—’ñ«C?µ™;Áñ݇(‹:îA©l®Í(¯NÊ{‹‡92Àø'š0äÙ3* M9ïÏuS¯S΂Áv ÑóþŒ°™ÛUÛ9§¬ÛE$ráô­U6 ²•IÃ7ÀÁh<Ì%à0ë ‰÷™`Ö¡Þ™Ç./6þzÚ2ó>˜­%“^Æ„_?c¦YzylûT‘Æt¬€G>9X›Aß8l¬Dú­üq2;À*,Uòöy[JŸŒ8«d0`™;éÍØ‚„£œ^еõp%])a=ž/½Y‘Op<'d_7þ»Ý–èMÿÚkv¬­8m(9"±2ü{.©˜CxŒXDáðFI„¦ðb—¸&ÓÊpÌÉ¢ä¦õêcs.º³†Íæ–Óµ1ȯË1IÇï ©ÛN™i|Ɇ½@' è´¤ˆ¶ UÔàIIü ˆçÍÚæT'Ÿ ¤ó–’׬ä@,DýÒïQúeòèåÔ¶v†A›Ȯ¹«a€¦ö…ú˜âøïæìÅh…Æqh8ìË<ëï“™²¡ÀÁ0šl>G#vËs¤ +A׿â°Ûˆ陉éÇŽ—Ñ!näßîL^òŒÛuv mš(^â”i¾;RLتàìî(/ R)¥>¬ )²Ofx0½ÅÉâV º1ï›÷_¸y…ž wàh¨ßɜƊ Ãvrö°Å‹jB½¢¡w÷oQ¡ØØˆx*¬_€ò×bñ e~t_ÆÄ`·'xpùüØŠÎí¡[å³», §Hc’Ps;žr ÛmWG0Èû§Ru[ À“3ªv¹Í[ªG´Ï÷]S9Ø™{¹H¸ê !”¥Ï­¤Ä:ÞÏ)1رôu‡Ñú‚:¬&Eˆ?·ßý[zn1»æõù•4F¢.×ÝY9xœ™äC­záàÐÉôé\RòÜ:³|¤Ý弓„?ü|·wFý•K7çiš—*¬B§¹9c<Η”µeÿ’;Y2oó†·1Êcš~+HÎÙ>B´¾øéÁ38n,Èl¹-½iJЬXaÀ¥R×=¾d3V3¯w9¤•*ÆlrŸØË™7O+ 3P4ø†_^nló[²{ÒP¥€‰–B½”®æäŽÛ‰f*mÂã>¬”3Ë~—0ãζÔí‹ ½’Î4\<—° õä_èËS„úS!¯NéÎnWKoÁ2´ÚâÏG•m/IDê|’E—üJ}­Í`/Ãnoný,>'æCИíÃkݹ æßέC4è¼Wp¯ýjÀfo5sbrRyĈLñuà «ð´ OJ™vɶ*¾7*/nw!ņ’­ºF¢B·r³á‚é®—hH¡ósb#®‡qµ»X—žq"1  :‘‡´ÔôÜ,ñæm5Õ졵úµ€`GüéùÙX“ î{(öÓ§ ¦ò7,%ÃÑ„jg”O{n4éM‘ü^Jäͳƒ„2½EÔApkonŸ ÚŠïq³aüLÂàízûÕ}æmµKåìæ¸ÒÒb—ÐüCßc«ÒñÔ°qáìr-8 VÚø$#¿çÃJ×Ažì3DÓ¬ÝÂc‰^É óÉ3Àqñ®Ÿ#›W,äG•*JðrîW6Rܾ±Þ?ý ú±<ÝIð tg;´D¡áò<Ã(Ú•9¤epÊ8ÝÏÀ¤ ¸=ölϺĪMkÏ)±Ä=HÒàÄ1ÄG<íé0õ›‡œôèfŒÅö߬Œÿý´¬g,!vÿv}ÈñÒô *öÝn÷X Œz9ÇɬüM{U—møŸ¥¤5‰g°ž¦{ —_›xwÛ…­j´ÙÂÉ}ÀÄgfŒDQQ¬®A>éätsìFöÇЋ$ô†xÁžöøïÉÜ$¦_l`]¿ßžedñ¶">—&qsá­®2¿#õòCµ÷&Ú·Çþ€Þ‚ªÉoÇpµ¢Öí¼UŒO µcÜ0Cœ%Æô22¦wYUßpNû­D„H1vºVÂ5ŽÓ‚ºh·"ŒòªæYY~ÞæÛº^ê6»Ç­Çc§Ñ5ýÄÍv›:ìW2ÃorçN<¸ˆð³Ÿ^K‰Ö( 8ˆŠ’Å–ìÌò1îˆTÂäM]Ýþ¬åÅ}{‰óo“LÙ·xFé¥ùþþªM§wËD_;åöSë?éë©6w!oI:wìÇÚMåŠßsO÷®ÈòüLÖ}¯ øVÅíu?ö2(PZ&£B»IRÂy‹²MJf¬Õïðd¥ôÕ:„¬t+]”T«\º [õ.C!åi­`XÒ¶ùŽuy$JDÓåÛý DÓPÓNïK¬ŸÜFGÿ4æ6~гÊÈ@?íØ]X!X°¡”lòÔïùÅæÌæÒ”ø£Í9d°Õó”ÁŽòbSÉs¸÷6ƒý|ywF]v즺Ws©¬ëÚè…µ²‡²‰p3û˜·!obÙqü’66 e‘ šêï@,Ž’Mnc'€<8#Æ÷ZV6,´¬Ú»¿qøêÑ” a!ÛeL"ÆtüJ\%ÝsZMÛLý½âC´,ÉĊTW<¤wÔ@þ4I§§Mvҹ؛YÔ> ®hG{ FCDÖ×¥â:¬oS‹ºƒŽ·º@­ÑÄòÇ'¨š NWá“Îáíæ.~jM¬ u•œÕ»%«mê¥qôË4o济Š¢hЬ|7Z1Š\yÈ2„PÛˆ€0§Y)¬æ#ü뽫ÚÏJøGŠ\Jß #B~ÞÉm”*t‹¾Od!3ãÌvÒÛö%Cßðg- ÂSVH²űqo‡›•zŠÓY½vù ¸äOÅaxPJÂLïd›Vfñÿ«5qüMìòóÃr®7]“óÚúTXÉ2€<ð`=Êà FP­·±-¸+y pú—/hÌ•»ølƒ™ÒYâˆX—ÇÁL}†?Ê‹ÂX$RÔübz@8ò1-Ú„¶ã«þ¿í®#ºÈµì\NéL² =dûë£â”â+2qóga Ø-˜ÜN¶é]¯lv_[Pˆ¡›7’‚‡¢K? 9xzEý¬WøèO‰FŽkʇd%Hë÷vã=FHÜïÛÖa¦(zIóÀƒöøuDZ-…ýÉ7l¤&í—«ëgÃݶD@‹GtgÇ€%ä<¬!åWcüJk{,øÆÛ²\)hèò@Ÿö£Æàˆ&>Ÿê„õ€<þI¢oÛ™¿a_ãí,Ïüá÷ï~ÊTœ#nÛ›ô6óÙ Ý’T©Í Ù*ΰÀÌ?\®±Úµ¬°7@úðªõm_Ü,tOP8þyô˜¡-+×óBª`va¶ä)—·@—EY$tU¨ÜuD©>ØMáWg¬)0IX’­Ðb[ˆYò÷ž‡'HCýô–}Ü‚)>ú^_ÉÏÚÿ:È:üÜÙx¢h”p¼ÕVpy©·£ç”اf=üŒ.ÖBi$+$ÛŽÚ>diÎTxß «¦×8½…PLâ¶ÌÜ!üM2AgÈ<¼‘­ÂÛz{ÿÚ7Í·Š×Êõs4,3x?½eçáY7"Œ¯:—sܲ‚T…Pg ³ˆFÙ:¦j‘çÁT¥/+ÕHþ Ò™Bò1 tð¥0ÖiÒL«Þ\ªA‰]4‡Tþ•‚7ôp ð³VŒo¥WטÇâ|®ÑëýÜíŒÞç8d¼Kóùn}º5Ã"~«¸Ë ŽòMP@η8Þ›‰< f•p š}ð£j,Ýÿ¥}” Ø|¾Í}/VšKa,®eß¡~Ø¥íNh˜ï;¬"¼®°Gìlâ``àB¨ÊÓKÆyvÙµ´ï‡Á²\9rù¿›ü|˜Z»¬ãKÚNŽöÞè¼ÆEYò{¥oNÐo ë¦g°Á‘H¤gŠ C0 V÷×üôÐ ÈCÛ»é.ïöQ74›† ñ€mäÓ¢Š€Ù›¨'œˆô]y‡ü+>9V ÌÆð#ÉÉôDóI¤Ó© §œq¾Nƒ2ÀW÷jeë÷‚íðMF}>žñÑügu•gE&Cé"þAõåË›øôýhò¦Ë¿ÙHa‘m©â*«}À0åY׆̒‹‹¦ r^Ÿµb’)ÎИ gÓj‡ºµÂßì‹¡[»›v<Ò7.4EêXÉô{špVUcªÞ‘@%Ø7)EH!«¯yùŸ0]Ôµñ”­ÐìÙC¼Úlm¬Ö¤¢Øm>öÇõ®Òsî¢'›»ª­Â^q—ªdReòHF(íºýð>pÃÏë?uëÂ1ZD(„#m§~Ÿ~ 6 ÚžñçLPl¡~öÑÁ¿¤¯ªúð7 Ìo±KÚ™¿#‹e—WüÁñyúÎX.úNàà­8uÛ!là4znü1©wæ€ÕhZpQ>b_%W„dÂV¸xû<ð] ñ™Á{DÕ˜á;t¨­PÅYý;ìÑÚ¼üL¯¡\ðZW§" ·åËÓS‡÷^_Íõ ÞV’ëu£å°@ãe­8IæøÜ^&c—þ]¯ƒ*O¼ƒQe° ED„¿WÖi*…xÀöÉ{m'/aýlÆ RÍ™@ˆjùÂð²&Å[ÎQ|HçµÕŒè˜üÈ?Â"‹¤vsŽQ=þ cžóÁXhÝ›ò·‡¼“Wú0¨fR¾X³š&–2 û쯇øì¡TÀ‘È!w¯wÿ¹MJ¹lxò«W¯L,+É<Àóo¦)’’¦ÒœO öŽ=s—òYô9cÚ*re*'(N9Dzñx‡0Éü5¨#€žÈ’ËN¬q©äÇã–ãRÑñŒ,¼BÐÌüÖëŠÍ9 O摵ÈÙÂG-¸q JÚ¿ –ôiHáPþc ,Â1•à Çu¦¢eTõÛr5('…4ìµ ð˜ã¶dáñÝx¼pcµžÃ“ÚœqrÀCžâíª¬V.â“ c«ùvÖê÷/´ç”¹c¶‡\“$á¬#· Ñžf©—ŠC$ bKü(Âc-XAP3ä›®Kg°±› oç-CiÕCˆT`eÉ."‰]_afU7›ŽÿÓPþO ytl-Ìv÷7ÏÇüñßzâ{°Í¤zVÅÚd;ÌÄÎló@3göÒ-›‚9ÔGÛ4ÌmröÞÄ*Ýv’GYà¼h°š·RLKwýG}ê‹ÐU6¾¹Y/sµrH§LS!ç.ß |(’ºÃ3Þâ·øÜ¥ˆÝG:;t)ÍF¨?÷ZŒ„ÝïtÇÁúªÛi6ï Œ´b}¦ìA_õÁžC×QÙü~Æ]Î0ÿc=OÛSî žç™WžeÓ¯¤µRºpg»©ŠµïÌ›V³p&n,Uâ:IUW-ýlWo?né8•z¿ç„죚ü1­7ü´v²„{•ãD­[A)Û‹áïz‰Dÿ°LÒ\8V-ø9ì5¢ùNz§°sjLQÀ4®—"ÆbÂ-À9i°Û“ÐH¨­}«ƒî}Œ­“Ûª‰²PLä.Ý‘ú™+`G‘x¹+XXv’¨ ™UC:~¬½õ>>1Cé»`þ’ôW™`%ø# @_±~}Ê x™àW›‹«æ^'=ÂKNSÔ›|#ÜìUk¶IX¶a“—†@¤á&ª6pxÙ[ ò³W4m`øš®ü(3{»È£¡,·+€LØ YðûˆŸÀoùàúnô‰‹b¼‡’H^üMðò‡̰„S£À‘´‘%ëˆ!¶65íF¶Ø Çõ<(t$çˆ+K®†»ÚÚÙíêBžu‰š"6K:›Ÿ_‡Ö~C×.]dÑ ¤ø×³&Ât(ÆBŒ€î”΄‰ç –ÿûhœCZîºî–é±A¾ºª0ÇmKt⃮æ¼Ó+0pÇŠV À&¹ÿ¥EÑGzñ‚×ï6õaühÈiÊ‘8Pf™Ï>½ÌóöžÐ‚¶lŸeVé`•[ÖJAqmö}Ü {ÛO˜_ºªµt’ÑÛÈÐßCÖÇ,&‘•î¥@šÃšKB•Oû4®C€æü{<Ž¿S!U¤{8z<!Wë¹#Ù™Ål° £ŽºÌ“§["fiÕw™w‘8›Ü¬i2µ«ï¢dÿØ i?‘ Jtk°ç«Ô>3—oüõc=Oæº)õÜ™‡—ü4Œm2ÙŽ£òXäÿ…Ÿ÷ùQ‰ Ù%¤Þ÷‡)Gá€e¶³ÛöÅvféÈ[bïî¿D6§½€ÅX·øa~¦æYh…ϵ“˜‹~"f+¶k¡ñ-ð]æº@çC1JfònŠ/"ÆÏX1qB¦J÷ÿñjÞ…ß išoÏs]9㪙›%çùQGž1&¤kdÅp-ׄìsñópÆ–#bj8,÷ª€UÌ]}bo]¥àž=…€*ƒçæûçÍ…oD? w·£€oK®k‘äŒm‚Szߌð¨Í®FM.•r*+_r‚÷£Î"®î>üÿ=‘ÒUHhQ×#Ø9²U¿Wô݈¸Aüµà1po”rÏR(‹U6À}ðN¯²ò{Šüc)%…ä£+¡ Ñ7Ò'tü/#IŸ±Y+å2Íl‚áÚ‚0v™×y=8”ì}ö6U˜œ|­Ë‚|3ŸÝô”…XŠÜ­Ì÷rГã‘vs'*þv¡Öz๠ðÝ(q–ÚyYá,únVîkÖc\&ó¨ ªß÷ô§%‹kÀ“w·™‰tb‚@Å=ÛRíÀ\üÃè—r—vZãeœW’S£5] ;©N½³kV?©ÓKn&­B£ÚÖ¾rÃÙÍQÚV;’ŸÜ©Smù7eʤËqÖ‹ ñÏý`©VüÄ‹À47äøŠåâöݪ‚×Xš'‹9/â|Üž…j¥ÊµÄ ¢ }€ îëK’ĤÓbŽYøIúå Ç#ƒß± ¹5Þê[È5ª³fÑ"~%¢]% $ŠÕn\$Ï&²}É÷fÙj…ÏoåÂ060Œâ f§tοëmk½@<:ðÃbÿ´N£§5ëÂ,@Ùé»j2áÿòÿ4ÿ_;"{ò™|)%Ûõ¼=äÍço™>‚û&ŸÃgQGŸú(Ý'ž­4Ye°yL ”!QpáØE¬ï«0þ«…?Ûƒ”Xùig7ìËœÄ_"~jÈÈçÜÙÝÆ£®ÿ,1ó-m3éVs‹SŸ7ìAï$j`&ŒiI@:^S¾by1ùåÀõóýGEyt£ZàpýŽt90–!¬NëÅÜÒcœÜ’DJð,@%dmpë­ŠÁïUÝôþ»ývj„·øƒç-à ™¿-æý@ìÜÕÈxL=¡{a¦Õòã.{8pËâÂÆ5žÒø¨”[±.ÎÌ„{3‚sÚµ¥q)ŸÝóÞ€äs˜;x:ue¤`û‡2”[e‡?†»ý¸`Y˜«‡ÁV‹õEá–Eeγ7u ¹ÑÐÁyfx,^<\+ìúøLจÓõÌÓíÙQAWäyc±x‘–׉ è:e[VÎ7ÕZAz Ž¥é±G¬À))uå?/6¥®Ê, ›‘MwÍÉêCäØTµÖäsèóõÎM­56úü}an8é¸{S-¿2£÷>°€UC'ÍÌknp0ü&= ÿy«óvÇg¾W½(ˆ—PNIáŠÍÁ4GQõj·íL~!¬Á¡E&"„Ïþ›ï=Ó]ãã•*• ”_Óö˜\ä'cr<õÒØ³R+ƒê,®Fé\¡ÝyŸêâé›x/x#þ^Ñ 8.ñ‰m”å¦Qvc#ІÔò…u-@]æLYp;‘3ná¿ÞÉo£ãb+< –¤4?s_úýÚðU!YZr+gåJSY8úÄÎ%EÇÉQ-ÍpbqyƒG¿·ý–ׇ…+£fcTsN€P“Ôb/5¼;;ÚìšäëΟ»íK0:èjY<¿±ßùùVûúYC`üæ5~èNɪ¡nɱ¸Òb¶iÒ¼"qÕ¡—[W¶Síp ø‰4[V7¼âšï4¹ã˸ß=L8¹‘ã@8Þòðù‰¥o©xø–”ØÆ‰A=ÿF:I]Žïþç .T,ËS±h`\K 9`Iñ‡·ÂC´>×gÍó2v ]ʵ„DöÐŠŽ‡¨Fübd~ëǶïHš?­ê9leÌÊü.,{¨XÑ+ 3¨Œ(fŒùéÞ~e;wñAq ü†õ®/Ÿrœ«¤x™OºlÅ‘¸\FZ¶´›Ÿu6üŒ$ /°Õ¾bÎ l|™F_¶=»-Ôס‰Yzåû«D3aÂÇé!“„ׯ{µ’Rj¦f¼hž:“t0ÄØÊÄÊ O_Höícœ€£ªZ%@^kSpý10f7)þwøn¼—>ÔS ÖËTÿôVìü—~ˆ-&<„éOe$ NÝ•>¥ÒMì+À,øª[5æš'{iŠ&õËÇu.?üK¤üNuFñÍÈ R5‚ùC"ëR_•ÆHòXwqe±,O/V2nöSç7TÁíG˜ÐÐyK#èÈi>"hçŠ6„l!šÙâÁçÅÆ0k¢bâ8ë:R,/½'óŸðÑ×àæ˜@Øl*ù[rÕ R´•ã¬r¥“ü@D“2˜lSRRSƒÏd¬ÅR7¦[ i¬T·ÅC„ŽÖ–Îyhâeo)©– ¬ºYU)?PoXUû´ìFe]‹öTDv£Û‰w£}0éÞ}ƒy`‚t—¦c$\‰ì¥„\p‚óõÕ #õ„üLÏÇ÷ÿ`H Ýÿ6Pzf•ØÓ½a pb7µ?°ÿHÝÊ¡d"IOQ«±ÃF°Ï`“)ì‚……AgœõŠc“Íš›éöTø3àíƒEOmƒœl ŽÌ­îªšèAd¾ùFÿ¸‘`õ.he2º¼Ø|YÚ^˜›ƒ-.Êå#“s^gpîòiФΩcÀUôª;o«v‹¼ˆw°§xC„·àÒ7Ü(·Ò2-!á‹e u! ‹¾^æÏfå‚aðíDÎÏ̇I”1ú&cáßas˜ ¹¤»ÚÍRLŸŠËÆŒ¯uwF‘ïÀâJµ×aÎ.ýTPûnœl‚™¤zÐ2]Ÿî˜έãqlË:_õÞ©ßCBŒ^¼5X¾™ ¹“ïáÝ@»_\rAßlG#KNSyHôC±]ëê0|øc‚ ñEº ³!sΛíf«bòÛ)˜Ðì€YsIÀÓ!jíwV²€ô¿ l„¾é'w²Û}Ð’×·‹UŸ]/ÍJ"hBŒGçË—*0þ"hWÞè­G?5¿üIöÇ>Ú|ÿ 'Lš tÁÊžV†Ê' ¤{ª@ƒàáemS÷Ðpò‚ÆÙ¿«'³Ë3é1,n“Te,­“Oô®¶1'街̾•ì;,½^û‰ Zw0ïÕD>~H«ý+r hïW)fqm6fMîlÜúá“PEœ °Yªª¹½6Vá°am½=~¨2³­ûºHåkÓ·9#rŠhäý9‹[…l.ó%ÏV¥ Ë ;–‹RQ"c]¿ƒ–ƒó5ï0U¨\:$ÓþfÎ`QoUuej¡PðîhBÓF¦?ŽŽnQîFsdüL×y æk-éX$õ9hö|Ö ›&L 4çë•G1‡o®QLª›èˆ˜ßS³ËGuuf)á÷ÛëÎYö~n™! [ÙNe£À.”Hv7=mu×:ÓZÖÏ*Ì ­HO+`°³<Ži`̵7l!Qîh„†Qæó”ºvZÑ¡„îa8ã2G¥üIi(/xl‹jâ'¨+ª*jT]ÑÒ·; 6í>à•1¥W¢±iŸ|Îl ÿ¸6àÓ%U#‘Œ¨7û*Ëtäá•w²lÕ“w›}.XÒû‹™áŒ!mâ#Mà›fDªEý˜€bÄ^áËüLóÝßÎ2…4u`_*!¸ÜëV”¯È•JDþG¨´hp„3¼>¯‡U”y…¼¬\íÏRk8}rv(ulï$°Ã$á eƈEsÕ¢ÑÍ-# ƒ3¿Ê¡nôM.jŠ ³w]6åÇHHl$õ©–À‚9ƒçKÃ}†ôzõ5ÂÙ·RÍêÎÏËánq²î±ü›Í‚«ˆ`Ï2U´vû¢øÜF>|¿ˆŸKì±Z ¨ŽŒ‰¿?׌û+™b8îñ­×`ïk"Uõ¡ù¥R –·t»}Ñü¡µ0é?? ’Ñk6†ÙÆQNà=³ÂÏb‚tMüLª*i>v[C»Ö{ph“œÉ¿œÆþ> ¢†ê.j 2Þd}~‰ü®šßç“ö%oʺ^0.†4jUö6A‹.¯ ´Qîü¦PU÷ܹÌ1•Œ ˀܡ2ÇJ{8¨G™ïŒë|e¾¥X>•Û¼3oÿ^óÚ¥¼ÐØf˜€h“`M· “龸0[bÈ>.Ê“ðt,L‚ž¾Ã:@–ꉓµžâÖîAö°!’¸¢’?Èöi‚Óï«'R=XÞ§Ô¶L2ôß}ë àCuä.„g›Ä„CSï”ÁYÆ €Ö[lÄ58¡îkÙÛM^É'î‰ü¯ƒÍ¸þ:r#4ª–Œ{²z™zÅºææ›œëêûgOv±fnïk ¼™  X0êØÏañÇñÒ-yþDÙ®~ÔTÆý¬¥HÖ콈Âñ”®#/ç럋¶(6pŠC½¦1U÷&Œi5%|:m\fÁì~Hš(ÑÊMfË ÿ†£¹±D 3¾Ñá9‚@‘)ÜmÒ‡y”Œ-_Hi¶¨0à˜xmS€þ$ËÍ»ü‡á>¾$¢  ÓÒ TözØ‚ínkq®o««í‚R’j{„‚!œ“¬‰ü¯–QDú …!YDÄù—HOêû9§4 [<×1ì«&òÂ7¦q ofÞ’yv™‹:®Í’èÓÀ„ažÙ?±1WðöU€çÝ œ)¿¡&¸hB>WËà{®^±7Uijø ±ÞàvÝ‘ ×û×"IÞöÍ‹·¬P®ÈE­Ε§:×ÿV`À¯Á”ɉ<÷¨ä§{•÷6N¸nKš¾S= A-Ù€Ú €îªUü4ýÚ“ì~v»¿µðym§÷ô¸êtf+!8O®£%É=øôyÑR¾lè`f]ŠƒÈTµåT20FôPO˪®ÜOAöHŒEÝ_ú2˜Fàr5c»äÁäïHŒ’?Šo»BîÎI+ìH‡|Îù@È¿V]ªLÝÉIÄ ×Òõ&}t+'tvh±ÄfÊÁp/Ûi2w€ÆÓUZX&åkx`ÍG$á鮋ҧw¦ü‰\ãµ—Stê‚ó|,ÊwÈZHr3³HGÌëéÅZ+k¬ÆN¹èÙ¥ü5(Ž%Ùe“ƒµ¨ðß"G5ëhvmA°©¥N.rÕ—*¢åŒ!ùK¸¼Nê…r¤–Z@¸eÂfÍ®;›%›™³}ò«ªkE ²cÁ«áXI?šÊÙ·›sönÍ.ÃË?*ÁMŠR/Ûbû%Î †ò:ܽÿ†‹þ?L?®ä27ƒÙhßsî5µ{Í%F`y,.ô-f hçW€hûq 9Ü@±êöhÚÜa µùÉ ÕæAÞ>vÔFéÍiü·¤.½€RP–* |°ÐóØSŒò!ßÿù—¾¯"…”±´ |ÊT£i+o/ Á">õ Z{âzPfü4ÿ¹;¼tå¼í.¨^ÊÅ—­[?vÒ×ÈÕ¼ˆ<Í[P41Œt<ßòXF)M³AÓx™I)ìe4ø÷ÿ•Tû£dÃ1Ùëßùä K¼—lçQeŒ÷sÁážÇxŠž®g‘ü{å¡ê¦”唪áȃ†²òÆ”i–PBh³9žD;¡F¿ýå™U­4x‰òûöb³áb*pdŸI/bcå¾ç?Û‹‚-hs<ìWˆïÏv­Ñ×!m)g,¨zZøEé©J&¹'mnžvÌ`«Œ–t7;ŠaÙ—§ ŒG$Ï-b©¸s}¿'Â0òü}ãÍC—õ'’¡¯ ~æ¼s$ª¤•8bp![Ž<ÍòÕM•×"*ûß<îÔ5Ó˜à£3Zï0R=…½•)Ñ>!jÝk”°D~>¥¿e µlcãŒX2KϪ–yŠÀŸþ’Xª’¡?°7Ñš|RŸ2«=È[ŸÄÄÿ@™y_="¶¦Âz‹>(ÁJx`•DPû9Až{¸VßœÊ “‚wâ%âEú•îíaÝ:¥üÆf`Ð\«®„¤¦þ„——ŠzSTß)a›ºØ=‡–×½eã}U šïà‚¹Ðät]çl« ¾«³Ê=•(*ίÄÛ¤*ß\k>ê›áv¸ š“k5Êù[Ǻž;ŸñükçÍmI)¾p Ñ£“šq}_:âHö,DÕÍ9º.Âtõ:«uб.š%ßwJ<’Ì+‰¤ôÊZÇkÖ¬Ã%ˆ8‰ˆÜ‰~F…‘ò Ûéøàü8á– >áÈõ’²ƒˆ´]å#"MÙCcP—Z¬˜©2S[¦5OªGÂÚ+i逿 #d(›*»¿¾FFÈÐ$‘Š®ý9ãñ‰•üÄŠÄÜ`Œ“é¡,ôð?<ÌZFÔƒ9üBK £òÜr}ÓM«Î¡F±IB¯G9Djïy°ÜÌŽ1Î[s QÒ vî~êí¡n4þJþ®†òI?à]¢ŸGáÿÇõÊkžÇÂm¸$4ÝÄY¨/ñ­'A}^Ûj£'Rá4Ô0>®wÀË3?|¾¸‚Ìru_ŒŒNvbŽãf&ëXûæ×”[k.'Þ‡™‹¾E¼ –ÂD¯[ØI\+^Þ#¹‹‚ +î7MU¹É4ÀÄl’ò I@ çB57¤y@KâæBcÿŠlÙ±ú·ü–üMUjv$ïè E=€ ¸ó|³á-ú\MÎZŽ ›<½¶nÁ—§­ I¡D.Ý Ÿì% °ú¡x ÿÖ8i,9¡®éL³E^¯Qä_t& åŠ'óP7h2%€‡ûÿÉXj4?œìÇTHéÚ¡]|Þ`©a©”ú–ú8ìçéc!CÂÏÏSؘ±‚ŠÀEw‡6æ rW&ŒAÛÙ!9%îŒÆæšOFÎ_Å-hÍ” «9¸ñZ}‹7ƒn¤Îzíˆ÷ƒÐ‘“Œ´á²[(†³Âæ­ c±ƒd'üL­,O‚z€@ÏhCµ†ìË%Ü«TBy¤n»ã´ûýÌj+MrC÷¡rÀ¥ÏÔ/ꨶ!xkOá BCœð•Í’Öúcym4°¾-›ötÿ á̓‰FËoÞYÏ^è Hš;r…+¡Ðüµqâ/@:¹8{ç2H¶L9f걀 H™z¯¤;¬KY„K[P;³w–Ìv±Ï}úlåA„­lc¶$0ð ƒWoÚ±x¨»ºþ?J†œßæBæýŠ5hÍCì/´I{¸>ͧAÈ-!ü%Fóê4‘â›Úü1»\lE)¬ÆYP8Ì×-¯Mè¤ÙïÌÛ.¤d½I6&ä}¨£q˜<åí‘«9é:]¹éQ^K¿éËÐ\Àøpl‰U·¦5Öz2ÃE/ž7ö›¶úÏ«TÅñVÓÓ¼Bl‹,5×EW® ¨ ÷ˆ”Ϊ¹2CY»žÒ£Wewˆ¤ÕÿZŸ,±‹\gA÷ sk¹`;X~µ|¾ŽF3Bp`h,Ú­Òè€I«sé.ˆêȯ®%,(^#xk¾¨ý¸±vGb(4v¦z:€3öF¶qŽoL'bÿìd¶üIð8MÀ´oöu«FCå‘ãFñ¬ÞrƒK¼ôº˜3ršLfdïÊbÛ½jü‹ÆUtúnù5¯÷}ØGÌ2r*Θ…üG•ye$þÁ;¤!DåÅE2ÌãB>åˆeL€S0f*y ÄPßo©.> DÛ”û¾0øG¤eÃŒ£îVhÂM0=z»A¾perhMÇÀ¾Qâ²À? –yݨ‹QW"-zä”]Z\X) =ww‹š}mRK!Ü?Þ¤uöW‹s2QËÁ+_|¯9:'(LÜ\µ5ÄLìSX#Ò4«„Àfh ÆûcQõzüñ{£¢°ÏiF t/—¨r)‚pÈB•ÍçAm¯to»ZÖg£¨ ﳬÁµ#E&¸Ü° ÷«‚ÛxñØæ,&¥<ø\¹]l'È3PñøX(¤øJîá”r¥ÒÀâû[Õ³š~RÀô4LêÌ.§%¼s~¬ª xôröÞ¸ò(J»'°YW&­¸tMG}·êí›Ã¡p™,·}b$Ôù0•~½ÊA˜aQOW|ÜNÏ–(‘“ìTɹ5Ð[þÊ2$ͨC¨¡1,úž9aþÏÑ|,^“¸û¹ÿÍÆÞÝ$ˆ‚¹øO™!¤wmÌjè’%üM(#(ñãCヌ\@¡¼D¼LƒF‚ÀÓê2Û:sH­¸S|h}ýpjH2¤ è8PŸ"¦{ 3BŽS SvbYg²Öñk8sçÓ¦«Ñª£S`Äaqím8| óŒ9AlnÝô§K•;R” ™+b P.*ñÉÁ#æXÆÍpŸ€±¬ô³´¹O„Üf„Û “ƒÚIÝÐÀ9Nß1ébm°±lþD‡d¹ähkévÿ9fÊP8>b—C0[`†'zG âËy.놲èœé-E;4ÈvÐC<ÜûøûˆQ·»cdÀx«|TÈRü|­€E=ÜNwfãYžÖR¥ÉZ™Y˜6Þ7zõl{Dfh”Doxô TWLkWü.ªË®¿s¸ÀUÇÞñ£Ô°Ž7¬ˆ­®l9:ì ¼÷ý„EÝ•«^$/D¼Ó˜§ú}Ã1ŒÝÕÉ̬6³’Y0¢‚nƒ£p4ôPaLI²ïÔ¹Ô×ò#GhZ¼GDãz.¢b“"¿}ñ}8òJ ¡À¨[L<ÙÌ W¦%[3®JÃŒ ~õ°îÂõ:Ñ“Ù&œ êä9)‡¼È"4‹D5 òô|Êba¯c@/;F‘º‡Ü´AOÐå=žÅÚªwÙàÔEUb Ù„«QÓÙÃE`YX$cºóàf§@y,¸ 3É\È8Ì‘Þ|¸OŒgGÑHÀˆ®º;‚þe–’ë}´Q¬ÂôÅRDÌZ¬ÙB|tÌ‹àŸÕψëóíÜó0¾$׿hÉ>µð—tŽ«æ+J ÇT·ÛT/•0Æ*“-,øñÁ`D3éa‰Ù_‰®ÒöæHÝи¬üaG-¹™§§ÆgÇÊÁŽîܨ‹Áƒm!)CL°:\˜\ ‰¾”þ—£<õÄ„HƸ¹w©ÂÝ ÍÕ!™1AÜwútVááíØ­äOggS)¨ä9`héù?ÿ`ßããáÛãÚÛãßáÔÿxÿ“ÑÚÒØÔÿVÿàõòøÿÿÿÈðìîêêãÿÛÿÔÝÝ×ÜÿAÿÏòüÿýèäåü|®¨Cß°(€ ¸†ÛoÆÀä­ÞU¡h«…5̇nïò‘ÁÃ1P3¯rÇVTo¹¤˜†á¶IdK÷ß©ÁJ.ymÛÔóOŽ$´D‹ÊÛMÏç†n‘ÞS6&Ü©<‡û™Ø‘Ê^0täÉñT0[o•*ݾú Òj€D éFÑ{üT‚ƒ×Ú+Dþ¤ÎÃs«k/%l™‘ý¤ ‚rNÑ€ÊäáøÐ Œ¨±´lòË.ÊA¬ÇŽdF§ä¯­äê"Ôžó~DS ãˆiž‰JÞ ºãîdDðŒ&ºh¡èA¤Â÷ðýtÑOÀ¡Û‡a!¢j;Uøz³¾ úö®ÿ$}Ö°KÒæñ^“ÙgmWpjeäì'ÇÞþ,Í¡¿tÉP"96Xmó¹`6{ÅÄUIÃM CêŽ0AºBÒ¦²£ßÜÈÛ ô) ¿ó1âOøÊõ|—Ò_ !ÄØb­ßØÄÕ¥ûüJRf>ZGûƒ¢P`JÌûƈÿ{¾Üà—â0ˆÆ§Žy‡Lm´¶wÓô#ÜEFQS%¨çNÞ_£f¼ä7 õ°Ï£¬õfóï:ÇRk†òhd@rdÙú<´Ôeë–n½òh‹þ Àè¯Ý9ôDm·‹´Ùñr‰ÏêSeœø½Wº„æq‘=ŠÛ.0·%[cLžì«ÿä ¸©S“¤ -ˆxõ±9]b Ì’ø µc9 Z‚aMÊ)ó?v&´ "¸^¡5ï„­?|!8 û¡Ä#v±·5oÓþ›ôCŸ ÍíüMklFæ U!Ò‰Ýá=V*\&4lØ¥Yt²ÉÔL«œ·§úZ‘[l\  ŽÙû–¯F˜†,š/®ŸØQ¥¾äVÒ~k¤`,6]–Áx©€ ±§„0Åitk›Ìá½)¸pɼŽsSŸÏôµÄ+ÛÕ U{ó@p$f ˜ÔÁàH§øö9†½{Ó¦ý œæˆçºv¢ßÑí4?q:Ä"ÈYýï‚Ðp4c”*©_Üî¤6*‘gÞøùÔµöF¿ð³ƒ÷MO®>’YÐ|ñœt-$Ö_3ˆ… ê’Ln9üX5a̪=+HW©rí €”íTâ¹Ò¶ d§_˜¨«È{æMó›òGò5µ+šjI²ƒížúX­I"ºØaÊWu ä²ú,_ó ¢ô8ñ3ÒÂ?ø~›÷:-pî}Ötæíi ²ë,bþ¤g¬¾²^¹[\òÔú.hÙÔX±ã¾«\?4ÓEtá6·ôšxƒ—ͪeS(À‘Ý|[*½hõý“£†/'Q8eˆ-¤['™¹y$Óž ÛEšNe=ŒAË4º¯z܃…ÃO^íÝ1",ìê]G㙹ìÿnZíBtJxü£>@üIƒ±áÉ.6ÐníB,ŠÖáqD•ÍÑYhs¡>öf.TAôÀç-)ßѱã©9ŠeQ½‡Y³Ö-¿ÆK8$ðõ¢óæÃ…£¤ß‰ûAbcùnÐ_‰¢Ä·VÇCMš½áåa 2­MÐ`ú‚šÝBA½v­º´Ä -üQ]”Aô¡Ø—úÏŒó3 õ¯•,×»|¥ùþòk‰ !3$*icƇ,Sꛆ·AÄš¢¯*C1_ º—" ›zÀß™,¼º` õNßíÿ}eeÅè·ÕŸˆHýüLòÖ>&ýãÖ#½lúÈLl‡/4—_pXfS\àz¥èd~ ©Á­—±È À_aï'Æ%z4•4Ó«P…Û‰uuSAp™#Fª_´àLsˆ²<^@¾xPžúé~¸TÑíDç,ÅQi€Ý×.rZ‚q?œÐ¬Î*’vN:£Ì*óYÛ<Çâ¦>pJE+Æ ¿K¡û7ÊÈ7vû.šq]à6qkžðLX½VbÀau±ðÔVòÍüèðwŽ:P²k+ƒ.Ò¬˜'M¦S,n×#r¡è7>&1‚ü5’QGr®>Ö¢l|¥‹ ÕäX¹/äq[û-¶;\RvÄß$´Úc™ª~rI:å±±×–ú’Ìp'.€–Ž‹/Åü²Àœ”¶y 'çlõ(GC^WÏzˆ\f»\Øø>­ðFD”41²¦­$/,ï ÚÞ­(_a å¢ÜÙ|½Ì(1’ßü5Åk‹ï%ûÁ€»zÉ)”ü¶¹˜|úõØI‡šÒLòyÊL!’ú«˜ã—çï;‡¶É€WÎ~-°qì`‘÷²A@¼Õá ¬Iªò5r¸¨òõ£õ£èéüMsŸÛÞk*—ÓLUr}Œ$¨1¿áI÷°ÉrKörs±èˆ8†€Ó²¹<á¢ûåjYÐ*Oäº6‡jêõœ;’q‘5D’Ú—C=4e}t)¼]ÇL>ŸKJ°`­®È×9o/›¼DhÙÿKÐML™$U<ÊÈÜÜ/oI‹½fã,«·q\Š÷Y?‚9ˆ×wÕ§":Ó_yG–þé§&K`F¢èøƒQˆ®»…"òŒ8KB^êÍ«ÝÁs¿b:ÞŠ+‡íÙ…ýËÿå†Ðß‘X»¦/'mi«Yó´8ÊI©}é}Ö¦™LÂAÙÀÓý Àæ­+@8ð$O8{ïÖhü5Q®Ç –Öµ=‡ij¼&Dò,ÛE4‡ÄMµ6cf…7à{)¹Üp[n4M»nS V§¿ûŒNÁ•‹>‹þ¦ÃÞ§Úú­žƒX4¹•öºŽÌ¹3zTQvOüÜ‘ŸÞ[m–J<åû6¤/¦M]ÍÉkâ#ÁœänÒeÓ @ÝgŽ÷ÏÙH¨kWÍ}rÝûwä¶¢yÌqá ×@¶ì'æ·IülY#58çgH—e ¤‰?®ù…ÞõÊIžúãe(€05{Yú«µ¢¬—ý±¡WÖ¬˜Ûl”›ú¶|i]ü5C¶çqtT Âjõ,¯ðg Ÿà­¹]ùõ;ˆh‰L1_;5ÊöØ, -…Þ5“Ócñ|¨Gä¦VàGèq·°¹å»TT™¾p2fHbvÊ íí„à2â÷hØÝÈ#iu1ëóÉñ©j†ýÁð½A¢rºœ^Êêè™Ö©ý±ŸÈK‹Ô,CòÓt¯Òu0—°°lèe³zxpœ t›Ñ§ý^7%üU³’¾Ø ¾ î{ :‹Ø“×âB\åR›þÜHrŒ[Øn«ÇxÖÉ=«Î¤#æüÙT±ùÍ$ˆ· FÛ¯ßOýXàlè—ñAä–[OyM£)Nék˜!"ÃIËv£¡¥¯u µøï/´/YÜô ŸcÊ4uLÀ"ÈoE”‹½húÿèFw–ó—ÖòâæÕ8‚¯Ú5®åÉ0¿L¹õœ­=­_‡ãK†Ì%C„1OÎÌM͇gý÷Xé´`oý‰*F¯ *1{Ã[Ðe¸¸(írèsè@0jr9¾úxÏaÎÑ8 l!å•°Ä™Èf!7Úr¯±^Ÿ‘#¬bÕ—Öý°ã»¦ˆÑéhKzµüMsõ '¶ #Ì3¨3>þNÔ…*ZÄÌfNèªè×S ko1Eó94ñI‘Üþ2HL²¶aâ€Â>´h©nƒ=«=;Áf¡%ç¯ã;.­Ÿƒ%m lQ`únçUë£àXìmhéx—Ò%LZD‹±KWH€Ê’.93¤@œiDw©œó­sªÞãš-Ü`R»-B!Çë1;>ÉÉ=?:A=Å-¼-"oŸãƒŽw¯¦D££Þ,Yù5·kÊ6hÝ[s ü|®L]÷Ÿè"CÐùŽá˜Å.äÞÚ÷<"c÷º{ü=7r˜¾£Ê¯û˜Tµ - b¥xæ-]¯Ìÿ|I‹ HU|?‚ ø—³zº0Xþ¿Ø#"O"Ù‰•ãÙñL¬z í1¸’Û Ø!t çHÅ A-O9£µ´{ÄCÏûxÊ<Š„a–· ¾¼ûÃÍvÿ~ÃÈBâc:sé‰kM+Ù{Œ¤h TêéSK÷—jOÉGHòR¶Ý#l÷ÕÆ.ésî•ÓÄ{¤tÄžŒÞ<ë&QAû“”»Vü‹P-5n¾ñº¹Æ‰°ŽØj Ü™n(x$ܸ0­uø¼l<Þšm²¢üç´Αµý©ÄQŽ}vgu``¢—àlO`ӣȴVV±Õ®Ìã˜ÊQ餧D7{<[ð7Cwµû½_*±ûùßzæjÆøtSÙ¯zd”DØ·&;[RÛ R:«ÈlÁ†Jêz%e•#ü}\¢ÅK·è°íumôN¸P§;9?Œº\~õ(º¹±nÇùZEH¾Æ°J%ºÇÄkÜÌÂ;S4ªó¨r´º—o"­ª6þ6³…˜TÒi¾Ã…ØB—£šDv»‰Q·ŒB©rÐÈr%ÄîWÁNè¿x©fuè¬GŽ&®‡äáÁ˜NZ«ÇYEŽÊ`'û ß5v8±"×€9<æ®?UûµaÂADÀ þŸ+ž?òA—6…]0²Ü»Nhîº7õ3•þÏ}>hŒ‡f“®”1R("÷À£)e.‘¬|ՊϪ{æK#LÊ?&n¬Ï>uõ©D¿ÞU3ࣷ.µ“!l˜ 3œEfF`£ß`}1á D!~t/ Þ°®æ½ (¿¥‚§¦½ÊpÔ`«¥ýšÇܸŒLÇgW¡emŒ]$¥ø™ÌtκqÚköxZ“‘S(Ô²ÐOÑý’"=Òô*âÁîÛ±[TÝ:,w²‰_.kä²õ{˜6TÔë«ïÞœUeruGü“ìµ.j˜ HO”ºüJ¤Zº«~ë[ˆÓm„u_L—z"4ëÅ䨦2DÝ ¨û…ñú M)~‹™@””¸ëÜݵX¤1]çN0>›]Yg²ßÚ" ?¡l +Ž¢€h§=l¶r&{ÝŽÜŽvu«ùä!s¸{úÂÞ‡) ´ØÂÙê¨!ÄìÀÆ)¯¾+ÌÝ5K¯[ÌÂVA,vÖ¸/l ;êêj\Cf¡]XÞû!—,±o[PÙl^6x)PÅ…ÁBݶ×ÈyÛk–˜äIù¶ Þ²>±üM0O‡å]—Èša˜öõè= çþ‚ï©.^¡ÿz£ßÅ ™)6(Àð²â¥19Y©¡L—`ÀáwYì¡Ò0Dì7ðSuHxõ¬L¿ €ææ˜Á*ƳÌ÷,Gk·H@7”È’±3ã` 2^­uýÀÚZ(˜eiõãÿ&ðù¥O.ª2å€v³¹"ÏoŒR7Û§)Áœ2¼5åQuaÁ?¿ÈU’ Ð{’éÁ¯ÌâM~RŠ,Xh÷Ç"0’/¸?éHF÷¯¢ãiq¬XvŒ0‘§%Gø¾nÍn ýüL»BõÏêHBu¨÷+ç*‹{Fpž_QœÐŠmÝdžyM¥>lOÑô]€/[WIw¬˜¬!Ξ3Ãî¶ÚÖÔœK 1š9F§†è–ý†>1«,0̯v“컽íöà«ãî ¤:¶<¯ù«õ™¸~MãCĈ:óôýš%~UBÑ ôžyT¢€Ÿ’ÖÜ©#pÅyXôˆíÞ ¥Ñó¥#ÀçÞEòqk|pea*h¨x KÄN(p³”lÊwQej«gZ3ŠIhàÝ!ü™)@Dã% ç9®¹¡Ç‹ºy€äUuzG9èL«[u‹yáâS¨ÖÉ¢ñ{CµŠ‰wšàÜŠg€$ÌÖ쓹Rxn¶Ží íJ‰’~ øbW.†åK ½V×þŦxé,ò¬lYÄMáx`ŸÄ{ºf) mÉI¨ÇâꉉxXU‡NÛæýÊ5çéåt¾‚À• /Y>ƒ}Ìz¸Ž.cCvwXo‰Bõ¡%N(D}'j6êߟAþÛãAÕãÃV­64$ ®C±[ˆ0†oÖº?ÃÏzÝûò"A:EiËM~È€-l:ãÄ»ãÁ‰!—FïÆd…所ϭ„‹²?aù@¥ !0‹Ûu>}Íï»zjyé;s,$4@iy7¢ ˆj®f›k£  ¯t¼ ThÃü|¨8k_Kò ?ˆ4“±jä¨óƒ=p-=°š$zäºc_~œÿ…0Ã|ŠåÖù/&·oÆièc“SŸ ‰c:{’ú d§‘W+"Ñ•Ê÷¶A—€¹¼h™9ø'K×k&ÿm“4óQ裊Rl†@f9 -di1ò²±ãi !1œ"m<ðËÅËh.0-Q±®uw´l–·7_fá$­½R;Hp¸ÝSt‹^¥alÅXdçàJw­Q½k;gˆýX–L_Ï£œœ¹äH’ ™òƒ–ƒ„¨ï?åÈx©ÜßpJ™Í×ܰØ(ƒyè˃, ”„«¿àŒ O¿ä68ÕÕx±­zŽ‚Þí"µŠ´ì€r/чøJ‚’È›9ûg;ÆJ-zr*Sû=Oo¬i$ѳ*›ê?Ù5–оvïáZü|šÆG'¶»Î[±Zg¸ÍcTÃ(O00ô”Noú§<œÀVÄ/ð¦w”4Ȉt%;µbÝßÚóMØ[JeO>§æ€ 9¹‚’Ž\‘™°vÓrËÞxóRÏ^ü,ð”^*¶MHç'.%ÜZ­OôúYHÓþ!ñ·>Û˜`ûéÚVèØìûzø4ú[}P›«†…¡dŽtö@ù† ITšrxN™ 2jÔSµÜ(„9LËÖn"hÝïÝò&¬„¸F;ûf‚'›þÀY;H[ÎVò!ðð|j·FÕSì]äPãºuq ™÷èÑÂWÄ–X¤ˆlŽÏ¥(¨¯™^­¦ÃíÌQë½²ªÇæ–éq#°…4šÚIÔ®R¯JŸ¸] ‘‡6åaKëÌ¿Έ :yÑ«Dk‘Ô‚ÚoZÕ?öÒô~|iØn0€“Ê4qøâç»ye¾j ñª¼ôG3» #·åo½7霰器mŽsÝ’â[+’N~ˆ.i-¶§›]‘‚¹–8wûIYEåÝ«G}ˆæý{Ç‹þþÿÙ‹ ûòèJ x‰Q‡ÈŽ‹é²Ìà/Nä·ÇYŲlÜýµ.-_à ât*™åô…íü†vžÑN̰¤v5#ÂÕÎ&ÅÚÈ*0Ü¿eÿ^<á÷©c È¿gú§œiN:âD·ÎÀl§ýφ¤‚Øa„”±1Ô…çÖª¸7—^çc3ÌÞöé4÷@!öSö†H5º¥{‚&UºX7^Ø’Rôt›À¥ßèññ¬‰lÉ ƒ%²7ç¤üe3WÇÆ ¸(öx9á t«ºòV¿}7õQ„™¸ ¤çlÊìàè %btFËå”l »–Å…”¸¬ýù&‡wìiúìg[B4Y»t=霖!†I¥¢>_aÒG=T9aäXOŒsM¸üÀËÛÆ´Ë±BüM(rŽ©¨?VekïÆêmÔªÕè*GïÁã ð0+‚Ön!¤Òćç= ®ü±Yøu)#ŸÛ³Æí¿.˜6D8Ð/Û3xǺÜHÖ¦f¦p-û‡bšzÜ®ãQ^p/m›ÉJ;Hè_Øo:«›Xf+`/³b|½§{ô+áxƪÐy°Ù„ë7ôU%ω»Å—ÏÕÕsÌ÷Ô+uåÈõCÙx8Dû…¼Ó ² {s:ßAO‰q-¾pjíˆ)Lò™m(ÍR’'qY9 ]ÑvìkÅá‚ä•ð‚¼[¡ƒlõZàn‹£A®ˆ à(ÿíü6…´Ùw| †¨’ï…=½ú1$`[ÑÀï…Œ«PWG»)‚0ç4t‚êèXß%f\o jÛn®ø ¹MîÑ¢32¾ë’¯F&´È<Ñ“*!‹Áˆ=R¤Q^bŸÉ‹ „ÀüX ðØÃG]†S²Èsš6R52 oRa늵ö¹‚Þüg;±ÀB{!?jEüwÿ øá>"Ú@ ®wJúÕÁÓö#4»g¤Vµ€bùМK(Z–X0͉¬ CàhSœ…c‰ûŸ7%ð'á•Á]ÕP,~¸ýH^ç„,ƒí¨ž/žß>Ì^}ÕËÑêhj_¤BͶþšœÜBãêœxcÔH×Ê I«©Rnlèr —U[y櫲m_!rr[à©fü5l L•ú¬ë·¢[)t îÓ‰£½ó¢Fж/íĦTÒ„7·'‚Sìkœ?!ÉÜýGƒ™¤cAmÝâ™0ë—ÂÕ¤QáÖÊ« Ö^Ãèy5üß¶–ÓCºûž‘§`™È¾‡UÚ÷ˆãWOöíyïÔN>kR0ã Lu2äÑ•Tò–î¶õðPz†Š'Ù%“®MüWd>`è3Ú”¿·ž)SìÎbenC–ô æ~¼‡B*ÕBEâ&6Uqwk8˜ÒÈmÑðºû÷r3fuVVÀ“øI¦lž4ª¼‹ü&>¤îìÅÜM% I«¶œ×ÒÚ¤èñ)&´”Oü|ª%‚ÑõÕ<ê—ô©£ùìFZ¤]0ÁxBN·gCË„£ª95D®°Ÿ Š FØnyú¾#\¦¼¼áúZ¾F§`—? S'§;»åòG93å-<¸tÂBÞ Å­È´ÐŽQºñZà=½?+¿Wy{}s8ru)¬E’å?'Ú‡‘È£Y ²Bb #+ì%}ä{Ñð`决Îðöƒ?âæ„ò``nh¶¢°Éi+5¸ºü¼«£¥îÝóÊSÆÎƒžš~¦¨ò“À–%@?‰GŸ¡llì  âs·y*9Û!æÌ®ãÑFð!Г,óÔÛÕS` ñï92j€î´Äý_Q Ò]èJÀ*9µ€N<ÈbÓÏ%0®ƒ®>ô—ž5ª‹úY¹A#OöùÕ þh¤Z ÐV1yD¶¯y2QÄNl^g&.±™±µ¶5>þÍpó!‰5ÞÉÒ'ÍQsDYŸ¿Ý¾m!àÌß{íOrz·j{Ô6ïjуÊ6i0F—–~å¦M¸¸ˆF‰°­fïÝì<±»ÛžKJõÂÙ%—ÿ½Ü_±ŠYBýy°[¥”©H šür‚&üJC¶Úiä3Š1C;‘qј©z#¡#‹ë}mŠ·µÚgOG?ñf ;oI}›dâi fqÎŽâõužúò†;І¾…™U ” ±ÝqÏrØìCQ#ÈÚ’žµ©°wÎÛõµªobñ#:ƒTƒ=Và§z1hT{ò a®)äMæÄ,ìÉ;nJIþõŠSÓ,¸FŒicþ1É~¿—Zåÿ]©96”ë ˆRÔlR¹‚Qà Ӽ3†­œÂð¡ÿ3ƒ:¬ïÅ h誱Æä=–mJsÅk-ãÁí¹5&û³ys‡(Xü} |—1NZüIø¢Z÷þ®¥äæºFЩpŸ­*²IòQ:êh<]”‡”åÚ!&¡z‘¦òK ß}‰fÞÙ­ûgš€¾*ª1wÈPÖ±5 s@.¨9˜;g`²<÷öüŠPÿ­±)³Yt‚C-7ómÒ®+0ÃýÒ]Wï4_ˆ á®;†œAåN@õUL3•(ÿáM=®¦~èÐw 2˜«3\æðE I0h3KLóöy{Ið%Ô£Kv= ”¥Rì”N3"3½ÒeÄ‘‹sBÈéZ86þ+}dK^ó{©SSM¯ú2¾¨]d3üÙ9xÓ×Î=ôà&Õ¤¡êÈ}Tó¦­k‘La÷êù° ÚqŸ »ÍS H‡_ǯ™ØÅÈ\ ª û•€Ü:(J§Òc"ûY|ªÕkÃb¶àeÛ¸®–ÀAEò¯ò±Gæ>=MÝyÀ,½Ž §ÅÌ5$ã7€`._rÜ­m›Úi-ŸË5@ª@ÛJå§R #s=¢‘[±ý'¬'ðwºqê¨ô—ˆ}Uç} 4å×bñæÉço ¬Q¸Ñž<%lqbæ8¬±µÂqâ›çímYËA‚ÉQBK&–ƒÞköÆ$(°¡Áé” t³üÛ}Û)äíÜ?Ö1BÊñmN1C™æ^ˆ>’n«a:·ë®Î©ß¶c'8³ÚCdÌ·÷Í3á¤Ë°‹p3E»Rµó…9ÒŒfƒó5óz(Xe=e;Ih¨«R7{ ^½V—GB˜ý ¨ÌšgŠP@,«ºÂÇK)8=ðWÓSº™$çhi/Í ö“.ÞúÞˆ/ {ÿ:§’iЉKÓÝ„›§WBBûòjÚw-«åðaÆH6ÁµH¦*ù±VG­2Ú0öö™ítùèT¤1v•瘄Y ï[ þÍ–Ò²üÛsê2àëú( W¸ÏUI?íö ]Wúp#Ž/yÒ×ÿûÖU¨òå´ùch|Áøw¨‰ŒcÐÛ°åÚ+}ŸŽL,aºMÏ4„˜U##éãP†6X}fX ïêµÌ_‹ÝMÈíhTeȳ×E‚ x;§?pã‚ЄD9Áìž&S¬Éw TÝ9Qo3Çû„ýKwò €ˆô•!›6}wç75äs©˜½3X„³S+¹Ã² _Ì¡ræ}¡—œÕj’ €övUSÙ/í<´KÇ=Ì̓ԋ Ó‚³üÛ„ðþMž“€(&·bC;ê0ŒügÛg¹¯`Ò‹ d5‚³ÒÎg )”úá?:2H 5Öv•|K&¨^]ÊzÄÉçÎÇ Uth=€¦øÅÜŠÇYpz –S®3bŽ8 ¨>ÞŠð|It\ç ÈSõ¯³¿êÕt’GR.9FkáYN®ƒybÀ‰‰¿EÌ ÝhÍ?D(›,Í—Ñ4Wµ$ù3Êó‡üö~f^ËïxA¶‘ßZœOÓK‡;O$Dõ±üÄükq›ÒY·®mcE ÌUÿÈcÓ/î³üßµ¾ÂZäSXëé`ÿ·Ô­—‡J}ì±!¡žÔžtWæÐFíS PWbŽp!]‘A…ÆØÓ0©&4Æñk¢—àÏ–Mòè~¼Ù£aNŠXhû3ÇhÃÓ01-ºú¯U¶R .ýºU„ ߤZ\ÿ¤7˜i´÷-tÊ{A޵ˆUnJ‡NWEéËЧãÆw_…ô¬UA9ýW;n¹ôÜVY/‘…1mô!,Cÿ-¤Éá¼¾Ií~n[á]mLºµƒGŒô$L¨ã,„£a@šG‰Ó Ï¶€Š ʨ•Œ(’5›7á·êe¬{ÿ~"”Ëd ó¡úw®ÜÌ®¾ åÿw#)Ǩð¨õ§ÛbG“é‹ ä ˜ã[\Jˆ[é»Ù‚?ŽøóÕœCΗT:æë±Ê;óüˆyÃ@õ¡c&®%!nãœa-1i4ŸvbM68E­S˜Æ¶;ßøÀV0I1̦ÇÿþX£b~/ÈW›!J ·˜×HÈ@Nn~Íù´š4QB¡Z |Ñ2&Ý^܉(B $3âÜU‘•6Àޛ䇵å¹8¸iH¼›"µ¼·‹ôúßÝ»ñiÅȳ5ÃnúÏ_Ä3Ðÿq*¢³ü¯ÿʘÃÈ™¡5Eˆ^÷OÙƒê×¼ÙrêçéQЂ=Ó`=ˆ 7þⲌ OÓpjç>aC¶ˆjLp'œbÝ‚¸ßÌÌî™vvN\­‚: À1¢@°÷°ÑûÕÅq ºF(ßš=zS2ä¸Ò;õ³‘ª÷ö¥„— ¨Ç8~4Ÿn8€åqðˆåÏÜ„“ƒ#9Ähï§-F¬Âoš_÷Tö÷*ÝhmП¢Æ ì˜*Ç]w°ÀEGPoï 2èÊò#w¤‰§ŠÀIÉõ7wtë—äÒ…öݱÍ׀隉÷)1Äþò‰¿Ó+. };úJ{xã5ùÁÍÒéc¹E2‰vg¡¾i¥ûíæ×ü°Ø@›óPµ›çƒˆ¸¦—´‰¢6ZË~¨¯wF×PÛð¾Ôì-A|&fËŠÆŠÙTw_Q»ÞgM¤Ž¨°j­K¾Îh×##hXj/$@³ØÀrÅb…ž:߯Dƒ !$2L‘R«^|¿ÏlcÔª"ñ·"ÇÉM£Hð0>fBvœgßÛ|²í]«è«ûQ"Í}±9d—fAZ¶{Eê%Åíâ1:~xøØ›ZË`>%§~CàÜvEÀfžd²¼·h:¸\¤1í6¿LEA«ƒœv%Uº»ü±¢ÿ3YÌ¥s2è/K Ä¥îZ¦Í†+£m·g9Ø¢§NXî+Ã,Ïò Çæ·D*N0Bˆ.¤îEw¿Ó®0üEЧîb1ŠIqÍ}A}QA!®ØÛ6? ೪n¹­2Ë !#í1àÏKGÏÛáÀ}‹ù—ß”¢ËáŸûß´/ÆÐ*RÚ'ìž–j‚RÞžQ 2µ,Mgò‚rÏå>`5ÿz<+û„²XVwšV[ç2l“y™Ôâ, ïâzp„¿-x¾ êà‘¤ýj«´›¤Èü¯4wf´†Ÿñjm•á(ûdwM­ ¸C÷\_Úcu‚7¬TÐ30í]QtðVûr÷¿¢W¿ö ÷A)+?Ƽî’s‰Úü¡ñðê …¢¡Î˜„ üc§5 öÓohœà|ÆaÝ_n ‡Èñ+HÀYêa4 ›-V/.QÌÙÇ*½Dµ˜¤6þd-¸á70ÈJ挧Înx£I)«Šú‚ÃXÕP÷T½Õ–Ï%0ú%µ²üOÉ ‡i\lQýªÅÌx–xŠ™Þ:° dDßMi/=M\œü.3&œRẕƒ›µÁo)ô™8·³†¸¡wYp‡Œ÷MzO–‚P™"Ûùpšë’1®Äå`4ÆË³âé°¶ú­+€-ä «®gš‹QqšÕõÄϱPxkÈÕÌI!yÝ$lul·¦eÉ­0§ŒðaZ²ËÄmÕKB†VìIÅ%î’/GBuUô6/Yú˜O(ÅŸ¡a³öqÙÎ…ñÀ–OO%µÓråÖU2#»§~$ÐÀ’ñÌø1½6½ögvJ%$:B†¶†N°=‘Í„vüJV Á!4ef,ˈ‹”ÿ1Ò­™ô‚ÕæKâ7Ù›`°sý‚(œÆÝ‘躸åo>©‚Iþz¸šbÔ±F™NB€žPÒ®‘P¯>ÒÖäs¢£³0v!‰|Ùøüƒ~g/æL 4"gš=E·É±{ŽíãáÃgKa}®òqÞ´ž•é+Ô¨ƒEB©gŒei˜eÌHWÝ}c<±Èý3ÁWšUíÿ#0NAeŸÈ÷/cõìVç$•dÆžð˜Ñ½üִݸÕ0 Œž‡0d¸E^l˜y°ü|¨¥ff ¶G®b’‰tæˆeyõ­Ã#%k߬{ŒÖßÁƒyõ•n N’³N†ikä³ýx˜("¡-GeØÔÄët›ÕŽ«3æµÃÄ¡¨ÏU\êä:­Mi ¢/‰J˜Fy*_Öÿ²'5®`Š¡™¢ÛÍ+ŸÑvÌð×BWÞ °û ’U ¸øð)5ì€î…“¨Á¯u÷vK1“€g”ˆ=%¿Á÷É#|bÅ÷Fè5“3Þs<åSaÙƒ {¸úàÕýñMq‡eî>h¯¤?&t7îö.F•#\äûÁœ"ûŠKVî”|¿w44q‰K)ìBxX5åñ)hvÃ_*q›n¹>ÉÇ ÓZJÚýEýì MW4Z:.;â¶ajŠ+Oª‘ÓwOÇ* ~%Cü|·eLb”Û­¦Olz¢‘s„¿‰ÑV·È¢^ÀCÛìU"ÁDç­O„'imÂà •Õ¥CR-®Ëœ@“åê( yºBÑ^ üßîX½'t9í ãüÒeì]Åâ¯Å&…èò? „«J­SšÑLä´-ÝFµ¥ÁáæÏ³Ž«õ>ƒb"¨^?€^É«C Y|>è÷yv¦y)Šœ4bÆäŒ'TK\OW¿{ú2«…OL°:è?ï)¼áí~wåÀP°ˆº½”kGÊ`ÅfDËÞæ®‹«·ð¢Áq˜¿ ˆzyz݆1lë˜\ûŸ:È·—䪰‡ãZí)xfdè’\|x¢@è7t"œµ&W sÑOVήÃ_çnp9ÃÙ‚?žû‰2¶ˆ!êÏÑI¯:í´ƒ\“zq¨p]ïVšþ#‘Ïš¨¨,Å£ÃÙ´Áf,ì‡MtécÁƒ<13,Ò®WÒ!*Œ’0®úÝíì«Lg¶fp‹ü†E²Z}€…–·†…áÿ½i8oöÐQÒôÎsèÚ`2n¾VXÇ¿j\tLË1ÒÇ ù-F ^,"$ÖÇÕ%ï +ýìy’zÀô°’IïÈ\D_ýûk}ø¾©É-9ý­hÙ".ÁãÃ+z”M~å˜;ѳcƒ~¸yA,æq– ^©yhT¨@ëDÐ?œˆ-zd v»È*ÅqÂpA™½Š µG³îÍ ”=ÿiÍñ ’Ïæ®ÉÐw>À>'‘æö€‚þÀ†M©»•·*$,¿àtÈpÕ$\ç_]ˆîÇGÇIÀüM•†Pù%laþù“߀‘À'´Té ŸGHöeB ö°´tëêÞXš®<9:¼¤Ýº°/`B"å·@¿¸û>²ÞéÙƒ§nïoVòKô@Ýn£Ê˜²JãÝOdjä&júTäµ­=+Uן<ˆ9Tµµ×›Š·’°'ÇñíÎFêfÎ’ºÏ²t &“I‡©ä-k%B,@ð#Š:€Ðp|müÊT¥üü·¬$çyéL$E:ø²½ÌHæý7Ûå»–Ãh„’ ä¶nÈžyf†pDK_RÌÈ$ ¼º§´üœžÏ¢©DøNáËÓ;çÙ#Ø]k1å1%(vþ÷ëü6cKŒ9°…ܽ|Î^Ø[*…ÝŸ¥4€%§@CŸõšúŠÏhÞ‹Æ4°C»]§¿çt‘”mµ¨Ž/è’åT²-¢Ý¢+ìæì·ÂBeB¾ÖÙÊ" ȯbJ¤ð¬Á‚(è}Ä`0ñ$G}ʬ‡T¶mˆ¨Ò×a¼Át9ú‹–tJÂòhÌWFªl¼8º˜b­ÉV<¤áˆÑ[¢Çõºi,É’ìñÁ%'`u”±3ù«•V5^Êj²€¦{'µÄ~joA* ¿0Æ}-Õ~>ÂL¸V±¾ª\Ö·®:Én )aè×zDÇul›hŽböñ Zzm_0Õ½ Ëî‰ÝüIze{Åpªô¨¥¥Þy%®>ÙáŒwô[%SjHkÕ%.^åEMÑH žóXPô‰ˆV~yêXE-T²?<¿Û‘j‡¶ÿéÿ)»ÄeŽ$W¥ÊNÍrkÃ… ¤¹Æmâ)@¥y™<¶\¿1¶¡ÄG”N: ¤ Ž I°Õ¡s\ýÂ/±Öç.È3MŽúŒ/-†lTga,D_úC—Wýü6¤,¤ôäûÅ -–’ål¥Ü­ƒ•#S¿É—®Y2Ä–•T56‰GJ¶RNý~&FÝo-£*­é*$—‹Æv/‰¢ægÆ¡mÛk‰Ÿ†…ß>Ï´x±˜®üIc²òð•5Þë«„ÏQØ»Ùð;%4n-ê {–ñ6¾Ûgç-îiÅÊvoàŸrOc+‚¥€l¨6wò -ÝËÜ$F¨0iq :šT¿cïqáÿžöé¶D=ÍeËúqÐ,cµÂ¬éœé2Ì> HÔ*ɱY¿<> ¹çìZÓ~Š·[¾ƒ2mW/%>ÝöZ0t™†Õ‡UgLøÞïL£p<¨²öŸçåù=Ò°•ùCã˜:­ _ÏEâÎ*š:•÷ଓ]‹ö­½×ÑA—°Óý ç}£Ž{ò‘,jüÆÛè(guËø‹Š\±Ée…éµÃ¸`b ‰ÄSV˜ß¹@ñ³;“ân®(Ýð%‰Å÷Ù€rTÀ•æ”(x)¸1ã`›Õ†@MòK±’ÖýŒ‹bÏø÷wûÊÙ–°¼œº%9qƒ¡“–w†ÁHs~Y£Ð]¿§¼—ç3ŸxqÝOtODªuÄ+‡hÍÉèDPÆ Õ!¨ÆÎ5þI´LèìÇÛY0è)»Ù4î3/ð0¤ýäO7èRX·Ì}ª6è-gɤڿ`ÖÈgBQŒaçé³âôÑüJ& üNõP€¬#fµw°dÍTuƒýß°ãÙ)–[gÖ,ö‚(µ¼‚_™ç³õÂ`f8X‡Ý·Z&'äpauâ÷~Ö´pPaÏ'˜î¥‚ Íñ¯¼ï!/=p:TÙ‰ÀxVžáødq@9¯>¼…6wÇZÞøL\\ðÅ>vÑÓf`lb9øoNOM’îÒ¨0š|g» ÎØ}b›ûrü Ò¼‰GLñA—É¿RMÌ›cÒ¿WÓôÑsýÀÊZ†ý©ŸqcåœdûkË+»rÝe®èE à‡Ìy£uOggS€¿)¨ä:¶—:ÝêãôÿÿÜÿ]×ÞÑÛÜåÝêáÜ×ÖÿÖÞ×ÔÓÔÿÇÚãÝáòÑÿÇÿRÞÞÕØßâÝáììéðòÿ:íüÆxâ³Ų"š«Óʬ·8¹Îº‡È™i@¿0âçZò÷ÑÅÈŸú{yNÜØy=†êkf·ÂmÄ"‰Ò0q l~m¹M[¥~ƒ»­m»™Ô?nŠ'”4¸Y ®Éu‹nˆ ¹Ð²eÐs¤„W²Q¡§]5u…®NÊÇ{^,K`r)‚´çAû—óÌ÷›ƒã*D³¿ ƒÜÓeïw¡ ÿ~„•û˜ètA“cÞKõ6që½…¤|E_¡ U-. ¨Ì0V8žÝ<ÜŒ<9öŽ£~“Ú­âæ±%zŽ<£üÆ.Þ³7Hòc¥í;Á.då;žÚëQu6Ãïã@Æe}°|õ6ËyEê Š6wá$[èÎdhsÉ*v€û£C^n§6Úî䪢3¶ ;Þuòyu<®ÇùP1ÍM4æt¼‹Àhªib­ñÍWÙÅ î<÷õu³f,ƒé¼eEË>Öþº‹’7+¯SÙugb$fQó :µkþ.öЩ™ïƒ^fŒ=&$¯%‹/÷ø³Ÿ3B4ª>ÔƒÅ-š|°…²¤”M'F¿´²´»u{àìÞ›m\*ŒÍµ àM•ãÞ†ø¢j~¯Q—Ÿã¥¡ü.„o›ÖZ š@œË]‘¥Œ•cÍÛDòxúœnñ‡œÎã <¶Ž&­úw}€a~T¥V"ÑNjҤäƒl)6*å]-¨^¦ÌvhVÚôšÍ§ñï~2ÈÜÖ†1ðTi^ÊQ‚†ºá\ÖÈmcó>£K€ô6#ñ ÈUµ=ô¶ €ÂRi–ðÊ1E´²ãÅ<îÄSe†mà |]¥Ñá”#;1þõ†Å€z$Å…èþø3Âìk÷KÓ``Zá)M“dÞÈ.ß2Á¼`Û‡B}ŽQÔ•ÇþÆ-8U_üJTtÕ×TÒW¿íš.AÕg1”ÉGÆè±hGáÛÿ‘SÑ´"ï!š˜â0¡sˆËÞb$9b?†mt¹½ÄãeS·ÔØé=ªö¨Ì¡Þˆ¦•–ø ]¶µ¤šÎfb=QãÀwêd0Ø¿è6Ó²µë:…«J¬JøÒFQ¨M°Öòû)Y_Þ%Ü““”þ’JyªßY™Qágz>wŠí„·wyë~øZUñ–ô}ºé…rÞõ½üxŸúŒ§Ù½5CÜ×Ñ®¡G¤”Ýœ<Â÷¾zò”ô=Ö ¯ø[î}VnÞY$#Vȟߠ‚ˆ±üJ\c 3*XÜŠ>tKþæP'…?™4É9Üyΰ%¨ïÇåê#ú( Õ±¨øiÕ kP³~rî–4)œ,@™ uŸH#ª=?lW'[ý¤Î›lÅàV//W ŒSÓÖ-#)7†®§{]=(*šÆÜ\V³Cõ»†B쟋nôXo© Æ®"tÏpźú“†XQÚüŸµ½ 'ÉæéûãÅgûvŸiŒõX1”žÒÜØeߦ…u?ì0¯<ËNÆÆŸoö[³ ¹‰{§ÐØ݆¸ß¿<äñŸzs8"›„Ðõuæ•®]¦T¬Tè\¼‚žt•?EÓƒ$÷k þNˆºõ;À+ò"gþ雉÷ö‚©Š.š‰°Ô:â«ôÓžX¹u¥I?î¨ÈLâøn Û7Kî=þ gaeq¤m©ÖÎË´…LfDZé9/ž!Áž·4¨¨MH €ÙÚþyB«˜%aÜM»EÏÈe#HRø 6&TêÉþÑåJuI&‰+”î Skêôd,ËÇÁÿݲàåÿN6ü ¿×­¬E ‘ά e>¥5uÚ¾ô*ã@Ï!UÚàã=;©HÛëºä‘Ï::°±J@K^®;Ë&ÊcÀ)sý¯ûûR%@OKŽjšçÛ|®.Úî®U῵1’|7 Q‚)Á*¸Õ÷Túe²|–PpWìYñ‹yœþƒmžÇ§°¬¤l÷”DÈ.í`öi‰Ö‹b_^~“‚gÍÛÙ†n°H‡3‘,Ft”¢h¤ Ãß ýM×Yµî|ë`æðKz{<Šošÿ§‡á–› ÷çÁV‘™º#¾¼Ä£yº—,¦PìÌuT<ÌS6@ó„+ü|§È´zù~wË"D?£4-0‰gh´béô*;Y=áÿ ÐÒ>ªCŸ`Ûª Bn±+Õ\gL$zJM‚PöšGÒ ˆ-WäÍÒаüJC`¬!t—ðk¸þ54+Åi—E(ì,UEw>§|ªüÜðRUYZzQÜŒÐW°¶·OÖËÌf6RÚxãzv«Å—G&6 Ý` íŽt$EþÁkŽàI(#OR6žÒu¤ Úp iD_êA*ý,‡²uµKà`U9/žIG‰'ò¥R2"Ä%a”h1V÷ós6Ò”àÉ*Hl¹‡ã¿ë %-R *–uêŠNÌŽ;÷Æf+jd°l-jÙ1pztf‘úŒw?vw(®8üL«­%î–l‹î$ÐI’‡ƒªDY“·o"/ãl¬É-ú`m=¿šÅ®õ{|síü>t¡em<‡ÃN﨧äÔ{Þ¼·Å¸ÁÀÉh“ê/ß•‹ÇAcD@!m)Êd%xþ̧ö=z£–#éã¾½ ºw"„ JýFà<t=1Ò“JúEO]¨†£IŒ’^Ðrn}Åíè8íÈë¢Ü“tsì­•Ó8q…ƒ1© î4ûéJ;Zõ"U¡qÏܨH%ƾ-AäQ“:ì¨.£d)çWë0àU^Ø#‘ . TpÊuA£šìÅž<Ññªc,ÿT U˜9Yª/uQÚC¨/m [Œ{¬o±„$©ûÿSë~N>ø©®JR¬=AüM%R°ÕˆÁoñ¸µ‘ÇRÀ±[õ¯ÚÛ¬Aõì<¸í"6…ápôqãÍg›èïµmÆØ(½„ 9uAr\=¸Â%ñz¶B•GnÁàd,ÔzNìZuŽ«Šå4Ksnk!4bƒ}-ÒÆ®Æ ¼Ü‹"T´@Ûd±jMŽhϽ.¯‘ã›®ÇVŸEWŽ%SÁh†èÖîAókŒ,ݜȥj˜‹r4y#o5ù©ä€Ú$Éuû…DWÕ|0ÿ¥ŠÝÅ ÖØ^ÕÏëþ :åÇÛýh’$9ì0V"süLÖwÔ²Û…èPLšhœ€>½AäÐKx)Íy:¿°-zý4‚4=}rÄ §ƒ„йÌa{£Ö«Sȹ‚LûÁÙ ¸ ó1˜™øßõõÕ°ðÓ|Ï¡8¦x»)É5—[—ÿ?—ß šüdT G¥mkU4‰cÁ^Ø{Eð±F‹ÕôQž&>d"™ï-@f“pìõsñ7ÕÈ“j|jDTÖX_qQÒŽÿH·øR]=•y‰F†Lí4 ·ƒðêsÑ®#ë«·¦{©Å ÍLôÊä–æªt ·nÕLüM:ôÌLpÎov%ààFøÐéJ+RpvÓ‘zŒ.3"[ÞÕ«¹±[m²f€ĈQ¿ÑþÛ‚‚½Aj§îiïU·ŸÄS‘O­¦ÓöçÊ![õœé{Äyˆ?fo bg"s=“Þ?5é3R眽q'n¡XÌ;þV¯ŸÞ‚t‘tba·7ÛaðÜóVá5¾ÙÓ$:ÆØ‰ Oa €ÊÆÔ Nk{{QïMü},ø9¨ZÄ:Âîá†%ßË%Jƒ’ÛIFµ†3@î€L¹ü¢ö‹}â3¸ ÂŒºCúÆÎ¨0X¯U’”e®PÀX# ²ÕÞû‡€šâšÁg›YuB( £î@)“ ü| v!Z5»qZkr›Ûó’ úo)k«wµ3Ž?¶èn+OSG¨$Íkx¤Âh!¾¯ì‘Îøa•ªâƒ}°´u |#‰l‚ú ³ÜFM[ü^‹§ÏDg•…yÃÔÅ““rêIËÐ:ù[+Î\Èuï)Têa3w;Öñ]£Ú+—«P µÒŽnrÇÿþöîq;sL²¦å‹üîŽæšp5œ2Ïʾ(+­#ÜbËn£Ï¹hâ-ŽWˆÜwÊ ¬¸åÏ¿¸î_œ6JáqRâ ´ÿñ.Â4+"³æf†åIs…H@ã(؇Ò&íRA5²0hC0‰ß#ZXLCuI÷+€]Ž ¤ãÕÖV«\ ñcþ"”óê …¶æšvÉÕyÄÿ˜êdY‡O« «­2¤Ÿ4«Eºð©+RÛµ8àWÂë ˜«Þd©åªª×»G’eÑX~ÓE—ûØ‹Œ¸é†»®‰@âÙUtb{õüJ6U†–Ê)ö½—²%S;\&iÍÁûÜѪà€#É––by&Ǧ§#¹‹É¥1¶*QØK›ÖeF€èM5gV‡«*+‹‘ahx!¥6[ˆAõâÀbÛ é± •(ø>ñz7}á´?û˜+hKý.öø U×òq‘Ì4ÞÖU)j ÏûŒPªämÚ—’sí?wXûëü/)ïFCC~û–âá®â¢?7Z*m•lôžKB9­‡>Ʊ—^ôùšb·ÍƋ۵þ`|á7ús~ü6ÄÅ’e-«Á—TŒÆCcVÕÇ£y wêE™‘ùrîƒÁ³‡ûj$˜®`+Ç¿‚äy4G‚I/uIqþÇ÷Þ”Ñhú{r)çwÍAEÒÎÑpnt¬ÃŽB{†îk~ÑTi þø@ü"ò_TôCß§‰Z )F`@1-ºd>½§Ú—µû.F×Pÿæûóù‚{Yf,íEû‰¡ÈgŠ$G›Ô‘Üã¦#bÇp“‹øØ3bÑJD¦ËˆX`Î}þXVçDfÏî$D#¬…îÛ~êºŒŠŠçi'’ý¨ŠÃ”|:9¦\͑焨R í°`ü5ð'5[ö>:VZ.`Çà¹Ô.`w7`†AÆüK -NgS*Û¸,ÏK‰óÓÒƒ(TkO@ N¹Ûóv–¤‚_áìâŒ'ÖqcX’1Kþ Çù§ˆ¶Ï€éžðdÚá ¶¥-÷›[A ¬.Ó,{Yç/ Lo¼B^[6b ðàsb O+–V“ù›®!L’|ÀFòhBÙMà_ç铈F #¬¢Ðš wå¨ð°ìLŽyO 6?2v‘ˆohŽ‹ 1­ š~fÂS—pž—Á¢'Ó£véÍ—%¡cjâQ ÁÝ ¥ ‡Õ'’§ášzCßÁüLÈÒMîƒüQ3ž`D8»Ñ8ßo HB fÝÑ9’|GÁÑ2ú4ù&kLK«ÈØÕlІç°U˜ï9rƒœ¼•çè³ô2õr#'Ül™Øôë%-¢Ž•Vê( ý} w™ŒOðCÊ^ˆé4ÍG2Ï.}úPèbÝ[ÙÙôsr)@lΔE'IP\²QŸEf´æøšùÒ–ñ%áÙrÌhÝ¡uT6øÊ\+3àË÷}pßY³°ö’¯ˆ>» *Æ9¥&ë…Ak‚ðØ*.üIòø ŠÝ»Àjù2gBŒVœ|‚ïøØ×wÄŒà±AG~è¦$—/óF÷L}{¥ŒóÿFË€^ õ£¦ )Q³;.û32‹+Xé…bbÁ\s´q ã÷z¿^¼S€|Ùå"Á’õéÄo¶ºgáéQ^W]-žP<•ýBì¨I¦ìÆ=•aÍÉÚå˜>m1Vî.ï&…."R¡= ®ùlcV]kèzãNÿµ©KëËXþš#STŒ××Ú±O/Ç%ÙÆ”¬€í”(üI}KëÊ»›âü‘Ãz޽(SBØóL ,4®”¼£,×X¦J·K%çû,ÖÞ–Cõ©< ˜èÛÛü§šíוSÄ^ÇÈ:bFeÏ-Í™`Ìk\ϧϓuc+ûè-¯†V¡°/füz#3è>&$Ó_[Tvoô{aŒ{ãmØhvãA…Ì:¾àpæ±5µì(`8ÔöÄQüÌ•‰Ù–“ff%̲ŸXs­qëa]¨ÁÜÛ l´m$Üá°›pãQ®Dz»€îyüJ1êÙ¿<±=×íI¦¦Û.=Xøº‡N†lKù µMî…Ší3\¸<`eS3|ÿã 4¦Í]ˆdE“Ét#°èà0~I³;Vu­Š,n«ÌhÇMžpŽQ6XQ–ÔÁlˆrl¹7ÐŒQšöƒÿcÀ·XAò2‹^¨¬Ÿö)dÓ\|f!`~*,è¡Ân*?h¹Ï|Nó\‚¬ÓÅè§wóPyÎÒbÉŽO)‡×$³Ê³H~ÿlï{á…ö"ëBÞ¶á8dó™c߯}™ô¡|Ú§üJGwpÞ7¨ÓÙp´‡IÊxæŒI›em]kwÀþˆžIŒ€˜Àƒ±³¹Luk`TJã‚ 30AõYq¤c­Rmñ,Å;soæÎÿ@c+ :²åºß€Òþ´Y%Ly8D 0b=‹Y¼%&éÅ•¼· .øSóy §ÚÝ»aï?1ÉñÏÌó†‚r‡}LI³d(oû c$n3a;õMÑ"¥ÛC¯â51u0ÑN¥¡Ÿ7KÇ‘[ØÔ ê\Z!CåÊn”PtôøŽ!Z"N Tþkºµªü|§Ö9ØgÂV©ùÀœã4°x("¤³š{üÌÆ¥ËI:QùÆÂ’*·NžE’5±:'¦×žr°ûÿ–c¬Ux p„:Û^/o©âžïa³¡ÑOÑ€zÆçÂu³m=^Ÿâ·¿Pdo5`¡ø‚æ²Ù€Æþ`Tj½\oMg° dþaŠ€ÁL’>92FÃrQÖ9Ç.Å£¿ ($1=…h Äs]ÔÊ]GÛ¹Zúâ¾'æ|÷N£2¾ÓmbH„1TÌ ZòëÑ@s%Ì­:Å­™>Eáö çlL[ó€/NS7*eéµÉ„‰b#,xÚnÏ©ž¦è™vËø³8ÙçK\c!…û¾beo:ëÀ`ÚL º‘FsŸ©ïh‹¶€ôs5b§.àÁ©$ IwJ0¥š»+¸×¢ú4ž uññ÷*0¬ÐdVµ°aCá²ìàׇù!‡QÐ4Îe§œbÛQC–§I}üI⥹Á(‘ Bïø¯øs£Õ®+Wâ­Èi%10ENvý¹ôÖ¿…^µY˜Ì^³)q½IyL (&Œ]˜ug©C4®µé‡W.¹Ñ&‚{Ò„–•“}Fc¿A qÞ®°z¿T[GІPØÈ˜±˜=Ÿqã”@ç䪟‘‹•w5 rÉÃë+×Ú+춪h¹ÜBk‚òk™ØàûÃç Mæ=¼6”ð}ÎŽ¢3½q~§œâ¦ >‰úqjq[ ß5›ÿРãqu銈ÞçñÞL¢Œ#uµˆüI~Ù5®¬«µºt–z9ô<[…K ~ßK‹ w‚ ZÀ6= ‡QTñ) nÀW‘uŸ U.dJ¶kªW@c·,%ËØ6ÉâXaå” k’ÏçÃSfûy¡Ê<|¬ž8©5LGQ2, énÜÖYL]cˆe³“æfÞ9¤áêÔÅ0i5îa¨ÞŸ#Ò‡M8‰ú)Ôt5mRÛ…¬Cc~DãªR%ä üã¢O{"1‰Ü–ÞÅGªEmГ {ª¸ªæÎ À4:üð‡E6©‘5¼Á.æ]ZÀK@ “ÐèÜ« ëFv_÷GDÆñà>Qˆ¸ -1¤è69ë§ÿîºPUÚú9 z!Mê|¤¬Õ÷çäsòûÛF»êêfÅÖ‚PYK¯pŠoæ^ Õ1¢Úv _på4Øý¡g–i®²&ÙŒ\²˜wGòSù&§Á¨ò©£ÌzÚRRr˵ý+üL«òbÍ3–,Ô’Vei®é4![ јžG"^¸j!Ù‡YªL"‰_Ö‚¢ãƺi »«¾ñLBiùR"&ëï;y—àj$OlA ×@—ùNZBØQ#yàÇ÷ù7q`¡’ÈZ¹½¿Œà8ïžLºqª ƶ1ŽÍÊ•4F›. €‡zd3^ö‘fo]f³ÉËf °×r÷“¡sçñ@t£µ–×Ó^ÿÓ*ÓúlZ®¢KyP½n¹xf° ¤Ï9Æ|–@ B-ÿÊ„òB½Süß·|Ö+µ{„cÇe*_7„^´7‚~%rTsÔ«-¨§ú6Tt¡®ý¸Žô•¢x9P=h-H¥R+D 7´ÅŠ{mùOyÙ Â7€• oñÊÝ@(`7`nEÝ H‚W!¯?âóþ§ Ye_˜ïÉ¢™Í#gà´ *Òa®ÙËP¶%Á©ÆSÈ|%8áÖ«kh]CƒäVt؆ÑÙúrÚÒ¯Äëß‘£•7:®&P ùZ š¡§é_üu9Á0làÀ¸ˆ Œ3­ý< _†WR·¼ƒj2_ÅÏuÍj<"±*¼Úóí)mÆú@ÅÊ@uøMyKØøÇŽÜB[wZKÛ÷om=lt¢}ç,~›nˆMWúQ²Þ1£#Ì~áªåBNí¥eßÄØ/ŒÉa±¾ü|¨1ýª¦4´-M%h$x†R8ÍœlJ¡jos'ܬ·ìz*.W¶È-mb½b ÅDmÛw°_Ó÷4Ti~²žéy.xÊ(zž2OÇ¥·’ð=€©] U"˜ÿó;ë —`1k&S›âfáôóväÚˆOéA°¹JæF9¤ŒKÃ}ÊGi,_×¼ÉJ9Îk]ŽZ/¨P{|KV¡£ª)팄sÝâ­hýßúUYêì×m› k#4¨}ŠVS6ÏÕèÖÜ,Ђ4º }6˜¾˜…ÙÚŸ3ÐÓŸ[¼CAÃá%Õ{ ¡ÛŒwºµàœaÎøÐ©~ÍÎüB8è®àMi¶®âÜ´–”jÃ|w4” 5Aé¬ÈqøÄT×Jt›¢q±ûDàÆ±[¼‘7°åk‘†Ki+/DŠÍã7"癵œQüJ= G¬=š°‹.!Ôö„ýŽ'ÇKh€_×c¿8Xã×n;kxu…Ëà ›t¶~sP>@›;šOÖ!³†7¿wø?JáWc·CO¥~x)(ªbs–°n5mèY1¢ˆíèYûy¬é·üÖ[}õ J·Ë*H o­öþtO$âƒè$òP—4û2aüDþ"úÓë80|Þêo$Ôì|·y¹ËQÆÞ3—tâ”åU9KˆÒ§2à#p·8  $w5X$%²®fœ^b!‰~É™nMô¢«ÓW>Á—»ºüIw˜/€‹àX^ü!UU÷¾™²šs¨yFuGCjz4¨*ŠÍo|yzåÌKùçÁI‘ʯ¹g¤ÿó=Sm·˜ÖÈf›wªi”%k°¾3ÍJÔÁÒ;eëü’7²ï5”¯µr:uÀ=.Vîî646 1tÑ35=惞£äëm›·møql(H@[‚°jìýì*Ù‚-„¿l’>X‘æ+T-…·YÈÍ%ý£ùóx¢Û-hGÖÏ|HTR楓gõkJêýäÖÄ›¾Á•hû<HxÃ+¢‹ÄŸñK±†xйüL¾Ÿ^÷S{pRbaÑ!Z’êPxãmC^ÈC"ÅÇk†ÃxÛ~{+—>¬¥&pþVŒç¹S¶« ã°Ÿ[]àŒµ‡–S' Œ²cU@Fáô¸È'GÝ…)Ñû´ëðoÖ³É.d--ÄY`íz÷xî[1¨SÅ÷Ú«î>ã6\[DþÁ‚éæ1û ïµílEr͸á­/:Ÿ¢OŸ•ThõrÛ—‚Òý /5(wRï†ßJµñ*‚¬T P9ÞÏäç®S@PpïÏk7aÿ9Ï•C¹JJò˜·íZ"kfM#žÃåw%ª(Æ&w(Áö4ˆïb÷³Ü¾zLÓÖ×D÷ª`’V|Wml'´ïb[‚—%×P8ƒ9zY@¡œÖ•BÑŠˆæu¬–­€ß e¡%zÄšK×qrܪ3ý5µÀÃW@‘ÄS0ÓüJuÖ„Ë“™ÊŽŸ©P’¤=­X=àRå‹,»o(@Ú‹"öÖzÏë^I 2=-wgOsV%©®Ä=º„ÝpBÝà4™6–¨rP'팈ÊIC³¼Sa)ÞàbÁµÆb‡HjiXà*š3Ú‡6 ÉJpiΘÛq}ÜnÏOB_¡Ÿog¾Xáhð8'{íTÔ’¼WPCLbE°å “05áBB_ráy~wïHp“¾MÕ%Sé‹åÌ¡Bü–dƒˆØolÖ£!þÿ,N[G_š>ñ(cÖa"+2.ûüMYÁõm ƒü5¡l£APóoÔÉ>‚À º¢R‚(ÝÉ8¶äØqAÃ&Ô‘¿Â!~h±ÈÍ6ü]ýýè–[üy\rƒ C `o70&zÅ"鶯k§|RU_$Ê”Ç÷ÅX׈‘ Ñ·Rù°žñc[¾•\l¡G‘w…‹9èÓÂÊ@Z‰¥YØ þvŽ7„µ’„'êÆ ˜Üémúw–RMæÎ‚~ŠÍæ€ëÇ;7ZFNOp:$M CB«åˆ7ˆ=ØŠ®+mÂˬgñ@SWëÀ<ä½lŽœÎfüƒØsè©Xk]C¯3é°]£ìÊãfZ©ª Ódëx£ bâþzÛ•ï U(DhhݰìRñ¾ñá\UºF: •Ù4æ@ðEOÒyž‹n3SÏÄLÆlóÆÒ ßo*3oQÎý†éæ€ÕŸ§]Vî™ß¯ÐÜm€]µ«sÖÀ °‡yPZþ4«õM&[`ž"l*ÍÊC.³-ŽÕ×¢Þ\LJ×,eO7,X-œRUàÛŒšûÊLíà-]n^ÅááåÇÁ=μӚ ÈÜaqPèÁ®Á,C=y#fÕ”€ó b²üƒâuŒöX͘‘Vê {-(,й°÷¶êOŸÉÍæpUƒ­è]ûüÈ|êÇ?Âi„AÆœêèÄT°ÀK”‘m×T'°¡öÿáEs— ¬7.Zµ®;fˆ¦¿ÆÜZ_ЈFcP³f&R ­}ठ'‡€›ê*  !¦5¾Ú Kѽ—©±Ì‘•3_ÎÆ§f,G›aR)^àúâ»2+ë±áè9´Í½ÅŒþ±Í]sË3Ý ÓvîlGjë£%+ˆ‰Ù”ò¹ï¦+ΉpÏ1£°Ÿåæk àÆtÉGö§ò,X•n7Mc‡3üLЫY+Û)Éd >Zd±R}ìÕæ&•3ÖñQž=€o>ª@nDOþ Á/×7 ëâOµÀ§|0d¿xÝ¿h;è.ÏxBZb»nÂßÉÂjM¯ZUˆêUhï61·Å| IˆSáÊ ²­Fe¥Ù9Ñ.Z5-+ªQDÀ'æåÉà<~ú;"¦cø2e øµRžUƒšM„à¨3È$™>¯ÏÉ{ÒâßÛ/ñ…V:ú5ýjŸÒnÐô8†¤îùa×—»jdNDUÔqybÖÓü#Iã,Iâñ•OHü­áî œpQ§š7m–*€.q:™¨›;cwÊzj`Xª'TYï—(ÕØ“§K£Ú(•Ó&È¿uÁQap˜\Åjûõ¥¥—±‹hXÊ«!‚LúՖ˘•‡NPŠyD„L–ÒUœ¸>T`JpÀ<4øb–£)ÖH‡7§dàÂU͙ȡ9€® íÓtƒoØ6Wx_¨¢(ž\=gÛU[ø´&†¤$Q¥»Ã´µV;ÄÇL0`®aŒþøÂÃÒŒûY MûrÚÓ†ì Ó45ú؉(¾Ṳ̂MhlÛ <ƒ P¼xeËy)ü¯õŒôË/ ñ¬‹sÅsú6®$=d’¿Z ú€SktÇÚ¶ïqŠ`hþˆrs÷|Þ®Ùõ[,HR–ª†‰öDëg{lw§C…-QÉòÅñÊ=}!ÃÔ–ÿвõ÷ç^^QZΊPî*,¬g;=+Ã=õƓީK›nÑvmØ£a½š4Ú³f8^ÎX XÁ[ÄòJ#Š×]ü§c‰in[—I›œ–Ê‹ÇJ6Ö@j½jãáUN:ðX8¨_a‚*O ÊÛ©ÓZa¼­f¾k£œê‹†‰àá.&üìÉOµiœS½¾r8 )ü·HçÐmhQñ C—rµi1žÙOÚÍK¢¿Nš1ùŃ~[½YRô:Sª-BzP8}¼ÈCìÖ»î2¨'0Så~ÆZ/FDgɨ#yœÛ`ð°âÇYÕ½Ûo ¾áƒlV£Â¤Ækuû³÷þc7’UÑó· ã,ܬ3›fÙJ\é!ô¿‹),@Oñ7‰ 1±3GQþŽ/²ay¢ |†HìÜ^þooÆvW12.DÍÍ»¼>š%c)”-—ínµ‘[S¸)}örzèvt„ârÂöL¿æ.l±çÞçaxî«Ü¬ë"T]ŪñxŸLçü}\zˆ>ÎwxfÀtpþy–›U=¾7óaëp€Ê›²b )§Obä!m'å`õT·Rê>ƒØu¦ŠÂã,Ò\¡—˜ü°>’^º@MÛJxÃòæ ‡Ú›Y):7GŒœI˜¶¿G©ûÊC–ʺ7ËÚJádá.œÃðV+˜bAö]»µÊÞîÙ èž<ö~EAmâ (‚ÂvRÀòn].PF„ µ ô€²â2 dbVµ…„pŽj1Îà"ŠG‡lªó\@ïÐñ†üìÛ£Ô°hZš'{ÇSl`ĬŠ[Ç`r&7œ´UÁsu³rŒ‡èå´ÉÝp ‡£Ö0«sþ’óÊ8• b [# óº¯`Çàäc<~=LT‚ mH™dîÿ@/¯ãŠÂ=PžuÔüJU†ã›s.éê?ªyìpƒ ^3â\gÒ[«˜Ô»o0`¡¢mG`”dïmSz‘°4]wš«ºÒà„ln+Ã\ú¡í”ª¾¿»Ò†ðÁo%»Þº§íCpÚù¥„?«%°%’i9wçr°¼„:´±iY9EÐe~ÏQ|WÉ[iÈ&ç0ň%¤eتMbÈ^|¶êm+ú™‡ã6€Q#hÔµuòTMÃeK£¨¶­ÞÎõ°ý^sЧwA,1øç0ÿ·¿sˆ½µŽ‰è{|¿e(Ë wm-)xÕÂVs†˜‹ÆF–h„ Õ¯¡¹êj¨¢OggS{*¨ä;Ï1â½<ìãßðöõÿýúÿÿ üÿlààÜóëâÞÞäïÿbòðÿ™îÿ_éæàÞÿ¿ÕÕââáÖÿ=Þéîý÷õÿméîüIaòJÛ¿ÿ‘¥{y…õr±Žƒ@g~9`é°¬+”©JJ$˦¤æÒx”ïÄÏ -.Éò¬§›7õH-„ÜD=>H/!a°^Ç”a†Ya8`ÂÒ,˜æßJä!Ïoí n×äš0©ó#ž4†‹ß^žÐðå<õjˆ“KÆ|8Ú¡ÂÆ°þìð<Û"}=’rÀØ!3< ~ïÖ^!öP—±Q,™Ì"ú4Ì¢¯)ù¾¯ëÆÝeD @¥3ÿ?<ßOæàºé—Äу°;¨ˆÿýæO?­h·>ì~YîÑŒ—`æ Ãäº%ù†iü¸†ŽãÒ£ŸXz7Ĺ9,…~N…RÖÃè–éå‚í2žÁ;|›¥Æ'¦+¼Ç[®ü¸ÓźIu“¿×õ&k‚ëéέõÂBÒL¹Íiâ‹}°.Ù;<Üë±8,üÓ–tpÑ2.ž ñS¸ê=Q4Ï¢©¬Ý»Õ1ß™(„…ÁƃÊ ¿ÓÇ4DwÎ|A#‚a¢žž†¯UûЄzEï ûÄ}ðálÕÉL­RÎ3U´Ä€³ÏÁ ìPù©ú*|X²¾D-7ùüëXWƒz)‰¡Šáü¸†ÀŠ%O¡— ¥|óð Õ³-€»òã§[#m—µ€ÜÍêY×y$Aa—Éyícö'!¾«N›ýs¼¹ú º…wz!®4ÍÀ\¢‡‡ŽËpY¢€²×ó0D<Kë®Ò䩇èxݤp{š{ãz‡¡ 0ò¨ó3•$š#Ó 2kÕâÁ§µGp>Éœ»a^jx†öÕ±‰A§Ïp…$§øÐ£‰MU’Ý·•l® ãM wº"d¼ýb0ú;Í¡©¼&r ×½ ÌQ—uáü¸…ÆÓ%buR®°ì&í¿ÔómVJ^rÍYYÆQ £jrÉfÙêÞœ»'OÌㇹÁ¨õóʯº¹Ô‹ÌïƒÆ $ËÿtD¿Ïºà~h é¡CÁ$Úóĸ¡ºâ¾Dµ φ*ôœDým%Š}qXFƒÝ¶>ßž¢z%‰–,Uœ` $Ö°W(.HÄ>Üjv_óı=êU5ÏZ¬ÙƽÏב€Ã>%K“ÐDçH¨Ž2©ö͹د©* ã&ÝɉsZ^CÒÏà„H´×[3w@Y?zŠ<+´??ð—É©¶¨¤áüM4,XãSÎònËR4%޽oZ¹¨2TkÝÄí¼ØÇ¤ûØ€QÖ˜>S1Ø'Äs@'Œà-c•äwÅMá0Ec(·T¬J ·_1j¶9›)2m?ß!™0Òg™a¯7œ”Ä›°«e¥/²È5bC;âù)D>à:M0ÑÅz¡yÙ‡é”4Zûœ”¯\l?ÔÆ¤¾Åµ¨äªgq§lo,euGÌ1Àj”Ì̱©óìÒ›txZ­1oþÐ5×>ä%GÓãw÷·ðAJÜœÚåÂÒX¹òH§Ø¢¾XØnÌýž"N[»ÄöÞÌ÷iÉYSŠ ƒüIâ锘bßp'm—z—|ïˆÞ·ÞñW=Š´ÂÖº‘W°¡ê”ÕØ:àb67Ë+°Z5Œ#âAú£uÞ1Da3Ÿpß1fäÁ»ÞÔ)t=Ân›_WÞüzÝuü.ôçþ_ ìzyà,ùLk““Ü”7€;ÖæûÕÊNcJÈבGòÔÎý •ÊÓ²R×R &Mº^ì‘BîãÌÜJÊÔÑöWôr…Ýo¬}ZzNn@±“»™ÒS&é¬(S¾`}O1#‘ðæ²ql[ÌϤåð:o=•žË“—«4i©kðm°E=üNCÇnåëpG‚3ÌC_ByÄEUw˜žl³)bú§ZÁ–šû˜i¬‰Î—ø%~MH× ×>çBO|·I0}kÇs¨‘Ê\rû$›ûïH´ðrV ÆC„ÝL.·´icÿ@m´»]z¹Ÿè>` g‡Lç)Òpè,ʧªÍÍ(iÁ»nxo/lÂt+::šw?̳yçdk; >ã­/øÅÛì6KâîÒü.ïD“) U{„gb'[¢¨›4}ÿ¾}«õeʱwÒ¡œbgS®½«xÞ'³›š›AË„¨ÂÔûHÀØuh »¯âî6÷J~©quWæ •†vƒÁÙߦ:›É#±‹ÀB9ÂM§¶Ö”|+ÃàE& š âªj‹ºÏNn_²Z½ J$0Î +Ä$FÃF·C[9wÑh/WÂþóñÍ# Ë»Ô zO¾$pʈÜ,_\$Ü% ÓÀ"i´gñš“Â|—˜0?ظY‹[Õù+v푚·ö‹Ad3àÀP¤ \µ$¯Áñ“cü\‚«©»å/3Úop½üM33[¾5þƒ³þåêpE³¡žæ³kz‚Çv•Új \)s¤s¿ÉÊ /ãuR¼ùü*ÎF„?0Âv~DÀ!«xöx±ŒÊõÅD'Ü\TbLzÓxfî8‰ 1‚ÜÓP(,½ŒW’ÉFùu¬$ù9 ±r“å7Œ¯Þ·ršA‘©"K2\   ¾7@:ã^ή_»-±ÖÞMeWäïî}¯¦’±õ„Ô‡Ä*À#­±ûz›±ÔxE·*„ç¬X}þ´ T€DEtÅëÊú,P4¸”-²kïoX»Aµ@öAl ɾ*NÜ}D+Òwg `o½üM(øÄR¯Y­w±Ï@ªÉÃ1c|íáìâRH–n}Ôztº$([âOÏÈàkéöñ­™ïÆ8® gx ‡BìÇ^ìðûq'd½UC›Ùø%¥‡ ‹œ`ª_"å,A^ƒÉÙÁk·TbÎ|B·®jH ]I#Ôƒ(‘Ä+ÇÝnµ–Ÿ0§†÷á¢'ãmðKÅ¿‡ŽŒîˆ2Õ§‰ IÕq8mŸg$ä‹Jé›0´5—¿¦ïŽ[X=ÿ\˜»[ükaT!X¡çm–‰’×úÛÍ}§‡õ”2¨þt€D…Á$“[ã7v|Ê/¸t E»!œ±J»#\îÊüÎX3ë÷]¬v“]Èy4°Õ | lgLìÀ΃éÉ=ŠÔA#h¿†¤Žþü¼¤×*RÐQ/ÏýŒY },°½kõ¤Rƒù{8èòeÎ-•^SÈ‚?/ÿÓtPû eDWXìýŒï|TPt·Šdw\ÁtÅ~-EXßÉjk]VrOáÓÏÔh2Iײ]•Ü(á¼Ü~öÝ\(ûö/KÛßvµâWC'à4‚iÚ"íÓÕòóKóLVˆ8ˆµ¢&Sä³eÝËæ<öúáËîåü½¼Eޤý$WNÊ¢%<•g7Íp‰]d²sçmÚKÊÇšpƒlj ogÝ7÷|þ+2¨])s›EYŽ<£`Ym- ómÞìvªü°èÿÀÉèNz¥ëÂe /²To.„¾ƒ9Ü1q“Û¤ñ†;ˆÉ¡ªù]@8•‰Ægµ·Ê®“ñî&!ÌkÿGSj„$âjÒÇRYDþ¿W]ØZÜlàNÓõŠ!ñ”d­CòiÂN‚§&Ã!rÙ‹”ÁÿܘXvÒpyYåÕ¿-CS(°MqPÚ«%t–xv¬[ÉÍF,Kèu±ÕÃö¢ÈŠ9†]Ò _í y1Yÿ–z?æQú#u=ñf‚å¤Í:ˆ{ï-†„1Ζ׀”èë—¯=—-Èî»A\ŸyÒP´\u…áxhJ“n˜)‰64ß0«GhŸN”c_UÂÂßüJM?ª@ak_«¿¯'i Ÿïg@Kºèí@ÃVØ:BÝIH÷,¢HÂB­¬¤ÊÊ †_’s+-»¯c¯õå€Öó?7D õWà¹V& ¼RzÂô† ¦¦sjÉ+…Ém½Ð”ÛA$UÌ{‰íŠod¾i·ûA—À™Ò &_u¶Á '­›0÷×¶Ò%l’#»KìçFÕ=G‹¥¾ˆË*Y {Å›™u©h}Ý$Fpˆ«®ƒÌxö_l¼¹2‡-TÑ‘]#£Ù7‘ÔR-¶­®Ÿ üMc?§è' W„K +où¦fz™[¶3¤Ó]c"ž #»\óxº‹üxÂ$+P„+q¾Æœiç¶76D°Qü$yÖ\òœR S?å9OH¥`Ô×Iàöiõà‚íX,vËé\<$¡±Ú4Q‘}ÓÒýýuã±l:ZgÙÍò½,ŠÏ;™óU¹%¶ÎZITµ›ˆ³¬ø.a}Îë×™e&øe”]îõ¶±H‹\å¸Ñb§Ÿð´Ú ªë87 x° ¬­<*TÑ¿6óVª5´Üy*üLµeÖœ?P›×¼\/Äm¯í€hõÓN{A‘¢Ïr<`?z3¿ÏŽSÌ$áàbéPØ9ø]nxk%f+ôï'™å4¾©Õ•\Æ·nB\é3°Û0w‚7Ô”TVdŠw?"jÓ‹#_vŠn‘r¶‚ºä:r8ÐÒ”ËjÓq>;Œ¸‹‘P…ä9 ócšÇ] (¨xQ,adµ¨Z¶«Ÿ‰e³G‰9Ð}iãËa™—ÆëÀÐ{zív#Dv,ííŽ vj¢„‘M§ã2<9Ü„ !?»…%Ó9É?AÚßCWü2r`Ä gÚæó¨£N6=r÷ÏH¹oC{6Ó!ºˆWMtwA ’½úNk·¨'ÉÀ} ÓfÊq[tošÐo¨—ªê‹oïÁA¡ÉÞ”Õå6OÛ/Óå'tÕc]¾N,4«Ì¤N$ÞEIP·çv›ÎÆ}­ÂC:1 åž'D¯ŽÙ¹Ï›ƒWr= Áºˆ ˜|ñ]¹_æùÓÇB“Gô2c>˜íæäw*Ô{m^PÐ_ÚÆÐtóº’°OY#,Üøs“€ÆõB€¹ETèhœ‹ ©Dów<_?À룤Pú{ÛY¶ú&ê€d/‹¿üIýnø •¤ðjî4|¿êe\ÒØû¶`š#lãN‹û—±Z.ð»ÖàjûºYÑLŽÏVLc£øÃ&Jž í¿-&7)t¢Tw‰™¦aëÅthÞ¤Ž˜_–}·ûeºª]¸Š2Ø¥¾ü©î©±ü5i{™‹ßÛÃÁ™M}xo°ã/sr÷ùí…µóm˜ÐÒL¦ÆLS¿j%Zºl/ÿÿÖÎñš=›f»/KKÂÍ#iõZ"®^¹|ÓuIÚºçz¨tËÐGç¯$[Â2•bÕyÕ•?-ow®–3ƒoèj-ü5«m¹RT¬rB5OÃCÓ ކÀY‚\(´vüúûjÍ16^Åí¯0ãÂìÓ/‰¸(Ò8¦€Œ)Õ#2Ý:ýzƒ/ß!>ŠkÒ¹lÕmŽï„Ãk!«‹¯¥Â¸¯KE•ƒSìø¬(y"`G¿Í,1¼¥šVÏuë09†jøñÂ)*ö§ ±°&Í"y$§Oýª_ŠÎó¶i,ŸPÆk½Ìp‘? õøË”JÒORÁrf((»tpîlbWër¥$®õjÅ;•îãTBK­¢‡@s?!FÛYÅæ|£»îz,ÀïãÍ)—,eµŸBªLû–¾û)SÒÏËw‡Q}°ÕÎöÚ£R{C’ •\ºr”äæ–‹Š\W ²[JÓÐðИƒª:¦ÛüIb¿gAúê¿™TÁt<Ô+3íõ¼® 2/[sÊxO™ûXùè³nÞy="¸é(’ŽÎc\ FÌ%ì½Õ^JpñX¦UýDûRv\ƒÐYÙ×ZQva³6ÜV¿dZ« I 7&£ÆÆ©ª@ˆŽ=†g;«z_ý>àð6)™§¨WÜí~Æ~…- ¤IöƒÎ§ëè·3WM±(©Ïš¯üM*Õ2¶?=ûˆ-F\`fË‚Ñhí6¹˜á&ñ‘æöjsq’–TÁb!¦ÿ7YDØ[Bç묒þvœP¥½‡½ØmLÑzಛF<ößÁx^û¤r,Ö˜ ¶pØ¿a pÓÔ²!vÁ„áàƒ„ʘfi ñ4N™ 1Nÿ vÏØ¯Ë2³ç<-B æu§Ö]a™:BœU4æ…å<‹;‡ØŸ¨ˆÚO}2êÉ*çmÑ(h‰#}Ú‘0ÁÝ.‚¿O{Vë¥Í­Xt`e9wê›îLA} uù§Þ†Í‰¡£%lŽ&>m[Aß(£ò2*h›¹á"P?²f 3Ç7±P¨æÓg.*ßAïmÛmkÃ2)wžÓ‚eyqr(@^^0lªCŠÎÀX6›¡Ü7Sîb™0,žäý„3$í/*ôôÙäáÿ÷ ³Ïb¯Âò¥ ¿?ŒÀ/àçêüÐÓÄÅM(¤i“žË3€Êñ¦5÷;ü¼²txP¤F;bBÐçã>¦,Äeu]åJ`½ý`F%Ίº¬´ò\U¬•Û“¦õ2œ†D~Qb‚èÐk ­þ{‘½Í“'ê²wr[>,…±NæD&9°@SO6wý—c0Ɔý®Sâ³h¯L‹¯§yÔ¬/Õ„aŸì꾊d8Èa¯<H¨jÒ7*;C£#ÏCÿ˜ ›“§€ñ|`S³ +ˆ"ù´Œú„”¡Fqå4¹ª'Ñrch¥0¦–˜+´È¹·’â7EYñí0¸<ç2Äs­£“ÓÁ¬ZÜü‘òÓ|Jš®x(¬áð@ÂôtªÓC øMÈhÉ’ëAee\2#¿¤ü»è„Ýñ%!vÙ¤ˆ–%A‹¸d)¾…m°ûQ혼˜·óº)cýP­H#ŠØ6jv% o…G;½G: „þÄ"—c2ÀÓ Á>m*’=)ó‚1P*KׇB@½Us£y¾N‰ŽZA±´âRÙ'BÅDø-. „ ¶&9)ûåãîqaMmœ¦pÂBi…°·èH’ùh¼«lžÒž=J[+‰éÂŒ F¾·—ÕÜsÛ¨9Äç™Â[Øž¥¡•”n›œ*#W/ BüL½]Œ©Ëx½úaDœ€X1–1À9·ŒqŒÔ7IW¨­Š ÏSM`BÃCwÖ4i_®è2‹P©t :N×Ìu—ú–%Ã~•½¯C+²æ‘D¶~ì.²¨2cÃúkŒÎÌý3ÀÝÔBø¡u©px/ßñÖu8ªu¤‘ƒÒX•§´—×’ºkTƒ¨²Ñ!J«K]D84H邨>7Ĺ©?™þ±R*€‘É=ŽùÇzçf¼”ŽÖìA)¨èê½GÇï ’ç‰ ¤zÿ*¦NÝÊÁ`mfWÉTê™öAƒÃæ f2ˆvŠÝ“oNÖ»ý?ŠCÓ~Šø¿1"˜Ðdp¨ÈkÌaï¨ÁEA—Ÿ}*F©±y¡³î°Éä²W•¹$Òˆ‚yÿªyéö­ù@X1»¥ovŽ5Ø;QYNùáu\’e³m7ÄÉf¢¯ƒ’eºšÕ‹ þÓ7üM2L-’7aß>ýM˜oŸéM÷ÛÎÕ‚$j•Á’þ\™ãtK#3ˆWÌk´ÌZë¡8šZ$¶T2‡hüI¾_JØ£ ?âpã¥?§®m£~7kÁk¶_}¸Õ„?0Â'Õô…dòÒ˜è>¨”ðSSϱ'ÆÝGã­)òáh‡µv{ªÉ¤ÇÙט©Edè(Iä¿QY'6·PËò¨kF*á+’æÒ¤”ÆœN"„ý—L'oÝô±¢v1(ib¯JvÖi;ËOd¸z¨z×ÈX³­0ñ’Ýð@^¨ d`¨üMá>tUζe"EŠÚ"$‹Ÿc§ànûaÕëáí1ØòðZTºE›YAØ|‚ßìÉmg(ìÚB ²bÄøržˆ‘Œà•}Ž{—E@ùRL,Ïÿ¼@ÈàæR@a:L|ó™Àä9ŽBô£‘O Ñ5Êâ[ŒÏê¼üeorô‡ñ,&í½)Ad¿Á¶‰59>:Ð mJÀÈdâ}ë•D)áÐ÷¨™”>TÌf»TIWR‹RJØ«¹‰×¥`:ˆàZ»tôkÛS»(ñ»—¿qaÂÖMÖ¾l}¹õ–‰{¾-w:Ñ”Êü.ÞÒh ÃñÛœ9ýú“ èÊí<Ü-b.ëF}Ä=^Ô}¿‚}—ß @2ËT”ò[˜½Ý'uv‚ÂZ Za@â;XöÙ¯aEÞŸé=ÕÍ/_ÀìÉHP¤Ÿúï¥n«›Hw7,»l¿)a  ›¶“ÿ_ëÌ$¢ñë5ÿ4Hð)éZ€Ït³„|ûž2„PáUI²`¡“kV03¦ø˜ÂÊТ—¹¹Ä€gœmÃôûZØÀd*|d8h[ö×kÝ— ÈŠ›¹ýqm“ÈØ1þ&aüÏdÞñ‰‰tr^eÁ‹5Ôfî-ÓÎØs#Äaç&JÞynäjPX²ülÕé¿n»'Ìtz}ÏÔ:ö§A,$…á6ÃP¿@¸‘Íö.˜eØ+—ßþ<ŒÔ{…ÜaTSãdbôÍj¸zÍó^߇S;°Rmó¥ëp'\ﱄ‡'Ö€˜4Úû\;ç/HÓg¤½XNý-S¥ö¾ä/¹hœ5€¯3€ƒ¿ƒª˜Ó¥­P§¦LUû!.#ŠÈÑåú*4G~ ™ÂF|í¤îõ:éÈÖu«¸È½“\d·%%ÁÆjJëJ¿¬ \Ÿ%ý…ò¶ÑÛ o*©fцüŪâ~9õ H\Ûþü°Úæ]˜Zá'¬o³Óµ¸³÷j3,îH’,Ë¥LCKl@QFÛ&Æ_èrz÷Äüß<ÖŸë…ÇÌY<üØ"{|Q·y ±ñ˜8†sˆ'–K\M˜ ü‡ äFOç4òqÔ=—qŠ­ ݨãW÷]/À¿®ÖŒm¨q;ªŸmïÐ o!ŽXW‰  Œ—¯‹=VwñÙ>»{¨t2Pr×&®!²X¼Þ&LÉ’³;Çp ˜òËùüŸ¼þ)ý5Sö4íÛ®‚7ûLQ÷AHÖü¾Ú؃QîxÆ 8EÝ ÜÈ–Tx7¢¶; {ËWó}`¿'ÉD#¤Ñ âfM&"µýîßcT9ÙeÈøÞ¡vøµÒ”‡ZrnëHw ´„ÓPq=Û?~¨E"±6m(±%Š@ ^“Ùr×JKN؉–añ›òò¡ë°$w|û6Ò>¯slgâdJ7äüÍâ®O8ÚÄÌøVPØú*È'Qî ^ÈÅì˜×Å9üM-xÉ@œ 6šv& qxáÓ¥,âÊŽZƒe²r˜‰C¬Ù[V– 0Ö©a¡ìŒ¦Ì[à¾ÝØ›ì ŠXÆUZú`w—åËW»05½Œ!å…‹Ò•>§õ®ÓÝ&QÈXßa#¼ØàGD¦’<›‹Ð@Üö¨eÚ©h6Û&¾"Kñ’³-‚>çL±ˆMM0†s’Cêï¯Ø0a 'D1µsÊÒl–àî{…›ªAEf ™˜G‘§šyº#˜ÆŸ1wÙ˸n/”ì‘^ê&m'7¼¨X1ÈW½¯l¦§eÅü|›°Oyjêú&Á©ÈÓ4ÙÁ–+tÔúå7/¦Â[ˆK⺫¹jªûûˆ‘Qò~@-,éÀVöÏEgT¡…9ØPýq1.ˆš%¥7»Tgi´hcT}Ѫܑƒ˜…ÈÚ ÑÒnêKþ]}ÁGBe28Lù/ ?K±7dKŸÖó3DÇy;§(úì³-tëÿ”´g !ª]TµeÓñ"Ik±/n{pº¤¬æÏޝIk«"רz<æÊ€ø3"5D¿f¬½¤šu@³¾ñõüHËS4šø| ×;ñmàŬ¸ÈE’À„6»ÌÞ`¾ÇÙ¿Åÿl…Í0ûËJâ§üJ35Ÿ:ä(VŠ\mz-dP žš}'V`§9³òð,£ÃÕ@T‘(F'õš¦Gæ`‚éÊ5ŠœÁT‡Ê?ø/¦ Þ…]d„ÒÁG¸UÈð®?ásßôJ¨+ÎÄ(ˆ¼Ï ÍÜ^~á±d*»ñ„°m B쥌k§ýFOc!;'Y¹­uÍsF -pvJú6ke¯ï¡0t{™¡)ãK4â]Z"#¿6%–¾Ó,"ÿÚÈxØ©ØôÍ'æ}¬,Žt@ˆ4¥DãÔãVÊf“D²Y¤À)–šÖÖ^¹%z›ÎVíüJ 2>Ê^bªªÙ)ÎÞ ß'Qa—6h6M6(uà\’¦;•Œ.x¤ûèSŒˆ4­p* !ÆfQÓÿ£lLQÿÊ¥õuÝZóÑdû4Ÿ6¨Ýì|ÚKÕÖ—Œ,†pÍCÅL¬ÒhÙ¡½iˆ¤+‘å‹i<•!>Å“l­M\•Èx¹AŠÎ’…“ˆdÍÆÁ5p–†$J®­¨ú€ƒ¬î,ÅÎ{òÅn‡òhíK9Èöðm@‡2uðø¢ÊÙF«òõ€ËÕ4K ö\"“†… ̽Õ<®à|¹F&³‚ÇÒrxü£Þƒa õ.f7å{½BùÎV+òr£˜-íUŽ¡“#?Ï=[›H`’0;@«¦Áí[ "É—Y6·!Lö¦a³ªÏ4׫Úu¿$<~ Kð³–2dZ= øzƒg®õDo*’‘Mäá+1tÌïØX÷¾ñdmš;o×ââ±O&âD…‘瀽4œ÷¶Ç{C*t eëô<ˆåó¬/½.Êú% ®]hTa¿Ã ”Õ#×øªA’`õ¾rØ^ü¨k²vZAxUç %¦Úâp‘°¾6™ÕÒüuša.8xTLA5:õITíQ3‘;"“»d4ï0–ßý¹ŒËç,¡¦+©*K:¥îͶ·0~K8•:r8Ó™V‘ Ùë‰IX‡Hg÷‹ÛI>À½–½ÊM& Ap¤´J®Ü\ú' Þ0ñ¯v ŒäHYYíchÂm×bôN½8æ5hˆ¯¿w†µq^”ô~‘­ôÉ=ü{¦zT Z™•Wh›\Þm<æ‘€¼æü, ê÷ožR Aº¨M_§8Î:.ÓÝ¿Ÿ4—œ qˆ§¹¿,&þÂyòw }üM3e×Í}š¢/ØK̸KF›§ÿ=x”u]¨ü©Eê7gäÙ‘MÒY¨ùÐʲ²0YâiyíÕP7ùD¶kcJm’LÉ‘ù%Ÿ´màÖ”£àn:¸íMbð3—6i[{÷ïI´8Ç( ‰ö«Bí5¸êþùeÍSÅ ”MuiŒƒ@1Ê¥5rŽ…ÛeÚ ^¯­‘Êz5Ú-¨TkA1M¦šYKlÇT¨Û7À~œØ´†P³…]"3#F©@%­Uü~Äämeäe`zµô#Àj=q«â—¾œÜ’² «5.x?t¿+É‹_â®»Çé~ËäÊü}bô–N¹ê{&[á"„z ˆ-üçëµ]ªÄÖ,P*~”?~ð¹“7çV’ll€+Ã8¿•]´V EÄÅ:üj›æXV6õNÝiuðw]è”\Ñ#v\½›YœlË ÒÇo‡‘®RW rT2†®·™P•''õü)¸Ï€‚’³hQ7³Ýê˜Õ¾'é’*­U,òH÷ª®½CÈM•4×KVÃl à6®< $™lì¦s¥²üM3?¯ÁˆúÛRfŽ7¦e³ñ<Ί*ÿc*¸5ŸPt¦E»@Ø®PyïÑ ÔòeiÏ€£*ò¦á¶Q"Ú§¸Aþ¼ì(L†úÊçµÎ‘#©Ÿé9"±¸Ó@ÞßO¥Hõ ò›ÄÒì^×tsw”vÀ—ö ¹ ª¶é‘§íaîÞ`‘¹4c ,o©«à1¿—zÃRé´ËªÍQ†+Û®—JÛÍS!«žðÜ3×_uÜább ¹Çµ#Å<®!v‹ü²½‚÷nœšE Ê¥UбÑBÂ7!ó0’í™+‹áp÷Øo;OggS€6+¨ä<î èo<îñôîÿ{ìöü÷óî÷íõûûÿõÿÞÖ××ÒÏÔÚÖÛÞØÛÿQãöÿÿÿÿÿ‰èâãÛÛáÿ ÚßèüM)-¬—{ædÃks “h»´„(bû·"¢þ²tbð£ kÕ¾%­¤,@®+Šc@ Üáó( ùe›ÿõ©¢zi„C­)ú˜B~«"¾½’c‚Pâá¯Üy!Ë“Öi“T”V8ëQe8Ç”è‘jÔ§ ù7Ç?'Äuݰ ;RÇ@¸m™‚Hr˜%ûþÁ?GÒ'ÇÇùW«Ä!õðhÍ!šAÌÓ–Œ_Ð S®7ï/py9ëøþÿ“‰› :ðUÑȄÆ3þž+½4ÖWƹÎ3P·Bê‹Ýf‘Åä3Õ}häcÔ&rXúÛ³b_¹óü’òƒ%®r˜ã§B×-ڪ㚓‡j·~âLÏ— öŠù8deC\/«ó¶<°ï Úu¨Ú7^;†ñƒ[pþR™Žö«Æ_[ÿ-±|˜>Ó¹æ¥Ûxõh…+¤MA°qyAUASqrp^ZtåÌÞl™Æ6‚…lÚA±ù·]÷yº˜Q5xÇ™Á¨Y©ôòÀ}›"î—šÔDE½ì>òFÄ2µÕ; lýÍŽ[’~VÐâ2C1Ö%üâþíá7s[¦:£´ÍÚÑAOÙô:ü‡h/Ü·@¥½Êýdí”ÿ¿Sdáþ/Î Î<…*2ü§Œ‰êÎuW§ b¿á?ùöðÛ„î%Í;Íb*+ŸÚ%JF)äP“~%›±òMÞb— Yð3e¼üëŽ TV·ñ¥;“h¿+rÜÔ¾ì$ÀHÎ}Òa"Õ/únŽ¿ ÏÀÚ û¹hh‚åþÇi 4u­ï@„ýÖ%ë¢ñM“†2Œ^÷‰#"…‰ËÔ=8Ÿ"ÞÉ‹>kÊ‘›Ôýx9ÕX¥ºR…[SV”J5¶æ9F7FÜÕTlN0K u@Æä_”=Ž/¬ÆcKY†°•HN=‚¿N^UVý¬YmñÉ3>)Íþ*p i•Ó¹F©(çTÄ›BgüMDßÅÓ¿<^¨ûäû÷ÄH”Os%9[©–+öq?Ò7ZÆFªeBðè+…­ }g–;º²:;‡‚«>èˆ,ú¢´[K1éÐ¥±ÃÑi1÷%ëC F7ÿ™P-í( 'SÚ§¡çé'æ ¬n®ØýëÃGb‡† ˆRž8yç þÚÃH!³c‹>=÷"T‚yåXèì‘ËÖ¦ÿ¾GÁ¨!Nyˆö¯kØúKRÙÛ2øk©Z¶·Dv÷l_«PöÙwc·E´Ëþ÷¢Â‚ÒÙaoGÌu†“}ìÖÔÔŽùKn(ÐBÛ܆Jü|¸1ŠÈŸ?¡¬Ù1þÖDêÈ‚õüdÛB 2ô úb¶¥ ñ¡·šÀ•¤ÛÂtÊ;íŸ5÷å% _ã÷„#u©¼­ÀŽó€_Ç¿®Š€Iye ðèWR©° \ q†‰Œ¬@»·†ˆ¼ ÖÆ_”vËÇ’£@kºð¼J;‹áórõräÝÁ’v ™•‹50MÏè7,øòJ2––Cvmöƒï:Kæpg·j[Œ ËNøà”°eKPvZx[`ϲ“€ ÒòÏØKÿ°Ãj–’ߤäÞ8‹‹óôk?%Ò Ò(FÄ/üM„L)ßKÈëž.Þ«&&œ»ùO¦q—FËâÝAÂ~ !ÅváÉÄþîÞ$‰\÷-‘§ô¹("—[ÎýH{»ÝÌswÔ9Ô{I®ä‚(ÌâÁL¦ÿp±F}C)~KB/Ú»[,Œœ»<3¢PØdÈDF?eöš¢X<Û‡Ô%ãhW_¹Ûë³ý,p*®L4mIn«EKõ½j4Ì2óSäOL§SÿUµâú~Ÿ´x—wQIÌsÇi.)û‰FóuS¿ãÜÕœ3æºü5o`,©·Wþ  €žî–uRœë'jE/j+X£:ï\f¦­OÙׇ±È`R#!wâþÒþ*äHH‡”ç>hà{Édvk{B®¼í:—;æþ2 ƒ¥„F¸Ðˆ…H!3G¶A™n®:r¾u猀„çËÔ*Ü\χ ;ް¥:9þh_Âo"Uòñx®HM•¤Úõ=›!‹£BžÎúfïäþ¬¹‰ÜAêx¯+ß™mP§Â÷1‹¡~J î¸ß$•m9æ®<.zaÝȱßÅ;AMÚH­û°;S ÐÍg³H¯jÆHE ÉØ\ãV[¹l%íDS¾w7r“Azz7¨•àÞ|´í…ͬ˜ïqï¹ÜÊfØ+èYü-fØ¢Y¨÷—C6ÏüZš¦¬dϽ¥Mû¦ ~®Äod!hÄ _KrÈ,[ššz$„/ˆå|œã“4彯õÕÄÍÝov˜ëÚ›â*}#«wíV¹v®zÝ+lbQ) V”÷p•&SŠlÛqÍ¥—÷ûóÞ¡˜}LFÞ€Hž¸ "ôšÁÃba¯x÷J5Màá  ‡/ „€Ú~ƒb€(ÊÑÏ‹‚\É€ðxRÈ2ÒÍ¿± Hº¤›r=¾÷Y¤ísO`÷â$¬‚ÑÞ¹y3ûs2Gü5]Ú1´ûü>ãêgYdȈ =ùvžágS»ÀR`ï+:n%án)ëÜTóv€²ËøµCÔ;ô5j^¯! ã7 Âtîþ°^.€ÉÕ*è‘4Þ&œÇ÷4¼†¹+I¶‰µÉ‚é'z®f²9¬Ž7MgW`öiÚDÖH¢äKo¿ƒÄØsla‚¦k%E ëŵÛ3P²ótLñ¿JoÐZñEìÇòB¤ùþ è'gŠÄ¿NÁ2NU3|ïÎô ]2œöZ@+j§–2#_=æñ&EL,ÔYyÍKN<•†Jv潇‡ò÷5³‰NÇ~ñdH>Ê'ËFüJcðíó8jçx^‡wÀ‘µæ mÔñ@LÈ‹»-Ää*@>Gë¨B¿¬” õ•?w C £€qH]Ê;•(ºó·”êE[_çp™YƒíÐ=”m[QŸì¸,·Ð@F³/¢(õþ ÅoÒá~»pYŸŒ¶]•Û‹nÁ@S‚ä¯>æÜ³=öà]›šù»±AqU)ìCAÚ/º>C6ähRøú‰Ìý"Ø k÷0" uF;®cs]]ʦMA†(¦n»ûÓ÷ãQÄ2çÝ_¥ë"RyƒgrkÌÛëÀU«>·¡jVq±lLy¦–„ôþXô‘Û­\Ÿ!VøQ®ë`üü¬§ž¿(¾)4‹êŽ TnÈ?5ÚWÄò‘¤Öp±xz= UE½#únQw¢Ä•ßÕ“,, î î=rÓµÒ«BußU¹ô³Š·«A"Ë hòäûîºNr$]“‡Û à­:W]™!Zù¦Á—+׈“ÿ0í)uŠå°J·05à^Ö ?¤p|ý•múÚGåób³ò§ÖÎ=öJ¿öÛ²÷aƒ#¶—‡Ì)@3 `ºeýüÈ]h.9¤ÁPÄÑIònŽÐ÷dk' ^Ö©wºiœ+ö#:À£¦ê§±è[‹µKþp4ÆÉÅy?fÓ 47B\Ë®!¸u_* ‘m>í éÞ˜E[€îÖ«Ïjç ú{qóö¦—¬ú(eÎ'´âGöø÷ø¯\À¼§áЉ÷•Úû Ùû\<½u* 3 À[*Kf·3êš¾³;·@k].—UªÜû÷-ôcÕSDИwE‹äV¼ÜmhÑ~»1ºaS±ž‰n<îň#¯@ûiÀ³˜Ð Á1„Gß{ÀœŸt}îVB_ÆìH2ÝÂnžW=ôë'éÝÌú ç·iÎÈCãÈYýÆEr0㼞kÊïz¹ô“cáþÖ4cuù(¶žPŠ¿íŽÆAÔ˜û©Zwir%†YCá×NûT.¨­ ¬Ï+oÜH'PÛ0Û”Éúd9Jˆ*Ò6hŸ¿÷T5bBJM•p„üLÌ%fH‹±%Ñ5€|èú»(¤dE¸’;‚@3ÇŽœ.%€…ˆ¬;®¢Êsy™Ê«Ëª6Z…ž¼/5-äš[:H•eªìýƒÔÑOnžuæh¼ÝM»øðG¸\,Êô‰Ç(ë†#»¢­¦_X¹xTŸðšËéæE°´pûcæ¾’•Ø’¦4Õ˜8×À§JŒ´–Q¨§VðÀfz‘¶Òׯ‰êé»g½ë˜…¸öR©5ŸéîojºæD˜²îÐÜqÒÎ'^ÔÔ/9úq±ê X¸1šJus}Íc€eî]„üLØ‘aÜs6diBº+ú[õ—Õ]‹/þe\}SÊ èÚá‘•€µL)1 68ÓÑ™nGlUèm½±—“`]äiŸf+¤‘edª^ÇŸ)~¥)7£jbfTjÄj;‚flG”‰ˆ€¬¬Õq°žÅ`Ü8³÷Ö×§ƒãõ¿½üI`D-_¨|Nž#YƒäÖí›,$‹ïã\ŠÕ_U6’’Ö—o©Æ§"mLuJDxÈÊrÕj~qÑUïn!„óØî¢zUGÑ!ˆh].U§;Ï=ipß-"®ò×=‹ç¨»ÆÃ 08ðŒUöÆ•‘óß‘Ÿ4åijÔ£(XÃQ."©«D}´Ï(M‡És@ïóp,¯ÙÖmÒD×ËŠ²¹†´[xxÁ÷¸ÅÔBÀÑ~‘”$0¢Ø®üç¹ÇºŸdü!IÙrG}}ÓÑOgÖ¶kJškõüMyAÐ8täΙ±ÜAaªÐj€³©ù˪€é+CLW±·Eð¡ê/á>â!ƒ50›léõÕg%Tíòã϶R·Y‹ ÇWñçg äl’’Æ ÏWŽF¼k¨|“îišXMXRàç{Û Ü…#5S2;íÝÑÂè/:¾†MnU ãyj{4LÓn¯£q4]ÔX1ö­ï55ÁKOuÙ8>€ÅtrêÀAõ§Kî?Ïš1¯«¿¤·ª:w-+Ú]´¯jÝ Åœ/ü/¦ +Oƒº4ºº— P³<}‹÷: ,“Uë-kˤêˆiÌœ†nVØHu…šv¸5Dr‘–|PÉ#ýáÀ¦Ÿî©±4¯,E8ÿ„öÁ-v¸53™T—“’¹×Ìþ˜´ã÷k»ÍîÂT›ÍÐfÙƒ!¸©;DaBòzu™+Fò(ØYEîAu†Nþ9¸ &4ÒGé{²"tÙ3u Ø‹û~N‘-Û„ 1±ü•Üì¾.ô;šÂÛìÇXl—|µêëy]P”B6¨ä}ü6“^v'\öµÇ’Í€è’v¡Æ²ýš³É¾fÝГ5˜æØ ¾6²Äê19Ú. ‰Û4ÚòΕôÓÂRa]­º„²ö÷Ü“ûpêv†Ë]ZŒýšywŒî¯3ñŸ@Í­¶v b•É€ênk/‘Ã×Xo¨lª-µt. Í+V/û¿‘{§1zpà[.Ýas:Xi‚'¥ÁúÅhK¤*5<|Ï]ÓŽ5úÏ Oø„’Ë2•þ£ôNô'úQEã ÄX„Ë«>»m«,?}?“üL«DŽôŠ_8õ8.°ˆ¾tYKNl Ùòa½«¯„áeÛÞ³7(–‰0TÓà#U=ÄÜûcT¥«ügXˆ$£+ä9RÅ6úÖ%,ktqˆaoÇ/^ï¸üÄfâ»ÛØIyÓ†9•OD1µàðéßÔéwLI2ŸÖ~wË´¶útÌ›/Üñ?[0¡ü1…RVkV²aÒŠ7él Ùœ¨#† XD[„—M¾­ÊÐy;–׫ÇõÂÜ©ß/ˆi0éÜËýÿ†¬×5tæ[;JÒ`´ÁQÄÅ2K ¢€I_N¶ôwÀp.çBèW,O_s®¯%`œ‘Rz(¤§ tÝÐK—¶Äg)˜Å8@6»Ö¦º<·k$ê¡m<èž`„Í‘~›§M‘¾°iqlR45R Uåãû&¨?QQ™],h¨…׌_ÿ –T¢'‚‰;ðk½mÚèÃn¢³ÀYü®bºßK­ãJÜ·S³ ²Ù=0‹wP…•9?ÏEÈFƒNÔÃâ9–=q£ŠÖɯÀ\\¢E‚/}4x¯´¯¦Lmm6Tš6Yw•[¸Îƒˆýj^¹2ï5G×)¥­ÑÊBŸ×‘n¾Ïöë dýÓXòèÛñïéMþZ~~uüæŠÕý*,¼± Êc®:Äâ3ii£ Ãij*ר1ExE4ŸÚ6?&sø±G·ã:Õè 3G}&†šaNˆ8Õª^O%Ôo'S_m|-ÊÇÑw@@++¿;ch·¹A»®·3N^Ë×$Íà»vSôcH›-/wËó–#°6Ù$@ëåÓÒ¤ûý¬ª¾õÙܸ”Zý…— ÏXbùÛÑTol>]ùHXÌ j•ÊÙ‡ù€äz ãøíÃÉGgl:ü6ivb°<~Ý t3nŽðÞïÃÇ]Í è˜Ý]G‡UÃyÕjÄsû0¹Lå´ o+5:êZãópw´:ÎÚ9†ai¾g4–xIà ¶´¾´1O}ç éýzÓfŸšfvo™¯Y±RdÒ¶éÒf‡•¹P mk ®J°E›¸¤«š;Vƒ:è/Ÿ .áry§‚›ŸæAK­ÚûÄa«4kœŽ &w­“ÃË]ñüJƒ÷ñÙK-þÞvO‚ V¥»ìØÒÉ•ûàm»tl;¹¦ç¹†¬_?!ÎÖF K絚zÿ£U’´ÁÿË÷ÊR$ÓéÏUÐø5IFâv~ìv8~;Ó\G-Ð_.Æ~¢â†š üt ®åLüøl0s¾kW“*bu¤ #<Å޹ÆwGOò¾Ž¤tK"ë…Øà‘¡ƒN‰kHÚ–¹;3‹s=>B˜©¤HÂuÎ’—aG¢n=[|–~…p,±…˜­ñÄäžK:µ?ŒÁ4PÒUló¸áÏ’ü7œíャDl]÷Mà,FBƒÏÔ3hü1‘J=¹½r];\fÇÌż˼µZÑ€ÔûWÄccC,(µë^äåmÜõˆ‹ôúÜ]vÙ[‘j®Ìæ°¥ïÓƒòòK®k¹èÿR?mžØ9"$+;eI.H~@3Hð#ñèù êtøüéGé0¸{h EGÅH9W¿W=Ò©Ö%o5)“ð¡Y%R’…ÝIÒó*6Lô¢Qšµ„8´4Mœ-ÐÏÙŠä¥Ð Ç)om;Ôw”þ¶34>þ=†c×d(l’íGiG*íG×H°-¸ûá¾Ò£Mu:#—}óÎpõ2+¸sY µq^Z ¨×°Ÿ-Øñ=%6üM/;Rî“Æp~ƒ/Q¬üúýÝ›î*}&XYÍ$Êu×}7YŽ{Ý?ËuOG2¸ªä£SKRŽagËDU.O£ ñKÄZ‘>.C±ý‰>õ=óÈü¼›P\ŽJ+Õƒé©Æ÷hÏõü«œšˆ¯x•œ}Q·¤$úÙ0¥a7É?ž äˆ’¶ F4½Ã­tž+ ‰iàã ÐÏD>.çú5Пd£Îº ~ Î{̸Ý;J® _þRtÈéëv›Yé>þ E¹þ ò2н‡kG¿‚Þ‘»;ØÞ¡j$©ÙúH˜Ë?eénß_­¬ Ú6N­d+È)wsf úŠ—÷Z¤tSàû÷ri“%M"ú©LÛØ/R¡hmt¨ª!¸Ø?_;ã†×"b~hòqË_7?¢ hnt¬¸Á:¨•—5œ§ #µj4¤ D•üÒu[2`­Êü|¯½ªåe[)ð,ñŸ¶(-SO z4œ) "Ìf€3* ëc€w+o*š£·äb‚$™°¿‰K›EWØeÙÀÃCŠ·3FÎ(a  e…€}WC+åºDœ3¥a}éF¢DLUËuxw¬½¤1ìÔV­ñÃËnÌåÊ<*vÖìÕæÚ§;¡Ì t#‰Ö¶›$%e‹.&÷ñiâpžô*Q“P¡ù:®ïN•ɟÇŸ#÷á7«Ÿ¹ÇàÌ;z-pÈow/Õ!³ß'¡CnwŽÁÎïûD2šHθÞm™¤¹ÅóL‰m•”CýLeɲø[j¤kû]”Å ŒW’Ê™i@ÌaÔ‡¬XävA)逎Ùârñi~wŸ*§ÛôI ?øÉ<•35!EYJ]´¶…0{Óè¹ÙņoD0Ž3ûhmÁT´ ‰+ZnF„YM-`´¹QDþƒiLÝ"+¹²Å+ùÜ %È'oÞàøS'8ˆÊèÈíuò$ü5(&o~Î'pC}‡UHúrLnX§íÕˆ­†¦•¥McíÁëw0®P±ÊO]8Ú+ŠË9¬! ­…¿xwî¹E7ÿÚãÒ’Ó2,YÚ6Éúu`yK 8º±8Ë’35ì/„Þ]s…þD¡F8Ý…@Nýz×nneÔÃ^Œ±VdŒ=FáÎ2+ŸùQ ŠHžä #E•0u;sÀÆ­L H«g1PlΰZâø 7Ýsâ”<É8¥t¬ÈSäÁZºãŠÄâ \ëJÊ ÁûhRi£mJÀhGü1 ¨GŸ ôÑyœûI<»°6r˜ªí£PÕêap¬X¾€§‘&}\­ÑîÝÚ‡†pí8ÕXÀ±mŸ¨fÐXPv‚$â 5¥@Sêx\¶îß]ªQc€‚3¶Y­d)íÇä§è-ËÓ30LÄ—¼àùµt@mGÅà¢ÃÁúBÝJ«*_ÿ³gFCÙ|†´süÇÁ8úJ8ƒS™gó»Î×p¹uâÆõèI/$üŽ“ÐC%HIÞ=U›QžÀÉÁ,1zG˜¬a±Ç‡<­oÆ^kpàŸ6gI¶0Üï¦ÜvXÆo oÅâ…<2hVÍDv±µø{vÚÃ<}«¶4Êg’¸Bf¬\M%~=M¬ç&:õFj6AP ¤þ~|F ëIxR62°Ð¸9Ó»´t•F“éõ‰@‚ít›°kf¯Éòþþ$Aì¢^vÕÀÑ m]7·¹ƒí¥2]êRFCžÞUÁ¹—Äω煉JƒHÈ2‚w9t§¨¢£_Kì)3ü”ÒBî®ÜO÷>(…Ðú„vÚü.‚”kvÞ k,ŒJÿ»ªEæ+A! Ý§5®pÓBáµV“ð“ßÎ~‘aýÀQF©M@"]ÈoЦ1„z#hS“©4 áÄ<æaÚáàˆ˜c!`R¸s^y`ºöBŸ»Á0}ˆu§QÜßÁÂZ _»;ä7â×}iFanüº:Ì}¨} £A •æ"w¿ ñì!Í< ÁŸ¥ùɉÜYâþ&–ÎõôPJËõ<¬’\8Ñèâ§¾¼·ì®W¹ªºÄë#8j~tj¼Â÷¿Âv¼ˆ21Œ*ÚÛX7¿üL®ƒŠCõÏWNÞSŠ„L‰™C$Å¢…سâ’B+NÕcqb™\TiU_ÚèÀwù*p:Ñ&hcš(ñŒãES‰ p¶íVüÆn2;RÔQ™ @a¦ØÐ³Æ»ŠLúäãÈ0;ßÈb5|P8¸‚ÉSàÈ„;p¸Ö8Ð6EÒt'…ƒÉ+ µtÓÁ­¬óSߣLáÁ#¬ oß}Ä/êïíÙ‘¤£o |*[öeòsúçcèñ¿ÒÆ`x®ÇVHÁädú›»klp‘`q 0C3ÁáîÞÌ´Ä*óhÊü¼ìðÛ'¦‚xüåçþ8¸(ö0qìî𑘓¼FõGTœLººA–hÈ´»Ë<@‘7×…•ÊFpg÷<œÚFXÐÄ«ÉÉñ“}{ÄKÔËŒª-"ðë')™uíøy‰}ó1ZŠæsj)žL3ýZh‘úƦ%•[ F€cŠ8 ßù<Âñjá¼y Ñ&éÓÝ¥5›¦ØÅ.˜ðÆÃòEl=Ç•r×6ýBBjÖkyǯå NÔy7Ó:ÌæšHû=+@\êU=X –¨ÛJÒ³F¨›T(¥† )þ„"VÞªOggSò+¨ä= ¶g>ñòÿùéìííéìÿˆâÛëñþúÿ ÿÿÿÿ ÿÿÿ¡åäÞÔÜÙÖàÜãßæ÷ÿìíåâßáÿßÝóõüü÷‹ÎoW5Fc©°vVUB¬ñÖðA³\lø64Âbaº+Q40 UäȺÅÒ;Um³}T—9þWldBIoÝå Ú*b4‰•x8˜†W½ÔêeÌêun¼Á-j»áË4~…6[QÂ@íF4x·¼Ûˆ¤¢1»Y¢AŽ1€Ä˜?ÊrÕ‘èö”:Ý(ßÀ]ÓTúëò¯¿#xõ*—ÿÇ*‘ù}£­ýá†U5 Ûj¢4x)_žk·M ëüŠóØ6T8l é ··WΞÄÇB?³¨F|ðŸEý™1ͨ™>z4•CŸîÑ[?ŠÍ=‘ïü½¾>íø4Éúcc›jˆKÅïAu»Ñj>ý:éi YWé§ký§¿fæÔFõ&f^·ÿF3ù­ÙähùômGÞ|s 1È5•ù@W °ú©Ä¾jÿžW„ú&k‹<Ûù7úQ•û ù¿å ‡¾SçÞÎ ÊP4ñš;;‡ñXs}@º©nù%²Œ%Ô˜ËÝ(ä©ü¸‰ý½DóvIÜ¿_Pñe«ö~aÙ{.Œ›e?{_žŠ¸Í?'°ÂVú$ß!í„ß0]¶­bHª,X%00lŠåôkž™ Þ©¡ßþ {Ê,\Ä®w .Ó7åZe|¯"b¹f숌/pXQ’! ¿Ë%A͒ηpƒs>V¶‚WDîÒz\PPãÝ-By»@åÄ ª·^kÕºH¡ÁM!ÀÎOŸš Û’µF¥÷ÅVÒ’;Ö’–¥ ’Íÿvhy¶Æˆdƒm)'Ž ±ÿ_8—æžn¾î9^“äšÀeò…Ú…qd„Ešg¾yû53ä(~‰ ÇöGÊÒ ´¬üKFi¿3Ço'5Ð$OŽø£ÊqEÛ®xÎpJûÃëT…ï^f±KÞå7~ù׺ïÓ¨½x«‚–csªÿ7/-3oVRçÔŽ1è2¬D-œO„Ñ@‰¦¶"àa‘Ù•fNüÍ@Xn  Aw»¶rmä¯uB‹¨9 Ï_Žÿ¸ßkâ»­õnë¯1Y)kZ¬5-…ít5¡E/ˆ ð"ï°ËJÉý”æ“ùrïô†ûÝ$QÃþ± Pç>ÔšY2‡ËÊÛÛ1ÍdšŽ±bpV4ã²ßÍcÓ¿ôòw£ê.ßyÉŒMâ§SXÍd*Œæ ñ~®»ïü±uÄ–°Éƒ.ëCRÇ0tì•¶â·ûÒ¦žêm³×!îh[¡U¦õ±etn9§&dãC¹Ë?A [Íýq÷·Ê[Ê\ÙyÕ/$÷iÌ^J {u½fE4‰9èÆ‘t¾Ð¿räðF}¸|È B´G ˜ŽVï"jä596˜ 4€‹øäÞɆÚÒ¿;tþý)yÀ\KðYù{) pÞˆ«‚wgºÐ£F´;7²VÎJ?· @Ãwmðdƒ›Õ+ã¯Í‚ï!ï Ææ&v€Š^€ÁN}îÆÄ\;—ˆ¸÷—Ï‚¼ëü°ÎdJ1—]PR xkË¢—°;E¨auµ £§¨ô‚?L¨ÛêÚ•^Þ„xIrûP÷Jxxð»X0;s!côdŒ÷å/ ›K.â-õÇÑÞ#Á×åo>Ÿ]íÙ#ÆwÙ¾p²RYú§Wk‘Ù”vtQ bsL™ÂU‰¬Km êSØË1éM†7‡Ê¸’ò‘˜Ø·LVª½Ïñz[+aÖïÚYÀgðÖÄÒ÷Þ à"Z¿k1ŒÄðöÄç«qVÓÞëÅÁ‰Ìz(çÕÁÖT¹ÆN‡²ïëžæ¡Ý·ôŠ|$jŸ9U½e—U¨ü°ÛÞFyøG{ѽ„ÐÉ‹I½›ÖU!?ËFqòò±[õlªßí;} Þ¼qu"S¿]¨§Î21‹¬µ ±œPï :‹»½ÎGu¿¹E)DöÆxC$võ”¹-HÞöW„s”^¨?c•þ_»RÿË÷f®ŠÓ0‘7J|É«rŒ›eçÛ¾jF¥È #`€‹cý¼i¨…Þ™K0òÄ.Œ¨eˆ@xrI,Õ” 4‘ôÓ¤rèÄщë8¸äeüU‚šzï$<ÀO‰•Ú&K{û™èPM*^ê—€î\^»T’§ü°Ý{¬ƒäÅ¢ãÍAe¸¦¬]àk~ó:påéZ/J/åT#f¾X wÓ}û"™©ÐîïÊêÈ·ì£`€ðÐÃ=ì~ìJE»úmj¼–ˆX¨¬íÓf™4ðŠîX£é¢™€D|.U6›KH¨%ï>¼Ú¡†ÔQÅAðÆ|–)s[Ñs”s½}Ì dª²•þJŒ½Ë/¬}Ž˜ºÇEmÌñØu:ÛGS=¡yÐNÖçúh}oµ&ZÚíºbŽ]´¦¬Â,—5µ†=zç,0Íî^Û¹TaŠ«×¿£X¯ui²¢üM'µÜ»ÓcîÖkrÂ"W¨„WÓ9Ät𖣩Œ®.”Ú½=“xm4é%ÖÇblų́¦˜ó¬ÊÌ?Ô¤qmM©Óv–ÞŸ©hX)ÌØ|Lð7%³JbçÎêÈÏ­@¥iõsAÊüI†¢Sví+¡–B=ÕÕ2u»Ã%Æ`¥P9°ûƒ3JdmÖ°–ØQOȵSäZ¶´§üBõv]æ±Ú.ýi´®ºóÝ09"«â=êKyO;½=«•nëEê¢ÏÃTõêkýPQ'”° ¤y=}\‡z™±Çíq\Þ‘ì˜s¼9¸v–SЧKÔ±p£¤ã*ÊÑó›þÉ|„JR¬u˜£4·çþ­mªì ÐP*`aÄ#çäÎà@ÿ 5$z-ki s» ï_ô)–F/‰Ô5׫/Äh 4ŽpýùÆ—VÜuw<ü®ÐQ\ lW…Lý\ë…rè'eHc6b²¥OKÅlÄŸEGUö+î^uiíÎmûS†Á‚¼¼¨Î™w A” p$+ù€4ƒhê°m%RCs’Y1bŸ%½ÈÛXÌg®Ø~í»é²›r‰¼ƒxPÜ¢’Œ„pw©¥ëà¾XQDTäãxQûö4Ë “ŒYNåt[©ª¤8É:UïQŸÒ3迲£ÏüZìOйÓ{9Ù›ÛIÈHXM/]XCnú‹¡àª^sµLw ü÷ø«}GðjÂ\í¶tvýžõ¿ôH`²ÅX>åÏVaàc0ª8ðá#HÞãÙh%FÎd2·©BBmÔ«2‚-¦PúüJ¾`Ùž‘m²þi”α#úâ­Zíï»éW`*\庴‚¦Ì­uVÀÌæÍèåÀËç–ë×ù[€¢â0£)0*ç¤×äjZë¸ãºJ9¤n!n&£’Ö'•¾Ó.&•×­=¡x;Àr éÉFuüKF¸xK¬¦‰Í©ßûäjNúˆ3L”LÄPrïÃßLÒš“ÝGæ¾ÆFdðôŽø—u”4ôÔFg'á@‚dv*Òô•˜†Ø#ÆÙ‹/Ú—Š¨„¥9²Q¾ÉŒj`…ÂÉ~~=ÕHë&‡ì‹¨‡T#Rî´:‡t•T®í,¤I<šæ›çÌEã%Y5°µôÛ£2nàib7ý‘Ä­ûH5B°†P{Ó¿Rò6èÞ¾•ɧðà²^–Oesñê:žÒ1ýÒzÍ‹ë¯/\¡†ßñãVûÏÃ(ûT‘´óD'ÙüîËýEöJî*Û—wþxrl˜¹&oýÃ&×e9 #0§iÐ+ªVˆ¹[ #aæNu€Ê2«-ŒÉ³b°<‚½:ô_yš›ãÚ~ˆœË£G¨·šÊ…'fëÿ¨›î-­…‘~MuÐòXÄ9b—hQÿ„Ñ!;¤¸õØÂñm+z&*M>F…€gö&bžÞšÚéãQ«-È9¶qéñâ˜'>æs bÍõMó&ª/íEHVbåw§=5k°¤èt"a YTh˜^QìïÚcŠ(NU…A ¤RbPÞOr,üLØ%c󕦋L4“fÔ+ß=å gO­F˜lI4s€©6±ßZ®«÷¢•‚ô~õÝgõPÿ~Œ2Ïâê8ókÖª:r ¡˜2%™SpÍgmö¶¦ÏUî£#AŸ/ƒ}ú… d­¢V¤g¥oµ««+ Š\žð•èBH¡àE®±g|aÞî)©÷U’P¬W7¢7 w{øÛE~•îX7}ÞùH;¸¿Ó›,ã5£æÑìý"§ÛwŒšÆÇ«y{~t¹Î ²0\„$Ä™QÔ^5»R¨‹HX'ìÊÔ£c†ZéªÔI>CüIòø×³ËáWù¶5| aËœ'¬•øµS·–7,êì°Hø´:úöb¾ë×vË£ìµL97$“7°Û)Òý…tÏ!¼B±Fh»ËߨÄr‡Üšz£ÆÆó×aK/ä æŒ®|Çò] ðñ1/Í8†«QâG³¥•ýåÆ5·8n_‘¢í›u°ëõ—9aÆ:Á!Nþ4å‹tUo!Œé›‡ŒZ'2ò¡F\Ÿ…šë Bus(Ú;ïc×ñXø?÷a…ª²ö-¹`VÕf‡‹öf> ‘_~oè¾ËU’6П£I–åV¸È¥ ÑÐÙûüL°ûŽU¿n…&|Õú–ÈgŠŽÍî¥[ŒísóùŠ…‚–µNCò|aIØÑØ¢ìcÔ ¬#W&2ñI?üáƒì¨,W®–Z"1ia°yFûLÂt¿ßJe…8u9Ôd6¨a锦sUFÁè™Í$e±—›ŸÁº‰e'Öâ§{-m÷58Ž, áŽúÚN1L¥OO¢ ˜”sô †AyP§¡âÞud7_(˜š3ú¦â†ž(ôÝkyX‡]½½+\ˆ’¡P7WÓÑÚÀ(² FUç4PP7buQ2;åLBÃÐ5X´(ú{°SRüM2LX>)(WÍÝdý‹P;Sqãâܼ ±kŸt2ÍŽ{¨Íc>ˆÐ€uH[ö+Êw—Gkž-I8êèÇ*'R¢=ÅêÇäïê2\üåº0Cƒ=Q²Zgzµkq¤‹ÈàÐ]¦s/39òd”ÖÁnË?ñ~$4L©ë}Înp°ßìŬ{о%ˆø ç¶xÕlÜÉÆ“ÚmÜC"Á"÷"½å?¼ÁÀ0òòn‚ÇãׄpHŠ|$5 ú/òe´£„jœW/žÞ£CÕj!Å9ÞŽ±:,‹*ù´µ¨#’fŒ¨0<€Ÿ\dc®=ä'D¯ÎrcÈ;•ü°×]q†ŸÍ °EWÆ(MäII±ÿîPЫìs§z¹¡²StqãeBr7¡ôúŽ«¥±ÏA žZmKÉ&¬lÁC}Ší©‹óÓ0±¨3ƒå·ÕRr÷-¯ êÉrŠL¾\¬HQÙÄ´4zfå&è:t¶˜†+1ˆÌqè ~:³”o RV<òþ«@°hJƒ?B–Ã߉T;Â{™I±ŠÓ›Øýd¯ §lÞèvŒKp]ˆ“ÓYTüh€³·›AeÆÞT`™rììɘ-9¦ç]øXGçŽÄÖW™¶Y’‚”a¢¤kŽýÄ[xwl|S¸8ô&‘à)íè¿kO×å_ÐRWljÃfíüXÜ5ù`œ"õ–È$Ô2ò›uy]43ˆÀì}ñܘä„S¶#ºxÕî±—™Y“_KgHò¸23G…6”%eþ§1û1ÌÒÞÒp;¿R‡ÝXUÆb`§…Ñ‘\±Y¯Õ°k#2€ídÑt.Oå€7o{m1 2zúÍå–{0’;èVg V¬ŠŸJyf'`±dLkÔ=VGŽ›ÊÏ Q=,¥‹4ùOj_¨aF&â0jZGÕ«RÊ.Û¼H‚7Æ­d>./±ÕŸC‰ÑµáÌcéƒóˆ>^š9~¢¥I£ù4MKK1¼MeaÉ4ƒGl¶ Q¨êðXšAÞ[{ãd|¨ü.ÍÈ$â4úýÒÝ@ÙEÃbŠgÚR©Gô°¼Râ‹Ò«lp/9.×2{qCd†–У†¸ždývËí{à™ I-A‹c|èü]vÆ1d‰²„ x|¥¶R×á’Mt/ºÖeí$ 3XÙAP%M}*ä“~ÏŠWÄ7…yA{ĕޯp–AÃYê¥ìùïÁirɦ©aŸo X½â¼­•r7`¹ó$ŠJüM0bà̳öáËóHÚT6¨|è(!¡ë7d¿Éì ¢o¼ã ˜VÙ:?³ý» c¾ î=>Y´ÿëûðÈUp!>=ã<~öyéºw<ôw4H‹Å»q7Öwúѓݻ4 Xt¹ÝÞ¡p­ÑmÅûoÿ—¯hÜ6&áwj<…‹F * x®þè$ñâ0›¸lQádÚO`/ó‰a›L¢¼ó"Å‹±5šRïu xàæg{HgÑü`ºsí-V=ï€WbBÈŠ{yK2¶_P@Žf]R³;)Xùà0‡ž“öÏÝ๎ܟKá2/f“ÿ:O± ePU*=!=Ãpˆ#èÁnåÙ¸^ÒJÉ‚ŸÔϱG ßäóçü®€øA]wBJq—:îNbï²ÙD–ýHÉa›“-Jš€ÀRRUŸwÌíá][öµŒgLü)ßfÍ¥ÔŠJ¾ †í[Êë^¤èÞ˜ƒ›iÈì*‡ÑþÏ®ØB fAßáY7o#W‰ýC8§™1 žåpeËb¥Sº\›ÿ?ËÃy¬w¡Ò$3ˆl¼ê-™‰ncôLÖ-cX‘îš™ÅRœÛÜdãÉýT#¨W5faã/vb½OâþœŒüë ôc»…wô¾ $7ÎoÓî‡-ßuâJþvcŠ"Ï}Ü¥‰»´Ûx­êŒ±±"K&¬•ÿw$SÕ,²Rg# ˆí5¨RÙÁÁ½°:Ýþãü°b².§†±`9HÂ>޶¿ß¦õLQddֺܟuª°Zå“XÐ|á+áY¯ÄÖ¡Ã9šv,dR ú§€È#?H]\=óÆÐy¼K„¾ :ðfK¤”Œ#¿><”b…ÝD¦-!h¦Xû@UÇaÝT½ƒÕ)iÜOw—ÇÚí·€ÄÛöp¨ Z;ÝŽ³‰õ/Ó×eNÌvN°1§ìÆ°Š¸ë/´ð<ƒaô„4“‚‹Ù9çØÕ_\°m†å<–æc¹DcJÀö-þ¬AÆGðÕñ)+£åEÖÓs9»W†çYÑ@[ Yb¥‚Ê45VpÉrƒ† ­ÊBmnˆ¤>3–‰ÔÝŽXè,µ’¡4ã6T¡_l›M¸16©[œãêï0@ßP†­Ç0]–ùˉ£kàN”Ù÷o"j½;Çr³®¥ j#xnpZ·ÝÖóˆHÂ!ï&«°}õ¥P$‹³nJ”X„MH,ÿ1,ß3 ~~s"Ñ+ˆ;_8juQÕ±®lÍñØ<³©‰ Œjåå<[™e{$2öüM2;³.ÕU9”G•ì©¶VµÔEÁÿÁT¼ÛÜ‘9ȘÝZë箽ðKÓöŸOnÁËŽ¡¦ú‘Þÿjäef§eÂçß5‚rãÅq)Ж·÷ƒÃb`±ö‡ò›pr'pÞ<ªB€ÝuïÛ@»kÅ|½‡åo*Ž•rš´¯w_‘ÈÌè˜Z±˜¹~q K`Y0bÍh´~Q…nŠé¥Ü{lÙ¾Ž[Bêk«#ËàWŸTe"çj¢[9Æa…þ‹ü¢oK·U +`ºÅ&(ÿýÀõ‰—ó–âÛÇìi88o̺ñ@oŸG,e.ì—yÔ* Îr§,~jÐèF¥f…AÚû™#Û§vp.##¾Rvù‘ž¶°¶©»µÊYø-è­3O,¯]6µ–Âá¼ì79lüL±÷ùÌéÑ®âaœåQ¯_è{à§oÓÙùÈɤ£QRl{ujrÙ­¢Dqm5ÐI§óÔÆÔÔ£'넨¶íÒg&æ˜%%¿a7Ä:ôÿPˆ8Ñ×àáÅjãðˆ‹¿Œø PJuy»Öe +xIäÂÿëò{¥‚^ýÙzk¼òc—UJ>‹$cöcÙã埈œ'a è´FŒv‡Z¹Ã.1J.çÜKâN–Æ£›ë´eõ+Ȱ²ÏЦÂù’œ½·å¯~RRÏ·ètò|¼[ýGüMl(¦!î+Ö¤ñÓ ’¡¾†Ð þ†í¬®”ëÈ\¬òš(¥º–åd´¶øfWˆaö*Ø=k¼0ŵê,*[Æ™iIë-ìGïG.Y.Çw*ºõtÓhÍq®B*:Xm+Ä8ì†ÐÅH¥Ž…ÛBaD¥,“yæ &hÁq›¸%Ì N½H° Y¶4qGÚ¤7¼£¹3az¼f4†œVÐQ.óâO s+hŽÄS%ÂTWWJ¢Å˜…C½þgs‘ïa Þ@/ϤTëwö†¬ŠžžµBò%üIbJ†´Xz#lQÐ`ø¸S^jK„ŽNæ±ê§7O!pãÏ=ãóßCN¤ñ˜†æ; ÂeoÇ–ºúZguR%oµ^Ýñ+¢[ƒÏqRÉKp—}UOøçp5€ëûMo2¦S\'lÌÞòùõÚƒ¶h‰º$ääõîH½ùZíűy膆ÌmB¼bøsˆˆ‚]žØOÞ7ÎgEÓj®u_áìhUªÃÓ8ñg$ÝÈwTùGnéx¿Ô ž€`ñÍ[É%Rg¼H„Ûʰõ_nê‹u2Ð)l †³üMChçM@\ØhS×ê¯ÄÌ:îßü0NÑÂ]¯*s@ºÏcÚ ¡lv†¡`o,»[Þÿ°ái4Š]ûnB߇ìq’2jM ÅÀhö-nt°`û¦ß2£Ê»«º•¶$ã†W½t˜SÁ+9KšLãà^ä•_ܵCVLeñ¨y” ÿ´8augÓ¤Ÿ³‹'OJúÁê ScœáçÆºë%TŽ/µâ©Ø* 7h_4ªò;Ã]õtU1› ž©“#Ÿ›Ò dàÜ£ßBáÅüMÛ³;ÝR’ûb聆_lS‡¦Ýßucüú@æ¾]B(ÈF=ÖŽÉÁ¼|§t"˜..!v í·Ú/*V¼TæûkýS¥!£›IǃøkãÚUj¬ùC¶•œ”OýÿBKï+²2Fz-ŸŽ!“l} Ћpd<î=…–ß±­žŒùzâ°X¤Å»å¢`ÜL.å;²Ø·‡=i’tø¬>è–±GOm݇Jç–ç¨Ù‘Ÿ½¦XT--NÖ©CÁÖ˜xû•¢Öõ„Ú¦„¯èºqîüøŠ6Pd“.ãTuªóK5¶ÿD€xZØj‘ÑÖRžø/÷˹Ç;@{½Z1ï2ÝÀ}޹ÏßF,q £›bÁ=äËÊI²ô‹¹Foéé£íÞ‘ðA®?zã½™AÚ*Ó=kÇ` ž£íèCfRcåà«6!<†buE˜i˜¸ëà¬*=nì]Ý0^Ñ6åf5Üï c”t(a³óŒ~c?ÎgD½mùYܱ*\$1T`± (Ü’JåÌT[Æj…š ¤L¨tî˜m¤¹ÊÒb1î€ú±D;üM0X,a–TB+®Ý…†©DV>V-‰Í3”=âÌ{p~r<´’À7ËÑðxOËÈï ˜:xÏAr!þŠ01ìÇÙeáö·¸›9cH@¥E\‡þtÔXBU¥rQLù -7ÊpLi„½jÒ”à{}iÛ÷(ÂÓuœíá*ŸFÔ¬™ëoF2B3¯â­q¦ÈœèªrÆêÜõŠÉ€(òB>›Ö˪Ã9ˆÔ‹¸¦Ffr€Ý€ê¸/ÁßAËt—ÍÔDyÄç+4 ¦@.%94­#®YÑüLÒ\ùZê™^`ÙÌû? 4ôý¸EG¬èBþÉ×€ ±™uãTþ~^±ê½°"Eâ ‚æ‘þ8Áƒ“‡ÙlžÙ&öœò•K°µ<`‡K©¥äbËgb)NL¦WiM„äboÛÇÁ˜Û^XÖFNgÙ«Ô‰¨çTï*xѲ¡bQ¡Þ“Ä’tnl»ƒ à+ì^}À»"ÇË0W¸†1%®ˆ›}ömîMŸI G ïŒý»šŽ®%(-F!æ‘®ihìÏëgÐ ;WDsPKcYR ŽRXª2üIu/aß'‹jØ_¿ d¯'6«öÞ›-É0G³´òa:JN^[²â\×:ç9v?~ŒÞ¿¶oݘãfæ%Z‚]}‹qWÁöv˜§›Š†ÝiFW¶1Ⱦ¹+Þ5"øMÕCÓjÀxDÔМYš‚×-úò„SAf¹ñ|´™ÍìlŽp|_f„ýÚÀh ¹ûƒßmŸnæ òlÞëÁî æÔñ,¾.<ü¤"^ !xœ¶))%}™ ©¨úG„¨!Ъ*ž¬0á<ÙlZÙÓxeŠšV›Þ º¶Mõw©þ-)üIâ Eü׸œ# ç‚mm¯®Uà¿Ø ~¸-µÐbpjý²ðÒíãã°ó‡pÃ\.cücÑ@ôÄ´€îÕkCÀ¿8»U¥ …¶Êž¥-@ëDz*BýËvˆ4 6a”TŸ^;L"!är(–äÖö‘‹K¢ãáÄNU~u{ºi„'ÔVo>¿úó Líæ›Zt½å8G¹à°5á,À­`‚ãk&µññ¢:{Ý¢8t úÚc¦Ž ¤,%öíT¯ŠÛá$Ãò~ºŽi¬%ðOD†NÕG^ U$úü÷@Üü°vQ°HÚ‰çed·ã,Í qs™*3_˦ÊÛ÷xž§²›Y„–J !ç'$ƒ‰º30b)ÀňDôØ¿žåwTI¯†:1;+©îó¯C=“£6@Ü7ÑY1Dšæu»¯†£°îh§œ“ ü³{ JoÍç¾uK'fÇàúW6ПãïÕþUtìŸHå4@:*v+¦Õäûü]“ýmm ÓÐ0¿^•*çÎ9 V `¢²——fYü}b\½¡µ¤­ì_¯Þn°°P\z…YÏž/;M½Q„!ág"h‘Q2ì„8Ÿÿp¸Özƒ‘Þ–F¶båŒ6Ïz¯|èÛJÅ É4XÞ¯%™@º‡÷ƒù‚WÉ™Ip9:·ÎÕÞ¢S­S&ÕÚæø·ø´Ê-¢Ú°´5UŒâµ!Šá söbDÉNsÚâbyC]-ÿÐý=orÌfºX ðÕIB°=wº¹ã7'¸”eîøßiÿ™N¿Ëv:Q¦â%ZÆ5Ð¥-i5=ÃnÙñ‚žõD>F 3:òÍݲ UÀò<Ö½ƒNôT§Ç´‘„éþMc‚Ÿ\Áœ¦Y?j•µ¾þ ¶q¼tÙ²ÐdEüLÐY^"ØõRÎa×ÞO÷†pÙ“›Cèh.†G÷S²£Ò=¡ @«¯ÒNaN^]Ò‹…ˆ ¸Œ|v’(Åw[î ‘I·9×^ /¹¡•fý«ÜWz‚žíœä|¤Œ×Ó†®6êG3^b¯æ¾RXÉèã'Ùú át÷§![h|÷ê_c`€‚§õ’bXl+SšjžbÖñå0ò¼œ©Y碎êÿL ‰TÿgY‡ú¡+JÔ,´"ØYM˜1˲fÓ Êí™aÒõ*Ò|­¡ßy²ÿ_Ü×u¬ááä+iL¦êòˆ"ÎRü·‰eלå¦bKǧÛƒ#&ÛeÓŸCzѱg²Ú´Ï²’Ù68¬Áu5jœ[Gâ1‘ {<Õ0x!›7Ð ®NKe ¬ÀjÈv„¢@å:s‡—°e4 ÎÉ=b:_ÆÃÖrÛÂMia+ws"Â6î¨Åre3÷‡±®ˆ °¼Wh=‘Î+'; Í$$rr(´î-¾N'_À1hU¿äYÌ töšïd#˜Søe½~\Ãú0¤bwâK$Ä>[ F99—ô…qsTìPÖAû|Ô¨ðö:ç“‹"ü¸†ˆŠSX,){¯c‡èþQR-´÷/ŠÄ¹ÁͳÂ$ë"¦ÊEWÒ¢ÓÑYÉmF P+“ ý{±vaûňFÇ„¹,H­?Ì\•Í”´);Ü=¢j3Ëjå9°®@ÿà›V.ÿ‰NÚå7…)Ä.Ñ8FN'õw³Gòö dµ{CÑHæ]]é/ddĘRIQƒÂ3”¶±YrŸ‘3£AÑšKZ+ykYíˆz¦<@‡ZšQ˜aëE«œkR’€«TÕˆ·¨ ­äÐDtGáqŽ7jÎßí›Ù1;í«­wÍ@âü¸nú׃˜Âö‡x}‰Œô^hŠ|œ#Öú1ɘÄgk¨ÿ …Àgx×ýµnçT¯*Ym¶žoKm‘JB7„µ™„ÊÀREíâ“[p"`6œs ãeO¬Qe­òRÌÉ÷1”sȉoÒ¬}JÚ‘U*,Í›ñ}KtË~(©€er\Î1¿Z‚·õÐU¤Êá µ9Cˆþ‹W}BÊñ€x‹'MéÊÌŸÇ‘·mA]–øÙV¼tq.ß6¡¦­·}£ ô¯ö½÷“ßâ!«åz“wj Ê™Pî¡PåIΤ>€•3pîìôO%?ü¢iù4·jµ³žÅY–N!~Ž_¹ëå„G¢ãý`ÎkKÊض~¦úȳÈd)™‹¾ŒˆyÑÿ1”/ò¤éGüMM€Rà£åfȦ¸¥¸6†ÌJ¥…uLϰªïWO9j¯Ð†t® ªÿLp‘ó¼È½ï¡4ÃpÀ”ôÿ1 雩kqÖêŒøp:/4É&ï Zn|Í͘ÁF½cÿ/¯ð.m¡]gWöÆ´§Aß¾;±%?ûîÙ 9#À4Á)OÞ"5+L×—¡*%B¦ç6âùQ}f:_ü}bP‡Àïç†ÆŸU|’7«Sp{CÄOÖçÚÎÿYVDû1#]V ªK|¸½SIÄÐ1+ª ÎY† þXŠ>òé{M‚²J‘‘(}­UðIJ˜ÆÎáIÂe1ÊM,ÑBÙg–^ϧmÉŸYó/ý;¼xSý?Ùíµh8JÞÄO­o@r8„êb>ŸráÖiÆ©³s® ¿˜vµƒ–’x†•m:8‘6 ^7z~‡7|Ä67znLèìãÎðXØV¿œüĤҝ¡té[±6»ëÖ¦$ŃâãÂéiw' ·d`¨Ç`w~ù'!ê…ÇÄ 4}{ÀæŽ+ a’™‘ýéºÕ\®Ä5µ¶ÑõÉ»»¶éÆÛK˜*š|תU –¼_Éõ"½RQË">9 ÑŒ S•Ó(—Pu¼dÈoþ”º8ZÛ‘wòYêÏÛáP‡²4Ï!ºI迬kN™óýx½£¦U’Þ*¼Ûä“U­€#šÇÎæpÄ“uö—ÊPÊzŠBö~H¸D–gif L³1¨,w½ñëI¹oGvÉQ²eÉzåæ’_sP„5ÙõÏ…0†ÚR~sП²Së³<6_¯à;Û\e™Êh÷¥ÇüMüIÅsú„‰Dcâ0ír^{×’V±4†ˆs:>‰E%tboá*IP[HôçKêµ •ÙÒ%—a‹lR’/Kf;gŠáü©²Ø x'íW |Ü Ò__„$mTèò:~pQ J·”1)Ûa/i4DÓRÅŽ±;ÏZÀ .xø^nizH÷DWC‰<þØjïDl˜ßK‚9û¯›ƒ.ãøá ÷ÌP›…\ßÙõ=xÆÊk„YV­ô“µršwRÈñuPf0xn¬ïiIz‹>#0e°:¾ÓžüL»IÓš?¯ê4» Ljá4¸w> êlÊïuéÅѵI392ù·8J"öÈþÛGæÿ!Ð 4 ŒCç ý†y g5´™´ñìKcÜ€E„’bÍ –yR.¡txüê–ÅâkVç{ŽÆ‹ðI?ÊÇî¥ÀØÛäŽ&¸ºÂ¨àsmg$¡ºFt\¿*Ì‘ -•Y×+_èï£m!¯V‡Ó3Riïñ™ù;ùÛ·Ü2ÀMu¾cB“™@»[‚Qýå@‚NX‚éå§ö6¼&!»JCæªÚñÀHÎ连O¤€‹Á»³.TTÔ÷œó‘'Þ0óhü¼à|GM’&¨¾…\/_ÖbAÑ£êÖsxM ±b~5÷tð-9kš’²éòUW}–«°,Öú7’áäÕRS¥2—Š?žŽ7ëÁ꜇«éÀÓI)_îÆtüj/mž¹b”‡€dÖ›øM\8µ'¿[}-ˆŸ? `"Mqä 6vëæH<HⳆ¢…§z*HX8Yþ×ÀãÝ\=®p²å~©f‡€q÷Î,R|BäpÎ~ÿ&2œ9—ñ³VÍ jñ.óf¢AjÄ®‘“`–uß0Œ¼Mk2böÞn¾ J9,SrJ%-&8×Ô¼LäadràEÞ+ü»ÚÍÖŒY!íVäù<Úä’ÉŸ¾„þŽæKJhPtv˜7’ì¨Ïô[ T™óOеDÆQä½³ó¬>Ÿûè]‰õÉ ½ Þ²F.j1ˆ®–ª¦q_7\&³êhóφ>ÝŸ÷(Y÷ª…g€õ¼”h¥Ñrék£Q­yÍY…uæß9šHÀþ^TÁp‘¶˜æO('«;ÅÔ›ÕWÚM÷MøB§¦ÇàR¬mèÓr³M-¤kEÝ •MÎzTõÄíú4¤¤™è.lSCPA™ßæKqrÛð½·aw °AÐzÄÉt‡ŽÝ ÿÏOggS€­,¨ä>Á¦3Ð<ÿjÿÿ’áëìåîÿÿpÞéôôüþÿ†æò÷øðòÿ…×ßÝáåëÿ)ÖëèæáÖÿ*ÜÑÔÒ×ÕÿTÔÒÕÖÕüÓ4ëþ®]Q>Yr!“ÉñC/”M"ö›Öç ™4Af¬^+`ò>âñ(`Ú÷Áz‰¸]T-ÜXA«@t˸¥£ÿÈ\ý€âî–.«²L²@Ÿkéz( +€ç‘ÝÖM <áL =f_yRh4/ø]WH°]i²àOФ­,ø "ûÛž£ G¸‡Ôs_Ô,Ý!‘«u­êuîF ñÒ¢Þwå%U¨Üˆ}8YE X Š¡Œ Ixá{ˆè,Y~²ŒRŽX’ŒÒ¯Ë‰G¼NÆajžÀÍÂÚØEÚÆW@ŒÍ]»AaNT—]xZ¶TVßò4†-WwDZÎZUúU(†aÿSÈø¸ÜÈ%Üv択°‚´êÏrJ›A„¡Dz€AW32ÏT[gyþ2(!|vå=Uå/PÕ‡¯­üHF¨ÑêÁµ9õðÃ;oìûíÕ¶ŠAB²évVßáÁ–_ía%üJŽ™°§9ýå—Oè?>3¤£B1‘F)¿§ÅÒÛú4ÿŒ#N|öÜÚ1#ÐèçAJŸË„¦v”Ò›6:/é8h^ã4‚ÔÐŽø¦ò´¨é Ù_[_£Ïùƒ#t2TЕ´ Ôœ Ž”y¨LQÓp",9,ýŽ«£ øæ#šõïkŽª&þû5o>&Í^–.öI…“]¸ B…3X Užç Ë^–ßUùAbu3”>†ãBW‚¢×¥çÕ¨)¡¯c»ËþôÕ|V»^Õíµ/áÆ˜÷š1m‰kS" Ç!)Õ$Öíûî@&Eû^_ô¯—­±‡“åÂdÉž§ß–¦/$¬ÔY7g5°tü}bU¥àG›¶0`ÑQnqœË-‘yñbýF ¾yy&(Ì®gÞB¼nÇÒŽWŸDŽîÝj aêUƒôò öõ1àÊ^!’ZH^  i´§hÿ¥¦ìÙÓ½ ucEÔÁ”ÛŸWèë fFÀ‚¹c8¥@–1®_X¢O®Ùc…Õ0åôÎQ¦§JK¼*¶WÃg8‘­VSeT½jvaÕØÈÞèE´¾ÚVX¹(V(ñ¾jUÎûæ½\B}—,}f…—gÏ. ðã(ꧦë¸÷¸±°5÷ë›*Sßk¯sù( íå¦eæ1¹ùpÛÄ;_Å÷…@·_%ÍrLŽ­rú\¤dû²µªN泑ž©“áãa‘6pü)þÄ`—•SÜ„¼1ðUaÜ3u½+OO=d_%ª‰1n¹Ú¥üÃÞlbˆÌzRö1äå7}sµZ5¥ üJC”Ê‹¯Á4ßyº9¼5Bü°y6zoŒ0”“-|«ã¡Ã%`t×òX¹´ÇÊÇp Y«ÉFd‹8Ľ۠Äׇʖu&¾³´ï èLF¬è@½W-gÇ©Íé<ìb™*^íª£‹ãÁÞx9ü$ja&¥w‚(rºÂ;ZcsT‰íƯC,¬ünßµ4YönwŪÑ^ñG›“…sÖ_Ì¿ýZ¬´²)Î&¸ Z‘Öû¿nBc²\PCÙVއ0ÓM]?¹“^5«°Þ#ûÓ<—è&óüIãW¡U¦ªïf’DŸ¨TêoJ-ÝÁ ð$F@b‰yAw6”²ü¯SdTó̱bQÐ÷–RhiÃY LÃhu§õJt'þÑ(-·ÕFM,-8ØÏF‰¶êoÄÙ@ï6©ÐÀêB«;ù1‡jŽ$ó{z’#ÝÊ  ¦hÂÕšxQ‘Gxz›Ùü±Gð%”¤gªø)ÏJ )·åõy‚»©ïÙŠ{+±ò[ê­øVœg‡ÐyýÇô–£~š ÀÍ/EO§¨þM:‡w2k(hX®– t>ó°qÑ-Œa^v.3"X7½üMžª¥ãÅ­¹½´ðתû´è~%¹gœ„X8—ÄSåÎqK ±3PüW¸Þö¥ªõ$;èú–@µaü·pbPy†‘çß/¤Ñ‘ûî æa})Å&ÝVŒ•›ºx¢bèÃ,c±Z•éU4¦áf{È^mÏuöýÀ‹U¸9ÇjSz)œ8ïr òY.Œ.³"¶¿fç³ëľYˆãï°H{L,{‰Ü_Ò€/4ǺÙZAÒiSB C*C³ð†Â0H+F|i㚯넾j!?G‚ñn(¸“7¶õLüL¾÷ÑôqÒ“‰¿M žÏ™Ö X”ž")dFF÷ÇðUªÝÞ#§J eÎnº /ëÀ€Æ²ÇŠ©DÕœ¾ê a,Ȫÿꦿðîåþƈͅ‹8Z$ë÷|êä1%ëT³ç¶°Ÿ]mfšx¼ÇÒG½Ö˜²¹[ÈäÛPsP…®b§k„Wß›E“?zu®¥ØŠúÂX`2 'Ø.úJä±\ý8ø­—Z%Á”<9Ùwà—~’éåÓó<˜œ¦u¼èÕÎËMáûW£ZíD阱cà󛈑“ê¾WŽ.´úJ¨îüMÿí_ϸý^r—òÿz^6ìâ}z =3XjåIœEx嵨ØÑDÿ$»qÔKãl‹üpX€Ù Ÿn ’À¿Ðl½+è‹þsv9ÐÃæµ3›0@x”§²S«ìXF/1ò÷Õ[a%7y–ÁÖD¸/ÜÕ¶ü$Ì#Ø÷¢骚9oÆñ7óÖÇeÕBE¡÷* æ‹d·ëX£‘•Òî”ó]”wé$ÞèÙ£3’¶×I;>æÎ]EÝ™=-²94fØÄb*£hÚ> 5³à×ЙôàX›xW€5FÐ÷΄3=BÅ ü¾Rãp´ —½„Í^í´¶“ÜÃ,>êfµ­¸p+¥ºâ{aD…¶¥©aˆ’<KLaïϨ¾Ã þQ!nÕi'Xäª:HLÓd8èŽî.ѳ¨­ ôNzä¨8IÔP/ÝŽ‹à”ÁJz–erš>ͬ¤`èbG(VY¡×h,§u®”Ù9‘z”I, °s-éOЙ½ ÕÍ,:ÊËÙ¸'cNÎRÝÀÞ[Îz¡.~çð)°¯l.þ‚ƒ&¥EóªP©[„Íæ ‹´^WÑp =”{U6 èïwMë{pî×¹tó¦L핎7ÜÜa¦)å+ V*OÿXO©Hq>²UôÙN^5rR™‡ï4x¹c> ›üJ4ç¡‘ˆm„àïäú£ï¦>ØåFßvuïÖå%¼K9Ëoõô§ÙÿµETV}ƒŸš×©ÇS\°¨\… cM׆q|†ÈÄÈ`r{võ±iòí©Õ~Oƒ³ÍìƒC€”]OûüXØ¿||Œ [/Ñ =Ñ 2N$–>™ü/°Ïð¶Â(€6è.ºêœf¼¦«ÁÑ/ÁŸY §î½zF€<åÊpS KÓâ ¸‡ŒŽH·á†`þÖœhLþ…·£€E“Å)`F©`(P;¼#F­¬Š°¦¸Ûs_0í?Ê2ÃÄz•샢[#0ËyÜ­å¡Ö+ñ [Ù·GeÇY~À9#¦T?åž=j¼zÿ^Ûù¬aˆÕ¯“xêÕiõ¶ù‡šð"QzLÚë¾CuvçqœI¦7vRÎÈèì>ÂÜÀü6aä“/Úz¯´/: +ЩSˆZPcTQˆ‚Ú^‚Kß/·\¢·/“` Y“0Ø×o.¥ãez^Þ+v,iò„£²vÀ¶“4†ø±CKkŠj$^›þjRèÕ²,êá,Z¾ú15å 7?Áí²Iï ÆÊ¹bÙÞM—'»ñ Ìkž./):Lh¨ePßlê·¡‰|'$,HÛÁ¯Õ ÒÿíVF€[3ï v£ƒÑèpe°|ÝÞãd"´sÍ¿¶Ê.í@Î;£|ƒŒ&>ÀÓàÛÏj‹@±±hš™Qy) (¦X±°FA¾qZt½,³Êë•ZX{ÚXŸÂ®üXJ¤¨Ž.®”=ø1CÔúÁ:FDÕ:5¿c³Í@ûy7 ³¥ÔŽÁßžr¦ê 9dFMtGkË ZŠ_¿°°þ!q½-ñÃw[\W)ºóéºÊÖÔB ­«ŒË숦2òq¼¦\Þ³±Ï]äœý¶žõÿtîÂÍç”Å¢Õm,sŽưáÛ«K6‰‚.†³`å"™­òTן ˘ú)„P ±ž‡Õ–%êþí̽,Ÿg˜¨Óˆ* 0Y~á}óRÓ0fÄzà5Áþ!ß$Ã'¤øšú7¼ ÙIÁG¾rÈýå¤Ùûv©ùDOš1wN¨¢½§ >öþ4» QƮ㱠ˆPñ[<=ó/KS7lZì{ág;ŽkÜÕšD⤖ÿ]çõV{V*ˆH 1È©áÕ…¯Ó¡>ŠžP,ÀB*¦ã†þYÉw=ciasî3êûmpß­”XëËÄ Ëû\ZÓ„ËJ?@d8Jk_?UQ„s@dçÚ$à{$!99|&5æ4ÓÜCÅÙ~çåü„1å7ÜSV÷]<¨–Ö™oáE ò¿1ÕüW< ôFÊW„,^~ìé„í2ãÍÓhäj+ñöU‚!MÅ[»dÙ}ïhLå™%\+êó‹9œhn*¸Ú1Õk¥åå”á G)3ÚQKÕ|µ¡¼7ÎøærÓ”9°—Ö@!€7ý”o£¾¶>9î”H¹´ÉZÔP¹äº+$G[–ÅYÁý­‹utªºÖ!îö.oÒ]è®èRR»IpÝýf¾[›zªµ¥z²á@R1§'˜x½®š7Ùþñ^£¿¸üÇèÌ*ºó€7ìX~•=ë´r›ê2Ÿaj¶Ò»¡1iC%cè¿L ‚§èÈ*Nkhš3^WW2¹gáË*ϾÀ$‘Ÿ²:Xtý¾^ …Ze¿“a<¨o+^Åg×ðð £Uævq6`‘oC®u,Ñ›l­¥ñ?‘Áë|&*ôºzÝ 0pÓmW½Ž³'gr·Ä¿Oí\”(å—;ä¹̆ˆÉ!Ö*¶­(i§‡˜}GB…j“fE%°CÆ¢"aÇì „¥-6à±Ót½I}½§He×ç”ýUÈÍ¥/9»‹ÓÆ.8 §s¿»tÞ ÿql{l\½ W¡6müM”û³.éàúùìu#¡MÁX¾Ã³”òðç’ê@ô"”;êA‰Úa£·À|Å&:ËY–X‹&Èo÷£d¹í"?ñ­€NÞ[‘Ê•!‘ŒÚá) PêÑæàÍY{Àè]‚àbZ•)ã57{F›6VŠLžšâ†_“`\=ufß<œ2ÚœAxù_é°ñ–|gO:Œ)O€¦p¶ Ѷí÷„DTPóø«Æ+%h lZ+‹‚”Qo8#NÂßÕxÈdŸö›*„ðFÜ •–m²ˆðºÃDqœ»0Õ¼A¨üLÏõ§K_×|v­­³U¸6f’‚ú<­Í¹!D)f+6Bvî=(c÷t® ÇiØÈøßbWK]ÜDõiĉ)|ÃVF$ ‚P7ylÁ_¹ßþE¨Ä¾±Úû¸­;¬óˆk¬Z„r"h"£8 Y‘µäo¿ “ÑÒ’í (\ÌêÈ õkMðˆò¶Óߪ?Ì»³I‰ÈG5ÏÖåÓüÎ8Ãå‰÷Úß}¶/úý#¸œ/!-êgd8->Ẁ)9™4Ü”¥}MF01j”äÀîߌIØ}‹g¦(†É¿5©iˆ~·MÆŒ¡È8î{ pü5JRH-x-¥À©­9`yòYÕzz&œá:ºð.‰n>ÒÎþ0¢ÛhAEÂæ û‘2ðTZ!³‘ï,yÁ…ÙþΚj·¹ûopsâÀQy(06ó'¾Õ­ [%ÝÓô’cU6ã±zz÷î¸ÏÇŸÙ ­Möˆì')ß"ÿ[,¶N‡Ú%ôgI;7:÷”Z¾EªÆ›»º%‚,`•“½‹›±”ûVý°v|þ$ÅC(ôÊâÖ«VÉù€©—º'“ùXÂ0NQ©÷Ö#¿M¯^š«¸TqžZ~\©KüW=’Y? kŒ¸À+í}®ü5 ‘Š‹¶ Ï:Ür¿EÖ;‘mû~-,XŽÀ1<ª­úgðâ ‹‹näJ)×ü!X‡ÜDU’§öíóüÔ<Òôm5cLßxÚ«º#ñÞZò8Œ OsSãåòÿ¢Ø–>½¬±éöÝ+`‹z”x½ã FÆmVºÚ•¾½è²'¸Ñ·ÀgŽÓʦ¶éáöXͬUP*nøüé$,å ¬Aéé¬Uø¼0®HËÀ?5*j€Ì×iüY­ µ–¦È¸u5“”þ¸8õ†Ï/ÿßz< ;Ó€|ô„¨»7*8 {s˜·…Jïä+dÒA­~Ó&¹sdãQÓü5JPÞ»›"dL«‡…$T¨ÔHƒ[œœ¨Òþ‡» %÷צ\܇Á¸L_)5¹‹²m>FHëOÓÿ^I¿ÕGÚìiæÉ øÆ6hìímyÛdÈÀÆ, =µ¨m„Õhc¥‹j0¹>ÙÓtÁåsª•3—Ô¸‰Ý®[­>(ñ?äô1±Ø ³šÝŒ`=——š÷¿A(^‘+ÊúP)Óøé #l,£:„ƒb›Ð<ÍÎX4öWGxÜ(Ø-.¦xšÁ@ŸkðÈBUKîSÛìíOe/j#âµã«G¾dâß_¸ÏWÒlG”i)¹4'ªðE\ƒšçÙTTŒ®qzÏ6»–Â…) '¶âçi¼Ùe× çØ}ì†Q‹·.À5‡«ú9üE ûتmÔÒÐëõ²@ÇÚ¹Z‹‡ÉçÇÑxjÑ#³¶ä;®ä8¦¾2¾ZÏœêss«rƒ >9¨¢Ä~zÆ‘lþ.¯¹&œK½IäÎßÐUþáûXÅë÷î¸ Üè$ÏוÁü}\!±Øt:Ôuè6ÑKo—ýnÁz©æ1ۇܵ_ 1¦ŒS &l!ƹ¼ù ©Ù,Î5¡3œê-GE&M¿›zãY7VxÝÖ½ ^%ìÎŽ÷XãM¯HÃ~ÏE&³÷i'æë>Û`ZÄ{õ¹&õCp\v¯—qp4ˆ÷f™Âtõ;™ƒäU©»¡·rh8x0Yå\ûä/Äp•âÈi°6õ’’Û‡Ö¼´íJà :]BWZjŸî‹f5TŸ¤æ £ K¾–0‹ÈY^J ôœç¥6”ÜjÂãO·wúï|jß[FììÇfÓ­-m©ËPcn­NÁÖï[”ýÔþö¡z¼%üRå†Vû*oZËdªS©;¯6tÃåOÝ/8â"½Ã7,Óß_oªÇX/ò,ÑcÉF³‘pŒ>”.ãºZƒ:(&öE*‘ôá„±Õ ^­y+¹qYöÞP´däµý_Çgÿ˜iÛg50Õ3KŽV‘ð?Êü5MSÙ8¼ ‚ùfôªÁ´ÿ½8…>öœÎênïÈd­iºá–ÌotÔÎ#*•Ãwu¦éó¿„Út`ßvjúÝß®BãÊW6áçí\¾ƒ+.hf'ð|Õ`I‘©&õÍâ–úÃI FœcsAAÂfÖæ#@- ééñŠzñby½j=“Ûß*-ur?ÃKËæóŒ7xçîʬe4ß›ù0{]ÂZÊ€ƒç__3ËšžÂA㕦Œj² ¿$ÎF±œ¼ðý»›‘ÖÌP …ÚÌõßýtÖbÚ+üMc*›EÔÞ’\æV¹]›—Öyô9ÉЉÑScó1díÍ×%­2sM7ûCÍ1·åÿ/.¿&MŸJð5»@gºÑ=]5ø@uª##àŸÌ'¿drÖ)¡q(t‚éëuQÖOÅëÝ…fZËqô¾/?°cÖÃ%Ǧ{«7|C…r !pùàSî.ºÊƒWY‚¤ ›=ÒtDÚÿGÆðC n ÚõáHuò œ¢ÿ|¦:,]5¹W‘ÝpÒírݘâçèÛeuI}Wíåéeîüè†/‹¼˜Iíú×Næ3eòg!=ËI¼Ïq »§ö4Ÿ¿¬ßežÛ6ŒþÓ€@õ=6Ø?rÊdíZ§ø–Õ>?+í¸¶5tê"èaSÙ¥å†à‰×žÉû­¬ußÚ>fÆ–¹ð5=œ÷T32ðâW¹¡Ódy0Ñ ñDßKG:BñàùØ” 'Dió(ÅèA_6å"@fP®£¨ðÕ©OèÆ³Ý)™³M¬—ŒZaÁÖ]CßÕ4‚º}š¾àOX‰añÞ"Áü0U៤aniJ·"3ß´RüâBÔ­Ž“¨P{í)šSV‹EN¶£Z`ýÛ³åÐΆ“µèr±±PÛ”mél¦`øï¾¥ [-+ˆÚ¹ŽúÅ9Ð'1H¤Ôaȹ‚¶¾ÐjÛ¾NþÁå&’d†!-B©<Š=îáæï´W1vv=1ÚÄ<<²n9Ô‰ï÷¹,{bÝ0/,^dçz3)ž7” æK> ‚ a úXnŠ#æ’EEqV™EwÄ CªÛ‘þ2¤Ë?ë­`<Üågé ¯ƒàÞÀ+¶©L¶bÉÓ‡$˜»„~5xŠá8š*÷!ú‘üM° µêd-å[¢Ñ½“ìòæe±Êädß(wÅÚ.ÑBMñoayéˆÜÉ# È›¯’Ï`±Ùh¯!s6oÇ4>¢…VÖÝ06éWMÙG¡MrŸÁdCdœ~µ øÍ\-¹ úþÄ çWºK‡N@ƒ5çÚ”U…F¹ íëÛ: î¹×Š$qx¬Ìg1©–ÙYl›¯{y±êv¹ÖZ÷q.œÅ!öíËcE›/5XAL‰Ðî.¡²’†€>ˆ¤¢wäÆûM§²ÿÜ *DžòÌl…M]-aÏN‚„ŒAÙ€Ú¶ ‡ÓòüMŒêQp¸9ç7=× ÛÕ€×lž¹HáëPU6|í7ƒj›QZ«àƒMjKÁYR—¯ŸEŒ†yi°¶ÅG51í{å|Hø)á2éYÚ ³¨–/ZÎ0–„¿U[0u–¥ß±¦ï u—×€é1>ŽäÂqr»:%]0ª´£@¼RYyŠþu<© ȸÆî;‰¢Ò%²rYšŽ¬þ©â¦çBÑ>g}o'TD ?zÝÍ´æ$ºô›äæ†B¢üR\ï-HîÀ˜`'&0š×´‡\lB‚øuɨ*ÑðЬ0[RšK*“cç8dÜ+Ùþ+ù¥ÈÐam 9„Jîmž„düL»«êd¹kqÆw¨áp”öÛ¹e0òšO˜Öo癦°€Œ˜Úи$•]U}å|!¯eFdh±Þ xx”Þ*j á¢h¡ "FmƒòÛônjËÞ×´¶A4!‡o¡b¬Ç Pœæj]wxóÊéT†Æÿ´û/`bøÒäïe ¶9‘>^øÔ·µ@%$ÇÌë˜MÒíç°àô+ñ1W8;n>™·«œêðÑ»£²tߨØD»b›Jþ§_a©€òŒåÆ|?ÌkDBWj€p ÖÆ“³æ»Kðª##XÙÄŸm8ºi&Ê®ŒüN—bè5N`rRK÷ö÷j/™œ2_DFâ†6ÑÕa‹j„íÝ£-®õ€…ü”Ùì'n £¼:N0êÃ"ÕÆyS#±ƒ¥Ø™ ,€p _@`ÏÇÉŽŸiêw© DŒØàg]@RÒ,]c©„¥,¡ñ ”ˆMÏß}¾€á“w¿Óý³Ô. uäkËOP}ÙÈ Õ?¤›¿¯´R\÷"1/Ĉ’¤±PW­õÑ¢ɧŒìÀ OÐúa¨M•/G¦ùežú°Ô¹+@w~–ø¶¢„ׯóŠ «á#a& üM!À*.bªFšÈQ`{Ü IHa%äÙ‚“­mÓÍa9 Àt÷·FIÍîÈ#ìž^°Á<·ó™ßAÔ€‡Š)O‡p`ù_‡ç™Nþ>–)q|Cç\aÕ#n*º›´FôÐPVWÏÝ¢Y?øE-l>‹Çñªwì¶’¦Ñw9úÃJܳԔ(A«TàüÀ;¬ÍÝ+¹{/fMèù<™Û[×Î9lÞº×_TçÍK?ó º·6ç8£i`n>`ïÓþ‡ÀwF5þ:+‘ðïöx‹ýPˆ˜"ºQ³lÊár(ã(A¹ä ËÜü. S½GDºÅÞi+o)VúÐŽàc4ìeïîmºƒOÿ'VŒ YUm×8>ålã†Öaz"¯¯«bJ¡ëd9ð[abÏ­êÿëÞ‡lnô‚+ tÂEh«Mvcpây©‚*æ žI}¢ç~A´¯3@Ñ:Þd:=?×Cy+Bw>÷4–D¤žX½áæ¢ ;K¸èË”‹OÉïçã:Õ™h°c¨=¢]³Üá2ʲ£¸./Vo3ü¢nWfhÃUÜ©9 åÒ£V½%]]ˆ†ßpüša ÏÏ]`c“Ìà*¿YÄ}{ªþM‡×Ndw­èΆͺÎ{@µ˜ .r|ÃB¦©©²üñÐ?JÓwêaúÙ啘¡€Å¬eÆhv½R¬à{CêvpO… ÊÑøzI—šª3«íã­Ö!¸¤Ñm‚ü52‚BiÆÆ!–÷j©º½§ŸÅâC}sŸÄ~0¬›LÞÖòyÚ¥ Çs ®®*ÉÔÈ1ÙWk½ÛøënçÒ¾\ĘÂcô¯@ß–Š]ðG{9z§KJ³@$a({S`Òpë‚öÈà¯åBq¦Âà mE±‹‰×ÈCÕûC¢‘{ýÜÛá Q²‹ÆŽòíE¬}ÏInÚš š;SˆÔ”Mì1!ØM¶´” G6.ÿO[Í=×ô¼â+½ÀÆ€EÈ¢ ç+:"–Rex驪F’ÀÍrú;ìüL«LŽû ZèȰêëòO=®„rð´»,U¶´89, ¡^;—+à±´5b¯ìù6¹Ôèbª\·ŒÏäJwy‘zÏ)-Xƒ˜v|&¨c¡b`þµsK»¹ºE‚öXfâ8RZƒk8³qîš¡ÎÓSÍV+ó41²‚­þE—€…AZ ‹²± øLù`û£·˜*Ô}|–3¬.dð÷`B°õ-îJbÆ¡@2·=nÁˆ±¿iŸ€‹ëõDÚ¥íüâ³›öÚ¡‚oØõÅNd™Eüñîï9§øôwx IS$Z}õHU£ä±ÿ2›Go.ÊoÚaŽ™[»%XVŸ2Æ’0e{®–v¶?uË2Dóts/€XI«M@a»Á{iV8ØyÕ²ÇÜ}¯ ÇõtE'¯?& ø†Ò¬ Ñ•¿ì3-<ö•Çg'’»ã„ѽˆ&¸¥ßß]óE*ÖVt½|¾=öì‡Iãp4 šdh Ç_ð¸3IÿÔ'<ºãÉõÓXÅ×\Q,ÓHg‡u:¶:ÀVÄÕZ2:ºÉß |˜¶UüL©±E…’ñEVŸÝ¶© eBÉkïýÓ]›ãnyÄØÝôá&üp‰‘‘r%Ãý©ˆ¸eº4xòCWÎY\TᓬJ ¥¯‰¶fÞ®wAŠáoÀ#‡HÍ ÜÁ«þÕ/ѸÍ\k GÐPÉ!Z&(PHø¸q`ëbn¦âºÞM‘Ä1¿”­Ym«ðÜ; ñ9^][&Թɺ±‹Š+,$šÃéF£”þ°‚Ô /ƘìÑ 0é·Ô~‚Ÿ‘Ä©stìˆQŽƒ6+iÑÔüM($üAÇT>jÔ§§.ãÂ7s»¸š!Õ Úžj3Y½”Åt4¥¶Œ¸ØOmfôpe^, i|ŠO5¶µ›\ÑM„µ8ƒ+ aÏzšø-Çœq†jwi¿ì§‹ ³ùG2° Ùr¸}M ´>M[}ê™êIG§^‰ç¢³OGVÞE¼ D #F ;Û‡…ˆû‹×}o¢…Q  *Æ$3õ©‘¼Ï=:„%>Áéw0ò¦Y¡ŸqøÝ€ŸÔM/ouÞFÚÖAm‚{ºeVb$Á3ŽÚ_ò„ëއ/"󃨣"`p()•öÒ±ÕQ}kãCÊ€Þ"Ûã2ÕëæÈ•:$Ÿ°ÈÎáx_“;¶l¯áw 70áÂâžWñâug±Ø ò\þ#H鿉ʼn ¹¬c.Ű.[VÕ$Õúzõ5³Ù¡Å{wÎ|ûŽ qºe1®þí©D:E+mr¥ ?Ó²Pša:ÜLœ‡lšL9x)½ÍµÒiXnO94ÓF‰í•Ÿ'õö;!ÐÌ%Ý]b›“§ÈÎaÀÇuö ˆ±ç8Y>¼ê>^Ü‚þ”DQq­ Cá®K u¼å­)Ù‰1ƒÙ o÷·‰ÇŠÌ;}.úÀ9¡¡ì€@ŒÜ Æ¿çôþñ™²º‡üéTwÒ“x^àLÞuKüM{i_ïÚ™–Fù½ sd˜éâ”À*™‹‚<`V/§¤IÎã…{6bÈÝ/`äÃpHŒ0ƒÚBY±ß²_ÀµÕŽ#¤ÚšˆVÃÆÆ¸,˜—/0ôÄ•x¤sU‹ï«.¹ÎˆL^Lû·¼Iþ†ç¼£Ã†lq—IO„ª˜¤Ôë›l·µð‘¢Ÿ%ÑêYr=®¸ŒL¿ŽQ®|lïÇ‹ùÀúÚ‚”£µ}t8U YŒŸU^åÑŒ'ƒ{(¦@b¨È¡:y‘8ÁI²?­S‹¹””üLªE5?'çMDrI€ÿÂçµ½$¹Ãï-ðQÁ.'l«‹ _ u5ÛòSÁ ‰b`Z²sfY UÚ±‚Ò#‡uPX_BP›¡I~;‘%§¥Æ'ÕÁ}¿;>›MŠ´Iç~«ŽÙÌ€K–Ðh×·óÍ\ïˆ>= Ù¶ï Ê]ùg]^ådë:"| Åy©$ãÒïº`–€ü½ÝðÑ_dí©yî¾üëD‰¦5—ó²ÏÌdàûU:"‡“&G^-´ÊD R«jÇN OggSi-¨ä?9ÖN×ÿÕ×áÞÛäÿ%Ýòÿÿÿÿÿ ÿÿÿ ÿÿÿÿ—ý÷ÿÿÿ÷ÿŠÿÿÿÿ ÿÿ ÿˆúõõþÿ öø÷îïÿÿøüLÚÐófvޝŒ£&¡ëhvï%r4³fß¶!gWtåÐ_@Wp?«>Éœ<ñ3^¼¦t²ÿþ÷Ê5Zûî‘ëÆ¹€¶¢N[âXG­3ÉOðÔ"`¦î>Góýíê8*÷]ÅïŸÓy¨4™h_ÕÈt¯?e½PøHïÀ¡·Ôq â5g¦3ö(rǽ"EõBt›.Ë1B·­yú‰3á|Ó¶ž•R~'¥×ÿ–º˜[ž©ÎgxÚä$GNRRnAv›nYQ¸Ñ©˜]tL’t‰’Û^üMYÑ'ú6Ôæ§#Øá$*MtK*ËÒt®×“Ï8gI—ö8à{½²r!Ÿ3ìE:ðÕ‰« d×_þqÿËú´;y7#“¥™¸¶ì¥Hy ¢†’>²;k´ÞŒb>kYk"~³8J™©áO¹:É9#\DzE/¤7¼_{ï§dN€B¡/lê.'Õ«#é*+¡g©>Óž š2Õzñ†–_fW©ð ¼ö£,ùŸÞ±,6„ g?õ˜Cdª€hÜßjÈ£SSõÓíøBšìí²ŽFr¹Ÿê–‘ËY}t60ñÁ'èCǹ–ËÊ…Û´üNíõü^„A ÊØ*-)´Q£û%ÛͽêOåfÂøoüNQ¯Nig’Ö'­åW 6ÐÞ)—¿;FH ˜ìX^’æ(Î[FúÚŽÊ¥Òú+\»]IÊp˜â»¸“AbÌÕ·õ€·‘MûWÜÙ°§šß­"Ù>ñîÛ–1ÈÔãí¹3œ,fšm—W¢ýž“Ù=›šL5äh ˜o$&a6`gW]=?5¬¬Þíô½ ×§‹:â¢ÙyÓvˆŽí‘Œ¢D?^þ‡‡ñBЋ–þÉ}¨SaT¹Æ•ž‡¾wÙ{´®“Ó–XwðgüL¾/@£öH¿¸m\³º¥"T‘×u]ÈΛĭ çù¡÷Nûº NšTº:A‡ÒñªÀüS.Œ½³¢'Ó#pR8Hüá=Ql‘ùÄ7œ@ªTdœ†ÇÎý˰.Ùr‹`BÙófR;)jA¯]àÏ™y§Íy½êÃooR!ó4ÒÚB…†%–M¢É"h½»¨P޾¯>S3í÷Ø……\~äxÛ­õ,z=U0ô(Ì­k53úôbªÌΉQ’lxðPVH(péaÚЩ¦0B’îa=ß}Tæü7s™0D¡ù_Ñ8Bn¸ô!8±¼—zЬ2»(#oô˜(R ð8ŠO‡)â™çE³–ñE'?5ÎæâŒ¼îK$•Ú}ýúÕt)®ù ,[e(y´“Ç6N¾ÿe Ö„¢ÒdŽyø83M쬘ˆô°Ý ;Œt›+Í‹ààÙŽÂ'ÕH®™ ¶í][ t¾~ñMkcäzxsªS ¾8oµ×}GxËL‹/G8Ýš¶Vuèiyý'a¡ìýƒpDbîîöT@Ýê˜H1¬ÿPAŸü±œê!mKÌ!»e¹jê7süâI&÷ç¹.çˆÇrL –š0@3On.T¾A0¬uà›˜†3à2õtùÙ¤¢pª¡Þýä .:pù‚Nˆ5Ц hÉ‹â¡é`¢D7¸mˆóiÂå—‰)ºÍª[3…àdsM|Ök’ゼ½ãW·Ÿø‚jÈC%“ТÛ:jêÚëOä0³Ö,’Û½%©ŠÄŠOb·*x•(èçzVƒX.šÚ:ñâTÅÈFCøµeÛTå)äBÂôZ?¹ª…ü¯5Ê„axÕ2ÿÉô)þ<Á£| 6LWÈ©Žâa¾ÚóXdÓ –Õ!­NHË@ ]:…îgÃä¬ÎäÂ0©Õò üy÷罿û@±’tOGŽí ¨ú|Ï…J>Õª±I%Æð“óGp,rN_}ÔÎa¾oÏ&4ybç(©Râ?0¬‡¥† §9ò>[9æsNÀ—ÙK¦ýÂ`£«¯Ç/—Šu'¤ªÂ*«ol[ #yú¬U¡Å÷Z{?D=‹WÌ^€Žâ™ºJ·¯Làç»›Ò³ÒŸä»0•6‚üIùÒÚCyølo4Û_‘+ –q\×â&<]#ý³¤CV¨ãt#ÃfKîØ?—éJ—NP[´—? óÃ]¦­¥BR{)H¶ñ$ˆúe+ÖŒ+ÝRéœòMkÊ¡ú[ø6‘lÑa"ýU‚†3ìÂc2R{AÜr¯àj>⨠Æzòíÿ#ÑÉÒN7¾†³ïàt²3«‹C‰ƒ2z^CÒjÍuŠu#Ißj6úáøˆÌŠÀÆožZÍ£÷YP‘ã'd8Þ™Œ²m1ÞuD¿€e™ •ÐáÆ$ã†YRmÊ=TY£U@ÆOI‹ª%â(…›r¤\3ê§]ž)S§!ïH'á¥<à›g+¨gCL™—¤rûžV×'ºæ Îß¾ÁÈ.üX¥˜<!"vvQ¤«Ä¡‡ª€Q§Šxÿuãº|ǧM©”פ”(N)¿ú½Ã1îÛ_pPŒÜ í¨>Ì4V:rà«¡/C½ïHÅ6!¿Q¸)ÇFB ‡øÎam#Õ…íê„€lÖ‚.(§¢³:X¹®fó^Uû‘dq"(j×Xųiã¾ëÑ ©ÆŸˆ@Ç5§t^SºƒÒK¦m7P½$Ö0JvbñWp†&·‘¿‹ŒËÄŽ¨¶üÑ‘ i#TØ{”ÆOÊæ=61êÖëxgóÞ¼ˆOŽüL²d T›´™B«ÀJL—9äœéso´GÈmùËÓá9Ô&∰>Jd³ÅÑrkdøh JödÒ•x¸±A/©X”F)z yÁ2oñA1ï–ºQ¬VI•ܺ®jBÓ„óv®=æk>"J¶d&´3íÌOjýxJÕ?ÏÿјJÂÃ;”ØjÚ;‘Eb»Ü€0¡ˆÍÝãÍ 8#6Å*}6ý¡šSEßç0îO©‰U Ј··py%0>Êô£œ_¤¨»‚â ò_ÂSà~ù¶úø„7¢6i}| ÍÈw5×FôÙ¶„ÅU>%ùDzüM¯]rŸžº>7QÕ!ÞbÐ~æpàRäòU «aÚ«»â]©ÌµnãDl´Py­ mÂè4”9u.è]‚ãÙRTþã\@¨oålZí….òü,©v½ÃIFÀìêfã'†mo±TfEr唹çO\æD[?ùãqkžE"ÃOÔÒ]%;+£u”KÛJÕ5™0ç>.n[PXí9Qª“z®œÏm'PqÞ¼†¤ `ápZù³,ÔyÎÃd$øáêÔ‡ù`U§?ÎQú4Ô˜tšbSR ™Ã'=‹§îiÞ©ó\aytFlãsä'xrߨÚ}ž‡À‘ÙðMÉ$…•¦ÜW_#˜Küy®Ép&§1Ðøw„õ (mÞ±` Œ ·Ì¹:èü“Úº|:½¾¸M cf‰Â¨ Šumj¯鞀ÿv*1‡¥ñ88o· Ç1þû®£Ÿâk÷´o ã\`DšpÝc ‚¶žì›€vu&´xïêtÝWÉ×yto%:•Óºe|Î#9Ѧ5ÜOW`üî„áÜ@µF¨³Ú›ÛGÕºK`Ÿ¬kŽ1Õ[Lµ jeöžt ¨Ï&Õ0 Œ&iª`%|r<Ä1+ÓÓ¢Èus PÚáGb8Á !Ì£/Aî!ñ5ÒE¡ÕÜÐ4ørä¢ý8iägÕX°éð$¦LîøI@†¼ý5yç›ä?ôÛÍ^ oF´ësµÊ|Ú¶1}VfêÞ7 ”Hþ³**˜Q4Oj„¹®” _½>Œç›C×#ÆAq©‚Âì ))qƒýØ&ÌÏt›ô4ò šÙÄiÛŒ…ɘöJ®Sa¾}žÚ5^Ð.ÚV×€|µ¯ãÏç7þÐà»`Ib멈ŠñêŒ-Ôó¸¿[uÒ³ üKZ6¼©*žê_´­ñf̦+tg"%~€GFF°ÿXTÏá´YïN Tk}Ôª¯;ÆîZjíxé›Va¡|Ë–vӯ𬧆Q||³Oá”§ûnál±ë6é;yƒÛliB‰ˆÀßÖ´AŸUìà`JçYµ.pNõØH¶dôð€ëÊ«Óeäåœë¥“5ˆ,”à2GH1¤ÝEY »||»ÅÌ“¼Ügª“|D^tÚ¤„”}ŪcÄ/ÙǬQëŒ ÝEXù ¦‚ŽÜyÏ8³ùDíRúiX8Ñ[hcÝ%4Z]·Ð-§<~¼Ð§ 5áÕ›š7ô¹#îcZü àFµàÜ.ì&îü­â æ¨,ˆj²µ}›äy7ˆ~·µ‚HŠÍ4óyÈÍ'Ý¡ ŒA)Óý³pYò–"‹x³dÉ3af/%*,ÎQå`nÙ\ýñSY…ÏÅʨèhLè $Î¥nƒïô‡'èö!«<¯w¾®ZîFÜ2 9´G3wƒçÌ<~%w,²$°ý$IC+aO©œ‡*<˜O¹{¦—¾äG­2Ê]™&]B~moÅ¬Ñ |fJ ¼Axgm¿×‰˜ß;ø’D+Ì·%a7º=ë—¨°(Špõ· ²WPÖïÃ6wAX—›Ž–ëÝùB(Åvê¹ÎÖÒ7ÂóÚfÌ=eß°G·gåE@üM§êÃÿ‘ºžÃŽ•*¦1Ÿ«Ïìú’Îk4b%oI7¥ s},¨ùÇüfÝDd–1M†pïЬ-3 æóªHdÕóŽç^qJýtkõ·»ÝŒ|"É"\yãàzñ§¤{¥øXÚ¥— ?ÒÙ1’:åÖÖÃó’˜Ë|¬%yPL͇Y>c™ðÚÊ}‘t“\ßO¿+  )²¬(0!:¬Ã¢,ŸLŠü‹›QªržsB

Þžabƒ¢üšý+¿º4*IQj¦¯ö€M¶¨ûþqçö­¾¼ò¾ýôM“d JX¹’»,þ=·xhV¿°m0_ ôÚÖ²„•úym(Pásç)õMkNü¿ßÞcW`ˆhïàøa–@†ÚÊt1ñËy¶3º _‚´b_»‚@b¤bù,mµê·ZÊuì@2Ýn ãêøVYœ¥÷I©Û“W³Ëd[µQ¾v»£ýÇg'ÑF¸”`ô^ºU‡‡vÏØÔÞi'š6¿Œb¾Q€ÞFJÜ! ÿ틆î¤âšwðΉOËw>Ë3½­J¡Ši_xZüM”ÈÑbz¡§¤ºGº–C_óçRÙË!šUw xN»;f¦4ÙYE臅¬ÄQˆsÚ÷„U"Ê··»/Ì 3SDaEeÁÿsõ*Õjòp_2Mû‹|"1_ÖOò—b!t3¶XµøqäÿÈ5¥“ÑDráùiŸ}†—²Ãq w ¬]!´Ï*þN¾N¹L#°[U øã: ÞUã옞K$ãS'¦„¬ŽËù˯`¤ïàeyìBaín 1’Wü®`b#ºøe³[ G×¶k‹§Uãà^ Ëâ·Š7Þ×XH+Ãn¼zÿ°•l¤TLÀGÕ½>Õ¹*CœC×%KžÃ{Î ¿Þ04•p¼7fZèóÝj­õõݶÈüôêi’WUÓÍvcÿmtµ{*ljZê1Œþ´êϬ«§Y%ÃBç‘‚ñ›ŒP (|G롸¦¦~CƒGiY˜æh'›9TZfu¢®„™^t·jÅÑùΊjp<ÞíJ”M/µ9Ð=›Çx(‚˜û÷gG «eÍÖçT­ 3%—O‚«þé’LWKó²iNÔ7Ü%V{A°ØPØÖaXûjÛJ>Þ¿%¢>TöíÔ—. £&·ìn³†‚ÎWCŸ½ì=`ƒì.E\`¨LmKД¤ˆ H¹ì¡þ#JÄ“Cðµä0tnè‘_Lã¡SòDϾ'ã]9àt¨!y¹‰kƆõNò=Io˜A}Â0L„mIuº¸èC-K͇¬!NÐØägZ=~ðb¼Öó–ìÖ¤uö 4ÚYîj‡#Ò;Ddì ” ûݯ§uì‰ùþ"Íf+Æ^î ˆâi2ušy⬘K‹´DÍ.LÓ9Ôugû¥a=OÅÐå°r{xG¾rqü7ÓÿšúÙH‡CÅo_Сä½ÂIY Û9“ñÝëaõòÙyÉ$1,4 urð R~€³¯‘Œ[C5ªì)§Ê¢STⰙÆêõðª¶nËš-*ÔÔBSdI@˜gü™„|!ÝŠMk4éI‰öÅÑAþRž»±gt "&Ìr#ä<º`1³¦°·ñƶ>|ª[«p7޲‘\ºÕZ¹V \2ý@uAüúpq{PXjóÞÿðôþþQÙv Èo€þ¢pnhQJèÔý—‘"ºÔC—(8ÏL¸õn Eiž.쨷UÇh7ì |Ú{b°µüIêLin¦JÏ0l\Ât°àMóAIt¸Š7–bѸºe¡Êûø>3þ>КéVù¨!::+çÂÙ2èYáŒÝ*Y?®W¬Ãßcf®kTW 4a[CXN„Çl7˜ÂWÀ@iT~ì ¼ #‡! uR‚\ܤ­=˜[:v\_}nœ[>tÍäXî µUÍ2­‚šZ,¨2†Eï×CÕÝYWÊÏßr,àú>ϲª` ¬¶|HŒUܸÿ]dÓíyü1‰’›¬õãÎV@2B2{9Eðˆk{â˜Ðŵst¯oÐM^4 °:¯#]¦ü Œ$ðÒ’iàD~Àò b#¸ø”Üe/üñæ~£ŽªtÉl¼•Ë«÷¬7ûr7IÎè'MKl4ƒ”màLþãHÅÛÒ,ôGÙ™¸>xêĉˆÇxÅÞâv& ²;Ô`I‡$«2W†-ñ·y“x Z0Afm­ (µéµ¤wÑŒAgÖÎ*ÍÏ*"¸ZÔÖ6¤Ð Þ5 º¢ë'„Cê±æwZM‘lÚ‚1=jT¤‰ôÃ*À#ÛS ž,Ìǘ©Ií‚c÷C„S”€œuüL¾\V½líyÓý®>>H¦Ú$S:{¤Ì´ê®a¨¦k{úñýF4Ý}o'¿»­˜»ÿÛ§c™—õ`ÖŸCµ'"º¶óEvÁ·RƒZ'/‹ 6½ ›rWcãgïŠæÒ/Rߢ²Á†D¿tÈmQL!ü‚Y>¡ÃÝÔ]~nR´ç®~´#] iEæÂ;JŸ–Êôëö}´íì ¾Æïp8÷“»ï#˜Üׯis?$aM„Ã.i£T†Y©bŽß²«ã÷á‡JÉå,dá2(.ÇpÝâ³+”oñ2Œ.‚DDÕfùÙ“ý þËl“þg Δ};T˜ÞQð RÔ8‚üLË»V‚3|Û[ëè4Ôø­b¯`Áq ÉÆ&ã@ÙÑ;CËÚ’›î ÊOÊc•7h(—"I‹ÐŒtÇ¡‡H«§ÂÀ£úvë’°»¢¥«º':x‰[æ·ªåG#vì4¿ÆBmKÒîz\|ƒ1›3Õ½Á ô§æ*m©/)³l<¹ïCM¶ª(‡ËÍ3ý$îÁ*S}Q£ÍódÌš¢ÂHiQ6 €2æ¼'ð¢!ÀÃ`Ð×$ô4ñ2·³9›S¼¾M 5hÃ)T?¦ýÜ`%c£x{S)åÃÀ,Oz*ZN P)’¡(œZÌÙÒ}y܇٠ê{í@„ˆõö¬°xüM(;wïVtkǧA<¬°tªk›ØÿÊÕî-›¨/G˨bQ&ѼŸò[Œ Ãi‘;o¡°cÃ`j©ÐÓ¥¢‰„ºä±òú› 2‚ÒëÚG˜W'sqvRWo;˜«çžR1(±Å}þ9ƒE÷òé ²Š¥åcËïÊ7 9–o<ÀDñhô²ö†Aá(ª’š÷³$§ ¨Är¡Ž9.a¤Ç‰«Õ¦ÁúþŒ‰o =Yb©Z6:b´x{”¢XJ*g¨ºùœdË}ÅPì:†‰´jÑ?VÆ wï³A ¢ä]*¸ Æ“¤ê"¤kÞ£îvÈá¯Ã•ÒrËüô픕΄Ú)ŒD.Ôàóô+Z¼5:‡jA1ó8–GB(&[YB‹Ç*GÓ)&bÖ™¡ÃÃí4:´~k ñd¸üwvÎÓ3Hcºù°h®ª@?:.° ggÕ–å½{٠ɼo¿ý¬ýŠïúM&K¿ÉÊ@•jä«&¥µÍÿÝ •ßS÷^{. ¸?NèrM._…<ÇSo'ÏFâ†]ð•þôŸåÄ+ ©73mÍÞo,ü‚q¯…´‚¦ð.%ÏM¯xu3˜8åÓÞQý™c ˜$B‘!¿j]"íìÀ¯,ƒ,J2ÁŸê‹V 6BÓŽÅÓ¶ÝÇ­Uóä·Él%ínõ |Ö¥\䢨#TÈ<[™‰K³w”¡«Œæø“ããÌ#¢ø…ú⋼Ru?ðݤc´:ŽA ˆz£ßµûäðS¯5I¬Ì×<àž]ûê»Ìy.ÊÐ,#½G-^ysÚQ¾üðàƒm‚`-ã¢âÂTlGÔ†KÏT„OåRbeüMb÷ ‡òHċЫºv ,¡hÕoC5Œ 9’H½êZùíprå÷çd›_áŸ__j¤¾á›r”À¢þ˜Š¯H ŸÉ‹L]Y™”S±‰ _û®da˜$`™u‡i•"€óC˜%¨ô#Wɘt¢š)™Ì Q?†…˜£­é"†ùDŸÅ•pç•¢Ð)Ô  ¾É ò"ý­{2¾«µD9»ûi]Aã﹌5Ìè‘¢ „åè…ãèZÄÁœM÷w@¶¿g¶·•kÙŒ‚‘–&Íú{y½ÄŒ“—ƒÉ1í^0eUÔ½±—t9²,l-@‰«»êЦÅlûRöiå[¿Žµ+xÇ ˆXü1¥I0ÿ– ›3CÃãD›ö$£sæFVÝ·†O¢H¤?4e)­hÙŽã™©Ø Ú”Rç\ÚáMnxgš¥ÑÈ pÿU!|ß’²ÓDÕ_<ú‚é’rRôMÖ¢P!úârV©OšÔÑûIN#_šD¶‘N\~)°Ïñã§IÖv½©Hd}ϹmÜ]5—ð"¸è›ÃÚ‘²%B ¼™Rt»…ûЃc’ùîN³u«kÃ’6}²¥öPk«-© zăÍRÅ{¯ÃYžÕ UtéÒ| lež&màdAM}ü5\ÆíWO{æz»2èÒUƒ²/:¡ƒ<¯ÀïïêÿäG3/ÿýÚ`oŒ”Ú¿ƒ7Å2WÛΡ‡ª¢*ÞÍ»=Ã2¢cÒ=õÿI†!>r€iÈyÒ²X(ú¸þË«ÿ3uE¥·Hø©û Ï˰îÎéŒL¢aäpçãhмR@—¶¬ò¸‹ô4Çßš' Ä¿‘³g^B¦uŒ@ÍâOÔ=mñ@ –IËX‚*Ì<¬ÀJò¢âÑpWüô LD‹–˜ÅdzüÙs8¥‰=Yn/{‹hš¿ìñù Ø¤IþÛ®)#,ž*(äÞX³Ë}Ù¦l5;ËFzWöQ^ú (¼¶@PTü®™Éü]ªÞpî÷é*€ / |‡úE÷Ž-ñÙÊ0vs¨Tœõ6ã¤Ñý~’ia±W.ÌDÚÞ±ž¦1þ[¨Ô±­­MzaijÈB =ÝÊ,WŽý›E-EO%ñ³úÒ\ÊÚ³9†)3í—8N,2~âUBiziÁÚvç•©’c5%2ôö†Í«_8[YüÎ3 €4ÂG®(ܳ¿t3Õº=ÌÍ­XcÚÂIw"{}0 Ø$v9î4‹¾Æö¥ö'º3ø³ JWä)±¤·§Úy;8´¸‰ebÀæŽcL؈ zà… Ðf³µ©_ÓÈðÒ$ûB-ˆÍ¼ÿì"¸ ×ŧåì¢Ä8wýÂO¼{ü®±wvÜXÚH„/ƒgØŒr³Yž¬d•(\¶&[‚×ûYÎP÷ñˆ‚uѬzsÁØ8Bñ=×`5Ñ$¥¦˜&dO©¢éQfWá‘êŠã€1=ýuŽ©û‚6pçÀ}%&ù¥¾kº½{BÀçEðF¾nã Pv‡¥Qd\ãù1†â¨™Á¯ÿØ/eÜh€÷T‚WMñcF‰cΘ åPášé|£Ã Šž¶<úÁT¥±sÀäeÃYãzÍ6m9É;6‹Á3ÂÑO<þãý ÜqÉFâ„çýž]d(LC¹× ÇÖw#ËÆº‚ \æèt¯?¯A]š})§k‰ã·HÊìH˜¢ã!‡Z{~½üŒ/hÇ‚÷é®b ƒ<§ÿåè§Q‰›KÔŒa— øo~_̼»ý$êÞTŠ)TKïÂ^Ó± žDíHØçà±´›ËMš¼àÑy|ïà…Saß«´pCrÂAìØ{•ÕÞYœB²ÁÜúÅu¡Êåm#æz-?ìç¢Uº¬ŸòÖ”a,ãO lËY~µíÖüp.ßèç…G"åˆn ¹ #õÌW¬eÐ ýHŸ-òUU*žc–æ¡1½PF UIzS´q>g2w°ZþŽ>-¢uÖÄ43#›‰hTjŠò8YÖàu¢»‚™ ¹O ˆ)0°åuÝq3²Ä•cØ%GûÏÒœM‚¢½@ÆÆÑJõ2/›ÙõÅ”ý\©Ñ¤iµ‘ˆ C3º‹çáüüM)ùðüI0¸5[2ýlô˜žÐ°Ã~š/lYF×ËÆo߽ϕcwS„* ÛIU݇º4/VŸ>È©·©é >Éíé¹ôCøÐó9ûßS „i6y[½€Æ›bïòMßü¼!…U c˜Jã&ÅySÙU3fLcï]µV Ùòõ Ê¢Sd<Êcô?Š4ùÝk ¼FÖ¦ƒv÷KÀ§L»§à¡Šè9mýt3LÆ&µR(ÕºOi»EaØS™æÃˆŠŠõ.tÛ—ú;m0©ŸfÜåSOâú ýãÆ@‡ªG!šýûN•[6Ì/7„?ƒÎõÒ›ÓÖç– _Ÿ?¿üL°v’9Yxï ]—°ñ5¢…á¢óàôuÏì†yé û6’ìÂÑ4“ÞÚ.ž„ÌìWÿíUÞŠ5”ƒúªŠQ»Çw¹ñ.¾2BÝ«ÏvßD D‰IÃ^º§Ì,‹2û³ß¼JâÖ•CùÒÑVãî½OGJ*`øÚ¢âXYúDAB$Ap a™j&š'+¢t¥Ö lmP½0^Kߪ‚~bP¥>Œß–ñ›`iNAÈ s,Ù÷ŸßÚâï¶yƒ@`GŒ³˜¼Ï" ·Öo¶GEØÃ®$ãŠj´†VÔ›Í[ÜãD …ÌI>NÖë§ìüL¾,ϰ!çÆÈFX[$?›kÉùüTž­r £^m͆•ŒÜ†òòs é..ÚÍ>.nªEúº[ük¤}¿ø2u1…c„»¡}?”%¯¬¤–#c5#‡£-z‘¦#ö8"Þc³Î^ìý)—o¹Ñ™)!ïÂWEgo$¥þx—Ì4|(¢5Åì*C#ýjË@ïá}ëÍñ:¥ÞñÎ(¬ÐøAݧj”ªÃò¼ä@U_gæsækŠ¿Þ¹ü79Q^¦“A]®8…Q2Umæ±ì±åѱ Œ¯kÿ§ô¶‚/ø]a]|ïã‰`LüMbô"Å>PRÛŒ­yÙÍGܛˬ(˜5<&êB°^J¹¸õ8:ßIû»Z­9bTjj"‰f¨åt$YYµ÷û¢ëÓ¤}'ô³V!¡ÁW…Kn®Aom‡Ì¥b9(ÃeqžŽ• ¥ˆ@Ügu~'fBe¸Ö!GzaaTlGnëË §ú¸ÓplÃŨJR\z3Û¯Óë¿yf³°”ÎeèXKVõ¸wI]àìÁzu¯îË[¾î=Û]&3Èóyz¦À÷üNcìÑ]ùV¥)ÄåµU 0Eݾïý8­r‰øoæ‹÷”›êų%|°(Zx&dB0¶ ^ïzÿÎ7œî¹íI7ל€RFe€‘Ct|†z!>Éf•ïžÊæÏŸDÉì®Ïx°³Ð7Õ¤·cù_­±8 O˜®Ò±ñHÄË;Š©rƒµoÆFç==Ôž{‹Ó4…OŠïKÀâa3zJ»#4hMÉ’B!¾"hcBe䯌ŒœsÁ|Û È·¯P#i7³ÅÁÆÇ™ôÖzG~4»÷MC¢g­­@‚JQ¢àUËŽ&'µ üLÝF«4*‚1jó.ͬ‰ë×Ô·×ÆúmÓzCîÌöés‰ãùs í]¾[A¯åÐñN4³œŠy×,š?2fÜÖÕrWííÂð@äçê`]`0´¼>¢Ëàä•{/ëÅ0Cóß\öUõ >¡þ™£`«YÓã‡òîÀ_¥xØÔ/Ú$ò{$€½®º‹òWzqe¢ÿïÆÉ3Ÿu°BÛn\m5_:Âüg”ñ÷øò¹û«£ÙgWHüM!€dæìzÐZ½¼—ðwràÑ«l©7LUŒÿíJw4Úþ>ö=(·j»ñþóo &ßä"£°á˜“ðë8wµ|€µuþ74H…3 $b>DÀUu”$tûA*~¼æç8Àä_â냶æmƒ%—)üzœ½FE½©}À1³ й)´ãÞ–ÚÒmê$+û𦝍UV âŽÒ@æ ù=°w÷ltæö#˜)0^©)gpv2㫃 ž@­¶iÒìÌ¡Î#wñtBø8ªÙ¾žõÒ¼^™ }ua -Ï×t­;gqï®ZV[Bh•U꓉‹¸±¢9÷а¼n³Œ"›=¬:ñi7S©%iš *Ûx®Sz%N Ë  "E«&ñêZóÊr¤ƒ“(Ç6£ä"úáÕAæ\X#ƒ3bzîvÁFÓYÙD6E$iÀ ¯ƒ²º³Æ“›2x#åj e©<¶ûü±¿-—Ô‡¨«¿³ι]²ÒÈ‘e;é@PÇ'b ‰×Xùƒ;Ë,8XýÇlx‹¤þBB€`Þ“–ûHßb 3_%·©IìADÁƒ?ÉØÄÄJ>тڊŸÙaǰX$nëˆjo(ýqÌktÚð ¼½ÄC_ç™ÅÛ!3‡s†fÏþdHS\ÏòX5–žÉ ëdŸàß i>å'&Í¿Ft2œ··ž °!A.„UÚé`Ë¢À» dá3¦Ð³+½QNÆŸóކ|hó§Ch{àâÕÃÕ±™ßs æÞeÏùõËL"D<™ó·’D XD =ª#NT©åf»üL­ò4¥‘2ZÅcް½•FÍׄ ‚CÑ1ûôkAÜ€'šS¤*¾=s\а¬]Ý#&èªl;æÚˆp_Yw!ŠWOk †ÀÃôsê,rD6©PË!}й}QJº¹±îIcœ‚`×é_€ÓÓ–…w$¤[“'£I²¹ºË6~ƒÈ¸½QÖãB*}ὈР•ÚÉÅém€_¶Ü(Ù#Dí,†ò²R©¶Q{Å–¨’âØ]×…mͲŒ.A%ŸÁ6Ÿã.ñ‹e†µc[PK$ âaÀÝØ‹VZò ¾zø§C öž š4å’WÔ7Ïk€Ü’Ó]HOggS€$.¨ä@µü=æYÿ°ÿ'ööÿÿþÿØÿÿÿsÿÿÿÿÎÿûõÿÿÿ ÿiÿ4ÿrÿÿÿ ÿÿÚÿ,ðÿÿÿÿ ÿÚôÿ ÿ ÿ…ÿÿÿÂñÿõüÿÿùü{<Î75VµFk”î¾ °¬ñÌð" :ñŽ.ç1Á¾Þ:Õpsôy¨ƒgƒ!ÑFŽ%•7c="[ù/ ÷ÎK©.!N÷®þcMMüL†bu{^Š:ãùüI÷ ¹»—¹ójÓÆMò`ZpáièLJ¥ëoh|`ZÈ óút9«áژ좺 õÚþuÃúä<7ÝÅEÕX_Ã.Z$’w0xF»H‰ök±=ÑmŒD:»ÈÕ¸oýùIz—M!ŸH>ÚÏç~áñ¤û¶ åÝy/ Õ ÏF6ŸâêU'¸K>¿Í±Ë0r¤Hí jê›ú-äœô/ÍÿÄ{¾I`=a¥î,leüVµ.\˜Èê‘»µ —N›¢uËÌZ'¥k3¿$ŠÓP–béD›Ô×É‚If ÷ž‡ÒM§ýçèà€#Ä˦*"Íø·£Ã?XǾ z¹uRiëÉ_óã.ߊULÂ×ÿq‹ûa¯$}¢gZ½Öt> |æø£yœ2~*`÷U§ƒ,Ör%ÑYpͺ±€Â[VrõŽÍÿÚ“JÀ¸ª¢Ñz‡Äg·ÛâK¬¡—º¹“Òvýfmèà_W¸ýç{P¼ìn,š–-¶£a‘cv´ßd€Îh³Buúû›cÅ`¨©š¼’J96}ÌC‰›ö<)»Àõ²DJ0nQ'‘2IÅÝO—gÚŽeüÑP(@§ëiD“.¾ˆö>Úv¢»3ÓI½üMª&9$°ñÅH&ÃÑ'8$èü»&—:€áˆKŠÓ^TP$ú&JÆÿê»5Ûú ™î®(ÒÇèHÇnÕoíH›0ˆB¡ÊààœN­p¥;14úh¢Žüd·æ«®}ÏϾ@Șg‰¼ø÷Õxég³s~±­Ý[U¹u‘ưÿq4¡jKCüJ”AM‡Ð(ȸi_Ç! hXoøŸÐ4Ðr çH49üQÎ²Âæ MaµÉÀ/¿§`±­–Þë ¥QøÑ˜JÁù ð>L½–fŒ„(Zµ9ÈØ}àwi2*Úáì}r¸9 ÜX ™!R­aœ0ßqªá™Ü/õ¾ßPòÉçÚ–³ÁmtZëW<‘„n©Þ Ý"?±Äž“¢(m¹Šù!ÈŽ† É~ÄKÑ·èù½ÏgÌþT&í¯s³6Îõ”¯÷´ ô–ò „*QŒ¦ë#äÓñ¤ÊêMZl]ÇźŒÒ´ìL¸£?]99ÿ=ÿf‰e{Œ%Và}ÖðM<ÛæXËݯ úäfÝîË¥;¨\ˆgèûü5_¢æ¡5«ßæ¸EV-Ø«5!ës%œ ¢=ÞCF[*èC{÷ntýmÒip´µN· ³òÞiVoJªÐž"¨a>\a`< LŒøBJ'º¤,'ZÁZñz6Hî0ÕöIg6ßöÿA\ÇŽª‡b£Yqãx"Eüñ´£=%]3p¦õËÁ¡gÔ¶y²œS¨H`©etxù³{+¹`>Æu™½)£¦2X›>|7HÏ1}½ãaMÇ#lG$„Šeõ×aú_ ©]Å‹›K\vª6€ä–¢áFž!sirUÛ´ÖÀ„4 ¬öÁÃ}7¾®&âQÎÅ–-ƒ|ÒÎ[´ü®‹ 8ɦZ"8ÎGÇŠœœ&|ÊÐ1l¹Bì|Þ9tÚáöÙ+aaîsó µâ|+O9þeŽ&S[30Gj)Gˆ~`IŒ‚T³žW¶¼ƒ§ª‘n‡mˆ['¼`õ ê™ýõÚÑòËy`· ýôÚmšIH YUŠ… tìš.£³6õ¯ÞËì v?ý /3º`GHï…]ÅÊŒm0¥ê^àÁ"Oí÷ö¬£ß§ùuñ-JìÃg)|ÜáRÝÑA‚¯É\ ÊÑm#&°†à4 +/ì™c‡/¾ž nBn.+ø¬QŸÏ Í›¼?·E8þ»ü|®°ÜºÎ.Üìƒý´Å£@t^D˜¥p1“d¾ Ï”g<Ç~o€×bþœÁC|Zj±!¡‰®Êppƒ÷‚Cš¼Š_€¥ÖeP¤¹ïº}÷ýE‡ë³0pìÉè[œïÌ'šñÆ^$Œ—³˜¢%²N(¤D}±Ä›ÔÛ?< ¨ø¸2¬\p²—yŒwg2gLtÑ “$B8Î"‡nfîŠÅšE+:£ú‚C‹U4;Ÿ`]wª#j$žÐr+Ip¹æjGêÃ\Ž+ÆžxÐN–œü¤6Xîÿÿ“I!‰b=ø<¦£C”´KïLqY¦Ä'N)‚³¢k£éƒõIÒ:= R“¡A¬7güÅDáf"…µoû²¦³&øñm ½þ/Ç’›&Éå"” EÓ;þZ `ŒøD’Í ˜4;Ü ´ˆ‰¿™ÕaÃfš†’šj´¾©üèä †ÇƒÐL[–¿mNJ=º¾šiÇb¨­ ª%ß^ûéxÊÎY¯¾± E´ÂĵjôŶ B5B  NãÞÍñáWB³Að æ”"-1zW¦Í½âÃß‚æçŒw·Ã£V>|g´ßZUÐÖ|\ÒBðßu”tüXЮ»§'v®µ’~ÚKNDDI ã¦í¿¨ ¼0üŒ‚K2§¦±Å‹h­ÁÓ´ï²h¿¡SŽP§£Z°ªaßß·m½³"?;3·¼‚ žKè–æÕ¢/ Ýc50=ŒJŒè3‘˜ö©þß| Õ ¶€D£«g®rc.BñMÅ9:ùtX‚ÿPy¥*@ù9½ÒO<©1hLç ù0“UÌý0N9x§ü‡$’ÖíéŠ%ëÀ¯ÔBÜŒùPÞéF[ú–P„bÝáFg-52]Îbë*„îèD´ñ‡mJ’¤oI¢÷™^„ó8š°ÍÎaÇø]’¹ Èjs 'SÛÙüTä$KêÞ r2'ýˆþfm{Ãü6®Îj’rHÍukGë‘açžp*„4ÄÍ÷¢÷»˜Š¸o$ !¡ø_BJR§D­JÀ”&Ë«YäýÁ„þ–8>,Îe¨W™z ñÉ•ÙÓ>ÚY£)£ÂŸV˜åG­V™âJ8ßÔTÖÆ•"`0¥r×!ø,;Éf›1ÍðžRßD,ÏÂT×öé~^íÚnž¹dë†ÜU—­kËÐ뚬hp…¡;ü—ósÂÍi'ª-û_Vü‚ƒDP²k¬X a(kêd•V£ÈÌbÜ™cåJ¥C\{I`8ùP¥”‡°ÞêïÏœ–»zG¹ç*º™^ ]:Û ®‹_ü±Æ“yŽf„"jÉ»7‰€Sü©M/¦Å¦ Â`_Î$ÛR„æŽá‘.Õ¿Ð;DÉØ“c™qL-õ´&¼Ò´[¯í‘ƒª­¿»æŠ [e§à&@ c ;RÉs#×(XïmBŸ¸ÓFuŒUý€‰KUηƒ æöÉËVnæ3‰›8 kú?h¶¿¥ƒËÐ(ªåí ÑòÆÿ¿ØEÜœ€§âÄæˆHOÇEËX7À÷Þ*_++ž#j»-HÑTÄËšºà6- ¶ã*„² 'a¯ó`9#4'í‘)!·EzÀõ¥nÙ-ü/\M²’Ù"i«³î„“ØUÊáRV¦èh¹Z.°«†µô¦»¥'[Ÿ¿."Ò,¬x÷‡çÏ«CÊ0»>J!lùÚöŸ¤KÀª1‘*Ÿ£‡æé1r«`±Íz4î[Û®Êi¸ÈŠÿ‡ToàJYÁj˲OÛ:Í{Ç™RŒ@~v2Õ¿+ή€!1;üJ_–Ý:*¦/óRý^2¢Òr-œöƒ<ÏϘk® $ý|“(%°q0Ðs%ÏS­_Bõ¡ñ­Xü!³aYÛüx¤‡.[< éÏ"‚†*+vøy&Û¯T{Âá¿Úy.v0¨Ð¼ˆ.ÍTîºOÅìæœk$1ž YX*óJ)•®¾KâÅ0»F2¶8qù+Ö3ñQ5h»—=±:¿®Å%ᨰµå§.Ž4rðý3`kx9ðc¬vï–ø¤è6Z³¸!…K/ÄEÏøC¡Ð† ™(Á·Á¸Yl-Ñ“ï#ÚøÎHËm8›[Û[Cÿ`º¾¯Îæ4Λ½ÚØ® ¡ÄèXC€íê¸ü¯xR€ýøö©ip¢¢ªÑŸ¶ö6úô£‰îmÌÐËËR 5³SŠ—Šß +ÔÎ|O¯F²ÑDf—úÓ"s®ÞM‡ûõx ÷{Õƒ}ß~%Œ€AÍ€áþ#|·/}p¼‰"HƒèqpÙÕˆ›Åòhº¬/f„#–éQu‰˜åüìeGÅ%»C£û¹”ôÇ­õ!èªà-Û<ÿ*Ç;]¬[«=Kàý‘;¾ÔL,ì~Q;¡äNMëi·´|óOñµñ|ºY¼¦ê¹HL؇ÕJA©žv·Ö$>ÜÁV¿t›Ñ#UyÖêå¢Ì¿6:UÆ%Ö1ƒžøø$€I1!ögW†žxü®Š–;VA`³bŽ{loZE–vÈ"Þy‚­L…8Uª™Ý1Óú•u89±‚[¤ô>æŒ×8í¸Õ¤ßû×­É.:/6Q±Ù Iý¹®'V 9N×)spNBÓšM¼¿ÃíxëìÞYl´"µ|å’&Uh‹=ôš 0‚°hµ9Fû=­÷n¬…GÎ3‘·WÒèžÆéÉ¡ Öu±õøSP;¤ûó`Ø¿Q.&â¾{I°5mÛ­ ¦¦g–å4}^1`XÜ ŽÂl~[^ÞÂr`&·ØÇÝÞìúªK5úN¯.LW.,~ÏüÛZ’k¼³nGÜ"*ÓákÊý¬kæ‡vÂãÁ[ŸšsNu»:üµ ³AÈí­§¤—øñ~‘rÒ@C¼Þ|“Íew /³ûJòг+Vk6.¢ˆHpȲ>Û6­x~ŠÁ"%p»@4äÅ—„ Zˆ/ê|!òõÅw ,.<úË¥”~køk‚<ÜV´86pʼè»6Âõ¼ÊªÄ±%W87Ѝ­¨c8ž‘SÅê½]oâGè±ÞÙ&ç=j0w;{ä ú 5£¸óËÓÑÍ9›_j!ëgœ«XZ—‹êž‘¢L‰Öº ïþb? Àxo^cD¤¯äû}ÂsÀw’÷ÆQã™ÀÐŽó`MÕs¾ÏÕ(Y ;Fìºügïþ”è&ùñ¿w3Ù‰®›³€pêò$  1Ú¸’ã¾å„KVW©$V-* ¼$u› €ýÿ€Ÿ\œZFËS=½ ,ÓÁÑbõ#M7…m-~Ô}ü/¹úô[m«ÊÙÍŽŠÑÜèeOX5KЫ†ø ÝŽ´ Änó{ÿo홯bÖ¬]|§ˆß­ñœg,¢%¤Áãjèôdâ'º¼P {DIB~øF@“³Ÿr·DñsZ :<˜W¯^è-Ÿ”ûæ:Sm”ò‡ÏJW6{B­3£p©î¼nš¸†ˆZ£Z1ÊÒv Kývd³ã­ÈàãÍGv¯î.A<ÕmÙ,ñ´›ìˆ!309]QkžŸ8#±æû{×˃º‘Úznصߩa´½¬Ü M|%tÛƒ§¸p(·õ½5XS Ùúv›ûßÒæ#æÂ±ÍY÷.BºüL¾ ÖSkK—X¯30¶¸åŽ€}鸈ˆ8tvxYD¼pHe¿WRs «&°k2ßÕ4ši*>Ä\ÄÀ¡µ}QKoË-0ØÔÚØ¦ìϯ *3¬âè¿B™ A YœØÅ.(úM$´<à\ú5ÔºÛòäµqõ´oÂ%V~8+¤:LÄjظ¯¹_))PM×.$ºD RôçxmüÇ0\%Ý,tzÞ‰Ù §¾È«a*\5áw…ÏÿÛÔÒØZ*¢½‡¬Úñ¦km ×—Ù'Z½If«%™¬›ŠÈ€°ªø#—WÙ9´øRgCçLû£.èQü±ȈJVñ‰rß`PDåV"@,zy ×8Wé³}Ú ‘››ç` eh8ëP87ã¢Eÿõl-ÏúzYÏ­¯'JýªúkÌ‹H&_í&¯±¾J°JÏ!µ&™ûF ­-ØÏðNê·Å ×?™’㯸žyHŽ pÊîšÀ@ó$¦WsŽ÷mjÕ;`}Å€6Gy¢‰º8²íXåý*!Vïêø_Q~úÉÑd2jr˜Ç5u¹®ÚL)¨ò£//­îÓªþóµíµ´ÃG:`;o—×m;ÏÔ°á$›í²û"ÓXèNµ»ÆÝ–‹´¶ç?Ö>…ŸAM–2]Œ7V,-·Œ"1j1ý:CÀèùOž1@ “ôò"á‡ü¤ûü±•jSùa©Õåás *¶-ÂÇ·¯þJðݨ›%H PI›ÎDºV{ieÝT#eZQNÚíÎo±Çji™åkzªÊ›- ‰¢.'pïËc>®™Ä «t.L´g ˆ½ãg>¼OúZ"ø“ g…×¼Á¯ xQ£Øá¡JU£{]"%Ë¥†é­­£U¹XI¼iuXÈ:zS&4£¼Ûåø…â ´$ˆr!íÆ4 ~§[õ÷,<]H$²¡Q-Ii&†°Þ ÅbÅ_Hýî¤?]ã²¹dvw¼Öªjz½2IrÒ»4‡å%Ù? (ÄhʳáKé›· ìÔÆµ—«÷g Å¡«V"zü±m=]•’±ÐÏ•ù¾ªÊÝu—ÕÌß©þ^1Ò,7hì<ÀeБd¹0Ap\ÝV±}†˜:Ú^dïšÕðfO<²8ƽÓ¶ìæoµf-l“¦áˆ¬± ÍÊX š ˜a½pÊ™]tJ÷^Cʘ·ÉhâGšA\ضô!q^}`}Qa•‡;jó³*ßEˆrùþˆÚM#ë©Íûô¬ÜN~8m¼¬y ‘góð·§Øu‘¯Q-»u&Ó¬seO,íâçïÇxïó-YZ½’`Û$:5)½u47ı\^¶iµ[ƒëÈ÷×[l i°1ÉùÍ9Ú²j©z3 œ®—‘BÑ8B@/×ȸM†ùü{75OÜë¿2q‹Hñ›b¥Ú… ùL éP\v·àe˜ÕÓû˳)CÄEõ—’Rd OQ¡dg½Vi%`ÓmV™Kë|z} ï[¾„OÜ4|ðDê!¶‰B8¹¨œ'þ³çý<8•^2f¯Gr©9rä·[Üpú³Cö4ßò'ÒaÔ?òXHd½ÉGDeÊ’>Ì-SñÈ*âúÿ^ßÑžô’ðÃõ?©„²nv%óç.&‘„n›çWët7nkÚ‹Ä:8Îäè#‚Ñœºî÷r‹~&—+ÑKDø=™Û>jfÌpÐ@aÙ(áE“¸ ¾öSì•N{s>qQ#æX>’Ӥ̘ŠñC3xZWÔW4XR°¡!BÑü ˆaÍ û^Ęª@nëŽMj.Õ3&%pWå[f-KH²[»AšìÎÙfƆ}›±î¼ãÇló®*!Û2Áró+p«åüXO© dFLz÷Y¥)élHd|SÙ2# ×>UµÎj†žé=,J K_ÇÒòþD2m ÿL µn×swuö#tœÚˆðÏ›Š—ÚCe ¸eˆ×²ÿ£aX%äÜÓë-–(åêž\Ja„Çš@P]»Ç­7 l³¸ºhÏÛÏE=öD ,åçžf&u’&§ìðò 5%.ÿCùõm ŠÉڂΔŠÛ–Ù¦Ä;õ³fêHaL èCÈ:¼©Œª)p±8sEýÕ˜w:àIh &æÙßì3=‚CæY 5)n&aDTÕk‚{ÈDH]DZúc^y}µŸˆö³R#<Îh'£ÏItëh†1ÿ’µqê%r=Ü~ öÓx罞G ÐÎфႶ-ˆ†º_¥×Ãß›ü™¾F‡šM.o¢¤7#_H‘·ç¸G¤¸ûY?{8ÙT†üp¼9ò31¿Š^µU8q¿ ´<ö0ëAcê:l­X¶Ü_fœß²!_pÓ_Î[1Vd:m³„^ëÃVjÜ\®EeKûÆ$ëUåë¤ vúžB÷ÀCpp`:nöÏݲ>‡ùø\ÁÛì+¯Éì01­±<ðÉ xªIè–išz_<[;¯úòéUÞk…7ë­fru›‚¹ëƒDÐòŸ/NN#+Þ“·u§v»â…h_f6ÿÔ ODÐQGž‹Øø„óHºŽ¼v­q–Œž?7vºSüÅ…•ÇEüöÛ_·&UWõmwð½ë2?øµqq‚ p4©yØ’†LDm«Ïç¨ÔÚ( ¿Öö<ÁÅÀLÅõKñŠuvèúãíz4yÌN•¦¯Ææ$4žSÈuQI=`íÉwÍEa—4;—¤}òŒì¨4#}¡|7…ü›Âgö—!g´Q­ž—®ñu"Ž?ê‹M%ä‰ÀŽÆ­Wis«õ%Gp…1ì<5­DáÓÃ0osc¯û÷_d-ÝçaµQÄ)¬;A“4ðžx3+ǪRŒÏ;±-ŽÅ~Ù÷rà&žÝ3 Œ•CÂØG¨A‰ŒxrÒå+ÓMÂÓ?`ÐYab,¶#fǦË9©Kí‚æ¼Ö”zŽ5(Ú?‚Åcõ$áò²¥û~»³Í  nüŒ‘üCÓw\¼NɆèÂÙÐM—ç&åŠ-=ý[34ÁÇÁL,êÐÈ4VE<ì6å#ܱ´Ê®ß«ÔÇz-Ãë‘4>pi1ÜxÕWB¤Ø:Ò&MI{üLåÍa÷;¼XÐ}œRs3p‚±«ÃR3œ”K€¥Ñ'C޲!èNbõ•‰–x·â¾âw³d÷ï3¾ñÖFú§R±ÜÈ(|—/$¥›bp^t³f“øGþnf×S¡•ç©LÊ\Ãù©W) ‰OÒ$Š@ù²0]a‹(!Zc97ƒ#¦çóïKb8­™X±_¬¶Oå>H§Üª’­‰·Ø!'ÄߨgôÁËi2Ø5à ðE¢§ÌøHn¸ÏÆo"ýÆÙ_WLz|ïuãü™Uñ‚Ä‹%`³aµÖH «¢‹œ``D‘´Ó¨‘œØK­Sg}ç  àܽ†¢Áߌ†@  ØìÊõm%Mzì5¤—ÿ—ÃŒ/ü2aÃM£ÌB•4Œ“’è°Öf¡­ü:‡NÔ>À¼Ø¿ øv-b‹ÐB'óÑE꺟È’&­iÂJ‘÷çKdžƒ.Ñ#›Mxª¤Ìê£çÖÕdžHøƒ±½ZWÌ•¨pãÕWÍ1cb½‘aœåáø5×K¤|²ŠÔpX²ßZŽ8Kk­ðìN>ÑhÈÈ[¥¸´ÌÆ¿C9yI;{6úH“zé#-ÿ ½Ž` ÆÓËÇcŒB;ó}ü¯"´ªÂËÒ›lø>Í‚ÚKTÞ-u&}ÿ›(£ú6Íö9Q¼Ë uú®H|h’vTž®´yñI¬ª9a•C=7éŒÜÃYc ”Ôª!›êìJ©uºCÐ XƲ2¿Q„)}< £»‚½¢3À%†)g²Ž9_Ix*dÐ¥žÜ÷“ŽCÃóêÉ,¦0g®‰1÷ɇհÊ+n,ùü|®Sê-70Á i}Œÿk*êSŽë1Fc!l¸£aþÚ9\»=ÐwX‘ÓìÑzXñ0Q¾d,NPEøöïîßyóÃ>›x”ª(ª ÜÑN»üÒö2± °nÅ\ jÞC£p kú†ç·OPwÆ[ˆÓÇaWú7íïPs¹m¼­¢…٠à3†%ù¬ž2”—ëÆíNšÎÂ01ÛÇ‚nÖmCæGÍáØìå…ÿÍg@S·Åq.PÍ•8y{,›óQ$‘B5ë…;¦^/2Rñ¡¼O»+‡ïSxGÑ2ÒÿeÜ^V#ÌÐ4à«?víëçGï:4"ÔW|Kp=™o‘7[ØäkKë"eQttI\:ï iZ[bù3ä\ƒ'zeýâ̧îV¯Æ_:8-cªTrü—º¼Y~©˜L§pšOì”RW2 lK'uJŸO‘éÆæÌ¬¥s­ÎäHî(üßc€ù޹Ăw‰@–®ç¤ n¦û¤ËÚ…ÙÛ¥‡yH€3áj3Ê«GÊg“‰*.ö®Ÿq†!".=“9‘~×`ŸOîg²”óïBä.u»g¥c w‹_³ õa(/yrÌø÷“ ¦ öЦüXIèd¶ÓDIŒa!1‘TÆ œãÜF,?X£!˜V ªSûcMói]“E_L°åJo|÷o\ÉÍp©]úÀN Qµ$i\ÌÝR3±EdOT"S”…¯øj [áWÖØ†]Ì_Ùùj(±æg¯­¦új6Ñtƒù†»É3Ÿ™5åׯõ…¢cš¸Z>ã_‰ïÛ´[wd¥é!  ¯½GåàþxÍ8,0ž-LKØp@´¼jõ¤ãÉ„ÕP@&:sñiåësH>|YŠ Q]*¢R°y¾ÐFE—¦§Ø|å\ònÇÀfªâu1?¥•´))ã¤Ô ÌöX–Œê§–vdã2€cÜïáÅ#‡ÓÚðæMS.š* + c:à2ŸØ“ü5\·ëÃ/mH­“®¨\+]:T0Õ*ìRåPüòß¹ןÕxtöðêÓ»??ØT6øµ|A|¸˜£Ä N^nãÍ Û{{•Ü% FÁ?«Wid^ ¼qbÛŸ¤ê‘ô*r'ã<“Êâe´ ùˉCЩ.ª»gb€Ï`l`‡F–µ„‹îWóôj99ÉÂȾ×D(r'üÏ ¥/N_ʳ e»Üýy^¤-ÍJ!ËŽÌT-â¹Q$a ¼ N2Z×µb—t7Ù©þÒ*÷% ÜyÀzÊöl’%ÏŠˆj†5†üNaþ¥DûÅÂ{ÿ-~eE?ˆ¥ÖáÌãæ—0’{›va¸Q ÷` ;P5à '8Ûì[ò\µÕk1+iMqÌi¼.?³éÑ ªb‹¸ÅzmzCOvL–¸KÛ'cá³TWÃÖ{ZEe»Ö¦¾• dúE<ÎNfaõq¼BìÐ;©šKõþÅÄÙïÁÝýB _ œÝ“¨HÑ ez\.ãYJ€Ó*)c»&W¢cwm |ÖÈí0'0ÅÞüó”GÛ0Ò¹Øz(¸ã¢ä1ÚœéR¿nUÜYÓß`é<ç^4¿y#4<Ñ,]ŒiAˆÁ+ýð‰j¶y²ì­ ªæŒÃQ»½?ìEü®¨‰e$ø:N'õ7•íYgwfXÎ’„ª^º‰ó·l½rˤ hÌá 2R® qĵ–B5ÆÖcâ“þËNKœ3&P¬vä•Å×w™’L~j_h”:¾.ê6Bô˜>Kcj”üa—:µ°~r¿g_˜¨ã/ؕȰaô¤Œü_èxÌRY¢Ê£oÔs±Ή -… l•(°Qû˜Y0+Ó%`avø|â»Póoη^ý®÷óœ‡ZØÒ½ócMóÍ# °ŠAÏ*ü_²Ù¾¼{R×Ûc?; `¬˜©§{^€è1ÌK4kû‰r¥iѬZãÅÞÊçskð€¿2è E{ 7ü]寲y¯kà/]ÇÉkâf#ó:² ^+“í¬š©™Å$†SÔCŠ-i}¸š>'rØáÜá¶ò8'Ö{ؘcg'£sŽÔwR‹(‹'Wð´³€Þ‡PòãÝÙÿ3þÄ!§ÈÒðÛ\d§@Æ¥)칤Ïõ|Aª“×Dûç-󨓚°‚ˆü=ù— ·>×6ò+ü|‘ªµÙa€ )õ¢PªFjßYãqçrÝK½ô6t{ì€Ææ¸Në‹ù{íqã¹Ï°}9%4À[2rOF FŸfÌx¾jÙ÷ñÛÆfý|úÀ Fž#«ß… žÑ1†ü[‡Ûè=Ûir ž ¨ëO×s$ONÔCÈ6ÁÀYôàÌKšîA'4ÙËÍȉ$QP´æ´à×Ï;;äå¢M b}3+m"¯Ú¥']bÛâÃÄ4ø‰æÂ¡¦ìR‹o&Áؽ4wãvü²Ž£šZ³~®lœBóå/¶.®´©ídIs¡«*™ûÏGù; šç'ç¡ µßr :m?çfg9t%S=?ñ¬r}yTÛaQâ;˜¯ƒˆãZæi²Ú S¼DŸÀå´Y¡;ˠ÷2ó½ 3¿TL"fÈ Pn ŒÜ=;O^γ8 ïdõÀ×µdDì=ÏëoAüÃÀŽš ,éQw¾²Ujn²õ®D?<±)7åqͬM—È6‹Ð‹ˆšÈ"¨È˜Å"ü*fEÙýP#;ƒƒðîrxÈ·’€ '/s‚¸Î¼öŒò“ÜÏÕƒºøÕ¤ FKV20˜áÊuìü1‹÷c*¦ia¨c)ÿïC%X÷Q]Š?HKÙ;nð&¡©'\4‡{¼×¾+ÊÇÈášçu2çðcu·‚¦?ý›ó£¸±=¾ø!竺@ðšêó ©FŽ—;âl'ò²“÷Šf©4åf¦ê-›xÀ2üyÛaå¬Só£ÆÀÒ!Ÿ¢«ðÔ/·3Õ7tÛ]ø¥H K¼¹qyš³vËKÌ'¨Ðíxðÿêê°Õµp͘³êC—y½[O½¦kx  ÒŽãUÏxÈMTIjP '9 8Ïvʘœ<Ú¡‹§gX YÙíZþãp­ü.L‹Î2²…S 0†Š{åd¤Ê*¯ÿç„GÁz™eçJ¢?zqíራzX&†ð•Äl{ã´{³ç$×í"˜££o]Š¥ËìyžÈ€•غ¾Ç’²ï :Úßåo±ÜšA1„üº2»h¼=cÎ=êÆË‘³Æ‘MÎ qÐvö÷¥É‰mÒ)ß ½&v.¥ÆÐ÷³5WÏ´®V§Ü *i8ƒ/-*Š^Q*󶇱•õy.[Ú©dܳû­3¨½ü?µäÝtçI¤Âþ£¶…FQ§°zM¼œ‰Fï ¨à©AйӯóJþÅ|÷„y¿ôK˜H±‹Théè.Ù²c¡?½Es¸/ü®˜z2ƒ®í.œb ~¿¡‹ý6ùõÌþq+¨ÒQÊ‹= ¯í9â9}¤„ÛW¨ŸwcÓ§­=¸Xœ]~RCúv†föu‡0‘O,äÜG­‰BOu·ÔFbŸâfØ\W^ßê“Dº|y|f2µ-³ü6A8P@·€l•?µ°ß-è‹-ОJ…»fÓµ¸üº”{›îyËS,«B6ß1^¾¾^ýA%¥»†…Ø 6­ýìã GÔÁÉÞMÇb\BÞ¿WŒ€#ƒTM:ƒ#br9ï4THN•‘.]¶r᱄؈ÚÎDRßéÒzϹj—ƒÛ/P 0 c–iý;ü™nOv0CJ&ÒŒyk†œêé±@_ýñ:Ü/ÿì@y‰uÝÔÕ|{‚Ÿ’]ÏoÜ5oi‘¤O³|ps×·d³ì¨Šm_ô܉VCö¯€ÏÄelFáÇ$Ê žux×¢yXä]hHÊ.Žý³»e%ÒW»ε%DôÇxkÍR ñ~w¢1øüWµíV±—àÀóÎo<æ˜[Ti×—rOhŠ„´~0·`ŽÉKú|ì’æ·õ1«ùPáMað]·Sm¾9Q›9¡€ô|(¥â+DZs‰V[9Éþ^^Ñ@çN¢t]=OµŒ4Ï{xX>X†Ãeª[îç¹´¢ˆŸý¯mŒmë™:>U è1ý æ,T»ÎæJÈø¶6ÅEÿ…À/»Á*‚ù:QÔœsîºÀG‹„™¯ÆhQ3d(ŠíáIöUMÞw¡ù‘”>oýhµ9ÿLý¸K |‰ú\ ü÷3t`Tš|û~è²~ü0Vo’ ‹ûÂPÅôæ:#Ì{9>¦ä·sx‡ˆž[fËÍØˆu<×Á†!¯È?&/JÉ”®xŽL‘r‘àLˆg‹&of2<ëÖ¶¢Ù3_fÆò”g‰Œ(¾û82<[ë€UL7bÜ·ê~šÐªy\ž6#Vîwˆ´¾£‡†|l•7íÙóôGØs YcFù/“ß›HÐxóûȶO×X"™B·.&{½Vg–k ®L#åRTG¬Wò4ép~$>+$ñq+"q>H˜¸ö ê'í)"Þ¸JñüŠž l†¾ ´±n9ø²f7ãÕë÷µ>D6RJH—‰yiúkÊn€ÂE_/·ÞFj2.óß²üJoJ’ÔZŽkIVÓjÍMùuÄÃA•ùÑ2´„axu‘ª)ßÅÍåÒ躚CÖÜa`k;»g ­0%} «GI­EÑK¿2Ó¦!)4ñß0ˆèë¿qP½œkÁÐ3™rèt'­‰w•Hô²qœO ò#îø½Þ,ßµüo»@ÚšlLÆÁ/HÇ.¾ N#Óýúªùq/èZðà· Æö¯Ž©˜7[sRñY0R=mÎ}z–žOÛfþ¨¦9 X’d€†Ð뫺<Å·X·8hk F89wp~}G_¢¼ÇרQ³"=­P= Ï7´µÀFl¤Ð³j€‡u§Žu}°hZl‰tü¯ýÁU¦>qF¨TÈš‰'æˆùiL:Ez$Á6Ýoõæ*¢SŒ ÿâ4e»ÁßQÛ€”ã÷n9Òz1Ê![:ÛQ7¦Ú³tÅxK*q[þŠ´DØ[´!Á‚dÌU;KÈxß÷|ú]Õ„u¤qm§šY.¥~Ùîü‹~Á|Ä©«äDyÌðÊE€{6­ú´ÌîHŽoÚ",#âGÅéHÚ©¥‡`S¯-2]Ú߆dê<9!¾ÊA±»QÃâîÎ XCoÔTÀ´<‹ädݳ7´cpÌÇF'Ö[¾2Vu^Чz¢wIDgÂ¥¥Pàã“nvdÝKkà]I¤“Ôƒg 6DY)k¾Ü4K¾ Kó…÷4‹.ô4V TépºÑQ›†%ů7\S|[)gw^=oBïØ†q-¥œ´†GN£Ýl¹†Qþïz›ª:×!n&j”µ÷{[ìzÇçÁÍö >8Þ4…þhÖ½˜õ æ üûDlÕ"'DŸ¨ð­š”fdø¿ÚÕ‹YZeÓ¦- õ½ ¹QœÛÔÌŽ+Õœ¤ë?%'ë}?FVf£  %üLÜ ª%ˆé֙ހËÿ‰Hq^a~\Ý&Ýš¡LÐ|±Cr™'¾íù lŸÜn³_Ѝ’4[?iFr•õÇ5r‰À—y‰‘ÃcJ63ù“w×Í8 ÄvgîÈ… 0\ÆùO빎z¸ßâ"Wk{íükˆÀ]ýÐ[õF¸87½àj¡~¯»Ú£èv".í ±Øso]¨FÞËî’‰z¸5¬Lù0oPNÏ'o‘lŽdí»Üƒ×̵MÍ‹aÏ«’æ3R*òþŒ"õ5À!ï&é7üMºwºm•Âû¯ˆdαC8Sý6`þ;½öQ1Ü"§¤¹o¤üL˼˜†¿nÚ%ƒþX_¢N0€_¢ˆ…£x,HÙÅZädhõñæùÔB(ÉQ¿†ùU Q°5Ë,C¦W”°õ­DòÜMÍž»•±Ó¡€ã2:ß®Vöë6\|Š@í6¥#‚žZ8R¾ïíN–-ó©KŸ+«®±Ùœ÷]­Êüû"¦B|²Ûó¥Ú «µ§Øhx‚Ý3‹¶Ë§hï—Œò .›ýÓ0xQIQì§Ò–zé/¢‰•{½2l¬9Hÿ¯³”¤Ûêl”Û®C'kÁ&.6;q£“8Õ!øuá·âŽŒ"Í\gwñÑ” XBÆcµ¢ɼ•È)ÃSîüM¨Ñ®GWÛ¡þlâ°"^¨5_žIÅ1 ÞÖ?]°•!ë vÌ£Ávyß&[Õ¾d”Y·©è«^ oíŠóê£+~T‡`¬&°N"ŽZ¥‘ÛuMÓ/ýḜh”>H˜qƒBÐü"åÜ9ˆ\jÓd —DJþë§CöK¶¸/rÑpÁ™؇9Ææò&« ¿I˜Ðá÷YåPëYN5£dHí³ÿ´Ê©íиÌÙäÑGX:&ˆð‚?VpzØn¡8SžU/§na|ßšßc¹¬´+©TU÷MMXqÛÌR’Mg$ó™#…üMbô,]Çâ6_óWPÌ‹¥yïmÀåYbË<)£í0ùŽâ©·ø•¾—ÔnA(Ž‚ãO•Xž÷Ö‘JÉ)©NO&ú‰¸U> ÀDýUõ9‘Ö4ær¾µ“<i 4Çi¤Š…‰‚î&¨KÚg7·¥ÙB<2ùõûïK® ¼S8Q;$nE,Zæô®u6ô‡n$ÆÎ7³E#P€©; šPH´™Œõ´»ý}·Ó$ÊÛœ¬é,0P ¬ºE%@=ƒ…”BÀæl œ=‚0Èå}&ÿ¹ªdÂylÅîùŸµ¡‚ítiä '(°³‰ .m :E ·p;b:F±^¦®Uü1Z«ë©ú ÃF ;V“Ô•Ôæ,DÜà”xqÿœõôÎü‡Èƒò¬rÛ<½ƒ%D“‰¥(¯Ù:µÒU%J6µ„Q¿Œ997çG\«F¥bÛ¼,S†ÁñÈÝÎG{¢½•aº ©¸8q¤4öñzÑÖ )-¬kÙÛy(ciÀú¡É<§:`oŒ3ÆÇä,âmEvÌÂÓd„f%~`uú£ ïiex2ÖcäĦ”§R™ð8Î\jßêàšþÕÇõÒ$`÷Í“¾³Ù{ß`(YS,0h˜ûqs}BóI±cnW ÞwB5׈ž®ù“ó?ö²ÉÎÈ÷DÜ óüMqÿXüÅJ—u®v5Hž ÔÈ›…K·81âV–A¡F Ž›¿Õ#KqéOŠjûŸ®]µ(Æ * !f0Êä(ï ¾& pÐJ_„â,E÷5é†W fœc.D,\bkYŸŒÎ…J÷1.ÊÌõ°´Ö)#däP.n¯¤ÜU[žB£+ˆç.ÐìþÛ4-þÅ0HÎ%53TùÜ¢üÁ—®%—Ì×%ÜjF“&„}z䥣)Í»€~ÀT¸3‘ú˜ ŠPçõÊtJœ¹åÕjôÅ|MFðXÄKµÊè‚vb4ç+k÷ÿÀ;Œ¨÷ÅVéêÇÞ_剰9à áM¸üM’Ÿ·—¾Õ‚q±ÉÒwk§{ß` ®E&aÔÕÝÍÌ÷tâ|+ýÎ|†ŸÈ˜Wö:´Í@|Å´àqåZè}ãèœj B¬Ù óOü«3ÉÂ[Äk¹ðkÔÂöáÏ8 à›]äÃ)S— Ž«é-·nù·GRŠk-RëWº‘o‡•ï=ä`Sb,¤þ¡¹EI=8I3ZÒ×ü`­kkH«X¹€9è5Wh ^‹ÜH­T¶Î?RLü¥§"ùô-|©Äå˜+î[:ÃÍE‡k%剜©d8×¢V^â~ñy›î“÷#Wž2æË1þ Ïu΄ó1ØÙõOggSà.¨äAG6ëâWòûýÿ ÿÿÿÛÿûÿÿ†ÿÿÿÇÿ@õúÿúÿÿVÿ,ôÿÿ ÿÿÿþûÿÿÿÿÿÛóöÿÿÿÿÿÝÿ÷ÿÿÿÿÿËÿBüMuþŠÇíÝúµ¬cŽÀ¯qÆg~ ïe>ܯ{êiÀÝŠ(UŸ‡Ùò¥•¢í=Ë®×3i{È/‘Øâ5@Ý9TN'UÕq2€c±«6Y!  îsHãø­ªè05ÌmMœ¯Í70oö8-Õ±Ï.d·™Ë4µD÷$’t°Zað}ò¼!½já¡}˜þ“ÊíD©¥ }%µSŒfTU•§¢í4OV :O^çàÀ¥J) ´}µÕq𔪬1@dKý PG§™f!oõíèôÈK(²صêZ6‘]ê4%lÆ!ü }ÈÈ&Ý áïF)Šf¶óí床b~ÁôƒgÝ÷e¿£½àåyuÙŠ7ÅVT'"•¾vL *ñ×ÇRÚnʇðŽ.õŽ”ëß å0‚=²¼»/î¹GjÑ5˜¼×eO’YE©PÞBe:dTn©U<Óë­Ó~½;GºU© «i^¾q¬™Ú3HtÏ]±Y1™"Zm'ö û™¤JþÓ&r—üÄQ“¤2sõ:„`R0MÓ4ø » ÜÄF,ìý~3d’0ÒE1ìxPAíw÷†!1MàÏìý^¹VѤqüJ9¨ï\ë<§Í}ÚGÑÁ !ØáÒÎÛHïØ(ܯœ)øÆ%†hºsžî”­bQc?;á¬[Ô˜4<5§­;ÂÔX‡D M©*´]voJ)`Ý@'Ò¥J7Fì¨üðg\yÒ¬g(›XT=¨ÿx2ÈâE3®Ö ×¹#ÍÆ½ˆÿc‡•6?Tg/ôü1ù¢(PR¸ Ò˜¼íyîPSñ>ðfB¬’êÞÖÉÞOÚ@ô­¢-:ŽyΤO².y G<ÆV­Âu*‚!çÅ´(*ÒxY¥Žø.°2þW¢=mâ»×kß›{Á΄3¼t•¡¢tÒ†ùv¡;Ñ×m¸ •Ž'T.n`0¯Ëc2±ßJA¥ÌÿÊï ²ºò4wùca.³iõ_ÿ…[¸: St ñî3Ð5°òÍFÏDtTÜéTkËvlŸ/u²”{RÙ÷$Wxœªa=zõŸm“ãióÕ”¥<Þú¬Š£¥M¦ð?K°™Zè€n+£. &Æ 9eÞü6|Ø;«Ãz0<ŽAap“×_3Ë ìËÝÁm2Ž8ÅC¥“SŽÛëPý{j-OÄà"LWê„—É!"²RÒée¢ï:ºþ˜£¬ÂÊìæ¶Žð·¨3 iIlô¶·[_ôؼ²³ÒsÛñ i/Ëq›ƒÆÐµ%5÷É$š— SLf!-8íâ5Q(Ñ%=·øð[n“ P˜ŽFéÁ¦´wÄ[4‰w°]FkŽ>=¨þ :‚¹ÐŠ-¾BÜSÕºñò¡ïÚ#¿Š:-g•¹… ªw:cL8 TÓÂŽºS‘pņ xìZäx?”&æ“7AÈeüŒ¨1¯e\ÑøíÞƒ@`zÊŪ†Ñöü°Ú¢;@6ZÉ?´5†I¤ÜeÛÕZ<Ïu0æ5çݦ.løÝjã^‚¬CÆ|±ÕËÈu:Ëä:Åôð¯É£«ŠõxSl6+ó µârŠ~ÊpÆ÷$z}XéVzç=´çdè°›å‡.½ê7_¢Ö‰GøÏâ"½Ú‘ë3eXÿcø“¥ÊDƒ~?.£3e1ós§X;¹9Ñ Îf€b˜[D~zË.Ö{ªÕºø#ô¢G’7\7jhõ]7ôõâc¶F½QcSI9ê|ŒÉêòeLÎ!ùŽøp8öQ†µœ”G9¥$ŸPq(KD9³Zk;ü±àãÇçî©Ë l VæWé,.MЈ˜´‡Æo‰]rþ’—K­Zßi²9´<ýS0(F¿À†ÔXÊÚDÇ7e®¾—ùî“õ0ÚÀì\:ªÊ/ñ®°éËcydwÁwÓñ´äΡÂË2ö.qÉÿ2#'ê(r‹õÉ÷™æ·-Œ+|"K©›ÊAcbüO¥ã°‹u环 Ìô¨¤ñæ` v6Ì ÜþÕ>$´”‰7`Pê,HVæõÒuu Eï9))ëO•ŠÒÉ0—3¹Ç¤1¡’ÁÒ·é7%¨%7Çï6懬—bÎåÿ:{¬=7V™BÙP°J§í—9è©#¬ÈÓ ¿8{{çmnéÕ/Þ>vÉÄîá*²»ü°îÕǶsã…E¬¾;—pnOÒ8‘ö‚VŠ^¥’CÛjqrcâ$îén¹£øç{äêäì ³hNBqÜÊ› M±6¼%[KåƒîÈE,Âß(ú•E> mͯßÿä]ˆš®½Ú$¨)§O8R§“êðµ×8—Çv£!Ž^ÒÛhÜt¢ lCþØÔúœãÈ- ¬PÊä³Þê¡Dãºi¼("te ˆàqKuÓØ¤¶1dýj)¦ÔjÖÏE ÚUÞbߤÌt•Ë—Ðа,¥ðé-äçÝþö™1C¢8ÁÒ}Šcr(Xçé!P‘g´|Ÿ<£RFk¸¬Àãð€31ú²¢ô `÷îä»ü®Ûë[1Á¹URŽ fì¢ü³ ÑE[mj"$^Dg:©wXñÏÀ¶ðª ÊVÐ’+Üg‚ŠÊ¼4ËðÛ|CG·Bâp¼ú×€hû°ÍZ•ÐS0ž¿®)Mšo¼mSÞë¥ïðü¦ÚSØêé­·I6€XVKµÓsæÇùÚWëØ ‘Aั2ª’º/Ž Í »è¢ý™¯éŠGHé‹÷EVbÂjfz߈déã&P€6¶œ6àɰJ‹å]P@báÐG4£ø ëÀM¸ŸÌ…Ÿí`¯%}3ß?ŠØœq‘gtEyw;$ÏÕ>°Ö²#ÔÏKÝNbµV¶@©ü3ôÀÒ9œR¨·*߇öùg=/•˜6*ßÊäLÚf'97²½ÍÖ ®ÑZFóPÅ ÕÑl“2Øë„¢sZ«FÌ·°•ÿ€ŽÜÆêfšôŃ9Ã.†„E9‡FƒT.S¯ƒ…Gø?¸Ä^»?‰e7ƒYÜ¡M°LgÙéSN p˜òìË÷ªŸm2Þ% ^ì²(^¦ð3…`ÅÜØâ΋¾Á3(ŒbØüÿI\“®;ݤçLbÇTG±ô÷Mµf¡G‡>ímü|´îß‹NKÁV¢;îaí|xÕì½c`¶(‚=•PÀ-û>§&šQ¼b]5Äêï]/]&ÈÁÿd`$U½Ú†Âd>uP”Ú쎖m®·>Us5#2Çi’Ö©£¶é쓺Àùâ¸.(%dÒÀ8ÿ™ÿÕ›Úĺќܶšï•vd]ó> 3ÕaO«ÊXƒ'ÆÍÐêÏ#±VüQþ‡Z“åw#á¯Æ:;Â8xÎ÷˜äIÃ0`¨«È ¥ç²ýa%¯sSɉå_38»0Æbÿ?%@L ¨˜êÞ•ßé—!ˆí2ü¼WÊÊgL¦¶‰Pšø|\ =²\^‰"I=u¼öu?öZµ†Ýó(t ÍÍñÉ1’N›© luM`äªù1 ànªìÔ+Ÿû@P41bDËZÚ.ÜðÀµºYDü.T¼xSÒ¹ReOýÚƒ7‡IêHÁ;b ( B}Å )²„¸ó§(ì1ãÔû#`êåquÍ{”J é"–-» ©)‘zKFeÞrÕ¥I6ÂçÃfflRpvÐ=eoùkSiퟆ¡®†œ ô?AyNµôÆBýÞ#¨Ì_%É!aH‡ý~"l@ [¤Hæòç4隤†ª>É.€¬üLõxmÄRwû¢_^Uò„ q–i8dŽ¶Ø¨ÅZn¢=¬cúv~IЇ›ò££½ÉÅYE‘Œ*Ì1íª4r¾ ˆT}*éØ<§¾ÄŠ'¨øÀ‡.àñGòΊaçiáégC¢κ$hîâ¦.†Ùrßwš¼â68¤n·ÑõEÁ‹Ì£íÔ” º½ô{’´¸¡ÔÈI¥3T¶c°¿ã‚UÒäU ÕAþ±ãžz ‡óoݳÊç÷ÞÔY¤ÃLϯ"ÎK×¢2œ âK⪋ZÛäÞ‹ôÉ ½QRìÇat…ÝÝ-Ø„GO·âF¼ª)xlµ ¢üWï`Á¤RIÀãx×Tt>Kø–~<ň}Í%°a >ög¢x’¥â\!SÃCõóñs ¤y™Êša€‡Å¬ûqؾúk1ú£@áÏ\Ömêÿð[×­°¼o%}¹^ÎáÃâÇÔT¡¾O Ïq¡Iã¾>€– áuGP†·ðâ-œ¨@rÜg6ŠŸ“¤H° ²°LBÃ# ]VDÑÉI§É‚§‡Ñrkú¶ÅyDw¨B1²L&²hâÚ~¹iÏÊÊy°lýZ‘õoyŽ˜Z{·¡Ë M¤|ÿööçspc”•9쿊õBÍ%D' sÑüIý0CÁÇ/!ÁÒyª}x Z\Ѥ BÆŠBâ& Äñ„ÙÅ2öÓ+Ækl¹v7»¦@ºª!GkJx¿àÜC­.¥ƒ•5EŠ´o`ùÜÜD ¾Õ6B¹§ìœv/éýòŽ*RCZhù,7ø`u2;î•ÕL¡YrÆ$Ú „Õæñ³¢Ç݃­*WÓBÔÜé,Îv¡ÖÃO"Ü›·öpðí:IOÂ)†&Ue˜&¦Ø!—TÊýxKÚœ*b_ãWK>Ëó”>dX½h2æ³pТŸ6Í‹V9Á©u£Þô¾ƒFMf\ Êã¬ku¹ÉlL®æoc0üMŒ«™ÕƒÆÂPI§€:¿Ä’ ßö‘ïád¤²?ëé´·½ÿ!T‰=ù_ëxÀW²X‡s‘™Uc¥°,Ê©5è:F…,«‹ÄA}Ô¢y‚MM=bM6ûpÔùÇ‘¤'m ]A³ý]L›dIÕí @‹À £þM%íqVìÚÀluÎåܘ÷ƒ7S>ÊëVìÚLæ9ŽO )N‹qŽ’ ¬½P‘¿}… €™Â+K€Ï™ê?ÓV~Ö{°xrvPñØ[åVLo5l’ý´Jùᙂõ1¨DA<̺©½c¾mð—U¿É:« s_¾µ¦˜4ë“k€÷“¨[|àü{1v•j Ø3p[»Cnï½?C§v^p‰Œ$OòDcÙ'¦ba¼)—Ï»æw^8Vl`Ÿa«ŽàæÈÈ#3êQL_êƒÛùZ¾éö1Èæ*í» kVÒo•(˜tiC[z3è*GOůÞÁ#ø£Bˆ.ƒ )º×Á/¨þaºïÉ,4¨ßÄFudbÏŒ(ÇÄ n œË9Ý¢ç¶ MuLôÅŶ¨¬pËf‚•”®O$äg Øšû'_rìDùéô_ßµV·ä ”ÃŽÓžˆ/-ígCPËí‰~œW£ÕÇ ½|—­ê—Ózg׉9ÙénϬÖ^˜h~Xâ¿ hÞßVL…(ºË5”'Ÿ;ΗO+*Öo! ho3•ÊfØ¢QÍ^T”ûªèFà ÍwêEŸw6»ïGûH&`²ÞüX—í…7…܉ÆÞo-‚Êqˆˆ_¼$´œA¸¥†Ä[­fO¢Î½àò'täôíw|öW»C|uâRNïåÙƒ”6æ_š N‡ŸO˜M!¸gwy§•M“í[ ÂQÞšcý~®6ðG#ÌŠÂ nÞ3Vût˜óéV‘ÑžRwxÚt쯲ËbùÌ‹?Ý]Šc#aŠo/¸ÇtI#€ÓA*eîáôÄYs‚^ §,ÿû5Ì€'äÉ©ñïÊD‚}'{ ¢MëÆ~qo˜îŠÚư÷„ÌBSR[€M6ãÊÛ†¸Ý;KµTÞÉÉ&e„¶$áà}ãð]ªf^¦ÒÌW€Ô!«‘Á¼€Ñ3óèê\sšcð‹°›nìó äɤ¼ I2Œuh|e9„üJ˜þJ§¸Yï/Cˆa[±ÏD™ôa;¬Róp“Q±9M%•œ*vË\c_V" s±N«ŠÍbÆÁߤ,ƒàBÒÏYRnM(ë¿!Td{qÖ°;,ϯe°UB bÙp ôsIFÄ|´{fCikàBÛœÑÛ÷ê°C$°öòÛ]&¬-Xi'?8™, œîäBãj±Žì1›ÕiVKÿߨH‡ŸÉ´L†¿Å¦ 8ôÙÿ5â'¥2–d¬|HZ¹ÌîmP\@ {K¯KÜß0o÷Ó]!|7¯Ä𷩣Ǹ¹Äxü´­¬eóÅ’jF2%•ºüNP©3µ¼O~Ì›ÿ/g-¥képëºúÓâPJHHÞ™!C+Ûx¡À[†ê­¢)¬§‡Id‰6A&šM>ÔïÊÚÜæúàh#9û”]<¬cÌîh|Ú,2½Y…UMëm &õÚt3* Ë\N¢ã8'>d.u¾½ŒS¥)xß™$ñ]2óccÿ¾„ŸÁ'˜ÒÍöÀ(¢B®ÎË“¶U©cZÉBì ]NÐÒŒ¨ ;_÷s·±}ŽrFWH¥†³g-C†˜xebiªn€î\µóÀÇÈOžz÷£IÇ|~´›ëbn…¬ÎZ–ÜÙ¶aÞ.³ûI‡hœ£iû‰Ò¿žÒRU"vãü5{ gÄÕð ‰E¼¨C° ÿÁdd6÷ÁJÙ"…‰tK|xÝ ae [¾ôG’ÂôámùÉ‹µÖÝÚ­5X4¹;ÖHl1x7nfN©ÙVÜCÐNŠ-ùª1ëȨåìl_Ú‘ÿœÃdaÂÒÝ~ûËì{fÎ-½¤ôÏŸÙç¾ìé¨ «I;œ[”ðs®U ¹sK”VðººÇ&ñ;´1˜¼S¦Rõ$ö3\ÊíL·`ScÀ¾•ŸùO@L™»T¹¢Î˜} ì'E²¾} ³•v~GNQzÈ«ã½Q”"ªÏžƒœd—YIu-™œ?—PyïÎz¾<Ñ.eÕ©ÝIÇÝ‚ñY¿P¨S£üLÚÏa!«ZVàã{Ž7o¥XÉÐSÎQ‰ê‡±Ö ;à»Fh­äML6Ê…ÀêÝ$H5È#Ù»§—C½o ¿ÂÙ~®—$çŠG‰"9®jç~”lª^ýƒKÙ²dæÝÜE‚ç5_ô‹×TZx ·årBfž|û^¬ç ÜC£¿v‰NGlËM”‘ü–—¬Ð[Pr¹y1Ña6‚’"!¡2tu…飫¡ P<µ­¿™wß²TÁ;*/xØà}Ñ΀†NE‘FÝà\9œÝÈÕéð4ÃbêT9•$uqª{J¯àä%(š¿Òüd (£0>*Â:O°8ø™­<ÎŽzg ã–øä‡HÞ9®ü.J[¹×Z†´#rÖ“Eæ4]$U(˜Ð9ÿO±%?Ví"øx-©ÖÑÅTW ªNÆÐjºÎ`VÓ¡ÙdÈ/»Ä¨ùÖ¡cb¦x'àM/Ë©A¿[>]RÜ`¨6÷ô¹àôÀó6Ùÿëñ /ŠCÓºa>¾4’„UþäbÄè|Óã(×vš5˜mù½cƒ­*hE{è÷ýƉ­À1*å‘{h¹¡+Âê9â¼J]}£»ëöü. ñ)‰\Zêÿ8ðõÿ˜£"LqùžO?ãžµ–Õ=]†YÖ*’Ëø¡(Æz÷*ÉïU²»¼n9Ò5ÇÿÍ' 2$;°* ñ1¬ÔMÖžeϲОQ *h;†º á.eg':y[1m’±jDÆäñ–,³e± bÅspÿË6­ý_c„Eˆm›!UÁc¡EðÚL52NeÆy0çÙ‡­™úL}v~Ñu^8%;lÅж×ô‹ä},ÏèÇ’øàqÁ¸bÝ––À‹òø-S™•\¶²{èúY9i}âX­jûÁ\º†¨(LÑ,üMu.ÕÞ™ü â!*ôvR–ñ¡ª¶J¶ƒÂGãè¨e¡'‰{·&%Ð%C`(;é$æû욆l+óž{îu3¥Ånæéü( AÑþÆOó*ÝÌ#âíp­kh[à¸A³äøkØÈ$^â1[C—{¿![ᜈ©W +gCb!o>¡PágŠúBxÜØ—Ü癄Äj¤×´¨Û®î¯Þ ”éx¶Í×;‡(âø/[ØIH—=gKôº±Û×[)_ÌÂõ)YM3,-˜#üdždn+Ò8•âúèOÍ{Qü¯1Aü­ýX¡©VE´²îÄ¿>ž||7†mÒ•5ûü±žt¾„<ò»>Âë·ñÌE•ì9${•æŽ[ÏWÀB¨´¬*L.7àÀï¯ÆX“}Ñ”ºÖhËÐd«W)75µ )sŒ?I‡»‡Ü?±°8ÚÉNIé³ 2à?ÝКÜæ?ºkÿ(›EÆ« Vö`ÊA(ùÁ_Dáx{QLfO޲¤½þ5>¶`Ô‘û-jàVoRü@'ŠaŒIHsÕÄúÆB]–ØŠb¸´ž*~‰ÞwÛ”õ‚í›_Dv#c/tá‘uÍΩ˜Ð ïx¼©ÜJlNTígl½³íÜG3=ãë˘1Ãp À^.6ž Îûü®šàýlÀ?<#/Õ®½¿CjÕÿ܃~‚hiE`|rêØÌŠ²Ï¦OàÍ’§INuýQ!Qº˜ô`P‹ m>|tßiLíõv篲¸< ÓÊísá"Ayáöæ XÿLÌN…HD¾QƒB”ì/’oymÁý ÖOÁ]-h|ÆÜc\¬ñ.úÚ9nNóDÓ΂ggÑê{(÷ LÑh¶§ò ê9êóÕBißH/ô¥å­þ¹Le=žvÝM#¨vÌJ¼ÍÝ’úýÌúbžúZ/•ˆrÓ cþÙ®«^yö&^Ôò´7üEÕjBZ¨ØÃª¬E g¸Î¼;ÒÃ~ûü|§ÇyÐàõ¾©]}ÕÑ<þ%¡©”½­€ÉÉ— Q˜¨ÿÅÚ :˰§¹ÍÎ ˆ¸¡5Ý0x@¼êÁ@v8‚ŽDJ{Yõ™oôÊ×Â4,|d¨]¾,;ÈZç8u!ˬ붉ßUWe’nŽàØϲ#À²º$còq èÏX¿1Žá+úŸè<¡ ]Zˆ±ìõßâ7Ê/[«k'묘²h‚¹E^O¡¥fù»´ê|ƒ!ÄGK8N0’h“}θ⠀5–yTø{ج8­*­n'žÕpôÒÚ´$ŸãùFÙÕÙù4Ü÷p‰áry3Ý:i¿ÝwKö3K"ÅÊ­gˆãÝ€Meéùƒ1A¬UŠ$4Íušò_jÞ4ðk|1#â7æc ¾åN/]µÌ¤¥=ç帘’b–ר|È­r¨tÁÓ²r:ÉúK.Füý,Å_‰È]t©×2ÇrGAd%Nú¾y-vÌåBQ*ÞÛ09«àI(ÿ“Àð~õ™}°–nµËFÛÅtÞ3ænò~ ,7_nhJ©Äžòñ¸­!ÞUxU¿±G¤Gèï]8õÔD9›^Oÿ_¨^ALžö¡‚*˜´ÂñQw¿ ²ìü6›åö²>U|Ò¢'„¨þý¦©¼|`¬ CCË8ø‹T-M,-f8Ò?‘ÀÔicûåxVÍDÊÞŒÇR }?ËÆcf>°pÝ¡3ÀË™Å;Þ‰íeÇAÏFÁXûï nZµ[­ÆzŒ-F»í«Ù )b²IGà¶¾©EÛâV݆k{òïäi€Éó¦¦Gi‹Âƒã<ÔXïd(µ¼ž†n`¡ù;üÃ`rœ]l>ž:yž€Iô!´Ñ]«ÿÕ†äÞdWÇÝ/¥FÌ.·N™(nz¼…þ?S¶*^‰æ`3{~Û;º#g—.„üÄLõ‰XýäÉ ªKùómò6Û@”pa:«_ÕþZïÂñL\4³ž0­ ¢~7¼àX×}K"µ‡-¾uÑ̩գâÆ‹“[`Ñÿš‡H˜‹äÐóçGëúš¬;µ¢|7ÜÚ4„äÚ¹]¦þ€ùësÚèžk«d0 ‘Nºµq_(΢Þ.ã.éöôˆ?VÝ.ÅÅàF{ïéÌÛ±Þ• „¬óaÌö Mu!ª¤vGrúyFÕ£÷cs)Ì@ýþ— `3œ”°‰·¼éGLÊ?©‚v´:þ¥KÉ­•°€­èLBÏÑtòÚÍuü5eÛ]0ñ€Ä ùïmÄ5(åŠï‘À´¢yZ2¯cdö+q À…ºª%¦’±À1 L#ð5񾁠m $¯Ciæ[vu@ê[$ßv"NÓí}ü‚,îA‚Q›cßnñÆØ%å‚D-ÓÁ~‡_wCn{ʉ ±œ¶¾÷öΟ” ¢ÄBÓPn+181ÙØÏÊÖ³=¹—³‹Üüá‰|ϧ˜P,eI½$÷GC˜²àÛÌÜ«©aNpZË…¬A ~ Ú@yÌ Œ¥ŽgÄ…ÝÂñéû?–‚+6rp¼ ÷t±²›ê¸e¢•¥ˆcw± šlà1N H^Æ®WÇ>£uƒÅ3í?gc].lëÈÅ“$±˜AøèEPúü¯~üŒ9†“üMÅüR?Ûo8lÜÂÒê¤þòë4î° v'(ØÚb¹'αãáY´„<îóaãƒa–ñ½D(wÊ+e̱P£Ñ_þ!5kЙÝÿ$MÁÏË|Çê´×sËìžÛªX°‹wiæ4cMA:¨ æû û*”·£œÕ ¾vÛfYmß-5ð'®dÍ}ôot-BV˜ OOE^Ë >ãG³å““ Ø_PvõÊ%¿ðhÀH~0اûǨŸBЊˆoÏK à3†RÅ*Æ7çÙ‚Øæ—1RJò[>åpšŸ³ *!$ãyc¶Jg‹NÁgèÁûì­.tûÃe’g‡yˆ^¶è÷V¶u R’Dgâû«£ZÖNûü±o7§£lÓ¼ùA-kðBtpú.g„ÉãNöÕús;k[Tß“yQ e½h"(†ÑŸþm|Ù1m–^è¦v{÷è ~ÿ©‡eë÷ìOZ Ë(¡d¦>¦Ó6Î(z¾MomyEúBã;c·¶×VJöÝnȀꓘ +«1| D8¥bZ=\ž§§WÆ dÆxRó”žç> Ÿ®ÉljÞÈùw qºŸÀÇbóOîý³1lá5Ž~>6®U¥V™HˆrÁö%ý-:ÌŠS4wM›‹æzݱ\>OÀva:k|vìÈHÆ*—Í„@UOÎ«é¡ ýoê¡õÿ#©÷Ë9Œ.rw*"ûü´î]L¡­$•Ó *À¼x=7¥b'VÁ@5CÄpQÐŽE³l3((Õi‹9«·šßºKÙÊ/§åâs‡„=„Ó2gmc9ƒ‹ŒûQ¡ì¡9ç4U€þÓËí‡帔;a±? ± âæà`/;VÂt ˜®Âšåj`wåü¯‘à¶|°3Üm–üJœ±”¬Bkk%sÄ}!Ƙþå#”û^äQü-I(úÔøÝÝ•„æaÿ¶Ó@ÚxÍn(ØlÜ”<ØŒ!Ú–á'÷ŠÉâ»ÚÕÓ­áȼ‡c4NäÉ|esé”jþ®ñ`õ0ön'¼¦é­c¤&žÑ¢ÜxÌ€VAW«„öyç°ø9 G—ˆªgŸy’+ÆUß‹Ÿ‚nüÃ0û Ì&oÕÿ‡ôùm:÷ÜÌCG)Ç¥¯WÐ õ:þ³=)–Ów~æ2E w —ÇpæÆëËÆÑ‰y?yOí2€Á^Là»™ê=ùs8Ûf’‡æ–âNtüU²6”3l ¨b_ßÍÜ„þ¯«ûLÐßQô=ÛÑÃØiÕ,kȺŒ«­î.”ï0À½³!àë^LÓ>š ˆ S±’\cÌÜÔ#öM«^u›ðîíø<Œ×‘B"j.i®ÂËäJåEç"bF=ê|X䘮RË!\#»oOï™s7âßöeßnQØr¢7‡i—NTRxULp$»Â¶Ð ›ÛªÍœ‹¬O˜íæÑà½)pÞ …Ya&õ¢Sö&sÚhvk ’ÎË ¬k C“ÇgÞ'TõrnÛ.vÉÅ‹ß84h‰Òùu—-}Ñ/Ì܃ €õÏA9ßQžN{2ÇS¯í BÙ)J(íûÃ:9²bH†ê+ŠÚ¿dÅj;˜}´E–h¤áµQUŸgE]`…<[{v ò-@>"¢­¹|Ï[‡˜kuVáÍ8åÏ{z½Yþ_F,¾­V‘³¤ÐËI*%ÆO AÏù(o¿€<ÑG£ä¾#ÀYÕÄ¿ú-Ú ü®—Tqn‡ßËHú©g¾xËk 3Y—ù¥³ÎSÄüVa+ÓÁœ„ èW Ó,\Eá'ºƆrÃgC’5Ú=ó·K!‚[ŠgÌÊœ\2¤O¢A,XDlÌit¬8Ï}P—+ÖDÛnëOHJV¨ÊèÆå­ 㢪ô^ööjñçGâþNógÜdZ³&û|H‚<»C/ͼ#X™õ}µ×ó¶ì‹˜ïoëƒ/¾‚/¾ÆãB³3#eKïtŸÇ|å:Œ°³>ƒ¦ˆêš`gÛjÔ·¾YE”_(fÛo*Lèw £‰ãe4tµ*jŽ ÆN(ïî×Ië<•Ÿ«´ÁÔî°©0çÙîºÏa픽/üûü¯ÿp»·]öã£ÃÕ…Ò¢…†.„ÉiMÔ7Ê‹Ah?}ò…—t\ þ5 OTOW'Oæ+wmZJ¦Éuèe×@Ù.!€ÙÁhÝ9"{jw—óöwÛ—¹Ô\ˆóª[Úß^ë,‚ñú£íePþä²^bÜŽssF~´g·ÚÁœœœ Á:ã«“@‡¢ÃʯEö³sq®«p¼ò”´Ó‚1©˜”#¯]u %mŸÌñžtÜä|;ÝZÁ »^¶Í}œEE¿äÁZΪˆ2­oÕN¶|ØÄíŸyS˪Dù­²àbüÚŒ:½Æ¸ÿešgêû ö¢­ŠJvºÚ” ü}]Z†Î[ÕÍme`C‰·•¢+Q¥%Ex¼Ë>ÂïF”„P%@¡?Ь‚u ð_%Ú–Óí’ÉM$BAPœ| ^óœÜ‚Ü‚}1ü$3Nht J;X•~îJüîs¶Rç@Õ ÈG{ºzø©“% [ ¢áü pYÛ)ã&¹µ]@eÅ}õ\ánLÈÿŸVHÖr¦É:s K™ßîkð&B/*͉ÕÃ<€—&ðv˜Y¾Þ§2?\|p]NºüïÞ턹$kËÇÁ‘ݾh¢wkµëPž*E#ÓäÀÓbIÏ®“ZQÒÕÛÃj6gqš¾‹l“0YžDÂÚZlʨ{Ö;ÅE€ Ð@ĨiÞN^ˆ&U´5ÑÖeú¿žfe䟅–b?©š„%F‚,ùÆ©OggS€›/¨äBåíT Pçïíìöýìóýÿÿýÿ×ÿ þÿÿÿÿ†ÿÙðëøüÿÿÿÛÿöÿÿÿÿÿ–ÿHÿ ýÿÿÿÿÚÿÿ ùÿÿÿÿßóîüî)—Š…ÎÝù>î)²USCÒ†\Å×°¸0QѰ¨v¨¦èÁ½¡ýL*RÉúxmýÄ¿M¿ˆÈõzòæ=‰çë£k™Ï]™œUDz”š!Ÿv.U¡T}3šÁVMi(6. (Ž—~Õz‡Y2÷¥/W(¿xÖ7¼gp´y¸ZЀˆxþ7ÑDćäzªÃ¶Î¥qï‹…nøØ$¶‹âqVSʤí¤i6¸­«]¿k¤ êÐÏWŸš¤cS,ߺAt8Þnº›`ž*E,¸kyÚ|ò§{Æ{"$íV þÒžüLª£ž»0%4õâblŠA5nœ 3øþ¡ÝWM»9As2žAÔÛà?ÇK§=) Ø…*^È×(ðjÑÐÁ!}÷ Z®ÐunÎôã–ÑT ò;ݺé¾6cà^Ðv1]ø5ˆ­ÌQ蓮6Wíæ¹‚}xNMr¢ô&¥¯Ã}`’ÿlÄ•z%­] ûçµ)ƒ|ªXk×HÖ °iWcirµê‰¶;çMÞ—–æ6ÔÙÎKF}EKÑŠ¢Ýp«ƒ¹ñ¼Va Wü¨iê•üM”Ï‹àÎŒ´!qe‚Ñ› à±ÿÂú<¸¡*Ä+ôõ<= ­³\½½h05 ¤CÎPU™½¯QŽ"šMUËEÏO½kÁŠxù{AF¾ò!Ö¢©ü RHo¯9ÅX£—ƒ±êjN‡¦kÃí:8U=táéB™]¸©÷‘ ìæ%Z¼‚)Ú¹þoÃápV‰cPyú¸¹èw±î2Zë8½.è˜W> å÷5l>+󜾩OÄÞ•îÞW}Þ#cfO(á¾°n}œœ €p]T/ÚÇÖ0ì³£vÆ>rMñƒ-FB{ª‰ÅbÊüLõvoW]ÄÀ¡9]"Žý ÿŽ{¦‡ÙÊ$ I_*ï•©zŽÀ#´Ðô8*:)žá\ ôßž¼¥‚„`Rp„{fìg|XH‡S›K¨ê˜æAkU)eåçóU.suQ_‘¡. *³ø(öÃb֑·ÿ½Â·ÊXuÆœS9X.ˆ…Nl;#6ÆU|-1´„Ðlm€-[w舧y}HÚ+šòµGÅOÌ-É«…½ÏÏKˆ'ZLÜg%Ô€ÌPßÑو˜ìjÏžFÚÁÛϯÛŽyì*ní2¨´fÂö0a®RÃeíx|–¸Wö.dšxAü.ÅÖÑóŒ¹çbä÷†|uCÆd0¨^y óÍ›‹#€ôïÀ"¥is?šóSVfIçvâÇMðÉÝŸJŠmäk^Táe@Å”&Bo¦[?&Æ-5.naŒåÊ*ÔS2²€I‡ì€\…“jï…¬ñZÛj-Ý‘v㙣½Û¹^ŒæpçÓ¡è§‚É ¬ÙQe¨Šn"ŽA”¹—°ÔÂØeåå,”@4ÂÀ&ˆ¾ã2­ïù~;ÍT|G>‚àÚ5jй" §¡õ£[~@ ´Ö6mQ˜ àÎ?%èkÌUij)›ºe~Y‡;Q-¦í½Ý^›’bzf£lüMa$Š£5<”¥8ñÅÛ·•›nĨ.!Í ˜-œE½©E­~/ÎèŒ^ »ËŸ n¦Ã×ÞÛàþÍói·#h‹Àz‚×Lõ¸Î]¯zÅùƒÜ£7»#*ðàHO…'³—Z®*Ó´haæIî¼ÓF ô¹–ž£c^ÿ•FÎ,þ•Z[Gþ˜P‡•½ ·  ¬? ûÐd9{ð³Û­n"k¡Nät5³sü5?ÔòS°"‚4îhú¸®’aTŸ[Ýó-¬¹ëÃ<ä —Éð 6,­Ðw-ÄItÕ¼¬ôÓâð•ŠR.9æU2™6ÊÇá ;v9JØê÷KÂ}†Óe—†„ÝËikCݨ C7 4ˆ„›MÐIÑK’Ü©®Ø¦ç߃aYÌŸØ¿0 n;]•k ‡ÈnÏÊòR_ 'À§È}öÜÛvo4J³Ž»‹{–.ͳïYÈÁ£\lÆ ÔÂùßótœ„Ú{%¨v} nòG¯NGÝûVJ;¶ÞÍÁñ…†êóT^úKâÑ€·üL7JaXjK#i0z‚ r<»sÍô¼T O[ZöE@éÌb=·óÚ[ư^«¦^e+ç3ÑœEuÌÓn˜oéºû=3™™(…ªŠ‹AK4oëêgò›~la/IÃÔr4É@'¥“ÑõݾÄ^­˜Š¾õZâv « †×áj&²?ØI<‰4pOsÍÏü6grË‚ ‰z‰*`B¬þÞ( Oú}çÆ $à |ö¿¬É5Öâ…qý’G(Å;ÓtoÙ ^ç)92ì$6$3N§ëãê*aýÇ¡ÉÿSÂ!0Së mZñ”Ž!{ì%xµ²‹-óuœGo¯ÞŒØöM(RŨ êGÅdÙÃØþ}üuO‹°ÞÛÕ¶épÙw6V«0øâ,Œ¶¸ oLõ:¼U='A[±#P¼ÍßUaWnQŽüãƒDQEЏ:]ôXP~ipö1¦n6ªÎ\ˆèÅ“ª¾ï5@méìŒaG &ΰ-~hj°‡,ô™c5V–Ef¼2~º¨@äL1ö•ü1ôÌ^Ȫ·rµ <çNêy:Cò&\?Tí¢>k*"¥8•Lü´Öa+ÛºƒI½¿€¡‰C¬ä qéWî*;Zˆ–^í—áÎ- LÛoÝo¶¥ÑcwÁŒ½?Îeq«ÖwcèÙ÷ƒdmwŠJ>švf–ޝFN¬ÎéåÀTͽÜ$×e%‚ÈÝsǯ÷bªù”£JÝèÓW@~>5µVÁ¨q€y| ¶ Q ¨X²òÉ¥84¬*¿y³³’{ŵKO_kNp!{%þa¨£ž^ö“Ç#¼|3¦—ØN}qþ²ùófqHˆhÖUªè|ºü›»Ð1ú’ T&Hš(ç݇aÜ5ÞÜú¹ô.Ÿ!);Zêhù@ô©Ô—±£´þQ ¡Ó»wÍ?«Að'nn—æäÒ[Uw¥ z„{cKUT´B*+7b (ç#¦ôÈKn…§ÐÈbxíö[ùÝ¿^[†–íµóÅB¦õëµÿpÝ]ðƒ¬»nßz¿®–m>Ƶ7óÆ«@a8óz¢W-tD¿íq n˜ …E‚­­+ ìIò1[F[€]ÝçtH»†Ël¹*PÂ9ZîŸá¶‡]'ô6ëâi.PM'-‹[PÓoÈ}ü{7Š€"D̆˜rýS+©‹P­£j¿¾«CÄB–€³lÓñ{™Ç*¹/§Ž9N)걚…ƒëVrè…4—W í.„gkB¶,òë$YnEûÒ"'Ñ®{ËQ u ÿ5S^’FA.FûýŠssj1¢Äu©K‘Qw¦a‹G½ìˆ ð`ZåÛ[#³4EÀ8|â¼…†S¾Å&Ï<å륔¬š"ò‰)?6¨™A …ü&¹%'cK6)èý{;À½[tØü8*I„ á‹…‡93ŸwâTxû-­ÝíT™Ÿ‡D°)Ñ$¡ç©³UyQ<ûamæqÈÑlŒ/ŲҾ/À«G¹n•”¾óDíVÃòtm^Kû¨âÔ°A.ÚÙLbImSúc,"Aþ?£¹Q%Òì8.6zÜyÄsޤ Ió$ó”*ÕžÑBRÜË+Œð™£œ(KÃëü\vÔ­à°F^] />Lz?=[úùÎánñ¬ì.,¦ù^üâ,+ä+C¤ÒÈíë§¶GJi´œ‰U2:žÂArÐ7ú) pzÌn¢h6sŒÁ~EÛ²Ðe‹I²Á8 Bz-è“êk(¤#}®Ûµ³5#¬oñÖu··ÃüX˜è~m©•‹A¨=ê+-ˆ…ïPmfDçÓuÑšaU˜à>jB2D0œ/-Dµ·(àón‹[¸üÙ`Ûµ£É§ØZÉJ¿,‰»× S?—ää8K5©ÏÞjf²Ë¾^í¸Uðò¶(Ô[Òqší*ÝÁ!.“%ôóD"jÐEøô1>Aê"…±,­î|#r~ò=µ¬>¬Úþ?°RÞÅï]ü(íܱDEÊúüðy×á ´ÕTNA£ñêEjÑ“8E˜Ôå«¢.ãVÄmÄ umÉ…‡6¥ ^ñ¨)igAÓœW” SÃ#š¦_¬{¿d‡èV»¤ª±õáWÆ[›vD”]ÀÊÇ:©üL»NMÑ¡U½}æb¹¬o!'­ñÌ:.Öª8ñQö{8Uø1^;Â6ż #—^Ê­@¹µS5öÛ踷ž–¼ ög_÷%¸ÓÙ®Ú»#áa^ÂÙ ¦6òDž±~I#WP ã¬<Ç_0°»%Gù*ù:½þl¯’ºº°þ†TÒ[ך`²ó²Ö-ɇ7ÙQ5Ân{Ó`†ûÕ&bƒêzW®,‹x^£NÄ™ÿ&öÅæ|³žÉ™ÀUäÖ™9@`9xGÝš]`ÙÌù5šŒLXÏ· q>žy $k™^;•׊Ÿ9æL,ž%†Y›«­&T`üLÝXZÑÈÅìäÕ)íô¦QÃÅAüÉT#0Ö…ÒÞÓš‹Æ+àÅȳfkÌVm$ >î»ä'ÍCÑúlËx~æ¹QR"<ØPv¢Á4üAPôÔ,¬%» ,Îu÷µµÌx‹Ž¯m~?á4ü•ͷ<ž=؈ÅÛiÔ:òq7Q½nÛÃó— íOkÄJòýÛ‚á|ÐWµåÇè­Õâ.šý½¢÷R°]?úì}žƒÉÃXî,E®Z¼_æ©÷šÏI™«}&¼\‘‹+‘aK÷!Ÿ+Ü©b&Iö¿”?˜¬”L ü4ÿ…#\7‡ +V”öI…Îý†œ*ÌÖ‡À÷=q%±~‚Ä:Ì`ï M†—ÇÞý¢çñ‹ó’Ø%+Ä{ÜÆ‹`K…ÐgzùûÝ®ü9¨}: D5J“@à¤CˆRB"‘'K׋Æ`À”è`V?÷Ñìy±Á‡%ÊvìÀƒ»œfy–™”‹J0œýÐZ?zåB{ bÏþèŠ×·ƒ¾Ìë`ÖrÊpÛpqó@ËõnºÐ ÁoüžµêD:1æ®hÈoÞB€ÖfËe›ê8é(¯.a¬-ŠËbIc¯3ù·hùµ„Lä7…U&Fez!Ørë®É¤»I(’%’™ ÐÖçîøÌ3ü±.ŸŒpeý.±ðZY+40RúC+Ö•d×Úß÷4IWpM(MRUMp’)¶j£ô>ìÖ˜äQŠBÑW&Xì¨o®_YЕ²µ‹ãÁ’kWMß eè ,qÕ-nވ鰋Õd&]c'~Þh!5e³p“u戇(Ý`«‡.,J)#âÌŽùº-ÍÔ±6ÝÕГ& ËPÒô ôÑà„0>}D|à)-?¤çî³zãvï*Qš<'šôXmØ3Þâ¥RÆâ«Ñúî?n1Õµƒy¿&wDˆ”?¨'ŽF•YfؼpÁ£?2šLP$B*ƒÀ#æ³VÞ'™`×]ÈlÓ4†g{PÚ8€ÔÕnÍÍÆÃNÿêms?ïí-£Ü+§Øö°HÜ>7øÌŠxët¨ºÐ<‚íN–¿¾E¬þR(–y’t/”®z‡¿þ"D5—YшŽÓlßlϾ¨­ü{:w1ËnUþØEn-¾¡À«C fæÍ,2p(OÕ©÷ÔˆEŠ—óÑ8ïsð*(h+OK‘*˜HäF¶)vtƒr4Þ¶ÈåÒÓX/Hd…[G.SÝ{±v÷²`½$çF6ôõL%ö‚^fBŽürQ’õÀéŽÍ BÃüx‡ƒ="ð¾òåW{½-ë´†òä± ¤B!¬ yÆ}švRxäu™Ï›1%F´ånÍhec˜´Jþ Á¢“™Ûâì4šRÅHMcy³7Ã*½[Øàײê8®\ ÛÛÜå6¸TäÏ´ä¯K’KFÅ×B=uT`_žÊ[cv¶«Ì!𓇕×I'ÁÛ®[6¼ùÇK{©?–÷Ç#*g·?†°W/iâŒÛ•Œ î¦íM¦ÖtvØK‡ieäæÂª)Ñ"ÿqi[ajžíÈþ»@ˆj!ƒq×iâþâ@æŒÄ}™ᾪX­{ç]Ô0pO¹-ÆÃ<*jãþ{›¡ú¹ÞyŽg?”Ø~¤>u¢·H*&È|êЃ 3*‘j 8Hvd!EfÀûW+ó€O •°©L|u’ª Κ¨´ƒ~Ë[$_¿ 8 Jzf2üXL¬×OØÙRáìetÞŽXŽ¿ç2ÓiÖ¤ûŠf-–‘-E”û¾Í¶¹Ú‚¿ö°þ´ßdž?ï=RÙ¿¶ãŽê5€]Ôà>¡Îg˜z×-²À}§¹ãå³9suCRÆ=þ¤LkOTììϲúâeh™‰+ó]œ)áK؈b­'ÝS)ÎüZ.‚zD0Z7΄˜‚Þ8ÍèÕéôNƒR&‰¥ºäÁµUÁÿÖÝ{ǧpFÆ¡Œ‡ö&0—¢äô¸î×6§Ž®ªÔÇÇ©Ë:9mç¨RÀl6VŠC½oeS##HA)åÆý[ó¼8ô®üIÞ<ËÔW2ûf4ògŽ`Aº-4Ä6 …)ò°Š‡ì§y)Ðâ|‹Ò^ØY¥C4‘'çU¦”¥gÀ—˜&Ì\ !w3öêàã3õäŽ69L®óóó½4©AºÕ o)c(Oö]x @ûÝ÷´?’úâ]AÿˆeÅÜgF¡™C¤·¸{'{%ŸzÇm°$Ò êé°r7>±.w»åU–”ÈEúï-eÛ+§F2^«A‡Ë&{@+À¦k3ÁôüŸŠ¾òL£ÐPv4´hRUeg,šyÍá{÷Ãë¹#`"AÃ49ü±3/ün¯9÷µ­ÃÒ½?ËÈÃ)K­ôwâ]îø¤'e^®2ÖéQ¢·£J£¶µDNI¶‚’¦h®,òW½’©,ý=Èzi“˜MتÁŠ®W"O'Ç@)Rú£¡ÇÃãò²]í°ƒÍÅOǼœ‚m&Á^´–ƒ²àYß„7JN¥\#bƒqÃSK=?å¢!\—M{¾ìžîJòg|Ø‹)M?‰úSÝeggO.yCÕÄvB0@_jŽ´ |*Æ$‹>ѵˆ–3ù N&B̹E}Sfþc½AÊ w–ÒbÅñƬ|½–Pù/0Ëûü6h‰©§$ÎÿòßÇ݈’ˆo•ò(+ŽjrL<ŽC&K]¶p]ý.ãž×q5#Ýe‡Hž¯k‘B|Ì{é$75ù2•KÜü§4ò…^¡¼¶Ðä xÔZ^ ÿpWD„üÿ ^ðÍ«™øó¬u×ùS£h`žà—·\ø4l1‘z>íÙåW*&Ƀõ »¼›ç€Föï}r‹“µçéœcèfšÎEBH±[ƒNyl'áE·r¸Z¤ýöØœØAYPSZÊq‡¹I2¹m ŠHkÜáÂõLŸú¤z7ôˆûÂù}[°ÛkL¯ä虼iä•üM((ý¾“æ¼ÅѸsÂúÇ99ÇÙä.*²šÄüN–íç<÷&ã-22Õ€¦è¶šLŠ~³ÚåÓT‡ÜÃÂwyY2¿›ª3ÈÉÁÈGùëEÜn'é¦6<Ô4Sàm_l!†jÕ›¥,ðÍ2Id—b\ú…ì?¾2õÁ@æQã¡=4&Á_³+òqšïFëŒY¶g+1Éû }ÍsidÖ)sËúì””]ês¸¾8áÿ°amÌw†nch¿~ÓáÉnÞ¥ÿjÐŽ2ä„Õ„§S¯*lT†($\»r97;3VJžD¹½É5ZýØröäß`$&UzÝ‘ü1 ·. “3r~£)°uÎ/ëS›sëä=oŨ\‹s§êöìÙÌB°ôµ¼ÃÈì·\¨q{õ€í(žF;t‚ÂC\D³@þîÿ„›2o“_±ý¬ ŸRšÿ߶ÀOU{R”ô½ê_‹Ç›c6Yr.­|³Tm2TÓ”Wo)´ #Ñ1ÄûÉ:2P0ö1{·\ Æ \Š—4ãÂ-h]ÌÊ-ÄXY–1ÂJ©¯¦·À0À)üHÎ YÏŠM+BÏ-½ÅU§)DöÏ|°‰%/m#A×ßQ.Á©C{K•€ hS^"îyºEÝߌK}ܺhÎSS//Ë›UKkÿ1á*ŽÌ”"íÛš!„Ü“ïÑërl‰þ Ö^ü|§éy^£µŽ 2þ@aS?0m¿lÛPÖ5`Ϻ“àƒŒÀê#ëôLÊ-()…%þœ·®,Øðó¦ç”Óe'µ),—#À@J¡.K$ÿñ‘ ‘®™À¹ýnÒµƒKúðyàþ¦Ëó|žN‚–³»áHˆû¨z¨¯Ðé@Æ~ÝÖ3‰ú‡÷Uknâp4wÙC\ŸX"¸ wnUXÄbÅU¹Øâ?=ƒ V‰‚Ø•W‹ÊýÛâ–mOú>!×¼è€RμKå±*££u&>ßpÓ¾Ó%|;µ‹Y–,õ¯ãÿEóWŸj]A]"«‰|å¦MÅu7B€×¬k+@µô_…°½¦HbŸë½mfWfÙ’Óا »N}œ™T…¬/žj<Ì>p¢~ƒ -Ñxe’Gu¾è”yÍì˜M+4¿†ðFÆ‘œÛ»ÆoÌ3<4©Nø)¡ÛU#ÎB2Ö›?ìy$«­‘7|‡Ñ(à’"@Êy—öaYØÄ1¡ B4 aûE–º©àO¦Ç• àª¡Š“†‘Ô_\%¹´ª¹k¾Ë‘ÎË ³™|Eç„z-äã9x±Øò«Ó#TÎÔH¯ºŠøÃ™ŠdQ¬æßâü5s`ÇüáYX!ÏÅŸØ•õ°Æ1ÌŸ@2?gšÕná¯K‡ÌSì|¾ê˜½IÌË ¶ì×[%ï{iïLHÝý'Œ#RnŸÍªWØr¦ `ž_Ψ5¶‰½O†"áãS¾¹§süKI”åû>oߣîÚ£4cÚ¬¬ÅÃ[g­  'b£3Y÷I$<óœ -”AD¡peš“ÙÖ93!»j¹ß3;¶ÍŒŸWš;'\Ñ¥«H~^û‘Ùµ¬ÉÑCÎËÜ,j ~+:ÐÛ:Žаýª<yf’½»Ï~æ+“7À"Ú|“Â"Yº-U‚•7.enœe=;Üü5mé0øB~…¹óÚÙ˜ì9«×-ÿ¨Ã…(zýÏÏY®z‡S¥’ÿÊ»#/^ÛT]àe¡×]îÂûš ÜBh¶<ˆÂ˜†4ýSg}lµòHØtRSxyú:Ž«ùâ³g¼‹È²´ ?Ü8}¨ ؇ ³o‹.uí)ÑÐSQ5Ž9%®úôi\«XÀo,å·ðn?-Oý&-¦rû å¯údz-9´Ø9'î—nŽu#3ÈJã¦pV€0ܼË9â“u]„Hü•ЇåàŸok¿í…*/ëVgf÷5àÊ£?k<Þ³x‘SIzÙ£ã?Fü± ×’ B{œ Ü™Œkà’Ó:ž"^Ý4H苃èRïîQY¦QÔ1EÔîu¯+EïI§îÉ >Ó°æ; Æ÷MÄV“#Œ%#Æ`¨]ÿõ¡ÅáÀ*É!µnŸyáÈI<)œÊÈ!¥4_®ÓŸiéd>“+ÃX5®FKBÁB[aìey {BN¥9)ìIÂcUzÕïZÍÍ⣥a&Ö¥•bQÝ@rÚœHU|Ӌ̬Ж¯Fx r«¤’q‘üðǾ4ƒ%Њ†ŸÅ™‚ˆÚÐlq…yžÇh AOgÚh@lcÓ(ñçZK_‰òäп³¿ëÏþº°/˜Ã)uÄûü± ã²+žnÅü[pO¤Nwühÿ¸% IPÔ´ˆaº¸ûšFËvååÞÎ)žûQ­ù°š_?ÖZj¡[l²˜8zæR6Öõ@ö ΞYʦn)¼lÇ;‡ð¡¸s˜µ K Ò0"8ÓŸÄëÛ¬ô³ºM ‘r¥Í…o¦XÜla›¬³{†BÅJ2.UÖàîAÉùEs›C6ÇLT€Ok\ \…oÍ ÝEû‰¨1_ç”[3âË©Ÿã?®Ìë¿,âA3.@™i†z`þȲOk¾ÌIJ#§=ɇ­B‚«Ïp¬.à=ü|Í´[~50^?r¤Q,2¼œ—6ž· Ô®™ÖŒ#úÂûüL²xFÃ$ƒ÷0€øø}·ýê¿,ûk¦l®rXD LmS¡¤~  ô»®³,ŒnË!ý€6ØO›™:·CÉ4‰äŽyÎ$šÛüÊç%ÆñN•™É%(Ж’Ÿ3¸Ûl4Ht¿8:.…ȳ—cú»xÉEÆ&VÝ^›D®€äžG:&OSǛ҅€^É|úŠ‹¬5øËÍ ÿÖ¡›Ân1 ž„ïx‹¬°!öºïcózò(Áº@\WOFXó¡p?!ëN­[ý1¾µdJåšbêF‘†Höï³9^ÔÕ§­Ir~ˆP‡\ jcßaº—VÀóÖW)Ù¹ÒÈrÎäWü6kyXÊ˜Š {•„ÕŸWv=í!Kz ƒ9‡œãêñ¯‹¦» gµ%zûÀSç‚E„ç‘ôì;(fõ}ŒÓ·ÐÀÌÓ,zoïu¯ô).¯oA-áQmƒù©8ËØ-AöŽˆ•E|‘09ê.o‚¨ 4rþ²I‡)'Uðr`¯w™‰¯–·‹S–d$¨½åyNà^_´xDDô¶:É;hˆA™†×—"KY>I~CäÄá1κ……á=L3†üÐ]GeëßÐ%ºÜàÊÍ:-r¶PTšÿ[gUÌýúŠÅ49åm¯‚Oûv>eê]p¥L=^‹ÖŒâBPK‡¡;aÁtü|©¨ì/ýC6þamSG-*9;žÞš,Uô.ÖLsuPì_|Ã`lñ°öU²…E÷å?:¹Ðâ&N~Êä%úŠkãì’¿SÚY"ËßKÌ¿,}ïRb³ëd©Í”’G…@¡i1&÷÷áìnž˜x­Œ] ÓBÿx {[&ùÅ~_œ¥JÎçÆ{éøåå ÍKŠÖ•Ï&WñÖ:Ÿmd×Áɹ×fKíwfMOVuv Õà€ºº°Uff¹]ÖOZI­ÝŠØ®QüöƒŸÎ›r¿Ò/¡ÛÆPæy‰4y_ü!†ŒÍFv#êÕª¢´èÇK·$B©Tï‹©Q Í…\âNR¢K¿3åUãävhÄ¿ œç÷dd¶Úè¤|=€ß]\†ÄLi] ,Ñtª t°e¦Àȯ Ÿ~ƒ ÷k§ÆÆåƒÿŽqê6æ²+›î몡2Ô"œúÓž$cr‚¥Üþüú7會x‘e§[ó^šq2%Š×þÔPÒ»s‡GJü}ab“Äd†ý¦áJcž„ÈftrÈ´.#ôÞ‚²mXÚ3|{¯i©4Z‰„ƵOͨ–÷ .g¿þ¸ŸVÍ`‰ŸJ2þ~žäeÙ‰ÌI•uðÛV¢ça]íÈgÁV¹Ç >tpnþ!B£¡¤1õDÑ·éÔV,ê\ˆ pkÑ@@%ì¯õ„ºl0<+z×I¸cPsR]žthQo)ûs©4—‘2-”õ—šK“x b‰ÒòPJCÜåîã²TÚé°?1‘FZ¹†ñ!<–Q¶­¸Î„öØL ¶nËfpò¯€õ#ñ5EtÛxB=µ¦»i¡Êü—ƒ˜ s8^&Æ×zî3oñ"eE¦Ì["Ÿq X¬Šì¡UlËê”Ó°³yµÏ¬+¡ª÷„CN‰Ë8)ЈüPžJd¡ÇëÙÈ´äRMOü0/ËÌEs­„S‘;G $®MF¨ÝE2®Èü_óèš…:î;dòiœÝ“OäAhâ­µqò€í¹}LÂx‰‰vØøçŽ!­]"¢Óu8Š ¯—Œõ2\–^0B6ºE.yËÓ gu_Rºâ¿÷u«°Ú"è|mmXràQ(IÞÔÞåÏV~ðf+õíÆ>ku¾€¬‡]T<ûcˆ.l3­‡ý!öçă¢ª’‡ˆ ™Ûiª´’Eª×å,J«‚Ü s~cØŠo•ݽ©øZ[ÌÚœ PˆÐ]0ð„ ¼œØ¥oœýøÖ„x“#*s€CÇ>²N¶S)ÜЀ5G¾›ü›»ûd†Ÿã=XDõü›5ºh-»µY»Nä3ž$¥ŸSB?³¼îË >èF¢6]¬ï›x8"¼\ãKF–* z“®'Á¿Ç"MÔïcÖÌœjÞ• 0ÉöN8½ª_z§Mcóg9‡K—&U­#!>Þ#)ؽ‹]ƒ 9ýÆRºÛß1U’T†Êž±lD‹M(ÎE,à@¾'u ñQ4 fÞ°®A=¤˜Fè5½X·èïºÿE…ÞF#µ±-»½ÀÒ ðÐ^k³‹ã/ãOY¿Ü  Ÿ1p® [÷߬-ÚUJ™ iÙ³Dsüú[³˜´LüLÜ É!WÓkx´c.ƒæ“bÈ»°÷s ättþ ¯=¿½È™ ˆ#evë¾s™gÂElŒ« +Ø1òh‡OËΔ¥3yÐ&i_m£õ÷°|×Q5`'Ng©÷¬Û¢»ã'f‡5¾Éð0â„!ß#—ÛÎË-ÒˆçuVUįëŽû^€bHÁmÛùB-\TŸõw¥ç˜÷7›ˆ'HuÄÁ²–ÉÆQüñâˆÁ19,£Ÿö¹½·R ÚÑsµàÖ@6,uµç 1Cî,u3¨¿­óðžG­ï¹ÙkÔéwu>Å?áS0Sµž¼š½²™…¬ì°0ÎÑ€Œf©ñîØ“‰!}xýä$Òú»f~jä,Ê ü®Î¨ûå ™C¢è%<Ñ/Ý¥°\"Ô Ê%B¥*ÆÖ('SMzs7£ý €å'›dYCAÝxöø7Ž6¼±Kt`OŸŒ?Åñ¾P£Ó3ba,³&|ßLumHtl‡‚@Ò¨¡ÚØ€#‚?Ÿ 1 ^ëAj© ~PQöÊXÊ> ~}»°áŠ–y«£úÜwC1<@ƒk;WGØ/<‹‹ØißJë£n1¹ZyÉc¦oéJpŸ·Qe®ÑJ¬Lñ!gÐÌ*È8atq0 >:u'¥›”ºÏMEį¡¿iÎ "ÊÞMЙ’¸Ê×$/&1(EXÎRcÁ%Ù—;Ê‚NÒEkE©jÁü®É·û;UÑÇÉçý³ˆPÝ{ge’Ý.ùy7n÷EÍŒ‹cÕÆå`b„6mê½jlí„¡“ÙG½ÅÖ~ÒÒ6Þ]7š ¥D§¾†Ãíóƒ2ÁzMaS< UXii~Îbagþù߃ëT¦Á„Æ#´Tòϱ{ÛϨñÉIEàOM`géG!Ò×!vö›sú`ÁúvЧŽJæ‰cJ"EàïXV¯g?NX[ Ðãê'åvŸnê 2‡µA+{S¼l3X*ø<=÷‡aá( ú‘X”ĵ„U‘ÆÁøTx+×iO[ª44\Pfî¦Èk÷§oÃ詎:…•´ë6ý<¾ü|©þ‡cmÅÀØ0з+êhX‘Â-HÛ£·—·ªîŽYF6U‚@u[ê,“… †Yu#YÙ~pXؘm1‰Á¶þŠ.E2ñ±µ÷SËŽ&¼‡5·Ún4åqó}i3h¤Ü·Oè âé‚^¾þ v3k:kž}¯œþá'ý ‹»fø¦æÔ \Ÿ ²C½üî`Z´­¢NlZP€yºÑtÉåËOùˆ·Ä …)ä¤såçVt'ðñà¾rúpÊX\sçKY4ã»~©0††øpšl¨9qï}_.¶ ‰ hꎫ[CÌØSEó#· Ô•?Ô½¥u+€1Ëà…/8HÕI¾m¸ÓŸÒø) ç-¢$ĆëØÊIÝ:ý}6Ñü§Ÿ|a~½lÉN­#’BlèøÍ©Î’B&L„¹3! [¸Ù8$a8)†z„®‚`RUyœE.qE>ÜjÄ(HÆ‚0¡EËzµúÍP*Ó¯x¡Â¼Ø+•š»ñ®W3?q2øÂÔp*˜ gUYöx…é§é—÷cÀ%:X\ ñ’ J¶´.-ìÁG‚M=údo…ozðëõ ™¬ùmÔ­ÜúaßüXÕ›|Õß~¤•JÝÔÙÅI¢²²×åŠäêý% kÎót¨€°iC)œÅßÎ}¡6±_xzLKÿ‰£à¿ïl™YI5ò^PÖi8ƒ’ü굪¾.˜–̼0S¯œU•‘uháú©ˆ4 Ö᣽aËí‚RBø”Ÿ½†ŠtIÊŸ´û¯+í7Ô ²¯>£Ä׎Òñ&9ÇÛõSÀ9JDÒz9ø $ÒÒéü|¨pHwBE,ž÷;¬¥…ëÇÜ0hRñ‡†ÛëxÐÿy 8“[Ê뼟ë£*ÎV¹Î³­c1²„`"û„7& uÐÁÙgãõúúMñL]Næý¡À»|Ñð[U¯“ <‰K žÈuæï±R1v{ù©lbƒµwÚãë7Ÿž'r@‹dûÛrÇ 3Æw^{6ê%§ó§#îû\ת`ki=¯K èѳ½EëGSæd²—2bÇJV(÷ìñõû£Ú`(›ÁBnN«¬r³{bÙœAmlR£eóYw/þljFàwÛ³ŠºP‚$C«=`ìÐúøÁJJÓ£*ÀƪWÆ[i1E™šDŽÛBÁuxŒ%?Ûš¼å-) ö8Þ­‹7‰P)qá`½»«â¾³¹b|€È@ö’ÁÛáï ÈEÃòíAH¡#Ô›íÐ ê\ìÅs©ù˜‡`5»Á¥åIŸ•âYFÂ:…¿›Ntˆx$Õ¿a,öžvîì.4ör)„¯Ö´_Šæ¤‹|*×-›ï¼Í›ø†0& ÎZ¯¡ý›z[·î |\[wþÑE¡Ôrcß’›—æØ±ÃEr³'}°áƒoH\7Û"æpÔJ<ä帥¹ü6‡ÚÕWä±g‹N‰uÓðKüŸ&N‘m6„•gÏsJ`\Ôÿ€¢[Æwãß]2Mï’RÇ«ÙÖq¶÷w€tïq€Õ"¼]¯øáS(þÇ)=+]Û ñv¥u"ZZ¼³6塯Èt4 ˜íï6Dœ¤¹å©æÆ_%<ÃM5ÔKÊîV ìƒ ×Ý4²1‡ ¯gÆÍ,ádÃìí‰fw.æCòOš>ê“Ckï»@ò3“$«™B³5§€úŸÝ:êXR-e‚ú¯ =Ëh¥à’ESƒw½³¶^- VV”g$QiöjâfÁü>Ú ÿ}Òú8AÄ&^GÎNü®ÌM} ´¾8Á»4Aý×s%ÛuÁ ±î]žsmï`¤F;I¬Ç1Õ 3ƒ+,Iªxžˆ­É$ýçë“@x×AÎÂéסϷõç½:¸s}§¼@a=kñžê-}OUÍN.I(Jˆ\ÉÊÅ-0&—6K­@ÊÖ›ÂÔ‹ì¨w»ö{×÷,iµ\:–îþï£cÀ¸?Ω c›ûÆ«µ}As5ºª´ª,δ'çìÒº¾ah:Ô+S-PS{ÁŽ_)æÜ-6Ë´Ã_m¤C™i"wÌȶr*&òñ ¡ ¡ _OggSW0¨äC| è[EôöÿóÿÂÚá÷ëÿÿþúÿÿÿ ÿ ÿÿÜÿÿûÿÿÿÿØéçÙ×Úæÿ;Úîûûÿùùçéñùù÷ÿÙßäàü¯‘¬/eñÙ0ßd³{O•ßãŬtÆ*¶GO‘TµªùOÓS‡aCs¼š€Ð*ÖÕäÜôÓd…ž÷zäš•@2´£Œ]0 Y°=Úýœv1ëØé혗{¿æÚÃÁ©ýÅb$#ÎÈã Îc‘fW!¤BQ~Û7À±d¢ˆ”wËo)R6Ç[´gSJSÛÈÉÏÊ:-ûÝ €—³ÛkчÁÕ—a®þÞ&ü/3“ry^ÀXÚ†_î1„quXØ:4Ȧ;¸zR‰Î‘‚¿F¢¤¯ÙzE¨š~C}©7Z`\L®Ç蹤]h”òêÄI£ÎXaçRÄ7^Á9 9ƒL6SÏò…šN+y–£yÛW5-Žu•‰E`’_K†EÑU(+µÏå²#ñVÜ6éëLôSÊtBÚÛu|£µ’ô²Õ SfD6…`MXrD8Ø>©ªrΰuy£þf„'néfýâZþú+ Íð¡M,’ %N1ñ©Nd›n€ü|·–‰[µ",h‘CÈ®ü±\õ'²3VU¢Kþó0‡o–©J±{ö÷rbsŠJ‡2ábd ßé"zj GE8â‚a2PSBMÔ¼)#ØwlvÖ3Ç´–4ÄDLf–[HŽ4ß;#ÆÐ±osÈ© D$œ¸¼nùrX©Š-êÂ|ܳ°þux›¸“0íhO‰ój¬âÙˆLp·¦¤CØg룦!Gn,¼„Û9.ˆÊlVÄ9È_Cœ}±Zô DJjÛ=¦vQŽ#LpÖ‹9ÇÎLO[üÖtÚÛcY%‹õ=¢t½©ó´Ÿr„iÎI²¯gäÀÖbº54«ç¶à”Ç ½XÊ €SÄ. Y¾ùŠèÆŸPŠÝa9²°-–9:*8Û–Ç+©Í½…¢<|yÏ–©ÉbæßéÙÏ¥A/üßéÍýŽQƒÇ+†p'¿™>ihI1K‚þÒ¦3ÎU²T-Â_Z­Œ•rë#;Ì4l\Ë;²ÏtA95Ö ç€Þt~Ö¤pÔ·¡¦ÂŸV-±#)¤,Q>d¦+#oK÷w ¬Þ€‰âלGŸÚHNÄ+¤ˆÙrü6‹i·I¿ˆæþÞZù'Œ8{jà1¾-0çñË`én«¾:«ü…jÊ@iÀ,-N%FRÖ«‹w~§ÇVçbùã?«Nëç–¥æVi\[VÖ£òh$[ÇhÛ§­ó3ò\Ì Þå›Ñýa¿ó0ºð='e[æ 7H@øKM¡ä+P3æGÜOÚm"§Uà‘©ëèq Ì>*xiq¾Þ‚¹œ|ÕSÑ˺Dkõû´­”4g6ü—»HþHlŸQ¹ÙÀs]C(LNvcädìL}ºOŽ'ü± 3»aäÌ&Â8EüÃúaø‘@Ì«“l^Ù\s—v¿ÜHÁ_¢Mnè(à®ÚK"Uí VMùµ~¤»ŸG©§f’ð!äóàÒ®»89n‡‚5(w“@¹E«D÷--áÒKAΰ®h⃠ÕÜ ´ŸÛÇO_'SÌb\í²°~Ò0Pa1K{³UJkÞ6F¦ï2r‘›ÄâS€,ýH[¦–š§Øâg%’†•K’&$‚õœ Ýd ªÈéYåðާlõÄZ²ÃdqD¿ÚÐZàäs üL¾Yž¡lj¼†cµó>¬¿s+Fùíÿßq¦t„2Òëå­%–¬œ¹” 5ë*Ŋу])Aª[ MÈB—ñ˜-Ê·—aŽ-?‰®«Ådl„±èôq]I£I”Ÿ >T37TìƒòèÅÛøF!ÿò ‡*}uh0ðŽ˜œ$þy˜»¾+L _È]©=êÎÔ^€¨užUB¾ÁhÄ2¨¶¬ïž JLeg]Të-äûT­Jðu,ÉÕè'Gò¼<™ÒAcx÷Œ¡¯6ɽsØ¥àòÿ{Õó¨j±å%Ƽ†­«1}BøýóoüMYðN’yžq=ø/®òªÛ$W^ Àx•Õ]C.°‚†wÜÀ!TEµ߇ a~·PœœoRu‰ººŒLë+;“qß Lv:,åu™¡VþÂb2z|~Øãß’±Á¯;Ý«‹Uõ³„t´±î'˜s%]t™J4"èL7[ÙPWF°!EUصj´¯üƒChÿ¸y_%,_[‘ŠIEd—PI ÇštÝ-w+ç,+¦€~&XrMÀ§[ò9²5¤ýËê¹Ç)tªÊ[ãŒ+™BmJ=q¡ø³‰@ßùwÄ£”üä>ä®üL˺åN‰³j{Ú€k¹údÌG•úyp©j”DÌç+Ÿ„Ñv‹:áÕËNt†~JØüõ¾ôU©™‡Pâ?q¡G¦»lÏ\9,Y@œèÒåï^å±—*ìÁØ!Ê«‘F¸8“ûwÕÇxo0(­´u>Χ”í 9x{}u©…7ËÊåIV€TUŽEðŒÈ­»?Ò¿ zBä;†*&lr쫚ÒZØCw—îÌ'}9ð: ‡Õ4^ê-ò“nÔúZ puõúüæöö< F$ê }ˆ™¿”’3³ƒ.5ùÚýj?e³ÎÉ&°½ ÿ\oFÛm cðÙY?R9ÈüLþJd1Í¿ZùYy †–·Á(8¯É¢¾w¾ï” êíöô§€sÑOF*¼Ç+¦PoQ¦âÎ0^s¡kDÍíLšò¬` 泩æ|­‰ìËF€¾Á=­Ÿ^(óññ¬G¤s˜^’š0²˜3ų0ºò¨N vœy E{DUŠÐ‰õ×’[!%œ+ýU0” õפééâ qÑUV|I%Ùgå+%t ËÓó£ÌbûÃXS„I‘qDIä*UrõC ñ`ƒ¸R–[[þÜžÿ(H°}FõèƒC˜çÚ–ÝÑàµÚ üN%RL!ú‹Ò*j‚è‚ü­‹¡%[¯€6Í×$®ìWŸ Ŏ®Ñ×!Žqk½)XaB€·"³¥rˆ»Óìn ÷ VéM{5>5æÿ*X™{f15ÐÞ#ÎE±â¸3¯úÉÿ†vmQÜ=AÝ_hèéSð¡ªM0ö„¬h%S¼H©·ü5Kd‚e¶bŒëI„í飖uýqvjyèªÖíæ<ž:\èeQ«.ïÄ2O»¬«±¯”À¬’™=RFª¯“ì·˜PòÿcÑ¢KW“É,î «¸¾GtÞm^×=aî/·ËœüM”QJ)i¹”èŒ|~IS×@*™îIyjZ•£RFhrýU¦âdBS]Ñ $ûT”¸‚•’)†R~ä#²#=8u°<¬´©öŸÿÊ#%»O}°›‘8ÂZŽã?d s¯Æ™ü/¥+“ ©,>ïK? UéÙ¢Ñ0/âtxZcŸÁl'Ë0XÆÆ®a¸zcVèþXY9Ï…]38X£ü¯0ô¿“šMÖ²>¡@ÏJ3¸ï²Æíü# pØeŒÐQHºÑÞÒ û-—‚õá eϲ§Ô½âÚWÜa_1«N½¤„âP*ZNVÆeÒ,šµ„ÿüGbÉâ|ùwó ¶2Á»ùˆBðmK'÷;ðˆÐQ/pCp ˆª)ýC¯à‡¨ÅûƒW÷Õg¾þ¥‰‘…cåØ|õ]›ºâRB$|§‰h×V³® ÛÉ«Ú|`FÇM ž®@°«ßòàu¹ÏÌUãÝÖ‚BQ˜ü5K1ƒcÑÂ_@Ï éÓŠ-U· :sr|©_2\<Ç(ê¯Ý^øøˆU62ú‹¦lâÁ7ô'ì& ìðœB6Ѐ²»é1+v( ‚ Å|B"s¢ú5Ä/ƒ9;ÌS ®dà zÛˆ5ºG…µ@zò> ƒ½éÜd''˜ã¾ŒÙDKеBž|åÚ3“Ô˜»üÂF¼V´‹Ç!£Z±^ûhŒDŽM;–l£d<.¯‘IÉO3ÐðÌnõ~è= ô¿­+Ê,À‰aÌ£–ùn·ÀÃN™iòð ¬H:I "W˜]]%%¹WóãÙkGƒ È0G‹3ÈÊTŒÜ«ú†tѶ٠ÍâüJ– íü|©¬b&Z­Qã¾üØo€¢ðPÖ^– ÂÔË*е£?8Nõ!ZýNg¿ˆòhÌuZs-[…?æÏÅ´4àzÑÆ•A‹"/ŸÔúù7Ov•«µõD‹Þ‡r¨£OÞßWGƒÐ&”RwvÅQƒB6â6cþ)Ë0ü¤JU2ă 3{͸þ1Ý.¨®œ_”ZrÞ-ýÄO®Úwõx¹_[ë›ÆïÓÃõc«Fwód—Þ[Ø$ðF?å‰ü”¬à&„óY©þ®—Óª{Ûón|™¢œ'÷HÂñ¹½jŸÅl'KÅ0¯ IÐ\ªŠR<8Ó™xX]vÈÂ4"DAØ„L<2‹… u§ÉŽ Œ³ë2$Äq3ª¦"F7]~-:ÜÀMé¼¹Xkdúϸ(À ç§c ¯!E=)›±¦ØH[£WkÛr.eÐ1ÅÙ…Tøm·õ¼¹~LGP-ûj¢˜p©ËuøS3©1²I 2¨PÚ z;Èîßµw ñ½æMª58Wô?ðrºqÂñ_±öÿ_áXÔNÄð\Œt'd…݈aBGMZ¯@Þ~EZ\|Äœ5Åk>n"3äJfÖô&ÀÆßI^íÉLÒ`ü6š¡ÜúcZÉûÔÄp7„z¹„eá‰$r×-ØïË4€ŒÉ“æÖ2è\Znek%T2šX ,.Éæôm œbŸU€ÚÙ lp£-‹lU·Ì#UœŽÍù3¹Š\À£±ü®»²”LovmܤTmc“„úƒhågñÚ™ 8A"Ê”¶ZS›{Ð&r~Oü¬ýÿÃÍŒûàrD >!µ­‘î †ü¯2;µrbÜÌx“ìE´Ã:1½ßÂõâHKc²Ú•½{3Ø1JHkùÍ@*æ!CbFç—7g¹WdrÓVÆ…îÉÀíÌ#=æ)%K»Ë*˜ÁúVz±’U§ëwŸL+èZÒâðÛâ xPÁÚóÐaÆ ä|ɵÔþí7S–óIJª–V»Ý³ÆëT»NJKÞ‹B·Ø?èð2¹wÅɧ)Á¾Â}Vh±4iI pžJ”ö\È Oà$¬´Ëú‰ ©©#ñᛃuÅÉ ìi7kP\õÆ»+Ùòø¶ášÉˆÌOØRgQàçr Šä’Ûdxvæšßäæûü¯2‰NËþ-;ëâôqùcTI \´FÓx±»Îßî=\}0—–ÁÞxªi0÷ xMógvBMöÛ±1v aÎP§Êu‹›_´ ˜ÚŒ0¯I42n{;˜ºf&¢žS°ÛWLB¯Í¸ L‡É<ºšS3œA°`¬ ÿì1[Ñ8EÏ•VåkQ3 •ÖÔx·Ò6Û·'q¤ûü±Ÿ¹‡¾hXk „ëÈÁ%A‰2åN$‘Æ0Œ/ɨ±8Ó oŸÃ)§9º…•ÌÅ…K‹ÿæë}³ŸÚqÉqX4ѯÓ-j© T0€³ÒzÉ{ã:öc&£«ZtG«ÈMù…à=e*àØøKˆÿÎêHëZLfΩ,øóŒKÕ5×ó»NÒöfôÝ{™FxÐùZܾ¡:ÇDÉ $«Oäš)m'gñÅÛr0Êv™‰©´¬• "öM ~ìܳ›üÍØì7aüK3O¡|°©ðƒ`R±2™ñy»Ì+mDÛÚ(/sÿݱS‘a5.7ÇyZ¦4ûü±àŸ‘ÊH‹Éß ›.* Øv;¾Uj`dœÈí»c^¼W±?hrÁáÖ#§é×2t.üè»,÷Ù³ y'}û-ÂtqåÝq ‰ íål×@Tã©‘-¾O‘ñ_>”»¤ª Yœ~7¦5zQÍШ.AŽ'Áq?è> =9¾$Ù­Õµ¢-!öbfOŰÈÇ9|&ã%x?iìÉJ%qÀ¿dÃ8o|ü9o¶ éÔ¸†så>lM9ôÛ^c‡½>ù6K‘4 Õt-Ë3OÚe&ðuÜÇz·Š#Ž4°P»' æÅ0Û›mŽ@\EÔ£Œ«Ž*À\ $jF 6à@oàqºîÊŠwYB¾¤ûü|ªI:JËÊʹ”¨%‘‘šìE}V>PW¿OÅz½|Ö¦Îü7x.ãÎ…©^ÀBÒàV)œ+R/L Íõî4ݪù«!Ýá2>#º‘Ó÷Ù«é¡+,,&.¹ >JHé#Înv-v-(?.dÛìqÿ-)ˆð¦ÖQÈ✯ҮÔ ƒåÎ:<†ÒïþzÂ)¬C#VGmŠúðƒ«H|ÊÒ½Ó'lpEêGB×ÿ³…`ŒôqâHLþÏ"Ä~¥XxA.®rL*¶‰iÂQ¯EӋ՜ܔCÿÅïy†ÖG°w¹¨ÿí1þÊ\ë[ ­yqâ?œÜ×c  ˜*‡é¯A@³˜ö žÝL'ÊÍ‹-Ì“Øþ.MG]Øï8Aô£ÄÍ%ZÚݜՕ]sc¼™WˆŠr·,§Ùzüb1¥IN<ñÄ€Er÷$ÔµmK9ó-+þ_àü¤?)lxÝ1µ¸ôŸ'=Cy¡Ûõ™Y·¹‘†·÷°Øþ]?4¦ó‰}¥œõþSžõ¦¥X s0C[Ò³[ÑV–Ç äÕºúØ–Î⓬ŔVÁ¶vàÔI¿^¤zm·hìÖD#S£ؤ™yüL¼ü;[J7VÇûœòµ%´J²YVø×¦ºF¡µd†ö11Ûø£™³Ñ°]¼å>=(°ñÈçOÑúP”À_¶ÞÈì<3¶ù´-ë´[–ƒ›Ž΀þÀv ^!s•”f‚äG²üaÔ•LÛkìCÅôíÆ´©Êm •Ô©®Ž‰Âo&ur"ãÅK#ÐF‡.¸ucGQæÜÛÚXÀ 4˜…¢.¢pÕ· kfZ{H‡Xë>˜ ’%`öòŸ·A&®6&ˆt2©Üp"‰å€±|\òˆ6ô<#¼4qõ9Þ¥V¯üMXËÙ„m˜)’h+ĉ_¬…Ñì}·}WÛ²ã™/¸ë+}НP[¬óÙÇúR!°fbœ?úY€ YÎ*.ÇÕ|$ØRФuŠìÂ$w—ÃsŠós½k„›kïPùùÊvØ”k>ªÆ)h÷²4÷W÷„Ef[þXÒæT3Ðq+ È©§FÍä誠¨…àW:õyœÐß3äÂ¥)«%¬iuæâ¹2™]. ë`ËRmQ¨‚ȧFô“_à òÔ^ÈiuËa‚™Mƒüµ„üª¥Ñ6ΕüM1ß0-TøÐÆGÌÒàjÿˆPKk»tÙÛPC¬Ï|úòT×¥ZæÆPÌý~•¡?„Ðñµ&¨Úˆ ”à<[TÒ9T=ßz¶W^™^BnÔó âqžõò×-?™ìѺ¢ rÙ•ÂÔ¿¬=‰*#« ª¹®ÇFwÄêO?#íp$ñ×èçÂGC1:¸ôÙø‡µŒa5·TzhÒµ´ä1i¸vù©òň‚ …ëõû©ük‰ã©­>Ûë3ÏæëÃ;Cãû‘g§ºËnÄEVUHÑdæÒÎ6§îzüMWT-‰| ÜöƒÙ“¶¨ßdóY©EïÏÚ¥ÍüL˼uó‰|‰=’‘_K5 ½Ìkj3Á³ ´7åýÈçs¼¹ë\»åKæTȱˆ÷¼`¬Ì!>5|.N\íšîRËÆ.\Šó²LÞÃŒËRM¤hCwgX:¹"¸s}rÍÏâ{ë6o×Ì̃ErnËñX«äDPäZIbTËatÅtã 4ѽqi9©˜ItY®p|@¡¦Î 8úhËôüò7l н ¢ü&OK<Ïjï)3€î&G Òù@Š4Ö£b9ìùŸ!råý‚×&l†g4ÁXÌt3•¹ü{1«ˆÍ ü'œZæç”jyŒ_Y°g ¿ Á´N#rsÔ?ÒØ£gëôãŸí>‡ê:‘9… sèšwò†3ûÜô¼)5X]ÂI™-M롼H1ˆ÷Å'XµÀ\¹Dý âðmê ĶK´ÇxsÓòðšÀž¢šQR6‘~M¬*l4,®»‹r¦Ÿ†ið ááu¼Ôr‡ ãëCjCdq+ëÐåˆF8ÝðQÒÁ4Ø$]Ž˜òzò+„2ÃîÎm¹ÊBA鋺ÕÞÚ…2J¢M ³‹K8õCcwµKɃýx\1…½ü“ŠßŒ€6&s®e¦&àQž«&·ô=ª›íkïÙø7î‘«ÂGø"ÂÞ%½/<¹'«k@¶+ŠÝþöj\ΘE[üX˜°1ZEµ¬Qàp2ÇP}¬¼Û¹.6EÛY½cá­v¬pÝD– áØ°m6ƒ\Ïò²‡ÏÄ›¬ üB–À²´Ò‚p©­~!3ÙþkàtIpnpõñÜ!xÃ…q͇̃ԮÆôê@ArÎ2H.v7úr‘:CsÔ¤Ò¬¤ïü™gÏÚ¨Fµ—f7?(yôÝ+&­ç¹Ð.‹uœ1ÇÃOþˉ{&1»É™Wa^0`²(«7 –=—ê§éú®‘+pß+{áSj[v¨¹¼“WÀü±€CåN«8JÃŽUúÉ$€"µÖhC™˜õ¨ŽÃœJó\[hU Ò»´ì5¤¸e \VÔ£ŸÄ‘œ{ g 5Ia:‘ÆÖ¦S‰Ã‚ÅLó„²ú#œ €9éðjï €…j¥;ö[3,ÚÜD¯˜ì–ÏžYPž«p€FàŽ}±álê7P6B{E#'1ë4åI»ÈJˆÁ:VW59[å˜Þ± è¼€‰Ü•Xß•ÑÓ§ z™U~íò x;¬;I½*ÏQŶüVÄfJ‰·¢&—£TD·k&,Ð2Œ)ŽÆÌ ‰ü±k"½Ä= @ã'V=Ôäuv’Kø—*…§¡1þX `ãéÙíþüQÍØ·èí øï̆ IjûŸsêÐEˆÁV ¾oŽÊÍçàu¯»R ,…Ê•ö]Ê®Hš„¼å™ôÚ,ð¯pÚ¹¹IòÓÌ€±þOaä'–ì·Á»¬¡ó§é%TúzÙBرÍÑ”[ì e÷“\º‰B>º\’“pªuþÅ4“T‡³%}z€ÙqÖt´ä¹…¯šþÜiHk`£×:õ\Fˆà;jk¹“—E/ºŒìqØf7£V³§`¶cQ¹ðÛEÆ"eÒ¬hЉü5_¢²¹Åž:’º‘+¦›÷Qg]+‚GÀsºa'ŒƒDÖNH~,P檼þÄ’{5Ѫ\už–…ˆ[–*ª*'ÇË%¿–Î’ꬾiêß#«h:‰>ÞtûVµÞiY%—ë@oÆ&Eqû=©+WÑîp¦ÄMò„7lÚhÎ2fq5g9 Gè`ÄéûhnÔXNÜ»¦aÅS¼d_x|óU%_V¬•œ,Q‘Y´ƒi¶„¥y ÊOàw|®ÊÔ¬v{ô_ÀÕÀë «„!>«1c`ÎÍ]„±q@œÀùe-™Í!îàÑWm[r—ÈÙ¾ö*N´øíôÛ[üM.Wû‡uoĵ.¬ªªDÇà?ëÎ<'hžFgX–b&ØV‘uØSî„y{9fP¶“~»# Wwx¢\L1vc\ ü:†S oÂþÖFš´%: 57 úо^]>ØUfþ3áj.FïUݳ·àŸ’$cuڌז?¹*¬C±í¡ùkQpáuEN…~ƒP²‚\®¿ç Mÿi¨4•…Ÿ`æøŒÖM"gÆ_ª{`ÌN=ŒÂ?&¾á’ Ùî ï|Ê4êüx?ÿˆ§aÖï+JDÊ\U`)œ[õ8ÓŒ„™HMâ#ßLÌMü®Õ—Zb&îçk•ò±šùÅc\‹mÐc}A8ˆÓLŒõý2·TÑ!¶ÆE|bânâ[xX(6­6ö (APÌ- sÁ—°õã®påHSøM†–xÖC:2åœBˆæt!ø Û‰&@µŸ<«QÝ–4bqaº§9–¼ÆrîK¤±|î%@»®´c+~Fêß:T[Ë´æs—8hÞZÑŠ¥•r¾H-r8¹ÃWtÞ!ú‘=R¸™ÁþMMžºÀPÅŒëÞØ 6LÑqÚƒä¯Æ ¡qoų™RŽ÷ÞÕe·‹I _ Å‘gâOî“Ì[¥™Þ´™Ô”' w·àXœÑf ¸7$Þ^@@3 –ú©`ßo‹{s“Ú=åšÑ>$Y˵ŠôpµIp)4’(˜£Pû—?{jLmüÆj÷‘-d«’M`‰8¿¾zD&SÎiVzyú´c‹#…H-7oœÀzŠ]ºõ˜@A]‰H,¸´Ì³ÒL2'øíÁÞ)s?‹DÓVØG÷iÙH×Îmn*¤¯›3 ×ÜsŠ„¬ñä›ùrIœ…Þ>WY¦~å2øØèosxoóØ€Ó=ér‚Ç b¾†BA,ëU\ø×Ê"(ãÛj^E„åsF‹ÿéQ?y‹"~•4l<àf¥ˆ×ÍÏ!å,6,yJ0.³Ë]¹lØ‹R½S‹!Ä^¥u_ËšTPNè=S¶¦§µ4Á5 „ÃüÆòÂ^Þì‡Õ'm^ý·'`)òEÛ  ñ§éö=aB΢!¬±BøÓüÕo Ñ½Š;ÊölDÌ„ºAJ¢Xi÷‘Â&Òx¹b>WÞKÔø:v;™]Ÿ&ŸyËY׈ˆ,oÂúXÉ+æXzvþ7`ýÁ¬¬âšÉØ`‚3 ñŸmX›Y¢ùMvÇÞÈH¼vq6w°Á¿iÜ^¶=ãŠô,ËKµL6Á¦Û½‹ç’÷ØÄ°ì Éž%7xå´ã&A¾X ª¹j¢/$SÄ›é#’…)  b9p¶dþ´úþ; ‘…üÃÛa:¯fèÓˆòyÁ1P¥Í”tМ¢ó¹÷Cy½íˆäW:_™“ðDHédè°ó›ÔeAgÖƒåäŒðNû2…Aw¨2Ðk ƒÑzUåÚkE>ááá&ßjij3rÊ)K†ÍËû€û¶€$…< _áñÍß5R¿Ë  ÝùA…´¿ 4åבšn=“xžýæÖ?L/’Okk#\Õˆ}öo¥j:¹@[+<Ì{N Ÿ nÓZ6#0:”]ù´óp‰7“ɈîÖ@´Èݪ6kŒG?^b‰.Ò-tùñOÚ)•Ó®÷ÛÕ{ÆüñüJKÄêâ‘KÏ[ ÒD8#!3ϵ³lGÇ£)wRód>%V®xüþt²¨Ñ—FTu½¨Òšé—×/k)Sê\¥Š¥±Å×y‡m7óx›ä3:Šrû>ôˆ†“È•WÖNÙñ>ÎvZ6À©˜ØsOo5§R©Ü—Ê`q& ®‹-Ú)`úMVꫨàŠLA ¡f[‘E äÇ h‚Š0ǽӫ%1Ó|ëŠ\º¬o(>̰ßRX¹?wå Ì"Æ@/úZà5è()d·ÇcqIK6"9u)î>¥1¿Xl¥Á:ŽòðBç²NÛ>O¯« ©šxüJiÜ’é}ó2,æRÂ+q_L$6uU#hß1÷Ò‘wÓ¨sœŽaT' · ×õ5 ŽV;N ˜y#p' Ð 2 +¦6éðÎpÅ Í;™ì…Ðûà]„“ Èè”Åe™ãç– ™LÛ l!ËÍh"ìÚNzówå²b<×\±«ŠÚ÷5êÝ¡{óþ¦´çöU™RóŒ{ƒþ¬÷Ò’Åܪ.åâ9¢ ˜Åoû`P(fŠºÏÀƒ1`ûŒuÛ¶yœ‡a?òàßç3á`ò§íÈdîEˆŒÖZ!xÒP<¨ºS´äN±ŒOßü|¨Ç×Ûî£:%UC±Ý=në§(¼ùm.k4žtšgˆq`½, >cÙ9¯š- ¥ Ÿâ‰jƒ =…ì<_"¶]5-WoÕ~ÒHàïýì;PN’k½³±>i% ò0ß-¸SŠ"7¤¸N=e¯ÖGÊmU9Om˜&kÜm·éI“ej Œªÿ$ÓoñF“.K‡£8€E0myT,¨é6“Ô¤®fvž¯¢…]â® UHª„®(ÞqÂdÿÒQœy‰“¹ ü5m½¢¥f<òv¨–þuXžûJ¯|Á9ÄOÍÆÄ'C[ñf¶ŒÒ_l5SŒ©mÍE‚>LÀÕ›ReÓcpåŸiþI1Rh|Éäù°j:õ4O¢#Åcß’\CÄ:I°†ì‘,„Õ`rP|ÿ ê§eÏ:M®øvÚf&Ùþ€Â t‘h4Çl©L{ø®‘Ô¢ŠóÙÕ•Êdî´èÖÊ–ÆÙAŠ9?—Y“¡Q@ÑÅg8ç#eÄ¢G”=A£CHTAuD7òýIØlyÖ,n’Àýu*Âk5 (¢uKr-ÕLíšü5(‹ í9#ú9^McárÝ–^º4Çmß•¦?û]q|(§ %xLšµG¸Êû¢å%U6Ú•X×c¤#H©Ee>…?«A}ÖüzgæáâÅš^º40Ï‚~9ÚÙ@Ñû7ïèÖ•õR0‚#ŽçO %å j­­B͘¶çÜßß;+`µ~¨™SÇ<ívAxæ³zLy¤åi/ÜŸh'»4Ì [³KŸ yLð}gîÍÞã`p>[:ãqíÀ¼Ö'ÞFà"/Säý>4‡*Å(Ê ç>hlàâ‰dñÅOggS€1¨äDÝÚôêHãéøÿÚììýÿþöÿØÿ0ëîèêìòòðèëêçÿÚàöýÿýÿÿÚêÿÿÿÿÿÿÛüõÿÿÿ ÿÿˆÿ/þÿ ÿü6‚\^äÀ"på£)Šêù`‘ÒRm|n¢3ŸC!7¼Q”Ó,`GmŽÌÄä]oÌx•k£iÑÛBi[üÑH3è_Ó†×ZÎÅOG˜0C’aÛ1À³IÓKQ•{Ý3Œ s9ÁùJI)m8ñ”¶æ[#-ÝV Ó˜–hù!vD9>€,¯ÙÈÂRD/• j]|sTûñuòÛ[A{ ã,–WpÀÁ,°¬@ øËç´  ¥oId‡>•}7…Y3™H„dfHµ]=Fl"R¢‰«æž|kdÎ÷ÕñOü6›ï¸ ˜J6šOd„¨ü­ÃÕ…gš‡Ï´ÇÚR8<¾Þx© Øg)ÍnZ%_ï(ßÂRyfË–«ÂüŸ+|ÔˆeÓ¬á,DB•L¦ãe¶¡Œ$ï ºf„Îga!ìU_e¹–:¶Õ s 5]’Mìp}EïõÙ LŒV(mÕ–f¾&F Môì±[#'ÂÙNÃpF·»Cuç *ÕAµ(‡^Bá¥öiM{oøvÄþˆaB¹þP|xfRK¦mÿÜ=”½bì#?‡Qe{m¶ª^¾Ö»nŒÎ~ÞdÄêÄÑɾü5²=™­<®v@ž æ¸AµZèxò ¼PgÑÝ¡âÞâ@ÍãŸH†¦R~Þ†)þ©õ3}“I£\Ò¼ ®¶ŒUk BåíO DõÍ þÑP,¤k¾¥V—­Ê:'Ó9Æ4ý×È”=ëÚ£¬Ó)ƒÔõïkÀZùVÛ›c^pù"qªT'ˆý+{‘ñÅÿ|.[|æTÿYb2y¿ÂÃàäöƒëî6ðä©»P}žôHÑŒÁ åÓ9?&¥~[“»÷íiº„”f.ÕàßâbUålÜæU‡¥)Ë÷kú@=ô¾~vÎh•Gü L«]p¶›ŠÖÚü|ª.ÃIï„*º¯\üìK’z¶w^Y ^uÔaqHÔ`þ”ÄÓË‘Û;ÖÌÚ¶¼ÜmÆeåÀÞÚ§ËŸÁ%`W¯5Ò6RÛªóS‚ô«[BŸQoÀó»AE‘ŠTŠA‚·°â½óNë±jÉ…ášÛrÌðåÛ\µÚþ?I¡¤¾!Òµd׿ùàÆvrÊ}ÁÛà{ÓawO=µ—[ψža#G(`Ó;ÅLMLÀÑz Š|ðq„Um£ÑŒ‡…aþÿFåXiRÄ"3w•¹Ÿ.b¨ò©ÛÛ¹e›<¨mSp@/j ×óØ]tA·8Ηùâ@¾¢jVM5_† Û§äp7ÉåG6¶𠢿Cóžä«6}ö i`|]¥I«&‰­ÝpãW*m»ðœ5ñÜ¡œ‹ÐZqic Ÿ‡žÜeË"›l±Òd•Ø]¹þòeª®~ao™iÀ0õ.¼Û+0À1#íTös­ˆ ¯ga¡Úñ2` ®ÍGÄÂÒ\íÖîÕ{ÞÎoƒM4éô>øÁ.Ù¬NzÀ›B-)j)KŠi¼6q9®Ô¸Ü‡«4|€Á ]XÏ `§µIbl°ËÜ7'¤È’^*⮳>ƒÕÂhtœü0Þ]r¢UÃ>ÕôKðErx -.m#é]:)ØppÿdïM™YêÌFÈŽñà-z>¿›Ò°7vù”uƒ¯?=odàÿÝ8޶¹×XeùÚ»•|CD\ÉgÀ.øõ,i•fLTÕº|*·bÐÇónCeleôŠ7öN}=Ù—øjw.U“>¹§7Î0•»ß²›!Åê¬v‹ƒŽv ª(£9€²:YÜõÀG[xØYË <ñã¹:MÖöY–ú÷9,Æ«í¾ðâ †•æB®Ý† fi„N=Çà$![ýÁ’цwËjýp“_ü.€Ó¤öµ¹`§vX j Cub‹€^ÙÑûǤr³·›Ïþõýî…àþlýòNÛ*W°'P¡^”⇦õ)rù}TmãQQϳ°« ·0Ón‹lv‚®O‹‘æ#j;ï¥v3t„탵AÑnª¶¢2<ÃÇ©Yøfw.f[e„Ñ ²üËÜ)'¾lw^=nÓx‰LùCVè Wö…Ai¨.iiŸÅIl©™ÿ €\ eRi·ë0J_¥Ñ¥ yt>ˆ÷¨N‘€+§ªÜK õVݘ1ìVcIx¦ûªiŸAIDCqXE÷ü.„_¦æ÷#å‘Í]=§ƒxXY=ù 03Ù-(ðç¯ùSb$šõìŠà_ûŠ58è!QkÔnQH;ü®Vd1–Úãƒj¢˜÷ÓNÜxŽkúÛ–Øä@ëúYêsE.ª<‰›‹ÖeûΊ>³£bzÂ-Ìô:•ƨÇáãÔՔḅdÆ1àà–qjbØ«»± HÝš²8¸¼û\á Õ`À>*PìUßÖž˜È¯á®>×íXt[Grd•ÛÚ¨LdÏA†øykæ)‚ôbÀÍ33Ú’w©JÍÇ­cVp9AìÀú ׇJæ®zyT÷ìAòhäüJ\f¬U–°š«gU÷-îw˜ªgSSÇP¶F}¤™Dõ¢v«'z‚~"Wt*[Q«9ÔÃîÊâ· Íß5LoÓèÝá¼=4“/üXd;£dþÉ9O™W­£–bD!Ë:ú*ýPDHdX€á6Ã(`á$r]•Ó°ã‘ÇÐô‚}ª3§?CXéÔ³"’š¬ÆÛ6×€./ }µ1™pfqÔ2·h„Ï™î“ïc43C²ê¸ñbH½b7$m9>Þ„ ܉Pµó}€‚êžs1•â{{3åìë$öãxœ Àë­’£7MÐ 5´ÍdÈÕªXµšèü0dÄ#˜˜Z36ÉÓœ‹-’únMÔ<­4À²<¶hZ¢ôºá»7±Ý4}á -ìc¬ ~úêÏM4;£^*Ÿ³Næe1Çl‚ý¤òK·PÍ´Ê:Tdjb’£E®M³~³w’­ày>'ÅïÚN‡j)³5#@¶hSK‚©½zô…à9&jI¥@ÓaÞ& L"äEŒ-A1Y9ÔA?ÿ](&:2X7ÀÇC NÔÆ¶ù€œúb‰bˆ7_RÐJf'ñ"ˆ©TVm·6žÒƒ4&þ6d«ê0x ®¤ÁñÃÕôïnLFIzb‹ Ža Ò‚r¢ªZ)Þü.˜²«+]4“û–fÎÓÛŽƒà€#ûi.v‘KÂz.ƒD #«Ì‘%²´±5“ÙÅ©e«4§r² ú+ɱ…æsTý<]D b¶H‚œnì±É!)¼aë@´¹”_Èò%l$øÔ ÉWCÂÒ‚i-â˜1XËÁV:ÐöóQ)X­…¦ä6ü‹GÄSÏñHw£X5ú yŽ^´fÂãÞl ›xóÁD%µ’Ä~ûUî·y‘=²”²ôÄÖaYµ^ŸLÂ;÷çW«ìûÿ>¸Û&1IMÎ:†6[ˆ±kE†š“ý룞uƒOäü‹õÁ!GÈ¿ì!³Ä5› Wë»S^5#ࢉ¼_`€Cu6MHúGzw² º¬ãà°¨8üXz-ìM¡ ƒ)ÔZÄþcáçC{½¾ {<©\?}K/Ún³QVVògÝ·Êiâgý!7ð»w!Ä…Ø£ÅËP"IÑs¹HÕV-Ë·³{lÚr ¯¢†NÍ}OÍ뛟þÍÄå)3Ègßò.׈Qd¬nOøé$(ª&@žØ$Þ?Zš[\vFÎG¥y“Ï%íæá_o¨=ŸîõBú[ÀG¾Î#a?ˆ |WÿØ€dà×FhŽŽ ‹£粂êOÖr?-$ª_¦wlg»¾j«Ї^,±õÕ¤lœ„í穜 wPVeâõ?ϸ×LBµ5?À(ë¹– –§7Äk–R'‹1ñ£úåukŒ'¶ÈÔü1»t Â6†$ÈÝat“Éf-:w*V’ò~ËÁFþÞ³üJ¿‰¤w× ãRLÌb“½™ÙÇá×(÷ ‘?eM¢´ÄXtò’ûry˜þƒ¡PoÁI—£â0ƒ!¤üâ³…½ø»Ðnå¢ï¤8Ù¸·`~|ofÀM6ü|·(Å<ÈÚEWS½Å œj0$wŠùع Î\Ú ~{ñ ]ãšàš:Vø^e›XWñÄAˆŸŒ5‡0ûAl`¼Ìû{ÇË—€ï›&€™ÈÌyªo»ðr<Ø«%•ˆ¬Â)O” ZáÊcȾ7öÊEL¸É8Šz!¬ßfæ¦f}ŸÉú,öX!:èüLÖL‰©ü–kÀ»/1¢ùTÍ¡ÛPçÏ`®«@¦':?B¯¨N=Xg7hœ]/*&1äMGuPéW_†K¶ï£A^“g_;Ò»nŒ±qÞ …’Øþ}¥FnÚd)«àÖêbõY ­ø%Äö&‰a±öâv„¯I‡ ò%<î…uتk‡ƒgG~°,‘´þíÄÅÁ "ÜJÙºùíµ)^r®–ãÇØBU¾Ÿ¾Äጧ.®iúyLèÜ áè¾¢>*¡ÔÑ=Åjøx7.žôø]Šj~ ‹åò;Ÿ8!¼>}p•``ý•ÛüMs~RöãçuFcäì­z‚ô ké•â©<˜Ú~š…ÛcAûZ§7CݧRDÙ`ƒO§¯$hòÏÚG£ó­->°4/Ÿn²-Z3d÷~w…¼ˆQvfE=ï̘wÙKOGLŒ‰õÏžÑ8SñˆlcÑÙ¼…5Ž&&ËaMí#ìóäá5Qnðz2uF×[š`ºs8©&™¦.ÍM‰¹¶qúp‡ÆämŽö›¼l0¤™Þ "/ªzËmy¥c¶ÓÍÞ ºF›Ü4uxpêS« ’HË ¢É€«tbØ“RLe1Å„o†æÂDçüÄ…ˆzdŒÇ5èë´·%>i„¦eïᘶ.®WÅC ¹è™[¸‚h8ª·”Í"1Ìb{7EŠ-±Ý™>ÞbSjæÐл’\±$i;«gÑšžñÛUïð‘ª}«FdÞâO±×“ÈËÇÐUóvÚm-¾%Kqàx#Á’¤@RáS(¥ƒ0×¼Ý6‡*T1¼%n#Ç y?ú¤áíJ/ñGˆß{1y1†DÍ×XØTû™4 »ÍyÂÉtEÐî-÷¨m.®Óí׊hû0Œ@ —¶™šçX^`å\#h-¤i6òw·%B0Ëý,ÄHRnàŽ 8ôgdÑÈ«‚Í#Y…KüMT:îÝšÚÄr… yZ4MÍ_GyØ? î÷7wâãû"ŸóC6ÙQ·nØÇ’ÖÔkìÌa<´0‹ØÒšÑâ­K(éUUÚ1³²ÜW\æ87¸~Ïé3xìç’ƒ`3Ð2ý€ UeÔóÇdvµuË«ÒióH°BŽÀÅ~Ùϗõ./„­k#ý×DÅΗ´ró¿xPóúŒÿ«BYŸÖÆ®7ƒQÙï!ä# œ" G++!VtœVõ@·dÆüÄ|Cƒ¤öÌX88áõ‡wwj±4i­³5ÜúÍœvjЭ¸Ô`<1ü6‰ó•Ý¢óÚàмr/F ÷Bù2•‚Ž`'6E¾’¦ ñ­À/²O„é~Ψ:Ê9­»ãÅðºým6ÊžŠÚК6ü²@p÷ôöGB€yk2˜‹,Õj£ZéÑä1`¬Öý-lÚBê?´=öjEÅå½”×&+§øÎïç^ø(€Û†«;S¹ÕŒåËUv†d¢EØZÄ,ÝnråwÍ9Üêfê<~4zÂ¥}d3—Øz+‘ø°ñx õ˜ˆˆÜÒWWú O?ž’B• ß; “­U1²^»AOïÀ&ÜhóW¦´‡+üJZëiaƒFKkl Û°ç°h£Ðª1êˆ5¸$L§^èáh•c‚¿”]ålp/Ñü&0­·ZfC ¡ÊŽI>©"ß*¿ –ªá´;™ tV\)1ñ‘ƒÐã|F?ë`ÔšÀ@ÅêÆId¿MÅÎt±è†[zîÑ8… S÷4Ô8¸ä©Žl;§*“àøø!¡11‰ç]&èXRyñSª }kp¶8GÕ¦Ô›Ô¶ë™É7„•1á&ÈN¾ú«GÁȺ¼@ D}€4rª¶¬MD£«P«ÁÀK¹ü6Š¥æ¤¸¿Ó_z£O?•r&”¹xãBJ|¢ ²·*ç):õ(9W©9„%‹SÜJç 1ÛgúÍeÄn÷EñÄ´ƒ¥QÑ:ÞþXsM©/K–é:þ1áüðZ¶^jøˆ“uK醯ŠN?×-c.eý Ço$»™P*`’*9KAKþ¹¦§vJzszºAEì¬ûÚö51q0"o{\»˜<`Ï`tìÍýФ©´RSWÙç&÷D`FŠu²Jgj²¦þ*{³ÑùMo¤É,ízúÜ¡í@c‹/©ÞÁ!vªüM2HDá¬Ô†ï$zëå®›yfÉ#î•kYC¡ô~%„UYÿëÓ¢lx ß÷  Ï•My/¦xb±côDmZ óC…)à º@á“êe^OðIêä^¡w)xxÇH,N×.ýÚ6¡O$¯;°5·]Ct`õêc.èÓæ¢³¡hƒgÄ:ì«ãV~Å´zã_ Ë( wwóGùW¥¦ë1j`pá狽ý›"©0q„¡ sƱßßZä%]«I¹I<èþãŽ`½E¦~ÉèªÆ5¼† ¬ó2ú Mp—FHQmÍ Êü55gÖÖÀ?ƒ7 „q_,<$váÖjâ©.0,{Ê2j wflaÅÆTëÕ"Ñ*Û>·U¬s¥ŠŸjÒ¡19õ‰,ÒH‹½'Vž‚gA v¼Ñ, ÏVuþ¢ËwVž>ã¬r Í~eHˆgºJ„¤¡·÷ž ±¿t71s¡L†›Èt$Ⱦ_°X³@8jT\ÿÈ<œOçõÕ àpB©î(Êâ™$(Eˆ+]ya^“:)gnvh9°§“õ>[7õžUòn+ç„)âvQ Œ½x™z¿d.f›ü|­÷¾Ç׈ÝGô£å5lì ^úP$˜Nøõ,~öãB^Nõdÿ:††íŸaX*q}\žQe¯§@ XÜVGÆpv/-ƒh7O@üDKžÀåD]Q—=á†aÏKÇf4åÜ‚Füýíñ·7ÌÊÕIÈQŸÚå2G¶à’ÁU¼{ø³Éí)`µs^{âF8ÔŒ¼ßÎOÝ ‚÷üàøIÿ}šl JØ2á²÷#3Èì®}¸û?P?“výQ~üÉP2'†m^8Ålft™ÃÝqâîTØ9aä«‚’”: š£ H9§­ÍßJÿF„ñ•c´¦/‹Åû›_M²è¹Oµ—˜Rdxž±s¿{˜w÷2÷üº v³õ'€¯dœà‹ƒ’¿ÜŠú}Ì4Ùø¦ 'Š¡pkÜ+}2¹%è餳‹¨1™)ÖpÒás,Q«ÛÝŒ «–A±ÞuÞ”¶ 98ر¬ÁE,QÛRgM¹ÀÜû-èkzªàg·bÈɾ\x-‹Y ?ˆh³ŽGŠ,|ÕaWa0Y‘Ö&[ ,8~tMäÏŽ?añ¾[õ‚ǵ>ÃXæå:ºˆuö¬í÷«#á2šÈœ|è\dðˆüXfžê¼Nû¾¢T€¢÷ó°¾Uþ¾ \è³=R g; ¾¯I}OpýbÄ;…œö““ìSƒÃÉÀ¦AßDpÞbTIÒûpÊP ,gû!ό҅ȹ žK•,t´ÔËYÂc]¯Ð*mÿ †Ñ0o¯–édrO¹wd˜UÛ=½ÆuHsB Øj›B7à—ÁPü¢ÐÀ>g¯Ñ˜®­iD~¥Bû̺®}"Aôñ~ 8ú7þØ÷åA£YC]R(?ÎW'¬cë Š›Ê.sòRbC(¢üMFÓë9 s.¤7¨2szôÀóBȱN†ý´m‹M%•zI:ÔoÞ4F"xËÌLW%Ó{Yê|µóªq $‰=Æ vó« \œÂ+öç$cK‡'¸b–Ev™ Èí¼SÑÌdÍü%rÄ¥å:%´È–6“4pVªueǨ  „¼ÚµÍ¾vZWØU§û‹á[_L±XÕ‘Óxã{¸?>5䬯k³Û§^ZæÓÕmN]µè<Å.Ð\L­ Ëäk„ˇ˜Â©¸LwñѵiŠÂ°ßª¦i:ï`„X{ܑވ\H(G÷Óô«Á4¿ü˜üM2•* Íø(Y/:EÙØ¤ ½B¨ÌÆo¼¿!K‚vz9œ¹S©¹Âg'ÿ§¿Ãû}꜓ ¾§6{ÿ[Î6Qºìˆ˜7†‰Ö˜=a¶ŽYè·jÿ(ÝöüÅy´Þ·KÚß=—"ºLÓt¯ØoßådfybwµCDÙ5}Jþ^éK;W—êçd·±7ŽZj|ˆö0‹U«òÜŒøèfÖvkÎþÍ̸µ¡• Öžtœˆ7Ød½œêOŽ´Ï2™U Á;nlý@Ø ×#½“9CåšÌ;íÒé6ºüiKô¢iHšKàÇŽ=óÝyZÌc¿ZX•ü5lä D«RÕÕï2³tCw–ª&ÜšhÍô¹ñ•%G!M%ë{Dˆª÷Wpƶ µ_s½+q/½I,Z³…ÑdkMªÓ=÷¢£‹á–Bÿ{8¶z&ØÑ¨0él/g2$—kè½iš@E‹¦‘'(ºVýU<*Lè)† ‹Õ=¹ù‹…˜¥k‚^-*Ž…Cx÷ÔßMþÞ§UðcÂ}ÁøíiŸ}Þi»N(‰NWH¾o# Ÿ F¢Ýðç„wsÓ|lžÌ)·kÝ}®g¤Ðh±vÿ¨g¢Së3ž,ë@„ßõMœ±ñò‚MÎßmæ'6pĵ¾%!  øàœPãæ–Y “VüÆ3Ù»óJu}9¤çGdÏ™l€>“P@,„z:Zó‘»Îy(l»ÛTœc»xç!Ð,x©9MÉ@-cpT”Ô8=EÔo”ËŸ( LÈìãzã…šËûØìÅÄ¡¢öÛäå±¶$A‚¼·ÓÜQhAÈ\­~Ûg!&1=„I¦xÜóÜðw9鍯"ÀÕKÝÙ.EªÔÃÒ^_Ü¿Èþ°N°'4@I*šÆ®wÅQ7çDþ~2“å2%g}VÁ°3Úõ`¥ŽP¦ljuMB‰I;êúšÀ²gዊöC#´Á@}Ï1Xnï#ÉCK!ƒ—Éõ–µ$–2¯Ñ%ü5(\F|ÆÊûuÈ &‘G^n-ù2ãL ɦ_iq¢‘vÜuäÛ/ß`¼ Ôèaöçn¼+©~Ÿ+¾Á $p.½ýc“”¥S þ°ý¡Ê4eǺ=çÏÏ¥:š4“b]ªWy"4N9u1¨ŠþjVD¿/fx8ÏÀiÏĈClÄ=3E•ò Gbå|³Õ¾ùÔ#¤øÉœ©Ô†PÓÙüe¹5e5&;SЛ2ˆ…©0Å—ÙøÜ ÛŸ>à,ô¢B⯛á4ZEëo§!ÄpËð»¦ÝÙÅ›¹ê¦á縢UŸ¡H‰Áwš‹QwšÙè¤\Z£{V9’Dü|¬ƒÞ0ò#ưÅßÙ–{à¯Ç7yÓ‹K„h%9²A#CÕ%{¼­ÏÕ(£Arï—»tNéÚ%xüt `N#‰©~G&«gÒ(z³¬#ÌkE´rp†xþ„L|8¯JET27ÓsìI¤É²««ü¿ÿ§N\SªçÊ÷Ó`‚°À”·E³K÷“ÓÝîÒ¦‡Ñ€VðX!ìþfÜIÖÿØxžÄQÅnÀÞ@ƒJhvO­½‰¬^‚÷l9(˜‡a8{Þ¼}mî9”È:çp ë"í¹e¥ŽßsŒV294J½Ð8) ]ÍM -=½U ²:$¦%ÈÌãŧÀº%Ö¶ù'Yk/+D y ,䫘2ꄊ×΋cýA¢6Ð8©?Aï¦U¯ÓwÃíªFÒÝ G¸%a¨(¯²0£R£»:W (Ãü‡<n㋿ךB`Æä[îÛMÖ÷–@}ÔÛÈŒ,‰tÍ.ÑnSpL¤ðEÈüÛs5Ñ],EŽ*aáО«Ž¾3z R±²üܾçéz¿O=Žt²>°>âÈáæ'=å®NˆE¾²1ìÔyI„ -ðžÄoD*­€·µdÚ룵ÉÙ0üXù"Í[4U0‚)‚6ûµ§(¸ƒMG‘^7` ÖSŽìwWTûûúp, .îÑuÒ]·¬¯VŒñU»°Ør¤$†o‚LÃdzlïãc¿÷pî³B€O7 Çл 2”Ù“âxu‹/Þ¿¯·}X.”…ZEs³Ý+u ꉚ֊’·ý7 \f²À—Rõ˜ µ&7ŵ6Aˆ5f¹®Í¿Õäµa& 8dНääÒ…‘ò¢yR½öö'f…ýZͽ™´œƒ`˜*3·¢'ÇP|Ïg½ÁûýiWHï¸ÔS…—çá=Î<˹üM*,þÝs -FÂRY#`>õÅÆðª÷ 7Ÿ”º.JJŠu&N¦Ð£qŠÅUax±U“§½ Þ;Ë-ÆåCÇ3L¸µøë‹CIó<çåþ)1Ãgúb³Äº—w?C‰9ÍšX¬Ÿ†<¤,¤'ÜÆÜ"¿$+yZ‚>c ”sò#óèA… $uI/00=kë¸P±qm]#ŽUNhqO&Üj²\' OÔ$ß²•_p54ë3“s"ÑÄHcõk]ò½Ðºó+Õ \-ÙÄùÀË-™¹ÅÑpVÃgÌßæ«öM&‡…-EØ>èaµ’\ðLC0ÊãIfœªF¢Ñ–Ÿ]£üM2bj‹BÓuÜC¤AÅÏU»q¨òÿuvˈhøxÙH®%býê’?Çd£À¢ß/yÆM¼µ´ò}ùüÒÆ/ å<ï¶•­ÞK3ÊϺþ±z…0"£_ìOÕ»žC x`J7f7ò‡lòGpÉh^ãv?âé¿-B’¡TÀ/àB¦™Ëg}ÜÃ6Ûúl6þPò«4ï®Ü&%n™ß8eãìĸ@Ús1<½Gˆ÷#@ϔ̞w‹]›¼V[°úóöb´YG2Ѝ9-ŠhÓy >c–5’w²´Ç¨¦ˆúk'I¼§ZÁ ù©ñ¤2@'úîjdy ÛR›·ü5iÈKzá^´Ç¬ø6 ÁQ3ŠÄ§{¶X¸&œ z\¹C[)Æ8O)Í3´ÒUÈ’>k#K…Óæë”ƒ…37,Çü%îyðøšq޶½–žÌãuí/…qÌRt¶²R—¼·ÙŒ…$uÆÜˆ£pòÆ>çd‚|ÙÆÊÜTßíª£Ÿ?õ¶¯üyð FÞ]¬Ê-PBɺ=Æ·²èncŸäÊ4;£iF á¶%Á PI*3}ewŠæWA –èXy|º@§…ÊÒ¢î€Kæ|Œäûó‰àPõš²Å†Ü³ÄžóŸ¹W/¿ñ;5áï |çžY{‰çe 0ì§QË›NüJ!Îçtc[YT”óT©£ƒÒÜPFÇê( =êd!Î-és…4ÓRC†"Æ\Þ¡¼w1ì§û-y¯%>þ¤–à Å+VžÓjë-oË0)]@˜@󳯠È5ou’ßõ%8¼–ûbsÇÀ¼³X#¢;)µç›Ð¹YC·„3JûÔe*D ŒÓ<×Áù¥™E¯Ž}!D« @F( UJë vkžf<4;=ýÿµ{‚b߯þ¤õBT"Qøý¶¸qï˜ØÆRîbÐ0ՖЈª¸-áC‚Ã5%Ùò_x‰¦œŠÑb·g¬}3 ¢+æÉÈ‹þ´S+ ¦ûŽ>yü©lBú{˜ÏgâK£ÂçÍ' Èæ.÷óD˜­-È h»–`Ï6ÍcÀ87Çp,—¿2ŠMl„f·–Ëà³­ôYYiæð6Œgöý gE=¼éÀNÄ$ø×àò÷XÈ£Ÿ;°  áâ`(Ab–Tÿ„oÙ#UyÙ£ÍØbjª ¼·ŽÒ’H:lûcùe_ŽkGÞ¶½ÔTIGžX'’$Š1ºð溹{¢X»Íw›<>âx#ðJ ÄÿÉRñkÙÀÍò.I/‰¨šuí²œú5×|hb«¾G•z® |H$H{ åXÆ¥©¸Ö+t8ˆè¬xª¥}Ó4W* Ö,bïaðd!+ jW,]]Ÿ[·_˜˜‹z7$xG<Þ8PŽLÐ2¬ÑÄó>Ÿ“¤2Û‘t& Ã0*Œã#~Õ:^‡¬k»9ç·üM@ŒÆÖ?d«Êmï6ŸF¹’_ÌHò€Ž-‘â5áÅ™½‘QÞîøòÞEjZN2OaÛäzLz À2–c“ý.Ƀß- ⾺,6cÔ­('|VÌöLÚ%CœÂ»= w«0†D . Œ‹Æ’G&ã·6ò+[óC{õ& Å¿tiCqkÔ`S |cäëærVÓ¸u¹¹U¨~:V=B¨.ûóNëv9¤õ›8ÅW‹ì–ˆ¦Š<ðÝp.âìÈéð÷œ+Ê,ÇW,%ˆ¯^­†­ù.|Ù”·zA¸7"KÛù ¹½>yŽÊ†Š„)gø&Vˆ ‘üL×t$ò DyÀälg"¯ãf@,« ä\Kg©ª š0Òbèxž‡~ôU/±T—¶Í«¸at¼tJr}OBËàýšñrY%‰tË:áÑi)ã’GnˆQp¾´d·Î(ô¤x~¶‡|ws_›»IwHêC7.Ä{SÕÞ€M-?Ëh$2mƹØ@y¼ÞŽëc°ê¸`‹ÍðÚ2sÜÀÀ³Â"—R—˜=»÷ÎHp ›•€BCøá`¯â—?Rpn˜Þô\5¶ ó—Ågbde`%c¡Ÿ!‰¦O¾°ß4òi2þþ˜üLã* bÕÝ|ÔÉQÈ>0íw…ÚÑa9gωAj‹г“>'·ç³Ö“¼È¢ ƒ›xmY¨­ÙŒOo÷÷q׿íþ¾~Û=ߤRfTVfãq߆ãÙ 1`=œà1 f1‘u {A‰W³=#6j*‹7³ÂÖÁŸ§·Ý½iÞzìõöèÞþëSåÍ‚µÝã+k—™ÒÛ°äžbk·\ÊJ PîÑ…géwòq~1ð7hpE¤È«p>V)ì`¹Äq·ßY§¹°7úÖÖ|²w•¦h碬Ûù³Ø\ÈÀ¢ˆØ1:!ÉZ½É¥‹OîÄÞ"“S`¼§zÚfûÍ;Þ›ÉÉü˜@ü®›N‰ÓÌÿœ†JY[l¯6ŠímG*Ö3 €c©ö´Â°¹Ô¼Ãë,ÐFv=—¿¾ûžá¿Ñð:b <ú5~Ç“ÑYTò©Œ×C—L‚\\¨Ç©CT»òÿd–“ >Æ|¸ËTÙäåm˜#ò™‘"¶š>$&0ÉN|Þrø†…\}èñq÷'™ey?Ÿ„*2Ç.žOÆ¿Î` SQ<äÔy] -†n2;$5sþÌÂõòbÃ׎õ_ 0¹Î?y¥IIà/òÞľ:GhJ<¨ç«£›#¤Xpªq#ÅKàSdñÊÓß ˜µ…TôoùhƸ…ËoÞ²€Ïï«ÜSü±AÄ`s‚%¸ãüÝ¿òR80?6Œl•¥Òë«°þÇq>ÃBãNÚ³=_ùAdRÈ_ŠÌ0)kÃ]ÉóÒ¤éJR7öçX /äzƒ´g~A6†¬@í`ŠÒYåÙëQrº%*UV¢“'ÛðËÀó(î¹ù¢°ƒ· <¿óNZíÁŠIò'ϵÄú]{?Kñj œ•Ž2"j ¨´²ãèT¯É]| Bf+Ë5\Rmõ¿T§½¦ó™]Ü´#,“>Žc•ó¯Zã?^ܺô(²ïI—ÀðPVèaŸ=ǵKi+¢†L>a¼-Çš¨ÓìÜ»ù“-²÷O3zp¼ÿŽr9”öÛbTü±ID°PBB o<\<Þ1»£Ç„â:‹}Tä>F)»ôÛoZÚÓwÿ»¨vc\Á…ˆi0Õü™µâf±§h½@É}h{`u¾G´‹åÿ\Òò>ž´ ½šóRâ³bÝ„>H %X<Œcx·H³g“‚AòI_ F¯e>îÎàÈ,­M¡R[²­ˆKï&Gã*¢%"~Ø$ø†K¿Zè™ÅÂjg\ë&§„Bp4ß)4¶p´ˆ@»Èòi7÷ ™Ã,YêcsIX•`½NáEvq¡ƒ#Î9¯l^ÂööR€*]Ëø$SúS" ¥¦óìæl—¬ŠPýA¹(Uw Tü|©¯ÜYÃfJ{{‹|سíÆýCý€ãÉÅü²?àJ<‰ð' E³½¼`ʈ\~t»ë‘Ýkg‘DÖŠ¿jö†iŸ®w0šÓYøò¿|éæ‘æ#|_öŽLRâÖ+–½ÿ |» Õæ `-,³¼fÁl3Œ î¹ï„¹ Ÿ`(Òì:%ðý¡†7çŽñ¤Tdò( ¥Wÿ€B5':øøêG$·ÒJ¦HÎÆöRºõ­ÍݼW€ÚûóO„¼³Ùw ºyÑd ÜZyxßWÙUù×Y];”|óºF,ä¿sÈÛºµ›ŒëHú/çj»'Ú›Ýv©›å¯ÕïŠÌˆQ²Ôß5êû¹®DŠdäÍçõ2lÆÒŸêéÒâ0 ÙdêàSê9H5œÃ;[ùU˺Ì'ÿLö_×Þ¡j´i¯ŽôŒ˜0ó¥N÷\dÛ¤˜`-îyËGÚ¯$ÎBÏðú±ìpôWææŒîŒ ²g,s5`3î7Í/¦m?YXŒ_üLªTÎŒjÞ\{˜X— ³À¡¬=˜Ä&ZC1ü#P¡te‰¥ªN.ïÎ5o4Tß""%fÌšc^`s²§LM·¿ÛjërQ.FwÆÅ}êî Õ)‚»¢Eü6X(˾‡œ,ß(dYqŒGmÝ&ãM)–bÂvÿõ =%ÂT6còè(ÅSÒ¾Ø*óÄ0¶ây½¨Ù•¦o¹ì–šl>+ÙÁŸ=uƒyÇç ±»Õèµ#àö$OðV½§?4àI„lénñ¸$jÑÑ€ÿz²!à`¸Ê–mŠÒ|UâUD\ôd:4ÕâþûpÓRîz…I=s^:]#·¨¿Ìý`LAæÇt"üM2,ûc1­àûs‚¬¶ádm?<§²šcø°&Ë wãâÇ*Î*Ve,‹}ü¸™¼Bs°Ô’\%ÜËR—½G²¼yÄef0©œúÃzƒÝB•zóNùo€ßgÍtƒNˆ$ïL´bx5#¹¥ê,ØY —‚©Ó°íÖçÐòÓ¦¤suñ=Dã0"üá%›VŒgB¯˜‹Â &dÔ/> RDŠFKH“R× ¯OggSÎ1¨äEäEáDóíÿÛèíïÿÿÿÿÚþÿÿ ÿÿÿÿØÿ<ÚØÚÕØÝÔØÒÔã×ÿÌÒæîþÿÿÿ×ÿnïçââÙÿX÷ÓÝÞÝüJCJÓô*èÞ˜f1G]ã¢à#­òdå÷ìN©Q¤»þ'ÙGä¼ÖÙj-‡‡úÛÏÎ!™ßfów<ª˜Áû#Ek b0ÊüñoŽ*8ú rèÒh@Wâg@Môè Í™HGÑâ-ëÊûz|'lhùMDí ö>QŸÚÁÄÈ19–úa#MKÝΛ½êOt •Œè;vŽ”aí×vý™ƒ wÒ`TƒÒ9g¾ã·’.ˆ¾06Bjˆš\½\Ó¹Kìò»‹@Äz F,XÝŽ^diç¿Ú ªˆJbÉ‚PŸ°Ç HÜ{Ñë2Å#±ü.™† «¨ É÷?"×kœÁö±R ˆ–¥¬ýˆoˈ˜¤@÷ßÅx.gs×ãûPâI¾=Ç9¦’‚-ï&‚3"Ý,7W†«júØLÖù2êí[ÝêÄ Œ ™` óõFÍ,,L†/ôçnøÃ3† ÍF¡K“…{63±ü)ø†ÍV„YðòT.}"|!üW´á³TŸû{µ æLT€ÃÌ“x¡® ãBLýËü®-ßÿq"¨jêÑùZ)mo`NN¨%?÷\±܃K96F({ Î8@« ͤ£gVÜ¥C2„A£¨ïxq£KÉËÞöü{ f¾ý¹è½æM€°2Â¥·wKêòfEI4Sðø´{I1±™X—¼tR4Gí 2·w÷×3û’´ˆÛo‰Edáceb4Ã/ÉQ$ΜaÂêÅêîñbw‚µÿ¹¶ªqÃ’D¸'%«& ?1ãgì üòfÚÝ-NÏž,€Ñ;a€¬7aL^‰éUÆ8dd~Ÿžq•Gk);!_×­—éÕî.S‰‹Ÿµ¤·¼×H+˜\øˆ§®¶ätÓ|¹¢ä\ÂoÕÉ´²¶ûF0O~jõ¾blEn9˜¸ñ!­l¤jaØ·ê€C=ž·G#Ès)½ÿÁ¾9Ñ.$XŒ»¥Ý¤¾±nZŸt ¸ÙËœæÈæ"Èua×ÏÇ*^Ëë,í©ìäõbÒ‘°{”(X¯ +öcÓ&P<ÿú2+Ù2ó=‡›®çaEâëœñueJÍã$¾hò6µjOéÔŸ-dÀ6y¹c7L¯êL‰+çZ'@=£È>s€Çk]—¦0í?ŠXxXëù7(ÃåÁúÁÐBΓ?J˜&ÛbCŒÏ:bÀ=wªGYžnþÄ&!âìD8”M˜£fçÈ´LQ¸¦„¶g—{|ÂrhÃ3†¹ºŒ4õNí²üLÕAa+ð9]8tO »©i U 5H0“)wžyó¶äòtß¹ëµDC=6vkuÐìþ&¿ÿO–Bž_…ŽÔŠD)‚¾¿ô´Þ7—„–4ÖûàÏ$˜qBJExÔ?ßBµæ‚£Ê%. ­Ê— aìÕ8ÿH_R- ퟯ¢‡®*RÊo ˜Š*=ƒ_²êïÉRƒÀó›dAPQ‰± ÛÛ ïÕÏëÙ¦NÍš+¼2q‹j˜ÅëÞLÚ½§Ã¬Pñ%áÎvÕE@Èëçr‚ò’ǧîkŸã+&5bj§à-ŸX(`ø‚Ê;¶&MÞ¡ë&·}-€Z'gÍòv9«%V²QÙÍ)V"`⵸úvG÷? A˜bŒ'#,9¢íÓW/¦Þ4'’4^F$üñÄÚ8j£lgxŸM»BûËîeÀ’wܸóE33o cO^‹õ¯AEJ¿^Ö§^7çÄRø¬@v <f_èIƒN”«¾Ç¤3jÍëc ›uù‘N ÚÕňë†>/sÆ:ç6zÕêÀT£_j „Ÿ b ÔOz›y|9CÈâARZb}Eµq^M½5˜›õâ@e·.¤n[ ÿò}·QQ¸Ý@[í="äNÝ$ˆ‘<¸Ga-Jn'3ùDr›6tnÓ(”ùQ/éžê2Å¢ ¦¤¸Á©õKѶ+iÊžLƒ_n.U‚ð±qk'ï9H[L¾½ÄI;Å2¯££@ÛüM+<’Õ­Ñ+–á‰ä"Å:ª@DZx­ØéQ÷aþrÀþÌ€ºG0Ú\ëöí¸{GC[®AâÙÀ‰Ï×Âm[ô®fÅEŨhzÔ$4ßd»·¬’'¾í RãëÌÎË Zy#)"f!;~Ou!¬oB¤ªYVºrÿ‡;¥RZgŒ"†…)—1ëÊ=²üŽ5pô„†be¨Ìô3ØÚ AáRëwñ·—jýaWØY™EÞíW+)®æž¢GR'rvP¶þøè°gjí£¼Àœ8ŒW[m™5³ÔÓÇZ”¨VÃM»c±ë‚ƒÿ{ 2èØêìÒŽKñö4íH,rciú@hE7Yâ:Á¹ò:ü0d½o8Ì£úŠ œs|Ö”4*K^1‹ŽTÃdî%Zñ­Úóa—¿sÇ0ˆ7ÏZ©F”ï,Uú/lfb„+ŸîÁˆ¼˜Ì‰t漨+Ž·B²6UÃ׈EþåU8ƒŠ³*Qçšî\Ðà÷Å«ˆ„,Œ«‡²Š3GDOµ¼ÖAæn‚MíñfÀíüb •r¿*ÄŽ 2›ìrâØ  ÔW¿—°—<ú"ôˆásTuw/¿^QLµ“ßùâ~Þ4ZÎ a‡_cH˜tPpÄÛyà ÜVW2›gRô<›(†Å !8H!ÂabóvQoOê£ûçh2ßwÆ•x뉑¬“جÍÁ}š'W_á:¨y‘'34½^[`¦×âìĉ?¸‰^,]B'p–§Ët˜?÷“w¤‹Ы•–Úç0Ì"sÃ~sa ·Ð¡ -dæ¹ü0\° ²„!6h?ÜŽ)òZ©†Ís6­w¶³tt¤Õü+µ¿,¡µyŽâ3T ÈVJ‘¢¹×¨<>GßõغPÏn‚J‚‡L\¾›¥€õw- *MÌxðgãèù³ö‡^>DO YP–gµÚxŒT$u9:ˆß޲tÊpŠ;dßÛ Ç-J8‘ŸÔ+À,MÓ•¯æo4É´¿'Q3šP(§¯¸0gø•™#¨ÃýñéÏ`v…N 9ƒÊ`"µ/ƒØ`½b}Ý­“ÝÁ(–Ï^ke¦K{`Hž…‹"ùn„W‰–¦7Im‹d$ÜZ&mv5!"\FiwÍNrarüIz +ÑP„âER;RîÕÿ$4´h!!I»ÈJ÷?ÃꤤÇfhw¡¥X§•&IâU )Έjê[s"û"A’̨¼ÆÐ± ”Ž…Á ˆádz,,bBМh+KPtV9ÐæA)½_âÙeu°öÇVà—õÙIï6½ÏnÄÚ`ï´Ø!vs6D÷®åÍSØŽE”ÀÄDò\ÌJô| ÂËš@ŸÆàì綺SÀýý[žžÓŸcÅ|Uu%Â^ê]¦L㢒v‹æØO·Ží˜ñJYqßÎ|¿÷¸ý3E5S~Ùm,Ž_h„ù!hÎCÛ=—ò¹ÇÓgò¡B¨Ó¶~mZaüÆ-ã[hü÷âN˜N”‚¨T¨WðÞU²+ÚV_®· û/k&ÖŸí†Ã¦=`ŽP0™À/M`¢"– ªØþÆÀ·Wå÷R,ê·A¶WÝ@_~<ƧuSc~~“rW†8´:ô¾ÿ  @H©†—ëH C§'ÓþÙÒ_]âe (6‘(îÎ0ë¦+yoRÖˆo?B\ê –­Û¶ÎV Û'<9üªZËû]ÒU<òÐ-ˆó†&h‡»¥]Cë/…Á!¾èTÊG'j8®?(© •ùyÿ)Ú“¾y o@Û_ÿÙµKS‘ é~&ÁÄj;õ8“‡ÛG{íá£üÄpƒðäÓcðÅ:NàsÞQéê_¾b/h%ˆ¾?øÀ¸+Iõ«“‹xüYƒ+Æl'©¯^<>í*.u3œ8÷”í!§}uL÷‡Y(7·ˆ´³¾jÒiáÕQq#=¼wO#±{À€-y&0Åù¹ÎËÎ+ **ïñ[whF1‹:é"4:Ã=¹5wÚ»¢šgaŽØzfnïûì*ÝÆvY¢‘½Š":†]ð³Òa͇F󅩉߰Žœò ø4r^*¬O‹£·"),Jª§ØÄÜnQ4]ïM㬨Ob}a[·³éí\ÏÛG.À}D©5zVÜØ 7!ór£û é20•ç£üÆ. ¶ŸMÄ&ø:Ü<<{¶×4ZR1áäí3|½²‡¿GQ_˹].‘FhQtõ ALñp-²FŽ£Ö)“ï¡¡°z‡="ç[÷ðô½‡ck4ŠeRÙÙT¶µ:fp´ù¹ºåƒ>ÖP>!44\ê®V)¼1°Û0ÍZð\Ỵ́ͼs„qÐïÚc 5Te²\ùrjFÐ傹î ˆhœ÷r`—<퟇Q×ÞŽ#pO-é­N€Ì/&1˜ XaöÂW4p÷hè±êƒ"Ã[`eÊLˆ‚Gb£O½Fï€hßÊôËœ=ÎVâq7)ö\˜ÔÙtóżÓÔò|"¿d ‰$üÄh ëqGý³È3,eá W5ïvc.\8èÏIÈ •l×ø.­*“£qƒ^ðƒ‚«”ÒZüÛ¸³Ñc¤FGýuê›3ëŸVn•æ(¬Ž’`t™¸AÕü3úö"‚/¦?~2;¾¾}G¨Nt³°Ÿ‘ wØtµß3]îäÂy 4£½ª¦›,0.u<\ÝN€Ù µ}¿v#;bM4uuc/ƒõ_{“'ÛÚWÛš #Ü)1HQêZu¤\ž 0î_/©Úƒè¸h©¬›ÂšP6éƒ9Uoê´œ7ÖbÄ‘Í>vOúUý‡–fwi[\È)<©›½#ü|®hÊr K#–øî øîŒzÚ^^‡/ºsf-æ”DÔ„ÅÖë¬P1ÑïÄxÄå«+öøzº F¨Æ,Þ 3>Aêñ!hq¶²¥p^¹Ò¾ˆ¾¨cÝ€8³Ï®­Ä™ì2goŠ!E7“ŒV€°Åk¼fbQ‰~¾¨£Ïõ¨¸ßRpwûu ½ ãŧƇ˜ãƒcàQ㻑ÈRÔTïsÖÙX@áz_9X1ÅšÌ ­Æ¹ä°zÛn‘¹´ƒš9z'@˜tõ ¯7ÛU@3§\Ø~§êÖpSbœK>k™ªk:€Æ7£?–ƒ3ò:3ŠgÎ(oÊ„ûÍ<‚Sæ-`E|—Úú'ÚH‡bTî«æl–‚Lˆâºj£±Þa&nO|Dg±¦iZ~‡:Ѥ¬[ç6ï+~Eòcfb– Eàž3qõ2ã°¶Þg8‡š¼rxt¶$ÇO‹„QüIÉñVÒØbÓBsÙ`ÎBHÃm¾¾Ñ($/„F¾qçLnQ+5à'O°¹cóãrü AÒË!Í®©+·õÒͱÆlsJ‡Ds#^ñáØà?‹–¿Š‘š„û]ûãc×éý÷)—(Œ+kÉîâœ)ýÖv­ æ~n¹rÚÉÚrG„Ÿá×.õ @ƒ)¨l‚òcIÌ%)µË©wС/£"ðu$¤XÏ)¬-0Â7H’Ö[,$ÚŽ]3ª‹;¾iºyüa¯äøGãñ¾Ÿ¥Ô™Ö 9ŒüLÀð÷Œhؾ™¬³ i-Õ+—Y×ûßÈuÑz¯¢Tâ5úLj)Y[“ŒX.ò&""1^ û…HO§ÓBØ5K·UÏ˹ðTËO½Q$<ž5Àçô3Óqh&0Êùppó›GÕŠQ¯yñž¾‡-®ší}íá5ÑÕÿQV»“©¿}Ù$•zv؉z_ ªm½Ú¤^Áœ7^14wºèYY&ýB—÷c;®b~½³Y89ªš×4¿%)•=*8¼4Õ¥…Û;l½®“ü;œüMZ²½Ì!4º­åáLBÏ܈(Hã¦öBùJF]aÔXåÌ(¤i£º÷%ŠíA¹«5m“,^áŸs·+#¦À(‘:pÚ²{Œp¿Ÿt™i%‘g7Ûg‹y{¤]¼pãÈ ÔÒµ’Œobã¬6b4DðJ5ôÔJ<ŒZNZ¸¬/MÉ‹ýa¶9+›Šï2½zó¦{MTAGaÂ"œ»[i|ï°ƒÀ[KÕ7üÏtº¨ãBÎýðsm»üM‘§VLé™ñù<‰—ZR,ö’ ,LÂUÚýpßí‚ü6Gðâ û»~ }gô7½åWZ¦vð2ÊÄV"!JãýHئX‰œ[ùºo>DµÌë­“~ÙI^"‚Í‹öä1?—`ÙÈœbûeg;™ÇêÑüLÃÝÉ{RkŽE–7ñÐ-¨|êûÆ‘ß5t„!>%ßEP˜=È¥…EE³ÜÂfAiåc4UôÍ>ò8°¥dÖòôg}L‡ëdˆñîSA;¯:¥*Ôžx‚d¶Î\Ü!3ïRðj’ÄãC вÔkÓæ”Ï »2¢4d¸fvŒ·ÈÉå‚TéEã>„f5`îã:æGæÕñî 2€,© ¢3OíB1ù º8}ÂÅÉØM¤yHß¿ó΂XXlk2R^x^0ãlÿ¬’Ç#Õ§ü6÷IãŒÔ‰Üز®h¦X ¼ûZiѺ®·­õlûký%/']@Æ/ÿDcRV‹kŠOú[ãqFX­°9¢sƒBkd©P[üˆÐ¤ïö+óöDÅ Ú©­ˆm^H‡XÖ9Á%+Cf<Å)gMqŽ&$ºŽê½ù- ÐKc>Z4d6©ÐˆVÏfF9¯R»Ùúæ‚£ª‚ÁÜ«~LûH„ê}üºb™ÜÜ ù—É­»·ú$êš’5‡Þ4·°õ¸‹öÙÉ…¤­… ¡¬a†üIß÷0;’ÃI²C}U*fI¢†eBž@õ·HDK½û ž/?ö‡ã±ëE‹Ëåpq‚$§ŸË˜zLÃdq3ÙäYTÐ]¼rBt_Pêì`e(Ä®:СÁ 2]ÉhzϯÞsŸ×ÎÛ7ºrÝ/ æKR[çËGM\ñ;Ä®Q…Vl·›.¢âŸˆº«!ìÈgd~ÏÔèí4XßFºK-‘*F4½_G?ïjËÔèç[bš}á€KU¦ž¿æ“¼¬#ïl~_Xdírxðí$'ahü6g"µkqÊ'3Hëç­€ã@ÍKƒx´HÒÏi‡=WªbGxç½ò¸)GÍt ±°ªd]*£w´Ÿl š=ó”°1$Á‚×íû c—¸;ÒbÛ…ˆtÛ។ët +•nãÍ„Û_ór´™0||•‚94_Šòœä2@a´'GYy7Ì%ïgQé7p|˜eŠX—óŒýzÞk:´áà•œ§äÙ«[…ÒX˜y´­„#WƒóÿÕÜ¡Nmõ…0@Ó†ÛÈâVUÐ}Ë Z¡ü/i‘…/">ÈàuU4ÓsöjÁÒAH#Bö«Þ>NñBŒ†±9ô—ŒLEЬÿOý”€óãòNH ÂHÂçüd:‚bÉß«}»ˆ‡}¦Œs+ý•þ˜{Pp[]ŸW“_{°J0‡3’WöEÐfÐ~´íŠèß[05¡Ç˜ãÐPJ–¬FLΕȴ“ñ½éƒÂáD˜OWƳjÜóhüC±flíj×]Hï›S\Ňç"…ô[Væ>ë¾"wþ¢qöSÂ[;O1[ûCí®n§#²Á¹Q‰Ÿ”zü5s%ÖL ¾¾)÷þŠÚ…åE¸=ÌáÊØ÷†’‘TÕtó‚«¶4ĈÙoáâÃzøéÛ‘²?ËÅsÝ…¨Cwà¹ÍY,5Oªüú™"7š˜r‚9Š(ÿPî®ÄWùäÀl\†ªŽ óo»íöƒè;yòº9±â<-uÂ} cè¢|Ìp¶ìBˆàMIÓšo£ÞŠx¾W QÓ)¥HêƒÎ7Ð-½ºú5W¹r!…Ò–ÿ©šÂíú|JÔùE¥k«.-´øÄ *°¬gG‹Äü|“" ndyŠfGt[ttz}‰¢½Ë\ËFa)^(Ârˆ°‡§:ܾ*Çz¶·"1£ß(º 8ä ËÛªAû”®³Ç@PÖ•Ú\°r‡åù „èZéê7ØžqF¾ÅO¸Žúû¹W0óÏrs§ÂôÐÄPá¿m‡x@‹hvW1çÔc‹üp‚Å -íÿøÓ$&ŒÉ·G6>»%Ùv–kâM­ xá¶%Í»i»BûlZ䇣 ý"/aòÎÐö¯Ü`à`:ŒÇR]¿0Í¥¸ üM'j ôL8ºèQ$BÀ]cÓP ß+:ú¦76ï¨=¡Î+áZÒ0ëõµLáÕÆNôÁš>ƒ@Ì #%êeWƒCøì=ÊíÌQmXz.W´K({«mi¢¡Â…í«gÀçYcÚ$21`ré:›¥zl±Îåד0.Hô7òƒ ˆªßKÏ £.ª=Øi 8Õ8§-@•’MRCärë–Ù¶Yë‰|Ììçg•̘ŸJÀS”>Ù¬Aÿbl&»ŸC„=ü/RÏ,1ÖÈq&mªŽC‘ jñ ‹@l…ÈʽXwéRcI·åFlÖyÙ»áÒò,ÛyQcÔ/s·[èQÇšNº?P ùǨ°˜tṳ4ÓÝ‚AƇZÛö÷ºkG~UCÊS]·šZó2‡ÞõÌ„{}Àê¿×\ȶÉ5Ce½„„ Zu‚T’Áާ§ô_4u<Ææ]…&µï,'!i»µ ™“à‰Lt‹éúN(­%˜Ž¶1ÄÊéß§i¤!@èµ9_PÝü6S~úaÆG]Ëqɯ<¯xj ·4Àc${àgÏ ‚þzÔó„ y‡½6›ËÓ§í6D±7RrFL|2ÄËÑ3ŪgMäÁdˆ›B3ÞDÆ~;Z•ë êÔTÏý_û©U` ë§%»o¯N\1jòHŠ/ú@J`êG-ú[Ý®”ÿ3¶°[9¡¹ :nåã÷{²0Ænq̇`Mµt„OÏ},Jžþ¸ü Æj 1[*¹õb¥Þ5"B3è`N.ÆÕ“£-çÚPðÙÓv:lWýèÖ“5 ͧ§4ADˆß\´êŠéìèüÆuJ×ùË_Í ÑPó€ýÏm‹Ç»8Í";.Ó’j—¼Öm¼ .Ø5žŽÕaoª&®EعK'^âÐSËŽ ¢]Å™¼²¤7òŽ @Äž*ZL±R\¬WÝ­~ãÚh&qîMl6æ·Díd}Ñæ—l§ò¶°CרwvqÑQÀŸ-òáßãwR)4ç‚ù™iž¿ÿf0B>ñA²òBàïò\+œ™,’§ã7B¦yYž7¶ž¡¡G 8bÔȆ5áoWrŽPjH=÷*Éœ:Ž%•$ø†7é^Ó3Ë€n®é7ü?cdWžÕH¸…ØÉ"üÃðpah»w U± CÀBx÷Ô‹uRéTÙ®Âæœ/HiPk{r_yõ–õ B`¤µï +¢)1})‘zøc¬ÛkèóéQá?˜ RÂÞ{–YñV·ª¡2ƒF˜N˜Å ‚.#éŒ[;ançå*bpã¬ÛMA© ˜©^ÐÊBmR“%ÂåÉ`)÷/μ•¢‘K“]»±ùꑼ³¾… Óo¶n=¼ÐVûò$\Õ ‹'ÿÆ}&…ƒ£è¯|lÔ¨;”Å3¯_«Z3î´²ðz#R0†Ä¨KëÖ¯"@º*¤Ìš†âê« Q°„z7ýôËè¾’g¹šÒtUÑš´fîågøFñ$üL°IÅ#d9šS5W\ŠÂï$Ë ž¼¯Q‰(6‰HÕn]ÅCdós@,»Ò…]:Á03š²4þ+Í? Nñ¢ÿ:xJ…úŒo× Í˯ãí3úA+±è=FCÿ)Æ'ÈBlVúÔ\9i$ áÿÿG¬`éœÖ_>An:dÿyßÅÃ;îOØŠÿ£%†ù‡ì‰6ÉæÚL‡ÂÁ¿Eˆ2q«Y ËÖ ½†{<ôÈ›¾hÙ[¾…ë¡1–Ù¥“(º&¬úRDd,/ØJb›<‚§'’?Œ¹³A•G{]/i8Æ Òyœ;P<ƒí‡\z Òoc¾µšÈl e7á²Àóº7'¸laaùLü|¨¢ó#C:™‘… $©Pî d§ÿŸÌüß/¹fï†IHò†8)ÎÉercåë,Ôü…z4>‚¸)r9êšm»s2«û"‘Œé# {nyiˆGž àÞë¾WgôLÉUÉ=¾ 5e(—Gç9îé¼[tú :œ Á¯Ð×+`›»G3¾/‰·˜‚x¤´F*=˜ú¹ 9$n·R¯VAF˜ª4=¢Üžu\…\º¨™ü¸8—”ÞQ8bjè…ÔbvÒ¢0oýèD/±@ï&ƒ‰Jx| Ã–.8`¶ú¯D3œ! e~ú ÑÍ¡1Ù¶1W÷‘qñ]ÀEÎŒ$“Ÿ•ô eƒiþï =vS7ð”ˆsb´žÆÐ°[VúµÒüO—2Nßy‹^äå"+aBõÌemš0ø/ VŠiarPµÄtUàÑ™8>–sKri–ܲ75MWë+IæÑ³w(YEHW”)® ˆ%ÿ9%]–"Ôbfzò{°ERìœ×ûÙQ¬Ëq4f'm{íÖÙ1½¼0+ûr$–ŠvN ú²;)£Ê>Õ±à ušüKÅÕ¿ÀiúÌ¿âÈÀ …£Ø|n¸O#o~«ÝŽÓ±„°ü|·v€„c"u°Ç,ƒ& õ¸OL÷7÷z[¸ 2Å[‰ùݳr)—aŽÙ\ç×ÎiºÊHù"–ÂG\â¢lœò& {$ÒãÜÞÔ^›‰&?ÿâišÓžàªªŠkž©t.UIµ]BØKâ¦1õ‘$}ap§ía(öK«FqíI Ÿ X2s¼„ VYöô4žbãø Ô3y&¼8=€…¥‚†Ó_RHÙšt½ªüŒ‡rcù6çÛ˜vVÈ*eÄÕ˾õ¶º¸qèº G$Úá,Ê['Ú\lÎÈõ—-4KsZ°;A6ŽÊ‘HZ-ß7sª °`{N¸{ƒ©ò¶ç÷ZÈSqtW S:ʼnÅgÎïhþ…¥ÁõV9¥w/T\¯‡»ÏŽ*ê¾ØŠ¾j‘Ùf³S’2<èƒ<Ìï ú2ö£õ»L åW"Ù™ÞÁ6À4™-'v1yËÙ'&Ûb>†ò–™!üLܳ'%QÛ옟Tùr€Ô•öÁFépC²; xmOXZ¥ê»¡éAuAUËîõ‰¶‹j^ƒpÊÁÕòŽÈeài>èžÉô‰½ÌôŒÌø´qªÝ2µ¬žú‡È‡œé·WÙYŸéñ'/z£"üFJ>ÿMÞiÒµõ6¿ƒŸ±_¤t/4oïM涸„§Š˜¯µé *9ià‹å‡u)ðkX–o?Ë K9ïäÝ’U0B¨:ü…¦ "©±ä_E¾žw†Ñ8ÛH*°xæ†nôâ@GŽÓ,6L^ÈÎa¶‰Kþ$ÍoDP)üL±DŽ=ì"bÇï¨sÞ,é…÷%Ø4¨¼îÑjQYøHM™Ðʵ(!K¦‚Úø§¼o#OÆO¿~î¸p]ù”RßÈMž [dæÍ諟¤ôüb¬öû#[×ô½?»ä¦•ùÏ,L:ð ¬z|§Mlåî&¿ÿ•DW $ZÉ\õ›F¾”Šõ5ºÉP‰GÕÕZÅ{xá:÷„ 2JŸEí`r¥†ù§È˜1.Ö/=kFÅÎ’¾(Yþ™IÔÈÀþBgrœ­J?5A_˵p“ `ª¨¢ÃW5¶Ÿ2@^/᜽WüM|™ºÇ-¯NînÚ¥¾ÀA¿‚#Ÿ«aÆ’ÄÉ^ºŸY଀£xñ‹íyä3ŒZÕF2æ$«*_kîªèpöveŠ#h2»Z›°G7ämd{Tm­[8Øù HÃ3×Ce-m9?Š3ce’oÏâ·ܘ34"žçBtÛªh.vs -bÏ|rÌÛîJÝR?€8ÍÊÕ°Ïv"繌yA¨­'à 6ß>½Á]È¡ õ l<à(´,#öφt-òô±â7=òñHÓÙÝi7â.ŒÂ¯>ÊZ(é,#9eÇ·¨ªóUUŸž}¡ýúƒ€aEMRÐ¥e—0×ßû®ë!êæLå£1{ÈwÛªþýUc߿ŵžkdGlÍ"«û$ü{9ÛèÈpDʸn–[Âö4¾Rð‘°QÕ.¢ÅÈϯH”¸Ö`Cýž[¦R«6(ç FÀ™H,>°g/\€Ó& IAÊsžázŠûkÀL€¯Sšm=C=öz§ï€£NÝ„mÁŽ;õE$"î×·+b@ر˜fÈÎÛ‘'ejöiiʯVÒþlt¶E{£D \Úî@»¨ëɾ ÑUÂ÷¡2褲˜0à-¨=å;"ÐÆ Å„J;cÚÙƒ!Û­…Ïתš¡qõç¸E¾wsÕÖD´¬ÊN¹U)!5ïúË ÐuÅ_ÂèÚÆz¸œIP m¼a )èç(åHŽ/:Wº-@ô§¡EŒúwJ2˜á^e\Q>-Q>ª´B"¿¨a€÷={×!Y\Á‡åqÒúiK¶…€XAa‘XƒÛÅ[i?n;>úG…Fs‡OüM&)\îÍY3ê¾]É-÷¿‚Ø%ʑ΋²b³ðIÖ§ãzl¯ EŠ"'eæ-œ²êBe5ä4n¢È–NFìV«¥ÐW^œ¶&°—“j{DòðrAŸ ª:Nà ±+ürÇü±jp¤ÂÐêñd¶ÍìK-©­™ñ m¾—ôpP˜íKcл“fn*²8ÐxªUVqz.Ú18ÓPæð ¬fñ÷ÿƒ¯N–zñ •')ç¸Ä°"—ÍmŽ¡Ð «Õ’žÚ&Ú/pµƒ¨£|§íF¢mà _bJÎSˆµ’eǨ¶rgÜú‘û5;„”°Ú‡'üLÕ«C2£©`÷Hc”TjTç¸nqšñiøÖÙ÷b6ÍwÄ¥®9‹cªES–¶]äÆo³‡à\9ÚË3û±¸bc—WV„A0öî…c°°B=¥Yu6¹çŒO½¶Nûü§ö±±†˜*cƒøY' è.uZlmŠó{çǬ¶4™IŸ\šy8À˜èÏ¢˜Ú"º«G¼I¤2æ‹XS‰µ0!:±Ì9d i¬ì~åûk]Y è0¦i|bžèÜ¥]à ý"ëfœ–!GÜÀ;"p+i´ÜüL¯Q¤·rü¡ß5KLSæ˜+ù,REñùp—²-#ü…è@BÖOggS€‰2¨äF> üH9Ø×ÜàÞéñøÿÑßïùñúóÿÚêçðþúïÿÎÿYÕÔÚ×ÖÖÕÕÜÚßÜÿÏÿÜÝÚÚãÿÊæßøûü÷üȓCõ•'Â;×iñKÁ¹ûR}¤ƒ–i’Ì3ÂÀ8‚:* ñˆ$ ‰î6…ºû0sÉ‚.›r‘Þ«Æáßܨ)c„¸ùJcQ)àæã1ŠÊ–)c­¹{õÖÅ;‘<ý)l@Ýy”MQRÔ#¡‡!áÏJTCÒ,p½WÑj„ÿÁÂâ£Î\y88x.Ó0' ºH‰eÏn¾¢ÿøö¯¼‘–µ€Œ_ÆÏª´ðšÑÁ«­ ݵ#>Š,ÇÄR¦ã ¿î¿fö ºvG®^Tý\BßüL×R8[}õ“áÚ6º²e펲‘;öͳï²|)&Xîüòº—â: ˘*PAʧDÓªü"ܶNC‡²cäûvZxãÍî8]Ø?$!ýF «š–úªú&ÖÅùX_íàêfíP48@ë æ1fWëføU-ê±Íˆ’Ü#ƒ•G åà£_PtII0Û…Öé™/žÑkÖÃj„ÌDïÛ]*ûzåÌ (Š£I,tÎw°gÄdvLHÄðð›o(~XNR‚ DÚëiL¯¹Ë±¼Cá B‡üMSô{‚sÍx©Â·I nÎBo’ÿíǧ?qò´y“&5úãn­Œ»xíôh×ÁiQ™Í…rã?OøoCä*¯ªà557÷åŽù„ü¯(zx$αù°†¡¹ªÆàÒ¦,ÇE,úš‘ }”¤óÉÈ/.bæ´ºìWYÎ öûâb†N¡æØÙ2kôƒAÛ0Ð 6–öJ÷, çV Ô¨±1¹„·ôpØk;¾øZê~„öãæ*Œ×m´?  Ä­’c•|üüI|#ÉLX³äêK»ž:ì¦SŸeÁgî±fÿ‹î€ Õ ~\Ê33QëšÁˆ¼Éè šò†ÖOÓ¼öÞ~(—Û ]”-]Û¿2±.ûˆOYdµùšr\ãÝ<è~ü'xÔÔˆ¬i;†á\/[õõZê/@8w!§®¾µU9õd>I ål¼vB7HGô®¯±ÔéÕ,‰içôš@Ëõ7ùÞ¯µ NayØÌ®·FE²W÷y[cvdsMùŸŸTøâ‚äC¼Ìþ嘬d÷WeÇiý/ÅN 4:ü1„ÍÔÎÆi]Ê6–®…èŸóزïS¸jæùŸ¡ô ÊM…9Ot7Ø'‹ùÖƒô[%=§>ýóÓj_egl„ê0×!cÃyíŽXúŠûSTzÔ#àVoˆ¬ïÏݺã—ÄŽ£…<²x{«J™õ0±¸äвSL± qIwýiC!jK=h5Üû O#;˜”Šw)áê«äsõ5€sÍúۥÈd^qºÜ!Î r_/Iù¿~{{½Kz†XJ¨¡ ¾ÿ%ôxþ¸Æé j›׌Ô'YœvmͲ<ã„W8Œ0?üÛ¸¢3‹Ó™É›„ºÑbÀ^ÊQg#ïBH„÷W¼˜D4€€Ž«D±Ÿî4OZîeí´À¸r‹1£~_–\Çz¯LÄ{H0mâïÐÓò„Ì} {¾Hó<ët£‚¨Í$fË%éÿ‹T…®ÿ€í©ˆF?Š<ÅAÐc½C\M¸úig]- c¿á¨æx2cƒÜ‡»ýz}-Z»á`‹ñ¯á Fbž›&„nhð¥I’þëÑ[PÀ0Ytƒ´åí¿ÝE†‰Z¹;ÖŠ6=W²}¶îä û½EÕ ƒ½Q‚¡ÎMÎ|)RoüL؈>L4ÐÕÔDÀ1ö¦.ÌÊè F ªQ¹º qÁe•0¹ªC®“%‡ÙAÈ—÷Í÷¸qcþF'ñ„«ÒŠ?~Æ*™¿ýIbðåE¶$iz¨Ö¾z‡þ)øa8})‡H®Cøn, ö ¬l”ç³`a¸Ön ÒŠ¦Ç"b ª–; º7n›k™˜Ã#И¥»_sAŽp×#eûTS[xE°ˆ}ŒÔð|ÓÉa50"aæî—ì Ñ2'«ràþêÝ ŒÑU@àù‡R¢5kÅà6°Nd¼gÓçƒR…¨BLBÀ¤NŽeô“èž¾Óüî‚ùR¤¼ûÇÏÕM¾’Þ}þàçIrÎ¥(…jé“úï¤1N2täÃÒdp•·Ç™K®•¢¡S?[ ê!@êªÒ‡ì2zøþ›R4ņ¿íG0j‹d—ËÜ¡ ¡†înýú)VÁºáû‡¥Ÿ´È|mŒÐúYÌØÔ¦ÅÅdvÕ==Z^õÅÔØû †öÈQex-'ï_ÞÿW)×}f1Í¢’ÏÏ2É…ÒÒäÑ“¼@D0ŠýÑ›>·Zc¾¬×­%E×ødÓõbF«|2pâ6±ÀÉûw©4ß"mž~×"x€MÔ‹´0¾ŸÚÔâü|·gã:YdhlðH~#–Ãpº½@HØôW4GÙâžé,Ö_ùgÊ׉NØ>ò)4ë<]á&\ ðäkûÃË©€Ðˆ›Žå)CXoË®€–ËëÖ´63ÙcØ6ÛÕá½ó‹£|@#d·q§k^mýÐÊ÷E6z(Ï ö%Símf×l*¤þ#’Š2{‹SÂý–®›c1ÛÚB‡r8Æ^>Õ¾…áõñ%©_1@\‚o)Ç8$¸_b´óÖ|%|&\ofà4¡€›DkÌ;Ë4é»vï¹ÿÜ3Œx¨'ˆzRð¯:bÒ„äö«½†N5Ašlp%¬ÜéËóÙCŮՅCà `ÈuµÒU‘Ž]„xôæ“%2®NƒÓ8¡›Ú'É:Ä9²–¦Í99@7âF³Ãמ‘dø6½´îÏ‚ ¼ÇË¡^jn©CßÞ3?.­Õk’ŠT#(½'ÖV@6Vu¨U$Ñ…l $T‚4€ÅxË¡3ƒæUú3×¢Æü@§=}Ú¼÷ñ˜wÛ:;Ô)‹€ÙÁ³!H²Åq ÞÒ\“+½I=Õ€(æ,aÀñßå‰íJyÕ Ñ‚¥ùÕ^k !4£IÔü~=$›JÙ…><²o÷‚á›…vÀ˜`"´Î“q<÷<7IbV‘.«ð» tîæ‹%ãé®HxòÂ#` V«›¾ëÉb°ã¹oæ%~I wüÙ*"eš,uìµ>Èãc§ZÙ”¿Äûˆ¡j¬ cªfª"ºÔ•Kî7dÄ®‡é®›}PÈÇdæÙŠ$´˜ÎÆþïmKâVî/š–òVðffHö^n…”ór@ݲQã~kf¤$îB  ± –ã%Ÿ.cœÎv•Ù>jéüÀt]ØI¸Û™Ó, ±š¶çÁ(.ÂmÖØžAÎd ` ‘‚^HQXC5 ºŸ?WžÞÒóN6en¼q±J”Çh‚J™* £.‹qxCàjüWyµ!ž³ÞwÇXæûþö4áêëÜ€4ALi¬9­2k8N×¢süÙ4-=7š>w’zµÙœn¨!'>{„Np½rà5¤êX^'áCëáÏ–¦kSWŠ—ŠPbñ,{á¦'hLMYK¥§ó·&â|¿úU«BÜGå4PK~Òk—cǹÖy¶‚!d¹€šÅ¡ÔÌ€ÄÖàý{1ðI™Íʽ‰"l øQfNÇ*/þ¤‡K:}J¡Ó ö0¬õæ‘%v¾_©CßcêmüÙÂD† ^3“/pVz‰ ¥\–óšŒkÈJ™Lñ¨­UÔÏ óÊðJ%‡ù‘a%<,O6øðˆÍPßO@3éEg­0@Ž;iP qŠ+çc?žBü=×¢w„6ÄH¥?×ÂÎ[×´¤¯Á0Èæè¬OÊý$ÛÚÊç“ ¬g¦’SíÌ£Kãþ?l¨sB8!ðûœq_§ 4W÷ˆlŠ[Êÿ.@ì î¼ )WûÇÔ/AŽá SÙ´·¡Ík1ŒDk¶œqÞ,½£W,’*#­Ù¦Y@¤$4ÍK›ó‰ÃÜ%µ3ylkfcÎêßQj+oüÙ½{wœ˜¢2³}(Dæw4ªDo¥´Œ0¾ÒëïW K3 6È–ûïK—¢þ„ˆ÷`ÚyÞòc+ØTÐ'7há ‘”¼>& ¦Ï<6Z–ž²©Õ¼µnÔpûd–‹âdløÆ›bSÓǶ©f™¢91à”Uáún•u%™Nelù²Ù ;Kö‰åíÝÊõjNz®1*‚>•¨59ëŽb¹J½¨ŠŸ³¯­´Q&ÒÑdžS‘ÊeûÜmWIKŒ²YT—óUê¡É©F¬èºÒhOÅ`À,Ч´¼íŒ<Ø­BY—jÎp­ä 3cüÙÕ]IJJæO1¦ÇÊqù'q#µ§Èë©îM% M£­™“eI©>yS¸]šb£žqƒˆŽŸ·ð·0N޶<¸ …+qYyóïØ¢lW?¾ --}ƒñ½ÿr´|UäŽåYÍVÚ@ʸG°tßÊ 9”Zî}Ùœ5*¨‡Ê@5¥4A‚NĈœºŽ8mMú5Ñäu3˜'³Šÿ~³wVØæ3qîŒ×!V­Ò¤æÚ¨ó«1Ñ ÀoZéjK™ñК5†ÞØÐî+•%ÐzƦÕ!\øÀð=0•OýÛsó·‘ §oÊ[>cnüß·gN€3òÿ+Z‰ËqÅ š@WÌÙ ZbPµæòÉoF‚–§x¬‹G+M[Rf¾…Q±ÏÈz8 åc\«æP»øaæÑ•PØÍ_–±Œ¡i•ÔZÚiª=HÔnðdÂzæ{\oy×Nªë4Gó211%(à=^5?2ý…Ìo¹ánöÄæ7wäÌ^k=æøÛXUñ%ù{Ù´úÜÄæ˜ÙpwZ’_ñd/%Ä}Ç]Ck6i/1à"ÏÁW5~yþ d:ô1Áx©OVJ÷^¯WüœføÖT0dXt¯š} “~¨›À¸ùÂy{FÇ7Á*Wòó6‚ ÙÙ'(²Xè×ì%?-÷Q€š§ð¤8-†g)ÉŽ÷&D`Aö”çÀ†bùQLq¹#^éuŒßÆÇØÃ2[ÙxÏt‘IËÅëtœü þõ°·ø4¸ñSîMï¤>å^÷­t·–ºƒìõÁ éãÖÀúQ1É]Ñå:ÁÓmÝEh¢3[Ù„ŽjC‡óE ~ óÚ¨T§s+:`!§äh·Žì&[gS&œ[%ä÷îw½Ž9¯ZÝ&™ªöL{à `Jça¹€µÌD4g¼È$*Êoü5?923Ï2™z5‚_6íØ+玘Mö&)5"ÄCÞš£à§[`;«?-Ì€Ó†ëµëôlÅ1sª^Eÿ2Xºúâã|< Kü;Ú5<%µcÏ:Üyd}¸e©¸`æ|¿`Û––¥ÚzEsÿšdþ¬9ÿ#ú"dÿÂéä²÷ˆ§y ƒ{XÕ|]È„k#KZÁ’ªÒBp³0SeÅÊ…³åFÎ3Ú&vÈî}´&§o¿Œƒ]s(ēȗ¾" îôõ¸læ­ºã´ûýg?Cð¤òHƒ—ÄvÇòÒãL«kx ÇûÕçÙÌü6Ox˜"]=çÛa_ªÚ1z £Ê2¢H®¢Ôr3Rp±€,Ù‡ü®Û}€ÞQ‹jA—šÞ9œ}$e¼hTÕ†½s*í“Dneqú¿­ß0ÒAÎB,…ª\Ž9­ÈS™ŽÎc¦VÁÐûØÝ^h.Š2-ÕΡÝí˜í3~J®;@¼ %Ó[òØuoƯÆù0íñÔ{L÷T›X dÍÖÖÔô CêޯטüPÓ<…Ç·?vO±¡â=–.†k~*Fù¿?à4Oð´"¥­Ìó§4‚UðÈ›²Ã8z®(вáÊQ­ °Žö¸Ì@'ü6h¾šh„tÔJè«„aÜÅ=yÏgg¸& tÑf‹›:eQßdé|—ÑCS²+Pg–Pïæ‚¼äòÆhP—p°AyüøM“ûà=±#ó8®½gά i't¥ÔíIN(OgR§îÖ¼NŽ×#¿§¦p‡u8ê'ƒNø&9 ô›¹(¸$ã÷óÕ¸›—FÐ ŸÂíÚ>€\%Á¾&ÅÄ>‘ÅÿãØö©$_>54œ\AVæ-|ÄØ!oßh˜öб›°øŠ¹fÅDuü5)l_´o^Ã@'wäÝRŸ‚)8d»CtªÜ†DÁôDÿJ¶j’f%+€ùhxr£æ«cQÆ"öÁ_á¿#L—fzgÜ}¹I£@äV]ñˆÆ?÷Näštåõh·½®Šam¯º:ëvN‡à˜&|Ž%«‘Eâ…ÞFq3%ÞÝWG2[Îzq§±.„²jHÇu†d–=7Æ9´wÊÚ ´>DÕ{èÜØÝÚhsp‰V‡Êá™Å‡=÷ <N'²œ…"Þ*ˆÝcÙ†œ,¾L?²°$‹³»j²y…fQïS á´¾õìBüÒߣ€œ½:_rµ½RUÍü6hÔØíŶàv¡¿Âñ¤õöˆ„°Ü¤˜©¬‚üйú®ñ}ÒäCÉI Gh#„`Ú¾ËÁë=«ø1pÆýúq¸IÜ•Knx ã @Õ*“ïUVú˺èø »åvòî0Å„ žoÒw18˜‰Œ)•;ùɡߤê6–4Õà'¼BMR¢esÒÒ˜ÂçÒ7q¯¼ù|š`UðÿÙyÜ­š^uÁž]m›?ì¶eo–bÀœ“|­e¿U¿6®›žü­Içå:c¹qXúv`¸SË‘‰ï-‹v²t©Ûò¬ŽÁJ(ûb¼Z€_üLÚx ÍTi&‹Ô¡º £ûMECØëƒø÷ºLÀçY+N6zQ³‡ÿÂv*-läî–+9÷ã]Cá‹&¦û¥¨ð¯@$]å‚«©ê °}Ož¾¶ ´ÖY•C÷ùbÅÑ’¬£æÙ)R°7l½¥ÒdˆóK»ëä#ûƒ9kW\’h¦ò’ïz OŸ-†xº=\ÊÈeFßÃ,nÊꪙ•Ug€yzmÝô½TC7øTKdn¿\²©dÍú+SЛœÍëâuÁרµ-ÏœÑû£Õú¸¾˜tO²è“üÞôðÎçÞÓ²eÞÀð‡ÈXXåÇCÑ?º4¾µ»ô`üÿP(P‰ÔtÔêŸ×äl]Q#šr¥$Å9°óü|¸ u]¡·)&o‰ÞÅt}Í8º%þLÍÆQ+¬d6©¶°&5>O žééZ/1¥)ééñW·X$x šG¹ KÝÏ|├”D*æµ%.{L²UðÑZ±<•bk)vtw}`®w®gˆÌº¶41ÏYE `ª‰¬ªLø| açëC¿âZ@©+“E;ÕÝÄØèñ$LÈÛjnØ;OI@{^oMK„ñ,G\Øö:_h™„ J|Ñ=vvÂc,d(ÈÀ»FîëŒ Glf=³²>R¦¨M<Þ`L1啊­ñì+ðeâdºzÆŽòå•˧®d4HÓ©ÚoåÅ`÷ˆuÃ¥Ä*ž[—§¡¦Æ³z¨ g-»f†«–¼Þ ï?‰²·=ôúÆÖ!‹Î†±ÔîÆ)çy o‚I°¡Æapü L&[dZÁs•®Óü.Ê«ÅuÀ£oG‘ Aü’J)|ï±âSzG<£aåÌW\³}¿˜¢¼àúÉ,=ˆøæ™Qðɽ_0¯l%‡œl;icâaËÆ#[ é¹WúøµIG¶|, óHÛžå¿”W¥°“‰CT"„ì^„I,M=ÝXfíáã¥éÏ’_Ú6Wºr³BžQeèv%‘*È蔚SÊzYÿ%&ßô¤YNÜà LPPpœ`t6t™­íw)ñ °6üˆ±¥kôšü®¿ÃáÏÑ(þίüMZ–Ë|™¦-k„¨ˆf‡aؼ¹…FŽzh"†¨«£À¾wiDÖRQRx#ûK ·á¼Š^ е–¸.U‚½¹ùha'üÊֳޱV+C7žÞ¬"é—zþº$ÇûäX!QoÈVÈ3¾<3“©6¦œ8†Dhšp͘éHN—ù‹wã?TæÍ·ú–:€j‹@ ULPK§ÀXTâÂÄ€ô‡ÄVH±¦ŸºÕ•Y¥y°ì‚Eú¿r%EQ r˜ÿÏ×oµñO¸=ó7üL°²“懿¼¹7Ðdc#%H˜’| 1jÀÃ%Q÷l›^DâK¹Œ4m›,Ò*Jmö)¯"‹h*D'ÿ‚5l{J” -$Ƨu½­gVÜBrlÀãµG^=êtp|EÝÑ…P„ ~ˆÍg¶жå¨/¬”#&xnÞ|±×‚`òÁµF-4FAú'qs%ïº –° T Lgñþ2]7«¹‡$äÉeñnb®¨ËéïYâˆ;¯®êx`Œ‡ZâŒòpλØÖðx ‹›ßó®^¼KüK#yM’ª¥±÷×à Âø6åf••iF¸ð—ymÅ›í•<´élذÎÅÜ$SíDc°æ$4F ñKà÷ÑøR&ƒ0•Á¿ïÇk/ÄVl¥]Ó0ø–·ÿL°çˆaÝr¬¾Èo‰š7 Ðñ†]ƺGƒ=ŠñˆˆÛGO…yKrIqÞ>)˜ :¼tgظwå"ªyJÛYZ¼—u!„À›š5óz„j^Í€Pü·=FÑþH%+!TòÙü‡˜†Ð—yîáWmoÓ98: “LüMbÅéðÁS¼Îóœô¶†F­ÓŒ'4•˜\æ«Îà\2Ô*³;èeÓ˜8ºkÑÊàרÿáÄü×iJ±ÜBU›“‡ù1´º×ÇO­1p€ŠÛßqzÞÜ-쀦«$‹AGög´x§õùü‘¾„C`f‹4„pX7e>S³jƒVj²ç寭*›Lr „åj~£NRxè•Å.~*—Sei˜(ºª/ž˜ËJ6YÇÓiQ»å+eÈ¡úz…€ÛÏŠ¿ŽS[8 8ã[b‘ßÜ'{ª*ü5ò%ZEŸûIÜ™Yoç–LàMN©û`<Eÿ «SI²Šý¡aø­R¿Vq€$rä’/—´}9»Isïc¡oîҌМGl€ ¤©v]ä}µ€àl0r×;c!˜/ÜÈ3Á´ŠøMº¿­†½¯NŸ´I ƒ ?8ùÍ<üÍ^qbÂÁ©W€n€GÏDÒ$8ùû-6ø|P\a˜N ‡½ØZý_Ú «Û¤ßØHÎxF\‚ê2 s™_›d&¸çÿ¬-Å0 ‰ ÍŠ+ÿèjv>³é SXo)^§ ìSüNU"ä·ôF² 6ê‘ Í¶* z´™ùøÍ)s`Ðër 膔òØ>Õjˆx§Mð~¾ UFˆ(òõ¥ ’@‹‰»àG感/£+.ó{ýÚ°‹‰Ã‘i¶[»5ß5zçÌóÅëîÆ Î™”< þú×tasÎ`¹%ßB®«¼»?_´¥Äv©ÂÔP¯UCÍ´äb£X&ZleMSÌQ¹åF3ûOE—[µâbÃù¬“&L_®ÄØŒF¾‹Wc>½ós5Þ©'Þú@âôÛ˜{¿’{$éÊŸ#=¹¯€ü À°s¾– Ή0]÷£­Óä)ýÅËÙ îe”ªIV–¼qÀ~öq,¬œ©Ù½»,ç3=û‹©ùCDï½P€Å.Ǫ›|@·lbˆkv5?™¿›<g×4«¹ý ÐJÝÈ.*x Þ7ìbÊt!£õ—OS ¤VB¥–Tÿ…ÚiÅŠ!üL°Úÿ†œàéο謎;i$ÎÕZh¤Ø  èE$^“¦_,Þr%‹o‘“Øöý§|‘?k'M$²Ì›V@Co‰ßEÈÿè¦$»AÇPzçº#uy¤Æ)’Î1|ì}á,§…l;!Já)ú"ürWòŸ£Õ¸-樰œÁò¶%•ëEj›ß¦+,ÏÒdTìV¡º±œÁÿ±ÚÈ8Ìa”±gW{Ôõ‡Šl´®²Ë†'£ž¤WJ`CÖ`.l†¿½@!T#Áb= ‹Ô0SüJ=—ß®Ð2ûZ¿ì$Œ‚üÙÄ”]È´(ø¿¬dÃBnužT¦Ë§«êXì·nt™ž~?¥Ç y~ò§ëpš’¡˜¢¸”×·!Ûçæý W­5Q> 3¨úùgψ·«e$‚8 RüqïÔ”Ä-èîÔfR-í‚Î/1iŠ!DòQª~ö(9ßí1 ò£M…*z=ÚÃM/‰3Ю’”£R©‰Fu©°OgìÇfÛg‹éÁñ’Aö+g¶¶îHd Š³£œ¡½2¡½p¬Æžxûj×öÂ-û¶~UýeYKÌOvcÐвºe³ºV„]N×aËß!lI† ‹Ò2Ÿø½,î4IE¢º˜2VÓ(xnøB"¦‹X«KHè¢&ïÁš @ø»Vïì‰uÐÖˆuQ•cJWÐc²áÛ‡yäUT|]ØND¸Ð€†í¡0ÍÖtñ~—øY7Vj¹e72ÜJ<ˆÖ•…Sý_ã˜qo="§22îB·aƒ#ÿ1¹Ož`ü9¼—¥»öü½&ÎÚù(1úü•«˜ZßPúWø¿‹i·½,œû)u ú4UêèY}ð ä.+€Wä°É"Ûª}‹ÌIµ†|i > ‰wŸÀBK¬‚§q• š|bñ¨²‹AÀRiÒòº»V)r/ˆí(sÚüsg‘*ÀI05²ùïËœŒ²×®Ø;›/loüM)( çvÖ‚šé"Öró çzFÍjÓlͶÑ?Öú#t*“koþ‘çuŒÃ÷hæóìä¬0×ò`‹ãte¸~•²‚0DyŒ>_5Oû‘·aoa(]ûÌtá&²–øÜ@{ìÁ{S0&áéoiXÀ:¢°6•=2fÆz°‰“ÞbÃH)ÆEÒ{&[㜙1#‚ÿ6¿¤ê\´†{–™Õ(ú£m{ÑIªÖû¤«mðÈ6R×P®(²ìþP^ŒK±Æ¿`ùn‹*q2¨= ïÅ!ë!K¥1/ìÅ 3Nß(T²T`¡‹&ó Ó´Up¥’ÃmHxYÒGEÍ!±V3A‘çü„‡ü·¬6Ám° «SE¡RX}õбð½iïepÕ]nsÐA|ÏUc b»ª[t»4ö$ã.ÌÏÖLË}4¯N¡o’ãS‹”ç„âáµ§Þ^:a©ËP—hîÒ¼Þ ­³úRDxy“”ÀAð2·Õ¨¯'°×ÿ÷äMuµCB½6ëƒ;mßèªÑðÁðGÐÒHˆô¨hÿ¼p+Þ—Øóß?ƒÁ-#ਫBz)“^üÎbÇëb¾['Ëü[®Áú'Ø.ÎÇ„ˆÙcÙÿ[’ì£%S±üN‚y¿æC¯¯ 3?)—Ùâé°ŒiaÅïôÒ‡#Îõ®_˜Ìéb’@È›ú~mñh§}ÿ§„KÙ˜?èb+w‰À¢ O«6@eŠ“¥¡wNQ÷§ˆØIµB¸©Ïm­ŠDyyB£uqžiXyUC!¿¯`†$@Û­cºõ˳ñ&µáä ýº…ÛwÁíŽ4š2_ng{éžçòOÚÆik窑eH,€"¸ïct{]Bü:Ú,d¯—$àšŽ;8^•3ˆÛoœýÅ3Ö”ˆ9„>ä%ƒù¾”—ì úŸw"+Îüï ŽÎi’Xõ5\Ø4 g®ïk[äßï[²sZ‹û—YÍ–„Ø*eg®¬×–¬EAÚæ÷m¦ÅB9[Ó£Âáp(åIࢊ촃&‚>…„E»ë…þ¤ Ó@ãRî‹ íØ&GSú„`^dí1À¯ùÔ÷ž×žû@¦„î4ÈØÌá¤eÜVÑÚÓÃÖ€Vm¿f ›>¥ÇÏt¾èÂõn¾°u„9‘ œš aXÂß7î†ËF„‘«M!Ö@˜šªí£Å‘…Çžæ†Ú9•B8ŠÃÜüL×'ÌÆ/õIÖTf´¨7?.“ʱìå\ÐDcÏðB9N‡-U{4– °ôõæzá')-Ñ6 Â: eí«A°±0Z¾Ïäéói8ò SÿvÎ(ñóö4Á³” áÙðÙØ¯Û'kf ̲oÒ‹ŸÏ 묕²+ÿÇÁGA›‘då>¬E,n2 †këÔ3bžÊj7lØhk@”˜÷)ɳõˆ‡`¬J}ÛÍc;‰0ßå¾÷;&" 8O+Ñì†]•1îÎ7»L&Bv¼‡˜ÔÒV-=üM2èU˜(ÌÖ‚VU…F+d±!©þY2º” Îê2ÓåêA„‡¯ÒD—e[Ìôo<°W¹Ö#bŽ24&–Úc¡·ÃbârÈu¬~| À†;T„SÑ·PÿÑdV¬Íªö¡¿ª!ä×p¼aÓ–`ü.A¢ðkp¦¼Hç÷…¥A\Ui5:o§ScÖòšÍ‚—ü¯ õ}Ï({F§‹T²˜Ê…fÝ/íJD†TÐï’XÎ~^÷$mÎ/”^éˆÅt€ˆ°Ôí.§×Iƒ/\¿èZ*Õ­81.쫉‹g ë‘Z¯2’U3Fmø†¤ÇFWH ½as8æŽÊL-ÿ”x‘pk™Ë$ΩÆêrlÄ•ˆ ô žÀØýaÚªCJÝÒq•‚´€Ýb]Þbk‹£ÍNtQOÁ.¤% £§~¢©H©Ó3L‰Îüs½9)¯…fÒ²i`DÈeCîä1<óEiãIØ”»Ê7çDçÓ4R’I ¨ÐOÒ°e†/¾ˆ§õ!aˆo1"—gèMаhYÕ%úGs4c†”ÓUà` µàa»z’&7¥=Ü&cyL}—æcqü‚kÝ…úÌÐvG‘º 7ËcÉ@G.W5W3æ8YyiRßüM&Lá± å;üßæÄò,¸ž´9.ÿXÀlýŸÌ™ƒ,K[XpÚ«äK«çªÖ¡™¢;ÅÎ?"²™X³gá“™ýá°r¢˜cf#à2žµû<¶,õ$ãyFœ>BÂP!ÐÙ…™D­  ”nñoT¾ŸT“‘è¿îIAΨÎ:aªóté}A5kñúã>äœíà³C˜>—b3,<§áÊ?†ÉÃÊHVúü­°u«µômM.A¥|…?´õyȃW€¬‘ã€Áãu­ã[ªñ²–lÁ%‡ß÷LqªV¬áÞUüLÜmÝÉ€¨±·ÞeÉ<ÚÿˆS÷Åò”ßß < +¥ËHNLy¡Èk—…Ûyfüœš(²8ßS%›†‚}hHÝÝž r‰GÔc§ ˆ{š¢v#ôf:ãÿô·gNNã¨n$=±eÞBŠjs JZv¬‹?,ÕMîúæX¸PfÜns¾ÂÞ-f\“ †½Ö¤Ž{+Æ:’OÈLã ª-´=¼,¸ì™;v ˜í?âØM¡’çf õ0…Åg±¤™¤xT±{Ï̾BœyÔ[LH~dcÅ=ÿüM2(Lpµ•kÊ™FüÊz8±òþnó¯lWÈ¿—ùaé<9|À³~“øÛ/éïG,b–¹ŸáU¥Ý„ EBÁˆäï¶ìÿ¸»`ò¦“¡c òµÊÛ.ÚëÇS1=…®â“Ãóµàv­’Yƒ¸Søû•ÒUâØüï4†¯¾I+­¯Öw@zn)W¬[O|Z‡Ká¸3Ê›º,c¡$IôÌNyЊEDèúÂcÞ¬FSÃÃÜ–¸<èö1mŸN uND,vÅõz…†1qúß.7‰òÔ] NçÎ=™¸½bÀ‘¶Ùè—y”#õ¨´ ræØ:àQ}ý¢]›Ñá}¶/ýÁ†l{—½>^{µ¸ÓygÈŸÂ^Ƈ{À”¨eóÍ·˜rß&^ djÜ2"ÍòztźgóÏ É½*SW+ÿã µö-˜è;yÓµ„š!¬…bƒµú{ïCèUÑ«àÎõšk¬UüLÝ.ŽnžÙ)iõɨnÁ¡¶0˜wLâê$ârm‹þv™…‰Àõ‰€»C¾~Š8¾ÛÿP*º!qé®6Æ XõGþ‘FPî?0_ ês*Ûå^+Üõ=šÿ âªñã9â²gs| j'ÜÚžwZÙ~ÆÌmƒ‡ÓÀØCH¡e™É³¼„Glhr{ˆ/¦ß)>ÅuÁ&sùÜìÄÅÂ??Ç1üM^m15¦+¼éHP1È‚}ýʉ«V¸9¸;§·”³ø®ç+2Íܦˆßå’ÞQW†¼¬dk·Ü ­¢È¡ïuš7æ8V&ÿŒËJ™¾·ÀœÏäËÉ{–rüMWû·XtÒÊ5'ìU@=i_çt «”Ÿ¹1—˜F%Ϋë©H_S±ŸÐ`BWŠyòyõÖ(¥ ÔÐòÄ}Ts‡ ÍÒÆÏB3¥É½¾Ý\ù²m…Þ‹eƒ4b Šîþs‹ÒP —ݽ%²é†f7 ¥ £D(3Ÿ:|wX ÊÎÍÁÃqz‡Ié¿:×FO!a%ÌØ©4õ¹ãÙB>—uûáT!¼Ð…ˆquÇñŒœV´àÔYlùìòiä|5ނ̤Ÿ±åBÀúæqŽ~€Ày» f“$¦ú§©yéÝÙ½Ò˜æÉ+«ö™OggSE3¨äGrá#,>ÿÙâìöñðöÿqÿ‘çæçÿöÿ×ÿ!ãßìýøÿÚßÚÔÔÓÔÿ¾ÿ)ÕÓ׿Þרãòîõÿ ÿÛñêâØÛÜÿÄü|®¹0_uÄÕ»@­j”¤>)òI#xAÑ_ÆÁÚܰ¶CígŒi-%ç;Ùaj×,õ†ˆþœ%îÛ6½XýõöÑ»œôìU&Nq±XÕ3uÌÝûÇ+`n‰©FÙ¢ñÌ¥i§z="ë»T*-°èZ0RUs:ÞÀŒÖÈ8-•Ôoü)qÌ.ë÷^¬×ñsMúIµ›vAÖRóù%¡¯ÖIöêL±sW>û>lR/HŒ\­ªDÖ=#ŸÏŠRú¾‘?ünù,¦RYTâ¬Ó¢ÒB£²0q[5‘˜€Ò„·”˜î760X"³mr–À;ëpgڹ戧¦tÞjŸÀÞbƒXèÁM (•«æXQ«Ò*gªGŽÂgŒ[Gõ÷;†Œ:´ŸÈ/(ïèQIšÀzë]IlÓäúiçÓckWŠ}LóµcBÉÚC?Sñ2}½ "jpziINÝÔ3y%'Sµ6$FçW²¢d¦“6Ü-•SUi¦ÒSb ’4¨×rÏáP A€ÈE¹T1åa7ᬯ?ˆªã‚$ ±Ö”·[#ãc‡Yâ4làVï«iyªmâDWU‚ðG׳AÀ¶"WöªpÓÜüM‡ƒ’é;œÏ3ò‘jú^ö,²¬ ¯È¡Oi௠s®àþ‘$jJ†gM“Æ7›õkò½³^}«I'" €ŒôúSå£kÚ3*Q›Zö?¿.02âpŽÔº±¬¾³ 7¬Op6ij ¯n¨lµ}a<¾¼,é§ŠN‹i£Å—ßÀÜÊr?ÍdýÛEéúô#‚ÞZV5š4ÜÝÐ^#ÑɶeWÞû%Ÿ#uÞì,jZœCêmk`p'›àÇíàÕ[þæsÍX9ÐÙ:¼(Š ÜÂjè(‹Ç~•粑°‰ü6‹L¬B é# 6u³Þ«(DSrvÉÁL–ZvWݱóÌ$zýÒ›€”hä¦x%iˆ»8ûõå$(õ¸È1=Ø"Þ$- Di'5e½¯ê\–ËW¹Êœl1%Ž„\ªr¡é1› g…¥&`»Ä›QÝh^ÿ+óYmôrf`DÝçåªÈºª Ä– h¢íöxû‡ïÁt&05Øß½I·Yó<\€ÐlcFUÍ?j…KŒŠ|¢ˆ³8Ç!UÚBäI7´Ü“ÑFùØØtf\ZSjnöCÓQPœ˜ÚÅz`ká¸XMüÙt ItÐ[¸ÂWy«*"N´?^Œ*ƒ0? I&*ñ°Æ¢4}Ñ‹No ã¸FûÊŽ‘ Ù!fë=oí{ÕŽ$Þ|^g´‚òFwù1E~ûvV^ü¿" é hBÔy®æ“ZH¢þÁ#^Ýîm«Æ8=Ë€¬ Kj‘a âCÿrµQ‹C&ŸÜäê*N:p…Ô½ Zµ}Ô^tÂ$Ôú¸\ÑÈA׬y¦!9ueÊ[@ ‹š‘vñ ÃÃÖ‰O j‹Kû=C©p1ÄÙ=:"9ièqÿg)D±E+±I ñõT> €A9cšÅ¸z†üÙÈ@Ñh»Rÿša^ÂBºŽNPÙØ"†qÇüªÓ2í×ù|ë³$S NýE ú©èªŠÔÏ©°"³9@nZJ“ÈÄxÔÒ-Ž¿ø¤ é¡$]‹^¡Ó‡EG]5² ?e˜+¹ýʆh?\×ÑdÄ!ã¿Je‘˜ì.ðµ á\õÑõÊõèiäCøb9@iÞ&ZKÒ¯™Ùë°4XBQ`Ðììnw¶)y(µª…„K¿ŽV}€sL 9¤é\£}™m˜º¡^{©%Ѥ-Ê2ç¨ÂÈ §úž‰«W€"gAöJY«‘êDìðÓ) &¦ oüÛ·C"”ÁO=`Y\¥Ö9áõ'ãø“²¡oXÊ"p¥beánLùØêZe‹Ø `‡V=ÿ?©Dvl $à5öGÜ%šñòý¬‚™ F†5úîßPkA”Ÿ(²t6orâ½tÆ3Í9 i@–Ø.šÿ¡Ò&ð cq–_‰rµMTmÑ>ÛÄæ”ýˆª\Glö¦Wbþx$òIài«üSWñwá‘ná,kX…ðqïÛ§u·Ýjð(õtcí°® H‡‚œþ%s2 –›ÚÝÒ‡1%½ˆžxR‹àú€ª×“¬A„ºÇF>¶R‚‘üÙ5²µ~¸øg›¨b`ê£G«ßÄ!k><¦®}æä¼ˆŸ£Uh¤ÝAëößþ.AªŒ Uûgþc I®Xlø¢Ã¢x”¾öbì¸sð¿$ÙŽÅí·å›Ü<ÌGKµFÔÄT?]£GòÇ GꈳúäÔœ“àÕB,øV1þü 84j!GfÆëŒˆu2t5ßG¹¸ÌüE}œœ5)=JauÎ×|‘+DÝyO¥8k¬†j2ا*‚Ø¿.ûpJ›Íº4÷f¥ÂoUO%ä>`’‹ö³~ózlåÔv†q ³ž wì(< ¶ðñ·+zîÚÉwvìuÇðÎjïßÉ÷ÌvÝÙ°cä‰4[Ìÿýü„‡&þVn7£î憳áçØ²Òß °|Éã±2ß4dp‡¦³eJ‡a)´ æET7 w,Ë¥8o$ƾ-IRq"Üù!…aKÛÌ›\:” ·z¹B#!ØoÅq¼\s¨—/8ØvS.|(ˆhtl`Ñü€(ÕJ~–ëòy•®€A‰›Wü6@ÑÌç‘>$„S€Îkœ¬ªùŽ °¥ŠKñ (CÕnä*ÍîyŒÕ6³¨f>ìmq&â‹vuK=i¹o° Õ„d…0nÓªoㇽ•­·X »â¾ àG !Íù ’xO‹‰—Ç\¹nZ&]à¼x€‚i¹°)¹ã_WÛè(º9Û$ í6&³(å©™º÷°K×>WÛãuñÎå|)3#äAˆ¨ÓƒæþÖí`S&òq0Ò Sà)JvîèwŽ/xjj‰)â±Üª£^x¥]#lKJôEkÚüÇe±ÎúNüM"=íÙFN[°,D 6_¦ #úV›ÿ3p`vËÚ°¿.­âû¸ËŸc¦ 3tB¨¾0rcδ Eü}¢ûãÔB5 Šx_w »ŒâZÊÀuŸ¼3Þl‰Ð yÈ¥?¸ä²-õǦoˆiî¶q[½–~XŒ{$SuY…gó›5Ô]{LN-þ@÷?`IÓHj11%žÀWx†ÝܮӬ,Ù÷‘ÛÐÁ›•¶¬7#‡ö|åÜڙ汎oRVF±y¦¹`î†Ê{±IÚv–vš'QÏ~0_˜½¼Ý`.à’OZèºü6ST?ÏFÆÚÔßka¡§f!õL»¡´ùH³'_†¦h£ãB7ÎΨJÜóˆš*NüóÒˆˆk”Vw`´`º_†÷’[ W¢µ: ›Ãï<ED¦2+½î&¶6H\ *,{*’§Ù¯sdÔµâG–kKQî¾pÛNV,žl5tÕ6йO"\èû’EÁ ðg€´.-ò}£_§s´ÏÕ“¼&”¦«< Hígߘ¨ äÆÅ߸èº,UTÀ-ì×À.8¡—Pq+Åt4):Vð­ÔUIQˆ–X™ù/-¦$)¸”LêÝüL¨‘„þ]gÎXܰ E1·DS¼ß Ht²†­4qx)OŸ®«ò(î@¢ô]&r×:R2ÈoÂÐ ¯žÄß¶ññ¡ …“gVá3œ™½ C(t£ÈM\5½ï|¬\„å ÓvÏ_ÌÀÇF¦+Udz3N[%²8!Cå'hvt]Ž1š…êâéŽãämø¤8ĉvúhÕï+3¨m¶7[œÆË?”]Pmä1]ÑC¹F®ö>Ÿ;ÂV‚KI7D`I_]Sh®³ÑjŒ>#ˆ¢Fe”ÜT“0›ážE˜ I>Aþ»Rƒkh;pöÏ)Kñ¯áøÍNä‚ZPJå`ü4ó‡JGŠž2${Λù4AZ!Q¶í×/þ§¶­9 Õ¢ˆ`T—ê9Q Ô.&á±Bå[ Ó§9­8gUK؆þh ‹ô9×R•s™ £˜p-ò¬=–¼m¨ñøåqf¾Ö½úd/Õùà¼ñ‰jHæ¿"è*v ùÙ6|ü_¦Ä·Ú$`o9K¼HR}ËÁ x9pRÿU-Ö2E0îÄ—@ÒþL)µS°Tå¼LTý8³`µ%y¦ˆþ§iªyNñTÙGµ —jï¨(†þúýå©öÝÃçßê"r†0¼ÑŸÿí´É%ƒHÁ‘oúü|ªDѺ¤‰ƒÿœíF®–K ëù!ÿM*¦ý¶ÍrçëË—ê•<™vuÂþÏ’ô_¡xö&ÝÀ.Ž0u(a¦ò½* ƒpŠ´ÔîÅxÄâÐóò"å÷#ü„k7Ò×\öžþR°Ìý±åÁÔj^Ë—¢2ú ä…ÖSí ˆ“Uÿ_§8H§"*eì=àþ¢®¥<§® úFUÐÒŠÂo¯Ö´ÑŽ›î«ÄZ7¯•ž €:üX‚“×,zgÈ7 ó¤çÐ!qû­nC²ÚKá<î™äþçÁØj!tB¥h÷ZÎÜ(n=±ÜËPHcf¨÷HÞÂ8†?w¤*ɘŒ0çƒ.²™˜ L6uAy&(WBºF? #ì>ź]¢™ß×û=“¡­ J*{ ?â ªÍsš¨\YýÉvU×ã°ÈIÙw›S×*¹/·U#éxß †ã€¡qZ52DÌ †îÑ{*`¡~#2ÓpƒMûy(më U”@û÷Ü­ªEë€ÂÁ£(3‚±7§=?º>—jÔñw—gpóÓvü{ [j²ýfÆe†c<ßRWLñIÌ­ª01-¾U°áãW|‡ÓWˆÑüL«L™O¡åfÄψyÎB‚bt+¶bÈkÞ¥×—&¡-«½é–̬ÔòÚ›‚Šų́ÊÞ¡ÊÀrà™és*år÷Éø}Α岶X u 7à Ž‡G­uŸé%—$ó1 ¤øµA³¥1¦ì/ѵ‡®™ïKD›ÿvÖÆn†6åÎ톤õ…:ë…»!·PífÃ2?ë´£è½ y*ÎY-G¨Mâ¡5òr3ÝÍÀv²WJåݬækG¸iÞóL”¶^—hæÔU‘ßr0„7NiBiÓž¹#¿˜Ø,µÓú1üL©£¨àq.3K¬`¥ÌV(¯ð™jÊ<=™7‰*µ+‹×Y5ÑWœ²úc.#7;2 l1 #¢{x {‡wݼyB–f1 ¥0Ùù±þ¥œŒ³~è,mcÃ(éð×#ºï8£¦¬8XY,$™>ÌÂIKß‹›p4CW¢½‘Œö£‰%AYÕPn5>Ò}$öè·ï¨©òDh„+ÉSQ´½¼\†¬¶ÎZÜÎú³!á„κMœ3rz¢;U<i‰fzóûïe2|Ñc½f@êÊÂ>qª#û¶Ù¡"Æ8ÎÊMtwü¯0py±R=¹Í?Bé1 wñ~Yõ›T6Ü~ Ê`çãÚrC(íöáÝkÅ( ù¸Xò»$¥×"0 Rîu«ö$÷‰f'3ì(z©ùv:@/>΂‘ÊS¦„"ý?u[P›:Š$\ìHg¸û"E|§Ã‰ãœpøÅ4{xŠ5ªµ}êòAŒngÙÅýÙ‰ßèq™®ï¤”ãꃓíwˆÂ},§¯"Xp±-Ä_§{ D¥üR ï¶””«WVk0­%ÚBœ=±œ‘ ~4šeÏ¥Ár= ¢êâÀÊûÊL³a] f^ò!ÏíëHEk[Ú¢‘—âB~#KÃ…ô…Ä´¶à'}[.ÀŒ'Ààt“ü5k³z+ß (âvÞ”èH‰‚Ê]YVHsù™8a˜~Ò8ãnª e,£\FâÃeÏE5KÚK‰ßD‰»B[…”ლ©.oRºtjöAÚwZzSÖ\ÖÌ qåa.µ2¹òŒÓ ƒ|oí±É¹”¼óù™YAÍ\Ò ½RdF¤‹Ù‹`hº­û cFVT‘\µ~¾©m†0ìø-cì÷ÇÃt "š©Bv‹b}Æ`ýŸ —ÞÀ¼@á©4|\)yª7ç«þ7õìoPÁVZ¾œšC>²v«Ú‚_,Ww7Yu}½p$S?f—ü}[Êl2‘Nè×°çÞðN‡o;éCGøbb$|Ø•(³#ÝÖª¾Ã¨i~Î@gUÀOLþ©9‚éÈ,V Ô›:cÃ÷6TͰÞÑÏÄÈž¹«²Ñ—iÊGÒ¨t9øœ!*uê WVÌÔü$vÖ/‚,íAsìŒÅ0·VüÀœâêGÈìàYIRØ¡–y±†üCV›8¦ASý†ªæ unè½Ö ºì8Þð;œV Ñ1Zöé¤{oZÞë<ÊHÕ7ÜŒé´ô\g©ªÜMWy×ê®|¸ÒŒ”á…“‘’ÉÐf¨OÃkãt¨Y‡ÆjþÉ1¦f¡¯ŽP-%Ù¸º¢3g7Ö•­áêtPùHÑÏ»>ˆsÒ }¶Óê;Á €‹\õ>ÔwB½£³‘9µ’PGñ«¿X0…y‚dkE…aíÄ#—·7 z¡”>‘-Ì à«õ Öƒ+¢í|àçú;?þõ %ýwºm®6ž2¨Qƒr—"Û¾ÿø¾~¿•j€+²´ÐÂ׉¶:0ÃRtB¸ÇXÒIg3¢AÑ{>ÑØËA$R$wJØ´ë¡‹Rš-ÃÕ—ÇGùõI£–®9›_Á¹ÿXžWQz®÷½`ü/RBð<|œ¯-6Ý+þ¦ÞÍׯ^&„#U‹R$a)Gú&Ä­PÒ*Úå¶Ú}µµa36Iä¯Ü©ÞÔ0j)ñä¦kF_rN,·Í¾¨cýªG®‘I¹¹H¸“§°j»Çó6]sytŠoz¬Éˆ(ÞÖ‰PöMêRóÔ÷r`ÿ¯zƒ’ÜT[¾áCÊ!tÎÜS w²Æ?ÐÄ´OÒ­ÒO%°2÷fcïÒgÏK˜˜:q1qÔr<:IFg#Ür]E¬èOÁô¯½ê÷Í,ÀCöÓMêÈÿž€Ü×H¸üIœÛ½_µ`òta³øYõ¾E¤ äoÇï“ ¼—i,ȇEw1–È:—¶ƒwº.np*²9É®ï( PˆÐ=öÝ»ÏÁ÷õrÝ?ë…böÛq$`DDãp[™½*Åôã·‰'Z>3 + ㇠±(¢Ÿ:l-†Í×ǬÅÛ2›áäN\Þÿâq´¸QÅb©L&O:êÉSR[ÌÅHε†jêë1˜¸{úH+¯å¡¹”ÇÈ‘:4+ 2ª)[Û ²´ÜµÛVݾšQEÙÆˆ|ü/uÕ?¿&÷ßéyC|„x»€ ÐA·DM¯A_üÐ@+.˺@‘P“ïO¨öšômº‹Ï¤Iñ¦~p–=…|@8Y!ŽhZ`úÀÀ íš0%¡Wyóìù·‚Q¦çk•º}Ü58-¸*v8/wì ~eÊv“çñô²T?ZÜø/Ÿ8?£0âmëw¯Zí›`ŽcAlÀD‹›N‘FyŸª‘#uc‹‹ÁmçjI¶û1ù3K„¨·^È*ŽçÜFâ^׊I ÿÿÕ<€5›uù ùþüL¶îqÖÏÊs[x˜_Œ¶†™Î- œ¾a™ßdÆÀB˜ù_þyªc’fB“”Šøv¤š`i`I«ÙØ ó«ÖbEV#Q_Ëù[!j”ˆ¯= )hž  >iØû½?T?¨G¶Õõ½%t®8æêº.z©©A—ŒJöCI~¯Ÿ¤9nG õïZ£ iq{Ȱm¤Žü§riÝ¡Âk\<:Çç<Úr/nΫ Kàp ¿Ÿ¼é"ã“Â¥ò;½/&j-—À½>bñã’ÓüLÖaŽÛµ§`£SùŠÒÚM¡ÈáÙŒißaŽ6LÜ©¡|$±6ÓÀéZðEµ^Ù Sù¡Ù¼¶G,å;÷ ²9x]¤s›Ð€¸ï´‚쌅n‹L?B.mþÜçÓmßy  ¸"”ÏÙÜlÊWaé4©gB[¾?Û=*´¿ÿ>ÌË›`„½–ÆfòôÁxºEY1”=X9}OñZÇ”„ו4W ¦èz¾ç##±¨qaLË÷wƒër:Ͱ-sÈ´WªA¯\  )” m{þŸ7ŠüJ‚—KŒ­S˜¡>? ÂF[†.IOf»Sͳ.»‡ 1¼lY¶³ta šÔ“^ÿO=þßî ü&a<¸úž|°|.Í„òÈ2N=’W~cà-ˆÔ |¯{’ò«`è~hÂÅB€_ÕºP¯Ÿ}Þæ8´–bRëºöT%çªêûÀÒj¿œ¤ËZ*‰G8W«v±ñU«F+æá†ïxtãá-QG¥Æ¡=kÂÔ(\àü|šLädÚS¡Qp<£À‚\øß¸Üa¬'^ùL'#É „ó·÷q‰ 8³À³û Îù–ë{4—漞fíˆ͡ʥþÌd UNěúGnÓw6ÛܘÁ&´®9``eÆøå!+‡ºjûWú±81q4ñ|)@Ò*?º®3ÌËMh#Êk´®‡&lÊžSs‡šKÛ&, MióÄpÕz²,ÀÚUѤ²ã]_¸ê ú¸¯ò }VÇOlï≖†¬qÍùàâgù̈OŒ1ÙP=+Ô#…,›wËÝ͇¼ pM$?8—!ænÖ:*ÌìÛ˜¢Ò-eÝ5ýGüÈ–kë:GGC¾Ü5f‚TÆ|²-ÅšUh zÅŠŒÏSçU;{Ýß+Œ¯H7‰œt(V=ˆJêT÷iïmó0FUS&C)†øÊMŠàìE}š °'‹jŸUHªÇlŒ@_.‘E\*WÁ€˜ŠP®HQ.¸îLÄ›˜Sõ¾—…ËÔì8µ8 %écSUØhºÕu)ÛCœoW¢È©l&?ù³5+Ôø’Ó´n¦¾ÂßF(¡îÞš0¯ü}aµ²~¾µ¹ÿ˜ó7D¬4Xí ¦øC·aÎüè}R [ ¢ ‚†:<©€û£ïUþ'kUšüx¯ˆ:mzŒË·ì=‘èo’öܰvºçŒ˜:xˆríwÌv7wmÑ`ÒõxÛµ‹Ruìõ§.d‡å|ɺ·Ÿ«2²ßÑ>+€hT/ŒîÀ‹OPŠtí·½ýÇŒI)ÿ‹ÈÁ™0#(ßñn5£ë’8§ü#iý’‰Ë!0ö?ËgU„´1íüWíø©j#ŠÓlа|©ïuÐ^w»±óã‡ðŽÐvXœ<ÀBKjŽ?V# ð`t•ãxŸ÷„LZûwöqoP$PU¹ !Ø¥=è<•\º~Ù 3ÝŠüýÏ~ üÙ*ÅþîHE½Æ(‡OŒ¤y v¯RŠ@˜íYmÝ^Ë»n–ékÎS(còž,ÊÒ2ès)nW›&ƒˆ Œ`ùÚR¯Ì'à ÈfCK-ÜPè.z\¢j¨7„·‡‘¢•bì >¼væI<í 5 +”ÀûP ²=2ë4¡ êÅÑpûÇû–q‡‡0Ø›üÛŸe7-¯O…Áægb7|b‘/¯ÏßeÒþà±o»e‚çº>=Ì7'^³'$[¬»ðÜd¶²ú^œë}°ø—ò5üÛ·šÕ¬¡ír¬±ÿ¦íT-xDI©zŸ˜=¥õìg¼êÜ¢s°‡•újEºv~bóÖš*¨nJ™˜—å*?·@„[ºƒõ³ny6‰…¢t楹™ý­I¿†ÕuÃK!f¢Šê§2ôš6lì¬ÂžidKÎw¹øèݺ,Fƒ  žp8;æ¸eÿ›Ü„WI'§"fW,ñÕ"™eļƒöÇ>rw¾-êŠ;gKñ½ŽMz‚ÂÒ`¬RGkK 3z× mWÏÉ&ú1üM|™íÖ$,ä§!¦Z®¦1Î^j:D¶ùþÀõh>þvƒ°æþùgÊÍóVñ¤AhÙ__]ÔÚJbÌ-—ãÔÀ€lhá£ð‚<¾ɦ E·d~¼ã’BÈt;0–çòNŽ m’K#F5§Óæ6ÜüJDjxAá²[WÊJÀr þ(?øæÃŠNRÕ:qø½Š¡ç€é»‹C?Äc]4‘Ý ±ÑP½ÓŸåŒ>-FépÎÁžÅg6沈ÓþÊ7:§-  ›óLU3×ÞGEq!ßtI¥4«ž¢£“ì'a[ª"Áf×½XÅwéÑi›´Vó¤NÔ¬A bm,J˜±wm;Èã+³ò’Cá"·ÙE0Ívì\iº®DÔêØ,š$¡–T6Á”*¿qËQ/Ï¡w[*¹J7N)þQªûÇ oCÒ &—§‰¹ËÍ‚m)û˜8W¿×kŒÇO·XƒH ïSCk¯²É\Â38á™F]üM!~8­õ6åoø¯=¼¾K{»d2Ô¨$z³ª~¢Ï^f€(UNËij"Êáì–˜†,u‚¥z/&IŠöºyzÂÓðö¢çœ»ù¬>„™¥ØÇC¸”6£€dÁ"µ†Pâ3I`aOx7©çŽÒ¨‘“à•Œ<émby .¯ŸÅglÆDI=p m{'|oå!°_…úçX+ôå#f½0v,GÌò°k¦ŽI> ðw«Ü  “’¢F­ªÉ«ð>Ò&Ù`°úo¢Y¬ÎçLp¥PüMUý~_s\¢ïû³ã9D!*ºµx>ÚÕ"?­àۖ߬‹†üóËñq¬/÷í›6c¬>U¢ÛËpšˆwKkˆðjÆ8‘‚à£Z¸õ«ku„|j6Œ»*Y%¯Jþ{6Öé׉~QïC„ÝÉün6Vh­Cå€Bª˜p—ð>2¹^¼]xוԷxk{¸ž›M´zDô¡ÔÄî™Àwµ¦Z"ÓÜ„EWQôjx5!=#¦Tj ºÓ‘›öføá4n”ͶÚ],¨ŸÊªü6èŽüLª£í|^Ñ^±+õÇ R¾T¾*ÊýK™sÙª\µ;à ÃØø÷·ãî àŸýP =èn/_Z<²g&?“¬FV{\t2“#ÚÕì¬4îã#g­@>ŒÁDÿ‡Ö»½Ggµ–¢àåîÁ^-øÎ-öâ“ÇF>`OÒ*@í;}½ýB¸Å2^Õ§£Ëñ­…|§ËŒÕ >†Ò¤0‰|”éÓšúYês<;Gìan‰Œ9^–§h¾2Ô˜çˆ2Ô»¶Áa®xÄ'l.F._dæ½ëÞ µ«‘øo¶€xÍFâ5[üJ“þWâõnÑùnvE¹™XŒ&¯ô¸¯]aåÚú8=¹Ø4l™š@ˆü”ÙûšÑ÷Ú‹³ÛQ§©Ã ßþúoØ EŒ,a«yÝÑ–îî^PnÏh®ˆY[Ô¡€Å%S¦J 2šó¼ôº#âªUÜn£~id½àëä:‚PA r|(¨©«Íw —ŸÖ§~\ãwªõhIJ T¦kìÅÆ<ñI¦yå#óB>Õµ¦¯:hn¡r?‘aæ‚Úø¤îëN¶Æ\ÏC‡ÄM“=`–YˆÖcYÍ%¾Ä0óeJļˆ÷ûÖmL@íKkì{wxüJD%mr•Fx²›Œ.L(:¾üÜÈr\Û½rÄõ…°p5¦y(._µõ3âËÄãë Z±¢âÂ*4/ùÎdÎf‹:]œZçð8a$”i!°ý!µhÚ°žÖ;Ý­;Ë+ÔÝqªG¶‚lL·µ6ŒÊ8ÇÀÛT[;:æ} øqÇËùp·T·fC«®WÚ•gèè8{*º51šÇhûM¢º…e€Šýmr[®’½Éi_Ê“„Ð"Ü3§pâ©Y`?¥s¨^àÆçê/šÌ)¥èMå™ÀêV+ÜÉ„¬/…ëf²·“é3`ÿE„…‡™üÆ&s‰„=Äæ”­ùÕÛÃú¥€ióŸ&SĹúß7„Ûô[g`õûð×tH"N;ÒÞuŸs\}ؘ±¹TJë®[¥ ·^T\_c HüÂ"5÷½<Þ"ªu5˯©YˆÏ$é3tX«¶W®&LèJ¨vÃAÁl00¬Dȯ_X†Û;ÇærËÑø™H2€|OÅF¹X]ÜÓñyÄ+k3³<Ø{$Ÿå÷ÌZš€qQ꺟½d£÷8zNË]yÇ8¸ /L§ ÉýJ:ã²1ù’©OJJ/ãÕÅEdØÊ;IáêÚ:x+]"gZÌ%Ì’üL¾&hœ·2°LQSÁ¼TÝDp ÓEcÇá¼gdA­˜NÖgFUg5_J½TáP˜íû„°ŒÝa%Æð}çNBº“Ù;O\1˜™ÑHÜðÌqŽ.˜4{‹œDˆ>ª–-}byÇÏ"¸²§x[Ôt óæÄÒwdŽ®›V,ȸM5î¥\Þ %j‰5ç+R?’7ÒøÀBb<¶5ö ŽØÃ<¸ÐøÛf¢¼3þ½Èì‘üKþ §ŽtG óBKO:‚q’™x 2JwWQzÖ .ŽÙ ¡y¤b. ÞŒ[·aÚÐ@î²bH*€¡hiP]\(ÿjTF¯æB At {²‚™ ÂÕtwŠLù ì&„ÄüL°n¦C{~#˜¥²GÃ\˼^IîFÄwÚ3Ö ÃˆÂÑÀ% oqÖsY³ÏƤç$Wã{ºì†Ó‹(Ýá¿âÁûþŽÊOæ0î¼ §ÏßM»"2…Ògk´XNªïš†‰ÇÀìH×ÝúòpðwÝIð„ÄUü&÷w•áHÉU®‘rìü„™3¤Ú#Aݼ¸Áÿux½í_Z:vs®ÇöéQ·ÕøFª `\«3SÜSQ,í >gçmP€ êÌx«üuR9©‡£<ôÉHÊÿÉ— R˜mR ®½!å©ÚìåfwâÐÍü1© „ìÃÖ(®²¡¡¼‰‹SJÉŽó;Rsv'JfTa¬¥tw[Áéuc”C.E¼ùØD qs œÃ&œó¶ËÌy^5†ÖºBê{ùUjÞ$étÃ~ámÏÉŒDÌËq[:_˜ïÚhê 4™3 „ŸÒÍ()ë!”¹÷ ›âÒ¡K¸¨¿Õ6é¹i…wØE’ŽâYùd%£°î K»V:ÙÜD?˜Ñ®,9FÇ8§ÈJû/â²xnöîÿ¡!Ã1}׫,žæÌúÑ¼ì† zc:£BjüJb²%óà2 )*Ò‹ã°þ`ì·*jªV6¥´‰†–ʦ Û?)ÐÎÔ{Âñy— ¢cýhç3&Dþ}TüUyebm±çí™_¬Nlîl'X…¥Y!»r¦³µlE£á)©(š÷f»Ú–á—ÓŒjå Â[΀fÒvBšÎÌKÅ®þL„9À.’²¸-—¡UÊcíÄÐ÷%pa#Ú÷T¹Hì|4YÛàu³¬ˆ5ú»Ûõ~ýû¢’Zúö ëLö§iZôrû•%ìÀX‘RÿmmRĪðüÊ_úJ_A„Y§ÃÖ@ד°\””€ 7]˜ d õÔÁŠÃé¿Dÿ‰n·AtUBNi!33£&•9c%™vh±›ëe:»ÛÛÆ07kˆÂÇYƒ"ü³òßZcTØ~À8¡èù{¶[>üOuî%Ôór9 —…Ôív¶á-m^gŽdi÷¤}q¯Êo×6Jº`FÎ;­ôúÅ.mÞ¶pDE[þ¤rYÕ˜‡Š\£ìÚ24ò×Ö”VS(—ZúANŸþÓL>Å-ÏšûŸgŠÿ–5[£ãçLFÓ(¥Üø’j »h ëKtžóš ßèÐ%ç ÈyÝw 9!j"]„îÂñ,PL¨'¹Ü”´šj—bï#WËÈ ôäh¥J ä8õ_ño3èãqdóŒŸlÙÛŵV5v/8ÕfÓ6®G`Šà²©~ìk#.÷ÿ Ì5Áe>%Ì'nÌáò¸aS"âèî!˜„‹?ÐåW÷À ¤8½ûîI¢eéÀËZé8‰Ê^ûm¤ºU\il¸–ðÖ bì– æÞ|lÉúÖùK%4JB¼g°Œ‹Dˆnº@ÓŒžå6™¶)éÌô§OggS€4¨äHÕƒ!>ÿ!ÞáÝäÛÿGÿÞ÷ôùÿþ÷ðïîöóÿÆÜÝÚ×ë÷ÿÙæáÞÛ÷ÿÿÛÿOùóêéðÿ÷îêæïýÿÚÿIü|·uXZù†Œ…²G\Y¼-Ð%Ò ¼ LS¥'" Iã%V-Þz¹ µrv¸È"uÄ 0 DT©\€'[–l‚SCËÞuPŽmžUÝHqzÓk²ýB%§aï$n-‹u?Vðó)vµQ‡a± Môݘðȵb®%ˆE i÷â’´¦%ß兩Œ¢•ÇícÚÄXKŠØ%’Õ zÃÌI¨üòçëxäÎÚDÐ'C"´ëÃô¬õ˜/¯?ï_t¶X0~EiÐД¡66AQ; ¤Y@"zq?ÚPõ£Ïñîï>»}PújËãUÛD}?ÅËV˜ûƒ*¯˜ÛúgSM2 V%~¸(€LaÞ#[}µäHãÎüM&ز҇œÑÑñ ˉHÀœ¶)Y‘&"£M‘€ÿ ‘™„‚(C߸zôP%¹“̾²¯QtŽoøÑ£ó!¹ÏF£áp«×øÜ×µYç£/¯+¿½J•%<Ù:ÏDK4Õ¹ƒJƒñ­1lT¨4ZD\‘5ѧðYÆhÌ ª³-‰ÈSÎKGÃvlÖ[ËzMJ™ Ì»~@hûMú?Ú"\†5-€ÀݯZŽ š:.MFç:KCßrSëpyÄÆL†ŠQ_•±,·™Áç$r‡ÎOÕ¹0‰üñ ±bq§ê{âéÑÙN¹ò‡¨šÕãç·:H:nZÂUŒs4UÇöL/s»Ô,¾4‹öE!=~„D}­zÑ9%õ6ℹ]ΑÚÁ”ž ¢ÊŸ:fiMgz‘â¢IØÊÎi•éƒT„ªZaØ6\^“†ç˜u…f2ÝÙ¶dÊæºÞ䫨²Öy¥‡[±œn÷ÀU•(8Õ vC{¿‡Ï¨}A.)ƒJt­Â«0^W=š€l]¤n“òh²1AKEKá‘ò–:aíÆŠù5—Ytñ” :¨Ÿ§u¢‡üðíãºÁªH$Wæq¬ù¶)í£'rî,zÚuÝŽtjìÇÈrö fÆËœÈÌ×–Âs%lSÛ[W¦?b¬s\dû ‹2|‚ƒ :åѤ‘·É¸8]w+GÅgÓ@2BŠ`½3YX†?!n¡g°–˜Õ ·jPC¿n;ß'’±QOßoRÎì’¬ž9ë1a®ÂàxÝÂîl@'Ñ€b° (’*bVWQe?ª2(Y™~efókAP¹¥H‡qÀ8g8L{«[5‡g#®TOw.ÍÉObÁüI £tF·¹PIæoÂwÔŽ{Í£]Ì­QÙõ¢ pžj®ñõåOÆì0¬öy¹á&•lS³‹Ð‰Qc£ÏÊîÛ*bH3Gò©§ !ÏE›à©W‹¶úâ”ÈEFµ§ô<ä©ç;ä…HEu16eÆò£™+ó:)Ä&kh·$bvL¥ &AèJNûÞÙBv·R_Qôה왉ëؘȪC¯gªš¶þ&×ëû³@œå1Å6#z´Ø QÎ|#Ù x߃K®s'…êæÆ=˜-®ÚédjBÊù"e¨LüÛºŽö\¼œô‘±©±7öƒÈĦiliº]xj 3È‘gÈëý$PAwãî‹*bÐYp!âf»KÎuâ뿦3-Ñ^(Õ¤äóßE몫|§“DY×@¾„ÙŒÿ r±Ü?º9¶$Ó‡X¨¡&¸vWâ.Ÿôö¢|?D•O5WÏÇrMHfeñäFN` ¦¹)ƒ9ŠÔ-§Ÿ1¸9ãHû̇^)åƒpsÅsx¥ÓÒg%ÙTQy¼ï£ð¢¢¦µªÃ ÔºÛ%Qæ€eó+Më}Yìü|’ VÉÜ’pkRE¾‰ž™Êf…§B~J56ÆÎà©çáœ>FaâJ^zü’dZlÍUïiÅ—‰¼i  ÚïµZ“+ ½+ˬù Õn5éÌ|”!Ù£¤wÅ÷±„Ï&èË‹p÷І,Eh·ú_øç£w>'÷êLœ²¼SïËV6~ä0_€©-/Ū"϶šÏ0ñ ÷ª"ÚvEüë‚ùãƒE#@†÷†8ý §ÄÇß\ÄËÜäQ“L!"¡ðø,R ˆÃÞÓ·o†{:²VŸT×EÍ¥Œ¶Jv†ý(×"ê¶-˜”Å5¹‹8†CøzlX\b€ ¢-™ûo<P ¹3õ6Ô(ˆÖ•èS)ɵ5\+Y>¨ä8ɪTHhNUP8IBdøméRÎ ˜|v陬îè3+ØKiÈüLÕÁ2Fü˜Èˆ~ƒª>’[ !$ƒÊ?˜0ôe§i1žV£š{å”ÛŽ6²×ÐŒÌB7ë4ÁvŠPÑà`Sn43ùl"0þœËuj×,œWf Þ4ÉúD¼¼bA)Ɉ ”ú(%à‘¶IKÕrèõ¥à‘Eé öy^³Ë´›"o¬¤Kq ]–ºÿ )Ÿ¬àÚÂGÎ8›Ûn9Ç2¦TIÄU—f‡ÚoV÷Û€,¦¡3¸ò¿&à ¾Ç#\æRë˜P1¾L@JÜ ’ Ž-2}‹ p¹Tr%üLàgø)0µë$3 P>a³’a)„}MŒ£K6¤:Îáï3ù«zßRÛ™_C óC6yÙàüëöõ[&P¡Cg_ù6As¤LÐ^ø0*#0{£ó`×L¹cëAùEœc=‘C——2R&ñbˆ ‚Ët½0T~wYá¦sÁÇ;6ztý.#^Ñ<½­™+¶¡ÆZð¯ñóÔl€Ìõ!)¡£¯KAœÄû˜ÉûÔÿ˜y¶D Ô5°Ê3XÝd5=Œ‚:ÁDòŠÛÔCn%'ú0~ÉW‹V>T$à“ä‹ññjú×WÄ_Þm‡é=SGªª9n#¬Ãcü5hÑU@º g µ\”(H½ýŽ„ÉÁ«Ð’• € (ìì(¢û'¢q̺\÷ÃË#©5º¾Ï«𲦴Ûö\ÔùÞ¤4•Àÿêøæ¡Ê¿ÿ\ö%„2\ÇäܽŽßˆìNª$ZŠêé¾€­–6ß"Ћ]yÜZ@&,YMƒûö ŒÒxƒ®uu,TsϤ~µÜï[·ÌýÁÂýžo!ûoEPo¿ûËÈ>g*²%IøÔ.BX]%mœJÉ<ž\0Þé‚M¼vtfð`óÆnõ*uºÉÿ39ƈ5di³Öø Æv …¶ULü›ÂíT«Èç)àÔ"&B±pôÌ€8ûˆ¹ó¤Aº‘ ªp‹îǵ&ų… îá¸â³ìoÒ §mõ‚.UG¶1G«‡á}Øjk-QÅ\ÈŒn4ÀË.ÝȬHžŒ”©×‹Z.qi›UÆ#Qvé9²#À÷ÔÅK© €Ý—l¿n¹W@X•õbƼ´»£ÖÙ6Ñ‘Jx!UúóäЃyÁ"u|Ýäœì÷×"ÜD¸ 1^VNR:£Ý Ü£·=†$¾˜Þ辦½Î¬ÈÑ)üœÉD9¾»HaŠ'Š“i6uÓ,“¸Ó*÷ï“8ü5²' Ñ¡ë¶?ïv´¿-Š/(ò4Dæü7…R®ñÏ‚(Žü²ž9Y]¿Ç"^ þL¶]B?€ÌQÍ ª‡TÉž^fØ÷✾%Ôn£õ8„Œóÿ霉ð6”IÝЭS [÷×2ŸÌµn™Jh¼QS†Þõ:ä=”‡î÷ n!JY¬þÔÅ”±S˜÷¾Ô>JQWIˆ«†vQÞ"-ñ°A¸?X î•›¯p¯P¢ñßQQk~ü.ˆIIC± »ˆ0®Îæ•¥ˆ¿ª‹Ï³”ðïDÍXŸAß-¦QxpÁm€ƒÜß\ ¯Îp À79@ÂèŒMÐ,f2‰á!æœf*Lµ7¿A‘\lqž)|8½¡êÏÞ3n‚÷£ù=¯ÿ„f –2At?S›¶Ë18Æò$‚Їi‡5y³R¤%¨ˆAº/$Ùúp¦\[õ€­¸ÅбGÛÉ(‰ŒyrA}7û‰æ(ýBñA(¯doå$þÃÍÜ{ÿÉÏ;f¾ÂÙøãGRZýwM.·F¦>')ÃbW—¥e3F'>ãE¢mZËoq†‹« üÛ·¨¹Ù.°ÿà·p³’TÆ,£Hþt.z E°Þ^n锯À„K’Õ œ„ÜÄŠ*&‘z¹n<‡0ðzDÑGF)(Ž5+Óp„ ªðûi²½ø¢Š) Å!±”¼ ¾yˆŒü…xãuøÓB4š`ç Íz‡.n_-ÂSËO\@€.ïpᱺߙú¾çß«§@ÉØ‘ödù ý:yäï“&B±`«¨l` Àêßþ(U@; 5u)Ô·†"Ä—«çGÉc_ÿ<¨Øh„¬;-Ž÷¸ PF°ãôO3Ä ÉÞÐsQnpâ  óî{üm“zYë8îQ_ÅZBü6i*‚ÕrÚ¸[}x4TºöV›IHlLãÈ]ýY°c ç>à.fóøº‰Ú[ñú½.~i2 t€øÜ'Ñ2r‹†q°ÉÁbÚmÑ%žÌ¼ÊÝC©:ŸÒG+Â:\^œÍ¼—jS*÷’Ä{£®w÷[ÖùàKÂa}«´ 9†ãçpSeÞí,Kî)ÁÈÙ`sf¥ªUy3ÆS„FªûR²)Â"ýM솄fïP×ÚéJÅRE-$‚þv5%à; u§)í“ü}Ô¿$"Œz'œgU/¢Íºk/¢ìN¡i3|»kÜœ7ùÝü°Ì‚2F"©¿áëè¿Û€˜x޾)Üh„áЂÙeÕ ¸“‘íþƒ aŒ±…ƒ—à„ÙŸ? ½94°²-)•Í+Cº¸u·F ºV(¥ÇQ±õ|¿š{=6×{îù…éŒäÃÑa˜É×Õ¡Kn¦dLUªðσì÷Ü9ZÑE<ÓsYº“ ´ ޱm5œíÛJÅØöÒ®ä>§|á«Õ4ìíñÀ´lf;jÓÝÀ  8„#Xk‘ðCl|Ì—&‹ë¿Ä&\³<Ÿ‰É2|+JLË;TÒsJœÅ]X|¯`¦Kðrœü5Mq±þ€¯^‘¿Î?Ò‚öéÞ††ÅdÚj׋ï'CÃy¦†)*½ÛþõŸQÈGŽkȉø ôQ_ÈÞ;l¤‚XggAÎr ª:«ÙÚ!I†D?>“Ç×ñÑûÿ¥µžÀT’) î¯)YÜÇÄEoi–ÑÏjœ‹úÃìó‚§.¿CyçªwŒûbh$u-1"‹Ê[5IK Ñó·°¾N‡TnÈ‹bøà3Rì9aÞöY'ë›’×#1.4 0uù?ôû9­´á|Òý ’pó?‘Qu 3¦˜ÔÜñR…,¼YC”aa´|–šóŸë¿<¦UV0,(Ê‘a'jT`ƒ9Ù•÷”[ÊHÏ&]µK¹±š2W@eæðÝDèÆ%@ÿÀ UiLàîþâÜóYü|©¾uGð>?Lp÷Ç$hÛ>Ÿ¡]n›Ñ¶›dEúWˆ¹¸àuoÆ…$üPKØýÏ~ÿ1,k"Mú Êc6DÂËåïô<àÖYÇPƒ¥׃&îÀ@öß 1æ©F_§ç½ ùk¬Òw˜!ýS=i9âS^ÂOW‘»¯î¼=-ëœbÓa]Ft|±y Œüe™Ç¢±Ò¯…Tüœê)ºÉv]Ko±1ý˜`‘£Þnj>`)D,óS®ÄDÿá%-2¬E"°ˆæO·x¥píŒà ‡x~Ë몆øëʾš/ㆠ“ëN\ÖU¹¾B¸øÙBF­-œX¨„ššõªãÎÞw…¾ž²Ð€Õ `1àV– Ïô½rê´û]¹Í]úÆv¦)ŒáôKg46ä(ˆ†ž;¸º­Òx ~i$4ë¬ùôMaGÂé˜ñÀvi@ø±I‡ÜBDýI"‚ë5"‘i1ÅDÁ6hÑ«y}á“ýö¹iÒ2¤ Ab¹Jrðþ<Ž æ<ºÙÁ.‘sûFÆÿjå“4’<ëdº qŒ*È-Ÿ‰µUb!ÚèI˜ý›aOÖyñ^8x]Ó*ü1£kGŽÈÆ(ká§+QÚM˜?<žgCPÞ¡7c›5åF:ë4C¯ ´iA3Y”ѰùW¸H’ã—w°äeL¢J2õ¾¶ŠK'܉Ù8Ò Û‘%²Ísä/,…^!}*ˆù93}ˆ’Ðp‚nZйŸ‰[´°Çà¨ã Ã?Óa4P ÈzD?òaU#Ö|«ÇZ/røéž9¸‹áØýXÕj…G4ãÆ%7³:^{ ˾©í ëd¯"³ÉÕ´U '1O!>'\Ñýs9Öв¸ßtw©èX 傿¦üJ!ƈ:úÌ%7×HÅÙÇzÎ%C€ ŒB/.Ùß*ŸÚ”@¶PxÔPåÅÍZÞ[¬ʽѣhZi7ˆÙ+¿÷Ü–šmíùÕpË‚ÄBÝÉe¶ÇrrZ¥-ü[ É8m`5­ˆ×w–É((Ñ­YVƒ6ço©¬P¿Õ°q1J,:ãr´’®çéHîbü?sò\}j÷X^îtÖ¿Û¿*1Mq£¢›·4/Ô»ɵpsn“Ït`ö[–*ÚÔàG’Ðh:øÀwI¨‹É ¤.O­WèohŽüIzñgºk@ý4þï*è’+¡çI±):Ó‡wþ7OlÄÙeýÊþͯU}<; ¡È7©¢FC3²†=º*…Õg M•¡OßFœì§sÀ«Á,Ò²xèïÉ4$m/|Ö6òr'´V…ey+V/Ù3”wïL‰}}åÉÒ£^zfÚ¹Àwz \^åd¹‰—y·ÇΖ|é»;wl-* UÕÇïa[ŒFf ²›N†Ö »áEPã!$!Ôä¡öޝ.8¦Û<¦wñÄÚWÓ)4Gpc×s5;/üÆ1qÓ"aÀÀ2I.soÛ×øüâ±ÏWx)[ñÕ¨—ä: ÁQ“®ìç€Q‘4*±EÓ«þ¢Œß›®…ô‹`/‚ãt r“}ñ‹ºêÐUL>˜e\¹®æ2ÔɲóUU;…CWŸAxÅP‡åŸûö­Þ }ÔÚ>¯ÓÆŸaì’AîÃd¯q^óRÓh±ÂnMôRh°Sa¤4õe ³kV9J€y¬ ëìɺ’Ah;s÷ÕÂ.oÄ\v®sW[èV )bh¾oÛí×iœ±¦Ò¹_Ç4]ó'©u³üIìÒÇåņú¡KÜ2›S#Lð`ž+Ý-ßÞòû¤'œ"ãW&I „Û÷z¢V*K½ìý÷ggZq@GÚ Xz«æ>Æ™Ýd;ÜRèäÃyÛ}@Øq<Á!û.ÈsäÀ&G´Ä¹’Š}#s 44óÃÌä]b]d¸ø§‰æ’ú© KD‘‚—2ZoúåÑ08ífd†‰ æ'*?“Î?uãâ+ÿ'І–ÇÝd¯ï¶å¸DS*ߺEÄvL>}S‘¡?öŽ ü„{_QÒÕ¤ÝnF®Sh¦†VÃÓ–Ýò0üJb¹c±ŽÎpVÊ}Ê{+ßûפÁÈ¿ Ûq#Òè#@_{ £þÝ‘7€rˆ12ÿÓˆH/8VQÙk Ï€M¢z“}ùþ%?‘ç&­`Nœsa1Ç„î*ò{ͿƓ×Rn®ÔJðu‡“°¯Jq CÜU>TÒŸ–¤Þ•d¯ß‹µU)ƒ·îÛ ‰/8¬{t´ÞËLGžŽF‰| >®0†ä|Ur؇žf,âÂËw!øØ;œeîµvŒ] þ~™¬WÚ‹Ân?¥ÞÏ]²À¤M-Í9ƒ¹ˆ]ý…B‹|eÞ&põ›ƒsÕmë*[ôLéü|¨ ‘ßO¹ÊÃ0»“Š ²ÄËËzÌK; Ö—:¬TëÅþìýmv©èÜ®¨ÔÅYL‘¦b*Æiîºat˜ÅÓžóŒi:[S·Új‚ 8Z ÄÚ]•ÚÆïx[òÝîù&»ajùgMìøP˜æûQþñò·ÇPèö±¯?œ&®ãË~ü`²’nx1öýžŸ ÙÛ¤Xô¬b3ÇM Àô&Eƒñª§uã tÝMÃDãoÜYí,M…òtí|hŒ–Ú„ˆÐËÍòg´fÜÏÏ[:ôý Õ’¨þzXàõÅÊåŒÖ{ßâ§ÕÝE†”o´Ëj ˆ®ï驜—8ÓC˜,?œ5¨÷Ìð4¼Œ®µòŸ6G‘Ñ"â”¶à9£¼C¶f*^9Rj´âU0LüMü/WgióÏAS]œq¹wírr³2ì ¾uŠ~H«»þ4Ð7PþÁOH'ƒÀQ-Ó¡ï…>¼ A+ˆ?x³ü.šŽô°ÅúÜ¿"‚2OmYž5†áxí"³ 7òr÷Á%gu¬ÇîIeÿÖßa¸˜CìÓhzAs<ÔH}‡5JIÞû.”ñû عʞû ÏÎ ÜÙâŒqžgÁÑHëš^é.›º‘Ð@ÌR{2ÇõÇ !Osç®ÞûÂû¿"ý-GB©àxá›øgµ§j2NynΊLÜŒc›kçªÃ¼u Õ¸`°&ÇïÁ-/Y~ƒk÷ XPÄPW Eš¤x~͆i}åBWÑ^Qçÿ8ª½0Jÿ ƒ´üÛ²Ú)3ü6‰‡¿®á kL7›äRçi§ú¡q“ ¨é:(äjîB™ý²ÄGâôݱq¼`Õ÷çVÚÊõѱ#6“àeÈ$—ï¸0`äu¿®¹ÌsΛ­ ƒLa²ÿ-UaF¿¥ýÆ,âÉÕŒáþrŠHP4 ê"ýIi×so-7x{Ñ̬½tªA—þ(€öï…·˜ÓúŠÎåâaSôŒ ¿Z¯gf³->¡{LX;_üfÉí@Ä(N\ެ¶ªì¬Ü_¥½¶D“@P¬„SŒ“µÔj¢Ô,¾o¸c…«iΰ×üJ^ü9¥÷‰âSIkº®ªp^;i¨OØDž¯¨IeT®œŒñ’­N/®ðü•›)‹šû-3LðÊ̲où ÑÛ+k{%=uÃeA1l¢’ØrtJ-'ç‚8 ñ¨9€¯—¬Œã8]Ídá'SfH`@Ų́<ú'æ×4£ ´{ê£ ØÚCix8—2i㛊/fç>nsGþ$uû–ƒöÁ:´TG}!aDŸÜ¸71Æ¡7¿¸u⌭,-ÝnŽZÉ–f9ÈYTá!I.u*P&b`co£©~WÆãûm^Ñc¯?Ñã9ÿ¸}qü6Ðä~š`Âîc,| í= ”"‚–?íéœáFY4öÂ^Z v6CÓŽZâ‡:€ ²F UË`ì a‹R‰2.½ÚuYm¸/¤'íÐm¶àÜ­ãÓªéùỔ&‡ŒP›Ÿ…¨"©UQm”¿+1˜3í4ûôDñüº8Øù4ÞV¬T¡ÍKz”¡Õ+Ôº{+³…è B–@Òî­ÜNòA½’N¦fÃLpši§ök%AbמzfAYb¬º–'£³<§á»†ŸmGè)|s‘6š )ßFìoáTòtwÑWæXL|4¼C!ëZUÓ£jwX†ØÎï/æin{)×Áü|¬¤ñ^èåËUÝ÷LÑ!> ò¿YáFH­oñk˜­½Qÿ´Ï‡û–5mšørsMü{úÜ´ÚÃ3ê⫵À”„B/¾û-`ãwí˜ðZ ËA'Jà ¦¼›ƒ¥$”ß´Ÿ½ûŸ¤«G–Ãí«Iÿ³ûѨá¡Ülú¢³ß`Våg,8žËÓß{4Ú#QÒº»ïïâ]Ý"ãW7ÇÛï©³ŠÆ˜±‚¶1±Œ`©ÌX·Üë3EKÌX©™¹év†Û&:¶<éÙz½ãQغ·"Xböˆ2.«C9t|ƒ;~¡â‰þý$ª BsÃË]xœt6TÝ\Κd’1¸Œ¸§sqgÄŒ|¹RÁü4˜TYÝ,ÿŠŸNúzã1êe\Óe¡5x…l65§nëθϵðÖûüw{Ç(¬]ÜG^u^ð£ë=9žH½H«ÉØlÄ$ˆY˸¬m [¸LÇK.¿– ©)íãf ‚úøÙz,#\tk9‹ú'¾­%ç/ÞÅÊ÷ž–3\K›žKt×Ó ú]å7rÿÜ®ÿYM"%»É´ƒð36Û²Ò*‹|!ö‰}Lôa¨ó-a,êø=‘èÇD%—–ó’1 ³o^¨ô\¨šcWoŒü|¯Ü|âÿäþF~šèï¶×…‚v_ÚÞn‚Ž)=úp66 N&à%ð6=óJØN¡úMÑ27cê?ô‘0Qõ`}$D]NÍl—º6kÊÒàMÙD¥®eÖÞvɾ]ˆ¢)Ñ™Y€X«é8»À%C<ÊvÑÏL ÌþûËHàø=ÝúVà¹öÑ(PÇi}Í/ïÕúqâÙ"*‡ËØÔ©Ð›ŒÏ:¹¸¤ßÒä+¼ÒeOYÈŸô5æqª¥Ã½9x}_@ª¯ˆYËïͤ€äé´é±.D9d_~gM,k“‰ºI70-àçT_›?#3nÞÌáU«²Ûq®C³  tü哈ñôå—{Ê‹¿Þ Š&u2Þd=å%Qùnvf%—²†_a‘ó‰Þ¢>¨P!‹6†d’p&XF¸áÎÚxp»füM”ªV<Óô5U±äB6¡0;GiBd£ò&Þ~ëjƵ ß7/è0M“ËÇxËtM#‰Õ檸¡®Ç™Gk!Ù1å–Ú…‚}™W? )‰¸¼s«Ç0‚TSK°„7cbÞWðùðØmæÛožf¢×|Ël*œÑüL°`Àz†t@ˆSè0i“ýG»`F.ñ.xªÒ¿Zb¿pè5+`aˆT“xCÁÅ…dÑSóZâž öÝߟØܹñÉÛ-t'âl€È(fqXòncˆÿsÛÓ§qÎ¥óô¬¶Èn ‚ £J…`Þ𾿭]LÍÍ5É^´JGÜXnR\‰W朤@ÕËç…Ñ^F4¿:¢²¼ËÓzS›[ü[”ùÍEžªY‘yJ L¡Ø^ÜàÙ¸âæ¬C?æ¦aG\š‘¡©C>EúÝ¡»n<õѣäkCtPAþ‡“ù:îÒÃkã®ë:æôüK±@úpüÙ^ˤóm oîî÷B*ƒHÐq©ä§Kè¢Ö²99ÒögÃq^+v#I¹VÛ&ª0Î4ë%•ëhšC_ø¨/þcü­¡K™¢X1Ð6ù4£ÔG«Wü^ î«æ)yàý'ãáF²Ÿï¥8ïRRúŸ¾Î9XßõW‹Y´…òÍ:óÔ.¹ÑK÷2ßž‚ÀÈrDšæ#Z,1¬°VO4.ß•Öîuúœ®Bˆ4aÉ q8+{ÞBT'x ÿ&æA{Ùø³é?)Ë3ft]}°Ë?ü6yaŸŠg½©:€¶ÞˆÌSÈv4Dn#ÃKìˆköKn'S*õÛ½o#ã§Mƃí–/¤|M1Y'A|M¡œ¸‹µA°À Á|¼¤‚p¯\¤ìÞó ¢ùF,C±¹H—DNªÅ>m‚‡râÏCqFU?Yœ¬Ë¹9.d™{×Où{KU ~—Ñ•[vNVV]®‘Ó\¨IÖ$x0Œt˜¢[`ƒ+ùºqiõmF…ì”-Û…ƒÛ.6E5p²ƒ»ö×[­ q”n§>õ©É(}¶Rñü¿ÞúeÐqº×ÎüL¶˜‹W+*ƒj¥²LïJœú$üµc„ÂCÎ5¢¹]+’Þç²×©öPƒ] M¸T? T[í–’Ù,[q,ˆÎC¾¹ŽDÛÍÔ“r} /,­Jk°ÆZ5¡^ ÏÁÛÕî(ÑËç\@ÃG°§ê[|ÁÂ=‚×Î*¯·×XÎt e”R\Ý×OçZÏæ>Q(Ô?™¬’=®:/8²ôû¬›¢Ú媞·}ëÛ ÄÅûÃÉ}ÈUÖ¶tJ,d»%v@`/ãѺ¯¢1mÈ{ËNy ÌóÊqðqóŠÊ#kwrºêN¢ý±f‘üM1ã¡tF[ûø]Üw–®lŽüe’ÁVÑíÎìEØNŸzâ<ß›½¼˜G€#ˆ?v9~ºXÂ:Â’$ª¥ªcxëÒu½`"ü'ƒÍ¢ïHéœÓ çdÞ÷ˆœT€¾Fcg^l!0f!µkLª0c|:ÆeãÛÅdMœ4<€bä~k·qÎÓ¼#:Í‹Z1þéðÞ7uMß‚]'>ªx”I‰¬¦Ú¥Ùå#(L®\ ÀÔyœ$úmTv0Û*ZdœP ÿ4‘’±±fଲòê(/I“ø2´j`*õì†za5\„좤áœ}œ}¦óÚ ê¸KÀc3×-‰î~¥ù׈›l¿ô©Ðpð‡6ÿÞ†bMû.ðþ²Þ1ÞÄ 3)‰ì£Q!_#±M´anÃk«ÆBˆ*‘MÉ:1†÷ÓŠ€!×Zð„mÊþ¢híOÈAw¯ñA‚°Auwo"XUVèÕÊwy ü°tø×¼!´ÚK>Í% Ñÿ=üLÂÚ²¥:y´Z>šâÞÂ#¼6Þ¦ãðb‹yP‘µyMxO)¥Ï; ¸‹¯Sá‘Ù9Áœé×ÿЕ"®(ð䵦ôÚ£ÿM8ˆ•#iÈAóø°*e] .ú–ÞŽ~EÅV“(žø#)xîÑÅ'mfÊ:©vùeÁxc‚Uq±ÿvá}5éW}³Ú´\ó?•I‘d@X|%Ê9\DöXUê` è(ï¤B˜iÑ»–©yðKb ‡téÛ7€§>AäðQlÄhhö\¡Ñ€«#²®Ç«¿#¯ì–¨P¶zĈù 2˜áÏŸ‰üJ\1 ¶Êb*¼úØ-Ãbߤ4b¥RÐbÏ ÖÅ`™éÓõ”=áÂÔ5ß?º0äZü‰Ù ªÕtÿ&Šë´òM„Ü·-ьРÅIŸzG2+$\<9PÍVŒù;†5¥Ö¥õìÿ|”[µèåzvIÛÐwß•Þ4‰¡zÁ@ rN½·äæȪF 8XõÏ?X]n©Ô–2î‰)¿Äh!Î& w4<—. ”Ó7¨$zwV¦®ÂEã:LƃlÁ?áÌ “uÆ ðŒœvû|“œ>RjO®lsSÇe¼Ì»=eB3U(üJ]-â@匨w'~˜þý߯Â%CDQ,k|CüeQ*=Ë¿1¦(ÞÔUØfú7àmaÍyÅ?zç³ÞåaÕ%Ÿ_q_4JAfs5îðB©^“òö„«ý-?¢J¦~KÛr¯tý9è~[üV%ˆ~NÀ“õX‹QH! MG¹{K :'YçKµ«–beo$îLhö5˜^LSlÜ!Lìµð Z‰éFiÍd ÀÒ¡ ‡m⯙J¼IÓdã³[¿€B 8/(T™(º*ZÔì,A¸ƒÂ-¤}ûÇàüJaQâGEÿ vêÍ î6¿‰n/Å{ K½\?.GÏÍd>"B£\ÙÇ¢,tá~ðn®> -­"(Ö,6Xùþ-탕¢ëâÀ¾8RK'°Ú ¡ÅëµÙarRžŠ'ÅøTªÖM-ëˆÔ~øâÛéçÄ—…È"küƒX I®etä<Ȳ@V–‚h† Û1ÎO· mÑ㤣gßÈ_oÞÊ1‹1™gŒx+2š„Å» o~Ò‡bÚHLß¡Vå{"ðK~²b\#ƒ±«t ˜­Ëô ú. xÖâ%¡Å %c=&¹j±9üIî¿iï|¾l ¾|²¦‹Ïwó†ÛôífL½™¼=ÉÏg¶¥úÏ"ÖH/¾úó|ÒXz"íᾪOGy&˜'vcy+Le|¤EÓîO´“uÄ7Þá\`|6î‰,{¹}‚]-L‚ü³¾¯[QjÜ<„g•×dωs¤—HŸÌv¥|Ö ¨,f<4a-§Ä埭Øþ{Ä xåþ—uuºe{û ›ñd,µi€ú©ÛI y”WT‹K³îs/ ‘õÙDÜL¡ä»AqÜË +ï^§8—#¦ ŸA®clW/ߌÃç®/ûy…ÎO´?Ur1ü|¨£~r\Á{ D¯"†Ò¾ÜlFP¡}¯˜ƒÂÁS¡¿# l?*ÆXžLWÆFpcÇ èOÓ˜òpk5­òT¨TýR´LOdƒ_a.jû Ä SýÈ ss¯§ÌL¬ÊÙ}Yñ|xldF´Çšâ˜O›”)ØJC5(Ä^Ò´W§a®çØðÕ-È,&£¬úw-æ“Ì<+97ijjÄøŸQ Ð_„tºØþ>”´ÛGÛâO_ˆ­y_~²>&¤6W ˆ@Kÿ€ôeÐ:,\ú ÐþÅÜjÐ,Û×Íó˜Ò§’dø‘#m6~¹ŸªáÃ[3•ÐaÀ"Ë—DhÈ.ÀÆÎ`’àà›T®ZI¾ë‚,8ãäÈ&ðùR ávü&©Æ‘î=)Pz^ã”úIò#ïÃã•À°Ó$†ðä^Z9ÌSªÓ¢ÚQRÁONL“÷ÖUù©Ñ5`¼šŒqouœÏáמ… Õr5ª;®‚ícÌL!Žæcâþ«ªv£Êÿs¡Ç¸ùÿ]0ɳìtŽn2Ä•5–€p[qÌö@¨çJýºhWD5 ¼4+k%2¥¬tàHæ^2Y‘üKNŠì•(lÀU y=.^ J¼EЪ"û>ÓUåüU¸>‚ŠÊšo¨ý>:áá ÕÀ2~Ú_"?\tÆOggS¼4¨äIgtÔ;CÿúöñÿÿÛõúÿ ÿÿÿÿÝþü÷ô÷ìæÿkÚèäûñÿÙôîðÿÿûÿØÿ÷úóùÿ ÿÛÿRàââÜïæâîüM'l†E!ˆŸ7½ó»šïž©úóRÒ‹õ™Og¥ |lì÷[Ÿü-èÛ~jVõ,¶£rË€ªíÐ×µ—Ò‚ý­®Áñ¨tñ”›ÑS?¡Rµ¾T˜ì ÊW.öË„ÿwAî¯}×E¢Ÿ]âtuÖMX‡JöIöÓî¥{jÂ!е -™-å ¶Ýa|Eɸr·kª¼EePXz@vÐöQhh£ U$èp€j#ÇðÙJø(÷ß+iùyºšÑÕÔ£ ·/Æ<ƒdBF@_# Æþ¬<…dœ`ÉÁ”µ<\ÍXªz‡Çí‡3&õRQ݉†Ñ«:J*¼‡I…;+ žqRüM©ª$Ε‘‡¤"Ànå!P2r3E‘ÅeÍNG¾.•ßFø‡2"Zg@êvì;xg$}ÎnÔÃc>˜V±:òCͼLž:7ûïÞà^Ü~ Ü Dè¦ùV([F„i[Á•g„²¸7·…¢ò‹Œ³ó|,4¯ŒÂ' ÚÇ«;Ò„´yco»_þn^Xw­T%ùÉ9‡%ÿjÞá™ÜEÁ£µ9lž 2¢O‘6×~¾ #õžägSAÅ tnï žm|iåR\«© ‘÷žJèÈI#â¼Z¢­N6ÙXàêsúÖ>·ïT5>¹¥‡ ¤üLÕÓ–ø×ÔPæ¿Ò±ë¦*Óë¢æÔãsåB<ƒè ŽF†ñØf“ïšæ;_ÂÞ[ón¿³å¹-&&³ýáÀ­:ð¤Ê½½Ÿ®;ï In“OÍ”™q bâÖÜ0?ÁnÉ DÝRÊA•ýc¯zW_ò™_@Ý©Òq"â9¼m+’èêÁ!¬õ†Hkð—ç6_<Ê™^Òs¡5”±/=Nç-â+ R-$ I~S(ã’b©çÃÛœ°=9'S3GF#GEœ´³!GLš?–<:OÙ¬ÕÉÌá[å ‚ípü$ôQQlXÙqü.šÊY@#Ñ%ÌtPhåæ©TÒDKR®¢¾kG­É1¬ìÌ'CK8±rvöwñæ.÷o®)Š^:-°Ë/\ 6Ìe÷ÑŇPЪӛU.Ä«¿ ­ƒÒðð¬Áà}Lß’ýѦ”ö_Ôä²X"î%ðFúÖN7>‹.x¥ë—:†›Íž0d%‰€Õc9{Ÿ…•|à‘†Á»^ MÂ'F!vÚÍù¿e˜9ƒaYgýóçxàÓa¯ƒÑš::^“ntŽ#‚>¡X!ÿÀÔƒŒÜ=}Ö@y•úƒ¼™Æ¾„D{Ž:óîÑ®3:tü.üwîÔFF¨ DMh|ù+J¥ûèÛq½"Gv‘,d>“½•Ìgðט=û(Ÿï^A‡êíhvRÆÊ]^C_@ä4“MäVS½ŽµÊÇ7ÿ:YeVBüÑM÷à!}µ99/èîoU‰EÜ>ùMâ ÏO9\6ª¥ž÷ Í\‡|bÒï»ÏêVÊtûpÐ9¹Àñ,vÑ…ÌÐ<6PÜ 2ó/áG–ðë$z>çÜ€¥wºjè‘mŠ÷U€À¿üuÇvû³ ,Z¢mÉ£•ø DÅ—Z‚&‚‰dÊÛâp¤°—¾7S±ÈT·2ææö,DôÖÉ"'ý·ÀýF:vÀ}šëño|ü|¬åçƒÊ­ü'ÇÕr•á;,b_ƒÌ­2³1¹ ßTä½j­a·G}ÃõóÿãŸVºržºf~l'…´1u§ï?G ßW‡ìˆ†¼]M;ÊpQÌóó®íLú¹óÒG³Æñ‡»ç«”Šá¢VÜÕ•”ñ~˜mõîgõ³ÌãÎíÀi]!³an7dª»8Ê5´•«½{æ}»ÇBgú÷ ‰q"Ø ‰68‹(südìÛ>„þ͈kGDÀqHßx°\Êtªû\a=FºgÓ[°E*ÃTêð0³“º³ö&`¹Zù‘gT5‡—é ò‘[Dlöø0t¸"x½·N>Ôm“`öj„\$Ï­|>i-†«ù¸}ï×í×0&$÷Ògè–¡•smõ³È :H\é+ü5ê9ã)©¹ì9qp8O†»ú7êI•’ÏH—¸vj ‰Bé) ’hõ®Ö × T”Ï¡ Rœ|Ta9ï¡0‹C…;;!UWiê¸U‰I «8¨‚e Lñ{,Q40i¥øw¤åà笠Ýw£äØ«³Oìü÷”˜'\¹]¨°[ÖØQþÎWŒûÕ«Œ4Œø=vK¶4”—èkÒë¥+.Í“&´ΙiÇÌ üM•2$íGæà½o¦:EÜ“r²Œ7éw—h#\ÃÄâ èŠ3˜‰©î4Ò¦L©Ã_£ã…à!”6trcp”né¾ÑÃZÇ—Ï-ôŒ}R–òBaÚl=§f;’jà€ÍÏö”sÄnGýœØ4O+ûAö×][éÃÿë ã]~5‰À¥ê¨5"2Ë%Báo:Ò·zHŠÖÔööM]/²Xæ²× ÇÝt9òUÇß“3ÿÕ¢…¬:Šêøî6‰ßNzè¯Ê]·®nÎò£ýÆMÑn2×^<‰Íh…à>ŒD¢8Á}»ÆÃäüX!3œkþÿ* [ ±»m «×GœlÐzzs–R30DíZ[xþ¦Ž™ä”å!üôDh2RgGn ÝûK|º˜åøÊEø:ÿ’²Ìˆ Í[‰Ê°¢´4’G÷¢&}ps[´6þ˜ÛÝ€ºÍËØžŽ(Î5“‰Ä |¾ÄLá /1K”¾4úɘ‡±f¬~so‰QA¶×‰¥') _§œ,œ;ýŠ¿ÊÁà*}4®5#1 ‰ûYeI„`-cŠìD_Tö*ÐÇí*aïi¢ÊyMM×fNç‚ZDÂé1R:àJIöÐT2eä¢, >Èê'¬Ï[š­F_Q«ü¯ûv v¯%'TOô€G$Ù²¡»YöF†›ŸJœ åZF`ÏFZêÝø¦+vAÄæˆ…¼J‘<ÝF’/”"‰¹«³wrƈ¾]ër®ñö›ãÁÖZc!æ4|¦äwJ@ ý*r"ÏÞ”ÙËèæ×]*+€³’óJË¢•ޝèû¥õ½­&ÀÙJÓhüôÍz ó¥uxXÁ†‡2€ µ mBYóµ®3^V%Î ˜ bLö͸³¨iyMbÕL—(°šÊ†ôjC†|Xì¢CÎ>°O›Ðº:š14\ÿº´6”‚ù‘E³ù cr_ò=ŠÐ°MÃì诽y5j É;5jÕÂçgZ<’ü¯"˜‹þô À€^dm­Ÿ’~†˜/WSQé%5Qǜ۴u)×DKtÇŸ•³›Â8[Ýþßo¢çŠ-obÉÊÇŠ/3·Ã(¬YÜY­ÀÚš»â¾ðîMJ†ã2Ð0 º†Dó´{%²>h¥ÕC¬ïW¿æLÌ2pj«ŠªÝ;[rñÜqp¶èá«]S’´ÌØñ«š%v”éÖÞµ[ï¿R˜ÊÈ­%€™ˆ†Ì’j5 IëAX BNt2ÓD‹€`ò›MÞO𨢰œ¼$Z­ªÚxý^£ë«Š±Úó!JÓ¿<;|~äð›ÿ®^ç …ÍJdîaÒ³,ÆQ*ài9W”Òu Ó¾=¥‚=SP²Ú’üJTå$^â ϥ˰ñÿÈk2dp‘ÈÁwžM¼è{jí]F”6>™D3O_9½8Ñ«‚%pUiõ€©e°àPl4 ämq ÐÌâo)ÉCÎQ ¾ B²Z *ý¼W|µ‡#ŽE¥¼|nød*w×!NWоìH}íëW_<6ÀÚ³—hìH_+˜v"Sãq¢¦«BÝndÈ ¤Ý`ÌŽ²ŽÉîqÿÒTòæéÖ®êž»ÊÆ‚2sæê´ ×Q¿'Gîìk‰žÀ›óï§Ÿ ܵcûwà ŽXµ”8ž·£\ÛKÀŠ_#³$Ë^}|Eµ»~í­JDû/O?jG(‚~×W•!«¦Ê‹È+ü.övyvd·Euôxp¾yòºZ¿‰t#šû ÍÑ="&s˜CÕÙv0g¾½ a¾Ï4ÏðÄβxQ˜ô~³ÉÅ ÇQ`¯š¹Ç0¹‰šÚD ¢õáFãŸ3{<…«ŒÔ]k•®' v”)Š}K–§Ì¹b˜ÀDÛ”kºñsyôçø3W—À€WuÊì ò«êà+Ã@-÷ a|¶üïÝj¯kÕ3Z­è®-H,}ÛL xãçY´9ÂQ3³×UËìURdå7˜70 m„Öû·YKN_Ý.1¯jR]êt‡y´º³šbŽþòA гêõ|0oEª\¨«n+fsmfuü|’ÄËõ4(Øòް‡Ñvw|’˜'¼/¢«äÙž7ög¥Fƒ<é1àrÒ›¯9,®­.-ùK01=—4“2bç/°?„´³¤Áš€ .T“¶Büœ…¼Ý&¯‚Zá°•áí}û†ÉàéqþP£½¢.Õï3EUî7ùs—RFÂû5è“MEøm4±É?.@ ˆ7÷ƒé±c"¾Tá7^²ã“%«„XoúVTãOˉ\q á·Kë§l†)5NLƒAPnÈ<¾½yš·mÒzBàó¨GBãàÕ»¡ºÀ)ûW—nŸC]'ZÆäˆu1ü(Ž}]‹J @&>°nõkU»ïòŽ+1ÚÊü©…ƒc£F^ ¹ô q]ê…åc ZÈÄ:”îaÔ8”x-Êl¾;gO*¡©SÏOâú§Ø5ƒXC5\ !Ò`¸—e ¶ðîD~~ùÔ¢ð1S0e þ·¿ÞS p…+2t sB¬FÜžiÏbíÓ¢E 1iÝÝÚ”Xq¶?ï„^[=Ò2$6‹·½ w½3(ÏŠÑØhZùT£ü×e©ªÞ—w;Ê‹ªŽŠ®‹›mÄ]΃½Ð‚RPk6¯ŽÇ5gØþ;lœÿ¯ãAÿ½§žp9Ã=A¿À2üL©B‡Â2™æ ³¡z›Od¢·–dlnç [klŽ 3N%¬õ ß Óø2[\+ÕáæEØVd–«¦Í°@ `<çtå)Ƚt=u´÷r¡Úà¾ûèÚ§åÀæã®Ii‰TöÌe¾ÞÔÚÄ|_mþ+¥ÿQ,†LŸÅbãDòc湚±Šyš¨fB¨•ÃŽÞœ‘ãGŠYwVh{œreîÈð%ª,MâHÇr o%ém‹WÛoÄhq Ð4‹ëBÑqN:2ÃØc¶1qgoˆá‰Àý§SŽ!Z¡“8<ÒÅÈàþ'A59Æž²_¦Èü1®*ϱc><¡Yäܰ—ÄòÚÈúЈ8•ʱˆ3C©ˆú-†yïÈi¨7£Ÿã§.Rcžø×RoÿÕu¶ÌX¶ã¸„²0Æ'õ?L@úANÒ¶lÈ~zëuÅ£*8?$¤qL™¦£¦ä"€ØÿòºÍ‰¦‰ÃäôÊy,xõpKXü—ÿ,×xø‰’vçª÷ôoÌTæ­ÊL°Ž¼[0_â$ ŽüÐï„OŸ“åÙe¯KÌÀéi¢mžô]îON®{†ãóù“¨Ot‹Z€Õ^)š{©ºW-ùõ«Èи»w$L§d^|p¹h¢CvI:îýœyaI“©ªÙlÆ­Yï…q:>DÎb<ƒî¿K4ãwd~ÌÊ.v”gF"²T€¢^vQXL.}áàφàû< hÊÈÆrAg=L^ÔèÛŠ"Ù¼Ú×7\{ Ì8‰-.ŠÆ»üJ]„¥(m318(Œ¿õb‡¤“Ÿ‡=kX}zV>Õö!¤åï¿}R˜]¤8o#(Á¢íôï­ íÈ6þ\è±A>¾Òsf8ókä~6ƒÞ˜eâNŸ  - áNÏÌ=­®Ý8îîëtÔ@ºó‡§>ZÙ o&… )#ÞãÂY»+‹`£Ào%ІˆØe½ÇYÖÁ“žÛdq¾‚äz]lîû—b EóÊ\É=Ðâ köÆ«?üïMCý¥¨æõð{£0ïh42[koâµêE奔҅Ÿõ_pýÍáÆnæ;\vŒ«³êœWA¸ü.9 ‡×5ü-#,¨œÉŒªLP;‚²g1Ácß³PJ+:{u÷dq cœ%8ÄVQ†·7¤C"†chî"”%‰6ƒá˜éY Pz!P? ÓET€d ¥MªßÍ-@3¯ÀÛ å»”5Û…ó䌴YZ žö¨ÞË–¶È€¯¶—ð½S‚;ô³¾!ãØˆ­Ï3ío[Zä£A\4ÉDëŠ÷[1PX!7?RJLïM-ÚÛjðòR·O^]˜ÈX‹ù* ì‹¢âz‹PÀ1ŽÈ~p5’œëŽú…åÿ‰×[ÍÍ—EÈ'Ê;këeŽeÀþ4A©i Ý+€tBlµÔá îMn iíJ®Ûµ4z6}¶ˆÀÑ5|HoÕ¼9îÌÔ¤S_ºmÞ¸C A@¸¬/åÍö”n;ÐÚlýèTÔBÓWd¥qùxêl°©LØŠ’\¤×wÂ62«V†ï^LÞ&§Øwi¤>¸~ë£ø`žŽê'Ã?iâ ÃÎ’áÚלnS“øJåü®&Øï ¡ Þa €ÒÇ×µ*üJ"´s<È~Ýï§âc~>n5NŽßEðW­_ÌâôŽó¢’Ø›(eí'x9åb¯TîÕž<ÁrËùŸI|Íå.¹šZß/õŒ»*·ÛùDî@rxð¨nšØéy£ë×Gú˜[EˆHß‚@#`~UÀ*"'UÖlÑÔ¹a OTà‹Êº²ì'ÿKÏW@a–ùûênÔâpž ‚ŸVCåô’éNVzÁÚ¿Ý?jzP /œÈº?šªi½E EÈ—h¼Syl™pE»"û$KPRÂ3üLÅ#„ îU åMœsG!à ‹s-Ó“q¤!™ Êå|TÔ†Mº­?¦’;{Ö?”Ä´ÁKòz\llP˜ÀšZ¦$󓟽šL6P•æŒ~ECr„Š Œö²¡ —¬,çæ¨$虹[ s¼2Š ·ŽÝzDBl&HGŽ»,®Š/7`¥ufŽ;ë ±Rt¾uˆzÉöO,)Eˆé<ñègýФ ×.þÊœê£Ñ#û·'ÊR¨`è&£Ò"H=îN¡fk…ýÁd~ƒ C;8º»•i¾Qû/Çï‹¿ 8 o‰1üM#&pfJï’°P(ýG8m@#Ñ¢J”Dklý+¬oŸßèHum¹ˆµ°“ ëi³"qôÞ}wE&cêLþ¤¯º+ý)y‡yå‰SiäÓJu»©émñê³õmµ©Íð£‰ðÕç~àH{‹#4–o‚±ï«?!-æ ¬±DÍIœB¬ð%ƒFQÓ\ë\FŽ à ”U¼W»Õ8?. —BÓ<ÕËCXñ™ìdûÇØcñÅësáXâG‹¾ÊðyËg¤RçäkèP†¬?z€÷-#d±cÇaŽæ¥HØÌrhüM¶wMüC¦N¬³”ÉÕ¢¢Æox(­J=1=1£¯W¢R¼½¢Î’]¢ÓòJ‰7(%ž™ÏØ ±¿BüfI‘1â‡ï™«õºˆŠËtÌ—@ ϹÕÏ„Å+YŒâ7íg]Ûˆ¼W¯™Ð£RµQ0ëf¨ç8ò€.@Áú:ÚlÆ6øÛí”L1©òCà'™£ x©•gï#NF¤dC2Õ" vKÈ­u |–\Ý€ôÖÌÞ¢SG&ÛþžYü¶)‘”šÁ^ Å0iljA$çP‹$³vŸÚwi2~­Ý¸*ÿ\nPŒ‘Eö¯.€—…ƒ’ü°Û¬àÇÍzÿ§¢ûv·‰™+Û½z¡³¦VèiÐó1tôÕ/ Ó)ýÐq·Ã)„7íçà r”McÔY»÷AT¹m8!™U™6Ã:‚0⛸º=6?×NºúÞJ‘|#²>B™®@v`µvaRn^‘.È«¡4íÎê=™]²´€qš/ü|!ÒÆ80Ôý#\0R8 Ô€®r[Á;N"Ò]o„¼Þ\—ƒ7 °ìƒô§!œ*>ÝàØÏ$„õ¿ïIÑì…÷6á3I»ÊJœÿûd?YmU’ÊY[8jÝä>ôB70© Ûv+èìÁPSü|¨£¦ÌÂÊFä‚zú9ŸZþ‘ýA¾rG‘}sk,ƒ;‹ÚûF—zx/—«È9؇G˜„=õxsîP¬îOÌï$cD±o9¨æ°ƒ¦ˆn:.q|·Ú½A1BD’"rÑ!u%Z\ðŠŽMËO¾Üêá4ÏT¯ý7õÎì¿P«*+ìÑCR•Θ³œøtZr0Ÿ¡L"ê­ úâíõ˜³Qø\<Ù G8öÄPLj¶yT8À¿§…o-gz¨zàu ¯‹ãÔÐÌÄôpïÝ%†¥ÆçÊï­•Âp|¶?8£~ _‘Ö¿?kÅű}ÞÜÏØvÓ4ZÑÔüRkƒ7x«Ì#æOÙ<38Ÿ„V“èC¶ûiMç`÷Þ¢ˆ<ªÕP-­„Áªí¤ã9ݬ’"eèï·:3üÄ(€i›08Û{>:¸/ÈJ•hêÜÐ1õ¤¨äµÕóüðµPТ¡ÍÊТe.¢Íë§K€S›è»gùf½–©H=à–ôÁeÏÓ¨Ï5¦œº 4ÏE»„žësûOz2x"z¹Ê¿wü¶1é¾èðG¢›¯è\Ò«z™ò^4a©Û»Ë]nW÷‹6Vv#!îÚ F*äRÝÜ ±Ï9÷Å!–`›Ñ».Ò–à6‚Žwœsª–ÿ:•XŒ.þsŽâèêLÙ´õA~ "–oªÂ\µßÉ{2• œ¢ê¯è (‹·2e²!/ó:@£’è!eKÖ Š/…e)xå˜QÃâ2xôw’KÆxbÚWûWºÛi‹átúŒ³ôÒ@ß2܈VÔ@îÌáôqãóŠ•™—: Í {ò &,–R”i¼}4ÕµÆ qÆæ—.!].òüL©£ˆßqÈÛµÒFk¾ÍLj†’ßÒÕÅ­GÈ“#Tfé ”=II¨ùÙuø:3°ÂL ¹Ñ£¥R¬îÌ‘pG¯rC±ö¦´ÕÛ®wm4ºOÝÎaô@¥¼x®ô5¸Ð¤×„ü{Çe´i)+‰ãóbÏ|~ŸS¯ªUÎ 'UªZ[ùªcB—­­Ç ‰MÊG>Èy™ {½ 1ÈvûR ŸsŸ-¾¬ô0jYõУ“„: ø†¶ï9wœŸö”ŽHß=[Ów†õ$mÄÀ@‘è⥵½%ž¼ sŰ›r’ùÒ+?üL­™¼¥ãF~>­Ü/®‚¿G3+-C<ì“g3Ð+´3¤j1Ê>m½åêÒÕ@ó÷EýüôDNе*5BÚ¡ÿ¡<ëõ?…3Íe¡ê¥Uø‡Ò]€ÐˆPC´5@¯‘Ö–£Ó…™ jÎ#Âì×ʵþ£ö“ÏuyÝ-À–bÎy uc—8;ð" Ö+d‡¬äá˜éDHLƒ_ ,~¼ÜP]‘ª»gIÀ¦{îG ʃ،G:‘®ŒÌm€ùcEö:««D»¼¤û/üñÍÈtºÉeXeëÜ{Î’ûÙ]?·…7ÿ¦çhü›ÁÿÑ£I²ïg­…- ÖkÂ×czœFŸAuŽ佩ÌõðŸ\ßb¦4@«YX¬œ­&%’¦!øÏ^‡äy½Çl<ÐnGÞ›ÈAΛ§lø ¡GMztåŽ~õNÊ»Lîßy’S8åÓ·—˜ùï':·†¦fg'}>™w‚3»°Òìu#¨¶LßQHMrÇÉÂcέ$"àeÊ]Ž%d~ ¹ÿÈWoç©ÁU²BÓd‘äþ ÿGYð.Ø ]Íÿédr|•I{Œùw‰êä5“'‹ØÌãÇgHZÏRD+*cnFÈé™’ ùPUƒEØyüI{ ›9péæ2d9n™ÞÃRûÃy…zˆðÊj?ø¦Š’@H/Ói6@›È‰;ýø-f´=*EÞþ´\{(;슟«åx…a´'Q×68kS¯Ð”f=!‹¢ÛQIŠ2@ž9gß§±Ãm(\—µL» ÃèQAŽT¶}Qe¨TÞÂ2{"íÚšrÀ…h–„ÎâEù9? 7n G;$Bˆ "••cý®Ð_ì‹IÕ„ÏØÍ7ꔑ†sZtqëæ˜¤i®Aç5¬ò'ÒÙO¢ulÒ›=·¦Ó•’”‰_ÒÓõ¤/—)*µpôx›÷AaÚ^²!â ætJvb~ü.‹œ=¨* Õ!, NT>Œ‘Y¯ïXoaËÆ1…, Ã>Ѥ÷Înä[Hã^É7ì æ-ˆ³;M¢›9¤S–†œÇ_å©äø1  m6ñõ×U…VïÒ Ä×» hçCXÿˆ?)0ûÉ šm2!ë2çAt‡O.˜ ì£Ö¢Ï7ÕCê#'Zº‘Ú°J?¶¡4•*•“ä~Û#çOPHs±9?]’FƒK8º(àÂk&»§ùOèoý²ù~mØúœ¹ÙÞ"§¼S1ñGÖ5TW¯´Å¿©Ú.õå}œ¬Áñ <ãÌ)è%2Wvü|®bš#Ô˜)Ÿìÿ¤)›æ5KzE?›YêO…¡Ž3õ±…oFšòÓ¾KEï¯äPa5KŽï28¹x·aŽpB²n¸UšK‹­ÓŠ.Œ2Ò¢ß1‚ÙÜ{Y2ôY.öÿáFÛEý˜D¬jy516Vw'Æ'açËŒœ¸BìÜ>B$¤„Í’PèÔÕÁÝè‚/+j"‹¾¼Ã…J„|’܇ÜëZÚ`²/ï~éÌV Ù?¾*d¿ $¿Q¿4¸u·ÄáhŠÅa¨æÙ|N >?;Ê” ùºËjüX·3Z|5ú‹@:`©¬shZZm330@1æÊkJÚóÍúÏÔgï;¡X à†2áx°PZ¯á[ÞõzÕr«î°ý&$ðlhm¸…ãß½oa±çú Ã] ˆw…°l¦Ä ¾;YóŽ«ÃŒiGL¦ƒ‚^F6 U ¨À­×ç0~õ‹W¿bûQ|§·v…u™ùj¥.9žûW¿qºàå5æ÷§Ê„J'%L°eÌ¢dÄÍÊïþ’RíŠøŠ#H»¦Ja±.™TL ÛL¯¿Û³ì €¸/¶Y£”G²ÊÚžÊÏ%…ÆEÏ1ƒêª=´»MÆÀü®Î_¯„EÁ=©@•^î!9°\ío°éñÁ ªÓ/QY ©°áæŒ0ŽäS¢mÝ>•ØÂ:‘oT9^³À4‘¥l‘bm™Á€Ã¦³«'"c¨~‚º1nN3ÜÅžQ9g]‰ŒsoƒEXm\èÕ¿Á(›Z¯¬YëÅP¸#‚'J°w§U&4mwx~UbÜDoñH·>Ì!'ŒÎúÞ¤;#Ñõ+Y³ë“”wŠ üÉ‘éë˜ç¼”x£¿x *o€k›|*)PñŸ5HuïAöbU¹•@#zÎá±aÏ MG§)…ÄØ»¿!sÖ;ßÈ2ûíµiWÔ’ü5sSJ+ü“ S7/Í JéêÂh¹‰"9¦Ë›tºÆóõãÄBêJwê(KÔüùeÒœSf÷ 9Á9‰bX^H$ìÝ ú!PÞa;ÿžÄÂø:$=½N8ïÙ“Ee³yqM‚¸Ùì>`1~å¿‘¾ÿexcéO¹'ù?cÚÒ8âÔ”‹Wã21ŸË~…SöA™x™: Õ™)ogö`¸Ex0«VZt}pÈXeNv}cÖûÁ¾T “ÓSû6û¶k0}Ç,éB¼™ býSŸëP6#ÂÆñþxWöTó¼ÈMÁÓŸáöˆsƒ“¥^˜LüÙ3ûݹðÓï¶¢¯ê´:ؽ°DQWÙ} > QzD‘«Ü(¼úörhøë´+FqQEŸ8µJšŠf˜¬ô¾ *£ ß‘+íú·ÍѶw­F  –õwŠ“ÞpºÝ´z¹î"@o‡oË=‡ëÈV~Ô8z<†M’F±œönö Æ¿±î2žàÝýN,ðÙi}—‘œ#ä“$Þ8€_ÛäÒŒ{&Ž«~8UèÃÄ$¤þt<¥]½¶ý¼oÇŽðeñQuíVáâ9×0͸ƒX°°Ï«J‡éÿšs×ng~HI3î÷¼ÜßVä\Õ´X0Lr¶2êIü.š«¶ÕøÂU&¿\ø„†¯@Ý7Ë_ïxÍØMÛCÔ]/ÕÀþh¸OŠ?­KÝÔ(Xèj8FÿÑÜôžqZ’Co”ÇiŽé¿ò´\IÆ%~Ö'U®„„­ÝG>Žlec¹Ù­§¨Ž,f`î—.=Ç3ÄvÐΜ¦ì7è*úÄQù®¥±µv× U0 >üd ¸71¸öº¡?õa“X@‰ ›F§9¾ ŒŒ·|0¦^¸÷”å´ŒXC¶‘1–ý7n®ÀúúÍ™ì/u5-@ýÂKU7› 1ê@a½Œ6^¤»'Ø€óÙ ü+ êy*¼puab!wÒšäÔÈOE![´ü|¨ óBv®1µdu&vR}àÜÚp™=o/1¾‹*þ\ ï8Þ|Ì #=LGKr¯J5Ç?UŸþ£ßN/ßX‘&ž¾•\˜2}YiTcöá`µ­b ÒnêƒÓ’|þ0Ÿ&5–ë)Ž—í»PÄ›ÝÎ%±«©~N·¢æº3‹5è[‰í5TžÌÅæ9ô–'ÁÛ¯ã…6Pœ¸:œK‹ÆÙÖ¿­Kj44½?X®jO«™A1ôÛG°ØÕ1§‘ãyâý§òŽìë²A}0¶&UÄžbš¸îdhÛ;ÿ~=|œý‡ùÛr’í9¸x¾w´§ï¾OŸ’QŸo‘𬸌],$7=¡èâ®?(˜|_Åäêã~Ggø(†€ óî‰æPà¢ÆrY¥ÑRöf¸*i‹à[4ø¶¢›³ž&*?reƒè5ðžhÆŠî5Ø{[$ؙـ"e;Ƶf_<¯ÌV¦1ÎT~'Lp5Ã*s[˜³Ð-T`ñ¦ Èõ4®p>½õùÌx¹0—ݸ÷¼–ӒƘò\™v|Ñg=]1GÂó8!|˜OA_Ý.M4QY]=§—o|kuŠ¡Cù‘ͨ,!BVß¾ÖMh‘ü}\¸:ßæÛ±mˆ 䔑j¼`Ñ-At¤lîô*ÞiÜ1– ãàfémg“š’]úmõ9ßå#0*‚a ±°£iGEo¦aW62:É­V7 ¨ìòÞh%ÝÀ*ÉÚ½ul„"]Î<ÒrU\^é2F­QA jˆgïô¡„ƒ}m§Â¬ãrÿÙzbô¼C¨áµ¶£_B‹çبùØýCKÿI â²ZœÀa~Pp„Ûn*ï¥# -HT€ÍÁÕY CoÆPè¡–Äø_²´º_ÎÈHÍX5é¶Ñqºë«¹¨=sòK\§ÜñäU1“;õDí|•Wî|a$D™RÃÿø[‰û²\ˆŸžæ¥ͺQßñ¤ÏÍý×€`¡™`üj¢—æ£Òø)B¿1Ÿ*‰xEfþØUõ6m‹þ®gÝncô4Ó­¿/Ùü5J-䌃ŒU ÑÓQûÍòš!y®ó›xðôøøZ ò1K¿ä 'ü$&Aá¡»gBcß00åkÇÃD#”«iÝbl'ïB’"ÜÝÊc9×ñ²Ï ·×÷¥ì&BÓ4WgÀªôÞIÒn°®ÂîEÇ\wrMÀêæv(Ùű*œ'ï»Å–Z0Ü58NpP‘°æädB’Tõ|ßÞªe/þ¥Mà ³~ëµï'v,Ò B U—6-¼K¥š§'ÿ¥ ÄÆA’vðRcŽÍ)¿î§,: ÞÀßÜA&]'ŠSÛ-I«¿›ãN#E²“üKü›ˆ™îU&iS–DTaz«˜J~L”·È¡:ûžøÞÉUí8˜xÙÑ$I†Rù h/ ±±k–:=Á#A|õ©Ææ¿›ºñ—”TeJòW!@2¤’˜ %×)|0m>r}ÝÿÚ(ûÙÖPÕ[½ûCñ\ð–ÀχA“üè×þበQ˜${«]6ß ¥¸Zë¸ R¯í`ØH¼ç!¤5‚þcø˜Ýj ØË8žÜÉÕÑyµ¦a¢o±È¸Y#^;Ëf<)2¯¸"]~œ`þßœr»Yªä²6‰?üK »âZ£¥Ó›*yÕQ2hojàgûÜ}šÒy{xR|D‰´Î÷ºÐf)0GhÂ+ } Šcfâ;T7¼ê¢Š°ÔJ ‡b'‹sðèéH‹€IÍ…‚[)rŠ‘Û‚ äëݬEW#!SØz ¦ ñ*øx^ý¾®”¿ ßù{Û}ÑЪ[Ö÷bÒYY螺Aìá ¬mTg*Õ[„êjµfÝq‘—Äo¦‹·cQ³ÙsÖ—A VH‡ ¨ZH©Ò` yÿë´ü—Ís–õNAº9üMXÊÒ®¯E >BݦD•—ç¥âkŸ”ÁÍæ ÕÅŠ“ÔXd×_"ýÆJß­‰¹_yƒü<Å£æj©hä’ÌU<àLÉ®âÌ·¬[Ãùå·xˆ¼ë—ç&U?h BkŸ>á!4±¯êà9Ѷ¸>¾#¼40 ·‡=w0  ª˜ühHœ)ubícóì_ÐG`ÿ#Z~„*áÁG“À“lµK§ÜÇìÀ+Ÿ”Õ¡¤òůÁgWá Ñ«¾ёڢl3^[R­Õt#Py¯C”ûöñÔŸ³LZ;Fï(¹û'¹Ä žÝ¡·"æ†pª†0æ/·"ü.øyîÒW‹ú¯ÜY% d³Ü‡æ¿>jC'ñgûãé!1ÿ·.‡6þ¶ñËù`y£ñ\dòà4uóa3üª)S*1‰PÛî—çUJG·¡Íèâº~#ÊŸ.Ϻn‹kó8N€5u¡`¾ %…èvŠŒ³Ìp ^Ïï­nNʇf?ã()ˆ!µ©tö©K†15Re±V7t Šàv¾ùݦÂéJ'(Ødâ0#øã ÉîxÈöps X3±€¾D«ñÁ©¾Z4ã&ïŠeq¾w„ŽK45¾\ó„¦HÐ¥„½ñ¹c7¤5Ñ„7 e›ÿ¦KSÝa}W0-ŒÞa…®ðwÆ€ÌÏÚ×ñåãh›n…)C2™ñ€š±Ú w\ÈK ;W¬A*ÙnXäGoIV¦AËOggS€w5¨äJã@¼:óîõýÿpõçíõ÷ÿíÿÞ×ÛÚ×ÞÿUØæãèÞÞÕÞìúôïñÿHäöýÿö÷ÿ]êæëñèÜÿRÒÔü53Ñ¥åß³èÅÇJá’5øk‰–c×(£…µN–ÔJеxC>-ÏhIáÍbÖy Xó\KuÇO~4LÒÀî føå¿NrÛ‡¨O„-‘ÙÉ@¾¼³oCY5ºV %iÒŠd…}’W馊MX ­^5V8¨ý¦Ñ ´§xúMßÎÀRºÐ95mß–ê@6FAšËî»›eðr]¿± ø´6›éûóßÚÅ„â˜<_ŠÀ£qfÁ«Î#’¬¨IC É€í&,chãôj9 •æjèž¼ÊL­6HÛ6O“:ÓÕl+Á>êüI}M0ßNò‰IfÃP©Yå¶×œù±’¬ÄФm²³¼zà4„%\lAwNx¨2Ù° Ó©A}نǿy,¾ÆËçÂÑðÖŒBàp{loôéèuEø1(¡Ý zø=S Ç"Š®¬6=Š6GÆY;ÅØþE]d#a˜1ÑV<±3ýŽ‹IA®jƒ±f¯¤8¸t"ïzÿ.„r¼J üã·…õàÑXÿ¹©‹/ |3¸%¢`ÆLÌOUZ"ˇ;ñE«‚ÎÑD® âñ5d1‚OÕ˜L²“d-©üIèIˆ[)DŽ[ ‚! Æ8 4Ó< ![öªÙÿ+N¦î¿Ë‚(⻥Ír lÂݱÏOÌB‘ îtH‡+ì;§´ÑL%É}„l–;žæðà§d¯‹@%ßñ„˜]7b™ÝédÎ`Ðo£l.àÛøÇtLUܽԼª9¡ìÁN5]Õ¥3cã”'~Ý‹b)Žr(5‘Ù'-?Þ¬§ %€üØëÏ¿C”»N]Ô_Ó½.íÁ´÷†][NøÊ]cBN-÷Íá#·«ds• bÈ1Jw‘f €ºL/­ýΉ»6œ°ˆ^ôã'm™¦ÉØbb¾Î¸#àPü|­‰0ãJlø3´F}¬ÄÈÌ7ï_T÷óOŒ¤a©™wf~M†4š¤;+¾fR¶)Šî-W”$“Ú³_H³C¿= ä;ý;xl½ïɹt° ÷Àíg×éªF©ø†D¬kœ˜å±¡ÚÅóøaÿìàPZ41/÷UÛ‘EˆÀaEÐV±Œ¼5MÌ®&§ýÖùP B:šùy¬0úøïrîÚ&8[îZÖ’é_!p´Cñ H—‚§9„}À.ÖGl:<ÄIx°j<­W}Ä*Ë ¤¡â€çI(úÙé[PÞ,'þ|Íú Ð>í´¬"ô¨´7¥%Öºp–´NÄ.CŽ–ÌÕÂ’MÿXHË „™I<“ù¹Ôg~¤hžøÎy¤Ô´r!Õ >%õ'€6÷êÉ×2û³"|PÓÑ81‚ª ß;?d;wzˆïdÛ6›lPS×Ñ €^üÈÃW”ÒM߸±ÁÝJO’šz,‡\|*üJ6¤OÒ„5”>§B7ÇÇÆÏWÕ´÷u_Å7ƒÖÂço)Èí.,3æ_µT@%X1ck©;'“ü$rïZY ¨ª"àT\7Û Ã®tmgî ¯ùÅW%7{V3o)æ qÉ,ÂI‹”Ëéúˆ0a¤oëøìIˆme¶SÙGŠ]%œþbî$Zë‘ÐcÉN¡â„“‘Sߣ‹Ü„Œ¸ ®ªPP¥çR¤Ø0qƒ9Puö˜ÕŸô¹E¤î“5½)’_á°îlù»^ít,ÍD*y¼X¹ìú ÞÚ/£¾H‹¿Ós$n.Æ´ÛÑèR+SÈ•`üL¼@à-ýKóŠHã$èd 7SWo3~OÜQæg~ñb2·{BÒ¨õN‡7iÐk{/þäítì…žÛךçúe¤ÛC@VSbÿë¥óå&tC//2¿6ögì‡NòŽò3T³ü þ^Øí ütîô'² ú&¸ðÅöºÿÀ÷°Ü(¸esŒ¢‚õ P`­?£i÷„1[û¤n’äIÒÀÁØ{Án©îêÊn€$xøUåÃ;¯ÈÖaâÓš47´œ–§f%´}¤ÿá»óÌQIQŠý% ãd¬ÚV°û°$üIè.§uÔR뛆2^GŠë溣HEÜàôÿ®eóÝ]ÿí–×D$£$õø`æqYi‚ª`úêTv\&@TW)(A1¬Âe@[ýŠã`¶ -ØÔÔÆŽêüMš(÷å´¼(Öç’úùD~8£O…?â*ÍvušŒÚ\'¨˜u¹–4ÙÖ- 2~Íj#*5G ‰=PRìªeB¬8@.w  ã ÑÑßÝs¿¸¢=Qº5[ËÝ EB<­ØƒB 0÷9ýMåjÏ4U›³ê,íЭS¸k–ÁîêÞ…ðöhä»±k»dç# ËUz„i§ëÙû-~ìuD]òVœ•R2KYÈô· AÏ×>ß9Ë4€Qijš«ü óxßlBމÍGp[bà_,ê=WHÓ»ÉŪ½¬+L‡®¢ï·jZ?Rü.K}Ĉ§3|S=Zc›×6Ã+oŒ}>8¦‹§ÞܧÉÓn¨gËÛÀIL#•Iêæî"TosÀì{ƒLAþEHtRÚ¯@µ=ª.ö½âS•¹ÛdY³†5,ö‰ô/¼YITéŽ^ö@k‚­ šÔmÚŽs€o®u-?`H~' ÿû£¿Š™?åIkÒ'ú‹¶Ü÷½rÀ'û•¿<Öpp2wé§ö‹WŸZ›Û â®,Q‰²ˆij€þÂþuèƒ[ÍDØ÷in‚@Ï8ܦÁ(ˆîMnÓ>¾«Swã¬r@Õr‘i•©ü|¸aÁÓÕ ª?ÇL‚%a*øzVJTd¸Ã©'À|Ÿ¥ìÝé:ËvÓƒ/¸¾ *û®ÑN`Ac;·›–…97¡{á8‰èI“^)´òÅòíG›uÿš¼à½¯®R­NËáVÙv»ùˆú¨ú#¡jÍê¶³“I. ^óAêUÂͬچò^Ä µ,7 /˜(`—vgiâwd¤ {ïÁ=g½à¿-7 2\s¡{ïÝ’l£Le¦¾#neè*ä˜à¹G#q'À÷ÅõÏt)ò*¸?åŸH’&\|"T#Ùë8ºÏ¼dS¬&}x66‹´ô@bºí‡àÊ„_ø/ìE¶©¤î=RýŒüL¾F—[‡­™§ôJd‚e&_ݘ ØîØî‰LÒ¬ÏgWá†v8$À÷†|åH©g~Ý¡W§'·îް‹ÜÑ:¾Kr|:Lâ9âyx$*¤lÿ®£…ÞpWWk#B†ñµuO'v™µ¬°Íî +ååYâ[ò¦^=¼é·òàh#I(ùešÞ³·€Ä¹œi^î‹ß‘]_¹ŒÚÎÙæá:~ËáÈâ¥BR#19C»Y¨™òñgÓˆêœd‹»kø:¤ãEYñðÖ¡ò˜…œèúSG ¾ú»éÂêüMZ©î~½ËßÓà<-˜«mv!ª _„˜Þi„Cݶó¹ˆJN›ÉAˆŒ}%ªa^óPJºeC!3æIP-MhuPDk.£&-¶ºýA&)ž{ëᓳ%a³ìœµbØÀ’çÜþDüX^C¿ÑÀ)cZZWè°ÐÉ;ÿ¹cÏ?D¼ÑökÒ½ x6Ê ó­LÌsÔQ½òÁ!ê8±)ÛÕ(%¥íûæÉwOF°ÍˆŸ v&Eÿ1²Ùðž­ì.«geãxØø† Ù4ï T_c$üX±$ö#47g®¦P’4N¦Qˆ¾}ICêÆ >%'CÑÖ‰©«¢'{d›×pİ£¾±²/¢HN’åâ/ú¼¤!œ¸»pB,rë¨X4ÖUo6°y|uÅs0¬lšoؽﺱûK|…ùC™+C»RDŸÌÝþŠÐ‘x)²${A¸ dhⵕ•}“¹& T±­ÉT¦O«4ÓáR˜ƒ«”¾ i̦ ]õÙÃR©°ÜèÑ.-éä2últÝËþÂÞtUžÂ!‰08IÍ›Ù;5·ŽÚa‡+!üK#ÑŒ‚RqÕ&2G\‘jæœÐ¬p`CŬ®Í”Éb¯åÿ ®.ÖýY$ëîb$dªë|Cð½QÀuy>¬oªG0žpŸå! Êw"c0`u§¤hfÈyÆ£³eCàxÿg¢‡h«©«ËÔ}R»·ÜÛ¶Ú¡ô¹³’­ž‚GÚ%Ó3Dvˆ{6u~ÄÏçõÂÒùãô|•ʈüdzTnŠüŸwØâ¤`"e¹~N/eMÙX¹Ø,éý9eq@5«Ôǃ8ê‹}tÜóèׂ ?â=ÛÝxL€@±`}Iµgå!ù¬8™…1’ÛôD:˜:Ⴕ³Baë{ƒp¢ý0Oóu®°óߌaÕ|Ì-Õ¬¿Øm¨N RY-!»V/ÍèwaØ$­W¤…»™ðP1^Ppá™r1:j:N m¥Ž›”‹CÒиúǰa3Ëù{j£r4Ž)Öë?" S¼†YŸ]&Ì'Í${¦¬[”"ÀëbgQGX Kr¾GÇ}&Z\¼ìÃøY¼E*ì<6dd¡ñ-‹"K‚Vß+¸JçýS‡ qµèÕÁ|c Ö*œËíò½‹Ð_vÅv÷Ù¥:58Á)â]CŸ6¬<}ù'>Ò®q²q= ªõmšüƒþ£!ÒZK€î2ùlúf2Äàp/ÚNüuÊòàÝ‚–°ø¸bp¤tÓ÷ãìùý8Ùt îž™Œ¥à|JJÛ¡,Ìœ? Jfïr܈²Ü(8Fq»UEaÓë/±±«%GÞzYè…Œøè²*Óˆ2’S£å‡ˆw·Ìõ„GÚ‚nÕ»LÚê-­$(ã•D•‰%ÔÄy3[°¤XorU`Ç`çËÝâ¸]>î-²2£]ÓÅ£¨»lÀ@à™^µæ-nçߣ¾ Ó³ Ø»d˜¸Î@üM +´ñ¹›÷É+5 °Å¹X|5ò QlµÉuÛP=üR ¸}„ÏzÔmi˜é­mÙ ÑÀ˜‡f9ÿ»·‚MÙ²¿],L8ùò #U¹H˜ñ|`“„¢yµÂìlJm¶L_æäþøvŠPLßôºJøó==é3BˆaeÇ«—íâ,IÒ×7¤7dè›A®ú߯Ïÿc«“§Æ¶B„‰tyV.zÄ•ÖcÊ<º ³8ÒcRIgÍÜwth ‹ë™f–E1Ïz¾TóEyW¥km\ å˜þ?ñÝrVs²Ÿ#©üMGxÚLSv TË­<Ê«à„âÔ¥ým$5žFR:x^RGnºsÂÛÆ¼¯U””¬ù4yùGwøÂÔ²QËD$p :Je¸Fìä7—ßËôÅ»Fr ]]ÍC©<þ`›Šìûï?&Oºx| €ç(ì8c5Z×’‹Ü¬ÏÖAà&)t…¯^ž'GHÁ`#`·Šj’nÞË+JB¬"`až* ˜»ÅÓdPó[ŒØ›Ùýû倮ºäR_Ô$¦i…Û=úH‹c¬æÂq¤¤H<ìB®L0S•&ùµµQ…ôSŒl‚´þüL½mT²WYeøžX.®ÒrR§nÒ“¡ýÁΕÃߢ„°ÊqPœîÅzÃ]±ÅÉp/¹~oKά!]8½ä ˆáéJKÆÌÏIeúñù´„ O´‘óô’/¡¹èP®Êc:Bö>`ö/Nù¯VÝèkº¡7UЉ–sçVQHÜ„b~»ËÌu¶6wýžãmÎMU`µÛ6 '8ZüK‘|iD…·Dlw›sÀà œ£3ƒ„ÅO½í2¥ëEÙ`sEÃÆö£ü+¯ZªZ¡À"¤æ¾<*„b ËUH5¡êøýL­qý2ñ†º–M|F~×¥±·!¥÷ÜÅùzvZÙÐE6Ÿï>£bÌä$ÕßÄÊ„Šu0Ðâ5ßFö" Ð-ËZ€=Áëƒ:¡/d‡¨ÕøŸÂÐóÝEôŸ&Ö((ÔýöG;rõ³?sSIŒ°O<”q¤‰vºi¬!Dng:YRæ2T®øè¾[Ï­ TŇ$g-ü6S&÷ ײ[–zÒkš±ýu¾yzîb¨‡Ÿi›øø:³Kny^ý§jo‚y—Œ’‚b5 __ ¼%82ÍE4/‰cú{ƒr¤óZ¥+/ªô äR’!TÔ\e{Çq-ª{—³»Æ©þ#íýƒN[jšØÏ§Ò¥åe¿æn”*D#ÖX‡b¾CññbæúžJ3 α›;ã÷îÙ™Ð:ÊU9Óñ§†âQ"=K|ìh5¢ é)KÎ䊘ÅK\àn¨ùôK4$±$šš‘ã&§ü ç$Ljôýn̯¡ãsœ=2¦Ó2y¼þ)Ö^ÁýòDõ癌Ïì] ‘€–Ô»DmôG™ Óá{rÆiœ XËç­·}€÷ç± Bœú6ì¬Úžé=Æébû12›ë°p©…%UÛõÿú0§{9ëÆ7ôŸ¤Ïãt¼šðBZ‡Øy‰‹ê´ô™qè9ºLÀ HÜõyJ¶õ¯,P¦Ý¨Ú¼‡“äñ óðräMHTÀÙE®‘µ’*sÌè4Xd¨Æ^(':ŒFnnÊ*_W™ìÓ¼myh¾(k®Œ[Th»çð®üÛ¸ÚQ©[¿ƒ pRsc ÿ;ĺ4Z—µõ}ñ0–‰¡Ð^Ä&Ô;Xž8FlBvÚ3q`J®UèbÉ÷ vÀ‹lï¦JŸ¡]êiG:n,)ÛHíêø‚OðPÜ[3ìpý,k‚7Â@‚’Ö»ÆZˆ¨hÝÝ®•G;êë ({Üð*Š<Ð4JCž/U^ÊHë­x ?ã vš¼ md1׿Ql—0†|¡M-òÕû£ÌJdŽ5Z[ª(&ô‘¹m!öçTæEý†LìR¡Óœ^ ðme3K¾ŒÖ2 Â-0©uB¤ÌŽ¿ÀVÿt éÔ'ä°(*·ü1¢$ÁVÝ×-9[šcîncj øäe·é5êïÚÛT[InÉx²gûé¼ÞÎx7Þóøç µ"ŦÏ85g¾ÿ©X±ÈòÓ™]¸ò12Rèojx0ž¡.WH«A Å®(¹I‰ÅD³üdA@*—x‰bËO)Óâÿ,·'0‚˜‰âï@Cሲ³6ÏúôÛóŠbÈñ.t¤E­ïk±Ý´ö Eíqs¯ú 5Þ'ýzœ©„G– ]z‘ Rù¤¼êŽF€70]$Sת;ÆË1«21g×Lzbye…ÿÕïŽrýkbiû¿æüÙÆo‹ß!`ÀŽ\ºßÅ•¹‹©ÞÀ™z]uRBJeO£&9e#Uz2(Õ]úÊ?æv+æ—»¿áJ}?~I3™ˆ!‡Ð¿ÜœŽŸ‹9h¬ÃT,ÀÆÈ‚wÒ•§©ˆ…¨v茀{j<®OæÛ_‡.U$X £Ø YÄ]‘2Xâ«$Ìu\,#!„¸<@–’ˆwÊEt Q!8GPm…bGƒÛæ•’Nwoÿs±[¢‰Ž­ÿX+ZæV\+ ¤•‘-iûùßN\°Ô^Á¤Ÿ¯„ßÞiÙÓä ]a}’¨Þ©C»ð&6¹©82êºÏü|ªKc£“`ÎôH]~⪪€ ß$'ž Ä…n\µ¥RªTä‚ýܾ ¢vTm1¿Y£ïDtÊZäã<]fÛÉG<’0_÷ðM±í!À"S#è®F„†ÌŸ“à/ÅéÈ Ùxnn pÑòŠ%jdí§]­e‹­Z¢{ý!r Õ;BiâÚ]fE˜x 1öu™3•³¶U”o©™ãfÙ×vIcG\ï ÌY '¬ôÓÈP$Õ«ÄDˆ럖®8“—Ͷ "¥«É±MV;ëþsÙæ0@L¡½¾&A¼-'~]ùöá }ؤW‚ZL°i?¡u¿#~«º¼n'ÖðC‹5G -¸…s œtŒË´Ag¯¾û~W˜üÀT öO»¾úß(RtT|¤ê9úâ­”Eý{‹¸D¶K æís«&öü.€2<9)p(=õ È ˆ¿”µ*;;œÆ£#£­©ÿ[™ 2òAþL40F+ȃéÔª•¤ƒÊàv$½L±Èd9/S:°W Ûî× zÇÔ¶ 8Y jücd øFëZ{°Pýù1±¾Þ(lw·8ðŸ›t5÷šˆ /¨³œ˜±TÉÁë!—˜ËþBž½pÇrKYРQ ’#I[‹¢ÊK)5Vç%™7/àš'1ÅvÿÉÎ#ÕOç³ÃßÁV9ƒ~àÉü£yÒeM²É´þ#Ô,L(‰ àÃÔüÙ1܈}mXž×i”~ ØÌO–]ä ;ÿÙ…ÍùDÜ-álè÷¬Ôƒª,BÑÚSêùãù aŸõÝS¸Ð•(©œ ÇУåxèMeÉ §6˜Q—ö%Ä€Ê©îÆØø™%š´ >ÁGøùt¬įÅÅrL´À5Zkù;† k®.l+‡ƒŒzyÒ)m{+L™b$ù%‚ðR‰WiÀØlÕã‰\–HI®úÜáv²ìÄ2âö÷ah¬êAÍAH^áiK6ô¢p¤-æ´fW7gàÚà.¤Ù™o)"25ej©äÖˆ„+Òñ¶Z*d«Ðh™ôÿ›³üÙE¥Ob:“†$ÁÅ4t)ÿLèD¥|ô¸©¿B1b€å–Jù¢ bKçç² gûÔ–+-5ÇÔ‚8µ:`5s1á0Vú§žI‹bÎBTåÍ+yÏGöãØ'£Íߪ7Ží¸N3/Õ2—!dÇ`Üäù,Q°~á;ô‹ÝJ Ie/î3(ɪ&çxaµãüÝï;B¬ŠGS¼ÌaÛ‡\›•±û=%5Z²v ,7(}kLµ¯ ½O NÝ“î * [|!hVö^¯Ïƒü{U•¡(÷ŠÁqÀ2ÕN ÷Æ“Ž\¿KVê[`'ºh&êÀæhÁ3³üÛ‰y¹C¾"3‡•?•bÑì}wC“ðÝ:çAÓ©êŠÍÖÚþá’¥ØO¦'ˆš©òP\bÕŒÈÕ âFäœ#·e “þ©ù<6uEÊ[/§Þ2•míÀß§ }9—“F–Ótè ‡:KeÍBú¾Šö³tî|±zó¼ï¯zUT€á £~Z_«¾éB´Í:NÃÖp(,Gqº¯Þc>n£~†moIÚXöÎO_Vº`¿ ëï6qý“ž6€£˜á]˜ÎhbËÚ½_¶Ë™-­Ìôì„ À Ç<ªÿŠðg6eš¨=kKцÏ-ÞäÊÛ,Öm0³1džC´üÛ·^÷?Š*üaWñ-~åqN”ºáÜR{s«’ié]Sˆ•T@Çî“ûMbJ$· (p.üÒ"Én;K`;Ä|ÒfÌŒuY%^jy„`ˆÈè¡jO"–¯ˆ@EÇÓ–=\JyÜX¯®·v Iù gµ|G”3DÒºJ‹!aF·:»…:ÁKħõ’òaRÒ,ÞoÕ MØšmP’PWyÜ–íµÄ±ÞoBaØ–igT^(®<ȓɕ@H"]§ÇW¤ b¦È‹¿ê˜’ùa•#†¿—qÌ¿!4ªJþ/h¹¤ø-Yú6a03E¯çßóêjÜüÙ(\ÔìµâÖᲇ‰ i^kÙ8¢D«g¼ÛvãQûWî–ü0•*Ü–À›N?ð_{¢–Q¹®}ÒCY_­¿Úøµø/ଭbC!dV)†þ½§ÉeÚ”qL¬Uk„©&Ð*ºcZØzžå)§GKA9r•Ih8:᩾"P¿¡dS Ê}:³UwT[èì”4ójžÕjqN£Û’dQÆ+Ѷñ‹ŽpFØíhƒaoœü)Ãÿ4~¶W®ûòPý–žš"%z}¸ÉK•Àzò v_þy•,,¥2tØ>nD?ÒmZà[¬˜»& ª{·ü}Q:þd* º_Vxsw‰ñ˜ðÙOfZ?SY^õ»ã;U ¢!…²jè'ðáÑ+­•IÄÅéWæäÚ”%Éiϵ“£÷pä÷ëÿ/fÀÔðÍJ·³Ö‹Á±ãïs9q"ÄÜÄkX^_Å:,}…\Ý4“Å-Ùù œ´;; ÿ†E~´Ú6|Šãok(@"cüQš5ZIÍÆ<ä³ý(hnŽd)ü¦wcG茆&}¨Ý^CÜ=uë§ík¥€ß=¸2#±§v…˜¡L\ªç‘T÷²Ï>U&€€rcµlWf²®NE¹3UÅkÿÍçºÆ™¢É# i­ZƒÒãðç_A[Û)óÒèžY`*ÁãËÚDq²WäOݺVT=}ñUô.¢ƒlûë2âD²(AօѰ¹Ë_»ô8ÄþW<‡ŒÍ¨=Î…º™aü6P°£RÜ3caùã\ìÒE à]°—ÌÃä]»Á¶ÒXÒÝ–Hí÷,GÌW“­9¢µ+u‡{† xÅA÷'™ õ©QT@Ô[>0Jƒ[;*'ß+­,^i­´õ0‰S~Úkf}ƒ.ö³ I¬Ø+ üd¥ÁàÉewÜ›æÓK|ˆÑpÍ„×öT”Êš¼óí(Ñ´j&ÇÇòDEq½¢rà^GX)Ù™ ŒÈSÓ!‚GÌÜÁ µ¤ f[×Ìo꿯!º¯ŸUí"íMw¡~4 'è©éÓwhÑ>$ µdˆ0[ è@>ü1©*—i›ˆL‡–qî×wGËŽaõ¸tk-s ù^p†"§Š<ê{£é(osÚµ–U.0§b/ްj©»kÑnŒÉgøëž<]üLJ’°& ¦QupU"2é©YXÙ].XÏÒK£E¬U"&P»ÃoõfËÊáÍꛄ´ÄTGE=šY)6XcH& a|2 ½—|ùïÉ¿ý"‡º}AšU!b; °Û²Š—WÅ× *Bãxþ1¤okÂa™ÎaŠ·g¾Ì´‹;=´ƒ¿è©#Ø…Š¡:ÁüMãá²Ø†)S˜›ƒÀÉ0"_tƒV™tùÑágºØÉV©o"YAµ¿ا%Àì.o–bO޹p¶C@;]È)éÁF2h›æ£Ê™‹K\o—&Ç–/ä1ÍB°ödW‰$Æà<¾H7š=höŠæ8x\ØåKVý<ÞgX†¤š,²“?ê[Èx™ç7sÈïXª5'GNnÛ¢•æK¿¨Ÿ>¢œ˜$³GPPq¦»–5×’–ÍÊ@ìgŽŠ¡‡xŠÎÑ`Œ![S#žÙ•¾y3e»JìÎýµÙ¾ú96YŒ>Í*r¥RÕÄtíÛØôtŸT³°¾Ð“¾¤½!±Þ÷ ÔN¾¹Î)çŽM&1F•a<«k9 ‹ƒ…wd5À+@¶¬›Oý‰ˆ¹?õ4±FÅ9îIi×Ðô!r éµt}Fµ@ƒ)‡ùLöîGAÅ`•LÍ©sÇU«õ‹å4³G?‡ÓÅÂWþæÂPÕ%·üÆ5’1fgY);ÿ’«¥ÁíŤ媣u 1“ƒ&ë‡|œíÄš»bšü>¹rýIÜ µ0§Ÿ¿/h´f£Mri0tv¶Ä!º÷y¼‡G„Éx•äﻚ¢ 5Æ(úƒÞÑÒ@>àÜ’Û©ñGIÛ#÷„ރ‰ÌhoJ!g¸Â$Ï?tÏŸŒ‰û`"L OX˜ ñ•2Ý[Ùào¦òÜ„ð8«€ oÙ¢ ú÷,F I<Êw¸š7Y…¾d«Oqà†éÉ<s˜$M¨/À§>uÍ$ð‰Ž`“ò“å7üM&@Ýf€û€´²ØËÖªˆ²Åÿ÷äÀ€ÝùßBª‰;ÿ‡AçH´rVFñXÁ›˜œä¢3?[|ɼTiüç¶èÅOOùísWµ†hU¥ý§4·é<ýá³{\΄t3ãòK,õÇñ?'$̶`îcÇr=Ù×ÕÖÑÙâêéåâÿ%ØÞïòùóÿjáàðéÿëÿ0Ùãçòð÷ÿ]êÿaýùÿnÿÿqîíõÿ÷ùÿ†îãçüLòšûwÈ4.7çx¼:L_ò%.}¬ííî^Ï” çÈ-ÐÍkñ£ût†ù¾lÖŽruo—×ãÙ¦p`€¿ŽC•þ´X©‡œ–±Â‚`ɾ‘ÂI4D¾|ˆ{0*‹ ;.;å”t§a'äf:4íEë?b Ÿq$«Áe-.×f¿â“fÛrþŽÍhÀ+¶F L[1|ŠMZ.|nYöGì5D‚ù'WN›fׯ{”Áž–t6mL™¨(uAÃæí @ÂZ%Ð`wüL¯gæà9Õ)WÒSðí–J´vþûPY[¼sÚê)ËÛ&ø—Îñ‹ÈÊ>ð‡eÿ ñ™ FkUÕëføÚÍ—e…+ÞÜzÍe„nIûWrsuÅ1}›¢ç÷ù:·Ø,„•\M |ãÃ~rqÞ±¹›µÐ ò©OšHv}(qo$ÖÚ–öwYvíá¿MF_¶°Îö½%ÃdÏǶl®DàÆ´/. \iÏ‘˜M@:Þ“c2ÊÃeIð³öX}pßVš’‘V/îÄŒüL¹­Ï«X¤!FN^á-ñ³®Ý–½jç_Y?.+Òþî³øÖiäžZÜ ñÿ:„Äé:¸û\‰©åfì^²Œz3à °‹tp‘ÿö„³ìéÌQ>Ö¾òÊY¤ ®Xìàª+ŽZ|À’8 –k]à4•'¼ºF ÁÀý¾´jÑŽJå¾ÛÚEêºisoL%Ø‚—mI=9Ûôð†.Oö];¬ò4³x„­î\dlXÈ[M©x* VLFÕÎ3&¿Uzg¢‹ð£†Êå¬<ÕØŒH•}Kài»AY&…v¡컊Úp|ËRPÏî襸ßÊ„4¤¸”<Òá2iòúÊVU¿Ò(ظù.Sø3l¦62SKž0L<­>s è]£¬VaÿïØµVÔKõakªpŒØ OÙy`8ƒ ä!‚PÕ(%I˜·¯Ì|ð¼­tkVý `Ç«FÅH}…ÑQ‰h@™>9üMuú Ð¥K!%,Åq3>„;Xíô£tQI&ÍéÂz†5YˆÖëù²uµTK1ä— ½Ì?{¢…v´F´²‡°䃃)ìSûÛrÏßä°0DQò1#¬Ÿ§!û*S$‰ iŠ‚CÛµ^Ì+`_Ñè Eˆ…Ë…V¯6ËC’^ùñÁɉÅ'©Ñ²öÚ$·öY™ ñ1JÂh„÷Úû© ŒH©Jð¨Ð'Üy“‹ËmX–6:}_‰½Û‡CëvVMbÇuK²œWüMTþÞŽ£öý»ðE½Ëfuøy6/Õµ$çUÑMdé–ò,Yãí«:˜œï/¡!èsŽ5>)Å”pH…Òˆ²fñ£õ†F}àÔ†uΕ« e#‡Zá-øüC¥¾éó;aÒ—ðx©“_¹÷ŠoY9æ„L¨ÜÉOªÞ÷u1s{ipÙέêˈôiB9ƒñÿŠN0qÅ)9[iÃMP€O¦Óf/…(“ù†a•USÓCg¨­©×ç8‚4"ŸÒý zÌrOI[¿o@Ñî„LZm¿Z3Ú±<ƒü}²Áµ@qµºM~÷SçX ó²3Ï«ÿ™´ßmê©>Ÿ°ä¿æÖIô?Š$Ýìu¤A÷;Þ?üIó*RÂKrpõë ¿e °£ƒd¯µ7y»²÷ÖÐ¥ÒA(ãÅuxjíÕ±w–eÿ8Yðü~gô#¯-R×”–EXãFv8¦¹½Î˜°·±`Dÿè\O)ÃUU³œ,M?Sû¨Ñ÷µÕ«#~þrÆcËJ@x ™úe©t#ÅUãéoP†D £AZ8«"¹ÎÁnU¡¢!« åýŒÏR{SlŒŒy>ƒ&Bd֛ǿQx]ÞDGègð3¥Þ¸X,@™%á2X!ß £bø6l'7ΔûW¦Ò.·aRX‚$MŠya¡€[üÙ(_0hËíÞž<-R ôÖ}U_¨À·uu»úÝ]ÿI2ÉW‹ñ£”ŒA@-6GcŸCù9ŠÁõ†ƒh‹qÉ׊¨f’vüŽ6Õ ­»ºŠ PÝçA´õò[¶Ï5Ig/sÕ´âîñµ(@Ý—"ÐC}£/-äY6ýŒóK¨æ-Ø©ÓnÌ™i6pÒ„p^±ì¥~°T/dÆ´£N›Ü!óÂbR€¸]ß-¢zН)o¯½ì ­ð €yÆ™ª¦d»:tGdàØ r›…ëmG¬Áü³¦šÜ¶Ù7ò·üÙwpï, äåÚðâpdYtQÖÎGŸ/u <8¦KöuH¹]õ•ai–bX’B agº³ÈnH cz–ã+™'Ê"H-ä£+z¸²Äª3#¯*èe`Dt»À—òåéEdðýÚæªbpòDÆÑ¡{ÆM¯å¶’‚‡•6â!Þsö½7ÂÙ–“ûùÝÂ{öô8,™ß_8v¤‹­ÇTpiÔ»®N3¯·çãúSê¾y ;ÉD;VE\q88c¨ž£uIøµíâ¹üL¬óù™ÍÎã#üþ” u²mé¼ÎD—ÙèÀ^vÁ% ¼@ ª ã¿>¢‰6pðåÙ¿j.5@v§þЈM¦Ì˜ô(Èoç-©OàGdö ~L>«ÛÓ*ZÏGs@ôº˜XÖEa«’æ—ˆé¥u çe¡è2 Ùƒîz¬yg¡ý¨‚öÊúõS¢À3—´s/Hƒ-CuUý!’ª2Á.”Ú±¹×QÌç©ôŠ5S`à˜Ðãù›7˜TüZåö³úÄÚø‘nMÜ'l¥JFs(­¿ %(´Mp•ZIi™ü|¸ øƒ„>n¡}í&ÔŠÎ È*­§*åòØÁ4zÜ †ÏÎ,“·lnëm¤¸í#6Tô34ßt{ÛI®JªxZþ§•Ý²Û ³% ´Å05ƒžg†ÌÇ»FÊ †Ý]W7Ž9Ta _÷ÃH3Èæ[o•17ª1 ï÷Xwxk«=ãܯ£‰Ñ¼Dç.}9#ü‡˜ýÁeÐåÆÒìlË6Ä9&IՂɘP&°r<õ¹¢ïõj—00¥xO ¼<9¥e@ÉB`ßœ<‘ ˜‡ ´bX¡(!°4Oz ݦÍcõ5‡ {›¥#p-9/Ù BÎ}¸05D4b½ê†0Ë5ÓE» ßq­÷vãÅ­N•q³üJ çš=öS¦ðÑk\ºs`AÌÓÕ$¦›‚¥ ÕûÑFI+Èš/‰»É}üŠÖq¸ì_1Äçlj‹»Ç‚ãæŒ!)*ƒ!ÙçN9:ò¦Ê…¡Aõšè€âÌ•²J{{Ì„n4­¶ÁÎRz ÿ¼Ò„'ÿ(Ihå†F»•@W©Õñ\x>xþ$–‘ï@[ô…ÉšàA¡ àâ5š!} ä,¯H ö–oí¸¡úæï=ª9r>@o—ÜZ!„ÓhQ [U/±­üL±:íN< iñeË”V_Wúñ¸ï¢ZÞGl£.³éW5ôšLž#øªã1‘“·§fˆk¾mº:ó•ÎzÝÆ´p+J®l!ãiaFù:h›&ZŒüåOc%“ &¢ø·‹3sÜ&{‰ÕtÒœqʺ0òô­sòò“'‘"%y¾Aä)âô‡- Å¿teSYÅuÕ1@ÝÐÖ NB¶¯ȆaG¼ßCûùÂ;Õ&"`)*¶fP‰²ý< WØ+¿²ê&¡Œ ÛK³Ò ÈAÿÿIZhe‹â˜YP]üL¬À‰À\Ìú¯Kµ‹žÄNÏ.4‡&Aìë´R$ØœÏ÷*Ukg-èc)õ'›h|¡]‘ýý»Üd}ú–¯2™#:†lîûî¬:­sÀx9&~ÉÑ$i¯–¶ŸeÌz´ÑÕIRŒ<8UG(ç÷ /‡%w0Â7>Ôà™hñ~L,ÁŽ·wI‚ÖÁ0ú}ðàÍÔôÄ¥^:“ÜÃMÞµôdü(A€þrVÙùôÝüÞ¢­O·(7e»Tál3bÇyQã‘óóïh_:= s•ù×­¸¶¶ÂÀ¨Ð íü6SµfAŒ[9Æä=N]3w~ Æè5ØÕMB8Èb›Œp×× ªÀi•îV q'@?¬±ý^ôÕO(ãÊ„r5ˆ§2qÇ‹íufû‘Ó‹ØFI늺­”ê÷÷é+`pýHºëÛPïC ö¹­÷cÎ=÷LµÕŒ|Ú’s)è#øO,î>{kºƒ-€¿°“ý)­, ê)e«Ÿ³»tvÖá} „¶[ò õ_ç(ôÜ€ª˜{§GäÇ]ïÒ€,¹‹·‘B¨>ȦÝúíÀ`¤¶E²»Ó2d£N ~åà‘µû:Ì›FüM2˜§JöêAÏ»‰ˆÇÊŠƒÜ´ß.tu3u1ØÙ SQ˜KŽ’´@öt迆Ô&ÖÍó¼²ìw,R¢…®PQÝš¯´8#¤¤ VeøÞVö%¢ª¨Ž~Á¿ÖEnäú©óþe pF°…8j\“Õ³þ’†I¯v ‘õöÛAÕ:øËçcÆ_—¹ƒ?K dŒv2GJ+f«kÆ´Ì›?f@Rƒ¨½÷Ë>ás" DqB)^òópÌÜGÙÍXŠ“[&Çu–¤ø‰K1Ë«†¹ÞÅÓn–ëejOC£*“2{¥Úˆ/zd`I6½E Ù¯™4x@) Š”TwqC!ÂCÎfM}t>ü`Q …¦šòeYF=!hM9h¦²û‘–+¹û7³V›‹IÚÊcïöP66]ÉÕ¨$1c6F°,µa@d×ÙµS§£@ àfê}Ÿ?ü°Çdo4°äá›Oîö“oIújRÒuDÕí:ÞCû/Ô/y}=ã´×Ç©Y»Pw¡öÈên—ÊS&jò\ixe¹š¡Ÿ™¦Ea¥¢ŒO, bd æ#ßì‡0H¶œ×¡ËЙ;G·­Cp‰õ³–]ò¨¹»éùE ‹)þÊ–÷YožšvÔµ“—å·^—ž2Sþ¤¿òÑ,þxÇHT–\ ®ØŸzÁF}'ýág—k.ÈýØKÿ„ž£ Ûï1+Ü$åÔx0|YÖjÈ<@{t*ïê–ŠË–¡Û J¾â RŽÒY–—_ ¸¬)«d¯ç!J!U.@3× ÒððôË®ÈÆ…€ºt”€wô`ZO’ÓåθC )jg¬œEý,¡òC@˜ˆa'_Ö¦¾Zsžâƒ>W™!Ê¸Û «µ¢!j#Kçeb »•ü†/¡°s óƢĞU4kNªÒ…*Å-y=ÓN4?UYß3Å”‰_g 6¢À¬ÇlŒòŠÿj%+³Aih®ÆüÛçq4Š_˜Lq_2×g% ¸¼ÓÛÙ¶­“]”";Ñ=¿Ð¡,g¯¡ +ÀÝx»Ó¿.8ÊkXºflw<øƒÿQìYûÍd*Í^E˳/zB¯œ`i~pÛ2 ðGT`¦u@r¹2·JLºÅ¦ð"^é: …™[[Þ郟eN®ÏL’‡™Ðm€@l¿þâÉŽâa\”©.0Ý©ð€žöBüL¬˜?ܤÄäÛÛÌE2X%?çQ¾þÕÀ2`û}xˆ¸ªå( åLî·jJ^Ù6AsoL!”¨Gõ™(344®*Hzü.L¤¶vW¢`9AÎ*Ö×÷ÓäByˆs ¯,&=ßó&ûá¢ìì3òØîÎîÙ~íWnŒ §¹™Ó9ÖËl,8!ß4‰‹žU¨1î}ÞLŒ¤d;H%<ÙíÚ‡Ýq´'WV6ªñ–ýjÕ¶jóéÆî¸4ñƒvJGmzÇ~¢Ð?` ¶ÆM¿¡²aK‡ Î(ÂÙFm¨†ò‘p+üM‡‰FÙ¼Y-bºêyBML±¿€3©<’T¹§Þ‹²ÅR„¦¦öh«ôšcú~–N“¯ ~Òë3¡ÈÚ³«~Å5SÛ‰Q ŠŸ›+­Ý2!ih`ƒw”¹•°:Š´þ@.æÇ“Ãáo™¿û M™Ì uGð>à÷¶{d?ŒáãO4¾%‹D÷˜>»øé¯dšÜgµu¤™ÿž£ë½ïȼ$-^U˜¤ôÌŒ¯ÎÚÓÀ[ùtÞ¼;IáçªQÛ¶›Ò Š%@ex31 dCÍ0¹¤Æ>} £ýÙàvt±³cƱ|‰qüJ6ø­Â39S9ÁHÕúCæÖbyƒ¹*‘@-ö£I#6ƒ/PõõؤãèPL·ì:¦¬·J““Í`}õ¡O@I§Øüìúõq~î6‚²—–Vëp.tcþ»ŒY¥ù°E E”W“¡w“/ÏY@“U/a•*',)N®„X¾4 C(ƒÖs±‡‘ÎP¥úº‘†dÅV¥Ã„¨{h÷e,Œ’ÝäÚp̪@ÆõÍwµúPô´í,µiµ_š_z!™‹¹:±ŠO×ÂïÃÂè¯úü¢ÚÁ/ °òî%öôÊ?+ü6œÒÓ¼Šuϫŵ÷O¢Ž4Œ”râ¹'Ò{ePÄK¾ëˆIkDZ Î•4/×v²J”| ¾N·Äø= M*‘AÝ™!« âÜ,“V3Ü0€²2ž<¬/àÜÙ‘õúÅݺ_hwu83ýqÄDOå|«Fùv¹3¼ÓØ8b?ÁN¼Eç™ä¿c€l,]M4"þ² v„Y>aõÎe.DB ‚úÚ±ïSÄò1_è Ïuî­œ,ã Db+á7þž27 ¤(õ“ô‚ìà9rgÊB÷`/•ÉY¬ˆ/´¢÷uŒõ>0Áë[6 ïò²'T¶R¶XU3Áç©9—Å¡9.múNü/Ρ™ŒËDYÚj&„GóÞØK¥ ¨XÀúf§ÚE7lCÒ“/Õ="4 ö~rAmC—_Dp¤L®¦—‹!ë7þÄ•kÉð¾W¼w±CO¿»/1œ62oïúí¨jŒ¸ÝºU×ð9ÔñCæZB$÷?Šnðk¼g€š|ÆE1á7ÝèðQXT@àªáŠâÈfÝ{Onss1X¾£÷ ¥`Ž4„|[âÅ’½ÑdXC–ž#è[Ú0òE‰‘ ·dyvˆH‘–ªVI} ©íÜÕ„þ7¼Ð¨'"¦j$Ù(,£—÷è9`âws;§ü|¸³wïd|¶Ý~;TòàH…Þ­» Âš¶â¶h¯z¥™ B4Oóß]AU‡sUv\A!¿Ê…s"_Èl–:©d˜&Ðêó Ôt·Ô¤]ᣲ“ö=õÔ’üÙ†‚üf‡ø6ØtìQb¼F–Îÿò_ ÂRè;ŽðŽAÊ’ÍË™¶p¶Üj1Ü=³ÐÄÂàü#Ïõ‰ú‹?Ú¿?W ûÄü‡']±mK¹b›Ì5![øæèz–Ž¿‹ ϰÆ}¾æ'ò ãÿf • ˜Â’„Kçç ›.A+ØZ8Æß“EMJì ʸõþ~i½Φ”X=C*WÓãøly3 ÐŒ¹¡––¢‘Dô³Ì•¯f“ÑÄó þ[Šá+•ë’Šr»Òî üJT[^dÛÎ4ËjÖ-±ü™v>·þnÁhêT©IÖ½"¼ r%ÁgJ¯<©G(9¿pLÒœß$+vÞŠ2ÒBdzì¡/Ó-¡:½>²ÛÀŠaÍ~ê0ÏIðí‚ s§ëN(i• Ä–$*֢§©X~•UÊXOœÅ§¸ä‹ÃPRlí*¸ÂYFÕëüPéålôÉX7ì\Æ×«àvpáÉϰ”Y¬zÈL[ÀH£¯¥>û¢~Á:þ°º(/Ö×IÀÖÀ‘• üJUSRRwÕKlÆZ{ÕÊHƒBnˆˆmø%^ì÷†_ng¹ûâ+÷uÛ»=c3Iه˞àøA§¹_£—c1µú\Ù¿žÕ:KÈñ{¥úáác†Ø€^¥ l)˜ Èê´ìK²Ó´rÊ8h…4‰Ñ$ê³Õý´äÄUÓðéKGmB<ß:­»’@m·»,¬¶Ï‘îÚcÊ,Áû“U®á¶Š"§ÖÀ-Š-Ī mþµ8?5w©-`µ¯ òÍã­æÐÒ§"³üMRø¡-¦ÈZ¦ŽÑH6Å¢Gø ˆl=]³Jö• ˆ‰'XtÞLþlx»yÔYfz\ù·ð%*áÑ’I°ªðýcòЄޑãF÷!‰ÏXÝZ)Zv¦óë#&p5Í=ÍÎĺqpCvީ֒ü¨5{—îOLŒIÔo²,GVÌ)‹K=&¨vÅâŠ|gÅßµCF,åRíz—`BÌÂ¥KqùD53= ÐHp ñ̌僠㣫¡nòs?˜Ã& i„ÛKJNÕïFåë˜QCŸŽw‹eW›Tºec^_!ƒüÛ¸§}âö˦ÿoíèÙÖ`¡µÇ0fM…jë‚Ë9>ú:sºŸ(Âz°'wÅöÔsç¶Ñ3-zßÜISý~4æ,¾ãOJάÀD4‚æò¹%‡)ZcpY–Õâ‡Üe쫈°ñå-á+uÞ—©)×ëimt}-˜öq‚®ô\+<|Tw¨²}hh)ZT;ú`Ds€7Cì÷êª%Ú5isÅý¦r×½Ômφh ªy}á™ÎñEhÌ’ + 啨kù5…™8äľÏóù'¿ŠûÐû 3ˆ>еêýìË]äÀZ%û&œQl ¼üÛÁÚ¼Ë5Gˆtø6"í$†&&ó–ê¾Ï®¤pó,Dƒ@wÑ—cº)ðã‹ùѹú¥E£"9 Wê! :VǤ·O@%Ö’_a[éítEÆЮÐu¥O¤ÖÞ\5‰ÜbnË6s$?ÈL'•ÎmŒ ÈŸ7†tçvÊxûCé’v}fqÁðÜ%B¶©}½®Fj0¼³D Œ¨!uK-~s‡T8á UOÛÐ<½µø°oàG9S*#En«&C€–C¢ý>êMAä3$&ó(/D¼¡û( uz²û¯Â‚û9r…íÿ2¡y¶±üÛ‹(ÃÎòë (¢VE,I-ïÒëL€Jï›Õ4j Š6ˆ`RŸÐ^ø¤ÅÎ/ ypð |&ÖfN{¯j§¬éÏsñ€[Ô-b‚ñ‰»ª|= Y•Ó¿+mþXÒÓ½£”9Å›ÙNæ®ù7½pgF”T&”†_迆þ¹¿ý2ûáT–Iñë¢+9‘ò¨Ê1ïÈÝý¦¤à˜tҥц%6…¢0\¥ë ’² Âùë;ÍDÕI‰˜OœSŒ ü³$Æ1›k»ÅoiàÄöÛ7ž&Eß5ÞØ0ÅÊ. Ú׸E°ðžgþ9^ïʶüÈU’Á£îÖCç¥jÌúŠò ù[Á@„xð¹(žóÉ‘£û~ü†íhØqNñhÌ=Å{ÉÚïxRÃzÛ{¢‘…oY©G舯剮oœ@y—ǽrl1~>ïOr™.Ë!âdÛxéO@ËVíÛ ©zte$†!K'À3€ a\¯ý[¡ Ü+’ò±z¸#U¨¹(fSºoBmöHÑ£›Þœ†±ñ ),Ρà1£Á”d¹NžŸœ‘a™É&ˆW3s§©¨”Sk Kßzˆ{ªØÃR¯ß¼iуPÁ‰Ò;ìî>äbõ Û&Ù~sCz°Nôî›íÀR_ÿì»ó‚72ªpŽ ~öbãþª¢uVœ#…µ@× ù6žV?{`À¶™Å„:#{:‹=®ò­]Ôp:Êæ|[|ëñózô #rðªcµØ5ÇE° oé—$gO—öe_@ü„@bo/.sT7[ýБ¨„ÓÞOù{Ëka~ Ž´/ÊžUpc±k‰è¸ ÷¿1ƒ€›†ÓvÔ7ÿ iÆH¼Ç-ŧc)Í/Å[øCCÁ²˜ŽâÞ´Šù±gþ:N›–|±4xÝöÓø‹LÖ¬«°–B®¥yuB¡É53-ì%Ü6†.œp8»žŽšn‘Òø¦RÇu.'Öö3mK£ &ôý  ¬\« ÀXœöå ¥{yÙHû9àO,±&iYísÿn·ÄŠÛþ½Õ6T-%´ ï?ÃÔ]ŸŠ™è+ÀüL¬˜CÏÐä;e€˜›ƒ8‹ùšÒâ¯]Ât¾”œ•ØÚq»ká¤/ò8C Û„ÜHIÙ5ï}ÎMPr¤¥IþÒƒn38ÌZÒWn)yî“>¬T²ª  ì¹ô“±Äk¾W–c•Î(™ò™²_¼ìxí sïÙŠžc›‘bCèGåÌÕ”Ÿ¹¸#“E°eA4§>—¥Bëqsõÿ\VŠHÏ•‚ýAîåÒ0ÚšGZ<£( –Fª¬»ÞöKRÇp:H)iû—‰HàÐOÀ2B9¶¹°‚ÉάÀñIÙ6¯;È¥ò»É¼ð`¼"¡²F—±‡›B,¹8:ØîËWsWý`'\‡üÚYˆ‰€lœìŒkXB­(üUÑÑ}KÅÔ.©]¾­f5.š@îÖ­ˆ5b¾G aŒ)9¬³Þ84÷”÷6¦´%A¬6œèzŸGþ¸„eŽkNŸS»¾[¯)³üMu[¶åtŒpÏÊ¢®[!ÈaSuÓÞ *6õXÓe{›5%*¯d4-©"¨ìtÖÃÓ÷ÒÀV‚©d€SÌ!Û’ùH±‘X"T©‘VåM%ëõ›Ë ѱÉy}Hþ†îQx©©0Œ«¬ù¢Í8úÛI+Û­HW‰‰E×ÁLâÏIJŒü<ÚxªŽ~ñÿׄ8ÙÖÙ HƵk’œ°Ü‡ÃÌw²S³æ˜òé`^Öº-|°%(ˆ wÈ­ëCr*¡E=áqÏ·$ÝLòyɬ6I…8Ñ]QãÏ–2ë9æPc Lž£‡›3¢lðFP”&(¶Mšê Vï7||ï{ËÓËw&&™g¢•Í?…õ›–Ä‚5¬Ü£Z¶ï ÿĉJûI%È(“8Âqrþ©P’ :~BñNTJ· +¼–¿I ¿Á‰J'……Ž2|W‡XèY00ôýi§¦ª”T°[@<ˆÌ*9Ö>U¸:Y¬ŸŽ8D…£76p9p]Ë-Ýûà¶ŠIϤÂòÆ.,<‹’HR B“ïaˆó°bÍ1XÇÿÁT¶jí[¿ºIÉ‚äü}]\ÒúšþÎûäDÝ'š„†ži™±Ö’ÓÝ."?µÚdëW´¤FD>L¿™¶·~EŠƒÎ÷‡hþeÚ͆Ë· ¥°ýìÁmâiƒJµ¤ÃÓÐ#ŒiÔÆš(·(ü÷Í‘ngªc ëuçDÜXÙ¯²²\Ÿ~òF¤nßš‘6;¶!Ãb8HLLÒ›!&áª5kN¤}t·~~¢Ð:Ô¯Hîc›x$;@Š‘ïѲÜl¬WÅ„„x9Å×ì7©ÍÚ¡"íâs€ 0^¿êœ¹aað‹V(_ÇF–ò¶2eèm›“UtJsóóF7`2vZ´h¾[RÄ[Ç„¶Ôñ$ÀG¼&oÂ*œ¡§)ß楨t¶‘/:zêÔÛ«fÏ«_¸Ö—8Óó/"Åh®Yd=ÇÃ㯵*à7 R˜ý1D½o2¶Ú¨¨‹,”ð WZ Jð(Âàh$ê¢`w3òÝFþƒÉrÓ¹øü†lMEfSXg?æ ê_Ø®/oŠÖé t&H[Óùâ—}9€ÂŠâº€~Hƒá2™Fº{7õ<Á=… ÌBÿÅ´‹ %ÉþL•x¯"Èî…³ç'¬ãÓ©r»ô_èƒ\L7‚UHf“šuÏòûƒã¨Á {µü8“J›»Sj0¿óÏôEW¶Æ_LÃV]Š]§A3òGYAnPƒ7¤Yè-Þ¤p›þ¼jBà¨ÇÙ1,N«³ @(óK 6>,ƒîeO@´Ðô1ùgj@™Ái¿¢è¢ëYyÖ­ý¿¶ ¹Í>ðƒ§8á E ¢ÀÍòÑBü6›U¤µëmDùøÖ•ÛÝîkMlrn5+HšÛ›á»1€Årö%Ýð”Ñ]ÞÞ\¶Æš •‡ù­ËÒaµÄñJ/"ä[xRj¼¸gJy–uŒ£d¾q(8Ï4ô@Y·ç-®s;#w|Òû5™WQÆÄÏ! ®ô#ñÓCe6ô¥é<12Á°5]h=¼'×l³È”š•U‚þ!J<‰o«Øv®y(mRÀ:”¥W/5È2By:ìM7 ª™ÌÇI&6ÿ/(>ª ~â´"G´k”IÛbVE8…߃CüMZ"P!>ìzz•ê$ÍâÉ•ÿU1Ÿ›^Л;4ÃOš{=ÔÙáf㼑ŒÞé›}K÷ïØYêPá"MrBSM›™IcN¿A¾Ý#÷–˜›½ZÂëvKv{Cdun\°¦¬ñ1ó¦Âm¥*sãí´æ}‚¼Oi ¯æ>S¢$zryá` Ž"c U{·sÀ9+÷˜íÃËx\Yí}ªIá%8ü8³0é³&#q/nVT;6…å¤ðÝA­Ð,…‹Ï7 ™ÉÈC¤Ø,A¬ôf;…ïÁA‡µìêÝ"‘çÓëMÃ/nß3üðÚ² žÒwu2íq6ÀØWóî·ÉD©Ðcyä ¹”¡Ò=g“ÊA©†¿Â‹ã~†øâD¹\Îw½bÐJpƒìL ¦ÿb8ÇOrGÃ+|kc#=.äWXÂh^¤4í¶ËQk4 R ÂQâ"&œ…× k`iHaSwë£_s&„ÀÔéý°‹g`𛿠„g ¹D÷Öçø})ÎkµO|-}#Ñ Šš®N'dÖ;D 1ÚJßD´^^8]Ë/ӃǗP ÀÓgÚÖcx‹ùßí”^|ïß„O~ý“€]‰#ÇÄ6§2zØuò«Æt±Ù÷‹¦º?ÄñüL°î#u¨÷KÇëÉG‡.œiܳâˆÖÏ“UlÕ5²L¥†G+cöêH”|éeaZ•²n_­v¾ãSª€±ø©í¹¹:~K©¯°ñcvjÛHÁ2øãl[a”ÒÁ1õö}þÀÈžŠ‹$…dÍÊ* cèEC¾A÷Ñ GÎÛ\idÅp.íÂÐd·ëXDmÌé+º<Ó?>‹/Æu$T”íëÖ :0Sx9dâMž¾¦™d<ôZÆ ‚y—]ùH}JÚ­9 w#d‘L-ÍÕÖäkïIcëw–uýÒ UŸgu™Fמù®Ò;bü®ÌÔr´RŸ©)\T åG¡z‡nLSÓ2Eâ#î Ð"©ÛÉ¢ÅMÓ8Ï\¤'ºö±èW:#Û½Dá/ßfUøÊűŸéÁå V6iÖ¡8ãZÁt£àª5è”UÆ2Ô yùª&¸|¿4_Ò×ídµ|Ÿ¿e):7¾4΋™KCž!ùa¾Cf:ö".€l¯ëb6ji@(W2&x"ëH5ÖáÆ‹ËÅ’ìíMYŠ…ˆ«bÓ@9(fþ}M¸ñ ³¿°•ÙS&xÏráÉ”÷ÅMù5Xš; H¢¡Øp¯ÀDuÙ—k%ÎÕŸÂY£*($JËÉü}a×:ý:®Kj‰òp¬øBØ©ÛWÚüme†ü–$OªÍþQHïš‹üb€ÉÍ&hÂİlÇ&"®„XÔ`€ÀLÖ¼zrwëö}Lñ.ªÔ²Ý5ë-i'ˆóÓкà Ë`R¢ÃûÕP3kÈÐÛ£Vî¯Ì!o4×*ÙÔÅ?z²½¹G=ÌŽžŒÕ%=+jë®\Î$k%É\Ògö굕—2l¼&ªâ®Öt$ñ'Æ\ Gÿ#Xá>Rå|ÅÆž Rqé-¸Q¸4€®Miá?ân¦D,œÉ:&9c÷ç Ù“VlolF!Ÿ«uÅ*Z†È×4ÐÆà¸9ý“,ÅŽF~RÁr+f|ϱjUâs>‡Œ¢{¸ßT¢5½5EhŠBËôþg-£ÃeÒ›kz -E_ã+Œ‡ŒUmåF¿+0yÊ}5C7šýeaÛ®V‡¢Ðñ$Cêg”º™0VòÊuv-61›ŸWûÖ ³2Û\ËZÀ hssŒ–GÚRü0ßõï/ØÙ Öm³8@üËo[ Œ»’Œ°fðœzøLy¤BŒ®—Á¥bï÷@ô•ö¾_ì„(þàUGèÖÂè×Eý/§ v~æo`ìUThˆªåRß%ºÍ½d:(A5 pmHb³Œ*ô Ÿ^¾JåìXbÖ¿{ÓH´í:Á,Š=4¬vúdMQk‘,Ã+½«ï©qjç uÐ^^ uâˆù¿$µì¶¶p©ï®çTP.€Ö¸ ¯ý»xk²%èïCÜJæQñU/+Ju+cóaíÉûîZŒm^½I%̆.ü/Ü&HæË­b>¸w\Å™ï‡È;_–æç×¹A¼ ÑTÙw}?V³ã"kðˆ2pTrÌ%ª¥zý3 ëËVW³ÇsÁo‹ M?×UçµçŸ†x_¾~Y¶câfŠ˜^W(éõOK¶ÑõC+·z´Ð ŸÈH«qüù§Éx¤—«\ý‘´×r’ÄwOÇûÂ&ŽîæÆÔdÈîÌõ¯—8S …„ ”Ùƒå`¿ÀÅêZ˜æ_ Ü׎Amn5:idα“NºÃ }ü¡×ÙdÀbí–D* M6|@ËêÙ-†®üîwLJ uJÃ|Н ö$Ĉ²¦SPÏT &¢iiŒéy!âœÝÔɨCrz¬zñýC™3¾ÃÇÅPH•ü¿PÎïåØê|#…–Wa•/Û×UÚòY×ðë_’õ6nMÂÞškÌÔ•RlPŠ<-âÌÎꘆ{¸œcÅÎÇk¶ëL{ §Sª*¶¸Y',¢Õ÷·ÄšïEP‡9¼!žÞt<M0>0¹í"dÂÂÕÐ{ª{ü xÑ設ˆ®vÑ–·©äEÀVFD Ú-"WOA@šŠìˆ% ÃGlhúÿ×åfOggS€î6¨äL„倘8äëøÿáÚÜéàåÙÚëôêîìÿáçÝîôÿÿ˜Ùãðãáåÿïôóôíïíìíîéèßÿ‚Õé÷÷ü0à¨DG®b*¥õž%º:#·FRV¿ìý†PüZ ýõ‹FþeOÛ• G%¨hÔ5q'6ôó²Ç´¶xH$d ?NC·U}ÞB“Ä_1‚(Åÿ–MBýù mŒ´" Øk¥À¼ûÊÕ]Äž’¨VÎ%T¾q}!>ȳš«Ývœ>?ˆ NÑ?°d *Ƽ:g§¶b'V¨]¹„E¤œÞ½xþ\Ô>öUM| ðÑ ªÎ{Ò¾%V+x…Ñå¨W©¯Ðö§² ]•)²Û²Û ŽÉrK´û_*º¢òÉ •.–ü5DŽí‘€½÷‚û›z ººÆ§-xб’—õûa{@4iO””îKûeˆŒCUlW,jøýßš®ž6ÀEËU¡8QË”së$.¬Q çá¥~ØXRê(Ó09Tø‰Q¿\d*§.Ù—Ä4Žzcåsy#Éß Ë}A °òýÒ¬ÞGžO+ ]‘S¤Ä"VÝ:—¼tE²Q;4ò`Ê“DI쌎ïÃОhg£àÛv¬¹ñ¸ZDŸI“>» õ„ñ¦M¨¶¤áÑÕÈßí d ÆÁÁ9“gkåMâÎY5Ƥ²ÀLÀíÔ+ h ÏüîÕ‘iÚT0X…9¾ü5 !ý]—}wå·ð\Jžm[û±~Æ¡“OÌö¾:ºv-þµ ΀*±íï=ÍÒt»¹yNJ6UäÁËŒ¨?5ôouÌïi<Ëág8Ž{#¾&].4­ôXñûC>Êw1Þ[¿´o£êºáÔFÄWÓAf^óko,PF-@®nZt2£‡¯Ö`=>``“QÌHІÞˆxP¦Ìô–nõåú,~-âPÊï…16WùÁol(O?t¼,dM&*|‘¸xËÆ~üäú²`Óý!ëíD’$©ë™~NšÑ¶«Þciü° ­ Ðe¡§!”¤ÌMƒ[•ÔëŠ÷1‘Ýr‰3îvj£8½M½¹`1岋‰½dË£/žè}Ëk2”¢G¢Xº¬Á`wìmnAKÎÒƒÀ˜‰f²—žf‘ë?Ÿ»4LÈà ¹sÔîõÖš'ÃüM-Å^›NføVò¬#/¤~8+´}oævŸÒ»õÀs‚(ƒÃ|Hb‹†w°]ÌôZH-5FiùÐ\Y÷ˆ‘²äY—o z{ß&Æ¿Oé§ßõ‹=,•o[QØSÁ÷çw$0Ïó×È^~“+àí`|~Sõ‹ÙÉ>ÜiŪ|)Àˆ[5îÂ…7ã««á qUÍŽå@Û,–¾¿> m㻸£Œ.²!ÔØOVvÉÕ¯¨(Ñ)(xÞ«î·ß––l»h¤gîc††£wÈ‚Êé|Z±ÂWk¯ìûPWáõË’üL®• ¢†Èñ^¸ÉxÆÙMJW9‹9ÿMŠwÕ›”æývšô¿ÐJ|Ä:7ãP¹l‚SÍrÞ›øÔ[®ÅkmŽ„4ÁÔ\LqîŸ~%žX྆„±þzºÓ4cxJýÆQÕIbW«/Õ¤‰½ÿä&‘CÝÊ¡þ¢áfùC²ý¹þjëÇéI¥‚Öw_Y’ pr«`W®ŸÈ~L˜´û¯·ê«äæAõ5oi¡ÿé‘p;k»É’"uÑ,Ê‘*yQÔ¢¤ÀÊ•Ãeߥ/âân/…Ñaœ†ýœ&^üLõa õ§©Ÿ‘xÌíÉ~¸”ôÙÂÄ_Å: |º bþ¾hÅUãO¢…8¼¥öòLèí“éÚ?Åððád'H•hfr’ Æ…y’os¯›‹³¬œqÓ­Yné Iö_(=¼}ÖD“¨0|”½®jµ°Ý@æ®rÆ2Qu‚ {!&B)í Luç¸ <è3jÂz`)©Mºù Y’Õédϧïy©,jã®QJœøÝhÖ–ÌK!͘7ÄÄû`{tØ1óJËí-8øëŒ{@9ϱ¼£áGüMbáTæV»póyV¡¤è†“³ŸˆŠÑEï•`a÷jK%ßvÅ·`gw¡ì[ᜇÓwàØ%¦o´báŸÉc6­".íHs÷¬%ë+Š ‹Îr<½1+³í–C•>œ¼üô»ç¹ò1Çs›BN-†Óö 2e¶îlÌ»/6–iâiÍ€ÅZ%‰ ã|•h/ѳÚ3ñ=™=ÆÐÐym)âm‰JZúÚ¡õ,fu—°‹Ä ã›^¢ÞËj5¿X‚MU:È4ÃyÌŠÁ±­²Õ;Y–IAVšµP‹m-Å/=ŽY~!|Âü6|Ç ÈŠßnÐ8Û§tµ‰“ )\¿æûoIàGà™sV{‹°Žg™­n¥R±å1Á˜\Ly‹ET¶A.Å›¡zÏË<šÊÃ_б&zµø‚ÝÖ[ÜÔ‚¿ÚõÄ\IÐÈöy8î kçöš3ç´¿(y–^éÎÎîÉ’[•ƒz`¤âøÐO-•FÁoÇi@”墵'$lÏÍrÔ–Y¶ÆCƒÝLˆ`.*‹(S¼GªïàD¢„Šh=L‘Œþ +++µBõævd¯Wn™,ô{ìÞ³0´L˜QöÝ— Qìv™V§ãiÉÛd:]FGó»µ–CHƒ÷†*ð«›ÅüIä]h˜nyÖesy}ìÒô¤]O¥=“LZË Õ+ßäêå–ÌQö—À¶Æ3Å#ðNI"~B¤Äi¿q†ç1 ”$v•Ùc'rÅߦ¸ãà³Xš5´ŸOýéÍ’ÛYIô"»óOlù²:ÖBU^åʽ¾ú¦ÏùêaòG„½“;ÒûðÍ­=ôJ"¦ìL!„Ãú}V%šÉÂTã: éëÿ!~= ›Vz¯£Œ±“úLÏÚgè%»ry¾+ŒÇ~{9vŠÆ€ÿ×±Ò©õÿâ  ×ûÿ;óQ?GÕíÔ¦êà*Y¢«ø3W}º)ºeýLü¯1RD)¥Ðu‡_FtêúY¶J!Ø?©p”y^zÒ"z½®4)ïÕ~K:,aSAœŒ‹,<ýÀ«]„“Óó™ÝèØc?ÓÚþé²:‹ yàÚPôn22Éüê¤[ïû”)°#¡Tº°aO%µW²öªÀÛ§í«Kåv “°ãæa2–"Îú·Ò 1u»¢|³gÊ/Eê±±Þü€ýXtüÃ^Ï¥úæ.¹A3DÀÉ £Pxqžääƒ9Ã@QLOM™Ùþ÷js,ћ˦6'Ûv!i›™`C6œõ‹ü®ˆ¯ç¼4H§~@¯M®b€ué¢&Ä'&ffù’R§åt4¯úEvާ²‰ñ¦fD›¨ØùN…_ÆÀ›á<—ŒôL•¶tÊ 55À«%+âÓ\&Œè"Áü;›IssŸ·u"y@p±–ɸ3ê,ŸÄI°9.@~†².PËöá´‡ÙD)(Üq:ÄóñS2sF@›ÇÜ£ü[±[…1îzÐç“¡ÒÏí¶æ4ÍÉ[—›.@èÏó‹Ë5ç@Ûò'?‚ÑKa(ÂàP€ÝµIÊüE0ÆcX^ãÍVÚ$µ}Êë–ÄuƒìV•}^-¢l®UfLòvÇð üQ?+௡ìjxy™äDCˆOs§ \RÚ(¯9Ÿéäq;7ü|®:uOÅiKUÏ›XQŒw ¬÷ øÔùzr†yþµs îëSAÊ”ÚÚ­•Žê´ö°$KlôÓÅ÷õŠîóÞ0NžR#ø()[Ù†0p>Æî˜Ú&ˆpÀƒÅΩ `Á»B!AÊÙšhmp¨`¼-j¥Mô[\²]EÈïP’Í#P…ˆ< <µ¾UÜZh˜¨Bs7bîÕJcãƒ_€§Bv/U´9u"røÐà+•Ǥ!›Ÿdö%#\ð±\ý:í(‡Ô"¼]Ÿ®°ê뢵¼§­ÃjZ)îîdñh]‰4æÖ•p•€K®¼ÿ.Kì<Ùc¿€˜¬Ÿ€-®¾H5¼i–‚­öw©«7몼/níTgˆ+f³Ê¨Q--àú1ˆ¨#CI£ dC¡ÝK[+ÄÚ!ãùÞô·ã°O/ƒÓ*Z@K+j¤{CÉK;¸Cà7&¨“¾Ç:æÓ¿ÁãœéñõðÖLÇÖísL€~àôÀüJ5z}òÁÉÞ¹¤&É?—mlWù@Âlfo–q˜(H‰<¡ l¡Ü¨[‚kiE0çXoÞ'–û^^©™¯AŠÃØ ØŽ6aÓ5¡mª7 hSÝ:ÀtÆÑüºæï—ž¬¡ù6"‰Ðò§÷Ýý,öï´þ{ðÔÅ>ÔƳèî_ãv¬Z¯á÷¡¯ràhÎ5ŽÀ¿¶ûù™+msœc­Pô÷$„'oGúÀõHJÏ`s~G¡®†òÖ…2©75b<^WØVÖp·:ªÓ¼ (5FÔQòö"=ëåÜPLVËèïÀž)bðü®Àüˆagnn` |>l.JÕßfÚ9pxÄ3Sã=ÜJùz¦^ŠbämàÀíuÖ̆s‰À-—bÕ â¹=J¡g9Æy‡íÍqU˜†ª§ Ù“:w-g¥–Yvÿb¶a¬¬îR½´€5ÓzДç,Êë"ÌGõ žny!¦³1ˆáó½sÂÞ¾èš&¦¹J±OvÑÐÚ,!?‹‰²¾_~¹‡¼6ú»ž»þ½*{ûZ`é&jtä³R¹ô8Zå Dû¥ÆkQ×]¨e‚U@Åxâ’4ȧNNf\7‘ÏœN>¡ºÊü®Ë|½‡Ø˜YE9}Á–œéÐ7[£5àùÁNÊC‘hfßë²ùÏ‹®Ä(øsl•H¹ªÕö½û§¥U—ÀáymW mü-À F$Ú…©œDˆ6SU8©À!Æón¦›¾’”¹¤ ¥^w`DjÕŸ­­!B¥%ù¥ —Ã+ÇÜV3)-KÄ‘Cø|ƒÐ‡€ÅÅq¿rü2¸¨ˆ©0öID7ÌÛ"óÌ:ü{uwHpÔïÿ\¼kôÆ¿.jXM'^!œX¯Ú£’[=n ¯ƒ ™ê¬žIB9ðz¿JÊü°ÙÅ|Ô„Mо\àcùí†õ,«ã¬ºõó÷„1³æ@eÅÿ$žLúç©-Bæ®étšøèí8È¢íPdo ¤)& ¿D¢S40®b™Ýdè)Ë/à}éq”î… ìð†ì¸_‘? éË9C=é7§*RîòmZ:'²Á‡y˜ð—ŽŽ_TÌM–ÌdÅ>HÅý¯–êLÐhý™/üH}•율Pi“3ý[hûÂD”$+Íà L•kbËÞ¦Î*Êš¼ ,?:Ô5ùL=ï²²îlpöÙ!{ˆyXÛîWÀŠü°Ê„ò°±kÁß:Óêž; =<bx{¹'§=0Û$¦ô;HS—dÈWÒ.‡ùglÇÂT™®¡ë×d(%˜ç¬&þríŠ {a´s(Ã| Æ¿;Ñí¸«9Œ†Ý'Ã圦UîWÉÜÊ} hÛ/n#hw8ÖxÒy…Í”.gö´ ·ÒÀä´sðWä:=(ñ#®­¿¹à6Ò0ñ¤Ì¥&R™8‹ŠôS’b¸ygùakitŠ–¤Œc0‡eÐÌåóëïÜ@Jê.Í­ÌŽ,á®úë7áÝïÜÛjEµ§c &Ô—×1.ù×Gî”W„i‰ÐŠüM(rA:‘ØÛ²‚@Å[R›®hæ¤t?PÈ»ðwÜúŸtÁqéÇ™…óŒ1&[Ö,- bŒü9ƒ‰Å‚.²ò¡¶S›Þn^1cœKÛ®ð]¨ªÆµ`åF¼©ì0úµq)gÿäðÞ)X~¤ƒ«­ùj>cª„­#ê£æÚ/ÐZ( h:¹ÈåïКiÄ®üžªm×u&Ð+1öT¶À Oåq9[ÞHl5Î!¾ZÃYu‰_ŒZ#…YDÓÞ’½En‚ÚçŒ×1Á¡@úšˆ\²ÛƒDϩԔFœÉf:/«6ñˆÒuyLŒEÉŠÍ‘3Æb‹yø_°~4»jx‡28e6gJ•ë³;º:ÇNòRÃXñi 'í‘•UzEíÓícÎùùë® ö=;”`3:S‘D[÷5í_ïnÕ­}•hÙTkñ¹ælЦ°Äþ.º®¥n&jC¤Ô­cQžQ—xSL1A›ôUƒEB!MOVLÁÖL–¹—ž…Nii¥ÇN„Qã õD5½Ü¾ã4tuê÷–ÙP7úäêâQ[¨ŒÀx‡÷”t‡ty÷sB‚„(—ž =¼xS®[K‰‰Sf²j™nFyÍôPÏýâš´ÁB&OCÆl¨Khþª±ôg½ ýBygüM(«2F*bS±í±éêÛc@SìZbºô’ò{5?©_SûO§Éµóݾ@Ò-GâB„~Ú´É´…{~쌼¸AÑ1½FÕ€7s(³4æT¹°(8x:Ÿ4·tÑlø‹TÒÔšñƒeA5ýIÿbÎ KLaŠ-Ð:¦n*¼ xª&Í= x–‰q%W}XЗ$]Ü|Ýìñgœ]vÏX˜®¿}¹D|<„° ~Û9L&Çùú5ÕÃ’¾@ùL#^гÁþ|Ï&.Ãóg‡Ý5¤ì#õWÞ¶k¹“|bÂ4q^Â&È0¯IUÛüáPÁ<læ“WÜ0^g³ã`{£ÅêÒ\=ÞI~+Ò£ÚÜ¥Þpƒ®QCmÝûùÒE±ºýθ…ÿ“ 3üWîEr†øâÐV/yY»¬:™ZìÆálÚÒ,ƒ99NaÅ“ª"(ÅV‹f•?fÖäµï]¾HjÚ+©÷$PÞ”§c™ŠISødYHï¯kl…€ƒ§,žWW<0I¯µ¢†ßû÷rË%+üá“ÎPM„SÞs£³9CîKÓ××üë4¯ú ØäTÏaªhÌ$0~N1ÿ"4}ß{¹ìÄù`]ç™i·xS£(€ÕØQÏCGÃrºkˆÀX€˜RFÜú¸Ó²növ˜´ÈúÓÕÎ);WüM[ÆÂ,ÖÿÖý¦Ã¦/plô{‡£Öàj·ÍûÆ¥À~´›A=R7/ "™”m‡9XµuD!t±Ã¬5¡aSFáÿüs>ðéÓMÉ/M†êÊâ6Æ ‚å}­R0R˜‚3¿‰íÔeñ@Ö2>ØJÙþ¦5O˜¼ty,Î5ûؤû-åèÛÛ½ÌL2²[Ïm5ÓXŽIt=»Ø÷ÍÎ?wNþHëZeðù*¡$²á‡6åÍÅiì×+.Ùsnì"#‚ºìÂðh@/‰ò"–3Bê™E™ˆn ìºËÉ…4Å¢ˆ$œüLÒÏúïG*ÁOjW:wS?a{Å’¦KÉøÿJ‚›Ý¡*„šÒÇ& e lq‚ ÏöO¢Ð9FlÃ?õ˜{CIJóù¸šqB7µÃ'•„EüBZ„1$íüšÇ¼¨òõ×Ènö$Õ“- Ä>Ê˵YF5…ÁF’$uö¿—CL8'iͱ&xœš#Ñ þÄÊc£[ÌàôþFŠoEÒåP¡¡]º;3-¿`Q‹ouŽ¿#¼õ*Ò1TP`áu~ò§&Èð‘ò¿e¶É»Uóþƒü5û7ÑŸKFEZ–ºŽÑÚá@<Ù©¸]±­]{ûOçá)ö°¤R2¢ËK­Šñ.*ƆÝwÉå¶ALÊBù(o`ú‘ï$T8 gc–Zxƒbh ­~ؽ΃J6á¼§ àûÐ`%TÝ\Õª-ÒÒçfÇ{ÜÞåð7Ѫ*Ã;„£ê$(ÒÄ€gG-õ ó³q‘ÕQù6 ­pÙx·RŸåí«…{Nçþ>ï«dö6]ºŽ ¶YõëO ™÷Ø‘5Œßר#_6/ÌH˜H¹Ù\%´@ŸÞ`Bük]áNØØ¢Àžvc±’,qrÊDjxª쬧Ѷ9°NšvÆ‘a6‹Òj% HVÁÙYê™q(‘+b†DE… 4(¤I÷uæÜ•ggñÙ¼qPQµsÄΗê̓Òu–jæó¾d •ôÕ¦·œýYà›€P<àt*n‘õw£yð;<çýUkÝŠR€Œ¶JÇ–k—ÿ°ï'–Ó$Qן“Ádpo7-?>×!V–õ~רý徤$d‰¸MÜáÛF}25¯Ç¬9À’ÐKVa¢‡öÜ9|ÿ…“(—F°Ÿìö€±…M æÖpa(‰œ ihŒÔ€³M_¦¥kçCXTÖÐ[ˆÕ3íâ£L©˜tþŽ?F/?“4¶àÊXOìÅFª”³ŒáÊáŸà°—¨Sd%“Þ]õ¥mcøå&öJ²Nmã >§o’.²KÕŒRcd+õ Á¿«VGž(3¤Ÿp†ªf ÂÊ(y2wïŸI‰Þ¾ôëžà U4Eîƒ þçgíQòdFáŒUÃÕô¤K ĸp ßüL×nìe¯ùPK@:EiñªAy›l^p2k#¦§|@¹Æ)>ÇnKå“ÖÇL–4  êø’´CJR1›e>Ǻ\‘kÕÙsóVÏ©Nœm;êTò‹9–w¹däLƒµÃ·%ÿ|DåQ¢¼ÎóTœà?©JÞ}4ˆØÕ¦PXÖ™ÿÞþëÄ Õsa z1³~ Zœ"•Jf†Ÿ ¡’M ®°)IKAž‰°žû”ÙÂÑ'n¼{Æ7 Ê™Cí3®¬_W¤4­£ÿ©í }:óx3öp-¼'ÄG¯ ð!æ|ä²Ft¡Œ®Ïð!"üM2p•³3ǘ}1ÙNªe,òÿéàã=*lÙ:Ód<ß=05d$ÕOYÈO¥»ÿï".*ZGÕF“)u¶–VˆÇimL»ôÒ·EÀ4¸ígÀéË#ˆ—xºRã`´è8Î!1sŠíXª<àw=bA•רÈL3MŸ'û»§Â”†¸6+sÿŠÎž»/,HŽ'u(ŸúCª®Èù딈‚‡˜ÈùO{€ôšjÐÎ n„c;BÌy(’Ûþ.6Îo©tÜÊà¸e>Cs«,d~Ì/U­„w ¸ðŽC˜‚ÈeÝ™6üÈÈ-Ô¦ópÝqü°ÓE¬#Œ ‰#ÞV#½;89?\}÷hÊßSÔ$ZöÊ'ÎäX™ƒ¹û+Rû±s˜4ùšäI*€b¬þÖËÙuç²Ò¬2&+‡@K âj°Ê6ÈæpŽE^1v-s,¿g­RŒÁHãMˆ—|aÒBþŠÔáßnÛ†„µå'¢ë•)ÈûÕ¨}Ô¼ƒUF'pªT‚ŠË™ˆÕüÁÇÎÞ+¾©Å’uÞ‡*©MF1Á˜kÝ9 Ø"b?Q$¬dÒÎd^HOµ]ï \à ß®o‡G ƒþ6,Í××¹I€]3R´½¹(WÂÝü±nfW‹w.(_Âë.ñŒ izë ³ZŽÀJn—Óš“ÎÕ#,8.0M»±kÄ.‚T´¤v‘r]¿w±©üö+Ê H•û'+™D/Y˜“Ý»U6‡Œo,Ï{¼óJ§‰¶5ï4ï q³?Kg$ÐÀÀ¶2¬;éí¬8 sý¿ßQ¨a]ºqÄe4hòÊZ33^”•?§Zk2ÜJÕo°ÄA>º”BXY¶íȨ‘²oút?/•@Ež)ï½×ÌÞ“¯f¬¸Bv5íŒLoú‘]E¯'j€Êw F$MšF0 WÞѵ"²÷ƒ}•$žAg¤®ÁÇÙ•féóÓÍ=DU½HÚYŒªÛ PTÙåönMo‘¢y™óšv&nüJ?L%èéÇõídiãàÐ7Ó\”*ÚïÜÞÏ´%©Ô6ÔcFgôɵ5°>Q“®§ÈÜU¿ªþHSRß&£!<Ò‡E ý­ï|!^ÅX¥î0BBÌß1]}HÑlïÒÄî%ðÓG€Tþ¼÷¡äõø ì>¹‡hŸ3ûBHÓf,˜IÆD^eÝx¶‘ÔS”—Ä¡°û%·†ßÖ§¢z§Éhá»ë)ózóü+‡•~/‘Ò MXËMˆ…÷HnÏæqö€huŽÁg<ŽùöQ?¹ÎÍP+úÇaºrÛ$þn¨÷iÃJüMt¨Ð®?áët¬÷ê1 ”…BÜ«­†'«à±‚ŒRÙTì¼ïcý~T1è÷–í6 RïûÅ0KdÇHôMÈF›¥m‘T.4üÏ“PFŽ*ßB[î!rwq´ðbeñÕ&X•“ò±·®S.TGY3YL´KÌd5Rhb5”Ï™åR(Ƴ.rDý&‡4#?4:ÒÕOÆë†#}G1€%½8ÑQ‹ݱÿhœ!V¥ÿ0É'(âÚ˜,ÉŒ˜ž8kñ¢²h¡.iÚ’T0aõí‹ã*ÒoRäùýÈäØ4cŠtEÚE£Í÷^/Œ³oüIñóYÙ~ľé"µRhŒNñûįD"„´iFKêy \@$n®nü9g[ª†`Ã4 ¹4AÃà«ó†|k$}›¸[¼ÍQüQóAÖjÅy>‰!1‹Cȳ/‘«Ÿ^ðMlI)LQ §™“.=v#‚’E`­£>¡´ù, K¿šÕûŒ`}]ÚµÄ^#ë6iÐ+”´)p’:ͯÑÀ‚¹o€“þŠ_…(] åÏ«Q¦6ϧ›ö9o›Xk!Å-Ô&¿\föÎBÜefB›&vlü}[ê à™ìÊ;÷>0*Ûolí…1NU¡pùX±´˜¼~ë ‰_+ÍWŸl)pº6¿£¦wc§h°Xdõàp8!d]²¢dµ& î–íq­nô·C8 ¢{‰ @uíðõKÛ%H ÒmK€ŠCE1òïs—›i)íñç»Ï“•gM~Ëá“^¢àÛº-Ï˜Š éÿ¶w*hü ’³½š+oºË÷ NžÐ÷É;3SÐÛCõÃÑõ;ñ®ÿÒ¬6ÏÎ=t|’ Î@7Å—ÁQ‘½]¸æTJ¼î¢T5‚ /ûïuš°g ^~>Š¥€ýè†ÐÃݵ²  ‚õš@•$®D¦¤FhDC› ïnÁá·„x¦/f¹Öa­ß{s62ž£ 8?JEùr~Úúæ;Úñï úž•Í«ɰ?’–dz3ì­œðb²3é’œb-ŸãÇï:Ke]÷ì×’y«§_ß}W݆…ÕìÎ~JCýãü1 ]™<Ûì˜B\Mds˜…Hwȼ#)Å";×èI dèä“pØnePŽ«¡æªë÷˜í yÚnTŽ«AÛ|—6oóM‘$8[8âš×"zÐ: ˆ·…FØX¼L΢‹º1eÜÖ‘Fù?_^fØÓ°rUh$Ü/tanM,‡‡}¥Ou/ü縉ãØÁãjsÎ㛂ꪷ¢·'™ùü+ (¼úÕâ¡H”«¤ñ¢ôržЊ­Ñú“/%=3nP{¶ÞnðÂI«–0b oF‘ÉïÖS×FÔÚüL» {²e#…^sŽld1eF¡Žpfêòhôµïöëˆ}w2ï!›Bñ_Þ·ºåSUëF.Ÿš´æT:Ì#+²†9 c™‚BÞú( ,îØ3bôöнëd»Ði2Ø Nm Š %ªÛÈZÖ¦*p.ÐëFßÑcü”…pª­&a$ Àó¦ÖôPA_‰|ÛÑ=DT“ ³`ìèÿ™NúîcäÁ8$ ‡<óöŸWøb­Æ^ÛÉ7çêLÁ —ŒÚÒ"noyEƨA¦\0€WºÒ²Èž¥WØ£®š+.Åu÷šžíD¡æÛOÀA+Y÷$yÖOggSª7¨äMðÍ©;Gûþÿœùùùÿÿ ÿ ÿ¢éäâåÜ×ÐçÛéïâèÿˆßÿÿ ÿÿÿ ÿ¸ÿqîÿÿÿ ÿÿ¸îøÿÿø÷ÿDãëîþùüÆeA0»5e½jàÑf“´6cQC<”j †,¡$¯‘ÍT)o÷Ê™ö" &ñÓÆ½&Mh ±eÇ»ËÄâ-$ÊT ýƒ‹pQý9Ûç0Ö@¡#Qâ9ï«æB”=ö‘4 *ð4œjLÈFF)´_21vn¶ü1 ó}³™îƒa©.ð)m{±Õϲ·ßnsÕ½ v±Ž²Ø+–ð]ʲ‡ ¿×ÛA6gâU@ú¿û7mÂë »¸ªWoÕ™sKF+$F´?yJµ6!•ßums‹EÑê·i°uÕ.3TAøt>Fô~±¡i{_PŒµNÛÜ%¥÷„¶JvæUÊÔj4ºF¶zéÙG” ®*ñÆ0•éûºW–Öç·Q€»QÆŽÌØõ<º;Tz£þ™Р«ÅŒ“±ÉËIžG ŠºÔ‰¤óbù$Bz™zàL :/di³|ŸŽÁE»h$6Û º³È›¥¸«*¿üIò¸²¤»¶°¦ÙyuØ-fëß ÖÉþZ+Á÷·5#ÓWl>аÙóþ”Š1—¡ð´N¬%:'F%^knI…¡°Â+œ]|)]‡ÌÕ“( ’må·Àf$‡ÖÜÕÆÒƒãF3DÖ‘ž»žðµürEÂ:Inò4‘¬:‰‘S?{jF¸ó ž;–<ø}¥ ‡”ZM‚S`èðO;…**™A‡Ø«dò QYc”1á—vÎ’'ÂHŸ£äK”DÒcv÷‘XÑr$¶ÔhÎVðãψ{žVîÎ\÷æ¢üIèn§@BP¨BY‚Ä–˜˜<õCŸÍú3dUþî$÷Î!h'ö§ÅÞ’\Ý ¾\Â]^Ÿ×Ȥö„©cQgº '÷’–4P­(+Û,%ßá ÌÈeÓaº°E½øc8ˆéÅ=y@þ™Ô©1lIü?²I*šç;o´A–ètó|<¾[ 0­A8/þ #6'æ©ó7]_¦VŠ.?‘±¹¹`Lgò\Dý¡`¶`“]wÙ»ÔSPe ;-³Cþ ÜøÇK-=D÷ øàœ† ÎN‡ÈÇ ’Ç®èn‚ROÈþ~Te ·9¶ZJâzZ— ÿGP1ß:,úüÆfñˆ\#ÛÂ÷4^ûš×“’ÚÑÆÉú‹õ9M“»jÖH¥¾"ù3ýœh{[@nZ8ÂÆmcþɃ|s!±9߃K¬jàl>œk‚Ñ Õ©ì:ä4©ÞÅ7W9³LL¶P!·Tò›üe÷áüz±V´DWÒyÓe*ŽHîÙ=¬ÁasM¦=Ûzh™ã„1Ë]$^¥=ùäÍ»ÛÞ|¤^w÷ÕƒÓaKc‰©§{´ZÒ^ìí¦qú¡í¦Ç0õ ýæE»9.8®«Ðä+¥jGçêç†n–—ûn£€’ÖfèÍíA´´‹BÎqkÃá ±³CÀì¨ÑÔñC·P¶üÌà_|àÔ,cQ Ô+Òµ­ß)²[o·r¸ü?òHš¶n»Þ½]ÒjÉâŸ!è_ŸüÝ7vqvæB±}#eï¼ ÿ Ø <üœ³ÜqœZ»s¡´‚²kþ‹£68è®”€ÿÅf’7韇8‹Œ×Ñ?<µweGyPnÞ"Ó‡ª¬ibÎ îw”WIZ‘>:j‡•pI‹ìŒŸÉ‚PG-gÒ¾xJ9@ÄšÀ>ú‘§© A_ð!ÓDjždäœ@èxù9¬%‚ÉèlÀŸ‚7T©Ã2Ÿ—žW‚6ää X|47³ôKÌ^ÝêÛIŠO_¶""m¡w¦ÝÑyüÍáå1í&ùJ<Êeà J"7÷?ï­8Ïàý×xšµ&;ë‚*÷1{µ#sÈs¢K*,~Ó,DB ­8PV„Pû‹€%©¾)öà²C€‚}#úDk$™ #Ø%7Ï>®½h’Ò³¶óV©g™¶¦¼%ÌöVIõ<bVS™èîe3–!ƒÃUW:†¡‘'$=×6ö–î“[tXGü…„wK¾ßË+E-ú…QáÜ‘ÍaJ’ p¨¬;1Ë$"¾º„§ÑF:ÿÄ„ˆT}$øV0/K±¾îûOoì.¨•/·P0ßv« Ý=<TmdÖ6ÿ§Í*¯müMUê“Cxúc |f¤R Û£(íìV Þ¾K¢é›enšÃ;‡Q4o+žB³^D"ånvPOµý'ƒ'¼5©º*fè(i:×DXv•yÜÅØ®vóÅ_¢¹5l¸ØY´ý²¬Ò¨9Ò.m×ñiç<¢±v€oiǿǛ—2ÚÓa£á£Xš!¿W5Ÿ¤¶¨Òc/a1ÿãqŠŠ‘È"ÊYÕÄvÖoÃõrJß+td^V:×°#Íë[oξìj°ýKÚvÚX0í°P íq“Uj„žA¯ãF£n‰à77t²Î]•JÏ^üýÉ£W8¯íP…ÖÁÆÞuf><_Œù{Ê»ºjz#…wè+¥D´E|ÒŒ£BS'2ß:¦™ƒùõ-$—ðÓx©Á‰à¯‰Gx=žô÷:®A yÈ4YÚ`aÓëõkä<Š> ¸,ˆ +þžtô‚É cyž›ç“!ù^Þ.‘%Z]_‹ ¨5>[‘¶Æ¨¢i‡æÒRÇ÷7N¸Ï¡öûÛA}T¹š_ÄBÂüL´Ö€¶%CÊü¦´¹ 'A¦¦V(ž¬g’Úöuÿ!1þK¢€tºe' ðø¹,˜QÉ®·€l>…+­fY>SÃþ›Ç~dn×õsn`¥Êp‘RüǯåµÿLéM4®ˆHÜ“Âi.¿uaiÝ yÚ:pþ†ñ|ì6u]A,Xÿ÷wjúê*X¥É¬Ú ®Ï3! éÑj0‰‰Löe0PP ˆûˆ»\°„ ØZòv£€&(¨å]‡_™øÀÉýߥWUW{¶Òh½tÐ~ƒ(–ü5=û7U€ŸAü8½¸† 8t)s{íØÖvWÐC|fÙí<<¹=°Ý¬È×0V­D‹¥ÀÄãû%Š®¡ rCÏáBì. ኳÐ-,“½¢gé+K?ê»m„ºsŸ ÜÅ<ÐJÎñŠÅz MÄ-júÖÛõBuq[ú"Åy×êÚf#p,…‰y`&!f¡¥zòfö+Œ“€Í¿r}쿱|Hæ"ý–¼“½RÎtÁùñ)td'Îvsöå%xS+ÐÆ(²}?ÜKi¤GÀÚ„˜üLµøFäß½³>?FØÑï^º}˜<,jzþ—Š„ê)§;© lûûˆ*P ‹MóÍ®ÄB—©EÁk— ó\±Ç¢Áš/0”Uñ$Ö'@=êê|—3È‹’Üš¿SÐñQqWAÉÝ ýüH©KèÜõ¡Ûÿ”û‰l{í6U:Ö2m†;—Qƨø³Ö¼…fÆÐ¸:¢‰·%¼ëíêkì6+ˆÔs#Û‡Xª±ÚÑ ß!PDî*7Kž™Kkyå%óëô¸;ÕæÿVŠùÌ¡üMO¯³”þ”vý€c2æ›bM E¿ïfõ¬¸\hšOf´H•>0 è¸Ž¿å¼VûÆP¥äÀÔ4]1Y_1ìΘØ\Ũ[^lßøO¥Ð5¼<é5Q“`ckŸE¦ÁƒjÅmøÊäýBpwž!R“Ç×ݤU«ô3Ò¦»Ûäƒ*2r™æã£ŒºVÖkÜu3 ?êcMµënC }ûP(ŒjU ¾ºo,ࢇX*oKÌxó̧YïjÖÊîÁ6ÍjÞS[êiJæi"PÑÊqš‡çiÒS:á94–WD²O~5üIà$”ñ¶£“‘3qÀ ?®Ž’E5„qRÚÈ}^m&!r[4fab>öfsƒ$ÎÆîù=õ÷êªP™nãJ,¾p'æÅPmëýäx°YIéŸpΈÆsƹçD÷&Q7׆V§îøK|ÃË?zéî±ÐÒU§µžá™C(ÎN·›ˆƒ"ö¹Ñ‡Éϱ­'‚û,ØÕ‰#õãcŸKyó9û¶¢ˆBüëÅ+®ŸT"Ya É”p¨æéÉs_D=6nZ&ü l¡ú!ä=:ô˜ ûüM*YSÓò%û½q^ÇÎI€'{D"Ôk24ãìó‹Ç7‚f®ì;P.ò@àL×±€²(× ¿óW*.éX® ƒR úU'FžìÏ’Œn*ØŸ˜kORê5P s›ñJdpDÈɶ0QŠªÒÌœ 3èn‹Ë>üëö[o–º›r±—çÈó¡)Æ©¢Uc9~Б׏õ`ãƒ÷¬Ö•›`B˜øfRç ídÔ x …È_ÓíÉG~öõ8Ëx#÷lÏ%-‘—ràPÐ@yØ tã¼=øGh Ýì2æÏ4FoªüM1Ûþéàã)ÄÞ-†Õ^†—Þg¤þ•+b·s=òBþ*uþ¾€Ü èøÈˆˆ3ÜRphöÖRIÁƒ¿´šÃ4dD)î1÷ZáÄM“ÇÚÉš6Z¹ûÆD³ÃHú¦žûž8·+@#À;q¼ñë¢n€¡µ-²‡Ð|•QñÂÌ3"©÷çÓ;yåín™‚â—¢ Aâ(G´g7XÊ`¼âås† –úm@D{9×M:’CV_0^À@ù½¼ê£µR*ðmè~¾òõq›Áfe?R„RýH^A)S­|]û²·vꆦQ¹”Kö±ÏöÂ)!bðáüÒ5‘n½œ>ñÿ}ßµK˜LQ~,³ êo?Ó¹M “–Õ1>÷hmO™È2Õ* )GVJ@«À˜Kfèü‰W÷¨z,k 'yÎõ]÷ÕB6¿‘m¤“Û…àÓú7ÌyŠHKüÿóþ+É7èÇÇc{¤Ç*ýF/ØÀæçq¢`9ø‚¨fŠxX3VÁW€7G¦‘<Ã0™#üÑž/ò“Y}ÛE.`ÃøF‰ðÏ8N./`äK׿Da#nÞÄ]ê?^å—\Èü~ïhµY0q.ÍЂf뜴tK!$ucžÙð{ºuí‹’Áf”žßV»ØÙÓfì²Ù’G›eOj!täIZêYҢļú‘®ÒÌGŽb3ïÛ~…¨iˆã]É=—Ò‡¨×–ÙdË9fßBR¿áàÑpc$©ªbgñ'sç{Xã,xBÄ`lž<£ÐávóïÚvÍ`ê­¿•Šðô…¤gÔºû#øëýJœ³–dÂ(̤]Êм‡ TÚXòèY/c©»Ue°Þë‡ :‰tº~œŸŒ}D‡ë‘”³Ò+ø¸u•6(q±ã]z s‰·¿@þ­3/å|g”F‚fÏ o (¦Jc rÀàñ7˜æér;—Òc>]yèÇÆ³¿,e<ü}bMC²Í%¸c]¹ YÂ!fI鎦WWÁy„«x6‹Þ”Mõ¨]¿])ì€ý ¨ËO6ÆÙÖAbµô1ÅÏ7Æâ oŠÕW#æŠM±Uumbœ¸¤Î9ìärœÜ±èTã.ìö‰*8êEÁ¯3b!D¥R \`š*Äÿ&ލì…"’pË̼ uâêLúËo΄ÁÏ¿ m´R‚ìõŒ…Í­£Õ§ÛËìMH ‰¤1*ÜS~ÁT¨šAÃ%5)Lx«ÔûOìvX5Hó¥Ç…»˜…™ˆyš¯Ò ìó˜8,/iVàžÍË®UÝoþ¤M[ÚYÉÉH-2àØÑ¿èà ƒ ¹wÍÖ në·möm¯ùµ|<ÂÍY\ ]É‹êÅlÔN?ZÛ0uÝWâ¸à{”¤ZHÓ[9²õÚ=cÇŠ¬'¸Î]S0ò&§1ö®ê,„dPÄ”# t¯D>ËltR3ËØ¹C€ŽÆö;Uudb~¦æ0™€Ìâ@—A²Ý‘”+b·Åï ¶\ ›É1“*4›nª= † „œè?¢Óâ®}œ /i»¹”ô·[ñö§¯&ü‘ê 탚…E4åuÌKó2ùX³s†¯}úŒU(Üå¹Inß;9CÇrt‡¡,Cœg9“|]-Is#¿W æu™ð¡w÷CˆéÏ,I‘zSb̦ߠ÷Ú•Än+f"³¼–‹!;"ìn>)b;9'†©cÇoÇZ÷mÚzŸ„¸žªâœR_çJâ©j›êíel†ÜD…‹€Ú7›XEñŠö:|5Jö‰Z'ø o“±ñý&2á%Ôiõ™ÆÈiÒ‡«#vÜÉ?¿ ã;¼Ÿ‡„Óê\Pà¦N>VæÕžg.OjþÇt÷ æjׇ©ÕÔ&rv†Wrq‰SHµéìx§»nøHp`ÚŒœ]“«€¢Çr-h<1\ãÒ[žïRºo¬#d©S,f;v/^h°nÛݰ-/íü ¬'ñ@=‚ÃŽž¤Ü `Öã«è¿#PVêœÖI<VÝ*)â“’z™P0 wOÁüÍágȤE+inF|Ÿ5Oަ!¥Š}^@}hš@¯Í]_³.› ‡_03eð¦€êÆâZ>Íkñïná\+ߺI3@Ç5 n‹\}ý‚úN›¥t3‘6sY^GåÆMu!Þ wIÆÆåå-çÈë2­ODs&u¿ãÉ•h & Æ‚°nçÏìÃ_F…BLÔ7â°}c—¾ˆžÁöB¼[ˆïÕ_zY3êþj’ë6°I Šc¤ ç$ ãœÿÉÚ’ÉÑ|Üü~€©çº uÙœ.6Î{šÀ Ã0÷7¿éîµí%üÆu^~ŒŒðÄP¦Ëˆ¸ýlhr åÎ|zÅTð„7å9m:lweg†>oª¬Çó[®ôŠ>Oœû õT†#+NÜDï›WÍ6ê,Îê@ñf•ÉoÍ;Æ.„¼Y1Û±€¢›w×ÐNÌå'xŽÏêíFÐúÑQÅ6UWkE ÜëÕ¶úƒ”¹b4MÂÂVó{úFè–©˜ê€ @õçÐ4œM7ÿ»Aßlt7±Šòè·F”Ñd¶:ZÊý}o“é7‡ÃgÍqyðÊL!œÙ݇'í§.%ÕsÙwƒG´ÆåiPÜswV°¦×\(»·ÖÖ)&ß+ε1!r¬žóŽ_'õ¬¬›à6%üIsmüš‘wöêÑ´UÑ(Ù£÷†÷È赸'üºº"—¶ x¤Ù¨Æõ;~d˜q@Ì8VÅ1!ƒ$FM(cïI!™.,IÄ™ÄwùÝ‹«0ñÈè+ ZŠÿÛ÷{)nÒJ»Bé½O ÄÔ8œ.{aºäK~¾$L¦ëÜÚ ;rþ‚=i0M·e§A%$€„àG±¤4¼ 4Ú&v]* £¥÷‡—=FûM'›4gÜq %EîrÉë0LW—uçÎoNP–鳨¼…y«®ÈÕ©ãU>•C/|VMÅ ¹<l"ëî"B©ÞFŸncÏãò+ûÇ`/çe&:5‘î-fNg¹UèVª¥Ÿ5(ü®Š-ÎÑ\Ÿ¬£6dfÁJçêÒ¼ÝÕ‚UjK÷•Pªó~‰‹wrS~H7ÙЕ@,+5ˆ‘jgEsÀì'j»Ú#ëßãÚ{E÷wnhÎy•ÍÁ»ÕÔtjYÁ¤ßløÔ¾ÉDdüÁGh=S‘ƒ2ÓÄ—¯ƒÉßÒ÷•SP3Rˆ2éx€¤Ñâ§½_84úeM¡ ×I>s*õpÈ#T=û ;9£wnA¢vê«Z}pýVòË·«µ8ºãY‰Kr8.kƒŽEVÓå6½åËí!×׃¡E¥ž é#¬S¸AE*ªPqÞdö\cª\)„K4Æâ›ƒeW ì§aÐÂúR‡oÍ:%Úy0ӚĜü®” ,xøãG½/G!u[A¦EÒ€†‡‰ÈÿÄe¸½é=âSÇæ‡ÊܤÀÓ ÏgÓÑÔxÔd@X?+£d!( žW‚ä²aùh·&ÿ¹æ|h8Jhú¾Mîÿ~x¢ÛÕYá§G"Z IÓɸ޺íQX,šÅ;o|Tô‘F€2® “”>Ûa4šM`u]wCÇ0~àö0Êq/µÌš”]ÃÃR T”;.©‹½òI©EÇ('é€s[éÅk‰ñÃe#\~iIvWW*õ1=~î´tûƒO{‹ìݼ`9¬êVM_ý÷´ù-E!B§5ܽ˜ 8Kôþ[ˆ µßÖªÒø†¬œü|’!í®(;R %:øÍŽ#8ÎT·u5ô éíªGÍwpLþÄb°UÒázªãl£ç^B"¦«QäÇâ<Ô|xîÙmŽ4¦nÐ )Këj°´jPW¢’¼úÖIžAàI‰ê"Fž¤-ßkŒ¦'æÎ¦m÷J¬DhÑ:¢ÜÞX$GLŒò–8Î Á*z ¡þhqŠU\—%–õ¼u¬ØñÇÿØDK•M׃ë_@§‚¥Þ¼á£ú·³ä ¯Pæx¬ÓŸ¾ï}V¦¸Ygß^∖fTtûVí\8·3=þ{ì¾ÐÜÄ0[%òä0¹ÖFâäïó…ƒÐgd»oœÍk‡±hi5ÕÏ¢(>¼Á´…ðZ’Ý$$‰=¸³¥F«O·wmí^ØÛ䶸DÔ.Q³r/ͧâ*y´óNp¡4SÝ¢ØfcKŠÒ‹u­øò4h³çæQå±4*^“zo ²×•ˆé™E%dÚ»jX8ï¼ÒÎK VÆ—€Aˆ_‡=è€8n%:ÜÆ”ó‡ºÌÕZ§(G*l‘¢‹Í^óä§{·Kà£gq:;Y>üJ@^<Š^w¤8iPÈ v÷épóîænpÍ¥%æëz|Lž&ðà¥~rëx2r"°™'g×ÖºoƒœG´™¾9(œO‚¡±C/0RÌ„x¹Z: ¾èÀ,ç»#Üí<\¡`ü’ˆ®Ý*[!äõaö‹ÎjWš,frÄ;“ .ËUƒ?¢f:í29*öTiÂÿð=7u÷'µüˆ°WÖHøùY°êÕ(k¯ß\rNÊßÒxîo6joí9ֈ̶’H_[&?£MJ¬p>ººéW”LzÕˆ—Úcõ¼…ï5ÌRÅfq×’_Lü13Ÿ0P„T)«ùû9j|Vn7MÂã&¨¤‡—= LO-ÉôNn„ò !¿áóò>|6ÿÐ&Üݤ&^Àe½rµÄ̱zÌYšK¾­®dš‚¯Âv’>„!—„ž®«]ÓsÀzôK_ësLÙH+‡Vf—È蔢¥Ð‡¨Z´m}Ó3d¹Ýð¡t’‚åjÏëIÂ+G=통È'Šá·Ë’+ï]JËãÔ_í¶êߤ}8Ê®¨hȹv¡á,ÒAUÚ ìQ¶QÓtáAÒ®(-X+m–½££;$XÒž”è交EÎí¯U’¾w61¦µCÁŸÆNüÆ„öû¢ªÉN9ë|‚pGãJ„7Ôº¬·«F†&ñ³„ñý?ÀX Æ›WDVÍ×<Ú›âߦš´t´…Ño\ /Õñ0v<Ùì¯o1…̪@Áy{ |.FdF[Z‡f~rw“lѱ>L%üÉ€ *Bú(м´j¸œx…ªêã·b_Vw6m:‘¦‡•Ä=ó¹,ht³ÁB[ÐiJb “mjÏN ô›=ó/Õë¼úïmˆQâÛ;—·±å@ÂS@<.$Œ‘¥ÔW ¯•ñ¿²ëì'r­CÉñyƒØ02ysXf¬òÔšHa|”£ö­H•ÁÎ1pðÅqdF%@#d]áD.¼ Éá™I¾âaøSgH†Ç;žÊBq|g9BïºÂíp;®=§Ò&äÄýÌ}£îÎìô‚†'/«ŸÅšaüJ^‰fm-¦Žô… $8VC¯üÚsĬ“²Ðˆ¢`-ÑžJ„c}Jvð’?9–§PK«ŠCÏ>*~3”¥¨®×ÉÛÍ{òx/‰™šÅÈüº&/ñÔ·1gLDÅ?#BÞ&w\ÅïË9†ÑIF'ÝQïb¨£ŒÈG&R±7d2È6’.2]0/sÇx<ùÇѰj4,éÈÝ_5Ýêi$^j¨KÛŽŽ´ñj úð|U0>ä‰k¨Â|†ß.aŸ|`|ä›­¾kò©ŒçéH—›«Rr±©/Ð'iÏ<|ÜQì7¿«ëJ;îè2Aw»ü¯õ~`|€Ùtp¯§_ð‚H\…N“Õ»GZÎXH`^¸×l>È^ô«Å ¢DM9ó~·S«:3Ðü®ÙÀ¯ »"šo$VÍÒ@ÊíÿÓÒצÌÇpHÅÿ™~F,Áÿúüưr–, mmýÐwV&Õ] èШ H¸ˆð{1‡JÀª+g{M—dÃ#«×Æ‘iï4øëa±Æ£Åì6ç´€ÜF° kª×C·6ÐákF%,wóýD1…²Ê»ýÅ58žh·š™‚Íý·\SóÉ?™}ܰS'dòIÇ{þ%—¬ãñôÙª±ü±oÌfhúÌ;¥Sƒñkì×rš ÐÊ5·-Œå6ÜSz1û÷à SèkW×اX(ž¶®Ç{ì„;ŒLbø¹UèžîÔBÄ>$¥ú%ø¬düM0æ$”Ì$*p”˜ø‹:÷ñŒnTv„Uq©UêtÎ2¨•q¹p³m­ˆsаÔ€²N‚ö¨:r¨õˆˆûäØÂÙP¡™s—M.Cë)uª©µGNLðú0Dfã8Û™?Ò³7­EËj$rEf‘`¹¸l°&Ñ—”îJ[¦sœÎK`µÔ¸zÇÚÎËÜÇÑÓDÊ KWFþÐ9*q%廽sãpÈX½Ýv„øÞ¢‰Ynþ,à4$hТ¨*•¥Ï:?3U F²’r3öª6µ {° ‚Kmvתs-“̽ rØ,”üM+ÓA¾ÿûªq•mSuÉvdž‰nhœbÆ{®â(B2ÝÈdš†z<¨I.$$ï—H”KS•M¾ýöh ˜RókÝ(q›ß0TÆdÚú—‹!NCÕÀ]²(AÒXÐŒtQÞÓ?QR¬õÇðº+3ñ´þx±(è$4ôüóï¨uM9?,É›eôáqv¹O3‹¦f˜aéb´¦ð|!nÖÏ$àµÍ R * ÙfÊlNļ›cÛ:åÌ»—Š=®¢1 »nóÁÆäcþiRZµ!e~˜G˜=Aa…mkË´å—F†ãäü5.S‚ì3òK*¾äóPµÀ°9ìërúû^*ÿ sn'ø‹jd€¹‡”¤ÝÜ‘f|Hty‚Ô#U¥ÚúŸ°µ^WŠ]"ˆ 5¨‡Ï1±RÈ€ùgø“¨PRZ¤·U¶_xüOÏ©(DÏÌ_ì”4 rƒ hÜ%»¿ÃmU‘ïåv‰¯k-úøšV’Äé^¥Ùžõ žöÉiµZ‚Ê6@–m'ÑÜg¿hE{é6â©è½}3¬ƒ%sœdòþ!µY¨‰Ÿu;P3´ŸI>G'mÛ éqBöI^ˆ„%«¸>)¸‡°SЮ-¤üJFiÔ¶@|ÿ0N¿ÇkUdZRib\±CñCä;´%cÔÔÚ rÊžlS8 nrè ÉÕWŠ×µ¨Á°3OÊ;ˆˆ7Õ˜¶ÿœ 5Lú;ŠÏh,6ûÅå#‰ž” ‡vRêû!œGê@ð#X@öOv¡?é,8Ñ3–:T)à­KÂjn 1¯¿à’OZK¶B´wPçËy™œüÛ†ë›ø¦2Kù¾õ¥`Š?Z¤FÓtP¤³lÐ8&lA¼{”ìÄ]L;=¸)˜¾S ”'ý +­·°²"k±ªÞ¯çÿª±n¿äR¥×ÝWAQ8Ýu0ôê$üÆo `ý[‡z8øJxΜ\ús„œœÒ; ùuÁj{’YMœ²>§;#¹±‘¥ TL>Ý´ÏÔ0I\Pç±A«ËhO­÷æà<`·I1¶Ã9c…| EŸQc¤Ì·ù»ÈnwÑðIŠØ`ÐñÕüvWQOεTèx~—…0F™=§(è|¢j¼¹«È&GÙye¾5Y]‡Ù—Zƒ°¶‚ˆi›õÆÎ®i.3Þõ¢HB«&ûëÿ§ù‰@6Š3t…þ°™“(z`¿Øª{y\ •3hY(ÜØeqÅ·šå4¤96áâªo€é' uø5zU÷¡OggS€e8¨äNÓâ%5Iÿÿ¶ÿÿÿÿÿÿÿ¹ÿÿÿÿÿÿÿ±âÝáØÝÞßõíçïòíÿ§Ý×ÓäáâÿÓÙÖÔÜÝÿäóÿÿ ÿÿüÄr·JÉ!¦Ÿ}3îáÓ—©Å.Û8ÈÍç”ö¶A²â¤:œi&¹,U¬W1”6ê°°T,ððïáïþ}úº«¡)iƒ÷ÖÎØÆS‹†‚‹œðoèõ¿mÑYHDM#÷·¾ø U×<éfÊò¼ !—:ˆôr¼1èIƒÉU(ÿØÙó¬:úåäò‰%ke`Õ¸C|alEalÞ¨ò2ý|bµ ïl9ÏTZ©.ïm‚Ñ=>Ñ@IxšˆO!Hes*)Wd+{|Ì|8yäøL¡:rÎy~;ßNO‰„Ô8 ~¹åK'x:üM¨¼Xø[­¬)ªxÓBN¨ëâéQhe×óûа”]]eìÏø; ŠS&nøYʨH=Q€ îêV#ïÐöÝWÊ‚hÎW­6Z³††Á‡Ýí'tvL¶>CÎ$¸Íï{'ñÿ°wC1…[ñ?½®pkwuŠYÃêk8jׇ֛ÙB˜h‡¸Ôà†„¯} Þj!RäÀÊàË©-`Vàï¾Q'º‹0W¶¤Æê?;iYØáAH(cÆyFO w\„ ˆ}+U#Éê>}=’Ë®¶-FÚ†ºBp4²-ÙÄÐð3‘ûø3æÁU‰ó—KnUý&ü)…ÂXá\üL㟮©ºÝ¿dtU£J[ÖûAºKôºE•-Qß±i3·}6e¦Èª€H^ñ¹Jš²Z˜j°“‡xÉ@ùÊf©âyŸÖ¶fršÁ:ÚãhÐ7ßÐúœø÷ŠâP`¿üÆ$N‰M& ¶5 ië!`¤½ V@Ëþ@ÄèÂp=è/…ê0rôbB³¡v9.wKÂ+f[ì¢'8I±t‹V\ãnàbAIã¾8Ówm²¹y“_ÍÀæ/uz?¥SÙNªš ãÎHGÃr”%ƨK"aö>“ŽÑîÂÁ’¦OÀÔç“ ¿ “PY ß+ (büÆlz\(ÖK³1ßp{ëTë1¹¡ 1H.¿Ž3¢Û™ÄBH8/cµVçÓqt£ÞŸæ˜z·¼ v•aO0óQBþ‰ÂIÅM€:Âð°«KÑ}…¢%ܬ85­­KµðB}z“Eë£T”W²n«©tøU[ ‚]{Ÿxa¢HS‘ÆSý*˜LÞ¢ôLtŸ$׉̻Oµm-DîÑë7Œº(®‰ÞKê­÷Êèy»Çó€Õ±.||Ú)ñðËôØh1Üû~ºÊC߉ 8£Bt¸K'éÔHðéÿÌVâ¢sѶ3vl¢Õ(ÞhM¾Æû“2·jõE«2þ=Eð¡ðaâ/«ç¦üÃð.`h))šïnSpÉ—’™f÷×HÞý:[ëN­§¥õe£CéôÖ’_p– ÉŸzqWœœM-5ÌÕ ÉöÁÕïf”YéT4*r7VãsöNŸj¶Á°RŒ%˜­ÖÙ4`Û3‰Ûƾ%´X©ËA’R Ò+åº`zTz!}Vøq4#¼.‚2¹¿èTænĺ°æ¥¢'ͼ„žÙßÛ;iÖn¢ $o‰Gf\›ºð5efy`Ý·¦1¦Ô¿‡ÄžÙ¡0”öÿ3»ÀTãŸûšG„Úw7Ö] îzÕiœNW²Hï:ÿê²p6=Ì7 ®¢àoj —ôó‘Qå§µ¨² é÷n>ä’Ýf¡üÆm–WÁ1ŽyÔ‚¥9|Ô‚mthÐ Èi/Ó#cÙ'ï¿øb²ý»">Ü Ð í^بf¸‡,¾ŽÁSªœ^X…½X„:͸▄šÓšðgàʇ£Œÿ'UÌÚ3ÒhÉa¹]ä ½&†³Ð™Mõð뽩~ KÒÉY”Emw”¶&íÝjáÂô§|§>ÝY«[­ûÎxpµm TµÇ•)¦ÿð÷ßx-åæª²¼†P98 _‹÷¼›>Ñ/Kò±8Âã÷‹Ìnç6òZ<»©²þÖŸál\±|'P†Wý˜sÊ@äÁÌ¥£±€óú'$k¹žÆÏe•b{ñÄ ÚæFé·l¿—0ĦüJbŠ1Ž]Üt6ðešåS‘‰Ð%C O*L·|lê0¤©±Òˆ´>.äѱֹRoÁeè‹Ñ ô1ᣣÜÕu4$ÇÒß§‘_†-ăÉ"#áåÜ/äÝ•õ »á½ÇÃ"rÇ®äu2¤A¥Á$`ñœL¸¹Æwą́_X÷í'½ï§îV+­O:òÀp¥¦Pë €ú¹Þ•Ú»0©ÉN#BÐQ¹àµ ÆX'Ð'ÕiTïÖÑ8¦ç'‚ßÝÊ«3Ó³˜ˆ$¤ö‹×ЬMã©aÖÓò¦§½zµî~!5õ‹¢ô„°\“N½Q¡š6›AÎ’½áχGÌÞQŸñIÚø×ÄËÏw¶E‹xü|·Híh‰g›ãq”¼§G@òY‚ÎYÞØ ÀIX¦”®2bÌ–æ;üL)㺄uöNVzá2Ð ¬A®Rr}y›¹‚ öjÎ,FQVVájz^ø¬¬g_æ÷–mË~CÆíºp…è›Ù3ß}§ºÐ#%ky¦•Ý‘<¤gÏëÞOÙV˜}ËÉ´OL›ÎG}2[åÈBš9¤F8…Ó‘„•“£jU¹öJÕ»(ýü“R›-®Þáè{Ç|™ƒJ"8BêG-:û~ETsù% Áð&£¶Ý–½^²¿RpÈñˆ.ãÃCü':‘5üHr»i7BÿE&$æµ|Ó:¢)‚l°üOý…xw¾¡x«ÜKÁ\G;•šLvÙIoà°«W-F‘¼ûŠA¸¯åþ©TóÿŠr‰â=Ý—-€ Ü[Ê3ÞOWÔ6(ÚõúVh>OZC™)»æ[ÁëLñô‘ ^¥Ù­_„åãapKÊÉ ÷ £W{«*PI6î IÜÓV7í¼èI&’¤þ%äË£ÿ䄵õÛ³ŒüIú¬\@/ƒ•>$},üJ9f`öÐÁSøÝÄôl¼˜ÂX_{æš«¢ŠkŽsÐJ*r­£:¦² Áë÷j£ÑÍQeÍ[“§Táů#«3«å/a(Žð qñÆ4DëºÖ€ˆƒw³ôîæâýb˜SêÝlÃd¸“Þã\GȸeNFTñå"*R‘ûíH~CÍ/ñ³Ü²>¹rÖ£òﯶ£N\z“»unáò€ºÏⱞ³rŠšêUçØ¤ª€OãíôÑüÛ†¬í]€vY64}HôEV(R;Ô–º¥&Žo=C^æ§yRB ’&‘ëbú^ŸY5„Â|§Ç\ÉEw8ckS‡á¨zêÉ´ºµ8*ÒÞKpzJø²WRJ’ºmЏ]ÔÅ“§¹Qý!r‚îDŸõ`´KYg” £wƒtEØtZÚòS¹Ø Ÿ,þ:DR¨±GgE:>œÄ÷›^[ K™,²cuSIÏãNô†tÖ!]ñœɘ“FMÑÚ#Tj½ñ<‚"'<Ûz!‰P¾´žì¦]X0Œ8µtù>OK|ï™sD‰½2ªc¨Î:@I ×Dž©á,­¢†—[’©ÇƒHü1–b~^ñµ7 Ü”|œãþNR#ä1íÔ£^«V(O$÷É[uh«°øfmêë/ qVÂ#‹‹F`hîϘ´ Xø=³ £ÿÓ8sµMóOËÍ)5\]&ßæˆ&cbݵdñð£áŽ `¢R]?4—Â٠ĵ•ãkú¾‡7û.Úowé£`³ä„„/ŒNÖÌx°ÏˆÞEßç*8s0[%¡†dÝþ-uÚ¸ QxÆŠ®óúNÆb72c:¨üaÂ|nǤ¾ôoãY¼»Ãq®l6àWü±ok6nîõ„5©v£ò¦Xº‰¬ZBnŸ0”“¬) d‚Ÿ¸I£z*Å}>‚ž)<ŒV^q»5Òz–?ç!BEùAòBù /šŽÔ/)õŒ×ë'=5~Yº-½ÿF؈¦ß,ŸªðÎqkÄR6ð)’+©aû›·vŽTwQ¥ÆMæVÇ__еu¬½TúˆÆ¬¦ìº´Œ\ï¼bÕ­bj\eš$19´¶…õQDæ µD¯«…#B4t®Y™rEEæƒüèË{êÊ)r%W åÃzS…tÏA¿ù=ès8‚y%øâIÓ÷'î딨âMÁ¦ÇÆÙ#üHÄ9Q,–¢ÖZ©Â’@“ü0e±³$rÉÔ%XBæšîy;n³ Ü™Ó9[c†Ž­áñæÉ (­¨jÈJJ-“m-é¶1o™,¼ô s¾]@j’ùŸïeçx.qÏÆ/†%Sh ?È)`¨´To7·%!k$0q5_õ—¡ÊKùuÿút ˆ£ º°õ½þŠ??ü·'³$Ó€-©G’Ó—øË—YëÊÆ¥ \ý¼„¼|ŒÏ£Qô¿HžSnÁ?}C,/òY”OŸÁTª#ïCWLÐ`¸ÊÄ’XËñ€Û炎âL¨g=ߣp×ÖÝà ÃÐ3hÛ#ô¡ô_iÝM [ô!îºâ4hÕ­ZÞ"@¨sÍN~B ‹Só©·ü®àÑö-¢ã-UKz†CôÁ‘zÐú´Ò€¦'A)¯|Ý _VŠÙ@ãÉ×cFŠœ¢H‚–2 SãEꔦÕÄWq04É´üL|>bžEãÑí—ÓUU.Â;uFn†åüpÛŽðf1ͨS$ˆãÒÃYû²Úñ¿» jbx?b?è¼F×ö)¯]‹õeïßa‘i,‰W‡´FeÙ¨–i¥ˆœ;ì„¢r)–ÑS¢ 4†R%ÙÎ]› ‚Øöž;=âO X‘ÊÂ"8®ªC£ÚÁ@@æ–ñË< ‚—I1¿¹ h$‡HÞ%»^K¯‰†ü-››;šÊ9íL³KdR¶Ò1ʆ§Üs¤;iݶ@Þíîðž€Ñ¡ÊL)9i&£–Oe¤|­ñ2FP!õÆ›z»¹^l’XÖ E\FŠ`â[Íí=NÊE12ëæµÎ«NaW®£%q  j6ŸÊW€eƒ+üåo¸+Û‡¬öíþÈ €L¬ |je]6* Õ\äÁE·2È£_ÿHõ@îðS³à¡20„’ÝŽü“ÇF»iK¤oÑìÈoFð›ñ )#¹üL×X¹šÃ¬—ÓdÉdx-¦¬8y=j$ÉXm W].^ AÏ\K7†"þiá :Žñ‡I—½o®ûS1׳Tµ5|pdxuG62ñB+Áøôé‚O¹–å~Û8ÉKryæëÅÈÝ%}Ú$6Sj!ßšKÓ#÷D7ÔF¾ k™Bs„ôJgÚî¼¶ˆ”¡\½]v즦yé[yeÊ %—þ¼”Âè2a#±akÙš§s|C“ õC2ò“wÞÔX °0ôØûÃB­2”Và.ÞÝs…æpUŸ¦U0Á˜M>ÏPöår³„zÎ}üLÃ[§— Ù*û½=@òÎiŒº•*›8ämx³”Y6#—.´$&ý§ÁbõQt#}î>£ø‚àÃ@‹Šzö$r‘™Ñ ‘@#“!ÞÓ„y”Ÿì Új²Uœ°ÐöÃl‚½¾]”‡’ü2Z"¯èÁ8¤H¿¬uq¶Qo?É*jnì›$Н¢iþrÅë†[wÆ(ÌàÜEÝÔéR­ŽA ùàHsÆ‹3Ñž½6¦Ö2fD9% ç$¡Œ‰¤ ƒ06TL´¥‚$ã‡CŠçÌüø…D–“ú ¸«0: $ gÒ‚¦‘Ñ µ-fßí|X5d—0ÌÊíÞjtqœæ£ÙUç¡ÔN\cŸ´W8¦óZ„Hçàçòð4ˆb|L×ÍÃÁ[w>ÿ?ÁSÖÙEg©šw¾ÝC)“ÒÅk6;õà Ó[óˆvÆ%)’¸·åßòÖ”ë9ÌËO¤,¦‡bÇ£ú´#X<ƒ-®4bE“–0oDÖÇ#= ÙMÛ3NÐS m Õ—y¡xÛ?oVXÙ®›øŽaL﬿{ê ³ûrkÙ¦FpUOì2—üMO§ÌJ·y$¨‡÷üÃRi-Ì+Ld0>؂틸©8;±%àøÝD ;ߤ³³ïª\úî×ì6§,rì™ÿÑ"·'Ý„½hRl¯5û‚ã`½ÚOE¯œ­Ì5É=w°údjxèf·°~ðþëÞú r2bùë\î×­E{Ö;²,Ã…GëK¢+¡·»4kùî-Að‚7XynóƒBv°W’%D§ô-,„ž £÷ã*Ÿ¶x\í7 ÷ËŽªõK¡iƒKjmjp‰r6ã¡ # ²CTüIëÓÑ*êª}kF½Øm–‹8¼4™þ¿ƒ[ãÒ¡RuѸÞ>Z¸ûöJ=P(X$–"°ƒÿNÛ2õJN`o´ŽüOÆPIɶŒ}TÚ õ;æk6– PÚÚJò~¬ØŸAë+÷A¹cWþNxG O¶dæ¨oÐrjXážÄWµ¹9Äø2<È„ÿ¡\8EöóZø²—i;Yøÿ¡¢Ë#RÆÓ½¸tÊgk®Òšäåñ»ް’“àøó ˜ò`>‚ëÙ–ÓèÊŴ᜺Ûm²ÖŠŠÞØqÓOòü5sW-åä Áâ—#®ªiÀ]8¸CöÂ\eÆ®Ix1"¼ˆÚô̟%I#%bÊ-1½'ýN v®éÚM:þ´$¢˜ŠCþùç¾Àñ_žÇ‘k)×7Œ%K£´’Ó¶VÏ8š£H*3AÅíÚ¹8GþL÷{é¥Ð\’í9ñõ‰«³{$+ÏpÊ4%Îp§»à‹2m®¨Øc¨9þuìkéX­=k(§Š¿sÞéÕzŒ`KW&»µ%¶”lùã†iwIô³¤Œ–¾1Ï9ǧÝüL©³AîñmÊÇÉÀ6qÜâ–1xR>NÔ¶&7…Ü‘øf—Ðg¦¯5¸†1Äg²0ø‹mNª—7‰b%°ÞêáéšAÇìtÖVqÏCÐÂÀë%­?¹ÿˆÍƒîãBº+Åí¹~­S ž'çÒç¡cóCDÊ2dÍ]$UG5q¼Lw¦Õh†‡(íá¿ÑäÇO¡‡_W²fG<­•Œ˜@aó¤-aU8³ÏOþ×ƒŽ€ѳoÁ÷6EÝ·›-mK&ºùÚ‚WŠODm.cÁ“ÂíáÝÞn~Äg–0iO—:ÿmé)¶ÚüLù jMÏ—õ™ŒRP'N*M<LJ&ÝD”c3{ŽYŒ³‘êñ†@9h `2\ 2—O*¡•'ç¼Á¡?;E _·Fv‚èTw;às|j€Ö…ðwêʇŠy¢~ãÓ#ä¢]ÅÈjò¬5QŽ©‡cY\VĹ Ò$‚¸ŽüÞœ0€d”±&, ohîºáYÃÁõUšßˆB¶¯Æð÷MpVe´µYfY“HØâ^DN>‡gqÊFY†Í.sýÐÉ/o÷±ðJ|xˆ±ú´oL$÷W7xŽB9•{}sºa—ÊO·ÖâÔw•¨v 3°Ãü6‰»(0åg”ÇÆ«)»f„w4Â$·^ꊨÒ:â2ù[ šbÍøG“ú–-$ÞkÒG… \TÆLWUë'ýÎBÆ!ÔÝ‚îøãÍ(á€S$Õ%ùNBY®Öñ„;dÏJIzQ•XO^b4-ph*Ä®$^NÑaÑ–~YWÀ†Êµq® ²@jѰKÚ?îÑ äfF¦ÓOYëjŒ`v`±O~ ê7å®é®©JQcÞœ óAÂÛ¦–­›Ž ³T7–°[\Â÷´žIDzâ±Í {>Ø £½…žÚÖ‰1À¦NüJ˜3î ¢ …2HÚµæ‹/Ô|aÃü—¯ o›~œ– ^ƒÒU8ýžml–-ÖYSÛ˜ííߊÎ?~;ž…Ó2¬{² ðPIh_Ý;@¾Ÿ±]ÆÒ£#Ügšä`¡ÿt¬£‹åMT.ʲ×¾ž&æVx®Á$^R7ŸÚ6.ðƒÎ¶ù,t¬£zbŒúKf¹dCÒ–¡nΰòü1ƒ©öH Íðå¦Þ®ºî §ú‘OÐV-]…'LŠPä[YÙ±œ¸o˜5B¿¤c éˆL6×{c8ìl}Ìã?`Cáï¤\*Ôß) m¦»Òúí5;¦¤åœYòËõªMÑP“°7à[ÌSC;:çÀBÉ< maè ëM‘ ²àȃÿ ED§¹ t¨‘6À•ÄÕ<Ù7?ʱûf|¿÷&ØU_æÂ0²{…j*˜‡@ûìpA–³ºN-R2ë3™ùŽ7¨ˆlż:3ŸØ“nm¡»¾"GœWz¨Ë’7,›nù¯ÓÆgH:¼S´´ü.2MùYè7V‹<Ï_Þ-H‚¶};¯)ÑÆº²ÿƒp71¼œðy·à[ÓBKž:l%klgÊ¢ëx…ë+q:J0,«©bŠö¤ÜJ±ØÑá?1ý{¯HLã–z*6N[uï×;g¤³œ%C<œÖÙ´û‚-¾ØŸ6¡y•×!9ÿO%jþÞAPíkyGðÇðwãµKpUàù£ÞJ×IcªÃzhX+Aí¯ží¯½öÊáZÛbëISQSl˜Ńls¤#¯)Çêû½?×\+mÛ²¿‡Œ<û ÐSådÛ–› Q«H"8«P½WšIºìÚüü.{oÛT}UG¼-_»4¨·í›ÁÛpyëAŽ€hΨéçòG°Œñó—#¶s¹SŸ ß\ %ZKUžÌñú½ÔqU{:ƒÀ°fÃ?âye[mýðóŠD7°´—QÑšj¬’¨¦d;¡36áÅÁ%øÕ ¤-e~oåÞ-gFÄeزÖB£q¹˜5O¤% íN‚p‰04Ã45=©Me³‹ O£b \ç> ûinî01,Rs¸U~ókça;Ûº*­ÿÅ<m–ÕVÞIs»“ÉÝ6NWi‡È»ÙwoŠzæ»0s~'_"§Zøâ‰=p²Àpþ†î¯ªz^ßÕüÿ2Ä{ÆE…«ÐçN¬m`SGtEcCÉìÌ`A „ìdoüLً̇°Ì½ãŽ §}>Xˆ²a@®” ç1ñ¹y¼lü¬_ø&(Êø_hãm{÷|ÿ˜'pH~T1 CX—šˆÃUòsz’szp¾í¢ï6{§*›÷¨î)êOgvÓ¹˜‚9ròÊ—ÍëSozdðGÜ^ϳ¸8^Ý‹â}k!0;‚ÙÒ¼ŽÉÓ· ©[µ• <ìºXu]xŠ#½}aõÑ,XE”2¶Öß"‰ä3É0Ãào}Rñn%Û áó é {ö ÈÍËìEÌg²A¬èòlG¤š9CòJDá)ýŒ;™Èõ†ÞLf$. >ýÂ>«mE{ÁªX”~{æô»BjE Ê’f Ø}Ï—ÝÐ\:¥{^ –h²üQ€r{agÊg|¾»þü5FTCé¡Éb„ 켟çJ†òÛÁíÞ‚úü|°&/¼¼^Œ†h‹‹^ÍIÊe€»ƒåïËôvzõÛDÎ0cgS¥˜®éPR¡|o(‘c#4“®¿zPÑ¡>§¾·$ÂYùK%þŠØÞpŽ2<@¿€+IÏ¢'õÓ@¹PgÔÂr_ Ø79ãHÄ|¡[Ã…jP¡°fÛ­rÌ€™Îj9ã‰Ïå¦E…œÚ{ÿðTÅöÓ}¬Â©ðªç¾¯•¹sà7è£Ø·*óÒaLVt!~l÷IrŸ˜™.%¸¤F½˜óëa›o¯O\Brr±Ê¼9Õó)røu6y5ñÉsØ÷[gS[gtHŠjËp?üM-ŸÎºŠÐDdnE7QsÕ¿¾ì&}CYÛ¢q)ÿ+m ßhA"{4¨¡ºp ˜uÜñ ¡£°4•Ë#‹“¢°i3Òs3ÔmJ ÷yd•ïù+­ò;Úüj¹õfµ»wþnkk;9»ÔéݾԋÃ5‡Q]¢¨£¦£¡ÜãçjÈö d~6Ϧh+蜥s·z§ÔàSà‡š³ý8q½*?âÄÄP}qôÌØ½á¥Ès¼!û#qàv,í³7]-9÷Ÿ¾z®‹Ãq€e “öüLÊ¿h¿&ìð·zw…£æ‘±æyy¥záž,ýÀëþ»•ÓR.;çk¶âÔ'­ÅèÙ—£ƒv*쩤û{qÉ2¼Ds,ÁÔ>vc2û[¤å0G$à¸ÈÓô1 Æv‰K‰Ý:Rõ}¢7©úDŒÇ!¼ øª­d&á÷Þ&9ºXÇðgsïžSÝC¬ËòÂ…5¤7«A'8°áC©S’2ìõà††çÀ’ÂfvÁx笞ªø”@ëíœtnøˆŠiž›Î;;TÛð2k‰%a¿)kðÙÂ9ßüL®kxcÈàø‚}yk?œXv-M7,¥½jxhF(¬êÐh„úéê§-£}Å$ª€Ïøˆ}­ZKìÀ»¹§VLcâlVÇÑ„y’ìµë誫‡¤%1((–Ž5Žð¤ñJF)â`VHÉÚw-éR˜Öµ—¯jTJ‘#Tc=1./ëg!9CKRoZ$ýl”†eú á8ˆJ`Ù6ÊÆ‹žå;8úEy›‰Cšü‚‹r_ŽošÁ ¸Fæü b^ÒCíý=ÞuRŽU&EÒüø‡.[CBBMè¾¼ŠP õYfeB„JT¸µñO¯# ‘ê Oqy!“=8šôP”L]€t#߬Ü›¼EídŒ[ÙçOØEÄÑÖ‚/ëƒ32—[õKºVßÜræSÖûÞ í†¹YÊ«lq¹pªKMb¯B›c¶_Òõ†4cFG¿?œº2Šê« ¾`³¢8qL§Œe Ú´c驟¸=âû]Ãþ/Í–4|á{)ó+â¶cŒ«8°³¨c–BÌ›ßÈDñnŽ8ßÝ^þRžüIörˆtÜb™A˜¶Ú…H15H‘G­îÆ»~cX}>8ñ5:^œkr®`ÖÐÒ<®ÜÈ#Û-t8Èk«ãFj3&T~ÒŠð¾Šë§‚Úm¾C\18h–l×sÿe0Î84y©¢ø)÷¨asöù€6Î]cˆ+}·ttoçŠöoÊèÛ}úna©>j&]ä… ëÐvdbf‡ÂCap–ÿ:¾-Ì8ô1¨Y|‘L ”Åö*©þÜÇPTšé–¡²´ÜŠ[Äòï¯ã ‘“"D4I "ѱ&¸94wqüLÙ«¡œF œÈ/ìeñÒ²q1qº¤ÞdÙkDwaן,ÓSiFóí}Þ 5ùÐå†bsÃÆ—g_j¸ê¦9,ÀÊÈúb»ˆÒGÉS!Y°T&”!f˜Bd{µ™§¿°>gðm{ ñÖ!HææÞgÓÍóìFˆ¿1¨-}d— pStŸ¹>U'ã&%žžç‚çXM‡µÕŸvD«Û&«Å›ìG—u¿ %f pÓ³šPÓèkŽÿ˜;­Í¢& 4Oø« èbGXáômÓ‰¨ küIÞè„Þ.EUõ‰L¯ %¾­ˆC`G½Óe|qJ¥a,’tÓP^ 3¸¢Ìf\ÀˆØg* )úÅú°‚iIí¬ÑŸåº4²sÓóQ;¬Å”Þ9Ý´cDšèóö(›>rKˆªdâÖã¼Æ#û#ÏVÇ Æ-‹|Ðs‚‘5(Ä^ƒœ(nÒq¼nÛYåNÂòܸ&ÃX“wO}ÞeÑùØd±ÒÇ¢×Þ?•PÜy¶âë{ =¨¹°Ùkéý’­ñû¤&­F I3H“ˆ`Ïש¢Š¨ Ð\Ã<û·pOîU¹¿xöìˆ;ÍØtãô;m†!Gz#{•ùs„¹-ðüXΗžk…£Cæ9¢zÄß9‰\Íü´•üÂ&÷¹ö·7ªd}¢êárqLœÍ9.JŠ#ͽ2ÛCæ3]Ï®õþqånæK”Êæ=X"Cq˜JÀ½÷~,‘´R³°ˆ,C _Ó1vªóÉéw[ u ÕéÚk·5ŒÁe¡b´¸ ®¹Ï@£_*Q))ù"á·â÷Q­ÛŠJàKbt«¼@ÇÞ]O{’Y×)yq#:WqmGÜ×} ´xç•> Ò06-c ];ø¡ï GÌFÉöºÁö]› ƒ…£cšáÒÓIiEÛ3[ü„ж¯»¹±PÛŒ×Ørk[¨¿Ý¾Ò[÷w´‘¹ 4dòþè\”ðøÓ^WÂýì2Ò‹ºô›B “€‰»¥:€1vüS~=–­·)2È`‡öØ1X -Õ¾Uó²ÁD$¡·ËÉ9Ã9r°ÄÓžxŸ»Qy…ÆH¨K>ì2Ð@AÞˆŽV2òèà)W“–‹DÓK˜ëÍ_ì¬Î j–cúôFŒoáÊôõ“Ö÷¨œ¦teÌs®±PãGIK#ìp?÷¿¦,]/™3Ù8’%'¡ß#ûqˆ9%UA}ÂÇ¿Œ\U–«²[â3”k¯üL¼CäŽLÒ96ª™šÃæy@±¸f¯ £ †úW®u•ìá óv$†Ë´ÏMø9<Ÿ YÄÿºŸu5"×_‘5çØ6,†qúžd¹Š)ú%¯ñvÎM‚Õw²ø."cXÖëBN„•ØM Ü%Nð_¸Æ¶¨ÓK9­Œ/~B¼¾;8vü/‹÷ÖIý߆ª­Œ]ÜŠÄû­ò|y+W¦°÷#t8 B_Ì | ~,©ùJ7Y¸ËÑiÇvÌ©BŠ‚Íè€%ÚÀ„›ï¥”~’dÖ#4ÃB°ÃZý@·ØxÄ£ ®â¨¬aá‹|¼Ô´¼ 'RÆÅßë:n¹k„U…vìŸËŠ$sC(ÀÕ¢Þ¶Æsš-áóÑã¾VcmôxüLÒ Øó—&¶LRÎyðØè‚J?Ö¨•Q«änyÊnV—xÐÛ8oó.”’št*;„Ÿ8—ø­Ú¨åŠkƒÇÊûá¹ÁnUT‚3óšôD§<ÍR‹t48tâ²ÒšçÍŒ¬³Ž)ÔŠ_¡ðß·,Ȇƒ@ò Ëh‰VhŠÊ¾ à/Rs{ebš# £±íôhÉ}[‘?E‹ a°žÆèY¶,‚¤¹ºÑG7ãá”å, !¸Ml´hå³vÆvšK”wôáó"ÙÀ¢|5Æ}ËwÉ(É–wêl¿¼¶Ž¸é²{np™»ýõ2Ñþóü¯w IT;” ØÂSü¹« ¥RŸ†ÿ¬é:ØIüM’~2‡ƒŸZòá%<‘]âÇqv}kïð„¯ÜÚèdÃT™'m#w´×Q)ÖÙǹB¾uÕ3#—™¼ ‹/l ó¶]‹ð4!ÝðÕC‘´ô –ã#¸TcËàs|4u@ÌY@Xb #‰4nq¢@/ødWœKU™bôC–›6B@¥öqGQ3袃W÷Ù7E’Äÿ·oIîü ”Ãù…̺ªªÙ‰ýgÃë“Q¼£Ý½ÑpkO±¸Ø¡f#¢‡Z#??Ìõ‹wˆsQj èGž ;Ê×wa4¡¢;ƒÆ‹éüø°H8xÉêän‰m®_jˆSϼŒºö4í±Œñ(ÎøÈ9ê›ï+‘‘øÇ‚%SoëÃü›†bñÍêš9‚4ö}œÃzá:ôÏËæÈÆ;û¦k¯jæÐQ•úÍ 'ÉQe…ù)kÒÎz¾~EyxÉ»ú½ÞÌîÂß4­‹§’e’ÈcŠ!UMNƒ½þȯùŠ…wÔ°xÅ~ëCfº~†R,øjC-ûÕ F´t„¯%ôÂÀÝ`}déH2÷«1‹Ó.U367$Ÿ™4Pmº¨ .Ë18‚MÄ—[n†xùÊh^Hß÷‹Ôbé’°NÑG Þ²>@¾Ô–b*¡öDÕÉ>Ò9ãu¦áƒÝ÷>ûFl·îXcvuì€Ê”i9h†Ï5â÷|ÑÙÎçú³ä”Äé1OggS!9¨äO|OÖ{Bùÿÿÿõôùÿ¢ñúþÿûÿ ÿµï÷øÿ ÿÿÿŸÿ'ÚÕÖÕÕÖáãàçæåÿ“ÿÙÜáÝßÿ±ÒØØÛÞÖÿ¬üIŠþ0ßTª·ƒµh¢ÚDóF^˜Ý±’䤔Ö-]æØvç“ðeœánØíŒH^ê Ý'Z”wœò ºlL rxò‡¯«ÉÔâàÅ;ÔsôU%—,õe ~¨ª|â °a¼± †ŽEÙYøÜ%A7´Úð§ó¢nÇCíwÈû«™–ºŸ&ÆvÿSºÅ ± t«S<ìêy|/QOó´Tžë W°*fFŽGw‡¾´m´³òZ¬<¤*4G)M‘³ü˜¥ ÉÔ­cfê¶;‹NoYð•Æ|˜pBeBÆÓ§ SL—Âw»¾©¿ªzß35v_¿‰ÞXŠüV©Ž³¨ÎvóíBµàŽeH’™ +9âh\¥Ê|¥Vâ¬dðÅrÛÑñêi†ÙH*g ¡`G+²ø&YÁ0«7 ¼ÍiV*}|É}%¬÷’û¹˜i-Èoyö#}讆âôÛMp%£Íp|õ!HÖ¸2@ëÕãX|šgnb’æf%£Üz½_Õ|-ñWªW{37;ß™þ–WxõÌ šþÁá°ðÆàÉFvÌhõî]G‚&„­R~=¦a7‰nîvÓï¥A Óßkínä*zOQ¯Ä(ÃZõþçqÝK3CÄ ‹Y0fM]d\wS©ÑÄ„¯ÀRjʉR±ü°àûì×Àp†PÜÔj®ÐiËÌŽEJuF·"ßHJß’<í´(·<É/Z'cÚ¬¹nÙÒd¾˜“l]Ú…hßWÂæSs‘©Ž£ ,Ên^їŵ-V¢¸>³i£úK…¦-J¯4&åEÙK^è01û›ÂÎxø—[6\ÒúV4l“WìHžTÓDgüÁÇ|NÖ$¨ÞÚ:–mˆksƒèbêGSh÷Q¹wLj>¶®ahçË!#ŠC¶rÊáÎö0#_»§pOe»Œðºfà }mu.ú0Må_äc' O-îàw«»‹[™àðãgð×´ˆ7ÖK ÖfÂ+ëö'»ü°É¦ÙIÛñ,\®Ç ¯¢"2œc~Qà3 —"±^÷jýÐI@?Ä·a[”„FTÏÂ¥ «µÿ@žœb0 (kwI­Nˆ?ÙWšìÞ»PKZLX?c¹¡»C5-äã™q ="-§&å³yp\TÌe:O;•qY€vûU&P®xÅ=ªäVn:®͆ 2¤5$>ÞÍ‚ f>Sð¿ÊôE_N=üˆÃ&”¹,¥.>a‘shŒŒB*ºµN–®Šy”’+f Ï\“Ïu‡ç^°_a$ˆKógTKõ’3š:Ý|ž=ÌW¤Ô¢Q\U[nÇ6aøð»üL°³¥û¶]FÄq. BYLÚ‹xbU˜é°ž~fƒÄ5ÇkÍõ”Áb<ʸgð¤¾N<޲Ûïº ÚËõ ýŒÊóÌü–.؞ߨN¬º2ǃܑɒ=©HY’¤i_Ù{·ËÒ*¹Nk=):=J61ËL!Mñʬ*kz¯ƒ"€·ö?•Œ•³ØÏÉrÛù³uÊPW\Àœê‚YT–RÁõ¦à¸ÆÙ†8Owmðfo¶¦ÌwÙ¤†¸Éö×VQ)2½èàãÓ•Sð6´´4»¡ÒWX²çQªÞŒ}RzÒÑvE?º\Ù¼­Zÿdrþ£~LƒüI}ãv“4Iø ÁV´ÁƒÚ‰,c M}´5$L •¨wñš+ þKYb ô@rì^CH(j7…êg= DÏÇÝ_Ýñ‰D»L/=A©O0åù¼J°C}¥ïø¿ÔcN¬;»ÄOtŒ›ãª°µ ϧ)ÒÓÂÌíü¡ötÚµŸmÀ)íOø` ï‘—¥æW¬ó¥…ö5^N`K½/×é¾ëg¨‰  —†‚¯å^V Fá¼Aw˜–(Î °G &7±§Ž$¢kw'—ɯ×Ä+|l ®õV¶•MCë²ÁUòm:ø´¦ƒh 5ý2ü±“4`·ž¸\ã! ŠÆS…ªÃz[γڢÉO.#³%±]݈† e­Ãþ¢7 Ìß<²IÃUò"¯pInl€ÐdÄÏ(ê*SŠ0<Ÿ\—<\ïOt´¢;œb©KÑ"ΊÇ*±Q8ð~™ñÐkpÚµØí`åž$ÍËr"?æZè]Ý·ñ0\¤¸u«²M-NF’ºïª¤`¶ŠàZqWòdÈ;¼¥,¾ú n¾ |ÕŒr‡[Íj±ÅµA)8:v™ñ©ÁáÕiDF.*²«‰öï<í"fž)s@Tµ„¿j‚×TRW33™#1ók‹|ü}Q×ÃÉ=J"-°§„¨Xóù†ë‡®VDÄè\¤vÍŽpCE¬]êÖ¾-7{ws~ÛhÁ!.•ðº¼J/¶ÈUøH—îœÞ=(GmÍéó'ÛPù#Ê LEë (O[uã°©O–$0V4$eâÈvjÃ8ÂQ–_ª×Ã;„ $ÿ2Ô@!æ=ùëmJöõð>×4R`fwº¢mõA±Ï»³ôQSëWòÑ£ˆéÕ?ù–’Hƒ g­‘{·Z邜‹†¬Óe&È‚ËÝ‹›V¿öÊýÜ¥ßòæÎÚÀ–ûäBzÖÔAq¦Åլ㴠£íòC»àdÆ{£cEXâ.M’twÞ%x¹ú#¨LãDÇìæ Å>(/çXóY!ŸÌØVºv}ÁH"ÁŠ›ô¥ÃDÌU×Õ Ñ ‘Ù}âE±?!Qÿ¥ì:Ô¢‰cÅÅŒV–{÷îko¾tµ–‹¢Ì“D,Óžc² ?J¬»F¡„Í}°tPa‹Ù"gº\ŸißÕ©MšÒç§žhQX‡þŒÊâ#Þå¦åËÜwôüMU1=Ç$†RqV«žRõZHáÉ&¤ÿïuÀŠѣ}š¼:ªQíÜv«§(l©,ân‚ ÉH‰”„©xkû‚ÁЇ`è 3²d9ž6SÄåVû5÷ò)ŸQ§~1ÿìæœR˜ªvÂfÞ%…‘C&k§„á̇Adb•i;•6‡ÎŽã®@~Sy5€)…¹±6û®\›¯mÀ¾H*Æ=©¸ã¦VØæ-¼»-(–nù5ñ»Uœ+¤ê“o ³ÌsuÅ\Æù®ÿÄ¥åBIKé¢C)uD¼e†Å_ÃHµª?•™r×'óí«Bf &²nüIa Ø·Î1ËJ°ñ¼GÍY]îbQ(‡%gø:ß¼ð³ ÛêÃ㌑·‚þštÑ" çürõ5Çs$ÛF7dÄCøÞµþ‚‹{Å[äØÔ’¿JýÍ1¨•óù“÷ͽó§­‚·2 ¹.û½Ûp#CaR|bÝ.ë•oÖðâgíì0EMfßòx‹i¨•&Åz#Úœi$;Õg_Å_RžZç­`FUy$µXý˜ÝBh!ÄVÑ3êõl6µÆ·ÛiµÏµíY•ÂVÇ&QzA…9§Eì8Ub±Ùò1 %€LkS˜ÉoM¬ (8ô_%<ræÌ¼¾ßd„Ð5õòï"üI`4ÍK’ˆ„FŠgs¢Ï“¦Ç3 c(Db ” 'ÔqgÉKØ£Ñà-µª‰¿ëLó*Lv>?‘Ûç‚›ñúÍó»^!W–{*DŒùµÖÛ‰mפ®Ç$ou_ˆ”aë›á'õg¸<™$JêE› øïÉßÛ ušÐ ÂDÚ´€“WŠT—vÜ=;BÒ⢠*(+®Ýf4ñP2ãez»Ì4—W’°ÓS½»ÌUfN.o|]ÝÃëù®úÁ˜Ò!ÂV.œ…h#IÕ—ZŠèåZÃ;-ŠÝ8‚ÍQwƒ–´Ç¬ wÜ…>–Ï®ìÒÇlíÝFÜü±Qé6g®ÆçQ;=|QA¿²~t/~éBðüô¨å°ë~Ÿq|œ¢ùbŸi‰Gmc7TGð/’J›êšÉ0ù7­š:˘”1¤CÙ†¡ ÓšáŒe$ýêðb°N)n†ò5 Ëw;ñ_e‚šeÑAÍ^%§µ˜¾RXtäÝÂV2.š*]a,õ …|B° ~ÆUÉŠfiî4ËÀœI8iÕ¾´µÞo´i¾ÊäiÇø~ýÅëC¼ú\B†JbŸr¬ðše÷ÙQ°>qeÃèU¹ã}F)[Ô ©ÑÍçõ庒1Å´!Ù²óˆ;›CX0¨47yÇSM?®JTºüM&88qßÖQu”sÿ]xèH'­kïÖ›©Ÿçû¦Fº†ôi‹ÐíìW å³sq><ßäÎÏàf ­<žüÂUö^ηrŸ¡s†“uúÔ‰ØÓÔlÌìeMãrP†SÎ[¸Ì­ü‡n6EvjžÊk~€žÂ§ C¢¹^=ÖŒå'®LFãÆp;²äÏç‡7GCdØt^Þ—Òöí?ðjU…ªá¥”³‰ðýsCÓn¤•{VïÙOëÖÎó\û&Ìr<Þµ‹Û "ÛÁ8ó—43åÓ=¶Ž^k†jU)zš™S9*&ñ¤T~õ€0mËí·²ÐcñÅLª´›Opá)…üMËwµ2—mKå¶±3qFÞÙ½Á»O‘g‘'2oªçØcûUºëÑ­ Т%8ò|ÅÚ”ÑRq9Û¢VfYG[E‹C‰AW2JÚÅ9‰ýେˎÓ=\l‹èý@‘Кôð >Çà3(ãœèÿÈg=Bl ,È=™wÁQ^ôQ%1¿¾¢’MèÁX¿ðìW®©å’®çû´Uà§«6ö“*ß\vŠÊX;èi¨C¢£Ê{©¹ôÉFJv(«„U¾-’YL! ÅüÍÇĵë¤$ÓÇt¶äi3ÙÁ¤Û@ÆrÖߺR¾×_B…5T1³©\å•Ĵ=bÏK–¢díºÏúbÏk½(~—«µöy¿`%µ7¼k¾ãÏÊ„%ç¯SR°¿ÿFútþJ ^ E,uÁ•Üdj” ³åùýf't÷XèÙÀ’NÃÏ[pVòß»s£á¿Ž›ã bCܺëkÒ\kÈÃ~2¿ãÔ É­Œ0¼ÄGµû‘¯Ù•8nÆTД²[øVu6}yüM2ã}À§7M}jOÞCòâözí†ìÝæHK9o¤±úêEéöÕ䎖:êµ>goéNþðO_øû-ú˜©GtV3Cw˜¤/ç|§O Îïí‡8¶;O8ÆÆÆ™zÛ¼³wQúbäf,}Âݯ ò!elãy6âw&5%y,ø´òÆÙD'mÄœ*È/»ý屋ù¼2ÈB¼Þü þÆ­}xÔˆ/o_`ÒBnë»RÏ+ì¸tàÏ}ÐuÓ»ýV>Vé#âÈ7‹Ñuàö—¦6«IfÖ¸‚Å~ųW Çtéx炄×6ÂüJ…{…Z„¢Ê*ÿÌÝ2'DÙC›QšS$‘’E'o”PFgñVü—>éL4ú”†i‚TL5ÐòΈtí‰.¸€G €¸¿ÎÏ«ô¯*}zåEÛ®=Ê&®k¡}ËZ{àü;÷|·ÕB™±ãYOO ¨j_Øà'à(/ËßJBË`öGë\¸8€ˆ=xÂtü±8 JšGù7FËC{’áô`i }nþåü°.x›×#¹ÄþQÏ,Ž—àíÕxŠL½ÅŸŽ¥5Ž‚k7‹2Ë’/}Ò2cî©ÜëI½àâ44‘®‘vwà%~'t5f¥gËðˆ€êc §u–ïÉDNó@nDÓÈ6läMŸIÁÕ¡8œkô„"ÄZ1Q~”kÈ(/—ZŸpÚ;aó؈ÖÒ^èw1â±7q×hc%ï¯}#YÒÓu”„Nóòò´VçkIÛâ¾·V¶ŸD^Q½pèå°ðã˜m<¸iöÚ®0 ­, é¤ `®^#ƒ0”•Ao”O=RömÄ5%˜Ý™A*|G×f¦„eòóË·ëû:fí]vàœŠ>òÔzü°ÓƒùγZ> ZXïŸrsìm\î)/ȶá~nÕôŒîÂÆá«ëA¼%ÖrlC>Q7)üO: ˜¾g±Çê¥s,Ý zs8E:xFoÏZ1ºý¯ßŠG1S§è6s¿¸qüȪFÖlN·Kø~•Á:ó¹ºà7‘K\á¥A‘ ½pï¿…ñ“-‚Æ'1]Ÿ–îKÑÞtR"ÆMœ(¯ž¤k ØÐY>Ot¼°þå§ôF2 :³^ç-¸UÚM¸nVü[‘ºøã¬·ü«ý±i„íÃâ¯nÚ­Ÿ¢+¹Í¦D`#§ƒ¿ƒ§0ɺaåaƒ'€ €^Ëé‹L ¹ãФ¡Ð¹ü°Ø2?PÝJ'»“n§[œ&ï ÅQ¶$s^Ò³Àä!s8e'›Ï« WZm/+Н¬·ÚÇ%gbÙ“M’Ÿ= 5Œå§¬lFŸÖHµ½OžßBî¯Gî·¤|ÍeTÒ&þxrÃFÒþëT¡ ¬Óp­.{Ja ô‹n#£9à{Ï#Ї#‰Ï~¬~<ʤ²x‹ëL7R¥¹yOœhü“oõ?‡ÉƒÔ³÷Cže¶Þàö?:ÌlÙwº©ÈÇÝ6yЯ]Jëk”ÖXEERH´lrèo!P4ÉxÇO 9¢Ðä:âã¼¢ ï†~þ¦0_0D÷/ v=ûæÅ–Kh ˜UðÉ9÷ö»üJ6S¡ÿ;Hw‹×ŸŸíFóàÒGûsH@Ÿ+@»Ç¨mÍoâú5˜ oÿ)N°ˆ#ÆgÄÚ:võ8?íKÏV/÷íE¶ ò¼kYQº¤o¨gO‹?½qoŒ‚z¹Ö®ÞŸ¸ô¤ô;Ӌ|¶ißwj†_i¼. ûluÿëõk—Ê×ùs[¨û[k&NNÝ÷Âÿ(ÄíH"•Ä<¨À Xø¹€ºG—9’l•b#§Âm<úD*ÓùÜXì7é üRFfÚïj7`ŽD©ÁÝ¢âj-&Ê8ða±gÕ@êæAÑ»ÎiÓ2c ¢ ¦êRŽmŽÁà‹”Æò̬ˆÛü}bDí2bë‚\ü>$a Ñ|âa8çiß&Òi©àZÑHrŒÑaÿ¹*¯²Yͯ©G kÆ:`6,Ò½:úའv,*%‰ë{¥_ÊU]î+Ö½fŠ`j)Ȱtg¡©Ú»F&ùL/ãÑËôÖf€•O8šéLâ:pVÎßøYéX¸Ò…êdQ^<-I8a0?d¤Œ+r^Ú±:¯bP#ΣK¼Kù`ÝFi¹-'5P²ÒS«TÅ“šz7µ›—Ž<,ò”70cÉàlŽ,‹ur‚ªêM`ן80DbýxðX"H=~ŠjÏÒ¼¨Á3ÿ­äÚð’h)ÒhÔãâ¤MA¥Sây#¬Ñ|QÙ·bµð[çšÁkTÐPô®§«—Ö÷ ª™PÙäP«ø»û±nGE`«§y  †¾ŸXNíH˜_†‡‹6˜BO£ÒSÔ˜~!•¹¡Ë]Lj3®ú>ÝŠ<ÈF¨Ë"‡àÕÛôV3c¢U‚­ëÖÜ»·¤0DE]$¶§*üL½L«KMµÝÁ…›‡¬&ÆU îŸÐ¬S|çp'‰hib´· J`yþ6C ýÈ}XAU&•>ÅcžE`ÍÅtbD‡òÑS¤*N‘6Ò3‚ìATL+ý©WK‚V!i bì¾ÓƪÒâWûÁÿìq4V1g!S 4»°r¼h?Õ=y ¤I{Wam•…Ú^îö¡OW~døW5Ȭø£¡’Ý ¸™Ž¼ACB‡QS%ò:›bñmó^‡Lµ`f|£öQgÐ }—eÓPˆÈýç’"ûVC/­-ßy¥ Rƒ-pèÃÈõŒóÎÓ”IÒáÈV-‘2ò…ßøB:`¾ÞÞ½ÏYòN>ûiX5œuÚÏ*×äƒÖ3×ûº½/¸DmÞ.*áüL°ÃKÜ›OFÉS}͈÷Ó¨Þß(”=š×åmRx1¾ŠyP©[„#z«³¼ÞÁEøûðø@ 8ÐØÕ±ÅVM›Ìpb‹¨Y$)yMåu>ÆÔV@žmJÈ9›óà‹¥“ªKuü.»žÔ<´m:p÷(¯¯¤Iݾßêö0tç.%ýÚª »Ió=_> Hê=RJà£r9œÖ8$DUÎbõS(Ê~™d)¯%´§ª-³OG8›×Ř|º,‹ú¹ìÃräoêà÷NÈÁz²\âiÔ 1[2'ÁüL°ª“›ó'õ üÌÔ„—O¦¥/!Eê|»(ì]ùb5N¦»a$¶n_In›þ~¸&V*4û̯Ÿ=;g~g½£Ù½b“Ô}3Z öµ@fÞ×%ñ"M‰hŽèn¯ýªvAYÐV'Òûg2_Qw¨Ñóò{!®*°cÜÚ]imª&øËë‘hæ–xð±gWÄfKêCi³Ç"Bc>…¾Ÿ÷hÈ^úƒ:¢‘ #L-SOO2cÕý¡µwÑù®õ±Ê›v9¨í´?ÿæóüñLÊÓˆÀÅ‹F"רúVJ[“äâ—¤">^}86ºk>µóçÿôê)íNaŸÀµªœ1!’Óˆ±Õhø™;úüö’оC¡ê õd÷uG57 ƒ¦ |•æJJ çÇ4°…*2ÂHÅÓ|ÉÜ€x"ìèRäE™šL퀧Ò9·ÇÁ­êÕéÖ—'ª¢…O±É˜YÐÛÄÜ>þzÓrÎ$À Xo¸r³¼üÀ¬³Éo'Ø òáÂòY>ÅÑ7ÍŒKoÚ õkRÔé<‚ŸüIÝ™è‚÷z=,´Ì×8Üup¢œÅÝD÷®4p÷ßXS4œwFˆ#®EÈÚñY*Šõ'ÛJ@¾=…š‰ÓQ~°\ÊuûÆb¤ŒPäg—2Éz¡‡ýfOµ …×Ï K&µH)lúÉ(ÿ€LoQ5zOÜÓ™ÏöÂl #5x¤Ïσ¾Ó½ùðÙ0EºŠ6âv»Šw°lfy‡îò)¸xíÖò–£?Ñ9‘G<:°J;›ÿb¶è†§Á)7ry`ÃkÓ:;RÔù㠵ѭ?LI£üL«ò †¬R¸Qtä#4d¼vÿÐY q=Rl¶â) …ÂŽL¤Y-›´a¨&f–#¥2ëº&Ô¬±Q€°“L79ˆæ˜Éb½ê0¿žÒÐq¤M·®aœ+÷×XØ¥Ú‡Û 2Ïì ½ŒùÕGøÎËáÚ\ÍQ1SÊ3úínp5ÿ£Kè¿€Ÿx°›­}ƒ ­™%Ž,ø ¸ºäçZùÉlcÖqº¤; yi[¥Õmjrf‘ˆTþVouæ¢õ~„÷Q̤êÓi°•¤‰Œb!_‚ëüJJ—[72Íûö£fHð’ÌNtd XˈKt,ÍÍzô~ è’ K·)b*“Ûç#Ti|¯õò³Qê}ÆéÏuåq ›çºä5ÆÐÖ‰d«2Ýÿ4&XÔ,ÚУ•·]?ÏÕI[á%O¿Îëf€W2Ì>Ò”ŠÆV €!ð8>Ô,™m ÉIxãŽÉñ´¬Â·ka¦q×Ö^[4b k7ò·­îКb-îC,PyEÝÖ;ÒjŸbNìZ¶—.Ù½>Óå´¹¨4ŒgsF™IüNIUª\_'RuÑŽ·dîëȧ’¢ÙðÐ}FÖ_0sW$ÂÝñýd?zäGGé¼:.ƒ ^XÚL¡Ÿ4Z*Ê÷±N_!FSëýD/ž–ÙôÅüM2JQÚ»¨N®˜UHVx¯qtаÅa8SÔ£œâ\ꨙÌÓa¾N¬NÛÇU]å禰»·\’ßFÞVWî[8hòdŸ;N‡­g#;¥÷¤SÖ—`IL,?²© _¶"«=­"ãz:U;ãJ ym-1: Ê:¤àXû®SË·)©Ç, Ñzù™$’ßµãŸ] ôɵPQœÚvJÜdLfwÚÙ9úõàèʉø¢°’PÎ[XÉì`ý‘é`ëµ&®é@4á~· ‰ŸÍqØ[8úþnDI4ÑÞ®ô*VüîŽ>žç§lÍqà܈ô‹yr¼T]O‚Ís†A¾å*/kA‡ ~¯«_Cí ìGÑéïÏ¿šÀVØzÞ JQ$t"íD·u’š´ÓdüOB”OÌ8™ÃT,Õ>ž<«.k§ W_"»eUS‚(ðŽò Xú]@¤ê»ˆ¿AÐV º”ŽlÈ,í’!Ñ,EÀo^?³´ö£}SáÐeUÂÓ|´;R ޾'Y'Ž !ö=’;žöA…¼æq'\;]‰L±ã£4 Ó¿2cüðÔ~ÞÐ\Ò‰[Ì}z0=Æ->ü# '©)ÛÔí…GÖëÛbÁ¥þ¬l­%½Q:³µ3µSj†¤Å²g(Q½7ä2Þ‘%Š6buÛx¹$Îctq4¼qe¤ù5™¼Ë³ÝVÌÅ Š~ó5Û0iVJB™R›ðÆ M?b³ÂÆýi @ôc@M,‡à}ïé?‰É0îgÐö‹K m©D jM>ÑŽéõÊûÕ|ùaW jè«þ›mþ¦þJÒñüß*Y2SóýÒd‚ÓÝnü¤àONa'aƤKÓ•6»–nÍ.WWÖR,üM'¸ß»ÖÁalciž±|:)"¢ŠuTØøS*¯8ß…Ë* É]ôY,J—#• ¿Ÿ‚QÄèß¿©£9Š—z+7Ø/†2F­2†˜±yþÜ´K£.üöÚ÷áUîÈôË÷iGÁÿ;,²~¾µN§Þ{ytÁ vj$€x™á ¥{–4ؼûŽ8’Ø”—òGë2XͤRú装²=uŸ!;féö?g‹ËÙžÊÌ.‡¶ƒ>&õhP¦ã\ Ÿ*Ä$÷8O¿ñ—¦Ÿ`ô ç¬øÕÔ?²½(DÓüðÞéïîÉ&¡î‹oÕa,À ¶7v·T¡AòÒ »¦.¼Ù©Z“’Ùï0•p4¦Yž»:ÂöµŸ•ÏñÜa—Êû ½í~ìAS ”ÇY3ÛþJÖl_ „s©'hÖƒ À HîŸlyƒÓÇÿèMbP¸¿—*Áª¡ÁÒÈVKú©_çãvuð«T1šR’é¬RùrŠ3~Ðrä_5¸Ëªõ¶QØ8zØy3a‘vHŒI ¸Ô8>@ŽJëµ=dz?<7A€( ÅÇ«WUµ'—rŽcü|¯¹©R1'µü;Á‡‚0SZ #6c3û±Šèiºdº½Õ)Ò]l|Â_gïRÃ? øë©²›à?š0|ë\}­ "–¥¡i€àÒ¾zha³Þ%umt ð’Ã=Ÿ«(¦ÏO`³ íèCÀ‰Uʬü ƒœÀ¶2Uǃ“ïе߰’®ÚªÂ 97]-CaÅ%Éï¼Å’Hñ÷’-³¦­ ‚† aaõJóƒÿ˜ÍU(ën;¼»±0çd9Rg}ø^¼±ÖM‘GU¹\Ï`•ô\¾r>Và ‘A]²–è?aWü”ôu„²±R½³Ýbõ®Í¨ösÉ9ÚÛŠûJ“ £ Qø£€a-ßG@¨fïþ–D§žFÞ‡‚ÄÀÉË —EY Ž\ù\ó¹ŸÕHg#–F±Ü æÐ#ßeìä@Ü u¸‘¶l}¿¥]§IÀõÇ¡:mÈ-‡'ˆAßk¯ßä¡<ðMŽ3¾ °ŠH=\iåêêí[5ßWëõ©HúÙ´¨„ Í<®*•`ˆÙ‡ypü†lîþwãÝÒ”ÉÏ[Å€š(5 1V÷΄•²Ú|w€ö.¸Æ£<gvïY,Á¤97N=3³/P .‰´À¡´ÒNê‘“ÏTb_0“Š=é%Á2‚e¯ )gbßJ¬ŸL1´_Ÿ 4Xà09#¿ÄñU€ê¯t$®+·‰­†” P!Ÿ…™yä$áS^ý 88y•2bÐê–ãl2•ÀÂJ¡®ÈW¹oWK#—2µŠ]+ÖN­9Ò†¼FáKÁêŒô†;3(_w`:<’»-½ˆæ?2OsºF¼Ñ0kƒ¡6y ;<Áz¨Eúÿæ—#r|¨@üMFÈ«„™éíÝ‚·Hí kÛ?ɬÿõtâï,ýA9éŽ} µê›ÙáæoGc¨–¨||·~ø÷æÌ›˜~öòÚÕÙÁâæ¶ë/ÒôÝE¶‹rók®]|ÊÏ…|0ÛÜù¾ò˜¶6‚p¨±s!d.”gYÅ(evo„.£ªµêÈÐ\[mzŠˆ9Ê[*x´+µýƒVùžš¹¤øÏC¨Ñh³ŽT?ÿ i0”Z1À­@ü}[<#ˆŸ!®¾ã:Êï÷•ÆCRO” Áè¶Õ,KGÑ»ÕË‘—Û^ΰDAŠƒÒ•·>'Ëãcð±5ÎâTƒ”˜ù^[µ“ð@¾ªÂ½.qãÆšç”xmŠ ¾j³ûÿ•ˆÈT; ×¼7À×4¤ ý1®1ñ;:Ç F %ÒYuö@zM¡XµH $„’¿&‘pÏzA%>¬)Õ,€²å«@áÞ ¯½:‘×íS÷×4^žáš¯däSÎÿì>+”fÖãæ–,»‰ÇÁj©&G&;' wj ¾£8 6+7²îÔ윺 ³ ‚.–g¼‰ô²2‘*ÒÞüÚñ½á- ‰-î:= "¡a [Aä-˜7- üMâ{Š˜$)‹<§yY+?F0b`¹ & sùkåCÎï1dŒÐ0bæÜ£Å®HPùÁÆT¨ôdìî|íæ~õŒÐãüè?rIW/WsӅކ[g#ƒÓHPX¿˜–©ìî± ÷¶Æà“Ĩè(Å}_GVü¼b0jN;†7é— n¯nµÄi¹™‹Þ^Hô3‚î09²Ž¸¢„µo9ó•f?ïMÝ%çoÜ#=åñ·;ΩÌù.)Ú^„ÊÚ¯œÿvÄóUÒ|¯¸èÚÁtü„qŽÓô,Õ`À1Ì&( Cå–Ú!ˆLKmN¼í¦6oñ"ÒgY†S~c$³:Ù{³íÖYb½8<ÎÐm¿yzkogL‰i 8Ú]ðØést‰IêÙ ¨YF“݆1È`’ˆz—ÀùõN[x€˜ ìü!–ˆ’É·±jÝ^ò¹²­ðð+© ²ŸÅ‹´É<µßÝïm—*÷¶ÚRÛVq6q䡲‰ž»Ÿo§t¹Ç¦òéÖÝu äÖ±™ƒ'˜ó ††ÞÃÜšJ9t ÙŠBÍñ¡œ›!ü5Í ÙÓ,Ì‹ !æ‰j²÷(ÜI4—}>&}úê“,üüô‡tΰFkeëDAT[4Í(HRæçŸ¥Ó ÁLÒÂŽÚ,:Òj‚dÆx>¡–‹Î5™!å#'$w—ù±Ã<Þ’fÝÏ`®a¯å&nKý&š1ÜyW&³,Š!ðÿcA³&Œi—@7&²ÝîÄ—­áuÔ“urÚké«/n¾HFrKú(ûH©­åÍã£ÎIØà•#%lý \¾¡eîh;L•pà4±P×<¾ü5G]ëJò¶é¦…Z°üÒvÀê”c®Uÿ»O 袓q'ߺ=á)ºÄX úÜß85å’g(æ/$ÖšŒ¨ì¼¬tôW<„¸´î~2¶çíB’Vµme«q°ä|hˆ6¥Å(¹,ãíÏEæ½ëÒ¦wS™¨¸™xû0ÞŠÄûþ<º1z¡ÚBµ>¸ó_sÕŒX„¤Äÿl8+öDê̲¥1;¨“zùˆu¼½æ ¥ ñÛ‰åX[EjØ']'깡voò*µñãî ¿HJbÀ´¶>ª̇üLäfT3ùÇ YE˜16±½yñ«!·¤ ˆ¶xza}ñÙ:3î*^^®’)?¬­ÚSb§6ƒ¡ÛËÔ0Îþç·yÿ“¿®a/Õ7²v0 Yz-Ř Ù—«ïÉÇxƒf²»`ûVGdílKvVa ·eFÔ”a´ˆª ©¤ºv¹%·!Û¯­æ^ÿ¸Ÿ!¢ Eõ ÍÂ]ç\æÑ# ºô`c#ø*lv¡öϲ ^”ðóV‹W¯ùd¦g›GêÔ¦ÖHU’ î$š‘w˜ûF‰mšqÒäv¼Ú’C=Ó!üJ1ëeÉ´'ǘIp÷ä~ó1óI¢º,^O+6˜þ\ kBbnÌF¤n¬ð½$f¨Z«ˆ§*ÂYã\®ÁóÕ¾ž„ëá ÏB.õÇÀß–~²î š+ÜÆ>÷¾¦Ä¸Š<¾ðìï‘f=ÿ$ÈNâI7@;^ýÐþ*P¡èó¬Yæ¤ò1ìšJÙ›©g¤5M<ˆ¤Ï_nšüéáÍ"°êT-ï KÁ -¢zà“u(\ÝõË›?)‰¨¢}ù•¦mñÆÇF{]TiŸÚÔÇïžO(6=Ö²ü|­ã§Fí.\9?àE£»kV&0?‚ò’#‰õ ß%n.˪/#[!~·»åeˆqüa¡èºÑXˆeŒüá¤3N´-~9ȸùß§:qÝìáq@²‰? ñOº+„LèܱcÑÍ€ŸGøÆå •På"ÄGºRm…iú{%ËTFÒøÎl–¿ _•„Á¾#¯X{(¥TÈŽëå§8)Ë™öKþÀ\Î&àˆà*Û½¼Œd¸KÀì}OL”REþæã3£C³¨”Ùø‰4‡ SƒäÃ9Ôዪ€†þ¥œÛ~eÊÁ„#Ìåž$r´³ùDÊdá=3ÓŽ—ñ9á!ȼu¸÷‰É#~Æ0…¡Žîh–R›õR¹Ó(—]V¯¸¸g G®îŸ•R}3q’l.xUc™*EG=#™hC 5é9[¢‡Ü¬7šíWT4žU>l<ŸÚ?´‘¨K|c@ºUúÏxå[4µµcwE¾ ¼Äl ŠvÀIûÙla\ÜOggS€Ü9¨äP’³{…;ÚêâÞÚÞÿLÔâäéãéÿ¥Òóÿÿÿ þÿÊòÛÓÖÙØÿ—ÒÐÐÔÖÓßÜëéåâóÿ´ÚÑÔÕÝÙÿ¸ÛüJx´²]k'¸ß% /X^¤ò’{&ÒÓý&Š7̃7N«4’?š+ŠHïg'+GQßøC’»r²ñ¾ÕÊ®W;×*":O:ß­ h"L‰ÙH¢éd@›ëÑ!KS;›^FrV*¬7Q´¬ž•†ŠMr<úÕ·¡ÓJ8ܱÇ,k_9Û‡“ @”Oõä‹ÝfücÃâk·–šP6+0˜EM2¸[ÎTÚaË>UbT436•¹¹×Qé‚QŒÝl¨‹ˆfÎC»™pj÷EôÒ=Qõœ•aqp¯äË…®ü®~ ”£KRÅÏÁ®ŠÄ!Ì.Í÷*H ÜŒqÂ% _ Wæ\–î‹ )Ætxʕܯ¢ýóN;¤"ñf¥hÏ#ña¡®5ll=A3“™'Ô™÷â9Ž´a‘yTñþ ®)ÃdòÑLp=[dJhÌ´…@f¾Ý I4…6+ìfCåúÍZÞ¬` ~ge¢0ãþâ…ÎýFTÔNˆšefŽq[F>ïÏ yûã¸;ߨ•n ^«nw'ÖAQ;lÇ{IX‡Q¼®¹4ýìpûךÈj¾o‡å’ ÖȆ)â¼üIäš©8-¥åÞ”"€ÁŽ 'øC.®¨Û.îö•Ê]øµe·aì`éb5"næVHg™ÒðW¿\µÒ°tœÁ¸„ÍØ«î`ºÙÍ)  I†âÁ˺nÖ6Ž—<^«PUÚ®O³96m7°%?$õßÑÄiU™Ûéze–ÀH̺hÜêoö^zý¥b×*á-"$~Å|ê—Šêá‘ÆÑ6UÇý=ç·1–UÙÉAÎË$fÚÙÉÖÌ«2N8îÛpCŽŸµè3íÖ¨, $›‹CZ&ˆPûüLÖÉmé4O0댕²Sω[d ¬ÞfùpñõŒ %+)@eC;¼B&B­9fä_Q“…”œ€RgBxlK¿Ã6°2?ËÓi~VÓ¢æ¸0ŸR5Ð,kÞèPÒ ïJ L$y~:÷"®v@}më #ÀTcf4¦4Ö²:Øã^Ñ´ôL‹BÂOñÃ8û_ž@†"kš¨Q¤t—Ÿëm•K*ôàXîx3µpUqÓXD°Õœiù؇ÿÄts•Áb³¤ò<›Ã¾œZ×éä—[zž÷Šïâ k"cHfüL¾ Eø–^ p×ðó=U´Â6Y(ÈJVšx¸}ж›»Š—âqø±¹¿ ówkþN1Ú›Vÿ¿£¸ ûB{*mºk6ÕÆ&”ø*w}úgæ§H$”©ÙcA›£ï"¬Âå_Å*èT¤¼Ušº¼Ñ£w2ÒÙù+þ$ÿ¦”I 3ˆ/½QÚõY²˜cà¥jC-j6íq“Õ º/ä¹—¥Â©",zÉÍ÷«Y_áç³ccóûðŸc´:8”䚃»¦Qc øÓ¥o®ôü™ÅÊćçbì±7þ+¶eÛãæ¸ŒmÉ„þÎaãñ&ôzeçÂj)Èw¬QµL¬­ï5›—¡‡åWa}èk SÒͦ‰ŠæÛ;7XÑŠÀl™È%#Ñï. ÜNÏ b;Aq>=o¯£EDÜ‹ø¦Ñ×n݇ ÊÆ«*ùpqí ùز0¡ô-7&7yã¶xƒ½`V§ÓC<œ1ŽXŸ$fe¦Ĥ1Ø?¨A™²žÍèzÜLÅáåÀ挅’g}OÖ*§’ýSét¹z&ä»Rð Þ=ªÏW]ü‚QÅ^œŠÜR4yˆ­©:“`é]ÒBþÇ¿úDDbïÉBW¤>ù«ïóHË?§àV¨È4‹­„²C8´Èó^FÜWÑó46}œBEùa‘ÐSwwÑ^o¶¿¡kâþ$ï,`ï¯hXçJŠtËœí4™ºvJ)8'6ýôñ ãfÓÞ¶÷ÜRþ ,Ý‹Nå<ŠKÿÑ˘-(ô‘ˆ³ ZQ¹Ú_ýòS*$Jvj¼¡ofà`}ÈóþŒ#’ÕNn›­ø ·ð´Äí­³(Kÿùj¿/1)Hù‰ Wä^ð×8DæI„·¸ú¡šl‘Urgk¿KøËÔlÖÚ8ÍÜm]ÍŒßZé—wyn â9Ây„gù›"5 s1ë„:²ˆbƒ“.e+ˆ$FÅ}¹Üè×´=ïÅ*ô„}¢À}üXIìW6/›î?a°Â£·#‚´©SŽÒ'¸ àãòîJ `r@à-dÑ>¸EQr©1½›Vn‘÷ËWºí§èN4Ñv³[³‰bˆÅÓIÇÙ1²ŠÜ÷ydïºÚ#s@÷ÂIÚLŒ ÷Œnÿr‰t¦°ìŒ¥x:£±ö Õí.}Û£Jîµ´Ò‰14å]4e|V´Åƒ5=”ÜðÓœaõ½ÁËûà˜ Ö™è¸ü~»—ÿ/ßãûOßÓ ,⌈pç¬a_oÓ•«eYaçtëØžåpÓI-M?¢á~½þ™Š …ËZ¶wÄ# 2""„0 ô_še¡t>ʽ/JÉ ÞO,q¯A¬4KîÙÄÏ~l-Zé‘ ²Ï ±ežßïOÓ'õSVU›f…bW¹›²BV›brÌQ^-Þòã)»9¢üƒÕÓ0hÈžÃyYѼ%ìP’O7ÆiœÏ‚µ°\ð» ì #‘¾ÄJX1ð`ñcïµªÉ ò÷ØÉâõ¤F…bÙ†X–a/3;Ó‚ý;³š-4‡i³rÇQIP<—îy§Ç¦I‡JÝû4P÷Œho&It~ƒ‹.^”¦fN8eþª« .µß‹œ©Ój„ ~tYvacðOì„!Ò>›ƒR¥»!éÒoUcs9Öâæ.%T´*9RwӛɦlŽÉˤ?V‰Ò¸¾º²q‡[ˆìëäÝÇw24mºeHºÍae9O7üM™åQwý*”nláôJAÿ‡ðOÖ€}˜sA@p<„¾ºxžžÕEpGìÈŽÓ rrvrô¶Â O-qªm“þ“*lÝÅœ 9b7þØ}W:!ÀÏRM„üÜÕ8ŽbÔT5O-˜.ÏA¿úŸõγ¬Ÿo;¦—4;€w5°S¡LsŸª-7»]J-LðÑíg¾äwã8ªOs¬åU çµóum …©‚l½zæpNÚ["‚þ“{'‘*zñ?úl×e¦z^ó4ß TZÅ|õaâ &‹.¨0Vï€åîÿ°­ü5_E˜šù0ñ¨‚}“>,ý~f Êdb6(âcc¯ÓOºø"ÒoŒqµ*ÿücHJK<ËæÐØ†«Ãc Å$¤ ïƒÍig§QpÞR¶«¦¼ ²‰Á“„¸bÕ–Žš8‡¨û4~~9J̈ÁÇ JéÇŒ8›nÑYØ_Gs"¼&ÔB ÕÅ[ È×㬒Bʾð‰‚FÌ™Xûy€½ÒA5‚,¥h1"C`­o¿*“]‹;ò®Ïå”Ô€Œè” >OšÓå®C&–ÂÙëWŠà=?Ñ-`ãkju¢ü|®0¤ùœ³±¬Åh’-d¾#e/c&ªŽeÉ#‘øÄØ›s”¦3zÐÇÑØðçç%™^ÐX˜¾ghSùŒ¢3Û&ëÁ°¦2‡2•‚½Ñ'›ÿ2QPÇ}eæÓÕ¨Rˆ§’/J5ú£hZêÓ€“­©~ƒìú¯Bš/3NÍ,¸PæåUy ‰ˆÖ ï ÿÌsÅÙoøcøfIã"S•É6\Á×Ü«Üte€¥«¡AÅtëžDIî‹ù¯'Æìân +~{H¡û@gß³·Ùì/cì;a„†ƒ¥¤Lm ì©‹1F—^SRï]WÌ:±éüxôeŽ5úø-çP¨Ž|4¹%“Å Œ]¨] ¹ûB­X:Û€¸ ž¬"Éûãæ6¿©×âГ,]?x4ÈŽR?fÂ$Ć#ð,Uã×ùNÏëÔŠ F«PrK_6×€Â,­Ðb÷š= {ܘCÍ3ü)3Ƴa…¶…´áæµWV4ÑÅ—jæm‘ô)u¥·Ên_–Ñðc`W¤Á¾œ¼ä¬AüM+ ¶:k¾Ûã6‘:FÿƽÚ-½u*·™{á`)´µjÙSÌ-h†ÐÔ`úÍuÆCõ‡«³N†u0JPV»ª„áqŸÝkv™Â ”ašWŽ•±³NÝàXÏ2ÌV;‡…£NÆiïh€‡?x âCAžåz ý€`§-Ø‚ÍQ·÷ºÕ.ŸÅä[Gǃ? ¼¼Œ•m +u¸ ï)Kô£îýq"á–m«N8À¾Ò¦ÔVóŽÚJS°ø%zHW9%`F§Ìñ_'Ò3$÷(Nöü„˜®uwe\úÚ ?Õ­lz9õ6à©„°´¬'%2ÉÜðUŠwû‚‹cÈŠtlWTDæŠjn…M‰ÄhL1¦i[¢Á ­Ø“úZQ‘åe(ÞãHiILÏ;•5ç'“^à‡ã° îl,¿Æ(úUÆífVËš(/(ç¶=JêOeÖ}B¯§.äûæòÑp}Î@òúu^Œ8(¾_1f_Mrî×ÕÍwL†y:Kõ"ö‡)&‘WÏÛÆà@ž…!t8R±ä&Û®MåF9)Ÿ?Bc3uÏ_.`´nƒËÜþ&7þ=Kûü°ð®S ãÝ0ÔÎ*´Ì#`íÎóàSZß9Øiá.1lybñ‘ “¨QPZ”ÀötQµ…óè´÷Kùßñ›¸|Gwyp3F#²€‡·Œ8Sm2¦—s©FWNãÀ™þľ–ËXÇ3Sªá÷öò'bûÈä:ïofÐ÷ʼn¯W€±É¥Î:T';„Û@Kg".鯂lõêFh_NddMO}mIú’¬cfhXgjF¹jÀY›…Wúr |vÈíº±ïÊ`ˆ ÏÐí˜&.ùèì*H¾Ï0áþÁíì½ùü¯÷*¤ó})·xžú”5(ÕKbÞìM}p³¼Hö»9¾WÇ“T4ˬ_3âcd„ ò!„ÅH¾ûü|®1V2+òŠ& f^æPHN¨ P.Ü(+k#UÆrT¤RÞ©nlÅÖ¿-ȯ%²]];S†‚þàZo<СE–)d?âhö&+­ˆ¬"uÊÛ$Ž;¡SPÛaÆJd«Jr¿¿ƒ}ض=+:퀕xRVp3FÍÒÆuDj"(1ÏÖŠ$[‘Øv狇*"U’m°JDuqžw8tê5â=×óé*X@z5ýmÁÝX¯%G`û¼F·ðj4÷‹«-¿½¶Ò™Î®yP§u¬Íß°lX¯s÷Öh1¤ÁÞp8!½=1Ò_ë&×K–” |Ø›ÉVí¿}/çWÓâœOóJ0ú„!¯íbPX¤ }Ý[j*fKò8·árHWSèÓ¿_e¬‡ êñ¹¬;Ë2 r›Os[žÕ½èâq·ÏxûV]A3ÀÝx9æÙ°Šw« ‹²j§¾ ¹AÀßi•Mh]a$2¾kø‘ˆ»„ˆWÌ_­Ÿ3L ës:ø=óΓ†)!ö<&¼~Åô»ûO“‹Cy¿Þ¹çZ’sëbš‘‡û6ŸÙ£Äεä!û€@Èy>LÿÈ–cW, œ‹_ª¨·5 x?ʉdÂü1‚†ë‡«Áæ+о-Ô#`/y©lÕƒ!ë"£!§É¬štÉ2²mÓ"/d•%Qœð懩áTd¢µ3K<ü»LšeÓ¿T0¦h¼mµM10ñòsÕ f]Ѽòñìf¨Àég™œîæ/…xÓå8›PEpÊg›&ªËÿ‰|o׆¯Ôþ™=£¤£ ;t «ŠTéæû¬V]È ÅÙ[áíŸܲ] ¸{û´q,/[k”*H“B$ßa†¥ÀrÎwgÿYy ’÷–!Ÿ±’¿Þ‘×·Åëò)·r6Ò©îÛiêõ›´( /ü™f¾©øWYzxì>_/RÅ“K[unsÏ‹M¹ÎÔ+5©˜ûƳŸF‰ýÙm´’ß57R¦øLH¬yZæãþºödü§˜²ï!±{Ìb°œé“:otÕç\Ââ¯ösVEb¸rzT•1ÔWxc`ÆWGVÌCVàqxÊÂάËg¤vNÙšx,ü™KÏ·25 ²¨‚̺\õQ¼ý1|‰^ŸÓDP®ríi 0d|BéŠgÏËÃä:À0à}݃l\ó@7<ÎúÓSß1ÊÝ—ÜUÆ._üIùp^^dí1ÉÄC‰{Ÿ®|ÞºŸ{öä'3aºóðNƒ_èM¶WLg.4u¢2(ü÷éɹ“‚|ôE»ÃÍV×»¢—6.TèÃ/ªùã<!Œ0D±37“aL|Ma&K“]ò±¯âç²m?ÅGG«Iö­.¼}QÉ?)µJŽºvrüïoC ï*ŸÊÈõ±Ðè-øh§B‹ªÖ& ;‚ Úè©Ôãœ)Si,1$ÿÇN à9*¨çÊ#à96,üM/p¾¿Þ¾°-~+|7v²”Bâ°¾ü­;šü”iQZíª7+TVÔ™w £â-sÜù‹0»ÂÌååz;,`2‚]„DJfã0%0ö]› îãx…Ý;~Ÿ¨þ<>AnÚöqZG3j,°üƒåõC\íFÇ>I˜¾Ž@.hu; b’ÖvàÇ=HÙÃM Æ*‚ubðÇ"¶répŒë,’Ö!œÿ9QŒãTíümÍÇ®Q=£8 G®ÿç$ÁÙÀù™2æm×á«(Þo·o¤“[‹tÇo5-Qüñ‰¥# w¼Ä³ò/µÛC؇æ»8uw©s~Þ ˆÕ@Îð½z—µ_ôFî‹\øÎPz÷|X5‘ÃÆ­]ê "È™©åPÅ–¢®mj…¬kî¸Â|…Î_°7³éý ÃWŽ`Ùgeu™¦æ+éKÄ|3Df6ší"¶¹0–%^=(á¡×úèÑwŽ¢¡SÓW,‡ídýwö…œRæ‚ä#EXî\÷«çlˆ‡e½ôaø*H°y‚–ƒa uS­’ý #Ò7ÐÙ=G~ðHz  üMš?¨»YøŒÃë Û\é2òÁH\Vú%Ví[çƒÛæ:{›ìDyg;Ñ ~b-.0ÐL^YÜ4¬*rtÑTV6ø9\‹àhè'ÉH¾r,æ2b-Ç¿\Y¼€^¨$¥¦Ó³Ï!GIó#MrŽá ø'0&dw„ã!sÝ‘Æa)9UŒ_2BpžÀ<¡ºg÷Ue øKè Œ}gsߣŒ+<0;káuÁ"îá7…wyf|a8åçúã-e}[ÿ|ðpj×Jê¦æ\r‰O¿é ]Lü|¯ÕâL>Û‘ÝN¸õ¸ñlHe^m°ÄR×Ô #Q6˜Š%J vãÛ*Aâ,|™v_¨s‹˜&Y’îræI“¨ß(88ÿÙ5k¿y0íÊBÓ°#k“ŒÚd4ýmkœwºù6îm8m4fâ- 1¸¼ 6_ï²ZëÿŠ¡r×1h0Ï\¦±e Z#C¶ŒÏ†í6·'@-ˆÜØODZÿ(ƒúµjÄ>_›Èíû½ÞÇÐ^NùíÅñ« ~”¥¯\jß›pá‚û†'L(Í< ¶*·Õ jgRew?¼:Rÿ‹³È'£TÄ|%›nêdY]¸¢+åAÀÿ¦sØÇ “òU6ƒºÎiiÙðù^±~)^3WßF¾9°|ø×Çãì8…mâ|Ó/?ó FŸXð>’böE åãp8g¼Žoøªñ²ãD¤ûΘÞÍXßý¨ð)%¤ w]Ù‘0?íŠG¸$ÔõV Ó¯¼Iûag4ôýûqØsC¬*¡3ø9y’¢2Û·õ£Á˜w¦üNKVŽÓ¶ÉwÊ-õ«rl -§ñwV‚ÇýÃ4©ÊßÎoïY5‰Éá|Š4¯aÚæGqØÕ¢Þ:i9æÚÀŸrîÒÕìå +^=Û¹òž$1;q^ÞaˆœOûøÁàŸçÀ`<úwþÄ¢rÑ&_–{.Æÿ+¥°DN·÷qmÃÜbO¬ ”ü.cw SqWbYÄêlÒK½{ ß¿8«RLiégWD D2믴-©+ÚØ§û¾±w¬@oŒG–ã«ña:7öHÔ A€sþ…üIrvÌnLáä&Øå`Jÿ—¥EÔõßóKn!;4{ŸØ4‘Ì/ó®]OÔÉÁ9Ê^/jæ”ôDšrj#Tvrû1¢ÍØ"ØoÇøõ¹¼<ƈlþšƒ©+]½7DáiûËl>©ƒ*ðw¢Öe¼Årbà Hí2 Ûs±ù¢8÷2*B¯,ÂIªêuV àíðV™¤qžiÚ:‹ÔK¦àPÛ»¯ÕQ£|Û—*}³?ºTgLàÔ SãÓK4b¸ãnÍÑ€¶z~»]üLÃø™ÞÝ6k¦³Ÿ³¶ÁÆé {UÁº1ÿp*®r)šO¾Ÿê•3V©3aÌœ{ÀgTÊ-ð³·û Î ô9…*S(è’K]×õð˜=â½Óý¡¿Ã?¶ëÑ=¹ô‹^/6¶T2Ú>…ðì’Ác. ‡ÆÓúw” ŠÄÙöõºåZì¨Ù ËIwkƒ+àþ=cñÁ†^دØn™í†74©¿À‹Y@sB7ñI<´4AA1Ò-¬ÚM¾íU. ¹(RÄÓ°«£XLÓ _“ø¿@xg-ýSÉTÌÞ{Ø¿¥ã\¢ë•îG+庨¼W©KûÅaÔ­÷Q~ûÝפ#¹èæõéT€#Óù¿ÎH&â:áˆüM(%ž¹Ue+7›*¤3ÑÏg_)/IP)¶îhÌæ!…CÎW€Ñ>?r*õÀòòE64#0I¹MB`!¹@­Î:%Rc—iÆ÷À ùG•H¬öÝæ^´0ˆ_/c¼ +ƒ]{z&Ü´­¹hä?ØšòbRjMYðàâSïe<ŠÀlq§ ŠÝ•ieËF: ïÚ”ãBÚÆ 7Ny‘Ø€ò´ìŒj„uº ,jW…Řbx£ú¡Kaï¹k–õ%ÕxŽl%>É5<=«gRm´Bx£PC‚üL¨_¼ÀN7QÂîýg—hhßw̺ë9bšñ-UmÝQSljÄ9­›Vìvw˜T9VlEÕâu@,‰EØ%Ÿcš­’XòcfúØ%ÀÍß®ÉYžœM ’ØrD~éÖPî ÐA­tËwnS-L"þšê$®0xï ¢sä9|®sŬ&ÝÉÁÆAhW$CK›3ß±;îAe,Muè¬qcÒTÈKpiF®A5Ú_°ÁøJõÓºáE¸nH_¬Âs|)7«Ã希þýœO4K¶é¿æüLä6Eh>#hïêÑóu÷$’g¸AáÅŽ4@E"\KsZŽìé£, àþ¨pÈ6¼va-\…[R°›œÎÁlîR÷ì_Þ–ÀÀ'Ñ3 öãÈ—ã®å¼”‰…­Y"O#õŒ_û„=évQ‰xv`/©šüß4bª%Š®·&F;tm¶:Øš(¢F(1[Ó»$q><=“¬f·6ú%Á¨®E+Nö“³¿F²Á ±¢âìý-;¾N¶©}ñ«Äø`U#ÈjÒ=G»‹™æÄ<4M‹9 ]Bþ³«¥¾Ÿ?RÕ^ãû˜üJSY¼ìœ‹[–'Äœ™sÍÀýÔ>Ê,ÉútËn¿ym#¹O”–´ÎJKxR¢7‰a@ɳÉÌ¡´¦iÖSÌĬõõ½"Òf™)`§V$}­ñïüïR´pÊåá–㹟ü -ŸFN7¥î?ÿœ½1»>¥:p…_äªùP‰ÕÀ7Æ U6À-B剖‰ïƒ'w†ÛQÇ?pâz8ÙÌ$=,ÐÊÒçìmœc=ƒn÷Ô?Bô;[•ÍÅ—+ˆU­ ó]çjh¤Åƒ‹vÏV§ôNéƒ~ Ü:ÕÔ-ì» yë‡ßª’üÄoèz¥r2Ó-¡R‚ˆ½¡ždm7Ù5ˆGô©"ï8ŸÊ(œ3“€š”ËÎCTØ6'æÎâïLùñÑÐ\ÛÜ÷-Z£Õk.s{ËCA-å.=7XÜýM(ÐÎLö‘D¢é(ò¬.» ‹‚pŸñ³NY:ÐüËÖZR ×{×á‰èŽÿÕåþÎùÃÁ¦¸pûeåbz•…RŒ´¤¦Í¨ØKcÕ'[Û>Z¨þèů“ꎈâÊÃ’½…?Û²Z20Y"ï‡ÇIóŽúÑ¢[¾,‹•»8_s<ƒüÆ„É?×àÜ ÝJy„ —¾‚^§®HãØ<&¯[x’Ae³‚ù:à×pqfRKö©”_$,„¸üõ2þjÉp!l¼0g•Ȧ×È6'#è…3‚—0{¬|Ž¥j%Wv°ðìȤO:]§{•»ÈÓ²S¿>L© SÂ÷ôJ|YZaµñи $ü½J[9ÃZÆlþ}êßÉ#b?Π±Iî ZÙŸH$¿6žªÆ<åö»¹^F¨¥7Ãñ’ÿ´P¾LHe1–“Ìý”nÓ |_£ŒžS&÷òÉ(YµµÖ»VJ¦©$uüÃôÜÛ”„ ÈõÑ=ÇG& ­Ö÷ª}¤€„`)äÛ¹Ð{àÞ]¥ó å3‰åä]£M[ÁÊM+m³Øƒÿiw|*ÚÎåT^kÞ§µÖ€®YÖ±LN¾rPú`.èJ"1þìALe(|°}¼“MÛ^P톖ǿ½“á¯Õ?ÕåN­Ü;Š#ŠR¢—Rµ7!(`epb–Ÿ©Ê)`aøMîÌß ñÓ›w÷2E T¾½‹Þ;M7“ÊË¿@:˜<ÈmâCßÏ¿ž:D·,îY­»Î}Ké0êŸã4kr¼ ²Ó©[ô…ø4‘î@ž?*o¹ƒü|©Òßý?]e-©Ü'Q¹Ê;±ó¸žÚÇ¥`…ñÞÈ™òlH9åß,Tûb€¿ºZ®®Ït'•?Ö²7tREœmÔG§Ù˜4ꩤYXˆ²õè‹P©vHö°\Ûí åS }8R‰ákÙa³,ÜÊl ô‰ËjÒ3Cý2ÌXŠ¢9¤åëZssááz ãݨ®¼•ÞÅn¢2EwÀFr†šçjóÜ}î <¾èV€U½£‹3Á°o[q’°÷px¡„ÓÖ[oî©ÐY¾Ÿ½E­Ò4‘ž¥- ¤ñߎ÷l™š™~ Mô,%z §2sŨÙOø?îFƒ¶ûev8‡ó8Ü”ÀlvŒÅ®½‚6#/T¡Æ/º¢”}®¹®^yòƒ½·é SЀ0ñ•hpp™¡#2\ï…í^|Á¾M\‹ß”@ÞâØÂ8­4âÈÖa¤‰ÛL›dÙ îÁ4™Eä±¹Búß]YÑ鱂½ªÐ«ê •-ÙiL1c¶íÌ;[ãð`–uôò%8é¦î)¯_¬ª<}ºŒ 3 ;È÷ôµÄìêÛöqÂ"?¼™‚´üI]‡wzÙmSÁQ(TIàõÙ²`$÷ü÷ |Oö2âˆì­¨w.ÃXñ%Œlá 2·A_0d‘ýG2vÇc‘ºX7 Ó2]Ú| H¯xyÔÓbÁøùé`£ËzЉcyÁæZq˜kùÅo»ª‘s,Y…È)Ztë‚ìÏÙ“§#s êÐævî?ÚèzrgŒC&ü*¦cîñË{é[Mƒ…ˆXÛ׳ڲ›X½Í NƒbØRtÄ#éó$‚ ù[aàSÖ‰I˜ügNCXÓò﨓úwøü1 ‹–YC·%¾¦M Wקެ½ã¹ÐêOtÓ(w™™tCòðuy×r>”[d­*Á DM‡s—ž;eáí^‰“ÎbòH,7Bío g·ÉÃ|–@O‰;Õ&ˆ~œgT Ä.C†]ŒòJ&Äo¿%¨PÜ’•Äk Ä·ÓH¬jTxiJâhŠŸ:úÊ÷-¦?̇×ä˜À±[™‚/cN…ƦP§/ÁÐoÙæ‹7Ô³òWYèC"NE°m5+ŽG '”¦WŠGGÚ(7üM`göפª=ø.mv0/Ôµ9g(L‘ÐGfÄêB3â~§/õàŽ¾Þh~¶ÌFviæ·xj^±”ôLjIÆâ;µŽ‰!ñøõøu£d)m³¯¯à¿P²ì˜ÄÜùˆx‡Ð²bYÛ%)íoŸ­nÇo(ç·àŠãb Ã­£ÔcyÿîÞi@Èì`Œ#â\ Dˆ×ÁY9 OÓø)öscɼ†Ý‰¯¼¦±‰  äeû¤È4{PñP Bx¹Ù]v凇žªbÖ” s ø¥üLچ˯áNØ?ÏÃ|IŸìEd”Ï÷M¼§Ã¶ÓX72FJ¹¯­Ø”eØkS$s›€ hû_ÿ]ôwÊúøÀ•¤¢…øˆw Pu¯„ã:Nù­u4 pÈ_^€î^íÇyAuüMwÏœô»*޳ÔìœB™¼¶ißyá/ež½HXQÊŠª¾ù$l/¼²9†l{ÈȬ¶”Yx^Yõ-â}î±Fî~à˜¢u­«J°·ÉùêÀgTËIH¤‘ƒ¹ñqó=•g™gtôµeCƒ/à€!ãölüLä86!Á?ã_ð·]¼Éܾmw¢AÑø‡%–khÙ_¸jó¸bÆ//¤®ˆ+½spøÍ.cûBÅC6.$@×eD˜ÒõÒÀà»îã.™?É¥´ó(v¸úwˆ•Qñ°+™6výÐæµÖµ&\^|„ë XU–h ©nn+á{@gaW áC¦èê 8F«Ýh_c™Œ›µrì _EŒˆÏ}5C¡lïlՕψç{³£Œó_œ¼LÍ”˜|!ÚelgVX~Ö˜rA5 ܦ…Èøq~ µ±êœ"§BÄË€ eà=© ½õäþ4íVgï By>¿W½™8(ÒˆÐÚÖR¸ =PLâï–ìá¥ÊQhmòõÕT?9 »"ó (¥9Ÿæ'ìü 7Óm˜-z¿&€’h±üáÁå±yÅUœí¡µ°ébwÉæHûæ‰âá¸ÁäB~?…Ä+ kiŒÕ‹ÂfïPC™Ö°ƒ ‹ÉHžÕ¾ÂpÀØÓ³…øå$ämÆÙÍ +'V·L <ïÊ–º/$¦¨j—ºö ˜=Ôxx@m+°·È<·Dïb ï‡•'éP’¡ø†„$Ô6üM0t+ÄUçC[åÏSùÝˤ‘+ðöòÐW r0‰³¸ýŠÉ¢ƒjÔ—5¨Q%ÔµúDΦØÙÂ’…S ¶¾òäŠõu2GüÊl^SP¯nÿÄ ^°5„­¼ýš Ij’%ƺö(êhç.>M½M1æÛÐv à<˜ƒ{ëÇÓ©×]ü¿4P†?I.a­qâ1ëglE.I˜µ¤‘°Ѫ•‰Øk¥Ág^<´Ùs¶ÈºMÊŒ§ìÊ9+¹Á •ïÞhé÷³tw#y½¨¦0-W-Oà›YOggS˜:¨äQ_3åŒEâäíéìÿBâçïåíðÞàÜàëìîÿ­×ìïêÿÿÿÛÿõ÷ÿ:ÿÿÿÛÿîïôÿøîÛèÿÿÿÿÿÜÿÿüNFŠ¡ìkìã‘õB*ày«ç¡Âä´5€690é%±WãçꪽÍ*ö—z¯œH,`©x•ZšL¸ß‰è¬2°”:ºãEGÉÈ(ÊcýGx*ÃôŽÒ­pŠÇž8+™`ï¸tßÙç›e3/*Hæd0EvÚù×Ñ'ëýùç„~aœ®6é±A—!).N?ñßðI[Ëô¢5úY`Ͷé$ÇvYêqûU,£–3,¯p¼B’ë—‡-óZ)kh4 #Ú¥‹ÞG-¤ÌÒê±äÅã‚ • u±™cÿ,T–´öCàGüLäls sàD¤>x8Ý•®‚ëõÙ[Åõ®)דq¥ó|àà^>ÌÒw–_¼¢Óê†û]÷*9ÂC!@„h?}#FX´"a8(¸|ó–(XÛàGS–÷$ýT¢>_â“ËFɺ¼|o]þ·¯²µ–°ü0eÄ!«õvùF’ödD’_²€ƒkh6Bù¸i®fMËw¥x–½öXŠ^úe’­ICpƒ”a´A„tD}nuãrŒ{¯Té^ëXzܦ3æÉ‚ñ¢-aWU®ªà þ„‚ÃG=v¡š…£¨!yû%üK#çQ’¯<5əŊ«6+J͇ðÇ(^›pœÕ‘(1[BB"ŠñÃ…Ö¸Uè€vD ŸùÛ…Ð\i1ÕÃ9nqÚe¬{x;È /î!Úý£óp¹×5ærÜŽn÷¥Ì5Ö½³ìë5ÖWíC^q,t÷-áõ ƒÞJ?œJ8³”üzHíœ3TC8÷.‚*BK®³Ñ9Oc“™7Uc B©dé½»€¼éÌøKðÒß׳Ba|à 9ÎZ lós!·­¾‡a»jvOY \ÏèÓW’Õ€èn²Ú?³g3_bRÝM»ÉʽüMG«2¹p*Ð4ýÑÙ ƒP6~ÚÌ?£Üö/Þ<ÆÎÈMéG?vDõ´‰°›Â¤™fÏ|ü—¡§ù€ª˜xaØhˆýå8ÕÝÇÕ䳜¡Cp`õ²–.è«”˜mN„¬,„Ð/r@çÂmÖA­§]åø©JÙµ}ßÇk#²¶Ï”­Ó×\a¼ÓG‹DµpUËH€º„ޱcÐ(Ùã/ºàZÑê§òSª"ðíj™ŽDð6”¬ yrþ[JÅr”ƒ#V¹oe’åÛ¼”±0é2ùB+Òë¥i’P?g3AüL¾Ík%yWmE«‡ú´­¾ÊçÇ_ó] {8³¬¼ˆ¼×¶@à^Ûr|‡4qoß«ÄK~@}/­h˸˵„ ²µùÿQ›å¤"Øìì²™5‘› )»<·Ó@¿Ò‹?Õê ‡ïäZq]”¬ºÓ^J@Lw™¬Ò¯`£òÍ*·;;  {Ÿ6Åž1è/.õ`J.C6•UÏÖAò)œeªú÷VYÛ?È{‡M7÷&¢$f…»à¤l}}&Œ¢}ÿëôºŒ4¦ÛÎõŽßšÂhªVÒD¤W @Íc™•à<Ó#]:cé.ü{9±¡CnT â­›@Í®åØ66Ö…ïZR“¾ù¶aœL9;—›3‚«+ì(S@akþ^®Œ ÿììfÿZ»Â×Êk ˜2}MÞ ª9§½J #µ¹†ó}Í>1ù}Œžm7ƒ- ¤n‡Ü“¥‰è‚á5q¬¼Ë~Ïy‡ïßæ×ÖǪ®âš¼Óß5°kлÙ^¢/þ$õÄìtõ‚†÷Ñ/_~nÕÿVÖˆ«3_d“‰¨ñh9az{òo¢˜…EÑ Sp[ûç—JÛœB_Ó2ëN¸6¦¤•l”øË0¬ØZ?m»‰DÅ"¦‹ï À§’ñÅ_R ÿ©>S-;‘o *çÑ5ŒU”‡.êl/1p¡ŠO•+F•þ¡IÎcÏsœ‰áV›1‡¦å½˜Ï•8Ñÿü©SŠFíû_EjeS;ÎÆüXL.$àx¤#A˜ùËCÙ!ÑíHkñ‚pèQ&U£eÿü ‰響ÝeSv«¥;ØÔ`°72»žç&yü6Ûvñ‚~GID:Y£œ(ÓÙ&;>é9bõËXIÇ5¤×ͧF³£‡©mÅZ ç£mhÒ©ùÛÁÅøÇ„ž-z.Ls0dn}\h5VõÄ`% Üö‡E÷Â…Ë™o¨ÛÁ¯ Æ{-Q…šM9Ç|2Ì¿ˆùJ19ipKã‚0XìП`3è›I=Î"nó[·öøœÅ©¥±o… U±hø3óAM$úõf5/`øòò¿ ËÊ–]â†"ù0 gwÿÕæ`Û¦€žT¹ÂúE*Ñcm 1¤­õzzGäïÜ=Ë=_‚%–߄Ǫ¥Àu-kŒ§9F ÝX­„;_#kü.Ká]d@á3‹UW(ÈÓäBȲ*:Æì(=uèCÉxö¿Ëø6÷£c̰ /²™}Ú•ôfÄDЊòµz. ù´¶ëëÐ[ØóJ‰¼•Ðguš+›˜¨ º¿£è&ù¢‹(-@+„$¥L-*š·Ô?Îîçª\F\7ÈI𹊹)'NêE7IÉ”uŤ€6BJ‡ø û$?}И”!ÒáÁG òyçkg”£Å‰az?Ù89Ín¥«ÞWkÖ8ƒ÷±ÜZÒ—)­ZàGò=lµî¬‘›½ +–TŽüMCEHê(”¦gH­ ÂË8Úñî"~ýïŠÁ:o±R’‰!O ìÛ ']Ì^6p‰ùÎ?(æ¹1¥àôª»âõ­ÆÁ>K#DšldåC…ÕC0ü'Qâç\à\7Ô-Pˆ½ <’…“böügM¶ßÐ4º~žtê[c/+éÄ’I&QñÅ™5üZô‡’oWà†ƒrwI-QÜ]¬8BÔ?Ü{«KáÛyèV—!Y9Újîô7ªÙ 윸v„Wcôù! GFPgÞÿÀ‰¦,1ê$Ù”c½ª©î˜÷‘&FCò5ž8ý’B ü0.·„W#Æ ÷<:PjÕ£½ UîðÞªÔFuÿN›e=Æ ÚÍ845 ¬3#Ó´Jmjb¢¶3&,’Ó$£gb_ž{ÿi·¼âúZ6Ö#2ÁúxË#våiù`‰µ~áE \èèÄ‘Àк°ð¸]Ý×/ m8u‹»b™¢!ÌËÎIÏ!0‡}8ñ¯Aÿ­tǨl3À¨¹æá•ç»ñ Ít㜋ñ x×;ˆA –>X½UÚXµÙËD •PmÕ¢Ý ¤¬{Š+úà/%>hË€R.‹äMî¼É:_ ±Ï t\üJqÅEËe„{ 6\*{R›öšy‰Q–ñœó1Äü£ªE¯€ÿ“6§3±<EjسǓ€, j Š-q×\É;>(j ja•§Q×è謑”w¼Â›¢…¨eøaî¿-M%`õA!vQsC÷à¸^™!XÍ-Ù;l“åà.«é_êG°ÝËrSíÄåóXîXÇWõdíeL/õØËn뵦(/lÐO™DuËß=v¥Ãpà,êì¶T-‘QäœßóËóoÚÞÈ¡3°@Ýî_…V¿düMvŸî5náØ²G?}ÇG邚­{1k•Wçä‘a‘f•÷mY¿gM ÁÅB]¹m“J¤ØÇ¸Âù!¢?‹tck„ZÎh¡ÏaØÔGGö€ð­µ°)áU¸"[‚?ÐwÚ]×'óÌ]]ñ°1‘ÊäŽM¶=ºÝá–Iê‡MÕE#œé°©Ð ¶þ9•[ÎÖ&à¥úáRAj×a=mì}¬Ë¨vyn÷4J’ùnoùQŸ~«øè4¸’J¢(£íIhå±Ò¼GV–òoõoÅġѩ/ÕxE&(x——W"’Og üLЈǢk`XÙû¹NS8®Ê³ K’VUóËTôwJ ëÙÀP,ÛsâìZ“°Q`4 ÎÑst€zÿKé×ú¥âè)ÚÂ4[âR¸C¥ ."¨ÈÈ8`©y!Ùã=ñ‚s)ž.úàÎ_*L‡dè_3˜Š:¿î!Sa'› Ž^ÌL5¸ýHH–3Ú¾,FáDÇÇ–ô§>™0Pd=ãowÉð;ýx¼4ð?ÀbÛŠC{ÑáE—¥ÙÅ[ •ïq6j‡eÁf^7ÀGÙ‹Ê×f´ ”­K}±ò vC€ü.AŸ€ëQ®FgÙ{PF­¹Ñ±j ò¹|ø_7ÐÅÂé¨pa&ô§9³òðöW®¤§öšÄ…÷pÃdZšùÕ®Fr" ‘*qç|ÙŽøERÉ*]ÞŸvbÏ: %|ï³Q¾iðâ#ˆÛz(¿E­X1ù¶uï¶À£e‘×G'ch׈Ú\êû‘.l—Ê2í)Db²[¶#>uLñXõ^ 󳬤½* 5Šó‘š^碼×êéð?ßž¤'Jr "$ÊÉ`¤d7Ø áe¾nÔ²\;ü/D˜É"´2s87GÔãEÛZÅs¨ô‘ïmÿŸœ7Ay÷<ïÅæÊ§“˜ Ù[zà:¾Ew†Ç¦aÕX«—¢¿d¨­ª#Ë3Œeº½hö=JŠ$6âtÝ Í?CéÓ—cx•¦`áH7Uûrý$ކ®s%!‰D¿ç¶³ÀýÆÎ/™:*㪢˜‘} åh¼ї#èØË¶È4íäuWÔ=i؈DïF­âëã[ál‚+¿¸z‚|ëÍáü˜ÙÜ„JÑôdU a"Énëc.•ÌÀ.bfö–Ò‘’7üLãâF’ ÚåíÙ#ú<‚Ù(9ÍæN2W”gªú»\Ñú~‰ÌÆA[>óJ­«îİ*ÆFITã=„:î@”™²¤Í¯W8xd,iµM«±he¹¨hÛ\O76aÌÙ?1`Éàòuδƒ·ØÛã­æ\[« t²µ¶—›¸GùL+ÔWuD o6–ýÂæÉz§AÜoïBÚe׉!WF*îAÇX>^(“Ú¬ŸéÙ/qIÉbÀúìhr»…Â÷#ÊÀ¶H”£9óÔ¡˜œîˆ¤½)0DA½Ô7Á”MWù~ë(u;ÐJd™rL<2 ‚Hff%ÛwšrП2XLÙ_ {O§1“æ’xáÕݺntKÅSDÈãÚ¯)^¯ØÉ)䮊î“ï¿â+BðH«SwZ},§ÛRF&šx•ã>ÌÆãöÿ-Ë5*ú ê˜BWΣKoJ•Ûú)îI M6u…R/0˜Æ8jÆT“;R¤¼I]Ô–¿²Îvâ"5ó³èM†›¶.GËÌéþvr3 geS[ØÐ ž$éù)d>¨•(ƒAú«#6Z5íûi7Vü#”‰£ÉÞ_N*EöGx¡uî%Dh½ÊZ\•,ö¬]×ý7ÑŠ‘Ð9e-°Ã²”X¼ös몟aéÜWOí²(Vàã˜Ð„» ×ÏdKGÁj¥ÉJˆµüL®K3ð$ þmL9O™.fF…åâíÅÖ–!íQxòèqr.×nÉ€ˆ” ¹ÿVÂP¾í”•», WÂÍÜ2ëyFZµ÷q¾jÉy¯B\¾ÅÜËÖ] @±øtÕ9VÌR¡Èñ¤î¾¸†âíÂcBÝy©Ã„Àƒâ{ø šžwm†QL‘\û5Û,©±ާ¬bâøNgÎ’»^î,÷äˆoB¿Å]-cÄÝüúÇ´­'«¬©ÒGå­Ñ½€ÂgÔûpÊ)ò3ö/ÜUøp6éf³XÌ,ã\Í@%ú¹PIá°x!PDºÄ)YµÓó úLì»ýát¡Êõi䲓¼)nŸ{+¢zˆ—LS¿ª®þ³ê3±Ó¬¾6TM•}u 1Å©†=ÂÐVZ¤²`²4´¬Ò'­µP,ñ€(XV¸5üÆj÷ „†Ø*¯»: Sÿ%„1ðê1?­ DäÌ»Nf¼-m¹ÈUŒQnß:k?rù't ¼ª±‘ÕT—FŒEo…‘¹ 1öúá½Vø§m¶-Ýpida"Šâp}ù®@úîË×/qŽ9 ÚûVO"W¡ 壸€):N“‘dÊu¹ø¼†îw=h J•¢P>GŠÎ}Ëp¢¡.t_Y.º o„¯8Û+­K€0Õ€}áEØ­ù·r©ûß;`÷RCÂMå’{ZµVpwö<³¿ßÆjüÆcÍ©[Y'MÏ e¥Ÿ‹7-)æn€fú´£SHJ¡=0Á'q’bÀ‘P‚}ßudsY{Å‘dGßÅŽN[ð‡¥½,Ím€Hã¡h´w_§6ËØ5ËÍ=” })òd¸µ&ð–—Å;ošÞ´ŽÙ¥s\^-t3ØÚ¦pÿ±±¤}$ƒ‰{"½šY¨l*¯À'åüáÚC„–! 6 ²ÌêlðäžÕõ0eL?ôHó^X>Óà2Ûqpãû³ÖªŒ$ž@s8Pq¨ÚÜ¡Ë,Ì.–oÜc W˜›~©dDogó5<-üÆl›6´Ú½À¯ÝhN%ºdÀxMcÀ\Q Ý!'¾ì3Ö}h"Ýö1Ñ1°Û`ßaî|–ãP/aR<æNµ±¢4®ê¢ÓÌà?±ë-¿%.oÉ»˱ˬÿÙLß¡ã[ 'èG-ðZF+`B"‡úë8¸.lŠ9Sšè¤_ª}!aé™ÝR­ ýÕLfb&4l{ëÜì°´SCÄ☖ÀþÄçOÚH±³ež@¾«Z:hîªÃ]à\¦w!Ä«—FH40ŸîÈ£”Û9‘Þò‡¬šQ!ç­êXîò#Îgoš˜®\¯h·w‚oL|¶N<;×>müKF/×@á嬨Îâ| F0hÛ;&j=©ÚZ*fÑ 6¼4Ê2¾$€D¤v•ÒéZµir,ìƉ”´T¡#úÏšª ’gÁn¼DOÀ¹U²VóÚZŽBãBŸ»“° ýµ9ßÌIÌNܨñû‘\dûd´Ø¾ç<Á³ÚóÔY FÛ»ƒÌTr¢n¿¾ <ÊËÐ) V”ʯQ„¨Å1®N³£‹¤íûKoþ€¯@i†x Â’ gŒg·6{½è«ˆd"Ê赤é.`^™|–Á€¡?­-êÞ.[Ä(’-Ÿ¦{бƒ£êìéŽ2¬ÚŽN»¬yæj@üü|­P`Ódk‡Ká˜6íK¸TÕGïrì'n`¼.ns³õ²E!ÓbñÍÐ<“èi žôÛ›}bþ½"W…^Eï´ºU» ce'Ä-‡Ô¸:Þ}rð(Ôª„:p±sî’šUùš~œœ_Ò‰¾u½P],¾;!MÊîw#œà»ØGb›;ò&?Þ:‘î…K¦_±ÐíÆÌž½ÿÿÈÄ âŠ` ÞJ vëtåçÖÕ­]ÿ'ÒiK»!å+aØÊ "ò‘D5¯‚Ó†O ö“™ÂQÉw•0Ìé½HêYäŠçZJ æ­Ë_j!© fã*ÿä±r™¼sÛž·b´éµrÿR«÷rØ‚±ýA÷•ëž>$Cïc—¤å ƒei‚Ý‹<Àî‘?âÆhµF„æóü³Z1S2 ÓQÙSN'œ‚ïÇ·Än­>½b ϯ-·}·Â|Ä®È] CàLCz²üÆc°]8› ¸P’,‰ÖÆR‡Å]FMþiÛ–¯&á§qT³@D4ú¥Úþ|‰”Ò|žÙÆ*#Ü‹‡r ~ú€J¨’\Ü]7´mR'¸~"-¶Ùß­Æ»j«Ã{‰ë~ì¹ ü5‡¬â”—m’¿ÎR¦NjóÈp ¡AAeC‚2²¸¹1ÒÿSGÔv¯Û¢ƒ¡€YÀ’ÛØªƒoñéVKËðÆL³ ±X“‘D’QËqlš/c»‚ÇnÑ{gbf‰å‘Ÿmy÷uo‚Ol±â½3‘á-ïÒÈm\dèb³UYÔEQ«V{yÄeŽ8<(poëDÖa´ØïÈüÃÿÎqèQ3䊥¸°×B¿|:œèIŠÕiA…çBãÝ”àÇ&3~ã©„ãK¶Ž[ˆpÖ£nû5Ñ¿Zvò>Z 1—iG€sô¾ÍVfE2ЃèûԢغ_*/¬ÜÈ0Ĩiì|{|ô¨ ˆ6˜NÇyça ¯»uNfçñ"ŸËv†Wš_‡g-DÅÈ1Ø5z&ÇÒ’]L½-cn¤ò_PïüFźIrWƒaÖPZ²t]Ë6UåÛC‚¼¢ÏŽìD at½¬&3U.i¶ G¾ñ½Š†Úµ ÉÊî„c—GªeŸpUYw2áôÑqü.Ååenº"#@É"Çû‰ý9ŒS¤Š‹ˆTî'Z­“üû£Òg)ô·“ƒÒ>wt «Xø–1k¯Ä­æÓ¶Ðˆ)|Ê/§‡Å¿Ã!Àý¶wÏùqØl˃!‚ðGâÃü‚ß-ÓÝ,ÈUŒ4K†ž{ç‡ŽÇ ÀË“¸ qebc3K–>•]jÕQøôƒ®²<ŽõÐrç«ÜÆÛ{ƒØü-_£¼Km?ð÷ø¦Å}IÙÛß gìÄÍ©b¡°W\ÎYX+Ì9¨’|žGANi+DÕ(£[[T¹Tôk½£4mªð±S—µ¨g®wm´)ÐÛTð¡T’§³¨ü .ü®‡ 6®ößÿ˜»úè3[šw‘¡››až¬{ÂL·ù ®›šîNT—“æoÞû”³½ÜtަTÈ'OÌÈ—æÐoúУYðé7p±p8ÿÅ—! ?õâÜE—Ë2p-˜ù÷ÌOlz݈Öw>Ûg9' ÛqU¥ÑN:´b¶O-Sg?¥‚kºÇZ„×%b)w$àÂiRøÎHWªÍgm‹„€ÕÅ„ÔlÓò˜òÕÛS”ߦ¶²¶—_¹¬£?övÄv—a•}03*Àûèá Fz~—ïç«æ †œèBñqu¨îÂ)û¿yÛb葘ÒwŽN=]sõ½‘@·Ñ¬Ó¿Ÿ¬¤¼?Zf i†ÝÎ=¹:›,­³ËèZŽQ€ƒª Lñw›dÅ€ÐójÎLnýÔ€ü°ØÚB› j+QI5Ôµñ%è@ÅC<´1=Í7¿à!?ÎHjk¨~µ2zêùòºœwd…Š[AÒZE“†­Ù5ËrX¥Y¥b`}‡ð«®Ûëk’ÿ-Áí @¶Â›+D·–© K‡Œn«­H wÜ ’êÇÅë'´F˜hãAw( Ÿ)K4*Ö¿#4ªÄøn•[²c‹k?šÄEèóÖ›!çƒWÞ¼Ž9<.®W½^>ÓigØC^X"— º¨ÆM4….7Sô»Ë·°V‹­jÆ–ÂÉž¨“æ²Xr1G£Ú5˜ÉO:bÉëÙZPÊâ.,õªì3DUàÒ_e¤zWì¶0‚ü®Ê}>ÿô2~€”lNY/¬Ã Ì€9=ØZ{¾@ f‚Àކ:ÜÝ6ØûD¸Uë›Ã{t[eW¢§WP~;oÉ*¾üãg´©ø—EN‰éøˆ’¦§š¤}b´YŒßvi© ±S?}îøz]vŠ&BKÒÙ™æN™MßI¿:𠲜ŽG ,ëYÐn€³”4hç×µ©¢Ì·&KëwZm·¯íy2œ¾Í€¹øÄA­PdGyŒ^#WâHS„úéz”0ˆ¯y¤û$…ç@~Ê|¢½rŸ£l£‡}šâ†xÌ~†å_$ñ‡k`òDZ["'‚cä¤A“A°3àãëÂsÑ"úªå4Lõü|¯×~@£4 ±^’¢eç¾÷Öíœ>ÒpeŠ¢E—)õæP•ÖMmè’ýµrÛ’o’Ó|w„…{öñw®%3pN(_v‚—q}‚N%›Iÿú6utDlJà8檑Z\9bL/¾®w,^ú_V%oĪOWD×…O¦µ þ•ã?áç œ_ìm¨‘¨¼'«êÐοkƒÌÿçåÍÆ<ôv‚¶ý¯îb»÷´k"§·iáÜÈteÆÀûª,ÃA"ÊIZƒŸu‹=…ȇk6pÄöA®U…ôTv¹rê1ÛÀ@—·:[Bã{ÔAs”†naàj_ë“5dကÈó0r³Ó„æ ^ß³Œ&Erj#ø†¨CêÒndf`i™`œñ€Ùlœ×Kú¸…4kaV·kQ¹Çq*žÈñø,û:i¬óÚ?㜪õa¨š¬B£QÍ(mž½@Y³ƒW*¬g Ö«ïº.ÒçŠËo˜è¶žT\TsV6€jžÏšN¯ÀyP¥—ÚÕM¥q =WĹ«aà1H÷x÷ã8‹ÿ=ƒv–ûä*­NºqVpB-®|ÓxÇ<ÌÈlŸH×ø²L?×ç<«Öñ™¾ ­¾ç-üXÖËÕ8F«Ÿü »Æ˜‹§¨+cÜ®®°ß Ác@ÕtÆŸê!½€¸óê¥{¦5“Tçd ÛDÕJÐw ™úÇÑ íñ\µo±;ä"QÝcåÝ*›%%Ep TŽ9VdmržYxs·iñ„B/Ö‡u„/‰Ò_RƒEÒvjØ+gù?3²qg‡¨%?ÜÌ/Ã!OÃ’[°M˜dªîð±†Ó*½œúÛ[‹çÈ’³Ž>™5œèê½ bî°-&'ÌqãA_â­þ‚Èú.N†½tC+Žì‚bž1YY1s”«þ%{Ôó‚„BåIdÙ#ŽfŒ×èÑ ¸Ó^Ç‘súÁ"Œù ¢SߥhüL»¯A'芯ê>sìCRèCE| {.è®7vï ²d~‚V‹Ï&«»¦À[Ÿ¦2r¶ ó€.Ì•¡õú¢§5ÌÆC”Î?(ñ{¢µô«†°ÐxæÖ:#Ì›ÝO8TøæÅäÇõ»&ò¸8ñ…®BôññÎ QyÔÃùÖö²Ij¾­ZÏá}_‚¿³‚ bHg±Drc—Æ‹äãÒ¤/©ö\üMb½×=œÆGH›1æB^õÇàiÒ™˜¼š‰ŸghãÞ—ñö§«ŸDZ+Ã6-aÏ\2/Ó·#-…XÑW"lC¥]ÑÚ<Çã¤Q·£ÄM§R!GE{ÌÓjÆ÷ùyå\ «*`6\AVG¬3úWó>˜•Øaàç¦ÒLT ¢}íÙmPnËtP¤HE±ëQµœÎú©‡¦aŠeô¾<9.Õu€IàºL>´ü:’j¼è¼h¶²Ší¯È‘‡ è¥Ð/8l¶zpû`…U²ú’Ÿ|êÂO¸’Yï¢ËEp‘a%Îq±˜…Yà˜ü1©¾°ÔGN TŃyöGH&-P ÑvOevšÓeµ¬D‡: E9Ñ k ¼×À±Uо)¤—òº²÷$è´Rñå‘eåll¯•/nO]4ÛÚù³ –pÝ&%£Äp¬9@#ò%¶KÃ5¼cšJxóɲùäžgI—›ÄÛŒ=‘¼ñ¥Ï’Ð]ï¬~ÚKG4]hç$üèzg¡ÒÊy»ÞrËVj›xBĹTŸJÉ€j¾ÍÏÝB) ¯ˆm{®hÒ¿S\f»ÿH!/Ô&¸›Mz†N%±™©½zÚ Œ¦ŠÎâ`Ï r›¨Pza‚ÜN"?•⌨~SÁ"'?ÿKÕVüL²=Û€‘%€“a¼ýw´N~ÚI ©mC£,å|IÝÓØ=Ń< ¼ûxW6]I2O|Ø¢É÷ l½Ç̉sèÿ}û…£ ­à?ÞXÏ<{SÀ“&ó%0ÅI!ìÉsr• >–ê%Œ¼*ÏÿbfvjÁ%?ÜJ­n÷4 <³5‘Ý­›ñÅþ<¶” ýk©U§yàþ ¡ýŠÖïŽd†– –0 5ÄÂ4ü‚Jšó|][µŒ¯mO8¶®Îl3ÂëÃê$PÓfÎ :˜ºÁc×}ƒöð}7xk²úà¬æªûAƒµôbðRÒæôüÙ/»Ø¨’xÎ=ÏÂë¨Ö.ÜP´FWCü—…Òö es€Èùˆp¿¤©–×ÛŠ2,ùÅóÄ%S7 ¡¢PÇ|Òjg§î8œ_À.D»‚\à}W«¦¤ŽõLÀ'Ž y’*¾WSLJw±*¿{×=ŠŒ³¸ ÷* Mˆ¿¼ù ç”ðlô+%§×aaó€1Aø‚/´q9Í Rk(dVS@« öúÍaÖb ‰ÓÕCê|z£´ünÕ›˜=p 6ïÛ.~%¯’zì ž}+²€>Ídçâõè©ç†à|+ ˆÙþßJ[†dŠkp~Ô iéüX§”£ãT‹(Ï|¹‹Ëz,­•ê“)åøŽÁôçE‰ÆÓ(5lfýˆ€ÂðÚØ¥Ž¨5A40ëöýÉuŒ«ýLmwÆ©E0ѹ•×$%¥ì\$¬(D…™µ^’'KaÓÿ?N8xB ; ‘ýW;{Š;¬ L‹¾5á-6­‚ÕÉ “Cí}a«âIµ¾®^[LFb/V©C<„t»š½—šóàÚ[0#ýöä“76oe%ùÑ,»2X¾‹˜‡V¾5\ND¼ûý½¶8>鸃Iü6|ÝNù쥸L„ ¬¾øð¥hòm[W &5ø?بÈ-©(¸KÆç¨‘´C%T=ßšL’Ô🦛ûYûvà±¢…4¨§Àÿ[!u=ký·òïã™#Hd-Qdê`CK&"Y>¾æЗ•ÐàçzJ,£B¥[:Jó5]¼²fðY?Æ ›ˆGN¹®  ¥÷öR~¨D=;ˆq0ü;Õ='.ÝwH¢û#?õ!ýpú;@êÃ6:‡Ç¤Ò±Uç9WêÝ WÍ(¬eßÝJC@Z|k=PF‹â$H}âúFü1¼ê(Âß¹ Ëï¬?ÃOUïfû¤ûzàp†ãõÏf"@pçà5s7KiÌa1å8ëô€(¶\úA•øoÚƒ0(J oÞ¹$Sø…,cîÊâ"•Ø4p}†9¤':]1ûëשè¸ÂúP mªÎþ­ú“½Wd÷¥wØÏaæA­É&ÜHYi u÷QиZÉ3û ®•Ä‹E÷Å"½*4ùfcs¾\Õûz:V §±[½ ÷I¾fh}ýÚ5X~;4£³C Rõ;†ùqþV/ëÍ-ã“uØ%~ã3'#_„?g{hPíæªƒ¦}­)ìNÄ@›Eö²×YÌÏt¯üL°‘’6Ÿ|þ7çˆ!–ší•CŸˆÈÞŃê {Ð~bnue¼<ïÔ‚_¾‰¡Wo·ÁÛ”µÚó”Ò^)ŒQq³&Îoånß™f%o†€mrƯm»»ò-³\§Äé9¥ºÙ¯X¾|1O¸6çˆvî Ì é„þAZߥ-¿œ‡%z˜—}´ì ŸQ6ìv½å€‰`Ñ:šŠ©;æÈ.¥R§µ·ìö u©k­¯T—Ý•±Ýó.6AÝX€sDº`¸®´é#ž>€ü“^u*'§«jgÏ#~áÁ6ùÏ$”‘µ¡H[,ZJl© × ¢Üꘉ¢§ IüÆjà„à‡¿ŠC¬}LíÚ0i ²b\Œw¶döG¥ŸBNžïp ¶¥FV¤|8±ÊÜ{5â ð»&î ±LTîeæKÝ;ƪ×V=È:±ÈW"–Yü%µ<—v‘ä+b³mágäfI”B:,ócX±<ð÷SÏþ_?ׄþëß™ªd™y=w›xxÌ` œÛ;Ú<-ä ÒЂïïÙ†jV© [3årS¾é0!h‘÷ªiƒ»žPp›fä¸Ë`¨@T]Ÿ«|ˆÒQKýS6×£ª-@¾ªzÃ]6„p¦ïIöÔù´]ð˜F›â݈TO³ ¹¾•¥á ´¸£ºEÙ£oùÃM2*•Z:wöZG·Ãñfµ·þ]KuŠO5üLÜŽG›—ÃË7à´ãÛêÓŠ§Ý–Wu“ËÞóNLƒÁ¶"ØÈPJ–쎅=õºè/ëaŠKPgžJ§ÄÙz¿a/q9zzµjq•à ×~0²Åa ôà­ŠqCKBçÊ;1]{¿nA¦Ì…’{0ÃþåÑ8)8±hRr•¤ªÀm.û`Ê,j0äíJÑ>@àWÐØ–mÞÆ¯°øxðZ=³§`›ŸO¯d«fÒù9š¦üo°×¶rOÒs2Á…=œAÍÛÀ@ð~,™9JØ:¤odŒHHÊö”´—ægǼ­îì!˜§)Ø(ÿ+M²ýɲžz€äK*.é ‰Eúî6üL¼ !q%–l-WÂ=”¯ ~×ÓÍB¯ÄÙ'\³-Ÿ¦dÁ?¦<)•ôq§Ã–ÍÚîúŸã3yÃR~L‰v[dòd·^„;ÿ ‰ÿMq ÎÒ ¬_à^‡g\ U$êÞƒÐæöã.|Ü㹪áÅÇ©„‹QwXâÉQŒÉ*{×}2ßLþA‚m}—ÁIC×Q¿‘G ?B…jD^ö²äqjŒŠëRV#'0Ÿ×R¯p‘æ ì,óh¹ÜPoAR¢¬UÐIò-ý—˜¬ëí™[†ô(´õh¹Ò³«—]v~ þ\y.KÙ}šéëŽ-J–fwˆy gOggS€S;¨äR/vU½Mÿÿÿÿ ÿÞüüõÿÿÿ„ÿßïÿþÿÿ ÿÿŽñøøÿÿÿÿÜúþÿþýÿÿÞ÷ÿÿ ÿÿÿ{ÿÛîòôçéóòíðùüMá¨rLmɼÝÞY¨f5˜(ؽûN³hˆV:¹’#ÀÝk¯ýh18·‰£[:X´~ 檔8ªE0¼4iëS ¶îV;ª‘ Šþ½rB­RîFfè¶¼r§öw¨ØÈAó“%vóP¼PoÎÆÑ­–ºËŽã’†.ƒ èiÝàñuÛîb°Y ûF‹¡mäJ@/ŽÃ\Ní0¡â`ïÌ$éR±A‡ëèïŸj]8æÏ ª Õ$TÜHêj˜~,ˆ[jÞû³Q–&4 æsØì‘È*±ÎŠlͪ}_jÙŒúWÍ›7âzÅ3h¥Ã+HÔÓñ~4Ed¼ä¼ý»27%öÏqµü6kt![ꤢ¤DÔQnt ö±…Ï(ZüAÜé4fg;Qá­Í'›Â‹Tõ²X%lŠ%[7†ñÝþb€èQ¿µ r….á³ð:R¤îk²sKhEß,ÿ œ¸£ª½á§ïæã:¯"öc…È)ØÆ3J’á©<šA±Î0³zÇRζGyçÉ2v[?¡”6m–IrslëÎM…[•,—‹Ú¹,–ÎƑȜdSÌC:/í2%ȵE4Ù÷¤UÁº{¿—F%Í%ðg)’é,ò ‡®.ÓÁ¸x¥‘g喙 s„ ñ­î„Yy×(NKUIŠ ñaxjR­g&¤²OüÆ/nYú¢Yé20•%žQ‰`yy:(ƒK¢g?B%‡7Ç“>’Íô>ÕB”MŽÞ×öQª¶öœ'þqˆr ’cŠÍÐ óÁž—½˜ÞLü­kp×*ö>¥d»~ŽŽ×t²¸/B/8ù¥Ìº2Úú¼° •'#k8&|‚@õø…”*çÇ‘§7 °L-q)KðH¨&ÝW¸•‰tŸÎûÝ¥ÿ¸GH©ån©‘ÖHkê'%ö @¼V­”‡/UI é¸S¯gÖ}åÓû¦>\ó™aª¿þÆ •¾þ{UwÊ›BŒj~ŒTja‹{%³,ãt ƒ|$?áðWéüÄ*6O¬$EI½Íd~Ü’Ë{ÍîrÎkE –h§ÀÂM(e?žÛÏË4cሄ_’a?¬Éæ¹í•P6÷‰thâ gÆ%liìÅOA*°ä”[ýÁ2+K)T´ì£fÄ×ÔÚ,Ëĺ=”fq)†˜Šû(ŒG:õñÿ}øù›þ3Ÿlå̬%^@ìª×óX[ _ïâÛ%q?°/ÿ5ç}c€=(5ç×ï³ú¼}Ѽ¸äb››5ÁV*ôGnWH™“JÉ’²10JñBe1}WWšßv‘ÄgûµiÔMO½Ë•÷¿`½Ý×Õö§¸z‰bÔÈj“жîƒs¡n!íDpêðǵÖÛ·èýø*KçÝÒ[l†ìÊLLæ¤yÁ¶åA\<È`WÒØMìQ¥«|`ŸWû: ä“z?¸“Eƒ‡>5zvÈ|seŽyrÝ% I¿Á/ª8Åm®&Î24`ÓWDš¬®we-Þ<ÍgäHiÎ+ž™iåoyÙzt×y+ºˆ*î¢Û_¢¦Ú¸º øÂ#“™~hêÕ‰;~\0zíãRm) Œ+_[¾=ÕIV i$K3NooÊlKÃÐÐÙ4•Ù ¨¡¶#Ý£ùbäùî_Ôé*ÇÀá”ÌÓi!;’ènÏ® $‹g›`mÛ‘ö€c‡ã¦Ê´—™3ßiÐð«•û³uQÿ€ÁûU@°Dè=„œIÀ ¼Þw¹y»ï¡üXLO:s_h“ä"š.å…ÓuÔ‹y‘TsC(2=¶ã­ÛY¬—[ÓK|¥[±†ãOÄ>Ža$·PÖÓŽ•×,ò®1³Û æ‡Cý†=RÒÿá©aÄÀH8ÙV¹iìÌöïn˜ir=ÎÃ$ºÔ¸ªŽªˆjäÒ``XߊSuœ>ÕD–K¶“–Íôyˆrb`:ØIQ]ÝÝ9©Ó­†ÙŸôâŸnöº¦­T Üë>>‡¾é—aÜaÚJµÚSØvI°½Ÿ–Nr_¼w:0+û'X ­7­œ‘–e#gX Œf¿t•è5Œá ·µ¸Cã(ϽüL·P5µ1u_X±Æ? 8èEã÷­“Xðnf r…ä$!’ÙW¤Õz¦R†Š·MöPÑÝ'ØDpNY„V¢Jk³Ý¦xF1ÞØ`/(úÙIIʽ`øÈrÄŠICG¤fy‰ H¬1µ,n(_”¶¢eLˆÙ˜¥‰S0Lñ>ª |D'ι#y-Û×Ù;GWž¾¾‘¢ ë$O·€4Ëùë[çDÊœ¾X§)Ìžˆ'ÆjâFÐ;*ÙÃåß‹h±Ûë[K½'R‘“/µDFÏ©?›ë“zèÁÄŽ<Â[H%[ˆo_V ã•§œrn‚¼"ÐöÚØƒ@²üÆcW£} ÇNxK¼` ( =áüõª{~~}šyîÒkÁû44K½ü|tŽÕXÇ&ÒOS^ïX: h¿$µ\‘SÌ|Û[Ð0'^~fÇiÞc4Z”厭¼B[*¹Ö} º)#•Ért1²Ó ÕŸŸˆÂtšY¿fè¬ÙÐÜZÐ+SqqÝÑ7_ÚimÙç‡,¨¾GÍ.ÔŠ s&º†CF5âÆ„Q~Ó>àšs5²ß+éEúc„Y@l4FwYö*ðF`“ÄcÆs•é·ªTm+Ó0þ8$›»Y4!..CEç ›$’äL¤ì¯W8àÝŒãoÀÿo‰ÔÉmƒüÄŸgé/hÙŒ·“ÂâIfu MŠèšeq’“±^?\ÁW±xèŸæ™¢M•¿Õò´»cAF€Ë”2êìKCˆ0~Ó2-D­dBìOû۔ʥÇA» ‹A|8 ‹³<ç롬ãz1xü ›g"²™ãFÜy?“eCUÝÏκT%fƒ¿_VúiÞƒŽe9_û$„PŠ3@ÜÌpÒå¼#ïBìW®”lEHÓ/µË©³øõ„s«’Ô¬ˆ0‚i˼ .q¨¢±žåyªÁÓ\ æúTW[8ƒq Þd5@Ü¿B” ÙL›°X›ih •ÖÁ67¨èr1‰`ñr–Š0¢¼[ù‚üK=íéÊ>"ÝÇLz©ƒ3Š›|:éï~\¦øE µü´)£-²Û:ǧo“}=É$ö±¤‚ïäë%¸ªì¸x¥óÅ? žZÆÀßVD­$Ö¹.wÞš¼ç(¯ ò½üùˆ,€ÀM&:Ìog Ñ|þ –ˆ.q5Ç@ïO»ðk,—Äd=·ìWÎIQZÖ¯·ÝÌÐÄ»jL%ÄÈÛS«+{õŒ=iu>¯ÖBf1X¼°5hØÚ(.uõæìb΢ȡÕR°KàÙ÷£Gi:¼ºã|ˆees+ ¾ŽJ*OÍ)¸’Ô ¤í4ÂD ý@H|‰µ5°¸lo¯‚®l^ל74Á+Y@e÷ªVÁÍD™iüÆdé×û!jjNp§¯Æ6 Í@|p«…pfõƒˆ D`ë?ö%ém¤ÅðÀèsŸ!÷:n§ÜdøØ¢H†;ü®+ÚOú³K~=˜PS™‚%!zœ¥/ÊC?-Ën¯„ÒÜ ‘Žõƒµz<¾¡öyCLC Î(ÕÚmH ü)ý¹Kµ£êëÙt¦ Z-¯Ã†uSŸ(rwŽ“ IBëA§+N .nAµáê2ÇTw[“àìöí¨:ø¤:ÆëÐã˜õ®°±F¬ŸNîEçÔ)¨é&Nõ* ;ítÙ1_þt†—g¾ÍËYÒæz¤6?ÃßðÂy?,³ÝzçQD…» E€þ™îö­eÙç¼O¤V>á3^rÊm“8œìˆÒx{â1¶"%LЦÈÎØ)™ç¦Ó%F;ô´ Ƚa뉠»»wr1/ <»x#÷š8%¯µ²IÊÂkJ{úøÅ_±_úÍ®†Gèîw% J‡@ï3"Šº‹cÆ¢üÊ¢v†Y½ÿƒ¤õ¯®´ä鼬ž`‘ºÙ“SvM|ÃH‡#'ù«€Øþ¤€°Ÿ„ËýÖÉðÜ[#n[šÞlå`ÝF 9Á×çu5Ø[Ëf®ñ¾±o^Å÷uЍx©‘úù.hØJdÐýeêwèNÿl,Ñ%0ÔBtE“7&b9Vu éœ'ßà`ÒöõKXƒ„¾×Œõlò«âEB†õ.‚ßð%רµò„ºžœÆ²I<7ëWIr¥'¼8©yWSõ$'…sTN³|•ž³`&¨ $å6ßh ѵâìN±¦âDl0îvŠ—8¥Üú°dS>MØV¦Æ·ø&`Ôý—ëoµÃoê<™É¾íÿ˜9åч:È|›þÆ0k6Å=X ȯ9¡ fB£(Š&øZ,Häìú­ãoƒ^2¢…QOú/úo†m²Š1/! b¨V’3îƒù=L ^?²(劾ó(¤À&­…4†ð.uî¦Ìý4ä·•‡tÒê<„ÃÏ7špNd,«Ø“í& 2¼•üšäm³Ï-’ ø¤{Q8…y¯cÏNäJ¸ëP£`ÄV¡ØvB$èõGÀ½” »Ézj»aÖú™õé‰LMŸÀÀâúŠ„ü1€äƒBuäË9º(è6=(ﶈC@$ðn¦,È;}p»æ¡žä’­úN®ò«§žçà‹óÙ¯Û¯Ã8øøÔèPôžz±i­fš¡Ðû®ïÿ=¯°|ÏË¥G’>×Ò¨zÁ‰Ùs>òm(qY˜sÐT®öˆDýú8äòœc¯’©¢vHØ‹ õm-û·fËkTÊ‘.eÆíIÙpûäµí_ÉÒ—Nc³Ä>&ì¾s«m2Æâ¨AÄ&±}ž57jšëâÐ'|ÿl™tfÉÞÆ¥¿—Q²Ü³¡«ßCÒè”NGjÜÚBÍ:a_»Afp¢ÛVòyüL®6y{!!пjîºã”¸EŒU¾ÀÒ2¶žVõ', âíÅÕu(âãòQWT‹¼À7•[õ*¿v-h‚7}<¡Éc÷±Û!Wÿ‡ªY§,S&–“úÖÁ[CÚ¹šTƒg: Ìóeÿ¿!°¼‘­ÕªŒª5v ð™Ý/@çPºn ÄãJG8­)%j `°Ì#ãsã9ð»ŒVÒä"[g1ñW>mJ™s±Â¥˜lôaÍVt§l2ƒç![ºL|ûdkî'2¢=¾«â'ŒÜ ž½Ö¨bmÛð„<ò°¨ùâG8p~Uîõ¹ I.϶7ƒkñÓN,±0³üî“z -$pcWéTT›Im:46#±_ÃÑL2´†ë@Ç»ä•ÙFÏœd°m6&­‡3ÿ$øæù‚(D¸mè)w {eì½r åîÙqjwF„H p‹€ìqy™ÔV;Ú½F1­ 0œŸY€üÛεKS¥&÷y–þúpqFwÐ=<Â_bJo/ì,8e½ gÔö«ÃšõX‚b%} ÖU¯éW½‚¬F±ê+gñµŽÂñF/ e9ñÄ–|b5T Š,Ù²'~ aðdØGdéêÿ` HƒJëMØ^r©’oØzÞ¢ºÆ3aã2[ž;˱FŒüL˼–›6ãF‘Å“Tû:-0ÅRS–ȳL²ÒÈjm¿Ýýlq%íjÔñ_-[¹¦÷OùlµŒ5%$¦Ò£‘óÕÓl̼ԾɮܔU#GÛ|Äž•‡‰X' C?—A] QýÒFyqje_U•³YÉõÓ™õ:‡/8—…ÿQ@²P»ž|¦Ù/`u¥ôNZòh7º®Šº)ŠþAcO»+ Ðã~ýJ~QVp§Ã¼>Œ´a¶¬Y 2ÙŠæ<A„7`F¿¹ DkHfâ÷Þ{…÷Y¯×t åV²lg6ê+0 ÙÀæ Ýàbä÷Ò‡Õïcƒ!gKNÞã’s+üÆk9m£„¿xŒˆ<œ®rªˆtíq+J¾Ø((—ÕÝÿJ>|Õ¿çÐP¯¤òz —éK¿4`&t'£»:ÂA"¥Í‰»Ö* ÐI³ÑÄÄZSù…Ýñ+pKPLÊŠÆ{¼Ñ{=y“× û!µÕËéñ´CØàn©¶˜œìæÌ]ÖÛô£ 圿ot=ºôüI+ø(î>¢—Yô ã¬'"a›¦máÞˆ¿Ñi"ˆqûÙ׿y ?JãÒ© ™î4œ‡(b`ƒ½¸¿ }Î;û¥ºÜ:ÇsÏv– F³$I©Ë)´R5pxmóDLÆ—dûå}eŒüèI×ÉD±ª¿S üÆdéCÈsì§…¢À맇§$ Z³þ8YwÖ_/Å ¥>d}ó'Ö+§þÄ&/„IµG͆ÍqÒÜ"%!ñ­c‚k~Z@õötà ª˜4_ÊKwœ+¦¢©^¸ÿ+˜HÍI)-hu–0ðƒ/GèÑ–%™ÿÔ@ ‚wo8.R¸D0ñÕÞX.ô»Å\ ˆ¦Ï×È›Ôæ..=4ï’µ#’oåG“ÜÉ×ï1™tŠà,ðgÂt/äð6ËPÀAIvà/„åG8²:d l«w¹«Ã04ˆÕðü~$ÎxíØd†Ûœçò¸¶vœ<"[qzfÌs´Xq#+óJPf‹Eü{8{F©m¾×JÐ;Ÿ%òã'Ä?ƒÝ· Ï/¸Ó⹚UYˆÏŸeåd­åÚîÙÓ…<ïqÕ²ðVuר=MÙ+,/‡W.w'µ}Éç+$ïX€jV]žáØBXÿYZ2A¼OÆØG’º(®îa."-Àq2ÚWÑÉ}UV{¶—î¿ >jb 8ö½øÖú«öAj¨ F¾×c¯QÞÜÌó¶(Kîv'LU@ZUÝh"ÔTøÄbîÕS«Ú¿˜£Fýgo@Sæ_WÊ€#ðfF9ˆJ+ï}( ã#wÞJª9I•7`1~½bBÐ_O8;þißPX ßïkž*bÎVnkãÊ–$ê ®9TÃK?6úøÆµ~RjX껋øç’äP/ÄWÆAÍBŽÑ -Q˱ÿþ`x)Ô*~ú&]¾O£Ã–:œŒy”ëìOýì)S —#f QîF4F¦np¶ÒŒq­! [t>c©û?ÃÐï8^©LGL‚t7Ä¡¶-§ê ²ÆüXõ§b]÷M,Ç¡Cµäçªæ½f[ÕE˜ ÈHXPîn‚›d‘r£³0{»/².~ЧÂĹš¬˜UþU. •¸%m 䘌«Åï3]¨›D;=³Ä u·å›ˆý½/MâŠã%ñ[ý¯\€LÉfa&;B€í>~M)—G ºd0ŒÄ¹0qC•ç#9j»Óç¸f(Y‹®*Y±Ò³è~4ïÞf «ý½=ã~ò2kpÉ36ê±ØÖŽ•ª¶Ø<ó=øüXªÒ|Ø ½&¥b²,óÓ_‘&‹öÆ z ÛEdÆh;3üæpúHVž67´¹•@tØÏg›>ó÷èœÇ?ÿ^¸–ß®eœ€ˆÍß^–2HOA#bŠ [i¸‰ ›Ü›ÉœóÐVã«DB¡† ¤üÆfò1ÝŽŸo<Ï‘"Ý#þPe–ö7(²Ôy*|-¹·ýUÆê$ò¾X zóÉãœS©…ÀÆ.,¶RÚ@B¢1t$³\úÎ%,]0ó`$£ 1щn€¼ËÜ¡Þ62¹Ã€E±k?¬h"G%€û´0Ì>4ÍÜ¡ŗä‡bpA-¦JW‘ñû-D½‡ÏÃ/ît€]gÊÄ…Æ^È¢êød2:ú92€Lʆ>S0xs']ŽK¢$#Ç?i¹{·. Q¥íeÂnDC20¢bxs ¡±ïÒ¶[•¬,¨ýðBAÅ«êÆŠ÷*Y¬I…üÃð«_ú>3$’šO˜óœ?­–ô*µQÖ½cÏÂŽ%TÖÚÊóPêÐÛ»Cø,f¬ä°ƒy>ešÈê囯KôïÂßÀ@¹–wó­,‰Híœvu=˜ªM 7]@Gڮ‡§ã™æÞèj<ù4Ž œŸsì%΀Â!B˜9„Þ\ö¥¤¨ËY+W±0uÇ(›ÒŠ,þЉá©8–±âmÿìþìŠ4ªÔNå5%ÌÔ…V™Ò”¸cZy€Õžýþ©7Ö_$K%óº|ŒA˜hâÉê}-^Bà…DE6û"òôÃk?gé>_ÀÆŽÊTë¼y¬”zxÕŸrf¿E=€4­…ü5Pƒ€]ù -¾È´¹ÝqØ?ŒËóÇ^Çt’1É1ÂkhO™D$s9dè¥z+··ÄgH÷j“Û?õ ÑrôÐîÈ#¬F'¾F©{7§~û¶X4µ[øG––,HÔêqÉà±tо õ'WÐK nŒ„ŃxµÓH¢ÞeˆìO  À‹X¸Qö±EžN@yµ‘Þ¤ ÇÆ:x)Ë¢:ûZÕЈ€Ÿ¥"nÐzã&*…hÔ†iï -ˆ –? Âã²äÎH»m ÕS&U§¼©æàü#öËBÃÛ=nÑX¦K”ú¦9©K å71Òº8¬òŸéy]lzA÷ƒðÑø6Ç)güÃØ(mçërx\ÚÊÉ"™­½ÖÛpÝÈ_ –õÆMy)V¾E<ìÑ·wúйwjmH=TßéÄ…ßIÖ³"Öÿêâ}(™vÆ ï˜àp54md{ïž®R<Á´©=`ðú¡V*u{Ø+®5*5åGf8!?h5L·^¸±hPÃß”Óã‹^Ž¢Y*‰Â!ZÓãçÑÙJè`JŸ³òdhŒ;^–๱†f´")èÀ›¦2ïY{cM6Uƒ =KYeƒâëcÖã·ƒãÝzûQLýÁvqã½Yšj˜´y!€dÝTCk)À3ß‘`HK¹*ÐÿD»3¦ˆàMïqíðMü|¨€&&US Ä´ ÷•i”>™ëì"l”üõq{·H?+cÆõXü:È,éjÖØw º…DÀoDàìæW_ddЉ.cÈÇGŸãž‡@¾S¤|_ä‘fÐÛ‰~ë–žM)%q—²†nRÓ[qÒÌ­7‰*itáüXN4h©ëgÙïj¯cETÈž¦ÕuÃï)âÚo Ÿ?©§ÈŒÑSßF¿®nPLÁ½iv¬yè³i ÓIžãò°ÿû»L¾ž¾6ß`GI¦‘w;,©T„-æ#Øf– omì¬ÝF˜õýw3¥Ã”k:ùÌM2£é-'OÈžŸtV¿I!ù™Aλ†º]?¤Ó¦ÁNI½}ã' Å·Ÿïæ`êUh·°–îÑ4¡¾ÜÇh¦Üeí׺HÄu^à Wž¢=£ÿÊ1êßdZCœ Ëþö!\‘ž ÂýÌDDc6Ä¢Ôa€%m[d¢ò˸û«F4Cß5¸¢¶B—¬ÿIê£]ßqKakþô[‰§Ð̳J¾>ÃÅr9üX5K’ª°á<)ˆ&³\:Ï ­uÆ "Ö%¨éQe¾â ¨é< ZI=Œ¼ÈcðÑäFMm?óD„k«¿Ú Žæö©5E3®ÀÿÂɵ'_\ÆJmxîÊÇŒÄçKðn–«»“ò2?4²q·•žv©r­BõJ[/P&[#¤ÏK÷ÙZÐ$bª$Ùö/s oáB`i1ÍlðŽLyûC¨ùÙg¸¥ÞØ4œ¤ŽÏÔ ’ßóÚÎÁ)IY(3™`•uÎ#*P ÑCÈžfTV%™cŠÈ­È üWþ \;»â!JïI{ò„ø‹n`›ÑbmüLÐ=†IÝ]ºš#f6CA¯úQ²°!ÌÞ°é žîê‘0Û(SBíž4ÍŸ5k67ýô]ìôm˜Ï@2|<Á°:€Òê5úKY0²áª^çÒC$ü£š¡” ]ÃA ­r%;ý­‡G,´@“6_På'Äi®oûªgæß`@ŸK¹U–dòNgA»æòÒu;)M&é_f;É}{׿äO¡˜T=£!™J²ñÆÈ·jG5]¤búåCÇPû[h„D;*ñ;6hñY£æ+oÐ;E¯œ¾'ú`ûÜ6ƒ­¶~RÅi=âtRnñÔ'¡v‰ ;Fƒç½âœŸ«žðüL¾/A]ÛÏqƒãd 9Møìµ¸²¡¿K¦<öZ2ôÌöy—~”UJˆÌ„^σFûv÷w@ TÛ]ÓÊTé ¯qÆÇã6nwLùèo&h-%-«w©±R v„n›O†À‚ÄŒgè7AiÒŽ5b9ÌÙ²aÃPE ®EÂ?ל@dâ»Ð›˜~ør™v’ë²bsÎB3zxæ…µ£9­¹àyB¯ðã½½½³œ*ÄŒ8“#š)W‘F¾Ë5òÁñC/ ΂ †è³¸æ½ãp…e‡âê{žD$Q¦‡×ðJ>–gèé‚…Ù‘’›óÅи»ìÈß=B²ô2é‡B”{c¸ICZ^UüÆjöÙó&¥¹ƒÐîçèöøÁD«²O8W@pà„†}Äx³'Óš…W¢#ñ2=æ[¨¾·Ò,blBˆõ×-ØPAŠ'éú: 1”ì˺©/Ú|ÍC^Œ %¨xèÊÇÚ”Çíc±Áü|¾%Áð‘ÂîIÕ²’§ˆùÁÔŠðÒ/–à’«áÈzßj'è!"Æ –kí¯ z«~ï» å†G¤ÊmÈŠTÃJZÕÅÄÝ£ ùýâ,m’E'|›ÌñÆX ×%Ù´gyÞ(ѺBÓ-1 íïb»!{:¥Yzïö¤/Np• -î½Nƒ\dðwÌèòKªp*/‚üÆjø¡®3l!r]â\º”¡~´GRÙ1 å†üà‰• ]çw¹]XKö㮼ÇݶÈÌV}*2eäíµË· Ò™|‘*ëGûE.5„ÔÎ}óSiÍ’ëŒÛ4ÏÚ(ÛÞû$ A¸écn6¨Ãü³”#' rõPÙn5ÚŸ¼‹ÒbŠ0:+Îèü=Û;òˆOâ !¨0`=A±Ž×d¬êU«üäScT§Ë¡g´®Õ'²å)yqB®°ÉÕ˜Pª†Q‡j|œ5<+?×v½ñ¬Ð›JzR°ÇW(VÂ__ÖÆë®ùª¾Lòê‚~’í%ƒüÆm 8'"óÊÓûž) À›é‚ ";£r?ر™¨Ö.ÕE0Ÿ>Ç‚øÈ?ßÕóÌÃ%TÀ¼lƒéª‚?X¿æ¤¨ËÞ‘ü+ŸÖÁRsŠÅlámºˆF-4ȧë¸iºi«­¡I¯§¥µl·öN"*,ùr®TGw·ú¸ÈsÞìp§è¡FàñLÙhíÎûõbÁ,y’§Æ`ímßøö:‰ÿ<æ·¤ÃëðŠN(áÞÜá~Á“ƒð"»vUO‘õ%‡#CʉۧPÒ:šêõ7yc;Óƒ¥¶ÁE_#ü =¼jVRÚÛ=´Æµ\Ÿ±6Â~RÓ‚ûk­À˜¼½1ׂüÊCµÆ¨–=rˆ_„2ΕÂBydÆûMS^%ØWìÛ¨MɃï oé˜ÒAU:ý“À lÚ=¡ûwK û~_N—”t¡ÀÁ|.·âÚ`–”›|¤`¡ªÏ¿Ä¼–\ð#õàNjuLؼž‹{®yÍÉ=÷RZ]øÚÇ#”Ùk5lùt_A[H¹Õðƒö¹îÏ Û’²õ$’›74çþ3kDÕfQ†âˆÔ½\õgP@mXœxìOówXnlÏà“-%Pú‚­1T¿ÚP²ð%I› =烦=³å؈å0o1N’Áº„oÙÑUƒ¼#Ÿ-e i·@Hv@†ÏQA.Nª« ÍxŸeýôköPª_º“Ùe|ÖªþYåñ —§ÿ¸ßvÜ.Å–LŽ‘6Û:Û’ÄÎ0ÑqŶ°Èþ`5”®sˆ:l–D‹½RÂâû  [Â^œvž§V„™©ØþÕ#d°D9½à]ƒüÆb¢¦=¹Ô’À‡E~uƒÇç¶È.³E£è ·\f•S Æ(*V Üîgˆ1Ü"^±R5ñ[¹¤¸-wþ2^Ó ºÂI56…Û|‡ WÕÌNœˆÎ³Ú­m”vxš¤ëq@I£/²{Æò+¤:º~“¬åóÜ2ý¢³•`ûÉE²£Ö_á % á[I‡2rRHf «¶´[ â¹#§½ö¦,0©aÌ.Œ3a <âA£M­iªÏ‚¦»)JÏ8E/*REpªs‰øh’™kUE+àæ¢òP–6øý g+¯¼pXCQ—=sbd=ÿ’øí›ò¿–B@2·¢s”„ƒüMзŒ9m5˜Ý"Äö¿§}?¨=˜Ò&#ÇIÞ-¹æó•]| ¤±µÞkt´§¯ ûÊr3P¸á_ï• SD§`ŽY;1 W‰ÙŒ(PÕ¿‹¡SR'ÄŸGS£`± >‰Ž>@Ýæ\š¨²<H±Ø•F f nÊÏÈnÚºv¸/sYlø|rº¯xŒº>¨(YÜþÍìwbe_¨éý|d„ý[L¥­“¿)Å(ÁœL½»:R;®Ç°82Õ¶ÔŒîР{¨”8Ñù¹×hm°Kͼ©I¹õË7Ö¦»€®&Œe]épî×<Á5èÀš½1„ÕÞY­Ýýø~‰ñzË­uÉ ®$…1ïdš>‘ÜCocmýõfÍ/qÜKˆ“ÍH"„åóÍŽõt–àô#…•|Ù8hÊ|;5ùQ}ñ}ÑâMÝ' >¾dCÓ-—ÁK‡[ï*ÂK~'È»WÆo¡Ø‘\"H·¡ª&(`í&4u5£ÞÍüL¾Væ5‚Y Ä’m2ÛššµAmH›Æµ/1 I™É5‚G…’ÇÈ|âf Ö,’:#è¹e±‡®S@¾˜”Ì;`ÉX›i—˜‘;(Rì˜6ð¦XX²–Ž3E¼³MVÏ$ëbdiiHÿÁàéi”õ¼„aý Rí›|½ðN{ï;Z½4Ã!4n2¢Š¼³DÒáOÝ’¥FlÂOõï_AÌ}x<í17ë!¾,›\yñØCàãðÈ[Lã¾pvÁ@ü¯O×­+Õ] *Ò‘ŠDܼRÎö–¡òãô”ÉÇbŒ¨?ò—‘š*L]_•@ø]¹söšüM-{WŽ b:#OЮ€Ýz 9¢5Ž;Û~‰ÖjâÛ ó% @/nrIú=1ø Øê ôžØÑ±pùþOÈMê§èŒ+­4SüÒívºó"vè A i¬BMIîÜ99ñ¤Ñ“ÏÐuuÕ.¶ÆK~rÀv’gCÉS×o¼ø&·’mÏpÓÔ;Iâ&%*:hHßà/Ý)|`Ì83roŠ3ÄdÃêŸl+7=ZÛlæÕ÷‘ú÷„ûØÍ…u¡É§HÙù¢TIÑ„3²¤cà÷x¾ÇUué+ îXN(<~+ã™ï( kOØj Ä“zSZÙK€êõCüÙÅKJÖ•ní7sÄzt6“1·E¬Ó’̨ëŽ^vXÞRL×èú¼!>{Ž[ôDjæÝ=è™3 ¤#k'…£ô~"›OÖÝâC’yaÓIè˜xÁfPý™pý"ƒÓžLõ@}€£8>Ý*µ[³Àø½u*/šÂD7lË ‡k ê^wòd™D  cüs¤´æcÀÚ$¯÷G¨ÌæÆÃ"pz•2 `SØpàÇ^cí®ÒaVÈu<ÄÑ/7šÆlwÔùX«­=¦+ÄŽ6ù…#áS .–ÿá§õÙÒûí̃ZêŽ*ˆÒ*>F ܦdõó(e?Vé2<(&‡é±ê¿£ÿE /"IµØ3i•øMBîHá‘Ñr+Éøct ð˜cŸœÜà@–¡Àóµ£@rÖ«Ôô·\0!iOE åê¸â‚{]t4Ê©_Â<à¸Úmo ¥ïÀÛvr*«Ñ6Q/)çëN¥yJ áŽhèP<…ü|¯ºÌèGy¸á®-{ŒS *fEpý?À©Í ZÃw„/Ç~Õ\)qˆeÊ)"t0Õ'™ L®º4IÚ¦'.ãÃ¹Ó›Âø¤kQ¹䟌õø…¾,”‡ð4ñ~ÈctÅ H‡‚~¯XQй? À¨)g2q.h&3ìÑâ$Ÿ%ÆGö+¨>pzÞEsð˜ÀñÁ™ë㡦uI.¬Mµ’|Ú±xê :`1ï=Ë:Ã䛉ÇEÓXÈfµ(Tw°Ó‘šé¼Qÿ'ý8FI:‹´V9Ǯ€Ãο½”Eƒ‡äÙõ¤˜5ú±k @GÝŸ,¾¢5Bd| /Éë³xaQêQg^pÖM¸xcn ˜8iQóQ_¼¡!kQJ#ðt{Có™¤è‘,¦”{Ï[\•ÀÜ©à²uã&ZÆx³$ô ˆµWÀ0i¸~&*÷ð5I¸ÀQŸYz|ÊÍtˆN?“ëÄËä"mÖUWt‰DÿÔmÄßj¨VG†ÈN^æ™$„X”ý‘ lQV Ë@…áCGLóëé2Û 5îÛ¬O?Î\›;l覱b[_0ßW¤2»­!ëlØ¥SW†pv‘Ë|w  ¯ÎºB z8ÀT+üN‚=¥Øi¯>ð)ò¯xtà9Ú„ûÞÏ Àè;Í^´ÐÒ#˜^]/m¬¸qÆ£k'K*e‚1gñɯÝ'™×·†™¢þ^yE¼R+Ú/?˜Ýõ£¿# ƒ†›êM†°²–õµ2ú¼—=Å1åÌ·û,ÇŸKÌѲ<a¼Ï¶Sý•¼6.#c@MÅÃ4o¡[ P[.ܶ:…ÏPŒÑ•…ðžQ¤hjÇnxa ä.Áˆ-èRÄ|‘>;’‹O= 6û-Àw,çV†~ŽCŒ:0ÄóCw)TÃãÈgAÈÿ2†l©Ð-r‘Øå8HùOüX6†Iòr™d @ëÏ+e•2Óó«ì]J`øÈ«îÆ"7  ÕF¿r ¤Q´ò¤1"ÐEðåéŠË•Ouòë nž† ƒ)»sš4—ÂC)@ƒÊB2$dñlî`ÔŒjˆKÀ`N3l¼˜s…ؼŠRBj,o0ñ7t ¯"Ÿ¶Ä„äĈjHgBE ¾ ·¬¤W½J¹`:CöÊ´äžqéŸØÞ5úËäÙú˜. ëkË€MlL…™êf¹9U¶c |1HÌk£ñ»øpxc×SOÉâzjE"]`âý%ˆ™®£á?ûâD&;€Äe˜üNt}ˆM"ßéE%ŒDP¨Z!ã²äarÌÝä8ï_þD-æ¶Ê­-m;µ(Í>¢âAvO}¨ý~}誴³³ÏØgXcJi7 Åo‘–«HŸí¬FkÕ¾e +%!ôà{?Kï Noîÿ\}TtU†l‚dzO„£Çu:È’ ò¯ÊEèqº~Õä¾^îÎi&²ÇÉYj`€Ba.Š^à.ÛJG”pÁ7Ûî˜ÜÌîýAílå›hKþ–6û÷`ò¤FŠ/‰Œ_ÆJÇ QŠh9{»Jß2óá4ß§äÐðhšÛþ?Ô¥cXÙYüm\©ÿ‡üMb¿ñ£1ÒàŽ–d‡òˆ|ž¾®«¦C´Kµì ÎSD¼ãgªŠñ²Ú•5Ò+„£µ”·ÈæUôv\¼V‡ÀÉZæ­ÉÖňBÌΧk:u[¼2½0‰ªÀÊNpÔÖl­>êåÚlBŠO¼ñ*¯­“>6újƒA,b—¨÷uYfol(á] fŸ\þSêXú-¨ËˆA¤8gŽgñFû¹¿ ?L¼0£¬Ò9“‹aêæŽ£ h@ÄâV üØ+½*,·ÔÇ¢_£êãá2&/3ú¥i¢×ZvdCý¶Sr­!*µO¢LüM.W ÿ±&°ùzª»VóƒÔ£ D¶/ï‹ã;!Z,šÀs°ZyZLÀ÷`ªJB"J Ÿ8 й¢t"›kžLÚSÆxÑSŒµI<Ùš{g›ü ´Ž=2Wc&[9j‚k«ÅÌU•]‹÷ @¿ÏsÈÑ ÑîÌ” ó5ÎÖ‡ jâE„õ *ެ·Ãávݳôs¨¢Õr_½Q&HSæ3”Ôߟ³9ëâ Ž0¼`Q÷“^°½ºýu€ÚM^ÔìVäI#¶Œè!{ÕôªÆðÙ1_¿Ûibm‚?¤û‚ûCüñÅsÓ›JÜÙó]Ââ‚ÔÒþoT2jô”Œ–•é䊅èÜ`˜Dþ3aß0°ªÕb9Ô2j†ç°Xo#Ëg5ØÜŠ2íÞRQ®ïØ€I7Œð5ÆaT ªâ–ýbJ4½a…óû ï@v~®ŽGûØ› ¯ïœ‡‘íªâïì0Û‚$dÉ®|^F>ñ…’Ý\{J lTÅÏü.L:ýè>Š2å‰é+(¢ìA0Œ~b‰¥3 JA e.Ù`Œ›Ñ¡IrN‚QÕVvH)þ³%­¸êä†xNygT¶–_È÷í´œ1"U›!¹ÜÆ“Êí†QÁ.H>íS,§ä9`jò|Ó`š·ý‹uNÿ d¶•ßï‡q”"Ð2¾c;x¹Ëˆ‡õS… s@ V§¢.ëOªD_=BY^XqD—^ª¶{Å{`Å*ÇMJ±hnd4>F¸ç#kZ1¡eò<§ª1t®·ƒå&' Ã.h.èñ«âbýÞ5Hú?å…8hªâ–ÛÈ3¾üMi<„™0— -e=hï, ÌÀ%v>~Ìœ‰îJ3M …˜ñP7B„vó><—Šm&.S¼O0—­äè"Ù“‰­)—ƒ7Ð4²„}Å¡ðbí³¾'z¼?7=´2<ô€u7ßÃ<à³=ë…%\ý¸{˜ÊÑÜ›¹xFô¼wâ[@ÑX×W4 Kÿ#X®®ÊCÑÄ.5Øž}­]ŸÍd3~cÒðç<;`¬'î'Óð5–±†&ÓÕèb¸1ø¦æ¾Q8ÈÆ wú¿ÖqH“-p'¦±B¨|ãW)‘”Ä")ÖÇH+üM”,oh}ZÂ'* ø<‚D­ ³®nAàIÆO`’,°ÞW•ÏvÖ¥l}ö6¹¿µ¸„Q‹}zøï¹+ëeþMýˆÆÿÚ'5³¶b'«F¡|cí¨àtG¸ ³ÙJ‘X58Ë3YAFêx’ ܪûÅΫmN’LMA*Úê»&ϼdŸn%$Óç³gOúÿ}™2®By•Ъsʠߤ"åèû˜ÝUàÚ„+k¢È\„ö4ò" ŸšŠè- Hàá¯Ep€$pâwö¹v`{)¿,Ëà{>[ܼê(©ÓÍd02žÈÙïEtë)"9XÙCê«¿Ac¦0–èe9Óõ¨ÃÐN/oí\HŠ$5Hì1?ïÁñµ]_ÑâdDëîB»ŒbOggS<¨äS©O‹=øÿìÿÐ×àâòëñÿÏÿÙÛÜãÞÿMÿÔíåÞÝßÞÚÙäëëÿÑÜÛïûýûÿ€âéûÿøúÿÊÿÖÚÒüLÜ2ðnFhé:/Š'©ç9íY Us!ªÈJǽ®‹ñ‰¦Íe:˜ýmk•±î²—mÕ a\NóWNöà‹rx¦Ð³qøq¶/üM½dzm=òše‘‹]§ú¤-:‡µcÖœ/#&YXyt¼l¾¨y[Š»ãò€`òÂØEâŽ(N. ´ ÕúY¼¹/e)…¨Š.õã—Õd™@ò[_Óä ÀC3‰A¨9œd£C2r+}Ê]Ñ*“ʧè=m@ûS@@mrŸŽ™Töc›É/¾ê&¬`ø …œW5ì-übVr0€Ø‹Wí/¦u:ÔWà³¢äé7ÇElˆüÆk–Q8Ý:ÄhíCY,p§iÁú9@c„ú™Î5± íXŠŒÊ.ÜÚ½`Ç]n&.ù\#6ÂÈG(Vè–YÁÌ~¾*º.Òh/–‡d‚Á“.Rõµ0mð•¼ããIe–!}Q×À–4Š©}:¤ÜBàlcucÕé'­|8d=‰(À×·oZð…/®Ë|ÿÖÆî½­i×f2 ÈDy`F!rf*ãˆ6ƒ{²éÆ/Ì‹ŒNI—žÜcQìʼnçéÖ¼ŸU:WU{» š‹{*¦"{«®ÊéýÞÆ]´¨¥&YÉÈCkéÜP<û›K£í ”ryì,„ü5UqvàÉy¾$ ̦q†î¿¯ÜLX ì¬fJÕ>– £ï`°ÝÒ£Ÿ&aœUm“o¸;U ÖkStÈ47Îð¡\7•Y[mt6®wÉÅÒA*g0 e-znK0ýÖSšž--}Á^¬µ«ô {Ï@NR%=—BÅç/7ÛèU6ÛV*Ë»tö)9x#s)a+ÍÓ¨Áƒë Ys÷3>›q£f“Ïý•] NV(Q:üj‹ÁåI ¯k™{1ÔŒC½G'û*ݪ»ccÎ!Ã%n¤FôQã‰ÀñüG‡u@jgŒ^„ü|š}V9Ì:}+ §×‡Oš—aPã’Kí­"¤0ZÑÃô^Šc Oü¦½ä‰‡ŽnjôÞ@ ÅèüTf¼ùä@ÄÑ\Òõ4^{3t—š ^¤SÝœøÉJ_L+F¶ü|@‚AýÐèÈ Ü‘èDA`ÄÆ)ÔhXé ¾ÒYç LŽÞ£ùfq:bU¯ƒXþ*-v–@ž0–V~wAe±;~˜á,xÜ:ù#u\”ཤ}ÍxGvZ+•{Ûeu‰Þ@Ø% žäâ„~-NÈ”9Ôû¿þ=žÁíŽ žÌ'˜#oh×î–c3“¥f"%§6›;£Æ>Žø¹#?DŒz¸Œƒ“ÖÞ–° —l’¬ßøÏ1„\£<Ÿ$Ûæ»· ª-烋§y"“çM¦Žõè}!f·™ªaD)½ªC;YϧB~bê×Ä ô0.Rõc0ügôÕ˜Õðq5S«Òex —Y,yÓÓ¾ê29î`‰cÆçÿØìƒÕGX„ª¯]”`\ØxÛÆŸé 0`×ÔŸšˆmXJKc"-sµtÀÛÎW£tK>"¥Ý”qá„j8ŸüL»Iå¿xðX-ÒÕÉ£­žÅód‰98㩤ãM¿&“Cù#rÓJ'ª!§Î°¤ÌbÏTj÷/-vA„Òöö-jE~Jš.÷w¬<úhÆáaT'µ|ø¨dÕ©<€1ÔŒ;ãâtä¸oÅ¢<=òvAŽj Â~ “l)Îà¥ÕÞcÑ›¹[ôËWfxÖr qZü¢Á'žC#*IâÄLüL¾'ý毱£»å_†À¼´'é©t¦ƒ˜£[Ç–ÓU^MoÆ(+“k_²´%Oì {Œ`½çNÉø1+ض[.Zèž.‹È#?ÙgGõ&i MÐ!Ñl3}|Ex@ô>fÜO¬ˆg˜¦±>¨_ÎWâ-"ðçul@SÌGZKÓd?'Ñ–Wh´‘·?Óćcèz‘ÄÅÌI|ÄNþj¶=ñ‡<-w{»y[-c ¯àêHÿ™Þ®|xY†‘ä¬yž—]Ë2ÌMî6¶IÓü ü6QZgMi•^dçß.w™aKJ¡u}`f è×JÉ‹xiGÍìÕ™¹"‡³²`¤1äÀÎÀr”‹ŸáÐì# ¬³›¿?h•g³ì¾¬IW’Çr®Ðý¨w7îU-UF/Å:S‹AÈ•ÔCɘ¬|U&šc{šê¤Žp?â©eáûkb0š”ŸÉ‘€jwƒx¿Ã-œ”L‡¯^<°‹@‡uàÑ´[7Õ©Éܹ½þè¦ÞqËÓ¿õ/LJ‰P¼æ8§¸ïMiâêJk5liƒe¬¶‡0õÒ¦”õ`CÝüÛtåp»3?]-kŒ3Wë6¡ò”ÿj&¹;Pç{-¥ãJœå†»ß¾¡V142ú½¬w†ÌAã7Ÿf?±û¼†Ü°†A_æðDPî-ŽÿÒ m…°ˆõç Ç­IÐD9¬½ßd•¶ (-J±¾45Þ[ü²ƒtû±fÚÄëËæµ¾´UÖ ¦N3{L&ZîVîYâ?؃¿vÜ›½\Ä}‹îf©êe=šz¶¼†?tÁÿ7 TK–\$²™QÛXã,œå°RáÁ-Gjû^©Å;†ÊãÌEõtü)õ{["’ŠO´’·g[#JDäsÁuR‚üL°M-(¢Æ_rÇïl~ë¶)—÷ÆIkæßa>®«”aÕdX>|kÖÑ}Ö’77ùh"·H•i S‚;ì/ï(ü×à°EתÙr]2'ÕKÄóÊO‚‹30Õ‰aVš½mF~¼´náºcT§Ú"ý‘[L—†ãžÛ{ð’ÄÉg›æk¬Ão_ÑÛX÷Õ¶5¼œ°6]ãÈT5ÞC”Dùo½2+ÑdÞa¶íð¯ÿ¬s½y&Ç›Níót¨bdh|Àn$ÙA ;”Þˆaë¦QJC¡7gJ¿íᅳÂ%±Ð‘O‚{“züL¾\¸„Ùô6'±5–Ü€á$‚ÓQ™ÜPãœr´¬¶ßL_"¡;`¶ì±KÀ0v{™–íU™±Ÿ= x’ZDüк´²R-'úm4°¥|ÂO´%”‚{ 7@¨¬Ì%6ªfØ‚íù½•Ö±/#îB:u`ŠVaˆÜ»M²5Û>+¯È9“[ÇLÌž~nê¹,È$£Ã¹®&a&Ê ¿Yû 5œ-ȶDýaÕ“[¥Ÿ HHœÜ3èJCèòà*þOÆÁµ5.xoàªâÌî  è<iaîrhIoàËí*Añ[¥ZˆÿôË/“÷ü®Ûœ¥(-ð¦;DyQN°åþ“g O£¹Õl!O€<…ÿ¢uÝÄxpVÐ;î4¢ÀD5¡G_ïêl÷d¦)VþÆÕ_û¦oÚ 1º°žßºLáö²žSF@¿RéÈüåÑVÕŽ{ˆöŽN;Ô¼%We𬖥¿·„†¸!Ö}ÓÚJg2_È„·Ï`*ªäwÞèwˆ©SP¨&ëK'å´)4|ù…‚Zá(@)º^ì“ÔPŸŠ¡¬Bº§‰…ž=JN¾¸z…D–;(••`õΉ,Êc‚Èùȱñ?¿?ËO áx°#o*ÂÖ1ðb\ÃWØ?,–_wÀÔÈ÷¾NìL|„O.*Kù@\F(p½±D½‚¼ó ËjGa‹•ïàËá@Æ«Éú^˜PJ÷\>Û2'òdÆÓlLÐj%ž$#ôX:¹/¹Wùåà €oˆ'H·¤·×”jÙQãV+öáÏiƒ·¾½lÔÁÀËªåæ¢çTø®IŒÝšAbÖæðíìÈBkj.j¾¾ˆž¶²+$Êí t,Ѧ“ÃÈlùQçS®œïü¤ùƒ CXýÐÿD8clì;éIüN`®$wMg¬28+„«4l˜` CÃ.`V0¯îëþÊç´‡ß @L¥$µÊœRl“Âw2‹r†öä':Ú"¶W‹‡SÚ˜+D‡fåL-ö=Ý­?Åõt»wâ[jðŠ¦¦™#ö¹ ÑÙ;xæÚ„­|­kûB½`çõ  ÙÙugº–{€¸ >Àðº0]掤ONÆÅpW›;Qî v®î÷Œó1ý.&*þ`þ å8É·fAôy_Ü¡R#Þ­É>7½gó»›fÞ©7¢ÑßLèpÃMuéLPŒh%,ãîu^ÿ´÷ó¦>òÕ—ÿñY6Ç:ÈP±"9Œ ¡‘öjXÞ#T“?l;j6IüM|›!l¤È[R†O[üðM|ä RÕ8ƒ›<ÄùúMÊuŽ(‡×˜MIŠÉÀ0Ÿ5Í)˜nøH¤Þ]Çñª`_ÁYµÔxŒCÔµC $¢Ói v„;å™4íBKÃcÄ]p4šµjåÿˆ¿7–¿íÎi´ìM(4×Qº -õbDc\@"ø_`ʈƒØ·_Ș¬y.ûËñË®TGm’U˜Ã0wo÷û[BfzT­ Ùo8g1\ùem Ø7_¾ eY·o(i#´LG„Ê«%m#Àü6|]Æ ®Þ ±vG’wü½¢¢§­œN\ úÇMÔkÞu-VòGÎû…pBcZ{qÇþ&ïÍ8Ó!ÙL"dÍ»±¾²KÙEž¨S‹B¿ãÀ°ùõ=|Eÿ÷Ѵȼ$)3ø´¬ÚΫ“µK:qô ú·–G¸U¶ör]`Ë0VZÙ&æ¦ÝN9~€ÅVþ@"¢:l×ðýĶÉ4ôj!bÖíוÚ3*%ÿw žB4(špÛìÔ8õ’-|—™çh]ö¹¬™¦ÉÖ2UO¤ÿŠE±&7CPþ¦üܧ™êÄbž/¶1ŸæEQrBeõó?•riB}ûJd.‘àf¯ 9Œ*¸†µ¬³¿%€ýŠùX£%¼4¼2Âlu'ý/ÌïSteo[·24Âõ5(ù.¥¼ô¥ýREõ‰‰4)Ãa_á&]8ôG’Àow¥þ øvo½Bçµÿ¦U-ÇAA~>ĵYU§F…Ç’3r—FÏPÝß~!š¾:¦’ ³}ËÚ]4Á-×ûù¦sŽ>z€Û–sw|jÅF<é2ln¬P¥\ÈâÁ¶»©±4¬òO*$§ðA—ü1¥hÛ/DpÏè.¢þÖÝ3!‘ ÄÄg2ͽµR"ä§³dï±×Ĥ2UîEÜræGúü©µZHý[~€e=><Ç TæºøåCõü‹“QÚBòÔܶÓá¡goµ_ª%ÚyéD¾laêu*…7<4bÛ똪VÜÚÓœ¿ëòꟛnîû®Ù¡«yøå­‹ÿ ̵ïz¼œQé™§ü"Jšqþ’1“ÞÝm—»2,!³õKÒVq$žPˆ+¡z4ƒF/SV¦Ä0æAôa'Í86Øp Ç ktÖÝVPwô÷ 9ëüMbó´If˜Ø=œòv0»ŽÃDZtÕéò‘yzlhzCP8Uƒ¾¡Ëág´‡)å  ú]2íJ¿kÅ\G†C¦íù=2at^ð܉CÅUÒQf6±³!'üáÒUExŒ*~Bè¦ë] g|0"ÙÝ8•&Fó|DqOÜO½Ò¢ dàʘg¸½ep©à`¶æÒá|?6×ëÅïÏÈsZ€‰áJßu_ŠcÐÑÃÖíf;bœW?ã¹hÐj7ÉQ¶¹½ÍÌóºßqÔ¹-’çQ‘Ãzá*Ì´¬ü|ª.YÌ‚P<K nY~ö‹Œ|dÍagoÜ~]æÚΤ5:`ò’Åe×á+¿<æœØ\~ÿ§‘¬ŸƒÚEó¯â Å›_‰älEÑ‹8Ćü:zñË¥+“m‰ItíxÔ2Í,‰ØÑaН3þ«j©±¾€+E—`ïÞ…4QN§ÈøÉ¬ŒÖk Òb äóå½€çÁ¢Oß—?š£d\ALç \Ü£Ü{Y˜å§û±ðâ¸ÀálŸm”â£y°E`V'¤\€ák®SëŸ@ ø¶)Ó¼˜"ŒÃAãnV¿õtC‹#ÿ9fæÒŸ_0þ´bˆN"sÛ¦6þ_Y]É/[Ý”aËä*‡.WŒa}Û3T_.½réÖ„é—ØWEƒ‰ÏÞž¤5ä+e?V,$ÚCë@Ýtÿ3†·^þú*<ÊüL¾VÒÎ1§¨#•|vH÷cq4Ù éØƒÍºûÁoz§^©k«Ç™nP^–c–Ê™N$¹´(L87®'nË=|d:ëɼ˹cÅ<ÜÁuBßNKÑÇâòúI³T²léSWGÉé“5ò`Úw8‚˜–œHÖØ¿G—Øù=wE¸Ò5ØŠA\ì°IoPÄ^ïf5.Y¼ù É:–Ε,4|±Å«†s„ÿWöV·9.T×zö‹'슷ªÄ,µýâA uç:™dgøY[¸h5 h1GÔáh'^ jž]Ëæ0Æä-áÏ ˆð\¯½¿F¿ÞqÚÌî«ke/üL³´ošÚïëêªí0UÕ¬haÿxXs/K%©°ý„Ü’½F¬Lõ³˜yãùk1$Þ[~~V<e*œ/D5ƒé¾T;FF¸¿^ bÊü±€û…8ù ñŒˆ„IQަ§Ð¿fu’dÕþ©ö™ ¾=·C"}陎dÊ ÜTSìY‘Uÿ[+} ÔÙ„6;\ЭO,b$%ǽ&¤$åŒ)•Ohö #Ðr¼U&‰ÙÕó˜õ¡éj•Ù ¨º"í’÷Ð/2Y‰Mf¾üñ®ñRÀ9 Ó4=ü ¼ÎöŠ•¿å〇­k$X s?¯ŠZäÉ ¾z¼\p¹µ˜ß,|U¸Áû!a¦ÝSþÚÜ-ÙdÌ•ÍP7’¾Ø>&·‰šíéf0ÏhCC|_om‡T{ú?‡û™+«½0‰1ð‡·v4` ö–µË Ý\–BY†E ¸/ŒžüLºÿâ}Š‘¿…ï]ZGÑÌ´+ÐÈÓ)Ü„÷QÄPÜìDqûXH¨Ä þhÜ"V8^s[ÑÂvH'D”õß­·ï ós6”BÆTÐîÙEQ›;qOkæ¦ßÏÆŠð@[âJ â(¼T"Þè’🢡ÏÏg©¥M@GÙlÿ‘7.¦%@³Gün·—_üÚúõ•  —]É&ùõ€­ps‡þóE½iÒ/pp?{" -ÇiÅóƒÜq¼ðÖòÐ?é{áçdƒ¨ *ÑŸãqÂJ©¥5r߉ ]ŽüL˺١©–¡ËBŠEïÓÜ/Ñݦš$“_ö£D虚U¶! â‹ßÅV&üvûrã0´±§ófòZ?5aå¶|úʯyËQ#:ƒçÍHÖr¦/ n\Õ ê¯<}+¼Ýƒé#l·]=Rߎ`Py È8öZ¬`R;;'[„ÿèþž^–ÿ“1g©ð¤4îxµïÛ‰ïŽ<Û?à¸H´p¾¸’û:r™=©õ´ò@üM}™!*h“´ bî6çh¨yBìUt¹ýôt×Å y"ÀØ”Žøá,(Й3m3÷‹çÔ)j9†»É¬¯¡=oœ‰EKOgx˜ê¾— #†ªà”fBT,Þ þ#OÌÉ,[-xRÔþpWö]¾wDJC}QIýžD—Ì”Ö"µØ›¹ë¾| wód;J“%%«*ó.¶‘¹[ωüÑ}»Ó’Ùfâsâ@ÄÃxT52…ï}ΜwàrÕ2íQ X¶¼`9«Éï}hj'j¶Ð¼ç+y¨AR½}õ¯³'üIÞ ¢”E,Úct`HºÎF‰Øäz-OiÄà0uüöˆ»?Éß‚žº–ÃlJ¬žR×6xøéxû—y`V(MÙЅ퉩ïàM&/~gGÐÅž3\çÚ‹lJ§ì,ì$ pm¦ûÕ±úËÛ÷ý,¶+×;yíVù—®uÕ…›y¾Ë¯›zùÀ]B>"ìŇZewm™’øyl rFP]¾'²ØÝ¼éAІ±«žv*\),4FÓªÑhîÏh‰?žÑ ¢Ì—m]ÉðüÆ5Ù½ sŒ&¸6 QRòã\Ð|¶Ý:‡PÅuº¹ØûÞfi¯'•NŽŠeÕÂ+y¢Äà+ùk,±/4D]MÜ«áÖ³@185à«i»#GQXŸ>b‡ –ágÕf"©¯çÈfÔB8V¢áfK´mN‡¯iO¶vü+À0Û5àÖBÑ|ãQ¨ë´cêØôx´löJæÍMí-M$¨ªŸÊÛfÈvgĘRö6…r«M{¾ ¡`Xn£§!ôÍÚ¦\ èàýó#UÙíüL¨Ñ[¿ºÎ¯ù•Ÿ9 ‘ÚeJ;Ÿ>ÿU¨Ó‹‰šO0‘ÅF}ÅÙÝŠ®‰[1Ÿs%;‘ýÓ² |2=c“iÝŽÏœrjqMÂ@þál¯r¾CœKcþ3ðñJ¨E–\Y¸ ÈdÀ^)J¦,ÅÀ€ÊÓ¦”c3·;x/™‰ÚWæ¾Ræ óÜ=@zcbܨ³dpàÝéT?UÛL$4«¢E©³“%´]æ‰ÿŠìvê]þ†¹P†{|r(waMÒøçNrî»Âë ®/q”~Nèx;§…[!>ÆU Uº‘÷ê¿âJÏÙ´Ö€†Æäc ªÓŸ%fÁÚr?7ê¯=ƒ=¸ ~ˆNy£’v]$¹G’ç•üLïKhá,7”JJ~´²ÔÌŸKê¿æ¤;JÊ4 ?èmCq÷\ÚPÆR‘kª0°7yÚW,o&C¯ñÂ,30T¹F¹=àÉx Ú?XD]‘¼Oý; +z0ÇÙ CncSµqËÍ‘yëKÆ¡ïçúþz‚mJιœ„R£G°6o™¢“‰°çÎÙì úMãОB#´>- H{ŠQ–4¾‰á€€còµnc¬]—&5fçùs¤ö~É{žŽ.JÞ#dâ—ƒT&ôÑ<Çù’Ë·#ÀA ºÂ-AÂ5\UZü|®@ü‰°2œ© ýË@ÌŽ,€êÍQ¥¶&À[*¬}ßË1ÆáchDòmÏÒµjûtX9V—cWú}2ÓÀnu„hK :è–›uàÿIx¼\¸„}Br|šÄJH >yûǼýÏ l¿-Þ²xv$`Xѵۄ+XÖŒŽó’þJ¨¢Dó m¹aLýoÞ¯õ5úðMªT{Šë¡zpä¥kÿô žÛ÷ùâ‰î-0œ?vFHAãÍ|ÅãA a‡º˜ž­9–ãªsÇŒ¥¸ýôs \e]Q³µ¾™ö íÁªMù¤PSuEVú¿]å:|lT¥*FBsß7¸î¤›½t(rÅ9·cƒø±½1†Ô«µn€fk«¨P³èŽÒÞ¡€ýt rˆí<±\ä! ü1¬S,¼Ìëø?ñ2.ÚÔ3ŠU-ùÂTqž=VX{ä!l?™Ö!ƒ÷ ~PHDú"šKø. ©læ5f¬Â´ŒEG•4Ý2!o`íø‚”¹k´*Åî'¢)8¸®`°¦g¨àâ+Ò]W€!ôÑ¿*l¡Ò'÷‹u¢—䜥| «r½HÚš¶{{TÍ]©eû¤èY½àK×PvÚ#=Gу ²ýݽÔA£ÄꬃРö?£l¤1s{8g‘‰FàÝ µô¾¦*zJ¸ö˜Y1+Aÿtg”±“êÔ—´I¢“EÖbI–+A[ª;¯‹Åñ½H"?ò˜ðØO.»– ž×ÃþØcÏ606ŠÚh x¿…äüîQ–Ä_ݺˆÐ;>õYþê4ïŽ@!‘®%¹ð¶,‚CûNæYÈnv.`0àjfÒIàË×aæñõ(ïŒÞÕ¦eÄ-}“3ýý£Ü¡…«XަQ<£S´Æ›6C‘<нl5Õhm¥ð±ņÓBØ}Yúé°ÿ‚Y¶âFã\IŒZnâin\P#“Gꤿûa:•ÿ h£¨¸ºÙÒœEÐFq¤‡Õ½Ad´ªÜ÷«¦-óÂ6 ºt²·q¢G§·?mØ/×f€Ä"í¤Ÿ/ƒ¬PÉPêÿ5"ŽÍÞ„¬l­wH®Ü¹£m³=µ_ÑÏjÅåd,yý-±LFVüI`ì? û îj»ßתK>÷†t b¨+Ê.ÍÍUàˆI7`+³VÏŠ„p¢VÖI‰4úìîY˜éY>ô†€¡zòݽ[WÉ3«êYÇ>V ¯üuÚ†Úê†9“7oN§ÑøÆQP¯áX Ú/îS´ˆÞsEàõüÓÑÛ– ¦H.›®3“+ ¸EŸ2¯BùM›2Ý”ü÷Ur™Àª˜£]WåÕž¹ÆÔ@^õUßÐLÛY©¢jâ`­~ý¶§Â¼¬¤%3þÛ.íhöü~2þSØV¸¤Ž@Ã5Àk¥ÓN(ñÀE9²S9¢ÐÈ{ßÿ.üIèÉg:ýÙß5CÄ5Z?úñöˆÅ9ëÜoUC™µ]£u++ë«z3¡³Vµ„»Wδ$¦åÜèóðHË”˜e}ÈÍO|d3Ùè»ÌP”|="–óÓ¤‹cÅԠÑG,ü5iICÕùbÑpÌúΫXþ{ié› °5 k¡uÜb8{ê~ðg3sëþ˜ÅûÅ$~9õõüq<¤\õš,®ŽkûÌüÊÓÉ,ÈR–ÓÁ¬š!àì·h#÷öµI¯h@Ò?"ð(Ý:°ùu­ÑØéûþvígñ˜ACÁ‚fß¶µ‡íÙäÝš»¨Z¡³pöžªã`@™¯MUäuü|š½.éÙƒ>HŒØgIã* ¿ÃíKöu­ gCîß/½°“qñ€ƒxž-Ãù΢l0–`Ú=ɯLݾ¦7—n‹ýtöv[Þ³)ð5ÖÁ*ìÉ>xð‡@-æ.†EÔ¤)Žá£õÙß;9¼?ÙPT–¯¥š‹â3zv_v×û›ÒÔA&sè_ÖošvŠínf5êaÛDêi«]¬'Úœø3.B J½‰¥HgÄ Ð(*ZæN³ë+µù5²€ìô(òšÝÍ)äãi£i¦•r^S„sï<¬ø@F$Z›óEóΉœ 7#A’Ÿ›i&›Â+H†ÿÛlù„_± Þ©.â -N½-kâ2l€ø’9ÊDk¼åVqõ¿ÿÀ_ŽVð hÞq„Õ56]ÊÐYc2åPVú黼âïÃç ú”ÏšÚÌÝ©Q`í^fš=ÉàL „`ˆ¢cl3ÚŽüôP o¹ºh|"Í«& [£÷•6üJ†[ß3íLL—ã1 +N ûÜd;…K4©à$:^鵨,ênꦹÍF¾—V>›Å–xZcÅ?‹F=á4L$©1…Ë|†5Øf4ÙEMmãvB}„Ópr8¶@"¶XÒêŽ-½±ÛˆÛ˜Õnö€Ê·lù‡Ê‰¥Ê‡a¾õá· i=wu ¶´µ3‹`xè«T–ˆÙ Äþ.m˜vMy™ª¿jÒ±æê›|¶º˜iU.e†n‰ÚiµiÐ…ï|˾l´[@¦@xQúR¼ù•büKVÖ®nÖÃÐÔHtcæëaf&{˜“”Aº½N¨»úšv†oõVÍê–à¦ü¿íþMʺ‹üu„!îMu#juC‚àOš”TÞ©E˜Šíh!¸}P»eæ¼'‰¾ÆÆ©¡wO³Ýƒ>1Ö2»Ÿ×K¾âîÔÛÍJ'þ‰¢Ü/Ÿ€Ln‰cÂoAOÈ ‹…Rk50TCzmðm›Ö”7nSæÔngi–^Þ ¸'êH…k~4ÇlŽà3‰y0¢*Äjhù¥@s†i#,Òm™(óÌxì°ûã³RêëLmÔÅ쾺•átÒüItzûÁ{žbx´ä A€ðw >ŸåC\LÈF™k¥>Š«´l_<ñ¶Á®`©¢.“Úoùè¨5È.tì:ËBïÅ„‘!ÊIº¸o‹p^KZLAÞ'm‚Îìrn´`&MCÑ݇¹šãµ €{NSg—ye‘×é÷þö§ª±ÀâÖ0JGlll6˜4Iãáâu´föo´*»lyŽÊœ»!©@}啟©Zöõ´Ú ìôðq(ûÌÙ©«emw†_J šQæ‘S0Š Àúëê†pÎä Ò¶èHž÷Ði™M‹=r'!«_ DÝî¯7›¤/©—ù+y!xüJU§3#s¼M–šY¨h3ûOÍPhÈjòß–ml JÑQ¦Z€‡íý¸„²¹ú1Óºõƒ”§Dõ”¾…æñH«ÂN„YyƳzª þöÆ¡(8`»Tr´ë¿¸Ò1²{ò©ÃC D`6°¤rŸCA/é¢4“PÛÈŸÉÌ&Ýz`¤“jŒ›ì?˜øS‹q;Ü»„Ö¼²ç2ö›MäÝ®ÚK›GM¯: î|ÛOk OTLûê¬ñÚeÌ­8]$ê\˜ä¹çéíŽôI°X¬½›L%ò¼L˜qþ1É@ªµâ¯*ø!LL¾ìÕ(ý ôÒÉFBº¨L/|òüðÚ°9¯òYåš<1ß»|;p=ô¸¬¿;‚‚ÇSÁ™ºóõg»5á žMÔRþúRµlF†z’\î,´ÝDˆ¢4£Á±÷ÿÙ ÓGLTe¨Ém•ò{QŒ‘éU‚ 9–ôi¸Œ’Lªòq —[‘¨NV2OkžñU4eIªÃ âl|ú¬®Ñæµ§Ÿ#p©Ê‹;mN6»Eo,²a°º]läÖÛ4jIdííHö,«¹¶YÜÜ~|´¦†j´2‚s‡ÿ¯ß¼:;5í2Ó.£ùÚ£€+Ö]x‡‚*^t9mŽÇ’ÔǤ:C¯‘Šüܣªl­ûÚà"z´9 Ov…4[þ›·m´,lzrµ ïáh¢ˆîR;œ¢aW|lŠ5ÞvKɽVCbÇ6UWkz[³?ûÕ+ñöx†B½7©Ø …xÊ gøâhtfò|'ˆAÆ_eUDT@RuCdü£³uÝ$+ޤ»<ɹc¨v ¡Ót*LPP©Åj¶‚Eô Ì5Ž(£”NT8©£Sè”ÿäÇÙ\RÔ<@'6cóÁ>o²?Ã÷÷½9°ÄçÁ2hüMb\‹1z:÷#(À¢dóqÊU4LkÏaDɼãæ«JVïg™‡N¿4þ7GtM¹!p2TÖ=M^¦G%Ãí)טu»¦ÔMÏû*ñ%›G@ Õ•Ò8_ŸÚ1soÍ]˜&N7¸}祈¨”ŽGWèab©Ê2¾¸iî±jÆ%à‘’¶6%z’ÖÌ¥zs’˜‘*Ѻ¡^ìæ.èšÃÒÔ=Y“vP|2sûÿªâwPÐ~¾©  ÄðdÙ;A‹Í]‹2É/“ëZ\±ö ·ÅÃ]mòÚfÛžpt:¹öƒ4Ų„ÑæLM^S¶šB»¢Oée/R¤dv\­£wåÛÂO()Æ!ƒ)ŸáVŸfí%%¸ÙÓð¿Ï'‰á©¼(ß÷ŽÅ)¢­~þŠ¢ÉüMÀ"#S¶ü¶—b½\,ˆkÐÔ3v‹®"‘˜­'?={Yçºëè@£-æÊ=^ˆµJÀÇÐgžbP¦KB—fïâb&n†iH°€OõÙ%ÂDì åG¢A²$f\’oÀÝŠwp2P(†{?|Z=`¼°ÏÁgW¿@AÚ-ÓV÷fþüÕH™¯§³#ø'0Ë!tI!ªlЉµs ßb²a}a…ÇÒØ+‹ùp¡ÎÐʯh ÛÏ‘¾»9îáXG÷…ÝuŒi=ÓKJ–¹k ñfÁüKœÖš”Ò?dÑšWiOOg²”8Ȩìò¢¢]PkìÊjY‰`cW£ðT‘[&ØDF%»˜Ùÿª£4ô&f4ÔÓÄŸ²5Æ,hšÜ—Ê4"ÌÑi¦d’Yi, ËŸyÓ…|B¿ñ(½’bGbÊ:¯{ªW«½ËCbgýyÆ;±Ÿ(ÿÛ{(B4ã„ô~tl^-Ú³æ+'tø‰0Ùìk²ýìå’TÎo”ÁX¦þÄDÅD1„¦…t›a¤˜¨‹“ßR¸ÜÜͶÚH½«µ,ƒîñ*,ü5']eïGZý1¨^õF´7©(3]nTd º(–V *#ÓzÞa9£ pvˆÂ}'íBdŒùQϲIØ|ñU¼Šæv°«Šã:ttsl–e¼`tЦÏj¿g¨eqÂbº3ÕËá´Îb›µñò+tˆÚÀd Ç/ÁË,'ÊÌHÁÁ«=ä&»^Æ£ö_žÂïT§~ø P "á\ÆV×t̹ðÈ\\c˜5µS7×,ñÕãý“Xg‰«ÇhÓBÀ æ³—¸ææMÛüJ wX=4ò ‹²1Hd ‡Q«£—só¦>i ©S»wuãr1:Ìÿð(Hþø„©b´lÌ¦ÜøæÃ_EÆ*ù MÀއÒÕÈ Ô¾˜Le JK…Z¬SÎ[ž?íd§8nŠÜK+`©`kUøìÊŸŠaQAgÆt„ËsaŒQ?ÌVç¿R3/òÈ%0ߦ‹Ëà|o'Ÿ®'®NŸÐ$N*…𴔦 PÓ¬ßlÞU‚ÏÆ¬9Ký=q%ÎIå‰ì!7£dQâ%婸‰öÃ7¶¢ÿòš9‹É&Éü5)XŸàNõ›_‡ÿãì{ùðû‰y#¦OËY¿að°'x(‘}>™Â>Ñ3Xr‘âñXWq§¾qbzªb®G3ênà}D® Û­·C¤l9ÚëÞC¯•eä;ÂT¸júm iv;„PL¿Ž*(M–#j„¨ªê®Ð1E‰ Ì'(>Š88”ÿ®Ä½Ö‰Â e¸ ,ÿ÷X:>à'în–C\lÖæD'UªE6dr\~gÜøÌ›ó‡U9S7É‹Š2ÔIÏV#hki¿ÝAJrÍ)4¬rÍø ¤ž®ޝO{ìj6C¡ËÕ#ËÌüÙÄ5Kp)y +ßø™ ƒ2X3jäæŸè-â§Xz`ˆ€~› Ü~ ”–¾µ×@‡ß)Ùñÿ~îfðõÛC^Éjö'•CÀâaZš:[ˆyWðŒ©—ë¸ 2—ò+ËÿØF "$µÿ 9ÛQp€1ÚE£)ν°ÐN=¯’„{F4E×ozØÅÜçžØ²Ç$7žÎÏýH:±Å&&3 §a†…dµª(Å[€Ò?4̺¾iâ,J&6‘=Ú~ äôO¾À´j6ÒN<‰m=±îÑM¤‘¸~Ñ@ø[YÛy KüÖ`,#7“2•çR0«6Ç}ì1çS¨:å$·Ü1ER¨ ;sħìUÓŽ!<õäi`·ºÞ1jtL1 „lOB™w´Gƒný'¥ 6ÞÄM;—5Ü*ÚïûkÞÈÚ]àrÄ…Båô~çN7û¾öVÚ-t¡Zçà}õÍ7k#‹ ":_ù¤iÉC©­9¤©îµNTÚ\£|p§ÚTf,Ù¡xrÄ»a˜j‹:‰·Á4æö4{ø€Òíñíy ·÷mmæýJ‰rW\^\{ i´»™ÏZÞ’ûS—A§ Â!pQ!A–%´ðúHü{9áÍ86!J `¶ÅŒ¨«ü}t¤Ðõgö.ì y××¢€:Ðé$ 3ÇЫ‡ˆqþÔ¤ŒŒn+žî÷ ü[ ñ´oƹ´zµÐb)ž:ôþà{~Þô%ÝÛ”bÛíï‰äxÔZtž‰õ¶ÁÈ©ˆþæ×è²Z>!Zï.} +f–üEô¿|¦¡ÌŒÝLAþlÇA²Ãèß‘£¯–Ÿ•Ù~fî¾–>‚ÓôÖÉÆL|ˆìð¡Óg?|Þ8 ò”›Øn‡‘kâ¹|líO"m6Já[?üçÁ¾žñ'°ö#hK´¾¤# á÷‚gÃW·‡•Õ…ft›RFŠì6«ë{tK§€Þ={ý” ¶(3§‚(ÊA•†NFˆÙÄÈy>‰‚ø÷üâðæÆÔØŠ¯j¾ú›+¦ÿz9W>ùZ¸†Ù¯²´'•鈚ν!$däùmû2𸠲7Ü”¿Ða³1ÂUq§ àtH<ÏDwR>§_&5¬MØYÚÀC‡ Cšù}å»â£5cFÁVü /†ʼG[M6îcyÓŒüœpÀ43Pcd)Iù0> ôæºk¶§è¤Ž‹~÷C®¦sÎüWóó„‰Èè´L¾%T`¿?Ö«DŒ@<ïȯxrÛ£NHÉ(ÌÔu„IlŒ†H%”Äײm !ÚBšÍkÚBU4møN”³IÌ·[G<³ÿäV_[™ á˜)ØÊpÀ¾ ZÀJÏ4?5boÄN´ð·è LY>t­½ºe™æ®]ªJÝßß2ˆjÄõYl!°û\Q:<ŽUÛÓ$Itv¬Ý\ip6c9§g±À# øž–«áƒ\¿×C„{4Ì@È|a¥“Å}ûÐnçzŒ$„3„ï—Þà­ÎüFié Xö7ŠU^(C=zÐÖÑÏ{õ)Ãúf)Ç^}(göÁ&ˆwog¤Í4wÁdµÓòÔ. ÀÓ¡=Ó*U®ák^ƒË—&;ìnc¢6 ±ãoÜ8xðœ;‰™«å\}y’E÷yvÀÑÔ'Ô)Œ6Ç_%e¶ý³;OÕ¹ˆºa^*|Ùõ§*+ÒyþrÐ+«®­ÍeâÓÕ??«ó©¨ŽÆdÇ…-á¾³#ôsMkò4R$o³Z-/ÅÇšU<ŒW•ýÞPSÿ,`P¤±É…·á3®ãfYZÑl-³£üN?´0à0ü1€£„¨PAw^=v•t¦½í§¢ï ˆk™/à°¨l«¥µR—xÿX£| ý¯”8Ù¡Q…ºü®þäñý]¨‹xO¿óÿ«‹"fétƒØ„Ê—øR@ÍŸIéË%*}—²´Çïcê8¿oÑeÙ£š€°e&1ƒ¿Qä”#³»±¿X뿸#ÜÁ²¿áþéÑß ÖÀY¿¾ÃÏ”SF½¿oGÌ"2Š 2VÅB&Ì g‘qü]7ÏÉôÑŽVç¤ùæÇÚ¦Ìûp4äwmÐãoòŒ<üL¨#Ô’õãD#<­õâwŸ€¶‡­€=vLºttj›#кÅ-„õp()Έ¸Ø~w^qN.<˜Çç5þv^埢 =ê¦|ùIBŠ0©*ømÛhh“”\ÈYÐ^ҤőQ“@‚Ärºw•D9KˆÄ,ƒëÙ{­V©2ó ´(«¬B9HûÙRö±·#R‚™á«R‡›<‰$B›^å| — ±t(m¤ñPXE:æô†•E¤ZTB+§Mò¹©’xüL¾E­»(ßQ³¸y&ì¬^Ÿ“57Té•å |(qí[ùŽ9¼Ý²’‚=/U3'ÀÀ¸ Rñ¸‹f÷mI,Û˜&ýˆÃi¼*K·~‚N™¸úœÊ ì;žù¹•VÐâÐý볿Öì½|ã¹CÞÜ-±×>“$õYº¹™nùZÄt;UT(–.ÞI¯ý%‚—;®²(®°°þ’1óû"?cÓ¡2W$G”ÿñÓªÝöÊ´ý—ŸޤŸ‹Ì´¿%ÝÃÅ$¢®°úq{ 7á©õW_ å¶Ð/ôy¶œ¯²ÅÂ÷w},f¤ü5¥»ùE²ßK²´d´Äù¶Ç¸üyp†Cà!ïêåêÔÉd–_ÜæÀù†Ð-jpn5OqJV¹ 3.çã2̸¹1Åî:³õ­Â½·›6ÊA¯Ve„Wâ[õU™P£<þô[R ™î¨VŽŸŽB{Þ[»)EÜÔ^ ÚÕŠðýš$ºä] ªiY-»œíß+ÆD'#P´w– ]hP6Új›r¼ÁÝÏh`õÎıÄí |û^èô£©–ç8PÉ•ÂDU²¤v® Ø=Åji†’[¨l‡ÎÎû4¥ûc=“#ý`bA¤„/Dü|¨o1{õû}KŒ‚ÝM£vÊŠÐ[gäÔgf`^ ¿µ'ñ/Â~¾ Ò<ˆÖååGlä õgÆÏÊãׯz\"¾óS_ÙEúëSztÝwUºÏ˜9#[Ê1•“ùlùσ£¯>µt˜âV?âBÉñM¯¶£TK ÓtZãó‡RÂ7ü"ˆ”D©®Kl«Ó¦h¯™o³®Õ-—´=$—¹E«1%lçÙÑ¡žôbޫľáY§'À/K:©f¶V™»7ú—˜†ùNÐ@·£^Š9ÅÆvU’þIúP¾i·. ‘áLíE=^̧âÓëœLtêcÌ¥!#èP”OXOUÌ>¬WäSä,Hï Äk^‰Ç—„ØrC¾ë ¯iö•jêO•‰ ã*@Í·}•]ÅT¸àš¶r²ƒZö^²ßÀ¿¯Úcü¥êIe@4ÆY/Å`¡ªüXÎèÂ3†öŽ]¯'¢ª(Ê:ÿˆ¡jÿÒ)3 šž,áBw™²ŒfcTÓIæ ̾¨ƒ À¢’tR.z“—{ÿ¦ àŽrÏ„Kdé4öGož£ätß§â`Í/AÊ~;Oz?êú±i¿ðC­ú…}Žudâ´m˜WM^å,EA#}zA¬,—bt:„ò"ýŽ0jnþòõ<›ÍJé5Ó’âôiêG†ÿß—Z°íµ©Ê:é@1˜b«D+ ÷µDé†u{†Ûïï râß|ɼ›Ü·Å7‚üƒÔÓ—£QÅ··õ¦‹ûNÚ{˜;¥ ƒ6êY/uGÑɾ#pô|V·Ó㯕at:[ÔaU¼ÞÜ>>ƒ5Èb{Û}Ã|J®èœS jR㸞,ÍÉ?²Gé°FV ]Áè6xCXBJïú ¤YÞ[ÎB¯å“<~’å$Žîôغ¢ZÖ5Å ±åz m60,ú!2åP+Úlþ‰f)9NsmðÇ£äT›Ÿ§ EHÌ”LŒšß8d̲óÕX[šÚBÿ,›Î0üX¸e¼êÆ_ÆXJ¨ç<Á|1Ïìš¿Cbüuè¿Oѱ‹N¨4qÄö¤¾Ñ†÷½R…¯UÛnsu±,˜q±Y°}xÈìUÞgWz™LªìXz&X ƒ\âeŸ„r™3¹Gn+’Zá~ë“nfîæU,«›=w5·±)¶´×fÍîcÛßý#qˆYÙŠ÷QïyM™ùUeÑB&ŒqȦ'}b;.6ô‹zrÙw—£p#Äæçd?—}êûU7©ÀÕn›ÑæðŸR÷\J= dXÃbE.¢±·n11B_~ÁüMÈ~÷xš1Uðç©äEÂ@ –ùk—ž˜Ð‰2„î¹&rÄë½è•ï$†l_©]¶¶ç±Šd8eßJ§ôME C—Ý!K»F9­Om~}[Œ¦4œÂw½”÷Oî'FA_ mÿXãý©Ý¾Ld1ðM8e^$Á†—ŽüFòÉ')X퉼µTpWˆSµ–„Ôæ¢EÑ+lwëJÜU.ô†ˆ‚ ür¸†up~L:ºp\~ýw|úFPl¦PЇ·(š~{G±°úÜMwÚehjD^ó¯}¦öBd"”Š:ê&ýÈü|®S"ê–<4$ëFV_? ×/ƒ»Ý):ºš}iå%I~4¥ÒL¬!éG‡]¿Û5‘úÉ­àöõ·,ÒH’TñR…øRúɼ5µ¼/yè5'†­úÈÑNùú‰š?À°2Óù‚7Дçì•%e¿±Ô¹eeZGsŽ­0O&ƶ”ß5•«S6-Å}£/H6ßfË(@Ô…u| ‘œzMÿ]Áëïx—@O«¹Ç{çî£dþa> ›êÕ½ÇIU{)1©ü½Ž²% Eº¨àBðRÕé/Dk 8Jˆ^ì„OxR¿êß!¾2Áq»º*Æðm$Ó¢’˜Ò{‰Î¯†¸þ;-T4&IFl‚EΘͻ¨ ~ƒÜèH„,fñÃtÝ75ß·8 ÚaoˆKlìÈŸ³ˆñ߯‹Í£—‡üB¶øÿ­ª£Iüüßà€­««ok´©6qP¬®kAötZ0Ò*±c ñH- ›ì‡c™³œÊCؽ„©m5 :¯Ön.@"Y+“Æ£Þuˆcì $#Ì*±­(ó(G‡ï#Æz.*? ê]¥«Õ2+×!í¹ºî}ò˾‘JWÙö-Û.m;×ó›h†’aŸ–Ô¹^þÉ·‹ã¸­ƒn°?$¼!xÒÑû°-Sß[.êC;º¨,Cå?¹Ãϰû\“lY&ÁkÌÚ?å³Vt1vífŠô“ü|§™…#<Ù϶çJÛ!FúÈkßýò„À£¢ÍÕ ˆèmåÄÐ Žãâ{jî š7Xèã}{²42ó®kåƒÝ’Ùüè¡¢› î¡ù× ‡<ˆy…U©Dí¶»[ß“’€Ê( •ß䦌Íœâq€ynýϳrºå§è(¸ÛÀ&ùóïnÊ#ïn’OaÉéŠî±éЙYÑQøt÷­rqHÇ‚`‹ÀWÐ>‚gȼý¿¨ÿ¬=ߣäâ¦Óeô{(Æm|çÊÓ×ç45¤…2ÖøÅÛAúÁc‚C«¦NP»*SþSi_=&â+X¾¢|„”–ÚìØD¹šhýlÆáXOjüMß¾ bõDÉ©»³uµ±PVV^âÈÛ, +½ÅÁµ‡ò‰ãç0•¾-8ç)mú£éüM4'®ˆ=)‘aýÓ¿#øôã Ðø€ò‹b­e3ÏOqÓ,¿Ï #:‘jë׺àÜûM˜œ;õUw’xÈ”ðl||¢ÑRÌO¶S;)øÉí2xû˲ÛmW]Á|¸À¥ð(B뭹ܼWžêñ²‹e6ü>°)„šgÚÒ^ÝJ|{(ü Çx4ñÖÛ7Âä Ô몘qì„(×öÃžæ ­ÛÉÆ ucwb•p¥µMÄ4Û5y࣠ÑÔܯ²¢”Ƽñ‰Ö¡ÕƒsÜ…(TüÙ[.µQ|niàöÆú_k ”a„ñ:C¢Ì~NíÈåb«L‰ 0–S¨ƒƒ” šˆ¯^úåž°Ãî8¶¼SH> 2ÛH¬&Cҷij8É àøç в¨8¢_â×B\ô|uɽ$ôýo¦þŠî]_ «–xÔ#úé¯ö|É9ÙQ«ïüP‰I‹ã ˜ð/ãæmxÏæôxç<6²hÛ’YóN¡£‹´ÛP‚c‚àÍg,Þ§Œº:]9^|hQŠ5É|R1R d(béƒ>ߨ…0_üгã–:Wžòwc8Õ B7…[NXòšðS #ásI§êeõ¤Eëåivð•‰÷ê1%`fס÷¸€ÿp¢¾Žƒt#ˆÛ­YæÚnI<”^Ïš[;ú"¢ßüpI<#ß7G è®?„ãëÿo.ÒŽ~s+xTSïŽö)-’ЬKK­uêŽ3Eüèè/¼ ';rD„‚wó|Ñëæçã"i®ÿº¿á8î ³©¡Áµz#‘ß”Ëd« Óô»ß¿m~6³ÿ\ 1ƒUe)Wù—Mïfý•V5á^ÝZœö«_4rpÑXÜá ’¦M>jê%±€€Õ˜v&TGåí³¿Y\¹D£$”óÖsŒ üðÔ†0ôÏã•=î§²OÞ|„.þM­»; éËxazZð÷Äx¢S°û­˜e«œxÜ‘uЦ¨¾NÊV•Ú}#• c-ÔU+S%”l™ògî5†®@nƒo–§Ö‘\QN®ÝËÊm®r•%áU-S´›À' â<{Mh][{'3qƒ¡õ‹¤Ú­Žã-¢Ç(¥ØVá0 ‡ ±Þt¸ÉB>)QÂo+QëÄÇr `Ö?TXÁ-öØäJï‡É6pÅ' z…5«šM1z*[î ÉŒTbDá‚üš•NKqiVµ¯Ûn-º=š¶Õ’uYå;Ùü|®et¸¾²ld¦Â´6O %³æ4y`ÊV?®b g`¦d‚5›€LT‡Ð.­@ú“*6(Š@Íi¨åÒdñÒ&½ó~m$ÿb‘r—ÂV&â!;¬%¾ÚB\hßlæKÞ¨mÍ”qÙ¦x8¡uÊ"yZ%Ö’ObOãªMvôd\ÂÕES=YŒ$±ªš ˰ŒÝ’ôàà]’¦²V-ÙïÈʼnéÜ!ø…ìÔW A0µ÷Ãâ;0U¡í‚ •Æ­úåRÕÄ$ÊtþÁ($åhüÉGJ¶Ø¦6J›¶H^ÓQ«Ù Øn'#á<ƒA[OCä4–í«hÁé‹k5+­8öŽA@F^ï‰5ý¥¬‰\ÚéWO/ÇIvypº£s ·C«Ú¼UîJ¬ ˜F‰Bsé3ú`¥!UÓ\•"•¦dÖg¦ž ^°¡’€@‹U®ƒ‘´öóJ]üXLÉOÚqpŸÅŒòéMÝê‰o•¸ ùâöý¹¶hƒ°OÝ>÷SúЧÆ0ÊpwtÝ&ßËN1De øƒ…›®«STºP“îbø ¼¦HÛnUÞHb¥CèH–dBèsJ —w%$#äÁŸÍóò‡äPµÊ|:¼BR @àI®Š:mÈ´ibðÈL!ÍVlÚ#€¹–‚Ïqâô¤ ªl´)ËRª¨ãÏçÆ9MÂɪ7·\íûOˆ1ãBa1¢ûLÅ7üй3%Ça½‘œ¨ñy9ü¯~Þgì.e-L>AÑýB³Ï)lœ¸žOqÍ'–­Vn㸖kÄñ¶–q²•UÉÔÓˆ¶LH’‹)ãÃÏ®¿!fíO›Åâdè(N á²·¦Ú¾Ýj¾9ãzûíPav@΄ºñ»Â[ŠöûÞ»X:&Ÿ® VîÌVDGDŸ·¥<½ þ Ú!£áëÊZÂG3ð ùøŸµJ 4U g¯Äsj bp9gR×,‰åëé«÷heýnЕ5Vlí©EÒMÆ#sOˆþA”œ(E0Cm-.ŒH]Q¦/鵫CoDùüX3g7qi1÷`Æ­AR¹.¯;£øéØ–aÐ2 Qiçõ½s´UHŽ• É`Âס†íõ/õˆ3>J¸Q÷L|©®Y®Þþ¡: ç “µ•»ëÔS 2%Áiï5é €ì±7Ó8ŠŠ0 f.Àê?÷ Äñ6f Ð%ë•È€¾·}}e]´ V“¿ØsÐù¦ìË|_Ü-ü<€ÿzàAQyÿ—d$é¨ãÌkÜæ'áHDiΫÆzB^Íl5ò H–Rp[vWn½rv`̉Vœ¦IÍ|€¾ëÈ Æ ð£Û‘»n‘u³üM!¼ʆkŽ"§CQþýþ’¼D[ܘrÁÙ·V¦(Ù㿚¥V)±›tÛ.K(¶T›ºâŒÞÃ':r9 cl£pÿ'n†ÄYÝÔn„°ò£òëY/¨Äó¹58¸ùu 'p2 µTÍâ²{šþ‰Èº££LïÑ{1g £’&^çrý…â­ §7Ç º›Ö¡wàñp<)€fVÉ:Sß{Ô›#û^§ÿÄ+Ÿ@zÛb¼ŠÂ>qôXï*Fêá/<]uJ×,AÍø-ÒâDŠ- ׿Hɳnjâ-±F¼ƒ„üJB¯’øš(ƦíõVÎ9Gz8¼ÒŸnÖQ¿{‘›œ‘ú}ƒ~x‚ÿGƒO›,¿ül tD Ì™læÚ&eD’äVú0DŠîP=êL+ôzDχªš:Á_Ù*á­uz&-Ïy4ŒKÁÚrI=¤g;Ztÿ6»Ï?lK37›øÈÜç-gÙIÉäæÂåáU›Ñï¦*36KÎ4¥(o±Qûñøå¶ü1ó¹}çžNïÛ¬³JÍ‚@ƒá‡‘{a \F: Nzøf—2eæ%40¢TÁI0ŸtD÷œJ, 1¦'PD“±`Ž^ÅüƒùáÎ-«Ú†°æã:纖Y:ÿqÖZ20îÆs¢DL•£º¨uU6€ê'[Vði#QÀÌ“†”e.ñì3"†ùØ.­¯…^2ü¤ÖAT@òÅ(y†Cµ‡òœ°–þ©1äV X º{nÝ=3[+H¾Såêü1ü}anLø_Lµ‘eÿ‚â;;ö¶ñ¼8“×Gˆ“|œß Ÿ;„*p/RòlÈ?‘ƒhŒÒÓMmM¤|Nž6®û“z~÷ Dlc«e=F%pâ‹W¢`Êæý“›j >ÞBXþ)ö¬XC+/xÿ« à(­#L·C…ê.¾éé“èßÇVë7¾çšÖkg©CL­›í s¢ª.nø6x•Ÿ›d Óy§&ª˜ §-ëÍ¢'Öy{¬oÇ÷]^}J=_ÍA§D¯÷ÍÊá9¾d†Îž‡dÅkð9âô¹ÜRŠžiy°´êÝXYö‚§A6ª´çy¯Ÿ&oðáGC¾1Ȳx¾.M(­e´àÞâ´ßVí1ü†mÅòŽW¸ âZ6ÊJ¿ŸÀ€¶v'[T4®p¨›É5N{Ã¥ôûˆ7‚ýq3&êä…'È­ÓqBú­˜ƒ—“0heuðŒ¨ÈD›Éy…-TÒ¡S:3ªøtªy9.?´9-(©]ŠE¨]gÐr35%¥ÄÉäDùe}^àUùÀýŽÚݔªÂÛ2HÄ^Ì@Ùßö…ÐŽ+<ÙÓ²Ñ驯êò±ºgr¢ßu<^ÖäƒÐ]Ü·¦Þò³ÒsÂìzìY=j.L{wPMEížâ@ÑÉÎ<,v!ÅѱüM2S ³Êå&ÈYMAì·€ `Eå= ó5Aëä„ÁÄ…LWÍ1 ö:ént;´8Q¶.-|VgÝÛ,ÛV ¢ö–­ó½íâ*år!!ä THåp G„;‘Dv°7¨eį–áÒb =Ä8ŽÐNÌ#å3ñidª ØíÒãÝQ֔ɳC€‹ƒ W˧W.C5tßq]Ã$·Ñ®ù؉¥F Úú.ÌsxÈŸñ哻Ѿé\Áï·˜z²±'º!Ô[€Z]æ¹ÍÅ™bi•ª¦ÙUרÚÙ«ãÏp¤µK½ŒYË`rÉ@”x/çü°ÓYù° Ë"¥íZ FD‰r–"DtýÙé–0þŒprO–•ç©_pûšiU鯅 I¡É~™"?©õœÉ¤Úæ ÄHŒý½åØŠPÙ<ÀX!p2éÁ;h†/ÙÒ8ùßnšH ^úhZd²Æ`Ñ/˜Žó ÊDÈ«?®Ëy©ï…38³C4Ê ì‡ð\r˰\ò½º¢yóGb&*ÆÖwlç¼{»™‰–É& ¡Ä"=DÕ4Øõ¿)¿ úQ“ ÔÞ$í—-m&ìÂeY+OpæDõö?X©¾ÉÙ5oBL£&Å-¢ÂĬ¥LQ/ü®–´$4¿¸o6!±F{9;˜‰ÃÇ‘”Ü €·½lnWšÄtÔ§Û]…A˜3GY/®GT«v#œ,&=Ä%¹¾v ßcñ|_™¦ôí„asëáð8°ü¯ëÄêTï)ÖÏ©C&ß×áøu³ ‡õw±Ó"Ö+h™I ‰W‹³¡÷ó§ ‡*°eÊFLž4c„A޵í'ZÝ£Ã2©&vš†çïGj¦ âåÞñ¡È §^£¨U¯ö®Añ6Æ@ã{v(ÅVõ¡'³|Õm€õL8œ«zä?ÅÆŽú¯ü±G‚l4³,hL‹À‹½?Æ›µ‘Ü ú $îE kˆ•:ÈO$t±twc9Ö¢ãLHSùî}Ig“ŸÄ$Ú5†;;£ð;‘b¡P%BÂ=*ŽcRwj@žZ=¥öÛA^u\gX %¾và›».$í¢äè#ýEgüÂbe«ªà49Ø)Ùr> x·*%hнÈé»öNŽTä©ò ­Ÿû"^êt7àkô îEªðEñ&RíÇj³(x=’œ¦npå•äí85ÀÛå7—ÎÔi[ö²MÞÁÏ}&órddsE²6ýýq5ÚpÊÑØïü|®,†_ÎÔ†(¡6J[ä£PtVnƒhÍñØ_ÀÅø¾MÛ¡qÍ3ü6ƒI~õ’HÅ!9^¢_G¯¬*í ABÃÞ4^b%³*b€Y±PvÌo"Ya6Æûn•ñ[]!_ŒPPv½É¡E&)u¤|êʳÔKhëOq¡P°1õš,¢ZÞ‚°¤šTF‹Æ±b ¨[Öׯò†Ý2œ…©†+™qÈvëä‘ËweqtEÚrw+د³KŠï4›Ä‰Ù²áìH™?vÙç×?T…ò%‡®"l(«âÚrœeçKDÕJš!à ‡§Ö:²™gNƒlöKàÓ)eP´)‡éÛõ4p4uï¬NÙ¿ÞZ="‘"½Ëü°ÓÓCzçøx¢`[™8—]à2‰ãåŸÀ~zû7ÚÁU¿ÑiÉ)TKg.JAL}•{ƒŠ4г!ý4uyø$¢»'Ö»¿ I&æ=]êc•IÒ)Žò°!àÃÐS9£Œï¡N0ãg/Nz–¸Dû·Å[ðzßPü¢ >SŒ/rÆÝ{K+ Fî -FíЦø-ûì¢Rfnœ,í±Ð·ÈãŸHMÃk˜‚Ç;¾©ÐLÄ"TÔ¤Ê b\yIot˜°hrk‰y6 ì“õ “ÇuóÝ5‘¤á¯ˆÈ„;Wò®ü1®æ&W•÷%IyˆšLs¾Ú¨÷?a²Tkí1²Mž Ù—Õô"„ýÆtÝs~ã«=Ôó4³÷$ií–lS.L1özŸÖ°îXØ.X$0¡Ò8‰|È`q2…5[²ú‘nçÔø&1Æ@ùœ¦Í\ϨJ‚škBgù H¡qñº¸S´ÊÇÙ*¹ñªO›&\N›ÛgÙDäÑú­@•5wXf£Á;æøŒªˆ!X?†aH*éìiÓ6¥ft′y3ue¶dr|¡9à\ø·-f)]¯ÂŒbt‚•жH{bru×ÂÒxA.¬–éŒ?M¾k g¡A1ÜRñ|5OggS†=¨äU4Ï<ùÿÙÿCäÝÝÒÔÚÜßãíóùÿÚæãàßÕÞÿ"ûÖÖÙÒÑÿ=îØÿðìÿûîÿûÿü÷ÿÔçèãÜÞåüM*^c4b$Ñ9@ZM—î!ÕõúB¼ÕG. •aYŸT9MK3ÖY#V™$x‹oxñ½•ñcøƒ ƒ>bÌ_ûskðØ‚A.oýú‡ü ÐJ“ÿrfZ꺂”[œÖ?CúÍ»o¸}5ƒBéÒPÓÈa»êuONu®7j\1¶›^-ŠÁ†»¶uz$_ÀÊ›¦.WXÖW^mãøá¤Z(Ã/É$æ×s¬•¬ÎSŒò‘…NCþiñDÖ™rbG@n› ÒSÔm0ýÊ_k{=ÉÚùdÄ×ÉùM¾øVŸ±`L훡>k2 ¦€KTò飺—ÿ‚Äm›ü|®.æ—õ­Í6šy ?+ àQ(¹ÁÖõ––Ý{ mÔn4RÍ»I~]X_Y|Ý([ áíȤ@¬"tŸøp¤‰Q–lo­ŠTEüö yé`®Ù\Âi·ƒª{z¢ñê.¶éVîsÜäàÔiÕ«SÄKhLn!Ã|Õ: ¢çAݼÇ ;ZˆsPÇJÇ=|h‡{€.E•àQzŸm0J2Û–BYPΫ³åž\Š©éƒ Ãs£­•&Ä MqYVþ}Ï.:Öö ¢Ñîçܤ[:>> ‹ëèHøÿ&^ _Z¯DàbúMoê'Ð:àÜ#õü<¯ÞA<çÝ4xðó¾ûŠ?ŽòDùhnzE®z§=ug‡UÕ-DÙ¨–{Ö2Þ㚺H]>tü:†X?ö·T[ê‚÷&+¿a«æk“Ÿ,Ã5éjà¢ö êHoÙêLà`?)­íÛ©¦Å¶¯hd`ǸXmE{º;tAèTÞ‘v'E`d~àqÔÉÐY]€ºe2uœÙüWÇ•O;bÓÚ}Y$E•›yø;ZØá“¾ò}·<î;*G0ýÌ޲¦y­3¬;ת8¶^C:°$Oå]ÊÖÖD´Ç*¡gOD-€Oª6&ü}a•7}Ôf}_4•a,e –(óeØj ç $>ò-oÜSO5êVß,WÖű™ÄÉ ²×ËJ¹å?©,õ¡A¸ÅûXH¸2ìÑÔjî€ó}:#w–ÜchæüƒZ–G%õ-_9UÉE/YiÞß{l>éÚT'Zé]¦ÁÕƒÕ¥8:KxËûÄ+ÚØÙ\ñG¢¯ÿ®~‡ÖK£3ÊøÔP7:CVØy±¨Mý@ëmìM÷w±éÁ¯#ÎP)o¨[׊ ý=º_øË²³‹VÞPÄ“Ÿ4±2¼òŠž²Ñº€ºâÛÿV£Í&‡Ó°1üJ48£R]˜¹p"ÜÐ_Ú0ÌÛ¼a»£P²ö”¡RD–pqFéÀ¸U¿—(î_6ÉÛ^¦:]Aµ` R9W!ó°õàcšwÅ‹€«.=š@ÊÛ‚¯A÷5”é6;8ÇÁîüzøhnUƒÎòù5àÂ/°ùLpÕ”êŒø¦œðœ†â1Â>ëoF3Ÿ‹r2>×êL=RòGºÉÍD ÏØ¹ŒF?\ZèVGfyr¾®m±cz,xX€Ÿ ÍËùpôu:x1x˜}`6N®ÚÏå.>‰÷÷:®¡¿¬›ú€øüL¬!]Î<Ã{!JtFGÔOŸdþU7°¸EJÀÝ\<ÌV¿ ƒÆàK` Yü½¡q3%V‰ô”§Õà¸h‚ƒuþÂ6À*B¯ý—]Þ#ÛŒŸ ï‰ ê…—µ?€{'‹ `Îø “1ã þ:Ï’wÄçowÇ`Âëaᬱ$@û,7$šbºÞtC¿ÂšXFÿ„"GGYùgrGîì >¤áOK¼ŽÛCƒ¬¡ a9H5ûp¡1Ý£k&極O…Z7WÉN4g®–¯_|Jpîî|Q‚|þî,²<#NÒ‡T|’µüJ2J‰Þ„D»KšRC˜@M¥a”}„Ò· ¦Š"R±éM-ö]MLBý_± FÒ}©ãL'œÐ×ÿšk àJ5–Úó¨… çðÚŒ›¨E=:šôš"qBÔSy†ÐíŠÓàOŒG~ÏJEz!cn†úÏðÈ’vŸÍÕ¯>So̺ºðšüR™ ºú5¥Ñ‡5a.Û,ýÿHé¿7eæî ·WEB*#ô9=Þ ˜ã {4J3.%ÇW¥Í·^=êÿüL°²µgP$¿f=|aý k(s>+©.¾bÉàIvâ'¦(e[y÷WŽ$v$6òü;¶ÜñL2áySKhïÊ.GIb?ºž·¶K'¦N!G¿bä§3]H­„Q¢™`E/wm£ï>½¬"ÄÓþÙŽ–n»&£±„Ê2¼G'ß-ÓÃM˜¸Zô)&TçÄ¥H„k¦±t‡î]”1à£Ï‡©Â.úÐBßüy¢½Ù{Oš66²“Œ%’_pTÁ ²é/“ØíEʹ¶µÚü5Ý/uy´P£*„žs‰F<9wôÖyw‰ùÝ °>Ê”¤¢puZé–[`ì2.@m€¡ñÿ0¾¯¼ó¦Ái€$|;ªìÎ šÙUÖn7}Á;ª—ƒbË+R.ÁÚžI°®ìôDòÉ µ'®­?Ivcpúy€ +± ¢¢r‹ÍÜËu 6âŒ&®Ì–Í·‚Ó†Ä;]G?ämpm €A•Ú ùúúC÷̈F t*UË×2ûk¡Ì}ØœçuXI–YA|DÐÁµÁ|„áüLÇ«‡ÑB4\ÚO,LáYl´[N–{n­ÿ¯xÛ׎áÀjªø&E9Lž¹|Ê Û(Ço"šqUÍí©34ipž,tÇ Ïz¦¸ÝÍš;£jÛqµmBZåIF†Åà´­Í —œeZÀYJœâ¼ =Ùú*dakbAawl“O4ä†frCWóö+eä‹';« -ߎWEDn?ˆÕPÿD+Oƒ&bcù4òs_$šýKx±ùuj‹dVV>WÉy™™`^×pµ­¤Še…±!kæü6U_" 0 cxB´É훈cܧ3ŒAygß)·hM?e uînEìhYú^w7®ŸôaµW¹$šáå=ˆ£¼Ž@s:ËÈ•—èPªy(δJµËð/§J/E²÷ÈÁ^âo¶N¯ài„D&O¤•§žt¯ ”ñ»x{ò̬×ü›)îV/¦äzZe÷mÜ ™Iº‘6×··Ôا_Ñèo›e_"½§e¸Âù×BÒØ.¼oÕÐûÐ¥Á3ñË0€>û¿@÷¹<õ¤i='ÃÄF…\¥UøÖü6RÚÆh2éªJÈ©}YÞ1?+ø¡jA»sÇXÀ²Eäõ $s~V^·ƒ|É#…¡5>}Ý7œ)ÏñëîÛ#°æÈÄzVŒã–µŒF&î¸Í?3QñGôݲ%ƒ%Ì¢ø?š´¹¢a¿»P‹vðhª¡ˆÇ"GG¤!¤ðG°#Š;ÍöO©ëa]’tH¥¿x ý–Ý5¥xÎäxcØ<ùýwÉI¯ÛMÇjÕ^Û]šX=êl¿£dã²7M1‹±}Û&)7DÜg–[£¾Z@y÷“Wü5*‰ë¦\z›jY*,& Õ üW)ņs¿Œ_©ÇÞ.’ýŤ9/¡†µ} Œ7Þ;,â!«'cä–ÛÒ4õ*„…$÷;Œ¨}yùPßG9E2™i!b €Ê0mÖ~Ó ¼SÀCŸ\Ïä!=Û±œbN(Þ<›’Ù£Ø ¦S™DηÍTÊÔ{iW0ÛïŸbü€[2±±Ëy-÷ÙlœAPñ¨K~9FÑÊåfÏm'>¿jb!Üó©y/æàÖøf°ªÂ} \€8Æœ„6k¢ÜGÐé*4p|ö$&”fÍ"µÆ£þšÃM1GüIçQ=~§Ñ÷8?ÉÊÏ.«ü™K¢„«skÓôåÁ§,ƒ€/‚ ÃóAõxÇ C4kq+øó'¦,?N¬—ÁKI4è³’½K fÅ­Þ—ÊÒ{ˆuóvoÆ­ìêêY|8‰ÍY3´ßf¥÷„‹ƒaÎ\:GJ’“ÁmX7;Šþ¿¿zpÜýÏ M•"™Yó}³š¦òŒ­2 #zRZ¹Âk#NzgˆS[¬è–ÍšÆZ@øðAN?Ïaœ òœ[&6TÝÔkÖ¶€8ˆˆÐc]pIŒ.ä™d=äÝÁ;;%¦…‰×I$NÛß÷Ép÷Ýf9ü4üLd-6"ê†Ù/“Åv}K|lÇVŠÁ©÷w Yk¼Lãþf -1ÊÎÜn¸,bþnØ1ái(@dó«»3W¹mô ÀÅH¬ÈÌó? ­7\#Çm=ìfý#šxhå‚ú/µ!½v¤o§G´·&Ï«ßw¨*„13¨P§á]¼&9ázÉÅݺ¡ëÇ ½â„ÑÖ`/¬rÃäç9k´ˆg˜:ÅÒMñAvŠOå6€ú†®æóeÖˆôW7ÉÁÕ]£ñ½jsÑë„oVÒ‚ê£Ý9Ç Š¡¤nÑâ`[Õ‰!9±Jå 2‹kÌû8IÙÄ·ÿÐÓœÿE¯ü|­,Ü“ÂdÅIûÁC×T9~Š"7 ܪQÊdâªá¯Ž^8WѦsÃhÊ'ôúhsa¸“y{(0pçàùËð¸@•z'u~°Ë»»r4tÔ“BºJ ‡›–k‹&ä‹Ù6¿•§ô³~HE¬øzžR„–Ÿp%¢ë^jÑ ^©¨ Ã,*¹øåìá)ÞwâGzöþ¢„f]]ߤ(9]rú­„uÌÁÉDôÇ'âÞñ¬ @ÐW:Ç.\=’éω…y¦º8´Õ‰P€üo}ù ±ÍlÒq’cRÉyH¡Î¬¥±Q\–ªS$$¦ ‘1ÓÞ·-î´7Lå›n!b2ÔD°Ü +ÿ朗壉گ¨‹÷²b\ J2‰ߥùe‘¿c-•®R„Ä$†â¢Ÿ”[ö¡VÇ…å—_ «_Gm'Ð0騵E IÓ”ÊÁЧ$ëÁÇá3)ô& ŠNòLúë ³ÚŜԸZÉm3NÃeLÊýpÂzðg)¤/ç)‰ÙæS ~M)³+ñûüù%ÖP—Œ/2•“éqd‰÷`n/«¦>g»ÃcÌ¢ŽBc£ïsœEÿàÈ4ù•¢ºöWðUO"ÏEH(C£77߆܌—WSMF‡q·:C¢‹A±¼fŽà׊, —è?¹å/,[’!G’++>ÈÃ7 ¶²•òç·&ñ)oèiûF*P½´ÜJ2ŽùX‚›üLºòýèÛ+éAmöb‚ÃP~`šQOžlµãZèÊ ÈS'öBØ2ü(¸Éaî“”ŠyŸJ*,±_$íó{(m°®MdZÙq0ìažÅ-Ä´¼TóƒÉg²mýÿÿg…³ËÍî»tB„¯2d¤Í Ñôí$²ß²ðãñèíØ\$€r‡ú³„éÇ2'•¦{×€C(;;}‡@>â° æµTRõQ[Ðî—ƒÆÇ޵&³N[†HŠÀëÝhÌJK†ŠàØçlƒ´1ý!h’Ö H+Kæš"=ÐÙ©"z È?uü6Z9€\¸©Œ ø< £ €ÈÌo%2ÜM¶F§Ýƒ”ó+°­öƒ-)˜XJ7.!/É>ƒµä»0¸=üií$“AÝÂ7?1ß>®ùë8DNÅahÂà6ü>’“b‰Ó@¼‰Éry÷iÖÁ ô÷o¬‡-JK #–y¾fÊoí9˜ãa│ðc£ûò¨ÕþØøUª´=œVµ©’Ù!o‡0S¦­…Ä+Ô4BŸk2_oBôM7¤Æ™ VòLF”æ@Q ì%,³ó‰åÄÊìªhC`%i³û%M›üÛ|2a›à‚ƒ•a¿• PK]ÜUGçNÇt_›,„«Ÿ[PIö•RÏ3Ý:LÑìȹÕoàÁ"¡–#æÇ9hr/·žiä›úE{&g߃†Ô)ù²—ýþ',Þ8íÛ›»§_÷dýûžŽ”‰kÆq§ðùwBtbá%Hñ,]}¯—GK7‘ækMж_ €$ ¸ß,"•\ueá0ÏžFÌ¡)O³äšÙäÊý¨ltZoLÇLÊNq©ŸÌ&ÌTKÀDŒWö,Œde•^©B‹2BÄI„&ãV•‚Iü6hÁ–ÎöÌ5r¾Öî‹£~í¸Ü“g'>EKïä|€7Ú_kLÇ"—èÆip Á tæÍW÷oÔK“’÷óGb’£îeçõ—Ó=Èi0Mo¸ºbyÇQ‘ö ZRrÔÚÁ©–ÿέwþÑ`2l8{}Z£ÕXj½?Ù"TýËZýO_•%­«T@Ï´ê²¢ü|§ËÇQ1ŒÕ¸tÒ»\ÆÁ œ*?Æçp²QÁ°çáø®°¹}h{.·ŠÓ°¶†1FŠ] pûü÷î—&_Ãþo-óY ¢ƒ1d‰ÑN¶¶äñþ]Üv)½@âS¤^QÅ}>Ù)^¡s_rqñ•µyW€’nŽ¥-;>¢>ü7ç;®¥zÀ©l(ÿåÄpˆá–”ë³9Sx >¬ÌžðWæØX‚®Iç±¹ydxAöLvà”dtùqhÿÌð·f¢§M¬„„®È2ueL³ðæª à,WÜ@ú¾‰] ·ª2…$ØMå㔺£€Àraà¶í Wæ¸àX ŒŽé¯óƒ¡ø<Þ‰ÈÖ»ºo[aûïd„l’$)BЈÒÿüMvŸHD&æO·ö¬Øׇî˜q2Ü$®êH«*SK@’Ú!!_6;ë 6\Ó`ÓËSéôÝ3íå×ÑÐPà1×óUÚ<D\Ö…ãÿ‹”àAðÛV-¿s7ÖõgKæê@)«ö­Pbù£ÔZ!¼ð‡×‡ —y¹< S®çz%+ Þ"Tc7B®yp·eœÒÂô%v]¦æøÅvÉIˆJ@iÊkîßía.)WBVZä¨@MDÕb6yw “7gÓ­K¢få.‘WïÑ,Hîš qµï’M<¨N-• ˜àÂ³Ê #°áÄ3˜!»ò÷Ëw¨?H…nj̓0ô†¤Ñ~`ðßaåò/üMbÈêmÄiÎ׸“™ëºxf‰ ‚ Â'î”ûQ¤ OY€! i“9Dú±VóWA{NíþCzïÕ2ýõÓÄBí—ààcÿaO:ÜœAY¾å~¢-¯:˺2µã”ÔðÂÄS^.%jךo–$DŸ¦2ñ¾ŽiÔ« E¢'=h$¨aˆž`Åãõ^K*}(þ¨|›e(MI»®<á—ùÐüËd«¬Œ)¾W(KË„8\ò·Q?fßhض¤¦¼„nµ˜ü™|s7Û|éhÒY­s }ºÐÜ YTÏöÈéŽ,üMZ¦-ß=i„ÔÏ »y .°fœòêüàŽÜ§$Ó"ç}Ó9'Ž¿5Ô¿Ä¥Þǘù á^K=dM| ”¯E6G+¤0ñº‡ÎLA£º¦âYU²/¡Ul·A®FGÂåÔ-XJyÞ&]‡½Ë ØZ…9Íìv Ä{»iðS°Þ¦Äž|šÁp'u’"Na`—˜ál^—³€à©ÀëÊŸíæÀ»MÖû¼¼u0Ì1’Äœ´Ø‰‚£[ð÷K—îQ%%ô¡È¹}©Ê!w%4þGªö"5.dÛG+üK°%ÅM¶ž[sßH¬t(¡±üûD 3kRj*½u¡Ñ©ÍP»)¹ LVX±Å¥à±­Y§ƒÉ%®×¤ [Ð]¡£“e;dK|ºmï7[~ «`3d±ÍÓH„tg½Éï+ÁLµqóZì‰CÀ”ùãõgÈúò>¶gúØòûaœK$ÓË«ˆ{þÎ9ûß¼e¦œšáŠ‚¡pÞûZ*¶ K qɪ©lßL×PT³ ð}jvÇõ­UÝ[ ­5sI­”þtÙ5wYÅüL¾ œ*tÀ9àól-;í¯ÉMBÜ€„óU ˜Ävì ~m;EnÄ]ÏõøÍlf¢/ØèïÛQº+“VqÒQPÒY0$È@óC<›.–#Æ']8 :ð aÉ_¿¼5‚Qij¤:®FÖ¤<Ë<×ÙgЈsÑ↺×wBðf÷ ¢"à¯{0†2ì\š#4Ïî{à7†]_§?Sß÷ý*0'7G+r:–6—޼RMäÀ©YÊ*á{”xŸ¶m±J# ´†8½æâ¶\’¥2¶å–U¢ü|ª$ä¤÷•RüÇjßaåu´Àվń;öÂ_X^Ø[>qõk©Ž_úÝýµ H¿Å•ævÅ3Ó†Ë,çäξ<(µÏÿA 7‹ß‰>á‡/°“€Å¹…nÿ[rb¹*Ûô®möÁÄ5ßÇQãöÎeòIeE Mæ§=8äuQ£4°¨îÐýÚ_ZâöR_ÚiÜ¤Žœ„wz@Ù*<¼½¸ðzmÞ²ëí¦< â¾ÆË+õî*ë'ÉKÞÚr8–!\ „ž¶Š¸r'þ7GÛ$Žˆz4rpg‹Ý!ÿ˜¨8Ì+ÔDµu¸å‡%¾`/ªVýêÜ•Ñ"å-üÿLÞ6ýü¯5*ø¡W]»(%¤ûryys°±,‘ç1ù Kà*‡Íý[Èz?{î6cn@µU3!kޝ¾«æA£i™BjÔæ(ýÅX§ã-OÖ‹œò› ¡f†ö¤¼íMD… ç2È‚»NOO k*¬âì;D #iTIX™ór6ÐSЉu¯óðwÜJVYÆÇÇ@=…›SœÙó–j`»Éqy:fv‚çlHГŸþgWâº9ôþÁö“ÔoAÐÏNãk¸f Ô‡ÂÜ@]ˆŽLš[>Øáu¥€þ±*}¥¹«íLO†N³Öæ ÷ÔèÕÈæ]POd*|…Oì¿+œüSî³É$Û|t|+.CQVÿüÆDÃNòáØmÙå…”/z(ù Ë·>\ý%±r? Utügaƒ“ ‘¦2 -¨ã#ÈuŸ0½w&›Ó…3(§}Ín\Íic3ëZçiüÕâsñ•/6¸Ì¾/!A4—¢‹¿—EŠëêb=ãB.l]Ï0¶—(zBå–\ºò°”ç_‰Ö·½¹æcô¯õýi³D-?ídñP g±.ÁwhnŸdûnö8f'Ü¥>¶4 » bOf0$g-ëÞ5ÀIŠ{þd‰û+P)ÁF¬åµú83Ë+Á6v™;M?É®OkV‚®Â¥úv‘m§€T±³µÁü°Øå¤G¥,ƒ–Ï”æU³õt™Ag),{"ÇiúÓé)ŒwY ÙJV:gWMˆwoñÊÊŒU0Vi/ŠË%(£LLsnÜHbñNÖ *öãšuñÉ_ôÿ¬%AOïxÇ•Úk¡”ÖhßV)œEŒ¸!e¬D¦aìÞPºËKò*ÿ"õ,þ³¥¬‘žÈ[TK‘ݤoß:ø¬¸¯dH4ÍŠbŠ(;‹áÖ I5iÌp=“rÙsY<­”˜·˜)IºÝtÍœã¬ü{ÇNï=þ…7¬ÉçýüžIÕÚÏËHÌfzàMYø(Lõ´ß0³>¥›(-K«@€ò~üL®,#×àÅë¦ô|Ä»gm™Úï¬YFoRµ<w˜ïÄɯò–´5Ù™ ÃdgÒ!€½ß ý·ŠÜ‰àÉ9PÐABŠËãµiU»°Ž¯[NGë«ç4<Êh?ødå1‹_®6*Þ.LΉüÖ½NFçèPvuB„q»8ÿv$¨,|Êá?'9õ$šµÅÊäm½ˆï°,ú¾ý¥yšZPƒÖ[á†@åªTçXù±[ªÖ}ôŠUpò+qŨ¯1ð\[U&ù˯/œIŠ„c˜rG>F}÷o•6’(n+ÿy•?[°{™üLË»iHNk¡Åsj°&Zà~Ï…q¬?ZOújW[y?6íʘÚ'iÀ(=äTÕ£âŠÑ6gÍ„äç‰#p¾l’¹.Qkƒûãç㨨%ng¨,g¤ž}ˆ+yÒ²KÆ×›tWQºŒjŒk=>’¤ÜAÓdv%] DZ£Œ#„ÇáÐÙ#îß¹,€'…‹1>ÇÙW¥ì¡('@xõ6mƒÉJÀ½AœHü°7@ÕdŠõóTà4„7{â«Ì×h¢2;ãÚ—½ºMšˆ ˆ„æt·Hb`Ò-ifG¡¨…Êíýߤ€g )Ÿ)ѸàC—„_ÏvúËã4Óü5kgÊG>ÞìI'ñ†ÀÉ+ÿ’2‰‚¬ô;„K‡ .¸àã-¶»fŠqʆsÓ±veí[Z—(3gBnýC?ÿY󮨔èõQÀ«rfCà2 ®Lö´|¿3 À g­ktÿ°ñjÃä6^€=5&1Øù[ÌX ]ŽÚ £¦nÈ)µŠ‹ù”š$‡5ˆÀ?’–¤8&&·š.°V-ºÿ>7\Ö,$ P¾B÷[®ÙrIN•Ïd㵸!iì6¦Ó)n¹›[IL—fk â,| ~hãWC#i-«|K®"xòË;Ñ…ö*ç5‹v5©·Îñ[ŠÁü6kxðΛ¬¡ã(&˜­ÏõËàm–M$»V6^ãpîç tÈz4mâã䊓ûwË“³5d]¯”—‹¦Ùsg ‚n|+dÝX*;{†²5€(RýŒµ^ÛÂ;ÚˆÍÙ®¹ÇØþeV¥Õ¿žÿ—~B„ +ðÊÂ9HýŠ×P¨8,›oâ ~Tñ²S8.¤ƒ»äšóQ×p2 ,ÄÅ:…qW3²–†Ãʌ͡¢gÖÔÃ_çÅ…‡†Sz¢,ÈÃÕ±NC–28j2‰§÷$Y°yùC« VypˆX§d9±¸%ËâÙøÏi!Ò!¶W ­˜¥û7ÿÀ„ïžR`Oü0]šÙ“1íùœÐûX> b^.¡32Gûaüú‘â*'r ¯¹zÓóÃA{E>(µf_L%Û¯,¶ÔŠTp8‰Ñlm*‹)7òò4èˆ7'úÔºþâ\{Z´£÷NwõuÔÜ2?çXˆ’þ<‡þ+.¥n`›Ž™H옰d/J @8FJ‹µd„Õ+ªdÉ<¾q®¥›¾SC²½Å<ÎkÁM×f“Û¹ìO.G¿ï•UýÄŽ>£°·àèËgñ=üÝH¸ "…0j\:rV6—žw {¼vÌi©NZHöí}òí ÌU(ºuüIË‹ãßÉÉøe$Zn¨}óÅO!t}{¤Q;L%͘¯¤éÒ’¬î ‹ÄÁÒ Í6ðžj'[©F«-tûO¸p1ˆeßå.HðFôÆÊÃ,*§ª ?foqú F6LØoûÇÍ_òhLÄ VǨ-É åëHLî¨m.€–^<ûdë“ÉUSÓ‘Òu‘Í%á"l}Íþjbün™†µxqÕõÊæè½4üKÚýª‹KÑ´\giD™ÿñ”RYÒ‡’j9ŒÕ ËÓ¿ÀQîu“–¦ü¡ä¬ajt­óÅWÑ@bã™ýš ¯%ÈE |ü|©¾ëfèµ}Ï…Q-+ªöщ›xº`yÔçPNl4Q0<²p¹±îBËùtûÍê{Ù–w ô¯7å$ž3–yð€öµúw¿w¾‡·K[íN3ɹ/G|)›±ÁÀªvÒ?Ñhyͱü³¼Ãâû‘9ÚÈ@Ç|Úò¯;›¿wëB¿0ž)Ýá“9Õ~%±.b>·½xÑ•]š`^¯òSóáq/ÙÍüê7Æë»ÍA±×w˜Â÷I‰Ã[·´vý¾]¾ {¢—¢_¼ÀhܰÛHEòåËöÑ}ó¾­å‰çø±1x¨®<Ú†`í¦À$øÿ²¨º€×0qAò«™³Ò]z¡t©Ý[4ù™.¥ÿ߯~â‹*hØZöÇ QÁ)ŽrÖ¤š«³áºïõѹ™=!g”ÇÖeL¨Ú7ÎcEûm±¹%`$3ĈR‰ð¨’gŒ¸“뎇“ÃLc„ƒÙÉØ·Íˆ”mùyQõËXzŒÌž?”èLwkœl/ëíÕ¸Ýy¢z¼È/!z¶5\$ï/9CF¦YÛ%¬Š;Ęíy¢à«3óSÙXvMù¶ÀŠ#ušê“S£Cʪ†¸Ê«ÓÄa/‚³±¨;˜üIàä_òävDodulñLÍVð±ýåhÊúnyxÜ ríEPåàabO²£¡)OÀ4 µV™;(¤þ\Æ6ÈØðëþ@d¹g´tæQní–S:d8î©wÛé)ôû!~mÕŸþŸ´InŒ§<øMÛ;½=†*fÛm¼­…‘»L÷LdœL™té«ôäùp¾Î¯oËy+1Údjáͺ°1u7Ÿzh¬ö¬Ú¬ 6t7~ûü ó±0Là¼jNo߈ܩ·¶|â­B%nH•Epu—>›¤qêÜþ;RÍÊüIÝŸ¸p #1gØhÓ¶!!(­F~umIâvÈÞ€R'½E¬'Vh†»+VŒ*¥j]ò‡{¯8:<Ô:ƒá{º±lîû„u&dÁc5V…F¸§ã6|býÞ Œƒ_%>Xmläpï ã¤v–sÛ„, Øïú52 ?`ªHe³³`d9R«üFL@‰™ß4iÇ}¦qR†ŠûŠðh]v8pmY4´sŒì’ƒhŠªb%Ýõƒ^Ø•—Š9·¿›³ßÕL0gmrc°í{!ØŸõ›V˜:Ï ãçœe¶äxüLÀí_…A½ÒÖn2 ¤[c“{‘‘˺@¢$JpºÐ¸Û¶E&ȵS-#ž §ZúW·2¾T·b]LÚÒ¨®¡íwž±ŸL`È÷§¤|\dÈ JÉŒ——ÃљωAw†¾¾I~.êL¦”-Àó³ +þH§Ã’þÇ¥ðƒ¹…·†Ó"Ý,©k›|âÀÈ×Hº›üSS»=Ÿsž®ü¥þYÂ($YR†$Úf”ľAZ1M:¶(Y†HæüBÿÞ@©I–<š•ØâÇa¢/šfGÎÓp’zÇãÂì‚ó-…¦AüK#ŸVŸ¶b¶fËIý6 {‚†ùÕ\ßà/}¬`=šé¹ûóD½Þ#éA6­SÞÃZÇûÅßk 2 fÍK^°}£Ù·L‡ Ùz•BwlG]Q;ìÁÅ’¢ÚˆnóKEQž3µ&éþ˜¤BEƒ‡=€?qÊó¤ü_´¼À+;»1+­H Å?ÂåÍœºÃƱ×÷¥¨Ó©LXVˆêUÄh¸m(mtbõIOð0'Q|ÆþõC»µ½‡UëGèõó…4‘ˆ×¥‰Æa›¹—‰çk®†v°œ÷¶ò>ÍÒ†S9–ø{Ü+¯´zs\œ\¨m³£:«teº'”¢ª¬ KÄ þ…³Ã˜Ÿñ÷œä—§ed¶ƒHÞ=ԃĎcI üJŠõŽ‹Xû^í^PÀ¼¹NøªNÛBËv€Y®BÛ}ÖÃó_ªº×jGƒÓÖô NOƒõ»]?U€öû€}N‹;ןsü^5Û£5öü–ÒÛë-›m• ~Ë©êÈmvG¢n/è³BTc½HÖÐRZÅÝü—ÀÊŸ‹…äÐÊ,€|ì辩Ù'v3æ|~ÊR® þ™4xõzï"©/×<™æøèQ¦‡ŒšÏõyiÎH*,¹hN_¶âÙa»gÎDî!urQφéP"Í~h0yØÔá 7êOggS€A>¨äVÀÆ EÿÕÝâàÿéçÿÜÿYæßïâÝäÔÝÚáêåÿÝÿ.ÜÙáÜ÷ÿÚäçúÿÿ ÿ ÿÛýôÿÿÿÿÿuÿÿýõððÿÙü|­$ïjý ›àZc»ÚrÔMPeÖUϘʓO'Æø$Ô.¾…n¸OÍh¨/ ‘Eœñ¶*£$ ç~!¨\’-ƒ†¨‰µ¶^ùú h—þ‰U+[Ë´ˆM79.( à/Œ‘êßÙÓÕMû}½‹¯»˜*}a6Ê–£ƒ%b4Ó!å‚ó§»}æ‹=uàÃ*åcÕtÉq¿Pàõ„üö®7®QGEþ|z©út!دù )tÅc¯å•ÁéJ´$Š2–ò%µ •M·Är='Aáñ?uµ­v3=. Á¼0ˆ‰ùƒ“ ¨è´&’Å4»Ý¾"ŠÉQC¬ýù1Æ.ó >Ü4‹Ÿeqë³fuMšäëª&’eòÂ{uà fȸZR½F{s0=‹ÿ—\íc­ôÞjGÉõJDZ“#èo˶üõ96œôu­ü£|7q«ï„n õ¼‰ˆŸQR)àlÃLßÛ‘Ý;Ît•dz9èu'iùËÇ$•$–Ó•×:`UW“(¡“¯“9_Có…Æp)0Êi›UÝ¢ÎuQX{ÇØ\÷Q\ÍbüØ“ÒOÉøûö¡Gáü%é¥SÌhÈÏD¬à-ã <ûY€Ôî`e¶ñ°õ!± Ö`Û,A¼ý‘yhÆ ÞéEü× ¤kó¯?7‘xã­É+·î«m3”ï«¶‡ˆ«dÁ\'Œs"­^" UúçhõXðG|Ó¼ÒºenpBQ¡Ê?Öb›O´šdÎiœ‰&§dä_œp8G ®ª?)c{æ&UEðÄ­åºÙìGZxÂCõEËxæöìû´¬òAê¢N¸}¯¢ãÌ}‰QØk÷ø Ëk•ë·ravÕ2C8_dœ®­q¯²ZûNª~©¿¿üL­ñ«:ÒJ&00§´m´2W‡™äÞáHV½Q/{À°«Š±} ¡“R8•pö¡E—nÐ]'è'£‚y õ!µHn×ÛyeÒ0Ò5¿«Ûl©”…cÍÈ{.¡.ØÙøÎ{Q:²Ù»³è&²f`¥†äGS©|†4ÆFfÝ‚ë}-‹9´“õÛ““¶Vn“È’øÞñ5Bô¥sPð‘_ÏX˺ènŒÌϲœ:»ÚÿÔÿ`Ä™xÛfy§¦:ΨÀr¬º£×¢Ë-À!œÆ Z ò é¢Â¤H Hü1þl ~£sq¿CŒÕŠÈ\Ó!…yïø/pwF.Û+6ófÆ;dÕã£Þa–# ¶’ÒtŸ±Å¯'Zp=‹—“qàŽƒkÂ%óÄV6LOxϵqR4)›€Û¿Éw’˜ÄaÙa]Ût*¤‹JjèŠp"b<;#óÎW$d!šóŠ*U”y‡r| $RBÅX+O­?÷TÁ4åçÉN»õÀÐc¤¤*Ë™sÑ*V;Ó·>XØ„üâpCúüÄiTàÜÀÜY“,v¥:M‚×DmñÌ·” ã²w~U®9F°æ0¡&FÓXÒ˜®&eIú„bs¼•&Jy±­41ˆûq ¦4 €«ƒ¸¬\ßý4_ ÇŒ ×‹¦Htêlç5a¾×lÑÜ0—é±ôY-lL¢+k!Þ¤*º«%áþt¦TøÌæa¸ e+GcM,]•$‹óÁéŠÖt5«á´›%²ŸŸ¯|㪮òé˜Û¯ãé Ä£ •ñ¸FP”TÏÀʨFÒ¤¹:ž§ØS ~sìH>þ”9Í ü¯³9¶Ô3« ±×c_Îò™2¾NÌK¯ÃRÅpB5ÞR½å!zS’¸ÕrjTt zäЙúþå iÑ R®!Ó”âu—¾³ÓêëÓkÆc'Š c[ÿŠlyì8Š˜˜3K¢ÆÆ6¼./xGåe²D‚µûd”ùÚ¾}èÌõ* áf= 8X!èh{êúÈI*zõwMg¿¨°² l™ã¿„E9Ú-×TúÐHWí ŽnH/A£0³€H4Þ²OpÙ®Ët©@ìr ÙK°é<·ð¯a>Žé…ÏCòÆÄMbò½#ö/®ÑËúÁ@¬Gh Gz§)î“ÕK>Âçíx¬'°‹?3=[7U\‡õv‚@óÐúh‚OÕíÔgÏŒhàIUZ§á8&ÈœcˆGçû6OÉ ÓÌ\›@£¹Ý³BµØs¼¬#j•GÏÌxsÊjaÏѳøö5ÂúK7w“bpa´Ò+ŠP3´Žq2 ãAv¦¤àú qš´&.-Ýa0tž &³§oë:8D0SÕ“&±ŒÐOoçoNöÛ‚ûöǦéçŠ9§®ì´ÃÏYÊâ pÖµÓÇ‘½ã “0O÷Êîü|·tæÆ¬˜päädpxŽ uvg·$Q[¦´—‚• küK¡§àžXJÔ°A0>‘9æ¼#̼o µ´ž!”0(ÅݽÑ4_­rài!À ŒÒà­›af$qL–ôE=-¶UÓ öίìŸ9<Ô?ËSª§‚_<'ÿù•¦'õñ kÄa¹F£0-*u~„3óH1è ßç4“í¸VPâ‘̶ìB“ ©{{æBd@½Deï­œ­óaÛA’Ñõ –#ºué§7Ùíd¿qÊ<…<-ªnT=šK]ý~œ̓HçׇwkÉmÙ”ˆûÖýDra’B=ÐYBm…õžÑuaàë_¦ŸÌ›¶ÚÏ®lé!#ò€C{c†%kê‚Û(ã¬s’LýQdØè‚8÷¬²—ÏæÏjººå–÷u(ìH…[c%ŒQOü.V °é§!}Dòê‚謋ÓÎOïÒOµœ=ÃÁÀC1%Oð–& Ñ^â{=Aç 3(Y<^5/Í÷OD+qN×xZBÒånS1ÖnÛ~éõ’™Ü;:R²Oø4ûµ³)̶lŽÆ¶ËèæãŸÿB¿¬FðÔœ#ïQv‹[í-G,—1; ð >÷¹„,tÕ§x±/ñ1.o»åu¸œ©pêj¶‡4ì qå¿®¥Q›"[ÙBÆõ×òü¼s››dÊåãúýõåß jñÔüé¬}·¿Œ‹¹/’`S q?üL¾tŸ{Õ{:ú‡™nú¼Ñü®ð󤶻K¡© >K¯’¥,iy¸—XßövÕ=Úlž9ÅRöN,Šî¦!÷´$P»DŸziûK2x§ÃZ‘b#ƒs &—@—À–T–'ê ·¨7õ‹aÔ´NÙ! Nn¡h9†—ّȦÞØÞ®ÖåÀ’E±€¸ÅÿþßA‘ ãe}Ë¢¼ý <蛘!ûªœ3Ê`Q[â~&OdÐÓ°ìÛþ ärM¤‹vîoô*¼öCÍn|S2+2˜JåûñžH+Y‰¬¬ã9*(ëäˆá'›(÷ÑLAÁË'£T§â°M}üLÝŽþ¥E…ÐzëËg—iG Pß±j——psJì<ôçLäÄ ;ðG*Ê›’½4 =¤Ws,X•Q t­êðšûé[{f€)sÉ1oàíEu´=ì>Dê{21:Ħžïå7.A7%j&iž>´½¯ÉÁäâ‡>«_<‡„‹W÷Ò-ƆCs‚¹¡Óz±:DÊÝžtïj[»cƒa þ<×ù<šLø§'Á³±ËÅtvXV§4èpý=Z©#úó^Z‹£Z‡öÃ@*À£b;ávÝdÛC±8ö  üLÒÛØÙ= ï7©c½÷»½ dðzƒé$Plè³ØrS~åtÝíê„ DÅ6â~ÝîPõ¨MlN ‰á¨ÜM…´ AK½öKhPîà“i™Š”êS;ƒçFULcøÒ¤ÎÂ1T1‹3°C¤ç‚š£'Â^Vé·FNã“ý¡´ž¾s¥KZ÷qŒ™(+2Á´lÞÊÞ8œZ *Ihœ» ·É‘Ý¡-&€nüD;_1E:µÂçÆ|àx'Ó§J${Æÿ˜G=íÃy­âk'd_€h d¢5ü5õÜrTý!ùÕê×¶!•Ù32»ïPê]øi™, ü¢Ù9‰ÁBTý$„4?n}owÑS5R"„Ûòи7‡€U(ÓÕìæ³©Ê'ô]\„ë^n æˆo§uFÎüL¾7iœ Á,ÆÊD›\¬<{kz•¡"&Ÿ¥ðì`é(Šó­á³6….3Ô XPGÛ!ÔC¯ï­"Ö`£ûÁj÷f™õ_£ß$’ÆÁXh­Ï‹ó‹ðpÔNÖ” .ËqÃs¢f"Ícq×2¯]ÂOŒ#)IQ˜8õ°¿;á´7l;Ç—–6¼'cدyלXåúk`ºÍ$<˜ÿÔuš5¾üí_œ-öæ*5*ɱ€¨w•Nðᜠ-ß–)(¥è=úÇí®BH|1B 4¹ ü0ûV’HfÀe5vAOKų[—U 6úOøÌ»ÞæGzÏKÚ· <B¯Àìh v[cZ<ñÇã¶PYS¦ýç ­à„Òî켬ИÙYzÑé*΃G'sD°£Fÿœ"Ž¡'”„ïÉ̃f-}¾ÌëåjÊ´AX¤Åáµóm©”¥mš¾<¢%ÉN¾·Oì”Z‰”­šõ\vˤD¾`A}AŽYüœÁµÒì¿÷+–ãofz´k‚¥Ì©­Šg]§«†ã]½_°b0Ï0˜'UŒZpP9 S„Ûz^5¯õ[h¾üÆ.÷[2¥òÂÕXÑË;&»ŒrìœoçAí|k,·ÙŒ.K¾.F™Ì…íf[Fs™'çàÇýv¿‡‰yù ÞÚ¬g 4o4KœþáÆì[è Yîéo¨Rlh¹íÔxóÃf’’îÀÔ#$hV}§ÆAxû``ßmí¶åd}“ÞWÙsÒ>\@ѱW#/ Z¥=‚MÖ{&<[y©Jýœ ß%ðáÈÆ·Zð ÞªËò¯„íϛç§ËMõœŽ¥Ûs'´€SOýÖœ÷}ë¤.¹ãF1²¨ ôo’{aüÆOTÄ4çZD³r^ËÈÈ*¹+ª8\K=†yü’ƒÑº[S†!u·?dmRՃɶäÍsfÉ­Z— ¬R'p¡0;Ge»Î÷g;¤Êiÿ,ôwG'D| =2á PzÃ;'7Æ£>±•:CQ£O[ Ç,ãì~Ÿ…ÒI£®þÝÉ/B{±ÃÀçÌ«–i0:ÔÜšŽÏ¶øF¡Hëë.ÒólWÉhqˆ›©Å3ÚŒn©Éäÿ±Ž?$fZç;êãòL‚M¦ìñ^D» .qµÆ†Zó¶ñöÐáüÊb6Äu·`Õ;T–7š€¦Ã轚.—;Ïã´4ù§=!ôø1ö±Û"•×äSxsw ½È=ÕÝ>:ïññ!íùœ¡ÌSš˜Ñ­a¬Ô¤'Ðõ‚懘ݥ,ø=é®ï Ù µù×Ï;— ¢`%˜+Sý>{:ðK Bj_™P|!±vð§?’ EÛÁͲHÎ@=¹ þ«À8H½ü3µ¡Öng •ý>~•7õL_ÀU!ì´]M2gæÓ2*‘4@ ±{»Öñ NX¤ÀÛ®¨¿¶êñX¿÷:ß<[EñÅŒ`è#ƒSK”bÄ*Jêìï£ê~³2·4Ý‹¹Íüñ7æ€\;ÁUUÓÊÙœ;©JÉ *Y¦6ÎF§FIzÎÊÂl‹JŸ)ú0måÐL…îX<_ÞÜÝÄö°¨÷õ °x½Q]صµ­K¤ô‡QðˆÃc§ö[6˜Sõ±Wîí‚„Õü}\çrgÛnÄÿ[z–乘áGjC¢Ø"HByŠÁqÈàŸO½g,";ØK†•–z2´3­†B;gÄúT“Ƨìp€ )*FÇ6õÕgcE= ÔÒJߊR¹¥ñhÔÕGÑíhßpþú Ízüf2ðWZ‘–ÊÔU÷¡@Nüî6¡xëù°gÞöDyQt›XUoðø²å'æøge{#/¿#õŸàE"Ñp•pÈ#ü%íÑ`h–yØ›4—kϵfÚ¬ÉQ,Äkà®cÞ5£L´"5³~×aÍ7LÚþ§DäîÄüÿïö%±ÎZg¡L`—jXŸB\qXÑÊÕ4²:Qè· \ÏÈ`Tq…V¢8˜oÈ“UÕ·ÖcÊ0¯‹ŸÆf‰•Ï´nÌí­üƒÔi©qŠýÞcfø1‘(”‚’‰yBÈ…?@v}SÀ~À®¨¾Ä’‚¹óÁ#ñ¬&à!’-w༨Å7T ¹×DÕÒž5Z 9gføAެÞf>> ðϵ“€4§¸¨´µÙÌ¡œÐÕa6£B³ÙÚ)V|sZ—HgR!·zYNÝN1¯‰ËcÛ5„%ç\O쀪è{.Õ,å{­+¹U¹‡ÅZãâ ŒRÜ5©¿¦h™Šö¦¯ß–ÎwѲ]}á…RKû@ˆ?:’RåÝÝy¢D)h(M0üLµe&<§ç[ó Tx…®OfAµì`F³!ýœ÷28Pªgr°U2{ž@ö® 2Äp£aZ-ÃÐjRéâÛoç*”¥Hy™^¤¨ Q˜~„©Vé 5·8¥„Gª€«òÜ’(Rüêì:âì3o÷‡hã™45ÌŒ1ú‡¥.Uà­aûƒ–­ŠLgMúÒ>Óìð%=ÏŽŸ}1ª%æ"¬_>7¦,ÑRä ·³É¾ë5Õs`vøD7 DË $W1Ö»Ÿ7›mß™è¶ÈÀZˆ4‡öü6vv,k.@ñþT5'0t˜#"; =¢VšÌÖÒ;W˜®j¯de¯ÉÐ{Ýàꄾî)Á“¯¶.šŠ™D Ô×\&圮I7òÚµÅ5›³õséû /[=4§òJ,|bV?HFð»Á‚ƾG̹”Ôm/7®«/lO½Ö ÆF1Çnvž,£¦¨ÛžGýØÀšÿÓ—¿NÄDúªýÙü›Ýÿœ_ßaðb,¼Ašè€×¨ñÆæZý}åŸðh¢!ܪ °n_±ú÷ú0$äY ,šC{U–Ì0güL³~j«=†ôˆ€P:·}à–Bûµ ^r:^§ç)fÉgúC~eKIþû iícýÅ>shýQs\“Ü]ÿÉ>ƒIY5Iίµý ÚæøÙêY1q§{ø|lsãzàúBð^Cè° ~ßíÔX^©U“Ûký«ãökðã~»=/8V|ÅZÕQœJiÀ{£izV³W+)¤ÓªV”î¯ý¹gjÓZÕQóDN¦ƒ„BT+JGæº<\®9«éÉÁ†9BTbظœè-XdùüRüJ^/í©iQ9Êè‚mÌ ÂØš&z¨ÅnŒP, ¸ÃYˆéCÔŸÚªÑCýÀÙpéb¦er„5(’Ì^ vJ›¥$Lf ÇŠ$-ñ¼%êØÉ€ûµf Ø·Ò¥ Ñ7e¤»ggd%¯Ja?IDÄšÎ`ßÙbOQ…€¦×DêxWq ^S|·¦}3üKþŒ0ÚT{îGº!¥ÉñHn2WA¡_mú1­ÐJ‹g½g,L&u•dÈ¿ÎæG‡º”-}ªbNhúƒèéXí¢:´í^6ÔàÎøÃ|0fç}Ëy¤ÐZ 'ê¬òSÊ„DŠøü|­ݲýûbJë^ÊêOQ]£ÞJ/·*ñù2Rèî÷Ž:õì #§/¸½pŽ{U&/ébüÍά͖¨$Ù)–î\øÆ£ˆÿ¤5 Q›dRm_(Ñœñ7#O51S‰ˆ<4¾x,Íø*7eŠÀ•ú ýÜæ,b4Äêz©ÑKSVZh×8Wl­!²ïàdœÇæ°ü E†ï]X„{Q~WÉpá蜩F`Ú°!!©úEùÀmkà $/ÒÐ ••ð*³÷¸<@Ñ\Įۯ´Sƒ$"ì\‘bïØçÞªÛÇAÇü„óÀ1Dr6/¢üX=g-Pº²C°®—Õ+èsTëT—®&ÀL’ßi½ñ÷¥jþÃÖõ:Üä6•7Ýcþ4×F¢žÈÒNC²93á!Á°Èï¥;l6ÛyÒdtuDÆ›-J­Wd/S°°èÈo#ç¹™†§µÄ+Y‹§ž…3ÂÐ4ÎÁTVC"v‡¬ Žû[sTàÆ3eàJú@&ÏÆ«Æûä˪f5ñA_%Rîû3½xû‹ãJØ«j2h¢OOW•52ùô½X§öù±IÄÙ‡_†Q4næ8}3ÌàŽ\î•0ËtLñ+Q/þN²¸XüLÕe0Zõ%#†‚¯CÓ–ˆ7½•õÄ÷ö\Ÿ:ýó÷•æÔ1«vû šÞÒÝÏÜ0œXK¯dÑæ¢èÔ詜_ʲh´Š…+”ëÖuh2Nµ.+¬”B?¹ƒ%Z‰€¶‹íÍLf€õníöyÄ ~6IÈ€:f‹È·Ô§ #ßÔ³çm@aØø\`,|Üyk!LA”NKöÅÒïf†¶Ðö«óÊ ]HËÙKT§UDN \N OOBXøØ¬Kôd;” 4ÃdÙ »Yˆ*(¨À¾$ËýûfÜkPîË€ Œ’ãn¹¶5_2÷}‹ë(eüÆlÅ)4_r”ø(§&×GI AӿØ›°1ȼ~ËRœvå©I ŽìMå¾~¦2¥¦É”rjk‰.}N7ûÞÜM.#E¯ÿVÐO™zÕ´ºŒÁI² ÕDÞ©Ùªm$o·˜ËUÅ —pº ¨„¹<Þ¨¸ÌãP‰z*ëǤ…hiCÜ%VžKc—C§ZQä"äf§3†zÍÃ(ØÆÌäÿµóʤ`ýœa5¼¤<”x¦œq¯©#Úôw^l–ü‹T³Š®%"­#­kýBÙsVO¦ÔŸ%ü…ö¡ àV4TLG¸–{ÃW¾ºß rÿÎõ§ö:ö£ª£gçÇ8")¨ÛžE8; xÐòúi’ )üÆ5áª1ðHQ€ŸœMk>Ïj—~íÊWh0\B7¢‡ßŒ^ö¨Ô5Ø}˜=AÂEDÜŒgæÊ‘Zx½WE†Ðü°Ái«Õ:â[¿®…/[ÿ`\¥¬Ù a£$rE¥Â)˜ ‰9Ü•Ê=©¿ª”=y†›‹„tÐcj¾‘üç³q¸xJ~÷µ½åö-zÍ »\qÊ]éÝn¤Ù!F©„³þ^؃g¹m ÏT]qÃ…^ãXñåç,&3ËÀ@¹2Ù†ïQÍyÌÐ8—õ‭dÁ3qo]dünÎç<\ª4:˜†Ë’ÞÞæµ1Ì„ZpR9¿÷òÙâW›)©¥F–4x“ŠšÐ~Î]M*üI¢!leNŸdx•Ø3µ×]ž¢‰)¾UdÑeCPã<2¤µ„Æeõ”ÕÚ) w}rš¦ËOi´öZô“Ëóf½Æ«Ç_dFIRê¿°8ÜØo2Î ¨Ñ2, ˜oƒgåS…¿¥²~²uŽæ#=ô¢%7!|Ì ÕßT5¾<ày Ç²í¼ `±xÕ묓·\ X²nh?£Sœ+Úa=½^;П¹ìÞCjm"8 Qx¯WãÓîìÇ{¥˜Þ…G.¦Jã«^ŽAÓ€*ön›èËåÌÓaü5¡`½@FuÏd>=Ãoóp}8Ù6%\t ¾*«–ñˆ…fAHakZ?=!ü|¨¥h{¢S=bùÇ­õ™KòÒv£Q”j¸9%0WµjsŸ uì·;[(eK•—™!8£Ø¯I­ o ZýãèN­XŒ<“»Ó?ÄntÛ$ЇQ­DlÄ‘DËLç&C/9Œ(’†Keëßfãl ’Ú\v|ÀZÿ@·pã°Mõ ÍÀGF§ÞЏnaþ<{ân’Äñß5PòVš}+ÔÑ?Ÿ½^e[?YiîéOa…b…¸ëG²óÓ8ਡàÀMôÎzt8i*iôÿÞ‹*Á>cž¤ê‡KáÚË}Öæ‰O {9—Æâr"²t²~q¦‡£7Õˆ⯲é\…F“a˜¥N'iSwŸ’è t_™O|žÒ<¤ ¶ýŸ¢ßâüÊ<â€Ëös5pT¬bç~v¿–Óîî2[áÍN>ûH‹“¶.F\‘/ÔçÏdNÔp@$Z/­ÀÕ¾“ï>©—zþ±…ÓºC¦>Zê,Ã\† çsžgÁ¶-ˆ§mÃ@bû©u².¿B¶0,íæ½h*Y¬Bg¦Áš_ÑÓjÓ»º”ËŸƽڽ1ÝåðBŸT vÙ'ÓüÇÒè¢ —)‘k¨üL®kèì2¾.1.,#6ÛÙtê“G¸œïe¦„ cÔ7a«AFMo #ÇU‹?c 1‘Úz¼gíœs±ÚIÏò‹ÿ7° ¶õEYx Kg#+º(Égçyêè$$ùÁk/(éÊt¯$ì’ ¡`MçI.{F· ž Œ•óúÝÃn–bñ¦vÉq„:„+ùc>´a+QfGÆC2¸ÈUÅd—cßn` ë ãöªÀ^QüL¨Ÿ¤pØòS|pµÜŸtQIù‹ÂxÐäË}ßK¥*s¡¬yùgiÊJ£DvÎǬoL%,9ßäs8²a&ÊYT.¿¹ÞIyà#!”qŒ7z¬o®®Íõš‹Ž¤›U"œ»ÃÔ‰d®®¼­ÜÞí"Ž™û¨–œÏeSlųúû×ÿæ9Ý®Âs6Éía"ð ~Ô+Xù hLÙÙK/h÷"lø ÊÏ­uÑÁ6óÍûšð “Ò á0 èHŸZw•Ôl¢ôÛ> HœhNEqû|{~6XÆ£‹ û3¶è»ìbó¨ÓêªI‡Dò•5Ãå è#0ȼÓ>æÇÚ÷|Ôü1¶ãnûˆ[8_T%è#me)Ï$ìŠà"F,Uwú,¨8…“ÍsrÉ .^ðÙÖF–·ús›”±ê‚UÙûýV¤šˆ™<·Y¥x*ùWýÅßVfUwö–-6þ<µ[­#¹^Xý”*îK!º-¶š|'Õ”¿Ú:±Ç– ð îJ½Kù=QØMqŒ:›5†…o`ùÛ,³êOƒ°Õužå£gX¿‰&ÿ¡÷æÖ:R@zîœÍ,`ƒâ–ÊZè>? ]sÌ0‘¶d8·ÈRÙx ÿ*ŽÔ[>ÙµÜñÒ(3¢ù¬OþÅ2Z43ŒU>o¶*í2iN†ŒˆölŠ÷üIŸ,ß³?Ó*µœß®_Rá´ªä£\#“ mZK v„c èÔIÒujOïN Œ7$cI‚ŒJÒ[ðúLÜð|…ÿ•Ûù<Ò IˆJ¹j|<½ð<Ò A«°òú®¶.ˆæòÐeîÑ·×ݶ¿CQœ`m¡ª~ /ý!ƒg "£_ÊèÚÕœÀtü²™ºk¸Jù­A?s˜é6 kn†Äö!/®ôh­_ÀÚÑ%BÖ?åJ]øAIôð‘‹Å9W qàV§­ÜñTkË!З»Æ ŵpþ­´7ÀœôνJ®Èm ÍÃ}hÄÙsTHAO Ý'HpˆÂ}Pz¦«Át’Æð÷‘1]©üLÈà’n7+Ö‘<¿íJ@T} ìªkÁìÛO0¿g—)ã@4c¿=ûïLòh:ÄWì6ßq ½D'xÿX›4‰ú =aecWì¤âÚ _oèxËp¤†³Ùù.¤ZܳK3B‹ÜøâÄœ…´á+Ý‚`’Ù» Ž„ Zß–Ao˜-N-{ÿ9Vüûç×6<®š+õ!av:ÏúË”ŠrÚsd>fñyÙ.Q™&_ÝÛ‚.,ºé 6ïÆ âÆ±°NÐé—"9MÔ–•þWömFó'Žâ#ˆ4_µ-kÑž3÷åe¿jɉ¾?r¹M¸¹Ó?hÑ’òõq*ìœÁ2XL Yýì\¨¤ü|­|ºl¼&,vˆÿŽ>k-fXK&ÊYuÐè]<”Ã9ÉV’ÎXÚìÙ8›˜Oô3v,[°^Ùß„¨?…5ÊÞ\›¹ ò»‹è¤ÎÊ6'¸ B×Ò*º>\¥šuçþS(Ë¿ðŒ7Í,µ*QAk`<P]y€sá¹,rø$óÿ…F“ö}@g&å3 ãðÓeî>¿Ÿ×%Nö2ÙÛ’,vuÖø¤Ú±âN9FÈuZ#>š{E^=ÎËê° ül´C 4ì©—2d>¬èÉméóâ·‰Tr”¬J®ëºJÌ7#J~¥c&šëÛO«hxŠøñø4ó@z:£zìr¡B rYeâ.b€bat]Ðhà¬ Ë ·ç݃ïëì994,È“?Äïr…ÿ ߦà›,VÕçßYI£¬+‰ÿ+[E[YÉeÉߨ’·©3„h™ö…úµd+ÿ×õƒ!#¦ZÀ£¸gôÁêÛ%Cøùì—è–-ü_xü}\1…Dw¨›JißÒUE2v+&¿þ&ÿG|"£ë䢡¹3îFeß$âÚÖpÛS/æ}#ƒ½bZsˆw"‚:™˜FÉ 2”ÇéâiÖ½c“4—VÔìÚviB#Þp}`ïy¿ªHzã{{Ð[ú~ IAïpÞ$Ú¢ûÁì8Ä0µ~g,ż/4¢‚•¤‚%N' hÚÿ ƒ^©Àã}\JS0`%0RÈ–ïzEëyR"`é&âtxšmðVU2„8AÏmü?þSKàî¾ËM¥«< ;Ó6D¨áa~×ÎÍ~y»Úã°AÂ:»·„]/ùN6Úã ÷r+&Ëz Û héök»ÙGM%n*ùܬ Ye±tÍÉí«ËSœ#œ{Z!ao: ýi×$¿ºrðü“Ì›õ=*šìÕN8ÌuásÆ'€<ˆÆnUŒ:>³NÔx)zj= ù÷-(ÉôéIYmbä&3Ú¬ ô…š1›µêY@PàˆÉÛaüM™“¡®ÙꢇШ½÷ÉØjé+cacjo~@§™®È$?ðã«Q `;²¯×Qa(~)«ãaFŸº?·äV*^Ä+Òëàÿ…F¹+à1–šn‰ûAúTlÝz¸;ÎÔ?ÿà\Å¢ì‹cX‹kÑlÉ]ãÌõb¼±ÿh¥;” €wc@Ïz§‹[­ŸA,Âtøz~C9ÚÙD³»ö tûÍg;{|W„ p{Ø8ÁfuSÿÜç?LSàÞs„îë0N?C˜Ô€˜O”³Á¿¨ÿðdçbæ“XSæÏ!¢qÃ|˜¤öŸ/=«M&‹ñcé2Ü/F™ öYØD‚4ü’üLÂj‰ù`¾î§ðÀΠ抲K̉Q„º²Ü6VÍ´“\¦áÍÉAçð:9ËÝ™¤c‹=Ù³Ÿ¹×)æ¢Úg ¿?Oµ m!0E9ú|õGLFX)²Iåó! Mþe'lñMý½-µM±IµŽê=>C•ùU§+©-÷ÉùÒu¦OˆŠÍî~;‰T{îƒÓÑÓÄé¥@ÙpiÒY,3¶ÎÕMw¤ÓLO·5!Á×ÑpŸÎµ®2s PhÿðâQQÖ&úl*`Ú÷È^ã>¦9+ŽjÓîÚ2«[«è/—AÄ<çñ»Âœ`}QW³­(äAïáC`§Ák_ªÎOÇpüLã2fx0wi‡èõÄ£!a3¥K9гÄ|»c²½*`8q¦êiÂra8>œ×“së% 0Ë ([ÄÇçK!~òóÒи;¨G¼xrs¼: »Ñ©!žVŒw¥ñ»‹ÈIÇÄÜ’tæói™¸xØ¢±EE„kzÛ×t²ÓR°[ÌX¹í)ÄÁØ>‚?$Ÿ’ñ£;1Ö™c-Š u–ÎØûï_²àÛa€f—)ç•|ƒ ¶çíá,zv8JÊ´Êï^ŒÕ6Bs¬ýíZ1¼·+KµÆ|™QVeéU8ÀÊ.*H‰¶g¥ßu•‹ÝüM G'Ÿé÷þ“ÖWi?ØØÐŒTÃuˆÆ!)¸Zæ«ØNb<Ìâv% ùó²·<ÁKˆ…ðž éS˽}+îð>“ô¼÷K0`¥½$œÄáf’ôB]˜æw­ìbL•äN£ŸLȨSšÜR%›éÔÒ™:.xäý ¬T…AmS$µæÎ{›‹ÍŠ0üm"ÚV„‰JR#@ Ž*ûPÐQi¢Ûôàé=˜Z°*~Ï/ãžUuB¿A õ¢"}£ †NC¤m•CRýΓvcÒìÃg&úôäĚœ!NHöá;’ü58z6áRÆ,|8Câ 6Z ” dTƒúP ;¼Y™ ëQkÆ*Ϥs |\[T?–òÔß,¯“Xó„üLã’;K‹÷“‹dã­kˆ·ãë…20B˜Ÿéa7tªWê"ó6£ê±v‹<¯ þ|ª7ÍœƒhÝ"d_›Ä^v7¿oðL‰Ò†`‚®0ø¿ÞšíîÔ»= 9• •íÍÄŒ"@Ä ’ûc‹›½æ)Ü1Ê7á&‰âÃ6d[“=ª¿1s…¨{Gí­ ­[—°ŸQ¬q^ûzÓY—jÿ措|ÂÔ÷Œ þzÃü|¬ù@ߊu™kcÿ•a´ÁJ"Çwó¹>ôœîj„\ ¸×ys ̶*DuSÈ’=®ê`!n{ÞŸ5Ô·›@°I¨ˆVÖ#[Ñz_<×ÉAÜìÀV°R€yé{ƒírçÁ[sìee0a† ºÆIõ{Ó;*¯æ5<—¼G¼ŸçS§Íºp„f ²÷3HG@y=õÃ[VÔÄ~¹˜¹l¢Š¡U"„)ÖŠÛ=ÈÙøÐ•Þ!!­ü»é/alMÓ¿üÀ߇š|¢ î»ác—Ë J4z”}ñXͲ¦µ¡*ÉR@UðO‰ÂÇ·õlW¢ ØªUÙYô[Íß‘… €ùõ¢L€V/ n¥«N|ÐE©ê‰…‹•#4ÑïkÉèàˆ›œp¹)!m»ƒ‡ŽJá‡_dªq iTÿ—üÏ9ÚŸœôÏ®û3L pZJ-2—iÖ×¼#K^y”yÑÒöþ¨Š2ôý¡ÒÆ9¦£Ï20/ôìB´)œ$n ïÒB0UÁ I“ R®´ Š ŸNvÐ9ÁùÕy¤#ý2ð¹¹ÁqýƨÔ徦i‹äïyéQ)AîŒR ¥ÏòɈ¼¯ÇËzÖ®¹8âß;ml·6+ßÉ6Aü‹OggSý>¨äWMº²;ÜððõöðÿÚõíùýÿúÿÚÿ9ÚßæãߨÔäêëòôÿØáâßêòôÿÚÿ=ÔÕÞÕÕÿMÿ×ìéæÜèßüM*Dß7$(“Õ×'~}ůÑOS\å_:±Œ>óo \³…vkF†‡¼-t}Ÿ/3•6Á~jeÕëe:„o’>Ä'ôþ¿éöc„œK ¾>Ë vÖñ,sØÓÛFõ"Ž[;Á‚ã®ËȹTè›1-†o-ïô@­¡“y¯°‘åþùš¡qLÌOÁ]²2!ÂãfI ˜ s²Ç‡2-Èžj…ó…$üàYFjø69dß8òp;èÿŠðV´²Ûœ%˜«—vÓÊ,–‡¹pyö—e^öùY[üM%béèßUõ |Óº¶=u€ã¯ ‘çJº6»Œ 6|‚öî ,ý¬ãÓ£ÍÇas‰³n>az¯¨ e æ¤9ù9NWm=ÞjN'“Óyî¾+"¤=ëAA¸/´»:“:¥ض(éAÝÚj«í7ýBM»½-\.c_K+Ì Â pÓ•"vŒ”¾sLÁ¯‘úòd €J(™ÓÖ2‘eã‘õØø‡S¿q !ó¢/8”‡‚%ÄÑ(9 YY}%¤­dÀ`;£çMIF¬^Næ\?ö`Yåa6ñQ¦« cÊÓ0ØapT,®U9ôü± j{µ3áaO‚mÌ=n¸ü¯ÍåÊýõ›É7AÌ2Ðô907Ï€·½Ü/¡À¯Aö—cA„ b/“¦e÷í˜êÅÊQÑm½§šhpÜqòg‘9GȭЊŠÞ~#šØóc †ƒ)„~âgƒóçôFÍìèöÄ7é†çÖtFM=súæÚVÓÝÖ‹õÊÆƒŠ[ƒÒÊ‚RWvn0¾öIUº£ ±tJÎRì¡Q'A±‚#‚UÀQS„,ê>r[Cßò²'Úç1Ê-vÕJ¬N®FËÿü7ïÕ¿E>ito‘ˆüM2‰&ZôÜ‹r#FõÞ!‘µ[§VºÑªÎ"úw®Âº Á5þùy[Íð1M­ ©­¾(ûD`|¤ij·Ð°Ã5'el„+]Y 3Í"H:üºúJrϱ ~¬-¼çrÐà÷¥”#×tÑúœ¸¨Ö‘‹ÄÈMf¶¾µ7lìj9`à{Zê¸@ø°cýÚA;ctºåA`Øøœ¯@´”òƒÂ©"5Ë"! Ô@#ÑbŒ2„›@ò?fjýT* ùGÚÙ m›´˜=ëŸ%™ópøÈ…=)œÓïVÝ4×yº3—ìH£‹6 Q„5t@Vš­áü5b^^<Wø‡3ÓØHÚU»ÖDÁ\ëeu }n¢ö#“¤ÿk¸Gæ!µY—O‹^¶žÃõ‹~~‘kx’?H™¹G¿–ò¹G¨-Í 1̇zEúûoÐ!ý RÀ„ï¹EdôœwÑXîAÒ„¡ðáÔ4shïóU'vԌʋÂQYg›%_~á_0ì®Q2î/O5 x˜}©Ìã£\hЇ»ò­n?£ŃéwŒHìÍÈ&R=­c`ÃyÛ>ó±Ùã6¾)ÒM^¡‘0Q·ÜÁþG¾ÊüJ¡yÇ\sOá¨LŽw‘=`E¼ËÞ9T3%cZ(mIëÚð›6]oy{ÔFÐ`¦‚zªäY®zÑãD=EŠÅAçéô ˬSCu<žE¸¬´L&q|~1Û{ƒ;pFVÉ€#Ò>9K8Ж="9DæwªÙÝxíÊjÇeÈä@ç¹ô.žâi,=n÷¨¢¸HÏ]¥kÅÕ/æ%‡ÿÅ^§n>bS—÷¯ß¢×lüûÈ@T¿YÏURƒDÕ2ö̆L•-8rºÈ#¿l¼ýÎg,ò¹þoËÒy¤ŒËn9šÖ?e¦Q¢ü|¨€«=þ Y¡p©ÔKWϨÍ?‰å!»%·OG>ñú‚tjIÈ…>áYÚi¦ÿ’$ù›.Ë_ÈIl-:Ù–S‡jPÈd ê}@lÈm†HìêR-J³9>[ÅK,…ƒ‚Ff}GX°8øTýÜAÄö¯ 4‚C|«lÏ‚Æ â–Æ%RíÅbjîKÿÑÙÂ9cÎP¦Ë CˆõšÿX¸]…Kdèãù­ÿr»HÓùã²ÈÍÁKÑ ‹[Å»˹z(T;¦Ú}Ú¿¢qñ‰A?j˜¦Š‹.Ȩ_¥híiÄ?|É©£•@1V†©ø-Áѱù•)²œÝR©y»1óÕð=qùÞ_Â/o=ůb¯ø¶r·FÂGàvNmWÌØðrϼÂG8±%'áæ3ïÉ#C¤A¯™c1l}Í™F›­'nqTƒD€»±"²ëï`¯H¸àÜÚ¾tqÚ«>U}<§Ý-0e|ƒ—õÐÁ›õ"É(äûÊ~qí–_h[Wi%·ÆWžèRWÑ€Slª‹RP—=ÆæðÜ` tX9Y™öƒ+ærèǂ͑5Ϲj(qñ^Ä/Î4+N[-}Ö°ö–!¨îÓàüJ˜Ø p3Û5ƒd:Ò)¨sxBmÉ3ææµQíµã—Éè+áÄÓ˜} 9~ æÞúØká?”RyC‡Î;ŽOU‹²–žÙZoˆå<ÀÙͶ²m臗«¼E#GÆÛ£{Àò丑ØR° ­Þm4Š”ˆEßiŠüµÎc‚À~§Q0ò”½äJ ‡‡~4ÕK—‰R’v®hf¼›ý{`G²µKÔš*Sv˜\Ø~RžKç4Y±†üÞ%Õ|ÒÊlö®ä}Qý]Oâ'€ ' R öPZ¦9p°§‡íêãúÝ\ /«\Šÿ¿)nüM!Â?5lXÎ[|ÿê3ÉW:ƒBBž_yêñE{Fù3?Ëðê QsÁ9ùµÚþS&ðzÕuL§ bî:]Ç©t« \<3/hkÿêj&×ÐôÖ(a5{¾Ÿc-Ö©Ïu¥¦µ¾O¶ƒê»)7%ÞnÜx7×á’%u¥Ær­ íî%›µO}ºa›¯…ã©ëã±á(CäÌ•Ðö ?p þ^·”ÿÔ÷0/©:YJ– íG–5— š‚ÄD-SªiéH–`]ιJT§ß@%þ+mE¶(––ÚážcRC‹©óG3)¨ §ûØüJ]ü Æåot7Ø~ã…'g¨Ô’< Dh¾º@à6ËáòûùBê3¤ÃȘж ùV¢¢sü²ÜýÎ X÷±çÌ}°ÎRas_mMnBâ$N˧Ì`4¬–ØÍW\ ZýšÜoÈûAÐF¿ԕK†c*˜ê›nž¥‰»Ð]õ‡úzIJÖ­×C›Öó•Úÿ¶:u±«Ö§£ar¶»ÂÙZ=ç*û®i5)À{)uÇÌ3¾Ÿ¿Í}ú 5¶8£î¼‡3¶|=•`Âu²HiÝC«·”öpRáó÷ ] 9ŒtÑ÷ïaós·ƒ@y²+éüÄl»žŒ>k§îíE$’q…`ûÏí¡Ï ]CX»˜`Ë@Gs!òN¸;Lc(å%ƒ/EH½²¤×w£–E¯øÖjùaâ«6\êV:ÒŠÀÀ2#)Žº§|¦XaJoŠú–ޏܵ6€R 6*ê|-f7³Ès…¨˜ü­Ü#µÉ›zwÙÎÇ QÙ”½F?ÐÉÚºÕ ˆYfz(ïέs0Ù_ƒL©¾È®eb ªÛ$9,KÄËï’£H0qµÈWÀ¤Æ¨È¤Tižá‚òeYÈFÑîœ-¬yù£ï6Ã$Ú‚K(× Jé(iÄÞ€—OKè|)——L¡üÄqåw˜<£9ƒòÑ5Ü–vSª[Ÿ¼'µsh!Ú)ÙÑ⾜&RëÇ}C9ÅãEÎ5Å™Ÿ%…ÉÙúòäWªF¦˜àt+9°¨LhZ9¶E]QiE3¦¼Í nD$øŸ„ ½Ã"ƒj`œØpþõU»ßµrÊG#á äb¸Ü6mµÚEvÎ}JAŽÐη$E'e¥õ®¢ßÀµh H˜ 'ã’¯ÝÀ Ivœ·²D)*Ö5lÃ⣅c%W&yJüß 9s>ä쑞™!GH"{eQ'0n÷™ùz¦Î Ù%áßç‰̉(ñ /ÔWâ²€»ƒWª}¡ü1üž¾H 8J0°º|li¼‡róâ]ú»ü ˜­w¨VŠ Îfï“3eÊ·^i™OA-Î.8š†>«WfÁŠŠü|˜…µ|`ÜÆ¯§ø oÌzù%/h·ÇÁÎ0Ú¾&«?ì[9ÝðĽcþ`D%Xpk¾p:ßÄÀbÕ˜îb=â´i~Êvâw}}‘‘›ŠOr2à—õ¶þib¾gKÖ6º;óBfZe5olŒQ9‘Ù+©É~…‡AWöB Wâzˆ~x­–F~9£î^z™i|™~lþ^_L•J ê;.£~Äìa‹vÛ² }Ø@ êÚÓ œžË…X(cÎ-ßÛ®rˆ3V\¾˜Â+,“e¦›æ¼ÄDÜœöÑÆu»%ùp˜©äà)y®m¹ó䯺Äñ„nz'l>ªÊf9=[Ž÷òÁ|%5Eøa"~˳Ë«Ìí'ÜLý)»ÿ8ßMC+ŸIÏT¯J5ÿE$¥˜†[Tp„)fëNZÄ‚ð;ε† Ä~ÊÍhÀ?‘GE6iñjët;+ºÐ'JðáòÔˆOÂŒ-ò” ä–÷±ä³ñÙCœBÛ€M b2Ÿ+ñ$5Ã"òƒÌÌSSÒ|þêáuRÂÅ{7'f &õQn4 •¹.…Ï„.øˆpžö‹AŸóûWà¢I0³ïW =¢}Ó ê2³'‹1GvE½X'z;ûY“¨áø²b±Sõlª\"‹³qTð7(+½N’î¯{í ƒ{+-{Vh‹‡ô–w—ja!êë“è¯ûqxÜ–Î Vó³xK½À ©(ÿ­-/ïµf¹Ý¤Ì^äæ–†}ä@Ô‰°ý+yÛ*§ôtGGdÐÑn·¿ nÜ’ClÄáï¶”/R´‰¨=~+k±›M0¾kL¶=è”±Å]3çþS s¤Ö=:@ã÷‹wc•á¿PÐ1)0¼µø·ûÔg$¼]agwH£Fpéäúoò‹_6´{ _œËC¶ŒŒ’ æ<µïó7á}¦µû ]ÞĽ!®„Ô"}ãÁ„ˆ@±jt#ûÌ ÓçM¦~å±Bš'ˆUvbdo²ñ 1}[,¨"ZÖIµ”ˆH–ÈAÈ¥×èá®2ü.owU Ýw×…®¶ñ.!:„ˆÊÖAEx 3Œ3Ó†é–Äš(›Rs[K0¿ó/D6<çQ“»ºîË\Ì4 sýr³w>©áÇŠY©­Ñ¬§çvÃ\äˆëϦ<% (éÞ‘tT§œ¬E|¤(ÊèUøŸ/žŠÐj¬±ÎPLõ £N©ï]‡Î¯¶-Ü&"*(„Àÿê×ìôequóO>š¤"¤œò§_QiH÷‘d–°‹]5XA@Á§Ë?ÌdŠ ]ȪîÚžá‹í;Ð2pž(Õï8ʆKèm\pvÆ>9`ÿrÖ °g"¢»½Mxòj:á¡;RT.fvBäžØ‚8?§øÊêÞÂí“9D˼5Çt!Þñ]Ï“K„"kì\¬™ ¨Üu†ÿÜgjcûe§‚‰ß`Ó.Úy-ÀЛi,œt¸_QðÒlè„Уlgk/ç¸ÒO ¯[èróßEý|Fne0üÏV Ñ"®PüwW:Ëij“H¼Ï´*ž‡Ù+ô¯03¬$ã~üMZÿêª33Œ´ ÿz¢ÉXLx3WÙ#Ö±ŒmQÀ— æêQÄä­õ›¿}GµÀ|¡qìÁg¾×bÚçQ«;¢ŽÇK²‹:Û1½1B±û:^¨µ)x¥ÏÖqP¢¨£ãCÉ€Oµq£–Vt’ýàÿZ;†ÀîÞuío!ilàqÎHF¦ºò!uhÂq²NNÊó±ì‰#ðÖMŽ Md£"‘ 0³º¿Ð›WO÷Ð89D‰p¹›¹œÿÓh›Û}<Ç(04;'%-)+‹x}~Ï'n {rË6&4ÈY_üJÔ^D¿ çAæŠPj²hdˆôÇfZ®Œ‚jiW¾h±‘ð…¹)ÁñâÍ,H=JšÊ¸‡…rZ RsÕÅœŸ×‰£ÿ MÕPÜÎ6ù"j.rldî(Llµ-§¨ÊPg 7°©Y«VÆ©“lH»D¸‡ÿ±Ÿ¸âëÛQˆVz§AêkPÓ¤fÞóê 6/-mø8ðzÅÀ3„ä‘ÞÔåëï!6ù¢û®ÅL&ˆ?øûÜWŒ\P÷wCønvº0âí/#tnûfoŒ# •ý6ÀÐ}¶²—9½ºµ\)üL¯8†J¨>›/Á×Wâ‹›VÕý«çUPC~ƒûuiáþ®ú Çjô cÝþ›­ït‘'X¨|Šòꈾ Y9ñÔ‚ävÏB±@˜©÷Uî¶œ.dÊ»ÆÑ‘Ý©ÝÍuÄ;7¶5Ï®ÞRÛˆ™óãÃd6VüIûüèŠá cYaQuΖ¦›¸ ( l¹LŽ¢b<¾ÊËeç“«©u{j†ëm¶à$Èú ûþý'f š!1ÃÅ’Û†éü±¢ÔYé¦KTÙŒê]f/Ô[gR$åûÉIèõ>ˆ `šI]å‰ ‡ô$ÒíÃÞM]³ô3Ï/z, ì ›ÝÞàoö18gBh ÓÁ=m©–’\üɈs,Í%üœÈæB»ôj;’úF)7*î@ q@ìåýÐZëϾÚK>eã5ýá×ìüNQèaø>Ô‘Z$(‹â”8ØÐN{h³QІ¬{ÁÌ] "hóGoÙõó9½‰øó”,‘Ôä¢ú¨oán³Šy=ly‘[l;Ñ$‡èùd‘Ô4R”„-0S‰Ut\ <ùýª Š1‰¤jÞ7a#´7Ø=íÿ`¨ÆD ´&I™9^ÊPˆ¨‡1Õú÷©áTÞjÃÎ¥zkq³Âê#ZzC–†lލ.lIÇQá «ü ÔϘÿ÷5.Ìàòd¶ÁÔ’% ß ,ƒóÆÂ +e63³ÁÚ ¤½@»ÔLü1ƒ¬1^ø¸«ÄuýÕn7u›Á°SE€k“èáƒÊŸã«™™JÂKä¢NpA†˜h¦)ÙÒY%È¥îÏ9ô’öËÿ£[bC©›E¯–œ×x†ŒyÔ0ÞRûTÕsv™w‡q’ÎYÁ2"Z—rä\^@T-<Ý (³Š™Ÿ\Fu-ñ{–‡†‚{v¶*:ÃõîàBD“„Ñ“R•¢7!Дþžf©v¸ý½Ñ?䦘76™1:QÖ÷L¢§3W3ô†w?K ¡ì ëWU»Ð§‚c2º,°SËŸ¤ò¼‘h•×,ä±Ãkqp–Ml̪º 4üL¹RñîO6+w :½¡«”( žˆÚ®\Ç_ƒî£ªa²éã®Í_l䵿ƒLúÖ pÔÒ{¨"ÞI'µ•õ½·d8_`þ•OB›¥iZ¢h·!ýÁ±åxCb–„Ñça–n»YmŠM)zÀ¯°’?i@^-n—ÿš è9§š¹ru:3Ç– ²œŽ?6Nz͆5;w¿–d%:`’8% Ð,4Kúc´Ò *¿ö˜ûé¶œ—"GžXÖMðlÊcƒ%w—yÓGwŠ$ÔŠëÝ{ê˜û> )Ï›í³h·*ËãM?ú†¢ø·!¤4 ü6vvÞCš$jŸý¬'{õtx fÆ)ºqÝu³É999.àßvßhÜ$¡(„nK§A„Y³Ò:µÁß§…³ÁZN’×N– ¾ŒªU,AXРŸ;„I®ñĦ§ ‹AídòÙC؃`ÆÆN|ù E­«C´‚põ×2Óc˜ùÌÛ™õ—{duÒšH^ÅÙB¿\©N97£6Ѻ*ÕY&T4G:ÜÓólŸKI°7¢²Õ0"9ùe=ÑÉs»{öâÐÀ! Û}ýÙÐ¥B>žß¶K7}PÃ(zÏÆ/iEŒ$¿ºŸßõ§ ”¤üJ›7Ï( 3ž9Ãde$­wT)æÊÀâ•(R”Jh¢#};Câ­»T Þâ¤óšÀÇüië–gÁÔ;i‡ŽCÄ=ÍQGÓœŽÿS©ÜQ2QvD¿‰ 8æ(GþÀ¬›’Ësà})º‰÷ q™T-fÙ±N}wÔ«,þé:kš£CY‹î^—œ› ©s¯G¡¡ŸìÜ㔩ñ!àvL 1W͓̉_þ"Ô¦·Ú#tBé ÿã0к.“+<.D*Ð7œvµÿ}þ+ã¸hDƒ¢ïkôt}xDÒ$p6Dx´Wí9ûü|­'ýÕÓòPùbïµèUï Û®3òý’>gòMõêU×´_mËTÃçc/•¯œXˆlGU±_Ëh gÈ®_ªš’Ø õSŽâÙÍ¿Ið,¤à |†­Öd˜%xçKü;²Üq¥ï·ð«ökÊg:+ô ¹'³3Ü÷°Äu›aÊñûUMceú4‡gJ¶=ÙR ~_z:æ"2 œAf2&¢ÍÆfЕ*¿G!Ôìj¾ZnG~Å_¸°téœ#Òƒ•?ö–¤d2¦aasî3ÆryfêÅþÔ²Em0-bÖT‹‘ß›9s¯y{e_zr\”!"„Ø®‰ÖþXèž`ärM`íê‡vmHÞ-ª…B2$ˆ®U‹o¤=åÐ@SªwÑŒýÝdR7¸m÷ ùñÛG錦•²é÷/)•¥ ‹¤œhÞÕTõ™¦´€$‹™õkµäZŽ”?¥ ÂôX›ÞØÿȳG¶€u]:6myÎ'ŸŠ B­Ù 'D‘.g ºå˜ó/^1U5’Ð>3Á%Ðê[w_¹à7ÉRÞÑ©‡ZÞÓ“¼9Ù%]  éúǘ¨A†þHxeU«±ìfìKÓg?º›²1&5ï¼ÎS£¸h¼xÇ t´±Ú†N´üL°—z?1·•Ø;—%sÙ°å‚ÑØûg{‚ì—;Š©’A´‹C–1­R—„aÃêRò¿ÒÉd(Š5.u!Dm¢Ùê`"J°3äùÞðâ§~v/†Ìx!dÂÊÀ•±S!üÅ1åjZÑ÷¤G¬»Œû^mëÞÇgÑB![ô”á…Ûý¸tñއç«ghn‹±MmºÄ‹U êHÉîLÙ4åTÂú’%ñA° (½¨:Ä’ˆE[5KÛ“#NÛ 0£«ºkÌ©M)ñ ÷Ô=»3¦ùÍW,¦¾ýiÅ!­ÁËÙ$ãíyO×wk‰'Hw1º@O:z¢V(ÄqŠtúP}ô]°~¾LÃ"/ ¬SKߺlqéýÅÔå±e“³GxÈ7÷Žâ¯^.Ë0žgFYÓÝR0)3/:eÇ;_ÚYñð'{À_„•¤BJè=K?6óI–üŠCetI'ƒnìAbpU­*óf†÷~ú@šõ¨ãSjøìnÉh¢j¾ú 3"†÷/â¡ó¢Uá{ÊÔ±&ãM‘û¡ >eÃüÆcŒü:p:3)Ì}ïKÎÆÍÕß¼ë€|Xd/ÿ<Ù Àƒö®`*ƒOã‹—qP¯ˆÔbzrÜÛ'X¥j‘«h9?Ó¤U)! xû³»V ¦Èsäñ„Ÿ8hÞZÜäVÍ®zäŸQø&íÚv*5GÛQi_±š—çŠB„ª1Ÿ·_zKS+y¿J_°u?›˜Ÿü~Ìj£ŠHÉWøä?)(Ð0¸S̈~¨‚ÝŽP¾â¯-u™%({À¨&Jé›y« ‹˜× Ó1 %åß— µ¹]T,"G ˜ZdŽoþ×Ùç­M!ü51Ô1Úxþ Ìð “:ytò9=dKîj¥ð§^ƒFa3vÐ ¬¹Púíƒqi݉ï®qÌoØêC¼xX²HЙ-2Iªž çœÂ5Y±ÉgJ´ŸÝ2×°åÛz&"CvùùÁ˜ ç4ƒT°x±éÁáˆk‹O……êaïþ®§õ<4öD|G~™å¾¥‚Y43÷Úzôî¸YNõ{Äs*€^G•þž»¨KšFß?# KÓùÓæ¥ÍðV”­ûþ9„’GYjµP±©\eUgXUôäbqÒ¥ö¿•+0ízëBnbj·Ö¨o_ü™xJi-دjý‰!ìÛ£jÛ (õ&J3kdn©M¦‹8¡3‘S£tüÒSÁ°\,Jš:œD¼¶é ”ˆ«ý5#ÕÁ_À;2·\ÁÁ.ú(–hg3úLµu<>ü|©¦ YPY橈wþV¿¶œ¨¯Ô]`€b¨öˆ]XCú¿uJ…Hg%תbÍU÷É“\µr¸÷ά¤˜xµÆW•©ÖÞ¸\#К<ôHÎ$eÄ-êc¢Ë»"±·$1ôk_oŠÉ©Œ¤A&ÿ'%KËwóÒ^‘›Ô}@]î[²TéG1”O%ˆÛ2~°üNö³N­¹Îì÷,¹ lèk¶gï–Äáf€Íz±+ÞÙ5†jLÁ3!Þb)dÖ\h±ÿ,<ÒCþ>ó;Dõ©øš:Y8fd$’­æ>‡J2oà®ôq§2“J¶µBþqhœÝ¬ œ||SÈ”ê `Fi N'×"™ìc8Žü´Ò»‘RôUÏÇÙšê—Ŗ®²Ùþò–á ?>#”YÛCšê†€n ›`ÿfY£m€Î˜êŸEþnÕÐê:«–ì.ÇõzP>ö™i`®f,2χ$—ïâ´>µ&FZ˜,½¾Wfp ÙžêÛt=€­Ńñjcý[Î4qa„kb¿EoZ^d^$AŽÒ§LX@ …b‹“ê0—ñ™W Ž^²î“4²8!æ/Õ¹HŒmãar !¯YÊd)²e)ü|ž †([ámB´SI Œ^üp=Ã# ’j»œ¨}!„$AÊmÒ@tÔpN±_`ºÐ¸cd˜•ÞP°”e—-YZææqe =üǶ´`X—î»Öï,›I†üªöJ·ü•_R. F7¾ „Jt*Ã2^päÖÔMe ¡0DjÌJñ 6b->ºEÆÍÖ!A g.IWmSëÇïo‰S/€1vd¡60™2™¯·Œ€S—ÍQuW¨sóѾòüßìÚGÌ@­>ªøâ:Âðÿ'94€Ž;»pþ÷ª<²ù’ש¾Bcï o%ÛÁÝ5©Å;™A×%ûææt×´- CB>£xº¯t)®üM”ìŸ{ÆÔ, ¼ÌˆQ¥hɋ߸Oò‡9”â©ÙiQŠå¨°oéà¡z=NÑ*”]ÛÁ+õΫ‡·7ÿ›`¿ÖYYvÍíM¥—ç²urŸ¶p%WBH‰úsžpSp‰Ý Éçì˽,\Ùã’GƒY~^ ^8”h’º)8s–×õi;4ª]—˜†Ê9¹Ñ¶Lå|Ò1HÔpJ£ç=}ýæ§ùCÛŠ‘¸v¥æ )œ´Ý5~ÿg—¹Ž&+Ö(o·F¬9ºbæ”W—ºLáüMbó“Î.ÈB÷CÎ>dƒs96®än ©'<)×¾à™´#¶Á4™Q2¢DÕµ·æ˜kA¬6H'xÛ*¸paL½û‡‘£8ý£Ÿ€â¶®%½Ý̪¶°’«#«S€¨ÑÁ´Ëöú7ã°µy‘BrwŒ¥|ÕimŸ §Zå7ѱ2"Žó–ô¨(ˆ½ˆÐ_êñoĸ0,ÃAÖÖ`ÆhçRZ"žš—€ßѧm–à004Òª¼GÄ ˜hGÛLâ4æ²C{5üMbìÌõ»ØÕâßOx=XîuÁW¦Í r„Î|½ƒIwÖ'ñ„Ê79´‡JÈ4 5Á¡(× óÛ–ºr8œ´¬O±ŒÛuF­JÎß-@æ>±w@+ç!š¦¥<¸¼º¾ÏòãUzö Óü™Y õ´ Ò í½@Œ¢ž=ê•f<.FfIzIƒ [ìq²¢kf‰q‘–]9¬ÙR>ÔTW‡Cù 3¬±™óêŸq÷üž :‰X!¤¾‘…¿#Ä ,Âì7…E>á=¬ýG5ñ)î|P¥¾ü2l‚¦ÎãúL ç 1µLènÂûOQ5}\8ŠÿAyÃþ®Ù ïNëäÙ[5ÉÅâüW\U1Ë®ÐÓ+‚üô§”bpÚäÁµ'tÄŸ°Ò°ËwÎbº=¦ÉÒÕùÕ0öÓ—óÇn6S>Ý Zåâ¢ï ²î X)ên¤Ÿf…fºÕˆ v@Ró€,»Ô†ôM§’sÒçvšábùýþ©Y4ÒxoUgŠe¿8@ãœ}5ÊÜåY÷`è>¹<û@®dŸ2fçã$Wë7ÛXál2w¨…püMbiÝ“ }ÎÖ›c²ÕHÀ hï¥h\ã®uƾBD M8æãŽö8Ý)ÆXæÝÕQ]àâÇ@lðâ^©räzÐ`k÷è*6Íü‡Úýtýçš&¤˜n¯ò&™Å)!¢Ë€’]//ÔXqJ]é ˆ¿7C½ÞèÜJókÖÓ™Ü}›•Æ•‘EîÊö鲜-Qî}h/ó™Þ¢íP5‚+Kw“¼O>øÚ¶¢¨ËºÕ)4r> ZIÐQûU±ƒXå’I1þ¿´¢¡ +ü{7kõ"ñK×Çù>A4Ã5~  ]^ň4à Â¶êitç6ëÛÓ™CBä¿|b3§8[™Õoÿ'çä»&´m€4Uê¿nÃæGr “éq‹Ô46.7:]6¦YÜJ`…Û«àÚbV$""„žm³hOÔ‚>`d÷F%‡$Ô~¯wÖ÷†¨Ù´n¬§¯7Àm25Õw·Z¥äBã\Šsb †î*AëÐr•Q³½…ø4ç`²%€“ë§©Fü˜M _¥ø³ø®»º»r•9”—ü®O Z?‚p -JF£ÄýfpÏ骭ñ$ivEq}8*S(¨)êÝ,z‹ê0MÚ™-åMA¸¼ »Ôp n—ªÐÊêñs9t•—¦¥Ý½Ÿ?DXš¤M™4«Q"/²B¼[ùº¾•Š ¯üJ[»†_ü#z£¶¶*$Ž“)ᵑRŒú†÷›hÌòl¾Àc Ø›JøªÅûõ¿ædJ‰båÑýpýf}EtW©8Sù#èVAbMcî°C®šÁ|‚¸óc¨t û¨ Fàšôáø¡2¯=ö]aŒyJ6ÕB¢æÈG—eeêIù¿ ,J¬le²ì–‰›ãæ(¼Áœ°yü«4‡Ì[8M,u°âÎLÚ²ôÎOـΚŽêäˆÀ°ØåíL…lAÊëœu¯?"Nøe易J2ñ*É'†w²v»-;…Ê1¾¾ ÙÔáç*™]Áï¡È(—WW9‰Œ·Ø`H n¶¨Xü‡VŸ÷w±aÖ-lÁªš¼’p ãÜi‚6ç9 –pÆ…®;¸¡¾˜„(qeÖˆB¬ÛÄyÁÆ#{Ç)áÑiéoÉË‹ _Ðç2wÓ½•ZNîõ’ ÷§XS‰H.)[¢”Šô®HmÓ–¾O5ôï³C8DJZÖ‘˜ØÙ0Ð@Jj6‹¹FŽÕ§b±i¡Û^ EŒÓ±ðY>Ç¥Y ˜R~ƒs«ÑS:;î´ôv³T.‚h6é[Bkåê)DÏ}³U¾’Bé›2¥m\@. ‘­2ŠBüñÉ~j]Œ £^¨×Ua©›å(i@R±ú2 LõdÅÄ|ƒ™’× Ÿ È·zÎŽ­3°"½ï!ÁNZ;C>¾°²æl>µp /MÝôTe ùà€—rpßä;àèF„IòX„´Þ‰Ý+â>ßÅ4ÂJH˜)Nó§ý5UaÓƒK"Æ2¯òBór—ÄðìYäµbž‡Ñš+(Ї`1ÈìVo»³õªa](Öí\sÛ$ÃOE/~(ú'f<›uéÝ=š.½Kø‰)=[Ï’¬ ¶Ø‘+ˆ¹rü¥ õôI|N4E»Ž¥K¶Ûüï% ¨ÔˆÒ8OáCv1tÚ2ƈ6­`Cý›m5—o‹MÔ.§xÜŠÐ*Dt &P_üRtõüëöõ)‹Í’eßù%V¾x^ÞÇKºŸý=Bâ+*ËkóPzY4vÕ¸? Z¼µ½µ)ã„LÒm<î6ÉEcSÎZ«¥•¼]33+ $I»(б]KÙב=Iá¶½¿CÌïQóF;ŸLPŠ÷q ˆ$«{Ï;ëiXpð…Ù@]{R±HrÉe$f~Æ6;º}]‹ŸECgêº °%óH;eíœ(é £·Ón2gxfÝüðËëíj* Š1ìÉ.ºǢl)'G>W™Â}žPIœf1‰<ˆdEÊã‘÷ýjJ~ZÏ5t—®ZýÒþíAçƒÆ°´¦ÛÁ2ã#½Ã•ÛλãåRŠ06U Â Òêá¦SÊ€MŸ—sØwCÈ–¯¿VÀt÷þPÛUØ­§,ýŒV¶J4 År0 ´þÚgßÓßÿzûÎAfþã™ p¢e@ñì‰{œ$¸PkÒ ê-eÜ<‰ŠHO“ÙoA½ŠœVæÇ^¢Ow-Q da&ÙĨۑÈÝÆ:•Bïs×'¯Ûüñ µäóLPrÛa§¢«eÙqdRhßëÔpöKÄÙyJæiâb_ž¢„ãÞ²×PÇX#*° üÅÇFS¿ðyÏÙ%ÌÝ&£kkÎjÞ·Oä:nMŸõ–/ÔÖûe‹x«k!£U(x–«@q‚°Õ-„ÍAÜxŸßØ×ÉVCõôƒnÈiÀ9ÙûéR.”¢gd|©<X'顼üâ…ÐpI¶îÄ"]úç(Y¿žî˜¬@‰ö×VqçUyk(‰¢jÛî&s~é#O¤Ù¢S}î;¤ow}/1%üî~@’ÙÓ ‚3zÕž_ŒO§[%Gä’KþXªCÈ«ŠÓ ˜Uú³ ó™m¢e…oª‘'Ì^`‘É6HªAèr5 ¿î_f¼ AðÓp2¼3Œ3Žd¬E{Ç~çúÑ:8 F?æKü)ÿ `°kÔ.¤ØÆhúc¶‡Tµ›,ØÔ‘‹|Zþ«@Á´øš0mŠûLRs«zDœ#È,ôã4.f3*k«c-­Ñ˜Þèƒ0«îx¶:+8¨ ¾«Â ×Š¿&ÿX-Ïn$ÝèòÃVÛ\³ˆç±› [Œ¡*swc®&ÞôÝüMy~ßTÆ Iéëþ›¤Mxà!̵v ¼Þ<uJ9Åü×%×l‚²ú®æÕü6<"ªúÿ›æ£ìÉç/:ÒD’¼íÔæžlàwW3q«ó1º’f4uIÄ3ÞÓ/±êÎÐG褸^[NCíƒIrjÌsþ5˜19*ç0³#H”òuf kY2Y&U)•ÏŸÞI;|ŽCè§%è_bÔý6@ðÕä(W2©¤Ä‡IoXŠ/݉öñஃ RV¨Ý @8èÊéèàǤVËdæáBþ·çù-Š÷b’òµ`YZOggS€¸?¨äXÁñŒ<àðìíèÿÙÚáááäåÿÍÚÝãêîæÿÓÿ>ÑÒÓÒÓÔÖÒÝÞÜäÿÉÿØëäâãÿÎÿèáîçéÿØÿåüIå‡!.T}ö¡“ûw0RºvÎÕüí;0úêZ7©u¶Þra,YVײSxd r&N„úÚmËÓsà_=Ñ‚°æN!Òø×XšB-Ô‘jR|kš÷¨–$ßó­ºéùr–h¦U‚-ús 1'Mv˜ePÇì_0Æ!tݶv†7wn¯ ž5Í@övð)}'@=0‘¢b¡T]ßt†ÊÒya,¶ˆ™ åëþB\-¢ÝJü¢ËLÄ/ðüo· Å!œ‰gãÆCP5Êáû)¯“ä qÝȨг6s–/üî¿ïf"ÓL ÒÕ æ afbh” DÏXN ã·³’t*.b ø1äˆ29ø±( ®‡O«Ä?CRL^Ö`Gñ‚õòªù¼TáÍÜ7Áyñ&ÿÚf¿ã¥ü¢Ô¢ëÊy“'/£ÿÃYŸ¼CªPp¼|é*ûÖfU?#ö2ɶxw¬d.dÓÁ†]ƒ§Éþ±;Ó0¡eJ³]"ñòšò·:0Q¥”Kë–?Й½cS0ü;¶˜póf/—>Y'Ó2SL·v”@`ûw–/.Oþ7?±BØ Á4,(þ/}Ã:yí~rìr 0dãüIí¦×°¿†d£s*¼Úµeƒ+ƒø9“@S÷@®KçæzëÂÉ/ °Émsc§"k{äJ–ιhÔ™m½¼c|uÂD¸—vËÎq?:ÄÖéb‰”ZiXf«e±¨He!fÚµ~\7lç6J8R¹4\‰¤—{ó€•nx‰×.£ý‚ðfŸ[ØB¹Âý{¿Jô´5Æy ˆú©çŸÙA—*¼-zi/“3Š¿8¸$ÌO X펌9€åLÞ”öa‘ên%? âž • ”g ›Šz”µ ¬dˆÎ"€ªÆÐA„ï$¬ÂéüL¬+¯ ˜;Ã^úì=·IAnxA9zY –{Ç[ŽwßþȨ\+-JïE“B×htæ–q¦¥Añº«UrïØ~x~“à—’ çC5wa$-dþêHhŠ\3 PšGÒ¾Ü=p–ùò1Ú †)¢æl-Š< ”8™auERá~Á¢%„ŒR5{ä`ÁÛbÍ pýtZiÔ3ö†ˆ9T†ÊT²?¿‹I^qbìWÙ3¿H]cSw[œÓ(OŒ6ÿ U£íñùƒÎHƒ[sAeêh‚­oB[öât„lÅúåífyü JüJ ¢²9 %.Dø,ËúnÁwÛûÓrÿÞË7»K¸¶(d´•ÈÃ×þÜ¡ZUdnøú/Ã^¨Ùœ+ò5¥д»ÆxQµ¢†E›pªÈ æ­ˆu;éÅêT†ƒ3ˆœa+¹i·¨ÙO2ü´ ƒ¹wñè*R=“3ó!.ªû§Íé+pò_}œ„Ô*ç¦c;à€$l`ÒñËöúä†"Ö@½HË*rR/‡˜l¿\Jáq¼}(E ºM SÐÊ®6³šOn‹¶²LžñýYJ‘8Ê,[üõ BŒöS‰êŠÐ&›ÂL„òù…pŸÇr’¨$/ëùHϬ<ô^@ÝDøÅ¯¸âqç)U#¢O·F꥜‘tº,èL´wæëà £»pnU4ÝIGµ½6ÄöäL†M‰— ýÍ×›JLô¦GO;"©Ì›òÑá »PýaÆRb  ŒÕµŽ#Ñy•'ô$mo¯é‰½OâQÍ)ð;›1Ÿã˜Ÿ¶™,ÚùKˆa÷V'c2ŠW.b÷ÉT,#_š=#ȧBïÀ†“@üé¬hw/LÆø¯œÿÃŒÉ^±BOë:AÖ$Üê¶õŽŠ¢éÛ®.ýÖ,ŒpÖ F¼±FSüª¡ˆ8GØ=bŒiTkb»ü‘¾³Eô—ý'è3¦¸NöúÛGY ÷ïõsVÎ|M’Ç¡ë&ýE6Þÿž/yÕ˜ð×®©UVŠ¿Îƒ©ÙW'G‘2üpCÒ·ü Þ:ìÕqáN6ð±Øà~‰Á<ÝÞ2~4t¨¬@6þmˆVPÕû3Nôƒ_·Ý£-òåe5ù…Í@þ›K$> ÂSV8€ÙÌ‚­ZÊþ}}ÍBJgq(Í&ìÆœGñè@¾éš¨ñl!³é÷8 î$ÃÀ“þŸ¤7 Mo.íò(žÊ‚Äì=%Eˆ¤µJ5gLm— Tíímç ££…/¿>ç6À#æ…¾ó:ø•»#ê¹WŸ '®ºwâñÀº×G‹ª–§ §AÚ$³^Y¹ÅŸ²8[è#"ı7*T}ØOèæ°²3Æ€?ósl½Qݦ\[gì Ì—,ˆ%@ãÒþÉÌ ð²ð‡Zx°sEò¡ ¦¸¸šmªmDKd†9©¦n ;³ðQ¤ú&5†±Ï}õÝ$0wþ{YæÓf4ìµà~ëÙWæ×ž»ÕÑ#=tVirÊóÁÆëÈÔ¡S¯ÐsœµluÐz#çb€À¢ã }ç1fó~5[¹©JÛð ǦZoüß·­^¢k’$“þ¥"vîñÔÊ·gvÿ¦}IÆ~©ðÔVd|Ÿ#)™ Ìšø${ôHÑíäCøù¹¼ÚŸSíZøáÔÏ®f`z®†¶P> ý6ª9·mj9¦›¤'1XgR­sœq«¯‚.qÎÌ%ß_”9w¡î ™Ý¶¿|…ÅÇu’[ïaº˜[¹`'Ó‰žw_â[ƒ;NOÿ­2­Tµýœw<-ƒpE£íÒ®Þ$xã¥*ÒV ô«?85 ³øE¿Æþå0—]~$Äæ±ËÕGy¥ìÖ¥_ç<»¦yGäë‚H8ùÄÖ<ÈÀsþú2õ­ÎÁä:Yníƒó‹%°ò]TyæÃ¨ÑØŸ0`Sç(ˆcòÍ(PõœÆ4M©ŠNdĤ½ÊÅ<_ô\¯”äØF*F´³ó…Š1¨.Ò½ÌyB€ –f3‚Ðü9ùE"à7ìá?7ód í¿ŸÁÝj…ÕL"ðÔîcö¾ôá-¬3=oýˆ’Êq¼¯ë˜üTÐó÷ õ§3Ö“vÀ«§³Qñ[Ä¡¬ë—¦iCŽ»S¬½<¸©yp4ñž•Ü_)¬{ª£AñU.⤘ujnüMÈKF€ÍÌu6q“âp,öP(”?Ê*üûÄófõÈ"9œdÂÖ;ã ­Ž"ê“xÉ8‰—¶úMµÍèn*ÿ?/9šl²96\*œðºót¾]„¼Çé3 E8ÖÀ­-P®á”~TЬ2K† ü¢ÐŽn0'ϪÒÂU~x¡Ø¿ó¼u"ïpCÐ4å\:Å-0úAnž  ‰ÈÒƒÂPíž½%à&Ùê‘éb4ºsú”Ž[­¹?ÕSjjˆÙ¶ç÷Óâø+T‹¯G¼ðüLªEåpôïø:zx¶FŠéCôæôz÷ô¨~TT$$e£Ì2É—´rZ {çðí„1_ùæ n’ˆ‚ÿû¯„¢Ù »ß@·¬Õ%ñðËS¯?8'¾y ˜¹õÀÉ=NµGþ¨¿ENM~/üß6„Veº…Bá^}…¡ÓຠúØ­cínp6½Ç½2!ûŠÅnÅ-ˆñÁÅLî÷yúÂqߎFcªÊø ƒv6¹`韉ËdòÖ.ŠRA®Ó uzâë==†(ý^˜z¯§P ÅÝ›E!ýAüL«Þo]sCøpbDqáôqf¢Xø €dV[QËØ Å v2®M̧ aƒÂ?'Ätòû ÃÚ»¿ž¼«~"s1QBØzýºŠÚµEo!É$a´•)pÄÔ¹â_Ê}6Ë.`êü&Dî°éž@#t±vH_ ܹŠD`‰ –hK¹ørÍÆl’6°ý™ 1/ÛÜc¨C]ŽÐ3Ëñd^~œ"O"¶åõ²²K=NÖ8/˜_)ú’s«µ{*¹d—³•ƒo8€a'VäuÏå›[p6—\@´±UŽ%0üÛ·^û™gž2vuµ¨ñCK%…>ºíÏìâÄ©ÂmгwîÚ÷;+äshO¬‚’Ù{Åš{1Ã{%CŽk£ÓÑk)<¬}žq™+ –FCh³ö¨Œ,;bî,!ðP;Ù”‘¶HáügÑòEÿqÉ©t¡x"6Ô^:oêh#¯„’Ñç2’™qÓjbÉ;°+¾\Ð%ȨôD‘”‡Íÿºûv–4äÃï½ÎÄ’mk¶1G.ÏÐ1ö…o®{Dãe±Ä,]£wzCæ¶õ´ À>yý˜†%‚ËlåÖiö^b¢*4JoüÛ¸ëwdš[íŠ|þ¢b¨’26J ´fÿ1Z*¾ÕQ’}¼Qõ`Æ –4Ñ×Ψ^Êd|Ë^í˜Ù?vwÏY/…Ø „z¦)|“:ã8´«?•Ô\íÛ×(TCqÀ&}þ6~r¤…÷X0åÒ·ÂÉoéZ›è6¹ÛŠªº‡¥Š¨½#«ß™=úæy›Yõ×j˜ÂÂ¥“›èüý´§Í¸¾k\L±™Ñd]Û‹Ñ^駱*_éñó3’îó:À¢7– I‡Á庾ðÃe“qн:“×@§lÄœ^ ¬ nüMO²XB¾¡×†·Ö±9gk‹ˆÚ4«®^`CÁÖ6&;Ù¯b7‡Û)dÛ;P³€@ -Ž@ßFÏûÄS<îR"ŽŒC)Œ«Ï„:?5ðÅ•Þé«xÒöåÌÌÂJÛ6KåX2€vFÇ6y<´^¼‘hbž{Ò,²Ì}­ œ“ø1ŸPÓÆù¡Á¢ŒªkÓCtTF¨<4Hsy®6Žëw¼¿º»ñÛ•ãÈÂð™—£ojPùKa-Uò#}±!©Ž"kwñÞQ¨o°"wÉÝ(eð™0¸]k™Å“´¼S]!Éüõ 3r,Ú‚žž¤¤ ÃÃÔÂKà€|«¨o4í¹C¢K‚ǯ–þ3"AîÄÛåò3O ßLP¶ëãÅJ$C=((\âdqøÅRŠ’ÏôêÝó6œ£rÜúÑ ¤eå"€ÊÓR`™îÖ øÚ#!f%Ÿƒwí ÈØ˜Ö=÷›Wv"po°Î³A†CšleÒÙ_Y­ßºô ZÝÿuzL£èGœÏ÷Á3rŸH®×]¨õa$xÛô[ËÚÂÞó穊„ݳyò/»ùæ3çz]¯ßûïÄ÷ʼòÛ•vå†Ìî‚ ~¿í‘ìYŸÊEÝ3¤&¤6$4V ‚¥‰.Z™xýãQˆl½ÒðósG¿&Fj!zAzºÁè8Hcaм;[gƒ3‚å²GÓc=øKn!“vŽ‘ŒIÝɰ4Lb\ny¬85—)Ź4"ÙýY$Þ?í.ÜJ{ƒªqL¹Å“w‰GPõ`›”q÷Z®±M¸ÉJ"ÍU4·uªL/ -ßá{7Mÿ%µE–ùš"±ˆÿîÎwhÞLçØÙ ´ < [µbžåU’ï¤gÔÕr´}‹ëH&Û½c£¤×;8°+T¢Ýü|®5¹!Ð÷—¥äò’Ù %ÏË>kÓ-y)ØòcŒ™m» |'5`Ó×êF]ÀÑâÌMê¥e,ïé&;bŠ¢……\m9¨–öY¥ÖÖ•¶×õ‰Añ)‡Â„“Lz G—ë®q‡JþUå¡L –çPý«Æ»¥LDÁt·_¨P¬*¸íhqtš«Ù¡éd ¦t*9Žg-Ø„Ð-üI÷êjÖ»ÀCÔã›ò¿&HÃ¥÷3ØípZbDy fU š¶y#/ÅMè쵕EŠ[ÕÖrP>¾ÓaÒlN‚é Ž ¯ŸM½~¶Áš:ÚV˜ñìCÎo.Qz|:ì3‰±902”beÅ$ ëYÕ^iZc¦1#}1ì°#,æÙ4Óf;qïÃ×Ü_ÖâÿwW•C‰qŽ) qº6XĤüLϵ :³X¿¸]5KîN¬%›6©ÙòçHQ{ë†ZèÞ–-¶ZÛøØUÜF›Ð§§z÷û¨#½.v®hÍ‚Q¡©X¶‚f§]͘¦ð3¢âžs.U’|²$Ë™êLRÌ톉e=7†lñÀyî&åd_ï •p!3?—@™=ø˜WÐàzJRFs`@s{û0"Yra3—òÏádG)P+üT±wü!φ,Ú-æ蹎­8Žø¯…åDȹlÝ£kp–Û#g"¬?AS\ü5Ÿ.=V*%§[]¹«ª‰r¹´9uÚvm9øÎ-Î:Ñv‘Ÿ¾tg"ÞDzTrÌj@[MÈHÑ,Û¸ËZ˸`ì`i½\io?›Öþ´ü¤0þLB9´¯He+À8ydŠ5—¢A´y¨=Žð7n8ã©M{Ùb›rêX¢Róx¥p}á.÷PæÊéñÌþø=ƪzBò¾ˆ‘YD7Ã}ËZ‹DÂ(à'ê¸õn.v^Oén &pºHÙ?¸hBð¸ˆJ?jÅŽã¬Ì[à"€?CÑQÇl¤«PçñÒ›ÂäNd6ªòã&èä›~P¤k….LW’ò]½f-î43ï ¶ì*~€Ø/¶¹XÇŸ'´ÑIàC¶Må]jEhìp÷àëa-R/Âåš õÒÄ•ÖÖ³Ð&ÜòõÃgZf3Øžpd±ÒqÒ>Ði©ô°ƒ*/ò¤kü5-/|t¿³IYUbÏ4‚ÿ?0éÜ¥“ê&ŸËï®j’6Ç4Ýú¤ÓVž2% ²‡òM½Dý‡aÄOma£ÇF?]öK0h¤ÿ½2˜ðj–<‰hüÝÔqopœˆej4¶<BcŠèƒä´QLÂ0q̱÷éÇ[0蟒–jé^<2IÜY…ËaˆQúúæ-Ôãφ‰÷dÅÔŸšŽÍUŸ8>l‡õy Î¬ën^|*…8ÁNûÍ’^Ò† Ìf{Oæý0~ß%Ž3ð­ËüJšŒÅ¤s¬pOá(y+üO`p0·¨á|aÈiù¦š àÈ9ú vT’ ÓÈm\‹ ÊØˆè·3¾«ù;[dÔIC·‘Ôî³ñ xp>ä†hß¶-Ï[½“FXè#ˆB7ýû>$è‹Öæß#¹àüâ¯ü@*†§CÏ&„£9Aâù–êž Å(ˆFÑ4´wMCôbÁã·²<ñ”A \Hzx0yi²3 aÑöf æî~K6HE´&°^…ýeØ‹ˆ™lüb·þ¡(Þ¿¸û©]|ÓkÇìm€µäÙ/Ež#&'`÷#‘· ÝçvMØHç’oüJ6¤/Î»Ö 4úpªœEöïBŽñàF[K.¶é¦•w Í—Í4`sš”g¬vµÑЄß_Õ ‹ÁÖ_99Ü"!-—8äxê ‰ÎC2$ßQ5£ÜÕmôæÅìaZØÅ°x‹ÂŠsIo¶¨n¸QÃwÄ*ÐÁndôO(S ô[pïì`ÌYb‹ç úïy+/ËÍÃ¥×ÖWÄÈ1¸ŽÊ…mÇOe‹—ûƒŒò_x÷œîΤdÙ÷P´Y›ø'8Xx®ºµ×®­•<ßçå-ªõªjŒüLË©QÏu7P$åCŸù><}KÄBÜÊQâ›=š¿EemõÑÒ²zÔ½ÓÛ1 T{¼°£÷D ´%°Vxà'v׎ÚÒý|¨çaºtâèEðк7 …¦æž›²ÍŒ&U4ÓÚ7't³¤vNoh"K´è¨†ˆ¦n2`6>|ûéï¯QUµä¶kseŠá;µÅfö´Î‡#¨³è`}Â2ïZ@¥>–j‰¥4BÀ©ˆ¶V¥Hßñ½=köoï‹9@-ç²Yçx1Å?ç9mR'h’+üa`+í±ÈÓü|ªŒV!P'è³³å.LÖ9SB‰Zò×Î>¦jpü¹3¦±W¶­Buh>uT(è4îÏekØØG‡. ‘ÅÁÀKû#ä,ÛÒ'›³!;zšâ¼K™ªk!D¡åƳu»oùÜöÆ[2E£>\=ÿˆ½"ÖÑ_t>^÷Ó¨¯¼»+ ‚Q\÷‡š7¤îßJzxøîfÒúo7†%  ¬…oˉ!E9)ã^ºBÎaà) b_œTɸÚ5¤'ÍÑ(FQÇ•D[ôµƒ&1\Er óÑÒ‹ÇŸä´ÏN&Ý «¢³}%¯M =¨šžµÅÛ«p«t,’ u1G’røúvx¨rÀŸ÷̳šT ‘äbì ÒÛO y–ß;ßÜvÑ~Æçìså0^”e· ùW Øò ÊÃÖì¶9c<ï¸q$\w÷Záž^î”ie"ùPm»ÅÇᶘ£¤!?ÌØPW~JE>¸€-íNM–‹*-ù–ò¾½ÕqrÒò¨µ~1À̓7 ²-²ÚAm¹G,8R‚E¡ð‰ï8.r#'Š—2xð¥]èF±Ø\^ôøÅ´#CwL…‹&žØc8÷—°ýeüäó½ÚCíüJYUÊ´»Bd öÞ×{ìn’ÿ%jq¤¨ùÀ¸ j5r~•š?q rí¡Ó@ÔÏ ÿë,ÒÕT@ M¯ ý0) ®½¯qf}u!ÁÝGžý©ýŽL‹yÏBXÙ“¦;¾­57¾j6Sͽít2èõÛ +©‡ÿór|:‹[͸ŽÖ›\¢µ.ˆ¢´¥I ]&×= úRöÄŽï÷¤*Êîÿêáå:6ac;Zmõ¯pV¬Ž=¸® Å1-CC¸3@ZԺ… ÅïÍŽ‘¨„gØT̹LÒ.Uj˜ª>xl©7¶FñÈ =‘ã3—œèjŸå“ýAç\€íÒ¡‰¡yˆvÑ\}ö;«U>nÐÛü†q ¦Ì´ ¹ sÅà:b}Ìó’ºy[Ó——äߘBƒ|¹ù8°,?*ÂæØÞÿT>ÂI© 5«Ä`ZÀ2õ9›ûÖžk4€´{e¨AI¢t_ÆOÚ†pÒÝÈÞ;ÛÛWF”yˆô)A¯ÖF†eÃI3Ú-üCõßSnÑO´»äÒÉ8Bù•ŠF±&ýõ;b_“èŒ9!MövwiEˆ¾÷/åk(Èv¼ß«Ž( 1»ó‡Š+{c4²Ç‚væ®ÂÙÌ\º0®@®yíÐüñ Ö)`ç-œ,=<,P:_¡äMžêšæP÷Q>¨Ýe [¬¨;ôTÇlþ#r¦1—ô§jzººspR´J¼sÙUx<ÿQï%Óßk…ñ~lñIÁÉ¢ýÄk'Ã^-/¢l WÄjÝ>ä+ö_ÌÑJŸWûc_=óˆEn©—Áȱë”ßÚÜd>dï¼ç ¹–ÒS©È]¼ÙÓÈ5²¦õR½¯îaM¶5ëÆªQ5ac2ÄS4=*$ðûw²£ìÈ×ú"^yub-Ž/@ã¤ç{þŽ<C0[šú²ÄüLâý‰Ó-Ó·¦Æ? 98/$Š"Cgiðsu·ÕÂ}o‡æcaËt{îÙ!œ¦5á¬[¢Wh-”1«°\Ágñ£{‡gžjI[µXtþE‹®q¨­eÏð>jµÑy:´ýí¡RRL̳dù!¢Ã^J/#T ÖÑ·fL€\Ò>LÆy‰enúÛþW 2óÑØ~èüç˜õ¼S6·"d}¯UÇ ¾7FÖnì€jÎ/®ôŠÕþZý‘—|r‡Êîêxl!¯ö }>iü0ìïƒí$ g½ûÖ¬gÏ`æ™üLÈ ·JßÑ.:µz bÜf¾âéöïÎSˆ<”.ZŽx"Á9Šä±K¯ +~Ï(ZÎ䛙ך`¡rR ®´Ø¨ 褉c ¼s¥`»·è»i OóKZÖ¡?Û¿Ø·×·ÇžS] œµÍ’È’ ºùŠý¤–™dëØ'ò¼iöng—­%LsÑÎ?]L>")±©Jäñ$«‡JTU2§M! ¯ÌÁtEËpÞ±j[»\¼Ep¨³ß#) ¸[ äG{å’'¬Ï0“›ŸÏ[¹›M*ù aaÓQ5úYĤ%øÆò>Æb¬JÖ÷BÐ6RVU*ñ¨Í åž]LÍgrSÃÊÉÍS`Œ³6%Di’ñ5§S`” ¹‡´[7w½Ñ!陃 1¡áÔôÊÞŒ6š{Ð8F»ã Ü„¸ñHøÀ–18ü|®¾c"}&ùÆù§±ñÉ­dùÄ—è:M¹!ƒhýíX» }œ¶ŠÝö·ëuxôÅã£Óîr?$gù"–œ% ±ÁÜÉêeUƽøHµR"S¢L‘䬛 ÄDm!xÛc·–ÈCYÌv¿‘¦B3ìèãH·-Á¯™X¸¼*&¨½˜,‹â›Ú}Ýø$vô`™bñ1”¦sʯGûUagâ6oÜ/é›0(Øfuk$ÙAn;PDÕ$3¨ÏºÁ®w¬-AÁ?øãóžÌbè~G«cÌípÂõ)ÝH•Î k%Eà¢{wÒ=Ê1µú–á8ªLQ æ4v¦ã.o"YŠã‘¢ªZÏTŒ´J1„'äú š¡1h¸”Õ®^¬½âT9tíáÔ„A¡ íp™¼÷óì·¸¶°% QÁëI Ä{£Ê‡UýkàÕ—Wêö+½ Ó¡B»í= 6Îß]FÂm´PÙáå y3”ªÞíK.rÞúg³æ¶¦uðÇRÐÑVæOLMñ‚ ë?>ä%d,íáW39%™ÂÒÕª?î^Õ„ä}÷{G6œ+Q¡Øws½ Ôn®'íd}ÖäHaÎnüM( ~€3?¥Ÿtœæ²®¸0/KáH"üД™pìDWÙ§Ùc¿åQM#NeFÝ¢íFŽýXF~¶ôm†Ÿý«<Ž—ž~¿S“‹~ð³]!>&HcïsÚJ’ñ¦*»Ik#ߨUfò¢‰êë[}ÓY£Ï³˜ü·dj.w¼&¼w+ÿûzÒ!P¬EȆ`v¥TÝW6ÍÉv>€rG¸ç-d6‰¬SÈqaèëñ:Qñò¿jÒ3‹ M&Xbä%bû¢±Só÷+V¢¤ÚEž ¶ŒŽËúÀ@ºUÜQkîTÝ<’µë"§2¥bê‘Ø(ÓÛâKR®üLÝk:‘x¦OE6f–"ÁM´T]S]€%!*F]þ¤iƒ€ñ·ÿnÚª·Îä=4ogN¥¸VؘºbßpDÈ{H&9`t¸ùÄÍz±¢erÉÝ éÁOòYØòù µáÎ ¤d¥ æ›V´&# »©r‘­…Èï(^–n=è‘­X#Óˆd´^æûÖoØ ³þú(Ô:|tã‚4™TuÕÔ Zça ÷ä“Ñ9wè¯Î":2HJs;'^Ån aúAÙ>…ý÷‰…ͰsG¤¹¹<£­¦U1ƒNŒtØR~‡üL«8ƒ•=zÑÚ”ÿ¡GæÔÁ6ÐúaÖ5»£ïã÷bXA_[G^ëãq™•\vá*«ŠU_ ¾’oéÞª½à°ÕŸ¶9š%1JøŸ©Ü‹L ¸Bjæòù)aÝ’]õþÞ‚n´©cÊO€‡®š¸Œ¶žÕß¿¯/¸èYæ†É«»HÀqT·¢Rœ”ÿÆ«÷îzH3*± ŒÔ]‰™ç,W„˜(ò‹¾ucµ¦™ñ•ƒšqaÁ"J4R¯DÃEÅtSkÚ‚˜KæÆ&y˳ËVké«à„åL -ºàr'ÓáO }¼yƒ¼yV«WÔCtKýK0/%uÆ §Ž9µ …üîxÜà¯U¡î@còäYƒÌãË‹xãÊŸ+åH”ÜÀ:ü°sý‚JÉÇÛÐâ*ßP4¹Œ06Ê]Ìkæô àIÉÃ`fCèacWa´s5)=Ìè.yÞ„Ýö7x?¬;ÏMr¡²vp¨[NÇp˜fî(%]81 M¨?þ/œ£ U«pk‘A‹[<^°Ù(ǵËÚ{jš{-sÈJúi&¦ x'²ø{%Ñ%÷? zÙ¤eðŽbv¦i ükʆ¿ègKâV'~d§ÐÉ÷}=8ÊÙ»90ÜÄÛi@Øxˆ.l m¸>ýQµøð³Nö­ÿZ›ü.˜Æ| ÈÔ]’¿›tß«·2Ç{ƒG‹{h ¦»÷YÉL¨sr¤ðÿŽÑ'4Ì牫û)~E——ªõ;ú$q9)`ðÙïU1Â4þ×ÒÚøÇ—±Ù5jIÛvL\Ûàò%¸¢Þ‘Ä¥÷ÇÆ§gb"5]Htõ2xà“0ãbÔ8;cé³Y«9PÄ_Q5Ë9ƽŽS§7* _ÇσO^9KØ|ü:|OŸ½¢DIèJ¥L|Ž5€5è_ˆl…£ËV±*Aáv áŸÊDº‚EÄæq®U ½pÁuIõŒåüC˜>NʘÔ"!wm˜ÈêY ÊO˜i>3;à› XĪ¡Ÿ|¨2AÕ•Óü5>’0ìM»¦”ñ­² û÷&mätà£ÉŒäÁ%+ÝDê´Î²_éÚn{ï ºB0낚â ÝU±ŸP:q’ªÇ3´>eµ’ÉÏÝ7Âc³\œÀøyäÝXšB;YU©è„“•!úSJ ÷(îªb>¥vl(‚¨½3FôàîÏÁŠÇ~’±O#vï®I¤½¨ Â{=3´`.Ñö—n|ÿÃDž\ÓŪ‘ýÁœ1ÓáêJ L¨«ªY©ªÝå:˜ó€µF71f‰ïúJY²à—ƒ&×üñë ß44„q}PÉ–NßOggSt@¨äYíßûù:ðûòðûÿiðöíûûÿ=ÿTÿsæèêÜÞÿ)ÐÑÓÓÒÓÿGÐߨÙÙÙØáêèñúöÿPÔÙÓØÞéÿdÓßüÙiM÷ÞF˜ÎÇ£ÎZàPµ8lyþ„ÑðŠûÇaðäÔJ,6¦­µ vTö”3BÒk.ÿP’0Ôuo¶N°ôÄ€æ7LZ³Ô˜öøÌôFfSm¯t§ÏüQ_‡Þ#Ïâ¨0 ,6ÄÇÞ>xo`a‡&DÐe· _ÌÊx{€zÍ‘x±ã¡ë©¿CFŠš¿¢SfQÛ –Éë[ÚÍ…îPYƒKóÕýÝà óoò~DNê)%c«ë‹<˜ó<{7ïsx‚:ÖÃÞt&íàB-\8- õËšŒèiê‡ÁQA"æh2…ýbGQ`üRŠnü6rM3P&„ô ËHðMÀ§à@0˜xjÀxbWVÚ(@NϽm'È4Q™l|=Iß}äÄg{T«Ô{O>¡*«”ºÛÊ3€;Qú¤ªWƒI$&i 2äÓ±øƒ¾(÷Ç®œL’{,So\l`@ˆ@¬’Y5RÈG6Z¬ý±vh "„OL˜F„ß»4Áâj öLöíOƒ îÓ³w¢ú‚‡zëüo/XDA¥†•!ñí¤„V~ÒÀvÃk&gaôÜÜyBZ€ýÙJ62QÓO×õoK"¶¿Ù‚*qÎ9“ÇQéÌŽó’Ãí‘Ý™]6¼U%¥WÇü1‚~{’#;êì^¨ãËcØ «0ÄpœM3€}â½@Hú–>ë¶òš¥+yˆïÖ5çÆ-®?‰+àÛzœY’ÓæxüŠÇÔ\©#o„ R¸µ“ƒJW…ÂÞ~qÁ^þ÷\ú«^Û¨?‚„ÿ¹G´6JrÄ·#z­ùÑãËT»`6€ú?Wò±0ºÅÅhÈE÷”By–^~YåsêÆ&·R)·‚ïy{Ç›ì×Âô¾¬{xåX?'{S‚ì0i—ªlO«Ô¨¨(Î]¤j +µyxÔ5¿‘%ì_Wi\ºÚËÑ\¶2¼ñ+düÛ)O´ Ðj£^Gà»=g €&ÒÜ›Çl®»:`j5ã O’¡ñ6C4 _AvBtf0B‡çØ{ÀÜ$}aoå ’ÇŒ8¯ûÜFüIc¬¾u:Ê=äùi£ákÙN’"1"6[–‡23šUÙCÀqóøB¹ÞÁû"Õ¤_“ù.#åFµ7µì“â¬Ú ×çÚ¼Ê?âYQÓw‘ !ÓÏ¡™ZÔhÐóS³pJ†^}¢¹2î%íufpa:³E¶©y(­ÀÅ„‡‡Ì|óø(÷7#ÒP±GÕÖ¬%ÚÇ ùœ×‹ÓÓ‘üÛ†¤–ý%&'‚µ‡/&­Â5UZŸ•ÁÌ?/:õi`ôý÷й ˜;ǹ ý&9ÛÆzZšôã¿÷{Ô“Œ0©ø&*Âx7ƒ¢Äea‡ø[§g‹V`#¹)ÑDƒ ÔU¾@ž2§ÂQ$Zc-ºc1ÉIÂ)fˆ¦iÏ+1¨>ï=[Ž<—ãëHgª'|yé;Á”êJ6`*a“]‚TÁ$ÑuþÊ^^‡Õ*Ô4Ó¸ Ÿ„šFwtêÑOYôÆýRã³K_éinÓa›égßíIVy(áɾjù»!âÖ\&4‚9Ô,Šh QyüÈTü ˜õAªƒ_Ö“À½ÿužudzB×òUg{Sø})úŧÿäëCDwR;öEûc•»íSWM¡`„~ºT¦¡ÀX=j®¸E\¡ƒeO øI†Kº„¬áËËøõ(dÅûœjÚX)«ªÍxÊ‚ä…Ëp\Á‰ûÒ ‹oά.=/;SOQ›ááž xrä}g¢OÓhé:Lv‰@65zzÛ‚w|™ë799€éX:ô,u@¥R‡w¢6¦†Åé ‡Ÿ4å®ÌvÚp NcfÈÔ†§Iý³½ M~9Gˆ–N£?!¤‰¦…T3X׌ ²ƒE7 ¼Õñ ƒ¦Duù•xXÿQýÓksúWlzÇsÿ&'€Ì/è‹jõEز&:óäç4˜‚#+õ‡|˜Z•óf¯·ºÕ»¯€Ñ~½f™÷ÍMÙ!$Õ¨~l{okË×¾&¿‚mõ,¶‡nê@gTü1‚`ê·¶Õ÷¯5κYþ¯üqmÙÓÅÑ.‚‰³3׸\Y¿Ñ§_¿ê†êR»; òý¶žæú¦²ù£­]ö¦•YD›5‘«Ê(¬¼Q¾•t0,þCÇèwA†i)¬^À•éZÿ›n‹S])¦){²€¾Ô6úG^m–¡ÙOeƒTÖwW"´V⛌¸m¦+ÈD¹¤@÷¿‘¥Ù.Š–_’‘p·S¦ˆšO/¹ã×ôôÝàØ›fŠ}3¨!Yðoh[Åz1ÛÈN.ÂblTfñå[íâÖ…‰iù;³û‘·ýÔü–Q0–ÝÄ1QoÄa;Ô@¤ÛüLêQt–¢õ¾Är+„LAàX¯ÈÎͯ^¼Ä±TEC—#ì&ù›ÉSÒÎQ 2 QÁÅÍ¡¯VAI·ÒUSŒåfÁ4%ÃúCaöñßȧ,À˜„šÕña½”ÚàÙÎS¯“àÜt¨£`;ŸlÀÌàUþšô•!{VŸ]ž©y¯^ã M|SýH¡°äú{1HëXbÕ• å¥Ö¤Äà“ÓNÖz#*Î+ôþŠ«~DËá¾²þV_šÛyC ·l½LêÉåÂ~Tœìfsí8”©ÏÖý¼âýŸf‚-áÆb}£JZ½²ÙÈ üLòÆàöEÌÑpßHT,ê‹WÕö–OT£—3iu­õK(êè–’Ê+Ksk!ž‘„Ì~,É/éV%Ê=Äxº‘‰„’X"W½?}}\-y:ƺÕ>‡¯’í[lÐó‰e¡ù‘Š1æëpOWZÆ1› ¥‘snÍ ‹Å´w|œuéÆ éý7rI ™’6‚³®Qtpr¤èïãYîÖèÀÆÝ¥K³¸òE´ºË« •—›ÜÚw¥°?1žGéJtN!ÏÖþðÙVaiÀá\éÛ¢Üh/ºÃj§f(Èyôi„Zæh¶ñ°üMW²Ø[èï[<ß ìT 4qò×SyÍÈ­o¡Û¤Déôˆ4Þ¤k·xØí©g@Œy}K¡gâ|liéJ·ŠœÝñ?êFÙä&IMÌw­ÚÒ”è/½ÙÍjì´PšãšÒþÞçlœ•Ń ƒ—9Ó¿èÇ(útý Ò›4 ‘“øÛ²ÿPÜO=P´G˜Àgys7òaks¹3}Œœ²|nY²j$`!Ž–Ïäyy*Ê>Ùù=É·ßÐrc"Ý —qÅ Rs¸8í=¼b¦ÚùȼCZÒ/I V­ÝÖ2=†F=‘*¬=`^c'TñEÊüL«³…%VÙ—o:ï.|îþÔ¡&|«§t¸À¤)¦!M‘£ tI"‘‚­œ³±®g¹ÈÂ1P »tËC{­0—Ò¡í¿ìí4 ¡Îf¾,®ŠÁ ‡§Uf íTNÝœ›ÉJJÐòŽLGP&ˆ3qxÔf(Õ•]™œeªØû9!Ý·¿VЭ·ŠÌ¹½Rü6er¨•Ëѹà}Ë®¡€kÚOt#:‹çlM)ÔÄ®oFâ•Ü‘/Ú§ìž.«¼PtB¾ öéõÌEÉ28\Oê‚ßU*®¡Öî‘ÇÏù8 fÝŸ¡[jƒá_Óc9d*T`8> !“·–Ò\¬”êéu[xyŒF˜ṉò2:ãÈcRŸ"üü}b›ú8Ñ—Äq'S쪖Ôx8‘ ÀÇãÃÖW<“_¹ˆ3uáo&´ŸŸoÈRüt¯5 ÿÓAé¶„›Ýѯ™6aÇ^8Wt4?®0žË“Mͬ«×>vÓaƒÓ‰=Øá©/ÆŠÃO –ÕQº©Ä\%òÑ¿gŸ°–;=õš¶]µIÒvî]w«˜¿….ÃȈ0… ’Ääʘ¸¨€FÌw¡åÞï4Òí EŒgg ~ÑÝÙ^‘º0i‰ —EBÙyö0Öµ©žß5ð)¾ªõŸÎêY–šS‡I¬QÉùHÀ,N3,©y}IBRºPõ ú+¤–•H5aÉÍ6ò™C]*߬‰f+½{çv6ã×Uíä¤iôr×8 •Ì>ÐÛà2¦HÚ+èI4R á0UÑ´3‰ð+Ê‹“l¢{´Ñ£dMŒÙñl™™æÆdÜü„öàïÙ¡!VÎMZæð´ÖÁCß¼3û{4N@OïÉQyaÆ¡´ú»)í˜ú-’íÂÀ`†UŒ%9ƒ£%0W Ù¬Åý¨Ž¾b½aþ­ji?õ—¥áÙÞšPì–Ë`—4³£»›•DDÏŠ/îu]1U »Ã›H™‡ )w6n>*¡‚Ÿ/éM$ÑA=$º @½jÞÚ 3@Ø1¨ä`²¿¼»¿ãH0ItfÞÀÛtš·ûOÊxŒlõänq[öToï@’SÚ4{Ù6¿œ‰þ¦ÏÉÑ.w‹Øûq§]åÞݯ¥7û*I÷¾x¥q‘}æ4gÒ_¡ö•†•£Õú = ¤ö¯ÁŽèaLp¥»Ïß«íî;_Qf>¸%*Mæ†Ûìÿý]ÛZ¾Þ]Ö}FRé]Wê{®ÀóĴߊ¯¸(ŸÉršù²ðªÐ°E?¾al$Ôo_M†üãþ«]l\ßëë[êÁüLÜö@k¨è²LŠv틪ÔÚ,XT†áЏ¥‰\ÿM£áYI™qòÈÎíË®“‹ŽZkµ_8{dõö¡Ìrëi_\³Hï÷Ä<‚ÎV(B2|O‰{1E§:̉[°’AM–jmÔRrž}B~Ú²]ˆ_ŠÃ¡å Q´üÀ(vãy4Ü㦀g€·âÑä¬4yäì 6'|kÛ8Í-Þ¨û¯) tit»yn‡; ºîr2 6†ÅÞo¦à¦3¼Çµ×e޹˜y¤)Ub¤Jf IW •-sau¹®¿äÐ}Ѐ=Tk!‡¸Ó½üïjÜÿË¡œÎZ}çb]wRB ŸKœ8¥b™›ßU¬¡%‡ÒÏÜÆ_ã)•£@ñ}QZ±ÕøOA~+œýª—“àpHSï¤sf<á<š¬Üù£wñW€VþSc÷åp0ÞRÕeÁ±” øS-Ä lGN'o<™‡ÆÊØVÈ^õï¨Zìoz1a¯¸2ÇP¡müb»êÄUV@c>èÖ´¸’ø¹ôû`õ@æ Ê ²9 ÙÉV]¢ZZ)‹ÔñþÅZÜÅžO—áÏÓ'V²A/;{@˜~–§·‹Ú½güLµ†M®àñùþyU±îÀ<%Êèv†6pð0]É 6!¿}“~Ì€ZÚè`!ðW‚FNÃÙä­k¢ÁéÎBj³¼nJ¯Yÿ ƒz–¨z—„üÑž1>Ü–ë’ÏË/EVÆR«ÌE–_óÈvlTð=€šqá¨'¹“²|†õ)4\ñR­ýûÛ3ã*nŸAh¢Ôa5Úb€ûåÛ¨Õp6EµìQi)—èøFþjì‡I9X¬úØTX" ·3)(^, —%è"ÃÓ—9äÎù5sEÆ¡™Ùa—ÜËR™AšîÜ ìÒüM—w†+©R>m²8 G‡ "VøÔia#È÷@fðu騽úqù6K×ìSÆüB2ÖV"MßDjÞ†@]–JÜ–,ÁxÇövÄÓdÐ].y¥”éQ·eŸÿ—aÝPxð«üb§cÿlWmnü«‹Ãå¿®20 0×ö•Ã-°Ûû̲Úú“À}Åö ÿ~ŒT‹15H˜é=óÈp®ë\˜:ÅÈ|mb.ç å%'ãTùÊ®Cá~Cõ÷È<œ¶•Û¼bj˜1ª|ùEÿ¡òGTe÷ýV¸Ý¿4pÕõç&kûü1¥PÞëœkMödЬ¤ƒ³BÞ ÅrÛÒ;÷3I·dPÞÍn*3ò„Tà`qÄ4‹yòƒ$³a½1ÏWý.+Bˆ”}¬OyæÛ±ûÒˆºƒ^ü„ÞtüTV`"dqójÈ?zY§ÃŠÌfªj\éÊdw\“ž:ØUÜÐo%.t= Ï5eU(§oÚ¢ÁBËƒŠÆÆ›ÃÈ×YEëDW ð iþ£ã\R½TMušÄ}bÛåhÌaxBcMÝ’ˆüùO*Ùcð€xÿZª°³×. «”BÉ'!ç+cü}a’Ñ…²WQnr1Y®<\a‚€ ý[G\–Ìú%Gº\ªJAtM”ûKfÀZ¯UÇ:€ñH ¿¹5°hÏå-"}P ½«!ÉÛXÊ$O>öÚ„ô)Pw‹ÑeÛõ“<³¦'öº­Cb™¥Þ(†\ŒhÈq'•#Âr:Ì+»Â"/e|ÎŽãAÒäÈ-Dào Âw¹ûOcÔ˜8ìD@®—*kÆ{®õZ¯‹Ólý¾ÞŒ*;‘nßÝí¥b¥‹÷€wx Õaõ]r@¸‡fGá²;Í\Ât/I8D¼±Ë'1è­!‰»no‹]:´h<“(ü¬ßg‘_ÚðØ)¾ 0›{'`GÇãjí-~^M…/„ Ûú¼èÉÝ¡Ò.+õSQEüˆªŽuâ*{¢Áñ†ØcÞsCÎÑaﺫD­áäíc¦pRŽÉ–ÔN ¦sì^ üøû¡2Uñ€<=†4¶ÞÛéν>‹Hù;XJ00•©’³uÏb{]±q5펚8cÝTÑLû•]hˆðaߤۮ_Ùwæ6`®ñrV:7ÑÃ9UpóvžP€—·­í¥9·’ú&ô\˜èl°0¶O4ù~‰à^^õÉA”'S2°Ñ€Þ«“.£Zˆ­}∠Cõ’—é­>£Bü1œgÑ+x×¢‘•y›}w†5=Ôb:U$—m#ÍÃB…Ûˆ¿»“Ÿ2qÇíÓc’òn†\$y(»èùÇ•jÈSëÔ}½Ch³»è<ÂtôÁ¶¸o÷~3¢]ËoŸ*³Ä ƒØÎ¬}ô‚|5ÂÍÞs…Ú¼gHʉ„)Ðê(d¸?É)¨é8®k¹:½ib%h¯ªéþ¿xÍÿ¥‰OpÖ +Ø£¡XSdî ëG ÒÛKõJXôeÈSvj E]ݤ ÒØ¨'+1¥x­ü6‚J!ÍXÙi#À¹ O2·îÈC¤® «e¤³äåu}ýeT¶µ®6bØ2US%aÝ=YÜ4—©Ãzz.^Òñ ŽÞñì4ûÙÙ»¦à'ÿû¹€ôÖ?þê'ãû3-|êUúîÏ’°œ¤AK¯d‰Ì)ôËm1ÝM%æi‘ØåeÖí¤®ý³tm>-¼F+I›’\šy9u.»R@»HNÈJ¶«hQ!·mÓ;,¾En ÔÝDÂo‚Ú½oTÇÝh6¬EåÖnX²Oü4õ(Šæ: ,«k×ßçu¡ý“Üñ‹Àzsª—/,;×ftÝ…-ò/œ)‚–oqafÔâ 9äÚÁëdQm;ªÏ•mïÀð7.¾Øà ÷1§ÀÖ‹N¡_à´‡€ÙßâŸPd©¸×ÞiŽJÔÅöNõÊâ~ù0“ ‚y£$}÷Tk“šfÅ¢Þ+h¾êü•Çu:üÈWÊÐÒøìh&Hí-a¤"×fÏáëÚn„¥<ç]„«`Er^8 lfÎF~ T'˜ê wûál“AE^<õEüLÇÐý(àÙRVÝíºËzM`BdJ/C²Uî|© Êâ%JŽ埸”s˜*ÁÓù®‰ ;1}×.¬qúì]€ªŒ²ÀêªH7‹Ò4x}$úË ÙÍ4\)”uàèœUj ¶úUYýÄ ñxæ¥Rœø4ùUŸ}l‰²žžìƒ.'-üƒtj_ ø‹ápi7ûïé» Ìê“ fÁkÝ–²W9G wäÅËy™ƒÝmh7…'„ï‡ÂÇn$BÙQ);Jü6xôÞœJ#8ZK³à?ÖŠžCŠŠC*j7C‹¡ë½sõxO€?÷nZLû%ˆõ¼ã‚ ¶wžT¿¿SÛŽ½’NM»c5Ya¤š‰û%C¶ïßc3oªfbñÞi™wòê‡ä&㯉ù±â1Wß‘Zd¶ÐfAstB»OÙXÃE¶Ý³¿ö˜6îBÕôïL%¨å)ØOÙ”s{“ÐV!ûä=]û„lv’UZu#ê_ ¥Ôª $`ßÀvàrT_á}:g)†z@_,ã ÁÕü}bœ…µf.µ—÷cõÁÖ>¿5niL:tM7ÿ±ý¤‚3” ßO¯*À'…Ïž€ËÖµÔ/7ð¯™ùÎy†s¹‹ˆ*Û*÷ÆÁShÿÙçP$çNñ'cÕ¿éÀÄ/±ºý®»¡uR8)>yxýÈAöP»™“:?ÍoÊŠù‹q³ ¨‹hý©7¼kÈÆ.b-ÍWÁ€„ì poU oø daÓàͺ\êß8æ M'i¯€2$±²Òß‚ú³‰»–Ú¯ó$voëFeØiH@)ðÖE:W,~`À¶ud?Š¡Ê¤ö1ÁFP³æðªé×_ZÌéŒÞC¾ùORàÇû2bA¯ñ6. ¢F/6„ðBù”Ï ²üˆÃâTûò±h†Út#0@ÓjÍ*°$Xm¢ñÿßÝÕe” Ž¥ÃWóüL«Ç9òè1M»¼5¾\}/ÌbÈ#gÇaÆS@-fݼ!GÃDЂ)h N|™¤.+`“©c‡• ¸¦J©ÍŒÑôÜ>ÒqR¹^®3䧆?ˆæ™¡Ù'‹v™õ®Œs,)cµC* þx8U¾w€ˆ ¥8Ÿ·~ÁQ†t«|ªë½µ)ÚaPkÍ$!m¹xŠT„Ryï«PåáÉb‘Åp±a,ñ¬p¿Åj0¶„yŸ{ø$“^YKHH 'åâ}G„Q Rë}ÑOÞ(âØöqŒ Á6‚ÚüLÚ“[Ëœžšä#ïhZa”˜‹%e¦l ç-„¦åYè¿ÍOº¯Ç•()Ù;è'"Áp^Q4—–ÒB˜¼*dÇíÞ'±WvEnëøÐx¶ ᘯHEªIS ^ÃòÈLÙƒB{3á ‘šÈMAýÕ}êê€× ÷‰‚ %þ@é¿M­µNr6*fl¹Ó#2cÍ~Ú¥V«Œ¬e`ƒÇBXʦPBÞãÇó•9iNwàÇÈCŽ» ïXkLáÕc>âÅ/Íó÷¨<ãÍìÕâd'‰0¤*íüLçÞËÀ³©JWêÀ®šQûCÇêó@þG´¥4¸8öÓÝ ÅTŸê2:×ûA ð@º À_ ³‹oh©Š›Æò)%b@ÈN ÄÉí[1ÝzRÔ¼ÎXŠÒ `°OÃMÝââøñLû›õè€&'(9ûþ×a¥ÊןDe-ŒÖ¨\„Eº"|ÏFSèñÚíE?¥Ó ƒqµ«²¯´XÏu.õuùðY&‰¥£Ú@°=á Ò^Ž^ùÕ3GÉ÷ÚDˆÇ ¢> ™ ´^ ¨õj ®vb¶ƒùµ)õ…h‹c”nO*ŽÈSY¯Ûäþ'_ÖËh¾0e±s-ׯ—üIùˆÊ E¤µÍOÓ4ë„àÖôØjÊëÙølHxW(—VšLG©‘µ-åêÏ(ÔÁCòr‰aòñUSâ[HÎNr¡ôC¼í>ß„ŽÉè RàôC*8cuIuᜈÀí¸a”&3JÀw}—ƒ½7IÈúôÊЦ¦º'5{RIˆ´µ¤$B0f6X·g\¤¨‡Ÿ¹c&‚}j6j¢‹o"Jn–AÎRÎMÎwŸ÷®º –n'vkÇòÙ¼F®IÊ3{íØ?|Q‰®^U‡À€7+$o?í qy±¢_¢{ü™jÏ# 5ç›)& véå§T>Ó ñ£µø\ ÁþRå¢Üà_u# Èg;'í8üúL%× ûØ%3%lA*uFŽÃn[þ̾ŸØ_lœ‡6›»¹-….Ow'¶ÛïnjP-ÆA€âvÏð–ÿþ|W¬ª\•ÓiÛæ–°º—f<ŽæHP3>Í#î }×þÈÜb%ÄÇÄ¡¾.>MI61/Ä—5G8¢¹‹/»Z”Ï=¡Â5¬®ŽµÀÍý Áé&¨÷>—Òõ –•œÙZ¾kµ½¡ 2Ö‰do´’ë#ùõ÷(>'Uü›À_Üq¦l±>-+!A|âò¾50ðÂÙ<©ƒéX +ìÈ%pe%›·G+ó…ÞØß‰¥áS\š0lÇ…ŠåþæÈþ˜^v*Ú-ÐÉ.”âËKJš£™}\£.¹HÖêÄ@óÔÝÛ×ò bÆóMÃeW0gWÉí¤ÐOðOç ”¸ªŠ¹¢GÚ`_YøŒË¬€s7$†48`AŽÞoÖ.$/(`¡ä$]é‚n, s­xÅ1Û6BV3=jwCúG.rXÒã.Q ó'‹´öBhçy“®Í"R»=žHL i·TXx:…í ŒR;4…S-l5¿l ¸µl¿Å•ˆ?Ì¥‚TüM(2ðqÕo¼onf—,ß ÛêAÓæçÆ"uÿ±½yìÔjuŸü»ÐOt]ÇLzμ_"- ^IuQð '¯'£4Þ€ó Ý£” ª¿3+¾Œ8nâ aärÏ`6n#ÍÆ‰ 6Q½RO!Ÿ2°9H“çx $YžÓÆÉ2Æ‘<'2È#{}®ž¡QëÁKóÜóñ³kÂFòYÜóï]¥> )‡u™·%6“ÍEúw³t˜&ã[Ï«—4ä½aŒ/ðÓî=êýbè||^÷íÞ­UïÏ xE ý$?Vl˜böŽ$XÝ[j̦ÑF²DÖ„ü|®¹ 9[îÖU hGÒ¶›CSÔ¥(ÅðPO•æ‚£–]¹c¥ÉžÒ0©<õÎ(†?o.\n¡}`¡ùÝéSŒšÚ{¥c×MœëE7ö¤ƒù‹Ø%Þ¹/¤~÷'ÿ"% WåºG"ãÒþœR*ÁŠTo¸^Ù®VG~¯™Ï˜Ê«p ùÀ—g)™×ÆÆ´‚µÏ̆˜"`äCwFÞ6€çGF¸?ćÈl*¨Á2eÂGNiŸ•ET5a^Uœ¥]ÕȽ[Oó䋼H}n½~ŠÒÅ–¾™ô|lø%.¨÷:4=“b:âÂ=¶pºSR©½)衇ÄF”B¬d?ŸYÜ…¾P, ¢VãúîðêRQm ¨CJ´-ŸÏ9d Ëõ¨( djj= ÷†ªíŒ­©éñ²ý]s\û@ ï­´Kᇕâ÷[¶ 5äü.½ ‚w8`ûekc¥¥‰qÒ´Kìõ½²\¾lŸ&û"˜âhÐÇÑΧ‚†ÙéäÖrúðDÏ+EÇ£/€¿_eæM\‚ƒùº½Ý”‰ñ_–Â.°Ïd)ÑImö~9 L‹-)êéÄÄB‡ikÿ÷0^6ÌL=xÞÄI@ŸKå%Ò]Hˆ ‚ª2Í9ìdàPÂ]yÌEÞ™ïwNQÍPÄîÒ‡.q5ñí Eâý;…Éf}‚ ˜„µo!&.ø %Þˆ.+5ü™ÙbiÞ{%ºÝÁ®j·gü1¥ùéŽÇÑÈT¥kÇb{ú^zÍÒ«¶`¤Í© ¾.ë‡\iÜ$‡¾ÁUl ÒæƒPGm]Æi·œ^ü<>ŠàH ¨ÅÁDÕ’-”paþ›&• ª®,öÅ´#Nkw ¼J[öÑñ&…â©Éx¥ŸÈŒ¬h«'ÊÕÁ%Õ&¢! ÇBAy ùÇ"žÙ%lÂãØÀp,ÒÃþ…,1³|QC)…¡%Iv­¨Ví‚:0ŽÑø¼P.€„û$Á°¢ -Á;Üúx‰hçůôÊ7ö/h,üLÖèa³Üu–6½¬wÃý]N† žÒbåÓWé…>Ëæú6×ÿù5³89,VÍÞÃAͲlì7²Ú½3!ä•Ó 0”r™)üªÍ-Í&ÜÚøQ]iàaM…ýþ$I2½Kéúx¸Øwž£9Òüí¡_×í±xØþ^Û7œd5uÐV"õP%*Aw)èì÷¨2- ±ò¿´VæSŸüîs1RaÛ–Ô ‡·¡ZaÜXŸ8ö~ °PúœVF4Ëß^íDÐeºYè72µõµÐ.g‡/¨3$$æˆn‹PŠ‹4í«êsû+ÕA˲Vø Û[z9ü)§˜@êÝŠKY«{U‹?Ž?ÚoK÷û¤ ÒŸoÞé"k$ÈægʸHŠÍV›(^*“•›7*wÉ<çuOmÛ:PY¥ŒO¨¶üûü56ˆê4³…Ðãü¸üÃV쵌|ø5Õ&h´“%œ…ÑV±˜IäGâeX¾`…yd^bȘ£d-8Ûg'ü{Ýo4~ ®âÃÖ/=Œe*ÕÍâ”´$0T¿äòPu‰ëÑyU7›úq?¡[Ûi)Ú<\+¸&E;¦.9m7G?AãG6ýõ„ž¸ûjÁOg—\-æX‰±¤lâ‰ÄæÜ^ÎÚ뿼t¹–NGÎc-Ö1¬Z„ÍÔRðùħ| ¿[DÌUÌc/©|0¢ºC`öÁEø#äcX>ëZÅÊÌåµ×üÆmrÏsÒ3Fi µý` ¿5¢>NW4.É[·_I•<Ý à{\­!ÁëõÊÉlÐVÅ×»äÓçY¢+ž¨ºü}ã4è!%©9y.È|«Ë{‘ ü²Ã”Ë#VíÜY¯ñX›f3ÞiR^øë9•ý‚a:=•ŽÖû3ƒŠÝ”`>Øq—Aw¾ ½ ³6ÔFlm§àŽÙ¿ó$ÛÅ4qò£â!£3ÔüýO-Vñ²Mb?¤/§øbè"éó}4‰ÁŒ„ü–Á-¶•×MYvä0ö ·­Ïý.p±Š8Û¦%NOe¥ü|¯Öo˜.ü ÄH[M¡‡*3ÃÿÀ¯dðþg‹,|’ÙÎs‡ÞÙ?ÈüÁÃ)õ`Ë‚ y< Ž|Í0K¡/‡ ýׇõÎÍ ïî˜^3÷Ñ•/§‚sºÀo€µ,ft˜‡Šz!³IÔ¸ 2º‡»¿ßŸ5ÔXù°Ã%0„«ÓXž¼Á¶ª#Æ~%YYHÁ©øbÐaMêuòÖj¬s¸V CØèCš7áºúÚ&s‹¥Bqíý:4xNšP»^4íDÉåUÆzþ8Öí¥6ŸòÀ±×¥ðôq|ëiÌ»«ä Äf%܇ŒÑjÞ½Rú°Ñ¹îTqî%ÜÆ1¨Ý¥qšÐ+âîuoSK…`휭¦k•“YUP¯0„–Õ%0ðaª`ð–q…±ZçWûc%…ÃZ¨×™··õ§PÕ&õÝ„6Ì<=Æ•áç’”®ç…Át[nüM+"Ê`âl†Yt£‚ ’4EÙéQtr26Êü´;~š”¢ÃFç0¤ ÿuUF‡ Em¸G@Ö¦…ž,O4W&ŠéR7Å" ãÞ;j|ðn)rí8eäºlôW÷ÜE¢Gl˜6š„ÕžÝÝ•’E+zœâºôFŽšüíò5Nj(42Žk¨ªð¦‘ÞçL]Õo=ñ]È¡pª‡ð–Œ$_.ç(‰áš—\y<٬êx¸" $£à¡`_RJµ`Jrµð÷i8ŠãOÐÝ2…8cüñ&ä¹ANª=78U|æ4ù8£Õ\7gMh–eJP;Sx TZu5š!~²J ¢IåרäDüõŠ!Fw–3*†ÚÂýè¶?ƒÕN- 7)Xó`ÃpIFÓWDH’ÆFOÄ Šs±0åz+°BÃë_%l=9ò÷ 3¸Y÷µ°[¥Új6°” ,%íZn2  Ž>Ç8A–¾ÌöÁ¦JÔ½x KŒOñ¿H(#’QD×ÑE°ï^¨¡·à ÒZÏ̪`#Aþ5 ÛRÑÆùp¢eRáÀŒHÝzåkØë‘×¾%&æ6‘r¤>һіâ¤J±§ÿ‘´ Ù—[#‰,o…Õû/-+Ï }l{@ Ñz²Æ„‚^ ¡‹=`ëJž.™)eŽŸ ^wÚR-oœÙV´©à%Óâ‘9YRÃüLã+ ·1…ü–.#¤hA‰¬t£ÊúCúÍ{G£G¾o+H¾ù4Å ý«þ™Ž®°Gî®*b¦Gï8x$OÑß»%£bÄ9 “2.ÐÐÝrEŠßò¸møð¿¯…àKÓrÞ8û{­#ÒUP%ñgq»½ô^r¦Kÿi…¨³B¯ l~¡ÊPrî)Ó¦i®A8‘V­b~¿†6HE£[aêCL_wŸ÷Áæ…÷sxþ½U÷æÄ9M)Z Øz˜p;Úתx­Rœ.Ò>¸²ûëtÝ6š`ñf3†OAüM"zä02³à‰îØRëú†§¦:ìÜñª®0æô%³ÿ Iæ©$ú]@£ƒjZzG+iß²yÕÄØþ z¯1†˜Éj]½h½×%æ®; ý‘:2AÝêf"Í•?šÌ/wª"ëôcYÊöðÿçâ™&jÎŽ„ÉÍDOÉÆ¥²Zù{*žqÏ¡4ˆ“¬-m¤3×6-z,ö9ÓÍÖÀí !æ+óMæ‘Þ¿œ;òV"!=îúÈP¢¨ÁÆÏ`6·Fö’>lŸÄ1Z‹Vü5)ŒÝlC¿Bš­z4YèòG¢ìŠbßÁ(ºÓ @þYñ€³žÊ]Lu9µNÀ6½g}¾ÇI³À•Ø\ñvàs?2N+¢ÈÈã9&9A@”L[›ð4bø¯î_±Ä‰ùRÛLÎ.Z¤ý'=ÒCé êx°gé°¾ÌÚf[°Üþçñ’f‡ïý]ðRyB½.~âó¼rðEýÂN»™¬Ê,ÔµÞƒjÊþs<}_é›GÓëÿhÒ óÛèÞÛ’N,È‚bêj“Ëj`8‹ª ×|—V‘ú‚Öä0–ß: ¢îŽüX:õ7àf=ÉÃÃòTa¶¥ÕsÐêÊÆ>Ïðb•/µ#PoO 9F·<#îöˆ3cæb£Íøv]Üw}ÂBõH4AÚ#½$_’pÉŸÄï² â ç“èÙR½Ž`ƒ -<­Çh3„b§µ‚K•KÎÆUjNÅ‹¥ñ)刄ÐrV`®S›Hj'‡_ šTLìÚ¤ÓBát¥¥(Ïqí r8yAâ¡n´¢‰£P¿ƒòÍ!$»aAîù–Ù4Ä0B ®YÅQ’:D>rq²XT>»Ê’uö.žžÚ OpŒÏÁˆâ¹³lAœ‘~ö€ÚýãÛå@§2=çû=k“Œš`a*øè’?£GJÄVü’Kà%·Ë`ÞÛ›ßô3³æÛ„õóãüX±ˆÂ¾|󤲽 ™z1nÒgŒëÙ›‰R.WÑn&|`Î/‰d€mùp‡7è7HÎgG•»†a‹±ÕÞo½ J×<˜Y‚÷äG Oê›Õ<†ÖD.Mf³l Ëh1MŽq-þÕ!ÕrÃa³¤6½ÜØQ!¥”ƒ]ç¹ÁMIGª½N§Z8»©êÈl·”kÿø…a¬˜[b¥Ö– X ¦9CåûDt%5ðx•+S…œò³7°vï“*«Ã¤q'7Æý ‰Ž5FÖå4Ùfù­}ïnS×f ö§>»0ü5l9)†Þ K=ãMÅZF7á,ë¿Á¶ˆzdÂĊ׶ó‹† jCM|‹~¥:Jª¡h§.ɹÍ2Ë{Ü Q¶°#ÕÎæïtðýÒõ ÂiâM®«¤R“%ù‘¬å^ÍÕðù÷±#NŸÓu¼ëü ¶_ÿ5¦zg¸Çwš6óÏ õغ€T5kíQ4íTVÒ¤»â²®äêžULØd×ʽƒˆàýé¦1¥E›8Pr¸cÙâaµæfi)LÙ3ÚÀ®ö²A^?HâÕ6» Þ½ˆÇ3ˆÇ3¶Ñ›YüÚ¯ †ÄW¬;tTîçü5W7cÙy„M«Æ%.ˆàð-&yêPéçbŒZ›«Q¬#!«:sE(Fjçä«y>èï’é¤Üø98œ}JÁˆ—èþ¦Ìèq¥W uSÓ:NêÈäÌ{"r@,|DöOQ®¸Î,#â1(#DfPðàc>6º„ŸŠ›z|[ K"¬¿€Û,«Ý­Qž^¢3ŸuÞy*µWÉvˆjÚ±Dí!=]¼‘vdGØÏ‘|mŸàà-)%ÄÒ·Ñ—Î, %(â$5·ÇÕb /¸ð¶n¿ÉË8JÙ“Ò±$M>Œæè°À•Vj'\$L³ ÉÁ뽬,| õgüJ\‡’ÀOÉþk¥,ý8hÕ*íŠ9¬ÇŽITbQ Áýóç¯ZÒÍ£›É… N‡œKTмd?ÚZË0vBKMBàlb÷Ö¦«²dh¸IÓêë¤êèçJ¾){m+)¸4b›xs.ƒj6ú˜ ýíD)¬ã˜Ä?¼Þ­TH~5q1ð¶×uŲ)4+á"­à` -¡É‡÷a]R>MʦKˆÏÓVÇt¢ÀAf›ƒË¯C“Û`»Âs(\[€\u²?¨ŽxÈKÕ2:,€¯mCêX‰‹£å­²Rþ3Ìð-»º]gm´ü.‹oöY_'ì-)¾4¾1@ò¢ïõ»$N3ÛºÂçl]+.`[µžóè—€W8ç(Š{’‰Dü +zê©n–! WÌwþ~kûËMf›ë…‘ÞÚ[%ν\–>iPL dÓ¶›ÿ‰‘¸_¯¶Z4̬ßÌ)m µù† PëëœË ø2@ùYu{ºr‡òKBµ^™¸)gîÓ³0”ßò:D7…Ý»ÔÑ·Çá“órªaˆÉªzïáÅ8a–¦às¸q¿©¯ÀdúEÀÛCe¡µÎÕÆ&ª{!À[@¿ÊÐ0O±Çìm¦½TgL[ 2ì¬üÄ€Ñò‘öp£øã“sœ£_«»W(løU‘ÈöÖ–‘E¬¢f ËŸÈ·¦tÿ*Xv½¬ Ö–äÂØ–ÈâÂB°s²;,ÍpOß‚¯púÔª¢ûÞ+4Ài¿ã¬GΧ²ˆYÕÒ‰¯Q–0I¯»¶PùÛÈð 1hTUþ<#$g}œí`a߯;eªÄUNjã3¾áöB´½P„Ë!’ÿ¶^IþíãöÊ© à Æ6#v-)‚û\)­èIsöÕóÍÛ ×ÿÖ@NíåÏÁ”öE–töaÐI-y'»ˆy»ÖÄ8êv22*'üIŸ]ÔSˆDÕLÙ‘í U#§·×÷jô½[â•4dt©^³´ÜÏbª>š¶TuúBˆÓþ¢?mñ;$)]ƒóê@Åçj…ۉצK†¾Ñ÷™WWUDƒ™C¶É¿­uðeu¬gzØëÖ~s÷NþhP °v)T'üJŠv{:mÕôK oºnŽþX(ÄevJ•ñÄ*€À¼¬Â< ÊE +ÝícHx ï±R5Cç3ËÌ÷ l³Ï¦,w'í5ºAï”é(Ó‘HËP¯&1,U^²’"tŒÌbˆóTç‰*üM-&Çù>uX‚ýæ¢NÉŒ©Ö›SÕ‚Xã³ÿŸTÿ¯YÃö;fZÇJÌPy {EŽ }©Hâ‡å› "æ’ªÖWTÎéŽ"P•Á ©pÊ×»xÄ^RT¹þó[?À¿2Ëã骹?^ã8+VöyLDµÝÎŒÉNéP©¼”BÊeùKòÇ‹éd|[‹èÆ\(’7—FJŽÿö·a@õn¶8\Ó7žÈ)XüE:Œ|ômjÖß1_B1%WIjfGèG qbºlüSp…Šs·~ÇïR5ÿ‘HÌÂVa&Ôébüd„Ókl cLzÀŠ2˜rLÓØÎCÔôÌð÷%Ôôý‚°:â9^ð4›¢$Š0–Š?!»JR°Ï#àLêÜIç7%/ïàÓk$ës]Í5pÚ·ÑÒV®ζ*¥—YC_ð?n_)Ü”®:cáúû˜¦ðD”×H›þ=ÏÒ¼«ãÞþÄØ$!goH^Æ6AmÒ³GFê÷ªäS&¹ü7yü£´EzÉ;Ô;@ä³ J&¶vb¦xíswÛ¤úSýÿB\/G0ÑüjÝ]¶`×+yèäKù$;b±=”å/^õƒ$xöKüK< c98”­ºðCÆp%¨#1š˜…Y€<€Z3º-='8߯™Wª,›ÐÇ+Å W‚äGUøF“Û¶@‘Qÿ94GRi¥Q}¼A‰=ÎÁÒöƒ»ÛèÓ^Brè`Cô^Âdfɯ¯*a~%HǼhâ÷×MöÜd„¶q/Òܽ¢Ät¿ºÐùšâGWwY¬åZ~7fšòŽÌÑÏNTàPÖ›\5Gv£g0{‰ÕI›)€Døvdì¶°#´„e«š‚ðw_ ¥¼íCà½áÌE·®ýòÖåÁa}¨Iø)³ü œ¸‘­äºé~àñ¶ãs˜·+T° ªÊ“™84¤?%G/ÈhI¤Þ0öNƒblâcH"!¸á3L4-ÓÎ3ß–åsàÿ©(LþÇg÷3Þ|k¡ˆïA„ÓßÎp¡å<ÄI:ÀD6ݪÞD­µI‰>3Ò¨ºÛâ–Ãÿ ×I~¿úBíýw.ˆr1â0¨ú¸¤ŸÝœÚ¬=Z–}Ǭ%›‘Ìk‚Ý)˜ûi;#xhqIêp§Îkú±•íÿ+*[‹Ü½v§ÄH©HÔ‰-˜YŠö€(¶õ!óüJ38ðŒÿÞ–‚_M‰®’vx?Q÷¯‡¾½(ð7ÏØ«dª~*KÈŸi>ßHIÓÞ-žzÒã ÊÒØ¸×xY¢áü¡²´.QQÚ)äjòù­±8:z<Ý©^§"ÔF¬Úðý¤å1>ÉrÜñ‹¥.2ç¢Ö÷®6íX໵¥¥e:NžMß§þ¸6¤1àŽêº ºçµâ,ØÞ<å°ýú‘™#e<²¾¯ˆjVñ:ŸnU'Þ¶á väs?ŸÀBm CÇa‚’h1l¹}oü|¶-Õ>ƒõ7«€ÂxD8n[25‹E NÙ!;‰—ïZ䯙…ëãrsøõ GÙXV(ô»ïÉ‘’É×[Tˆý%o6kS†:ÉQ©Ê&h¸[sÌÜQY×B°ÌZ÷¤æqb*ÊÓ‹Kmö Ô%–.ëv!P€ƒø€ÒÔqº¾‡žiÉzž*ðÆ½¯?õ›=¿Uý3‚mÚ½  û"dÃ×Õ~›G¼F„õ˜§˜?$n dÌ 3#0¬þFE’ÝÔmø„ÔÙ×¼¾È·…iç vGîR|kÿóä¦ëw¯%óÛf§µxufß h˜°ŒÓmŒ©íãM=1&é¼vtpšÅz#”%¤,%Ù’€BZÂ+¸ÃÉj´¥Ûºl, ÍÉ4ÂØ÷mµ/We@ åçgƒw£óè•!.†ñFò?­Ù+e:)ÿCu¤ûËŠü0Üéä»wgúG굡)z€”áÐ…ŠÃ’Kèõ¶JÉ-…œDD`¥vÅø´cá9@5åÁ £–Õul_2Ð4Äg(H}áY]õrÚ2,މËÕ¾•áYøMbdpÚl¾ËïjX0¸(°ŽÔ +")Þ° ä":Ðjĸ€}O­ýMê»ñ¶1CÏ'™6!ˆŽöWTÑêÆxç¨ P¦r?ï¾]ü®<˜k ç;“œÛÕqp9Ÿl‘%°i¥:}C Ý@ü§G+uÆ~ºõü5lUiÜ_J£øΗ»ÐFÅÕVµÍÑ­ÞfHH™´!&ôÃg)µ¡YÌ0b"‘Qü]ÀÏKègnö¹°H2uJnú&h1HÉG¸¢M€¹¾ˆb?!j!ØCÈaJû,zg¨ð½ðáz«o%æ-J¢Úª¿E3t¼šÐ’kú_Êf4Zãû!¢ ±gsƒúè£vÀÙTÅUÒ¢ªªR”ü¤*¹¸× ø‡oß;òÙÅf0¢²¾ñN¬èѽ0IœØ×ýe²¹ªjTšIŒ°–BüLÈËÆŸ*%ÄêÙÊ–Ê Ú€C>·®S¸p2æ ™OqS×ì)G:¹¿#GáënxzG <êMª «¹³€0œþ—Åät·•ðl-N-ºe¼ŠA ^«æÍè­Eeù6ðË®bE {zÎ×EëH‘.¾Æ-Û´( ðí‚×s¦ Û ÍBåª]Àhô€¾&¤’ã6g©ø cœe.ðÉ8N¸Òá.'Y âÀ2Z –Ö¡r2I©þóÚ‡¨—“Kn8õYÓ•³ëŒA+ŒÃ&t¼äaßÐÀü50ÕOÀèªÊ3.„i\ ui¶³¨Tc]zHOÄö[ÊÿBaFmVÊ-.`ngZ4N—3ÏíA©‚dý%]‡Æ ¶-¤îéG$Ó»F¤aP¾kÊ>ßÛ^¬—F^O Ä³#)ä 1›Ö{YÓi%PÌb>Üž¢SÙX^ûG™ž^ ë‹+XóIïu´£F_@ÏjÝ:p§óÏhP@³ÌZ¦¬G©³h?³†Š·, W ÞÔ <ç=cìu:H©zO9Ôk¶‹Hž&grêïíÖYpæ<ÂËÖÆWü®ÃJ”ü Z {p‰5X¬9–-tî…æçêª8T"ž“åªÆà-¹Ž?itûgé…·¨´ð ç|0ìRÊp‰™'¤ð‚á8ƒþ˜À4§gµ¤(ró´Ñ`]Âʼn’ÓãO5w¶uÿÿ–!oU`W¬„M.{†œï‰Ëzïj"·ÅJ¤mŠºa¡¹ª´7XŸ‰yÍ?\¹·ü¥)¼«‡‘CToþˆœ]jÌS/½ºHê[L5%@®H_‰*©Ò,Ãök0­HZ3ØÇyðÙCÞ÷3Ÿ³ ½ï08fÉüM4)ç/ 3vHæ¸i|Ñò²ÐwS²‡7z§Š,¢¡Sø%t5dAª´È(8V“x–!’ü. !`?¦A!y3'Ú¼çúÛÓ G{²»¶ŽÅ¬¬ÀËåÒ¾ŽÚ«ß!tþ)EùFâ¿âÚ²R\tËúŨVq~DXP(pU[ßÈżeor¡+Ö™F™T.˦£V[‚½pÀ²†FOŒ8ñÛ'œ=–uzî;»fo©Ú? ^®„ƒ®%ÑѲzå€í o»vV™\­ù«òórè{ã©-&Íh€1OV¶“,õ½\cÚŸÞoܵþ+¯öo-ÀæÉ½]]>'ĘýXdøòNÍ [w–²Äµ`l»£¡(É9LÝfµm³ `6|à<ü5<¢zœðžèaB™ãô«-Zê´ APª¤<ÿ7E1Ŷ呯ÕCó`p¦„ãˆ#/¿‹ÞÝ›ÙR'Ù4êëÜ DB·B×¹ö>ê2ˆÜõg`=€õÓ&¨äê ¬¯ÐbÂ&”Žöû!¶[uiœ»®õÄ«®Zxåg2Ãiº%IJÕéCÿ‰`j®ðn®?ÕÙ`k« …“, œ~ , '£âÚjŸ}Iê7`à³+ 6ÂQKŠ>hô±2×ñGm|º¦cye™'‹Pfékê©ãàû‰²ŠŽÿglÍïÜh¥â^D‘—rª@©@i:@%®äA‹–òÕýåõýˆ­TλQôÒ6ÔëTü.)ƒ Ñ”·¦g©Œ`¶=T®ì€6O˜?¢M7{ñß(_æËoµõ¡oˆ¨ È¥&ïºÓ£(ˆÐÇOMR KZå²þ|úÂ;¥‹L?œñ¶™Q"Ž@a䦎aŽšíõ $C‚÷݃±–„Ýx.$XZ²Â7¬Îÿ šŠ†·æÊ­ Ý-®§9ª“$£*§5©Šƒ£;󄪠Ñ;â´¼OåNf¤J‰ª•|»%§á®¤‡RYÅ‘|´úä²¼+6]7T$SJš¹ â(QeíÔŸ»ÜP=ããxð+Ô\Êü0!üß\I zÂö=1 _ÀŒåõG\°–çÖjƒ–Däe}™LGyl†Ö¤nh"V:v]%B'CO÷Cç¼ßÒ¨ÏÄ>¶ Ç0¿ágLQ»{§#:L°Õº=-Ô !ê)ÐÚ+.”\£ÎÖºêCPTHØ(ëB w«¢dzïº>»FÒbê¥!?›ýžü ôI²ä”v®­åûïèSÜr¿e[«xŸkŒw¾5dvxß„ðÜ ;øyL c™§œ1 r!N7²¤©»:L—{\m(-"ã>¥ñ®\î9üTü.‹öð¾Ô‹Büps\ê)dŒ˜ë¥?•?ýÿuã~ :ôtM£ÑÛÃFXàÝ’ë£{`¶&¡óŒ«‡³`W ¦G{¿aõÔDeœ*,m…‘]-R3vtÑ…ÿðj^µ±¶‰U»5hjàòŽzjÜDŒêú>ƒGiåÎízQ ðŸ3ÿPù3R›°Ù­UpZÀ›Ok³`´‹ÂÈ-÷7¯Þ&ÂûÖ0Ç«¨ž|Íÿ5'\@>n›gèÓC[Ã4; ª€ì»-ýNÛ‰œß}§vEYxH¥Íúü.š±{×…S?’=½_8¢ ó¬yϤiíæ©¸Ýû8Œ,$Ø+v%Åf[ÐÔ.WÌÍ“ñ»Iš">ÖîJÞÊ>TŠgF­ü÷ß%Bñ&4öë@ “î{…Ci/¦")@â+ŸˆAj81¦öiÖÉH ÇÎÌ|¶8OîÞ=<‘•¡­™½œ¸k­˜aÕ{2îԋݯأ isa–ÕNsRmˆØäÙƒí¢ !¾®ñ}Wÿ’µþ±òÇ|迎ÏËe„<óYT÷"0š@ßüÕDÉ‘FÕúì‘"ìk,ï²9fðõp"3qèàÑíئü6^ƒG[~¯¿OÛ‡ RUÿâÌçՆIJŸš|š¿óÕuŽdÕx"%ñQEl±ÇøÜn-gx4YèŒiŽ8×½³VŸãum~~¦r>ÞõÀhåSúë˜qØzB:s…Ç…þæ¡_©'Ué„L ÿa…b´ €‚ÙvWhc ’HkÖè»~ A|€BÏUÞ‘=ôë¨G~?út¾Ýu?eLïÂ5 !³ÁéÙý(€õØCØ&)ÙèQ;R={¿ÔX*˜¬²;úÞÕ„žOq>ú§@¨y}jñÎÊÈ8~UçôÇcJ½>CY+eE@mu/±xRü12ùlÚ+ ’{w‘9ŒØW§ÈÀªÒئ2€Ê²Î=8샸ç.ι@ª³ô ‘Ùþo-ÉoŠ=”ÐlXTCEÎÓD_ÝçéD`ô†³9²ö,Sô9Ò‡IÖȨ–<ôßÑï ]ðKØV0÷›7zŸ>jEY~iñ[¦‘Å‹Ù|F³gàX[G{OPòÕüD…@¼Óv¹BIm"æÂàDŸ 7®­Ýhþ'ÌØ\/&/ä±BçØÈ­FáWT’4…Û8#&±;`,Ùp8WÜ¥Ó\·÷"À™,Þùá$¿³„ žT®Î7*÷!,“±qê¬eü}²ù¾8zÚè 6ð>Ñ- `†OÔ"?xÀdùÉ›Bc%߄ޏ’Ð×4£¦úm¬îãõ¤VdJæXW=ÌàË+ÙŸOúµZƒâ’pqžùQšGf”ì+’Ê] ðL_5H«xã°ÓÄÈ—¥ªÊ ù'¸íº úãÕQJsðprž‘A eƒê¼v“ WçÐƬ¬*W¶;WÑSûüèØ^CU¯*uV}äåcæh {+t‘§°×¢b‡†ƒk§àø©Ï¿¤âÊ=‘(B\‰ÌH/l„ä«5!+‚–>þF„chÇ$%(mº¥œ,˄٫þßñùO1nPÿyŠU«ŸaÏd‰{&ÅþWJà” ®Òdã%R¬>wIŠì2È >MÂâg€.`°BhÞ©¡.}CG—|tâ4×Ö#%Eª+Òü>L­J¡ìµÔ€—Lbpd?öÑ2­C3¶ Î2IÑ ó÷!Êqk_zœg|×qmx|xÿéÔÔ¿ê>Ýðlcü5+lŸ*–ÑQi@Þi™ÞP} !Y»€ÀÐA?;ZYAºO°åå7å\zeºSÃùß|gkI¼‹B Îþ÷P&XL½ƒ0‘wË=Z¢¤Œö¼“øèÎR ㎎leeÕ U®¦š3¾lÙ¢(UT?ŠàÅýÕa‡‡=k Ÿ`hËLe^ã熋Ü‚Í?Š‚€žHBʯA`õ7Э²%@»®´÷é^¤yàù"m´%Ê9ˆKg~Q7]eî\Xê™?¼³M3µ¶¾ú,wÄ KüMyXuš1Nb÷Yl]@:0cÄKÛ¦®ý¾9àE߬TTOy|jѤŸf/Õ01fUŸ` ˆ0fµÔ:L¢&VR]·v¬›¸<çLB$2Ç¡ïØM¢!ÈŽßYƒ³Tq—þ„Ã0𩦇(ݪwC\Â0£b?H·€i<Ý óMÜ2•—Z¿–“ÇŸ4Û§Ä™RE"RÚk‰V¥Fuë¦udj¼àCS»ÌwnçJb°µ©‡*´@‰Bl·˜Q­·Kxëå¢7ZíòÞªzÌÎJ|SüJÆÔáþÿdEI7t†òù»¶‡ÛLú¤I³.ÒZJÀ©Hí¦Ä+X(RÛÕäž¹ÞµO«“s_;ÓfÙ_Jh”³„vß{ço©TU úy€µ¿{ü˜?C¸ÄŽ#¹jÖö?䄤ƶº5pØVZK˜Úż‘è ƒÉ_²ðå›S\6ÇÞÉl‹¦0ÜS °S¾ÙÐaÁ·ggné0Ëè±Þz¥$+2Ì´Moz‘†€øŒ.?Râ­áÇPmÉ«]HTU¡v2΋`Y4Yi`ÿo÷µ&á3E“©çMüL«ÂR|-äY/—` ÊåÖ>ÍÁ§>k 5×&ø¤‰‡ý;‡ÀK xtÁ.ã„3÷‚7@Üðè -¡å”q)-… bÄ.QÙïxËn…'‘˜K¾½ƒ¡-1.ÇmÁ÷»µ>9p/Ážÿb©t»Be‡jûå4cÄÑ£]ê$û·©e±P~ÙŒöÔÀä ¯w‹ØMjþW ’%ªVšA8Bw´S­56eŸàÉQâ]åk[À?™C*ßOë©¿Uˆ‘²Í-!\1Óê;õ:Ù7?³ù%Þ3=vÐƒÏ ü5>Ôë’¶6Í~4s±Ç“Ø~¹â ÿ3æSGw=eF°/`EnX€ƒêË0¾Î{w™NMíÏ×4bEzGlZ`ÿ1qxÁ—UàÒz>nqœ•¾ƒÐâégñB"™¸IO¡t‹¬Š° ÓªpwlG6>:‚}•§µàH\ñÚúã6ÜNsÔP8%7Ï0Élá$——‰J5—Šî¶?èÊ·‚¡DovÉÛxqÞÔ!Nt^7] yãH.VGÑËQ W0§C(øÓU»¤ûë-q¶Rž!§Í…Íü6‹C·–¹Z2\¯÷’2EùÔ\ççU‘²á]w¶¢Ãtbz¢7XÙH 'JCaÀ\/½aG‘xkQú¿‚ú0†ñŒvš8Ý(²Fãkõ¾_LÂÿ’‹ECK"†‰?Þ-Û÷4u<ÄÄ€fþ"_5÷Gèz{Bíf{Š{¬Ž‹‚Ó¤y1÷ßNª{õµˆÇƒøö!ý¤g8”òä¤Z´^l®•K¶bi ´Sg5 ¾’•x‹³²x|θbáPìûŒr›ÀõÏšŠö¤1ôÀ\ý‚7üMB.í~ýþý †ÐÃN>whÿfS|¤´gÑIRì Üý+R+ÜšCh‰”7þçýãn¾e=ë öGíÇÎ3¶¸ÑK¤&ǹj#H´Ú•m§*}/#Ò9¦h*­;ùVpw¬ú'„ÄÄŒzî9á êœÊˆÿz~ºvO'‹fÊOdSJ¦Ý|]æî2ÉN¼lÓ«rq,ÿ0éoàÙåøŽ¯uÄ¡¥}²ùb-¨L}\üÒ€F¡_XoBV)¾±úø¬ý@´u,?׿Òl«Ó¿Ò¼ä”°ãü54-OÑ[Úˆs†¯‘~>ƒáž6øm*€‚ÏÁqŠŽJèk»·æõ²‘óbÙ!E|å¹PêPq±Ô¿BÐÛÀr^ÏjP¦u×f|ϦËЄxQ† _ÎèK'‘q3}éÃ!ù°ûåb’R±+ÛoTtÜf_½ouÅYÀ0›Bb0EA^ݽÃNfœÌ : EîÉi/bJš@2>éŒÿ^àf' ôµpYqe¦ÞÎ’²y>gÕsÒ;S, ý˜˜ƒ­ì.Ë„aÉWM]ß·y=iPö=W1'ÌÍ>kÓßrS” `>DI˜±IÃíôÓ„×$á)sOü.‹ -TÖ ò¼—óØØëÀäáz»[Rÿ.l·€ÅŸM”· LDT«zþ,©¶¤±/Q;‰î›§W$ÕªX8Oû7ÓÍGÜ*½™Œ>êÆó  ‹ î6q~Y¦w»Æ{Ôæ “-G×Y\j«žOƒ¯÷‡)UîÈC—fÐ1:¶»ƒÄäòW&üæï;ÌÇ ˆ’=™)üÃ6m9 Ìx‚· ÚyGn9ü6uœÍK_[¿'¶S7¹?.ª û_ÿÊQn˜(ƒ¼öBµ58 ZûMƒòë¸ øˆ8ü_@'Ù¶ÂwIrWh}!'Ù í´ß™¯4 ø„mÇ« ‰§ë¡y†‘ó8åÊ6a2ä]&víº.†”êÜê»- x”GÏÆq¼ÙÚ(•änd€u†¦sÁ\(¤ˆBEP˜eéӎ、r„§,¥10ôÖcá/v9`á?Mš¢¿6B+ç´² à®$6ŒP½-»0YºÏû>%§¿ÞYXeG“W9.b9ØÛ–‘é·–!G«µß1×GüLã™Ý^˜9‡s<ù@ý†-hæèz­$·ê2ËïvÀY Cá †‚Ty½×èÉÇ‹ÛS õ5 pLk»Ì$µŽ^¿0Ô\¡9Èdqÿ¼£A?¬·Ì€°Wue¼ƒœé&Ú-çŽ÷ì TÖ-‰·“Îb—}£xʽޣ§½L†\%e•oé'o(š×3àŒ²‰å2l^‰Jë?´XYkÊTT¢-l‡Â4S“U¬ö„ê€ÕÁ삲8­ƒÞ¾q–ñS U±ÌñGdÄ8‹†eN•¯‚KÔí[Ã6Ê'Ý͸ù´NªOü|ª©Nï§åúëÛïèPgšP"UH€—¾NÍÃö¤ð—ŒŠ´&ïfVò0f.úÁ+ ÝHtU‚¨{8|罂t¡Z%q*51ºE¦åùYÊóNÛ²ŠŠô_Iöhæ’ìˆwC-ĉeø‘€&±\ˆKŸì¡‘ùI#a¾_"?ÙÆPò‘aA<ƒs0Ô"v²˜¾\‹r8àåI)ä“òý'V7syOoäÅUÁ=füàõêAxW‹3Z©Në=!hŠvƸ ”j†—vÒ lF•°ê-jË{€{… †ZÀs¦Þ¯¶L•ãÁ–7!¿…¾”Oµ B³Úô›´õM+Ò°Ö§û´¸ŒðŠ¿)'j’~ejeýþÕ&#»óþp0Á‹µÃìû¤mÐb ;Ã[}7{­WÃdìzlî¾Ï¤††¯”ƒk^¿m 1 Ù=A´dïbïh¦=1‘"Î<=ŠL_üM27‰mà/€ÔÚ{Õ€d”É»ÒÔCúó3´à]ƒˆ.ÆË’»Xø~©šE~‰Ü®f¯gÎUùœ&7u}CÀà"gZK•(ÂôLïàÔ2&£ýûÝÐÁÀ5Ÿ_)•ækï]¨ ;ç–ëÂ3#©†{èP(Á§˜Ú_ #ömñÝ(ÃóÛ`Êg‡ê”!­ütá\1¼/l)MZE…µ+«Ü+/?iî47¬í'ßVöÀbêÑ®TÎz¨ÿ–¡g2´àan%ƒP  cMÊc§qž¢’ È÷®÷‘D·E•¨&,vª†)üL³AùiF ks1ÉMlˆ?x¬îàÄ{BGWÃü°ÌÀ?*ba0F›ºv0¤àhgÍ|©NÑú„!|´yÊû©¸s £ÙYWÎKk^Ê÷'»PgQYÁe5É‚£©# _B<[x?¶ñùÂÝ6뉈C¿NW(-ÃSÖ£è{Z!&;.o@ÀôÛCÛ 4¯;d{5¼zX1?bÈ÷Î*Á/¿ÍkäD¼%'«JFhIû,Ï1Ü3ÜIÕÉŒ¸ÂÄŽ§ô$pm'ÜÍ\m÷iU*fQþ+”7þé%L’ìE¢¬4¥üM2 ‡[懾–YvuÎUÃ5]ßÑH4ú¸é@º¤¥b ŒÕ±=„"µ—¤³çËgèö²–÷Ò‚f`'hR2…í¾ÑîJºW»äKÊ¥Dÿ˜w½œ›ˆ™g¾Z¤½7jXNó¾bãNŽ q‰ÞUx‹›øžGÇ%Aäú¯„ ¥cˆŠO¼„ÎtO̧ðÿ©¸ÀLÙV»>©ÌÖø@z»bDQk¼9éq©› WNïQãý¨pM¾u®f~¤2Õç tLF«‘;7²n1’²ƒÄ•PÚ)3¶Âi@•.j¤OggSëA¨ä[°· ´?ñîîÿãåðùúÿÿ†ü÷ÿÿÿ ÿÿ}ÿxîðãéåÿŽüõùúåóÿ—òïÿðéîÿ…ÒÓÑÔ×Û×ãíóôü1‡óŒ\ŒÀ%Ú«ÂMìÄc9#M©[RìÍCÙ—í bß*~âjã°xNxU«’G±Ð…îáUͩ¬3;Mª‡<^ûa9ÇH.ÇÇ²Šžÿô©ßáF†Cè#B¼³–»ð¾!Î V l…ùQocÇÏäÒDp€ùÌ»²*PT¤ýeD#Þ+™÷¹õÞ]Acáî9M°œÄêøÜ&„A2NEJï6†!fk+c˜Ýv,/xðX»±lT¯Òzìì3ùFëG]å'Ô›7$lüH(ß Ð ›ø0ÀA“Û}CÔ;šôã¢möüLâ€REW^E$™—‚(Ðå€ú‡ü‹·¤P{Wís%uqÑT?ÄžJ‹š[ ¯§ÆÚ¤Î÷íû°‚z›#t·/õÈŒ¹Æ³Äßþ'X”= h Â'v‚éE•!$8ÂH¥äŸƒ6ÏJŒ»M¾­´/*ãÓ鋹IE¯JÕ2Ì»P®'ÖemÁlró ðéæF‹=²ÀfÜ>§“bô ä¨^è:ÔfÕÆ­a÷|Ôàûoì’Źȡÿç w ÃL{CžiÎ ôjê]"m6§Ù²³8¥ü¬Æ Ùʽ…½dí5zæ€Õ*p¹Œü›‹ç5|‹ãÌåËœ}Rk™TÍ<Óécrÿ k)òÊÄ™ `[G…XÙºUî‚á+mÿ-•›/–FRË–*/M|὎$0f‹nWXxËVÉ0Ú`ÇsüÏ=†yäÊ-’–À ÚÌÏLégê*C×ÙàR aØ­°„C—hc¹<ÕÑ_mŒâAá1ü£ßúª 2{ï7å2 ©‰TP•_LŒþ®ÈccU¶:ÍÏ0m MBt‚wMQUEy^+²iFϺfCsì°ûƒ0Àµñ^ejZ«íöŠú%¸‡I„2elUbFü}a?Çôlµ©ï`6æ¥/8?›)åà†qTd·]a­w§G˜G”ÄÜWÚy\@îÝØÁéHØGƒIa%*¼¦»xt%Z1Éx•ù(3€ÔØ•å[ŒÓçöñhEØ6¿Q#6ÏqöäðW©—GÁõ™ b@¬›ƒ«Øš†l©b¼vNTåUõÝÜ2v³Ïnþ¹^¤‡ØÑ)_¼ ŠS7~k8¿Ë¥þÑ}X[ÈÜ\õÌ™­¦2"•l)Šs6= AV¾1ÌP¦¯ˆd©h«þEC”f×½]SfžxqTÉ÷[Gfûت7å‹ ~o œ .±Z UÑÃIêÙ |ìg7ˆ~ÚC=5û—î†ÐÔ^b¿ÿ™ÇGgÚ_×uŒ&¯ƒœŠqOKQá:,¦^Æ+üÈ|1.ãä%},;XßÕöíñbs1S-*Ù_½H0—CGõÙ6TÛ¯`Òh2SaÆŠŒ Fý7IP8)ØÙGµÜìæ/i[ôD¤½{týKze2u\²z–‚Ñü†m¹øØ·?‹bð4St–ë$ïtÆÉ½ÇS† jBÇÏ1A ·ôx+R”£Ë‡:ùøn•¨` UAK›5»²UÙ\³äR­ ù¦š‘ÊØ׌—¹— ïÖÝ >r^QçQ“Ô½k·•lœÜ¼¥l‰0âöPǨñ®¾—Iešó}s`]á&™”*¤dO´²€uw‰ñ\%åâÄ­æ³dï褖Îr^E¸ÀW°N)NÛ:?ø|ÛIZàŸKåÙ÷v”VSšÁ“OUÿž9¾,ïžâj^ÊãàÉ0áLb0üMž Îë©¦Ó ,9w6ü”‘³Ã&Õ6ã~P"r¹#Ýû5õ®ë¤¾”|„–稊‚¸˜ÏJ0¹J¦L‰oíL8]ûHÅÖ÷Šlõlìqø¸-aW‡ÑÑÃèÍŒ,k°ØË-Ñ}±7õ¶ò'±kðÿÏç3g1¼äÝww凛ÜIÒN§9+Ý?·Ó¦h©PE²Œ²rÉ5RkRYø„„H«}Œ4о·ho¿7Å•Ãâ5RÁÅÀäf.@ƒ_‘L¨}C%#}¬ -ž¸@F÷#оžèDX”ç& e2*üM [Ê;Œé-éÚHDE›   ãÎe4 Ä'&íí}‚vgüŒšàßꔹél:rèÅ„PNbú¹á—wãÀ3·Ôl±$lc•bt†õ,uzO)]ÝE™¤Y Gø“ ÌÌu•†K€³ý:5Ãd%2ÞbÐâ±"lÄüÝ`T’f›ê=Íó¯be½)¥£ÇÀ£¿ žX¸ËÒtêöæ•Ð8±Óž7Jˈb/Ï`ˆ¡^Й”š¿‚”yöåúi²ÜÆ1uɲk¨\Ê@_%aÒˆ(d tG’KJ”V„yÈžôŸÁ¯*’ÂQ`©üJ}aõ)áÏÛNƒÑ[·j¿ã¶tNhÕ §?K~›í¸!ƨ³ñϵ† )Hu±ôŠÛÕÓ¹\>d¶Ú)PœÝ;Ïb±EÉײÔäµ"²sOôûUÁ¯w@KÓÇŠgY»ýšN .¿Ö?û'MíMjžÇñ)Ÿ£§uAG—ª€#› {ðÞ ‘“…Êðp[ãYýI9‚”9ÂO‡Û™ƒŠš¼>5ƒžÑ.¾Õ4±ÆÄ‚Þ$Á»Œ(ªæ$vÑßß?œ´ÖË~ÈŽ@ƒ‰°ÿ‡·Ÿ¾r¡÷óße%Œ}…£Äɨ£WƒÖICœÕýãìá0ü0ò!zRYEºñD@Vêê< E £p}é€+ÚÙ)÷gXçÕtv…^¶ø (ªqÕWœ¥nàvs‰)ŸjWÜ Ð¨‡k Zå ïh4ªpôÔ¶gåF±ã# X‰po›MƒLZGÚ—™Cþ­ÚÆ<0¯$’í%Î+Àóð¶¾7,¢2O|á¶Xò!4™3ǃ̟ã„IÑÝ ûNÛ¦`PDS@½;<Ñ®˜da;ªëŒìêY®µÜN-ä¨ÿ´sò¼»¦/£|Kwö5Ê0!S—çææ‚·= »y*Ký%èšæeC CÖ€ÅYvDܯË@"SúÏeü0£Kïä*º °î%òÃÑÍvÓ“ö?OÁÅÅ Ød{•Lh…†MÏ܉66GR‡\D¾Û"µš™°“æ‚/ÖÚ¯¤ð¨‡ 0&B‘³Óկ屑«ƒmËMDàȆ»7ÅM ·f÷a!3vƤBÄ™wÿé¾@‹Q£p¢èߟPi1,ú(0ƒÁ# ²W¬ŸDïm–µ%¨n({%Þ'£~ï‘ êeðÀ¸ÞÐd1±R×ÞáX nû‚÷ ¢"³ñ+‘ƒùi¶1æ+ewDËFc^hüX CÛÍáÙÝ–›¡^|T“cÇ'"Ù¸Eª_¸øB¿qÀ ’¡.Ø:5@Vë=¹¥Øç ¤ŒU³$f˜¥¦®jœ$…Åìe7mð„ªp7e[ Wªl„t²<%­#¡[ïž tÙ»ö‚©Š’k.{Ò’£áì%ÎïTÜÍh¢L9©Í»lõÚô`º^ê÷QsUpWŠtƒ~`ÔL—hH²ªm] Fži%Œº¡ID$Œeµ½¶‹ºú(ãÃ*ÆÔ@´†ü}a#‚QÓ¡¼ßÙ¯‘®Mt¾!%á(ª®#uõHWJwúÄs¢´„I&ñÂÏÛ`ÏymlÎˈ'¢ÜÀlhJLŠŠ!.;Ö±–eù«6÷JÙéµÄüƯò5üëü»!=HÈk ²FâBf¸pàaãºj=µÆòdQ©µTì0k¤‡ù¥¸ åªN¿cûzºsýó7ímF’ÂTÅGU è µ6öÿåžW¥†VЦ½ç1úA>€‚ŸïTnpvÎ¥‚æ 2¼X\]¸æÆð:šÁNüMKP¹©Ø¿ @±u÷,kP0yw¿áÇ ‚|¦à%^ìÅuû8°,"Õÿfê\]É^ÆsC¾ÐM÷²é½Ùi껼%ZÛ Er4êÖŠVÞ Ÿ¨Ísº¤>èr0Œ?Å&©ŠiDȾ†=Bòž®/“‘&†»gXê6ÏV‰*'/Õ¾5’ø*³Á1á+>>سͳâŠìƃ„ÃŒðüö‚ð=CNô¤&Ï&¹ªrÂ%ˆh)‹j_̬Ÿb%áÛó¸r¬oæoû´g—~LçŒxš-·G{Ìsú$?û°öHö3pÆš¾)=õüL¨ƒ{̵91ŽIÏ(›õ¤î]ÍùPÒNGð”w¡JˆÇŸÖEx›¬ðޏ·Ù¼De²^õ#’§ŠK²öö;.¾KN¡ð¸{ɦˆkþÕ—úBÏÝÜP'ËÜ9€¶|…QJ³¡Öjƒ¼ì,îÐ+ò¼ÿ»Å øè?Às£µ|Þ^}ÿؽâí¿ˆãDJ¶&vOLЍê5cœš_6† ƒ ôtqe»ô EˆðOv¬¿ÎeH#ÿæ<Æœè%%°¶ò¥(N—9fš|X=¹Z­l çߣÁ0JVÐüLºì €øƒ Ã.NhDBvØö@ËËY-¼olK«³Éÿ5Jç?Æ€Pð>ĬnoG™²Ÿó" nA¡@$5‚}ŇÑYýE¦V€V…÷!q…s' œÖœ²ópŒ¥O úyq…]Ý”ÞfÜ®9Tòýå1fOP0ž0 =/Ì¢¶%… ³Ó·Ql3ü»5×;œÕè$íBŠvvð€TŠ»qÚùˆÉì=UJG½@´QRˆü°Ô«÷µ9 ³ümAÊ×zÑg_zO`ž×»Æù¥#—v€+òCqæôïÿZS›'ç¯3°{$‹}ÐhÁ’'¥þµœðÆNúupW(w9rJ±–þŠ÷'b/¹DsrŸÏo$C˜®N‘ñ°ò]*9.¢œÒ4­ŸzV2:…„óz³dö èÖ¬œ(Fð¡z(½ÍoìpÄö'C¾csyf¿^½§˜Íš|jdäÛ<3ÞndëÜá@¹:¡PohE_RÌÆÕ( ÉbÞò‡RcŠ+0À8F½C¢ù¹`±Q¤íü}aVùÏ•Šøóx¬S¸ªòú2ÀᛪTÜÖÔ`ã´,¬%4‘7{©3&¡"¢fÑuü¶î0ù¼ÿ¥ìxs…šž@Ƕt|‡Gml™¨¢1ÝØÌ<+áÃÞÅqÊŠêT„*dIÕáÈs”4,ª¸Òª²Ôóãç~÷vñ¬ôÐòˈmn¼÷‘ýî|H'ËàÂzNøŽêÁ»=†æ|vWSy³“³ðõ f“äq3Ö)DÍÇÄd§¾ žt,º | îfƒŸÎi×DËHðõ\€¢Â;ªí‡_öæS‘´ás _ÔÏèHçz:%,Î?S¥~pKî¡;¯go0!”„;ÿT/ä*ȼ¬LåLÅLjÂ!M,bå¿äâ²êÒÙå_âª04Ó|„>+:ë¿@—Îd̼*F"QÜe÷'V)ˆòwú=, Öµ®¬ý’Ëv¬qàûµ4Aþy{«åU,üwFcòâ>©ß½†è=˜”qv üJ}Ç;8½QвëôuOÕ§èl¾æÈn¥-Þfݪj‘é+Þ+ í…v•‘8¶í1_yÎñ¸Üº"!O­¡Õ|öÈïfö×aÒ¥÷h‘CxêÝ…2á„ ͹–{FFèIõNÑ•<•Îðos˜—Y 9o õãEiëåBØÆú÷ ¤“ÔH¹µ¯<¶#A‰¶Z;éIp2á~ÂJy2w=¨N"øªý~'Úú^mEž±ç>뫟ÂòV¥b8²YÿeUøx“ÏÕ<¾ÿ·ÜckêY!œ-iŽo´/ØèsUgúÌÑVgã<5JN"„.¬’0/cf-3¡S +¼æ$Û6üLâ N¦ãÑ{j‰ºŠ‰Úø5ßÀPTˆ0Ê4QÑÎyL&kÒŸBÉwgÿY<ö™›á… ¾Ú¹ŸæÀ÷2Ù‘î;…CW˜#»èwž¹Æ²ªfÞx¢ÝVÓìh½¶5d Z±•¤c˜.µ€7ÅË’ßý‚Ã:DFW:ã@Ïò°ãr­ˆ†Vƒå¨(„i çVD£|Õ™;Þ€r¦ÉB^¤k[ˆ[s$[Nö6W)L¿p^y*¬Óf‚Jïî’k}L†>zˆíñè?nÌq ©gëúÔ8,E·¢˜KЈæ$nmSžpÊüœ;hÅŽÑ‚»ü™Ü_n¯bæP¶ïJ"Âg'¢¥ò9±CæwwðI…²yyi<<Žj÷sÒ¸…år œ£åpŠN„Ê íS$_Ûù’"Dܪxó q™£¿{t99«³jŽ!Þ‚ìøºn¬Yì¡E}Y:çúÆ"ào£ì ¼ŸÏés–2‘½þ¼47g§V™'6ÇDbýõõì—é’ ÄÞÞç¨f¹oÕc!9i½ßرC9‡ÀÖØÅô.ï¨àýYö21\Ç”¨Vh’„ƒ¤\b\QŒùÓ"‰ìiä³”[J•ûé&1ÁHâ-ÐÏç̯8Ñ#¤Ìò¶Ãl|¼Oyü1‹–${Ä×9vúÄS™ZŒW}¨rìÂ÷©³w¨©0]7QÞ©¤³òµ»‘î,s/V¨”œê¬Jô-*^-®,½!dÑË5RHÕa#EçÀ¾úrÔÓ ÜƒRºDÓ¯|·?êCÊj‰Xã½n§÷ª¡ŠXQÆø3–j1ýòáôôxµ\¬]lRÐûiàk î€V½ÉL˜§—øÐð#ñžFPðÒTBh•Wd·×èD¬Æt?6®IŽ^ ^R+=Pf„ÞîÊp\ì.žê:Î] N]]]“Ñ$35Gt@¦aäW͇×)ü6NÁ¦ÄC6ËÍjé—Ávê]­¿µ¯LC#æ£ZòçLòƒã@2¿zw„äY®5|lФ̬K”£ÊÜÕ]Aü¹æëLy¶h”‰Ò'Ôí––6çž4Àj÷ tÞ‘_yä)byIÛä¼pŠŽ©ÉœJ¢æÜRH¢¶¯ÉWª+oô²J†Ïc­OX“X©;ÆÔ"°Lçs|˜BG—ÐŽÈ%pˆ¾í¦©*  ~Žn?Ýî K÷tmr"ùÇÌZfËÿ ¿ÇŸîºóùÕ;â»[$”6dYR—±Øù°Oü6y œÍ*=FZp¥ßÊå£mÆF‹â%ˆ¼·×dÒÔ8=Ú¦6®‘15zSVü¨pý™¾ÙóhÇžÎz–2PFû5‰vnEpä”nB~¶7ü)NÄ)ø³Slw ˆIWP?³s7#µ! S§Ô0‚àí4G\À,±Ð“#z¥dõTƒ‘óaµ¾Áw&tIʾRì”FƒR£JK®Œ,Û\=[ÌÚ`e5–¾7VÚÃZgˆø›ÓçðÕ×:Úxâ'­(y¨P?0•6á4]Ë2ÓPR.äî‡ÇÍçŽ~å`Ç AeК×w—`ðõk­ÉmQü|©¥ëÅ_»&=S6i)™ßazÐ#Ä9–;ænà´ê¿!á–Á ³ËSf·ä>xÅý…l×óˆ´*Ï"Ón ßê®B.”£¿ÔÎÅ€}d ôN2땲wŸ‡p¥ üÉ£ù;O|ÝÜÉÅ>·UH×ÝNBH$ Ïžø-V[)÷¨®”ñ`âžìñEÕm Ð¾[v‹/øoŸѰîÅïzä~BWƒâǃéDP’³³ñ§³ö–œ%21GˆæÄšø u2¢´Ž“f9ß·Û¦$Ð6ž^³åÙ^Io°—HL˜GñωU ër<=èÈk 7ß*8¯ò0äšæ]C/Ðá>~vøÌ=¹4SŽðQaK‘mÌÅV&z zˆÅXaNUŸžúüÏ<¶þ ¯†Úáá»Q¦j–0Å0—îñk¿I!¶ño¤æö3C>ë¢;y××Ö\ƒßަ-{aX Ñ:?·ØüOüâ+v-ﻸ BøÜ¶á›ww6¬g“4%çhös)æ±Aü.€Iâ/¯Ì*¸4F³»?åt}eÍIø:¬‚€ýv=¸`À3¿ë>øô¤”†yɶ€'ý­@”2S]àé'Y<z¹šŠ¨êx¤ <¦Ù€zÂ_ÚïçˆÈÛ,ÌçThÕëdá¬åîù’~ë]h§Š§à¬çøu:Ð|)u‚ ì€ÖkâZ´ÙÚÙxóæ8š` C˜¼Ý,úbÁÜÍvà|£þþ ô3ãö¹Øÿ"eJM0`ŒÛ*ÃÜÆŸ~V¹EOB/,ÈSô`ö`™}oOšhÚž®ÿv_ s‚®†ªé€T£ï´pÉÜӆȘe8q*iÁGþi@t Å'‚@ÞF ý%@‘¾ÝC:ù6zç U»^ü1ƒÀ2¨ øæ»?ìpmªp¸{Í_ÒГ¦†u~ÉjñµfßËÅӈ̀7£ÿ$ZM u¤¡‘$PÇ•>€ÅP;òåA óWh{U$Ÿò-)ÕXhKÍAa©2Ýê¦òv†\ZÉéÊÌ{íC0ûySzÍz²Tqé)n#F$›é uøð‘ ò@\WÌ(0”™[£iyØ•òçEG*z#bÊfÑÃl kp>a{ÅVÉ¢ÈÎ’àIÓ&x–ÒÇ«m‹é#ôÀƒ°ŽæH1TÑã"\½)9áY8¥ëfܲä$PÑ„$ÈÆ:ágÉ¡Vñ—>Â5k} ÞO¸ ±ü4û¨¦æ›æ†'ë*79â—ùßuz,\·z»uÏûaÃrëD÷Ócàð•)Xöœ"­ÿîåFÊÊèe!(.¥6ˆƒ¦5ÉÓ;Æé±{ ‰Äq“&$ÓíwB¯[án"b‹}äÉo……-C¦Ù»‘5cm†›UD‹Äì!O€èÆEð ´Ü6h—t½_‘~§k]JOy .ÛU>]'‰«ÅZhm¡•i¸Ùr>R5²Àv¢¤¼ë2Q*ˆØ~—H,ó#IÚ¹QTðÊÇ«EøäÐè˜çLá#}¸Áé*²ghýK®ß¦ØÌü°$'™=Ñü+Ú½ºo‚ºê×Öùl¥9 ,|#Oì>ç|@œÿÊ1Z,o‘`vH¥ÆZü¹ôêš»CÚVïê+PB§bÒùAÅù*ã·KT‹¬¦'1ôœ¢!ÃeèKC>þ2l ·Ð@ãEàøÁ%âLòì¿%§ölf(¨ø„#öÏX ¼f ÝÞδüýžð ø°·¿A ¥2„{!w QÝÓümÕæù ü+d"¤š.ò—žß/«[vÔìq¢à…^U´~…ÃûD,ªïÇU-+¯>#Òkšm†‚¾¼jNÞñUļ^é}¸{k3 ž²ä¨(¥ž82ßwà”Ücͼ$|Ì9¹`±E[ú‹ÌÊ@|]’žíã©:7•À^%øÉ-v³3í¦`ó‚ÿ Cï·}ÍiÂa í áÓaFµ’Ì“µ#ˆÄ”6&Þ%ã´Zj>êÈÀ–1À÷!N!êQØq+üM-P|¶_*;dÜñU‹•ö½.eÔÔž&ÎeaÏé‰0£³Û=ÁP1µ@ãb¨ä\±ân»Ð»Y Òj98Ó*Ýßú™ñm4±"ƒvš ¾Ç#¯‚ª.–Ÿ®4Ç”§%…ÜÀºÔ‡ía u®±¬xã…ú£ŠE»J/©½µÄì᱆©÷¬ÉÓ çY:2Aû˜‘ÜÃÌ&JG]¦÷ë–‘ÁÛÚßײö-¢à´««ŸŠíæ³àG¤?l¶ô« áºBÊ™þ¶ÖÄRãüL½Âþвž…Ѿi™ç1›bfN$ZŸæ«çìËÍH÷‡uHµÛO›ô ÁP‹â•O7ÑÊËþ4>nø ;L7Q•Åa“vë“î{GÑrE(,3nìÿT"¶ªöGHGãU žØÓ®Ôñüàz¬ÜSM ”¬ ü“a3ŽÒ`ffLxsuì»>Ü6W'XÕSL&7ùxÁÊÉšŽœãç—µç å?ËõåÐo†xRð·ßÀ-c®™œã׎¥¾T ŒãKI[ˆSÙ“'ÕüMNù?\ž…nޝI»èµÉF¼`T‡I`ç—äþ3¶¹‚&·è®×''ˆë G¥ìªJ—‘ï«ÉiÝŠUó.'ST`-´M{qåuoÙˆø6˜-~ù ¸òQVOXÅÝFï1¯ éJŸMú-—Ss’v ü¦I{P',DJ½3‘÷u¨”•hÅ*ä4EÏãºNZžü‚Þ|C?¶½`›mklxt0´ _>¹f¥Óu …‹¾ˆH“Zúµ#Q G#ô”¢:¨[Ff±/üL¯÷þ2‰Ùd&ðsÆtî)w”ûÊLЇ)3‡qŸ|z³Ç´®M…æˆ\ø¦»^ˆw§êG½ˆHc Á’²7ÙýÌ"eH¦Š¥}!W FcMÔÀ Ì.<Èep6'ŒðŸœättA¿¾¼ñQef²ã1ªžÆ‹Ò¹Ô˜úЋéßýþrÇóÆ'±0u†)Ôæzslç´Å½—˜ÿ[¯°GyÞüÒü6rL©‹¼}wDÒ;pˆ ªŠfDÚ¡<ξ5#—%æ+•aàÊKŒ }IDŸIàúŸÏGÿž»ÉÞ–Á:É߀f( DÊ¢ùŠ«X–ʳû Ú{3ví* #øèì©*¡<’„qºŸ.¤°*Ú€kdW³»Û,ßÙeuNIöÁº‹£[Ýú­€^QÄ,"š·û¼ÚØŒKÕÁµù§1k®Âá;OÎ?ë¤ÖÂY$˜k¿Ç\DžüM*Lð/Ïø`1;85‰ÿ¶º<9ž§Á'ïÈ—h fý&'ô5\àá骆Ô2*““–¸V¤;|kk”ä§µîžP¿,ƒšk|¼ y~¼‚'j„sL–³¤íN“ëwx‡ –·EÅ> •zá»ÃßO’ÃÏÄʲí4ÏH›¡¹jÇ¿ï -;îQÄž«Û€.kuJ¥›Qú\RHòøL¸~»»Y:y^p,±X4S¥º „E Š•ü®ò>Áxk,õêº Ò 7iÀÄO¥úÉ5Äoaߎš9åüL³“æ`¬'u™ÞÀÕRs§DÝip6VŽeKå[:JʘKˆÐí›pçëoñ¨hÆèÊ+>4+G"aS¾ÁXi©J ï餡^©ˆêÍ©¹úEHÓø#„ñÍÕ<ÃL ŠÔ²­÷ífaÄVôèz™*ªÜA"f{}ˆÚ2sRP­|ãBŽ˜ þøÑ­,>—‡Z_&W³§JO_rÄù6Ë™m÷á ½i5ûo+rô#È~Ž”së^Û®k£ èS±Ä£–||Éz(º-0 ÷}×>ÛiDå¾f‹jl7üô$Іþ›GÜÕ JžF/*<œÈr„?tõ¦ßäñ:f®ftËž%3äXQ¸*–¾9¤D‰Û¨ÜdšÙb2̽9£¾PŒKš¢z¨øÝ4À†vÑ*dáß™Ê)àÖ†â"Tj…r¼îœ9®ykš9QÄ%/ÁÀö“g½ˆ_£â8;ýÕBü1~}o/ñCqô =¢„9¦q‘/+( ùfð‰‚í–žK²o>̓g4>Œìý4wâ¯ÜJ>•Þûj•{«ØtÖN ] vU›×e}Ðl An㤮[Êg-•b¦}:D©zj7Sãb‡ÉóOÙLI¨ ú¯.§€Æ) *Ïd®±?Pštµy'3Ál@WÆi`3W·= {™¼Ð˜àxY÷ó/ý'¡¶Røã¹p%¨ƒ02)+‚Å2G "ž"%) øsŒ¶£Òh%¿@×>xá‚ò~óbÉo€jIC;¼„nŒ/Ñ-Õ…óî—À—X4@[>êÚ@9'M»A(Y©>¡™î]•€2¹kä²¥ŒCÆ÷ÓÈ©x‹ó\tœŠØ<®,4ðóÃg²#´ˆuü1€¿ªW«Ò@îÇ´^ ÉÒvNî¦Ì-|¥ÞKÕàÀЫ¡¯ëpüîjÃmK¥fðÝ9_æ’ £]ÐssmŸP45”Gwâˆr´lC?Imb)…’Ži%ˆNФ Æàþ"á(Ï#ª¸«ér¹àÑn Š ªãÿhG(íŸyÐvdN*/4®[Ë;5`—vÏö&IHµÚ{‰ŠP0RÎ4§4Ù|ç+òu™ä:ð^Ô¹ß'TH‡gowѵ)"ÓpX_pÕe Ñ“™Ì^î÷øÄü+Ü£uêÈW3‰‘›­ kç·´‰uU/ˆÆÂg/%ÖǤ~ÃTíü|®(nyçèÑÍϦGÐp+ (Ûõ…;m<Ä î:b%ÉeöEµÉÍ ¸Šëš0j†^‡”÷»ÍÔî)lÇc×âÖe.æ7×_†×®=™ÿÅÄ+§*Ò¼.]Ï1´ ˜ÀhîÖÿ…å&aÿæ. 1¼Ÿu.bß#žrçòÿ:”0Z˜ “É¿»·¬×€LÓþãS«Y"Žì?#køŒ»INJºæ¡IÑÆszO#&:/LYH¼£¶·›ªŒ u&›™Æ¬K¦úÜ\-hk'ï &[y°gM‹Ö…Ðgº ÛžvvHMè‘ËïF8Îoœ¤…¾fýôL±«Åõò•IEŒÕe,þP×dùïÔB·&Dn Oê=åcncȉj¥O£•  ?ÛÙjE7•ÖSäËŒÐ\g…cñ_WÆ+GZQÅa¿Ũììþ*œü_b„ÔÐ&3{öïý„Õ‚9ÇÒ6MÆ=]|b ®©lÿÞ¯½¾çhßkÖªfÊÝÑË’†jÔ‘ü.E5`Ò|¹’AZc„ý1aÙÞÄ!8Ã8d8\Çl RïU.Q/_õÌ-7»‹!˜ÒYU;¨EcþX²VPT_v}ûÚm=k£k/ãfáÐ=/•ŒÞEPžú³²¿ÑIæD`™ÖÉYoë.tØ¥Aöϧ\ƒ7ö3-L¤G©š@”ÒïëBÙ²˜J‹HœzûàÌkn˱IeÀ¥¡ê¯6´¦ú†)³‰™)šAÄÁ l³¨€ê{á·ÏXEõamïéYðÑ4è=]0YXŒ‡5¾Ž´O+¦,ᬭ¯<¤n¸ºÎóýxÅ ß°ãGËn!¯«´gT]“©öœpÃ]ÿhÔlªCLìê6Æõ·aÏ–â,dtñM(ºÄ½ØKÖÈCÂvk AA·Ë)¡´…|±Êà "­üfzYp¶ü®‚²Ë”ÚÒ0Z‰Ÿîa%>Üœî#‡qwHßo9¦ºtZdNヲ¨¤`@ÿا0ú®§icp¾©|!“ÿ©/ïçú¹½ñÇ,f­êëPE!9sü}­Ñÿ‚3 2öÝíò‚eá鮯¶X‰r(}]hE`$ØÁÉü¯vÿÓx ‚½ã‹-í9Nœ`Èç ÃÚs†vs©2Òf—!f…T@"’.ü̳¸ ¢=ÎGTõn``„䔸À!”¸¢ÛŸ!¥çësÝ8xÏm‘YvfQZg*à¿– üÖ‡¿­‘ ö7!ÉE€"hÿ ÉCÞ *Vë vm`Þ}þªœH/ ‹ñðµŒñ¡ÊÊ‹læáúìË€IVKc)Öqç~,$Ɔz°2ÜÕ¤:ÞHÛ;¼4ñ8‰2Ò ×ßÈ Ä÷NŰϷè AÃz͘œ(®§Û-–©¡†¶n Éü®‰U,óm_´²%jBÛ{ã`žd4_¹ ˜±„M¶…&™j8TÀñ&+ñúùdœ 2D+ñÆ(œY§S~‡§Z[1ð_Bî |õš:£ËVhmŽ˜¤ˆ6Ö¯¨§©‰âúðºžI¹—ŽW¼:/1™%bJãE8wË%©l¾k怊ô÷ÜÈjy• “,ñ» }“78éš«ß6#Š5cáéQZ¡SŒ–*}òÆ £«!ÍÉmrLQyšBƒ©˜ÿÙ]ùýŽÌTõÉBÚ-½=Öüͼæ:+”q¦?0MÐÔ[£2€"Füɰ¤» ¶/ÂÉü¯ý›XÜe-9¡nÒ¼åíK}„Ž\ÛÀÑ^éM9®Ôæþô$s˜Q_uu ”nÂ…N|¯öMi•ei¸*®èíÄëÄPP ˆ-Ÿgw˜Ñ„­×¯š1žâ·íN#XO_OÎáSò¡ÜXR„sßG âDwK9ç0Ãfm"ÐÌ•0ûãÑ\3U—h—6¯§øV)rRë¸ ÎA.iôû\_†öo®T‘ÿ%Yçƒóðü\0(Ê‚¿å“EýN0îBcΜƈ–φ9Œãm3LôÄ= ÚÜʹðîùŸ2â©ÊZtz[Rž' ãÄIàf¿idME‘Ïu¸^l/fã¢s±Ö÷ s”Zúê¸{ûîTmþ®e4¨úöå*Ð<Š^y]kxCzÓå§—pÆÕŒ¶1p€i\àå¾ßΠXa"ƒ>ÂÖT-ã;U`9cf»^S,mgh›BEsšÅ8rl/”-é"…Ñf­€G³õGõ#ecÈ oÒ/üM”îŒð…ÔÆhvôD7ÿŠXƒ<á2þtÈ·mtIy ú[±\^Í£]ÞT3Þ¶y‘aøì¶ùTSV>Jˆ&Ð/O,Ö&„ é„’@ñú°ÅµQ¹Òþë>æ¯ySÙ‹WW{@ n¢NšÍŒ4žçPå‹O̹|QÉ õ¦¹ïÔ¤À~'Ù„bq]½‘pꡳx¼è÷לþƒƒ¬Øß³mTË+¸­0Ÿüð3:sQ òÉwû0%‰׊©«¼ñ˜Êë€rIXèÝüÈ1aÍK;-4Lµ¿  uPð1Ü%3ŠüMqÊw³†¼†< hq£_8áam*u§ÕYëf {q¢¤¯\5%’ìfYö›§.yV8_.‡#ÞA *AW5Òª—Å/úÏèçrô–ØŠm!¬i¥’ÐD. 1’Dö%°Øûì6.MsþûìéeD;£ýiœ<µð=[|ââ­¡{éC±3k­yû"EeÊ2 [ÓORƒ^½§ê0ÝV|4ºSGÈ¥’ê2ð’”3;hSôÔfæT懣„Q"]Í÷52Ù×³ŠŽËBWÚ ãHÇ´’¬ýÎsïšÒ–(”£üK3.ÆŠ‚EÑpŸmœTi­í[n¤PÂåÑð†ÐÞ  õ”."·½^žT%ç\ ä€}®m ÍöóÐM~¾½ðºíä›üS|¦Ü­Ls/ؾøîØÞôXˆ9õ5õ¦rࡺ v„mm;YCoÈ¥¸ VÇäþ3²Ú*1Â¥¦=…ŸÂµµW¾Æ½ W¢ÑÍ­`1ñså÷…E±»qü°Gxùw©nØÊ2Öºý¦ Gë¥uí™I¿nXm:aN˜ÉÅXV/™*ÁÌn>Ô²Ô6©+­üMm˜p§}\°:M+nvèK…ˆlà~M÷byâhõêÛþ,XÃñõ¨öOL¹Éß±u÷Nò/›pÿë)ҶΓc\㯚Æ=µ [ñ™Ž~W vÉä'`N–ÉN1Ñg—TÉÎÉžiìc3¡s*„›í…#°ãEf*úu{~a,f6s¶— ÅJò„ ;̶É8·ÿñ{‚‹šÏ#1‡WúbÅ óÅ](©is³gIîjïlmÜD»vXȸ{ÌÙ¨ãýn²æÒj;iÃcüM%ýw1bGÏ4?œÿzõ`aýU7dðçTèž5ª£Dw“, Ë£B›ŸCâágFˆ±xáý‘“0Ù+ªa*­¥Né`^7Ù´¿ó‘“ù =\´Ö@Ô × ÐQ$\M¾ÿl¿1|n—ÉŸW7ì.”Š$©¼b«.õÊ~µÈÊËÆÊßOÁ(µÎoˆÅ©ónWA€ê£Ò\1)9Zõ¶¿ŒO›lÇŸÝÁGÄC0Ë©óŽvbm]‹MbV¶®ïí“Ûtžkd&õÝUvåü/ $BˆËÞ à!›²d-ÛI®îv¶þ¯FbÀÿÃ| Å_kô2lÅŸ`çø÷䤫8tÏ‘§AßËT ÖæWT¹è2)à9?U,|h,Í<û³nSS!àð”ntŠáJW¸ª2ßúÇWs%Åk¾·á=«>P4BÒ6kvûgÜbЬGLjGn ¾ùq!•‚ð| OØÃÊ»´Óp³žãóCØV:‰î€z•\Ku»Á”ÓT¿¥rü3ï›(••½Ün²÷y‘ç^ùáy&úí “†“CÁLAk’ü¯Á«CóÂí­¶ü©•Á®ÙÂÀ‡$‘}§ãwýܤUãC£f¹Ö{¾_ä+|…ä|QHKœãYŽ3·$ñI¤ÓÏ8œ®x0¯«w‹¯1S4™N1ïÿHw.K©-ÀoR|’A‹Ù30Ã㦷GòÖTõ“"…‡©þíS 8¶>úlAŠj 0ˆêˆñœÁ’êcŒ²²ï€^s·‰t¼d_· óW=ñYõ“Yo2CÖlâEM€=JIØÒóÞm„š'FÜTÆà^àäõÄ:Ç,D›” ·o†:dàZyê; ôµJnÀ¦´ØKÙ‚ŽÕ™n8cœ—SÌç©ññÃóB ÛùLâÒèt,cB+æÆjŸ$Ã{#¶TR€øÏúä†(¾üƒûꨢn¥Æ°S"ÍOqô°¯úÓLŒñ­þ;&a­îš]›õº„ŒíoC̹+šðûæ„wè§BM…º¼T0>¿ +B+ª9n†»ÌVcìÆu°’[ĸÖÙU’ßæÖÓø«âžõ• y50Îäi#%7sÅGn°ûæÒAáç ‚g`bk0(/EzpÊj©ý bHÌÕbÓ>eEJ£¤‹pw8qƒ¢üµ®K(–_†™ëÚУیº '‡ÐñÜ]= €œUl™@Ÿ~Vïk­ÿ0Ä)b9UÂüLÙµ awÐO™×`ÁOaØj­)A°K_Èsw6¿uæ¡T!z~î=×Õrâ׿‡ÊKûÅb«ÕlÝÒΘ,×D×½ùŽÈ«UžòY?¯ý®dæû pGD¼Ãzj¥;1L+üƶ&·ÓàqІ†Û³Ðǻȱ%´ÎµÓ1Ki#ª[À2à86§Á:dÁ 5‘ ä?¿¤Ú±E>¾;žÂkpj5èžûç¥ÎÂû hÁ°@ˆöàñÚ—È$Q½¾ '¹9(_Ëlˆºîƒ–¡Opšô‹@+/ÁÌ;ØIüM-ÃEÜêFú#Æ»ÛÞŠîÈsqJét¢·U°]<¼°(:9øz-Ìþd%ô¹Û‚¾_zƒ÷mè£HWžÈ¹Kj““˜µq·×Ly'ñ%Lë¢3Ʊ_#©I ÷´Y7 Q{5ðuvý%õÞY2nzÒswÉ‹djºÿ¦ÉAjh-d©yJÓÇ™öz¿q0 ‹¼…kt×jýY"ælÌ»ªò'ÅÖnÐÔ=OW°\êž)¯ÍÛ×¹Í1ÞPdP LÄ_Ÿ}<Òý±ˆCw稀ªµý+H¾òrœô4ÌR~üLÙÜé˜Ô9#ýD†Uïi;"½hZv|„š¶ì»µ£έVIoQ†R³ÖÛå?=Y“ÈŒOþeñÖX¾*0ÅÎiý&ÎÛöµÔ*SÒqAHG/ý¹û·VòXŠš1Z§yM¯Úw•0ïñßÌmIÓÜG'BâmàAŠ)¿û*y¯Ÿ&œà¶ÖŠI8¯m²ÊiÇ«Õ$_’þ¤Ý³ëU“äú1 dPÍÉ¡un»®y·¿{í˜Ý‚Õ ‹G¬%fEUƲЖšÀøðÉ€ÍÛòÐ…dÞzà­r-ú-þÂxõŽÒÏ#üMšDûS’†Äðž(éY=TÑ‘Rj?ÑØkÄ[ ˜À~©ªlŽÝâÚX’ëé>7Ë4seòônÅ´Ø÷­Šg]Ìx+éÑ»!üû¢ t„9Mì¦ÈðÛ™¯ò«¤uÇýµä¬™“TTB ¢F7«Åí«üës6 ñº̈ö|­¿oÙ£´¹ê}ë?–~\Uuµ[ÇZ Å®ZaÚ,XK§Y@93Úö]ïßf6VBlÄnÛXÈí,7]¦Ã{‚Ü”:® ¾>'öCMc—I‰nkIZ F ÙCZòe{Œm|i%=ô¬üa;U+»ü-û6ÊБ,å fÂлÕõi/¼Mc ed ôÉ9ˆ8öE¹¾¨‹{ÖÚ@o ¼­ #"ï¸7Bª.ydk«Úv/Ϙ°¾ˆ>¼¯v¹ ºkùN‡àgM¶€ÏƒjΟ'/Ÿ(Èò…žRuá¼p0ñöœ#¢WׂÖ@Ê…öáòåy4± Ð fä;À›šØ}#VÍWuTÝ+6ìQ Šþ`/" S›}ëA >5°ÿ™ƒsMU !H&Ö×Ä ª5SGP GÍÂÜÂ&ƒ½X¾ŠÖ0¼yA»Æ¼? tM0…®ü5NÇ$nK%ç\r¨/,¿HºÉV±ØÀý•çØRý ¤Eîwq ž¸}b@“û'ݬX•òÖQ2C˜CUD-äÁ=Ÿ¸‚3Iô2"*=.P¤v³ ˜$‡¥œÜw)K·õd—ãæ}ÃÜöP½sŽdã~R†÷ 44(‡B±B’Cãùðqs)H«r§pÝî Š“})¢u…x;ÏÀƒ1=XÑ¢`'n³ÍUÿ-bs):Ñ=]Ò«A¾e…2òVF½o—G€M9|ñê}Ò ”ä°ÏEïNYh!¾u «ÀÆüLÊF¥LóõÞJÍÚ‘Of³€!/jçë|k*®®Þ!n»–B^’g¾"£õ±4ŒYŒ…Ú˜B½|cVüßúØÃ*žÜŸ åëk¬cˆ!‘³öÞ^šlßÇ€.øä7·²ÿöªµM}ÇïùM…Š¥}~–-ü$Nø!}Þ/Å×É‚iܸHé.:×Ò¯ã˜Ï?õG¹´ÖåS12žsp¶â_Ñ·uéŒÔ[Ûc.îû _±…X‡Ov 7Ñ5ˆeÑ›f×Íe˜¼6s*Ý5OyœÃägÑ\ZŒd O†ìUãÝCJQŠN_ÑOgí›`’›’þïƒÓgýü-óŸ?´ÌÂlª –ÞhODí;OĪ‹“Æ¢„Í% ?åAQK¤±¯»4·ÿûHÓJœÕ(DèÜ™òÎ0±ÜVP¦;–O"i›¶nB?{‹·&²”Àˆ§šb4‹™_@¤°¯âÝøD³ kl£þ0Ÿ‹giY¤WìCu‚p3;U‘à|$sn“#8Õê¤p~Àe.M¤?¸ôá´Ln ³ä®YëðÑÛÍø|ëè')t±Õ7Æ ÑŒ<È4¨ÍsÂáÔíÿ(Ý£ZNËí8Àïê³. €õe™zZŸEx½Ü)±jNÐèAÒƒ0½¯|ü5BÝ®µññ‰åþ¤Ì2@µÃn¢rê‡ø2B¨)$@0êÉÒ®qe.nH=,*FÀ­£,E¥ÁÐgúËt¸Ý©ÏA4s8=f=¬ïI9Ôp%Ç‹ Ón+ÂQ™ÄL?ØmÊïÎàB÷Ó(vðC™?Xl Þ^X(v •}ží"2‰•üÔq]Ö¹ÃÄ„i˜s¼:Æ0we)ëì=™¶\ïΗy=6(Ut¬QZ„ H-}EF®Œs>¬6ÁÚ~\žI¤wå"E\ß!Š…CÔFG-焘„®å%j‡iÂ'ƒ­—«D–Çj•­[ưL½Ýþ¼–‘ Éü®˜d?ÃÜîÿT±x•ÎV“>8Ã+X‡`0™³Wö <‘Oï‘JѦN%Ø}®p›Òy¿Py›¯PPtûï¨QHC1%,ÛmˆÅÊI.·õX¤_£LñÄ¿Þ4 ”#0ÅŒˆÌâvtÞ‰î~ɯ§8£‹ã½xè)(ÌÞȉ!·r³â¶ ã¨ûV?†¯ŠÆ^îg¥v(ð‡_RæÕnL¥‹U»=m8–mÚpW &ªjL/‰õh¢º~(-žN‹hnÖ ÌÜÌND”.™hñóâ78ŠfŠLõØc¸ &H óLi X'20§ P%Ø„Ê.£hÒJü«®²ý)-\×òÑö{ÄÉò¼ðw8ßö²Ö¦4¹¿Ú+ $ýN÷"ãv›ò;%t Ç3ÄEˆäb öÓneØ©e@£17k±à–$̾Tð¨\z7àr ÇÞÃÓT¹b_S›Øáͤvš£Õˇs•±dšõN 8Ÿ“Çhw§6ÛS#[E€`””¦TDfp˜9©Çáóô€—þg F3ˆ)²ŠªC£A½8ºö9WƒXè¿Á†ÜÕhˆý‰y„üÜlj*‡$ÁZ3tIÿç×ä>_]ºI hÍ*IšÑÔ%‡†åT~èVi?¯3ŽÊüMD­ÿÊ&®`"äSŸý¶ÎÓÛu©3`YT«½ñŽ\I¨­i÷ ¹Sõ`÷Uð„[λ†,¤<ñEé¶ØØvoù~HøöÆ3ãÁ­i$|¶Ê@²¡kÿ%ÓÉM¹ê ‰K"`(ŒÅPš|{$>óê_äsâáµÞ’‘ê<´D`¦UÆjûÿÍ=iG­sÖ¸Å{¿‚[ é0úp’¦æ.><år¤íéߘ$Êÿ^¡ŸtV”l@¼éûBÓúþ«­Š(¿ÜûãË¢!­ 5>º¼]£Öv³}›ö [uß3ÀÛ/Ÿ¯t 8ìý.U k5Ùl¸¢«®ƒÄÕï‘ü|´mÎ2’n‚u°ò2·÷L8ýÂÿÌÑXÓb¨l4àöŒ€¯$:]4\Ã4n=ÿ‡ì¹‡®²TH\‚¨ãï*°Ôª‰PÖš ûyÖòüªóÚÀ*ãäÒ.ºÅ¼¤pAаàmsaJQÇ»$[Éݱe“Cê{65žÄÕ-È]Qí¼ñüƒ¹iéÆü6*¹Xí Ég+í aæ·œƒ$,W¢¼Î0[*P¶¤±X:"(0@Áçv¨Gü@‹Ø_ód§»TÅ5÷ì -ô™Þª‹®é¤÷Ü|ÃxïòÎH +¸m ë7¹a’}î.HGf1î¯^³©ü7×- ‰/<ªôHè»öR£}>eÑø€øEÍÃŒ”ÖÂ5^AiZS¤U+Bß08Uª2eE¼w÷7{UÌëb0ý™ü!8Îj ™Â [ž‡bcMêtc -´òN€òn/–Þ×CŽW`Š”ÓÜ[vžAåx¨nÄüÙ(S‘Õm4Øeç!XÈl0ø¶;Ý^!%Zo\uí³ä–>`äKœÆS¡ 0m\2µùï:bowÚbC5×G ñĸžLXÓv˜"~ÎmzØ+‹Ø|ýâ×ÿwápŠDõ«Sмi]VÓ>Ø =o‰ÀF‹`À©%CÌ~`‡˜.m7>sÞ6ý@®.ʃzËñ•'µuUš i+C^sÒSù†VûW» £/ïºó:sðþí#Œ ·á¢<ËŽ]4‘ƒ ´‹ÐiKh™ËWíþ_”oï#†n¯G²öpdT‹âµüÙÄ/¬ÅV‘N&ÔÖGeTÎ¼Ò ³àîR˜´¸¨ý’²Nz\㯮uÒ<µ/8 V^J•UÊd“=kîP.uThãjñ6›Y•ÒŠ…c*lî–Ø'mo¥ƒ¢c°èøjÏ>?Š(®àŒ¥/z¶W X †ë±_ž“Eº¢äŒ6zÀð½®pÇåû¦H±rÃ7:JfG3¿òŸ;JWg2ÑChÂ÷Â3¨žzkÒðÑšKAó …{¢•øP){ŒòK܄Ӿ6H^Híºr¯’]E¹\K˜i{ƒdáTÌÆß+( êmï·ª=¾cq¯óò°®ÚÏŽ«¡C(§‰ky—r³üÙiM婾ânf†Y¹¡<Ü;IXˆ®Ýá™ —Þ¿â[ š~\O›…t޹‘©˜‘‹ûÀ?»‰KjL6>Xd]”£|Ú²Ä+Qº«á2©S­•z7*äŠBÛkX%®ªú­û?Æ»´üÙ.€H¶Ê¡>:YM³ŸšiC²*úA{¸’OiªÁ"Œ·†}ÄãVì«dâ0$Ÿã¦CÅ¥š´²uý3ŠÐg¡35e\úEÃg÷þÉ!ôTœSp¡„ã»qØeø£«ºžX?in õ£ÏÝ8TÂj>Oò üåØ`4¼ß½dC&Õ;7óÒ’uåT¦€Ût·¯\ký0o’‹5d™³øEíTdyµl°TÙ¦Mëü«]÷<c!½Éœà¥ØÎÝéÄ–d¤s¥GœÐeü¸âZ…‰OÚú 7º×iÁ$ cÙÈ Ùcê¤Ækë´ü|¯ÊÀÜù„oý^:¿•±ð´ü,*V˜ú*“+gŸA4ZUzìÖ¡%tPÜðºU؇×F¡y³|eß¡Åìžæ[nÊ´ aV£ÈH+ð~Oò&.µ¢K£¸o%X“+VV³6æ¥yá6ŠÞ‡¡¸Y¥—qcMÙW<ÛXß×ä°viÂýw± Kc¿h¶ ozo¬ùæg…ŸjT(/RœŽ»xêêä“MãqÎXÌh.© Ú´_¤SÉ„wê.’ýsÏ åb›‘ÛÓ àCUÙžÌãQÌzrÑàÛ!<ÇÆ½'¹HÌúŠ ÕªõÇ÷„Þ›Z¥ttfGê_Õ BP9g_}OSê¸|ÜâèMråDpSz›ÛLÉ,'ѬÝÍ  ¾ü5[—‘åJ¹õý‹;¡"þSP/ƯË5¾X1¼Þ4Þþ£ÖŠÊ•Þö±só§Kä~šÈþô.åv$O¾fðÑD×â…ãÿªz[zׇ!…+è®ä8ßmãoVÝaˆÙd.Œ˜ x™†>GY$å˜ 4œ—0ã°IAâñË 0 ¢ôQZn¿Âécúg‡Øb K•D»Î~-w  Ò ¢_s÷Ó­A™Q5 V8ôz¨8ˆt ò™ Y/ìõnMÁö“ÜÏû\¢é¹3_:W% „ƒttp¹ÞÙ¿†ü0ÓxnnÐÎbÃS¿Å9Éó8†_¬|xô˜?ä`ŒO½døÃz«Ã!"i®gˆGíc­iu’³Z P.‰€ô@âÒ‡âʇ;Ú[É­<¹¢ÇÁ[G¶ÂZÜ™ü)ô W ¯—Äÿ›iÈÈÑ÷«FDþ „7Ý…œ^½{•ò™¿5 Õ)¦bëÚ#IfFIüdȶ€hôÓ1'Úóß›ÄJoN*ŠÎYL}œÒ³´ j7¿àÆ’X¾Ù#¬»±úG%5‡ŸT†ÅÜçÿüI}Ji ðT÷ör§q–ñ%pu×üvÂljáØ§¥?(R¡×_^FµYÝ= Ã.Äõ‡ý÷q#ˆSë§‚RÂÁƒ#‡Z±¼ôH0LPÓ½X Ú@F„Ð+ï+bûÕìõÛeí:Çæ¬×ÙÉoƆûdC;iªÙ4Þ§–£¦A^¿CxÌÏê­?œ ô²cÀ|§ ½Ô¥bÃ÷4†‘‰Lq;oô+ÝDa¯C·G·£j—g¡#<”9Nq[®Qhñb# ÉŠç^¸"éÇslK?K›–Ô•Ü+}8üM&Õ=ˆ§ ^¢ßR»Ç –EÛ×:Y†E6‹Ð 󮟳ðS—àP9‹!2bû´ÙRŒ>UaD9àeåÃ8ûë•í‘;’â4ø ¶sÏÒf;® 9µƒå_tä'ãŒ[ß@^™—¼ð;~ß}+Xµ}Úá=·×Àéo£ÐjGD×ñ]Òå.ÊLä”s;î6Üi¼·ªAt©gk,+GÉ»mŒ¨¸ïá‚\ïôÆÿk0æ ë_ƦÆ-«Æ¤Î®ú6Ï™k/ÕmüËÒþU™²Ò£è“Êë÷…µüî}£ÂƒâÇ~ÎÓùôïåÀ ÿCó1\ßàÃź}äâØzjMçƒ$—D­:…bJ‰Zëãœ(’‚húXVŒf ð„ONl=a§™6àwÃüª±¢–jP=o±¶¿IgÔÒ¢PÁ«ZBøú+ªÙ²½ò qË›ým;T Ì™ßü¼Çš`â*…l9ð—kO;š”ewa&¹%Ûƒ†ŠS¦j.`@VÖÄp?¢'vŒ{ÆX÷«màO†&!2o&¦H0þ„¨G³0ÎÏÔ2’Û¯]ÿB‚°u‚ÑÑZÅü°ÇHŠ8F9ÊÝj"±bz3µÓŠ a9OÐ8èÙJÏúÊJ_È\èÉŨèrþ'´²Ó’BW|˜,Ü_ÉÂf¿œùŠ3˜½÷)@t qLÌ¢{sQ Á [rù_T¿ÖÜ1f¼ú>@v†Ò¯ßA㯂Cy5³>[z"ÅðŒ?@el'¦Ïm>é/).Z}4^&QNšnR£F>èx¢`ùÀÅRM{¯ö´“ÚD¬©rÚ®ŒèƉsÅ÷£ê–¥§6 6AÉ‹UÅwŸÑKý.ÅÛå;Cª‚S†ÿ 3D:–"ÊDnÿ’êZ°!I½};¼ì_‡úáànìÖv‹)*Iïš .q8R23…Cýw»3<=Ó=ÚÄÚdâþ-úCñб)Êvè—H5„žQÅ$÷´ßÎ é´^e´#û›qFk\ã¢Á_øÜéÇŸÝÔœ°ìúcäé¤jÊ…JͪÙDö×?$¹*÷·}¤½óöKùPÉ™ü5Kü=ƒVkK)H ¨à0êÈH D¿ !?jçç>Ø--¨§"w nFÌÓmœZ“ÜððîýŸý&AMì~)Ÿ2OPƒÆ¥*`DÞª/f4*•œ›jÝϱO3¨tÍw¨‡:éA«X„cÒd±(´n8ªI³CNµÙ­È`ÒXqw-û1èNŒ2ÈØ¥ZÍØ.7{ˆÚ›³yßDa"Ú]-F¾H¤®ª±ê8/d³|gkDŽ_}Å/ûEpAn* r×+=L¡zÖìòâüL¹,xz·óhnÆ—rþBWsQj_´4¥¬w¶áH4Šó÷HÕaÖ£$Þg«kfá&F‹G“:“B¿Š¿»ózæ¯ÒÚdkpª HDr`8/½{©eêJØ­W:õtROÜ¢úaÅ¥pˆ¡C”‰§ÛþDiw‚Ë®¶ ^%"»ÍåR9ncßxSÔ"u3!BDfí6±–ìkYsó"Ѻbþ•Úâi°Kdx)Æi!'ø^ФyMØ+Ta|ɺ뀢à# h»üL¼×P‚õ—í >Is™Ù˜eCÑQÕ‘àÐeJX0?£äayŒì-a„c¦SZB7%kXdŒ¤óU/=ÄÚ»`45w|"¥Î› ¸ícjß´.I&m¢:©gr{ÆyAbnlZÑ<ÆhWÒõýŽ“ –Ëc7_įwQO4â›Ҧx2º˜ßmí›È_½Vâ+Œ>t7)O_ØŒß |¹cûÂVËå“N­ÉUüMbÒN8{vá"4!ªv$²@G(¼p»›ìg=ùÉl&Rí¸š+_}àîwSñ+ôž\#kø³šçªwV¬—ø—¸Tƒ‘ê*ó9Ê|ļ}íåuäXÈš–sŠ/QË¢D¦ÚˉWÔ|…ùA}ÌÆY|sP©ÐÄ©ŸPý€Žm‚þ2Çáºr ÷Ñg‹ç´äàgäF\Øœròòò¬q`Y¢³ t 0˜‚‹{µ²^OįAO—ªÓ1ͬû.,V³Ø…f©€9s‡ò×ÎF—~Äü1¢|*38Œ*•zgjˆ±hî="q>ŽÁ„3´!-IÊeÒ0Ä7x‹òÕzø9Õ¶ñÑbÙ†òrý?¶Ags…rÚܘaÀVJ{¯{·x'KÑ¿%ÿeO#“ϵ Kw‹© èaG"¼ÙdƒC;£ø­¥ý¶õçm“¦Õ”Óaï¹6d«…Áz^„+”¤ý<uS3:hûª2¿7óL)œíw×ó°Ë`ßú4 Ú2/Úª?±Š“7RÈ]~LkmõÒ]fñr?êµOggSbC¨ä]·U™­:ÓÒÒÜàÝâêÿŸÝÛÛÙáÝÿC×óèééçÿ¤âòòçêðÿMÛâóÿ ÿýÿ æîéêãëÿ¹áàêøóõüLØ¡ï,$,°[îè!èùþ•\d¨3’FM‚1”¾T}¹i{‡Ýs6f´ô².‚E«Šýpÿò¿?7š•¦{ú™ßÜ…ÿT¥ý¤~eÛVu®Zh¹+ÆõH&xñ‘lB Ð`:v6ì b»ð4ñ”x¤‡ñŸp'D1v(§«¹Z<ý¦Ä tI««³Î êø—Ád§ ×Àò]ˆ‚ æHDqÀÃ%U"•¯Sçê‚84¸§â¢ÊHÈFæ·´æ-€ÑùA9¹F4lÇx†ˆZÁ™ƒœ2üMïB#g§Ðmn~tæúÜ*éºèQù眳“d¡4Àñò¹­Œ9Scëõ¯ ³›w(|²W؈¥G8éYãÑÇG ¥dË4«©ÛxW¢V­:$%¬üÜ^ÐÅ2mð­Î ârÕÇå«ÿùóЩˆÆ'X,}ç>“æ}‡RÄÎãþO…®RŒÍ)#DSXp2H«Ó;z¡E­z”"Ó,P;m.È'ZQ@K"à HqÎàâU¡b¢CoHOЩ †ÛúãÛ^|“:±¨qüNM«W1p¨i)J ˜{µÁ #þ¯I¯ø$å8žÝ™Ç5õÜr#•õ|üÂðdK@=¢Óù—‹<૦úx‰)¨Î)/ì.Áa9Ýðz™õnÅ|+ð°*ÆÀô ¸ð·ŽÏ*ÍŽºqWÈe¤Î=ëw•;c¥¤@ì«G¥ |-º!»õ6úf™=f¼y×pƒÊR:'s €B èîU øÂ»~ó~ø B’ììs=GÚªšV;]Ù©,]´µ§&{¿µ*ËkvZ¹1ðâ}qäÛ†ü6€÷¨ìg‹ÏF° >x5z_Y)_¿Vö%u<'Ñ#EÇ™v’UV3FœÒϯC••ËîõõJ=LÄ Ô“Œ@ \òžÒâp¼2Û’ÙÁ@âbÏ>Gû“H8$cªwäãúqOµBhÕ’žú­Ê¡ Öý›¢™R¨òƒ”EÖI-œ¦eÙïEVÔö±äžä°®¨Í5g…Œ¸$;»’?aó¢×¨=T‘Àˆ‹«¶%ŽLc¦‡ÓÛ!—ïâ \¸}æF«s°o™üžìi§ªO » üL°¬}]b~¸fXX€Y•øëÅ!’Ìvd"U®?´ÀˆõÉxI¹gŠ–Ö÷upÎ3Î?ð[JTG>TBFÕý›!Ѧܹt);ìW W-S¼Öï§²ð˜CŽ˜ã†ÍÉ1¦ W­:ÇÿŠÄB›z—FŒ·2L¡r â32 1R ËkXm’(µÏÐh–e"YRKUÉÓÝGq–$sr#šk(N–kP £Vfmà .òˆ0'‘a“GT\Í«Êt^*‘<ëB˜ä>»äí!qÀÆEŒ¬›&8ùÿ“üL½¿/$fZ†ª/¢Â†I¶q-µ7ƒ®,iWý&¼¼™È4ÆÒöh&}ýyÐGá+9§Û‰}#Š.^Î%õðjã`àÞËmÀ" bÙ¦’à îzŽé-Vóþ_c"0—‘ý[˜ÄŠNå$ä•k6uPʺWþÊ·o’o¼õšeÎ~H™ÌDj®æL‰ŽV“i:;•óé¸ÜBARÙè:¹kdaELªã›Lȼ 2žËÄ#j­/ÁT2sʶš×‚>‘R¤üœ`÷JüLØ¡‡yZU¹KåÒU3êlqDP«üà ±›¬@ßÇ‹ÉñrŽð"ÿë»è()é?wCÛ‘“ÃÉt_{[[ež-dG•í§?…±ÁÂÌ*ùLC¹Znë]uô/µ~T{æ°û/QÒocž²Ó·Š‰'„˜}¥‡X Š®Ya fÔÞ˜ESØ÷Eîó_k*¸¦oÏðÕÃRï·¡ò]5×gI¦Aei9æä ³ÂdÒù$J L×Ý·Ö¹ ;b–ä]ªu†8^“my²v‘+ìû6“ìÆ©áîIüÙ)~>Ï:æ ˜¡‰ íŽÝŒ-ãQÍþ©gÅd`ª­¨Â`Yá’»–ÓÚæ/·¦vê&còܽ¨æ‡ïJgÈ•vž¨Bëß/1<[°oNñi¨í¯½õÂÐHáf€ó‰Ÿ oЏX ô‹¬J^ëØ ´\Aå&§ç)78säœd«l­ª°GŠŠ$oœÊ…4ýDÏ  Àkr ‰?Ýa ‹¹±À„Lû§ÌŸQJ;âžñÍ6å†öW ì䦻N¨’"íX&Ûýš®q0_ƇyõòødJâA>ÝÈì{äffº}q·ü}[oR<Š^UXX.¶îú©3»®sñÓc¸]L›¢†Ägõþ­0\T}"áÝAÐ|±eÖ9 „¥„ô l¶*fm¢rÐÿ½†ZÕŽ”R ²AÕàM.ý‡6Ò1SÒ%ýáËùC™×Ç„s’*™™©ÝÅõ¼5ß}ŸQoš¥–ÚÝoÓ´Ä‘I üX:cï'}6kðõ™c.5hÒÁ¢7]³ÁAøÞ>Æjžˆ(¡ý°>f¤®«ÒÒ…8ÛÝlë)–BlJ:f­½¾µêŸ+ª´8äæC9š”rœÝ¶­¬§÷Ƚ›¶±1U&0QKg~ØÌÐ[ÔI ˆ$Q…0›éüêšxt!åoõ‹UhŽF8†T1]Â]  ”DO:ª Æåë˜×§xöAŠd鸨r ÙbSÎ#?É(ôˆJß+²]†\ÞA½:2u…dMÏÕ_Jj#,ÄlDÞXÔ±(ÙÛs+ÉhàðØ={í9ñq.u/ð*º½¿‚€N Ûƒœy`<&-€›††ÞRGbüƒì‰Ž«ˆ˜çÍD¼¾âV6~ >¾Nf6D8qd1ûC·‰çÉ’˜æño™˜¿<ŠÉ¥¬b8Е˗d¿R‡¦ž88f6ŸI@šgg¢‘1mÑsçXóLŠl ¢g€üý²²ü¼@ѽrä^0×òïÿŠž -'7Hl(•1)bflã(8l'sñþkÄD½h§`/¢zf¤}È$UoMB˰¾G™íáRýðø¯¢—ÏiÿsH¬©2®øFÂ#ÑâvâqF2s‹–Ë0esC¸äÀ¦©gÁüX×:A—¤%èr"¼ŸîÀaC qqNê9JÊ$×ÇØH…‚Êy1o€þ/ù²HOÿ,)ñŒM(Þ˜|çÞPÖ7O;Iü6kN¢šôÍk4vTêS˜"­l“f Z±s1'´­ÉDEÜ£ÃU³ú<Å3èif:' õ2F˜ÖÐÄj Ûj»jÉžáƒÂ Öà`ÑKvå_Ž›XZ†œ"Q¦|‰„ën®<³êhO šðÃ`šµë qE‘Þd¯P._ðc|žÑ7ÄŠJ…è0S…òü¸ê0VÂþhä誚NÈÕò¸#ÍÓéú*SgBÚˆux´ˆÅí¥úcZMõ¨ŒEm ‚tÁ`­§ðMÆØ´Wxö#hyjVü6nsvéÏM4ÅÒhˆzV¶òŠ åŒeà}s@•ì‡!zMÙã,†…ä4Cc§ÀÒvŽÎ¢!`Ð.ê>bCöŠÊœ+dó½!“ÄZ8ÐV7\qí¹Ö•ç´€B‹rPëešq> éªgLrÒçOÏ5qR~Ä W‚S•[¬É /%st˜5Õ9¨$Êô^×p4³X:Xkè«´òù&r!S¡ èO© U9ì"âü Å*U•T hòC=Ò lþ¼ÞF,«(f—oõúÌ,¼1Ð&"ñÚ>ZðæOü\†]iø(îäšoHZVO줦4Oáojw©–Fî:cªj¾(—.‡¡4Û+{æ$ßO&ŸK²…CH†™¦Ä+ú`w@1\¾úÏÖzšjÈõ‰$h@Àwf ¯K€#Zù|š¼1k('o¥é­šòwœ?Ò@oKUàÿVß2Øa3Ã1h÷ Í]žF³¯ß,íÃh­†ã¨ •ÆÍ«`»Û¬BÁ4õíþ“Ï ÁªËjhQ5ŒîVØÉEºUÝ6ªŠlh³§Å¬™‚ï…pü}a&óbEÔÃY–"¢6LBÀA¥ŸÖ²É­¡f§ú]øªH·’†; Žßǿɯ1p衞F“׸óè*÷*"aÁŽdJÈ~ ÀíM6;ÕÈe¸)9¼çÊ+ƒ²T@zi´± {ìΠêŠÛ‰ì+áˆã›‘S€ýídç³Uíû Íq•±×ºÍþ¦É;u–Û~Íç-¥Ò‡7±f#jgÔ2\z™}¯áÛÚ/3ÀËÕíë¡€ÙjÒ=Pv¢{§åƒ­™=¥ÂtéóxW€WÃë‡b å$ ¥ÁµVÂäóŸ‡1àp4útÖ—LÔ¹0B?7uæÁo0Z+m58AmiÓ”n{ -F2»U’0x4v ØÎ3 67?&ÄÉUý%"t¾/< ÚÐqÈ)È¢’^ú^EüL¯Lfb€dŒé`£l{Ò!°6oÈqôùî–ßfÈó÷/kº)$’@—†Ž¯æ7¨rll"þ}ùùaÏ ÏìgïÚ>,–j÷¬Ók:`ØBèZof£¤aaÈ) ñ<Ôi†…þÞ´6z„X˕·ûkuŸÒzFÐX;£ð©Ãwf¹ûW2³kØç «8&ä7I-R“@dÌ„”) Êºœã >ÐÎRVy Vºb²Ϋa4S‡ Ùše"Ȳ †÷DA0\w¸@äLt´(â´iÅ"æ=*–Ã&Á18X ­n´<³¶E$ÕÇÖ“á+ÏÊûó:—fV®¥4©ç›,@ù† ô¹DÈ.O`y´µž6ÑFw…ü¸âÕX™,T†”q"®÷Æ¡\Ï~h¢…n§+Úò¶#ÕrZ(®Ü YìÙã–N8Áq†2Î<‚b õì´dy&õŒ üL°¿ «ðaØêB8¬Ü”Nb˜f@i©x¿OPÒQÑ=å…c¢ÿƒ‹gŸ:Zψ^r½eÕ~ÿ;Īݵ ™Q`TÑó¶eŒ¶¢ëJµ+È-­^ÞÁ8«M£—®4É­1¸ áà ¾+-qÝô·DK¸£A öù¸ÁõOÊ*‡sñö3*>ßãßÚµ–‘ËQQê¿(¸¢òä£ld4´/æJ9T 6É“‘JåKøeqïó6ÄK¼ø»NZ%ˆ‡è×Ô/·q ÉËúƒ»Ñ¨ƒN Ddóši/03-í峿ðcGm-j=˜Ñ×cÉt²ˆÔuø¶|èC~""¬à÷ˆö1·åÌò/¹aÙæhv– Ïå9ô(ŠïÒÆÞ©|Û5i=tŸ¡ž£vÓ=œ%ÒÕ’yŒ6Ã- ¶)õ¢r/ÆÕ3%—œEÈÅ(–À‡—ñ3ÜÇ&<ÚFì! Œ¹mü1ŸÊ#ñ_z2_£½ Õe4£Î6#{¸?`~·ãa ×&ý­Öžx‚)ß¼+Û¿9ô­UéqKýZŸ9[r‚¥ÓI9¬ ÷bóÔ8Öu´2Š`úz’¾FV!f@¦î‘ñõ´î¢"@¹ ÔyŠ<œÔÂF€o·‚‰¹k©í·“‚I†@j£: ø µ; àãÊJìSâ4F®û‰%ÿ˜9&·i}Ÿùø¢m!Ç~“g+KÊRP6„›á,´r20(×܈Xh}\¤âa5]ì[lE ‡×C)Ä5ö/ðí„]D<0ØŸMìXû†vßÙëW›)e*`ç^!Ý÷B½&=xò7ëР؆ô,Úƒ÷çªÝ÷ Å·@X£˜“íüj¼xegVŸ=-s-ܣʄ®ÔÒ^Aó$Òü/óa+À³2¹¤³oÂP+ºÙA•_Ý#¨ž‚Ûgf)¸¹îq¼™cïÿ·úì¦âGÀDÁ.¯Ò{·³ŽMa×Õ¾4 ¬™ë(ý¡x ³üÖ¾o»bV*<Òñ‡üÜæœÂ÷ìûµ‡”ªa¢ÈhæÊ½2ׯK¦Î'‚¦eŸ*U‡4ö»ˆßƒŠ&Ì»;Ùûâ•ÁèWêSÇV™„º,mo²¸±ž~ÊÁ¬c¾iTØÄ+]«†]8Ož§ëG-0Ÿ $þÃ$énõs1yΗ´¾‚óÛ¡¨}m5ELÄ}=(Œ)t.È,ÓÁj‘þÛ¦<»Ø…/uŸCÅÇ‚¤ šEˆ÷È"¾ÿ*ÜP ¹€ùy=Z_ÙŸ+ù\úòB’ww'?hrŠHQ«)ªýΨ«Í±%96C:³üL´_ þº2u «Ì\uµ3úU YMÔþ4Ì—F)¹!e<@ñvÐ`+´y&d*³hù%¿¿´ÝræDÂ*ÉPjaÅ Qé¸ÊéU.ŸÜÒƒ§9› A„ˆ™%PZ5Tª¥É׋Oÿ‡a=7å©Ða1Å£æ‰äíÇXaIÿ7Ò[©¤ú?Á­Ï×?×}+Ķì¦q‘h¶ºÊù†ËÔ=p>¯ØávŒ&^G¯d=K”dý—ô ; !óºs\=ðàäÓf ú¾˜ …zÚálG×;?ûÚhÁÞ¦8 ñüÛ‰Í<Ò¡pÏ]œé7¼T¨° ¹ó—Ü[Ý&÷Ç"˜v:í©•==¥ÁVDzgW‘3°_"Õ¼qƒw>-¾­<€úo)ýWõ Ùx&‰]h³Ùû&ѲÁEl¶ˆÍò æäßjJø!7\TÂÑ‹ï)Oî!›Gš3Ú[Ùì·¤v7;DÀ‡0/¦é˜± fUžÑ÷” .‘¬ö¤êe¾”¬<»âvªäþ0Û_Iš+éïhá\2‹÷Ê%­_ oh=Lx­Ñ£Ñ€Sûýû/Q¹•nf(ÛN­°è‡CÝl ÞãD eK¶¨Ÿ™¸üM{–šk|V‚¾ß^d´’±}EBX„›:ÜÁÀ®"ƒ1#š€i>“ÚÄh7øÇû7BH‡0 ÈM!€¨X€è¸(üVBV'÷^3\†÷Ò´Ø´o“…jÝ¯Š•¡Å)”Ç5z|dIæ/&çÆ1¼¦=­ÙÆ#ûÓçÇ»°UfÀßèg}$€ t‹Ù@=GûÇv#®­ó†Ò·vó«“1šQòâŽ-÷hÎlõqó}æg”G.ÁEòù‹ï…Ê|æþ¶Õ×:WDáÌ3#f}ê«ë”¡£#L&RÁw÷ƒˆ ü}aw§#û™+Y`›Ž• wíy¾¡Î¾mdÈNk(­!5@×Ùeéů°­e[‡^uÈäru[%Ú'X<©)Þùz²%LŠéÛ_ãjÚ Jž€ýEFzpXG¸Ôå÷‰dÉI«–(“öÆ·10·i­èê%*óRBO±]yí˜Ï|¡V¢,G”Ðó‹à–Íbà‡^EªUfÊ_›ÒäÝb­žD ò{ʽ‹߈ÝçM@¯Îþ$ÄN ¢XÝ£—ßU 8f-ùc¢y‹t4OÚ)ÄÍ>/˜wfœeè+ÆuÌâU­.I¡ý„èåU ›K01ú 9S‹yµô¬  ;…å…=PDÝVÇÛ·Qëî¤úŸ·Å}}/ü’Íg6û?ü ]˜)¶ÉÑíM)EÛ–NOÍæ™•‘èS¶Ow½IÄyÍ<ÿE!Ñ|‚²üX¦!%×~ƒŸwSÇ$diý!Ù¬;ÛßÇ;ÕtþÔf[±¯ç˜ÊHZ†6z\ "ûS÷b.ŠŽwºrÞ/Y8lôáÑ`´ã1¢r;¦µÎ ¸J}ª…ŠÊˉƒt øL#æaûjס> eÌœ¼çMà ‡Pép[i"¦wŸ ñ³ 쳈ƒ¾pDaóò[óa_`–Õ]j rN“_2`0éÌI”hÕè\9Órµd¾µ¬z¢Á™Î–Ö6·×B¡ ]NÛ¾lñÍשÇ1ü5&á;äÐçÞ]]ª1̆)ëðÀŸ]øÙ&l7¯è“R)ÂûÊ–Röt,ã`”M³F®ß^‰"¥Ä $u0¼õ¸7ß©¹„Ê­¤ÛèÚ8jޏ}.ö-ß—E)¥„¥š¦'ó—R–p‹É%k¤ˆâ¨Ba›[‰Xä%ø‚½g»—Œ©p² –ÎÑ ­Ÿž¸ˆÉ|ãFgùx²\À~–àÊLq >Mè•<}=´ŒŠá¸mu(×& ËcÈV÷¬i™º¦\ñÍíïÙµÞ¯÷s$(µÔ5üLõawff¢‰‹?®ã0®lãŒü¸2]ᆖÞâð¼¦Û㇜ÿÎ-2½VÆã'5ÝR@æZãëÕ™§ýbkëÂ:hÕR±VáhÕ˜FŒ©-3x2GJè‰ hÉIøf‚j̃0¡Ý7ãØC2_½ò-¥ÒwSÅB;ò3r{*RØå™•w^fݸÃ*VüÆ@Ú2[ØY>ê !}ÛUÆÿÛq¿2ŠYG†URutŠÄ‡¨»8öËãŒ)ßrª"Þè«ì7ú)_‘tAVð ×x £ˆâ&Ȭ‰ÿðØ8˜wURàs€`R°9qeRê— LòòN ?/Ð,;ÔÛÍÞ7á'ìŠ}õ3@”PUâ'Uõë?­â‘”W`×ÙÐTPo…ùª(IR²›§bæ)ÍV‡Û¿ºkhÂyzãû[ü|ªTÔ»rê>e^ù…IèÖâ|ŽÆì¥É‘6~Ùc¯ÓTQ{ÞN‚­¬ áa|²ÿ‘“¬Ì”2¢¥Ò‡Õ¬T2a Û-` Z’ÈY†ójC1딤xùŒü§_~–×â:-#JÂjpÌAo6×G³ñiõ}ÀÛ”AE|éy©Ò!üX‚Øuf³úzqeZëg}Ý«»<€öM.Àûþ¸Òeµ§Ç_×u GeêÞ ð¼Á‡µ¾¦98Óïl_ð™ÄªÇx‰~˜ã’ ŽT&‚§A‹ÞÜ|\ö’$÷z&Ty\X†}äô×ösŠû(»¬Ð#‰%Ä&r{MÖ*b!ÙRÖóË—Ñ=|°GUýÂg B!À)ÒÄA. *ibDL¡,‘fÓìWñ)ë—pϬ<îdÊÚ>³ f"k¹ÿïæø{»4œ1Œ'[ ÝÃ*d@S¾Gaãx»_í¯üMX_̃ À/ùƒ ¶P^AÍ©”»m‘2lÙ©œ™}C» Ž;Ot- ißÈ2Ê%“§¦ƒê%xîÛÈ5 {І!â¬'ôivÌÓáÂÙð á8´¬Çä–¬É¤Û ‡/$wËù–ׄ¶BÍ"ÉÆŸZÃÆÒÌ„ÿ [&Í&M@z2ÝRƒ#ÇCZ(ÑÔ}4d…Š)œðÎ_"ì‰âtQ²:8 ‹db…©e7ÊMãuµôep8 îõEÿê·FÅyvD-mX Ùãɲ͢÷Îu]èºO§ª^üM*ÐH³"8l€ËO°Jf>)xëû­4¹]“ëöÇT)Òi®oE_=‘ÑÀ—WQÅýû{ÿåbâ'—Óæ4O-]=˜êR¹‚ÎzƒÑòá€*tò,ñ-æM¸ÅTœQ˜ˆì"¢´±~·_빃8¨rèÆeÅæî‰¿ϪfÆø”Ñ[>á79Z©·ORzéÝeÿflŽoº›¼  Ö)r‡¹.Q°‹¦ÿ‘¿%ýkξfô—ñ4ÞsÖò#a50è]k þ®9þ{Âúíb*“¹Ú…UfÎD뫜Žÿg_"ð^OuüL©­n¾ì#9ÊoŠ™{öœµ2¤ìœ —0ŽØŽÿŠçåËQ53Õ$Wª<[žK¨¤¾‡Ÿ¶sÀÈÛ/ Lú¸GDÿÒó`rQU…©ezUʺ9wxdÒ#Ä:‘t?ê"Ô0‹å“Ç:ñé[­jVü³4ž9çD'dáj¸òüVúEÈ[=Ë¡@³£/ÄŠ±Ô\¶/Ëz^˜tÈ£MÅÏÎÏ0Ô îRX¾QYï1N¢Ž–thWYïps£ß. §Q‡1…¨sTú‰tÅt¿XO„]”’ã­’f¶Êh‘•òhK¥ËýX—´ü13šé2šÑÊ/üI·Ä"‘œzó»Q¿ftÄîéž‘LTH¶Òå2Ãí‚!p ìì-ë/™ÚÕ´\ñ‡~¸ÂSX$µ6¯lckd^þüö¼õÍ|f+q©—Î,`‘ ã¬û|™à|«‘Ýçc*³Î1y5c[ÝíŸU‘€C¡`æn1/0lÇïN¸2FѶ¼òàZZø…¬ðÝ4vØü söñ3ý´é/ž-.AesÛ¬IùmܿňϡüR³[e®å‰iý}/Jbþz%hÝl:ʯµ‹X¨±sÌX°‰†+2‘… }pˆfü/njìm“ÌÁÓ”7ø•9û,‹1÷Õj÷xhnWã¥Ra5ÜúV‹±oÑUÔÖŸúï5I ªg,2‘zˆh߬ª·Ü¿‘¥pÉÁ —r]O%GTò䯈‡ÂwŒk4„¸Í{%…È“gÇ‹C褙–K‹áiAy¢_x ùÜùˆÉÆûøfæ_ÌêÜ$Eõ¢ênOK‚,wŸaí)ÿL½®:pËÔ Ë]ù…(ÒÙYXfß5Ø'ªîZüÞb¿Jáà&êY”ï‚ gà[ÊC;d¹%—^î º ~’JüJbˆ³ÜkLaÃðoÞ`µ-x”ŒèR­È•,eŒáÔû2·¾‚¬ŠP$“…\uüÇjĵmP8W/}±$”¤FËØÎrŠîŒ*ûfZö!éïëȰјän·!Öæ9öÞ ¤ûæ¿£·:¹»&Šƒ½‰{ˆ*AÇÍðK£HûSl ˆÀ\*KÁ91ýgü àyÁ¢T»ÿ´Ø±ö‰-<Š‹²È’›1Ö\ÉBÔn8¼Š‹¹À‘¹JºvÝ%Lyˆ˜„2y–AcKZ‚[ë~}…±hÞo̤q8ðü|¨oê'jo ªsO˜ûLûî·tÖSÂÕ{B.œ;e'HËk'œ<"·ÔÃ{Af¯’4AáË\#Ö¡ ¸š#?¹– 3ã–3\õ†òŽÑŒ$Íöx? tÄh¾–æ|§Øåý7B»ñ§ª©àålïÌ&oÊ+ÙæçÇ̆IÊ@_Ò^¿IØž¦Ÿ¶`"t +¥+*L*§ ŽÔÒ(A.™úì:Ðïã:ð*dä ë½¶˜§RO®˜þ¢šÖA·wÝAèA.è8\1ÉáNv_\û:!"Ãö]|„³ `“àöð£Ò¬ÀónùÏæ!§ŽÌä-ùGÓ”8j\OmÂ:¼ÎR©‚ÿ™0}¯d‰ªkô– —‘_–œ¹³Šg¦[?ŒÒG2†¡’¾ðØa¾`sN†š¦(ë¨\Ý­æÁl¾ñÞB|È«Òï‹Ñiz÷HÝ 9Ò_šU¯³½Ô#“¬”wol¶ñè³™#ó)r×Í’N»‰ $ËE*õy+ô¤ò8T&ÔXu×>#áa-°ÞlÁóŒ®'CðtÄ“æïˆZ~L›žúÎLFžZRõò1S¼‚"?¯âü1‚[,Å=s€ÿ¨k(PNJUQ”ì™î¶5EV¶Wˆ½W_Óa2ùtex˜"ƒMa€¹;ghøÓa6ÓS=«¦Ûíuˆ8I >]KXï£ùljÍ;?Œ¡­<Ϩ:q`¡—R³ãàŠ&a‰øàÓújÖÉ(IL5*ô©z(ü8K“MÍÚødÕë»)¬cÉ`ÛªÂúÞé¦Õ8g´õÎ×›½KÁ-ÚvÎVz…h·Éì Ë¢!žP`¿Ó^z¦ä ª¡÷Ë?pöÜVšùÃèŒû{øºeεÇ5°/þV|ëì,„™üIúŽ` o¬âóþ§ø9£ïxª|êGRÓÙf€qý,6€lóA².@xH8¹˜‘wæÀ cË« ÔtökkJ†ò0Ïá2Ñ/[”PÃ`Øü1²âÄö/°W;Òv- n¡á°vù(âí0&eÂb!q¨cBé êÑr ^ß‚8=¤naä¹Ã.=ucîy²¥Â˜ç†ø6s“ÊÊ~±ø%t S'Oc[—õ K[~› - t WUÎV@ë,9¢1áHzé6-d‹">ÔËõ|òñI _2LüL«U†XyóÖÉŸ ˆ}fÍz£ÖÉ])›ÎÝȶ q2w±V(Kú1¿¨ß¾Ÿr»Ià‘kTcg†( ÷$"£C‹éÎ Ë‚“gl+Ñ-èS™ü|PìtOy÷Øò^Ú9£*Æ÷jÞ;~dÏ ò™·D¿­+@“ü­N[ká @×c»G´²0ÃÿÞ/­£ç{ Ø â&‰ –4çJá`ˆŸŽ‰dnW ñá?k“„¨‘|Ûn:‹·#X(š³ÏÃ(gÿù¸žf{¾¥·gͼä¶ù ¤«ˆô’tL÷ˆüïc™£cÜUhUêbåÖººá;æaí‚öç6É¿Î÷ƒ›!‰e5ŠÓëlÿðøÍxìÕ¸®XD4YÊ讬¡}¼g^•0O‚«›è»óbžŸ³újr#ÃB8)Q5Cäq®è]~½Sß­°mT³žöt<‰"Rx_˧ [!mÓAËSõÅ/*Ï› .1Åá cD×…‘Í£Bðù÷üp“ùÔÏ?´!ýÅ×¶ÙL\È_­½[œ†+v ,m]92žS¡¼EµµÑy”Û¯¯Þ96£Âl­Ncy×ÕFÞéôXN²ÇI ¬^«\µ¤ÂáehüL«6AG9å;ã‚/Z±ñá¡›¿¿½·ÖŒhÐ7°Ã=h¬Í¤b º6sV £–?ù‡K{ ¿nÓØÿLÜCs6EÕ‹÷«<‰p¯—]°¯zË*Àm¢®Gƒ¥þ:DŸl¸šÜ°ïä®é´ã<8´#øe_–,“D›7¿Û`?¡¾!4'îÓ‡RZà £{”ƒûô€š… ¦·jqüÐÙ«=õ~° +%ªYá Ì!d×[v €9×â`à|©Žö3•oäbïþñ~ñÊ]\(Q°>“Øké9Ÿ¢süJ™“h‡R抆áIBüMG³H£ùØ_Ç _ü†?R3r³ŠËºó,ÕÒaµ°rÖ;¼¢þ140¾ÄwWоljؽ¢V¸cF‡IW‹z†÷Fo‡r²·ØTsÙH" ÷,Ò/;o§.»Ê,Sþ“Ãõ‰4Ãë“ eއÝÌå/¢·Õ_3,SX%˜•ÝQóo{+ÛÕ‚}XŽcˆ(/NÑÁn®e-@˜¢nL€O‘Ö*òLgnãGRb)Ô¦_埣Ùÿa®)Ôg”y²Æi™Aʬh 9¾LTÝ´´õ”é”è|¾ÝÁ@CT¶á½$¥!H€]$ý­¼C’ëÉOggS€D¨ä^»ð¯ä<ÿ­àãçÞ×àÜÛãóîññÿ~ÜØÚÛÜãÿÒÔÕ×ÕÔÕØÞáåãæäÙãøüÿÿÿÜéíðÿÿ ÿÿÌü|¸à¸n††R1tÊœåÃAÆÁš 'ÈœRêV2xJ•aâíóôÈ-´fTp—>lÈ¡Þܺ’ìoó×xɹ ~à¬^Æ—Õ 7½l}dYÃë´‡7šš'~¶{Ú 7Ó³h@®4cyv²ÐÞJ¹CÔCX;á ©¨ \=HWí)cŠê Æ¡¿F™ÊŸ×°%ù™Ô{Fò¯>´bBzØhî1gBçNŸœU6<Ô¸2ÌÉ ‡áˆÕØT®[‹¸%©õŠ•{Ñ«ùÇ/sàB=ºaœ‹a»e‰Ù3u–†n­Œõáv åCÝ ²‚>—ŠãBî×~a¨ÿ¡*Š 7 äÖ4(“žÍ#RadY ´€C‰S= \ÅÕkVÃ_I©›I.Õ®ЄœzR`²Õ…d$—ü‰&Êzm„’HrÑ&ÍóÒyGkhmüM ÿè© ´Ü ﵯžW¸È÷l.È %…ÜÐhQPxÜRHeJƒïöE7÷Ë&9> XÞ4§oB^ÂÈ8‡·%DÕ‰Yá–O졈"?<:M¡ŠÂäí#©ÝIôHùXû›}WDÓ”¿w\3m› [*7ºmv› aÊRv.èŸÏr¨g4ñi²ï[úð":&µ&›xߟ) öÀŒ/ (:„µØ"úý1ó“k¢c;%¬³N!ñ£®XÄãiÁS–»þ…ªR$q1é1ø÷ “Ì7¸G2$ëóüMzù5¿Bjù6Éc–¡gr{W—Êc¡—ýB=×߈ÄrÌDæ5§DJI;r2 ÛcòqÛî"¼@» €¦5žÚbVû’÷º]gã~'k„¾TA-CŸ®HºA÷&%c¹âÒ°©·[~¦9epðüã§c QX±gÔË€e[vÜTwô’?åSp¢áçIíµ­ ÊE`þN˜MJ˜2‡“ei%Þfzeí¼èXÔàê¶«¾óÁº+ã<_°Îò ew4}ºbfèà.ê0^ñª¬Pk€gŒ^(r/ü/WXÓï Ì'·>ž¬:³¶Çbc-k]ÕXó!SOaÒ#|¬Qƪç1¡j àüÊÅ[toG×€Ø>zò:ˆ¹Àøœ¹<3øÿ­‹†¹}2€»­PŠi2wžWŒ¯êh¿wÞu•IZÛ¡%ë&äüÂLíÐ?gW¿±N#{yïD6„¶¡N4îr)ŸÍRœÂÖÿû­U‹ 'ÔÓ •Ï;ýIâGÑkÛ/—2ëƒ5h¢+ˆ§Â4Iÿ7óì@Ì]ox«qzÂç©ÙE‡¦K°³6j4A]«‰ÕG€À‰*¶¸Zz¹3™×üX¥²‘Y‚kô¾®ú3[•›‘¯íÊÜ}YžI½m‰[E±î‘2¬Žv׋Ó,C3òî? ŠLY •é¬7eH 1fÏÒX·ÑûºÐîp$¡ãZV¹¸ômñ@uÃ0¯žÑŠQßYB) 4‰ƒ‘÷X9æ—ó=Eª½ðBÉÛ‡‡ªM—¤ìNã *ÆñŒBbŠE¶ŠêoÑ[{ëj-;é±H÷ý}NzЀÆ6ùßÛ× §==vLÒÆ'–•\Ç“#F¯ê<Ñor¨”t¸¦èÿ?Þ¶(‰\ÉNT›@üML¥Ì÷=öé8Ž1³A9q_{‰ó ö¶M=AKZiE”ïeçǎ¡@ (fWCÎ_yB 3x¨{¶ñï ÚÀŸ_N2:“jy^|pˬüÿqÀ²P7…ôѪ¯‘ð™®ÕÅ/+Üž¦<¡Ç  X]2Çmµÿþ˜1¹³À™f“.èÛò½î¨<¨ ‘BÕÁ‹Þx¡ÿ5£\ÇUJ¬·<ÉltëšqésÈ÷Ƭº­¬ÃPÐ|vvyPx<¡j¼N/Z}Ý®×kd² ŠÔ¾˜:ÞüKdŒó¨D±ë;ÛáBAàR'î}‚Ñu¿ˆÔ3q¶L1–¾2»È½Ö Î Ãz/Ë1þ]A#Ñ_× ”yûiíK¿åø‡­`ø´½Ñi6Ë%nh5TNtByËyž! /Aø-^·áü½Ûñ+ŽÆ ”R´[ç\ö/\ÐNÔÔt12Í©f.Eª ¾ˆ á˜h˜ÜM½ÝwžvQ°Ü¶ÖÑÑõ8iìBqô‡Ÿ  U#N¦ïeþåw8.búþHƒ3®y [À†š$†·ŽÖ‡×ûsä70Ô¼ð°üM‘©XUÌÊ|Óyqõ±¨¥Wºà¸R/Wžæ¦—øøî Lеìä“¥Bc¤³¶Èµ"zœm+È þ0 t :M³`ÔÃ5E…•nŽ4Ðô¶ Z€íB.®èV2Ä&¡“N¯'.¢¨ÔY*™BtWäŸÙ©I¹d‘Uc⫎Zœ.íˆ=3bz”1ë:+ò¤c¹L°§t iË‘Ý2žÕœù¥ƒ‹Xù'‚‚8>f{õ¯RÓmãP*Í÷.©RïA*wö¼Y(>—fã’ *ôôfäüM©Lh7º‹ù3:«y…B‚]E âÙo¦z{„§ ù¤_™Q:<µäb ó0¤A>/¸~_ʸR-Ìw)ÖÞ\UöŒ’Ò|¤ÐÅ´þ2²š„Ž€º)f3ÙE—˜–3)ˆJ’ žÍùçtò¯p‹ðèþ.á“Ø‰[Ÿy‡I+YŽIwÞZÕ«](/¦wبY\š„0“®$¨Z¾œmµÏ¿¼Xª6ìh¶vxý%’ðŠ¢Qøë*®¯Úp¾Š¨a*M¼gü`(½©(Í&ÑÖ“l VÄ/Ÿ<™ü6S±j|äϬÓ|KüÅ™ÿñqG(¤zzØë̳ãû×{‰¤kýЭZ·çQÝ7Us7®HÎÃMªQ¬ÉJ˜QlÛ®µÝ‘¸ËjœÁ‘.¾d.›ÀÊáj‹\4uÑèªQŸ³¦¤ßLÞõw"ÃG쩜êEöt¤“Qs$Öa‚aî3æ™Ó¹ÇøÒ¬?°ÑÀCÛ-mã@µ”`žµn'ïr7‡.ŠÊB ¥µiuè.ÙÄi,„° +¾C.~Ng@´Åņ žqÙáâþl!Ö*‘_S'TVü1žå¾ŸÉPaÆûù=2o%Aåî—zXP02¹ù"WŽñÖã¡îª(ŽÆrvóyXP!¿YU¡ý’½7NÇïÞ ´öÀÇKÌÂ-ÃËÿC*8›xYµäÒÝ©MnÙ+<ƒ-a¾«ž°®6¾E¦˜«Ssûéç¨aˆÓ÷ÂŒ|Ð|VU/ÆÅG ˜¶ñ´ØŠiãt8U63¨~ß^I̧ àR0TESöCþô”©ÀUé ð¡èÐ*îFu¹8Â(¦8ˆîhqÿÚ©µ½‡.ve©š!ÕðȰ7x)ãK-78M‰H:â.=ôüIæp5û ÷Ôw+\.T°¾“4—ÏÐÏŸY4µä=~}3¤<+z·…B\½ùÝwAõ‚$¦59øòŠâ1T±~Ã?ûB·Ê ¶±7· ,&Ðyì¶0C:´+Š~í½õÔSQÜ.2kÇ‚bS˜ _êÇ.\r™Ëpg\…äÔ“hŠâÑw¿°­‡TÞÜ¿ja饼*S¹x«ðòj,\ŽK6vc¥ßÂQÐÔJq«v7Ý“ºIdÙPKúÎ{õ“DD,ÉæáÙ@¡r6ÛÝ–¤:ÓDuzIA¬ìL¹'.Äï¥Ô³?²xüIèOØ„~â±sd•¬y&9ôyºïÅö`ÿÀßã˜.œú¬äÓ³lÌ`ooˆ±®íóQxJ»ºYàðê‚R޳ËÅ©Ç/öva9䦥#‹]P—£M·áÔb˜’<…yu4G2ž·«^UÂ]¡ ŽIƒšo•!;nYUP¼é'ªŠ¤uÙ*Ü9“9]ì´04'ø›2–ÎÑaÆlò”Eµþ‘uDIþ¤ÛRúÉMû‘(¹Uxå¦dĪʽ_ÀÓî÷+¾ìÊѵáßõ¢óo£j‰qÌky³Í¯ t»B6ËDY¶åq"Aýsb9Œ?{ê¹üï.îX=Fw`ñE¬C+Œ‡u‡ðÇ’[ÅÌØ™õDqƒŠu„Ðp6z´=&<\ÿÌ9|¡6 q½3Ù¥#i|²»ð,¢ûÚ…k‚Àµ©“ÞÍ—Mu§Aƒs&Lt¿óß=c=2™ pûv5:¬Gm +üéÑÔXk ¶¶y¼‹šú¾kçïög:O°úÓk"ËvAê÷’ƒÎkHR­öžu™ße&þù”GÓûC¡7RZ$l™Œ¤‚áÏ?Ž‚ñ]WùØ—#KrŸeÛš~‹Wø©‚¼Öÿâ8›MŸ£=’Zû]šŒ—ëÞ7"Y¢_ˆ| ‡cUÇ«U`˜ÚqÑ®.ñ}_üä^7³õÀ}B´ Ê˜T ê”é³'îýÝz‰L›Xh±wnÁèÊ AÍ(¸„EEêŽz}APÝ’ÖQ H«À <¤+êGþ¥:ü¤†Û>7¯ŸÚ¨¾eëà#î’8Œny4°©ƒÕ¢ü÷yBBÜM7—¸µŠfaóŽ —<ãx¿ dG¨¢¢YÏM + +Õ˜-d +9@O;2Aß+<ŠÏï/€6ï;ȦžÉN\Ä­üL×Q‹È±cX“ªv²ÑŸÅ|Ÿ%b¾±†9~ØJE’E-¥…¥ã ,zŽaÉmóõ3¾L\È$0žTf‘1?ÔÙ“ÛCC?¯}Gͽ¦Ûs˜SjMÍmž8¡ òm×·~3®?n1ÎZ-O)9{Ÿ\ÜgO©üÔ+{0FýÑo8Öò’üÞ#õ n»’½ãÎRÊísU:*b|9ÝÊø2tæ ÐßÌ9”Íã4u)š{6±;­'uäÒd¤jüî½Ý)X`ø*-ŽÞ›x«2oÁø Æo‡bºÍé ÃUÚmc+bÅ9WPÆ}>'Éôîàô4ä5‰Mfµà·z»aû†ǽQ·#ßx¤/ ”Ódnº67­7&µf¹Â… v}·­7@r:õ’üz×8Œ„¦ªÅã(¢”ܯ~vAgÍšñÚUT,ICçoxªV›°¡ûÊŽ_9ë´rEÎÁl·ïp áú'!Ö”ñ?m4u÷ŠI›xïÚ÷ü¯n_é*6nêv?Ä–ú³uü6Z\ˆžÔù…)÷¨ÌNàÜË ñe0óö«§G ÛÍ9èz…fŽ_¦<QT¹Hl/´Ò”¬9–p–°„ÑØKYÐ(í*­¬mIF’1Bãšeö°¥Ô…¯:’ˆÂq>u,…œQ/®+m̈y4Øþß ºá ‚~ 82m<Ž9cÿ"ÌE,òPÝßî»ÀmKqwÈxŒ2áãïÌMò¿º–dlû—rª*luí‰Ö·»hʆ¬8™$O1”:ÜÏ_ßwè3$àä|GèË©á¡Ê¿6»ÒëÖéõq%Oüî~ïå–ýžpŽãLàÝ<ëÂp/Lêç„ré@Lw-Þ£9%g‚*ý¨V¶¦ `Ãê±9F‹rì\CZµmèÝ›t¦³R•áªU4“S´:à}K_®¥"a­6ã¼k„›fª’“r_íΉÍÒpg°RBHè³­ýn@klúAq©¬fJpð쉎ðJâš³6‰ýQDcK§%ðÑæ«ä nð%4È$Ìiê«0 a¼°Ý”Ô™Aÿ·š“5/—]â°û©šÃòR•ÝÕiü6jÜB h“ê½±äååyF‡KoEé¿7.ÓÊï~ñ1ã$¾ËΈe;ÜE»…Îtå~þpCK:p¦üí hVË=_åÕuqÁ_t£­îž/Akâtu-S·ÕïFˆ²©ò.ÚæuWƒ·ve ‚²^Ý|]9{²°5;lsòF÷·ªï6ãWˆ]gÝû(¬ý€"Š,|I eá·ƒ?©ºH 9MªÝ½Ç,r$Û$r9È:ÉQX<,^oæI ìeMð'½ÛÑ -‹î;P{Y·/Í™œü}aTÚ²7¬>}äB‘ckX¯ ‡ü¬í×q&œu#í캩MþðeÓ¸òœ­Má?q”íû±Y]ÿ|EÍLp­J<*l`aª‹øK³µD`Hç,Í©±¬°ªz=_ÓRN:W „ÆvŲ1(í<–‡ë„cÒ ãÕSkH眛bcµŠM¬Ä]]cbF3•ÎU,+6lÙ› \>eU÷æ‡ ?Òœ-—ÛŽéÄâV( œ]+cTK£´o#Ì}Öµ|y¤i+ù°u%Ó&ä¤g,ÎP¯·xÙX¦iD"ã_òÙQ I缊ûRóͱ°‹ŒdÍ_ò(èà33Y¨P“æfò‘ÊÏ4I üMZ=îx-ð’´ä¬"búŽOƒ¥Î´-õª„¥&ßwŠ7WN¾XEý 3ßI§d©>ßèåà.×›LN‚°aÿo€ 3]Jê„w#Oã±¥F¬ñ3ù†$žíøˆr0bÊ;üѸÒRõŠPC7!ÃY¨Ñ'øýþŸ bˆª Æ‹œ˜nw ÆÜúòz‰dj9žè¸‚-¥•øµñˆK×ãíÃ]=^ð“]R¥Fñ…àû\Ç990㯠£ÌïìctÓÐͬ÷:È>"ÉÊéüL½RôHÓ$xñÝèŒÌ`€oµêMÕ°jìËI¶û¯z) v¸ÖÈâ„îÚ§îJT5 WTbvh´EVDv2ûRèD+³]A.s‚ò*VXÆHEÔ¬Wqûô¼ÃÍr\¬om¨ šë_ôËV5¦âJm$K–6ȇìÛÛ^…yÄè.·”kµpp(Z°åŠŸ­ÅEqÕ¶#3›&¤úF¿£©€ÞyµæWi$÷Þ¢õèâ§y¹uz}cÿ[âN‰üs.}9AšMÉ*µ­ý‘‰ŸüK#´F§à¯E_:¾NGC9—eþ_,šÒlà1›Ó=WŸm0d}9X¤W•|o®§a¶V!GÑš’·“Žñ>V\ oI,ø¬–ã7 J„ŸÏàô˜‡ë’ý¯sÇuöáSÁÒõã¢JoŸ_a4øPñkm»²ÓÃ*òNuò-I¤ÜŒ9ÿ{‘È,q´Ð HËt]6ñ.d,ý.9ÉP+¢öžßׇT4„p(¡­š ÎáhiÙß î×g»Äz]Êk4`‹ O_lU¡f[Û ¹-CqþÍø¥Q+ñ9¸üL½cÂÔþ2'’¶&™­ ðæÖ§^>æb9TUÚŸ«UîÕ³ŒpË¿ó, ÛƒXÉr|ž(C1AR$ÿMvŽÒDwl$W(ôjþ¥^±Ae; £Èq¤¬¿Ò]ºqdrêI^ÕV„?Ÿõd?¹¤H5Ì…µéš<üÐü(ÇSuú²¯iòû&Ipää;øïGrTlfú@ãëÓåëkKÁÏùƒZh öœÿÇ•ÀJgùÝü5ò‘¾´»èÍ+çÓ{ÁB6óôz|§€€:Šó‹oÍðv þäâ·ËÅñÝçn@ž&íâYd¼õ.3${ùÏ%‡úAO«X„Vu CoÅšð„ûQÚ¬e[29»®5Ï?ð×Y:h‘Ú…’|ßøEœ¨kNGbwMꬥE qÊ/ü™ 6¼ênÐÞ¿VL¡+òmÖ¯uuÙ@=/«·°¶(«õ`uýtWâÇ›iKDZbÞؾYíœEå" ¹µ ?‹äOØÖüK?fO×VˆrRpc›NC‹5[ÄÉfpæ?Éö2Ü>!‡‹nw.c×¹¥Òÿªµ™P§ÍòNüîÛd™ÊóÉI´ v!¯¼±ÿ‡»êÌsÉaW…YË ¸Ö–Ó*ô;×JäJ„8å)Ÿ¬²³Šä1*'ÙdŒ) {†?yŸ: ù†ùHªQø2µ{HÕܱ#’sðÇT¾&GB ¨œ´ªÂc/V¸§§öÏ@¯Þ°d×.Op‚…ŽkÇ óN.Žá?oj±‹‡2æîrÚ…Éy+{ðü‡RI„e =Yñ.v¹HÏbzµkÁMR®ÏGIKA¬ó¸þX nmß‚ËZ¨ˆw¼ŽjaðV(Mr6@ۧІ„‹±™¨DúŠQ8jzßÕ¿*/õS­)ïüe¤¯…nQY"°µBÁ6‘BêÝ·*}¢vÖ"6Ý…)‚Ó¤î ¹…±yXEœñ•uqãHÈÏf¡K Š[öé‚ LNuK'¥¯\²“]Ä8¢,¡õGGøä«ýžJŒÈƒ„r êCôÞæƒf¶0汜ÙW0üL¼dè³dB¸ ºÓ?¤Ït‚pE9Fžòöè¢êϲÍ{½¬*¥`.g­&©d-Óº10Èc‰õ4uÏA Ç–ÏïÑ·œL@ý©ºì¾U]µò3sùɇ t^'2dÒæ)ñ 8¹‚Ý,§Ÿø¤HnïU°3O8ï屌懚2b + •¾S:ÖBbeÙ´6 æó°DŽüÜÃæšm©\ò¦ÜW˜ú³[Ûóä‘Áˆ]YòíðI›Z“GýuWÝ6Rã´]±þ­bWtK–"6IZÉÓ,d9£Q¶ü±L5²>!³èÛHaöˆÎ~½w||Q/& Fü"4ÐwÂq’ ôš2 2=m¥ÇWBʧS_ÚT*_ºÝØ»Àô%qƾ«wcülù¾5˜W«nW‡0ŸõH!›:•b¢`Ôʺ@KïûO4!3ú©CÉ7U»e‚@~ÏÛ‘WüîTè#¸$‘ y‘¹™áUk##yþ~|ùt§™žÈîdЙ¼ƒK÷Q]Þ¤Û|¡ÿŠÊ!ç¥`ÃËü(…ùN…e¶ëuÞ”@[#Rüd£ÿ «¿àýå²—¶Ê–XÅÛü®ƒWˆE*WhHgƒ€Ðý1žÖ.ïËØ2õ-ïÈGFO— Fv£(JÙp˜1{äA‘n­Jn9v‡¼t]ò¬+§&!ÔÙ ö¢ûà±Â#¥¬éè¹¹!ØQ&BXǯßNvn@Êùõ‰K*Å©ß}É ´‘Üò´|ˆ¦Á¡îŸó)òƺã´³,Ê.ÎÕšˆ%Û¦¤—èµOlé~Ììǡܽ¹žÏ_±úá@á-áFsÒÞWã—ŠjtŽÊÏW›|™n¨ÞgÂÆÙ”‹Cœ˜ËÄøv:vÝü±l°©É­K éú}uíe³·â4ظ÷>è?ú#%cÓ¿ÒàA3é• ÁdGd[°{AÄ °éHÐ88[„QÙH¶â>NCíB<fÜ™þXø‘(þ£­˜ê6(DNÃ<^”&UF¹kÑ-¶«ß++rÝ{ðYEÊrW̧{mHÄB¹ÒExj¹#\¹%¹hÐ!ea¬•Os?ƒySÄî%“@åm†iÕBò ˆ„£  Å}kÀÖ3í'ØŸÑ€ä˜]u¶7D*$¢»j7øNÛk "( S·x"ØääJ)ý9ÎÓ i=õ8© JøE–õËÞHï–Òxã²Fž?½¤ü6ø›š§SJV•·ÕƒpMg+‰¶wæLÝvñéå÷…©2îÌh/×êÐ. jÈϨùÐjNŒk”½¯¥døÿTØŸg%dZÔ!\‹)€Þ ¾>bÉóæt#µèÁC&Ë¥ÊÀ~. ¬<Ðc{ë½2IýÞ:ˆxÜ€r5˨ÁÅÙÊgë,–<Éœk=2Ô±`•aE[$êEÄì‰Rg±×‘.¬Çgô=àÎþf ™`ÕbNú`šw¯)7ÖòÜ©\B 6,SÃa £½¤ÜRE>nH4•ü/ã*¶Gh@Þï·i»º%&’ú ã– k1 y±ñÀ蛂ᤨvå…Ð$I6áÔÔèH }—–2æ«nQÀEWÔ›]’•§‰¾¨:ÑÎàÞ ïwËŸ¡ü@ÈW¦c¶-µ }ŠÌ~×n‘tþ Áõd¿–¥^i<¦ûZ¦ªÇ¾Èô»oiBr[ž1ŒT™»SJ 5®ÈWËÅ-9‹ÙQ½dzéÛšKÒw*‡Økh¬¿>¨lÀ…¸ Fo &oNëÛò„c€á€‹y+_ü®¼ èq[Úç+¶9 OkCÓÍ×Q„’½^ž‚貇ÚKÂׂ Ý¦í‹¦Ñå½ ˆ7¬Háÿþ(¨+1´Š#gA&íÔ°ÊU[4ÏúÐ… »€LU“Kצo|Ò¿ç›®ÕªïXd®É†¿ [Asô'˜ÄŽ–ÿì¦ÑP z›T1" $hD°Ï œ@mtü+ÿ@Bâ¿Ý ‰•qk}•L1˜Á¢u `Þ ƒFâ=‚ê×¢MvH2Á¨Â#k4F{_ImÜÑH'ïÎ=l€NR^|áY`¡Új¶èˆîqo-9”OçßÔJd$ ˜6Šü®¿é!¶±–2äàøËÕÍ87,Ô‹SŽ?®Rì´*0Ò;ù 2 « ìÔîvŸÔçCÏO>à'eÑnâ²IÐ>ô1Œò)'¸¢vNé²çm66e Ñ×…™• aþolèD…´hþ)]@Opðû‰]|åTJ+ÜœˆeÞRãÄš1RÑqW[Õ ›UÖz`2Ó&òë§cÄ&¦®`ñ8›t4ÿ[Øx 7Ý>£VRˆ­ ©»¢M?˜þÔÁ2hvè­C@@áÙ‰†Í-:2c‡ ˜¤.û©ÑS?Yð~ÀŠü«`Y,s'3v6ÿjl§b9€ÎÒ’ÇÈmŽÊæ]]Õ"1à«¿Wz×|ê¬Ô€Çn˜iùAæ6jÆYìØñž#i±µŒÂÑ÷«`и-¢É&IBã;O]Œ¢Ôž†qn­:™ü0øuƒûôwÔ"–i:Eë=„Ï.__.äàè¨G²~=‰, S‚&#u‹S–n]õ´ýŠ{b•Ô›UÓ+ˆ|D¢¨áMf7~‘F&2‘T±­TQÛÜòqgA]E!©©€çµ@ã?®ÄÉUÝiENà;o‘Œ Ð{oè,=±}`éÙÇÉú^~û~e{ÝŒ¤ÅïÆO ®[2èÊü|ª4À»ù$ùjḯ=¸Èôt¿r3’”ØÈüx›™m”è~¶»- É1ùz'o&>åŸÍ?•ú·»PŽGáãjHÞ%-râÆ‰D2`‘ó|-]ãÂ(L[¸Óg<•¶FòPhN-ŠÖ¸0×I 7":?v„l™æ% K÷G«¼)¬L·®ÔQ:šãx"Ú¤6-qaHð2pÔ’–ÃÝÎÐ¯ßøË½ÊS«'Ìdo,×Ä„&µŠÊW 4Ü¥„hqžl•œïI.×Îë*%ìÄxé 2…–ûœŠ¢:y”e+S|g(« ‹kq~$ˆímŇà(Þ6™‹­y›óëì ä VÿÓZ¥“c1AF½ÌSºý‚8}u‚ªKLwü×e豄Ç?Z¿œ ùñ Ë—²ž˜„,éí©ÛnÀÜÍ.¦Lr»€$»y{³>çjù¦LÀêav4Ï•wçá€W9¦ ù«–u¤~*áäúdä<¯w^o }6"äÐ^+…?5Òñ/›8§ØÊÕ‹€ z2JŸLƒ`}RuáŒfÓB,3¸ÕXY®±úÂù#xœcö½y|AýXšu¦¤°LCc$–ºÇ›áŽü6O&„Ñ¢ˆ Àøk4 D‘€µ•£\¯àpü üþø£÷“‹Yl2ÖlkOxLo>ÜLÃÀA‡hð­°õ¼^úV«Ðzüçôx=R”D^¨ð1y-jO3ÂÇG€ëÅF ß¶‹]çÁžUŒAäh54¯í{ð\j$Ruü³JõI«iüÏÜE…×^ç¢QßëÍÌŽaÚ/Ý‚LJ–mëcw-ƒÄk2,~Ì8–\>j‘&íelɼ PW3äK”£ÈüÔA¨•]žWsƒ±ëÒ:¾¥=²™Hž6¾ôÿµ”)>е^ü5.Jà%~×7û ¾siUÒ=çRhÔúŒÞÓ©½”ëŸÕ!,„++ËHŠÐ"N±‡5…8®…ðScú«e=Ö0'ºÌ^Ę"6­¯ÀÿÊÍ[LK1ßr†$x„ɲ#мsŽŸ" ÊëêçtJFñ¹…𝄗;¦Ž“‚w &‹rÎÉ‘Ð]§V·Ï—–@fhÓ™¦=»ôL±5m‚Ês2zkÝõ0€@ES>gæþBκÐt³˜ûäWHXšñôlÓ%I+FD®þHÄû¤=^ÚórD‡6J¾rŠoÒ9ŸtB™Æy‹B,´ü6[ûôÊúˆÀÔ :ÙY:=è÷B“Íl<²ø)bW ]Â-­ŒÁž‰6eWžBìe^î[vµ;³ö²W¡óaô}¦Õp„w„ß©ª‰¢¾GÕh0¬A~–zeÅ„ …´³ó‚&^YÓa<‹™rÑÑùæFÛöãÊ¥]iê>©î·ò£èX¾Mm€ž<•^ùm¢Ú#oÀQ^f[áW²È3ÁÞAêŸTÿªÕ²Âj¢Ëò}ÓvC‡ÒãàÎÑ» ¡„"-ãiƒÁ,›í‹æ¨ù ˆË*³bbÞÝ‹kȾ=Ò=ÌÝš6²D¼ó€‚†üL­Ûwr•0ÿ¤Åß䣑)¸o‹Ëv‹JíµÉ%' ŒÏÙ˜þœFâñÚ5ų­ª¿µšF›ÌÁ‘VsÁ:\?euµ,æaƒ–øÒŸƒiùnÐÛXÄÒø3c&3†¨¯ ìâé–ñM\¹ÆªàØtd˜LW«!Ùx –$+±Ÿ3p[u*Gé×LÃjÜ–\¬¤ˆ€ 9Nzé®,µªîOlDâ(ÛyèKýì±/]Å, ÉØ˜=ÌÁð ’gÁ0Ok° ÇÞ¤º­ D+‹ÈbyŠL%øäNCÍr¤r@¡ìIf6<”2ft)ppˆ¸ˆzÛ’`ˆeËVh<©¾•Iü5³TCT^¦òWèÚ?ÜÚ¬w89_BäÖ'[~|ä0Ê:YvHZ®f´Á %V4–`Z{!¯.K¸j¢ßŽQt[c !RzôT¹ñ3OùpËËò˜Pu"×ê{õìu‰7 j ŸåÖý—"…FùV¹WC_Bs3mŸ³ò‚² Î£­då“Q„¹ü,vŽÖò›ó\ºX¡$ÙD; Ãco>:²2Ad1æ :x‚©·e7¼™—¥¸ÛÚ&íg1i^SÆWÁÏ1/B/ùÖqÅ5Žt>ù´´ Õ<@&­JË/¹Ï³cØïûá†;«;`F’IËBX´8˜þxOA¿Õü6wþÀÿtN…íWb6øÏC¶V^¶·Gö•ðò\%ÞÅXm&A›ëO†]L—?eÆ’œ_ÿƒÓk¾)”ÅÂÎñ ³“´ZWÌqݨÀqŒ¨«ýû´«ð<ÒÒ@ŠÅ'5EˈVƒ¼Aí:‹€p½ªo` «ÿ9 Rx:ó1«Uð\% ãõ¨:ð’b¼p5x {Ì—„£ök× æL®ßœüÚ”RŸaWRƒ–\~B·Æ—²³ð‹†Îqn/ÓÝ(¶yc2ŸœAÂBÂ0C“¹½Û4ž.e‘ñÕI&ßÌŠˆG_ž`¢O¶§~ÍÇ“+ûÍÉ«ë3¹Ùë ¶Fü{8yH©9ÆZOt‚+ zl²~œ`e!èNLNEúFA‘ò/µ¤ú©Í•n08FðE^yùu|eï›—Pµ™ÅºDO³7tjº¡@'X·;yW õÒCs|f¨þ“Ðìh*¶;¯OÍ)«"˜:|È¢rk1Í yEÛÎi±ðÕŽqçQ´ŽÞÌ3œ]³|9RØ™€ÌgŸâkå#‚8hõP;Ñ ž €žÏ" •Û!ÖqÉšD/–-Üi…_—)‹x惛ãÙ]ÒíòîÆXL@exÂømku7õv¾OÞ—"…C¦äSñp¿ûñ¢€zªòÝîx!SÓ(‹ÍH°ZòÃ¥Kƒ½‘¡2œ]ýâ:¶¦{Á6§·°pÆ*&Ú ¢s•ÍÝìîCîn|{7‡Æí0%x¬†×©+`™faävÍJf€À‚·åJ['‰Ä×Ù•³ÍGØÖZO*²;ŸýÉpï0ÚpHëI*¼5,ØÍªb mR%ªÎX;žmeæ»aúîàS´U_•°—…Ǽ¬y I¦«‡ê~tÖåRv‹†aZ>û{Ö½²F ÂöäWÕèB‡Išõ¯TÇÉ{WŠOggSÙD¨ä_ nfDõúÿ ÿÿÿÿØÿMÞÝÕÕÒàßåÛÕÙ×ÿ–ÞâÚÛäãÿ½åïã÷ÿüÿ¿Ýåðëñôÿbÿ-öÿgÿ†ÿÿ ÿ»ÿü1…ÍI¦Ç3õÞ|}Ë÷¯ÍpK×|HgÉØ…µZz¿} öÛ^‘°Ý€:¹d¯š«<`6gZYÐQ4FP`7iÚö:`4÷Œ-ŸŸ0úœLÝÔöqÛ–Á¸ø3•År?³S¿ûv¥‰ÿÇæfñÛaÜæŽˆd²?ÞÖMGÉLX$Q„ãbæ3°Á•ÒÏÛŸÛqÓ0[ŠXÇ«|‰èȹ ¿:ë &q˜­Ø}\òÆ”³!—E„u}Qðvµá Ö»gšË«+X*V|p$ê]v KËp*ÔÊãâ‡Qq]ÙvüIÿäc\^IE³q‹2Ê»2|ælu¬BT¦$4z@‰FÔo®0m,4Är¨¹\mÜ%¬¸…£’±yÖ”-ÞÙ OH0 ÷^DÛg¤:‚¯5Z)iX“¢>ëðÒ•ˆµžºé85ñ%4°C}WKqâ¯D¶SÁ¹þœ”\̯j1ÞG šÅõ]gÖHÔÎÖ®:¡¿å$ÒÒçåô­ƒ~iWhů«Û&ÉÎP¼ûÁ6•*_^Xxƒ1‘˜¼¾Ë ±Ká³`OÙ>ãê¡·{žþCI­ÏÀÍEû8ä °0öB¯g7x àßôÛ¾ƒo6³ü5s[dÀå°Ñìäb¯l%|«z%O5HËwØg0Óže¸ÄýüE¬àš›*uûOžä5ÿdžÎÏaøC;ºQÀûºv ‰}Ø Ip£**‚Oqß|i;kØY8þtíñ²$Û*’!rMV=ã9¨TÇÈ‘Y!w™%OI/;éÕ˜Ëíz¦”‘¿¥D8°HuƒÔý%¯ `zެð¿Û1¨`× œÐ’ë-­k$Ìû·9³zN±INíÍm5êû>»=â·Ê–ƒP±¨°g´•"DH¢¨ËßhBJð$¸!n48—}h¾Óÿ¡ =kD¡Õ³ÐuäÕš¯ªÊ{ `ð™Îü®ËF…àFJúñ|¬©—Ý=†ó¥‘QM‡¦ •U_7é3²]y‰,0K\™€mœ­bå÷3'‚ …7­%Ô$W‰_%{”‘u"Ÿ™–åà pq Îé¶|s÷-È>EÆò¨ØbÁPNÄÍA­]êsÑcñ€?ÜYöÚ‰8|Hš`0’”˜ÖäÀ?Ò{råò…Ïé+>î|j*”쌋ϻDHJæ´òìÒù8?!L)¦º8`JY³ ˆKc»ãYœ"ŽêãJ¸_š¤CH¾×ÖuT‹éd>²h´æ!\Ìõ¢'£½Ðïž(!^{¡g1G~ž‚Ì=!Ô÷ûVÙü®É¶}‘i8t·d÷‰ƒøÐö¸™kK/Ã>šB¦€PuS4·K›öé!€R…lÅ€îD4¤¬ÒJÁ`5/;o˜a¹g£2Õe éEuüaBÂu‘q¿©¹øT5,ÁžÙÈj„çõØÒ1Ö9óŠ_àþù™â<ê~¿G+ïñøÛU°ÙÈ#çÇtqôF`ìÄÂYl u£×ÄD;ä>®Qzä€xJÍR!i/“÷—/¬ˆ;i›Fú9'ìG›Ç÷DŸ7á}¯ñiºPi .s!Bƃ+lZy%~¥urkº ÇüZ5*àãÉV§¼ >IØ·H¤hŽïgZÅôõVQ>õQÅfYü¸i˜KyÅÈ…aèŸ?d²aµ…ÌçâÏY"3Œÿ{ÅÝ×ã³Ð;*ƒ>Óe«>“'5 ìºäÖ¯ËF#Û\OÁ¢/Š˜yßàãXÔ™/Ÿå;k þ§€ul€áW¿©Êëk¸´g ñ—³|òŸ|Áê'%«ÝuANyF'wõV©~ U‰êcÀÓ½‚kƒ×\ÐAiÙY×Þ€¤süUÅú£G¥3ÁZ—ºêɪ¿‰Rm€V±[ šŒ»Ð¸“ \gLÅ8༌—:ÅzDÀÕóÕ'~y¤0EÅ”~K£ûu¿å€•*ÅL²Ù¼IpÁŒ#¤v " &êõUÍ9øÞ #ï0¡"1üÈdC±AÊHñÅc†÷`D»>ÚÚ¸KZmK¯i°oOˆ‘¨–"ùÇ×V \ë/£f¯¾’ìè186Õ¾X ¸ûg±S·_ѺèäFÉT¥ #±à€TàŒì°‡£|®ÃÔâÞ£ñ‘¢¤7ÆÔ´œƒºòè1T”¬0àªú=*ßzßÔ[¬ùœÆˆ}(÷˜8]â½$Q—_ÊUbž~߇g“‡šº)ÁSd Iñh_¸o‡-îV¤¥4†ˆMƒv~äðý¶¡Áú0F}Zq‰)űé„q”ýºüÁkÂÚÒsî—ÑtKº3U(AVÊšt2ž+QH|DR #GûÂp‹8¹(Z6ë¿v%JUßfPýþc Eg Ø!wpCé„Q-~ß)-)ôc÷#Wå¿ P¯g ÓSGòLmýÅX¶X…вè>X]æ¯_f³øÄƒÖA’ÐÁë6ðߨr—«…ÀQ1ªº[6nêpJwøH6íˆ=æÐ»÷tZü=rîÜ·0VÒõ¸Ê°rC»*¤Eõÿû?‹‡ÏúUÜø¨)Jwy¶•àR7)‚øBu7ƒÉ6,};¨…¡Xë —kÑGïƒEoá¦Àü}as߃E0äî°'.x&Õ,…_åê’=ÙÎñùéëÆMšˆFß-½u `ù"±rœ¾ˆ«ˆ_h·è÷ÒÝçYÊá¸I–átd`¿¶ËÑܸ¥ŠNÑ_D™Rªzy'#‰JÇ>Q±ô8î™ûðÆ:tö«rTâA«®·cwË‹ýBl NÄ ÌU½­>þ'xðÕØ•‚“Øú-Óäú—+”Õª¿‹ŽTÛ™aŽMÞžÉDÞ<¹§W¦35­DZÏÅVÏ»@kü¬o¤{¹²òŠ ßã’ÖDdîSÇ]¥ƒàh jDý…ÍnS#hÕ‹¹ìeÒaL'»ô;üQ¶r­ß±[gn(áµþ_¶”2©Ïû¦üL©¨á¶«JoâPà-Þ5 ùLlf¬ £ôOž ï±аî¾ÔÔ¤Ô¥VLõØN²þâz‘/>O‹¿'m{v°Òe“ˆHtd hâ5î_‹PËT*j;e;¾wøð˜™/ê•–¯a§¨¿öáévpÚ¨%&d»à lóZžö Μ³^¿Ñmr‚õ …au†p‰ÒT×<ö–Ïu<ôÍŽúnào}(¨,&÷5¥©d?ÎÔWîJéàQ^=˜É›9q‡cÒ¨CäèüM %‚zÚ2jj×ÕZ#!áÆúá×Ú0ÉТ§ÞpõéúF›Û²2x½=‰Öþ¶é–ÑËÞåqÉ„ŸÛ~ª^{@ðѤó~Ôº%ŒAõGÀ Jõžôfû“b#FÐL’ÞEòձĿaÝ6ß¼,¡PšßŒ—FqíȰ³9r†6(jÀðèª:R~ÉüYzmcÿqy5ôf†@mÔ,aÔ< ¬óÈ€ÆÊÊ­ÕPÖJGR\úŸ)ª›,ñGÕÑ,ª± 0£XècÀ!÷CFK‚üMTF fe°Mµù:‡.n¨uLó”;í—”Õë%‹wÏâõ…”NIsžšŒ?uøî—|á[»9š9"– %ÜY¡’Á8&ìÞ‘$`âu‹àÿŸš'uÐÞFmßü°¡Šç‡´¿_Ü|ó¢ [´Ì9ÑîÂ賋l³¼ äËG=4‹ÖÄxrÛ_ç6-ÊCdºlìbÊkŠ.lØÆƒY šÅØûàÃáV=£¤uзç;Úh1µR¯mθúýdSwÜ^‹µÞøüL¸¾âLu•ųÐÜà±wÛ’+¬'jË š„…øß\2À]¯Âu@Å[à7IìŽxêØ«½¬øö©Õ¹Ø!þl¡a¡(˜5úCŽRŠ«>ÙáÏïé- ö¦ÝÙyäµ;6ë› ‚vüAú/·ÿ†ÓÚ…±’Õèü9ºþi»ÊËî0E~á9luÖó&8}™ŸÍAx^4ÂÆêC:Áh’Çk¬âÀdJ£ÁPQ·6Ίù…æUìSßHtHU‚õ),íxô¨‘¾WªùAëÞöÎ&Ų¢Ãàû¨©mÈü/S›êj[íZÍÀë2ÕÒEˆÒ¢\‰‘7Î]ÃóÁÛ»kXzT{+Ò=Ö¤w}½52CñRî³µülTÓ œš3lŠÿÕhžÕ¼¼KôáwNˆ3ð"f?ÉËÖØî§öãºÂ$~}u¹¾¾»}˫๚ ·<´H*š>á6²_yvV ÞT'Ìj52˜ Å—?Ý rôDtÏ:¥¼T@C{Õü¿Äâô<Ô_iêºöiûíáFž^_¹ ÄxDì%ÌaëdtHŽ÷üMY<;R;Ë.ÎË:43Ï·…™¯ì¶æ§ŸÌ €õê`TˆðàVÆÉ=eûVÃçAÇæÆÚÞpvÄ ó üî ¯ªlž^ÎH_äγ8tÃgã>vPÈ„x·OE“¯&³}þ]É`ϱ‚ûxÆ~C¨Èr¾³Åöò=Ÿ?5˜‚ÑÔ´·Ã'„Ä;8ª©¤Ó›óýF#9û%ÿÞs³ÕJ^oYÊeN͆>ï­ÒÜ >¼ÿª ʨb;Å£×™ù_Kº^šÉýÁGtüÒBn’ "gJnOw0‰‘L”ö©úׄÆÏ… I,0Àh\ð¤ãú´@ÄáþsÉ¡×t9ö ð!$Ý Gýså`:#´pI™;ÛU´·†Á­ª¾ö.fïe3‰M†e†s½) *$ÛUWv²Àº§“9¾Q<¯Cæ;ÞP¬W„C&t]ÐKÔÞÁ 'á¯ÒæÜ(gÜýÐD¯ñÍ[VõXQö®¤üS“tþ#*N Üb:õ*ÒÝe×ÑtÇ…ìÛ¸)@ÚDL¹;J—ÐÔìLÀ¨8µüM(5œýnõF‰«÷ /]þ¯X&Q×0lЊÆÒÃuØ7V~_:ôóëÑu>î—Î/ûWpŽ‹õAÎj^“·ÁIª®Ók¼­äâP§˜aìþæÌ¯Jñoû¨éÞ†ª µ² ôÒ®ÛW•WÕ®îž×¾@‹ˆ¯b#\fí§qöúžp}½ß?ÍÆÁ™(á’¡hƒ¦T¸¬&dï)ªÎ²N²’J“Êkåîf õ`ŠÅûñÙÚ”$‡²7ÛÓùÐFÚ§¾É@vá©Øü|­¢dZÀ„tDÊmžÜÀ“{e»Œjñ˜fä4Dfù$ÔMiFåÿ7ŽŠ¦S¶nASÒ±9ÁG–¹¨ÉÑÄÑÌxÙâÍIA7¯U@Ù_ú/ü ØÈb†˜s]®×k¶»Í÷ÞÒ;-ÅsÀåÛ6‹hŠ^Cõ;ì8z­ÔZcu«•+dl†{[Ž¸Ñ¹T¨mm\üÑË ¾T"AŠC`Ë´IǺ²ïÛ#M/ÈBâþÓ†BŽïq»õÎzD¸µ’×Ŭ$“=£iÒý PVc5R ™Úæì­Wœ¼ ˜/¨Sížd÷j2º”lM£–3áô¸ËÚ.ýø€q©»Ðz ±¶;Hœ±íú\ó[<öÉOÒi©:Jëà*oŸ©öq^4È2Šéµc xLdÜ÷ ;xÊ“ÓÏé(¦k?°/Žaæ´’5ÄR š¼["ÞfI‡“£y¿!âFã)Øç†ù8¦}}n¥·9àâM×ê¤U(0éé†S—ÒøãÍ"ú´£X5!³;ÐÆ¨[\Ðn÷£#Çü“ÉÄžŒ Ûíà`5ÍÛ\ƒŠQ‰ãbr4S€)<4™FöB·Ú7gµYïqüD:f ¼çPh¶"Ëî¥ÓšRiŸgˆ` Á^ü5މi·èubÁ, †媡¡¨"Ù <Ã[•Üñ=¬Y}¦ 2nø±gƒvo•kŽÒØ8{‹í=˜d£õ`•mê(ܓ͵]’ÿæå}p—cÛÖ4×dŒÂKvÕ餘2ªϱ*iI±¦È=ñL±«IÂ?çMTšŸÃ€z­[6tÁüŒê`.MYÕ ¾'Û¼Ã(¦F˜:äAMÑŠr1£ Šææé Åw©oàcT…ØCR™q"–~KÁƒ6 /ø.mv§Ë©ªFXĸÉñe t+²Á]~®Rj–墼O0x U•kqÍ}XËÛn¤¦˜;ÜÛˆ€åx¦ås®±0€Ì{(Ðë×™t' 1,7~ﱢȊÍÍ£W/—g.Uz Iñ"Šý¨b'?Øy.‡ 5€¶UËk Ç|kbAé—€aDÞèHsñC}²žÚÛ!ü†dGÓšRü8ðƒ)ÉÑ¥@ôÝ??Æì7’‹þI]:·ÙÑí£ÁséIð¿ŒÞ¦9 ø–X8ñYXI4G*ÈŸÂzžÆG1F“óþ/%ZbP9„Úõ›; žÎ¸D«û…·ÌëVkeµû2yL¶„ ºÌÃ?oÑ­Åú±ðëßø¾½@EtÆ ­u†ä~r&› õcg-BïU.cˆàÿ&N1ÛÚ[W}ÔT±Í­Š6·qð›W»D-gíÌ~M¬xæ¡F{‘ð{m…|Ne!É9Á¨üL³HÀiýà#'yËà+£ÿHg·xHäQt¼?F3ã€þåRgG/ɧ‹¹èí)Nä|íòÖÞêû{ˆ”p/6› þÜÜ><•_.õBÀ¿ºÎ\Òþ7â€B)[*¹Ž9ÍfA°ì_ôô’„Aœ$ ¥îêhjV¨Ký¦FXU½C;£,gu?z*éæoC,#±‡rUƒ|µÐ5”iu…,,~Q)ƒ…ÚK'ïYòGÿzsâJ¨¿köí÷:|öW1ÎÒ´ ð9d¤ú“å 걩À¤ƒ®òD&œä™ü0ó÷®;%¡Ñ?‡‰ñMîɤ°§Ê½-¯‚ûÿo»®Zu%%P+|Ž3Øøö Q¼•X-ëMúýEE5ŒÊÐ@èVC8ógíhsß‘ˆ•9ñ•ÚÉØ^9D.vöRÝëØÿjÃÀ…M€Eá,<—V䊛ا…L¶yƒe®]uÓ±Þ¹eÔ8tq,Ã#bL\/¸œ[ú*ÛùÖŒvbˆÕ¯ Ð~ 5ç¼›b)%VæÛáëƒ|ÊžÕº-j—˜ÆP´~íÎ¥xÇ¥Ó}=’ã0†\è{Ö`ÕÃ6s5÷}Úÿdü|®tC[N §Ã³€¹^M…®Õ…öwÏÌ€ütžûíãÅ£X^¯¥ÓÖ›—ZE'^ÖôÜîI §ÂšÝ¼Üx¡Ç=…¸…Ó¦‰Ìß-Ág\]†‰¨“l_¾kÞ¾ìòc¤÷g³3Ý]M?ø©à‡®“å_•í‘ê¯4Ay\üõ°¹i,;cå"T´D1»Lªñ3Û_ðº Vd»ÇýL9uhh„ßRÎΤ%uOúûQ¡Ú¨ûKxŒ ;òôzEK8ìÊe#LÚ¦WŠÇ”<ò›§½ËÐ/_•awj1ƒ®IŠˆ„¦1Р)+„χó¦î¶gŸ0 ” F\÷ü!Ðe ƒ$²}ûf„ËüÚn"(“0ÐAÏQV$ûû5h\CeÑT¸fãõYa"¬M è¾ÝöÔÕkz!Hƒk¹‚¥çM©ãÙÖÂ.ñpŸnŽ‹J×GudS&£yѵ€×ÜU %Ür͆zçd9ŠJi'hG¶„ȼcKÆ“`}dàGʦ¢qcøÑlÇÄÑü®G«‚ÝôIjç@ˆ‹)\ÔØŽ9{nŽ{}Ÿ Nñšp4WÏ{G'üXOýQh&*°æ8FR…Ù ßÏÄy×Dþ# ûá£/j\mj»ƒ¦UÏ࢒οÌËÀá¨Ûî«™£ñÆb¾l£U…°Ø {Žï &Ú“¬Ñ~¿V†öçú†Ž ñ!„ê¶ÃßÓc ˆS™SŸù;ùÈÉ?Θ²b> ¥úúQ"e8PÍø ¼c)8/­ÎžGUjy†ƒ .G¢%¡õ/Ú§lj»Ÿô”B]ÜsÈ7݉Š<‚È¡ÿç'ló,Äüã§zsN{þò—{N7ÿÕ=탼éÔqm g ÏÁ²¬©Uñ‘JØü5s·ºVR@[[ò“G£Ï0Æ8zç¯Ù 0iŸaß̼òz§ÇÁ< ÙwÕ À§geN{ -(<ü"7 ÔŒœÀ³=hÌÕ5’"áWôšÏvžh¹r¾ù:¡Cù]è²/ÄÌôKd½# eÑ(£Y¹ºÁM˜2¶^Ɖd'rÁV„=(ä;#¸kÞšjéþ}š}+½¹¼S Ã3 ¼ÎÄO$Pù7"G;4¡°´Å$cî5tc<îÚu3B„¢ûB™vÁ(ÍtÙ vû°\q\wƒÝ8nÓ«m°Ëk´› ]f­£•ü± ÚƒèÔèG[Q²G¦†³# ê1î¼¥ B1tNÜ?q¼¼‰zÆ–Rô2öYŒä÷áÅä)2ξk?–`ªz×ÁÆ:íŽà"üĈ¡<,”4¤ôË<ºß¢)ŽË%†Š±>xø€ŒáÛR¢',<ÞŽåoüÎì?R‹ÚXÏoù6w(=A«¡/Ÿ_SÐú —R¢Z‚\hKF¢”ÀÀãA,_CÉ„’—”;g6ƒ×3ÝùcÍÉx3ÿ«»º¬Ú9&S´ááÈÊ'æK³(Ó[ÎäTSŽ!ájöïÒ9”CšU#‡B2¹üMFSö©2|•Þ,ï»IiNA sû ®t¤ç®ÑQ,Ù_‘L¢Æs>ÊıԼ.‘s‰Õ·…ãÅdcýdÒ˜PäY‰ê<¼/mè{HÝD‘ó´FŸP½Ë%y©çLº+“Ø£W±iþ:Ç;ú™÷”F€„¤á|¸•åÆ3âDsÖßíåHÇÊ”š‹Új>©èÏÿ' ŒBv‚@‡¹Ü.Ý÷=~?ívAÎUÎŽMÿûï±±4® Y³Ö#»9ÇEµÈ úvœ]É™¯:åi^\’‰÷ï²uòÈÃÙ0ð"WyÓ6J¢ú€e´¹ˆÜ@ü.…ù?¯þÈ'[i Šð,Ü#^°žO+w!„«‡JyfÂçÇhF>;åÛ ƒï<´ÛÀÐ$mÔÝ'ß-!av*!ßôZšGÿs :8¨“Æk˜—ô^£6J¼D»ºj¶T߇ ìz…Ñh²¤+úVQ럋æw"¡~¤N\ô€’µ ‡›ØžJ÷Ö™‰)T1ôþë=trÈt’èª8Þš,a_AâÖÀK°hø1Ûê£(iÊkس††ê«uèTaq4‘:Š{7ýÑ­2£Vdø :Ñ:ú¢ƒ•2º,eî,ø&j›/ûTÇ3r˜à g{a±Fø+!¥UÑmhÑ¥)2û2ð[ªrýSGê­žü.‡ÌÿLzàä\ÏÒÁ:e—zÂ÷¾UVФ…³bˆ“·u"e½Áì-ŠÔ—¼Î©O2‚uâ0/¿Þ››H9Ê3:û±'}9üW Ýít\òì8¹tR˜ž7 Þ¸¨‚üDAžÿÑDŒ;2Q I äJYü–¸MN4#O«j›béb|æV–[‹”3¼6ïRÍÚËÃêN>ÏÃí+/€¥EˆÊJ[*¸‘¦®¶# §ì«Cài ;<ß´!&TÖµIÊõì±o.¦”!C:@ê3úè¯c¹¨e§•`µ}®sÄõlçºÈ*,±ÒÕðÄ•´IÊ|¦¤E²zx0’[4cQ·é1ïæ×~3Pª´ Ѝå9#ã_¬Éó.˜]#ˆ®˜I2Rd«&wàÆÄJB7¾Ñ[*0U¶\ðb¾˜¥t~ ¤ç÷%ƒ¾Ükÿb\vEW¨¦«¬ ׿è PËÑc•.'оn#Þ\›FÈüJ^^âá!ÇÅá2ó*‚¶WGD¨ÙGJÊGËq2—.C®H¦ÇÜö¶+)k\>ÆÄs„š•…\caÌ¿>^N=/ íÃ{ãC º©!a:üÅœ|ãy¢î#e@)\üĉ‹™ÙÔ&Š">×:ê¥1|~±ÏVO«Z¨%‚XHÍÌ[ÝÀd·—A07 ²}å֓Ѻ•ÇjŠûðò)Ûžyr^Ô Äp¹&u­/Œx9‹V¹03êDMSXÏ6dð3;b0Ú[ÀíÓ›õê…¼t¢>kAÌâ9\½)¬¢uE\,¦2Ø@û¿;½»Ç5ÿCíÃXº³9ú‘ËøY%üÆ6AþÞ Q’T4ìÿÐÎs.mJPGøñT‘—†Ô‹ÁÚ>o©˜´ð^‰&cMc«Ù[FG7^ý8O–Ê:ùM'(P¾é³¼L]Jç_Íh.Æ hCiãàVÊY@Â_vü$ÿÌ4Û¢oº“ß&c‘סdåõKA rm­çÀÍÉRNÜqTg¾Åî¡ÛG*¾1Y9¤d!Ïz£Á¢ÉUçgzøÿ÷ŸÏˆ42µ¤vú~ÆŠZB]å-îà¾`ð@ƒqš•p£T-ÿÊóy…ªàZŠá*\@¡>èJj^ã|'€9”m¶Úe6dé%ü1.0Z%¢S×ášxáÓ['¿ð—'éž’7¬½«4Ú¦:Î•Ü€Ý€×Æ ü»ßGY!ËPŒ ¤ˆdý•¾k´å½yeò÷iã,³[$“lEÞŽ#í_Z5-!8¹rd=­$G¢E¤dšäLŠ+ÿfkdàéâ™ÚB”ž/¼äÓ8ÔEA Ñ @R£¢”° ¨9º?‚ÉŠmyµ`¡{–sÅ*׸w+¼£W²=¤iK¨6n§è…|ƒIIñoÎ0°V¦ÈþNn àäyè~ L0´Ë¦8ÖCîyü‰´a"Ô  ·üL­Z%o‘Gƒœâ#(¨sfx=gT“$¿Þ ‡,Ý↉ŠVw¹uŒJZùñ‹à¼8y:hæ*:®Ê‡¹3fÚ}4öí‘ù8EÞ@}ˆ2J7ÐòK{ÏJD-Ã$ å‚Ô ±„< ÁÃ*¢^zè_Ä¿¶'šHR~,Õ­øs=Mô‘…÷“ò±æã2(D@(§8Ö8^IêÖñýôo~ј‘¬'Ÿ òç#èä±®—Fo´‹Ú´*âˆ¼Ç Ï8yÏí<njޫú®ú9.<’Ƴ+=éË·‚Ò&Púp©ÿÃnÎ(z=>Ü}“üÆmqÜpõ:ýLdæ”O…© Wy_š‡~–߃aKúcº\1öN“ÀßÛø»ž¼¾öû­`¥Ë¡ëèÿ<2¦–z%ß`…!­Wà_P, ëçtH±IÍhq4I$XüLi4ÒÈì3þZ™"óz'“JeBЙkÇÛ®òËkB×YÏÏG…ê'8¾úiÝ}v˜Ø{[u¨1àãÒA*À÷Aî­"äÍ-UgâK¹.¦°üZ‚d¸QQrÊÛÕdÍöà²Osj¢.Ÿe-ÌÞwgê#”5Y¯ù¦ª‹óY6V§´}ÂŽÓ¿]F0F-§Ñ·S $ü‹è¦Þ’¢Cb´»Î)Kc¥*³{XXµ.-Žd—”hí·g@WÊs¹ S-@„–*lU~£þDÎæØµ’íCý?௠5  ‘¢Vz¯„éCÒ>9‘O‡kñÔ¡C{Ñ`#·Nx&óo ƒØÂÈÃ9W¥‡,éu½,}tÞШ”·Cß{V3¡·úõnO±=¹!¸mÄf3õoDö=þÏ!}|ü2Æ)ÎVNÅÐ1ëËäÈ5´5ýì-´=È®5\`%õ:?|ÀøßyÆÓTÑLçžIKoè ª3²¥+–wB Qm95è¨2 _+Aݸ ÌTì׊µ þnãð‡ßX‡P*A_øÌØÈPÍõ5áñRá¥h}lx×]E„(e@þ)"<Á _‰—AZ§9Ãn=kVŽ¥œà ©ð3 Ñ8¿©HÌô¥F€‰ŒšÛ4üXOÀbrA$!Ù\×½|ϯ…XUÒUwøm²Û?´k†]HðèËðÝÆŠvÙ»Ïà •iÁóeÿ&ôÞ ºÂ¼¨Ð]eroáþyôH1(_R×÷%œdY`ÏŸ •TI>ÕÄT×¶©é¹Þ>»&Ÿ±# €ezúùPÕ[ºÊÜ­úˆ”Ò_,9>¡8 eos?·¸RÔï4›&“ â—ï÷ékÀãnkÑ·gƱ+{†iy;ƒbÏ`ÄY©I[2Â5q„qÚ+Q™Å/C+qjõÏ䟘)wc”Dä T~ú¢ÖÖµVëÍ3,[Æ·n2bor`¼øäß¿Åö¯¿L~úÖ&ÒíŸH[¶G/ï(ÇZ¡OÉv‚âÿDÞj‚Íí÷ü5l€{DÛD Âk<Ñ¿HçõS«oúÚ(HsFouzÒ%ÚCÚ 4ÿÝüñ¦¿¯42³æ%®t¿kë̳ŽÝ¶êƒ=©âÃ6HîLÖ~Î}Ö÷É óy’ÝWkÙÅnðöéP’îFf¦$?ÏÖlùûíÓÅ7àù|~çêÚ³þXWg¢9ϨûL‰¸§å;EK8&÷Øí´^Ý‹q‡¡dæFÖß"0Eõ£Ý3÷av•8Nw~=‹«J±sˆBÞã'óð›V¾tÀŒ˜v±0¶I¬Z$ñ$û•hñ 9sÿìX;©ˆlFô»™ƒAÂ2yIæÑJôW?8Sœþ¤ÎáHýç_5,`iµùR)q f‚1¹9ú,À¥H?ÉC²6"ö·¢øÊ®6ꥡ‹fVN@ŸQ´ÝoMpþoyÞfˆÅ|R#ãéær}‹oÞ?SèÛ¨…ôA¸sìÐú/Nÿ^h ÁV™EüLÅ.ÄqvVV7ö´ÓçkjíÉÔ"¦¹Q¹ø¹J ŠÈ¦‹tõã0C²äEçj%£ò ÿCôà Û1Eá¢X ä‚/ÕÙZɵP—ÑeçEÖ\çƒI¼&s z´‡úý½âÞ[©²í÷}AHÃÎE Ä4 *鬩ÃD¹³å)sƒ¿â—¾Î/>9¨²æ “’fXTÚˆw-&PáóîeŸ3ÞPËŒþ"‘ì¼÷ø™æ§±LT¶‰èø¿n^súl¹lñY« ÎËúmše„ˆ7©ü;$ø 0¶–óööÄ<|ëÃIWk‡l{¶Ãpÿ…jã€Ðʆ÷k„ï®Ëë!Yÿ€,x1<M5C…-_¬ÿn:ä”xɇñ ãÑe´XûŠXâ‰ÿèìtŒü¢ ¶ÚoàíÓ5°`æn*ƒæ•äÉšdSî8õeçÜÍl0>öcÒõVõÕ>¬ß×°tì÷|Ùšü:Ú¨Jl|ÔÂŒÂ7ª¢íç‡ç×P¿»Ù×CËmnÿ$ü5*:upÿ%>ýÈén/×Úð8/Ïúwµ­ÃifÍýîì¦}{T í Å<‹Ø3kO-IúÀµ´6Éçv—ò)ÝQŒ76¨³­OýN8.<*ˆ2nTG tZÃÕo{Üa/"(ØeÐ= Ü€=nÖþF]q'3à„+ô.2€s0ô>7µ‘’ XÖ~åí‹ÝLô¤É‚Íû˜mq›X&[ˆ„¡l¶´è´ø+ƒ¢«‡l²ÀJüªÇ^UÖL¢J ÄBËÿª¤#¢]“`¿JÛGaéï…ìŽ.zÚ}°ôž.(ßÐ!¼!·-×ïüRœn(U+m/Öa‚¾Ùå˜>úìªp|÷:ôR;¯=•?"p#šóÕü/a½–p¨:ôõˆMV¢*íÒÉÿÆïøÊÙÑ}T;ù nù•‚xÒi×&îo#±tSéc›$½Ââ½ÉÉM¸Ü .ë_—{–×8N’^yÓ’(û*(¿z×™ÄÒ5_Ê:@áÒ\†Ig—ú1›zEÍHçˆÛæw2lå6‹1Ý¢YPÐC§p³øb‰ÿiO ÞâÏŠÊx·x½‹9·©M3Ìa¾o¹Êwy¬gJç·ƒò‹ÇG , -[¼&¶²Ë ]•Ó¤SxÄ%Y\œL|‹:˜8¬.ó ž>mDV¿;ü€¾¤ÊÊ0¥ÏƓՖÅaÐu1]ã$ Tçc ­Arü|‘Xj@í öà›Æuþ§‹¢ä†’²«¦ˆ1PÁ)Pkì§Ä¬ƒvç:¬'nDVÌ+fa$¿ê òØç3k/D6Ú?\Zˆ¥BŒ7^Õ(l £ŸiÐ:hY8(íIªô‹_ˆîiœGÑ⩃ˆ/E鈳Q-2Szšõ=<¡––éäÉ’W°ç|QÆßrµÊS8‰‹¹Fz“>DTÐÎñ*e¨lzñ唲¦â‚ପ¥e]γD4âÜHWiñ€ÊuW\俤nß[þƒþõôYõ·b˜u–©ñ/JC+$öç†JbÂ-ƒ3žÉQ¢Ä$¬ý ǨQÿù„·I#Sxì4”Üÿ­`ø©TÒR¾+®^:á¨ð­Ü:íʫКð;pÇ @cÄPæxÙ¹q.= cÕQÛÒE ÿÃA:DØ„"ã*Ÿ´ÚdR~œÉ©*¶ÎfåcÛ­S&EéËÍÔh%{*ñZü0p–ŽZûj­9‹û Œ2º?j=þ“0à5ÞuýVðÿpp똈W;°þɤR p#–¸³Û7B)e”ÞôÅ&«@IõüX:‚Î6Ñ ' ]û'à@ìdGýÉ~æ?ÍÏ}rLߪˆËy¤®ëLÔžŸán’‘à*ìžÓ=œzHÑé¬Rº¦/yßÈeîZtoDDõl%|-³æð°9ùÙ+”´Šwk#^¬¨,$X'±k=r¡×G*] ŠÓðŸaA ïbgO\hê½&¬«ýŸD$9ÿŽ°Þ¬HâOW;ÈÍ™Þyô‘ßÏÎÁqp,ö·{Ýï}7?*èŒísÕäH-(7¥³×#¡§_xi­fsƒžÅ"¡?TÄ­7 ‰F4ñM‹Aãt Ëç2<ësîÇ?±}½úb*jûpá*955ê Újë„î¢{OggS€”E¨ä`€PçBÿÿÿÿÿÿÚõÿÿÿÿ ÿ{ÿÙïéçäîééó÷ûòóðÿÐæîêóóòÿÐßìäÜßÚÿAÐéÿó÷íðèîü6Õ|쮦7Ç{Þ#Mó ˜¢³"¹+‰IæœÒ÷‘ú‚¾nå•X,º§©—Ástä8/QE²„ñ éò5ü¬q6f"Š5ê¥(qZc˜jÉ%7áØÊ!Ì£s5Žn„ÔŸÂS&ùc¬ƒÛ‰Ì’U:¥¤a˜ÚŒ!ç׃S5ìèJŽHÎZe¹¤P]Ä&PõN¨à®eÃÒÁ·ÝGÔXîÇ–#ÝE±”Q šÓU#­üQtö}—d¹øP£Q K'ûl9W„ÀÀp*ï¥Ü{<øb¹ey)²ñÍ{A£àµ(¬È÷Ý)ìÁ¶ìY»0[ª–¬Ä¡©êXw±ŸŽçîå/Èè¤!‰Ý¶Ô0ëÿÅv£? Ødoºï˜Cwü][y Rc.´Iy}r’Eå£:Ï'ùs¥üÆeÎi®O ru#VÚDús(ñGÊ~¢$c6C#4I¯Ÿ™`ŒGð „krÐbaX›#Õ0ï²!›™ûhbQUµ¼ ¶†èv L09$N¢xµä41‚|¼Ùî¢wìëªw¢Î®ñtÊ‚K¹ÂÈ=ò8ϯw½5}…+ŸoH¿äØ-T"µM'/(#¨L¿8Ü‹C¸eÇáª9Ïhçoê ù°nTÁ²«Û±q’£¿X7p0ŒKßÎ^R¥þC⇲V½^ÎK=â§@ë=ßçÈnó™×E1ññ8x‡ 9«Œò¢Á%´sª W¶‡ m!nª84õ''Ý Üséa1)ü.™‡¹!OÍ÷*®Žù+ãå®Ö¨Ð³LÚ[œœÖ¾áh¨ˆËÏŽ O †|¯{ÜaéµÏ;AT¤±U@6ûiê«ã[›ßÕ·kí£ÕRpžÙh‹[>ᷦ⭱†w5:æ[Ÿøž9Ë»ÃäÿzB–nÈ)%% Iï!xmGn²4n³œÏ$jÉqwe’€ñ¶ÀÞû|9Ådebç4k¡(¬7‰m€…)…ßéå“{¸ÔÏò‘A>i.N¸£áaƒ”Q@ÃTà¹ûclò,ïjÚÐ<7fsÝZÑñA¸Ž`t½G…™n¢xÑ; oÛ!—ÒÝ'•¼L0 Ʊ.ß õü|˜[1ö9A~$#³Iš±ð|ÎNðp9§9GucFðaD3÷À¥”_œ \ÑâpNæÝ¨ô%¡æèجVÇP»w"Ó±zÂÌ ©Š¿d«Ë‘î*I©ÂH?qî«â$ÍàØNÙ Võÿ¥Fy©d3%S <+|6Kÿ³ÖæšÝõ‚³mM<)N½¥H¿¨ÚB£Ê^mVêÍüßû)ÞS5MsùhWX¥ˆ—¡_ãDÁßTú}AnF{—dH¡Ý©Ÿö•úÿE=;Ké÷šArhWç pÕßγÜw[Ö.ŽÔ^µÁ¸ïµ[S³O”«Acö§Ý2_Ç62æQÊ…ñL¤ÿo>ÇI'=ÊËŒóssèêZæeÞ@ù‰—'¬ ¶ÿýcäªou0TˆŠžË@/Ú<ïPxÌÍjßÚð)´Òqº?|·²/ÜFà?D·ú‰—ÒƒnÔhXP#_ûá#̬âýC)˜€%Ö^K ˜yznØsÛª.Êýì¢!š4ÒŠ³a|öÂòÒHH1¿|"ûl!|`ðêÆìõÈP‚2D™%~Þ•Q ùÎeP_ÄÀ¸ò‰HÏÜh%ã…£‘ =T°ç¼Æð1ÜüÛ‰·¬ÂÖ’³©`ò+ .H(HEºOVœŸ ›¯`úd´!WozWù;¤ôü4„JÌ B·Oéaòí½1õúw­ýDQ°6mPí"Ã0<ð6*­6¢m±]³JA¿²Ë^dãé©SÌã9öÊÆ'ÁqD_#eD1DShn*`ýÜZçïnnD¹M7ë¹coA•pGÍZï…Ð0g»˜â£Íq!0šôFfdâNU‰(lVÃà¾;$ÏËEŒn MØÕúf‚ê{"ºÖ“”Ø0ÄO!/»yÌüråÏfú›—^V±¡ý3DV[ØËbIüÙÇž°8Ï»‚ ±'‰vyDCœÌ¶.š¨zÊ£Zü»´‘¡RퟵcH:O—ÉÓ@µ’`“¨°©³ƒëHê­X§b¥^A‡f*}×°¸|™‚3±R<ã_|s7©¾`U ëîÿ¬¶¢°ì»#‡GAÄéÍäçÃaÌpˆÌÜ]^(LŸÑ_H˜a˜ã™WØ,/)–œgõ¡9¶‰··¦@Áªâ|9ãŠR8Tªb¼|U.>¡fF~å÷îv§´(×Ó3­Þþêõó•c[º;'3ïéßÇ앎“NOm™I@hG‰×á§ÒDˆ9¶Æ_÷L G 3ëÌ‚Gï+<åûh­s'4ƬIüÙ4£tdÀFìšJ^Y¦„€Š'mYlÞ5Š«äß%ÓxoC@.ˆ ©‡ßüf‚òÖ®ï:¢TÓºÚŠ¥dÊÑL’…úš7ÌÔg8œ©[PKBxK ‡³êQžáÅ£t!Öl…*&‡¡wË(spæqVÃÃæü~Ò‡‹ WžÃÀJÐÀó_\GpbÁÍ_‘vRè_úUiQB²×ÿËõjÆ÷/=…@f.pbýù®*¶—ÆëæñDX?›Õ¯zC~SVˆ+ž ñ®X~RZH“ãÏEŽê™S ©€”|¾ÑD5Oâ¡ ‡ñ…*HlÕö°`1Øê¹ÅûîJ71´ôIüÙ¿„~ÁÎ%¾dõYùÙ‰Lö†Dm¼Ð­•PÕBè+è`½ÉÌ@<ôÒÕÀ*ª¯PAg&H+ÁŠ…oâïÒôð*®ó°õÞ9ý¸ÈÈáÜŠ™ dµ>¼¿ }Zé;m-šR‹¯ÏýHÝ €o!98ŒËé,61rŒ`Î}‰È•­&µÕófÈÛ-ðX%Ã:tkz’dÚbµHÇŽo€nµŒñ©¿{íœò?µóþím'>Úëj°ˆwª?\¯•`Ñ!…v0=ztEÅ’\ÄgWÁ’G—–Xir6¨×÷m 8þÔe¿æÙ µä;ÛSgÚÿº‘Íóÿ±é"·ü’9£Ê 3Ë…®þ´ ½E²²ÖLð5ÖAÌéÞ°aNØ~ŸÕ#UŸòÓõ¥ëÑõ¶V–ò RŸ] œ­¹A0ÉÀà΄E‚×Ôg-cÄýi¿ãRÃw¨3)EÈÞ™Ö¸¼V¤[íüyXIÎE9@xY+à þ;ÁüQ¼óÊâð’íÙÓ°7°²œîÊeoEÁ>€&Ã’­|!Ö¶tíc5ö8y%˜‘ ¾(»þoÖL–ØX¥ŸrâBEqø~w­·˜àù¬º*®Ö&bGôUOtÐuC¶¨Ÿ%R°ì½Ú mxÃË7ë¹Q2ø~UtIü§N¥º ûÜêúŽÎö¹be(n¥AW.ÏëšIòŠD~Œ>T ¢-)…Ì*„f4qÓƒ ªVt3% ÷ÓQ"'?÷.Î.:¿By‘ü"¨4%Of¶gÁ¬åè¡HEBÌ&® Ó/?Æ':Ð˶\cŠŠØu¸ cl°€š‚ƒ4ñŽ( Vç»0AñëÌ:4É·J‡Ö©Ž‡‹%Ì‚ÍÔ“†zâ²—®QÿÊ;ç)¦»ÇÏ«`ÚÎ#ƒ¬OÿSÎlÒÝ {– ^ž>áòTü®Œ»OòôSP΢§|~ùUßZ!—µ©2üÁ¸[L³ÛâÝ)äž8ã~1º–]¾y‹ì+Ý9»fô÷§N¡݇.²Ž‰ÑÎh9f§ÓÌÍeF Ðw¥Ø‚­~“9û#š´¢–N)ƒQ3AœùTnõ%09F3éºx6”,²@ÖÓ6Ä>2A›8ÈÔ®çD^Y®Aé/²õ˜Ù¡–&\©‹:ÑEüšô® ‰>Å–*9ÁA¿"¾—ýsîy8\[.èé{Òig©Ð*I5©ð‡âÈYWõI[E¨ŒT¹‚å¤È;IfwhJ8¡|µôÄ¥kÏsÖ­’0˜´R¥Ug:_5h4ûÕT'à)EÊp~± ÙcäÉŠ[ì^ßÞ‹×seh8-qÔAÓ5ùͤWìÅnCbÆ`XW­HS?S³£W Ö‘åþÕ½’=óñ\7(Ãp. M`šêc”›(§y"’-êsð}ÅZ™YÌ_;4ÿZDÙˆ®ï’"„=}•èÔMXdâ›;8~RAµ×¸ïœ0ÔdnËó»z[‚é+b¹j©ì”–$|'¹i«©zÇó{\ 22 }Á#ÀØ@'—©Òï7'Š­óoŽ ¯ý«Ž›üüwK8‡©Ôú‰¤'$×èÉã¨äM3ã$€Ðvr½hÑò¯ÛœÀf„wI+ÉF:ÑH#>Së‚£_a%Ý{S‚•i¨k'˜ÆzXÑŸ‡ù´žg©ó Xëž–hyׯöP‘…,qe-ªV_7‡„¼ iÑ]Úís—fŠcáXãZ¤ Åo±rÿC.ØFe‚ ¶\8ÑÛƒM½ìjFœ›Êñ6üL²‰ÙÓŽ|Yܳf÷ÕT¯ÑhÔÁºØ ÏGp™Ô’]V}ð¯3ŠÔ§‹j²^Û»¸Ž¶ôÙ9Jÿà;™KG–C«»xñ²`´Åj §Ô5ÞÔ&rñ’Û‡Qÿ¬Jæ:ÝÎR]s\¸óG~ï"L{è­µo®MU–H=tåòMWi ñd¼v~/øg–íllÕEƒ Ž4è4º^»,ê™ûòÇuÓ$/»V^ud«ãÿÕÞ1Ó›(ð”G~€¤­©‡îb7.²`f÷ðÄær ^r\Ù¶µPFÞ¨HýÿMFÕñâxN) þ½FÈ?üL³½ÿSÙîï,‹EnàoÈÀ»dœŒãõÙ€ò°¾5%—nYó·¶q³ž&YÇ{¬ªbU¥ß¢og@¡‰0ùÊd¯¥_†Ã¹vÅ í‚;µ½½oÀ¢Â¦×¢Dsî·>Á„;¤Ôš˜7:Ñ׺©®>&hè.Æœ?À¢<Ó;DŦå u´&Èî›uóÑ‹³àÎïUÒºÚˆóº>diØvýžCµ€g~U n(£h­0õˆÆÃ~ÓUk·ª›6X¤e)±+ÚDZc¾!ǬbcZB‚¸K·~º™)±kê]Õ7üJ”G útxIñÔ“(V3ý/ªä.ÊÆ@-ïy2ás·ÄbP@¯ëöetB÷Ô…®Nêë;eæÝ41­±=¬–ÝÙÍ%( š'L%©¯¿!òµ¹xcàH˜nŸž0#ÖÆÚɯ„qP÷aŽ<ÿÈ›_NÍš‰)"²[¦Wöý4¯Š…³ÝÇrXV  ôžê3ù@0ãÐùSrVŒóŸ©:>=Ò /åGN ’•È9äÚž!„+mòâd*?¼<'¬Œ” ýDÌ«ÞnÏáó:Ç}P…×”×üf¨íüMMr¸UwräŽÞ÷;éÙ¬«`·Æî›@K$@qÈÕœæUŠ´±ÕÊ £WiplÔ¾:úóámJà™Öå“*3G^îƒTì¸CüüáD9ÎÍ?r_XWîúä‹Áà¾Æu_ì8eÓ³ÒµÛï§MóÚfª]dUŸA IJÖ ª™åº‰¼C:¬¯­àÓ>æ—T¾¡‘}‰Í­=SD¥2&Š¿Î~,²d]éñgû‹3o[börŠ{yCw!3^_p~mÓA6ҮÍÂb(³^$0,8f~+&¯¶bÓCüLÃÉ.ž2h,(rÁ3ÑÅ<ĉ¢aþnÜ~o·¦Î§Ê[qpŒ&Ù¬ø£+ˆ§¹ñp[^âFN5˜Àåâ.ÁÇ?†ÝåS>h7u¾B>[d::ØÊ; ×!û¿µ¦®ÙK‘Ñäp ¨#­L0À®T~¯=ø"c,¤ýA3Þf¾÷¬ŒÒ`zÑâþ8sp”¢v—íNR¯yrÇ·¦˜ 9fû& ðŠF¼8ç°ýuôž¶„Q;Ÿ<ŒÉäAzÍEˆ_ˆšhíu¬OŒšdÞõBãÖ%г’ _(¶ €ƒÜ Çã 06³)ù–Þ¾ÁÁü6qõ¹Ö…޵FÜiÖÀÐ;ZNqmxMÚ–p0%;õΤð/§rN—däIÊÿ´ÑÖ÷˜m0æ^jã@åtBÛëÁ‚ü¤_ÀóPn¡¸Žåq+ LWÕ•rb —›qÈÇòò(u¡†ííD£^¾ú¬`|ʃg nýt7Fèa *¨§ào³Xbdâ…û#á@vFp²ùv…wòQêú~’á9›z5ncƒ8E¯qE·£áœç‘LTAŽÿh•è6;&mŸ_Ào§ö†½8[ÜÖTÆÔÜ OMùêa™pÛõËòì‘‹hñn°˜#SiixP„ ¸T<ýq,ËXcy­&±ßF@˜ôî‰ßúãKÏQhê•´üÒAõArסh7˜å ï  ßr¯Ìà…L÷¨Å›L‰ªðc|}- ÒEæh#w–ÖÛzQÉopá(t1çì;Åew¥»³}Á*>óúþM ×?^j¤?¹Âݬ¡ŸàctÕÃß TCˆàÿc}H®}µ„¤.¸Nž·q¶¶¿uÁÑ‚ÃÆk^ GþÁļ'd3Sâa:G”¾Í—s€TU1hMœv…?0k›¦7’§`·*uB€ç^³A¼¦BI-¯2)÷‰à¹äªÐ@( ã×£ZÌkU›ŒR˜2ü»Ð ½#3óÝjÀø#‚U(üÑîõ¹*ËÅHu%y}c˜d_£m4¦0ãŽÍ‹ë¶]U­b ó¯P&í ó‡Õ¦d}¦WïÕÝe t÷ŸÌûÿFÕÏ7bÏË+TÕQ²OA·4jØecй³N¥:ÀÐ"Ûµ,HŒ’´Öç@Kg¸Üö)ö:´Ì ,;z1À·“¤FD‹ùÛ Aò5ÕÐ0f‡¢!E?ûÑ_ç¤Ï¦5Ÿ©§§àE¢Kî HobvÝ@ =ÿ_†_a‡,ršèwÊdkþÛWæÉ±gZ='üÒ (·^kjr»§Ú-V—DΕïCší \mVý{˜êôÔá‘‹"˺Á•}tãcœ­¬ÎÂ\ (˜ë›öPžyð±|šÕˆMÊ"®v?¾³AêTðØÆÈòPÕ^.ó¤ÜÍÙ©02¡{{¥¥BmКfá6Û°t¯ÖŸÌ€ß¸Aü!iO }w](âÜWºë2Éö¹z¨¾ ÞEˆž‹Œ‹ÀNí,=éFô„¢K =db·& ’~ΘJ¸èâ‹ÍvjõU žGLKOcø¯’½B‰”M5;ªg‘”ö» ãX—#иàðÉ!ü|›š2 ´0çàU!RóÑgkNõáä¡U÷ ¨²ÃÍ.2¶8$ °“]åMx?Ž¥Ö­¼ )5(ô|>&Ô=ÙÒ›ˆ+ W®ñA>2ƒU³ù+Üýiù¤MôªCÖå×ÐÕ‘¢ êt_M¿„*,MßöhÑÚ ¾dµÍ‰lmNé ö¯¡iÔ›i3²*]©ãÌ:TÖÖ>Åõq˜¾9Néô Í—Ðm3ÌÛ5:¨Ã±j`NF2ƒ¤Z/‡€ÿ¦Ô YTšN'Ôm´ónó\½ŽÙä€Té,½Õ-Lúkø“ßh Â:ÍéÅ¡ €}ªzÜ¡x×!M&½è-¶$ÕŦ«O_•Ñ—,X­?¹HÞ2…³9‰CÜ1asF«àm¿ëÅ‘R§qÔ¾•œÚí¹°žjaú|y¢±nó\ÀLÓxJ§5±“s‚î~a] »5IÏ|E¦‡ é3C&ß¾|õÞ] ñ¬@±ƒž_%—Êc$e]©vêur€dè]ÓdœËŒ/QÊ =­ÿü†z®>ÝZqÃ…J¦9wsÎ6!À³ÂÒÀ¶[xSœÿÛ7ô5îwÊ•ÝK÷ýò®ÅÛHWæ—¤ŸÕ“üJ˜bK× ±Ï±ltíÚb'_EZ„Ã=lŠ|âÉå#n9µ(…³#ÉoÔ±ÿ„홹D*ª¥âPɤŒè²_år°¡×±I •¹A“ÚH¾¯Úua%zë­šµheÌ|Á`á]úµf²[²årXÙ¶»V|K”çu‹È‚u@€†ŽÆ:Òß;‘·0õG÷‰N~ 1¾/†"Oî]9"ÎÎ,£ž2^·=#—Ípc+pS—ˆ ©"K¬÷A{¤½ÓÚÊ´lÊ/ãáÐ_do†ƒ·Ô~j-A%ÑQ(üâAáD‹8sjîŸ}ýAp±l#””ëeýJCäA{h;Œvv2ûb^#;”ê¤ îA@yÿ'7¾~a›çê…wùBkÛgê ô8eëðÜmU0v*{eHßäpîú—‚ϼá÷ܰ‰M¸ë×ßûõ¨å©cÑÇÆÙ/Q%ãP«YÐŽá<5)³×7|äö ĵòÿã·qÚ)Ü›Ì,É/)ÞÇ 2N.#ÑT¤D*gó4Aómî"Ó«?¾”䬭²€BBéQ GûÈžXÄžó/+ÞåK8À޾‹R %]|m¤GñYG)rj*Iü/aD³0Ög]ÂvÞ2¯Na1âw «à×-Hm`Ù4Ô­w ±<>«­.lv!“ÄÝ?:Üe«uÂÊ¿õÌ.žx ž¾)¿§ËÖsŠ.?Äâ&{%{hF§ÑÄWQÐc‡N†è’U™Êq‡ˆàIáÀÔñUènXX#xµ"¨©Ãƒä+Œó¨‡ØEˆd%z7íR”`f[š3B»´„Ÿ§Y6Š6½_ ; .>²öNX:_o‡J-ÝïäQŠ«&íÀFò`ªVDMÌõ-làÄGMƒtÛð ê#MMc’jv3Š´Ã´j„·žaóüM4>ÃÏ íP¡!ðŒ ôç'›ná#QÆŠ>Fº„±%dM ‹¥î'XY\ô¯õ·¼éç©DjJBº6w‡I¦sNÛS±ûÙ—/È·t"½ · ÿ»šRLâz1Ã;ªE:‰_"ÚhApä˜þ†mEoSô ©4—Ì•õÓü‰=qErÒðÌïD ÊZ€aá_”A½êŒÐ d~!Ô2FÑFjvôÚÆŸ·ñ°º÷†\bà‰½IU£;ÚÐ:÷Qz¶·§~‘§ -Ï&e*^"äy˜¶™ÓÈ6ßß pŽÂ»HÖo°—Z€l´Øf)éÊV¡’éñ`zSýýÊnnò†@·hÁ‚P¶àÃg™ÐvÚxcœ ^!Ô®/G¨•]VGzkîÄ}{VþkT¥ÒîÙù|¯;È®ë°Zd°Â'Æ@È5¿ÀÜB§+³e?MbG`“);ÆÄƒ=–zÀ_Üâþðlç»’yö÷Õº·D#NîØBÍ0M«"‘Údñ¶€"Š¥GB,;>ÄOõpm¶<Œ‚ôì9  ˜{õq[Z‡Ni$DäÏ C@w}yÓJ¨Sü1“”Ý›ÈÅ鱟 †pŒ %BªH¶‰ûm”ÓeÞ•54³*õä ~Aeøfb×ðµ:+¨TDßM4ªæœü² ä„ ÷§.>¯#èaOÛÜÞ1”RóŽQئxòƒÝ'J8ë¦;x“0ì>ßeBo0FbúÇ;ir.{yµ¡Òa«sÄ6'‚kµŸŽ|²\Ìü¤Y››=ÎÑÁ=‹K‚ 'jRš($Ј%&ýÙ*tD¿‹\÷e“o"îxí賚»ÑKw˜ÊPËX”1,œ¿lá#nhã‘tGÚñŸqâ˜Á+1#X¢Å$õü|®i‚‘¼½òr•8ÖaÇÒν)q6½cl&½ÿ@ascá ÿœ?¾ižIä7³>ÅáA»I]Õ:äô#`ÈÙG”SÌÁsžܦ¦€·'™Ë#~?&×Ýé^F)ˆ¾<‹+¶í^â›Þò¾„yªþÓ+×+÷¶÷‹>A‹ÁD;æ–l=Æ’ÁÎ5‘Ü”+á·!{¢¸áÞö í¶y,ç ëùålç“Á@s(7±7Ì óùm²÷47WˆÒgRFçN»ð|÷ÀþæÛãÛ }W¹ä*Õ¨E;d½çð)ØËfð%[`_õ£w2G´µ>Ã$sÍ1ûð¶Õ®¥M”ŸžÆ¥‡}äPëÞ‚IgĬýžÄim;ëùy¦ïßiÈÄë ¼gãWIôi*E4à‹‘wn‹:Kyš›|«k@€ð;­‰q. Ì®ˆ'ùÄïÕœÂ-ý›ê'‡¢ ‡Ÿ”]ñ"èï‹]|7’&t(¦D¯#kÌ©,)xÑ …ÇX¨"»s$¬3Ì…aþ2ySnoºNa*†A‡LÓÀSäÏFíE—Y®;h~ÀÞ×ùÜ€ÎFg&Ê/nN;Ã8#I¬ËüL½i$¨Púùð%3Ã}›„³šlr+‚HoÖl†Ä®R6ß,ÊâN|n§èKˆ\öìz•É-²¾£ŠeLp1Sþ‘si#\Ö~î#…€wuédMº¹¿î ö]çbk€á&*„|Jà£j;N‘– ‚yö0H6Ô_BAïfë*%±Ò>r=;à›ÿ£^fŒ¿(×¥‹e悽ñégíÞè¹~«Àt¦¢åÿI{ãs³>•þµcÄ]5E÷´ic‡uоOxn&1+–¶¦7 b†|A°Ú‘ßîd²ÒüL­Õô¬ä±;¾ÒÙzˆõ7k¼!ñèVÔqJ6rįŽybÚ†Íì¥æ6 µ±o«%âc8sÉÎmhŸÚ´“n‹ò?²Ö©†Ö¿×;ï•|ò©R1 ­ ÕP£ÄT 2‹Z.¶KTZº³î±©[ʶYã{ÄÍuë œ5ó3(?ªA] ¿M/èñ9'‚º6ç¶-2-kºjB[_t½ÇǬgý2™¹Òöª¡ôâíU[D{*õ´ç– ÇCçSdÑ`Õ×0‰Rj¼ÉK8ˆ«é|U^Ê,òV¹ªµÀ‰(è Û¿üL¶N9¹yZ0_aAk”ëƒ\ÃaZRt¥ £ôVÅ[ãH¨öšÑ³Í«™|¥>¸2¥°Û«{æÌîc4\/!åêGjƒ>®©íû{Êç¯lÓhÒ§om!²p¡ºsÇÌ9|'Lìç×€\,zQ'…=胎tá«‘òÃ…‹yœÂ®¿ ².:íÔIœC'4¬9Ð,N ¾x›e(­ý‰ÐNMœªÙç$ßFàIÙ;õf®fþÉièY>éÕ½Œ›/§‡h‹¿;Že€NþÊWV”ÚMd«úÓhµž´õsüMQ¦ËÖ`Ç\fí|%èC ÑÍ>M•n ?i¼Þ›©uA§cʽ ÖÙyDÚä¹Sc7¥4Ôk¨v0ÎöŽ46æPêQ„*94nà÷9j˲³6ëÌ ²ŸoÊ(a#KG®æ P¼“;™º¼žqùkŸ+ø3ÍÝG8þv¤¡â¾ç;ãTÙÕ9Y§­÷öÂLýÅ;OAˆ¡¯Â[UÀ-—pÑÚÙ°Ãdžü½o 9õ°nÞ/€Šñ¬ó¬—zWùÔÆsznPßÒÃùUî\Ԛɑ)јˌü1‚>+ȪB›»€”Ñ×iu´ž›µãª0K€ ïè£ØSûÇÈÐ׆ن™/íyÌïÛ ºå¨“<×[GNÇ’aDŒ.g0àa=5Ð=§Ù9Í‚„?GðÜE²JܯÃÝOiýªµ1·x?þ,î= úÅ€‹]²k‘UJiXOæˆÓÒãf¾/SßÉ»Áë}hŸœ‚²÷Ì6±WòcVúÀòAÖI•j2c·U¡*Í+~š ¥ð‚w³à{IКd×LP †þ¤ÚÚ#9s¶}gó™{Ûa üLÅÏë c“i,üQ¼Ø01|ÜXú/hÚÕ¸¢è[Õ´TW€&¥µË–ërøDÆTÏ ÿ¾à”ô£ÿgÛ”@Àð ’vwÄÔÌ x×›¡s%w„êËîT<Â>EÆp럳t6wyxNu«ÄËÕš`¦[ÆÏç–Y© pà}J$5™ÔvÈßÙù¸êVëï+v zpUöÏè]3LË/”ÞãB¯WÏÄ"¼dïA¶> Ðl$˜âðÙu'³%^¨îÕZí3Á|¦¨ÅÈþ§ãi&šØÖ¤´0¦uü|¨­Îrݱvнo,Ÿ2­ITÌD„¢Õ‚Ÿ¢= _h²´ŠLu/C5qBÓ¹òoUbÍ™œ”Gi²;eaCcr¯4Ònu"e-½«.¬û•¹Š¨/QÌÃôAk²sÁiÈ‚ –Õ ÍùÏgþ{Ñý ¡ÒnÿÀÜ®.™ „oÎýe8„×' áØ–ÅÒ©Óš°C~ž+†?‰'s:rÉ4Éïή’©”Ÿ>:SãõÝ ]Vgêñzðˆ°-Ðø‚…§&LŸ._T&МéêŒWöõ³OmWœ9¿l=÷*#‘üX't§ÚÐ ëT„*r†…LL¹‡¨¢|U2ïÊ€ßÚÕ3V1\ñl<ÛŸ˜%¦÷›Q –.¨6¤2÷ÑÁ2méPðÚ+® :i'21>ŸWã8Eëq GãÚY™ŠáfÒµ¿HÙY'=¸ý½8El˜­hz–6± o€v? iKd<ãt%.E¾9†Î-«Ð‡–Lôéô jZZ…Ú‘Ï‚†¯dË =V¥Òv­*¶öC¸wK¹ä%ƒ„|àN¢ù<ºÏ¡†çŠDôâíÜ<)üM"èZî ÛP >åTCi…tþ¦`¾µ¢ô36½ílSìÓr݉qì{îg=fÈ&We–acK‹'øÓ„r‡Ôðž·­ÁÿÈØ7ÆËîÓ¯V—EÚ­Ím×ÐãÚ€ ŠJúà†ú ÜÜ!ÄüÆbE˜ØëtK™Ãجjz¿í}CöŒdY|¿!;èè×—2ôZÚ=ñºè¤cX”Eµ‘q·Ñ-ËûdIP ^–.¤ˆÄCÀ÷ýÖÉb :ZbÊÀÍNˆ·-î)X¿CW¬ "ár*ÆñFVŲeÖ¥þAÛ3¹©¯çBq¾ÙÔ÷õrÎÐmEj Å«J®”Úå‰6v[æ uQî¢U Tä,÷Ã.Ê:îëæ:§°'‰Â½zr¨8‘I=HV0ÏPêŒÅ[7ƒ¿B„[Ø#‹W Ø5‘²ûvh'Ò}ŽM)û¢]˜qtÁ`ß®3±‰u&üJˆ’Ð-‚p‘ ;jAMO¯§„,Ò„óÛÞ̱ T×Ý+¸g²IÅbÁÓͱÔxÖNÕOɡ晚¿qeñZ1Û[%„—¢á!jF|g‘ë¢hš¢gm]µÄMÝ`]/°Pxšn¿:Ï+Ê8V»&@ë²± ˜dqM"¾Ô\EBùPå……¯ÛD+îÔS*ÂÀ¨i?|8~g^ÊJœË½'•*›¿öi¤5øiœ{#ÀuÇis~!© ‡¹«%»ïͩ׀¦µShÅ×}+ñkjDÊ)uqòì®X ‘üJ‘Š&“ßùp#âN2ìñc%Ó„ò³¼¹v{õêõÓÔÿ]7GÓtÐ7ñ»üu·°{> íšaAüüKnÖ3E£´Lÿ‡rΔ#“ð¨Ú”}ûüöË;PÔG³ïÂEðÝÅ–v¡B¯±†:ç¦öuÞ‡ P =Uј´wÒð ešª)² ®SoûÕ+ 3–Ï 6À qŸI'3<¸Á“„p"€GL‘5l›åà KAe>PÙÂjñÆÜt*7‚ÌXÙ®_ójXª9q¨«Í™IX´¾É®|qÔÁ§š»‘I@ߑȭýºß18¹ü.Œ=.¡ œõÐSÓ¹é˜ܾʮÕÐßsûf³ÖÒ5qBŒ6.ZL&ÏVòòe¶©ú¶Öº%Î2ê•V0¬5Úu¡P»"GSèFHF)oä¥FõíLˆ|7‰6”8Z6*s|?žn¶Y-³»ÏcˆQò´šÖí.äìÃ/‡à•Ô±. Þ‰ÀçŸ&ì.Ì|ÜJ¦쇅ڜ²T0µÓcp8ä¿häõt—×*ÆÒ«yxà}î½·i%‹‹[3|mótù¥Î6‡5{5žè\Ÿ](vF&ô`DIhÇt‰Á „Ï1£­ü5s[ÚÇs«Üâ(yY9³!N׉èR½Äi+S=¤†Öj‹yȱÕ×2¨m1?êW̯˜tÚöÿÌùg °…é®]®AÈ/ÆónU¬(D|Q²¢¼àw ASKƱEÛ°0œž4¼ô¢–]¸ÌEåñÃàVî›&Ý?oÝ Œ4C7p¥T¤ýÜô‘$Ôx*ê‘‚‚Í›Ö6€)Ùˆ*—Òé¯ŽÆ *ôäk16oî?Q¸þ¾,;²Û5žT5„@}ÐbàxÛF\,^íI¼Fþ¹Z§Wœ¦ØóðA Y»ÒüƃIûéÀð<Œ…]ûW=Rù|0ÐǼ­ècdÎQ;â! [‡¸üïffm§¦aò2V¦2I2Ú¨y.éŠ×«¢ /míûÕÃ_ºÝ«ô»=ñC±‰z€6ˆøf/æSAò´ÐÙòj²xåˆ)¶;TmïcÊeÛã6Ä4–ôÇÂÑ‘¯.¦`‹¸Ëëµ€ù·qö.Ѻýîæ¤ºA³nó¢†Ú„«]#ìžÅÂ7ê&øãfÙ9ÄßQæ`ݳϿÕ2_XòCB¦Ë}¼`¢{VT¨ùM4‡ÅçªìµÐÊ-°»ÝتDúª3•Ù¥,¥üIëðåt¶}òÜJŒfL ?­‚L^i˜-@MÁØ–»…&-bÊènÞ]¸‹´{WÃÈ}äOù”ó+mR« ‰çB™ ÕÕÖ,›×r½6²W{uKÓD-V”ïÂBló+ƒgn3 h«[BOw€NŠH®¯"'­>yÖtÍV 8ÿ|¼oŒ_k'Jls+AáîC®”k´b MgÚŸ37a¯ˆ£<¢s=ë&®Ð7IDÂzLÉì¶@»¨77gꌅ´è#v>’ O Ž]š&f¿‚·÷ÇÒð‹†Ò]ù]Õ·zÖ´Úg7GbL6¹OggSPF¨äaËUj<ÿüõýÿÚëíðõùùÿÙúúõüÿÿÿØÜÔÒÔÔÕÒÜÛÙÔÕØÿÿÕÕ×ÙÚÿÑÓáÛÚÞåÿÏÕààü1ß{12{X7²‰f”ų —‘Q.Ý-®ƒãb…~⛬«åàkŒ;v¤Ø÷¢+U÷¢S¼ávÌo«Q¾­Òhm¡]¾ ƒ‚èï!|‹7èÛ4–ÛEâ¼²i‚ÁDËôÙQáâs¯ÚÜ÷ k‚xOc»ýc0Y¹Üô=…ý+±¨Ò@ÆôØÛ Ååé+øÖîñô«ú† ö~mSò³Z}GÊ6ÔSŒªÂ‘a3æCèKbn½~q&Þ,6ÉY_¦~%èóÑ¢=¾ ÍÀötd)“΃--Æ$¨ʛ¡ô_bX_˜Rˆ«æù•B FòÃ{¡QåÔRªˆŠÃˆkF?üIâ ”,Ëv¡yƒ)›ÿqùJ:öŽëIƒ–Ò:GáABMvü§Ý„Tø³Ë0é?¸kFøgÌ^C—9¿øùÀÊ®¾SŸI¿«{„šÒôÚyƒšÜRˆ2«£›|:F|çL_H°0Œ[n„§;/œì Q¥ßbx^— ¬Â(Šz½%‚(•™ÊäìÙãìâøv2µYÌüs*A|6ß çwVâÈœgÆ¢Ìî ìEr +A÷±plåsbq¾ÌŽP‡À–ûýìi€óxËv%D9•?£mî¤Ê¨Ÿl‹ C®´Í´±óé‚"b s†+WÈ'gOs8dY5ÛrüLÖó•n»æ]½óùøAx±R%H“7\„¶Â ˆìÏÁŒ Ä–†Ák¶àºkýyÙÿÏ:ï·»Ã_÷ŸÖ[Ö˜©àˆ­ûÜ—ãP!eVñÌP}lÆ|—+Óè}©ÞÝRoµT›‹È-eú»Â'@£ûò?w{™ë@]ÎÚ@ù2ÍÅ”ìÈ ™í ] ÊoÒ5VNCהЪÈf.„j¼l+ü0í’Ǭ#ÏFÇDsóA€ +S:-Z„™Ü§f8ÓŒUæ\øl÷¿û+‚›½ ­àRòˆ™D±±Í#->s v³Ü¾Q¦YÊHðtSËäž[MJüLÅaÁZ¨p"3½±±4ðËŒ Ín¢­`α±éãþþ•¸'@!;ñ;ŸCâljÌR†Ä»ŸÒ&¾G®~$ã"LîžøÈÁŒhµþ-¶¨“H×R8Ê!‡Oy›ºfœ)z̼ù 2ˆ7kvƒ:“[Öv¥uþަW<&Cö¦\Ð+UÎOlu§ÃI´åýÄ^¤Üíï×Òð= ”:̨§€Ñ8+yýkM¹*?÷ß$kV½ýãë»® ¬£}³âtÔ–»×›²:»Nx:¦I´4¶n»=õ’Ü»Qð €ÔÔ×—‹_H40ˆ°µ?ñpR†}¹>[í÷yýÑü®Ï$K,C³­0Å xî¶á0|šÆzLç±þ¹ræRe¨dåÙ`´ÀÉSjüf¦Ò ÿÕ’W_cŠÅ¹ÒQ†pmYHa@ MGª(Ÿúw¹ôEÂÁÛŸ8vÒRÚ(ì›Ñv`%×Jê=`:;eÀNÓ.ØÌSG»ñ®qеw˜Ø%n•©O±Åò‘·Xy_&cÛáÙ¯Šø»ÍÛJ‰P ò~ŒEï¸ï{üi/[·«ŒôÆTtn‘wÛ:a¡k—:L6?×&!F{°`º/5•ùÞ›¦9nmÌû<¹´%j–_yöì#îãÞpäq³á®Ë„ Fór(ª3í·¾[WñŸ‡BÛF4fnªÕ 7OIÖi x¡)®B# i¥—ºDrò£aùÊ(…¼] r¿ù&Øëj¨ÃýEÅŒ•ü‰2˜üÁ“BF6¨™xÔ‹¶WGѾâ’òpONg¬×fpÑ{ýGñű·®V}X ¬gáVGKS£¸tkÏÆþ·kn—9*×ÀâX¼»¥„0~l8øÊÙ¬“Ð]ŒUñÆ'Dd©Ÿ® É\aÂ#&Y €J+Qá9Öðú´ÍüLÅ-å_Iz%î´`äFoNS¨•ýQtFb%ÛüÒ¯Š©1æÝ©wb;?„cu€YÃ)8=—!_ö‰šÃ˜¬¿[Ï8 Ç„Q%-jâÑÏ­tšÈ³#X6€;Z1¶T›Í‘GThaŽÂsO &xˆÂ>é0l+Óÿd†«>Zò^Ù„™§'rîÐ ¨˜€"B+«eúBˆP½EoÛ¼ÆkË ÅëÖz PÇ3èh®ñ²žÐkG·Ãö¦Ùß]æ;ÆÔ*ƒø¬Ú/¦²¸TÌfËÞ胰]Cv9¼‚Þ¿žb ©ä‰üIÝóÍZàS@®lqC%%råCGú£Ä¾/èCI/5§HéÂÆC ô6YœÈíWëôϹ#ÇŽf×;šÍrRI{Ö„<¾,¬²œÝÓÑ·c{b‘Ñ4+¢]DèÙVºþO݆ MЩKVê׿[1ŠnÑ[´1j“Lë4ËuËO¨°Õ½>‘)Çhx€‡în¯oQåüjàŒJ“jãÜEFK²ü!jƒq¾á/‘R '㥸¢)“³;K´šÅ£À:ëî­|éö•‘-¶wJǼÂü´u¥¿©l‘Žr#{eq-…¨¤‘8.t¶±üL¬#Ý4UôŸ’â\¢ð ¡€pÓ«É …½—iG‹H)˜àÄ´ºó_¤k¬Æ+Øù ä´Šä¶Qä°r—ƒÈ^ß•˜; Lc®Cà8•”– k ôïÚ{@ü¡QÀüïu™J|Ñ]wBõ–µöO\–ý,rA Ù¤n¬£bÕ´ (Á¹xÚgB’(ã€}÷aãy:Þ5‹ ÜìèYäÖïÒJeѾÜä¹îÅ|É–P_Skƒ» ƒU3n€é3³u“RUcæÍ`åa~R"êœV»L¢zQ7Ý@üL®sœ‰å@0íhÑå¢ÝRÜày/DðÔ‡ÑNñ^ȩ̈wúÚ ßù†”½3/“¨A¥v’¸Ÿô–áW°ñ¿øEÍóŒå¨¯ÀÀu¸¦ 7Á"£ ˆ–"k>îm-ø©80&@B5Ä^ót$Öìêh\x‘¿nÆÜì[¸´0g6 ¯NjE¦# Ñ/„Uz“ELÜRÓfÐ ` 8”âÆ=ÍùêéoÒ0ˆ#q) Ææ2ÏÂxÏ£^ìØZ£w=«‹Ú*°°oiÑ:åzè\,¾ùm‚“ê¶æÑËâÆ(EßO2ðàÎEüMÑÍôù‹ŠÃÝ€‹ëÖ fHm»m  »NzƒC\ضçØJ- ©Ó„£Á(R£ƒ¿\'>?¥‡z­ý¸ÞQû¹VD~Î×âC¸-ú\oæ­?q’ì|›ª¾F·é1Æ…U±ÉÉj”Ks@+žJ3ì›ò­ywvAöN{ÈñÌ/9Rƒ&£MüŸGG/˜ÉÉ @=©-Ìèj±ûYQF-pf+û.¸–ò6‘ŸïµÆ–EIʻީƒí1³ ¦ë|Õa$µ¬.9:eJ‘Aûêy¶|_w°„¤ZvJ¢Íì‰;ò÷¨áIñKüM“CVG}Gt‰¬:¦½ILÍ­Ù’u­« hÖî\q^µìjrƒ£…År>î%ù] MSiÕ$R\û±œQ­Qm€[X°ˆ.GT9Œáb b*d”¯Ÿ–6UâKÛ2öý:dâóÃwè5€a}í-yB¸ˆ‘NëÊý¾PmûxuP û·–1:Uk³D_:Õˆþ "·-!³À¡¤>„àRä ú|­EJâsóoõÄ«ê…ØY-$±xlÿ+3§ßzS|0†Þ~IŽ&cÚ!å‡|Û£ czê§2˜*MÎ_ÎÏëË–Ñ.ÙN±zÖÈü|®û-Êp£â&vˆ!AòHáF# Ãñs/çûB»’T\JøòÕç×)OöU?bvù껃¡ÚͲ…ºÜЏÐäÏ3þˆíɉ÷8ÕQj®Ïªåé`¢Žm‘fÇŸdûùT€±ÒxØãÀ­|HøÏ]EÕSõø}yömÀnIÉú–;¶9š ù/:–Ô9?óÂÊCpôÚ¬ö¿+w²÷½Û|ÇÞ£«kQþœ-ÑÙ.9ïÍBe |>4d‚ ¬ŠÔ°—N'â³™7¬NõïžÀ´Ô?uþ"¸0h^@,¦õÕ·(ìz„¾Ý.§qÕÂu>¸mØvíµ´ œµÏõ«[ÈX¥ës‹ÐÞŽ®Ôø›ÁY½¹’l—"1õÇnÿ1Ò'1üˆ?d0T¾¶ø‹ºÛ„Î X= ç ì}lùîf[1]"Fiý9¾â.øBK¿*¡=”‘N&$èe Y=瀖K ª~ØmŽGz§{Ï]ÏDÆÓ©I˜äèy"¶wÅDvÑqS}b^þvˆß@ýõ¹“i]·=ø z§"å¼v?öñx#! µ}ëü¼zc¶g!%Ùüy( ªæ§}Á³È¡b‚Í—¤Ö0²«¨Ihü6Rp.'¤vÜÃź'šŽyNY3ì¡»‘3’‡Îòñ2‡B[ñí2*E5€€5ü™ËsÑå›°#Å^)À—4U”Wµ-ÐÀ±O%¸ô&¿µNX¶Ú; ThÑì,>K†1äk³äΈi™Ð êë»` ÁB½Zo$’öVz0ªÑº$jÖÖ_U8×÷9ÜCˆë¯æqsò`ü´zSkg@Lý}¥‡VI¨¬|A=«¦YµÖUGu~0·Ò24sRmÞ¾Š¦ou:“e“H)ƆßVÇ0åz=RÔ>-©ûK´VìqÏ©DÏ ö–ZXm[ƒm†ü6S}lù³‚<ØþiÒKœ–¢€¹å‹[Iû[q;Èܶt-‹'ÓšéŒÍL†”‘ £Ø0GY8…WÌñ’–VŒ°¸å^í1²C¢N!šŠi1˜W)ËDAM/K\/\ŒãÝäÐrÂH"p D¼Þ¤O¿ (M*™˜>>}qÊ›p8°­uaØC‹• „<ûk8ÔŒr@”;×®ŸÚò>wSÓ»¹ºÙ޽KFÆ;;î¶NϦg®Á üR%,°Z“O²&À'¯‡ù¥m·G Yy@J:ú‚ ¾Ä#ëËJ¶'ГbÊ@(„SAtxædü6S¼œ7ÉŽ+&´ÉñÏ¿ZWNýµ×üàÆV#õc˜áN¦cJ~YªÜ\U¦¡Ö”CåGÜ;ÄOÁ9½–„/¯â G’óutKOÀÙPã¼ç÷£žÕyæl•Ôš7¤^b& ™š~Xšé­Yšfù™B²„ö„{‡?ï¦Ïå}É="&×/‹|Ÿh<á‰; ©6F›å퇵ñõC»ÿ Ï®·­š•VÌdŸ+åÍïïí!ª†ñó^j¹F¬çôˆ×½Ö42ª¥×ÍÎL'3Ç$õçèÛe©+­›vAâðÒ*€1àT`É[JŠ ü4òî¥ •SÊô ºó EÈ;¡‰Bܱ†Û¦‹Œú`¶úž ßJiǃ—WqkûôRŽ´„dééã òµãW±°ØÞ$ç ǵ:Ÿ‡]8¹SR™O~ÎRKsi4²¬˜þ)se”É͸GKˆàØoDÎòÕŸq‰û ÎDïRÿ_²WñÃø~ãm»å©çduÅ©¶âšé/Ü΃x>Å)€”Hlæ;l—çá†êhÄÌÙo®Æ LU•C𹿠ÑMµHåkëÑ ¤gMÒF¨qçxK4\(俽Q º.ÛññP2õc+©¼/L¡Žü¯^ì‚qú’iyYo!—P_vEDŸtÃÿŠ¥ ˆ¸:ÉÈõœ!Áy^7yoOM7pË$¡ó[d"³ Ÿó ~ÈJMpG‘$õ\?.uGe¹!íÙöÕø8a6ÐWiZrÙÆvÛ܌ƥ‰ùÈVx”@’ãéØ:† 2#Ö¿äé[a0?iå·P˜¹’àVä¬R™7ÝÚy æ§êæúΊm;Ùè–U®w·Pó%¹£Eò´\ A@©{Ì-fnoi ªö?v ªnZ•HÔt‘Ócm6A’F“P“T‚½®!¼úziE98¬šŠf²Õ^°ZÞÌ8XÙ’®{üME.¬ž¿ó¨>aÚäVbj“m†P?š±·>Ñ”—ÇÊwú`~º¢ßïŠú³\.@õØä#^¼ZÂ7Ý`»Ù#@l6²ív%ˆ3\ÔbË*­.G»¦L}&®O+†lV篊¶S¤§Cl¤ðÕé§¥ãw?=;õ%Îâ»6$i;ºédÓ ÝLdš.‹ƒd7ÎyslƒÅ7ÑšîYh8uCr×ͺÛr7!4GߦE€ÒJvë  vGô$Þ{!‡k3îßHØüm@0Z±fA-LœvJ&K¸îë¨Õƒ%Tìsª§wÿ-fŸ›Dò+Ä`ü|®ÂOrw63Ðxƒ¶ß q`¯p¸÷1íá /.«åƘ±‚­@Ùgí'®øuÖuèÎùøúôü<Ž[ ,¯Ú¯Q¹\%'Ñt¶…4ѽJˆ®¿ÒÒ 8rÌè›´iuò¤½0Ï¡ }°ÛŽÛŒµMúx첬fzÄ€”˸ÿÌ_ÿ&sý97Àœ— ^g@ 5‚Ÿ=#°C®8t_q`alz+¤â±¹Æ˜"´Öñƒ•øê¶Nb `ã‚0"ÅZ†éÔ³QOÏðºhc…nÆŽ°Å·‚^%TÿàNÝÍwϦ€B†§pÊÖÆ£cÌ.¹FKDKíú!u,92™iÍD(•Z†HýnQ€Uó´–D{ˆGBdñÛ ƒedËB¹2uo¬g¡T‰ôý{cruX—7s‰J­Ú°žoÞmC ùhUWåÒ­^>‘ZYzÄÆ7“Ñ…šØSòÈ…·ZaÇí³\þ&%†vç’â½w-ûlÌyj•¯;ËÊ;HÂW¼ú3d¯Ø˜€³P:ð``.穳5Â=‘¼£¹›a‹”×\ñ–ƒµ¥KtôÔØ›BÚž²üú8ÿé¹Rø3Œg{{ÌvÄÅ$ŠüMbÄ’°øÀû±À c¾æçGEO{ù³¼°Í‹xy.‡ÛN"½´pú%–üºL9ÌwJ!ø+“NÏÐÂô„n[WY×dÐ`Æ3'NSmªÖLPV…×W]ñ¬Ý0‡ˆ4®-ô./²X>’T'Ë·‚;(`,`#4Ùæ['’vóu‚º6ñ˜tÉ #M‡ATêôÚzBz°¬’ïWÜ$™¤’?«NCÙ%Ó)tdsL‘Z@ìe´ÌL°:ë¢?ÝŽû'ú{p„[00êÞ<„ J‹pžüL«Ó\; å˜Û §°é¶S¼Å4OÃ#Ëö/µ~*ý ÃË¡ 'ƒ²5ã÷IýUœn¢‘ÈËd;ù¬²©è-«1ë¹zh£fåäâÎ˵/Øe DîëœÔ™2¿Ñ½¿îþ¤LÁÆ•8³šþöøgÝ5JÎ]üíÙL©™´o½þéCµêïΧMñaH]VÁ›áÅó}à ççûó‚÷§[¦ bÜÌ–öèy(G8•§Þˆ<"ÓO]Áó©1kÏôaœ1_ʃÌjç’‚Qjõ4²ù°söåüLòÌ ‡'!¬±rv(+Õ=u>©…øE±›Ð=Óbd³+ƒ&1WO’i(¦E|eœ§;À G›‰_lÃø¸V"·Ø N5—‘Ú¢ƒ‰~yGáZµ=5b¼ƒâûéÖ äÀÐèKdÉ Ó $yö$ç yD gcv ]š;aïù¨êuGnì_iÎ2œc¤gRå~ýí›=hR+ü®ËÆÝ@œ“ÊÇït~aQñ]ÀˆGT¨˜û"ÊÙ4áQbc;¯òúÿN˜¦.iZf[ç}™¹ÒÇn5œPŠcµàû@êCF)Ö€3[büPûld™”ÝþIJÚÛKgx÷wç¤IAÑ:Õ")Þ¤ÅTìÉŒš¨¿=çî ßÎø|ö ý1& œr„Â#¬ý ± o”{jÚH°~žÁ¡Ý[:@M³á-â7<'l#Hë›ÐÊ)ãAüLØ}Ыx>k‡Œ[ÑúÙ—ìg\ z®A"†.âv ë*ÚØ˜¼ç*C¯ã¢²üP·}Ž6­¤á Ë_bE9ˆÿ§ô¢‰~Z!iË›‡5H‘•_ì±N÷ϑ˴:ÌÂÃPHiàUfÀNä6Wa/lip üM¨<@wWÇ+,™°1Bü<³â']2L´#š’Á‡lÓû¨<=<øGÕÚóašÇß>Ã÷ûç‡<ùªy„ :CsåT±ónnÆ+ )MÌ-ˆK  ï}ŸðH8Î'¢¶™0›³kÙV¥Š®›ˆæx³BÊÃq«¶Ü X+”ê”¶†§4¾¹âþ9Š9¸k” ¡ÈÑ@ Á©çð™¸Æ£ %“´y¥³dn%ö+&<´Û++MU€=á¼Ød#¤£òJ¾Ñ|Íg‚f§¨¡‹0ìÔx ü6Sµ¼ßîºöè;I0Õk÷ ƒâ%É[à6”ÚÁÂtÕ ²ôArºF¿a•w¼ÅEÈ·épâ°;ãžÚ»R-F'²K„ÿÕ *½§)÷—®là­å#ìÚ Ä`¡’¤ÈOôT z³ø¶Yg@"×06z(óÈÔµ}ßHLJ©æ¶®¬¬!5„?ÃÓd˱mt&?ýÌT=MŒD2¤o;žŸî¢lÈ@iè[]ú;A’£Éü­Å&3àݦŒàXb¾-¦Í|,Á¿Åb@nÜþ²mü1›ê_]wµ•5½ÂV£‘§*eÛXSDð`áÖÊRhn¾·Iª Ä'D²Žëöëÿö â5m§ö)6˜÷w"XpŽÿuíÖ*ÖsUžÊè) êÛ©­ Û˜BÖ $Ó Ip˅Ѽ(Ç[‘eôÚûïIèÛ‘àp«ai˜®ÓÐg¢á¤=³·«™åþzKþÍV·RYÙƒtö ^–µÆa/èÔ×AN¤8¢î‘RÂÉëyŸÜHŽÏåCÐtÃci6ˆô$ú>Ó¹¿lÍGc2¨ÕK“™µ ½ŸTÜh'üM!%ІÁZmÉ!èF‹³ca#c/$§zP03ºâUzB“7 VbÉV6 v–¼â·Îœ„­âEó£þ"J©8qAfiíÅÂ1ÌÎúÈŒk#¯Þ¤+Œ÷=­Ê¦ ÁëxX)VÉ\$U\3:îQ8ãFÚ9z¯¬[ >4Þž¼]êÑ7N }͆bÛ×ýÍÿ‡ïØÃÖ€vƒwù“nìåf›†‰ßiî×Ó ªÈrÙw½éI'˜½Gñ==:¥ð<åëf±¤’lñȹ1çuüM*-êï¬n·J‡Ô—ôñ+껵º›!éœ7’@®7Ž:—[kx|†ý&:!v†ôω ¨Åÿ’L ^lù‰Ø­±Óß>O„ãÖjÏ&hÛeVÙ¢Ú ¨rž1Ñ 1H€À¡Í0j Ž: »U¾âN:òÓÅ™íßåð…÷[¡ÓÅ«Qµ$:þ±X?©‰ô³PH|‹ÔöMà>·ÊA1Eíž-^Õ®d·<”ÖܲÉU¼hM'kQšn™¶$ºúyš‹ãã®)¥— \½¦®pËÓüIƒ =™*zHa—@<˜Þ«¢¾èÂ|ëßÀ’–¾X`Æš–õ¿—à+pÊMË_NDÑE{«­Ì„Dp+Å>׆`æ…žì—êÈN²ëøp'5ãHÍðŠg„ÖîÑJ=1/·¿òš°ÄÇ""1¾`O¼²©*F&bÂh96³öp¶,mËÀ<Î7J7ÒÙà@Î ˜ø»½%ÝÓQg7ž’û;qW(­åž#»±Ÿ¤Ê~À¶º~L|¸§ï¤Ë|áá ,ÍÀãN4I êè×t‘ ü|§Ÿ[ù˜ ìÉ_¶èY‚a&É7A­Åÿ†>úUØÉ€üptB•%SA'É’7e/«¼úË’T§hO%]EÅA oíeƒö¶þFm!ŠÉ°ŸÆ˜ÉO~Ûkóäj P´WPÓ‡y´`ìàeQD·%Qe÷^ún3VÕG©gÚÕ…äµ±gQ’1˜o\`ÅʬêÕ¦l+faÐ"ÿö´°õÓ¤ÆLªq3NXÄ™ú²>pÑsÁÕL=µý¬Ê<¯hìWî5ÂÆá¦Ý4:>KWÛÊ`tâ;‘UÜìãL„’àF’Q¬REM×¥ìÏW•¯å–Ÿ.'òjÔ{ž“o“A{êÅÂù ã’;]8< Ÿ? õä]Þ«GµÃ„D [(¿"šÎuqü'¿Û¿."¼X:,\…G¦Q+j°Ò&Ö›<¼÷vhO¥¢ 6€G:gáQåé %ÀGnBIë}šh˜v°òH°¶^󻆘0ôŸ…ê£L!«]Û\Ï$í #È·%5Š5ÀÚ‹Õ²ñi{“üL´fT~ø>éR‡œªƒ¡Ö½Ö# 8Ô?†/‰Ø  ´ø@©¥‚ì¿—3s­ó`Û9ãc[Ϭ}ºY®HïÙÂÙTÀªQ ƒwæ”4V xÞS{ì 6íºY5P›N8ÔÙðØkаºV™Ð¤§‚·þ1ú™ÑÒA¹€õÔ]#˪@¾JšLØÌWºÍ)#Uu¹âuú,ÁWЇ°ÔÛã%Œ•pè!õìØÍ¿7í:6ŠSq‡­LìŸúÎ2 »)·Þå{ÕÊœWßJïìe)þr ‹øüÛ[ jè^h0寘XÔ,Î<ÎÝDd¿¼Ugù¥¥P¥8Öˆ7yJŒüXÐ;Aû!±Îö 9]Ua‘¡Ÿ@›^{~ˆº¦ovê¤{ T¼«g¯—ÝϦ»­Ùòè¸rú0ÁëðPI‘8š¢3·w8¨3ã&m + ]Or›^qáµÖ…’kŽ€! º:zhërkT5õ„SÚäÇÌè3ä^MKeZ"Цš~3â­pâë{¿ Cés¶jÚ•flº3V—׸õ2[ÇJ øðJuÚ­Jû¼a`ºü€é” —ï€é‰(¥üGAÈ`#a¤/Xü›¹'ÿ²Î5̧VØwµL0! ž]ƒ¯Gtp§B`©[«”’Ä}<¡ä ‚šqó?d—˜¯/ÉD¯ÖôÞOûî.ÊÆÌsè3bä<¤LÉ|© ®ʊ1än¿Ä ƒ”ØK]üIȳºöBÉmä[C=“èÛÞ„ÁZnz°¸ƒ‚ ¿¡|.ÎPËyð !”; nE?8l­ÏUKQ­ždKÌö|h¶~¯´Mf_”ãºlñåƒTFÀó[þ»0±Uìбùµšª—¾ðÃØþ!ÉisÒ$"AicÛ¡I÷¬HÜeJcÓYÙ¼'!®9NZ¶n¬ÑnórîsÊo³ü5 ÿ0$÷Ä»_ Ë s™/ÕÜuêàŽ!kÂ\õ.ØU¶Â÷{ßÏp±¯-l¿š‹æ©Fn؈λüM1ˆ·­ŒÓP'йn8úçÑ×Tx†6§:¿Y1”ã=ùTR¾|í‘Χ BºK™¥öçj§FÂÄ$9ì‚YB*ÖmfÍbη|÷L^ƒYÁx!©kæÒ.û”"sÏĺ¬KRñ+±«µ»àÛÅÈüZ‹Ë“^'v@w>èK*0’™=-ÞQþö ÓÁëÕgŠ» ï'f­Á7ı¢enů*îl•&ÊP ýpyi1‹î,ö?Ø9î4ŸI³ßý^6A•ÜÊ$­P;/G<¾@åéqÌÒz飘ü˜~‰•@sâÔe]õýq ¨~Õx¬†õ4(J±V±ªbùØç+·ÒÃ2Ý„4vq¡S3¥46?yt¯O*Ô¿–GGøF†I¾¡wk¶î€äô¿›Bò”5œ³BH¹ðóøPò¶VäØóúm„Ô“<œôŽèk‰|©\ã%䆖S†0†/d—kµ`¨J²›]㩞6Ä?W »¶Lš:~Û½ØÀ z˜·-¾ ­LØ¥«UîW‡¼åÛŸ¦xiô,dÅXV޲ë±äZ7ŽMô¹r.¿SIVýÿ=ü|‘u?'hÌ*ókD³ô÷WMÏ/©ö_µß}Y sžTI3ÛQä'Ùåf.üÖ†k‹#ಀWoƒ›&ØŸ‡k JË8E#t¦ŽÝ{²@æçÙ„â:ópgÚ #ylÝfP8ŒF9ϯü0Þƒó]bô&܈7ôP– :+9‚ÔcAŸèmzl\ý°Ø±ÌÔ,J/²Ÿ­BW¿‹SŸ²}€  &Aº=,_.få¦% ä p“Ž8ª¡î+ u@fMT8|/§ .Y¼Rð[‹³b´Ò¼ûb~hÿ íMóÎ =»TʆyѪ“ÈÚר† ƒ%_׬ʴ|ʲRÓÏjšœ=Íx8?ÁŠß´Ã\þ,˜jl®Ùk¹¢;0Ë"]«UVà…yì‚çá"ànð¼µ:¨ c®¸ ‘Xç§à(ȘUAùð7:sýTÃ.ƒï¸oŠíBKí¡ z;î/ë¾ô•{_1N3R§Œ|¤ß™]ìÏêÒÁN²xº{—‡F?Ñc'ÀÛ3Ê‘)³âí¹½ZÈŠÌÚSRÁãdÈï_v,ƒÔøtHöv(ÿ¢cM²«JC™‚Kç°>Mº¬wRšÖÙÿ$аßI/ü†>ţ߶€UWø£8Òt AI¡büN"*ÆÏL†ˆ\ ·‘4wº•ÅêŽÑ¦oÉš"¦£Ixe9,AöÌ?ˆÎ´$ߟí›8wEZ£ö<µôY3g|KkMG«Ê‘Ñßñ¸Õ¥3¬L”£D=ÔóXRYS1WßbQÍàŠ€‘t¼.Q··&ÄM¾Š‡ i½¦:"lê8Õ¸3®lÂTئìGÉNÐÊü%Ìá[%?`q›]»NÇj! ÅÉÒ&Î9Þ‘í:±y“’‡Hèdq+Þšq̓Ïê¥ð›d£U0üM85cÄâ3,áþÕ_`<1ïéŒð[Éjût;…4V‰ÅòˆHWØ‚ÎXæÜ+›îÛäJâ¹iNóV;\ïQ<ž • ìæÚm˜Q=¿"‘2ð2¦ÛoZŠMO’,ÃzÂß‘nƒãdAD“6Ò'ßèo”IiÿÞI›†< Àþ;د)sM—üp'@±7OÃI‹tJz¿œ—· ¼~jòÇÕ¶¯hRç'yuÜN*Ò¼!H£š×&®ÌEÿ¢»¦˜Wdî±)ÐïìÐIgí è ÄMP}^Oüï6Óä&j·ÊeÅ!{óŠFüØ)wšGÄâA<^s]±F©l“¯ù™x†¿îÁìí…Á<&‰Ä$ÔG@/æUêÚêu[‹-e’£Ä'_!bôVÆÅ޲0ÀÌo[k•ã™ÒDD”#ÒV ‚œ‚‰»ã¾ÁÉZ©§¶øb›‘Òñ‘›5—ªTÀ!ÛŒ(e25”ì¶þþh…2‹ò´ zŒdŽbå 4áüJ]ÆYÅ4˜ôÿ  fü ͹´a·¾ø˜æÌQŠŽþwô©¬î@¾6¿Ýh8ã‘yzö·˜Î“~þã6¨0ä7iè:³i÷í:uÇÙÏs'ÈhTm)ÁŒ.J£î'‰áUн ÓQ?ˆMþÁ×YÂŒSË“;ùïèÙtAVuö ä à9—ÃåÔHe íÍŸ/†î[]ú/‡©-¾Ì@Qý;Dù¬¥¬€ªÿϸR¹îK)ͦ7?²Ü|/@êñ­8sܵ"«°odÌïÂJò³ó,L«PÏFu”–PËüï7&ogó?¥èæ3^Ýh‰„Fr›@+Jdr:(t:<æ+–_ª@Ÿ„Ä£óÞRo¥þÕ\ ížå¤²x5ŽV09–|uêPxÐgfa3Dx£y•fh¼š jçúMäAë64!˜AÜ{QZ×rŸ¿õ@æõu&¹`R8m9=Q%\.i)æzFÖu åÇgxE=ï7M|¿IMÄ;½Ÿò¸ù/èdÖÕF0½^­ÅG€C‚qªá€Cï04i‚NñkI6¥!3#{”hc¹/+:[¹7²ÛÉô€}!½ÕDsü|›1;WÑÎ*~¼{AÒô×sÄ!Ëc?mƒSâ`ÌËéC¬±U…AX¯.Û ¢xéAÞVc‰ËÞà—[ -ÙK‚ùg<‹‡bO¼ÑÒ ©(2 V¸ Ê© ²Eáª\úž88dÒÝíÊfPðçgy‡y¾ÖêZé¹Sªï_ÂTÍþ˺ÐT#Ñ ¾Ké5ý‹^bȈôÌݧä:f  jnaý¿‹YØÜÔÚþP[j#iþÓûÓUnà‰Œˆ¨Šƒüå@¹Añð¿ztñs5‘ãóNXöÊU]“k±`ÑÖt#¼iä69Æ<^È•7ÝX‰Ömdw°Nh©Ú¢pkŠ«ë´­cjÜ&¡`vº(@¿_Xk¨,šPûñ}ü¥ôËò«ä¤nŠ6ú2ÄR¹„«„€¦çZI“t$)îN»ÖE`6çMX°ÜezñÂTQµ7Å >¹°¾­*)[¢áí7órHÅ[¼Äç{{Á'aºvÛe8±–ØB "CÆÛ´ÒVλT?Iý*¸çÁ. ˆéû&'\þ€Å—«c†‘I„.¨uùšâò³í—äèAwhy¶§-s“³»Á‰ìg).—>Ò^¯üM`ÖNÆ7yJ´ü(䆳o]j)–AÓ4« z|Rl9é|Wµô·¢:Bå’ÅvÇfª·ü¹¨¢Ï=‡ü"°¿°š³‡šjl°I’OñMè9i0ÉÕQFV†"ÂyòƱ­pò?½B€…øúœWÁÐ[ÇBdé"ùv[,)Js*V/T2t6ùÇDä‰`²µ¦”Ká›´í6œzéøAÞ-‚α͵i^nÙšâãiÀ¬^ÏŽÒ¶ÓõçuNEÞ1µ¼¨´Ýq…ù4®HÀy)Øbü1Í9ö*P(¡Oñ”.²7ŸBj´êîíN~tÆS§NÁê£âðïa’AWN%ùSw‚öh>D•5œºlßL¾·7æúã¼½É+š˜Ü•°FòîíªD­X³‚tŒÔ´ûË*⟘âìêþTÁµÔnàÔ¨VÀ&õ¯X‘ë-7Ü´û:¸è„Sǥʊg `‰ó´WˆdðJZ q,eà€*S½ÔöÖ~eïâ±ùZqï€Dò,BrŸ*j–à@•˧‰=Ð;ƒ½x^”2ï6måe¹ M_ÏŽhðX7ž˜Ûüî‚k[wt7MC…%çJÆs½àͲ¢‚õRFÏþÍó=^ž °ŸêeAïýºÚ‹™ý_¼Ó³E'ES‡ý ×?hsØ•ðQ 0<¬5¶­9ûj£‡šñ™ç8)»*;[õ$ÁÌùÉÀðd?Fíßq{·wLãɺš®å…À쯰éþ*M‰8Þbük´"0»-®TÁ…8 8hÃSL>YÌãl²ý6¢•+Ÿ-Êb{,‚èú¢Qœf7÷ûRR×W…¿¿¡R^å‚Iì ÆšE÷¯—аÿtbOggS€ G¨äb8 ßW9ÚÚâÿXÔÖÓßäãÿÍ×Ýâ×ÓØÿÕÑÒÓßÙÙÿ¶öíéíëæîëëëèöôÿ®ÚØÓÑÓÔÿ¯ÿÚØÐüMWËy½!*¬üà”º5R6/f#¤h4F¢X¨5‹(´Úµ‡Îñz3ÒàÐ?^EôÛ9n68Ëɪfõ’J8‚Å=ë¿ç¦v¨oÈÏƌʚ&8ÆgéXÚaÖ¦ÀºÙ̇&”m@ßW”KǘîLÐè;ÔZ¿ÃsK…®Â,Ü@yú´Yÿ86|œx€œ0Œ;é¦T`Tï~J{’t¢)†äïË*¦^ ÕS5í2a€~T~æjƒIoÒ°Šäúç(žÔ€$AJUuá! v _Ãî8¡zy@Õón·a“[_Ne”m}™Çˆ»&(Çå´ž5Ù ‚|˜Þ ~ÑÐ4縆Lµ¢7ñ³ íðùÝɯóPÃÏTtï,›sŸyVÛhªuó!üJ4]5ÉUTå*ëÔŸüM—èÉSYcmåp?Óú÷Ï7Aï¥B;±š¿Âjž†À둹r9K‹u„‘4…ë‚W9\äg L —¨= UáúƒŽGJµ¾Ýhlnƒtj90½Åÿ$Ð^D=uCʺBŸf-ê'œQ÷]¸µ3ü*^—£C‘#8»Ñõ¡ë){{g™“¶Q¸UÒÞ;9¨3ÚëuóÿzKÖ¯ýpÕò¿:òy#4³‡&e'Ç¥õñä·û @=‰×e4 6£8¨8ÁuF—föŠöü|’N¬è;dy¸;Ì%ÓvЃg)ÌgCëÎe’Ä~Ê} ˜TmóЃտ‹šVè®0}rTÑøÞ¯+ Yˆ“…ïJüc`‘ÃŸá™ÆºpYl]9Y†ùú {Eoþµf-­2nˆ¼ðe”X1Ì$;ÃAà´**J«ia‰y.U¶áĦÝDÎrÊ,ú{Z Êß’–NÆFx¸pHžyàÙè«ÂPí³xz00BfsÒåÝQ¾œ‹ ³ŠGgGê¸ýuõxÖÆÎ¾6£7NIsyªçw\ÑG;#`y<4éñ.@1Îíã6|ÝO}ôfù¡ª>=yÜì©ý¤ðžÅ½¹ÞmYï1°úÍ­Úé…#²´wé¥%cR,±}N¶ÔaÂÒõ³FÍʃ•x–r¢_x îs–L÷dÔ´gèîüæûnêüXÌÛvYž@±:dèÈù¡J( º>òMì²÷kH0'¤F¶X¬‹NÞ¡ÉÕ:p™£–î„9žïÿ/NæO øéK4ÂES¸%,ãü´ÒÒ§ /ª«“ï°¶S£¾}Í[³Ä+küv9SÑ6¬Ãc-1¨p›PµÿÙÇo‹LãÉB+x\)9™(ÃVišÌBÏ+w"ð¥j:Sʮ⋻Þaª‹™ë6"ÎÉXg‹,¶Þa¨øÅñZÁl>‘^ÑN”½±½.¿ÌäâÒ)›lüM-ÏÓLÛ»œ[«që—T}ß ®3ž¾³Xvúìó¦"YD«ÒÕ ØësêýDãs5MýçkÖMQYÀ:„ûf“ò~Wˆ:ȼÅ>ZýDÒ/âÜX€™½UdE„zei9Z -v{#ï\l=ô†­²äØsßv(аˆ;oóäœÉÎ=@i‰ënQrš…‚ìÆ:ƒsÒ‘+6eNB–›;®á*ñ2âÊÓœ}é[Þƒ†@‘¬ÞŸóO!Þ-Ñý+¼»DT¯ŠkeùÙ+³ß ¿‚kqíüL½Oèuç«u¡ ŸÇÿË U2]}¯TïÎאַåÓà”ë¬ægr(Õ¡GÓ¦N“سMxâå’ñ³ZÕ¼@¡Åï¨%Ôù¾C£Ìx¶¤]€@Joa´ÇŸU±¡¾h³«³ý´ý!OnsIE¿Ð“Aý,eBúY}ÌÑ— J(ì…ü#€?C>ïHï(:³"ðÏ:!„å#€ nÓvþލû2,ü!¤ÅÇ÷mº3¯·´“@­ÔÞ·ï»ñŒ8`.˜—f>œÿLáeüMqò©ÿpÖ‚U" ‘å3Òkû+ÏÍÕEõ†ÍØ'ù#}ÂØ=!ÇT†c£,Õ¤Ïc»Mûs“3Xéd]Ž×ΙG¨?~ÿ´ŒI@aØIñuÛp5rKépB¨BOûþÑ3j«t|–Õ\:øUuκv€çÇŒ½¶p.GWÐãf/œÇ>·²:_c7 ýsÞYä]õŒ­U/È…JêEós‰C€å¶ –ø6r™ïüInqÇaòã¿ eÕƒ÷Ÿ[øm,ŸH…ÅQ`PÓ…ãU&›5ËüJ6½º‰ßÒ¥1ÁÙ,¥î!VÎ+Äãg‹ÇÒ´k¹þüןðÎ?¾c¨^ž±fc:øõwŠç=JCQ+D¾bžÌéýñhü£9àJºKOÙ?#ßó„–×DŽæè0ÈÀýò{ ÷é1ó|.ʃ/É¡z‘ÂÏÅú¾ÔmÖ ¡¾œcS_n#J§…»<¤iwÏÙóOë<­Û®Ò_xÕ9ןbÛA%2PFxp@øq‡,—$ 8œÝ|Ò~dº°1ë³FŸ#15´ÛúÈÈFVhÔ qÇ¢‰qñ5b2^ uü.H,a» ¯è Û¸*rÕ[ ×î©‚ð½óÐ,ͬnZ´öòÎ9ZþìuM~CÝB.J4Kå]ÊÏ H¢lìOÑd±ÔœísŠ0ăq§¬Šg³H x…IܤÙcO«~™¼uè…{H"Ñï´E¸¿aÔl´©­' š#á\v©Î¥åZos¨LÚ!„hò£‰²¿BžÉIk ŒÛ-ð¼Òw0¿§jox]4 +€€¼¸SDÁµU­®}HœdDÎez¹ûDŸ!„Kóí’Ö©¤Oq{÷ü®‘q!CŸQÓØ6ÚìëÆ™¿¶5£Ï*´Áoß2Ë‚*Ó¾§%¹þ¨9´£Ÿ +4s‚©ó¬‰[ l½Ì¨dû2KtbWYƒÅC¿â-WYWOÌb:Xœí[§Ñ;v"³Ëä·l›ûµð¾‡ŽÓy$‘i¦ƒ¢ñêô“Zv?0§£B$*#.2åÖo"iu#P;ß9‚R#Œ¢÷çEVödS߃ŒádzÜÄ­™ñuûw`u=,?[T{Ì Ñçg¤¼Þ ]ó©+ïnê瓘í^%%MFÂIÊT‚D{‹ÕðôÜ ŽE(_H8ØGÞ-çÍÝ[ßs¼½}#Ñ”FP`Ô¨‹ÓÁY¿ujp¿Též\õÛj˜|ln[€ÎT2Ò™©ƒ[Ù‹Ð;¶ \ïE$éXËŠùéÐÜù8o¯†þà ÿÊ4ºæ$Á¯Oi¾½éU•RÀLÕu¯ZãýíÖdE .U ^ÄŸ Œ †‹æ™YÌZKùáòŠG@#.šÓO*tOkÚo9EÅS¸5Ëí.üKó‹»pŠû¥gA· w…’8Ö6<è 4Æá—9sŽæ¬(Bü†m"Æý” ‹”^~¯r8­J§5Ø”DmHÀ§«Š0näØ:õ<îÙy>• >!¿5.ßó¼ÈmÎU›^Äîã‹ÄÛÛ’ÿt=Ð0´Ê9œŒ²N#ŠU5¶h·Ã|‰;ñÃBÆîñ˪²“{lã%i4ëµCjÁ߸-0ðLâu7—DÙθp>jÚ¾"QúÅ@îZ„‰Wv¹OÜ»aŒ2y]®÷J#kÖê´càmYO…±ÏrÉ+Ö&ÿ~öŒ'žSÕÚ+üsP±üX‘T_òÎQ©n½ÖïµÅ«`‡›çFäöüDUZØ…VG…¢;ÚQ¸'œN½Ÿ?i:jI¥‹‹"Ø¢žR£ÂåpÈO8÷€pEj™¦å®õ^–,ÌP=n>rŲà›áó5nµšþvã@ÿ~4Q@Y_äl&Š1´jÖ½ëÈìø¾ìÍA«_-¶ìò% Aª_›²´xzý¤O-J¡ý2Q{Eó' ~è:µ Û‡¸|º›­l‰}S¥M“¸¦:õ!s~ FÛ èçn „ÔL¨ÓÅæ?³4FdÌüMw• Pùz>;Y£:på$éç›â¥rdˆ/ó`­„ßÃ>oüµA†´å»+Òí(~4)RÊø€Žòò97½ø'ÚŒÿ;Ÿuh‡û<Ûä—E™—þUåNf`6‚;òÞü9¸Ÿ,q»±“ßÏÞ ï"ü5ËfçéZR5yÐë)pOã!IÔ|!Ÿôðúü%9—Zk•„L—³¦ä§†Z®¼ ‡{Ñh‡™g»­°/n7 _p$0Õ¢â *+¶v(…tmóÞé\ÜÃ:¼9qÌð»k¤‚W6ü± s¦’áxë¦ü&Jöÿæ(Q7Q9µ ÐK§#Óä´åSŒ•’I>Ø.?Eù±lØçÎHÃì\ÃMûoŸõ. §ÙáM}ªœy:ï9™Q"¢MñX‡“4R”•]…ü¼JŸ¥UJd"ˆåŠÞµ˜‘H~»ð9¬tÔ4 w£P 2nðLÃtôÜ?ïÛB¨s û,ÕýrÜ)ØÐ!©øiX"«:÷BÚÿPÞÞtr.§î‘‰~ä54«ËïçæEB žÂ§W¸)˜¡ý÷«ØÄ`¿˜‰ëZñõ|/#¡ÿÀV}å2Ü®‡§ß¢Ûè4Aœ·—páŒA» ªœäªf#¶¢Ù>‡©Fe½ t‰2Ä‚i1Õíò.VS†\t SíêæE÷ê¬8£UôÁΰ¡ˆ†–š¼–7Ö9ëýä/I a;ɱݛ£íbª›UP/ÝÛº|:©#᜶r®¢òZ¸¡£þO¿yÛeõÍô¨SEC¿-ÂJȻøÎï }tA†z[§7Y™¹ý–Á8:ÙS·ßo—ru!Ná“ ‚—ü7[=ö­»E–}BÆob@_BwÓe/ðSg¢T’!yó¶«ØÌ™°a‹Y6‰ÑëÖdï½ù«Âš¹@ð6$`Ò”oZÇܘ¿2?|Ù-èÏ‚?Ï¢ùØM{ºùÜ6çfÒ´²Ñ·ƒƒö†%Jcøn+:~wKxUoŽ,I@úýîš5~÷HCÓkd5oÂ<¬årw*c{]µ'¶€tL=žšÉßþ#ª «á‡…d¦³ÍƳ4¥a«è£žü1€ÊpM{xê}¯ÅìE9Z?Û¥œû{1Ü•Pâ7õ@=Þ9މŠ,µØFôñ-crnošr×"ós|ky Òm®òÒ½aà…°ñÏBüj?ªkõB§ÉµMÓ’ÝËR}3ßkW:=Ù{… £¨mzÎewªÓmödX'y¨ã éŽuo¨ÜU&× NKä‰VöÕ¦[[uó×MÏú—ê ±&Ÿ 8‹Õºwã; -okŒ ‚Þ1@ &òzÝà=PÚ^Q˜Š@Ê>j–üIrâu Cqï] ÊÝ{QÔ[*ß‚‹cÔb[zôN§­Ü™Nþfv¾.nƒÿäOxwwÿû*‡KKJ€e‚i¬h©™4 ÊöãŠEWÌCܘÌ8Ì)}–u½ë Ð&’rI–D+a‘i$ …ü2 ™š^ëóR‰–hàßå’} Y~/ßB‡ŸdÞ˜ ãÌÝ…yî#0nRìl”Eý/Im 5aÍ­h,&íä ç7è`‘³e÷“I>U²×óµóïß×À—˜û¸Ùç bü.3‡•ž>Õ(žIȘ“Fõ¸3ÏáqÃ…SVü¯ãÇÚ¢c!M(.NvOçÛõKJÞc^#¹ë§í.@Z2‰mÂàOÙæ–ïc³:,$¥ÌpáhAA+:úšEul\Éóa2DfŠ&Àñf#öƒ5³NŒ°‹'üðàÓÒJFwkfÓ¹±e2œà$ÈûÚŒòÑ%G]‚ù© = ¢Èºóyþ¯•b°ïo¢è€À}æ€êuôMÕï3C®¿ÀÐDdФí7üJ–\XÎ\÷ÐP¸v&(Äi)È€@ñdLÞ<¦Ü˜™Â¦Íõ˜ë˜)"”¥·ç–ÜuçK:þë”>óZž)ÐP{Xˆ–Ü‹¾Á™|ÄÓ–˜x§Ûbâ3–.|Ò\«¢JS£«§ÈÄ—!}àj~¾Jù>Ÿû+BÈkë S{v{¾òIôf!h\ÿWKbr”]GO“¹DŒ ƈpwÇî%…ÐOY½88”US49B¼•±Pꣀ-=ôyð"ÔÛ°¿N„ô]òöH:ñ޳hs7‡70¥¸1|üñ>¯ ̆#,¥s)=ÜëMšÆQÒ¥¶)ýD´,”,ÞºS¥ÙSC0+ž ŠCNÜ:¾í” K trpúÌ(œMÆc:µºo\¤c`h é«Ë˜3ïdî78oÇ­4r!=™¦2 ŽîÄï-™¢å±Y¯VÓù›Z1¶ÇZÍìtì]Dj¦^´—6–w}I{l?H—B^–9i?‰J˜Ë¿jÚ7Eìpÿ«àMg¡gÃaÈ(!£ŠÞÊãèZà9=Ðç0×ið£ÛÕˆ³™»ÊY4ÞÑPK 1y[;vÍû/gìY•œ#*h.2tñ[Ó¢㪉ÃíØíIÐUά}üNC­Gb€‡>íùì øç'aÏE ÑSÇÛ÷‘9U¸Ëx¿.pøRtµ†ä›…5Eϼ³ÀÿF×W½Sc%Õx&CƒPùM»šCGl‚áÀYÁ°âðÅ Å¡ÉíuzžªØ7_ˆ¾À9;u-üp8iþ2q߸à Gz[–¨‹Û+ò:›ß<ÃÓð\þ°géÍv=´3Ú®ú2Û€³Ý¯“qÑVÑ·—.ðMÖML[m·ÝQ¡¦|Œîìc<,á×ÿøXì=$úÚxaAä%¸H4Þk9ŒW#úSKŽF;¢òæÓZ§½Tð‹üL©à–ª‚ðæ®dgT!fÒÖ/lz Tq=Ä‹mlÜÔïÅþôØÇMØú&³}N6úRa ^¯±]Ûµ­&wE'}—@Î/ž˜>ˆ.:í£¦Þpò+ÜöÜPqGqyFìí3èQŠXTÙ†¯{$õŽ ´óê¯þæP¤å®XN–æ Zy唾&Û’ÓØ1†çFºaæ?²„”r0¿aÜwïÐê3I4s$`ç^Ä6/7å[1œm?o/Í,R3óšíiï<šÔüîŸüÛ¸òñ Ìhå2cr‘ýÑÅÚOR?XðóÙÙ$)ŸnS ¥v)Q§"9¶j&˜Y¤ñÞ/‡xòUY‘ú2[ê0rfÇŸó@š eb0VŽ÷8ÆsE¼:dsE_#€ÓIAÌ’ïÚóPìq1b0p'ëý)¯ñ©›®îÚçLn½»æO*4š]m¥H4æÐ€ ÜÐu‘ oá1¶*ðrÒ¦/Ó„ETηF;y³º÷[Q¼?áäkÜ[üêåàºö’ÂÕõæŒ2ý`£ë7 xXeAQÅCl ’>…ÇéVüK½%ÙAI ãJÂ?­ ô‚y“AËA}>ìjÛªÜÄp~Åhòs Çþ Ì0"lZ>ÇíM‚ºW+B_Â@¡ïcíª¼ÂÎpP[@¨I%-µåÀÖœ€´3€–,Äq?ž_(1ÓkHÁaÑK¸rÚ›“èšER«íÇ'Kbîw®+¡§¨½½—B£h8@áè+Ukôz|¡—ädôÜ vâØq¯¯L݆¹Áu·ï ¤KËG@ø=;s?u½aLx‡«/(çoñ×-"./%Ù¯¸§·8õ:w8ØêQÀôx­kêƒÉa={­Šþü1û%cƒANä4V“±·ùsÀ4Ä®c8P¾N`“bžLéLñ`[â ^­P¿›È:^ÞÍ®u•Íj û'x+^eŠ[Î4wôÜ&vV îjÓ©»JHEhúw¢^Ãq ûþÖã… §—Û‡.!ñêùæÿn¨Í-9 qôÿ¦ Œà‹OÈ‚ ŒNNëƒÐŽF,`ë|!_I”HÝ!ôÙÝî9&³9í™/ Öª0àÿÁ*SA‡Ôˆ—XŒ¼¨&TP6¢e‹܃r™ó˜ýõB#ã7‹/úÔ£ûøu+a[ŽøBùsüÆmn‹O•2º‘!ZÌþÆþ¤æm<±†«M’+Û2{s“ë®c†¶tb´ÏcW¢È Wög@qÁİ¥¥»ºËÒ°ëoåGA_#Yˆõ»ý#Rº/gA~ÏfgçiHþa[°º‘g­œ/µæ6šž)Ä^èc dµ|Ï 6FÙÉHGÜMmÂÏÐiÃÛoñBD¯QîÀ ‚!º û¹ßq#öÑÕ´ÌÌ·¼ÀçÅ.‘Þ¡Ê—ÇŒØê± 8I1PUÀ 9&ŒXýìÀÂeéJ¶f53é䳊q¡¸÷m,‰¬Ðài¢.Q õüL¨‹½{‹Áx$/¬Å)£-†€?ƒ›ñ æh›«‚uþ[Æk„¦…©LÕ¾JI?õ…ß]·‹j*·°;äƒÄˆ-ƒÙH´«Ÿ+<çÍsð¤wè÷6r¤à–s ><1¾TD5Ê=å~3ÜQËØpÒ˜‹á¦H•ö †äÜË`åf¯ÒÌÏ…¯àÈD¿\p!m( øô–˜d$lÿµº¯gŽÇW÷F‘Ûð/<¯® Î×µ ²f·¥æL°ž¿!8lñ OVT¯%—ÎC«aüé¾Ê5¦™Ré?·ÙZõÈ̸ÿä¬ÝUüM&ÙD¯õ Þ"Òv vPKâ‰HC¹Òí b´ÇTÉI˜¾Ò cΊTݶ U‚¥Ê…Дѥ>y<ãÖR)4Ñ™r Ñ*‚ÒÅ÷ñÌŽh½76Ì&ÄXK™@$Q`c)Nè"}ð™0Q;½öÂ;ìÀLþi¾´†âzê™ò÷ËÙ )²"5}õËåÅê3 ë"‘ö²¥M0fü“ ù»º[ýóá•NšŠ€Á¢â0=µµ0§ ŲFÄGWJiìFYÞN[®Ó);$Æþ;9›_®nþrX»Â»eï?¨d¤—·—‚©‰ˆj£ÑžM=QüIqe6,ËÐɆ^7<ÌŸþ@{¡@ jVìBÝD+J•—*$%4¸šDS륎ԡ$™Ë¹×Y}'IÇÃnMu5i$/¹YM ‰:¿·\’ˆ‰¯Í¡yº©ËLÖÝëtî˜\k™Þ†°I;ÑíoÈ$$!4<íí @;L#-p]ÞŽM®¸¢^RÉÂTlnâ‚fÒ£@ Ïì–V™[Zz›1r á oQçXÅó} }« fÉ]×8LJ2M{J]H¼ÍFÆ£/dð›§–GJ©e¤Ö[“|÷–@Ü7×ì "üIŒÓî>®»õÊÂw¤ N&°'üðÐØ»ŠÍío¦BäDó¢òŸ¶`ìl¤†Tÿ£–ùE0N¿Wé1“—Pˆ5áx™%×·•ι0C£jzý¡(ŽCÀlÏÏëáïôˆû©ý à5…Ì:Iy³ßÅÉF˜}ý}ÜRæqu¡ùÏòøxËxûNHƺýöú .𯲅m]¬Ñ‰§yŠCR•\3»ò]ÏÜeNÊø¾ÛS5¬¢+•Äv+LÁrþd{=âHžü‚lã‚ÎùR$á¿$N¶±þ3püJC´0ãr‹š§\M B‰ì|Ñq 5K‹²:ÙW·  'wàÿ%D&”ç”D[%»ÜHËñÒÖCœ˜ç ·¯©ã+^øté*@7@ÉÅÖ  M`¤ü»PÏ—åäxMŽ@u8A"qlÎËë²ÎÈž* WÆt³Ûl´BÚ¬™&À\¿65—3–M’9úåQÝ@T©ntÊ3Åq#ÉD‰%òÿÂ`Z¬UñÏ“% nÕꩱ/øäËC¸Ðø"dYv¤–—½œý ߥ©Bý6}¢) >\#[žÝ¿ÿ’ó3.’/I•Är%‘÷9Ün°* züî–Üè^Q š´–ù,²®èËcŸe*˜ P„ÓY¤*¥ÜMEŠxê­Ô)%ŸI’SWMOÆJƒ?~ÑÌ6îÂ|än"öêÿúš6\ÃÌÊRðM0í|‚/ó ›Êù€¨MäªáU<•`T ÿ€d*߈öC»)7²sPL‡þòœ\ ãFŒõ‰ÄVÞ“qøb˜‰ÆßT󵊫Û©JfËYþ·Ôíš§pŸ“×°ñÀÁSíW=ƒÂ>@߀ é‘7óß4byÝv  hyã+ݱ¤®€I,©½VÚÏw öÊü|®K|hLÒŒ]ðZFÒ´&€i;»A$§i×Ù°A/+Ìjd KM •p*"*¨\ ó_~Ðm%—´×ÒгºTþk±ÿæwxbÃjcëÎs?Jbmn#9/>œJâºßp³O¯VfäGÍ~—ÞìÃ’UÂ:z¤òþÍ´äz@ñÃ!‡ó!äÐJ-7²z>¾$ö¿w18sý‚:ÌPb\›Љk¡ …fu£Æ›;³ñúb´/0®Û³œ›Ï›Ê}e¹, Â&¹ì©vg¸Å²è[Á™rz GwBÆ;<Ã!ÿ–{¼È×$îp ú2±KðFõ5Jq:Jãlâ“pRú‡"Ú;p½×ð¢ÚöªKºvìîÁ(ÂpûÏex¸îÃí‹‘ÚíQV\„Q¸ÁôzÐx$ýXRŸà踌2ÅÏ”+ã­ìEá-m7ÜQ‘Ç¡Ã%xû,ŒÌ¡”™qHøø ©Ï‡%Ùãy!+Àݼ€,oãsUK±¿LëýÁû˜5x™TÞ²SäiÌ“4D'bÛ±§Ó%_Óù«üò6Ðt;Ü ™ËÔþüJUÔ&‰ÎÐ)̈›<‹+ þa@‰ëÅ:<*4\'ú¹>ˆ±ÔSøçx"}ߨ Z¿$žÙa™å{kXŠI&矮¦"­t}нXÕ—á ä¨yÛÛ3{"ï¥IþÞ!²A¾ðA®Yø–)GGâEÚT’üko.Ü&ÈOµàtã²®¦2YÕí,šséíi­aóHÚ„ž?Õ¾uúÄ7)Ÿ ÈŠ)ãÅZqTZÎRÍEò±µ4~©MgÖ˜]GÞˆmŸÂO!k׸Ý$Iåš  |â™øq¡ëiüIqÊßQÑD¶ºóçHÁfEuŸ·¼sž¨ºE”¦Eïd v ;zä˜EI..vÕ‹bX̰šóø³£ð/$þ–ôë2‡,-FMŠÝÐÐc®{É»FHe\ WÉ-nŒ 6…Þ>ŠñDÄ9HÈm·§øQ+»=ÙžÎ6TýØýdº}ÈôËåJGX$ø[Õedׯ_q ?Œ”vx~] 3}±fP+–›Yº^ãÓsÕdëhU°P5ÂEÑqòŠ˜×kÐSߢLåvC¿ò-‰D‹ NíüL¹¿/ÛŸÄðk%ÔºG9ZAˆ8U,@Y哈XXZøÚ‚oD„6t¿7…˜Dðñ|¯z½“IË5IÇéñpúî”#*ÛÇc˜‰/æE#2Š]~©rÆãð '<"H²µl‹/èˆ}¦ÄÕ&åQI¡2JeïByT9=+xΣîЉèÑ Ïvú­S»t$óDÝÏ÷2ïTá›átGÛÞõe 5 tnÙë¹S - z'ïh6×Ý…üp·B j …݃¨È°€?¾Ò 9\üIò–ê•$ÀÁÂ¥,ºú&0ÖÃõÁºGŠéªúH}òòoŸäÞEƒ§ .¸ç»ópRÙE}ˆ¬æ;D_—ð“Ä]­ANè!’ñÃ÷Q´ æ¼V+6ÝU­¥¤Z+P¥_˜ôŽ/wU|JÀj±¦µYç‰Ãºª<_WÃJñUÆ l·bÕ’“F>PoLÍœJkK»h]ˆÛ ‡}ñ>X”ùÞÃè9<ägRà ׌¥…NëÒ ÖÅá°8˜_9-9a*Š2Œß¨Tϱ—„ÿ^ž9üL¸–í™]dIŠ2Ä |–|f§^õ`µa–mg ˜îöêŒøî¡LÅ*4³+(ûí<ÞªÑÀ}åNÒƒf†ëY‡•ˆ/ Þ}Ñ (îÎp' !Þ)ÔÖEÔ@Ã(°ü<~O’Ãì¿â¹ËbŽ‹ ùйút¸VÇŒÁ-SUðghõvo[³;¥½*€èÂgƒîz«<]E÷î™îçs²ø¨ufM€><YÎÊzðþýUHNþ0í6I\Ò-·RuN#?"üL¸ÍY±3€VâÂúȧ‘àÇ܆ä`ƒx›<ûïÅvå¢|z¶Pí5@U¿%%<’’‹®²ÂOQ¯ñ¨«â[ÐÍ&=×ÛR¤áðàÀqò¨ÒŠÏõæ ®”}³:‰”~ð⽜hè†H  ›JP‹sùw©?¥'Ô ·¸}ôƒúðXA@œI,*CÎÉ|Á { ^ úDâ=è‚G4›åt7ÏøüËÄ3ºà>y÷›MÁÍ ?¦=ÉKBÐu‹ÍWL8öð)?œU`Ñü|®âùÙ*e>*œ¤c$Í ~{ÂkC†O:!}·ƒªŠ(º}D<„Ù{æxEp.Rµ ‰›\^ŸÜ‚|•XÀ°Øß°uÓ­)TC߇^•]÷5³dÄÑ3 ¡vÿ„ˆ‡Pk2}Çc&{㮆Ø×­áA]z„¹1n$?Òÿ{’ÕaØòÉè‰-ýÄž¤JgK~#1'ã•‹¦µ³,cëÄu/šÑÃe?Ó„"~Õu•’‡êšé‰Ó Ü–eTBæÿ÷"¼ÛR9¡¾¢¶åJŽ1 4É9¿!+Ë潨pï€ÎŠ×üä–;5Çc‹ŸŽ%îp8å+bùäÁYÙ ¶!UÚ—C•ÄKÉ SŠ,ðßeÑ$ŸiéØ·Ò»Š\1ʆö>ä@dZµ7ÕÒ‚Ö[>mû€µxïu0)ˆ3 ‘CBãKöåÿ7Šû'AÅ'kÒ3GØŠÎT•†Šœ©òó"«’?ƒIÈ`Fí¹GNIŒ æ\ÂØ’N5IX/ vÌ´;qÊûK z'§#áý(²ø»\ù|"˜<;qp('5Ã'°ü!N„ÃÙ×¢cª†ÿëxü2Ĺ\<ù|鎫{zÖg½T’%c½Ö˜ÉŠË‘³üMy½í=»Î¼ý{±–€žd½_si"ISÇ/ÒXB0kÊÜçÀ8E&¸Ù‡MV‹ËÔ“ÎW;.ÌÐÐ/´/)Q²ÆË°\Ü8<$þ°‰Hö,èÉóZ&¯L†pèLmpݻ԰P"†‹p8Ý+ûVÂ6ó‹„V]}7‘NÈ^ ývo¨å.Ï2íƒ<)¯¿~O "`¹>¾üL©=7Þƒiè‡m›ÉD¬²:_`Ä3?ß6&÷¡ÎàZ é9¤û%}KL„¬…€˜%ÜGϬZýO˜»Û˜­Ìôª"o—pJ$ý™‹ƒ$Ù†‚`ƒpÅ{ÙYÙË—$ žØ‰YàSOJ3Ι±PÓŠŸ°¶rÜìCU¯òâ¾¼¢¾æ54ý•²¿t?(…Ëêö"‡r#é.Á€“Bkßí%pT¢?kk«ZŒ‚PìK¶ÚÜŒl‹œ¬Ä‡@ʽÁz#koÚÑ”ª>ï®øÝOggSÇG¨äc»`>>ÐÎÿ=ßÝïìüÿþ÷úÿÿþõÿ¸êñþþúÿÿ®ð÷øüÿþÿÃÿOÖÕàÝÞèàááØßëÿÜßãüùÿüIùÒL˃h;5Çôçq×(Œ‘­œÀ{ [ħÌHhº¨Iõw^”êÁ­-)©ùÈŠt$#çaábWRù«äcnçiƒOË@ SX4™¢ðk {Ø ÚVóœ4ñÉ›·"d‚\ðCX[U‹±û}Ú 8íñ9¤ j¨æÛÉËÿ{êýiãZÔÙ"+ÒÜ"Z¨Dü€4›Y#×$LŠmq?Ø™ˆU²’žüþ9YRd"ó¿Ö­Ìè/NÓf·7xAuÖZÍxj=óüLÚÍÊ>]ñ0nÇùNƒÖ¹Ëâ¶œ0ŸÑ˜Ù2±¥Ì>G wfUUP é€3Ôûÿ‘Š–U…B*þ®BhÞ.ÙäÞßÓì– `äàŠ*±>À Zÿ¼þÓê8äÒÓ?ø/¸¸áÂ1rEHñJB´„$á5ÛçÞ"ãÇã‰pœh«`±%ó í¢œµHŸTåúü­w{ûÁ5}-0ånª”2?MÝæu’¹oéŽøìÀ}Å´ÔŽ=S ïW/3ÆKUbtÉÍ:w¢ü|§ÃÕ`“ëÌ/éñ©¬OýˆKy5 ¦çñÈl³ÙýÈmº5ùÒ23¼Ù]ÝöMóý(3ôËX¾x­†l}·3½¦ƒøŒ6ÃûÜaŸsSÚLy%m¶$‹,æ#f õÀCìQg…Ǫ,œoêõ˜I€»ž˜ƒa™JæüÓ} sUI·¬pÈÛÐw'w»q€ +:ä> éß. kŽí7Šö±g 0€k‘)K)§Í¤'¥¶…þR½ëGª9x”É[u,§ø `a‹žÐw ùüTíÔóbí] £ÿè$¤nàŸ\­å,fÈsΛ¬Är.³cÆ [rWÚ£Æk òekz¹ÖÖðv7Ç ŠTî9§Ù éòÿVpC>è\1±6qi«šÐJÍlt:ƒÛ«»2üM.;>6†\øêâ—øk0GÙ¯9]ËϯIû…/Í D8†õŠbÖ®uò³ô[û¬{ä´^0pÁVÍn,ä] Ú,¹pÀg"<ˢ¼#xoK{û§‚ffŽ _Pª3¹Ñ¤$¢Ë @„BZHPcL¾G« ý¯Æ ‰ÓÐêWÚM¼P»X®_™µ*§&ºôRJZ⼦r>»! `püϧ"ÊsÛ>\B7¯¥Ð¼õáçè@‘!±‘—µìOÅãÚKöãìç~ÉŠ `Òn!ZE2kIʬüM&Öð§Ú™X”& “$­ï]G;@mÛ®ÏìÆ¥2c¿-Q¬Sâûù f:'¬[ÆiE¹ÎÐ,AûÐ^-±ÓÆžþÁ½Œ‘ŸÛ´œ¹ƒ÷ÛÒý¯2Û±t\ë!ÏΗq‡®Q‡yÎ æ—ß”í¨‘8FdQ vj_¢õ]ŒJJ<Á£µÆC´"½G²á),œ<éˆs/ák¿u¡¿¶ƒòY‘ai d1ç¸FË?u)Û2méÉ8¤bU«°R/ê)›8§9÷-«âiÔYë]2zZh üM.TT×ôÖåãýqêN~TäÌ  IÍ—¢Þ{×§£Þå—Ì G…6É[•¥øÜ½ŒíyŸ,ш4Ühvtö“¥Òêó÷@Œ?+c­~ZÏpĉn |‰{_Îýƒ0@ù¸‡[Ç+ÔÈ aú5çÊó8{_ð/­T/òj=Ž*§êl|]‚*Ÿ£¤ÓÅ\idQÎÁ¸Ôók°ªÔÉ]“º+úëMW@–,³J/¯9ET/¶fæZ®d dÇQ+“–í§Œð )~{õoöÆŒ8q“°xˆd³JENbᙷئnuü6Ó,*FuPt Bô…¶å•e”"²‚l[i)ÀŒv ( f–…‹k‘Õ‚ð ‘oÉ7÷å,”ö•)0áDO÷e¬Q^C­©Ù‘+RuÓYöÔUQ‡G¢Éò(ÀÁÙJ0˜7ÁfN³jÀ¤&´—Ã,“üPo×´ N>¹qÁìw,B!¼Ws’[ gï÷Òûü|­Ž!ô¸Tÿ@4‚ØQS¿Œ7ÏÉþ#hL`S2[¡/]KÊ®÷¸ˆA7^G"àÒžFÜ‹t±JÏ“ÀÀªÿ«#•·F­á~æ l‰ý}ƒüñ‹<ˆ†FŒ² n1]T‡ò5f-œþ›U.4¿<Ÿ6v‰EwDºn7ÿ-›˜¤,ö¿oÏ8ÜÈ,9GiS‡r($}™hçET1çÌéÞ–ðŸƒe˜å7ºuÞx=w³:æ°Ö̺Š!âWJ+'–J›(£û,⥳%Ž>têŸmé%KÀ¶ì«=È ÌÜdæ¦ÅQ!$4X`Ëv+Jðtÿ·Žä Ì ¥®¶RIJÿ¤ìíà®þŒâ/H;éÕâeÜÞC¨‚Þ/.háý5xþ{»Ì xÅÉ‚é߃qç\aË2€ï]D&OáúÕÙxy(p,ÌDb@†ˆhò± ØyãÞ)y4ÎË“nºåßÄg3®ðŽ–üJ9@°ˆŠþ“Cä„çSmþqÊ2õ‹:T«ïÒÐýÝëF‰y5±íô50¿}9L¶Zx¦kxJûWxHÜ×áùä—žšœ¤ó‚Ìi·6ƒ?ˆÐô½J.a«N—mQ&)ãž·4¬:kÍŸx¥‡·m+‡˜ m+ÏíýFzËÝ;l|í›C£[\o$ñÃ(+Ü@ffG¾Ë4ðRP9϶Â*/ æú'¹Ù«¹¼ w.ªl„ú'°Ðiú©8 Ææ=µ¬_àR–ã<‰Êó‹ÒÁ¯Óíâ±³Àål2(ï ö®ñÅxƒ%ÑÎÄžJˆ†ÃŸ¬¢‹*U1óZ¯ 2e@üMzä;Ä ¶8Šÿ&Ô>•ŸÓýkÕpìñ~…2'÷øë' æìùK›Eó$SÖg‰\P j'U$ubOÔ1>hº¦:EAc`G‹*ž½ûô±Á¹)jÅF`mwì¼íi`‹Q] C­mWxîæd_Öæ>`:L™Ãü\È`vBŠÇâ`®ÿúMsD?seƒýÁN$(-¢Ëá]_,–_6~„Ý’ºÞöS^˜mé§ã­ôü,Àsw€èe;›™FèJÿ3 ¨ ˜Å>;ÕGÁøm» Ȥ‡Çôõ¨a$·Ób5žõÏý«0³Ó»U¥Ê‘BüLܘbR/ÆÜ®–o<™»º!º`aGùËüÕï7èÌfWÖmŸ|ùdËlÏ…qý$ùÖW£Ùþw=±+¬ À4g°-r¸ð9À²ñœ½rìØ¸}ý¹ŽÂÜ7ä9BÛ)è+ªÎ塃š»vñ¦AÒFFÄs¾#ÌdÁÅõ®ÿR²Àpˆ¬i\%컩©²›NòˆÄ|Fƒ©û8ð¸8".¼^šº$1ʈá‰3ûka›~ªð5t»›3âñ§Ñ¸‘ξSÞw¯Âò|%AmòÚÚÀ#ÝËX\wVq¿d‚>qL¢š|9‹ÆW›Ê…ü5\ ýr°Ü±BΫS΃N+[t<Þm Úpúwó~â‘AŒ…%÷Ú’~öŽÀk­ä½ÂÊ?¹á44Öš;Þí²ƒ"Ö9\úÔ¨þ¢®t«œ%ïœm:oöOcD!kO’«Ž›io’ÑÏ„¶fK¨"`‚©0%xùzÐ=Á©9a ûžI&°|Ò¶ªÎ;¨­ú¶Ì±ÞmΡ½ÛSZ“Pò¨ÆcG€¡“œ-°Ž_†M‘¨¡åÝím °¢f_`æÓ(J¶åsÂX ›) XXjíœß€SÛ£ÌnšD9`ó8ÕUKõ©"$¨\—+ïÖÇ «²Ü%ó“”²xˆb׫“ü0ÜWÌä‰Fù:¦Ê†DÀŒÚ0äHK©¤jöT_âc7¥B?NÂ}=µ(h !ôMÒŒ9²˜ñYœªžÁó¦ ÷¯{Ÿëô|7Ý’~dÏQê/òÊcæ{r/Z;¢C…½öiDlxäc·Ê+L4á;±[:~!¹íaÃûŒàÚ©Á³m!Þª¹¬l!‚-jŒšÐÆpö•+ÑJ¤+3êáos‰šú…õ?Ô‚Ì"Ãö«ò ,‚ƒ£¸ˆ;fˆŒ}fELª¿ôˆíÞhºˆ­¿»ç³€i=e„Ïü'æâ©§òeÚúyö|§al^Ç·€5eŽ‘.=:'OüM(šËPcôöƒ^Öò!iJ¥0-? µRsÊ!Nå¨ móU•Zî¹ÜDaÒ¾"³.‘¾²d¯®,5@14{îÆìNòÍÀþ Wî1¼p´¢¤Á6„çuý…Ô†Þ;ˆW;#^ î¹CíÊ;ÉÍ¿Ÿf8&¾É7SoæÍï:~)<øšºþ_¤y, §Cumqç]#/ä¬/®éÌýÛ/ì¤0 †æ‘Kþ^È·ÏsÍE,„jʺÎÑe²?0’ê~ǪNèÐPæD:4ÇÓ1G4Ž0ùÛCÉ—Œ>9ÜÁN¶]ˆñzŸ8t[š šÃ&þ^SJ·…’ryü)O¨¤S(hKC5Œ³]{ÞöÚuò§j'{A?,À¬v‘+yé`²AËÈG1dóÓßj¬Î–OppÜDPQ}¥^Ó•½O®9ÆÌµ”¯º5* &ƒì›&|…ân6úΞ%$Á9MòÞ·tt£­=,ŠêGTAºrˆ".­½Åž ¤ŒHÝKÐÜ vDÇG¾•˜e 79ÆcúÆn ËD½»ˆˆ¢õ&¼ 8éìrºXÑdrÍü|ª½ƒŒ[¹¹{–xA)Xƒû fäõÞ[±1Œã™tö(©I|íËýeF;Ãæúv‡>‘Aö1äM›Îx¬J¿÷©ÿ %«h¼¾íBžÀ"¹y¡b=u #ÈR/s@ÇŸó ´i ªˆt·Î}|¡û27Ö ÛhDë ñJfìJWÈ‚¥ç1½ŠB·œà`=Э:œ¢ØoàëÏ[]h2èK lÂ;„—(ˆÀ„ëO8Knhé¢]NÚ“/MXžëz‹˜ÿ$#ÎCgÁ ­ˆ¨·Ò5¦wÉà,‚âÌ6¡ mf‰ çcn÷›‚£Á|KºÒà&×iÈÉ7À¯:1=ªÕáË{2~ôŽŽøV{É(U²x¬ÛÐw•L$¿¾î¼Î}D°y߈ •“¦PŸòØXYnçjÓž™ÿ—ý€xÍv>:þ¡‚r©ó¤ÇZsžj9‡š—Þ~è±#-í¤3Î,KãQH¤“œœ¨OAÛCìØ÷Y ´­ÐóÁ†Xõeܨ¿H\ÏL»óÎôÛ~’-v>“VÓcüJˆ7Ò†/DÞ%¾HíT«@ÅYì³8Öˆ ŠõƒMÉ*w[ThiZZê)¤ÊÁ¶Ûc~Íþ­£ñŒŽä†*…œ’¬ ,6®ßƒÁu¤"~„3²Ìâ›-ê49ô¯KóëpXá>*¡¯²…½ÁÖÇÌk¨ºX0œ]å»°ëLué>d•:!Ž¢¶ëó€QpQXtXSœš‚îd‘N'(ê% ²‚ùGeB~ÉEÇ)r™Ÿ,gÎà‚%G~kQCRŽáÎ%•#êçI¿/IÛ`à8áøýjÐ!ˆM19Åë(W‹Z¥VÈÊ¡:üMk–ä=ÄAh#bºÖÃ=XKø”Þù5Šâ3ßÚSê”káDœS°òJ .€XZ¶E<”A$¼•ãjëL°ûÆtVÛKYäu„:• p'D™t.¤$P 17SÒ(¨X<QìÀÎÏ4q~è,BoioEsrLtÓqŽøžÚÝK@„ŶΠEl£àÖ'ò©.çgüX'‘|I²ÂLÏ&¹®3{? Â.û«l;RbL¶H>„oP®=ª„`áîÑ鳕™‘šÉ®¦ óѦÏV•x¤fQ!`rDM ¦ŒÿñÆi÷†Ôsg§ØÕüî…´¨âêBçßµz«9uqÔÈ–y€Š—™K¿ ÑtäW/\o Þb¼+TŠ’èD &w-ÉÐܲ Ž0f$‹3––‘ƒ§úÆ-ßwB?µ\X!Ò¼ wYäƒÚÀ–ŽPÄW>0Î3Çi`zïB„D°bÎ<…ø‹?-i#Œ(þ"Ƶ•†3ñq0¸eHl+,ÑFàË ×B‹Å‘ìžÞüŠM,Ô$`"$6LÔJ¿9×ß–WøÞk_’%‘b…šÓxÄé\š <´ÊZŒn¯ð²†äR’·¥cÑ+«~¿f·%Aê3xÚÀÏ=¨ò÷¡—|nÄ+îEå_ºQÌ?Ÿj[™{7Ío´¾°!1i–4H™RI¥ÌÃÇ=kúG³•D¥ASÆ.Œï)[ÉNð®2?5¶”üðÆ/ûÈŠ0ï±T[…  ¸6ì-$`æbÒQ몴ö#]:ñ_pÎ2ÃEBŽtï·KEW/ÀOh¶"ï?NûÇZà `Áø_^šZג鈅£ø,þêd‰`Y cpgë§ÐÆE¿; |ß"ÞñÛoÔ7 §ÜSª¦uáîWñ‘øëtdü7ß5¡:ß¡fTœœS= u fÿ‹@qwTc~õѺÏBéòßõá‘‘'DÝéÝi¯˜MrH¶JÆù7ÜýéHG åÈ~–ÿ¶”RÛÓg¦7$ Øc·¿\+4²VT7ÊìäÀ+q¬æÊÎMr i}‰½ !¤×U|ü;rÑוéÓ…GAÙaÜéóÿxt•”l`‚h 3t”q@œãºá„ɺG_|5] £×Ò‡¶ë~tmµC¾‘â¾+—_¨§“E3+b¸Ì’ª]Ågü>ÙClýs´:HÊ„1È#¶ü|¨˜·…ÛüºJí™+ôJÌXޱÂä±€ÚnH@zMMõX,¿çS#­¡[êʃ‘2ÕîìRêcè«Îá2‹Äá¬DGšq  BØ+²¡kdꂤµß‚YËDÌö$~ù º'µ4%Œó-ë. aꄪ Â{y€hº­”fÿAªH~uz°T5«ÏþÉhÞwË5ù§ÄÚš­ùíöÑrPoù €³P(nÑü›­ÝOº8šÏÔŠL“Õx·úu” ü.n¤R<•— èf-÷£g®êGÎV4`[BÔŒ+(!·ΚiCX@N†Ø‚ÒÊá™*²ûÞ¨+µ¶uñ [‘œ{«_Ch¿°†/"³XòÍmi«ó>2¤æ =ûåæ>=?Q ÃÌŽ»”J-„ÁÈy’Ó ýìï¬t0t‹ÖʦBw'¼ÆžÐ4¼þ‘ âŸ=è>â‹vZeÃrÏÃÒ(¢U„6c®M¸©pÆ«í ´f1HŠÀeØ7ü{MÇ:ûT) ѡꉆ3ÿôÑ­[ˆë ªœúf¥I`I•¶A%¶¾þ0Æ»3 %ü.L<¦(¿ÌïÝ0p<^‰ ¡©>FZÄæ©&ql5¿šèÜBÞÖú4XkéêuŨ'Ò€Šw(pLÃMÉ#X [¹Òëdž«'ÔOz-2Þ˜ú óÌè†Ë Uaˆ—W¸<Öl&Ñ 'Â1ÂŽÃyŠM¨bQÌÀ WŸubàf¶m#ß1dLþ·~P1YDŸÿwD¶¡FªÄ‹sZþ” åŸÚY-Ö¨p™Ä>#Ïø‰ŽÏ//4̺üT`Xb÷GÖßjPµ1`ÞdüîôLµ×5–]ÀÇn"Y Þ|¤Úô;?(KD°Þê~)æ;Z°@XmIÃôðw{G÷¥Ï@~÷¯œëJ§9o|n´Y^Ú´r‡BH¤Bh?qpÖ—ŠÞYfGKïð£ÛÃeö’…äóÇFuK9S…ÈÒJJÓdh© 2˜h€üÆl—ªÏÉG>àÏk7¢ïˆºF" ›ÐTº ¢Ô~…Úù[™naLÑÎf·’®wÂ#ù<ÂÚ‹‡›ã¶AðŸsÂÒÓø©z鹊ƒ7û(Ù+b«{þë/;ÿåu“5¾†j>¿'z̤¸ç@„1pãp퀙!KšíÝqZMÎöõá Þ{5÷ÓOoé®!”" Þ£æœÖ‚¯ìÓ–5UhÅy1ÙÖÓÆË"e}u‘™a”Ÿ½ƒÛ‡Ì»ÅwéBkë… ðäíPÍ©X“ n@¬&x ×íÉH}fpb¨à•›X0LI¡$4ÞnÌÐ×ßÊ7ßÖºÆ-I1êdÝàŒÙ н¡ÁüªšrZV•œRkÜ È%š‰ÚsØtÍ0íôUn€SI2¤¤+x•9¼Ø^T‡Í Škt|où²ò„¶úK¾<ÜÉdZÒ¡äikZ¾û/FQïvqm§196¤u}õa+ ‚ÍPYIÂt‡éF0µ±çÙv˜[üJ:€á»QíTÁ|ü;ü ¶7n¼l±{6÷‡ü£ìä$GM¢™¶ÁC`ŸZè,ÌÌÛ“^P¸ë£/#ô*‚ìâ]=Ùû p×ï¼¥‰§À0Ë9EËíe*«ì£4gªÙ>OÛXf¦'1£·ˆO̦ñòÑ…K\ľçŸ4s]¬l§W BðÇ9ÄcHçvtV„h×ÝYêÏÚáðéƒç¾í…íÜØHþ¨Ïƒ­™‡zã´f±M¡¯¹ XƼçÿL~ìV˜¢ËoæM‘8™±Î|ð‚š y±ñJøôpÜ\Ž]¥ÃaVf"~f”³N4™ËU¦S© ãx¦m°í¾gàF8³Ï_Íbü}\€Þü†G85Ñë×É!!Ϩ{1ª7lJX1Æ/YÛ(‘J3§u ÷ã/ŸàWe…ð¸‰ãÞS;Ó_ƨ«”S‹×ðßù•‹šãþ·,ñîXDf« ûµ?è:iÍ;ø°|3OþÍGÚZÔ^Š?ºd£ŠðñM(j…ÜQ_¹ŽAVõ΃ G íþÜ`$9䨅IGcø÷ɹEżÓsõ-V!§VÁÛ-n?wº0óI£Yoñfb; Ÿ"štý[­7ª€zQCôßÿ7ÖY#—-a‰-êg;X?}gg@[8q¹"µ~FJÅ`¸‹Á²•(à.YyåÞ&{)’õ¬ ¿¿³~+àHBxæH–ßE‰µehrl¦oH¤P,”ßÐ×%¦Ö*»Z†¬Î³ƒ>út¢Ù4|e ð$aÚ¾-ƒ¼©AS«’0L–]•Ïu=-£åªÎ‹ð¨è—‰£º7ÒZHøO!\Ì®äÏÓüM€Ü¤ytÏ)€)´ûüRù™fS[!D½'ÆV®]b-Á``E_ Ørv«;Ä!Õ;‡tö²Ô™t #{ÌÁ¶cJ™ã*uS$b&Ö‡ÿçv· À{Ä2GÄwªz*´3—ú¿ù«¢æ5u¤T}æõ‘šNß/ô,$+*\óäÓgÌÍ kÛß[9z™Ð×±)•‹ÝQB(›ôåá‡{óºäœÇás£ÜNò\T–”CIsØ+ _°‰¨ãq£Ûâyç‚$úÏ‘‹çWòÔ’üJM `»|lÁ¡úp†ÅàÆKŸ«•E?—%ư/5þ9A}õlXæ4uÌtlàNÖò?R…"¯¢HQåQ‚)¯ëP/¨obB×.ñ,ÂÀ/ª ÊÑþ `„Îñ€ŸáØnŽ‹Eö'¨¿Ù)þx£ra”WÎßÓb›gj»èÕZ†b·þÎIÛÂ`` ½8ƒÏ©v?yÄKR6f r$§>í:€Æ ¾ ¥‰¯öXMÕ¯EšW‹JyÁÕî¡Ìô•·Ž3Œ¦­é©3_«|c—FÀ¤ÿÇœÇÐÎüL¼Þ”g¼ª¢GX a’Ö—HU‚¬ ½~ÌÏGŠJ„ÞàÑ'rÆ‘××»ü fÁûØŽè: ð/’ÇsÓ›OT¬‰l \ïÓ¼aÎm>ÆÙ¹³GΑhf^i¼t¦û_ÅE„èóOŠ?¹†~–23Â_#ylOúwUßñ%øé×L©ž!‡JMüÿƒe7Döó”ì"ãÚ܋ϫUùä³Á qPíY3Vë#öZ´¤•ÌJXOˆã ÈF¬KWIÞ˜Sù QŽAãÚÍçö¿8÷ȃK£üî„°s©müâ"8ƒ÷ýŽ«â6õ~YP~q¤Q"hÁÛ¶G–ý¦Ek?»2µ¼æ\Š‘¥Ý¼¢Cž6zF\‡Žª_{÷#ÑŸNk†×³®é;+ä£fñ(ÂKµ¾Ž®- æ~?IîÜIÑ>C2SÛ~„îµiÊhÖ£jȇ>¿Ë¦ÉRuU××"¼{ hâÑ7µ®6¢¤6îIJ¬Q¥ÃE0¤t¯ì‚z@®FXTÑè“ûInÿ*§Ÿ>i®”¶póÓ½.2ͤ¹Û>)õ£³k£¢-üWë+ËšO†Í0\ÙtF}>nó4'£ò [èÛ ìÑ™çP¨ç…hçúxï©eeüE·¿4ElQ|'ïÎ$ö|Õ&]¥'ã-q½™wÃ\‰vöt ³m#×)³*>¦Ÿdf€–+~-†›£ÿ¤^+¶X×pÉI_/H å \v4`ž™€œ÷‰òšÃÜ@åI¾þ¶ƒê “Ru [_Âóë~ü©À¯ˆÕÃ6øWt®Åñ 甉Å'¹}$[Τr¾†ÃÒÿ `ë¶Ö5~|ã¾ÔUeÆjÌÔü6h¾™·ÁáÅ®¾~#£E0óG4wjÒüŒzeNqò+ÉD7+Me¤¤()ÜûÆÎD¯±<f NGÒceRº#רÿs3/¿IqQ^>,ÚûEXp§]qoF©uáS‰W¿lŒLoü'g#!<ï>õýµç Çy/,£æpy QÔÖ”Ôà Q!9+ -¸e…¨©ƒLyÁ,GäÐõø¨ûàän’þ=î4Öæ–'’ÿ³½–â—q,"DÀ{lô¤[· ÊÒ#VâêdÙ6§“4Hxß·üñ$wö¡W¶íÂ3>ß)Š‚ö@îñΑ¶>a6{ÑUbΑ.ØÜm|#Ö±ApcR+B®ËërÔ¥\΄;8­aÆj§ÒÌ·Wå7‚fŸXh8=Ùvs6þaî|ÒmAî’ûb}_!=M`Wž2b"¬ýО"/?ÈnL|À‘9ñk¿ø½ÍblÓ”Ãe¦¨}Zõά’X=Цq N¼Ú\PÖ'I¼+õ þýÔ ‡2cFë—ía{ñvŒ¼nVàf¤]EÒ{¸lö3kÆ× º¹QoÔ¡üIpwR5-½qú©KöUîxdI»7 Cê2ÿdHj­HÈ“y·Û¹<^Ð&á'¦lu¾@ºê7Õ4zC¿É4W=¨¯Ö]SÆèV“ø ˆ0´!<^ˆðÏÛ·Îi³+xû –$­{ï—I†Õú‚b58k#Ý“¦Û^”hÙ¶mþÅ„›ù–ûY¯#_öœJ#¼!Š ¦âÁÅÜ´XÊÎ"ÈB§„>«t3cÀbå…¹èì)Çè7‘×ï|¯G£dAuÜÂS‰Ù}öDB‰¿f)ô¦úÅ@ÝÜÌÞ•Ê»‰¡BC;swò6;‘ƒ£†àǸÞéñ( –ßrº¢#0Õò)ZÜïæ»mÜÉ\>#%Úqx8Ý„À+±LØï1e“ }NÁ³¨Íž×ÈÈ(5L®ì7BÓîf !ÈXcDÏ›p—„ ]¿ÏC\Eÿ¯Íü|­hU“Ë;Q"°ý¿ aVjPÛèX9-¿Ùº·‘‰–{Å>=ÎîÏÇη¨Öõyuˆ+DGkQuO'‡Á‡}Öö wNå¤üFs…‹=tŒxv~>;^Ó©“ò šüãq-ï®^ó„Èfý=„ÝCþ¬ñáÃÑ€úæÂ… RáàÏ×cž˜61U‘¼l‚Œ7£>!òM‚¤0b»º±s|ã cóþª5&úžž‡µO®„ÀăæXKa›’E|%Ô#ñcÿW‹Ú® \}L…¹ŠŸŽŸ œ"Z¬¼ÚÂw¾°‡XYVç9ˆ)‰2Ie†'!@ÊC À†4:dÆa©¢E·ã}”⢚¡í\¤Îmd¥É ÚÎ"LTÓNªõ°ds£Ü¦“áî‹5þ›n’áòéÛb: íѹ ¹Eô[ãû‹GëY ½Y!©lˆ3°~|û *Ö„#’Þö Úq€¶`6&6óÉm­€»§‹8ЉXôrÜ©¬M=h—ÉL{ÇÒ¾þ÷ð¬0½ÿL„¾®k8þC{ëhÕfv…92õaQ£ï’IŽK~hdɶûÅG÷d»qt¬ŠÝ…ÙI²>ßf‡–!V­B[FâÍCê'üM{þDë{·¯㎞†–3ï©AÈ›»FµÄðç‹x˜íê×ëÃjh„ë÷ù!Cºß§^ü;³¥[ïGYyÆQ{8Ãgw»µòëÇ ¶z¥qÏ -‡PØÊ4j´ùÎø4 ­P“Þˆ·©^æC¶/²3¸Åh u*½^ É—´ô_«ÑùÈÃøu6ý¢5"ÝÚ.PíJ¤Í~ÍÌý”V§ýGRR§Xò©p{ÿª}â!C«ŽÁü± Rg]Þ­ ¿Â!òáOSWH·¦ýa•îËét²kv´uà¡H9V’LD2)©× c t-÷ÚCe¼Èñ~¦\.§ⱿéA·>ÿÜ-p~´ÜJâoOžÃe\Ðæ6ê}˜GÒ%$Êù9¶nì8€¤ò\t®UƉKñá¢Hæ0T7] †¤ã~Ó—f~vw61ðæ³ÍÝòt‚LƒðüÓfü(yø~òù¥t+jË¥!Ñj-ÆÓhw×»‘Tùn.ÁX½GÐN½ú¹ÛFß±®èH§›àúFà*2碼·T»›–½¿]—ÒΡe®½°î€üLÜ2ìôVOl»!74z¼n¯6ýÙé¤g\Jt¦)Œ¹oÜcÔgßâhW'¢ßB[vFk©¦Ù—S¾ Õ-ÔL˜”ñ7lØå€+²¥Ö»çíÝP®˜×J—­¹Faö¢ëûETð!÷ûï/ÇÓèývÕ€ZŠ\Óè¿ kü Í' ƒ7>™¡Ard¼+JÁÛÒ[~9«ˆd,Ÿ60‰ü,P DïE¬ûœ)y«LykþÆy# †Ñ.!ož¹÷_`o)è9l?1KËveÅŸ}_d‘æÛëÄ|Ķ}5šÈ‹‘'8‰Ì¢¾é§gäXüJKÅ¢Kš‡!´kjHÆØ-J?ðPByѶó¬`óH?*6£ü[Y½Éñø’Í8„¾8Cÿ Ópx„óhLÂcØŠEAÓCí&XLõÁe²P™µ„‹ ÝXμcyp<ठ, ê­™õä PM‡WÅžÑGÎ;=)Æu`~ß$ß\žLžn‹ìêø*–©ZMg´Ê…Ò¨•î!IL%ÍÁë3Rhõ ¼‘ßésàóù§1:7†‡7²Ü-ÒÊ`™Øsqß~—€heG™ÔŒ|uä6×”R „.„;Š‹=w5ZáB,΂S«xQá_z㊊œ¢q»„ÊOÆä¼OggS€‚H¨ädëŒ6FÿÿÜúïÿþÿÿ ÿÛûöþÿýÿÿÿfþûÿÿÿÿÞÿúø÷ÿÿÿÛöóïêëîÿÆÿJÖ×Ýåâãáêììöóü.V°0ú¨Í.œöß.¼lÉb¢˜’T¾Œ:r8ýå••DûCƃ_ÅÑŒ¨•‰ÒÒ¾zf û5g•tréÿ§²·T"· Påô¡ñ…°u2Ý}B±0hëOíˆ[~ëi_~TÝ#©p iœÀøpùZp!0vtÞX#_ÚË7Q7Ä5ˆp©-r>]>êk¾Y§©ƒ˜RI„‰Î‘~b¾ŠŸÉ=ˆÕÈ¿\Æÿ@>³V|@€ ‡öw#:-gæîÍ? ¢õ5(`. ˜Q=2a gU‚dÊqöCc>¿G$ Ê Š8Ÿñ(TËªÄø¸ûè`±c(üÊ`Á bäÑÚ¿Ÿ%¬ÈfkAúì¹ç®nÞ¦¦2µCô¨>Á$9›ýšíÓQ^;æíÉ_ü=¦5f,Xj!‰V´Ù®ªítžOºÐ”ö{©áû“éÊKWæé\> r¬ï­À§ßiÔ ÅmPZž·Æ¥$‹q6•AT縸fOŸCºÀLÈ›€„Õ†XâNtï›=4<©œmë÷'‰ÙÇk˜ñ‡”ÁÁÃg£\ùÀ5×d*Ùå¦äueì¿ýÏÄñ)¦gû­ &Åvô#7H¼\a£Q °VçIÏëù………í’Ä.ÏÈ•ž† $Ÿ¢5›{ø¢•ºH[Ù8§˜U¯!à*Éc>™Æ·äûr>vTÉÓï/«òé­§”2fzôÓ³¥™ÕÓ?J‚< NuÉgmsâRJ¼übS’ƒÐyþw—5ªþu"9ÆÍ=GGcšo+'˜W ¯Y(W»LØMºy¦zoÚ=€c¥Z‘>›Ïˆ°d«(r_UÌÒxÆÆÅej)в¹çè1ý3ýn×Uo­cÕžáÕùgðš¼Cq2‡?g‹Ó'4ö&]•e·.ÀOw®²šÔ€ Ÿ‡'¦øÂÜ}üXõ žhÂÏ€„ñ«¸¾7¡…(˜š©-8Gá;šØ‘4A¸DNv·£H K˜žÔÿñŸÚñ"ÕF©…EÓý<ÖÿÇ\iõ„•{llš Í%Ѧc£Ô¨&i[ÖäE° ïaN$Í ðét‘«-{}þ×”¼JódÞ‹Ö0‹ýÑLº["õgW7å!ñB»+Üyt°„½£þÈ“²ly‹·jÞjšÎW@R3‡Í[Ùþkk!JEáµö,+i/œŽ´Ð+FëߎàÊ©ÈnX{g×3ŸŽ&É騟Ê@Uð+ÿt¶9{Þ·„!òø˜ÝFI€tq.¹öæ10yCèÃF2K+eäÙqjzZ ߀!”ü±k¨R¡Á[Àg eÞ…¡¤0Såyjņê¶À8ç*Õæ¥\ÅÄ)§3µrmk·ùôé2òýßi³.ötÓÆ‡?;Üâ«WÔ²§ÎýwJfŸÛJÿܳ‹w(¡=s·_ò,÷äMŠ ü½ä׃<‚_˜d€®T9d-€Q¤P6Ì8*µ‡×Æ5A»„~<å‚ñ_ÿfœ¿1/.Ø¿eÁ\Ða…‰X@1ùÑèTÕ|€Õ*úºub~²µKÅغš5<*Hî€×]¹Ë†Aú(ŸÁäWî*çá–žéÊÁ·—eö\­ÛCÚתQ«° ‚üM) ÓZä¨Z&¨DeK[fƒÏÓ=÷¦ì+yµ§lS»9!+¼Ú cçW1´,ZÙ=üØïØV†Õ“Ãù®nÂÈʹžé «/°W >Àï;«X×:8…!%ÿÒ¿uyeüñÛ,lé#“I]¥Ä;Dj½oÊ¡f!Ôä’&'-êüJN·ŠöÛ#GØìð™· Î’#pQt ½t¡}³5¤ 0©±£î _¾éA­ÿ§2[uªño‚[èR‰¼~£9pÃzm2ðaåÍή‡˲K áHÀ±ÇW¨m|Bï>°KßËV‹Â¡ÝyÊ`oóõÑleU?ªž€p®ƒ‡óxçÅôñ6쉕<êv³X÷8í„óLbÿ` ~NeyÏ{©SiG‘{Qd#7XÑ}ÿJ!F/ëí>Åô!IäyíŽ(ZÍ?~½Þuãß¹ÝÝè7JpTŠ E£‰VIqŸ_‚s=b ¬D$“¬\J({©©ˆ û+õ)9ê^öºÖpÞ>DüêÝéšÝwWW¿qü..ÿ(À{bÆQùËKÄÅÆd'¥IÍ®t\œe7Á‡ñµõ—Ùj(Ó\Gõê·¥Õ6«˜MÓ£gÒhV÷½&WÞÅï*ý¬—â%¦YzqT¶ëg[ ý C›.’ NZæ­´YºÏ‡¾Uš¢Õ{—žÅCÕTŠj`mc tp©8i¹’Ü·óI‘)]?I³E?ä‰9Þ`ר <ìjöVïQå)ÿK5¥8ߎEc в¬¥Áj õT,Ùü|¬ã=¯ãºñAz*•ð…¿Œ;KRUÒrKòƒºìƒ(’Ʀt{Ëk?Ãéêw&÷f_õà¨ú®÷iÙÏ«Z_À’/¡&5ï8Z9V9:)¶NK6uZ2’(.õý 0ô3NÓ3YP?BþåT€‡íDÜÞõ)EÉ6Ù¹¤ .¦’—íÚÜ”ÃÌV½NÀêñÞß‘.؃À…™ónTàW‘VL+mÞ\ظ=ð„ó%h`J%-Ë>‡h˜@hîÙ ¨8Lÿ´%4Äaä‡Äà‡w7 #¢Ú0AS—ù$ŽðÏ€¡^­ƒILçõb<Ä)L’$í_bVÃú@ádâ23C>©ð1eøŒlÉuh1Djü/‚˜6©bª Û[QL6'`;$‚n€)ã,¶Izpù»³Ö}žPO[K3Lîê/”lUÇ"º¸c7u˜šŽâšl¬>WQøÖ<Ò^]ü>ƒÇ羆xãÆÎ‡(:£JžH@ت ÿ;éÈmõ¨Ú¨I´‚ÊÛÇ)G'–“v&nÖêH昣)›8“Ï„ªËÀ7ªá̵ƒ> ôü[IŸE[Rs½ç)R7DÙ6A‹EFÖ·ùX¿Ëþ݆’fÀ¨ö˜90œQ§?V –ðvÿXìÄjžg@ú¢ÓÉ•f˜™*7üIwŠôÖ<=óå÷^9#í1ªŸ*D¥AÓ-£òÎå†ä»úE+,¨Þª\ðˆFÞb³=Z ødd¿qõBµAnÉ;&æ¾oƒÜ^ã—Ý}t°°Ê‡ˆÅ– áBßëÂBNÿÄ:#8ˆ¾•ö‚B(Žœé¦K.)©†ª-ám/§5nEì¥ HÂ<=' ×ר«ƒ !AíÖå8MÁº•îÛ!ÞWÂ10{àqÔÛ¨l[pÀü&èHþO<´žFýfÔ9€SÓ$Îx/ø÷Žl‚Æ=”þêˆup!‡nmoË.0~É@jT\†K0Ù¬ƒÙmö­pü¯1?£à+æZˆé(`éw3k–/÷Þ>¾ÉdF‘Ñþ#-Ó“[Û\›Šì$Eš·¥Í‘t¢ÑD6’s¤J¦ìÿ¹åŒÚIÓÿÞatµI‚ ÙeðÅ#Ô!R})5VŸáKø/rÒ"†H ‡—»ØoØÁ[ù¼3Va®”tá¾x-#Ní°OÖ8CE/Eè fMLõøˆeƒ ˬhf%y§Tâ„­?úgz6ìdïÊÉûÔJÉ¡kÍãÀì­ÅÄHÉ÷ëÿ|°— Ì )Õ{„ªëÑ’}ÜÖ,;çJÔ0K þÆŽÛ¥õ¾ãX Ý\ýêüذ­"_‚0¬züÆf*ˆ`»,W\Ù~77ñ{!_ö{÷Ф—ïKÙQ.Oœ-Õ—½/[Þª1¸ò-ðk'8A¿!u²åŽQÝo+ÑqÔ=³µŒd ¬i‘)Ĺ÷FaÀLË&‹1$HF4œïœÅtl4Á~#4FŽ}hôÚà(hhM¶h¹ŽÇÅíˆÍ™w®Êõ:î·úìÓônÌuì ²é‘ÞôÖ¯“] Ó°pGÎIÅ60:Þ•ÑÛ×¶Q<¸„Xg{‡ g¦m„JMW—·¸ûø¡þg‚ήI™­¬àÅáAò‰Õí]†pÐÊ›!}ag»qn"n ØßS Þ€ü¯}žºÂê›Ì¥˜[-`ö×C*»‘Pµ®f )ÇÝå¦ÎsÑ iÑÉ „gÌ„»?~ÇÆá:ï ýúO°råižª½,õÆ‚*ÿêAìü•¥p¼{«º?hx«1ÌAjáSÅ¿²–7n°£Ô©ŽhO¹‡ºíÏ#øüÐÁ˜ måצµƒÊ‘½ýóÏ"Ë[ûMAp¾¢“ìXr}º9rßy-_Þ’:H3a_°è"ÖÍ–ÍÎ"p¤à $Þñz%€ˆ ú[#ÂÕSnÈäÜTC!9L`\g˜í2ºF,ŒØ±iኊ(Ú]©?ÎõG”ðßK©oŸòSÛŽ~ü|‘ðfg>v‚ƒh¼ã»ôëfïsêÙS[¹tÐm±­.Ú ¤E(D¢zêõ½žÄ»§b¬?Òlƒô¸ímHW{Fº@î¡çEÃ0wÌþ¿Ò9ºjd îL`ÍÞô0¹ñZ|½_,ø;Z¿šó˜ÈÒrWüK—_ئ'66˜dŽå~fÇÕ®ZrÄ |R¤±µ~¯Mµí©pW‰Þ|Á00ÞgôªMCµÃŽÎ+ÄZSØ®?UؽëO’^{=v£Cœ^í§2©ÏÍ3si<£¯¥ôÊç¦Øä ™x–]Qúgÿ8¨jº®¥[†på&±Ṳl®ž•jD8¤|ÊëZŽ¥5Yçwñ~ü0¨ÏE@×ö›Œ¨ÐÏÏÓ÷zñÚ;w*ëè gÓ‹:q­8q‘Дâ¸ç·â ²¨¦³<¸ÞÇP£tÅ,º.ï"xs®ÙÞgël¨kg€ŸuME Œh?FÄiv[[L¤‹_FV·”}6HäÂ{ºü}\:9üï/¨Ömô^1QE·{+úÿ+ð:z²”iê"K÷·[‹W÷Q˜.oZV±³Æ* –AºÈZT$£gK‘Ðá ‰XïöÔñ×ee4//—Fýrñ¾—¨º³¤à Ú¢Ù»—*×›D%»*Q’(/µÑ@¼¹„5'Œáòâ =ò·¥#É@;Ä du°£–¾‚·o¡º;trE¼F¬¥qَܺ¼Àlj£žy¦U`®ñˆsÌ€¸š¥¦pe¼h|}Œðî^¥Nú~þ/“NÝÓZŸyò]1÷|2ì QA>šPæP ‹ç3 ëöH\Šïµk[.–À*™ê–UÈ…—MÝÎe!j÷¤…ˆ¨ Cö-£ÐÎfCtk7‚߯H+©Ívº¡éƒ0r ß'ÝÞ™©ø,¶olÄGº£L§( ‰ù)Ü «R™/Б"²èYCâü5_ Š¯qœMµˆi/F"6wëÛJ–?á\›ßY%mHè KÇÿO+mm±I¬ü½J á5¥ë¯I0úÜa˜a-D™4"íŠí$+Ôì3¡|’ëL8³Ä©»ÚXfVŸ_ÎuŸÌ6u4œ‹j~U‘LÅý"ž²Í³¹17ªOïÞ –fov¿4¥¥—•M‰Uá[ݰ\Ÿ‡i-@Éæ»xzb‘M—J¼ü2·­p†Ç/v‚!,ݪÖÀ½Í§áxL¨w–ÝÞÿ©`üL§'žî Ð,Èì )ƒêjøëÍ9bó]Û£PÉ*ÂÛ]gÁŠ÷üL¾-´Õf–@ÉåòÂR¿j\‚…wgnÛk„ÝÏ{ê|¤éV¾ XM›¦Ï[S¯å%‘Ò’X…¨ÿã ]æ’T¨á#ä̦ÆÄ#%ˆÚm† ·q jÁtÀÇyï=$‰ºÆ¤ Ü!Y;‘pö×Ä›“L^ã†gÝbªJ…ÏI1ó»­{÷AN¥:bóýÇÀJ…@^m4¼Î­C&ƒ³XŽ:âòRZÊT¯ æD˜*ã•]N¯7?DNîÿа€RS¬õŽr·º‡>Tt440×, ”`p-øþ󅇪FQ§?fè”AREdŒó§z&É3›¶!J‰»W¨™wü¯ø5L¸áû‘)¸ámùï_Eûœ™ã‡7J–1Z’ß$T‹³›­;0â¢~8ò YJ¦ø1•sB_šé“s›j†Qó èˆÛã/²¿ë·]$Óåø‡ä‡UsÆk‹q65¢îÁdؘzøš=Ô©|PÍÀ¶ä!åNB–ú£·:מDs›Š_>™mQ‹ÊÆ”…—‡¤‚Õ-½JºI$ë´››tDë~(ê^òTÀÌcdï³8Tî³/¾tl1# ±©290·Î=VÛŸø(LãÁ|K™ YOü´G;¬I“?ß 8äsÀýü±\×…äE¨ ßhIdÌŽ›TÜH¡Òf_Záÿ?Ë¡ßÉò‹„g Pf¢$Å×£v¶Œ×;õì ÃL¬u]Ž l§º%[Öíì¼¶²bâi¢æ{¤gOŸyô-ƒ¬¹”h- ¯Jð,uÅ—¡Òu¬Ò£Cpv÷á#߉¿äz­ÏÈzœ˜°s \óÒß’}¬zCµ(máC……o“Ò#­Ïú6?®K4`fÒvs"–ÝšÒc4%Kõe’}sšIç7_å'XàRôi| ¹(©Ü9R–&XõŒŽ5Â{öUVGPॠ¬ÞŸ?Å£†ëÒ奾ØÞîáðý«‰L”†¤É‰zü.4^úÐè.q …'5.Â_­ÁºA¦[ Ú„+@ Äu€Ã"KÙ´£‚Þݱôm7QÏD&€ª“òžï¹7×ãm>Œ?ëÁ}åp+#Ûqó¼†T ãÎZ¨ˆq¼:t~d}ÏÃTŽ¢ßáË;z™;æŽ^QÌ~ê*³¸?³[nÃû"RÍÆ’å3-t+IýWVþPÏ÷Ñó²êÍ­®céb%©Õ—#/ë´}Ï*ÅXn¢UÛ³o]ˆbBI!û„ CqÉ:&´óÉT8@÷pf¿—BË6®¦4ʲÏÞ‚McÞQ+ ´Ì,Æïj´þ7òÎâh“ÃTÈ`ÑQ ÿ@HUdöü‰¬2bMa/Cú¼ÇJ÷·î')4ë(S€¡îŒËrxH\çéwVúUs6»í!æ¤ÄIêòYíÊèä‘éÎåóßLdf¿øíç  ²³?µÍ걎tùi?ÀŽ/ÙÓa–¹E‘ÕSûá •ü¨ãz–—‘MJßømPÖìœ"³f¾O&I5ëµ¥uòíjÐÓ…À Þ’á?Ùš3Nž›î:rpOxb‹Ëˆìs†/w—‡6\ò›Îµ±Ûâ<'³AÌþ5s×#hÔÔe”ç#§€uwCÍ»:ͨ}0þ”nlë ýpž™¡…¬QÏçÛ4%m˜×ùˆƒ›®¹]ña ÷ •.²á¤|3¬ÏéÙé²<ÞÒÃIfAÁ’¼JºXöà­Ïu·eÜ1q,¡zÑÿL@)j÷Þ™¶nÒm Z¢VÒ8WU<žu 1ë ×¶v¶ûÐÅEÞÞzµËkN³[?Îè|õÀf¦áçBJüá-ÐÀªà–¥ÍÜÙ+.)x6jò"iÿî¥]vÂj½Jz ,üfй}®JúXKL ÞâC.a" B/"‰iˆÒ¸0V¨½¾úª —³hõõYjs/G>üX·bÑ}éŽá¿SËìÝÛ‡/¿¬Åzm`W}ͶͷF:r¬~¹wÁl×[h#à™X¦ÿ߬ËÒÈ µú`ÅRŠ ËÒ½ï}õx€6|í.F3"©ce(…›<(ßöÍk°ˆ”Smp¶‡ˆî™»:‡É¡}©V–€-ªgp*já·[ÀÕò 7Èæªú“€ áý VMR%Nµ^¸Ó7|¶æ6•ôfÈ$9,"ÍEö„OD6*Ö&\{§é‡h´<¹UØËœ!Ê» PÚë]Gòºâ¨Ê(‰_)Ù’žÉÛ¡:”ñõ¢Ô³ì·Z8fñôÌEœˆþ'{rݾ¨ðSL«Ëœ3Ôãwi„ úã ‘üMZœºËó0–åÜÇH0P2Y,£©ì@ Õó²8é(~QƒêøÁ67âïì9¿Â¿vá`±Q¹œIÏÝ›9Mšw·¬ï¯v5À@AŽw >ßú&îX VCCÖÒöÞºàÇT¼CÊh³Á_qôrn&ĸUék˜šÅæ±5Ù¶2„㥹Ÿé¹Ð}Á¥˜†úØë™½ÿ„Gô:;]1£2$®¼Žú0Lý¨r“[Åúõõæ «ÅÁ²)F' ù Ìº~Yƒ(V÷kxùÅlú˜(¤dVÏ|ä0|Ö Â?”ª 9Ø# PXJý"Æ„üM®nµŸƒ úDF4Ëàé&b+äG4 Pµæ@‡†-Ò˲ôà¥ëtÒ¸çËVÏëRÇé¾ÃNF]u•À–¸¢î_5åÎB="*ÎKÐÆíqþedµvw¼þ< ]Ð:ГšjúŃR• ɂѵ‘p »„ÿIíŸar2 Ôí¸&›g,2 L³ Q¾0 À”ˆª«á€mé8+ëÕÎü½…yGœ¥Žèüo&'¢Ùu°­Q+âé]"cîŽÆ‰[4r6O«xª|ºÛ¯üÏð#í?Úˆü6}m“m"³æTé«w—î>UäÚ®I˜!´L3—°?Á8\ª)±NUÇã—ÈC(¢5 {ÉÏgyr(õ|š¡ÒÜÉŒŸðÐgUHÕP„ñÐû¢õp%‹ûûCVi‘Œ?ªmr™ºÙœ€Ó0“è’³‚lCã3í8§³×|§Æ´ê £WEˆ¦£éß+t¿,Cv§Ž2 k/ÄÌv#󅯱Ëh$4Îj‚0ˆš\Ü؇NàžÓI´ú1ãJž߯¸ì8[Ïyx¬€E€xc$ÆåPÛ] ®½1É@Kv=bòÔÁQø¶Óßê>T—èâ_ü™.,Ňü¥ú(kŬ‘£öÁ»"¡*‚©RÕù×7³v•q=õðSIÎ|SámÝ¢üKÓìgbœëC'ÝK²¨)?‘Z¨h$u%£Í -âÌ*é˜òtDW%l/ІÆÓ9U­>y[¥öKòëŒÐ·±J¦°ñÆ'˜üû‚uŽÄÉž…¹†.’šªD`7¦)•Ù ‰LÚÔTêÜêÜ8™OyÇ©žB© S àD`ú”êÉ$ļÅQçòÚd­;ÊØ(´æjí^ ^–„ƤJÙÚs’Égôroÿµå_¹Y3šw} Û´ÉWÓ–“ôúªÕÙ­¹,ÔšF¦$ŒÝfJüFOTÈwÍá¬EÛÔï:)ŒHæá>õQŸ³…Äšïöˆ?@qÐ}~xð5Ëÿ'Rvëâ»B'×àB[{–7;lh±MiÒÜ©¹w/[9…î+¹--»LZ}”ÀåÛÒ·5Q/U†\“þ.§œ~wUpê7à¶9;TÝmè@¦¨M­3µc‰VýPsí@B£•o÷ßž~ÌšÓ8êawó>K©ø&?a¨æýˡהóë'`¸öð…Œ_*3‰Ó%Me¦`ïc˜õ©qj¹ËnWÜÞ\¨.w*“¼¼'Ù×v“#ð2aN“Åë§ÞÝu4Ù3ó@µØ#øü|­&g­îØÆù}ÔКűÆHuù›ÍÔô{‹ÝR‡§ðprW+hqS4ÔÖk¨Te!¢y}]4ŒŠË.Tñ%R*d<þs…I ±%ˆòƒ€4Ž«ÇÙñâŸh†6qÌ—klÐÙ Ïå5’ÔpÅòHC†Gá™Lk!äûD>&ö ‡µJ )×ùâŸÚ2”õò[Z3•ÿ黾µŸÒEÙ»Ò´"k@Ò­©BUÁ]Š;©²•ìê({º@hÏ¡Tiýº/_÷¦$Õ”´{3’Ëáw}6!qËPz3<¢/Üò³ìÒ8,«aî‡ø2_© ä –wàB{FmŸf¥Fg¬Z;5ÞdŽrއsi)dôÔ1…Ïy-¡üPÒƒz ÞìSî!OÛ6¹l¤cÏH‚ÉêBƒ‘e¤NhÀ¥J«ÅË #?uÁˆNám ‚𑙯ýˆ‰=s:U;)1à$9ý/þù|ð‰ðÍ ŒÁO9Ópû½y_ɦO!ùàÁw² ³Œ¥ 6c,>½”É ¨ˆ þiÌtMºm÷gˆqV7U½ôCGï„¿p¶V¹Vz`Ì=õf1± „_õŸ-gÑf,aœvü."@n”HR3ò‹úÌ´f+@·ßûS¤âÞ œûÚO†î/# ô†nDÄJ!4ç-®­(¾)ºëRÞr þ´"ý0kæ’ì¸2»¦UºÞu˺¯èßIÛaºûÚå£@»ý~Y—þæW]Ñ]ÖµjcZ—=îµ÷ÓÛ„˜iƒ/u>kçÔ㙟EË,-OÕKW}ú‰ÂP@7r…r‡YVôfžôÙ¥„± îsôíŠ]ÚfJ ¢KßOpÊé jº6“³/¯Î¤i4n"—'ŽŽº/“5ìœðMcm¬{|ùBÚdøg ù¶É†,½$¥Eßü6h†#Ã#3äÊf¹†~8qi–úŠGŸ#p£GÙ÷N’ÁÕMh‰=G¼Xuøü -œåÌË£µìÕõÔv¬ÒrÜ!¢™Nµ˜@È)ã-µqHÿâ¼{pû¤m—K"ï™}þ̇0Ý£X,ú ÊǨðû¿Ý61X-¬ûµØˆ» pî(Ã)‘‹îî›Ñù—tD 6ÛÚooUt€¸óÒÕ 5*ù®}¹Ñg¶D2BsXª3ÄgØûÜbD0pŠ™VMÁ“<}‹ü0Š‘Ú¿üHuÎÞ¾z+ãOTS¼\cš—ü./¸…6[âÎñcöL{ÛÁhmÙœPðëL€Ê@¬½Š^ 2cKYS³p¹ÞçÝ"pÞÒ¨¹kPgÃ’~T–¬P“ìbëË>¤áF-©Áر¯[ûIXé›_¤À¢¦bô†½Øoƒ²€®©ª¿~ ?yÌ¥©Õ ~síÅŠ#³ÎàÕË'v)-\iñìv” FSmñ t§‘8Nk·Áà.~Ÿ-ÿ~!j…—ž Ba[~3äg$òÌä¢ AþuJ5I¬M™·§?‰q”ž÷Ïk–LwŽr™¤Gô®m.0ÕÉ"Ϭƒ‹ ¯ôC×3ïš›¯üM2“ŠÃ"ˆî}IHãq0kòÅr¯ ½ÇÖ¾?›d®Wȶÿ@(Ô7ËnºææêÉ#A#ü¡ûx€¾3•¤TY”¢p»ÞVQÅ¢ú×{…Óg¶ç ¥[¬Ô è¶häÈJ«Š›'ÉäKŽ tZªÆ¾X]jÌðn–`鄘»_t ´›Z޶F¾u—“dçžH€¹ôMæÍxL±.`º ìK?c†/ ´ïo"ñáÑôÑó”ŽÜ©ø‚ár¹a“Áïÿ›=Mbæv “«Ò0eJŸ´ò7¨•KÐiü± ÍæùŒYËÇòJ*2Ki,+ó¢àyÓ¸%&rÒ.Òê¶H¾HBV4¼ŸÜÌP–5‚…â|þQâ5œjÜ9·¹:oÖý™f§â‰ce°É}Ùe¥rbK£¨ÙUÛ áÍc¹×ámÍ9pG™ˆU=½Ž”¢^„ý=³c`´ÃÛÞš² )nO—è2§‰wF`ì9k=hÅå=—DÍëCwˆàü¢‹$ìœÏçnÌúRí5¹[¦DÕ gXÒçúºsðò«™)_õ_pW'zû ëRQÃwÙä€ô?hÚŠ(»ü1ýÊøœ>_»Þ|rlkDÂ儃êï%ÅÕ¿‹çß6#3?€žαÛöÙz'cÒË’—µ£ÏŒ×á´v`7cÆ!ŽËE&³ANUiˆkscÏ…$Aûe‹¡VžÚZøF2ÄZIÎ,çrɆaI£SýÌKRC?Ssö†g5Éñü×. Âëü <›€²ý×#ÃΖ7[99Gž³¬É^T…)Eçhî‚'²eR׳ø”±~Öî NWö€1`ça߀ëïcñÏx‘70©ƒ øÚ[±eÐsoœ 3ÙX¢ ·³ãYuÒœ we³èlü®c¤>“•óqÛÈ@áïà`úòFÏK·-†º¼€öãFq;3uÆZ¿‹¬1˜`8”çú?t-Hä©ÐÐéF9ˆØµ…ª1:ôúÁ )ù·9™áeÚ]úò¥œù¡àŠËâÚsÊÏûžçƒÑgým—¢à÷„&3 ‡Մ'k¡!\Ha5ŒŠ€° ESh~§Ô9x”Iwdªž‡ëõÍs›?[^¤õðt–ê(_éQm ‘½ôÆÌ=lµVW+š™p* Ô]¢]fZ“—YýôUæXµÌ·cük#™uÅ©¦2o4ÀT4Î'¼ãÔ ê²Övpü4= ¦YUØòêö[…cì^áÊfÈ™¶¦_ eYi»#•Lœ[KÄ(ŠlHõĵÛzÍ|#Ï_¹îÜe?¶¨ü»G’Ž)mÓ@²“´ˆZ!‚3LÐv©ÅïÒ©œs펲ÜʈTF…@+i±Jzï6i½øŒÊ'¹A*À8± ¥*â• »Ñ‚ ê3ÐÉÇûëËFÊnø£?Ö³r„ß±¾~¾Î!q1$=v•!…GÈC{¶*Ç­(%–HF¸×V´­Aè5ëÂã™<ü|·ˆ_‘¶è³KÏ‘QEÓ—Ò~аij‘Y hyŒá¨ŽLh4èíÝ8Où¡·¢PûØ¡k‡$ü„š«œBW<œ˜¶*²m ‹ÓVÅ4¶ao ’®З¬;ŸøIn‰€Åþˆ:0‡žÃô]ËC"v:ªµJïÆÙ¢-ŒÝXùUÌ4Ž•Gw8…dG­ÚÕBú}¹¦ qÓ:ý{ê]×. ýnJK ä&æMÜž…×ÀdÐjq½ˆ™ò„úÓe˜|ºèa³r⻲ ÉÖµCøŒ1ºó¿Eª@šLÕ¤N¿^¼ùŠÇCš$'E‹CëG`©©Ò@Y‡É%©ê\;CßÅ h´¦”¨xb‡Ö›ƒd€%N{©tŠüŸ¸ä…(©ð{år#ycMüEû E]ø0?¡¢E@}=ìÔ“Þ÷Ï#FjüJNKYUû€ßF ¸ƒÿžû /?7ùR+è³AeÙÐÔ÷X>/²5D6â*aÿB¸*qѳ…rÆrÛóâÆr&]¡{ª¾ú¦“`&´vlnµ]#Mmý„&@Yvÿ<\c7Ày¾IÊÞ~ÈB@ªL¦¢•‚Û<–´ŒdkÒS ÕãŒ5nh÷Ñ™R5±é‚TŦè=C>ì=ö^Ú虃À¿sÙ®¶ódcs‹ðÎÏnÞ¸·¡òÃØƾ[Ò>¢voD{ÚLƒn¶hÜ m¨—]üLÚ‡sª9 3›7 Áf8ð Ζ¢å…$¡Ú—-?ÑoÛ}ó}ñ—P½S+—FfCänš¥úœñjà)¬ ‚µÃù):ú¹´áÁ˜+¬X¨-k¡UªµÞ°‡¡eŽÛUÎì}åc¸¿Ñv‰k’T3W‚fÑ £Ü6N?ò=¬@ßoB4lùwÌ"ÎoTWÔ¦1ùZë+-`ÌÞö2„†à¦;Z³Š¾Ž$á®u¡rñ«‹®Id—æüN‰4ÀéC~‹Á…)Šíª¹쥆ûCé$\1}¾düM{‹¸a“8j~LrkZÚ žÁ}m%®mâÜ_´¶$0#nÔÉ‘¿Œ}gT&45Ž”ß`:|ŠêãiZ Š$‘*ŠHMXƒ%œÁìéD¿ÏzP³kV½ž Tbz ›\d$è6»¦Üìâ•Ë8//œ@´ÞÃK’#Äîu$uækN©±Úð‘Û2yt@UjÕªŠnb>:æv˜ø1<ƒ@ß+ *ÉCf¤æ¦'Ùðø¸ê Siª(°÷Oæ8ÌÝâ¡™£¢zƸfPÕGp²,%Òº- ü5Œ6s“IDYÓàÐȆØR0˜uP9bcøa‡¡“n`šrn[.­MÝmÍÌ›Ê7û‡‹Ý!-œ%qt¦kûwÃÍ!ÔeÖæÀE‡‹Ã{è“X©þã!‰Ôü18OUrãÈ£hÏ… $d¹|QfÉûð–g#îпÔÚ„a?yÄx‘Ml(%–Ê«–òâŽÒ/ÞVKò¡†-×Ânˆ”šB˜a%õt Ü^ wÙ¸zü‡)ûø§,®QEúÂãAÑs5&M—à@hº0%9­7¨èULµÈ»eQ}Þ*‰Öt wÁÌwj£—LÖûsRÌ9@šþj÷h ‡Ã†´¡|ùEÆÉ³;‘YF<µzNÂŒ¾2‘í= Ly)݇´½DÙ£´—ÒŠÊÈÍ,Æ–Ãß…w¤C;úf¿CÞžüL³lJíÐr`ÙÀ.'Ž[ƒìçÀ3ÓÔ§5©êÒ·à™°•Õ»—ÖÚVÁ¥!æfßÒñ]¥òŽÖÖö4ƒçN§äï’h£¿w ¨f’ÿ¿^öÊÜüçìF>Õõ£DsJªOÃD‘ý&ÐXó™Ù·œÐ}Ä–ò”6X¬4SRÂa›¿ôÛôÐÚ£®‡‚ /—/dD" Ôrø#i ×í08å–øŸÏ¹« <õwzN*Ò÷º½«Á%g a£‰¯—o¾œsÏ$®>ëüMiI!f‰ äkp•JÁ£{M¡PÞ¯‹J¸Ðû†áÀ%ð‹A!PP ”VBøUq2È=Fµø–dQü‚ܽžß£HÝ~/é˜þyëu%®–¤Àc&Óañ®ŠÇ…cY_Q|&¡gò"²?©µ¡xˤvÈ ¡.ërŸ_ÁîǚˇAØd‚$Öð’TäîW;—ki¹D#äæ+ü£ê.ÃIƒ×댅 äLì+0Zúè`=uØ÷ÇÛ^Î ³è¬‡mzªaNo²iÆ9èÙÔûÛ†–@MJMPó&0ü1‰”4˜Üd4Ï Ïúq& ~'¤q߈±ÿèÓü¹Å_£ç;,Üó#e)|¢s}=<ïçM=×ð6-ˆfÊôéoe¯³†ìBS×áž^ö[)k™Þƒ/¾ ûÉŠy„¹½L£ÙV¶M-q-ª€ƒ? ð…˜H¹C¼¤üÀþ)!¸Vg.á­ÞÙ ò‡[?bÈ;½3QÅ‘Kp¾ìàƒí÷SHzŽE•A”¿²šö[öú”SsiH ,±E:'Æâ¢‘>I\–Àª0 '‰·Í¼ÃoxVEÝvÚøâ,‘Ž£¿¾åüL­‘!bé•=&z&ø $ïr¢=. øµÝlÍÞjqÒ}s%üð:ÅeÜ@À½‡ 1èŒð%Xãéýak‹57FÕãyuypŽSŒo(ßÌ¢£ïÞÿ,嫨 btøwlÊZö¬¿"‡h’Ç®D£®Ìó\o¦½(ëU'À;ZbŸ¹Ä:íhõhÎ<ƒ¦Ôäf‹1-–ùÍ”qa¸$Îû¢kŠg[§™„pgWe×£])æT ‹Œç"ZUô­Gè€ì¹é ž6xê£-©‰ ,$ QÕKWü6nÓ¬2•ÚÓ¹xJB£¾@ÑõI|tbR¼¶æîad¶Ï®S¯Œ(Øu¼¢­Á|„jKÛ“Q¢ #–äMµÚ«ãu)™¡ÿ çnÀUô*Ž|™qǬi‰•LtÕÄ7º4.22÷Ï@Æ}¸´k8+ê×@|T€Åyý5¡3>”Vúä:)·Ö@ûÑÖDn¤©ºOçuÇî9£}å¿cYxÄ ãØˆ©ö9[pÆ'˜6'9þံSùreC¾Ó%ðÄ N’i3›?–É+\¬l—‡0Éшt'lÉQR(‡ 2}àrŽŠü5og ãrXÎ v´°·Øçûî$,ýø8âæðbŠlþ„ºÔ+Ë…žØõ§³—÷3Ôʬç6]m’595ybáÿªBu‘…3[¬VDhþ·kŒ} µ vÙtÛ_Cf¼­ ≥~:Æùú:þúˆMSù·‚+{å%­úkž&íd²ÔÕÁÏ‹&ï2`†5Ut5ÇP²ºÓúm)GÒôLÈ›MÌdTþðÕ®oßX"*à†u)©¶Ý¹–ÕI¨äe³©,†;ÿÑíçîëÜÚÿØÿ,ÞÖÚÛÒÿUõÜèæáíéëãîéâßÿºÐÕäæâÝÿ¿ââîõúÿ ÿØÿpèæàáàäü{:r‘wéˆ_c¼™ù– ݽ3*ŠŽoñqkôT y™&ôŒïT¨xRî“Ø‡Ž¹/¥üÔ¥[F·ãP*±yÑ_4ÙÂ@žþ±f‚ç5¤FiÓ›Gú«XáƒÓ¦€e×Ð>ÌH¤Û¢Óh‹›Þ•½õ\YÍ9©Dô¬®ÉU`@ÇÔ4°Ù-ð;ýq>VÉJÆo¹l4jN6êkL–LÇÚâ~“_‚—1útÖKç+)ý‡=ÝË|=tWØsÐ õÃŽÛöÀBS ¾­Ûe¾W~mÐH:л«ƒU+)B˜PÏ}"e¨d×ô­ö]¼Ø¹¼KŠU†j [¦SŽŠÖÀû2IE–#._nón0j‘£5 $vŽ™þCRÏ¿-5@õcpÁõ( ÈÕ‡Ú©ûõ°ð¶Ò—(?Ö‡9ºR¾…?çø©àüžrÜß•K^>œ%”&®ýðÂfq­†ó…”Aª<3‹Gªwé¶\qdýÔ‘§?3‘Áß:—pWuÁѬJÀfVœòÑšÚv³_NßòG%½ë¹1³ò+é=˜vù©6ÑkX^5ÄYÏæTMkr‘”as•CD±66ý+üM*(5Ð~»a¨“h^"Òðögl3¥¦ ÕÑk%a œ—¬…pôë¼*7ßÚä ¢­®'‚øP¥ Ï•=CJ9üH3pQÿãh^>Š":ûL~2¥vÕ™?…:YW˜D7‚¿ÆèèQ¸n%:À*FIcIÇ~¡At€ù ‰ F¡&]`z…1·ô¥—$êßüáJ€»(t0Mgg’z©‘Éa¾#»Ù¥Äv~gŶÄs¥C‡—±åòÈŠ9ƒC%‘òý›ûí¬jd'mjã´Ì‹šS~ïcjñ¡É‘?’ÝÂK*WLðuÁüLê;Êáü‚£ìæ9'³_ó *žº+Ú3`•éÿ¾'J˜(l}ŵõŒÀï—Ëþc-y;\P9oT¬¶¬÷ELyÜì›j›DA®šý>ÓƒÜ=ÏÒÝÀ¸Îè>h ašuìßå¹’˜•V©xdÁ8ØõªnÛ¸Ìç r aFœ:‚ß…"çÌÔ¾m°6¾Á#úåã.x¶xÙ|å­ÕU^C•² §Øõµkí “K…QÅ>GÎwIòo٠ݶ+DüȰ&vü`iXépL +ø8wŠ/øöõÖœ1–q2éü6…DƒÆÛ¯Mé ’‚uÞ*æáZæê/ë[‰1*ø1Œ.ûzåYu‘êYgžS !xS˜$U[aG"룎ôv„W๠Âwä×+íï ÁÞÒeD§ƒ±˜BóÔ÷âÌÌPÄ[à±n—ú=´5;³¥ –1k (ä"¾àBRúŸ^ÿ’Kü¹ßó“$’z§¼\ÜùÇuèH®ÍYíÊg¨5\Iâ6³\ÆRÀXÅŒYXV|úÂVÔ1²`ªœÁƒ“¿{“N¹‰e?wµ+ˆ/_b(SŸ±…9/|Ò ¦ËË]×l™¹ ü6}m–Ýìd0WõcœiÒu¢AHq)0k‹¸Òey¦N÷.“…¬wÁlÅ8Ù?ó õT‹‰i"ÜíìÓ'rð 2aÿª,m-ÀƒõùßWåõS(ËÈ¿-X½t¾·S;ŠÉ{c=ªP€¶¹ClXegÏkï¸[_Q2ÂR‹cú«-„\Q‹Â†?U‘ÞÞ1uÍïa›ÓD÷@눤Îöhö\ðvöº¥Í%ñÞ*ëCcÌE·žªljÔ&~ûBë^lj:ËåÇñKÎÜ™ªúŠ*5NEïôoêûÂÿÜŽåZÞŸ7äV‘súÖüIÝßbmE²WtûJ ÑgÒBA逇އÌCr¯ uKá}Þ+Lû–êLwœ/WÜvÞ‰qõˆl” N™¤¿l¸¸xà>Ô³RE¸“¿jñHÇ<½†Ã©Æ& ÃÔãØþ7ÊžÌWÈÇ!ÇJ­ Ã\ÖD†4s2<Ãlði?ÁJ_ßÁš£ è¯ÿ^ f4ß }7:Oþ»nÏiÐCT\8ŒÿH‹µ¯JÂ_Þ I‘ÏÙSh@hÖÉ=HuÝFî|/6 Ñááì@˜WÜ~bQf¼xüLÈ ×0ß»þt™õŒx2~!¡9ahÔþœ UP‡3nz8¤ù˜ïG뤣ݺ½9òyb^²yÌõ_FðnÈÞñGp?Ŭ”3Cb½ñ°ê+õcÉû1ôb¡zõ›MÚçëÜó%±˜sæ Ì±ƒTë¾’r:$_5g5¨íf¦~u6[®¾w¦Ù7¬Ø«í×õü C§‚ܺŸè©ïv-0{}d3<¸ŒÅxMÙ„ýײFr7øs“­’Oü‹^Sø`DHë<¢P(fÊ…Q ™ü{1¼ÙÌÏvÆL 5íòÊs‘‚·²%ýho‘]Tâ¡eýܬ\!’6ÕÄœ#î‡õÛόՙã/päÔ`‡± Ñå`Aü§ƒ@p¼¢71•’[®&­åÃŬÏuº@=f"ª'Î'<€²Œ²Hþ?¡òŽr3Mð} OÉÆU.˜)}tÔ‡VÙ«I¥¦…Uð3*˜@oA(´@—M̆îÜv@P1»Eë ÂDá:Š]£Ä7鿦–ÐøÇ–iäPà¼m¨Ÿ:•sÆ, ,1/ÔýÌ))sü-nÊ«z\>C±Â-(T«×\ƒm=5=Õ °Jq¾ž*PÒûý‡"6®=¤Ôe57´®'Êœõ="óÊzøé‰_<.Æ ¿ç$s¬µæ~Y.˜WÒ¡t“@¯WïMÉÅ®öcE³8<ÉL¯‹Ò¨M>;u&Fý|J}’TfVF öñP„ñ2aß6µ,=u°9ç|vnTA!ŒéL%˜®[d(…fRËGç‡ÎšÌ„>¼²ö>‚RR TÞ ®YHÓxXÓ8Ÿl¹!“hHQØ5 ÍYß´;TPK¸¢E3ñNëÓ·m¤ßUÔ[5“µ ”›µ³Y\/ ®Ð{ü}\TΘÉh®÷k¸WÑWŠIP±kîÄæÿ‹7$Ž2ã PÕÅþ¬v—(ª*’S­±%]yŸ¨(EAc[¤Öë—õ°âÂzÌG2zk Tq rnD¤p½÷k¿lÙtrýñi ß´uexþ'?¨ŒHñ7”½¥ÊùK~~²áŠŽEÒ'r@bÄQYæOØFÂ&K¦GñcW3Ϙò)ÓÏ×ñ3@ðE&†z­®±.%¦” UGÙWÙWxÔó+ádVKPÜkvÒTQJ¼œƒ£âßóJCíîŸÌ3å4°°°ý?}t8MªuÌŸ1ë}„᫪ò;£1‚Åìž”±q;lZ#5P{‹µso¢Y ¾öþÐñ‰ˆQS®8·hü5Em"{‡^n‡G¿¶ëzÎÅ'­ëiKeÊ÷qäDxI¢Éš'‚mÚÛî…jôaü<†dìB®ô¢Õ  ±ÍÊiC)†vƒ+";ÍG§3¹¸ÆnõJÕµ8UŒ½Ü0€ˆ™4u>«òS½)gpÿ'§™·ÿûPTˆ6Ÿ2!úKü&ú¬øx:+s»Ã p#¾Vc€•f =@k',ƒár72¡o\SY›Ô¦)«Ö¡E|¼Ùž=¡`‰ Æá‰@n· ^vpï %DTã3ÐʼÚm>9i?¥ÿ2×üL¨q }pôj íà'Ë‚ðû/6hÊ!wÈ€ÙØêC0jL|PÅ$ù°¥com1Ç3r«ú_K](‘C‘>6W«[­¡Õ}†«ö´^s x™RôÆâ)²cv¿QT£›s J®Wž*XÝ„MTiͦêü4gS&¦¶¯¸xL”~Öý’ u:·FÓyMtø²bP‹(hó¨Ã°ÅÅP/zò¶ì¶G†üÔŸö¾ôº2ŸúFf-•¢# —Ùo™¤½TÃí·c>ØDTÍ"öÇ«üM€Ü£²P¥ýøu\ýŠuòfÌ©Æ#ØY)Ȉß·Z¶4JW÷g8ñZp&ür‹W8ÂH.^G£ûÅC»ôY‹11útŸ#{¢×#'C4žÝÎ}h°+7óA6ñ.Þ‰o:pçs  ôû»H§[4øò@ªëµóù™‘û§9Zª“kMë £ Ñ÷{+L)¤åebŠbýUt$Áó¾A ¦Ø”é°!šÈ+Üýذ·Ðƒ·ù‡«¬`}Û[¼Ù9ÄsÔç›ãkµÁ<‰ðxWüIøšk9Àú*–¨M¬¹SXyÑ᪠kÅhˆ!šm‚ñ4ÂãR·06ñ"ì5,6 Ós¨è± dıaa.¬²:¥sƒoìÔ» -¤®‘Xé(}ìy¡œÓG6;Џuœ÷{žEÍOMƒ»Ee΃ce‰ÐjOoì­Ë¼éÀ½à2É4‹Dóx;2¸ º"Wë…â—`ñÓà´8 PXÃùˆY„mÑvªìtõ¬5%ճČþ`ÚðJ¶•@³Qô*i ø=镆Ô}vµ†$’eQüN•bª~ð½q37AK*mÛ6 ÄJ¾ŒCį³?6^³ç db|ˆ•®ë+¿WgRÅ%º^‰`>ÉdNâóÝ#—®² òߟÕŶłÄmuy–b‘G,M˜ãhuT7  õ÷0œÃõ 3írëÙøèNqf…™Ú—ñ„a«Ý¾\ÐóÓ:¯ ‘¬8Â?®§æóTÂÆW«Î)¦)íYë–.Óç‹Ñ^dì^µú~SÇíU»ÝÕUù1”½–»^§ýkð…1Èü|ª:Ê"[[4„ЬÒ3ö)ôU¿ÔPµÒz•ñ¿ŒßéOæ©Ìü1gºÄÐÙk^@~L IÈ­="[)-ü1gÖu×s%¢C!@Pò¦ô­ÕñŽ ùvãíRÀò-u£¨0Cì] ¸÷Yõë±å´PÊD6gV«¶>ZÇ”Z:³Q×#Ù`-¹o‚dã·ü”êÆë‚Ê·,qµ¤AHŸ¤Eoba£˜m*.ë70ìàE4¼ôœ gXltN¶@꺙 Ê=+Ð šaêWv éY³¡„JߢøŸîHŸ”rŒBW$»íšÇ ì-û@À義j¼‰MóG­BaÏÅØ#ÊR›Žk,â$ª Ò‘.¡•>Á9ù¸«ÃNˆgŸÆ¿¢†.dçc¶V;û m…õ…éøÉ¥~g¶±Wž&ÙÀéûÄ_ú¢ˆá?,¸2˜üLÕ£Ú…s¤'HÏÉmFÖcD_eàAÞ ú¡êÖåä¶Ø tëú] cy¯žŠÝ˜ý=Bô}ÐÒRþͰ)(6ªì`T­<è×à»Þµ“BOÖ[a«¹2éT:^Ëšò‹ÍaÒ1I2³žfŽ­:gW2¸k¹FÑ«¶¶L'Zh±µ®íTÒ"E Èoœ :©øµ£UŸ§¨8µ£Ùyý•©eå´÷qÕ@hÑq(ÿ^V¾¶Lsòîó~”ÛD¹—ôÜfÖhVp‘€½lô¤†)Èex'º©*“W¼Ó¬<°Q‘üX®½I̪jþÉ/C–»ÔøN{³Æ=m‘M¯Ýgî_]Aî&SÑ„…Ùñi ̯Èó\j4,DD£ãÀ8Ó»²L¡_iS¦‰y>CëSDý…ÒÈîx)¹]Ž#õ‚á'=VÝ\˜1:‚<Æ \ü,¶YOŒ¥ÒO/»`Ÿú¬;ýM¯ðeî “«ÅV á¦4=–l0*Á) 0¸hônÙWlG[YE®øF‘wž FÉúNéølè>Üår˺xúД¼§´—ênb&‡ý×þs‰UA©Òü8üþ·i¢-ŒÞÄÚq¢>‘eÄHÊ~?¤I,ÕätÍ ¿ÁqR!ylU‹Swr1 ßèŽfB©“¦}&úã€T½Ý°>?2çª[@»r³üµƒrŒ‚Uô]›ÌI­òr?jÜ—hÓÃr4‰¡dñ`L¤ÃCd˜+fÁÆÀÑ;fgUróÞ…I¨%@u‘œ¨…¯$?1®‘c[;Ãod¬ú›“Øé<ñ_x«ÓÀt=„ˆäk¹`tN¶Nƒîhl?|ˆ%[:wZ5ýú„¿ŽÛRºgÿdÙcãÚ·´nn‹ü6i‡ï4L¸tzä÷‘Bf˜{{³w3_Ðñ½©tLÿ45–ÃTMÔ7W»{ÙàyMLœîåHòê‹5²¦ÝÝüƒã¢–'1 ­õø©-÷²‘µ±T Çœ@à ]t— aXnyC8cºÜOË–`Ö4|ÔÀªÉÎÙ’ H¨y7${ ê‡/‚¯ç3Ûò«Mˆ”ìÇ2¢ÐZÕ -5hÎfÀ?¯3˜BÓ©@r‰fÊ)#6>Qz4€EÇÅ£aãc 8Ýø´˜/ýÚ'9µ¼G‹SïÑ€­“.mW¹üL¸†&ò9d£¸tP­LYVÜÝaÚ² ª›Çc†_dæv©<5&0íÊ?ˆ »AãLWɽþ¡íSÝ)þÞ/VÊc“;Ëåsg§¥ÆW˜ìü ŽNþ¿í{u¬yTµvZ¹@™} #-‡ô¾æÛâ­a÷qÛ ªUIåÃs‘é‰u’¹Ó©v§*¨J²åöÓw¾é¸h¶·šsßá@ŠßãñiM2¾žíd£œµ‘læͲ/N·)çûÞÚ†’5 Ë¢›{i³½\9ÈAÎä`S<ÚÞd]üL¨UˆüŒ¡¬M\µ½óúWQþFܶÿp%»;ÎÎ\êUìî@ÓHÁ£U¶k8^Ê–åD` ©wîÞs¦î°¯˜\Ëw©䩉6{gÅ‘¥!Oes€—”þ¿ñºæºoÎpÅ2Þ`…0–¦¹Ó9`žü‹;|6Њ£Ù³ZÂ’«.±üž‘z"ûÆR%‘ ”( |¤º‡Œd½Hd'âÀÖ¤RØQ¹óTP\YSîÿìá~¹ç%âœî Ö‡Ê5Uº@«ºYF~6íC6à —Ï]ûºœëS_Ûö~‹ƒü5T*´¢§EzÛÇ5£Éþõľßü=}S˜áÙzš8i³¸'u™ª´Êé)ïƒr¢Qºi¢°Õá– _–RõNv5²YY~-¡îûoöðõQ‘|È!«Û¨ À͵" ÇÛ†ðˆO€Ž/ õ9˜–¼ÀYŒZlW%Š÷PJHýÇå}²nXÌð/±Vûùã \æ© Ï4K´úp[ìòõÂÐJ=·Å'ªkU‹áeµ|\•Á ß6»Y¨ŸÌÝ:÷zŒºeúC¢†lÕ/-9eGÑN¶ãuTÒj4·¨´&‡üLönx[!È™Y¯¶Š¿ßêàþÈFÐÐ vÊTÔïH‚ïäï»Ë/÷o°&H#ñ¼A¶Yz”ùbÎ$[14²U`H3÷R»øâ´ipF°Ž¹Bókt?KÜt­QsyX‹KÁ¢s&cÀq&ÒÏ~€à·¿ÚDDíæbYõ6»D•ãACÒFõ‘ëu;—ÙûI~¾Tÿ­ûc·ŠÁTJa¢ˆ‡”R×÷Sn+¿ºÍ:ÚFìcr¯ªp»àæë>ÑŒ4/#×AÉh)¿Êç!ÖQcüL».Ƀ-PUžÝW-:ÎÆY•iÝÞµ d-ÀèÁ/íèÁQˆ_þ5’ƒÌXe• eô}Ä¡üâû!#Ý?àUÅ_Ü# r-]êEvcÕ ]î;nÜâ+˜ª×M=gIHàÓìÕ?ÈRq „ð£ÏÛ°ÜœnH§xÊyÅd™Ö ¤D y ±=Ú}ð^òý(`<Ç™xqF-°uë…•ÝÓ@søTÄMksá~àå/d5”7ž|Gz¬“8Õô8Ô¡[üb¸MýØï‹ˆ©y‚~“/¼dyuVe^EàÓÃp™i}#Æòôë?ó•‰üL¨ØlzLd8g×/^ÏVà}&242ÇzÆ5;Á¸9‚[ÔÛ m K8»ª'r_D<‹ (ò—"L¤MˆC¸Uú3¿V¤áûÛ:˜È¡ö6Çxd„0¦@¹8æ$ Wy)ŒÃ¶š“HÅ­* ê«ÄgðEEAÂÀw¶Š)Ÿö­/)^˜éN«`ocJâÓÓbü–ò(ÿÓªdb~Xý§íA·_”Îý;Cs´îV3,›‡w°®]zyï«)lY)—<.3{)ÒA󈤣h-j&gíÌ$ã®I€lçNÓQk_!üL»ÂßÊÉ ÞÓ²c+Ïr54ýÒ&™Ì,ø¸ƒt#ÐÚhŒ >ò6RAvL瘤¤ƒø>|òj tˆ¯ÌcÜn‹üNè4£d0+5$×é6â­9X“n”ƒ=³g5~ìÎÞŸ\«F:s{˜ô^ ARçÞ –>—£ííe‹Zbå&·‡è¿÷ÿBNš5÷!¡aÛàHq—D¥pˆÃJQm0fUÓ91bÙ:­Grz”jÒâA%i¯ rq7’üL¾ØÚß’ðK|²kû"¹þ” ×é)Ã&Ñ+„Nè,àòÖ.ÛüRæ¬UêYœÌ}ØhÔ½¿8ÂBw$Œ•gnxtÒIŒÓÈ‹âkFV^³OP`^,m»ËqS5œè…jÎÐ9˜£»Î6´ôí`~\£šv®œàË hÒJ õ÷ˆÖ!"”¢ øËÇ øñµ( d¼¿„¾cüØ$ºeý3ô·ê,œ½e0^!p–Žc,*Tyíûê ¸AõökDÒ°Á5øÞ]€ñúØ×›iœºa·›Ú‚áü|®°º¤ †4ND)yì7¼|hÊÔ®ÌÞk¢öòˆ`N ÊãÜ,Pâ{øee¢‰ã‹OŸ¼óƒ{Ä.°Ÿ4ÎÄj$2º¥W?v“æEñ—ªk{¢ jò¼~p.ù1+Q‘ÕB( !jš!l%ÛqwîÜ9Ï‹y!Bz;¡8núpÔ×8(¼(ƒñ­‘ôI5b©›É[³ëˆð—€;µà1ïûWz’œU>{ü‡uw3ÿ8Ž-i.È>’xuû½À°Î­{AÐÝaÝ^¶oHúic¤ù$1ˆúŒ~è÷KL(7æËAc“ä¤Wû´à4럮~aù5·¦0l²pâ4‡eA눕Q\È"‹È,ð!X,SiSÞ¯ÇZž™ŽßNH%ÃLÿƒ;×ÄÅávæ¶,•þc2èmÁ^Í­ç?š9ð8öîÆ1e+éǔ糧£5YiÏݯÜñRmÆÃs5ÄÍ 0­ÕÒ„MÌÑvqµ‹Ž9%bE±hX­èRÖ$ËÝ”ÇV­šŠÎPÛòIyÚùN ItoþOÚY‰­8¶Ÿ-Gäm ü/Z¦*Ðý¯ÃµáÙzyïñ«ªâì*wë“eýʈQ k¶.Xkù¬)àDU*~ ÛåïÆÅ™ƒ),D­v¼Ñ¢ß›?’XO½‘š,ED£r¾<LÆ~¯ø±üÝöñ½à±BZ¢|ˆxOªhüfm¥u1öïÛGõ櫑늱U(T¥¢À–‡Ås ӫЍÇ'®Kð{¢øb ͘*Iv<0˜ÃOÔu­œ“òf¤‹[ƒhÍÅZ l ?ÿY+&Ú ;„Ú{]`Q*êj ñ×üJ„o¯¬ÐßåíåÒaèö¯:ÝÉ"yJ%++†‘ð–õÌXS,¼­ä-ô³óË™pD¥ÍÖ!xR‹¢ö ¹T†ÂÒ7öÀSŸ¸Jšj² §§}—d×8UTf$ˤëÞ°§8ÿª_aû <ˆð1¨Îô»ƒuçp0BËýâm–]ËôÜÕ&šÛó^~þ#ûL<˜Æz©Ag|m—¯þV…Vfåéï£!ÈÚÖ¥07É鯳@CDÇëÎ ¸s-õg%­×(rmû±f49ÞúüIÞaîµ…«Ôoq»L%Œ²7³‰qÎøu9+åüÜËYŒv 'ä{òž:êªqÖ‘ï³ù·{ÕŸè©C˜Õ@°ÿqÛ‰Äpz÷¯©A^ê_ëD¹ƒ~»M0ê|Ûî×étÕ#L”«$UGI³LËO4uîjçJ4}•ü ['M Ëÿã¹J¾øÄF‘~ AîÇW•˜?ßf4«®[¦°fúöç€:ˆz´.$N«ßR‚êKñt§ì··íp{[jÜÓsQ\ñv(ˆZÏÄæb·Aš Ê¡{d Lv¬âüð×Àyâ›× Æ™þê% a?-ˆA¯a«Ã> Úænfö2£a1äúëRGõ&’ÿXÿYtùžÊÅ"§aÈ©ÒuiüÌo¦..•6é¸<ɺœ1l¾Ñ‹ðr§ÈOî#ÓŽq}R›á­kâ3lÅ¡T oP½k«söŸeñ8á‘ À¨-¿¥h K]Vƒi*²>?:u˜³=EW Ò¢¾éHæMKêm“pf¶ŽÓ«‚fØ¿F"Þò6TöQ‰ ž” dè[> zÙû!NôÛX2ivö?›åݲ’üIà¶êç{s6ùšØu²'L8kÈì†È|_MI8Ï_ê0çä @DÎyó»e{Ù®v?É­0$c’=_±'’ž˜4G¨ºØàNiRaòq|´fšÝK;­ß6X€r’íþ…oÎÇy¶rY߀WAVÅÇ,ñºËx#PSÜSÛtp¡ó½ÓM×Bѵ6„W7Mý‰—Π_¦·Ì hU/ŸºÂè#ˆ^¯a•­?\fˆÖ¹,€ÄÅ:šµÄboL7ÁIoÀþ¹à]òi DqM ÑM(J—ÐâwõüIîîDv0bçØKÿõx BcžCKœß©£˜ó`I[™ '-T>ªàîžý›I·È«Ð$.eGägk&fÑ{KRoòrî— if Vd²2ƒß_¤d;ãXI­}ÇÐË<ã÷àIiͰ·°_å¹à;8;Xa<˜÷¿ôœù¦äÛ°a7}¶o;haýp‚èIé‰UË°Š‘³òNYijH¢ßkù„“EˆêªÀ¦v|Zù·kæ_ý½/.tdB–ìµáØR¨´oÄ]ü|žýaéïÄÄÅ›5U«®_ÑßKûODÀúb›Ò]?f8sä÷½^EïnoÌž<"‘äN‡÷Ð5ôè‘õ96L GN­A€Æwd+vAêÕ ¤6À/V¡˜??âÍÏõp"O£dqí×s[ŸÐ_Û`<Æv¹tÄ*Ë{†ËJjbÌÿÎj}†‡Á²u"¼í7Ù·Š§g³D¾£ÒŽèËx™,°à~gkíAw‡fOŽ”ÈŠb=ΊÆ,óÁ|.”&i" 8Q=Ò@âYp-”)”ö@ÿ¦v‚0 E`‚'ü¸‹Ì¯vÑê<°^P,Âà§¶˜ªþ°=rÏ;?u· Õ!ËVˆ1N¦CÏŸ b'ÚÁÀ iDÛ‚Bxr Šù’iÜwoß© :ig~AUË^pßy£çÓ(Û•›Ý0ñ‰Vb_I›Ã1…Á²bÔí]õ¦™åšzËV€Xš6““´øŒ¦jŽ÷è<™m ‡KdɈt»©¢KÒ mr@/"p[ ‚Œ“Ó²ë'V¼(L oy$u[xí™K±âd’Ç·ˆ…Ýü-KÚMÂüJ@®½«~Y“JPÃ-šTAo„”êÔÍKÌܽqÁ Ô2 øû‹`ÄÓ_Ù[°SVü3K¾ü¢eCß^=‰'[–‹á*/ïkV¤ùÞ(϶7p€^Œ%£).ž)™åØs߈ú)@À¿ŠÛƒ,æ¦Ì`ÔPÍ%ÊÚ£²ì­¨@³g¯`v•˕ƞ•ÄþÕk‚~=®ë Jñ8å?=ú²À¢™ËM,›¹³ùš1ì¿Ç ]7gÓ ßw"ÓÖ–á[ ž*^Ú©ïer–pôtÛBp6Ôr5ßøýDœINÓüJŸ¯„nátÚ\™H\¢–õ6‹ƒSÂÉB¦'9•’‹‚ ýÇ·¥š¦Ip³ï¸åæ ñÏ.4å Ùö0úÂÜÓýg \¼}“×4ÞE¶¨–¡¡Zˆ>ÕrÇzPO$“K¡P¾¿Þr§ñùõø†ŸG¬ëê-µs9\«¹JÚ¨Ôáµf—,kâîà$âð¨¡N £æƒQ€jw¢U$•|l­šÊ{UM°ãÊ® U€Nvð{¶ñÝ]Zov£¨¡Fþÿµõ5 •£Z¸pÖyˆ!ÄæœTp¤~H(ÀvàêüIò4•®Eþi™5épÁVvÃB¯Cr=>ŠA¦g>)Òb0oæFƒt¤Þ…H½O?Ò’ 蛇Øì¦ù¾PwˈÁÐÌ}eŽ]r¼º ¶ÃÓ†W&Kn²ù›IÎ1¢,Ym¥~ÂÝ=YWkð¦½Qèê߸†èý2¹t~ó§™¶ËȬЇ/8'X‹.·Ü4ÒNM 7£ö^P6ô5ð5Ö ‰$…N0³D íŒE¶Á"¤J„\$¤RßMJ².§å5^ÔDXê¼ñ£Ñà/Ý’O2Oe-5T‚> ŸYâÉüI‹œ0Wú Î!KqâàÖß=/eùÚ@K®ÆFžôC©N|“ÿ]‡€ª±ÓÉBw<ƒÇåï<¡êG…]§þ¦Ã14›‘ÁˆØ%›å·ú69  °x‘ó»”T€ÚÇ#ÿä9šÛ5zyߊRU:è ½óSÂÜL:ˆ½Ð#1+œÒ\ò¾¢®ŽèùTùHÌé8/ ž1xØ+ØmÜyV)´þ*V(9­«ùâB&¼Ç•|õaâ˜l¹Ø„^®sô¡…‚-ÉoZm£wÃ|Ï%<ŸÃ¯ ´ô-(Iáß¼ýÞ7®pž„A­°ý;(” `Óâ3J7¨—#"ïÃõ ûüåï|™Y¯cJ–v÷ø‡b`]°XËJòáhz·Â1Ä:Ú¬0[ª2Þid–2.8†äO׆úÓÁ}뀭NÑò^²w;/õ¿”}Ÿ±¿)5óÿ‹|¬¥Úeç6 ,½»G)~Îl‡}¸°ít³»ˆù/L‰Gf…gfË]=Ú™uf¥ÿ¯ïTº¶.mî4„­ V4£„tjó¬†{.û-éèWo°TTâÛLs-²J £ÊÜåõgû'%“)\Ðmúk8#qù'[ú_þÂÑÞ,s/Ç ”©–šÑ €ÒH±™þ²‡cw:à¡§`Q”GâVÙýgAîãÕ±>›o5oµ§eì:ôkÀP:R%•´7ü|·‡•«¸“Lj÷ž{ ðsS¸ºï$›„A½¢Rå’UæËhêónð¿ÌŒš6Y1qÄmç!ºDT’‘Eç§Ã@dPÒyh}е¼ÔNzòÂ7ƒzöÒÕ—fe7†ôŒÁ ª[ôº–-±S 4›äÕfíø -¸¶U‘­½Q™ÓfjôEZP›(½}S¯8­bvçÉeŽ!çâÌ‘FO,ð­Õ4aÇZÄ­ÅÿðÐþ%PÒÀªÜ öXBè]í×ì<Ïh?ñÿ¶­÷-³÷º³½‡ïTܵêΖšåw|: ïÕ@Ûº/¶~}4n›ª®yÈx’žˆÜÂÊüÙR—„ÂuwÃU±¨Ñ3Á»/ľ½)Žp^Œ-ùŽøgV³ï&x/_?_¸±$vÏëÁMð?n+ƒü¨í̤¼jçŸÍœý%Ì6–Ä0bçodšÃ‰ºÝ-5?[Èÿ«?ÏüM”‰-f#NØL9áÏCé9Hÿu«Ùÿ¸»+aŽ¥÷£A4»<!O†Z‹f:Õ‘«eÌñ7\ÀLQË,<ɃA©¬2Én#Fì* Q †štGÑmùåÑ/|ÅhùTÉÒs=¿»=u&rªQ¡ÿ°ÕOâ,ü‘]ÿ?zîìy–G±™éíÖ‡ —ËU<¯d¾¿ÁþȯO¦Ù|µ#Ã~ç;ÚßêÔSÑè mù‘iÜr5ÞïÇ2£'F ¡ÐQúùº¬Ë…Šÿ™\6ì߬“°ÚóÄM‘üMl/3 Ûú\ ˘Då'Àø{ž¸ûþa÷µ:v·À?í5)ÄOýÏ÷?µ¬º/Ø¥l${µ‚Aª9g‡tø-l¼¾—Qtr×*¹÷YÏàX«ŠŽ¹‰²¶Œ5ÂíVì|ÔÌ Ј$Û‘E¨Ð·Ùϱ33\Ò³W•zný ‡Ñ§4¾Ò,“†±9(wžÕ 9¡*œ});6ò.$¹óˆkÈU›‰öÀÔoØžƒ[÷­•ŠÑ%£ª“$õçßh8Kw¼½ùñ#ÿ9¬-ôç¿ …›ê™÷^müK5ˆv‹‹‚1âm—VÝÅr²I–&ežCÕÅ÷´5ZÇ…™0w#¶^\FG‰&±à¯Î£’ðh}¤;NWÙ¥âmPŠm—ŠMÔœ«ÑxX[Õt!©´¢(Èd&VB*rãÏ‘Ud½ÊŸ€eô¸,Ó 0kòbƒîÑú0•/ÿg5\ûÂb+§‹Qn둪rø›ƒŒ@”ý.ð_|@î¶…µ©t)©¹lˆa1ضUkšÉØ! ÈU;óðºËŲà6÷d„*œÔú?nå6©¤nåüI÷vw±Æ Ìá÷T.1ËÆ”º-rqK.¼¬ÄïH-Õ-ìîC•F„³Ö`:6yÞ#Ä“ýŸÖ¹Íð•ôäõs艺7ƒ–ƒ¾ÝfÞA ê¼JŒº0­A\‡_Ù!…œÐÄi×&Äং ÑŽªÂj0J¾µ:]ž gø*ƒˆY§Ú­&9C"_bJ0p\<«ØÐüÁÃDH ºB•µñćÖC ˜ùH·ImHÌ+œ*Ôö^pX¹ Ð+ÞþPÇ >@˜¯K©àÐ<“¯–)=~8 ³£üIæ œøTígm³KäKl©å>Ýà½äSýZkÊWG^RÙW‹Ãñd9`éå»û$x!]ð4+,%íDN ‡)ë5¿ÝëŽÔªhÎÏ|üM*IFdŒ¯-|å®A^xH纋¬ÛLp ˆƒ)MÖløVÇÂçf½Œ'Q Í3x/2Uk†}$ôfwlÂåN’ Ë‹ ¤§'ˆn€a˜tŒ •Ýózvé{"?‹K{¥¦D«šìܵƒMQõN­)„J즖¡Ú­_s³ž€82f…û*­Ò$Ìy Oñ’Ü.¦@äˆP¤e(K$Â9mTÙã›Y ¨²b ^ó'ñ©^Œv‹1ƒ•ˆ?î®\ºŽ2í½=¬’Ä—KnM›Y¬1 Ÿiõ‘V¯¦–Hôn©*t ñOggS€ùI¨äf^w* <àÝåïéóÿ•ÿ#îöôíìÿ˜Þãäåææÿ•ÕÜ×Ûàïîÿ]éëúüóÿÁÿàîêéâÿ±êæëíéóÿØÿFül×'Ö kKô¹tàpž{WYCxÝZä÷d5Pö‘~zi² Gì¬á¯‹BjN}eiªÉÆFûI€ÏÊœt)ê´·Áll^¡nüto\‡öÊÑÑ Çödçäp+ôÇú$‰‘0â¯`[ä`Dõ>Ás‰^Ùï­éo-”š¶=aL¾ö•ɤo™ä.•ýˆŽ€Båè4Кƒ×«Ò9ÍÙZ?Ük¹»¹v„ó….ʼ,H…urS9ûg=ü,cô¢=eá3cþçÖü‹?øFÐ}`sþwƒ×—ÕÂÈ#üÙ,P6’ï,ñyÜÄt¼0‚”N«TĆÌ2@®˜CÈS"£À]†¤“!›BSÖÜÙç5Rr°TIHQXiUØô½³°²öëºfQà}?^æ µCÝéAZ¶ÓÖëC&»&×÷¨8Öò0ÙÉ»¡oÉO9QÌ‘åúÿÝ›à‘ö¢$æ€MM&|²Vk,›´¤TJ3üƒ A£õ î«w¼[ ßiikÆH“k.‘Œ‹e`„¡²>®Ä„+âßüŽI…ó,Ð|_-ØöàLås±È Ú‰®RIüL©¤±¯Ž©zÐ_¦ z8ñp!ÆoÀÝùkó`ÔÂ`Ïq´UÙÝCtBI£¬‚ך2\ë¨Þ\ êö?°Ê ¨Ì¼Ÿ‰LŒÃÑ¿³I¡’<É+‡.’á¦Õ7:G¶‘c.˜­½É·¾$ß*hƒŠ2™¸Ä/Ƽ˜Ú„4EÒ€%#—3 Z~ìßx'«¸ù ±Åä±?Ï—îéጰìÒlzç÷^ )¯Ìs5£^ÒU@Ϻ‰|¶«÷åKb¦"8ÜHzy½ …™¡÷nòkäàÄFßÛÓxhÛ-}ï#zÊüJ‡î¢ ¬ŒãÌ  ±Gη"•ò&Á˜/ÏÄ­ó?O„&8QUM‚è€PZ€i|ê3ÙÕÎal!vjg Oš•ŒHÊ(_[)Ù·æ]û«3Ëø^ä<¤ˆŒíb‰ihÄ[Ñ:½Yö³©ᘽMÓ',¼‰¶{²ˆ½“¬8nC1^"ï\n7nbH5ƒØÀ×s柶¬ÀõˆÌihh`Íõ2PE~?Þ2‘‡É )maÂ6…Er’±\×r¥Eé9öŦHçéh‹L^<+†H™iï+ ‹oìÅ'|r’Z“äC4hÐS¤9ÝÙÖ‰^o9pëæÆÑ©ã&¯ï ’H2±°øÅ· ²nÀÀ?™l3žff?WÁm Nh”9A-&ಽ³4‹„ )SŸj57ÿ—Ëúl&¢ÊÁUåöN:½Û7ŒPôMÒl  Œ;IþÊi&›xÏ[kå·«½•¸«üèWý‚¹†î“:ÏWÔöyVãƒIüL¼¥u60H‘_ê7»:nD_ªÚS$˜¢¯ž ’1³À¾‡´éM£ØL&^äQåÎÎ]Ç/©Œ K—OO _ê­2#Ù¢dÉ÷š ;!`4K‘¼|uÊI“ z¸i©C®5 Aº—¶%˜ùYáOµ¾¦Ôyw!€žÙù\M¡ç‚çª}X§OZá|u«ø^ÛDsHè|ÒµiSûÛÂK8Ú×=I©£ÃuòÛÆ wNáà) ¯BòIxÀ!£9^îÀzÆ¢KݯuHzâ}êqôšñÐ õÑ× (KŠŠÅJH¨_Û>Y€zóØøˆeTs ûm†áˆÊBˆ<»,Ì¥ÂxO†ßM¦R+ý<9™y­—®v}7üL¨Ú[@ÍÛ ÷‘l, –è_¿•ü®¼Á¡œt.¤écàodzóÿ–ŠåÔÛ„ÊRL ¥c49½ŒGþÇùî<ßÙ¼Î5ÍØ˜y‘Ål0E÷¸l0ä&½Ü.އÜѽöK0!ythZWù–M` ß„d}VƒpTy@ä¯ç‹ë±^×W?-5&ɶΫœeEB;VPdÌ ‡.o*>×½!ˆÄÊë[+Ý $©­–èÎ×ÎMÈÐ0ìqO`醡ªKÍ 6dÞ7p¤ƒ«òqcŒóµ2=]ìÜ’ÙÈb8&jÊ…TÄ›8Õã ™3•üMo›ƒÚd­¡ùç"“ÃÙâc“ÇQš–{t‘>`¹Rô­ÃVÖ3²„¯ª$ /8C»r-ˆ u•‹ûÿ€BýJòÅ2ÿ $“OK—<Ôв­JT*I%B¹u;y!mœ{²çÛÙkÏBo÷)DÖ1«2ä³óIdbæt.Qªúx_í&xÍÆ–èHÁu¯é×;•I1Û ®‘¹zijO±lÂ.4ØËv5·‰oö""E?“" ­£ÿ/àü—”–æ ¿mG[ ¨M_­Ç`µãmmh‰M"ty$Ôy[È2Öÿ©vȵ¢¹•\]’7á´¨æG ÄÄ«<=ù¶ÞÌçæ¶÷μûìåO$ºHï'‡iË4á~p¼VüðÐÙeÛsfÉôý UÀ‰vîÒr9ORؘ;1’=‚˜t”7‚N¸¸)ý”„ìYà³=îÛ>Hï¼suƒüœëæîvÖq©‡¡å–y˽îÕuJ¬6=‹ÊkFèsó—Ƕ„Ī17íü£ˆK}”E è%ge|ÂX ³pA =/$Ù¦ÕV&ñ+¾LÏÐn9ô½ùÛ ¹³£´T‡k–÷ ñ\Ò~R´Fœ½ÍWàjáø¼G}µÿϾ¨š‡žëu74WŒ’Я=¤ý €ìàgdÞ¢-¹ÙÏnXÓüí—ÆüØp畵üî”P˜~*ñÜÈ7è3Z+BâŸ0‘3¨†Ìø2`m„iɲV‚Ò¾é½Úéç üÅE©šLfL“uålsÚ¨À.pJòšþ§š­“í«»Ý=ç”\ô¿R¯WV(ýœ2ïTw'nFÚAÉÏKv«ã_@O7v’DKƒŸÆ”:„ûâ[zö–8ûž{#SxOË(Ý)%íÉŒËfä,›Á»½ÇÛFKX Öä4«uÔIˆ°[3ÜEæèBê\í=܆–ÈNÎ8ëF-˜ÂZ°ãåç´ù<ýòß·›Ö5ífõå_Äáü|š³_Ôbénß;ŸNÀ|F2m™Ä²ò]¼G¥©{×äþÑ;ƒ« ×ý8N7ž[ÿuÈ‹œ4rqGR¹Ÿ ƒ!ä.Ýzj´äŠ—¼ ?dξ ¹·£Ò.h56s~¬ºiLþrs®è19‹Ï’ r^Û8.\õUÕŒ©…õë|?dæ¤Öj$õ¼küb®›ix¹ÿD P¡-{ƒ'mQÚUJòNé"ôæ€^&øa«×I4šÓb¨}݈ćkÏÏœŠàL&ú±6—q]2ÈDÔ+×¥‹ÏéÛùsb]\š>] êA}çww5lË4~uùP{‘Ãl¦U§tÈ2´˜<ìƒ.ãywæµ9»`¿-‰¦•§lg$æTÇMRÕ©á¹HÍKjôÛâM0øŠFâöÇgNqÝqüÃ~Y€!é6™BÝLƒr×}v`¶ hïJ&Êí0mbŒq Fœš °Xv‰h—¹´JÛ‚.ÀøˆF“ò™‡Î¼€M¯Ó®'ËÚMlW)¡ëz¼s¡3Žh›¡·¨èmüXI[±$¥%FÁÐ…z̪§:yào™Ú&u~’>¾w½êGÛä v} Í7TÌZ¼ !–æîªV-'`Z-Zz û|·¹_+‚‚@ ÓŠqz>'·Xúèá×ã›”v?LÑM GR„noz7~ÊD®0–®Ò+¬Œ™D£ËȆdíÄûeWÅüÚ”#¼?Ù™}—kˆDtIçI2ÌŸh Æós©vgGçÎîdàÅ¢uÔñ·I´œ _ˆV|c½`$Ò!Rô„Y|’pÛá¸ÒKÀ6iÃsšÒ®’øüLÈŸŸZqÛ±ñ:Ì?£¬-¼B0ƒÕvâ|úÆï–ý›MWÄ “ô@†¨e£ ¦"s&(¼·ÞÒ³ª}Ü×M¶Ø{õ¤“cWÆ3•¸­-1¶PŒû¿œjþ9䟬̧^Á½1E1øn%E×{8oØz¾r:.HÃOúàisÑAŸ¨CSkÛWM’(CBùÄåéä°S™Ú¹Ú`¤DÍAðY_KG˜Ý’×)fØNÄ1åñ{¤¤ô$u,ùI×ç`š‰µnv"¤@’XÇáš*lg —y2Î^JŠKŒ:Á?"jM}U!T6üLºïù W=è$oïH­è„ATÒJíX}i^12Q¶0[Fgit›@ æ›is\i– Uu‚㋣،¼Q&7™dnŸ:«\Ðð¹ë|Béc¢y"dTU¨ÁT t=3N_Ù´7ÿƒKéòi‡nc rÛ»"aDÄc}¢Ü}ÎA54²uYçw¢„ƦDûwoÁ—™Eßøu»´qQâ ØÈ¥÷;¨­P\*æv1ô·zåj²º²¯æˆ³ŒPºµ£ªç"uôc±—b­–þæ¸haA¸‰üI||´Óo‘+ íq“TΦ Ý“#Éx¤ghØ•FøS5Ý„dCaõF¼†mÕE‘^$™—Oì¼Äæs:½31Ç:°ÖyÉì¹ætb«mì2…z3f¸@Éò!íÇi&B¢cŸÁ•¨´ìcy2 ÉP¯Û¸Gx™Ú‹­Ä´‘w`.ïÛÚX$‰$¨ƒË”BØ­Ô¢óŒLˆÝá‘•-J ¹£3^d™0~$sA¾DSª:À¢Y±®äó8°íÊãùˆÅGQx?œ²Æ W‰|áô¯µüî}Švè•°™éÂ}Y* £Å“¹ç-0™klàØ'%š¨ÕvM;t W¦Wìvš ˜„$ô; 4¶+H56\ñ°=sþÚ)?޲¦…Õ0M[汬֟§lv|“Žzw‡é?5²ÂîKƒ$ƒ-‹®(TOÙ뺿²Œ`–ú-"Úk=áyœ‚TiË#þ3à|M¥¯‡dT®àÎþX‚YVþ ú;1Ôõƒã Ž£ËÔ¹c…™‘Œ€•ÃÛôDÕT¨¢ü¸ò}‹š™¦ômdó~J ¼#}NÖ+?3üÓäú³¯‘5ïʺD¡ü}9²í¥7%tÿ³ôX…“¥|äÜ-úòËtç!eÝ„çÂŽxà/f4ù¡G¡Nº¨Bw4ìÆ½¤ÂÔðzpp£ò}œ5ÑÄC)bF½°é€äµô,°ø±ÅÂ2£"ë8"sd?ºŸîe—W‹Âsǃä•b9P{§æå‘¯[ø,LU…â(Ùñ×(ª¢GðLxŸÄ§óÖ¼ðÚåó˜_ñWRç4ÚULhoƒbúS«¹lë_ŠœßÿûFVø#ê¨qšðBÀûHÔ‹ÆØìþ‹X Ê”J,£I JÔxæÇ ¶íL‰ú&µõˆÕÿ Ýö¶„æK{A8¤ ®,㩎<m~È1d9#é¸Ó3(i¸Dÿf‰âÒT”fØÝäVê5·yŒ±¬ír!Áán ÄêkÒ6cO §x2)Wœ+A ’˜p/ðaó¶•zvÁóý‰û ‘êÑ/:¸ƒy,í&¥\qÈgR"ÀM«‡˜Ñ¼-CÅuóÇ9“…³´¤¡E\cË©¦R¡¼’»kü1y—WŽH„´bTé0dYf]†ÓðÙÝ.•Ñd÷€kwBì`¥±€€\ÃyµV,»@ãLÈÉn°»¨ ‰jaêæÁèûoSºIè÷0Æs–³• ]¡å\ïÓm¶Ò@ÑÕZßôÑ`j¦ô{$£&@ò"@å-™Ú³ s˜¤˜2”ÌR{déˆV÷X”õS¼ŽŽefïÚçP0ê·McACY¾ô®ÃaÐÊS¾h‹é‚¤ÓAê/íuÖ/?ÿÀ e>=ªÂî3¤Úq sŠ<¸9îrǶ®GeÚu‹ïk}ß=xÉ0)@s¤Ý!`ó“/³q*òkªª%ÏîÜýÈW›¯#RV–büÛ™u¬ƒR«évê¿õ_ÅñK黺i?pãºÊ ÆüÙýa‘äxÑD¢’F›Æ¨%œ±;Tó2 Ý®p¢ü ¢&Vq·ë‘¢4KóëDòPT–Wóx$ŽB7¢Ñ‹/•È]Yí‹Ø—¾$«Má¾qä ~YµËø;¤¥I^îÙÛwåƒÍ?¤ñ=ù¯-ûãM‡õ s#—q>.^^ýÚ/ç¬I§EÖ]šž®3à5¶“{ÊM…7A‚ѽ€p ze‘°Of!ª/üü[ÅAÙvæhÛ["HüLµcÔà^ÂÕ[*º'˜]Š–K å…tÚ÷f[uزl˜—07˜dœkG¯8'J+Δ³Ý.ÐRL£8¼AŸ¾P{Æåƒ ·a™\†bò®3>õKñóWÓRX¯¤³±(Ú·UO_þÑ(\¹–©%¿€KȘñÔ‚áGfjñ )À>W™>±ð€Ø£¢=e1õ{¦~Ÿ©ëõâpH”¬Zu4uøõÛ]Qd¾D” ÇÍ%]üÛ…xÍ19ÔI`mdîGOÍsV!¼ *«¤z£G <’Bóó’â.þ¬× o‡·Äʹ©ŽÌ–3ƒàxí ) áÂ<Ùà ®JŸ^¯+Q»k=O§¥×"œL6ÝÚGü}d¬ìnnk÷åˆpˆ§nI‰«é¶ëƒŒ«d{RSÞ€93ž‰žWåkñKyàx¦šuN«¬èYÀÇdC>gš;Ø¢h+OiìÏŽBgD3^ÌšCdÖí vújÆ6§¦ ¨½eöÖ]7q4òüÝ-h\ »9ybH=` ¾)ï§…ƒ‘!¢À_ nÀF!:°æá cH…<ÀâXèM¥-[¥“tzBôF] _£[7µ–GN¹™ä°ÍLÞPô zYƒÝ‡¨×p±Ã ¶ÐúkŽV¯øÂª„bÍ +øÁóì(Q§/éŸ4Y=´ÓC,Ðï©’ÚPðÔhCÍ5„€#”6n½F{Ýx€/?ÝB"lüá>è“Éj£6¿ü‚‡‰zµŸ²Éî¾ÜÞ¹ Õáš“¯qq£R2)Ó•¥¨”ŽzÃ/—Ù½±±ÿ¸¡Óü5[*"]ÃLyq:J˜¸9ŸmEöÑ)îC7eȸwß…øÌssª)º¸X«»Òþ àz…;·D¤H‘›UGƒc1Ê,ßã0zÿœè¸½½XºøœÝÙ¢/Ú›v­º ¸‹\èRx%wÔôYDMÆŽ%¤BOÞïÚÍ7ÂÀ±éÖÀ4m´KÒÞë–,H¡‘,¶ÔÉÂC"dübŸ£qûû¡ CIâtgç0_‚$s†ÒH<ŠL‹³º5DÒ¥$éIÄ%†ž™;8A„°ÉÄKyÆWu42¶{ß´C™~üMàI›[ÀDTüʶEñÞª¡­öoÚ“òešÇžÜ ê©gä{thžŒdzµMf+Êà03×¶†U“¶ìÔׯ"Óë‰FӿЈ23¡¤›âzÈþ ìj6B%8˜h0qû®ãÑN7ÝOH¹9}oñ‚‚n Ø®Ÿ°—¨¢[Y-7G?yÂ5´pŸ÷£±{0xóªYoÉ÷¹{Æ»Œ9•Ú†ééF»WºXV¶Ãé^Üx!”Á”‡ä·m]gÝIåÚÀyñg ÁÀ7úC6ÐEnÄC3Á ê £–ÆW÷9iòüL©ÌìB:>‘‹s_Û ïåA¬6µ~R¿+ŒGضŸÇŸFJø—Œƒß#ÜR ¿ZÐeï b¿±‚.m]H¿Âý§ÑßöM¤uE_ž(½)%|–á–qpÑi!)íbVVý¿«-´°)jmË×ç‚…’â¬f†ò‹ö‘í·¬ÇY~D%=Ô6‹€ ˆ t.}íí/Ncɺtð‚äËÏôs†$ó 6q§ü˜¹äË0gèdÏðr‘ ÑÏ>$P‹ÍNÔ³GÀ©G%~¡]=y•‹ï¡{&BºD|ô)Üø£¬:ê'å€÷—õ'a{U#;Ú—KZ¨NüJ2²¿º¯ê¾’ŒGLÓ¿[K4\èiŒ̹`RÙé´`þÓÌ … ZP!Ï€,½/jSÊŠnQËòhÞâtcì Gÿì_ªˆß¹4,»O=ëÆ€cÇ©r‹šùN¥­?¿/dçEÐé5 ›$~½´ŒJ¿ãªˆ:V-k(à&Nü|§©ÑiÈ×ÐŒY`!Oòëć§ êß6OñµÑ>1Â÷yGÈQU%ìÅ·ÅÐÍcê‚\Aà“s(΃ñÐŒö–éNükð–©ß·yÒb c"!§†ô TR³¤$œêõ\kǤèAÊ£‰¼Ö ö·Ó¸Žè¾$ £ƒ ;‹ÿ £™[ƒ}¯Õò4à²Ê¯‹ñ_Æ¥ÚÙe¤Ð ÀnÅ…EœNx€ Ni†ôÂæ y!ïî&ÎÛœ­ó z뻓²6_V<x,И#‚|¸3Ý![@Ö×4ìÐ^EVQߦz’óW€É~›fIf ÷•ç©qÁ”ºhÀÑ#«Ô-ÇápŽÓãíÇ™3fgU®ýï"YáÆ«t`-¸­Á[;Oó`ôf^õîû ¤æ… ÙMn•jç°¸¸/m!€\â*ÏG )QH!~›rOÍE{ÆÎÜÍk.”rœs—)–ÿ`1p(¦úd·V$¡X̦ZÁ ó›VƦ§EÄçÐ9±}‚ô&Xö£…q#çºÖúBÈš40Ó’ddªGÁVœMØW‘÷ESÒ„#÷´e{å¤è–\¸ó‚8N[~ùüLÝ-½Fz(²4AK±ma‰™*¾L^4Kª `#nVý&Ú¥„JCSH#DÐܺÕX’% –ïé oë=‘Gf÷êBû4%¬»±~8䣹ß ™ÞÉ*… ŸöV!"“‘ÃK}lw gU¨Ãè–ov*Z+\æwj¾ýƒ?K3oFr¡¬EÜ,× Äz¦âœ¬Lr%ÜYDl@ch™Ÿ@£È¸¶B’ך>Œ*Üê)üM*«+6µÓTúîë.”~#Þ/Áÿx¦)d†iaߌ'ºûX¶å6ç#Ìï]Ñ×1éUÓ•±ÛW³É®³+ªãÅÀ“&¯Ê…[ûÇñþ Ž, zyø¢æ'jc@ó.•˜ “éH§i…£Œ|Óv dÅ9Ô‹aÖ˜SÞõ˜¨YÙ±Ä@¶^|¸ø‘q½ð'á˜ÆÈ/ʦ%Ø@HÏò²äz’5„q òlû¨/î…!6ÆÁ˜÷Œ]€N©4Ümù"Û,5Šîe%Тw{×ð²óœ[ÝÎG¨Ù¹áP$œÊ'²ïnbPàñ×üLШ'uh;ñš3^/öª* 0s”PHy(µÅ©9ub$Ä} pDAúi.a©/x'¦o¸yo?˜>É¢TyM¶5ƒÿ¥ÆëýÌÁS/ŠÁTÒHŒ<Éoͤø¡­n¬àC]¤òÀÂ9‰YW E‘,ŰS_»ì@š=¨Šäá¥Ê0†%n?‡©ÁCJÏQŽ’ ª.ÎŒ²Tã <Á Ðá™ÕÓ4»h2½! Gz{‡ÛX/ìHð»o2ܳv$ÇîÔ}o)›¹J°Ê>}x„Ês6·•êòÚÒlA¦ƒE·×¹eü°íMú¿éš1U~-â,ü¨ÃA° óòñÇÈ9Ív¾±©˜±}ØzJXä9rÏæï$¯îÉZ˜=ÞR•£ g–ò@)5œÛá$(T]É–œÑï«CJgÅ÷¶Ò«Zz\JÈSÔùq H„ìˆô0Ïnî…,”ÈÈ3ûÀ¯YyŹÍr7£Gn~òê¶ø>·d{¡+wŠîï©öeûdúK»¢:›+þ¡¯ìta«+–료ÎX×hnßú;~8Ǧ…œ<6øÎÍ]碀!¢Ê,q\jÒZw†Co«È‚ÚÓjµ­ÅBÖ®ü9FMJt Sóä~cüQˈ³Îëuz¿ÊsÖÖ½zB9ÉÚ¼SY½ZYÆtT?ÎâISE¯X„›ž&d„Ló9—]ÞlçdB~èAVt¤s³ªçÍŒ-,ò@Ò©‡×{j1ˆ”£¥ˆôÏ‹>93*šsoq'ñ$@&⇳|n·ê5’' ½(ÂN½¨í4ïþ„Œ_#7Ƶ›š‰Çç¨*Ò²ë‘gZ=YNÄ=º|¨_/ÚU »ÜÓeÎéuW‘Ôz$õc­\5)Y…Œ‘×µ•wñ*}/Üü|®L#ÁE ߦt%¾§ÂþEt¤à:ÅQ wƧ8°fÏfoÍ$ùþMŸ„ÁŠÙN94©l ¬ÙÔëÉ6pGc Iƒ[–=”½‘/ÕÂk:®Mç×¾§Ñ£ÒFÐèà÷õ|# ŸXvn@P•׳¾Y$LÃYós„£Xx0’&½£o'審Ð$é{P´o°ÚBvn©ŸJ´˜èÞä'ž(züxfgõ‡•DfÄË03!׌­á¨yªÙÝвw¬Æ,æ:å‘ýß ;ËîœyVY/V9óþ¿+°bBz5pž§*t 2$Æ Ê4Z¦òí¶”b·=ò}X°KpÔ®· &•3Lwïƒx…ï%»bb\òeì@ʈ &N£”›e VI à’òêPI ¤øñîœ Zyw~çOá<\MõžYh¾S$<Ó»4¢©ñaü _æ·Î gh(Fôf©¸±d¡?Ú³ àèU Cð' 1è};Ô]è™ú*,ç¦Õ¨41®Vw/NÕjÐßSkäDH«ñ¶!G‹á[Ë1ý;æH·¨îüIø¿Öº]Ó̆ä‘ù·šïnÄ¥ìUÜ=ÑQKv“ö¥.,yôT‰úbì\· ¤ÔƒW[ç+´²ãÑñwÎÂêK]» þ:°¿]>74sÎ$ßf¢*íýçèÃrK%ò¢ ž#-ŒÑ®¾mg±K–†t‰±Û„¦ï¸-JÑ1ïxÜ®€Âã/Ô\-Þ¨qî’¢nšÒANÇt[ô¬jz ‰KMœ 7ÔædÃÕ~Ýо®Â¬‡"bï[ J"WèÐF»Æ0=#øÍÂ#¶]éSùåŒ:þ ·‰ƒqñ0üMXÊä¶œÈ6Y„6nÇ„F9¸D F1of-5ëî4'­Þ…>,xv!eÃÛŒµp“ç fæïwLö耱¿>Šdíéõ¬˜SXQ¤%A9 ëL×wkˆÀ<ÎZi«ÿÑBÙô»ÿq¯Úúo)û±¦eM°o…f|&“Ñ=ÒPt0¦"ùz¿HwŠÖÆgª#Wê[Fa•MFßÜöb&R¥ƒ¡Ž¹€a#_ð;›Š¥‹ e¦Z÷¥åOœÊü›õUŠÒ‚•K•”ZŽfß.4ŸÕǺ3˜q0¥N®Gñ‰2Š;+ü1®q¢vE»[¹h[,˜H HŸí1ªfÜK#ƒ§“¸ƒ±Úå$Šˆ¸V4¤ÀÕ7  "º¥Ì(mùÍà"Å÷áÝÂ>Yİ¥D'®ïEiÞ,:teé‹ ŒõZÓÒý3=LÈRzß"ÂvØiÚïMÆä)óêšäk{›@º…ñˆÎs€…‹ž"ˆ»ðLßp´ð~™Øh:—•ÍyôÏãão`ªýp@E‘n¡•6ÍÓóÎßøÎs‰ªl鬵ëÐ)A¶UCWn>ƒ¸õ b‚ZÅ‘À7nygªž¸Hùå;ìÀžµªêüL¾ó©MAEÊ7Â…Ó °Œ¥Cø/èH]ú xžC1”øš9„|ÞD¨,· ±¿t‘ö"cûºV÷H!ññfO—VE6C£·eÊtV¿£.à`ÏdÙmë n'ªA>5ž_Át:ìÛa£xj»´Kôž¼š±U6Åå4V„•K«’>ÇÉj¥©¥Þ­f#¤æëà]ëÍõ¦Ã UVJnIé»\ùú $]¨D®þ 64§ žvß¦Ï Ý’e›Z¢›å‘ó+-ÀD¨ù±çÆZl­5°sž§£óÇaRh+¸©¶+ÕG+ÑüÆfÁwöµ Ì´D×»FFÂͨAD:˜´¥˜~²ô|(ÆwfŽYQòq~D¾¢v­â—` xEÉÅá¿ MÇöDäŠ(w4:Ë*ÿzÏ'pžºèšºÁS4w;ÎUï%Ñ­±…O]–×z9´î„yÉM`ÌÙŸ5oýøå~ð‘me)‘Ï1þ¾x}gHÝ¢)h¸@¹®ÊáËÉd&LIÅóR®`WHÖȈ ¨NƒèݵLº‘Fq”±Ž,,.¿¹ ²`Ô™ª¢õ³ÇÀ¿gȾ¦Ä„«ì¬W­Ñ ºô˯f4Ä£3…uü6ùý•VmÆvóïㆇ\p}ïqö`DQgÊ>bèÎÖS¿ê²e:diqPQ—YÖ‚¯þ›ýTø7=ÃÔ¯ÿ—sçÓòŽ^öµ¨r+/GJÉN¢{u`6¡h¿° ò|D•ü®O…ºœ3]Õöe›Wb¤4âIÐqBW¡‡®[MJjM%—äzÆÃì§Do¼‡¿’ÕŽ·‘ Ã=ðø·‘8*õßñ’?·}ÿyti ßxigß'Ó'—È ¢× <^*4uÅ-‹5U]+¡-‘Šþ‹¯±ìùNüY@²h¾C1%5ÚªÖ ‚ÅáBI¡Œ.ü|­Òœ]º¦ÉùÕ}ˆ–{/'ñæ7˹•n¯E¹Ówc+S;ês'Zò÷Ì”õP^HwÊ/›ðä þÉò˜¯ìÞеT›úsQ ͦÛ@æ§Z›«öKÈ]øO¸m(žI'×üBQ]¶¤n›{ <úì·ìëÑRâã^ö‡®á-rB] G"‡l’Ø;kúÞ³ûUG’øO’ÖÔGºw1kª¤9âQy¼7ÿ±6´Pê?§¿p>å„ó¤¬ m&ͺqª±aô©Ûµ}BëÒ›ÙˆÖ7Än ÝÎ ¥iö˜G‚ÕâV+Ä™e6õÛU·µërzª&j®Ls^ŽùH’€õýCA3çRž3ç|ÿíù¦Mz6Q†Ø½ÂÉ^§ÅhûòM™ô˯6†N'Ãþtzy‚‰ÈŽSU±:ØTŒÄÞàw PØXmÍ0‹$™KºmK@…Õ„r#Ô8Àj¤Év'‹¦`­ñ ‹²"9®œ«+'OŒ /ÔqÔZfCئ• :Ä ïìÅÕ¦9ÓiÒZvbˆ€;H«'Ô90wÙ ÊüöáõLØÞµ:¥Ñ´t‹º°àÍ?Ûpˆ™¯?YIÕ‰ ™-vIÇÿ%Ô[çüL«píºÜÿ>ŒKZ[Éäþé×¼•ôÉ׊k +~çž¹rFP©¿à›IŸj Yˆ6bZº¿}ÿ H[ú’û!uk–~k¿ØÓÇiÕåQÏÀé.NJœáX+ìF&³%êªzðj“&Ié7^R¥Iª7úTÑ @e¨4.,‚ü¥Êìÿ“wç`²óü~‘¤W»2SQu·é¸)ˆ…Û¹ŒÇÆñèrÒlýÈÍ¥æG¯gÃ(aPÒµþTYX@çZ·38n4É˱d:hªa—Èý9,'k8öÞ"š0Æ?ð6î§×Ï×–ñ7 >üMzàyðXWíøž™ZÂ*O'©2‰ŠÕECwW"dk‰G”%Óɯˆ?f»\î¤>W:Z=‡0!nÀ‚vè­ âFĵ®bnÄ;á6°i ·µ9o:¤+’n]æEsOže§|‘Ö~ªír;›Ð~åZ°ï`N¬÷â=0Ìs½»U•øm¸WLÅþYE@óÝ­ Y`öÜäÍ2’éAH¾ÝWþÔÍJ¿H”V2]ÕfŽÍ[ÙóéøÿsÚ¬ÑÓýidƒL•üLÿÙBð–½iøæ} tP뎵Q[ßc?„™†/ãA;¢”tÓ¨—ãLtî:í§šJ/çõÉ›ÛÏ! át@§µ¼‚aHE¡J;F•d.+²®•³ÂdO}}ÛZâ5(<{õ9¯@}UȸvÊ[ ”»ÐGÅNF»ŒY±ßõª*!Îü3‚äVÄË£¤¬w9üüÿÃyhâ"y:,Ÿ'µûq~€¼„G §5ʈEÿXD®ÜIÛ0ß5뢷×]kck¶¥†!a†#£\ÏÀûïmOiiK‹³µüñmÇ›¼c'ª[ ÎdÄøGx@<}ƒˆ¶QhËC—pÍ?wø®ÆŒ8&²ql mÌiïãๆ󧈬OÊÄ&q$]7å®›àÁÞæÞ‰šT«“«Ù;èã“Å1á?M–ÞÏ©r3B;³¤MÁZɵ—@O3M¸£|,2)Píúè§pÚÃzQ‘+Éü50ÔÁjqmGÇít×L{½S‰ß{§áøJ5„s޹Œ}Š:ù­NûmÒƒÚöZýŸ˜Z]¼yLefë~ñ7ž¥ã…'µRˆqŸ`ÂE0ó 2ކÉiÞ€âpóú'_ÕyöÓ¦EÄW…Ï{’3êš$üQp_Љ#›WQT…K`œÚåqþwQ˜°ÒÑäO í –ÛmU¦R%Âãå_æQÄ;å›®GräE'=OÆwç9‡€„DO{ú®¦˜¹›}f÷zÑÔóo­ ¸'ǶoÕ½r¿·çšëÏ齿m>dÁ¸¯À¥ü7 9v~~T6³ñufa¥Xñ`YoÿY‡O¬&ó7!Áâ– @ Ø:1Y³Ïqú½àZ:é0âJŸV/gRÀîô$kk¼«ž©.‹Í?±Ê“^ "Ö…^%ÜDS}é54U›Oj‰`Z—Ä ¸/CD ¾°l_îp2«0ªñ™q[-ɞɠp†5:€]Á&šB±N3ŸP&mÿžñÏrp’7àFWþŒ JmžÐ©•ßEOáxeÃû‹fÉõ_Þ0ñu·èK:¹º=ü&úi el Õ¿Ø`U‹²>ü À)Ș,w!°L¼º†N¶† ¤ÐÉúÑDOäY¼"ßbD1ïÚÁ`Í›,´þx‹;¿©ý-jkp,¹tÄ'x½jy%zöDÛ3GM܂߶ÐeêÅÙ¼Åÿnù^•pu©o·õ»Ý ã<-Ñ×<µRž®³ç¨8jË®ü6Zsq54دe A|YvÿÒ¦kè`TÂ#Rß±Z“MÒŘS 0p"áÜ%¬”éÏã¶ç¥ð1'¹}f‹)å)‘|j‚V»K¢G¢³ÌkZ~¾päÊ\v{A/.@èUÀ?ÇÁ*É<ÅÀofh„'»ÊFç;Æßb_ G›¦+k£e0¥mê9×uŒè–Ôáw §ß;ž¦G3Ù”°¯TŽTMbðÏBI짞ξŽÿ޹ ¶“‹º µ¬f$x_ç&¿ª£ƒgâ£:ÍH_þ¯gÚRe¼´˜ž4#œ*Âà ]«ÕÅsF’Õ&ÜŽ_¶o’cìÎÑj2²PræÁÓÅGÿê- ·N›GSÅaÜ®§æÀ¨îºoBØ+Xk¾³÷.õè!\Äf¶ ÿÀý‡™#Þ ½T‘üLê™B!Õ_eþ&2ÝHRp¿ŸÑØKg¸©YsYÜyWû\¡äÀÄí˜4ÙÄâ|£ŽåñÇK]ýu4‘Cc׉ÆUO×:eÞÜ&D¨AibÓ¤UWzÈX‰ÞÕ÷ú3¿6jêZCÎFd¶FVƒæÍt’Ь°2ãß"“—„Ÿåmä!iv¶JKîØÄ™õÚ[!Ï7”E —¤5C«,0›ÕAcì­3µ:ÿÇûíHåmB(‡M¬K~è(ysyÜo·Kå )Ë€ý80Ÿ;[æen¸Ì³þ¿Ü•x¬ö•$ü|­µãz+¼>eÍZ~uÌ6„Bá1‡‡mç†ÚðèåžÌ× ¼Y°3S­<ÂifÏij¼¸Þ«Ht$H 3GTЬFËåˆ,«Îeiê+É" Y62h>/!ÿ¥ô°¥ O£IôxáHµqÀ^›HäR¯°,Ä>À¶|z‘‹&¢ŒSr@Œ)QÕá*]Üá9ä<¿µ=³Ÿ€Ž¹T]—ü6]È[Ë* O¡ug<Ĉo[mäfÖ5#Ý”Èg£ˆµ6ä±÷˧-™1üòP“_ÿ5daiâì|dÚ²\ê‘Ø;eÕ-5¥Í™¸ñ>r¨5î>Ø=<”©&M!‘ìA·?&a¥ÇU&òîŠôîÌŸiî½M"åM,\Üá»n¾³Œ&IØW³û÷ÔŸ=gØß:K|(ABUÊ2ÞV˜òkþÖ玞¨Šp4}u<Í“¶G¾æB›øØÄ)[¤0[sÞ`š<Õ™CϸInâü5ÿü°ßån'Nët_ÈPÖyá‹FPÑÐ Îfi,rk°›^ 0ÑΟ†b¸8t ñ±·€dòÎÊØ¥‹ d†ŽÄ/,+/¤Ï®ØÀÏ•þÑ!üeˆBãÑ+V×,vfGý ³ÛL>@ZÎt 8cÂì®'ýºÕE¾Ûo®òTKÖå%®Ð4¸'Ïš}L»ü¯1ö®­ûÜC>_›Ê:ð·‹…!6mB sò°íŠgX"g× ýú ŸÓ½ '¦0Ùé7½HíS8âË’ Å;5 ¬b‚ÌR-ôbŸaÐÜÓFÈ,<àá ¼¹ú\ñ{%µ è«Èœ‚rЧçIž`á{77÷é(“JP'x¥]­Vä¤)CõÒ§ÚîM Àº£Î¾Æþ¢Pq²ïQyA±óøV‚Z½PP†Ð|¼zäWF°”Y5^bTþóX«©ÑŽF)7Þï£hâ$ÅRA­«¶rÜÔ}€vÛ¯ûÖ®exò;:.¼ü±r·ý÷•#³þKÏG>KØñ…")íœF’Œf²‰3ÆùˆcL¡†Ô3‡~¯Ï­Ì[ütÈ b5ÿÆs†jQUבÒîóXé×#6¬y"5ùIîêµT1yÚM ¦S2ÁVœJRi»Ã²{ãû?›pP{1ùê^]u‚Ìy°xx›ÍõŸÍ ?i 23êÏûv]øsèr;~+Ê`f8IPva«Ÿîéõ}Xáî²í>·ð¬×r?-K“iI‡™òž—!ÿœÛO:ñ®¨ç@»üµ :2ó2¤K!-|Osc¾Šn /ïD⃚¬=¯¤ ëô±à܇Ås©6`ž •TOŒ«èˆô†Â0È-Y@èÜN†FÍ 23,ë’mvé &Eåpcgÿ‘Çù¢ˆÏU‹ÜÀ(ÙÌ{‚£Q. ©àcé9` ¾ÔZŸŠ%Fjé"!A±¿‘6£6Ì’¬¥Í”<;ÑêÞ8$ÕøúT¥d¹rq”m•Ù Ä(¿(º¶RìÞL³Ù—öà³ý kݩu¾ÓBåÞÈ „YUZ«;ô/üìç™M¦”qÀ’t¨ð’͹J+·À_“œãy­^ží‚!«aïüfÈwJt$<´ýŽÊ¸_„É×Z:0f¬Ûµ · ÿ³‡[Ù¦‡‘ûñ•lÆ]®¦do[?4ËíŽ6Ú0‚š]7  Øý¯+AŃ1:­ÈúCDã“8 7þãH™È„*ŸÛN lZ¸^䆈BòÏâ‡Z@íë«[¤sÎ4q^ú¾D¹_qœ'K帤Ÿ„°•èPM žØp‘\ÉÒt1¶’g'Vº,?O£‰ÅùýnR6Ö[}ôvˆ†–‚|¹üL«¡ÏO6ÓÅz/™ûx#YQE›e¾Ôü-µZšüL¨ÞQJ/L—3SÐʦðXÎ+siÐBöf¥kµ¿Áû†-¶JOo É4E¹‘$Xgb>¢¯œ'wó±L"*RÊ®[Ñ~W {àHÁãß‘!oDá<¸ÕJÂÌ {Yú¸€‡Ë倘ÁBbÞ&ÄOó°Õ j%FšäÁ~QË-¢XßdPÓ¿v_ ÓY…~Œ£ m×­É|ˆÞ›Qò8á.Bf]EWXÚl”2ø–%i=Ø ãsý'¬L÷et¾^ËÔÀ¨W­ÍÅÕÁÓEÙ7¾‡ä¬c ›êšfüñ#¸h˧©Šý›>/mdx°â:ß^¶K=d­K=9çWÝ$ˆ;×äî3õ^Gßè·pU¢JvU&Reì½ôüÆ£‚÷q0c_+mä ¾P«ˆ£Ôž»ÿJ]Q¬ϲãé¡ë5°Vp!\|U‘þɯІe[> G ‹ÊŠn[‘ ­~þ¡Ø$r ¾ÏÖ>Ù:`êZë³ïsúT”M (ŽÁ›ßbà¶ÊØáÈ==L‹®'¤DÅîVN]çÓ7t–»ƒcœˆoø»ùö=¦=·Jë®"óE74Æn¢‘üñßÏ™Öñ¿J ƒÎ˜ŠhÔù?Y±úy$ûEk6æÙ6í:ÂENî›]v`m¹ÂöÇ!õDîe}YNÜH·ªòˆ9T¦ÿëi-'Å; ºû·øoñç4qÐzotýŒò©ví~øøhÖ1½Àlo$ðF´‚ûÅÂ+8[¾e†|¡•ý@i‚£Å.Éeô§ªû÷3u 'þÉV)©µ§s‚-L¬÷H „”v½—Kâ{¿¡Ž0Kö­¹ÉxqõN›v›ksI¾¾ö›8Ö=‹’K"Óçz¢™¦YR—üL×RÇÛ¯ÏKר¼g¬“VoˆOtÖæO`¸º¸NÉZq´Žš‘Kw«“Ѯͭ=¶*À\ÃÞ]hü!.ë‡e䬮¸>Wø@YÄ‘˜û¿¾°p%4›cz~V‡kûc2ÑË£ù¦DAAá~sµ­³ÉIŠKb†Ú Ù@ÁáVd‹žTEb{ëŽ)=¯ë‘'Êd£»uЍ XC œji‰Ëa|uOMÁ@#¹gºc\@¶_úi”ÀËPì‰NvK¼´eâ*ž˜Ã4­CWéZbûûÓk.»]"q}:톮®¦üMŸì8VÛ%¬CÝhDÍ$o›wßûOÐ<Ϻ ~´vØþw“De*<)Åjè“{ý /äÏ@ýÒLE&­´ ù§}™—mp18Ñ9ëwSØ(¡7óñ¼;^€w`}r&• ®krrGGϾ_-><»A*èŽ6.mbo°Ïé«â·–×9ÜÆ¨:Ćè™dpû? !T'F'޳8ù†Äñœˆš¬„ŽÅ@wƒ:ä¹¾NÉ/YÈûù¼'4wíÎÅÜ?=;¦ë™¸·hÊÑch¦ÒÈì’#_éSŸ¦6üLÅ#@–úñ¹®'Lõù*ÐË^°'*nÔó+/¥pªÐà¢ã9±V2 ª-&FúƒÛd¼f@®Ò™Å¿`¨¼üRSe ¿æ„w¬Å¿ÐÂ/wµSÚN8EGŠ…ò9_;+ñÁƒùdTnç- l¶2j‚px“Ímˆ¬«ch|i#åËVÒp» æÆA莄Φ˜rF°ó{-u|=ŽPe^ú©|Ù,ØÊ2{”|J°»”QîHއƃý©(P§4„¼ÆJ0$GÜ%¤B„»#|üµvÿêÚ¬.;%Ò2¬E^&×0¤ü8üØý;ƒQTÞ+0û8%c5cÿÄDþ“ã,$yDwrÀ@ õÞ¦þÂ…êýNsckzUÆŸŸ;ˉ+HX¬~ƒªd|L3•ûÿdùÝÚ!ÿ¼¾ŽÊne²åÎŹi^Ë™_õœ$ ]]Ê=ì¾kÔ~®*ù¯kÒ8#˜Y ]àÕ_BÓY•Ø4ò Ëá×mzG âŽX€1þé÷„1Fõ—}\•SK‚^ùì«&nP—L¢v•ÄCµ&—·‹ò¿ÜAȨùŽì¡x+qÔm”Y©38ÄíaÖ+\¦ÃSyǤk$Ú,sàåËsoφÜ}1§K`7§/ÚoP×( †ÃwGüWûåð3J#fny"Ô²?!:™¹è¨"Óþš="Œºo£Oæ¯>„?I2 ìÎéd¯ÝwªƒëF«xYÜñANÿÒ|ulõ¶rõ™|i+=ʃbN—~w)°[nš 9‰‰Êc˜ÉG„Љ7>{ ¡CiôRÁŒÃÆdmWV•·î”ðÿˆ˜`YüÿÍ×&gâ^l—ãÁùr–Ö3~I¶ú›Oē¶ý-´úø½5@?YÌ~Xl…'o£ñT!4ÈQL6¢×\‡¸\‚OV(7HæýL,:9 dBň°VÀAÕ üLÖd>' X•άàçª*kKPf}™èuÇ‘ —É>•(u*d‰0SЋà,–ÀƒÒ.YPÏHø}í=\mà(´Ý&„AäôAÓxq\ç;qÅy*š![€dýÈ!-Ǧ•(3 áXÉýäù©8ÔõYœ°=#™› ýK@-3›eùœ;a;-:À¬wxƒ®Š å|x®OZ¦¬çx¤ÝØMuÑ[SàŒ-¹³a¾/š¡dÞô;ÁA\Äg«k÷ y³Ù׋Ì;˜ïÃ{YBêö¨®Î®Q…\ü» Øß`n²¢H˜4ßtÔö%aÄ'Š…x7¼gø>Ÿn^¼üL³Ç–AV‚™ÿœ¢câ$ÏÞÔ±ž«Ù3ž2$Ñ •ÔÒ…‘áZ#ðTº]ƒs7êxßì÷ë7 ãùÁœMä±ìJÀ2AÂOXÏj —,[yåÝ®;i:EÇ Ü"1³lx`˜FË0¢q”Å¡.ãÒßþÒ» F|èRó_›ltÚ} ËÊ%p½Û^!4€u€C,æ¢ÿ¿ð+ü!H²‘±'”#1Å©Æ'@Dãϰi*»vX…‹†ÿ¸RQ8ä–Òaî.^ŠÀ±G éfyqP´rn‘Þ½7akì…ö§¤RXü°Û¤\…¹14]Ø€½ò\Q‡._éu/²T{¶¹ÈÉ5;º€’Èñ/A%"!ËòdŒï 'íÒõ©ák·±nåc 2”<âhÛȎݵ Ïȉ¹¦[wË%zfÀw:€¤¸ÍT–ÓГ4Œ¸®ðåȸ¿$·/‘KÿfuìO@EFÈÕýq7œÛeŒÐ<_IŒyŒš~*h{;¶K>l²{4rÓ]¦Ú9É>bx¯¦,=5ãé‡wu<·ˆ*C4«}#–A r8ö¿Uhze^›ÁÊÇ£få…Ès7îɬl€“ÑòKùW–ÔÜ×gn,ýnß.hŸ \ápgµâôîü¯’A±#kGצßbéMcé«ÁPíÃ÷\ÇÔ²høp I|¼§»úS˜»b9àzø³ª‘%¸‡†áÙœH¦™ø¤®Èìh`xšsxýÛÁyaõŽñ±–w¬}ö#[Pi¿Ý•¦åo‹ûeƒü^¤Þ#êñ7hc¼¿öka¹”<¯Ú†„fäPÓ€9åCÖN±÷1¹kžÕð.O%ãå2á”`(Âìž°!ý# B@'S™Ç›³ø«¼íRŸr qyùTmæGÓ¤<{Iȉf¸{dyôED5<뵆;º-ŠqÊËs~¿ØzŠ“Ð5Oãï‡s_uæüÇl¢ íÉÈÈ’"îü°È  ùÑÖU¯ÆO9Ÿ.ä8šÞ7^sü,eêpíiknlq¿lóÕš—´À[7½yàã›ëdÌ‘2› ‹­Z<ƒøõ’ ŸußnÓ £’Æò.Í[/ÊT:Áâ ‘ŽLÊ[¢÷·P"z÷Q`ceG]Ô!Tà€+S&µÅ×qÃh…ã'ßð™A׵ܩ_=RÊ¡H_™˜ý?:³¢_¤Ï­°œFŽjÒ#ì×ɨ ¡¹Êÿ @·“ì뮆ÚtuQ”Ùø¶ý½ó]æ ½&›W¼–qû\X3m3ÌÆ>ñ^Kë ñ7~’Qvª„‰mO ¯Å¦œº$AÓÛ5¬"”l_z¶ïü± Ø‘[éþ•W.Gæ!c&T@ݥ߅ÉSzqîY'i6W8RŽ×TcU÷&± á £ýÇûÔôz³Ë|,!¸£–Ujˆí(Âq?e@¬U¤I¾¸^ë&ùƒmîÁe5ϡх€Ðd×È<ˆ­±bæBTpçßs²¥½*Ae;"ÙÆ•÷ Brròôzµ'Éš é]vÒÍë'²üV'àŸ Cr“(Ç­µ1Q2¥x Qmé‚6oqÜÍþ°v£ÃøTÔ{ÁWƬ·Ñ ¸èöžj\ð˜MPd@¤œ1›òW‡TÏí©S‚gø¤/Rk×NêØŸq¸¡DÀîüM%R“À »Ë;l&àšÎp‚¡£ˆ•ëÏõÑÎfe/}ÆËUѰ¹µ¯V£S_Y$¥jnb#öûV(ÆÀ½ËÛ#¶]&vÎ4Hq«Þ*Ür8V[ŠÄÖbc·h)´ –ñ‰ DgºÇ‘¿8äØ”Í¥ \¯7VˆW¹é¤½´ï!çõ_Tšð’X[ž$t.B¯`%ùçHÌŒ£{&ärçÝä­©¤(vާŽ(N[™ÍPÁë‚m™5Öç¿Cl9ÏžV$ ùvD™2Q¶‘·\MA½F»¾@'>˜w… #MÍ‹_Ñ· ÆÓ*Öû ûgö¡EŠw¡…&0+üú3õ9h±¸¦²ˆa$J(å"÷! ƒCh>á)#VìÕÇ…¹'q@¤H2™ù¬EAG0têö‹ÛˆWŸÂñ1²T Òè’ Ò@¤å´GÃ>*5qz×òüª—bpãG)§ÇCò{´ð³ìÙÖ®aóìQ[°–rýæ‰ÏÏ ìA6&C)S6Û‰ª«µ[žRÛ¤Èèü¤þ¸GËØl·?ÝÝê{M?âP£,Kº”œ* \ɇÀFÒÚoœéØÂJ¢Ý2®üJ[ù>:ÎFãçɨ CRz¾™9… ¥WüF7Md;ë–=H[-†w¾ÎÀ„6ÉÅÈ{÷²1=i8¡xà*ipF’axñ[tÕ–|®-fiS‚”C0)è×Þ•GQõ+*ôê§#¤Qì‘Ù?é»nh8dqótgY5uƈYü>G ÅCÓòKª ­ø¦¯%6$áî™Aî¦ BcÚ†c0Ò,i\ &N8þ ˜¢ ³»# ó?¦’O­ÐS3Si>…}loŒ°«r1b¤:F ™ðfêÉsD—RÒfú¶Xc̱ü.ôV•’’cÛlÌ(ß4‚T¢¼³ÔÔõ¬µœZlÃsL¶›p µËOà·B%þƒ;:ŽV¡¾P |‚æÊ!*&C‡zDm¬½¡«o¬n¤¼G×´±<˜"Î.ÝË*3úìÿ^Emkñ™ÅFtÉ™žíÿ:¿`^J¶šµd³cC;æÇ}S«-|ý™æ›QvXÕXßÌÊɪn逑”´šðdŸ^ÍJý¾àÏrjØÀ´˜óeK§§eÔ«µ^Ãf¥Ëü~ÿTçà 8³ ÿ.gA—_©¤l˜”­È† j–Àxç˜n Ø>9Š­õüµ å‰ãªï‰)7:櫈vq}¯'Nm…õ~©:à®|C·x#Sªõ›ÉÉ<0Ž“¶¥¾ÜæSª “ð‹r£c@o ÞenFc:‰hÔ4¼‹íƒîz¥ç3ø€½µc%_[ûµQ›*«y»‘²Ãl,Ÿß€Y#G¬ ¢#ݦKš’›T&â: …¥—§i–Àû–^õÇi°{ÚMLÃ3 Þ\§X2Zåºlz+sÑúÍáàC6¡],Ì™„² èÉ£d.\¡¨ÙÙSud"ÄÆåæ'ǽè°E¢Ö¼ºˆ&Y°ÅÜ , 2Íü³K±ã'ìCÓb9ŸŸ}Yç=“QDå?¸Ý4z'4€]’uù+ñ½‚UAe˜·^†[e¡ª¬.€!bb —·ÕB?ïÒµ4i.ÆÛf·ß”T(xLebÑDª÷lžÔs%Kú)1•¢0§Ï -tôe9HPwþ¯·®ú¯–›%mßPžÍ; `ä>v<ðxXlõÖ¼ˆêÌk®ë>¨Yþôè7ÊÖø5: |ߥVÏéZ7,<û¸t"qkš±=™‡@±$]ÿnÊ­Ä¢Ü@l™qC´,¯ôÄ”®ü.ñˆõfUÃm 0À8Ô¡V©Ú¥@yõ³„I8@’õôºò¾ˆ@H"ÙÌ´ã„ð®|  ê¸Æ¸xˆÚ©±¢á/ëÁÊéÓa¶À‡C¸Ç¨kUPvóojYqu%! @×–.!h“ìNˆ–5Ï4L­ñ¼O á¸ >BƒÁ.>ÃBE± Ç:926ß súcßô«ÀÓ ‡ê å¼i#>|9 ­^+Ýùáö2¶ç’‘—*P›tFÆêjºûO>{I¡ê5ÍÞŸd?-êÏ*ô -hÂU×›Ä:à¥ö±ï‰Ô {_]Úióù1øœÕ;bO>¼´NOãkØ|8!~üÆaþõPÈ›žJó§Ãû&LT¬}¦B[E8„Ku}fµm]Ù€mœÏȼš§¸ÝÎÔžßn‘YbGb‚ÿªÛ4UÙ ûŒùŠÝ­çœ¯öÜ€@£ù|Ý&xe]·ußùÁÆëZuÁ%¼o¯ÚhlbÖ#YNÒ¨üà/ÙiÝC6Eaí`4{%‡„Kùt%-!`ý+®²žxiÙü‡ËÊo ®‹NºŽkHhšÊE•§Ù3Ùëêª#Õ IFò»Ç¡Ÿ›÷€õ_èÄ VúaL ‚s™ØâlœhŽÍT}å㯠Óòy‚â ÓKÛüJ\cŸöQaÏšÈ)M[ïá«Ö6ýW 8ozcbÄÛSÚ7«Ñ/é‚Å “þÕ{i˜9çØÁ`†ÏA2³ïR{Ì`¨b•¿•Ç·á™î)nõknžb²åôˆS¥³•ßAÁ'ì­,|Pb𱕠7t<%¼‰ ÑrûSB«ëÞ˜>ðlÃGŽXçh˜6‚¬ÒH,¨+˜³@d(¸ˆœ PÙ³¯ž.‚°«¹Ü:µÌµ5õgÒê;IzªØWE÷Ãã>.*^NÍ^9HˆÝËÏY&ÆØ£Êæ®Á¨æF^>»}ŠÛ sëçÕxF33½¹ü¯07ýƒ9nâuÝ`Cg3aóÓlV7¹±vscÛ™×ä §S†ºTË Ô;îØKr¢]»×õÜõÕÙ„å|Ô òÇŒ€ÿõé-œ·1ùf¦•ÃŒxœ@[k»ËÀš•¢_ <ÝC§1I5p)RÒñ‡‡µôwÔU1ûûÔm´P)r‚8ÓõT>,ŒÉ<-ìVÞ¸¸‡EÓhN™È¯úC§ãKGí!3Ä0‚è%q7tûsºw?6¾õºf÷×+7WWß§šÄL<•ëekᦊE¦9õÚôÁºG‹½³ ¶noùÕ…IÕdôâÞÊåkh@,®üM2ä0–òâ8ûÏ£;ØH–RÞ„ûZh¶¶´Õ}Á˜"‰^#ïLkRçèˆÌ³5xËzno<…Ó,% k.ÕûR¼ù³PýìÜ{alo9æ*9áŒ9áV¹é_]ƒY%°WÈÕv¯ß±´{3="*— £•ÆþáŒ9”ÖI:h°mÈ ë*ÝÃû»Ÿyr³>™‹…ÎôäâĹh¨ÏÂü‹Û€ÑÏúäœT'²®Cø«ç ·Hƒ‹,¾¿^¨KqÍ9bÚcJÃÕ%½ª=+ô`ûÄ4¾…5 ÈÈâº(²bÆôI žÓ/”|úö]Jµ—‡?Êê^$ø0¶$0’ñõzÅ_LüÆkÀc©H0t9ñº9ੳ¬d" Ÿ9aß’©^ZåHÕXcAÀ«3ÍX¾Áƒéø°£=â+¹µ¼4«”Wv‡Þ ‚ò }ÄaJ œŒÜIÓ‡OQ˜&!Ë¡ë6$ ár„åÆ)â2©×á÷žèM›×h©IK_Ê…òЕnáà¡ók¦pè\xcÀ?­``4‹ ¦¶F¡¸ìBÕjDHŠüëÊ32é1‰˜úbß8Uó(+}xwÁI’Dðúv×bà·üÐP=Œz$\)øÍÑ%Ä¥L¤®ïìndv^³ºpkÊ+ÑÿTpQÞW“˩ךM¥]ü|®âÛÍ" ´Æ¢B‰Qn48Ô¬ÀŸâŸ@¦w·mGejõÙ Ú* 7’é(pà²B\_/¦n—ÿ²øtÁÜŒ¹šO9íu6и[_È^^ 1¿IZó¿èp†#¨ˆÿì€HõNQ™P ¿Ò˜¸á¦JÎÛ8NãÜ]0Àè ââJ#ˆ¿ÐøICÓ¯CÖíÓh¯\bùj½<÷•6%¤>3¦·8 ý®3å|¸âòŠ kÂ&eç<ù¯ªi0ÆÞ7 B­$™Ôú,ƒ+*XÖmœ¯†Ì5Å ×g1 \ýU cS“Í›/d¸þz¸º½âNêB¡Ø[ÿHö*¡uT‰?ÛSßy­F¥äŽÚØm…Ðd¡ðM–|=ÞÙ·šm?×ðmd˜ ådß~™y¶è‡îmíª290È*{Ù’Tðvÿ {ÈÀ‚o‘Bà£WÊ1)Ì»pÜu(‘ƒ¿-Ö'7à zešÚ¬.…æ£Wèr.`Òþãþlu|%<·¹DZbµÎjñ:i5«™"~hãõÿ»ø£I_3e…ƶö%‰ß«ü.˜Æ^!ãì9™3Š È8vØâÉk<ŸÎ¼pv9ÿ!2öŠ0>¯ b&lSYV\.vÆ>ºYšmº´ çˆÖ¾ãw=‡l:!n–ª‡F¿µÄcXÑæ[lU:Žk÷Ù-Þf:ÍùŸ©–_‘Ý7Û¨Ö]RŽ I„wžüj•.ft+QMÁ4ÿƹºÛm ÛØ‘'i™ðay½. Y$6½æOVÈ(­€K¯GˆO^vsŠ~UcÙÒ¶;Ë ÜªŒ*H ‰&æm³v“Fü¸(ïª:öû4½ŠÅ †±·sŒ¤Ò—(ÿÄϸ0·p?j*´´ûÍè}ÓLüM[¿t lÑ\‚3gvEöØÁ¾oZÊt¹V»Y™H6¡Cõ+û—|Ÿ–üÞóYû*º§9 —°~jð×%Œ­{Ù‘Ž Í0ÆêÅçÝÓ×ÑXp¼ÁlÇH²Ä¸¦’7÷¼CzÓ23ï=À»ÕŒ—mxË[#L³×f_±”¥¤Èg«»'B]»^çþî¯^ dLÁð»ô—š+?í° öØ¥/Ë%7…†¾°väHŽ]4®£|ÖY̽~Ù=DçHy ñ.7Ýû4,µ ¥˜T—‡ë:®à“ª{tL·H?·Êc*OggS€pK¨ähÿ³c<èáØÓæÿ×ÓÖÖØÔÖÓÙãéðõÿbíèçéæüÿHèýûüÿÿÿiùüÿ ÿúûÿ†àߨñãáÿDØÚü/l¯¢ç¤¿=¼ç-è“äðÛÆ³h« øySÿÛ—•ŽÄ-:ÇâHÚž’…xÅòçøØ?Ù#B+sܳT]ŸÌeƒR5€­äÁ4$ô›B~ãÌà¡Qû…ŽöiLGsMnÓqn& ­ã3ÕZ™¼±×·åiC¨9¯¾‡8ô@¤‚™Ó g½í,óŠÂí¡ë¼¤ƒ@üåæ®½ˆbžLxoLæéû½]¡E(Cÿ’b.«úwÇî…ä Cv1ÃàºKˆºÌ ¤x9‘y¾Bm©& ˆXöLÄÊMT[¾š†4”Яü®Š!¿Ë.dFfg~cx#ÿ`\4‘4Y†Y® t“VÇÊöèÎ"Ó̃rC“Iß L2ÖÛHm—¾(„E²af8LÕÄkÁÈÞÑi&-ãqb;ZùvIn²à>v-M’…v8 Nc¾î'à5—*™¶p_¢ÎË¿ÉÕßÉ/º‹µ ¢–œÁ]÷§­S ¢- “+8Sq†¨oáhúa²«ç'@þBùä8I2•í^§¸+¿lZƬՎ]ÿÈYM‚Ïñ2°ϲš°ÛÌõX¯nYç[BzqüJNtZÍÖÊVçúTW`ÌgÍP9-ÝѤ౅D+uÔ=™UOa¦°§^ne:øóªs]¯ƒèQ§5‚ã[V«#g‘¯W}qV}s¤ë™%Ïh…€çjn¡ÄZ1yöîØ[q óÔVeÉÇ5

ÐîÕè¡óìiÞrÅÁ@€ŸmèÒüJlšy¥æOUú˜°&Ö“ ŠŽ¾ZÁgü(“?7ü"·5¬–™ô"Ú‡`½°BÜáïÏ]8 Á:Ìœj–‰$˜?ŽYZõÎîU r=rà@õ›…˜£hS÷ ûå;hÄ»}áud ë§P ÿ¢ËßCÿõ;*ýž‡AÆ“9)z¸‘v]¹²ÄæšâX׌ÈçJo-d¹›…ÂÉä}Æý9ÐЀ¢p­ãÇ„Ì÷ј™21Ö÷lJP×w¯W~‡ùº/žåZ5ŒŽT[TÊ0ÆÏ ûj1¨Ø/’ë5“Q´áæ”Ú_1ü°ÇG*…ƒ‰ÌçÊ9ôé)‹\Õo' O„ÔP"ÖJ=$S½‘T‰¾«yœ¸??V½ÅÜ,èÀš„ö$}ºxð€rX¯EJl1…8ÿîå5nÚ<ÙóöŸ±•ŸŽ§r×ç”ëܶÒÍÜ–wó&ªš´â• í´tÀ+¼MLÂA-X¸ÈºG2KÔ((¯Ñ'°“üL#Aš/fÃÊ3cñ±7%Ð HÑ#„Ë¥\Ÿl•4~#µ¶ËÏèžÔ¦Ç왩2vµ§{ê'AØô( FÃUî·µœÞ9$:ÿ‰Ûê苆=ºÿ"O@Ç@køI05ž˜ŠqŒzÓ튬œ}4¿à"üu„îß&s¶ÉÒwÓ‘äAxvUví´‡Ï@U°Vvã÷ߞˤ[bãî®i„ÑýSNIj“Ì5ÀøÔšJ[ð¢ ;Ýÿj:÷g-†óTIp‹wìž/$D9Ö˜,ᥠNn|•&C†¶çê üL¼9G(Ž@[ÐÀ$Lõ÷I^Q­ËMdŸÔÐôâ -•‚¹^ý/ÏíŽÿ4ÿ¨ÚÜÁàŽ ¸¯‚Þ¾”³‚çÛç(*>E'€ìŽIUîBtA÷ÓÃY EŸ¹ù«³4G¯ñp¾|Éc¢€Õ¾Â¼§D @vJˆ‰é÷$!ùɬ«œ&ÏÄTü¬­ŒËʙۛ9'Gc؉À"Ó®@®å¹¾v9zßËhy&§¢vÈ]GnÂQ-³7¡-­œI³Wª8›$Zánø<—üX×îå×¾W1gQ&QÈrKF°KTòU=KV®Û^­‹Ùçü÷a*<hš.ŽðžE/â%Ú¢8ƒÌ-:ޱÀ+»»•ÈÈÊ] ð?Bòr{®H©*‘uO:à^? Ö)ÚÖʯY§×"å?0°~Cž8xB"0¾ÅÈ\úäEþ©¸&eès[ÂtÓÄFûª)”0óLtÍ/P¼VµQjò%¶äæ5A8.(ˆ• ü1–Ê?gI ¸Á æ±Rêæ;C2@ùmÀú$}H÷ M=ÌŒâ=F+§OöFOVº•ò Åås E¯¾-–ÿ-Z%ׄüÓZƒé;Cû<~RðÌ´2* î\Ý»ò5T>òÈÑóíÒy°\ NõèIñ:\’zˆ oœè]‘5R:?ðþ/˜™E—Ea¤ þ¢<|®MÌõ¤Ãa=l§+¥!°ç} æ\›c†N|~‰&1èÞ{Ï-R8:HµÖôA='O>ƒ­ðj“ÕÛ£ê;UŸž !¡†ç-$a¯«KJÜcsop{KºSÛòVh­?’ÛéKÕ§ëz@K½‚å:ÖPmѸu4jÑL¾!œ%MþCË,V@Ÿ½?£=éB´kk@L$ÆmI›‹Ô N¡G÷$šw¶k­}î°ÜB¶øLW¯Ø¦\£Gi»^>;œ¡í[œœQ£­¾ï°R(ö’&ŒY–lòv1w—Äm®úfÎÑ=q1ž7Ï ux˜Œ÷ læp«mÄY§ÛÞ®ÒVÜteE9FOû"®C¥5(‰±H¯{ Í-?»~½yöĺgežýM”KÌUn·<Æ ŒPý'xr`ðù¹óì)¯Å?Íss3w0þ@¼Àï²äm2D拎¤2¦ü6t>?ã®L³C™ä8ûõ×Còî6Ù[¦qEYºÛàÑZ .+€RÕZäP˜4—YòòmÈ q±A6¢Ô(ùJp_ocØ‘%“<"ÓµÏ'+yW8`KS–?  bòâëO_ÒSÝê¨LÆŽœeÕ3w‘_ûÔ²ûÁcÜú”VÕç‘4ä@Q'¶Ð=¡ƒ‘¤zˆßÒ8ïâåܰ׽Àoz´ÒÌ=ZôûËÂÛ;wù¬|qLuB`þ,{¥ ÔŒÅ7U”åÞO¼PžÈ ¶Y茦…ÒigfÄ -¶Jï¶¹4ùì_ÐÝŽ•y¾ù‘§µû‡·!û1éi*¥då ⟜KçP6ñ¤üðN«„:Øäᛓ¯+ôhõH×ߦø¹€ôbÇú$…³G0G@Â>ô@Ç­8>­²‘Ækýk_’C¿iv_åYüŸÆö•OÓÍ—E”ýð¹ÉŒ„¦ÓxjP­È ÉØIÏÂò_ÑRߣ§ÈcN£29‹/AaÉ`×_uäºåüë2(ãòX^Ê(ƒÈ'²sÍ“Ðæyså´kÜ@^¹#s±” «Wê„èè«¡˜¹Éí$²êÉ\¡Iòµd—¡wnV¾\­f>6ŸŠªÞôÎÇðÜ'„Ç©ÆØêwŸÅ7eFÿ°I”ùî{)RÝ=ƒÐ¯X¥b·Т¨!¿]!ì€A¨kÿ[K<‰Þö†ðŠ'Jj,Õ×à SP®'>'N ¬¯_wªX–Y¶¿äR?qC£¦£–’På©, Æ:¢A=$¡ÚÇŒ›è“1[là¸#ÂljŠP°¾óMÖ'úÏgÌ‘§§û¼iþFN@$TÈ9í¸ÛaGænX¦ˆ´‚6Ñ2ã8…9edVü˜{usÇÛíÅ(Å÷vW%p²“Ç][í|hù`Ótûx‚Xu6Ô;ÜQŽ*f1µ¨îIr÷¹Ê¦œ#,y)¸\  !·³ø/Uõçü›+Ü5w”¥¢§\Œ7`Mõ…xιAo«a\â`k;(4´D¿én™¦ íÆý›×"pÆqG3?cVìãŽ/ªëã~0^uÇÌ#BÜ·‘)´ƒ€ZÙÁ±ãÊÞåi<õÅ]´Hylû40‡ƒš;Ñ‘Ža޼2ˆÇÜ9¾ÃòJqÏîsÉ‚_JíÅ”óµ>ŽA!m¬Æ% «:ó-^€^üwüM*Õ¼ù1[-¹¯n¢Š-Âíg{+°4!JhêÑ5)?’> ò4tÔóDXÄ5a§ÒYZ¢¸Ú$̾NÚå)§…X„õ$âJÏ é–àVöçÓ2»”››kƒT¾2µ°ÝŸh Ùt^ô_¥ë 8 wx,ñÚRc#§l)´üDÝE¨Åì JЕ„.åÄÍVäX{[¢ˆ“ãÔˆª³XGtõëg~›ßŸ—å_`»Ž“Ð"æ\'Žk.ûø¿T§‘!:Š‚Yí=¶$¼úhc”Ö>ûïç[]?ÎÝw¸Rnü¯0óñs-ëz× )Qv〖nžáéô@©ÆEýG&†Ü6±óPý4¾VçHÆßMwïZ1øCǶ"¹bf¹ uà”EyBŠ/ê õµ÷Î5ÿñ˜´Îzx ÷ë´UŽ«OϪûUnj3^Â!Å%rŒ&µJuAoü³—³¡EØNb"L#Ȇ]”UŠ1p+—oʇ&H6ò­ËêÇ L¸¯Fâ5Ïé™Uˆ¶ùŽî¤D¸uÍ(:=2°‘òÖJÊÇv &¹dÐ1hqPxÙ™ÉúqPE4%"æäZM­ï./jÊŸüJ}Õÿ½h‚Ä‹ —ž]¿ÿPR½¨Ÿ¿¨¯ówPmÎA‡à]tº”žóì• ÷Zs:^£B:íý8‹{_xŠ$}ZM1ã¡eUŠD°= GñëÑÉ~ú‹씹æüÂ=4wÅó Çú ¬¤¯e-Tf†/„+(Ô9¥üô¦„úï ÎR‘Ä3LmU¹N~s mP'«!“vÞ±¥B¦a}b¡ý‚ Sbõ)½°jé&ÑKõÔ…f)+qÇÊ5%È!^ò7›ºÃãŸï©ÜG *|UñHËÚgy,GÇ ¥úší 툠¤æšºü®~k>)f`"(ü“Åž¢¯fY ç.º†Wº.ËVz[&ºÉRKþ\B¾2P<±÷0G¥w8B‹w…<œêÌ'Ÿæbp®¶©YÎæø,Ÿ° — èIœõlàAÂ2 ƒœôÍAõú”#$¬SžštÛÀŽ×šÔ ·À3‚À~‘ÛI skš3©]5&´õ)¥°º:çyYÛ«¯À,Á;óð¢YÓ-:ßßø8´âAë]žòë:©‚ЭO¸…Ü­á=V-LUlÑmÿýI(ÐÚºœcQò³%yaõûý¨ÄÃÕJ¦•LÔiœ®¢ü°Ý³ŠÅP9ùKÊÇ]ÊZþ•ñ—Ò)iw],‹‡ºWëÂþ¶íñá…÷Uäbõ*­b+ÕY±% ot%dýx"!ÙkÄ_aî«Á”|”AšóéšíϵÒYf¤" ê¥p§Ù[¨qü™1a•rk¯%å;õtűx¦ÁH®áŠãò3š©æ4R®K|¥:ÁË6>6êɨÅ=x‚8”Þ°œÇM²HæÇËÔr¶M¾â+ùù-@ÍÇÊ7RSèy¸ÚI"_#üe§ö _¦Ü¶RÓ€‚Þ ·³ÙÊ” Þãh^x¥¸îØ2<‰2Ÿ7²ßcwÛ¬ÌK°Î`¢ü}boYj‹Íþý葇‰Êø>7Ü­w—™ï ñ€_顱3™î’g_›,¸|¦×ƒ wÝ‘ €ÜCŽš$üx¯ ¶™àXþ>ôŽéwÊ6€kú«x§ÝÿÉßSÁ`T}à.Côñ>ŠEŠû‡û 9ÕÃh’nç·tW﫦üîrŒ‡¹ý¡¢—¦J©“ÜqÁcÈž0_ŸÅìg§Š‡=e(ÿ˜î{´d[ý~»‹seÔúá0‚°F%Ò²Nó쮥zM #Xú$xŸú&üƒÔTúTy{œé™Ð ‹¹Æú7oÜÚÝä=C(äóËÃî_=_¦aÀgâ­8 HS¾¢W†…ÐZüîË ¦q!3ù¦æÀÚÿâ]Ñ/&Ÿ[•-ûǤ–*^C;@E´wÓñûe²‘Vë$¹Å€ÞÊ+ÿ £UÏ®R72Œ‹Ô’BÆRO=ðò®•ÅúÎ:ävuÁ©¸éJkp·²ÏǼ>ö.gGfÓ³ g_±žŠžº¹+à-Æ’&ЯcÙšnKQŸö$tAÎz›ô0yŒZ`=w³X†Ù¢ÒÒ: À ø“k°üM*_ý’!k°'ý1õpØ/Mùã: v’Byüðj?BSÓ|½¥ÐY7$žGp5(3玶 þ۽£‰Q:Ðw–¹h>`< }Žg_;³á–\ùÖ3’`%¿ª›®j“ÐYˆÀòØúµxêiNó*UER¹‹Ït¼”.¢AdêŽ2]ÇåÚKÆA’ØÞÉXí¦”ƒu•wuÕr<Ï9{„†oe™íË*?±´óïYÝ⽚Ì?nñè¬$p(õlwK3gýZ;NYtáÅ ò,û­õ7û¡6p9 ”q\ wý7—e+¦ä”p´uÀ5pÉtüMD8£Wz¥ë.%&]¥U"r ;>À µKèÉÔœYœåhéþ#ŽMYƒ£#†É :…s¶ÁþüÄ›ß ù/Ïïvß”F. ¸³}»nûÊ26…:(Â'È£wG,GèA O¨È8Vÿ±¦áѤF¹Ý#þ’Ã4¯%BxU½(éè§ô³¡WÆìÚÑÃpŒ€§o¬ÅçöD®‘s ¿ ÌÎ–Ž†¤ÐÈG&ÚGñÛÉ ·j| Ìm¬¶±yß>Ì¥;B¢‡SOü`1SK:›ôÃ=Oj è};{õ9EH`Œ+£$dd{åÖû‰KOYMõž,~Bs;È.8°ñ²«óü°ØZ!‰H¦vfCÖà“FÑA¶µpŠã¡I 6JÇl[ Bkܵ³à—Ñ£Žº8¬iˆ¹ˆQæãã`,xYó——Ÿ eJÁÒ…»®ÎæYÃý…ë¦hÃ…`·´ÕÏ“µ²ä>“ïÞpYm€½åö‰÷ô A|Œ­l‹0­º–VÁ4ŠJi†7mÜB' GÜÿ|yg y"Ž?îFÌ-@Çy†V¦àع‘¼ö¼èpeph“?ªB}Ut ä2ÙLÛ§³·õ_A*ô¶pŒ³4b&hPá<¡ ëbúK#x®3À[dtÀU¶CÖU} ߸–"vãü6@ ÃÁû¸Ñ­*žÂ¤(L&+ŽceüÙAl8‰‰ºi}(á³hž¯ef9P+5ÏÕQÒLç!#ÓÏrÁtQèµSO$ÔýO\x½‰o+ªðÑxctõøÄù­ ¬ì΋R‹'Å4'£ #‚´× –÷7ek¬cwrƒ•ò{L›9‹šÝƒ)Áð^(1Àæ}žâáœÔW¸£WZRd7Ùz«§3Ÿ;ø‚¨ÏÚZA±AœvŠÀÇ»ÒÔöˆGuð];OZS Ú^qÜ÷ÐÛcykt®Ï•|)Î+½ajcÐVÀÞµÁ˜=yg”¶ä•wöN‚Kü.>#ºæôõæŽa6ns‹¤ÖøNˆw&ÎÇ8ÛaX2ò;?ëŠJ¿ÛI©"çä‡zŸ@µ$²æÙr:áEïAÏÖ’!,µ ßà—oã{S{jøkXÇ`ŧۋ3¨?9øI/ÞŽeZ ÓdÙ†„Û…Dëi´Á´ÇoÑ…ÊQÀ¦è4å;ù¤- ' l%QüIÉö´FøüÔ’?å_íø|CÜ*üRµƒÏ]¶Lƒ¯"Mû,0‘K’Îâ=y3QC>—H‘VUïMûÔú@‰f‡Â¦zlC÷¶"‰Xûz%QÛUÉp“U­ëzKpš@`È1?ü|®½[ÀƾK‚Š­L9lÜÙU)CVÕ©UwÝŠç©B°0–å…ØƒžêOFc¢áé{ŒOFÒQPl½iJö©eðžòäÖzZ;›qFR£Td¢HH®Ž¼ÒZe :‘·…(¼[c^UùÛÞ¾L †  f×iªATÅíçAzï¡![FSåoœü”—l‡‹ö¿@S»§zGŽÜüêÚxÊÖèÁ =ÆúYkø'Œ¯V¯ÿutv ´)¡Bd~Ì,*V¥óT±K‹F7„U]¢YŸ1µÃQ“4-€~ª\&ÈùZhJ€—2náID¶_“U¤ÛK3a0É¿?²û3—ù»ÕWP©dNÀ~†ô ü1óð<ßl2O`‘ˆÎ€ÿ’¹§è;RŒbÔ|#¼{ä^»`-)¢æ3±F³4c°j‹ƒ&;3„LÓqýÚŸ,Ù8Ô¹z0µÙ…lô‹?“W!€öWà-¾ {צŽAŠeǰCQ¼ß«L2ó€ZÞ|mß©‚×ÞAêr=IõF,X± d·W†ssë âÏ­X Ø3›mº™†…Í@¥ýHà.-OÆBÙ&î *šÿP$CÏX×6M˜^ÌýºÝ*ö¡Û™/•wÉl îkOŠ^×7Êš¾Z¯å!ªXÔ@[˜…ænÀ¿ÊF8d-ü¯Ñ<¨Z–Š@ éqþ-Á!°@àŤ¶ä—gÏ•q§Q¦@·0âÜëjróÉ‹¸nÝI”Ññû 4% ÿÏk†~;ú–´¤8/dm.×>@˜«ô ´ÄÄrõŸ Qgk;(‚…„8õø[•Çß<%ÚäR‰œÕ±ò‹R.¨·2\Š.',vK»‘¬X®"Y®ðÓSÜj¥Fø~Ï-9U>é’ûîAcs³Enc+Vv?^õ¨áñ'úùjòÔ^€îå.Òþ=F:øYº2ÛuêüOs¿vÛôê6-³\ÍŸ\žºiQË)ÚI@ù¹‡Žfü¯×>Æ0ð¶+‘$wE!£¾ÛÙYIZ!—•ßbáM4dU gâN ¾ {2Qpȵ&¢þ–ú•ù¹ß Ð<¸0¨œ­0§‚c^Ç9:îbáJVà%¸óõ.ûƒ^K„xc÷xû¹‚þOsÏÎßèI&õÜØô‰ÒL®`¶´¡Ü~ bn’É ö‰ŠŒè­Ú°ºèÜ8ŸÅ‰¢C·WYÓ¶“ÑÆÂ÷y´ªoO¥‹8ôÂÀõ…–4YÓK²§fêCùzƒæ¶îþ +X½ãN0C7|9³¿ØþFí2â3@búy6ØÒÀxÇÄüll°è:°fù´þJj™EãT¶^‹Ü¿ë“—Ñ?—$H9wÔE½åÙþS]¯5«$Gùõõô›ižuÝ—†‡[j _´<ˆ‚Ÿ¤¼>§ ŒªÙ‰?(j” D¦°2Å×bü±žZøò·©Œ$·ß£ÅK×åúq°´²ôYí–Ý2‚(· #šÀÞL}dÒÂBHßÉ%êk©,¸Î–”ô4ÅÛŸ›M¥o5žf^w*‡@k&~˯M zeÃ_FÚZ{ m??&¡à0+ èÒB©ò£±²B“ãMqï…Ö:CT8oô8$äô¦ç1…ÈÆåñ^½ÃÜ[.Rl!ü?ê&ñ7 › ɲr°‚AöL»6ÞØ°ö=³Ž§1[O!ãü±H#›¼‚ÃH3ŒÞ”.àšãO`æszLë›~ ®¹­´¶„M“D ‚¹sk³mP®CáË‹U”³¦yKé;Ï&+ÜAÆ#RέoSÎÒÿø½ÿ@âýoš›óáñEm1´\£È’Ô!–·™×⨺¥«eeãœ$@£`ù_ŽÍ8U-$ƒtÕ\ve?àJWþ¶ÀêQ±wÃÈIh9K¹(¦ÈÊš-]ò~êh+œÐAKÚ¹rn/­X —ˆ‡ÒjÇpl)†döªTñ£}§Gy¤9š¯WŒQ:d`þCnþcv•n7½ñO_eiL€åüDzµÔÍwLþƒ$‘±glÑ3œ¶TJ“ìþÌnže‰Ù¼XN³òå÷ßjlñ½g­Òÿÿ„7j Ðè çØHœC˜‰;ìDЧJåÔHÏ ñ ž‰ßåßC ù¶R¡RJ„ÕtYõÎã}þù0?œºTüì¿F¹ ðÛ&… k1ŽF8#ÌØRaeŸæÿ¶ab @q>t@Æ ˆæ©#üZS ¶®%†’]x<ÖèEÊUl,N×6â)¾µ…Æ>[Vm”aŸiôä7c{È?3ZD…@nŠÝ÷Û½ù’Ø$-«ŒŒ~|ŒZͨ*‚ø\K žþÛsÍG©ZW‡×èoÚH_|‹I`ÏEëøÃ ÁŠ$m[XôQáV8²ª@:â¢fŒÈþ¿¨|¼·Ãè´² Á`圖í"%¥ƒ>cê| ¸_’ ý õ‚6”¢ñˆí¬:4í¸ôù—:º~Õ×=Ù±°QÛ¯ó$aËòæaF„fŒfy¥vÝgÖÿjdº›rºzü„ð‡’8`koûBJí @Cv{ÉE^ÔÒ·Ÿ°Á)¦>cÏUÛﺢ†7Š¢X¢ÝY­Z÷ŒÀ?.Ò"˜~f[Jæù¡ÕâïOHØrØâ8Hp‹ø<øÑï«¡Z±•F‚±W®Ãj:6ðùÃÿ4"·ùdž¦}RèsTV‹Á œkвs* ôÖVð/'iåp«×E]}ùMì ÷ÑÈ«oظ$e×ý,¦8O]CgùFImtzß¿.NP¡ìì¸J¾øYµYõ–Ž¡ÓzÈ£¡CÞÙðSß}3Æ@üM,qª~ϵ¬{½2Rh5‚$»ã1 (”ßnîZ¼dÝ÷ŸTÜýl¾\ëU^®€`/Ž8É §‹Â.|‰žã’È6äÎôÏ¿y=mVitÁ³h»™Þ4qäØÅ3›\¯P¦5[<$çö׎Xß&:2:¹ (BNÔÌSøy©HÑöõF‰9åê¬Iܧǣy„«¦Jµ‚i³èÞàßÞ©µéÕ¢}«K%k¨-´,¿GcZô}òÔ$Q xì$ê÷.o|äý´ŸÛÀ©¿oH:ü±ÆCBYyÏ·MÌ—…GÓwbèòJµF…£%««ÐæžW£J핹…¡QÙ¹··0³Ê°­CÆõ¿Ç/šl0*!XÊVÑju›«À?:Ù )Y^|n(–˜¼0…™¼çïO˜a§“Ã-îwþ}„°Áb|nÏY`Ïæ¯)9Ð%³„¼îä³›P8öÔ„ßQ·õ#½ì•N(lC—.ÞSÐwtlà˜Õjƒ'u¸üV­µ)sõÆð¾9Ê’L†>=ÞhvÂü2KHΚ±öˆ F Þ¶PûÜŒmpŒÜIx6€mBâÈV“#V8 âhÃFwÓpET ÏC¼T’\?ˆÐdéO@Qò4§héƒÙð LÀ(õÈHj»c| ÎÀØ`pµapˆŽ¹ò5àÑ×µe¿…M‚ìT¶‰“_Ý•¹´N £ì= ÉÍTDiŸöYUFí)ë4ºÁ‘0<õK¢kÌw#¦AŒî`+Hß•£ä×Äãµ*Ø8*¬¾ÉÕf! VÉ\F ì;ÈÚž‘Â_cç´7‹;¸”rmŽîFM#Ä Y´" AÚó° ïü.Xá6BØrŽ÷—«œt¼Úx§9;ïßAáý°–/#3§†f¢­×íôeaçò`1g]­ŽèB)üCG:éƒßîƒ@Ê©0y2`Ò<“e#„(œßóþ5.•[´ëóTuAô¬BÂlkæ«7uí–@„,÷„²f–š£—;3ð9 4Šæß÷›$ø#Ûü÷ScV€g¼S¤~ù̵úÍ&ìjì…FIêfÕUå,ÖZÄCVMy6<$¾ŽxÒ[°p!€Šçö/Þ¹ì5ÿQ–?êþà {üšºU“.V\üüJcnÕתæq  mæLi?=ðd>q¤Z2Š '¾ÑÞú(Eî©|¿œ÷‘V\òDH¾khzœ ’ÈõŠÁ»¥ 7Éæ¸i ÄÅ#VðÒÚ5°Xoê$<‡Í·¬ç,ëÄ©Ìh´YGª±oAáô¤òÛ’‚€\Z©^]Ó>ý‰ë58¬ñÉ >M3JñxH³þEòiý¼œäUíâVZ­?¿«Nôo(ѵš¶_A™™S8Œ…ê~fQÏ£sÍûgX D V2^?q!ÇbÎí(׿˜HwÄÅ0aK=q‹ØKü}d¬íàn=6Cè€Ä€·ËÃòY\e¦‰<Û ‘ ›&Ñ8Fª\@N•ÑyO4b†/±ÃfwjOŽÐØ'ÜPxfÇ2†ý¸æHádŒâw-=´^[Pò¹„©–êâP~wÞld‹çî,`VpD´é·ààöžEþÜWU±ª<þ#‡qÄ …*˜ÒŒ«”šü~¶Ê7hcd¶¯K a¯™X;éYÜ!o4LÅÜœù}`\ò¬_„ˆâÁªÕ Öh`T§«Æ§Nœ `#-¯-ÍL,U†g3 ¤§*‹t•öœø†0ÍÙÏnйj¸žâÑã•O(JØØ?Øùí´=¶6œÇt¢¦‹)…ì%·½9Äù Ÿ3¦§Ê™¶q÷›oBâIŒ3‘›Ê´ÊAWßÿˆƒöc2˜ö¼cþ îõ"üJ~„¸SqõAß”õºY° úeËäÝ‘wõeý_ù/„ˆ«¨ìZ©J€ÜŽ­ÏÔS™UØõ'û<£þD]k&Ù‰týB¹¤j„ä„£ø™ksôÚã~9Õçör‰©yÎ5±ÌyRS¯`?“ù´L'vQ6Àì5ë›g ¡6èUѽsþƒŸRXe°…yΖÄOœ1úöPÔL•BÀylëO.s…P|½ê¾5ðm¼éú‚GŠª»Ëaü#³m²•‹ [œsr[ƒ%ÎN²Éz¥gIaëšüLÝ$ŸDpJ“_ÿ¯Ót\l†Få0B퇞.iÞ”éʆ—9ʈgñô´MBˆñ†â#¡{¼µ¶U½XÝ•`|¸ÿ2:"U€=fgä‡" N9ÿ¿À üO†ôÅòa¢ÄÒ‰*G6Sbå"ðî>ΪLí ˆå…?MU€ÄôúP9®¶fÝõ y3¬ß¶ ßu  ²m =–﬑šfwö¨ 4Ɉ÷»tƒ‡ÞGbw8®2çåF^ÿÂ; ?)FGãáûv{ï!€0Ãé•kð=„|[OggS,L¨äiSÑÄ?Úëðñÿiïõùÿÿÿ ÿvîâèæäáãèóèîüïÿvëüÿÿÿ úÿŒâêèççêÿYõôÿÿûýùðíöüM¬È¨–u&Ìû\×EŒ)8DºÏ+H½€E™–yO{kR¼Êß’ËÏPìt4º7`!¥¶ÀrÛ]&êÊtž-Àvîš.|Óÿ¬Rú£êâ`Ó½ãCæVïnÒW–ËýË,–Ô ¸÷¸€aP¡àËèqF º¸o쨟÷F/V|O=ã*µ›Â‰¢Û‚;C¤B¨4c @´à‘}Ô³]¢ÿÀ‰ï¬/8zÅPXÚæ®'ÈÔ v|1†uc¨†.Žóà¯P·&yaŸH¥‘B ²ù­ÿè®çâü/$¼°½È‡ô–ïøÊË‚æÇª Ðƒ ©¶t\…ýÅÙ¿%ׯÙ7·§1DåoЄ &<û£‰m•L<÷”ôk¦s¸¦N*:Šñ?¿ u\½ÓMÂV©¦k±ìÌEö™TJ’5“‹nÕç IÒžN'ükÜ&gŒ¾ðˆnOÔ^ͯHo÷I`Ñ|Í‹6Yª3Œ©Æã€‘Ýý^ÕÈ2Ù>%ê™Ü*g¬šÃ˜¦•Eäž…µÄ~Éè±òúÇý©Å:¡’Ëà|à¶àÉ7šg$в‡ Á_ƒÁ¾©ñ5cý‰7Nü6gà*÷ýÞ'ù‹d}Ñ`)ås¤*%ËùD"¼]釭p¹§^·ÅFå'dÿ’ld¡'[dË ª“IXl¹f”2îåÐc= 9d²êý/Öd f—¨-X-ëZ<¿Uð/Óœ§šÊ/ÑI+øò¨3ÏàÏ®¡[/ÿd MóözÈÉgó³ÕhH \-d¦öMôpþžÄA3 ÷KN“äkþ {CÍŠ5$w0T¹2h’ÛLËŠúQÿ³Ol¹TË ¼?[ëYB¿ö|shðdQRpGž½›¯iuÑ®ô¹øCd¦JøWü/!}¨ÌHÖG ?‚ŸfôHZX=n-f2ùÙy㔳0=iâAè¿Ì€0(FKp"f*˜zÊ&àSD‹ÅùúÑ¥ü|¶ðùo›â)Ø‡Ë ·Î G‰mK¼ ë¿ÖY©¯¾ÝjHÒCÓj/Š$GKÂ0ò¬ŸÑFxP­á¥y1ÍŠP„j'½UJ¶æE¶º¬œàG8d,†œ”ݘȄ5¡¦ºÆ éãµ?4¤B¯9F~ J Tbn@¸ÆÃC* –N©e²N‰édBÛÆß˜ÖŽˆe¯ô‰7øÞŠ߈ܭ½ÙRGDL~)$e8˜ª&#»4~±åõà‚–6ìœ5ÿì[0ƒ$Êu9¬Ê'ŸÔ¤ß Á—¸ƒˆ¥z%ë,—öXâjôÍ}“(‰/TÈŠ_—µ27¢‹®<Ë0Uþèõÿ²bhÁŽû~x,™{`>nëza”–È-¿·t÷ =ˆ¡æJøÉ[¾NìRW6‹©.¾Œ µ–³IÉhý”˜Ð&šµ¸iuîpº¼èÊ3šÈȹçPó:½0‚ÏtômpÇüÐ3œß•#øŸ‘.ýæ¨\Ëßx¹ŠÎé-4¶Ì%º¡­ Êғ≣ä[[‚©xÏ®¸×9è"·¿-Ob0õŠt› hgv<¬2ãÕW“¥ã×0Ñ=Ówa· ÞM• {Âeïy4ßÞ×@õÅo {ï&öc@FÛ øóÄ’Õ?ΦËËxWI´¤0ïÑC¡ã!ߎŠâtE’ïYn`8xmU+¿Ì۳ɇÚédD¼ÉÌ ZT^¾Ë§ë‚E“à^•_cö^·ó_qV$SLPúî¨,¹hÌÐþ[ÂóÊ—Ý»ü1ý=âÁÎ*´ë Ô+³ÚzÒW<®1‡vcŠb%€ªïÒ’µŸÁR!QW$g)($Ùi‡‡¨åSœ…áÃæÑéõyËË n¾›‘¿a܉Lkˆdx.äCcig¢¤•:l>ýÝûëNnÏþ8ñ™­úàÇ×å‹eB{{ÉÔÃ;#ÇMJß)‰¡1WVŽ‹ü6[ªvbt;Z°Ùñ¥pTË4#awýÛ´Œ\JUÇ~…èE÷bëöé|pJkžä=è{ï†uAkç\Ž:C0vôÎ^‘Ú_pö‚W“;¾üO…¦Úë(%ù•ó|÷ ͲD° #+®,Ž€\>“ĉ¾ þm®LJ Ѩ´ùãRS Ôj!ªJO‚ˆÚ<¯€ÆâŠçˆ[Zì×ój®… h} V† ÏUÁEÎLØä!s·¶œðQfѺ²Øfóî§Y‚×qÌÖ;¤ir»»|Øeºgû(­]fØ>Ÿ9óx.Ÿh4†"»6E¨nlÇýÅCüÃ5ÇmàñX§Ê†öÜèÌ%ûÂ%}RÆ[õ"£Í¸'‹AS¯4Ô´´AO-k\i_pX÷F=£GbtZœ~\‘T–Óî"¼BF$Ro]j{6¥{ƒ£ž8¦yÐrb*#ÑRõÉÍ«.†Ü( ÷Š"ƒ¨2E'ÙóÀ~1ìÔ=³õI_W¤õ¡-š Õß^V˜y_4–.Q.ò¾·0ÝË×ífsêU!g/‘Pf`Ѻø¹&û#¼ÂÎCßÁÕÙjNM0;LÚz‡yà$æ… Áçã!¤R ]==Á¯­~ ?°+z€­ xÿ(èª(ã<·ÄY|¤à±üĉ©šjß1±ÒÎ3cÛIмMs¤ÒA‚Ý% "à …C^ÄÈŘr?Pãøø!–Ku¾\yÍ„®H×u{€PD7n š{xI*5+CšòCßѳ-èŠb¸nšÏO)£bTôçiuE1˜¼¿Bmø©Ï„Tþò»s*%[E‹úéqnÇõõ9e¾¸;níôýÇŠLN£)ðË¢êQ¿]vÒyÐÒ½O ssʨVSyBÚ¸Mi½=c²9¯­š?Œ˜Æñ¢›¦²œøÌN¡]ÙI:ךÙÖC“ͯ ^1ª"·^Ÿr¯(a>ž‹EhláCÞ¹5¸ÑmxMüÃ×Ιqã’É~$nPQÙÞOýÖØÆÐrhE˜¸t'øVsm¡fçî:ŽÏW›>cJ!í)-ˆÇ½ šŠåóúDPXÌKE#F!…žz*€š4û…Ý pˆ€]ÀD½¨¨¨®by\Y‹Qw-â! eq FÞÍ´181ÖïÁ!¬UMÒý²VÇ)í'9àë°YlÀI-¤º/)ëA º%ÑhÀɱ&%8êtnh'ŒÍ¦ÓZð&“‰âAõ†ãƒ“Ö ¬qänŸ=$Ç òî1.··±†ÐÃBÕ°ÀGQy}äöäÖ~ò›ÌƸ7âWƒëÓkq}بL¼ýü}a©Ì=¨µú;2Ùɤç„þ©ªE­×[1£bN̘ÿú¢fÁžvÛ\”ÜK†>Ky-0Ñz xC?âèÉ¡3‰ël“é@æ—‚ï ³Ñ÷‚CÙPM­BfÂSÝ£s@×s÷÷‰fm5zÍßôVBrmH˜¼Ÿ@´7’rqAíþC"šócëׇ4$¦§Ý¼"¢ãù¬™ãCX]ÁžnúO¯Ð[ŸŸHì©æÛʵw ©LØï³m¼©#Mÿì'Õ-¾M‹>eÜOfÉÿzNíþhaޤvˆp«Ç5ÁV#.ñœsÀY:´±ã)$u˜…±ÊA½†É'"A˜eŸpQWž‘¨k¾à3uûUvBˆyWkí®Î \íD1éðd ¾Ã– Áâ+kÌ…1ª©JÖ>ˆ ¥c1“\ô‘XÄO7ÅMÿò<æŽê'"ؘq¯ÁqkµGVš¿µK>3,`2ÛÎ\ ²´´ïü6Ë ±ìŒ}ù“DRGýkRÿ¯S¶Taš–o‹´¬ì˜,UÎYhRÅqÅãôÛ6{_*¹ì61Ž@Èž>æsùÈY &$~ ¯úIÉ-^6Ï€y½rüÁ‹a%‹:ZGy# Ã=„(òµ¡°W¢×[—ª3ej£½bê§içª×¹^×ÂÜ>Êöœ À<Ò å¶*<ÓÚ(…µØ‹Eãl(C-]ð:Ò»¯½CÆ'i…Ë×Ý’j1p÷¨ˆÑÌlúÒjäq¿ô(›ð’Sd¶ùƒJ;ŸæêÓ;hÜ'Ï)ãÐD™Ÿv=ƒÏüL»–k­î}>-Âß·O¿QÒ>i_§R;L2p2©ÍcÑ‘$6¹â/Ù òsÂ3>lGÞáûAÞ¦z|ópµD?Ïáv2iø›bái.œ¦œF+ýoQîøw[í@?™;wirÂðð[¿ž×$笆DˆÊ±ŠYÉÇ«¬»PãÈZ¸&:µHÕW‘j×fãþ;NìCuÍÞ:;Þg¾8‘{>¥TüŒ3Ñ2ôÕk¯=b.Ï£²ñS„‰Ï ÒÖz+´[0ùãV ÄûÝoËÃm·€û-—ºX/lòÊîÄàຕ™Á7üK36Cº¯œί76vj4ð§]÷šÊ Éae 3ñh‹#›ßº˜&¥ "7K ít%>×|:5p–/ ÃRI\–]bé»Áv#~Iò–:ôìLH¶bºažÿîFäת%JzPg“ý%‘©çÍ:èl„Ö=¦ÿ¦|¿ëûW>óõÿ‡Ä—â§:Mp¾@Ê.”Ùnêç;]ðšà ¥É2RìÏ3„v—é,kk%™Ÿ Ý®š G»ƒ"`¾­ò1>ö;'"uµpmN ̹ÄåÐÁô·-Д¼ÏrS|üIfF[4¦5Êþˆ b"eªæÈEaƒåý»¾F7_g¤µu”X3¶Š€£6-vŠ€ÇeaEqëm@SÅ—Ú4A¸ÊÌÞ"µ×¬]~Êw<äˆÉ'ˆsK–U%ØáøÏXäuI'ú‚ì Kn{/r“æòr †xúQ8\™Xë šå¡†Íúã3Qà‚¢D›Á v^ܯŠ&¯Xº‹3Æ ~Øp`/ëÔWŸNc•ðjÞT¬xüõÑ÷ð"!ZžXxúH)qV~¸Æeq“^«º¹\þH5þI –Y‚ã;ÚüL¾/ñédü@xZÖšä>Ôóð[ä¦ç0·*Ç! vb/Œ¼†QWDŽ8 Bº×G–³MŒMÃnÒ÷m®•`š¼`‚ÓͶå©l»Ðî‡sŽýëNÆD"êâÒ[3ö±Â©‹A㞃Nù£È(&/ŒD™wïÏÊŠŽ¦¸¥lšÈëøM¾¨ÝÝ "¯:r‹ÜYfqàQÍ­Êqí•{èx¯Á¿öiÚ@øל+¹JAõ6ý£jeêöˆÑ¾$`äåQ¯aîÐé$…¤6%…húïä³g_?ýéÖ#ü5 ŽóL-©6Ø r×Ñ-›þˆc‚Ç)íØÊXÛRßè-.}¸“ræWrK(û ÔÔ›_EaHlPŠÍÔ¥ *…TÅ%BÐQ¯e@AwRËj÷™yCéÆ[IzÁ|R“ú0w›ÄWjZúÄÙ@ÚP,¼ÿ¢O§(ƒ…}†îžk-¬ÂÄn3ês$½åFª\A)VE}Ad´ü¤UV7iõýG•·{dS †ÏÔþa/½D~úÿþàA¥‘Ë’:›%óEU¯SÖW·&6“kŠnþ(„~ø‹üL°•pÕwB¬+|‘g@«"ÉÊ—½ÎÄP}TFNôÕ?úË]oZ Ð&üMÚPm®°_8žØÌžÿ,ÀÚN¢×lGÞ4¾ó?Påâ1È y£e zÚ¬1®'™f›Åµ+‡Å+ÎíÀA÷‘ßÚ4¸® äÊ;Ù 1,^›’›¼tºL¢_Íã€)· Àna#dàe@›%Þ*ë…¶)´¦ŒÊZù‚£þñ<çŒqB4 ½Çú¸ºB ­ÆªºiÎìhMÔ/Mwú³pkD\-ϵº;-ɆD³LñšüñÔ`«`ëS÷H¸ƒ®÷<é]´t-ß-oÒn §`9X„ºY*rÇÀ£ÏšãíBTé¼é-ÞDuö¸|ß2[­ ;?xÕŠ;°E±Õ4)çì2zâêI_4•—Â?Ã’ÐÆ!Ǿ~@VÒÉjuëxœT%ÁøE*&éŽhΞZiø+Ú‡ËÅæH… *ÞDîæŸLÖu1#ÀÐ?2r\¥Óø þŒrŒT[U§a1þÂôâ–Кš›Ý=°v›<¸–ÜÉÜ*&ÚâÓë¦åÁÄ­T³,x°‘‰’.ü5®æLêe„®ÀºXþ %ƒBÝ·VçÇ^$íDӜΘîHU®L÷jHº†|qè¶EUÖÀžÇJ}JÃÁæ´vjäwn/d  (pßCâ¤x$ÄoïåT+}ÀäÔØ÷¹ß A‚[øIÀA&9tÛdß°ëªlB˜-%ñ0|Ÿsó.°¡ ©«I1ÏÊõ°È|DÖ.¡$Ëjm:¯)Y#G¨ZXô§f°Š kôqO|W¨sGn&•ý¨¨t`ߋ޽ $ ãM ÷Q‘”+ÌÀrwv­ôqOµM¦¥¶Ë¬#R¯õ¼PÝMÕŽ¨oï!E­v-Ÿ¾Ös –hàm»ÙnÅÑ: ©Åf¥à[ %Í“½¥ÙH”&‚ž<1^Ï6c7aY745›ùnÂ.C®ªÏPôÔøð.ÔzÍX<íž3½D‰ .fo/S¶Jwt2\u{Ðý:¹_ñô”¾H@^€]ŒÜŸ £-ìî@·ŒÊ6á˸uþ5ñû²éîO"å4dmkhÕËêhü]¬^áÝ»ªÓÆ-…¼_ª>µ/ìT¾ú¿âk8Vè !ÞI"%y7Ö¯Òë)Å ™RW´Ö¶´‰üÃÕD*SŽ)yʈÓún&e~º?ͨ+ÆZŸÇå\3®äÓ¿/-à­…V¶\Î<3n!„Ô¦‡Ë&ÂaÒUlÓtÑšÔt·¶Â0;ÃÄó¹WGV´ëè=„.ŸÎ¤2' ä[ÄU4¿œñûµ—eÊè•°ÌûÇ×GQXÄ©_Î^!zx§÷d‚ïæ™Ý„9=&zöñiæj&GÚ±0[jl&C˜Ü¶ kÖ’_ø ½ÁTstßµipÉyÑI0™±¾Ôâr2CG?±.à3‘‚h?jÎSé¿Ý·  Ù¦á]¹#O ÂCsKmù‘uƒœÛ·Q¹üÃÿÌT|Eßè.*ð `|è¨Áœ`-ð)zÎÆùçrc«J@»´¡ÿöçòI)Íñ ÄÞìó­g9|…z‚›3„mÑxÅv˱0ßzˆþÁgA#Ùã¡u/×~¬QÑôª¤`¸"ÂiŒÐ÷kûî%øÓøÚ~T‘O„ Õ0³ú9º"Íœa UÀÌ?Áe6¿à ëƒøHLgãÝ4Ÿ1ȼ [HhWÕRÆ%}Oˆ{W'2€ôšixš×ä°ˆÒ¸‚ñö~[ž>p¶ê¹A--9êvG齚Ð)ÀL!¸Äb¡ƒ@G…ü|­ƒÐŸãÞoHD,•Là¼<,Ï»Tb¹ßºË)Ç='ÇgààÖˆ\%kc¢ïû£~Ôö"ýJ¬Èú ;p©aºrw:1ó ClÓ2z!2AåhäFŸypÇõ­ñ†Lôp.…™M$»Çúmy9êX^ª7d›M&ÝSó‹¼ÅS”(g7<_aÍà±äb“Êoû—¬ÒGçÅW"êÈÿM ”Ð:Ä»;Ñ$F©øÈº’ë)qи »A]HbåÈðSÆ'$i8ÆXvnM¨¾¦p•lu·œØÍØG)Žòr~IHñm5pdAºÁ=UÔâæŠeæË/B'ãT™yÏïøKm=šçoâM‘UºÎ¦ Ò‰7: òmåLjê×qdbVææÛÑ!Ç.+wüÏ·€.tºHVÖ6ºbË™}‡Ç4¾Þà0«^z À¿¶´’˜›jžy²˜‹£Z-ü.âO_VhïFôRÛ˜*€¡sj¿7ècº¬Ú}èB *ì¼ÂD8ž5že룻¸¥„pÐøÚœ³¼]¨ã—ÜblAöÅ^} ýºI÷?¼_]êRúEß9Ñ9ÿ·ÁÂìÍ#¯ˆ—ø‚Ù¸lp»g) Îý5ÔY£ÉmVp;¬.tÄ‘Dü&á-áhoÍÕ–sWØMš­fgôŠˆ…¥­Åû,‹|ü.†=‚UÜÐïøeIí[Ú9y¤¼}ÀSÑ ¾*4m¯å\ø9©8Žp¼(+ñ {Ò|’ð¦F@5u]ðæAû³©[Ï-±siÁÞ8!¹GZy[ôËxþ#4ògjµyëT¦9¥½*H^$ˆŠíœgbcë\­&_³Pk²ÐqúkËíèýÚù ®ÆaÚ®*SÊmÃíGÀ|‰+}—'Å™r´©7ßÿy…±lCž-(M{ ú³ÌeÜt›v›ƒjzd»jT”ìþ×ðhÁK|©ëÀùD ¨¶×1º!Ap„fLÄhódÆùá¦ÜnT9^m™¸éëcàü.s±RàIà;ýSáóÁ.‹ :œ„E!í~ õ%o‹K\ØìIõÒá=Þç*/ĉúòúgˆâ¨¨zì‘ËEÓ`¹oc½ÿÛzŽ|×(Ö^µm¶wÆþ#»­JqG Oê|­W?Y¡[ˆæˆ’dÙ–…`(æIÒP“˜=·¬®(¼Îóì?×'™é–ŒÈUeõ:°N$l@³ïVê…Ç%-É"N—$IÇœ¿ÕþâÈ<¦·ÏáC1‰KmÍéП›^ØJ¨€–µ‰˜]C>ÏFœM¿Äf;£)AU£JóEжúmf%N‰FY«a±Và鼇7¿‰¹ä–£ÞX'7üÄ‹– «òŒF6z›ÑÇëâº7¾"Ç; 25@šèÚq!Oê?CR1{‘®L'6ZÕF)NÜILÄ–¬Š+ 7<dc9 5£ÍÀé’#êÖ¨Žy9tm35oÔÕ¥Y÷4W0Œ Ñæ¡Vo¼ùp8¬§M|~®½ÿÆï!{21¨&ä—¢!“Ìeß­’[öªE–JîžíΖðö­¬ú 3.ÂX¾‘úòk ¹ÉÙªŽzV }Å0˜ù#&‹Ž*ȱ1!]Ý4ªžè݆ß,ââ »Q2Û²/‹¾6'3ßIÏ@BQ5|לð$ NbX“ ›Éíz5#´0yÑ#‡ÀCÔ[óú2Í3l?J±_HCfiþ„ë’²ûf;Ÿß£ ¿¸—x)éÛ<ƒ•I¼ €(T“ÝXñ 5Èç¼»ºÍ{EÝRÅÅÌwý&áQËÓ¨_××0>}U>îY®üðë˦UKÙŠÃ\°¸ü='—Pòш_£wþÀøó\ÉTÝ-Å7Ø”±§bR„§%Žü 9+ åóòŒ¢ìHzMŸÍ•®sC# WÃAÝ»½›õ²$)„kª‡Dq àÞ›'€j2”ù*B7ÝzÎèÇíÜè§·«7–ˆ¤À@ýðJÌW¬Ar$3• ðR–˜§é½ò-ÚŠýè%b„ú£z€¼‡\=>邏Dø'ÿnqó„j„Õg¾8”eÌX!' ñ›6CŠr`+íßW³ƒ3\•dÚ6sõªD§¼Ce×’g¹ü2eŸÄOÀ?#QÛÔ/ËH#ÃJ ²þUaAæÚÿÊš¹¨RJb.åÅ¥í(RŽYÆ÷u³ùªôÊŽúþ/Ÿú}jU( s¤[È­ê«–c›2&m¢{ ëȸ(qÊ2å ‰v õÜîk=´œíRpÏŸ‡ T„ýÔðm•X—¿úUÏr&K<ó‰É­ö^¹À2¶fhw{pG/Œ×eœyeüì5˜ø‰Wy5ÕRC<+höÀ8AÃy~(T#Ð^ÝLÓæëÒi¨Eiõ²®Æ”"äb¦Coy ¶‡¿ Cí.ë`mŽl öŠò7üIã&›¤`à&k¶Axgì‹ üˆcÔˆ§ƹu ½4çÕýi¼‡^0Ï·Q¸b\±ÿMK×_¤Aô;ÙñuMåÆÐNN¦RB ÈŒ餚 ’&ìù®->î8HÌLÈlw§õ1}L²%H¸0nλ%]‘;ð£Ò–û´rZoPruÖý&˜ýÁ‘ovòÔo1TÊût/~‚Ìñºº¥ÊÅ˾=ë´w#–‡d’¯@Q`›v)Ž ]OŠñRã/;*ØÅ×㞽ɭ÷qæ¯ ›2KNÓ8ßW.?SÙ~zor;ª{hùg–ñü5m©dªß›4@g¦k4m$ïL’™W’í‹Å2º®Uz™á>™ Ç&åBD06 è4”¯È —íÙû1uZ)D%ÁùH}Þ5ÌËå¿+,cæ˜4׃L¶±±º#CM,ϜĪ—1/§Ë'õ1·&cÑÿÍZ*,¨?òdèY)«9Î\Æëßû+ Á>j‰S':‘"—Ö’Ý2©4·®}à)ƒdµ´“@òXŸFê0#à¾ú%&¶øÞe`Iǰ_Ó»¸N‚ÌsÓîÓfi?qTßá5¸msêWt\tÂÛ$ÄâëLͧ—˜K¯ü}\„PÛ?Ô! luÃ$Šn%jtõpØTÕ§ºÝ¦—•ndÊÐø³³Å~ ‚„/†¦~>:u2i4ùMo-°ñº%N ‡r“6ÝFÒaçЀPM–IÓ­SVlŸ0‘ãÈQÎ왇4›ṵ́7—Õ†Élß<ónŸ—\@+ÑLé>& ésЦ"ŸÆÜÿŽä‰ÈZ QÜgÃßøþ=øÁüž—žžÙŠŽ„èì7¹€ƒM~[VùºDÖ{ݯ¡;¾T…1 fbT¢ †Ë@¾š&JßÞ|‹Wc=¹C$àv>^c¤!^cÝÄpvÎ¥­ËÕA!'DU„àÁ$žQ¢1Í ¥ã¹KÅv!ªâpËý¶åå¸ò uzÞ¸¸g8®F(›¿!ök9[ûêi5e{$ðëp€)¯ã”$[ N‰ŒÌÇŽ’"º{¡ MÙeêž­l¶—? ý·è4‘1üJ35LNICƒ£…{81”â”ANÁ4wcL]òÚü§,ë=>nÐÉ#^…meÈdQ§ÁÛ¬Æi [r—#™wâY%^YX_ouv\˜'´ ¾yh±_=ÑEðÎîÏÌÊþXÞÌ¥ª\ŽœVÎŽ+ýCÓÿIß©‚ßë LÁIENrC޳a4çŸÒ…˜q·§Ê;¾)áƒÛÅP­^¯…" ýÖXØÇ¨þ‹”.kL 6ÒC©©$xLœé—>ÕÅú,LDú(²kômh•âXË‹šÜ ñtg`¤2Rzçc ŠEçâ°üü/P[¶{):¾Œ;(«6Ì<í„@‰ôº0Ô[œö°žh(;[lA[„ª¤¨ñ!ny‡.Ç1vM5¤‚ÊÔ$Eî81æ-¨ÍÏï›XÓêO§üáf©8ûïêFéÙËF@½uý/nZä>B!“ŪÙ5>GÑD#ß„XËÌ”Kš±4ívêxÿ%É à¾Öha¤ —Xž5Á.Q¼äÕ’NêÃø-aE8·\o(ÊpÝZ6S`p)Ín8iõ9Î.<ú—ê?1¾üï1œeôv£…x|ÇjJu˜;D¸…¥ôâÂÝ8r$›Ïì¬ #b¡x̱ù½Éᕬ{ìEŠ È‹x¢·+/‰#Q=\:m~ì!Èû×[¬Ãf7il Ñn¾NF¿ËÀ<ÓI̤`´\Nå°ãX¯*%!Í”bTÝM´¬÷B5‰á˜ººÞþxÜgnnåÄY$¨AŠ­!+ê‚éO¸A]­ùï<2í=ƒÆÔÛ?-…$£?bÓ½Eb—ËTÉTyª"D#Áóîçñ±M49º°bCËü‚ %™Åa‰—ÃüK=b[¤¾æò¼—g°çý‰(}<*`5e7üîˆ'í' 4ISÆUPÁ½çrуa€ ¾;LoOϧ!  7mWC"…W= ÿݧTÓ „È !ž¿wôcâÈoõ嵈z8yUS*ugIòÏJZvCôßÐðK6à— PÑ}‹Ón1-(!z¨,÷”jEmqe‡· ’ñ±“tÌÚ—cÛØËðuáJÒä›îÌ$I?ž'¤à¾ŒÇÒ¦šŠN!倻47Y¯¬kHf ¹ÄVœip[òBu­rsDÏD¼îZ+-B€ßããÃu,¤°½%%üM!æâÄsmkõ4AÂè_h®À©¿sÚ—Æ0’lÎh«e ߣ Ä–¯¨»§i Žö/hç'³p•ßuÖÚ»‰DÓd>>éU»H0c4²-þF00í±8üð­Ã]\ƒ=Òe:Ÿ„Ì_QH$ú}Z8ÿB†˜7=Ùª´ëŠ‹¡å…Oý6N;&ûD农³µŠñÜe½)aæGÉžñ1ÞJŽëLTþyûÂÑt°„Ùpa;ß[—£.u‘OEÃ)æžíŠòC+\S74ŽÕ“TH\z¹Š¯àÎŽŠ¶e«k3ßrù,úú:V,#©Ç»nd•ÿ_¼M*™½cüI¢3Þ <⸛ðrŠ\êšÌÙx­)/ð¶ÈFªÕ²²kmÖÕðN·B/ŠËü½•+h–Aò(([ˉy0°¥ÎzŸÀç´-±ÝŒq—8ôân%àfþxžò)‡ÌÌV…[NŒVó‡“P'íYï';S5 SjM (øÌ$ÿEª‡;—ر¯ŽR*$×qBÝ ¾¤Ôøg«Âè¶ýÖŽNÖè'!éÈf"S#ùîŒ#nƒ©HŒŠƒº• 4Tã&sïE¥ˆÈrÔ(ÂφTù€ªÒëÕÈ]NÙBãÇzI÷JHÐûnŠwr‡ÓÆôǧnVÁ…ajÙ¸C’(ŽhüXM·W§…]Ùd}PKfÜe*3.@'M–­Ås˜í[·+ŠÀ&]‘©KËV0ýwM^>‰M†Ÿž› ¯U>P­"Ÿk*“4Ûùú툄e0ãJÀb~@»ª `­k„»a*‘›o¼"-Ò-A”\¼N¾EÒ~4sí‡"_o ! ¼ÕYö>ùYÕL&že*­dÑæ=Ñ™«†é…O~Øi Ï:`³ƒ·B>­Dü¸¢±*ç ˜ÈÄ1—Í_;’§n9¹ÚYu_x 1$…Ó¢‰JBß„›8Ò·kØá§©I s06Ú+¹Å‰ëª’Ç£æÃ’¿iüLÁ×¹iÉÝp­~K b7qê.ô\Þ+ê8Äeb||l/8g™ˆü%Ãl›±n3"yÈÛˆÛsþ­F™/­®É]uShKßýi­5Î1&žì|zš,…- K"âíT´Ã™ÀwS¨Wª%yù úH)V¯å••¼×õ̯`·9¬åN+YxºB"òþÿ¤f^{2Z¾à4o‰g+lTÁÀ¤òR×CìRèJõ@g®JÒXÞ6AÉÃȱ‡‹EÐG©`pÕKðK.ß-ý')›‘šd>HTìæ2êø¾N¶ënÿ£‰ÇkÞñ§üJœ ä)̨kž2W¾rïA½ØeØüJ;”<œÓž\èÉ€FN¨Û'ŽòkàéT´§KÔól1rýM¦Ð’i³Ú3Y5³oþYà;æ ¨Ó×1=˜£‹éÏ`3‚l¾_^óßö¥`’=“d¢L>+eåWHeá®–ú5v¡µÇ€ ΂8†_¿o‘QÌÛ&ÞëŠ+qNÓþ¼Þ$Å©¤,ÉY»(¹H8¦8^J’–Ø räv{¾ò»É%>ú{)ËõPÃÓÕJÍÄïRy¾.óx•POX‘Ù9–C_5b°êèƒdPñüIwWrìçÁ\ *Ö ï2·Âþ¨a N8V1 í²ck>°s—“­hã@€YAbâŸ=^tr¾Èï⣟QŽeê›áV´í½˜DìÞíA—ÀI#ë%öyaÝu«F±Gö¾†yY‰Ý@”’2S¿´û‘´ŠÃ‘nÄ÷þ/£øÏ©àÀ [äžZßÁ„Û¾!ÈCÛ5ŒˆA ÈßOÈÖˆ…Þz8ì+D)U+ú&£H³é/‡õfUJv€ƒc9íî˜ô/Ó¥@øÉ#¿?oÀWæÆÉìZ».€œývŠÌQqÇ1WÌCµäèÛl¿ºï{Âbÿ1ŠyOggS€çL¨äj„ç6Cÿÿÿÿyïðùøõ÷ÿÿÿÿ ÿÿ ÿÿšòêìïìâçãÞáäøðÿzàçáÝîÿÿòðûÿõåÿpÔâÖÙüIw¿aL ÞR¾9ip4]ÿ¥ƒà6ß½¥]…úBˆ¯¢i¡ç‚l~7fvÇ&²õ7Òãщ?V6x >OkÛ“çeBÅ¡¢vq¾†þÛvÿ=eõ ¿Mæ;X‡áàmÔè´5É¢«xŽ*s­ Ñ)/vu2Sš-_ŸNU|´„ˆÊøŸi“=ø¹D¸ã¬wTÛÒŒŸ½âdXf¯àUȇž¤¤Î5 [¥Õ©¾ÖÌÊ ›ÝKÁžî% ÕHáçMAÔkÙ9WusÊ›½€«CA†=¶íŠ,ùJT›Qô·™xÓ»ø§ ·§oˆ¸yGÙ£…½öC-çIùõj´ÿbrÃRÒ®ŒOöý³|#ÉÐJ`ú„Äp5aÈÏ~ÅIÆ5.%J›EXjÏbZ—]4~êCLìEíÀ‹•êÒQP:÷µØ¿ç.…›Gù^x&íyLu%±üÇN{ 3öŒÕDSWhpÄæ›^ÖšŒ÷Óü}\izô‡:ܱKÃÍMúk;Ïwo¨0 'â×lR;£+nˆ‘A†³iaô²ÒÇÉX¶üð.5Va[›´×ü_ŸÖ‘0Ú䀢šgèˆôÇ,Ìïb<Š¥ΑgñVp)›ÈBÃËÎý›‹œ½‚p˜Î-Íz©ô+"2Ë´vD»@¯V}ÈþŒ÷î6ῨŒµÀ-<÷Zû{ËSh]$¯ÙažgìÑòø.@𧔥|š>C—¥rÍï~¶óùìs&Út\Ö¹!ýúþRoh‡­…M•M¾§ìhÜrM'ÓJôuXÉÚt¾êò0³t×=ãçP É­ŽœÄÃåz– lŽæ¦Ñ±òjn̰ }UŒ(g`Êüjè¥0@9ž}|Ž‚PÑ€g5Ã1NuõÑÆtXŸýÕaB)èú»wß×ú8TŠOGÉ<÷€z"Mƒ^jBÛLu«JÿÁë­Þ2a從¦­_°üM0f§cíµ)/ÏœYŒ·%Ö` Ò_í—¥:o¿?º’!yHÐYœ<ÃZ½ÜìlÜâ<Øÿú¨QE.}ÕQðPûÚ4гêã|Mùuî€OÌ1¶@2î4Q%~†õ[‡£ð“Òö&†Š‹2Olí5EJpTz…–cvOVh´£¶ÅµÚî‹›#·ÀVßñi_³èÝž_Ö~)èðÁ¯ú~ÓË®_86Í]د»ÿŠpL8—C¤I!TÒIl™LQ=×uîUö‹Zƒ(êÆ|Õû¬wØóu=éžrçˆËÑZÓì.‘”¶ TêÉ6@üLâ鈖lD¬»Úp——ÑD0–¦Æ'âÄ«iÞv½W pÀ™Q X_qk6P¬ç]?µòNŽ]Úai*ˆ=دëtëgMÓ{BCa_«Ë©ƒ÷N‘<Î1N§\i_ÿ¸ K¢»&õ€ÿ.êbšºG-¯ðÓ ý|„Pðâµ½çÐÝÝDâ1$Mdïݧˆ÷9~޶žZÕøºy†¹ÑƇÕu\ž{í)ï;îá÷q|øu¦¡Rrïf4¨º( øwiË D~u^A üsB>’nq§û¬ò=ŸÿÓû°¯棋mEn]Ö§EEeÇRªRüLâIˆíA”‡‘2v™ ¥ëi\N¾Ë/µœiåÒMôG¦}’×йå[\¦Sу^”ΰÜä-ŽcކÀI#¶Ö£½KÌ,õžZéžÞ£‚#¡}0è0nhÞ°1Ø&ó´£¢ñŒ3l|9W¾íÀ›)e3ñ¸ó«Rs?¾Á={ûµN…6ÎòÔ³Ãuë3+Þ’ÃÖêRnáÓ 2ÙiÔtàbÐKÎôˆêCøÄ›«@‡Å뇳µcL„|. ºË‚ôa ë9ûÅ¡‚Úü~—O Û‹ˆÙS¶s-Ù6Ãó~=ìÌ4—Îpƒ:`a"fœüMÓúÑq 1ªäªTb»­ó†síÜ*ÞX«pêŸïìL¢ª8NÂHEšþÜ‘ß|:‚ع1ó&hø¥îCH5 žÃ+(ÌNõ†i(Õö¼è§¯ž`ñšúU,Æ+(Â¥6O"Í>8@ 0S~¯°Ñ•™90YŸE ŠC"êxÕ­jZÔ?g†[ü˜©¿UÔFæ‚{âóÒBxüw^ïO¸OÀÇi­ù˜ =kdïŽOzB`‰B'ºª·†nœ]䯉Ÿs¡9ãHyõ ik0È*BEdbØ[QÎШ â¥OA‹~>ÊOöX7ÒüÙu“÷p«ëPW¿n¥$rXVÏ¿p†øAa©rŒÚs5^Z?ÊXr}™n8_ÈO#Õ±·ÅOo¿BÎk£J8tÛiû+'½õ?öâÆÓ¨Å¾.¥%Ôôq¢ wéçt,cì?8—–i5ØH„SI#æ%©‹ãgVTÓ4ƒ?reýìþûÂzà<=0#„x£èÛ2öh<t%Ì X£2—U ÷çœõšhzH£[ƒag?¼ ¢ý?@E]óEÖk[®. NI÷qêëÔ–gêè».MÔö"9p±¢|«2É(³“>SÑ4½ «³…üL©=/EÎ Ç0Xts£‡r1R:RI"ÒínµDæ/Cæ§\Ô‡[XbûQìðæVÚ§Ò·§øþ&`{ õ+$ß#Þr¬Ѧžîœ™^Ç“;k‘<4ì͈¦¬;Ùu¯»*©K®’'M…ë4ðó›/Èk›|“Ža¬£î¬\œl)ë5Úˆ4Èè:Z¼|”?\7¬¨m'l˜›ítÜ+ ´QM^•9¹‚ `ÆH 8wúó»«ÂRìã•íì‹Ýzb¢3À ð×QÓ¢‰’è}ò+2È„hh¤»êü" ëÉ‚0-ü|·LÕß¶m¯ÊØ>‡®+ÒëFï ¹c(×!Ç”œðnPËÕh€)£Ž˜ní§±¬OÃPÿç& €ã³I3h×Ö‹:H÷É÷%„@áÉ“ˆZ4†›Œƒ£3qåH±æé|åBûðKé±ÙÑ7ú{ÙW¿¼Üâ>Fî³…ûŽ?Ds@{û+š‰ÿSYçEu:Ãeµûë.\ü^dÊTLô (eHŠ3wQõîYOìÞW\,x³¤€-@; _úëP«ÊÂ/tÏ+‰fî:þ€Xû+/;uÍDðÒö,¬_ÔR´ãÍaNñþy›cpG°QÑ]%`ks:nu¢:T’ñoT&SkG10†•mÑp’ªúI,úñÌŠÙËî¾ ß¡¢ÖÒþFµ·2ÞG–@)©Wݦk¸¦þoÅÞšýÝ‚o&µÇCL)å;B½Ž¼ŒrÅÐÿÿvÃ…ââð4—ÚH¦5žsµ8ª1¸ãÌh´iŠÃ–wœAFEü.„·bçÕƒ{d'½ü¯‚ñ]c€E× J:Ë,r¦<æ$VžOˆwW4gv«—Z^”ÉÕ\ ×b6ëWýRŽ®ÿ†šè^¯ÖöŬ'ÞU t唚YÑ.×HADàûÓäË=ôÃ%p—)„ž| ó€ŽlÂ? ¾€ Ñˆ:)^YÌzZ+l. Ѥ „Ã)+_0N!á+Z¬;|ªE@%Ô×@:ü;ûÕFÏ.Ú© ST¾#ºé¥Ém“vwHàpKõ¸¢ý”éUû›ê sº9Š,í¹¿ª¥Gì>˜†—c§ ·ŒÅ&›“Z¡Í<0=—åʹ –o‹ÿ˜÷Cõü5mo\ÖÙ¶&öm“'?ÍõÃ:(ÁçAȄ٠‰‡ö¾u¬u]qÔún£Ú$dÞß ´·øÑ@Û#Êתc» ×¢ï‹ô:„֦࣠B8§]ïëÁ˜Ò·,•¢T.܈Š?çæPLuœwI½°iŸs›þîµi>XšG†^ûÏc™zކ=†éß_Yc7Âg¬\äÐS ËÓ³(Ú„t®¸‰µBàÆƒ–°Ð‰éfy9Xödl&p€c¥Ü¿(þÚ v°0Žëîíü«Mùµ‹ãoú;øÅ+D2(ßsæR<’êà:¤À}‚ÕÚµTïf}*xZLÓ=7®©¸v'üL㪅.‡J¯#éô¥hºíGnኦÂÍåÊ×§㙃8ãH’×96ÁâVŸ[öq-º†å!§Ok#6aî‹Cuóº©Hì“’.Z{ç ÒŠêÌF‡Ád_†–ϫۤö½@ZKåÈHØ•l£ZDý¿v”!û§Æ—}ޝÎáFOMâ¤ä¿ 粞)°¨ƒßÈ€Üa#ǘºI²“>¬7H~¬uK#”˜W;óÞ–q«?’’“j“0Ñ­ë½{–å*ÊH%¢ˆ¹‚sð0vé›2Òè¸ãèÇæqÙEÒ`ï³ùlÊÖÄ™„¯–†'x ÕÍË«QÛ¦:a?!ž€üLµü\¥ÎO?c…gÝ9eŽQ#ùd®j’>'`_pwàp–.ÝíɈ™ÞFÂÏÀBz[ÿð…©þEj]¹$"Y˜SÚ´Mgë?]UѪÇ&šªü£‚¸Í“íÅÐîÌ‘ßsÌñ¥iRz)Cs[ï`àu?Ã]̓;G ¢"›¤Gy¬€Ça Ñ‚Ã`ßMÝ]qî\÷™3³£¹ x2oÿaìåƒM[¼Ç üê^4šµ}~p†`5,Cdkív*fÅmX>·DãK&pÈøÃ`KàW‘TZ8ÿñº#PÒñûб=x0S~Ü_ƒV¡?ö÷¸`IX\Ê5IB@úÎQ„ÚÙTLØüL®œ‚ š®ÇÅÞ¸¯8Œ‘7ýu°fNØÊgèßF¨n«p<*èú¶:\+D#61Ûç˜èÔ„åúK@ÁÕ?-ú±ûVnL„‰X€ÙíëûüĬ©%ªåkÅ+¦Ù¯qµÓ².Ч(h«vÎ:sM@LB4{k‹+êûâƒ5ßá³²U‰DØIÞ„sjÐ0R7+å¨û×dÙgŸô03nÎ}`SkòQÃpÀ?fyåÙÂ,4‘[hK[RÝДÃP¶3Ë>š&·Ín–î®,*˜ï¾ò?¨îEÿ­žCvžJ€Ò%â#›…ƹQ’OJ¡Z «E©ÉÚUxÌU°X±¦öèâüLªF—ÉB gÈqñK>ÿÐÎ.dØÐ}7?të{/ˆÅ7Á‹ÆOžÞÄ<ÌYCÇD9€c1“f¾©ù’ÃãêV—ó' E I˜aÊÏä¾>Œ×Û»ÍlqºµÕ»J¥‰@Vùs¶~ƒ(5ç#ÅôþÉR9˜`ƒqò¶Á¶ê_ører5U¨UwùÒ•z§ É Î°ÆÚïå ³¨~§s¾|ä -¿`v¸N644ºU¯;’ï?ë¡LãÁ¬‹¹$]¥Ó^x’h˜b‹ç^6y8ÜàjNA¬:`4o—õú“ÁT7müµpKBÒƒèøˆ_õÕôéó)žÀü}^iÒZ ÛŠ'7™7zyAÐlS,m¢ Ã?Z½ÙvÃÅl,ÔäwqŒ½E ´x(ë%Þ¥›© 7­½®þŒ«²Ovln;v u³Ï3[‰'̺-"}âP'ødQ_ÿ# +³t•–eËf  ˆ=ÆjŸŸ|™V…Õ4­L D43ƒæm('×îïÛÈIˆ^G÷g (íZ1¨:/øëšÙd*&SŒKtp‡9\‘‡}#‘Êkç鯽)*N‹Üƒx («_Ìi›Á´¼˜çñ;£O@(DÂßa7öƒžu--ÊÉW¡'e¢Û¼0Û5o¯w²ôºÎ•5ñþQîkü!¥K™"Gˆ3FÎ –ªä\;1º‡« ‘* A æ¹°ðQ¼`L;Y‚™Ø5\•d=!rš$±Y?è1uÒÿC¶ ›6<Ú¯˜ýfÏþmS©¶µ£-…òß²o mâÇ&}Bô²Î_ÑÆË.a$ë< ”?Uå¯RráêP¸.×ÅÃ¥-ß5@yüMFuÄ’ˆ¾o'y«-ÖŽ0CÌM΂ÀĪuøžWOF—îÁ^0r¼™qÕÇÈHš’à7·JH²Oÿ“{¬é/ÿÍËž´ÚªÎW¿/H&Q•#÷vqh&¹uá˪îæE=d¿#/€¿fm5ì·¥Få­ºúÐ"?áÕ†`¤ºƒÆCß–yµ°^Õwé«2.U Qo¦‹è‰Ãáæ‘ÅQ ^O¤Ák¸ã2(ÛObˆÁÿ€^?|üÓÿ¯k #£ÖÃ=’Œ»2ÞÔ|Iöq°ÎD¼¾ØGðÞ亂r  \mCÕZæÂpëÅ'®pšídvx  Èù˜üLÅAş抉úæ™ÿkÍg/jÀQ@ƒÒäR0p¿6Ó.Ú(5ékOÙM$÷©äWv|©yEô­úž.4e&â½Èk*ÁHmÝZÏâÛ¼¾Ø+Éh»voâo+-ÚÝ¿—3ÝùéJ»AÓ]TßôŒÔ)Iûèò¤H4ÖðîUÁ˜kªò>€IaY²mÕÕjcŽn޽ˆ/g>´5)Œ±H®èÓœé|}’ŸŒèN*Fŵó–H£,&€ÎbÄ.•`>Q›{¿Xd`k¸ö ¹ßÜï“ôÕß>§…YQ2¥t¼iA¡7Ñ·üLéøžnðyÛΨYÎQÚ¥xL÷Ø–Úî A͉XüCñ UU$ô“B¾¡ÀŠ&è·ÜJ<ÊÇgœ »é5É)´š4zÜZé 4®£*kSQYÙÿ?ãçÞ'ŒX,(²û\š¡Ç˯*ê|×rš$PUfc±¹8&kòœ³yEûˆ°Tç ™í0Ö©åš%eøÜêR‰njÃHŸ-*“¯íØÏ*±ñÇÚêº@-O¤° áZˆ†wL‘(‰A¯®Í³K>zá#ß ƒDÒhÞ|±+¼HöÏÙÚo¬Í¥ÞGvEº#€%ulFüMQdÇ«À5/¢GP—'Ž@írôùGNjX”Ìþ⎲©8Y,˜o€ƒÅ&%À ’S6Öpã-hOg%’Щ-•ÇhP2ß´ú¢)”sžïüLÅ%ðZnÅö0» ϦclB ]QcÊß´l@bík|”­6í†f iÕe„Š–mí?ºÉY•Qí¡ôÈKÌþ(¼‘äXQ»(Ë_Ëý ¯X/ u÷¬œƒ®ÇëßÔL.v]µ;ZkýË8HœzŸ·Øj:¤ù qŒ&½vÛÜ5°¤„ïJþûN*º,ÝtlÔï‡Ù’mÌ š„u µŠRŒ.þë©~Qà³(™zd)=Ã)`(Š ~í¾‰¾F &ÿ縊 —ëÔ"UÞÏ'Ci=ôQ‡+÷tZ°VbÿüL¬¼‰@júbðæ¯¼Ä{Übm¼°‰û:W?^2‹¿ ©ìfÝÉ™zpÌÀR@@æ7çz§wSÕœOèòî¤"üµƒ`Á‹†êÇ@œð$‚ )ľ£W˜ 0¦­»W_LËûÌ·'Ôœ%f^12š~ ÓêQ7i‹1àÞ7†lß25Tù|äw2)¸Iºñ~2Ç©PÏ8Bwªûö¨g‚2æh[¤¢ðÕ{,mlmGò„J3…¤Œ½tÁ+ ì!výù>·ú$Ó£ßÜö¼.ÿ)8ƒŠ˜¾ìŒóiüL¨3—¤Œ½"æòK¢ðüÊNd(Ü‡× z¨Jxu2ä¹.X¬fÏȳVu;/ˆdÑÝh<æÅ‡ê¾HÖû…ú]PâXÕžòÉ´ðÅ.l<ñ4ð¨+ÜTÞ:‹ª6`d¬w“‚evwšý 4èQ­øÀíó/¶‘î†l0ñ®AÇPèÒ,XüÛr|Á5þ©Wh£ D“åíÊÎÅ–r{r­©ÄMf4Ë!ñA¯t¶Áí&“㑈ôk|qîç¯×zßý¦rïõ=AzáPB_ käw$G êe˜¿j­ºAy ‚C¿ùIý‹ë©#6ÝrØSËRn?É‘L†é÷Sd¬„_§±7b:ûW8èc€öâ˜5›þ¯Ã„Ô0×Kô×ÏaNÅÛfäQ©ˆJóQJð;Æ+ÜcaZX;úÄÐã«aÈîl/»£\`…)žž†_¤ô~rW@vÉb5š²_wÁUüÛ¸c;ÂDMŠà:–©™³àQK*'D ýJ‡Ñ|±é‰q\aHrßÙÒsñ¡ª .ò÷@)P-lCÙj-¾àÖ°ÝD²¶þ†˜*Ù_¡tåïX|XcˆF Ü˜¾!S\ŽXjN8«$©i6HLM廬pŠÇ•öˆš×Τc€ÿ¦ÌÐΨ"€J±¼ÑX öÏ„=%µÓ™DìKÓ(‡mžÙ|¼ÇäÑ™O[Ϭëמd>¡Ö¥™LmÌp§ï"VóÏ7=Á1¡wF­®)uÀýÿ×Òko᱉ùæ2Â6I¿9æïMˆgãЧ-öòíÃ,ñKØ“ë®à Ú/¶‚€»Tü|¯Ú'\Õ7HwsRO¹g!*£‡ÛK)ÃuºqØ!n&‹Õÿ¤‹d#*u…‹;ø÷ÄUÉ“ñ˜ZŠÖå7Øvså¾{㤓™iáJm÷ÍÆÎ9ª)¥:ÈÜã[SÆ7 C‹žÔ úOÐF¶ ž°|-ÇBï×ÿã¼éŒª‹>S8Ø0-¬HñÞMÖ«Ùq%À±Ã1ÿô¸¤Åý1¾‹¡öTô»ÃNújLµEÿ^I%¬žDü=‹/ŽÈyõ"f)ˆµæ0;…kQ=xp‹ôovÎ!¥KhÁI@CŒoS°#ÙdÌR*×–2 ÌïKÕH ®„Â̆¿êòÌÚvz$ÛKjF¯ê7÷”h€D¹vïôo2 € Œ,œÈ¿…3±iÌ2“‘dcªeÌDõ¥äŒG÷Êe‹.“Ðî€]¿9zŠÀ{G1¥¶ÐA‚öÖy€|ªf©‹t…1°è¼º-«/²xŒâ‚5SXš`rmš*~j!ü†E¼™T`TÎp·ºþ ¡Çט;b ×ÿ.ÓÐL0ÊsÖü² ZlÙáñÊÁˆ ’0Ê1c¼ÜçË-£¢&ÂÛxhà‘AocQ ˆüçÚöíEHCŸ0›–VxD9ÌË™¹n F_ÒÝ/Ã×|šbÞg- »ÏÅqS­µQi•<"_ä÷*9‚€)ãðcÓÍó°ü*ü®/Ã~9ˆÖÔR  ¬š$ƒVíé#ö¤¥ºÇo÷Ê»”Å—ÄZüæá+Š'mòÊé}.¹0êýž¿7ÁüL¼4˜ËiIeåéyÃÒÌÞ¯:©Í2¤¯ µÄžÐ++dÚóN+N%®²©–ÊÔ«®yï­ù`F:;³“¤gó0ld›/jîß° ‹´uûëY9vù}¶«†õksà–÷äŽ*}²ü’ç*ó`ï‹YËÌÓý¢z( iUHykáºÇ·™cl®ô‘ˆí!‚¬–Õûö'‹í[Â4ÁP2s>Özª¦õ "³lœ¶_‚æÔ¼MÓìÒâý« 0z·Fë8˜\ž€—7}®º©Ö2 ÉýÌaæèc³øô§ŽO›ªª½üñ¿¦×–Ëúö>ÝåÙ¼Î;Oö'¹§° ÒS3²H|xŽUfÏo+d¬Ž…ƒ`Flñ<“$a^# Ù6Ó{Ý× rkºV¨:UÁtŽ«ûQÛÅY²X—ÖKÖ›l$Ê?É~À!a”Æ\¾ ÌI’'Ñ@è„Ӽ蹶!Àq!fC›eæž?à QÇkaw1]¶¥Éò xr?”æ9Éw‚_Ó¿pàœ«&ŽUÐ~­}b`ŒÒÓøFï°>z–OQÝÎw´aaœf? u êoƛ¢/?Š-ÌGj˜&žýüî¼þ}¤|6ÝÄtÚÁÞ™I#yÙ_‚]ÿÖN°êÏ2AE K¼ˆVÑÍV„à矒HuR>ËrÆ’l}YLi>Ú~¹0Îsl Ãòšîö!RB?¹dUå¦b¹ÃÑDÏ) axΨ´ÎO")âùc;¸Zü·±]~Ñ,+±å% ¢YoMøÁ,EÈ1¿9o™@ݘž¶/çȪ甉俣ÙÛ…h‡Iy÷7b›Nh™f°µ†lE¶µ" ÙèÍ@f×Ïá¢4ó§Ã¼¯Ðü_MÕZËôq˜»´Ýüñ1QÌö™›zXþÒ,ÃOœ >©ªBz±Ýê ;1”¥žlên¨Nµ;Ö Ó§Wj,)̿à i•¿>îÕd:×Ð[Jf&»Ä:xzÞ%ÈúøY¸ê“3ùìMêW8æ`P}l's¡»S„3ï…@öM{ îÂ-ø¾â(å½r½Ó&"¡ rAÍÄšJ~w·Â½ÎœÖÑ4ZÀ!7a´a±‡PÂ{ç::숂ôó;»£ýRëIGÍ8Ô¦DÔú¡ON02‹ z¦[=^%°-oãÐ/b1‹{½vLËüî€çnÿ¸0‰Û‡RÔµk=iÔ.G ˆ/Ë> ‰ÌGgÆŒÏÛ¡#õ¾‘åÖÅ@PM„6kE³í¼©Y#703á3½¼m!宅ómFëÆ- Ƽ !Ý„8L$c‚¥‡nAÕ\£sbÛ«À“eUP:JüB 3m1Lw  ¶$«ê±Ùjº˜æ'8s>«ð‰‡ç žÏ5³…­|ö!—‘þÚÊQýå¤vê0™“þî›$Q{*NSK ‚Ý3¤ Sz(—'EÒÚOÿ­89ô8 ¥Žá›±×áÒñ½²÷lUÇþOпž*Žu¿’c¿~£̈ÈùY*󉼥ôÌÛäÝüN‹XÕÖ©/Žœ`XÛ¾\92‚;h’‡†eCÌžLø˜ëXÁ(ÛåÃcTªÉ=Ýt¾iZÊ”Ó)]F¹¸Ëƒ|HIûY¦…±ñyµ`¦¸…{ dÀÉ´ž>(R‚UÓ§"‡þ N¸¨_¬Å}fúhŸ-éÍþ¢²^Ó?WHË^^È)#ÀÈA1uQëMÛ?ͨ\ZÑ›AfŒâBêûŒ*å÷°A42üVÛª(Ö ÂXè’SÝÅ,SÞ#X³¼í¥¶ß?~{mà©ÕLe Ïÿæ5‘’áe]RýyЉÁãë°8øA ýxÎ%@Åtâ©¢GIø…Ô€teT¦=Éã:`‚qÏOá~ã$0ÃÞ¾Ý$'hæô(²Dèšh5 6+ÉEì+£IË^ñX/ÃLúÝpWÒÚ àºUs§Ý¯¬ \…aòtΜrJ 9ªe-ÁÄOrgd~õAIàR(¥ŒcàÝ0 OFUÁ4›„™JÿaÁ‹—<*ön÷Š4/,™¥#üüL²€¸ô‰D´í\w¢+£ÇÃr*õx-ZÚ‰äÓ ´ì03ÝB´-ý@4kUoÞÇ ù¢G©×wýõô›ŽßU´¼ÄåKrêã'šQ¢3—`pr’¯a>ÄBΔHÃ,s›êÇ%8nÔ [£s1Ž;OÄ)Jš\Sš5-Åô úTƧÀÚÏrL]ÞN6!Üz‰b¦¶1Ÿ^t i•ýÂF¥‘ºû0¶ÎWn1™¡7G½€ž.›Žþûða2Ä$hÓ ¦lÛ\§*¢ë¾ È7špâlŸŠ©$Ô“´:óÌž#¥%¦ábüL©ÊÓŽ!(mSÓºM"Ž^Å |53 °K( r¸>œ¨E}¢ŒyÜV +ö±¸xO(ª~–b]pAÐCb0ŠMÕû×äùƒèyPôóÜ­óùwvú(£oÁSI³ŒýÛ°>Þ´œ%šƒ‡.am6Æê4üº6³z¤ X9&‡1fþ ½]f0u2uGœêE¯!d…åòH¬Ü±´8íèçòMÅܯ=Ådÿ¥Æ©´qßmyÁ+°àï2Ç&`ѯè,ªçUù‚k6CÍ.ÛÑ„ÌshAÅgÅ_±¥ËE[žý2:ðJHø˜rÔY•tìDÒUO´:ü›&ÿcAÍÌ+!Úú>¬L{0>áØÞO;b˜ÇÙú£©†Øï-‹=…·©ðÜ¡PBÂú(Ò–#~w :Œ“›vrãr®qmâ) …Ãÿ’¶ææÖ ½H1¢ìWø¬“0òü\!£¿ëJ6¢ßKÿ®¸ÐîíÁ_ŽB;1KB报K3ÒË]AuL@UýH.Èv§\ì§y;ZöøDÝxIZ`ëÄ„7bîh78?Ë]Ô©¥Ë•¶ÓxIš­ÿî\r¯¨ZP²ÛŠa0ŸÏB«fDUFúZÁUqÚÆKsØoòq.ÊT°BÁN`Øü|¶ñÉV»P3ø‹Åt¯*<œ–JÌçSß!ªdd¨×bÛ:Êm%b&£ Þ5ÿ.5?³fT46´äó›pºãì+¯QàŠÉGä½ïÒy}§ %詌anÓ"Ñ ·Ë$ýdO€í AÆCô95CâB)½^ÇãÃãÄ…øsýà|õã ¿¥8€ …¼Ø²ñàZY'Ç(SVׯT ý§=cñÀ´Ý(KÚ¡º ê¹AL½}âËÃNÿ³PR~ÒÜøNÙ–Ï*Þ“ËmЀT CX(×)ËTÈhN­­´ÍBwDK«#¨*Y!ê64FàHî‰ëPýÿóïáWÔÐÖwÔæ¬„Å—­O+Äþj¼:î`c—iB=¤‰˜ù Œå¤»y}æ\ë–Ä ¸£sv† lZ#ë¼;ÔPœ“?æ_mN~}íÄ‹wç4!Ãâ;¹S•®Ÿî°øLn»¾­¸ü5H¢…=\ KÍ·“ÆÑ³ù‘ò®šÁ4+ëP ÂÂÓ H8“SaŠëm}ÔýnXñ YW„øfÿMe7À!­îâRôšçoî…ºkÎ94Æý‚ºŸ²$ê©pþSÍ\â˜I9妓â<~“Fö ìãõŸÄ·GWð„ Dñ<%œv®¿«à~§¢Ѝà0)ãéèæz)PAË–KUº¨à¼nK±HÚºExHp®šZRÀßNÞ—›êÂ6l–zÛ1&æ ËY[™hȃ{” üM•„ ¡X@:Þ²­¢ˆÚ”0Õ¤ŸÜ›Zª×QÜEm2àæyq!0¿×ñUæVýyT¨¢6Amê¡Sö\ÑÁä 4p„D'À-»'y–Ï4h= W±1€CƽÐ"ÞÖïq7Nu”{-Ó!âz¢œ .ëÎGË-+T~{83aÎÁÜÜ `èÄe±E±°›w½$üB<_r~Ãu:±ࣟ Ê.(Z¹x‰vÛ‚†Oô’V§PÅò(ÞVQïÿö!úÝÚ±Åê +§ÛóôÙÇHœ–k´æâ@ü5_ k}3 â? n [lŽ÷²(zY Æšî`Èß@€z¶L2Y“ç}ºétB¨>BV²“2íÏ}Jzó×ÝÚ„•G“þ²E¬§ÿ@jYfJ¥ ËÍ¡Ë ý=‰$jTêªV»N¼48 µ¾"BÉ[elá$²S(L|Õ(ÃÎî@¦.véa:ðÓa·&Ò ½9`¬Ì?]‘¹ôPÄ68Ý^‘ˆN݃,}êƒÔŠ})%sëÜîc<pº„Ê-›“>X˜öúrBt†hBW{8jüÙÚ ·àHÏ܉Bâ•_ÿ`òPAGÍÚšØ$"É\K%DüÔõ.)01#ï±/?¨óD¥%ÓóANcdèí¼Xæ‰a%œ@ùT¤šP ,d0!V6R²€Àq¹RKb >;÷[óΘ5Ö¦*ÚU›,¯ÖÜà3F9ÇÐD‘Xns|. €€¬/(æôÀ°Ã`WgHM6OÑ\l^ fŒjèvò6%ÒaçþäþüçÖQËšSÌÿ—þ><³Œ·í‚Æ>Å£W à¬dÊ9pOggS£M¨äkÁê=Üéÿ<ØÕÙáâèÿ~âãõíåæÿƒÒÓÙÚâèÿ†ÓÖÚÝèòõñïÿ ÿÿÿÿ©ñääêçæÿ–ÿÓ×ÛÚüÙ܃øÝø«Õè”^Éÿ\‘qyðdLçýDCÄé1¶N û¯:Qõèå¬ÁX3_ì¢ÕiÞ¼­£G«±Ž S‡Ý™üq¯BªÀÂ97Aœ‡ÍL’hEÁ÷šº5ƶá¨x<99u¢ºJàI·¿SO²ò–Q{ÓRYï´qòÌ«Ñk=·s¡OÃu¶'Ýèš‚È_­Øž¹†ga÷¯ú“T›ëÞ-Êl˜5fU¢{îÄÅBGÍa tr êøëŠ ã³CßÝ5Å=Bõ/Lʉè’ié Lbмùvg ‘Pcm‚ ”Ÿ!mQ“ðäí¢KXžqBÏ(W¿Ìã<C¦ý,üî•—Ÿ~»~Í ð])¤iˆ~߬Ù]¶‘`µ˜jÝ%…âGìºß˜ÿsqÑö(Ñ}ùÌÙ &OÍ{jΪ"Ñ¢”q5$Õ±ëo¿³´#®éËÑkÙ±†Xà,ZvyçjšBžíaÐÅ¢~ñ^c¶¸B¬»jÇ7²H¢WW/Ra$*]a öPO«ÌáCÿ%#2…ªGÀEóµ…û¹¤æùÜÅ•/Ïy$ììs[|»€nEÍx<š| C”Ói£î=46ìĽ%St wîiG‹.í¾ýÒÇKU üM1àñF(ú«,&ÆûƒqÕxã:™Ÿãæö„Ô oŽþ•çT8­ñ4p+wäk»ý%õ§§ÇšßíWØJÁ2•vÝå$ö¦ãk$äÊö¬®ÆÖæªùƒ,,z–Ã"N4-Hv›©XTC ÉùÚã±*Ë5¾F zÚÀ‹O7ªÇ²¬ãí+¾Î AH«š,"¯+$íWµô 5ú`PT¼Gˆ’fjÚ»a$Ë¥»¨Ä ý,jQpn$;|8¦õð˜=å; Øéd¯ë“c(Rbqp °Û?ðKû a iõ§z¸ÖBðüLÀðî0Õ¬Wß o4M€aò8†&­ˆjò¹ƒ#ZƒQ| Õ±‚_ƒÎZ¡®‹÷ýîœ-Ò.*$ Wf¦…«idÚ‘(c9bÜßnÑÜ5ê¼2õgækI­?mÏW njcsœ¨_Ë ›>Ü”ÙLâ¸"ˆb’º ٢Ʌ9ÝÈQiqdÙ,äZö0²I« `LÑ2hÒJÀÎŒûù<$0~níL †=Jª~V›ø`åUÁûâxÍ„|/¢übÄ‚ü}+÷‰<‹ç­lí­ €r¢é1jý¿pù ”Pü}^p²“O-ao6ËèÍ‘! A@Êby<‰†ÛÂbcµØpÄg¶˜¥¡\Gl±†ß7¯3»$í®R…™µ?­#mŽò05C`E³ï­Šu…¬€¸§î¡¿cczÇœC.q"%l ç„ö0Ô€&1¿â¤íºÈ4wãæE/úe™H%6Öiâxª%ý˜°Ó—… êÈp~éþšç· ¯5úྗ k‹$|¥5Ã7¢8‰Á2Â÷Ï6^½V[Ö÷⤠ƒS²a.P–ëƒËû`V¦/ñ±ªÑ5XO4Z=úÛRå0$pàù@¡¼+j=ÑBýDÑ >®&2„þZ_bÝýöݯr$–Ñ©ÚK$c]æªþ\üéËàw4SêX«RYÊÁ`j3Á?q‰‚xQ¦¨­£TÔ›·þ¢GgÞ0¤0 ÔXTaEY›k&Â~ð5Q YÿN.g )@ÛÿÔÀµ°>2l0ÜEßðtÚæÒ=üJ€‚…§\í-úW7.pŠX¹Ù~½tº¤˜€HöÉû¥¹…Kb‘Ðb5{ò")l”CD”e þyH÷gbBM€zˆ)ª9¿8Må|Ù亣ÉäK™‰–üP/c»Œ# ò¨ aâ#*0h¥µîÔcNŒåƤ‡DëWð-É Æ,¬Kòv£eOy|:<>òð“´;”¼ç–,OúHÿ±Ñ³ªVœÞuõP…Šäèñ12†hò¿·»‰8LÜéfã:È_¦ú§Ì¦f¢ÃG‹ÎLŒë‚õ /€1¤à‚]–!²Z?}„µ„îÚq̓xÍ«&Ã#ÁÏ+‰M6°KÏ‘jöª–¾!ª•à™ŠõY :O|ÄRdØ]¤@ mßDZægÑã¨@VG*Üe7œˆ<‰|×kh‡ïœ­r$ 9®Õ,>-ÚùÅ8?ÎØ§YG$¨©ÛõŒ”Ï…k‰)É0炉½2QlÏÀ<üL¼ØåÿøÆN€îèCO§YP„¿äƘun_ë´–«ô±<·è\=H•ßí•·yH΃h¥›+sý[D}®É×OE‹r¼uðn‰›óª©ƒ­Mü_W §ZTlÇsG~g`€f+ ´äˆO°õën›U[Q^8eƒ.Äp…Ó–Í‘J^YmGÃ[Õ“åÃ=ßlIƒ“[|Ó|ÝåŒÉæ%ù^*ë,!fÂbvui2y ‡È\ãð§u˜ø<ÛÉÓfyÚèæ¯…Ú¦âÉ$óM³`2*G¦p®j¨ I¥?dwÛª ´üMFœB«ßu\À›,þÁ?¶[¤Y׋R9˜Q¯.6¢˜À Þ¶VáxìÖVoÖ£Ìu7_¾Á|ðþŸÛgðÃzl[Z_ia…àr;4ÊÍÆÆ@~JµÁN/å:y—jc!GW­"ò®“¹ÂÆp°p+X? tɰ$—+^ìYëz„Õ_€ï1œR(+‡?c¯IKÛ#Q&<Ôp ›Sü¶ yé!<=Á ¤7ë>œƒ~,sµ+9˜²a8Þ%¦Ó —ÔóºÁCE ºPM#iÅ"< 4*Ÿ™ü6w‘0å ·±³fT ùgƒÈ¤¨OîáÑ™é„Ì#äú®ç þ»ÍVPõÛ¹1 2ÂËw‹%‚ú-²ÓÍx~y퇾œfß«"FÙoºåª(µ7ÿXàKÉÆm>„Ÿ!|æä:Û'hv*îv^ÚŠœà5¿ivQ“ŸVë‘ÀU×€®º0‡Qß Ï…Ëä4MÐûa¨Á%„´\N²N§¾ç'‡GÄ9DÕ‘èÇ A `žÁ,ÚÆÅú”Ã)Q{d« ZÑY¬j¦ß»EíìÄ%Oúo ›Ušï‘èÌ*±“ü|ª.hhû¸TÀs… 3í~pÅ*šWó–ïñ¬)Éã/®ºPXiÿƒåŸÔÉ¿ùLýo +š;Ö]e¡®F¸bKh:[6ppBëä«ZŒÔíƒLlª¬ëaÙÜéLš:D …,0GÞ3ÈQ¾$QÃlGNñ®ØGeü6‡4R‘sðÓ‚î‹ O/zÙ*¢zõ®·4êM6VU.&ä {R>É'’ ôE MßÀ>­ÞÑúüŠ_ÈÖûÎ¥‘àÇ1‹¦m{,÷Á¿¤Î aå "K©¨A´-¢%wÄ*zQÒ\MÎÕ5oYÆÞ^î'²¤¶ 9q&p0–¶Ôòbš«fF_]<=@ÛžÛ £¸ J «¹ŠAnŽt“,ÎÀO¨ˆEF5%çŽÀšrcã3.ºRÖ^ü,¬:n&uÑè$¢ü.3q”Ò[òÿDÃÀÙ£µTz'Ýî-6MŒ©TM?;¡*{“×­ŸI€€" ImÓ‰·üUž+n³«Í—r}‚Ò¡jK´â˜  _ËK%Y;Êïl ToÏ©åÞ,4,§ L †ŒcX§ +wnÆy£<ųþ·#0Ç7+!nÏ;¾ãzðL`yG"¨Ü¢•°—ði~S‚W!æøÇájÎÔÿëK€¶+¡YYÖÈNŸ7[r¨°‰jgÜ&-÷Fcšß`qdï\ü/#äuÁ¼–yQ%.^)ŒyòݵüÝø›\Ég!¬) C(]kŽ%©%8cßz¿Lè4þ`ëcÇÈnBÀâ«YÐ)•Ð6¡ÈÛ¦éþñgÚ!|&}Hû¿I4IâwSÞ¢§M0”GŸÁ§ØÓOrY|0qtVLï3>å4XCk´V_œåk4E«ôŠ«=ë¶ñ5Ï™n^:mÕØ`©* W`Wü‚²ÎáÑîâUT«ªRáÕKÍrüR}²z¼’—4ì_D`1±jÌÕˆh¦xÞËÕ~ü6VMÈ‹dW½í¾éjvùÄä8’9Š8ÃÔ¢Zé‚ÁgðEº°—U{¸h&äéGêžþÅênªVòó§þî+/”BHB—R÷ÔIÍ0dë¹»'òþ4C=È£ pŽ[oôïÛáˆÖapš•Ý_í-™>cè³ÃÀ\˜K~4éÎè%F~æá{+«±•ºAv2ÈgA-ý‰6¤EzHE!\òNñ4@~e7ôçà\2ÛLÙqe€\ ¦UJTÕø| NG¿‡M¥.—A*2(z™-üMðØÓ!$S©ZçŽýfjulÅ`LK ë)&fÂx=æóÖŠöIÍ¥µ¤ñÑkq”sÂŽ ÇOq !Î\J´ílšÒ &‚t~*ñ#óà F6‘}0 µ 0œëM“úðVwÌy“ÈÉz|°v»±ŒÀ±’btBî‚6qd–gT'¼JµÑ´“„vài"©}Úê/”Ìè—bM=‹¿ãʰ3°5óÊÈLfŒ´e¿\³‚£¶oăHùÔœÜ ½Ñ3½JÍøDð×ë!xþKÕpWSüJŠŒS­‹˜„ßýøØgáêÁPm¡9îuÓËеdg×’°êHG¬|®cïãzd%£©ö ÓVv6™¦¡iGÞ®Œ”«³zXb+_À²M$™ +fdvþi¥¸bÄæÈe…>˜ª9—–ërª¯Ê¥Éœ³äÍïëØ²EÇg€¼g×—Ve¢kkÊ?Î*¹Nds•'üðÛ\È·Ž Ÿà°Ü…0ºZXÑå¢>?Ý„ÐþT/Äã˜Nõ&亪/C‘ ºDKë¯a®ºÏ=zÜ›á"¤¶¿ìÍ¿O›køü}b[7‘…ón´ôçž`wïü’q?wÄÃq„(Œã&2d3‹m)ŠD¤(Ȅ͂à¾ý¾ƒ9ò,¯aÉ´¯ ŒÝÃ¡Ï ¨]·g0O‹ÚyÑ5ãx4Wªö߯6–¤SÎ.ex”G[l–¬CÁ¹DðLPtƒC¹Hä§z^w³ö¢¿à©.á À¡´Ë(§S«hÑ‹ˆ«þé¡„ …ëÕíÍ’É6÷‰Z-¢–¯»›•®½§«}ÇîIï Vþç'ˆ©VÑO<á„Mê•ã`c$Ó_FƒùŸ]9ÉìK¤£i®+®­\!•ÝȦPÉRò@!itã®F¶c#ÍQwÊ’ÊÏ-›ò˜½2¦@=Ö},ž SÑãÂKqçÅv–P.R¸â¿<£œê*ÏÛJÂ=­Ä†¯É¿-‹YÛšîÝíŠQ²ž:æ«x¯Œ |\]lØ@w °h fWÉX‡ìEv=àC~1#R5§n)§¿&÷ Hn?üM^¦t @´’T„#vï.ô˜êiÁ ®Î«ŠÞ е½2A0[ÀÕsÞÊþRc×ô¼æ2ô)YÞ½+˸+Îå Èóœ õwkF¯•L|›™A,²eîsþzœÐ1•õ+Ñ–8»%Ȩ’ƒ¬Ó÷w”*K=Ϫô nLMô\L9&Ĉx›J9-°sS>uBCŽÈ!u´ õO %Œ8´$è*B[î‡ÐÆÅËåÜ”|ï2'‰,…jêó3àTÎ]•ò ï³]QÁžÜ]¯ˆËüL¾/A40¯™h04F¼#†L¦ñÍ®ˆËRDBÁW…uØlñ 0eyíÆr2¡ÓÇ!³_¿U…Úh³€Ý¾«I¬Ý'Ðb„'âÓXbiu `"Ü<¹˜*i« Œ§øÜÁ*~5\¹¨ÆÜ°C‹â=#Úü®‡wKð†€°ENj KêØ&~R „fÇF ¥WÛs‰ÛH\^LìÐÿZ>+¸a@Â3|:ºÙsИ×ivÞ.£!Ïj1þæQ[o·Ø÷O=ÖÔ¢Ò0ÝcÜJüJ#3¡ðÜiêÕ”÷"Uÿ®Æó÷Î1r}4(C!¸‹·Âfp@‰µ#ùÇH T;™G*QÕbZn9$ÐHÈü6€T‘´:Ä#ªXœŒ²³øn°{ÚŠ×j½Úäì$ÿdyywÌœŽ°CÞ¥×p¦ŸdÃÞáЪ0µlšg"%ŽžÇkëj˜ÅÚ±Ü×r©Ÿ¼zõ©³Åª€Ø»_à,êÜCÎ?bvÊKE.ƒÔ=4nGÜfÛŒRšé¬-óÏ+õ ‘²­€½ÃD6«…v­‰ä„àúBоÑÊ’ýüMWÛäg÷Õ Ç_åu©pòuò'£òBÏïÿ)'_mF²|Ѱ¸|ûÙ¼×´K0*:eͶ³½À,ödà¬Ùxn·Árjº3ѵܼÒ*R†¦ î¶]~8^´€{'ÜN7x\æÏlWî¤dò×_ÅuÖf…Ê£¸÷ÖŸ¥ƒ«—E7VW£Dz!½äjg]£ôŠÓj·¬ ÙÓÅãm^&—}V&Ç/ ·b§s IÓè­F+¬ø&„ Œ‡ô›AQ%èiR¹UÉÌ?×ëïŠ(P·ÑüX#´Åå‡ççOpÀ¸é&+§Ú1XÏqrké)-øÛ×ù¸‹;xá­—9 ízq‚ž‡>6#Rç§?ެõÈoç‘?ͼDBÀ\ú{h+*‰í'Å=Wò÷ár-ª³ Ü>ˆ24B\¤GL 5ø:ÁáîPÛ·>=øòÜn˜Xãeò—ÕbN6‘Ÿé  ˜C‚4"¾Xw9ò'¥ë4¹Ð‡‹úÿL§ý »oÅyÊ\·zñÿÅÝ"²¼*z y}jˆkURŸ`#‚ÞcÖ$>P3Bç¨Ä÷ݽÞé,WU$E/TPü4ÿN³FžU¬[Y–þÒŸÙ2XÞ:ØŒÜÑÑãNɹ–‚IÛ›q…ÓH&ÝÒnƒ¿pÃ[$ßÁš(Šæ9sP#M!u³Ú´bÂv¡¼¥ÌáöÓÖ5gäuÒÎFK޾àÞã§@fwÏ¢È5D‡æQM~LêA$Q)ËÖ‡ÔÇ4rxÆÐÛÑÂDS‡¸“ Ñ…&jví«P òÐiò}óp"J¯Õý,¦²-³•EAAWp/8Ì'•Êd”ŸFH^²TÜøl¸¬I­ ЋÂó`gðÙÄù)ŽøwiŒœ?ý£þ´Y<ëøE‰Vp–ßü6k;Ü©sI÷Ú»¢È{áÖ,ÁgWœÛ”%Hˆ‘ã.¾Ç„2¬±°qΩ¿%LÃôøèR¦&¦ÃÒ·*œ¤!Þ™ºzù¼!Â-óŒM… £ó¾ÿ½ý× j{ó†Í×Ê¢¬¦îÜ&½óÉÈ–ÓüI¯¹§t…s=ì˜_ „úY ÇrîÎ5Ò#ÚBì4³BËWñ &¶ÌtÞÚ}«Ì·áb¦¥U Þv [¡&û/9Ûáó9šœ?£ç–ͱîwYÉPŠ1ë/iÌà-Íë!¼}mÙt‚B¾¾[Cí­–¢AD-Qb„݉ŸüX$W´îkhw`‰Æ@‰ßþǶ’›¸¯ÔÐù^ÍZKVˆU>Cð6 Õ;Ýà{ÚŸ©©Óâ§ZP³sƒiÒú÷wP¬’.8ÕAEIiÉMcÄÐ{¶«Gü­>¬Å-žžeÔSå•&ìå±RP2H ¿N ß:éÖ·¥Ó”Ò&í• Q`ê§P/xí!<®$é•h}z£1± ãÎü6|]Æ¡bžFO~•óxÆ]ž ˆ~«^Rç‘5ÑKëê<ª’öD ètßeÀ}¶ ¼TÓC”hmÈ/Çã¦Iæé+††VÒkú×=ÎÒ"¹(ÿµ}ÄÒ¦ h ›ØaGrX!Í%‚rÍ©õ~{ôÍÿà¦VU=+r¡Oís.ÄcxNpЦ)A¾Y žH ‰‘òþŠ)ô…݆dòvê)½ƒXüT¼¼ìÿ2º—TÉNÌši3ÚB˜ Ý&lœ&k ó>SU°QqÊd&û2”Œ½iñü죗ïé(Sþ—æÿL'6Jç&îÙ»Œm膴‰e";\½Õ²n`=½]óüL¨]]§šj¥ò3ˆT×Ý—ÆØÑñª -Ö(¼Ö ‘IìÑ´ÜTµ@|ú8tˆ(.qYµ¿E£MºoÃÉ‹1÷É YÄ%ƒòXPÒÍA=˜TUµAO[¿ È’ZÇ©4]Ó€FÏ9øŠy­* Õ•cs'ƺ'wº~Jtn.U'¿ YK˜§Ǽì.­3õ+”æ}¿ 0ûF¥‰ïåškÁh‹?O·6ZÞÌgôwùëÇ8›^k-ŽðœjóãL…rÆ×ÀQoƒƒâ a%é‘­ˆÔB¨¿v“;¦›Ó»Òòµ:Îßjô.ˆ•úج4Øðg+·ºXÂÑüL×&O;®ú»BØ=‘ôå Œ§© Ä•Ø]‘b õ¬H\D=ã¹ ù?š¶JZ\Âói·8º$ÄûwÑ[nmñ$¬¨©÷‰GùFº£Yôá]„Š÷yl^|8§­]Çp3²à»5\í Ã$ zGeã(}w•«¨“€Þ8Ãc1ÓŠy2ãÆ%¿6ú‚ûÏ2ñ‚!Ý:+òš, ¡šÚòåþ‚ÄzJµêæí2$MÍvYw‡‘ë<5…rº $ÁÁÑŠ‚ Ëö°0À;æg«VàL‰$"—¸›ñŸèk«Ä 9RIí®2wh%;ÿÉïn×llo½ëbRÙ“E#væt^ùŸLMŒü±¢ùy·£…óÈjfu€hÕ¿ƒÙa®•]Ñ„’ X§w°„LbÄý=D›H²€±!I ›â³í„ªÄÆùýü"žè‹s Uõ½·¤ â‰)¾"©'ûõ¯”eqQÙU£‰V‚ÔEõÖiJT×À1”{Ö»fعG%0“íâ…Ë£ÂÒáu˜…>áG}TšE‰`ì¯ä°³‘ÂUYJÔp™J Ø’¥DÇ;~‘ ,DÊâ,@ æ½òº%WÄ@œ%ªôìº'¤8z¸6ihуuÎ =Ê<‹¦³Dþ+]<¦Ú)_ÒÈXbfÔŽUò©Í[ͼ]s{" "Õü{:g'·C¤O»hÄí‚_yŸÌ[ ìL»7ù n £¼ýÌÐf;Cs¬ºzúŸ‹1ªdRØÝhÜQÞöù÷ Ç {RC;z?§K\™B$^LK\‚…Û( Y“ô¥F‹î'Ü×ãªnq,¹dððS¡kyñÞi#A$ò7Eú^ÜÍû73dÂŒ` ¤›ŒáÉh!Sqÿ!54­9¨¶~èZs=ê¨Ç5ÈÑuÙ0T„x7”"äåKæ—A¾|»-¢„ jBr‡TÍÒÝ<7ëy^‚bð€Q«=¬¤ÝWÚf{H\ܶ[ÞFñõXöt‰NpKÁe.ÌQ”1v„åà¦Ô±»#o†f'eŽH‘’œPÇ:\ôx< Ùé·‰•ýÖ¦’MÔÏKoá„‚VS>[˜¸óYÅÄL^¦ðh#-;l³3öÒp£¤g/ú>ŽäïjKs+­ä· !|R’‰ øk$ù1Hò„ÓØ¤ó=yì?Kë‰0gàBÐâ]VÙøô“XÅPòt`Àmn[¤ã®q°y,Ø‚`)ˆFW¼üJh“1Ï‹Y ñÙ,]Á–ƒª1⺢C3KüÇìO¬—;ðJÊ3•%GèßÕø©ç퀻ç×¥š,)dJÎ,PceXÂ?Мfd`]\½Ñ‹ÓGb‹¬Úîù쓼Ѿz¾à_(¹”ùjRM±†3o§,Í!Ð%+—0'È×¥â\Qãá  ×TQD¦Gþ¨º+L‰ÎæA„Ñiׄ;}¯TÏÞUÉÉÔÚ‹Üi¬$5·uý[ºç´öMRkoÚkœéëéùв…ˆ5å0m¡’ñtƒ„SŸvHª©”¶~µ+vrü5U‡hN\¦[!ëræTÿŇÌ2ÁæÁ·Dñ5QŽuQj>:ßå¿“«Ìk¸¹Ò=M«°SÆ¢ºÓVO÷_s¤ÔQJã¶ ú‚¯ÙHÎè†õU•NÉø§Ò,׋:fÓIûó©:agY ‚½bðç9i+Ÿ÷šÛÏsþ¨±·èv–þZ〞.cœÍå<µJ_ãußo?~é/ã=MN¬Ë\ʧÊã‰[$bÇÂÆ@²Ñ›É7PàïkÌEøÜŸºƒm•œyxzv1%[<̼ì’DIê5Œ×ó ¯Ãü5n"ˆ:Èã–A…±–©gyÓúÏC<Ñý9©S«)ÌLŒȵZi[ï±pî@#ì0!—jj‰:nâKŽ÷·þјN1åÔ’e†¯ÖVWœ° 1Ñå°›²ñÌòJ ÓP6æÙ| N) ·´Xþå{ȇR€9%vrþÝÑ—Y¡W ›Õ6oK›ö8¡ K,×O];éÙÈ©‚x,„JoÕ³³;vL\5ö{–i¡µ›Ëôä#uxVÒh7{ÔËUi¨È)+Ñb8k=Jg¡Ë2’ü6yNŸŽ‡ÿýPÌôÄM‚ˆQòŒ¡å³ôrõ¹Q.3i+Y×k§SÍæ¹Ì7kHæ@¸ ÀŸ_éÍN¿~Sè¬* Ô®jþJêÜQó}CÄå@ö¿æ—Sß67ÓM31i§â^/¥uÆFÛ÷†ÓÓ •®7ÏðÍXž…ŒTßr~:5»{H„¤Ñ@Eí¢«Àï=3«5X‡),r6šjÀ¦Ï9*ù"áîñ+½ÖîzKغ–Þö³&²!ˆÞßI¶g«žž´Î%k¶±Œd͸%ÇqDïü4ÿ¸Ä ÂÄeZÏðå9¿Uñ2øÔ;É×xeê güzni´ö$3¥uͦ»druæ.Ç(‹(agÄßú{\Æmø°ßæèÔ5 Ãs†ÒÑ]||d!. NÝK7^­|·®ÐJ½ž"Ou*- þ6Ÿ«\ÌÔ9eÃ-›‡aê7 &ƒµô¸D°ƒY¾ü–D€B+ºqð£BVàl½köñ•R–=ß=× þ=?ÀŽÀ «Õø dæÉ˜¤l2¢Ö~ß)ãw‘(‹IöP}EyܶÔW%IÝüî–»1E“^>¦+áRÑ[>@Ùx­Ê4Ðô–+ô‰‰dØød ©Ú¨·í`‹ŒM ž ´p4oF½ÇÒ@v9‹˜ëwÛú›W$Ù á;~zð Õ"2äèÞž¥é 릢fŒ¢ Í\ÅùA"Þ+5 Ìx‰WhhyöÑW|iÙh„­@œû§¾ú ;q œj Lɳº5E‡ÅF5ˆæ›(îÔÅCc­ƒë°­7Ú²ö|Õ½Ÿ†@e mpChÒ {Ì’-7OC¥B4ûEù¼wÞÉ­j'ï£(tû¢•½ga¢Z3Èó[$Õüõ£&ëa¶ê ÌQ^å‹Ûñ &Û•ôØè3š¥¿ AeY^?î¾µ2ÀÞ¼‰”ÊaÖ~¡ôøD6ÖLs9éK^ oðÀAøóì¤õE±¦êFÿ‡Ý>ʳb_õvÛfX1ãlSõIT†àxë(ÐËý‚Líþ„"¦Ü­UMòëÚèTªçïæ|»{BÝv´ÕPk`Å7¨8±äýŸó] ÈšbOQágÝ›žŒp§"—ùùƒÇ÷½?ȸä;|5£×‚¸o“³Q1ëCG%Ö3VótyYÑí7öÑý ™Ãdyÿýû@¨xíÊ_ÎùeœU;âÛ\€4ïRekÃÌê÷cÎ;òûʱïõKûyì.øÐ-‹)ú~ŵ¾êS&n;ÍÇJÐzÆò’%”Ì.*.¢¤"lÔ â;BpøÚ¡N] ¾1<´½I§Ž-÷©{´ÍTfôãð ûv0o:Û•øÚÒ;.¤MX4J×XsífŽ~bOpW‰0y•¤U¤8A§ ü¥ü|·M¼Ž}fr-"hÁX¦¨„ßÞøë|äÅýòš‚ôÈ#Îsžfš"û/Ç-µ‰»a“= !loð1(//MÆÿ“½%b %b³FTÕ¯%ÑJ&.ìzFOÁw·ŸêÄMÎÛˆeL§Ø „¯un­ï…;Âø.§;ÊÍ]#HxÌÓ©²ý¯à®“ W™"y¾P¼yLlìläÆŽmKÐ Ð\Û’Ì Ü8RžÇE,êÑuâ\ë§5|¿ºÏ?aq7jòJ­©•;.œFá¶.úðŠIšÿ÷è+žxü<:‚‡A‘KUÚ|ZùN!uÿž–Ðtñá!P£Å7tÚÝΔ‰~.®Y Xü—IÏÓ–^ÅüJ9Ÿ«´~$c¾AÔ–ç t“Q@¼À²¦vžµ H›ÝïÍéC•KœÑlŒÓÌtê ´›×»Œè®`¿¢Š¯²È‘N ë÷g%”4d ¿î“¯~‡mÄ{àñh ±&—xûâìÖnœ5èe_¸Ä?SEA^0“üqª–{ CRú¶—,HäIÚœÒI­Ón"PçY>$\±¥Ä— \ ÓT;¸ư¨Óý/ç®.©•Z?„¦|UÀ;YòõV©cs]®$Ea¹zÖ0‚LüLõt{Ì@åèM*ÓåŠÓ]óîz¢;‡x 톬øWz¡ù® úqXëag.–x"®Õ‹ÖÕuI@›Óð¿`CS$ðõ!Øž¶Œ ûí"*(ÇŠä¤[ɪlüÑÉÔåŒÓv':3!NJÁ]YáQ-íS9Žד?qlž(šÊÀ30çË  q +Ÿ+ŒfÒÐj}#o›Ÿ-àP:9¼êË\áù£3ÇIyՂʵ{åÍ…žd÷ƒŽiaØá$Üß"%âÂ,*l=Aµõì?Ùð{µ8ý¬’–ñ:݉†üMbÀæíUÆ»¥èM`èPÖZbÆTÕŸëoÄ> É ›n¿m{‰j 7òä€PmИü"‹®0”r®G¬é¤N ’^'®Î4Ö5¹«¿á7€ãñ¿«zÌ¿³Œêqo’&cª„3%BhðV¥£ÔN’{wéoÓÉdš¢Ñ_ð§X'3½èeœŽ|™þÐRÆ#üüy^Ô_“1Îʰ͈½,œÚ°Ì>lØÆ†cɆt^—±sA›ådóé&¹ßZ«´›McEÿaY.àH׊ü6Yfd¸ Óß¡xÓ,4}žEÖÂ%£:SÎö]yµj[êÎcd˜X›ôªSñ­ K‰ux|˜æœRZ‘î~h³'÷ÂK¯^A3¢1œÏ‡²$Ù<;…gƤeмլ+”é9kÐï:uhô`‰¾&e‚ûÈóå{FoN®³%|~¤˜ÊyUvØ·:±ƒ‡Û@kâ»H0“XàZºÔAc©e­Ìde9±ipœ»æzFÍo—•î]¹ ”ì î>þ'[û †½:Ú2c|Û¥¶¶Lx/à;ã–OggS€^N¨älåŠW^8Ïÿ ÕÔææåáåæãççëéÿ¡Úìíñëìÿ³ëåëøõúÿ°ÿÛ×ÒÔÕÓÒÚßéáòÿµâáèõòóü6gYgò =jç¶Õ(üHÍc)p!cùRï+ j)[áõ"\#çì›ÿ±¶j«­Ï󉈊Öèy!—¼ÓÃéEüíûÊí£Ÿ}B|Iòe™ ”ï+™¼ìßçÕy2((y·÷næÅ˜óª éOpäP£U*gD_iC#-x1ÒQ+éµ…TÖÁ1ýE(D‰LwåWý÷<;cÏUìr©Ê}÷µrc›ŸLiÙÉü§ºÕ¡Ûñ-Çí ¶iA?Kα–tüIùq!jÜm´ØÝô­F¦Q­|‘\Ý#ÓÇñèïñŠÒ²î4å¨5|‘Ú±¬ÎÄV§å’¤Îl_ËÈ4;R¼W¬T´V*Í[>r ê(X-s¬·bÚàû|e„¬‹¢ù†Örv Œìk`Dz™ÕÁK{¯¼SA~¨ô"ªz`wᵹݕ=c혼ò=Êà&m­hↀnêÚÊ@ߨ¾[¾ˆuÌVHÑP­ü‡U‰µsúu­>v*Ô%ÄØµd'æ]^ŠY‰HM9—`ú 2|TCô~¨c'ËM7%ÇÏõ¬4]êrdg\3H2>“xH`/Ö DŠ¿páq$õ²qÿ¼Œ>Dþ@ 7iû& ¿¨qä…y>ísî¿#Ø‹¨Ñ#L¤Œƒà¹¾ÇÊÀ ñJþm;.3£Gº^‡š”E=ÙøÉd;³B ˜ê¿TM¸üL¶Zðí¼f Xt³:ig³b/"´’Ý®„Ÿ½L®Á8¬«4@üM-&“åY<Àù¼ÆZÕõyð ©….ÀÎòB¸gЖ~–5½=öàtƒµ#¯¯Ž¥8ÕñõºÛJvÍÂó¡øê·Ì"„ÿPµÀ¥ýIÓƒ%+Š+k¼ÖÆâ‚NÓrlFùàO€'(SKƒ ÈT{{ŒBj/‚]ëo,$¸I¸y¶L¬»| ýÈ?öµB“´¯0xб8s÷çÛº³¯Ôƒ–˜Y`¨rn‡&›DÃe‚R¹D,(^©ênMš÷KWþ]ÜèaìÙµ„—ó×[GÝ3?½V[vÊiOæ DvfÈý•3T­þê(-|`tU8GÉWyCh›{oDÀx·IKæ ‰ƒ~–« Áå:£¢[É-Ð3P…8ߦËÕW«ÀM°ö…ÜIl\‹‹ñÆ5íjHÿÁÌ4º!s[»ëØÙë~é› œÑ^üM(Vz/„$ü5ˆ#3q*r»•;×¢Ç~xv–m,h §E;È Œ:Æ„+VØ·†1ÝÊlÄ@Ãosa-þ—i¯Òú: ÞR>œ[ªl¹ö‘9”ÐCQ°ÉÑ2 Õð ѾŠ_\)¦¸+Z͵ÚôlØg‹(¨³[¾‘T† rp³'šW/«t–eÀí@ÑÌ(GôU¥`¨¸ýLÓ3r¿é–(íßÏòã­Ñ ´ýãëÃõ* ]x ðÏãóS7/‚WèŒÃÏ‚«TËG8îKhGB®E½3ÿ9w~Œz7õöyðko¨Äf½Õ8õÓWß#ªµg•Þ$UQ?wõßÙw¶b`*‚ä»Êá–w])˜}~‹f7BfRÀCƒ§Ðøºž)ñ¼à¼ÑâY—…Úá,8¤^E§ì|Ìß?À@Ùz²ã|ûUïDœ˜Bðp×œÓ [ŠàôÀ›Ë‚Ík›‰*˜æŸ=ÛÒ^hdßs&A•²~½NüKS—ÿr¹ié §C Æ)ÄÄ8[ù¢`ô!á ÐHºYôGÒqP|ê[µöi|éÚsÕwKxy_ƒ(9*ÄÙ¿Û £è;Ô¨ºñ˜ZC¼;»ÿƒ(O„˜c0œ#õÚž×øÕgj»¥º÷D$Ž,ٽ넴 x¢óÝjOÌ%@%PœçQÂé’PHò…´+Ú9¾øÎèð£ØÚÏà§nË˜ÇÆÄkV*¨ ~/ZÝ‚^W³éÐ]œÃ5·‚`‘Qße–ßM>q{uÃÞñÕdW¢Û[¤šŠOsx¼*¬pJ¡\8VdÙ‡Ç|ʯ›2©N² Èóá*êJÙ%ëB·RPJ0 ¸';Γ=w_Ø]® y¢!þÞJåîÄ^;ÖÏü¬4ƒ„¯‚úÎ6á•WùŒ ômx¢Å‡`/aû»SÍ­[Z+ùš@9b dFÞ‹ µÿƒ /ÃF&òÒãhxö%èwÍ,ö®fÖ€áW¶Ý¬ÿ§^ʼۘóx•XO„‹®B,BÇx`ßh0‚ ¨Aª9,¸Þ-ü.$Ìma>´o)æ³-¬¾Ýc÷´mùžNüm´Å‚ÉÛ}O3YŒâm0{¢=x´ñ ='2~æ&zj¼#Tðßfä­~Är®U’SEÝ}¹,A{>ÝËP 5,¶ £ÓAØ„ÊÊ׌A’þÚ×yÄ„-<–ºârÀè‚›KÍñ·¤<¨<¤x@¬U¦%DH£É=_³‰{Ì좱EN†³y(9·Ž‹!=qÒ)¬ÅÄò ÌÜï7ŸR[' Í7‹±¦ÐÝЙË2u6Í+êÊ0/Þ%TŠÝKŽ.¤f»{kü5J‘å÷„y‹Hºò„%iOñÚ»i ½&Sפ ­ë•LünáÕþ´}2-]$èÛFÛou´s'{{ªŸðlóâü»–ïf&z¢fh%jÕ6ÜßÈÁUðK»°îó~*Ø érDU™è·­3E Ió›*Äá‰tÛw÷Õr ÞÑéÔ¾ <ñTvœAîWG’™·Íοô_ÚZ9C>3 X£ìÄ›`Ö€Y±ä4{Ä!#î“ôË£W/äÝRû¤ê¼š9Æ„§¾,ä41/„¾½å6Â$bOS!ÓId¥LüKKk­ÑE¼‚XðívÔÉ0ùÄú£Ð~?­¯Öñ"¾pÊäD,#¯­#!tÀH-ì˜yÉFs³ø‰|ýNÓN×BÌN° €–¶MvÃôÚôÈxý[ 5Çãy?tƸñ—¦Šà/å)u!Ð$ûƒ[›öêì­°íÕ†S&t ÅRD¸Ç°ß?ÆIîÆ¾ù­<Ì“Ï/¾üÓ¶$ègŒ‘ͽú37«ã‰ â+­–¬ÆÝõèåÛ‘ O’¼áòð'þŒðŸí¸°>D.®_Â9ÒSÀ“ü-öèú²Ãª™‚ÂŽ¿€ï àü{=zµî+Ò‚’ŠJµ®ß­3„ vÜÂ6×,I„ZB¥nžZ éÒFòßã² õïƒWþ°%ëÕ°8³8îó*qØŒŸ>r[…KúVà%¶¸SqæÔt›#o'¦-zö¡b¿LþõÇàý–¸‰è¤:d ¦MzÚéÓÈHw\ ¶ãp%>³ÎðêC±Î²?8 ߎ ì{´¬ŸN*ôz çÂÔ9E­“§®o'ä+Çrþ8ö‘¿k 8Y`~Õ_Ž÷"1×ÏtäÏ*õ+?Þ:b3;¦åÍ4ZÏâMeÚªäüù~Æ—±Qm²¤?4î¾>*Í5¨Ygm„Rjì%$Ú•¤w)Õ(CÌgAr¨BÐGû36qÐîÜ݆{ûüHÎÑ ÃòO Ú°ñ_LJL™uÙêÒ‚ó¨×Fø*MåxÑ,ñPN7`³õãyM߯ó5çm”Ãä_Âiþ÷Ÿ`ñÆã‡83NºÛòù,-ÃŒž1G0ÄwÅÃà9u>%¡Ê„D¸ðÔöud=\ÙL&˜ß[¶ü7òïxWM`ê‰öVò#5 tÜ5ÛÁÚFÓtÉlµ²›–먈¸½Ž­ "Zç‹“ ç¿h˜liè2$à¾0ñ!8k=ÿ†©Cñ߸:ø´Õ‹Ñf*Ó^¯+½’yBðÊ}Sì‹ ÎŠoœ&½ãO£8–•Ï@"×ÁcEîÖï:vjùqµˆ‘Y™ëýToZ¦Ú$Q(LÛ iK=÷ § ÌF ä"ĸ(AÂ<ç›dmI}3³.|Ì»ArÇ$ð(Õwd0ZŠèdÃó ¾r-…6Ë-±ü6gzºÚocÖ}; VõpOúqk/šD ôÌÊ7ŒsͰ²‹ëÎi~ï™ÜÑóËdƒâêŠ1Ÿ…ãP´yr99Ð響[d)¹T˜£˜}»ä€«Š2‰æ#«ÐsÐo?Øzý[wžôsÐŒgl5Š­é\èLr†,Æ;JÉÆZãD†g²ƒ´";¾ÿL¢Ü£Ð BPóº©éÂf-9:á 4È kûÃoâî[ Åk«5­ìê!¿?ttœñÂÝ\Öù(aDÅ­u‚2q,¶¤<ªÚ»ö2®É+]š@‚<¤ð`«aëKüÆ'7ˆ´NTÅŸïñÖŒ‹l¸¦’^òøK»€´/ÇèØª–1a/г³ù’Q+’Ÿx"¸Òb8–rVêYó…Ót ÿrÏF:Û¥pµŠ:lÄh¡…dìT7F7»Ý^çà mÓ½Pw›Â€ÚŽi‘4!8x—rÚ<™h¹ÌÝ5œk€®ß»óÍ&HÓ÷)?¶»íÛׇëfQÛm”[Xãž2Ç GïÁ"!ô%­™Ö”´ '-jML˜;±/Ãcœ‡FžIeG¾›Ó~I;ÿ¯Fù™‹B$JÿÊ`·bÁþ•º¥«K† OÍ,K/N©ü6¯áKœü,v‡Â6d¤?ý¬m'K 2T=åToUr?ãOÜQ./Ïfâ4`*`y™ €1Ûß#¢æ¨GxSp$4þxMC¡ÎBÕ}2j‚èlM‘º.2o†©$BÂì\i䤭g©~:óKxk†Ç“wTËöSy•îÐ6SÙî±¹”…¸© ~ÉþLJo7¤]œçå:ιÿ3 a3ÙÁøÐm[£~ŸÍìÑ|Ýlw$.ö4'ÊÍdâ¢m,AŠy»¡3 ¢Ï\3brMì(Ôá\¼÷•¬óôã ³6Ť(¯îceÍåÒüÛÀ"^mréÐlQZÔ¡!O€òÓ _rÀV.ÊüfEV½͇¥¼)xg*Xwfë+Ût«;Nžé\È‘µ¹qS®+QE&+ ¥>µîõ{Âa|ס6DðG}=La!ÆDßWÐ&#@Ø)3\SN©×SË~Ï'6~”mø$6úa¯,tRIw„è;¯AÇ5åÃcº.$ôpœƒsh~Ìi G Fp33Þ†c{f…Ý¥hðä« Øµ³Erw?þóò[CÑñ^+Uy‘¥îÊæÞ:¢«ýûg²·Rvû5"XŸý¾‘ üLºñtßÞÁ8ˆz›jú{Ø«¹gZ”VÞÍW|f(Ÿ/ìã ¢q¹P°›ºžeZîÑùÀ0l  ù¶çÐ÷à\®\wâÔó™Õ ›Š“;ÝrÊ­ÎLJÙ–ùò¸?è†×àdÌÿ ™¹akl(‚ ¼°UçLò@%3¾Á3èVTبù øìÃòÎUœªÙ1æP0ÙÏIä<¹~€½œ¿þb‰Kæ]÷! Bã!Ñ„É ­Ðä¹ëÙúš„høvÖºz¾~þŸåJ6ÖÓgù5Õt Àt‡Ì(!Z>pËã b‚7²îÔÀü|ªJ[I‡¦=¶ÿi¬õÄÝ›…´‡ÇAH<:ÂMä…›Ë{µSQÑ¢hEÕŽëkã¶“u÷ KÐ2î*ötñ}Ý” «y›L'(Üvê÷e-(ºË¦Àí£þÒÖïÖ bšÓÌ,@õxˆë§¡©v ýò.m\j¤=(ý;”¦uñ 2E623¢d|ŠsI¤*W£[œ®Â-y /ŠkÁ£gI?1g+U‘N©5dòtuvÌ8>†ùSjPkªÆ2‡¿Cˆw„Ü<nc‡™R5¡Vÿ¦»ßY@þžr8BIňpÚh%nrúÀœ,+]a¡3#rG]ŸœW'òšÍ í+wkÚÍîå鸟òÓmæSW1i{þ\FçoÆ3ä›Ä×ÿ avO¿¥°p˜RJ—”ЏÙþš`àøfÀ²N‚‰N6{ã÷àDzçsÃÑÙ»OIw‘e¡ë'çy†t«QG[s% —ÙÓË[D+òÛó­Œ·Š°F—à†: ÔðDr¬†UïféÐ/¯Ô.=C‰;~ü¹ßöåkü6}mvÎðg%sL¹^¼K1ýy'&bÒç¢(póó½ñ‰LÄ1ZÓÛ2öí!5áƒì¬!a|²ö?¼L p,-ËËÂSF™pKAÄËÿašvr[W²5¾±iâ“>=~¢a§3 Ø¿õåšO3ì ÖÓD÷Å1¾Ç‰HWt­•´~€MÈøkíï*&Z™õ©?ØN'T¢.Ì^ìÜÐËò¦aíš"¨Á®³~„¢±#}öf}9U•!—Â’|z5ÝoS»Íµúó(µ•Å/±P?uQ\+mü1‰™FÜ)ÇL-œwçª{=k–ž³”ï€2z_k€ƒû_²w‘BX(¹¨èÔpâöQçî _ Jcšsn [<È?¿˜·âY»}je™n1F%ˆT\B§h×+‘g;ž/ ©¦c„üÑD‡¢ZW­´r‘ìOqÞØ˜²ÕÕUÅg~_—NVÑW ¦í©¥¨6K` -ˆQsCˆ×HH§ J˜Ÿfö³‘Ç×ϱämø˜ë~¸ÄÞ®·ó­äÁý-¹XGMŽPÏ<îÏ»³-çt ©;5]rm2îü6ky[ˆÕ%Â4QJE`ëGBÚq¸Oã C‡2zÚ Yí&5‡ÂIu‘•¼•É ì¢[[ã +B|>˜È“âi¼¢o#×Îÿ ÝÂ3²¬2¬„3û <7›äq\$3•?8MžAçÇÃãœÝãm ö«ª^²dÁ$‚@áœ(Œ2À0[ê> –²„®1 ‰¦Û–DøÏ‹ÝqLª@ìùôT¤Æ®iÕÜ@Â1œ¥Ûï3˜Ç׫T‚ý åóÚ7 ®•Va9€ÕIZ;û"Åï„jÄ—.Yœê„$`(,7Ç-“‰ÕF2ï%èÆü6nÔ²!ju¢ÙYwÊà0ZÑ£DëuGž@þ²Ž9ç»ô…úTÒû§”ÝdÔÎí«éeâ}qy*qExÔŠK¨1+ÕçœhóLxûð, í> m;Ùcž3ôÁ"\@Ð#ûàY á.ƒÊ;²3笮;ÄD'ë6Û!d¶ð§(Å ÔnÔõ·%ØÚ? &çñjwcQéßG5Ánì /_—g±RCýkfö½9º3Ýt„VÇ {—vÌGïÊŽüÄÕ-Oâê‘€Äe03¡~ÊÅÿHmXäØiÊšlEÀü¼ˆ³o•®,4¦¹«lßx¬× k޽gÆãöͶ7#4jí "Æ:>?),b³ó_ð°L·óTQ–V9êy}6µÑm壖Ô‰àäŽëä i¤£GëN’¦Š–r=F²Û0¶²‡6êI ’6=Œ7ª6ÉÝxÂ}ä¡-=µ¨L1ŸóNû6ůD•ÛŸìs€1áÞ€˜*É8û;¬ñR'œƒèxD(,¢Û[î‡;„È¥rœÿ5>Yɦ̮D6JÛ›Âk}ŸåòIÚ^êÐý‰üć±ˆ:7±E7߬xëÕ\öÔúâO†[®ÀAò.NŸ¾ß¼ÜøÙ:W){¶Ì_ý½DÑà¶ÿdñ)3÷ѱf[û2É)Ÿ÷u•56·|È w½P‘L’‰n"Óû• Ç²èWèV'›ÃùG¾åÔ¡#±àÈ[ÝÃ?íüK txN6Ò¡m#m§FóÞZžøË!ø–C‹?KòìES÷<…ÓW]ÅP˜n½: ÔQ¯#í‡ó!AñÕ_ìïJì}+Öe Oä˜ÕÀBÏAœv~â_¶Äƒ g[>ÃÉI“—½-$”ç•©‹ü° OPKLPj®Uó†P|ø×FÕI¨Jq Õ˜_Ñ9^U„òN¯ŸIÆœæç4ø‰”ðÍxi$[½… Ñq j’ê7;ÆðìWD¡ƒ´¿l”Ðð]„H*ê¨ÎûO"ès˜–È->#l3$´5^îèàQ*N{-øRïÈ[p¤gøÕÔ¹í’sKª#Ðþ ³Ñ³BrPBµrô5U€%ËbCB®ªúù0‹Ò-gÕîñ×ÂBËR ó¢d}™Š°Ì ñYæ½>ŽÆcWi߾ʴ©« ÎPƒ2eBÇáçžh©î3®Šæà™À²¬k–s‡È žýDß²VzK«`èc)ë MrÇÔ} ½õÀ½v§YXxénÕ$?ÃqJÈT|áÅÝræ‹lˆ=öüMdFÖr³Ë( ]ù4;˜ù6 ½¡«G6ÄS.¯ñ–þÈPSëô¦l‘±CŽ·†‹,‡õ“ÔDa89ߘw°¨0O¨jÙ@V) )Lô>‹pŠáro×n}Þ¤óI"éy8HÇÀ‘ÒײÅZY½>ÿ‚ü<›Hód[(~qž†[pþl·@7AÎ;ýt>ñ'Ëús5mî DiÌè$XÂg…ö>ŸŒêúµ‹Ñ%E8±R ¸`îY§ƒVÙó|ÐSMcY’K©|Φò¹Ö.T˜²G6‰üI÷2š³šµ¾—è„«)-9Þ›· vìÀ&± @.Ê›Îd@°M?xjÍúkíV0 e÷ÌŸ6³Ïª>Æš‚0ÒÙíëŽÈgCŒyü¥Tâ]¯H°çÐøÕ¼¦Zö/‘ Äÿ9Dˆ…J‚·‹"LS¥Â4MºgÖûIZ&¥ ï¸slU“5¤YÎÉÙÞ–N%³^Ùõ ûK#tTDIÜØdTJðÕæÂ›<Ê’L5ëJ‰àyÊÖ7IÛÅ¥üÄ7¥Àgšmšð7ÊÆ±Eè‰Ö·F¦üN”êMb›6³\Oà®ðiµ¬Gå­c ÚŽïOã\ÆõР÷ö§h.pa“<5Eyòä‘_Ø1Œ¦„VM~¤¸Ö½èÌÁšRÉ.ÇP§e5üg˜Åާ, ¼ù"X|ekh­Ì»}ºiR{ýr=M![ÆÃ¿±‡6ªË|Wö«¼³—­Ñ8gÞKvl±Bcxi{é˜ tO5Úˆ Ð<öþãFk)³Ãâå¤f¯3xð8ÄöoÂ6”¼?…”¯ÉË¿¹­ ºâ«?vRH|OüM–-UrìÔwO|"‚¢wu;$‰y¯lK~†ï À%•¶ÔŸCÉPü·g·ä&u ¥õFDæúÛKËE¹·ÂÏ',oöÞÞ?O/([Šƒ®’@¥•Ÿª ^ˆz¿9{ç…4I©Y0]6L±Šg`€‚p!¸ÙŸíÂHôµ±Áœï!(û²¿À„ÒÊr5a_‰–ËB»ù*_Ûû ¾}1@)·WΈ®ÄXš ŽI޽|7=Ô —7Œrœ–ßx÷Öü gqî.³æCü0™ï•1倆@Ȧö$ßÑ |HÖéŸUÔhNS6á°mxB^òäßÎ’|±Ê‚X-l·<¬÷ÝØ%¯MÅBj¡kÿ°Aù¶wíYªËúgÖ^$ÈÎÙùl5-½Ü—BFúLÜ{C½×3j?k!¹L¯ú{1Êr%û ÖoÝo—¶ÔÃH‰¤©÷z÷ <6MЇ3Ê^ý«IÓÞ.mí  ‰9-hµóâ.Žç‘°ñS3Ÿg‡ÌïüMWKUv4’¦3Ú{@z¹­–!EL´$ÛWVDD?—6RÙxœövxè¶4âÂðLÛÜì°6•·¸ª7^/ëò¡1«òiókº„ZÁúïwv(úÚµ‡©ê›M§þç‘ÓLn?_WK‰Ú!pð"6ØYÎ)sR5SêZLËqÃ$ùß#í÷ÈGj¨/].!Ù#íK‹’ÇÂ8±€]ž1³û/ϱ'Ã?ãC2Ùó,$%ž–ƒ»š4|žóâË §™5JNDâ‡Aµú¹?ú Ä§ªt`™ü6µi„Òpñ¡€sûßhÒq@i$Îu›)tšŽo&E‘À g»/Í:AW¨ ÂöÖÔ¶ÿ»› \ øn“$Ðy®ÞÃßΞr…ÉìÞÙŘí`Ѻ=—lôáe±CÀº‘ÃóÆå¶.+cL¸y²Ó Wìkç¯ ËœþýÉ‘¨5}y•„e8ar«D˜6Ú›V=*£V /ò…º+ˆdûœ·øJ¾þÚu¡;æ±´"五ÀB‚—óåZ ¡‹cWv['œ‘a†¥ü÷ü êúû^åû˜G²Âb GÅÅ&eV,Є/·í [ šÚ„ëïëô?'†ËP ö²uQsô-Ôk¾þáÂþÖ€Z“è›z®WBv¡ÅÂÝrþv[³Ô–Á+E’L]0¼s%…ü×A!%ubʺï÷µ¡šT?€mã¬û(ѰÅTU¢¹Ëô±kmG_™ê}suœN¹ÖtŸ±8bHŽ7ò3iÛÊ4] 8ùR·Tg5Ä©¿á_|kx¤ãM`Y{úZÄ[aÉ6‹ÓõV»à­#­§üJÆ…A¾“ÿí¡¬Û˜'ºiQòiÍŠûÈç¶$o|!Ü=k`ÝóD¿ý˜]èØÄéžÍA±Æä™­ß~OigÇoT—€~R™ç…×Hòd“‡ypÛº/<²M•À¾­vLßÒ5ð<×`pEï*¦yùg¦<Ûà U_ ™fOP§±çhã\]mâ[$î÷¥ 2¢¨üZE£n»À™´ôM‚–§²èùëñÊ>qiÄj×8¥M@V!½Å᧨+Ò¾«ðŒ®’˜³¿IèÓq6—CÕöZj:¸üLµÓ)ŠvY|Iøµ [³èBI4­gï6¦Ä]Çz€çÿ<¯ê_h:—s­Í™ ¢]\ý§=ä¡S(#o!åÕšýe­*H)é–¾õ™‘¤y¥¾û¼Ó¡>š³ÉÍ—ÃÚù•„iÙsÓ¨H89çA[* Š ³ða9€‚çë.Ÿ¶|Æù‰—)’G\ãWš)¯Ô©Êù­h!®ã¤V•êŸÐ-Ð!)Úh$›QìVtÙœõœ&?9¦š¦ec$oÁ1ΆCöíã¿w8l‡¤Œ-Ù½ˆ†ß­;° zÚ’Êf·ßçàY+b^áü6TQ¶…p¾@Ðp”&,;àSIû?Ú—c2ý€bÉ‚Mý…{ëòáª$W¼µqÅ«?°IZ= ÓT 38Þ4€e¶´ªrnAˆôÉäY½r˜õÀï&ó¿%æqâæT ôY zè3ÉmŒÇPŽÚ„Wý°÷#ÄCïÊ8!Ý¡½é=hÂÝà¢Y·ÌýÝ;›O@ñDù"’Löû‘»|‹¦¸í-X }_ˆ«®mkZ.?¤Â½`Å-]ÊìeZÌýÆ…Þ}x§¸*ô¤4g>EÞfƒ5\ü6V1ÍV£9±³åé„ mZ þ¨X ˜xÕùxEh±ŠÛ `É¿ïKå ½*^ Ö”¯%qu6e'ÃРÇH›z¿.%*<¯“Àñç³µ ­á1Þ¶jKé¢ý 9œå¼ÀÖ“÷Ûµp³Ã Ü;ÄÊ â4#Œ1¢Ž™>å•0Ý`Y¹*È«qƒf°o‘*€GÒÏrsþë¬÷Ú¬5ܲ­øýê/n.ȼ>jü\yÌ1nHÄß°¥‡Ÿï"%ÝßU†íÖY­ úËò’ D¾¢ÊˆDCÙ«,¼~¾º!†O<ÆŸ0v[Ú ýTƒG`™HOü|®Yç$˜¨ªB|sÔTëèI<ϸ&ž8~¬ÚÌÏæ¢Ï¡Æ ¾Š´XÉzÎê“Míßµ9û}g,›MEý(  sYÜ×?“§Aõo}ö&À)|>Úéiõ^9þÁìwô^ÿgQQ Þ*ˆ?$…þÛÝŸ&TááÔ°~•0 Ö¨³Ë›ˆdµú2’"©À Õ>…±(O©êOîÿ‹È: O-ÝÙ|åÊ bÁ´£—«îf–zß EY¾€‘ðI“ÖËað©”QÁmZYx8Ñ,s—Vàï¥MkÛß—uÆ]ZsDÁâå<þ®8ÝdæÇæpÏ`åCßüL…ÆcÔ”«•Þ Ôºò¼¸Ø/uÑ §ò2̸/üOºP§îr¦MT}ˆ€Ã~ ¸A”@]R•9n[ñ>†‰PspêÆPëͳnm…]¸4²3^æFÅ…eØáN„ݳíâ Ïy—ÃÞ‘´˜×ñû9š$Î3¯»?9ù§žÊTáƒ9/ÇjÛaì4YÚ˜EßÇv…ÈÕ•a»ø…ë'K!V¦&Â…ÒÞª”⣙5#k°üM$À˜‰Æv/ªiz¯î«‘]Û¤A$Ï2¡q‡Š›€V¨,³.Ýù¬qhB¾&v8>ià RއŸ¦—˜Ý}6¦1š<'—:”¬¸^†öA>sFcMKÈù}§F*¼Í ~`}UqÑÏ´H;_¿þ€Ë(¼P7YêwĦ) ¬ÙËÒ…Y²ý¬ÑoÀ˜·¬…±1´PÇöÝZ!l’y‰ÅÅQ©Ð’³·s¬6—XíÔðLá’ç)f%j wŸ‹™–•áŒæ P|‹Wk­“2°ÝK¥]–yzÁ÷‡‰üLª¤¼z)ÜJcOI§—)S²«­ÇžB¹åÒßëë®É` x—df3 ;ò“ÍÕkÔ0Ä……f\|"1Ú‘Œ±™ ß‹B4ùʯuˆyØëÍõå {ÓÁÉ3øÜ¢ðdÕÝÐ`bÍ>×µ:Ziæ,И".QXîe ¹íÊ*ŠÍíÁñbÕ/1{gÚ¢eD„‚¢ëÄIYiFñËÌÜ1‡o¢Š´®Fôy†!|øV`0"iùœ êB)ù1*#Á!G[Š‘l:ó¡ðvÆ/øbàå—h݉ˆ2\ð >2äP»/ )n`~åoü6ŒÞáÑwË­ˆw­’_»¢†ŠA½Šœ4±òÇÞUe0zLƒ v/󈘂:YÓ3z2]$¿@Å,ºò@Ã(l—';^/Ml~ÙµH@R0ÓõÒ4ù4È Û)“øùÙ?°B%Å÷©¦ýSM"R à„½ûæ"–sÛ#÷ô¼JvÓ&‰µ¥} ¡‰T±n Ñ‰îú¬ŒxÆèÉ6‰&+J4JÏÎçó G4ud…ŽùÔñâv!ü òËÔ0f&pY¾Øö¶ —üèÅ$bÉ”›¥!Þ£ÉÚØƒ†­J²˜¸:×éE‘Ú¸eEæfÖVÖü6T0ó÷>gRxï?¼;|cæ•CÚ(Hº©‹V1fÊ£R°7Ásüeè l £€9uzº3æGãªWð€´¸,žÊáøÊìÖJ‹¤k2 EaÊ´¹søKC`š=ò!GÐ)½<ÙÅè@!‡O«„5šÒx{Ÿ#ôÙËœsL_”†êÿ#I:¶Yì+‚/±1Róqnr12âu¶±¶£S-†ìˆ·½ÉD ‹Í·Â¹^#98¦C4Ì„çi ¤£•wP a¡ô+e_WéÁ¨0ª´Ó\irPa§4[3£µ_þÉ$ëõ-àÀžûàžü1“”[YÓ,¹æ¶ûð«·„ÛÆ)²f}!M6¸·|î2gÆ0µ¢‚Û¥X pßÞº¤:Êç4¹ºJÇó*e $QžêN@2ˆGˆî³8-È®nu²*ê?÷HTeOb6s:剆ž“[Š,1ǵöi¿.OPCºs²b_É?¡Ñ^ô&…äÜI3Ø4?Eòvß¶.Cˆ¡¢½/ÈÎé7ýSªÇa~hG—b« çQÆÂáûß«xš:Þñ¿Wí5¼|TdŒ‹ëðnÀH$yEÚ,.×™g =¥—í‡N=­”’¼¦ ¢e¢cOggSO¨äm•T;ÿÂëõìñøþÿÄ÷ìùüÿøÿrÿ,óúôôíÿ´úÝêôìîÿ¹äíöøìêÿ¤ÒãåÞÜ×רÙÔÓÕÛÿ£ü|®è Í[{‡)°åÁ c;JÇ3ÇÆPår½hþ¯j ¹Ï:b%œ™ð¤8º lg •ãë,ã²C+á' ²ÒÌB1„ÿ­õ©ß|ì4ﱓ ¦‰±ÅP¡´ß–¿C‚.Яk‹›Y´Àk¸Á:[fÇ»6uÇ™\Þ}I{+…ó« Ò$`ÍšË[Ûï_ŠDØNu;ÉsePÛjÕíówùÂô¼2Pj· cöà%ÀXÍ=™!îæõi‹ÃnvÅÌ|Ò5TŠøªt‘sZN –¤±$")çÿ…óÛ‚Ç'ÎC§‰ÝŠM³Êø¸˜`–¬Í@RÏ ”Š£Y•%{iùŒÈä$èò¾¦¯“¼:oÓ19/6³ãâ"¯Es 2—¼f?-P'y¼-zÒZzËnZAg7ñ¾­~MLÎÔõu=6ÔŸïŽ5ÔûhW¹kH£²ñî\È®?«žw‡;tÓ&7ÌNüXfÇ‡åŽ N¹ß5í^žwßtußAKª¬J‘'öì4•®Dw2®¬ÝžÀa%p“lQvb»½~lÄ¥T¬ö•qiÒ‡´W†Höe™Èà­„“Ú´–¥ƒ®qhªœfŽ"-Äîiýs¢*°çžr9è¼í"Øz¦*‰Ò))üuw?õé³PF´-‚Y03¢îºÇº3ˆœ½R‘óÏ÷; EæàÞÎŒ\àÌÛ¡Y.šMEW¶É¨»Ëʧêñ[‘öäI?øW¨¿¯Œ¾1…§Ê 3S˜Ì¹+M¯å=úe¼o¶_Â|ØóüLÈ};ûd{áÃkËú\ %¢° |ñ`êù{8[ÓFàLÉÓ¥ç~x¤{ûM8Ç#‚– ¸Ï¢šJ´7VùöÿÐMõsâÈW4mOn8Š D“H5ªâ+6Ê;ü÷èøÆ^D C9Hx n„V{Ù`k \ÛLÒ´½‰vФÂz5ž>°O!|EÜaìz+ÿdwÃ}ÊH?¦ÉIʤøœ%ýCK•Z4Žª“¡²<²Mjá—UÔÌU·4G£ÎÄì–Ú˜rybV¹s# 2ŽÂãM@ix==S²OBá9o³ƒuy a çluÔ½BˆŠ!+üL×=b'F»l d.†–#6ˆì~^½Ú¬Ëœ©˜u¿ôCzí—~b¯Px]àn¦øì×Khq¿³`Ž©ðv¿TçLÖ™º%J[Zá9V“s©Ÿf±“—'WMí¸¬BuBs¸2œid$Ó?Ó§Ž3;ÃuA)Ôkåu:;“ùü0úÏé» QeA¸Šƒ÷Še¶#ޏAˆŒ“I›÷„Ý5¸Ú8»ÌgõÏ~l†'xcV!šD>üq­“=ÆÈó.i¼±ì7öÑy+EH–|η„â*UB½2}¶“ÅRÙ¶¼“ârbÙ³ÛÖ~g¨dìáïÓ6 .^Ø=€rÊ3-‹ר¹§ê:t&æ§¡H°>u~ÙÉ{yÛíÞ*8ÓñÄ·†í!&yTüé¾è±>|P0ãˆÝ3 ~.óšËÐ.·h-¯¦wEÒB¾Êµ+“Û~û[‚ü¿ÿa™Æ®é5Ïà­ÿŸ÷ø%ý·ýTsë‹KXä߷ô§ü1®ßÿnÑÍ‘onêžZÞ=Úo$Ü|"¤8 ÷£l;Q3&9Uw×6‚õ¸˜Â¢ážQu¬øm™Žâ:1»‘€`„yLxvJ»U‘6ª#Å,ðÂÞù?ý:--{Á8·o±^´}÷ñCöúcP¶BXb³ue±ïœÊ8Ã7 Íq?éA~dO–¸„px ¹™Þ"YÁ6œ@5eTr›[.ûû—ºyC¸Tûó,. ûGÖÍÕçf þœŽAj›wF‡Æ)Ý ŠçþjÉ~”.…ÿL[jº~ÇQævîµELÄ2¬bÆVñœÄÞ%Ì–rü7’¹öü6SYçåw ø”j\#âtP¹%ó^EÙ}ù±N£Fv•F݃‚Åuá$Û/i³ygˆD«#n&Øy­äDy¢ÛØß™rc2Iîq*Ób†vIdŽ4íÀh‹ÀgKœèyÝÌ1%A2Ô”Ä)žØn ïQc:;°ø€J ‹½|6ËFÞvÜWyÇt ñ¥/A‘ÃæhCHwJÐã¤óÄöçÓŸ)î¶U8BŸÍì$ÎU¼ÜM'lè”|Mi¡2ÚqÕEÇѸBõ¹â vE+}_‚aò—‡Éx#´( ÐéãιN§W&,H˜gÝiã!A|¢cü6r«ÉES×d&ÌK$;hn¸·P?l.M'&ëå¹Åˆ\÷S”ÂÓl€ÞoÆT«<9'FègóžËå`=¡Ä¥ôkI_ÖH¾e–¸==‹!µ&Éb<¦žê+vÐ,³[ÞIÏÓxoÎ;ò´‡_I ¦J<áý¤Œcº™YU6çwHÀ•Ì@¸·: ޤ‰RNv‘,Ð ) -Z†×îîwCÌýˆQŠªnœïƒJ£¼Ùb†–<˜€Õ3þKzÁWÁÜ=Òsf‚7¥ñlîn–ÖEÏP`qbb®)F@üÃë:¼*è­«u!þô7WzûÖúpïúá†Ò3%u'Áwu3®Q'WneR+Í5GÊûɯRª. Ó‘Û¾vÕvǰì71OTÝjèª_3KezúOeÒ´Ëλ›æà,ž±NŠn·PpJÆå³|K»BM«“ˆÎ´N䲸iKƒ€'TUísX›OøF”´…B..ϲ[§4r&2Æð­ìl JOÈ4`3:Ò¿›€³[ñ€•¤ó›»•3ƒÔ"z„Cƒ\Cç„ìÛôÊ;õ˜àÐNB¡Ê›Oò!Y˜/–÷æÜ°ŸäÆj_)ç9%üÄ…²Ë^]³¾wÑV¥a\ñçZ …ÛQâÕû]Àf£%27ŸJЋñÕ ÕwÿŸŸƒ3:€ñ$²¨‰AcÌ'úƒª‚õ_ †$fmb­ƒ;ª¦à‚¹UÅ$ûS®®ÞÕW˜ö{íü€‹Ý™–iÇñ{ÕÍ‹ Y¬uâ¸`pòDH $T¸À?rJÈøYÚXQàÖë@ƒ¢pS ×íKäO‡ížC…|úrÄÓ¹ÝØä:Üé¤áëD±œ™Pc‡ùñ-‰»HØ q‘;¨L&´‰z€+Üæ~Þ²(1&\Gk¸#™Ù`Jô(¶ýõ¢Ãf"Á'¯n] RYdvà‚-+]%üÄmO}$FÈ }ÆÎ‘yÜ‘¯E˜r WêOa‚»™ZX"«±íKCòÖŽ$`ñ¥K’ ÊÒr§z ?¾Ž&`@î!®€ýÖÍæÆ?Š¡—nÙ…6ƒ˜,k6¥º:ľmzí*ÒXuÅ0ïÒ‰AÏÓA°|ë‹#V&T,{ Â8ËwÉ"éš( w“ɽɑ·\ˆµ2'É®Kþš.㬕'ûD÷ÿصu® i¨¤%ܬõ6I½Ô¹9©=ºž÷°þ±&.EsHbÀûˆì˜^Qp¸q…­üxÏà¹"Ó¨Tös‡è!ª”Ö7Ýü{=Ãõ" N罄̧X ²€!Ubí²jêDì'äô ˆÕðåugÅÎDôsB6Ö`¤Eþ´m¾-!Ò]¤Ñ@y>óë`Ñ­.šœ²ðù©ELÎY¨&ݬ¶¹‰WYqSs`r«‡¯Â ÙwÐù6@óéu&ý<íÍ}"ËuMù¦Þ¾¾|¾§3lª@‚8õ‚OÁê>6Ëx‡(Zöj´«yäë«DO¯2ZÐ[ ÔL~ëYß:^eã}y_—â%T~º»æ|) ùŠø#¬An_¿ Ä–!ö)ÿ‚¢Ç/¹Î8c7maU=žvÿâ›ý$pn4ŠCC¥ê&}Çsy¸^T*'qÜìM(ó$—áÿš†§hÒYÿ_uCKÞ…_±‹íÛࣔAÝÊUP,$S’a §’dœÆ¢+„ݘfŽ_Ô9ÊVì‰pëJbG[¦üG·³NVßæ}ì^|ÑúoÃËúKüXжeÌ$ý68y];©ÒË“oj+"wäĤ ¯•Ûô"OEÎé½^5W%^ó³Ò&W‘pר§ñ;T?v†1jB[’@Ž´úM•ù"˜¡}ŸÙco=‚‡;=±fÖ±‚øÖ½h¢þv²&m?] ÄÍ{Þ‰˜L%¨Q9)' #Ä÷LƒþYó†©Ç9Ö¥µÕ÷Þ65‡_FO¸q Æ0û…ÿwl~}‡§^PI‚(¢ÏÜ/»¡IÄ Ž[ó #±Ìrð°±–ÑýÅØ§øƒ|»d—²»d}ˆ>ü?¡JÓî¯ÚŒIÛ‚n1±öévˆŠë¡° Ú{å(žéžh‹ò @íÉËD9«¡2ÿ´Ì!ŽqÕúèŸ3Cn·š…ü„Ô×kú¼x^nZFž7u›«åj°²ä–Þçö»Cìž”‰Ok‡˜kêÇSÖ¯.:ûÈ÷¤/Šxgé½s/öÅILò@Køq”Gyâ]·›½ÞF!$`þe ÇòxÛHN%*_×ô“L)ž,»-õ{bÐGÖ×W09T‚SR v_¤‡«íavokÅËÖâŠxKYÛ :P¼>zS ÃU4àEžúWV[Šý:Mm5Ø´„â¶%⡆O?ÙȈ«Ý’€ý9ߙΞµpƒ¼bQ^¡ü®䌜ê妸؎ØdX(ƒ\$ÁC7 üL¨ŸA-qù!z^ì|><¡ãªŒ7†Aeb«`ó¸üd¥â½iýûH><]è/¬€{N­£•ØøÀ´leHGë(}J…xÒ>Þ²lÙÆn¢Ä ªw³½ïŒÛpN¯6¨¨bªQÈ2PVžÒ~²J&a¥m´M`|­N/ÆÎçìËVã&D¤38tgár5ת[Âæå²¹äŸ³$»!DÚ.¬àAF–³¸PJÕÁΪ±Lš§üλçÞguÁÍ£>Ðö½µ ` †…ÅÔ¨„% ”bßú¢s#Ôþ±<ßSì*’r†¬q­Ø¥¨Ù=œË4‚»ü/S9@Ôê$·k1c„¤©Öy}.cʦÐ:ß çhb\eÒX=CbfÏ W‰õíl=].@7v2£¯ó¼#î"Èrä€úÏuÒeХǥ¥IMÄVw±?œ÷zä„:Ó¼Zùhº/¢0;£¯…£û†_¸"TÙù^[Âeø¸AТíÈÛ4:žfÐYà ò;¿QþùYNeà ôC…[eíüÄ™‡U¸Ãx¢­L"Û\ Ykî”÷#Ô;la×9ìó=ôïœMTÎ@ïš©A0 ø\@ÙÆcGXz~£÷"@:“\LRÇAB^æj¸_v¸Ýø°‹Š¡•¾ï¤ñáu„º=¾0ŒË’yUÍâ¡d\_ûw‘ÿ,£`ÁðÑpïeTÍ[à dLðSOÆöÅ ·¢Ã{àRß]û*AŸ“eïuÃà,CáЖ1¾«*:A”5ê¹áþ…*E‚ùJ1%úK[M“ònà„zÚ8é.‘â˜#D ñ"LNqd¦S[JUp`ªÛÕ¥<ã»U‹¡žu™‹ƒY T¤j`wô`^KFðaD3[k¿Œ3 ¥¼ye‰•2•Ù4Zü1°ÐnYeÕm› Éƒ¢ÝUêç3p¦]c¿ØÐÝ «yð0*^Î[.jê¼5íã׌[¼ýY-”_Ì)Ý„Wº«JrŒÇÊKé;äjöœ‚µõï*QÚ~"¥Û ‰êúð©+¡™á좊ƒc€9š|}ÇØ?5!©»ÊúÇ}dK{Y\•¥Ôöþf‰¡ÃÁRùÏ{ÏßÕ ¡uŠz¡BÇqÖD ›iRU¾UVÙ -±KïÖqË „½^“‰ßQD>7þq’÷›Á"o(äS|e¬¹'X⥱$œl= Cñ÷¸àà=Pï§v˳£ÂOœQ3 e4«b¹#”ëÌ™9ÛжO7°HÁ†Œ…ß9›>ove?^ô{û.ÄÞœì{|l{Ž8Äm¥ù4ð´5«¾0m^õ)•¹OfÍ&‚VLzâøßy² áúÑE[*1U,R‚ø’aTŠ8Ò¸hž«[DAÇöÕ}à;R+b,@%ÇM‹Ðˆ¶j)63mßzdcE_ÒW™™ü®e, 篕ãqR."†œ\K†xɡósÏá>O‡‚+‹Èhßÿ¡xµѤƒ8ÿ-ƒÉa»ó÷¨àÆ Çˆ _Üo¤žugi¾/޹TEÒêðÝyþƒú$òZK4†3b„Gé[ Á¼;è¾L[Í’é“]†É¾V4¡ÿ¶Ê'ÒÉ ìWoU¤B¬òa0ŽÊ´‰ch8²ï7Î×-œ½Q H–&B-ðÍÁb+5$5Ÿš'rý‰‚B»Wás©Z­ù¨Õá£aòüX?b- E܆'yi(=¶-Ð%§Î'KšGZú~ª¾YŽ˜ˆ:0!8L"Ža_ïw¼*·KUá ™†gÇ­8JëçÙ'lDJJųâÛû·Oí2cCþ#éFŸ8 ÑI‹h]ÒçÇ6…A¯b+ÎõÊ]D#d²Ê¬B·÷ÇãÃ6Y”ûªa¢\kõT¸p1ïöáÒ°Z©4IÈû <Â÷š‰íWÏXqÆMG5¡¿×–lÞz½žàæáù»Ð$_¡ü ¬ÏC°uŠ-ml&Ëä”Ó¦<ÏcG/¯Ý¼ž‡zõc¬sÚžŒ|©üMWæ€7cWûn ±eÀ;±˜ÍNsº¦ZBy;LJ©5ûö !kàÚêï^Lf0.¤šÜ]Þ$ïªpè*ä¥úƒ5Ö:M+§WM\—ȧbŠÁ(«ÃwNóKëIy.Xy·< ^¿´Ž«TSpÍì¤Í]ßá[VTJ•Ÿñî’5ŽÉbw÷þ¢)!ÎL @T'ClêÂÓq(Ý©Ò×ΆöïÃ,ä'³Ð‘]«'ö{ˆçñ!Û²&ùRÄèil+Õ"üÃåÑçÓ % tÃX«ŒB 0yË ˜Ù›^„™8iü›Á@î½½—H«L{¯w‰^W’‘Vœ‚Þ›Õí €s-Þ uÝò° þ1PUùV“b4\C„öêVf+jþß%Œ‡ãÃ’ºq¾Ô´DX§áÝJv9ÀS–4Ïž¿x½ðHš¹*H.Vã±R$sMÍ ‰¥G’µw*žÎp,Y˜bŽëIŠäßb *d¥~é×&çµ°a̬ÑWæÊíÍ@Qu€é§ƒUÌ-à"‚Ñ8`l?ù4uf‰Šët¤ûF‹‹Ù¡ø!€³¦¯$Þu:¸ô涇͢ÚCî•;UgX¯ÚYü›•@‹ ºŸŸÞ×ñ‡{º4#ƒåùî+›·ÖÂ÷må¿­ ×0s8³IÙWjCwe ø¦<<Àœ½ñå€Ò”£.*^€¤ÂdyK“-iºIè]©Že‹ÃÏÝ‘¸O¸!%)–ëÒ7xJ‚+?µg#BâŸòXs¼HHÌBâŸÆÌç†RøûÙè!Š:’f$×Éf±¥(Ÿ€©ø0¼¥…kRªä=Ų@WŸsoxL+þXæKÌW{ã(©Û7ÁäBªž—é9§°!KÞàÖ‰6Ñ ÞXÜ –&Ÿ¸Ó©i"GC†µ÷ܯv¨›„ Yü1ŠhÛ °¢I3s  •^z°YJ&š¦àž¡”˜í‰M°Å­§n¤Î®0á’M‘¢H£Ü$Jä°üÔ)±àE ;‹ *®ò³x«ª ¬½:G€ÿ a ÚÐüMðWw´*õµ¶ KË¿ &BÒ°GbõÜB´âùi“1g«Ùw{[Þ=ÎC?ÐÔ;À&õÕÐ ,Ðó©È´ÖÌÝ}ÈŽTøWÀsS(J=¹ZÄhÆ£z5ªÅ(¤¦&Z- ntõC:¶¹8ò9äOÿ9ƪžx=Ýš…È àïYdZðŠ—'Vœ¤ÌV@^üIw7 ¯Ù©j·Ð\ 'Y 1ï •h4Üy•L椿ÍÉéÈ,3X@À«‚„¶XÝӅܪàÝ(p˜ÕÒÕ]1øÅ:ΔUƒ… »Oøë+ŸRE .¹Äç$®ÑŸs"ž7°Ü3èÄÑ·,eÊ/]v(1»µï}VŠˆ4®€eTHa(‘æ‚/2˜ºÈ©Bþð@¤IOd9†žæ+Í]TcA.”aŠÞ¯q·}Ñ€vj3a|ÖדµU ÛMIàòk“´soÖý»i2ŠxçAuÛ`9 ¹îª÷/˜Šg\)Ô«ü°§#{;Í5–d¼ÙŽ÷‰$HEvì–.ÄiØå—,(^ÔHÿ‡¨ÇSR——71*#«KY¶ËÝßØÖºm§`é¦;½Çe W„‚|ÐÒ¨à]VÑSO >$Ü^ÌнH?s¦¿t7Ž—Çך ÿTç=QyÃFªZH»Ã÷zέ9ù×\ˆö Èq^÷8зÿ“*å€x8¡ÂèÌ Úh¸Ì*ÿhÒü“ð²®Ö9ÝÄ(Ž.žxñöéŒO¶—ÖÏ»w‹ à=Ó{ƒ"«Îu×âÚ’–Ô†õM°j;Ng“–ùBñæUkþìóP •ÎSÛ÷ü.2ˆ»b“ï΋X¥û7IµÁv#7F{"¯µ-/ëÎxÛÕt8U&­ë"r“àq¢‘Õ% K … =ŠÔ~¬!¡³‡¹˜€''á±›ÒF¯GˆÅ|‰˜— ó@í4¸”5OšŸÓœÖƒu߇»A‡¨n”x9ÎTa\5RCh„'„Nå^Éö RMð‘ú›pöæ§—¢‡†“™xߪQ]³¹–¢'>iýËr±Ö¨F?4Bè?’r¹ šÔ‚Õ±-‚& l±ÉùØÄ¢óTסz¾ü1†ú$îÈ/›z›J¿ØÆÐô5Süw÷˜`Ë<=¹íÿTúKee²Œ³§ILIGG=„;k˜ÑäîºÆ\ç¹eç™*RªyŠŽ<ñ@k ¤Æx¿Uâì:bìí?hV[+UÛ¸^MÉF*Ñâóˆ‡á¿Å’Té\ªygxŒHù‹ÈÔ-È×Eô±sa[c¥Ã6s'ö}V¡m+²ýëÂ燶Qmô™s¬ë Õ®,²•Š~ºÒа9ˆ_']Õ²;ãØÍÆ3’‚>Níž=¢Ê¦luÒß—†üU^Ôö£$93–§×ÕKš­ü/]Dɱã;Pz\2tlÏR·+:q,> 6^3|ƒªüé©5+«†cÕ±‡†ur ÿ‰Ž¸˜M4[†qÃT$I%d»†£ãüL®ÃýöÜi2î,R-ÖëU3pA^ï(éäëh?4Û…¿I´üÖ‚­¿½€V¾˜#ggÈX“òMØÎXXGPñè/MRcåÑFë^Ò£~x’C‚"Â€àÆªN-H#(“ZèsÞ¹ó¨íÂåäç^=ÉŽcjcÖ–tT@‹¯ 6”¿¾=õ![x£«SS ë½fÄyQ˜ãüJ³¿#f$;ÁxDz:S".{Ðêl„ö„‚]œröUÓNÀ\) ‘Ò7.É5ôžç3%uSàV4fàV¯q“¡œs¿x¤f%l±nû Öé–<&Áü/—@ü¬ V[~F{ÂX’BhÇRÙ‚ šóTBü۽å.¦Þž´±n¿MÍ“Ì9wåB­nå¯cbø«1rÚ´ŽÿW~ršµ(9z·û;é)Ù‘™pï?f2Òa·¢1>~Ìwõ›*džJšà$Ê@*ÅéFyš¾À·EÏh+)àüÜÁ)8yhØpc £…—Þ¡ŽÚúн‰Ñ"Pwƒÿ^'¹u¤ç¬U{ëoy†’!›i«ÖE}H·J'?1¦>„&d›}€4I¼T½k”¥X1Á‚¦=r5ØI›ƒ†Gد³•üL°7öàÖ7Xg½Þ¯i÷Rÿ-y»W.í åitl”ÔÃl â*[Žaû!þ”‰;ÿW H«©ÃiLª.!iðŒ=tœ«u\ ¤Ì–D¡Ü&y^¬âpËY&à8úÆ—·WïÄÌkpgKÕ_°ÔåQµ€Øš»¨ ¢o.Ö‰†qê)ŸýT ÷ÓÙqŸÝj2’;^†›¤‡•~Îý5õN%;°êŒÞÀ˜˜T»„ÿ¬+iùå3—ŠW Óæ• ÆDr=mùBñs¾T <øâ(­{‹OH·"dÎ .ØI•hü}b–‹ß&€O‡Mܶ;d>qPoÿ'±‘àãûÝ”7«5uXu;tß•<Þ༥Ñ¿´šµè’¦ˆa•þ^ÈäØíb­3æ-ûéœsا#¸>3ÁÛ.C”9:ú8ªN˜ô•Ú¥7ìo?Ó$£š´ )Ã^Ÿ `Zqê4úYäVkm›w^Ã=qL‡O/In€_û'`Ä‹ýí+reäopqÿí p‹@Œéïa–Xªü¢»³3Áb<ñ‚ô Í[ΤßöW¯ƒ½!¥´õzsp è\Mó*Ø~h8[,ZJnöXì/î?_ÂM ñ7y²·hjÎ7"÷L.áÐ 9bg5ñ”Âç50lhUÜã8ÐÏààû“§ )ÀÄoò¸ÕqÉŒÛS¯ûlÕœ‡Ë¡Îÿ¥QH‘·³¨€©Eåó›Éüf)< € FYs•O>/—ÐÙ È:UVƒmõÔF¾ æSôéí á¸)Dƒ›1•S’ÂR÷ìc·èÓ³Õr@bu€,’!Isaw©PFtPÐüM-C«êRåQ á>žo H¯Al4EÐC`&`|´šïór6fã¨I&øÂeõì슯­b¨•½56yiÓÅ!y|…w"Û· ±K÷ß,ªn5R4Ë'$kón© ›Y¡u+S‡*Ñ@Eq€!ê °Ætožb“´Ñ¶Âz»B¡0¡Š¥|RÛÏ™Ýý‰_ï†j"Ëý3> Fãû=¨óŸÿñšãâëK7æ }毆ÄÝï ÊU9±ÔlYE|m$…•~ÍņJÇË£ëôw”z¬º€£Ãu¯‰–0ÉWX×|_R"Âí)²­?Own3}^¶šBò¾ð: ):ÛèPrÁÖ̱²@®1Jã^Zª"üX#*WÇÔ®Dþ­³v–t`Ø<S›¿C8"¬Û xÕ©m„eH¢tîN©yž÷¤–ÛÕîÙ¹M_Šèó4Õþ° ª0ÐK_óë)ƒ’D§¢ Ë€Ž— _pÉZV­F;ü”ÊSÖ9¢KƒŸÒmt’ Jáa6¼ˆcˆÃ‚ªÖz:²ÛXl1¯¸]KC„³Y¢RŠè{‰wq`ÆgÜNÿp¯lFù œè6ɲώQÀÓE& øæýý ·n¡|vîe}Ç«¤›ß ¥BBf³JÚÆ9Ÿv ü7ÿhôŽ©a³‰qdŠÞyߎc£Oø œb¦ÌØF‚Fò¥;íY8zô惈àúñjÛZ]™­á}ç\Õ_=øÃ(Õìt(§û…o³=íÊÄcì8·¼ÏàXb;Þ÷*¤²ÒÑP‡âŽzQ5wN}¨ŸæF«Zd)Weçx¥YL½Gw=ãƒ(­»§õõù6ÍÖZJÔóU M©!ìÀ,Jž¾ø².”HFhG)U+?âÞQ¤Ç"!fzÖìÝJˆ „Â×>åqsT´ýÛ,³@Ožq†üIâ¯]ø° Ï4Ô)zvx8,k7ØH˜ý—U}ƾ¯¸(Y¼‰þž0d¥«xË2$Óß‹i°r‹f÷-+øA‹îjæV»;så¾®Ô¦„ ¸Q5ž)ç‚VDˆmËöà¬#hsGr(XŤðìx@ÄñRb µÔ¥ÑË¡âʆôwh)éö”9<ó·Û¬¸ e¤VÉ/Õ3™Xƒ*Õù­ÐÝ\‡¿ü’ÏÒ/}úBáÔ×ûd0àÒѼ”³‡œ¥ªþçÙLÿ[ðí±>»ûfÛWQ€QkŠü6iÞOkäTr‹&áÏ„e¸î|ð¾ D²m3Ds1"ÉÆM³)ˆE›z_Øò5CyG¡º»ÝWo–.Êìðш¨;]ªI*[±è°óCiVqÁÀi¡ÆÐÁÉ;QWôZ €ºñ.ú¾ÔS8 Яÿ¤‡îPìü×›•ÏZ±ØŠÔ^…‰å¼õ¬ÕhÐlà³vÓM´ÒX³KìJ]ßMG¡™¯¦úÔV&àêXrùƒU׺ï¿|H¹~àÀG1Û—¯˜ôì@í$¦Íc¶Ö¦e5ÌÆsÖù7üJ–ý ©IšÚž‰ÖXW,^”Üý{;´0G÷…ïý-|­Ó…|]a€jñôhÖ‰—܉;.õ­|aR²Õa7” ž¬¨OHypìÂ]ø… ¼¤iŠtÏg¢#€8#Õ;øK õ£àxtÑË€7ø½F4¯d¸o¨1ªM(±W ïl6Âl1DQÏŸZÒjsÛyCxçÊúÕ+¯v¿Wm4\œÿ7rpÔÐ{ÞæpI šHŠ¢Cйêlü‘O¿c+bž+¤á¾ÔõVÒŽ­¤+þüNJ2 ‡Øç ÑxÚçÞ9Qö?bbç‰}á‰Ð)]Å`Ñ™ÞæC´!E è1èLt‹€´•¾{µqç¦òq_öží(Þ3I·!ò—;TØú³†¹…ŒK®Ë‡ƒâG°ã¶Ê˽²ö_iè¾ ÙÁÎŽâlo&œhYˆ)‚ñÖë®ð›È‘åóÑf­é:ÏÆ€?wA„ 7*ýœy£ÜëÑò1¾z1ÁÀX'Z•ºqÐÀ™È [þÍàßWHýìLÀÖ™2/…ü/¡ƒ¿¸‰Îάg3q µæTâÙ¼iÌ=‘!üZÇ8JÈ>òu¯¸É«÷€ÅÚ`²$¬æræÆ‰XqÝ­¨Þ}É/Ò‡:lôl)$Ç4ž$¸·Ÿ^ÆG‚Š«Mœa˜/<§ )œ Jø`A1ÿ£>‘&}Zp®—½ÊzcKE`ØÅÇØuSßÑ"Çrá‹q­¹ßóJ|ŹŸ™Íµ˜þ‰|®œ3˜[$û±Z ÷–ÇYZ(&ÃÖ¼0|-ÈœÝ ª’2ùîY<‚÷üIâ¬&®:©RËÕ¥ý¾ãD†Ðœ†_ÇȈ̟]«ÌD™©’} ®zÃJ j¼+þ!¡ÄwPïÞEY@þ±—s2njVûoCY+^³¯”ñ¸¨l/ôð/èì«;åÁ÷ø¡×ß>=\ÐÃã‹tþ lEªXÔyÓ¯s~ÉØ[´ òÎÎg}’Ó†J$>º¢U¢’‚›*e°ÁÂqyN„îaeyYמ§ÌõÉòp.'ô;¿èÚe l¡ké-Ûlü6O˜Ìt ƒ‹]&1׎Ñë²d9êO}ž—•¶-]TÐ"‚*Ø ð,tV4Ñ3ÆŒCésSÑ;åü¶ëJØóˆè³ !®Ä`JæùÚׯhÇ׬C`vð¯ÅÛL4Q)­fðû­Ûb£ôõKµÛ€r€ƒ  m¼X˜K‚Á'ÕÛì}1w‘Þ‡EüEÁ<™ôœã’÷©Ù¿»ïÄ~ŸñÖÂ6„ÚµÕˆëFâÝõ?œ zG|û‡?™«ÐôíjÔàJ$ØÙ•ò$Öú)‚ü5vê]©pá»È³:ÆŒÿMŠ'„Ϩ•&qS›†]¦¶}Ò’™“¦}Ã4ñl”DnD‘!‚J®_ðDE \3íAHµ†Ý¦SñÓÎÆ$ŠZ€†¶µç]xžeLa)kJCäüº!£êµXéw6쎳¬ñè€ Ðéh…Û'¾î®NˆMúÇìLÖ|Ub(Ô$;ÕÌC:KÜh³x îL‰Jìm‡æ_…Õ|7üu¾Ž$•¾ã$ýpùr/t‚H•Ì* Ã×ñrü1ŽÁ…–$å‘Ý¡462Ÿf@MSqíwæjŠœmP•š¿Â-,²Ó`‹ Ðw —ëDƒÏF_~–UgÁºSG e#ûiŒ#ð•ß±¥)²°ŒÒᬵîEÏs(G ÅÈ+ó}ÐusöV–f¾ÃðüªuÓ—o×Új²Ž±¥+s*/HÔ8T‹>âI¤Î‰LDæP¾é²ü|®J ¨Ý2†¬ë³:Œ‰üÍj;x©@/×QÛïµËß¡­†é:Ïè µ™PB•x\å ˜{ž°k¹U‹3»y$ †'HÓgùA.Ð~JvRʬ~çFË’®î_§VY^¬«Š_jÙl ˆÝ>þþ˜o&ÒpUY(´H;^1Þû†^{¼Q]Æ ! mhpEÿ•#ÎïUPÆ EDV§ï`Îúóëw–ì»*Þä– Ohý´¹T›òó×r›ë<ð;¤ê†J8W8º9Âm»{ ì[%Ù­Â4ˆ»fø„Åãø·3 øÒoŒ9E-;ÒKÖê®,Â!YÛLÈ¡îØËK5K›äO‡ ǽ¶Ç)W‚5Õ$ 쮼øK­ZR*‰ô˜â*;8áUýyš\1—ÔvÁþãïWÂb³`Æ¢s¢æ‰H`éfg×P&I ¼v7f¹`.lNäU`“+›ðëW››(Ûy3OŸð”&)µ6CàõoEß0OAåÊÙ†D}!"³´Ž@¥wgrOggS€ÕO¨än0 ñ}=×äìêëåÿœÿ'ÏÓÏÓÕÿ!ÿåäìêôìæâìîçñÿ·Þæîñòÿÿ›òùÿüþÿÿÐÿ6ÚÔêÞáÝÕü5C *ÆAÇUs—(Ac,œ9Až_ÁOÈ…§ô"2¸¦]ìþ,ÓõÀ¿”§†•<¥˜Ñm²%¾øzÚ°È‚ÇФ¸—F³·+$…1€âVد~JmýàOvT'y7÷©Û_qN³%¿Ð?%VsŽ…ÐÂS(ÁÚÎbi,Ò£\׌éøöB+Ú‹%d3{4«yðN>g!ΤlÄ<¢å¥¯›Úµg§}ä¦Áà?ú¾™ãºQÅdg ‡Ü2˜"þzû·h;œQ%åò’NEüIàoC­ºÄ^y %eªÝâöñQäÂk×rÐ]GÒ§òfÑîÒ­rš+ÅÎØødÐóÓwV4ZÃ]Œ½…‡À®cÍzcM œÐz Sbqë¨/ûàæ9uPi÷Çë [ûó<טct¯C *±€^K‹ž¥Â{„$ÄŠ¿Ï­y—+hÁ©Sîæ?AVZU“˜¯ËÂóP¡&Ùsþô0)öä{ða%oŸCe«zª-Æÿµ¨wi²yƒ†dä‹G|C5Îzß`ôÆÄÿP£¸¶g¬Œ"ˆOÎf¡ùêðü6wUšk­ëQ'¨ÉJ>à€¯Sé½ÎïVIr ’í[bŒ 1J ØTøG DÚûîϲv\i%¥@âÒÏ`9»"{NˆReõRÑEJ2ÈкÃXž6¾Ã£zÐÅàt³¢Èy[sŠ –L׈²~?ÃŽ@xÌG·SÛÍ/êN †5~±ú=#…A[\¿#/ßõ² ’Ñߨân8æÈ‹*Z{«ó#ÿ.îÔ^{ ظ su*I†¼""Ì'!‡¶MƒòCqøç:oÓŽPŒçyÁ²p5š»Ì#û†ß‘væò¡uÄ"VüIp£¤•vm·3_åSçKH¡à¨{_ [$#2éMp›©êŽhñÂõÇs” 1L5åMeãV¿Ð¿º”ö³îÖtX“±Ü’ü¹Ý )4‡ò·®ôi±pyc“g–6È8A¹L&ððu×·i¤ƒ=^…‚ù$Í)'?¥Ã¨ð¥®àè‹+9Á–z=NÒb sê$JóÎr¾ì1m÷5NilN”V%'aòS®ÿÉAq0ËÌ¿oòº6¸³gPf´¤\¬1€’/ŸéÆ­¶ŽëðšÝ n)ýE2Â:¸m=;³âN9Ö4oJ³DÞûü6VØê‹™GÁi™ÊšÝ·”xödãç@ÅýÇš¬™Õë˜}Ì£*­)ï‘K Ü÷ð8QÂê6~‚{Ï}#f†Û‹<à­_D«>A£¸óY@¶­i¬I`yþŠ+-á{Í2uJí]žQ‘œ(0 YµõÌ:zþHqÖ²‡uÞÐÓÛ¡EÆ$l-íZ<ä¦_‹j{LÅ[Mଭ¿àç2íH¾˜öaÍ„W0$ g_}7?•ÐlÐÓĵh’t`6{ ËÚê)ümúhvá•,,NÑÿæ¼g1Z§/Z¥ŽüIŽ>p°­ EKpß$¶wé¾jÈC}šÍT"ÉXå$¦³}r#hƒ?€‹£ÈäJE^­ÚÖVJ Û4TôŒ¾`°ª'ÌçF?€ÅÒżd]᜘úÆŠkÕï¿uȼ§.Åà¯òûßÌÒ8„æex™a¸dKiöŒÝ/-RI”bÐçô0n‰A —k }†AÔíÔáÆD~Z³À_Ê{äÚ^ŽctªçnöŠU4ÏæFà\;2Í«p}uû1¢]dü–½·x–è3Ý‘š‰%;Îfüêüvÿ+ü{>˜¶¾¨ç•s_Uظ$ ¼µÙßÿåJJ:êöOö‹áÆú( N oÛÐÕõÜ÷V˜Ø™Ëˆ–ëä5ÙÙ€wF‡Û¼—`”¢–ïm)±ý˼Ræk™ wN&PWn((_ÚØÕÌ üe™s@‘,´½ƒrò5Ý>:z®iÞ P5Ý/'ÏÈøVg^Ÿ.­ °°a?^¥lTZunÕš!87Õ#®W~BqZ`n·?ÆÃ *ˆSÂÍ@ÿ9’a:7£µB8ÉË¥éR &'­À{ø›…Üi˜–¯Í¼oùŒY)½ôŒD‚¨éMR7Dš£_ ¤AdÊÎ˶Ô%þ$ èN:öŸçpÛÔ“";aÛ¼|z©ø´ĵ„O-½Ô£³$î—ÚÌf˜þèi‰'¬Ä€5ãH]&¦ÌL,ƒ6 3GŸ×ìaŒ‹äÑæœÏC(Û‘xûsÅ€ƒñ ùz! ÅØd#¸1öLˆ]Dé‡?†å4hñÿ{°±cݤ‚÷ OŸ•sdã®aB?k²Fz]ƒGÚM¤ü}a\ñaÙÏ‚κ!0±é ‚FÖ>T¹t%kJ cT½Ýƒ{›ëŒ,»×aï?Òª‰}'^¯ü¶“¼ºA¤Hùè…ýô|+ÝÐw2A ŸÚR¥d¥å3Ë5ÍÏ?aqáÝJˆEì¢Q-qó=5N„†ô~óã ¼Äh¹r$¦”Ë;(‹y©h8QM¡˜Tà†Åó.íÐVkä×wÊ)€*À÷&Õ&€¬Å˜…ý^}öh·¯HW õµî.Ù_!‰òöògᬇrµ|H–Å2:¿êP9—ÚcïÌËàkÉ" Ì8íþŠçú;vvè¦êëIoïd¡j†5â¶„¯\³¬¾SÁÒÊÓ²˜@ï7pw²¸'¹(.-›ÍV'Û¥þúþø¢Ñ —!ÌüKƒõß÷$³~mÈ}ÇñËÅÐâW:ÚÔ§m§u•ƒir»û¤é‘²‡6-¬¿?wh¬þ÷¸8,ñhøUú¿;œ‰¦¼åT¡ÆÈåužÚƵ]9Š6Ä ü†F2Žˆ¯®Ü5ý™ "­£n`5TYÚæú6 °ÊvûËþb9D/ï,N,1šàﳊٯé7<¾–B8¡ýÙlägúÅ×èî‘=OL¿h–€+;ÞŠü‹÷Ÿ9N–Y5#/K‚)þÝ÷P&ýsÏ ñ18ÂüI÷ë<&Ë<$VŽa‚ã¦R]Œž«ŒØþD¨á‡ûÜéh¼ï. ÷|°Ž¥ÙÁ€·gCû6â2QcòK~itHÇYMjJ¼ŸîÉ<¬Ïóœß¼R͈]5õC(àø"˲¥-ÃðàÝÆÐkP-VÖCMeþÔíŽ ”çx‹ìe61ŒÉÃÞWô ‡Í¸7[+ îE‹ès{eæ\§2½AGâv»–3²æêŸlo ÔQd^}jI ÆIÜÐöÐôyýË2K-¶Í™H" ûàü9 x»_h-Œ6a}Ñï1ÂÈi\ä6Ž¡è< *P|v©zºr€à|‚°tÌ !!yC:üHï}?Ò÷.ºõ@A2Øzx‹19ÎÉ+A‘oE³ÒöÃà˳tÖdØÆÍÒ[K˜Ê‹mˆÕðªVO‹[+lCP7Hû çþþ"|9Ôåy¹Í@ØHf"‚4N”´ØºÜHÎv ’lh* ~nJë°uª-†(ÎðÝ2ðLó%dxxµ¸ƒŒ‡ö&Î|åL{Àm3²êM-;gš¿“ü|òWØŠÁämíT’ÙØ×SЦíYI¿½ÄpbsNì£*0¡š>¿T¬‚­}^5 &ňçœX¿9ÑB×Á,ü)v-¢NÔ»‚.E|XîUÁ“¬‘ð½éƒÚÙ;/ ´ˆœÜ†;§Y\*st·‘Îf·Mµ©Ùwl/©Yï,Ö9½vvAÄÐ]µ¼Wú{jÙÖß×gÝe *gÞ¶ßð[ % É ö¾5˽˘º€äY¹WÕ1&öÓÏs¼232IôZyßhOPuùˆÉ?¦ÞÈ% ºÌN0ð!¤uuýüƒ ©¼pÈlB\®ÙÚÉõמ50dª<»C54õ¦·e²+wú”ŬöïÞÇjé9¢Dô'6ÛÖü†kNðõ“Þç“ Lœ.È@‹Ñ‹&äã•`•å—á>pº÷£;hm§­ÀŽß¦å'cÓÞæa6HÛµ\ÜK5†kT ë¸ä`’…_KÐsê…‹´+»Ky!‡uAŠ×µU†,5Tc3"o¥ùþ§?èX°¦= £²`½÷ÀOn}@äóÉ©ÑPƒŠ0=[lTaÛØQn;6_EPÊžzU’°à—*»Uºáãv|íÂÇOÖê×gŽ·«&(šEV¸ÀB¾/5½»[rOo•‡Å ¯Î#_]Íž£éQ­Êå­lãØ‹á=_Ê)4+r’â'8„ x`<>‹^ñkŸãœ‘¼:ÀüL«3ºœëïG3“f8GŒ{~ŠzšGÚ2¢@Ø[¥÷¥ÒÐÍhUr?Æ»õJ¬¯dk{±·Þ„Ðë„ímâ1z«h­Ìi ÙWW}X°{X`2ò¤¸UÇZÎbø årÛ‹-ÎFЬ­¹Ñôz…úõéIÒçKö#r“•ÔH_`°ç k±²l·½Yé-|Û8ÕµÛª¶‡½ZÚ`'@£ˆÓü[uÞ9?Ø…’1: S™…r•XÖ—·­l–Ù ¹ìEõæP”ÿ¾H=á@ËXz¨~Rž¶CÒ¤XðB´¼õ­‘PSÞ6dë|çYcéŒ6ÞüLº «Á!Nãųa>¦2a½·œÃ-iø€Õ¦pý}”¯x:«?7íÏ©×x”d½¨cÉþýr®ù,)=óþÙ0XJ80Ë{æh²'©3ÅØc–¹/©yḠ=µ†Ÿ§?…ù\…¯àüÉ žZ$ò‡ó@ÿhJéc¢Ý·mrqlÉS?½­ó“—Ë—£L!v ´OIÑ?íÙ¿½–¬ô1W+ÙqZŒª” ¨NNåð¢ÌúºžGØ“ÒSUÐy´Ü&ÌL_Pg\×$¡©âï½^êÕm’:„* äµZêü6 pñôQal!ZffYœˆ·QÝEàð % «Íó)0§î0Ûíî¿R‹Õá:ÀSfôd¬—Ìä)d‰¿«¨Ïϼ0uÑ5+6«2ÆeàÇØf¿Ä7?íÃÉþÕsÊ%•å#|WMÖa!&èê†ÛO!‡ØCªNâpx½pj~°´2¹ÿxO·~G| ÝJjý‡ïe ¸Ò‰ÕCaA&ñÜT%ý\fRÀÊg@ x kNŽ’°`‹ÂØÒŒÆô‰"JÜê}j¶5þdÓ"»š¾Úǰ˜~¤Œkºí׺B ÛæÔ¦L'^ù¨Ž‘òÞü.Â6¨;þq§3"¨_\ýàg+W:O“÷…•íÅáTxšñŽÓç\Ù0^²È1¥¥*!¸€g(³þ*FS.ÇÊÑXšK0>£§f°ËŸæè|3ávU1ªÂö‹ ”9µ¨B†>öÝë=ù—“¿`‘7‹Ã gomŸÈ'‚FÍ;6Vâ¶–Ë,‘0ÑM\cë¨R!å³,&5\ó%ÐÄlü\¤WªJP»7õãØœkÿGƒ@É®½‰ô(â^.ü"–7¹“¾mV®%Î_<Ô„õMãl«lT¸“˜#Js¬üNDŒâIn•ˆ(;¸®``ë2qçB§aYŽ`5rÙÛ†Öâe0)Mã\WòY¸}ä;{*x™Ã±+ØY5`}ƒkÛ2Õ:1çzü)gµÅ:qçó)ù¤#[d-ìÑÛ0Œa™ô¸Š€ˆÒƒ+)HœÉ›h!¡ 1ÀÀ$æá_ö˜ú«Õ›ûi×Êtô:.øF–ÞØ;îŠ0;NÎÑõÒ+Ò¢ÎËž6£l³ê½•ÞDÕôÌüÆlxŸZX->)ºÒ|ê–‡¾ÐfÑ^-¢M-JHW½ãüŒ6$sß)rÊ«œûöW2T:Òk8æ„\ÖŸ­úÂ×@ã@ѧ„LÐÍ¦Ž™ÄOjŒrÃH,ØX¨Èé¥Ïô×ôæ:ØÿØ®£†‡~›¥£~Z2Ö¬D9VX:LøîvââAÑ%·}U!eGh9¹ÜXýèÀÌÂG!@éõÇåj‡/ó@·:Y&ðéSð6ˆõ•WFFÆÈD?6y­Ì…Ø|wÝ“³×j}rõÉ'ûajü1Ë \Ú†^ФŒ„saèùM M€’ü/™iTM‹6cÂKáÞ”X Æzsðž,5`?4×Á=¶•–½×šÄ–…|Zà;Qþ¨¢;­O ŠªEpªÃº±áyƒêÎo(j,)îÈf2Iäá„5¥VKd’㇢àä»â®Î wãvI‹È´W[ …èxüKüÚFÀÄ?”™%‰Q-åS€©&Å+Ž B[Ôƒ¢|’]Õ®5`Ï ªó3lª$/ó%šÂ{”!ÝÝÊóU›S‚xöÒjFÒˆ¶t,¿ûáö@'¹tü5X‚ƒ8Ng‹ÅXY›‡ -üj ³b’7y¶|;&ÆÎŒVàha» ”†›Ûs;†ªewˆÕ´?K)"˜£„Üe$ÅÓNnZû®·2B_›† 9#5?P¶Nxy c‹Êäõy/JtNóãÌ rta7"Ä]öPa'óJ[ˆ=.¬;nIû¾XÊ,8äév'•~Ý~fe‡s:nß±èvä÷^4â`§Ëõq©áÍøË) zÉañÔÿ¹J^9;ì ò¤ (AR,s` ƒ%ŬÂ#â„ áïÙ!ËU¶¸+Y"Gñ-p“M‡ù¾Bü{7VæËt™ÛrÅòý)&v­Èp«±˜ëêP®í÷çmð,y‰G.T¯üÂMßÍÑ6Ðó<À´ƒµ4ô9š«:0QÕä1ɵž4ë{û1„‚Fjjƒù–Šúþ-h—”„KX#ÐbξË13ĹW M™Û° †²™ÒÛEdìAhê„Ň)T­5,yS+!jÏBœ‚¿ ;çSÔ¥0Çs •¯Öýh7dŠrm¾Ã £ÒzÎ,7`ç²D®™ëR˜Ñc-åù¸ÓÒ[š8l— ¡.}äRmÎ…#A£ÖZvÓþLj"¯¾Á²€Í7ÖÆâC†™s¹Ý1–ÿ1ÔæféÍ#ë{§ðkâý2ây—¹ÂWª‚Âæ‘0µ•ë…ZϽÛ};¼¦¼ †W6ib÷»4<Œa'ÞÜp?´äõ#‹Òñvxw³WÜ^{ó$È-,·W á³<…ÝœæRìí†h?RÖUû.1!];‹R¬¥ÿì»Ï\z-eÀYï-/!À¤(hã£uÇLÔ}+Hx%A¿’ a߈÷ËÔs ü6ŒÄÑÐ WDð°,Kaf)Åcº²ú!:<”6o‡kOÿ~¬Å?2É çíÉ_:[2 §¿s¹½ÃŸ—ûÃÀ¤e"ÆU.¶ „Öb—z£9ÏvÕϫƳÖìž8oÅ?`º;h±…™\˜\ôYZR™qy4µc¸øH³¬BJ†V³~C6“K†÷È€ÜûõÕŸÁóVösÑ(>V‹+©Ê“Á¯:*Ã/ñ½G ãŠ`üŽä’7&ÕƒvÍ ù!*·ÃR(–6)ó bª\!¢`.1oE´|<åüÕ#S­KV!þÃτ댷c›ß÷1¢?Uü­*‘f 'R ¿K ¶Ô·‡á/÷6-Ãn(ßàaH má…„v=ÞûY;kÇÄN~]ž/¨Ñ¸ ,¤‘óØ›MÖÜ–Ò,FUw[{gëwûÓÒ±!šwn#D ‰#Ãuäúw£*†Â{•¼(+?´¢Â„)`ym]›V¦µfðò§œ65½¯ÕÁíûý-÷ Ú%Ë\ÂUÍteéÈb…ž¡…\úÑr!‡ª°rÄNfôðÑÎ] µ±®¾RÑ>tlݧ¤Æ£ü6’[… U¹ÿ$e~¤™%¦½÷!!îÕqÖͪM%¨®5êZ #…»4Ð [ôÍjGµ"(Ó;Æ’ Ãe¨‰QÂ6R¹gfc±f-f«|¸9]Z]5;2vTûÉ(‡^ÙzcÇ0†J )Cû:ËÙ.£ZWFþ%–˜›prkqq$0 ‡§!¤Ù‚O—¼¬{Ù\¹7‡ã¡+ÖïÜ”RçG¹î“®}y÷¯ºT½Ý\”÷9|•ï’ LE‚0"žM•¤ŸaQ´E]-—zTˆ ¶Ãÿ@›Ü\Àw˜:üÖ lts#ð °tÑ&S Hy ÿ}èNØ+\9µ¹²Cl1‚é>>†û‹Oi¦K<’oOp>>ÿP9pÇÌ>¡>öTjǾsf_ADô;äâái½8·º èïójØ…p؆Ó9Ð×r‰ ¥zé erNÆd(\Ro\fLòzi>WÿšÛŸßý ­Þ¥Ú/Üê5’ ±…¬€½›áãÿøÔ ±KË0¸,ž8¢ R¬%sYX‚VlVÛëjç¹p–q»u³A#Ád)½äà›jêx¯w©7ƒý•ø"(–½ ýí4)#èŠ@͇ðÿI·ÂæIã‘1SåöŒoYšyTßHʘFøæx0j/¶L6ï©ÜQ÷Be…ïPdéUÂZ¶ïØu˜¾¬ZeØVñѪåF…Íû=É£'Áôdr±°w%’ÔlŠÅ ´6Åb“ïWÒØ {.­öâĦHilM¥dn¡Ã½ƒ—Ã6Î@JL^(ØlÑÛd EŽ%ƒІ߰µ _özÏóDè˜>{]æÞG(-ÑæBø§I*§íú²uÔŒ-87ñEf×ä1Füîó5¾;ø»=qôo£8Y5Ì9È gÿeÜgÆäkIÿ”81¯’’OíŠ;0 ßL$Swî/r¹ì–'¦™ñ6m°TÓ#Ü`´xÓÁØð^¢EÚuºcÎ…ÆÛ'=VvñøSfVG»ÙÛ-™_8¹©>‹:Ͼ›ìÿ—û˜O° 3w˜´»ÃµÅ2ïí–œ Hq\6tÌž·‰ODÇBÓ ¸Ô2ô17‰`'©:ÉPÈ7æ8ŒŽÊq\ò(W=åO~PÈ—!5ÎÝTÇ¿©1ëXI˃{û_>±+œ0}þ*A¡ÇÔ’ ½cŸe@e†;$*(ºÿC9ü5ðNÇÄ*Ũ"<=½Kø6H15N쇼 µIãeDÝ7T߆SNÑJ¶-ËÉ @â¾Nøüƒw—­õòý•oª’ÕØ §©NÏ[x|ê?KM®×?#㤔ǸKg0 E0þ «ßÒ h€T¤Šq81wPºÙGij\\‚㣧˜º¡‡ß=Ëîxø§Í?¹¦_£Ù9»%•(LÅSÍÄÚéézì›Tæ}Läó…^ÐòMs;I̺ ¯UY>~IõéNE]"îÈmÚá+%”ÆôŽt: ºR½ …®•É d‹',ê7:£Ž©ü5BñŠ0×hoNÜS®ÚçéIÄB™ŒÓ2Wi$ªùVJ1ÓÙù \Ù/#n7a«Õ íS6‹ë§²Ýaû‡úІpkn-«WÙú•ö¡ÖpêaºN zª¨xéG6DO6Ç'ý˼&5Ô9™ )È8© ê*Ñ­­QCu£Ç¡v›bÆÆ´£î¥37önê“ü§‚LÒ¯ñᲧƺá¨ÿ{®Cá”éòšcbQP‚2xµ½¾ú'¬ÀP²`ƒf€«…ßËÝŒ.ˆe×÷^O{r^ÌäÝ£³Y0íí smà€ Š?§É¿Ž[M\ˆ#^ÚÖü25Œ‡¡,ðŽhg •(ä®t—tÛ¹¡Õ°F³SÅ >KøÈöäÍåôcé²5eg -hîÈ7P¾šžq+çãyJäøÂXÆÀ~†lq]ê˜f_UydsÉA‹Ã ÓƒŒ•'χe‚°DB×±öÎAøxE×å?ÅîHª5µ)ØyMGð Hõ?b–³œ¿ËD[4ßúHkÕõU©’‚:(ÇùÁ™ZÅ- ¢Ï§7‹¡¼^û§2éêÇis0£Ñ´ƒÜì~?};ŸYª­LÒ/O}ê' GA`Þàœo¼äç n (jòS;“A­Mƒ©ni”wû5›ü}^5œ_»’³=tF—Ÿõ®†…2ã²ü ®RÞf(RL¨>C¬Ñ ¸ç½ÀjÕ”(M@ç=l–µ0oøA‹än9žŸ…?1¨G´Õ%]çV£ùv­\ôFœÕvC5.J–S[ÄŠþÿ‰ Ò0ä¼k*mëjUé'K ýµ ŠP¿íueƒ®#@]ÉI„õ2}ËÝR+Ã[ôÓjuªCR‡H:]—[αZ[o¿ñˆ‡‰\wM†Q¸*OæŠÀèóèOî)¬Z´_Š ´ù>«Â¸þtüŽLEgS³}¸1¸§†F˦N,úgæ’jx¢1žàsö@’â+ØèP4ÍîUo {Á¿¡a÷ŒþÇþœzl¿Дwµÿ ¤ºC«çJ¬ç,ùØ:‚%¨}°É瓇«ç Ð¼dr”9—z¤æc ¤~©R¸ÀTf ¸tK*C$¤§¢Û0â$õ[x×!&9¶ƒ’ºd“jp—WîøhÑ£‚#–á,&¯¼ôùÄ`p <ºÝ*íÝ+û9Î_q»fhI»}—aç C÷‚‰<_å·¹oeél°ÜÜ(AãmAϯ]…N?·!ÐwórÕBÑâ3Ïîœü|®Q{­ˆrgþÕ·ÞŒ€†u¸€îHæn#úØ•:ë*¹¶øJ=v| ‡­Ê<ý¬1­íB߃ $WŽë3W†Ñ—Z˜q“¼Â]é¼ÃM¢ëÃ4OŒÏEKP¦lÅ_®^ÁÙ'Û/Ë›„U³Ñ¸š©F›2@AÊz¿nî œAbš{áýòÀŒ>2ïbùºí%(C/AéÇüØÑJæ™,e p$ áDHÉóÓã½èÙ¯&¿44FÉ7ÃøCo(ê~Úl 4éÃ@Ë”ñy*® qâ¿÷O\›Þ].€ïqJm5q_HJNÕm+ Ò‘LhsÓ4(²Ru®Öºš Z˜ W]ÅÕbF«pF«¯N å0ÿ¸Åíï Ö.ÝRçÓÚqJ?w7øÒE^Æ?ü.‘[ÕHCfœ¥EIÜ7±ˆ½½OÆÁmT/àzJEËB#NXtŽPs„|X=ÍÝ[u41Úñ ÙX¹«êBE솒­áVúÙ³À\öùQqš½ð‰3³.,ñ=Ê¡‡¢xÜçz§ÉIòŠ!‘f›^–Ü·íiDÄÎþÙž½X˜g+_²\úô•jã®d¼ë£ŒØýÚ‚I=& ¬y½x¯Žb[µ!y¢¼÷E\ñSÊö~¢còBüp{½îñ…öOW'e 0.§B#ˆ'…8K¤óÐÀÀ¦ö¿ORÆya‹bO_%@s"8è.ðƒâ=Øþ`]ÜÕ‡¡§E'0®W]Ü4d²÷×þö¼á„¥8¸Ådós® F—‹Ý«ÚQw¸Csⲓf3бã)s=ÎkÑŸ¹G»Í«ùžo ͰeúRý^Á r«E_PâI)ÿ¯c[a¤>XmüMbjçÈ.¬»@¶ü€R%´ÏËý éb¯NØèn¾3­&0Ì; ®hœÏ¥4U™÷2»£÷òáÿx?ñ¿Ì¼Û8Ìòœ] 3Þ6MrmÆp›T¡ç{Mg¤jÞ?ü€<Æpé’3î?ïßMý§á\‹û®'-9J;ͱ៵’$foE@ÆÝåxrJã;Àå®tF·¾~ÈûÉ’WÛÞ¬:3.ZOVÐm»17ÄH<‹ÿ/Õ1ÁÊϳßüM*-€/s÷7^sÀ»Uòv‹b¤ý`’žOÈ[$ØÛêö¯.!® 7=⢢LefðòB)o«H½€ìX¾¨…1˜ƒ†Ü#$o::YM¢ û #îšÛÚç7Ù®n#¶P·FP.Xë¬èyTÝ[»eËMeü´uד+•¤L]2 Ú`ñt-ÎÀ¤¬­MJ¡èœ>‘zBcrÒLxÆtujBgNÀ®Öçàft³IWæÉŦj‚Š þžÝi€ü‘]™ Z­´DJ<~´ÂÏN.iõ‡_ÕüÆaõ!(d‰åFq_öÑþ¼eݹ_ò»¿ÐäqQ”N÷¦ ­%ŠWyêJÛì‚áÇdÇNÄ|¶ËÊçC÷+—tS.a‘áœ`ö‰!•ó¹¥]‘?r*ÍöKNŽ%û+Ǭ+2/³á/^ðõ?“±Ï}äôR‹”uã÷†…¯Ó ¼Øðî÷ìd=zK°´må᧪¤‡ÓÍ2 È 6 ~Ùѧ]•QQþ1¸Dg¿LÞÿ˜wqƒŽkéVR”~+~`L¿&eé8Z1eÍAâ÷áT‘hþí­Ï‹ß¸àßÏ@B%uüÆnó¹P»×:ÏE¯9¯Ö¾ò#ÄÓ³¿óÊÎ#ðCóäHƒC6Ð.#CÙ€ÆFDÓI¢YLìÐØžYUù Ôé(Mqw",c}/î% Ä‹PÍç$5cL\.gbx#þÇm}4àeÔC=“|¦5v\p.•ßí׉g_mrlÛhm%x‚-g1ɽŒT³:ÍÓ^‰ŸšRêjí¯á#X0ùj£3òS}wÒÆˆxƒÁ0Æþ=IshsAýW æ¼ØßÔNWaPAo·ZÙÝ~±Ë46öƒ1Auü96Gz]kxä*¤ã¨«%ãY1„î‰*Ú`¨Ù˜!‘9ì ¿ÙKÜ]LFˆ3…ƒ~ƩӟTÊòR:]l…eÂêý“§Ö$¼X$ʬFpÎæœ)¯#€êf¶§}5¤2EåŒÌ´ùXæ|.Q—™üÊ´úqBúJË †ÆÏ›yÿ…Ø5/­dsc}èÚ‹âGè°ÎŒ OÁî;èœèÞÊÚ¡­†ò å"q¾5 »ql3n40Å]±ŸÓç·ç\`Äh*yOggS‘P¨äoîCØááÜÛÿÿÖÛØãàÿšâðøïøõÿ®æñ÷øÿÿÿkÿóûÿÿùÿÌÿíêñôôÿØóõüÿÿûÿËÿÞüLÏÀÇãòÁÙf£,á¦C9c[“´öš¼C¦‘ƒ»’ÞDBž%ÃÉö:ÕÌx Ãf§Ä?öµ8£Bb[d/âµn»Ÿ‹ñPLm´êëJ>ÝqGÙï&=†¢w4þ”EÅõIo‘w‹Õeg{[™¡r%isŽwšÃ`c‘ãìIßÐãî—RIï/a…~`¦OYêi½Žå†'ÒÄÒF¶ûgÜ?x‚3¥tÛ\­²…üŸƒ8yY+ü)Ø Ïö¦È´Ðò¶ß‰üü5e8)¬F Ö=íScœ„>[÷YB%²7›H œ±Ý9Á<¹€L™-ƒ”´q°ÐÈ”¼Õí½DmHY1:èè¥ çÍ·1’¾œ9®ÁUdc† Þ¨‘ÆB‘cR¿L2-(Ò™UlÅó/]!Mm"5ú0hJ{{õˆ%k‰/>õèðeëL²[;À¦©x_‰RÕúŠÌò›ð?=)€X£¦ý#§ƒÂÌŽn{¨ £~™&ÙÉÊkÿަCC±ŒO›õMsêÝשʫð®ðʆúómõµbò€¨ì,w7µªÞ ÷Šé°«Úü51ä4ŸõñA2Ü`5©íR»ˆ“7ï3’¡ oÆ,ÄŽj²[òs^Î~{/ä•<é¼²=Ù ¼ùEþðWw:­{¤¢¤ÝW_B4 ü)‚Åòp´éMDë5Ós;î4yR# ¬Cᯯ]ÍÍÐ3²räú ”3ýƒX˜Ò’÷?[â9Ä&6—l‡“L'~=”ÿòNjýª:u¸‹»5Œš:ŠÃ=1<'è#·UŠ€’ABwÍÈIƒEÈÍteÇwpOÐuõÜrì¥_%„a¹ªãlìŽ;áçÁ&Ué§–üL¨åL¿JŽ9ºj¦ù¥Bò=UÂàÍà?×Á’Ñ]¡œ€â¶ÚÌž¤w\xÄûŸbMóòá;nØ[Ÿâó9ÀQB+×w‹ÿŒŒjÔõ.˜i)`WEÙŠ`"˜d“QKK±a3õÃM'VEü¦5©ñb§`=ߘ®³¢Ô]zò܆Öâ䆙¿çûo]„™±ë.‚´ÛP»µuF¯æÜï ²·~©áU‚§ÐÇéAÛiEs’¶½) ½ýŒ…üÙÜLû σãLÙªœPƒ+¹ÔÔǵd¡Îe©èl­ PÂaÞœîŽh#~Ohv)Y(U¦6Ií…ÖP/±Cùv1Kç#o¼ƒ÷ `{:üÞfhØû¢Nß|NI*cǪU*Ò˜®Œƒ<*•ñnñÂæ´«²>Ó‘ Êõ­ÃWìЯö]·Hðo²eÔ®F%Xàô<÷âÔ¦‡ô냦–6”åÅ1zqDï;¦³”|ŒTŒÞÙ›¤®ŽÍÕª¦oº­ï‰p|‘”oRÆ…EþÓqšà¡Íü|©Áa­[ûÎÊEﻀÁoœÇ™½&•-»¼xjµÝ§°Ý5œªaõ¢¸oµ—€Æ—œ¡±!õÓè<«ñô±[S™¼#PeZ..v;Z*üäV JBaÄù™{Î óýñ A%¢­uâ¾Øˆg`#€‚m+Œ´¾Ýá²§ê2)R£¶¨WóéWúL‚¬~¥ßŒ&ƒ‚vSšMÛ†òÏÒ[õg:è6jœ@#¯jè<¬?èý•b•¢¶Be‡Vœ§…2;OMf-ªtnÊí±Œ+Û¥œõ|–!˜áûìÔ±9Â3O„;7 Ž9žDs\£Õ§½rQ7cÐ¥²¯xlØÖÐ×Â=lõ÷Ò–d©'Öù:¦ŸT6Ü3þ¤Z‰“æø;•\¾@–Q„ÃâÒ{MΪl¡ NÒ 0¥¼L4š>¥Ž´ãŸ†ÿ¢k³ ¾~/ŽÛ1y¿Â’WÖÿ;L"†Ce‚£DÜlų®ßjþ$*®šûtPè«ü†%'F°¹@¿ ¨ïóž'¬YOÅî¢X4\ŠCÏŠ#ØW% Ásfw+}¥GjÄ(f¬¼yíxÌêÆa¤a°Çv-.„V»^p2¾°]¼úyo"Ò‹‰‘G¯kT°ÂË*sÝFs,Ífþw¢[ŸNõøÅ_±ø£´Oà‹ºÉ:.‰”ÝÍ–N]p@œÏ•ÃUýÖæb€;dŽGÚëò’ÍüMœp8eX˜‡ðԳ켪À”Šy?éDU|š¬å‰9”8>Z ÿg:LØë«Ä©0üM&mwý—ç^‹·ó‚‡êÈLÀO†£ì$\þċީ/»>ë/tõó¨Å>H¸püÔ¥iÀ#l ÜbŽb\:fíØ' °ÌT!Ñ ÞÅjè.²ÁüG ¦‚þÀ»¿°F<÷ÑGÜ2žÄo¯‘VM/k@É쯗ÿ[<@g«T-šÙ¿ŽmK bÏSŸqgv½“ËÓÉd¸¡ç?¡_õ;›wM¢>ú¥òvP§Ä€Ìæ#e¬¬—ÈžZ ódœ¬¹ŸÚu ñùùA·¨kÇ^«üL«ªëÐr:|7W_U>æ…_#Q‚kC2>´D݉•^­ˆ ImP5ì#†=RÞ Lå6Xï~1?¢àZ8ûá²ÙÝÆ¤'Ú‚8ïΛ"úÀ&<‰xðÄ…ã«ëíºš­ÓäÐd‚®ÂÑËžá¯pªW$ ©; Har.ÞøbDú´p3· „WOSÃîÀ•0ÀU4Ž|T96Ñ»Ÿ4YˆmÇ&$ø9²Âº’L³€8rn_¯dW2 =I.{„Üï­@0cô.Ä]ü.0]ƒ¤ÅëóQB *’ºãÆ,Ô>i ®Ðø 0Ü»º»Ôßô\-u*¾î¾5T+X—º«ï’%T¸ÐóýàP„ðEdž{'ÎKOà ó 8fùxþ-͓ӓú/ÑàL³Ù{D ‚ñmŽÆs]K£¢¶MzÐû‹h,)+§²´­)ªõ„×ZÃvØíQª¢œJyÖ¤ï©^P•ܳ᫕3/u1À9ãeô y@¨L™-’«ë»]m@{†¿@h«u?µÓy<™}×ppЧGu z)7,üLÙUÀÑÑòͤf)oW%ÊÞSR rƒ!ÁA8OÎeå6ßpR‘ò‰žÏsÝ÷õæ@Àk2Ðÿܱ¾$бxÂÌ­ß'\ˆì7’+¤ßó¬‚/QÜbEÛpNOòzs9è×-“™ÿ~¢gú+¬5iá‰Ð–1å˜â‚¼ 5&¡a¤j¥Þ”Ô–/qNŸ;?0¥Œ°w¹ÝºQu)²­L:•-„A gE±ÎÔ±xQü5.u~ nÅJýèî¨.d—Së«ä„2fÎXxòò—»Œ¯Å†šÉ©å„,E¨hüLηlÑ;Ipøû§w“þRwZŒcr(…z{EåîË] $ñC‹à²býÔ9¿¨Å¾›iÈñzÖ‹í>e%4„¯æRqƒÔ}þk©ºÑ‘EBåoŽd<R€š¬Õ«‰»¸xDyv&Îyåî ïçq3þ7„ªE±2pÌËÂn9d¥ðÀ€ªÔyDœ6] ?AÁx¨–d"M)3æMã5(Çm@3{ý'KÓÅлy­þº^WœçïXíP¾’ZYDáàð{Ïgß-40ø½Õ äMyIØ>]\&“Qü{.Ńgïö“ ±ù™âñ¹ x £”nzs¦R“5BïJÝA”±>²mÅ©^ï ­K#@í/ýD}\>žáJ u¬üt4|+l¢››…c„ï¦w‡£ì²à_¡ºàwHÌ5O ¨¡p†_j;‡@äÔoáÞ9½ÕÀ´‹Á3û„°Ý’ª?ÅêpÊ¡”m C¦>ÔÇá?hl€áL¿å&x«®‹êÜü ¼øËR§Ã:m öWCx$Áß1_BkDÈ6ÙŸî,®[v°“?ÌÇ–ñHßà&k3µ#£vˆF–™†^Ñ*jhô"YÒñÚ½ÐnGk»×‰9ÌC"?Ø(ž2°ˆ;󮤑åk%zYéÅâ~$ýš®þľí¸ÐÚʈ‡ê_«ü²NM®S׳gŽåQ6ÌÕ‡Ô4×£ú&“È•š¸ç8ÄףъÇwˆC8:œÂÍÉ"(Cl÷âþì¨ÇtÉ¿– ÆËX;Ï8®ÇÊÄ$c ¹Ù0–X4Ì·Ù+û„è¯/á¤+ü‡V·ýrÁÎðì ¶Å‡¢º·”iEDˆÆ.RËÅY¥;|# bô[‰y~ kæ ü{Hôj Ådý.w 6àI’Àæ]üI#h‹ÖHHV¤jíîˆG+š¹vñvïÒÅ”„Î.EÑÄ\Çd%7ŽröÑ« ÷ÜNýû 5>Wô,¼û'òKÒ–B!(«ÓÉÄ@kÌqWõzˆKðM‘ØDë,#‘ÑM—w5°OSVmæOß³`í/ïì#ÃŽc95rr~•cý@šCL4Üéɶdcèîñ¬0üJ"ÎzK^ÐN¤Ã­ŠrƒÈÊØº²­•-QÞŒ0Ü|ä&ØïœO0„aã‡yòf—Ÿ~k'p;•8{æ7Šï˜Åp7s½.nCªŒƒÌ=3<Qª~k2Á؃jGV³Üù^6ºÖ½è¥’ýêÏ|Du ­xÔ¾´¶…Ç™§†£;ŠžäÓ^ ÇɤU|¢àþ|2­Q)‚u»žìõ"!àÉá© •éaf!ߌÌÙN+æKùÕCp.BïÜ †Ø—¯I<ûÎØ»QHûÓIÊ48èRCÄÍÜ<à5Nƒ ÑÀ†„™Õ´NáüN§âs€o ù“_˜ãLzÆÁ<ötëì|û;)6=ߎí@ʼâƒY¨?ß eÎEâ5œ_ÿE°;+j¼áފμ=ÀŽàÈÖ'xÃ}š?ž²yû ^ñ$ „€z”‘2û~ŒÁ€˜×—N/™ZðÂÞFåE×Ìo‰!’L5"ÜlN $j"/­#>HVA¶Æ{Ío±]mØÐfgç*.Ø›ÕB%‡è¾ó´‡^ËžsØTÐ~ÍU¿~ÑbìÑ*ò!kš'ŒRßD„êÉÍgEÏmH³8KŒÔ¿‡3Î~õ{°þó(™V.ô&-9ç{ÃS ü5T‰ÿÓ‚ˆ f ¸#Ÿž€usE•4W oD×¶Í \Òq—ÜbÓ'Ð.ßnÃã]ßc0'†O¶Áî¿@e˜‹ Ï¯5sÇÀ5ªQÆ_6!™éÁªØx…å¸P°€G†n—‹…žã±imm …,?þ”gLúz©Í "dôñâ,åù¨˜úO2¬ðE}M0b×gøã±/8Ô³8`¿´e sþ„…à  ÌL:'‡²04´¢Äèñrë¾g1Ú,ûó F€ž”TX-:ÜÁf+E¥…–\Voªá-\F¿.1&¨1žüM*'jC—fµ¢Röªcù •e®í#ø5à¶z]º»uÃ)å¥Zy¦«RˆXvú„¿Ú>ûƒwßÕÞ•=箨¤¡2 XS"@U(i³J#´y~­ÐŸå‚¬.~5Æ¡NxÌW‹–ðõ•F}Óöya‹:Ã?K_Й¦Æn¬hØ4·¾d_í–„ÿ râ ïjsüÏÛ=;í“yt_N-•þoBaè–óAüÐÎJ»OV*­|#šíž³\GºÃËE%·v™&0ì(SÐÌ”œµ©­Bh©}jxFÀtùbÂu`c8ÞÒ8¥A3¸<8pãÐdî_}n–·ÒQ4N§ü4ûeÒýyM·H«{Ô©šøÛB׫Wm¶+k54+·.bxìNä}fjH(ï.àê’1[¼<Õ‘rÕ]³ÍÌW íÂ@9±‚óøyßQõ5Ak%ªX`Š’û^Šu(õÉ›ðÀü—‰æ]· "߃¸u@³aÈÕúûCpÞixŸÊàlF™·˜aƒÝߊÿ;*,ô¦“ܼ èÙÕ_á]÷‰µn]2œadU&«† r!öããŸBÜSež6†M?×n5ië¿HrV+ºLT#ß±‚~‡ƒ »!9Üâ+i¤¤Uó Ñaõ@ÓÅü‹j·¢²ëßç\áÕèþ…±.5é=À§Ü!ÈöýÕÀ b‡¨7÷"Øe$Âÿ®´B›„œÜÑyí‹Ôí€Å‹pBÃ.4R)j¡1bŠüÅvhØÞÌ㔩¼)Ÿ¹<­è¯}ÏŽ‡àq·g±(»y†œ-¢V~‡ñpw^âå±Yà§k–/[F£:‘t²°Z8@ȃÅšWe|4)…­bJ _Pú0-.¯ÑgÎê¢Î+Öpý\O%—»8dï{>ø#°ºQâuCäÅ<8Ð×oÔº²é>‚;Aö;ªaçúÓNú»øC1›— ÷Qp^À­lúºV³9ŒµäÉQ•’BùÙ ÿBÎèéû(+¶ÿ}±üןº°ºY^£ß—@B±^^uú£gܧ|Ï­yŠd¡Éc/fZ_¿ÇŽ^–ctÛ\Ý.S ¯\—Åý!*¾È/”ÉÏ1£%6gÓ »dõÒ%¶@ßœ€mäŽ <«©ERŒñDëG Ã&~ºO‘T|Loêpv “õ“ÔE5‘Š5Ñž2¤{ü6y·Ê¨fJÄÈóñ×ÔÃŒCôyÄ;c£»4‡VÑØõV0ú¬±é«»n‡l;U=!Sa U°0E,>ʌσüAMÀX\÷²t¢§OÖš:šøµòÓsÊä9Ÿ9•]¾W E™%-:½kY ŸÚ`í˜ëÓ¦ü›MDóƒ­¤»¨¨ Ÿýþ’1>uò¨ ŠH¾t´­­æ"’Ú3šß2>#'¨u_häü˜7ûظʞ‰ŠFë/ŠøöüÇþ_ѸºQz¡#‹Y§ºÉ2ŽHD–¦y"+¡‹Øôû—¢GëüLâ·Xd\´ )ÏJ$>«sÌâsÀ…çÍú r:l8Åaƒ”EfBÍ4pš”åÃÕäú¬I{ËÊ *C7«Û°ìÿD9ijçµ(¯Àº[ÌmÓ(o=T¶¯M7yÝžtx+o¾ 0ndŒéÍa¨ÉÕ%¡¸”1Þ’|nÇXîªÖNøDj^׿új·lzió¼„þ)1ö/³ã¹æÑÌï_’vƒ8W’{I8PbÃà®dqíøªÊ¬Š ‘y˜7’àˆÄ +2É õH±­ø™ç³óÄ*)+drCx,ÏÝõ²1êxy·ÔŠü6x8ÃbÌ&j¤[˜$åju"á%²t[ö¥WJ´Ñí4¢[ YÞ.žËKc¾0 ãQ•w&j¡Çí»PÙüÿ-ûZÊySJªfæt½ÈÈV£¥Ï VÖ§dmORM&è=Œ¿f‰í\ƒ*Ìÿ´ªÙüçm‚þ²øíêóÄÖÇçI ®V„Þ£ ¡ý¼ô:QØr_0Ê‹¿¼´0òæ!Ù'VF‡D†NZEˆŸå¨¯;T±ü|£>ŒÑel„il]ñ¼¨0iÔc6¯cò$n9ñ§4[Û‚É0˜ùlÏ~òü6Îíò~ô·°f%Bµúú‡üLµœÝZXQ\Ð+ïj¨Úa±‘Uj |éi_»“cò«Ö¥F‡{M–¼ò5ýªÙžÚÂvB›#§Ð&ž6:mI­8Æ÷|ѱƒjùHÉŒl°Þݘ;#ä0!³++Þ°ZÚ%ùÂßÑóêDn}Œ%]Q\l[Òx“›½W¹¿­Kª÷&rXŸÓïÂr.Dcã.— ÙéŒ×i7u1P‡MgþÏ}Ax¥?Ìs_…í2ÆùUZk).ïû“í›­üG[Ä]rµ¹Ùý08•Ô‡ Kt&(Ôü ä³/£UÞɽFï «^ÊmUSëê·ÖkÔBð‡(0=JüLÃàì ÓSj gù##¢–k‹t­x r+(&ùòÁ6ì"#„vZ»+:eÇì}ƒ–Ù—Öõ=“úÆ ºõY®"­ ÿýÄõ* µ žŒ‘P¤Û¬ßhÚúf¾â–Þv…–i9Áa QÛ{WMoáÆtÒ0È@•=8é `:ÆKñêE­íIÜÂþ{qóxò¥Åä‰EJŸ*"¨U-!¶ùr+ze).#¦rŠë Úe“d&åãÞ=Š#žFGgmó½|MÌ¡û ›À<핯za£#Kܦâ8Ú—?ñìf«Ôá‘Aœ„âܰâ?Îv5×~É»S¡s“CÈhüLì]þÓ3P¦€éȦ(«Žèri/Xæ ®)LÊÿÿj~{ÌØ¬aM3þ3 Ö¨fÌ¢‰ßΞPeï-¿9"™ò™ƒÞÓ€3œüæ\,÷Üír? ”ƒ €\ ²aN)’[;J1›T LßkUù¥X~é±] $ÔR^ûVlÅÏE‡Z_Óõ«»¯2Ì»`÷ÏÊ8PÐ~Q}*ËÈ–æOÃ*;WúÚéÎhï>⥯¹ Zà7„ÞÇú˜d¾Ð°ú.ñp– .”½·ï]#ãŸWÒŽ¸áááçG‹dµÎ•Ý?Á­m1ÃÄn/ ¼hÆ294Ä.5àåKü|¨—°ö,ÃÄ(¬ åÐ(/9bV-b9ï5ÀvqŸ)j®UÓ/'–#»×@Åè8¹ÕòŽï+¯+ø×éÀ«zÏÿ±è#)>å4sŸ9úìÝoÐWàÌ´-wkòÁà°]ʉZ3yÄGjƒpó¸Åk0…²Åc–_Œ—y¿‰È±¯2¬OÆY86 oÚþK90}^%8K•Ç­$a}ÁÑ\ÝëgœqJ¤ŸÎÒ@sü9GîB£‘wª›¤ jÖaV;es–Fôo×ït!:+žI[$pè[®—V¦ÙfïQ E¦‹ ¾‹⬈÷&~ÜC±êû:sðÅó%¢R|¬´ÌfTä©&çÝr÷¬}gZ,ÖYí%e¸sÏó2E€õöE_Xþí¼šeJ1gï)É’€}Mä|¨Õüp£ƒÛì”8Ð7$jn;ÜE“Înç?¹‘üË@þ>uŠvR6>ÍŽ=I¥{LÎüNPƒ’#2²±ñÚ9¬?L ê3öŒ é½rÏC§gÃáe€Ô¯Aû+súÍGÓ^J™¦¹âÞ•­ó§a% !b#¦TmNsNâò DH1ýO×Yç<tl…´²*((ìLt½?”ï[¿7˜¸2ü§È¸`i)u:ÅÚò%ÌÔQòìPœ×ÍèíCèò`bõt°ù9'øˆûõ[À>™_íBy]vÐm·7™mׇ+jñX/Û3ãn«Á\:}Ïp¯nâ2béqrûä¾4‰mHcÖ6‰e§nQIžÕËYͺ`;øT=Cü ˆø‚"KçÄ­¶3Àæ™Ïi¿³OÕEm‰­é²áüMJ~ç¬{n3ÓVÈŒÇþ ªN©–Ó·~"Yd ϳGÒróñR—a€žP?sÐWŒåO”àÌ4ôZVÔ V—´õb´h:ì»yïyÁMèé ¯PùÌE±¬<ÚpŠ.3b¬^Ôy˜ á<²3ò>H\œ{Q°GÚ‡4îßú‰u½‰Û¼ðtjûXÊ{‰„%euýì„7 w®TA”ìˆÙåi¯’ý–ñu£8#öèLö¤Ùº¶t·àñÿqjf=F¿ eýîC|y ®Îbê7Ýfëɺ?âþúe"íò¤Í¯:ã˜Yär‡N¹{ÔüLÀ45šD$`ìÓRÔvÜxög˜É§©´;ÔS8HÄ& qWX”FÍ)q@ø ücÿÎe—r",-åu ÚblÑPYÖM–‡ÖOÓ%ÄX]%èÔù Qr‚ó–gÓP+Éì­N²×lÀ5HÐo‚íEkò4„úä\­ñùÉò뇵1wº½å šØ9C¯„å;^y[bÁäý±7ËÁFz³ÆþÌ“¦uˆL(ûñã–O„h»~1Œ2´¯Žø‡½Ø%®2Â还ӨˆþsP¬C…ª¶p/è—É¢=ù}áqñܘWÎXlÝÒlÂX,5®ü0£IÃ`f\«6Ͻœ¸#߉±»üne“eÜîl´|ÖÄ ^ó•Ï%UÄÒ ãgl ’Pêí.‘5Ý0ýÚÀÃ…Zĺs°«•3“¾æµ#rŒ7­sMGqˆ5À–`™\!'[éê¡xÆÌÂÛNÙ`ÿ.â±5ìI´k O.^dt\ÍÕšͱŸ†Ô䉥ðÜ—›c’qû}“§ãuºJH’â·Üô¯LË! g…Èlïä¶L“Aˆ/»Iy\S/„‹:W”€>‹Skßöƒ{›*×ÝŒ/t ­¾âÕõ’ªkâcv±±†ó”ÙöÒoÝîÿWî!ñüMXÒÛ÷¤Ía¡³ƒ£S3ñþêxݰãº<ˆreõör—–½im,o(Ôl\e;*sm¨ èKàLðf8ñ,鶨‰Y,s³în†…² -Pµ¢-N (mÄgȤ‚凎*M€Õï̼îؽÔÙ<ìÅè#Sõ£Ìº/b‰PYã§ÁÞŠ}êC’-èì¶ÀÔýFE°rGï;ú{==-ÜóiTDм&2à@’ C é…wü,‹—ôƒóÅ;dR2lqª2¯¶ø­`ÎgÖÆ·sjÒÄÝ`÷xkщݞ4,ÖcŒ %’M\ÄF–¶×û÷˜2ÇÈ/”}ÃúPü5(’:“‰p¶ì,™^‘Að3ÝE-\)“ªëšø‘ÎtUå¡ô&Êk£°gî·£HPQ.à»V5Žèó•ÈÅ@4pÝar%¡ñ=³œsR &¶!«ý•Å}V94ºZä5Œ(눔ÿ©37}í=®Ðg}¶»;®G){ÝJÅ} b\QÿXض–0Xæg^:B˜#·¤\bûr¤4SŽÉ¡Iê?¹h"-¾Ö·*Äfqð«ia[ÛìÙl-yø±|}¿ìCŽJÎÄÀþHèð¼“ÈÉ•v\ð=ÆdØ(8ôDO—f(D0r;´ü|®þ©Æ†<–h7ÚÑÆÚ_©bžâèW¨F>—+7žžžsΞà²<&Î7æäKXˆã<ª^äM_Ës: si¡mz‚Ítþt×OTqEµj11›””ûKjãe¶ë`-Ò)vƒ'žt„ÔËVÞBI’˜ý–/µ•˜¿@À%òƒ6¶;7lIPÖ"HÿeƦ¨'A 7a*EªhëŽYsW¡†[fÅioÿG†ŸP›˜ã5JF‡à0«N‚ò:˜³ÄZr‹xÿ-AVVÙÑFe±g¨q–ƃ]±_T®‰!Ðàj<¼Z ­¨2½Kôe.ƷɈ¨Øœ‡O•Hz—&[éš,öß±ÖN\‚n¨±ÙVi¨R ™O? B$go ëæÚ‰$x-jåd ÃSŠ¢ÇcÛ­¯’{­‚¥,M Îõ™ìß¼˜†˜œ^…zä¼!h+$i”hñŠ©{þ½|‡]®(YÝÇü&¦yÅ“²Ìú†"Sä`sç;¦§Uš ¦ó…Ñâïû˜ñ9’íÊäúãF[ ¾®¥´>õú ÓZ×ÉóÊÉ\β ÊÛa@àùóùÒ“üXšá©šŠ¨©¿êÿùQ(Ò10kKOûÔ<]“ðÍ¿„¨c,49p&†HÅRéCüËMù-¨œàÕz…ï+KwÛžkù?{Ѓ©;V€ËÚsvJ)iˆö&:¨$xÄßÇžÊ'Ù¨ôB¦A¡;{μU¯,ÍÍH°ºÂúÖ³§ëÓm;Z[ºwGGUiýÄßSŠ2Ê7‘œ€óñ„|3ҞܳE›*–ñî)Dz¿ÅÔÑyHq'AßEô?G?˜ý—Kó1ÖÙÈ.×$Óc_Dþ©ÊÓaoU”XÏ¥) 5½V†žGË#Ò}OˆÑÔ§w=12üMõê:6¶_¨aÐr9jÄAœd)ÑE †“3aXµœÁµ±àr¡ ²y»3D®g·ø:PEÔHqš/ ƒ=k²ã9' ¬/s׃ۊbˆ…æq cš+ìÑ9Zz—j¼6On-'aˆÄÒ²;®ºkZJÑݹÃàpZoÄÂ3€½'õ'—§ÛösÕD)ðpu=.àxbuç¶¾˜÷ÒÊ-Îl—®çýMê̯öº·B…ruõ:3Ð/U\”‹“ÄÒfŸulÀG.ôR³Ôy¹™…í8ãá«íÄŠð™Ì#k[“¬9¡µ"ú"§ôj§ï²1‚/ˆqç)¸áÐUr¿È'èØûôW¤Ì€Ù*‘S Å[q’6`fŒ4±Ç.JC·Þ¹œ¤ÜÚÄ™¯N@Òb«UÏxtZ»;Ûùäz”ªüîšq Ãc6C YVfÜcïñ"·fï¨Àî?Ù¸ðæŒj/\J£¶†úÆ,öûu…øÎü«/¿Ðóûƒ{`#.T5…ìík GáUÀD¦¿>áb eþNB{J¥toSØú¬5ßJö©ù]/‘CBT˜«£½¨X™t÷Èö‡Häf“ EÆ•ód$£É/y¦k›‰ ÜÆ B>|6Yi ôì•̾y\Öú¾ gÒÓÔY4:rþå9Cn»L$ß=¤±¾=6­VàÞˆAEˆv{))?½uÙƒ¾ãÿ5>n@Ž«w?ÒeüM$·òÈý¼8^¡±DÚ~+_Íz®ÒìDã7«šß¿ýAÚ•ßÙ|û9Îñø¸&J¤‡Ð çU$4üû¡‰ƒÙt~{ÛJ6عͥ•…yŠÚ9ÄtCt²ñ@í¨&-üñNÌÐÚ ó+†¿C½4Œ+¯ç±U`žËÁÖÛüÔ€QÛ 6ÎØ‚”žÜ c¦G„z+’}§Uä©„ú(VÄŒÑ㦲ČÿǾ6WZÖx› 5P8Te½†œ´A]ú£”ó`"deÀ¶ÄfðãZþDÊíYDÔ¸ÍÑÜ`7i% Óþ½(õu4¿gü6]wy°dNŠJ->¼«Á û1ªÛÚà¹f°Lbb§9É>YXùI‡b¦Ì^ +õZù%ágXˆ¤h6¨^Aø91Ñ/¥=ñ¶8‰¨æòÑwÐé€^/š~¥[ÁÄàI=dÇ–ÑÐ1xq“ØÊÆ–XÈ|;XHåÅ:YF]Š£Yc(è& ¯å—Ϫm@}½‰áX-9?Ôì@¹`gã8¿O/uyRÙË0Ñ;¢§X £•—'šÙœÝÿZ&€ŸPºxŠäJc´¨dñ‡WÔ©­×±|aÊO¥}ßã>Ò -¼Sü|¨£SCÕ'Ï>ÂÄÅw qbˆð§ˆ0ÙqãŸL³L ¥äóÁ6ü¿9£'Ù³æ#}'X‚rX £çÕhC¿­9èÎínÎjBØD¥•¶¯jEØ›ZÌ“ïLäzèÉ2ïý5=EÿZZ6_Éáœ,Kœ­¤ûÓlOÐÖª­«Ú}2©Ä6®ÁZÛ‡ ž?¿À +"PYýdý#¹%æ#§À£ç çÈܱsLãÍH@eýæÄJuw3¾éí5¿[¾©ßÚ[¹“!=„Qƒ}ì‡Rˆ[¶Ñ¥tÐ~ LË~µ¾iD™åâÜç+3©ÿ-²ûÝ-*Ìï#¥¢7«ŽÛj7ËGÔœà‡ºpCâ ›#Ïš k"®0?#ŒâÍ|‡ Øy¥«)V1‡}kÖàs½'`SË *Î(&­¢pèò¸ª çå}¾Ž'@õ[s—ªÿïñ;И«I––¬N Ðoáÿƒæ÷Kõ¼žÅ,[¡ùJ°Q­â:ƒ@Ûu¥¹V>x¤N]BÙ*Ý€¯Nx»·¬MíF54`êçÞ;Ž"&&7Õªø•Ûºfåài„ù>†Äð^?;æUñ+i‰”b>ìÛ‹¥ðд[cb_ÑüL±J aCLéÌ<ûŸìsiS 1îìB-YrÍŸ×D#B¹É]Úí\%ÉßõåMHÏdgÔˆ§:ãÌp'ÝÓ tH^Ä¢6 Áì=N‡®ý@œesµþ‚z‹Å²ö?7Ãåú3›v«qø¥ÿ¡Rô•.Þ‡®Z§u>º‡Tá ¬^AÖ¶¯Àx‰ëtzª7}øÙ‚ºfP4ž¾„Õ½ ¶àbÑÏ”H/È¢‡žä‚ùjÙÇ`g*5žVÖ™ ›mN q.Ò8nrŸˆè¯™Wk×ÌAýÔ><íAèoæBW'[ô©~ ê¦{¼ø…Œ¸JoMŒ8$Û#à´¬3}8<ïžÿ"ǹ‡9±î&¿Å »õåoAj¡ä2.äOëÀú’jz6VÖüLÈ*¤J¤™ë=&7¸4~™ÜÒ‰²Ý ‡åõÎ:a«8%E¡èO­ÅdRQ»«YÒƒ•ŽÎÊJØËò`zÒûc5ÕMmèÿ„ô˜éùoYA-tf@˜&шàÝ]éëÂ^B"ÌÁȶÀÍb©e™aŒL·£ªÕ´hŽÎØÌÝŽËä@(þÑ7´eÆmO»›KD>N«À+ ;Žü8Lݶòyˆ#9àÙÜš˜QëÐFªCc?ÅÑât–}l„¨,â;Á#¾8•ï"eIvÛtc¯Š7A¶ Mòôú dοZ³yYˆ'›GçÔ§³ö˜ÑüI¡ë”, ™ÎómÖ"?I#Ïb6Þ@ÄVº4õÏÝE^hµÌÿ¡`QK–Š` ¢Þ©9ñù@(ÂbCÕ¯Chö¬ª‡šîM¨Pek±r\®ª­@MÙZ½‘³Õ”¡àoYΗõê¤,ßfNV_ˆÁ—B?¡ùJ¡³!nTÚF3ˆ«‘{CC³{9¯ÍƒW=93ê}lë^¡©Ôv¬ ¡Í?‘„œÿ­â Ç.³ñCžf@µéÉ6ÂèFN°›CÕ6T‚ƒ‹Ÿ¿ÍÒ €›Jè01°RZЀÛô¾ý9åÄx%–¦é™Þ{=³@*™ßÃóOí®ÉD$e pž9üñ fžÓqÆÍéå|L$g{±ÆQ<–ZBiq€ë`öæJ¯Ø¸Ð„²xe é^3ճϮ¬@™‹½·´¶¡3MÝs Ô ëÙÙùx¶ E 'RÏÔ½™ 1-¡vC`=h[ínͤ_6»¡¿4t£Xœö[ôöDÕ¤ÝÃ9"RÙ M •ƒ‡ÝI@†u"AíÀú ç·ç·fŒ;SSáJôÅ"2ÏîèGàoß’½¹¸("Fж”è€MuÆ"2ñ-/ìÚdM îòØÁ9W.ëË_·W媅· aþé§Œ›oá!JUe·ðIÊ€O¬ƒü|ž ŠÈÑyÅæH¤áf8n§ÕIb·ñxƒÙ—í¤`OÁ\áôázT@k)µÓƒÞFk+bòéßä¹³¶ &ÆÆ1X&}ôñVþõPdÕöðÇ~\ÅÆd¹¨¹vë¿7š–þ°hf8:Tv,¨Ìß—ã”ûíþ"I^ðgê>_¡•Òç_‡Ž,¾Â,×2BFâùص&²xÛ’EOê6§d~Sú/i+W¹kaOÑ(x*»‘åpÜYa#!t)h’ë;ߦ9èb3•êxóD$B%(áÓÁŸ Èþ0z À‡ŸÀŽŒm.¯ìø9ØKÙ[ò>w„Þk@`˜ºÊÐN^B È8‘è³ð¤­°ü ¸¡Ú@Ä÷Pߦ†~¹·Ô¬a®ÅDªÃµÛX iÿ¢óbJzªˆNð»­Žk² #è}11 Ÿ«¹w_þÑŽƒ2ÁRxU©zã9 [¥¥àÇa\š"˜ ¿–J!%Ñt• Õ#£¹¸¥dÞïÌç:hë2 Oúæíw6¨Î“Ao0œãý8ÁLŽHûv™š‘KÑ4!]LèéVaF£[R 7\ yï,“ö¶†ÜQõ5€›ŸÚRQçüNOÅ_"U¼¾Œ- QÂoÙL<@¨xBEíO­Üb2a…w':9¤@ÖC{+É×¥ÜÇl–Öø‹pÛ’ÇHµ‹ÞkªA ~¿ «‘8pO;Þ(½ÉÌ’šÂÓ'~©æ "íé Xº;T/­í0°KŒ!"e¤ ;†!€‹ïx§=€š–˜M#µˆŸÈš)]ÆMo ;›Ë@ûõ1¡¶^, 0;A˜‰mW.É‚WŸTS^± D¾½«’äS^†…sþ¾”ײðØÅ—-øÅý¦%éØRØg1 Ä÷ᾋ¨G$SŸê ž<[X1˜À[gŽb•¿-ÙÎÉ5äR§ÇóóíN’!s6W¿çk¯üIÜóªÊïºD`Έ»½¡ª!|ûr JÓ:P‘ÀS®üÿ©¹5å|'Íê ±˜©ó³ô‡Ut›Ý‰áas“×Jx „Ó#ûgvM«tާ*6¢#ÇϵgçÍ7giŒåžÚ%")m}ÿ“æAâx£ÜZ×±j³‰``ó;*aIñþݾ¶d£ô]6^ ‹¢‘?/±·÷y½rÅ-þoFüMm ˜m]s롺tÞÕmon‘'Ög+Ÿo’ð¢Èßá`éOö Hü -9g.„•9-óêS~7Ë/Îj$žN„·¾Ès10»qسté&²hjb­ÝjÁШñˆDw[™÷Njðšë:\׹ą@vê²$ìC€B@Ó5ìaŸáMᥒð&gi[v2¨SS+ëT¹ü*Öºí§¿_Ô#Il^ŸƒGö}8#f3oÂûÐìÛ\^²ö@ÅÈ¥’c~‚¤@¸’Ë¡¢â £D÷Ä´±ŽþRc±]¿cØ6ßm>”ýŸv’`­ü5ð‹Ÿ£®“MAãÜ:^N‡ÂŒ'`_z„›Ï¶ PgP €ég‰ë×û˜”ÉE/Ó:V`íhU›ØâuT-füÌ1²‡ñHë2=gXòÊjF+É‘[]µ ^±KÚt6~ù]U&½Öž*(*12ÀArïÂr ßÅRþ°gCÇÆŸˆ£>Z߇"ü8£Ô$‰ÑxÕòã×ÙCûyëòÔ°Ú]îJ/*R]«ÖEØ]¾¯KáâÔèç6¿™ˆÓߨÍ(^ ¸žžKvxf8ò¿%tAx b﬷ÎÁ=üÚ»ñ‡DbÖ7ãiœ ¢ì¼á³üMsoA>v@ÎlŒ§¹V"‡QÙ`ÄØ³ÌŠ–fö‰L•Žù”Ïn›Õ"ÜÑ ‘6Üsïqa‰JááÀSr»C*Ä^_КŸüCŒ _'`2YRÛ€4^ÌEÁ·¥‡týQKy»¨ nM\5ìÒî0«¢’t“òäÒ´@IhÔhWš0¤R‘}0¸*ü¸¾d„ù˜\|¼xFyPï¹C¹t§¦‘jüSp³"f˜#ñ‘¯%‡žé:¶˜- ÷¹5~} uÒMÃ!¨l ÏÒwÖAÏN·çTÍø÷éFŽpûþ ªü5k̹-±GÀžEi u€4ÎÑi›šý–q¬5y­ÊÌ’1ö™¡Xºº¦pl\‡[¸ó+&ìªK,8’Cï8ÉT0:þ©¨”÷hŽôv_^4'@ æ2”àšµ“XpÙIcŒ³´¥ 7~ó Q5ŸRQßð¿ÞA™v¦=lÅ%’\Éлì0 7AŸ§q%í¡5çÅ7+?QÓÁßí+¥²•ý¿Š¼ç0£ÂW¿àÓX kÆìE(s×ÍæòÁzt´Øþ[×2„Q˨×1ØÄü¬S 91[âE¶¤i)±,(K‹üIptº;Ýç hS_úYüçUù‹àÔ7&J|ºZ,ÙzëiˆÉ”üš<ҽͮïçJßÔiÕñȉ…Ûž<"O:œ´(Æ`>ň)¼)u†t«#^…d¿2™C'áÊ2m³%&¶2·ñÿýt"¢Ø¨ºÞté¥ì—©d#¯C¤;@ç´¯¸à‹­î|'_7j‰,¡oìÞªiôDHšb‚þ%õL¢‰VËa|ͨ¢b|:TÌÞÑ:‹U¾ÿ&ú‰3ES`áêI{t˜r¨y¹ÜÓ¥xf3P\Ÿd˜éxA”ü4ò;ñ9@wOj©ù“@uLHÙ³L3€;t5Æõ¿ôð‰«…JÈi8ž3aè¸ÈÍœÑi'PJÕôó]3ÆUÖi)~yLåëx4úh_ÕòÅÕI!fôTë Ü‚ï F0TÚLÕIAœ¨¨xÑ[Ÿ†É0©Kˆl¿ø–;-ièØh”Òp ýDUË'ú:ðµŠ7ù·A>.‹Ê×ôjv#ì©wø=²u¬–ío5ØŸb*ïq^s ˆõªÐ|‚±'„ÒÓýað4§_e­X-vúG]+7ÄÝ`0i• %WÆ4T¨k,–ü0t<u𜨂Y§êŒ´KPÛâ?ÌbÀÝ:(ÕáªVÔ7‘P„¨ÝÌD§ú[‚žº€Z~žkËPìÈeÐ\ ú¥>lý ìÄÇmD7?D „, cÝø×_½ßJ,µ,6}ÅPë*(Ô—½OÚç”p«j›ãƒŒ…²šÀëXÀ£ÀᤋL H€]ÙOC¤ÀÎgœì—ç.%û÷[ê.¥ßy[4²á•Žÿ`ÆzåaçˆS„Õ9uéÕ ¿Ä¶8~˜°øÓyè½7 ¾U+Á"-´¾×*™ê!Çþü0]ˆtp[s拆Z5òô‹Õ'GqF›!"Ù1šÄ–Mþ·,9ܰoܬíË  ²Ê6 ÿ¿«“¦™‹õÆ‘P‘çAjE°L U%N¼)F¾~eÔ2LV“"Rµ…d@ýé¦F]Ö¬šáL³¢H$2¤ÌO2ñzZèÀ€tƒRŸßS¢‚eÒyJ6»GˆZë\ŸË·¢¬áÄÝ y¤d59Áv¥žbþZŒÚ©Jh†Š¦ ®^æòT_½œrÐÚ¶t¿ãHê¹M“e•n4}8w.‘‘žû~Ø;4'Ê&¬©oÓþñŸ:§%o¥K)óçÄï®ü|­½ÉÎ?=Dšž„°>›]ãëÔ’ ¯5Ô¾m;wbu•CÂ`njBÇ¢Þt–Öŧ_/‰¡²¨HþÌ1¡·žwrÐW ޲ZSU›P#Ä&]‰<â8Åmg*í׾ɶŒ?¹ÍšF:ææÍ]çhcA&Æ,HôÞ«3JP’f)‘ îÚ/?» eà¥xdUÂrÎa¦€þ¹N€Z!ϼ,éafS[ý͇;8°Õ`p%ð'’»öAN,OS}²µÅix¶Ñþ&¾EK ¯;Þ.dT¡…¨îitþ:q|#ö—úL`8ǬŠ2fbV¬QÛÍïê>¨ñÐèÊèBå–#™ôO¡.ûíûÉ<½Áš¨+"ë¡«6x‹"ý§žþÒ‰@Ïs¾ÄÄ¥×]…&ÐåÊâK@e·˜iÖ0˃sat£X^ålVD D ŽnslvMFÙ@¤I3NÁÓÞë=U^Ëe]pËhµôüšÂLÉ9Šš«Ït½Øž°àOj‚Þùei|»’D ’[ïPf”ª2æ¨>¤ò£Ý-4 ±öð°Pßç¶ ñt›ëæ]«¿™¥®m§µüK.Û’?{=Hjl6„ã¢?j8Bƈa'ü¬W“?‚µpújŠÕ,8cFs^wGä5ä×z9}XðZo€œT@{v˜·ÍM—è6 #׃€Mv˜aûì¸×À®Â;KPÖõÄçÊŠa³‘Œ ÅGÃ/NÇʨGI\°C7q’±"ʤ[äÂ]eÖ–¤ŒpAÝ&*Ìâbè8Ë☑ªz*veœÀò;¬±þÓP½»Ç£aa©íëìžB¦Ÿéaè²c²Ý‘åÞŠÃæ³2~;wJ0ü6PSÀÙøiº/;èwóp¶ï´16òú©ø6§0Aœ~Ú:Tc®‰:Å©’ƒÑJQ¥äðèÌ…ØO ††´ß×5ƒi&`O¾x®úºRaMVúþ/ÿl¯ª¿ˆ øßÈßFX2ª¨[» ÌÛ²»#ò;NÏZfO7¥.aj `¤Þ@:×öÑl ¤àpÀ{¥Ø—&wG½ì0ó8Éw§³AÛ÷Ïb¬:•ªÐEŸçæ œ’gkûFÜh{—¿cºšIÓ‡3 ÑŽV‹f Àë·¾dÚíæ˜kÎOÃüM±v?_aÔjöm.—£sµ&Eö;c¥¨Mxm)¹öô–AË~³ lœ*] lrö[+4颓7ÿ,_t}½ßóYå·›ƒ0M¢‹„P(þÖYQ8šqnTŠÿ•C’2ã©hå¦WåL?y°ý1‚œ÷0Ày:¯* GöÆ¢ncL%aÀüjyEÍ^t À³!'Ú§àÍ?°™;µX³£ÍRjÒƒ‹m ˆ¿‡åÇ"â @jÜ Eh2LäaŸòÚWŠ)… ÆÓáCö/ÝÇ/yH't$ŽÏIü6ü3é6ºÄ‘¡ÛzÜÓѽ¯ÁÈNu¦¥³ šd Ì%¬o.‚÷gªpu©ð¡|«ñJ47´½T«ƒÚ.Ó-‡ë€LHÜsƒz”˜‡â¢‘ è°?ñÓiE±¦Jã}¨ÆÒõqr`Ú ¡Qå°èQl†I\¥!;;€Më9ÅÿYùÃØA°Ç zʂ͸Mµù_@êÂìÃXLZý Ã1Ê”ÛhyKD`öÉFyv6À1Q‰ìy· „p¬xbñ¼í¶°ƒ5îø$Bîë¾Dõl‰kQ^,SJw™?öŸ;G%Æ8£l§ù|);ñ_‡üL¬ÌR0ç¤Fº4Ž·S ùH%Çi†˜J1}ÜõŸÐŒ(L\‡˜qrWTƒÆÒ•Ú:O¨@Ô~æ¥xÁ(ݽ(* 6ÖQ}û|ŒþYg¢”Á”£IÒ£¾+#žd+Ñã²·“ ìñ“Õ}VÞÖ6ËA ©q‘•C°;߆Xª‚µŠ½¾°Š—ƒô‰–ø WW8Yg™Ïx4VG#xÞÍûÂ6pÚUIj½~˜Â%£Îç7ˆC±È4rЦŒ 嘚½¢Ç†Ôt“ ]ÎiQ‰ríí¸cP j“Äõ"Oä HüLª‰ûµµ‰Ý²gQ0(§7—”?pG c ûŒf«QI— 熭)8EQ¾H/û„v ²cˆÿK¨÷%y,=ªÝY[á 3•ÁR#†þÂCT†5šjÝHŒ&pa˜ÐÞŒïô4ÜÝ8W4ü*\%øC™¾é7B‡ù”óu¤›Õ5§_$œÐ©ÃT†’*>Õ™": §¯gÚ¯"ºY{ (Š»Rg W¤[/¹`æ”!?ʵãÇyÝŠÃV¡£Äºx+‡žî‡‚[ÃŪc‘5¦ž¡Ž ÏœÏhΠFš³B‘°“”7ñ #Ýù8(Ž_3ªµçµÓÈÕ߇âö§T’A6¤Æ2‘Ô ŒÈüLÓ„0ÔÐíÌLb—ZÑþ?rC[C‰ÓÔ¢èdŠŒÝt@öF´Ÿ/~_a@Ô½gr+`r[}ÁFpé)Tæ/'8M§i$„ßõ¥>¦¼:h¡ãîüŸŸkVKýPæ6Jàµ4Z+N}+VßZ&‡«UŒøˆ ªD3©§È¬þ±^bP ™aé.ÈET1LYï^V*,æÅ¶5“wíýã÷WïZçÁZœDŽ›Ú0¼Qruî)[Ñî@ÃRÿÞÈ?CùR’8Šr½sI$>G‚°Ÿ¹\’†<`Î[–hPV ?.üMzLãl¥V씲Å+‘É&(ûg#¸e",³­.¦Ãµ¯Ñe‡R(ÕË^´]÷·ŸŸ¹tkáƒúWn¾¥Ì²JlÆÃÿ¨L˜}ìÄÙÛ2õàõßö ¯Ã$O#Ó%Z®êNÿ¯AÌ߆´—^hÝàe}ò£ŽøüûF>¾Æ7´_=~‡*½Ä¦6(ºtäRúÅ] dHŽ‚áÕÕÒW‹OÄ;@n¿Ký=<»iÜ1€tÉ;lm˜jïå­ÕT‘*ßIßš(¿ÎüIßøbµâ¹™c3¿Îð‰0¹ú~NåãêÁmjr1â®ÝèÈÐP¸^tgUÐNyü¬•~ßÊŒDÿÖ/7¦Kmå¯èÖUŽHy«Æ/ÜCó1]ŸŒð—+ …‰çù&‡èÅŠ|šJqþÒáþ ÂÅÖ?Ëö <§È’S×*ZÈ‘÷3uZ %R0cžxbÖ¹™¹ Ñ…‚œÎÔú…â‡p>P÷$•x'°ùr@Tó !TàU¦_×´jSÙ~Ž~m?¤­–Ñ?üLì[>åH1³ís7EUÜ}ïC¶þ·ž‘~µÕ¨Ù€ÖÖÎCS:A†äÌÇÆã©½$}æs)`|âÉL¶¬/Þ^P•P¯¤pW;FÈš[i+†€‡í½"ïXA‹¦éÕmêg·L'ÅnHÉ6i0â“÷…ûäAé 4æ-5©ŽF>/’¿Ó”¿¸÷)€eò©‡owº:&ð9ÓüUáõ‘¶Á Ÿu˜Gëîï¨yˆž r`É·UÕÂÖë&¹šg "o 콫€°‡ÑnLjþüL­Üæ7[ äz»£ì§|ÅŽŒ‡œ#­ íjí ÐyNŽSf‚S[Æi‰V´1z ™-çÒ|&¿ôÍ®CÞ´¦P…\B8yž»=[H>@ß»ôn~¸•·‹Mà IX šKÏÝ woZ³‡óö<ÅLÑàbÜŸ%Ž|‹¿%kjî¯ã_Ó yE(ÃûN®ŸHê?7­`D+öüL¾ ߨ¤9OÖ½Âƶì4ÁÇí¨®¾YûBÿoT•ŸýÖH–ÔÝYœ†)°f,•±H[l‡“Q‰|3 n†ôáÕ‘Å‘¹xäc3˜\i¨f¦«¹øT½ê³ÔlE«20Ûb•kÍPiQÕ5Z훯íq°ÝLcÈÀ (]†õGÚ3¤_6*l0ÀZl&púö9ôxP¢Eâ3­Ì™p ¬ eNk{_݉ ÿ÷‹Å’¼Ÿ~ ‚Q $k‘…l±Þ%rk’QTy÷Rü{1µûnZ8’ôkLm™»SY3½ zöì®àk?—Âàˆ¾ÔŸ0äQp [ÑN šjðEÃáÊ2|<¿D;­•YzÆˆÄØ5~|—ˇõ¦Í#ãÇÖžéÚ6“C\Ëž+.ßQëƒfÎŒ3íÅ<@ì¦ÅwÝã€aÃ烺@?BFÕ&AvÈÂ>Õ€ÎбÍñV—k‘vxIG1JO®f¸\¬'Ò;†ªÕl4Zó[æ¶`xcécuœe Ú é<¥XΫÎe;oš‰Ÿµ”òÍvÄQ¦ÑWq<¥J€B°ÂôW6m†ØßD~&SMÏ…Sj û‰KdI‚“®Ðºç¶Ôét7N øZ9,”Ûsû$ö´W‘åëüWî”±$Ò |n­rÝNK[O§"†*ée< ’Q(öÍsÒºÐA¨à"Æ–-hoéiZS­Lü‘­ÿÈ­ä8H@­Æ)d¤5/ò@ö2#à¸E½­’@¨Ñ“¯iPyª!ïƒw×>C•ÌÞz°Zp¡öʱȰ–á^jÅ·¬,'*6ð2ôÓ€q½ø_K¸ ˆÏ]X§á¬N±öÕ¾DÃcµk¢"„¾ul0ØøoÊoÖ6ÿd÷.}¤ÿ„ÙÔÌM?1`ð€rÔí„è‡OÉ­‰ ˜åïEüM ×ê^ͤ­7Gwög96xÝ\õkˆ(i“Õl#T/ãÀ°Séû%CXݦ¡8º\xáó6ã8¼u¶¢Ý©®YÁ0pì%e³ã­³ç+(ÅŸ |J Ýz¯Üò‚³XKÀûYiÚ%rÕŒ{Lf™"Ù9Ìu‚áþQEÀE$£edåͼ)+Ë+ÿ<,þ\Xq {ˆ&ž“÷"ô=ÎnÏCRˆïuÜùÊ%K‰… }J”ûÞp‘Œ>Åxû¾ª¸Á›R…XÄ¿_”Oý°ñÉ•Eý1ùÕWíÚa¤¯.=&íš§ÁüLÕw&ɵÍó!&t¦ °S¶}ä5ûìÛ¥bö2o÷X?T÷¯ÐA¡nªÀ;s»ï??RÿÌ( ¤wIÚMª†zß|]ØÏ ç,¨räiyTÀu¿ødÁõˆ=˜ç šµ·}ȩ˄š³ù‘£ºYjíÑÝÑ ¸ÊíXËá ?=Šˆ§ÿ°>(ÝË\2ª˜ž`dœÜY»%@ã§Û´u¹µ•Aª€¡}¢ûÑÀdrDòúܵ“C9$HŠ,Ær&4¼¦{äöŽ(å£;·¡œDý¬MM ó-nÏ–}€=Èo˜ä%Þäó¢ˆåô1¹¥À-uü6h¨*o锟¡ìã7ö`å!Y6HZ£dÅ™Ûa”ŽÔ°û£ðÔ`,ݾ5R¾«<`©ƒ²Å?OÐáäØP® H²Ê<ï( †râÒq“µ—hòU­bÂÛà_½®g]»V±ž#ý˜ÛÆ¥„"„¿ª‰M•ó±%އ(`§S 6ò´;)ò#óBÊ¥3B–”òMŠÜp¹å…‘AÈwÛÁ¥üį—4$¸Ä8a9;ÈšÔ]k¼»Y:tøußÞ¹ÍêÞ îR)™—HÏ_ÚA¦1—Á’$+‰árѬý/óÔÿ+q¾t]ÈF’ iYÇDüIŒôuwèH ¥ÆÖ.V’&!•²psþ¯‘Ý39ýx O^«Š@³nžAK°êÝo—óX¡ åY3 '=^†›øÑÔ–PlÐÕ „ô.±@è5äÏšYÜ7z)sêkq¼Ï²¨+æÞ\àÏM­Óa\ ÷ººå¬ÃÜWftfVÂE’Çâh’ÛÉ“ÅÍßÜÄÂì´„vRb7‹‹~m¾s‚à1{}*þ¾”瑆ûM 8³¸5aˆãÚHùÍ:¹3yKÁwKBÙJÒ?æ—ߦöÁœ^>à6‚­–Þ0다¾wþ0~yÊô3`—ƒ\þküÄ‹{¶>¬]IˆäCظÝ_Y—)ÑcAh”&Ez£évrÄ:NòIl…7ÊÎä ¤?­Q~F~K¬ú|-èñ’p—ûi©å}R˯ò¸îí¼{–.š¦½Ý“ãÕÇ€TrthȺm—óÑ8`÷VÚ-ÆÅR.±¾ ÿvD›^ORέyÈ{GÀy–ÙÏ¥Û6@ƒƒ¬%&C5 [膵Ç#+mÚgÖ <%ÛqϨ†gç}ùH_’Àæ4ú žW¨v2tLlð…5è`Ñ>‹ní ôP:€Ýt¨ê Û ­Û!¼ FÙñ¨š¨’]±É"1ÝɆÌ^1ø9üÀÉXMcuµz3ÂR‚‹«0>•î¢2t2VÃ(sÞB³.®<*ñ7 Œ¡ÇJ2®Ïì$}Ó7ø_æI¦–¾`re’ˆë xÅTÌß2âµGŽÖϾ3±[Yå½¥#à:¾yÀy¨lÁW”»×P)¼IÒ4³‰Ž«7ØŒìØDöÌ6aŒ>‰·ã3¯¡Ñ[ñ]Eí9¶~ññÔ(|Ê`÷góµ¬É»uµ+ð)ÈòËÞuaˆÜ‚OüTË…ñÛgEX±•/ÐT:ý»shiˆìŠ…` €fÍq|¯Zü•R<žçE‹Æì7®&‹%^övJè³Üž¾ºf:½üLÃŒi2¸Ê‘Ž ’Ïã«Ì›ÂHí¼zÑ_¯•—‡Ó[ t²Ht,JpAZz>"t­Õ¦Ù.yiÄv’c-bx€ïÌêÉåCØ¢³!ª2·\ ÂÂýÝðð½:—ÒÖ’íUH(¹ ࢽéÄ®äÂMœVs³u›.&ÿ©x`­ s†\0%¿R^} å<ÍöøR/RÉ«"•Ì`ÈAå·IVÌE¯|—‚V)ìÝ(¼€Ô Áƒ ØuõÆñ4¤½óm!­ FëŽäÍh - ºlVÒ³jUAn9Ñ÷WD¶¼¶”%ç£(lâ/mü1‚1ÕÃÙ¥i¥ùÝ‹‚o¦ä´&™/¬È~®æ@†“lZÎÅI»4«JËoÓ"D5½˜Éõó›^5 `¦jªeJÅÎK¯9V¸ ¨W…D²ÌÏ5‡ë¦æÞ†i„‚/ðBAT^8Ü"³Á2Ýë€;t¶uÿ'3æ½2æ¹lÜ,mÁ=C²=G%(\¡.ŽЩåTꈋò £Pc…ηÈtsm™ !á¼Hô)…ð¯×ýÄËbE›öåÔPs2¡>º‘ei|å|—^·xsÒÄ}šÊô"n”XÄZtÿ†^üćOÿ™XýF\½ÕSÒÐGÞ`a˜È˜ÓN—Üâù^W:Ù4àÙÉÜø1Ë“À‡«óPqœú}¥¨4ë5HcÌkl@sÀÀ9{¨à÷³¹[ÙºGº:0 QÍǵ%n©ÅL?ã§ëî(ùå°@?›2Gš?89ZŠß|-;ÉeÉR{u[09e ‹E$Ýi•Oººûtzããk÷‚½®“§ÝùùޱóX¶{ÎÄñ L}ÍÝ1U˜~klÒ€º]õŸÉYÛßøO‚È•¬]óª¤ëSÁ•¡ôß•·üJ—§ñø:Q¹'½IðJö½,½€‚§Úòú’š28Ïß›±vŸ(Þxpø 4ÆpxƒDÓzÊ~‘3„ÈFt\ä³ÿ‰F˜> £í’‚rðèOÌ«Œ[„_':Ú\ùOV¬ŸÕUVÉ©ž­¯ÂAYÁQëò-8Áûìû¹Ïí„›yþÅmjsßY¹¯¯ÊÓ5*‰ÀéhæUr©‰+Èv…ϧ[¾33åE–哹† mì J [–iTp¡÷¤ÐSbq#êO×; ´pØtvôik0®# e¾ù×òך¡‹á+gäĺ±ü1‚Ô覨(w”ŽúîVG @÷ ÿÕd0œ‹è–I}z*oè³@¯­~·—Û&eÌâ²èû¤h[•X”x—ÓVY’Èî“Þ„/¦1¶ÿ¸ÝÒq_Òh“õ:Û Éb~Û¹ÊÎGÛOÎjì[KªWNd–þÛø!Gズ©Ý”/tP¾H8×HÎV¸…Ñ‘Jî…™ãYpüáÖCŒ4¬ Ïfý>^«m-Ùßú6 dZC3ÔvÙçì8l€,¦‘§~ÖñyWÍ{p eµá<º²J*(ìæ»À¿²ã: (¯]ùGç¸èLH×üL»Ò~æaøÛ¶š$ÃQ_é4©qË€ËD|bxébOVç¼ÖMÔÆaÚt¡H…vÀ>ÔvznŒ¶‹¨o5vt Y7½å(ÍpóÃß0k#¢ bH>ÍY-ekKI¨­Ê®L‡«|áçâ›Ä´º†‡Oÿ0-¾Í‚GôO'>±ƒ¤#t;¯¥YÄomÿ±4ÑÓÇÍ[d#6» A¸//tÌüàyò=ÄgMþGÿëõ»¨ç¨'Iìû»¦#7¥´V)©iŒ„0ņ‚¯‘3….ÉYÊmÛFKZ‚žØü|›ƒíÚDÐÐrÂÑ-Ôðŧ[v@!ómm mùê´(ÈÕÀ†é2Ô¡Âs%lŒ“wöñž—«¼­´8Ñ~éÅac?¾LÌF’„Eõ÷þ²Ð玽~ŽqB@d1@—DjH ‹AV³™ehC©…Ì”íÐ}{—û÷~«nõl­bÊ'Þ×xJ*nX´+n`0ñˆ‡†@}ï°]²~u|nüáz Ý¥¨…øÍšn›Iû¦"ŸrÛvé¯ Yc¬=yòq Ø„³Ž~¥ür­šxZïJÁª/B±!Šc:“…Îpâ¾ôÀ”vtÙKa÷[›“¥”nNßüi|*ù@>åGçe=Q‚¢|®F8ö[mÑÄBÜ3é`oÜÚàZ­‰C1wå/ÇG¼ÖóøÕ9-MæªüñŸwèàbèŒÆ`fÄ;Å?4e]ÿBËÏàŒqXNR8óëÀHC ¡%‚x}¿ }$?Y˜ß¥7ý ëò¥2â±ÆÑÄ@ïÙ€;\e‰õj® ¹HCí¡·“ñ†ÙlïΤüL²!.Þ¼³å°sá7ÙlpºT„´šñ¿54°h(ŸËn× WÍín^5ÙÒÁÏ9Œÿ’hÊìOÓ[ŠáN‡óß­û=¬,KÆå²„ÿó!`íW6ë‰i0¿½ªmˆÅpòÇ(¼ûL“Ivü)Ö—ýŸnuu:ô¸@ 3³ôNZ òXÀغḊÅ7¸N¤¼´î˜h$¥Zþû8“¦+––ÙMƯíà[†~tUQyü#‚Z­ X{æJsÅp¦‹ÐÎÍØµleüM?øÍÜB:íæh¶á‹<OíZÌ•3céÌHy›+hà¬fȾzßÇ´ÏcõãìI¼ËÁ´<ºf´R¿¤F OvëV®çŒ¬l_¶Bx«H[ûú„Êx‹ðÊ™ÅAæc Ãï—Õü½R>©ù4ö{d’sÿÖ«Â^qÁFB [p%²rWkâ£ï_7ä 4·\HÅ®¼XF£"qžWS¾Êµ%%oÏ[óÚ¥lEÐö¼GøQ½ŸQlïû,¸:QýMT£i¿"{uk§¹R·X>fn_Ô@üK4,:ÃÑ ÁZ¨”L,T¦-ÿ~󹤜C–ýe7êå6å8dõÚ"kUøx¾&§±>BÀÝSZü&¯›*]ÕŒh͈]•æUÙÊb÷ྵ ˜® âV{¡Úè/…ÌŸöAn:Ø3Œ#OáËÜðåœWõr„þ¹v?lv|î/Äl5†Å"n_µñ(ŠX ëõ x@ÿ€@ÃŽ3Òßø>sDMMgÔÜå±sqƒ"‹^€ë߀L¿‡­eå@~) °ÖŠó>U™Öb‡OW΄[g¾ø‰<P;æbüÆbž´TºúZ)H} yâ²:EÜ4+ýnRãëÛÝ¿´²å˜Oyjdsû÷ñ§[9Ó'p4T Uoÿl1ndb*qž^Óïûõ²¿’t½:V?¯r¼œiµî$Ôª®ô) Ñßukêö’ðõ­Dß^fiJb^¡ÇÕkÌsô¨|` !t…@Á˜“?ù5ý¬|%0×x:Ð㥽&tÄŸ6ûK¾~¸ãUè=j#pdGH•-â¦)@ù?ñÁùñQ©T„O]á5.éÑ/{,‘tx&ÑwÞU¨ªô‘ò7þœ[쌯lâ¡üÆ4¿½|8„éöÃ{~‘žo‹s´.ðùrM¶D+âëʯÔÕ p±[L¨R‰*}X±ÈBs÷®Ü褒y%^';–§òxA¾^¤+Ül°æ÷:ù©å¨×9un2“O]X²l(óæ£a’ „ ¥ã­ëi·¹¾p$ìè¨\_º iwB01˜»KI!©þ¹ÍÆ·*,‘5j`„¢’¨&L{u†¤É5{Õ~]Y%²7¶J7ËyWLÀ€[e)éÕƒ®æ@8rš¬@sžÚšßäRŽÏÀ€Ä{Xâg°Ãí–:ÞD&Çøné)üIõ·þkK=e‚)”¸ÿ/ø…~»F’œÐ¾×©àÎ%ã@–ך,.YWõ™ø 2Bùû°ÕâÙÀ+¿È²óó“-$®ŒèKcPÿ(4ÁCõ©h…»\s8f±žá¤Íiš‡K%#‚”—ù0§×- i{ÏA M0 ßy s`Ѽü!mŽ'Ý¢ï¾ÿ[t¨¨6Á§ÓÇoÐSõÂ=ÍZOa'JŠ$8yFò@§h-»X*Ð]âf;GnÑ6íù› QljŒƒÄÂøÿÂC»•«e_d¡-l<ëÿ•ÏØTÕ-ìsê¦V7²ovrœ ."ïõF;{‡|Êð ü|¯»fñ'&¬0T"#~†°‡p· nç€øÀY¸/¸¿ÀÀÐÈ+ ÏkU^£½ôïž,X”š ÛáÌ«bRȰ©ÃFÝ´€®;¸þûÉ®`j¹"WšS¶ó½˜¹+3ñÒv ÔÕ ÜVZªµRžp¤(ög %"E?Æ·kpñæ(ÒÆ€ÒzåËónHž ȇ`eDª@CñÍ¿rû*l~SÖŽæÝ‡ÌQ†„\Q“ ÙÒ¡@/[[kfÄvD¿;ö,è´B×Kb¨}ÙŸ{ß<%À~2¤Øà„ý1úfGSlT#8cVóQ”‡!òî‘ %GySðòæøüûÛóh¬±ÂÓÁtÿæÔ¦¼9öÍUkÄp~+iJ«âÆßB„¡þ¶ä¤ýoêvô¤um»p%3™ÚŽ&cÐÁ+6ª ScqŠ?º¼Ø³»ÛŸôÀÿM:_1¼—PTª•ó¨)ënx÷¸Þ¯=?•ài ä”’øõ¹µK®ë´g¹(z¥`rN˜JÓâÔK2^á’l)U:ÎÍôí‡{ÃÔc˜)#rÐPŠôÅÕÈXü !>ß5Ô„|±IkÆ0ú*Ý9#¥å;?±Š:ü1¡âzqhÇù•¢=MI¸\¬XXG^¸m¤ß¸í—¯Ìmïýwâ@´«¸~Û˜§ÐBrɯ÷Ò$ImÈ!Êõ¾CåÌ›ÇçódÄÂ×‰É t†2#ðÓFÇç§È<Ê+ƒÄöKA½ï…€s †ÖEÿY_[ &ØÈ‰ë1ŽdJÅ÷¿ª` ëu\ 8vÈ›¤œþ_u•óóg™^`h•`d‘h‰ÐŸ¿34PfùÀ«5SÓ àJv‹Y[_æÝ¦¶Ák€'*3’¾¥·4òqêÿåî ñ þ G\×x8•¶³^|Ym>ü6S $!VLŒk,ÆÖŽŠªóŸz¨~ ª•]ÜW‹»ómŒ]þã³xoîŸçÜ_װßç‘Äú—ý9>,,’A:÷Ž C^Žm“ÕS×âF?cÞÄyþ¹|Ên¿÷!_y}1Š—¾çmD}b¿¤škß²g”ðîbÏÐ;˜íkäÒ‰ÝA؈阸yhAÅ ¬šÌ7€Š¹j8ŠóbAì™ÿT¶ƒ¨ëŒ¾®—rqvKº§¾†)èç  Û÷A‹B¶ÿZg{@LTΘEßÀÌGÝ5”ô]¶•I+A"|‘¦©tXþ)¬šµ‚™O@ù|XÑÏ~7¼ìÂuˆ‚\Í‹ Ô'Uþ  ¬þÒÊ0JÔ®¦hÌÈIbóùVö¾R n`|ÛöK[•a;#-ÅS™æ&{Žž»xMu[…eã­œ©OggSR¨äqœ{µ>ñÿþÿ×ÿãÛÕÔÖñðêèíéùÿÊÿ íôíûúÿÛïÿÿþúïÿÛêåííôöÿtÿïøèöûÿØçñõôü1)°6lëÎ7L¥1µS±X ËZ·ŠBé^Ž­Žü•<ÓM¯â¶€1$?¸È«ÑÃ×Ú;ÅIk±üžwœ¸ªHüsh¦—¾£]UÛ5dF²¹8EÇ.À²¡<æ”òâ¡X ¤è£;rP`€§d˜³Ñ}twy†a0™ *Äö,Ït´”˜dȧ2y§_ó)%íÛwlUô¼?ì„ £ÿ4¢N¹XºO 1$¶©oUŽ[Ñj*9^ôª”CãyÔ¬ðÐz^˶ù¶¢B¯©„‹&]bþ«µ)Š-ÜgïÉÞ’šØìä@7Û`Nnöü//¿Ýã°¡³ÛÝ sÑ<™ÏÊ›ãØF¨éºôaŒ`©HŽê½'({Ïâ8¯|ßÿÔ ÌTDGgu«l‡û¦5.ÚDзA.צ“×V•ï‡<0å0ãE¡s4ÖåsØYûÆü6 \l¥÷ÔK }uµò¾7s)燹}³q¾{ýþÐ,;Oì±Ñí,ÛE—ämœAi¼ª'ÎÇ4²ãg‹¨:WT Ã»›8›ëÀüÎ&쎡èwBøøtcaì/dr} Æ„˜éÖæ½ØõÙ%—’ç81½:¦ÚņToù$O£1yëDkýxOâÏëivÉLËIÍ]w¡åü1Ÿ­NýMBjˆ²54·gÙ•Mij42ÖB8µ·n¿„.xŸ!HìŽG‚®j÷§£Ù›ÌX5AÅz`rªÕÙ˜ÌD…ệkzNî¬v¦‹ðõ4sÚ&ÿ¼&*ÞoÉŠQL^Zu•Îoó8ŠߊÛâ¾<ó`¦¦’ߎ˫†ï„Á²¿Àvž ^ìôy$8`a0î>ÄõÙ¯üi§}Ý^ë›×û¹³ ®«ú=ÎÓÚó€ipyéxgUÛùaÓÒf*âF^ij[!dgÜDû¾y'—p^€fOáNðNQÉö%ù½4­ @xè—ÊÓ| ‹]¢E*ü|®aâ‹»\ºzùs©Ðf¿­ØUÞ˜e6ô' ²àZ›f|âBï웟TŒïS½sÇÊ¢"í8¢¯ü‰é Yð•iêÝ[qFpB˜X^°xïÖû¤-ÓžRf®|¡e•çìÆZ|Ü>€K °Ùºs- ®q7uñSB8­ yú,ÅÞÕ‚eë°’bÖæBí"¼ÖƒÉpx<… ¤Å-3QBÉèó•©ü…ÜÁùO`ñú£­å†ù·ùq†1ß·R}¤ìŽŸÐpB_ש0‘eAzu2»H-[œusä{Î|”s{ÕûVyQŒ„ۋʯ‘Y³wü¤rãN†æLv6îÙÔ?Ã^Y3–Ý–àÓ²kà(×Ϧtd,àλàmláZ¢aÛ§P‹â>êT{ä8 ¨Œ˜Þé#@¿É‹ÆÓ²G¼‹®z¸¤a“fÏ:…Ö;ª?*n½pÐï=aÚ•ãŠV&¦ôã\Å2ãa¤Ÿ<9©â4g]™DÍíÝÞ‰,h3¢–îuËfbçyjÚ( 8^f¶çødä?Òñl5Þ&Dš[Ó¥GA:ŒBBi¤ÚsÏïž6F.rèËËnŠ·¤º/’j ÊI©¡I’–¦üNO÷£ æéÑ7´¿vÛSõjxP8Ax‹¹îF­MIóš{CNý÷äL%ö§ï;›Z?Ñ7XgD¿«ŽW.ÜÂUófWcpš¾Õò»©Á)F§k—¤ÒèP·­‡”Ï,šAžü¦E"Cƒ )ü†qX”¹‡QÏ©¥üÚüiS_eÆZT ¿†ÏÒÐ…•Ìd$5Ú÷'ïmÊÀÀŒL•Uá ᬖàu Còæ}šH4£‘ÀYy7I?Ýo%B‹¹ JªÆ7]ÙvöEU†èšjÛ2ˆç œJ,m˜yU,ŒrKùJkNp«Y*I€b€•﨣ð"#1_ýrÑÄ2÷Y”Ó ×ö’–­ªò4i´öpÒí4ÃüL©«0g¾d¤x’uøÅTR¨º²Œ÷jv€fÅ’^¢Ï¨ŽîS cT0!QõöóÈ’þ¶È[üzMÌd>í³7­°é €ø!Ow㘖/^­*sÞ±rÌïÚ×Á§åþŽìê•ë À£J¡PCÏq—¡'pV6ópó­)õ&?[Òªes K‘n°³´leØy´#þ5+w²6|.R#†Sµèd(t¹Zqäì;»qf$€·g_îc£Fâ^i¯íµî;æQiíȬk¼àèåxÝ >hfðc_¨Kê?(om#¸¨ÈlM™òì-O@LÏäÌh’RRš£äœcüKèÆÀ¶­1Û‘RÄ n€¿<%Ù¹õ°.· úïzk·Ã¸e€I‚íELmš^3æÇ“ÝÑVÁ4ƒû_¢°#e®H.²…¸ÄµJÔ¸:;×€¦$•‘%m\Y‘Žëô¹!0îKÛðÇ=L¢7!mOÀM5Þ¦s2à3¼'.WQ€2} —¶€%lÐ[ÿ 'T¢ÕPLÀvWÂäiKmÚ¾}ÑmÕ3U C˜ó¬0—x"[o;¨CÝ’ F—W]šhKè=;Ì2'¿eüLÈ|ØÝ¸éãüØ>ø (~úÛÓÉE{ ñŸuÊ÷Û ÃÜíéÎÕÂÚ=z‡0ÛS«µ¬±3ÿPý”Å%§£AUÄ~ë7uû‘7ŠüU ´JY_^Š8,¥‚EÿVb.„´LÉyóºs²D5X?M­}CÝ»Ž‹_$¡Íñ}»2- ñV´4ï¨n„þÜH 0WüÐmxr0³˜Öé9 …püžÎj]•!?;׎Œ¢ƒÏ,%R;ë‘‚3ª}šƒâa“9†ޑ˜žH®ùYÔöþE†þ>H›w*¾7¢]‡.VµÉp{nðËc&5AùhÝ ÑG +gLÕÚJÿŽ›ä+ePÐûùñŠui–Xø^ä 8ËÖFGªñ¨~±Xd õd.h…j¯\nòGÉ-Øtìnb{7§Ã†+ЋnÞ¨ x.á1ÒªÙ*Ö¼V­ýÙ¡ÞãqE7 C˜üÆcjNVŒ5i¬¬©iq|Óÿ“ —j–oK–®yx7éú¢vëcF zøB×cÁ ƒR@]3°„`É ð,Xõç% •î7Ôýq«æJÄŠSxÇ> .\÷¦Ç_ÍŽ:“ø¶x iïÝ_ø‘<Õt•¡kå@LGöŒõçΑPņ#óˆ ôì@wv$#Y±;8œaN£ Íî q‚¤b>¼"ó-íÜÇïÿ³Mb#sæ½X……ýLÑž²/°iÒéº8–À‡óC¼(A(C}¿ñ€w·U4uÔH3 Ái-üK.ä$ý¥mùÝ|0ÄKì…¨Ø^ÊT„þdäP9°ØYÛWE®Ã“q-I|¸1s÷|)‚«›µÖo,®½³7”Æ x½Î¼™ÑÓR…ÎÂ¥EfIxM„-²ˆÛgæè³gX¡Cn°p_Õˆ¬l ›ΡÇÛ=H¥Š)Ƀ{QCÒàTå“U.83ŠÖn ²œƒ­u—ŸLšÿüv+ƒ:äDU×Ì%žñûÌß/”äMÃ_ƒA=óEî„0:+¿Ë ×ÐÈf§¹?056¶ÈFÓ¶såUÿûL^ª.údP|ù4ÆZ„ÊÍ8ü5oaÒ’v¶wŸQoÝô¡Ì0‚0²¯IÄ ›—I%BÀÏj¬˜I9Z@[DN3uKýº‚yÄ’ŒëB8I÷’¢9FìHk$ZEî´ÜÞéœÕÂr ²KL§a.TÕ™š¢v DdN‡,éSº‡§"À»HÅÈ¿GÓ÷ÙKDíw6%)‡±>7&|_‡$ÅÌPΓ]ÅÞ@¾ÌdËÁ€.ÿ@µJ¹þ|F¯;?‡i*ì*ãŸÌºwXãöÛúÃ:€¨£ìºÁ5=©Th(ã2 Ëíe•$¢´Ž=lñ·Ç3äX–üÆlQµßU@Pê‚lŽ>4«¤lTkŽ”{{T™|ÒËQ„úlÌÒ’$½ÍxM¥Ã‚1£>!4<Èü©B^ò[>ÓáÊÅãe €|1Y†l`§ñì[l†HÚª †RʸCÒÈãëÕ¸l:y513þ²m¦çº?km§ÄH’4Š1œë/QÈO¸(ìëa<àBæÑÝ„¿Åc(‘R€™{2P ЃE±jNpÊ.—<| ª) $²IbP{Œx–|]¹GqßÀÙaÃéÜ-¯J¥‘»©@#Ž!´µG³šë ¶–û2³û|V%,üċıƒ­wÞÔ¼WMÐÈfõAVŠö¾MËï}4ê¿ÛKÚ¬P‘aÕÿͨ*Ü£yD c?°ÅÅÔ}N€î‡}‘™Ù÷K?ÉS8ÿÍëÐdœ)?S2¬D\pAñEÇ·Àéá9þŸ¦xî–­x‚칡—h—?/¦R™¹[È„z·wXº7¶',á­™5å¿„™•ˆœÆÕ@µ/ ¯~+ËeLüžÕêð¬tJýh1OªJö/l¨£X c€P»|ž5ƒG89Àç8¶~Ê¥ëÖyÿ”ǔт\åÌd £7&woFM mêEp_‚Â2Y,ü|ª6)XÌÉÓqq—y#‚tÍÕ皅Έë#,Ó°{ýEiÐŽý­ÛYUáXR<çGœ¢Ñ_ àûÔo’îwÀÒ½ RÏÄÖ)3{þ'DöÍœAaLl›í@UJouñA ÚP îv9¶ù¯ GsIò€–Ù‚äõ8ü”mˆÂ82 åßJØó1@åÄ/ɰЭo³™.ðíGÿG{Eà¤2bc{éAÚ¾äËÓ+‚ÎNÙËá·´ÿgLš÷Â+Y[¯¯ãœÓ•oþ½†ÁÜKHÿÒo}\V_ÝB ¦§¼¡™Í Ø}¿ÅÊ„d…½â¦/£|{Ìmv8}S£=†Ò‚Í>|ÏŒctJ¾ÃáP;ë]ë«|ÆÃõÖi³UˆÒDôZÃÝpƒ9xý} ý2o?iìsä;²K†­ÿUö°Îçëk‹Cùò[“²q€ö(æHg)»&=—§šÇZÙ¯ÛC¤Ã"d»€R¥ºÉò2>²–m`½YÈÅ~Qç„Þä0,GüOîʓǣ „„>îÐ]>“¹§Ôõǀ؇ß"¶u\ sv5Ö$$m²­£ößðfêüXÖ¨ëtY ï/tµ?ÚÄ)ÂÛÇ2ù“'[£rcͤO r‘õ°ùÌa™ï£ó÷á“ u³ŽJ¨Ë A2ýŸH̰Ø:°+’*0ò” ñ›§8wï°sÚ¢+2˜Ónôï‹2eÌõ^º­³ÖÅ›b”ÁÒº;8E­çó=f´'›š«TMà‡ìKHqé™;Þ”ÜÞ%+!b" *´<®i!*³ØÕHú2ÙC¯¬fI“]îâbZ_2ÜVn°ÝtÜ×ï=‡ŠîÉA½Ü2  ¿SubƆ|ÒQB·ÔvF&±óP îŸ÷ ºçðl…HöVë¼ç£”¹¦ù/Þ¸à]“¦~YLÀÈË›Hãâ^âeH§YüLã· §3Æ!ηÔliçæ ;·ôé&s»ÃcuœÙ1 »×á;Åú—…>ëÄmÑ´KŠÓÃ6â•?@<µÒ˜ª@ªÒ72Ñ¢ÖÛý¬ß]_µzŸy܈­ÊûÀP„܇˜ÁáM–Ïcq)Ïð޲|;ìà *⿺·ø@‚ìöÄ­åPí¤–u¼Rˆ¿‰'Ä“Àå;lØSÜ\b6¡ÂJ÷2ò{ì¡ E¡G4ÖÑ79ƒñg*ø¾„²•ðˆ_Ⱦ8:¤ÁǨõI5ÞuÊòTÉ|ÏâÊä®5ØsÑ0q‘†OÔ‘ì¼à= eüM"±øÌ% Ý}’œBØÇâTïƒà%ZÀÛ ì¼Æ«;c:’ˆÒé{{‘ súoò„㳞âØÓ=šY…úçÅ™0k〧y¶ù׿}„Èùø@©¨Æ ]~Šõ`xd²”t¨¸*9kζ¤iñ X¦–ýÎLaë9Oè÷7Ãn· ÿ d‰Ã”4  ‚Øæ Dd™E.d’&jØl]õ !w–FÔâpïdUcÔŒpœo½,!®îÄhó^u±Õƒ®b*mÄ¥OmŸ6­kìð²¶T«U—B·ÅûG¥´˜=ëü ¡ã£@Øì)÷Ü‘>xú “›ß™èGz™î :ЛRç;GDP„\lLc¢•¥¡«w : ÔwÆÕáíßÝ¿ã` lE¿»Õ9i¯ÈA–”êçË<3 ³šœn’U^Ò cæÀ FØ¿˜/Ä/ãG,Œ¯5j*‚œDÛø‡(ÙY&3ÌXPœ¼™µ-¥•©@š ul.o±û¤Ó*¡P"&pÒb vŠè·ãg²ƒ“çR= È`ÚáBÄaoµ`d¤ŒŠ;'Kžªq—ñCtk¥^fóCkódN/ 8ÛFŽl¸…~¼è¸g¼Ü=‚ 6,4~iŠNg¤?MºòœãØ(óa‘ ë(%”#s’^aù/²9Nžñu‡kü‹$p„GñÑëMlHü5ú °Úkþ´x´’3˜ò–¸. Ö²hltöó‰)··Í#…ÜúhVoÅ©F4FÅ‹ôEÓà¡ù?0‘›{¢i/¾¸ž©8*ô(‹Öó,ÆPY ŒØ{èêŽFIg\ =Œósñd½]$hj‘H%¥_ö›jLè,A¨¼kQQýï_K–ïA…Iañ›É®Î™Ö£§¯é†áëšÌÍ Q˜,)¶÷"ÏœÌR¾Ú|§ÄDÌõy'ì0&,ÃÞ0­LmØ=+‘‘K¥EÉQýÏ:˃ÕY.q§z*ßâ\: ²¥F“¯ùÑ ôÚ¦· ôÌ¡-Zsèb c|ÿÜŠo€;úœ²T pÛ«·ð|>åÜ•Æ8÷X±ö7GkܩƘ#3Ø©x—ɉQ!ȬWÞpãÁüXL’·‰H¹ÈÎ úÀÜ«î è~ÔnfÞУlvB¯pÚïè}œ7óNb?òÖ­VðRÝC¬4ÆÒkëhÉúB5¹ö²}æLèš¿á¸Ïøaަ‰ñÌÖ”Ú,§mà+™Ç„…Œ†úï­‡{ãnÆ j”ºS Ÿ@:ò=’n!Å"aІò;†™³‘€ù7&˜+H,‹²§4ëçNÜPo—\+òa@&@à4&¯¯¤÷=§Xí\LÀ9ǽËWø Š€ëƒ×Tåpë.¤N˜‰îQ1’¼q¯tüM3ÁÌAÚ_êBæ VçíI>;´Ë&»Šcé0"ÔÁEän䇃d.‰&PaÙ•]×"tMRò¿¸­õ;}ÉIHkç'ÀômýS´ |˜¼”Ñà³Ié;cÍf³(Ë ›eMÏVZøÎÚ½è‘Ó† §;¶WtlœaJ”ó¶ó# ©ya±ˆí §Î +;,œ§®¬ ²(æls‡“Ó&ƒ}¥ÿë{íµÈÛí±‚ l­÷¸Å1Õy Ðò11õLþW˜:@' Ìâ8DÞ ËÀ êÄ%OewªA.wÍ éÛ³Ìp.Ù.uEðHÎa ¤‚'šü5=÷ ¬yy¤öýb AÞ’Š%V½¹­:ïë¥'žºÃV•EÍ}ýîöݪÑäAÖ]†RÍóIŸ£<³ta,ìú†¥ƒiå ¼‡ØeŒÀ™ÂAöŒ"ƒê yj0°ZM5U!Ÿ«úÒÒZÖaÝÈZ½?¾ö¾ðâVtÈ:öEhº~XµÌ¹¼ÙÝ!ÃÑš ¶L¿Wz,O<êS‡Ó¶Inwþ]ÃuÈTlŒßˆŸš].?9r9v3ð[¢Ý…ìu¡pkuîŠr ã*(´Û”õh³h?NùÔkìO^CßdÇŒ!0ÞÈ Ÿ!CgvŠ`6.Í™±ÓƒüML Âg*Ѩî%”•ð$Jl'7¿knª\¼¹ÊKA™"†ôù)@‚·KÔðŒù²ìÙR4ù àË®=É‹ IòX†ºRq±È÷ߥ¦·öó?½¿1¾ÑæO´¶ÚøðƒR¡2ɧs¿—aÍÎæGãÇ{ð¨Ô%¤› Ô)ÞÕ‰9rD5ÀTTKˆ_g°Ù"9TP³é×þA¹ù×.aë°hN,¤ìÙ4±5]¡ §§#|³bh3ƒbã§œ‘3W@dÆæzæ[A¨5±ƒš…HÁ½{Ntûbk¯NÜü|®V>j©“ªŸ¤u¸6þ|üùȧ‰åë%——7ÊpXIlÑóUIÊ3®Am^d gÛ ¡]‰æ4žÛãë"\Ùôoýó¨M£&I@õÂ}»«³®'† }Îx]»Ù Ä€ÑæøAíôUçÅܧXí(mGžJ¹$4EAµq0Ÿº‡¤!Â8z?ÞiÜ>¾fÁôÁD‰jaÆ×åøá¿éÀªž@·ƒ&:w&ÐËÑ%¥/¥ã£n·ˆ¡c·ú•/¡ ŠÚ ¾ùÒË󉋒Ñ8R:4k–§8RëVuÄs“×5S¿Mq‘¯öÅöÍŠXAÇ~û£«Šý0ÀRPë!& ŽTÑBÅe8Pvwi;Hð) 3¸cÐ5C|ûæðñþܘÕT5]•Æ.79@ñ_½r‡xãþâ‡ZD>îK—OtíÜxÙ‰·–ÙáóÂ({'Ç(A Lî•îx|u¤ÆÎ]RµÒÉþ¿D-Bìl=SÂ}Ç™‰g¼F¼°¸ à{ã¤V¸÷@²–Ÿ÷2¸œOGýåÉæÇàùGòlÇÆ٪§ÿ^Ò±¥%®‚xQ§ÔÓd– éá…dæú§—Á_ŒÐ[ ë‡Òd:æí¢Hü5ˆDKýƒI/1¿0'†LI ÅÕÌqwç¤:vnbU¦Öo’¿Ž]G=¹BLvö¸½šÓ›ñˆß"üŽJ»TâtJ£CÁ­ÖvlÖÑ- ¸yË/¯lÈ2NÛ‰~;ŸÁ¸@0­¿J¾-ØÁÒlû2€€NȬ«JÂ%Ƭ"¥“µ‚îvþgŸˆ,ndXÇtGæ$öhòĺ¿š®Øïé¾[ƒo¹ Ü0!BþJÇ9PÚ±æj .He„îs`—ÕÆÖ{¿PAqýž~y8(©£HMÿâ¦ËL|ä\`ÏüMmн×?½œ.+éT·||·2èR²¼¯c‰÷¢2Š<ñ ÇÑhB&S‡ôÚrÞq*ýk~ßÜÏòçÄÈd/°>m岦¨sí˜üt½úg‚H’‡\ÓˆøŸÚàƒ’óªg9›ñ“Œ)jx¼+›îiÿ,]i“ÒÌnq ¢dg[`Aå;Ù0ÂÌ0Y—ßý9VõªÔ…÷Ézë™Ü‘K¬±@ܸ!ÇhKÎM_ß ãj^2ǹDäŽoK>vÅ1 W=w³<¥²K«~zù&/·‘ÒÐkb·æôÓü>üLÇÙŠcµÎ|wëÀ’›|¾‹le¢rtç‰ø².45——ZÜR§ÒJ‚å÷:¬Qo’Ó”¦ÂûNv–dË5hþzQ}-¶¸ÌNÀ› þsR ¸Xmß ™ÀÒz²xÈ)kDùUÃ:p2+¡dˆ[€ºJë†*.røÁ^ú*ß•?ÛQüÛ¹m>ŒA¡éé%oΠÁRYÀ;%2äÉ7‹— ~øŠs|š}€Àn/ÖfØS¥~ž"Ô §n¹ô[>ÑBñÖ=¡$µ®yÊ/'v¹WoÛˆ0 Ákæ ”—ä—2h¥ó¡’M~ +.Ñ”«åœ |Ò‰H›´f˜±hV¥ÓAÊß”ñü2í…ò—Ñ&AlçÙ@Ãén–]ˆF¯-+ ¾ƒ²|ˆý½O»ÒÜ÷ èU·³'ÒaS¥àlÏ_àØPmzÉóM%\«}}?ÐÌþ dmà‰³ e$;¹~_ÜwÄ«<â¸pÝõ9½‰HüLÉfÈó·wz3º´…œuwêa‡ ö[†;ëLgOè™ÇALÖ­du\×Ócÿ`‰¿‡fΞŒÎ TJÓš$6F¾µùo^ç A78Õ)|×¡Ï NùtdÄÿÚpúXvÎr¼ÕØŠ" çfç+öo&4˜ô_Vÿda<<¶Ð[‚æd¸ÎªfÁEk3üG[ºA’>ªÍàe\LF:ÖàÖÍŽPçL½é <»mÏ4jÓ çøäô»€¨ÅÓ¦ïUhÍó/bˆý流×à)>h­Ò Ý–ôyoüŸ­¶ ΘšD¶ ÑŠü|¨¦P$GÉì™è ÷N¢=š£(A¸ ~è¡ßÞ;nM¢ú>°æÝ™öþPYd•ˆîçµHTwÖŽ_u嶈«UšC£i…!éÙ?r‰Û™Mà´ѵÖ-þ«òk¿w)2Æ^I ¸½§]ñÚ„ê9QFŒ)‘ß¡ï[6[b}ÙJG߈Jµ6ZE…€ë)!àn:b¡e_im"`6—M*üuŒ ¹Ø‘ŽF±šyAÔA~H!žÆ·¬ÛKñ*àÈïú¬®Tt¹©Sa ð×Ã¥Uâ ôa49º¯õÆ›ª›ËST*8ˆâm°¼2É 1øu[üï/Îø=Cˆ(C×õA¶ÍäUjnükÆv@¼•‚3s'‘ e? C ·’”CÃŒzþ‰âã(€e:Üei‚ÌÕÃ&Ò ª•W“<>EËyLQþS´ Ó„?øømTmµì\âç6>‘5ë€jâßDÑ® Q\;¥üÓbÒßê«C‚Ó,Ž ÎF;ò…N®nÂs™Á–<9JÒÔQ¢åS <•}c®HìN7]ÞÐ]"(‘Ù= 1ŒÍ¶ÈÔj¸.ܺÆi ˆ±šA–ŒJê&ž%2Pœe›QD`i°QL{«ÕsIüM$Än&Ío_M‰Lîây¡&õ¹&8Ð$ÿœ”8ÀßT’ífVÙ“Í1Hü%áªÚN"ðׂúq¼#ÿA£ž‡ž¨Æ&<•´ Äði¥LMµY{b¼]i8qP@çütǤm.¤$DüCÿÙM°·‡ÌL‡ùë˜ýÐ^݉©9¬§À«6 ¬ŠÉš²¹e fâ|Ô8’´H—ñæM=‰^&‰Ì™zÞ &h`d?ë“ Ù¿÷×ê0‡¤ÜdáY[óößAF>éz—HYYé i‡"®¸sæ{¢"[Ü!ß Ð}r=œˆÆ2Ï•üû\aÛ¦äqeÐ;÷|h»ãÇQ!‹ùçgd[ÃPÉ?„d:×:]‰V¢ÕÕNž¡O´<^þÈß ¤g›ÊÄ?¤òqëÕì$vÙâñf‘ñoçŽÝ“>VjHÀ¯Hé?ž!9#‘}û¾Xp—Pq“©‹˜63Çn²ÊV“3n÷þûòUðƇÁíÍäÜ×–;¸<•÷h·'e_ YÒ±Nµ3É,JœÃk©PŠ<Ü*ëâuË!wj*MŒ49Ú¡9y”Í'™œÆÍ ÏÝ1PëN4ƒf×a©qù‰ŒtÉS¤þN&\9C’œ?tÕ§ü|–ã3ÄpcåÃwˆÒH,ða¼sŠ{K'$Y“:Œëkv$ÎGÓg èþ‰öÌ0ý¢NDŒÊÏæÎ÷×p ^…À»Õš7íÐl(8ÞFÈûê\Ò(#v­ÊŠöËß¼Êÿ¨žHƒÏ}âtÃJÓ¤Éå?öÀéØ÷èa›‚ÈßÐ&Uajè®h‘ˇˆB.²l¼«Šhæ‹_vÁ·Ã<¼† _ˆOR%{†ƒ¨u'8yXË,Þ7¾oÙ¶%Õ6~÷òï î“©• qÿ;Xö'ý‰k0 ¹DÊGÈÚE PœÈ»â‡øz¦Eì/>‹ûŒµÄrfŠL“ZÁ¶m: Á¼d÷9€ƒúòÁ·s@‰Î„ÃÏ±Š¸:Ë!Ä>Ôâ9¿~a‘ŒÓâ28Â%×ÑgÇF_øõ'I””ŸUH+à §^»qæZò÷åÿ/Ž9¶³˜ ´ê¥ïæC¬ ˆüTß`¯Î£=d-Ž–;Hög•¹Q{fãÚs¥áÒÌp¾k )³ÃÖ!Ç}:™¸×ÍO¤fL©F‰°õî¡Ù!“ú7ÖÊ q '·-(ë$nˆÃîšm¤¡šµ‰³WDöËZj4mE…"´ òü†m7ŠÉ,ŠI>®%|áöÙ#[Z_ßÀ[ñô¹˜ÇdB^i-Tqo—Ž8Þ#I3¸ATØVÄ6»Ìü–‡E³uôŒ Ë}ŠÁlëî?,¿l7bx•¹Òß!»³íü¥Ð’u¤Ûav9‹5 ×Â+Àóþyz‡œûsokZ'rie<4éa=¯©ÑJí!¾C¹ÐÌ}> ¡²ÇC×õñ%ßbƺ3öhÈ ¿ìѪF†œƒY¨Hó÷ù¾îãH)²’¿êžX‚¬# …¼D’dÂx(Ƀ³iÕéj°ü†/4(2ÄQ8®²3:@' l²ŒEöÄïÙW0sBÃ/Ös*³ƒŠ÷§É|ÞQ÷ð¯êPü=QÆùB[óH…@4Zè<«=€Q7«Àà¨Kûç­8Åùe¡¯ÿlÎi×àÐR~¨@\ªLÛTOwY}ˆƒr­z±ŠC]ߤaâ—Óõ À}{Ÿ–L˜ÿ|Š!ÖwöÉ¿7‘q¼ÕD­¾‹ÐLôäÁƬр0Ô¶ÆD$ºŸQ †ƒØÕÉ­ vòusêätÈôÑ×îKŸ?¢%oxŸÞs)ï|r(Ý%Fü1ü†c8åýBø‘¿ó¢ © *š—Ä!]»QŠŒHxïV:} QV=ÄÈIJ, ¯9}G Ã|õÁ즂—&Œù½-+6T}éæÉk¾±ýlÚÃhm¸!yî«‘¥ÁÁ†·s‡!$bdæO@ò%‚1Íz5ògŽÀùÔ.a=KT2c‹7ÍQã”Ãã[o(Ô:žÖ¶ö‡Ð{3éJ/$º:P†™5IÂï°‚-.Tw5Rdº¡Í´»w8 »¿êÕÌ$pÑ×°<ö€ÐßÛ/~g€ÉB\Ï;gÔô¯f%I’©4|#ìqž¸£ª -õv`éU"p ŸezMË»Ž:‰½5%R4 š;œ±gõ OçÏG¸oë¥Î‹3}úç‘ÒÔ1)ŒXhºƒ+³TêÜÚ‘Ö “àzhåÄ›Ö OggS€ÃR¨är·»»;ÿ ÿqÿØêæêöóñÿÑÿÒØÓÒÏÐÖ×çèêåÿÅÑØìñìõÿÌÿ`ÎÒ×ÞÙÿ?Øèîíþúóçßð÷ýü°ê?ªŽþýãLdI XÄY¢Í¨‘ú›y6üóe«*ªtºó)ÈÁJSU+1wòt¦ž[¤€H—¼1ÜÆ]ßgéë(ßGÖ¯¥1ŠŠï  êâs´„wǦ#Ú<9 ³—ë¬.Jf8ò u·¸6ï¹z=»/¼Na‘ÛõüXëäë¥2–LxpíUíܽ¢2ûV½ònŸ©â²ÕépìFÐÓ¥c‹æ+&[”¨j@PVíh¾Q2 À±*Œ›ï»x†#Õš‹-t C<ž}ïì!ºú@f#²2»FŒú¼‹`ÃlzS²Puf¡tçÁ#ýt!K v…¸k“¬#ãÆÐyåü.7•ShÜÍàha«Â-¢ ¹zFýU“µµbpcìÏìHàwä²8”úAªWb‘ˆ=ƒdn†-TC0­tK Ë?»ÛÜe vkáZ¬­UφPétyN‹û<…Àï6²7‚sµñañ%쑬÷)û,ßÅ2¹ÚÍC}Áñ/€><ø¦QÕ4#œÃ««!>‡ØCÿ! qW²©øêB t(BŒ° ðÛ©VÚüÏêé¸ï ›‡U4OQ©ÁNNžã'p´Z5§¸M"ZÏv'ÏEn¿]`¼VýK {hÒp%·»š×XýJÝã´ŸÛN,ÿª±)N#35<Í/me±é\~ ìy¬/“£1¤4µlÅ)p ¨ØêàÑ=äÁU®âÆýK]¸:‡–(ÒfòSWå@ý{ÑRÑ—vÇÃs—d$jþpÈÞ%ÕòÑLÍü@uŸù0|ìy¤¨©#ÀnkÙü|¨ÙŸlDÅ}ĆeH}d]w>3ñ`³ûõÐlxq¿‹—d… š‰Û¤¿‘ùâo6$Ìg}%?Ã?êÁrýÉþØÈøuôT?q€ÝàwÚ‚€^aHôELvô”óÌêˆò­®¾ÙnuýŸ°S#I÷=K—j­_˜[›°æ÷¬ˆ¼âZkY:$v̬)÷yØ“vŸ ãåml¹s¾¢M$F&€•ôy=ªll¡$¶_sŸ<ÌH–í_ LÐLÉ^©ÒsI؃–CO ÑœQyqï›õbD)x€;\'3 *6CŠì-)¤ J¶F°)*D±Á<,e0ížCãn<íÅÚY|¶˜Í¶››”9•lY˜Ê®ÈÌÌt„ø5úÛj7d} ió:ÀTîî5Q«óƒÀå?žó´ ­š;rèÍYÃw}[ ß·'V\vr•9Lc±?ù’v¥?¹bi)”'šôõëB¾‡Ô(áÜï@Èwú‘‘(s[Þ˜DZð×ô›» .Ãõ} x:¸·ÆGs>!ã{kTC[Š€ z-–ž+øÊ›ÍÇTŽVåÓèšDÁçI)tü•Æž|Tâ¿ü6h¦d&¦°Æöô<ƹÉzI)’C¿Il"ÙbôMwMÌýŽÇâ:nи`~¬ ™ÎÒ`V¨ÏR@“l=8ªqªQ¦÷[<ýYŸ²ÆÃ$E'&Úêƒ t+¶åêÜ\'hÝ"É…kŸ3ácÂ¥cÈuñ^Œ ƒª_O´‘Ëçã=`5\=bn+„X½Úͳ~ag3æw“nƒ»qºW÷òçÓ?ÿêÊý‚ȧx]RadÎçùãß:†õôµ’°µƒ þ.qùߢoãù¤ç ÝFÆfrÒ$>صô>-FüMGd.¦†'f´9ÂjŽÿCqiøtÙXCË+®Ç„CT‹(˜* q´oûkz`̹äJ"AžfÿOxe*éÓ¸ËS:쉌¡0Z‰û)ItrŒšæ±·¬ÕU!Ö¾MeàJfæÏÜÒÊš&¨Õt-HKïü5 ”¬*Þ:»è¶j ïm¢Þ¿-» /léme¼¼¸gÙÌkÛ.°ÈX —h¼´~YÞŒQNÕßLj¾‡žÃg<]Ã0yvç‚Í•YÔãS­‡ý¤ý95.KxaµUîˆër ‡[ÓÍÈaµöp—ÑÃÕç­IÀ ÆûcÃá#۵خš£;_@<´õrc íµbìïGù 6 Ò9Ûáƒay#Âà ¹ƒÉeá¼ÌËq«= j }£#Ö:Y0}îRÑfÑëPÉœè,XÄIdvIì]Ëh/ã´á" õŸ‡  àç—ü±»ñZØ?ob>¼Öy„-¿Ý ªo¼[–Š™(¶O—?TIX© é·(£ÎÄkY–µqYÔôõ÷º"ÇKÕœZâ~—[ëU†è;%l6a1 šý’Ï,vòDɽ¯¸ Ê®ãƒÝhõ@ñ»\§–’Öõ/„ù“€> õ} d¶Â´¦ß[w>B J $?ºŒÎ"¦«V H!6Ø®RIÃÞÕàžJ¬gç¡®ñ°áæ ‘ÝR^Ãä°Ö|®ØR{Ÿd%`ކ޾I>ÙkCsFñm![j5BÎeoqÐ Ø ° L"üM%IQº#ZVw[ß¿Ò= ó·S…ÌûÇ{§ˆ¼^¼yU•õ´úìQ3@‰™sß·?‹©ÑrÌ[Þr Æ’EZ·ˆ|%§| _*Éæ-ýê}ˆë—«’¿ÃIF”¶*>aŸÐn«§ F<ƒ5&¦F"ø —zU™®.mE­ Ì~ìj”Éü¬;s¿™­üYâ—±´¯[¶¤¶iMÒQd> Õš AÇ’RÑ7Â:8â¾Z(Rñe€7+LÏ|GÍÌÍCmÿ˜å[ˆ¿j#jA*~¤¸iý­Ì ‘>³4Àü{lÉRäìRQP‹¼ÙXdFHÙÌ=@L[ÔŠy—SSwYÿ×|#£ý¨ûµ¶¦o€;î3N‰IIÌ Ò.ìðó*•÷[‘¿¹œIÄŸX¡AÿÎÉý[GŽÇ/A¶²Ø¢…Ñ5•\=söü~õÕ…PlZ6alÝÜ" ©€\*±j:Gu?»=wP °Q&ÒÞÍ?‚GTÊ~gÎÐÀ¾Ú5Ö슠ŽÁ¸V=P̦-¶fÌàb©F/ñŒ%ø_^#î^Ê —€Š` ÿ‡!i–;XÛº ¡™náôµ4sÎ^¯Þä5ùM0ƒÐß/†(Xœºm[û­Îóݬ΂Õq—–p›[ñqG2¼­O7h‰”´{gD[øí¡—%Òé ʱ&©Uò8Wxk3%õ]Ýݳ#²Rj­K“vú–$P¶åñŽÉ2Çðê¯;îùǯcÃH éú§qãñºÓɘÈtW~¡6<¿ÄS˜óºo;ã)ÜRß@MDF¡ÔñÜŸ ö3è€LŠ…‘hR›ü0}ƒzhN$ÂÄ! {ãZá`ƒÐ¯;8$æ‚‹QehY]˜'оÞÐ4üÓ8U…–ÿïoüLï†òÂ$–Ôü{­wê@V<ÍSÎÏÐÁ¿./zk^Á§ùÚû{ùÜ™1÷÷dj0%É*½À#:äîŒøIפçh–÷ B†?·}ÃøC;çG͘[EèÃ[’6khÃ1bfMy¬]QYÒ«3›ÜìqAƒ‡f¯]AÔïlrÛJ®NÙ”àâîA›TbOçT¢ð™Î’°o÷Æ53ãYΰàÿìÐÉ`ÿèÖù!é…’y~ö(sö ê!0•õ·aÌ„‘ÔÕ[V]h7Æ×ãCåùÖ§öÊhõs'­›ÝªöŒ—fí +&p-'¡·W ÒBè‰Uy'*g8¡Ìxéæòkv=36‹,‘V̇wüX¸b·ôjVðd™H.¬1 Mä!2Z–y̹þô=û“NO^€Þ扫Óþ@ÿ©ØŸ>¨4êBtÖ4*wÞt]J¥ö7 ¸(³øÒùü€ÕyK™¥`^—*7ä¶)”eÔâ`RÎ9áYÜXü£Ï¾Jý©±1 ° .fi•‘~·}@òÿm"-hôû0ñ©ª½Œ-zŠ1Qˆ{‹ÅÿHXIùwÀ‡ÄêÏËUòÀ :H‹pý˜€A¤Tµ.(_i%j—½Ò¼ÉüLÌ)§¶ÅšôÁœr‚ðÓ:ìD5hõ½M¦I£’¶'%¿“šðâÚ3Îòâ7¤2þõ[¡³'"L\HÞís€Â›!5ÎB*ùÜ™ˆDà°aª…ãìÓ‹# ¡ŸLáüC 51G°#'Ç÷K®åÞx±Â>ë¡8Ò&D_Ù,‰ŽS^„}âØInT ¹î—8d«RGªuEÉcî1ökÝ~=þ+µðÇŒdsžÑl=ZJn-ø1n÷*‡df®_tì˜] Ë£ý=ߨð÷&»Kß`üWäIzDw< È¿wSí"õh~¸¤¼y8€N¥B»TX Tõ<¢¨‚xðeCB·i†ÊNÜhò³#¢Ëe^0Þ%}[>l€˜F9„nÎŽäèÕä˜OÀÝ%ô¨ÁC¥¥P{^Á²ÙE:ª²¦W>sT+&>_å¬@Ii§™r÷Á&TüèâAb´©õ!ÚÞ)¤!Úô;ºxÀmxT­90‚<Š=èr È|¦V…ÅpZÅ0[þsa$­ï½„Yjp1l Wùš´îFSàáL¡üI=¨ÒSR˦‚6íÔÿ=õ^ðKêð–‘=ü;ÖdªÈ+'ôƒsÞñ¼äXä2Æac¢OÖ6.«·g‘Pe} ÈZŠôNÖ2θ> ðõTÍ’… pÜü´Ü|ªY¥EX7† x–â[ÒéA Üþóÿ,9ZB,À®6ùAœ…´˜½‚ÿÝs“ºˆ5Ú²á~ …+Ið˜k{?!›·k !Xt‘´Ì4ª-X Tzvמ›å¤Íxç1DVGõô¿|ms·x™hÔ¯†“!üIÜþÜÀ4¼§¿cØyh‘9?k^!ÞX¼_.t¹\·ÜÄ̆xr>„UË)äÞSóÊè×<Áä=VpþóIžÞâÓ<Æ]¯°Ùv¶çm<±^=n ¢fËâ{ÀÙAóŽâ¤eÖo(§AkS¬‹ë?‰·÷('°l ç4Gu«ÆAà#•…Se+V<Òq(åvš‹×>ƳʉêxÏñÉháìøÅ…8‡l+ÃÀARIK$ÿK¬›¢X:ÂP ún.nÚ8ó›ÌÀJóü6O[±Ó4øÆY4c‡™ÜþÀÌïØÃ=!AõŠèˆjž!$!AÎÑšLm¬Æâsð{ýr•¬•qøÊø 4ˆéõ}»ƒÉ£0È–b¶ÆÍH;Ïô‚ÕDÇaFÌàÑõ¥q†H×z29ï{š5©öìÀ‹²ì¬¥­ËñãC]°Z{a§mt‡äHúDB(çdQ y¿ù챪×LÅ;õbE€X¹÷qžSøú\óGÉÄ’³{}d>l`¾ hÃ^o¡ óý¾u"ˆ#Às^ÖüL¨`Ä@ø„¢$GLˆô. )ßw—• é2ý«úv0ßè«ÎÚõ޻ÚŠˆâÐ>š¼£\¾âçí‚-Ÿ|~DLœ,ÂCÉ1Iï•%š§\íVñ\ï§ÔàíÞ­áÄ337C*m¦Âü5+Џ±HOáSPšÍa«0Ú^ÓžÙ~ v~7WÕoC`®ç§Q‡—ihÚ§Ú‚Û¼‘ÔøÆHé•Y3ÐÅž\[B@é~Sp뀞 ªÚz þȨR‡2Ô蛤ïš^èæÑ^“œ37”ªõf§Át~eÈC–aã³Ôˆ¡?'<«(ö¦QaŸÈò×ýªßšX Q sù© "LÜ0ߣ¯7®W~éOLD¾!¨ö@»Ë<9€å)äxÇ;-Š?5¾ÛÏ/¥¸%7¤ÐSEq2”0ù“0¸ðpå 0†ˆ!ÎüIùË€ÁCëò¢eH 븕 :DŸaÑi½bÙ--=_s7Ô°Àö.yûéxLàÓY‘‘9r"GÌÅ)Eðõ{?f)æ÷yèºz®_C‡àº˜¤@.‚Älæ3]÷t†RÿB°µaÆt° Rb¾ærW㽄\~œGÙ“Áá9G”Ÿ@F¹ïRõæ}â™oÊúï™8¾‰{EBÍj)ÂÚ&i/þNÏt0Üi¨Bl´éóeç¨?>®¶Ásjºò±Œ|ËžRT0JOÆ2ÑÖ±äà¼Ð9Ý ,%ŸNÝf‘ûoN–Mr\›YñüM?Ÿ€ eZÉ–à©•ÓÅ®†2†õNúžÛ¥tÒôsÀígŽn]ʵ•FeðûTÍUãs.µÜ6\¨U7†É…Ä—}sÏ+ftdÀ—¯RœõBØM –l»›Ÿí‘UÚ%‰ÑU‰ß¬×´Ñ‘¾=KorÂS »|SŽ—©Ï¡É õlˆo¿) Hî.ºë•U¦kšò?opGa©Üø ¯õM×Gʳ—g¨Üÿœ7 ±åy E-'îä°N€„´Ý[+ïàÆ ”€µ‰! ñî&JÛþ#céx¢¸kÁáü|«Xåòf/È Ñ<NÞPÉ{ÁEï|Ò¹š‡pzKæ+šN^¾:öþ¹Åë¹5‡@.Ó†œR«jû²]¿4,G0úé˜ûThÛ½R¾&>kiÝN©ÝîªÔ}ø¨US;r„h6.Á Á@Öó¶}jLø¸z-GýŠ-–‰ª¿¨%F4Z\ˆë+] Sˆ“–hæ›G"&Ùâµx4ŒMáê$F=ä‘ý–‚¼Ø‹…‡9ý3s[¿Â¦6}OŽqä)‡tËéxs´ÏìÐ{jmI%6ûTÙa‹µËéSÇ ˆ˜wòÞMGDÙ7û—åyšCmÿþ›YjڹĮBö”&³xÌ9‰=ÂŒÃCÕ¿ü3¹á™<ê‚øÑÇæ7!KE ñ»å:l}flÎîo[tvþ]TWª=<Ç£¿K¼ søMwTÄbo´e}ÿ”…E?ÀÔêR–ÉœãsS}‰Î·Í5o?Ù}°H¼$Y¢eÑ;w†ß¹žsçm¤ÔQ>EwKЪN˜né«eŠ.¥Ê õöšaé1ŹtšÂ«Y wõwTÜŒ„ÁÁZ—ýÔJV(öÐݳwaüIø½}5¬Õ¨2(c#yÖÈYøF¼óž†³2ÂMÊ´.Z’k&£ÍÖ”r3{™¯=‰¥y‚SnjᢀŠcvƒ¥ ˜ÈX.­µŽÞ¬nû M:Š»|‡ •kÙ“g½‹ê® ©Àæš®OÐ €÷?êxÀèZåˆÿé0z×ke_X9¾·Õ¢1D(ø€ è†ÿz˜MTÞÀ{ßú@¥ŠeßhN‡„G u«Z*¤‚™‚‘Grvqœ²§bœ)ƒ¯cÌVyüL¯âxè˜z|"i"ò\•­-¢yÔkÄ/™¼ ¨r‹^ø@s\¾dÁ}(vÖ=<+ƒÇßwâ°/þrŠÓJ³)‹Dê¸ÐÞL,kÝA»gírËÝBƒ.(‡sÐHâ% %P¶–ä–,¼t‘Ê)ï®¶…KÍÔê(Á†°ÚdqZ¡iMáùüL¼JÊ-]w”uµ*rËVñ Š!,4_l{¤¬‡Y͵tSÁ5~Õ Cãl}á‰ßVµµû…Þê=‘M+ýêi¯ßšíd;¦úÒÃ,Þ+iG÷ 忚ê^œ”‡|G‘¨$é Ú•‘Ì@ÈVßÁ׆ÏÝ‹ˆ%¡r³1Ü® ŸDZ„#¯YC4éÉïËùø`ü7dOøMAƒ\jÖVߘR3®gm‹ð>|ê°üœ•ï6‡² ñpÄДº´‰ô )ÃãÃâjm“¼D ‡³_„€‡>/·D= ›B"<^ÊGŒ+û>:]—øo½+Æî:ÉÀ¶Ð‡8K+9@cÜc—¸M-~/ÙT’ûä¦Ð«ÐÁeœ(ŠÅ=ìµgŒK0­»Y‚¼ü¢ ZÍäy QiWn¾RÁšÒÜóvøa´œ`ËF}Ô[¤h}düM<F¼M@Õ²g:åZ› Ž>¯•<úøùúk|¢Ò‹uÆD™*øxàºÂÜSéP:Ybøµ²Û×6cOó§Üæy˜Ÿm¾Íª|;nÏc¦ï縹´—¦T[¹"³&áü‰&úme|5®ér=}pûRIêꉻ+M•˜£BYãðçܨ¶ífÞ-Ø Kæ )^*AJE¥Fî¶Š¦%e Î8… ƒ@&ôP†³'ûàÈ-šòÒà’ÛáÒ+Ã5 ˜Ë³†IŸci-;þž­Rü®b¯\4â3ÇrÄ\‹š t(lŠ_Åj!zZnˆŽÕÛÎræýáõ Ó| \p&ª È¢—3MYÚ¹ˆ7¢öÒ} ¿(bõCñ}×qž"®š<ëoú7ëÈšöäž'ïô´º.Wb‹ÅþÃñd.a¥ŽÕÿ`@an͉}SBÉ0‡!nüAx;ÓI^¸‚4¸æ+" óâk%Ü’ˆ^»ÞǾ}lgÇ„hÝV(ã9UFÆjdWÇE„:™L!T|ãBS-»Ê1;q}B†E2½Ü<ÔŠ®½ùu:ÊF%5“Þ 8È€Äàätöà»zÎÕ/¢&²"ÝèsAÁl޾á\@C×~Wêæ‚z5Ò÷¨¤‰V?æàpå FµRÝÐ Ö\¸ÒËë“P¼2}©îÛaô•zE ÜÛ"='ô8иïmÒ¿ÊæÆ.DÖ½¢G+6¬:´jùû Ç•vÌj±éÙO¦ì:{™Z‹l7 1§ÃЗØW)¯ÿ ¬ÃIºÑ–\AŸÇ¸wÅn?‹»×dþLãKüTp57âË|ïVó¦î ¢ÑüÁ]·\UaH¥/j:Ôº}ªšÖFü}a–vùÝ ûÚۮ̴«å~ÈzºW,ùð›vüÄ3˜nm¸ ñFôŸp·Ê)™‹éÎ !À'l:S¶âi­Hr¢Q:ÒTFø §º¹L£½d–ë?êúÙ`×’§lö’FŸE¬)bf¡ ")×9ÉM;\NrT»‹øyt¨3éB ¨ü0*(`ØÍÔözj¡^ èÿˆ"2T¦ÂrÛøËþû¸éhP°ôø¦rc7ý“ Žw°J¹ˆ¦¡2y)òÔ!ÆÙ©ZÛûؘ nþ*^c×:»>øT·J{*: åºþGQ9ô?K‡Œ,Ö hý…(ÚÜšûž<÷7lõi¡À,f¶Êäë$_‰¨a€v.÷ G÷<ÏW~YÚ>ùœ ¬Ì½~ce1æé‰î WªNUbÙ™†cº k Â»-0Ø}Ì㈹£'²¦küMbÃfü'Š5Jd´§ŠiÀ'ÚÍuÅFeH‘Pa›úû›*­¢XaAz¶Ë´t[A÷t‹T3•ŽyŒlpx2M½…»ƒ<›KŸîÌæ.OqÎóYë|Ää”gŒèHO¢‹;`Öúß ‡y)y4èÊu*ybæº<5Èö¢3ñ®IŒvÅÿ=ŠÐi8Ô0m¾‰Ï"&YLŽž_°Ç©eFÃ.Òþ_]._ ,Jj ‰ÊÝž+%{ôð°šv¿Xi}Ú¯[) —.'üM€×A.E"ôJ+ž·®Úlö¸€ܳœ…q¿éI[ IGª=3;qdD—Îh³–Ú,Ár=þ„yŸ°­—D….¿ÔwaVÁ™öNF‚GkÌ̉>$iö©}À 2Ÿ-î<|gûþNÈ…7æ)*m39®`Û{ÿ«ÛËa ~~÷š–§ús|ãb•ŠBÏŠ¦}¸Ä —àL£} > ¦KĤò!-!öÛÔ)çzo¢ó L™VÔ®úŽqœ\“"v°T‘5ÛGUåáïå'›°—JÙ¨¥qanüøcm‘öL~4—KÃ9%­Y¡Ð,O3æÉ¡ûmìh“=àí 6F¯ °¡v C17Î8¶,±'© ^†;Q,Oú­nt{¸c«úsÌÛ¾Y¿,ŽT¬§þ¬ÓØFjTر4ª ­KdãQòÓïKÂ4F5sÔçWAû&ZF÷«›ý¶C¼¥`E] ñثϫœŸ!Ýëíá#†­Ÿß’Ç`i­Úžôçy¢=ŸkbNÆÞh=vc;÷‚Ék%©ãá(— M½¾æîàÿµß¶3“·® aÂÏüLËe¯»¹ߘGÆ0yWÒìäÝx@z@¡?žÒ7ø°Iü©÷þ•qÿ«í¬‡_QÄ•V\sà°¼‚š K éLæ‚Q8'‘ͼeóº9^·½¢6?·;ó“ž×ÿ…%õ"b4DêVL"AT1#®¢•›Ì±ù!¯å¹ËXÔR˜†6ðvá €öûÔ}'Wɱr1IKÍ9X÷f>û¹f‘Ä&åà¥{vІ†Ôð4<º{¢Øùòw)ZÒNÔ"1” ¤Õé$®wN­º7Zü|©¹ª²®!Ç/ŠÜçGD?=·ŒÚvE—˜p~öͳXsg&=¡,ÿS_­€WßKÅ/þ˜ez¨R8÷å¤×b¥mzžUÂͽïäà|ºie€n‘Ùvòµ.0XèM@g G8È>yŸ×Ž\©ˆþMô §¿mÒEˆÿ' í&°¾é´Œ§%ŠT⤊Ԡ.ã£3´*;Ë‘wƒxjyê~;9ÿb3˜»À¢Ý¦}“Ô ™ ”+¨!ÿA*1H9fÎ8wøþßv²°n_avI˜tɴЦMgÕP AE—+&V¥h—7ý°êîäÁI»ƒ+tš ÏUý‰µaIÁlT¸fhIƒZÒj©¿X€*Òú¥ÏøûÅxR¢‰’rC¬3¼Ÿƒö/­“m­Ý\L1#\$™üL⪠Qžs,Zý`uLŸY¨4Á@U~éßèäÆd0I?’U» M2¾ú«Á‰û]¹…^t…®ÉcÞÊÃÀiM¡ñj M':Û4Hƒ~(ùµðÞ¼€²ÿ!ØmjšFûµt?õóÖ°ÄËÛ+À».‘ëlÃp­¾D/P¯”A[DçyÜÿ 7ì Ž‰ ¸a|s4>¡x:"#{e™J»}³xÔØi{FU)¨¢<š™Q~™÷§%DiMénþã¿CÍèå¹c=誑x¹€'M^M£üL¾YBz¹çœÎ€^´”U‹)@r±ág:ËÉ;fÿÙ ¦ÈÞ:›Âi`@@¤ñ[¹°ç„y'É)Õa@ð7‰xyÜE "§eX²ä’Z0d†è×ÿ¦_wzp¡¶xþõŠtä¦õÊøM§nu*@m¥Kר qšwÐGýA‡LÜÌŒ‰™ø\uÉm¶@ž*ÿ)ÛÂØÀ=ÿȳöq÷áY.p®ûR»$?•®@`¸9®Fu_JÙˆê-7¿÷¡Níšr V@ü×T‡MH£h a×Òø{+Ëøb Ëcº% ÉÜuüL«í+âŒymû£ï¬ì)Õ,Pòyp9¼^{òX€vE‘ºqT&e¦ÖãéÓ;EÄ` ©×6Yp$ƒ£Céø3†ê±ª‘šYpl ÅLZ¾>>ÿ»d¸#¸þéxÐþ¨üÙ’‹ ùb¬—_¨ZéÂâиw“=ö¿iF^°‚™-˜˜>súYO+¶}¶wŽ{yTc#ª“÷ô×2jQO&Îkn麡‚$M6•[šÑ{Èéëœ@¤Ãþ¬óµâ´FXª3o©éóº½l?Äó'²ô¤_O~ hÛ¥ó9avüïZ4 5߆Ýᦷu¨b$çãž¼©&÷Íã³¢®ƒº05€Ê‰Â²YÒ´%‰½R¨‰}’첇Ž@ôÏùÉ ø¤U” Îm£tM—D±Ðà]Ìy—c6΃Ñ1¹…ÍŸËþŸŸÿ«aSªŠ6÷)&#ñÊ ”ÔôÎÑÌK&Ò ЪçlnÙ¨fàÀÑšº¨P71}Z j‹cV€lA^©S*À6še]·é9ÄRÒEPešëæÏ¸”²P¹\c/ÏähM.½[Q•Z«YŽ˜J:¬™õ4Ö;#mnEA„¨Îš‚;ʨÜüL½W#šXœjÑ+Ë{nô9q¦è…°?«ä"’ÜfØ-6w†9²xW»ÚZRdÓø˜ô£sâ6©þ¨^S&”þhNHPz ˆ pNér‹NAã6SG¦Ó®ž¦ ˜…=ä>ÔH¢D¶NÁ~,¼0ñ’d”>ˆ“—óÓ —eŠ6<’›å–ì¨@nÔÚK¨OÖÊâŸh-Ñ™z@àJ³¦,Ì%2V¿«Ï+Rô{FÔÄ*Ì/?0žZÝÖÀøkÛÅ*7àe8HM 1lw(î%9&GR° pYýNÏŽeÙš„àÀ8i¯š‚ùÚL ¿ :ÔVçiÏ] ¬ÔüL¼XOÊßB£²zÈòšm´Þ„&Z™‰'„kÅ$Fåß/Þ`œ4Ü*gÑÌj¸¶,p@¼­LÒ(=«ü_£‚"¥š‚> ¶{ãcÅ‘ù#Špž£{²¬Äâz]ì/ÀO›Vªƒdúÿ!Ìw¿êà­ ärÕž´>±ùóöbf[sè;j7û„v£mœ$ï©NS/ö6yœÊ X¿_?ö8[†é2£6:þAÈ]Õ=§öÙ¥q€//b¿l‚{s À>†ù<¿ZÏ%x “\Mm©CE2Kˆl5@Ÿ¦ìêR™¶#K ˜ƒ@œüJ=;$À>ÒÀòy;“O¦4W%¾–§ÎâMŽ{¯Ì««dÃÅY¬•ƒ]™<ÀP(Ã7sê¡)Ôc5¾ªëý¥»Œv™0g8º¾Pê¿$Qµó³‹ˆS«´¥}m?¬À¥×Þ«r1Ô§Ù@FDæAd”{ô€;Ø. 6°r¥¡,¢žIÏPjÓÍÊkGNO ›1w] à£þtÔݶUWIZª~@ˆ«^ª{×›*zV³=²Ke ·N`×iy‡F± ¦ ¬V`0ìHdÙãÛ;œ0ÚŒ–[qHy…s»bÆŽ aùr:ô²Òø3¹-‹’üLýa.û=›ØÌv¯æÂQ£“mÇ6å(;w|t  ·ÂéÒ¯ÒÎãêË’3þL[/‘»Ë—i¥öC÷Ö«f<æC s c‡ëÇô(xV‚v(°X+…ê]r Ië=~÷þ¡öЭ>”ZTߎR|þ#zˆ¦ÚU·Êß ìöOšùBœø‹í«…¥j›ùlƒz•-quäd?\Mó!ú–¯Ãƒ¨#2Ë‚ɧé><È羌JŒµÈêM&šOˆqƒØNãeÖUÓT’¸J;Ûå”iòÉ£Yæi~t~JFåü1†1ÑÛ”m„Y~Áx|ùp&ÒgäfܼØ1ÑUÅ“æŽìc?_úyBJø“5¦È+ ¶™’Î;Tû‹s(ª|•°ûÈöRÝö8îÌÄd—( üðð*Ö34³:épûHtt| `X;W9ÍîÑ& ŸË¶ùoõF3Ñ„úh¬úð@ó øÝ3µp>ÎàztŒ T­>ÜÝ-ŒU÷†;ä’b*JØUÄM}¦DYþmÇ0ð!²¾£%LÀÜo¶@²}ÐÕ©¡Ú¨*ýNIάZ5.½åÎWü;† Š"#ù˜ÿæ\i샭ruã]­~W¬‹/S0…W]Á/¨»%ƒ×úñ+•‘woˆË |i\…à‚-¤aVüãµü08/0 ú]o·Po9©™gÿÖÏgz3ò{™›—À–ìÏáüMbЛ™ñŠ•&ÎCÚ ‡Ÿõ]°]¡`ãùLT)Sóî§û’*;‘¼l憿¼Ã‹ …¬¥tC§¯1ïJ?퉜v¥æKMI/BÀm³OCkqÎURë"€~4š¼à tHù=CäÑ$÷ž6Š¢ŒtĪ­ºÙÿ~œ]¥«?ÊÑŠ^ݽ¶ü„5bh—’&c§ÍU À# å2š#Bø\ÀSòˆÀМ£Ö ­êmMgŸ,ó*ÎøÀ(­ ÃEÈl=5íeÀ¼X*«øµ«yµÔ”µ]¦)ÿ7 Ÿ²öaBgG.y#ÏfKA`&¥—° <¥Æ»uzçÁš¿ü/f­YR?“~Û}©RL ‹~OIÍ?¢Êq3µÿàñ+"®¼& §&Tn„©×VŸ*£Ë}È Ã²³lsOˆí+û*gGrë„*1×Ñ—ÌøÈæ;üöÔŠ ¶Ö5‡RcWc|§Tëdä–‹é5îÎü.ܰ6z¹ÈTü—‹°·/‹k‚FSg Ž;Ë”.(!{³¢PEX \Oœr™6ª]5Í8^nÐqvˆêNr·˜sÝÓàÿrš/+ž`Yîd¼ûÉHtÜø÷?µ/?G+ú6[ËG¤›˜¿Nv™{ ð…Œ=]§ï9Áoujº¥WðgOggSS¨äs 2šY9þÿÂçâãÛßâÿÑÓÕ×Úðöÿ½ÿQÑÔÓØÑÖÔÕÛÙáÞÿËîÔÓÕÛÜÿ½Ï×ÖÒßæÿÒÙòüëßÓüM$} Ê~Pzü¨wÛ´Ô¶ñ¤ åœe‰ x šÃº¿oÏ&}nG sÀœ9¸Ÿ’*fôlÙç¿Ê¥@M6‚Ãø;Mo—ÉÓ¾½ž@„õ#ö²¦:Ý¥Ë'ÑWù9‹ô‘†ßçíJÛØ˜Ž‡ˆ,Rù½NLÌíõ¹ªŽóôýºhÐ)‘4tJ uñ·L죉ÔZHØ0o„¸êý«ß¦³–ˬƒnçàóÝ,I£fsŸÒŸc=hõB':O« ,«yë3ã…FPW4BÏ êúÿ7þ\¿ =QœVr–tÒÈNuÃÂm>$ó(ÝÛ3R"4J§ˆ)8¿¡óÛü|§Ÿ3ÛÆ%&@xÉѹØÀec‰îÓPɤ×Vœp€fÉ(C³ÈÑ<#üq'y³Ó¶$›(nnŒÎ¡ ¬Ët1.åCm_ô²{¤ªóMOÈñð×eKG4—CVE¥mç¯í¿ˆ ™}~¡âK%(÷/¾­̓ðQÙ”=á• 81°% ¬ÆÇWZ³’tÀêö¡„0ö§PH³‡g)  )¢È×½ÖÞ&\ž4/ð øwAñ­Å}yNâ,}¦!D@[.ì­ŠÀ°Iy¢‹‚ý»a7³u[eêüî–DÈ¥i „Ž+óÞ^l³¢…ˆÐíȶLj¬²•5²®ÝŽ`нüj¨>ªMÀ¡÷ðá€ìuÖÏ$¾ñÁSÌ\'œ1´ËýÌ×Íf(ãQÌb”Þ¬iËý¯|Óxyß”ªâ6ê©[¤5¶“Lú¬ˆH+[èïüåýbx ÆK âæ„ý~n@އ®8ÎV._k «ŒM@UPqa/)˜?ç§å £Ù9ve¾î’%^?«X†ËÒHÝ‚awqò»Íçª+4ö´kFh|¥yo‡VdJ3]1ÃÞ²PLà‹l¿ÝY7ŒREüIå 9Äö ë^œ‡‹–‹[/pÖ¸öç SL¿¯òpvH²FÍ${ØïCÌ¢|e·‚! XQ¹³•ÇEÚ¹ó$ cì…>-˜g·U„$öJÓaa]“á0£Ìâ·èö_B˜œû‰@b·FOi´œ¶ xª†çÁy¯b’†šŒsXD˜_òl¹O6š€³J@§LH1B qɲcIšãÍÇ/ãqmíPwÄ}#Ρ²â“&ÅVEñLÐuCŽ’•A*—L.Bmà ¨=÷©ìÜô9[ý¸¥|÷h|üî…}ÖšºHüí4dkWÑ ¡¨·Vè`í&O,Ý5þ¾)žaäÂZÂj.Elôëš@¶:È&23o‚Ü•A Áu_¢,’`Vqk.¬¿èû7÷ëñÉk{­ŠíŠ}ög“3xvy1ßò.$I¥Lt¿šê`ŒóÁªMMiŠÝtìVÒîãÿ‰þ,|& :LKqÊJ%=çè¼…m ¸•²y«gÓDÆHûøðä­¯'h ù‡[ÏY5N E«"À qÝeMØŽ…_XÀP’(2ƒº½•¤?I+á!*™žÕtEüî~³…ꦆUÏÉø–ùiIÇ3#s)ãÚnÛ²¢Z¡×­ÅW÷ÚŒ2±Ñjhãº5··åtZ¦>•Nz¬ž¼ÃŸ^iö†Ç¤Ýùïž)÷‘pùäç6ãYØ7¼Z`ËØ¼Ȃ͓•('À}ÊÑßB+jD-†ÕƒàÐàÿWј*¯<…¹¾Ö¶j(´WoO¨ó|é¦À%õó7@É“+òh¢yÒE &5ícül—Ç.ôã²Íp¡,_ wþ¨9-X2_ 3 îæøuþ±–ÐÀ9‚°ã‹æ— ×Ò'f2f1#=|v9]¿4¼ BG 7E³áÁ/½g›d˜óÉ€ÕÑ4dAù¥ÏLtÀb¶œÅŠbÿ>Ô¡ê3Þ%±‡%$4ø p¢[(=–: ƒÿ*¿òˆ}»®.…y¯ô/v¹Lb3“n÷ôÀX~ý"çðêëÎF×Àßd¯ˆtÄ0ܲ™„â¡ùᔜ÷ÛH£pÏii¿x4[*œš.Û3 +V—z éÖQÙ¡þ¾^ÉÖúfHŸ<'/Þ°5PÛ6 \PüÀi RN€«G¶-˜¬·ï³eÃýbMNææ5íü1’t3c4Ü7ÒÉ÷öK§ð)sEÙß技¼ö=r˜0>ÜK ó¬]rå®F=q[âÁ´Ÿ€}ð¸A³Ž£ÊaGµb66rKkGêú-—LûÌt¥YA_}uêDpï™výåÝŠ#î¬ükT¸BÛéØÔÁ¨A~i]çõfaÚnâ˜Ì-©swªáòûƒöË Ïk>ÞAºd ~=°,*ë›Z ¨ãªZÎ`ÜÍ•…VzWþHÛí2®pþšÄç±Ö€¶)Ó—uÿ‡]%Î’>,4᎕  ‹Äîðj_ÉÊ Lü.'dJ¸BÓŸMöé+5KóÙUÔAÜnÖH½wÂmMg®=x×m@ùgtéþ®Um¸Ë Ÿ¢ü¦w_ ›j¡+ù)LÈêÞ³·¢Œ‰ÊÊmáƒuƒ¦ôÿ†ª7g"œõ¦Û5˜â PO_¡¤ÂD𕮏îãÞëY±˜æ~Rƒ@ÖÑ“ƒ4õ9H,i4 `ü^,ÑMy1'rî#U oé„vè,OsJò(!´„ÿü¬³õe‹ÞÒ´¿ÖíÛ·c"FÙ}“FÉ“ÚÃì{ÃIÚüJe åy~ôÙJ—1Ï÷Œä­òŒÞ~ÐHD'“G†]Ùи¾†èw¨[vå+Ó“ÀRDb†™Ž-ë¹ü6dí†Ö2àdgh_ôGØÂ_ùƒŒbŒ$üü—7µ¦Á~ÿñ‰‹±Ý÷ÉÒrp«ËÉŒÉNÁ2³-Û ÆóusÌЋf¶†ÅÊaíØ:J qü^”ž½9j2_i¢äËñ¡²‡°„»R‰ Ë™PaºÆޠ߆á4-{ЃŒšÍ\)^:ű3¶â#ÒH‘[ßönU²?'ë ”H@Æ,r³ˆ=I’±UØeèçç›Kï¤?ê­¬ ¼V¯Qû§•'±NpžhРŽ$6‚0Ý`ÉáÀ_›PIÀý[¶ÃñèÎF?æÀf[}üî¾­Ê›]wkoRIú…u½_"z@ÕÏ2›Ø†ò‚“H5«œKÙÙŽº<Z Òt”_>­[ðÄšWÂÉYòŒÊxt0Óå-nœ ³ò¦÷–  ðhuA•$5 6È‚Çð·»jGë¸XtôÔWŒ s4¢o¢A–æ¹iÕò†EŒãí=^ažŽÐ¦¯¯ ‚ˆ€"œ—Wuß^¢ù¾‚á¦ÊO×ÒÆxôÁúSµƒ‰<½ÂWU¹ÕHÖñ Y$„™Î@°¹<õ68/B]])€ºÀe¾µ=Uyv˜ð=Ð€Ž¡¹–ª¢RÁDWsŒÀX?£Ã ü|«:Ô'= )¦FNÆ bÔAmº‹Ox¸Ëx•†Ê•…ôM5˜Î2¾ñ?´È"ÕGlŽ/É‚ó&Œ‘JåÐzcûúÞA¶GNéco´Åº-øCá–Š"Âmýw%+;ŽænURÚ³FfIÖ€œŒžâÚµ«.Î{¯ÿr²T¼TòýÃ;ᜦ=”\u‘VFÊ÷ÿ±£Ž¯†û»˜Gg9gëôÕê ¡†Ë"®ödþ ´Ì“& ÖX†G9ļO38Êæ¨n%/½h£2‚³€É~Ó£IJPvüAŒ–EN•º¯)zÆ!÷£våQtÌn¨ÿ»·'~U,ÉEZ†»A‰w˜1LÊûæê’=0­KsþÙ¬ÛÏ?ømÓ!»ƒ³7^VZ‰z5t0œjë}Ü-•€Û¯g’Â`gif)`Ã%·‹˜–;¦”äu‘¡•ŽÂVë{HÞ·ºÕž>N}î>( +ñÊöA¢ïÁ*wfo+jÀsDH+¥ —".¤™3iJ’ îY“ì"§“¬ÓŒîF]Ásc¥²ÐÂØ_%ú3:A È.—€ ¶)t…¿ü|¸1l¼s›ùáq1ÇÝÞ`ìóTíõ*ž]«Â$îéëM QMKg«ž‹Ô]¦¯û\{òÆÞÍD3ÿÝ;Ò¾8.†]àNiÐn2( }lQ—E|m›Áïð@ÝÛ`¸t"JWipl|iqB¡Òß©WÑû•­YÞK“v• ¼‹~öéÌrÓì¾UÕ¦59‚‹T‰Œ&cP¸M?ôOÙŒõFƒà}¾Q|Ë)ºÖ„µ4Þð¤J`œ†hrnZ0³awþH/ÿ®šóÏŽÙÀ@,TiO’WñF$_ñLŒ‚˜á/ ÉmD‰5“ åéÛ&ÿä×éÇ@Œ7W5ÛZÇšŠÊ@…vç$M ' 5w½ŠDpqbY­š¦éùŠ Šåü.ÐÒF„ÁPÁÍõ±ÎËre¨ø}ˆdaâ纡¸ªAq*¸Àg8ÖÀYÿ:ºpÔg†ñ«ñŒå§øã”‘aG½ËÿVU²ïWšåç„oΗ-rZ‚ìô1UdÿéÆí‚L§‘!‘`Ü]}µ2PŽ›ì²ªû¬H×®ø q´ õ¥9­53öT ÚÔÕnæ«…¯1S-Uï,™cyKäðà+#A8ã> æZ…Oîö"“È4±ŸŽ@Šëï÷pÔÚïüWíãÛ ô¤-L¹@bM+#ôUò¬z®Q+]•4ñÓžöÇÙÄ>Gèö,Ú¼±|¶Ñ±$¬« pÚIU}_7K1¢Eº~HXØdãiú²a[Ä?©˜ÌÁoÌ€tŽŽT4µ[²Ým@²BÍúíByAAß›ßÓ'Ú>{Ê~).³MýˆÆòŸ"&ÒK&Gšë€Ú;XyÚënh-°U›H&®$š,j¬g¾uOCuTzu×—Œ>Óat´^ò8&œõ„•X_|G› üMZM¯•áü·‚”CŽ(䆹 gÄu<¼*D´SNØSô—¬í3MרçþB°óý¢Í®Ð*}²?7ÿЏ¥ñzçnDÙBL•ˆ‡°³÷<êCÇ1ª)«(Íãt` ý"š~èVöO¶êÄ}¯o #ºUáïwUh±•áN¬ÅÙͼâîçŠYiy¤|ù4Çb-ï•þyóÔÇ×qc-¦YèÛ¾y*^þö›©£¢¯~cŒzۛ鈶¨{g°ÏÐŒ‚õJyËÐëü) 6òc¾H$/™w­ÎŸ"Üfú@^·¢uÑ_0¶ºQÓÄ›ÇÍðìñ—¡Ñ|´µ'Ú['à±çÞÔ‚dåP ¢?.+J_y Ò=2“©ž¼«÷ÉzaÁR'ÈìtÏìä°ïÞ–·DRÜÊÃ,8.=Qöf@¥ž™Í­BøIÁeèý‘€Ã ×ëQ.á_×3CïôA»ïĩݦ’Ôoí™É©…f”ÐL#±IÉ×éQ¶ì\F;·Òu§á¢-\ÒÆHL%ØGuƒê-m—2 r?ü6S ¡ªOåd…©žZ<ó]É’^tÔ€€Éó¬þSmO‚-:[Œ;—hŽ·~k~®HÑÎ$à—eKæ=…/öDõ/›º­]<DZ>ÂÞ@”E‹ ÆÒ–ûB’íZ 4]¸À¾±¶ü¸¢@µ¼¦e'ävÁ«Ó3ŠÆ‹Þ*®Èl|êŒ÷ØlY¬×UË%©· ÒSÜT¡’«fë»’nÅ¢LÓï§r~ãÑaqŸ¼'>6.ž7ÙCCK&?]ô>½"£8²œq¿˜ÅfüL˦E,àUýÛ×­:Ô×CuÅzáð=ߺ=¾ÒéÈ7QVßyƒ=ù¤)$p³å¿'µÐÙGü &óš˜ùNƒùšãÐÐWý øpgMô¶åeW³GÐsÔJTBÔ/wt3†Øqm©8¦È઀€iÔmëFn]h+­1_HÆ4Üž×13¸G³ÖQ¼áËq¯#F‡'é½s¡<êle‚ÕnÌsË;Q¿§!ªØè)­@&Þ¾Á–Eû'!Ý»£ 3;O¡±]¦bˆg·óÞæv÷ùžu4v…ôñ5§!ýáDcôÔÂ5HÁüï0i¶<À9ŽÀïÒ>éÂÆŒ½}‰ûn µæ€®3ËÆ^·‡mJ@â©#7%× )x^Šu® ¦\T[1ÙuÜ58"â òÁ^Ž:G©êúø È.ݦ‹yÕ+D¹¶_?þ5pú”WéŽeÌ%³Tò(ѹ𬄧@9¯êÈt¬iÊñìƒ)ð‹’^uaÌ?ẃ%«MƒÑô°‚±a3üÿ@cÎI£Ü–³žþciÄjYñê.z‡%&cäþ{r2Eüî½s*ól¨¹Ó¡£.7Zyªö F)òVSÕÅÿ&×ü™T‹ ³D4·5ÆUtJÞÃOˆVt‰þ.ÃRðøÆ7œ¸ è,6¥3×­û¿²PÆH6t§ß÷é†üW’Pn•.ìŸnŒwjVQÓÐÍy)qÄê›3=/ŒUÝ 2’¨Š7^”‡ÆK6ß4êkÒ¨V°òžR¦ý ÍX sÌ­n!ç{•¸J|Cέîé¬babŸ±‡ë½ºáQ3k]~tKYvuAÀÒ{ÒUü1€Nî¢Ð&”Z”“¬aô§ATtIçÒì†_!”½¼W)Ϙak#ý‚›À¥2ô§cû­È*“õFíçÐOÌ©D}›cÊNÃ}lY$5”Á¨¶ÓÍ|„ø½*]›‘ød=|Rc¢\®~iN÷ÜùÎÛ)w/¡¼ÿ~ï“”¨ -B1?r¤Ú`x_r#ƒÎ[Jg$)¢s–?‹¼Èmyd(šû>iýõp.=–£Îv’TO~ÕØÓ¢4õj¥øCÆx¾M·ŒeÏÊû^qÒíÿ*Ù|pÉ>üL¹¾ÝÂÏ{‹øÞáâ4"^=»”pV!hÐQR;.¦æ?/­±ùŒ‘×—ÁS4 †>8R¢äj92Û®©˜a§AƒPzf¤%[G~ÐïÅßJ½¹Ò¢z®âs.?  V9À¥WEÉÖ„zýªf/Ò,ßU®+(ç«»D4{§Câ z›Í^¯^×<~: GˆG‡ÇÃl‹®tÈ3à˜ÜÈ“ì'Êâ”Öüû›ï…¶âеiq(žoèê½ÔÞ-Éß~„kšuâ/mÕ9ëx5†0ÚB€Q üï¹_Àªwº´[nãÖc^Vͨ9ª š&‚@;¬]}›Z²DöD–Ç6‚Œ‚X ÜÍmŒl*ŒtŒõ¡f:ÑWÛQ$êªÞÅ;‡þ-á›Âp Í^qÌœtô×{¨¡B¶ÁF,Ž`ø«0‡š^ƒU³ ín;*8œŸÎÖ3šm X‡K®ÿ]Â[äŸF(vý˜&ßí뀑v,Õ_ó»¿c‘ÕBívµ†P´ÚB×qœvádŠÖÏC•±¤ëfÆ æõW*) m4øë}¶Â¬¨ª”b<ü|´vl»gÚ]zîèü!~C$Œ¾AY?W¬ |Ö§dþBÀ t÷wîÒ«hý×"ý‘;Å®ÃW›Ê·+Ý`rÏ: Ø]à!Ž-¢§ÂàOb ×Ú±•svl.IxÖœŽìÙ$¶»¾‹$m´C`#Qi’…XßN~©á°ù’¬ˆ>Â9¼áÑ@Ã3j2ZìU74<&Àݤl;ZDržJÁx­ÅÄ—b6ŸÌu›€fg‘ rù²ç:°;c›ƒŒoYý¹àcÕkÈyÚs,ŠÚñâåyBîQa•Åêл{×_`³öÿ™_ÓˆPXú b„äÂ:Õ™¦}úý/ â¶öjzË4>e ]ó`¹’Ïß48ËdriPv>î±qCšo™M½ööycKC)öf¢+Xcc´–Aò}}O€8!Qÿ„l)òØ e))4Ð{ZÍ¿é æ:•¢È2Ãðî›^*¨˜4þ„ŸêÕT…!YÝ%á—‰è’É«é®\WP1ÅKš°Óbίv\Ö ?pð<ˆöœ‘nå#ÅGª™[fVó¤uüéõG&ÆáF=|•rXiÎ åüW>¢«tj†á+J¼Ï¶®l*  @B¨ucD¬m¹îìÂÒ&C¡ÂÛ/7÷‡þñYIÇ;ÀäyKBø;ºÌ)Üe:N2„"Y’]ªn<Ø ý¥â’ϰYë*øTX™9Ûæ4ן¾ñt¬É®B¿NÉTËùKÿ’~¯÷†hŠ~»å¾9Ã9L&oCż‚‡“ ýö ŠÒÅ·¹Á1©d‹Å5²ê¯W´øùÀÁ–1“«â” Å·ýQcU)GðXyc;­N~? Â'ãõ¼¨ßãmß§og ¥K¦ÿÑ,yÈÂN6‚jlþWzü„‹-U\ä~‰¦ÌÙbœI„–"PSƒ ‚]™žÄp°¹«™EÊTõ¢Ð‰ÀtívÌ·c_©êž[Y-ˆ=Î:DÒ3 ?]¨IÌÂwB ü‡¿âzì–>8üTIнyú*ýEê6aœX"±í$ýO¶‡R÷Æ<ô¯Ñ¤H)„dû"ÁÝÓ˜®³8á™àGÎbí8õöfÅ‚?@R^ÌásŽQV{NN¦XRÙ‘Oòiaÿ6¼%)ÕD)…lþxNênÇà‘«‘ïys-Ïx°RÞOë1üNsöx5lh§ö‹;lî÷¿Fn±UhA¼‹”Ýš:W8eæ§Ûí£5ôLç¼NeöU½ VZòo9¬©½[õ‡¡énŸúÏàd:äCòÛ}¦ë•C‡]‡Ú4Å´©-Oö¶¤Ú4r•† ¨ÄzõA¢ûmKS{L$¬§É/²,ÚG[î­Çõ"eˆœ¡`%%ÿô+möêñ©jž©Š²"œe3êGÿ ËlþïVÑ ÿ]˜eˆ-Y ¹¶öNk!Þðu“Àer‘êíü™Ä½Œ Ó¥9FÉk»ñ:‹+%ÝÞ˜308zˆ‚Ìå[ˆF‚4—ð‹$ îtü-ýÈÓ4vøÒ¸¸Qr?ÝyQˆzž+XÀ²Ð¨ç}RJ©gL/Hd‚£SvÂÑýb· Êct¦§DJŒ»LGŸÖ?®+1sŠRSxjÆÎ !ñÇœÍû}Zàê”}Ú‡ìŒúZÜWàOD…ï;ÚÏ,Øÿ Éõ<ªìsÄÇ„•6“Ÿ®Ëãß¾rda¶ßÁ;‚÷A;ržÄQü›Â/ë vT¬¯á£ËjÔôxìÜà¤uèL  =Èû^ÐÕpÙ7ÜpÔm™>‚±Kå×çònFÔ,·Ö™…~5Cs‘“Úy ºûï0ë3X2«$”Xô¹1”ZQ«µïö^U¸(î96CŸá–SÏBƒloøiÈëdDñ;mEZ2²¸1‘ùwmMñéÐÄ}+WªÑPóJ}ðiçv;î„%úªÞdÕk-¨:¢ÏtÿŸW•æ„Z)ZË/Ñ …ûdV¹ÆfÙƒ ŸÚ&h§ZþuÅ9MÐPüMŽIÛLmÇoÌõN€Q¸¸¼qwA=S#‰×]•ìÉ©±0G(zœ'ÕàH"éDÑv8YqzœT†Î'Þ*³ cðMª.QØÑ5O¸©X® ï¶Ç™¾ýŒ6Xðá À‹gæ#Oñ™Ð(§Q-¡ò“þ¥Úù­à$†?]]è©çmùÔèv'*ÜJ˜S?¹¢Ü©§¸ ÞÊ÷1^t6+`>{ ,ž9Ü'Ø=ù6ZÜ5˜›=ûa‹vp4…€^™_soãKè߯zs¹n®ö´Ù”¢9«Ó…ÎhJç&` » å‹þ0açØséapnæÝÓ ¥Ñ½©n Qk %Û¹pUZ&ÅjoJ«—%òåŽ% öU渞wŠ@½ù7SgÀ9/60i>;Á5 î¦fÙjõì-¸™$sÛÂÎâˆß§â‹´›ÓDszÚ1±š|'{ï1´Jñ=žž&>ì¨e¿µÀQúûþ±ÔùÂgp2@Ÿ‘€&ðTs,æú ¬1ìBE7Gz—µqSÝo˜V˜ŠD+»<CYìÚë²$)ñjË:n/¥üM ΆÓìþÅ ‡ª@U…M¿µŸõ(+”‘>–Ržüú%êeŸ0 ‚ü‡;—ï…?¹‹VÁùf ð¸?_ÿ¸û”ƆrØa¸á‡êe3¡~Ì~;W‡ü¬Í×ñ•Ç+éqä5 Ka `A=”×l´·ü†fKö]méB.t<ùð(î÷œŒZãØ¡i–n\òê“á@IJ~OšõßÉNuýJƒ1Ñ^½ÑÒ•Y—£Çê’>Qsd½˜Ì#ä­¬iŽ+ÙôTªq:û|_fÉú“O¾‰‹½8ÀüVYkwšû©ìÍMÞ5›éX$[)²n®EY$Œl® †AIÒ¸ý"âöî§ ¹Õ,ÓVD©PÄÑH@ΈÊ}+À¨d\ìqý-R<e™iš´à‰÷Ý@¡m18 »ƒÔÝÆÅbÃa0üXÏŒElRº¯ÌóAB~7Ñ̲7sFE+ŽhãÝÈê\¢Kê-µ²ÝUâ-Õƒ7þÑõ÷$8k0 ØQ{Õl#“£9?ºˆÆÉùxáÓÝ&µ9åeTNáŽý镉3¤ûåJ×}*¢MY§Ãëº7Ÿá¨£•`¬*ØG6Åb§’÷ëlÄ…6fÝ *5cÃ%´ô`#…2P°Íò1ýu½Ò¡fÝá¯pdR}ª;èòUã³°I˜]¥×Wº4Í rm1€ÆØu¸ÊñrÛN³u}i÷¦9âÀüL½{{jQŽy¢Lÿ(›h²$ÇP ü£¡ '+«=Œ3¿0Uë·Å–~=çõC“ŠÈuŸK‚ÔÀe˜ÈIàÜŒÇÓ·äI9#“¨Ú.+-¿—àxǦ’hñÒ‘ùÝH),¹•«A z'íz»4yöÜï /ˆ¸9g©Zv8¶}&&èÊ¢w±ÇBÇ4Hø´¶XT³ð¦-[ÿr2jôØõMðÓC»Äú¸ B»è–iPªÅt~ã»0ryÚ¶©7ùÉ_¬¡ßóT€¦S^‘&È,”¥üL½7*º ç ų²éü+¢±ô“Y4Vø\O‚òø¥T‡ ĪRß©þso`q)fç#yÕ"¾OUìæû‰ žË™Ÿxˆ"h€>´>³AäöÕ,þ££F „ö<ö·uÁ%kmnŒ@ÏÛ{…×l€B]Ð ‚„I´ê]„Õ¨›enhMå¤L‚œÄ¥zÒ¹RLu;BÓªþ—ÇÂRýÜ]ë°$ ¢,¼´«ƒ<¯}6ý ?›¤”†Ê$ÑÜE4ê[ž~M$àJÝŸHJä­fÄ·àBŽÂ —ö‹ ‹üM-‘{hv»4{!½9ƒoõÒÿÇÈÇ’þbG)Tiô™) 7€¢ÝÛ)iK~ÕƒƒŠ/?D¨S"@ÃøºWf/ÓÆ©®ˆ“«kt$|öð3ï,Íêw’ cRHC¥{O¾÷>ám5Ö¶ä +>C‘9ýPÏfk Nkš´ÉS)þO½h ²¾¾<î¿* ”t¬÷Ú‘iÌT;•²­Ð¶ ju::Ý9þÔs|äÐY-äÅ)Ï‚_¨;aÁ¡æËý–#võ ÝV-ocëaPÛ @G—Ô4‰FNNa9µ‰Ëü|®QŠkX=Rí†øKØÝaCp ãÁF‰ˆ³ýØÅÈ¢Û% ¶’Hm‘Ýe¶£u xÁh7´q w ú]ͱÑã¹ÀŸmbÉI·q٘¥ͧþÜ‚ëÂ2@.ˆ‘™²j¡k„*&ÆÂ˜– ¿³eü}º#þ;®î…?ñ- ý )Ê“ fÍFä ²Ä»®dÀ/ŸXä嵚»¦¾ë¾™ÔۈϞâÁ}^mÒÔNÆa´ÓÛ WÁ3ÕÍ=÷Œ]êÎ?'͆w³~ÏÆ8vЇ?j§× 5ŠÍŽ]'DlE}Ü=túˆ™ì(ýLF•@qyÕ/ÐXšv ÆTÈŒy2 ÁVä‰Ão9_®ùL“èq÷Ì«£™™H4¡óô½Ã!1ÊßWdHIŽXbOÈT¸\âÛŠ&²6°ÞŠø\Á‘ 0“ êF)h™mëÄð³«6Z6‡)´öJíVÿ–>pæzU|¤—Û‰v01@¶ ~È(be~CmS‚·î _L³V#'éLtm@k Õeº5!@·¨£ß§T#Ž5 ™›› ž‰ëâO÷R²²Ô>kxñÓ•Åü÷“Ê—# =ÑÌ]A¹²X)ü6g¨7_lÛ­O$ÄŒNQwÈS¯Þ«m2ø³Ùz0šñÍ…·xp!†gëqÞ0sAwd˜ÞÓxoh#'ÏÓs¬‰ ðcªIbŸ{aÇõû»]ä¼:d ¹Ê„Þ{Q”úëÖ!c£Ç×X¥ÅÖ‡ÂÏ{ ‘<{Hë`¤mUzµ‡Û?7†Ÿós\Ó#vTi<žV™Ó²ÈñH‹èo¹rÊ Bú C`‹l¬ŒÕ[‘‡(æ•»ºõY‚ƒlZÈq÷ÕPå©n‚Ï­ðõ+ SN²Ë¹à¿ÂF”DÛeüïJE'0xÄUw%µV‰$•Q{ÁAÓg£ÓR{©U%JTT°ß¡W +1=ƒÒÙ ýE ©“.-¨`•þ?q>â)bL!$”K l[´ &qÚñÏsèUUÑ7zÞØÍ Û1;ļÜ7´â¿v2¬hB œüâüÕà½à|Výc¸Î !yD®=°êáI5L›r&±µÚô8šâ¢Ð²ýMØäUŸ‹ë‚5˜·›®ÃÌd#kŒ«IŽ"å~ ƒÞù^Î.<„PÝI©‚xÕ~ÜÆ3¬/¼ÛlêùÔàØ‹Ö4Ôüt;üMZ ‡n^¶èïCbÕònqž­Ã±‚J çO¢«ö°™zèdÂU`2 ¯O`vZmc‡W´-OÇghÙc†0úË™¢]Ãë«5€5x–o¤Iû]g)_&±œ3¾*,Ão¹ø(რ”#g î"ê¦sN”lo~H±&[ c¯=/'¸­ ¦óªÜBp¬¤åCí•ÇKÚŠJþ;ëAïÂâ!ws"tj>yá¯q 8ÂSÉ›Y8†ü}g=¨­E‘*ì­¬äMѯ…PîwûIJy›¿‡jÈÅ«ƒ\·æFF@¾ëÖ8}t€CÎÝ ÅÔWþ’ÝD¸ùÌA˜?O‚üÄ…h`ZŽ7¨»…ûLCküjèùþWN•ÈèHUaİKfå5Ë¿ü_ ™Bþ©±2ÿ‘.Õ‰nõòîçÿ Xi8ÇSl#8´µ;8ËÉAŒÊI—ÆÊí<1N˜³r»ûõþ´ñá!Uˇ[5(Žõ%‹¹ EB&—4äòT²äEö£ðé60€@¯|á¿°‰®t°8úW!ëÝ©µøõhV¢ñn"/¼Óœ3ƒ $ÌG#¹¥EWTêF.ÂÑâ…ÆMÓsI«n)^™‹Jc”"HTÐÖ´eûäF}_Ç L ,ELc‹*6põüMzÎMó¬¥#?¾Ñ}?Þ&HN£~}ö‹ 4–FM«ð¬öXŽOª—!E‚¤SPkžªózömXƒ‚[b€ŠªÍí;ÛµTÂVíyA2dxB׆쭞D,=NaJ³Ð)@˜ºŒ*ÉšçJ@F\–ÅOW°#-&¸¡HÚ Þ±§ið¦+'âdÊ\næ×¶ŸšM·ªªÃÙë« ÔÉ&T£¹S~~öäŽäô/ÉéDûÊ—e?ïJ+Ä«¢òjxö;2¦ÙAÚ?~ð*›HF±\¼†Â¤D½Z"D(«¤£„ˆ£W¯UñDa‘óSÖOÊd‚Ø(åÙn1 õY\ÞIsJ0_‘J¾óÙþÇÈ»»:AÛ±8Vóþ]á4ûÞ‹ðÛ†ãÁeÔ·8$x¢,’« +.œ=·,‹DN”QW̆·IÈ,Ÿ…§w!Â=\œb-¹ËÑp•éx€Öûåù§ñ5íÐkü6PÆòpÐŒ”¶ j.&Ûyç1°~D»`ˆ#’”dh<©Ëeñ¡øÅš=˜”¦4GQ«YUø/ðÜóR[O‹ ¿­¿ž1ÛÂ4‹}äÀ,¥›„5¼¢Qì’$½Þüf× "ú”uøäC.ÁæYÈ€djmÜoQà¹alR¸t„$o„¯2²r‰W¸º³á¨Cˆû›\¨Š_Ÿá«ŽÚ‹ŸxyM'5ËÐÛ*ì9›ýÉ™,D lʉþ¨çV‹~B…~+¾C…  `ƒ”g~òÞÄÐ#¡éš ?Wü6šy’ÙP+£¾ªUâ—NÉ-îuÑ6 ?ŒY…›ÓqgåŸg£ÃÒ‰ÿ&[\çâícZ³ò=Œž(ó؉9cÏ4ËUïû`H~*…‚»åÔq£DŽ}æ^¬Ø*Õm•Ù*/=6*Bð€—Évq¸zG¡‹Ý2†HoûzdýU`ñk½&Ì0–»¾S€6C[£Õ#÷åäP¬P%£îõ«Ã¡Ð',xÄDwŸÅ\5jädf¥8 ¤ÊUbOG8S»zòsxj¨ý ­%¨g ¬CÆ þËÏõ‚Íü6³…­” eíÇæL40´ÿx[ KÜÇ·“ÀàEö“«Çï¬öt ;¨²ôì~a,¦ò¶±8®ÚÛfI¤üDS{øOêCe46·¾L¡mnZ–0Mü}]Tv42­/ ìuXŽ‹EL|Yö¨`Š.{¡ÍÐÕkÊ^bv«#7¢“ÒPÌ ª„»VÃeýg`óÜÌ`líÝX)䧨‡¥¤rÙ@-¬tߪØL­Mp'ˆŠ|³(ø»ié=ks,Èó‚lP ³¼þ…°L»äK˜:¨R]fÍJ­˜ ¥­ªôé¹uK5vSÿÒ¨qðºpfÝ68d 50,˜ ¼1; ²Ä·Œ¿w4µÈ§‡\LCèM3 زgé­fNRʧ{õ?[àüX‘•å#X_AMŽ~—ˆU‘ÐT¥Ié|j ™gü÷hB‡@÷!ŽÖ„'«†éˆ^l‚Û¶¥xevã!ÑéÝ즼 Å‚SŸ¾A‘"~Éã–ˆ2Á7"íñªÔªÁŒÌï•e q“¢$çðg¿7¼ ¨ÂÀ><³àYó »pMŠº"”tB³ÃvIVãÃÖTr4Uè•nfuº¦§Ý/»­-Óõ'pŸ_ Àw÷#Ñé„Jx GáW0¸#x»Ë³0ZäÆ_~*Exid{@Äc»là;á 9ðãÄ‘q3Ò>yÄkôƒîo7J¥#¦gÙ½ëûÈOZ UüXÕÆ3ëæ˜«hxYp)û6BÎZõÏJ?¤*´å±Í¨g>jrDd™Ìjª{W“ç~±i+‰n”ÃB¨(=Úá2¹C’§ ßP–áØ¾ØMsú%Þ¡]ÒØwKÀ늃¾U!”WØ0däàCfIŸœÝfbU1?l_l)K¿„™m+9Û%M\×ã@QQ¯ŸŽ¨·p²î%$o+¨JÀ;EÞ5ÏÛ¹Ü8*R0;CÇyR©$1e«±4i]¢Îá„-,÷+8˜ºÜ¬ºSn$V˜xænû(Y×H÷™ï1è²êÍá¹ÿ­iQ†Ã_W]Nûü± ¾qÄu¸TȰ3í;{F :•í§ƒthƒ©ã'ú´››£û©–G™ª;œâK¹˜µ*@;ºéL¡’@L¬OTN‰ÿ7—Rµ¨‰" §Û7! )ó»>¤ç=t¬dÿ5Oô‰TA3 <âtõ#œÌ§ÁÄ ­[|ðÇX'•^¾Ìé2°’yT1/ÉÌn%Øó›ò§É„½‡¢‚9.ŒÐ+¦Ó¥ˆBÁŒÒç,* ­ŽçMÚãV”tHVg‚Ù=Àúª®¹ºŠC\øTl®Ax’üü± ÊS…eºÃÊ÷1J*ó”Éx¶f»83¢LdŒmƒ”UâÀHiu^Öª2&`ÈÀ݈¦ Ë/·_Ì|§ñƒ4bj«‡ÒÔYIù[Ü’>ŠSWyâ¯`b‚ÚÔ$MàÏ»TPÏ-ã·Š”?R1ø=eËOP\Õ¥GŒojDÕb~<½z2¨Ñ¾o…ØóÎÚ„c*>þ!>*ö&.¤èð:1J\c’o—«+©z§2Iý2äEŠ÷­…Ÿ8AÎØ§lLn*:5‘ÑW(ckƒù–ñÉEh1ʖкÐ8Þ‚»ü1ÔnÄkD§lzT þ± 9ÌE.ÈÜ/êòͤ³í Ëÿ¬VÕò 3íË~¥á€£ë¡Î)µí5‚¦lF:ó}n’¦œÓfAù‹[×ä 1×ã¸}gZÏ— Ð YSÿ¹}ñÖtÇ­Îb’é ¼·[ÕVeÄt-ËS‹KÙxKå,º—q;WÊœ?(úç·ÞàêÎ[ÖÖs;/žÝTÝq9ý­Ÿ,ÓÙ¶¦ÚDG¿Ô`\:‰,JWØG|àuu‡˜ Ð»AÿêMd¯ïãÞýªvãÍsÚ\úçü|®!ânžõ;¯_Y¥žÉmÔì±1 –LiüÓcXÐüFD‰[Q–íM®lUºÛ‚rêwT2±È~ìF¦“¡x–WÌÒ¦mkrð«Ø:<µ~ê# ©Ò/šY¡ÙäEïÚuÛE{MS•‰QkðŒ÷ïqz ¼ê÷ao»6ù;H­gÔ²ˆ¸'eJÎ 64¤(à>{”4Ÿ:PÉvaW¸‹òi,G.e&”ÓO '}ü( Zy éáô|‡½É2øq*ij.~GaÁ àØ§è¢”CÄÐÌïNk°&-ƒœÕwê®G¨í~ÙïM˜@]î†,ò•ùÎSèò Âop®ý·Œ@G;ü½ÛßóV–™B~À΂ ³fSÏAdzÅ(o»d£Æ°´ðžÌ¾a¦íÖCgðÑÞÙùÂÓwN¾‹ësÅá—Œã¹+Ýwòø– µû xò Ã┚9~¥ÚêaâjjgðÇJ!€¢Ðêî¥}Pù[¼®±²èÓOÊaìmÆ[±i}:ž*W€`ÆX‰Ñü0G˜ôù]A5ñ˜ ÌCüIÜù|¤G5½’ýК‹tºøÀà†ÄÊ%Ü?}–ÿ”´[ßeÙ•¦ÙÎnN ¡ã$}}¼»§Ú¦•k¨Ãöëc€sMX£j½ð\f§ßTqæé¾Ë¸pFØ­sÍ¡Â{µÿúX[eÏs½X$Ö¢‰íÌ‹›Ž8]û†F±³b'˘Īæûm"+xs†ÒÒOòˆ‰Zü(?~YÒEÛ' -Wl¾üu¯Jî>o哜 ýáÎø„jÜ¡ÉMá;,Ý­nævᯑÈãwÑyÍQÉüIvg±2Öiº‰™A7)ê7±ˆrÁ”lR5i-.?ºsá”î °² åñläé%©PF4Fîcdò¢H|LÜ@6»ã…̾›x‡ßmÐñöXùV!#$d<¶Ë*´š.Iiáÿ–`Y{ôNíŽ?¨’­x<×ùK äºõ’çJ:×cC³¾æ3 ¬«u»=(•¾bêç•è?ËHÂËÅþ‡M¥.p.WeZé_µT]y/uï bõáz¨1˜²-Ã5rŠM‡Ò¥¯&)°Èºª^„üJ9˜h±Ä0¦Å)¨¡è˜…/s^·ßônÞÐJºÒôÁþkP€þO‹P6ƒ§:€u53 Y©·ZE 8|R¶ÌÆQ´ ÁB•½À£öA%lÍôÓÈÊ!<%{"¤U\v,uÛ¹“/úÏdKG ÀZ¦&õ¬¨[Œ8~1#=.ÄDà{ŠÝG`îx¼ISy3œ.,gºe‡X³SîÛÙTîQa±¬hÔ— ©dý­5Iµ‹°'>‹Î쯧a´¦Nå¡”œ~]Ý8§®XY)nlüIÝÌÃ16ÖöޱÍÙé ¥÷\?õºõ.à}á0MécóŸ×H©Õ¥ Jºad„¸xŒ‡„ÝÅc§ì-ÜÖš8 ]:ÏÃü)Ü-ÕL\ö¦ À»VÎ4,™3::É$‡ædÀBÙ-Žz®¢˜&SŒMn$¼ÓPQ%ñÈ`œÁ}ÕÅC:ó¹1»ø„‹ÆFr°ô‹3.ÄÐ_ÕÚ5Ý#ÈÄÖξ•9“½Œ3ØË™åÊæ#–즰OÎ!+*ª?qW+ðŽ L]ÂÃ=䃭t_“?¸üM*˜u­„Þâ¼õJR@„ XxÀíJ…^ÍÉN­5ì·VãÝ¢5ú(=µNnŒ0A`I']íxØÉöÔ âa‹W?:8ÙÂ/»ÄjËÕ`„ëÕ+ŒüÇð˜A§½oÌã}ý èR ºéñžš:¨ób*=†óz9â¢=p?'wÃoñ`Q#òýÝ.,”UDþrêpßÓÿÌwNbã´,ú¶eȘ´PxÛÃa‘‰¢´ÿµßŒÂéxè6M€cbçA¨­±´‡ã:Û‡@ËÀÏ£ÛÒü|­Ébêâv8)ç¶2I”h„¶l¹­“ðKùú2¡òæ†|á­+•ˆ*죪²±wä’—þ aÞŠXÆXÞ~‘-Q—žHS'stw„á-åvH4gzõ Ñõ*ùJ1LMS{ÛÄyzñùo¸}Í, GàyÞ“°+WhŸW(éìè6ø6ì¡Ò¢c Õ ã—q;=°tÑ$Àw#ƒÅqؤޭudLh*|Xýé{,™Ï¹*ÒƒÜ5Vbšøâ>¯<±¢µDý±¼Ž¾ 7¿c6TμÁ‡©oEv<ÃR¤ ›vaø8$Ïz®¨ù+œ{Urür§]*°$ì`«½V#ÁÌ¿Q… §ôÄŒ­;‘{â{hKXúõü ¢Ò˜=ÝQ_ü¤÷ÍS› ‘п$­DÈè@Éè‹™°Z ¯Täm˜J¡³LÜÅnÏ}/pI´æce?h©¬2=‘Ä„°èĶB[œÒ „ÁÕ°ÇøT÷g×ipö¡¤P´¼^Ͳ¶œæðæôü*†#É¿[Fƒo˜À Øãé¹Ýò#1­á-šA–[8Ùö¾_FÒ±­^‘E"‡~lÿð-%âü}\xù³1x™²T,ªGžL¿¤üÔ€œtŧ9ÎW‰ª,˜å>œ$ØËGš#‚„}Ä”$¹)öŽ4èÓCÏbÄ}%—^Ʊ~oG£ZâÖJš®ä”ÈÂÓæ‡Zjë?¶L*Žú¤ÌOÇ×-`•}VûYî麈v‘,Ó*ÛW±d@¸pÜ•|±:d.‹ ºçòÔTÔψ‹ŸZwTÈÿ5²9¿ËvaeÕÔŠEÙAÃÁâ^‡Ä[Ï–këhIuÑ"ÈO+šI#4øn xjoç_öŠÂø¬OCa“%,#K®‹·¹þPk}»<+ã%mm$¡@R”oTUøŸÀ§YíT”÷¶wgAÞ~?@äß;"µ1ü5wÀ}Scï¨ÇN¤Ã€¯o¿aOlY.Á§Þ$A‰àÞ ·>—HÖúfOôão4óÝèÉÊjäF«’ÑIÜ!ƃÏXî8=ù“Q3d/Ú‘zÿóÒÃß02û%6éjÃA.I¶Ñ:Hl¦ûªŒ6ÔäZ6%pĤQtÍÇùgÉ ¿šå¾XE1jÆ­øÒÒ)r0ÔDÿp¶;$Û‚FÓ>U[gàÞÊ;°”yH$»Ó:ÑDeJÉèÇ )§ÜöTHÍm€ùT’ßdgüLâî ´$C°bò“Û*Ô­«` ŽmÇ6ÑsŽè–Ý=$C±`ZKQyÌbäÜ8?#€‰Ïç}?7îÜPM¦dÞåÎ3þN]›„`-]P‘ rËÂ/±(QýÄ®•7­Ä°<¡¼!>ºP\2íPï:Ð"3'³sª0·ó™…?W¸¡oœìVÓŠœWf.2Ä4%þªÜÏakOå:ÍDA!O±ÊዪzóäÿY½šÙ[ˆQàè”8é1†Âów‘Ieø–õwq—ú§`TYsF¿Ý(}>ò«ùÛµüMtº] ®CRÂfMó<¥y´—p驯pD¤Ã´è"߃ÿb.í×útãx“^tüôØZ6uEW—Ħþ×ï5ND<ì¼!-«Öª \+Àiép¼¹Íð£#Ùmz3”½£„ ÏŽ`õ#³9Öw|øÕµÿ_$eÄç´n³¸ÿq‹^ s)žÊ‡ÇN¦L–“o™¼©î¸_Ûk~îˆ ë —¦KÙ*’b{Á»–¿î Žã0ž•‘æéR)‡áÓ™4 ðdiÜ ù¢Û=Dd™2zVüLȱk›M…]ÄžM˜°×zfâʼ‘ª\z„}´À‘óêGÏ ey”ÑOã—†ÄB~˜åÛî„\Û1E[8–Q€x %€Ú®HOt_±Á*XBÔñ¬)•9”<þ_9Ô¡Å V‡Ì„“MÌFîý4+%1¾»0: ×y%+E¿"F ,æFÙ¼Ú~gû?®£Ÿ\p2ǰVÖ-žóî~ÍÀLJssì[ÞÛ ˜R>îf©4áäïc­¶ø=‹m’¾ÛZÂ…stÑFüL×ö5úGÔ5&G„ß(V6î1iÔÀ‡,„  Ÿ/~èûLtÛÓ\Š£'€¾‹ÎcêL܈Ôáúâ[fèèV›¿³¹¹ä„ˆÕÔ¡M^FwiAãÇ ÌK£¹VҨ⠇²K®÷ÜOfm¥ÓiðYó‡¯0§I[¶z|MO¼æœÀðz‚ûÔO¥ê1f¥?sü:³´ŒboÙªæ’þÃM'Ù9L€Š·­smm l=äîd”3+˜<©¤Ï7ñ—¶jŒvÔ|Ø?R 0Uà_Âý$ß`ç`«ˆÞRÁ#’騺Æ"Ú®Ál¿Snü1€M¼GÎ0$6`ÅœNJøuºÕ‘ð,–ªŠÃØÅ-Ô·â²3G!š\V!u†áôuùôi¸BœZÊéV-7tíàd@œ*#•¯³¤k°û“ÚÄW“Èš=ßÍZ1Ø£ úé¤@‘û…ëkn„&tzÏ#ÑrÔE7“nw¾­–SEÕ0T¯éŸ‚_¸'ÊTiÛ fI™’¦†}\M1:•~ü¬1+ ¸.‰¦X$çd˜áÏg³­Æ§40i´Ä³P‹|éÅ.I¤úo%2Xž!l—¡>üMNxF¦Þ[õ\(DÖr«{Ç?‰Œâä«^µF†ÈÕåmŸšµ2ø©„­ÿ,º™DaÏp$G[Væ™1À’-špfªEŸY’Ưz}PBì¨zJzU× ä2u‹¸x2°ë#¶Ô‘ñii»]Scé?¨)ÖÅD£Z›–¿‚ñ]~ƒäëÚƒsdƒkE^Ý{€É8 P€Vvµ˜ÈÞ›Šb;V{ÜÌÃTº²%^›ŸµéK8Èêau²q¥X6dÕž w>ykýövDMãŒ8²-Ó„cÁ_6üüL醢_¼à1WM'à¤ñã3ÔǸ-uc³Š“+]!·Bóª"FIJ´±è†X\ªìC8k2W5õWh|j@Ü"ùr-¢4¯ßl6Å{À¡öd­!«v†ôrŽÖÕÁïú|?Ý·z¤Ä¤ký*š$šo4$9õçBɵ5V*ÐwepøeæŠ÷¥Ml}¬wöùkp¤ÿY=jyù§<>å?l¼YYn!6i >­ˆ}vˆ®8´ða¶€lІ¢§Z?Æc,Ê·j¢ü1·Ã6 U"ëãšõ4ÛÒfZHNŸéŒ #:Õ2k„K[½ÊB§á¿kŒ)†]‘ËbæÁuVà@­æ:Ca½¦$>ÓI颿þþpÅæªá]©å&mŸÄÒã‹T*›ìîÒÃþ(Më“•<ÌìâñU§­;°HÚ"w*˽Áfœ,ˆ­·ÿl­ÿÇ~!AplZåãÞ1˜?á¶8‰ÀZ8±WϵÞ.Ù«U^´“3¤&ñ— OŒt#ЄÄ!rQÔVV½Œýç¬TI㙺ÝKÿ¦1´ª(_1üÆd?½,á® PÒõ°©^(ù©x8@ «’n‹ šA3WûšnΤój8Îîj#œ–$Z€gtÏÏZ˜X½@=>)bä¢;¬¡!‡î(œ%F]”‡UD˜Â„r2Ó¶Uˆëùxä°¾‡ ;˜ÿ¡‘[ÖÀclºßBHÍ4›ôdÖÄÛëº2/©AX`e4Kyù¨<ˆ'öi€€Ä©-fzhý†22¹œÙðHô›ÞÓ‘Î@| Syè2Ö5  Έà?ú5s¸h¤16O ïw+qrÉD4ez«hhL¿üJwlýŽ a·¯çýM¼KhÕº’aT¶®ññ‹æq}(‹z†N&ì±&F ؉˜ö'ÝS)ÓÆX(⻌ö€'}„û5AH#:ÿNìö Ùôýާŕ:­ž'AËEnïàå­Ðâæù4ý ¾Ò³Àƒ½1î]?<î8Œp½½Í~ H¹ö¼©ÎñšßòòD#9á™MW2c!ø(7mªÐ“¬'á‚ú3{@uW*n9ùÁ0¡Ô:ò˘·ŸÉ`%¿Ì.¡¢gûŠš¶Àüs«éµã¬t‡,ú§/C?e‘:ü|­¼+¨Ïp¨•;̼VzÔPÞ·£ŽEбQ‰ ƒDn×¹zÿóÔ"´2†Ïù‹¼n:!ê—!=NûKo¤ ¢ÌcYÚ.ÜÄû6Èû ŒÐ•vyÝÊ Jôü³ö¡Ëq¯…`çÀá?ªDõ,á*Îk9RZNŸ1Qn_{ô_^`u«ÑŽuÃÂ@½r\vµÎ"±(ÔI¹çZ©ÍL&þ¸t=‘qÙ;=ußæüGCÏuP;_†rrHÁ^‹™j.Vn@k`« l ñwƒGÙ|v¢ÍÓj¸[ïõq'e­©ÃR(ä5+‹ì/u–zÂÊ©n¬1mSOaã÷;³Á‡îË—åìÎàòÓgÊ»ñq•xõ*ÎàzX²u¹ 6ýãØ–uò"MkæyuüEÜÕÏÔLÙ…¼¯«K .ð:ì9Û:ö¯ÀøF†(C XÏ]Ä‹º½™>ß@´£ó8^'$°ÅèŠä|ª> H«] p q§¥gå[ˆðÇwüðU(õx„Ca‡ìJ¨TüÚÁ¨ì4~ò7–À¦¬¾ZK¬•ÍZ Weã½K^Ÿå^ã±P>¥À=êºë|·§Íý"W;qï×â1ŽîÞñ5{Ð\Å,’èû±cÁ…$Í&ý>Ñqá|ÖÅ4ñ-‘86~¢tâU¸‘2üJ"“ˆOíž­ñ±ž©ŠL~"GÕGó·:µ3¹+(É]Xj½¬vQ?¾ƒPŽSjMû7A~Œ‡©JXDoiò°—µ'9Ôo™û 3=…•CÑ"ñýªVÕ0ÄG³/ìn ïßìî¨ 7.pA(¨"ž¾ ¦ y/CȰzW±Zw % jÜ7í'¹ÜÀn]×ÍÊ—n1ÐÇ€QûŸ”$º„´MÔW›µë|$™‘×C½»·5z¥(H‰p×ò¸3GáAóR²Æ©å$Û-"34H,züI¥Ë§´0µ5ì+V—'W›ÂÊæÞùÌ h̆¿Èþ_ð‘©$ Ð@²®[Ðán8ÃN£À0¼+°ÝÆå¦Ø¤bDºî¯ °ªwÄŽç1ÏûÀg;¦ úY†ñ°²HN›©©S‡µ™Ìwá™U3«¨§À‰´l DÝIªÝþœ<°>[HÔ©)¼AòÇ;ÿ§áGôZÚ°°Wî11:Œ¯ˆ„½K7˰îâR|¾J§@](/sÿŠ’œR}7b²£-© ’J¬?Ê•>$üL«¢ŸcÈ4Ì_þncÑóé3ý¸ôAv•!Ão'<ó{âÒrìXµuˆOÇãºÕé–'=OXã…Ó¤t7=R(ä}Ôp$Dùò™8:• Ã}H*µ¶Ê2W†®Ó­8õ@†NL[†ÿÍâi¼S—ïø#ÿ#‚e§ÂIXlêÃMÆcËp€Í·U˜6m1kX6Auƒ=ëPì$Ðw½YÒ ­äž=ê_Ѝ¨ k Ϻ®»Pl½‰‚Ø÷㎬Ra· ºF= îr+8‘üL¼9ÞÎäâE33ÀsJÁ¨”^5;$¹åÜäUkZ“V¬´°À>YÅ ½€Cͱ%HÖ R‚ÊÆhM¸ÚÊSŸUŠK¢Ï~màÆßAŒò|œy‰U©ÖLtëÐôk¸Zû6°[Ƚ§¬koïU¾ÝŽÙp7­Œ=Ö€—Õ<39Q.ÈÃãÍ]P/apéIX | ƪo§&p 1¹‰¹XÕË¥é#½°ã’#wÂ×Y(WŠ­‘ò¥%ô)n ÄÓÌß÷Ý=ÍÈÜÐüI|ƒ|¤+~coY! üôŽ@ò9¬•Ñ'Çô:†xrß^NZ†¬àžà€TÞáÙÀ ¢UV«R_øË¹³&Þ¼ÇB²pâepÿöÀƒ6TË5çn¼ XPØàNlñ²¬¾@^¼Vë©CŒfºµ;òÿ‘G¹fä¹ÄcK«3å~Ë5 *‰½ô%–£+NBáï'*ÃÝ„úábÙ"/¯4G]'4Ðïíë¬ ê=‰lš{/ö9pÏw)äÃUf2u£âá/6šÖãq…W‰£‘† [©œü|©¸Np¹9'AÆZÊäR±t&šJšPIÕ,x¸Ê¶)|cDe†ðBÌ.ŸµÛ‰IllYóO£R=u@R‡1ÉV†8P„¨D¦²Ea§½MÊSJ^±¼ËoñôEXçñÔ<˜ié’E0Á!}ß‘R¸™F3OÛ¹m­²Ÿ4öóޤÍtk»cÜEà<ö×Àîrb74|˜‹jÃDÇÛ,Kš¬ÊV€]´±î‹æäõ–z×=Øy|Ч1°"%{ƒBäU€ÕrÖ *Õ»RóL³š;n‹z#‡ûª£Öƒ,ÅÖâ2HÒ“½sê›cÔ£s#Ë-Z0©£µg­nò訟n‹éÌêMFËË Éú@j‹`±«cµø¦sèÒ*âPÕtAÒ½÷üL¨ü¡­e¾z 0½»ÃanE¤)j¶©Y‹xJäŽàM”m¹ƒ×î :ŸÖƒJ„]%£ã‡çL“õñ®–špK~¡E$öµEø^¹Ù6ú¨¤ÊoÏ .ŠÁœ$Íx¯ßÔñi‘3"j˜¬ùwŽ—×£ëÒ=ß+Kݶ7°!£ [åöæh¨]- ®2І{ øãžé,ß]?…ª¢qÂÑø0ÕÜóÁXE¤ÿm´?ר­ëüL«ÿ~]þQèÛ©£›.1&³_礄 ^ÉÖ ì—.Û?25ÙŸ÷þÊÍI=@V f„'û“Ž †1Éÿ26êËÑ¡0êö×£‹ÎW1"¾È­4¸•îWžÀ- T+xþ#ø†j´Q\O‰±…f°ùw8’Ë6ˆE£Å´ê^áõíý¹>£wªúiäA” 8½`£™|Á&¥³9èŠ ’Ÿ}„±?* Wƒ°Ô¼d5¢ø4†¼µC;ƒ¤I^4ѲN`‡üL¼0ìþt×G„ÞÖx­^Õá¯kÌz¢Tæ•N¢¿ä’0½f:Rl¾/¢À¥bb·?EÑ8ÏhÚ†"RgOËñÏèî—f¾­;*:Qš™Û£¾ÛvXW·¸ØŸ sòµÔE¨iz“í xM–}„$”eæ¬Báñ°·éRÍ\ýŸ¿¬´´À3ËW.`Ás¹Xh‘ñ%¬¢çç3m­€YdiO**ºI–!u,›§ÝPµÜìY,iu‰®Ø6ž›:{ónA˜†ô›=[8S’¦X4¤üM€×Že‹Ÿ:.Ùc©r”eUeƒoª¨ßbà ߉‰÷®²¿ ûþ—^±à=†FYŠ<)ài×EÙ¹­lrºf“düýº4õ-9®^–=¨uJ…-i'%§y+’n2=‚¾;%ü…g¾¤@’Kn$ˆæŸÖk-6|ɪ5ÓÞýOÄaGF!¥þ¬QYÁÏb6s…QRfXËnžÂ}"O@b“Jۘϯ \z³¬µÿÐw Œò~úæ)oœ_ËgÑb ™ÝØôðˆ•½î™TüJ Ò¨”­Zç5F÷G>4jSUÁ1Ÿ¤¦Ÿ ¢&Öõ6–˜‰"1‡©XÆ.Îi(ÉðRI– \mÙœ Á¨å·pÇUSKÞåÕã… àýFÆs?þ–m^™"ÑXµTÞ~ª¼‹A·½1é‘…ïMDóy¯» ’:í“<ÛQaPr¡ßØÆ‘ŽôTÍî²{W,^\ùäìØ=ÊÈ8TÞà n-¢*–{fEeŽä•ýÁÀä½}43ì¡ò³Ú7†a®ÚI­RÄÊ™àMüL®€`¼•Ö«r)þÆ·OæZ;åÚø¼?/òŠtè´³’‘û§´Í+Z„¿—¿C` ”i¹½“Ý(Pþ30%~536f¹†~g³ʼnûáP±Ú'¹ßaøƒÃ®±—‡$oXÎ:ŠÔüL¼kcåC8 0lRwø˜õMuÊTìÁ"Jo_x—;œ£GÇño¼Ê ¶ˆòßpr-muôí0/Qûq!ŠE¾{@žÉí¼ÊɉÇÑvá‹¿›ç=¶49~9H8ü•-çÝm`ÂÏ%eGœNÁõ8)±.ù>šßOò‹”¢û©ð´BÜ!έ¾¹…üˆJöm°¸Êÿô§nÏzüþתÀS Ål1 ”ñœ^Ǹ>iª²EYmÖÔ•ˆ‹ÑPÞŒ_Ïõ¶ÂCf6ªÜ(ìBD€üåØ;÷ëKÀ€™ì0Ä=§¢¿½ü6k Ž$ý¬ÚÕøš´ƒ ˜õßþAwÚ'xFtßüY¦DõDÖ7 v »½Êü2€ b#êõkîÕÀæID]‰ÑŸõÌ$FsìIÌIKƒ¤èèÝÈg^Ús Ûuù!˜ïùÊb,6²A?4KM~Ì&(ËÃe€£¡™‹|'Í!ôä–“b''£Í‹xës¿.Ë|còý" ¢@f.g6–p|oK)•Ãëõ8$:nºÀ§raçL‹°:éƒ7Ô“ñÌKm£y‘¥ z%€ú“剙ÏüLÁØURíƒ×h)¶ÌË» P|߃‹!2F¥@g¥™&¯Cø¼$tVHâH)¿lö_Ô]B&´v>¶îLQwY±DäÌëŽ26Ë—JÓûµèüÕ샰òZ¬rÄõ§¬ØJ÷?IÔÕâWñ~ÉE )<ë¨nCŽŒ'·2ÅÏbˆqƒ+pci­mÆ;O¶Ô¿+ `Ðîm*Ec­ísˆ–@„8öFzçÕá7ÊÙþ‹ú“!·õpÙbW…Öº—ã±Å.ŠÜÑDÁ”ˆ´¿j4£Ã|y‰“ݶâ"¾õ-T£–`ØNJü6[ÿ4¢&÷Jܶ;ü­Ê¶¢ÊL‘ýDË®4_¯¯9OÊ©€zˆ±QPj,d%²0Ê=ÚÒòÐʶ{¬‡·é»·„>Ç%ôšv¡.³¯$è™]X^!À&êI„œãšBæªwg«¯¥±’º¸ÅîXö¼%?¬r«­]E2wl°ôÛ–5Ÿ9éŽ)wÃH‘³«Ø-ò&;Øå®+ »·™3qs#§¾pKU¸ÂÍ\sТ†¹¾‘L lÂÕÑ@ïÝjõÙ2£|±5›÷d®Ä¯U#UetnªâˆÊü1’³E"5Ú† vÝJÙŸ üÇÀ¨í!É®·Ê¬·fQù–lêbpòpêÜçYo¶Œ˜ò —:à~ЯÊq­eêebï5 âÒ¿ø»éy&ÞbÄð&4@ðåk˜ 2Ó©?Ö/jXY&v†dpbPI+ýÅÌP™RnQ•^^+¨km }bT-Ø«iª]FI¾:žÖ¥FˆåQX¢Êüx‹v7¾#—1g›<ß—l'iN4ÍßÀRO“]€L•ìÂ,1 }ªÿ“)Û-þ8¢Sª„Üõ]mæüMZVܸdˆ³L•¢9:¸W ×шašjPZæX!Ÿ7ÁßF\+—“²Íþ“%k‚¶›”·îEáÙáòf­/BqéÉ\uÎ"'M—~ÉlÑp4Pœ(à"ä7V?ù׊ ;öL3/³¿2Sù!0Ir¦P¼û¢ì+˜Ðmfgš ŸÓ™V˜ûœNÄ,3˜jl6Ï«n|Çï•[wzi51sE×Á¡+€êIXmª×–˜,ø0¼Sµª±cª2hjíNØÔ|Èö®ßô]Á«:©Ï¾o÷C• ¢dpÊ¢×êC!#Ž.küÆfn ÍøD *;i™¼€:´Ú)ÔêúPñ­\!Hð_¶*/[Mlnþ)¹lÏÚ½‘³ý…9Ól%)Š ‘…³'gU¦BœÏ »µ< HÓ.{@ùÖb:Ê뫪Óú¸ËŸ&ÐÞUÛÌG"ØÛ[é2°­,ˆ’N¶ €n‘xóþν…¯ÕyÖtµ:|rʤÅ(œå9á3Ž>*Ç*ñ‰/Š‘ÓYeÙÔ€ ƒka¤× ªjWsôÄîµ¢ñ.“ ÷5—{T“ÎöiÃà‚n§&Ãæ¢Ìó'šö£ª1—*ŠõÈK²¹Ç®û!üÆk:Nô[+O|”s¹×<¢ôu|tlnÖ` û^ÒøZ€&F£» õtï9 E¨>ºf·ä§",…RxŒÚý„µñŒ¬€ú˜¬gÁ3.g¼Òàz Í¡x^ýVï¸g, eÔvI»àçòÝ}†JPü€!) €¢÷ŸlgT…]O»R| ÄÛ¢÷ãã!ý°ü ê%±Ë¥o@7¯ÃÎÈ\ >ç-¶gðéþ¯q:ÛMÇ„±›œýã¥>AU–÷̨fdäW>¡xÙMÉ7‡šÐ²ãl…ºëÏŽ4nìîÄÛO!!üÆb@“Ky¿9“V Ö Ù¿)õÝÄ$© Àúd¿aœ0uÜ0Å$ÇjÁoì±Õ1dqr^‹”‡+CÏmŒe¾Ò,Ùmf÷ÁX¡±br\PŽS¦o3xäM`rCãÓ'!e:©(Jé!ÂóDÇïofÈAœrÒÁìÁ[4Õ}/O×ïU,•wŒÃN’øÍ&á¿%;¬ªØ‚XÝÃëâKåï?mW<7ºí$}üW¨bÍËC9ç‚#t†^ Ä®¹9ŠŸ”RjuáˆDnL÷¦±Oó 8ˆd¹ Ô2íx‚”So¹ˆAß&ÀOûA"ü7 ¬|t†6bÐ9Újt” B`X«Œº)¥Kk$×p¬Émdx׿¯ǵÅ*zÆš»Ý“é˜+¡<© ”9‡k¼÷ä96 ©-vIŠn÷ QßD›êm^,GZ·iî…ˆ¾u[ÐÜ}ÿ=Ž,B7\öD,Á¦^v³VÙøËÒÒä/±Ãcý ˜1§äkyЬólfŸPÖkõµXñô¨…xX+Û»ÚŸ~²?…xhðÊ{ZxÎ5n ÕyÙ¥6æ5ÍŸ›m€âõK[)sðAæéªNhÓ$ªì,àRNv’ÔÁ…¬È:!I54üIó}ºí1³ÕË_©6L ;"íŸÏ¹dЈ2Eùègb`=f ÝÍ9Pƒà R·Ú%}Ò÷‹bç¡„­³ê"‡Eñoül0¯iÔßFMJ€ë…Ì×R Œþ4ûŽª“Hû\ãMHèïsÖöûR .÷™÷½^@Gt¶¯fU˜EÆô³?žŽÇ2.ãIŒzªñ{jxƼ¡„ Vì«Ü®d ÓF½ìHwJ¸ÌôrÚóWFâh/óZ‰eºú\Z×S;ÌhøL·ÁcÒ€Åg|ÿrD˜Öæ—åMíNŒomÆ'p¨Èß9Ïùü|ª3Ž´{’£p¦ÆCÅ(<×Ü/'|b*OÔ!fÑÂòã÷–Wû¡TM0¹~f@/7€óÇ€wòæ·º„ÇíU¸¤IQ×»Wn¢m{úánpÏ~n m_ÌU¾vE4ñ)ß-*—åaB[{|ʨ——!?iã•H¶\–H‚2ÛB«ýÉr8ß6^lV©¦«þ½­ÀàÐ(¦K”Çt‡Žq‹Kn‡˜/(Ä/ì …"]håK¬Éáòþ0/N¸û4”rÄB §Êm+ =ôJkà¥3;®íæ<üú1“û¸a­dMF¦Ôo(NHŒª×ÂÍ÷+÷`Õ8Hj ]lêWë‡äü1˜Ìe¨w1KJÀ³§£ÈYªºÑÍX¾~q!õáãKQ" " ]µj€<s ‡A´oäíPü¢™ž×7Ÿ,`|år-ˆàðyº6HrÀ"äDSâž=!Ûv›«t•bi†Z]ü#út‚ÖVœ–”ïP$‰ç7™>@»æ=Ñ¥Õb½ß'å0ÀÏ‚N<¥~\¬Î£ƒo.­ÌT¿ ÀT.„à4ÜðÜ5#RäxºaùøÆ¨£Â;¬ºÃnÛ‰» ôÎê{µÍï?K¿€H'_JûÁãyFm– êLüL³ þŸføãÚ<L1êxMj’R±2(t]´ 6^V ÊH¦ŽÚ¶:Vê”%Ï ø êÿVþ´¹’é'{¬ozB#>ÒƒÔíº]{¿z²@†1°¯B^ŸÑè•z†}Ï|îØ~H°ä‹~lâäýêÁx?©Ú kµÈïÔRJ”é…üÐR€-y¯rº!Äì6?f¹VC3ëìã·naÔ0!Ûë9~-ž&¸Wa¢GBŽæV¾àšõ˜ØÙÉ´F©ÓSë­0&:Þj먾I‹f¬â?Müîоª¹@]>ïB¿@¢Ób¢¬v5꜖¡Cw þÿƒýªÙØÇõQ2¡÷œb/éw¸æ$†¦•Îr:¬Y ¬úÄ)ÅúiÃb“­LÅWî ¬?ïbCQÂ_áí<õÑÍà ßK°#Rà…ô Ùž+]SöÕ‚NFð¥Ò%ƒòàt+v 4’—7ñ™£±7'¡Â±GתÃM#BeWSžôñ#À.ÖÐ/žB¸)¯hnΧ¿*ûüIä‡KšpÏZ…>þsœzÂQH ì~P¨Wì¹PÚ~ÏRhŸ[ éµ7•1]WØ06c!,Z&Ž fÕ-×»·ö¾žãLs%¿’3ûmÊf¡U×¥£Pº€ä9žt²®Ø!cΜ.ês°™õíÃÀók¡Î?­vüŠ€Û$°DP²iµöÎö)fá}™™âyš¨W£¡Z¼’ÚöÁwŸ % À©ˆ\ÌD¼ä…. ¾™]Nôv‰GLaúCæ­ófêŽ`ÁIMÕ¼Ôò¨óðbúÀ^ê].f|õú¹~y²ïzg¶kT\ÿSÈ‹§ù øüIöÃŽ9ŒZû°ÍR#/|kOþ=Ý•fÏ _ó¥™Ò ý pó¨Åz*½ÁÏ€õ š6³ŒôÜ¡<Ö©ôC‰ƒššùô4LÓïÉ•$Jl±úÁípj<Ñ€F«°n?ÿ ĦI·”R9‚sÄX·Ø £Ð8wÞ‰O­w¥.(—Ê%½šÆ›¯±¯QWE|ïºå· ÓA‰_ï‘õðÉ¿D¹GRôbJö @$ì´á;J!~ÝSyX{CÑ1j+AAhfYÝþ—|&ÌÒ—¦Í%ÍgA-èéEÚ%™­¾™¦CP‘Ñ7, å‰,ƒïái¹ü|ª0:ÅãsÄÉ<˜·ûÏÐÅ©r%;ÖÊ5P²nëPd8Që*~½¬•Y×je7TÒÊ…¿² ¼‰v”BRtB˜´éòŠ.ù*úÅgôÈÉÚÅ µ—ÅmB¡Î={ “œ{šG°*L#»ÒT ´ŸqÐKù:8xö#Hwrwé÷â”í ‹9úŽ•DüÇâ'‚#ŠaBû*-3•“зrƒ4é $/ãÆ‰áTŽã$Òd¤õú—jÖ“ZïP}’Õšs7öV;kÀΰ“òCÓÿ 6ôâší,‚$æšmD¹½#"GK½ÈSf¨'"@ÓF#ëæ¸?Vè$³~›ñÕÈ™·*õD_L²²+H¨³--ù8Xó‹E >µÅûß0Ãäð«™# àšÌZ“*î 9.Gu–­ÒöuÈ íå°¡±wGÀâÒ§è.šcp1¦}’–ùV{%ûù£;ˆoåã’ì ³µš"Lç7Úív›`„$ÿÓ ,~¦Wv[nÒ}aº°@“y”xN Ê=TŒ5… FÓÁ¶¶ý>c×z P”?ð¯)Ùhî”’¶°ªØ  .“~¶;¯/¸êÝõ›ü.KëÔ·œa—ÊE ]Az=R[‡r=i§06]¢¬¡ÞáÔØã{؎ôù|cG­|ˆ2^ül%{× Ÿ†èf' dF©ÆµxÛ Ð…¨`·üò8<&Óš,=æ£z0UÁÓ»½¸}-Wà‘‚9}¬*ÖÜ ­N=÷ÙÚ%¦˜=•J›fï™TcõVÚ!Ò.o1*·ì<ý+Ûx°×:ëoZÃÔÑ §äïŽBl9²I`ÓèéŽ@4ƒÒ 2SbëævÄÔV²é`/ªßœÐ¢ oäbVör$¯—‘þ¬dÇÀ üLÂÔÂÚç~Ýóé h©Ù¿Â§jõãˆ8r=Œ-ñ‘ËÔ½Â*YT±ŒOçxjÉ£÷ÅÅÙ½i/RT`cO@zýtx¯æüîx#9sDÆÛNΦ h‹ÑÿdxçúBV=•„< (•'Ž)cH²&ZÙQ¨-I'M½´o '3´ÖãnQjµ´’.d+f¤Þ ŠÖãF~AÈц€Æ+r)Õ„T“HРִ¾ HWTë»’› Žc(·ê#FõܤB8Œ|?GAêg»ý¥jmÈ7U9¦4Àd³oñá$‹ üÄ#ÕÞòT’pûq[JÇêk/Wê`J#wv& ò-C÷›Ó’qëŸÝa^-âw»¬ÛJF šÝynY–³<%s¦õöÇ–¬ÅŠÂxÁ{Õý¦GQNÓ…"§åR¶ñ›‘ß¼H€™å˜>ç –UÑ*Å)¾HãdR)v LSTºq3KÆRΩa²VÌ05r0d™ÝL´û†©U±ÏMÏ;\…&ûøb:ßQŒîÜo©¦ÜÀÒuqÓÞ\«3¦ã$g*‘põ£#G_·e/ŒÎË螨zôòŠKŽj!üÆb¸ÌÒ?ñqGâòAÎyq¸àÖ^hÃ÷T4y“£ þüÉWy0GszÇ`ƒ8ׂ0"(>‚‘ÔGéÚ¸)zH?Æ8ßÀñ1PßP|ñnY®:ÇÑiY2eæ&ˆ у+'€Ùÿ³=2­þhÞ¥—ÜáÞÃLhÙ÷ ã„`zгF'iòUqß+é¡ Éö ¦,"úËó­£{q"‹2:õqCø‹Ý2Wò(Ûâ¶AD%¹× .˜Û³ù£™ß‡’Ù~ó›ÈÄÿ”.ÇŸËÅ!p*êEÆ&;hÓ™¬—ß&¡ü6kèµJ[%uÍ|€J÷{®ÁÂ$#¿ªîQïx”ls0ÓÀ¤!kÈÛzd€2ü]ŠdÈ:ÖßÌ›ð˜\Ô‡Z© .¶Ÿ×þÚÒ³÷bÿ¾èwµÙQ±&ÏÀéÊ/>öW5áªp"HM2yQ¦eTî$ 1[øšf5&nšàhñä6 ´È)BMO›z,7kªÕc9ê±úå-€”TËy¬:c&¾'nÙ¯5æŸIuðk‰–[Àôý’1þÄû;ѱÊÓDmDí8élE˜ØÌÏ‘”£ÅðÏ)ðèê͇ª†ñœ+<\pÂCkÎa÷Íü1qòȾžaàSD`_2ü‘ƒ…}ypžNõ(“ü àHTlà¿Kw ?8àåãb”Ž^~I¹4b$-¬åù.ðÿ!öp–èHëþqŠzRsÄîÄ5--î›ÕÁv§uæg½4Ÿ‡§rÛk²ìë¹åóJ–ˆ•¯³]iP%±Üq2ek&¥9V=çu¦h#÷ïɵ€w«]ÿuôB› TÉm&Ë7Uù-d†Q&½}³}ƒžROáÚiV V‘]M6X‰=æ¸QjQÇ3P~,'òµÝbÅ[Ç0:/V9®XvwrÉþÄGy/¡Sç cHæšb_«¡NåžgòÕžººÚÄÑëãêÏURU¶€F™É˜×ò…p‚Îð·61_ÕÄ´8']þ¶p¿™‚¯Ä”áŒå´ÿ2¼@UXx^}tm:cÚHfj=9þ³¾%J3œ¦W'Y—Õ+4sžpÌot5ä¶àµtÑÞ¿'A¡½X²â2a@[LÆøhFáý¢H°ñ‘yà8õ€¢6sEûóìZ DËEpPÖð;zÜAü46hÐNQº»çS7q@ÂòPÔŒ˜6˜[¼PEaì0 "½¾:lup%GÑQk=6¥Ó™%ü|·]rƒð‹Îy¦ãT2A¤+ ¾eBßû;Ÿñ¸ÂÜJu{~s %^ªæÙ—ôm,¥.•jþ+oÉéÂæ¼vJÆä º›±ùd ç½Þ±¯¾šù7›HÖÆ0PÍzXÞÕË·èwšq˜/RÓS,U?•íÚË„OpîŒ-h{„,îÛ­É˧ä¯Î.BìŒGñîÛÌ {D¸ ´»ÀÅúk«ðè¦åˆÂ{Iä:?ÿÆÛ&uµK º ènI…‚¢ÈÂ(bA¨íècrĈÚÛ…›.+ÔŠ0*NQF0ÉË XH¼u¿Ò—U2#ÐLÍY^´šÛ‡¸Û=½f²H…SÕd‘{þvÀMód‹¨ÐÀh±€Yzî š ¾‡$þ™ ÷œDT÷;yTQJ)BNß‹Ó&ÝGúÍüFQG• ’˜3¢Ë/@¨Ñix¸M@£aá'ÚȪv8—Æ¥ (bo7¹J&Zµ-”ʉë }»ú¶xÍ©mί-@¦¸û#?ñ.Ù g&]Ouœ›®*Î#ò)¸ í»Î¥ I\«OC/çgïWMCÒZ¹L@KÆ—8ì6~ºÂ9¯÷¾ÃÅ–ùe‹âÈßùhVCY‘¹ˆÅ|mÚA}ÓTØ7´Ágmü»Hj¥,òê¤ ¥’Kîà^^Ñ!¿dlYEÜ1«ƒŠ`«‚·‚ÄÜ.rºüNŒ<ìJÊEåÓ9%ð ñ Šþ›))¢ß·²Ñ^â(¢´Y´ 8J]V»c¢Ç[!'^xòßVæ½xZÓÁÞÃB¨‘”¸‘« õû^”åL`Ö çtú¥õߊ—à<Þ³–á‘MµT5—:R Ô•"ú#*{é®Û7§ê5A ,?”H:j.òEŠ(ò†qÒòbt‹1m¹u ÍW¶t3ùˆ’£‹í®##¶A²^Y$5ü þ¢H{†šj¼JÀM‹bn±?gé8ìQÔŒXéâQ’|E­Þ¶H„:àÌüMb^¬µ>ÎÆgäHÁüD*[uØ¡™`¸À@Stë5×°c…ù0æzàO¸fu.Š™îCЈ–F3Ž*6P”[ ÷rÌŸž¢>2ðƧaêë´®Ÿž¹pt÷ŸAÎà–¸ËbºvÍlóØØ‘"á{¾i*$`¸Õuî!Mi;6ˆëèåJrÅ%>Þž‡KjX¥âëxf2ìõ Î+ÿš˜.àÑ×(ÃNey2D¿¦b²5S~.ì°­¿tV_Ãùëļ’2¡wgl&¥HT7ñš†Aò>‰½3,ÿáîֽؙç½Ly>wü2iäJn=“¤'˜£uCç¡ò‚Q{Àâ2RáTŸó^0Ç"'Ó¸gùgª 4±ö€\šŒ:^Ç+¯Æ¾Ä Å싉rˆõMöQaC&H-°mÔ¶(¯ð9NuÑLdU¼†óÑdÊ%ô÷ÞÓsÚ#IzRIÅÆi;+(ŒÐ–éPªªæù~7Å.I m²,ÁÚæ;Q` ÕÅv Ý ~±w*[©;4/3º1^*\òHš“<&`H"X*@è#½}.|yqCëô¿§• ·Û#°r–ù»¢Ì/üL«—”ƒ$+{šQ’T/gÛ½Ô)zÿd—ÏÕ¸h«Ð¦L¡Ø³wYšRN·§‡è„ÞÅÓŽÀUå¼¢ø1%§¬6<‹ÐN‡m¿·Ñž»B²Êå®ô¬˜·MªGJ›¿ò– & ¿¸¬yØ¥À¢´ÔF_eÀö­{Ÿ»¸¨Ðà꜡,m; ù{+yK4”ÆùL³ï#I$xpr¸ÞFP[ Øî;£ •Îómß– /·K–8›˜x ·ÔŽ`=ÜlÁ{ c¾Âµ€‘åóžúßÞ®´øÜÝ̉²ü/RYÂMíÒ¢î< 1Ð#Z«{Ï¸ÂØÊŸ‹˜5Ü̳ˆÂ-QjAX¹22Ùþœ^NLɃ$ž.š‘é–‚5d;ø·XÜ&7Ýhþý®Å;Á·):Oǃ¤ ÔÓêɯ‰3ÇýRéà¨_!Nž«”ÎH~<áXx+8-Ãv.eº¦“G‹C4ÙSô,û‘)¹ÌYëèÚàăµTïÁ¾S]6² R3Џìè³.™·vðѵ‘ìHýp’8þWÿÚìˆÉ"ŽxÕÕ$I.5.Lv {üM{gÚˆƒºyAÿ)ë5p9L¬šýÿ?B–<¥ËHŒ€ig&æ•òq‡#ýËúAŽâNp²®%Ò€z²ÚM`=Ø5áâÉ 2ûd×–sWzeùv69®M¶¡HÃÔ¾Ó®ÀB&èþHð¸n°úfÄ[“‚ZGuˆr¤ž‡üðÂ,»X;rHüdãR¥48&îˆs{#­ß‹¦ècѽîYz9.ã¾Zà[KÝ¢ß0Žž›‡ˆìÒŠ-N|a²î“SsYacÚ¶úË5‡ÖPÞš)4§üLµˆoßA£êößeà†ÀAI?Ž—ÏÙ]Póñ8lRʨ³<¤b;î»OØ£f|#iø9Ä4ImöL1ƒC€L7=ç°טÞö…Yâ•”er¯eƒév—wüíÀÃÂÃÒñî—°Ù×[öwÏJ‡ PP´m§ûÓ3@qްü“F”Þ ÕÌ&¯Æ?Ûý«ªLt×è_åJ¨Ã§/®0Šw´ý‚+œ ‰F_;PÑÑ,G¯µ£ ®u¦3ÿóØ%ÓcEw°xÄwòR,êON‹üL¼îG– €õ3Wt²]&°É5„½ £ªûhåÆFatbp÷sªÏº$^DLžÇuìÄhý,8ËË]ïKdjÐ5򵁮…=¥ñ8& Á:ŠÂV·`ø3õë’g§ÍêˆêÞËß"üH;—Aï5I´ œMÇ<ãÓÁá/@u¡’¬#Ž1‘ÊÏsV'‰Å ûÖÎ>5É5BQ…T…^š¡Ê@ÛB>øA–L½&è`øÒ2¦äªððS´Ù#È7ÞÂÍÛÛäO,l $öCÉõè5¬JîZüKMCØKƒaôbŠ6¦G2dÁ¦k*Ý¡º|É›3ˆvÊ*Àiv·E:¡¹ï2œ,+6uH·Lâ«y ³lïn•†úõ1="– x9B¬`¸¹'^ Üþ-·ÿª të¤F[ÁUÔÁÁh²"ÝÊ.ÔDó»Yö,‡¶NŽ_0%Õ¨ènª DVlÁQ¨¶¶%Íj¾ý,¡ux:°¬Fèé–äê‚n w$`HÌ×›™S§‡¡¾®^œ½ü ¹&. Ú àŸšØ3ÔH1k’DgÏ£ÇCôŸ÷üIÜàå’Ò©K1“Zà«ãn%·µÑ„=åGÿ©øâÖCõ,FCw«¥ˆÜ“Ë 1x?_ y0<ÉTg)÷ãØº$rðeÌɲ²y.kÚ"%¯Ý ¦Íðªž'“ã+u-IõY‰öiXDÁ/Á‘{ ËhÈײ¤…‡[£W`´·†°Ôû'¯Í¡ÛaPÿ¸¾†:-ƒŒõÅ£Sg3Ì?†õª{ôÔ„§ËƒŸÕipUn´¹ýZµðæ•$wtÅ3`ñh˜¾ éŸl”¿îïmaq¦óüðщ—"+hC‘>Q^Z“–Aâ#‘tÄo’6‡W“©ŸP³ÓÿpƒÛ{ÿ:”ÒToÈ-Ñ œä:1@{Ó§¿ñ›ZÉî–8þ¬ÈˆRÁ±ø/Õû_}áñAºPz–èÉí}¯”Mc=kïÐØf³äA÷_âZn<ÐPcü1ìîìœð㥺o‰êä×îØT;±µ©Õ¢.¬r*·Â¦»åX ™Ôè%Z‰†pÿ·”^س¢~Êp4RŽìï7ï\̵ Ì>ÈöÕžnzâIWyv½Ù=¦¬Žµü}\]X®;®ŸüŸF<çðª¡Ì>MàÃùì•2qŸ©‹ÌÛVB©¿À_ò%¾’ ·«GFægš/ŸaS¹ÉÐ[ !~Œîû¢¯Iò­“èí€îÝÒÄñ·º£„%o§&•Ÿ€àoüó³#¤÷&”…ÖQÆ_“5§6ÜÉó,ÞNU ôÙ™^7Ú]a’¸=Œ|LPæ9qMo+(Kúƹ›p@ÃÚu©¸‹§WÖ·à«Âíø@qÜ8ÊD/F­ÀmÇ\õZ¦ýsŽå3ÏÿØäK– 5Ï4ÜAtþ vŸ—®#ˆKò©„ÞÌ|¼÷¨Ž.”0,õM€! h‡ö”¶üXŽ,‰ç„P¬¦¯âcöÞÚ­ŸäŸ²j…˜ã)ø®ìŒÍW×xÍ—oŠ=›õ‹¢ ±À¾WÆKõ–\ªí‚Tº ueS#ζA:ßí·k‚'µh÷1iŠ6!º¤^³ëÆRdP(h’±ò ç­lq Nš˜!/ÞTm#[°Êø ù ù³ÿAHOUßm ¹‡¥_È 2½”tÓR}lã²ÅÔ%ï‡3ØEÑéZdÅXüM,çÁáà®N¼«uâQ›ßˆQÖðByr´ÎÒýe©±Ôe Zqv#Jg¸¶ [Ø;í±Û°¸Ê ¢µÈÂà³5jÝØØ\ÇT1ƒ2ÅÚ¼¹ŸUfâÞìÞü ·­a6¢/íIb.íÁ bÿ]O˜êm[³È^ˆÎ}õ6BÅKŸX™ÖÍ_ÆâÖ7p-˜þÜ<’„œy€¾ؽæõ£ñÊÓN]ƒ™örHÂõ¿30àäŒò9_‘Õî½á½ïHBÈûŽg]Ü8fç‚Ä%I÷p¬Çö+Gx¸ œ¾»ëÝp„Ž÷”Q ´ÏAµ}Þ´CÁyÅÄdK¬“Ý 3æÔ²´I7)';ä#z°Õ;ðü†dGF.vÔâY¥TY_-ó:ҔߣÔ²%þú—]ž–}xŸ)kh_B³â£²`\&ÿ©BFqB‹CÐE3.‡†òPË„Öîý°µ•èËÄ=Eåô¹ÙÍ'óþÝžCUÇ-³„2ó}gÎpAt3§­´Ù¾ökĈÕqÎÔw%¶ òãy^Œ¨jóoÁ}+9É'&ßÌa¥M*KÀYÉvA«*P¡Pãú–þ 2ÔhP7.¤8Ê5ºäž?­HSjíGúý˜WÖ  u5$¥lÎåAüLµÉõ-¼ÃØü× =PÝE "fü+XX=öy"sÓ-ˆžK$öYñ ´J÷öÞ¿<ÆBÔD¢pܾ:é©€J^¨K²iQN’9}ì]³‘zë  LgyÌÙÎÓ ð;7øAÙÇ4P½9PR°z*©r"GK¹ŠšÅý÷'rÙ’òëW#N?ëó·oî~™¾€H¡~ʤoß•-±ªà$?qQð(ÎntL£|¨RÝv@EöPOÝÔOÓ]n±är‡{è,záa†¾?Öûæü=ü6Zʵíi·ûÃ"ˆª"þD˜'ÈÃõ¯õRè’÷»OûHD¬]‘hãÝì’Z¼öQž•®ý©‡^fEðag÷ í[àBPÀŒŒD$„YZ Šä‰…ÜÈê$_xX³wBÛÞ8ŠðÎÌ­Wß þ–¼M AgvÕrdÃ4pdÁ½›_ƒd@Ç•%c|JPOÀ}·šÊ¼î–‚5JÔÑž Ëd²WgÛ~î8»ß»sŽ(í¾|ìsÄâyiµtvÕªÛ‡=z¢DÝâ‚ ne4꥔Ôãö¥2^\Ù]<©w-¤ú_üLê—J¸{l âkö¾ëk‘-ä¼ÿV{ð ÎöcÂ#ÃB;v”?@H¤¡X¸É[s´ê‚™+gýNœL›@ù,N@´Ômfq6ʱ۔Û^zø…ÃJïõpKoaÒ¹®Š²©GÕ¤>`MØ:µÏsŒèš¼ÛL¸é‘É=n½AfZ'ZÐhº±l¶þ›öþQ{–2ñß\¿Û„Àn€¾‰ó²ª‘ªäåHHxˆo‘ƒ¥Ô,6¯9VOI]"Ð[ÕfN8ww†A‘ Zn5q´½$Øú#bj.BRÜZê]°ë./ü †vê÷ý†-¨FA,ìa´5[‰6ü“š+{¾ì.¹->û¹”;挆¦3øXGJ¥ŠŸª@#Nœ}ñ=î;"•9I2¡Ïâm¦iADP`ý™è÷L³7zïŒíˆ3Ô áC¨ ÚE¹°ØJd s~ž9³[ÏÁsã«0º«p[&S°Ýrawz– ŒÏêeó†¨Ú$¿ìªªòOd*ÚI´¸¨øä²SèJ¡´Ù#‰¡„¢Èç¹WÝÕã‘)Ô× œÖ‚yêC=ua¾/,KšüÕX”|ü|¨Ç¢öÕÌr‡´¬ÔmÄzk'£÷Îa`'ÉÞ/çvqðk¡äዼ¿Ê¡5A?òp²þ®êeæÐcN˜ÀÁÍý¨K; (cgœF<*a ôâ±”<:ô*ÐÖÃîSe¤òY|úÿ]Æè9‡*0c³óR¨YÊ‹_&lµd›ãrs·eì}—Ó^¥é;Þ¦×VE,3²ÙÄy]@5i±p9ÃÚøæ€Žÿ´•¤[ä±êC,Pj¸t3Re~8°¥c›f¸9 ÄO½íµÁ@™¶žƒ/‰Ã”¸ìµNëfE}êU÷=uå‹ua¥ËŸ›­øŒŒóÓñ‰ºX-ˆG‹P@UÕTª+°©;{oG_Ò~6—©Á,_çŸL¿ÙŒ{n©q‡Ïð¦$*çª6NÒß È—|¦—#}4Ö‘ï^Ôÿ¥®ïP®ªî¬–G‚ú¿Õ¤v€Ê Rθ&ã3hö ‰7!j.´ò9-K$ðøc?þãÈȆ‘ 2þRÀŒúZkÆUaåyê}Ù3R¨Ì·š¦ âgfÁmYÜîÉ" ‰NžÑt¾ÄŸ0œ²?¸J0Çù¸uGªû_at<<É©:ê K8güM1Ù¸Âg¶*áå’÷+8E=ØÆ…×ò+Û•±I'f—‰¶¹èú«¹­~}«e©y~–ômã+’á¸ÂÒBÙ YÝí¨œÏ\¦Í,ÌúuSÔŒi)@%õåŸÃñ¥=â§—ðu`‚6À‘në¶ÃŠ<ºõœ» Šî¯å@±cÅ«àNÃ_Ë­O'ˆÛpMÃç¥Kt]É.ó7ˆ@Øá4¤È ¤$8·íj ãfr„%q5œäÕ ýbf&Øs"õ’¨êI‰{”„{Ôa,…»á¢,ʵß]-­¾D¹W#érÒúOggS€±U¨ävÇ5‹:äû÷÷óÿÚçïìêîíãÿcèèçïòÿØÿéíéñóÿ¼èðñïöòÿÚÿ<à×ßãæåÞäèççäÿéêüX=”šäç¹ðÁÿV;ޤC´œ(rüJX;‘€&×$ð—Â?UÂ>ü­ìg,4‹JŽ <M»À&vÒëÝܨv¸k jÖ´ÍJqhЫ6 Yæe5Ü+4Gã Ü ¨ò(¦ÕÏÞ»ËˮԄSAR¨üLªH/ç~ÎV¦á²ßÂA•Éphí•òÝžbä7Æ«Ï &öͳ2+$+5uxÞ%pìŸíä9ˆüªy¸Ðâþ,Æ×4g«¤j™qŒ’J–õñ}þh,'~!Ò|õ6¦û› YÞšŠÍ¨µð3†­TYßõB!†ÿmîp9Ýu‡Á+q¿?舓–\p‹E®ûL_"²šâ®%R¤q‰öA)ÂþçaPTd­Ê-2äsœa­¿Ï£ ¡i¬îîžEéÏ+#Òâ>ø7AÆ[­=}úº¿É«ÔĸikHcº‡õhœ±Õãêý[Ü<ŒœŠúê0—ð]jÚ J#p,üM:Τ0i²Èdž >~òÕmúŽ'®Ì6Ê(ˆ˜iÊ.♆½G?­ a§ë}×劆~n[’;íº.«ãø:qД«? =1?¾ªê9ªjÐ÷âàu=8ö÷lD.¹˜“ñ“9“$Õ«¨ö?ŠD‡n¯¶Ó©Ç;¦kÓ´‰A©îìrmºœÒbL£ëÞy·Â°]¹Õ¯þjþÍN òƆ|Pˆ_f˜TUÉW(ÂLD†<„¯ÆŒ-7\ryóbèóïF|×[Øv×8@¶¾(bpûF‘¸¸v¾mãù½mëq¥©ÕXÔfãrÙüJMìÛFt᛫ 5Ãòî š¨‘ ÉSç ©º‹¯Ž31¬›DY$ìçøʺ1Ç YÞ0êL÷gI$lEi,°)ÇU°@PMÆ´ÚMl«®0›‚üë=éËÆÁOºy°3ú…Ñœ3êJ¿½à„‰Å×úIÅ/U»¤d0:boo ¨åóí`Σ†ærvîàwý@¬©j—·°[ÕêÐJ)lX5îïc›˜¥WòÔ”.[Ÿß„Ô‰‚Íx5‰Ó)ÉÌ«{ÜØû±ÁoçogûêÞÏçì!KÅVŽÝ‘Ïäàž±)«¿….¤,ü/OЩ6@Ù~>"n k#ªCy|ZÂ/ýÎØ´­Ë™ò_ÛІ‹§B.…£È뾤Îê}ú/u—aî`/÷¥Öì°¸Çͪµ§’šÇQö¢›d¿±4Œ¼%CxÈÈ€`_}ñ­,PXW‹I0¦3Q -°öœH?¨‰¥¾°_¿ "îc3k!í­º¤ÇœŒq9«gi†r{À<RgÒvÙÝôEhàØ ÕÛ ÂžÆ>»zhNç"ä)«q®Õ y°N…Ý›fëeû‘Çï͇ÕogÈõI‡ÕÄK$µ›ŽŽ·³„Òåá1ü{<}„xf}#Tß`õ>ìÒ¹bªÔ¸ïR¡VÌÚÝ£wON CÞ£ÖÓ!Ð;óÉðy•‘Óë99Ü…"·{¹Huž†(cØi Æ(1Õš}Ø[ ñ –¬Ôî¥Zù¸,~Øw q Ç·bxgævO²Ÿþ>BóQMF‰4íñZ…(Š­"}Ùô;Ê…½$…$Š&YŠnOÿ"âÚ B˜ß³%­ç”'袳"ƒ^.Ùá@×®Û€²jÒiéAÔÕÔ‘Õ©d™Ü,ÇmZ|s2™Ã˜l†Ò}Ÿ¤Rs†(ÇpM43îùXŽ|Ì›‚‡‹L•íúÆ…¹Noêê64 zñ£IWþàFæÎÙË¢DU'N3 Ž£™‹Gd+£Yz!"–kãÃR¯“ƒü|Z™«G‰OµçÝÛö1?B–1Êh8û£ßa’7F„\צ«Ì8If…hì•lªjŠ]“©ßî,I?ý4T±Á`ôÌÂ’žç.™‚Y/ïÜXjøæ‘° ¤®Ž„Ùƒ ¬ÎõFŠÐœ`oeð‘pé­¶|ó¦üA×íŒy[ÿ_¯ú™Þs‹œLÃSç×’ë6´µD>VŒj_ŠWH®É«¤šûþüJ˜‹læ 5MÆ$¤²ñÛZJ¥ñÃzçó¥I Ïæ“ç<³‡ŒP?™9h;¥"’Ͻêüò¡iT£ˆâ5ܾNsV"ÕhBgÔÎA]VÚ" |AÊ›2‚dz—ÑÖß§`™šëçÎ;©ÿ‡`ïiÏðGfÛ 2ÃlÍ,_]®þ!UAÝ™mî,dœ®OôO¬ñ*ø2ÚºÎrWà]¹( *`Iâp‡£Úg*ÄK³¢¡@™‚è”\Ëãl—VˆÈ¢õ ãÁ C—" ¤^Ââ u 4 Ы:µlà>D<õ3üKǦVˆòEhûvÏ¥’oMηb‘·ð‘‘…‚H -¯*óA¤¢’ònjƒ ›%†“Fò¢ÚŠßæ;iQÚóRfpšÙ±[‚Ãé¡H1€€‡Hu»¦Ç|Œ_ 3èúÁ%ßêôß…—M ÞFªŸ´™ ©ù¡•F\d°“îÇä°ä²}{ðRO8Yf.›¡¾+VÀy6 3£Gç7[$4̪³„ö©Êç3BúØÖ4 cx¾éuo£¦›ù$½KÁø®ÝS‰ÊšiÚƒ`à“s‰°]Zk% 1VÑ®=ÀXa‡·Š„$UŠ;·ø¾Á]ª W‹,ø¶Ù@ÐY.*Qo÷ä³èhb‚Ÿˆ¤ª9¤Z@ToH3&°/¦ ….«m’ü1‘üÿ´\LxL¸³‹°èÚ5¿ÑþvNòa ®v'çš(ÏÅëJè ݵ%g¬cSïC0õoµ¥U[Qæ°|Üßü!) ­×eu„þÆ>öíïÓ“O“1ÿ96s~¼Ëë!ì'<‡:clOÖ‘¨{oïm~S©Òú @LUI뿉Ñk.Jj¾¼9á=oÿYlFˆ."wŠd?pès—Õ«MÞc¤àsÛ68&@â&=¥]Ó³÷ I {—+ˆ½ÊEb`žœÕ%(:­¦Zf|á:|«û€ÌÜ«õ8Ã9®üÆbH¯<¤ ysuüèÁTkM|šþéôjtèàȶª3*§o”©ËDñÌŸŸcQÐÑ'‚¶ŠÜkˆb•ptS·“X75ÌEñ¨j„V.D¼`ÿæ5’äÏrá<¦ÚcDe§ Qc'AZjDÞí„›âGø NâQÉe”±n…”Ò©Fm—׺Ã1dM¬¿"üÃŒ"šÕo±Ç?Á3_úI Ê:Ö ý툿ž½Ýní¶ÑÞþ2Ÿ„Á]¨¡œm.ë Ë&@—¦èv~ÆQ%ˆÔ”9þ~Ô öz„?ZUSK{Ïb"üL²ß…_Ñ´òƒª#á1…ªìþ½bÚ˜&;{ü›‹Èw´ú臼+†Õîó`‚×]°îv®n &£##{~sa›…ç†uRE'—RB%̬¬zšfÚ.e'ñGu2/š›óÝnþ¶P\ùžãýÌv='ó|Ø:÷x˜Yó>¼0½ e!Yûäø[ Œ¿…¯ó®»ê™Éåó)RºUÔµŠÎµ„«?O¡±Ð’¡W˾:;ǽ-ë]€ŸŒ, Eug'j¡î(I‚œ—9«–ý˜ùyš’£\…ƒsõ“v<Ï59ð+•+üLÄW£ÉxA3è½\ߘ.RAÉ[gµöÓl¥:5Þ2)ç4ÛU„àÌÑ8ïUåD'½æÉ€ªõNÀ}³ÞcÀr$J· ©®óð7­ÃŽxÿI×® 7ÍxÊÛWÖ,ÝM"ÑöÄ$7ŽxØzÌ ÿbè2cè›› ,DEhë‚:ªÂ•‡Á•%åé+O-]øC5™^°ÔIµ:HÏ[KŽí·.-ÅOrVÊUù(OÁP˜§ø·kv`÷ÓðÙŽqôx10HŒK„={­äBnžDÆŸÄ}ŠÖl̾Šîbë"¹Àü}bH`µÔ¯ú¿! y—N¸¤ŒqÀ½Þ«N­vó:Ñ,}¤Ÿå{D¨~À ÈX¤èº ‡†§ýyò‚OS11ÖÍówv} V´»ægƒqŒ¦™ˆã·y NÌ13µÏ™.ú+ç§—í}Ø€ÉYõ´Ñ°•晆wþ©*bNævu„´ ñ$¹‚Š §CAŽÀ74{¦»OðÇ2éèØ¦ê=,¹’9†‡øq4ɺ@tY+,¨î.Öõ÷»4ãs•æVѶ‹¾5;HýüŶ~N‰\ÐvvÁë1é¢õN¬›,ôrFeyvÊO«J/«¶OÚÁ¸êh.?~Àz`Q„hj¨ÛíÇ  ínÄ"¬…9s^ ÆÎ™òuÊó%M¿C£8ëÌ e6b¸ «a·®p{Ò=~<']gªÒpHq(€·–ФÙÞðIv$–fÀMã1çVëÌJž€7ó?O®îü.»|ælá‹|vC ¬¨+œIÕˆ,ºlþ²Ëmbynðd‰¥on—³½Dž2€a÷È’þÊ»ÆÂúŠ2»•?]†TŸÐGÚKî´or0§aL›~ÈW«G¾¿Oϵ…1érºÅÓ]ÿµhË6ïŠ –Ñ¢-F$Ž8.ΟÏäš%‘ñ-9[.·~_¦~‡¨ØþÑìoÎÆ–Tu=Yh lÝ(”Ñq½ÃJ"»u„#L»cg“y£eQV_šF|¶ù47I3È×y\# ÌéøÃåvÉìÖ‹Ç ìNì=|ˆ™Ç^ÐÛöîdíG$I}_|Øxº¾ÒÖ¨ ®G»Zö^˜t°(©Þ¥óû Uäã ïÑÓá0ÁeE‡±ù[Õó$Ʀ(@_öùѨ¯=s[«ÒþþU>@=~‡Ökiˆã€W8kö»QÖ×!â!’/‰˜̰‡ü–Lm@É“M‹>Pâ¤|ÌÿgF(ˆÆ…#–Kå"}VK%Q“· ÞѳJÁ½áXóý_’€{0˜eÕ![¹—$ðÏüX áît~ŠÓp~›°J'æ82çÛ+ڞ0?zXy!I4°r»ôß @ËÕøéóŒ Þ]9§ÎQ4òz›x‰Æô=¼àÉ=¥µ}vÐð_ý˜¥HÊíw¤*µ—ŒO«í÷1ît‘êz–[5F­?iR·Œû Í®#²ȾK¾Ù]ñ³å†QÆþÇRç ÷mÞ9ŠÌñ”HÏ®kIMÒjlRÑ z¸í%9£Ñ\X£X11#…Å´Åa /l¨N9Zl>øŒôüµBìlxƵ£~–FgÝ+‚Ï^Ðd„ÝsñV0gúqÛðw¸„®žÁ|ÆXúï*Ë• ›&w¢íVwrý…˜YÈÈòÿ‡÷V] ½Z»,¾¥D¸üM .ǵxäçbpíÑ+Rwxå§wï—–ƒ\4ñR¸1Qe·«ÍÐã® ZŽ)ž$=m¿ò[ˆr¸ìÃ… ­| ÙËegéëá,5«¿d¸i ñJ‰t-ç©]xãÁ†èÎpP©_ßAžœÓ´;:GæønÜ €?Ÿ«Åp á„`9AÌ¡(ÀUÁpÁº'ÈýåèÖ§[ìN!¦ëuÔ–Ð’Áÿ”ƒD—ã1çMgÚ¤Õïõ/Ú5Ä«Œ‘ÈÒEæä· ‚7%¼°ÅGм›¶í„3æ˜oüL©5Œ4ÿ÷M³˜ìke äˆ[ãnŠyù¡7ì2˜ô>|ÖØ ÒV²ÛË-Ý"§XÕm_0Åãžø‘0n.F1¶zÏ5ªõ_|‚]©¯{Æ3¢Z“,d+¾×€;3 mɺt/dD6ô=q!Зi”bc´íë—!^6B!$<íîï«!§Âãn_ý‚rjÅkÍ™j®BD55ñ­=ã8,$ÎÜ«¥|2Þ'½àýHo@ÑïïFµãv‡ARúL>þ®%=Ùéû¹æZ {|ý–6´ªµ?ÍE$|c9HF³¦ŸË*Cä׉ºôÙ|/8q´‘6lúøìúÄQoÔVç¡4W÷9 >ƒr ±¯_öeF`†Shz¾"¼¿?´){ט¥£æm…æYÁü|ªEûu.œì¥§s©QÏúÙ‡ã, ‘<\œ]'帮mk½ª‰¢ ßl¾sRª3[Îê£&n‚)CãA=×Ò̋ȒB¤©dMY—eÅ‚±° ¦šm¬ÃW”Ý_¤ÝàK־ɕ" ÒòÛ%qàåQÅñ²ÍÛÌÕÖ£uËíÕá¯Có_,`€:âU›(þOhyЦiïõT#=*Ø4&RŠ‚emî4ío[O+÷‘€u +("YÊ(]|×U&2&}[ùe×p#vŒQÇmƒµÿ¡¨|^øEÛ’•ÄÎBõfnÕ§ñZÂÛ¥|zMÔ69]̬¶<|T”ò—A³Yl!ì³o$„ žd¹£Ù Ä\™<V¿òïµô& Çç]•QÞN†*,VØÚMÃoR54¢.]ø31:ÞsžÃ“7×d FÐ|±;€²;èòç~yÃVáZX4ç—²ã)Çž÷¤ÇÜ’0âT!ÿÃÍ`ç@hxµÁÄ$¬•šõ‚?+}°–ˆA­)/ÐÅÿÀ4¨£—Óºé*½¿z¨¡¾2ÿO'„zûÆï¹ÅÞÙöêÈú€–ü'äsKܹ¼x 9_…tù–±æñ°So#ñ÷í¯Ï,š©è;hùéòP`2£ÛÑ7Á]³vSŽL¼E)Ä— ¶—¿þ†l` öÁšG䦔‘Îé¦F‡3LüÀœ¾®mN#¸’4õõÜoˆð>Ö,¸`Ú+îá¢¨È Ü"ìþ<Æx¹rgÙÛ?Ý­Í:Fr|•îgž›ƒÝåS2r)±¾(ïpIxMr¹šÿûóD­×`ÕN„š3‰…²û'†áF-\bÊ;f,ƒ— ›<ÖQ==ŸAæ=îLÑx¸ØzÞ^¼üLÅ*Ô"%="NtH "'LÁÓQX²`~²Ê\Lû¯?M\Äfz½#㟩°‘P9ŒÉR,LváRJ¥ŽÒeŽF|ƒÜ³F‘'­x#ßó­VsË#º&ìk=콌­y1k¨//õeI•zG =ÙT=½ö1iÁá³û¹cuSÈFñÒŽË ±âu÷ÌŠÿÛ. ɬÿp1H‚ÉÀ˰#´£gbÈ­@yJ£iŠ<è”bÖ:§Z™Rº?¢#èâ(ñêø×ÂÕÁÒex7PpSM¿;:-¶Ž82lß’&o‰¨H²ü(y+d3L°æŽbcqd²„0OÇ8Ún&™òX’È#Ô$ßú -ìxBù[Ý ” :Ó™†i£7Éý%ž­ ±§õ"A$h, ì¨)^q•ãgT—êLY€~æWN4v½€Mû( s(k½¬ËÞ“Y‚ÇCÄIQÙÖÇ0yÖ4O·°,k2,¦³‘]*ÿÏQ®¨ÒÞ` ˜OSþš0^;›R¹Êå®ÈþR„Õ¢æ_ ÞÛ¸cõ¹&@Ÿ[oNNÛ¢>[º?‹>R÷æO¿©+RĘ–Ò ³¸ó]SgYqÁ=üÆeJ h²Ë NÂþ6¿ 7=0OVñÚ>Ú{°°kù4¯‘K¼p5âB½S¸2sÝùM]~ýS Ns¿ë˜$•Ÿ²BÒòx_oã9v|sªÝP©±´%>œ^Uº¡àq„áFož™»ŽLsù!’³ÉgÀäŽÅÄÓß7’¶äìÐSމz~.9%)‘ÒªúI«Z•—!5Îj›ÆêÄ„Bg•ºKx»p. ~Öä€hйGnàŠº6´d/@¿ÁAÏ2êð¥þ|í“'+`]ì©6¯qbû‘æäBXu¶Þdk+´ÿnb'àÎ5…£üÃéIYaðz‹u€²’b‹øÉ3‡ŠàV®€vÆUn ˜çj¦ÍqŠA³@dÑCèy$·ù(æ;óHgkä ¤¿àzo2˜ºÄ{©8:ùü”Ñ`È ¨NB¹ÀP5Ô¯Ýæ#1¡J«ûè‰?½c±ÆÐ÷gÔ4ç?OKðÂðyÌX˘j«¥'9Ãü®­ˆ¯¡™>3 a/p¤ñÒ ˆW ÔÂ[ÛŰ‚ihÉâÿK g\dô:EX%…¦ÒYáσÞ¯GÍÁКôòun Su>×õ^~O„—;dcj²ð,CÉÚG¿q¤üÆ'Ò1Zâl+™dÐÔP¯¨;#œË—xÏ‹»·ýâÐN¿]üa|mz2)èÑb!”£$û—?èÍ Un` *K†_ü+´‹Ä»^-è¬p]»CâÅýÅAƒnVëØ¿¥ŸwVéQçöH”› jCªzI¡ñ£O-ø r„°QÿDf˜q¨;ÑÜ9Ae°Iôa<ˆ¸>¼È÷ª$ŽÆXkèJb7uÂle–ðÄí@k:HêY•ôûéÿáWÄj!4=YìŒðÖ•þ´æâ¯£r"È&Lˆ­ÞGRÅ‚ Á´a6ý6Ôœípm å¤üÊbfF` O¹à×-5@ïW.‘S/½0 äpÚ[÷§.} K€›l*ƒFƒ‰WMOŸëÌâ #PÏHc¾úœÐM4‰– ²3ÉAêH—5îk|­éFv-¶ƒÚe EeY¡²ƒñý Å&(Z. Ü·ˆ³ ³OkôŠÈã.èž`¯%ÆYh~ K`é?€k[äq+oYËâhù”³ìþ‹³‚‹í-KKwqåšœ¾TOR 1dx©°Õ+Ñ´n*»:“Òêf>'lyÛtœo‡÷Ãß-Õ›å·Éè¥dKg 2_ …¯'£Œ]¡Ï©ƒá«cx^UM]B^îžûJ»p§ñA¥üF¸÷?·2c)B©#þu{NY¼÷ZdE¨A£5òÑ\]xе½Åî4Þ4·oüæé&ý&ÆWRÁ®[«p¿pÛuõG,$ 0¥9†ÎF®ZgÔ4Z>§¡Áªå*‘Z@ìØ{';.:Í|:§äS9+,®°Äˆcû\’!‚Á1ä„^hY ôXGúQ¬—U’óTXŒÓõk8ʆ†ÄçÓ^òäÂ^k´—W.?Øs“¹NÔ:gµL°Ütw梧ü7Ûi0ûLbû]>ùÀ£ü|´Ã£Ž#ó¤×$.~Øb«ÂÅŽ,^ºE›Ù}ZÜ`ˆ 5€¥¾9~bªŽRñ©nú¸qúC4Œ5Ô~[åa§à¨IF.$ ®khÕIã4Tób‹¶l3ÎMFŽ(ÚiuÞ¤PÃ!± Ú­†Yí„T¡\åKËD ‘ŒLg{ÃÓnxã( VÙF4+KƒéaNÌêRº}ñ‘Z¼ë&cÁ(k¬ÒšQ¹âݼæ˜k¾7cº-kÅAå°ö‚Æ!Œï¯Ö ëpÓ¸ðÔ¢4p`ð˜¡ÖjõÝ8ÇûÇ#/&Ù¥IÕÞ ŠI@ºðXÂ?çÇfáÂð[uh.µÂî0j{À1¤è¶}®“š—;üÈÔ²ÒÝ8¥Ðø˜ÜŸ/šÒ¾àmÅ 8Ǻ¹{ýo—ˆêƒáÆËK)ÑEL¥[Gö À³}ÖÅ+‡úµ×Ù›˜´X'‚#j„® ÀNв¤"åƒÕS+"{›”Âe?ŠYl ‚µ«; šåÂnŒàá^%·Çš³öfálj¯­p=üL¯•xñm×p<Ó£ëÙ•hÉdÿ'ÜïöÑ`€†v¶©ç£H¨´”îYbŸx`PZõRivPØí¡q*æs99ÃõlÈòjØ}Vá,sTÀ.•‡£Ï‡„õE蔜T©£©„”ÏïÁ€„ â÷€^OZVWÁçS¥ëè°ÎH¼–ㄆ² S¿…½9½==‹Ö‚ÚjgNɺ—AæªÓ³wÜt-ac@gÙ&Õ’\c'¸êÑ8Ãñßê8åßÒ§\ ^V¬ÌówÞ½³ÜñúñÿkžÉ§ƒZüK2©HR $ÔØ_ü¡ò´-÷ðɽœ- ‡޹1‚÷,ÖÅ¡—4á§=‘x±Å*Òí‘ÿHi£ÈåS|‰¥¸Œ ‹È\l}wŒ 0ñy”¶0qUž§ì«À,(ÃѺE*ä‘°µoáßG1²Ö]}eù/’"™yŸ^ Âíª'áÖÃåp²Û Äm¾kÎ;X¾#ltî¹)ë´l~D«®¤ÄßË,•Ÿ÷zLyíž‘•E>ppÊܸrÞЪbDù)¦" Mà÷ŠÝ{·o4Z ­®À8íKà¾üKà +Gßs±ÊæOWÈE•¸oŸæ£X„4$9}o—ù‰U·ç¡÷Ë)ê¨wΓ2Ö ûnI¯å†e8}B§­=tñoé%cûƒ–S¼®ç²È™¼´à"–d©K¿«€¶Ü™Úò†+ š°=Ô5¶‚„*'Y<žfT&T㇓æö8C«·]¯ííS¨ª1K½„ø¾o†³>U)85“y÷c±ð¡Ñ!‘ü®­WÝã¬2¸ñ¥à6TùM ®r¡ÇÂì(ï³ÅPx€iÕu!ŠÀ†÷í¯nGòäª!ˆüL­’›`7±­9M©›ŒB«­ßÝãGT{ªÞ?¡KúäKùƒšÇ"©[»&ÜSˆš‹Ø^嚪öŒ¶Ë,8rs^¹|)è¹%BãÙðÚ¬L×:×Â#÷`¨ŠHÝ«.áöu|YÓV,9X[? …âïd»›ˆ«Â®.Ôù\f’0#ðÁP|h}X}T ¿ëÐë)q î}†fDåÄŒÎÁjà%Ë\ùkð_VCm¹¶hKà_vˆL>Ž€? ©©¶oD6ERPñX–‹u6¬¶|'œk€(X Lº¼MêîB‚ê[Á­aëBŠPá8åúQ“ÅG¡“ AÙס8?–-¼ÖP ìO¥ã(cÿp+¨ŒÀœ‰h Šeö‘cÀ}ê©*²&å]²ÂÒ´·÷>›gÛ–¤gqžn8÷ÍüKÓØrE¶J3l¨¨½Á£ú}‡`ž›ÁzRÓ`+ù ÿ^.‘§N"±_4ôOçÂËlèU¤)eU dª9|hJi] •݆ÿ}ëñ*&§‚î׆º—œÞxFF“*W§Qb~èm}?´'JÃ*é/¤=pÊúeÿÖÎ ÌÕêL-€„ Qe©GAd{MØK„¾®1mÁÈûðpö j¢Ë§2 ŽYŽÖ&t…=>„[[ÙÈ™ýÕp1õx“­/Ž ´¤àp>Mý~i!(ûOèÎ×)û—â~(»üLëäæéûzÚµN‘Û,ö€`®Ô|lE– ™ìÊå»+rÑ:^Ń2TΠž€tã/d4yÅÞûÊ­:)c—üþsÄN¥™[°W¿Õé÷yÅQ«„òp½á§éÌ×Ö5w€ÍSì²%¤3ñÀ.<`–îe,é`¶*óªäYrî˜!àÃ"±7'(‡šÙó ;«ìÁWj7Ìò®™¥C• åuKMª ôÿ£ηÿ?€9òv„¿Àˆh'×fYÒ¾tübúM)¦ …OÁðü1†»•Q+"†K…ô‚Zz°² ‹‡kˆì´²†—¬ÏxµJ/aÞ”¢tG?E-N;Aæð¾Ö9¢2춨z¾˜×ëzn8±¦§,p(áE5Ùr„Úzùf4Ž) ü5òèTÞÝ4MU.½ã³›žÍÒ²ZÄó¶פ6œ¾Tɲ"ÛàFÚÚ§ºÐ‡85Ê»LW„¦ùo ‰%ŽEôanàKƒÉ¤"3EŒÒiSµº#9:i2xßÂ"> ½nº‚ }_È« ÊUµm,°Ô’Õ½væ®(žµ]ó|0‚ˆ‚%¹g·®±V~üÃî~ž`ä„‚)ÂrA¸ŒˆÏ»“ùK(ÃËtÕD]¸ ¿¢ k¨6µ–§5X¯ë"|•úBj+:…2“©¾Fƒ´‘ ‘Nþ¢…!òuRPʃÙMGàlß¶aÀœ7ßJ‹TåQR`ëcjŽ]ír9bXÌkK `æÌêÌV s³¾eiËc05]¬ôŒÛm´cˆ|®aÜÜêDð¿Å/z"À*KU“ž?´ç•C$b§‚ÌVÅÐàÞKvçŠ*œ¡ïPæÙ¿< ðõ —€vïn2¬9IþÂQè2ót¥üJΫY1-63»ZºÄ¥Œ'CÛLòÕ^ì˜úUíIO@EDRãdrñˆ©y€âYA‡ŒŽ¯:³,(33œ}°¨Kqô'îQŸ‘£àê±Ü;ýO`ˆ/b…:ê´½ƒÖt´01Sìóã«ÍŸàkh®AOy\fänR-DZîâ´auP@wº_jo—HØ×?o)ŸøxþÑ$ 2XÔ_SÙˆ3¬ßÿZsm~™‘­Ðû¬Ä@©,8# _W™þ©\éë¼4T  À5/*Z”N]Víü6Ãu4@{3…xüL²–,Þ!ßSÎZ„mCЉ@-@Z±U0Ò•ð÷›a¹J:éÁm =ÿI^C‡zbÄÀÐ/1;VçÛW´c:M¾Ú8xwî-µ=kÃÐã gŽjµ»›è_Ò Í˜A¢ø,¢W ø¨òMRÏÀ¼úJÖo!!|–m[3OQDü¯Ë¦§¥°6ÀÜpO[Ôë€zf¾A*h~°e²äæÑì(ªø£¦µ¡‡Ûû³œv½qiu껇9©`ÆêNØéÏ`¶¨K@}sÜ±ŠŒ½¦U&и°åÅ6‰@ü|©åHØ}ÀŽXm•=³pzÑiB±8SjðTP@íªŸ!2¿@ø†¥5*¡Ãýtý„;ÙÌM@ÝÐÝU1}g-â÷NMê˜D ü4Vûp&!,A~^9`‰«•$Æ{±òð¥§&뉵sžUsD÷ß?À´p ²`~Ry-}J'.¼ŽÄAüa\Á ,JkFÜòªÀ%Ø4cÚšßh$n?è‰ã‰P8¯_£qôYeÑ$7€üF2³9;§õyN'wþÀ²(Þ\í(œ/K~„†¦J±Tõ‡Ë„7÷ c?Çs'·ÿyiþñPNfïÐô3nLÈzè~~»ù°“¬\Þ¡ÔNñǽÑ´k§KGŽ2·ÓòFúÝÉr!d°?_v&†%j%QºtEgdhÊe›Û<è&uß{lˆ•‹ÆÙôÔöéÆŠÐzÎó[‹¥£3åÚC®Èê°ãÇlų¬Hî›(>ÊVáZ#AÄ„e°îi7@õeÙ²–t›õ~4Ìü1¢ —˜È?À²QT.¾Bµ‚y†ŸlBär[/M°ZB@ ÚÙ˜¡6dN w†Ìå™Ö‹ÅÅä6o¨ÇÂÕTQU^&¢¢Ä‡G67ýÚ0ühë{cPó¼þ.| cŒb–ÿy„nÙŠd6p\-^}P¦Jg\@×TèÅ¿€Â ™€müL¸n’Áœñ›G¥HJŽ™bÊ,ÜPuf‘çhA@º'äZˆ†©èëâ3ñ¹KQs=÷÷ˆG?Pçð áú¤¾ ôäl4 (Ö&ÏY%Nš‰Î‚°ôV@s©s3Z’@©ÙԻРƒS¥X&³Bë}‚dÇD*C%ø%¦VFgÐ2/+xˆCÿ𡹠“eÌŠ)Úi]¢Z­qÖñgS®¾¹<S"6‘@c“t?)ån~¦ÈMdïôöÌÞí¾!Ü%ò™ºÊ~؉}×Ôˆp°»Kðnk¦è'¸ÜÀ­¸f;Ú‘›ÉYOggSmV¨äwnt¶j;éêââÿhÿ5ÙÎÐÏÓÓÿ2ÒÿaóïôìâØðïøñéÿ0Ýëùúÿÿÿgñóðêéêÿ\ÔÐÕÖØ×ÓÕÚü1gH¬È½<°Ä›áÀý}¤„åómHªñ§áž¦^¾Ê+Ù@ôjºZ¥“— o™€ËOÓò¦i–ĤÚ*ÚºCœ…¾© Õ4¿¯çÞúu.Š7äæÞä\î–Ï_è“ionEM,$¥Sîª#,¡6ÄZÀ—&P~¨B¹‹ßÈG‹ûg‰$>ð+Ú·ØW0 E9õª„w®å_‚&+.øtLqÉ_»ö|´Q§#y ]«G2A£°2Y+¥2c¬ài*ø‚Ó—b'ÈÊÝ6Á yÈ"Gr[èÚ¸šLÈ T¼u´Ž”uÒÂrŒ Nî æ†Òå±³Á]õe%/ôOj™‰È"×#). Nßùµv[eÑZÓüIâi¨bb´FVÖ±ªF«n¦ÂÅlõIq%õ®Œ5PÔ|áJ”MUX¶{‹÷VlaãjÁì ¼–‡YèdFЬîë¸QÆ@g†Z/|ƒôËd™;>€;›-u”Ä ÖuçÊÃâø¦²QŽ&Ž™ÂÛlÔÔÉÍ #l0XÁ-üÚ J™TøŒKÁŒ7ÒšAE±†ˆtI.Ý2v‰|áCŽZ1i¬³ÆÝ`9H×±™ð 6†¢ÂÞ.ÞȪ±Y[#tÙлÄb¢ú–aG5øO EøÝtÁ\Y‚(ÙüÄ}yÏ /Ãûç|ïY—ƒ™# –v«¹øé^ø $|¢˜™jZfbZM‘u:ðH žA ¼” ÑXäp3ëó€w‰ôßcKµài-ÿ¼A{åÈCtȘ®”w2h‹G”x7µ¦¾½s¯M& ž ×)+:iœøÊ@É–“Û…·ú¯`œ¥ñÿ¡ú™|án S¤zÖ%=ÑóBº)Q»Hw%ìiNqêB1vE$ÕbëœùÙdˆÉÀWw:™ ðˆŽÕ„3\™keKï9tÚ¬ÙýÑ“‰†> MªKMY#üÊC?6P&ˆö]NŽéG(ù<\áWg98´ê_í ß!½ƒïÜÿ}¾ç‚W6Ö ›è¤ßø‚>YÉ#1£úëóÇQ),”àŒÌ-µì/¾ó=P;mL~ÂnÀ?ŽÏ{¸ôÜéZQ‰"—µ~vÁÂbôüât–+QLO†0_ëŽnŽçNãl˜ÏLËvLU-ªñvmYèêø¦¬\ó©ìó& EL2>†¸±,]רWKŒÓŽ$#ˆÇk'7]%\ÂemþûŽs‰õqÁ¡ë»åÍ‚˜j:@(båXxÚ‚úŽMÅÁçzVÜÇçæ/P«E¡@¤‚ z¡x«Ú°ÃÿÇndíBÝp¥zÊÊNò †sL%‘¾=ÙãNØÈµ‡þ|cÈýöóüJQÙ£¾6Þ[ÂínN9DPÌ:ÄŒÊèM³Óꨭqhø§öL¥/߃œa‰U{Õ ã@É ®ìaëFõªo ,¹5Ù…™‚:6’¡‰ð±žˆ‚¯*ÒˆÔC/›Ã­™ºÆü.0 Q¸çýå²R‚Yðq|ö5Î<\ûžù†:^dbå÷ƵRwYb—V“‚ÈÛ26Î}¤ùÖ‘õ° PÉJ.ôJã÷0ÐM š5 ÍU±éÝý4Óµ1JÖô?§47+CнˆS—í°ÄÈúPkÍ'~)]Ã"ê°üL½Vßâ="´.ô›ÔO:Oïù—©õŠEsªDYÌvÙø…z© \Æصؗ³¥Eo¹ÅŽ×š«K„Ôà©×0_‰mO³HìOüx4©¶tⲩ«E¸ä¹Ûì(HÍö«‚Joêk EEÙ –|~lP ìÆP;6eæ SDãzÍ!«¾™SìKD“²î_|…Yâõ)jmžD+ñIf¿ú2–Gˆ–3Ÿ"%–¬µwñ:c\6ê´ÂÉê} Ú|/´‰Ñœ­ª4ôÂØ×âxoYä™sïfd«Ü3å­cª÷ H—¾DMÞ×¶ìÌ&Ì£2ß-b*k»ÊkÍ5X“ÇŸ¤{qÿësb¯Ûe-{é ‚ 5¤Lô÷]výk.AZ-7`üL·ëEŽ\z¶i;^7sì<(-Ù Øîxí 7ºÑüÉâ*r/=;ìp— Ñ™ålÖáw#¥êj6šb›¬‹Êà8àÁkG´4£’]{‡\ vœa"¡kkR¹tHïgP„ oí$ ¸rÔ¨lŒ¿|‰¢&üaHcãgùSÆ8â]ïâð²8r€ëÃËÌY¢$¿÷h§Íy/£*²œ%¥x–uƒÅh…ëõ˜Œé•š8Âdþ,æO10¶=í“+‹ïÙÚ¡gÁü6~.îK"E¾8è݆(¬Ž)½õ£ÁÓ›`.ª«6ª_§Ìýs_Œ0.'.Ýõ+<ÇÊ옕"øï$D^t=6e +ü¦W ÎÚ2­Ê76µQÃ>„)ªž$ÐÚÆX˼F±BNSgŒs³KÌO\ER2<#[O÷×…b@!Ò“µ\‘ AlÎ`zR­÷£{Î ÅV@ §ðËŒrŒs€·|¨å‚Àû{…’.!öô»G…L Çt& £Ã~—øÙ“O¥Ö5im¸@ˆ;Î÷ü}\0 ãÝÉÖœ‡aH¤>×Å…} £uîf S[-Œ‡!ÐZù“> “\mRôèbxh£%{Kß±ÐãQƒqÏEM)%î&#¦[—T½÷Öë‹+÷æSDüZ[Ù‡IzM<@M³{!Yò°Vsé¾ßmxTì¦0nõ pb žUz×› I±‡/©@“ÚA!,ƒÊëÌ=,B³Ç¥öF¿kn ÷–l€Hí&¡Z°y&½ì;R)w0o˜¤§¹BÝVð£¶úÃ×Í_Òozé"·‹W´kR¾å Ó8~'”Á¨!.ûU>X€´Ú¸o•š}P{Tß%KrLkæ«§)«{SÄÉðq¢Ùù–qEÜ߆’Í)f£x º§/—iyï־ίH„MòŸ¾ü†2åˆØcÁW¡û1qÔ˜ç„#}ݪÊ~&b²·]lšVÜUÂÉ«ÔÃAl¬VH´âŠYÝe0ªýSÒUUVpZšìMk"_bÇ\ÊasË6,âns¹¼¯ˆf@Æø`Usµ¥«(c&h©«Gôo{ûÛ5µ=½±«™—W6¦–ô¬ªC‚Db\rà8‹úNàc¬’Ù§¯é˜•b›wZ>ƒ2ê«fÔõ“)‚>ÝÙo ‰ú0P.W-|þ[$ò cÆ>”JC`BüMX\ì(þZ:é<ÛÛ ¶¡r›9ù >a kÀ»¬uTsyt¶T4=r·ê›1Ñ(¾Se­uHøô_6Òè³a¯Õå z]àèþ[¹«¾×‡@A U‹¢óƒiUÑv?6Ø*4¼ i3ù©Žbìrê³N~[5$Ÿ·ô(lFÓïf·¼TùôÙÕg3žÿÐÝøp'ì1 }Áv²ð½ý1͹ÆN"rΉ¿äIj¦#µlæ¥QÊ·›ø­¬¹(r·˜¸/ògäI÷ ÿêZ°q»Ñ¿Ïò‚b›ÌˆaŠÂeü6‚ü‘oÇfaq¦4ÝíWƒ&3×/åR,ãììf ×è~sájà•6Dµíû´í¹MN¤X9 >êûkÔÁñÍè¼PæR!~Z!ùž(ÆÆ€¢‹wpø¾önMÖ%N!9;× ¥£Wk°vpM@…DÏ»†^«ÊxÚÆž## Ûƒ‰q×Dš%D«yßö+3߈¹Ý¢Â`ÈâÁ.õ½·S1C@3OÜöÞ±ßi]T?:#7w¹&úµÿª ‹ªx^§Ö›ç¦ä<¸ê·TAW?•Nþcö}¦Ž~Ô •Ç›$,âxíÕ0çü6fe>cÙd±ž_l”iØ,ñ?´ñ\iÔ¯?÷&ÆÃí`g ˆVŒŒdOF”ì †BRÇs‡-ƒ,Œù/Íâ²hl÷R)­å‚ì HmÓn½6µÊü%zš¾8F¸Èù0¬ü Aò·B™>âæWlë£T¬E#»…(Mæ} žáÀ,SĭDZìXô+ÐYtK˜Ûmä6w¼Éh¡ùuÕ½ÕZã¢yškˆ"«ïC¼{¯”’–n`4K¾qÙ¢*Ý9µgwÿ^¦aA˜+'EFÂÜG‚{Tš§¥Ií¯¨2ÄÑ>ÚK÷u”üL½.y¹¨5t·¢øÖ{ “µE_‡@ŸÇÈüM…,¯Ò¹Ñœ9jõ­Ú;NrÚ»°Æ©Íι:³ºÇ?#H¾îìØ"aÛ¾sÐ#à}åToØ6A$N³à@)ó¨Íõx©B´:¯NËÅ E;9@´Â[;Á™Ï{Rµ,mgrSQ\Øí÷e±1‘V €~¢õü¨3¡–‹Æ·‚„óA>¦v¤˜ç߀f¿• z_ràJL*˜]@ÍS8÷2¶¡/ž‡$Y<iΪ~c‹dåš§•ÄÔEt÷˜¶ó~EÛŠmIbê<»ÿôÂä ž@gνڳ4÷N .›ûþ·ÚŽ%Ñ‘|®@D°³é™™‹ì*;ÉKwFŽ8ô]ZŒ¥ ç sÕoëþÅ!tü ñåŸX*.°ŒÔ\ª› bÍÃVëÄÝO¡ . {ß.g|bkjù°ÛTágA¹¬4¥¨ì°R/¥œðf×;»i0¯c±cî1Ò |O·&û[’â¥:ÉpŽëÄüFÎ4Ìj)G[F}þrë܉œ`*’^ƒ¡S·MÔØ¬[Oøxn¢˜W@ê3ŤG¤vÐK8ä-ì°°ÃîeU˜¹G¦ÇY/ðÇT4ži^‹”@šÝ5ˆ5Ç ½>dVÛêF„E‘G’Q™ÌϪ +ø&‚WÞ¬p®|ætž*.ÍûƒÜ~ðËÛ¸t “–Ò3ößú eñhr 9É6ú]K [ÕŸÍ»Ô}²Ñ…½Ów*èïý¶‘ÂSX+/Fy*³¯Ù­;®w†Ëoð§ã*ðòWŽ7s,}ÓoMUpv|ü8æƒÃ‘ €Oâ]î]ž£xRZc‡vZ8ÅAk )2±•5·öª¿D´#–$áÍ‚ú[Lj² hó’¿6ëlj ˧†e²ßWÿ¾ 77ºõ£éèË¥«ßEÖwX ë9Rô½€ÖçÆÞv9K, IüšŠù]ÆJ‹bÊ¢@Mv öÛÜä%ý÷ÆtêÈf·N³¥ëãnc‰ÒµYþÁ÷jîõzÖ Ž'Ay§ˆ­ì}©CmWÀv\§"·²‰¢‚;K£­¿ûãŽg"2më%Oüî•i±™'ëZÉAœÑ«Ç‘VMçu_F-Z*dÐWœ™&Ë\cO—àd¼| >3!¿RÃ>ÛmPªDL°¥"-ÂÔα¡œ:^l¶ØŒlŸá]8µsŸšEc©mˆQ˜ô&É4Eð ¹l¶‡ùÇ0 ï-·zUìHª¥Ý!Ô[>~%΢ôä¼DÐà›£;fsúšö£Xã†{AÜÈÆ–¥#äÐxH8W?ú+'Y²? é„“kš¸¢C,kõ°ÚZvÖCÈÎè,qÇ”]ꛂæÔ©Á{K?aŽ:1VˆIËQ‰aŒ˜¬dsÜTüï/ò³ÂØÝõt}¾CEvÙñ«º=÷“Ùß–t¢‚.à“2Ì+ò®£:Ë_zÁ’Šü}Û§–Gª]®ÀD]Ù¿)õæÿ™ÿ·áÒ [3@ ôùŒSg¨0¦Ÿºí–„ 2Ã˺îÂÆqžÕ~§ûÿÔvÂá¢JÙF Ü m©PsŽ-f«|%nöüZJ[®¡(>ñßÑl\Þ/«*/!˜võÇôņÉ06DüÍÛÉ_§O×\YtBa¼Í¤€º6L¥ ?nL^ÚÖómþDÈSÛþ!!S|ÔÛW.Êäp€¹´ÀJE±4“ü6VÚç"ã½lÏ¥ê¥êÔ’bj¦€·á‹rûÌ<\c{¢ª˜ë"7²fO!² E)žªy`÷ÁoÛ ‡ðñ@.”OzS¹[F’mÃäó° ̃3q*…mÀ…Az3¼WÚ¼æ¨ýFu,\1 BØ@5‹AÐ$6ÀÈe85†6iÒ?¿%ÌH²Ê|¨’ *kz$‘«(À:Üú? >AyEoiä—ÜI®‹Œk‹vOÖ:XæþÁvþx)#âSqÊMi\)¨E’…˜îôr¡Y¨È-H™û€ˆ ‘ß™dxoò•išÄlñ½HWüLÙ+áÀ»¤kþÃÊñYî\`(­ª¼e$©ý¾‹—l+™+­íóÀˆþ((eäûòÖ!¿åÛIëúw®L6¤ ä˜í€£‰.ˆ¶ÏrÇg2Ý£è´Àó½N…Žï[‹†§4ÝëÐÍÊ(P ¡cؽkÜÝ0!Õ) ÆzLcÔ%Brô£Y„¶p˜qÃ,ŽÔvg`8ÖKÙúf,Ç{ I˜%¢ùm]õ+à9æÂÛZìÚ§w*ŸýP›~DèJð™(ü¶XV˜÷}×I•û zÌU¸&cÅ]Ÿx{á‰}ÔQ&b& ÷IÑ›7C×Kü.<0Y !rC ªÜâtŒšofãùd:GoŒpÅ”¤f–ä3Š£uÓ×UÞÀÞ´ŽnÒTzé!ç¤û¦NXÇ[0¡‚ÂÏëÝ F ëÉZq4Ñ·´¿º}þÎÞæëy'm(ddzY¼IßÞ׬®é†Œå…"ù®®Iƒë+|$%ô%á¼Ìàûç|Ö¸iÖü‘!UÚ¼28ŠžÓØ‚ÕómkÄá˜7¶ÙÊœ4îß9 æ¼`ÎJì<$«(êïv£Ž` ;s’ù>‡VÅm6Ü”ë2Ëåä n)wü|®»4´ñvé¿Ü—‘ Hbm)Wz.b5É‚K|^jº}ôÀ8Ãh µÎX9蟿ƒôùP˜¶ô*ÌhDiVî9Àa:<ÝÇ×?}»ÐŽ“õ”‘ä!?#¢è–2UèÆ¼–ÐfÑàŠ‘”üoð…ðÒL®ñ¬àç9“F–ò¬P–É)Yr3oÐ-»£)t4yÔ†#XqÏ5wöí‘þæ` ÉŸë΂“¢Þp $T˵…#G¾{÷Ây#±Ý ü@(ð•,õ+Ê[S%8ò rÚºæyñÿêìÜB°mŸAà<‡+«ºzßs?+”¡9XβOdhÑ6Õv‚ˆ ÒžERöâ»ûù•ÎîÂêXþ„K'¶;N¢0;gXìõ¥1X—èB’LZü0d=ˆZ ×××rÈû¾<±4T™3ù €úœîPÏ•½)°hÇ¥½éý„wq¼¡˜…H!-À·CÌ +‚ð|©€ôΟ\˜¡43ÒÝ(Lû9añ’Ü_í.xö¢:ê¸ùŒ6â¼C€×£¡¿¬–APsÚ1@Öt|Fmh$WÔ?R.Oñ®§W"@b\÷ñÞÑú~dõ3»müä¡)¯ghbž=M€ùú‰üáURñ€È~¿/ÇÏ)ÿŠ»Ñ5|WƒÐî±³zÃÓ©½Â}×À#††üÙ(5ÌêÄY§Wõ‚3œë÷üm»+Ê×ËikÙaÃþÍ̦‚¥'OJÅ6#î$f÷û/–Äü:™¦X‰„KQy½‚™sZ ú¢. È!nŠ |H"sâµÝ·žÌúUŠçÌM@‡ßlUí¢YEÑ_S¤¤S¦Z†}BLJÞ‹g'ï!§—ÚôŽà È<Ö6œp·u­#eßÕsšK¥—ÓTÌøÑ¥ü³®5ˆö¤tů>éìŽäjˆ‚Ú¸6?ޛɰ; ä—Ó‹ºo¦£®8Ï%o6ÛŸ9W #e¤…ärúHüÛÁ÷´'!Sr¤½4|åI_±F©söµ 6†r¹+ƒ÷к|ˆ&zà€ ×]ˆˆ7áóáY6+½©QYE[B MM† °ñ²s’ÅÃjSµ÷@ÄñH|>í•_ ío»uÒõŠiTÝ„¡3;4!F,M#Â_Ðf<ñ_;•\›.0Çu¦nž½‘pŽ4hN ÝqõKd¥é£C—Šk®ö»\ØbN\6;›¶VªåjMd GüÙ)ÆL?­‹p¸“œÑãê‚0Ã(ËáJ—“ ÖT•9Þ%LÑ]ågN¤GŸµJoʾb¬(Óv½}¾y;…©\·ÎǪŸïL_Úé+ËJMšÿW‹²#€$§ô"3.ýµg(î`-ú|V’‘hÈ×¥Uέ9¼„Ãe~\HÈpÆVè2ÌʃmSôlÔrËC<¾:f–‘¼Ç«9±*aN:ÒD¬Rúhà ]ú"$È%¸!/™ªänóMû*ŸÙÁUðž·N…_*01¬œ¾)ÅÆàF@a'XÝM;ªï¢à5ÖƒIЍ¤}îÜÿ À—C_°Ë4GüÛÁ/ƒÎo‡zr4¦Æ¥Fš¡(ý,óœ™8÷ßÆÊ˜'SˆIeö»à'2ªÅfÆÖþ9þb°8aÉ %ÌÛmÙyb˜\׎@³‚v”d0 í=¼Rž~Ù¬Ón¢è.Ú-£¢²Õí¯]Û–é©Í*7r6]T¿[×xÖ£b´q_Üd!rÍ4 ’ónO’º§v &|b)Âë:”ª¯ÐðJÏÇ ÂÀXʤÙì Q‰ïêâŽýœßçÛq¬ö:Æ×ýk¢“ì·…Ö—ERU„nZ¾š-Šò,bn<\ï¥vd+ùü¸´“¾x§ïÃë’ê8ýYâ‚°AI¸äTå €õ [ü}^2×v˜åj'tÏ®ÙÛò¥ñKf^L¤ñ •ò]ÛU¢ÆS±³¢¬ODœxr:ˆSSèòÌ„>gHDÐq_p¥´¾oCyr’DöKèj:_gk´Êù‚1À³w²ª‡AÅÂ= b_# +90ψ™¼ xséíeYû˜Ù5÷ƒ™máŒ'. c¬R¸L¶3ÿ[ÕVhe‰Œ"¨C¢5¢„ª6ø¥È‡Ÿ,® &Âû²j<]<è±ððsõ©€çöif’yι3Q™=~¿X™SiÆf"€¼0z¸H(ed&—®_Q"gXc}%9~”l==¶ÿF¾Ì>'4Ïü D6u P¿4ÇŒnº(:Ú7KÍP¯Ï­ÊV¨¹¼½Ž¿—¬ OQzg&jÝ^Z¥kÏÔÁÞ:ˆ\¦3ïãMè¹Ý…rÀ«/á¶ŠŒ_g/Š\FÐzôÛŽTI;‰8zkìpüJ@[hç;™Ï?¹ ±#ÞB[¿Ž¨D$ÔCPÐÚš­4Š,¶~É™ð¦Óµê­s^)Ì*Oöü±Eˆú·Åލý`sçbü<ð[¿÷ƲL¶ê!RŸô¨&[tÓ*Ž9.D÷惽üøÝ ´¶„z¬“è©”±ìÒ œv¨¥LïXVOBxÉ!Fõc”©£Þ=v ×é!®;û¨hÞ|t”Йpà¥ÖžŒ9©Ád3b9˜µÖߪajzÎCbilI™'î'P§ô5IÐUQ\^ 7•ZòzYF±šé¼Â„Ëbi„²f¯ûJ1U¥Ùß·;ó< ºãâ»RøiºDvýû+>QAþ;{|ªg—ñ¥˜§«öÁ±ËÕö×t÷‘\¯×fÝ1Ëq¡%o"¶¤?ä•üî¿;¡mj˯T@‡ÉË9­çï,,ÓÿþB7õìù“ÊÓâN˜‹p­y uâb,mx×d¤¯G9í˜[Þ\ÎÜPÁ»U¥ ]<ŸÆÏt¡4Š:Êà8WÖzAV«Sžh?â=Ñx~Â6·MH°nºY ÝnûH¯ºiH1f ̧cÌR Ö©´1Á¼L˜Üã`¶F,¯B!>r…™.ÖW€¨`‘àžø¿ùÕ`?‡GÒd«õO oC–”‘€ÅiÝbÂÁ-S÷ûžZ:Ë?öIÈaSd‚xn©×l5tûŸ!êùc çdŒüIt+Zl:.XiPÿ.¬®¼¥Ÿ 1ƒuõoœ³ËÖtÒp DÍì†&')ò¶ïëõ¾ÜùæË膤uT¾ÑhÉ÷¤‘‘óË,Û/ËäýnLnlµ¢I:Z7«Ä£7íØm~w„QªœÜÿùñrß0Ç k†:N,ê:ÏBÜt™Ô/¦€$€j+M0vÀ(ë©TÁ€(4jÚ'C RÒJc¿ òè g*Ù ·§¸½(7¸¹¬#u¨#ÿz ®È|ÿt3ð¼ïT(uj$S9Ø¢âÀ{µ¶/-!ÇúÖõüI÷à2ýÙG½MùÑEäPjO¹+V©d;½ïÊ€'} âI²\iÓoÆïiRzœ˜ñý[ì6<Æ…»!îÞRÁ”‰;zÏ[·=p„ò1¨Ÿ ŒÈ>ºÛÚã“È ¦T£|¿ YQú\|I9¢qHž÷ /^“|º† y ÷œ Ë…gW A]d\º¯(ÏMÂÙEŠòÆ‚¨JŽŒ1͈ ´JèC²R€VÄTV8³”“ÀâT\›‹¹˜>7(¢›…"PËîþLÖŒlPön’3l4Ï»¼(òŽÚyhs–„ÇÐJrüI`¬O_f}d:æ]+ÉVöâÙã(·¬6[×*£ÆfÔz¢FU¥ó‡¡¡ÙÀ•hжàuPìÉÓV’@…QNG^»(ä8é€:¹Û>Z1d*öt"DhïÙZ!/mö×(vNô}{ü&;ÊuË÷_WÖ‹IåªrxCr±1‰+ío¹ç{¨™Æ*Ô‘7QŠl‰GÕÐ-Òý,Þ»‡,q“'csn˜gtc@°«ŒNÅýTVz¨©çxOM+6P¨) úÑ’üÈ}”Z0×t'{Njžßã¼¥¡±ý§¨Èa…¥˜H²á-åAnÍä”Î4d×x«÷¤ý ­ › 9à“/&ú@,<öz÷@Ûu7JÀÛ>+¡nhôÁÜ8¯r;¬eí¨ÒÖÛÛ˜ƒÚŽ¡‰ª Œ'†ÔÕŽýÂbáÔßcÓÜuƒI¨-Þttbß‚”>ôEéO¥2PŽ´ÍpOÖÜ9ýšË(H’kn¬'dO@ó]ÀE™#üN‚d’íòjW&ÍΪ @—þ•@V¸Œ‹:AÌ ×5£– AÄ€”\hÍŠú|™yj‘'!ÊÐÈ.ÏÂñæÓþQ nëŽÜÚP•J{”l¥TäiÓk©ÿ˜È4é¹tò×èè¢O¼ƒuÀ¼>×à'Ñ[]¦×ŒWM¢ßOÍþ«‘¬h¶Ö^6‡qК Æf¾g§ã…TµºŸ3ÿý÷0ý†¥ <ïØG³Xc·ÀÆ(¿ß º%;g@JÈt]/Üéñeãc+ °pÛ7½ýN©Èu¡üL°ûضˆN/K_@Tçï€*Áã:Œý3­Ã˜K(ÐR™.¦jë•:æ=“ˆAØŠ94(ŽTÓ sf¹÷¥¥ðS:«cÞÞpÀ4ÍË·[;¶ÏØOÙI˜Ü˜>ý}ë9cü/À#œõ«YÕ+×ÌŽݯ8vóeßN5%Õ¦Éè[ÊmBU+É q‘ÄÂéCiøÂ>·X89*æ!>Ñü8âj¿³¥éCàQ<ƒ34Yš¸!òðvs®¸E»¯Ôªù,ÆAr A|„ÌT¶ÆT|FÉbÛÙyÌ'ìnîçtgŠ­üö|\žâèÔ¢‰ñUÑ‚Ô'–;†õí)1¦CŽ-œ)Úi‚­¶¬ê1ä›ô|BGÛÍ¢8zÞ"„=Ýù‰’5ÊWD3IÿXÛální»lž˜TcÔ21Á±1=çÕ[Üëü)ΈßÙ’5la7*‹@ßÖçÁ aÃu´C£`§JµFãỈüI÷q¯PÁ¡¼"}YºFJt w‹ò²þ^:§$ö*`j ÂP[hé Öã)Ÿjø…“ £ôŽÈÚþb!²Ä×ül2‘u–‘A±`iy¼\½á£1Î$U˜? ŽÛvZi8)á(©²ú8lTÅìÔ¤!uÐì±.¯ d}Í9F`—på ªöéLÙîù·æE§À ’raŒå$´X±åyïXTŒ?Žáºéd«¡(¨pã(óïoÕîgÅY"e¨v ívÿæ¢ÖHSLåäëüL¾Hóeý¥å=iM ³ïj'«/&`¼“Ùj¨]CÍõ[§sÜ2 Üw0‰±5Ð _|ô8,Ϫ\»»^»*F&)‚¼©ÈcÖÛË`\ÇØ´12ôÌÑϯ¸=yÁ@I»ŠéAáûvêÌP „þ ááX:4ÿêT  )Ô€¢M¸¤X60Äø‡F© 2°—µAG=6ví¬×êz®N@Û7JºR9Tr,žEÿ‰.½ ºJÕÁ°2â0(æY·NnÚèñ]ów,W¬\t•üL·?PvìSÅ7©|{CÔ@Gç„\X¥ÏÆóê‚J+`*‡ðqz˜L2j鈪³ñ&‚‡~–Ïr’qH2»•kü‚š#ëÝSa, jœ &_þ¯»‘×°´v2ãÍCpåQú¦ýöòøû4=ß2á9¥êð"™îÁpúìrw2J”ÇC¬‹Õn!ö¸ÏÉû_<+î”Ó9ùc½±0œI‰26ؘ#h›÷”²':Úê˦ Ö\K±Nf’ë¸ÚVüO'ÂÔÍùeÐð}ÀÁËkÌR ä/! üI¿­ñkÅÍÐˈôÉÔªQ5ç8Î}|ðvJkNÎqóùo@ðíX ý/<Èåoøg…¡†]«¢U8Ç.?3`2ŽTCš°Í€þÓ5ÌÙÑz[t5&Õ燳¤³Ó¦(Ú? Ÿ§–jZkÌUõ††}W‰ŠX-7K|L-2®ð ~º0émM‚D¾µòñZ?@öY_˜guŸ…ƒ<›éÑ¡e•w˜8óñ ‹oáõi?_qîÆ‰“ý·Ÿc{åoâUå '¥¹‰0~æ”gŽ>²ß4jþî++óßüLÈ@ˆÀaœÑyˆr 0¼•Tu9 ÷“;[Ó4~ÝX<òª8Êu…º½ãI=¥¨».-F¬_e`ŠÖX+7á- ™+Ö®}êb(è“…Þ‘joâAÐP!ŽÐá_,i!hèrÄ}”[ÙDÉ7GnÁ±©¡Öžô?b`G5üÙp`»¹t¨Æ.êÔEà WPÊ‹ŽØ…ˆÙÕ ó;¯Øj`cn(¶ ùþ;»"™¿Æ9]_ŒÉ0ùŒl{d¢}\Ð q„ié›CSr›ÿ+T^S_V-S+?~ìvÎû<îAæÍ¼2šcÚˆïeÍ@€P¨®‡Á­hx™JNf—­ 00Tý7³,Óé9Ó±v?žåÞva"œàQ2ÒGÌk ‚ª#ŠåÄ•>yc©‡ÒÖ‰°Øã@½ÈÖ]ùé 3ë.}d Ÿ«âTÚ"0hqîéžým´~R„7ÔòàS{GüM’n'¡Fî3%UÑáGˆ‹m4ö?û*Þ,—ÁÐ+8dÇ´m•Lž7¬ÌGØ =RA²Bnžçˆt B‚†ðŠ÷ÌÕåÒ¤t\4«Iß%Z°ÄíüÙ½ŽIˆÈû$Œ²TN²”W¿6•í[a\è .Šûª;àMáÑ.£¢ü!«¼4šlÃí-sØw˜É+ðÂíA±;ŽÇ ¦Ø“SzQŠ…wú€Ó M8‚<ƒ êj3 #†mrZÕaœÌ #Kê¼cn1í–ÇmÄââ0ãGŽç}®|Þü|·¶1·6˜Z÷óPQPªU7\aâÁwŸˆ9nx$€×ûßA·£-¶ïrŽ…`4¹59xîe „‚Ç.– ähk 3ÑÝýf:Õ½Ó Öv½&Òèà]Ü>+ôƒå;@ü²êàÇvu>›{­ž¡qÒáɃŠ#­DìEÉ&#²ªdÂÐ|^xHÙ‘¼UguÅ®_†C¨“W½!¯9>¬ ?1ùŸ}éÒ2°PpóaÄnÌQ~Úö4U”šˆÑç†U¡­aæ8D'S(Õœ]šL2Ѳl²bž+¨^„Hid37¢å~¢Èå&û/ökO5)ŽÃø·l7S ‘¦¼¡!`E¨ìÏä^S³a>BÔO¾Êã¬e!²›Zð ãç.™ ù²m›Äjò´ö·•ñN$·[ëÿýÈÝâ2pÈKVÒ¡äüJCoW›tí¾CÑaÚŽ»µ…4© 6X)Z ¾óølòL?½‹6Ñè4·*jšð§7áhj.w¶%ÝÜ߃å}¸×G´r›È·Cœ®Œ5ýE6‘é…CëAfA Ê6!øKzN“ ð8Ù"½7ø)J­ƒ¹ßy¬,ÃÇÍAìñ „ºæ ‰T€Þǰ‘ßø0þø·ôº—79 ñÈ~D˜Ï²ñ%ýhš­ÎÏB $ÁÂPÕ±‚Bº¯k?¿l„û ùéÙtÑ«ýZìëÜ0«l˜ÌíòèåÅ6nü5)ÚÐKT¸·‰Í™þþÚÒ{kkë¶cÚ¬kæ ØN ‰0_Œ®HW“†å»v}xRä cÃR{Žñ¼x^›§Ð¢â_Ó!@’gt¼91$Z±ÄCü)©>EN“½ÂÖ¨ùkn ô¹?ô}Q³ØýÑS…K->èÌHm²ÉÈù52tîì •SSØÊ9¯Ð÷îf'çmwq܈HTŸO­FjJÊ}èÍ?8Ù’íÀ,%Ó‘´“´©a¼Ë{Ô¤,Äf·œÿÈ—É_ç>*õ)WeÈ‘ä:¼4÷ |õüNP€rÅJL¶ Á¿@ùœþ¹z˜„€Á#W ¡ã“D¢¨I6”eÙˆi©øRd·pœ‚8ØZÜ?U½›0r¥ŽFåä[%©§&Öœ`åK ¾þGã~ó®Khhñ ‘ Ÿ$ýØH@¢ÎÄw §Å¯üËm(`„Á–î¶®Ëæí@Qñ<äô帮 —ͱ’’[0%¯wÖòƒE·tj ˆ‡ÒÑ¨ÃÆÑë×e´Cݹö ¥.=Dr 4Bê°`ü¯ ‡ì.Xù ß´ý3`ý ‘؆wÏå±ßœd+rGi£³òÄüL¼7F¡7Àpç­«Öú[* ôgbNu¾:™ãùn©Æœ«¬£_ßi)ˆ5ã}Åöéa~}Š5† fk—[ÚñS°ß ,åî [2ã£)Ç¡`²Y?•äþß^öM€®ÿˆl¼IÂGFÜ…`»Ö® ÙŸHGÑ&.·à¡i5vû窱y[‡÷Ö,³ln¹Œd ê@ë-ÇWmœ1yÊá˜B²ž#íçé•PTë×=Å/ºNÉ+ÌJù{KµI…«ˆ.ScÁ爪›cêJàø±v¹ìn$˜å^¨ðÝÜÿ­Þõø×ƹ¾¼…ÿÂé+7ÄüIáÍ‘â%¶M7LD}ãÄ^a]±Êöø›VÇ[ÿr7ó®d =êX w)U5˜äú[A Ûíu‰ ì‚Sä@:BY•¥-0¼—nT#—#‹½b sNò¹^t†x©Ÿ®^do~AU=OžµC Sß ú KÖœÂ@ jç¯Ä‹$ÕçãOÌkZÄQêe ª¯õGÜã©H¥³*_¼îÆ9ÐöÜ“ÕKÉÆ£ ¿ˆY<»:˜ºŠùc=XP®,®dà Šy¢I,¾ESwƒæœ"ëÿéÁ¿ÇFß2 þ‘D@¢üL¼‰.™4;Ów(€@÷ãY‰¢ ¿ÔºÖkšàvH† ÷Žvê:ÒƒnÍý¯Š#æ=‡ÌE‘]h™¸€Pízo¿-íKV¦1xwŠ$pn&v[ìJ!D7èæ*­ˆŠglÛï'íqƒÁ{·œ²v*=%®ST±õºÝ†¶£—/¨iЃX>¹óÐ\™¨ðŽ›5÷äH|jXJ•4\$#L(ë„·è¬.[jd.“0³ L½FÎ~ðmñˆ´öè¦æ¹T Fp¡¤Là­JMik¡QFŸ½*D°ÔmZü}bœ$šd³±Å­Ã<¹“„ 6Ÿ>©Ñc´Â¡¬ç¬A<” ,ýC&ѳ‚1gf=E´\Æì«ñ`8¯§Uìuþ0~è3zçV—U(qÍà™Ïù Ë"o¸Â9ÙÔEûY*&<†$ϸ«H¸Ë­¶oÙ«Ö–È<$dw#­]{‚tç:cõœ¦-¥ôÏ“…™m.ÈÆLgg ®ñùN@³oqüéhk1ê6Ìñ®žF\TA ì æyÞ Ê¡Å3hÒïÛí%Š*ľ5b’>#øn´Vš¢&”³fÿ0bÔ$;"N¼³…"Ún˜ѱ9$E7«q`Èм{hzצ[—{Îÿ¢¼¯ËS€þ éP iòôh ¸R’Mо7kEâc´ü ³ÓŽ‹ \$jìÕf¼3Kì8Ë£H„ر®²MqìÃÔвü†/ßò¬} a$“™tÏ{£+á%'l‚¨‹³žX •ðë­öé=ÐcZi%¸õB2lÚâТQ‚ÜÒòž¸Œ¤Þ³FyÔLÛ»˜„-óÍ/`Ù&…áIáü›ú‹9²C'YYâYsެU¡ͺH›|¯Óãqh yŠ9jI³ÉBÀäH¬\ÿÏ6%TÇIiÜÔ<õq%>.L}k/æ-©$ýºÐ&¾I#§oj—š—Ùe”vuŒj«I–ýÂQ&èyž.\˜áE«@Ú»fîy‰ÌKÝR}É@üNtµÀÚ´µ„ôn4£âôÌC”9j¤ÖH·×SEfÖ¸g÷l¯=sáIÐk«ª¢Ø;~÷OÛ»ÙůªÊ±s t›=˜Y½Ïœ„Ükýൎ±IF 7-¾ò š;¨LªIÔËöë{äÁ¡Töë è.W–8×’ âËpbp‹Çºµ„÷ÍZöñ˜¹ŸˆÒb¿XI ÑXFñ ½õàq†ÝIjm²?lŸôH¥_Ü"Öº¾T°`„•?é®ð%Þº÷dË 9x̺æòº†† BÇ«ü²Gc…üL«1Ó¥¸Ê(Öz”‡ ¯d³QNÃèjÒ‹[§8Ìë9uî…\hÄë÷g­Yデ±'Ý’<šˆ0rè]ðqÿH˜´ûƒôÉŽ°3“åá:zu¥ƒ‚’/{V`4nŽ™0@…¶%^Š–rôIþ!è΃“Ç´;`%Ï,é‡1:‡gBc{šlŸáæÙy8.[t´Á-¥Î«9̦W/׫œ½Me‹úæZÆ1úTú€ Ò‘cÿ-f^£ÂO‹ÚôÎ[úõ`B^ìsNóCö%üt¯‘çb‘·UW¨ohÒ&ÕüEñv\ÁhÚŒÖb‰ÊcMHÖ!³0ŠÝèp¡oáã¡üj‹¡\ðdfÁû·,p=½æÀ7̱Êr0S3‰50œ‚ kL¡õK-ÒÞ›•6;ƒSäîÑòÌ"]¡ðgÒT¢P/;vÎËJ Œá5ŸÕ'ÆàGIv¾°„û†t{aj\5V®V1xjX˜™öjE)À|"·£ÍÄ ¦›*Ø…ÀŒWYŠš0 ˜C¼NºÅ­©Å@ W(ÙL½ø‚wÐh¿IÝRlg‹ÂÕ½Ámy×›rØ M•GÄZúü54NˆÈyn½Óø‚çÎk…Kß Æ{¤Ó¤Æç¥øòàxŽ2aV f&š--8Òm–DAXã€yªL¦¶sóVUø \ w!™¯l+p¨<~~Ú@@xW`øŽó²fù•u³8¤´¶”³D÷ ‰q `|;°ý”Ü‚!$™á„Règ ‘?±Ù÷H:ÊÊ:3Ͷx¶Îñ¼1² yhØj?ͱãEâä&a:üA•ªh¤dĆªon{<Íh»æ_bqµ»oë¨æZ_æÔ¼ØÖU“{ðÚôwSo,ä‹t#.üJ[ŸÄUtÆtµÓSç5dè­]ó–=÷7½>Þ™YĹ<Ýþ“î¶+ô‰âQIfw‡Z‚•󜑌N:ŠÓN¤Ý)8\€7 ÀJõ„biUjÌÆk£‰Ç0âŠðŸÓÅôBÃÜ‚¶}‰ iÜËgfµ©‡x×ûGû‚\Z,†ˆø·ZÚ;÷žù<ƒç·7AÑF"„`å›tH‰UIÈH[ðÝyuÈ#a®„÷—ÒÉ´%•´i-›"Vë¢àÞ‘ðy<ÈT0…ãäëÙ Ø,H7ù7;v‹ë_¼ý^QÛpü|®9A ÿ=®ÉÊ¨Óø Â+=3OfÒâ€Ü bà`Q«6”ÍìY×ÎvÔK ØèÄÌÚÒ:Xósvœé«GRdI<£®„&–™ µìæØgÃÖ¨³3EG4«¤Gü]ELPØÉ"^«Õã]ÄR°¤dØ»ã¡`ˆªtrTƒèäw [‰:1c4îÏ<äã··™…òêt’˜ûï^]†^rÕÇCºnªµ²»W©@ènå­lVØ Tž˜[Œ­2Ý[G\‡xæÜB›810ÀÚ§žñÀ$,‘–<®àô‘Srøìø¹§<±›ß¾Q|ÖÂN!Šþ–$¬f&£«R°¨õó€£c_ÓÁ æ"¯¬&Á·B¸u¨¼KM±tzvâ"†#¤V‘Ä‘ˆ+²ü.n0´IñÍ;ƒðåšÌfv<ø ¯õĽ¡»ÙëB™Ìß5jÃà4ýðŠ=**Uç©G~ø¾¶ï' ”ͺ ÅQÂ;оWÎÁR$8QªVøn˜€íß ·Ùûgríäº Žm£SY`ªœYò½Ý;Ÿ•ƒh2Rå(/=jZ­y¡ÑÝÚŒ‰œlY±,mz–ÇqH"?4ÇR]Dñ£k3/ª¶y#ÙBÀäyMÅRnEf* jawï=¢C0€Ð…j½yë{ÿ®!†§ÿêxü5ùß‚ô‡þga=}iL% ÑÍåS©kØò¶‡žÍÙ¾si¶äï(tÀ,Í¡K†td13ö~ƒÒ–ŸÒQ`Ë D i5A'¢úŒûc¦j‘æ%À%ù›Ã’²S÷x«‰.rav0Wž7Ø¿è ÑÒ$SZ¿àÿ2Þi×§î;ݘÉž–·•¾Ïè2‡šªþS*ÜŒ)Ô—ì Ox®?¸þ2€nl_¤b8¼àp̵< P^Ìn] lü™7×2 ÈÒÚµ[†š º\ù—Fró@Õ"Žý¬äÁR¥âü¯0È¢H¦¹ÙŽŠ;¾ sý«ªIû›îŽÆkˆíâ@Z8ÒèIÌïâRí˜8Ÿ° ¼4¾3FѯùÈh÷ŒžUÂÔ»øç1Ì„Fš±Wfð¦%#¼V‰ØâÌÑ"á,Ü@jÆ;PáLHì+¡èÌ€ª¦çwÙxÉI…6½Ìæ¶u„m³^Ñ ¶É§\ÿï8‰I pŒOì¦4+j©Hð^1ä¤Ó”k@d½ª‹W†Üc¦ù2!;q­ÑÚ…'Ocú†…&¢6Ð_HñUùH|×QêTWãú¿_Që"€êBÿ6k[ñeÞ÷lvc¯uÝeëø”Ür@½Ê‚gÌX®üM $FKªùxòDÜ=0%ö6D„sí«˜EÉ~­¡VIuuÞiÑñ¬º7gCÖ3yD­&#%í"@乸ñƒ¥²uÝÝżý’¾„Í›UBbiN¹))O}ºœPLÿ§ßXý…ØÇm•÷6[n¢o¶Â‰%©/! o|wp¯QZ”ˆWd÷Æ1û9o쎺ª¯á‚cá‡ÛËÅõü^ñGÀÛ;¬;%úõì-Ô`°¹®ÌÀ/F&#I „C—ïªn ö=[îµ7KbR˜ F¥ˆ3‘w=§}ÉU%œWc÷ÌbøüÙt§?̓ ¶¿ÖiÄ%o tg“Ëäþ~žG8–.ogç·•w­”¸ŽOþ?kqyˆ£üÃNEÔ"kƒ]É Û,¨eé¤yQ€M†×´_£ êKw°*­pE”7Aù"ZÍqã×QþBK, VÄŠìÁ¡gôPŸAèHUôüŒfèÆ‘C»ïp§Ïcf >ø½¦¶$߉¡ÜëÁ²øœævö-S”® ƒ9oèëËÿ±¡›@zK]æ… g=\xdÄ©y­ûoãTÔ;nŸ^ýX.丄T$i÷¬·’ÓÜUÛ1÷\'4GëGüÙv¡ï_ÒußŰO“K Ü óghÙ<¢*ø-c‡Úc/Û*¶WHÙ„2Ç5ù¶fx±„ú%ïi;BãF¦àµ#½Êª'D_¯aMáü]¿ì(|ΊÎ€aGoßÈN6öž§Ù¶£IƒÑCÍ¿ãö¤,ÍZp‡¿Ê‹ð†vçzosÖs5žBH6€0ÌÔúP›~‡Üš›¤os ¾eá­³¬…¸>ÑvVXé?fìÓBpØÞÎå>ë¿ÇOº%Ìh_­¿Rpêô;a¦ft¦sR˲Q¸úYÂC¨µ&?ïí™or½=®ÜŽÁ§IÍsHü|ªjõ‘"ú½8Üɯžý£“»F7?ž©±¬ªÏ@ÒlŠdk q•—ɰ Üê--cwè;æìA’ý'¢¨§œ=ÅA/–6­ñÍ­H6Mªö :(TÂ<£@*8?oXgºŠ(.–ÀÃÄ6t™ÈÐÄA½êîBF¢ [ ÁgÆVžŒ¶ZKE‚¡/wyI±áõÿÕ¯ü}íC“(' >У­^4 nZ>[õúÛæ¾Oð8¾ Ƨ _tüŸ *½@bž+n™l©ÞäÎôŸP¤«¯ X†ã±,ÚbU­£òøÓ9ª^K€‚ðƒhqSN5ðÛžËÑIfâö VÀ·­Ç~öÖ €%XQ½‘Q* ˜}õÂðø°¬„¢§úbÆ”b6Ϧ3ð[ìÊÖ<¿ô»È‘Ÿ5]$r ¡wÁ8çCL ç­‘Ù¶´¾èr—ó™þü†m*ê›çûî©Ó‘žv?=4ŒVQ¾y©²ñ0÷À#  ³%W«[ ÓqêÍf¸"¡½ÃXb®o–“F1û7¯²¢@üM2Ö‚°|‚ôâÖóië‡æùò*¦cl•ã­dý yÂ’PÙ¬r¬F¨;‹¤»SÜ–À7&‡ÎN·1޲ª-=U§É }&ÿ„0#¦×K4\}7ÜéÀž†-¨ùÒW©Àdë–À±†Àƒ/°ü6x?ÊS•îñŒ‹.mUÁ5Û_üRxa¤æàRfvá£Õ1³Í+‚˜— é Œó'þ1±ÏgµÀTùÄí¡«Œ..ÆÃŽÍ‰¶>y”mħ |”³ÿé÷6yaÙm+ô$#ŽÈÇu¦g÷ÿ6îÉL䉧š]LÍ]M3á·HèÙΕÒåiù8óÕÔÕÎu¸©ÿI“ùa§HCÅYyï9°ö*(GÓJ¡›}Ò@ÌüÇ6.jœ:•u+æˆ ì3./c j '^EÑì¼åÙNÝ" ÔCðkü,ÇæÊÕn6,lÙüIàò‚™·ê\¯ÚKíÒwödÆ)–Û˜º¨ “ÉÕƒIìcÖùéô]NÏ£È%Õš >ÅjÊ&ÛVü%óÔ«‡OV‰C—I¸”rÓ„2‡)p³ £*aR2®fóÓKãL"cº"ia @ÙË©S™Öáæ×Ⴧ¯S…6pÇÂŒçòI§2÷ضòp§ÿGÊÈÃ2“Øàß-CL}ûUwsÝ<¢žðZäñûæ2»Ég{´¶’l¸t`׿ªs_‡¾´‘õ&Ô*½)ŠëIO¬¸ZF3’€?‡a28†ù®ìOxÄÃ~¾møü6VlÈ0™ÌYp‚Vmî Œnû>×þI[©±S~2 ÔyÞªifV˜“r|nµ,Q]\v[Ò¤‚÷åQXj1znTœóihbâXî·iñÿŽƒ¿ u®{ªå\ ¤]aŒ¶-I±hAƒCIYä‹Û!ž¬·ï¤ù¤Ez¾òhDT‹J h‘:|Âr{Òx1ªRɼdVÄ]â;ß…¯5i²ÙÈœãÎKù<Í£t.˜Â‰è«,]æ«2ôuþÔ’„ÞöŽptãL,¦K)Þj«¸@W„Ú¶åÓÄ~#Wx¾6û›­Ý‘ÛTü5fÍ¡dÁ ¸ ¢ÔËðåVj3>7 ^ðdÛ… @¯‘zy¾#øqH€C[pâÅòB!è`8BCòÙf<Àé:Ó§EVwRšI´À;äfHiGn©íÆ4èjíB–pƒB‰„7¿­ø—!U0ÄRÜ,^/}öÙ)v7¼ºkÒ»-0ßPìBõñ[φêFë‘Àöš ¹ÜáHÐêzZ™k#i다˜Aù›‚æ+‚Û§àv1u0MòvÐ Šœ–óE ‰5q+ot´3”,©8BcÞ†ž­&ñUQqÇõ‰Î#T²'Õ˽µüLêòá2®™˜”à7C@²íRìtaÖ¤aeeæ)sž\pµ ˆ%Ò‚›ù”ý|è1ÐÊì0ê"æê‘§G7¬¥ƒ38:n—þ¯ØšxO‡ÆΧ8œ"“ž}˜M|T§lŒï$ud¹T—F¼—=Žjº¨È–òyˆž5±¾Ø}¢³¶¾uu’j#~¨_øß&'ãê3¢c‰NêÑ’´Tg*å²dgÝŒåÉ(8“àW¯üEÐñ°øõ-È77š\Rû…ÞjUV©<©’Z8ÎС;WuxØ1ísê%✮º/ZÙNø_Öûzâ)VÂW,¥œÜ" YKyŸ=Ühr¨ÆÀ!¯‘àTjÑÝ}÷`Ù¯|P`¤ußýÁ=P ±ËB;‚Måö+ûi&©UwéWòõnuò+GƒG¥[†fÃr)Nû¤,nÝ„¨£>Ãð]zQ dãt®Âf:#cD¬‰ÎMÂ~£·+Ø—}’qü©,%Pÿøëÿ ”¦Evº2:IÎnüM‘¤3Á3%5‚°u®p›ró íšõUZ6ðF¨Úq¢hª=`(*qÇ6M,}”ù&Ù¢P±DÇÏ»$à.)B¸ã‡ý—¸"Þµ‡ÝÝ7n~Õ›æÆ]´D&Qlâ‚|²0á@üL×íËŽKV’“Â&OƒkçÝ#ëà‹}×cÍk©+€5¼Ø”®™˜wÆJlScίWQ'Þ^øešýõ@'Ôt…°A hË /ž³Kj= ÜŠ¬à­ Ý9 Ðyà ü §5ÞŸk°ý¤¢Å¬°Ê:ÃÁ£Ûõ$’1šÕ/£Š œ„¥¹üN‹ÿè|síž³ )å«´°%A+Ȣ̉ô ìäOĶŒê^ñŠgà½à˜X/xéomî÷+h’ˆÞÎ8?ÃHŒî5µÀbyFkt?~æ§Î|.Û–=áz>ÅëT£ fö<üµA ›åïÕ›Ÿß(~†…ã™ÀLÄ-Û~ÈÝgH¹ºÿBY%(Õ?I“‹DLi!©Ò‡W@–-rAϺÚ'C9 …üZƒVyŠÜúù¬ ¶bË)«œê¾á&Ú{®Z¬;½³ÔRË ü™ÛYò)3Ä—\f¡ ‡ñ]ˆ<·ì=:‚ÚMÓ|Xîœí¸Y–›ÀZôKíé3OêûœxŸ«³ð¹AþpR"Êíé±où£Jÿ²€å&+©t˜Y½Uˬ%e—Á²VÓ$•Tÿ¨~xÓýG4pŠA¾ÆN0ÑÊoÒ·ë• ".½Í{EQ'B»äµÜõR•JØ„¯EÿœÎÂ&ƒ£†ÍF¥r'ž¶éR*Bà3fqЧK¸. MXü6“îÈPllg‘6U¤áosЋO„¸…‰þ=½“ø‹¤m¶{õüP-ì^Üñü—t˜Ñ#ƒ…bA'œž<Á'DŒ½}ówW±'Íî¦ÇðçÿÄ–¸z‡…à;¿ }Ý[Ó ¼¡Ôù b9SÀ§L„=ðu’ƒC êêúàêžök§%†ÎøÕwï3ÌFáÊ^šÑèáCÂPè@%QðêŠl\ÖkÙ;/"1ÊÈ’v=mÃÜ}×»{p±7Žçî“;A ¤ô-P b¨7Ä·Ý× M„vYà×ʬNg9Ö ç<öóæàÈ’AÊ>Oü|®ézv~" šX/¨[a4}(Éôfðü ýDdé}$1` K®Ê iWÝŠìÂZtŽ;3%-é,Tˆx~dÃ/Û¨s  ‡ÿsnÙ ãxûþBŠ3gu…{mïæ†W`ϰÀÃ9#g-œ)5¢tOu¸æw/"ê£a!·[„ÿ?eM©+RS°?ñfˆ‚M2äw7™ú¿uüÒæDg´3Éóñ1J  Ok(.0¡þÂnÁ‘GLVB™V"¨5°HÙèç…æÐµØ_Ä>ÿ ¡ÖU˜†÷†£||u‡Š0W8DûPë3ú•”¿™Ÿ>s0Ý—×K0ÂÔ T¢5¢¯åÅÝ—Øœéë\8`$àÔüUÿvþj­÷êв^&Úö«úë¨ú¢ŽÉ ]ó‹^Z*,I§QåÕ•º1d¨Üè¨h&þÝv…â1îâ%U¯28áæ+…/  éàuÙ Äë%Ô YîØˆxκâhÔ÷ÑV¤OD4¼ü5)’:ÀTÈÔIÙѨY}ª=.³_ ð2ÍuÇN <ÁrËDdRá-‰‚>”@¬±GšÇƒž¬Ðïbš’9ËC ãgA¿$“±AÙÂÕÂÆ{Å!Dd‹ã›ãˆ™VÓ¬4ÍÄç!Î~Æ0Œ+HÛì›Ê‚"nˆÐ §2ÓåÌy¤p5/èh>Š*o†^¤~b¦>ªÐÚâ`m´å=,lZ$ë¤I¶àºçoü¬2?©[’‚ª—ýe ­fÕ}Åsní¿CôVÏ )Èß÷ñ[^BïÂ`«ÆnCcœs­œ¾û¶Ç#ŒNO4£‡üëh;W <$Ùé¼)mdö=4Γ} ÙŒƒ®îcY5[‡ô|Ó ÒŽEOp¬Q_ö¤Ç¢|ú ÝIÝÉ,ó3?~ºŠú“5þÍ¡ £ƒƒdÄ} {‘§Í{Tv]‘™—–Ú Ñ’ž]àdˆß\Ë ýgKô¬_Z-¼†Gõƒõ\zlÝ©2’WS‚µ” ´Ë}ïªÊYéŸ(ƒwO‚RyŸíƒf!xd€Î‡¨4õ¼c×íßaw¾û%y ÜžJ KÖVhÒ‹ékO5-ЂôOFÒt)•âMY뢀t‰o“‡D²žô‘üï/§ø?¦™—xƒBèþê/ÊÓÿéA›á°}‹–Œ1îŸ@½»Ì9è³ ‘µWHÂÓ¥Ÿ1y-í›B’›Éé%Õ¥4êº}hî*þ>„¼ˆ ä½°¶%Còýâm 23D ?T0å1yÇcøòH§D°(Éh|ߩٚÇn¢–ö=ÍRÚ_ç…›uÙÿ"뻨¶K0ƒ±|O4÷d±.‰¹ð˜¡¨4oh#JK­xI6«Ñ ÅÚ†’—B07²ÇÁá7 ‰û™äM´L¾¤+€ó8» ª ÅDôÇ“ù¼+N¿€tã×>Xª9$4üL³•Î`ÃåÕKÕòæj ”;L!B!ô­´7Mv}¦Rï%P}¸Z¹í÷ÊT‘ûVzÄʘ¸k¿¡S" gº±M\Õë8s6—©ÌiŠB8ùÜÓ ÔßÕ=³Ôa{Œ€Â82 {ÓX)EQ ”#¤¥Ðð?ÅñqÊâ2+,QþRÑ։ؚ#¡Ô8Gzøa¶) Ât†DóöGH¯DZ÷&4p{üÇ)íþ5v¶h鵉Gf—Öƒž®eË1K]œ+JÀäâ׎W»œ ˜¦lÖ ÛR {?ÜÞ¡ãD¼¹ÁñÙÚ)7ç±Zv©¬8©ü6O{-:æ0Óò0i¨J«>xlVeãja?qã[7ÑÓä=ɳÏ;‹Ñwn$Q‡ké)Á¥ ×ø€´ƒ Eî”D‰ÄyÌ\‰}ÙªÔc¶/¦ÐÏ{X·ì—~,€ÝöÂÕf³é·ž«ta›_æÁ÷›cÝB Ý1Í£ÆEíx*Ì6Z%³û%T6øò\wR g üé_AP}”EÔCwmÓ*&3Y*Œ¾ÇŽ“/›úºÎ2Ž <Ô1³‡e"`ïgدa~åÐj87%Ù±þ!Øx×î°wX@$e?þ쓱e„á˜PbN^ ²ì:yà=•û¥ÙÙŠlôÌÙÖ¯¢ Eü¯ýi8sv-25çzr?’b ‡­‡º@г‹Ê¼zå÷A,šZYTˇ©õÆ!ß½b“ÝùÖ©‰Ñhé‡2$žëZ,wŽïAaø¦ Ή%¦]èÅÞR¡o‚dH‹þ Ìcè6bs¤•~D–"w ‚Kºj¹”éë{È´7ê ÃE㢄´¯‹Æ ‹J¬æãtÆ€›*¥“$£ÄºK+ÿôKZYR¤oò#èK¯=þõ{”(´Iª‰wdÔù]42Šts!Ùq"61Jú¬sÓ·è©K×§ßsÎd"t BäWºÂu®ƿؓÉ×ÁôA8 GOI÷üM¼¹ÞúDÉTèÛ¼ŠÂ8G·qzßÅd#8ï#Ê#æ‹1 ÑX¨§ËrüuŽþ†´ú£H„ÒL•Ä K;ñpãuÏÆänUí@fO—ëXͰz)FÒB —p¡™~³\F ŸµéU9Ý.[BRñÐÝW3"³?JEÏÀȈ£u]@ñžW(þ«ƒ™nõ™jG¾qtnâD HÔ‚È–W„ˆ؟Û8y Q»"þ£©µXæ;[ S;I ¸bH¸B®÷õÏÃRÈ8Ð ¦ÌÂÃ8gަ}]”|. üWíÙàô=•V[XAÛ³Öþ(ÀLjP9Pµ®ôIñÐX_øA§¸4ƒ¡(Š 6ä&¦´‚ÏdùL`kö —ýg[˜óÚñ®¾¥jCâµ—"•iÖ†)©÷…´r\2mwþà¯AËwœÉ¬hGa ¸£Ù/æLg9”OÈ.#Z>,,ÇâRÉ4yAV»+âáLÔŽˆ*h7ö¯Wòµ¾4"øÀ{~Y~¼£®„ØxS) ràtµ.¤ ½‹Hñíþõt+“L¯=Ü­ €/ª` üMyœ‰¹©‚®gûÝË{À?$ŽQ?èýìP}ï% á¹eµ[2XôÚO‚ôχ¾öºšŽcCcåfk5ˆŽçòÇù×÷¿bܵZ6ªÅün ZE[t+¬¸Dí6ø’ü=‘øB¨>Þ‰§Œˆaƒh}l²µ¶-,–é­çø(RÙ:Ó'í6–oOˆ€)éEª¨¡rÛƒámþãôwï*Zô ‹™ñÐvþh#¶ƒ„‘zYaš}JzŒºÇX~“(®á}ukE"þ]ò·v.Ĺ"˜° &‚;=²‚Jy &TOggSäW¨äy‹e@7åéÞÚæãæãéèÿhØßëíïâÿrÒÖÒÒÔ×ÿÚëëäéâãëëð÷ññÿâàÜÞÙíÿááåÝüîÜ©/Ý{M`~<߀nYÆžÁ²Âr‡u:m$4¿[tc£âúá°ŸÄDWÏ#wu³^1A°ü2rvˆ¤\McejçO"t¬iZbEÚEÿØv¿:sa0þ¸ßسèïøß‡èº²rÐÁ­:'› ûã#,‘S9™=›öˆi³«.˜Ä¤t%¤¸Q¢ü ôÒ)&»ž|x3QÑ@ÔU)t¯ÓKö±5(À`ÐëGÚ¦2‰–Œ}²4/ ÞЪr¹ßì§xƠËHº:Üa5ÑT‹¢ üL¾! ´ƒê8*—LpMagïÉØ"À¨Ýº–Ðoƒß#×U¾HÓš¸¾Ò:ކ̬ÁFþ`ù\Âc>¤ NÉó‰™÷iTd_& ×ǰªªÊã@¢ŒÃ­„‹à Ãøþ¥Å~*èþþ¾?+7‹¹œRÖ6ûEø“H]¬’Jª¤¦”`sÌ ùCw2ƒí+¹r69ãP•’"Íw„ò}ÑÕ w2 ºd¬^ ”ÄÞ#'!™Ç4Ðï°øí<ìÔë‘·QßÛÍÍQ>•säë^B‘)–>òSîDÚÍ»éEÓVÅ@ó„ò”üM0Gtî¯.{á(L•qËJhí1òë+ФV§ëa99P K4uìè½Õ_Ü!wÈ<zVžÙ‰;žéI«v–ÄE@5¥¸²$Ôš ¼ÐM™d£¥¼'‰0v´ý»)(2*ºYèè7w?‰>þ}UUs¯QÁ²—1iþ˾sDñ,Ã:wÉÐæ(îG^…CQÒõ)¾Íj¢Õ4±Ûjè{ÇÖUáÖ•· Ú¥cä/8¶üáõVÅdGC¼¯ Ú°ºéÆO|aêâè#0Ù±ò¦Â6M·7¥úÖ¥/˜ü™[ÏòüLâ»çÞK'ùîüq•¸[+ÔÍ{{<­KKÂÁOª,舑¡‹ÂêþŒg¶4v1o|¤–KãRy:›ŸZÁ‘¼ŠòÈ; AD¸¦™}ãn÷oNÔVø“›Á/P51Ô£^J~ mû0` Œ÷vÈéåQt=Au«wB?*i<¯l?6UHHÎP£UTÚævg Îèg>á9Ù<*€ÛM‚MS¤/Æ–&Q ®XArÛqÆüßWœ4@®Õ°þ½¯6Iº¡Óïˆ#0‡aÛ]Cé’nÂüLµöû£Ÿð1þŒé’kíºIX9NÏaĆêüÊ-/BVª.ЉL7-|y;há]I|ô};6¨Ù¹ Bhhj ££mnôP캽f³¯–6 þ›[nq5ÁU;8©û)ܯ¿‰yÐìRëÛ½—2nÌW.ÍÉÇQ"Rkmáɺö©Üõé¢:ã°÷ÂV€OwŸØ’µqÓúO³ìCü w[ç`Nõ¨ßéŒM¾@fT`#‘ƒá ·ZÎ@ÖÎ(0¦5F‡wBñÊ*0E†Å@wÆqú×-ÓÄ9нšo?ü5m6¯÷¡ç=Ž ¡_Øa€Y ¢g!Ê[(2+${Ùª[ÈÛå=0ü½Pk6[ï|?vY ›Ä„>Ó(¸“í1ŠFÚ¹öŽY 'oqY‚ÿ¨‚;Ÿˆ^ÜAIÅ]ìAC2E’ô² °¯˜„›ºlÀ-õ¿Šì¦úŒ{=Ï €Ãf{Tç³q´å*L!ºü` ³œT$RõµH ùFœNód¬ðËæË0Þ?†öPVLÂæëN+¢ºbªƒRð˜i¤e©_Ñ =öFd} BŒfR?×{*ÿ¦Xަw ƒüðÈÚB‡ý%*8F)<ž…Ç6uPè:0‘¤CildÏ­j ¹3@ÛnžäÐ>ÅA` qZÐ:.Š¿÷$ü4ÐwÑþ‹þÙ¢Mê5C£%8±ŸqŽŸ>psSPbþ˜úq38d…ËR Z>9ð°qMÅ)»ˆYb5š@“Fr2—‡l¡H*3×hÇö‚뻨èZ«™íDi4¡g2‰ºi0ËÅ5ŇËìüí|߇h¦‘BP¦”æmÚŸ°ÏŒäsߟ[;Ah1»À÷OõÙ¤–;–àEŸ5£“üî}·ë/qÀÛ¥KªQ,™9t„HçÕ bÀx'FYz/“œYÍê]Ä$ð䯋 €Œ<âMåøPþ=Úß#ÚqïL³#MÝH•XÄ&ÿ×¾ìß ±B%üZaÐø¨DRr§Kwñ 'LSžJe.mÛ>nR”âÛ÷.º¨áæ“ ¹Áw’AÃ즪ͨE[%ucÒäŽÄå–!MJž™üwF€ÐÀ¥SÉF­úª{Yã‡8/‹Vã½ÚzÝQUÿ*BéBU“YÍì¿ÞË6²5#Åæ7·-®ò”üM¦¾øY?É?£øJ q@¬»üœž°v =¦LGuFm•„X=Ú^Wt²hÿ¦ä¯êÑZ&)’ò&‚R8_cçñkw,Ÿ/DMœßU‹ÞÝX%‚´ñ)CÎ_庰ÆpŽü쯟Í4(ñ’Tsû/žõ8˜¨ö}vœOèD÷p©½Ã¶—ë|ýß…HH-u¼Ôyb—Õò<3zTj'`ÛHfåKh|´Æy™âM1%p{o€b¤ !ÒûwævßËu‘ƒé¬ÙY¼®@Ô¥^›ªYÞgÙëw¶ÄåÔ)ëgU;å®düOÃ.廯$ª<^bòÕP=0ÒÎCP‹¯h™¸4퉵ók—7–[¥‡~ [Q¶¦æOec™6z@ŠÏ¼kUã²> Q†.°¾Ê6JÈg¹˜þBö…ì̦¼æÀ X—‚–¾Îvä§ñÐ^Ím ÝlwàëkØ’U’Vô°fiÄgì 8ßòGCz¡^Ä„@¹æn8‹»$7)œ÷ûøsÄÍ!"¸J «Ôfî )1&##_• /ù¯A:f9¨¢ÇMé)!Öè’ùâ“®×(ÉŠeà;\j5?£’šP“~†¢ü}^k­Nx.LAé®_S>Eóú¨Ú´ðhq«¼2£,ÆŠŸ-ÉÄLßdpe±CíÆûµ™{'ë¯ÃWäÎ7ÜqYzøR˜$©¹ÂÖâøÿ*¹ßÛÑ[ ò?*ä%åj– ÀÝ× "Tš¹{ú¦ ¤]Tï´˜æsáb èâ ü.„‚ M—½v8œ/¥ÀdÙÂù˜ZîgÚ ½üŽ3‘ax!tY˜á?ÆË‰W(yÆc.m=ï§ï²‰4;¡ÂwåÐòMá×r (õõÀPˆ³òÛÄùåSN™>»¸¯\92þðNcg´Bjð|‚Ï:„nܤßi=Ï´ï—îào>•]Wc!=dú·žßmÜæ‚*­ÅŒ^ᮢÖ¥'ú FP>ˆYM—ŠŸ‚õçÝÓ- oá?,x”þl8Õ¨¬ö˜Ú æÌݘ.PÈÖ¯2üM!-nΘyS7jèæ 9f—HŒ3»_VhiÒ­¤óŽ]å™ÞYæX,6ƒÐ|„N½?Ï+Ä'Új i÷c‹™¿Þg;Q|’f‰(Ç¡$Ð"îLIBºÅ…3#Zš»q9Ñy÷öh…¸áµDŒ­\O¡½ÛC>å­H4zÁÄ|ÁéWDæ ä¥kÓFæÿ K`iHü{E¬Q؆ֆ’)SÉ¡ú®½´szˆiøÂOŠ9ˆ*ƒ¦xîLQ+Üê%mºÚ¼zÞ…Ñ&„@â°O7i\˜4Ñ8ÛÓ$¿³Ñ‰üIõ÷:<€2‹ëž·GÑ3…°ÎnÐÛë9µ'Wšï­’¬°áƒ{_-Ghóxïh{¦3¤(•!dÒ&bœñU1N.V„ÚÙx÷$À5·ø%Ãmu[Ù#l‹(<“ ùvDMa9\E {¶GE+׉¿Ã®ø´†± ÁQß*ÚTØ×JA9‰¼ˆ¾ó=8”¼×Lß^?1 ˆÁ¯á& ŒøYIËB,¶°6WF MN{åeD{c“ù°­œô«y^ÃÒ.B4šô½ ¡…TÒoFŒ nˆín–Ï ™O¦ùÉ+Pr° Å#)œüLÝaF<šÐ r*ƒðñô|Ϊ sdÏ*Ú–-;Ÿå#òw×VׯêÒ,4º9RÔœ÷ÚTB ñ‘‹t‚O( aÃÊñòŽoÒ¡m±\”;[4–F©­x<$8+¶¤vàÇÖû¢«u¡2ˆ®e²gôAt–—®:½ O¸iqv _‚slв×댂xMÝޱEÕ•Rúúbö¤Ÿ×LЭ‚*Iº%4ë¢ñMF]¦À ÿõƒhŸ@Qò¦«â;jý‡³M=7¨³ü ¨ì´“c¯ôã%³Ñãs7§•šçÑ/9Ô.;R×pk¡pY¡ß‰üîƒRY0)nîYŠ×¹ÍC­Ìó=“Æ…|Ìòˆ¬Íú6 ¤ˆêíï)¦¯h•Q²Èe.ÒËÒ¿Kú°($‹=wq1ÍíÃÁú3Bò&*0>b)‡¤èd[ñ-Ñ*vråüÄĵÂ`H}Ÿô,ÓÔ²ŠÏE9ÐÎoâÙ%ü@Íá¸Y¶Â*ì”z³çþ (ÃSk.X“»o ^Ü_Û"Ÿ tŸŽün-¸óz‹ÎAù·:ÊkYŽÞßÓóuüØûkš%w¿Ü:Š®(Æ+YS¹Ù, dù›÷@ö±ÒPµE9ínôÿrŒüî½ÃˆÑsPSOûí„ ¢3ÀUäÄ´—Ùá4ϤAœâhÕn€˜k[]Qì*$pdüëZ®Ÿ°m,U9vüÔ.ÆÂfòÇÖ‘P“ýoÊïÈ“ÀÀSx¹¾á4ïZž“°š€c'®³.¢Ô§ážÝ³0Ef°»ú»G´ii£Øe…ØÔAî…ß³ÏG{$s3ìIÖtè@þýžÖ¬ó‰½p)‘y^Óî-¬ÓàÇ=€­"–µ®d áaß7¾YË#ÚSeà·ÐË!ˆ”HWH/I]ñCbü|¯Ø¡Q,ñúð¥vº¡y¶"¶ä ¿êb²ØdÀï OÊË3#¶TÖ ÌìŸvÕÈÓð %„Â&døDñÚŠ‚©¿²/äHI%r˜o.tq|ÖnÒôî2(–eqm$œçX¶*adk×;È2›Z˜=üB¶Òm“…à#z\ć¡ÎyÕ<=®T‰Mœ 7”·àØÐ noi ¢_?Áƒ|Ö½½j½n­£ôyĹÖ«ˆ¦–­€œÞÕ4P/£+ðì)t¦6r£÷1˯¨Ÿñ1X$ÿ<†LqîøíBÌ·röapŸš%BâJ©Y¦ ”²oW£m¿'ÿ”SN[ž[gïÿ«ºHE_$A\q bœ*rg>ðå$Ió™€ްøz6*´Š‹ l¸^vHá=K™|W·¨Ò^]0üLø ïD¬‰)Øj9jÐÁ=>={9ŽÄ~ÞmGcQ6á´Ë\„©'üJ9%µŽz•ÛÃÀãnážÄ‘§{]¥ClàIšûÿ¹ïÝ&.Î(G%ùƒ,œüz¸ÄLˆ ±±–Åû¯’=ŠŸƒ/©ËI3Y(»D•”9!ÿ¹Ã›¯Q#aúÎj@Ƥ†¿ kUŠ„íXòQýë¤9-ägÈn [,Á<Ê´×W•4ãx#c8×HÚάdÛ¦cÑÚQ¶L®½=ÎF0ç¢û?üL¸i`YY—ÙœÁ‹™f¹;Õb8àªúxFí)f5^™¨ÀêÔ•@‚i”a¡ðƒñÃC~ÍÛÅç”MˆŒÏ(@[óûà[ÂÓ‹/Ô}[ÄiCGDÙ„ØJ`òEN©Këqц(¶*“t¤7°Uk- –ÎK1>Z·Ë /5=-X>Df¹xÚiÝk$2õ|—˜Ò䇣#C©ÄmêçÊgÙ§³µC ù-µ Ž®"J-â ZÓä'希æörM¬‡›Ñè ßÏüMOXÀ悘IÈjŽˆ¿ÃÇoƒTÇG¨q;À×ã_aF<úúGP§`ËSIüÆ2K,é´9–ÍÆT4!â /°#` <ÕMÕ–‡Å¾Ÿ!§%ô3ņ½C÷ G¶dg@Cv2cߎ‡+DNj JÓ´’"±ÍÄ+Wùv]û}ª D¥Ì§hb„ î×½ï:⃮M€Z\T\ŠqM4Çþá £ÁÎÃú”Q,)N¶Gn±ÿzÛîs-ùa#áðì±l³Hšëcëtòäá–[“SüL«°´´÷böÈœ!Ia2çñÚÀ»D"™ñ¾Ìâ@„SáZ± Èl0‹ºJ ášïÞøLm“¡c u´ÚÎZÚîÏy”Oä+´ÿÀ˜£IŠÒƸØö1 (Ÿ5=Oƨ˜~ƒiˆG‡2Mú"‹  ÷ª×ÐÙ+ uÈ  äç[ûÁàý@“•}˜ýë 7ce¶2 ü"7ÂB63ÈYÐöHqz-T¬Eíp¿à%}¥°8õ yU¬ËF/è”-gÊKxúÿ±3²5–×lhPº»,†yü6°‰ò?ó(Ÿ¢å–_㎊vØõ‘Ñú6­ªò ê÷Å(ò~ƒZ,ÈÅúºµ†Å–F(oÅH_Üê¼sü>DüËIÆXS¼­ždOh ⬜jMAìº*šUIñn„’fû^µo(ÜæÃ}äÁamñÂù3BþaIy‰õKFÊ[uê|rþ¼ýá+S y*º¢/ðßJŸ{-Ïó·ßÆÏgŸOñ2oḴ byƒ(mÛK5W Â246=¢t —), ( „ÛPøY_ ¹€[XÓ Ò¢hê'î”Úü0x—Þ`ãHWœ®eƒÆ·}¹:£÷<ª~—òÚ²ÄüX³p÷Ó\F» u«°þ¢Î=Àʬ0ì¼T—®Ò˜íœ'°ð<»%LÚÁ"‰X(s׃ý­s‰µæÑ Ï%ùtœÉ’rF@Wc×±5âÊ#(ê¨ 2ÜzÙÇÀzq§oß°23-qkŒ¿©ªáyÊèŸ:Þâ×S,Ì.‹;š!ŒZÌcØjÉ·UCÆ—[¢œìo,$ÝZ>L¢dÄ`h>ÞÁœÓM1ß¡YÝû·Êës¤ó9ÿî%ê?OÙýQ£TZãŽE=#,¹Ü¤•-ogþg¬qüL°beÆsŸ;M|(~HÁYa¾ ò€–ÖÖ´È»ïŸX¥`šdôMßÉûÞî¹øQ<’ü3ÚióÒ û׵߅’ ž¥ Ð õP«YºÆ7,%c“ÆÜü6A6Ýðo› Z†#\m©£9Á¼£•+¯ø—šÞœ+gID_œžö¶˜p y-@#¨*¶Qó¢¼uØÔk+e]‘™j¢MòV¤m&å²€ÇñI5½jÌ¥ê3=8Zü¿®}¬Í´ý*û…ˆgÄý!Ïçg"ݼçâ\H·<¡è›j¨@ëâ üï3v6ímIZ °h‰Nз«°•ÚÙ‘C'@›oš>]81Y{=GÉî¦ Á~Òç¶÷Ô5ýå·Ì·¤ûµ¾²÷=ª²'`³¿.·+8[¢Rui«®ÚüH‚dúC#é‡vÃwØ£§¸/*¤JÝà2Ûڨϸ²ûYSëµ°ëXm Û~g[Iô&-aT5¶°zóŸ\üõ%“¢³–*ØÙ(°é‹±§ŽÁ¯I˜#4i¶ö+7Yàô²ÛÊ0¹®R2öGißêG<°§ŠÛ0!/Ætõ£üŒÙ[/­»ZäÆôM·3Ñõü5üýRÉo«Àèß½Õ•ºxNJõv%™ L}ÂÁqc~‹ â¹á‹C)7ŠwÒöÞò!Å€ƒq|¼A¬ÂýÒ(AµÎ~L²G”—Ì#¨ýi(/5§-¼F}ºáTð 0˜Lù»î¤<ˆª†8ßèóÕ-U-ò™®KšÑW5ïIQºêo±>ÂT·È~»‹† n—Çäs·á\[á¶û^DlKXj*øÚPžù ·á¨põ½oøz×Ü´– xǓӰ`J'PÏÊÕˆ6üd¸ëI¾-ɶMë–1èçÌüðàŠÑy®Ô'`a ‚ùÌ#´‹û爌MÓh½éÈk‹S_ýäH)AŒ$LÕ”š…+¥QM‰îÝÅ„S.7®'¸‰u··[ºI}‰†çÇû:…ĆˆªæêÆŒ %ù ¹Z‹%~üŠ¥jÀÕÙE‹TT"”@çgx=3öC?|­.F–K7ož 9PM€®}ÙýÔ÷û¡7gUy¸Óv%`/•Ð¥¦‹mÖ*–.›êøªq˜/>ülÞAp%‡hÞÀ»CÆœ†e&Æjý¢(ðË‚Ãx¨Ñø'µ(ÿâNeBL†…‰ {‚ûüM{ý8õÓUXã#@ÔÍÔvnš‰Awmë.àj݉ïòõê°ÊÙ:·ûé«N*Bn#tjW׋ˆÆx€æ:¸.&¶¯èü`L±NGÉ …^âÊT½±œ’¸ ]‘Œq%¡v Q4Ÿc"åh½›©Ø:¿æ‰]߉ûó±±K¡*žs` |• ™éÅ€ÌÞÌ#™2ÿ5ÿ+ÈŒ3vKc¢‡4¸Ñ´?©#²øýÉ*g¹UR‹±=•ŠiÁd_03„"…Ôi|¾eb¦eôs[¤¶ÏÍŠ|õoAïä”Å#²üðÒyC›AÅ„•)2™F!ýPb†bäÌ*hà‡FW¸»eݳS¶[9ošÖk%'ek5x»ÿᢖås›D[)åõ+èU#Bö ›þµMÁÐÌš‡ÐQ–gÏ(Ç€)KÈC(€qî˜àSûhi5ð¾TƒÁ™VÒ¸„îõT63w¿_¾IisœÚU»&˜…èµ|ÖY‘é³u³Òºœ'6â«¶©ba®]ÆÞ3f®—]6 æÎ+q‹Žãñ¿±i£:¹jŒ×ŒNǦ]@IÜšbL,®²_c¥0¬Æ[#‰üLëú !)òùî¤V ü/ö¯¸fI’Äj ooœ±>)ÈØÃøöȵý¶šm YcgäÓÀUõªÖi«ùÑÁð‰PmøOäv¥º^ƒƒK§ Oš¤÷Lû†ÒFehÍt}ìxœ.`Ññ^~$“Tfùâ4ô.Ô‘Z’öX;Rÿcë“’qcHÅjù[ó !tPë‘`eùMqë‚r„t[zõ8]ëÀy1†!8àT¯,‚ò48"{¾v¿¨¨†”Îo\Êi¨[šQʈrPì©=Jrö0§]ãLLøÎÉ[ 8«ŒÇ«žØìžüL¸Î-¬oj“J–,9ð7¾C9Ñ‹ÙBƒ8VîäyÊ9gZSõ—ï\ É×Q¯;9)£îVÏG¦h1̳ÈOÈ?1wãÅhü¿ðøö”/ÔW´“\ö‡äL<%D걞O 9í•>–¸öæ èæ‰gN0?-ê œgÌVºO}¢Ö‰©!ù‚5m€¨ŠØ’ÃB{kª}Kc5zÌJª6s Óäý §± ¹,u” _q.ß6âã5½´Â±>·iþó® ¢«‘ãàÖ må³y.‚Xi…zöâs¤Ñv™9MÂì[ãÑ¥¿í'Ñü6°›Nt+ Ìþ´ŸÿR¯éwg×¾°#“ÅÈäv‚j™Ømþìw;‹BH£ÜàÙQßO >Æ•u›ôÉ;¸¥ úýä(’‘gm‘.××XvÀó.8Ê÷Í{ZW¦˜ûòµ‹ÜpvÊ­óo@Öy]'µ ÁîÙ TÓ¿‡Uzª^»›¦Ë¯œUfÁÜ79EäV•}P"Ž5@‡‰šøzéØ03Ý‹85¦û{øÓ‘ѦÝÅ2šõ?=q‡ÀPþþ>~bñ>¶¿kw×ýy¸'¨NЕxõMËçßRaÚÚ çQ_gŸÿàðÁüIùTT¿ÄIaë§=ýVþ=?³Ç¡¢Fø؜Ȣè[µ Æ‚¤­èÿ®igQ¾Jñ.˜þ¥¯3°è•ìSwÂ@žƒñ~@`W;ɇ‰º¨…«^öåHþä8a“þâÔûìd·c©CŸú[t:퓌ÌŽ"E¤©-Ï€üòÌ*èëì䦑z¥«Øò†,‰Øà*ɆÆÇiŸtûð‚æ½€[5`³I8½‚H¥,8šÛ×¹’ÇxVÏCŠ«“L/øÿwG–GMÊ“ ¨Í·];ån“$v’3»Tþ@ÿæ†%:†Õ&2‹JÅ+ü6i·ÅYËê¾õMͳ‘ÓôX¡^Å<íÑMA©fˆµòÒ–€ÂEÉ>âäÖ$†ç­^´&C(oü€¢šôyÉÅøPEószsRʥ˴ñ˜{xŠ+â”bÃñéÏ$ÍÅñ™Y|³ÍŸC£„È6× ‰éò°„óqÏ]ña á ŽÀf´ £>Œ>µ´ëå‡çtz¬KÐl.kx휢dô­ûÙmmÃÔÜ‚Û …31ƒ$2ZÍ}1WiJe»Ž]ñ̯²)…ü…ëËˤ)G@Nù﮸9ÉjuúÆÓAüÃ_Ùp‡H†ª{¶*!ë®åàãôU¿™h;'üÓc >ù6H¹©]½5FÔƒ…¥þùÜB­±v·'ʨø¹P­?åozìòCu€:ËÏðæ´î´YÈLIª:.ò¿˜€—àüSñÓoê žhYs{N$äm-\pcª9td+•2Açl+2Î"yæ¢)þöóð&²éÉ·Ý•XÉÀ†„ý³-"¸_á ¦Ö6Èj+ ï¸pðÒÝ(³¡ppºÈo8"öJ>CšŠÞ 3,³núy–oU¤æþP·v-CÞyK½-çÖ¶‰j>Ê¿ï©óeèºTCÆØål_1«ÀµÏÕ|§¡h0ú‰Ð€ è;kÁŠîÜaÐ*i0Fü ~Àͬ<×ñx ¹Ó!ôÞšˆÉâè¡w5¾ZÿV3P¥òV­i‹„,á˜eÑÃ;(E9н¿—ÀÏðUŒš!ÕÒ'”†§uGrÁßj“˜‚‡Œ^¸9î—èV]”7iðÚä‘×¼ôê?ɇ]U¯˜ [~+sT^óEû”¶01rY\Wö÷mø41"Ô¤‚Á£Wæü.G=’eÑñspÔ(Î$dÎÒæçd ˜ftoåd°ÝèF‡Ñ}©q;û§!¸R·>$%ž–VÑïgüt®”ñÜ`%›\Õy(NÓ:Î ˆÅ þDÌœqNLj'kô·ã¡%·8ó ›#±yXñ€}ºÍÙ°bÑÌ×eD yM¬T7rœÞ7lm¸vm $¦›è]äà=J!)…‘¼Á¥ÅÖõKF~•PÁ T,Åý´’ahŸ/sŒÒÉâïwþ=aTwU;ÕäÏ>Hq2Âllå0Ñå+éQÉ,Ê/{®üL¨×ïè3Õˆtb2½vÑ„4ûP‚³Ð©™®BÅÌÜ1±¸·ò|#É’µ½C8¨Þ(’çlÜ^Ú©rÊÁot;›¬C ½'´ÙkBbÎX”/ÐO«¯¦´-¿®¿üà,3þ×Ö¢£ÞæÚ#‹­}LûO]ë×òäÙ™ŠŸÿJ™5)`(½ð46Z¿C¢•C˽\&ÖsXv™êË3»)ñUÆÅ ]Å-›äÈŸ¡_Ûm­êýPÙÜBº8ÿ‚Q TÄYÜø}U=ÑĻۇ›R°â&ŒÚX|rVÃüîʛَ~r¼„¯ŠûŠ„¿ÆKnVŒQŸáäœaÞ€ £)˜Ó•¹Ê£3ien¤Ûœ”íÓ`éIíÞ;ìü‡_Møãm^`™µ‚7=ߌ4™±zv¯§ÌÏúz.Õ“RLñàÄ>´˜×¹óÇž±Môñ²§ìEïÞí{(Èå0J°žö¼gŒS*TâØüñ×ÿ=7ñ-.ñ¢aö¼)Ðb!‡©{M žÎ ÔMwzEOHÑÝmlæ)øú«=9Õæ­ëâNòÐ; €‰²‚R¡'¥Éù8(¶ÿŽœ|óÞ( ña}o¸I¤c³TL Á¥‘(—Œ«þQO}I\ŒªS¦zßó °EÊÒÈ‚7麭Bø‚ÇxO%özD5ï:ϹF^Ÿ F÷ü¹ÝŸÅ„ÀO.1”c{XpG}×Kûdx)¸ Ô*<³jÉ3´¹”w¤ ÈÂS_(ÀžÏ#í¥à’ßüðêðȨO!_¨ EP«éØ Ÿ)÷¾è6UlOµÛUÞ{žE×¶D,H&že†sVyó@ù4|f®¯ Ò§¹*X‡þÝtRë™N«=ÇËòZíÙßÇ4Ï×6ŸVå,_­~€HËJ2Ò,!Îø>œ7‡Ô9Ž}Sà¶èAi*TqÖ9 õø‡ÔøÆ­2¸Ø10@/x¢{‰™¤jç««‘9hF¯WH˜¿Ë@ÏxÀ7ñžÙ=r±„JíËläiŠ-§(-?(ÆpýóWQ›ôõâM;¶£¢ÝüL¼@”?’‡2ƒæo>?é:boŠûIJVêŽ9AñK nb@‚,¬õÅâ„({¥xÇÍÎTŸð~ÓÔCÆ ÊÓ^cð+‡×ðß³w(òöBÎÞ‹;âîòA©<ýqªIÌ îFlà¥s’Þá~?¬ ~yãCùRc†¡K )Z¹å¸ÓÑ|å@¯³GÈoYc@º'‚ÅŸšd¿/òÃ÷™ˆË\-s¹KñWü(»Úå®ÕÃ+äŒÚ<ñy…ÃgsH¤ÜnHH*È#…ÎNν–‚°qpÞ ^òãG ü|·“øéz9kdÕR4Òó¶LœH´ íŲp¶…h‡UÉ\H‰Àmí“YñåÈžÙ¨3"ú=‡¶g—~£»[mU¼i;þDdÙ 1›ºË:ض*˜»Ò#imÑeuååÊ|LºÞˆf±aàš‡Ì½#íÜnrmº[–Zd«Yrò(r?'…q;ógWK;bd‹NzC¨4c£zïmvñD¢ÛÑߘºçLå“~•²D<ƒ™8®Sz ·lýÅ6£0`ˆ7ú@;*è;ÑoÿHzÂ䨡ýkD©,!…¼ÌïIP„1?½ÿÏö>­"„žH¹™ÞMO¼Ü÷MmC ÄÀ;¯(´œa¼ 83ã+ª\¸Ë÷"9>ä™ôEÉó³@B>–²«m\£À€ð|­¬ÝŒ59½xOÂ6þ­[j¶Cú´JÙÝæp×#÷”bPP'áNæ y[¤‚ñïÇUqPÈß!êÁzQ)€ýlÿÕžå;¾„aA–ü1” TrmóÄ~ ‘4íÔ†ˆ.¦F©éõQ¬•@Xé"Ïg–Îæ‘dŽsVÖèàñåüñ6ú}•žŒÔPäî?:“ gâÅHþÕ^|¼LúÐtƒ;;ó£X²‚C>‹"Ö*ûºº>ôt¿‚W³^£W\ Ó»iè>>¦‚^ÆX`N¨<Í(–9[¸ –_ÄõVŽn电Þê£d®¿¡è—ýî·CMð\|ŒÜ=Ó_û)ÜžÊù‡0¥ýÜéHs'ë»îxšÔ”ÿ’B-XSÌÒ$8¤ç4g'^³ßüJ›„Çl³â‹ÈZäa¶*ë ›s»ÙeÏ„ùµáÅ}>Õ¦ ç?»R±nŸNÐYNõQ2fð«Ø {S:…Ç<ÙB£€þô¼—_`ʳª” ä¶]±êšshÒd‚Om0¹§®o( 8æùUw¬ ·+ŒË¾ÚÉ6>Ì/Í­Û÷¬ìg=a»mȤ 2$Õš$Sjð”û}æ P>øù `=>¯ßRº£õ%[RdAë ¾Å=5VË_AæxËY÷ûLÝ}ÅãVËE'v}#ä£}üIùÎ ãÁѤ êSt˜pzÈÓt¥ÐÎõàG”ÿÀÅf!˜Í7¬£ÒÖ̽|ÿðHT“~OÈT…0‹ cvòÍUH­ryÌ÷¿1 %¢R©jkg]VÄÆÁ µb•鋸‘£¼Žè.Wð½ÿÛÅH”ÊÌÏê!ÿž§óÑ ?G‘þ«!g`7ÑG3–@x9o –dчɲÄÐߦ€ªŒOä3ô=žú83€_ì´Ý#ë&Òïù5²6ì~Ö ƒhÁŸu¹ùÞ’>~ßÁކ¥BãáÛ} ¨VŽç¬RÙüMRM^¬&ƒ&#œÈ.§¢î[ß¹)-M»Óm)¥]Œí«å fþ'³jXqð78eºËˆ .¡öÎcÞ¾‡a $6×8­Ñ…Ôð$Ý‘4IÛj*êv%9NéÁô0Ø#½PްêqrÅ –MbHèÁî·Ò¹ýƒlwÍQÿ‡ƒûfXç¾ðˆhþ§û-”|©$ÀüÐ)ÑêÖ<Á2—å»»]43‰Ã"­5äÖ¢‘Ú´”#„ù¸pêÇÈÓµÅ6ü¿Í¶‘Ò–á\9“ÿÇ"‹4Òð‰m‘ÖFjÔOggS8åW¨äzV·™¦ÿµüz½>>#t¡LµXO‘Üû˜w†×5Kàh)Mº†ÄÓKáN¾º¦{X9Ia6`ª##åbmwcöвz¯5Ë›#•fvj…¾ ähË{±+h1¾T¢A™ÞMW™¹šÁÒªœà=Ï÷)!kàÛBZmÝÉÕ VgØHiúÇÑ„`<Í 4£Ÿ1ùÓ5Í'éOnéÃ"_J”wocÍÊšLR-œ»1Q‘RF²ã—"žÇ¦yìè(ÒêK£¦>ˆIu;v}íóŠù °ïÜha=»@o¬Êø·Í¡ú]Þ 47£ÚË8ÒS D®¼§ãÓû¶÷nôNmXÉïT'•jÉÊ-Û;$‘X…•=-ZE a5Ô¥2p©VwÐøÎŽ†ç©Å!¶DuªHI[ñ¦s‹ü!/|žY¤Üo*/OòIê#úžCÿÎ.¢O~vÄßàÿjMòÐHþÒ 5ˆ ´ О÷ÀÀ8Âc{M4}˜(ĵ„ê£Â;ÕDkîÑ·rtpengine-mr12.5.1.22/fixtures/pcma.1.8k.raw000066400000000000000000035230001474347554000203600ustar00rootroot00000000000000ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕUÕÕUUÕÕÕÕÕÕUUÕÕTÕÔÕ×ÔÔÖVTÑQQÐÔÞÄÖÂ]tÁÜHóøÍáçSÀå\ÂÀpBÏíè–æ–‘þ’wfnøâè„öè€Uöje”雄ÇüiJ cçF‚ef„àYÛ= ôÜ•œ”sqíë~܈•q€˜LêG…“‡Šžä€ƒ„œ€Šö„´œš‰…íê•sñ…ç‘bujiçø†  m5`xhõîb{wóÅk5<7 4 2?72 7 3<   ãéGAì40ñgy=z˜¶ŒQ61¡·í¶[ ¡²2¡¹= ½5?…± µ` ²n¹¹ ˆ¶&:?ïb±žš²½¤ ¥º¦º¸€Ü›Lš723  ‘çŽr›¼µº¼²º§¸¦¤³¡§µ³‹´·\”Y[ 2'68-!?%%6 Sò’Žƒ‡‰µ°»¹¤¡¡¡¢¤¹§¤¤º¡ºº¸¸¼†ˆk%<3>06=;0:':!%9<=25‘ïæíý˜O“½’Žèlû䑸M™è劆mš“ L;>>$&'!--##&'$<:33?61>022 n–‰Š½±µƒµ‚´Ÿ€Žƒ‚…Þ71:%$%%:2%:>%$2$$06þZ˜„˜‚†’‚€ŠŽ·°³¹½´ˆ‰‚¶½ˆ¶¾¿¥¤°°¾¼½¸º¶¼¹¼³´€úe`=7 5jàaý Û5iðú‰·¿¹»²½¿€µ¾³³¥§»§º‹††}åbG}Y“ò÷3 55ú„™Øšn74 5~{md“z|€ÎUýŒ±··¸º„‹¶‘´µ·‰·‹Š·µ”AÚ øçOô4 6 5 71=4y•c„”Êø|úÚ‘‰“Œ±µŽ´àìƒìƒ‰ƒœˆ„ 9;;' &! :&" &'$:?|g‰‘îâ‚⛈€´³·´Žƒ’ûP5öõÕë`7  7%=9'=?>505=5“¾¼»¸»­¥»¦¹¸¡§ ¡§¦¸¤¶’Ÿd 465?>10 khî·¾Š¾Š˜Œ·¶Š°´¶½¸‹œŠ†ñÐ b‡à Û`€€½ŠŽ¾µˆŽŽ˜±°†³½Ÿƒ… 717 õ és{•牿¹Š»½™Œ³Ÿ…µœ†œ‘JË2<7 Ø“l5ä4d‡”›€ƒ‰Œ´™NþpÑá“6$7<&72% 6k|Ÿ—½Š°·²ƒøý Â5 =?$8>90<615 iP `êmJš‹´‹·…”žŒðê–uG 1 ;>2?3?5=0  s„€ŠŽ¶±‰²³Šµƒ‚ƒì†Ù—é  k ‡áQŸ”_ƒˆœ”ˆ…¶¼°½¾¥¶·±‹ž¶²Œ±€r‚µm` 5 oØädÔTŠn‚µ€Š·¶é€šÉz޵ä•õ—Üú†ív‡æŠÆLšà•Ÿjs„ì㋇Ÿ—fš†Ÿ’€…Œ‰›Ažà5— ‘‡æ€“›’°r vèqø’p\Úljk04>420227 eA×v韷ƒ“ŠŸë‘ôooúqj 67 73>135 –žäŸ˜‰vµŠæ±··¹·’‡f [ 5È bÛŒ†…îwh{…íöž”ˆ³‰‚ECÖí”å’‹Èpœso =54méeé_F‘Ÿ”“œáøˆ°ö³¹Ÿš^ùÙÏcä5{žf´¿·¼¼ŽŠ¼šèžeå™”´Š¼°¶¸³±±²‹²º¥¹¹¹è‡ž 4”ë‘‹ü÷g•olãÂx´µ›v 46jKCbk÷Žëžj70 20 6nlq 11<0 =0 ldaçCb™Œ‹Š‰‰†æ†ž{4 7173?8;>9> öímø“˜æ„´è–›èfýo44006 Å 66 662 ï–ˆ‡‘kÇ…›‡°·½¥»½¥¾±ë–Š´¶·‰€™áûꈌ¶°ˆ†—’ï|üf–‚·Š··ë“M³˜‰€šÞ{ü J“”Lìë`„°²²¥³Žû˜žâÌÔBžžš··‰ˆ•„îdœ³²‹°´€Žmt5xmî[“†€´†îùm_€„Ž…y6013È÷  hÄd”›d 6730 5 ü 640Ÿ‡–ñÌjÑ›ž„FnoQú‘çúò72806<0 e4473f‹ý”7 RÑñf„šý“Ö0664nù윟™ww†Œ±¸½Š²³†í—Ÿã•н°½ŠÙ–†ˆ„±³¶±ŒãøÜem“ú釟ç[À‡´‰€ƒ„•éx h|f’ˆ³²‹…ƒ†Ÿ‘„µ´½¾¿¼ˆ€—ajzoÚŸ‡€´‡ƒæk˜´µµ‰‰†–lZåÐå´ƒœH{øax턜ìr111044 fD{45@âxOà–j37011f 02Ïš›Ýж‹Ž¶‰Ÿ¿º±¹ ­¤º¥µ›ê´—Ex€ˆ½·€´‹òJÅøŽ‚Böe5324 7} 64nËn‡µ···¶”øïŠ´°¹º §½¾½·‚…œ“ë°¾³·Ž‹êäàæ`—š†€å‡èÅó7?05Ä”—Љˆx`jWŸ‘Œˆ°‰Š€„€ŒåK_µ´‰±€„ÜÎànêàýfî13604 îúä 4?46w02 ?97…c 35d…i2;?=>6G“{dŠŠîû`6 4ásBÕi44j7lã` 704„egÕá 54=2I瘂èêžålê”eï¶Š³¾¿‚„±¿°µºº¼¿¤¥ˆµŠ…š„Œ¹¶µŒŒ\ ƒ‹„œ‚‹èœè 46vP hj•…‹´•–ŸˆŒ‹¸»¾°±Œ‡›HÊŒ……‰„‹ƒ›rý”çjpFàékì•ÈðØÌd[|}ÉÇ·µ—öý”qrÅ΄Œƒ„ƒ…€œåÓ} ëÞó ”\c`  51 71WùêÅq_ el“áï  PŸÄYuaÚk ag5EŸ”Éóaoih‘›š„ˆ‹¶‚„ƒ†Š¶´ƒˆ°¾²±¼Š¶°¿¼‹„žäóì…žž…€›ŒÌ}j gfò„‚„Š‚‹±±Ž€ŒŒ†Ÿ˜ƒ‹‚€‰´²´…胇épû㛘€—ÞàñÚpVbØÒmkäõÞÒÐú›ƒ•mf5ï“‚‘„›„îyu—šê“‘†š“FmgwrkaoIhR›åD454njjb`sZÅ74 7 5OoÿñÕk iùcdm|fhikðùôlšš–uEvV@  ÿ‘[Êå‘’Ÿ›xÝ“€™œ—ì€†Š‡„Œ‚‚´ƒƒ€Š‚–—µ¶¿¼°‹€µ‹ÉãtX•øIcãøýjÀda—‘–íÐøé›‘îæ™…ë”í„€´¶µ†‡´µ´Œ€˜œ†‡“Ñ•Ÿ‚Ž‹œ„…™v“•n k”€°»m49P´¸´6úi ŒžÆ á¸-¸ ‘&µ6`2„æÎ`jæfƒÆ r5„ zn eN„”´–䆑nwÖ†œŸf<1109126 5=4  <;%$%$< @€º¦¡¡ ¡¥¸¾»¡¡¡  ¦¦¦¤¥¥¾¹§§¤º¹¼ŠµŠŽ™‡šœ÷ñƒ’˜Ëá’Q 60>?03664576?:'&&''>62=0512?8=<34sayâødŸžž…žîœ›€‰ŠŒ‹·°³¸¥¤¸½¥¤»¹»º²´‹´µ‹ûÛÄó}|ý•Cù„†„‰ˆŸíà”•çäáj  1 5 164  5102760=5 74  o4 Ä|bdtà‘™…šƒ‰¶¶±³µ´½¼¹¼¾¾¼½³¸¸¼²±°½¾º»¼¿¿²¼¹º¥¿·‰€…„„“Jaltìî”^ 4 hc463205636 <3452%;?<;?610=7 3=73<05DsjfKdnᛂ‡‹Ž‚Çb—’†ƒ±ºº²°°³äôΕáù‡µ·Šƒ³½´‚ŸBjæ’ƒ°¾½¶€‘XÍ…ˆ…„{74667z€“óo46 e~èš‚ÿ Óï醷°·ŽžšÜ`ûŽƒ‰°¼³³°‚ nezÀ™´½³´Œ”Aþ—žŽ¶‹›Ÿƒ›0<016ð„û51:%<1 ql>!# &%>06 13<9>0d”€‡ã@g0=005J–ë–µ¶„ãû—žšƒ¶¾»¥§§º¿²·ƒ‚Š´½½¿º¸º¦¦¥¼¶²¼²¿¹¤¦§§§º½¶Ž”rBΗ…ž›™†µŠÓjcwðÇyÄÉo6>>=440364  0==8;>?6à€·±¶¼»»»¹»¹´’žáöž‹€šŒ‹‰„‡µ´…á{ÿ´¸§§¦»ˆ—o Å–Œ¶½¼··½½´‚еƒ›†·¹º¼Žñ 5 å’™ë{c  60 aÈ’„Ÿä?'&&&$2nÒçl50?99=7jf]žˆŽžõ ?:><>= Ráô–‡ŠµµŽ†ƒ“ìÎ~„“âêÉnòêÏ€ñoSÜZœ„ŒŒƒ‘—ˆárHóãàꟅ‚‹‹Š·‚œŒµµ‡“Œ‡åÔù󃋅vF›’dzy]|aÝ瘆”ðf 7 47  41ó÷—ƒè  7075 PÒí–‡šît[éåÅWÿéúìLÕpnï…÷|„ŒVù 펱½´‹ú•ìëä‚µŠŠ±¿»³³´îáãÅžŽ‰´±¹½™žž iw€„…–úóB567Iclë`5>>8%=6gÌl}x1pMc—Ž˜d1>;>1 Œ½¿´Š´„ßN|’Œ¶²¿‹Oa뙌„rtãêúm”Ïö胶º¥»½ànASω¼º½††éùycgkåãJîš…Œ‰ŠŠi7717Y‘†P 732  x›Úêm53:= 0Έ±–G’âsHxa WÅ‚…K•Œ²´“—žœàt dް°ˆ€í065 î…ca•zñü÷çÂú™‚¶³·µ²½·íw……–šŽ€îœ‡‡ŒŸûéjoŸŒˆµƒ”` _b 3>244ç~Â4  omijvžå54 ™äï“ìtjzâ’X``ûÑ„…ë™éÄŠ‡lg7‡ØÏ†—kÓŸ„‹¿²·X”…„¶¶±³±³´‚µ¶´ŠŽ€Ájö†’€°±‚e@’EÜ——ôcÂꓚm====6ÿôj 001 d| ôb70 “œjkhwUjr⇗æ{ 47錋¶µ„Ojàïá“…”Sš±œœ•þ“±¸º³±³¶µ‚ˆ²±´±´µ´µˆ€ñûáHßø‡±µŠ´™PmiЙ„˜706܈ÿ6501 5†™n5 0?5ãøþ€‘5323“Œ›ãKaoh4okß^ç™àeEbkℇ¹§§§½·¶ˆ”þˆj711<894  ` 4  2> Ÿ·ˆ–gb 41‡†™ƒ¿¤¤¥¤§§¿¶ˆÙ€Ž·¾§¡°•t ?9347üêf  7514 šî 0 fo“ŒŠ‡•|à‰ƒ›Œ›„Ž´³¹  ¸°Žœ÷탱²¶†…dÈõ 7557 ñ•b3972>2qI”éÀtCk˜Š‰µ‹†€âeñž‡†±½¾‰ž‘Ÿ‰Œ‡Š·ˆ˜ëJK„‚êæg447501}â™e 55117苆‚ŒŽã57’ƒŒ„„´±²¶·Ž‘JÅ…‡†‰¶·í–D5eëã atÔ 49?öð^˜ç601132 c‚ŒžÝ|„†„€åoìÓ²²´¶»¸Œ•‘…77›‹Šµ¼º·½¶n=0ë~‘žk016<%%6˜ü —ÜêM s‡‰´—  xƒ³²³‚µ½²µ‰i`€º»²¿»Šk 9%>õÃb 475=0ãø˜‚—=1ƒ˜“µ‰‹‡–‡ï—䎳¼¹¿°‘x ”·³¿µˆ´¶±à 6<>88 œë„ï 37>%!?7 jÙ‚·¶Œâ 튵¶µ°Œ›çësAŽ‚ŒŒ´±˜‰•—†ši]¼·‰„–?>%%$86za_µ• 0;36ͱ³³‹|45Γµ·±§¤¾´‚Si|oö‚¶Š°²¶Žœ… gÉ“•”æ =>9 6?=îog`é450 àö–”€°‰‰‚€hD•Ϙ¶¿¶±¼°‰æžFd þ™¶¾¥¿±¶œåÊ 64  502;<;7 `éí–@ÃmÞjØê›–Œ·ƒ›Ûžvoc’€…ˆ²´·´µ´÷ÉæšcË‹¶˜ƒ‹²ƒ—êòh17262= g7757>  ‡†Õ‘Ö`xÏ›”Љ¶Š†µŒˆ‡ìçäêš‘œŠŒ€…ãö…ô˜„ƒšŽ†Ir >=>70636 5   4ïú’“”™—‚›Œ™œ“—™bîùŽ´¶·µ‡‘†Ÿ•…œŒœ„¶·‹´‡†Zœîál 4267172 1  c Àv—mþQ“‡â˜úà—Ÿˆ´€µ…‚‹î‡žŠŸÆTÿ‡ïŒ‡‡Hþžàéri551 4 Èlcé{{`ü†š€Bãá™âsa]……‘mñy†œëkcäl“‡˜“—ŠƒŠ‚´‚µ˜…ƒŽˆ‹lk 676498&;2=1=09=2671057=2424J†‡–ŸêDc sÆ`‘îš‹·½±¾·±ˆŽ‚Š‰í™´¸¤¥¡§¦¥¥¿°³‚›‚…„¶ˆ¶¶½´´‰“Ëm‡™€ƒŒŒ´ŠŽµ‚šŸ–„P˜œçö–v“de4 16<:>;=;15 179=360<2= 153 47 [lœ—‘Æ|óÆigår‘Tž•”ä—‰„€Ê›Ÿ€ƒÖ—ÇŒ´³¶²°¼´´“›è“ÿúƒ–‚‚´ƒµ‡’×l’•Ÿç›‚š™†Ž›þpœšÚ†…žÛþ 4  7542   7 5b`75ìWá{ééšáô `sœ“…™ˆ‚„š´„è㜄…’€˜‰´Š€‡™µŠ‚ŠŒŒŠ‡›Ž‚‡“•኉”ë’ï“á“uÅÖWúŸŒ‘‚ýxãê„úŸô•œ“’obo 4 0 640 5376g  mlýmoõ—ÀåBaÞNœ›î“æ¶é†“œ‰ê–…°µ‚†°·´„€ƒ‰…ê„„´‰´Š‹…ì˜ƒŠ‘ìz’•‡ƒ‘†’poê×á~—…˜àŒšŸ{ú“þ07 08> 7 6 5537bbB 탒ázho }U铆‰„FÏ䂃󘵂´¶·Šš¶´Ž™‡€Œ¶¶¶Ž´‹Œ€‘µ´‹ïç„ŠŽµƒè╞‘R›œâkz—…ž†÷}o”˜`âã 477 036 0136 7  ÔYkÆœU mÔÏ—ÿxêÊßhä–èj㋊¶±›˜µ‰ƒd’‰´ŠŒ·¶³ˆ°·‰†Š†…ó„µ²°Š‰–š‡‹‘–ñ…›„’™Žƒ˜dDXáõå‘rc‡„™ìdPhçNk06 61?3444743216  dye  ì—”Çedrj÷”“ò–Š…vBž†ƒ‰„˜‹·‚‡„†‡Ÿ…Š·´‰´½³€s€†‚˜ëœµ´Šˆ†’œàÕHáÊÒy–€ŒƒæDé’éknÉ÷™âJ   e =>3  60  =%? b:<=§¼—²K'8¢š!¢±!24¿1ã°¦¥µ¾w,¸‚&?3€ùÂ…±¤¤¦»§¡¸†€€U  32 Øà“˜„€°»¤» ¦»¸¦¿² ¤²º½¤¶ñ50;:!#' ""&'!'$$%;233620=5èµ··³‰äž™žá•´‚…ˆƒÿãö50:>%;9;8=3= @ê’’‰·´³¿¹¿¾¸¿¼¹²¹¤¿¼½³°±³°ƒ‰‰¶µ°¹¹°½·„kbö`iíëVuò 7245Êéö„µ‰ƒ„ƒŽˆŠŒ··°‹ê‘z 4 07=>: &'&'$&:>5   jZzÉà‡•‰ƒ…ËÁåcný–ˈ½·²¸¼¿¾½²Œ„‘—‘ál743>8=3=5 `‶°¾ºº¦¦¤¦§§¦¥¥¥¿´±±´‚˜‡ò 4 1 0433039<3=2 5 |•röë”í‘›è™ŒŠˆŒ˜ƒŸwàÊ{]` 406120<26733 45á…œ‰µ‹žˆ‹‰ƒŸŽŠ·¶ˆ´Œ½²±°³µ°µŒ±Š··¶·€€†”Øô 5 317 yjgÆŠ‹²Œ¶³¶½·¶‹‡Œ„—Áz{4710 7ÑeÞkÀm5 >36:8>$$$$$:227 ’u蜎€¸»·¿¿¸»°¹¤½¼³³·†10<;=065 6kž€ƒ¶°‹µŠ°²½³‹½¾ŽŸš†–€€çïЖƒ˜šŒƒíƒÓžŽ‚µ‡Ÿ†‡• 0923:>8&:><9>6 0 kü匎´´Ÿƒæœú 53= 1? :<16 ?Òù´±¶¼½·¾¼´‚´‰ŽŒœ˜sí{mii gèä—–—„¶¹V´¶¿²±µ±¿·§°ˆ‚°¿„úìŒ\ñ lKCÈþâçg‡µ‘O’ayò >12==<26<';=;>;<3<Kí‚‚†µ³´½¿±ƒ¥½šõœ 40311;27>;& 57`—ö’ˆ³±½½Š²½½²½Š´²³aãÉu7|ßž‘[닆–ƒ·§¸¶Š§ ¾¹·¦ºŽº€€‹™€B’]{kâi214940=%8 537 7q4 oäayuønmp7”506Yt„`5’Úo€ÿ`ƒï{Ž•—Ž´•„’A{Š…œã×X–´élLu –úà•½Ÿä„´€“±³„°´°¹¾¥·§¤¹¼´·œˆ°‡SïŸb76 5<4 0ÄtYAï…†ÀmIu˜µíŸ4›Ã=347335 ú–™g‡vfšµ–€¶dúž‡†`Hõw lƒkšµ¼Œ°„Ÿhn=<2?7df ‹ˆŠz> ;2 244Þ“ƒp„’•3@nĵ²½¿ ¢¢¦§§ ¬§¤³¹¼Œh782=:6> 1>499371 †‰ìn1w”Ëòß}u‡°Œ·æµ·søŸë´Ö}µŒ°½µ¶âŠ±é‚ž”ŠŸ| 7$20Ÿxè hì’d¶à7   7Zrwˆìÿ絃ïkŒ…ã„×·°¾º¸°‰±·‰”oƒ·ŸS62160=161ñ 7‘êt{žn„—bš•홄 u†ã倘àš˜]û ‚±„ž±Ë‹Ž•’´Œ…ãÞuefnh—ïÛEõk MÚ1 kðPö™—–‡à÷œái’µµ¼·‚‚‚³½€Œˆ€ áF0  fn7{ ouÊoniÝGiëy7—š“ÞŒô—ŽŒ†‡‹´›{à‹„‡µø‘Œ“„—šƒ†´‡zwc  gþy‘ålúøðÊnIz†K`_øÒNŸ‚‰Ö‘í·‰‹¶”ìž—›„µ°´“ßewždp4qO 7 g`ýÜÇl   Ñ€qÜÞ`åëÑš˜ïšá‚ƒ›‚µ²»Œá‘”™ƒž••€ƒ“èøòXêŸÙ fs 5 m À—Ãbjeûãœá…ƒ—àò矘˜Å‡±±´Ž‚‚¶š|PbП”æHœ•”—tjÓgÕ55Í—æE5 507 i‡›Rûã‰sþØ“ƒ´œgR…ˆ‹¼½·ˆ±´†æiá’Ÿ]gg‘Úm Ü æìaiŸœ  ÷•“|—éòEÁåÝøÎa“ƒ´‹‰µµƒ–•íâãf~ÓD^“œîfh x`ÿáVš•‘qeΘ‡øCNÚâÿêÙ샃‰‹·‰…åÿ”ï—æõZ€”ø•ça ÁCýàé–õ’“j  Ñ”ãpAâãBXî…ôÖƒŒ‚‡ƒµˆ†èôþ˜é{PÆ’ø{Pf~d|–‘t}ò‘™ Tᇞ–råé]ll~ôâ•„Ÿó›››ÿ÷‘ž‡êöÜ™„žêÀ4pdh„53„°±lö›ùŒžšÝ6¤ Šät³:Šdj’3–š›þ~w— 7àœ öHZz˜ãƒµ³Ž‚±½»¾½²¼¾°µ•g1465b  <<9&$&'%>9922<=9%;$:>6Ê”˜ˆ±¿¼¿¥¥¥¥¦¡ ­£¡¦¡¦¡¤¥º¼ˆ…öURjl—Ÿ–æäçmþqïâž”wì^Áap`  022?9%'&&%':>4 j󄎉·´Š¶´Š›äangË䉶³¼»»¿»»¹¾¸¾½¸»¾½°³³´µµŽˆµ€•„žYÌï}HL 05   3=9%%'%$8=0 577 267  oòÕijiojòc@ÝyùëšžœŒµ¶¶·²²¼½½¹¿º¼¸»¾¹°±½³´²½¾¥¤»¸¤»º¾¸½¼¹½±·¶‹ŠŽˆ€…šëåJh50?::%$:;92744  64142<2>;$$'$$'$>2<<1 6336477 h~uá”—|„‡€‡†›ŽŠ·ƒŒŠ´´Ž‰µ¶Š†Š½·µµ¿¹°½³¾¸¹º¼½²³³½¶ƒ˜ƒ˜Ÿ…ˆµ‘ôûImjhd 46   3?32>902<:&$$$'$8%889%!$$%$>2065 132 ÐŒ·³¹¸³²³³Œ€€€Š¿½¹¸º§¤¥º¹²²²¼´´¿¸¥¦¡ £¡¡¦¥¿¾¸¼¾¿¾²±³´ƒûê”EÜ_íõbñÍ 63=8?=8:::8;:88%8=?:>=011 42<7?:'88:?<<>144=?=<<=6745m~Wonú“‘à„Ž´½¼¿¿¿º¤¥ºº¤¤¤§§§¥§¦¦¤§¡¡¡¦¦¦º¤¤¤¹¾¸¹º¥¤»¾º¸¥³°³µµŒ‹…ùÐNVng57 7?::8;9<=:$%%$ #!&!&&&%>%::::8>?:'90=<>=2?=3=><7475aØ^å–„Ÿ“ˆµ³¼²¶±°²²¶½¿¹¥§§¤¤¦¡¤¤¥¥»¸¥¸½³½¸¼²³½°´´Š„혀„Ÿ›‚‚•çøÿl`b 74 4574541=32=7 5777 tOuã“’Ÿ‚…—Ÿ€œ…œšœ˜„åÚÉÙA|ÖsQU–Ÿ‘žŒ‚ŽŽˆµ““˜†œš›“™†›êÛäîÁÀýôJÏ—÷  4 7167765   7   md`JçðkrYfXòÚÛ—‡›ë–žš„†‡šš´‹€ƒŽˆŠ··´¶¼¼°±²¼²³³µ‰€‹žäøèpuylc`uæ—í…€™‡Œ‰†þ‘•âãâÿ_êŸäeamolrlgÈ|h`ðzaà‘ógkao{ñXdNg~ËàrjtzrqBô雓èú‡ƒœ–†ŒˆŽ•„Ÿçpkfh|ë˜ÚýŸ†ƒ˜‡„˜‡˜ÀesðåqEÞq\á•ÝjLoÌ–Õh~—“PüéÙñ“ž’è“šš˜–‘ÿ—”Ÿåhzøqogagø–áaKåz`ÄÛ`fËw`ñknblòüy蘇†€†šŸRâ–àYctaÄ  k—…ç_™‚…š„„Ž´–„ž‡…é脆‘KééIvÈEiÊÉ‘1--!™ ¤°0 -¦¢£³âû›±¼¿½‡Éšnvh‹='4h5•6›v ö 1  1 &=bšå…±‚™ƒ“´ƒ†–¸¼1 è“°¸µæœƒŠ´ô1à’à 657N80=0y2y4?3>5°³¼¿¹¿³½™1=$1`™´¸§§º·ŽDV˜i  07ø›o•€Œ‚“ù”‹¶‚г¶³š“”—èBwŸ·äáïo <$&': ‘Š¿¹³¶±³°¶°°¶‰°§¥°·½»¥Œ„„Ç 3=<4 4<31 0<5 46328:>046 ˆ²‹‚··€ø ∄‰²³Ÿ=6•š‚±¿°‰ƒr06Õ€šµ¿¦§¾¾³¶Œ›…›„¶¸»°‹‚€ãEd1?9108>3i†Š²¼ˆŸš14Æ•†Ž±¹¸²¼¶•}a ™‡42?%'$%;8?22=:$%%%:>7•½»¶˜îx<:9𷏥¦£¡º³Œƒˆƒ„¶‰Ûh 501 oýç…€e 346 á„´»¼€€šVRˆ·¶±¹¸¹¹¸°ˆ€œâ 36 6?:<23[X >>10005Eゼ³·‹Ž ·¼½±½½¶Š‰Žƒ‘áé| þŸV=6䚇œâ >$;=447烴¾§»¾½¼¾ˆš€³¸¼·´±½¹º¹½½¶‰ê5dg2;>22=?9? l…´±Šˆ†q11 j…ƒ„€¶»¤¸³³²½ˆ…ž„žŸj=3 ’·‰ì 76 04k…ƒµŽ›ñäÔüµ¹¿¶µ¹¤»¼´¶½Žø7?7j˜Ž†Î63?2;'<Òáz…‡745 Íde˜‹æs–Îÿ’š›„h˜†œ·²‚Ë0??064 Ó„‰ú€´µšd℘‚–‘ˆˆ›‘€¶²°‹‡‡…”‘ê›OBVeE’ƒ˜Ç  40 RéøÅe1$ ':987 gÏEw‡Šˆ‰‰²°·ƒ…´‹‹ƒ‹°½¾¼¾¼±Ž–ÿjF{q4 ?:74 iøôkxù„’•mTl â´²´Œ‰¼¸º§§¾²‹†âVdöåé3;%:9987  ::%344_fiò‚¶µˆ±º¥¸½´°‡oMö’ˆ·´‰„‚ˆ‹ƒ‡‰šèkcš€jJ4334ev`äæY€·‰ôÄž›´±´„†‚™aõf5ŸŒ‡Ì æfA‚ç4nßçîA2%$9{·¾H!.!³¯¯¦Žœçƒ¾¤¼°ƒm{þ¬²7'Ô9›9gl‡>3 'õ… 4ë³´±´€›±ŽŠ§Ô=„¶¸¹¿¼»¥¥†ï†=b<9><1hh 5}ÜmàÓhý…¶Œj˜’WPÝ›†™i  <== :86b9'$37;:?w4 g[}~O—Œ…€±¸¿‚õ‘ޱµ‹µ½²°€”ã—ŽƒùKäšç—™m61XF›† n„†“›·°±¿¤¦º‹²¾¹¶Š‰´µŠƒLbBv…’g4000030 GÖ70 7 膅åï¶Š†‰°¿²LT™™…áÞ59>9=175  ã—’ù䉳µ†±°¶¶±º²¶·½¼Ûf[›†‹›c4n716<=6 7ÿð 14\ 4èÐàuØšµµŠ¶¿³œcf^jƒµ†߀õ354?%;154 7365”‹€Kc·×“µ°‹†±¹¸³¾»¿ˆ…ƒŠ‹µ¾¤»´´¹°…‰‹‡á›‡…“‡ÙàØo…ˆ›4m 7ghêÙ™–hSƒ°ƒB“‰ŒÕdá— 46765 B6743=07 7707o m–…í{Â뀳½¼¹ºº½µ°¼±‡“‡‰Œ¶²½‚ø 206lþ bž‰‹ƒ††˜ë˜µ´·‰‰¶´´€ŸöKSçËs1=?::??12<6  1=2224 Ì’”S‘êÿ½¿½²¹¾¾¶˜‹ˆ±¼¼¾¹³†ßtopâòrf–õ  6 dó Åן˜„ëëä^—³¼´‚„œÔê—÷‘‹ƒä 5 501=25gh õ…‡µ´°·‹‰O‡Ž‹œŽŠ±°··¥0¥Väå°5¿kAcˆ˜eN÷ 7<5ê 345 5l°†‡µ±º½¶¼¼¶¹º¶Œ±·°°°··‰‹€ƒ 74:=$;?$;&'''&#&$'&!!&!&81h„›‚±°¶³¼¸¾¹¤¸¤¢­¡ £¢­­­¢£ £ º°°±¶´´´··µ‹Ïb 2::;:'&&&!!! %=0?0<=>01%8155 51  57òŸ‚šš€µ´µ°³¸»º§¥¹°½¹²²¾º»º¤¤¥¥¡£¥¸»°Žˆ³·žµº¾±½²´‡ŒˆébË’—ôËU55  6;$$;%'?30 5>>309;?9;=629=6;:$!"'8%:5♕èâ™xjeýðâ’œŽ´‹µ‹‰‡š†™–‚·³²¿¹¹¾º¥º¥§¦¤§¡¦¦¦££§¡§¸°³¿·°»§»³¼°‰‚‹„ÃfJtj]“š‡‰žÆ70=%$%?0=6  1><=;%9?;9771>3?'$%$ &2027115;''%:$9=5Çíßwvœ¶¾¿»¥¾°³°Ÿ—ŽŽ€‰³¿³º£¡¹¼½ˆíŸ†““м¼²º¤¹²¹¿€”Œ€‡ŒŒŠ½½´…ìk 7Úüñë’üb 4 4’e 1?145a‡™–Œµ†”™þJ‹±‡óHiâ’—èä 17R—“µ³ˆƒŒŒ”Ëûk~‡‰šŸƒí} hiò™_ 63=<2dzd10 ‘Â757j•…Ÿ‰Œ›ðedR÷›Ž³°µ„†‡Ž¾¸º¤§¤½²±ƒë—Œ‰†š°¹´ˆîd\ÆèVGâæÃÁG ku凷°Œ›i òóÖ““090 —E  00 mshyBJtj5 gœ‹‚‡…îIq퇂‚ŒŸàŸÜxóâ퀷½¶†ƒ‚€„œ–‡ˆ‹Œ‡†›àF”åíC4005nÔèÈdV~ ljfúó˜ldl w}{ul 7  oŸ’ŸYhpáonoMå‘…—–…„›áæóë…€Œµ´‹¶±ˆ‡Œ‹‹†˜PM’œí“‡…——‘Ëuê’량ˆŽŠ‹’œŸ’åz}X_]}m 4    6sd ccÔhï[ȕז‡„ŸéàLxNã×Ëæç]zonkꌅ0%;:?8<1;37mîh 7 ÍG}n•T øõ1pœûŠ…žs HíÃ55p?%>1>?7_´ŽÌÿ…–e]˜ƒ·±¾¹¾¾§¬¤¶‰µ·žµ¶µ»£¤µŸ²´æSF…‚‰……òÁu™’ÃF÷<>4s„[d4 }‚„Œ´¶¶‚аŒœ”œ•Y˜•ï·ˆ7>9;<56<$!"# &':8>77=:05 6i…¶°º¾±‰˜ÿჶ¿¸¤¤²´ŒŒ’‰µ·ˆ‡„˜‘[c™ƒ•Xãg>2yløew yÇ™ˆ€·¿±´±·…`s·±¿³³³²½†““˜†¶¸¹ƒóŽ‘Ù‡¼´·–r ?8801?>7%&''&%99$$%$'$'<63iiÊŸäG–€´µŒ¶²²Œ…µµ‰µ¿¼µŽµ±Œ›øï´³·†Ž”„…k5 hneÃ50 Þqv_‚µ‰‹ƒ€‹µŠŠŽµ²¿½¾½ˆŠ²ˆŒ€†Š‹Œ„‹±‰épžŒ†à67<8>6717?&';=?901>8?36=  7jÿÚ`š±ç|ž›‹‰‡”•™„‡ñA€ŽŠµŒ’ÆTôkäŸïp–ƒr`â`žp46mâœƒŠƒœ–ˆ€õkfæê€·²³½‹ƒˆˆ·Ž‚„“„‹‰ˆ²¾±—蘵°´˜ïƒˆ€öir|Rj11365 =;:807393 2$%$'1Šº·s%:%>‹§¡¬¼„á4ð‰¿Œ“ŠŒ¹µb‡€—ˆ¦›/2m3“¶$6„±»ºŠ¶êŸ >42?4<1>U‡±±ŠÇ…¤§¸¸¤ ¡¦ §¿¡£¿šŒ¦ºŒ\à„2 Â4!:$$;&!<7;%$<98< 4Õ’Ò˜ý”€ˆ‡“°…“„Ž–—ìÿ?8349?75 4Qb P’‡‹´³¿¸¿¦½´±³ž€µê™â”ë~lÄ”†Š€âô™€ƒú”è1nfÿ€‡´€àzk•†¶²¼¾³Š²ˆ‚œˆ·¶ŽŒƒ†‘…™å‘Ÿá78999=$$%$%'?$%61;:4  Ž‚·°¿°µœûƒ‰³¶‚€†Ž„޽¹¶ˆˆ†ì‘ï—ë–âkß5>9804>>$%$'& $82293b}•†´¿¹¿¾¿¼º§¦¥¶·°¼´´´½²ŠÑ^m^òóso13>?161:%?31?= ya嚊°¶¼»¥±°´´»¾¿±½º»¹½½º»¸·‚„mzglg66 6<0 45=6eÃA퀂ˆ“Hꘂ±´´´µ½°¶´³½Œ‹ŽŸù~fh 69;>37=;'21 56Wn 57 žWnt‘›ÑŽ·¶µ²³»³°¿¼Š–hrÃE”‡Ûh66886 ÏFìÔ÷¶Š‰—ä„›Œ€³¼³€‘™ŽjobÙüÿy—µ·ƒ‡ï€‰°µ±¿º¦¿µ‰ˆ—ÝH 67 =:>>041–ô’âtéì’œøšòçw5ïᵺ²°™´´´’Ç…‰„~̆”çz 3;;>2296<2? ?;óÌÒ•›™‹‚¼º²°‹´¶³¶³½°¶†œ„Š´íÚ…ƒá„…ÿÅ–‹ïl”—˜˜…Ëe Ø>711467373<31 4öò°½·µ´²²·øv䌀ƒ“›Ëæá•à‚‡Ñ çHqäœj43säîYjh”çèJmz 5b5?wœ‘‚³±¶··³¹¿¼µµ²·¼¸¼°™·Žr oFÁgalv‘“œ˜æ”Yî604ewdiW 7nœ‚š”ü›‚˜kifšœŽ™èPoüvÈðà b—k 0=2 ß–Ë–˜séjœ…â㞈±Œ°ˆ„NGG]‡†ŽŽµƒœœœŸê†³µ”Zà䆋²°¹¶€„reøgìì…Š“Ð\mz`3115 0?;'%3Ûã '&%3»¦»°üož±¤¼Œ±³‚—ƒ¾½àî ¿6&=öèí€ "€„7c9 ï…µâ=;%-:875‰ƒ2ó°‹´‚žú–·¹Ž¸¢ K3„¸³°‰¤§¤¼K¼¡¿„ŒÂAçù>?Î6–´ ?330šjoåd<50:14397087k´584ìpûㆼ‰‘™øì晟÷„ˆcj[ ´·Šµj5 65 803? ? 6q99cˆ±¾´Ÿ™‹¶‚³»¹¹²°´¹±¶³²¹§¡¦§½±Š·ˆ³¼½´†‡Psxi6 3?>31Jöéx’‹´³‹šþè„à‡³¾´³¿´ŠŽŒ€ï—’˜ï†ÇÔÂ3?8:8$&!'::&&;&!!;:'=5451515ÿqäê’…‘ŸŽ“‚Ÿ€‚Œ‚ƒ†‡¶±¹Œšþ}l†ƒu oeùox_•âó7s—ƒ“žã䃲º¼‰µ½¼¾¿¾¸¸»¥ºº§¤¤¼½¿¹¸¶½±²ƒ”…˜¶½íeR 5774::?2>892>$'86ÿ 4[”èïîâàá˜þ{•€†ã–ŒÞjË™š{471 771=8:8$& $?=92eç˜×Õ†‡ŒŠ°²³³³¼¿¼°±·²¹¿±³ºº¥±±¾¼¹·‰æs˜—‘hý 5464c5hð|]”“{V†›˜ú_…™—€›„€´²´³¿°‚¶ˆŸ™äUšëíWehj 099?=232= 1=  6=371<4lñ“íV—“醂€±°°°±»¦¦¹²»¥¥¼°´‹½¿±„´‰—æœç@ìB5  5  7 61 OÎzÁmUìŸÊh’·‰‹„†ˆŽ‰š…µ¶¶‰ƒæX`ôtþ éÄ >9070?8>40= 7=03074737…³²·‡˜µ…„µ»º¾±±»¤»±·¹¤¥¹°‚†Œ¶‰¾§¥¶‡†™àýÁähv =3 0444  1i„„ 24Jž€~æéÇàœé•šœ˜’™Š†¹¦¥ƒXì啌ˆ–7><67 50203 †ŒL6147627aöonÄs–ãÑ“ž‚µ€±¥¦¸„ù„‹¶Ž¶¼¼¹¼µ‘œž„áLJ‚šê–v`犽‚1 f„‰ƒú457131 lc↔3Kj˜´½²°‚˜€Jk”îè’‘‘€´±±µ‘h 5 ‘œ‘ã 4 454125474b{˜µ!" ½§±6#$l  ¦¿šo§¤§ºŽë‡‹˜¤z0çäF²‰—½5³´ 2166< ?‡€á·²¥¦»’‡³´%3kµ„97 áó vdûíäo|6 ‹µíhà6?&92 7%6=DÌël‹•б°³§¤¥¾¸½¹¡½¼¿³¶‘åÜø =03>::>$:?68 íZa’޶³²¸º»¡¦¹¾¼º»¹µ¶·€–öãÐbv•75 ?;357 naAwà€„›Ì™µ‹Ž“–“¶Žœžœ“•˜åpòîùbhe  6  Ô 4gåüzÚ˜’‘• m[` 4vì𷱈‰´½¥§§¥¦¡¡¦¹³¶½°’Tá–œo54kr ô”Ão胵ˆ‡úéð–áòkxᔇïZá—Œ†e[—â2 4 4043>$"#"--!&''< 64 4w`h°¶»¥¥¿»¥º¿Š³¾·–´³²±ìq‘æ 6…‡—n4675= m“ƒ°°¶ê´±µš²²²°°¸§»¹µˆ…g â Êm?:>3: &$$$:2[4k „²¥»²»¹·‹°²‰‹‰Šµ‡„†š†…†_Áa32ææÜç‘j 41=17ÿž”XÍãF“€½¤¥¤¤¡¢¤¾¾¹¥²ˆ·±´·œvnŸ0$%:%&&#&9?<44 78>1 pж²±Žµ½¼ŒæÔNᵂŒµëbap æÓ\É`ÀÀ—ø uöÿzàùIihh eŸ’Ž‚‹¶´ƒ‹‡˜ƒ’›‚·¼¶¹³Š†œ”jb 65 40046 =:3:;%%7Åâôœ’†’Ê–‘逃¼¼³´Š±³¿†ÀtnOMìvø”‘šŸb`v^â–gᙎˆâö톜›õÊ4 Ö”š‘ð…‰±°‡êz耘Å€‰€Æ•244512  ?23071j…†µŽ‹‡èü˜´±»¼½°·²°·Šâcn]~ýVÅy—fé“ŽŽ‡šñÚž‡Œ’ÉÜÒk‘œ‰ŒŒ‹°¶±Œš„ê×eû”^’•è6298%800%; 56=?622 {ᙵ¶µž™€€˜··½¾°°¼³¼½œ’âcBq‘‡“Ÿ 1ÖþÛˆŽ˜Œ_ aG€´µŒ‡•]J}iiašè•š…„„žhu^šŸ—ñ7Mò…œ‘…Õ5443<6 <<>3°²%99 ‰¢¢£¯¤²¤\ì…±¿ŽƒŠˆ°¡´†´Ë³&.1>&75—4ãâ!‘tâ ˜•œçéÊ=7? >0 “±¼¿†…´˜–Œ¾§º§¦¼¥£¤l5ï´S~µ™‘t’þ0:9'%'!'019?  m‘Ø„¶Š²¹¼™µ±Ÿ•”䞉äcÆ 47<6cꑜ™æÚX~šœ˜´‹³¾µ³¼³Ÿ‹åœò–ÿw±†š–g4 31Ü”si7 6–˜Š¶µš…—œšƒåˆƒ‰·¿³¿°‹‚‡œ‘—eÞë’w=<>%>9?9=6;35  Z‡…޼¹¸¾²²³±‰Žˆ±³°±·°²¿Ž‹€íivÅhhyâùòS 53:' !'!&'%''236??275 워°·ˆ´°°±±‹±Š¶·¶Š†µ‡™÷vj 21222>05  ÚÀŸ‰´½¿¹¹¼¿¸¼¼º°²²³¼»¥ººº»¹¿Š€–…—á‡èç   5 5  ÷g‚›up÷㙀„†ŒŽ·‰´·µŠŒùÖã˜êóÌ`d09;>9%$'$$:8<821445615  ’žØaohVøâ—Œ±²²½²¶½¼¿¾¾´´¶¶Šš_hK 50757 eöT“˜‹¶‹µ±‹‰ž˜’—R—‘œHåóBããÞ”Mé”–ŽŒ‹¶¶±‹´ˆ“œ•z}–øè™éã 77==>2<<=7 6 6634  uåú×—™™ƒ‚ùá‘g—ç÷›†„™€Ÿéœ‰–•Œš´·½¼µŽŽ½°‡ô‡ì„’•zj 5629:9;$=< 5ãj|àü†±Š¶¥¹¸²·ˆŽ‚€dY𖉊…šŒŒ…ÿkçãžs—€‡b–571 657188>>7216 töœ€·½¹¿²·¼¾¼µ‚œƒ°‚ˆŠŠŠ„~   Ï„Ù…š‡›ŠƒÙdK’„—ü‹ˆ™Ý 5 7647 eø‘›”à™‡‰‰µ·¼·¼²±²‹‰Œˆœ™ššâæšži×x64 66  5736234 eèòyâùêg ëûep`5wé’‹ˆ¹½¶¶µ€„ƒ˜‹Ž‚°°Œ›†’žŸh`kkef“žG“×pf ñŒVíÂavh“X†‚±´Š‡”\”wäàšµ‚…œúà•–Ÿsðâ|]š‡´‹ŽŠ‡ýßÙ lãg{6>=?8?<>?9217 5êi 70d±¥Œ± 86E¶¶‘6=1•$¥¶¤µ&š}¾»º¾=4軳°n5 1C1 ¿¾§º‡l¡¦¦¿—7—ý·›þµš¶¸»»¦§¥º¼¹¤¡¢ ¿‹¥¡ ­»±™i9$$'>9?;''':=6=88:<< <>9$'òo23é½±´³±¾¦º¤º¾»²‚Aâ䶈„÷G˜žˆž5<< 57?2='<>„â< '< 728<303;?8>:%'3Ÿ „±¾³µcаº¤»º‹µž°³½°¶¥¦¦ £¬¬¡££   º¿³‡¾¤¢¬¢­§¶Ž‡…ˆµ€˜„Ë”]292 514h2%$ %&80<8$ %5?9>%#!'%`=?''1:3?>&>4çÈ=53576:&9…°ð_ ~‰²‰³Š‹°°²¥§¸ºç’µ¿¥»¥¼¸¥¦ ¯¦£±Œ±·¡¥££¦¡¦¦¡ ¦°´‰˜Šµ²¾¤±‡µ”†¶™õ616Ÿ°†ëH’ 5&:%37 6'> #'%;='%>93713=='" 8;&'/ &847 80;2lìÊQ cï½´fó l„ˆ‹ˆŽ…w€¼¾´†H‡—ƒ²¹»¥†ˆ¸§¡¤¼Š½¶³Œ°¡¾¥±ïx싱†ƒƒa„´ŒŸÊï„’AŒÜ×…‰e‘17 êçN1Ï€˜ 46R𞕚ƒéQk 1Ÿ7<—˜¼‰û7A…†½´‹kbb€šY  ˜aˆˆ¹¶á5‘²µŠö 1g„úrd1>> 764 73736N•Ý0”šâé ?<<ú€Žûan <Ξbg–Ç“à犴°”’vg‹ƒ°Š°³µƒIŒ»¥ºµoN‰±¥ ¡¦¥‰‰µ·±ˆ½‚´àlí…€”v‰··šqQ—Š‚êþág•0%800` 70Qc•s2<20P“ä9&8$6Vø 089 žùã}qœú˜‡³¶˜åmd·³´c4쇾§ƒ7<€µ±´²¶‡aÚÀI–‚‚zÔ×–€ž¶¥¿µ9 ´¥¼²³„ÉE`‹½„€`c6;9숅œƒ„':8k’ÿ†šc088 å 9!&&vkãëU7ó€áˆ±‰‹6g“†´™Ÿ˜×??4›Œ±Žóþ 5ùf÷·Œ±ã5›´‚´‰æŸ 16н·´D‚„à¶³÷І°‰±Š˜€øÞ úœÁ†±´Ø“´‹³˜í‡Í^ç´Š‹‡±447mälŒy—df6u5t“K÷33>27çãaúŸ˜ãïDHŒ‡Œ‘fê‡éµlRë‡ÚµtJt˜Ù5oJƒ’儞ƒ5`~ß…Œæ„f~šl·—c€¿°ä†¼¾µ†å“‘dWdƒr€µ€´Žµ²ƒ‡ã·]Sw3 9?5l„žžì3:$&'509>‘Õ•…a6<46‰µŒŽ™íô =6øë³’45~ƒŽ‹±f0=<3]‘øci1–µ³½¤ˆ•‹°´‹ho<67ãµ²¼ ±°‰²‚’S—µ²°†üÊ´·¸°†á 1 ž”†±¿¿·VކJ„‡Š‰}16‰±³ŽA 8<–“¶¿‘ã6?<4lÆ4?<> ‡³†š4 50–cï 754êb›µŠƒ1n”i7=04d’ƒ„˜Ÿ´–`˜µ§¦¹ìkg‘†·¦¾ˆü„½¹³éd½½³ž[Ê´½¶€Â `ã„‹·›þ‰½šhé\Þ’™z>5]„a↘66070323Ù…À 35zÅ—ûX[03> ï·¼™‡ í„‹¶–ä ÚND•r盘À11Ÿ‡€±ÿa‘ôƒ¸·ˆê •›ê–4š¶¹°ŒðѶ´…ƒ‡‰¼›⇿¸„á5Á€PÑ„‹¹¾†—Œ´‡çÉ…³…ê f’ãòo Èœ51æ°½½â ÷>= j'??=Ip53 485é°† 33=96k†í 0‚¿‰Ÿn0G{¤³··ôü<5@°²ŒŒï 7L±¾½±îŰ¼¤±±²•ißœ¸»³··ÿ·¥¡³Œõ5›…ˆ½³²¶_ „´˜•fæ73HŒ°Š…=:8îŒjâu„Pæ} 237 ”?:'7açìx—–247ao 2 ĵ12mž´·˜Sqêšµƒ²Œcþ”Ї‡öå…Œµm7 Ÿ°™n 艽³ŽàþI‡ý±¶°·ðŸŠ¡¿Ž ˆ¹±‚P¶¾¼±•jüšÑ›ˆ’“f†„…oà¶¶‡42 “¼¶ƒi4 —xmë4>26 < g 3>;1‘¶ƒ‹ 489sàò3?6nn èÛ†0=2s‚³º¿µÝ炽··†{ ~}˜‚Š´†228…‚ˆ² hµµµ´´Šwém€·°»º½‹äiŽŠ‰”ˆ¹°™`‡µ°·°‰×w õ‚³°ŠÝ45lŸÇ÷„³‰ûjoî•€onŒ<76‚‘ñm2$ò5>54ç77èáR;8oг‘%2  Ÿœdc7 fŒ±„çìànè<†±¹ƒ‡˜¶±½”‚e†…€±½‘“Å™·º²³†““31$:>0 ž]1!!$&!:;Ÿq㊴›—ˆƒíÖ „n2•›†ô‰±¹¼¤£¹€•–½¤¾¶´ˆŒìþêo±œ½µ´€49%57”jÞOÑ‹â072?:91œ‰²²K7=65Vz›´š”1îi¾²¹²½½¶Že–Þ…‰±…‘loþ‘žìã—ž„ïh޲³»°ç52:8:<“Û—™ 312<7125Çioþâ¶´‰‹†×j1|S›ÒÈÃæœâ€‚…‰±¶¶kâ쌾·¼ºŒ€û o}œì`õõ…è‘Pv26 n …·³ò6%8!> 5jŸ›ögðxonž€³´°§¶†1Ƕ‡žçã°·˜u`}›ïåæô€f…xúµµ³¿¤¿š3!&2>2û´›EY 4>?9? …ˆ²‰—°Šœ%!ƒ´‰421ô烟ƒ„‚ꇄƒêµ³½µ¶·Ž94µ±ý‡Œ€’’ 1 嘙€··Z5! 3í9<1|{꘵·„5 35–±‹‚‰±±µœ»¿·vž˜†Š¶Š“kvé†í„Z„µ··„¶³8$<r70 ‘àïä56670344M’‹‡Ž‡›å >mQ5 d˜´„“{yñ“–œ‚°»¿Š‹¿½™L „ˆŒžÜ—˜”µ’j4=<14膂†ˆ†‰†k3<5627 Üñ73 6ü„·Ž‘’´²±‰‡`Þ~Œ‡‰‚…³éµøÙ“vþ•cœ‹¿¸²³ëãa6?37f 41oäZ‡x <6;%0q‰ƒÿ•Bœ 3 –åóe×Ç䛇€‰Ä†ßž¾¸§¿¿³‡†„™ïúx”úƒød”c‘_’aq >?0×±±‰”Ùó 126  =434ǘe21‚±³³°°ˆ™êhiî…²µ°†’ý—õ]œ´€µº»¼º°Š“=7214}Îí@68;;ƒ±¹Š='2aì 3àt>41뉽»³‡šŽ°¥§£¦•?‹¼°Bdʵž 1 ±½¶›6<<1•³¥°ç>'3䌃 2372?324š´‹÷m=>¥¦¦Ž%6·µŽ‘±‚攲»§½„7³¦¦ºµ26œŸO5 571 ÉŠ´ä 8;96¸¿†;:3kéÈtid41^˜¦»šd Pê³¥§¼˜54›·µ– —ôž|  ²·°µÐ?5H´»´´6 Õ³·´è „Ðm 5Ê„‡ƒ1%;4kL9933‚‰‚3< —‚m14ƒ‡Ÿ æä¶¤ §¼‹’´°»¼ép€¸¿¿·‡–ˆƒ¾»±ŠŒµ„¿´·´‹´ž€ƒƒˆ€Ýåŵ±˜‘ðýƒ‘ ý€˜– 5 Æb649=53436 l 7782 „q 3413 73>>= b 7L u‡é— 54”“‘r 2è‘úm^oœ™Š¾³µ´±²´ƒ…‡ƒ–™â”€ˆà›³²¼‰‡P€“œ¶³²´Š²³Ž¼ƒ‡—nø„„o —ƒ‹½àjnå´³œšŽ‘€–—`zth76m54<4u 7÷€èRci 15 76777‹‰‡L ïÅlëè `˜ubgžëæý–Œ´¾³Œ‘뇌µµ²„äpæž˜š‹ƒ††´´µ½µµžþ“˜‹¶°ˆæjŸ·°‡jK…‡‚‹ŠŽûlf™²´Széá–v6<1†43>76VMa÷^—042 ûÇh 31>95Sƒ…‡ 06÷Ÿ]]Ño 5 À´ƒ83û°°¹¶ü6=Ÿ²º½ŠîmôÖ’‹‚œ”l´°·Ö4¶º¥¿°òl{ñ´¥¤±ïi䴼ހ¼¸Ž1t±¤§ ½þc™²°’ íòÛ1ý9;&1sŸ·‰ç;9<‚Ï6417 [69;6S—…‹ =:=ÜŽ¼280 â…˜{ 5™a~Oø·¶´…3~³¾ºµ4•¶¾¸·—tdž·±µ’þj뎳³±µá[‚¿¤½A‹²°š倆ét„¾¥º³—olå·½¼™s銈˜e5=<7wl 38:3È›‘W4<81ãx ”å39? ’é425Lçûw 344労ü 57}•??2 p•êú™‡ŠŒè4 䲤º‰”å˜ê—éÔmü†Œ±ƒ‘€‹´µŽ€„˜—›°»¤¤±@5o‚‚úò„°‹‰‹Š€Žµ³Ž‚€„Ž·º º•ëœ661j6 556ჵ_3'8 ø2>:11bïÀ ä`×aì…ê>$=’—f4?<8?Q„œ˜àáQëÎ}š‚ŸŒ†‹¶µa´€r0< šˆµŒŽ‚‹‚õ…µº§£°œ±h£è‡“5¡,¥]&¶ =¾b »ä½§T&­µ#' =‘7™½º¦»§¡»±¿77  0=9%<1 798<7Ú€Œƒ‹º°Ÿ¶ƒ›µ‹¿Ž|ëu> $%$3? -#&&;5 —ÉpMU˜µ¼¥§¦ ­¢­ ¥¥§¡¡§¹´Œ”ˆ±µŒîï=8&8>= iHq‡›„…‰¿¾‰‘𷻥¤¹¿¼´µ¶‡¶³¶µ´³¿´°·‡‚ï 44' "&3>>;:%:$=62?:?6c5  6 Òïô€Ž‰ŒŒ„µ³½Žßlý‚åw5 =9?<8'?%83 0:>6`€‚„…‚±¿¥½°‹ƒµ·‹ˆ´´±ˆ›¶°µ·¶…œ—“›‚‰ƒÕeƒ¶5 47 ><5Ÿ‡’™ç‚¼»¦¥»²¼§£ ¢ ¤³‘ƒy 3=:#&%:003=;4 6 01=~1375 702<:7lËœ…Œ¶½»¿¼²ƒ°¶¶±¹¹´‚žåO“ff4;8&$02<3q˜ùÿ’ˆ‰¶„˜ê•†™çhÔ䘅‚‹’Ž–·²»³¶ƒ‹¶ˆ¾¥¡£¤²‡îê 77444><66z“„ˆµß›…±¹²¼‚´›kh6223 4„€Œén7„„‚œ5 =1>:$%&#:635 ø‚{Âr’µ´²ŒµŽ—²°µ±…ޱ±µ„™b›‡—êh 4 4<  04mfD†—ˆ‚·³¾²½¹¼¾¶‹Ž·¶…” Á‡ëlec—•Œì·°‰±‹º¦£¡º½µ·Œìæ7= =<=& !&&:?4<49; `·¹ºº°º¿°½´¶„då 1=>82;$$9:!:#<Þ…‡¿²µ¶Šµµé´·f‘…†ÀødŸT 65026Q›ƒËäuÓ¶¹´bø’²ò€âgHÖeNu•е±òãcýj€ƒ þ…±¼·’áK‘³¼½°—°¹»³ºˆ··•Ÿ‡‘N 16 18$& '5~еµ±´°Œ‡¶¶‡v Îâh5<&#!#!$%=<<81슰µ¶´²´ˆ°›·‡‡³±í46  < d€†˜ç–鄵”ƒ€—¼³‚•Çïû˜””‰‹’ˆã„Õb}kç·¾½ˆ4Eñ‘µ¶µíuˆŽµ¤¦¤¼²·²¶Š™‡7tÊÈà=%&!2755;÷aeŸÀék lä„3:=  6 6Ôƒ…—„‰†fîžd4kï‰õ OᓞŸŽµêtƒ„·³Šžœšù€Ÿ=6è03;7 b鄵²¥³¹º¾½³¼±µ…ÙƒžM6>3   ‡†¼µ€‰€Š¶€€’O›½±Œ‰ÍSñ˜SÌh3 —ÁÄÑ 56> Z†ì íuâ–ÜŽþœ„²º¤º§¤¤¦³½Š¶Ž¶€†Šx:::90<2<9<=$6îÍ„‰ðšýï’Áï’â0699446Ê5jäž¶ˆŠŽ‡ä4 õã}€´í”Ÿ¾º´¶ ¼µŽ˜¶¿§¾Œˆ{795406665:$!:xcaŠ‚ˆ´±†çZðƒ™C Ed 9 cö~–м½¾¹º²´Ž€·°†çv‡ƒTÆIm  1bøNŒäà™c   2 0  âßÄþ’™]™‹‡·³¼¾¹°Ÿ”šèÓí Êbñb–ÉéHÏë†oo“‰™µ³·€V 3267Z—âçiš}…··ãÇÊmø55ë QG˜öœ…–‹¶¹¸¥º³‹´´ŽŽï’åót x  6? q˜n„å 575\Û’}牌‰¾¿µëtÝßHÞh g晑ソŒŸµŠ‰µ¶³Œ•„‚çi ?646?<4 bb^”“ކäíêÐlfÿu77…t`†·›e‡º»½Š·²¾¿¶ƒˆ·‰N”ûn  4æuŒ²†`è4820ÌBè™å›ã‚‰Œ½·°Œåïå—›àöû5o›“g@‰µŽƒ´é‚‹¹¿¹³öh 1><5 =$0 4Å `—Šð÷‘s”šl‘ 551–’õÖàæ–„™™†¶¶³²±¿½µŽ²²·— ú••ðaÕõ6ngmo’¾¿a=Å‚‡938$ ãá33âÂs äµ¹º‹Ž›Çb€½ˆ—çT†µ´·µ„ˆŒ˜±¹§º´€dᆑ=83:'=g0 çyn”¶¹±Ï 3  501 o‡ŒŸhGšŽ³„†µ¥§¤¼ƒ‚„øöŒê04¶‹vc s“Ö>1ߺ¤10434dj9'=åÿd g51fˆ‹„´º§³‡ ï‰`5æ±°´Œƒ†ó•в¿·à”¸¡¥µ˜] ’›5; '4åf 6<–ƒÌt„·†y499<4•Ÿ5?9›¶¼›œàgaÄŠ¥¥‹ñ”½§¥³ä‰±…e11 `ƒ¶·‰™ÿU†…ØDŒ¿¼5'$›r… c1 Qņ"1‹³¦Šƒ‰f$–œ—€‡”šë’› UŒ_1' 6 š€¾½š7ƒ±¥¥³¶‹„î°¸¤º¹¿±º²‰‰¾¥¾3 0 0!%'''%? $##:<'&#-!-"#&0 <7;'33:Ÿ‹¼±°µ±¥§§§§º¼³¾¿º¾µ²²µˆ´¶½±ç޳·˜“´€è‘„•Ùfm °‚ <1982=;:565ÃÙu›‚› „·ŸÂü‡‡—‘²¦¥´â“´¤¸‡µ´µ€¿¡¤´³§¦¿¶³¸¸³”„€]à’øŸ³¼‰”…a 4 9? 6  229=0:#,$=?:$:8<05ê1>< 3%'95<$%< þ5 4Eæ715zoJdmDÆ›°¼‡ƒ±„г´µ²¥¹³º £§¿¥¢¢¦²²¹º¥º¿º¦§³±¤¡£¦¼»¥¥°€¼¿µäµœ·´ä o1200729<76034 <:>3>'!$8>!-#!'%:=6$ $1 54Tò56> •‡ù ‚µŽ¿¡¤‰ã‘°°°Š‹²¹»²Š¶¼»¹¼¤££¸¸¥»°ŠŽ°¤¤°„ƒ¶³²±½º¹‰‰·±Ž˜ì´ˆše~œ™ó`ß…˜{”‘==f19gé<$0j0%9  33 pCƒà17ñn cꈎ´µŸýÁQ…Ã1 ö›‚‰„|–´ˆ7˜¶†lo•ùK€²¶ì5›•6=1bUduóÍ C…è ”úo1 ™¶µ15ÿ€€^å´Šˆ‹‰K˜°½šï´±‡gµŽ½¤²â^„™™‰¼¸·š¼¿²°’gƒ²¶v„ŠŸ4 üµ11 5ì~<&&0ׄ›y 05ßÕ7Õì <2 o膆ò5<31P‘`79? ‘ƒœPWƒ™€ŒŒm}·¤²—_阋¿»µÿfî›’e—±³µ_⊴¶¶ƒ…‹ƒ‡†ƒ” VнŽÄl…µ‰ƒ—55럗50 QŒ‚“{äŸn70âç ;;?4ñ–àd4 41317'$=“ù …†íe`Ÿ‡ˆ´±°ÎÐñâ±¼ô 4„Œ‚š“˜‡µµ™trµ¹¸³•`{€µµ±¹±ŒŸìQ„°´djã…¶½²³¶ƒšàR–pn銴‰ë òâ’”ýÊ 61 ‘… 3<7•‘Ë  n„ð<;=4ü™åm k29n…Ä= x‰´Ð‡ð`g4‰¼´½`¼Î¼ê·‹š”¼ƒŠ=Z¼‡š|Å çfâ’“80 ž‡‰ù‰ˆé…·¤¡¤¹»±¹  ¦¦¥¥ºŒˆ‡€Üû…²d =?:%3>>$!,/----'>>9$%:3ç532 e„Ÿ……€•Œ²º¦»¤¤¥º¼µƒ”´ŽŠì´¹º¸áÓt äb 2>%0íh78$&'''':> 0?:'3ô€Š˜æ_\{ý‹²¶…’›ñ„²¥¡¦¤²²¥§¹²°º¡¡¤¾²žš¼¤§¤¥¤¾³¶‹‰±¦ ¦¾‡nç·ˆ›ð Mü@55O’T 2>?8 ':5429' !&06;;9;:'$?038:$':3MÀI0?<<>>4ýH41>6yµ†›•døï雀´½±ŠêŸ„±¡£££¦¤¾¸¹¿» ¯¬£ ¥¼±°¤£££ ¡º¹º°²¸¤¤»½¶‡œÚm‹¾ºµBt7‘d1'#&0 ?:$!! '8309:'&!'?7578$$% " :5 32:'$'0na 46 5 óè •³¿³‰„š„€‡µ²¹¿°½Ž›„‰§£¡¥±¶°±µ›·¼¸¸¶áÕ›²º§¥·µŒˆ†“µ¿º¼€‡Pš¶½éfõbiè’á}=6h”êä 6=3wýKõ<93›…âxifž˜”“èæ˜¶°ˆènJwoⓘ… 4ü€—EbÀh ñèËm5<>çO 4 fo4>0•€g 5Kl700Ÿ†ƒÑÔPCþ—µ²°½ˆy戶²½¼µƒ‹Œ·±²²¿¸³µ„ò²¸§¤¸²´€‡€‚€€‹·´ŽöÔ‡ˆµ€Ÿè—ênZ’‚ˆ“ðqœ‚ž765i40==1 77 5 77 4=8':4ÆŸ 32=24hçj4 öˆ´´îkzoHjq›´·‚×i˜±¿¶ÿ|Ð†Ž€Š¿¿³´††D‘г°µ‰‰Œ„“ê·¿º±€éàŠ¾¹´…ôñMyôïa`Ðc 䇖Üo €„…–7<2…1:;1 445 16=96  Þæ58<–·‹ÎV•–…šàíòäšîŸŽ²±‹žþémp†¶´µ˜k`pà†·¼²€yM‚Ž€Œ´´µ‚™üûÙו°´µ†ƒ„蚃·´³±žm nƒ²¼²y`g—•dPk|HçhšŽáú ˜µ’e5 …‡d 3<0  4% ”‘áU–ƒåo $=0w¿¶…<4ñçAfSeý\”Bµƒ€†l` ~w… 4þ¶¥¼²é๡¸¸½¼¶¶·›äŸñŒ„…k75ewk01%&%$?0663 >0827@“í4Ž´·öžš´¶šÖš¿¾¸¾½¶¶½¤»³ëd|ê… Lƒ±³‹öÜr€…hPŸƒ˜Ø  52''9tk <1pákiš„„Ž±·èiió’‘d›ŒŽ˜lfœ‹¶³¤»³‚y’†€øÿœ„™áVÁÜ_Wy5345 I–e :'? mžÇ 516Mi\Ûû·µ—rꟅáDÇ…¾º°œœŠ¼»²€úŸˆ†g `„…‡ñba°ƒîäg wz68=<7`@? iWuç—fb”¿¿¶†elåxSh˜jr‚³º§¸•¶ƒœG|ŒŽ‡ncfu—ƒ™564 44h„@ 40X–à 5 13>?Ñèjq˜´·‚íÛÄÁelfÏŠ¹º´ˆ–ù™¼µžŸœï’‡‹Ô’·¼·Ê`ÜÏ 01 {7<2 ní60˜´³âsm™·°±íöû¶°†”“´³»°ˆ³°µ”xÄ„±… „ˆ‚1 1=âÏpžÕõ4 ?%;0 œ‚“‹äk””ènჴ²¼Ž€—q†Žµ‰’žd5hcv‡°µæbµ³Ž|šn=>746=;ÏØ <8 ‘ j76µ¶°·z·³ˆNtLŸœ¶²½¿¶°¼²¹¿½¶‚âòŸÊ¾°Sè— 06  à†“Ùžï4  :!&:=<%6℈Ïǰ¾†×ÀìŸòClÙ“„Ž··±Šæêƒˆ…Žé ‡‚µ´±¾°Œ‡ï‰_5=4?8% {?% è dœ| =er50t¶¹³áj‹–k61 èÔ‚±¿¥»°²¾¤²´‡€MçGcô‚µ‹šL˜v20áêPßæT652>89%9> á¶¶çš‚‹ƒ†æ7 –¶‹ú‘±¸°Žç€½°•ä눀편§¤–Èœ°´ú1$964516›áb   7Ÿ²¹ˆI ‡’[7>84—€—†¼ »Œ›±º¼°ï犆U ËK °¸¶•†€ÜdÔã æžþé…Úaw220708=2474`𼰀޴‚èd…´‡–¡º»”fƒƒø 7–1=$;0>& &=0! ! #----/-!%'"!?3%= 37n îrá¶¾±™‹±„˜‰ƒËÞ±¤¸½¾ ¢£¿‡³ ¡ºˆŠ¹¹±…ƒº¥²´¼£¢¤¶ˆ²²³‹›Ÿœ`鋞Ö‰±ˆ<507653%317Ô’¶‚ 617>:?414’„i02  >%61299i412›„í  ‘±‚›‡µ¤§¹‰ž±²·Ž™Š½³¶·¤¦³±³¥¢£º´··´›‚Žž–ë‹·„’¹¥´Ú䆞a 64Ùxì°°ý 562 =::= |å1''10;;?0>?  œ·ž ’Æç` €ˆ‚ˆ³»»‡`у°‚Ð}ç‚âcŽŠµˆ€¶»¹˜š‡ë5dtë‹·ŒœŽ¸¿–ÿ” ÿ5QðnôŸ‘44  2=04 <1 wqM뜑~5ïÜ·¶¶¼¼¥½ƒ€‰´µQÄ“‡í^´¹³½¥¹±ø—†àz…Œžœ‚·¿¥³˜Àž”Êœìxv~õž‚ˆµ›Õ47 21188$::=6 0>23:$$%'&$>7•S 2%:041=?7 6yê‚Šš€šž’•–—Ð…†’‘’ü´¾¹¤¥¼³¶ƒ†³»¼²³¿¼¶´±»¡¡£¡¥¥¥¤¹½°„ˆŠŸ’„´¿¸¤¾Œ“æ`cfnsã_í}{㋊€Q}15 76îµµï7760647299;;:85f61=6<9>>>23454 ßµ²°— 5556 xê²±„cuŽ—l`ljíbȶ»½´öÀš”Ôôƒ‰’Œ™Š¤§¡º¶€±¼ŠÌP÷qK—Åm{ú‹¼±“dO Àqò؃·µ”h×Xä\{}“ƒå”凳¼½€a~—ÓÛl 7< ‘˜014=%< 6>6…¶Š4547=544 eÎ÷䆜pRP—ëdz“„–|fvœ°½³‰Üc`™Œîç–ŸŸ‚ƒ¼¦¤½œë‡Ó\vý…Žèµ³³±˜h ‘‹š–àžˆáŒ¾²°€gk= ì…¦&uµ¶² µ `=ˆf‘Ä9é™°“‰7bz 1<ã3=>4 ígšWxt63>22>?;%:?2?6™´ç ýz”ÿî‘”„б¿¾§¡¤µš€µŠµ·´½¶ˆ··´½º¡¥³†…˜ƒƒ‡àb —œ´±þ  7‡Œ5327031643= dQXr11YhèIàÔö‰¹º´tl_„µ€€Ž˜µ†‚††¼§¤´Ÿúê톗“ì“Áœ†èй¥¼]øš„äæœŸ›œJèï³»º–0?1n66713'#;=<'':=<:'':<7 jj1$':7 16 iê°½µú ì…€‘›Œ·´Š€¶¹¹¦§³“ï·¿º¶±°²¸¿±Š³»¦§¹ˆêž‰°µ‡ƒŽ··‡âùÁœŽ¾¥³R6>†‰ëGä Ó”Û5< ñ’—cw똓Q…°´ 9; æœÒx24c†’ >:;h3>  8?14—‰˜8$8îo 14Gáe ጵˆç4‡ˆéndš†ˆ” N½¼²˜ž·‚æ—‡€€èöç•‹¿¹¿à5ùµ´ìÈža 7Ö˜·¶‚j296ƒÞåã76M†Œ‰†Ÿ¶¶žaŸ±¿¶š¿§¦½‡Ýæá†³¶îz’Œˆ†R˜ŽŒâ 616=44?$>ï=%';ñ77Kã =ᑇîîp1P†„ ñ‚³“l Œ°²¸µãŸ†œà„‰•È‹°±¶œ€•hŸµ·µo’²¼Š÷ …œá ™„µìqì²³—äãà·ƒɉ‚b3=ƒ²°e6Fƒéc‰ƒ1Ÿ¶·Ši “y„–žŒƒŠ™5bµ±‹Í430nm <=!>”‚Ë ˆ‹œh}á…ŠÆ8>ƒ¾µânjd`ƒ‡ û´Š• H†Š°Ÿdþ””–i¾°˜4…µ±o 6š†¶µ‰¦¿šK]°¥§»‹†¶µ¾½³³™†°¥²Pš»¿±™a7…• 2pH'$=08%'$%059>p8 %6oü12;>:%0fž87xË023îµ°†yÎ c™—é 7‘³¿·—oMWcŒ‹–´´·á„±½‡àüS“´³Œæ‹±½¹žNÖ¿±‡„jej€±‹”Œ‹ãŸ·¥²–‰€ˆ½½µõP··Œ…n“°³Æûï|`ånc 3““3=<%$2 56jN = ‚”vär7=>6 ix45Ím7=7œ±µ›ï4žžëL„’6 ê²´ÊjìiÊôÕ僌V ~‹·‰ŸybÛÓ†ˆ†œß”´½ŠÕð›´°µ´‡“œ“éí˜7l‰²²’ñ€ŒìÄŠ²°Kœ¶¼ŠÈ~з½€ë…†ׂ„j50›±… ?28:>?n?>66Lˆ‰ö56 6  786`†À56 uŸˆヵëlB±¸Ž—„ÀùŽŠþkK‚±™ õв‰âô•u…Žƒ•µ¶±Žò·³ˆ‘žž–l•—•é…2‘Ž‚jâ…àcÿމéÙˆµ¶˜dʵ¶‚€ëHõ™f Ûƒ†`‡Œ•491 696Å 0ä†×f 6ʘ34Ýò66˜2>Ÿ<ƒ±ƒœ·ƒ†„šâ` ôv7á™ NŒŒàœùΛ³ˆð±°³ˆ„ޱ³Šµ‹‚œémoˆ_††Â솴—ú‡B œ´“–‹²„ñ“°¾·„÷ä—xÅ—èCœ“ƒÓ j<72 %:< m6˜70 d75o7êq<87q1 o€åoì´°œvxLœ™yÈJóòÃŸŠ´„놈ß5Î…•\›ˆµ·š·º»¶Žƒ±dœŠ‰˜ë€´´ˆ€Šµƒ„耋œ TQw”ˆ´ƒ—–´œƒ‰‘ lÚ’ëx„ž„ècJv6:3?36474œa6 5?:=5014˜’Ñ74032†€T˜·‚æ–ž•j5 ù‡…Di½·´°·‚´·–5=5lŒ²‹‹•§¥†½˜z€¢`"§#V¡žjûŠ Œ¿œ2Ë5"»µ 73Î;[±¹¤¦¤ ¡¢¦‹íh2$9n Àh4=7 ñÐia3>d‰¶šŠ„êò‡€€¤¥´±€2;14!&&";:"##"!&'= õ…އ…±¿¦¦¸º¥§¥¿²¸°µ†œŽ†´°¥¥¶¼´…•þ‡ãW 0j Ÿ´´¶¿¼²±¿¸¹¾·¿¥¸¼³´º¡»‡“kwï·Š“›‚ƒ›„”–‡ƒ„ =0<'9!# &=3<$>7716l‰àcœŠŒ“cÓ•V4nˆ±a73=669%# >7=:!%:>%;7Ÿxë–å…¶·¼ƒ‘‡ƒœ‘€†@Ž»¹§¢§¹¶½°¹§¾@ûü•=07 ?$>0  ßš‡–›±³±·¸¡£¦¹¼²¾²‚‡ƒµ½„†‡•ž‘ꆉö ?5 1$20%;!%2 0%;15tà kî…솅S‘š¶¼…ˆžkb•á˜td2!'27:!$0 53jàqI냜ÆoPŠ™ëöriî‡Ë½¥¤¤¸²Œ´¾²¾¥¤¤¿€°»¾¶€‡µŽm kDd132?>0n‹¼ˆ™ d‰’íñޏ·³¶‰³¼¿·‹½°€˜Z™•6750=þà°ö2'&;$;;%! 8%&= ûåÔ‰–…¶³¦¦½¹»¸§´ÆÆG746722 ==064<25j’™íìy†…³¸º§§º¾²€°³¶¶²†ý Á¶³„b؇’‘X”··¿´¹¶ùl·¤¿¶˜æ´µœ0=4< 5 åâšh€†µ‘ገ¸»ýj sˆ~pp‡í73?%&42&##0::57[JŸ·ˆ„pô°‰fBâ6$'9%674 6 ‡¿·ñx“¶Š³šŒ¿·„o´½˜î޳±µájxú†µd v‰¹·“”µ¼‰Ÿ€µ»º¤²±e倶¤Y•1%06nj7i¶§³ŽŒã‚¾ŠˆŽ‚±¾°zm„Ž39 :%&":=66&-#120{LùеšŽ˜Ö™´°ê 34`8#"&1== °½°˜ä·°‚땆¾²‡ 猵°Œä‚±³†€°…í™°¼ž´ˆ…œ†‚µŠ²€æ…ƒ¾¤¥‡_’¶‹„3bEÎor±¿Žþspˆ˜ÉÙ •›„€3 𛆠3JGñ 41ký :;834%!86?2 67bŒA~v hƒ½¼Töu31 rRk”•=5ßOî7sàêæ j‰°ŠƒÌ˜‰·»²´½º¡¾šŸk¾µg ><u ?~œ‹ãby·¸¥¶bu\˜µŽëÿγ»¸ˆƒ‹¤¥²ãæ†žŽ‰–Ñì 9;=d‘?< Q–453–á6=9€ 8>6fâ13 _4%! &: 27kœb5dóï·‹ŽŒ¹¥£§¿²·¼¸±àèéa„‡PZ†½†‚‚²¦¥º¶ƒ‘´»±Ž‚·¹‹Zꆾº·‹Š‚š±º»‚ê„·º¤˜s~…k <ã…ƒ}œ‚”21Ñ266m• ä|5<547?2i 2&'> ><;2 „  àõŸdaˆŽF7|õ<<25äçfJR“ŒŽ…jq‚„ä ~’ˆ…æccŸ†‹°³µ¼°‡¿¤½ˆ‹·³º³ÆXhâƒ{ km”åf5rŒ·‹–艽³µè^ú†’›™xÊY›·¿‰è]솕H~ÓQ42> k 47<a 0zi<6øg 6 =4bÊ›‡zm4  5VŒ‚˜ènnO€´Ž›Ôç ú„€ƒ‡…íí…›Ž¾¼œŒ¶¼³´‡³²²Œu–j`õŸéÄæ”œ‚²¾°°‰¶µ‘c”ƒßwâ“‘Ž‹‡ìk~™€¶ït04 045  Àz4bƒ–z1 56í6=5074 w €·„1•œÆ45 Oè~aùš´…n”г†ýÏ€dɇ€ÁÎz¾¹‹Œ†ˆ·¼²‰Š°¹½ƒ‡Î”…á3„TÂ齡§‹ø…°¿´ƒÉ`åeq`ó˜•l𖜷že‰²ƒs@›—64 2%0Ñc 0ú›|ðt?:174?:?<63564Ùˆv71†„ý Te7O›—…·‹â1yµ¾°gOµa „à†€ìÌô¶³µšb™°¹²´µ°¹º½µ„燕”FæéÅ”“‡Š¤¡ˆh´¾¶šå„Zé€Lhƒµ5f¼´ëe‚šu01ncX1>=g224V Ÿžžs7125162;=1 4<7±':=4:<4yY^b44Ïà À’Ž63†œ³ƒó胎±Œ„ŸäŒ…s4ƒ”†hi …뚌‚±¥º¶´ƒÚö50W’ÇK€‘ꓳº²Œ¶³±´³¾¥¶û“–‡œ·¸³„–œëì·µ‡í”]2Ü Ýî56=9$ $%?=12?eéd <=9''&;%2=34  $>bBIŽŠ˜²µ‰³´ƒî   x†™‘î6Ñ·Œ±³¿¥¹¥±´¾‘‰¹»¶·¶±‹†ƒñQ‡·¾‡…¼»¤¼·°Ù7=øõ‰¼¥µ›ùó㉿µˆ³¿·Ÿƒ¹³·ê 5e‚´ˆ7 5nûz\ƒ„\ 38$9$%7 ln—…‘ =$'%;;9>< 63? —ï„•ŒŽ´±·‰ç 6 bê‚ð57„›ýŽž‡´¾¾·ˆ‰‰‹ˆ‰‡†‚´„bu†Œ‚‡µ¶¿¿°´‡f66z_o÷œ˜áp]艋‰·´´±°´²¼¶†öñ7 Ⴣ’_5 ^çÿæo„·· mm 2<272235677 úö– >;%%>><<3245 R„„…”ˆ°±µž•í”ï501…àqq{il€·Œ†³¿¶µŠ°´‡êwïŸÓòµ°µ‚—⃵ˆ±²¹¾¼Š”Ú5 Ïjòœ€—Ç……ž´´°µ±½¸½ƒœÆÆ øýRgeñM „åS„µšâ 6??9%33 6 zuî€ç6%<22<'$; 7Øp›€î†¶¼—æ{áuçoÛžžì„ˆ´¶¶µ·†ž…ä––ÑÜ´µœ†·Œƒ·‰·¥·ˆŠ´ŒÖæv—ÝÏæåU€ƒ›˜€µ¶‰Ž°²´€çäÿsweCöm gëåúù—ç‚·Ÿ 18>?=411 3 XVep =1 %!'? 6=ýV™˜MᜆˆCãü0î‡t “èðêàŸ·Š°¸³·‚…‰š ᚇ‡‘€‹³Š€Š±½¼´³±·°ê€† 5ý„ée‘ˆ‹µä’“€Š°²‰†’’‡’|cû Äñsy–Fš†Œ‰ƒ–““O0%$%7171 604AZlÇkg310 1:;;231 aØ@c56ïžüvÍäm mZÁÉ~äëõ†µ°´¶°·³¿´‹‹zð…•’ˆ´³°¶°³°¹¹½°Œ„~c﵈Œ‡ë`ó‹¶´Œ²ŽŠµïÌù56fnò–”à™“Ž‹Œ„c 3?''%15744wif4;8 2> >:! ó´™êw‘˜‘j·µ¼‹„†ël755  êæ‹¶È†°†·€´¶ƒ[†‡i11$5`a°Ž³°¿¿´¾±¶º½°ï‚µƒ‡vÄ„ú„Œ…°¶²Š¶”޵‹µƒ±°³˜ï‚˜15 ”×eB“Ù”u6<9&!'&&'&'9?4157=42 5ÖX 3?8?$>?7 sêžv™‚†‰±¶…Ôä—töf ‡²´¾¶°²½»·¶³¼¥½²ˆ˜z˜gç’â±°½½°°°±±½°±¼²¿¶‘“òðkxbF‘±Š‹‚‚„‰†Ÿƒ‘är€3234676Ñžûïõ€Që•û’4122::'$;954 d’Á 6 = ?=3656[çd„÷}“ƒé{“ƒhÄ4 lF‚–’ޱ³·´·³°±±´€‹´šëÌcséńг³½¿‹‹¶½»°¶…”ˆ’ƒÃáÒýl൱‡ƒ‹‡‰µ‡“”ÿ’ŸÅ 16030 ifef™˜âÍ€ú “;;:$:8'%0eÆn  1?74 9?hjŸŠzŽ›‚ƒ‚âgè†6 e` 舲±Šƒ·¾¹¿·¼¸µŽ–€•”–a¸º²²¸¾¶³¼¿°‰ƒ‘í”—dzãž²º²‡è›ŒŠ·ž•\Ÿ‘7=95596lry‡ƒ€Ÿx·É64344=!!8=>6aNž†šm 6 2%?Ïc='0  ̕ዱ·°ŽÊ—V7ÑSÞ 1n“瀱¾º¤¦§§²¶‰†„•Oó€€7e€Ž‚´¼»¥¤¥¥¼·´¶±´ƒgâ„ÿ 7 ÒÐcŸ³¶¶°²¹‰‰šèãUü 559$03 w}´°³‰Â73?$%?5 3%$?  iœœîé9:==4 6><5ptà´»··Œø€ê\t66c”‡Ž½³°¦ ¦§¾¼¼Š„×]i`œŽ˜ýË‚·°·±¶¿¥§¥¹¿·Ž´ŠˆèAâÎåvöç……Œ´¾¾»Š‰„x124 033306kæ‘ïÏd€±´ë72;8>:<=157636 6æñ~ 6<>>2766115 â–˜‚¾±ŒšZ„˜b7 g}é´´‹¶µ¼  »²´‹Œ¶uWaç{’ïž›Æùš´¼Œƒ¶³»»¹½¼²´‰„’ÿ÷›ÈiÌ”dv–µ“Ž·»¼³·„€…ã5 329 0qêbmÖ‡‹†„QÜ× =;91412Ì3"!7Ķž<Ó~µµ™™š¥!·%f "`' ý4´é€µ‚±°³Ž³çN=025294'3„툉°¼Š¼¼¤¸¿»±‹¸½¥‹õ‰±¿´´Žè‚š˜\€c47>8,,--## ,,"- # 91jbƒ€Œ½´Š“rÂ•Ž‚€‡‹¸§§ ¦ ¬¯¯¬¯¢­££¡§¥²¶µ‚†Ÿœà÷–ðbkl 11=:$'!!&# -""#%?3>36g|êáßêo ÃHQÁ”‡´°‰½¸¤¦§¥¼²²¼²·³²†êœ€·¶Œ†µ³²´‰´Š±½³´·ï—àÛi45 464Ea}|‘‚šœ€—lãño 8&# '$!!'8?07632 ÂáÕ 6417>&':?315`ž†…à倃”ìæ’…ÀkçœöW–ƒŽ·Œ€€Žµ‹¶‹†…ƒ˜{Nì•÷‡Œ·³¶³¶¿º¤§¤¹‹ˆ€…p Þ[Òç’Œ¶³‚…“–„€˜’bjóm4=>3004207 17   0:=3 7fL›Žƒµ·¼º»¾¿¶ƒ†šdèšéœ‰¶²²¾¿±±´²¾½Š††µ€†ô   76l 45 69$& !$%%$$%2 lOþµ—kDû=6I÷iT‘Œ±±·°°ˆ°¤º¾±Š¶¼´š…‘Ë—€ƒ…‡†…‰Œ‚˜âƒ·´‰€Œž„„cX`îÂS`Ë€‰ƒ±¶Š³¼»±µ˜…àl `wngæUꌊƒ‡†ˆµTgco 75<<16 0216 14  2;9>53;::1°µ´‰´µšíFàìßn‚·¶æ½¥¤¸²¶´³·¶‰‚ádó’ñ üšc7Üäáì{új |n61<4 =0•Hk”‰¼·¶Xê}n×Ì R šˆDií´¼½²³¶ƒ„ùì™›{}iëêÀfe k‚›„s 17133> loùš~`m’½»¤½Ž‹žþ—aÇ„oŸˆ¶µ‹Ž‡´¹¤¤¹³Œž†”íãá|æXfh óœàn51>9%?0568<c†õæÂµ·°¶ˆ´‘›c_`{ €˜â‘„‰”™±µ°²°·ŸíjôÍ mzŒ‚‰ê왉µµ–À 4  <1 à…ŽûߋІœ–äìâAẋû…Š‹‚±¤¦¾¸¸º§§º¾´‡êî6=2:''&88 '%$$%:6 <:$%%!: €†´»§¦²µ°»º²½‰ãêæã ߗ烉°½¿¼¼½¸°‰¶²¸¿¶‹†“v 141;9< 4601636?4ÞÞ“G3? 389=‰‰ˆ½³³½³·Š‰·Ž–dmidް¿¾´°¶‹„‚·±µšâ‰€a12?170545 6 iÕäô^z7 0>;8 ò……“а¼±´š‹´½‰ƒÿÅ–  †œŒµ³´´‰Š´ž˜‡·›‘‡ù•œ73= 56447?6çók 45 […䌌¶·‰³´Ž‚н²Œ˜—–‡ž À™ç†µ´¼°¿½´“—‚µ‚——ü„ç ==603388656  5 4327G[Ÿç‡™ƒˆ±‹ˆ´±‚‘—ë^nd…€‚‰³ˆ·²¶´ƒƒŽµµµš4?=474 þ–dk7 44 4 5ÀÅuk…ˆ°´´µ¶³„›€žæíèamÚà–’ð“‰‹³ˆ‹Œˆƒ—fi7?%;5âphf4  hIwb燂±ˆ²¹¼³´‹µŽ•ò™…€ùóÿ…ƒŽ‘“޽´Œ·µ‹ŽŽ“•šÈ410>3k392547;? h 1 61a†´Ž´¿°Šµˆ‚啜–êwë‡t€›”ƒ´±³³¶²²½Œ‡ˆŸxÐ<606|{k[37 5 42瀌‹‹´¿·Š·œAêîü„ƒ–g5„ƒ‡š’ƒ±·‰‹‰¶Š…šz—ðí 2=tÆ45 76365<=  12Œ´µƒ·º½€›‹·“†ƒž•ÖTà˜¶€„¶¼¼²‰Ž´Œœì„ï`Ú3>6Ùial7<=62066Õ┓´¶‚‰°·’†”_ˆáòœ„ùΓiËŽ²°€‰½°··„xÝš“Bm{yac = æ„î yä 1>19$%ò—;q»£½–d\€¶ïåê7<Ê·¶e4xcè 46g¶·šƒ·¶±b ~æ•CùŠ€o|Ÿ²±ƒ^“‘oùá1”н´îœŠ½¹½·‰µµ3242<><;>‚îJa‹¹²Š•e¼¡¥·¾¦¤·d80 1?9%=2=8228 Ù‰†ƒ´±°´„„“œµŠ·Š†Œ‚‘ì |új63 ?=4 70X·‹±·ƒÊʳ¾³¾¹¼ƒþln6;$265„±·±Ž‹Š_†‚Ÿc y±œ™C턜€67 öþ466 5 }ðœ„î’—´µ’ó쌊¿»¼‚lâ”Uo1==>w ia ׂ´¼¾µ´†‹ê•ìû€‰ˆ‡Cž·Žl 57s•a 54 ’Ÿ†ƒˆ·ˆµšœš‚³¹¥¶eu70:%:551Uwoãiqƒ¶³°Š‰™…”çåg’ãã’îà„e65œœ ik `d˜žâŠ·Œˆ·‹‡‚ˆ´¼·Ÿ@Åœ 0916 lmس¥¿ˆ€ˆŠ€–Ó•ç™âoî’Ma7>6àd56—´Š±·±²¶›Ü󊲋h656';? và뇕o±»¿µµ‹ƒ€ƒ„ú{Wü–Ÿ’VE7Éœt6 eåëÒŠ¸¾±µ‰Š˜ó‡´·‡âïu 148$:2 Êÿivlˆ¸»µ¶³ŽŒ€“` Rrˆ’ 06t‡ój ㋽¿¶°°·±Ÿá‘µŠ„ø 599<89 A›Ö•â_ãí°»¾±°ˆ—“èPh Þ†—c`7 ûlc b•†µ¼º²´‰……žÝàŸŠŒë™T 0151=><hÖOlþîíš±¾»¥½·ŽœÀ_Äk瘞ýÝ  24MÀg `ïäÝ™˜·¿³·‹“™š…ݘò‚Éå’204 431odÉv„´‹³²½¿°·„ŸndûÃp—Âp @ÐRþì…µ·´¶ŽŒŠµ„›€…€†ùp 672%;6zz`íš···°²³¿°†üKíõÊ Zv`1 cNû”ÄM–ï·±¶°¶·‡‡·ÿzÿx57 5==4~–Ãâ…ƒˆŠ·±²Œ‚…‚Êciœèf`Øÿ {šjä·´Œ‹·±·‹µµ›ËâT766?283±´Óв—€œ“äk7Ç—ãû€µ´µ Ä„¶’šìÃgh=4Ádúëg„ã…ƒJïµ²°µµ¶éãã™4r•a5 6×34= ??<& %%?66ûS›fž³¾³°¸¦¡¸Š™†Ä”…ü™´·°¤§¿¶±²²´ƒ´¼¹¾‰™ý 42>6 IjaÂ3701 8%2<=:0 éæåJïä„¶´˜¼¼°µ•c僶¶µ·µˆ·…‘ü€µŠ¶±ƒbx77 ncåawwj 5  ;;61<56 ë‰ÄÉ‘àƒ„Š†‰‰°²ŒâzÀÆ1 •Sµ±´´°ˆ±†‚€…ŠŠ‰·µÓ520wçfÓádo4<<7 29?3Uî…ìi„Љ›€†…ƒˆ¶½Š”ç÷áäì m™´´„Œ°¶‹„±à‡ˆ‡‹—ot77‘™è×otbõ  6 1> 2:3á씆Œ‹Œ™„˜‰‰œ‹ƒ€‘idp–r™µ…µ´½¼µ±„€˜^ò27j˜‰àÍ•zXq 7984 7%:3QÉ{ÆâƒµƒŠ·†šƒ¶Ž‡Ž›ág~Ÿœm aŒ±Ž”Œ‰¼¶‰·›ƒ‚…êäfÿäÕ‡`46l±°ÆóJb } 45 6;?7 6=8Ÿ„ùt”·´€•úµŠ†„™–ïz…à6}±»³±Šˆ¸¼³´†€µeð6x›i7 ž·…Bjødýdab5 2;;235884bèÕiöе‡ÀŽˆŠƒ…€`“™i޳±·¶·»¾‰˜’±€aeõGà‹—ìúuš—7 ot5=207;>>  Dt˜ã€‚âa•‰\Aoé•OüaÂçBˆ¶²»¹º£¤µŠ„ˆì765anÁæf—€‹‡‘cq =$;4<9::=5—Ùäʽˆ–b|œ„@d–’ƒ‰ƒ²¼¤§¼¶ƒŒ†âî57fRX46 |ïÁ“‹½ƒ‘•Cíî2'$7461;<aú•‘‚€ÃoŒ‡àC76ŸøoJô¹½·²¼ ¦²—…´³Žà  20 ce陳¸½‰…jR€•k8>0608:;3 |@kì´Œùeߋޙ ÇtË‚…ŠŠµ²½³»º½¶ƒ’·°‹…ýy 1165äáã¶°Š„Ø‡þ433 400Úiß„îïâgg5kò—2‹¶¿¾¤‰›­¹ˆ‹ø4n®„& Ž&0=à9&q‘½’䦻a¼§š#Š#?<5 # ôœ²²²¹²´±µ—7 2?0:!!:4 =fê–º¥¦¢¡   ¥°º¿‰µîw7?2?8><5 7:2692;9=  01 b1;0Óƒ²¸¦¡¡¦¢ º¾¶³‚Ï kjàjîeH•a—4{irÝõÀ‡›ƒ‡¼·¶Ž€ƒŽ·šœ‡†äù0>3=3'$'&:>3 {“™œ…„ž„ãg4oÚœƒ´·°¥´²¥¤¥½»¸§¥¸²Ž·Ž›Ej905 3<<24=>40m  450–±·¾¶‹¾¤º³º¾´‹€‚ŽŠ‚·»¿œ›Hg40=2%$$#:098==P‚Ž·±²¥¦¤¦¤º§¦¤»°šv7;>902$%91gÙåO€†[ml7j ‰—áGô€‹´Š±¾¸¤¤¼¶‰š˜ˆZÍщ‡ïà}vo3 @4002%;=249'>46055‘„ˆƒ‹»¹ƒŠ°Œ²µ°‚´²¼»¾°¼ˆ‡µµ¼³¼½‚“03:&&!'",-%12 K›îƒÊŽ¿¿¼¶›ýÎj zWd𵉕„··½±‚‚…ƒ³µ‚QçeÑã…y 30 t5?3?0 5 j𰤾¥¦¹º§¤ ¿³¼½»U='%'!###';%$325wH~ÿ€¿²¸³¼¾³¼²··´™‘µ±ŽŸéSiE…äÿ†Í‘’á 0 7€¶¶‡€è†ß×`hþ1389;$$%:347@û›”в³´·º¹¤¡¦¹»¤³¼™ø70 60or—™ç–{b7td‹ŠŒ’€ƒŽŒþðçàNL4=6090<2 ûïL’‰“È‘±½°¹³¹¶‰±y b•ÎRíí„´‡ó“ 6<ö†‡†æ†€pãDhj 0;>;09<=4˜ˆ‰†°°±°µ°½½¥¥¸ºº³°µ‰Ïi483><34 ššµ‡‰î“fv31h”Tù퀴„„„—Ná”øu17645<3glúÂÏø‡`øŸ·µ²¾µ¾·¶½ˆµ€=aæÚ瘑™™ãèci409?5I_𖉶µ…ŽŒ”’€rƒ7 4883  ‚ŒnÎ…´†¾²¾±“·±¼Žj„Ù}U‘Hí‚™á–šÔ 457$%:7 kyˆŒŠ³ˆš‹°³‹³ˆsi’è8> 40 05àZ•µ·„†€Š™ 4Þ„Æ”·¶°„°¹µ¶Œ›™†764'23cZ܆V܇‹’‡µ™â†µînÉc_êr·½¼²„ê55dc–åô57=3198#'? _ž»¢¢¯¢­­»¼‰èœ‡0=!?7700%11jæ”a‡Am71E¾¹¥¶Š¶ŠµƒV  ÏŒœá¶¼³’‘JЀj 0%&,- 8`k‚½¸¸¿¹§¾´‹ù ’bUà5 „½š´¶’åŸ q›´“ry0>? Øšä²²·¿´¾·Ç„ƒœh1?;!''= Òµ³²º¾°¿±‘èc 5 cmh2Ì°Š´´ù„„šŸ@E‡þ >>=<‡´ˆ´·ŠŸï’A¶ƒl6<802 `à°¾¥§¼‰»¿ú6<1àó 4 099 n‰áåâs⃞“±¼´‹—ù›1 l‚µ‰µ¿ƒžŸ{wý–ç >?&8?>ÐS³º½³¾º¼Ÿš|å‹„fC67 5i–·_‘EÆ›k“™mz`è¶‹‘~7?28=”Œµµ·°·Œžì“Sô…šg72907 ‡‰½³·¹¿µƒ”Z芔37 @ö‡ö’Ÿšš•ˆ‚♎·‰îçf 0544ó›‹´·°‰œÁ Æ6<5 nþñÅL’·‚‡¶º¾º³²¥¹³ˆâ 1>< œzåehg32%''!$$26=6=965Œµ´†‰µ·µ›±¶µ¥§¦¤º»¼±·¹¥»¸½³¼·¶ŽŽŠ¥¸¤¤¤³ø; $9%3 5 c55538$$%;%$;%$'%>?>1‘d l 77 1?$!! # &9>>0 19&'&&&&>7h”` 3:?9?7|„Ž‚˜‡Œ‡ë—ޱ³¶´·Œ‘ƒ‘~f•‚¸¦¡§§§¥»³Š°·Š´´´—‘•œ“ž„·Ž·½´‹ïgÍÑ䆊³³µƒûI1306 o€œëË–ZJI`hO46=?:%%206b…´œakê„÷—äöÒ}I —‡’‡‹‰dÆÐS䄲º¥¿±¶ìÌ—ñ}€´½¼’Œ°¶·ëRï—rK3$<=36ñ‘–7 427 38'$888%>54583 PŒ·ƒ‡ã”f z倂‡¶» §´°¼¥º·±¶±³¶³·´‰…›A{ë›…¶¿¸»´²¼¿¸±½‰œá–ff5eec`xž™ß Nná„ë–sUhbçꟉ‡á“…„ï] 7 43281\_aïí57 545 oeuþô†ƒJ•þ•…‘™˜êÆüï³·±±¾¹¾‚½¶±€×ãé˜ÅTë{ædö—†Œ‚˜››” 75401?03220516\xä”AbnÆjKm€‹‚±·³¸°²´·±ŒŸâû䄃œü÷ÇÎ]é†ç™“   71<1=7 àƒ•è†ŸŸ‡Åáê@›’É”ž‚µ³³±´±¿½ºº´³µ›øúbKÎv17bzGŸŠ…”gäO54544<30<==010 O|Žµó™„ž÷‘‘ —KQŸ›Ž…¶ ¾òº·j§™ ´„7àjŠ›o¶ìš€›ˆ™ž‘…‘=ë 71=00?97Ô·²±µ¼½°¶°³¿¥»¥¤¾£¦­¤¤¥¶»àõ  >52104 =<'#"---# $5l  513}Ìn”뉶½¿¤¥¦¸½ˆ†Š´·¿¦¦¤§§§¥¿¹°´½´‚‡—ræ4?<6633 1%' //,-!:?614 0762<<445 Ôibm葇—섇‰‚¶»§¢¦¦¡£¡¡¡§§¦¦¡¡¦§º»°´·Š¿¶·½¿¥²‹´‹‡ ×ÐZa ==676?77<<==>:&# &$$$$%>3<0gÕh 75næàœ›”˜„ìjÄž…‚·³¶±½¾¹»»¸½²¿¸§¹¶º¦¤º¤¤¤¾µƒ††šš‰´±½¼¼¹¸»¹²½³°·‰ˆƒ‹ê‘–•` 7 0=0<' !%98$$:9%$%3388;9?%83=8';?%2ieb˜’iSx–  œ˜Ÿ•Ëœš€ tž†êjÓ•ž–›Žçšµ±Žš„‰¶±±‡òÊæ–í1  54gê€àk‘·Š‹†‡E’“aÝ344= 507Ÿô ÍÉ 2?<1><  Üâž‘ˆ‚’]|fnaðlìž±±·„µ»¦§»¹¶³½½¹¿¶‚„‰·‰ƒ…™´¼°Š¶µˆµ·‚‡˜ÖjãüËP{ÆâShâµ°üoLÅì 03>27 5  317 ôžéþÛ10 ò„–CfË…›êþÄ5 DJìq–ŽŽŸy–„‹€É盆”÷ÔjþÀPô–€‹ðlÕíòRh}È”‡Œ‰ƒíXrs’ƒ€ìËŸ€€Ï׌†™åOçæ“ïÑ426  Í›“âyeЖ—×Öb 47tq}„ƒùg™Ÿê—ÿS‘µŽ˜”ùáIýíeàœêràŽˆ…—–††š›ÿfjbì…›€ìfMí蔕÷\ÆÕ‘èáKlIäèõ‡‰‹ìjÓmbubÛš“WhlqìdÍÇÏÆÚé•àîëû}Áïwà„‚ˆê}q™9ŸçÌf7q·–z`cÿc•Ài 45–f쟆‚‰ìêÿÆ V `öœ°¶‹á‰— qû´†MÕâÐ΂Œ³´”óKÏ5<>0xJk”6<6?7Z¼¡¡¸·–>'$=b™ˆà60w‡‚›Š¿¶‘s—é6 h±±„ä2'$ ‘‰ž|†¶±’gèR[Œ‡@“–_ 4 \g“޳¹¼´„ 1kÖíb‡›Ï1ó”—‡ˆ³·öÔžÃ[cφáî†C 9>1Ÿ‘îàJž‚Pbskmj~ìuaËŸòÒ쇎´´·¶ˆò 64îþ`m ll”âO…‹Ž·¾¼Ž€š’èl1=dcc—gbP•’ïLr”ävÄõ~é‘‰†”ŒšÌHõõh jlg臞”Œ·Šµ‚™´Šˆ€P 44oßÂuùDã’nrûÂꂎ²³„î}ôÀ5g=2 }Äœ‡†·¼¶µ·´š„„›‡7 5 jo—G‡‡‡œ›”š‚€n7f•œ‡ŽŠ²µ”“„“MÌšjo3=17 ú‚˜˜ëŒ·ŒŽ¶··¶±Š‹g 25 —G…Ÿ€šâ逋–~fæì•„†ˆ·¼¹µ„ëá“k 5;'%34Xjv—…€Ÿ€Š¶€´Š€í“šá6 3 6`7Å県“‡Ÿ‡nçÙú€´Š·¼µŽ´µŒ†—ž‡÷hf7?>=2 uœ‰¶šµ··¶³²²½³½·d`nn 372 421hah–rÏ똟nÂî”…ƒµ°¿Žœêêól  7<:%?44N›µŒ¶¶´³´‚·±¶´·¶dç6 44  `qï•æ–•“úüBhê‡è´Š½¶±°·±à–zbm2<9&%?3 7µ…„‰Š´¾¾²¶¼º²Š“ïCl <>047 Þ€µüÚèqpg’准‰¶¶€¶‹œ”úáR  6;:=63<c f戵·¶±µŒ´³¹‹œ´·´êh04 ic|WüŒ…ì„Dà‚”’¶¿³±½±Œ”›‚™e ; $<=$?4힀¶·´²¤¡¶Œ°¼½Ÿkq03 64~–”‘øù›ì雇ˆ•“´±ˆ…µ¶¶µòk^„•l3:%>‘³ 62ýšžiž ¤3–ƒ5´½&”Ñ;9é35°Ž†ŽŒ¾N„鳇lï3$;9>=%=^¿½Œ¿²¦£¡¥¬­ §º¸º¹¹¦¦½´ƒ±Ž¶´ˆô 3&'!& " &#,## #""-#&%368<3 ‡µˆ¼°³½³§ ¢­¡§¤¦¡  ¦¤§§§¡¤º¹²½¹½µ‡€±¿°´ã4  59$& &!## !%:::$$93 4244 564 ldmŒ´°½²¹§¦§ºº§¦¡ ¤»¼¶·¼¿°±¶¿¸º¹¼°ƒ¶½¥½¼¸º¤¹‹–f522?3  326 Zgb 417=<8>  Ôv 7m   ?= cæ’ëy7==10704æ„€–…‚···²¾º¤¤¤¾³‰·¿³´µ´·»¤¤¡¡¡¦¦¢§¦¤¤§¤ ¡»±‚ŽŠfa_b g~ê`õ×g÷k3' "! !#,&$& !' &%;;16 0:?1<::%'88:8=:99%<óçàà•g |„Œ„ÏdË“Ÿƒµ°»¥¥§§¤¸²µ–•‚µ·‹€µ†´±·±·±¼»¹¼³”•vi64 5 œ˜†…±±½²¿Š™b74v@534ÁaýŠ·²¶Ž‚„áà17 i7  65ccs4 0:%?76517 Æâ‘îñ”Œƒˆ¶–›žéd eä„–KIQö†€Œ€·²²ºº¼³µŠ›”c…„–œï†‡ãfGœ™‡ó ='&'?<1=2U—çaÚ“‡…‹ŠŒœûR1<7  475Ô’ƒžƒ·°»¹¤¿¼¿ŠŠpb˜†…”õÀžp{T‘€Ÿ…˜ý1?>=775 `–’„˜”ë鄚‹‰†Œ…èà uûýE\Îýƒˆ¶´²±±±µ‡—ç|ñ„‘”ïû˜fafæóî—cô41$$ !%%2=`ƒŒ„†ƒ‹Š‹‹ŠŠ·´Ÿ42 4Ýè…l‹„†Šˆ™¦5¡—€mÖç<Ÿ7Lˈ[š… uí„€ú¶°¼†‚™0 $: >05dbèFo„fŸ·¥½³±²Œ‚“µ¶´·‹°²º¿³‚¾µ‚ˆƒŠ™38'$!'&! ## #!!!?0<8=47Å5‚·°º¦ ¡ ­­¢ §°·½¼¸¤§¤¦¥»±ˆ†— Wš˜ƒ˜™‡…‡‡˜S =9;$&! "/"'&$'$2==;34 iio61 jâ›·°¶Š°¶‡”Ô蘈±¿§£ ¡¸¹¼³±·Š²»¸¥¦¥»¤§¸¹¤º¹±²½½³‰Ak 332 yz   5558$$'$%9:270?=55ÌK[660::$&?1nóܟꘇé×…ŽŒ•`~ 60kÚ††„´´±±³½¹¸¸¦¡¦§²·½³·¶°²º¥¥¤¤¤»¹²·°³¼¼¾º§¦º²¶ŒwagóÈ‘ôõÇoâez  2?$ " &'$$>9;:%:::8;9901>9;:%$%'9=754 uújÏ‘„±±‰šŒ‰œnjП†…ˆ³º»¹»º¡¡§§¥§¤¡º¿¿¶¶™z—–†•“‰Š€†Œˆµ˜ˆ‹´°Ššîçrg7 cÌf 7 quÿAg409<4rhBÌzw–ëËfˆ´Žûw 461 Fœ…€€ˆ„›œ`y—’€ŽŒƒ„“j…‹µ‰Œ‹‚•dðæ‡€—˜ƒë 70> hmàÑì‚‚Ÿa` =9:;'#-'27732uûg lsB•úaåÃ05vœ“éï†‹Š¶‚ŸŒµ·¶°¼¼¾¶ˆµ¶³Œé툲¿¸²¾¤¦§¾²½¼±Š‹‹±°œDlavf fäZXeˆ†Ÿçbû…ä`mß“• 6746=? –…äml×N 7 73987{”€·²µŸËàöjah 42=7윃’„𒙇ìnothlzfizÓ”˜ƒ……˜˜“‚†…µ·Yqec郀‹°¼²¶„˜†œvÛâï–n 54 ÖÄhr  14 jÈ…‚›ê€Š·”ÿgž‚‰±Š¶¿¼¿·Œ‹‚‰‚…›…”55545Ò•‘ž‡€è•÷}~eZvpÝ…„”†ŒŒ¶·‹š“{5 eô„„†ŠŒŠ´“èꆎŒæîTa7344 eÑe–‘–GCñÏ‘ønA Æð’’݆¶½¼·†´°°¶q48:9770?gøé•„Å茀T“‡ž„Žo X›šƒì너·µ™„Žžµƒ{oÆ0 pi…„ž™š·½¾»‰€íb÷–ùFTgg Êà…„˜€o 3>?<041> cÕ„ˆ¶¸²´ŽˆåFwf=>32=1 ôhøOž´°¿¶¶µ·²²·S`’ãwlâ’‚µ²„Ž“1??727cÿꉰ¼³ƒƒŸîâ……Î1??028> ks±¶ƒš†‚Ž´†gNôknè’Cpwu4oÌöÿ†„†Œ€š}67 t˜‚·µ´Š¶±´„‘ã–êTœŸc6341==67d›—„€´¹½´Œ›äÏ—ŸÒa aÕÃÆÓëûIëéÌâ—ˆ‡› 5 ÉƒŠ·ƒ°½ŽŽž„…ššŒŸf60=<<7 ï쇵³³±‚ï’ãpÂvj jØbåøiwELgýF”ÚËÅ 5{iZ}ꇌŸ‚ˆ„›„èýþBä4  21c”’ƒƒ´¼½°‰‚„“ãFe35bC•ÔëÜÉ—’Ë’„øšžïê~ 7jîl|†—šž†‡‚Œˆ‰†„ã„ô 5   Êíè•´Š€µ¶µ†„äo aùä`•èÄlì…ìÆ‡—e6 kîžœì™ê”‡“ꌞáèij63 cJ÷—œ”™€ŽŸüI 6  adgà…à•Œ™„µŒàçáå nñÍ\‡€‚ˆšƒŽµµ¶²·Œ‘ƒˆ@nxnØdP÷e†ñþ”ƒµ‘„‡‘è67417|ÆjPõŸš•ó} 07èx†ŽŸß‘†µ´…{CáûF4 sbO†‹QŸ÷š…µµ’–kàæ33 h…èjb⃀ù“µ€Co1{“…äy‡Š†’‚µˆ‡´¼´ëÖjo•ÿŒƒèfýèfèïÕëµ·‚Ž” 6 \ãb}˜†„—Y 2= ü„ˆ‚á‚°€aœ‰µƒ‡ê 3BŸµ¶´µˆæ[Kë™}•Šƒƒ˜ç=?45=== Ê`lýiNÌü—ÞMš„™š–s7<77167ò…䂊µ´³¾µ’…š‘–ôÃ5ÞàíVo„ˆ‡ñC쑉Œü‚¶µ†€ä175 3  7kП旅™‡ƒ8$3 d•ì ’¡²…¾š ž¯' "$=˜:;X…¼¦£“´¾"»m&7â?œif”°·±³¥¦¿ƒ·žFd 22> !;%206 0ñ…Š‹¤¦¤¡­¢¡¢¦¦ ¾§¿‡„˜ 7>69::% !;>4nŽ´·¶µµ‡„€LxIüÙØì‘YÑsæå𴵆— 688%:;9%$1??aµ½¸²‰µ·±µ€½°²¸¼»¾±¶ŽŒ—žÖÛžÓ€²ŠŠ·‚Æ498$%%?<%8$89%>:3 kï…„‚…vãØ„…•‰¶ºº¤¦ ¢­¢¦¥²±Œ„a 5?<:$88$&'0 hk™€¶‰¶Ÿ‚ì~nx}z 5 5ŠŠ¼§¡¡¦¥³ŠƒÕ=0??1001 17434—‰±²°±°°¿º¤¼²¶±¼±½²´„îvn 4 044==:9;$=;8=0 Ï‘…à Ø“…ˆ±¼½Š²¹¹§¥»¡¤º½¿‹µ¶¶‚êó54<13?730516 ciÝRx{Fås ?1665? б¥»¤¸°¾·Ž†ƒ’ŠŒŽ†ƒ´”†Ä  6 543311\•ϵ°¤³´°ˆµÿ•‚˜´ˆ†‹–×4<3 22Å[N‚ˆ¸¾°‚î 69; 560 1}úš„†½±³¾¼¡·Š²ˆ±·´¹½½¼ˆŽVa”b55 5<431 0>447 08$>%22䀰¼¤¥§ºº·…ãe e|eœrãÕàJÚ†Ÿ¹²³´µƒ…çÓ^wé635124223=>4ôœì°´´°Š°ˆ”QžMßš‹Ž·¾ƒ‰€ü59$:8=9 dC›Äåµ²Œƒ²°¶°Žš€†ç êámucñ16<ai…ï†‡ŠŠ·€´•Jë ÿ•ƒˆ†œÝ0 54 5Eᑆ‘ßL—‹‹¶½¶²½‰‡š‡jý579:28>;%1< ¶‚·¿º¹¥½°¶¾¼‹ŽƒŠ…ˆŸ` 7%%:93<324î–Œœš±¿¥‚µ‡µ³´ƒÒÊu y„I 1> 297è󇃗z´²·Š› X†µ€“šT±Š‘”ç•F‡6  YwZõW÷›°¶˜ƒ€„ïžEããžÎâÖí1 >62%2 ⋵žs”´„ƒµu‰Žn‘ðšáŒ°‰‚wCD[™ÉC œöðòmŸŠƒœ„þ M™71 ‘„±³—êN }œ hwê“’Sÿ55nG 397G‡ˆ˜az†”´Ž“°½¾»‰°´·„iž˜±ž 5 Ô 172d lû…’„†‡Ÿs훜Ÿë‘‡±ˆ€‘Xß›J[íh õ525ï±°¹½°²·º¤»¸‹†´ƒŸˆm60229<'!!?380<775þÈ 612±¸§¡¸¶ó‘̰·¾¼‚´„A 1;=1L䈥¼²°êkc²½ä|o ÂådÙIÓø˜„Íã 9=8=a”²‹†Œ††‡“œë‰¿ˆ°·Üe747 ›¿°Œ·€ãBœ”˜—jü›“‡›„ë7 6 6 À“€x”σš…Ë0—à†’êík 2<64Hü„|„ƒŒ•~éèµ¶½²¶ŠˆƒžïelçTñçîj5 ~jãš”A `ß7 ™“‹µ²²°¶‹•kie‚—–Ía7;?77404wŸï…ŠŽ‰‚†ãØŒƒµ³±³´Šˆ–ÛKçiû퇌‹Š—dflÄRàíðgÿeS@õÉjn×wËÙ tyvÑ Rù^ÖÄý‚ƒ€ˆ„µŒŸ‡è±´±²±´‚j 4 rqedÙJv`jZ€‰Ž·³†üR617?=0573436 oU퀂„€‰†…‚ƒµ±·ˆ…–äð ÚjÃÛùœ‡µ°·Œédý…•OŒïå†A$9´‡œúŒ– ckÖxÈü`7 Tf‘‹·‰šë‡ 170 }1 攆½½¼²²Cí“üš” 5ÕÇO銷³¼›„4?>';=926Ä3<15F´»¦¦¡¡»—n†´²³·‹÷ Ÿ²¼½¤¥»´œ12%%; a—µ¼³¶š14 žŠ½³œé 2<9%?16u’Ïâ1 ±§¦¦»³‡[é‹´ƒA 4c‡³¹¦¹²†vP 10 e„Š…•k 1 ‡¶ˆŒ…ì 4=:99=J–ývAÒ³¾¥»¼°ƒ‘oàƒìd hë²¾½µ‰™v1764—š•À œµ¼½¶€îH6=9<<5UûáïýuIg…¶¸¼³‰‰’Hm{éå—–ç  N‹²¼ŠŽŒ†…qî•í—J  íš±¶‚Ey0?9;=46 `fî’”•›—¼½¼³±µŒ…oflõíì˜þ 4 áŒ·Š†˜‹žb  fhbÞ·²°´€”–Þ2==0  Íizè™÷â÷´·°½³ƒ´žNÃk@”aßé‘…ž‚´µ`Yó]z 쑌¶¶·žòdas937 kÓÕHû–„´³½¼³Š‚ƒ’ëV 4 MŒ„áÁnÎ u…‚œ”™Ÿ–˜ï7 øçœæn 7È‚´²³c 7214–›€šãd5‘‹°¸¸¸½QgÙ÷07k€‡„„Z @‡€˜ƒ™AX{g àãØë–Á à—ˆ‡äT410 kÍ™„Ž…–ühp…µ¼¸¹²ƒïäÌ54hþ—ê–„þì‘y 䜘€›”æâ‘g64{””ëê~G–f †žíOe 4Ææ›‡ëì˜’šˆ¼¼°·Ž„g 4 ””„çþñrânä’æxâÁåt`l Ý…ìrøžšZFeof 5\à˜‡”›Ÿ†€•а°·´„èçDfyZn5 þ˜†—ç˜íF ýþž›éÚ5 üô‡š”ž†Ž“èý k5Ù†ƒ€™Ž´ŽŒ‰´‰€š•øugÛb÷å„”ÏáéÂpÚanÈeLáûu Au„€ƒ—ÙÍ€Ž‡€€€´‰‚Ÿ“ãê‘™šœœœ„áìþ5冋€5í²‘v…ÃJ=>k4–’›±‹´ž‚èÍl6û€13<1Bž„‰±´¼‰Š’‡ܘg]Ám7“fqÊ`xjgŒƒâ‚’rŸá 5647lör\‡‘†käZ„‚ìX˜aî„‚‡‚±°¶±°²Žûˆž„  5økɵƒ‡µ‡‡…î6b47 1571œ‚³½¹¶…ïwwhfÈ5goÝr}ÃžŽ±´¹¼¾±¿‰…’h    mŸžµ´‹Žèös  77hMz•€‰°Ž›ƒì–ëQeÕtP×{൶³³°´‹”„aijk•jÍu_é…š¶„ƒà— 34335|Ãòsèà…¶½µµýbW tcmÕî”xោ´½²¾°¿±‚H  7  Á•ƒ°°¶Ž†ž÷c414 có•“€‚‚”—gádÓñc5noú”Îê–þ“‡³°µ¶çyÖ}Oõpîù˜€›žõ~m56=<7óä…–ÒUvkÛá……™íŸ”„ç 4345 –ꆃ‚ˆ‡€Ÿ„´³½¹¹°±’E ? 17  iyÝáìš‚Š‹·ŠŒƒào 1374ÎîrÐêÉ“„‡‡ƒŽ…R ØŸ”—‡Œœ„•⛆…†‹°±¶‹„à4 ÒñDçÑÂDúü•š…‘˜ãr1237Û™‚•–š™ræZzYì뇕ï 1=3= kžŠƒ·½°¶Œ‡žƒ°³½°µƒ 6>99>=5ëèšš‰…˜‚‰Ž‹†ê 34125u`doËý~Ujc쓎„c15–š‹ŠŠŒ‡îÞž›‚´¶ˆ´ˆ1?696NÜû˜…’úYÄùΚÉe 45 jò“–‡€Ž„@KxTgj7670”нº²´¿¾°‡šƒœµ‹Œ„„à1%:9321qûs40ñàr÷“‹¶‘ ?$$824à똙]bï‹‹¶±€‚™7761ž¶°°¿¼»¤¤¤§¸½§¢¡º»³·´‡†Ž´°¼¹¥§¸¥§»§¥¹¾¼´œ…g5546<FP`f샊¶„ =9;'!!!;%$%;%&$$8?2419&"-#&&'$:?>=886001q‡óYaøÇVÄfÁšˆ´°¿³»§ººº»³¹§¸²·…ÊŠ·´½¼º»¼¸¹§¦¡¤¸¡ ¥¿³´’ka”š…††ãÔ`Ø™†ƒ”sW42?307 Âùn    438>'&"&:=55a„‹†„€†„„Ž›æ÷` õ†Œ´°½²°¹º¿¿»¸³´€ø7335cå–ë„ƒ½¤º¤º½°Y  43<2=2650?>''!#!#&9<15 6  h74 –•†€Œµ€‚±¾¹¼²÷äÇ_Ÿ°°³ºº¹¾½½¥¦¡£¡§»²µéÇG€µ·¼¼¹¼¾°‹†Š‰µŠƒ†Z Ÿš‡´‹……öd 4128'## &%244Ü•èixØ—é19;$;34 byÜèã‡Š¶‚ú 1336 r‘™šÆîœ¶²¹¾³·€€f4 a•‡ŠŠµí_é–€€„d 228>8%9 _âøöàfü”ãš…‡Ÿî o`è›ã“úᙆˆ·‰ˆÙö fȆƒ‡áchà–Œ€†›œku¼¸»¸½ˆµ„€ß 5<364oŸ…¶±´‰œw`}“î 29;$:<24ÆŠ‡éœ—ƒµ†™ôÜ4 뛇··µ‚žœ…ˆ±¼±—üY6i阆€„´‚ˆˆƒˆ™‘ák ;8316 nâì焜•øg—†„€åG=7=%'$'<n”‚ó‘”î쇇€—gÀ扰²¶‚š”–œ‡‡G3717 c—†‚ŒŒ·²Ž™…ŠŽ™œ”f aoØš€±³²¹¾³±³½¿½°´·Œó60<%$:%;90Œ‚·ˆ‰…ˆ¶¶·ŽŒž…î453< bã´µˆµš‘––šóñHd—œŠ·µ³¼³¿²°¿·‚…ž7>:%9675iFff k631=>?$%1ŒŽ”ƒ›“†´µš€ž_Áõ╃¹¸¼³¶°³Žîûøì~ø i’™ˆ¼±·°°³¾¾³±”a}Ýß ?4xúÍµ€ŸŒ½¶†Ò]ùo <7úîá–›òzo 3<:9823 W·±Žš„†Š°Žñ`Aqa4Ôáèåꉊ•Ðð…€Œà53551效»¼½³´‹´ˆ‚ƒ…Ñf 61$<…Šæ65 57<88'&2àƒ´³‹– 4 ~žšitd‚¿¤¦¥¹°µ‚ðúâfní—Vb g–·»¤§§¸µ†‡fjïhüc 承¦¤¥º³Ÿgc46Áäµ½¥º¶ˆ•4;<553>?360%0~¶½°½²Ÿ€‘`a C}—й¥¾‚âîn  1< h—‰·´²½´‹ŒœTQ\odg 534aúƒ´ƒ–ø77  25 62=5ï‰µŠ‚çz45Aö÷_âSng–ž‰»¤¡£²…‡™ïd×µ±‡Ÿ‰šÃóꈹ§¤¿¿¶Œ•Ábf†žƒµ„ïëƒ‚Š¹¥¸³‡ü}70 aÁ¶½¿¶–b 108=47677=<7 [†³°‡f62?4 7؉°¼°µŽ‚g5 nƇálëîqîslsâçme‰‰·†š”` t n•š‰¶‰á|— Úˆ†`}^IȽ¹¾»¶áöm’”˜’™ƒŠµ‚Ž·¥§¸µ‡…ïeELßìd~‰€‚´¼°¼¶›” na ~bjÜ홉´¼²‹ã{U Ôw76 …·³·‡ú 474 7 k……†…’‡{674 4eöò€ëoI{h1=6djô•šŽ†€…”ùvÚÿ៛LvîfÝ„·½³„4 CbJzäŒöíˆàæ–¼¦½Œ‘Ò—„7µ…Aƒµõ5 V‰ˆµ‚‚€ƒÚa÷5–šÄ~攳²¾²±éqˆŒ›ëWŸŒø}a ’µµ½¼›œ™•Е 7–j 5 í5e Ò36k2?côlÓmc h”â”‚Žƒa°¥¦§¼·½‹Ž‰Tçuë@r‡„Ž‚‹´²´ˆ‚ˆ‰öl455 øí‡‰ƒý19<2?<633 Ùki[kl3ïœà‘“‡“Is•BmüáD•¿¾‡€¿°°±šò†ùY牎€·¼÷`‡µ„aAøMÆôˆ†w픜†qf<1715Õì|jFëjÊ îVì…c} è±¶‚ùЙ†·²¾¾†f†·Œv 7Q eŒ³³·±½·èŠ´æ לð70Êdx€µŸHれ63k7= 7{•‡›iM47 „‚{†ú·´Š—ùê’ŸeW€Šàü‘·ŒrsÊ‘¶¹Œc˜´¿¼´€„èc’žl ç…ål Y™–…‰·ˆâs633734jc}7`g{Ö4 ýÝ 54šŠˆæóŸêË?>†ñ€‡™´´²¹¹¶š‡ÙQK×ïáiÛ‡µ½»°²°‹žžÄk û37j†ƒ·±€žb7502 Mö`ú—a51 ÿhӞ  €·°§½€“›”ŽÆ’±³µêJæ`ö·ƒ†„´¿¼³¾³ˆ‚™ e…µâUa1 í±±M 17;;è‚”ïs l”Ù 5446eç î“„ˆÀ68<6}ˆ¶¼¾¶´°€›ŽµŒƒnüõìêbaš‹µ°¾·´³¼¸³´ƒ55556 “æœná±¶„ 8?=1 œ–lå  ‘êh ùžNjoðé7523È€Š¿»»¶œ”›Jí·±šúšíóóÞ‚‡‹¾º²ƒ€´±°¶‘ào54 <7T›·Œ›” –ƒžN010ðŒ°š‡=05pžáŒGúo<6 õ€6;%9;= k5;215m‡Œ‰±ˆôfßïs扳¶¿¼ƒ‚¹¥¤§º‹…”v›³‹²¥¥Š³Žç™Œ·¼§»¼´´ì4„½¥¤ºº‚mÃs•‹´³²ça21 l‘a‘Û|hˆƒ°¼·†ñ5:&&><4 67 2 2< wޱÉ516 545“Œš²‹ŒŽÎiïðÚúbg =$%$3ëõB4>8=7M‡±•5 …‚‹ŽF45Rmù•ésq •…ƒœë<:9= }›ÎÿejRk˜°¶†üa 5ý€”†ˆˆƒ·³±½»¿¶·Ójt“ŒŒ´µµ´›ñ‚¼¿¾»·– 26]½½³³µŽè‹²¹¹½¼€âj=>2 Ñs\ofiä…‡µŠŒ’^??   0 µŒ’ 4<254  Z™ƒ´µ·µåg|’†‰‚Ÿo6;<5e]îÕ><à…±¶‘ê 45wᔄ‡Q7<=7—š°ƒú“ù“‘ë`13<0C–„ÿç`aQ† 766p‘˜›’߉±²¹¾½½Š‰aꃋ·µâ›ˆ°µ„°³½¾··’7=f™ŠŠ³±ŒŽÿ‰¿¸°²½›~4 6Azø‡‚╵´´›èë15<7  Öåýà’H 420 463996•憆˜ã—ÀÃŒ¶¼´Žæj 4  734@•…Œ‰Œ˜6ýb4 7 5 Qÿi—µ±¶†˜íä[5 kkÛàŸ…š†á7>>26fxh”ëú´Ž½±Ž’”]^≴±±µŠ³³±²´Ž³¥Š’‡a†“䊶·¹´è€¿¾ŽžãØ~rh|hí³·‹‡ˆ´‹‘y‘’þee >; Îê\a3502:4 63gá”dçv†¾±™0 76bz y°¿ŽŽIᵊý 127  01{z뀇´¶±…ãy 7 z …‹´¼°ŽyK|=9 67`ls„µµ„Ÿ’êžëúêiä—ø˜°·‚‡¿¾º¹ƒ–ŒŠ—‡µˆƒPASƒ°±·´¥»»¶†îj𖉕môìnoŠšŸ²º°–ü`{˜‹ˆó  |baéfuåL1hg›îë ;%?36æÆ<%2&‰”d=®Z:©„?iW¾9451 2;í¼¢Ÿ&¤À!51…c²l uZÑ´¼·…‘qæuË'#&&'<40 ’‰¿²¹º¤¸¶¼‡ 14 <<206 l47; ‵¿±‹Ž„°Š¿¡¢¯¬¯ ½³¾¶·±»§¦¬¤¾´Šµ‹·³±š6$$%!$?61 <4™‹·Žµˆ´†‹‰‚Œ‡‹5?1 Ø—Ï6071523 570%' & % pêq V“ƒ‰‹ˆu Jž´º§¡»»¥±³¼´Ž´æ09:!!&'$%:39225åž‹¶¾‰›œ`jçlž€xca·¸³Œ¶’Oé„´½±–“Ÿw€µ´ô1=9%;0 E5e‚±·¤ º´‹·Ž·¼¥§£¢¢££»¶´±±±·‹ã=0Ô 437Bp˜âc57 5—–’mMmš…lo޳¼¸·™•ohéks ;'%" <24xø–` 51E0?8=>8 ‘¾°º¸±³°‰°³´°žàÓ[PŠŸ•ò›—´·ŽœF4<::;:'$04771 1s³Œ³€šƒp˜šíŒµ··Š·õeø†¿½¾·ùeŸ´º¾¸³µŠ“‡€´†g =22%?1” cß‹´¼¼ƒ‹‚¼¥½¤¡£ ²¹ºƒ´±¶¾°³†3;:082 7 =?>:667 in 4}“±½±µóip 5ha3%><<4Tˆ³·ƒ‚c䀞œÏò7 147 húú\7 775a„†µ˜a‡°·²¼»»¾€J  qkd759 í{ú 7aèN‰¹°¶³‡éƒ›‡‹‰ƒ·g 14N샅—wüþˆ´„…‚´µ‚¹˜k‰€Ž±±ƒ¹¼²³†°›àã\ kk ÏËg{ë爴°´šâö„š…‡²°³‰Û`=679?9$;2?8< gÑ f……Ù㔇‡{޵¸³°‚f4? 8$8! #''$336å‘ñ°µ¼¶³´ƒŠè€m‘ꘕàd0` `o266=0dგ³·…Œ’‡¶·»¿³‚i”ä…„䓵dú”0bi14 øÚœ¶µŽˆ¶„–Œ˜„‰ž‡‡’€›ˆ€‚€±¶W¶Šô…›™„R~Z…Ž|¶•ƒï÷´‰‘µ±Œ…‡Xßüùƒ…… 76 775 æœÚ 0 rñ›w—‹†‹˜‘f} <41=%%08:34ôóæGPœ”‘œÛ‚‡‚Ÿtç±°‹ˆ²ˆ³µ[Ûa`657ðcåãÿvrn™±“q憈±Š¾¾‡ùå…ehbMJŽ›•µŽ´½‰‰ž¶î7–PhyíµŒÿûìœöì542>7$;0 7411 4 °‰¿º¤º†˜o |ãíSNdXúœæœ¼ˆ‹iz銰Ÿ”•°¶åz€¶½²¾°ã›´ï…Ÿý„K æÆšÌ622= 7 2741–Šœ”fs6Têd ‰ŠÒh’²¥œn 0< ù‡šß”€¼½¤ºŠ†x‡‡¼¶j‡œ…Ž€‘î¶¶ƒžÃ‘‘\62? eâ‘”F“Œ±“–4z“üòm=3 kŸæ~J37›±³³è‘dä´²»²³‹âboØä‚ˆˆŽˆ‹t›¶Žœ` 033?éü“`‰¶ü1 z_Äs 1ÞkŒê™ 3$2 sÉáâsad…½·‡ˆÒ q‡ƒ‰•km…ˆ·¥¤¼µµXyꌵš—gê„‡ŠµµˆYhm=4}ØVzä1?7\Ž´ŒŽ[cm”µƒj 0;4ŽA9%:=ö”›…†–ïø’°„š…l4Ï›°±¿²›—l䆳º½·„ ™±±‚´Š“Üêñ‰´º½’ïk 1? inuâ F€Ž„µov5â—êü6>>37í·Šâ=>%:=✀éæqh11„°¹¹±“f4 œµš†˜bŒ±¿³¶ïdêYˆ¿¹µ\Þ™‹·¹¿µµ{ ”†Ëg7<02Š‹ë  ƒŒ‚0;>>01àŒ‚=?3<7ˆ°ˆŸŠ…yk16kþˆ·´ënÓmhk’ŒƒÀá—Y6ä´¹¾· T€½¹³µ‰‰‡î•‚‹¹¤²µ‘qÀ‚›ù4?3 ™†•” mžŒè68>3b˜²±• 00:1ÁëVÞ fž´¼±“y“z 5AŠ´¹±ŽqznkàŸ´´µ¶ˆàêlÑ·ˆ¿»´‚äÙwags’ö 46=45 ›™šÎ566ý™ˆ„6<6Ÿ‡Œ@<970”Ž…žfs‰ŠÄemoâ”z“›ñ†¶¼‹tô•Œµ°·îŸœìǃ´³¥¤³†„–ö`þƒfÜb545r– 1 1lgÿÚ 7=?6o°·”dÀ6cš’j‡´6Ÿ1J„’ïÖŸ‡Ÿ¤8¢ŸlE'à'3W’0™…¿‚”Ž´¥¢µš“4<'8œŒc7kŒ´¸±¾Š‡ž…OOè·² ºŠâ›±¼±¿³“‡6;%?18=9=<<%##.9006 52<045oŒ²±½¾º¢£¡¤º»±gkiˆ··‚wY䟅°²¹¸¸¾¿°¶ÎÝ •æi3;%$9 Öi_÷>$$"##&%8:&& 9öŒ‰µ±Œˆ‰¶Š”†ƒˆ²¸±‚‹‚±¥¦¦  £¢£ ¡§º³µ´¼¥»§  ¤¥¸»¥¸§¡ ¡¤±…€ 1=hæ4661 béœï69$$%%:8=?%! -/!%< >8::<%$%&:=9;$$$<f@“‰ïÕ 6230106i vö™µ³ºº¥§¼µ’wŸ´´†•˜Ž·½¤¡¡£¢¡ §¼¾¼°Œ±¿¸½·¹µ““°¿¼¸¤»°‚œž 5744 613?? Kc 703?:<  6?=7uà458;93 ÕÑdþ‹°¾‹‚„éèd`‹¶·žømm€‚¶¹¿¸§§¿²µî|xs’Œ›æß–ÍÄŸ¶··²²¿œ–m `16㓌‰¶î÷=8?8:25 1 14“Ÿ˜ƒˆ÷43<'!&2  Á‡…޳¤¤³±ˆì~a€Š€™ž”‰Ž±¸¥±±¶Ž™74|éÓYcMen—›††·±·àd`眇›cèû–„††îgz 2:>6j”q 117jЃ‰ˆŽ“51601oŸèôlm•’°¹¿¶Ÿ“u @î–…“ò“‡µ°¸¥¿°°Œë “„ꘇ‚‡Ž°¼³½¿´€”k 720 •–ÎÍ|HmŒ„ò728'$>?>0 ÿ阈Æ^c641367xäçèQׯKfa™†…š›™á470 –õááùÜó´„“€––ê–‚›ŒŽµŽŠ·´±··¹¤¼µ°Œ†Œ‘çËŽŒƒŒ—“–„Œ°¹³±¶‰„”r6 55úäÒëg53gEšƒ‚‚ <%%&&!:0464uŸˆ¶„6:89%%< 燃ƒ™‚´¾¹¿³µä 5?; •š›ŒšÃ“’—†³¿ˆg44=9<8<v„µ´‡vEcv™±½¿¾‰z507…‰¶¸³…l|‰‹±°·„šá >&>95‰†—žÈÐØ`±ké 20<dåë²¹³¸¤³Š¿Š²ƒ€=<'%'$2>:'$' ! #!&%9&#!$! &37…ް±Œ†…³¤¡¡§¦¦º§¸¸ºº§¾¦¦¤¸»±°±··´º¾²½µèæÝo0=65wÁûìí}btka44 >9<''90 ÊxzÉs…š†˜dIa 5•€½¹²¥¤³¿³°»¾¥³¾¹€†åàJ”Œµ¶¼¤¥¤º¸¾±¼²°¿¶™D 3= f^—‘ìÛ18?>:;>:;'&%%6 71417 32>$>''! %:6514382 703>9<8?<4—˜–„—‡±°µ¾··°ŽŒ¶±´‚³½²»¸¤¦ ¦¥¡§¤£¥¸º¥¦§¥»²ŒŒˆ°º¤§¡¡§¥¤¥»¾²¿°¶ŠÉbl|Í–€€‹‚ƒý^m 18:8&!$88044 62 103>&&!-!$''$934ç 1 4=20Ã@H@é´²¼»½·‡€œåàí…màŽŒš›…·½¾¤§¤¿¸¶„……„Ž–`v^JㆅžìúA`46<=9=50357 zõy–äkaD`“‹µ±¹èš„vG„…–ƒ†}rÊÖ™µ¿¹¹·‚„‹ˆž†µŒ‡µŠŠ’@â…ˆ±°º¥¹½°ŠŒ„šwmpjûæ^ó”Öîû—j>?>89<05071 561<:056   c`edn 14 66 tî’ßáŸâµ€˜òœžk ûvih6m…µµ‚Ÿã›™huýj~숈…‹¥»²€––†‚q|jþ‘á†ãa™‚€±¶¼±‡ig‚å›ñc‡‰…œå“„ŒŠ¾¼Š°žgY€îs쎺½¶‹€··°Š´½¼ùk1 54 iùƒ¼³€H„ŠŸãœxã4=243=< 5ãójz øøœÌ7=?245 7˜ ~œë‘në„ÁU j42>ág 5 åW’jÖ‡„ã•´šû÷·³¤£¦¸‡ëŽ´Š‚†‚‰²‹âiç“’ž‰´à0 26âî004^wƒ 08'<4703õ  4‚ƒ’112”š‚™Œ·±°€€…~ÕŠ°‹ú41Ó’øŽ²¦ ¦¤´€µ²¼»¹½‹á `–|–댘ïÊñ|YÍ䜟ˆ‹V5;$;7j62LÒÛ‘ãðž™g 6<3=<9?6=k•—Ån耋´¿º»³·Œ6 clñ€‰€àMä´Š¸¤¡§¹›ýý玒˜ƒ‡›·Š‰ˆŠ‹ù6>930 kã’x †‚”S‡æ 10;:6 a„ê{ûÊf×AF >35g`µ´²¶·œ†‡ž¶··¿¿µ›B<kÂ’žœDaîá´³Žé 28;? acÞgfœ–íÃ1=9;>>9 bž†¶³±¿³°‰—1hmh„‡———‡°¶²¤¥º°’t7úƒŠ´ŠˆŒ…‡·Œ½±¼³´ê< %355 ý´·‡Èm5e’†’œšš88:'< WÇm›éïú00302û‰¶š’îž‚›š„”ü—<>7éì´±Š¿·„’Ÿ‡Ž±¼¾²¶ƒi 504Ý´¶±µœ댂µ¶í53>&<a“™„õaD`딞‡ß74<80 0 R”ñ‡‚±²¶•å Chj k™îšç„šõ‘–€‚½²»½†ö 0Ðшµ¶²ƒc÷÷Lµ¶»½´Ž>&$=0 ’І‚à}e 81û–œµ†ì1=;??>1û’ Nj• 346 5b÷”V€Ž´…ƒµŠƒ‹‰…ˆ†K77W‘‹·ºº½´‚…ã´¥»§¸°Šû644„²³´¶…ârÀ脌²³›09:'$8WÖôã p“ù„…ä 0>989;<0? çcÙ씆³¶ãùéé77 5ꆜ€·‚€™‚½»¹¾Ž’Ë1xв½³±²ƒœ³·²»²‹ê 01儆Ÿ_1n’в‚I=%=8> 65’D†e 0=?73ø——†¶ŒC{€±¶Š¶ƒPéq 4`‘Œ°½¼³Žƒƒ°±½¥¤¿€W54 ~ÞƒµŠˆ“€ë‚ƒëåš‹¶³75$'9357„Ž£2È—2¾4‹2<'3:;Zµ‡Žš½ˆng„ %&?;%:'<nÖÇšâ™å†½Ž±¶¶µ±¼½À›†€‰´³¥·¼´‹‚ä³³¦¿ŽÇú132;93 owi㎴„·’ 64 mq[Ü‹²ˆ·º  ¦ £¡¿³°·‡nö›šš‹¶µ„“’€æÿÏáÇ1<'&&'%$$%$=56;& &&&!-"-///-,,":7=3O×qçr…•ê œ„µ¥§»¾¸¸º¤¡¤¤¼·ïéï’ƒ´Ž°¿»¦º§¡  ºººº»¼½‚éç̘žyÆi•™‹™—Ÿ“êçb0 62<;:;;?<=f완„ç燈Œf 66 5030ÜcØž‡›ž€Œ‚ï˜E227 Ýá…’›Ž´±¹º¸¹°Ž€Œ‹‡œV’°¼¾º¡¡¤¤¡§¤§»¹²µ´´ƒžêoààäöÜ•µ´³ŒfQíõò6982?&-:0>86 5?3%98# :%& %;6624  58%!&'88=2 ðš›´µˆŠ¶º±µ´µ‚ýëš„ž¶µ„½¤¥¸¥¤¦¤¦¤½¶´Š€‰šžÆ–´¶¾»¥¦ ¦¤¤¦ ½ˆ…蜖ƒ…E 曜淶‚‹´°±µý2:%;=46022 bë{ÄŠ˜7$87 Riuž˜Š„–„æî¶´o 192bÀõ±ˆ„ÆfÈáfl7:?7 lp 󛀵¼±•<2??6e 694hïärn 8& $%6 a 興ŒŽ·µ„‰ƒê436 —‘’·Š±¾½½¸¼¿»¿Œ È›Š´·º¦¬¯­£¬­§¾´óçš±¿¿‹ˆŠž±¾¤¸¸¤¥¸²µ†45154v” 1ia„‰†’˜în4<8:8%?7kvèãè™\ 73<$ &&$935Õí<'$%3556õÿi…àf“Ž´±µŽÝ   uƒèHAyGë†‹ŠŽŽµ›˜ 455Ó€…ꎰ±±º§º¼¹Šƒõ 1Ä–‘äuiž‡·‡…ޱk5;;%%881 kûZz“Ž¿½²²´€œú‘o䃽³³¶Ž´³½¹¾¹¥¤¾·‡ù 5 Íž„›Øèïdõ‚‹‡š”` 13?5ö•Žš…˜të’›÷Ÿ‹¶‹• 4<11=1H‹’5Õœç@w099>%;5  núkõ˜…‡t 74 ?2?5a’VaJ…„´±‹øžn270 œžµ³êÕ…´Œˆ¡`¦jž~ø$ó5i¶‘Ž\޶e눵¾¿§³±æ6 3>9^m‡ƒèÙ…‡°ˆµ¥ëŽ‚‘›ýk鉶§¦¢ £º¼¥§§¡¥½¶ŠW38$2$= 36=1 2;6 n=::%;9<31h‘paðu¼³¾´µƒ“‚„Jö傳¿¿ºµ†‘è”둆ˆ4601 <04i`4:9?766 ;%#-","""&%<< 5 7‘€ŒŽ‚‘™Wï”±°¸¼¶¶‹´²¥§¡¢¡¤»¶¿±˜–µ¶°¹»¾»¸¸²µ‰¥¡¡¡º¶€óíIfÄ‚°²¥¼²‰Œ·²´‚‰ŒŠ€—g 2%$$:%826~ üïñ503;:8>2y ˜ê¶„‘^tni X뀉°²±‰¶¶´°»¸¤¦¥¹·Žˆ‰µ‡ŸŠ·¿¥º¥¹µˆ€´¼º§°—0>9>5e  O‘fz %'&!&'882 >270<5`ç6=89%;:'$>15 n Í垎–š‘Èb‰¶¿»¤§¸¹¥º¤¤¦¢¬ ¥½¿¿ŠŠŽ²¥¸¥¦¦¾²¶´´Œµ¹¤¤¶ÔnJužµ¿¿‚…Ûs󛇇’™€ 98?8?151 5;87=5{4?:98'83=6 O jä„—â474 l…‡Œž€ƒ²¿¶‰ši673z“l‡—愂Ƀ·‹µ€r 7  nXæ€MbÅtŸ’Ôn 0???20\ jçØzê’ 1ë‘†Ž²±¶ŒŸ·³±¸º¹¾²·´¶‹š¶°²¼¥§¸½¶±·´´²º¿¶ˆ±·’bàèµ¶ŠŠŠ„‡„‘„¾²³°ˆû 5om 0 nfñ62=8$%>;%0 92417 6= 70%%:'9>41 g†‚“ë47 ùšûñçíÆ˜µ³°ˆ…ƒœÅ éµ·‚޵ˆ‹³‹š—´¸¶‡ˆ—jîᓵˆàƒ‚‘“·ˆ”îAè†Ä„ç“’“ê’„ƒŠŒ‚4A~`ó–G‡ˆßr u‚‡††‡‚†ñ0>1 e–ƒš–aêã”¶¾¦¸²ˆÁ5fŒ‚h ñòe‚·ž5?&&?  lžãäy42<$'?=6š–[m|–‹´²‹67 606ÙƒŠƒ“ÿ‘lœ¾½Ša420>_è·¿´„™ƒaÅ…½¿¼±êö uö•ƒ³¹Œ„ŸQ›Œ€…™€‰‘cl퇖•Áíø“—÷úž…³Œæ ÓtŽŽ‡‡ÿñc÷µ…·¥¹½·ŒeèÖ˜³¶¶¶¶‹‰•·ˆ±²¶§¼²˜šô 0?<7ù”ÿ7 f g5‘“õn6'#!&!"!"&22 gy4 =8':8$=6``ŸŒVf’ž±šŠ‹‡ 1=5–ä›´ƒáš‘¾ˆŽ³hy~`Eô°°‹“Œˆ±´‹½ˆ˜”a€aCà†€’‡ƒµëÿµ‚„´±±¿¼²‹ì†›…š„³š…ƒŠ´“˜³¼ŠŽáÃ÷~’jœ‚•œÚ 1613kDš·€…†ŸBðš‘ì…ë 5 0>;56 ž“’äfgáó 1<';% $=àýK÷k 75Y 60?2:%0•íð™XÕuïH”‡˜—MØ 3 ì癇°ˆã’’€µ¶€‚€œ –…·µNx´´ˆšdœÞéšµ·„à ಶ´Œ·ýž„ˆ‡—±°Œ†ôú^„°±³‰°¹µêž´Œ´Ÿ„  bh…ˆïgû”nd‚œâ‡’6174‚ƇŸm•™Ÿgn€‹‡Ñ ??1Y´—Ë÷Nj4 È›588$;>1md‡‰ê437 I 75 =47Z”ûU„kœµéMiéà„Œ`1<b‘üèûzíœã„P‡¼“—ÎÏ771P埊€„‚´ä—„‹‚è“ 47 “¶³°˜°µµ€€€€ˆŠ¼‹’g44mˆ±²³±¹¥¿³²ƒ‡‹½¼··‘ià`²±·´må‡ë‡‚›è–ãÔü 2<0‚¶†Ÿ•”Гmn|iW„‡ 3?00 ……€„ö544 01=:&:=3bÓ˜ësù >0 555=;;$;0s„gOâ…€eËescœƒ 7?6 çéí‚‹¶……†½˜àQ034q±±Š½Š´ˆ‚˜†…†€…ô=5 ʃ·½¸¼½º°›ƒ‡‡¹µ‡Igˆ°»½³³¶†´²½ˆŠµ‡–`jmë“´µá–˜èØä„yMf÷=3 7óf‘ž“„–cžû[06 45 °Š·†˜ze•5 9;%8hÁãá’€Ø 7> e•7 ? $<  b€†–ˆæcÝΞ 974=;0‹‡±·Œ›‹œž‡åçz}÷?<4„в»²·Œ†µža·´‚„šú 055m™·¿¿±½ˆ€ã´·‰··hcõx‡½±¬¼„»šø¦:©ž14 ‹%'F…´u¢Š±¿.€Î-%? >ƒ•º§£¤¸¤§‰ž”546=3>1 2>>…ƒš“žö†‚mê’…†±±–½¹œ°€² 2 &'-,##-'$';?7aëfAçe†ä¤¦¡¤¼»°…‰¶›b 2 293 6917Œž…›·¦£º±œ³µŠ»´²¿³¥¥º¦±·²¿¿¤½¶Šž†—šƒ‹²‰æäüòá hÐM 7 5V˜ƒ…‰¶Ž±¥¡£¡¥´—ÁèÞbêÁiãn ÜT&" -%$<=6 =neJã°¸…s41;%&% ñœÈ‹Š³¤¤¹µ„kk‘3=>8?&;? !;?=0 0%%?:'3炚¶¥¦£¡¤¤²ˆ‰€ƒ±±¼°52k‹¿Ž4674væy=28? o‘„‘ƒ†Š¤¸¤¦¦º½¿¥¹¸  §¹¼¶±¼¼´·‰±‚dÚsû_Ÿz 7??;35 Ë‚ä×èbQ‚·¼±šX162 –ƒœ²²¶È‹³±¿¹º ¹·‡55à~d 9%;9<2 ? #" 881l‘Ÿ¼¸§¡¤¶îð˜4 6777 ““µ€„óû fy›61=;<;4z 472=>64Ô‰Ž¿™š–j˜Š¡  ¢¦ºº·³»¶¼¥¸º·„–788$;:60%!:%P’›µ·°³·¶º¼¼º¥¸¼½±°±´‡±³›žêæk  }‚´³¶‹‚…ž³³·¿Î 2&&$20s†že60 FÏ··º°„‹7 ì’‰¾¤²¶ýfoèŽë  =##!.""&?'=:2 犲µ¶´äZµ†›ïP 6 5 ÒL44=?5510< ²°¿‡ósse爋³°¹²„76i–€Šäa7ï¶²±¼¿Š€’☓„b–ƒƒ€êe@B™ÐbcüèjKL ±¾¼¦£¡§¥¶²»¾¥¤¦¸¸³x6 ß°Øj03<=075gþi61<5‡–Œ¼½º·°°‚ƒ¥¹¹¿‡7<$9=35 ”‚žq52514 6k€ƒV™A~?54732&%95j—œÃgYj7yœ€™èäh0gø‹áó  ê‚錙hÝ•µ”´“𒵇²»·¥·‡í‘f÷”}ÃjJjig‘q•„•€ŸneG·¿§º°²Šƒ¶´»¿¸¹¼‚d„4 Þ·³ž•˜d ’aä650=1w†€Œ´ˆ‡`¹§¸³š› <9&&!?0ê–F37ô”€A„‡õc 0>'%:6ë—‡¾¿½´µà犰³¶‹$&,- !$!&5  ?9<nêÛ×@j506:&>6…Š»„»¶º¤¾¸§¥¾™û34?;2?01—{s•·Œ·½½Ž’oný„·¦§º¼¸¦´¸ º§¦»¹ƒŒé 41 ú†·“‚}’†€´·‚ƒ¶†…6󔇲±¥§»¼²·²¤¤¿Œ„ ?%=%26 PéÍRQþƒä‘äŸ17'%:$87} „{ 59&%-!$;:21h˜›sï|耆ÿbxn30>%7:;1cà‘†€f™Ìê†Ð5 =;8?7 åä°·¶·²¥·¹§±¸½šìþÁœœ‰€î‹±’ŠŽ—œ—˜Ã 75íwÈšŽ·¾¹°¼¹º¤¥¹´·ìÙ’î”g„¶Ž··Œ„´‡Dàk<373wâĵµ¾³±±°Ž±’  0͉™·™€·‡ˆŠŒH=>82<>=24 4pÿgÿæsj49%6=64 m˜™‚‚‚ƒŒ€vFU567::%%=44霒y冈ìÎ4403 t—’‚‹µ‡¼¹¿½·°±‰•ib„nnf’ù„š€¶´˜Æp4b4·ƒ‰€°½³¥£¤¶‚‚µŒ”ÿ l”u„µ‡‰ˆž´t›¿³´êl65VÇ{P·±³œ‡¼¿ì7fbkäêâx…°µŽfê‹€U6 0215 1<Q’œÿ <:%;165d5‰Š‰††åƒœ 00;3< <ÚŒA›Œ„™ =065hIJKœ†µ¿ºŠ€Ž‚g55 ’‘…’†æ’ƒƒƒ¶¸¿³¸¶Ø7270™‡ÃÊIŸrC°¿¦º§¥ˆƒâÝDƒ°½žî‡‡·½¼»±½§±…å 541 t䚘Yš……ˆ€¶±½²¶ŒÈ3$?6 4dƒ–ïJàœ´±ƒ´†ˆ‚ <;335 5je‚Ž“ë\18$$'0>0 5fd†„Š‚´‡˜Ã12<9>=76 ojƒ†ˆŒç 6>'$3=ôä”î´³ˆ²¤º±’ 64è’•…—iƉ€´¥¸º¹·éå66 Õ„cgòezŸ°·¼±½¾³„iË”žá‚Š‹´´ŠŠ¶°²§¥¸µµƒ 1 dž€´„“Ⓨ·µ³‚ŠŒ7=05 ôëË‘pïó㆕  0r”20w”‡xz„µ“bëÄ613 7q5=:>: e¶·±‹‰n$%6 ••œŽà73%8=:…€µ·‡4>3;35j—Hå76’ˆŒ˜´P àkm™žë™î  7anìLŽ´¶‰±¸²»¿³¹²º½º³€µ·š”…‡‡·¼³¥¥º·™†ýê~ò‚™›„ù5g±²¾¼¥³Š‚ÔÄ}glâj5 >2464bš—ò”‰šš–~hgB 3?0088!9>9< Xamb1%05é≵g8%64?  074 kž‰Š´€Œ’mÇ“”ž€›cœíYš‰€‰µ¶‹‡ÂQ€›´›š‡–šÓ„’ŸPž“†ƒ„„ƒ¶µ´›Ž±·ˆ›€³·êšš•—“隉°»º±Ž€ƒƒïÄÀbi@˜–ëfBc‡‹‰¸»¹€~›–p•àÁh4>142 å‚újŒµPäbÿLcf 45= 16 56 ðî“S =0  6 7qp€Ižþk‘ ?130  þ^„ç——ÑYÞÎá]{gæÏÊ[‘Žƒˆ´µœ“CgšƒŒ‹ë™WCóù•„愵¸°Žêÿ„€‰†Œ‹‚”“ã´ˆ›†è䃛êñ蟅·¸¹±´Œ—œž˜ï“ÕE˵´€ã ƒŠŠ¾²‰šŸò‘¶ƒƒTåÔøj4<09< –otÎhw뇞ý_;%007 0 5 íyÍäàÛ0'#>5{  Ú`fÜg‡š04>2< |u7 ÍäêèŸo‡‰œÒg†ãú—ì…œ²²´‘W…±·…€ìu²…˜ŽŽ°‚‹‡”–|‹³¤º±µ„„q5•ˆ‰±·¶²ê ½¿¹º±··™„^çO…¶¶¶•hô‡½‰µŠ„†±µµ‹ç…Õ 74ãï=6ñ’à fá“›Œà}58!#&>0Ðco <04kj´‰ì5$#/% íöýègkÊ“Ÿ1836? •ÿ~ ~Êèë57|kò‘ç‹’ÏŠ„Œžç„ž—Qü„½¤³±²ˆ‡Òèuž‹µ¹»¿œó“•ÖÁ¶¹§¢º²ƒÆ“œmf™Œ†³™ŒûÇ‘¶»¸¥¼¼€‘’uÝéÕ‡šµ‚ûƒ†€„„·´°·±´›`|ùi2 Œ‚íøâ ÙT—ƒA6=8'"%<1í’‚ó436 Qd014?6483>=·¥›’no3 Ô†½²Š831 ðƒ…‚Äjl ’´Œ‹‘†O \`6=1nf™á`<7q‰·½°—Áò8gbñ´½¤¤¹»¶…´ˆ¿¼±‰¹ì 5 øŒ¶¥§º¸½¿°ú‡…ºº°»¾‚ŠçlÅ{o€¶°¶Œ°¹´•oôá᎜„=< 0 pÉ8 2zÄåç– ?%&';=7;5álï71>011AÚ72'>?$16 ’am—” 6$< •Ÿ“ší4=1 ``ak~‘âÐ0ž‡°·‹²……Åj히ƒŠ¾²•…Š·¤§¡»¥¼€déé‚„‡·§§§¼†`\å…Šˆ°€…” ä爼¼¤¦º³€ÿ鉰¾‰´Œ€þWU‚Š‚‹„›šŽŠ‹Íwdfkž—‚d4427 5lkïÓ8%26ü‹‡› 7;40 6 ñû5%%eGi\?8=1012Ñ·µ„—át 5g56…€‘c€´µ‰ž• 36 fœƒ‚´ŒŽ€–±°¤¥½¼´’éùežµ´…é赸¦»†„äè‹‚ì“H7À‰µ¶½šˆµ¶¼³ˆdè‚°€‚™^dŸœš}ž™ƒ„ñ³±±Xm 1Âó7?=6ŸŸ–À 7035A—–5<=iœhMj 7?:0 41÷r 4 40æÛ9%>23Š˜—ô넌c^Ö6=<6 쌋žJ‹¤º·†11 6Ѱµ†Ý‘ê”°¹§½¿¹¼¸½êð÷à‚êjˆŒµ€Œ‹‚Šƒ´¸´˜’ú‹½ƒ 82 Ä›™¶²œ‘퀛¾¸´²‡è‹‚uì—bé„°¶‚ík’‹ˆ±ƒ€™›ž• ™ƒ„u6?;5Tè„q~75 q0hcý <%4‘v?02754d†ä7;&87퀔 7>9<27 }š…ƒûcjîë\526âœæáRU—Œµ¼¥37 ‘”Ç—°ƒŒ–œ´°»»³¶¶°œ‚õÛƒ´‡…ƒµŠ¿Œa™†‚·¶‰·³„0902µ½°šÒH±°³¼¼·Œ´“a퇜¶°‚–ìæà޹µƒ‰ì‡Î„™ÿ613èF™âw? Sduè7 57700@™‘4<0?827 ƒ†xo %!1 õ…’8!>95ú—}™—üî“3æ†ãa?'7—àƒ9æš»¿¢½µWK޾;¦6V‰\:' ·²¬§£¦ŠbŒdeä…293 6R‰¤¥·Ž›lã€üŸ´µ³¶µæƒ½¼½¤  ­£¥º¹Šƒ“múD528$!&8'>0 ? $'&&&!$97=$9%<2$%3ÊŸ´ºŠŒ‰µ…Š¿¹¸»¥¸¾º¤º¿½²°¾»º§²·½²‰ƒâš´Š±¶Žë–Ÿ“„¸¿²°g=2?05<9%8:!888?0ÿÔ<;& !&=54 66 Ƙˆ·³µ††€ï Ÿ“šŽ¼±±´·¥¤¡¦¢¬¦£¦¿µžçÒ`œBvƒ[䌼¤¸º¾³ˆ„÷Ñnj 55 5 ÇS13=''=36;99:&# $$87à7 728:;>73=4 4 091ꈷ¼¾ŒqùŽ·°¼¥¤»¼´†€½¤¥¢¢§ º·‡‡²§£¦¦­¢£§¸¿¥¤§¡»¤»½³¶€”áæ1  q702; -- !#!$1>8:?$:144 4$!#"#&$%7qì iCœ‡…”‘1=74‘°·±¿µ¿¤¡ ¦§§§¿¼±‡´´‚†¶³º§¤¥¾²´¶¼°³¾¸³ˆê1 f—æ‘…åfãÀþ“Ëc499%>?5 065 Õcj0>0á…Œµ„ôñcþý†õ߃ëìcp™›…¶¾¾º§¸ºŠ±·µŠˆŽ·…n4Âq™ŒµŠŽ€˜íìšSÑ =8 &8? âš“âÿð cþ4?'' "$=90{˜è’ÇèÕeþÂbg 6;;$:73……·²²Š€Šµ¶¾½±·µŽàøi™µ±¸º¥¤¹´·‹‹±±´±·µLf[ù´‹Šµ€žêé–ƒ·†ï 4r–铆’kî—|SŸðûü 1= C„Œˆšl 5ßÔ61<7Jß…¶´´½¶‡n‘üáêmLm0??8>4‘šƒ‰…–Åml 5 <888뙵·¶´”ä}ë‘^Rnv3<35vdü˜µ¶¸½²²‹‚ޱް·ƒ’ö74 Dè‚ƒŠ¼µ³·‘‚‹‡™„„”ú2—žŽµŸ‡D5c56?9?51`€Ÿ ó`ønžðÒ7 é퇔´ŸÊýÉo”@ÉfcÆVV”˜šŒ‰°±ëOM‰âÞÓäÕûëJ„‚€‹¼¹¿º½¼‹Œ’’‹µž•475njÒ–‡èëÀ  3>61?:';1 놅\g 6451j6‘ê·µ¿²´´€€æÞhN”7Fƒè€Šµ¶ŽŽ„K”ƒìe“xñn 4 }äRŠ¿¸¼¸´\Bû`oã•ìUkKmc…‘‘ƒ™a4 5=<310 1  …•´·¶¹Ž€ˆŸabQÚôñac•ꎷ¼½¶‹´Ë”\Œ‚€°Š‰™‚X‘€·ŠŽ½½½»»³±š—‘ 6%=12<77hýÑêœ < &'&9?1145545fä•hjg~   5rœŠìƒ¶´¶¶±°ž‘†˜q@Œƒ‚‡r„´Ž¼¸»¾¾½ˆ·´äÃSY~û÷`Ÿç`î‚¶œ›àl0<3=443 Ô44a‘“c6304 40ï†nÏŽŽ’µµéŠöƒ`âßè’„š·¿¥¾³½¶›íãÆÕáâÇ툀û‡³·½¾¼‚‚µ—hÁ |G3äœÛ‚ˆ›çi6=32871=?74 æ”–›voím45 4àŸòWµ³°‰‹ÉR‡Ã敜˜Å†ó{z€ƒÑÞþ°¿´±²‚î´Œ™êä`vhíMê”ãaбޖµ´E 614 175—34møïá63744 54`az銉ˆ°¾ìðšWyÊóó—´‹±ºº¥¤²‡mamÓêcˆáû´ô†‰´¼³»¼Pf“tQ 6 mQ“µ‰ 39<=  650891ûž›‰à >?15~HÐïË}’‰µ»¾¶ËjìioløŽŽ´±‰´‚~“„±½£¦ŽìDê€äˆ²€Š†û㘅µ¶¹¤0<0 04 ajë›…ß1500;?=4 75þjlÙc–™¸³€•?3 70Êꈃµµƒ›´¾§¦»²„Å47ôŽµŠƒ‹„ÿsïŽæ´»¿¹‰–^ îYnÇ×âH’ƒ…n%=31==?92?1lœìŒY25”áíÝ nvï½²¥º·Œó}v„´²²™Š„œg—‚½º¦§³µìlÄNcdòœã‡™êŸ‹Š±s=724577 6þpez 51<8303 5 5 x册½·½ƒo 5?4 Ïûn]hÀ‰´½¾¡£¡¤³‰šœ–}šæâƒœp“·ƒœ…€¼¥½²¾±šÑV 16 þ…oÉ’ÂŒµn41=:%62:8::81 yjއ‚ƒ  7j~úg 4g€³¸¸°¶€æmâåš…‚°µšô E··Šµ¸°‡º²¦§q €Ï134˜çhDàflXœŽžfh 6 87ÂëÁµ³€¶”45 0  ?= 3H‰§§§­§¿ŠŠŠ˜„€†|a‰é„??2=<4=‰Šº§¦¦§§º½²´‹œÞš›îæP [à‘ü¶ôL?&8<;9263$98%0|CB±½»¥½†ž‚™†¿»»µŒ¶èkr†˜°²³·Š†c 0%'16465“‚‚€g êž„ò“’‰¿¤­¡»´…bg —ïxÒa ?7=7”šßV 336 ýâ^ou›qñú·¤¿¼¥¼±ƒ„Zm–…rk“¶›B†e4%6 :5“„¹§°ƒ‰³‚ç†ï†‡³ŒŽé5 Ô4m—±¸ˆ€ž:0 6 ??65<=> `²°¶‹Š´š 7ý¼±¶‡…‡Žƒ‡ººŠ€¼³ 426 45?$l·‹œ‘m ]„j|貸¤§¾º½‚žln npF3636ëä…‘ 47356 eîLZr›†k·¸¿¦¥º½’‚´‡ëafçón7<K„šíDô˜642>  %; hj„±»º…ƒ¹‹†´‚‰”ìµ…æoï4ƒ½±Þÿ‚’  5;0><61üú‡‚´Š±„_eGgžøƒ–盟‰¹¤»Œš´å5 o62 ?= 7$5¸Š”ènn Dçy|kxáK“óPŒ²°¼§¾·¼¾¶„— Ê1 407 55ËêžëŸb01ð}Mµ¸º¹¾·¾·Ž±ƒµž”çd1 …’…e 1f 3845ü·¾¾½‡„³±‚蜃‚G`ú……íæo„°½„—| 43<;'2õÅâi•†“îˆUë@Kþð·’UŸ†²¿±º¥¥¶hO:6œ_5 60ëƒÊYŠ»²“œ<Únxo“Œ€‡“†Šš`Ë œ—Jgð€Ž²¼“™³¹¼ï ;<2 47833 5 ë—Ç51 9? ‹G†ýJü ž³½º²·ŠŒµ—‘„¶¥º¾²³±·¼³‹ƒŽ§»´…µì^”ï逓š@…·²žëþe 5432=<<=;?øæ5?39>0<5 76eꄌ°°¾¿œŸ <>>4Ö‡‚í÷ê´³´±¦¦§°±ƒæ äqoìænV„†µ‰´¶¥¥¿¶í‘—ïc5  %%??Eg16ÿ±¹»¥·™14<$91 „‹†”ii’˜Ž´´¤¡§º³`km áoå¶Š‘·Ÿš´ŠŒ¾¹±´@ƒŽ41Úoa €“☃‘Ÿ– 0%':97 74cé‚·±ê?'220‡€Œˆ\dg—´±½™é k4=•±°±±´·ŒŠ¶‡…µ¼Š²µ 15d„³³³µ¾¹··€Œ·°Š•m 89?<9;?jø„“mi@ÖÜ %!%&%985ô–ÁäÌ”â[½¼±Œ539?50Œ¶‚…“’´¶³¾º¿µB ‘·³±µ°‰¶µ€µ·¶º¾´…`  …“ƒŒ“Œoï š—z <8!%2>34tìf7ÿµš5<%82?86n‹„ƒàò™šŠp60_߈·°½°Œ™†°¸¾´Œdp æë¶¹²¼¹¾ŽœŽˆ½³ƒ€Ñ 0$:?%5 žŸî”f5åæ :8&'?'2TêäÓßˆŽŽê 7144h ’ÄŠ½ŽŒœ³±¸½µµ‘ƒm  _ჶ¶¹¿¶¶ˆ‹¶¾¿¿²†Åv g敟ˆ¾½™ jŸc 2$'#$9<‘ ùïï<%$8$006è€Ì75”…ãü52::>&=;: Ÿàê僙•ç”=6>< ùŒ³‹°µŽ¿³·‰´šŽá?SŸj’ oޝޱ·d7®e«b;%6þ$?gŒºz­‡½6%­z:0a%! 1„½¹ ¤¸¢¤¶Ÿ„´Ü2&'$/ ## 93pà—Μ€‹±º»´¸¡¼¾¡¾¿½±°—é”÷€y444 ‘`‡±èÏg—FŒŠ‹±˜²³±º¥¥£ ¥³µÁo47110 hdCÛ=:!!'&!/" & :&:$%<=97ꃆ팴±·µ‹‹‰´‡N—›x’˜´±ã‚²¶¹²€³¥¿´Ÿ  67퓟°´àTr›¶·‰š•d”†‡Œ€‹…𼾀г¶·Œöj69;&'%;2;!'514 =í7 1 4645õ„Œ¶¥´´´·¸¦°½°ž˜„혴±°Ž¶ãˆé‘è“€—œ_ 0$9:$7 nbP넽¿¤¾¾¸µ‹áigäõ—x’€çœŽ˜ 1bÚ4%'!'$' 01><>:7e„ƒ”ÛЊ¼¶°¤¼¶¤¼¥¤¤¦§£¥ƒœ˜0„µž€•Êâ”·´ì 0%<%3È‘òççBÂæã‡±´ƒ€oÓ =62|‚³šô†ë“„†‹€ˆŸ9%&--"-#'$? –ïreÖ†²¹¡»½°™˜dž—µ´³»ˆ¶±æ‘е¶²¥¥Šµ„6 k°±¸½¿ênào>$"&,,&&&:2óuï´Ž™š‹»¾¾§°¹ŒÖëoý}77 361;6 7h71<< nI¼¿¥¾¸¼½±·º¥¥¾²¶ý1=4 †³·¾¼¸ˆ“´ƒ¾¥½¦³¿á 04øÊ5l 4172166=?%$%11ÎæµŽ¶·±‹¾½½Ž›íW10?0>$1uôŸh„æ´¶Š‹e n€Ž¹¼²°°¶‹†¼‹°±¶·„‚0<뜂ˆ‡øš—ã´µ»Ž‹á0< 12?7hŸÓÏ06h 4 8$>:24ÉžŒˆƒ±†ãˆµ…¶„‡‘700<=9 ‚ß–lú}жº±°°˜äƒ˜‚µ¼¹¸¦§ ¡º¼½Š‹Ž´Î0= &! 8;>2dgë—•…€´ƒœ 4 a›4>7tÒ 3?9<1=6™…´½»¿·¿²²¾¾¼¶€4 Ýãë[o‡”õ™üŒŒ‹ƒ„†€Ù÷•qá„€´¿·ˆŒ°€Ž‘éa5$3: $:;6…•â释âµi $4=7 oçó’^ñ\„œæÂkh45354Öƒ…‡‹ƒ¿±º±€í…ØP–ã€Ë·²¦¿·½‹‹‹²œëî?036 759u”Ãè‹…Œujrhb“…„‚ŒùsÜá“ <723%9?2“‚–·‹„‹µŒƒŠ‡–à‘†sð~—àmŒ‰³µšÖoq3;9$>:$: 9 ?ééµ’¼¤º¢¡¹¾Š²ñ_eµ³‹°Š¶„n60550219827??'685íÄŒ´ˆ€‚†°°³¾Œˆˆï€b6–ax³¸¹¶¤²‡·” 4=&2:4FÖó™͆”öÊ~i5~ï´”„`›³·´¾Ž‰´‚°²†—“m >?0'6“øe޵¶´y1112 Š´¹³¾†™´¶·ƒ™îç„•„´•Á˜jM€ˆë—–ûg1<%88$%2>6Åé•‚ˆ±±Š±½·å„†–‘óñýëæè¿º¶±½¿Œåbàcm43;13:&;37Öðž‚îœüx‘’Ô‡€ÿJÏלʄ‰»½¾¸¡¦—·€ 363 [<8:1ò Uòh‡gíhwi”뜂±±·³¸º½µ¿‹Š²Œéú7=1>?53™bì·Æ4  5 04 5ž‹²¹¥ ¥°¹±´”Àþ‡„™}â·ˆãÒ 4;%39= 56jœ–†œ°¸°‰¾¿‹‘—–†AcpééQ‚´°„Š´€Ï 7162:0>:626Sœ”œ±¼ìhƒœZⳚ€„Ⴧ“”±»¿±¾¡ŠãípÀ 44>6 600307oæb……ÿ`t ã~`㈵ž¶³³º¶½¤´˜‰ƒš“k  6”‚Ki‘ô 6 754=10jF¦§¤§‰‚˜†ÏñmdNm IC‰˜“ï´5 7<%3=<35öŸŽž†‹·»°ˆ±³´œ†ùñeÞ`Ï–Wš‡Ÿ™††µd 50<==<5E¶‚‚Ž˜™GÊÝ„›µ±Õm`•‘‹·³¾°¼´€À` Ôû561940nY™‰øñæDÁX û‹µ·¶½¥¥¿²¶´Œøîk” 4>=4j‘†Œ‡µ€É3;85Ën 6<365ÿµµ²£­§¾³±´€a™œðâ‡4 5Üd’¶°µ‡ž› 3$>3606244 jêe‡½¤¹µ±±·‡cü„€€‚”í sš€µ³º²êž 67 56>?:%4 5û³²Š‚’—} ðŸÜ×Xõ—·½€²¤¸½´„€d47 6 1413 É–··m‘…b51731øgÁ‰€±¿¥¤¡§±°‡ûhi77 3–†™„··án”9&#=Oµ ù 0˜Ž³딤³¡‡6g6$8•e‚•·”аº¼¶µì”^14hž7h35SuyŽŠçkl 6136„„€ä‰¼§¦¡¡££¦¦¤¦¿¶€‘ =<%;>=i™†µ– 1$$" 9–ø™Š´ƒ“´¹¥¿´¿†g5t^–Î 6w[ƒùõ‹€bz5';:?;=9 CIrhd›{  766óiøÑÐRôœ€‰œï˜™ÞC`±µ°¶¥¦¦¸»¤¹±´‘fþâµ½¶±€‡ŽŽµ°·²¾¸°Šˆ“4<$$<›øb앆’i 8$'$7644ðꘀµ¶°·Œ4%!'; 43 ↔ 2:&; Þ`T™œžŒŠ¿»¾¾‹‚‚‡h551€†ø‡‹ˆ½¼·³Š¶¿¹¸¼±²¾½‡â툳²·Š·±¼¸³¥°»¤¤¹°µµ¶ƒ~™…‡€ù‘Ò`aï„wf75& #"%<%$9%;720246<72$$!'>=73157 76 s—þsAâà088=1vQƒ´µ°‰²¥¦¼»¿²»µ“åò…Š´·¼¸¥¥¤¡§ ¢¢ ¡¤¶³‹êó؃’ê•„•þ꜔‰´Ûm=<;23   —œøžîi2%; &921 ‘•ùDßc mÊ11åă±ƒˆµ²¿´°±‹²´ƒœÀ“˜†µ´‚†€´ƒŠƒ°²±¾‹žð 5845 6pgùuöI 4=69%760 55f460:$9>72 ëdié…’Œ²‰C‘—}s‰·°¸²¼¥¾¸£ ¤ £¡º³µ·´Œ‡†³°¶»²¶¶‹³°‹³Š€‚•ÚÒI]zX”R€„•ä‡üùŒl49%36 4664<>>;$#%%%5žˆŽƒ›‘pþ€ïן•òMB’š€‰‹°°´²°€Œ”çy~ –`‰„µ…š‡…fña‚¼µƒ„†ƒ…„Œ·‹€žý 6557Ë3 04  :';= Ì€´âƒ±¶¥°šmކÄ cœÆ…†¸»½ê·´³‹„äš57Ûô4c´™™´¶Šû=6 ”àïpTe‘µ½‰‡ã”ö0%;3400ÝŽæ74 펵µˆ·‡NqDüêïm´€ñÎýˆ¶°¶ú—±Œ   õÈ[ mžµ€•4=27jcá“m¹¶ˆîû±¸²±7½>5$ú½<䃂²7”=‰³’³‚œµŒ6?  fÁí€2àÃq QP 4k‡–³¾°¤­­¦¦¼¦¡¼ºµ…Ÿˆ001< 2†N3704?:?$'''%$!;;=100’K= 7 Ù‘…— 㵈³±»¤¦ ¡ ¡§ £¬­¦¹¾³†ˆ×êØŸ”‘Œ¶¶y”†—š— 6%%&'$'' "!$::%> bdðî‡n<53=4 S˜Š¼Œ¼¤¤¤¼°¶³µ‰‰˜óáö_ä@𕎇†˜±º¥¥»¾½º¥¹¤¹¸¼‹œ“é…Ÿvš¶·µ³µ°³…ƒ–…›ij46 t=65<'$;;98824úî32=20<2= 38%> `œ³»¾°°±‡fNe›íኴ‹Ž›€œà‚㤧¤¦º¶‰ø^Rš€ƒêe515ý°¼±±™wÝl•~ 5=827Ð 1;>01=652?9899%91 jŸŒžÏÆ…¿§¤¼»¶‡Ž€¶±½»¥¥³†LÞÞí±¾¦¡¤»²˜p™á”´±¾±‰†sžáN„¶±¼²°±’ÚR @ 3>?25wŸ  306>  35ç½µ›‹ö54pƒ€èoø‡Œ¸¾±¾[àÎv70?0¶³°±€çáh`xT ô˜Œ†í™52 ó›p C‘µµ€‰ƒn÷åH—˜µŒ‡å1™¶¿º¶·±ššæŸ“Œž“5÷\Ÿ‚ƒþ 7gâ—RD nñŽƒ‹‘‡o5õn™o >?;1—Ž›“™À êwoX o“б²°µœúñ†ˆ´‰±‡·¶°¾¹¶º³€øiçàà›Z’ û‰µ‰‹†Ÿžk 4 1< uœ‡àu03=? 64c=36 ³±¶|µž†•ûRhÏá’`75 Gí‹·³ƒ…°•‘jçØâMägk†’„‹´³·¹‚èg™›‚Ÿá31 ˜‡q™é凓±²€½ºº¾³µõ–„³´‹±€ŽÄìï6j7;$'&&:> êe5?=5Ÿ†ê±¶¿µˆ¼¾¾³¦¼µ…’˜jä\È 6<5iì˜fge1?066\tîÁ…²°¼¦£§¥½ŒLhøÝ釓Ô÷5=z™ž’Žƒ5;976fG  9=b…‹†²¼¶³ŒÕkš‚…‚NÉÔb6…™Ÿ‚Ž—„…å018=74gbàl 43zx€‹„€ŒhA]t”ƒ´¼½¾´—ïꚆ¶²Á7<5Ôê‚– 413âd‹›ú 0'83 d”°°³‡píf‡¾³¶¿³‹’á‘5< 윑„ëÜ”ÑêØe膎™š71%44;2 ݚ茂—·´Ž±¼¼º´Ÿ<16â“ù„ ”ù싲Œ• >:3>?1ÔŸ751e³º½¾³šá6çûùƒ÷îÏøÑi䉌·°òo5  ‰è74b “…Ÿù|—˜·°Š¶´‰yð†±Ž†|N 7= ÏœµŽ›†Ÿ›këgjÀ08:%82 „޲»´Œˆ[Ÿ†¶°¶Ž‹¶€7637 5쎷Ÿ†´ŠˆŽƒ‹¶Ž_1%'';&!$7P…е‰’Œ‚еš‚öÆ<93ÇÑŽ„N`•\”ž±‰´Žü0;;;>`4l늷¶¶¹¶Ÿ| 27ƒµ¾¹¿Ž„ïñ€ß…µƒÁš[ ú„°³½‚ 614 🕑̘‹š–ž‚‡¶p =3 ˜µ¼²±µ’`7?>'&&3 ›Š²Ž‚šéÞÕ’…T‹–›t 6?5户´³€Ž„´½²¿¾€b9$ # 8< ýš¶µ…€·‹„ˆë‘Ž„À19%%4BŒ¾¿µ¶Œž´‘‚‡¸¶µ‰ù <7 úÙ…ÿ 4É_d‹¶žy9??0 蘆³Œå´‘–†Ä€µ‡›| 7 X„Š¥¼‹†4 DNû40<3 Lˆ´‹g唚·°œ€ò03•–³¥¹¤½‰´²DE1'&$$ ³¶ƒá…›f‘–WFP71=< ÿ¶²¹¤²½·±°¶Œ€¶‰ 19! :00Ž´¶ƒî†ƒÂBdu ? š±¥¾²³³¶€´²µ´°Šµ}d076舓™˜œjd´é ; ±¶‡3>%<5d´Ç…£=âo…4”9€nðÖ$…ã´¾‡fíòæËìb“h511™†±¶€Ñv4†dFAm—; yS´½µ±±É4ïJ‡ƒ¿´’¶î ^fìõÙ :; !6ï•¶·µ½„o %0è³°§ ¡¡¹¹´§¸·²º¿°î ùøŽ½¸¤§»²±¶‹¶•73<%%#&!,,$=15 741$&$=7$! & '& #8‹²¿µ‹†ï’³¹†††–h 7À·¥§¤¢ ¥¥°´³§¥°½²¹¹¹¼‹ôö„‚°¼¾º¸¼²‰´´¼½œŸƒƒ…žèO17r 4Ûø 32?9>'&#!;<093351ödFÞó`l9< eo ÿvDzn =2~„Œ±²¼·€ž²·‹¶ŒŽ™‚†D‡´³¥¥¦¢£¬ ¡¸¤¤±‹‚µŠ•õ‚¶·±Š‰°ŠŠë@šµ›757 6=<3gú–€‚ˆ‰€ès’q 73::!&#,#21245 66 116<379=% '>1nôÎÕ–ðבžêP•‘“gÉB“‚·ºº¹¹¹¥¥ºŠ‚€ƒã4|šå´¶½¾²²»³¼º¼¿°³³¶´†àzB…„ˆ€‚…ÎÌ\Œ„] 4<=>9667v˜ë“d`vTœ×b7==2>0 Áz”‚‡´±Ÿ›ú ”Iof|V懜‹…ld͇•ãø…ibbã‚´¼±¾¹¿¶´½³¶¶†äè<>9%9 nêf44 7 3?<>=15v_wœÅH7 5777= 5aƒ¶ŠŠ…´³†˜žŸ†„606 t…‚‚³¸¹¾¼»¡¢§¸¤¥¥¸·‹Šžáµ±¼¸³¿¸¿±—苼·ïò—Œ12<0 `ǵ†…†ˆ±…釃U 70<<>9711 E”665  099;602 r}hI57 R•í´‰šŒ±¤°ˆŒ¾¤¿Ž…ƒŽ‡`00>mšé˜…é‚㔇±çlã•@‘‡¹¤¾°¿±´†´•5m<>%< yféœðIµŸ151%9%8'$7ï“hïdç’¶½¹±„Ÿ—”“…±¹·Š³±…燶Œhê‡÷?4?22Õæîí›·Œ–]–±½·µ‹´…‚ìu ?6“„ä…èbû€÷ý6?31 —Ÿ‡´´—Tkü‚gf4 0…¿µ·¤§¼’‚·Œ”vj 34:%;7G󟛊ë“Ô—m7 4? 7Û¸½µ¾²§‰‹`¸•²Ÿ9¥<Ï<“5%1†ó‹tƒ¸Š±fˆ™±žý‚ åm>38>Î0 KórlÔ뇒æçršŒ’q‰»ºº¼»¤¾±½»¼ˆôh &8$ "-8? j𱽏•6423$:$ '!# #&>2·¼¿¼¾¿º¸¼´±»›õ7 ·¼¸¤¤¦¦¦¢¡¤¸³±¶ƒ‘úžä jۆ㌄î 341=1>:"-! !- $'$'%<9= ꀛ‡Šœuœý 7n˜Š½µ‰‚°´‚¶‚ž±´±µ–Ÿà°Š†Ó‹·¿§¥º»¼€ˆ´‹‹Ž´³½¶´³‘øaú“ˆƒŽŠŠ±¼³Šµ†›„46<$$%&?7 4 5 23%""!!$;;>1”˜…„‡jÖ5=3>&' '>4^`Œ€µ²´‚üÀ’’ãÙj XɃ¤¦§­¯¡£ ¦¢¦§»¶±±»²¥¦¾¥¥¦¬£¦§¥º³³·ŽA†…e 6 h 4 `uL70=8&!$'3 3=0?29%%9<>!!'8;?8 '82   5 [åeZäO~|Q†Œ‰´‰³¹¤££ ¤»¥§»Š›˜´µœgèý“²¹»¿³¾³¹»°´Š…~~hBàhid“‚·»¾¸¿º¸ˆ‹áhc6?662<%>6d–â~00739:0298;3ËšƒŽ˜‚·´‚×ÊTqÓì·´˜’‡³¾¼°’œ²¼½‘Íšg ûväVü‡ng€‹šêÇžˆ†ƒøÒꀎ]63|x56÷Ÿ62 %'59$:=117 7aä = 1`6Ôœ†ÿµ¾¥»¶´²¥¼±†ÿ“ƒt6†·¶·‡µ¤§¤°¶·¼Œ’Žˆï{‚³½²²¿¥¡¢¦¼†™±¶‡?5ãr 0Ò”ŸpÏŠ´ï3?<4 5?;84x D€š 3 mÄ4IFÄ—€—–’ê 7ö5? ? Udoî·Š—ç’¶”gž†µ²Žb{Ÿ·„™q‹³½‡åœ…•v5m”1jTb‰·…uè–·æ 0pv ?7o÷™^η¸²‰úõƒ„ñm 0$9<x5{Œƒ’lfTM1> Ñì1 ˆŒ·‰°§¤¤²ŒŠ‹Š” EŸ„ e“•å‡bƒ±µNío 1là‚@σ‹áÿË™”7˜†Žñ„´·‹·‹ŽƒWçÁõbc“á < u——˜°²€â‚”Um‡PÖè€i´´–jЇä00  <6ú„vnŠ™·´Œ¶š †ó >$8zÚ‹íЃ¶±¶ebZ[[—6<0 ™“39§¦¹63‡§º:$⟇Z0ƒ¹§Š@Ч ¶¶€_h75a¶µŒ 4A³µ<6r :%57 f×Òðw7:90>7 Œº¶š˜‹²´7:±²>4ቺŒ˜ðke4o^œï$>™›Ž‰“—·¦ ¦º·‚±·Ÿ6>=Ýû 6`·´œ\±ŠŒ¥tOk?"=Äg 4•¦¸k>=Œ§‚53=-!  < €¸¸´ˆ±²¿€’év2<q7gƒ·”†¾e쀈ü Bb¥¤·³„±å j³»“61ú±8974@°½´ì³²é7mdˆ57 6'7˜Ÿd {´Œ44Ç…“9„·“<6‹¥¹æŸŠ¼´‡ù—Æe4H0„‡·¥¡³°¥£­³áù›l2:= 4Ëþ^‚µá4ý¾·ú“÷z•M<&: 1%%˜±ƒlígÛcïœ<Ÿj4%8$ =ÓSê°ƒuŸ‚ƒ„±¾‚´³ˆw0Û‡ƒýì|›¶´¤…47—±7 °±Œ„—¶šƒ¸Ž ›˜‹¹³n? 056 ‚½V}èÀ–~Š‹÷œ@Í5$9?;8>€†ÿJlh™î„ñåex34 6аޱ¹ŠœŽ†™ƒœÖ61”4n‡¼¾Š†·¼ £²…—“o0;94ÍŒš–ó’´èòÕL›¶43 38;252ï‹æ„éy 6Däg 7 7:944茷ŒŠr‡´¶±‚µç“è 4iæÍÕ…··ƒŒá‰µ„µ‡âìeù”‹°‚±¼¶¶àž¶½´ë›YÁ77 g•‡ d”dbf}á郄0;2%$&%5xl’òcz‡Žu=1 5sã²°‹‚–™œ…’ˆâ— 424 ”޶…†‰·ˆˆ³½·ƒ 525q˜±µ€´·†…ê±°Ÿ5<4?<41LĈ´êäàõ5d›õi10>'2ùî‚䂃‡•ë…YûŽŠ°Ž™641è‡†Š„åòg‚ï±³Öokj4{ˆƒ±´Œå冨øš‡·ˆˆ‡ç yåµÅ`—ëhl‰žš‡m 29 µ·âž€ŽšŒá÷¶‰G71?“ƒœ™¶´ˆ…Ÿ²‚•é·±â|5 7=?5˜žö‘|Ç’—‚Çù58>:443rôšŒäŠ›£±Œ‰ >±>$¯è%=5¶53Ÿ¤¯¹žx½‹6-‹Ö!>!5j´ðŸ½¦¡°‰´§£±ž€b71;6äü  %2Ô‘d66€½‡u]‰¹¥¶ ¥˜¾¤¾d ÅB<%!$74 gÌ898?Y·»¶†À 27ç›k ÕâbÔ±¸µ‡º¦°´¶±¤§ƒw–›˜cponØê 9149580 0140õ²±±¿¾¸½³» ­¦½³°µˆˆ…±Å99?:>0]äb NiÍa=>8''>@í†Bš¼·¶»¿·¾ƒ´‚´¹°ƒ³±ž·†Ž…Ø18>%"&83 44 ҕ哇÷ Òµœ€±ž€†f›¸½§½°¼šwjtk炵¶ƒµ‹må“„Sé}i6%&"#'>'2541&&;%“ï°½§¹¾¾‚¾³‰¿°¥½€î‡ŒŠ´µƒ… ƒµ¶sjÂGujÐM=$?$%=5ç 5 µµ°†áߕ޴¼¹»¥¾¤»Ž€–“~4'' !"-&13>$34éà‘†±±˜‘ç›†Ž¹§³³Š„ün…ŸŽ€’††=&$ ïˆ±èƒ˜ï·ˆŽŠ´³¼™5m :46ù 7rJ|ö7446¾½±º¼¶ŽŠ¹°¿±¸s ;8=Àh5&'&%> 6Q˜v‡“žâ„¸¥§ »±„ˆûMš´€–„ãh0&% φ‡pµ´Žè´˜–îž··‰½Ša‡’„50>;1%$: K‡Šýûеƒ´iàd4펤°ž 0 480321223|ˆ¾¼ˆ¼¥¶¶¾§¢§°¾»»œ77ÛŽ†g24h 4:$=™zîôŠŽµ‹´¼·›ï‚kùE3=6jƒm 6|[ 5k°¥³ê˜Àíp±´jìàf†6m‹¼‡‡ ò66Ñð៌62<ï³¶´ŸŸ›’o]L…Œ…‰µ‚‹Z·°fÍ n40;?;5;4ჿ€±™š¼€Ù›æ02 ²»¿¶Ý€†J1343101 ´°³±›·¶°€W·²³¶…‚ï10Š”ç’·±Ø⃀jû703à5Ѱ‚‰È‚“œüqõ±¤¼›™Õ?70<3 4„‡eg”µê326ö2 ñú™º§¶í忤‹Ÿï 24ø â‹¶…†°‚02’NOj ÷±¼— N½´‰‚¿¹‘Œ´ì5\<;;'%??% %=6…¿¼“p„™1603ÆäðM³¥¶Š±¦½bb²µä†g›´µ´ „Šm36 ·½µ¶¹¦¼ïï²· RF²¾†q‡¥ ¤°ïš¶4132‘Pìãýµ½v ˜M07Ûÿ77ƒ„’ˆº±ì„»¼å@…±µ77l…™æ¶…àŠ²˜ká‹m}öíšê …ši¶¶žyß–œ“71é5$5›:3 ò”“µ¹µk7=™V49Ô€÷³š4g„‡ ãž þ™•µˆ–‡‰ƒ†°²ž á¶µ‹½ˆQƒ¼3 †2= áWû·±Û±¶ÄT½¿04ãm 2þ?5‚€m 4 ØðèšÖqL™:1XŸHÔå„‚³¼êN‘†6 „?3 c숲“µ–ǵ¹¿1E€‚Ÿ¼±ÿ‚·¶Ô J´·y214Ç“†–q“…dmö²¾ù èïl_52 $$:ïŽk7:6ꎵ±ƒ‘š–k 6æ·™ <勌‘烕 5‚³æ <ç“õ“– 4²²–¥¾³º¶°°™]7‹Ž>8% –ˆ‹Œ°³µ‘`륦Ö06u4 8 =?2‚±Ÿ1 “˜˜ä>9µ™ ^´±´€¶„„F2<㳆6=<7††´”à˜x ¸´nƒ‹¾±†Š°·ý€°±<81aÁü„á”äAo¥¦´F4š¶t}æ153%;¶ç7<%žã‡…Šèjñ0 µŽ?34›€Ÿ‚‡÷ã™w…º¿ü 4•‰•× ?9>°½–i¿¿·¥§¥²Š†ä ޳{6'!‡Š°ˆ–‚Ž_³¦¿1;Ûc34<%0뼆ß6>ï„kÍ R 5ℎ8ÿŠ †©’9¦;7Ó½ò1?2œ»´Š§¿š·Œ1 †1:=73$´˜· ¦¡¡„’‰²¤¤“<:$384ú 4 1µ¥¿…4?ˆˆ¶±¼µ|‡<›·‚´=0÷†ÙåÓ:;;<7'&86 î‚SQ±²¶ƒ‹°¸¥¤»º§º±†ïnž¶¸°ÝÐu’µŽ·±„œi4%#"$9'&9> ˆŒ‚‡¼¥¾ƒ’†‡Ç†Yë°Ž{452:;d‰ýþœaî9?k?#=83 µ°‰áš´‰…¸¦§º¿¤§º²³³½¼†ÝèNk‹·À7<=:=9%06è“ =5ë¿Òµ¶o†¹¾Ë…µk>'¶…ï±°”´·|7 i>:3=>'&%%==?ñƒj ¼º³‡LŠ ¡¼³µ¤§»½±¥º„‡ˆ´‚‘²¾¶†f461; ;:!1{Z431‚× ‰œ6„…tთ±š™’‹‚±µ™îou523A 39Áêç¶0fÖ ²¶ž}í·‹½¥€Ž°°nጿˆ·²¿¡ ¤¾±¹³·àkŠî 204'$;252:%2 o 27t4 à“k‘øšzàˆº´Üç“åðä•iiåãSõÒšŠ…‹µ†›÷ÁâŽ|e 8$ 5<=5 €“¶º»§º­®¡¦¥§¡»¶‚å””anÌ73=:53;5<<$977hŸÏ7 ဌ²°†ln7jPni61ôØGa‹º°µœœ²±Ž{š´ïdៈƒ ˜þw5 6 l„‡i°³¾»»º¼²†ŽŠ°’–lï9]Ñþ… "> $=6%!%q½¶¶‘kŒ´‚`oﶈ>3  v…z‡ˆ…êa’µ‚±æ•²ŒàŸ·ìl·±±c²€µCµ³…‡ãkS5:2™~ láb€iwŽŒ²µ‚„ì261?67 ?!$$9?jmÁg 6…éÚ˜Ÿ½º´Û˜±³·‰²¿²´ìf‚„ 281 5321 D•cU‘~²¾¶†µº¼·´Š´¥§§º‰´… j496 0?9&3äႆê€jʆµ¶ï‰æä1>=m}nž 4> 6 1b;3hâd†š„”½²Œ‚±†¶°‚€€‡Š·Ž‘a1ä‘íú‘Xë†æ÷s‚¤¥µ¼ˆœî›ÊkáêK€ íµ†‰ûjñ 50 =7 <%> fóG 64n€ƒŸ š¶³²¶…µ‹…à–”sfe _òžŽä˜1b‰Ðë˜2·°µ§7¤»ƒ†²¾¾¿‹”‚"<ž%&92nbçRŒ¾°°¥²°¾äæ54ö 573%$><=0 >?aë°»º§¢¤¢­¥¹¿¾°Žù0 =9Âä€r ìp `IHà–´·…†±°¶·‹¶»§½Œ´²µ‡†å‡e™ú’vz62;?;:%%$!-/"-#':=5 mlÝ™™1mÛ`üù´º¹¾³Š¼º¤§³³º²½Œíõ…zÏ……·½²„ïk =024 ÖW̆¶Š‰½¸¹§²€ˆ¾¶Š‰…‘ƒ‹‡nï23%'$!#"/&&#$;> k’ƒî75•wh鉲°°ƒ´º¤º¥¼³¸§¶]fœ¶øöд¶’„ŠŽàZ501'% 7>4 už‰ŽŠ¼¾¿³Š€½ º°·µ‚ˆ„Ï„îƒé4472>3 08=68:5?8 4>!';=4T–›Œ¼¾±º¡¤¼°½½‹†n…¶Œ±·ÿš·±³¿³·›™òkf0'25 —[ 蘜]ÉìÇ0䆋lx–žŸl–€ˆ²†šúÚúl’€Œng œ]56$#/-#'64 zM☤¸´¿³µ†•…é”·±¶†‡‚²±è¶·¹½†à`˜´‰‹¾‹µŒƒð†žtšìf5?'>?> 3960373 ñ›µ÷lŠ‡à½°¾¦³½³„ˆùäÚlžj8!##/-'%  ìçƒéê³¹¶¿€ƒ›bntꃷ¼€–Œ¸³‡Š€±‡Ù57 Rʃ½‰Ž€Ž€š²µ³±›™ãjC708 60=16ã´œ‘[”‹í”´´´±ðû?32=6i { ÿ޵´Gùkê~žË…¿³€·½³¼Œ†‰µ±±éwmCŒXrbÅ•ÓÜæ]þr´›š¿·½¶‹DƒŠ˜æqê1>%='<1?1  Yü71<‹µ³µ–†‰†d0>76…S‰Š·º²‰¾º»¥°´ƒˆ¶¶¾·‹±´·…”Zh  <3>9>4 odqb‹‡‘—ø†Îæ›64 9310>3$'< tÓƒŸ™›²¤½†§¢¥·—jÿ‡ˆ±áihè…„ƒ Òij6”Ü=ý·°‚󊶌ãÖ—ä…Š™{Bô°²„™“¼²Œ51•hú1401<205cm 3vf‚ì„ XZ‚16< 01 7uµµˆ„—Ü|‹˜ƒh%;4µ°Ê13jµ¶Ž¶‹´µ†…‚··…mœ½¼˜î—¹°ÓŒá64|”D 4ηâYþ¶‡±ëµæ†&Š1½…š6³‡¶0 44‰4 9gac€“O 90•á '4‡R ni挊¥¿¶¦ºº¥³·€‡½¸ƒ7 ж…‡³Ž1×™\3='%35?!% 770k5ù‚²ˆˆ²¸¡»½´‰¹¿¸¥¼µ„±§¥¹½º¡¦º¼½¥ ¿™x–žµí13Ó7 8' -"!&$!%1>$ #! %$&! #&3;91 ?=3<=<=%%15 ;2Q‘”4z„ƒ{dïq胼»º³¾§¼¾·±§»¥»³€_ˆ¹»°€¸§¸±ž¥¥„ˆµˆ°´”‚¿¼³ÏLj´·›i ”•·™4F1 3?8=36`u58=6 376 5‰‡ M’ÔïÓ›´¶ö‰²ŽœF”ˆ¶´ŠŒ–ì’‰³¿¾§ ¡¦¸¹¥§¤¥»½µ²¥¹ƒŸ¹  ¾€ˆ»¡»ˆ‰·´°¹»¸¼‰ù R6=375< 1&'<5:'$%%'&=;!%19! &?<:&!& !8% 819!!''88=7%!#= G™á c܇äâòÈÝ‰·º¾ƒï‡µ¶·¶³ƒ²»¦¤¶¾  ¾‚´°³²·½½±Š¶¥¤º½¤§°‚›€´±±°çá—Œµ†´µç4 ka›F6l76 a–°…uãåšðâïËq—Œ”•½¶ÿ‘‰†ƒ€œˆ³´ˆ‰½²1hÚÌaî…‚Œ°œ P™k}à` 5 ûah@16025 4>:=3464;%?2>?3>%$96dž[7?44 = c—é3‰i5ðiyüîd€†›±·á7 hèÒd´Š‡´½‹ãç“á5oiÃ…ƒuB‚† m g ’›´ˆ†³µ n  ÁŒ”Œ°›d^1;716æo5 hŒ 9  25~ ==60;&%  g艱”g0=7וᙛ²¼˜ ô€ j”qÜ팷‰±¼´Åì–èíVa„‚ж¶¸¥¹¶´´åñš€Ž‡‹¶›ëƒŠ¿¼„š‹Ÿ“„†‹½€š¶µn”45|pœ‡‘‚¼§¡‰i[Â=4mîáV}〟’amZt 77mꂊ„Mê…‚é6>=ë” î½¥½{ y7$; –ä <åâqÜð}596Ó†Cx‚Ÿœ4?1Ù„èág±¾Ž&9òhlæf774;!>z}43´°šy„ŒQ 6Ÿ°±´œWƒ¼¿¾°´¶Ž·…J芹¥§³Š¿¸¤¤§¿TcÓ÷6艕¸¦§´öò„Þ ¤¹€b²¿¼ˆ‚ò᜜ñ€µ½µ›–±¾¾¾Œ3950>·€⹦§³Ù e&"$1ã9$2~Qn3>7 41êîù:'29'9dp1'4މ˜ %>´¿c1ư‰MÒ 62>0ný`3 Ë’í‘?9;4 ?$<´y‹¦ºŸÅc28= ›µ2 ›§»ŒŽš˜–˜š³ƒö°¾±¶€ží´‡Çù¶¦¿”W…¤¦ºº°‰µˆ…îfФŠ‹§¸ikpw‘b”‹·Í ƒ‹äÃmcj ²½†Ÿ´¡¦¤ŠÖâs51„°™ …¾¿Ÿ’ëšzàf7†Ê5bއ[g_ d< yt %…€™md;6èc33™‘ 3 0 5f¶3ˆc Ù116@‡–j™½¾Šè 89=72;g>?ⵉk–G é6t„x ™´†Bæ ïh纼¶±·†w´d ‚½ïu²§¹˜öKdSƒŒ‹·°²—“²»ŒE—ƒkš}1‚¶’‹¥¸…Æ<z ’7“¤¤³ïŸ½ˆ›†µˆ„ꌈ\°¥»Œ™€µŽ„ýïN€±Š‡í˜…O34} =‡¾á196>0óøÅ0Ç=:5õ %=0433‚µ‘0<=$7=?3A3=ñ³º‚ ‡†óŽ‹vkhh 206êŒl AŸ…f 17…´§¼57‰‰iû‹¹¼¶ü”šüˆ²‚š³š4 섀͒½‹Œµ¦ ¼”ø”ü`ç\wb…’ˆ´ººµÔç°¾µnæ[lŸö³²‰›n1`}–ƒ€¾¾àq™¼·wÔihãPT„µ¸²Æ4’‹‚œ´½ŽóvXþ‡97Kæ6%$3Ĉ·ê =  9%>5lûdx‘…í 6pˆ›=!4”j:< 냱‰=0p3750 –eÓ±´„vu¾±†69=Æœ‹‹01‚÷ 肵 ’n6 Ùƒý6=Šø““´¶½¤´Ä Єö=$ ޲µ‰·µ‹±ˆ³·›Ž4eŠ‚d’‹±³·„ŒÄ9;ìŒkëQ´¥˜µ…ޱ2k—€ì‰·±™72›¸¦¾Ÿm—°‹•·µ¼†Ç y±j:7 d´e›‰•µ`1%87<%$$”†€°°Ÿƒ‹2&% 7;%&3ʆ47etƒD=Œ…7ù–è ô·³¸¡¥¹±±¦·ž4%6žæµ³±ƒƒ‡³³¼dîL°¤±¶¼´³»›Hiy3=;S÷˜µ°67 xï2&&7þhBôj1 ?Õ·”9%2uSmBŽÕ7b2;&$0 4‰±½Š´‰°¸´Ã5<6g‡²¶‚‚úÁ„¹·ƒ~õá…™‡±º´â߈¼Œ’é…°¥²°¹c @î—528 Q™åŠŽ‡à^ 7 n552'31㽿´€43n58$920´‰çàü@€Z6'#&:„”€°±‡œÖ{б¤¼‚ðt•ÿ’äOދކ`‰¶Œ”p·‹±ž‹¿µVe“´°Œïljh˜˜òƒµ†‡7=Âì2h“‡Ž¿½ž55 ?$:44éwŒ€„…’†ê6:89'%1m…„m4 ·‹éÜhl÷—ˆ¸°ˆi…´Œžë…툃µ´·“sëƒÉ“‡±·³¸¶´–t‡Ÿœô jž°µ¶¹Šõ4 47mfŸ±Ž‡ Â1=>'&6䆊†”cf‘„>;?=03 Bw—l{‘Møòš„‰Ž°³½ÎÈ牂™_â€t·¿·´–f|Ãr†‡…²¤§¦¶m5™°³³²žè‘•Ú{1$8?<7 lƒHcn 4=>ß^ 64 355”µ´Ú„ж‚…Òì—ѵ±¾°žÃᘂçyëgµ³¸¶éï݇œf’“†™€·²¥¶’þ“ÆCv5166 h´¸·€˜änR6:238= äÇb   11 NsdqÒ²½ä‡·˜P|‹±…󎲱¾»¿´“ž™–j5󓙀¹¦»¾‰Ö{ 5ኰ‹“‚ˆˆŸhô…4 浄dMRx?0654>61“aú 5;>1=4ã‚97fŒ“4œeY¥¶W怌ùšŒ’ŽŽ‚€ƒ¸¦º‚¿´ÍÖ}烸¹‡”·½¶Pée 愼°”†³î46i1ù‰ï ô›1 6?445 ™?50:1H  ‡²šjçQ 7æîkdžaŸ´·¿¸›Ù·¾³„ïW õ}·±°ï™¹³÷~ Iöˆ¤¤ži¶± 1ÁáÂ’m4о¤°âˆ½°Šïðib †¾¦e³¹—f54?0Yâ;=  '; 544 ? ›·Ï7S–$:`:$5295‹¶„5…š < xùŒº³ËŸ´¸±j yž…ÅÛ„ËI·¤¹Ñ…ŽƒCb“›xÏtû±¸£¥†d‡¹¾ŽÆž†]FN˗ܶ¤ ½ü…´º°ácp€ŠŒŽ—𲏴섵=õ™Z ༺µ5€³µå=0ysš±¾°6BÈ6 ‘ ù·¾¸í0†·u451ofmzFS¶æ dµ’ >?õÜ6=„´o•Ö?%; 3 ae‰˜2=÷ä>;  û´°† >€q985  1hU…·„y16òÝ8%0S05 €· cë093hŒ·›e€¹¡·fr‰¥³Ðæyh”н»·ÒÑ··´r5â‹ä˜±¾¤¹Ý‚°±éŒ´Šàƒ°¢¡±„ô´ƒ ‚°“bŠ»¤²”lÐüža €·»‚½Œf3?o}a’Š °Ÿh1iô ˆ²·hšƒê47×@aš´‚rð2%9 kú23k„½ 81ˆŒ <$' e  Ï‚†Š>3ø›l=8 Zš hg´AÀ9?1â6•ˆ½…4 •Ú3'01!3øµ·ïS‘÷Ÿ12ã÷Ž€±½»·WK²¼‹q1ƒ‹‚„‹±±³áG„· 7 •±èC‰±¸¤†h™²ÈP䌑—†œ·°±¹¾˜”µ¶°„ g›€‰Š°³Ž‡j°™z=7ï^ãþm‚°´ƒìµD=>ËŽXù‘…†– qÄ‘kì³¶ç5CŠû39ñ›·‚â0åHî>;=5pañ “Y2$81 ƀᖌ‡5a4:3Õ74䇞•ƒ²¾4!'$¦ku´í1U j?¢>š`’'%䋳¥†ž¢ˆ ‰±6!  &!~É?î숹§ ¥¿†´¦¼ 14  75 065 06‘𚺺¤¡§¡¦­¡¦¬º‡€‚¹¾‰€‰„›l56?? n6!&?j怄™‰µ€Š¾±‡œˆ±·‚°…‡‡ú‡•޵¼¿Ž ñ‘ 30 322438$&4 34hya´°æ€ìùá“kšJä07 ƒìaáF55>??&&$53$:;5>1biÖ—ñØŒŒ„°‰ƒwdŠ…ƒŠµ½ïµqmNj744<;2Å“—›²žñ…±´€îóq‹·Ž´¶¼»¼·¼§¥‚ƒ¾Œb¹¥º§¦¥º´Ÿ¶´æà=$? 10 tîJÀž•„³º½µ¥ §§¼¾¦¤¤¤±Œûв‚uz^ ìN1=5<%'451276736{‰‡„†Š¶†h³±¶‡’2킌±ŠƒuÞb3<=%%&%5 :$7 <0i 6;??<ê g`øþ˜Óš‡„à^‡‹„Š·´³‡‹ó‡…51 =2743>!!$%6î4dŠR‘ް»‰³‡x—b±²¿¸³¸¼Š€Š²³ç›`J{ƒ´ŽŠœ€‰€ž¼½°°‚ 锃54>=Ê2> œ·±¿€¶¸¥¦¦ ¢§¥¸±¿µ²£¤³í“\\ 3'#&3A52ãv’‡·œ€k7 Ö…´º°‰–µˆ‘ib 74rZ<4–Æp „š\<b´ƒ  y "#:?3 033˜™éЇ“~r‹½°·‡œµ˜ Ÿã;!06 ~7':>5=6á9>5—€¹¥ˆ½´¾¹Œ\‹òlK—? “†a‡— E’³°‹µô¿¹¼½Ž¶½°wáëÒ†ˆµš4”›ÿ φZ5 ‰¿¶´˜Œ¼¥¹ƒ¹·v¼°¿™™=šƒ1Ê?'1îüƒúÂt¾¼ƒ¥¥ˆƒ‹³°°²¤¼éh㱋`x='!&&840=0™ûƒÆ 0lÑžC’€Žƒmš< 6>07`J6>> 3—Ð23›µ‡‚ŒŽN|‰o‡±…: 5n€545 2MÖ6&27=1li n˜Ÿü‚c–‹‡‚†—Žˆµ–Zz†‚25úlôù“ëK µ” ‹ µ˜†³³°šš´µŽ’¾ƒ]ŽƒŸ–ƒ—Òµµçì—‡±¿–‚žƒŒë–·¸Š÷€¶ˆ¶µµ²ˆµ°Ž5“‰5;2 iìjxä@ì ž‰d5;›ïƒgBëRˆˆ·œ€¼°²=í\ï%#=|š?= nc{ûŒ޽·”5>‘±±Žå‡ 4 Ê9#"4n1$; œî 5ž” •ò‚擎rм½¾Ÿ{¾¦¥µ‘š±¿Œp—]ˆàOŒ‚Œ62€²±ˆôI—€‚–‚¸ §±L™‹°³d<'ø·…7ë—=2 Ââ==27€:9?Ü %!5:20ꉓ6U†¸•606ë´¼åh¶°L&7Î庾’¤§°„ ްQz…½¿·q{·¥¾µ÷Ó‡’〹µ0P»¼8:9M›·‡žx‡æ²62µ–  ?0w72872$'%3 dŽ ²±ék ii÷šŠ€Oʉ¾ebµ¹±46íƒo°³‹‰± ‡µ¶6 ëÇ€f´º¶ä润²Ohž·°²•Ç‹ò 0„63 ŸžŽ”—´Æ18Œè6!$904÷ —‘ <0‚021f [kIJ턲ºá<4 obëüïŠT5‡³󓈌·…Wÿš°æŸ²¸¶âe~f„޲¿‰Æ’·˜ Š»·†u}Ÿö þ15Iµ·76ëŽGfz†11vü6$=5{?Ké32T·™6837䶆Ññˆ„¼¿o ÑÇþ–o—ŒÝų¥¤µžˆ„…˜œˆ™Œf ·¥±„”žè˜‚‚ÝB“‚„‹°´Æ46 MŠú…µ“Œ¾€2Ø…h1472—2?''3r3š36D‰µ”bBˆ·@攜¾¼„`ð´üꚟch½»µ‘zoYŒ´¹’x‰ËUçÉ‹¥¿O5Œ°‚ƒž‡½á˜¶• ‚Ž•‡µ„a12=> zÎ cž7Ï÷01990‚5÷Ê า‹b–Šƒh–n}Š‹ÑÜn5Ä·¥±ƒû޵lî…¶¹³øwoC±°··‚Žù•Šgb‹·‡~š cˆ°´?44Ÿ°HOû÷”m–Ž 71680`0 5 3Œ½}7 2€€pDoí´„°ð1µˆðîÚ芴…nŒŠ¶êèŽb䟃¹µêøgtÝ곉`‡ŒSöq¿¼b4 ‰¼ïè™p錹½4 ‚ž‘kߘ³˜ <16>:525?90472ÿ‰Ÿw`Aç ‚¼¸˜GŒ¼‹á‘• ~µ¶Ÿ1dYœ‚‰„ˆŠùé´»¹Šê34„½¶·µ•‘b‹½ µšv6š1— ²“$´4¿w…hg%c4cµ6C‚V‚‡5膓ã91w62› 0 Ð2? ˆ77ì’×p¹¸²¥¿˜‰¥°…k‹¶ç„º´ƒü?'?>:!>8,' $6 ;" '6„€h‹¶²¥¦¥•C³¥¤³¿ º¼§¦­¯¢­¤¦¡  ½»»´µ¿¤¥½³Šå”¿»ŠÉrŽ06„c0%%>42&8 1??2> #2286 1'$?<;1 3{™Þo´¶‡_œžŒj†°Ⳋ‰µ¹½Ž€7™ü€´î7}¥¥½šÙ ùê7…‡€‚w?&%57$>58'>5d 937428022 4% ˆD3%358•š}13e‰h0616o™–lÙ’‘›Š¼šâµ¼€ˆ±Ž†¾º±¾¡¡¥´±¤¡»¼¥²¾¤¤¤¹¤¢­¢ £¦§¡¤´ˆº ¥½¹ ¦¶¼  º´žRðŒ†zö÷$5޵–=>2<8 ?;<n %!%=9:&:=&!<2>%?060><8;?;91 h| Š„<2Ì—51ú±Š“H‡·hãsé™îéffŒ±‡›¥¦±³¤²‡–ƒ„ùÿƒ¿€w…œÖ1ñf…„ÒèµÊ7? ãìò 1꽎<$?53 kŒ`4޼¶?%4øE 1ê·“kh°¹·µˆ¶Ž‘€Ž‰´Žšèó°½´†’³¾°Ž†¶´’Q„¶¾´nf苺¥µÂš¾½Ô„›Ÿáƒ·µƒ“3=5B 342ã‹ã8 9•š5;$3 —ž>=6 =4436–ìæX x°µ k`a†µ²·â…¹ ¦´Ù‘†„ᇉ½¸ƒ{ššëIA·¼´šŠ´’5< •Œ0…°ü7ò› =7j_à 1è†Kæ^ár 41àH61ï‚F =7 ?8kV·³·F=r“áH€ƒŠ¶²°°ƒŒéú0Œ½Œè±½°› ˜µýx“¼·Š‚ãµ³¼¶˜žíšˆ³±iÔ¼¹±’š·´—M ‘ƃ•r×f”±ƒ=336 ›¶Œ 582 f1<5`žät ³è47ôµ‹57ŽŽ[tq7nä1”ë :>b70=æc 7i´Š 087yçf15à…•ê»»Š17bµƒRí4~¶º±€–œ‚ 7o´‡=%夤Z? äˆ24ÕšÌ 4ï™cà°³€ãa´¹ˆšŠ†œš€Ž²· Œ§¿ ·Œ†žó²¤å;ƒ¤¾8‘ô¿“»½6ê³ n·’Þ½…ãÁ¥¿ž4:51Lô‘ œ³±î?ÿ¶¸‚Œ™‡îг ¯§¿‰‰ŠŽ¿·²± ´¥„8 72''>1%- :%,,-##- -"'!$& ã„‹`▖ꈜaÉû´ ­¤¾´¶¥¢ ¦£¢§·˜ù·¦º†7‡ˆ€˜…þ01†·1$$883054<;$?6>&"&::3=  6„¶‚5„€¶Œ†·†’šè° §»Š}ž¶³¾º¼´´€ˆ¹£¯¦³†´½¾¡¡­¬¤½´¿ ¬­¤¶´±±¼·‹±ŸÃ “²¥´_q„瑇50=0 k7%';6d2$&3 2& !>  2=;%%7ré :%%07<=<CF 9;;2꜆éȈ·êÛ••àï‡ê书¥±”v‰¾¸¼±Š±·Š³¤££¾‰€€±¾¤§¾µ€š‹±¸»¶‡zöY˜€æþ7?? Ó´´|600  0:4^ïü 6335 1<8 j‘š03 ÿ‘—ígSë„Q sð™šc ù‚†‘Ùi mdŸƒ•njqPjøœ“šêY•õÒ™ƒŸA fîh74‘è01zL6Rûâø92T jvø€ü ü‘ãïæÞè½²¼Š„ŸŒ…†²²´éÁ’±¦£¥‹ƒ‡´¹¤¤¸§½–‘·¸¥ ¦¼Š“¶¤¦¥ˆÍã’¾¿´˜õv€±²°0f”Œ…7ðè–p3>6bm5617  257 9&;7€œ1;6kâ  =34éCj4 ëœI 4476‚Ü ýjˆ¶i6<6 añ]`5rdÂÉÖ–‘5f‘í3›íŒ·ŠŒã’ñmaõ²½òù‚é›´±³ã¹µï“„•U›†Ž“hÉŽ±t7ÃjëÐ55v”†€êvZÿPg]Ž³â˜¶µêÓ—€ž–a—¶¤¾‰‚Œ´µŒµ´´ƒD 濾€µ™Ì„´ 1…‹šGhòÉš€µà5?0B”Lòiä‰ö4'mmâG`•ei ûŽŠ†i>‡— 0h’g24j‚45“µµs 4ù— >8 ýŽ€Œ98}Ÿ€þ Fî“„‹·ùçünj’…‹³·62†½„ 6 Õ싵¶`e€ƒ✵²´âïk€º»˜nm‡ƒ—¾£¥°ï¿§¤°€|Œ‰‚‡ÑaЗ~f 5e÷î?$<ˆ´w6=3‘ ='<n0>'':80 eä’ 5ù·¢ µ0眇Ś™à€€ƒ²³‚؃ž”¶¹¤¹¿³á‚°ˆ‚•Ë’²¸½´’šˆoÓ•›énpŸc03‹†n  {á°6 fo=<1˜æ234<27Jæ=šŠ·N0=61cµ¹²èli€³³š46“„…„‘†‹¿Žóræ…˜ží„Q`¶§¦‡œ†’“‚™]ck“ƒ‚´ŸkïÍê÷6213ƒ†‚é <€²·š 80g‰ 3=lÄ{6??$= þ–4?5í—lz4àUh œˆ±† 6 òp7†–…ƒïÑ—”‰jƶ½†ùÿådd…µ¶ˆê¼¥¸Ž‘†€lÏ·¼³™„´‚ž„‘‘eé…“â5 u„waéGtIœh56ïv529> 4ƒíšÐ  oXZCé•…pva5 =$nµŠæ„¶°ío™€…~i 4•‚Åê°µhæ–q„ˆŽš뺤Œ—í„›@ŸÉá´ŽÓ—°¼œ 5ý| 3†Œð4–àíî?$1õ” 1 —žœæBSfœü›XLÀ03u¶aµŠ…s 20fò{`gš½¿E•NmþÏü4x…Œ³¿µšànƒ›’Zh„§¤³ˆp˜„xøµ‰`14¿§³œ41a 11ˆ·„?' –à54=82 …´üÕ†´k …¾·î;>kΜ›í1%¾²K0;:˜²½’ ¿¤²04jü¼´ë`kº¤²Š|5fã’·µ±¶Lu´§£‡ †B’nzø}‰¸¶a?94Þ79::3ʘ¥‹<'6”• ²‡Š2#‚œ™‘8Œ==ñ‹ºj7ê舴óþ5<‘¡¶• 0 2™…5%?1   k20ƒ¿1n‡ýd”± º¶³…€ž‡¿¸½·€‘й½Ž 4457=%>%,'1>$ &99>%&:%&&68 !'$2 >:399š†y0 ã鉴ød…¿¿½±¿¤¿»¸¥º²º¦¤²‰P¶²¼¾º¿½¾§¡¤½€‰Ž±±‚´ƒ‰ˆø‡½»Žìz|Ij}Ö gHñ399<  52ü=? LÑ6  û”•Ù 5 4  5›åÞ ÒŽ…‡¶‰„‡··™‚ž…³°°‹¶¶Ž±¹§»²½ˆ†Š°µ¹¾¸°¿¦¤¼¼±ˆ”r€¿¹±µŽŠ³ž@〛$;5 657=:459'!&;%17 =14331$#:$'!&93;=461775?'>=44<9%1óÒ ñí2ƒ›…ëuÓžR‡Ž„ãhp€µµ¶µ´‰¿¥³æ€ºº¼º§¥¥»»½³µ½¸¶µ´°½¼¹¶†‹¸¼ú–i}Æšƒƒ´Ÿl`V = ÌšŽŽ†„e àb:' —˜š’æbk„ïßæÙ‚²‡Ž€‚Œ„žöƒþ㜰‡wèŸçüw…ƒ5e…“éžl6?7ŵ€žUcãïw4>?675?%8$;77238=?>7 :$;144 4=2 œž05710›·´µ‚k“‰‰Ùã ö¹¾½»³Š”…°¦¤½½øE°¿¹¤§º”½¼·Œ¶é†´¿¼¼¥½„µ¼³²·‰ƒŸ…±½½¿°‚”‹‰úé…ozÁy Ä 6?´›næ'% î„îûz14†cŒø7%$Ñ€}âhƒšõ‰¿?3€èä‡HOà“’à„” çe”05—‰rz00ápn = 郑…e57’¶” 64ö†jâ¼±2$2îÜ321 ‡·?3 aoh|77†ˆÐ9=òc•vÉó ý“k=6€Žµ‡R°±}ð±½é6˜²¿³çÖšµŸœ¿¥˜2<š°´´ÍMÃ醽ú13Ÿƒ€åÍ†Š¶‡a罺†éÍN‡„€Œž’€™·º 6챚dd ƒ¤±?0翊O—ãظ¤‘40a´Šƒ“—¾½·Ä1ø‡‚Ó 6ƒ¼Œ41ž—…Ã1<>ˆ· 94zðf1z³Ø1;¾ ޽ ô=á’¸â 7%aŸf똋ÐZ7°_> %é5ch7K ;4…‘5'8yaµî´ƒíþ_ž² ¸ã䊾¾¥¸¼‰j…ž§´>'î‘ó :$$$9:$!-" ;25508$= G¼» ¦¶¿¾º¤¤¦¡¥¿¼°¾¦¤¡§²º¥ ¬ ¡º·•½¹ƒ‚šƒ€å==2…“’=<<4 :&?4 ge08$&0 ï5=<1ü…œc= _Žti‚†‰µü 2þ³ƒÛψ°±·žñÅ⋾¾°†ó‡¿»¹¾´´…ye‰Š1bæ’‡t?&1ï‡o:!8207 %!-%Íã1%910 kq :6zà•17=<b08%ŽˆŽ><hSZè0u´¹»³‘òšš•펱–õW›½¹¼¿·³¿¹»¤¬¯¢»¿§¦ ­£¦ ¡¤º»¥£ ¥±°¿¤¤¥³‚Š´ŠŒŽ¶½ m‘ä0546Ÿžh<$32 4<98%: Ò<'$80=;%:8%%9lJ?%;%%>70>9>?<   QjÝ55 g‡s±´„¼¾´æ˜¸½¶ˆŸš†¶¾¾½´Œ‰•gˆ·Š°W{î´°¿±€6Ú‰Ÿ‡Œ‡†m57˜·ú <=…äkj165zv =4d”niƒˆ‚fjÿ€ƒ€œƒÂk¼¼‹äpœŽ€†‡ì›å†±Šº¥¼‰…¹¦¥¶–…‰´³¶ï–Ž´‡ ÷Š61z6<2o7%9f79<31} 07taZè34ï…âL 30‡‘”FÞ}“´Š› 󋵇„„€“™•Š›\’†Œ†å—¼³³·ãk섇´Ž„žqgüÂö´Œañ…˜w jbhOB57r™{2 cTŸö~ —æg557›c sœx0}cgmVø†ŠŽXôŠŠ—o•ü±±‰ãј‡ƒ‡‘gú€˜·¸¶y™´µ¶†´³ô|iš³´›H’eâË…€òQÐqcBë잟‡ ž—Ÿíg‡yÀ€I •ž51…ƒ zcér0'1 iÜu õ”nfa4únQY”Ó €ˆj 47ŸÏ`å–<·0a‚ by€œg `k‚ð7‚·‡aÄáîY•Ú†±²Ÿ‡°ŠÃ嵂âJ„“p¶½‡`ƒ¶R‰‚³x‚¶à±I ^½°Àyаɶ²Ï⃙ ‡‘±ì_Å•åžì–P< 䀅˜}ì qNâç 4jžé3ì¶Ckáf27›°¶þ’„àä’Ÿ€a–ŒŽ™è…ˆ‹‚—жµJ ã…Ÿ136 >$$ îQ5$'<6j44>&35 4þúæ 0e'$%86 m™Žë 峿²·‡·¼°µ€šŒ‰¶±½¥„æœò˜·¶lk‘´·¿µ„ƒ›³¾Œœ{CW‚¿¾½“™´µ’ce´¾±²´ãÉ銴„M’‚¶°ƒQ›â‰Šœ75Wñ™‰€Ø ú@o>=33w…˜³¶xv…á’ñšà04ÞŠ‡cŸŸ·³±±†èl4õŠÕ ‘•á„ç07Αä0>6rK…j3:;9”<&;< 0 02””?2 ‘Â0 ಒ;;ó K~15œ·‹r †´—•ít‡‚–˜°º¥„‰³·½µ„”ãö°»†4 “€Í‡Šëoˆ²† l‹½±ïœ“’`ï·ž 1˜‘œ‰ù|aê½¶qè´ƒílo±³”6: —‰°†œâÀ46ê€]6;7@Ïxâ|’‡•¶‰“Š¿µ“›’dÖ‹´‘ 2–Љ“€›~š´š[ƒ‹†ë 7 wµ7à‡v139?”‰0? jas 3>7 •é6> •šîïî3<2 é169çZƒ–607 ç‘à<ð‡´µŠP–àŒŒgéeš¶´²·“d¿±ž_…à”Ìi޼‰ýsˆã–‰µˆ†´‚—kw‡¶·…Zrúް·€oEß[ž¶‰d™›‚´œž “…šÿ Ê–€ös72=3 Ê|FÈ•œüX‚ìd÷f†ìšˆƒ·´‚ˆŠ— ËÆhRú˜€ƒ‘–d=7ï‰1†°Ž@q˜û6 †·‚ü{7;:4âR ?1 ÀÁc3:36}140=Fòën F 5`Ï‹±Yw€´ˆ˜„˜Z[½¦‰b˜±·†Š½·€ëW‚¹¿ƒ·žæ¶³…žI †¶Œæµ¼˜‡™ÌëLí´ueѱ²Š€•†3p— ‡ƒ‚“™ƒ 4 ûÀ6iöášË44=K‹™fs}4””Qg›³½´”°±ÝÔ°³„tä޹±…ŠèS¶…523aˆ³ŸÈüƒ567·µ˜Mðaæh49;ÇŽ‡áƒ63v”999%6åìa2=4 9"?d32X? ºa´2€£5©Ä57œ6‰µ½³á¿7¸¡Ùz¬2"!9޵Ec¼¤ £¥¦¢£¼±06 Áú9%3‡¿¹´ 9³¦¥¤¥¿¥¤³½§Š²³´¹Ž &!#9>%;!&%%%:? Zw µ±¾¼¼¾·¥¢£¡º¥¢£¢ ¸´‚»¹±µ—¹²‘g688;5{l0%:>=46$? 5 4e—ê·³¸ºŒæÕšŽ…f逴„59:$6U =?$25=>$$?9%2$&9:9!<5063D™·¾º¿Œƒ¼¦§¹µ²¹¹°ˆ½²¶´¸¥¾è 40:7 7l†‡´Ž´°¿‹Äš¶ƒ‡·ŠŠ„ƒ°ƒµ¿ˆ°¦¸Š˜`T扲‰”;:6d6<>:;' #'%< 6Þƒ¶³¼¤¥µ¾¿°¥¤¬£¹žu„†±³„þyÑ„’búLc4= 4 xÈ7145š‰‚xlcœŽ°‰‡•‡²€¿¥§¥µŒý€J16;916>#"!?<7 37 0275 äæ ”_—Ž”‹°„‚hœ°¥¤¼€ƒ™°¾‰²·ùí7 ãã6$?30>6 €åãàšéŒ¤º§¤¸ºŠ‡¶±¹²°´Ž´ãÈw•±µ˜teâžÀmè“°š h™ƒ‡e6<&'<%0 0::>:803ꀉo„¼¥±º¥¤¦¡º¼Œµ¸¤¥·„ 60 5 =25?870Ó‘fîäõê·ˆ²²¾³Œƒa´¿¹¶D C 4x°´‘™ærsƒ‘’„„„Ëe??0 r<;&!; ~ = ? RŒŒùšêŽ‚†ï€µ‡} = ††ÿ :'78 ýf4çž±»°µ¼ŒŠ¶Ê‰°Š½¾²Šóì•‚µƒ› 4F™ûŽ¿´„ì›i鎤ŒŠŽíÃèîȵ匘†’tü301u‘ 7=$%ôê™tÁ‚¾°šÍfâ‘lzm‡ìÊÚ 2%=™—l2 ýe—ƒ°Œ…µˆˆ°½ ¦º¸½½€‚³™…€–5>;7 19!%=7~Úò{г¹´ƒ…ç”OíჃ>>2ØI6:763hŒŠ™1  ‘´Žã焘 ãä:4Ù‘ 80’€•프k—ž¾¸‰í’„Œƒ·‰³‚•Šç [€‰¥…×\jJ†½¼—䇌‚½Š·èœŒµ†å—œ‹áhÑtá 4&6h 661 1€³è3þ3}µ¶€ú󴚟u—±²¤‹ †³µ³ê1kf´²“ =5€†€`Mé^„™ž´µƒŽ“2Ø€·ƒ„ê 8:$Žã%&2 Ý’Z”snýŸ‹±µ‘ãíyî¶½»·=<7w뵘“5::: ?h<2;3287 뇋Z‚ŠêU´¥¾¥¥ˆl逺»±–6<60ô€fd—ïµ¶´»§¥ ²ŸjЉˆ²ºº½Ímw‘舸³M:0ï4;<ÒK”å7;!%ra·k11¹¥ïz357o‡³„𱄵Ѕ¸¾Žül6”¼½°[ <Ÿ•‰÷cz7{˜†ò“Òœ‡æ5x“‹¶õ 67 œˆµ’u 0 `á°”Žo 5…·n q€o53?2Û‘c =$$7~í‘e3='!4—·¶å “ꄼ½´_äë—r¹¼±Õ7]{šµ²ú730ÎœŽ°^O¿¶Š¾¿¥¸ƒžƒ’ý°¸‰Ž‚ ‰³»½„4$=]·†z7176æøÐh€h—‘ “„Œ btsƒ¾°‡52×·”…ãÐ>?ÍŽ½…°Ï…O±Žä‚Ûaj›v}ˆ·˜g :2I´äEn`—{e ðfpi ›Šµ 3aC†±‚ì8?ˆŠ¶[=$0“›èxånÚà 91W™ë=%<‚X2%'5制’’YÕ™j—÷Ø»¶Ïá}êj댊¾·´< ‹³³Ó i‹¾³¿Ž”‘w‚±²f‰‚Ÿ„šž’™é’‡´‚– _€±¼†<0ž”jìî埶“3 ä焈‹ù4’¿¶Ç >6€»šjšŸ˜‘ê‘°„Š€ðÞæàÖ™´Œ  z…xw 89„ñgi–Ý 31š†™æ7Ÿf›Å28 €±¿ìb4 Ÿ¶æIGl™—í ýRùì  lÀÙ %84p’ý9>е32’á—z…›³·ãtêuŸ€ƒZëûƒ½µŠµÆ7ì·±µ‡dRœ´Š·ƒD¶¸³ëÛK‘½²ÎÎç–µ€Ž \´†• Rˆ›ƒrmŠ…t94IŠ·’`€´€ño›³¶9% ¹²ma‘†’–‚Š˜ˆ†’þžõ„—ëÜý›´ƒ67ñ€µ”55v‹µr%9ƒ‡8$4È„å nnå3Ïžg î‹°Rei€µ1Ÿ±w08r·µj>2é…10·›5%:}Š„ näò ƒŸõf83ôšµ‘çá 5Ÿ´Ï3¶º¹v<'¶±Ž•–’Œœ\‚¼¥»#7º¡¸²K±‚¸‹J‹¹´˜1'>”¾³ý÷’êŠà44쉓æ’ãÂüôеïô‚™5´¾Œ 73y´°æ€û†ú˜é¼¥–e o·¥ƒ^ü‹±ˆµ`cšŒŠ4>0îP×l55466n–’0e‚B—ŸŸZ ý‹¾¹Ê09?蟆“ï~Þ5 6i<:'$07’`6=7> ™œ9&:°´àó˜…–’`÷¶·˜ë ž¶÷݇…·j5懈³ê‰¦ ±ƒ½±ˆ¼²“³·´Ðꈾº˜í›Ž´›ýq—±±Ž1ݱ±aSjöncz ñµ·56›ïf™æä ÿ²¼Šd=<4†¤¼ÐŒ„‹‡ƒ±Ž™ Œƒˆšæ Ɔ€ 8<…³˜50ƒ€•24ÎÃ6‰10yöáŒà=1Ž¿ž goá 44 aE4<%506  0<<5â™—5‘Œ†ê“aæ›–Çb˜³¾´p37ü·šŽ·‰â05Aì†ëâôa16¹ºŠb¹¾²‹–‹Š’…T™ˆœ™Í¿»²±´†˜Jžåíá`Ä̉±’Çž”í 00öÒ421 –Œ¿€m54d¶‹‡Ø™–†°±Çc™‹Ž‘‚´˜ójQµ¼Ÿ†µ·™‡Š‹ì5a•n o×éS1 “šúgåAbï·•77Àm QµŠe÷– 1<5޶€ 1~Ÿ‚~6Å>$8 623˶Œ<3<ìò’˜²Ž~j‡…Þ뀉°œœæ‡°»·56 „€Ÿ÷~ …¶°`ß´†ŠvnžÊë÷µ»²‹™Ÿ´³‰½¸º´0›Š¶‰ìüp‚åbPñ434 15|b??3 EŒµWW°Š‚‰ÿg›º¸°d¸¥†emæ ‚„Z‹‚η»»¾0=1r„€h‹½›çCƒšQ $=NÄ 04nƒ·í40=É•çR ?5‚‹žǃè—<$%3?4iÞ<4kƒ·™$!>ˆ¶´µŒf 5q„’²›m –‚µŽƒá5“Ÿ…²··‡Œµàô  ¶†‘†ˆ±·š D’…·´ƒ‚†·…½»¹±6•°Š³¼0—·óNäœ6$$9 êf5 7=65 È’…ì 19„±½›œñÀ°¹³¹»†îì oÑ‹¶¶°‡•‰—b›±¼·Û%9’¿½ŽŠ„–œ…“_c?>0€°µígá ?2„ï j415Œ€c4<„°6Œ‹—½m=&NpcO|†´Œ™i6%1o‡„‰_70adÈ·´ñІ:# ᜓàû” èîž°´¶ÿ;8f·™—…o˜ âËŸ€Ž±¼·¾»¿²»½‚·½¹½±¾¼†W<8$$ 2:$-%92uÑ%%$4b†´ˆ†œh›†±¹º°xŸ²¿ƒ‰¶Ÿès†¶»»¶²ç f‚±¾‡‹õah…Š´±¾‚N :1µ›°ŽO75|Ž—™1?3 Ÿœ€çp 5}JeYh=%?=2?9;rhÍû‘ 5>8 “—•Œ†‚„so„š„°µ’ç<=7tþƒ˜™‡4Œ‹ˆ„’ð –·°Š”Öb–Œ‹ŽŠ 38Á‘Šƒ‚Ž‘ƒ¼°¾º³ˆÂgŽŽˆ›²´í냊‹›‡B3;$9 f;>3f€šw09?蜆‡‚µ„µ„±¶µÑ±¶ƒgê¶´°µš… ÷‡„à‡zäî™´‰˜36f…ƒ¶‹ƒ`ä„ûAß ? 1ç“šãØ 61Ppÿõ ;>27Á4=0?˜ï†e50 O莶“hjŸƒ†µ±…ïz06œ··Ÿ}•†…›íklqÊ„Jµ’oÑ`‘…Y –ÏUµƒôù†‚·¶²™Œ€Nú˜„Š·´bã‰é øŽ”}39>7sƒ—:%›u54 Í„†‹ˆ“6çž±Œ€„ˆGˆ¾¼·Š{TŸ¶¸±€WýNo‹¶Œˆ}Þø…·ˆò’„nå57»„ 96嵆“} 55 ž“‰…499g›”m0B7>09 G–„e58=oŒ‡|0%0Ár 9šŠŒ·—ïï›732·¤¦½=6jŽ–Ú_êá~Á²¸¹74™´…–x„‰k031†Š±‹r57±¿°q•˜Ÿ“ñ’±¸¿¾‰ã‡”šŸœ‚NÐ3=1 †¶‡g87mk37<71„±µž5d”‚Ï‚Ôv1êá·»§Œøˆ¤§‘~–„‘\gyeÚµ¼¶±¶†ÄŸäæŒä—¶°ˆñ74ˆ³›4 6ˆ±µ483‘Èì—0<2n IÑ <øý•=76è344·„†H’Yi„í54‘¹¤Š_¶„‘…uæÉ 糸½”XOáQ툇ä5 ai·²Ÿj4ƒ¿±„D˜‘ Üà¶¥¼¶…ðø€›î·´ælvù€°´^07ht 3   ò3%7´»¦ë&÷Œ€˜œÑ…ƒ:º¼Û¸x?<—•¶†m‘n ºˆi2ž´k…òše191€»¿Šé00š´³}qŸì6b^šƒ³²d…›ˆçƒ Ë 739Åqèå? /:7 0 cÏŽƒm ƒµšâ7;4 04ùfÎéÿ炽»¥¤¦ ¥´†¾¥»£¦¸¹»½½ŒŽ²º¦¤¥‰5<…om 16<$>Ò3'-&$'$<==$%:':?5{š3%%:1„‘i‡fj4ϵ¦¾ƒ2µ±¸½¶¤§¢§†—´¤¥¥¥¾™„•‰Ž¶µäœŠ¼‰™™œ‚´¤§¥Šý€Œ‡›t„‰Ù71о½‡4%;5;$>0m$%86 Z4;'!&= 8922:$…Ó%!%=”9>gÇ <⊲Ÿ™‚‡µ¿§ ½…ㄲ¸¥§§³üm¾¸°‰µ¾½¹¸¾¸¹¤ ¢¢§·dƒº ¥¶°¸¾²äâ´¤¤»·o 7üÜ629;$$':1™$& $56>&'<2$%6œ†z6:>5OŸ™µ¹°í‹°¸¤»³y´±´äiˆ°¹¾±µƒ¹¦¦¦¹°‡Š¸¿³Š»¦¥‰ãa‚º§¦¥·Ê2 浂t‚–` 5 û…ƒ`3''7660:$1dKîz'! –¶àÓÓ›ƒƒ–îüŒ¶¹¸¹kê…¶ˆYoŸƒ´€‡‹µ·Š>%4Ÿñ23504^<&%<6>;>26=9? i6$9 êy430‰… 7sታ‹ f‚²ˆ€´µº»¶‹€¾¸º¥§¤‹oް³€û웾¼µ‰¶¶Š³¥£¤Šƒ½¹²eeµ§¸éµ¶‹°„seçœ74Àûi74 < •ƒ73=4<;6˜48?36wê} 3;6P%$6ê’577g•éi74Qù™²½Ÿçióµ¶ˆŠ‡J‘„d3 —‰Ž™~iƒ°½°…é´°“ w‹½¼›ËxøŒ¶”pdžš7oê“™  ø‹Ž– i@13š“>>2žñ4 cs$%6TÁú7qž›Ao°·Žƒ„™Ž±·³±éœ´’0b···ïrž‡µ‹‹ÏÈŽ´¶‚Ç@š‘|ã•þm4îÄÄ‘ 5 lìš™ì`æ64ì´²µÅ6? ƒéñc <   ƒ‚œ{eõƒŽ¼c‡´‰…í~ß1E´²Žó1ý··Œ’à5ýвµˆÙ4”„€‚dÎr4’…à–jûÊ^ê˜j5 ì…e41 ð‡´’Ãc41 „‚…†` Tƒš€¶±Œ–æêŒ½½¿µÁUÜñ˜ãg 71í·‹€ˆž³·€Žšd 33žŠ‰ž=><“…“Q=1><nc”q 011厃œ\þ <߀út601·³Tðü5=0Ô‰·°·ši n‹°¶µ¿½†˜¿²¹¶éi76m¶¶ƒ 76æ±»º²µÚ ²¾¶‡71 š¼´<82°°ùÅ6 64‡œ—52>6’‚š’é <=<˜€°ŠÚ :<6…§¿‚“J7<0‚¼¶‚—y4‘¾§¾·²†6‘±¸¾¶ƒ 70‚¼µš7=7Œ¼°¿²Bš²¶·²°Ñ 3 ÷г·ŸJ6':2œ¼±Žð0>—”‚„1$0µ”àí62? σžõ9 ‰±€ý07ó€˜uME 4v°§§²ˆ7µ¿¾µ374ЏŒwÝÆ 55„·µ€‡ìkž¶¥»š€a56‚Ž™d3;%7ö‹½œ300€Ž¶Œ—1<> }‹†—ê0??µŠŒ…K 30•¹²›Íåj Š´’jB`‚¥£¿·µƒóŽ¥¾±‰4a’±‹CzîsˆµŠ”žjxv†Ž¾Œ›W‡“\3&:9ÔŠè40130 y‰‹ê 32<4ä›×Ç1997˜‚•z ѶµävÏ€‰³{ÊàŽ±¥¡³´²µ“ûú˜º¤¹°š4㋽¶ƒi“¾²‚†vcî·¶²†óœÜk Œ†ìÍ0'>7á 02=?1ó³æ?$1 þƒšVs 6384ƒšæ€T5<õ°²„›g˜°‹ƒ5g†ƒµ¸°€¶¶Œ’à·»°±µd77Ôž°¥„“ž€·´ˆœO狼‚€ƒŸî4G…Š:306l×4?=6 iýêw 9> mµ—tì 021憘‰ƒ34Á€šïžš”sµ±±†Û‡±´µ‹‹‹‡é‡·²‹Šž7æ´½°·œp 틉¶†„™´„žˆ×0 •µ˜l?913 n42460ñ6=%3j€ƒ•g` 01D‡´Ž’5lh—€€€Ÿœ755¶½·˜~éù´´†·š·ø†‰²²Šãk”‚¶±²³µ“ç]ŸµŠŠê‘‰‡‡ˆ‡‰k065€†›Ÿ2%>ø‚5’þ5™:8š 27 ëéœ}cg: •™ãDdt‚â`oyíb„‡–ÖéæžŠŠƒŠ¿Š¾·· ’呇5?05 9 Oêè‹å4v°´·‚f–³±µ¸±¤‹bf‡›Ö÷³¼»·Œî›Œ460:#'“že »†ûK鎓}feŒ³˜±°¶‚=Œ±€ƒsž¿äËÎi5 j7143âg6?ðçOhèmw ’‹”ﳑ’¶‰ŸåšŽ‹œ4™€Œ‰¸…s|à 174Ž€56 âæká —–oƒŠ‡Y ˜€‡’½µ ê”g56´½µèŸ˜µ´WV 7=7 4–„e c04ë[B7û¾ºµí?3o’‚¿»€ Û¶žöXè’å±½·kpÒ0396ŽŽ‘ 6†‚„12 âT·¼‹è45™ý—³ºŽÿdöô‡¼¼†5혎凿ˆL217?2„‰44“5 =†¸ºŒk‘@™·²·˜Fi‰³¿œÅްšrd…È66>‘‹‡5 `x—•14hÜi邾ŽA57“Œ‡aœ³²‰ôQWge Ú±¿‰–€‡ö“…‚6907>fƒ’ 91–ù`7 ޏ¾š 7‘晉³°™˜ìdåg²ˆá—±ŒŠ›–êŽn758:?p‰‰ï çGkX3?Ž¿¸³k…gÒ…‰…„á’Ìõƒ·¾“ðqš–ôûð743–pÿâ eb~ =7•¹¹¼Àw†Îsfx‹‰M•‡àÈﲿŠj‘˜€…}샇F =<;µp175z_EM4‹·„š•o œŒ¶‰‘Œ4™»½Žµ·›ïiä‡C2=>–ŒŒìóÚâ184„v4Œ¿´·zušê‚€¶¶âíæ€ˆ±´³d k‚› %:9miaÿ\Ô704zo”°´„ìg“°³¿†þnІ°ˆ¶y™ôMóZï‡Pá883‘ÞošŽ17Q•513M±²¿·ˆš‘44{¶¿¶‚†Èdw°¸°·Ž216°Ã4>?8Æ™‰˜‘t36 ñvè=b‚›ˆ³Œ%7d’·¹°†âN‚¼¸±ˆ€d68“¶æ446<4ೋ‚·I45 ‡´ƒÄ4>á€îŒ±€ 4MЋжÆ0øã{Šˆ÷—7•ê¶›ˆ 89w‹²¹º²{T<<7ƒ439= šœü³é5<6ï·Š%634„—3 …´¥»¾¼½† 3™}·„ e1¿¹¥º¸… „±¸‹²½µŒë ·¸¥²¼ˆü3=55“…ÛL “²‰·ƒ 16 j 6'%9&&9òµ†f 74›sŠál ?< v¿·±’22 †ÒÖ 4‰¼¸· |޽°ˆ„•69j’޽µšù™–ƒ·¾·„50 ›´¼ ´„k Û±ï73 |°¼‘0 V´fq $!>>~‡8›Œ²<>1þž•»´˜ôg ’°‚†ö 8%6‰»¤¶in±¹¥±Œš Ÿ¿´šã’ ‡¶¶·µ·š4Ô}±¾»Œã6á·Š±à6=8c€ƒ_ 4Y°‚˜„W7''$0“š†4263ǶŸ1 `î´±ŠÕKœŠ·¶· <>?5hŽ´´“ ’½¦»¾´Šš f°²·ë67æ‹½Š·¶áhKà†¥³¼šЀ½¶ƒ›554 5†ê 415U„€ƒ” 7 :;<Ž›‡2'$ñ‘dv565—€‹·æ kቷ³·‡401 à•†„ k±¹»»°µ’|Ž4•µ°³·}3 wû–·±´–ï@‰¶¸±›L’³²ˆŸ 2=͆á6:4oŒ›‡ð4>91ö›‹á4';í=4433至†Gç–Š²°‡˜4×ñ€‚M2·¹¿¤´ž’’üµ²º¾Z VžŒ¿°€ál4酖ޱ¾ˆl×Ë€Ž‰¶€çt 3= k—€† 39s™ƒê := B‡101?7`Ø61=? kŒ¶Öâ芷´µæ„dbŒµ‰Œ´´ŽŠŽÊo”—µ½¸¶á]n°‰…›š‡í””‡ƒ½¶ÛŒã鶇µ†äÁ 15 ê›”5 šÉ24 545œs 576zhhe=<< —”z`bY˜ä„µŒ‡lòIˆ·àë”ðë‹´·´ž„[{nû¿³‰…‡‡rS–‡ˆŽ‚•Fã랇µ¶ˆœþ„‰|‘≲œ 41žµ‡64m]îd@}Ô1?36v‰0>1ݘ>%8:5…±‰É90l†Ÿä脃š š´¾½dL´¼Ž¹½|{$8庹¦¤¶3%6 °¹‰>m¥&:­™êµ°: yí¥´£´4vm;#³Š684:!”Ÿ‚¼§¥¸º‡µ´—´¸·^4$"%'!?642-## ;367$!'$&'?1476k”¶¼¹µ29j4 îí›]g33‚º¹¹´|˜€ƒ„À}6126 •—ÿ4—ÿZ•‚°¦££¦¼‚²¸¹£¯ ¤¾‰‡“ŸíŒŒš>!%=$2 1>%#;;0P…ƒŸ377š„æšlhiµ±µ”61˜°µ„êž ×µ¿Œ1=8215141?$:1?5µ±°°ó”µ¶´¸¡¡  ¤¿²¼½§£¤º±œÕ`ç—Š€†›67 eG6$$;=4ây418%84V°¶Ž˜47q𶷵аV’ˆ†Ž²¾Š„69061 8$033—Îl >n`žÿäøø ÅŠ°²°èŸe󳈼¤¼¿²‰µ„°¥¤§¶¼Œì—‚µŠ´‹„–Æ =85 6=;!'8=4ðãkl5a ‡»¥ºµ„vah•·—Ø]y6fèéç7<= 6âKtsun”Œ”ï 10:<633  3 7þ• `·èŠä 6 ö•v5 ?áèän a€a…€ÓE‚¼º§¦°·‹µ‹²º¾±´°ŠÀ gn163<47ilžµ‚›‚븾¶²ŽîÚjávŠ„ðåw7;;ðÜ7?021oH`—ìÿ `v°‰ˆÂÖ516tdéZu25”Š÷Ùð nw蚀úŒ‹•Õljˆ³½°‚k›šÎ¼…Þ€ý1 îï ‚‡€µ¹½¼¼²»¤¦»°±”ütŸn 59%$<552>?9;>63`aƒ³¶ƒõ–ø™jyy ?™€çqñüíÑÆŽœ”…·°¿³žŒ–·…²¸€‡˜…áÌîg 47{…ƒ–˜€Šêæ°±°˜êiväµÅÕ0 5µ‡Pa?0 ~J3 x~̇±jÇ?51’ƒOîâhä´µ‰î3 ™È fœ71 k‡´ˆ¼†èóŽ¥¼´¾¶³¿‹b޲ˆ·´xŸŸoóã]a2ïã›n 44àŠâ–€‡±‹ê †³³¿² 4ëé Ÿò>#3žâÐ7890ч”r‡‰” €±‡ŽµŒdü€Ž…š…a4ð´°µŸ'$;<ï` Ÿ…5>'64ƒQš0˜´²§€eû‚„Ñlþ…··»µ7< ë’Ï›·¸´W=kÇ–áŽeFŒš„´°°$$&6àñ†“3ï40 ¾¶•0|…¹½¿ƒ j“ŒO²¥¾îöz5cƒ˜ƒ°°á—• ‰Œ2$$ ðE’?5Y4€³»‡èù¶¹¼º±à} „Ù·¤»“44=zèwbÄ9:ãŸhíŒÛ0'2b…„Ž•_›´dò…¥¾þ˜¾¿²ƒæî?&1qš´±ƒ 815‹‰±Q „h›€µ‹$?0€Š½´¶7„Yj錎 5q횎‡‰ì66Ò ‚·¹·~3 ´··•3„„kÁŠn6:<0fŒ˜šn4 ê¶±„Õ€±°°ˆ“=4ýãAp”¶±F1â´°‚š ñáo \CÔ8%;6b—Œ´ï0chy™‰°¶ãv戳±¾±Y7 áåì…€¼¾þ ;=㵎“Ó =˜šì{Î<>== ˜€‚‰›7r–‚³³„Ÿœ·¿¥¶±„ 5m ‘‹³µr23õ›„Ÿ” } ×Ôë42%1N±µ{âÒœ€Ž¼ˆ“„à’´½·Š– d˜¶Š =3xŸ…‚‘˜vþ[7=90™‚…pMqœŠŒˆ°´‘}uƒ½º½” 1PŠÖ76„ŠŒŽ€Êd^värb51326B„‡·òí ËVw‹³¶†ûQŸ˜°¾°ŒOj 56_”€°| 5=š‰‹´´”cAY{I’10>93ð˜–âsu ų²²˜Œ™†¶½¤²7 b”Œ147H·Š½´Fbl5`L_Ô2=?97š›–žßñãRlNA¶³¹œƒ—´¤¹·œ} 7”Ž•j1552ް¿èûw` ‘މ6159>ïš›Ùo }ê´¥º·„…”Ÿ´¥¶´† 7 4?Ÿ·°ˆ˜ízÆ Œžu>7?0líêá~pøŒº¤±öšÑWް¼¿·Â6J€Š`=9;憼³–•öj3j†‰‹5?? a˜Ÿ“j›í „½¾°µ›ÛœŠ´½¶ffa1>1jšk 34‘¶°Šéêœ ’¶Žì660{’ššóó71쇸¹‰€äë—싳·ígî?2 ê´`7s91°¦§`ó ý`ñ³µ ƒt:ˆ;а±6í21â¤•Šœ3϶±èOcí>‚í“ 0=Q€À„Zd0†¾¾‚„󼺸»²³ˆ‰ì’‹·»™â02%>%&'&&';$ "!17?>;8$2ñ™‹„…“댃†êƒ¾££ § £¢­ ¢ £ ¦ ¥º¿°¾¦¦¸°ƒûË‹‚êi 624 =%$; =;>$''928'##":74;4 `ꘋƒa704reŽˆ€èàšŒ±†ˆŽ±²±‹ïžŠ¤¡£¦¦¾µº³²½¼¸¶¼¥¥²¸¹¥§º§¿±–ãšÀàò‚”€016‡ƒ1>6222<92 1?!%<7 720??9< 70$%207 0<<37Ù=713Kì”ÖÌ…H÷õϲ²ˆd_г§£¦¹¿¿²‰Š¿ºº¦ ¡¤¥£¢ £­¢¦¥¹°·¼¥¥¼±·Žd`Áš€¿¸‰Ó15 71:%55ç~ 3='#&8=027?!&$$$> ;%! !%<9999?È6 1ü—…î7M†µ¿º²ˆŸ™…°³¾§¼»»º¦»º§¡§¼°²ˆˆ¾¹¾¹¾¿ŽÀb{—º¸¶Ž€èóöJ˜Ž‚7>0 Œ†” ?=454k020=02 b` 3:87`uŒ 335 •‚ŸMbk•µ¹±`ú†¼¼³¶ƒb–ƒ¾¡½ŒµŠžµº¹¹¹·–Úš€¿°ò 66_–˜Ÿ‚Ï 1` =?9=däh?!&%:=g1>$&?i399 4 ’€Œf 33Žƒ„€Uîõbñ´¹±Šžcûš°º¿¤¦°†Àwþl€¹ £¦§¿Ž‰¾¤¦¦¡¦µ‡‡ŸŸŒ°²¤¾±Í4œš¶–úT0Ø“™ŒÝ 27Ôó•‘g71>9%?47j5=1n 2<<4j™˜41=g›‡çéœ 56 `Oбê÷oaж¶·ƒ‘V°»¤º¶ŒœŸŠ²´·´‰üzʽ¼Œ”7|”ž—…–‘i5 o‚€ãm{ŒµŒŸV 3995ë…•l ?2ùh~ïn50?17†…€m45P‚“ù„‘žk56< ኂ‰™™‘ƒ‰íi o´º¤²´œ½µˆ¼†‚Ö1 i¸¸”¥!›蜼³< <…»»÷œz˜ˆ‘54'<1äj†¾z3;1ÄÓ4 4 ãXŠ¥»Ž”c†°¹¹¥¡»‹¶”hƒ´µ5:k0072>%"&%3 ú–122 e–’‡cû Î…»££¦¡¤¸¥§¦§£¡ »½‰†‰´§¡¥´‡ƒ‚›]5$#&!& ;?7e <'&&%:''%9'' ,-/-&? =:$&86   6õè´³µƒšä€±¾°¹º½¿³±³¹º¢¬¢¡¥¼³¸§¢£¢ ¥¾°³ƒ°³§£¤º¿ˆˆµ°±ƒ¶Šå w‡Ž”3730'!#!#!;27>!'<6=<473;'$%:04 70>>1760020 ‘„è‡ Æœ’ˆ‡‡†‚ˆ¶º¡££¥¼´±»»¾¥§¤¸³¾½´¹¤¦­¬£ ¸¶¿¥§¥¦¦¸³Œë„‹´³¥¸™bç’ñ29<&$15h8%836=19%'& #&&%>068''%81741=89<%$?5þ6034jL]Ìz´·¼º¼Š˜‡Ž´¹·½½ˆ·‹Œ³¸»§ ¤¹‹¶»¸¾±ˆ´…„äØŒˆ°¼¥¿Šƒ—òΘÙ 70 aâ–š‡ì 7 73<%?2<7 7 Vua 7f⛞œÜcêšàPu—Ÿ‚œ‚°¹ººº±µµ˜„·¶µ‚Ÿ”„ŽŸn›‹³¾½¶œaó€à÷ü|5Ñ쉄œz` 3<:%:8$&1ak4<1 52%>?>?;!&<1 4 êé|núà 凃‚„”l˜”•žŽ±·š‰º§£ º·²³³¤§»±†Œ²¿ˆ¿¥¥¥¥½¶·‚·°ˆîçèÙ™‡d}Ÿˆ¶±„jH43%%74?<[îœ 6 6>8<6>!:7Ä÷0 ô„Y ?Øß u圃’çXãêÄ‚¿¥¥¶™…⇴’šIžˆµ„ƒ¶µµ¼µ—ŽQ}“…Ô`ž„Ê䆊‰qjg44j<8w1 g’µŠ‘”Žn57 062>7u˜œ 5 Uhk ‘˜yŽŠ†æœ àÛsøì•›ëêµ´¾»¹µ½¶’„‡ƒìÿ‚´½‡Šµ¶¥¿³½²˜djí…jWè“·‰žkm?<0=27<=0v˜´‡˜˜à=30=47 à–‡‹ëam‰†äéb™Œ·¶²²ó Ü—÷⌎—ƒ‰ž·±´¶³†Ý‘Þg”el›”Œ·‚¶²‹µ´Øš€šjc gdAç—’à䓿™„ó47>3?%< ÿ˜‚›†±¾Ž1??14> 5õmcuñ‹†æ` á~a›€Œˆ±¿Ž¾¥¸§¥±ê44 oH074–o19'&;22>1 oùəа¾´ã €‚ŠŽ‰³¸¥·‹´‡³½°Î0>%976114~…ëYðЇd 69? 3 Z†·âOœŠ¾¤ºˆ‡yj‘äš—Êœ²¼´±µ¶¿¤¸– =:=6074Í뀜7`Œí<;;7 kcR—„ÌÏ‘›Š¶±€‘›‘šçŒ°½µ„€…Š»¾’1$;2642 õŒ‡—|쇇—<940Ø…àõ…µ½»Š“ña›€…žèúüˆµŠ‹µ‰Š¹¾Žz =2 7=<5Bš— –ž•j3<16 ”ìáê딊·`ñ•“ššóAàŽ¶³³ŒŒ‹¾¥‡4?2 46œ’µ|qžž˜m 6;4 àà›œdf굎‚çE–€ƒ|g„‡²´‚¶¾²Œ1=84   pç‚Wê¶ŒQ >;? ýï–Ìh`’mø‹ŠãcÕ•‹·´Ž—íí…Œ’…¾¿µž 0<1×5јô›‡‘ë <9>6a`fÃ’‚™q|‚˜â}ùEž‰‹Žâoe䌼¹¶ƒ‹´˜74j5æ•d‡·ˆ„8:?bçéÒcéí’u—€†çlì±´‡‹ƒ“„훀䕀‹‚60=dšö4 4röiØŒæh4:=7 nÓbæçAž‹†X𵷂탆°½ŠŒ½·˜44 iQéóìpz˜…鉳‡ 127úëynv•›–€µš’盃‰„ˆ›“Ÿ„³à€…14 çp j”pnÑp33=4bómvík™™Ÿxo´·‡‡…”ŒŽ‰‹Œ‚‘2?‘ÝúâbÍþ—~Ÿµ464 uÇóS„³µ‰›’—‘€ê‡â…‚‡ƒ´°ˆ€†€”ò65åáIxÆ^ã•„á ?1 oõ󛎀˜Yb㘓‡„ƒá”†±°±‰˜‰Q42=5L—äÉéwåý˜‡š›•~ 99  Ø…´·±´€Mb›ãšŒÅ`ö„Žš·´‡ƒ…‡î46EqÞìð”ãÿ€‰ûÔ  aÀ~“ƒ‰ê’‡†Ÿ–g„³µŠ€ž†•œb 24gi5醌°¿Š‡Ç4 j6 möb`ŽµŠƒ„úþá“‹·š iбµ°½–ù“ûa÷31Ïž¡5»›wÒ7/èƒ`o'ä í‘è|·…š57qe—ˆŽ9icÊ1Øô 6kE·¶¼°’½¤¾½¥¤¡º²¼ˆ fõ…½¥TEyŸjygæ %"' '!","", &<‹Ú0530 jþ€‹²º¤££ ¦  ¦¡ ­­¤±±³°²¿²·¾§º°ÔrgŒ·ˆ‡‚Š—ðwÏüé61=>$:$$$%$$%$::%36='"!?•áñÿÄÕ]ºº·ŒÇ–…Ÿœîò›†Œ¿­¬ ¤¾·‡ç…а²°Š„а·²³¼¦¥¸²“hýŒ€›ùan aŸŒ•ø2?< îîøàvA 515 6?%::=1>::0570?64$"" 8  m „Їî7 E˜hýèí‘úý›·½º¤¤¹¶‰‹°¹°°¾¸§¥¥¥§¬¬¬¢¤²°ˆµ¾»¿ˆ‰µ³ˆ‚‚µ¾¾³·˜mƒ‡es…ëÛ4?%!!!;8'8=21>'%233=$,/-,#<765 433?ÞÚS3?>93yq 4 öµ¶±²÷Ág„·±´·½¾¹²°²§ §¤¥µ‚„šµ³¹·‡µ´±Š›‚°¸º¸³µ–Të˃¿¹»³Œ‚Ö´°½µä338=456 437f~0! &$7{}b 䈚`476‡™ýÄê”34ü˜‰¶µ™5㉈µ¶¶´”œíƒ³¾¤±‰v Ï„…‘ŸŸ’giŸ‚´‹‡o  ØŒ´‰µ“ 5æ—ˆ€õ2;!'4 ?;:?5 7?&$ cæ 7 Ä·µéöj‡Œ€Œ‡N鋲»³·ê †·»§¡¤º¼·ˆˆ½¥¡¥º°è÷„е°´´¶ƒût”‰ˆˆ‰áœ¶±°µêoq¶´–3882Å|6996  4% %=4\Í 6?21“Qg 67 –އÿ 0>= kþàáç1>= Zƒ±½³‰‚œTÇ„·½¿²·uà˜´°‚‰‰íd›‰´‰…‘dg†²¥¾³Œ”“쟈³¹½·†41=’Š•xc335k` <%$:7 TUe3?7rЗn Sˆ¶€K 5 íé”ù7926o„½¹°²Œ‚žj³½±cac€µ½±‡“— çž’–˜è}h•޳·ƒì\”÷„·±²±·Œn 1š¶¶€›˜é4—„ž”p0??= ’ŸùU 24Ä‘–e`˜ƒ477gOSs39$<3„„¶µš”é—‘œ¹²±T 5²ˆ¾ï»°9¼ ·¥dÅ‚7Å ·±²ØŠÇUƒ€±ˆ ?71ê·°–6–µŽƒ›5 ?q¶¾²âèÄú†³»¹°´‡eAh6?:7978 #"-/'2šx 14K¿¹°ƒ{ ˜¶¦¸³³†ìûº££¢£¡¡¡º¤¡¡ ¾²±±³³¼º¤¹‰àd4>9>36>''&%93 ;$ -!&81s3%!"- &?537>=30åžeqž··„’kxà‰»£¢»¾½»¥¥¡­­¢¡¾³µ‚‰µ°¤¦¸¶„uE៼¤¥»¶µŽ†š€´²ƒTJg|Ýîïà ><$&926?$!%%93~2:$&&%7šy53:'$$? =:$$'% ~VC 75 7„z 4|Ó±¥§¥²·³»¹º¦¡¦¡º²²ˆ´±½§££§³´±´±½¡¯¯­¦¡»¹²¾º¦¡¿¼³··†›ƒˆŽ„U\ 25?:9<<310:'''&;1 7%!!!#&8047;$ " !'>223?>=4 760=6„±°´ˆ´¶´·²¸¤¸³¶‚“àŸ„ˆ¸¤º¶„‚›µ¼¤¢¦ºº½¿¿°²º§¦½³¹·ŠƒƒŽ°µ‚à~R×ñ57bbññ 657o5 4=>?i 49:>?2åä öàlj\Ɉ½´³‹¶·´¿»¦½‹ìüû—â‚àEeÁœ‚й²‹œë霰·€€êLcM’ 47577 7:8?96 1;?066 46717ôô1;90óc…•œ†ƒ’•†œ±¸¾¿±··¶¸¦¢©£¹·—hœ·°¾¥¾çFM†¶¥¦¦¾‰†•倷°¥¥²¶µêmô±½´ì|5?=7 þS0%82Í“…b50==4ÓNJ5?=7sƒí 2$';6Îà_ <5ý^ 0><7c‡‚‹±‹•lxŒ½¸»¶œjfœ‡ƒþþôÇm•µ¿³’ 舲º³²³ŒœAâ¶¶˜‚Y kD”ïìr45 eœ™’åm cóÅ{™— 7úðo=;'?rl lk|4;=1›‚µ±°·†šƒ±¥»Š³µêön釖é•놅ò’iŒ‹´Ÿ õ‡´±±Š‹•bÅ™…‡•’ö ôðâ’k 1ÒêØájuëíü„ƒ…–b™ƒ‘ãÅ 5Éç~þ…—ðlU <>4k„ކ‹Œ˜‘þ…г¶Œ…ãòojiòÿ—š}^ó´å „òS™‰‚PHøÇmÙìu7Zl–‰µ°ídߖ4]H—™ƒÔø•ŸÐÅçpþ|•˜´‰’„w|7 <o‚±¾¸¦§¹¾°µƒ†áo6$$:&& ì°³ŽìoÚ㇈Œµ›˜‹ƒµ°€°·Œß1:&#&$;?$5 H†°¾ˆ™âŽŠ±Ð12󶺤¿´†j57 dë l‘‹‹„ <3 áù“𵉳¥½³ŠŽ†”…5<;:95jƒ¥½°€b[~}å´´¶¶Š‰…˜ïƒ··‹…c4=;!$340iŒ´±µ‚îàŒŠ™l 553234뵿º¹¿´LÅ••‡í GJ€„ïæje” ‘é㈰¶´µŸ˜• 50<%=çµ¼±ˆ^äMƒ·‹°µ†„…°±¼½‹à 0?%21 m 5•Їˆ€„†˜i  5 𾺼·œ4 Bšƒ„‘  fîŸ444?0hœ·¼ˆœéaŸ‰µ±‹“Éod 470 —ˆ´…—õ—ް³³µýÂcƒ½¾¼½†?%22hal 7…ƒŒ„•ë•C´¹º¤°sîþ‘…Œµ†áS“…‡ç714׋±°„”gÉ‹¼·¶ˆâr 14 5JŠƒèãjÅ€·³µ…áhÿµ²±·áh0 0=_ç568<1Ѓ‰íh57g4 …´³¾¹¶Ž”Ŝ´´µ—ÄNâ‚·‚‚”17î±¶½°›í’°½´h =6 7 pš‹³Ž—–|åå≱±b 僋¶´ƒv àúì2=>6 n˜„ãa5612 lc\‘´²³´´´„Ÿç‡´·²¶‰dÌ”·¶€” 4 “±¶qnf´¼¶Š˜y7628=0 =55j‚‰°±‡oí@瀞´Š—S‚´ˆ€ž—gaœŽd 2:17m´µˆ˜<=>= lï h‚°½¿°³„TÊÈš‹º»¿†a÷}Ÿ’¶°¶Œ7< cáµ¹µò6•ˆ´²´‚%%$%3[c53%< …‚½ºµžiùµŒ˜eg‘„ŽŒ€—4mŽŠ…6=25䘳ˆ 3666þ† dt\؃³¸»½žáãs뀾¥¾ˆõJ‡€±°³4눵€fæfr’‰·´™?%$'? Âx2=1 ”±¹ŒïÐemš‰~57•”뇈ˆiè¾`‘<¶­='§5;6¿wŒ^ƒ¾ß¼±?&¾3"$9™`a¶c¶¿³¥¥¥ºî…ìÅ`á 090 31ƒíh—刾¥¹§µo1 ŠŽ†fôjhu€–‰·—’:571 5==?8?3=Q’Û‡ƒ¾¥»³‰T€„žƒTµ´¶ŽÁ5hŒó M†€· {ëx½½²²´¿»¦¦¼¹·¿¹äꆑFå…ŽfNomù—æŸ>;?<= =;91’‚„{’ˆëJÃöµ¶¾²…œŠ„ˆ¶°µšk 0255?'''!<2 r i‚Œ³»¹º³±…—†·²¹½¹´ƒ±¶·ˆŒŒ·¾žäíçš¶¼´‹• 4056<%!!! !'>4 38ÊOú‰½º¤»¹½¿²ºº¥¡¸üùj@úH><  ;?9= = 5<=25iËGj N‘‡±¸»¹»»¸±²»½º¼¥¡¤¼¸¦°‚›Š‡šÙ0$?824a<;646=50 00%07r‰ŠL„…·¤¹²¤°€ã“††¾±œDô‘a›ú×< 61'><$;'>=3 503 xް²‘‘—…³·¿¤¤¡»¹±°K·³³¼ˆ”Ÿæ†ôí´‹´ìa4 57‚r60>0>2666:'"#!"!25Uæ]½·µœ˜Ø~Õ´±Œ·„EEëìè‘“KýãRɰ¸³¼·‚‰—´³²·ŽÈ63 ~ 56889;1 35 iˆˆ¶½±´³º½¹¥¢£¤¥´‚\`D18'2%&0< 7273< €´…‹Ž„‘”숳³·þ 0 ó4 7Èd‘Ê—™–o“Œ·¿§´¾°¶ƒ…‰µ²µ³’r p`“1=%8;$? íìq[{Òá´¸¿¤³¿±„›²¼¿¥½°ô|3Õ[ï410<7ÛZ7 04†·¼³‰µŠ…š±±²¿¼¿’~‰°™1?:8 46<€‡ˆçbœ‡´·±â`47õ4  †èƒî~pl‰º°½š„…ƒ°·²¶·‚ýëß“’·ò4 7xåh  8>2aè…|è…¹²²½ž„‡„Œ¹º§±šà™šH<<2:': lÇï0 75†€„ƒžl‘´¼‚ämw–œ†ƒ´†ƒ 5 9gƒ„='91•‹‚‚— Lޱ²†–qŸµ¶Ž¥½‰ˆk 4 a”‹µ96ÃŒ€…ì|à›˜€4?; 剉¥¹·‚6<䥎o<&$8<4 ì>9$:5—Ñh€µº¤¥ºŒ™qŒ¥§¢£¹ƒü”´‰šœ3=08 Áµ™>;':<½¹½±“d“¼¿¥§»åÇRƒ³µŒƒ™îÔfKá03$:5 pƒˆŠ=;'7c¶µµ‹11=‘—µƒ´‰øéõ”2092mŒ¶µ‹~2 Œ¶¡¤¾¶›·†´Šµš<4 Ý‹±±5183Ó™””31Ø‡Š½±OvЉP j„޵‡461ƒ±´†665•õ<22 ü‚óš‡Â5`}’€¶‚ä 7=3ú°‰Š¶’dc¿»¡§²þþy}’å”e9<1”† 06 háµ²µ¶“惽ˆ‰‚Suà肵°€ %291Dã53?=4ò…Ší …Š“–æ4 i›‚‰¶Œ–hí–µ‹“15=94Ì“håu f‡‰¼¤ §¶¶‚zd÷çk7?<à¶€Œ’4s„¶´˜€Ç}øšµíÙVÙ‡ƒµŽùO3977Ϙah?>79 ä´¶´ŽçxÅ“´……• —ŽŠˆš’ 鵃“ 4345ÁgÀidG†±½£¡¥¸±ŒžìÇ™‡— 224”…ê 4 lšƒ†„ÁÞ€“A‘Kqî±·ˆÀ37 mþ–3<= ޵ƒh XŽŽÚ1336‚¼°°Œnïùì„™ 7 Ÿ„–rþŒ‘޹¥§º¼Ã•ÿ´°™ëm>836‡õ7=34޶‹ƒ…ለ€æa·µ‚–51 ý‘À300oú…€•– ‰†ä 14 zŽ·¶‹êàíyØêœ†Œœ43= g嚃wû›‚¿¦§¤²‰˜Ìä’ƒµ‹œád 54}æì30?24€„õ õƒ°²†o tãžž[o17Hx†‹• 5—éïÞ 662癀…â15 €·±ˆ’÷Á´¶ 4Rƒ‚ƒé›ž“н¸¤¦¥µ‹œå…‡{e”„ ;' %6j’€ƒ€x 4–˜†c f—žœš„Õ™†‰…Áþ ÞïßF 6=dS7 ÇŽ‚‰Š…^ù2 æš·¼†žé: ·µàŠí–‘½³µ‡Oy눺°·›?#$ cž±±´´ã1=àµŽŠƒ4= 4‹´¼»¿Œ{yŒ‚ùá6& '0é·µ™™nmÅŸ±°µ×6;71 lm38::;Ÿ˜¼‚n ‰¹ºº¤»³µ‹ÅybˆŠ³º¼³°¶¿º¦¢¡»³†’5’´±’>&'&$':64f58?5‘àvž‰½²½Ž‚âØq„ˆb3& '?6g‚·²¼±€Ž´¶ŒC ;#- !?5 føz 17j€ƒ·²µ…‘Y›Œ‡µ‰†´‘b~„ŠŽ´—ꔕŒ·´´Šˆæð†‚‰V5%$;>905k  55ÐŒŠ¹°˜‘vÓ’€·ˆ´·”j•…„ƒš ?244ûŽ·½¶³‰šƒ‹›ò2!!%'94g—µ¾¾¼µRiíæìƒ¶´èk螀‚ú|qeK–…µŽ†‡èËšæ—šÑX3>8=92  4е³½¶ƒ“眚€ŽµŒ‚vo`Vퟒû‰‹‚¶³µ„ã‘| 38?>%23646w¶²±ˆhcšå—‰Ž„’•ì–Hœsómß’•’Š´Š·´‰—Hec6133=9=32 {uз·‹‡šŒ“š‰ˆ‡—ÿ‘åw嚀–‘hiK„Ž‹·¼¼„c 2>=2 9>37ÀÿãŸ„Š‹‰¶°·¼¼‰„’ 0 nïÍ–ƒ…Œ·Œ‚…–w õš™à7; #&'0‡Ž€‚°¼¥££»Š†030 Θœœ†…‚¶¸¾±´15Pމ·Šž‡êyûá ==% $&%1r„޳¿·„‡| ÏŒ€‡‚ƒ´·¿¿¶µù29:<6 ÑÝž‹¹¥¤¿Œä 08>1 g 44 4=4ÕŽŠ¿»¾¹¹¿°ˆŽž À’´·Ž°¸¿»¹ŒšÚfjj “N9 #&%2—ø•žž´¶³¿¶˜ÄymÀœ¶´ŠŒµ‡†í0>%9= q„····´‹›E5<>8:39<1hw‡ƒŠšècjžˆ½„·µ°¸³¶Ž”h˜³‹‚±¶³¾¾²ˆà7<3%;4plm 4417 27Ÿ€†¿¥¾¾Š”kÀjDÁ——{™Œœ 3<5ÙCNùñšŽŽ‡ 2'!&8 Eœ‘’ûƒŠ±°ˆ…Ìe ñåž™†‹±·±»º¼±Œàcz›“ž‡Œ·¿²´±‹†ð`7=9;7   pš”Á8&#$’޲½·°‚š±²¼°„588q“Ž7‡‡›‘ð4'&9’¶êˆƒ•´…é22f\ñ€´½Ž·€œ7= ”šµ°¹Ÿç’sç”lµ¾±±„wNeÓš‡h›¿Ÿ·„2>%n6 3 Ë‚´µ··—“ïD…¶—G5=#>5>=05Gâ 11 6pð“VPlæu‚о£¦ ¤¸³e‡bñƒ¼¥¡¥§¦²¹ƒêsã”m{~4 ;;01Z“ÌG74  b✈¹¾·‚è 3 \•¶ˆž´åx %&8147fð㑇µ›0467 Ȗꈄœð5jitžƒ´¸³½³‹ŠžÖg°³¤¥¼¹¿‹”ë ðú’ËÕ×ç 0=?:7 f‡´ƒ‚” 26=0ŸŠ‹°·¿†™t 64XZ¶‹Ÿ—Ù =9%?n‘„‘•‚ž 09 `—†î’îhkø‰°²³´Š‰ç…Ç ꌾ¦¢¥¿³¶Šõ@ 3 ꔄ´ŽMÇz 00?:%~‡³‰æžg7 6 Hà…‰´„††qú•5 熉´è6<78:1f“–´‹š‘âŸd754>> 蟇‡µøf˜–mT5‘Œµ³¶ˆŸ€ˆ„„‘\‡³¸¡ ½ˆ´|™e c†‘€‚þn 7 3%=Ê…Žña57 5„ž´˜ñõ–u0…„·¶‹Ñ=<7>? ”QX‡›ä•ˆµX7<; Ùrᘞ͉‡ròp`Œ…_ÿŽ·ˆìá—pd·§ ¦º±‡ƒ´ƒ{hÏ€˜{T 09';㔵ˆçy7 c’ï‘‹œéž‘6<”š‰†Írb6>0 34j‘déõv–“·ž 3KÉÍ|—áá‹“K†¶ƒ„’rjöµ¼€õf`í¿¤¦¡¡¸—‡Š‚…R06༼Zí‰ ;%;%0kŸ„äh1…4<><á±·ù–€šk1?3f‡´²ƒb 6;;3 o‰ˆ Ĉ¼‡00=1Œ·Œ…a›‰e–±µ–„†·b­ £¥¶‰°º‹11k„¼·@÷ow±°ã $& &íüefߟh70 @HÕíóói230ì¶²ó7Ù99eî†Ågbkd‹…??1퀊‚’‰‡ƒ‹ê7: M†¶‚âÚ‘‚¹¹4 òˆ»¬ º½°µ¹ŠljÒòz‘çnyà–³µ;&;6“þ5Æ›?< ýžŠ³îB 4èë %?4ý’»¤·‚Ô6461:2îþŒ–åjÑ‚´Å<#!?±´”…‚Ž‘½³3?8µ¹œH”dŸ—¹´»_8µ•7¦1µ0ˆû»mŸ ›ú5Õ²¤¡š4 7v΂ÜbjŠž……’ šš¶¾Œ{jüµ°ƒä››€ïêRõŒ·´šˆg?$9?38ag6%9';&"&##"&$83zt3;$<hµ‚°¤¤º§¦¥³€Ãõ€¶¥»§ ¤»¼°°Žµ½½¼±±´·ˆ±˜°™8=1=34 >:'$$'8%8< i”†µˆ‹€ê??0 @‡ƒ†„´°ŠŸIö“·¸¦¯¯®£§¥¸½°³¿¸¤£ ¥¥§¡§§º½Šœ‹·½½¹ºº¥¥¥µ‡æßyo冋‚Ãc=%-- $1 51<3139;?%&$''$$?045=>: ##!;6 70=01??99%!#&>•އƒšÛ7 P™ŒŠ†ŽŠŠ°³¾»½܈¿¥¦§§¤¥¼²¹½²µ……Š·²¹½¿¤¦¦¾Œ qöš„áukmeûv<836C} 29'!&&'<604 62=<:84ŸžéÇj 76514ë„·±Ž˜ ü·¤¤º¹¼¸¤¾°¶·‰ƒŠŽ¶¹¥¡¦º¿¹¸³š–—‡µ¾¤¥§§¤¤»¾¾³µ‡ç…±¸¸¸½¹¶ë `\x{ÀðåïÌ}ðd 2887 ô“äîøj 102?74dYJtñ78907?6û™‡‚_Yã…àd iÛ´€o–í–çåé…ƒÍwžŒŒS74 134 4ob69:&## &3 b7>:9<;%=5zÉþ”“ðs 2<0áBñ⇎µ¶¶¶‹€“Ý⎾§¦ ¦¤¤¹³°·±°´·±¿¥¡¦§§¦§¸°‡‡‚Š´°¼§¤¼·‚‡ŸäêîÕî“ŽŽ·´Šæ ~ËŸ„šx66h5 54lõ‚°´Ã54 d䓘†…™}63i愎²¼·šþóE Q”ê~aù›Š´‚†€…Ï 4 ⃅”ü™éy064é“Ú4  f\gMì…šTb55434pÒEd1f|5ÿ_ 7?:1—îÐ477 tÙ—kbw·²°â11 a˜ÅÀ˜Œ†‘SõGDኽ½‚Ñ  dd†‹€Œƒš„”êÇš·¾¤¼ŽŸˆ„ûàãŸú²¾³Œœ“_gmþc소µƒƒ˜UD{ 5ð„ˆƒ’ðanâžRvYƒ³¶™fãîq–ë€ŒŽ±²³Œòðdf—“…çP‚¼¤¾† 38><=72?<07í…gb5 7 Ä´€566q††E 9'9 `ÔùNïÙx…ƒ‚567–Êx1¶»¼…192kú›†‚´¾¤¤³³½²²‘þ ›¼¾³“ö474h⇎”ü‰³»··³Š†š’”ƒ€¼³°€ì 1?Á`•¶¾¾¸µ‚þ v—Œ¶³°³¥£»·€šˆ‡Ž´ƒŒ„„…™¼¥»¼‰€í 탎µƒúµ·ôínfüaù—Ê™²¾ˆv099$&= 41 16l=$'?><37?=<==3  s·íáøožš‰ mÕ466 ‘’h75Q°¾ˆ 7?5ç±³´„i…—{60j  ’„…À52? êã Ú™ø 4Ç’´³°ƒ‡µ…ç  b“„…oE‹¼¼ƒ„ì5=xœŠµ‚±ˆ†ã÷„„1Áâž˜àœ±¼¹³·¶‡Äåµ¾º³·n›‰ï”57Àaz„žŒç54δ¾¥§¸·´²»µí v呎±¾¸¹¡ ¿ƒtÒjµ´¶Ž¶±±¿µè{3>3c‘‰±µŠŠŠŒsL 1<71 77 0=! ''?4 07 4<7I—µ½¶€m2b5s·¶µµƒ–28<45j·¾»¥ ¤²¾³ž  H˜˜Ž²¿Šð–õ 0><23Ü„‚·—5;'?‰‡—”üš‡Jåì?9<0—‚’ösÇœmä÷ 2<767|Ô±Š‹„Õ~Ÿ†€ƒ‡“–µ²°¶Š„·‚‡íy™·œå}qo…³¿²±µN  ž´¶¤§¾¾°µî䜉¶·³¤§¤¤¿·•h뀈±»¡§¼³·€ôj0béšˆŠŸI†Œ“ä0$:<6–„y 6?;;??7 6 7307?9=T5˜Žƒ†™`mOmÀbtïo‰·”tá664g{ãµ€WÙS45bGÊô‡ˆŠ¿¼±´ˆÊ4??=< e瘌Œ˜Pv{3$;7Ò„‹ŠŒ…‡€—÷=$'1g„…ýþW›„š]65“‚žæb™Œ‘÷ggœöbý„ƒ°¹»¿²·ìc‡¹µ¶´D톥¥›êoÿ·Œ¶šsD•“jlmôhÒˆ±±ƒôtrÅeÇhh–´àƒŒ|œoÂé೸µ€³±ƒ@ŒŽž†‡‡Q –m‘Ç‘žêKj7qih‘ei˜n š‰´´·ðNj619';zn5%$$$'&8<<7áB÷„°ˆ†’‡Kî´ˆöœ±´ê‡´œøYjh‰·°³½¤ ¹¶¶±†’‹¥¥¤¡¡º¿±¼¿‹ïgljµŸ—û•5 7<%%:%'4ôôjî¶‡Ž´µÖ 3=Zf—‡éè6 „´œç™€“566 Ÿ†Rl 1820??6äåɆy•šïŸ´½µâ—˜ù÷Àë’ ´µæ—î–¶¿°Ž±½‹…‹½²µ…„‡‘†°±´ã⊠b  4:?  76‘ƒ¿¹ŽfWn1?25 5ÅRŸµ¶±éözdÚ ï힟†ýý'? SšŽµ„j :$%96—íç𚃖îúaj‡’…ƒ´²°Œ†žàõà=84y€†‚´±¼»±‚„dõ²¤§¹´´¹±˜ìj 7o’ï–‡Ð}7 1;$%kæy“‹½¼‰í 54iÓ”û”lëžãˆý™þåΓí6 ojƒ€d5126j Ï™qô²ƒ˜†ˆ`Øþé–í6†ƒSæÌg@€°±‹·—øû’™´¾½›’·¿¼ˆUïƒ KãNÆ 6>9=46 d‹´¶°ƒ‘’“ 4ÌÑæ‰¼ŽsG16l„Ž‚Žƒˆ‡€ˆä49:8>7n…¶„€ã^3?'$91ksœƒ‚–†çúšŸ€ž‡ˆµŒ72wé˜ê‘޶¼´‡ŸÂñ·¿º¹±¿°¿°‰™Íùç„…‰·‘ñ52108'= en`š‰´ehh‚ƒ‡„„˜f 501×s‘€´„›ö‘â–a13s_@ãñj 10287j…˜ã€÷{Ä‘–™•ý@Ÿ™þ—ˆ†b{M›ahì…‰Œ†µŠì넉ƒ„·‹·°´Šµ·‚\_™‚æá€’‡†43=5646 á¶õTg70 ank†°·„üÍk=4aé蘊±ŒôàšX599ÖŠ’g“æ?& '0ô–”ˆ¶’ÂÒ 6ø‘…´²·´š˜FmÓàde’Ž€‚ŽêODž€±±€²¼½â™ìPdI†°¼±‘‡‚î463< `TÍxŽê ;96€…Œ€Ž¶ {1 <2œ¿¾—àŽDG1’¶²·ŠŒõf08;4ĵ±ˆ¼¼†v7 <%=4›µ°‹„Þk45 O—™´´á…kZ628 û”‰Š³‡ƒæ5å×”úç…²¸¹³¶²±„Óœ‡š˜ë‚µ¼§¦¥¥²ˆ„‚„“Øê±¸¦§¦§ºŒÇvQ㈷´³‚ît399$!!"!%?7 539 607\‡Žµˆá01:>:$91J’†‡„—DiV`g u–šá 12%'%:5s‹½°³·˜”eíæyhŠ¿³¶µ´g 5 6Ø„´€éža 67290w·¿±‚‘1665345 œ‰Œ„޵Ói`Þ 쇅æ“âãàãbBg•¶¸¹¡£º±ƒunµ°³€–âD“„žXXÅ챺º¾°„N  1 ýˆ¶¹¸šF拱¾½°µ›œøåià…–dÃ’ƒ²¾º±ˆµžÉk g–‰½¹¤º´àkž²¼±µ‹™÷ 5Õ  1 6 2'%>$8?Ÿ‰ŒƒSj    —’š™îa 56—…‡€™o  6D牀„Ò=75 n‘’†‡ˆŠ€ŸÎk5Ý’ƒ€„æ5  iåƒ´Š”t42>?444q„‹µ’„ÖÞo {‹½½¾¸´šaYcň¶²¾´ŠˆèWhkî’Œ´¿¹µâᘚý`怶°„‡õ ñ’‘›·³°ƒç  4@œ·³½°ˆ”ggè·°²¿¹·…žón{{sÚ…†‹¤§»±†\4 h‘†…†´²¹²€ây —‡ŠêK 2?%%3 5564lœåb 0 }wÙÍ÷fµ½±»§·±»‰¾¦§¥î516Þ 3!? ö ?<64–€‰ŒŽ¼¹¤³‚~yrŠº¥¼¶´ˆ¶»¦¦§µ¶˜í´²´ž“`YùJ=8$997ýž›ë‡Š¹¦¦»°µ¶°¹§¡¡§¹Šƒ´²±µœô•wµ¼½‰‡b…ñ2%' &!9 4<;&!&;8$!!!'<4ÓóÆôœ‰”M…¼¿¥»¶„y‡Œ‚‘ 22= 0>$!:9$! $:1˜†…ŸTzo˜‚œq´·¶±±á޶¾ˆ“„€°°°·ƒ†Wv=;$&$>10=?'" $636BŒ¼¹¹½¼²¼¹¼·Œ€‚´½½»»°íW‡Rq6<5ÓŸ‚v05õ†Š„‹€”··ˆˆ†\a…±¥¤¦¤°¼†€²±Šé‚š™´¿³¿´Šœ u2ùƒ³‹Œ—WG~eçb ”¶±´²°¶†Ÿ¶€µ‡±±¥¤»¤¿·Œ‰¾‹‚‘nš‰±‰‡Œe7$'$%&&!,"!?;>><>%:>=72;46†±¥·µ›ñHÑz7Y•Žœ—…ßmîd Ž›„…c65318%?;85 >>=0šŽ±º§¢¤¥¡¸¼¶¶¾±·ƒŸ†´¶´ç1>&#&&98%%67ó61 øû–°¹³½»‰„ä6 h ‘™åîú  ÅS¶¾¾º»²ŽÞ|h” 4›—†_T •jÈTб½¥½¾³³¿Š··¶Ž·¼²·¿Š† 1> u–±‚ñµ—‘oÿˆˆ¶½‰³§¤¥»¿·IaÒô—Í›Žµžm6>>> G⎷¹‰¼†‘ 600cÉî528'" #':%$1Åæ”“51sN±°°´—…54=56?65  <ùo„µ··¥¿¼¿±¶´³Š¿¶³µ··˜v 52'%;3 fi{~æê½´·°³³¸·€4991 ÷xžÀ6%<3 z‚Š·±°Žšbòàt–gŸ„б·Ž` ;<<4_ž±´…š‡è”Wæ—uæ°³³Œ·³†„ïmñìè„´‘„]Ž™™loo…‚ޱ¹´›¶Œ´šÐŒž·¶´¸¶³²±¶“„†D }nåï·ƒ†ñŒ´ïd:?0 𔆅´‚l’031gᑌ–ZÎy6:89=$'=654471$#%?<:?ýµšž„èˆøêŽ‘™‘´‰„…²†o–„ ×85 5›bzî–6é\mè€X··‡··´„–fˆŒžn€²J6<3=&737 d :…ê³¾Š§ ¶°½´I…ƒuU´¥¼³¤£¥¸µž z𾥿¹¤¤‰‚ø4: 23›e ဠ54:'<4<0ðy´† 7?  ’ƒ±‰µ¿œÞvW~怸µ¿µ‘p=0 4ì•0%$3;9%2;>lí‘ÝU—SK“…‹±Š¹¼³¸´·‚íáhê²µˆ¹¤¹Š±²Ž|’e‘Ї´¿¸‚³ºøX?1÷ jgH4>1 =25jhýo—’jkæúÁ—샎·¿˜’‚h™‚ëi†‹’µ¶å 51 31 10=72;4403êž‹±±ã‰noã‡îŠ‹€³¥¹€ÏB—xîƒÝˆ²Šˆ»¥·Ž–‡ý艴±½³˜ì <:<  S†…òj60 ?7ÜÇöŸŠƒ‚†] zÎá¶·µúTSX‘Š€ñŸ·ˆŠ™6 4ÌJbu g7<%;232 Ç´†‡Œècx^e쉲ˆ€¿¿ìm†Aå°¼‰¶¹¿°±ˆÃ’¶›òŸ€Ž•€±·‰ž…< 7>2413úÌãH1 ob55êœfèµ¶·´sê›7|Žˆ…™› ]f4„‡€‹Šë9 …g6 gÔø6$=62=1i€·Š‰‹ŽHüÓpƒ‰€Ž¹¥½Š•62I{µ¶Š°¸»§¤†““›“Ÿ€µ³²¸½³±P78370764—€õ6%%04 u”ᛆ±¸²ŽBïàf‡‡…ž534h{á]A•‡ˆ†ê526k–Sl[l}wfïj4$&> |ùšŽ 01ÊŠ±µ‹ˆ½²³‚65bwç‡†Š³´‰µ½¤ºjë…†‚´²²¸¸¹Ž 0=93–m6;'225jþ‘€±º±… cee‘œš´³´l 74i}Ÿ™€²µz087Qc7‡›8$%>67 —Ÿá뎉‚àcí‚›„·´·³¿¹±˜ Ÿ„‡‡Ÿ‰‡´½¼Žd \”‚ƒ™³²´°¹¿Š72<4ógnía‡š >%%> F“‘釷³‚ë x~o×R—€†µ²´„ 6=5Ãa㘅‚‰´„ 70c ii—…i2$1Ëûèpbô‘žÈ€]ä5h‘·³¾¸°»¤¤¸½´ë‚–³°–àX| 6% #%!!$ :%$;%29$$$<5Lsc“‹±‡MÊ‹¼¥§§¥ºº¤¡§º²…‹¼½¾³ŽŠ‹‰‡Ÿ0'$ :=98''&;;:; !!''%1  >$ &9dFá哜€¶³½³³w¿»¸¼½»¦¤§¹±¶Š··¼¹¡ §§¥¡  ¤¸´…ŽŠ²¾½½¿¾¼¿¼¼¹¥¸´„·°±¶‰µŠ´¼±‹€ž`47z™äW47=$%>134775123!# '$';:%?362;9;!#!$0 i 5449$'82 û–€·²½²·†s„±¿¾¼½¾¹¸¤¤¾¾¿´††¶³¥¢¡¦¤¥¤¥¸²·›‡Ž€†µŠèÈ‘çäÍ 03iob 2>%'%96 416 3;%$! %<=14?8<2328'&'$%<3144  53;>o„‹´Ž´º¹°µƒšÈ“‡ƒ¼º§¹½¼¸¦§§¤¤³±¼¾¥»¤¤¥¥§§¤º¹¼‹ìù—´¼¼¼°°¶²´’‡”[à–šøZðâým65 hgüîÀë•—í6<<ï‘äüeìŸu 7 f„މ”⌵‡íB5 w臉‘™—ï•514ü„¶¶·°ˆx 4=>=6øÉ}k`óG`5166Ú›„Ïkh 729%>2 mÐk53203:&90hñ}  563=064lÌôçÊÕŸžÃ 4‘µ·±´µŽ‹·ˆ€‡êÀå›·¹º¤¿±±Š‹Ž†“ëš‚‚µ°°·‰š’„êaᆆŒ´µ‚™s`ndlÉœ„‰Œ™•v^lbþ€ÁtñáçÔ7<”œèí—Pjøf0 lȃ‹šâÿ–„ävWQeaV€†ƒêî„ì —–≵°°‰þ”–M Z‡ŠŒ´ˆï™‰Šþm—Åzagæµ·™’„ƒ]se 3Æóz”ƒ‡€œ=> vÍ×no 9?20?:> lüwp499 ^瀂ƒ“Ç72yœƒ´µ€‚€ h픂‹’äþâð 617HTrŸž‘] 0øš”ÊŸ•Ìàa—Š„›†_knœÈ uë`à‰„ì™™îkmdb‰²·„ãl~÷àðp̈²½¼‰Æj†´‚rk‡€´¼¸³ƒzˆ–ƒ l^ƒ¿´°±³ï¿0º  à9½†½²‡ „ežé5Fƒ²´zd[Ùw;4&5“—ÔŒTÿŒ‡¾§ ¡§¤»³³¾¼¿‹™‡Æ¶‰¥µµ<84$$!-/"&!%::'# # !!&%<06™kx•xí´´‚ˆ§ ¢  §¸¾¿¥¿»º¥»¥§¬¢¡º·7=9::%:=5‘‘†€à >?>>$$'"- %216?'#!$'&&&!!!87 6?%;974 nÛìh–´¾¸²‘Äß™„‰¶¶·µ±¥¤¥»¼¶´´°º¥¤¥¥¥¡¬¬¬¯£§¼±¼¹º¸¿»¹½¼¹º¿±‚dtèë[Åã–Nà€ˆµ‚à5 77 365566Iñ 5?983$3 L–G 69$:6  5>$'!%86 1<>>Øî댌„…ú៌‚Œµµ‹··°µ—i‹ˆ‹²»²´ƒ·†‡tD𕆷·‚ý솀ëR|탟îFáÊNv Æpöqc 474=89 pD[  7?>pt}Q˜xXg54íšô„ˆ´€ø…Ÿ c쎷¿½‰€´²´Ž‡—wgÊ…€‚°·ˆ‹´³°Œ‡äÜ’„‡ƒŒ†ƒ…ó|è…‡‚´±µ‰¶°¶Œêy˜°²´‹´Š‚æ‘´´… 6ZxÔö70466;%$24=6 3>223 X›™œž‘†·‹ˆ‚µµüá 11ˆƒ´çwÛûvk4Íê÷”ƒ·ˆÉè„›à irã’€ƒh”àt 5oÑbtàç s4hCåcif17xdog÷J 52 SË[b•„ 3dÏ ™’‘@…½¶‡ ±¿§´¾‹ˆŠµ·—€`ÛŽ‡³–ˆŒˆ”‹–b„‰´³µ˜Z™‰”h34”†Œ‚²¹²Q–…ƒ~k–‰‰¶°²¶ˆ‚‚•zÓì\‰„wŠg fœ‡˜ïç¶‹æÊ•ëñ4 žôPg 9:43<%303747=52&'009%$986Rï‹T { îµ§¥¾¹¾°“@’Š˜ç•µ°¶°¶·ƒÀÖœ˜@ጽ»¼¤¢ ¥´ƒ‚Šînáúíg6 AïãìÆâ {Ÿ˜ý4í󞊊Žd“í êé…†š•lÆ446?8k6<= j:'3 uuHênS6?4á·°¸½½ˆŒ—}ˆ·°â•´‰³µŒ„î` š´à71ƒ°³¼¥³¶ˆ›’ž†˜1 qû—ƒ„ñŸa4{4a𒃂™h7ä€^ —ж¼¼°µ€ïa†û‡ƒ¶µµ€ë747L1<3öõoþs49$?55880`ê•h4266 46™ž¼¾²‹ì‘qïšµ˜•Xâ‹‹±µ°Šû 25îâØ´±³¶ŽøŸ‚‡n⇊ˆ„ì64öŒŽ‹†f27 c}Ÿˆ´±½²Š‡Jáb÷C v•Œ‹¶±€v  5Þƒö……œÚ69446;=5fÊŒ‰„òs10646花¿¿·˜–Ò€Žœøk†…´´·¼µ… 5Ö†‹²¶‰œçmue`ê’ƒŽ´‰‘ç 714m_Y…‹ïn 3< Y˜µ³¹½±…‘eóï›íñ’’µ°¿¹¶œ ol㊷†›6>=7 = ——ƒêsu798=6 76 s쉶’üØVaôy’Ž·±´¼‹€å  òµ´´†”bàZ|tgób·²·‚žm‘ î”^™ŠŽ’T4>=1 ™êµ½±‹„âvxfŸ†î‘‡†Ÿˆ¼±‰–å ic~óó€¶¶ŠŸ4;81 •™æë >'>574 g鎴Ò5 ó}’„‰¶¸¥¹±„Ë 4úc€¼±Š…– ì{b`å´¿¾´“î ]sn[Ç”à„¶·¶š0 \펷‚†g “€†é˜„Ÿ›½¹¶ˆì6Ü}Ã…›œ‰·Žé=81á‡Nn3$'%3 Œ‹…e021mÆ™™ˆ¥¥³´˜56ÊÕLhöî±¼±˜t ieÀ{ì´½³ŽîÁšëÅPætð€·¶´ŠÒ4VæúŒ0?g·¼‹ –”ä˜ú5§:½q }" ëÁ˜3ƒ‘†·’š÷5s‘jØ“…µÛ·’$1c‚±˜Íj€…—‰¹º¿Š  k♲Œ¶ƒ2%09>1>$'$15>7 08&':225×€¸¿¥¦¹·±¾¹¥§§¤§  ­­ ¡¼„ƒŠ¶··tò舷‚‚Žükj†‚’œùæ5???%<273<5 2?$$;=6 ˜á|>;$027 Y´Š‚Š–lcûƒ°½²½¤¢­¬¯¯¦¿½»¥¤¡¤¿¾»¦£¦¤¥¾µíÑýDs7èíi4>2=3 4512 n@ûû<260 1626600029& ! $:;$:9647<3>'!'$94=7 qmc777 ômäš´¿¶·´±‚”MöµŠ¶‰€¶¸¦ £¡§¹¶‹µ·¼§º§§§£¬¯¬¢§³Œ·‚µ´Šˆ´·°¶‹°Ò  Dã•ca7<33156id73;'%$>8:$8=33<770>;>6 Ü”……“„n÷Ù—°¶½¿¼´„˜˜€‰¶³¾¼º»¾¸¾¾¶›xy’“Ëå’‚·³¶¶Š›qì—•˜‰±¸¼±³·…wÃìÉ󓘇€ˆ‡ 53308>2 446:<5  å–†€ùSÌÔíÎìç–ã€c57 yN›‚œœçw 66cåd‚´ƒ€™œ K釰±´ŠŽ·’4024  Ï—“e ?%8';26 ãšå„ï50=2;267ÀîWÂŽ  17 ဎƒµ±¶‘Óé—î±³³±¿¤º¥¥¾¶†ƒµˆ´¿¼²½³¹¿´¼¤´”㚆±±´´¸¸¥½¼¥¶†Ÿ€œ_‡´‚޲¶ˆ’˜– ç˜îÿá{{p72346>0=3 4 7&''9%>12 såûòüø46kli@„±Œˆ‚´–â´œñòš‘ 6 a…··€’‡” cå‘䘋Œ€’ð4hG‘ŒÓ×U3>=~oŸµŒ 7>>> \÷ô䀃ÿj4261׆±´žÉZc6>=0 ð“”´²³‡M 07—Šˆ¶·½¾¶’ 65b’µµ·¸¸²‚êÚ 132󋉊¶¿¥¿¶šáÞ5 e€Šµ´³¾½·€Ù5l˜€Š¶½°Š±ˆžg ‹µ±¾±×ml 67ÅqÉ×›‚†Ÿy40027av–ß–øb 4934d™íІ…‹ý ò 36´~ƒk¹œ¡ ¹3ƒ;! "!'=6z†”†íôYwñŠ¥§¢­¢¡¤¦§½Š´†‚´Š½¹¤¥º³BmKkca޼¹½½³´€ =3<=:#94hÑe2<;%&'$&<3䀀…sîî––Æé›·¿º¥¦¤¸¶‡žé†‘šš†Š½¤¥¥¹¥»¾¹µ‚›Ž·´½¹¥º¤¥¾µŽƒm7ln 0<= ƘŒ‚ˆ“u 4 4?29;><  9$$;8;;8%< n 3<<>2<%$:2î•è 03=02?:86ж´µ˜Ÿž‡PñOHް¼¿¹»»²¶´µ‰´´±¥¢¢­¯­£¡§¥º»½°°³¾¼¿§§¹Š…Êb5511 o5=>233?9?= 62&#!&$ #&8<0 2?8;892 17♂Z 5kzš°°³³¶¶šçí䔘‘‘“´º¦ ¡¦§¸¹¾¿¸¾½¼¹º¥§§¦¥¿²°Žš€„Ÿ–Œ·°¹¼µ·Š—jaËMo`l퀓Â50=%%'''&%;<34 7<>>0  Ç‚µ´†| iå‘‚±±‹‚甞›€µ³¾»´Š•ÇÎrK~c넊··µ€žX `؆…Ui565413%83729;=hàxm47 dfzÀ70 7 4<<  —– jxz擇›–‹½¿¾²»²·€˜”—Œµ²‹€·¸¹»§¸½‹Š¶³¾±°¹ºº¹¡¦º¶‹€ƒ‘èð|šµ·µµ°„õCá†Ôæghuâg~–„4  65š‘õh111 ”o5>3 òŒêœ‘„¶‡erd”ÉÀ±¸³±°‚˜… cῺ¡ ¡º¸¿´‰ƒ€ëdû²½½¿±š‡Œ“iea…¶»¹Š†—óm4<3=4†¶¸¸¥¸Š„‡ÿymP‚²±µ´„á”ì 6`Ÿƒ¶€1= 4>$!&%>6ELþg =7>2323‘îꛌ{€µä×¹»¥¹Ž”·˜hýx퇌°´°µã—”e55舷‡çðýQ  ÖŽ¼¼µþ•’^ 4™‹µ´•a5470 m’€µ´›rà461”н´‘ 7 39892>4à˜€a 2;26095–‰‰‚ŠšM0̓µ¿¸½†Uìn“ž‰±¸¥¥¼„“ÙsúLhlš¿º¤¿¶€ÿ„U 5l–ÄcàŒ±ºº½Å 3״޽¶°€xNrÕá”á•»¸¤¹µ†:83 5x…š™v774>%20ùœˆƒ’6 7;25 7 Þ²°âaÓ ŽŒ“™³¥¥¸µÁ`áûbi솃µ²°°¼·éh67Ÿ€†–c?97OÒ‰±µƒÁj 76Æîçé³±±† l›‚¶±Š‘ 3 ĵ¿Št ?65úFn“‰±Ž‘V <6<%85x…ƒ‚á7 0>< Qéé󘇵¶”m44÷“š‡ƒ¾¿²‰èëfiÇ“›Ÿ²¥½qzvìן„”±¹·’ÉÛ5‘ž”‰‹‹ˆž|D†ˆ†µ³±Ž†ìäD›à쉋‘]` 35 17}è„„î<352? |bt䋵òm 4œ–“‹¼¥½…šøgsj}€ˆ›“¶¥¥³€ƒ˜æTge{î´†k´³¶á5 웄ŒŒè  6 üu˜´´ˆüh4 Æ”eƒ•˜Þ71 13Èfƒƒ‡ò?2471ðÀ…³ŠÕ ;= 3o”\ý—‡’I0?054=Jpà‚°´†“j56114 Sœáƒµ¸½¶°‡_kh ‘µ¶ˆˆ¹¹¿²´›oêè”´„µ¼»‰ä ùáí÷< ‘­¶´´j%¥90¬515@°6”ø´±7 ´rº»=!¡]&4::!å„·”†¤¡¥»¡¤·•å83 <= 19>1V;:€¶Œ„±¿¥¤¡¸¶¡¹´¿Š³†ˆ³¹º„Þ‹·r69:&"%<2%"'7 ”î7é³»³µŒ³°³»½ˆ¶½¤¤¼°“‹°ëëÙ 17X49$!''&$$!$$8~’72 du†¾¶†Iž¹ëïš00‚Ÿ–T†°µ<5\è 5<0 357$ &'>2%$$415g`‡¾¸‚áæ·¾º§º¿¤ ¬¬¢»·°µ´·€c“´…•7948!;'4‘Öp·¾¶³šy㎾§²†ƒ¶·²èmŒ¼»±Š¿¸¼¼¤±™ˆ´Žƒ•i 452;%%14%""#'%>0%;5D‰µ‚ˆŒ‹·²º»¶º¤§¢¡¤¥²µ°„À 7ññ™Ÿ2%œp 5y“•i7 k 5H™Ÿh芽»°„‚–ˆ½´Èí±¶¿¹¿‹4l>361Õì 6<:02<$&:?y 56 îm35··°Œåá·‚í5h柛g€±¼p…š4::64%%>7k <$!&97? „²µ¾¾´µßŽ™œ‹´°¤¦²ˆ“€¿¶ûžŒµ³Šo‡±³Ÿ|•n턘 5 [3 fÊ41 ñŠ´·µ¹¤¢¡·µŠ³¦¾¹º½¥»º§°0 4==17=5>%'8%$$=5䎲‡„´¶‚””¼»½‰Úb‡Œ‘n ÀƒˆŒ¼·‰·…Á= Yü{ƒï5% '833= ÷€¶Š†’É~Ç²Ž¼§¦¸Œ“ˆ³p 582 < 30=9 jI’ö¶…eŽˆ€Êîáï—ìïž ?$<60òžÙꃇ7ja’޶¾¥³ƒ  0  —Š’c 6odìáµ´‰ƒ‹ŽŠŠ½¾Šè™žŠ’”2ð–‘·³´·ˆŽ´°³ˆ·‡s—ôÛo7461| 0 3< 6 󃎰µ„·±’A þ‚½²¹¥·¶‹´ƒ 9<4?†ðaéæ70%>:84kcäb À錓këüã⊖ } 1ä„‹žÆu=150•œ´§Šî•1%6m‡ŠŠÈJp 58262a…–{‘†e33y‘æU“mœŒ´·–Qˆ¾±íR“d Ö‘Ž“1  4707ð€¹¸°i†ƒõîê¶°¦¡¿¶„µ´¼± 5j´³°ˆm5ûÁå5=3>žšé´…i´¸·ìi_…±ˆˆš°¹²‚–—iù´¤¼Ÿ5v?=·¶‰‡ÖÓ¿±ž—è¾§¥²‚œ–†€ =?4AŒð6lšÆ>#>“c01 5˜ƒê26‘·‡7 Yq7–Œ€Žáb2:37 é¾·_6d<8}Œ½±—7?433 $ 2—‹ˆ‚êâ´‹Ó?0Î…„ƒŒ’2: 5$ 3bRƒ–ôƒµ¹¿‹–~j{•³‚ Š€´„501秤³µfë¿aÌž±»»½›çˆè›Œ剋‹kd͇°“ nˆ½¶—skѵ·€œ¶½V †´·ˆ…†½½¹¶”áÆwŸåY‚¼¥¸³îã0Пû 3= 70<:2oˆ³’‡›î·³½{ŒŠ´‹šgnà`5 †‚0=>Añ„žŸžùo42<7713 B—œ•h >61 wš··•p5ksa  g޵‹˜~QB`óþk—plžä53”f\ ?77•àqÛwœŒ†}j1dšac›@g62?8 11wý^™‚…•æ1îcL儌‚´ŒÜgÁÚcj“Š‚•žÿa™’í¶ìwýva˜€Ÿ…çÿµ¶’™µ…ŒŠ·´„´NñŒ°¶‹Š–±º´” ⛉†àaä´³· 6f—Ž‚—±·‚úÑ∂”“Œƒ`bq<91uÉ0$36ݵ´ŠœµŠ´• 7—·½Š‡Ë›‹„—ð€Š‡b´±Ä‘<07‘³‡64´“6>>9š†à31 –76š‡â3˜ê cƒ¿¥é <1†‰ë=0„³¼„52“Â7::6…µì16q2>?è·š5bŸ†´3$<ë°Ž3ž‰D14LJ¶‰ bp‰u5Q¿‹~1 w…ˆë7¶8 …²t 1 À·¼²4LãƒåД²»‹‡Š˜n4„³¤¼„w·²º€ã´¦¹ˆ ´±¥ˆÏg²¸‰î󄵈‘uႹ¼ä11…`64²³;;2 06™µƒ2†œ5 ù½¤þˆµˆ56p³¦46o€·›Y 6ZŽƒwZt‚êcɶ 1k‡˜€ g›³á2&2Ÿäo…¹´667hi‡†¶½²Ÿ5ùè< ´¸‚?Ïd52?91†“1;4ç =755ûÎS‘„·51ðâ¿´„˜j†”fµŠAncͶµ–’šàÔjÚaôíèµ³°í…´<”kl`–²²´ˆ‰á35 6 ‰°°‚Œ½– ˜´™çƒ˜l¶º§·³¼Žì‡†iöèØã†¶‹”’>!&15%'=2 i’œôq›<=ó IÔâ½¾¿°¶¿´uÛƒˆ€“‚Dœµ³„ñŒ•2j7oï嵘z‘‹>3—žxMŠž´¤½ê€³Š >  Ã5˜› &#;=$?=8> := ,!75aþ··šò†±à>83nà•êÂ鿲Œ†4 Kõjø„€€šá—d620×ðþì„‚¼´äÿ¶1<—‘êbˆ·¶¶×ì‹¶±´¿½³½·´¶²½š‘¼²´µ·Š³¾°´Ž·€ Þƒ‚“™Åž·±‹Ž\ x—œÓòÁÙГ1<0ð~Aàšè3=>%3mîž´Šš„‚šyù‘š„„´³ˆ´™ƒ–7 –„œê쀵ŽýD˜õ533iÀÎÑMíÖìn 4 A掴ítú‡ÿ 7<4ž•€‡žµ‹˜[c06âmó’Í 48?=>8=jå  08;:;5ýýƒ”œ”Vj5޵·¹³‹›“álc•\4šŠ³ŠPd@›y —Œ††‹„â…œ~Uß7†Š¶–lzá‡ãúdúeY¶¼¥¸·…€ŒŒ±¶³ô‘´¾²³¼´†–œœsᇙ5j€··ˆ…ÀMäíimmhŸ‚œl5çh091â›Jj{Ý :8톂´`à•íGâ‘ ±²¹¶ê柇„†Ä1ïµdPò^egü<: …€éÅhÀ%'3Å€ŒƒÂfcdt%%µ„ƒ•‹ƒõvx–—35àd4  ¹ŠÏânÏÿ}4¶°…`Ï Z57D``ŒŽ5âm6³»‰ua–Ñ5±àiÿ›€Àð™ˆp >µ¾³ëŸ´Æ %経™Úƒ—eðï Ê…Ž“h‘4]šo<¶¦§¼Üæ¿¥»¸¾½’²» ¡¿±²°³´‡‡´‰Î ”‰¶í471ˆ:%7lˆŠƒ0 M80%90[œÇàÍg j0'%•´±ˆh„ˆµ¼½³æ„¥ ¤úÍž‚€’âü‚‹°„o 161l7>7€žj4>?81<640?=<6âé4—lísÕaY“ˆ‰˜g4ä12Ÿ²ˆ{1=44>61 >2 å·‹š 25 ’ƒƒ†sdzò’‚‰YµˆCжˆ°ˆ†ƒµ¶½Œžƒ³ŠŠž”‚…‡jŸ¶»½‰‘`úFï17ìµ·Œ\ß™†ãm›‡Ÿ€ƒ¶¤»µƒ·³Ž…•··ˆ‡Ó‚Ц¤»˜t†‚‚‘Œ„lƒŠµ³äDë˜25364dŒ‹Ÿn{ó=50æ¶³ŸS 13>>7 ‘†Œ”êù„Áá€Qd³²‹—å„„ßX’´½eëø”5  2$$9 13=4îd mû‹¼¿Œ6Þ77cÉê˜QëÄh 73 Éú5<7g„ç 7ï pÀ f”†µžeÓ˜é 5 lzd䎴°Œ’‚•éÈkŒ³¥¹†u„µƒðš–’¶¼Šïh×th—ƒ…‡µât7·”jŸ´¿ˆš…°»†òø—šžŒ‰»§¸·‰¿µz •—Fí„’µ»¥Šw3zjL†Œ™378? zQ˜…ãì‡ú5 <36Cëƒáõ˜œc{€‡‚³³›c±…4ö‡üßsŒ¹½Ÿt~35dàšúf†Ž093?%?0 <:?04726“Žžo µ5üyÒ–ä–áÑud†ñcgÝ4qaf€…C$%4a{zfKŒº·57 6 Ç‘‚†³ŒÄtò‡†€µ€…µƒîMŽ€T„µ´‡Üý»¿„snšµ„mᗌ狹±øåä 5“Ÿ³´´½µ™ç÷}0•µ¼¼°·¾¦»• ü“@‘ˆ³¼¹·šµ†Yíf䆶´›aécpe= ™–n ‡¶‡ =5k465zöXF’‹… 51 uÀ펉„‚V µ¶Îç’·µu6<òÔå䆋d 5Gc39L4î4=4üâ™1?4ú‰› °S=µ'Œ0¸6¶;± †ìº·Ë Ÿ±a8Чi :?“ï?0•Ž4;>A™L¶…¥¶Oü´ºŽµº§­¸‰·ˆƒ²µï‡¥§¡Ž›Ü=š0'=z87&&2<'=Œà0<dt¿¸º¤³¤¤³¥º˜´¢£ ºŠ²¿±¤»ÔääÂn=3 Vi4i…4=&$ = 4?;&' , /'= &!#&& 9Ççd56om>?ℳ‹ëp‚¿°‰¶·°¤¤¸¥¤¾¥¿³¦¢¡ £¸¤ ¤¦¾¶¤£¦¿³·¶º¹½½–„»¹µµQ4ö‘ŠŽŒŠš€‰aêŸl ?248!!'<8"&!$0>!&&={b 8&%33=;:5 154%91?9>> qkw4? 12“Œeˆµ¾‡uï¶§¼Š·ˆ‚¸¦»¿¼²¥ ¦¡¦º¡¬££ ¦¢­¦¡¥µ³º¹º¡º¾¾‰€°‰Œ¶[튼°“71o OàˆŽ263?==Â7< - #-! "'!'3>&>',$276<:1 >21>?634915÷ 5g·€ 1Œ¶´°·ˆ°·°¥±“´¶‰º¤º¤°½½‡ƒ¶´¾¡§¤¸·¿º¼»º´Š¤¦¡¡·šØŠŽð„–…µ–”…=65 axa r81 7ÌEú “62d‘’Y400144<64m zß\‹êú—ú â±Õlš„nýd²·‹š1 l™@€±·¶üjê‡`691`{›µ†Œƒ€ 74B¶µZ 7448:D463ukû°±LY‰·±³˜o‡ˆ¶§°–… ›ƒEÓoíº¼ˆá}€·†™Ÿš¾¥²»±Ep`凷—›”í7h‚¿ùÒ45ým55ë°‘ V‚8>0ìˆU>bk†³šúƒu]—‹Šgz| ê16v‹æ 24á–<d´ƒè}72íW”⇷°²¶hw‚—øž†Pú– 67~˜´ž Ž‚6?‘½¿55È€6ñ’…žb “F ŸRsJ š…í•n$8ìˆ 4=1šŠM 늶Œ“eˆ¼´šµ±±¾°³š ƒš†‹´…Ýõø—‡j37‡°°å‚j€³»¶ü ™¼— 4…›a1?e~`rbV 3Ç€µ’ —›Ã7>}™ž–ˆ‚=<ì— =>‹‹Eaþs„5 nŠ”Qâa œ¶¼´•¾´þ˜¼»¿Š~€µžj…‡éçó››~ŽŒ˜•Ê7ðŽ‹tü’s–`4>€„Íz`‡¶œ båhfj…_—µéžð $>dœäsûÖ ><äøI†ˆjtC001<=ô˜¸»¥§¦±•…³¼±½»³Œ°²šY“ ›må‚‚xg†è{ÊÍjănr···¹Š jŒƒ“îg pæ>=61 –´Ð ýëi6;9 00ê„9%0qŒ€“dƒ— <<26 °¼`…µ‡2<éldƒ¿º¶¼¹¥§µÚ\¶»¼Š‚‡±¸´ýhŸšõ¿½…—±¾ƒ5ô’ÕlŸ‹„tm™µq 7Š´õà 7?>57 uˆ°†1 rŒŽ>>7 77R`ç›y A‹¼°„yá€ã7?Ñ`4•‹µ“ ê±°Ý4a„„…r¹¥½ƒµ¾±´´÷±¹±àfð“–ç5á–Q˜Š±…‹¿ˆ4âb33€ŠÄ dëóñ=3i‹·„~d :3 6 –ˆƒŸj ´·ï3%1  06yƒ‹ë ™ë›`4 €¼¾½’íëJöj5?6l ó•p 4…´jó‹šáž¸¤¿„ù°°´‘‚¿¿‰çúà`ž™ ‰†ç—š±°¶ˆšb˜½¶†y~—–õf€‚fkÂ10 Œ²‰á4408|œî_7×È<27 c‡Ç ï›íj S°²µ…Påßo74Íy <4507l„˜™TiÙ鈶±¶½¸³Š´µ»¼‰•o‘¼±µŒÏ™‡™‡Ã‰‰æ…Џ°Žƒ€™²¿ˆ‹îss”†pú• 4?0 Ç67==440‚Á74tq ;& cý†ëó‡‰6K²°µbf´è’„7 6”v>=5sú0:ß¶´±¿‚ž¶±‹D·¸Ÿ…»¥‹=•š²´ö”úƒ–µ¸ŒjŽ‚›½»°è63‰„ˆŽYñš 2?˜ Xœi0 &0= ’W4  …Í 1˜„Z=%DŸ²±wàxb5ˆcç™ö‰¥»³’5a‚†±¹ƒ= Îs Ä‚”6&%b뛲¶í䌎„ØõŠ›w‡€ì޾±ƒ1˜„¶°˜~ëš—žþ†‰µˆ›e€¼·æ ø°¾‰êõÛ avž2$!;6 1>57è”—”11²¼³‚”óokñY“´°º»±êà€ž˜´µiÍœ²¹CmŸ• ý;Ž´‹–5 nN]³´g4 áʃ¿7OžþÈq}g‰ïƒ¶ýɵ·ƒ´ƒ6264 =Ê~±‡x…€·ÿ‘¶³¼?9=04È[Œº¥´“jOº »¥¥„öÇ”Š‹åƒŒ’oI7%'##&:<“жŽ;&?7ó5ÐŒ‡Š¼²D“v7 é]gC80žäcµ¶¶¾·–j`faôˆ§ºº³1r·¤·`“•Jï5%:82 µ³¼‹:%7 Ÿž‹¸·òiŸ—f 6›•œ:: ‚ˆ™賺¾† 1bê}ˆº¸²²i7‡€Ãéó\“x8%77=2…¾²Ž%3êŸ _·°€n“l oŠ™ö3&1Ί‹ü„¹§±¶…nKèï±§¤²z5k°¶€ Ô’$8 5 Ц¶š=:? ‹·†ƒP7ôô0†1>8 ƒ°ä•¾¦·‘ípÑѰ¤º‡`‰ˆ—‚ü9$3f6𻹛 $0ç‘d6·¾Í L–…G„°u08;3벦¾ƒÄ›œ …¦¸ïÀâlž²´‘ë>$631hkº¿e4=2× °C`l˜‡õ62ÜŒ$82 Ž¿¶’ƒ¸¦Šfø~èô½¦¾ëµ±œσ’60 65æ ã¹§‡77áæ 6†2’ܕЕn‘Ž'> 6l´´Ž‚½¤³€èêžø‰§³`Ê|Ÿ·°–›Þ8!7g ew„³µn=64e[fë‡4jh´o9?n‚·²³¹»·rw†ÆÅΗ·¹¥³Ö“Ò쎃~f37”Wb‡´y5 îödj2=ç ß„œ„a5%= sо¤¹½´„€€Žk†‰´Š±‰KÓÅ‚·ŽŒâ98oö ‘‡·¼‡n 4%%6`¶ƒEnë 34Ç—o5ó÷œ½°î…çÜ“µ€àµ¸§¾„™žp ã´¼‚ >0fêñ6Mµˆü467e…` 50×j27„³P445kÛi€º¦¾’óŽ´³ƒŒ¼¦¸‚ä•åE Ÿ¶’ 0k‘c S¾î 7$=—ŽŸ>1R<=m‚€= phä—㕌¿¸³d k›ƒ‚–e¶¥¡¡±èzÜ ?Œ³µÕãäéZ7 •ŸŒz  > ‚…ð60 4Ç 7”±7fÊ ï³¥º“›´´µá€½»ºµè–†‡a5ˆ‰í%=bއî´°™ 84 02ú´°6%<?;…µ‡s’L …²¹ºÈ3Ô’‰Œ^s’н²6‘6s¶±€10ê•ëæD±¼¶„ 0L’ 5´¥°7]3ƒ–Ê>=ç 6nˆ‚w1$9gT¼¹½´{Jéb^‡¥¡¸·lz¶¥½¶‰´§¤¸¤·}„Ї™áŸ¹ ¤¹† âf 12a¿‹šê6 54æï44îxÆ5~…ú?'4z 07nŸ÷4=;>j 30 j6=%$1 5 Œg4?<6h†Ž‘r7ôd€´“<6M´›œ¼¡½›_ôq‘ú½¦¿±€†€³³µ¶¶¶¸¿žx•ƒµ’„°¡§´bnÕ‘~gš¿ŒVÎáåDJ€´u77{ÿ–lê´€o  m‰Œ48'4 …›:%57 o޼œ22´·ë ÅŸfãŒ60yƒ··˜ˆ€¼º‡j o㉿§·—޶»¾Žý”iC˜µ´†Ž±¤¿ }šÎ…´Œì4…–vÄpÿŸ€Ž;&7û‡`l…½·80 e –Žœ5?7ŸçÃJ %4÷ 7š”?= a“sð‰2oç´úosèè7> î±¹²µŒˆµq N“ú·³³µ—„¼±ˆ’…еbŸ†±µ°³²º·=4툆ណƒb J•„˜| 5ñiú€é2= qž3<7χìi =4 }~Íô˜–1%95•çõäúÁ 4xž’pþ‘œÜ78 å´´‚“†ƒ‰I›¶¿‹Vг‚ ô…¹¾´—˜…ŒŒöµ°²¾±Œ`—€Ž…™•…Äpicƒ…}0ƒŠ’m66 4•ã|˜î1%2”pÅé•t 4 î‚›ô8%>‰w23 óð|Sƒ·ž`ëÆ`66㉌„‘{÷„†ýkŒ²Š”z†ŒˆVØ·¤§¶…¼³”à·²°ƒì—ž²·ƒgI·¥޳ƒ4k´²x œ{7=$î¶s3 SR÷503 qŸ”j65ˆˆ 985ž½‰k7‰´z7…ê?!%··ì>%”•i 倂„ä `†‘a¹·090”¿»‚ å±´–Óë{Áq—¹¡¥†lá·Š€‚’Ð~Ÿˆ°³±šDé´ë`N…¥³3™¥¦™3 €·Š45 ‰˜5>  j10 i€Ÿ3 Çh12mƒ…>? Œ»²5;ƒµ’wa6 üP‘‹  1ëÎ61w„Š·6„€‹½=1§´74¾i6Ë¡ü…Ø1¿¯?¨07†¾ % M± ¶‹³=¾¤%%¢5 $& ¥ë–¡¡§§¤¦³ëÉ´µ›è:372>914>&$3…5 >o°´ê°º´¼¦³¥£¸¸…㊕l =8$!$'$09! 00;8>5<4’²§§Œl”¸¦¤³±¼½€…±¸§¥»±„¼ºº¶°½±ñyÉž48> 56jÕ` 2 •½¦°Æ›½¦§»½‹ÜÅ‘A5N†…úžq41´;> 3$:þT籺±eb§¼‹`ê°³† 51nþúɃŽëSâ{¼½‚o^Èåì07549/#5 448 „ž“ûh·¼Š¶¼¡£ ­§¸º¿¤¦½°Œ±¶´Q521>>= $!:ƒÚ4x°êiž‘à궈™QÊ 103jŠž7Œ´Žž„²´ÐÇݳ³–4”üS'%=335=276 1 úÀéàî´²¿´š¹±µ‹´³´„þ³±û ”“?: 2™µ›æwå“ò‹±™Šµ›‚¹¤»‹kŒŠŒµ…ob 6…÷32ñl 61”†Šƒ6È—‚ò ]Èc› ±´c44–Jù†”31ð‹™“—Q• i`ü޼éàã 355j‚Â5$>c‘ …õÞ·»¤¼‹³§¡º¼³ˆ‰‹‚‹Š±µP f='?<0623 Ÿ·œ µµ½½„ˆŒµ‹±°¿Š›³Ë 1 9;4Ê0;4 514ceèšš¾¥µá„¥»°¼ž‘…žfk 3õé0%18 3'%0žÑ 7g’Ëtì´†…ƒµ¹|oPŸ—Anyƒ 6äšl…[蹿¤µi˜€²Š—„‹êе³°faççÔŒç”鈜3LqâT51 à4%˜³b ÅÔä1‡˜‰±·Š‡w…Ñ‘ìm”†00 3045%¾¶žóŸŽ‚ŸH•±‰Ž·²²î—›bi27 1Àµ86ä–ÐÕל`³¦½„–Óµ¶ŠTÿ°‚µ¶¾™ ~^4743? ä°Ø 1n 1 µŒ„…¡µValNa 7°±··¦± 2=h‡ˆ¸£±˜Ž'27Ý@ì=µ³›‘± ¡ê“Bù0;%<7aºá1fao3?>çõ 3nŒ“Ìš¿³Œ™Œ´µº¢§±·¾…î=5o ~Œ·9™h6 Œï9'…=3=¾·‚¶ˆ}{‘býj {6J–Ë–±´ò%3æ…œ„ƒŸ±¹¥˜6@°¶615”²µYµŒïú´q‘ 2=2>03 †°Žh 43‚³zŒ°ÿ”¼¹…5šŠ‹Š¥§±³¼±”  43޼‡7677ƒŒ04Ò€g ó³¼áœ€™ƒ”™‡ƒ • …¤±7 C°±Ž”€»±’ìŒç5261œ¶‚deärˆ460 0µ¿· 4 üiÉ3Kµ”qîçfÙ7‡²Ìf뎴¿§¤´µ°hœU‡¥¥™0= Ød64ì1Ñ g185€ƒ j…‚¶‹iêëC•òh{˜²»Œ²¤±•²·ž†çf731 ²ÞŸµ‚ 47=4m5ñç´·dyeöŽ´5Å…“àuè 5 4ж†˜´¿¿¦½‡€ünVš’0 zØëˆ¹  ç†w0 íz–4` 0 –š<0|˜üì´·éíù”‹ ?1㜉²ŠV 朄–³¡¾Ññ´Ž±ˆêaå„“4?l•bšƒ4362 àú=; àµ\ÏØ bŽ–€šòµ—73t”ƒ7µ³³¦¦½™™‘me³j4â¶¶³„5fá?”hLö331 0ùeŒ¶·³Ü†µÉ™°¿°±´˜˜…¥¾î曘 =y÷ëì6:1î8$™€°Ù13”j7‰—Tv뀶‹7‰³Ç …½¿‹¾¸‹³ˆçƒ¼°Þ5P„Š´0 695Øéb “›?% W49 ‘Ž‚µ›ã‰ê05ⵘ 6žµ»½ÛÓƒúbኈ‹°‡á½º³^´±;=î’D×ß`RE7%70=5’°‘?1z@kLn‡› ]½¾… „±Ž6Iв²±±´³¼¶ƒ°ˆXhq瀸²=%//-:8? üjðµ´µ¶¥¤¥º¶£­¢§¡¬­¢¾¼§ ¬­­¦½¶iì–‚þƒ¹°¶ ”·…RŸÐã982745&,""#!$: "-':9!-- :!# $467 993 Sd†‚36—޾·¶¥²°”…µ¶´µ¤¦  °³¹º¥º¡§¸¾‚´²¶·‡¶¾½³œ²¾§¼Š½µ¶„aš‡µ·µ°µà5ìá‡a“– %:=506: %6  72> 184 $<534:3 6= &?772&8bŸàça™…Œ÷ã°±½‚ž‡´»º §¿²¶º¿º°°§¸»±¹¬¢¡»¾¤º¥²Ž²±³¶‹³¶´ïrŒ„´‚±ƒžz4GœšÚ†õ?=0953;9;5 <$%20?;<763%#84 1760<%4 6461bŸ‡W1s}‰Šƒ‹˜GŸŠŠ·µµ´ˆ‚´½µŽƒ‚²³°ƒ¶…”´´±·ïÛô´½Ž½°±°Êc™½€ï–õ—G “Tä–ƒImãjÊ”†žmúdî›`cïKcaañ€À”œa˜ìáêú•SŽ„B äÊ÷¶‹– lôhå‘yäí3<÷54æì{b24ô|îx 24n15 3101 4$ ˜“b536‚‚|3í…샚‘½Šå±¶i€¸¼°´´¿·µƒŠ¥²ä޵±€´¦¦±ŠŽ¶»´‹’¶§¾Š•·¹µÊ•²´Ë—í‡s 7·01ã…5 ž—522o 1'63< ð >2264 s” 71„³š›´c6 ¸´š˜âž¾±oc‹¼ˆƒ¹°`û¸¦‚¿¢½„½‡P¼±X`뽊m¤³ 3M³´o·¥“ ïŠi3:ð5åæ 6y€i5u0'>ˆa&&5n9=120ž˜7?Œƒ <œR?$6Œ¥0k ê¼’ö‡¹½“¾éᆹ¿—» ±„‡‰°ƒ`á´‰V|“îµ±…`Ü€´šü±¼l䌂ö‹·æË†„–´½ qµ5‡¶J<:™ç6$1äí5h24 `ä>?280˽ã9< Õh õ˜5ãê57M‡aKh ôŠ´Ž5›“–cP‚ºd•±³7§R7ý¿í»5鳤½=làŽ÷?ß½ºÞb³·úœŠ·1ùµ Q¿€íŒóŸ¶»§°·¶¥¥º¹±º±jVŒ‡Àæï†ŸŒ<470!&,$'/,#&",&&8:&:0=;; žø>&$ 084—Їa“½º¤¥º¡¬®§§¬¢¬  ¢¯­¦·‹»¡¤²°º£½áÈ´±³˜ešjá163991 51?1? '2 22 461jšéЉ‚15€êƒŠëRþž€é‹¹¿’ †¸¹ŽW¦¡±I𹡏Œ…°½Šæm“€•w:: æéçé27‹ˆ0 wM605A =?%!=  zñk0=ßâc26 20êéä’b0 N•ŽŸ71˜¸¸ƒjЄ†HÜ·¤¥¼´¶³Žàœ²¿ŠŽ°¾¿ŒaÜŠ§¡³Œµ¸»Œj¤¡¥¼å†€Š¼¶…·±H7“ˆ‡ 62'%™Y?<12<175 41#,&3? "=c3%87==œa4<”4ì¹¹š 7—s³´3h²¹†–¼¥¹´–‰¿¾Šƒ¾¡£¸—¾¥¶—Œ§§‰yµ²Ž‰¹¦»´ìµ¥¸˜¸¥¸‹\—´‘LŒ¥¥6jÁˆ†a72ì7 [$&û3%z6$:50%7óú6!#? 3$1k6&&2u30jq1:4ïᘴ½Þ‰›ž²¶d< Ÿ†„å¹¼ƒ†¿´ï½¹µÌl‚²ˆê•´½‰> é‘5…¤¾›46¶Š–޼¿µ¼º‰–¸¥‹à´Ž4VŠ‚:1Øô5áÚ:; í9':Ù ?4{Y2'?45h“Ð52„Œî=6÷ˆâü°±—°¿±šëŠ·ŠPŠ‹”—²º„7æ²±“Ò°°ä37„¾´õ”´‰æ]zóbV„‚šmšg´²’nƒ¶³Š‡·½ŽÃLˆ¶‡Ž‚5 mçëçêžn9'4ïüîœ27wq=%?Ô 36y 04Wé?Ų¼72‚ží 炎˜ú–“ï 0ã“è—Ç€‡‚• ‹ƒœç –˜›µ½„ ‘·¶‰Îꌱ·Ž„´¶¿½ƒêvâoøx}lR499çâu74m1 í´ˆçzYÜ™éÀ̱¶‚‡a 3ƒž@‚…á…¿¡¡¼èim}›‡ã530676 59%9í—  ß…Øwm[‰¶½²‰Ÿµ¶‚ Œµ„ ùž~¾§¥³†ãXú¿°ë43 ô€c7=2:?jð  “µ±–^yF„¶ŠŽî†—• j™½º»±°±J ‹¸°J  5ï•1 6?6ÈýtÍŸ• •‹€7ïn†¼¼l†‡›„³šÚ Š¿¿˜súý…úd™½¼‡ 4 ”žælÓ2% 𜖋tLyN›±h’탂¿º¶S10 s ƒ½Ÿiè´´„sК°¿‡‘ b€ä0:5 7 ”:9”™þþ’býžjerê°Œ K™‹¥´i•m…±žv’Œ‰’•…¾°…k‡·–7·œ793wê~ˆÃ73 —— F˜6–™ím‰ú ešCkЦ§±[ûWÇœ dŒ¶ƒ“å²¾‡Áÿ›Š‚ùY„µŒÜ ~4™c6<5ËnÚ™æ 82‹††¼±˜z^k™ƒÌjæžž·š0 ’•Ü⊳´Ÿ¶³Žvüë7 1 o–8% Ðb6 g•„O €œ||’“1…Ž ÇŽ¾ŠîÙ“±Œ’¼¾èîµ·”Ÿ–€¶›sB˜·´‚·´“kƒ´M4 žž;8Â’q6?64o@œi…´X ñ‚žjž—ƒ´y7íá„• €¥¤—³¦Š •Šì C3<=  [ì ;æígƒ±D44މç4dh’Ÿ ââI›ˆµŽ–±ºµq´¿½âi…µ†x父ƒð27 16fµ·?0Ü 17|}13 õ‹çÂC´‰•Ίpeµ°‚3o´‡52±¹¾ˆæµ‹üˆ³‚œ‹Ž6 6=9 áÇ2%?›ei†é ë†žà„–L”¼½ óã694ã²°Š|¾µ hµƒŠ´ˆÜ„½º·r·&:”i<9„=4š82îÇ6<‚Ÿ`€0:4Š¥ˆ7•°á ‚¹¼€ãŸ´„춉“l´¤‰1±¼ŒKJ±±” ·¿ì>r 044´#-¿¾L%ˆ± ¹¸…C ¡: 8dŠŠ%‚žµ$94¿ìÀ˜¼…22¦³`{²³n1´æŒ‹48 ·¹ƒ´›;?³¥¶†¹± „¤¿…•Œ¥Š;„h Tš•%#"6@2$#$?$! 3”d1 jí18´ƒn[3<˜º¤»¥£¯¯¾âµ¥ »±¤¡£¡²¸¡¬ ¾¦¡¡¼jŽ»±vƒŠìŸ·°d>#'0?%99?:-!6`'$$%'",!07;931 9&: 37æàa5¿¤²„·Œ‰„hž²¹™‡°³³š³º¿Œµ·µ‰û¿¢¡¹¼º³´‚•´¹ºµ–‡Îb7—™}œñÆ 7Xèâ5 =545÷îo 27nj10<98 †ƒá7<2 ?03>9<m–?Œƒïp4 ‘ˆžooá܆•…º»º²»¤·¶´³¢­£¦±±Š·±´§¡¤¿¶³‡}ãë·¸··Š°¿ˆ€ò‡¿±¶Œ…ç yœ| 3610y~ 71=$$;…t081=== 60=<$&'?671 15ïé5514š‰ãâñG…´¿‡áˆƒ‹‡gvŽ¥¹µ„iÐâz⻹‚µŽ‡ƒî™µ¥§ƒœ€Ž¿nÁ´ºˆ”…”›àø·ƒÇ„‚’5{në 5³W 06„ƒg  1ï‰ì`ï–‡{·º²ŸäXh±´bp–ÿh‚¶µœ—’ E¶¹·dÎñrÛ±¼´˜è3? ;þý 2 >5æ2= ? 4‘d1 %571U0?53`„;5 ’²‰1YƒŸ”깿‹´|•¹¹µ÷ܱ´µ±·¦ »…›¥ ¦¸°¦£º´äµ¹¶•´¥¾“ ›žv焼‰ ·µê`|½»ƒ™‰l55ø€='<63> ê ' >z70€n<97’ ? ‚‰$'538 œ€:9Ÿ‚º† aŠî ì° ‚ì°ˆ12Šb„»¹Bƒ¹€e¼§•³ð€º£½ã³±»° ’µ1cŒ‹80„l }´½|7 íµƒ`q·Š9>Kp>9 Ù%%%26%9šî?$0…—²±{ ã†ÿ4Žå1 bœmϳ¤°rm›·²‚¿§¼iA‹º´Æêµ·j7775€Šù1†Šÿí·¼‚ÿ‚´ž–¶¾²”dõ†‰—à˜ˆ‡5Lîß…‹?“à ”Ÿt4 Gð‹´ê7<ÛIÛ›6?7 25`K3?1Ÿƒìã‹ìµ…t j㓉ëûHŒësÍn€ƒæ¸¼05¿ ½ê¦›´…µê‹zŠq  ŽÿŸl‰4icaKáŒêý™’ƒáôî—æ³¹½…Œ‰±Š°½§¤º´…Œ‰ž÷”ë<9$;!, $7<$&':'&#"$>$! $>1 6ÈÅ4K›†›±§ »½¥¡¡£¢¬­­­¡¦ £ ¡£¢¤°ƒ¶ ••:2ãô¹·yCà =>4%'8478%=e%#$ 88Å9%1h57€Y43aU€¿¹—“±¿ƒm\Œ²‚ɉ½³´µ¸§¹Œ´²¼·š„¿¸³±™„±¥¾ça„ƒÜ—µˆnm–†mo´´÷2?–}20å‹“>&?5>!$69#,!12:1ÙM697ëŽ26tƒh%$4c}5lP2û÷”ƒ•4oµŠäj𥤋säµ½‹˜œ³¦¥´°¤»´±º¥°ü±¤§¾¶¸ ¡¿ã´§ ¹„ž±²†•„‘ýΉ´• 6w‚m65ãµï62†‡81p”4%0='8 =!'31;!!26$"-'01;'<3%0yœFÏè3û›g—°¿‚û·¾³áý¶¹³Ì‰½»±š‚°²Š“°¥¸±„ˆº¹‰‚¿¥·ö˶½5ˉ‚Þ瀷œ’ƒÓ›´†3áú4;6ÈŸ<=J3<|27V„˜Ädù€xʱ¶f7›˜4’´ð5a—i11ìRk´±†ý¶½·’“¶¸°“¾°ãè·¶Ì”ˆ±€ø÷жƒŠìñÑ23€…4 i3% X×1841:8 > $ 7'$~48?19ãó42Ëo zˆ‡7 ö„îа¹ˆš½¹¶ƒ¾¥¼±½º»½·±¥³„„°µšx…¶š|nü‹°´í³¼Ÿˆ¹»¶ŒŽ¸»ú‘Ž„a޲ g‡•e€÷ ì37õc1<`r3273=62<46?1 <>0j 4÷ •çoÂè”Þ}ÊŽ±Äg޽±‰…Œ°‹š‹½¹€ç…„sè…„ŒŸýÀža =1újžƒûgL„„öŒ€„ˆ±·Œó€¶ŸÖ›†uÞ—G˜  4 Ñgm :%6 1h 5 frNâhHúš•îgv홄™“lý‡‘ãp†Ÿ`jâ‘„´²»¹ƒjⵊ††ˆ±‡ÿåM„íãgž5ú õ†ß5iø|mm…™„ƒ´¶±†eߌ‚†‚··°0—ƒþkÚ†ã ñ07o4âà=1nDM0gê‘ q„üT³¼¶$0‡°œZï’–Á4 „‡„ÓQŠš †Œé—• 6ŸŽ>?꺧µ7´¥¿67œ½¼±”kް½B“¼¿º´d7ï°°‘S½¶ò‚ã‹·`68Ÿç =8‘:$=$22$'8™µ1?9 x6;‰¦´>' »µd‰6š˜á‡¼¡¤ñ0 ²§°²°¸¤¹³µ¤¥µµ°°‰h4<夼5ì–?:7ƒ '3´¾å1¾³7?§¶ 9§¡÷: ½¡ˆ9¸±øžê‡‡…417’Žù7··2œ‘?!?‚d“;'µK2æ”76h$8·¤‰ >$¶ã¶¿ˆ>´¾>3˜»µ5‰ ¹ŸêŸ³¼±äé³·‘º¬¥7·‹jž1 %sƒˆd66–ƒ5<˜¾»’05ÿ·ñ u—æOVƒ·‹‘€†î†Å7㸱”4 ”˜à`~ƒf 46nîÞ½½'>Dœi I ”‚ &>d’<' ï†7 øŸ> Ÿ°š1Њ·„œ 犷IoJ „·´¼²·ººƒš°¶àí„P 4 5F…d›·™ob™`牂 bµ´3ƒ…„³´ ކ‰±~4î j±±ijÕz44ä‚4mafqzë’a Aà‚„ 37mdk™ö 05nl^…éçr‘Œ½½™’†dkž¶°ållj²°Š¶±¼¶ˆˆddsŠæ5  H‡Õ=24䘜lÿ„ê d››òèãyäÚ‚k „‚üJ mæãÝ”õ—„ zÙZ`IhqÑ–‡…⃙xLJƒÉ tf 6€µ’Ÿ”€’˜¶²ŽæŽ×™²ºŠšƒÄx´·Ö^s†æ Ì€µœ4–ž’ÆÐx6‚ˆšØW™°¶œåâgžŽæ01zaÿ„ŸLfÈ ƒ‰‡053Šˆ?…’0o‹·Q17Êõõ?367ï¶Œ7”—k޶Žéß뇚õ޼¸‰m´¼µŽº»Šãä⋳… –ƒ„h€²¶?bŸã7´³ú8?í4 ·³š66”Š‹Í·¤¶;â…ÿ z´† 83äV ·k>7Úß „† '2x•Ÿ´½ú>?çt 2uŽç2%†Žr0²µ7&0·…³¥›?8ò·’о€7‡¹¼‡Í¿ ¥8m¾º‹¼°9‡´–”¸¹2´¿„j³¿i9>i·‹o •³ƒ4;Ž`›½‰$6·°št´Š7-%‡¦Võ5 °´ ¶­&'#Þ€%:1£¤ˆnˆ†m ϯ $'$ ' áu›š¶¾ ¾˜Š±´±„78‰9'$j1&'36b“dz§¤¤¦¡¡ ¡¿»¢§°b³º³d3w4%'#8>;89;21˜ñô¸¶1˜µ›‰¸§º‹³ ¤·ššìÈhÊ4=74 9'$>&#& &#'7g j™¶µ‹‰±¹´M攌§¿ìE‡½‚ €‚4ûŒ³¿´µµáž„^ܰÞ<  7cа…la’ƒ‰ˆµ·¶²¼¥¿±·µ½¤¡¶·¼°µÊב” 4`43678;9=:%1 œ‡êzÛz47Œš67…€²¿°‰—›¶Ûõ²´îpj e›ä>31$%?%9<<8$4 ñWl•° £¸¾¦§¦ ¦¤ §¡½›šŸR生çn{•306ùb '> = yibjî^˜–”Eáœáµº»°‰ŠŸ‹¿¶‚‰¤¼Šœízp77?='$!!8 24yåÙ46r4Âê_Ûe„È’ŒŠ±Íóä°°•é´§¡æaí‚‘šh‡ž60360Á564÷€‚{äæ±¸€€Œ»¦°²ŒÑ–™±·€— Œ‹‡êm‹¹¶” àƒ“OåH½±’Zâx0 =%%= :"$ 532ÆƒŠŒ‡·±º¥¹¸¹±º¹¶ŒHý˜š=8<47$': $"':1zê´”›è濤³‘І‡úv›¼µÇouƒ›g†”îéž¶€€µ‹¤¼´šGж†sê´ø73 rN7747€Š’ÃòµŽ´‚‚³º¤ƒü‡·‚þ’†_â4<207019,!>37;< 92ư…z꘳ó„ÿè™·¶·Ò 0<0œ<91G“Œƒi}g‹µˆ¾¶‹€µŽ¼ˆ…†¸°›5îŸ æ’ƒ…u ˑꘉ‰þ΄µŒî‚½¥‹N=f‚Ð686mk œç´³ˆ•Œ¹¿€k…™áã` 30>$?168!#%5%1…°‚‱´˜ˆŽ‹‡WšJ•ì„S==61ž†40v±°“€³±¼Š‡’ˆ¶·²¸¥·Š·µíùìµ³…=3W„`Õ@ãáD ’ïñXú°¸Šh7·½k™‡‹•6À <9 46=™„k1?øŒ‚™šï5f˜ž› ÔSrf‡a0%=ìhcÿ >žöMdÝæ‘“…‡³¸¸°ë†ˆ¹º·±²¾¤¶fNâÒå  0 dšÁ4홇´‰±›“g’˜Šµµˆ–_åq„µ… <2 mA 36âÐòÚÊdíùޱˆŽU™‰††‡Ÿni5< X4156:$$ij0=4•„½¼¿‰Š²·¥§¤§¿œ‘е™‚ޱ‡|[瑵—1<å„wž¼¶ŠŸŸƒš³»³‰7kåm䑉¾ˆ0392]ix065= lw;=‡½ƒ7ÃBã˜72?ÿ°’0 ô’† ˆŠ?$9<>1yD 17oØã½¼€·¿½±½½»¥¦¼5r´°·“ƒŠ†àçc–ƒ“´“ü‡ø´º»ƒê‡Œ²–ë61ãï“aí‘5޽–>9|€èagø…;<2Æói™ˆ›edÁn›‰ˆµ“ l3$íÒ4?5pu5k 5 þŒë7bêæ`ž´›5G´°¿Š·¿²ˆ’é±³º½Î•Ÿ¶†à15z‘†Œ”Á—„›ˆƒŒ‰i Qž€üö´‰4=5|ŠÏðtŽš 6t·€Œš“ü691ý“o03vý 7…‹Ÿz€Á tálfdîg<:>O0 –ž9>‰‚„œð@ïZ ñ’‹²‹vx†±Bù¼§¥ˆâ‚¿º²Úd‰°°ŽItÃç“à65ÊŽŽôöƒb=1j‰¹ᜂŸ42‡ƒ–âMtí}cê丰~–±ž6=‚µ 564k6c— 2>ƒµèã†0!2œ 67•·ˆÊàŒŽ7ý½¹Œi‚´ƒÚ™Žµ†´¿´ƒ´·—œ‹¸»¶JÜ›³´9²´f4“Že †Œl dŒ¼µìýŸ–e–µsùålfoí‚´†ðò;0ï™Ø74 1= —–À50w6„˜H 3  ?0iŽÃbh ”µ·›”‰‹‰áò·º¸µ‡ë·¶’ዽ¾¼‹††œ—“DLƒ¶°µæ 691ƒ a œ‡Š±µoF„‚ÉX…Žäs @ N˜´·ƒï~±Žç45=91çŸ<992 506ç 4 ~_ ð´î4 ob탵·‡—ï‹…Ml¸¡§±€•’‡È—ޱ½±‹ìnóPÞ—½¼‰ã cܘ3 ö…Žˆ–Zw‡…ìkŸ¶¹ˆiK1鈱´e43 Ú″µo ýz 1ëƒP?%:=1=3057 5qÇ c¶¾µbi54 ·§²‚ް4ˆƒ§«U­:’¶¼ˆ`Œ´„œžg·¡Ž¿;¦%&89c 0Þb缦¸²ŠŠ»µë›þ~1'& %>í6d‘Ciëµ¼£¢¡Ü–¹¿¸¤–‚¥º±5h` 0=?2: 9>'-'!!% !%fž<3`€ñ5±§£§³¾³ˆ¼º³°»¤§µx<6ï‡25a?&747Ò’ŸÍ臌†‡—‚·¤ ²ì„Š‚5¶§°—eÂ`†‡è†´Šó773e…5; ‚› &ÚR<%4’µ–0T…œ_‡æpµ¿¹°‰š‡ˆ°·™kÖ²¥¿Ëhl3;òD%' ""#93;1h4985—Y Û¼»°š ´¶ŠƒžŒµ±°¿´……°¤´¶¥¢¡°€‡€·Œcî±ù0928 -'?65476;&2…èѱ¤§·Ž³º¤°±¾º¡¹´Â…Ññ|`šw4  1V¶€ó>>>2 0??•ç?%=6hÐ~›·¸ˆ“€µµ“ˆˆ¿·„–†  ~o2351ú±žn2äaÝEs¶±‘ߎ‰Ž¤¸µ·ˆŸ‚ድž‹´°±´™›´ˆ™ë™…• 099 1 0&;<22=Œ´”q÷–ˆ¸·¥¦»³’ކæìë›rL” <2 kôfUé ‘Ÿ63$&#':8 6 9=eœ‡·¥¦¤¸¥¥¸  ¤¢¡§¤³¶a—Û 7 652=60<11œ›·±·g„µ…ƒ‚µ³·³ð6ÎÇlî—ü›q6l÷ü‹ž\“Û™z†‡a´Ž˜èÏ‚ÚL5RR 4 1328:2 çTØã LJ㷤¹´‰µ´ƒðg…í‡ì{ 4 6989$40==îCã·°±»¥¸¦²à´°°›„±´æ680 áÖÇìà‰¶µŒUŠ™‡L–‚ê†ÆO f“ëö5 ~hh†\6?lslãpꂇjû°²·ÿt‘Ø6•b<95?= ?0e ƒˆ—Ÿ¶´¹½¾¤¼‘ˆŽˆóhî=%?<5653 Gû’‰´²a޾˜ò³²¶™›Ÿ“·‘¶í`“ ˜ 4u‘Œz7 ‚±3‰´šÅ·¾‰µ‡fxš°êĉ³“$3’Ð ÿ5'9 W;5…˜rfè膅‘„œ n†€ü ±‰0:5ŸZnj4rk6<1…ƒÑ•µà= ¼„ñÊb¶°¼…3¾‹œ²²‰œ’€‚M‡í3=•‰ò15êh 6‚·gޤÞ7¶¹‹…µ¶dzô™‡Šà˜‹ß;0Ž´ 95‚0%3Õ°b<‚<3¶íÖ“36‹â®±<05¥µ4§¢³h · "’˜;9&??"ššvJ±¸¤½´Ž°¡· 0b¶– :32?1”sgs 0µ¼àã°¡£¡²’¸º¤»ùž°¸Ž7>7 06<9?7 9&'ƒß13I³·li·¿½žf¾¥»¶¾¾Œµ½¦³Œ·¥´ä526 %!$ %!' $0<6=4ûqf{²§±‡Œ³¹½–P‡³‡n·‹éJ”…™ž†™ñhœ°µ‚a 7G€g68Ÿ„1&!$ 1$<àîvúв¿¹µ²¥¡¥½» ¡‹°»ŠDnef7?= 7>!8 1$2ž˜j 4|œ†Æbè·³…çov‡‹Œ•›µ¿Œ÷œð‡¥¿û°±”é“3>5 3<%'%<> a $'6 6;> a1À´¸š‚³²·‘ë¶¿¹°Ûvôì¶Šû噈·œs–ƒŒÝo‹Ž™o`æ˜<4>':1 1<$$™o5‚†‡—±¿§¢¥²²·¤¥¾³‡µ°Š• >? 7$$%148"$<` 6s‚²„™ïŒ¾¾½žr–¹¹•jĆE5‘‚•767Pæqbµ½¥bÎÀ³°’k†°23eí34>=7›•5n‰¸Šë茽¶°vާ¦½‡z€Ÿó5‘“%::920?6rå–7>‚½µs³²¥¿÷ñ†µ·³ƒOœ>850!8œ€ 3k„˜ábe挦²°šò˜Ž‰˜„~‰´´Ã=1 ñg22iÛ™38Î[þÞf舱”g‡µ·°”Tˆ¸‰c=’22Ë…þ 64  ´²Yʆ±¤°·º¡¤Œê²±µšíeÙ” ==926<'&?:0˜†rš»¿¼€šµƒ•ƒ†hé…³·42ã 64ʼn~>8aöw\oéŽg炟˜˜“›ž±¾@ƒŠá €°P=öï•p7ñf”°¹‚ †‡‘‚´ŠC„k˜5wà05×îÐ4ù„€•怱ˆrß[ùðRô„°b07 ’Ÿ =4g”Ùnñ†ÆŸ‡€„™’†´¹¿„êäœcjÿƒž50 5 464âç„v”ƒ»¶€Ê±Ë3¼6¤˜¼ÛŽ$‘Ï3j6`5¥°²4'5€o9k½°=8·jb$ „¶´“€š‡6ck¶¼º¸¿ƒèµ´³½±›@†Š¤º¶专%:5Û'/#'3<& #'4i :,#85 7 œš†a½§½´±¶§¢¯¬§¸»¡ ¦»¼‹¶ ¬£²wA†¶³ÚëŽQ1öã<9?07 6;!&%$'&!&&9 %-/"?4<=4a€ž 3 Ÿ±ˆng†²²‚÷†‚†Ž·³º¦¤¼°¼¸¦¡§¥»¼¼¤£ ¸ˆµ¹¥º·…˜’´¤¤µŠ·ŸÖ€“17 4  >?162>><;9 58&$9459;%<Å;#&67=27al 06 ÷ÿkó˜’”’€Œ±¸¤¼†„³¤¤¸´µµ´§ ¤³¶º§§º³¾¾¡®¬¡¼°»§¥½´²¥½¸¥¿µ’Ïëïç^Ååÿ?<473?6rÛ:!: 4:;9>641'.";649%8>?3=??002;84dg4?4cç¶¿Œ¼½µât¶»¤¼Ž“޼¼½²¶¼¼¼§¦¿Š°±‡´¾¹´Œ¶¼´ÿiàƒ··€›œ˜Ž´†j5 ˜ŽŠƒn‘µ;9ÿ 4 74 533 4f›è jôù1<4ïµ1™…Ÿî`cOœ³½†°‰ïk“ˆµŠ†ækí•ð†’˜‘“¶²Œ mþᆂ€ë·è3>l„†••„9%5ñS0j5>=32454=<t3<60„‚24Wäí”?δ¾€ 0LŠŽ‚€ƒˆ´¿»¾´ð”±²ƒˆ·´¶´µ²½€ø€³·½¹¶‰šŽ¸¤³qŒ¾¼¸°•Ò‘ˆ½´=‰µ‡‡æoïÊ7EbN“ x3<4f”j2; r=6ãëh0$<`b67Ñ‚x1>îïþì럗o Í൵àbkž‚3 Ÿˆ·³”zh•‚ä “¶‡jœ„ëXµî›åLæüô†ƒüô³ƒà†é`—·¶î KBo5 }Jð‘_4=óaN˜èf76â5hbrn`õŒšñh’š ì³°¿±íäîüd•²±’—dâ—ccaÕ€lÝ€“`”•’Wh•›PfbBávf…“{ìd䉈™5ŸôÑ€¶‹”Üio–O䂳°€ 4Sêvmf…œqvÑv}ùïøs3 žŠš Ÿ„20‚³°õ Ë›€L ó¶·Šµ‡‘ú…„6X—šGñžb…ŽŸi —³±†n‘Ž7°‚5ð÷Gаˆœb•€“쇀š€ä‚Œã _µ´1 ûŽƒo7<õã›” Wì9$´±á 64w‘ Reššc–ï“„Ñ í´s1…³³—27†°´œ=o´°¶ m€„b6н‹|FÙ6†‡€•ø’”b愆Q掊34ĵ±>?à¶½›6x‚†èøä]€Œb 4 Šèh¶‰øi÷˜™6Œ±°‚6k‘–šo3 ‚³x=8·¶ì7‚±‡iÒÒy’™c™·Né‡Dü´‹5y…îá< Ž¿´ê5=†ž”õ é·ß4=ˆ²‘‘ríŸ^…âM‘Îãá5 Í„°°“Lµ€1µ¿´7’ž•äf…¿´j ˜µDÜR›„þ€µïõ•b àÿåj0> å†4–ðf34±µÂ €ƒ…ò …æyŸüps•…ê—“”… c„î73î·ˆ†—žšK ¾µiák‘m烵a}Wsö”daåÞ†•d•f™·‚”6´·Í5LƒO’µµÛ •Ÿ€ë dcÈŸb ~½‰èúƒ‰•t¿‚ 7 Ž‚ 4 ½°å æ–†G4ÇŸ‰·žapühÙckz”\ i„þ62´¼ã61o„‹™5 q±Ž?ÍáÚ y‘‹Šyž‹‡šèký¶½ˆ`~’ㆆb´¤³3´¶tŠ»³y6 œ‚‚T ý¾³Ånìg Αކ5F…‘ 5eŽ‹21•Žg601´¾‚4>‡—75ûŒ‰w64vóÑónfjï±´gšŒƒm„¼µ ? Å„…o 4…±·ê5ጆ€YüœžŒ±‡àH“Š´B5zëœ dµ¼ƒ 5rŒ±‚dn굋86èá65Ÿ‹ˆÇOžœ…ñäµ´Ò76ïé|o}4µ²Ù3 „‚r50n†‹k0…އO ù·½˜ˆ’| 3J½·A —ž—e÷œŽ‡4ì€éº²~1 ‡‚44g·´ù0=žáh [o𴶇 ƒƒ†— 7û´Œ7êÂe•q77}ˆ·ž „µ’r`k·¾•6òž†—7„³ˆþê–ٜ̓¾»€ ‚´‘TV„´‰} ØŸù6‚¿‹{j”ößDš½‰8 „”ïŒüDƒ– 76…˜àkaRíá Ÿ¥º•24‘´‚h¶½ŒDk„ž0 Á°¶xfíä÷Š¥²ä4 áçè–€Ž–36„‚l4Ÿ²»‰ ‘€Gm 4¼æ6= üY{~›Ÿ•S‹ð½°v V”íc·ºŒ0‘…H Qä²µŸï„ã–4 ⊅´¤¿Y2?„4 f…¶µ˜7„Í3Ÿˆ±ƒx`heoÊ´€b 1…†™j±¹4^„4 ‚¼‹44ƒ17⇋±€Fœƒä[f•‡™µ°‹á3 îÎ1 …¸½p4?1ä‚›gÒ„¼¦¶35ኅ4”š‰šm Ðão lꊞ05˞冽?%ж€7€½±ä4èà4Àµ¿°ç`óëÀe“µµé 2•€là·°ƒ29‚„1 ï±»·e 4ü×E@퀷±ƒß5 lÿÖnVá„’R =7Þƒ‡l뎽°ž60Äzf¶¶†j 45 Úšœ„|oìÑnö‰½¶„v43Ζyöˆ±„<8 „‡Sþ‚±³›ò{ ‘ˆ‰‡–áæ7 c™‚ž–‡Š‹—=6DšjjG…‰„Ð6“7´³µ”gX’Ž„™˜Ëh55 ngksú˜·°=4t‘cé‹°·Š‡1?7 gƒ±·˜üüâj …³¼€•€‰´ä3?4Þê——‘ƒœ >ƒ‹š\Š·Œæ 6ä íLötN‰½°”I‚·Ä<9•——˜‘€6cìp—ŽŒ‡– `°»ˆ…Ì=4œ³¾µ “ƒÇ6<‡²²‘€â33 g‚µåeœó ˆ³¾† 5d„’>2ž´³’ µŸ 2=1ˆ¿¶C‚°‘21͘ˆ±Šæ`k Ɀ‡O“î 0¾¤±4þ„›9; œ¶²‹w䇚7óš–J‘Á51 œ¶´Üjçêâ4 c†±½牀=<7䎉ƒk¶‡507˜³²ˆÜdL1?°¸»Š48ë—f73¸º 7™’h7 “¶»½‡4ôáo5jú˜´µù70i‚‹š í±¶Žl ”‚8;–°¼Œ a‚€j6? ê´¸²™Eï`52–·°µŸ ú”20Ž»¤´<4hÁL1‡¾§¶86Ò™…2ꋼ´Ü 4á‚” ‘¶¸¶û7‘žN 3 濤›591’¿¶d?9ß¼¥³Â61ù·‚>%7‚¾¹oî›î62Dµ¿¹0 üœ‘?9µ¤»39€Ž_6%7‚¤§´:=K€„44à´¼²ä 0“Í 4ƒ±‰d‘ˆ„3 „¼¤Š=숇2<¸°64p‰1ƒ°½Š}Á’Ï1•¶¹´å–˜ò6‹¸¾5?3ƒ€10í¿ºµ17›—Œ²° @”—ß…µ´™6 ë0€²°]55„ü7 µ¤¹ Ïi T´¶ŒÛ’“Ò}Ž¿¼5†ƒx53·¾‰66™†í }±¿´77””Ïì·±†l ÀŸâ 7g‹°µ` 4슉a4›¿¸œ75g‹Žv72s¼¿€7 K”Á°²·r–톊‰… 5š±‹0Œ³‹234‡µ46¾²’=l‘„çaŽ´Ÿ r›œ7…‰‰‡` „¶„78²»µ1 ‚¶œ´¥±??6”„w Ÿ¼´†[4•Œ‡R‘¶³ŠN 5€µô7 ”·´q665ް†뵊È4€¶– ”aj ð… 7e‚‰ 4’³5‰±5µ²™5lŠŽF5™´àˆ¼µ•17—†Ô —¾¾‰b4 Œ·“52õ²¶r46iˆ‘áµ„Ç 1yƒ²ŒP{´Šù45š±€9··‡6Á—±·c6 ™°· 0çµ¶— 3ƒ·š 5Ý€ài‡Œ€’4é´±‹J†´‚11 c‰µ˜`e^Š´‰ƒxož l€ˆ±Žcí÷a 4 `ކx „ïetàqk—·‰êJDÞjh^”ÿqüô  d„†‰’å–àîD޶›Rµƒå5•ŽŸW“ü 4kb·ÆÁí—Á…¶„`Ù†í7ŸµÍÌçïKoD˜··6PaTŠÆ G·µ nÏè…êw6? šº³nòžq3…°¶ÆbìeL’‘Á =‘³· üÍËísò7´¦¼37ÿ†ä ᳸26êµ¶ò4 ï°´4`ä÷›èù4‚½4Çeš‚†„4‡µ•‡·Ž%8³¼›\æÇvÅ[x4>4ƒ§¿} “àî¶¹˜55 Ÿ¶„5 ⿼0 æ‚€0´¦¾=5†µ– 7Žº´9 ÄŽ¾µ63µ¶b7çð‚¶š0 ™¿‹4N€‰É ï³µ 1 ‡²Ž0?½¸‚œŒf44ˆ¤¼0Þé`´¥Š6ò‰†l·¥ †²˜42 ⿽%6dý·• 4 ž¿2<Ÿ±·±ž7n†·ƒ•šÕ46”³¸—14–Œ“0Ч¾<”–›‘3—ˆ¸‰41mD• ó°·c YN‰œkn³ 4bë—‚04ƒ¿†3?õ€²Ÿ16ñ´¼‚43û‡îƒ·ì Û烀 •“V 3Ÿ½³m †È31†¼¥ƒïMŠ}2…‹…42G›j}4 W„èàˆƒ´Ê11½˜7…>–”Ÿ7<Ž‹·‰ê•~ú3 €Š†Šƒò–Ì6 ï•’‰†bÄœe÷ 3‚µ·4Ïêå0µ¿‚â1Ÿk Ýo —²‚R“âi} 茴“†‰ |é›b‚‡öä]k”‰0µqynO…€{as65„´…–Œ–èŸ4fm3ŠµÍŸ‰ePSg´ˆê€†O‚¸·÷ì‘Ö37á±°M™œe5 îwžµœj´•jÝk곋ûô_|ô±½6åg阀‹“Ú°‰ö1 a|€‚kƱ‚1 va°²ž|…Èd jµº±lãPm1‘·Že…Š–H50‚†o†oᑜ“Ð Y‹°´æg71 p¶¾½Œ …¶ý ?>·’hw‰¾‰< •‘–…à–Ñ  ¹½’ ‘±â5??5ù²°‘a|¶c49<°»ŒÒˆ¶e33S„‰šålmçñz ñ°³†~j’„Ô499³¤Š‹±ê24†½°ñ5rе l’…†’AjççkŽ¥²œo†ó626縧µ P‰´}=;2z¶²‰xaœ†63 ä¶¿ßœå 7o±¾† ý‚‡o73ü»¤š zµ¶Â2:6粺† Tœ†á5 䳿” Ç„†v û½¤ˆÖ뱎4&&5Ф²‹›=%4…¿¥Ž4†Üš¼³WQÃÉn425µ»½1i’Žæ1%0깦´ œ¶Œú?<†·¹74™Œâ=6ñ¶þÓ✇65k¥¸b35{õ2>4ê¿§´2€µ€%3l€¼º1lëë07m½¤±7GïžÊ37𹡷<‡´‹%8‰º¼å4 ;2u°¥´6™‚†o56 ¹¹‡4<œƒ‡0=‹¥¤‡51—ƒš 81Ò½¤²^05fô‘í 1 Š»¼K1 ÄŒ„b45`ƒ½¼…4d’64n¶º·d •ƒl097†¤§‹1†‚Ÿ36±º¼â12ç…ó50󼸷m33w’™‘4„»§µ85›‹›34ˆ¼´î4â›” ? ë³»°k>2@ˆµæ 5†¤¤´80Q‚04¤¾”81–’34u°§¹’ 0 À’v‘¼¥°k9;’†d f޹»† ;=†š7ž¥¦²Ù3?Éîwä°¾´Þ2:„‚ö`€¾¾„?=‡LÄŽ¹½‡496`š\Ÿ½º½—09–ñ4@‡¿¼µá3>Æ|é·º¾:9 H–LhÝ—´¾²='5–ê·¸¾‡67uVH´¾½ :1Ãïbj¼¾‹c29þ–ëbrí´±·í7=ägkヲ°’17jle›¶°´„ < gãMo•…‚‹¶µa8$4ljy›°¸²“<1iÿ„´¼°>6o`â•‘·ˆÛ4:3leÑ臇œ€±µk=2Oíþš‚´22džƒ‘…²¼í6?5탉‹ƒ<= o’‰´™“ŠŠ…6;7Ò‡Œ¶‰ù>2 c”´Žñ°Šc=80@ƒ³°—X€µ—6?0枆dx€‰×1?4f÷†µ´…žŠ‚h0;0䃷µ›™‡€– <14Õ…·Ròжƒ9< Ń·´”‘··ü2$>h‡·²‰ñœÐ2>=Ÿ·¤½FêŠì1;>ö½¾o‡>%5}‚µŠŽy”‡à05höƒ³µHú˜ú61”±»ˆ’˜ò >1•µ°¶œvî„6>3ˆ·ŠD…‹ï79=ÑŒ²¹ˆËŸÜ 9=a´¿¿·}6—…t734€¹¼† 6“·†8?†ˆ±¶†ê‡û =0e‡‹·Œä éœU36BŒ´·Šðˆ{=%6î·¶ž‰ŠÂ=81i›€··—ñ˜ê665·´ÿ}‡…<>5a‰¿°†™‰w1:0ó¶¼²ŽC‘<>„´´µ– Âä =5~‰²·–ê€é=1@Œˆ†•–†}4<2]¶±Šž–ˆ… 89ˆ³°ˆ‡š3?4þ€´ŠŽééê10„¶½³ˆ5cæj30l±»½‡c Lžh60´‡Q ›Œ13†°·”znV„„77·´„ùgžz 7M·¶êu˜„47ó±°‚—ð›ž11‚¹½„é3â 5 ͱ¼¶H64“Ÿ4 `±º²”eyV…r691b²¼qu”i ’°²Ž µž5„¶°ši6ãã1η²·Ä …ä ‡¼¼ƒo5œL5 zŒ¼³— 6 ž€77b²§² œf71¼·]–n ‚²ŠF{74…Žç oµ¹‚ 4Ž––¼¿š  —jËŽ¿± çàoŠ¿µl6”cb²²†z5=‡Lƒ¸½Ä  1Nà|ä²¹„ 1ŸŽŸ—±³Ò =Á‘Ÿqn…¼°P17a–‘vb³¿Œ 52“p¶·•À0–Ÿ’ Ÿ±·‘px4<™‡’‡°ŠÎ`=™‡Tí°²“Y0 n‘ㆹ³lÄ9 ûš†—ò€·€=1öŒƒ‘€°†5=‰Šåš²´ÉS1”íÔúí 4k„„Á’‹“P0 Ÿ·c“±‹}5<ƒš‚³J 65•™–çO÷ˆ¶…mg`1 ‘Œ™Ggˆÿ0 ‡±˜°‰3˜‰ží÷™‚c0r4‡Š‡ybž·„ æÂ15’Š€ö“ˆ€g17À|°´È 4жé–±œôc•€šn–ƒWpYƒ´€Wç÷k5 ž½¼Q„‚57„´ŠO„·ãbn†ƒ•Šïjp ëµÁù`dh ‰±ƒ f}Œµ‚ÙkŽ–4 ”´ŒîIì„h„èè³·æêRyí2·…ä—“h5 š´‰’oŸ•u† kƒ·Žqa•ŒÁ0芰‘Rðé7ê±¾‹RZvp ‹‰‘kûáƒ31´°òì ‚‚7?°¿‹ j…ˆ~ᆛ—ôÒaì›j à™‰Œ•ä4€b7›·³†47‰14fˆ³¶4`“€ö 6‚°·–æê CP T‡µ„7`ƒ€i4œ±±”5’¼· 84¶²€ 7ˆ<5ê¶³ˆ<—–Ž—ǃŽdcµ·74„¼²g42 ޏ‚0$ ±¤¹j87i€´† <œ¶·Œ 3F›†™ 1÷²°11’´‡5<ˆ¿¾ê2< e‰°—70¶¤± 84Ÿ¶°’7>šƒµ€5ñ†f‘ƒ‰Â 刳ƒ 6‘·`37j·…70Vв† 2’µ±<7‘°°‰l4jøš€@5P•ˆ1 f˜“4“µ¹³>6˜Š“7 „¶½¶9=‘Š€6ƒ‰Ž0µ‚h7 –‡Œg˜ˆí ß…Å46ƒ³µ<3s‰´„7Œµž^61k‰·Œš7—‡™÷7 …‹ˆf01g‡–— †‹´„4ý……p5 ˜±°µâ4?•›þ‚´€“g60굆â 7j€“îØaIƒi3 •ˆƒ„6„é0¶5 Ÿ¶šB 7JµŒ–MlŸ‡h7 ²¶e66—„Òe·½ƒç36ã´ƒÛ51õ·¶žý…l7…°°š65”ƒîCŒ´ž`‘ˆ†44s‹ˆâe3=†±±…1ƒ´š3 —ж†–ŒµV12ꎌ’~{æ„â15f›¿½– s™€{ €·Šæ1 s†·R66˜°·q È›Œí54í·‹b õ†‚c76òžŠ5—¶±>2‡°·˜…A285Vƒ½¶3™ƒ‡35í´³ˆ`~˜‡„2n“µ´ 蟓J32h‡‹±1…‡‚l6 l·ƒà·Ÿ3;b„ŽŒ„ƒ‰”47ú´‰ñ7†à óŠ´3nŒ‰ë486lµ³¶Š‡µž88ƒ°½‹0” <4a„‰³·5ò‚™44f†ˆ¶ ƒ„á04ƒ´°‰g›…ì01aˆ·Šî „ˆž 1@™·¶ä€‡é6ù€ˆŒÒAïäE 24ö²—íÛ10—±¿½ì6šc 1³±4GŒ•7 ]м´ž~öH î±·Œ š— n‡²±„7G´…405ˆ²´”œ—ı½i…ž1 ƒ¹½5 Ÿã 44¶¾¶a d†™p1 ü³²†ç—l ƒº½ž å’5 aþ³¤· 6ìö ‡¸½– ô†7ǰ¸¶n øÊ55ê½¾„ X‘çr †º¸‡æ‚à=1·¥²b3 ‰’ 4²¹†5[’û”„»¹ü4 [Ê44H´¤ºð? lí– ˜¹§‰68r—çç504nŠ¥¾o0ê•ýa涤°>˜ñò 4“¶»ˆ1Bêá ¤§Ÿ22oéeʲ§¿%4áô[4 }¾º‰0êl kŽ¥¥š5 noj±¤±?蘖75𻥄57Õù¶¤½Û7 p yá”±¹°d06jÐÞ…²¸µ4ý´¤ºï31 à‡²»·m2êhc~ž²¹Œ 6}·»µ7iéyb 綦°4äõ4eF¼¥Œ w·¦§ž4í±¤° Ÿ´¼·~j]àýæµ¼ŠyNܲ¸·4 kjmñ“‰¼±ä47gp•·»³4 {ꆲ¥  ùˆ¿³Ÿ J˜¶¸7SæÛ…¼³éùè‘‘°¼‹ü  þ鄲½b6 K’†³°— ‚µ³W07nœ‚Œ½¿„36jä’›±µêh ?6䇆³¾43úꂵ±»€ 294fž°±òuÌ=2å’ƒ‚´³ŽuOc=9 h•êŒëÔ3 —‹··‡mo’:2z†ˆµ´µâ^m9%5Qƒ„‚··ù`Ê26Ú˜€±Š‰î98Àƒµµ´Œíh`62o†´‰€†äÑB01™ƒ—„\[ù=턊ˆŒ™ ]‘ =yÙ·µŠðHæ21b”ˆ³µƒgL‘o38 [Œ€äz•Ÿe62ææŸ‹€›ð 0 ôšµ½²—]14”‚²²‰õ€i>0æœƒŠ‡”›“2ô…†™ut›Î74eƒ·ŠŽ à=܆··˜y– = ”‘”€†˜lÆ7n`´¼¶ƒij6 vy™²¹–áj1?ÏY’±¶ˆ—fY0 Êqµ¼´žwbPpF‰‡ñì”7‡±´’1Ŷ¼ŠšHi ž·±Ž‘rŸ0cµ¿¶´‡0y›³°Œ…`7woA…··‡i ðäFŠƒ” Lzi·±ŒèÄæ„³°ŽçbÅŽŠ„‡ê5HH䱌…ŠK4‡– …¼´€ç Wlí²¼ƒ™n1 qxv·¸´›Ÿ666”…‰¾‡‘’ GžL±½Œ‚u ÷ ¿˜… bèà ›°ƒ˜HaÇë5 Œ¶—é 4ɃE‡¹Ž„ 0 œ±î6±¹šÄ õ„ —¿°‡í55c•Œ´Øè4p€4ƒ½€èö ‡Ž7ç¼·œï ‹é45ްîŸü–‡ ±±„ŽK406‹€ ì½°ƒÈ73_Ž…ŠºŒ`u16˜‰ñˆ²èáÄ ‡Šïa·ŽtìA44ÖŠ¶@ ýµŸÎ 7·²‡1†½Šç0 ±ë 1”¾ˆs=4‡± “¼ˆåB45²ƒ „¶”î354²±1p¼³ 6·¾ž‡Ž—\ 01|¾±Ø µµìA56 ˜»°oï±™ 53¶¥µ40‘ˆ†T<Õ°±5¶³›06ž¼Š6´„ý1>°¸ƒ Ž’áÒ21’¾±c4µ´`25µ¥·7̶„K 7½¥Œàã–33Ÿ¥¾ð4€þ7²»ˆ7ÏŒŸô57‰¸°÷ ™ïl 6°»Šf5à—ö“x51d°¾6Ÿ™œ?=›¸°•æàé_7³³Ÿð™”é2=„¿°ìÆžã 3Šº°Á ˜Žì ̈°„ þ†á 5…¥½ïR“ ±¿ƒ4øúK–\4µ’ ƒ¿±ê7œ†l…½¸27×Ü…¾°ä LƒkA¶¹¶÷1<ì‘ù˜·µž0€€j`}Œ²¶ö57 ër·¹Š07o›ž¾³ 3k‚yŒ±ƒÐ 7eŸdÓ·³ƒ6 ቆ¶±“ 35þ€oö±‡7f€„MÚhd´¶ï < Άajlðƒ±‰e45—„ïæ÷h½ =0eµ ™·±“5 –ˆÖnµµšo I—lf∵ž4 `’ü÷”¾³’ =5|˜–kõnš´‰î53öžEJôâ°³ƒ80z‚˜zJx†ƒˆš 2ë™ÏÔቴˆÝ41i–›W±´ï6üæacS•…€Œæ eçfØQ…†h5lꔜõe€Š† }“eûㄵ‹ä5<5Û™•]”éûŸ‡64e†Ÿc|T”ˆ‹˜1 Ì”qçv~ŠŒé3œž’LQ–‡Ÿç1›†hs‡ŽŠˆÈ|曀—醵Q4hÅ…ã킌´i0 òè`d†æŠœ63M•ÑšEäˆa 4Ÿáæ˜íœš€›:4œ–íUÓÅ×„Žž51jßä{›á’°¼8úa„ƒÐ†²€7DX{†…—µ½‰5 Þ‘ñàƒ·´ý<er—êË∳9”kåììh‰³‘73Ö…µÃì°³K31}Uä„°Ž?té[Η}×±°•64J~`o{øóù‚¼4 ÓŽÚš¼Ž74y’‰”´¿ž44j…Œ™÷ƒ´…<ˇ¶› ‰±6Ù‹ä°µ— Hž‡šŒ¼€3 ‘›Éмˆ 9Hi†··ú00˜–fpŽº¶=70êƒYOº¹d32 f™€Ÿdhµ¼6|玙‹¿„0 œ·‹è µ½”7•57†¸¶g?1’œÚ ó¿°Û = Qˆƒ†þÕ´Šð21j³† ƒ»‹721…·` ˜¹¼’12Þ„|ƒ¼‚n54™„‡·±•o 5a‚‡Ÿ{†ˆœ <7é¶´†ñ‹ˆ45…¶†°¼÷657‚†…÷bà°´ü= [·Œ]€ã 3=†Œ‰õj±¹Œ 21ꉅÙh´µt=?7€‰‡™›´‚• 3 Šˆê{‰Žç604‹ˆæž½ˆÏ;>ƒµ™oåïd=0€·‡Yら…781f‰³‚æ÷ŽÉ492··€è’m6<d‹±ŽI펷<91œ°·‡Õzÿ˜“V5<3±€BŸƒ´š=< Œ±œOz䵈‡%; ”°äã팈ù07“ƒ„†–Sáš„1=0Á‰Ž€™˜“…”==p±³‹ãâ”6:2ƒ¿°öB‡„2< ê¶ïàÄ’é>97w´µ…qĘŒ ;1†±—fí2%6}ŒŸ†éà—<%6ê³½™K”šÞ781œ°Š€“qꀌj3%7F‰°ŠEf뜗 >>‰•{ì‘6? à·‰‡ƒrœ‹w9>4„ˆŸ„a]‰ˆ8:€°…èB\í˜ ><€³³†hç˜28 ˆ°‹ïE…”%8’³´‚èeR™ð124l·°Š‚ccê‚ :=ƒµ„†ÈB’ö90GŒ·‚†žgfFŽ80‡³·‡lüü3=ÞŒ±ƒ›öJŒ=2œµŽåk—‡Ø583Wƒ´´™VÔtŸc 05ä··‘`ž‘;<ÊŠ³½eÚ‚”1=˜Œ±µöa€>0²·Œâ o‡Ÿ?…´ŠŠh ‚‹=2k„ˆ†|™ƒ15Í‹·ˆâì Ò˜Œœðc”†<>h³¼èš†= ÓˆµŸøŸG1ç´·´‡ ì‚e?5w·¶‹šy4›0 ‹€Œ˜s m˜œ4tƒµ’e’´<5ê„‹öžŸ6᜶€æá˜‡j62€Šƒþ–Åß„•4<Ÿƒµ†ælè–nš…’‘èúuè‘5’‚„Jó›4h›ÁáµJŒ Ú›Óë•Øànrf6 ’†”ƒ“JjÐ’3ëÇ•‹èmñíbæ‘73y”„‡â›“Ÿk ëå}…ÞÓLëb4å‚€ƒ‘tw˜1‚„ì˜éñ[Jü óˆ›Ç˜“áÍv“ ì‚aÕ‡•Sr—üî‘퀜øg~Êë–‘HB’œDîûmî€ñ˜Ý™’ H Žž‚êÄt|“Èï€érl ˆ¶—‚Žß5ní ã±]œÎæ`mßœ‚ÆêŒ•HgbŒ‡îcSAôœ‹“LœÆu]ó[ ‚ìûä`yÒü{f1x°Žvð”óÊd‡Ž•f—„y”☚tVš”Ìž 7bœ´{@Ÿ`gp€‰€ö”ívôIé‰o„’ ùOž‹™œòmUcl€gŸoAgodiƒ´~Ÿsoôld–V–ïed–›Ð\µßïâEr`Ÿ‘…ðkïmvï ŸšŽ‚÷krì{ㄜ–k– šòbœž˜ß•‡sìÚšåš–G‘îIûnwšž”“~‘šâXFèš”máäsnm‡•œöàÜë7nŸœ†„ås æ€r·ƒï@… “{…ˆ…êBo Ÿ|šƒ—p`îýŒ•qž•Lb•I H›‘€ˆÈfýe —›jŸ¶·˜ä6øšcK€—îei ‘`“°±Žè71’Wà°²ƒ z à€‚‹·žÍvwz”ж—d`565“ƒŸƒµŒ’tmf{~’ˆˆ–gÊo4T—¶€ça–œ24~ÈÛ‰¶˜”F j 7釒€´†„— W…Ìà°µší 71îä´³µ”ca4x€…´Š”h ÆC”¶·–nù˜í†‹… mb ÷b˵¶›DjfE f•ꀽÀi ìM€½‰†ã5ù„€³²í Ihï³°úñh÷ð牸‚o Ûø†ŠDOÑíR pe”´¶Žk•†±‹Ñä’ 1ì™‹ŠŽ‡y57`”·¶†€Âmu0ž”·³‰ÿ 5``eI‚¸·æfrм‰—T 5`@‘óµ°„ênÛo™¿µâjB`޹µÊqo[µ¶‚æä³Šœ dÌbDù´¼…g ñpij|°·GN~^—Œ½µs w•zSƒ´€gdÈ„·¶…Ê æÕ”H7@ˆ²ž þ”°¼ôh{eí tгŽb Ùò±¾` ïƒõü°³~oAl슼ˆ 4cC‡èälN´™` 0 V†œb …³³–4 í›ó µŠ€4 wŸ1¿·„æéí5µ¶´nI–f1 ì·»5憄5fнµx ÀÎÌ•·¶· ð˜Åþ„¶°… ïçñnƒ³‚M kæ€5䋹· æã]°µìÝmçhŽ·²Ÿ47Tž[ƒ‹€o Û™”Ž¿·„ = Ÿ‚ì †¶€n…àik€¶‹à Žé ‹¸´e 25ö°€ 7áµ·´B 7•†yƒ°´í0Ÿ‰E16F³½·” 4pŽé ‡¿°‹03ƒŒÿ7±³´ 1 Ú†Žã·²‹3 •P‡²ˆc ˜„[}´·ì56ƒŒtàˆŠ†rŒË ‰±´–2™…çâµ…k aŠ †²µplƒ†`r·±žp 6c„¶èyЇ”b „íKÝ„ˆ›Ëã…šWk–ŒFë›nà“†šO ‡˜àŽ·Ÿzpe•¶°h õ’èyoûꉜ• 5Q‹…pŠ´” n—˜ëno™mG‡Ÿ·žöÕŒàš·Šãà‘“±¶ ù˜öš²°“Q 1…äš³± ó ê‡fjйb6 käí—ãêš”_ì í“r†‰Žk –™dX´•w jã ™bŸŠŠšMÄ=ìA{޶µçmfn6 K—`å±²–k7Ö@hƒ·ŠîÝÃàꊌ€ão75áŸmå…Ž‚ÎÌ `õõ|Ÿ‚€kh›4ðîV–·“—6•ƒ²Š‘ÙQv0êƒïé_ 1c\´¶…ýþâ>áaн±U øoÞ„·ðjik 7P–~絉‡’Ûxm 6áã`í±mX oUc’†‹…xAe ü愵–çæÝ5îSéµ±‡lçw 7ìâæ„¶–cë64dújŸ°·ávœ•30ˆJZ··én÷ ™ä…·µîôc 5rœ›–‡~™ –ŽúF„”–î@ ™ž…êææfqž@‡Š˜›ë53 çd÷ŒŠ‘ÿ57A€Øì€……øù3š—·µœú 05Ї˜ˆ‡t‡›‹›ë˜ˆÕêšTï`a™…cAŒœ”o yEêm–€šê—õu ì}™ƒ†µƒ6 lä`T±ˆçûÊ24åœZˈ‰†…i44äý…µ‹ìã76åžíô…‡•Žƒô 1l“•„…œTQä7eSSÁ’‡Ÿu6vdÛ™œˆˆ–åf 7iÎé„íŽìƒš 0’“›€„·˜m4?1ꌴƒ—蟌7fïæùʆ±á40 à‚Š„çb‘…o y`茖dôˆŸ41@—›“‡Ÿkî†e aø“’„—ƒŽg30 Ç„ŠŠéñï14÷x“•‚€–ƒŠü52 hh…†ŸK€74y›€¶‚ëÀáã3 }‚„ýƒüôíÅ’ƒþ‘‚ÜFŠˆ˜ç}„i75äÔ†…â‚€D‚õŒ54 …µ´Š•†î „Љƒ’”àw51 oޱµˆ•al j“¶·ŒèØ–6 n´²¶hÍu€µŽïP‡A Ñâ¶³y•ñ 䉱РÝêj ï¶»°“ ì jœ¼³‹@ u 7wÚ·¼²ì5ñJ5 f‘°»‰1pe°º½’32LB äùe’µ½Š1 jYǘ¼¾†6ÁÄý„‰°°î47nþÐb–Ž¿³e4 ~Ï ûµ²·þå lÇ“µ½´6NjŸŸ’¹³å? é—hOŽ¿µ^ e‘W™½¾Ÿ 0f„å˜°Š’`tîYnº²b24gjÃ~·¥Š0Îoo𲥇26y]㊼µ‘ Bݘr`›³¥‰42 ’Øk„¼¼Ä77dHiVñåé´¾ˆ= lÒÎà‰¼›hÒay°²ô0Úè•o¹°m 5Äúðe€¾¹‡7 5›A5z±¿µY cü“´¥²” j_Dlj¿´z36Vá—nl–¶ºµ1 dm}ƒ²Šè3Vå…n׃½·`‡¿¸Ÿ 6 jgâ{‘‹³°è55}f„´¸ êî탼°…4 tró‚¼·h14ho“â`˜¼±„7 `@bÌþš±°D41 fãÄ›u—µ°ˆ5g–ÔûÉŽ½4 npõýÔˆ³±t ä‘”†±±œ65Ë~‡¶²^ 4oCí„°‹w545›„‚Šâ Àóeû™ˆ ätb‡†´  “àn{™›‡µê ôõÖŽ[5 ê댃·†1 ÏÅ퉶‰€V4 ƒŒay†´‹„75g”ät–°´…™6›ÎX€‚ƒëwÁè°ˆ‡Ë •Ÿ—  d’ï‹ŠŠ’ 噓ä|‰‡œ ”r±µƒd0í–ꎒà4 `”ï܉±„”þ5gáàvŸ±·ìÉ7ZnÕ–»dí5ozR„õ³´ãm~nÔè½½•l4=iñæ“—±¼‚ 0fyÁẢ¸ˆ7 kYz–šœ¹°y3jiñŸï‰³´i 4Lèëâóݲ¸” 13 nRã‘ïe•°¶k5 jŸ˜ïÃX‰¹Š3=6mô€ ž½‹44O铞šfw°»’5??”›nŸ·€14z“€Œ„Iw´¸ž1>2쉈‡XK¶µw=8 HŒ´Š\°´98 |ŒŽ€ìo€·ç2 œ’âñ€´±ï3= …‡“Ÿä•¶Œ14‘Š€äú›°Ž4> Ú⟑û’б‘5<0fé„¶>05 ܆‚…é’°’50 ø·‰à‘µŠj‡üáRŸîmŽ˜44þçð‘ì‘“„†ô <ù€‚øUšBæŠ4 äðš‡Zà›€… 26aîµã’çF„Œ44^Jží‡àz„‰2 í‹•bŠB74SõçàêÖ’‡šƒh23 û‘€ŽçíÞ‡µœ 3oä•òJwo„‚´55Óñûߘµ†<5OÇ™’èb™‚e57Jëšµ‚_gY‡†?>câ}•p•±˜19q쀒‘Ι€Š27dÑX…‘Íòﱄ>}îƒï”ûàŽµ€5>gÀ‡…ua21rz}†™ù–òž‹– 04@ˆ…é~„Œ‰`<<üŠŠ–ý„ŸŽ 9 Žðu”µ·ð6?}ƒ”úûŽu4 úvkÀ†·µ< êµBž„µï00 ‰àxhÒˆ°ˆ=3¶™”„ˆŠ724 A‹ŒÜLõ€²‰2?5™‹˜ã–“Ž´š?3ñˆŒrËšµô 1 “µšrfv’ŒžŒŽÎa挶ƒ16q‚ŸUš„Ž‚ñ 0 nƒoŒ‹²´21mއlZ’‰±Š÷4?6”‘s˜œŠ03 ‚ˆsÊœƒ‰ô734ȉ‡øì늌61ŒŽÅ픕žŠü4<5K‚…a’„”‚µñ5fŽ˜Aú—ƒ¿ˆ 26 F›æ‡éµ¿›43ƒådŒ†´½935æ€K”Š›œ‹™<4l‡˜–›‹‡ý´a?36 Ÿ¶˜Ü„í‚‘7d™·–ʅч±’2<h–åïžø€4Ð`R†@㇄³±= põÿ“Ÿ“½{0AÛŠ·´‹80 îŸJ•²µéŒj2 ›‡ð†›´Ž3=7ï’€‚‚•šÍ47x‡ùi„Žž„Ÿ ‘èjg…“€” †ãÇ“…þ†´•i ᙵƒšn “hk•€Œ±œ? mØñ‡´†„g45ë‚dƒ‰ë„™77êU‘†š’ 3 ƒ€çヌ旇m 55ššç\…•‘“Î B™zUò‰–‹ìžñë…ƒ‚„È7 âãÔʼn¶„4 á_ñ‡Œ“Œi= iõ…˜mа’œ—771Œ€åàƒ„y“r13žˆضŒ…ŸY è…àÐŽ‚âýö 4 æž|ކ‡‡ó [œUi‚Šœ˜“E45’˜}æµ°…‚c51 g”Ÿkã¾Ó‡Ÿ 07†Œ•ñ´ˆ„D 0 ꆙ‘µžâ‡=2†ƒïæv` 4G–™hôŒŒ•Ÿ‘37“†ù霃‚’Ð7 þÆ••‡šœçk0=1b„’‡‹Ž„ç3< ÉGÝàŽ°µõc>=”â‚·‚‹šfm79î…—’˜‚‡àêw <0ï·†–ˆŽš˜ 03“„€€Ÿ›ãàç13u…„Š–—×` 37b딓ú…„†q1?Ù…‚…‚€‚ãT24yCØý‘Œ†‡é480îš„€‹Œi00ž“š“…Ž‚˜é<>µ››…Ÿ‘à3=ížó–‡€‡‚B06m„„…›ƒ‡î‘j66 à†ÀiV’š†ƒay%6푆µ†ŸÈ26ƃŒƒ€`00oñ›™´‰†ý]4>6“¶ê‚„›{ =1b‡ˆˆ‡‹Žê77 –·æéœ„Ë16Œž‚µ“c7™ˆŠî}“êšK1œìï›â < —ƒ‘„š†Œéb70æ…‘›µ‰‘ =2w™‚Œê˜’˜†c10e˜†‚‚šç414a…މšíì 12”Œ‡ôƒ€€õ 14n‰ƒž‘531愇•‡å˜ 61™‡œŒ„ƒ…›I79I™Œ‚ŸŠ‡—‡4 6–·‰‡’žØ 4îsï±¾·œX51Ÿ™àŸˆ·³µ”X %<ù•bWްµY 4037V•T惶¼³Ÿ~61’€ë•‹²´é 100ÊFš‰‹ˆæ ??̆íÞ¿²„b 45ƒ†ž„µ°¶693êùUœ·°ƒ410 æ•”šµ·¶‰ã~=7—“ëš¶³‰ú721 yó肎†v9<ç—ꆴ½¶ï ß…„€µ°´ŽÄ=< vèùý…‹‰‘4<=1†œ’Œ´·µš|O 6Ó€„±¶Ÿo202 ô••Ÿƒæ7>1–‡™‡¶½³ê67™„žˆµµŠŸ782{’Ÿ™µÐ 6315p™–€µµ³‚d “Ž„´·‘135îð™Œ‚Žœ511 wŸ„—Œ±µ 7J›‡ŠˆµTm134””ƒŠ‰“4<=4•œ˜µ±·´—5Â‡Š€ˆµ‚ù5? ? â’åµ’w 55ÞŸ¶´‘5 ‡´š€´Œî76oá딆Œ€ø50 …”‡´·‰‰ùNÒ€ƒ‚ˆž˜a420 —œÇ‰‹†ê  ßë‰µŽŒ„Û `™‡’±µ††~Le˜Œ„è 7D›e½ƒãäKiÇì}ž²Š‘œr ”ñèk 5 ä•T‚¼ˆžœ ä`‡†¼³™Û6 gd‰¼Œy7255{™†@‹¹‹é däM…‚…튶›{ 96äü‚Z€ˆè6< {Ø‘†ƒµ…Þ42 ÓŸ³´†Œž => [‚‰ƒŒ…ø==34s…¶¿Œ‚Š‹û 60Ñ‹¶µŠŽ…s6:3=ꉰ€†–215 ‡´‰Œ‡â6 Û‰½Ž€‚Œ…c 1 š‚‚‚Ž›ì10 4ÿ…µÓ `€µµˆ…—Þ431Õ…Œ™“ 07 ‘‡œƒŠŒèç5|€´‰†ƒ†‚ë 4 Ó€„„‡ít~= úƒŸ‚˜Ss’‚ƒ†ž—á15 çê…œ“‡’14Ç‚‡…‘—hꃃ´‚††™z55ט…š€“ãí3= @œ…ý jã…ŠŽ‚‹‡—×Z76’–™…‘˜Ÿl47 zš„Ÿ†„š’—5 ዊ‰„†˜ìØ31aã”›€„åV6>4ž…Œ‚ƒ„’ß7 w‡ŒŽ‡ŽˆèYp ?7•š”…œžæK 2? Ö…ž‡‘äô1 rŠ‚Œ†‡‡š”43wàñŸ‘„ýdx=<hëš“‡‘I5††Š’•2=4ð‘焃’“v480–‡ƒ‰‘ÿ—æ 0ꌃˆˆHc32 ûÿ染‚èwi>3뀚‰Ÿž—çNB‡…ã…Š’õa76ì”ÓÜ€›îTl0< ~“á뀘‡á 4ƒ€™ŸˆŠ‡„–y5?5œê_úƒ‚çö55ç–Çû•€µ‚„7pì‡æˆŽŒ17 É”‡„“ƒ—t >0f܇´Ÿ€àîl47À”š€€µšF<3Dëç‘ç025}ò›˜ÇŽÿ F™„Œ‘ç‚’7à×áå…ŠÇ5= †ˆ—€Œ„h54`“ƒƒšƒ¶Œ–90ÌŒ·’‡‡šË ?85œ†œšˆ…p1 –†´²‚…‚‘42üjnš—çJŸ“Z=1Ì씈™•…˜›Z ëïÕšû““´B66 faŒ†à›ˆ†ý9?b—¶ƒØ5<6˜—ж‡ƒµŒë2< Woã”šŠ˜1>3œšƒ´êâ…œC3=j–ššƒ…Œ€q04™…€´rúÑcd6; ÿ”•…é甌˜00„›™´‚胟ã >3ë唓㟈œ3>6S˜‰ê…ƒ—k5>3eˆ…‚—…‰·›=81“´†ˆëÄ•T589 …€š€îퟆŸg 27Ø‹‹´µ…‚—Z33†ŒïFc‡µ‚q78?†Ÿë–þ‘k6?5›µ„šé•‹·µ“Œ…–Ñ˜Š‹‘=?‚°°´Œ……†—39?µŽ€’iÿž„>;1ê´µŠŒéaÃø61µ°„ƒ‘”‰„084–´‹€äï–òä6==6šµ™ç}`‚ƒ• =3ÿµŠŠŒ‡žâ 382궆tór‘žd0%9‚··…„€ë‘ñ407‘½²šd˜Ž~7;>¶‰„’šGaÝ 620f¶·”Gw懚”32±³”ƒ‘Ùa52=µ°œùãq”ìå=>4ì´µ„“Œ„|å403‹¾´’ž—€€ñ>>5൰„NØ ==3³‚û‘’‡‚É724ì·°·›ŽžÎ3>3 –°´õiP„‘1=7Þ±½·†êàäe 74ʶ¶œåŸ†ì6=1¶ˆéè‚ê0=3 ð¶°òï‘…021а°Ž‡††å2;95Þ±¼´ŸÛ•ïÆ 026µ°¶‰……Ý 4=3 •´°†íÊ€…c7<7ê¼»šЇ—? K·¿‹F„‘4414޲‰µíú‘ïø32`‰±‚VïƒU•í66Ÿ´Š†œ‡ 16 „€›þù‡“‘4141š·µƒ†î€ç=1Äø´Šƒaé“cí 15 S´†„ƒŸž”1=5~„ŒŒŠ–Í“ôŸ< Š¶ŠƒÞíž‘ 4=6˜ƒ–Œ†âƒ–d045¶´‰†œ¶†=< 匌‚éQ…•k2=4 €µ´‚“š‚543zˆŽ–èn47 ‡´µˆ…•œ4?3‡†m06 š¶·ŠŒ•‡›102 Û†Œ‘ç’Ë4?1 íµƒ…Ž·™174„ˆ€ãš‘=5 õˆƒ„ü“‡ì==0–‡€ˆ„‡‘Ò25ð‰Š·¶ƒ•o=:1•……‡‘à503 ð‚‰Š´·›m4>3Ÿƒ€…Œ™• 1=5rƒŒ—ƒI <1—€‚‡ˆ‚ŒS1= d„„ˆ´Œó18?Þ„‚‡ŒµƒðJ 027nµ‰Šƒƒš0? K˜ƒŒ‘f606žŒŠ€™‡c0?4`…€„‚‰ð507™€Œ¶µ‚Žê1<6à™‡Œ‹„d126“†…¶´‰µ€~6?1Ë„µˆŠ´ 6?25û€€´Š‡Ž‡4<0隉‰µŠŽï=1 ý€Ž¶€Ž„m432Ô—‚˜11 …´Šƒ‘73t‘ƒ‰‰ž 3<5‡€¶‰€žò 437i茋‹´‹‡ 5=5•‚ˆ¶‹Š‚×446qà‚‹‰‚€ 5>7錵ƒ”Ò71c˜‰Žˆl 26m…Œ‹€‹“| 1i’´µ‰†ˆ01î´·´´“C6 6o΂‹‰€‚É 0=j‰ŽŒˆŽv4 ØüŽ´ˆŒƒè4> mÌŒ·‹Œˆ‘Ô  ˜‰µ‚†… 0qc‰ˆ‚ƒ‡Fr 5 @c¶µ†’… <1rOà‰·ŠŽ†O ‘´·† 33f_—°´†‚õ nDµ´€î†y 2—K‚°‹‡†›  `xбšâ‚Ü 72žwµŠ„†žk Åj”°±ž•6 éíðŒ°‰š– 5@Ý·°†—– 4 “„–˜·¶œ‘l72 Þ‘ô€²‹Çë13a‚›ïŒ³ƒôÝ= jvì䌶œ—|793nŒŠ…†ˆ†àç134÷‡ží„……ä286}ˆ´µˆ‚Ÿ…4<=û‡ŠŒ€–Å 2$>µ·Š·Š“†…o=;7üޱ±·´š—“ %%0’¼´µ±Ÿš ;:m”µ‰ƒ°Ž{Ùìi6%3áµ±´±‚™’‡n760Ñ·±‡•õà0'0|µ±´†‡‚54ñ‡Œ‰Žˆë×÷0%>µµ´AÉ@613_—ކſÝì=:”Š´·þë›–761•ˆ†˜—Ÿ–b795Ĉ´ŠŽœíÊÙ6;凄‡âÕð†æ>6†‰¶´›”–—â615”ƒˆƒ’Âîì`5%1‡ˆ±°ìq’K 6= â‚ˆŠ‰øHììd?3•ˆ·›òžê 0 ”Ž…ôé›ñ}:<ŒŠµ‡Öêúé507æ…‡›ß˜è_`1?šŠ±€ëâõõn <=dˆŒ†‡’Ïõt_7;™‹´†èÒôöH537â¶µ†…“þAÏr5: ޶‹€÷J~ä61nƒˆ€„àT•åUH ; ˜‰ŠŒò—Ÿåj <<ˆ¶†’—d—…öñ:9h‡·Š—x…ÿ1>±ˆ‚žÆfœãw8:´·šžõ—“c1> ‚°µ”ïc”†Ê~?>Œ´±…Ýaå•™û 90fµ³‚ëž…ï79냊„Ãç‘…‚Ï25Æ··‘Ãn`„…á4> 鋃ÐÛê›…Ì 27j‰³…ž›Ý4;7ö´‰èÃP臜<=¼´•D⇓4=4󎵆ögΟ„„22„°´Ohø€„L91oް@gœƒƒm12„°·P舂”=3ƒ´€•q‘˜‘0> ‘Š´âà´Š” =3fˆ·Wqƒž02±³æoƒŠé <1°Ö…‹›v5?´³†4…·›c52›±€fꊇ` ?7“¶¶še²ƒ2?…¶ƒœ·Ó ?6øŽ¶Œ s€¶j1<鎵qþ°µö? îµ¶Œ7žµ‚=3š´·lí··ø27çµ±€7‘´µ62…µˆa м„5 ñб†ý¶ë697V‹Ž Џo66è¶µ™l Þµ´ë0?é‰Ru¸Ž =1ˆ¶š𴱟7>å‚„n ž²´45Ù‰‹Œ•yް›=7nš‡Ø ü³°e67l޵š…°=4ꋊÇ ½½ð ̇‡g‘±‰=0b…‚ëµ³„7·µÀ‚Ž‚Ù63„Žé 4Ѱ<1Aж™p‰·— 4‡±d˜³´j35k˜Ž’ nš‰1Áˆ‹n •²±’6˜‰€gg†¶ Œˆ ‘·´ç 6Ÿ™—iš‚6uнè ú·°‡0 톃úí€04†°šbˆ³‡5„ï íð‹Ž2Dvà 5칋7}ŸD z”Šˆÿ04aø³Š}°‹c y”™çsñ‡—0 ޶` ±ˆ^ iµŠè‡€â4kµ5`œ´âg„Û 7ò‹Š” à‚´M iž·µc—˜Ü5“‡Œ4œ€J 4“´œ â‹‹Ÿ gƒ‹Š’4ì‡á56›±‹å71fƒŽ‘5•Š·3÷г€6 “³¶ï6€î67BŒŠˆÏ4=üˆŽ03H³¿Ž1„³´ï 1½½˜ <7µf63ˆ¿µñ6=‰µ“0„·³€ =´½š 4–±‰Ê 7†‰…0 ð·´„94f„½Œ 2°°›4³Šù71jŒ±|00爎0û´±€66ç‹€—7¶±”0?wбÊ f޲74m€œ5¶Š1<г …¶‡11·ƒ `‡Š„Ù4=œ³´ •µŽ`7”Œ‚P ŸŒ„Ÿ?5ë°²Ø ä´’6 쌈C•µ·Žk<<4g€S4ꎶ„34ƒ¶€ŠˆF60 а™™Œˆë11…Ї …†c“·‚7äƒ †Š¶ë‚·Š—85„°ŠÐ ↌45j—‰œj—ŒŒ= Q°²…ddã”– <4ƃ³±÷ƒv1%6öŒ³†f z‘Ì1 î²¼•ùް>8—µ±˜á“a75h„‹™Ó‹é42㈲¶s•–ÿ⃶€28=µ´ÑcMö—Ñ14÷´¸·’š”Ÿö6%<²¶ƒš`çk566œ‹°·Ûÿ›Ÿ ?3›°¾ˆ^þ€ç30 B€²±›sy–†P4:8žŽ´·…“o = 펱±†„…èšï 296k´¸±˜fÔ„–7<7Q½´Ïÿ› <>5ö±¼±îä„î24Ú‰²½‹ÊgIçj>%4p·°‹Ÿwýv ?6¶¸¶èáïÂ2=3³º³‚îGæ 0—‰µžßq~ 2?ˆ¿¶Ÿaä™g3 aŒ¾¼‡KàÉî7?<7V´¶écsš‹·°…탋ïj5>6m±¸µéz2456̓·ŽåÊcl09 ü·¾µ…„…ÿå0ケ³Žîáì0$2œ‚™Š[ 1–µ¾±…ƒˆM 96 ž±²µ‡— 517’‡Šµ†žÔ 52›°²¶‰‰†D1 ƒ´±°Š‡ÆY 6%<´·‰–••30—´²±Š„›æ>?HŒ²ŠžŸ™æ7<7J€½¶„ŸÆa =?в²µ€ú22탷³½·ƒúl3<%1‹½²´œWo463<4„б·Ž„ŸZ 65‰¼¼µ‚–0727B‡‹‡– 464زº¹µŽ™y55nÞ‡¶²ƒ„û5<:2 ½³‹˜þc ><6Þˆ°½¼¶Š„ 62˹¼µŽ†o3;:1{à‡´³¶… 110 `†²¾´‰ê 24 “´²²´‡– <365™´°Œ‡—}5=¼³ˆŽw>83ƒ³¹²µŒ• ?2 Ì™€¶¶°¶µœ=%1 —ˆ°±›éê %%<åê¼³°²‚l <7l€°½¼ˆ“—$$ j΄³¶‡œo4>8axÕ™‰³¶†Ü5?6ý†Œ‹¶²°Œû8>6n…±±„s?;=™€·½±··õ63 Û’—ŒŠ¶Š™ ;9 뀶´›O >90M‚Û∰°´€e3? oƒŽ‹¶´Šæ4?3 uñ„µ³Š=;4 €™¶‰é27ÿ‘˜€‹±±„`O594倄´Žƒœ ;;1ݘ›´±Š‰ð4<1Jy€±µ³¿µðm73ýÓu„˜Ž} =0 òŽŠµ´µŒ|76òŸšŒ°µ„± 6><àŠŸ™ÿ 97Fð}t´µ€±ƒ 3 š“ÛŠº¾µŒû4364qãmƒ±ƒ€• 9=<gVy³ˆŒ“ 65î†‚Ž´¶‰‰Ž÷1=1ewSㆈ”•™ $;4â‰ëòŠ€„ã06 ë‰±Žˆ±‹€?90š±‰äŒ‘Ä?$9= –µ´‚´±’220†¼½¶¼³·Žû <01”…‹·Š„ù=%!9˜°µ··ƒÆà<8 Qн¾¿¿¹¶š=%0c€ž‡¶m<':=÷Ÿ‚²‰‚ê50 s€²°´²´Šš2;34–“š†”à<<5 ·µ±¶ŒŸñ 4“Œµ¶Š˜Ø 䘀ƒèa6907ÿ™Š´´‰ù ܇¼¼³¶µŽÏ=35a‡†„m <> i„‹·¶–8?Є€ˆ¼¥¹°ì9; œ˜†Žƒô1$'5}åô⋹½½„l1†Žƒ·°µŸW :&1ïçy‰Ž„S3?4q‚…žµ³·‹=>冴™±¹j437àåwå›’q232Ìæ‚±ˆíˆ‹•6=˜z´¶°°³·383Ï–”†ƒ× <9 y”•þƒ¶µ‰J787óµ‰ú´‡¶±µJ726âÎë›’‘S5:;…™f뛃´‘0 î—‹µŠšûb2$<„v™€‰œz7=1Z‘Ÿ‰µ†ã0%6„¾Žhµ³€m<;‚ãƇ‘êa9%=¶—à€´a 9<µ²¶–€¶‰‚•\7:2î‹‚Ï둌‡n48%øÙzÊ‹´˜œã;=[¼¼ÂG‰´°Š‡1%9ÙÐñš–b<:5™½‰ÈÛþƒšë1%2é²±âÄ’µ½ˆ–88´¥ŒqÕš„0$;y±‡íõ˜…]?$±¥²†‡ë‚±–g3<±µ†Êný—Ù< %Þ¾±”´‘•Æ42†³³íã‘‹‹%%i¼¾ñŒ’>'5Œ°ŽÆwë‡ê:$³¥…}¶¼Ž…1Š»³T lCÿ?&5´¼Ÿ 4—‚Ÿé?Œ¾¼‚kÄŽ¶ˆšï4ˆ½€40Œ—0&;ŒBÔ€o 5‹¥¸…—²°€z29t·¶æ D”è3%0ý°Œ‚‹p1<˜¥¥‹@¶±Œ:2‰³|64œ‚N6%5°a5µ†…`7 ú·¿‚쳈œ27³‰Ä j›€“8: –µ† 1 ƒšk3 Œ¤¥·ü—´¶Ø73„²ˆ25žž:%‹µ d†ƒæç·¸¿—c†°‡ö7?‚Š…k64š’~685„µ´— 7 Ÿµý M°¸Œì™µ€20l·²š7ƒ€| 94”·ˆô 5Œ†”6Ÿ²¾´Ieµ³›0Ÿ±ŠÀ7–à6ɈŒäȲ¥·E‚½¥ˆb77а²•7%>Œšl284•¿ˆ==]³ƒ œ¿¤²ã 5a´°€{ ú°µY5=àƒŒl1:6˜·Ža0?5Ɔ˜W ï³¥°•’²²‘43ë³´› 1 m†735µ˜77G‚±Ž7é³±…™•Œšn䘆€Õ ˆ… 13€°ƒ6`ûéP5†¿¼änü…¶ˆšÿŠ—ŠÑ6b47íÿ‘ ò‰„i…³µ‡l|„€œŽâ䇱“ò3%öi•‚éWˆ½´I猘žÏxûšƒ†õ4h3líøM ê‘m–¶³±±…òå—ô–Ÿœè\72•q”bÿ|}xf›†Œ‚„‡—„f—ŽgÔÈ10ùÓ™•xë\ÁØ±´„ìéïnýäžéƒånhz44÷CÔ“òcn›‹±¶š_‘„†–åЇ´y07 6ctYýà{w·¶°¶„ú”‡Ìdù€š‚€X6?4J”žìl×ñ莳¿·šèèã e…ïÐ 4247ÿá÷gKc„·½¾±ØfQïvâ¶€Fj6?5ñ†€úuj“…޽½Š‚îŸþùôŸ†µˆã 7006fèŽþ ê´¼»¸·‡ÿd‚ƒˆš4426kž…‡ƒío  ±½¹‹—”wÞchõ‚‰±‚r0045x’„ƒ› 5 ü޲¶±·‡„“`ák†‹·Šá 177=6e’€‚ 7 hj†¶µ¾¾¶ŸróKãj“µéDÀ 1çë˜òg ô‰±¸¶‡’ì”þXšŠ°‹‘d4 64 z˜€I q€Œ´²¶€\‘”a“Œ‰¶µäøö 456 wËž‰šm151]‡¶¿¾µ…†Ÿcˆ¶‡ˆ‚žâ[10 <4XRšˆ€J 4 °¼²·ˆ™Jwh…·º¶‘40027å’‚ŠŸ”b720726–´³ºº³‚1f¶³½µ“6>3 3d⛉è1>6㉂·¹¼°ãküE–±°³°…h=882G‘—’‡í7>2 …¶¾ºµ†‚‘ôúŸ‹Šˆ°ŠŸ~ 53??䜒n124‡µ±¿¿µ·‰Ôð´²¼·â =>4 Y—ê—æ <> iâ´¾»¸³‰ŽáÊ‚ˆ¶Ž”àÍ7%9=004jˆ°¿Žqp4=25†±¿¥²´ŒÒ71ð¶±·†– 7%2óž—‚Ž„ø =97ù‹‰¿»±“n|ò‚г²¼Œ{5670 Ôœ™Š|3 4$8o€=±½†4¤§-‰¬!?:¶5‘¹¸£¼4˜´$0V±  8;:$ 8â¶§º ¢£¦»ƒjàæ{ 1?&# $3뀟„š„r昖¿£¸§¢»¥³‹ˆ aSyç4$2: !!$37kgq–´³¸¥  ¤¥¿·µƒŽŠº¡»¤±´€x38%9;21 2:;$!& $1aÛµ²‰€ž˜‰¿²¥¥º§´Œ‘k hbƒ¶‹Œ„ù 3dጚ†—5>910 ržŸ÷ 35737œ€µ°°°´„…î꜋¾¤¤¦¥¼±…áK }þàÐa2; !!$<5zŸòK54 ˜Ž€¶²²±ƒ‡ê“·¾¼¸¡³€Œžun`þ‰„ûìa4?;:!&$< 54002?5s‰´´¾¹¿±·ŠŽˆ´°¼¥¦¥´œ… çËïãÒ•40?0<cg„–ï411?$<0iß`„’ójaNƒ¶¿º§£§Š°´‹í‰‹Š¹¹¼·€zP08%1>2 7>3>9&?5 â›çš‡ø•—j ’€Ž²º¶€žŸ ჶ°‰³³‚˜”Ÿe›ˆ„ŒµŠœ 0039'%=5}c 163<40†½Š¹´œ|†”‡‡±»½±µƒáÅDé±¶²¼±œ4fXv€Œ‘íú88'&;&$3åï 309‡ˆ¥¦¡©§¹²µ·´½‹±¿¾¤¼†<% &&%= ú3<$%26˜Ž¤¥¤¹›àIßkôކ·³µá62 47 ë···Xbkq•·¸‰½º´ž 0cx– :'%=>>2 팗±·‘Áˆ´šº§¥¢¡¾ŠGnbkkÉ'$%!?%2h´´„æKâ]›µŒ²¡¾¼´mï”hZp–?&;4553 °³´¶µ™V5ž””µ±»²¶˜V euw oŸÓj?9>1ՙް‘cf‘㜎±¼¥¹¤‹y 3 Ll 5oê4:'$> 6 ”½Ž²¾”ž¶¼²²¿¥¦¡¡±êqÝ 3 >&&!;56ƒ´‘• š·€µ±»§ ¼‡=µƒlŸ >%; hÓX¶›HaøŒŠµ·°½¿¦±êæ÷Jdýdаn 2'?=4S7„µŽ‹ˆ°»½† |€†„’‡Ž·f6;6 5r[‰‚þ6?4…µ„‡°€»»šõ ÿ‹š™æ’‚ˆî?: „Ž %;n‘~—™³¤´›V™¶³´m€¶°—3´]uËLŒƒ2$94‘‹³Óé0€Ò”¿` £»€g1 1wµ·¥‚§¹îå1)„‰&;%2J¶Ÿ W¶¥¡º¾¾¼ƒ¼½|>;241<;2  8'<5Ê^ž‡µ¿£ ¸²¼¹¢§¼±ê³¥¼5:8;>?>& '<<57 &%=5ôyƉ¼º‡Æ‘‰Š°¥¤¦¸°¤£¥Œó°±°±½–Ÿ„ˆ— !&:%<&$$'$16%$:3•ðäm“¼º¥³“sv¶°¹³µ½±Ž5—‹‚ˆŽ—í´‰ˆ· 5hë 610 4 ';71>>=MXS4›³¼Ž¼¿¾¦¡£¤¶ˆ¸¤¥º°·Ž‰½„ 3';208$$:$=9'"8 Ü`…¶½°ë’±ãŒ…޵½Ž‘·¹¼„‡±¶²¾‹犃 2$ $9<1;;8246„¶Œ¶¿§ ¦§¿ˆµ³¤º±”ž‚ƒµ±œ4><ób  ?8=; 6mp3>1qS|ô†´¾²Ž…„´¾¹´½œ†»»»²‡ÿˆ´“úhVa”g2%3<337O=97H ó”χOãŒê·°·±µ¼´q€·J´°³¸¾Š‘A߯Ÿb660 #:602%8ž  ‚ƒŸ¸²¶½‹Š††°²³óŽƒ…ƒÿ󃄅Gމ“„ÈÙ0945%80602:!?rä‘k‘÷‘±´¿²µ¦¢¡ ¥¸º·¶‹Ž‚óŸf463&&?;;:$0b lê±±þ•›²¿²Ž–ꚟ†Šk ãî6=œ™šk ™·ƒŠ†Mꋉ„ù“е·É4` 2>9  17Øh¼¼µ³ƒ‡‡¼º‰•‡°¥¿·‡ 55:% ×6:7æ7M´¿¾†~Ž´´¸½ŽáiŽ´‹Ô kî|385ãn57jÊ|1°²ˆŠƒ°µ€J_˜µ¹††A`55$05=jGö’d·¾¶±‰‘“Œ†„ïæE´—†6454:34 jc†e‰°¶¿¼¶²³³¹»¿µŽ„Ž´™žy ?$&$5 4 026ñt4ོ˜ã´‰¼¼ˆ”€iy‹°²˜ip 3$7æÏj árlbŠ´‰Œ€†„±´“‚莎µ’W—ém6 j9 Je5 ko Y´°Ÿ싇ž”…˜ÛŒ€„m™€…›Ú6 ïSëÙø3„ž€¼jÔ”³Á…€„·´ñ…•aâý55no 45 44ÖŠïŒþ…äA}^–бƒ—Uéàˆé„tåqá‡=6 4 Z^d—HÿìG¶œ¾¥0i¥4„´íµš¿¼è¸g‡´;7½?$9&1;4è`°¥§¦²µ´°”ïŽãfa 126%$6763ošAÑ„èõ´¥¤³§§¸¤¡¸¾ƒŸp  36 ?&!%''2:8215’äÿ˜·ƒ°¾¼¸¦»±Ž…º¤¿´¹¸·³¶² ö 6982<;:!"'4645 Úûå™Ú€¶°Š··¶½¹‡—ûニµe…¿¶´½ëã’ï‚áõqi3'8=7??>>5 ?>85jÌ€š·¤¼³¹‡·¾¡£¦¥¿º»§¤²˜ÉÐ5<3?' '7ÕŒ‹±·€†‚·¹¿¾·‹²¿¸¤¶ÿúµ´²€sâjxj ?'0  7ù™ïb42dh}‘æÔ40 0QÎ<è÷™t4⋦°´²´¾ ¥ºŠjž½¥¦¹ìäâže <&;1 ?&# ':9>?;%ä”±•šŒ¼²º¹±¥º§¦±¶½‡žï4?7  ?01•‚‰…rœ½³³‚ˆÛ]‡‚‡â== 48:?=?:& !2˜Ÿê…¸ ¡£¾´½¤ £¸¼³°¥¶ù46 5?=&%%;&!!$= íÀ‘´¾µˆ†‚´¾°µˆŠ´Žƒ“e d•äñb mnx 1”¶›‹Ÿ”‰ŽŒ‘bs·r7ˆ†982—âáw ’±¾ˆ´›Š¼»³Š‚€ˆš³´”A 06!;3?00fz›üŸ¿±Š´´¥º°“mž°Žf2 bu?&>x ‚´›‚¤±°¶‰µ‹‡–[‚†óÑ 5 02==„ƒhpK盄œoAžŽ°¿€a}“’ƒƒ 47Í…a 304k53:5Λú€`‹¼³ïWŠ¥¦§±´‡¶½¼¼’1 mÇ 2;>7 9!&'6Ôïwdíšµ‰Š™kˆ‰¿¾´Œ±ŽŽ¶ç42da?3âj =4”¶ˆ†óýi‡¸±ÂŸ‰¸³·µY—à07Ɇ‘ 66œ–12Z€¼°…äiQІ’냑17û„ Œ‹”ñeްÀ 㜅´’îY{™‡900D„“†J’´šú 3}ý™åc…y™¶žj6‡Œ‰Òa1> –à‡–ñ×–q´¸€œ”—ޏ²`—›·‚‡J59$14d\ ‰ 9kA楡‚ ´²¥ ƒ¶¡£…˜¿…†‚,k !4&>9'~é”—‚‹½¸¤§¼†ˆŒšÖ2ç3<2187 Ÿ˜îe†½³½¥´™¥¥¾¥µ±ƒî–Â=< 144>:042?$&> zCš‡€‰…÷”³ºº¹¸²½§§¹¹°‡±¾¾¿ïKkk3<&!::9%%!&8208%1±·™æžŠ¿¥¥½‹¥¸»¿”vÁ…´êf–±‰áhƒ´í3=6ãí?%=ç•3&% ð‘i637‡ˆéa‹¥¡¹´“Ф §±—˜º£¦‰}é·†:!0 ="&25 6$< “ˆ€d 4O´°‰ ‰º¾¶tR¶¹½´|l·¾³ ºež¹²l1=Ý‘Q0$#85> !'<1%?•°‹ïÀ‰»¦¡¦¶‹º§¡º´€Š·¶‚`c‡v=86ád7006šú 01ü™[ 27ön =5[еšhá·¹³›“–½½¡²„é¼»°¶™nê’>? :%3 Íi5<:Êì00—ƒƒšÿ†²c¿¶‚z™Š¥½ŽíÌ·¸»°ûá™·²ƒý ]m5?$'945>#:1û 6·‹·ó‘´¶²¶þŒ¼¼ƒçî…™åt刱çc•š³°€‘mŒ±c63=4ì47$$260>%;0u5°¿¥¿½½±¦­¡§µ…°±¤º“ús•„þb3'&< 2%$:: c€¶Šæì¿»¶…•ƒ»½´Šlj™T 5  ¶žÐ‰Š½ˆ…„ç‘´°°›Á•o…=3<7 58'1 š¿½¹¾ÞŽ­¡¿€vƒ¦ ¸J%†Šz7%7?"3>#1“±“99¿£°d±§¡±ä·¼·BŠˆä 1 õ• &=i‡&!6IˆB 9’Š·¹·ž±Ž¶¸°µä㺿²91`´ï4:17 313á5—º¦·ƒ§£ˆ?í³¼á=”€‚y 6Ê<&1?1j YÒ¶¼†j¶¡¥¿‰¶º³´ƒ±²Œ‰³²È%$ o5%&4=%'=K096’”–Fµ¹¢¡”¤ ¹äòÕŒ±œ ”:34<7{ï·Œ°¡½ø¿£¾‡d†¶³µqh= B7&:´è 9€“l4슆ƒ…PŸŽŽ†Žé ‰±€l éQ‚9㇆4 f˜†X2‹³º×d»¥ =ž·µœ7äGn^Ãk06ië“ `àÂy`gŠƒaì 5U·¸ 󸤲âñâÑnD‹µ‡d7=47‰µ~1=€d 6µ‰°…¾1‘³¼Ž'³§’6_$䄆<h³˜Wnâl Lïä^Yëm‘„±¦ˆœ»¢¬¦³²±´’Ž0 9:& "!?59&9“? 1†d1ýõ4 62=5càƒ‹´²¼¶¶¤ ¢¢§½±¿¥¥³…´¦££¡¤§ ¿´‰‚æ 5곸¶“Ü艉“3= ï Џ€6gŽ€^4o|c7“‡åjäÛ48<ž9$254=90|Ï„´ŠÙ¶¾¼½±´¶²¹º¸²±½¾¸²¼±µŒ¶»½ƒä½¤º¾··ˆšŒ·˜ùµ·“ Ñ7=3 73:>?!#!%9%& :<0?:$!'%379=0j  4=<377>?= 61 sìÑc™‡‡’µ†˜æ›ŠŠ‚’±½³·°Ž‹¶±°†‹±¿»½¼°µ†Š±·µŽ¶¥¾¶¿º¤»±¿¥¦¦¦§¥¥¤ §ˆŸ†‡‡œê†‚bæäî501716673==32=8$91?38$36=&-!$9:!!$:9;23;:9=  3së57zãàKßµ³·…ÏŽ¶µ‚°¶‹ˆ²§»¶„ùˆ²»¼ŠŠ„‹¸²‘òîá…‹µ²³µ„±»²Žeg‚‹‡‡ï܉÷5màæð “’r4ó˜…œ`ã‹™4  >3ž=>àŒ’ ·wæâêŸ7 Öƒ±µ†††·¸¿°‰—‹¸»¾ˆvì³¶ÉN´Š \“56w_q07 =%> úý6:2Ýb3<åSt60 xm1>3”ì47à†’㌟瞀Ÿûÿ€‡íÅtïž´·‚ƒœ›µŠˆ™”±»¤°„²¸¾¶†š°¥§¾‡xzž›—Ó°³ˆë4‹•—Œ³±“a h’€…Ý †šêi°Á7bÍ`4?$&%747?653;%=5â…˜œT܉Œ˜‰¥¥·p02‘•`áˆê 880„„óTÇáÑa 07눂€çfb›„‘ä‘·»¼š7›µ‰’Næµ¼ŠÚ o‚µŽ´³¿±œp„´´‚šq606103?1ä”?$:?=?? dµœèÜ“¼¤¼† fN™†‡œz @·‰wjTïû—š´¶Œí⊶Œ…˜Ž²³Œh1= SšŽ´µ‡áöZj „³¹¼ˆå ñŒ¶¶Çfhh ×¶¾²ibm{ÿê–ûê•p vê• 65>80v‚µµà<7ÐŒ€ˆ¶³ˆ–]ðókꀶ¥¿µ„ol5<2Œ³ŽRjâíz514|·±šAãšÕ•¶µž›˜ëÁnFéÍjhZœ_cŸ‘ <= wšÄmŒ¶‰Ø ‘„’†šµ‰…ü b“ƒŒŽ„˜áI 4…€‹‡{懆é5%: œŽ†{•ž4?2 ~ˈ´²±´·‰ëAB¶´ˆ—yÓ––z32Ñj794?%:3µ´„ñb`…€‰µ±´–õ´³¶þ„°°Ž03“†’”•µ¤§½œ k†´Ž›Èwe>$&%>25çÜt–„„16ˆ³·„WÓŠ”01†ŒÃ á˜j536Ø“––ú÷†Šµ‹–54|U{±±€ †´´‡’†½§¾†07ûåg]÷Ÿ´µ…08?W€ˆŠ††Œ„”726ퟚ…‚²¼¶– `·¼°ƒçQšµ‡Ý><4å•àJ”š”3~ÕÖlà…Ž‰ëg›‡›@”·¥ºŽ7_ÃbηŒc7dƒ±²½¼¹¹¶‘ 93“‹˜òO 282˜¿½† =4ï±³œö–6 䱲蚱³‘1𳏼¶7<>4Qô|½¡»ñ%,!4ƒ¿²µ†µ´› 31ô˜Œ°±¶Ž÷31í……“Zqü•iñ‘…í n€±k714cg€´ž2Lï31Œ²¶…56 nÙ² ¹$&7žƒ·¿³™ü·¤¥¶”2><7 jðž”4=‘¹¦º‚4i¶¥¹† Þå41±¿²4>95ô‹Œ‹¶½½™5$$3í‚´³¿³ë0'&1aŒŽŒ–ey65l€Œê4 ቈ—~77 `޳¼‹Å  ›·¹º¾:!>ŒŒŽ°³Ž0:7â´²´žd{÷b 1ð‰†z54´±ŒØ z–Œ·²½¶ë7ä’ˆŠ¼²Šx3$8þä鄆‚‡í5„¿¿€dŒ¶Šâ51d 郌A=$:4rúæµ½06 €†€€‚œ64†Š‚”y󇎀10 fgd䚆™â 7 “„“„‚µ°ˆ5 a˜û懌42 ÞÁ l™ŒˆŒk 1‘Œ†êÄ¿¹¿ˆ?7ç°·•ð☆ï?8‡´ž1š³³q=? Ö–xæŽµŽ‹˜06„Š•ëˆ…23ž˜øæš·ŠœÕnasëîßbþ´¼½™ 勊ñ ‰ˆ†À282•á °²Ÿ>!0j’þ 1 »¥µ3 àŒ“4ゆx48ˆ°eçŽß6†´ÁɈ³°‡5 jããua627|Œ´Ž†žœákƇ€–†…ÀC5n[ ˜±°áaùâeû……ÿ >> н´wh·»¿‡0‚²²™7 ý´¶è6:0\´´‘ E¶º¹–0;<‡µ‘=4l‡€>%7沿bžµ´‘’‹±‹ñÈå136S”ž…††“tiajgFàúÉän 1û‡„bû¶ˆô\Ž´_ a´²µ=8…°´@ †»¤·:9˜±Šb=; ˜4$%5„»¾è Ͷº²ÿ51ˆ¸¸ƒ ’Š:$0í±·–k•˜èd“µŽs dIecgarEió„…å×ꆄýÔ`c˜´·ž ??ü‡žñ°¥½–4 ‘ƒ60žÄ0%=в x´¿³Ÿ67Š¿±óŸ¶ˆ<85퉃þccà˜Õ ì·µü54„Ä zZuA‰‹€›˜‘fü´™û˜´´é77e€ˆNgšƒ’a23··L?:›ˆí==5ýƒâl‘µ±b52‰º½ã 냇m33 ‘´µÄŒ÷ 4Œ´–iî•–ô 㙜†‰Ÿ} p´‡ç䇀ú›´´˜F—€µŽí=7jŒ‚`0=ㄜ=$:‰³š c‹²´[79 ‚¤¥‚·µç0$=–¿²Y70 莋Ó4;0yµµ„ÿâ´´ë681V‹´·Š…{bq󔄈‹ä Mšù‚°·ï4|Œ³·Ô ˆº¥³x094Ÿ³‰;?ôÉ '/,&¶µ30‰¸¿œ40຦¥‰Eùˆ¹§¤·6´¤¸š1 }ê>,)"?7 IŸü ‚±²²·šãà’´°²´‡…·¥ºˆ540$'<ê—?:;4ŸŠ 5g´½°›6Ÿ§­¥‘š¾º>0†¡¢¸ê抾¤¹„2|¿¦²Ç46†‹í6!&4·´€ØI‚‰‘™¶¾¥º²†è†¶³ójéµ²Œ76  72%&>’ê% !;Oy 0š±´Å5?=‡¿³”—‰µ„y2 –¶±ïWƒ±³‚4’·ƒSlç–ãi1>?5ôë` 7 r‘µ°åꘟnî°»°– Äœ8' ‹¾·>:?ššo40´¼¶u6?7쿺‹›²¸°œhêµ°žŠ±ˆ˜úÓŠ„dçœÖ éµ±Žïm\Ÿ·‹ìg–¼¡¤´ÛµµƒEk‹¼·W78< ÿ–9%7ö‡å=>= j|70†Œ’h5‘Š„ o‰·ƒbÈï•b–´‰œì´‘6´¼17]—Ö13‹Û7%%6Þ‚å7:=»¹ •·²´å ¼½‡?=€Žx4=Ÿ…ô 5ióa v†ôjt—†ÕѶº½‡t”Ž…õã¶¹´ò4¿²æ12¼ºµ=1´…=1ų¸°à 6b±¥²á`²¦¤³‘Á‰¶°Žäõž‰‹‡n w„– aI02 h>:?4h5 nš<9¶§¸70‰·„ ΰ¾½×>$0ž¹²Ð08´¼‡93’€ï<;1f‚i0?1s 35ù‚ˆ‘`lí‚‚ŠƒšÁtà÷qeŒ“77jŒ¶–<1…³Š• `µ³… :0I¥£¤… 1´°i ¤¡¾õ<9µ¹½€eç¶²¶É56nŽ´1<ŸˆaïŸâï”–’޽¸¹´‚–ž”’‚‰°¼¾±Œ—•…œdဎ˜e 142?= î—38?Ÿá %9Ÿˆ‹žm h™64Œ¼½˜ >2Lž˜`n’ƒŒd2 “µƒ 6EœÙ 3==3dƒŽN 3 5 ‡³±‰Ðx茴¶‚†œoçž5 w‡“ÅTš‚é4t€µ±½ŒnИ– `·¤¤°†þbv‘œðv‘ƒŽŽƒ„Ë[‰‹\ ÆŒ„ž‘Ÿëd6·½c¼¿!º°#½»!ko»% qy¹´±·2ˆ¥´ “·-?6# ó‡·¾§¤¡¾¼º±ï×쑜 <:?>'!%6Fy Y›‚z›°¾¼¤ ·¼¥ƒÓù;:8:8;# &- "#93 P]柕—÷›´ºº¾±°Š´Žìåš‚Š·²ˆµ‹Ž‰àí`On <8<3%905b„‹€ƒ±¾¼²°µˆ±¾¥¹½¶°¼›…to—´¶²¿‰Œ„›k u›Œ…†„ƒš“•êjúe”šž•f ð±¶·¼¿½·ššö˜Œ€Ž„Œ…W 7 s420>8>;'&!96`RÄjóF`‡—Mêáùcb ú±¶Š²¼„“›7?0 =2??%'?6406471<<1=>4≲¿¸¿°¼±†Ž·°±°½²µ´ƒœãã쎴‚š“š–09%88  ˜„”u iÛê™ÃD“QäÌK‘³¤§¤º¡¢¥§¿°……†ˆ‹ƒ›ƒ”ù}˜ágoüƒn56:26 €ŠµŠŽ· } ^é 铈³»¤¾‹³¶šÝìjcDéã 3'#$?1?8<20298'6šæµ³¿¸·º»·ðæòbj 69’ Ó=8ð잊´°š•=Œ‡k†°´o40;$;>7 7;!4„ Éå÷u·¤½§¢¡££­£ÅŸŠ¹°¼¼ŸÇ“Œ==46 7>0 75µ‡‡¶¶º§¡¿Œõ耷½³´‚ŸKå—^‰¸¶ÓŒ°°ƒ‘ë똅ㆰµ„ŽêÃ>041:>0% #=åe”›Š°·ŠÇˆ|…¹´Ê“±³³jd5 ‘1e; 2>& 9†^ψ‹ƒšŒ—äŽ6˜AI4:17?ë3 –k03%„‰°³º²ˆ„‹ –°š‚¾è—‡´mr…u Ž4%`2³·F„»»½º¼…œ„\°±œÕµ›·„491 1›6haÎ7 ’·¸³½»¦º§£²Œ¼½·»º‰´½±ŒÝ02 5<7 ?6<&2 œø~™³†ˆrì‡ìíõ}—‰`3$1 f v151’‚‡„™€±´çÑõ–_Ÿ…å삆|67?<r 7 74:';1u4†•u’“žæ‘k†°¶‡d5y—`–¿…8>ƒ„†‰ƒì€¸–‘ƒ¼°ïÒþ³··Àâì~ë˜iŒ²µ6<$ îäD•—šŒVbj„§´…çhü²¤Œµµœ‡½º÷î±¶¥¦f <8æ‚ÄÀûtŒ—9$=65•‚e5–ƒ Ÿzʳ€܉ƒˆ¿‹5 gØ4šb7! 7öúôg=ŽŠŸšŸn´ˆŽŒOÿjf††e=&%4ãá <3 c‡½€‡™•в‰u€´¥¹µ·½»§¦»†yn`v‘æ’2$&$5æêF‡ƒ¶™ç €µµ„vŸé瘀ã542 :$ ;373:?==hd—“…ë½²•ó•çé„à‚´°Š²ù㟈Šï˜·í޶†¿»¼€lm^€†‹‚‰°€Œ6 „´Ÿ›‚‚ŒŠŸîO1h‘Šm 6 561f;0a’¶ˆÛ—‹•‡…4ü„›Á4_Ðm7žœ‘ý€Œb7²²»·½§º¼Ÿÿñ‰·°µ‰Š–Œ‚áøb ‡å`Ãvèâ4  N‡Ÿä„xb4ïè94 ‹ž‰€à†…„o7226mq 1hÀ{6`†‹`yÚ¶ˆ• 7‰µ±Š³¤¤»°›`è‹··åÊšl‡ï mÿŒm|}jlË—–|䂵ƒh14n’7089Ά€ña€à91žÙ7 …oŸŒoÛ°·´ë45 ò¶µ‘´°¿½·ŸMµ¹¶½†c™š“i´‰µ“e75b—üc›˜åá`½´n4 4Oydü”V68?ž·l {ë 5D$<4—j~ 5 5 œ_>%$z’ŠO鈵‰w dã° °åœí™é³½¼€5Š´»±ç–hh‰™o󞶺·™4€½±±ãÔÝe Á„¶µl43n’z z62<4•™ä~ 14f5k4>881Ô|çåaizê·¿±‘xï·‡“›°°Þ€²°µeƒ‡Ž›kˆ¶³Š™Ù ”°¾žÝ™ †2¿9ƒ½b„=™'‡éïë:àí7’‚€±™pæølûÕ^mp6;&$37= 2>@4˜Ži÷á°°¶¹½µ¼¥¾¼€…Ц°·±ü[ñ“A47 =;&'&4 16!!=3<Ô‚µ¼¸‚µ°·¹§º¦¦º¢® £¬¢¬¯­¦§º½½°‹°ˆã‰†ˆd’œ…´°œŠž„†f =48%$"$;%;' - &!$'&:9%9>!$'$4 57 749=mß`ë gJióûž‚Š±ŽŽƒ±»½´²‰±½³¼µ·´´´‰Ž]õ”“nZeãÉî™ïêùÇÂô47  ö47 uj f 16X„†ž‡‘†‚€·€Ì‚Ž’´¼µ¶²³½¥¥¹º¸¾¥¹¿¾µ±¤¸¿¦¥º¡£¡£¢¡ ¬­­£»»¼´³¿ˆ´´¶ƒ“–@”šé  =4 63363628:!$$&&!#"$'''##!%;%:%;;88'$'%%<79<;:30 0<0742?31wÓ|”—‰´·¶‚°»§¥¼·µ´°¼°²²¸¥¥º²²°²¤¡§»½Š¶¿¶¶¶µ·¼¾¿¿µ‰Ž¶½±ƒšóêà|Ïy•–Þ{þ46| gp÷›ít4 7…E—Ö–‡‰Š€²º³±éi™ëì·y‡¶Œ†›÷þƒ±µ€àë|‡áL„šâÖl~„„Ð6<7 >6 7670 73;:=:$1?;19?3?00293729%;<8066 gîúõy’‚â~f„†…ƒ±½²¼½°¶¾¤¾±±µ±º¥¤¥¸½¼¹¥§¥¥¥¹½¸¼Š‚ƒ“‡°‹ŽŒ‘–é鄆Œ…™áTúà’”uqe\’‡âçeõ5 ~olPÊðN~hZf×iJfܜ٠05Nîæ ihü€—Üj žçe—@h~ëY73 àf… dó–i  1Üù’bÌmo  4מkaKkiv˜’xÌ´—„µˆ„’ûyíµ½³€éS„ˆšî”Ž‚·¼‰ípÒí‡ˆŽ€–ÝΙ†vrëŠ±ŠŽszá’‘˜‡ƒ÷ÙVcbš·´š‘ÕR–‡–dƒ·µ„àSâñ†µˆ·‘èèÀôÖVð½·œ 4qõñn“îF•5=4O†‚‘56Fþ‘q5==6–ëQÉ”â 5怎µ— ^ËËñ“š‡ï5ò´±‘ãeag“¶°ŠÜ4>< }á…òí”û17h‡½¿‹í㌆³±¶´›5ž··µ‚Ýbfcé‹¥º·ä š·´ŽˆµŒœ`j쀊¾¹çz‡Œ…š€Œˆ·±ƒ†´°×ï 7‡ƒò2%9 •††R´šXô€µ€4''905232236çù”“3&!?13 6449;0dí×—j10@Ÿ„ZqV3¸¸¶ƒ…l ÙŽ“àˆ§¤Ìe‘¿¤¾³¿¼´nÃø€²¸²žzÜ´–·ƒu î°ºº·ˆ×j}—€¶³·¤»˜6â±½²€Š‹‘V˜‰¶¶²¶•……Ì€±ˆãá„g “¶³³µ…å 4 P±·„ <$0“û˜ƒ€µžç „³´“5 ne5>< †3910>375•——>$$>27 6 4:%3a×äŸ ×\te1 š½½œÐ“—iѰº±þS l‹¸±†°¼±îdÃóx…¾¼„M‡š”êŠè”†éº»ˆô––ø÷¶°½·Ÿþ𴽉“G†Šœhú‹´¶Œg[š€Œ™ŽŒ•ê—J͵²¶„I Ífc˜‡— 42<ï€é`Æ–áeb€@|XH 61 625l†ì 9;=17745nKc 1?=kÑ <>12=Cb15៙A 34oZ’»»ŠÜ—‘†·µ°‰€Ž‹ŒçhF²¤³æ‡°½‡›€“†‡„‘䆷¸³š „¶ƒfšŠ¹¼Žéìgþ›ìµ‰œl—€ \œ‚Nü€…‡óŸƒ‚`ㆀµ³·‡cîíÝmϱ½€ Hk•è`îœé522y™ > î‘ÊVç굃??Qs p5305 ti7íå1     00 e†• bŒ°Žysçòõ†‰øò‰±”x”´·à’´¶µæ“´ƒnd›´¸¿ƒiü·ŒŸ’ã•´¿¿™bk󌴱ƒ–ð†°¼¶›ÿÌ`õ™e’‡ŠˆŽ”ëQ‘‘€Ž·‰‡…é^ÊfAp‡‚Š‚—@nÝûÓ 7œ‰™v Ùs` 5 H††Á<=kŸ• 03f‚‡]67 —é6<2…0>7 …} 2074•âo 5 nÁj†Š†d넞 霶Œ›–n…ˆ˜í°¿lX’ŒQ’逶±j¼™ 7y´‰´šn‘šjü„°·‰³ºº†bž¶°Ž†·±°±ž޽ŸõïèÈ 69&<õ‰‡=>3?''>>864=:‹³”5R† aõäDöíé³§§·•‚¼²—b²±¶²²³±±¶ƒ“´¹»³ˆ·³ŠJB†ãm僆ãxKˆ±´”  W 40  =:;4›„æ5>:8?<66>= •{3=6n€Ìbû`ñ“lï…¶¿¼¶‘ë“’Ñv˜ˆ·µ±³·ƒãž”¶½½Œ…•™†‚‡áa’Žƒù_°²¶›55{–óe5?95c€˜÷=?0 0?2 Óí 0 læïîbkbDy\Ëqb“‚‚·½¾´ë†ˆ–±¸¾˜kn俉²¸´S•³³Wh ²´ƒ´²¶‰|71f‰‡057f6':5QÂâkn190 32 äâr7je|߆˜ Åáaf4mïuEù–¾¥»šà¶¼´ïS¶¸¸ƒvlQ‚¿¹´ ´¾´Ã‚¶ˆeƒ´±·”n‡Y 79;7 =<7 5 e逄q fœ‡èQîé`ìဲ¹½˜ü·²³Ž™ƒˆ²°Ž—Ü”´¶ƒÔÝŒ¶†îdf’–™óöZž‰‚†ž†ët@“ŸanTX42>0  44l2<6  47e|54au˜íyr™†èÁˆ½±“ds™Ž´´Ž„´²°‚–‚›á™‹´…`Ÿ˜Ó|ö—Œµ„¶¶˜˜€s䀀wf™Ÿ=$84n5=75647<=ôé ?? `•47‘ìziQ›‡Ÿp úƒSH—ˆˆ—šµ‰Š·²°´“Ñêˆ²Š€˜‡‘uk뎋þcB™ŠŒ…|±º±‡Ýá寯šŠñU‚`4%'7À–?>4 =>1 i7<=ÛÜ7 u–G _‰”ë“癃‡•–“m޾°€u†¹º±Fd¶¹¼“ᚕӇ‹šÛê±±œ 5l²¸³è\J’ãë“‹†žnäžà%%2Gúo637 ?8265f >;2\EÚYa€Œ”…·™ „·±†øÝèàzÞŒ¶¶ž𾤵·¸¾û䄇üžŸüj„±½– â°¿¶{ëƒëDâ˜Õê•ä ><5z 51983  <<6bcd[5MœûoC˜”Ꮇšç⚇œñ뎱 ûˆŸ…îáEóefI霆‰Œ’´êÿ³ˆžc—ž¶±±·‡‘„‹¶†„º¥‹4_ŸŸfØ79'&!&#&8>!' <3ån5=245K™1%:708'9á=;1ðc±—Šƒ…’‰»¥¶ûJš·µ–jëµ²ˆæwꌇ€‡´¹½ˆà‘Œ°´šâµ¾¾‡P…ëï´¿¼´†€‰¶‹¿»¸ˆ™´¶„–ê°¹½‡ˆ‚‚€µIrõc71ƒF™îÒ{…·¶Žƒ´µƒf˜‡o{µþ“Š‚A•‡‡ ]îk55ŸÌ ò—7251$%3 3$&;629;< 4=?=6 63770 5 44303 D70 Ôîbf–„ƒèÛcç≈€ã‘Œ¼·’mf’‡ëÌpûéšžŸ›…ƒ…„‡ˆ˜•—„„ÂÐð—ëÛŵ¶‰„‚މ„˜”…ƒµ‰…™ìÉá‹´µ…é…ˆ±‹„Ófñ†…ÎHå”á~€™Ê÷•ƒŠ¶‹€”–Žñåš—îàÙáøõj}Ÿ‡…—èCQVyÀÏufé—~ 0043>??376=8<6  564 4567noÄÖ„îõ}惊Ÿì‘‚´·´‚”ᙵŒïø—™Œ„—픚˜ìáêžš’“”é—œ’ï”›ƒŽ‚‡“Ÿˆ‚æ‘€´´€–皆šã|d㚘ãÄÉÑÀî”înÒ…‡èyNá›…˜qú‡ˆ–—‡„‚ˆˆýþ—Œ„œôe@ê–‘o臙ïZdpÁâîwåèa   676016=9?=7541<3452=7 67 5 çÑ oö÷YF‘šëo{à…€‡îQ·„†µŒ‡›é”„´·Œ…‡€‚„ãÔ—´€vhɘ…Ÿ“îýñ›Žˆ‚á‘…‚…ÕjÇ€´‰™ž›„Ÿ“”À|ä…„ŸTo|ùæfâ’ÆÀÛã’™–í~ù›††žîœ€˜“’Ÿ„ŒŽ„”žš—ðfjÙ™‡—mÇ”Kkßìgvv46Gý55502304 4<<1 1=<26 134 5 ihnjiÖàårt†“óò•ž›‚š’ƒµ‹€…˜„‡Œ¶±Œ’„µ°¶“—…µ´€“–šŽˆ†•ëNGŸ‰µá߀…ãe|”Œµƒ‘ç—…‚‡šŸõG•˜š’àuS–˜žâeûî–õòíáïÈçicÿü‹ ^‘ìãö4‰Ž=¦8•†6€4ˆ&„D4è Š7tès‹j…ßæÎBé Ë…el ag œÐZ‘ ìÌRLQb  7240?7 ? 304%%&$&$>?00>:;<<>;?61 ket„„‡Œ´°¼³±Š€‡Ž°±´ˆµ±³¼³·ˆ‹´°½²±¶¶±³½³¶µˆ´·´Š‚íÔîl 40==9%%%'&:<>:$$%%! & !'$%%$$'$;9;$$912?983742<06474 cm膓r‡´€–ú˜‚Œµ¶½¿½½½³¼¹º¼µ°¤¡§¹¿¤££¦¤§ ¦¦¡¡££¢¡¦££ ¤¥¥§¡¡¤¿¼º¹²´ŒŠµŒ››ŒŽèxM™žåHo77300==27440045?8:<312>9><9;;>;8?>=033025 4nZU_Ði|áàõDýRi—“—–’†…‘„–會…Ÿ†µ‚‡’“‡‘›˜èñé‘ùøÌçÝŸüCzì”ÒÄÛé{dÕWÑé|lÑkNxabfEê`}‡ž‡“‡˜îˆ±€›Š¶±ŽŠŒ‚·´‹„Žˆ‰€¶´ˆ‚测€ˆ·³´ˆš›’ípš„‰´†žäøuyTJS x56à³²äluá31 6>>898:9 ™ 8>79?4115 ??‚³› = 6>1 64190ñ¹¶j6å4iŒƒá—Ž´‹À~Š££³†‘µŽqÁ‹·€•鑞uœ¥¡¶äaì›—Ljµ˜—ƒˆƒcr°¤°äÖF÷…‹”ñœd43²½F13‡ƒpÆ„ž ~³¾ƒDOÇ 7†uPŸ”5fŠº°™âeT‚‰ˆ‚‚˜bæ±¹œëÄaì€·Š…›ú꘳¾Ž™ÆgnŸ‹µƒÃ àÿ°´š 475ì€{ 415706sÒ %"!$%:2568'92>';644•681úŸã^òú[ñˆ„ä•öh™–…žáìçe°·Ç甋±´…—˜šœû–¿º±ïÚñúÕŸ°¼¶…‡Œœd䌾 ¹‹„€Ž™éš¼»°ƒš‡Íp—ˆ¼±˜ž\óe‰¹°†ãGlç솋âV5€°‡bhWA”´øblž°± ˜µšb454˜žü57´è 04hÔè—ó00I|™†~25 zîa0=?5 5135 ÒÔv—…—ƒ™qÊ’æ“•Îj× ã‚›ôãä~¶½¼³¼²¾¹³¶„±§¤¾¶½²œŒ‡Œ±±¼°±ˆ‡¿¸¾Š¼±„厵‡Ÿ”ia™šýx€…D“ÌjõypQf 61g— ù ìúi4077335;87 ;%80  28éì8: 286 336?? Ý•j6< _Æ1ãÿ “c50˜ˆ’4•ÿ ’‘m™‘ î´´ãh†Žåï±³†ô›±±˜vå²¹´”û—†Éz˜Žžp˃Œ”ൾ²†š‚´’…´°µ‚±·€å]–޳¿´›œƒ‚œë˜Ž€†ŒŽ…ÔxË˜ŽŠŠ‡–•èYdß”ëRbnicþŸ‚‡ðNmJâ\l 4 5é\737 pÿJ >=  11718=cÿ 225Nwbjï‰o4Ò”Ï|cfloAñg`‘µ‘Ûšâ—…›—˜†‚‡“‰¼¶†ïp•€œ„‡åú”ž†“bG†´µ\|š„‚€š•”Ší‡·¼²„kd›‰ŽŒ‰Œ“ôŸ‰‘Óϱ±‡ù…‡’ŸœÛyž—kü´±A—žŸ•èDgnaçìnáj00l žŒÐ73 |10 5101c6%%36 4==  4 ïšæ1>7gmø 4Àz •·µÒ77…’ô–…æhSµ€ù“ˆ»¤¼à—°¹µ‰°³Œœ™µµ„†±»¸š±´ëƒŠƒÙm냇ãð™´½¶ò€·Žîœ‰µ™zö‹‘eX³°š~ƒŒîu™›dm—‘ij‡‹‡ 醜oåŸêm‘‘`ìŒë ’îiæÇ k| àžï7 iI ` >ÿ3„M0$¸³)·¦ 7;‘&4gB¾·¼º0 2%$0  $$403òÆzÊŒ°°´˜ÿˆ‹°’bYw`jêÀ›Í’51M %#'%$'!&'$#':82%'!;<$91dç’‘ƒµ¶°ˆ½»¾‹XŸˆ±ŒÐsžFV 4=51T„Á厳‹µŠ±½°µµ°¹¥²³¶½¸¼½¿¹»»³Š¹¤½¶´Œ³¥»²†‡„‘’ÙÏ  %$2 c036`@Ô“µ²¿¾º¿µ¸¤¡¦¸³‹‰‹‡˜Ÿ‘üï•ng5 bf <73401765460107 jcmP‘€†‡‰‰‰°íœ‰µŽ‡ˆ_57 79;3?09&':9<3>1??$?  445g 47ŸðóúÇ›j’ƒŒµ’ŒŠ±¹·ž“±º¤³¶¾»¼µ€µœekœå030 1bkއ‡†Œ¤°‰„»¸½¶ˆ½¼±€f˜ˆâmˆ´ž|‘ƒŒž†´°RkᎷµñÈš” 1=27;?458$:2Á Æ¥½‚·¢£§ §¦ ¼¼¿¾¤µæzõ€Ã1'%= <%!&0?0>;<1 5=5h‘ìïbƒŒîᔌ’”39'$8;:'$8=7457 ë´ˆ‹Ûˆ´²´Š¼´·¶¶ÆaŸ‚ŠýœâiœŸš…€µµë‚°¹»¾´‚´¿¸µƒ···š›Ž†–b”73hòÓ’}á‹–w쇙‡•ÔŽƒärœ„ähŸf”äølbaa›ˆ… ”·Š°èš‡›°…•ƒ„‰îñ˜œ„Máìþ 706460375;=o^5?G5â—kùg14ÞZ7 54536 >;7 724Töå‚”ž€´¹´µ‹¾°‰´»·´†âŠái÷Õœom æfëšìã‚€€—žµ¶‡´²‹Š´³½µ·Œ‚‹´‹–†’’Ÿyìan`vÖbhA{ÅÉ}‡›”䋊³€¶·€¶±‹·±ˆˆ°‰‹„€˜šŒÏÇaazb`S”qaÝåwü 4 6?1'$% #",$$'88647 44 4 ”ÂnÇ”þ”w‡šq”˜uËw{dÓú™‡Ý‡´††€ƒ†™Ž‡é·ž†±³³»¹¼»¹§¸´µˆŠ†îSëùsb”ã“„—ƒŒ„—›šoy“›ž™±Š´²ƒ³¶†žèàlifûQäå’ÏçôAgÆn›šƒ…·µµ´µµŒ‘éeüû}ü˜ÁšâÊ–Id10?>0=30goèÎõjn 5 4CÝ 7 70<909<16 a mLß⇜š™ÝîAœçð…Š·Ÿ´´Ž²ƒ‚Œ”‡—pIg•“FŒŽ´ˆŠ°··´Ž†˜„˜a–ïî“…´‚ƒ´±Œš‚‡æíKoÈ{ØøÉâêhõö•slq`Äqil~‘†™“œ†ƒ†úè…‡šœìe`ÅþÉ”•è“Ä•ž•›]gß^ok  qÎEME o i 5  5 044546274747 5 eeF_÷äü@áñŸõâ‚—“—[vá˜ÈY’ê‚’›ƒŠ‡Ž€ŽžŽ“‡„…Œ¶´„‰‚‰„…‚€š“‚€èôù‡‡‚–膖„…”’˜†”›èûåêúÑø”÷äò~exàÔPêŸâåíê›ÈÌï‡þÌNîäcQÿ~heëä{pOíÝø•dgsláTnüæi_l{ 57154 44 556 1575  kb}guçœçj|äúúak–„ás”‚‚Ÿ„ë„›€œ€›†‚„ƒƒ´Š„´ƒ€Œ‚‚‚žŒ‚ƒˆŠŒŒ„ƒ€„„œ‰€•”™……‡êž†…“…˜••á–˜›äEâO’èZýü—šçèéâáPœƒíÐüí”ãa}X•ýüS_F|`löòÖýoj|vi  45407 55   hfdKàCr@š•äã™…Ÿ™Ÿž†€Ÿ‰Š‚…ƒ€Ž‹‡ž˜†ƒŸ™‚•„„‘á…‡†š“ꔞ—–釜”Äì™’…€œ‡˜†„‘‡˜†ƒ€œ™í…‡‚‚‡ž€‡„…Š‹µ´‰†‚‚˜œ–——ìÉNFÝêï”ùFihrosoë•år[ÿÕg 3<>3=13=221100=4 660?<39?:8<==8>;=1  5610bÇzzû˜îùáä”ìüìøåì–‡‡……´µ‚‚Žˆƒš‡Œµ´·¶´Œ†‚ƒ–ó…ŽŠ±±±°¿¾¿²··±´Žµˆ‚Œµ³³·µ¶²¿¼¶‰‹¶´‹†‡êëí•âòíž„Œ†—Z@á„ú–œ…š……áyáë’érgkijd`50761703=4476 5 5546 5476 4 5 455  DøK]jy÷æèç–—êžê•ëç’ë“‘ýàí–Ÿ—ë•잘…„êž”†€›””’†€‰‹‰µ´±¶²°´ˆµ´±ŠŒ‹ŽµŠ†µµ´·´·‚€€‡··ˆ‡„˜Š‚™…„˜€›‡—îàg‡‘†šišõîêô”ëTxÊ@^ žäfdaíonnpjòxw 5476=47 67 1611555  7 améDeaäã…’ä—é‚✙⑆“…ûû윜‡žDt“ûŒ“’‡à×cžò‚†ž€â±ƒŠ‰´Œ·µŠ³ˆµ‡‚´´´´ŽŒ°µŠ¶†µ´´´´€Œ‘‡Œƒ„ñ˜è”‡ççÙëy™Ïîdæ•BšZûjôÎã{ÏÃôXÄÿáM}”^I÷hÊí~Ópb{n~g4 176673560 4 4 44ch 5 4445èã‡ÿÅž„‡‡“Å…“ï…ø“€±“‚’â‚‚‡—rÍÁ†w”ßhՔ⌚ƒ…Š˜–•…ƒµ…€‰‰´µ¶¸µ½¾³·¾µŽŒ†µ‡‚…“€”늀‘·…êâ‘|hob}”ì”ÀœÆecÒuÌöödE‘ˆh˜„úãèd‘njM⎛–a `z16 447 4ð7z66237131 7õdKí 1655>1 6 5i …›”AààjWyñM–¶‰ñ°½Œ‹Œ„â–ƒ‡•—™fn·œi·¿Ñ‹€`œ‡È•’yû²‹`Š·½°‰´¶š·Ÿ˜Œñeصdï¶Ž·´ãD“œ˜…•ø…Œ–ƒá–P ”ˆ‚šꂚ™‡†€ç•™›˜d‚ŽÙùŸ…– {˜57f7=5 3 1 1;71= 06 72<29&&''# &;': 3 ÚJj°‚“µ¿³’‡¾°œƒ½±‡š³°è‚¤¾’‡²¹šÞ´´ôä´·™ö‹°u‚´o¶Ÿh‹³‡ú³¤¾Š¾£º‹¥¢§´¼ ¤‰²º°’Š¿°†Ž»³ñŒ¿µo…”1k?16 Ÿ‘ h‹Œh…‚äZ á•‚‹SŠ‹X›ˆk•‘ öšìƒ˜ƒf ‡6Ë3 c2c1<u34O975904;4j7> n01>?7;96<&85=$<523 61m öÿ{˜t‘‰š‘Ÿ]€›‚ƒŸ„‚Œžžµµ€†‡x–ƒ„‘èéèêçêÈd—…›’’‘Œ‹¶¶·µ´°´²¿‹·¼¼²·ƒ°µ•Ž·Šƒ™‚eã‰áOÁäìc 6nr˜‘ú…‚™XŒÄ|Ž‚’g’„‚žlóŽRœ„èpˆW„m–á’c5ják 4Ú<J 5h3Ñ56`<ô31<%945?$26$> ?6 o ç|’Ži€¶’ËŽšëŽŽî…ŒŒ“톊”⃴‹“‘ž´ûŸž›þÇfÉóqççƒàޟ耊㴌ˆ±ƒ€¶´¶´¹²œ‚°¸Š”ж„臇„Ùfê11‘— [ • šî㘚€hõ°‚‡‘m—ƒtr„óÁ‡ásðèíÆ„‚Þâšà}tò–oÖ™cŽõä–—t  5f m j5?7 676=31%%2662>1;:0 K6\ ˜œàýìÈmšƒ€…‚±éøŽ‰•_ޱŒ‡„‡‡–Ÿµ‹™‚·™Áœ†âý€ƒ”và‹rƒ’€·öð€Ž‘¶·…¹¶™‹½°ïƒ¸‹‰²Œt…Šž”šš‘’aþÇA ŸJ‡zj›oòŠ…‘Ÿ‘œ³˜–‹†dŸ‡ln‰Ždf”ÄV‡œâœqêylisÑçùh‘ Ù_ 75 7 0642 4<<55012>;>06260 54`uìmJÐ…œë„…Ÿæ‡¶™•šµŒÐ„™Œ½ƒ‡†W™±ŒëŸˆƒbЗﳌøîãœd„“žŠˆiõš°¼´‹ƒ…‡––´‹µŒÉ{‡†…Š‚™jmVyåïècÈ ÐÁbŠãò n…4·´Jà‹¡&á1Ú¹=?%>746364=<5 482~394kÓ›‡œ…ˆµƒè¿ˆÜãž’”††…„±»¼°¤¯¡½±ºº¾¾¹»¹¿½º¤¿½§ »ŽŒ·‰€Œ˜Án”n‘ˆx1172<9>::''32?3f497 4 43= 11413 1`œ™ 2yàŠŽ÷™ž‚ˆŽœ†v€µŠ±·¥¸´³·±±°±´±Š†³²²¾¾¦¾±²µ·¶°‹Ÿ…[–‰‚ƒ°ƒšµµŒ€ƒÖëüëuÅ›QtUž“gj6254 53156<<9'&837=251?05553%:7 7 j ÷ 76“—剎ím郌êùB ú‰’±±„™‰³¼³³¶·€š¿¥¼Ž‰ºº¶Š²º§¤¾³±î´°ÀV¶µåQ‡ƒ›Ûchã‡ú†î cpç 3<w=1àd iE 66<1h6 ™òë~x–5535j]5üo‘_ðwm›Š‘µŽ‚‰³´±º¶ƒ‚…°°µŸç–æØè„ûB’p ’†”wâåaä‘àn6?< 5?8162 57 ?:? 1>?77Îý2 • S€‚“æÿŸꉾ¶…ˆ¶Œ¶¥§§¥¥¤¦¾¤¡¢¡²¼¿¼´‹¼¾²‰ž†æ“Œ½¿ˆˆ·¶´µ½¹³‰™’„zpHëÜ625615 12==134 1=00==343=93006>065 5v…Єי€··‰¶³¶Œ‘”ƒ„މ›zú™è‘Ž´µ™š¶²±±¹¾‡‚‰´ƒ‡‚†J`åtfï– ðýÛö7üzk— o52<7<2653450xz|îŸo쇴¶‹€„±°Žá…°±€Ÿš”œ˜˜™\€¶Š’²¹¶Žµ‰ŠŽŽ·†š^4”h 6 k j7=hq6•ï çkî…7e„–€óøâYég6„„cd†Ù茓—Œ´Œi±j~€Öéeäÿ6y‚‡V†¶ŽäSŒ˜ŠŠöö‰€re jôcßí•jâO’šfâÁ”o B–Ácy“E]Ù×uÉg‘`ꚃžwä–„ƒŒ´‚…Ž‚žsl›žöš€ˆ±²¸½³¼¶´šçœ’17=9$';:8=6 54 7:;$:82kiòö@f69<355 é‹ŒŠŠ´‡ˆ‰¶³½¾½½³°°´€˜â÷òFúÈBzaÿ퓇‰³²¼¼¿²°¶´µŽµŠŽƒ’óoc403175 pÂÍàïô_j 55 _œ‡€ƒŒ…Ÿ†‚ŒŽ‹´ŽŽ‹˜“œ•ÉGOQQuNË••œ‚ˆµµ¶±±·µ´µˆ‚……†Ÿõi 5475   fKuöÅi 5 F˜‚†Š·´ŒŽŠˆŽŠŽ‚ŽŠŠŽŒŸãÚÜÛßøíøýŽˆµ·°¶µµŠ‰ƒ‚™Â} 461661455    aÀ×a 5 5G”„‡‡‚ƒ€Š‰‡ˆˆ†š‚‰‚€š„š–“þw÷Ý••íê—Š‹Ž‹±±´··Šˆ†‘âI   kbØÛfRÕ57 45 Rh}…‡Žµˆ‰´‹‚€ƒƒ‡š†Ÿ™€’çÚü•P|ãçîZ懆‰ˆŽ‰Ž‡††…•ìx  4447 5 hÄqa]a5 OÉ蛇ˆˆŠ‰Œ±·µˆŠ´µŽŽŒ‹‹‹Œ†Ÿ†˜ããé–÷ó‘앞Ÿ‚ˆ‰Š‹¶·´µŽ†êYRK 54 44     jCv fóéøî˜ƒ‰™‡‚ˆƒ€ˆˆ‚Œƒ††‡ááüí`mðéãê—–„„Œ‹´·´Š·Ž‰‡‘Ÿêàg   JdïhngØ nßXnñ…€–‘‚‰†’‚Љ‡™ƒŒ‚œï–žÿêáÇdHüÄyrä„™ðÿ€µŽ‚±µŠˆˆ€…Ÿ™…åcbi    e{BvkHbÒä` {zPklç„é‘€€ƒ„„ŽŠ‚€„–…’ãDíëQwNjÅô•í˜‰Œ‹ˆ‚‚†…€…š…úemÀOj  AkrÄjdÓzÀÅReÉiÝr~wÅälw\mÕFmTHd]umêÁUdjÀæeó’ÛB’ž`X›„áâ…‚““€™“÷UÞHzPÕ Ýihã–™±¿°·´šúCü›‚°¿¸¤¦¿‹ŸI=ž„•Õ³¦¤·žƒ‰€c›±¶™b` ;%%85`{âu49'%8:%3 0;;4–žœÞ 2205kØðezçš„·°±±†‚´·µˆ²²·²¾¼µ…†™‹±²¥¹¾»¤¥¹º§¥¥º¼Šîácz“‘h Cöìô4701qr54  7???9167 kFôck 64ä„âdä…„ˆ‹ƒŒ‡”ƒƒ¶¿³‡XGÍê…µ‰¶²´´´½¾½¿¤§´ízàr}óýoóð×”µ” <37<5p ~Ü7:$ c_ dMÉ„i43 h„‹ŽâxbÌ–ƒ‹Š°°’k„…“±¹¹µ•mvÄ郴³º¾‡ˆ²‹´º¥¹ŽXyN–…m iÚ舎–?8?16Ö—ø7 4gþ~ 8:;37 yê’Q5 ›„` 45ooü„жЛzÇþÜqˆ½³°e䌊±´ƒèݕ¥¥¥¸Žš–´¶‰‹´·›Ñ4 s‚…ƒ” Otle 11<> û–ðæ7?6  7466?3žæáË63_DT—{{ÍãRå²½´‹ˆŸ…‰›ç€š€„¼°¶±³ƒþ€³¼‹Ž°¶Š±¶„~±ˆø•S40éænün—ë <›h >2f7 U>?j~ 44?5cÃ…1ƒœÃ€ƒÀá´—““—žµŒ@„ƒý—‚‡æŽ¶·Š¶´‰²§³Žµ¶Œ´Œ„™æwoQú×30x71  5514 02 d 34thžŽ_Gƒ›gïµ³¼´’Íe‰Ôh™¶„˜ŒHa‚¶¾º±‹›¶º¶€ˆ»º‘±‚aøš¶„j –ñ ËŒh4÷â jX’ä42505A2=b 34 Ø 2 k 30å0 Åg5l‹‰…ÀňŽèç¼·œEžƒU~މ€òo›µ…•ƒ¾¸µŠ¼·†ƒ´¾¾³‰é…˜m’ø[oCèÌo4ëx4431^|l1 73M{1 461eÐ oƒ‡ê—€Ÿ–б¶‘–ëra‡Œƒ„žŽ‡œ…Ÿ°¹¥²··˜œœ¶½°·ŒtÞn炈ž 74çùÞm5  `œ—0=1 401775Þ‰Ø:o=#¦¥#²¤"?;ƒ:œ¾¿¡µ5±»4‚¤º"a¾ %$?3¹ŒŸ˜½¾§»¥­£¶õ„îc ó‘ü<;= Vš㖔ἦ§°Œƒƒ¹lŒŽd:>0?&$'<%-,,"' -< —Œò²º §º±‹±¹¸º¦­¸‘å’µ°º  ­¬­¾ƒŒ±‚›€·¶ 5 74 e9%24Ÿ±‹†›ƒµ†žµ‚¼¥ƒñ 57 sâ453 ïc :$2<=2 3&&8%>={‚F 6zwáµ¹¿ˆƒ‹µ‹¶³¾¥¥¿·°¼¥º§ §¼µ—èmh`bå7;:6=1 5117vã†µŠ™mmÚŸ€€éf e…½‹•䙄Ø4 <8=<2=41<'$>>0 •‚±¥¥¼³°¶²¾» ¡§¦§½´³¹²µ²¾³—dÚÀè ?61 30 070<6LzÅ5i˜šÌƒ´†gÁ•ñ뽜àû‚å˜il > 3>=16350 li„ïaDˆv„Ž^œŒ¿²³¤¥¶½º½½´§ ¿·¼¹¼‚‹¹²³¶ŠþYe 251$%?8&&003432;<5oofEŸAN†„‰•Iòý}po…¶Žíë톳ƒ™³nN 1Ô2264€‚‽¥½¸¥£¬¥¥¥»§»¸§¾¹±ïým1 1& $'83>= 20=1›Ú› |ää–„ còh4077f’ž„ŒZ|ã³³´²…|Ow‡€·‡àm ôúm™šŸžðމ¼±·ƒìб±°¾¦¼´´ˆEÚŸŠ”ŸK592 7?4=?0':'=75b 40vâè„•eàìNó]EB   ÞcàA D›ƒŒ·´…ðµå±½¹³½‹µµ‚³Œ±¿¾³àâꇄ„‡v‚Ëcû–‰³ƒ†ébo jab4;:::'> 169:$&93jdç‡Í‘ÿš³»º¿³‰‡œ—†Š±i 6702o10=37㱃ƒŒŠ´Š§¦¢ ¾·¼´€±½¤¾‡„ô5 ãb7542 ôûoj|¶´‡âráæ€Ñ 3?0>7 ?7<:>=bldš–—›ŒŽ‡Ÿ€w•‹´ˆµŽ‚†“±›…‚g„·…‚ƒŸôƒ³‰i‡a™ˆƒ²—†µïzè‰îtænzf 4 2?  1%< 1aQuçïXc‡”âüì}‰µ‡†ƒ•ciiLVÑïjÝ×vaÅÂåèá”¶°´±Š·‰îŒ‡ŠŒ°¶‰ãýð  Ö 5ÅôœŠ‰›Œ›htÇ}Ât›•’‡Ì×{fgdꎱ´²··…ï Ü•ÁTè <722˜ßÙâ~–Ì‚’“Ž´Š„‹Œ°¶Ž€—䇚ø‡Sk`”˜—a” 10 ?3 3301 kç}f_ô‡·±·±·°»½‚‹†{”€š’‰€dŸNë”é10 41 512 c@Vø‡€·¼‚°¿‹¾²³½ƒ’™ë†‘žŒÍwy 426731107 }âañ虚„„˜ƒµ¼±¶»³²½°…•{eÅKq  104 4 qj—œ‘†š…ò’ˆŽ³±´Š·‹±°…‡“V   5 ÿ—ý™‘€“æ‡Äþœ„›ƒ‚´‰¶ŠšŽž—ñòge}4 aÄÿãÊøŒïì›áŸÕÝŽ”‘µ†´„µšŠ‰ƒïÿïjv gs܇’•€“}Ïú“”™Œ„Œž—€ƒµ´´€„é`wk  b\e F—Ìðêñ÷âᑞý„ƒ˜žŒŒˆ™è†Msp7 7ektjihgÇB–èì’}ý“ãVÿ“ž€‚‡„…‰µµ‹´€œÕ 5 6Bc V•––Xwl|À”ôោž–™·‹´¶±Œ€‰„ôËx 02  ðgfxdtfdf˜êÈåeØ’Ï—œå˜šš·Œµ·²³†š•a 417 h}d~çm}MÕ÷|üñÐì’„èÖŽŒ´°²°´²°ˆ‡ügj5=>1477{þEf~`Õsaâœáû‡•ãÂfô†„‘„ššŸ·³¼°°±‹‡q 47020<80kåþ™œéèþqYûÇâûf •‚µ‹€†ŒˆµŽ™†–÷n÷óYx5l0? 5 Aoh—†‰‹‚‚€”Xá~𵲿³¶¾²°‹””H4408:3zùŸ]_cœ“ÌÙý^osœ„êAæèœNHj™€—”‡šƒ“󈱴ˆêÃ1 510353<5é“™–†·°µ†ƒ”ü 676pˆ´¶¿º°´±·Š„RNu 0:9 iêœCjj` ù‰·Š˜‹³Pd`hkòÕ…Û¼º‰¶¼Œ5ê>º&`<ü0†&‚޶¶à¹ƒ @co67ó` Œšâ“þ2< 770 lìä‹¶¹¤¼§¦¡¡§³³½ŠŽ„ž“—h5 1679'3:8$;%$;'>0 1373 1 362RŽŒ³¾»¥¥¸¸ºº²˜‚Œ„†¶¾¥¥¦ ¢££ ¦¢£§¼ƒ‡–Ý“‡Ÿqö”‰†âIdÌ651<><=8$91 4<>=0<:$>6 4100=?0z  •‹°¶‹€ŒŒ‡„°§¦»±°½±‰…‚²¥¡§¾´‚‰†’‚¤£¤´˜€œm™Š‚G l[¦¥Œmb‘la±µƒä Ž·2; 520’ál 74nQ€>: 21’ô|ôge‡ƒ‘’´¾õÊ€‡gîŽ·ŽŠƒæŒŒŸœ³ŒÏЕ—ûêÆc{64 k›Ï–†‡›…”ÞçúEu“ 634  17l\1=609= 5716ù˜—”‚„à嘌´ˆ„ëis—µ²¼¶±Špa™ˆ±½³±ìæ›…±…ùary€»¥¼··ˆé–·¾¼±º¸‹…á€Å̶½˜ 7„…Å…ˆÈçD—Œr4 6<4}6 ä˜À 5rñmIæ7zVúq5 58> m|ëƒ‚Š„}bŒ²ˆŒŒ€öÜafÊçš’á—‡•ê´¶ˆ‰ŽˆšÎÍ÷’—“œöÅèM`ŸŠšÈá™|”“ì“æwèü„‡Ím11× 3347 rj6? Ið•‘…˜ïéÿš„Œ·¾°´˜ah›ˆ™—›—mg憷‚’BŸ’•ìã‘èý䆅þvùêž…‡‹‡VWÿöàŒ·€¶ˆâû‘öÍ—™š“5Æn i ?< 6 dÿ ›ŠœvƒŠã‘Gaꄘ}áÄŽ@ÓÒŽ~„‡µžž‘±µ:¤kŠ5´1šM¶éˆk{à²Qœž“–Nkl“ã>l:5nÜìòž‡¼µ·±¦¡¥¡¡°¶ü‘DÌ Ÿe0ä1&!&:''!# $$#:28%5n™‹ì—³‰·¤º³¼  §­­ ¦ ¦º¥»²¶°½°°¿´†Ž·Ú7=64h–h47<43209&&''>%"-"#!$90?= æœeôîè”à’·‰Žƒ‰·¥§¹¼¶³¸¦§¤¤¥¤¥º¦ §¤¤º¥¡º°Š‚†Ž³´‚‚„Ttí 4Þ x“ 5254432 4?$'!%5593 26l 0 603<67;07?%454 wwijm‡ŠÖH{’¼³µ³¿´°¸³¶¶±Š±¤»µ¼¤½´¥§¿³¸²µ»º¹¹¥º¾§¡¹°§¤µ±º¿µ·±„†·„ð_yùO5‘ mô71060;=7;&?8"!:%&$9&%3%$;<;:6 ?= 9%1575S54ñZÏhãïÙ–…킇̗¶Š±¸º½²¥±·¿¿¿¼¸¼¸¸·Š´±´Ž··‹ƒˆ‹›Š´·±³¶¼¹‹„„‚€Œƒ‘âN Ü 11n 4554`š  ÏÁ55 KTšðjP€µ™aŠ„þ‹•൲ˆ™î@ûí·†”˜j€äkÄŒ¼Œ‡€òBñ‰±Œæm—q@j73 ‘672< g70h444<6ã 51þl010 05Hm4—Ÿ•Ø‚°œ“‚œ‚‹´·´±œ¶²°³ˆŽ¼ŒŒŒ¶‰¶¾³²´´·¶¿º»±‚·¸¶›†‰µW〟]~k^›žkp’Cèè üþÙî÷ 7>74 3=136  ×ct~q~Uhhcy~‘zpÿ…„¶·•†·´‚ƒ™‘™“–bcÇååqïƒäÁ~ö™í^–…Øâ…ž‘‹±›ŽŸI•éif ñç4jÔhEh~W “Æ5ol|ÚêŠÜ늌‹ƒ¶€‡ƒ‡“ˆŒíDkƒŒç|–瘒šgOFQIà‚”n|އäOžŸ‚‡–dP 4áêÿhj„†lžƒåäèáG—ЇqbÈJl„æ ›Lìócož¶‚íàœ“Èµ‡Äö”bCx€ÊažTA‡Íaê\Jü…±†åEyih”éû›yçfs€•ä„â aèmËaužnxá”ÅaýWÞ“{HžŸ‡‚ìcVꄃ‚€ÂcŸ‚’™}{×iû‘êášç^ËçO刵†²²è}eé 9990`›Ÿ{i……Ôœš7?054 ’±ƒrïŽV5™œŠ½¿Œ˜·¶‘zŸ2 à…cⱌbÛŽ‘Ë…3œóûë‘ÌA|…ƒ~ ‰ŒšŠ°´…—µ†k G™cjŒ‡czàÌZÜ•G 4 CqØ— 5ØŸddü_n뜜lé…‡·²šüd‘‚`7lŸ•AixÿíDäfKƒ–wÓäwæ’yT€Œ„“•…¿³—ŸJ  õŸ”W“€êd`5ÄýîÕ”eü„ê•’‹‹ŽŽµ·g5çôççbãKogÔ•ÑæáÝëŸd 4 ÇTÈxj|aýóÌÓbbì’jÑ‹°ˆƒ‡•Ÿãfb vƒînhao Óx´ŒCibdõÓž“б´€Œ½†™ ho`Äj’ïhï‘ ƒf Ä톑f€îu°¾‚‡‚·Š…‰”utê5sŠÿðÓò ×ã4õ ‹ˆhv€•l…]¿³†„°²“ÛŽ²•÷‘ÿû ò”j4˜ê 6â6t4j•ë™™¶šQ™³¶•žk…šÃ4þ]5mÏ 5 Y’l j û„É’ŽœCþ’˜µ¿²´Œ‹³´‹´·Šçø™t`cdXŸìjld{jì”lnᓆ…é´Ž›ý•‹—gñ–Ç54m  20c 5 ç— 1˜æOx•ØŽ¶Ž€±¿·—v´‰›äëáÌœø Ë}0< ÔU”Æ…“÷fú·³°¶µˆ‡ˆˆŠˆÒ㋃ém–Uh 5 61‘u Èë\äBd𛄋…ö„¿½ŒÈ燙‡Joîštñúi1ž4<75çô×ål…Š•€‰‰ƒ¶Šœšˆ³›€ƒ•V‹·ãiœ•bþ ` 72Êî5o”ãnv•„ƒ“–…‚Ÿ›µ¿°éí˜ÉššÚI–èzlc—04 74 5mIúJò™ŒØÞ…‚€ˆµ‚µ±µ‚䙎‚†›ƒŒqÞáÖD{ 6  FÂUjb~—þdh‘[GÏrù|jeÙL”œivã|PÚÐÃkÀßé…ïîK†žuodæÆòCfZXçeÀ”HeöÔZ—•Ä䇱½±¶±¤¦§¤º¤½´›†„…q 7âÿ|ƒ°¼»¿´ØÀÅ <%1?;=1  ;&!>7 3!!= <'%97Í‚›áË‹³¿³·ž aì`b‹ši“¶¿¥¾Š½§¡º¸¾µƒŸ°³±mƒŒ±´•™‚´Š¶‰„ï“€ób67kŸv503v• ??4›É?'8 a13=7 üƒ” —Š·´è4„™ÄtÇýæñŒ°°ŽŒ½§¤²µ‰‹´Ÿaa™Œ„Ôö°¥¸Žäað¶°€p5úƒì 26fžè 07 `ô51  127 5 v‘éjhovȇ–hW˜ìJ…†÷ Zµ¿²¶µ´‹ˆ°¿²Ÿþq•””aú‘Œ´´´Œ‰ˆŠ€‚ìzž•ojse—†ì7674 ëy =1}m 2>2Ââ41Å™†ƒ–5댃ãzí…” i’‰‹‚“Ї¾¦¥µ’à˜Ž¶¶´›57ü„…FȰ¤¥±€í—šˆµ‡y hâ”â‘Î5Î’u03475àÝ 00  985`íëgI…‹ˆê@äç‘à03…µƒî[—…ˆ°¼¸¼ˆìê…‹´Šˆžf ™ƒFhòŒ±½°’“¶°·™|ibiðÏH 06e5 7101 Fìž›ýbÀ\Cíà’Ÿ‘Ÿ¶³²²‹‚¶³¶†›€ü[þ„žmsôxJ‚š…Ž·¶Œƒ€›………HgÕyl77  1=04 5 ÝþamFÀÙgb~Za~”‘„‡€‡Š°²°·ˆ‹´µŒŠ‰“Ã’„ï`œ›”ÃÝÁØ‹´´µˆ…‡ƒ‘^MVPibàÇh j67 30 4<156e wMkFømä eŸœüZþï•„µ±´‡‚·³²µ·²²aͶˆÌmfk^ï—üàœ„™„ˆµ‰‡ŸŸš™ê蘀…œRbxMôÞàu c  1?=7 726eÿYojg~ÂïïhzMGÀ眇…‘ƒ¶°´‹µ·±±±¶µŒ…˜‡††…ö}󑆃€œVidï…Žˆ…ã`l™‰Šêor–o{ 0Y6én4ð5˜3 $‡‘1ã0¶:´–ê4˜5Œ™œøšf‡šÿú0 7G31iÜ“ø°µµ°ƒ¹³°¾¦¤¡£¤¥¤»¾¿¿¶°Š·–Šžkò4>3%!!,#- "#","--,,.)." :34GñËåg—„œœ…€™ƒŽ‹·¿¥¦£ ¡ £¢£££  ¡§§¤¥¹¿½°‹„ãÕÅéçîìëMVr  7739:;>>2032=2<>98=017  lÿž„‚‹µ´µ·´´°²°¶°¶··¶·´±´°¿»¸º¤¤¤§¤¸¿¼°±¶´Šˆµ‹Œ‡åNehfxh 47550<99?<22=<>?<=?9?>>2333<98>??>;;<677 dÎæ•ž“’„‚‡—„‰´±½¸¥¦¦§¦¡¦¦¡¦¤¤¡ ¡ ¡§¤¥¸¾»¹¾¹»º»¥º¸¹¾³´··µˆ‡Ÿ‡–C 541657=??8;88::;:$%%$%' #!&'$%'$;>????89><10<3 7  O“ƒˆ´´µ´·´´‹‰´±³¶±²³°¶±³³³°¼»º¹¹¥¥¥¸¹¼¿¿³³¼½³³²¶Š›’‘ñÔäìÙr`ah 5447165665 6754545   |à––˜ƒ€…šœ…‰‹ŽŽŠ„Ž…žœ’…€‰Š´·´··Œ€‡š›ƒ··´ˆ´´Š€”÷ñÙoqåN|44519<06 5 5 5663=236 1055}i~“ŸðKqäà•–•…‰‚‡€€„“’ŸƒŽ´³±´´ŽŠ¶²°±³²±±½¿¿³µµ·‹Žƒ‘™€€˜ìèæëãÌÄÿæðîäý[FkkRuÝhvckhh`VcwôýRçÊRÀýíôÍqBøÙfáËh~koo`fwÇe[K÷øRxô”áyX~kigX  xD~jjnoo`iiGptVQ÷Ð}ãœîᜆ…††ƒ‡›‚Ž‰ŽŠ‹ŒŒ‹Ž‚†„„„žœ˜ïîéQqÃîXs}uwl`HpomJÆfcaHijiiapohbx`jpõ@Meäûëë”–ž“•„‰ˆ€†‚ŠŽˆµŠ‰€µˆŒˆŠ‹†‚‚ކ„†……’œœŸœÿøöÕñýÔfh  744455 567   coq[JÓèÕ•’––˜“„⑚„ššœéá““žŸ—ï“’ýP”èû드ÜFí“‘ì’„†Ÿ“€ƒ™œž‚„††„îîíìüNf 5    kedz]f~Üýé‚´·‹±ŠŠŠµµ‰ŠŠ±¶‹‹µµˆ‡„ƒ‰‰€„˜ˆƒ„„€€˜üKÙWõyg4 53??=333165 5 574 mkmß÷ÇKùî’€‚‡Œ‰‡œŸ›‡œžŽ‡†‚‚„„‡‘ê’‡„’…Œ‡‘‘”ꓚ™™š……–””ÉÕtz  544   icox|X@EmgCûñLœ›„€Œƒƒ‚‡œž’Œ†‚œæî•ꞇƒ…†‚ƒ›™‡…œš‡„††€ƒ›†›æçm    nchkell^–š‡‡„äá•••锚€†‡…™‘ÒÛÛ€†€ƒ„Ÿœ„„…Ÿ“…™„Ÿ‡„…èôÓbgk  5  HÙQpoußItCþçHzþþwÀ’„‡‰ˆ‚†Ÿž˜Ÿ…„šœ…˜“–™ƒêÍï‘‘•™‡…‡†ƒ‚˜œ…‡™îƒ†œ˜€ƒ˜œ–”—þøìÁ  445  54    dhrxvllðúúí””’…†ž—‘’–ê–’Ÿ”ê铜ž••“›†„†ƒ€ƒ€Œ‚‡ƒ‡†‚€†ƒ‚„š“˜èÿsD^   5 5iioiobdllZÎñõG|Èãã––ž›ê”‘•òðé’íïŸêÍô쑚†„“™†„ž…„™Ÿ†…—⇅“…†™‘áçâàûñ[{L` 5666016557  `objPÏÈBΓ—î——ŸŸ‡††€ƒ‡Ÿ›„„…“”Ÿãì–œ—–—…˜›‚Œ€˜€‚ƒ‡€†˜…ž††›œŸš“˜‡˜åÚþââÄòÔAsdj 50320006165 j`~ðóÞöû•œœ“„›š‡Œ˜ž™šš‡šìéì”ëàÿã—ï™…†˜˜„†‚‚‹‰†…ƒŽŒ†™›†…žšƒšêàà•çäéþPvVãÙn 766177767 555  mkvüæ“àî’Ÿž„ƒƒƒ‡€‚††’ì‘„žíïè•âî—ƒ†‹„j½‚ƒ ?£´. ¸-6<µ$þ›¤µ»·3…¶ã)ކ,:&5'[îr“³¤¸º³¹¤²çìå 0049'!'%'&;>;>4 x–™´³»¹§§¥» ¤¥¤‹°Œ¹¼¶²¾°½±í]3748':0891azî…›Ÿ€°½²´´µ´·†z÷k 10??;6 4 18>&#"-"##- '!>5d—‹°°½¸¤»»¥¥º¸¿¿¾Ž€‰êEkd튌´°½³¹¿°º½´††ƒ÷g 4kk]•“†ŽŽ´‰‹‰˜•—âçähéæ“ÞLöÖl 5=8%&'$#&9%9>ÿƒ†‰‚‚ˆ‹‰‰™ž†š„áÍäyV‡‡³¿±¸¦§§¥¤º°³·ƒãl723602140106 ý„´‰Ž‚‚´‰Œ¶‚€‡›„‡–ПídMíRn<140<;2<8 46 4moasû†Gc×ý‡ùlß韘‰¶µ½¸¹ ¦¦§¦¸¶¿¸´„—ul4    le4  ceéa霵´†˜„ƒ„‹œæ†Mã™Áù4937767=066 ˜—í¶½¥¼º ¦§º¹»³·†ƒžK“á’x…‹í†‡†€Žš€Žý–‰“}Ña74?%2% !!' &%':27Š´¶°§±´º³¼²´½°‰ƒŒâô6=9 =87433z1{•ƒ‘‘¸¹¹³»»»²‹¹¾Ž”™éÿ Cï_mg‹‰î–𲎇‹‚‰àâîxf 0%%838'>;>27 0 yažñƒ‹””¶°Š¶Š²´µ·„µ“šG|m4276;72==7 Г˜¶¶Ž¸¤½¤¡¹¿½¾Ž‡‚µœhá~o ãdãYdèóÑúï^‡g™g4 = 11 56 þåoš€€²´µ°¸ˆ‰´´™Õ‡ 3?0 =006 Gaâà¶°»º¼§¹¾¦¡¥¼¾¾½°Ž¶‹…™fJw 13>20>2=24?2 547 ìçW“U†‹Ï䌛ösÍ 26 155j‡›c„µŒŒƒŒ´³‰„¶´S“†D“çvÌ•„숑–…õQVŸm‘…â†çïœà„›žè™ûàŠùîüŠ›ØoŸj5æ667%1 3%%8<3 028'! !' ò†‘çŃ”‡±¶¹»¾¹¥¾¿ŸŽ¸œ“·Dš‚‚˜´™µ¤²‰³°·´„Ùï‚ëzcÅ‘„•ÇŠ³·¶·Ÿ˜H„…Â÷êg=4 ::9$<32 < 1<?4f…m†œµï—’Š“‘ƒƒ†”ƒœânç“÷š‡Žƒê›‚·¶ƒ‚³²ˆ´·¶ƒƒ€á_l‘Ž–œ‹ƒƒ™ågéë4  4  4=4|ÍiæìåpÆç7Ør4òbôà`im|h••`üÏá•€›¶·¶½ˆŠ³³Žœ·Ž¶ƒ†Ž†ÅØõšfЂ…–òâÖ}žcaYu a5 y Tw }nnzb‘obb•—Êí‚…ýæø•Üœé•Š‚¿³€·ŒŠ°Ž‚·áˆ…uv€âu‡jiƒ—šîòœ’êü™lê1 5 7 6jm5d v–jàsŸ„]o—å–ƒ›„Õæ“ù–†Š‰Š‰°´‹‰³±µ‚†‹„›‘†äÁ”Žjè‘ÉÔ䆜”îóéúåýàäêG  1 5 5 UoùcK{ûÏVåGΓíí’íé—˜Ž„‚ŽŒ‚±µŒŽ±´ˆ‚µŒ…›—‡•žñâœè–šåㄘêf›å—›_—š‘æÿa 67145 565 nlF{÷qñÙš›ÝèÿÏ—ÉßššéØ•€ëŸ˜µˆŒ„—†Ž‰‰€ŽŒŒ“Šƒ‚š‘„…š…ê—Ÿ‘ä—éà’÷ØDj7  55 657 5 njÐôjòív`˜Fz—ƒÌt†‚“‘‹Šµ´µŽŒµ·†‡Š™Œ„æ—Ÿ‡’à‘é“áìüæœõíê–rdB`il  6 67  ig`ûûDMïîzážçëóæ™’ä•…‡ƒ††‚„‰ƒ›…†ˆˆ‚„ƒŒ††—ž†›„Ÿš›’’ëá’„ãÜéèìÝÿËqf  4   vuÎöeOTå–íøþã–ù•íì\Úø‘’÷ã‘”SÌÉõÌñëéäðûå—òØ™êöé‘‘˜ƒ†ž‚‰…„†‚‚†Ÿ‡›ÿî•Kj 56326101757 4 `nGURogäl럅„…·¶±¼³²¿º¤¤¤»¥º¿³·±°¶¶³²¼³´Œ€›ž™âcDäTUò•âêŸJ{æ 7 5 474702203<21211632776711764l_b`Ïlcee~JåÁëåä…éì蔀€‚´´¶°³¾²³°¶°ŠŽŠˆ€‡µ±´µµƒ“çÍdnmÅà‘ùÄâêæ“ÄV   51  5 4 5 64 `Äàëêö”ìÌïääxÅêRTâà—ä–—››€·¶¶¶²¿·¶·µ´ˆŽ†Œµˆ‰‹„žîÎLAcCóáUæ–ò`väÊ    457 547 Kè“–ýã–ŸÿIã—ÞdåàÖé•„„ˆ‰Š·¶¶´´³°µ‰´„ƒ€„’†‚†€€—‡š›˜…„íîäñéè“þS•àtf  6 56 64 71  jxaâÿãᕜa{éI^ÿ\ÉíˆˆŠ·°´´°·µ·´´µˆŒƒ†‡‚Ÿ›‚Ÿœžœ”™„€‡—‡ƒ—×öŸŸHiùÎf46 6 55  544 44 NõWïäøíåáúS@ÏnÅåù•œ€Œ¶¶Š´°±ŒŒ·µ‚‚Œ‹ˆ„Ÿ‚è䙃ʇ„Œ€ƒ‚€—”Í|Ba  57 7   47 77 lcYÙ~—û{÷ïeØÿhttbá•䑈ˆµ·²¶Ž¶·µ‹ŒŠŒŒ†šƒ…ìž…’ä—„‘‡Œ˜ƒŒƒ„˜™âÎbsI      64 75 bu~{HnYzxôddnêáš›‚‹´´°²´·°³Š‹·ˆƒ†€…ëš™ñg÷ëêæï›„„ƒ†„Ї‰üïâ”çj}Rh5  74 5475474  exjf[}giÂ|sâÓÍüœ‰€‚а±ˆ¶°³´·¶±´‰€œ’Eöýæç—È蘄‚‚‚Œ€ƒ†ƒ„“žé•ìç}Ubk   15 7674461 75DÃye`n}b~naJç”쓇†Š´‹Š´°³´·±µŒŒ‰™—âð}p•æÐåïwØðqãþÜVM—ømgÉRlËwyok}ññcEthhtåÎliEFle’SJüãñÄéÚ`n   465 455 o嚈°½¹º¤§§§¤¥¼²±‡û5321á°»¤¥ººº³¶µ€ë}öž˜‰á 72<243774762%&&!&$:?= hkéâ—×`1cåû‰°²¾°²»²°¶¶°Œ„е‹Ÿôåôbmò‡†´³´³·‰µ€“ÉAÑÎÃç|qŸž…–“”n i 74=174 NÖùÍÜïåabiÓÈ̘†…‰ˆ±´‹¶·µ¶·‚€‡‡„‘—ôMd~blãç—–›µˆŠŽƒ‡‡“üâ•é÷Ô^Îêš‘””àmfb`6  4 55 345  wggåàñéñkz lDrê„‚…ˆŠ·Š‹¶´´Ž†‚††Ÿ”xEZÄgbcLÀô┚„„Ž‚„‡šœáíéàVE{ÙSùÏùáòòÍîv 45 5675774 drtÊVßôsxlbonØâ嘞ƒŽŽŠ´´´ˆ‹ŠŒ†‚ƒ–Ÿ”ÉuñYQYåï“’’š„‰ƒŒ‡…Ÿ™ìúùîçiCÛÄ}xÈÊÓÆíÐHlj  474444  `AXcjUdgeðç‘‚€‹ˆŠ‹µ¶µŽŽŽ‚‡’š›êàéâ•Éå–‘—Ÿ‘‡……„‡„„…‡“ž—ÈŸâDëpÉe`ôàgP}rãfn  54 565 55 5 m`ecosih`ncýê’‡ŽƒŒ‚Š‹´Œˆˆ‰…‚ƒ‡Ÿ™Ÿ‡•˜˜‘醅Ÿšœœ˜ëš‡„˜Ÿž›—–ýÏæõ~ÝHvKPPnyi{7 45770  k`kmubl×Cæáœ‡‡‚‡ƒŒ´‹‚І‡‚„‚„š†Ÿ—†›™„˜’Ÿ›”˜õ—æÇ_po[lÓwcFLmh{`  754645 5 dn`a~•ðçìí…šŒƒ†„ŒŒŒ´Œƒ‰ŒŽƒŽƒŒ€†€›Œ€™†„›šœ„„ŸŸìþàúÀÜ~ÒZo`Jco   67 44 5z51é éq—†mÉŒƒúa’¶‰‡•…Š´€‘޹¼Ÿ[–¶º³æ‹¹¼…œŠ´´…—臄…†ˆèk‰´ú7 œ‡n1䀄0˜6o Ñ šÇ?¤"¹t14¼2Š5 et´6gµàud€ g nJ%4 ;94634m•öŒ‚‰Ž°¶±·¾¦¼¿º¹¤¸¼²²‹¥µ}†»‡†öŸâŒúëË…RÓ“åæmÎdj7“w o\†ˆžÄx‚µâ”´•†ŠŽ´´ˆ‹‹™ž…·ŠáaúŒ›nT5355 825>:071 =%;348$%'$$''$$&&'$$:9>?=9;<6320>;õ < aÎÒøž”—‰²´°¸¿³¶¿§ ¦»¸¥¡»¾¤Š¥¾œŽ¿°´O…‡ž‡ãæ}–²ŠŒÊ€||”€æ÷ÆjgP•jh•åí’o†’ B‘–ñÄLâžåÃà—€gôû5?`šS|Š˜vŠ‹‰³³Š‹»§±»¡½Š¸½‘”…ޏ¡¥¶¿§¸°½½¿§¦¾½¥¤º¹¾¥¿³¼±”Óãž‚¶·èð•ww 1?03%&:$$%?0 !& &%%'87=&&17$''"-#&##$%& &' #'%:01=1%$1<97 ”Œ•™€y”µ¶¶»¤¾§¡´°‹Œ‚‹¶¶»¦½‚‹“à´°´²¤º¤§¶±±…ƒ·±¼¸¤¤±™†Ž…”‡…žŠ¼¶·¶ÕÊ—N„š‹‹îlGå •쇵´ƒ7n87á™c i›Œ°¼½‘œµšê“•˜ƒµ·ŸàŸžÙkÿ†€Œµ¿·WŒEL´ƒ‚¿¹€e]ØŸ± 73 be…‡o5<7k7a4?0; &=7<<50:$$$&> 41a;?2;'$1 7=279:7ý… 510 –àbã†èƒ¾µ´°†¶¼¹³¼¥»²±½°ˆ±¼³»§´Œ´ƒ¶½±¶ž††éဂ±¼……kjA‘ŠŒ‡ŽŽ“þçÕ㇀’‹›”mé’“š‡ÉlblyHènkþ“‘ËpjB’’’oHØ‘€›Z|ž’‘ØŠ”ênêšî’ldŸòîš`Ì”œÉcàBÊôÑiF~òVB÷•Þ ÁÆ Âøû47 31 744 ==6010552  072<  nn11 mnš‡ãÉÜjÀ‡‡Š·‚¶žÔøa‚Œ·³Œ÷ha`—ñ„‹‚ˆm“’ƒ¶cm÷…‡¶´¶³ƒŸgï·¿º¤¼Š‚†—‚±¿»¿¸³Š‡÷\àŠ³¿¸°Ëe^…‚·µˆ°ïû‡‚·°— à›ŠŒA Ÿ†´‰Ê’‹Žá 5 ã™îb14 ž‘æît1024ꛟá 4 65t™–œá5044ž‡…ã05c‘î“€’i4077dœáì3:==> 0889:8 gË=25Äì’ýf4120“Ü÷q0757܇€ûy š¶‹Ÿ`Ÿˆ²¹¡§»±Š€‡¶¾¦¤¿¤º¶€„‚€³½»§¿´öMš·º²°³„ü]……†·²¦¡¿´µú‰°½Š³¶t_Ë„ƒµ²EÿØ7ꆅè†ü |þбÃ4 ^ÐsJÁ”5615u·Œ73Þ60<:8=0kš103>? x 7400 …”6?4zhk 428<7ø 60=? oP ~vµµ“æ{–Á–…‘•—@‘ȇ²ƒšVa†‡‚—†‡^ú‘˜¹¹°´—ã’Œ³¶±±¶‹Š°ŠšŸˆŽ³»³¿Šàó··´„ç™ãç•“µ‰´†nx‡ŠŽŒ„ІPéÚæí‡ž„Œg瀙…•ï˜x’RoŒŽœƒ c„–“îàaÈm5 àŸ—á _î„fbÅ6ši5?7 1=402 4€ÈàŒ€Œ„Htéð„„—Dh°µðYXoV…˜˜‘Kdëûㆋdíæ”îÅ…‰±Štd–š…‚´²•´¼°†žè’’˜„Š´µœ™áㄆ³°îÝþ凚€‹¶¶‚‰‘Û´³„‘›`u€…жŠäŠ‚Œµ…²‡ìb›…c’´´Iñ21èu’à 2•lí5=‘d”å0=4<1<>Ç<58!142 504æ…735hCç35 = =c=14%; 55 åw鵌U_šiˆ´Š‹†Ìü˜MgŸì僷†m5f€‰…“œåXùqh㛄´´ž‘”{W’·²³°‰èê€ŒŠµˆŽ°»·š˜—…ƒ°¿±µŠƒ’š—ÿ™¶·´½‚p—‘t’±·€…“gOém‡†çˆ±Qzq¿±éÖ—àù–yjŒŠï¶“Óçµ²åò”Ÿë–64µuEä ïƒfÚ 4c ïj57546~4= ߟ7?ë| =5 4I453;6 :=` 4?7x57o‚œnúa³ƒ™´µsš°µma†áœ@òˆ„êžøj„]å±±u 옚àS掷†€…Óš´’±‚J@œô•„…\…ƒ‚Û†Ž·€ãoú‘â–ƒïê·ïôŒƒ´±±›„ŠŽ³¶ý‚³‹ƒêœöˆ³ƒŒ˜–r–g õ 4j L4=%'!!'&";7%=ùñgù ‡ã 98=;64œ~‡h懆º¾°³¥¼†´³ˆ³¸‡Z¶½’€œd´¿‡É€½µŒ¿³¹ºŽ›¶‘ŽsšŠG–†AáŠêŽ…”0 ƒ–7üñ5Û994%$?$!>[ > o~XÃo ?44’ îúfÓƒŸéû‹Š¶µ’²¾”‘ˆü—è’…‚œîî¶µ›½²„´¶‹a–ƒ†‘bXû”““”ŒšŽ6âoÔõgzfài 8: 6:6 1<7—Z jãó\33u 4 Í÷–ò–ˆDã°·J›¼µŒ±Šà„´€•‡µßþ´›àŽä…±‹„ˆ‹´µ‡‡ŒŠh₇ü‡vÜà’˜‡Å†›ú’•Lñß‘ãEnád ú47';1< í=o|6õwœ9 O–hmh`ô‚ˆ³²z…·ŠŒ´¶Ÿž‡“KRšOàŠ´ŸüŒéŒ¶ˆ‰šœ´ˆ„í`ížóÅ‘žmîœåùõžŽçg—õgbHkÂöœã lj Á 62?026 \Ñp44táöîßþ±´ä‹´…—µµÔ‰¿°ˆšƒä“geŽ´cµ‡Lç´ë›µµÓƒài°î†ÿ”å·‰åhþoøum€Ž_5563>?224 j•ôFà 4 |lÿêcjid“†‰±···‹Œ˜’ƒˆµ†…Š„†Fz–›”†Ž€€†€„Ÿ‡…‚µ‚…Ÿ™†›—É[î–—‘ítzËÿAL”îPÎÖNxowVXdcacg4 5456747711755ioa}ÑBòâéš„‚ˆŒ‚ˆ‹‰‹´·‹Œ‚†‚Œ……†™ž„…™…š‡„†€ƒƒ†š‘’ž…›’Ÿ“•îÙvÛÿåäíäÈÛv`ofv}zÿõmd44544164545775 gð„žöU’‚‡™„傉·´‚ˆŒµˆ‚€‚†…„‰Ž‚€˜’‡‡œ‡€›‡žçá”óè”ãî”ýdV`|ÎìçgwpAthcppj  704414 5  yB}jËî[gü˜†€ƒžž†——‚†…žž˜…‡Ÿ”ì’—ã›…““‘÷]ãî†æx•›””™žêž“ŸŽŽ–჌“´˜–œ‹´“Úƒ´“z•€œí•’ìûá’peí–ÎÄþÅs 0=8<0%!'$'&%>?:%?44=?1711 4 jYfàãZtÎklvèáë„’ôæ”ëÔBvtÚËXÎ阜˜”ëïçè›…ù‡·µ´¶µ‹Š³¶Ž¶°½¼¾¾¶¾¹²°²¼¶³½·¶³°´±¿²°¶±²°·ŒŒ‚ŒƒµŠ…ƒ‰€„Ÿ–…†ƒ‹¶Š‚‹ˆ‚‘ïì…œqà÷NVmnbIäiAbG`Õk~o      4 7 5 731=2003=462102<746157675  bfNAFãçdoTeojyû`^ÔzzöÈÀ|çê^óÌïí……„…âú…œ›€€ƒƒ‘ƒŒ„ŸŒ‰€ˆµ¶ŽŽ°¶ˆ´¶µ‰¶°‰·´´ŒŽ±ŠŠ‰ˆ´‰‹·µˆ¶‹†ƒŒµ‰„ŠŒƒŠŽ´Œ…Žˆˆ†ƒˆ‚œ„„“âàÒÌêÀÜ—|iAæ`ekQd[aÐMoæÍ|jQgdùamg÷`oj   76055570330=1444 47  cJÁÇicatchikdOQ|j[ÆÒðÍZçà–唇’•˜…žŒ†’„‡š‰‡‘œ„‡„‚„‘†€˜‚‰Œ€‰„‹·ˆŠµƒŠ¶ŽŠµ¶·‹‰ŠŠ´µµ´µ·´´ƒ·ŠˆŠµ‚€µˆ‚ƒ€ƒ€‚‡„‘”–”•ðô“‘ýnqadeclId\ÐdeØëu`dpO^    =3606467110=767  `spcdýüGlkÐdngpvjÑÊØÒ|g{}ÛšŸâJtàøš€™âŸ›™‡„Ÿé„‚ƒŒ„‡†‚„œ…ƒ‹Ž††œ›ƒˆ„†‡Œ€ž‚µŒŽ‰µµ·‚´¶°²±·µ´±±°¶´µ´³¶µ´µŠ‹Œ‰ƒš…ž„„‡›à—“Í÷évj}òC{RhjF{jf|gxf  117744 4673161671744  44fò7„ç=$¢¼/¥ ! 3²â2B²£»Ú¥§´¥½-†§$210=9=5 iÁîø†¶¿²¥¤¡¡¢ §­¡º£º¦£¸½²´ˆ‚ån` 64 7Yù˜†‡†··²Š±¼°°¿¶´°µƒ‰€‘ƒL49<%>:$&%%!:$$6=231 tûžŸ“™ˆƒž˜p™db709=9%9%8&':'8>%:%;=&:3$8;??%?56 oû…‚€²Š³½¶»¤¿¶¤¾±·µ°Ÿb™”h 0 3610Nã<ëŸbÅkŒŸn†´á›µ´¶œµ´—‰³Š´¶§¿µ¥»´±º¼·¶¿¿´¿¿±´µ±€‚•œ±ØŸ  7‚³¶°»»¥¢¦º¬¤§»¼¾µˆ‹›•†ê™Lnï  –6S42= ??1<267 6 i•p‚Ê“ÜQ‘òEX™ˆ˜·µ‡…¶îƒ°^š—ij 48>0!92;;;%9&8%& ;% 012361< 6 Zñ” Z‚wˆæ°„Šš‚늈p¶‰›ƒ‡á7p17690$!%>%=?  Roç·¸²·¡¿½¹´°´„½€˜´‡¶–›ƒƒ—‚›´ˆˆ‚´€‰´’·”†„‰•òœh• 5’ obnyìꋽ¿¹»¦¡§¦¢¦§§¥¥³¹°‹øP1478?8:?3=%52 H‡f€šŽŠƒ‡‰Ž¶„†ŠÃc 7  @ß“¶Z…YÊØtRfd 55=??3;;01>289930:l`ìít“‘‚”±´Š’™Om0 7? <8 $24 ywéýSៈ„·³„‹µ„†škƒêÌšõ‘dmd4ú“Tå™’Œ“´Œ·¥»½‹¶·è´Ž™¿™µµ€‰ñâKbZ“†ƒf˜‡k‡€±´½¸±¹¹¿²±µ¶±¼¶‹²q›ÿ76 5 5 5†–ž„„–„…€½±·°²ˆ´°öã@Æ|`50%2:;$90=050l hl–™œ´ŠŽž‰–‡›ä€ø–Ÿ‡ 8617 06236<40 55Í òj•€ä sg7V5ß2 52 Êv â—É–LøŒé÷ý…G…‚ë…“`•mU—ã}dA†yY‰›ñò˜†€€³ˆ¶•¶¶˜´·´ˆ¸‹¶½€…Šƒƒµ°t€ÐM…éfëÂÆæ–œ·œh‰ŽÓ‡‡²Ÿ²œš²‹•°²„„¼´œŒ±àêi– Ó3956=1Âd4je††r×·g’ÐàŠæ‰K Z4 46j%0<3 [–úVÕJ’€†—â°ç熂d^kjc5<01::?%2&<=$111< G„œ‚¿´¶·™°‹µº·»¦·¥§²¾½µ°»½³µ¿‚`45ja x\šl„ŽšŽ˜µ±·³¶š·²…¼µ‰Šìµœ†611%<= <:6Ía4„k…çrvš…”†ž´›’±†…Œ—^rí冚™±€“‘îÒ¶µ–¸¿´¶¼³‡€„ãõ@ä‘ñïyhÌæÎéM@Èwœ–Ybe÷›—œàáçÃèô…oƒšš    5 ?7 <7 57 cï•apÙñ‚Ž·³·°·›ž‡ž„–˜‰‡±‹â„Ï“憜˜‚ŸŒÍeúhéù숶·´¶·µë–T—œâ‡Žƒšùbp™eBáV˜Àj<=6;17764  5 —  dh„‘‘ _|‡”†k–Ä…‰ƒˆ˜ëî‹…³·ˆ²·Œ¶Ž„†YA|ð›äåTÚù~ƒ‡–°¶è–HÈ]j“íéuámõí’’’ŠŽD 4575 5 bî 4717 4õÌœ˜›J›“–ûœšþ„ƒ˜‹Ž‰±´½½±¼±‰°”ƒÝ~—ñÓâoJdöšœ›†‡ã‘…æÁ[tØ•€îÈæLÊîœŽŽ„‰€R–Õ45 5<42=46    540 mhþÏ›™œ˜†œ’‘åÙùdn프‚ˆ„…‘œ‚‰·°µ°¿·‹‹‡Ÿ‡gTûçñTèqnPþ–’µ›†Œ–†–YDÏZÔëâç’óõñ|–矇“ÞìÌm 671266676=2714 56 iXhiASöž‚”’Ÿœâ‘ðíž„ˆˆŠŠ´µ‰µµ±²½·´¶ˆ‚ÿ”÷O÷MoaØø}ÿê讎ϠŒ„ŒÀçƒãÇ“Æd–é„êN”òsBÅ•’åj7 2==><0?= 1=754 k  `æ{Âê|À”˜‚Œ’†Š–„‚Ÿ”œ˜†‰¶·‰µŠ‰·Š‹±¶ˆ´ŒžšòóMg|]pܘçGÉâô‘Ÿq‡ƒ…Ž‚˜’’ïõý—Í“‡ïÀœà÷Am`É6<3>8<>=1<=407 ==   açñk熒“šÚà‡‚ŠŽ‡††……„“š†…›ƒ´ˆµ›–‰´‰·›€‚‘î…ã˜ç”ÿÀ€j‹ïz‘Ò‘ƒàõ § ¼‚'ŠvAƒ2Œ…ÿ]éjÛç ” ý27 47 476? —–Ž‚œ”“žˆŠ‰êŒÚ€ùå0833%$##"&!&:%%?26múŸ•Ÿ‰Ž¼¿º¥¸¦¦¡ ­¯££¬£ ­¢ ¢£  ¦¡£ ¦¦¤¥»¼¼¿±´µ„œ˜æË‡äÝpØã10<:8;%%$!&$ '$#!&!&8$:9;>020  hvM•gXfgœ––…ž–†„”†ƒ…€‰…±½¼³±±±´½±·°±Š´µŒŒŒŽšœåa 446<02%>>9?<:%8<0?=88:><923==69<0?07<2644546=04045 444  ï‘~Ayùýç…›™‚‡Š‰°°±¹¥§¡¦¤¦¦¤  ¦££ ¢¢¡ ¡§¡¡¦£­¢¢¢£¢ §¦¦¤¤¦º¤º¼³·Œƒ›€Ž…ƒŸçänd 40=0=3 5371?9;%$:%;%%9;$$$&%%91124136327745747736 jÎtc}]\ùœ—™†Œ€€…ì—‡‹··¶±½‹‰ƒƒ€™…†€èêÞÄæÙòUÚbhjÈÛcoãäOCÇci   45 134e|Wzr\÷àè’˜‘e`犕–´°Ž‰€Žšƒ±³¶¿½¹¼‹ˆ¼»°‰½¼¶·³Š€µµƒŽ¼¶´Ž‚†Œ°½žµ·áó€üsyháð_ ˜Ÿ™ž 554 4 n 4?621> >:>761 c ™„‰·}RÚ–„eEœ‚˜µµó‘Š×õäg•´Œ—Š´áï¶´¾·”´°Hìwlè`Ðl6 —63 1 l7ÂCçÐtQ 05 ú R –‘w–뇎mÜŸî郷‹žˆŠ”šžŸ³Ž°´´½°ô‹µŒŸ´³Š°Ží‚‘‹Œ½†ˆ³‰Ê´“î·¶Ÿ›´’~™ŸÐ–‚·±•f‚—Íø‹R„‰lïäkš5•šd5 |53143ój2Êü6| ç”Ý5 ™7ëÒ6@ ýš šwÈfhZ57v5 s 1 5  5 –ba“Rî‚›–‚“„šÎ„ÈïŒ|™Žòä’iæá”•õ–ëÚ•ÂvéÁ–c…Ïïøðûœ›ƒ€˜…™˜‘€€·Š‰†ƒˆˆŽŽ´µ‰“…‡éŒƒ‚‚„ƒ‡œ…”葟žžš’úvËFað——íàsTíñi×ä`è’HJcoÕ“èí…“î’‡†š‚ˆ™åðììí™·˜›Žíí‡îÿ†ƒ“Œ†vj66 ><3213 755647 46>3<>%899>; 7268&:>31 `ê„Öbcæý锵Œƒµ€è˜’““Ž…Œê߯mt胃€à—’’†‹‰†êœžà†„޶ж°¶³¼²½¼½½²³¶´Œ‚¶ˆ±½‹µ†Šˆˆµ´Ž´Ž‚‡·ƒ¶°·´„Љµˆµˆƒµ†’ËþríÓ˜šæ™Qœí÷ðAàÉuÙHs~eàumofF køÙy ==?81865=74 56 7572=6  5 40 > =e4~nI|R–†xa€…Èœ‡”TŸDáü˜ÕžŸq˜Ák—”v`—[~`“^–õìâ€ëœŠŒ€ˆ¶Ž·´Š²„ˆ±Œ·‰†µ´„Œµ‚‰Œ†‹†·î´Œ†‹‹ŽŽ´´´´ŽµµˆŽ°–€îšŸ‡‡žé†ž——•S•ó›–mRÒÚìÿu’æãÇnjÙjxlTkâaeæAm01 1  444    5r M}g  4 <56  14574757tëõ€ÕWjýês‰âœEgë“ÚŸšl—a‹c“ƒËW›ƒè›µ™‡±‹†Ÿ‚´˜¾³‡³·‚µ³°ˆ½¼µ¿¸µ‹·ƒ±Žµ»‰±›ƒµ‹‰³´Œ²¶‡€€·†²±œµƒÿžïŸ—œ€ãã€Öordn‚s—tjVèaë’M–k5mÐk„ëånlhC`5154h567 3   ~ò  h 37 4  546506 gj U‘ƒîÐéÇ”dâ‡à…ˆ“çm…ŸØ|ÿmÔ铸ƒŽâŸŸòêü´›‹¶ÿ™†á’½··’Šƒ´¿‹»¿±‰†Ž€·µ´¿µ´’‚ž±¶¸·ž´™“š™Ž€‰¶™”„cxoy–™¶ÿs…obvT“•ƒŽfí–kw—Iênusäân lujýïnßZ—Ñk5xd 56 4n 70jàk 55 { =44~ 11623  1oäœÓ‡òbæóbšà’{…ù”âeˆí€æÇ‡›f–Ëf„h–ÚŒâäƒãw„~˜³€‡±Ž°ƒ±°¶¼¸¼¿¸¶ƒ´½¶¸‹µ¿‚Œ‡ããç‡‰Š±Š…ˆ´D•6 3 v 370&$$-##"!!8<:643eÐ6 327 œ‘a†™FŒâòš‹†Œ³´´²²‹´¸°´¾¶‹º½±¼ˆƒ·µ€¶‰…µ°€Ž³šœµ˜š±‚™âE‘”ïšúƒ´Ò„¶éÖðÿEztY“p5Î4þ575>???:36>1=3 þ6ê7 –k€ëŒîµŽ—Œµ‰€·€ƒ³…œ¼‡…ŠÐ‚´„Š™¶Š·°±ŠŠ„j€Çxƒâ”“Ú™•Q”z銖Ÿ„d›žfwb]onîq 9>3>:?2045  dl|61 nYú÷’þ玙Ÿý–µ”–¶ž€±…Ž‡šƒ€ŸæéŒê¶Œ¸´Š²ˆƒµ„ù”ŸŸç“[æC÷nˆ‘í[úš[pjhzîüúÉéâ461423=447?1–nÀ  s4 îR‚ä„’†ŒŠ‚އ‰µŠ—™„^€Ù„…–†š’…ƒ´¶³²±°¶´‹€‡žŒ†—’æ~WphÎÉ”›ËwPÙ|B×Z›–æNBz}ËÇ”óÿ 4010 63 76 åy45631í “4150•‰…šIñ†ŒœŠ¾‰³º‡€ŠFR–OV„ˆ€™êiŒ™¿³³¤¹±¿‹›ž—š‡žé46jŸðgþâÀî“‚œŸo çÖbT”J76 25 1 0Jsm`Å6 5677 ð“„ŠŒ¶³´‹ˆ™‹´Œ‹Ž€áYg”y…¶µ‰ŠŠ¶³±·Šì‘„”í™cnŸ`hà `Óó`‡’uàœ‡QàŸh— 5641LàÕfG4202%1w`›E‡·´²šâŒGã‹é‰·é„‚óËЖ调‹·‡‰‡„†´ˆ¿²µ¶‚öŸÀÒèÑžQ7=gæ——êáåïšåíknê1k_åú Ônç‘lI1 317446 71 n–†…×”æƒï—‡ƒ†‚±´Ðö…ㆎH‡ŒïˆšÐŒ‡“‚µŽ¶¾Š¶½†ƒŽœ†µHEŸ}n ìÜ”ançWXmwáúð”ejbLNÊlMeëÜç…ykTåò”`òb~åfFP }g“æÿÖØ~‘Vnk| å”㉅¼¶±²¶¼¼²²¼½¸¾³¥³°¿°¿±´¶˜…†0??$%9;>:;:%==26<074nèfŒŒéŠƒ–·€œœÉìýï†â„ýn‘\Û†Ù7?141  wèŠÈI‹s‡4e` 7I•˜Üí `6R Éämbû5F41'%& %"&083 4|èP‹Œ´³½½¿¸º³½¸¿º»¹´³¹ˆ·¼‚¶»½¿°³´‚‰ƒJžž‰Ž‰ÕóŽbôhtƒŒ„‹šüž›‡‡°‹¶‰ƒ¾µ·¾Ž·²¼¥³½¶”ŠˆIƒƒîБĉãJû‡Ž‘–ø4?> 42 7<?7ýøt\ä–áåíÓÓõ†óK–iÿ6 bp 57ã\73\d 64 ïä4~Åî`iðd‡Åõ01 340=5664ŸRd˜üúšê„ˆ‰¶¼µ³±Œ²·‹µ·¶¿¶µˆ›‡‚›€Œ¶šŒƒÈ‚“d“⇀ƒæœœx”ûèᆖƒžcˆ†ö‹ƒ‹°°¶…ˆ¶ä†¶”ŠŠ´‡ˆdŽ…JŽ€ˆ…‹ðËŽx€Øþ0 < 5441p37ë æý•æ–‘‘áIœe—pŸ “ó[mffjCF ò4Ê p 6 4  haÊæëoWYt`|ViFîjó{45 Êë疌㱌¿´‰±ˆ³ŠŒ½Œµ½ƒ‹Œ‚µŸƒ‚n‹Ž‘·Œ’†é‚…f‹ýŠ’íí]ÐøžŸˆ–ŽŒŸƒ˜ƒ´Ï´´œ·‹„…œ‚˜ŒÎí´˜‚Œ‘šš‹H†µïƒþæàáÆgÀhágt   a  gâlü•XØ’Ó†ùb™“mÇoA aUnç 4t1  u u147 5þ5k~Ã…•˜ ö{ Ûwøï5ái’lJÅž}•Šé„›D€…±²¿¼Š”·š°‡µ‹‡½Šš‰G„ްŒ‹³Ÿ‹µJ‡“L—•óƒ‹_–ßû‰„ŠŒ…²‹³‡‚áƒŸŽ‡†‰™•ér‡ˆ´àSêdSïÁë蟑äo _å—çjg  mi45j}æùò›wm ‡be4û51m5º ¹ — Ÿ"4lý–k5iÌìM´”å6Ñ5=a 5579<71ái™ f” jî‚šŠ‡Gš5`å€c7 303úln0 0:=?1 45øþm™ç±Š½‰„±·²¿¦¤£¬¤¢¢¡­¦§¢¦§¡¦¡¦¤¤¾º¥¿»¥º§¼¿¿·µ…xíÕgváQ  41<3?$>8:602<99'$:$2 167O™œV•jI–r—¶¶µ‰·´•†µƒŒ´²³µâˆŒ™‹²µ‹±‰œŽ…Çn 65>>0144 7?7=89$$;$=8';$'$$%:65> =51?7?34= 10==<8<<77b4lw—|˜‡–×ù•ù…€¸³°¥°¿¥¿¥¹¸¦¥§¡¤§ºº¤»¥¦¦­£¡­¦¦£¡£¦¤ §¡ §§»¹»¾¼¾¼º¹³¼³·±·Šƒš€…Ÿ‘Àj 63<2036<99:;;%;>>?9?>>9:98:<>92>>??20177 fÁOeæÄZžž…Š·ƒˆµ·³´µ±·µ´‰ˆŠƒ€„ìþ—˜Ÿ”˜àð’àÆ^bÜt     5 4 554675665 |äÈ`è™é“„˜“„‘š…˜Žµ‰‰·±·°·¶¿°µ²°´¶Š´´µ´‡µ‰ŠƒŠ‹Œƒ‹·µˆ„›Š›†…š‚š˜îáÁU‡’öÌõèùþãZVêll  5 5  7 5 oj|íMä甆áᇛŸ›ž†Û……„™é‰˜Œ„Œˆ²´ŒµŠ´‹„€ˆ˜’‡—ïþë„ÞDi”™jÁh 036  a37<140÷5_ 63947 Nc 6<=334 h4628ií÷‰‡Ôöv†±“¶½ˆŒä„š玱‹»¥‹‡ìár¼¹¸¹¶Œàœn5ò’„Ž·¸²„ûÕm±¹µ¸³´…ô›‘†¶·°¥¼Œ–Y»´¥»´B™ Z˜€›´… 76â˜l˜Î6=79$7jj×?62>7 ê—_ 66뇟–‡á d–¿šöˆœu fü—…ÝõO447 †… ój7? 4Úlj 3 gòŒÞnëe4Ifè“’Aæl dÅ’ƒt64âöb 5áá•¶€m‘yb똘´·„‡žTàƒŠµŒŠ½½ˆ·Ÿ’†ŠŒ“Ž´‚…˜CU›œŒ¶àý‹àÙúŸ„w’–ãêäãr˜Ÿ€ÏƒF\Iýgî†yfáñ耂醇‚N‰ç‚†‚·Ý’žïSì„‡ÇøvHH qñSc— lqn]ä‘`qbÊ 17 90 76535<<3?1o^ 1 m3 êëf763%<4<>279%47  µ†ëŸ‡é•Ž´¿°’в¿°´¹¾»»¥¹´µ·Œ€‰¶±·´¿¹™˜µ·‹âŒ‚·ŽïTbbWu–žå™µþ‘‚Žì†´ˆ¼¶·¶…ŒŒ±¶±¿¼³º³—ƒ‰¶†‰†¶¶ãžiSQ 5 xvÜ‘ŠqG5ÛiIâ 5 F k˜x Ó6ÚÜòø 4Úm [v1=0jPw 0ä\â44S52ßqa0 øØ Ü”> %= 5070598 ‘›âê 5â„Ee¶·èÂŒz爳‚±¥²‚”°´ÿ³±Ž´¹¸Š‘·˜h艱·‡¶³mÝ„_jŸ˜žŠ³˜“™냊ˆµ·ä‘“釵´Š·»¸™€¶‚›„ˆ‚´¼‹Œ^k]×Íì‡  d´ö•ï oòä‡Ái5 twï´„l˜ |þ“‡š bö„Ç55 É“54 ^÷1764 Þj5 1==1 44 1>3=14 H017 få’`ÉVkç⊶¶‰œà™œ·´°°¹²·±†µ±Ž´µ³»¥¹³¶€‡ƒƒ‰‹·¶´°‚‹z…‘Uá팶·žÏh@IR烞ìøçõI㟴³ƒ˜‚xLùâg–µˆ„Üš knI…‡– ë´ƒ å•5EÆ•…íŸoíi½žE‡çœ”G…†s€ž55kt‚ 75b5áj ê1jŽi  4  =75?35 76167?1k  J ç•Ål‡ƒäâ|–˜Ÿ‘æ…†•‘нµ„ƒ´¾±Œ‹´´´µŸƒ·³·š¿³‡€„™Áž´±ž…î…tŒædŒ‹—î÷Tf\ɛ޷Ÿî“t•îb’ëW—“ekhÊýI™‰†bHæøãžd憙ÍYp•š‰å mõŸj”ˆ“Ã…e`œÄ„°‹ƒ……û fµ‡œi7 [z†Ÿ72ãè60„“55Ü5;t%Þƒ !¶ƒ,¹°-2 Û}17¥’3¹»<ô½·-³''-?! ‚ˆé„»¸¾€·¥·e†99:#!'$&%6<>35 •ú¼§¤¥¥£ ¢¬¦£§º®¤¥ºjÉg 7 2;=7;$1;99 ˜‘êœWšê¶´½·¼¾¹¿¿¹¹³³¹²»¡­¥½±µö•ðs <<8=:>:905 cIJ¾³°°°¼Š²·‹¹º²ˆœ“žø…ƒ™†œä„› 4 ?$<3<5 9$''>;919=0?9  ýˆœlkÀék‘àg„„5 <0 6 78!%:!$8;;<6?? 7a„qwœÚ††´‰‚¾¤³€±½½Šµ§¦º££¿´¶¸²´³²Š¶²€  414 Ýd<<n•„™µ¤º‹´¸¤º¼  ¡¢¢¡¾ˆ·‚ƒƒ‚ȵš5 07ob 855 lð˜eTh‘•·°²ƒu’…ƒ‰€Ž³ƒ¹¥°’·…ž„šŒ„„c47527 780< 5366>6 ì……‰þbèçùƒ“Šˆ²³ûÇd„ôæFpî’ç 6<9%$%&'$%'&" &!:%>6Çžk›‘·µµ¾±²½ˆ†ñ“ôåB›¶‡wƒ’uŒ™·ŠŽŠ°ƒ™††Œ“œ´Žb1  aòáö±¿¹½³¡º³º»  º¦º¹»¾½žýß5m? 1%%8<75G†–q…†›±¿¹´³¼½‘‰²Žçòc•• 4}ÆÓtî‡d„¶á’›„‚ïaj n:>4 4 1jìvièûšƒ¾ˆ€µ°H„ƒ¶Îjs o :'3::4?3?16>>>7 g‡™œYb}ÖþŸáÛjf1A 6Qh1|Bú™–ƒ¼“šž·²±šâ†‡¿°Ž’mácÇPœk’gçE†µŸwþ„µ¾»°†„¶¶µ¾·Ž´ƒŽ„î ’ƒB77Ø€a746E’}’a‰’‰±³¸¸‡‚¶»§§²„„ˆŽŠƒ“Ò542%$5–676èE™žƒQ‹‡€‚‰ˆŠðGš¶Š 7 45 Gå25é±…á턘ãœÅ[‘ÝA69€“1322 4 7da 2<Eƒr5< AiJPjð™ó6 ˜µèwf–‘„¶ú±±ó‡ˆîìç´¤·ƒlŒ‰ææ†ŠŠð‰…UïshDÒŠ°‰y‘·Ÿö™ˆ¼ŸÖâµ¼Œ€…Š´î€³¤±“•™†·Ÿu€‹ S…“Ÿ‡ ^…ÝƒŽ‚ë튊¶ÿ•„’‘ð··’í7ix j4<>6Ó 14êêgÊž•š‚‰†™w˜¶½³Ð’’ü–÷˜ÜÒ5z 1<8H 24`â™óxœ :< 9$%5=;2747;4 0347Ÿ†ú62f…ž‰¼½°¿¹¥½·²Š‚䘊‰´l6€mÅ‹¶“Œ¶€‹ŠŠ±Š³¼¤¥Žœˆµ€ãK„±´…‚·ë”‹…š†µ¼¿¤¾„ˆ¹ˆ‚™s…ˆ‘ˆµ‘ÿ}EZc÷‹‡ú‰ò˜ŠŽ¿¾‰›öâ‡ë†…‹‹€…Þ„ý417 c—75 À—çÓ4Zj·‡  12 c:< 67>= 577˜ñ 1=77 ’ „jò´‚ j œ?<55>>2=22 ø435 Íž˜˜š‘b”–Ë€°Š~욆ԅ·¿µòxŠ„˜Ÿ™ugë‚„ñ iÈ•ƒœ°¼±†‘³¿´Ž´ƒ†±¶Ž†êììT™…‹°˜}퇳™yŸ‚–´·µ…`TN•˜Œ“˜›àËú˜œŒŒ‹³…–•Q‰‹Š€š—ˆ›wô„äT’•nhäi7|Ì7jkMîe4 `57545kpy5 åÁxr 5  hj 454ÖÑpááodoeòôô57o Úføòtßi”ìí’À홆†˜è˜€’’…‰…ˆ‡’††›‡†ƒŠˆŠµ‚ƒŠ†ŽŠŒƒí阙êI•œ„›–’ìê„…È…‚€‚ƒš…˜ž€ž›ƒ†Dèçíþöéô™ƒ••â˜í’„ïžžš‡“•›™ž„š“ë’›„›ÏAôúäVNõh57  jk  jCjrlBúlzkHfEhsN}âð~à”À‘ƒþì”…Œ€žéž‡Œ‚…‹‡‚І›€ˆ±¶‡ˆƒŽµ‚š€€œ”“Îã’ì™›—á_Ë›’†ž•㞇˜•ø“áw•–˜èéþþéø“›“—F’–Ÿ„”åù‘–땟’“ïÉ–ëê‘çœëéä÷›˜òFM÷èbç‘@üÝlgIPhn   55 4  5 pjnmc  l|}OÇjjj@]flÕãøàüâ–í‡C韀æïš’…”„„’šš…•”…„ýï—˜ƒŸýÿ—……W’Œ‡›™˜›˜–†š˜ž›Œ€›ï„‚ƒ†„ˆ„Œ‡œ†›˜„‡†˜ŸâãÎï—û––Ÿ–‡…‡Ž‹‰±¶¶Š‚ˆ„œ…€‰ˆ´´¶°¶¶µŸ“™æÞæÊòÖjobl  52;;98;%$89>=0{{áç[Öàz 561667 ø†M3$&43$0“•5:$>>2€±°}3$%0353=ýŒœ1:%= é±½³e023<7 ã´¿¼Ží i¥££º‰ûX޾º¥Šf j˜³¤¦¸‚Z 4\†±°²ƒ_ 14û€¹¥ºŠã„ˆ¹¤§¹†}M‡‹·º¥§³í0 â‚ƒŠ‰„a05Îí²±Š36A‚´³±ŒæC¶½§¤ºŒ`莶¶°¶¶†n 6u”ް²€='=Jëáäâä2:=‚Š÷5;95Óuñ™“g4=6 úƒ0;;=517 nî4?9?3=7üß ==344 žšç 00䊃• 30÷µ‹ŽësaofUޤ§¿†`í—…³¾¼€eĕ°º¼€56h‘ˆ³¶„ 4 d’´º¾µV 瘌¶»¥¿€lä™°¥¥³… ÷˜œŒ¶³´’4 ðá…‹½±64“‰··™b“‡·³½‰þœµ±··„]4–€šƒ‰·ƒG5=7âæ™†…O390 øæñÊ“šk 987ÆŸëû6:94ä]gCïþ282p“˜œ“n3?6—ÏgqÙÿ =;0ߨn19'%=  65  020剱³½éýà›ˆ¶±†ï–è šŠ‹˜M467 kÇÐhåŸÀibùƒ²¿¶ƒæmaT–‰³¹¸²±°³´†áx”°ºº´ŸçàêÑí„‹·àà˜ŸÏ65޽±…Üu–™’™‹±³·‚ˆ¶³µèaµº¥½ŠŠ¶Š€„µ±´…㘉Ží7››dhhl 54>2”Ÿh VÎÅ–â`m ;'> 4:&$><>;<4 4297 3:; Zö0>1 03 b 5n190æu 23 4`„–˜Š¶‰ïœ´¾¸±Ž™š†Œ’Ä싃è𚃃냳°‰•W”œ€îô„õ󀄞‡„‚…ì’†Š±·ƒƒ´³¶—´°ˆ‡“‘Ÿèbc…´€zd•ƒ{™·µ™Ú|ÿp”ˆ´†î凄ç…°»²µ‚€Œ„„‰°¿°µ‡–ùgO°‹žmê—íz626úƒëf4 rš…„žån625oo <%'%3  3:'$>7 39<4ß–’v 3%? |kNl5364•‚ø5m™ˆ´µ‹µŠƒ÷—”‹¿¥»·™Nš†ƒŒµƒ˜Ÿ‘a„·¼Š–gÑGW“˜“žž“cž±½‹œñ–†…žšµ€Œ¶µ~’€ŒŸb`ÑžPC––ž´œAi”†èŸ‡‰šâ…‡ƒ¶¼¾¶›ÐY‘‰±¾¹¾¶ˆìZ˜Ž·½³±72 ~Œ‹ƒö2;?4}õ‚è9!'5¶µ—0?0Òëလa= ,$ê€a2<%&%1Ë–W4'#' —‹q4?>4Ç’†‰†j3&$0{‚‰— 1=7aŒµ‰˜11™±¾±€”ñpiWœ‡³²½²·…j±¹¼´’wyfyË·Œ˜ð~š°²ˆçwnf—´¿°Š‡•CY…³¹³åóýiïµ¼ˆ…—™•ÕV¶µïzt›‹–á}’éM ‚²¶cuñÜ„±¼‹€œ´´ƒÄ´»½ƒæåze€”iU†™?;7K„ 401bF„›297a‘“Ël544f HèA19%0c6217 4àîn39>z—ót 7 û‡4<2rŸ’œn`øµ±·G 憉ˆ´èêâ‡ìãꉱ½·žín”…‰Š¶‰Á”—…æt…à·Ž³˜a“9´Žµ‡¿“‚j–5¦!¤€Žˆ!·怾ˆm]÷Ÿµ²˜ˆd|fübàŸ5I††ƒáIc˜·½³²ˆ´¶†Œ¶²»º‹êñï e??68>!::5 9'",!'! $;%>?7388=YøØa†‘—…„™´²±½¾ ¬­ §¤º¤¼³²»§º¹½¾½´‚½¸¹·ƒƒš€–”‚´³¶·Ž–Vm603<;%'$227709%<==:':>=8886   70eÝ~ wƒŽµŠµ±……±¾»²³¼»¸±ŒŽ°¼½½³¿²Žˆ¼º¹°¶±±ˆ–lqí›™…—ŸrüéJjvîì57nnGP76 1277>'91  2?277=?<60<$$>3 29=1 hâÛ5—ƒµ¶·´……€·¼¿¿¿¤§¥³´²¹§¦£  ¦¸¸¸¤¦¡¡¢¢¦¾µŠ¶½¹»¥¿³…™„ƒ‹°±ÁoÈœ‘öt530371754<$!&:2142<;$!&&$::98$!#"!%?17<>$&!':0 7=2f–‡šœ™•Ñmø€±²¿¾¿°ˆ›Š¸¤¡§¥º²µŠ¶¹¤¦¦¦¥½´ƒ´½»¥¤¥»²Œ›˜Ž³¿¸¼½µVoᚈµˆ†œr46gËT 69?7 38%?  63;$96 7>$;4mš”÷j55P„Œ‡›Õ “±¼³·†Äa™´¼¿½°´Ÿÿ‰¾¼±ŽŽ†ÏcÞ†·²¼±´…cE¶ˆ„ææ7å‘Í>'96c57?;;=7 3$$=p  07é•k  4326}`2%%<  702<98>>02;':3 „” 쀒㔕’—™›™Ÿˆ°±Žócy„´¶´ƒ†…„‚‹ˆ‹µ¼¾²‚ñÙœ¶½½¶ˆ‚„†‡€„š··ahœ„åo÷q=>=n6=?207036k2$;2oYbbû´€Èš‚†—á䆶¶†bÝ…ŒŽ‡˜–ÄñŠƒç‘±·”op…µ¶´šîú…‰´ƒ“€Š´†oaœ†ˆ…ždíŸsa“†„4iÖÄ620 37<;:1 40  Ì™ð hò퓟ìÎ|œ€†ï߀ޱƒê~ò†„—„‡á냃„EEŸƒ‰éÇa‘…ïüìKea”ƒ‡œcãìžYHÂŒŒ˜˜”ûF䀊µ“š…‘dê‘_ 5115 5 77 oxjN“š„ýtjC‘ßôûú–ä’‚··‚íí‘™™™ˆ‹‡‡…‰·´·¶¼¿½··ŽŒ‚ƒˆŠ½±´‚éýoöžƒœçi據ž•54  69883076469:%;204 mðÜ5034 lÞB5x₎ŒžÂgfÝ“„„€…œwa•™ƒ„€´Ž€ñkӇދ‚ƒ…àzÈ‡Ž‹‹±½°ŽP’µ²²´‰í eùä–ˆì愘ï46øù 89< c 2><5Ýš•f4?<7g•áæ 4Êú‹²·ƒÚµ´ˆÙg醆‡°²¶™aŒŠ³ŽŽ”“·µŠ¶¼°µô`p…°²²€žkñíø‘ˆ·ýä…€—z6=?0 54m<$$8 6>>3åŸæ005æéïäÈ øè•€³¼´ãP„ŒŒŽ€ïs[—’é¶˜mA”„„…ŒŽƒžŸŠŒ…°¼±›“‰ˆˆ…ž˜ún÷ëúú…‹‹éf™—–xQ 4175 {3<975 55 45 iì[ß~ÑxÑzýeí•”—ŸŽŠ´‡“—›Ž‡šê†žŸœ’…’ìò–Ÿ„™SH^œ…îéê…š†‚Œ‡‡†€€†……ƒ™@vpÔrdÀVgkcnÃêàU 60   6377  zMÇïÑæå…—™–ëfwð†‡€´‹€èœŒˆ¶‰ˆš€Ÿï›“à”o皇“‘í„ïññšˆƒ…™Ž´ìg‘†‚™üw`XtãañçzD‡ô 4  77 6<;2  63455åíalNQ㇆•lknwA–›Œ€™˜Šˆ…â—·´†ì”™ž”ú圅s›‚î盇ƒƒŠµµ´·µŽì”ŒˆòkizÑCedãïúBshòñQ71045  6123<>354031 ãèêÅbk“‹‰|h柴·´€“ßUü”†‰°°´˜×ok÷à–…pk䃵´Š‡Ÿè–†‹³³³¶‰‚…”ì虌‰–ØNgtÜÕä×F`n  4776455712<=34  眛âdlÄ”ž†€˜êðHÿ›µ¶´˜””„ˆ‹†êz}Ì”…„–CÑ‘˜™Ÿúbkw眛–üiMééçrorp^ynuÂñYoeî„…—ÞnhxÅâá`hwØæ–”ã⑇‡™˜›ƒ·¹¥»¿°µ‰Ž†…††…â5=%$$$$'$%93 }𜎎€€ƒ†úm‹¿ºº»¿½°µ‚…Ÿ™˜„œf 3;%%89;;=5hw晆€†š‘ã⇌†•VnmÝŸŽ±½²³±´ˆ†’“…€‚‚€šè| 40102=26 a`O—„„Ÿ—àóõè’”õbocmlvþž‰··Š‹Ž‚ž”–ž€†…œ”ïÝn 4 70305mÔsa’“”—–Ÿ…ææòÃåõë…Ž‹µŠŠ‹ˆ†Ÿœ˜Œ†‡œá 513215jeofGçãê–•çUMNüè•çÄäúøÔÿ€Ž‹‰†‘™……„š˜—O 54 1667 bÖy_üé—Ãå•–â㔜‘çöñïžœ’›„„„€‚‚‡‡„žœŸŸ‘ír4671016 •™„žð}SÓäPGàž…‘ucûã•—“††ƒ††„„†……ƒ‚žåÉrj 7611104 y’†šâZÿ—êôJΑ˜†…’œ’–”œ†Œ€‚‚Œ€˜™ŽŒ†–Ö` 76175 Dã“’’îÝúÜtÇŸ“—ðä•’Ÿ††…‘‡…˜›……›Œˆ‰št 416104 74 d}hW‘„…úâç‘àP–„ƒ›‘–šŽƒ˜é•‡ƒšŸ…„„š‚Ž†˜å 51771117 ddbqé–ëñ÷Äeøãì’›…™‘›‡„ž˜†šçá—…„‡ŒŠ´ˆ†œœûl 0200205Özkdþ›…›å@wîïå䃇„Œ†…—–ŸƒŒ„“Ë—™˜‹Š‡“å÷h 5  623?07 b~qpd™œëáíìáÖ–†ŽŠŽ††…ž——ƒ‰…—蓇‰ˆŠƒát54 12=27 `ÐLBY•“†…™Ÿôõò”ƒŒˆŽŒ—ëQä—šŒ†„”™ž…Ÿž˜âú77475 73=1 jTìüZÖbFTÿ集™‘š††‚‰††…Ÿš—†€ƒ›ƒ†ƒ„øìnk 7 50<34mmaqepFï䛑›”„•Ÿ†‰µŒŽ€‡öž…„™‚‚‡‡è”–’€“õ 446554136Ù”×jfÚT•œ™†Œ‚…žš‡€ˆ‰€‡–”öZuç㞀†çë‘—çï•Åhzãíç—…ƒ€œéÊ  Gßâ而‚™Ÿ|imeî•„€‰´‰†î††Žµ¾¥¸¾´µ€ž˜‡™™ë–i676%%'$&!!!$%%31 4?<8999=5e”“’æäJeIv•îÿT’ˆ°¼²´†Ê5b„±º¤§¥½ƒ–€·¼¸¹¸¸¹°Œ†žœŸ›‡‚އñÉŒ²¸»¿°µ‡•ooþ™‚Ž´ƒþlš‰‹™w5;&!&$< {Nn4 ꀄ“V0:'&$< ו†‡ìÑ–†€ƒƒ„” hifÚùõRD䀶½º§»²‚”ggŸŽ´·±´‚“v]€ƒ‹›ó ÷œŠ·µš^a城±·ƒÊ467 g×Yj0?9=6 ‡Œ„F4=>7meÄ47 Ñ‹²°ƒvk 35jꇘž–e nEƒ¿¼·“æÅ’ˆ¶·µŠ„‘æ–„Ž´º¥³†]C 6 ÞŸŸúðQiofï–›†´¸³÷f5|†žÑIê6932<=5ׄ‘  ÙГ™l55  ᎑iäéëà•ˆŽìlüˆ·€äLà“’‚´¶´‚´¾¹µ‘†‡ïÛ‰ŒèiiJççÚR´rFýdlႎ…tjc힆àadžž7574 4305maL wapuö `Nu’”ñæ‚‚žzÄ c”€–ùæ’†‘ã•à…¶³½µ‰€‡‘†µ²³€êƒƒ™•tø€†”bO`o—‚˜äú…€áÜgšµŽ“×L 07çë 47703ô“b 54 ‘€a_gYôjhížvy’køìöÅígc‡´Š‚š†Ÿèáš´³±‹´½³‰ž›“vwš³½ˆí` h‡x÷”ÀfpS—ްЅOmwƒŽžOf Xv5643==yWáþsЉ†ïJ 4ü„}p’â55 s€’Úl˜°³ˆ‡´°µ˜ñ—†¶³±±±·žYñiœœX —–àï……ôú†\y6 Zê\Û–å7?=7 Û|193•á ÿ›Ãx‘‡’o44áð N‡„]m°°‚n”†Œ—Ú¿¥¿µ€øtuë““µ½¼€iõ„‰‰‡q 5 jÀÔ›´°€üàb5›˜ùù†´‡03“œØG=$=dø°p‰68úŸ9%®´&¬¼#& „ 2Íž¾¬½j¿ã?‰¿J/§¤:<#?8?90ÈV›µŽ™ý…´ˆµ·³°µµ´¶³µ‰°Ž²µ–—쟀¶·žm”ƒ˜€at…c58>=6><2!&:76<80íã7Bƒ‰¿¤£¹Ž’¼³ñ⊉›3b{ 3 #%0?4Õ64†Ž¶·Š·³³Š‡¼¼µ™€‰”“š‚·µ·¾±ž±‚€±¿‡†úz 4?&#'%$%>074 {ë´´µ‹”¶½½³¼²½Š‚„^å‘‚ûéE>&$<07 7%?> e 2=2“‘‰‰¶½²·Š°¤¦¦¢§¦½„µ€¶µº¹·½µ€Rô|1?19:3 Âb 016i–Ó4tæ°‹‹šhÙ ⌋²´˜çÛ…ž¶¤¾¶—è1 653='&#&&> 030;40’™¦¤¹³‰¾°°¼¤­¢¦¿±’ÆÃ…q¶¿—eX•б¹’”– cl–¶‹v1?0>&30:?!'=; M‹¤¿¶‚‡°š³¥¡ ³²µsžAåüˆ›c3>:'#!'=1$>%%2? Œ´¼…çèð˜ý„·¿¼³Œèš†•儌°¿‹•Æá{ඈ¶ãè𖛷й°—kùêÒü5 4<51 r473”µ¶µŒ™³·Š°¿¼°‚Ük4 ?:9!><9 576 27ô„’¾±ŸŽí錀ˆµ†‡ mo~}þ‰å뚊°¿±¶žšÏ·°°¼±Š[Ñü“󄘂ë70 Å è dþã•€´€gs”‚··”„··r63 454 5?%&865080< •Ž‚˜¿¾±Šƒ¼»³†·¿¼Ô7897æ¶Š“Þ킼·°Ž¹¤¼±½¹†—𰲯 Åzø06ptÊc€ŒjÐŽžî°·s—€‰np•5%2b?<6<;$i46 ‘ ™LT“†Œ ƒ—l‚°ƒf‘¶ÕŒŒw°Žý“µ±±¿éã´¼å“´Ž·ýfŸ†µm’‚‡b’ ‘1š– O†|”‡n]„ž뜗ë43564754?<3|1d÷Šˆ‚¶ŠšŽ’‹¿º¼Ž‡Ži›„›•Yo6 5ìüzgÏÓeÀ†˜·ƒ•Œš¶½¾‹ä’š—xiÌ =088?5 0aBÔ²¹¸¡¥¹±´—о²¸‹çŒ†ä⃶šê7 48<77239;$'&'=yõ äMi¤¤¥¼¼¦¦¤²´±Š‹ˆì–á5 gæÁ f…â6  > Ûêj 691 ÉŽ‹‚Þ f’j·¹¦§ˆ€å5†‹Œ6—µ¾µsàw–Gˆ±³†<1ñ737V…å7nš“ˆº¸°âXâ•Ër‚³¼°f„„€SsL´±‘ g6q’5>:=1?%? †‡Q4bb¶³·Š‰¿½‰€Ÿ€²²ty㎷ƒj ›Žƒdr5Ãí56 |õ°µ“´¸»²·’ðq f⃇ÑerÔ—‹ì–{䜵´‰ë427oÿsdo„áæhþ•‚±²€„”^Ô1 톆žž‘”M{æ…„ê`œ†––†‰‚‰ø14Mb~Ô`l ’ÿTŸˆšŽŠœ }Ìœ‡†Œ‹Žë󇄕f΄†ïãäï 792—žÎg 7ÿû„ŠŠ¿‹Nåañ‰”fš††ë…·³‹ŸêŸ‰• ›±Žþi逖m 566æì {–r3 NnpŽ·Šˆ†™ƒžñ4ä—Ÿ_Üႎ…íô““•Ëjó›èᙃí 74 aýÖvrÔØñm웉†ˆ‰…æA`rq˜Ž²µ…Œê•l…›š‡›„–lpÙcøìûgg4616Sš‡œáal|foL焞•„šž‚›‡îì‘è蘇…‡†Ÿ—Dk hw KFoæ–‡éq~[ëÖâ‘…‚Š‹ŽŒ…ä瓘—”ù™›êìö”‘ñsk}c5 úÚediaåGG|û’•”‘ã’€Š‹ƒ˜ëaãág‘™…š•íFzÞfqèWpo  pæâ÷â–”e[@È“ä’ŠŽ††€ƒ…Ÿ–‡†„˜ðóSZ{pÍe~rmhmvaXj  `i×Úeßðàïå윛œ›‚ƒƒƒ……‡’ë’’›ìÐÞamiQóe{m{Þds~l lzlnzmvÐNôàäçø›„›–™„œŸ‡„„“øà÷ÍÇyÖ÷Êò•ÉAFÜÎî˜íûãî[\mýº"¾5Ðlç€>²pâ‹bO€cšõãæƒuá…`éø`Ÿ Ö4f]ïýT·îµŽŒ¼‹·³¼·²°‹„™è”ú  r302%0':$&$$8$:$':$'%:07  5s@¼¤ ­¬¬­­¬­­­¢ ¢­££¡¡ ¡º¹¿½¶·´´‹ˆµ€Çe N73>998%%%$'!!''&&&! !'%9?3    垃´´µ‹Ž‹¶½¾»º¤§¤¾²½¿¸¸¼³¿º¹½¾¥§§§¡ ¡¥¹¸¼±Ž†ƒŒ‰Ž’ãTb  1<>30==?17 574 5 416139;?>=?=>99?<;$$;9303050<3 44xbsËí[ò´ƒŒ³²¶¶¼¼±¶½¸¼³³»º¥º¤¡£ §¤§£¬¡¤¤¦¦¤º»º¥§§¥¥º¹²°µšåñúr  pb–žØ  =%$%$&!'%:$'$$%%%%%8<2><0175 539%;35 mya嚇„…„˜ëÖiꌴ°¶´¶°ˆ™•”€‹µµ°¿¹¾³·Šˆµ³¼»¥º¸¹½°·µ³²³²½¼±ŽŸæðävoüáä× lX›ÉSÛN` 0300165 6<9=1  39927 ÄöØRzoäš‡æø”ý5 lÔeÝ—•íÐb—‰Š‰‹„ìZzㇵ´Šµ±´€ŸéƒŽ‰„‘–z à™‚†œƒ‚–Çö´¶€‡šñ 5cÇçÊ 017  62?>>1iGþxt؈†’ãd󘇄“çÌBil𖌴‹„–è•òåÇüµ·¶ŠŒ„èä–’´Œ…âtjfà“ìágnklÓâŽ·ŠŒ„žïUlÌþɇ‚…”t{œò 1677`Áqt o††ãä} _—šçr ˜‚‘çûñd@@î´·ˆ€†—ÕIqÍ݉½‰„‡›Þfꉋ“wž³Ž’êf5jv—ˆŠŒšGkj‘¶ˆ“–Ò0 å•èøJ”±³ˆ‡ë  iw62<0 ”³¹³²°¶€}VÚ´²²³´€l 45Ÿ‚”D 36ă·³´Œ‡Ÿçå–šŽ±º¥¶Á{â–€‚„÷ 68%%81 JëÀa 3:$93Í…œèq f¶°´‘47 ý…•öj1264޳³±³‹õÊõsûˆ¶´´´´ƒB5€´šá4 †·‹††‘xcj齺¶ˆ‡e fŒ¶‘•56133ñxc4 32ófcêüœ‹€œ™ŸÊn š”pÃò 475Å€†‚‚€úéé…·µ¶èÉIgZ䙚äùê“ccŸ†‰ŒŸsÈŸ†ƒ‡µ½µ™š‰‰ÀlGš††’U41 53wk7>=<215l 6ØÕó„ìo’´ƒf|”„ó 65tœþ~³ˆæôš¶½¶obž‡Yü—’zCŽ‹êlóWù‚Іk †Œ‘‘‹µ›‡³²ŒNØ•ÁœˆŒ—]›ç 6æT=26l <3×kØ\Ѓµ‡aGŸÛA޶€7ú‘j›Œžb‘„޼½Žxmœ‰‰›àQF~kõ€šc‘ìlš´g5…å`hFè’‹±çlê†Ö÷‰·ž4 ~›î c 2= 1 u7>?7éa MŸ‹ôî‚’’µ²Šúfe··žö’]Îßbœ±²†ÍÉ—µ¹±šÔKü—€Ž†íin~v„‰‡`n…Œì ì‚ü—„è\’ˆ·„pk–´„o45þà341130s7A4 4‘cla‘J”„›–a—“f€¶ˆ’jòÀèå×úí’uEmdp“‰„W˜Ÿ}ïžë|‘œ›ë’€z‡‹‚†‘c€ÐNû’reêtZÔÚ4÷––_ùžÔ55}•–hØ ý‡„y„´| kêø`œêµ†ÔìHë´³´„…š‡´¶‰›¾¥»Ž‘á ?9>9%89<2? É^°¦¶…˜ê7:–{épgc‚¥¿Ž‹±¶aj¶¼°¿¦¤µŸ ?;7>:2:;86 6wä–œšƒŒÚè>—¶εi1a누€¼¾›¶¦¥™äf7  ?& 49>?™Ô™Œ„뇞ƒ‰‡zŒ kWâx`pk…´³²¶€Ž°‚–Ⓣ»¼Ÿf3! 8226ypv·±‚ˆ• À‡…š‚ 16€‚·¶‘…´¶·´µ²·‡‚·‚ 11>$%25 a•C{’â—˜Ÿúë…ÒF’áfrk 7 4mˆ‹µµ²²„Ÿˆ´œìŒ²²‘‘Q ?06:;= 5<âšOu±„e€äjœ’cĉ”Æ”06cå5‡œš„о±Š³·•µ³€W˜±6<''2 2<úÊný‰ŽÃd°mž‘ qŒ‰é]œê1  = ‚Ž`Œ¼±“•¶³´ž†·ˆ‘Ⴠ5û1$07?!8{“Ò˜´€„ƒi„‚r‡‹† 00ïW߀½±±¾³I峿¶êœŽæÌ736 <;67?·„ýŽŒ[f’ƒïo`É“êí‚„üœz66 h‚Šˆ¶†±„ï‹¶™ 6 73:<^„´¶˜]éõd‘Œ†ó…‹îŸ }ÿ}X—€µ¿¾´”‘²±ŽâDRîþ 1366<01? •™íXÔž‡lB›ê^µ’ â›þzj™d⎶ƒ¾¹™„Ž·‡j n1:9 3 —Ù5•žµ“êǛ熴YHƒî˜‰e6nß•qdט•±±øçг†°°k æÀ–r5756 92f€” ቞—äæâ´æ o„’ú1 Á›c‘˜ž…¶¸†l‡¶Œ–Ž´o52 13 Ó41~ëagµGõ…±„mš›Vƒ› —èiW’\‡¶ž’·´àf°Œœìbâ113Z14bj00p—1‘Àú´˜Ân€öˆ€5îp—^ʰ…„³´”¶„bÉ6á1ìi6cäc“–ˆ‰þUàïŒj—Óê€os—íš¶ˆéœà‰û•ƒŽn åb4  i“ 0“ƒ‡žcËezƒ‹Átœg–koúŒŒÇíŒóv™Qx”›`çD}Mþ|é›äà‚äáöwçQîž^ib•—›‹~kcrÚ—œ”çm™”æ¶¶àŸ—‘z÷‹´Š‹ƒîúû™jœ±_‘ët 50<2;'945 žŽ‘éñ >':>9<5 kàÊ5 ô{á„´µŽ‚¶²··´ƒKž¶±Šìž‡i54<<2 h¼³Ž¹§¤¿´±Œî€–çAꈃ‚¶·é…„ž–ÿ‡“޶„„aw‘ë˜þ˜‹šf‹„šêi1 3=&?4éž À™182 5iÿÛèt šŠµ‘†¶ƒ´ƒ——†s —aÊ17|Öeϵ¼°±²³‘ïÆP‘ öµŠ†S~e›“š›lï„ö’’ ó›Òy·‡“•é  0'$1 Ïê 7ÿòë <pézfn‚°…œ…Ñ„µ´µaì—}[ g‰›f k™†šl‡‚·›€Ÿu’±‚Þbš†mŠš šƒæžQ`ˆ’’›É´´Ÿ悈€wéc67â=>:=7%1 r”w „—77nR4„æÖ†‹„–´½·âî²°f–ú4 “š`à“hꊀвà|‡…Ÿ…ìÊ댊Ÿî¶†„µqlŸ—oY䕊€†°†ëŠ‹êkìÜ3 76x=80 1< {ltêà|‡†í„€…“Œ‹µ½‘•ocn–AÊÙÝlk홆³Œ…‡ê—Ò›€þÚ‚ˆ‚†éúÿ”±ÎDdíÉî„éRƒ‘uhzµ–Pă‡ŒÈ 6êñ =>4>86|j 16~˜|ca 5õ‹… L€´°V˜³ˆš˜ã›š0 G럴‰uë°²ƒ†âoýƒ´…•™•‰‹ô…´‡”“kôž4k†êò›Äꊀ‚VB™… 6ÞÍ  :%kh;3ì 1 |•ü 0z››±±‚·ø…·‡ì€‡d4cí¶µ2U‹†—´ˆ´Š„L‰†Åˆ¹‚ …Œš ”€žf”šF ã‘kµµ7›‡7n‚pc’à5–k ›k23g ;>äj27|é’ æ…¶‡øŸ‡iÒŠµ“é—b•îìµ¶šâfƒ±µ…‚„Šžé·³‰œõe…Ÿ—rè˜òkáš„À {┕ñm‡ 6 bo306 j }5 `ÃññÈhx„”€‘†7´Rèìbn˜…ܤ!§4âb†‹%¥žó‡¿ÛéŠ~€xì‚ÙµÃãžo˜å^ìþŸ†Ü få’Þ›¹–éæŠ¿°µŠ³Œ‹‚¿¸Œú÷Õoži?427=;:! $ #:9:;= 43%&80µµŒ‰¿¸»³±³³»¢©®¯£¦¦¡ £ ¦¤º»¤§¤»§ º±‡‰”oñ|4ad6048##&8?%$%%!!';8' #&%$%;069%$7t™N‡˜Š¹¦º³º¥»½µ±¾¥¼°½¥º¾»¤¦¤¼±´ˆ€‚¶¹»§§¸²³½¶‹‚ƒŸvg‡Œ‚’ú455710037 10154  03=224 6=4 090738;3=8''89<:9>37757 jœ€‚‰µ±¶¼¿²²³¿½´µ²¥¥¿¾¤¡¥°²¹¹½²¹¥¦¡£­¬¬­¡¥¿¾¸½´Š³¾¼°´´‹ŽžÊa|Ö 5 4  =;<57=>?299<=<;;$!#!$$& # &'!':98>11117024怃„žƒŽŠŠŽ‹Œ€ƒµ¶´´³²Š™„´´Ž‚°»¸¹¹§ ¦ºº¦º·ƒ‰¶µ‰¶¼°‚³¾²ˆŒˆ…vÉš“Zàdäá~r–“ bf   7=?651<<39''0 33\ÔãšëΞ‚†Ž¶·‚†µ±Ž’ˆ¶äÝëSu„™é™‹¶±¶°±·‚‡ƒž–idÅbib–˜–Ìñê”} ge  73   4  69;=62<=11=0 gz‘‘è—늱‹‡†²¹¹²·³¿¹±·²¹½‰†‡µŠ††µŠ·´³¼³³½¹¾³·´´‡ã皈‡’‚‰œô怃šã× yææoaš—~âÜi jDøäi775 51>%$$8<232307 gb|bda}‘š„•ñ✅Ÿ™Ž„ËipÜmfú“çil—‡ž’‚‹ìÔDž‹ˆ€ëäòÑf솋‰‚’óçñçìçÓöÏÇ‘ŠˆÍcsÿœƒ´´€Ädû‘…@oËÆ 41<2299<<20 |gb‘†‡ŸžŸ˜‚†“ž€µ°‹—âåÚÜë™…Àieèêéþ—ùàÁ—˜•ØhqyšŠ€v”†“kf‘“wׇÖH•ÖknžŒ€„Ÿ‡‡…íiE¶Š€…è{‚ˆŒæogZj 3?051>3ÂTalæ…ƒ„s`ý”–øê„…üoå•ç‘•‡`v–”‚îŽà 𵉗„çbdôœµ¶÷ê…´3aƒ„Œï`Öè—&>„¦£´5>¿¡‚=>—Œ‹·´4œ¼·$$ }‘Þ;:õýÑë…¶¿¿·ƒü”ooã 2=fôí_“ƒ²½†Ä%%2œÛ jм´ëð•…¸§'&k°î–ᄊ‰þYމ½¾·±Š}2<‰½²´øƒ½¹¾³ŒN5<%!!è '&%::9< f=:{°ê‘±¸ž>7°¹œ²®§: Š·†6o‰·…g ²´ žŽ‹€Wëç 20q–1%±‰Î››5‡·œ‡€††ãXZ2¸¤·q1<…𥤾šož´n=1Ú°æ9!>= `g3?‹³°±µ0‚S–äCšmŸŠ—ăˆœ’‹ˆ€€Š´€I}‘…œjh„¼Š7>ŸA >1å·S6 ü¿»“Qíõˆ³ï6 ˆ³™ÿƒƒ7âæÒ“žïç¶‘ –°³yXêó450:$$?7164 Ñà“€‚â“†µ†öî‡ìOä~“½¿Šµ½²µ‰‰šмˆãÕ瞀U4 4b5íý0 Ê_lŸŽ€dcÀééåaéædlÊüèhiÅûúˆ€Èë‚™o 644>;55454 k÷脇€µ´Ž‡Œ±´‡â…‚ž…†‡ŽŒ†Š¶µ‡±¾²‚µ¿½µ™ã”˜`üû 7= —’kjk`ò†š€È ûS|qÊ•Ì OŸó^ì”äùF7233017hµ‹†žŒ´µ€”ms…ê—‡Š··¶¶°±…œ„Œ‰´²±‹‰°´’ òìra_4  }”›™ìúenlD„€†›írfa„ôcåâJgj5 6 bádøìûy~é—˜‡™™†„ދеˆ¶´‹¶³¶µˆŒ‚†–’‘•Ökz÷ò | zöLn•íHiäèñxÊ”Whh}@ÓCmlc}ïDaej` ckhrGceäìéæ|Ó”†‡™ò’Ž€‡…е´¶·¶´³²°·´µ‹¶µˆˆ‚“Ýé‘éxzZñâ 0‘0ád=%ºš/§»#2:€:oíº´¾¶3†½/æŠ 8%2 $ãaž·¤¥¤³²¤¹‘÷€i 4529:%99%:?=?0 n™‹²³¥¦¢¢­¢£¬¢¦£§¦¥Šš”q=:;##:%& ;$$%?2=63<67 j—˜‹ƒˆ°²¹»½³¿±´ŽŽ–þð 627?<$'&$ "&"!>?4M…‚·²¾²µ¶µ€™·µšˆŒƒµŠ†µ±¶¿½¿º»¿¤½¶µ‹–•ðf 073013 ü’…†‡Žµ‰‹ŒˆŠ´·ˆ‹ƒƒ‰‡íâw71<9>$$;%%6=33  ijÎâ„„µŽ‰Œ€††€—Œ±Œ€µˆ‹±´´‹ŠŽ…„ž’‘‘7 57617|sá™‚Š´³¿½º¤¿½¶³¶ˆ†€‡àgb 3447 55>?03<=6=61544M`n}˜ãÖhÖ…‡…´·¸¼¶¥¿²Š³´ˆƒ‘çt  1 jÒRá—ç‹…‡„™î—Èã…ìSê†é“iõ–kž‚Ÿ€´š›…„†‹šŒµ€‡ŸáÎh777<:9>&!'8:$:8271 ›Ø€‹“‹Ž¶µš‰‚„‘†š‘ƒ’‚Ùç•U鑚jü™øfÝéy˜”íëŒíàîû€öNì  lÿû…µž‹´¹°º¤¾¤º¾º·±³‡ž{jn5039:'$#&9;'99146ç…ü㘚†´œýëx@  za™’–€‘¶‰´±‡……‡÷Óähñzã]}àšèæ‘„‚†î‰‚‚±ˆ´µƒ‰Ž½·‚‹·ƒŽ…|Þ_  <:5=94;07640 øòo†téƒí„âìþØeFä6  oi|”‡„‡¼—·‰µƒ†·‡à”aþq×øo—š™Ñ˜µ‚€·µ†´µ´µ‰Žšå›‘ïÈh4774 3 117 kçå™–Å‡ŽŠ‚‚‚ƒ–鎓–g}•e41937<2211=10x𘀚¶†·Š‹¿²µ¶³„‰ˆe—ve`eY{|’“‰‹ƒ€‹·ˆˆ€‹±‹€Š´†—…‡Òj‘à 6}10 70aÌjõ 7bì–eWÇaÅúnìäžíg`DFû‘ËŽäƒaеA‰›†µ“ƒŽhÀî„㇎€‡_ž‡‘V‘Ja™ã•lš™jUâ’™™uð€šfîæƒƒ›q„‚ŒûìÝ 4 920 <%3 660 ‰ÏöÜŠŒ‹H±5º‘á¼²m³ì‰€ ê5fä4ÿÞ†–”„â\ î†æŠìtï…šè팼Œ²»¾½³²¼º²†´¾†á…ˆ‹žgpÔŸ‘fч74;0##'"-.,,.,."# #!037:66 䉄„²§¤»º¤¦¸¤¡¢£­­¬£¤££ £¢¡¥¤»¶‰°°·°´¶ŒŽ‡´…žŸ‡€ûde 1==?26<9%$%&!%%&%''%::20507 5jþglàg|™òaüÚ~â’€„¶¸¿±¾¥¤¿¿º¤¦²¸¤¥¸¶¾¤§¾´³¿²šŽµ–œà“†–•’î xsãÎ{[<f 6461360631<:8%%%;=009017  475narcmgå“’´´´½¶³´°³»¸¼¸»¦¤¡§¡£§¡¦¢£¦¤»§¥¥²¼§»½°²³µµŒµŠƒ„Œ†æê™épE\Òðón 7 0?>$8?%$8=>:%$' # $%''3>9=?63?60062707?0 1747 bhFá—‰·°‰²¶½¶¶¾¼º¿¿¸ººº¹°²¾¼¶¼¼²¸Š³ˆƒ¶ŽµŠ±²³‹Žµ³µ„±¶·—†‰™††„……“òrOq1 075026<%9<==;20 4gðâd`pihck^RH{……†ø›…Ž•†ê…µµ…‹‰ˆ–†ŠŸ´€œ–ƒ‰ÿp”…Çé’…èpà’熔GÕë•Âeíêml 665 0>71331546<2?9<8=2471Zàîwãï“ÙO”BGÒdaÿCj—„á„‹’˜µŽµ··´¶°Š³¸¾±¼¹½²³¼¶¶²³³¶±µˆˆ‹‰‡·‚Œ‰•‚†ž‡˜„…›Ÿþ…†“—CøÀBØÿßf 5 466028?=>?<26341mGhohg~cn}opácÓ‘óÂÿàœ™„„„†š…€„“›œã•…š˜Ÿž‡€ŽŒƒš™‚ˆ„ŒŒ›™‰‹Ž‡ž–‡„•ïýãtzserj 710330231646 pgqbRpgXçíçù—–è”é•’éáî蚘œ”’™ž›˜‚›ž†˜œêêé‘—…†……™€„‡€„‡Ÿž‡‡š™’›š–”’‘“ìwóCojjgJÄala`uajhxihe\~Õô~f|jçÌÜp{ÉòÝòäšÔžžîšhˆ‘í…ŠÄl„š…¥$»Þõ»Ñj|…·ñヌ†b‹ù”†Îø < ‘ ¶%Œç4:7 ™ c²±že†¥¤»¹··¿²±±µ³Ž¹³°˜>3;:"/-#&#!%'$$8=>:%;:91 °§£¢¢¤¾¿¹¹µ´¥£¬®¬¤¤¬®£§§§¥¹¼±²´€…è‘“| { 22;'"., $' # $36>8%&!&%%<8%;1=$;24k —Žï΄‡ ´Š‹˜ž´¶´€‡·¿¸¶ƒ·¸¸¸¥¥¦£¢¬¬¢¦¤§§¤½ŽŠ½»º²¹¥¹°´¶³´dÞpn~jh76 53:923;?6?%!';>%##&26%&$=62>:3  w [@n` 2=675 1ôáDo†²¶ƒš‚±½½°·¾§¦ £¡ ¡§§¥¾¥¥¸¶½§¦§¿¹ ¬¬ ¡¦¡ ¥³·½¿°´µ·½Ž˜ 3=56:'$$%%870%9 09;?%%20%%>%%=2<6   blãnhb^ãžž‡Ž²»´€°¹¹¾³´¾¤¿²¼³¼ºº¥¡¦¤¹¼½±³¼³Ž€±¼´‰µ‰]áäÔ  776d eklIÇdjÿä•ã}xÑT cÓiTìvd[Øž‚ƒ³²²³ˆŠ³··¶Š‡˜‰‰‚ˆ†µ´€„…çô•îk^—…Œ‘è…•f 42?%$9:>2$8298>=3<><3466àäë÷fg_XrsÁPõ–—”ÀtäåjòæåŽƒ‰‚™‰“훃ƒ‚¶°±°±³¾¿°·´µ¶±¶¼¿¼½¼»¥¸³´´Ž„„„”âèž´±†‡— 4677=?766 3067610674lkîêcmÙtzblåraÓR÷†ýj {hÉ›KùksXà‘u`•ûà……„’†‚‹³·Š³¼´òOóààÇóEgßÈôêÒ‘Ìîó[R 4005 vÿûæêž‡ž˜…†„‹‰†‡„‘b  j}EåèœêòV‘—›†„Ÿ„’ÞÏãpkdùÿZœ‹ˆˆµ·°³µ…ž˜†ž–u54 |xj  ‚𙵱±°±±·´Š‚„„Ÿ…€„—ïfidá—’š„˜…‡šîÉÚ×åñVôgq•ÜgbcdsŒ\‡¤¯7o ÌöŠ¿Íý¹„´=#±2":$3?„히¾¥¥º·¾»‰d‘å177>%':9;:907 j昙„³ºº¥¡¡§¦£§º ¹»¥²ºŠ‡–H78'!##!&'%=<1 Mgw‘ì—ƒƒ´Ž´½°··±¶¼¿¶½½õo  6503?1>0?%!""-,,"##%?1eŒ½¹¸º¤§º¥§ººº¾§¿¼¿µ‰Œ‡µ€…´··ˆŽ‹—ê’liyk42;8%<>006 쓎·±°±²³¹¿¾¸»¸½¹¿¹²´µƒ‰…ùÝñ =<$'& !!#';%?<  55 7 5üš‹ˆ½½½²°²³±±½°±¥º³¾º³±··µƒ€…áÞþm 013>$:?92<1hlñ•н¸º §§¦¤¤¸¿´´’•dWw7 54<5 26=<3?>><>2745 h}pmsî—œˆ·³¥½¥¤¥¸¾¥°¶±·Œƒ›‘@y =242=0= 4RÄhÃdÔ’øãšï•”ñ˜ÃÜ—“ŸŽµ´‹³±±³½´³µŠµ™‡Pnöf 4130=8:;398><3==56›æà–íŒêë…ìà_äRé‘Õ†‰•ƒ·ŒŒƒµˆžµ´µ€´‹Š·†„‚š  75=3471  àÉŽ‹„µ‰¼¼¶¥¥¿º¸¤§½º¸¶Š…˜Äö 642<;:%:29973 gj—í‡ÿéžëúìŸu 640633424 x霉Œ°€½¶·½·¶³Š´‰Šrlà 4 6  D‘Ë莀´°ˆ¼°±°¶¼´Šµ¶Žˆ‚€€ã„žz`5142  od‘‚î˜±Ž´Ž…†ílQ 45 0=3=>=98=1<12 ñ‘”ç¶¶˜²´³·³µ³²µ±Œ´OÖõ 4tÃ–è“‡Š€·³µ‰´†„‡éaÄÝ   iœþfƒŽ„Œ°´²³µ²¶±´Ž´„êöF 102%8%$%$%;:8?71ì甂…°Š¶½²´¾°´°²¿Š™†‹œüà  oKÇãêŒššƒ´‹Ž´µµ†‹Œ„‚ì‚—eðGÿä  kèsðÝèä‘é÷…gð‘ëýæ÷jtöL| ^7 0 17 4^ žÆû‘î¶”†·ƒµŒŒ¶¶´ƒŽŠ…†…‘’zårjj|mnóÿ’úæG‚ž˜žê€……Œ†‹‡‹µƒìŽá“‡Ûeñt4  55 l4š–L؆ê˜åŠ ¼!»”†â 0·t Ò Œ •bmh4…óôíoÊr4—{ p…”eJd°Ž·„™²½¸¹¸±¿ºº¿½ŽŠ³³±ƒœ‚³˜Ÿæa“Öî 4114671361?:$:0 3îþv꘎Œ³¹¸§ ¢££ ¡¸¿º¿¾µØQ‚ˆ€“’ç =<2<%' $:;$!!!&'$& "#&$':<04733 10 äãòJÂ鈌ˆ´Š€Œ‡Š‰´³îé{Œ±½¾³±¼¹¥¦¤¥¤¹¸¹±¶½°°´Œ„›ìoÊë„Ôc 41 sB ôov5ÄWþäÝùæHúñcì圓i…„™æmmûç…†ã”ëìCåš“ãDæ—ŒŒŸ€´‹‹Ž´°½ºº¹º¥¡¡¦¡£¡§¸²²½º¤¥¾²¼º¥§¤º¾¿¾²°µŒµ¶—ÛE =?111>?>924<9:'>8?36 8?;&''& ,, "':'$$:29:?:8=<3 9;=>>%:6>>327 2;928;=?9? ˜Ó†áoóû€€€·³¶´ŠîŽ´µ·¿¦¥»¦¸¼²¶²¶·½¹¾²´±³±³Šƒ™›ƒŒµ±¾¶·±ˆ…Ÿ‘ìÃ]ÛÀœVn 4 14 æ’hpn541 18=67 Gè  ümL447<27e ë™˜Ž‹µ´²ŒúœŸ„ˆ²»¶¿»±·€†„´‹´½µµ‹Š”ç„Iu›‰ï› bÓDëH^× P5 zãH    2=24{wH d‚†çš‹î56 A—V4<276M†œµµ•œ÷óÿ‹‹½¸¸º½³¿Ž’†‚°¹¾¦¡¤º¾²±‚‚µ‡ˆ·´¾¸»¼—Ójù–—„š±´…‡•o l~jbo73?37ûbh l•†Óhiú‡‰‰‰·°·Œš™ðæ“ààƒŸn47  5ý 9?0?> { ?02“Xœ‡‹Þç}fVÓÉŽ‰ƒŽƒTêa7œƒ’…Œ€ócy iÝ–uÛ3<6å“í1 e`l—……èì“ã4Õà–´²¶ö•ïMaäà™‹°±‚˜Œ‘hö’œ¶‹†„–X mä…ƒŒ…áž5ck♵”‘D ~”„„„“0ìe†‚‹¶‹³½±·‹¶µ³»§¤ºº´ãPë„€‰†Y–ÄHnm6?88017Ú„‘ÛË‚š€ŒŒ‡š¶½¶·¼¶•}þ’´¶€œ†C 33?8966647=%$%><8%21>8?>$#:75 Ÿ‰‰šufc””–ÒŽ´†›žebiô´·m 4 ÷FÆ5tH‰Ö e ahNƒ—㇂—‰·´Š·˜ôwî‡t Òÿ}„´„ä“›œˆŠ±µ˜üöí—âd4?> =<<<=5l5?>17 Ýâ´°Ž“†¶³¼¤¤°ž‹·²¶³»§³±±¿¥º½‹Š´°¶¶³²µ–{–„Ÿšµ¶Š˜š€‰‹€”ú€…µ´€ E‚—†‡‘tòæ× Û–Šˆ’0 ˜”žƒ–êÉ“ëÂÊ”€Ÿj1;9344 3?1=334<8= 49$:<625fÎoðï‡úrøƒ°½±zx윈šg}h4ÌŽ·‰Ù0 jùˆ’cègi Eƒµ†c —вµ˜‡ƒŽ“hÚ››–Æ›‰¶‹óo è°öù„€ú A„á >';21o|33 26²·^ 0³¹±Œ‹·¶·“²¶Š´»¡§‹ä{’‚·½³´‚„—Ñ€ƒ„š¶¿¶öfàö󘉙éæÇS䘛ƒ²¿µ] 4ÝÍ–Ž‹ŒérbäïoX›Ž´²½Ž–ä–·²´ŸQen5<0GÀ 43=9;<4j7 62%&; õžm 0  7==ì‚t瘔j4‡¿¼f|í5=1‹Lâ10…´Žœ7<6š€Flmêé46 •·¶„cm“µµŸO_Œ¶°‰Ž‹±Š—œŠ²ˆ‡óá„€ëö—õ1<0 3331 zj懌‚žæîž†‚µµ´·¼¿¼ŠŽ‰´Ž±½¹³•…µ¶³†–û…ж°·Œ†’æéúšµ¿¶ž‘hz’„…‡œël}ŒŒžfnàvl—™š…—ío‘„æl“€‡À5â„‘ép63=1ÿR 8:11:%< 6>8? ôý10ጒ4a€±‹ƒœ’”á×g„޶˜^г¶í 4Ÿµµ›•Æcç— @‡‡ù5< l›œïv|Êp~cš“}û‚µ4 ö€•Óxôûpné“|Ö‰±ƒh cƒˆëÿœ–ï÷‚þ˜·‚k61—€†™‡ˆ´Œ˜—‚¿¥¿‹…޾¦¹‰bë·²Žè}á„A‘޽±‰†¶¥¦½8$%3 7;;838$&'87íµ»¼ˆfÏâ63 Ba554 5”— ˜ˆŠŸŸƒ¶ü5ïêÇôŸŽ‡2'%:9:%93 10 ‡„„¶¾¤¥¿¶Š±²³¶³¹¹¼µ†‘–€µˆ†‡‰´²·ˆ•Ùbf×톅“𙂄†·°³´æ0<=34 72?>?4 i±´Ž‡ôgWv 4 of×àøÿßûÈ[\•ž†ŒŒšþn 䔜œŸÄ0%$%?75777 i–‡·¾º¿µ†–™‡¶³³·‹ŒŸÿeEâ‘„†ƒ··µã ëà’š›˜ç˜„‰ˆ‹´´Š‡õ =>3 543224s”–„¶°´“wQö_z 16 póJc÷’€ëkb󄀃ŸD næêÕFà—3::>14716017 Üœ“—œˆ¿»¸±ƒœŒ‹±·ŠŠŽ†”Îú…ƒ„ž“ƒµ¶Š‡]jIç“—÷•†ˆµŠµµ¶¶Ÿm72030121tÞ“‰‹‚€™„•ÊÜkl luŸ“Ÿ…„†›‘âþöÄbÏçáh 6023014r–‚°³²´¶±±°±°‰µŒšëìå’•‘à–˜€Œ‡„””—ýçleÛé–’–ÚÿÝ™…‡ƒ‹†ž”œb 5543223  f󀇄™’„›”æVðÓx  Ã…‡™œŸ‚ƒž˜ê—ó÷ bÃUx  |ú–’Š´¶µ¶²½³·¶¶³´·Œ‡—úËAšçÙmÝ•áñ~bÖDjîãÝç–逷™“œ™…ët`cmd 5 3644xspè“íw]‘÷•†…Ú7 ùNôðATrt㈌—äŸnÉ20160 æït2i·ê‡µê›ç†ý‚¿²¶¿¿²µeþ‚슱IŒÆØj7 ö‚˜ƒïždb”¶¸šŽžìZ à WU”• 5´Iæäa71~Lcæ—…Žebµàœ÷à ëE“綃‚Ò‡726>=„—4™·š·Žž…ze` ˆµˆ¶°º¹Œ†sŸ÷’¾·î“` 1 û↎±ýOpŽ–´‘„æ4 x`tƒ„´†y•  “„cކ‘• 7wg‡•‡ŽâŸz5…€gÓ72 fÄûˆêá”Á下³¾ˆ™an14347b 452;21è’wµ“õþoi<>',#"938Æç‘\„ŠŠ···Úf4ðµ–·¾°¶°³Š†´°¸½§¡¦§¤¤¹·¶²º½¹§¤±³±êˆ°´±¹±±´\dsÜWS™0922 ók 5fZå_†hv d‡ê³µ‹½†‚œ[–‡šŒ†µ¶ö†þ}Ø•›ˆ‹æš`20 2 2 4 oi×c2==$6< Ë5 Í—gÑR 435Îá{ 7Ù|þ”–b 7è™ÉÞg~qœŽ½³¿¥±°ŠŒŠŒŠž™ôð<11 }èc`g`F‚——ëNgìœ|›áe6 <  Ozè·—Œˆ†™†ùà‰y¶—‘ŸãB˜€…²³´¥½¶¸±¿‰´»±´¤²Ž·ˆ„›‰×‹´…µ´š€…›TŽM´ˆåN÷ 41=<7402156i™øÂcŒµƒµ‰–‡Ž’ƒ´„•·Š‘µXÄQakí•ë‘rz6 5óÜaòïféñU– z0 2 4=45  ï 5htvàúx…ÔëYd\ñR5•\òòÍïmƒÛr‡z„æ‘•Œà•Švš†—ƒäžX’êääú_äïšbþ^L™ïF„Çh 6l1661  xT “âýœö\éW𿵇„´ŒŠˆˆŒ‡‹ŒŽ¹´²·±³¶¸ºµ¼½¶½»±°¶Š†Œ—ŠŒ‚…‡™†¶—݇›×˜” 432?21?31;?448  —óæ_U𜊵†¿„Š·Ž‚°·°²…ˆlDòò×a6r–ïoä5€q˜ëg}{hHìÇ60<3 0 üh 4 i円ŸŒé7hçk„‚’ŸJÆzš‚ƒ€²žwh 5 pJ—„•„uaÞíÓ´³Ž•çõZÚ†‚ŒŽžhl_aáèE††•Öl465604314 =14Ì–ë 5 X~œ|Dþ͇…‡·µŠ¹µš‰žø†ë„°‰²¥¶µ¶·°½²½¥º±¥¼‡´ƒ—”‚ކµ°—†ÿeäw|œƒ‘Ùå17=71>0? =71? z›—”ê2µx6‹Š26¯â.¬± 4¿n0VŸ¼¤„oº…7‰±ï.±#;&49™‚†´¿§¥§²¶¥¿ñŠi  01:9=0<3 556 62…‚•¶½´µ¤»€§º·¾µº¼‚“Æ73&%8-$:'%9>>=25lç›·Ž³µ‚¾¶·¤¥»¡ ¡ £§¤¥¼¹²±‰´ˆ0' "////---#&!&!#$%9<3 4œÿaµŽ½²¾¼±‚šámá}zƒ‚½¹°¿º†º´Ž³¹€‰µŽ„€Ÿ•‚–猞‚‹‰äâË͇†Š±¸¿¸¹ºº½¸²±·µŠ†ço 1 1= 7339<$%?%:>=>1 …ꀈ±±¶°ˆŒŒ…‚š²Œˆ¥¾³·¥¿°½¸¿·¶Š…k52>!&' "$$:9>%94324  ÷He‡…€‹œˆŒ´·´¼¾¶¸¶±±±±¶³‹ƒŠ…õœéÄnæDòä熖ƒ€´µƒ²¶´²¶»¾½¾±¶ŒŒœŒŸæ™ç 6572äÕu—à~‘žËœ5361386 ?0 Ín–‡°²¦¹»¦¿¾³Š²°ƒ‰îÅà 7=308;<>27 6t›O㎉‡±‰´Š‹š˜•Ø‹‘ÇnÓ55jÞž}…‚˜áµ„‹‰‡öa= 7>6?%65>013  玂Œµ¶¶‹¶ƒµƒ¹½µ¶¾±°³‰´„”Vi4 1::%"8$':'263 e”_d’†‚·ƒ·ƒ’]  4h퇶³½¥¡½¼º…¿´³³º°¼¤±¸ŒŠƒˆƒò†Š‰µ·€êàfãì…ÕŸ…žž‡˜é”Λ‘Ž‘“€l022<898?<=6725 5‚º¿¸º¥°°±ƒ‹Š·Œ±±Šùë718>312 3 731%:$917Òšž€Ü_™ž…ƒ´¤¿¾¸²±èb”Å wìø  7 vwƒ†‡±“„ŽëQôšŽþŽŸ€…ì” 5 52J ô 530=47a`X’È…d~𖳲޼¶‰†}^ooÒ“”ƒÃ{0=<6< „Ö541›}Ox0cƒ—ˆìÅy1}YwGמSƒš¾¾º¦»¾½±»¸¼¶Š¿¥¸²¸¸°¶·šãꌑ„ŒŒ·†Ÿç 76jbÙC {–nµ±½¾Žša–„}eR 1=$<20eãíob…Pׂ„”Єy˜„°…™Bõ h4635˜—’Ý“ŸŠÍû‹’޴Ї 7'#-#!"3>3=8%!:&894…ˆ¼¶³µ´¾¾»¥¦ ¢¢¢ ¦§½½Š†‚szJk ?<424ž„œ’„—”thlÆ—ë|–M–”š…Š‚“´°ƒˆµƒ…di˜ý@×4=íÞ˜ƒ‡‚ÚKvs}”‡‡åk 4=$'%98:?0  3%$'''&$:<4 541 `†‰ŠŽŒŠŒÁ}ïR”à‘†€°„€èšµ…‰µ¿¦¤¦¤§¦½¾½¸¤¿§¥º¢§§¥²¤²»¸» § §¥¤¼°µˆ²µ±´µ¼¼³‹„ˆŒ…‡·µ‰èAQ 4 46355 6368::2 70160::$:$$??3=3=8:$;;;25 cÅ u—޶ˆŠŠµ·‡Š·µ¼¿¾¹³´…„˜‡µ³²²¶¶³†‡Ž€‚´²³Ž˜•”aÕžáÑ{eÎ  5i5<3?;'';2=??0 623 4 þÒÅf {gXÅ—šíåVgeøŸÕVc`iÕï’Ÿƒ‚б¶²µ‹ƒ±³³¼½¿½µŠ…Œ€ž™é€“‡†‹‚úKkœ†ü÷ꌵ™TaC” mòÿ”43  2=61 3= à fðT @šƒ“xÅkp‡‰†Œ±»¹´·³°‡·¾¥¹¿½¼½Š€˜´‚ˆ‚·±€€•ëd”އކ‘rúaêïž›GMsž—ƒ‚êÞoTSQ 746 5 P 030266  6=90=45 Ù 475447 cKh433105 lÇñr g`S’µ°Š†ïâ‘ÀvöžŽŒŸâ …ö hdo–ƒ‰µ´ˆŸý쌊‚Œ´¸¹´žŒ„y–ŠŒè‡š`ö”n„´‹ò`”d—ƒµ’õ™†kmã‘u•´·ŽúkA›ŽŠê“‡šdã‘ôƒŽ‰‘çbמ™å‘’z•…ž€´´‹—}ÝûëziòŸ’xcÞ—û f}UáÛikCaßæs—šœÖ^iJôàå•áñfjó•qæ—‡’Áo`~özja6Rî@fØ÷j~ÉLiT~…çûÙqØÄ‘mgsg`ôFlhilo}oPsbg Øîd@Dèšž„†·³±¾´·œ‚²¶ŠØê˜‡‚û㜀ƒ†šžŽ·²‚RC…ƒ”w 7ÿö—ù“’¶Œê73=m Êj ÷íòîC–Ž€µpú‰¶·Š±¶‹Ž†¶‹…édž„œ6ùùc   Øì\êÁuŸˆ·’ å눀‰çÓëÎ›Ž²²šíl€›ñtü‘BpÙàäcïé135h V4:?>4  324g ð1$9>034|`a†¶´Œd zÇl44 –áØ ifo‡´„˜è”™˜†Š¼¡¥¹‹´°·½‹°¿¾¤¼¾±²ˆ’툳¿¶ƒŽˆ³µ‹¶Žˆ¶³±†qò‰‚éé†BJ•ëZ´7 på>= 5 j5 É·Šnf”dµ³µ„‡š˜Q šˆ°Œ“P474û”æd` =27 æ¶` ßæÔ†·µOiψ§²†56n‚Ø·¾±“îè¼˜ ?ôÍÞ‚œ1116›Ž79=  6 1890 7 î–s j{z{aîß’ûoÝ…ïpkÏìtà Á 15ró„•b cŸšë’µ½¶šš·µŒ„µ¹¿³›¶±·–ƃ³¹±ŽŽ‰†“›Ž²±´…š´„G„ˆµ…„žƒáÄ—µµ‰„‘€‘D›˜ëHÅšÈ 7Wœï]e•‡å 郑qÏŸ€rƒYhá‚ß T‡–ht„å3 wì 4A3;7ä ZœV7 Œ†çdˆ™ô6g€å·ˆp ƒ´€óÒµ½·MeƒŠû†·…iƒ“›Ö5w…“ Ÿ–06dã1=m=%2 <1”3?5|e 7 •”66àÇ 4‡ž ážÑÇã•4ˆü 6ÿÚ —…c _”Ë Z‰‰ž}˃‹€â…ˆ¸²´‚о²´…‹¹¥¿Žƒ´¼¾µˆŠ¼¹·Ž˜µ´ŽÉV·´…xfç™àOîFdíVcš˜flóB•pÂY—‡êdWCkê’ìËo‘„ƒèÒnÂgAbD—•’}a`“”Æ caš‡…kÔÉ‘œŽ‚–•äÁ’‰´ƒUls‘™…›ˆ´µíãœSm’„‡525n{†Æ7= A5 Þîm06 5•7~7X‡‚Ø563äƒz5>6m ì ?< 7›±ˆMJ½°³±¾£­ ·î‡ä´‘4pwŒˆ…f™ƒÀŠ’’Ÿ¿±„5gË 32›–ƒ¾¼ˆj1w†RŸŠ»¤°‹À†Š—X™Œ´e 2“÷4 6%"--:%<7œo><=610é·€’ 6<%2[z 4qÌTµ‰‰šŸ´¶²½½¥¼Œê|†…ׄ¶¼¶æçxƒ—jÓŠ·‹Öcùzš°¿ŽbQŸìe‡¿¾´’bçsg67€¶æ€¶š ï´³Åv„´µœŸ±¸»‚ìˆL7„x7677%>1='' 51âî 5GÌp’„ 1= zyãh”𙟎±´€æ’€Ÿ·µ†ÒéTê…„Š‡jlm\Aßµ´µ€”–NøH‘™·€™dò“éUÓµ‹—Øïæ‚´“Æ xEè÷€ƒ²·²ƒ•d…‰‘˜‘q66153754 5=:!%=JSÚiboa~döš…’èñ„˜‡ƒ„…Œ‹·‘€Œ‚ÿf‹Œë[cÀP€ˆ·‰é‡’€ƒ’ôû“‰…›jmCàž•„†žìófí‚‹™š…Glå˜áÌ™‰âh4<34 12=16>8%;8>7 i426üð”cïv hõžVÃbcj–ã›Îù|íd⌄†ƒˆ‚€†‡Œ°½¶ƒ—ï‘›–ê‘’“޵†“ôOÝ쀵±Š†àebnfuïçúÌžµ€—j’€‹˜êÐioe”™‘’‘††‘Ûßdæ}  3>?=6317 7>>204|^j`Nž€ë~c’‹ôcBxôÕìÚ–‘€êz郱´Š½³°›þ^îŸôÄôµ¼¹µžyÓW…±‹ƒ”’·ˆˆbb´°ˆèx ᜱµŽëD†Ž¿‘}€ƒµŒ‡•3 ……÷5 647;$?4`=<3<=?4Ð6 hÔknå…Œ–k——çzä’…ümþ‘y]„‰’𙎎󜴰´ŽŠ†Ä–ްµš~̲½¶µˆŽîQ‹ˆ±œÍs“ê‚peœˆ·´µš˜–±¶¿ƒŽsmg›Ÿ4p†{ :?? w><915 531;14Cïê63$=7âž™ïxPNër{NýÀ‚´µ6胋ŒJAa›–ˆñ‡è–‘•ˆ±¾ˆžå‚·…¶úoq˜ñ…m™”öh㊿´˜ 4þ„µ‚¶æìyá‡â„Ø…ž„è—†·¸¶Š|€¾¶¹î~ëW€ì‘’úz Ћ‡i0:=1~ %:&;::;%?9;''9 >'$;5306O^Ò46 êd=26bI•”‡ž–“ƒƒˆ€ˆƒƒœË„µ»¿±•ø‘Œ½½¹¿½³ƒ€œƒ…’š…„|í–±°µ•ó˜·²±²´µ†àêý›êí÷––œeæ·½½‚–„н¿²¼¿½³ƒŽ°³·ŠŽ´±€‡—¶¼¼‹mÌù޵‹Ž‹ƒøaOÙœ‘‡†ˆ™àû‡±´êúô÷Âdft601<1 |qÖßá|…™È™æÈÅW jBc6 5  65 Iu 7734759?8=2=1;?>7  364ZpqtãcüQñc~ü–ƒ™‚„˜”ýZøèë{e†Œš”^鈴¿µµŽ†€æhpû‚‡‘ú›…ƒšŸ…“‘ö䛋°±Ž‚“ìãeù—‰““B—‚ŒŠ˜‚‚œåé³¾°´†…“”ïšµ²¿°°ˆ°·°‰ƒŒ…Èc䃶¶‚çlvXçÏ„‚·€›Œ˜ž™|g˜¶Ž—k ÙÝßeæq 70:0k›µú7 v’š”êÂëîenrQ0i€°·w 7 Sqfhaä18<šµš1770 vÍpÉ146<:'=ž„7?%$$%>0 Âxû 40 ö¾²Œù4 K៉Œ“åfÈuR޳¸±µ{jÒ—qê瀵µ‹†™…™oꋲ²°·ƒ†ìÅé‘ÓŸà´¶¶‡—Ûãäß°·µ™”|ÀbŸ–š„›¶¶³µ‡‚ïj䋽¾¹¼±´š›”á›ï…˜‚¶´¶˜‘ììy㋽½½´Œ„ñëñèáðᔃ‰€€•ìs ñ–††äp 54f`dt 606ø„šàt’˜‘íáëÈ gJíÀ a\~ 75 Czh  747463<<675 besc}þrHÄùR‘œ“‘\—•“ë]_—‡ƒ‘‘èîævÃÀ”•—æ…‡‡êš€€…™ŽŒ†‚ƒ€œ„‡‚‡…Ÿž†„„“„››–”ï™›’éÿ”š”ì–•†ž“Ꙛ‚Œµž€š´€‹‰±˜ŸÚˆJ•ääiͺ §0–™>¿ šÃ–š´÷™Œ›€— œqÝomKè5oå4ÇupÌåê‘´”ƒš„²ˆŠ±°´±³´²²¶·°¶ŽµŒ´…±Ó€ŒŸs4 23;;!!!#&!'$'%:>=045  ÝΑ“†‡êúzùómb}}dlK•ç•“›‡–ì˜Ü7 ?2==<;9%<;>:;983=3?2331=13145 Îî…˜ƒŽ‹´··½°²²¼»¤§§¥¹ºº¥¤º¤¤§§§»»º¹¸¾»ºº»º»¸»¾²½³³¿¾¹º»¤¹¼°³°°±‚‰†›ñùæý 67   h5    570=0=2?33=304664h|•’•µ´€„‚µ‹´·µ±±²³³¼¹¸¿¿¼¸§¦¦¥§¤¥º¼½½²·¶‰‹ƒ€˜êáå镘êï—üÇK43228:%$''""---##"##! !## # # & '$$%::>988=0174 ndPéâ—‡š€ˆŠ±½¿¾¿¿¹»º¤¤¤¥º¸¿¼¹»¸º¹¹¹¹¹º¹¾º»º¸¹¼¹¿³³¶µŒ†™—‘˜Ÿ’áÁf|hæÁÍîéÂF—èé–âÚJOji@MJkü—•â”—•œëêåš•–ᕳ±·‹ˆ´ˆš†µ¶Ž‚‰´ŽŒ—Ï”ézm‡’fì ÷ü~k˜†áœîâl…ym674b5092?8;=_574 6%993%? jkþ–l …cÿ‡å570 ã“éji‹„œ–œ÷ý÷ie™‰‰Š´¿¸´¶€š“š†–Ž°…ë` FDßmñƒž”öÅqbõi‹†µèxòi c‘™Ÿ…Œ–„’íe”‚J…›è 666ms^’}Þxkh†‹ˆŒšÅC‚´±¶ˆŒäýÝËúƒ¿¶±¿³´“Ïgþ€µ´²¶´ŽžÊóꑵ¼·°¾´‚@êd––†Œžø —Öw”’`5<>35cìhÓ zŸî‰êôhgj‡€„ŸbbfΚŸš´ƒüî þ€‚…Žð´ôœ†Ñm 602= 6 52?%93=4Èt235<6 JÌãší} ù‹óóêó piÚMœ†ÇõçhÁ뵆…µýÈïas‚‰ž·¶±ŒŠýø”ÿ–„·µ·ƒ¶„àê•w膙˜‰±Œ€Þs‘Š›µ¶…ƒ“˜ër]ãë⚆†‰nïfw~“’P´m”éO镜žý„š…„çï}‡”„µ’·´˜‹‰†™ñ™™YŸ~’ØãÕjo  oe—çâ–Œ˜·µ‰ƒµ‰Ž†˜ž—aÓS×’„ˆšï“ÛybáoÍeeJ„÷æ‚™[DZ 5541 <92%':8%&$02<51=20=;$232 5 4?077?=hC 24 áÅZœÙnjžŒ˜„‰‚‚‡€‘f∘‚±°Š°ˆ‘‡‡Ô˜·µŽ¶‰†œ˜móÑÙŸ‚›ƒáؓ󗟴±‰¶‹ˆ‘ëO‡Œ›…Š´€ˆ“ú†…“™ãŸ¶‹ƒ·‰Œ‡éœb|èçà‚¶ƒŽš•è“mñ–ゎƒ‹„d}QvA˜•ä€RBÓ` |÷æò i†‚‡†æ“”åG€÷ƒ€šŒŽˆ‘TgPdäí”êuåic”ý陕u7 46œßô–c`gzJaŇ’àç 4221>17657773<9>070LÝc32417isäø570 dŒ›è˜É|  a•âë›æñãcooî…ç·¼²²´š—aÈç`–ˆˆ··‚ƒíjxŒ‡›´‚™‘q•‹Š……”Ýäìµ€³¸³¶·‚“á““æ™°…¶º´·´’T{ò䉌™±´š‰ŸS…íd¶‡’ƒãÌû‚–ˆ°îœž 7yŸ”{ 7=47à‚üb—gÝ…cšµ„ŒŒø]n|VŒˆ•½·ŸœPwnš˜†¶„˜†Ùa“µâ‰·„œÙûô–›û’b5 5Òn‘ 2<888%>3 7 1238:::8<  02<77 ’ow W‘郌™É“L]ŽƒŠƒ•ÞeËq„´´Š²·‡žxtÚú‘NƒŽ“··ž„“iòIÞ☊‚µµœ“œþýîš±˜¶€•ý“–€·Š°·²±€………„…–б³°€…œâéù€æ´¶™µƒñüjÆuõŒéYµ…ðü}ã‚b•Žhw ÀåüïAh {ð¶’nˆÄà vðïç•ß d„i{‚–bžëbtm’židåëGmÁnçù€‡ÜãédÞðjub5 71604 1 62k –õoÜÃÐvêîìãšêé…à¶g5´´05©V-¨Š:e±7…Š¥ ”£ˆ´¥j,¡á#7'l{%—‚Ž·¤¡¥§¡¦§¿øä˜T49:29=0? aˆ‡…¼°±¡º¡ £¡¢¢¦­§¥»·»ãTœWjX6 p83='437657àƒ¶·°¼³»¦¿§¡¥³»¤¶³‹Š’ü 50;<'%;&&$$#%?:>546ò鞀‹´±¼³¸§µ‰¹±–µ´ðî˜ïÑí•••‘ålùk 413>$2?$'>$#8%$2=8:9?22 S•ýpåÐ}…ø@ëèœ‡ŠŒŽ†…˜‘…gl=34%$9'!8$:97 m’M†‹›ˆ±··´´‰Š½Ž²ƒ€‡…€€Š±µˆ²½¶´±µžš‰ê443 4=3 70 l脘–޹±¥ ¹¡¬¦£¢£§¦ ¦¸¾º½°³Š…Ž™bâš]‘ k67a7 o`zâw–™üˆ€Œ·ƒ½Ÿ„´‰‹ö‹ˆˆŒ‰‚ž„‡G…F`m 3=:210 615 Y~ïh…•ðµáŠꊕ†°ï°…ƒ²’Š·ß´ˆµ„Õ‡5e %?=$$&'!#%8!$$#12: …ƒs—‡Í‘çûŸdÛç 1@rhiì゜œ•ƒý邇•á079> 8867?? 7qã´²²¥º£¦¹¤¦§½»¡¹·¥°ƒ‚Ñ428:<>>=374<=  €›O†º„¼³²¶Š‹¿³Œ»»·Šƒ“–€½ø€±·‚ìù‡´°°µ¥½µ¶‡Š¶á•nz™è × 64713Àkþ´˜’Š…±†‡µ‡½ˆŽ¥·ˆ¾¶Øë  l=160'0<0 0œ—éššíç—d²Œ³¼´€†ö f75?70 kçÝ›ƒšá…š îOâaȆ”‘3<;<3115381386asʇ…aÝÒlp‘š–’œà 241<0 7 564 œ—±¿ˆ¼º¶±°µ‹µ°¼¾º½²µšÂ 515  7091311”å“·‡¶š‚Å€‹»°±³Šº™†” îàÞµœõsíÞ‘•–±±¾¾±»º‰·´··¹»³¤¿¶¶œëÝã“L`á‡é  ‡™êŽŽ˜óìâB–j‡Œ†Ž‘ˆ|QI“‘êo 04•„ßt¶ëòwØT·›Šžœ{÷k u“óœ003öd’ zçÇœ–j›†ß›lõš–… 45433781 =%$8>=3 4Þ\ä’‰·‰·¼Œ‘“‹_þ„˜dÜû 4’LsᆙréçêúŒ‰—™´ˆ€„æŽç—šûžê–œ  6  4feÍ—Š‰Œ°´½·Š¼¶½¾Š»¸²½º¸¶²±³‰…žéƒ\èÆ61z—‚˜½··€µ¿´´¿¶³·²¼·Œðejlg cç 646 ×[ò}hš›Æ÷ktò 0 ç…“‰€—……€ˆ‚wÍàÕškð34bý—ñlƒÉáCjõûÿ~Ë 7 3 646<>?7=& 99;=>2<;3%:14 ×êŽûƒ³Ÿ‰€K í|735 {Lh–ånÿû\û懇ˆ³‰”“ø•…ñµ‚en…´„–f˜•4`—ƒ‹qÛ_…„}—°„™€¾²‰´¶••¶±³¸¼¤¶ŠŠ‹¿š‡°½‰€Œ¿¤Šž•·†…‰†ƒµ… f å‘VÄ–³·ü–›†Y›µ´·½Š÷éP‘ùfí{ñI‚†Ÿk1 mY~þ‚„r gcœ“  =vùŒ„€ƒ^éTcä•€˜€žàˆ‡j Þʘ‚›o`dgjjoPWv4 o„€\125 79=5633273>%%$$>2 þqŸo“ë—‘p„™ãÊãý•Œ„šãBc–p oþTõè Ô4„’Bhq•êš“Û‡ŠŽ–—°Žnä…µ‘†µ¶³½‰“´†ôi„¶G“·‹…‡‡“œ—í»¹±™€‰gqŒŠà†‹¶¶”„˜c—úafˆ±¶Šƒ‡’dTüRoÖ°µƒœãÜà㘎·‡ž‚šeWåcßœ€‘Qn65 `Ô`41 4ý˜` “–—€ƒµ´‰‡‹—ñÿ—€å_Ⴕ‰ŒŸXcaa‘Øõæí tã÷õ44  773=?9>34 74mÊöW‡íÔæy{ñ”„…ëyäÎòš•ÿ”’f517 aΟ€égá“ëb]‘“Œ¶²°ŠŒ‡›‚†àcö†‚·³°¶ŽŒœ–’•ž…µ´¶°µŠ†€†€ÿo퇚„šübVHðå~|pncõ’›ž’„çOêà–ZaÓŸHïæ”ñââ•—aïAëè㇃„”G——õåüSòYetcÛctý|jBBAìÿb]ZtJ{KfpÜù—›„—”䙂„†ŒŒ›…‘–àðÚÒor”çüîAdY@eg khd|as  4   55 54 阖„ƒ‹´±Š·¼¿¼½»¿¶´Š‰‚…Ÿ…êê–€¶°µ¶½¼¶´µµ‡‘”鑌–T| 5 yø–ÜhsçãìQ‘‘ᇇ¿¸±ˆœˆ‡úꆂ‹´³±·–ævifô`ftƒåk xoÊs13<3i”±Žíažk›±†‰Žàqû]B—†‡‡›™·»ŸN~ñ˜”L€…ük 7 16 5Á001296b  1=9%:%?<071 6nž52fùŽì˜–}içgî…Ë`iôø·„  “…Îhg]ƒ…àDk e¼ˆ˜lî|˜Š·‹ëƒ‡…ƒ±‰ŽŠ±³´‚ïíëâ¶¹¿´„„žèƒƒ‡”—ƒ™‚€´¶†˜ïœ’Zmnt‰‰…údcÚYÃç‚‡Ž™s•⛘…›„˜Ž¾½°†–û`ŸéäîYéPáš“„lbàí‘ò‘úq|‡Ží5 h6Xù |kJ†³‚Ò‡mwù 玂Ýë„—|i”‡˜”\ë醼PW‘1y|‰he10  7 5 áç 74>'=767 4654113 dš‡å ᘌ……ŒëS]KwP›„èÿiq„îc 1‗bn–ÕjeLwŸ€„U„‘·èjlꛑ†‰‹”šœ‡˜‘›”šµˆƒ´µµ´Œµ´€ŸèŽŽ‰ŒŒ´˜_FñÆfbàEÅ• ç‘MÈ~„’—Œ‹°ê—‡ˆŽ·µƒ”é¶³±¶—dê‹‹‡”ïäá÷—™•bmøèök ðòà61?7 áp5Çw …ê„„šg—°ˆBæ^ó’n`…›t™ƒ…57 fŽv546 h 105 48%8>20l 60 ⇖_ ö‚•XÎø™‹´ˆ·‰ˆ„Óda—”挃ðIƒˆá46f…„‘Ù‡ŠŽà[Ÿœ÷é´ŒáÓäþ·¿¶ ÷›øšµŠ…€²¿µËe’„œá޾½€É„€·¸¹…4 ãBŒˆ„Þ…ˆj1k‰¶ƒfeG•ˆ³´iœ‹ŸŠ±¶Œ„¶½·ìŽ€›‹¿±…jhÂ䀳½ uzÍ•ïpý‘o 05 `775z˜– >2 劙ÖP40 cwg”ñ4ì„ó >1 Ÿ±’70ì5’këŸ Mƒ¶™n œ±ì 2’{ 31?<48:<7Êð=$;0Z¶Ž†at–…ŒîƒŒ˜–x臄T623 =%8ž‚Â]‘€Œ±½¶œ¶°Ž‡„™óiá‹´š•è—·Åφ±€‰±¿¶··°½°Š‰‰ˆ‰·½·Œ„¼²ë š•íï1èŸnб·½¾¥½³²½º¼ðRŸ‡†…‚¶°‰œŸµ¶µœè€µˆ—çÎeò‰‡áb…TnhÍ 4 4$=1$<…Žh56˜–ôœ|€ƒS }B7ã3<†Y '85 |•ig`zÔà–A 1@g511=?=<8%876421hg5‘2> Y•s”œÐùœîùŸƒ²°Ÿi·±†„Œ‡’„ÍqZë€]oejoD⎀ „·‹ƒâž†š¶³³æœš€“—ƒ‡cX€¶n‡Œ„š“›˜‘½»±–f•‰†‰±¶“Û™³°øˆµìÕÀ“OK·†` ’…˜˜Œ‹ãF‘²¥ŽQŠ¼Ž“ìµµ•õോêi€ú_î„t†±—0ƒä甇€û^N45˜0? þ 4d œp™ô^†• 4Qm63  `˜ä4 ë[H“–âD ê™fÿ 475665214230 ><5dOZîÃç“…Š™’’ì™Kt”·…î—‚šœXpû…œ…•îæb‘ŸéY÷dœ†˜ÙƒµµŒçàï‚›€‰Œ˜í´ƒ‘óóv`œŽ€‡àƒˆ‹ŽÃ~Æ—š„Œ‰‡í“³Š„FÑû……ƒí삎´”jlÀ€›…б´èíž³¹µŸZâ쟊µµ—‡Š·‡åùžŽƒ`×’™n ñ÷C^Ãür 4 zf“i cÕØÁ7Á4 lb }DH{4ùo„ß dñú‘4wç øÀ †€j617ô 5—68?  7Ÿ“ 4bî„HŸŠžnÙ‹†µ„—Än†µ‹†gVÖᛀ‘pr‚ˆ‚c\Ÿˆ¶´ƒkcれ‡ˆ‡ŸdfŠƒZûšŽŽâÓþ‡¿±‹p–€Œ…‚„lµ€÷èŽïùãdúÿœ·»°ïÖ‚€ž„€ƒOl…‹‰“÷˜·´‚‘TàÀœœ‡¼º‡wä…ý–ïèG÷à•äô–ø‘$€w€ ¸"º85ë#³1ï<ÿ1ñío…™ 4] 61  Vh¼ä5ø|Ë yd…äžÐ€nj45'9439$%2 44?! %4hí쟃•‡‚·¶·½§¤°Ž¸§¡¦ ­¬¢§¸»¥¤¤»¹¸¸¿¹»º¹°µ¼»½„Íd746743<==9=?32:91 1$&$05616 ='$$21=<8>?==3154çQt–°¼·¶·±€††²±´Ž³¿¥¦£ £¡¤¦²èñ‹‰‹´±€ƒµ¼²¶šïÖaiiæžŒŠ™ƒ„ñWÍi5606×é75 414 3?20=%87 3>91ok 61644j“Û4b˜åÓïi Ý—Œ•qjg]퀷½§ ¤¹¹¤¥³°¼§¦¸º¼±Ž„°»¦¦º¸¹¿²¿½¼¾¾ŠébÏjEžˆ€„›f 31j × <<13890  =%'800=98>;9<<14==1 44cóããÿj 晑ìú™™„†‹³·ƒ†“……‡€µ·‹†éà‘›…Š‹‰·´½²Š´€‡Ÿê™…‚„µ³‹K`Æ•ž“Ÿ—àooÐh645šg Hrfód_çdóÿx‡êžzä›„³´…Ÿåá–s†•êœíŸœì‡†ƒŠ“‘”‚‰Ÿ‘‘±·šàs` kcf{Í•57 =%; 29:339:$;2=64  75=j ==üyf535kkÞæXbx™Ÿåη´ŸëŠ»º½·²»¹´„‡¶°°°¹§º¸½¸¤§¥¼¿§¡¾·°»¦¸³²¿¹´–Ü÷“†Šµ‹™™‰Š’û[È=<9074177 2%;>08$%%1<=66=<>>7[•—MoønhØäIaùÿ˜Ÿé fjSý’€˜‘á‚ŽŽ‰‚´µµƒ•ƒµ·µµÆløœ…‚·±¶¶‹ƒ‹µŠµ¶ˆûhÔ—š˜äÉ` CÁ\Û˜…émbb<90 557=>=4411439;373=1 71ÞíåUí”ØNžŽŠŠ·½¹½ŒŸêŒŠ‡™ˆ¾²Õt‚ƒÛ}uŽˆˆ¶²Ž–jëžçb‡¶µI‡–iæFq@‘¶±°±²¸¸±†à÷žébr€±Œëášt55{p|öç˜ì4=062>7eÎ n43=<;;90 ti57 4 „ƒ—û“ˆ‹‡ïä—óecÈ“‡€‰´³³·Ž’îëöH~“„€šà™Žšê•ýaQìŽ´ŠŽ†èâBGk×옔‡‹„…™••„‡Ž¶±½²²³µ‚‡\mcÑBo540<99?3156?8$& ! !'937X˜—ÿÕCBsÛž‡€‹¶¶´¶¶´ƒ…†…‡ž…‡€†š’”ì–‡‡‰‹±°½¼½²²¼°µ’Í iÆâ“†Ž·³½»¥¤¤º¸¾¿²°·˜Æ iamrg 7133201167  7=>8;8?26 45 izz÷pÃꜚ”ìã”ôStÞèì₆‚ŽŽ…œ”Ðjn윞“’Ž„‡„…—Õ瓜âVæâÚs`Û|kÇþ–„ް½¼¿¿²¶´µŽ›œ”“êRwÝÌõdmbikqV|n}䔓ûÓho75  4  5  `Äagö—ïöõÝúV|gc{bà”“ìWãì•àç_ÿãéèæýÒþÉggPxgò‘šêžƒŽƒœ“…„ïL|PprÃã[Ò“ž›Ÿ†···µ±²²°°¶¶Š†››…ê÷srtbe÷^xOFEffáìð 54  5 575774 h[÷äåÜåãê”í“’’î“‘ç”ãâ——…‡šž’Ÿ›ž’òÁ×âèà뜀€‚ŒˆŠŒ†˜’Ÿë——‘îg~rloÚìïˆ´±°±¶±¶‹†™–âo gr   54 75545 ~ü暎ˆž„‡„ž•ž—É䜂Œ‚‡ƒ€…ëÆð–ž˜˜„ƒ‡„›˜›è÷üüødcMøŸ™˜††p aJÓ‚‹ˆ‹·´·…€€›þ♄Ÿ—“ž—]jHB| 514 dfs 4366645dBmmvæê™Œ‹´·µš”ëòÒ铚„‡…›˜„›ïô|lJUü†Ž‚„ƒŽµ’‘‘ïcgIsüœžœš›„…žžŸš‡µ±°¶µµµ‚ŸãH bffvÎÔc 567k 5674   é’™™š›œ’žŸëíúçãá뛂‚‚ƒ…à”ïÈGôýê•á—‡Œ€…Ꞙêà–ö|`æ™›š—––ž™–“–å÷Îƒ‰µ·´µ‹ƒš„™™‘Ù^[Îà—é—Ýs 577 jpnbJub  jmrÁïêÿô\ÿ–‘þEÏUÖpchhylkÈ•œ—ê„‚ˆŠ¶³±±·¶¶·„…ž—•ï—à@ 6661744576677 `zÛùçà”œœ–Ÿµµˆ€ë{nê¶·‰€ã䶤§¥ºº¾´„ò a蟙è3%%89?6 <:$$95î–ëÍÖ”š€ŽŽ‡ìÖvqü╟—ëôà‘·°°Š’ôzC™Ž½¦ ¦¸±‹7<20Ó‡Œ†~5=890M”Š‹à4::;;;3ÃꟋ€ò 46}€°¿§¡¼œj…剶ˆ…\ÈŸš‡œ—˜°´”  óðYa5217220 YƒêPaJꈳµƒê’–B÷—Œápz”›±°‡a㋤¤¹°¶¶–4ÄvhSë™>>>91 Wš—^ 39<4d^þp”™µ‡Ol„¿½´“™Ÿ€±¶Œ–ƒ°†XOv–韶²Šÿj== c˜ƒ“ÞÕ–6%$210 狃5 5>$3yƒŠ³»§¾f71ú„¶§¤³404f†Š¶²§¦¹€ÌU€·Š“o6?9?6dð…Ž…?%9234•†œMl }Ÿ™‡…›Š½°€ie×}Û€³½‹†€œ“Ž´‹·²¿»]  ñ”H6?< ië‡d 66<0ç‹‚”à‡Œä—âÄጼ²‹îè”Óá‚‹†Â’޳‚Óx‰ú–±´š}n =>õïl 5 56 {–àlÜLj‘еƒ‘•†„órïàò™‰··ƒ†™’T´³´™šŒžwyajgd 7 xaWm <3 äébäžïjo¶‰âe˜°·”ƶ”†°·úб€{gˆ±€—‰‘7hø0:1™35ý 94à< å0‹21ê³·ìHˆ°7½½„ú†ŒŸ]‹°› X°¼´†ƒ³Žn4‹˜múQ290sÎ_ 3=ç‘njpœ–ÝBžŽ·ŠŒ‡ëqЃ¶µ™éô“ˆ‰‰‘OtÙ℈±´„Sjý’Ál4747 i—•h  év}õtmáát•´´€™™ëý쇊ˆµµ†Ûn”ˆzÑ›„—÷ñæcnkþ”U >=Åk56ÖÊ à‚†Â 5è†ëÅŸ†ƒž”„š”û™°³·…ér刷ŒÕ|òúcf—œ{ õç 1= ‘›32f Bvöåëvä™{œ¶Œf 삚tjú´µ™nÉçîàê•ðuü…Ÿk —Žšò·½‡ãŸà…‚„| Ë|_33 5{=:6g”67 êžw Ì臌ˆ³·ƒ\õœŠaê¿¿‚S‚µŒ™Š¼¸¿±Š‡’ƒ²½‹¹¦½CêçÇ“·¿·ƒè—‘Sa犰¾½¼¶–~þ”“Ÿ— 14вƒi 11 1:$$%%?13;<”0<  ?>6126 an0 Tôš—Ï‹„àŸµ¶ˆì]“Ùem‘†™ë†Œí Þ°‹‡l鵿º½½¶¶‡V€ƒ”|•‰°ƒåï†´ŽŒ†óú³³ˆ…žƒ÷07nw~€¶¶™Îçì•ïš—<''92:%2hê094‡1':6 •±‹i17jŒ½‹p€‹€…Œ²²‰óvûE’±°‡mk†Ÿcj|ê•„½¦ ¸‹’~\‘‡óÕã‚´Š…\xÙ’‹±²µŒ› Ž–׊ˆã áƒ´Š– Ÿ±0†>&%15==7jô<>‡6;7ž‚x2$2t4·™4<ˆ> ‹¾µ4oеᄾ¥±{´‹3²Œ Z‚œ 0„9:€’¸§³–iŒ²Šx޾¸‚à´ŽÞ˜²»¶äbè5o€D cŸÛ劳ŒÏšf‚¶´Ò769:4 ?1 2 Y†’4504‘ÀrŸ‡Nkõ’âeg”Œ·´šë…‚˜}c펜irçhjUçx4k“„õnSœŸö䊶±‹†‚Ž‚ëí…Š°±ƒˆµüô„–ó ~Ó`ßžŸñD…µ·ˆƒ„š‡”f 4?>   ~K aX}lÍïøà•™—‚‹Ñ—‹Š†ð朆™`lpdü”70@NbßàÇcd胵‰äOŠ¶Šš´±¶‰ŠŽ‘윈²µQh…d7 [`fëèdëµ±š…·ŒwéÁmB =1”á9>Sc 0õÍms7< 浃j ˜Œ–œŠŒ†ˆ°¶„l𴽉tÒ‚E xëb^g <>…Z41úç4 æ’s™‰›5œ²½ƒç’µ°·”T’¶°‰ˆ±½µÎ ”· ãG —•{pŸž6 ‘±‰s|…š`5 äHýä6:2j‡ø ñÌ36úYà„ê1ž¶‹”暊·™Æѧ—°Ž7: e,¬¿ 22¿j% dƒ£±K¦²ޱb+о$>'69voí±¦¤¥¶½¤³“c 7762?>::2j\m—´½±»ºº»¦¥‹¥¤³¦·‚c54?%%%;:"#;=& $$64%> n׈º¡¥¤¡­¢¤¹º¦¦¦»¼¶º¦¥°ÓÀ1%%<39&#'$:$! ;418045 ƒµ‚¸¶—³¥¥¦¹½»¸¸¶½¤¹²´´±¼ 555 6><1t “ <161„ŽŸ €µ™¸¸°ã݆¶†À—‰³·n?15>0 td7%0Áj€ˆˆwÆ›‰íà„·œ 6 nàÕƒ‰€ëd‚½Œó”–µ•÷w 4g1'>r24–”v‡Z“¶¤§²›Üƒ¿¿½·‰²¼¼‰˜œ¶¾µŸ˜Š±·16512677% :;0=;2758%0 †…–[…µµŠ» §¥Š½¾¹Š³±½¥¥±™–ìé ë0?$&;8=31 7416 664œ‘jQòùˆ²¶¶‰‹¥¥§¹³¹¡¡§º³¹¾½·ˆ†â†’>$:9==>$:?4404 k‡}r Tó‡‡á‚€œ{÷ÍtdƒêrN ãø˜†”ཋŠëIù„ÑÛ˜‚•3=73443eÝ0 €ƒ¶±±¹ˆ´Œ¾º²¿†´‚Ží0>:2 4?9'%30=•†’‹¶¼²¸µ¾¿¼¾¼¹½·ž›õw‘í iFruajì„€šP5zl]šgó cf 69765tß6;&%75 —Ÿà…‹¾´‹µ‹¶µº¥¹¸½·‰¶¶„š†›÷óÚ=0;'43;6 pî‡ó²‰‚âØœŒšÅ …‚ˆ`U˜ž€‚³¶‚þä—Ž¾œ‘èb”Þƒ––øä—ëh6 2?1343æ—üß៌ž€‹Q14É”25 Áfèæ~·§§³¶ŽŽ¿¿º¤¤º°¼´ˆ‰µ°‚l ?$9:9=9:!#!$;8004h“–´‰¿¥½¼·´¸£¤»²¶²Ž€´‡}”p—ô…—kq±µŒ‚·‹ž’r蟘‹B100<6?0::$= „µµŠƒÄhu…²¹€`oýò›Ž·‹€„dñ„ž˜™uŠ´€ ÃcåƒQó âjk rï‚€âævXœî„µµžèñ†·‡€lÓo‚†‡üäMH’ˆ·œŸ‚Ÿgÿö—›Ü5115==068;<1†zÚš³±‡m„±°‹›‚‡€µc`úß{k  j4 hí6l€àôû“€‹’÷™¶‚îŽ¼Š‚ž´¶Œa’ˆ‹æ V`01662&;86 7ˆ‹´tý‰º¶ˆ‘Œ¾·‹ˆˆŽ²16$$# =54ì‹§§¾·“·±¾‚jqrƒ»¤¤´‘µ…?>$1441 àö™0k11ËŸlà‚gø˜žŒ˜15޼µ±¸¡¦¾¶“‘²´–ú céü†› =42;92 rv—hž›ƒŠ“á“ùŽŽ€€„ƒœ5:&%4u€ìßøƒ¾¿²´õ„·¶ŒàŸ´Šµz †Ž‚숊é=:1<24ànsŸÕ oQç’˜•oe…µ½°„~šƒ†Ÿ‡îˆ•žŽŒŸàãè†c  h—‚ð 5606„˜„„ý„¶¿µgm 鉀at4añáb ú{Æ`s†¿¿²´¶ŒzœŒ’˜……‰Ÿä4$>7›^ý‰žî6m6”‚`äõ4?5æ„ïâ3›„R”¼¤³›çš²º·Û쌆ú—‰„û6L0: ÆÿÑ4µŠï ree׆‘pz 7`‰½ƒnŒŽ136cmΘ‰ˆ’j´…ìn‘¿»·ƒ—‚»·þ26†€” õào·‚à…Šò 9?5 Ò‚†M4 Kè‘÷±Š…U“µ¶¹º¥´¶˜÷\†„úlSÇ127ð™ƒ45ÐêêV4b솙çâczí—–†‹±¶°µš€„šŒµ‹ˆå475 NíãïáR cñu4676 nËÒëíä@h~Ü„™†Œƒží…†‡µ°²²¶´¶ˆ€Ál}ËgÒk5 htoa|òåüRœ›˜Ÿíœ—“–”–›€…œƒˆ‰‹ŠŒŽŽŒží”çÇÖn`mqhgk`e 5 PjÞÔÝÛ삇Ÿê–›áGæ’š•›‡‚ƒŽ´Ž€‚‹µƒèüž•cg{jvwn  cpirÙéœöë˜ú憆‚“Ž·Š‹´±‰€†œ›šçòÅlyl 5h{mFáôᔟ†˜’ì•–éì„‡š‡†›œ€š˜€—’èâ‘øylJVSÂ{Âceiö}p¼ ¥0à •Õ<²7in5µèœ…û…êbûÁ l”6j3Þií’Ÿ–ž²‡½µ¾¦¸¾¥§¸¤³°¼³‹ššœ‡‚‘€g 35%;$!'!& -"## !'$''''&%8:26ÑÛžŒ°¼²¥¡¡¡¥¤º¤¦§¡ ¢¢¢§§§§¤º¹¹»¾¼³´·µ‡ƒœ”޵†‘›ë4 45 4 5655 izij]VøŽ‡ŸŒ‹Œ·±¶·Š±·Žµµ´³°´Š¶±µŒŽˆ·¿Š±ŠŒµ‚žRe ` 5øO 271=2?763 06 775 15616 65 75 îù€—˜´š’ëûØOÛeè홂‚µƒµˆ½‰²¤±±¿±´·¿²·¼»¼¼¾¸»¹¾¿³½¾¾º¶¹»ŠŽ´‡‘–…Àhœ–é–Nl6075 =54157=?26>;?$?292?93?92?25975017< 4711;$!'$:::4 7 14 53qæAõe4 õd‹€„Ššžƒƒ·ê´¤°»¦¸¥¥º½µˆ‰±¹·¾¤¸º¥½¿±¹½¶¥º¥¡¤¥»³·‰™’뚌µŽŠ½·ƒ’\Ø“ýR÷h430077] 333774i43=>?=2< 302=13 |eRÍeb455605•Üànîæˆ‹ƒ‡†éBœ@Ùœ…¼‹€°ˆ—´ïƒ»Œƒ»¿²°¶‹„µ”„‹µ²¼Œ°±’‰l„Œvæ™–ËH6556Ynm1Ú0f 5c5heYžëa5Ð|[vZZ  AoŒå—l  c‘ýè€ôæžðÑz䂴б³³·€ˆ‚HÇœø—ˆ¼¼°½¾±µ´ŒŸÂ鄱¹°¹¥³•îz”……ñÙå 5 æà‚ì =35o…ÿ]q5—ˆöƒäè} 3ƒ6¦ †µœ7ƒ%önžÊ¥j¶·dy6ãéy‰›ÔA? =:06ÊéaePa1öjІ¤§ £­ ¢¦¥§º¥¥§¡¡£¸»°¶’ 54>52= 7489% #-"#!'':9$'%%%'9=2 ð÷ˆ²½·†‚~jm䈳¾§¥¦¦¦¦§¥º³ˆˆšIqd464  ieé“{b5;'''$:057143:9;$'8326vêÛ™„†“Ë‘›•…µ²¶´¿¥¼ˆ‹¶¶µµ¼¿¸¥§§º¤¤¤¼µ²¿°°¾¤¦¤¡£¦¥¿²½·´¼¿½¿¹¿·µŠƒ‘hÍâNÑþœžgfò 0??%'8>??1067643999$$$$%! !!!##&&&:217  73>%><=6{Z휌ŒŠ·¶¶´µ°³¼»»»¥º¥¥¥§¥»¥¥¥¤§¦ £  ¡ ¡¤¸ººº¥¥¥¤¤¥¾¿»¹³¶µ´·´‰ˆ‹‡žæ} 4323?%&&'$$&$%$%%%$'$'&&&& ##-- &$:8907015 754jjY”ãæ’Ž‰ƒŽˆ´¶·½²°½¹¤»¿¸¥¦¦§¤§§¦¥¹º¤¤¹²¾¾¹¾¹¹¹³±²½·Œ´ˆƒ…š€‡MbÝ’šûuã“–td   578;<14=<6 3365766tn  635mæäii_“éá’„„œ„Š´„„ŽŽ„…€·²´‹µ¶´†š€†‡€ˆƒ†ŒŠ´Œ›žš›ïRóœ…ãe×Í@ 56470305 K÷qg~zqUÅôýä•ûÁí†ƒŽŽ‰Šš—‘˜ïäãû”•žžž’’˜˜„˜™™†€‚€‚ЉŒŒ†ƒŒŒ€šœëÏ䓟‘Ÿ’’†šîæãòÜÛô—äÝù]Æò~kh koeefcdm`OÛÉß|jcbI┓˜’Ÿ‡„‚€†ŽŠµŒ†—“”‘”ïç—ëàæâÑÔåáã–êçìëúáåï‘–•öþ’Ÿ–öÆâœ’—ýÖ•ä]flAÿ÷ãåHçàâþùèã—’•êâîâÎüövloh   houvyTäò‡™„‡‹ˆ„Œ‚€†‡†ƒ‡…˜Ÿ†™—㜀…œž›…ƒ…ž‚šž˜‡ššŸš…˜™™ç|ÖÄbbgV{fn^~jjqcxeflsxhnoðädsdicJfbçóÌù醋¶´·´Š·´´´·°°‰‚†€‡xbÉÃîJ18%&!!%3  0<9;8;;:>?25ŸŽ‹Ž‰µ´ˆ„œ“î‘’Ž¼»¹¶ŠˆµŠŠ€…Ž´±·µŒ…–g z™Œ‡’b =;88=5}íþa 5674 bLöŒƒŒ‰€‚š…†Œ··ŠƒŸš…žŸ‡€‰„•Á` oç“‘æ}6>921 ×di51 Ùíé–—™ž„†‡‡€ƒ‡‘˜ŽŒ‚ˆŒƒ…š†‰´·ŠŽ„ÒmËËäû} 40=6zÐÞHl cnÿ™Ÿë†Œ˜„‡„…›š…„……’…ˆ‰Žˆµµ‰ŒƒxbvÕz5 5H|gßQóûw}á‘žš€ƒ›–”ÑhÔë‘—ø›ŽµŽ†ƒ€‚šPlj 77   }LW^Äî—ÿeh}ì—’šŒ‹‹Ž‡—•àþ]tㆂ‚ˆŠ€˜ãÃKlIM 44 agsdË–Ói{Þ葚‚ŠŠˆ‹Š´´ˆ‚‡Ÿ‘–èä—Ÿ†‚€Œšš™èpjv|   5maeobØ’…Š‹‹‰‹´µš—u{ë^av䘌™—›†—y|ñýq  †âelÕ“ 7~` Ɇ‚™‘……aäÕ†³­¬¥¹¿³·?aÄI¹¦¿‹€10e—½¬°79".' …032?:9 e´¤˜ac?;Ÿ˜´¾³ëg”›‘‘‹°´’ê‚»½Øñœ“7ˆ‚™‚´µS v0œ 6;?i`•žcK„‡û`Eœ²°—ž„…S›±±°²¼¶—›—Áø€Ž„”þ‘¶³àøý7í{`Áh71 1<3 445 5<5lÚ‘…€\öY„›`íž±§¹ƒŠŠŒq•Œ‡†Œ¶µíá핆õÚãÕq‡´637  ×l `†‚ååç“ãl’ŸüE›·‚ê„¶½‚“šŒµ…y†°·…Šˆ~ÖœAIžäÏ4 R?4 5 4 4e\j|úˇµ—⛄ž„·´‚Ÿ…Ÿ“€´´Š†€Œ·µ†îÚ•P‘›’ãe57 q]x ovio œÒõm4àîÓctWL™ag†˜–„õi úŽŽšWµ±„”ˆ·‡•‚·³²³½ŸúZœ€„U ™66?<66752053:4?;?4<%0gN4 7 ߀š‘–dÅŠžá…ãå‚´·…›‹œóŒ¿º»¹³¶¿‚‰°µ–´½´±¸¥½‰¶³‚³¹½±·‰‰¼³›–‡‹´‚焵ƒMlÂ5–„š”Sjøƒèñcøúò3368%1 e774 4o7<30:1h  Tmpãçàà†—~ø˜€é~†ƒùß™fj’à™½±‡“—•{p†ˆ··ƒ´°‹†’‹±“—·±t‡¿„œšíbœ˜ì”ˆœçZmxÀrâ’`Ó™‘ðÈ•Døìæ 582w  vgh  0Ô547;7ë‘Lgw—÷BÐBk™™[ Yް‡îFQqs⟛ŸžfŸ‚ÿW‘ñZš·³¥¥¶ž…劼¶´¶îˆŠƒ“†‘Â…ŸŽ¼— iñlƒ“cë”|‚ŒŸ@”LäŸï˜±”054?6n4 ûþ16…ñ== 20lëågl ~íÌφ‹ çmŸ€–ÜeIן‡„yjbùú‘„·œbžƒŸŽ½°´„´¶±³µƒÎ“‡ŒŠ°Žïåú‚„Gä–èè–|_暊³ŒÀ_Ó„˜•û6e40 d†·•1<fcL 86 {27 †°‡Æ=6ržðLŸD11ð”i€ ›°jyØ40gŽ‡è€Œà·„Œ°³ŽÃ›ƒ‡²¦¤°Š±žè²²‰µø™ú‡ƒ—Aˆ‡ëd×ò ”µ‚…Ží†ä㛕15–âm 7ëœ|ãT 7Vgm =374|6ÿƒœ“û 7Î÷þæúå„ñöajIš“ëæ H^–‡†ùhb~Ì…°µ€ŽŒ€„±»¹¼³€˜Šµ‹¶¶´„è‘öAþ‰Âïçl r‡Ÿ“ójo—šœzÓziO∑kTn1 šü ÷ÞZhÉž 60ïüo16bÚjt|B†k w`cçëikÂàaeÆÚž°•µ„gœ¹³±¶…ƒ¿½±³±˜ƒˆ´‚ޱŠÿcšå`‘”àkÎhÎΜ—C׆‡×ôËRöRèøilxâ—î4œ—˜5]ûŠjE°#  …!ˆ<윌 ’‘ ‹œSilŒ1ghék= 84 947 74XÌ ð‡¾°¹º¤º¦¦¦¢­£££¤º¸²°‹²g‡ 5=?3%&&-" $8%:?;%80 1;:3JS•ƒ³ˆ¼¾§¦¡¢¦¤¿¼½·¹¤¾´gÊ|–‰¶±‰…äüì{üœáó03=2?<66>'$::933%'&! &?%''$''2opLìà™Ž´‹¶²´¶½½½³§¦°¶°¶‹·¸¥»»¥¾¾½€Ž¿¤¤»¥¥²½¸¹¿²º §²²³Š‹¶³±´Š€š ˜Œ€ìç•4ÛÄ772<<=20<:%% /%576219!910==020;;:?=?6 4156': ?>5 fïiˆàℵ·‹½»¼¿¼¶ˆ¾£¢ £ §¿¹¤¥¤¦ ¦º¡ ¹¼¸¥¸¼º¥»¾³‰½º»¾¹¿·µ‹€ƒ€•gÉ•G7>21  40=>>>>?;$&!%!"!''''>8' $$?102><<89<141540AbiêìÌ`•‹µŽµ´Ž´¶¾¸¸§¥¼¤£¥¥¤  ¤£ ¥¹º»½»¥º¾°½¶††‡Œ‡•€—]‡€üvœ÷‘’êý–BÂs75 47 1k4 76 1 7 0 5e`œ]sÒøy’´ŸcŸ´‚G ŒÁÈ„žNÈœ”nΟTYÒkÞƒ‘€‘ž„€‡…‹ˆ‡…‚™œ€‡ïüð“‹Ô d6=59=7<895<0 44df5xk3“auÿÞ™þᛘŒ–”‚†‚‹Œÿ׌´‚ëòèš…‡Š˜‘•†”íµŠµŠŽ±·‹¶··°µš‰¹¼˜pøÈn•˜vzmàÑxea’›mk雘Ÿ—Ä–ššÎ÷…„œÉöímf457<6520ohaKB]ÈXgE•çJðÇ ’êè“v •ŠO^Êi•åIx`ÁkJ56sol5쎛••{Дž‰Š‹„’“–‘•‘ ]náp51_ „5˜|šŠ÷•ÛšŽ€íˆ´šžŽ’äŽÛé‘êoe”qÉ›”Ꙅ󖵆‹—–´e›žgaÜÔhykMâwf 1ágjín0;7zñ < âc a{î™ü삛⵱€‰±”ü“”™0€’k4 Çž•ÄüEW‹´Œ·¶‘a†´µ°²¶Ÿì¶²‚ꀇjƒ„í`R’ê„ v›ˆ€— wƒx`äq倅ejéê˜ædïëMóäˆdÃB5ß– iáÕj·¶…™êïó 6 403Ÿábz‘€Žµ°±ˆŠ±µƒµº§¹¿¿Šž†·ˆ•îL12  ãí\åž‘ge€±†ŒdMðpoéÖøuÆÈï—Ül 6  3%9510f5 01bâ < 59=oYè ’µä󶰘ᆊíaä5PW5–‚ƒ‰‚fN„€…—Œ³°ˆµ³¼Š³½±‰¶‚‚²³…iñÞýkÇ ÆŸøä‘‚„r’ˆ„•™…}hÅâŸhð‘åC•™ÄZ•è74da=24eg 5Âå 70îã jœ‰Š—˜‘ë…Œ€‘YnÑꄇêÕÖ‘€˜ïÇ윘‚´¶ƒ‰Ž‹Š¶³³³¶‰˜“€Š´çÖDu  ›æûŸ”lk~n@‘—fcFlJ•î–ð ZlÈÆ <0 f@ ño}Kb@{6 Áu’ˆ…f„œ–†ƒâd”‡•þ˜—sa‘“~悊“„–@„¶²´‰±°‰‘‚‹µ°³Š…•—éûîçV4i鈵ë11󘀂€–kÏž‹¶´Ò—……ƒ‘66 ü‚…6>>1 ÚÝ617Éèr 61 fít 5325ãmemý…ûdJùkgêhz…Äý‡ž“˜´³¿±ƒ„Ÿ›¶¸º¹°¶Š„€Š½¼´€Îk›ôž™äp`ØçÐ냆þëvf†Ž‡÷Tã`瘄žím  0;3''4`eÌu 2264 gèå 12ꃎ„‘c â´´47e–‡†‘ ܃µ‡‘öjlj·Ž‰µ³†·¶Š“‘µ´µ‹··Š‹ˆŽ”eHq’„›üðïýrÓŒ½‚ÿ4 ïŽÅaèAÖ„†—sÓò y?6 626 Ð~74iPû@ diO‡Ÿçã–ôí“mg]†•Û †¶–‘Œ”h⎋¾¼…Y쀄ö›²¾·ž™~œã”´‹êM“„}Þ‘Ëncey킚×gzíYìì—amj_‚X15504å^46 xwdda|ìâ–üÕMŸœàˆˆ”tnÇ{æá„œ|žÇ´˜ºi Œ˜$3¢#©·=· >{‚¦ŒÉ­°´¹/³} ?%=è员²¥§¡¿¡¢»‘‚ý = 3>= 5 ikûІ”¶¶³¥²µ¦¿Œ°€·œf442'$$-!%:%=1647e„´²±¿§§¥¦¡¦§¦ ¥¥±¿½ˆ”461617729540~mv‡‰†Œ·¿¾¼¹¹½¶±™„‰‡Žˆ´±‡€ˆ–’†„œ„žy–e 3=8;%:$%9$%'$99<>== RꙂ„‚ŽŽ·ˆ·‹µ‹ˆµŒ·´´µ€™šþf4=;:'%:'$=;??5 b–âŽµŠµŠµ¶·ˆ±‹±¶‹¶´·±±°³´‰¿»´°º½°·¶¼·´Š›üùm6?<;' '88231 5 hQRê…·µ´°½¸¹¾¤¼··Šƒ†˜û–ô` 7 426 66757> 19<963==?037 ÿp–€ã‡Š·ŽƒŠ‡›Ž´·¶±¶€·¼µ°²±Œ„€àäpW 5  Eb[ýTXüS““ò„‚âŒ†Ž¶Œ´‚Œ€…´…€Š´·¶‹²°Œ°¶‰œŠ·deú5?$!'##"'$!'%?294 æ›µ²Ž³³‡æì´˜Ëâfæi††뜃€ó䇸õ 2 =66 03oVŒ›¶¿¼½° §²¦ §¡¦§¥¿»¶‚‹„û662?%?9;272 ç“µŒ‚Œ¶·µ‹Ÿ‡‚ã1 77717 hC~æ„ñêä”’Lö 72 65 fuŸQÑË—…š‹”„Š½ƒ±³³¶²µ²ž˜Š†Åü›N 133b =•„ˆ‘™³€“»¾’¼°‡™¶³”é–éçK 4 cYdŽív³„ìµµàýÑj43 030045 lngâ…“˜„€‰‡†ùšŒŸŸNb4 5122791 4 ê‘·±ƒ±¸¸§§¤¤§¤º¤¥²²´µ›{e 1<93=90757Cꑆ·´Œ±µ²¶Šµ±‡šŸé‡Ôá÷  4  o EâŸfý˜šèë…Ûìwþx17= qm–êó–…‘š†•â•ò…û—àÎÅ–c풔ᆄ–üéü•šp’„‘쌵HŽžGŒ€}Ÿ…›`„Ÿž”Úšâò„ò–rà•obico—×l”ZÞzÿ‘—‡îãë˜âfžsÈ  4 2671055 dn™„œ´Š‰’´‹Š±´·†ŠŒ„†Î‚ô× 7 udèäÜœ›Û耶蟷Œ‡µµ´žšˆà„„†Öá”lqšï–öcêhej{m7^|å‘€“–—´MeÉ|TŸü01>:!%&-87>2pe7 …˜Ž±³¸¹¥¥¥¿¾¶ŽíÅos 4ooçšc€j†Õ憊·´²¼³º¿·¾š‘šß„—gœb ‚„‡¼‡‹°‹›Y¸²n€µbõb=;7:>22šåd¾CÈë皟pQdÒÔ][jnn7032?0%=7 2~5aõ–áZÝò†‹´½³³²„³€ïii71Ñ57æS–ƒLFå‘Þdý†ž´„¶ºš¼°‰¶Œ·‹r—’nÖù[–_—Àퟀ–äü–€•žáa^mk31xtírhÌΞµøæœT—„Ï”on?4 =<706‘îv”‘žŽ’“´·‰‰ŽsŠ qáaÀ‡ü€æˆÞŒ–…p“î¶ZÔµ¶‡…¶‹™ˆ…†š`žú–]àOñ”oš…gƒ…–•…žä—™•ýz4 J50y=4d5yqtO…aœžf–ïˆä‘“Dad  76   XàEꙞ†ÿƒ[퇛i_ëÿ‘Á’ˆŽ¶µ´‰‹å‡‘–žƒšŠ„”œ‘o”Ïn™Übk”v€’mv‘Ìø•s‡åÏìÚ”ðùØ {×ãúÄêéíx„•LžuÞhÉE…j 6õô5~m›…ä|„ï{…™uc‘D|Ñëë‘¶ˆ·‹Š¶´„€Œ›‚µ·‡—ŠFƒø›ƒˆàWÇÆ€ãÝ—útø—ÒÅœcû {Z KöEhf3455Ÿq l{S~a‘jèuyÚŸÿ„„‘íòälyÙcÆ h 4ZÖ ~{ñ iÜC–ÍrÔ•”òëS”áaž–酙޵±´·¶ŠŽ„…Ÿ‚‹ˆˆ·Ž“ˆ’ꀔ„–’‡—†ëtÉš}yäñ{Xš 4565 Á b}orícù—|ä“hèkÓïœp…llï“}]@KÏðtU`h•`~…–ç”|€‚ãžŠè·‚Š´Œ°‚™‚ˆ„šˆ‹„›Ž±éÛ™‘\„ˆ€´‡Úé†éÐ|p j 11 75 75jÍ fãäfkífUò˜ŸæŸ†{q•lažæn}ßå™ïIÚj~f•ÓÕðÏnXNcüò|]ÑgŸ\k`græö^wž…€…‚‰¶´¶³ƒ±´Ž´„¶Ž‰†·‚Œ·‚‡›ïbÃ4 08%$&&%8>4hSh@îîùl z‘‡„‘„‚‚ìÔ5 31470}öaç~4 tÛ 75iÓ‡›nÙâíâ´„´Š‡‚µ´°¶³·²¥¥º¹¥¹½°´µ‰·¶ŠŠ‹šŸ˜Ÿ„—š˜âì‚’™”qe 442316  wHsìIg{oÅÈØmä—øBîù”„íA–Éuôkj  e[xcbFvJé–™‡‡„’šš–„™€Ž³¼³¼¿²¶³´¶·µ‹Š‹‡„‡êꛓãôFØdÜÉC  oäÿNÍÁlZynGkloðñd|siotÊÀóç}tÔôá“›’ýóø 447067h`ÜçÙbþÒÉúþស•ššš††‘éâ‘‘˜†ˆµ´±°·±½½¶·°Š†€›˜„…íæ……ƒ€˜õ 6717225djdöeDðKÆIÿïÖÃô{oÈõçíãëòhfyxinxkfî–öîä•Ijmn4466 4yÄ×ï“ì”É•Èç–á•ïâ—éP”œ™ê’™ðü‘à„‹‹ŒŠ´‹µ´²½³³¶¶µ‚„†ÚfÕh}çós™Ü  71 76•÷‰De‡zÙÇBÎËô•’†’÷”ç–”ŸŒ›ÙpjdÙõùã’ån oj_Yýꇟ…œœ……’œ€’⊊‹Ž…–씕™æ›‡˜ž‚µŽŽ‡›–ƒ¶‚Їm166882=<1 c~hÚë‘é—Ó“ƒ”œ€•–èejjøœ™”„Ù”†‘€•ÎC^n  5 5‘uvéOcüóÏ}çàtáâ—‡•ã‘WìÚql\çý˜œšŠ·Š†ƒ†êyÒçõœš”šš’…“˜‡ž…ãÉÏÏófðôwyr  iB–ásIÒh|mòBæ—Ò‘…ä~JÏõw”‡–蟃˜Ÿ•þäVobçoà”Vy^r  kltfniü—攑Ÿœé\Êâ_h鄿•˜ž€†…žáÄðßÖçùTä“——‘••é÷ßèéXçççÃÃä|dÓx``b`têêì”ùåal\lka`hoicz}~lÞvk}[e`RÔY_ÚØFMñRýåsÞBdbdóËoá^{\Áalgojaswxlhbrgqboo×yuöÓõdacQâ퇴°¶°³…ï~4065c·¶°½°°°¶‰Ÿ4 5  jõÉspfÁówydðáÍr\cMc o“Œ¶½½°±µŽüei5 5 cÕïóÎRÇs|tûSpzzàè—–íC~r}•æ••õÜ`cv—œ…ŒŠ´‰ŽŒžó{ gØï…Ÿ†µµ‰Š²ˆ„„–ÿÂecnodliöFDöHNÒsb~qIÐéqj}bjEQhg~døœ…€žŸàðïø â╜ãããöÕÖJeSôãwçáápëóTB‘àbìíïõPhJåá÷š„„žÿÄËü÷„gÌLINÌœ™œˆŽµ´€Œ–ï‘újl ‘OKuhleýÜÀÅMea×ãÕAñmöE[óÀhrÁúÄd”ìVáåÒÐÙr zZòì—çÉçÂôNrJdÿUhVú}kûîÞí”ú’çåãøïìgWý•”é“ùæ–’’Ÿ—…Ëüô•í^žêý˜›™œ…‰ˆ‚›–íìà  eØjdÌddtÑï[åìëîaåZíä{íàAXæäñg÷ÞFòÂÏ—ÙÖ@Õ bjkyïÙdkyigahR\F”“í••—”ì—“Á矗ãì“æãŸ‘„ž˜˜™›˜†˜…„™è‘ކ„µŠ‚Œ€„Ᶎózn 10 43  jdBÅá–ëßáãÒÜŸ”Ü—òüL]àú”áëždÊöÚûfðuiQYgklej•J}m |vNuúäÀçŸãšœè‡Ÿ’—™™—‡˜˜•’€Ÿ˜–„†„Œš‡Ž‡‡Ž‚ƒ‰µŒŽŒ„›„›á”Y 443617464 zlg\úæìáœî“•˜–虆œæ“„çÔœäññéäl`nbjnloj|ho  nndÅ|ýÈéÒí”蓚‘“‡‡š˜ˆ†ž††œƒƒžƒƒ„‰‹‚…‹ƒ‡Ž€›‘•âá@Iz56 6561 0  nlpïùdùïúùšžŸž“…éï–™Ÿ‘’˜œžëÃáåêà—çtßjxpPjiHP0Xö7 à 8tý<˜oo퉆5…¹ç‚·Z‚ˆ¼ˆ‘–·îîs¥ ¡ˆ Œ³'¿Kîà™5‚ Î…†éÁ†·Pµµˆãhþ ×445 5æAžã‚€ —´{áíÏÆ”µ¾½µ¸¤¤¾¾±§’€aE;6 56 Üs3<16>::90=> k‘þˆµƒŸ´³´Š³‹ŠžŸ‡†Ò“g754>16 30ÑüJ÷b74 cy710<5RjÅNì´·‹·‡–šåQâ¶µ‹ƒ´¹º¹¥¦¾°Ž·‹‹²¸º¤º½§ £¢   ¦½¾¼·¾¼µµ¶‚÷Òí‚çb11 9;43>;9;$:7<19$9;$$>=130=%1 <3<=333 772æbm—[5æd–óЇh†—€’Ÿ…—‡½¸°·µ°´›µ³¶³¹±‹€‰¼¸¥¡¤¾¼´²¼±½º»¾²”±¶€‰µ‰‘ É•n4 n 1=k 57 605 >2 5?65643?5 5 0100 76 5=02:4B743 XÀK›™g|cf³¥³´‰€™‚³²¼¦ ½²³µ¾¡¥¹¾Eƒ±Š¾¶Ö󴶃„ç5 Ø–‘‰爉‡E47{hŠ}45 m‡…–Åt95áÏuƒ˜ ëƒA47v–‘µ±••›´½·ž–툃´µú߇¶³±’’v —†‚ˆ›kaFn†·´•u=cöñ2670“ && 5 7827>0îá7<'4 n13 íÓ 9 –•qòUm‰’du œœ“‡ñá–’±¿·´±Žà€º¸°¿¸½°°³³¤ º³¿½†³¹±±±µŠŒŠµŽ„ìAÊžtzly5ã14  7 •Åx ádÝñЋ—`ÞëààÀÐclŸeÁŽó~ÌþL{Iøæûy—ãߊêfê–Pjûã|aùœØêÏnýaKÛÃl„€fV7 5à™ 50højjaŠ·ïúšõy™œëœô÷ê^”±ŠçÃ…ža›‰cåze†“}›õÿ솇꜎éü”„™€Ž–šŽÁlµ„„†—•ï‘ßÅë•÷„ çÞ  46 064 5QÛmð•ü‹·ƒ‘†ŒŽ˜ƒ±¶‚´¶‡ž‡²¸³‹··‰‚¶±ˆŠÄØ…‹¶‰„™õáœï™Œ˜0€žuëàƒ07Ÿôï–ä4õ±œ6?—çkLœìÃÆµ26e’lÀ€H7†k7´…6>‘ÔYÁ1É Ÿ<=ÅŸÕŒàjš½¶äYŠ´‡’µ´œcïàŒ³å45Í…”šî6Èã2ü“œŒòõ264<%&; <24=$96?83=;&<žgÌŠ²´˜‚³½Š·‰“™¾¥²°¸»°´°»¾¼¼¾ˆš‹¿¿±Š±¿´€‚°½³ŠŒ„ò†´ˆ‰‹Ÿïµ‡‘—f Lgijp”…ðfñØGË”ñ63<10 410407 7=>0?0 fýjU›ëQb‘åç팎”ƒƒ‰±‚åðÀëBÁj”œ”jfôî”›‡Ée—üòhp—…iCVò–™m`‘„àjÞ™…BdÜbÖcät“˜sî·ŽµƒâgïÜ `12 ~555 56 má gˆ‡„—û˜‘Œƒéé¶´žq¶²´œ™Œµ´žwš²ï|ŽŠŠÏáàëž„˜üÄ…’„‰ŒÿLæùp]‚r uØQ5‘êgjÜd6ÿ턌íåÒjhžé5   60063  ?>5c ˜Þfl{–€€™Œ€Š›œƒœûƒŒ‹ã€…ûËó•xpÿƒƒ Í’‘œgW‘‰’‘‡ŒŽéÒaÕk‡‚ü d›ëƒ–‡–‚åöÚ…¶°†jÿM’’˜À 17058;=57   œ’ÿ•žŒœ‰‚ìÔ‡´µ‹Âœ™€°µ¶µœ‘°µˆ˜œð›†´µˆµƒ“ó…†··‚ï—õ”šœ‡…€ãc‘‚—ojdQA˜x ëžœwòdgÓnŸ˜äË46oÆ7013:37=7 ?$$544 ø”†ü†·›ãûßoæí‚ fê‡âefrá’‡÷}ï…ïä\ë…†—ƒ™”w—ý‡›Ž€fñ–ä„Éâ”ÅÙ—€œî™œ‡“–˜îiì‚M ò 53 57 xÿñKæëžãs„éä–‹²°›„´³·Ž™Š¶´…ìô‰°´ùš‹è™ƒ[Ö÷…ˆœl’šUòÏç3“…Ò 4_@à iq d˜ŸĘ•qúÛ–j6˜30l6a491Äk427f}æÒ™”À茵æA„€ro€Êk Ÿµëò‘æ{`fž™B…‰û_„€•ì›’šŒí†ŠŒwl”™Œ‹–|†´€ù‘†žTk˜‰‘“žš„ðèœBd—ämOœjIñjÑí``Òeâ‘j\LlkVzP•âØíêça{Ñejï„‘’„Ÿ…Œ€›—…äé‚žà’ž˜qOi60 ê˜úù䕞e ót†ŸƒÍ`4âýaæƒ·Š•‰ƒ—Z 3=9?1 •L„‡’·Šµ°¿¹·°³ƒŽŽ¶·€êyg…šux盘aMã`sΗ…’OfÜ 30 á’yÀl 44 4ÿ±™ 6ø7µµMgóe°µ |‚aX†µàï÷ 6€´>4ë7“„gë’m¿¢¶å›¿°ifˆ°ˆ“‚Ž”w¥¶ Œ ë†Ä’›·°á0m]x÷µÎàá0àÿ1 € ý0í‘•˜`ÜŒ†LŸšá^Éípùø‰ìk”b–bmp“¶‹Š¸ˆ‰Œ±€‡Ž–à‹´€Š„6èœ6j„œ›–zŒZqÞÔ27Ÿa3 ‡‰…ëœaè4=p?3–€b71eq5 …è‘±Šøñä0Їõw÷ÝæÉŠŠœsq4íýobékaõü›Ž‡‡€–{³³™‚Ž•Žž…·‚øœÇkÄ•†õ•êýÁg‚On}÷mìj•ïàbïžhY6Y66Û”oÅ–Æ…ÌΖ䂃ô‚”“Ÿïègèã ‡†e‡m‡é”öE‡™„²Šô·³”‡¶‚‘ëbÂ{ŒQœãà„þf}æh_Ü„‘`Ìçg Jìû  Có—›džì–šnÿíiér铘óÕ_Ežx ðé Uw‚œû€ã”µ’k´¶þ´±Pˆ»€´µêâµþ… „ï0u±“žl‚ ‡ä77à3lœé› žt4 ˜k3b eú5æ éð˜ê—ˆAɘzïR“ÜldäÄ„Òná’|iùòeâ똌ԇ°z‡µ‹„‰Š˜´ƒâ޾Ÿ’¶“b’—åþä dŠkƒ7áq h4 `7h‰7•ZÝZ4ø11‡äøš„Æ·Ê‚ì q„áà– –n …n‡G4X†z”‹èœ³‡ï³·{¼‚…´°á”½ŽŸ±›Ã‰ŒzŽr摆ñ1— Sá04ë4ãp6–f𘠄ì’4î“7 –ÿš”€X肇_{€4–ãe1…é’ã{‡|4•Œn@†éeŽF„‚‡qŸ“à‚pz€“ƒ‘—…†óé…_‹Ÿcš€x‡€ŸŒ´š÷ŽGCƒ„cå…h kìkåãgjeq ÿ hÍM]mšÔýlžÑôƒ¶±·µ¤²Œ³´›³µéЉ“㘒4l&;=:!2<íäÆŽ¿°€¿¸çk 9<2%:=:&8 ‡²‰¥§³½¤¶†µ‚è ø„eûŒiŒj™Ë‰µ‚¶Œ‚·§°Š¥ºµ³¹°–°ºéˆ³™ƒ‡¶Â‰wôžïeŠ…~ùÚíkïœÄ™áˆj‡ çHhkÙý g6? ?&91%>22?> 1ísuŒžÜ´——ôuFÐÇýy ç“ÿâT]ƒòìõgh–•nø _íä”ÜR„„…‰‰œµ·_•Œœšž–áÊïà™i– q 75 5 S5T– 765 44åƒãÿƒà„“°’‘†„„É“·‡‡µ•……—„`‘”úK’ƒ‘’ƒ˜‚ŸƒŸœ±†‡´µŽŽ´´¶°¶±··Œ™ýžzÌîÃ]êöí‘àœ›G‚Jž–þ’šÈmž´û†ë<7077=?3=:5%2395 cd|€àË´”nãÎÙl”™s•’–çïæ‘ŠãçIe÷U”jÀíû—q—½B‚þ`–šáŸb핚ƒËü´€ïž“ã癕éêç’˜@ž†vM›g45 45 38401 537åÕo†žô‡µJ„²Ÿ™µ±µ¶°‡•²êŒ¶„€ßÒ„‚à‚Šåá‹F´‹ú‚†™‚ˆ¶±µŽXö†ä„³Ž…˜•†ƒ—™Kc–¶·â{ˆ„S€žÆBí>5ú27Zw6< 48; =90:'4 =2í5jspÕ‚…P”lƒƒíçÁ‰½•–™€…äƒìo q–éê`S¶âZŒ€dš…ü fƒ˜é–[‚ƒš‘†µ€›à–Ü i‘µ„jècÄé”tfFùÖ 654303 63 2%9 54 k7{ š´ß‚µào´‹„޲³„Œ·ƒÚµ¤²œ€½ˆZ´šŸƒµ…ñ“g··mšˆÞJµƒUˆƒý•Ö¾ˆMú±ƒj‹‹Àöˆˆ’—Œ~¿²‘f„‰ô„Ãý”43ž335%?53? 33 <2{Ÿ6‘ îsü…„äx¼°˜åÄv‘†í–……›ë’—Am…±†jnõbbñumœ––à”™òeC‰·”æ„ÚÛ’5¼´ë:4­7"ª‚&:2¶7%牦œe¡‘6‰² / ì-$'%~㎰¹¹º·°¿Š—šA08=4>24Ÿìóž´¿¼¥¥¼¸­§¸¢¤½¾‰¾¿¶™ñyá3&7 :27ýŽ‹†³¤§±µ½¤¦¥¸½°°µ€ˆâ 79':3>'# -,,-#-" " 532 š€‚·±¹§º»¹¼°²¥¥‚S„´€’‡à›€±‹”d•쟵„5’å‘‘ eéä e™â–œŸ›±½·‚˜´µ½¾½Œ“µ½‹ŸâJ>!''!!# !- $'$';>=uo4è‚‹´ƒš†¶´±³¶·ˆ³§¥·Ž´±º¤½³²‹´±±³‹ƒÞ‡´ç 1  13==60  †Šgåµ¼»¿°¸¥¸¥¸¥¤¸¼¿º¹¹ƒç˜‹‡îùÓ 6 5&'%708%:=9::?0 =<„´·€„³¼¼³¹º¼‰¶º²Š…铵†ôE=20270=>ä5 tì|éè↞¶Ñöâ·¼†ëƒµ²„—±²·‚µ°Œ‚Dʆµ Àë<=6 0<''%%&,!;<$#%44> ™ø–O–´ˆ‹‡³¿½‚˜¶±‰˜²‰ë›´†éè¶¿ŒÚµ°µ˜çbžƒ˜ 2;058:45ˆˆ¶‹¹º¹º¹¢¢ºº¥¦ °ƒ‹·¼ábf 71 4%=302éœæhb’ŒÂÛ€œxbæe27rD013 075âæh[j„Ž´ï‰…€ˆ„–í™  \110454 nžûæÍî±²¼··²µ´±½·´†Š‹…d c758 766 6â‘ꃳƒŸ†ÿƒŸg Z 389??77049855•‚Œ–›¼·±¹·´›Ž»±Œ—°Š‹ËY|”i |’j†µ‡“Ÿ‘´³³½¼…†³°·h€‡†o5i  71k㕘³¿€˜²½¼¸¿º¸·‚‹»½‘ê1%%>%$'&$!!&94?:% çü™“‹ˆŽ°‹“œŠ¶±’P‘ŸŠjgb 4díýš–“‹‚铌‰pLˆ‚Ÿ™Îs “úo4jxÍk †“úë”èå•”aâêâÎK–| ö 25761Ý6 ìË÷áb·Ÿè„œ±û—³Š´˜”‰µ½‹ƒž†ï–à”ojÃ_ýýhü@ïûšïiŒ…ŠŠ„‡Œ·¶¶·´±µ™š·‰—Ÿ‡ÿËtzphm 5õÖ›^þ‡„Œ‘Ç`•‚„•áAŸðf <8204 7jbåîás t—žîû‰ŸŸ–_ðì‡æ÷05b÷d a7440 42<= ù€Š–€†Š¸·¶±€¶¸±ï6Š‚€²Œ‚ _ÁéjŠ·¶¾‹ˆ€·°œ513aöò޵• ZþÛè† 0805I`z`›_øµµ‡âJ7÷—Õáêæj7p’àðeÖÈk•‡dœDe™\M„޲³±¿½³¶´Ÿ‡éê“·†÷—”ꑘ“”f10645kèÌõúmåëÞ†ˆ·ˆ“ôÜjzd~ãJbuf 4 1co–ƒåƒ~æè_í—♑ÇCóËæ‰—†™Ça ð–ôžƒŒƒ·µŠ€’‚°‰ˆˆˆ„o›ýäït ÄobvÁjìþ’ahn”ñËfkhKèP‘–×  l øŸã„âj Dkkwrfô‘“†€‡…Ÿ—g}R”’’„›†µ±·³²³ˆ€ˆ‡œèûëüofÌïeiemÚRm蓘‚†„†”þ”ítR@i~ ip4 77 nù䇃“‡…ÒéæþdfdzcWë웂‡„“™`p  amáš‚€‚´ˆƒ‰ŒŒš†œ÷ÿ‘`h“@UàeíædañxõbgcåXvrTå—”’‡—”žž™•ï‡ósÙkxcf   j~AO虘—•‡•ñ™ÛSáãuüFaÄízæjA}mä𖆃„´Ž¶µŽ‡ž“àHïX{Yjaðð߯éýŒƒ‰›€‚š˜‘—úú`zkh mq[~Ánÿm|üæÀîþÿíäg{ËxsÙfD}HÆÜ`àŸŸê›šŸƒšš†„…ƒ›œ˜šþÓ’ÆbüJlf{ãà{À’›†……Žƒ„‡…†™‡’ìaý—o 5xÞaiÔmÍÂhilùíÕdhfÖizdjbgmdbãzg”àû럘’™‡‡„ŽŽ—›€„…‡˜„•òs|Mf~ia_z~äOQ›“Ó™€€Ÿ†„š€…•õNfmXlknþpûpkæL{magnlkoGyhbãîáã•ãÅ„šã…‚”´hŠêàp–w€ ç±&¡3І—1³6”êáŽêœƒò“ðbˆfž–È”ý3l6leøŒŠè„´ˆ‰‹°¶°·Š´±±¶µ··‰ˆ€²Öµ„þ–m`14%' '&! ##-,//-#&%>=4o߉µ±µ‹‰Ÿ€…Œƒ’´¦ £¥¥§¦¡¦¥¾¤¤§»¿±±¹¾´ŒŽŒƒ€“Ÿ–žèЄ‚š†…ec511<:90035  5 4990k65ž°µ ; ’¼²‘ œŒö54L@á”ñŸ¶°°°¼»§¦¤¸¹¤§§º¹¥¥¤¥»º¤»¾»»¾³±¶·´ˆ‡Ÿ‡‡ìÄÐÛZ 477:%%$;%$'$93>'&$:0=$&!=54:$2cÉ 2<346477 54 4jn›·¶ˆ‹·³¾¸¾½½¸¥»ºº»¹¿¸¥§ ¤¾¹§­¡º¾¼¸º¤¥½´µ°½´‚€‰Š——‚rvúÏÑYÙa 45 43:3  =>>?741=5 19:?7 6>'':=70:$>662=2477 ×ïì‚°¾½³°¸¡ ¡¤»¤§¥»º¥¥º¸¸»¥¥¥¥¥¦¦¥¸¹¿°´´´Šƒ€…˜„„„‡‚’ij1;81 4<96ed 134 5 d[g 53?206 577bú’›–í|feCá–ƒ††€‹°¼°Š‚—wÚ’†‚˜ïäú–Ÿ‹ˆŒ›áÓloJbn û’ëa 620  Åú605~óîðj —Sc 634cgi`ò“ü`RJe{ᆴ³¹»¿¿¿º £¡¤¥º¸¼±·±¿ºº¹º¸½²¿¥¤¸³´Œ‚†áq}P•ŸžêÊË“‡†…â×55565 44 d|566 55mSz7100662299?0    14 à†Œ‡ŒŽ‚™…‰Œ…âwë•ŸŽ´ˆ‡†€„øáŒ“]cg}”„ƒœ™›‡…™ÁF똅×jceÞ€€šêë…œïaI“žèd R“‘Jzl 5g 70=<3 7710j̇ˆ·ˆ‡·²¶„“Š¿¿±·Žš›†·½¾³Œ‹·±ˆëÙ—ˆ·Ž”Mch‘‰ï”ž›îœšé{xš–äæïïÀà„mÅ”“ìœácf124 5  =2174 7022oÖ„—Ïo㘞•RÖ€‰µ†žƒµ·†âê‚…EK…ˆ‰„Ëu–‚…„âB뇆– DwB——’ø–žˆ„ õÓÒî‘”„…—797k 0>8>?7 g 1Áް¾¿³±ˆµ´¾ººº¼½µžzeᆵ·°´ÐeÄž··±µœt`—Ž’| y‘ž…ôw ÜÄŸˆ€É l„‚ŒŒ‘L   ='!$9 28:%8>37 18?|€‚µƒãw÷ó•’ƒŒµ°µ“K…µ´µ“À`a`Wßå´‡zlÇŽ¶·Ž–ÑjΙ›ó Z„¶³½ŽèwaleK—šŽša—в¼½ŽŸÊZrUgeb{ 9::272?33744j77ƈ½°´†‘žŽµ°³·€Å|ž¶¾º¾±†•œƒ†‡‡†€´¶Ž”“´¼»°€ÀYóžœÓ`r퇜h 21‡µ‰–cmìõhâ…„}7ð¶‰í 75?!!;7 <%%27731`ul5=4L‹°°‰û}Œ·¶…ö|‡´‹ê Ÿ·±ˆÎC‚µ…†µ‰awƒ±°ƒróŽáσ‰…–±ŠŸ„µ‰ákœ‰ƒ’Y|û†´¶ˆ—ÝŒ‹›4=304 1>$97n40 kÚDúýèžŠŽ…˜Ž¶¸¿°Œ†´¶±ˆ‚›„Ž‹—‘€µ±¶ëcžˆ‚’{ÜëìùÊí…‚’x 5 fz76 î–ë Í’’XlHæÏòΟ˜•o n7<837  gãáÝ`Í–µ··³³¶‚š“ž€‰ˆžö`{}ô윚†Œ…÷wáâ–ÂnÁœ‡„„™àiðãáøoA蘇ƒ…Ú•ê—szh너µ‹ŽŸÁg 632=7l6?31_œ´¿¾¼·‘‡€´·±³·ˆ’’õ…µ²¸»¾´€ã‘›€‚‡kã‚¶°·…í`uôÔ} 0=1Æ€ƒ‡R dà—à53 ›µ¶µš~oÍ—Ê18>0ÿœG42?><05hl7894V‚°±‚äqÒrB䙵°‹ÆŸ±¸¼‰œ@engi瀌Y14‡·³ˆ–kdj`dH€´·„ ³¿±‚Ãlbo‰Š41”ˆ²°Œèfa…ƒc <=ù†ÿ5111017Cå6??ÌŽ·œöfdÎðú週¿½‰áú‹¹¤¥¿µƒš››œœ´¼²‰ò刲²µ‘ oç‘æ104„€…Ó 4 cíÊC17–ˆŒîe ‘å 4䄌„C  Õššò Uµ´žäðDÞþ_圉€Ìfþ‚¶±ˆd 0;$&'%?7쵺¦¦¤¼¶‹˜…†‚Œ´¶´Œîýœ‡S0993 Ýœ†ƒŽpiï…†œó 28$$836ÐñrdWš†…àom÷î‘ÊÐo‘‹°·´€’ØdkSó蜛‚“áà™„›j638=7 ÷›èñ郉²¾¼±¶žäûŸš‡Œ‚‚Årú—–û227 ×î•…‚„ècwáéÒŸ”55037 æãkox—–ätfÿ’┟ã÷ûž†Œƒ“öí‘—Ÿ„ƒ…„š„ÆAS@e阑1Íë‘™›…ŸŸ‰²°´‹‡ç”••‘𙓒“áng}ý44  wsá€àúxN䘒 57 q 4táÿ`jú“š†„sbj~—ކœï˜€†€ƒ‡†Ž„•j|—†•jJ—…Œ€Ÿää…Ž´±ŠŸë›žŸê”–“žÃ`•“ò ~OâæqÞ“…õgd717ÿî`naú›Œu–…‚…›˜ƒˆ‚“ž‚Š·@`ä–“Ñlo‘ôk쀱µŸtÄñ…Š€‚Œ†‘ô``—†€’Kô}Hc765wŸœ jä•ìûê“àd Z•é104ksrl”„@~ý“€‚‚„…•ä•›Œ±±´žpn蟙–ŸÄokjÔ”ƒˆ‹‚êiå…·ˆ€èöáþû횀ƒài ñ욘Hhb 17 a”‡†wÇòÃçÞa566 \âåt45ié–”åÒ` c”‹‡yw†Š³·´ýNocù†‹¶Šìð‚´Š‚—Ákß…µ±³Ž×ㆰµ‚”•dæ…šO oâ’àn7004t•– 5 Ûôé×` 16 qååx kçð•ànæš›úyà—š€‰‰‹‚†—Íz••ˆ·Œ—ùè–ê–„š†ŒúÓ燎€›’íÄ–‡•œê—•›•R|鄟ñÃ]xÜæÎ~s 4k{b5 ËÃÙãibiÍ÷maqí†âgGå–†…•†††‚„ödц¶„“š„…‚˜ƒœž‡†îíÒ‡‡çàêÇÞ™äýûç gýê„lu`™…Èõ~d e}Üø{û‚Œ–`l zIÌÄäôVe  1vïÍo pÐ|óàÂåÓ‘‡‚а¿²³°»¥§¤¾´€“{o𜵴¶°¼²·“m =>1 ‘‡´½¾¥º¸°{  fûë†‰ŠµŠ···µœD{I54  3:'$%96ø‚‰ˆŠŠŒƒãá–œœ‚€Ÿ]7?;><4Ecn6>;:%::8992u˜„™Ñ 027ñ–›ö eib4<%'$<厶³´ˆˆ†„ŸËmP›µ³½·‡•lhø™Ÿ™–’›†€‡‚†îíSû„б½°‹›_ú섈ˆµ¶´´‹ˆ€†·½¹¤º¿³ƒâÌaov䃴±¾º¹¼´” 5[›ˆŒ™àoà„ƒëA u˜‹±·¶¶‹RoËŸd62<=1  5 â……†ƒƒòðÂí‘–’“þyd71 563<061 iO`k`vÀTýèãÌÞc 70=0  767 N›—ê㑞äðꛃ„’œãþìÒkÒ–†‚‡î—íb`vØœ‹µŠŒ…•÷‘€ˆµ‚‰ƒšŸ’›‚‚€‹‚‚ŠŒ„…éìꞎµŒšáÍ쑇´·´´r o 5 4Z†ƒŸ„‘wÙRÆ›´±²²µ€á}ÞŸ…—Ç 6=300÷˜–c5 dè‚…ÃjÝ„Žƒé455  o 74 ~“·‹— n_焃šî02=305 dãö 414iÞ㟎‰‹ŽŸbÔà…µ¶³‹’m c󜙉¶´ˆ‡Ieê„‹±³½³™Y朊²½¹¸¼±†hœµ°³·´‚œøýƒ·½¹¼·€agㆉ‘1>267kee 7767`ʆ‹µˆ…voféù㎊°´š}`þ…“åd  5Â…œæj ‘‡……–cd`N–æg dýöàíkk`fòíïž‘` `Ô[þâj 4 bôxZdÊ„„›„šÉYðò…†š„‡€‡ž™…–ú›™”›‘žˆˆ€ž˜„›‡ˆŒŠƒ€ˆ‹€‚‰‹Œ‚œ…Œ‰‚Œ€…€…›“\æï“š…‚ƒ’‘àj`nnÿÚj 5v50…†1Ö5îŠ#¦86ñf<´0™ âì ‚ …ð˜šhp × h67 `rÁRœTŽsƒ¼ŒŒ´·µ·‹±³‚ƒ•„’Ìç†4 17961?>::&!/,""##"# &%9004  ט·³¼¸¸¥¥§¡§§¦§¤¦£ ¦§§º½°¼²½¤¦¤º»¼±µ·‰ƒœ†à„‡…“™è×ab 4463=3617`ecÝõÖ×ùäåäœöäîËml  ogæøé똂´°¼¹¿»¥¸¿ºº¸¹¼¼¼½³³±±¿½±±¶‰‡’ëåÞh 67  54 5 4176=:%8?6  544 57 ]àÇM jkk̇‹Àsÿ•Ÿƒƒ‚‹µ¶´„š˜ƒˆšáã–”•zý„†…ƒ‚„šýa〃ægƇŒsj›¶²¼½°²¿³´Œœ†´·µêɓ씆ÿQêät7™c Ɔ‚“”µ°·‘ñ‰Ù52 c„46 gÍ€·ŠèÚƒ‹›fŸ45j™›64h³·”dŠƒz†ˆÿ53602 b’b18? ä…C |€´… 5iƒx‘·±— 04mU0<6å0%$=74bŽ‹ï6 Þ…uþ‹°·›†µµ‡ê€½¸°–@„†‘œ‹°´†l À‡›„ˆµŒâ7\œš‡Œµš{›´´´³²·öåƒ‡šˆµƒ“Ô57÷Ž´Œ‰ê5W™ˆ·Š‹Šž å¶¶‹ƒ‘ 2?5Ô“‡š–}514戊”tj 165‘†‘b 0304„‰€N574ý‘…†çn764gŸˆŽ……’@ϵ·´·‹]`’ƒ‹µˆ€ïd534föóýìíb 675à–ž€‹ƒ‘fy…†Ž´µ˜dmÏš‡„ƒ•nbqùœ€‡ñ k|ìà”–zidyåâ•‚µˆ‘dhigôÌ昄ŒúioÚÃhdåÉ“žâ”ðTËTd∆˜öØpb矆éwåÉmÛUß~l×bóÌix\umà—gaAk|ÈOçûmvjkù‘siijbjrä×ÜOfgBò|yÁHUSùGû™ûrEoyñÑ}mBâgd``zifdåkoGMplú’”ž…ãóçê—z`÷â‘€„‘‚Ž„—éñl‘œ„Œš€›ôo@z燄š€“Ç÷LY•á‘›™†ôacb–„–…ŸèÅzpbÆ’ì™àꔚˆŽ“‡ûcó^^Ÿ„“–èAkvãúm~bGu4Š0‹œ'¬6'ª%92‰=9uÈŠ¤àL§e3ˆ°#ºh ;&0%ÛO€¿¤¤¤½»¤³ù™‘44 6?;?3<9=136 wéú܆±´µ¾¾³±¥²¥´œ‡”12=?286 â…ŽŠ°¾²³¼²²¼·¹¶‹°‹‡µŸ±±Š°°´Ž·åè63:' "##!#$%$=0mßæž‚ƒ‰·‹±°½¼¾º½³¶³ˆ„˜›çÜ÷‘ 3=:'$$!$=$:;65b•’Š€€ŠŽ‚†‚ƒ†‚‰‰µ‹Œ±‰¼¹·°»±µµ·±€˜`<>89%&& ".-! ''$881Fo›·¾¼º¤§¦¦¡£¡§¤¸¤¤»´µ·‚ëØáü   1   7  uØP‘‡ƒn’µŠ…ˆ¶³²¼²²¥¼²¼°·¶½°ƒ‚·‚õk“4gg3  2 1256<:6 <17>ÿç±·šˆ¾³·µ·´™²¹³·°·¾´›‚ƒyÔC_ì 0 58;3$$'12!=2104áèó¶±·ƒ¥¸Ž¶º¿ŒŠ¹´…‰´€Þê‹qdœ7í…†€„ÛšƒŽÍk0%10" !--!!''9;:3<7 ž³°µ°  ¸ ­ ¡¦¤§¥¤³€¾‡mr•34716&;6>'>=‚ø™˜¾„Ž¿Š°‡¶°¹ƒíŽŠâ`ûÎhñÍ™™Íï…‡…÷´ƒ‚˜³ŽK›¼åeë‘e?:=53?0 1<7áCìۜО¶‰´´µ½·²²‡€‘a<63>05 6úÆ—ê¶÷±…„™—Ž_…Œš›‘˜âÊ…šâ‘†‚Œ„€…ŽŽiˆ‰Œ—„±ŒŽn–‘dk179759<>?8<496456ñ•ƒ™ë‡¶ŽŽ–œüŒæ{gsgÕÓo„—oƒˆ‹¼µ·º³¥²±¶ˆ±–ž‡ôGMbf5n 434303 î“艌´‰–µ´°ˆ¶´¶°é´‹€717657 Cs`Fò´‚‡‡†˜hæ~ëj†“j núÙLb€qhåŸØî˜’˜Dr„‡e˜„ëëÕ‘â‰ä–è{â@…Òç—šC°“ꈚƒ€ÓœŽ‘’“€ocd 7 =8%:15Õ„€˜™’oz唞™ìþud eãó჌œì—æ lÎô“ägbö”ˆµ´´·¶˜éÄsm~ôÌú‡ýKoÅ57 5ð›þ’›ö| ӿ𙆀„“sdõ„šƒ„Wi䔃µŽ„Ù{ o”‰¶µšïXsŒšà53014ô›†šŸ‘Þ ‘·°³°‰”qj“µ²²²²½¶‚œåweuÍ—†Œ‹´¶µ 67`úé–…—d 665xù”€Ž Å›–‡×bXú„އ\ eáìô™‚œótebkàœƒ‚´Š„Úwûeˇ€˜…‚†íd5ãò 55Þöeý„‡ìnltfzê’œŒúQóüjW—“”„‡—ÎÐAÖû♇ù|IOc_ÿ“”üè’òe{ ÎéìChXÄÊFå—ðenÖÚceÕž‡…‡™—‘–äë„µŽ‰ƒš™åCgqyð—–—‘åbijÐÒQ”éèäFMìžâeÞZagÜåñúëžžëäóEZÜllóÎæ—Üøç~Beõ„‡………‘é—òclFrj}ð…”—è@Ä÷JÚäïáìéótk bvjl\Ã[ÄáîåÀVñÚ]picaaIÐÅ–è~÷äÎÛû–“áè–ÃKtLrrÀd––ØØêìù––æ–ž’ìCïÞ`l┑Ÿ„ƒ€€š€›êŸˆ€†ˆŠ„šƒ†–Ì{  aï…âóz gž˜›€‚€„šŒ€ïÏÔ  uYfnjoឈ³¿¼¼½¼¿°ŠŠ‰žâ—è—”á—àÞùÌÿ”Ÿè”îF 1616`Wú”’™š˜ëßWÊd ~üq’‚‰ƒƒ„âòúá  üäoÅœìTÄ\ 6 75 lmM쑘†‚‹µ‹´´ˆµ´ˆ‡’‡Ÿá•—ïáóã⑇€‹±²¼¼¹¾³³±ˆŒ‘rk45 6075 Öõ•ïý’„’â–’žŸÿé…ãÒÕf` 5 grÅã÷^ìÖVÿj 474 g߇‹µ·½¸¾²²¿¼´ŽŒ„œómfdijzå—ùþ‡žáj[•j  dVWàôê“êãÁé„…æÝäéê÷xÝåg`n`jeüþÇåàÛèæõùJóó@c~545 44 gazÃá–š‚…™™’•âÍé‘€ƒ‹´ˆŽ‰ŠŠŽµ°°³´·´Šˆ€„™êÆblo`lcc`mgõlc}k[lYheÚ—ïõNÒÊqxa_îß~åâÎyh564 moᙘµˆ‹µ‰Ž›–•ìážœŸ€‚˜šíìúå•âÀÈ–úcb 1474hv”Qøã’•ÄFoogynaßäøœ—ìûÈÊêûpàìîœî™ fÈùÃç•çEM_Ôæé—™…†ƒ‰ŒŒƒ‰‹‹¶·´¶³½½½³µƒ‰‡ž˜ž„Ÿ—åât`cobkeÐ_pjljboc}MõàœáÓÐÔfjzð“—…“žÿŸ™”‡•’™„’˜œ•››–럟‘–’‡’á”ð@  4coå‘z[}biSõ^qæú÷}dMÿï]È–•œ——˜€Š„˜„‘êÿCdi@k p”žtÚçdÀbjÏê˜ã솇„›˜›„€ƒŒµ··´°º³Ž¿°‡·µï´’÷ƒ‡o‘„ÊCg0†ée”ö5Õו=€v3‡ñ<€=„å% <µ3µ ¶0™†4‹ê5fdúÿsQa2€›6O†MòV—´sŽˆ°·³³½Š´Žg™‡œ?k8:=!9:'$< g`ˆ†÷á´‰axÜda60 š±¼´Œ³¼†±±µ²²‹¿¥¥»¿°¶±^틇…³³±³³±´¶‰Š–†¶Ÿ`iñ >9=9'9>:892=<;97%;4674 63>8;%$%::8=<827=?754  17‡€“޶°··²µ·¶ˆ±·¼¦¤ºº¦ ¥¸¦¦¥§§¥º¸¼³¶¶·³¶Œ°¹¿½»¤ºº¤¿±¿¹¶ˆ´´´´ƒ‚·Žáæësvwp6=7?%=<$&! ! !$:$&$?%';=;%2>%:8%&'%9236`áÓA‘œã㈂‚е‚‘´¸±Š¹¤¿¿¸²‰´‡ëŸ¶±‹¶¾²°»º¾¹»¼´±¼·ƒ¶°‰Š³³·¶´µ¶²¼½²µ··ƒ–ÖscjrSa 72:%62'25792 40=0421 61?851034 l˜å„±‹µ†ÜyŒ¹Ÿ„°µ™Ç€’ndæýƒ¿¾¶Ž·±Œ··ƒ–é’ãcþ‚µ½½±†Žï_ãâeû‡ 6ÖÈ 1413 79:&'8%%>6=%07036 n 10Bj5ãý‹´‚‡„²¤±º¦»ˆ·‘–¶°´¶¥§±µ´¦¥µ¤¡º±»¼Ý“µ‡k†±ïÈŠ¶‹·¶‘»‡‰¶ŒÀŠšdø÷´ìƒ³ì–Gc—€™l550 20732=$&19:g16877<67$:<9?=4 —œó` À1míã Ž·”·º‚ꀂYàŒ—Í’„Òxƒ„¶·´‚•ìæ’˜ŸjzçvбŒŽº¼™¶³‡‰°±ëô¶‰—Œµƒ¶‰` 53 2:6 301 0>97==36%6nE1~“‡M –ý b–žƒ¶±â‡´‰†Š°›Šêdá€÷≎ˆŸmŒ‡šÒ„“úeå—ꈘSŠ±î„´†F„´@뎊†Œ¾‹Š¶±œµŸðàøäQjÏï`N5 6  456 15 1>3g 0ææYœ ã€Nà°¶™¿ã´÷´y‚ƒ’•ŽÊ„‚|æ€M”‚ýŸð—‘„^M€žmò„ùæc–žYz‰œ†žå†‰êŒ‹—ˆš²‡4ÿ2 7:339j= úM J€`Ÿ‰ƒñjŸ•ŠŽò‡‡~S³³¼ ´—Šœ 01:ègø¥»´¡ ¸²»±à´·}ΰ¹„¿€¶·”tŸ54>24•gc 60 3!2=!833%61 > 4÷`ê…ÇÈ™–ccJñК·‰µŒ“å€j±°²¹±½ì}Z4Fñ¶°°³¹¸Š€Žˆšâ؃‘•´´·”´•œ T1QxiñhäQÏ43=?2:=1l64 –cƒ›k€“`’žš™õƒ›…µ˜ ì‘–´¹·²´²´´·€ƒhvÇ·´µµ¸³ˆ¼°±‡€”阆µŒ‚—¶‰Òí”–c4 ÓÄq 55o7 0?<%>08>857 4“gXc˜`ŽE’ÈÂw ƒ”ljŸcŒæ¶µ–ë–µ‚ƒŽ´ƒùŒ°rŒ´ ù†ã½¶‰„½¥Œ·°¹ön‘Ÿìˆ„ɱbÙ™‚5 ì i™Ó›  670 4 153367  óàeå‡qk†i„w†|É´·âp’‰›™ƒ‰˜h‹˜™·½€`‚²‚þ™‰è…‘‚±Žs´¿u‡·T‚þY•„–ä“Ûœ15ï Ü26Ó1 âž1i >284 › h‘b5‘‘Žâ™Ž·ÿõ›ŒøQƒák‡ˆ†˜´ŠãåŽwŸŠæž‹µ±·Š‚€—Ÿ•ñú–ãn盌´€’›àgãäojýß埙çdm` Ým 41345  õúPÝš†“íøDáèÞu“‡•”€„…„W‚™à’ˆ…··Š‰†‡šƒ‡ë—Œ›·´‚ŒŒ„„†”àà둜—”’…ädgÐW{nerKÈ 71  mKbd”s–àz@œév‘’…š—‘„”ƒ’•€‚…†ˆŽ„€ƒƒŽ´†Žµ‡†‘…‡…êêïïÎæ™”dÛâÆwôåMrýlf 4   ki{aOüõÚõÀ•“—옃’‡’‘™™œœ„…„Ÿ…Œ€—…µ–†´‚„ƒ‚†™–—àäh—iÃíftjd{dyâooÔModjaqz”æmšåáÅnfbhrx 7h w\ÃÙêš„™…ˆ·µŒ´±·‹ŽŠ´·±¶·°¼¾²¶±¶‚íæ•Ë”œ†ëvo 4 443<63>2 68%$'%>98046 ^xíl]’‘žˆŠ€ƒ…Ÿš—´³µµ²³±¶‹ƒµµ´°½¿¹°´´ŠWê—ü•…‡…„âK~te|o 4<9>3317  `d\OoKM]‘…€ƒŸ—“”Lè…Šµ·ŠµŽ†ƒšœ€µ‹‹³¿½·³±‚îÔè•è–‘–œ—qßþüovom477=><44 dBhSôiYdð“î…›à›ŸúÂí”û†ˆ‚€‰·šššÁ†‡‡´±‰¶´‰ˆƒú˜”é‘õv™Äuiqoà}`  76125554noâêâ™âyâ„ê}“…â^ñòã›…Ÿ‹ˆŒ‹‡öHílá›±±¼¶²¿±‹€†ÿî•È^ííqïžþ÷São3=1zl556023??== x”vp…„ó@èüv󆶶ޱ±´žêè’Üiü·‹²¹²‰·³Š„‡Ï`‹¹µ±¼erj6 292üŠ‘ñ‚±˜==>%''1C”a  72043=0·‹¶´á|BS¿³±³»½˜–ñgg€»»º§£º··ˆ›il‚²šíƒ³—0536Œyà†174:9<8%6Zjá›= 6n[ ˆ™ìˆ°°™š}ʈ`mƒ³ëƒ‰¶†kÿ’†”™§¿µ³³¹–úq„æ“w“´ìšæÌibl‘ePë >6?25=64çs`g50a þÜ µœ‰´¶{†“ÄØŽEä°‘’Ÿ‹h•’`–·†ò¶¹µ³±»ŠQ†€šc˜‚” ›‘ã–€ æä4Ë7>077ó5{7fÐk1dh_ˆJÂ’œ`ˆ€´êàŽñ”|‰äÆŸnr’”‚…™Ë„¼‚·Œ°ƒ´¶ˆÔŒ–|‡B– gmçjdk If80   j< ïz…aÆaaM†Ÿ^‡‚’†‚·é’‚í_ß‚˜{ Óë–㋎‹ŽšŠ½·—L€¶€™´L•Ãï–Ô0 ÑYs@þ   : 36 ìøýKdj 4ü`à™ˆZ‰‡`…n×D”H÷‰Ÿÿˆ†ži•vòŠÆ”ŽŠ–…óQŸ‰˜ÿ‰²œµ¶¼èc·žfàfn—cèåò>86& "$%$;%æjž‡ŽÄ4?91=>>8çvžŠ¶õñŒ„„€¶°Žƒ‡±»²¹¥¿šŸƒo  6<3 Ùœ¶Š³¥³¼º¤¡¤¹¿¿¥½²¥³µµ·‡¶·³·†›QŸÃc 5  Þm—žz`–ïp5=$# &#:3945ƒ“³‡—e 04<7?77ùnçÝâjø`ñ…yœâ’·€¶€]ôë|Ã55CÏg\j—µƒŒ¾±‹Ž¾³³´µ¶âá…µ†™±ˆ‚ˆ¿°´ƒ”í72  7c„Ї–÷F2%?=%!%98><ãö„ˆacëo 4œâié‡6šíç“R}•¶¶“ƒŽá`›îó„{l››là<0jghÉŽ‚‹¼§·´²´x‰›ê„·µŽ³§°Ž²·s áž 4i℟?7>;75460kim‡‚ãüƒŽ’ÕëÀf‘äôàžŸ “‚Ýš´‹Só‚`ã4ka NŸ 厑f‰´âTŒ¾·š´»½š‰¹½†•µ½ˆã‡°±—Ÿµ‹cá‡1 pf7172 0%>55$!37;6AE è‡æä µµÁq޼€Ü›Š‚ë 0j…Èn‰“”‚µ˜À›äë‡a PNysN M…˜Üë·°ŽŽ¶²¶ˆ±°”’¶¶…‰°Š‚ˆˆ€‘ãÙ   13== vÍî‚„‡•ín 573=1232  30 î³½¹º»¤¸¦ £¡¸¹½³oÏáxw^cf1 445PoŠ¿½½¾¸³µ€ƒ™â†““ “Œš€€‰±ß`434420 É 77$$;$&&93?:%5nf柃ÌÄ”œ›÷¹¾½²¹ ¢¢£­¦º°ˆ·ˆî–Y0:=67?>550õÿpް†„„”÷°¾½³¸¡­¡¥¡¹¶–žlÄ{“ò ð45>;' !'!#'8=:??àlångmkhi™kc„±ëèµ±€›™´´›³¿°‚¥¥¥¸¿¥¸¶žàê$ Pƒ½ƒ³¥§ƒŽ¥¦ºŠ´¡¤´¶º±’Œ¶‡1f5;!2 :&?3 ‘„Š¿‚Œ±¸¾ˆµ°»Š€¹¾Š{aŸ‹€„÷šðnˆˆ€„ƒ‡Á– 3 <"'5'&8 =9<4\ƒmˆžš¿»Ž¶¼‹‹°c†„ m 5âGß6‡Ÿäaˆ™‡·‚µ°Œ°¿±†µ³´ÑáádnvbgL–hå…ç]胎˜·s絆‡ýLŒQ{ 0761>>329= 74jà{`ꃈ´…´±µ‡ïìòmä7545  `™™Ÿ½¸„¸¹º¿±²¿³´¹§´„¶ÒMg 350>3m7 hd˜ˆ€„‚›µ²‹íè…—ídÅ36=%15 <:3? h•Ù™qƒ±Ÿü´‰w쇷‰Kœ•áŸl  X“Ÿä“”ÑE„·‡ì皆—ìš³±‚‚ކõž·…ÆÊžéaë‹‹÷–Á~l€–y’ìé¶Ž€dŸ„ÿ””™Vñ  1<111=6 h vjðÜÈÿ„Іžš†‚…‚Œ•ˇüؘƒËOŸxâXÍ”ƒ–i€ˆ’·°†Ž…—šë‚±µwž’—˜ný 61:4lhïø…pí„à†±„À„µê€Å—a7  50  4Ê„ˆ·ˆ½´³½·¹°·¶ì‹¿²·µˆœ‰‘Ìëwcm‹ïkø7 3401? 559VS–~hÖP• 7> e722141ä”Ë–‡‰”qµ»´Ž°¹°ƒ´µ‚š€¿¶Œ·¼³‰°±€ƒÁŸ›ž´†—´œg4345< 46 gçGáú I54 505v‘ø˜Œ·„·±¶Œƒ±ƒƒ›å±†ƒˆ‹‹€‡ƒžgË`dÓKZC…‹ˆŽ‰hn ck][ptf i  7615g䙑ƒŒˆŽŽ¶¶Œ‰…ƒš˜˜Œ…†š‹„†‰™ù€šmë\âç–’ƒšžˆ…†æâœ    tjlnlkÃ`oËe ïáá™ŽŠŽ‹´ŠŽ‡ƒ™öžòþ”Úþ„“ˆŒ´´ƒŠŽƒ‡‹…瓕曜âLHcÿf c 6 33417467 dbzSÔ}ÅwyKàïÐ’†˜”““èŒùËïë…震钆’›‡ž“‡ƒ‚€„€µ´··Š°‹ˆ‚‡˜ã”e 4756417 4 6kjoØtzdP}rNI]Gáüã—ëꞆ…‡ƒ‚ꕜšÂSøôÜ]“ä욇„еˆ·°±·¶³´‰š˜’]ùžw 76 4 154177 bXmhäñcÿ‘flÚslKâûT›ží‚…‡†‚‡ŸàñæzMõsž›Û—š€ƒ‡µ‹ˆ´¶½¶¶½·€Œ…â•dh 45117621 77  zBWydNkhð—Ë圗•Ö”™”—š†šƒŒ…ž„ž‡„áá”–ÙiàçPà”å’›‚‹Œ·µ°·ŽµŒ†êãñüXm  7 54 74 4 gy×õÿûôßðë‘“ðŒ‚›„‰Ž™Œ€œž™˜åÒæÉrý•Pú‘…‚š……ŒŽŽ·‹¶´Œš†ƒñœæy{  5 41145 7  cÚÔ”’ÕÓ퇚’š„†ƒƒ€‚‰‚˜††˜›—æê”[ðâʔƓ›€‡™ƒ‚„´‹Ž†ž–„Ìrçvo`   =ãüë™ Ž&§?›1‡6³7‚›Íꇞb’îgž—ÊrDê6J2ëê˜]²˜¸¶º¡¥¥£¢¡¢¡¡§»³±±Š—z—1569$8--//,/"/..-,/-,-#!$=5 hkQ΂´°¾¤º¦¦¦   ¦££ ¬¯¯¬¬­¡¥¥»¿·¶µˆŒƒŠ‚‡ñe bn‡……öelc45771=3>9:&&%:8<364  tHÂFB÷Ü÷Tëš¶±½¼¹¹²¼¿¾¼½¼¿¸¾¼½½²°·³°±ˆˆ·µˆ¶±·‰†Ž‡––çÕ 531<<=200 Dq  4 616730<<00174360<==3066055 LA톆µ··´±²°·³²²¼¿»º¤¥º¥º¥¤¤¥»¤¦¤¤§¤§§¤§¥¸¿¿¾±‹µ´Œ‡™é[hdh×ç“åÝo 4110298>9::;98%:9%'$%%$$;;:;?=<>>=<<=?>?6474 wÎꜞƒŠ‰Žˆ····²½·±·¶¶²¸¾¿¼º¥¾¸¹¸¹²¹¼°°³³¶²²²¶‰—é“ùüCx×’èžœ€Šˆˆ‚‹‰ž–àjoi 5 606 410161165 7  45 ~ ‘‰ê†·³Š‚‚‰Šµƒ…íõ„àüW€½·œr…¶³‹™„Ž´ˆŽ‹öKu µˆó4 kÈ~7>4χsÐJ ?¥­³ FŸ7!' àb70 7'-$œ±}13;!9”Ô>: ´´h ý:=…Ÿó†ŠÀý¼ º½¼»¹‚Œ³¿°³¿²‰•@…¹¤¿²²½µè“н¼½¸¼´šNÖ…³¶‡ŸÈc527qùê—Ðl‡¿¼·‰€žjœ”÷43=3 ïV 40%$<47<9=6à–3<%$<4b 2?37™²€æBÔ u޲±‚…íhìOî³¶éúla†°¼·´ˆ–Ü™µ·ƒ¶»µÊüþdÜœˆ†‡¼³‡—›ŠŒŒ³¼´…œÝïŸeôð5=0143666   7 762755oJë~@‘‚’¶‚îá‡œŠ‰Å˜–Ê”„š÷‡æ~󇆈·Žäo„‚š†‚‚üf|wÎAìédòƒµ¶·†˜™Ž±°´Šƒåð€„ƒ…à5 êì6<0eI˜‘4<776qÄ47>;? lš˜h5µ¶šæíœˆÚ„°€oÞŸg沋íà趜ᳶá šeh‡¶zvÖ b·€…°›Ÿ授ölås·¶l꼋“j€‹öv‡Ž™–48= =;61?75 ²‡ï°¹žE†às•770?9 ’tlŠº¹µ±¸½´¶¼³Ž‚ìD’µ• :;YŠ‹¶²¶‹±¸²Œ‹°·”‹„g076 n egpföó `7 76:'2=& $:%:4™þ4066gãY‰„\ž}†¸¦Š? êIk…°¾²¶½¥½¶²¥¥šU]…€|e†”…¶±î쟇j8837 ñxjÊ›~v…‚œÜ’‡·ŒŸœø…ˆ‡ž‡rDimä‰d67=>:?30fŸ›ÖÎsm145koé‹·“ÕàŸ“lqdtÎà膀¶±ˆ·½¶˜‚Œ›˜àŸþ†µŒ˜‡Œ’g4 6íéí`t“‚›çòÏdãá^›‡„ÈLމêiä•j 73?=p42 ü†ƒSy”€” 7’f eû„‚€éõ†…‘’†ƒ´·i“‰ž……Œ•sꌙnÈ葇°µ‡œš~i28×ô 214 ’ˆ– ꂟ‘€³°‡‘Wx‹ŽÅ7%:0  72?0ƒ·€ágoæ‚¶‹’b40P–åc64ž€åio|œ¶±ˆ„ò}”‰±¶´‘ú•Ñ–Š·š H±°´…j‡·±²°„ý—h403bv7 e“öe·µ‘gÁ‹¶nMÖ :$= éf5|扙Kë—âÈÑh o—Wp]“„•öí´³¶„–ñ⛚ǟê5ú´‹€˜€ˆ‡€°¹³„–áOìœâ6=17<2wb|—‰Fcâž·€eqnëv 3?4N45gú€‡éjõ›€Žpð—žð q™‚á|`냵‹Œœúa惆çõšåe’‡†‚·±Œ³³š€€†m[` 46 64 ÞÞñÒ{ß„êçÿ•šYi÷é~5 klb}â–÷DéåMä‘bp|ã–Îo~Co”äî‚þΚ‘ᇀ›fq—‘”ŸåkÆþ†µ…´±´ˆˆ´²´„‰µ›Æi×S598  ewUedãñeêñž{ æz6 gtj_\gj[ÿa–•W›tåg‰Æà ¤‚âo±ïû··!¤=‰7‹Ýº3˜ù޳z…—Šä›lŒá–mâþîVƒ= q ó… la‡á–¼™µ„±±¿¹¶ƒ˜IÒS|ì944É 0;%<%'",#$%;6bÐûóO~ãOT䂱µ°¼¥¥³¾¤¸¶²¤¸¥£­¯¯¬­¬¬£§¦§¤º¾²°‰60774 73613904<$!%$':23>8=?2140<>>;;;=<>%88;:=<>1cу´Œš‚Œ‚áïïsœ†Œ·²¾º¥§¹»¥¥¼½¿»²³²¸¥¤»¹¹½µµˆ‹ŽŒ…‡Žµ‹´¿¼‹Ž’–€“7%861:$?=;%%==3=<;$':$;36051=351%:>$ $3437a“˜ê€…ê÷JiýïOž€‹²¿°·¼¹¿¹¹¥¤º¹¥¤¸¿¦££ ¡§¤¹¾¿º¤º¥¦§¤¤¥¾¾º¹°³³·Œƒ€íuv511 561 =>3<%%?<9<6777 6011?:9?:'$$ " &!!$;8=7 m{jjndåœ’š‚‰Ž·±²³³¹¾½¼¸¹¼¿¹¾½¼¼½²²½¼¿¿¹º¸¿¹¸¼°±·‹‹Š‚€„‡ŸàSJr 44 zmn 473>9==8?167 id䓇€›éÀáñÓâlðâúà„„œ€ŽŠµµ±³·ˆŠ±¶‰Ž‡‰€‚€…šŽµ„€‡ê–œÙcDacf 5760176670=263=0476 444700106hñçí—‚‹ƒ†‚ƒ‡›„ƒ€Œ´¶³¿¹¹º¥¹¹¥»¿¿¾²±³±¶°°¶¶·¶²²·Š±·†ž†—ïýGäÅCtwmho 4 5 5   clb 543772<755ijcûíE`P{glj{óát넆†ˆ´Ž‰Œ†ŽŒ€„ž™„‡Ž€‡‡–žŒ‚›•èê×_ÉøÏoÖÜvþëâaa|NddÅgnprjàÆmn}jAçr7  oçßoPá–qLìâ—úvsJôàñòç“îæžšŒ‰Œ†µ´‹Œ´Ž—š……™…™šœ’@rðëcjÔxa{jIelÓjlIk[ç]gwòaÇáÅÀé’öΓš•_””qMß~cycyÏbZihÚonzmj]bjäUêá|â„…Ÿ•‡šŠÅ‡Œ†êB‹€Tt—™µ}iwZÖ·‰„ohdOa–€4 ãgêgòî3 >ƒ§¤†72·½$8âùv“á47´¾‰:7“±·’Ôb“|åès„ê64ä H€·ƒšÑŒ³µ·…“„‚•J½¥¸½†n72j?=‹¥´9,:‡Ÿiv”4~l‰Œ9 еå4=7d„†h–‚“ =90Åë77ítø€àî82µ¼—ƒ·´ ;ã¹4°¥b&$ž¼´ ž¿¿Š›À€¿¹71eïˆ·Ž´¿³°¸³ôå·†<8 ð€ß•f5™Š`5æôô 39_²³€2=ד‚€<4’µ‚7:0š° $8‡œ <5‚¿ˆæk Q¶·è‚ë°‹4@a Ÿ¿´0ƒ±˜ €¥¥Š5ƒ²oç…¶¸²³‰µŠ…È„µúƽ™<>†ŠÎ”·ç5…Q42IƒïžÚ f3΋P054oå~5<”f:%467i“† 5‘³¶´€=2–µ—Dl•ÄŸ´…Ε‰™僎±Žšœƒƒž•„°¥³Ö¿»²`î°±çëd }†”7=µµ=އï…ÿ51sjjMài >3ù‘“ c44 i{ghᘃež•–Ÿòka‘š~h…Ÿ`“°µí·ƒí‚ˆ…hº¾µŸž³²„•‚˜ˆ±‚îö„éé 6Íã67bj~Öõ }6<  3  ManD a‡p O äÃüŴ´†írŽ…Œ™…•„‹š‡—…³µ‘‹³½µ‚‰·½±žœ·±·‡Tïµ›û„–òã`4[64 á7=† ’zfê7o 5 5je÷xdh }Û6 7 hš€þ–…è’…›€”㎆†„€“ƒµŒ‹Š‰µ°µ€‡€ƒ‰·µ‡‡š„éoa›‘oDpÉNlÕziüåÔej  4~nwÇ  57 5 nY”ÿÈéꟓŸ™ƒŽš„µ‹‚ƒŒ‡ˆŠŠˆŽ‰€‚‚˜€€“›‰µšææ…ŒgK—ï}mâéèbiiÛ_äIð˜cgÉ~dO úò l =4 kÎÉwQ–‡Í킵‡‹‹‹ˆ‰´¶°±µŒŒ´ŠˆŠŽ€ãŸ‰ˆå”›‚Œ—`ûnçt³0îi'ý <3«2$>5‰3?ÞŠ¸`¤ Ž¿?&¤1 %$%%”îá’¹§º¾±º¥ˆ”…?46;$%%$&&'%%94 4|½¹¾§¥££ ¦ ¢¥¡¦»¤Šƒ…f{Ï46%5180;:>;:275Œ°Ž¶±¶„èN†¶¸¸»§§»»¸¸µ‚g40%$' #'$=80 3y6'88;#&<<;6ää⇵‰…œ³¿Mí´ƒ†±¼ˆ¶¾²½°·¶·¶€¿³€àé|   ` õz`mŒ€†°°¼·³º¥¥¹Š°‹€ƒŸ‹´‰‹„ž_ =?$;%&&%?;&%=5 㛂Ÿ„ž—4 aiwX”˜rµ¿„‡¿¿µˆ¶³²°±Œ—iqjñ 6 15= ò‚š·‹¾¾¶¹¥»¿°²°³½¼½šžÄ‘’ó™ç 4 c6hi=?÷6<447%25$!66mPúŒ‚€ƒœA´êm”†·›Š†ê†æuáýí |l fBÚYï~逇Ÿ’†˜–êÒ‰[튊…³°ˆ·›Š‰X@†¼‹’—±±Ž„…‹¶šñ›ç4=06>:%1=0381:%546˜ƒ›’‰¤»¶‰‹·Ž”úlÙ1 7 fÒÛ쇓€†‰·‚€ž„…— žÅ77 a5 e÷ ·€´µˆ¸·¤¸¾¢¹¿»²¤½¶²´·”o>330><<;=%%7 3róašTŽ…œŸ˜òjòde‰€m”gt<10? j ü—ЕVø‚—„á„K—cÉ‹œh„úohëãŸáˆ·‰·Š³¸³·‹½¼¶‹‰¿²è³„ß44<78%4>9=q l‹•郲¼¶·¤ˆ…šŒ‚@6=6=01 4 na ·Òö™m€‡„qƒ„òÙµÌòn’´Ýæâ´šéì›±‹€ˆ¶‰µ½¿µ‰¶¶…ÿà…æ“ ” 7>> 1 46@ší´°ˆ‡»»¿¼³¤¸°½·°‰œh ?:3'&$88&:>=0355˜ÿ톀äöà섙酄p—œÈ“k“M‚ÈäŽì‚µ‰µ·Œ¶°±ˆ´±¶†š‹‰”à´è{éýúÂ4Å3?436nad‘‘àš†çƒˆŽ„ì˜çžäztY  516  70 k ÿiôÁyåA“‘œúì´Š›¶·„…†³Œ€ƒ„Š…ò’ŒàÇ邆~”–â“ì•‚–aëØ†”ŒŒ“™‡ŒwWîycôgÎñ5à jvì `fƒœñ蟆€´¦<‚°b1‚50J „<•1Q{4j÷i ’?\jk| æ~’Ïú¶µ³¾O³¤ºµ³±§¤‹±¥·€´°•øt†J > 4g: <86=;&$:''!'! !'%&$>4ˆ°±‰ƒƒµ±°º¦¡¤¥§¹º¸³¿²²°··‡‰¼¼»¤§¤»¾¶µ¼¼ƒ´±Ž‚—–ffx>>=>'&'&':;&:1614   d膉´´‹Œ³·ˆ‹±½´³³€‰±¶´°¹³¶³¾¸½»¤¥¹¾½Š‰‹Œ†ŽŒŒ„žž„ô5 ahäÚP|äái 574 14532?=<9?0>?=9=8%;%;%'%::<<34 a`nybgúꘆ´Š°±¶±°±¶²²´°±°¼³±³½°···µ´·ˆ‹Š€ƒ€Œ´±¶±³±¶±±·‹ŠŠ‘뙆îÀôqn 515   c 5  bALÙðØgnfgfZoRÒ䛿ɕœžýÌëé똒šé’šèå’éçþîèèÏúôÈ{agiawäæáÿíäê”Îvt} 5454574 lsfb imfWnqüúSÒê———œ…‡‡ƒ‰µ´Š‰´°µŒµ´ˆ‰‰ŠŠ‹ŒŽµ‰‰‚ƒƒ‡‚ƒ†„˜š‘œîï_–‡‘Œ†Ÿ„†„ž˜†™ŸçýÎyo        5 67 5  iLqoôÖEfgpmbÞæø~Òâðñâ’–ã—„„ž‚„àŸŽŒ„‚…Œ…„Œˆ†„Š´‚ƒ´·‰Ž·µŒ†…œ†Ÿûï}{hj      kmrÀAw”ùBç•Þs—d|ÉÃEÍðð”œv͇˜æQ臔—†”ƒžš„ž˜—í‹•š‡ˆ‡ž‘´‹ˆŒ…žƒ‡˜–šž–—•Ëì…•í—þÉž•Ú@øâX|×@h  76 400570264 4 Abwz•“né“”äd‹y´s±à³Š>¥1‚ƒêf¸ƒÛ¹jà^±fŠå›ìyR60´£†Ä5=š¶†3“Ž€½ú‚ï²£§³ƒ‹¥¦¥³±´ˆëi 5<7%1;8!&9:1'&!;>#! & !" %9:%;70  éé´´°½µ¶º £¤¥¦¡­¢¦±²¦¡¦¦¡£¢£¡¤¦¥¤§§§¥½‡‘„ˆƒ€T vÏ 78':8%&!!&'''8>&!;4>'%;8;% &36=>2üç5µY“‰ˆˆˆ„·±ƒ”޳±²¼¿»¹º¤¤¹½¿»¤¸³´±¼¾½°·´œ„в³µ‹Š‚†›é‘ëòèœF 7 50;030 2%8670::=4502=227 7>;?3?>:;=<<8844 ucbìœqm†¶‚üg耂€‘·¿»¹»¿¿¥¥¥º§¡¥¸¤  »¿º§  §ºº £¦¤¿¥§¼µ´²³ˆµ´’â‘—ði‘žk 419?0?8;%;:%9?>9%''>=>8%!#&::'$'&$;><063 57 keÆ_J↴±±¹¸³´´³¸³¶°°¶²²¼¤¤¸¼¸¥º¤§º¶µ³¿´‹³°š‰·ˆ‰µŠ‹··µŽ…”’‡„å}n 5 62631613265664  F~h hzOekü—–’‚·ƒáFï’˜€Œ·Š]žŠ·´‰µˆˆµ…äggÔä…’—‘””ybÓ•€›˜›ñÖa ßfz14c70063<<2 66 jj[I3 åuYàê—~YŸŽ€žƒälpkŽƒ‡ˆ¶°Šµ³»¾¿»»¿µŒƒ‹µ´¶Žˆ¶¼°Š±¶‰µ·‰äo‘“ej–š‘•’ì瀰¶†éŸ„æyzga 507js734 005 6<92 úv 7 516 KïdJ’›„‡‘Êž€œ–±²Œˆšìž”ƒŒC›Žàhþ‹Ë´¶„Û„·‰ž°´…½³›÷–ƒ…Q쇘wa  4747 45 7 N‘ÜjVb7ß 4 6‡™m^žÿ à„‘íµžÇä°¸†µŠâDššï›·ƒcô•é´‘˜æ‘†˜š´¶‡”…Œîu„±³™óâu›âÛœÞdf `Ÿ“nsy›™ýß`5 4  t’áþo~bMšŽ”˜œš™lº¼?´¥9 0„Ié届µ¼‹¸³!³&:80{?x•Œ»¸¥º¥£§’Šî 5074=:>011ópý…‚´¿º¥º¡§ˆ³¤“†ðš“6<0 3$2=•™ƒ±‡±µŠ°±¶´´µ¶†ã€Œ„˜ž„é Nl qaïd‡îÙò  6736 Èv ck]ší‡†–Ž›ûŸŽ‹´³±¿ƒ™~oÜp  3;055–œ”€ŠŒ‡°¹±¿»´³ˆ…æçΑٗ‘èAiseþbj Õš–³˜Ž†ý”—îc’lÞ0721;=6 PTvòàR ÷üíš›œ…ãåoŸzí‚aãv5544 ăÑd…ˆŸ·½¿¶°´·±‹±¼¾¼¥º»´‹€’•Âv563>%';26 uãáäᄉ‰°‰½¶† 50  31<3 ÍÿŠ‚XÙ‚‰‚ƒ‹±„GÌl ßoWó‚ŸÜ›™cE†Ô˜—”5j…„††Œ··²³µ±‰š…Ÿp†æ„€ß‰—fê‘Ù”‡øk7Pî…艒È@án•m010=?55wÒ[7=5 bí„”˜ðŒŒ³¼¸¹µŠQè€˜šŒžš’Q}™• f4< ’½†â‚…·¥³³e¼y±'¶ µ=Zc¶6g›…–äÀG547x j†€„‡ l˜é„5 ` ™±ms’´Œ™·¸‹†‡êcnIôg`1m0907 ;%$:9&:3’Œ…Çw„µµŸq˜Œµž}ïæt¶·±°·±¼¥ºº¼°º§¤´‡Š±±‹¼¤º¹³½½·´‰±·µ½Ž5142 l =< n68 ;/ <:##=092 =?„“5ŒŒ5=ýì 1ƒŸ–ŒŠ…ˆ»¦¶¾§½Óµ³”ŠŸá„›h”‹²`‚°ï˜j㊀Ø‹²·jq‹Œ> 1?1=7787õ2×%$61;838$>0?&$?2038 7˜˜ d²€ã‚Š…b‘µâžŠ—„²´kµ§¥œŸ²¸ˆè²º¶ƒ¼§½³¦­¦½¥£¢¦±¸¡¦¿¿¦§¹º¡¤´°¥§°‚¾¦¥’é½²Ÿq†ƒ…æ6?â81m}? 0> ;52$1?#' $"=4!&60&&<1>%0< "%7;-!=78!%>:%?771 60„›rˆ¿½ƒµ·Š°¿¿±¶¹±‡€¿¥ŠŸ·¥¤°‚ˆ±±¶²¼¿´´°Œ’„±¶–扼¶‘oÌ™šìø—ÝþÚñ˜†’{‘•wd‘êä\“}xp  w1 —€úgCš„ýw”…ýI›ŠƒüPdp™¶µ„´²¶™’µ²Žˆ¿¸´žè„ŽŠ‹ŸêîêšƒÜ TGcÚt qãmA63 1306 733>?26;!'2=':36>':2016 66r4’Æì|HŒŒšƒ€ë“°·“ꆰ·Š½»½‡Ÿ±¥¸²²³·µ½¥¼€€¶½°²¿²ƒÆ„¶³ˆ…–åš´Šô]€œ‡ˆ†ްޗ„‚傳€èŽêiw”1 éì  cÒ20g 5 197 77 4pa ”›Ø–žènt‚‹‡ž‡Q——†äÔíÛe„•no[kì´‚‚—àïF‰éií‡N70œ‘4 ïÉ bíù5 zŒã|G4DÁ 5é“úee “‚”–·Œåë’–OŸŒ€›’Pg“ˆ´œ„°Žüöé—û—„€…‘T”‰µˆÂε¼‹‘熌†€ƒ€Ÿo€ŠŒáàˆˆúmï—íadrú ìÙ ñ‰’–‚‡ïŸ‡ƒìÏ´‚æmC†ˆÈî–bÂ4 cCd øí5”ÑÊ 4æÅj 4’ð…•äØ Ïš–{h“…yã‚õã„ÝŸ”J˜êm‡‡…’cûé…žrï‚›š¶ˆž¶„ú–…‘ffèò᎔±›nm™‰Œ™é脈‰…ƒµ´—j˜î4•‚„fee5013$'2 ã‚°´€‚±³·‰ˆ¼¹ŽOi„va’†ï „Ú•°°µ†îŸ€·µž\4545 >$!9 41>8? O Dë…à4770??5∆•ê™™‰‰÷pé°½•ùÛ[”œ™q—†šš’”—½½˜÷mÕ—Ÿà oÙRЙ´Œ˜—[Pµ¿¼ˆ“™†ˆµ·Šë䳿µ…æa˜¿¥¼˜Y†œç 5~´´îyƒ~40  6 ñ´ˆžó`°¥½‚âóš“‘•ø4œ‰‘N €´…zÝ““†ŠˆÔœ°²â47ŸŸ>$>>8343!&3zS0890€‡c604;=ˆƒB7Ĉ¼µéuÌêì{ 5‚°Ä 튊–kdÝæ‡‚’d€½½“j|‡¶µä qÍ1úˆêaaà‹¸¸´ž…‹‹´°°†]•´¾½€miõ„µ¾³‡g`š†ŽŽaý€·Ž~54⟄È5 cåe4~‘„™5 ùµµÞs÷”„ñ àž…Elà€„~òÿ”€œÞ~äµ´ÿkåQ 0>177523=<7a18=f6=   „5õ”œŒ‚›sà•R”“€±ˆtZ™–œƒ„‘må…˜ï᜛›Ž±î—‡‡ž†bvfhmæš^Ñäþ÷‡·¶ƒä“ŒšŽ·‚‘…·°€—›†”ù…¶¶âC…åà˜•‘ò|”î7  ii äîjhdocуƒ—fNR”’ìã…é_F‚êÄk˜Œ’_Uúˆ±‹–’‰D74471=?6hf 304g Kp†íÅ™µâ`CÂÇ‘Ƕ´†”h›ˆ€”Gî“˜Ž…×°¼ŠVbŸ…œÒ4`äèÔ74o‰°Œ‰Šƒƒãx†´±µ‘Ú‚¾º³’l“ŽŠ·Š‘ù–˜±ˆTë´°cäØ „í >3޶ä míT†·ƒ37O¼¹æ ˜”–Žê5ä¼¹ëÆm5?6J4389 “‡17 5lèÚ = v›À nŒeÝÎŽ‡} ‘¼°‘vh’°³“Sw膖 憄üQƒµš”w·B˜˜’›í”µ°†îÉjmc´¸±쵈‰‚Ô޽±ÁP€¾²Œ¶ž–€Œ„€³¤°4R÷çâ´»¥¥¶ûÝîXpœ´¶³½´œ}4=%$$;aìÿ  aLkyì`pt•†šû••›Pogftý|‘da„‹€Œ´½±šä…µÃ  ñw¼¤±„…µ·g‡°¾°ˆ˜fgàŸ $&6”d5 è›ç nÑ”Žã72³·àgâ·³¶`5f|êò5†ˆj60 Љ³ˆèš‰±·µúbYƒ½ƒW 031ã’—†¸§¾”jhÕ€„ø7z±¥½´•ä–9%=ßúy=:7U‚Ûj˜…y ^•—„ž”·³—Q ñ¶2 äìN 2Œ¤¿ˆ‚˜ì‡º¿†Äš…ì190ƒµžáæž‹¼³ƒ5u“ƒ™”üy傱‚å 5h733 Gs5´‡j bž™’51޽°â‚¶Žþ5–…Qq7=3´´Æ‡¼»¼µêa’µ³‰„›Ü <Üý51’‰‹‰€—šƒ„ëèön›²²’Är06{462?”ì4l„€—æ™áfByÚ•†”꟟ÿp m{•‹°¶˜à†µ·Œ†‰ŒÁäå^ 14らrüƒ¶‰óîž…„Æœ€‚˜aS@š‚‚„n z 2 4┃œ kðÐ}`k‡•`õž€ŠûðpUnvRkhšŽƒ¶³Œ˜“µ†Hà‰Žs bÈúÝ‹°Œ@þÛ@”´¾ŠlðŒ„âl‘’61 î721lœñ džƒ•55 ý„‰•mœê‘Þ䃎Ù06g“ƒ”‹‰‰…àm…½»¾“z놌…lëýåãX]l…Š·Ÿk‚‚ˆŠ„áÂ[P^—ëz 5Z›e 621vš‘l7|™Z14„ˆ 07›°´à œF 0Ÿ‰ƒ4=7\·¼ŽëYóì–Ž¼²²¾ˆB3‚²¶ñQµ°…7޾¾€“²¥‹TåŸ31†‰ó7== t‡Œ  Fa 27j‚ä5×´Žòzn’Œ˜à‡„xsƒ°ƒÒÇygm†’ÆŽ¶Œ45½‰›Ìköµ°†¼¸Š6 …¹º¶‡ñQA’³»²ô›¿¤¿å7=´“ >& !:6 2$%=놕6…¾¥¿—k 0=<7œƒÁ0%;748$'%6í•ê_〴¼´ãÏ„¿¾¶ˆ•ÍdHppeï‹¶ë—ùíÜ 5P‚†——°¾‰œ˜Ž²³»¸²±†´²¹¥¹²€°»¦¤ŒQcà“ý‡Y63wÍ5 œ´mò‚¶‡ˆš›„áòž·‚hl’•äbî†í雃šâæäë‚…Ûììg~‡ŸÇik4608%2 6<<29<× ᜖œµ‚Pab’e 6 61 eÔãbiMŸãä{|ì–›–“‡ YŸkZvenYšåeiž€€‚so{›Ì‘™ê` i…ŠˆÇö¶²¼´JpV´¼¶¹½õGн¾·YvˆµŒ04 ôžÐY„е†cýŠ»¾¶çaîµ·‚€ï\hgŸƒ–hà¶µ™zJš†—‘ÉÎübWŸ‚“‡¶ˆé ~69%< 4;%;6e 614“˜†–Þ†‚ ã´´í70 b‚›l 116›œc1<7Á·Œu45‘ŠžÈχ‘54‚³† q‡´„ÿ`{„ŠŽ’š³ºµšžâ\mš¶ŒšXdM—ƒ†ìhž°¿‹œMà´¸´šà]i‚ƒÖ iƒ´„›ã ²Š†êåcj™·µž𰼄îµ²‹êrhh‡·4é°°™ê 7޵†{á˜b7”ƒž473 2<<244543=7àb7 Sczî„’ü—œSÈ4óï” 7 la ó†ÿc3 œ€ ýÑ‘Øn‡Šš„çb”µ¶µðàú‰°‰Œ”òç¹¾‹€ïRNa‡ƒ‚ÃËæ€…Põéíî‚°ˆäùîœæd€èœãç}”èæú‚¼ˆ–Ÿ€…lH„±¶žgo”‘žçX„Ë…‚íX„´ŽÃà…ËÒƒŒ{` 76Ù”S h  ìê401  5106 ŒŸŸ„ï’›Âq‚ˆ–ê˜05â…úhf441 ^ð Ý7 wà”hE…ëTוˆŠ›‡Œ‰„é—“…ж´¶µ’ìv›ˆ¼³…—‡‘e•“›†‰†”ø?2ྲྀ³µƒ;2f®‚·b$™«12©19¶¼?>nq†¸T¦k¶¤ ¥6,$2=‚õyæ´¥§¤±¸¦¸‡‚Ž23 g6 6%$0 tn”ƒ\æ··ºŠ”³ tçì 7%l4?6<;98==3400ikÒp…€ƒ“ÎÿzbÃíŸ„Š›‚Œ³¾šË•ñ3677áìj…´ƒlš¶½°´·µ·½¥ºº¤£¡»¸¸»½šš˜Œ·g i}š—öšš„{uá——ózꉛà  —ƒŽŠ²§£¡¾¤¥¼·½ ¤º¹¾¿ƒ€—Þu7$'$#" 3>>9:18<=5 4 šà 428–r5oäz℈¸ß€ƒtš¼Š”÷—c 5<3121;! &'&:66<8:01L`áµ´°Ž²†‹¥¦¿¶„šŠ„góêíâoT 7ä›zy Ów}’tp{^•´ˆ±³±‚ƒµ½³´°¥§™¶¸¼Œ‚½ˆŠŠ‹…íÜíî’ùè†K  7 ô–Äø”°·Üƈ´‰ˆŠ±‡Ÿˆˆ„Žì‚‹œ‚‚¶‰çx›š˜‡•îùÑ1= 1?= ;#- :'$%%?2>Ž„°³¼··³Šƒ‚ø_‡[4Øë V–‚Me _5=61 ;;$#&>538> 1`•@M‘‹·‡ƒ‡Š‰¾º·Ê—H‰àf ?=93 864 ìa‘—ë‘iœ´´·ï–›aôeŸæ ? 0=5 =2e 7hfq ýî‰g4Ÿæçmf–v474ô㘠5åâ󔈌´ˆŠpŒÝ‚¶º³v·Ž˜…‰èꎃ™i˜‰?5å€fÿ™넌l“‘ô”Ž¥ºƒÞಿ³†ƒ¶Œ±ŠôXëf›‰67mCjbJ‡íÎbzÅç½¹´j}‚œ”˜‰‰›‚›þï lÿ21wœ0>920 f‘‹½‡l„úy훵à_210÷1<=?71 7nãàònzŠ¿€œŸ™þ±µ½¿•å±´°¾·‘ꟊŽá±°³°´¶‘a´†„„„Ÿ‰‚ŽÅpø…4264;38= %&%93 <3< ™”  ž‹Š´±Œ•‰µµ³´Ž„Mà‚Š´… 4‡…Žcct’±±²¿¸·¼‡kâ÷‡Š“lb…5 à6 ûø  m <>x a`—â“À‘|j™†f éÀ“a›‘†Ÿ•ôú€€ˆ˜ˆ±‹´´‹µ¶¤º¹¹‹€Š¶…„ lg4453150 ðl…çáßh†cx5k 76þmz îŽkHèåKf€³´‰„ëždwjb÷˜p–‰½…‚²·‰°›‰‡¶´“Øù16 u`cb „çæ™rubfQ6 12ûË™B5Ižû|ìxdæ²°‹ˆ²¶dìâŽõbîÅäµ´šŒ½º±é™Ž€……±¼„ˆzR7`Œ 15 “†e…kŸtÒqgé71=j ÷l aíæhY’Ädб‹´¶²±†ïa’ý“èwꌀ±½½ƒœ—’‡Š´µ³¼Œƒææä–Â511br– GÂâ`z4 }a–õ 5364Y”ÏÚ746 ‡Ž‚ƒŸÓö³¾²´öÙéñòB fCœ±¾´‰¶õ^í´±±²¼²‚ëäëœàÄ1 Îàåk 44éÎh560rcn 47lwe{fp›‚ˆ·³µ”Œ´‰¶·œã‘ïl“ìsdÓ—‚ЇЂ†µµŒ‚‡‡Œ‘ë”à–ømnfoài`c5  {cè噌„ƒƒŒŽˆŒ‚ˆˆ‹„“ãxé’–—@a`g󆀛”–‚Œ„‚†‡›™“™„”íÿmbgÙâÔhh    izóáfC•„ƒ…ŽŠš€‰‰€‚Œƒ‰”“çõÛséÚMåt–‘‘“ǘ‡ùJ„Š·¶°¶Û‹Š¹cîw·eŒ÷‚‡%¤>’=„4·=[5áˆuk„vžn—cõdÄ =;17 14437j å~…’’Œ´´¿°¼»¤§¤¡¦¦§¥¤»¤‚±Œ’v~5?:%!//)//,#!':2 gahµ¼°¼¤§¦§¦¦¦¦§¦¦¦§ºº¸»¥»¿½²½¾¾¿±·¶°¶µ‰ŽƒêöbÓ 0>>;%%''$$'''&&&''!!''$'&&''%9?99::?377 ÀžãaKÈ—“’€Žµ½¸¸¹¸º¹¸»»¿µŽˆ´‹€‰´´ŒŽˆ€›‰ˆ‚ƒœè•áOK’„ž”ì•ÈûÇþèÌxÆîçv@zr`Éêã÷h 64 46771?=21=1 llÇ@‘‚†ž†‰Œˆ·°·¶±²½¶·³°°½¼¾³²½¿ºº»¹»º¤¤¤¤º»¾º¥¤¥¿¾¿¿¹¹½¶Žˆ·Šµ›•—lafî^g6731029::%;:;$$&!%$8$'$':''%$%!'%:%:8><<2=3<263<82122<6043 7hdöîàáÿ‡‚ƒŽ‹´°³³¼½¥¾¹¸¤¤¥§¥ §¤¦¤§¥§¦¦¥¸¤§¥¹¾»¿²·³¶‹„µ›î…åd\joltoqbÞpÄÏiòHhØpzÓnOcæ–ü–ú—š—ž‡õé˜eÍÓÕJÍ|Ne`hÍèâMœšázg\   54676  0 4 5 6475 17 634966372?0 1 4 `møñ–††êв·‡‚±°‹Ž²±²°¼º²³¹§¥¥¤  ¹¦ ¦º¿¸½°·¼³°±²±µµ´´„¶²‡Œˆ€šìä`jîàx—’æë€š“·‚‚µˆÃ^ãõiÚ…åcjmo b003363 45 5 â00318>1  J•€]hJå  5nG”áüä‘DkS`ÇÝjz^êò›€——LŸÇ‘SgoïÄRK57Ãfk”‡e…†a‡Êc’‰ŠŸˆ²‹‚‚°¿„·ˆ•VäœÒD…›´WŠ·ˆ”€ŒðþýãÙ߆…‘𱳋ЋŒ…ŒŸä÷þç뇞Ÿïè“„ˆ€€´•éœÖigŸ÷”êä{`O s545bj~ 410    ôQ~eÏz[•åíæ•ê‘‡–à›‚ë 9¶‡…`³0°ÅŸ‡Ž¶é臙µÝ‰â‡çê5u764 emtËhc°µŠŽ€º³³³¸º¦¤º ¡¡¤¹¶³¤»³–´rDæbí :?57=$&'!& &$$%=361ú‰€†œ“´µ·½°¿¸ §¼¸¼¼¼º¤¥¸¹¶´ŽŠ‹”€´€j=?'"!&"#'::92=%&# !'!! ##& $;%80 52204Zot•„ìꚘ––·±½½¼²»§¤­¬­¢¢¬¬¡ ¢££¢¡¢ ¥¥§¤¦¡ §¤¤¦º±´°¾¹³µ´‡ïaWò 438?7 a 6;< 22 52?6jü405 3?7  61=<7N‘´†Ž‡œ“‰…Š·Š‚Œ±¹¥¦¸»¤¤¹Š±¹¤¥¿³¿¹±”³¿½µ±¶“臌†šôK735J7 4%836=>:%':$'!';?8&%: ,#&''''$$:%?2 r ifrfeàhÎ‡Š‹´Ž¶¿Š€´¼¸¸³³¶½¥¿±½º¤»¹³¹¸±Žµ³¸¹²³µ±¹¼¼¾»º¸¿°¼³³·µµ²°±µ‡€‡Ž´·µŠŒ‡œõéëðmu 7551 4556?>>267703=?03= 66 4577 hÝëçûœ“–üækG”éVkœàÈ•’„€žêï”tjgôìàkÂjüñyh4<05 57  l 5}j[fj晚ží”ç÷Òg•\hꆑ‰€ˆ±¶‹ŠŒ‰‰‚‰—˜ˆŠ†µ±´‹¶½¿²²±±¶½¹¶µ½¿··½¹¿±±²¿¼°´‹Ž·³ü‡€™ž†ŽŽ†“ÿë–è`jj 14 10  467 62=0428>27<<1 5134407 60654 úí YoâÇ„RsjÏòdö g†áb—„ŸDßRûŸáx÷„àk€¶‰Ž±±µ¶Œ”‡··…б‚˜´µŽ´°µ…µ–Û€éfhzë`öáZgüóp FÉìâ{’„Lï’îh’™“–’—ú†°´š·±Œ†€ˆ„T…ïïïgŒÉb…”ik@47Ó64  34C ?Ú 5bì•îhi“5øÕca÷ö‘“vê{X÷åèddŸocískjt5 i áeJ[_“—`tûŸ‚áiôŠ´†‚µµ‡˜‰µŒSÓ샑ølièž’çÛòñÁ›…†üKÝù’îäã•’”ƒ‚›††œë…“„´•™ä™·Ž¿³”öùc~‹æSîaQr ‘ô 01 —l5 0?86> ?aŽƒµ²€Š»²µŒƒì5¶±†œ˜u3…„¼ºåž±íˆ¿¿µŽ´™æ³½·±µÄ x=u6 3g10 04Â4fÍ p1x‘ûdMâ>==?7 ·³Šè™àú´»³ŸÜàŠ‹‚…cÍçpâ´¶™Phçüƒµ³³…€„”……ä‘™èscmðbHkÒl 2024mf”lîyp 4 j›ˆ…77 øi cVc„„·±…cá™´¼ˆ‚ˆàMàrÈfjèd’µ€Ÿ‘Èœ‡éˆ³Ž´²¶‚gkíeØ´¶›Ô“…“¶¶‡–73Óò0>?0 z€70=1Àäk20f‚™…ŸŸ„ë›·¼½¼³ŠêghÕ……Ïï…¶±€›’_굂…“ñhãäý…Œ‡…šƒ˜úŸ†yá 6 k| d5 55—ƒê™i74 ~Ófzõ‡µ¼Žƒ‚š¶¿µã”蘙åNɉƒ´„…‰€p“´Œƒ´…PÂTÕ„ƒê…“{ì•hF€”_†Uîh  7  <:<573 iäf1:0e•[ÀÁ“é…šS“‰‡€…ƒ†ƒÔøì€Í´±—–†dl˜è†Ž³¶˜æ^{‘Šƒ´šJîO\„þ𵄀·šèöaÿïý{Z6660 55467ga|684 6gaÏõe`Mµ½˜Šätž†v˜Œyã™àdT³ƒgàfïZV…zj´›ÿbˆ³}…‚ï™üúˆˆÐ‰·jå™ûΘ¿ê–361j 067zêt51 ôbÄŸvÖéöﱂ·‡nHˆ•·“ý‘îêêêä…´‹éýšÔf†ø–Xigr`᜜XÓã}˜ó‰œì•’ðš„…fj gâ411 4   155= c Fúƒ‹°€‡´†Œ²‚ƒ´™œá䆄ހµ´úgŒèðáò\ f`cuƒÙîîa„ëâ…µ—ƒ˜hàúŽ„š²a˜5_îßfä’67w c% 93l0bö TnŸƒ…½×²Š]„šˆ…˜¿‰–°ˆ´µ¤s›õ9º%þ3”Œ%±Á9Ÿ7ˆ´—ãt vèàƒèÝ<ß“0õ”7 }˜¶Œ“‰€¿¶‚Ÿ¹°»º‡€Ÿmæ 488%':, &8%&$&&'&&3=1ÊÈt™„µŠ…Š‚¶½²»¡º¦£¦¦££­¬¬¯£¦¡½¦§¿§º¡ ¥£¡½¥¼´°±¼´šµéŠö‡Ÿå_f3>5:%%;? :!! # ."#-''-%>%9? 67g…†±Žº·Š»¶¶µ´²µ·½˜‡³·½¾º§½º¤½¥¤²¾¸¤¥½¥¼´°Š‹µŠŒ‹œk™YQç 5 3 50=048:<9$;;%$! ""!#,!!&'$%';?:90<<061?135{k~~íóetgî—ìëL‡šÃµ‚‰±Š°·Š¾¶·´½¾±¼°¶¹¶¼¥³º¤¥ ¤§ »º¥º¡¤¥§¾§§¼¤¸¼¤¾¥§±¾²µ°Š·íœw  \ 57 63 =761jf5 046 ?6 ?6=;093 <58 07>3 7I‡•jnŸðôš×ž›Ì•Ïœ€~žˆ˜„“ÞÿƒêƒŸsêÏàcšŸêЉ€€æÞøå†è𛓜ýÌëÉž‘Š·…†™’åêfaI•â”ý苚•õÝ—j@mÓáK˜ngeý†ˆŸš…ƒ`ÌÞnží’„÷䆆⎟„‹–…ó˜bL‡ä‡OøœaíŒéŒéŸc”ðf}âr댋€‹è„…•Úeåú›q4o“ÚÙ  7 ?141 77;8 `ð 3 n@ 7 Ï{oVl 4rèm a뙈´µ´·‡™”æ…ˆ·ˆ˜û‡‡ƒ‹µ¼¹¼³‹‚ˆž’‚޶‚‡‚—âží‚·µ³°¶ö™Iöã„‚éSD’ƒ‚š‚ûlÞeo1 5bUà`X =46 4 9165çêç‡oo™q|™e‰ƒ±³˜Œþ—p’±Ÿƒ„™ž•‰ˆµ°´»½€‰”çŸnš‚ú˜úihÎ~…‡„´„—ëcjBPw_Mj 22>>39?<%''$>?=54 605rè“™†€‡›ŒŒçó‘‚Œ‘“•”–—„µ·Š‹Ž·‰šƒœŸžŽ‰œ—ý€’“‹µµ‰Ž±ˆ‡„ƒƒ‘€›òêð—ƒ”èƒƒŠƒ„ƒè—’Í™ŸgùjCÈ’ölKJõaqdúézèâÊøK•â_ßÐè†Ç`jkv‡’žš‡‡î뙞‘êê·tz‘Šÿ€ˆ€ž%¤6‚ 7‚1”1m‹žŸÞ–`—w{a711c`7655f4ÆõÙä´‹´Šµµ´‚Œ´„†˜“·Àz`Ë 6208?%$:'%8%%>1 ËæsíŸ´Ž€ˆ‹°²¾»»¦¡¦  ¡¤§¤¹²°°·´Š¿¥¤¥¸ºº¸²´‡âvrdvIõ442%$$$$$;8>8?<=346333 417  æ–ž’›ôþ“µ´´‚µ¶µ·¾¥¹½½»º¥¸½¼³±µ·‰äÕØm 67Cçvdæ’™–St46100375554 13>>2>:37=<27  411 kÌNj  hæš——’ƒ±Ž´³¼½¼¾¸¥¤¿¹º¹¿°¶´ˆ²º¹ºº§­¬¬¯¯­£    ¦¸º¥º¤¾¿¼°¿¸º¥°µ±‹‚‡_@y”–`H 67320<>8$$'$9$! #':%%&'%%$%%>:$%:99$'$%<2?>%;>998<<8;:;?===3 s÷’‚Š´´´´·ˆ„µ²²¼¼¼½³±µ°¿½½¶··°³¶‹´¶±½³´µŠ´ŽŽ·±·Œ€€Ž‡àJÍÚž•Á  6SáGalhwדêÖ–æò`bÿfÅ‘„çÆ–™Ž…™Ž‰ŒŒŠ´†…„šŠ´‹Š…‚‚…™ƒƒ·X‚‡€•~ŠžœŽ†çeÌtmëp1340 5603 4<8<77=>3='%4=%0=<>??306< ]  ?5‡µF6……v÷½±‘’‡…øb³¼±Áö´²‰€¶±‡N•…ëê–ñê—ülb“‰‡Øƒˆ•acœpz›‰µ´Ž™”вކ±¿½†Å…p膈·´Š„üî…µ‹’ˆ±Š™x|ž‘Ÿ†„úkŸ˜hÈ€’À57gmÿS 4ñ‘“ŸJ6è…›•à ûƒ†Ã˜šd Hïç Wý{WÁ  76ðŸä 6CÀׇu1 6í†730 D‡‚‡ò47zD‚Š‘mŒ´·°·„iwO††Ê 101 Ꮅˆëp“µ²¥¦½˜{åîൾº²œ{⇔w‡‰d³¼»¥¸ŠLbqmi÷„íù‡”Óy‹³°´‡Í 337mƒïr–ƒ²¾±– 15 ä¶¶‹žâíG—Ÿî€g ?:9:;33<8';$#'$=<4Ò2%:%%24=:&90Òá°¶•2677`â`<86^•—„´…ág™•šŒ¶¹¹¶–yåï“ç–Œ·†òoøâè²¹¶ûV‡€µ¼·ˆ‚Eüg›³·¼¸¸¼›wù³·Š·øœ—‘„†³Žš‡œ‡á’ŠŠ„´€ž˜‚žµŠ€•ï·‰“n”•ñŽ€¶‹‰µ”Çkl÷ƒŒµ·a…tCjëO}êëÝådcÜq 5 4:;883>;%! '>4 500 =43? 4 7 r†˜p7~”†  øgŘácÖÞ”š‡…owè…‹‘›‡bkš´ƒ’Õ`Pú„Œ˜á˜œéËo•“œƒŒ·‰äØßë„¶º°†í›ž™…‹˜””™€ëÊ›…š–ƒÓ‡†”È혜‡°³€–—‘ë±½”ç›Øà‡€†ƒ‰„ðN†¼±€ì”€ƒ…”…€šï|qÅAœîbhgMèý73754lV5<>9;<<<>8628$'>2>< 7><3 57 †œäu……’ðjV—ñ™W4’€œ’‡Ÿ†Ù~È•Š…›ç∞™mf‡œ“r✄“aî…Õöƒ³Š‡Nå•Èj†ˆ‹…Çw†ž’êNˆ€˜bÑžƒ`á…uèŒÑríµŽˆÆÀ……—ü‡²¿šk‡œddгˆûÌœ€…•„°¹´Ô{…³³ˆé›¿³YV‚´ŠÑo„³°†cm„€å è´Šç nc14Òˆî786792` & 97 2$82$'6>%`l <4G 23€E5 ÔA3œŠŒ 5cZŒ²‡6j…x‘·‹|4vš…ed´šTŸœ“Œµ¶õn†Œóƒ¹¾ŒllᙟƎ²°‚|쟞å³Œa†ád€‚Êo—™„îQÆëŒ·Ž‘éâ’èí·µêðÍ—èåꄎ°½€áÐò‡‡‹²²°†•—™…†…Œ±´––é……ÿ€€‡åÑávj c„F401e 430892347>!":6æJj% 'º4h0&›¡9©$%;–·80”²¾ ã»4弿;<¤% %;—x¶»°¾¾¹§¿‚–Ž3= 0:176<>6ìaÿ•´ˆ·ˆ¹¢¡¤¥¦¸¡¢´‰Œ³¼ï6%8y>36339= Kž²¶‚޳¤¡¦¥§£¬­­¢­­¡§¤¡ ¥½€´¶¼µ—hü783778$$?0$&%3 47 MzAƒ”6þ=>=7=>:? 2%:? 5%? :?069?7==$'277;:7 鋳·´›±»»°·¹¤±„‡Œ½¶™~n~ä01j == i5=6’Í…ŸN‡°²‹š„³¾·šŽ±¶´‡·±š›´±³¿ˆ…¶¾¹µ‡‚éZ71  =<2 Î…ƒ‹´¼»»¤¤¡­£  ££¡¦»»³°¶´··†ëühí•  479678?32>>4 4=9< 050 775mé`”‚ôî…Ÿ…jñp n 3<2?=?6 67047ð™qjï…ê…‡€™•†Ÿ‡œé†‰³€‹‹Ž™‡µ°·Žˆïh`B} 53?9=4 ˜á‹°·´³‚ˆŠ¾°¶–ƒ’“š|pŠŽ’ü†ïŸ™ïž³°‚Ÿ´¶ëü‘·µ‰œ`í ÐùØ ú™ýìˈ»º¥±½¥¿¤¿¶¿º¤º„„€ƒ™ 79'$:'# &%88 '%00=91dæ ýG mƒK 574Fä = ` mè‹ênýä´”PÞ‚±ˆhb 7œ70427‡ñylˆŒ€žŸ°¸¥²‚µ¿¾´€–µµŠ€Èð7?l<5l2m‘„„šè·±—†¶±¸°ƒ“Ž‹ƒ\u€ŠžÕ Ý“J\‘ˆ…‚¼¢¿¿´±¾¼‰¶¶¤°‰…—Ž–ÅjŽ‹   zŸ™}íÌßc}†²ˆï>4472$$;9&#!%462%%?317z†–†™ŠŠ…€·¼¸·þpOã4  723?<9%?7icgæÒÜñƒŒ·‹²´€†‚™ƒ°±µÑáùbx•Žµéš˜™Ž·´ŠŠ°°±½‡P⌊èG4|ÕãÕDd•´·›Ÿ‘œ”’ûš†€—˜±¶„—š˜·¼²‹ƒ‘´Ù…€šœBе†a}šŒ€½Š‚˜Œ}ˆ„`Pí^ 5h‘Ä 5433348%276<:%5Ð 337b414 h’äì´„Ô7 13520˜i ÿœoa’‹´å⛋¾µ’µ¾¼°å—´˜Ñç†W0cÙ57ûŒ„möóÅ`†Žƒ@N„³µ›‡ˆ½‹‚“š†åvŒ–K І–‚š|b—Üe¶Ž±¹º¤§±¤¢¤¤º±°·Ž°º°‹ÏàueùØ  11=6Mž˜˜ôo‘j4=<819'8##' !-&<%2  3e•‘ãÙ55 =4 È5 ‘›F~…ìë„iˆ™Ç‡áž„b ÷jioTH–‚‚·¿‚Œƒöiž±‚˜“Ú’ìœêŠ´´±¼»³·´X‰‹‚æmy ò‡´·¶·µŒ´¸º¥¥·‰¶Œ™„›‰Œ–ôsdh5ãǓȓ…’Iƒ²²¶´‡´‰‘燱‹‡€‰„€–eXíµ„CH5 f 61114`ÈZ 521 =26 58$<0M@4 ~î”×ÝßX 5h†4%=7 27 754ðóàƒ^ ’‰‡`ôúé˜~æ³³šä„ƒ q˜‰êbè} ’·´‘“„Ûˆ³±µ•…އ“ÝÓŒ°°’ãšoÈš´¶µ‰“Ž‹†YJг¾±ƒìøÿåaW„æpIðøÑô‰½³„…›žƒ´µœŸ—o“†´‰wöÁ  7<À—†•ÿÿk  09<07040<ex nu…†›pi zóF0 137lL÷ `ŸçÆ}[ŠúÊ‘†FÁ‚ƒƒýåëmÖ™’à’‰Åçhœ뛎€“—ƒš•ø€µŠá´ˆ“˜˜›œ‘†µƒœ™‡„“µ´ƒ€¼Œ‘’œŠ¶€™‡ƒxƒµ‰…‹—Á䃔tšš™ÿo—•`q…ï—´ý]„Y“älpbÖ‡~œƒ ãÍÐd 5x1a;> 3? 526720ô h1‘ Ñì÷•W ãê41ã4  Á“m‰††dÿ•šÓ””J[““S—‰Íæê…•᜛Ÿíí…N‡´‚ãá‹´èšµŠ‚µ‡››C•‹´Ÿâ—‹Ž“„ŽŠ„…µ†„ŒŒÿ†´Ž—…ŽŒ˜š‚‚…€ˆ‡Ÿè•”{ì›äbYÿûö~TüÉÖ—þqcìÈlOjcÿKvljd\ l 5  755Ogi ræbg süõEqá›–ÏúeØá’‡›’šë›³¿‘‘†€‡›µ·œèœ‡}àîàDÖ–„–œ–žúŸ……”—B…™Aà–ëçó™›™“ú˜Œ„™‡„›ï†˜„ć‡ƒ´ŠŠ·±·‚°¼¶Œ†‰™—˜‡’eØ›H}è…Öå–„ë|’ÁJavXæGî 11569%9<2:?1 71 6 4 61626 53>33==0045 67  5|â“–‡µµˆ€‡‡–“‡—Òý•†‘Éå™…——“€›†ž„„†™žµµŒ€€ŒŒŸŸƒµ·¶²¾»»¿¸¹°³²²²·‹µµ‰Œ´´·Š´½¶€™†ƒˆ´‰Œ„…Œ€žµ·´·¶¶ë›„“íìùwFàÌýËÙojkIsea  j 63=2>$$8<==3 4 54  cc 5461012375 ôäcjèëüÌ•êÅH–îä“›††šê{ËŸ”ÔeoñZmý™“µˆ€†€›í—óoÙ—š„…„Š°·¶½¹º¹²½½°µ‰ƒš˜ƒ„Ÿ„‚›„І„ˆ›ø—†˜—œƒŒƒŽ€šˆ‰™„•ÎNÅýviÖÜ|jyóØiæ•ÈeGWJ|45611663?263205 bki    4 n|b_}âàà‡š™„”„ƒ‡Ÿ˜äó솇ùþ꜔ôbÄê]sCÀwfÏïÒæ™‹Š†…ж¶±³¾¿²·´··±¶±±´ŠŠ‰ž›‡‚…„…éâÉ_둘”㚘—•„‚•’޵€…•š†œà›€žQgæÒefØœá`il{g`ô×ÏVg 4613>?02<8=5633 77biËKuèïm{`C`o4aojêfs„žšâ鎄ƒš„Ÿý‡è“ò”ù––J—ê}fߨoäjaJ}ï’›ž™’’ˆ·³°²°±½³ŠŽ±¿·‹‹±°ŒžŽƒ‚倂™ž–“—cö›š–”€‚—Ožƒúꛑ㜃€‡˜åžïôïíê÷QÄÈÔQq1555=372>:>6=05 22 ÐRa~õaigú\ÃP nkpbiwmmÖfsuóÆ“óŸï˜‡ôï„…êí˜ê“–™”ÚÞšžê”Õ~Üînäa”L}“”jꌱ°†”¼¿·“󔎂–ޱ·›–˜‹šRsüçÄrÇÒøáî…’€ão€‚âaü”VbP…–`K‘‚œ€……‚¶³µ€‡‡‡žñçžãjoWl 11639:$':<726΀…ê…Žƒœô401459fÛNÃd 63<<:366œ™š‰´º§¿¾³²¶™“ïäüœš€…ÇÉcNœš€÷äéû301=9> 526@™Î…‡’äïŠ‹Ž±³¤§£¡¥¤¤º¦º§¦¶·Ž°Ž{„ž••‡½‰™ƒˆ¼‚ƒ·˜ô—šé“îµ²†‹´±ž´¼†Åíc Dþtg÷„„´’‰ 2<522<<61:54<%'%&;<:<=0>>rwƒ’–ðõ44  Óoj•ng 94_—où –êÿ›þ‡ˆâdqˆ‚›‰š‚ˆŽkç’û„Ê06nJÊ”ÿjÞ³´±¸¼±¼¦¥°°±·ŽŠ˜a€·‰²Œ‡¶½ƒŠŒ“‘jriéꈈþn±½±³’åüyåž}‹´äQ–¶àk½°•‚ ò–mqÚÈ3ê77%#046;6<= 1LÛxQIŒËñ€“Jrëkj2 \|`j cmw[gh„Ølš‹dháæëŸŒ‹ÄŽÛ‡‡ ù54333n 0j›„dŒ¶ƒ€¸ŠŒ²¥»µ³¶ˆ¼º»·°¼¶‚¾‹â„ˆ‚ýg’œ‘›Ó†î†Žá`ʂ腊·‚‚–›°±ZnŸÿb„ç—Ÿ•Âa5“ë 5>0a >149·j3î3Ó†ˆ†ê_½µó…µ˜’½šü·ÅúŸå÷ <0G7ê $5ÿ|7€ãgÒ“|´±ˆ¾¸“²¼µ° »‰¾»š‚½±Ž·¸Ô™‡‘ƵµÍlƒÝ‘}´‚”̘ïT€µœx‚µ[˜ŒL‚´„Æ‘•€dA  03 68=3 524 Óç“c›á”ãw^”Fü÷ÿj—bÝ tà 6i s ûmÛeæÊÄ–´’xèŒìÄpˆ€õ’—xbàp”úgxc7e ôAL†•‚…jœ³ƒè²·ƒ½¼Žº¸œ¥º‘€§ºœñ±°ž·³—‡¼ŸÞ¤¥2%¦´“ì6Œ´‹½=ºa%²'±0 µ ]fí5€é P”……þŸ„ 5—6Ko35{}˜m0”hÖ|áï‘5 ‡›€ƒ²Ž‚ˆö 66!'##,$ ù„·Ž±¼Žƒ…äf  i 4³¹»§¤¾¾³´³¿»º¸§¹¾½ƒŸ`3•à†µ‰€œŽ‘âÒyõ3 6?:; !%0>9 371>3:;78%70$"'&," $9b²¾‰µ¹³¿¼»¾³¥³‰ˆŽ‡°½Ž÷´±Š¿£­£¡ ¤½²½»¦¡º‰¶¤½µ½ŠìèãÖ‡úƒ‚b›·ò`744<03%;103Ç46?7476011>;;?9:8;$;4c˜‹€ý†šäVea 4C—·¶‰¶½´…‹´·ˆµ¼´„µ°Š´‰žÖ›‡˜€±¤¥´±º¦¥»¥¿·³³‰™œ•í¶–´½´Ž°ŠÄ–›óÿ r07 14493  5[ 5 ?642>89&%=?<2 Æ5 64 ä04 fcŸ“Š·»°žŽ‹´˜˜‚’¶±°±²£¤‚ˆ·¶··¼Œ‰ê€ˆŸò™¿³yíƒê‹††U“µµš‡°½ÿâáG` =7C ™´ð fÊhynj 7X11 605 76 gm…‘`fçÍHã“ëmd–›ŸŸ…‚‹Ïœ€‘Ò•…–ÁçûzÔ™œ…‡žü‘„öèšàN’›“Í„ƒ†‡Î{cm75 15ahs 441=4 754560=33;07 I]~åèâ•âòа±…惱²¶Ž·¿°‹š‚ƒ·°¿°µµ±±½²²»º¸°µ·€Ž³¥º¶‚Ž´²²‡µ³ŠÚsgcÿ›ƒâ–á×ć÷œ… [=?4=  ;%$'<45363%8 24g}676jù 3–X æù  zçæ‘™éœ‹‚’µ³°“\€¶Œ‚´³Œ|p‡¶ƒ˜‰°‹l]–š˜·¶˜ÿ·¼™‘·½V„ÈPž‡6 ›ãè ?35 4|;%4w Àì >3 ø11Jg`‘‡6–•툵•b„¼ŠžŽ¿¼àgƒ·Š€µ³´Ÿjx‚³‡”ƒµ…ñ…Ÿü‡´Žf š´žå”‚è57ã`Ô„ü3 oùÞ›j20Ù á…R 5†Þ“‰þ“—sûš•e nŒŒvtŸaŸ”ß쇆õ 4úµ‰ç—ƒ™daýä瘞 ôŸ’U•…‘i샛üœ‚ž|h‘ƒŸåëJÃåÿ™†àgz›‚ABFmhihï›òpfS…èjcáàj û‡U÷TÌñÓ”‡´ŠŒ†††ˆ³¼‰€„Ÿ…ÓMVüŸž”ÓÌÞŸŒŠµ›Kh639>7 55 3$$:?9'> 1<3fÑŽŠœcc“ë 25 3?ê n´¼µ„·º¸„Õ‡±…„·—鎤¥ƒ„¼¦²—‘±¸†^ˆœ4bµÍ7µ¥¶‘…¾¾˜ÊŒ³ƒ6Â=&<}™”‹—Iî?2>$3wv22w`Ÿâ[—…’1 ö17x†ƒ…‚·‹æô€·†Aoâüù„·°±‹‰±‹è’Œ°µ‘vÄày{é–Uå˜ü¼‹˜š€„”2?7 5pƒ†~  5<20337Rþ”ˆ†õ—æbylb—€µ²±‹‡“çš´Ž”’æâ‡¶¼½ŠŽ‚™êä’·°–îDi†ƒØlUøÑßý‚²±›”5< ?91466˜’\i7907>>3?;2Ø`qò…î޳m14üüÝðœ€Á»¸·Ÿwõ…†’›‡’𽤼ƒ—ƒ–”€Ž„“„‡ï 3dŠ·…Ò…€îŸ¶³´ƒ“ %>_7  4j’œìxã•8$1b6?0392OÊTœ±µw ˜·› 4üéì—µ¼Žð…¾¸‹…›}烑±·›‚¸²†ïydš™|ø‡…t2 …·Ž˜”“÷òžˆêæË7%$0Ö7 c2'%6m167 s”…‰Ž„˜±‚áflÐ㋱±³¶åËŸ²¾µžàãáê•¶¶¶µŒ–„¿³ƒù}ÏÕzß™€‡‡èð ޳ЅâûÁiûýx 58; aÉ770 4?'? n 4ažˆƒ‡”tE˜’ãÒxêš·µ´¶‰â–ƒŠŠžžþFÅî·Š„÷XŽ‹‡†˜tE÷ƒƒ†ì뀵‰Œ‰íbyvòæ• 35j 77 i×720TóŸŠ‹–t˜‡ëž˜ýa~Ìà†±½Š}çŒê“€•eÜðY͇µ‚Ÿxn–ˆŒí˜–ñoÂi÷µŠ“Øê´›†åÓnoe„}4  5765bn72gfäNeœµ‡ìS‚€â”›ž„î᜵±ƒÁa™‡žëøíæé’ìbìñj—€žìdé䔜étdÀ˜‹€å쀋‡ìtùL“øiOâ lÇ70 2>2Èæ™ 8=²°‹OUc]úìf†h ˜“œv~mIä _êµ ˆƒˆ™7p䄜M‚†±‚zx‡†µ´œõfiëNù<4蘔“±‡‰€”‡±¿‚†kf·²±Œ–E†‹Ž¼¹€…7'';ÿ}5=;8:>%4n™ŒëèÒåD‹´‚¶µƒí7 P‰œžïˆðâ¿»¾ýLÿ %95áê78015 ÎžŠ€û†ÿÌй½ˆj刈„Ä•ž†èB›‘ƒ°²º†j s2bå7596ïšœ…—”fÇ”µ·˜buꆑBTBîäú„·°¸¶›66757 5bgI•€ŽãËjŸ‹€™‘”j’œkY„…™Qà—…·¼¿¼µ•Þ ? hÐ765r؈o†ƒˆ`Ɇì‡ug–™°ƒa1 uæ‡Ìäúå´·º·‚øv~701546 â„™š˜êÅaAꇖቴŠî5Ȟ‚†³½²úÉù×È 3`5? ç’þ”†…˜TdG}äVyS†‘‚‹·ƒ‘bh“ƒ‘ⵕýbàz68> 5<05wž„œ—”’‚™dmUËý“ŒŠƒž‡ìvœ·€†šŽƒ€ësbás=?1 750ÚŒ‰ƒç‡ˆµêcÏðH‹°‰šé퇇–ññ›‡±¶‹’É’ƒÿÝ512>15 d’gœŠµ‡Œ536œƒvkíæ‘ŽŒ’à—¶·–j‚¶²€â€s5469%3nzžÿxÞ½¾³ùtO=2섌‡åÍìLmá·½±¶‰oc„µ·’ ä‘ 672%<4u€eÕû˜±¶“ gËiž•ØôíZcQº¢¼‚Œ—àÉîÛ48ã>;  åµê1=}µš ô„üÖµƒŒ»µiœ°·‚ˆ²‹D€²‚—ƒi170= A38ë4’– j›â—Ž“|舚„´œŠ•`žŸÆõ…‚qJ…ŽŸrîz@ቇ`T‹ækf`VÅçj p÷Õót÷ᓌ´µ‘â°¹¸¶‹´Š½º¥°±¼¿º¸µT`—4Øžã69>%''9>%<  0:%';%'8‰ƒ„€Ž†è•–šK39= ꓱ¦¡¼ˆ‹·µíÁŒ€žµ¹½„⊲´àS‘…䎺¥‹–¶¥¿„€¼¿ŠƒŠµ3™÷5 …˜µ°—0;1$%6?’93È—=67—´ã4 µˆh _ƒå >I%?çù7é¶µš†º¹€bƒ²ŒµŠY™½ ™¶ƒK•²´™Z´»·üY°¹Žg—Šâ ëO60œ·™S’314:2f2 0ä™1äÎÌ\ƒÂok4=>ê嘷²¶µš˜…ƒŽûꌞýýgá”ïÿhB„–›‡‡„„ƒ¶Š€åš³´”ZìïZdŒo47Âü45 02 ÷]5gcXëafÌJB 067gÅ´±¶…‰‡”ž·½ôFбMf—VdŽþ ¶Ð䈊ær¶‹…޶±‘—ƒ°ùƒßÎáÌê’6 pí57m=6b{ ”íe mF4”Ô ð•676mþ ?m±ˆ`¶Žögµ¸·o´¸Œæ„Œ~ É·‚ 7`Ž˜@àŽ†îã’µž—µ´Œˆ·žùðŽ¼·pûšìÙ˜ì ùÙ3œ30~ 6[é4ñà =Gk 6 ÀçœÔÓî瓽²…˜²´žæ‚œü삆…µ„i퉞†³‚Õÿ‚•š±¼ä…´±Œ˜ûƒ„è’Œ„@õ†â4 O a”55g|ks 7 ê%?Îÿ 440 pö “‰În™‰€ÓÈ„–€´´èK´™æT†‡k퀴济–‘‚†²±·ËRŒ´€` ™…~gòu{eeþžl î\5>4 0  ÃwvOâ„Õêƒéì·‰n›‹˜Â똄‡ûp•‹³™û°½‡z섉¶±ž™¸½Ö à‹‹êΗñan•ž¶><‘Žü1 gzÏc?0Sš? @4=40$‰‡>$Ÿö _€oÆ€Ä4~°°äòì–—ã²³\ ï´ˆœ‡µ…•‚Vˆ¹´¶»Šƒ†š‰€ʉ¶ö@ކH” ”÷匱 #;ò¯iaå •­=7®0094…<7´ºf»´¥6!°2'=:D7=Uòž²¤§·ã³¥‹Ae001>%9 4;91æ™™“„°¤§¤¸°¹§¦³º£¼´‹€°‘æ”233109&?;&!'!&9'! %0>=7‡´¼ŠšŒµŽ´Šµ°µŠ›‚…†™hLiab 11oàf•‘á‘›‰·Œˆ³§£££¦¥½µ´¿µ¶°‘‘·ŠµŠ†™›ã{˜ÒS 4  4 2?%90>=9%%%31=84 22ê„†šœ„¼¼±Œ´±Š¶¿¾³Žâõ„—þ160 s=5×…–ƒú‰¾¾±Šˆ‡“‚¶Žš‰„’š·´½¶†ã„„µ¼ˆŸ·‹œöµ™ :$%5?!!:!- %93$$'!:‚„‡Œ¼»¹»»ƒˆ¼§¥°Ž°´éÍƒŠšœ Üšëwn5•çm476øsm𿙓ˆŸègå¶¶¶·¶²µ„‰±¶¹°ˆ”…Š€‡ƒÿ{k = 5 ! 9 :;93=';;76 570GœðfåæŸ›µ±„凙°Ž‚¹·‹…´¼¼¼¸§½¶Ž²¾µ±÷=2615 10nÖ´––‡´K´»Œ–‘·°šžœžæ ä 3 êa ”}93~Ë119;2>< 7:=lèÙž‰²±±¿£ £§» ¡§§¤ººŠ·Š}a’ž>0$0 >5 q뇲“‘žƒ“„‡~泋 Äö743 9 |38|âc41CqÛMl}„´êÔâ‰yb}0=Òù1<†Œ‰´²±¶¶¾¤¸³³¹¦¤Šˆ¶°½…éz…‡ã 6i‘0?66<Ùw4 „µæ]×ó‹´ôäê™…v=24 3:$ 18$ík75ý‚Ž…ˆ‚³½µ‘±º•d„¶Œæxû‡ny†Ÿ7nš‘A_îµ±ˆá˜»º±›±¸½šàòƒ€o bl>25d3:>145=Äæ–°´™‡€µ³²¶”†‰‰j1 0!%>:8>9%>4 38 émô‡Šˆ¿‚³¸»¾‹‰¤§·Š´óƒŽš—< ší5ôvñƒëÿ™Œ±„í´»½†‚´´Ž±±ÉVã‡×0u@=95$>0%50>0Ôø  fdNU~õñ•aÇŽŠ—‰€nÖ™…\陎´ÑÑŠµÉŸŠ—µ„ȵ‹±‹iƒ‚Ž—OŽ€çãóеD“Æ6›j = Lõ747g4`QI Ä›ëîd÷kÓyN:4bg5:5k 0  `hûk†m…˜½´€ç´¹¼Ž÷޽»²QžÒŸ’êc 1ÿœ661WaêÍúì‚r…´±‚™€·“‚v™Œ… s„boŸ´±` „½ŸŸ¾½»´–‰ë˜8:< µ‹ 7182<=6k†gÍ3€¶·o걤¼mF„œ‹¹»¥°½¸º§¶g;: 7=1d‰Ü7'%1$3191dîa“”üwtŽ·±ì¹°” {€›†“„Œ¤¹¿²–†ˆº`%=55 ‡Œ ;-; 6 4ìð•àÀ{’‡•”·°ê½¥¼…]zðŠµ•‹¼¶ïC‹}0< 6lŽJ>!=ãyfðu„··‡зuäêš°‡±¶°ê1<Þ÷ ³·˜‘–‡ 5 :šVñ›u  Tæß›ž•°ˆ’ëeqƒ‡žq€±´í51„„…‡„ä0ü‚µìÿp 4é÷›ç–ë`‘´Ÿ–†µlÇ5µ²‰’ìåççàB“œ7 ’d3„´ˆÊŸü6넞h†—똊·– Ob¶Œé‡ƒ…„“þ iê‘ríïb67ô×Jpil‘†— ‡™옌‘…‰Åüi4õ5Ž´±µ™•f퇅Ÿÿžuj77òž …¶ç=Œˆ…edC„·ì6wŒ× 6“똅ñš‡ŒŸv‹·í„€‡j 6Ö‘70Xïa†éjFžhá‡eŒ³” ›‹ñ 6—‰‡—¶µüî´´í”ñcñ77îî›Ç‡Žjs”’åæ–’}ôùf4ajˆ‹æ`‚°°‹‚™É|瘞 ZF ì•„€†kˆµ•hÛò…ÿ|”µµ‰‹€‡íÕpú„á| 55 k‡Žƒê噇èo–„™™‡ˆŽŠ‡íÚøŸ•üry_6  càŒ‡’’ƒ~ubjx 䓚ç´ŠŠð…Ž•jmrËÉä Ù•œìn–ž˜Ô^5 íæÑáëï…µµ¶Œˆ‹·€ûSΖãà•J   }î›~|˜€ä m•èê—‚‚´¶Š„›ƒŒÁqbâ–„Ÿõba ia›çÁ\jhlqDo 5ÖdCú÷𶱂‡‚‰µƒ„—åacë’“grïm  |æÂvåã_Üwqúð hN@õ늶µ‰Š´µ˜gõì xèÂäZrŸ†š@477oq·v hŸf‚k³cƒ ·”:±'4µ °1†Šb`ІžæŸlnš’ác„–ƒga‘œàh5 ba™‘’æ Ú›—†ÊÏœ´·½²¹¸º¸±½û†71;435 jtç116777 `yÒ ~þƒ´¹§¡¢­¢ ¦§³µŽŒˆŽ¶¼»¥¡¡¡¡¡»±ŠŒ\=$&" #" &%$?763<110<9:%:;:;9>:::%$$'$834aœŽŒ‡€ŽŒŠµŠ‹‚´³²½¾¸¹¥¦¦¹±·µµ´·¶²¼¼¹¤¡¦¦§¥»¼³·‰µ··¶Šˆ´°µƒƒ„îg 4<><<=00=<65411604001646  7419'&$%?301 dic[` DÂZbli]ášµ±³½³´´²½·‹µ¶´¶³¿¹¸º¤¦¦¤¥¥¸²²¿¶‰‹µ¶··³¼³¶³²±·µŠŠ…˜›’ž…ÿwG 06631677 56 0><2==33<21771?;:%''%:$%>364  iFNÑ–‰Ž€ƒ€îš™EoBæí‘„ƒˆˆ·²²³¼¸½°¾¸²·²¹¸¾¿¾¼³¶Š‰Œ‡–Ÿ–…Œ‰Š·´Ž˜†Ží—äRÑäS|ÜÖýÝo 3740?244 m  jtqøÛ hvf÷—›†€ƒŒ€†™´µ€š˜—éáõrcdFñúýœŸŸ€Ž˜š‡„‡œïê‘Ìßóÿsoq 441<445  557004  5   OòÌ•€†ƒµ·´·°±¶³¿¼²°±±±²³±¶‹Š·°·Š¶±¶°¾¿¶¶½¼½¿¹¾¾½±´°·Šµˆ˜ál z~ayÀanzl 5 6102=206<37076??<=883767 467 v‡™–‡€žõüÉjIàà´‹‰¾±±†…Œéœ€‚‹°´Ž±¶§°°¥½¶èòoæ”ï·°´žyçn{ 6H `532$%<=2034 rd‡ç| 7záåîGµ·Žãùšnù’›³¹²ˆƒ€¹¿°¤¥»¶Šá“†–œŠµž f‡o‘‚“ò r]l‘“s 4oé`”` :> 4 Ç‘a ÞoÅ„Òh cJ‘„ÄøS–š’…ûj55deú›ŽEcàꃘ‚´úwᙋ‚·½¿·èë傆…‡ï •ð‘“´Ž”Îmƒ¦%²447È:¾jÝ·”ï?°á„†æe9h d}Gæ’>1; 0%>14ŒгЙ¶Š°¡¯¡­¬ ¥»§¹¤ ¡¢¹¤üq7 3v0?4;&. #$:37%'! # -%4$948%$376çvZÆò“•ˆ§ ¤¦¦¥¹¸º¥¦§¡º¼´„ƒ€ˆŠ²¥²µufÍgŸ…A445n…” 0%$<77 3'#';89 p5  •†´¶€èíl󀋇€ô•˜–±¾¾³´„•ø’‰´²¸¼´±Ÿ¼º¥¥¡£º°ˆ€™„·´…lú’d‚´‚æ„ï4 gGèŸT 5ô”‡E207445?'&%>34 ?%?5  1&!$<12201883k 14çž…±¼°´´Š‰³¿¹§¦º½³´¶¼¾¦ £­¡¦§º¾¥ ¢¢­¡¦¤²°¥¥»§¦ §²³µ‚€Š¶°Ëÿ20 5Ü70:9<=1 =8;#-&&!;<9%#!,. !&$;%&& "!$$'7 4=024~ãèd{t46iË—±¶·ƒŽ„‘´´°¸§¤¾¸¼ˆ±¤¦¤¡ ¡¦§¤²¿¤º¤§¦¥²±„鉶‡†¿¶µµ‹\ëž†ŽŒž—e 5g50>9<24 399%&:=9315436mB~ ƒàö—‘FmãÌ—€ˆŠ˜˜ŒŠº¹°¹²±±½Š±½¾·Œ´úî[}ˆ‹D•™‘Êlžìeóê“F÷ù n5 147<3<313321<'8<3?9128: 1<5 ~6—5hgïžΟ–𘰹¿‚±º¾³º¡¿±¦¤³¿¤¥¼¥¸‹¾»ˆ…°½ƒ€³¼‹‰±Š‚މ´°‰ƒˆç‘rà—` û=2=44017 4l4 43 4=6RT˃Œ…™Œ„ÎõƒŒ‡‡‰¶˜•úöÊQ•úR|v—}雓…Œƒý…™ôäší“›LyÛëÃj_í }kõ™ybx×”ñw–œOKðÅoÍ  `ÜcžâzïÒⓆŒíŽêž‡çOÐp€œgÈjöè—f†ve’•vž‹˜›Š‘vénk⛄eê…ãž–  `ae74eêÙšaõœblV÷ó‘Àæætìµ´ˆŠ¶´š´Žˆ¶°µˆ‡„í—´€îééÔíœQMœæjÁLï–cmFlaáge53êçÙ=6 ÉŒoÿâ뎃çn4 ÷˜’î` ApLâ韞õŽý‘œ„6x™ÀgO†Žœóü‡¥¿—J‚`x”k•qäïp00 ã…móö5r‡‡¸¡£¦¿½‹b kž‚’š¶è701’µ‹=:%>9?3 77<8; æÂ5=94xг»¥»§¢¦‰“à0cŒµ³±µœê6 ›‚‡»¸ß4=<2”Ñã1< 17ÜŒÍek;?jtޤ¾¿§¥°Ÿ…ë÷•V´œ“†d ÿŸ‹µŒò0=\kåÅ <17òµ‡9< û‰±´°±³¶–—“R“ÍØÄ‘ïNpÿ{Œ„Ï  lŸç 75T’Îv=5C„‡‚³¼‰‹³³ƒžƒ†ùábቛda‚ƒa™‰îäj5<` 4hщµž·±µ·†ˆ]ÁhfûÌЕ„‡nî´šjm7ù0r qešÚ„˜ƒ²¸˜j€¶Y[ivl—€c`‡·Âxzj 5Ä;7j]T 𛆴†—·»‹™‚µ”’ž]åí úh™µ–dž‹€œø{ ôs 01Õl74 Á|iyùå…µŒŠ¾±šê‰€žŒ‘˜µ“ꌞåþ@”ÝÂ>14=1erh•°µ†½·™µ…Ÿ–޵‚f€Ÿw–´†ž‚—eØåU–z7?6 33l Õ ô€‘ƒµ‹ì“ã‚”í¶„ 6Ð䓒현l‚övŠk<6 3541àü ÿ³µ’´¥´š‰Š›‚ÿ™¸²—lœc1iëzƒ´œ‡ääu—±ƒ7 36 ùr 7ýŠš‰²æê€ÄèŽïhƒ½’41Ûåjk”í canˆ·i 46=15 l1Ð6…žƒ²µ–åäÍꌃ´g{– tç…˜eãqž™ã™±€  4Ç 7Ì…ƒˆ¶‡ž…ᚈ„“ˆ³‰…þcŸƒ’YÅãÛÕbšžf 6  ‡·…’ƒéj‡ƒ†‰€…“W Љù5Î÷—†é…„11šm  7›Ý•Œ„`•’±°š´ž×x‹Œiç_æ·€ÿƒ‰3jš j Á51’·á`‡„ ù„·¶”š±˜ž’ ±±óF3 ë‹‘…‹p7dŽäj64 ú€€’õòhê¹²„ŒŠ˜÷äQ€ˆS—†K‘½…[Ÿ€Z554醔l‹%3ßð”¶ç‘Ìs•¹#¤0a'¥îÌr?„ ‰™›Ý„‚ žà‚é‘é0 `bëltz „‰ƒŠ±’똃¿³†ƒ·Š‹²°¶¿¥¦¹¡¾²ˆï„ >?!'"-"#?:>1<9;<9;:=';2!":=##>?<82 11376—h„œ€†Ïޱµ»²´¼”ƒ³³ˆ±Š–‚·ƒ‹¼³µ¸¡¼°¸¥´‰¼¿¥¸¿´‰³Ž·±›½³àœŒKà€—†€46:$42 G6? =?1~4? 7bÍ 2=02<154 ù—Ÿêþ—–ÖxkAŸ’ã쓚‘ë–ô`鋽°µŠ°·Ÿƒˆ´µŽŠ™ƒŒúД”{ýž•†€™Œ—lJmtúåöáÔÝ|éaÀ”j7nå0 =>3 aGw7Êî`Ÿ”æÐèiHÿV‘™ƒ„˜µ³¶±´¾±ŠŽŒŠìæž›žÚ–‘m”ÐURVš0l„ôoŸ‘ þuô˜åå€êaø‘ HS“…kxL‘ JÁÈôqМlôpÐê— cež‘BCœG·œä™‘‚™ê—vFãíûžÛúéáé‘ì`f”J…´…3·›9º6µ6´¿7‡ ‘ȶå@Œµrçëzgö~x6p= 4ØЗjˆ|‰²³±½¾°¾¡­£¦¥§§¾»º¾ž™l 4=:&>:1<$$ !,"'## &;!'=0 75`a|–¶º¿¥¡ ¼´½œã„¿§»¦¬¬¦§£ ¾¿¼¹¼‚ƒƒu”–›TåÏmùô 5Hj5 5??'#!:<<44>%'>>':371ê†rh {æ·±‰˜‚ðû‰±µŠ´´°±µ³·´±³¾¤¡¤¥»¼¶™…·¼º¾½¤¿ˆ‰ˆ—ž”ÄèøIEëëô@aOm 622<64 56;>%'920666=81=31;$:141<:;9316 i„ŽŽµ‹´Ž’‡““–…°º§¸¤¢ ¦¦¡ §§¦¢£¦¡¡º¸¥§¦¡£¦¡¢  §§¤·Š·ˆ±½½·Œ„ixiú’c0228'%:>360>:!# '?<$&&'% #"-/.!%:>269';28%27064e4ÄŠµ¼¸´î늌¶°·¶°³¤£¤º¤¡¥³¥ ¡   ¥³¶µ´²¾¹³³½±¾¤¾²±°‚Ÿ‹‡‚‹w  gÐUî 609 &88866$$98?77 6 k 6 6>7qñ…†ÿléæœŸƒ†Ž€…Ž´‚´¿§¦¤¸¾Š…ƒ‰´Ž‚¿°›‚Š‚æØŽ€á”ƒ‚†œ•p 4~i 03577333??;& '$$%<36 46724 =406526Ý뙈ž…‡˜d牗°°··¾¤¥¸¼¼¿¿»»§¡¸½¼¿¿´±¼´²»³²¼¿½ŠŽ±·‚€‹†Š²Œƒ†ÁeFÙt͇`s–Ë 7777>3 6  6Ñ 23411344t se˜ùTÍɘžŒš„±´´ŠŸ–÷~_úŠ„téš›îd‘ã`Jpœ’Ÿˆ„„”ÙLkOe‘–n@“rX}o C  1dÀ”•cu{mÊ@™eqC– I•…f`šû ÇBjz™é–ùö‹½‡››˜k€ˆ…ùÕŽ–`ÍöénãðøV‹…áížÚñ‡´”ñÄbîÈŸaoKËÑùý5  s{Ñm^eoøyuIì“p{Åyèž™‰Ž·³´Š³·¶°¶ƒŒµ³´µ±µ”ÿ’“ƒœ–Îh–å…æwàògð•ÕÇzai f4pl4824l kJÐO‚…QZ”› 5rÌîã„RoEósfÿï÷aNↀðî4å’ýôš—•ðòžñôꙜ™‰ƒŠ¼±³ŒYšŠ²±±Š‚fôè Ò=8299=1 45 545 0=2 píæM‘ä5<43%=g‰Š‚³¤¹±¼¤¦¥¦ §¿º¾€µ°³Šµ„Œ³¶”gd³··¼²ŒYmüB`v~4036aü…î  56:=06r  6 41”œÏ 5 óT •„T‘¶²µ†‹¶·½¾¹½Žè“•…¶Œšì†ìB›ämbýi“„‡˜´…iiE` r}é옞Ef 567ÝofÚ2 j`’€”ÌÍd  kïlá’Žµ‹·´‹‰·¿²´‡Š…‡Œ‡ôÝÒ|ûìé⚀┴·û—4À‚dòëxmñ݆Þÿœ4Î ><8V512  7[Ú˜ è„1 75}f“’Z垈‰°·Œ²¹µ†·½µò›Œ‚›Ç†…“ƒ–”êè“ýàîÀ~V™šîAë‡4”‡chí{fzøfÈà^f~jb?7 =1HDdmÐgdj`gfxo12À…’Ð…´µ‹Š··´½¹³·¶¶´†–æJ…‹žšŽ€€ƒ·‰êJÛ˜„øê–â lfæÛÝp^—P5÷ 070=$¦>!1:<6·–„³¸¾¼¿½º¤½ƒ·ƒ71;:?0==>;&,,'$!$%>=055 Õ‘”ㄾ¦¥³–ê‰áBm86íCd“´±µüƒ²¿±‚¶µÃm670šL ê…Ÿ‘³º¥±´³³µ¶¼³‰œ—‰‚…‘Š…ä 5–e0 !& ?3<19' '9 šžŸ†pꆎ‰ƒÔ…±„j7k’oâ³½¶°°´½¸¤»»§¤µé5 4ç:&99?4ß—•æaä„¿¤§º¿·â†²´¹¤¦¼“ `˜œþ•„…77=7XÛ4310'">0%!$71<<’â 6 …‚_þ`Dæ’Ÿð—žš—‹‚¥»²·¤§¼²¿½¿¾†5ûœŒ?0471g™…œ iðŒƒOÄúàóQü ƒ¿·––X˜‹‰îŸŒ¸§½ˆ èáy4=;!%>98%$>l<::> Mm˜’d ž»ºº¶µ¿¤£ºœœ´»¥µ—Á`˜}zÉ´¾¶”oƒ³§¹Ž‚åœæH”&#%>' :?64;;7ư±±·¾£¿¶°³¤¾¶¾·½¾ï?62;=40;#!:177  43=4±‘“‘’–ް£¡±½¾²´€õ삇ïðì›ü„·±ƒ“»¼»¿Œ€™ŽŠ„ƒÓZ 2>>%'=272;%= ßÿ›´àçš‚”´‰´‰Ýa“ƒâîS 51601 >5=$$—‡ä—”ð‰¶µ¾¥¤£§»¼³Œ†úf‰±ƒþ4jmÖ††µŠéj–†„ù‹»´¸‚ÆcŸh |s41:<1 jÝc>'? ràmg•}16‡‚‰›±°‰â4šƒ49 %65ãzÏ ÞŠ¦¡¦§¡¤¥²ƒ²¤¦¥¥§º¥¶íM…‘™ð48&%6 dãs ?6p„”ƒ›œ5wÆì‹—Ÿ…•å?914 2=;:4éR„Œ‹eˆµ´°¾µ‡æŒ|`„ys 7“œ–ƒŠcÚ u€ŒŒƒ³³µ…œù赌‰¿±±Š‡|{ú–„„…‘Ÿ9= 44 6<>5ŠætùÆäaž•‘Êy 4 àìjb54wÆêb  3–˜™Ú‚”‚™îµ²½¹¾»ŠŠ´ˆŸ€¸¸¶¶ƒæîÈò„å”~Ñ 7? râî h”Ù†´´±CSŒ¹µøúâá6mò5109>–š1 î 4ƒŠ‚™†—íïÖo‚½‚˜ÄÝžæû…Œû“çág—·±ç…䌶‚~^†‡°”îÔ}¶’56” %!8730œb:!;<8!&; 5:%8276 í…Œ°ŽŠ±²€‘a·‰ƒ‘¾°Œèj—˜j𷾏„“µ¿² |·°±Ž”¶º·è‡²¤¤º°åº»œ•°±ŒlyöÊàå5>2=0?9<4Ì  <= éš512lb<ž‚™ ”æê_Ú}ŒŒ 6Æ•˜µ·€’‚‘µ¶ˆ¶ˆˆ€‰â·¶¹º³‹‡ƒ€±¸¾\ùtz’è24  Zj 3cʼn‚Þ`j4;>=10= 7Dò‘Mé—äÎSžŽ·¿³°åË‘µ¶¶‹µ‚àYz†Œ€‰‹»³‘mà·´µ‡šŒ™–1c|—…s7<7[•Òøà014OÙ—Þýï3=22Òh 1  ?&945ÂKš™~ 5 úˆ€ê„½±ïÒr‰±·°²³±T”†·œ“´°‰˜i™š‹±´½»µ—ga˜Œ€’–× 41 dð•çÿ2?5bÔ•}520~Êvži39%;654  4907 ðV•´ƒèþ˜•‰Š¼³‰ƒ‡ƒ™‘‡µ³²²›᚟煴·°ƒé‚‚šµ¿°ˆ“cŒŠ~Áïˆä hâ7êþ5> HY7—’a7> }çf 4 n4:$653e124e†Ÿò”á…‹ímf›´°ŽŒ·½¶‡Ö‚·±·˜†Ž…ò €‰´´´¹½°~æ·²°³²°² ÙòLJ—n ;91 B÷2:=€1>35b2>0f†ã 4Û††Ž´¶€cR‡Ž‡š‚³³îö„‘›±°ˆâáü†‚‚µ²¥¤¼ƒçø„µ´€…‹·Ž  wÃ6<315 èâ567  Oìf 9>674\Îl5 Éšµ›ê`ñ”Ÿ†¶½¿½´ŒëdKsƒŽ±·…î`oçõ鄊°½¼°µ‰ý_–œŒµ³³·ƒ•ñë•ý] 6415nbd5747 u6=34 nj cóí„‘òèxÖúš´‹Šµ‰†“ú蘃‹Œ‚‚›ž]nïƒ‰Ž‰·°¶€ž„›Ž¶³±·¶´‚åxäñýAñz7761 ij5>01441 ™±Œg7ž—éêâš„hzíSÞ•šŸûÛ‘˜…–étZbsïµ±‰ëpÔÃW“‰·½¼½´’ꘖƒ±½·…   700>=69'&>64 4f 13=>6 H¹¥¿²¿¸º¶³¿¦ »±‚‚…“얖䄽¥¥³´²¿¸²²º§¡¥¹¾°´‰ƒ€Œ‚Œ‡†ó dv4 46=6415 o1102: !<7731430 ne 74Ýñç„‚¶¶‰Œ‰Žµ·Š‡‡‡†”uÿŸŒ…˜†Œ†‡ˆ·¶µ¶¸¸±‹ƒê`ì•ÔÀœšœd o…˜Àn7<<7FÃv6;$$;9? õ™Õ12 ^fm70 õŒ²³Ž‰€ñ}˜¶²ˆ‡‚ˆu›´¼¶„ž€›à‡²¹¼¿½¶goÓÍeô¶ŠõlÐòeÒ…Ýc131I† 00>&&< 64 ’€ì4 “‡€Žˆ›î铟…€‚µ¼²†…‘VሴµµžÌ[⛎‹²¿¤¤²Š–Dhm„Œˆ‡š•k[”žÙ1224QZæä ?9>??25f~ 336 h@ñü 5 u󇵼·Ê@›·¶¶½±Š™—Æú´°½¶ìð„µ³¿¸¼œùcf\–„‚‹··ˆö ä’Ÿ…’@ 4334èf =%$>3 aÕ72===6Q†‡ë4?7Ûê·–vc…š‚³º¸¿€Ð“‚‰·¼°¶™šêÌ•‹ŽŠ½»»½ŽtsœŒ¶½°µñ~W›Œ‚˜ 8?=V’æ{099%::5Ùñ3%:?5ပaj Cá¶·µú 넱º¾±‚‘”N’‡‡Š°º¥»µ†Ûž·´¸¿·‡˜ïj–’𽏶G5 dÇ›ƒì^an655Ô‘›8;%?4ho7;9$=55O“€f 417h•›šêvoâí‹°»¾·ƒ”á`í”·µ²»³±š„r“…¶‹¿½º³“rW˜¶±°‰ñc‡˜‚˜o4  63<3;<0 j7 3=11jy cêø„“†š˜aÇ†š‰ˆ³µ‚Ž€ƒ’䈋²´³±·³€‚ƒŠ€‡´‚°ŒŒš‡’`œ‘‚ƒŒ“æ‘…guyA {  0  3 1 635647•ýJxÙÔNáÁê„ÎI޵²³¶™D‹¼¸°Œ”•›éš›A愆–üM_‘†„”AîiTtüé•ÞçÅËàCea瀎ƒ†‘âñPJEBdyYe 5 44  4361 5 n@ûÏžŒ·¶Š·²¾º»½¶Œ“åå–’ˆ¶²°¸º¥¦¤¤¾·ŠŒ‰Š´³·Š”ñç}Rtbn  {íáên 79>;:8:8>>011373>255 333321N]ðRn`Èì˜éFô]\`gý”‚Šƒ‰Ž’‘š˜€ŽŒˆ‰ƒ„†ƒŒ‰Š¶·´ˆ‡‘ꙓ’…‡†€™™èHlxC|ddj 7006  4445717 jegÐçè—ëìë’‘ì럆††˜“—íâé’›€ŒŽ‚ƒ€€€€µ±±´´´ˆ“…‡„…˜šž’•‘‘Ÿ™ŸŸ…™áÌvafnj4446674554   617 cwgzNåœêÿëž„‡ƒƒ„‡‚‘ï”á–„ƒˆ‰†…šŽµ¶³³´··Š‡žê…‰†…‡šïñsbþ‘‘üæ—òÀõgy{lh 317677607 67 57 565dcotã—žœâæ’„‡ƒŒ‚‚›ë“…†€ŒŽŒŒƒ‚‰‹ˆˆ´¶´‰€‡‡†‚€´µŽ€‡žü”‘ýüù—ÎqÉ`o547 44747656317 71714445 olßúî”ü‘íÌú™‚†…„†€ƒš‘蜕ŸŠ‹ˆ‰ˆŽ‹´·µ´°¶´Š‚‚†„ᇟ„„Ÿ‘”šš˜—”ðd 632><327 4  574174014 4Ö]”èŸŠŠµ²±°·‰µ€…ü•Ðë‘ô˜…‡“€š¶·²±¿»½¿ŠŠ´‚œ…ƒâzmÉegäç™ëéó{“”…›îšÝ`61=<<:>><3?<>=1245   VoÔᜇ€´´·¶°²°¶µˆµ€šì×’šš†ˆµ·¶´‰¶±´‰·°´ˆ‡‡Œ‡ìnl[}xVGjzÍO  <'874?$9 9=06no a™…O–™sXŠŒ`–³³‰@Ì‹³³‡–‰±¾²±·Œƒ‡Žµ€ÜŒ³±†K‰½76€¸§³½‰y°´¤o Åo g5í:¶§&g$´å¶1Z†c5þ5èn35ñ…y02 æ $>0752=0=<44112âû†µ¸­¦½Š°§¢ ¼¼²¿´€ŠY˜––œö€æg7 ç4=744c…ê·³µˆ‰°¦¡¡£¦¥¼½¥¿‰…ƒ´²º»¾¾¶´´ˆ·¹²·‰Ž´Ž€€ç ~h79:?4%9>;09==<2%'&&:$$%'!"- %:2::304=81====4 4437 4nç’…€²¿·‚“†±œ…¶´‹š’‚“À✇Œƒ†Ÿ…‹G™–Es464iàX™Ø”už™ 55294nsDxt{X{k匊‚€„î66 ~r”‡çeæ“™”‹±°¹¶ƒ›•h犰µ¶·¶½²±¿¹¥£§£­¡§¹¸»¾¾½¤   ¤¥¦¦¥§¹¦ ¦£¥¹½ŠˆŸœ„‘„…µšïúOœ–͆•x575?:$%892=>;$&::07:=29;! ' #-# $=>:'&$$: 4?00=?;$'!$;:$?  =24W…åÑš›çÝþrZ’—“ƒˆ´Ž„±º¥³¶½°·¶ŠÑ„ˆ…„‰Ž´š…µ³³¶¶µ…´h”‡—–]‘—C虄€‡•zpÓnÞà”x\ç™êï—ggiΕEgàšµƒ¶²€Œ°°µ±Š…‚†‚œ’¶±¼±Š¾²··‰¼±·½‡—Œ‚žGnmŸ™“†‘…YæùÙg1?< 4 414<21%>3:;>::%$ &>31103126 1  4446bKi^iÉÙçãßÁßEHâ€„ŠŠ·´±‰–޶‰Š–“‘—î˜…Ž¶…†Ž„€™Ÿ“€‡œ…ÜxgDnÏ`™‰å—”×…’Ú퓚…”d÷ÖÄJÎ’š‘–Je˜܇ïã@ l–êž“’—‡‰´×•‚‰—ma˜ê‚€Š¶µŠŒŽ¶„“†‚µŽ›êéž“Š–ŠŽ†´·ì·“á•ç넃tÞ——ç“É‹ÀÖ‡H Fi5 10  6134 61 711360 3 i 7g36711470j6îa1ÁéæëB5’”k F_—›t@cL~• ÑÀbiS…“þÚÁäšáA†…‘ƒ„ŒŠ†Ÿ°¶´¤½€³´‡·±€‹°ˆ…°²‡†œ™²ƒë¹³‘œêŽï™€‚µdŸrMȰŒã€…xœ–‚н‘àúOƒµœŠ¶ˆµµ‡êqëþ„’ƒNýnSd‚é}`  Td oäe n6šl^alt ë‘ÈL÷öÙšàbãçŸð|òË oók 110 2'9:?3%20>55j4f6N6$ 42=:02<4=57í17Ù20y23 7 b•ô‚µ‚½¶ê°²‚¾²šº§¶¸ºˆ‡·³ƒ¶„ˆ¹·¿¸ž°¤·Š¾·ƒ²¼ïƒ‡€°˜|‹˜°›ð‡“‚‹µµ‚¶°€Š…·—‡·Ž²½¾ºŠˆ½‚Ÿ·Œ˜Š†ƒ“–‰³µƒ±´´A”æÿúeq ?ùí –éåASv” ? >5 $<3 6 74j  æ7 075 <3532 42?>014 ?1áï5  „‘|7ðdÄ ýað‡oØ“ ÙÀçbœ†Ÿœ‰”а´¶‡Œˆ±³•—±Š„†›‡´´·Ž‡‡‚šœŠŠ€€ïfšŽžoÌE†{ÛãïíY„†Ëĵ‚ѱþ¶Œ»Šéµ‰·‹œƒˆ€´½’í½†—²ë¶›ƒ½Ï€’[ŸãA–ùþ4™’ƒLf”k˜lx•i j07j0ÑÏkðog}741302770194  7jP aÏl‘ŸÑ^{íBaêy— nà”„éIÒ™™™‚µµ‡‚±ƒÿíäŠéƒ‘–Œ™í—„´‹‚ˆˆ‘´Ò„Ž\Ž™Ôr”÷›Ñá‡ëó}íê–‹•k‰‹„Œ½²¼¹µ¸¸‰ŠŠ³²Š·´¶²‚€ƒ·½´¹…Œ¸šq†çîëÕ’’iîjëŸöõa d|6Äb41cÿ0Ý 6 50603897ô‡m 41 7ç7225x7 b213703O 5b7 n”g•ä“’pR‘aíÊØBÄ`åþo4 7 P `Ydàš—þ–›ãŸ›Tÿ숅„²‡•´µ¶°µ³±‰ŠŒ‚˜‘Œ›œ°‚„ˆŽ‰åƒˆ‡‹†–”b|Áê„ ˜Ô‘—\ƒàæ±ŒŽ„…›™‰‚´·²³‚²±±º·´²±¾„’˜„ŸÉµŽm”ŸŒÌ‡‰•ŽY}Зñgšà•y j 66 Ý5h6j÷ìe 6? W c3yU0677==  émeöš ƒ†ÆäéGâéj 4m„žù 4†‹ç`““ꉚ€ø²‡’튀’ÏIàù”†¿Y…Ž”µ²˜Óµ‘•†˜ç‡’Jš‹íµ²—˜·†²²…µµ‰¥´·…¼ž±»Ž²§†µ¤GЉp‡€iå•m„w> b8b% 08>441O599>"%4$':>$; 0>”Æ·¶’¿¿–´¹·––ònô5ä´¿´¸¥¥¤§¤¥¥³·´°¼¿±µ·‡Ž½‡•‰²—µ¶’凂{ójyé uc–Dê 3=785 03A43 à›ã74%:<4=0<<caäx”„œ›„絘þœã…VÖuýðfж‡½¤±±¤°ƒ´¶µ¶±‹„“ˆ™”’úž±”—°„•àíqúêWј5Q314 4574kngÑo >6 075?3 i|Ež—€ëƒ‹Ÿ™€G“–háé•Ýanvn“‚˜·€‘³½±´½·„Œ·ˆµ±‹èé´Š…•µ“•Ž€ìž²„—wõëÿèá âl…É44  365 7•4•m ç 46;7 c—| Y™“”™ÿ¼è`œŽ—JŽ·g–Ó ÒŠ·ƒ¶½³‹ƒ½¼Ž‰±Š€‡Ÿ‡ý€†àŒ†Š´ŸŽž‘…ì h‘QCçàa 1546431 j öÙ÷  ?03<5 òÆ›‰á退Y_Ò–Ÿœ†µ‡“hùoß‘’‘Ÿæ„Š‹ƒ³¹¼³´³·µ‰‰Œ‰††‡›êâ„€û•”à‡ŒelùoðNil4754574516 io 517 `fÊ“†‡‡€ƒ™ž‘‡‰Ž‚„Œíkj—úNœ“ÒŸŸý›´¶€°²²½·Ž·µ€ˆ´œæž‡‚€ž€–“†…ånjkae45  4146<1  u7  ohôœ…ô–Ÿ…Œ‘Ž·Ž‚‚ž…˜pÀ—”š–`Ä•’–ƒŠŠŠŠ´·°±€³µŠ´Ž€›Ÿ’‚Œ€†…‚™—„…˜üCwbk 4 0017 7    5 Jþù•œŸ…‚ž´Œ€Ž›…åì„—ìæ˜›ž„‚ˆˆˆ·´ƒ‰´Žˆ´Œ‚šæ´€„‡‡‡›’”Àleb47 5316317  6om{ý–é„‘Ÿïš›”áï™™›äëžëᘞàï…“…ƒ”üäžúéïêéꄓ놗‘“š‚‡€Š„™„œ´·ƒ…ŠŠ·´Š‹´´´´Œˆ´ƒƒ“äãrlÚ 55 4 ijúJê‡ïäùc 2$#! ##-"##$9825hÙäÉæçw`edGnQÿiÊè•âÞUq•œ‘B7163155 j]ë…™›‚€š‹µŠ€‹¶¶±½³°¿¾¿½¿¿±·°³´ˆ´·‰ƒ“”‹‚Œ‚Œ‚ˆ¶´Œƒ‰‹†€ƒƒƒ‚‚è——›ˆ›‘‚†‡ŽŒ±¶´µ´·‰ƒµ‚žƒ‡…’ÌÜ‚žp…àìò}hÕWdêÍrùÿ×–ðÉÍøç  5 665   775 76 61  4766022<<<762030   LtlnHuoh—FÅlàxôÊ ZPýõí…šŒ„˜Š´„€ŽŒ‰Ž€´ˆ‰ŽŽˆ€Š…›Ÿƒ…”ä’œ•’œ€€†›‡„‡‚ŸŽµˆŠ‚€‹ŠŠ€„‚†…Œƒ—ᇈ†˜‡™B퀄˜š„›“žöúš†Êj—éKΟÒíêzüÔRÜ@×âígjzfc q     74 565 1516    lxiðÚ`ccsfnøFfQÖÝ{ÊfbrØê–øü“’€‡‡†Œ€‰‰Œ†˜„‚†˜šƒŽŒ‚‚†€‚€…†‚€‡„èžœ’’”†‰€ŠˆŒ‰‰‹·±¶‹ŽŽŽŒŒ„›‚Ž‚ƒ€…–ë•êℎ†—”üÍèæÏíáÈÇî„–ÇSÉâûêéÏÕÕZÊÌjjkj     5554 14 5   \l_lÿwsápNÄofdfí’Ê}Öu”áõacV‘†’ýᜅ–•…šƒ‚†„—œš„„–‰Œ™žŒˆƒ…Žƒ€ƒ…‡†€‡‹˜‰€’…‰‹‹ƒ…Œ‹‰›šŽŠµµˆ´µˆ‹‹‹µ¶‰€Ž…™™…àRð‡ûî„“‘˜•—“æAmÙàgcov@ØçMcÊvlÑPÖ“ÿHä 6  4f„’ã˜Ê 7 010?145 4<25j†7 Bð 5&- ¡ž‘ -‡§!Šª3 ² ?‹‰µ¦~š¾¶,=¤ 5€k 烼·¥§»§¥´ê41… 367$ &$?;3ž™un…žŽ´»¢¡¤¢¬º¿¦µµ„‰T–6c„€‘ï•´= Meþˆ±»º¸²‡¶½º¦¥¥¤ ¬»¶²¼¸±¼¸¼½µ´Ÿ8><2=4 10µ²¶°¶·êíùËg‡í˜i 5Ëž“Ö 2=:$%99==4?!-,::#$92;'%?%8< lKŸ†ƒ{qœ¿¶¶¹¼²…Oû´ƒá–xœ8><502 =0$:=<>v‡µ‹»¸½Š„µµ‰´¿¡§¼´„™„ž€†Œ°Œ›ìÁ~™—›¾¹²¶µ•æag E762%&%3?2pšî…˜Š¶‹²²¡¢¡®­££§¤¤¸º½²º½µê~607=<2607 1•޳Šë†ï‡í˜žŸ€³½‡œ†dnfLr—„žXd‡™ë~†alÅDCÔ›Šã{040<312<:%?;:81=4x’Ò““œ·³Ü—vœ  :9%%3%=56 mWèÁ‡Žµ¹²áßéëXMr›€ò 6Ÿƒö’•™Œ½²°¿Ÿ°··ŽŒ··“½³³…ã{`ào‘‘ öMtœ·°ŽØŸµ‰‚²³²¶µŽ‹´è‚êï™`R€ˆû—éÛž˜µ·‡¶²´³½¸§¹·…޵€…a 126=207 } 鞇Œ—‡˜šƒé„ƒ›i  4?076?4064445fa 5nxy l 4n724471oimM_ÝîÆì“ýJ…‘zíìAnféhoÞîuøê…é”ë··Œ¶³€Ÿ½·Šˆ°‰µŒ€µ·‡òçL…”’êÿ{hgâPå€ïdb„ž‡ˆŠƒˆ¶°³ˆ·½¹°µ°¾··ŠÕ\ò“VÌ‘ê`onki—D zææ‹Œ–šâ‰‹ãý”‰üéš‘™ 441<<3 k1 5 ߀˜ð㕃™‰†ƒµõgÅà5132%%& $<78==720 uq‘µ¿Š°‚½„ž˜°·‚“êm6}”…ú†½´¼½øïÏ™†‡†‡˜ƒ‡†”ŒŒµ²¿¿¤¥¥º½¤µƒˆ…´Œ‡ŒåO m041=;'>:%3  0p86rcl m1zólãÇ…O¶øz 7 l}þô 㟱ˆŽ½³¹»µ´Ž†´€„Ÿ„_Ånÿ…â…Œ…šìhé㛎¶„œ}’„_‚—“â 7006   5567  60 4rvo•wiê›o™€¶·½³¶·”yfü`  5šŽ€³‚‡„›‡†µ…ˆ´Œá™ç•è–·ˆ°´·Ž‘–œƒœòž™Œ”ÿg`LÑf746 6{ÚébÜåà– 725Ë` ë››µ‰NQo5jm„¿¶°¾¼°°·…Œ³‹šŽš“ãíqhkˆŽžŒší”˜Ær›û؟˘„Üopi’áÌ“ã h`doettÜ1 73723=5h㚃±‰´˜äæ@ýS  nbq›··¶°±°·‰·‚쓛的圑—úvïžŽŽ‚Œ€€ísþÖmã’|燃úømð꘵‡Ñqf 5`lcvåŸôEÊ 634504 5 gꄌ¶ŠŸ“ù]•zhio 0b……·Ž¶µ‰·´´´´ˆ´·Š˜†‚–œ‚€Ÿ‰¶œÿŸäÛ`ökrQNŸ‡š†‡ÑÊdIe–“÷áÑûŸéj577106?930264qê{›Ž††–”蘘lÌl b–™„€Œ¶Œˆ·µ‹ŠµŠ··†ž‚ŒŽ†ˆž›Œ“ØãáÂçZbfavlg•êâàñ•îrkôäÄme| sw@âÛáL~fÖëoe 6655220374cÏâ„›Ú—zô_Zî圑ဵ´†Ž‡‚‚„”Œ¶µ‹µ´±·‡´±‹ˆŠƒ€„÷lÁai}Rg“ïÈ—ìíš…sâägfjomëlßœul|4 4 1mxmô~f^oj`gnxKåúC冔鄞´€Ý’±¶³¼¼·†î³¸¦‚”‚öë´b‹…4½á9½;„1ˆ6·0•ŒHâ—q„A’cu\Omãlà7e45M—z…Žõñ€´±²Ž‘ƒ“œ•—ìp84%>>4;&48%%<%'=8$%6390>9117 5rQ–•¶·°»¤¥¤¤¦¢¡¡¦ ¡ ¦¡   ¤¦¦ ¡¦  ¡¤º»¹¹º°·´°±‡š„ôwOt 4411=3002?331112016175666715 KÛœŸ’†·½°³³¾¹¿¿¹¿¿»³³¹¼±ŠŒ˜îç‘‚µ‹··¶ˆŒ··‰€‡€’Âé”åe5<>26=:<6564 67  2<0 4  63?%:8<65  cl 4 c–޳´‚„š†ænfí“‘±³°··×fT釱²°µˆ°²†øïë^@’‹½³±Æ\…‰‡ž†·²°·‰šgh•ƒ³³‘hÉÚ Btþ÷gxwâšk4<657 g”c 7=24O³³‡55 ~Œ°²µ†þkúƒŒ›ž€†¶¾§º±Ÿž´°·Œ‡Š¼½Œ”BMÙ±°™d}„‹ˆžá 5sCh791 =%$$%0†œ709$%6 <$0Bó~3;!!$=uš’ 6  rµŠ÷6?7c‘ž˜„âûÊýoz–‰°€——„à÷×h‡Š²³´„uz„±¸¶’ƒ´±±µœ7‚¸§¤½ˆ„‘‰¹£¡±‘wž´¹¦§¿…¾¥°ã”…±°ƒ7 EˆƒR 8%0”—d b710 šƒ—b =24j„„æfሒ^SR‡··†÷4 ˜•Vš‚”qe5׉\1?:3~ÓÅÖ =  ??4þ„‘18':[q2ìç46ñŒµ†m5%8œ‚˜Š†1ƒŠ7œµµŠ?:µˆƒŒ„`‚¶€6 –¶½´Ÿy03€°²½ŠÏlã¾³‰Úïk­¦“Ò7œ ¡ƒ´´œž7°µ¶³bm†¸Ž²ï2„‡É‰4žµÜ5ž±¿´³\ƒ¦§§§¡¥¾²¹ ¡¿‹œ™´¹¹²CÄ7 Ï60?';?< -,&;=>'-- %0116 6 C€›“iR†´¹¸¹±ûú·²³¾±³·Š¶³¼°†•㛀‘=<0  75 4?8$:<33<8$'$:?9;;$%%%;>8%::7`rÄ ÿ홃ƒ‡˜‚·°Šƒ†³¹¹¾º¤¸°³¾¤§¦¦§º¹¥¡ ¤»º¤ ££ ¡¡§º¾»¤§¤¤¥¼³¼»¹´††‹¶¶ˆ†ƒ‘RnHÌàdG5 6924 6003?;8;8?8>99%%>=8'%044020=10030717577  ÈÀkzx➆†ƒ…±±ˆ‰³¾³³»¤¥¾¿¼¾¹»¥¥¿³´½¤¥³°¾±ˆ´±·•‘˜ž€ o‘ä 06} 0<>367 3&"$1 ?!#&8<8$:?%&!$?3479 2=%;1 521ó™Z n‰°…yg„µµŒµ²¾±Œ„µ¥¢­¥¶´¹¡¬£º½¥ £§¤¦¦¦»³¶º¢¯¦·Œ³¤¦¤½‹µ²¾²Š‹¶¶ƒÊÞŠ±‰74uf63156676<8=43<35415hlnxaj–„ê|”…„êDÞƒ‹züˆóbqš‰‚ãlÆñóñQw—â24LšC46 41711 Å 9$?e=>6 160?;?4É0%:3407k œ‹Rjqæ…‡’çꆶ·‡qd´¸»°‚‚´¶‚ƒ·º»½¶³¿»¸¼¶¶¹¤¦¤»º¹¾³³½»§¥¿²¾¼·Ž·²¾°µµ³¹¼µœöî·Š€‡ƒ„ÃË…ù 0ëœ43075 552?15:'0p7=35 45càc7:<„ž  t’æ 惚w[õ—”çCž‚•d ììS a n]e 45bš ô—”Œ–P 4—žRÂa “šs Ïm …eï‘5˜·´’žš³±ŸÕô€‰ow¸º·–¶¼·™´¾»³€±°†þ„³¥¿Ž€°½‰Ò”¶»³‡–Œ¶ˆYÒµ¾´ôz‚Žwmžƒ—ocÎa 6ì‡`57 5è’jõù34g‚Ýh”e…›\hâí b€€G oÑNêñmà˜“ = ƒ³ŒÑLæ†5F~ã •Š50À çJ õ{66€Š„ pjgÿ 7[„r 67ˆˆ ÔÞium„‘n‰½»¤»±Š¹¤¤¤§¼½»¸¶µ·™Fr636 çjkïv7柔Ÿw›œ”ðenm76n4:$'? 2825a44 ü‘ô>7õƒ”V`µ’gVÙ؇‰±ndˆ¿¸°‡·¿¿°·Š±¹½°¹³Œ‚–†‡zfky—çàqX|”–g㜃šþ†’ÿïN•†—E€’mŸ‘}}w 6 23 6>—g77 ãƒ^äè•”䌀›ú‘˜€–Ù“¶µŒ·³·‰›„о¼†í˜ˆ²±‘J†båA7œâ66sšz m•‡åå€f¿µä…‰ïbîCsmýæ ”‚–<$=` 76ö÷ 7 ƒŽ=7Uæ4 Àd—ë 勉…u‘±¶™€³¹â´‡ñóᓊ‡|k䘄{~Äôîwåg˜âh…µ›róþ†‹‡im•ê~qg‡ˆŸ hýé4•N 6 7hk 46 ÙpceWØŒçD‘–bÝ‚€‡›‘é‚‰š…³¥¹³›Ë޳´ê—Ÿ„ŽƒØÑ–K”’‰ˆËmÁm×Ts˜×ž…Êgðn›ƒ…—à`c†d   ™v 7 58?b 54330>9ïß5ÈK D—€‘}ê ↷µù{ÿžˆ·›_‰¸¸¿½´·²µî…³¿½‰Q“Š’¶µNdš•œ±³âl醀Ý…Œšáèc ‚š`4NA11i‚þ4221€u3:;0 $&7ko`JÔ3:´²‹ú žs–‰Ï‡íd~ˆ¤¤¶ƒ”’°¸T±¿´Õ\†ã4 󌰵i1…„ü4´±…•‡…– c°ºŠçÏ‚è DáWh61󚎖 4c=?‡í 657:$7‘ši ?0Ãé 1ûŠ›s’ƒ7 ñ€±´eiûë™S±²¶¶‰Žµ€S’±²²·”ÿ‰™nŽÁîÝtˆ¿hô’ƒ’f€‰…„…•–76Ò†šO o ägpìa5  êžk43 4?1  h1 }‰‡àžU|^Ô—…Ïw€ŒK~󞊷ƒ€œ–Žˆµµƒ±Š‡˜íÖ“‡ê…‹…`ÃdÅ”Á‡‚…ƒ‰”gùñX›·Š†lmg3‡ëƒµ6;7z´ê7äRé|4¼ ¾4} c!„=ìú–å7™ û__—ŠjQ4335854fu ŒœŒ@Ÿº¥¹³¹¾¡¡¡¦¡¡¡¦¤»º¹ºµ´ƒál4 ?75339=:?%&$:8%& ;3='!&2Á’ž…š°º¤º½¤¡¡¡¦§¥¤¦§¡¡¦¥¸½¿»¹·›SòŒ·‰ç 1<3<0?<<158! %5? #!%%%$$$$'$8238&&95=<0764  “‘{Ú‰²³‚…‡ˆ‚„áWNFô™ˆˆžßÄ·¤§½´³º¦¦¤º¸¿³³¾¤¤¸·‡’ް°‘•èðOè•p –‘õ16vù 5   Ü ™€ëwa çÞ55 Øû||}Âë“–Ôg艱¶·¶·ƒœ°¼³µ·²²±‰ˆµ‰ˆ³»¥¥º¾²¼¤§§§§¦¤¤¥¥¸¶‹¼¿¶‰Œìxú\0>>1 5455?'$<3>8272:%?>$!$<=>98%&!&'$%8=?8>2>&!%1 676=6 gcoÄÒkè…€„•Áë›™†Ž¶³´´°¸¾·µ³º¤¥¥¥º¼°µµ·³²¼³±±±µƒµ´µ´·µ‡êïæÂVÍŸçõèÌ`À“…„Ÿ’“—ËbvKjix\ ößuÎâòig|Dÿ–“‘ëëìåç˜‚ŽŒƒƒ€ž’’™…’ë–œ›‘Õ~ÃÀGQÚúêÞbHú⛇„Ÿêœ„äÇÿëëG 617570326717744130111675477755604  5  hahqêœíFц†š††„šµ´†‚´°±·‹ŠŠ‹Š´··´‹ˆµ´µµµˆƒŽ´¶Š†›†ŒŒ‡ƒ‰€Ÿ—›šê÷ï–ëÒpTúÃià•S\tâ‘ý{t”“ùxIà‘”SkzzjeÊÓgtpqÊ“‘âVøŸçeQ–…—ûÞè“þaö“âÞäìïAnÑáìõKøï–TfVéî|Èšƒ“xÚìWaCç”ÝI`la     4 lËEú^VÇùâÝùò•øóâ•›œê‡…÷DS‘Ÿ–èäìæößtäæö`Vï””éèœÅBç‚—Æ’ø—ƒ…—˜‰µ‚Ÿ•…‰ˆ‹‰†ƒŒŒ‡€‡ƒ™š„…‘ìã•“éõãíâÌadKåçyÅÒÑÅmðj’Íl`é‘íufà“NèííÇ…ŸZX|ÅËc‚–aîcscší7‡5³=¥3†2’2°’4š€ áGhœn„a÷`mn9=1  øésŒ…–ˆ²±ƒ±·Ž±Š‡ƒˆƒˆbñvoÿ7l44<2;8%$'$'$$!$'$&!!$9;;=<3 jRf“µµ´¥¤¤¡£­­¢¯§¡£¢¬¦¦¦¦£¦§¦¦§¥ºº¸º²½¼³´´œ´‰‡í56>0<;:89:;28$:?29922 56å`dm—žåääæ•åê—øæ‡†´µ·¶²¿²‰¶²¸¼¶½´¼¸¸¾°¿¾¼¿¿º¹°½¼·°‰µ€‚ýoò    77=78:8;08'$':?:;%>00<=?63<>%8%%98%8%?>10?8=61>?2<14634~TB葜‚„€€Š··ŠŽ·¿»¾²¹¥§¦§¦¤¤¡¡ ¦£­¡¢­£§¤ £ ¦§¤»»¤¼³¿½¿°µ¶´µ‹ˆ…Œ‚ˆ€žïhtV54 54=71<7289>01??52;23;<471ãï07hh 172:6d1h•1 q0Û4浚·µ‡·´…„ˆµ–˜µ‰ƒƒ…ä刂¶±·‘ƒˆš†”÷‡‡›’û…‰ƒƒ¶½½µµ·‹€‚´…㘇ˆ†—ä`œœo`€ŒŸôÌÚkúRds\m^ d„tT†žëëa á _4fÐã‘‘œ”žtåêêdÖ€†]åLWûj“Û•”V^4 k  “âûãahúói{úqiN÷ÿøŸÿo w“àznËœtIŠéi` c4 j 015voá—”fVŸùPžýÏ‚ˆŠµ€±‹Ž…„ýကƒõP“ò€Žçœšƒ†ž†–ýõçžçêá`n…‘—ššy›àœ†‡ó’„…ì~Ûz‚´Ž´´°…•¼½µ³½²·¼‰ŠšÇIµ‚Ÿ5  ”d‘‚œ•Q`fá–rÄ53?  010   37 qAnh꜆„MGã  72> o~ôƒácƒƒbie|àê…šT 0 <128<$%< sçöIo Û@’ž‚µékZoÓãøƒ¶³´Žê™ž·´¶Ž“ák‘˜–‚¶°‹ƒŸ”òƒëƵ·²Šûqor…ƒ··´ˆµ·ŸjƒŸ€¶€±²·‹“ë–œ‚“‘¶¹ºµŠ”‰Ÿ›‹‹´„•èg37 kÙý 177 lê64h‡ž‘áyoÄ”ê4614šŸ}@æóÑ’„„@7=øAÿ„ž{k4—…‡Ù`50 eÁ„ìüá1 þ12%$9?< t 7607dõ}‡í40—íˆ´ŽŽ™ó•…´†³³²˜‚Õ`”œ…½±„‹èç—ˆŠ¶ƒ“÷kçÉžš°·´„û”›ê޵µ±¶Œ’žzì’Š¶°‹±†–››“‚€´²´ž÷àelGgža•7 4ncìÙ5=4ZŸìÝ“xÒƒ’÷Zj”àápÅDÔ”J„ç4 _ÌÚc 1d^ìJ5eiž™•ÿYdi Pò 47X707ú›U…›“ƒ•çyxBbý´µ¾¸¶‰á“··†²±´³ƒì–“┃´»¼‡øùÝÉ–æBˆ‘bþäÖ˜‰´Œ‘Îå–“µ…‡Šãegµ²¶¶Ž†„ê’„‚†€ŠAX\…ƒžk    41  ãäócra ÈU’îú“häœêlwý•~|~Ë 4káë”måÀ|è×ñÖ}Ü ý–qŸ‘âïêq4 67 à 446Òc 2q‡…ÀfG’ôi´ãƒ¶µ´‡ýœˆŒµ¶´µƒ†µ´ƒß–µ†·µé—O—f蔈‡îúwž›åð„´›Œ´öIo›‡ù“–´ŽƒŸ™±…`œ´²„Ž”‡›îJÜŒ–Œ“㘔fá]a~íœX  œ7bd jd ‚•~•äË 3È€ƒùü10¹àù'š¦&®>99:1±²J¾ µ¿;'¥9 ;%|30ƒu…‚¶¸¹°·¶½´É·€ 16 1;90239?1974?503T·€Ã‡›°§¿³ ¤³²¿¾œ„æ…ŽoÙ9139$<<0265gý¶½¥¦¾¦§§¡§º ¡¦»¹¤°ˆˆ´¶€…Œ‡´g  o}mimŽ·¿Šµƒƒ„‡‡€ÆâŸ{  6 –è 344  6=232:?i`1789<1 –Ꞇ…ƒëžžÒû´¶¥¸Š·í“ëäâféê‘i >0%'=?5??;89977j„ïkÛ Sw¶€IéöÓ’è½³‚°±Œè”v˜¶‹—î 3764   ?16ë·¾²¿¼²±½¥¦¤¦¬¢¡¦§¥¼šž˜Œ¶µ—…ÀdåLçûÛ 7< “‡äfl`в´±¿¸²µŠ´¶¹¥¤¦°¼·ŽŒ±¶€ŒŠŒrh 3;;%><145:::'%83355=ö‚™íÄ•…l‘‡€ƒ·ˆ‰œ€‡Ÿ„ê±‹Ž´–—„í =>8::# 8<03= 5 5Ëmφ²†„Š˜´—Všìµã^ê5akœJ`6Ùå•‹F` r2 2815ãj’±ˆ¹¶´º¥£¦¦¬ ¡¤¿¡¥ˆ´‹´Ž“í 7==>1<:4 255e™ç²Œ³±µ¼¶¿½¼²¸¹´·²°·šÕ€›zùä–Èæxgö‚µŽœ±ƒ•OæÇ5073904;9223<45367 uç臊‰ˆ³°Œ´³²‰´µ¶Cf?7<0=03'68:314 ^oÊû醂œ•½°‰Ž›œádïid5 0< =>73õàèi‹Cô´†€æ–@‘ÏÏl†hÃ65éclMyæã—–Š»°Š±¿¼¶¶¶±±µ¶ˆ‘mâ û°ë±°¶´³¶¿½¼»º¤¿¹±µ·êæ†àn 736õÞcññSÿŸáˆ±°¶¸±½¼€‰·ÿÔ€ŠÎj07>>==5<31= 546™Œá~áèNÖ“…š›—…‚…–5–ì346 7613 cÊg ߊœèÖΖw[nöúê„f60æ 613V ™cèž ápµŒ…ÅÿË^qéÐãÉËåfiŸšûýë‡äz܇ÿœ…°ˆ‚žŽŽ´¹½°±³µŒ·›å…Éò›… 7•fögf•äÒ‹…œŒŒŸ‚Šˆ²²ˆ‹„‘Œpœ1 1;6h7BÙIlÀ´‚±±±¿–„½°ŠŠƒ†šmõ 7D61;70 n15ÎWëèÎåç°š´ÄlðY€‰Ê6 4<2&1?3:%<%:&$92<5 6iýc‘ç†¸ŽŽæèŽ‚··cÆ@Ëà4z•ñ„ŸìŠšŽ„„€‚´›åƒŽ…Œ‰›ˆµŠ•´Œµ¿¾‰‰·Šµ½¥„s„Œ‹…ìòŸñiÿ ù’‡½…·¥·³†³ƒ‡µ½¾Ž‡ˆ„‰°°ƒ–‚•’Ž€âEdЕ”\@6›UCaYÆf”d6ì44 42 5g7r á ’EëzƒžÒxïwtkj0044 4 ?< 29457  aGgêÄÏŸÝf“—ƒ–䊌‚Õì€~}pôhh`ÌvˆëŸ°´š‡‰Š³µµ‰´±Œ‡ƒ…•Š´€—€‡’õcŸä·…V’¶“Û“nqñ—…`æ“kûæ[燊‚‘€ˆµ°µˆ‰µ¼¥½Œ·±·†…„€ˆ‰qÿ„ýÓûÅ`em™‚‘ÓÁ` ùÔ  1 21 otdî—ËbÛ è5 545 bð Õ ãdhœj÷fkák›ònq d ãd jo|†—Ï—…“•ãì“ØòwçNédvŸúý‰‘͆¶ƒ€™“„Œ·„†‰‹–H…šŸ’™ïQ{쉙xn•⛃boHž“ÿ†âr䜉†ô„‚ꀱ‚‰µ°·ŒŠ‰±±´˜±½ˆ˜‡…‡´Lu†€àl÷C÷Ú x6 015 54 64 4do}Râî{]ïn`åf5h_o”ìjZû–ìjoóRbšédçukSh of iwå]lçgÖ‚éxìdyøãmUg€—sÆžÛæ€…ˆ·Œ•‡¶·ˆ†žê›ŠŽžÄ˜šïœ€‡•õ„Œ‘Àê‚„ñ–üù€ˆái”Ÿ€—€™—ƒ·‰›‡´ˆµ…žµ±ˆ”Ÿµµ€Œšï‚·Œ“ ̟ûpg…˜rcÞ4gd27747215 4=5 45 ”rÕçfzïq—Ü}ß–áhû€’kêêæ’• j˜îx}ôI|rdÿ`fgö““75ù·±€nYêñàïàGm•Ÿœsg`fm]]cלàÓcpÇdtZ›áþèèéÜçÏÎúúO•Äani{kdóoáÆt”þw›ëŸü—‰‚íš÷æš„‚‰µ‰²·µ°²¼²¹²±¿³·²°±²²½¶Š±·Š¶Ž†ˆ…˜ÍyÑp 113><>998:&%''$''9344uÚCB~ kDFzfgÀMxö—jnv~ÐikulkÈÒ^~añ…‡”‡Í]ø~däwwsLÊikrîááÍðáæEml41=6101144e瓜€µ‰ˆ¶ŠŒƒƒ‚ƒ‡š›‡Žƒƒƒ“T“„„˜‡†šƒ™•†‡„‡†šœ‹ƒŒ‚„ƒˆ€Œ™“˜‡ŒŒˆˆ‚µ°µ´¶¶‹ˆ´Š€š…†š„–ä]øÒWN 5 72102612=22=254 B`xhqohDÑqohädhxxbg hfÀádcíeIXÿZ擟…‘ñ–‘ç–…†€„ëíŸéãß{NXÑjxehgÿMr  5  odcóà\väöÆíî៙žš™œœ™šƒ€’’›„“”àt@–àÈé„„ž™’ä™’˜†‚ƒ‚œ˜„’š‡†‡›…ógØéè™„š…‹Œ€ƒ…€Œ‚Š‹Œ‚Ž™†‘‚ÑóàÒA56756004  5 tSäÃõî^–ïÞÇìNiiNhsûÛdí꓇îË”€‘’’Ÿq{ç…™‘‡š–—•š…’Ÿƒ´ƒ‡ûïokP 47^føÓXj o    d[ooçÏVã—†@výpØôë†àŸ—cŸ‘•´¶‰Š„ú”‡N‡µˆšœtüöƒ´‡°´†´„Š‘„ñh—›žY™y〈¿±µ½²´‡ëPWU…‡‡ä{l]ëŒñuœL56 522>6166345g‡÷Çç4i75 }5j‡ߟໄ™½Ÿš•4P„S‰{úa医µ¸Š„äêæñön‚Žêƒèõ촼崗uä5à 45“ß„š h 2 kÛà …h†‘g jP= ”HÔàä‰à´†nhç„Dgô’›ó‘›…™´¶M·³Œšµ{ ™…Þâµlœ‰vƒ¿„¶‚õàk”ä‚íõù†µ½…°²‘…ƒƒéƒeçêúø„9 •€”½<=ñú30Æc45æ‘1†bcd 6ü2qn B4è‚b°I4‘duá ”žšŽËåä¶q“ˆ™•Õ´„‹¾—ë›”‡”°ïJÈ6 12 75=6™ÑV  4 5 7hçtÝ÷|ìãiêv~‚뾟Œ±ŠŒ†ŠŽ›†‚ƒ·âް¶²½†µ‚ÏUŸ„m{™ôàé„“ƒÈ³Š¥¶¶¥‰²Šˆ´‚¿·€¶Š´†–‰ è”ï‹Ón 50=<9< 5707615 0dcKeH Nâ†ív™åàÁžš¶…‡‡€æÜ›“„Œ”‹…Ÿéµ…Œ´³‡´‡bjà  H–ÛÌRX t fSÛ—gýø6 5l~1Öi|œÈ˜tc˜„ƒc‚hÚˆü´™Œ¶ÖŸmeƒîµ–ÌjŒöƒ²€‡Œ‹°æ^ïkçpš‹ceœã}ŠŒŒ±½´´Œ¾—•…‹µ¾˜e„†à‡îà‚œüéë  j <10565Hz7oÚꃌ•ã•Ú G±k —• œ€ •³†™ŒM’¶¾•e‡žìˆŠ‹Œš€S‡ë  >n ‡‡úù=e„䲌 “—$‚lˆ´s%b5ý‡—75ô:4Ãhµ’fÖn›‘à‰øOœoûŒ³´|eЉ”O‹š h±€åž°‚N¶ŠƑ؂·–‡ŠŽA„µ´½°ƒæ‡„Š‚µ„ê˜Ì–€ä{K¶™œh— 43 4u  416<  iìK˜˜qxobïðZcÞKt’lãžžƒ^Òk @Psèô•h˜×‰„„·›á×âx–þ–P4doÁÊ  sfÿ0î„‚˜œ‡maé€f…4”‚ {àßœp4Þœ ðžádþ„Ç•˜…—u€ƒyŸ™œ–è脀̓î“ÿ{H„Œú›T놗ãÂ’€Qȇ€ƒ‡ê˜î´…Ž´ã€µ‚†œ³¶ñ†‚‚›ù„웆~ç‡ìl`‚Bo565d5g= 6?<x0 34”5Ðkt–‡ÜD†ñ…â{vž—jöæaöž…‰j‡b—k˜^…„ b•øþ Åk xf‘4Ïc‘×ê“f˜êE∓Û•Úž6•…ᇲ„1¶¤ oBÃŽž¼D³|•1»¸·3³<›6‰°d´5ñ€k²`]‡PŽh âÚ€j}3g5ß“E…ÙŸæ·‰º¶¶±÷•†±Ž†°€ëz–´w†—…µ‚´z04 ?6<5$"' ><$%$;>03 5j 뵆‹ìûÞ•½¸¥ ¥¤³¹¡¼¹¥¿ ¥¾¹€ˆƒµ¼±²‰·Œ±‰æ¶‚¸¥‚ƒÕi0?2$%890'!% !&%25 01=3 1tïh| þ†ƒäœœ˜U‚·œç„‚޵²³±°¿´·¸¸²¹»»¼¶½‰žƒƒµ¿¿´Š„™€‹à`“Ž‹‡ïc4ÚÏØ1›|4=7747021 ;; 3<03$;?2  1?3359k ?<}k~d1Œ‰„—‡’dŸƒˆ‰µ¼±·´³§½³¥¤¤º»¸¶±¾¥¡¡¦º¼»¸¦¤±¸§§¤¿·›íµ³´µµ‰„oЊ‡\b4 z 604?%?>88:&'&$$%98$%%;?=%%=5 7%$$%0 4 02667475ê—•{`Í`„‰Ÿ’’ŽƒŠ¶±°½»ºˆ‚„‡µ±¾¥¶µ°¸¾°¾½½º¥¤°›…€³³·¾¼µ±¼¹··´‹¶´lm픆·ïí461h1$:80<6 ?=6  Ë2< koË—‡›ï€îjÚ„œ{ဇßq–óz·‰“ƒ·Žõ]àü䆀ë\ž’‚œ…´ìm–—å……˜€÷t—œ]y 476>33>%:;:372<2 6 ào gäffœŸE‹·Œ˜°¼‰´±´…´¼‹‚µ‘½º³Œº½ŒŠ‹„Џ·’‡³¿Š¼²„³¼…Ašµ‹˜¶°œ´¾îŒ°ˆea›þÔ` øG{æâ3 <05197=$?  30 770bö‡‘qŸNî„•ÌTx•xT•ò~—{háXyÿu•´Ž”„ÿatôØŒˆŒ……±½´Š·±ŒTêšæäZÖ^•gq€‚Ÿœžåj 4507 Jð46 65 {–—ÿ…ƒác™Š´µ†‡‘—Ÿ÷u•Ž´€…œè÷àçæDÍàp€’rùìèôž›ï”nDô—˜ˆ·´ƒŒŒ‚d’‚–joÁ‡Šƒ‘àëÒç…î`I샊†fwïé7 Õk 6jV…öã‘—i5ˆ±yfVjzfÝŸŠòsrj 7I…BJ쇴Œýdâšl v·âDhbÚ…ƒµˆŸÅûïm ‹Šžj䙊ƒÝÔLB ¶™Åg•„Œ—ÙÐd 6‡äi 5”„ˆ·¼½·¶°µš¹·•  ’âã‘ì7?9;$3ío74 bo–²¥»²³€“šµëûùÇ43=1 LJˆ‡…ÏÖ郘`6xíƒìàíesi5>9<4„˜‡ýbúŒ·Ž·³¼¶ér•’dåÊMÈšŒ†—éK_ 56sÙèõ`lÏ–ëe[D•àumÊ„‡´ˆ„ŽŽ€™pTn0~jdÔ—ás›˜ï“â4 TEh×ô]–lÄêäj76JÛƒ†ô“µŠ‘–‡Ž‚âZž˜Wê›êbÖƒ€xÞ54y –•oŒŽC~‚„G{’€€Z󄽺µƒ¿²˜r™äGfkаœgçµe Nqqk51†ˆI†…k4c 14=<4’ŽbŒŠêx‚Ž›ãᔌ´Ú‰ŒÄ–ym51„âO‚ˆíõ…äÝ~•Ͷ½Šœ€½¼Íø•™úi 4 „‚“—µ´“Q^  64jèñRáÄ…‚–c^ú]504åfà’†›Æá„ŠƒšèÙð†ˆ™ù–’ššÚX›íi  ~áJnò蛘—呇•yaiý…†„š„µŠŒ˜Œ™l 7 ncjâ‘ÔkÈã|6716 {—ôf‘R  Vz·•ý•´‹µÃ…„ˆ€Ž·Š’ƒ±‰Õ˜irnfCl‚ŽD›Œ‘YÍíïjⵚ’C’е“Œ¶ŠŠòÈDûbÎ÷x 554 iuJ~åžC ykÕmâŸíënÛ–œ˜†Œ´‰˜‘ˆˆšµ…™ø~ýè•“‡žÛóÃÇ”’Ÿ”₉œµ³·‘™‡›ìôoijr—õpúéšoI6 gvpî…z— ù5keašBn‘ë{œŒ˜ŒšŽ†Œˆµ„õg_‘þa a`x—ëÞü„ž†PoΛ†Ž¶·›…˜Œœ˜îœšà@úÓåõŸÈFnéb 53a•yÞM•íg7 tw fQýÒ‘Š’Ÿ†€ïý₲›‰’Œ…€H€†„hhB Hôoó™Ÿh瀇•ï–×EùRmtšƒµ³¾µ5ö´»·d0÷ývc U’f omo4 kíkkÉ™ú|dÁ”âbÉ 6yñ@䈴‡Ë]ž„çQIžy€´‡‚³´Œ€…@ov=>3 eI77úˆ´¹³´„—Ÿ 64 ø‰Ž†‘ežšŸÝоµ3<2Nˆ¿½336 —‘>8< Þµ¿³°‰ˆ±ˆŸåyÔj1Ìÿˆ‰€†ŸêµŒˆ–ä 7 µ°€òcÖÍw 607ìµ¶Š€‰Šµ‡‡‚àh5  x––„žŽ›…ˆ´„54b›ž›hxÈbÊ•„—664 Pƒ€˜·³„……€„E wpÄ÷e˜³¼‹Žµˆí 4éwDi™‘Æhc4 c…šxH„…ôÇ†Š‡òv”4 ýø€Šœe‘°¼ƒbbj‘Ÿ6 rêádB@`JÖfåƒïÔΖ†™‘üáqo}H÷˜è7Û„››Œ°ŒaaÓI`ˆ‡4biô”C fWx|–Œ‚™ð矞ÆD„êcjpxkÁþhwXëíQ‘‡›œïagÝžë—Nb 5R`悃‚·—ÿDP æàgvûËúc•°´™…žà•—jg{’‡•GiŸëj65 R…‚…‡´´´´„唑éb  ã™Ùòµ·†™…é16ÔëYyä”ÐÑo64 ‚Š··Œ“´†^5 yroð°·‰Šˆ´„h j`pòÀÇÒ“˜7{ ^„û~š·Š„àó†´‚ÈZ—d4ç„4쀌—–œ™í÷Õûôh ”±€22jk<4_–\hèµ·„}¼§°ÿéá –ébšÖ¥º‡“ê5hêcC”…•¶ƒ75 =8>5Úžöm˜¶²¶€ê‘ˆ¥²“ù=%3^„ì…´“ÿ“Š¥¿“ï>'=^€â€‰þCŒ77jj72‚·‰†‚¶²´žÄKp‡±€732Œ›Y„²²ŒA~†™”<3„œ5ŠŒ@ 5 Ìú´‚àüƒþƒ½°†c41RŒ·—Wm”„ìl“ˆ³Œ{08±¹‚4=5o@ 胘•ÐóÐ52h¤£¹dí˜î‡bÓíÓ62¶º¼“sãbJ„…Þzn <1ñ‹·â 5´‚—”†‘ ¿½ãàg ð˜í‘•–f ôˆ€„„–r à–FÄ–ëgdn 0ˆ‹ë”ç臌„ôyêƒe݇vŒŽßdš‚é‘¶ŠúEœµtg—ûc72?<4d„é é·‚ A„Ÿ~k 298?755 ^èÄé´¿½‹Š°¶ˆ‰Š°³°²±‡ͽ·´³³˜4 `˜žmaõƒÝ 01f‘‰µ´ˆ†áŸ´´†—莊] 7o4<5nnx13fŠS臒^f‡ˆìb <7”‹“Ie ú…Çz¿‰ä„³·ÁcФ³•ƒ„Û’€žËú…Àúo ^µ…µœ7 \›³ˆ}—²‹Rl7 Û5‘É 5‡ jeoÙƒ‰Ò˜„P´³êÝoþ›P@îTœvú‘±»¼‹žˆ‚ÅÉ‚‹™ÿ€`ó´c€±™ fï5e–„„ø@ï5 eŽ€æèšékîŒû 36]@62€‚cj—vcò{76}˜‘pD†°‚‡â•Ÿ—jÊ…—]„€à{ზ뚀“ƒ°´‚“ä“€ƒ}Í”·Ž`iÄõq ႘ lQÙ™d’†g…ƒ5 nãy4æ= _ šŒœd ïë5³æiœµ–Žˆ•ižŸå\†¼¸ŽýƒŒáš½¹‚áµ“ka–ÉkÜ…Œ”’•gŒ‘ aí5 ðƒò Zx…æm`1=1nh5rìŽf’å6277 4Å…B—Ÿ±¼‡—èŸýàþ˃±³‡ÿBš“„´º»°€‘Áñ—œ‹²³•úŒ–l ×’Î䌶˜0  ´31 4Ì64 Ÿ³ˆ~iy|~å’p73  긿‘ïad†´¶„tlFLò¶¥¥¶éæ‚™“µ½³¶²±›œ„Úƒ½µ} U™„†˜ùgd™µ† 6é†M 11720 ä’å4575ÿ’˜ž  ý‰ƒR 6Oa„µ‹”zhwi÷ˆ‹š“é}x–ŒŒ°¥»‹‡‰·ƒœ·¾µ“‚²Wehm…‰„ô—Œ„Þ˜5z y´µo 5ìÏ1n2;7 1 ™ƒn10ð…阄7 Ki—Œ…vjL‘™†å…ŽõáŸeK²ŠøñŸ‹°²¶€…‹¼¥²µè’¶¥¦±2'2°­éê#°¬% &<;Þ†2W›¸˜Ž¸2а$7 8"'%$5¶˜ØQ¸¦§¶™»»ìµ%'8>& 84% ' 3;56·ºëˆ²±§¾º¥Œ»¡º¸²º¥³‹¿³ç2>07È2008&$<04µ  ¤¸»¸³Š·³¿¾µ±‰˜àåìyØn 51:':'%'!"##, &?<P]f 슽·‡—ޱ°€¶µ–µˆZ7Óœ°²ŒÑ`…^lë“}ì±±†@jn„ÛãÏôc„žž”á´†÷–ƒ½§¤§¼¥§¥¹´¼¶šãžŒø43;?14;$>2<75=01317 0 ó‡÷çȆ‘š“ççlté란žj•¼¼¸¾ˆŒŠ…ö˜€ò3$;6 7245 ÆÔ[啜‚·¼¼³¿§ §¦§¿²°¿¼±ƒ„†„‘ì–ä72755;1<38=355 54 àèóyû‚„Œ¶¿¿°’µ¿·çö´‡…‚–”4õ4&?4%$= 7aðhI™²‹Åf³·Ð‘²³¼´¤²‹µ‚€²»µvè½°jˆ¿·‚ƒ¼Œýô34$"%9' $>=>0br—u¶†`¶’ã“´ƒ€Œ‰ˆ’Ü•2ã3jõ욄֌ëþ‘45qã3=>&36 lÏþ¦º¶³º ¥¸££¢¦¸ §¿°„†þèÌ <163'%?31%'%1447XÍô¿ˆ„çï‘â„‘W—671?5ž•5Cäi’µ‰¶½‚…Œ‰‡µº¢ºµ´´††²¶µ„†hÇÞ <’Ú1= 7ÐsDÌjdlœŸ±·c~ãšáœœ‰‰“ÛÔ7HD6 5 îâNl1of™ilìlVgÿcçWjvxuƒ€”BB”ä“P’Ž€üއ…™çµ€Œ½¹¸Š±·µ‰±µ€—“„5 `3W<8 36mf„’w·°ëé´°‘ƒˆ‰š€¶Œ› ›œD0 09ko4 P…œŸŽ•iêˆZ‘¶‘óŒëì›´‰“ø…¶147eï 21f ѱC4>60u• ]¶¶š´»·†‚°¹›‘“¸³à‚b^ >&{}5Ÿ…lﻎ~f€‚ì—ý‡K{{9=ù1 $?ð[j—•b†Š€€º¾‚‘ˆµŒl’Ä@é„ÍI´¹‹‘bÆd gè30367×34 já’†‰é·¼“µ±³½Ž‰¼´±Š¶‹`÷SIï20“‡64ú57vôi‚˜_7“œ™‹‘šœƒ†ˆŒœ˜’ùŽ‚çpZë…åe lÃâéímjדêîêlåoiôí|wš µ€ug’Uèê‘€…šùŒ³•úàÓí¶µžfàrœïï˜  4á“g 4ôakðaq±¿˜–ƒŠ’þ€µ´Ÿ„¶Ž€†‡„@••ù5 ä7~45 –ÚcÉçpà‰šêìˆÉM°¸¼´´·¶¶„†ŒŠ˜àå|<64777er47͘›™äyhÀfk´´™„‹š•°²½¶”†ž}ÆjȆ^<=47f4`„jj|D‡ë€Œ™žàk”õ³µ‡ˆ†·‚™Ž³s•˜ì ÿ10 < ` æýâdÖRܛ▚‘É™žhÓ÷Öq–‚ж¿ŠƒŒž„Ꙙ€†g46 nO˜ž„€€ƒš…ñsûkgf“’–“혟µ³²¹¶Š‹“ïò’ÝmvR5339?4   ZåsžŠ¾¼µë@LîôžŒ·²³·Œ„Ÿ†¶½‰‘Úx 5111454553?04hìì`”ìIDzŸ‚·‹êòúöÏù†€„’„‚µ´µ±ˆƒ„†šJàú510175 Í  ó䔓HV’š‡‘œŸ…íòÉùÉ[ï–‰ŽŽ±··‹ˆ‰‚‘NÒög  710}R€ˆŠµ‹ˆŠ‡šïïë@u|І’’†ˆ…Ž‹ˆ€žû–Ù{6167306k]eðÊicyç“”…†‚ƒ•ãè’†‘ÓÊ™š™˜š˜í•„˜„‡‘à‡‘ààe 11   ýŸëí盃˜‡‡˜àV@‘JØt[ÞI燎…óµ¶¿¿½‚újˆˆ´ èT4ö>º=gŽ µ Š?€‘1à …ÃÈ ãöçc€çôØöÚ5”BÜÈáÖðè|ˆ‡Œ¾‹¾½²°¼³¼²Œ‰‘ñô†‘’54< $"&#'&'%&'$8&&$'$$&'$:%$%%:?1iŸ‰‰·°¿¿¾¦¡£¢£¡¦¡  ¦¡¡¦¡º°´´·¼¥¦¦¡ ¤¿½³°¶°¼³Š‹‚ˆ†–’äjm77 52=010262$''&''&&'%=0'''$96 m—€…‰ˆˆ·µƒŽˆµ¶¼¾º¤¡§º¤¥¹¼¹¥¤º»¥»¼¿¥¾‰—†”è–íᛚþà–“•äáôwldw_ 68>6 45 703=<26 41639::%$;<=>9=3=>>8%;=321  66 j矄Ÿ––ÀN。µ²¹»¥¦ ¡§¤¹³±²»¥ ¢£¡  »½½¸¸¥¡¡§¥¡ ¥½²²‹…·‚€´³·‚‡æoifŸ‰’7<;9?27 0?>;'''& &'$;0 712>?3 타€ŠŸo {‘‡ˆ±¶‹‡üxaÏ“†·³²¦¡¼·ŒŸAx‚·¿²µ‡•wkÖøê…·¹³Œ‡~fÇ焵ˆšá` 4614kÜ 1=3=?4 547=>98;:;0561432   ua÷›Š‰›‡µŽ†ŽŠ´µƒŽ´±²¼¿³°¸§½½¥¾°¾¤¹³¼¿°Š‹‚޶°´Œ€‹°Œù€ˆœŽ¶‚·ˆ›”êÂkC’ãinËM 55lþ604092 1046910;?743? 02==>2 ê•JHí]ɉ€äMcxaç“ìï¶°‚íŽA•†ƒ·³‰‡…”×ãš“ä瀱¶•éƒì㎎€ˆ°½°Šµ€í’„œàá’Š•_n}•rJýJ61 74 7 207;>446651<7 5 Y„’|Gh“×욟†ƒ…昉…Ý銴°Œ‰Œ‹´ƒçë„··œÌže{èê…šìŸá™‚ëjl€±½ŒïŸ€’jkì蜀…™íÇ‘Ðàô‡ão ZžÈk6<3 60o 46=7æšß•„Gkጙ攑Eâÿ’·±ë‚¶Žgezóá}¼³Œì´žÈzè¤;¡›…˜œž%Œ4h”½ù¼ìò™—›µ‚•…êê4 7z7õ·iún5 ±í™„„†5 fb†´°¾²‰‚Œ…бµµ¥„ú4'9$0735$& , &%?3Ob 2%:$1 c½³°²¾¡£­¢­­¬®¢¬¬¡§º¥¤¤¤¦¡¤¼°±…‚…€“š…4<<;%>417;!# ! -,# #&$&& #"#:98 7100316 gOñ€‡é›‡í÷”Œ€¼¥¹°±³¼½½¸¤¦¦£¢§¹¾¼µ†Ž¾»¸¡£§¥»¹¼¾¸¾¹»»¤¥´˜˜n“呆þÕ 4574 <9?;$$?23 69;' "-"&%%=19?<>;?1v 40<>91 U˜}m½°µŠ‹µµŽµ¼¿¿¤¤½°¶‰†½½»¡ ¢¢£¦¤¡¦¤§£¡ ® ¥¸¼·´±´¿º½¼½´—È•`Þûi™†f 733601 ===$#""--!$931522<:%$:::0 e02167 “žž„…’—”vñ´‹œ‹¶†ÿã“—‚²²°¥§¹º§¥¸¹¾°¸»¾¤¹³´´°ˆˆ°²´µ¿¶‚Š´ˆ…韀œå˜èüqe 6 6261=83093045o 1 nF  já’•Ÿ’IO–Xa’‹·Žµ³»¶“ꕜŒ’‡Ž›äÁòï뀈¶²±»»±µæÄëE…ŽŒŒŒêomM_@“‚”Lía51 54å 0??<$ &>><   âsiì—Ÿ‘@ùëé”’…Ž¿±‹²¶‹´°±´·°·µ·ˆŸˆ‰‡€±º¼²¿²µ±»¾¼¸¾¼±·´Œ…†€„µ´…€€åij“—•Š…Ôüæz Ðq33766þÄý  _mÕf[mö†ˆƒ™åá„ïb’„SŸii^Ba–†‚·‚†·µœ›°¶ñ„¶“k—€•ï—æê𖈃`bŽ„ë€t’j4 2169  hÿ gÈmò…ÿdãÜ`’‚ˆ‰Ÿˆ‡I嘆†€Œ˜ò›Zo釈‹Œ„‚·±¶‰‡†ö^ñÚ”€´Žãã”}ôv”Œ„üZóNf–•=<4 64 527 ™…YĆßvíOC€´Q“—fny’ˆ„a•‰j[æ–´·”…ŽèbVüŽržé YÐrƒšÇ‹•Ù㿤´˜5í—è‚‚žœ55”‚œbè 5ò…tË”„æošà4‰z û\o“·¶ƒ‰³x•´½·¾°’…¶–M—˜„³½Žak''8$!9541d4 ‘è‚…ã„ 耷´°·“ž€Ž÷œ…€¶´‡Œ— ??= 617 néafÇá`yÝ wŒ·±…âü“kÐ…Š³²‡Ëë⛘‡‚€…ñ™Œîå„’Ü=67 56eÖïÜ7Alž™†äÂß„ò`[ì벳⑎œxê‚QVååmœ†‡ˆ’|0c 7lñGÅH`ï0‰›´µzi’䵿¶‚Љid€÷d„`äš’â‘h 65~ú†doÀevŸêçñ[r—‹µŒƒƒŒ‰ˆ„@XÄ“Ÿãˆ±Žœøm5aîìk‘çùÊ5 æÌaí”Ìfh Õš„·±‘…€ë•~”’ï÷g5y—iõä 5|íõ“`r617 „ŽÊ}þäowv܉µ‰†‚ž‡´‰”ãè÷mjîkMëåAjË›‡Ö6 ~bjbDèÇMŒŸŽ…|ㄊµˆ´Šjvr手ÕáÙ䃃Qcë–Ëèìïë4 dühšžçŠ…~‘„àчŒŒŠŽ†n7Ébå‘l Yû…ž†Çf 2<433—‚™ç€·íu”’–ް·‹·’íaHžäèï`Äm¾¼…ŠšÓ瀛ÐÖ59;006s•å„„iÓë䆈…˜~m‘µ†nns24Ÿ‡‹¶àc•†æÓ0772=3 èK`a´¶ƒŽ‡iolöé—ƒ…Œ´„` 7ãŸî´÷èìóâ‡â„Œ˜c47  6omèµ·‹ˆ‹ƒƒï}……ˆµµ˜LFé‘—ú‚“á•…‹ˆ…„’a  606>oÎè·‘ÿåòt~n•žœ…˜ç–†XŸètÛrlöœ…ž†‰ŠµŽêì‘ÿï—ùj 63=07 5 së•—MÍüìwƒž}mik圞õÄ’‡’èÉÍå±µµ‡™›ãá—„óYšët532936ÃaAl\rhhàŸÄJŸ…™ïniæ›ã€‹‚Hhe鞘´±‰šš”ç…Ÿ™‚›Ÿ  64 ød`Ðæ ^“‘ˆ‰´13Xˆ’’ÐŒõŽ@åCR¼  ž%±2 î—½ÿ•ڜ틃˜™I7`4œÜO4574h²‘ˆ†J€›‡›‰¶¤¤¤¡ §²º¾±¸³¼‹¾îé0661'836  ?%'$'%<1 CÂÄ`a’á’ƒ°€Š‹†Œ‚޵¶´†ˆ¶¶š‚‘š‹þýà猵µ²Š‹Œïž™ |fp9$'$'$&'$9%92?=1%:c 72=   fta‰´öQž¼¶°¸°¶Š²»¹½¼¹»¥¤¤¦£¡­¦¼¹  ¤§¸°Žµ¿¼‰‹ƒž‘“™EÈ325??45cj3950$$10:%>8821`<tòx32 73 0>3455B ú“…ßž…mì¶°€·²‰ˆ·¹¿´¾¤¾¹¤¦¡¹¾¥¶ƒ°¤¡¥º¦»½¹ºº°°¿±Œ‹·µåCÀ …·µŠ·çž†›çG”{þj m0<6 15<::??9;:2134 05 9$:6=>7?&!:8:::=4  415ç˜èn€‚àãx’‚Œ¶¼°´·´€è™Š³·³¼±°¶¹°‚€·°´³·‡–í 怀‰·‰‚°»°·Š‡†‰µŒƒƒ†–Ãû•v@dŸ c…”m 4 ꇓñ\æÅeåárà„ƒ€ƒµ˜Ÿƒïxš•B’›œ’•yläïë‘‘ê…ìß  7  He˜Ÿ™†Šï5 bgE•  15c @w]ûf53 aúÊkgô㔀„˜š‘ƒ‰ƒ€´·´·¶‹˜†èý„Ž·¶³°Ž€‚ˆŒ‰·¶´ŠŠ„‘˜écm™ƒkîäÊ鿀°¶ˆ´…‘|døà—†‡Œïc Z`vï’l4 nas 6463<24äp5u€˜KLæîod1‘px70 øîž‹Ž’møãhf{îל„ 5M„ƒ±½°ƒ–…Œƒ·´‹Šµ²½·²´‚Ÿc뉋µ·ÆneÐÿa`PAdxqÛL3<4bg 6 ^Ì’€‡‚‰êÔ•f76àì’„d4 k l”‚ˆžj1 nMé…™4 4ÔŽ·Š³†êÁÕÓ´¸§½´·´´„Œµ³°³²º³›‰•`Øä–±´‘•ëR65 75Fz“ñ 124 o–€’Ãïw  237áágo3%174Ñ‚ƒ‹‘† Žó¶¬ „‹4:‡?ƒ€±‰¥”Šæ4@íð±’´³…“~5 š=€„œŒE‘6Ìô¾¼¶¦½§¶±·°ž²‰µ²¤¦±‰Š„™—Ž…çˆq…Y!-#,/.,/-" $! %#/,-!!%=1 4 KÆE’‹¹»¹¡¡ ­­¢    ¢¢¡§¡¡§§¦¢ ¤¦§¡º´¶´è‡Œ‚ïdf0>88&'9820<2:'' ! !&'%1h  ×gEa_“â514 ‡ŽŠ€„·µ´ˆ‡´³±±µ¶±´±´³¼±‹‰µ´†Žƒœ„ˆ³¾¸¼³·‰ˆ‰´ˆšaÓŸ„€‰ƒ‘ãl } 4 5018;%8?<55413>;8';=3215 54 715<  45mg{삆‹Ž·°·‰‡šš·¸»¹¾³µ´³½¹º¸¾¸¦¯¯¢¢¡¦§¸ºº»¤¾¿¹¼²µ‹±±°µ€‡èáöXûê“ä540067 79&$>>;;8%&!&$>31??628%?7==7=?>?0=156?%922=6 4vé‘‘€êjoáëÉ”…›œš€Œ´±¶µ´ˆµ°§£§¥¥º¿¾º¤º¹¿¶´²¹»¾¸¥º¾±´‰ƒ€€Œ…|uÐRa57 516<>?}l}} `jr‡Å wßh ãš–æ˜ØyáÌýÝ~ è”ÐéÁ–ìõˆ·¶‹Œ‚‹š€‰³·ž‡˜Q|í…†šŠŽáYzLb 77 ;$=665442<>;=tz`dgYô„ùÐnAcRâ×ꇉ„j …ž•à‚’ƒ…‰ƒƒ“^do˜ŠƒŒ¶¼¶´¶¶‹‰³²·¶²¿²³·ƒ’–矉³±ŠŠ±Œ`êYžåðáp  3=1575   5 5 ÒáyœžQoýka™” 302 ng  —Ó55  oŸùà’š‡’е‚“•Œ¿¾½°µ‚ÆáŒƒŒ´³²†šŽ‹‚˜˜~fž†‚–çìki e4 ÷öf›‰wÀ„Üyûüxg~Ø]izm{T ßËÚ e 4iàïq p`mœ„ꂊ‰‚–ì후±¶ƒ…´Œê˜€àã‚‹Ÿ†š—ëÙóMko”‡åjk Ãa áOëê’…ìÃ}–韈³¸°…†‹á‘„ìëy…ë‘÷Ê45 5Ñ–4 <05526 474›´€Ÿ’}þ€oÛƒ±‘•Œ~ËÕàþâo“„Œ›‡5=x±¼ë<„ƒ‚ƒ†–>! ¶£¤›µ§½ >;牷ž”Ÿ´¥¦¾6¾¤°±µš‡ŒŽ™ 80`5=%37#,#$$'84274 Ð…‡ƒŠ´³´ìIj—ˆŒ‡”°¢¢¾µ¶»£°9#µ†‹²°±†c 7iœl<$ hhø m’´ºµ€¹¥¼‚œ’¦£»·µú5m’=‹›a…‚’è !"=ø74ý°‡%/.> 43'9Óù30AŸ ; €´¶³·±µ†€–›½¿ƒj‘¾¤¤µ…44p±³€é†–hþy=8–Œo= 0‡”•±¥ºàœ§§Ø^³º¹‰ß…±‹<6X´µC07=4—36äR6%''5K9$l²‘38‡‹Šf™²²¿¿…ᜈŒoš°·“^¸¯½´¿³ˆ„½´˜±œ17–Ë wd7À38ê±j<ói†³Žsì°¼â錒ƒmš<7›l?-$v• 49 ráj25Ke?  =4}z“‘IC–Øb³¡†1¤¤uí¶²¶‹‹ŸÍˆŠã¶§²{iŽâõ°Œ2ˆNÿµ‡7 „ì1—XÑP‡›€ê•}P€„н²F^köæïÙ0:= 4fÐîš4„Á54 34žšJm`…²½žY蜌°±·„ꟷ¤¹Ÿ’µŠ™Þ—í‘‹Ggÿ•i ïta„  4 È{懄’rG€µš‡´žn·²†Òm  bÃàkrŸšÜÑo‚òfjc›µ½´ƒ´´´³Œá”±¾µµ´Ž…‡Žï{z•…Ô17í´› 6Xêôkeúãó5m†’™Œ’íêéDéß}am615 1> q40 5 ÛššÑaê€ö cuž…ùe–°³‚µ¾¸²³··°±‰…„µ°´¶±ŠšòV`r„“áÌꇑð^îÅêžàcþl4îwÕ…ƒåç 5=31   dÞiÂJj”—wHväÓmöüÛ—‹±‘’¶´Œ‡´²²¶°½¶Œ„‡Œ‰„žêäÑF雞tnPòíñÚÎóÑÔZeôìQYöÝ mN{[k}‘äd Wð 4   auyszhjw‘–Ñc_ûøå—…“v]žŸ”…x絊‹±±±–ê㳣튆3º¡%›®93?„? aβ³s±¼3µ¶" ¹&';=%™š±¤º¤¥º¤»€ë‡V 628:;9$&:9;=36773•“‹½¹½§ ¥¡¦·°…†š559%''':$'82;:8'%:?>80g”…‘€ŠŒ„寂æ 11676jáë—™‹˜†‚G 0=?9==< 5 ™€‚±¿º»ºº¿¸¡¦¡¤§¦¦§¥§¾³‹‚”ꚀðœÍ 3%0=>9=5  pó—š—ÒzÂëânmb÷wæý•‡‚Œƒâ‡µ›ž€”ú“ðân 603<$%9$''%<167q´°¶½¾¤§¥ ¢£­¢£¡¤½¸½Œ†˜›Œçc40047`  5 53ds‚‚‚†›ƒŽ‚‡”›Üµ…™ž†ë 42607%'>>$9226 k@Pœ^„ˆ¶“°¶µ½´½±¿¤¹¿¤¤¹»½»³‰¶½²ž×™” 1?= 2%:7 215  åôJÂŒŒŠ¶½½¿±Šˆ……ŸÖo4   iTDiKlk 04274< 001%?4291 B‰‹½¶¦¦¾  £¡¤¦ ¦¦¤³²¶ŽèlBÄ5 196 2>76 ñж†Š›ŠµŠŠ±ˆ°ŸT—äo}v–b 7 14 7݃k’ê…hng3:9 2%20 ˆŸ¶µ·ž²²±²º¼¹µ¿žæˆ€Æ…•J  ž‚žƒ‰†U³¸ƒ´¿±·‰˜‡‡ŠilW 3 0f5î›nï‘o•F<=8<18 á÷ÆŸš˜™š€†€±…˜„üg‰‹beâœjætXh‘–Å‹Žˆ€Ž½³Ž°¾±²¸»¿»¾¼¿³Š†µ`—763>$8991745m 5 ëLœl††”ap‘‡I 767%267<6 Oß{‚ù™´–š¸‰ˆ“³I¶õX¿´è™ùží‘œ††ŽŽìL„ކ‘õ‡µ›šˆ‚’f战癵ŸƒSæš>ù„zÓî5 k71•î4fTaçà4  6 6 7mÈÏgçê倈ãµ±‘‹¥°³§¼ƒ±º±š²±…Œ´wÉŽôÌömÍN`ۋ솄™ƒ´±„„è{ç¶±”‡Ñx17`2>5Ñ > çívRP™›Ígoú‹··ðf Pc174 e—Œî“qíµ¹¥¤¥½²Š¹»º§µ‚‡{™¶±´²ŽRµÙ4nœ8149$?d‚±½„40=3 5? ŒžÊR 51 4&%!$%$ $'116A72ê´µ  yíî´‰ƒµ±°Ž°ì…¸¿¥²¥¥´´›e¿¦¹¸¿„¶è„¶€†`54tw³±ƒŸŒÂ¹‚߀˜š‚Ûí~µ±²ˆ›2<16=î†ó4  8:[6™ƒ¶žÝ6 5m |taã‚ç…³¶µ¾¹µ‰¶±½µ·¿¾³³¶‚€„—ãûœ†ûáS 06–`j eˆŽŸ‚î{i~ Êqsâ”óãà091;%2 0<6 cô’˜Ð`Cb  Ëêâ{û‚–†ŸÖ†âↆ·Š´»¶ŠŠµµŸ™ˆŸ’š†‚ŒŠ_f™—è‚”•އ“’ƒö—þ5ìj—mã’ÍáêMj“hoçlC”67319>?15;2îkìŽŽÍæ”•ý i |é—dpZœžè“„²·²´™‚‚Œ¶Ž¼‰‰¶Æsˆˆã•·µ›†‹¶‚’µŽš×ãÑ^Ôá íYæShAbêè ”à—363?654>9  k‡„™†•–ÿÚ 6ø íä^±ˆ…ˆ°¿³µµ½¿µ··²ƒŸ·±´„䀷…ë—‡°…@‚‰€™†‚þebHíÐÚoktàvžäKmOcéÄÅ <16607>32<54èdŒ†~q†Î}}𙿠 RÍ`î󲶆³°‰‹¶¾°µ…’±’J™†‡d–€±ŒŽå™·µ€æ€™„Í„‡—y Db l òÌnòÜœ’û 670%?  aL‚ƒfO…ãf‡a5ä› 5›o„†–›‰‹±ŒŒ°±µƒ·¶ŒŒ€ƒ†…††“í„¶µpÓŽ¶„kˆ¿‡Œµ’ý‚ä1 ØÄ4n^c…çèÝ–7_X46 4 7jÛcdu™€ïÚ mú—cù†‚ŠŒ†´¼¼¶³¹½žê†´²´Žµ‹‚ê—–P…‡’…éQœúPi؃‘ÈÐýnngðd60ÓgË>µ¤“C&ºº-‡£$ ‹z::1¼°[¾¦yµƒ-¥%:;0Î4zÅ‹º¸°‡S¶º¶½€?%02-#$$&&;':=0u턃’| 64ØåŒ…팚ƒ²°‚5wA4?%& !&&&"%99:$1ñ™²¾§   £­¢¡ ¦¤½±¹²¹º²²´·±ˆ´¼¸ŽyF†³µDW ií<%7 44 4“¶°¥¿‰êˆ°·Œ•€Š”îï14=6 9>=62$$6?600?145冔üh㎵µ»§¸¥¹¾¥»´µºº»¥³Š¼¸§½ƒ…„ŽŠ™f 4;1 18; 53? 19> i–µ·ˆýë¶¹¼´‰¾¡ ¤¼‰±¶œ66 2>339;;<::3=<>264D Ñ uëü퉉‘‚¶·²¼¦ »¿¹¤²²»¹€€Š‡gãýàkJ06ÁÄeœšDdúß”—WÀÖê„Yÿ›¶´·³½½½šëyJx0?1 0;'$?<$$?$$%:1 5NÀ𶀒휶™ìµ€L‡šãE‰ƒ°¶Š—€…‡µ¶ŠŽµ„°¶¶³»½ƒ™‚„aJ 689892 7;1jÉ·›€³‡Œ±Ž²»·½½²¿µ°·šþmI539'9%'&!!;917 ’—Á˜€”œÂà™€óHüb   w–O˜ƒ´½Š°Ž°¸µŠ·´µ‡Œ‚´†”‚çw’“[Ò Nt“’ü€‚Ž…‡³¶µ‰µš˜Õ÷çoG07c568 4;9r×wµŽ„³´™‚°ƒêÂw4:%3642;=à É„ž…ì²¹™´¹¡º÷—ƒ°Œ°µùfF‰†‹Ó䘙n™—láµµïÒø”à…w—š—1 4 15  òÖ’b„†’·µƒˆ³°¶‹°·‚’wg  60:%:$%$$$:3<75_Xm˜¶ŽŒ°‹¹¾±°¹½°Šƒˆ›˜ƒ”t—í–úîþKŸ–ž…‡„›ŸÛƒŽš…ÄQ•ã{Ÿæê 5Ec65Û1Pø•fb‰„ã•þ@ð‚û ˜ˆ€< fµ“÷ :  7 2^òñ =ý¶°²›à•¼·µ´†è˜ŽŒ·¶Œƒè™D‡ŒŒ„pòA—œócjáãsopPjaYîHçšè„€Ê—áçúe5 ·žƒá⥊¡´4Õ½å5—X¹€¶I3AŒ,"9;?VíD°¹¼º³¹¤¶æˆˆûÖ 5 4bdhóå I……똆••·µ¿¿¶¾µ¾·Ž”Î %:8 $01:307128>??015lž†‰‹´±½¼‰µ±ˆ¶Š¶€µ½†Š€™——029$;?73ãúš„ㄵˆ¶¸§¡¦­£¥¿°´¿Œ‡µŽµŠ´·woâ55llß=93$:$'8:=371f_ž—›†‡Š¶´°¶³°´´µ²°±¶‰´úr4 3><;9%;<<9 7 yâÞ“Œ‰‹°¼²´¿½³½´°³±³²²³°Ž´¿ƒ±¶Š±´¶ƒ— 28$%;!&&%$%?21 ퟅ³ˆ³¾¿¤¹¹¸²¼¶³½´¶·‰²·ƒ´ŠŠŽ„ŠŒ“Œ€Ÿ—q„„Ÿ‘†ŸlI <%3$ &!!!$9:3 –êŠ·Šµ¹·¶¥³³¼´²¶Š“ìçc 063=$;$'88'=03 hòæ‹™‚´Œ‰‰¶Šµ´ë˜˜ó˜æ”ù„oe™…‡—´‹ƒ°Š¿½±¹µ·‰Œ„’ë^–| 5 376317636 7êíˆ‰Ž¹±·ˆµµƒìÀ— 23<=?:>%%693 IfEû›„™´·Ž²½ƒ·´ˆ‘„‘í` oLz”wr†µ€€ˆ¿³±¥Š¤¿²°²·µµ‚³ž’•Ê—  4 4  {Õ[ïš윖š–È4<63>:0=;>3680 „ò†µ¶Ž²¾½³°¼²°¹´ö™º·C;?1692 5 “µ¶‡Œ¶º¿§»º¼¶¶¥¥¶´š…šR…™1 4^=!'6§ †$"7¸ŒwÎ彺µý5 Ñœˆú 59 j>389615 ˆ²…=±¶˜e›…‹˜kr¶‘—ŸmrMՀ➙égZ™±—³¬´† ä§¾¤´ë˜•ˆŠ‚°ƒýSãñ_l— <=nd ?1=ž°$ê´Œvát ûŒ1 Qn63 1öd="$í•‚¶§ðn–„¥¦¾•ío½§‹§`&‰¾° :Æ·µÕ1ê…¼LVj‡çöŠˆŒ¹µë‘iޱ˜ ž¶²ºàˆµ¶»¤¹¶·´²»±Ž’’„”uq30950>;';=1%#':;'! ;50&" 9577;><1je5в½±·´¶¤£®¢¤²³¹¥¡¦¼€í‡§ ¹„fšŒ‘ÀgÈ32h6$';>00<915>9>=6 0$!%=  2Ú‘÷Ø•„·¶†“µ¿²´³³‡V˜Š²²°³²¤º¹§¢¯¢¦¥»§£ §¦¡¦¸»§¡¡¸»§ ¦º°°¸§§¿Š†ƒŽŒ€‚„‘ïGJí…Ì `gm5 5>>31442:$?661==?%%?54?%%;9=<9%$8= 3::= 432  fžðnÐœŽ‡˜ž–•†ƒ€…îńބ“…·³¶Š¾¥¥¾½¹¼¸»¿³±¾¸¼°²°ž’‰Žˆêprup=21 100?$':88:$$%%8<2?$$$$>=8>873%&!;<9$%:>=<<>?0450<7‡…U à‰´šü™‹°³³Šˆ¶°³±¶³º§¡»°³º£¡¥¿¼¿¿¼¸¤»¼´´¶¼¿³Š´½½²·¶·¶µŠ¶±´›„¶¶ˆ“Gï…Žâ뎙QqûœšžDcôi 6 ï„ÈiMelœ‚þgœ€‡›ƒŽƒŒïj†½²÷zr•µ·Ÿ D„†æù—„€œ1·êm ⇒ eVï™$%4JO78$=3$$239;3712& 9 504<;?m ?:1  =7–lgi 7†‡ ÈìË™›…›€—³¾½²·™Ö€¹§¼ƒœ‡Œƒ´°³´¶¶–ñ¶¹¿°‹“D•¶¹±ŸôƒŒ€š´‹‹ˆƒ–µ†øTÒ„ôQõ|Åbp4”Ü`mbøuט…ÈnÖÜì„€çù™†µ¶‰‘ðŒš‡µ™™…„–œ……èæ‡˜žŽžƒ´„癲¿‹‚ƒ˜‚¶Ž‘˜‡ÙðƒãÈ€…hï‚”oUõÕ Fì56x 674?309?0==1 5<=45=10316ù7 b iej“šèžMd‡õȆaz„…gáybfëÿHŸíea„‡‘nÊsYçŸÀ7bÔ†ÈqÑcK᜘™ƒ„„Mä›–å—°³ƒæ™ƒëWï‚„–çŸ}Ðã…‘hö‡`joÿÊFãê‘™„…”fTžŒ±¶ƒ•€—›†ƒŽŠ´ƒ›‰‡‡÷õ‚†„šŒˆ™uhðÿ—•–•tÚžž•–œî‘ŒŠ€`m’†‚‚ŒŽ‘†‹Ž„†‰¶µµ·³²¶€ŒŠ‹‚±¿³noxi 01 501027^9!!%2 02066726 kõ40 Ô’„y|mù“ý üˆï`~‘ƒ‘•…áh1<21h<80 r”Z4d„‡ç4 V†¶¿µíp‘€„š…çÇ”‡ƒîi Û„„…µçtçþ{á•镟…„—ãoY†€‚·¼³‘îu⇷¶Œ€›€‰…‘‡Š³»¥½†ãNøŽ¼¤½ˆ‚‰¶ˆ‚Œ„•vȇ´¼²´žtsaí‰èqø±€Ó{ñ“š†‰¼¸°Æã—îÇæ‰‚“ûë·ŠÍ3ld@‚ƒâ164464q 317è˜ä3<=37f6011 5Jåu =83 l 4 56`—œ 5513 ÃÔo“ë`pŸ…fe ÿž‡ë544 `fCBgj66›±°†\ðMdꃟ˜Žµƒš—cÀƒ³¿Q„‚‘`P“˜‘–€‚ï І·±áåŽèÐŽ°·µ‰‡„’ãµ½¶ƒŸ„…š•â²¿±Œž—€Œ††°³·€ŠŠˆëg‡··´‹™÷Oé’Ð÷’ƒ´‚žžœ€•j„°±éè…ƒžžØBe÷“„žö[–í  6 557615 H 66Ùçmo 4õÿbú“Buâw6—´Šídw~òï––ã 7vlÄÚ ßâ”0<<xr 063 Ñk46 ûì–Ý17kµ¼‹Wmû–îñ€·±vP°‰ŸkdœŽ¶‡eÂÊexN•îîÀ‘ŽŽ‡”´¼³‚‡ž›–ž€ŠŽ„˜›‰µˆˆŒœgÓ‹¹¼Šêž„€è‹´¶Œµ°°žåë•„Œ·³ˆ…ZW㘒–ê’žç–µ‹ûJ·´ŒŽŒ„×V„´Œ„“„‡ž†š›hgš€†éÐ\j ï’Iæ”æ56 |3114 525î2%9 `k?;1z Ùl21 |—ÐP74b—å•„œf 6웄NPègžŒv50`ÿñ`pDiIbmýt4a„þ•”Zh‡†›ššŠ‰ƒéø‹‚Ꙇ´Šš{š·°ˆ€†”îa凵ƒ•ü‘†’•Bië‡áôaz‡Œ”ýj†•¶††”ûoûO”™·‚œˆ„Rcn„‚Š´Œ€Ž€³°»³¸Ž¼·¸¿¼ˆ‰¾ˆŠ„ï–ÐÔã 67 ` 077l   42041437 7=%:%' 80èž™‘‚˜´†w01 €¶Œ·¶°µž’a›´Š´ƒ±¹¾¿¼¼½¿ˆ¶´˜‰è‘†¤¡¢§»¹³¶Š±ˆŽ°ˆ…€™ÜêgêñµŒå 536olÜèŸe 0?=0ì÷u  4 5464 Æm7521?2:2 söyjäãŒ´Š‡î w™ž¶¶²ˆåj‚‹°…‘xì—‡µ‹¶³Š‰Œ‚•ïþ…´»¸¾±¶ˆŒ·´ƒžó‡˜€‡ŸlÅœ¶ƒ„m466éšžÇ575î—M5  g{îz54Ä 361<3 kÕ{ã•´´±†ñl hy–ž…зއÿóÕ€¶´Ž@h|zš‚ƒŽŽµµˆ‰‰[sØí²¾¿¼‹µš”…´µ‰Ž†Œålp‚µ— VDS`d vš”ú 4bhge1 Äãw 4=<27l RÃA`R‚·±œÑngbñé“áV—ˆ†‘lÖš‹±îÇ@Ÿ…€…œ„‹˜“…´¼º²¶………ˆˆ··°‡÷`ú燔_D—˜–Õ Þ ÊÊêyÛb 7 I57 Zú11k5=8?2  745–…žf‡‚›”…ìd`ŸÍ×P޵´‡VÁƒ´µ™öxâŽ†Žƒ‚“•…±²¼‚–š¶¿¼½´‹†‰±°¶Ž±¶‹—gæ±´mìÒ k  ~Ÿ‡u424`ì•m4 17À‚å :?71753 664•†Ž‘œâóvšƒêÜc…œšêò…†±ŠŒb耵…†ê…œ›†—™“‚ž•È–µ°¹¶†ô’Œµ¶³°·±µ™‰²´‚÷”‚‹¶€’|qãqý5fm \ðú 5î ö5?2t‡×h161114dsy 1??D570ýúéküŠˆÀw艆–µ°‚€ý‘•柷°„KÝä…Œ“—°¾¼´›“˜ž”’´¼º¼ˆ–ý‡·³ê̆±·´˜…pl{î–ä ä12ñ›ãg íœæea ”€‹ 7Ü™AÃÃñ7dŒ‰Ÿ `ã5o206˜†™ 1Œ†–œž–‡÷YX޹¤¶‘yÿe`@eÉ_sï…àw™·§¤¥°ŽŠ±€„±‚f÷ᘑôî°¥­£¾ž´±·„ƒ½¥¤½´´¶´‡C]™´¹¼Ìcè‘Údäæ7< 69<õài 5 73=5d03 6:$;5j 7><>>%97H4o <4 Àzo59;>0~ê663>9vj–ã 71 ‘ñ|a 81|YeüÏ4 —ëízllÊ51]Gal„j ]›ž“ŸŠ¶„g›¶½³·¶±²°²·šîœ´´Ž’†µŠhmá´°±·‹ŠŽ´·°‹†‹´´‰µ¶´›B—ˆ¼±Œš‹€–ÇóJsÁ†¶µ†œƒ…ô|€´³µ´¶¶·ƒ„é‰´ƒƒšêo ‡‚ƒ‰‰›™”……ˆŠ±Š´´†åð€€†€€ðlEï”âœâ 75 `CÒrb7615ÓæG43<65 55 023gçA126 sl  4 Gx55 fmd `KâòeDúfhåíŸqX}X}ýhogæï™™„…›œ‡‚ƒ‡ŒŽ•IÆœ†š†›Ÿ‘™‡žœ‚´±Š…œŒˆ†–”„†ƒ‡„™‘…†šÃl„‚µˆ€š„ˆ„În_•ú“›ˆ˜Â㟈µ†„´½¶Žš†‘kdÊ‘AÉ…ƒ€ý–œ€Ë’ü„´¥¹¶à˜„„Þc“œú”–Ÿ—…ño@‡’ëüˆ‰—çñŸ5åOž“qdkž›b4 ==07 6gh >7  êü54 ?%%7 4ga 4 –˜rb5>6 i€œ}hpdÜz쌅ða6< ÃÖ‚‚ëËèû6 gv…°µé4<1t”¶·‰˜–écíæ™¾¹ˆ“}U d’²¹¹ŠàK†ˆ´´¿¸‰žã•{ g·µ¼¶‰˜í™` “‡´´°½‹’Djh‘„·µ²¿°´“é`–€µ···‹’gqÿ{³°¶‚‚èè`l’‡±±´‚ŒÕk팱‚„냀älaÊ—Š‹‡“‰€ 5 Qbã·…ê×Çý  ƒtb13796‡œI7992 64 f˜8#!%¥µˆ?,±¡!4¢%9%´6½·=¸›³$ ¡8$2?%0êlÖ´¦¤º²¾¹Žnž72_>%31$ $<<=—‡To‘ÿaŸ°Šš¾£¤»£±ŽˆÜÖ íÆ 0>9'&%565ð€ìt\l`df™ë†°º§º»¹½¶€€³²°²¸¥»¦¥¥¤³´–óäÿÛ13=9'930`’е¹¼¼·´¼¼³±³¿¤¦¡¡¾³±†›Ž‰¼Š³¤½¼³¶µ…„ÍÉšœ›ëç4 26 co`?65C˜…µ´„ƒÿ…Ìv꜉Œ³‹€Ž’› 6$%:%%&8&! #,-!!''<03  724f–ìÁᇑ¶´€ˆž›…‡…›îë <<&%%8%':>3022 57æâ‡µ·³Š³½¾¹§¹¿ºº¤»½¶³³´Œ’ÿ’ôn44nØsOGuloiè–œšÊ„‹ŽŽµ°³¿¸¾¾§°¥§¥¼¶½·´”ÊÖ j  qááJhý—è”éꄌœƒ‡‹‚Š…ƒ±·¶¹³¥¾½¾²³¼¸¿¥³³³µµ‹‹êÐím 4766=8<24=34  EÕiŽ˜Œš¶Žµƒ„dËÜ0 1137 44k7 6796=$;$!&:'!'%$%12è•뀚³·Š¸¼¾¤¼»¹‹°‹‰ñên7 4?>$ 9<>?6= 7 fÿ’“†ƒµ¶´··ƒ´†…‡·œ`ÞjrnSdpæ›ëœŸœ¶…¶„¶€¶ŒŽãžÖoÜo7 žjÀ—°‹±²³¼°ºº½·²²·½€·˜”“çd1= jü’†²·´¥²²¥¼°²³±·´ƒ‹Ÿ–™cræcQõqíꓞ›ˆ†æ±µž±Ššø‰†ƒ˜ó–km<5 3mwDâÖš€‘áD~4>40212%9$>%;=%2;611 7Eø”âš·šˆƒ‚±Šµá„„æàD 06?=<%9$98;<3565Öéëš’‹ˆŽ°‹·³ˆ‡°‰ŒŽš›ÇË 4517 lkMfלƒ´ƒŽ±¶…‰€‡éµŒ—‘“V’DðfypždšàzæíŸ›„¶†—€†µƒ€™ŽšŠ›‡šûî‘ÿâ†ý••oøiæÀàö†ú`´Hš‚½ë‘·€±ˆŠ±Œ‹ˆ™±µ‚ƒš›‡‡µ…šœð’ËÖ›Bgn‘›ôð„•çšãš€àŽ€‡ŒŸµ˜‡‰Œ„Tˆò–Whr74 2313574 47fšeMf†‘˜äcHó[76520<=63>5> 4—`bÇ fk”ˆöëñƒ •iÖdoe 40672?135? uÝ놶´·¶“‡q‹´‘˜ˆŠƒ‹“µ‹‘”›WˆŸ‘‰±€¶¶¸¾´°´³±ˆ·´·Š·½»¿½¾°¼»¹¾¾ŠŽâéaÎ6 3 u ;$$>?% 1 >93 5tcn\Œš–ri35 0 7ÝÀ‰Cý²µ·´‰·ñãõÒ—›¶šñ˜“›î³‚œàÁs„X…ë嘌µ†¶¶¿´µ¹·±´²‹†„±‹‚³™·‡–±Šµƒ´…ÿr÷ 6 7  4 7 ú `“c}rÖìõâj“’œ 5 7 5 7577ÑöiÛÓ™ùΞ’µŒ€Œ‰jè™çÈä^êÂdšŸÒô–´—熓û—›â`”…öƒ··Ÿ¶¶´Œçç…ó”–‘´…·˜µŠœ´ìúlQîâ5n  =5pinrajh”vá”Wbz} óöUý„Hl÷ëW†Ld——‰bšã‰J†è“̃€›™œ˜††·Ÿ•‰žƒç‘˜‚’™ƒ“žµµ›±ç”›ß‡åùƒÀ‚˜ð™‡´˜œš€•äƒcm 7 ó 6 5 5  eAgåbüb— Öðeg”áqb™VÖ•éþÎçó{“ÇM•Ó‡š›|ž„žã›‡µ†’Š›‰†‡š‡„‹Ž‡’†µ‚‡ž„›–ˆåÁ€”éžl‚Ÿˆ„›„€…‘šé’”zo4 4 j  jæmjktjödÈÉkie•†a@lxäæ}g}ýÂ]äkuB€˜›š€Œ›Œ‚††‹¶‚›†´ƒ„éšX„´™ì昅çdƒ—ç˜õ…™–›àÍãÓ˜‚nÒéûš‘†ãmÑVÝR…hbT6a451n hŸ…cwh kRê˜ý™ãjí–šœÕðóóÛëím‚™ìš–†ˆ†˜°–à††GЗ€š†µõì‰ò„²ôµOUbbBêî”Ÿèæ…š‡…ãæíj45Ú|•ú„v]Á70 5s4tdzššáy6 ÿùhRl17•´¿†ÙžîV´Vƒ= =ï·‚1Œ%°™5ÿ5Šˆá›g舓‹v‰Œ†„Îㆵì ‘2 KhQ–¾´Žµ˜¥±¥§¥¹¤¦²½Œ·Œ€°·±’¿°¼‰Ãq? =!! "".,-,-&;$'$?65 22mu~ä¶´°±´³±¸¥§¹½¥¦¤»¿¶³³´‚œf‚‚|•‰•ý^†Œi041%$%';8 #!%$;9;9<555<3hEä’„€†ceŽŒ‘—·Š´€€Ÿ…´²¶Ž°¼¾¼±µ€Š³§¡»¸¤¦¤¥¤¥¥¥¦¦¤¸¤£ »±µµŠ¶³²‰²¹µ—æ‘…˜“ù瘒k 66 575i6304 415 29$%:8:'%?641>?1  61=0 ÎìcÀ——œ™ŽŠ€–é•™²¶µ¿¥§¿¾°±²»¥»º¸¤§º°°²¼¼¸¸Ž´°¾´†„ñã˜†Žµ·€F6>60'$'&$???=07<' !'$$?;&;63'!'&&8?>>370$&'%>>5 4 ~ä 66 7nÁ˜–a r…ˆ‡³¥±‰‚·±°¥¤§§££¦¾°³¿º¤¦¹¿¸¥¿Š‡„™ŽµŠ±²±”loö…‚·‡™ƒ°´—MY@˜‡Ž‰ŠŒW  f™hh…™1 `Ж埔g545i—áýˆîi䘀ƒ‹´mrš†ù”´„MJ…ƒ‚‰Š·°´dmñ޵žŠ±ƒÕxçæ’é•œ™ 15a—iq÷5<>7 7?$%;1 14 3:'!;76  0;:= híF 1<1jûøþ”…—h 凳½µ‹âiË‹±³³±¼¹³µ…ú•޹»½²¥¹³´‡ô󊱱µ´´Œ—y q€Œ–žâúi H‚€™¶”o 4q‚Žž™€š`?;0 6<%!:kr 3>6m–çΖˆŸ•ñ5„Š€¶·Œ€ä„µˆƒŒ³´Š‡É Œ¶µµ³Š‰€€á—¶‚‡Ÿ‰‚„a ‘„‡ˆŠ†ê„b7 N†—’’Ë” Á”ˆ‹éí„õ45jËÜAôxi6>< r†åB4675Jcdf7 ”€ì“îgsššÿàB`_c}zo„†”àuÊ@ iá•li 4Ë w4A–ài•┵ŽiÁkžÓq@bކz‚… Ò„™ÇçŸøç’çFÞ”êµƒôü¶˜]ê…eòáæ†™åë59éyÕi•6ç·’í½—GÛˆp½%§h¶„Œ7µ †ìŸµé±ÛŽ†Ú±“˜·ÓZ‡Ýú—5ò ÔiœŒÉ°´±…‚¥°»§§¾§º²¹¾±°»½‹µ·´ï´˜€j˜ :&3$",'".#/."$$"';8;?92>7–P–“‚²¼¼¥¡¸½§ºº¡£º¾§§¹¹¥¿¿¹¥°±´ké00 9 ?%79%%8%%>$ ! #, &,-''# &$89>0=21 O˜ô”t’……˵³Ž°º¶·§ §¤¢¢¤¡ ¤¦¬¬¡£­ º¡¦¹¸¥¹½³º°›‡žFé™oM„Àg  4—ÛQ   57 jjk66 44 ÔàäÒce…’D’™‹±·²¥¤¾¾¥¥¤¹»¾¾§¥¾§¡»º¦¤§ ¢¤¾¥¸½³¹²µ¼±›ˆ°„ò‚…ÞüŒ˜Ä4>6<<1%152$17%?0;!9? !<$ 8%#&<: $3&!;$!%9822;64771íèÇâjð`QÈf“”‘‡“–€Ž±°´µ‰··‰€…±µ€Œ€€…„ˆˆ¶†‚‚‹’‚ˆ“‚‰››…äÛiò…—†•ÕÍtP pê5564 702115 0=3447 4 7r çb  kàœ‡ŸRåçf‹™´±šŸ‰Ÿ›´‡†³·µ²‹‹‹ë†Šµ±¾ˆ‡‹™a‡…ŒZš…”–m‘íóžøéôî’‘n idPøröHmbPœXåFÚdG•Ëèçqp}“†[Ÿ’`a}–Ê  {157b cjd…X”‰íäš‚†‚އµ€êšå„´ƒ¶¶Ž¶Š„޵·†·´ˆ‹“›Ÿ”†›ˆŒˆƒø˜„‚錜œùflÁÀxTh5j 5iÿ@ó@ð‘w\ãyáE‡ñÛŠžîˆÚä‚áeš…Qì“•˜Їi“c ä| 66í{t ^ììúãK bA˜æŸ™Z`–•èRuä“høë~æû˜DlVäÀâ˜È–€tÍ}—˜bÿ“þž•ëæó‚Á”¶€çƒ–œ´·Žrô훈Œ€à€Éì°ƒŸ‘•ÄyÜ~hûi µmjŒe“ãŸrŸ én€ôêhn’kÇTœŽž“€íì±Oø²²±¾·˜žñ•‡‘êµ™ƒ‹dz„™‚…–ã53?192=2Ë426<6=06 7 0ׄ„Žþ‡š™Æƒÿ˜´–³±œ†´¶˜{3642; g à‚µ·¤¶†±†€·ˆD±‡ë´‰†…É„Œ‚ˆ··ë‹æ7ÇÆQþihè´ŽŒµˆ€ëƒ÷x„–•Óxd6444wæ‘–5 =4 ivôñŽ€Íôï—Õáƒúœ°ˆê„œŒè‚€€€› 5vKCïsîD”‡Š’µŠD™…—žéúûЉDmã`ÚŒd65à Ež›ŒŸŸ˜÷’ˆ”h„€•†Ùhæî´rœ 1œ”òaní444‘713ê´‰œ“l@òýKŸ‚‰¶ÀgìdðÅ—€€†à4 åú~ž÷øµ˜ÎkË€ž´„‡Š‚†Êiuómg‘–å[Ï锨nd uó—“nä†ûÈô‡–‡Šl†ŸéûÉe”hß}ßb pk  Û‚·ƒ·ˆ†Œ‚…Ž‘†½±µêìbHUÖ–š—éå4´‡K˜lvJ—’‡òïoZà„‰…ÉVf@„„œäh •P„ 114ƒ™…œÌ猗…·±±—Ÿõ^Zpœµ‚™ŸÒlh]ëeü 5úhfŽšÊ™”‚±ŠŽ†²³œè…“‡’ÿ‘Î fÉ |K maH˜êóïaê™LXëanCûvŸlf…†o~fàŸtSg 5 äsvÔ×} äñ‰Åäòy€iœÏƒ±‚…·…yö`‡úGÜú 5`23fØû’€•ƒƒÿúé`ü½š†‹·±ïŸ†˜ˆ‘·–´‡œ”‡ù QÛ52u\qℇ…@Àq’ƒzæømLPמêçŸmèéìc  h  ÿw_|ì„…„ièMh}ï“´†œ—äGÅ’äžøƒˆší  kñ{ýãv“mîs±·²‹±œ’hãÍÝý°ž…‰îÞ’š‡Ðc3 Wwøféža•䇀꜔zÑìMXåæàkyøtdóäe“ò  205lOæB5 Ú›·…{„L„†ùã¶!½8€Å?°0ê’j±×€›Lœv“fÁPálîúSë•5÷™‘ì`}C‚€±µ°¾¾µºº¹»¾¹¤ ¤¥¥¿½±‚œÈ…r =3%:$%>&;%$9%'!&&$>??7 `š€¶²¸¾°½·½¥º¥§¤§¢­­ »¹¶‚Œ‘„ž—–énœÀ<9$:$89:;''& #&!# !'%=450=9?<3 qóE` Éña–舰²¹¾¹±´‹·¸º§¦§º¥¥¸¸¾¥ºº¥¥¥¥¤º¥º³‹‚ƒ´½¿¥¸²¶‹›ìçSšÕ–çáê“r| 11167 609$:%$?=93705  414sü 717 lóûÂûoÊs”…€ˆƒèéßàšŸ€Š´±±°°·¶·Šµ²¾¸¦¥¥¤¸¾¹¾±²³²¥¸º¹¹½³¶·¶´±¶°³´ˆŒÂz{ 5 4010<9;8<03<;$'&#"""# '$$:<99?;>8=30  åìîéQCjRfka‡‡‡…›†„‚ƒ´·½²°°°±µ´€††´Œ·°³³¹¿½¿°½²¿½¿²°¿¶µ‰‚›™þPoa—évXxxofp 44712 41 `ûü›Š¶±¶°²¼½½·±½±´¶·‰Œ‚€›”™€ƒ…„‚‹‰‹¶‹µ‰‰Œ‚˜ž›†œœîùé`KDidx[~mpa  1122<66216 75  4 5 7731 5jlêú™Žµˆ‹ˆ·Œ‰‚š†›ƒ”‡Ÿ—–柗絈³¶³±°´´¶Š²¶½²¶µŽ·ˆˆ„‡ƒ‚†Š‚‚ˆƒ™—ôïðÖ15445 6104   5 4  ~Už‡›œáEòÝzxãÉô~dêCø”†’Ãgçó–úùëzMhc57ysS]DZËÚý솚„ž˜Ž·µŠ‰‰†Ž²°°²¼¿²µŠ“û“á–äã”å kï圙âlaJ{Sq}nŸèý”œ…‘zá_âæjÀœ…ÿ“éêðñÍô჆ž™üî„úÇrdgitÕkfsoäðúck^Ûxã`alNvlÊ‚†††•”rò”ì“ãöÊ„„ícfortbAwÝrkj 5 544Ù`Fj`møa•šŒôáÈæ„‚‰Š·À‹ý‹1§<ë„ µ³6°€š ‡ ‰Šé·”±€ŽhUbl5ƒæl žE K=31ãüjhžj”’±¿·»§º½³¿»¸¼¾¥»½…²´x 4450611?%8$' #063:>408>7Æ…·Š¶²···¿¾¼¥¤¡¡¡ £¢¦¿³¸¾¶´¾»½ˆ‚²°ž`ä—ãà0 <$83=:'??$$%;$ &''!'5=&:61::27 4míñdaŸùAä·¶€ó™‹‡vÿ²¶›·¼¸¹½¹¿³±³¿¿»¾º¥»²±³¶Œƒ‚މ„±¼¶†‡µ‹™âDë…‚ˆ°¶•™‡ðkqf  0:9;12=31 52?11:!&$:'$%%%%''$$ &&%%=<8<26=<  –†€Š°Š±¥¼½¾¥¡¤¤¹¥¥³¼²¾¿¸¥º§¤¡ §¥§§¦¤¥£­­¦ £¡ »º¥§¤¿»»§¥¾¾±··µƒš‡„žë˜€‚•K 4  7 529%&&%%$'<8;%%;$&"!'&&&99%& &&&!';9> 775==1 dƒ†ÙT„µ›É–µ²²‹¼º¸²³¹···°²±¿½¥¥½°¿¸‹…м°Ž½¥¼´‚¶¶‡ãõ”|kb’’dkã7áãa0?6 67ö 00jü–åvžŽ”T_’ta”flÕ’†ýCwÿjÏ{enêîn}}maÞ“‚ƒ‚„œâƒ™ž²³±…ޱ‚”k—™Ÿðö‡ž‡Pz 74413156Wá  hmeï…‚dAåUAM’…ƒµ†‚މµ“…ÒÌ„‚•޶µµµˆƒ’‚ƒµ°¿¶Œž›‡ck䇴ˆ›ícibOSjþ‚‹žš™à5 gßt†ƒŒ‘}c rÁš™žûÞÑ647 ð÷b705 ak 57=<:83   m 03_Ÿ”†êÞ’‹‰ž…éEÑúsü‰°±‹´³‹žú[ßbk”ˆ‡‘–€ƒòY섈ŒìÅf 4nêÁluöP  œ€à‘„…éð‡›€ž™‘S[{W×ÄŸ‡‡…еæhö ”‹…ž˜ƒ·Þdè‘y뎳±¶µˆ‚›‘fjjèš‚‡‰ˆŠúÆí’ï_„‹…›ƒƒ› 5ÿ@tui Óá{më[53 BúÂngp˜„æTiLÐõwÓ†çgpЗÖm“€„í–„„bÒIÉÍÏÉLahjñlìbTù’ãÍuÿhHnÅ~yLž†‘X–{CbnÆ~rjabçΕžÛé–Û^méíö`ã\áÙퟔꔃ…„”†ˆŸ‘æs4’†À—œ“‡‹´µ‰Š´µ‡’š€ŸãNacZäiLÊœšœ€±Š•åè faÇ”´‚„е°ˆŽ‚Œ‚š‰†€‹‰žóoTwØkbz 5357=15majkϙš—÷”üæwÈëMfÕu^u]Ùûú”Ô™—–ãñ™œ˜”Ÿ”sa  671 <0  vþç΄E•’÷àÝzkmM‘K臀’„„Œƒ™€ˆˆ’‰Œ…„”’ÍØiohò]IðëtbAiý™tdVE`òïeË—å—…–€€ˆ–›†’‡åÇœ–‘”˜ŠŒŽ·¶·‰³±±¶±Šµ¶ŽŒîîÂàãÝì÷•èMèꀕ‘„goùa\ØIåéœí혅Œˆ±Š€ŠŠž‘c l|s460<=0104 4 b’€Ï˜‹‰µƒŠ‹œ˜ãPácdf{eicaœõÑ„–æá…Ÿ~nPaAg]ùÑ„„ïE•ì™ëG‘ÐýÞ 77632 h 4ôï—”O–PQR”“ÌHend|ìsÝš€‰‡„„´±›˜‰Œ€˜df 7 5  pÎ×dl~úWÆ„…™Ó’µŒ‚œŒ…ˆƒá›Êë’€áÂ’Žµ†±·°¹²‰²±·†ƒŒŽŸ”e\Êjýjdp—€‡û胄Ÿñ“‡‚æ`od—âòÊž‰‡ñú—ñƒŸÔqéh 4 5b Q  l412ƒÉ$6d汈ˆºœ³Š& ²'&'9: ÄŸ·¤§¥°µ¸¤€·™z  3>8<49$:568 äˆÎ21ohx镎·„ŠŠ··´°´Ž…’މ·¶±éfà€Îg æ4=6Œš7txàîx]ä’„å•F 놇y 47 m”Ø]l 07 aœâ„™n ×dagBj a114 4†…œÌ瘊†…^´„‰µˆ„Ùs똰¸½Š¶°‰I’…†‹…œ…†ŸTć`\ÈŠ„Ò aÑ×qㆃ—ïžè“ddÅ玷„ä…ƒS˜…‘’€ú‰‰æüå‘‹±±´íL÷ìÝu˜ˆ„áφ457’Z\k7<65ëSa 5 5‡˜–‹½¾µ†rí…œ‡„Œ··Œ„µ¶‹WHG螉…”ñ5t–L5005 15}l—73`jßJr‘l546 öHú•ò…ál bé‘ÿv’3<6574hPBc4344hÜ„h 4댂›˜µ°‰åý…š”M–·½°±¿¼´‡ý|sò”˜Œµ·‹‰™…Ÿüq”œç•€¶¿µà˜›—ƒ‚…{i` o•’û’V lüc`’…››€µ¶‰å˜ŒŒ‚°±–Z惰·ör‡Ÿžœãøâ‘‡õnielJbîAòjnXÎaôìÎ_è…‚Ž‚“挵‹‘„€•â÷Xl 6 41yJꆅ”ûdBm5044  |6onañÇmo18%>:89;8>4555û‡Œ€ˆ³½½²²°¶³²³¶ˆ´´µ‹·†ƒ‰ŽŠ‡ˆ°±··¶Œ„жŒ‚Ž´ˆˆ„Ÿ“†…â‘æŸáØÞSdÙagtÿž—ãø’‚‡í‘‡œ…Œˆ‰·±±†ˆ€ƒ„’î’‡ƒž™€™˜ƒ’•–‹ƒˆ†ƒ›“÷””c 443>9>=657 617106 bàûšŽ´‚Ž´·‹›‡†‡‡Ÿœã왆’ù—“’ps} c   65 7   bEfd 5h @vb\Lôýô›ÜÞaäž—çåñg 57454  oriâœîž†ƒ€ƒˆ±¶Šµµˆµ´Š€‡ƒˆ€‚„„‹Ž™„´‹‚б‹ŒŒˆ˜…‚Œ……—••ÈPdrf`a[~nÁäJì‘’ŸŒˆƒµ³´ˆ‰Ž†›ƒ„’…š“•ê’êå’Æõqž‡à„„…‡™€€„€šýÓËÅÈg 4706=2?0316 5 p]’“ë‡„šˆ‰‡ƒ€ƒ†™–Ÿg}îklb[|hH  6745744sujxbæg{içÃhP`ñNìᔕøï„€ƒ€…ŸšðökäèSZ6hÉAJGmé•ñ™âo•‡–O–èžœ˜˜š™Âùà„Ÿµ¤¹¶‹…ˆˆcbÁ‹°¼²¶°°°‡–M“|‘xž·°œ45o ‡±³›ˆŠ™‚Ž´±ƒˆ‰‹·¼¦ŽA眎‡ãëôO–ühl‘óvý‘´´ã17 œé b04 n5sl‚ƒ055eÞ‚gÄh–†—òb”´–ƒh󎶊ë  ’ë `46`çc5™’ :21== 29?31„{ 67 Ù‡‹‰“s45g\…„J€ˆvI·²Œúƒäìþ·³´°˜ê Ž„†}ÖB5b–žÒÌ÷ߟ@qP„…ØéƒŽo<J홄žõéçâˆŠŽ™’‚ƒµ²‰„€µ¿¶æ ïŸæš„caô´°Á 󵊊†÷€Ú㓉‰pxäÔg„‘i4‹ìö×iÿŠžá’‰íy yŸ†ŸÙç–±‡ƒ”™žÝöÈ·³·‰—b4šˆÈ ê– WêXŒ„ ]…¶±ŽÖ514 ´ò44…Ø—‡775 i6>::';<h6>=0721 900=04 ~010ž¼¹äaîï|õ‡µšnú’Æq•蜵½Ž“ 冱ƒ~‘œ•в¿ü›‚öîtü±¾x L¶€já™ëž¶º²™¶º¼‰µ™„±¤º‚Â{pJW‰¸¸Š•œ›‚‚5w¼ˆ€šé’°ºº´™™†‹¤£º´î€¶··Šˆ‡òé …´ˆ}45„µ‡luÇøšÞk oÂê÷ô 6 á€ñ %:3 551 žž_h î”gn ˜žÛ3 Æ{ 1 o3?zðd =6 cïèH 77ìv03l =:=201 4<3Lûä36ðïð•czƒŽcit˜·‰Y ݈²¾ž 5’ÑÛ™ƒ–œ¶¶ƒz@kú†½±ƒÄfšˆ¾±™ iöÁêŸDж†nï°±‚íö‡¶¼´‹˜þ—ጴ¶³ƒè\œ¶¸±ækÛŸ„‚™á\„µ‡Ÿ…ðj†¶°Š‡„…·¸§¾ƒ…ЋމŒƒ†·ƒÈåé˜7J‡Ün›ŒyiÈoçü„–ˆƒê èëa6075v|‘„4êló™ÌaÀÐàžÙêïeÿ•ˆÝ 35nh` 37i475šæ 2>61532 xç44pÅWŒ²— ßbl…êm…“‚ábds„Óte燘¹´a5exÝ–ä…šÛ |”„‡ã„bBÐd–ð·¿È ›–€„µô{á·µ³“Ø…‚´ƒ…’„‰§²„‘Œ‡Œµ†Š›ö|V·°·â М—“dàR`Àž²ºŠíúƒ†Š´³±œûí°»½‰Ö‚‡‡‡†‘çø‡Ž‰û4EŸÏ—ðc5cŠB ZO{ATe˜æñÊ57M725b˜0=e…“›…}—Žœg~eù¶ƒLÒk‡êüë1 h— = 1bè 2;64 7o1Â1 àä=6 ao€÷•ÕGÅšÝIgÜ„x@•‹ã5 xœž†ƒgs`Y–ïÝ–šakïõxî“77Ôšÿ`l І€ƒ¿³ g²¹¦ˆ·†²´´ †Þ‚¡3›°5¶¦6”½ë¿˜†ŒŽ·‹·™¿ýáäèáƒcè ’žïöF÷üg´½±¿†sê±¾´ˆ°µŽì‰º³·–±¼¸·½³´x’d‹j10,--$&." &!/%4:�<2 î“Rï^›‰±³\åw`“¿‹“ú·¿µ‹±³½±ˆ··¤»„ê’—†y 1R 00]g퉴ƒ›™—˜460000614’‚žåz 20455 ÛŠ¶„¶³·±³½³¹¸´¾¤»»±´¼±—_áš„“ƒ¶°¼¿µ‚°²€ž—áKÝ‘níW–l 5 {?;17:;:;;&:215<14 61141=6 7321614 0 ÿê™t²´ÙÝfßžŸJö–䜊ˆ‹Œ‘ညšb–³¼·µ³½±¶¹¤§  ¦§¢¡¦ ¡¡½´½¶Š·½±†Ž¼¥³±³š@…–ë5 s4:05102 ??3$ &;=$'8&&%&%=4;"&<<$?0;>>69'6>&8ëü胵¸·nù±³†Žº¹¶Žˆ¹¼‰³ŠŽ´¿¹²¦¥ˆŸŠº°¥²‡‹²ˆ‰¥¥¾³¶¹¥¶·Š„Ž‹ŠˆŒ½µ¶ˆ„„WuI 62:;9:>08%;ð 74>> 47 5660165t™î „ƒæ“ðg •´´Š‰²½´µ¶²°µµ¶¾»§¸³°··µ¥¾½°†“É·†ž……ŒCÄøgÊ|6d†kl0324? 7? 28?<004 30 56=0 <  1e 0 Pˆ„‡“ᇼ°ò‡‹›ðS‚鵋„„‚¶´÷”¶‹˜š±¹µµ°°§¦³½¤§¶€¿¤²°¸»¼¼¿¿‹‡´±˜íްŒdƆš†„Ú ? F6 xm 5 0503 5 505j54”nAcë 46p”—„Üá–ü~m„•—4 èsfo‘hÌ‚™å”ƒ±‡—±½¶·¾¹¸¸´”„°¾¶‡¶²ˆ“ÜŒþ›–fzp|Ïÿp17bdz76pgëã“ë´µ›Oz·Œâ‚µ¶†ð”ž„Αõù w17~7où  5gizq àcŸ¶‚À•Œ‰ŒŽˆ³µ·¶ˆµ¶¾·€¿±´±²íèˆêг…õ”Ffqmcí“yðæ4  ~ƒ7tÇàxúæjfå‹z‰‘쇈…o‘ðÙ™·Kœ…eêËajÑ„ •ï@„‡ViÚ—} ’f v}03›ô„JE˜…½§³½»¿´„½¥Šˆ¶·ƒê‚ ‰‚sí“êÒÊ_âc7115433=21€¼·å÷ôâqóMƒ¼¥³™ý5oµ¼º¶˜™“Ÿ 燀Àey 1:$< “µ¶Œî“Ì45ëïUõ 1?;7ˆ±³¶¶ƒS舱±Ž‹ŠšŸz75f霎¶¼¼¶ý507 Q˜÷”Ž…n4>>2”‹¼·ž7=5÷˜ú77‰¸¤¸¶ã—ŸÑµŽbh|`q‹»§±ì  ‡…wk 4k‚°´†ð42v÷l` Ÿ²¥½·ˆ„™M늵˜zÜå™ä–µ·„çk40þàt —üh̶M„Æ671Ôði`àðk“µ·³ŽŠ¿·šÅkŸ„âXw‘”›’˜‘ìÀ•—Yƒ 5ba ñI꜅z‡““a5 hQSzobÏ„¾±Vk„€‚‚Ü‘‚ónÔõ”šp„†·’ibèUdýçça@}jng‰’’ÝT@þžš–hú÷ˆnþÇeíÇÁí””ïp“ƒAÅ‘ŽPŽåÿŽ´µ¶²´žŸ•Öic‘02 d 154óni 0=<1 gœ„±»¤»¶„åFm `Ë’‡ëG1:&"!6Øf„ëlåèrŸŠž‹¶°±¼¹³¹¦¤¼´ŒŒê’·ài±´’÷Y77“‘çái賊´¸¸¹²´ìef÷ñðï2= 74“” 3`›eÖ—Ÿp 4445ár5ƒŠ´²±‚”Šæ56  îžñHkcb7 01464lz›½¶dš‚·¹³·¼º³„ƒŽzü—‚¼¸íx µ™5}67€¾»§¥·‡cÿ…ñ’´‰Öé >$:•ÕÊk11 d´¶î•˜é5ê 8ˆˆÅ49<ö°²šÊõnh°±4n„–’‡<2bîp›`ëJ|2&<èã436g•žœfÞ´¤±ŒŽìú½¹±Š³³ðxåëó—†·‹†‰œ 6S´…ywîÄg‚¥¥´š‡ÚñÄ芔=;=  U<–m…„Œž=4ûŒAn’µ’â–Wê‚”˜îboÕpWëï•—53“ g23 Æ–”„Škv²¿‰‚½³ŒŽŸë˜—Ÿ´±‚oÔ‘ë·½Œj„„’m@hòÖ“ž—íŇ–Œ¶±†TÙÀI4 kË6<7 1 Fjv`‚‚àio•‡q4`ø`š‹˜ l—‚{ä„ó Z[ä‘Ì  4‘j j’±ò€€ˆ‹·²´€Š‡Û‘ŒŽ‰¶²äÝ€´†d•Ÿ¶´æAã´ï m‰Œ‹áàŠƒÀBŒíkyD?0ëŸ42 ÅJ5L ™04a™j Ž3³Šn…ŽëÏ q•™µ]n7†‰94vÕž“ 9 ŠŽkz‘ki…·œ ¾»ಳ‚œž…ÐŽ§§ŠbņŸ–·¿´f‡¶Œàƒ…à™D戵h>6‡snö 1ä×i3h bì‘ í„4çgl솗5p„™ 6TæBcÄWpd†Š‡T —…øbêƒâ“”šó”´³½°™Ïäµ²´‹·¶±´…†–蚌µ´Ž‡`á‘_Ç‚V”ö> 9–Šƒ›•n;?>§¹Œ6"¶»-„¡$ h'?¹³³¦µ €">= q:ehšˆ¾¼¦§§¸vUš ?35?9>$%:9>=5} o~샱¼²Š°§¦¾§¡°¤ ¢¡´Œ¼¼·îè5? 62;376 Èñ ãb‚¿µ‹¶‹—‡·µ¿¥¥±ù’˜™0728$' !&'>;;<3>;06 @lýŒ¿²¶°Š•‚´Š‹âè†çgŒ4 jÛ”Œ€†ô›Žw $$4 1fh`‚±Šµ¼°´¥¢£§²¤¡¦¤¤§»¹³¼¹¾³ŒŸ…´µ°é400 3;;>92%%363=75@‡æ}‘gx~íK 5ü·¼ÿŒ¶‰Š´´·‡ãïè<2<:%:892=0422347=‡ˆ´Œƒ²§¤§¡¦¦º¿³³„ÙË™„…þ gk˜–oBåÏ–gi i`ÜÊ”ˆ–ˆ·´‹µ¶³½½‰‘‰‚°¿ˆš“¶†”îÒÁ‡î53>%%>38$$%09%'”=4Tk5–‡‡ÁQílÒ½¶ž“ä³°‰³¸¹µ´Š€{‹š5 `3> 58$963=89öi 4‚¶‚´Ž¹º»¦¿¾¹¹¹‹´¸¹¶ƒuæñY‡‰±øm‹‚ˆƒ¼‹ç}–z 72%;''%;;8678:<3ù჈²±º¾¥¿¶¤¼ˆ€„ߨü63?:$9:;:<0?<aÿ†€·¶’넌ˆ‡“‡ó‡ÚhïèŸçð}L’µ€†Æ·ˆ³½´³±‰Œ†‹ž[Œà  1Íék ÂqaŒŒ··ˆ¾±‹„€³´²¼°œš–” fw53;$;;#82<782?= 4`˃”Ÿ´„㜟±¥½‚ç—Såz13lŸ„ìöãjjîqŠû€€cPí²µ´u•S…GmÎV ýüaj™µé•…ƒ‘‰¾²‰´±’—›‹€°ˆ„ƒji 7k246éë󵄞‡‚†ŽŠ‘D‘´‡—Ü`=?6<%':9'%<601xáãûඇ‰¹±„ˆ´‡Š´·žïŽe 4 77 UbIíš´…”޼°ŽŠ°¾·±¶„†·”œŸŒzêÒ `6ôÅrjWœê슟€±´ƒ•…±‘L“íá””‘nã Ä574733:<46105€é‚D™DÅðá˜õèCñø†ŽNÛo[q4 zCfžõûi]‚kfVî”Y‘„™žµ´ŠŒ½·‚±ƒOûáj~ÛqlbÖ‘yMét]âFz†Ž—·µ±³¿³…€Ê’ŒvÆ55b 61 5 ój–nåšh4 iŒ…“€Œž·°Œ’d€‹e 4367 ÿ]Izð›P†êN„N—µ‹ë´³¸¹³¾¼ˆ³‰40<8%" '5l91 7H  z•𰵉·Š²¦¸³šíŒ´¿µ“‡ž‰c4Œ†¶´÷‚’…I5>0kF4366ŸgŸôá’æ‡é`–Êã‰`dX‚’ éçr5ą ‚³¿aï…ŽŽ‰žˆ°±¶†Yž‘û Ú 1%;6 766 —ïtìceôú‘jxš™·‰Ta—¶Œ†„ž–Uíõ›ýjbogH~›·³ŠoüdX– älh jo‚ƒ‘HEP 6  ì÷êy ›â]sé’‡”žŽŠ·ŒŒŒ´‹´í—¶´°´†ÿáóÿ544Îa7 7 4517eiþc55 {ðþ†¶„Õîý…—žx‡Žƒ¶„̆u„ï—Žš”yœŽ™muÛaõ  4Úaáea‘ãdí—‘€åþá_ýüv怙þö‰¶€àð“ƒƒŽŸäŸˆŽ€Œ›}îŸáKWKc47 Ù5555j anòƒò™˜…‚ÔlÓ𵆆ƒµ·Œ‡ê„´´µŠƒ‚‡‹ÑîéžúZ54 o1a rqŸP˜僚ò–Àø˜µ†Ëú‡Š‹Œ„ý–·Ž€™’’™€ðQ›„ÛÌ‘hkürG7 d—tlÜœ™›õš“›·´€…™†ˆµµ††Žµšç䕆jnÝäe7 fDy  5ifõækböêøhJ˜šà`bXìàƒ‰´‹‚˜ùœ€†”áò•žä°±€—”†ì y ˜…šî 562567ÝÉ 7‚¾³ž[U‘•5 怌†´†u•´»¹¼¶Œ™àfXïQlÞ郞34²±’5;9 ×úÈ326g‚‘Åf1:=•žGê‰í 7i³§¦½™†ƒãÄŒ°°´‚”ÙO˜³¿ŠŒï—c0><–~r39<ඉ” 1??7Á™Æ 07ÿŠëAzï1 ü¶²·ž…’Åÿœ²º¸Š\ðóS牃€ùPAâ‚…|75úï5 354–€ð5 5´·ãè‚›™É…¢¢¸†˜ŒvÏ·§¢în}î’| ­?c1;— ±%´Z2M=”èì±wF‡² žhd=23…502:1ì›n2Õœް¾» ¦¦§¥¤¡¡¦¦§§¢¹¶^€‰„·‡½Š‰3=%925>:%&&$% -/-&%?114øœ²º§¥¥¼±±Žˆ²¾§¥¿°‰„„„“ÝsiãŒØ 5530n1>34 8#-! "#!!#'9?6116=07 Âéè–€³°¶°½²‰€Š¼¹²²¹º¼Šˆ¹  §»¦££­­¡»¼°½»¤¦¡¡§º¾½¹¤¸µ—@商½¼¶Œ•š—÷•45Ñm436 48:$$8962?% !&%$&$:8%%0<:'<72??553<1613%'&$<0g ’’ð”Ûzò€½¥»´š³¥§¡£¤¿±³º¤­£§¸½»»¥¢¢¢£§¥¤£¡¦¡¤»²¶¿»¥¤¤¹Š“—–™™€š`lꟃ™d66 2>;0 0:$'9>?3;& "''%%&! $'&'%88& $?60=0==37 46731êFV€´¿¼´´€ˆµ´»¥¥¹½¸¼½¹ ¬¡º°²²¹§¡ ¤¾´·¼¤§¤¹±¶·¶°²¾¸´ý昞‚”34  ôùzÚ69? m =34h4=2  46 2144gÇkoLçðjjÿœ†€‡ZkeÌëPndØÓš‚‡›‡„ž›†ˆµµŠŽœTർ¶‡žè”蟈±¶†bmÆÍtó„†èkób–‘4<  5??=74440>90åî÷ázFó‘ídýŸ‡…œ•üì„‚™†‘šèœÿÄC—‚‡†‹´…ïàšµ··š…†€ý•‰ˆdýëjkž‚‚äneqõИ·…ÑÄž‰†b䃶³’c^‘Õ뎎šs`Ïí™äwáæaôÿ‘’72o 30456 z`Ïîj숄bnœåhB’Çs–“eËèœê}^qhI5 rojàkfijøbT˜õ Ôâ@ûá–ßK\~„µ‹‘W˜Ÿ“•„ƒ“ö•´ƒuÒœlN‘‡†ç‡˜ïüÉ’†„†‘ßkc‚ŒÕrc ‘â™êJ’iò쇑PŸ†™ÇTàèš‹™Ze—Ÿ…fo ãn  1 g == †î ó•klt hç•뉑 lÞ൶Œÿ{•xý±´€‡‚š^Í„µ¶µ±´äcL…€¶²´‘דîN鈵‚än •ˆ˜i71æ´a³ƒ:»=3?95äfÆ„„OýŽˆ†Š¶½³¹¥³°¥¡ §¥¡¡¦§ ¢­£¡­  ¦§¡  ¡§§¦»º»¶³²½¼ŸŒŸM瘑n59166  71=776121561701104916<4 56 4<0?;%;?:$83>>3752 641 úãàcZù”œ„‹Š‹·°½°³½¾º¼º¤¥¥¤§§¤ ¢£ §  ¦¡¦§¦¡¡¦¤¦§º¿º¸°²±³±‚–€‚€ètÖ 754441?:%%8%9>82>$'$82>99%3>;:&'<>0424ijàX虚šéo–œŒ„´°„™‹±±±¼·¶¼°·‚‚½¾¶°¾¿³µ½µ°¹½¸°Œ‰ƒŽ°°·¶·¼²‚†—€€Œ‚–næWçš    7?80 se œšsbæñXï…‡˜çEjX‡‡Œ‰Š…ncgßi}À•‡Å ÍÑk54zÄfa ~bz 36ö“s  dž”`hzr–™Œ„tbj䃵µŒ˜„sÚœŽƒ€‡îÀãüa\šŠµ‚·´v[”Œ·³¹±··‚‡€²¤¼ŽˆˆŒ—õ‘‡´±´´‚嚇èïf` =1o` 6 Àkb2<26k36Xn ` ÷ê‘þœI 1L†œÄ™‰‰˜…€„‘qùˆ‰±¶Š–a|[·Žžé™äû…šYX•ácž‡………… Yž€‡—çL}j“ŸØgÓùc mÉòàý 79>'3%# &;$ '%4Ÿâû3##-$> "/ 4o6$$'922 54œ†M2>$355vжµŸä–‰µ·§­¢§Šƒ‚·¤º»¸¸¡ ­ º¿´¶¼¥¡ ¦¢¬¢¦´„冲¼¾¾»¡£¡¹ãï‚°³·„àˆ½°† 1<6 ?9>142>:87 6;"/-!$$%$%?==:! #$>>>''%:;:'%%?7 õà”x—›èý@‹³²¶†’”±³¼²¼º¥¸³·¹¦ ¸½±¿¥§¥¼Šƒ±½¤¹‰…™±»²e`Œ·¼}m“Ž„cç¶²™qG È…†Ç42%;7y4c…‚s7??4÷é<;3 yúPûꌟA 56 ʘ„ï1 …ŒŽŠ†ãdꆃ†‚€šZgæ™’ê…‰Š´’YÕ—àÆrØéq 7 jj70=<4 næt5 •’åWçáÃçšžç4 ˜„ššƒš—üå–›†Œ·´…„††ššš“¶°‹š”ã•ü휚„äbiô™”CkQáèꂎ€—iLç’–ðëÊÇ÷ÚíïÜfomNbõ—‡‡çËXíîõ Êæâ Ì…‡÷563sdebÌçírxTíë™›‡‡Vead`ì‚·‹ék‰…äLO–šƒ…SÌ‘‘ouÐÎ067bLc 5 잟~ …µ€ô Á›™†žæjl”Ÿÿ柇™ AŸš—ØkBî”ñÀennå†µŠ…ê—˜„áþê™ê懴´Š‘”Ÿ›ž€€Œ€„—˜—‚ƒ„Õ“å—lù´´àABúÿrÚq Q9%97{h665v„›{  mý™…˜è ”µ·Š…ë_›¶½ŒÓürç”…‡‡åFˆ´ŽêEy’“€Ž‚„ょ“ú‡šŠä9¤%‚‰×±‹%‹écš‹ ^‚|†„›Œ‘c5 —•„Ÿx Þ07v”Q Ÿfí š‰¾´ƒl Œ´“ˆ•û“Ö€’ý=%'&'0j='!'$?16177f‹°¥¾±·Œ·µ³¥¦£¢¦¦¤¤¡¢¬£§¤¥¤º¤¤¡¦¤º½¶³²³ŒÁçš³¼‰—a43$:%&&&''%9>:!, '$;8:&& !#&$=3>%$<  XQüïà„š†™ˆ¼¼¥§¥º¸£££¥²¼°§ ¢§¹¥§¦¤¿³¶¼¸¹¿´µ‰°¹¿¼†ì`UêžœìuÐí— 32 Ùôb5020 1264 6<15 4dÔ>%:27108;=  02741 503píæõ³±†¶µ±¶²º¤£§¹³½¥ ¯­¡¥¿»¥ ¢¢¦º¥º¿³Š°¼¥§»½…œ´¶‚“zV…ƒ„Ç 775 12;8:0 0=%$!:72:&;9?<<2102>;>0jf =89 ”j30  kWåæîûeÚ¶·ý~花µ›Æk垗䜎°µŠ´²º¿Šãf‡¶¥¤¾µ–Œˆ‰˜ƒ´¾¸±…É…´‹–5 ”µ¶– `é æƒêb5fæ5?< a™ÿ<94`g‚··žs“´´Žá˜²½Ø[›´´ƒ–°½²ôò˜‰’n…¶ŠþuÑåî@c|àïo5 7=$'$= =%91 Úh 45 6215 qñ5037 fßk~ö”“ÿÝfž‰´·±´€êᕜ‚µ±´„š´··šî†µ²¸¥º»¹½³°½¼²¿¹½·´±³³²³‹ëý‹·¶´†˜„ÇlåÞÇq]y 5 jh 2:%;;=2=>>32305 4406 K~lg bùàf{ðËb‡–ÿŒ´Œ›–˜ƒ´½±è–†š„žhw€ƒ–Y{›‹ƒ•–€·²´šÐï´·‰æ‡¶Šw‘am뀂”{ü›™a61]K55 zm<<55='&%7 3;8< 7nŸšãdt›´µŸ]C燴˜âž‚ˆŽ“nÜ„´µˆƒžŽ°±ƒò䘱±ˆ…“˜…˜’qfæàÚ×jsýãjhø„‚Љ‡ø\ᕘ‘Ÿ“šŒ„êÒ|së€Tqíÿ÷”—Ì eØcÈ` Ûå  | =?36 01 f÷fA±¶€kk‘‰´ŒP›‡‘wö‘‡†–|ù´½µô7’‹·›Äuìê|shK“Ž‚•ÿ±‚ëa˜´ŠŒ‡ƒ‹†’„‚µ¶±¶Ÿ‡µ½±†úb}aàxw IÇSoi428$! ##$1 430烃š–›ã™”foÓ“ž›‡‚ˆŽ€‡Ÿƒ´±³€ƒ·¼»º¼¶€‡‚Œƒ‚ŠŒ˜×V‘„ˆ„^4ã´³¶’†ŒŽî‚µì”ƒ¶‚Þ 1fƒŒûj sf76ëï 23 Ƒà 72=4 <::?55 „·¶–dn}`wñãâfÊž…‡’Vk™·°ˆŸÌÞå’„€€ˆ³¹¸±šß鉵‹’ii‡·³ŒŸüÞÐ}xg–Œ‚˜XJ–‚ƒ‡w†¶²‚Ñ}Kr…šü5‘Œš0=ì·µ— 5–‡d60ï…O?2 íh991ki™ŠŠ–wƒ€å 27¶ˆm61ê’ônø‰… —±¶Ùz“ˆ½²´âmU†‘~n뀊µ†é]ɇƒíxÅ–‡ž—Ö̆†S臂‘tf—‡†c5 Œ‚”71tçPN·67yäD35q‚‚z004N4 F—Û 0=1n𵱉À Në–Ln눰‹÷o—‚–rN’ŒŠ‹„ŸâïNØ’‡‰‹°°·Žž“X蟄…™…†‚†›““„„œØažŽ‡—iduoã…„îFRAz76ON`i ð“êwm74A‘šèo[çôsAøêO~fý‘‚‚†•ÀÛÓà\á‘“€‚Œ†ëìÿ“œ“õú\Ùù‡ˆ‚žírs€‡‡Ÿ˜–à‘†‡òJ蟆‡œ’gvÁ–á”óÊÇßäoÉ–…[@™ë\ lcigZOtew4ùéây6=7Ìlài ÷ƒƒ‚á yŸ‹ƒžé\“„žO㜒KD†·³Ž]jÈŸ††œê…‹žä–µŽ„òaT‡°¹±š ^ŒŠƒëÒá’…”ÙvãŸé{cž€”03~šÉ l“éctn v€žg=6 áî{6 ôß4æÚ51g‰ç04猀˜abàŸ…–æôꃉˆ|s…°¶j4 zŠ·‡Ãi˜Œ†—sŒ·‰êo`î¶¾²ƒꉷåg…е†ôa€´„Ð ”µ‰‘ Eç—pk`H~ìG„6f´ €†$·³-ò­:2=„>}p„…4¡ú‰#<¤%%:% 8˜ÍùŒ¥¥§½µ¶ŠîiŠ€å5=2<6316<3=|jž„µ½¹¾Œ³º¦  §°¾¤µ¿¿¼¼„™œc55 0'9%!$;'888=?051 K†·‚‚‹´´¹¿¸²fýŒµ°ŠŠœïm572>9''-//!$0<8<9%0óMÖúÊ…‚¶°¼¥¥¿¼³µ·“‰±††ä’·ˆ°¶ŠŠ³³Ž€”WkkçõoU„‰ŠäkI ÝŸµ·¶¼¹»¥¼¾²½´ƒ±ŽŽŒ·²„1 6369 3 3<>%31605Þé‘ò}Ÿ]æìž™a qå탳°Œ¾¹‚žQ†´ŠYkÑýå?$$9?88%$3774Ÿˆ±³µ€‡²§¦»¸½¸º¦¦¦¤¼¼´·Š€xÓ 4 0202?27bibJ „´‹†ã‡¶¤¥»º‹³±·‰lTˆ´”76 3'::$9<8>:03 7>1záäœgöa`ã‘Í`M¶Ž‹µŸ›ŒŒ´‚–“ë‘°¤¤º€…†´°±‚wsBv44 ?914 jôç‹‚´¼¼¤²¿¥»¾ˆ–Åô’ž´Ÿ   šƒžœ„ƒ˜šàAxR?39!$$30 6 ö É¿³½¦º¤¥°³²€´…„µ‹³›5 3$ ##'9;k„Ÿœ‡¼¤¡¹³ƒˆ†{à…›Œ·‹²±Si r{‹†µƒ³½‡…c꜃µ·³„ÍS8:?;;17 44Ƶ±°»¸»¶Š·šˆ¶´š°±‚ƒ˜1<%$!8='2>%1=4>80=ú˜€š´¥¼±»³ˆ„oÔÖcx 561 17rà’C—ê]ú絈º²¾¼¾µ´š“Š…Œòê“€´œü 55 iuI›Š‰žâÑržŒŒœè󃈑de c5815  Ô6‡Rçµ¼¼»¸¶³´ž‘€ƒ‹‡ntA•7=299;%?=223  ‡€ŽŸÊ··¼³€èˆ…넆´šUëeGdã—Í’”‚‡Ž™š·†ƒ·±½½°´‡´µŽÊà435627<c mž†{gîí…†Š³”›ƒŠ†—…Ÿ‘y€áž4?20  7o}’߃䅑µ™™oáãbuMcí} lØ›–Çš–‰·µˆ··¸½´Š‹ˆŠ¾°„†ƒóß–šåe  51 šãhhŠ„„ˆ„›”úsšò{ 306ì0 4 bÿÆïýbhŒ·‚èt’‡€´ˆðƒ–è| 23?5dX65e–‘´Š°±¿¡¾¹²ƒ½²²¥²ƒ·±†‹´–evÓ>?:0?8?;7 wé蕌Œ‚€A›„½¿¸Š…‹•”ƒƒö”…ÓéTë=3%91 ==8$1 7 `é’mAp„´†`à zøårãÎøö —Žeµ‰µ¿µ²¶¶¸º¼¿±ˆ„œ·±²±µ‚åŒÖsbcþå5?05sÖemóàçèwé…†‚…‡àW›†ƒƒ›ØåNƒƒ’›—JCb4  jgä`be`çÛv[› uNiU”åòåêΑ—–›ã臜œŠˆ‹‰µ²Š³°‚€ž›µƒ€Ÿ™”‚an 55  koIeâçémù‘â…À‘˜åŽŽž‚—Š’´•‹‡›„—žÖb4 55  ejbbuZñgù÷Gaû\hBž’šüd\hfìsÞæÈQ÷ês”O{“š—–ƒƒŠµŠŒƒ‰·‚ŒŠŽŠàNr[–z6 4GyÆsíã””t„íM€êž‡“……‚ŠŒµ‹‡‰‰Ž‰ë—“`n  544   }Oöbnojàƒ…V‘Ö킖阄™é–ùfFëœïç•C›†„™œ•…†‚„‰´´±Ž„––™‡†óéûÕÌSj45måæÖWRÞ÷ç”à˜“ƒ†…œœ‹‹€„Ÿ›æŸÈq 5 744 04jh\tÆt`EyJCoZð‘’î“ßèçõ„„æÄþ‘œÙï‘‘œŸÆq“Œ†€‰€ˆŽ€„‰‰ˆ„™æ‘”’ihJjc` jash`E”îïvïï´Ž’…šç“Š™ji“é–îèé`œë57` 55gjhzÂiòq k‘ •tå’öuï‘ãd@…™úššŸêà–Œ‡’“µŠŽž„€Š‰´†‡ƒž—œ”äåävAdõv`46Xi5úoom×b Žá5˜p“QÕ—ÿ„™™……‡_oƒ”lZ“’S|fDE7Ì5lóoD]@ìêitÙzu—_–æ4ãæëeom€‘¶±°€Ÿèê°€„…øŠ·žh·ŒT ‡œÑ |ì…çG€—á””‘³ ŽÞ ’ ‹îú•Ö‘Íh bšUz“š…‰ä†Èâý|jiÿ<0> 4 1fíâùeŸ‡Ò 7144[j㵆´†–éÿ剉¼Ž°·à‰€»±‰µ¿°¹¾¹°‰µî‚Ÿx…pc÷35 5h„› 4 86<0 õ•Ÿ¶µüžmâ–ú…‚„×Ú`Û…|öl1úoiS 1>1&= 7™‰›„æ‰æq70áo›´€†ƒµ´“ð`ûmdqÅŠ†·Š°ž·¶µŠµ‹Ÿµƒ¶…OåîrýÒ‡çUsÓæ5 154`Ÿü—⇜‘µƒ•—èÕlïi–”e—”âäžínpch~ûw 05714 5 mÌ…IÏdÀPnnÁi–˜™‰„…‰{Š˜ŸšL7KöŒá’±‚ˆŽ½±‚‹‚™•…ˆ‘g›Æéú‡œcŸÎzówƒ@gÒ 7lh_á|’Ší–ì—››‚—†’–ç€üßsþzîâé34 ~ [fcuÍ G“‚„‚Ÿ„”´à™–›Åàêt˜äÑâóHן•䱄·„‚ž€›µ‹E‡’—ìŸêà‚óžîƒœ›ešÄw_r~c{jílòéž•›’Cš…‚œ•íÅÅŽm•1k4o inzn Ó75 4 4f`4fmmëFòö里ü’–—”ðÐ@þ{gfÛëÄìù“ÿæ™Í„‘”žŸƒ‡„ƒŠ›‘‘‹Œ†…à”äá‡îàîâîäpQósÖqgÐæý_MGhböO…šä†íž‘Ãì÷ëbåÓimlx zk 1 44 {nËsxïÕíT––{˜†äá…èg–F V›Wcî‘n懕~„„aè–îÇš‚ÿ„´Š˜„ƒ“‘ˆµžˆ·‡áêçÕìœíÿÜí’ùŸžíöÅðiìšæàê—æñtûàFæèüœ“Ã[Ûÿ~Ø_kc@kkml    hmi{Z`znoÂFeÈgpåÇûÂlfebÚæçþøÛþî’’—ïã“›ŒŒ‡€†Œ„˜ƒ‰‰Œ„ƒ†ƒ„‘žê†„…‘ïá•„ìÁõâëš…îßnzÒÖ‘éæýLåý‘ßÐgÑ`ZFy  22bÃäi490x´·ëc 푟œ”h‘‚œ|Ww@Ú{ßQJÝšÙNlwô—EÜómEPHé^þjquæÒ×jîÆæläïÕàtœãŸ‡€†Œ†šš´´µž…†„†Œ–ž„ˆ‚›‡œƒ†‡Žî•—•ààìyi 3<>;??316  4433022 ieéæãä ldÄ•ÈóËHÆ`Ùd’ëç—옜µ…†Ÿw™…›—†Ÿ™€†–›™‹ƒŒ°±¼½¶µµµŽ‚‡å…–‘‚žíŠ…ì…—”•îà噚Ÿž›ž›ŽŒ†€‰…‡¶‚’еGåï4 51757 ÙLÐX 79=?;>5U|áêì–è™›’åç˜b’gkÍàiÃb÷|ódíÕ”†™š‰Ÿ›‡ä⇰··¾³Œˆµƒ•L47à˜„‰Š„“€€›”„…ž€Ž·€•VØôoÐçÕËæû  7445111==7 wà@}휞€€‡Ÿ›„œäeÑâ‚€Œ‹ŒŒˆ€€…„†ƒ„‚€Œ€VËKòùâ–•ùè„•–ÁŸœ”œ›™–…€ˆ…’æ_^ýTavÔAœ…„†ŸŸýîçÆò^Oækl456641507 i}—fódzmfÒfîFq’šœ€†…†„…—Ÿ–€…œ@˜™è…µŒ„‚†êþówýmúYîèš–ë……†ƒáòÛA}IŸ‘P—™ÉÒ‘‘`dEU^÷å…’ìååçPì@öö”爀›ŒŠì–”’m5ed`wÀÉ 4577i42 5 6 u—´Œ‡‹†Ž‡„œ™™„„ž‚Œ’âÀr‘èöohÍðàé‘€†ˆ‚Œ‚Š‚“–”ê÷ðÕ’ÿdFC욇…‡›„’’›—˜‘ŸžMä휜’þnd`ij`keg]ÓFÌÛW^d_l 503<24Nážžê蟵´·µŽˆˆŽ‹‰‡›“ìž“”à”–——–™‘ž„€†„™š€Œ†šéúñëûPi •4èü•Òž“²æð”޵¶¼6 =œ¹¸;ßN‡Jë4Ž=»?—÷0‹1¾>‚1wíˆ?— dvÀ}l5s‘ l0K27< ~bz—þlô–ˆ‰½¤¼·¼ºº¹¼¦¥±°…¶±ôÍ‚ûêü€ 4 7 <66 `õhj75>6œò•Ÿbà“í…±¼²±¶·´°ŠŒ³‡¶¶™œ”áœ5`až…jZmI 7741672a4:8155%%%?19;=33=<5A1n€¿‚g‚¿¤¿½¿¹Š@‹¤º‹h`гb…»‚Ajîà 7Áf52•†— 1ì‰á Ù¶·í ‹• Ïc݉=û´æÙ”ᇂd01 Mþ–i ‘è`?  5s±w’gØˆŽ„¶¿†Ÿ±¼´´Žˆ¹¹¤§´Œšå´¥¾³¦§¾™•½ì‹´Œ°¥°³°—´º»²¼§¢¼‘Œ¿´„¶†‘½·õƒ Ž59%%<`:,':&4$::'!/';&!2%!- 2>&$318< 4% 67s~megˆÿN•=0΄såšžcµ¶³€d˜¸·ãnú€µ±µ²¥½±±µ¹¾¿¥¹µ·½°˜µ¹±¶³²ü„·³¼ƒ‹²Ž™‚…mcU†‘—å 0 cj^žé5y4”ïC|v•Š™—Óc„‡|µ²¶šjy¶~Šõð“ƒ<Œ™ø“ 0†} €’5 àÓ l¶„׃††šøŸ“aíô‡6\1š934&95= 18w1j ==425 32 ýhŸédÿ•Ëþ‰„“Òm€°‹¿²·˜“‚VýµŠŠ´‹™g„šg´³„é•FVMM™„†¶ˆT™‰F‰¶¶·‰Š€â‰‚‘ƒµ±Ÿè††ë‚ö…‰–CÕpÞìœkÃã @„ýY ë„øð465Jã÷…4‘’‹å4Cƒšƒˆ”dŒ…p 80ÄboáÏ54 lƒ…ïô‘¶Žˆ¶´Ê›°ž€ˆ¾³Ž˜ž鵞‡‚›éVãÑ”‘^3 þû412n =>7 Vñè5 1 ˜Õé4êm·õP ”„–”ã<'#'>&& 3$<467›jN‹€q÷°Š—²²ƒ€·‚å´ºµ‹³³Šã¶·…¿»²·°‡°º°¹°·´ý´°„ж³Žˆ´™²²Ž²ˆ¶É…Œ…´³³Ž‹ñ…µóç• b•`Ÿ…aôƒ™†‰Ýžã4 4= 24?55  ág†‚ÿ…†œƒ‡‡yu“êÇ≚fìÎëÈg[àG|ëÑÉk[ctgyKfn 4   umkåDñ k 76b1úþëgƒ…‘µ‡‘‹ŸÕ³¶…³‘˜Œ¶ŸŠŠü–ƒ·Ÿ—¿¼Žâ‘³‰ì±˜åšƒµÿ–ŠždëµbŸ·}ì—ú…Ê…½…ƒˆz‰‹˜5HhJý™få ‹öˆnãûúô˜}h o  •on îÆ”ƒ‡ÿÐن嵲D›jã—†šîãwk€ã“œeoadâÙL\z—fh ‘lL 15 e6<~™ n ÄúZ‘”k™”a`ná5y4 nÞxw žRr‚ŸÑn–áꈃè–„‡ñŽ”•óääé†wæ·mŽ™‰p˜è޵ѷ²{—ŠøÜ¿Šã‰•…‹‚¿‡ƒº—–´·°c‹Ú‡è„‘°•ŠœyˆÏ‚ÿìPòŒ„´âÚ–}î qeŒ l7t„kA“ã”Þùjrra  –Ç4f63d 64 ü6 5g~êóú4î\øK… þçëv÷„ÔlgÁèS–f5 rîaŠ `–ƒc€ã éí…]Œa瀞„÷‰üö´wˆ„b±‡Sž„‡„·êꆊœ‹µàŒà‚Œ·‘O›µ±„µ´˜‘†ˆ’¶³ŸŠûuŸ´“„róxš“fŸçìje†I„n”’—”ŸÎXmäöžÉdg Ÿ{jîÈÑö‘”rÁ‘‡yáéevÃlu 56 j3 {32ß ?ÓÐnÏižõké}˜|‚ibííáî H„›çZ‡À†^4“X´‡šo 7°¹€ ‘¶’„·áM´JŒŸàëY°œ5–„j‚àb‡””‡` µ‡1ž·øß“„W‡Šé–‚H°î¶þ††µ´‹´†—±šî¤¶eêt‚µ’Ÿîlš”Ó~áS62 5?83 2 6V6 6÷3r 5 l 2dçe ë„ï•ÁH€––²Œè޲¶½¿²º°†´µ›°X„·‘•¶‰‚–”ë™oïx””‰˜³aæŒé†ƒ‰cJ4èek1k g8<=;^ p06÷4~”2q =:hõÉö—…nî]GŸ’o€”€‡ˆã†€Ý‹€†²‰€³Ž›¼›xƒ”œ“þšµóâ·û㋚ãÚË|yc†‰ç²´íž“Ð þj‡‘5775 wc4 63w Zj•wgùógŠ‹…íø‡û˜‚ƒê—ÃøŠ’‹°Ž‹´€ìŠGâXq‚‘–„Ž_pOë„„Ì áþãSã™óú·†in‘‘íÎÏÿácyþk c5Nf4o 51“í47ê2t9 1nܶŸƒOžŒì’•dŸŒàµ·O·“„Œ…Ž’Š…±e¶`í¶×킇Šúc{Œú“Ìèó„í‰é´”„€Ø‚„qŸPä5~—ý ÿ•Ac76cju 52 187 fcâ°“‰‹äœž‡€–Ÿ‚é‡ïކµ™„˜ì™–™ŸŒµ‰ÔÍŸ|—…dòï•p›‡‹†•béΚ€øì}d‡žãf|]þ4fb 5 0 —z6 5 1 0302 —7–œ„ƒŽ}ž‡™€€˜´a²¶ˆ‡€˜è‹šhÙ’¼´†˜´’ûŽžà„ž˜™7kŠ—oÆ’ ^Pµ»Œèš†JG…ðíaÒr·´]ßš‡i  4 Êb016 2þ4>;5^”е”ðˆŽéžµµ•ešŠ€±·‰µìn•µ€n~’žŸƒ‹Œ…ƒžAÒƒ´ò aaã•ÆÙ†ü ™‡™›‡‡šŸä›ƒžäBg——DB™‰›k ôz yÿ73{å56301 7 4< œ kéãtûØèŒµ’·°€‡™µŠœŽ‹Ž„Gí‹€”òs„ƒã—žGa·ŸÁqfáx mvHáJµ…]ë›íßè•óàŸ˜ÿ’‚‚öŠœbîÞ]h t0 10153> Ð᜜t̘œusš€íS”˜™—“˜‡wc•“éû…Œý÷™‘„†óŸlt†˜“š˜’ãñ圃À‘„öÔ’ìÄr–D•ÊŸ‚‡æš„“ä’††’“‚›†’ŽŒâq“Š‚àuö„˜úüo 1 16567 60474 o{e07 3%$>>%;>:''&';8;%%35 76ÐÆü•G³‰€‰‹°½Šµ¶¶±±½¹¼²²³¿¾°ˆµ¶²¶¶°µ±°Š´·ˆ‰±´š@Ÿˆ…”–˜‘œãøg{žÒcÎhs†‹€‚ƒƒŠŽˆ°·µˆ›šåcMM`õj 7 1ENwjm•ð—•Û‰ˆ€š‚‘š™DÖØãœ×_{Q–éZváK^çuêïcaà•–åo—–ãåmhl ýemÁk 55 174 67 4456327 7114 k\cÙâZ`Kïêð†‰„†€€‰²´‰³·´‹‹¶¶Šµ‹ŒŒ€„µ¶š„‡€³Œ”óš’ž„žì[’…–œìrkä–êxpHÄøÆ”÷L霂’Üà„š˜…âý›ÄÔbáaMPêmâàfTslzsdh——II}ú’Ÿ‡‰‰–ö…€ˆÿÎ…„˜€œHé|ÏŸ™‡ÞjÌš€{aKsÍè˜emÿgÕÍßwBoh`ÆiJfW4 7=54 51477 4023`  a5ÎàYqWó÷õ•ëµ’•‘ˆ´¿ˆ††¶¶²´°„‹µ³±Šƒš†Ž±·‡‘ƒˆ™Œ˜’à‘ñœ…çæþ’‘îeîŸ`gò ÙçåIå~…u“‚Fñ„x…pëëM†âK”uQÈìéhõþæk_ÝòYŸžkèçlóò†~´³o–¼“ŸŠ†a›—”4€ƒˆ¶½B}ˆ“i?>˜³šP˜°‰š71ÿ=8k¤Œ•¶°Œ=7c;:6?8Ô½ `‰$ 7%#0d59?Ž‹ÔƒŽ294y`‚5Àíƒ73o40‰„Ý e˜ˆ‹Œ›…‡•µžµ¿¹‹Š¶¥‘ŠŽ÷›¿¼’…¸·ˆâ ‘—å4†·ÏTV5šmø†™034i±5 ŽÇh‘y5ÝyP dƒå™Í ޽Ÿµ³ó –ÊChŠ–€—½·ê´ï0ž—j1™±¶×…b3W”…j祊…ƒ0´„ïq·½AaèÐ 5Óç „¶œOZœ<<~ïá°¹<%?±»ƒL?#¹°,¶§ p ‘m:2¿Ž7¿¿<Ž„,‚¾-9$$;–â´…¼¾³±§£°~å056>1:"&%$2 1 ên¹ ²¿¡¤º£ º£ ´µ·¾µ”œò0>2$;0'"&&"#$$'<11>3•´°‹†…‚·¾¥§¦¤§¾»¡¡¡¦¡¹‰à˜ˆ„šp9>0=4=1?& &:>47œŠˆ²µŽ‹±¿¤¡¿Œ„™‘뀴†œ…Q‚бƒšül•Ûd19;= 0457 otHïà€˜ôž”{geôüïšs{ó醆 =8619$%$:$1=6Ý15} âhðÇ„äz·‹†ŠŠŽ³¤º¿§¦µ·§»³¤¤¿°¶Ž™‚—ñt52 7=2 60=<65ç–‡´º¾µ°½²¾¥§§¾Œ‰Œ„š€í˜•  s  d d{bn{éù‚µ±…–ŸƒŒµ´´õ·µ‡µ½µ‹‰€Ñ’û[\y 50= 57 15041l^a˜†ã^šé’‘݆‰…µšœ´´´Ÿ‡j‘Ã52229<>$8%%$';><8=<6117åc…´ä›Ž½¼°·–î‚垆— ᛄ啊„‹¶…нµ³·Ž‹„„•xzl1 < 4123=2pòñ“„‰¿§±¿º¿¶´¿¤·°¾·µ‡fî]?$'65?030Ÿµ´ƒ´“޳¸¶´½½ŠêŠ…ˆ‰mc5 Ûz`65’ž…Ÿf€l€‚ƒ˜—gù7—5<9= 5‡¸´³±†„¹¥¿ºº²¶“è鈴v 9<>7784$%=$$9M=55 ÿµ„‡ô^´‘ 7 ‘i57 4ŸØZzkꀥ…„†–]Ú†°¥¶±…O]q™€·”7•ˆ™ñáx}†´³½…†êç´¼°„’?Íoé6=%<2MS_7ý¾¼‹¿»œ±±¤¥¥¥»³™›ˆ¶»´‰€410168$87~jË„Š¶„ˆ€‡ËÚ†½µ€ùq1ööq 5 %3Ü{n Œ€ˆƒü…ægë´¹¾¶´µôvG˜±µ†`öi82q <:?0kn < nSzw70ê™Lh17Tëþâ 2bv”Z xƒ‚šã—U‡…›³Š‡˜ûœêµ€µ·öäq„“êdö—bÛÖ •Èñšd—Oqc„ž´€†qà›˜†±´õìžj阘éQGôÂïzkplLiÊ™™ç‘S†…š·´²´Ÿí…‰‰ƒ™ƒh’Ÿ wd ?6575 Ÿm“†àëgÀ„Ÿƒ††·„ÊÏê·…–úež21==?751=?47 c‡âÀv¹¾‹Œ¶·˜‹á Ý”=?4 =6165Zuµ´‡±¹ˆ··•›¸¼¶¿¹´¶±¾²„ƒ†¶Ž—ƒQ1 5 •Ç Ð’q„™‡êKÑ’ÌÛE `w7 éúä1JÚo 01~E ø÷y• 5cïÛχ•ÿæiþ˜Ö‡‹Œ³±´â”‚•}탗›š~j䈓c†€øƒ‰ˆéØ„ã”ûŒèf±µ’ýëæmÀð˜ÿÎäÝÉqÐk444=356  4ÉnboÒ›Þq~ÞJjÝÒ–æo‹µD”€š…‚·‹ŒŽˆ€´³¹‡•‰€‹†›‚€š•`—熓b~g_[ozáïóïîoËhù`À‘‚‰†–‡{jj66 }•×57 ~5{îuñä`Ôv_m烄õ˜h鑃q—𔜓ⵉ„—è±²·…–î}“x“ƒ•Ÿ߉·Û^þnûBâ…íwŸršˆ‡¶øz 25 4 36 4–1 77zh›e€ïæðà—Xp‡†æœçeˆ†Vd~ ƒXà™F–²¥‚ƒ·³‡—ž‚‘Eê†c–¶‚rµ¶™°üxè‡o“a—n ‡µã•¼–o 56[3376Ž7 h aú Ig b €µWd䃚y–êj‘V›„½‡iþš “câá“„…‚“y¿¹‚……ƒþ„\…ohþu‚ŒŒ°”…]Žç‡ü´ìr•Ÿˆƒ‚“šÎ12 >ã 54 †14ê ýËqždvçúu˜Ÿ´„d‚—™„N–Œé–߆j Ÿ•Ò{o‚ƒ™Ž˜“Žxç´¶™{†[€‹ˆšÖ޽ô`š‰—’·~ëœKëÿe–Œ4zš\‘”561q 4å1 6b™50 1n ’…5 ‘b•á[ŒšƒŒ󇜄녴hçg–“Ù‘›êìﷃÀ…ò‚š‹°™ë€÷Ÿƒ†šŠŒ½±S‘ނ䄚“ ÅR–ÜÕË eij’ 4ijHRa{Mqà 154~d  qæ—…äÌî’‹††˜ê †„‰½µ06³Š‚ô‹ï˜–r°€¢&–5š‡;¥_ ïz’2²`°„”|c™oiŠáZ”šñ0ùµm7~t^€dŸ‹·Š„‹¹¿³µ¾Ž´³…¹±™U„ 445??!!-'# $"$$ "&;-"<%:3%%$0:>%2âÀ—»·Ž¦¢£­­¯­­­¢  ¦¡¦¸¥¦¸±»¤¸ºº¹³°²‚´ê›·”ùšœ j 3 =%<=':$!?29< 7?5 ß 17 >1 0 S–‚‰’š—´¿°¸¡¡¤ ¬¡§ ¬­  ¦¹¹º¸¾³¿¹¾±±²´‡ƒ±·ˆ‚”žšüd”õÔ[`22=08>0?=<=8%>;?889'!#'' !%%:?293 ` 3>>%''$$'%9&%<0<<4766 5Fù›„œ•ƒ·ƒ°‹Ž‚„‡žŒµ‹·°³¹¼³¤ § £¡¡¡¦§§ £¡¡¡¡¡§º¦¦¸¤¥½½¼¼Œ¶¶ƒ˜‚Œ|ì”Z  =34410 70 =42 292=>=<31>? 2;6?961?=1`_zH†Ž…›‹„‰›ë‚‹±¶ƒ·¿·ˆµ´€‹ž™·ƒŸˆ²µ°²·Ž´´€‰´…陕故æ]–EhÕd e  55 4 5354773220==31447hüñßæêÊí’Ð[úúýúÊå“–‘é„â–……„†’‘„ƒ‚ˆµ¶·Š‰Š±µŠŠŒŽƒ…„‡„„‡€€†ëáž–þðÑufk 7 5     ojiepÏúì—š“胵‹‹±°·°½½³²²²½½±·²³±°±Š¶°µˆ´‹ŽˆŽ€—…†‡›…•›”•–éöÿïñ~zd      54773 5 4   Vk``gd|XzgZT|IdiøðDäî•œš‡Ÿ†€‚†„ŒŒ‹‰‚ŽŒ‹„€……‚™è–˜—“–ê‘•ãêííüBúäioèwbûóqfI~Æ`l{Nkm|ÕTËrOqÖWõáç÷Áí♀„œŒ†œšŒ„€Ž†€ˆ‰Žˆ€…„‘ü›“Ê“ùNÙciW|j    a`mKlzòycåg—ãÿâúäpÒÌô|[gibyz`fbjog`ofÞmØwkmmlqbjmÆtÜøYÓûã„çøŸŸ‚ÿ䊅†„¶üa³·Š §´°²´‰uQµš”‰ÓµIuŽb’èf‘üb—2ç} {j Ù_{•µ‹“´³´±¿¾¹¥¥¤¤¦¦¤¥º§»¥¤¼º²€†™u?%'!!##,-,,,-# '$:8$>?%>=5 XC‹˜´³²»¸§§¤¤¥§¥»º¹¼¼²°·±¶ƒ€…–œœŸì‘`do<>8'$''$$& !!!!!$&#'$'$%><>27137 jÔà—…Ÿ„µµ¶²¿¾¹¤»»¥§¡¡¢ ¡   ¡¦¡ ¡¡ ¡¦¦¦§¤¦¥¿½¿±µ±ƒ”ž—vr^ 6 75 5 5 54 604 6630 76 olci lptà…‡€µ‚¶µƒ‚ˆµµ´·³±¶½°½ºº»¿»ºº¼¹¥¿²¼°·±²´ŽŠŽš”–…éX”ó÷í4 >1 51??9;$$:?9!! ' -:64%!?3%;;8;&$=9&%98'&> ]41 5631jäù‘Vßéé5 165rgc 7Û 602h36 qœZˆµ¸‹¿²²iv‡›W”Ž”—ž›àÆ’c—žì–ö›„‚ⶆŒ›Äƒ˜·¾·Žƒ™„†‹–lfó5684 jäÉl‘Ø|G•4t > ˜7Wñ4Ù90aê 2i ’Š²îŽ¿h½¥‘é¶äˆlž“…€ív€ú‡Ž“鈆⊙㚵·†ê„¼µ‹„îì…±…ü”Ã{a7;“ `kíumòììÁñïçz…ÉU J 5n21 03 בs–û‚¿“ŸŸùo–Û HŸÛ~wàìåþúëÓà˜•‘wš‹œšëñ·¹‰g¶‚¼»™Ž…ƒçƒ—lù•17ài5nGbŸõHQkãžepÚê4I ?5i 50Ùö3Ll ~šã•‰CˆµÚ’·‘ᄇç¶Æ`‘½f—PQƒãK‚“ˆŒhš°ºƒŽ¸³‰·´‚ƒ³Š“…€ì–™‡œ1k}Ín‡lê w76 315345$98&'&&$$'&! !"# "#&!!$$''%%=7=54    bmêû倞Œ˜†·‰±±·³¶¶±²³¼¼µ³½Œ‰ˆ‚€ŸŒƒí„ˆ‡„‰ŽŒµŒŽ›‹…†î’…P™ìÑèÆÜBdÑo}jf 6 31 5ý„”„–°âŠ¥’Žº€‹¾··¶¶Š‡±·‰¼‚¶¸‡¶²”±²”·¼†‚µšE†þ‰œ}‰â›Ø•]|—  4ec f j 4 =767 016?2390=>=8:88?31776147 LúsL€ëø€š“…™Ÿ“†œ‹‡‰Ž™Ž°µ±³´±´‹³ˆµ±ƒµŽš†•…ÿ…ó†÷”„—‡ÿ‡N„]eæàp×}‡Œj†Œœ€‘†ešŸÜÈìd ô101 j77 4k b[ûœ˜‚i„ŽO‚¶‘‹³€µ±‚Œ°µŸ±³˜´²˜‰±„Œ‰†µ‹–‚žšãEƒ‘†…› _žõ†F†[œá`˜Ÿa…zçŸÁêÙ”“üøæoJ406 324203<50913?4 06 574 iæsTÎgleÙÝæ•Âî”ìéàóœþ–ïêêoóÁêïtëgfzÕrrVÖáeÏöPéà–›œ™Ž‡‡‚˜€ˆ…‚·…šµ˜Œ…€Œ‡…‡ëž÷Á‡Àg“o]nxÏoeóulLhoeqÝfêáê›ö‘‚„–€ƒ‡€Žƒ‰€ƒµŒ‡µˆ‘µÖ„„àžä•j‚4¸'´þšŒ2‰ksƒ6“êeÀVPš@l‚Þ ð 7 ë ›ýöpl´ÿ“‹‹•‚‹€‡ˆ†›€žMî  <<%3$$> $9'''# !%9$:;'%<2=36=775÷Ÿ‡µ¼¶´½¿²²º¥¸§¦¦§§§¤§¦§§§¤¥¤§¥º²³¿¿°°·’XÑ54 412??8988;'&'$;>>=677 3055}—èà…Š´±°³²¹º»²³¼²¹¤¡§¥º¹¸¥¦§§¥¦ §¦¦º¾¹»ºº¾¾·‡‹´‚Œµµ´ŠŽ€àé…„ƒéwmtfn 6=9<7742%$$%$;$ $:!!$!# $%:8'!&'8;:9<2<>2<;;=986<$;0<<=?=55 5 •€í”‡ƒµ‹…µ¾°·½½±·½¸¤¤¸¹¼³¿¥¿½¤§»¹¿¾¾½¹¤¥¤¡»³¸¥º»¼¾»½²²‹‰µŠ‰Š¶µonWÕf 5257?<<=2:%$&%>8::>3=9?=98<2?<0?8  `mv×pÿ‡—Väç›´´ˆ´Œ¶°ˆ±¼¶··±¼½±³¼¹¹¿¶ˆ¶±¶³±·±µˆ¶··½¶°³‹‹´±Š·¶†‚✂íHOZ 02<::8>??93455 630166 735  5 f\Rj逄‚“ꞇ‡êîÔЂŒ€ƒ‡únõûmt’œ”—÷옄ötÐÊ–˜„æï†€íXzb@qn 53<<070161×Ìd[ûíž‚ƒ˜´·°°¶´´²±²½±´²¾¿¹¹¿¹ºº»¿¼½¼¿²¾¾¶±¼¼¿¹¹³Ž´¾±‰·ïé嚑ӓàsZFÇbõ“b`kCqgn 54 777745563371>>:':0036617  42047755  57330 eB㜟îíq`Þ‚ˆ‰†œê–öÝ„šŸ…‚†˜–cWêm𚆷³¾½°¶Š±µûæ’„‚µ²¿±µ´´‚jaØadçö4  ñ“í÷–[a–†…Ÿœ˜„Œ…›´‰ƒ±µµ³°³¾¶’å™›ŠŽ´½³³°ˆ„ÄqJÔ•†·Š„îeX14330žþeKh3=4 áV|„èaf25{u×èz60öqjh 5=}à€îG^ek1181–Fí—b491:6 Ò‘e”70=lĘ‚µb è”éꔃ¶ˆŠÁgœì‹€µ‰€PkáÃ™šƒ‚‰€‹ä蓜ƒ‚ˆ‚ƒì̘…†ŒŽ¶½°•_“ŠŒµ¿¹¼¼¿¼Œ„‰€œ´³¼¾¹¿¾³²Š„íÊÒâ”—„‹µˆ…›“‘àeùïñ{j2=609;:?capp =;5g7k 2a 561= ™jxé50342 6413 515>7jïc“4 77 `LóîÀÁ43 K–æ‹áàëù‘„ƒœ’š„ˆ·‚œ–‚·±±±°°³²µŸ‘ᄈ‰‰Š·±±°·‡Éáßø‚‰ž†µ±°³¶€–Nì‘“µŽ³¹²µ€‚‡‡´±·²±·»¥·Œˆ†Žš–„ƒµˆµŽ–ë›ÐwÕhò‚‹¶”“mÑžØdâãꄇß}431òÊ 06    e  61 55407 413340=01  ocÚM fÉofè“gã“ýŒƒâ펷²ŒžµµŽ¶°€ƒµ·‚Œµ€€ˆ´ŽèŒ·„‡€€žëŸ†‰™†ád´½Jï螆›ŸI㇞”ëトµŽ†ˆ·Š·²‰µ¼Š†‡µŠ…žŽ·‚„Œ€‡‡‚‡œï’„†‹„ò–…Œ‹µ…bfš†™Bntlo45 700 1446 34  55 5 65 7 ýj  vHdÉeuøÎÿzùìcòÆvÔýFU}þdÍ]Üpâ‡Ž††‰…„‹‰€‰‹›„€„‹Š™‘ƒœÄÆçì’€”xÙ“Žžr•–Ÿ™èlå•áÂâ^óœ’焎ƒ„µ‰¶¶´Œ‰Š¶‚‰Ž´°Šƒ…Œ´¶›á—”ƒˆ‡€›æ”›‚´C•›ç‡îœ^xfr  7 647q75t Ö    5  |nha[áô4mÉdv×|÷äiÏòùLo•ë‡`’š´·…zì¾·™±°¶˜ê°½±“‘ˆ¾½êމ††€â޵„–ì`W…˜meB~q„wW™…†î儱hå¶µ‰¹µá›Œ°²¿µŒŽ´Ž±Ÿœ´‹·Œ°–´ƒŒ‹ŸÎ‡d‡•gY 6°ž0%:÷¿oé '#»µ.¿&!$ =´3˜Œ? ‡/ „#'%? m ’š··¡½‚º¿×î{ ?50<$,::'!=:1;–؇ƒ·Ž€´¥º¶¤‹¿hU•0''>2&!& -';:'=  üé™´´¶²¡¹¶¾¤¾Š¿º½¸¢¹´¤¡ § §¥¤²´oÇ =:7?&!898$268œäF¶¿¹¼¥¦§» £¦¡¢¢§¤¥¸¸²±´³³·´½¿±½¼¶·˜µ·–€–ÿêú49 0:=8>8;8'87 ÝòfꀊŒê´¶œ†Œ‡›•ã”am6 2393;'$%!!&''&9:2=04 la˜{éhêxsêáÓ‡êú˜°Ø´±‚ƒ´“œœï743%:;?#!%;$$$<18>z–ŽšŠ¶»§¾§£§§¤ ¡§¾³¹²¶½‡ˆkå\åAHh ’C {–\n‚—Š€ˆ¿³´»º¹º»¤¤¥¦¸ º½¤¹½¶ˆ¶…†çgüd jcj„Pô÷öÖ•lI—õöâë‘ižõ‘˜œÊ`„šŽ€µü›‚ãeeÛo41><>'8%&&'>&&=<18< 6 MâþåkŒ‚õЉ€……ŠßËæao`T øja{FóNê†dý‡Wuçz140%72':>?&;189647Кô€·¼¸¼§§¥£¼º¦»¥¿½¾œ†ýi422?75mátÔ†µ€‚Œ„°µ‹„‰´·ü‚óKçmxIo”œêœ„ƒ±‰²‹½º°¿°º»°¶¼·´†Ž‰C€jG—l  cžûüˆ¶—“еµ˜½ŠƒŠ¶ƒ˜€— 66<802:3=960<944ez€é”›š‡c™jpy744= 429 7<4ZÞ~‘€–е{…ÝêíÅ•aŽa—‡{–]le53757o  femqÁŽ–Ÿí╌ê ìc4a oêFh”ibƒ´€²²³½§¾»º²¹Š¾±±¿Š³‡”å 26>0696eÖ„†´´´¹‰¾¸¾»¸»¤¹°¸³±±‹½ƒ„‚k~ëúvàT÷ÁKèoœïꘅ´€Žƒqæù”Lìa 23740:5= É |ó‘p í20è74  géŸR›âŠãQs€ôP„š\l”Ô|kAg1jh6=630 4•3 ïøçÕ…󃌃™°µƒ‚±€“µ¶‡”íÛƒ‘|z„áhÒmãlmåQƒ’–Ž¿¾‡¿‹–´²ˆ¶°Ÿú±„˜fù7d5hÇjëäëXœ‡ñž‚Œ‡ˆ‡‚·²¸ƒ··Š··°‡›’ñ—ž„U’„Ÿ_6 c n–‡bð—4<3 7=4 ::18'81485ã…€˜‘‰eëu›ŸEˆƒÕç™évþ ˜Ó 7p57?< 10<32=30 l„𔵄´·µ†ˆ°Ÿ±žúŽ™øœ‘·Œ·nˆµ‰‡oaÍOkí‘q±¶˜„ž°µÙ‡Œôëü˜êíµ‚àŽ°†‰¶Œ†‹µ´ƒŽ¶µ´Š³µ·¥¹¶Š¾¥§¿¹¼±½±¸¾€‰·‡Šýô™Ôoqlsn  05 0>4 n Ð0 27177271>4<577< 655 —”c™”„‘„xwccs|pVhk 5 1jNsÉ™œ…ç‡ç††›‚X–à]Êãàü€ä‘˜Üžš€à‘Ÿ›•…„ts–þH•fš’ô”„šøï€˜—„Žš—Ž„˜‚ƒ˜Ž†šŠ›‘·ˆŒµ‚†Œ°±Žµ´ˆˆ±··Š‰Œ„޵·Šƒµ‰±‹µŒŠ†š‚…›Æá•gi   4 1 75 544J    f}qrw`lñcÕäseftÄítp~hsËškölhed5 akcWkõÓeÿ“„‡›‡†ž„Ž“ãþã┚„éìu“Ÿ”ƒ‚È𚆇ž‡ñlšOeÃIîï~ïåÿû퇂ô凚⛇„…‹´„›ŽŽ—†‹†€†›„ꋇŸ‰‹ƒ·´ŒŠ‰²°··‰·³µµ‰‚†‡˜˜…é““ÄíÏ÷xl 07020<0631   7e{b]Z  gbLÞê“gùš@oÅdgIíÀÞñq`õsÕïco hôýøîúíÿΞ€äž€—Ÿž‘žÂ•—ê…„éI•›àà”œözž…‡š†Æ‚ˆ”‘à~_fJjwIúúÈ”q–èãøææ–‘†Œ–‰šŽš‚„ù™™‚Œ™…€Ž·µŽµ€‡€ˆˆ€µ·†±²Š·Œœ›ó™”~æ…‘à€Ÿœ‡Pec`léìDåwaa00  544 w7100 55 dÀ‡ïà54Å´¸µ”fxäa”j}ajrmyXAéúooèÛžÇyøñ™•nãiãéäÙèÌ哚Ïà…c`îk`d`ã˜éêî——ê•îÞ蜀êcñL cnŸ˜—éî切µ±º³³º³¶¥½´½´Œ´Š†ŠµŠ¶±·¥¥¸¤§¹º¤¼¶²‰µ±Œ“…æðyx } 71:136664  0=0<>?=924 | óÕy1 1713095 }Ñlúì•umh}  o 57802?7>263 e–æ‘•îš‚µ¶‚±Ž††ë††â„Ž€·³¶·°²³´µ†‡ê†Š†”€œš††”œã‡‚“›Œä·ƒ‡Œž„›š“W÷Ž—š¶^‚†téŸÊ—˜†‡‰Š±°±°¶ˆµ´Œ„†‡„Ž·µƒƒµ´·Š™‹²µ°²µ±²°³·‰†˜š…ÝGâïJC 4432=66547 n 71 75774ohgs f 5  ùkn5r 6467 50  441oAÛn–œÝ’“‰°³´‚´²µŠ°‹›Š±‚‡’„”—€·ˆƒŽŽ±´†‰ŒƒäꇇåÀ”[áîÄ툇›Œ‚†µ¶˜˜€µƒŽžŒµ‚’Ÿ’†ƒ™Œ‰‰Š¶±´¶±ŽƒŠ‰‹µš™ƒ‡œ„îIòëïùÎçç„™c56 576141    5 5 ~×Á`icl@ 744 64k`L|  745 5 igæÜíqx—ýÀcKkgë}᜛‚ŒŒ··±´±·´±·ŽŽŽˆ‚‚—–‘™žà•™€€‚„•œ€ƒˆŒ™‡ƒŒž›˜‡™“—ì‘”—Ÿ…††‡™‡„‚ŽŽŽŠŒ‹†‚ŽµŽˆƒƒŠˆ‹„†Ž´µ´€‹Š´š„„„çåÉóÆÅtle  46 7 55  oy     volcdRÒyfaé†æè˜ž…›„ˆƒ‡‡‡š‰‹Œ†Ž‰‚ž†Ÿ€‚…‡ž‚‡†€‡‚‡„‡›‚‚œƒ‡‚†€˜é“†‚ƒ–•‘„€„„„õjŒ¶²±¶“fˆº¾ƒ›ýŒ€Ÿ„šîjäþcósJeú˜kzagô…‚Ï—ŸÈ”Ö𑜘Z—áô``ô ›  n4 557661=<37914    762 4<42416  cÄq’„àˆšý‰’°µ†¶Š·²ŒŠ³¶´ŽŽ²‡µ‹´‡‹¿ˆ…´‹ƒ´˜µŽ·µŠ·¶¹Œ´‹²ˆžŒ„ïÛ„øá˜†å˜µƒŠˆ²‰²³³³·³¿¹¶¸»¼¹²±±³¼¶°³³²·²·³°µ€¶€‘îrC sb  16776>=?6>?02 1477 46 446 3 7 Ð  3 752440705òf`yog}Õ   XdïczzÏn”i‡ô”„›“’€…Œ›†‰š††…ìꋅ솄‚…Ÿ˜›Œ†‰„ŒŒœˆ€“›ƒfÀeéìGΑžƒ‰´Œ‰³³°±¶±µ²¶µ²·³Šµµ¶¶µ±Šµ€‚·ŽŠ‰Œ‚„›âó÷ækR]Õdk  5 71 646 5 G5õÃjß\|iófZmß^Äyv `ln{cóacnGntomqÇdbïë÷—Ä凓|š‡™…ƒ›ž‚„“윖…‡‡š›…›‘˜„€îž€û‡”“„”šûœïbÄÂRᗜʟáý‚€Š´Š¶´´´³¶··°°°¶Š´³¶¶±±µŠ·Œ…´µˆˆž™›îíôßaúid 5 6 4  55   nkzk@lFôxÈYW{Jãìò”XôSFi}X`xùKxhkfÂfA“ÖLèêïÞV“–“ê럒’†‡…™†˜™”žë…Ÿ…åéœêàé–—šè–’îÇàŸ—ž’ž…›‡œ„Ÿ†ƒ†ƒ€µ€´±µ·½´·±¶·Š¶¶°··±¶´ŒµŠµ·´€‚€š›€‡›ûá—ELñhÖg  4554064755676774455   fkaCcÈöÒžÝF†ê…žW÷žä™ímì“ZlŒÛ ››‘ô—<2“õ4'1·ˆ´ › ‡½êµ7¦:¶ÿ<¶j¶%¶Ì7ˆé‰0Œšé‰ö†M„žŠˆü T”1 Ÿ41} ÿoœ••„¹¤°¤§§§¡£ ¦¥¦£¤±¶½”oÜ7?8> >6913 >9;3:'<<9$9017 ggÀ511r s훆š†™íû䔓‚‰·¼´›ˆ½¶±°°¼¾°³‚›ž˜‘Nå’‘ÆŸI‰´‡…‚zT‰·ÿ024 77512%917';01ò‘ƒ²‹…îÀt‹ö‡Ž†½¾§¥§¦º¹²Š›€ƒþ]䆋³°ƒƒŠ›À 77 Ðø”‰„Ÿ›Œ54=370;8 zB`ué蚟•òë=4 1%<0?89< >75 4424aon[ŒŽ•ƒ†‡Æm—˜žN¼¼Œ‡±º¼±²½¾Žƒ¶¾¹¿§º·´¼º¤´…Žo‹¶†·º¡»µº¢¼´¶²4f O[¶V=•Ÿ 45 Íú5jƒ51=%%$%!-&%!#$3;$2 3$%401 1<1qíVd“üá]AmꚎ‚‹¼±µ°³¶´€‚ŠŒåûœ´‡±±Ž’µ¸½··¸³µ°»º´¶¸¹¿–íÚc’à 1b€ëŸˆ°·…ˆ·‘h€ó a4860><73 s€é˜’ûjD‡–KokpŽãm‡x Ûf4–—ˆ·ùŒ·•uí54? Nô…‘E–µƒ…S“Šá`“†ûó–w6Þ ?3>1n€Ïá–‚è ke 0j 09 274ŠŽHa·Æi‹·‚z•·ŒhÅ·¼ë޶âé¶js‹³„ÔŠ¾±ˆ‹²±‹š‡Š‡ÁöŸ…䟕÷µˆ÷мŸ´¸ãƒ¶¶ž—µˆú x„~i7Úèñך€ËàëÚ‡^~f[h 305 0 7_î ç‘4k–M 0Cè?=74q–”æÓ eÃg5lr6œyö~¶¼„Ò±¿´²³ŠµŽƒ”±½‡ÿƒ´€š’뇵µ›wà™„‚€…çê—“á 6 gf akç@áËžàþœ“Üyqãrãf?6 ði5cRýR7i5 Õ4W“ì쉈”‚³þ޼¼œsµ·„±¿‰‡Œ‹€¶·íâŒŠŽ‚³²Ž›ä‚±›´ “–hs˜€b ò…ð•eÐ07 1  9971ï5<5Bg óï@lGžŒ™nIîÍõ‡€Vš€†ŸµDNŸheƒ„a|ញÁE•òú—ŒŸ÷daƒ¶··°±‚뚊³ˆŠ¼ˆŸíêµ·°·µ„jbìàùêç 71o $'&86?2:%9&85 4=7:=0 50;;$&0ꎉ³ˆáÆß‹²´‰†‹‹´¼¿¹¸¸º³™‘‚½²¶±‡Š¿»¾²¶¶³µeW‡±¶µŒþ³´ƒ–êT 2Ÿ´µƒÎ’€žšr”L404×p64õö 0 3??00= Þ7 si40v 22 õ„bǃŠûMƒ‘ïž·¼ˆž†ƒ·µšäoꇇ…‘´°°Š’à–µƒÒvw…è›·‡ŠŒ‚‹ãÖ‘adÜzuŽŸ^ä{™Ø ÷77 cob 7 66=  5Õ_ ëób ZFd –ˆtdႃš…à–™‰ƒ‡™€·¿·ƒ€€´¶Žïㆌ…˜Ž¼³ˆà„‹™`ë’æî—\yÑk–‘S 35 1lÄ  4 1?föÌ htþäkãë]þƒ„øw_›³²³µµ±Š„ŒµžðÒȽ´µ°¶‰š™‡„žÃ^±¶ŽŒŽ‡†‡Ddþëk Ÿšõwú–74m<<4wwc5606 ix fv 5œæxåÑ~jöËcÝŒŒŸë‡µˆƒšœž›†‘øÔœ……Œƒ„‡…†‡Asùƒ‚ÿçžûè„‚‡“od‘˜ìòQVâìøÇöÐjsblnk{aZo ikgr|dÛýBfYàêêX„ê“€Ÿ€‡œ„‹Ÿ…„ƒ›è“™„…€‡š‚›’€„–儇áéž…•““dpêâiféWnhrBÙfkk 445 55  bifjma÷f—ú`IŸ‘•„“‡†ˆŽŽŒ‹Œ··‡›‰µ‚†‡„Œˆ„…„„›ƒŒ„”ž„‡ƒ’”Ÿ…–ÉÊþúßeJ‘LÅä}áf 65 4  mh j`desú@`ú„⃞ŸŽ´€¶¶€€··´Œ€ƒ‚ŽŒˆ‚‘…µŽ˜’ƒŽœ†€žï†˜›…œ•šœèåéíh×âõnòæj      wh77i—‡‡é7b·»Šƒ„dñ˜‰†›‚ìšáf~å`€ièœë“ÔöJ’„Tþêz•ˆ“e†ŒŸœšŸ–Œž˜ƒµœœšíãx6 2 7é 0  “ì¶µŒ¾´¶¾¾¥²±¼´¾†š³¸¿¸¿Œr‡n†³³¼·²¶Ÿ™fh·Xzµ”ê€6483<$49$6>68:0 $4ì7 6679 }Gfž{˜µÔᎋˆŠ³Š˜„œŽ„€†‹‚·™åÄã·ƒ€ƒ‹³†ÍéäVûE…ƒç鄇Ž3s 0= f 7567Ý5Wd 2e6NqZ†‚„sÕ†…µ³Œ†²‚µŒ‚¶_ˆ‚r³éœx™vƒƒŸ°‚µ±Œ³‘‹·}g‡Ôâ’‡ØgŸg]O<m?6:44 3ñj nê÷j65 % ï‘´¶ê´ê²Š‡p–·h–†µƒ¶°^ˆˆy„Š}‘‘…˜îò†Ø™±šŽƒ°„â‡o6IâdŽðœ0 y=>51 580ↇ1 2= œ•™¼¿¼²“µŸµŠb…²·o°¼µ±†‚O‹jsœb}„qµ¶„ðë‘?µl´7€a<< $70 F=ŒNG4ë50` 4d 5´› µ„³·Fšµœš‰„‡ˆž±œ²¼ìƒˆi”žh‡žÔ…d²Ÿ‘¿‡æækomVN™q½åj´ƒf 61> 7 77Ú|g2zÖ„o ÈÆ|倇†ž‹Œ°»œ·»‡µ·Æ\—b€•—ꈊŸ„âöïï‡ežë˜œŸß~– å ä5ì„3}?×9?6>245‡‰5Á <脆¶™³½´´šˆŽ“Œy“‰‹ˆœŠ€“ž“ê]Ë›xnï‡ïŠ—d‡äØŸfØH–ïEðèg10718<6==~gf   ú‚d”…ƒµ„ž´·ž‚ƒƒ°µ¶‹µ‚›è`†˜ZùkBë’µž“‡‡›˜‘e‘uc€èm‡èÛ”†…Àæ4 = 3=4 <645<k}e~ÎfT{ˆÈç´º°‹°°ˆƒ“ä„›õ••Œ›±•ìêØï“ÏZÈŸ‘猉Ÿ‰ëíügSêù`bq5c‘70449=66=1x0Ü • á¶e±žˆŠŒ‰´ë’´›µ‡”°\‚»–—Œäq‡hV‹qåok²h}¶Zžµ„`™Ù´`Èæ°lm°gÜC^ n4oú ‹kœî ‘ ëad5¶ÄŸ‰„15– 6ä 6ä“OÃ·Ø¶±œ¾²›¶ŠŸõññä˜f{´d±±†¾¥±‰ˆ„ü“—O l7273%%$!'& &$;=3>`5 3<:<654?6Chuk‡éüÒž€Œ‹°°±´¾¸¶¶´±²µµ€›ˆ‚†±´·´·Ž†´ê…`‘ŒœŒœm€ìL’á[æ…™Ÿrè‹„´´ë²´ë¶‹„µ‰~’JS™iç9Z3 239% 58z 0„5>4142c77ƒ4žwÉ„æhô‚“äà•„ŒŠ‡†Š€›Ž°ƒ—Ž€‰‡ƒ’…œ˜‹ú‡‘Þ’”lãøêV™”_ˉëk„·Ž‡•‚µ›·ŠqáˆöŸoíˉ5‘54 6=9 46Ü25 7 52 5  máM–wl˜cìë›j€´¶´aŠ“…Œµå€·…²—ç±a²ãgøƒ„Žâí›ù•ì Ñ7gŒíñ†—°½ø·¶‡´ƒÕÞŠä„– vƒ‘´ c44 3[2=e67=4  3< <q5áŸýà•—°ûµ‡˜°ž†µd¸žÂ·ƒ¶„é‘¶‚¶ã°Îf³€ëð‘†ææ Sj“fh€œëŒ˜Ž´š‰³‚„Œ€ÿ·ù•šoš] —z0ní3‘ ?>344%12 %107a@Ž‘™Ž‚ž‹ï·µºžèŒäV´ˆà˜ŽBœ´ëê±³—í¶ïo…ƒ–˜{ó˜…Œ´˜Ž±€™ƒ•“œú–ìÌ’Ÿœ a 6 = ?372 3= 3   Io˜ô燰›Ð´‡ï…†™‘⋊”µ´ϰ›c¶€r…€î†°“~½ƒ™´ h³q€Ñ”fƒ°R·bмñ¶è”´„Økµ…Ž‘5ÿr5jàf63e 0]186936>= ?1c0515  ïnà]5æ’æÖñJ—Œ°îï‹å–´µ†€ìéæ‹ŒŸµ…Yƒƒï›µ˜›…âKã´µZ‡L\‹Œ“„”î‹…µ¶dü‹šú„ê᜵뗵äbœ—åëjx>m 060?72:<%=7 0  p æ†mí–bàŸ\‹æzÄ‚‚‚¼êCˆ€êŠ^ŒbþŒ–·ŽrŒ¶Íã‡ù޵õŸ‚…Ž´æ“´”‰ž‡Š„ˆž†€hЉ’ÑŒ‰— —Ÿ÷š’G7cë47#0Þ…,!<æ¾Öì "µ¤#†¬$8%³‘ æ§¾0· 6˜½±!¦&;1%Ò52ó‡ò€¤¿²³¿¿»½xë7š 2160”„…|‰˜M¿¦±¼¥»±¦¢·¥ ¿»µ°k=;'!-" && #!!!#&;<0•…w€Ãžñæ‚‚†‰Ž¶Šº¦µ¼µ€‰™â“Sae f6   µƒŒ½³³Šµ¼ˆŽ½¿»¤»¡§´¿½·‰ƒ·‹¶ˆŒ·ƒŽ–—…êÂïÔb 8>67<7ò›Œ±¿¼‹¥§¶§§±¿³±³½³‰·´“·õŸ…Ÿd…µ˜³†‚´·Â‹gÔŸ7c 62'?4:;5<8 70~‡TÀе™·±Œ¿µ€»…·ë}5>4:$?& =&'?8';415êqˆˆƒ·ˆ·µ·¹°‚¾¶™²¶‚‰“ƒ‡„êp€šŸ€í€ã€±‡°Š‹š¾ž‰‹ƒ„žŽ™è‡gbEa3474 4nd n”ž‘è–Ô‰–‰„øBë›?16 Ž›ùދд°‰·Ž”´“•³ð@“Lž’åmœhŽqƒz•Š´³‹¶™¤±™»´¿µ‘°€·ŠøŠæƒì êI6g ÿœxš~„éd–ùv6_:h6;6?8226$?6$143?ö”…d‚¶‡¼¿€½¹µ±¸·ˆµûíkxab 5 kuømùˆ›ƒ²…±±¸¹²º°´²»··ƒ·ßÞ€Od aöýà_陕qMiágÈs5=63$ >2 45?6—ke†êõu±‡lµáŸ‚ŸŠ¶µ†ŽŠG¿‡´ÌfƒíÕ‡–š…Œ€™ƒ„ŠŽi´ã¶Šµ‚ùµ²hŽ…è’“žÉÊÿg4g”2=0ä1 wI1jÑâasåê“zh i2i65 1 74úꋲ†ˆ±…–Œ¶±€¾±°Œ‹³´€›ïÇ– ý 6dÌoIqöëš·ƒ‡›â±µµ¶µ‚†·¼½Œƒƒ–ö`o< 0 :87:<29$964276=o˜ƒµìƒ·Š¹¾„²»¾¦¡¦¤³¶¸·‰˜á½…–ƒƒ„Á?2ً˜°‹´à豎½·‰±Šê´‡·±24=>4l  $:='2 $9$ '%716  744oÚ™„’†²´g·¿•‰¸¸¼²µ€‰²ƒP‰”UŠöüµk†÷iš‰´Òk‡ìˆŠà€µ‚€´·~i77<’5550?0<' 77~}äl×Ob–uSⓊ±ƒ´SŸ´œšœâíl…‡–æôt„ðŠ`½ž··†™¶ì±Q··•³µž r26 4Þ4<958?==4162…——žžØAS‰zHº––³”‡·€ˆ€„ŒòˆŒ‡æ{õNžÁ‡Gš˜Œ€‘†ƒœ‰ÜÕŽ†•‡ƒˆ™ã™ìf5aÈq2> 621804 l••ã àŒîŽ™Œ„¶´€±±·”·²’›ŠnEãô„öω–o±Œm÷‡‹Ïƒƒ‰ž‚ä„„h}ãsÏ ’”Ij76793 9 0 4K75pbü ›µó·†Ž²¶²˜µ¹ÕŒ·BíkËày’É´Â뼄†€‘‡œžé—†„”‡üi¶p öjÞžé3603 07åáj]üWb›†í“ŒŒÚ‹·œ´„ŒƒŽ‚Yd˜‘^y‡í“–„…„´„—Љ‡‚Œ“çžž‘ŸœõÙ dÛgttk6 %64<=h0 4ðvdq‡ˆxŒ¶‰„•·ƒÛµ°‡‹ƒ²”œŠ–tý”ýIìD`‹€„±Œ…„€‡æƒŠž—Òƒ†KŸâ` šI746 Em cZ€”Õ‡…šŸŠµÞ†·ìž¶€íµ‡U‘^‘–ì肚AµµO´†–ƒ˜´µƒˆ„Ç’n z Jcf5 433 < d 1Udexˆ…çš—‘ˆ‡é–•‘‡ê‚·˜é‡Q\˜ímÌcõ`t‰Z‹•–µ´‡Žœ˜´‚‡·Šƒ›ôñ•šÖ` c  56 4 7r1iæè’ƒ’†‹è˜ŒòîŠñƒƒøµÛÖê‹SSvâ—ï‚~kŽŒ‰Ž¶EM†º‹¥_p‘ê™™„“7”¤&Œ™ˆ%ƒÔ=u c5´g V@Žãwml4mÌ Ä<=k5 4 6h’àläî¹±‚·¤¥¹¤¤º±¶½€•‡³ƒ—ú¼‰ç·³¹”‚–gòk485!$<=&'%$#"!!!'e~€´K œ•{ƒ´a㋾·ì¼¾•ˆœç´¿ž€³š¶²µž€EãŸÄ G 0 4%< :$'30'263>9=?%0m 1R5û‡›¶¿·½£¿´³¥¾„´º¿Œ²¹°‡¦¾‚Œ°³žŒ¸¤²¹¥»±ƒº¼„Œ´Ì•…žãnÈÂt–éyhq   fGlQ  4070031=7 2;$51'; 49õû3<4:92<}9˜’‡â ‰‰ci¶°½²éoе³’z´±pž¸¥·„¼ºˆ‚¹¥±ƒ¹¥º§½Œ³§¶Œ³¥¿¹¹”°º´“„±™XŸŠˆ–‹ûÿˆ÷ ö4550<69:>?%:?6=71>?:33><%;?;8=14 ia L aNgÓhÛƒ™†ŽŽ±µ†Œ‰ƒŽ‰‰Ž³‹ˆŒ‹¶‚·Š‚†ƒ‹‡‡„µ‰Žµ´´²½µ‰·²‡ÉÛŒ”˜”DÑ‘ÒÉ62\`5tKfåj14ckO× 4b–™‘´Žì[r›š„Šv `÷`œ†m•ƒãdá„¶†aô÷ˆƒ„…dc h’d ÏŒoa–oÒŽ€ýoòp 63 1?1512 ml ln—õ ”Љ…‚A‰´´µ·–fÝ›µ†Œ€”~g鈶µóo‡‚´¹¼µ„œœŸˆ½¸³„Qþ“”޳´…àùa™µ‚Tò’ƒ´·Ž…ma‡‹´Ž‡éVEa\—’é70 tVÿBcEÛz 4cô÷wñFbi‡ˆ‡d yŸ…á 417ã•5?>6fúg65Ę–ãuoFÓtÑ `‘bꇂƒˆ½°µ„•„´¶Ž´±·Œûlk懄Zcñ„˜LŸƒ…fhç—ãà\AÊejGô˜„gg‘ì\Å’“DXÅp×gb24Wqojqú†™oX›‡ž tÂd 64cbBã—„ŸCK‰¶Ÿ—…Œ‘슽·jïäó‡µänÖŒŠŒ´¶‰–`{ž‰‹µ•å÷rƒ´Ž•–ïêG 왓~7 jl305415he{úÊvTø›jon·ùƒ »ÿ<¥ ²µ0º‚5ŠäŸ1’„‡œcçƒ7ü•·7ï9ü~ùˆ¥´½›¶¾¿»¤§ ­£¥¸¼¾°‹Š½¥½Šb< 8'&93%&-""-!!>2%&-"- #!;=;>99892Ç—†Ž´´ƒ¤¢¬­¢­­¯¢£  ¢­­¦¡¡¦³Œ‹±º½¶™……”‘ˆ¹¥ŒöU18$5C ;;86?92 <'"%:$#/% ä1=77<:609• iŽ»³ˆè˜‹·†íƒ±¸±‡°½Š……¿¥¦¿Ž‚¶»°µˆ¼¥º½µ¸»»±ˆ±½¥¼ˆèžŸ`Ï’€z5=kCi46  6>21 0?6Ùci550=;3273<=3 10=4 >:':%826nLma}ø€Ÿçíáë‚“…™‰´µ±ƒ´Ž±±½¥»§»»¿º¦§¦¡££­­¦¥¥§¤¥¸¹¸»½±±ŠŒ›Œš›zèžOÂÅ456 16750 4;%::?%&#'%8;';90%&'&;'& $2768256254Ðb”ÉR˜”޼³Š¿¾¾±±¿¤¦¹¼¿§¥¼°¶¥¤»ˆŽ±¸»‰…ž°³±–ŒŠ³Žƒ‰¼¾Žžì‹‹‡ 牗jY›]n 24  295=7 <900çëpæ—æi5⃜žæl [’„xú‚„ã¶·ˆñâ±²°ŸÓqŒ°Œædš“’å„„„÷4”ˆêlò›d4{ 7õ—02âU1d =7 50ôi<1 _ ûjj “še—µ†r€Ží††㊈E–°½°ç•µ¿±·ˆ²³±‚·²¹Žµ¹¼‚Å޶†éï’ƒäÌn톛“᷷땉…œaæ’’rç{ol–<7be 502 747=2M647gy{01`g kì““ƒŒŸâÓŸ±°‹ƒåšàZ”‡ˆ›ƒ˜ýst‡Ž°‹ƒ‚´œô‡´²±µŽ‹‘•”›··‹ÖðÙéF–Øx 8?6iÅ1 4 zû`70Ü€o6S 4×îx}nõTˆŽžcç‚•ë±´‰“–Ÿêyì´·…ož…à•б™Ã@‰u‡°¾ŒéŽwk´½²ˆ•™´í”¶·œyŸ ƒžf áù0 ˆ‚[ }õ67Ÿš 5e4<2ü”434h524„!""¡¬ /#𬬣¾……›¼¡­½”ÉtŒ•€0:‰$iµ•7 Û›?5=f ŽˆŽ„î¤º˜²½»ŠÉ½¾”·™Š¾°{=—‰€<& &-'223;<31 7?ôŽŸ—~ƒ³ù4tç…Ÿ±¤§¤¿¦¡¡¹³µ¹¡¹±…„†–ø‘™Lä„k5<%><>9 us^šŠ± ò“H”€‰“L08916  dœ‘ 3’€ç¶³²ˆµ¼º§¡ ¤½³½±µ°·ˆ€îeiëatj 0>8923>?3== hr ßKjNœ‡èCh 416 øõÂEŸ”v n·´´¶·¼¤£¢¡¸»¡ ¤°¶½¼±µˆ¶ˆóW–…ƒTòë21 0<1oä Pgoï•Ã`ëž‘HEŒ ?6 çæß51;:96?&!%478<•…ÄL‹·´·²»º¾Ž“‚¹¥ˆÓé¶¼ŠÞl’Œƒñg…–414 00ïV ž[˜‡•`|¶·“ù‡´nÍ€Ÿë†°¹±úã™63469;60<5wÌö…„@n…µñN”€„…†¶±Žƒ²¥¿‰¿²šh U i 45z31íjÒãxb‘·½´·¥¤¸±±²²²µžîŒ‚ìvÈÿäá•’Í  4160=<31=?=4Hio瞌’ˆ…š‘€ñÓ‡µ·Øž”N  7276=113=4 614 Ö b´µš–ž…Ÿ…†Š¶‹—•›—‚›n÷›’ub 7€±ŒBj삇…´°¿¾‰èŒ²¿ŽùT‡½²‡YcîÍ˜à—41a‘o3?7  aì 1 [U12“á32 5™Šü¶·ŸÇà´¤¤´ée…Ž„™ˆ¹¥¶—÷Šà¿°…744e?87t07w‰uõ‘éÈš´°rrš·²ŽQë²§¥Žnãæô>93;&?P9:9=<90427—œü缺º¿Š´½¥¹¾¤¦¤³Œ‹·´éoƒ°€  D6??5<87f434wŸŠŠáz‘‡ƒƒ•‽½‹ä™Œ†•ŸŽ—@7 væH ï…ƒ’{á›ê훀‡•lã;" 0€¿½~'##𣭡‰|g€³¾±¼€²—kw½”0%hjІ'5ä1 37%`…Öƒ·°Š·´ð†Ÿ¦ŒŒ·¼¾º¥¶è³½¤¥½“ãa 5 3$?<02?rü44>'& & &'&&:a _½°³¼²¸¹º¥¢¬ §½°±²±Œy€”›šêæ‡\i ™fæÜá“··ˆ´¶¼¼²—•‹…` 5431<=7 7?$2}C44ss}aå”–Œ°¥¦¾‰—†´Š˜s lq `›á݃–ÒlꌃœyTÿóÓæžˆ–׆¶´‰ˆ¼¹µ„îfghçl7:&&$<8!!'8<336M‚²½ˆi~³ŠŒŽ·±±€ŒŒˆŠ°²€oaééÅ|b÷ðb4075 6:%&%Iùm狊ƒŽ±º¡£¢¡¥°‡·¾»¹²´šš„„j heâ[ 4 Ï46 02><5d„¶³°¶ˆ·¾½ˆæVœêÒ0?$:3 09< 1<27 vom–´ŽÜ~QôršŠ›“wcû˜ƒ±²µ“šŠ¶˜Í…ž7413‘ç@cþ‰Š‚·¥¦§¸¾¿±¶¶¶¿¸²Žån⃜pù€™àw’ê 7<93Oabî앉³½°´Ž°¹±„æš‹¼¿‹ãuDi s 8:342%&:4 57“„Àã ž´“ê†‰ŽŠ³¥¡»·‰°½´qa°™l 145?970<502 戆y|ònœµŽb–…Zi…¾¥¿µ‡‹±´éh’µœb 52??W<$?3?:$8 Nkÿ„cg™±¸»´Š“ã…·³´˜œ€¶·…”‰¸¦¥±Ž„ŽŽÑ‡¶½´žîBxh ”‘3’šdGîåiB·°äcä†KⱋµŒƒ†ìq潋y  6323%&&%7 2;;;14><5~QŸ™ÿ–Êo•´¿µŸšƒŠ±´‹²¾¿¿½°Ž—j“´¶ŠÚ gb576“œKäèx—‚ˆˆˆ¶´Œétc˜´²¾³‰‚‰´µ‰€Ž„Ž‹}0;?76$!':$&%2==<7 22 qƒŒ““š€‡´´¶´µ‰°²†jÖ¶¶µŸÊä–ÿLbbL„à74é—A j 䌆é @Љ˜þ”‘çýáµ……µ²½‚†·¾¼¿´Œ³·„íûðÍn 08%?5729803>3 6 dgd…ëáæéq‘ˆÅ´žŽ€Š‰º0¿”]äÕ¥0ŽÍ”°‘Nšµuö mw 411Q<5 2%>6;:3 57 15í4=6Ði6>'$;437  416 3=2o56˜švôƒ‚„óŸ…ëN츾·ë–‹³»¼¿º¦¦¸³¾¡¡¤²¹¦­¢ ¤½¾¤£ ¦ ¡¤³´ŽšG ˜Œá =1g•Ìj 7?= ÉA:&9 4?860$$;%' &%4?' $801=44?::<7 0? ÷ƒ™b5 I—ïeZã…“gd“Š‚ŸãŒ¥ §‹ë–·»¸²·¿¹²·°²¾¹ˆ·»¡£§³™‚²½´„š……˜”b•˜XÍ‹±½ fúáia’‚a5s˜‡”3= 4  42=602”‚’=6 vVXþbgžÇƆµ™j “œáî•àv뛑†ŸŸ™ˆ½±µ•[ä‘“žƒ€µ‡œƒ–—–•Õ 605  qŸ—x67 ýó 45 12=6  [ h—äžž˜„úJ“ˆµµŽƒ´ŠŸí™‚Œ‚‹´´€ž…‡‹±°²¼±ˆ·±´¶‰‰°±±³·‚†Œµ³¶˜àä–rgkõåïdîêgjäöHÒGŸøi11 55 55 1704 di^—•ðlchmøEüÒ™µæè“„ŠŠˆˆš‘€µ°Š“š€·¿°mŸ‡€…ëñ`CjrÏliðŒµ„Xàƒ¶àØ”ƒÃ`Fõn 0? 745  ü ÄêåîÙUbkã„Ærm~†µtu퓃‡à•S曘†é—˜´»·…áw˜‚‰€…—ìê…€œFÊœŠ·†íÝã–€âdiDŸ†€„„íìh•Š…C|gjjm=4ýBS o÷–„ô4ôƒN5øÊæ$#&?·¥¦´9#;À§£¦¦½Š‡¶¸¤¾¶ï⾆…””±:8üÀ„±m -ë´¼‚œ=5TÌudm–!: 0ùè´{ ¶¹‡5‹ƒž„‹Š‘áî‘»¦ß1Ÿ³Œšm@Bîvm0<5$8%8H6 êó³™_ tŒ´ò²¿ŸœÖæ™Ô–ƒáÐ3 ³´³µ´µ¾²µ²°¥§±½³·´‘ï“È 6˜5=>enê >00 >$0 7 $!=:<:>”üjd•µ°µ…š‡ˆ›ð†º»¼_¼¡¼‘ï°¹¶˜bå—xσ<13 56; ]2…³³Žƒµ³¹¾°·¹§¦»¿¾¼¿²´·¶°ŠEÐíê`á57?%%21:&&$12'#$>7 00>21 5–æY~Âgd……›œƒ°””‚µ±´¾·µüì·±¶ëÕÉú‡†çk â1325 •µ°‡Â±¶°»»½±¶³¼¥£¥·¶¸»±Œ†€·±‚‡´’k–’…àZí78>571602:%91 7?5ÃË4õK–ýN÷bð„‹›yÄ€±¸¼´¶‹Œ´½±†Ÿ~~žàÊ\36444:& '>9>=;>152Ï184úŸ÷ päŸážÍ•‰¾·Hw¼¡º†ì´¾¼™•š’`rœŽ˜ >9 ‡ð607ï‚ H‘Ïll…‚`7ešl›±µ‡€…¾º°¾»¡ º³€½££¸ŽŒ¼º¸œí‡„n‘´f;:4”…~ 1 42=17 020' &%72?2 0?KðähˆŽOU…¶·„ƒ´†x…´€Ÿ”´±šm”´²ÒCzì€Ð64`ñk 26•´Š‘p†²´é[†³³Œ…‹½½júƒ¼³û“°ˆ…Ìž½¥³ã„¿¤±ì”´Š‚wzÔ6>=1:87 9$&&3 9:?2?:8<>70241%!>P–š€géµ½±°²½²ˆƒµ±°±±°·±ƒìáƒˆŠˆƒ‘†Õùøœæ›ƒñlbáO’rm󀀉µ´‚†‰´·°½¶´Œ’ÿ€‰€€œƒ´“ÁÕrtôräût5 5235 8# &%%$<67<9%'3464fÍÝo 4 s—„†mȋ¿·˜B´²·Œ¹§¸ˆ|V°¿ˆý¶¿½–kåì–€·ïl‘g u¶µ˜7âüccžµ·= æ‚S‡°½Èk‰‹î4uÚ4è´±âlûžŠ“7˜–3<ƒˆ€714ä·€=1o‘žå<<756 ŵƒb===3‘µ¹­¾ „Ó·§¡Žnúžô´ƒ‡º‚t¹˜ Á&å·˜?Œ$0쎼»¾²¾b_M12O? :%%=!?]ëg¸¡¥´³µ§ ¤‚± ¹ƒº¥Œ—“»²áa6;42$?3&?<<à··¿º¤‰mæç™Ûb°´ÍúuÁÁ’‡ì58'?050 ›†l‡Ñ·³”>16‘èuP‚…šWûŸ‰5=92 76Ô}h1=$6 6œˆ·™ièš„„µ±¾°ˆ‰³³Ž¹¥¤¹ˆŽµ´§¤¥¤¤»±”}öàAh{Jr68%83<=05=7:'8ý·ƒœ›‰µµ‹Ž°½‚›Hü…’ƒ€›Lñ…•‡’†™à4==<1163=8:'& =9<5 7 e„‡€·±Žµ·¾½½ºº¸½Ž’芴¼¹·Ž–ûæ  2;0mË427413÷œŒšæ³¾¾³¶‰±³ˆˆ†ƒ´°·±°Š‚µ¹¿Œ–bæük wh0:9’û4`\ai•jÔæHšŠ›zŸŽ‹Š·³±²³½´‚ƒw`“‡í 7 50991 7510='%:2;27n 3;:< qQ 6lŒ‡Ž·±°½³²º²ƒé“·±µ„glaöÐbvƒêÌÿW‰±²·€š÷…´¶Šž‘€‰ŠŠµ…ö_jo´±€\‘èîêꃷ²·ˆ”ŒŽ¼¤¤½ƒ…‰´˜Œ•y 43638:':8?>'!!998=3<90ý 1{ëzrÿjmåퟄ銽³¥»´³»¤¡§§¥¾°³½»±˜tà”àw<065 76311 y”Ÿ‡ìq퀎±¼±¶µ‰·‹‚´‡¿½±·œßeà˜ˆ‡…ìæÅ‘fb ùþ 4:'&$'0 5$$:9%9'9284:98>>1RžÑiàŸ…µº ¦²¶Š´°¿µ¾¥¾¹¶‚†€Ý胷½µƒldr䜵¹ˆ…æÞì“„äJ„Š´…•} jûò~5::9=37雂…Õíš|އ±´‘ fµ½¿„ 6B[þ7 ?2h‘q621a˜‰µ€–Ìügl`ì”àñ5yëš„kïúéš—ñé˜ãœŠ³²±´¶´~—››Š‹„ÒWjÓln”616l  hkøÔ‘œþÌinl…iý‡ë…‡œ’›‹‚†‰·°¶†‹´±½¶½°ˆ·Ž‹¶ìŸ„àUnY~g3 Ë 0362 $!! 8Œ²·K0'%1h½£¦¥±‡šœ‡±»¿±èmšŠ½þ4E”œ¿ ;3 넱J‡#„ŠÜ× ‰ï347Ê %67#;o0:7gž‰²±À ƒ¦²´°»¤³¼¡¼¸¦ ‘¾£¸·‹¥»€|5ù¶€ %60:1“‰57G 5<;218634<†40$#!99!&889õaøe‰Zs^䂊¸¶Ž²¥»¼¥°°´ŽhŽˆ¥±±‚¶´Œ‚øš—bãþ45隇´€†žŽ³¶ˆ‚™…Ž€ê¹¿¿¤¹¾¼µµ±±¼†ùnW•44143<:36=%$9&$98<4foݶ°±Ž…ž•aâ†ŠŽ…‹²¾¼²·‡Œ‡øƒƒŒž“Ya 4427434 3$65 65_j—žóxjÔš–éë··µ¼¼µ…›ë‚„„\×Líb  17 1376:<32<;??76呛ƒˆŒ€‰Š³º¤¥§¤¾¥§¤¹¤¤¸¦¥¤³²¥½°¹¿±¶ƒŠŸ”—ýž| 0:=02565n5×’釒‹‰‹†Œ¶€íãe…ï  788'&"%<8%#!$'' %<88$$> 11 51Áçr””ÿ„Џ¾‚‰³»¸º¤º¸§¿º§¦§³¼º²½°Ž¼±¾°…èý cÐÊ 4 yëúMü‡“àbeö€Ž²Š‰Ž‰†°°‚ƒæ—“ŽŠ´‚‡™ŒŒ”W 7a01657<03?%:<<3995 =<3=>;3 435ç•ÎŽ…žœîˆ±¿±»»²³³¡¡¥¦¡ »¤¥³º¹°‹‰³‹à“Ÿã~› 154ËC7Na5cm 5ì ”‰ÅmŸ”hüì†Õv“†“ž„˜‚±‚ø`öCÔtì c156776 ==457 k45Oh1˜â‹‹„´¾@ŽŠƒ›¶´·–…¶²Ž´·´Š·€‹½±°€¶·ƒ„ƒkúU–   12=<<28866=77 05ici›‘„ᆶ…µ³‚e´Œ…µˆ±ƒ„l‚›´€µ‘ƒ‚센‹a柃uœ—ãza|Åå•ä =<25A  eVrl‘—–Píqבä–`€±WQׂšÌ74o ]–4 kÕf@õfibUm”‚ þušæi˜€˜Êµ’´¼¿¶ˆ·´¼µˆµ±¼¥¿¥¾¼¾¶º¾°¿·¶Ž˜Qâàép  044 551 1?:1<-,/%´±“$.-$»º¸Ž16¿‰‘¥¸é†½6œ³¸±q2ç:€— 5\†`45 䎂•›íµ»¦æë„ñ€—M»¾1 îÒž¸²¶›…µ‹´¶h`Àd€|”´´ c18 %%$?:"!-&;1 924`{êK·µ·³²¶¾“ƒŸ„莆Šp%%=1?8$%:'':=1s—‚ކˆ¼»¦­£­¯¢¯£  ¦ ££  ¦¥ŠŒŸžáT^j4 Ÿ—íLg TæHq옃’|eÅçfAL…Ÿq@65 5701 3 554 55oúnkêƒé†—ÂYdyèžã뀂‘l퉱±¶‚‹¿º¿·¶±³½¸·Ž‹‰†¶¶†à†ÊX HH31 ~Ic lgeïâv{xQâuâàg732 1<::6=$ '$82?1Ä]oø ä³¾¥¦¸¸±¸½½§¡¦¾¹¤¸ˆ‚‚°·˜‚ˆ€æ4b6ÝÃ5621ýá5319<1€´‹ˆˆç¼³‹··´› gqãû6::4 12>%$%991 12”ŠŽš‰·Œþò›‰‚†µ´°µ†›q61ä´ƒîKj ÛžµŒŠ¼¥·…u┚¥§½š T…‰´‡ã {”‡´¥¾½°„””„”„³¥¾áv2;$8=3 0 &,"-#&'34  0=2 j놵²¿´µŽ…„”’¶¼³³´±Š“å•¶±š‚™}5І…ŸŽˆƒ„h—Q€·äæn‘Ÿåfdˆ‡–ÈobÌë‚ á qš‹ë—™wnqéžn 0?3>1Êo 743?87P™¶†8'!!6µ¦¦§‡ 6$9s¥¡¦£¾¾§‡é‡³¼°·³¸¤»ii5 ½8%c 04%7#!œ±¥¶‹âeAaêŸîe3#:4M‚ímÁ™r œ¼ˆ„·¾³†ƒ‹༸–š‹72 5ç’mk??8:<1?<5': žá’€ë´‚¼¿°¾»¾¹¤¥¿½’…Š´‚‹²½ƒïj [égèß’D{Qt´„µ‡Ÿ›‹·³Ž²Œâl6|6'%$$1123<&$65=1 oÜlà†‹±±¶‹±€€‰€´¶‹±¶°¼´‚šŸŸ‰ˆ„˜šôn4569?69‡Œ·ƒÏŸ‹¶°°´°°²±·‚Œ¼½²±Š¶µ‰Ž´žÈÅêÂj 1?8%%& - #'&!$&$$:8mz䃋³°½¾½³¼¶±´ƒ™ð@ïzwJxâM mG……ž‡…–Ÿ„´‹µ·°²°´ˆŠ½¸¶¿¸¾¹¼¦¤²¾¹¿½±·ŽžOk`h39364 0<:363  14 lë…WퟴŸ}…Œ‰´·±´Ž›††m掊…Ñ222=5 60 6?7Õï‚ðm 5è“öa 1< aŸ•œ€œ™Bûм»¼¼½°ˆ’‘„‡Žƒ› 27   <52$2?Z`‚ˆ‰eÝ•€Œ³¿Ž˜šþiï”—½€71@”°‡œà‘–넵°º¤ º´Ÿž·¹¹¤¡»µS4 54h ; !&?=11ò07XMn·±˜ •Œ…P50 ˜‡u°¿²“ê“‰Š²¹Šç4 vêd $'%47?6F7$&4€±´·“½·½º¢¡·„ᇽ¤»¹º§¡ºµî˜‹Ž™tˆ²¼·7?hàɉŸ5 nl3' $:%8%04<'&'?1 –ƒæýF曊¶¼³ƒA˜çç‚¶³·è5l]ãÛqnOL·³‚Œ‚›wKᜌ…ˆ´ƒžaDxa…€žæjCF僵ˆŠ‹‡µ´ŸÜ–²¡º¾¶Šµ³ˆ€Ž´±š[ŸŒž5  03 ?=23 76?657   0|ð75 7 76 11 5 rIYÞ˜çe„Ž‹¶Œ³¶ú„°¸°µ´´³µã‚±°°„´¸½„em™·¶ŽÆ‘‹‹˵ç[Š „†á’‡ä46 ‡ŒÊ‡™5†…Bû‡Q õ‹‡á抇m74Y™†rœ2;6|c:%"--"&:& $8=$>?Ž™‡Æƒ·…¶¤¦£»½§ §ºº­¢¬¡¥¿±ŸŒŽ··±½·‚°•øî‰»¥½ˆµŒƒÉ˜ö딄4==0 5=10=;11T51†œ—‚âÖÔ0irlؼ‰æ iÞˆ°¶¸¹¤¦½½»±§¡¤¦  ¤¿š²¥¦§½¾§¼ƒaã”tñgÅ 3?<w—>$ $;! $$&#"- &:&%3>0:$&4  â % xk919> 55ÿ67$7ôZ˜Nš±ž™`¶·¶¼»º¡µ‹±¿º¥§¤§§§¿ºŠ»§§¦º ¦¤²¶º¢¡§¡ ¦¥°¼¥¤¹§»°¾‹ƒ‹˜ƒ·´·›3gì™e6<ím2< $%8869'%!!!# #%=:b6œîÑg57û––‡–€…tú’¶Œ·°‡ä”Û슀šcž d‡N41 ë{ 4a5瀂ï^|f‡²…µšdøMhµ”±¿´·…•–Šƒ¼‚dOo´µ±Œn Ÿ…Ž—Z2 Lè’ÆƒŒj07s牃f ˜í㈟˜†1hµ–‚„ù4†ý…€µ†c 7ꈉäe 44ˆàŽ’Ä3=á—‰˜„J54dqæ·‹ç5•Žƒ‹?`™™Š‡73뚆²Œ 5ßû†z²‹þ;% 17 <<''= aŠæ6_²‹€ü•Š‹´„Ii2ceµ¥š€@aÈíµº¥½¸‚ôœƒ·¾¥¼±Ì4œ€„ 61z‡™ˆî dåµ´ž46Åﶇˆ±ê˜èsŒ‚¼‘·· 2ŽC5 t—”E–þl0c܈~ f dà˜39==b 4>253 Ž‚€í”ž±°åúy˜€šŒš“l cáu“7 934 o 50â—z‡™–г·µ…럂±Œ’žž—ϵ±·œœƒüž¿¶¶·°½³‘µ±ºµƒŽŒ‡„@ꌘèbE h…ŽñDÀ€DiÈ{sn0 5bjcÒŸŒ“Ž™•‚øwû–D1 Ëùbœq [eƒŽê7 86Fß39hJ 2wœ—䎛Mà艽‡•ž‘½‹tµ€é“Är÷h02:<5657x”}†ŠŽøgf°µˆ¿†cš‚‹¶WR‚в†÷g–ž…”ž‰‚’󤥊—‹´€€ŒŽ”‘`˜èd™Œè5 Þ™nì–cçš díŒ06?<0u ” Fm‡´€’rY[f–„œ›xîsC yµ‹‚w1íã샌zìû WîŽå525œzi` aQ€°µäÉëX³Š·†·Žšæl†´ƒà< }02571%&6147=76Ó^î‘zzdx效¹·‹…샓‚´µˆ“‹–p’‰µ’„ᚈ„ˆõ†›èBeˆŒ°Šë›åum²°‚„ü†å ޶µ„ƒw3ô”Žìd52:2JÅ™Á703qµŽê†š‡ÿ bîµ±¶šˆúùÝcƒ€ˆŠk˜ÔŠÃàeè> jËë}ç38% ÷h <23ô’ó–é4 í±¾‚‰ˆœiœŠˆ·š‰“446´çË612:<t4i 0%5Žƒàb—ìkkN³¼Œ–â‘‘¶¿²µ‰‘……æ…Ž‹€ƒŒñ ‡³—íÿ’çt‡Å…V‚Ÿ`aî„¶ƒa xï@Fž†Ž…åíî5 ɵ³î  çÞê7762è„´Ÿzêá¼‡øylæøŠ¼±’4à¡»ÓŸ¹ˆ65b~7eü geí4 ˜â15Unžõ•31ɱ‰7îžžú  þÆï¶Ž°‡ ޱ†Bƒ¾¶Kµ€˜†ºŽähã>:$'<1 Ẽ»¦º¾±‘±Ÿa h’†h9'80 <7°ˆŒ¼²·Œ3><8%"#%f‚Ûiб·›]º¾½·±·o71¼Š Ž·´›u…°›„’‹¶å…¶ˆ3 <'955޵º½™šB²··š†ƒ„ü™èbžD5>8úùlSˆ„gá¶·’‡WÑ09247$>0ljŠŒƒƒ…±³Ueš°`w“‹ftM‹Šˆ‹ƒçš±²´’P–‘ 16™ 40558Š»¹±ˆ’‚éç甈´˜“dh€• 74õ‡´’бŸÿÂÆkj29%:55ãáðîR´³¿¿ƒŒo 7 šŒ·çÀÙz|„‚·½Œ°ãoœˆ´Ÿý57309 âm…Øl‰²²±¶ˆ‚ 〉é83 ˜Ü†›ò7•б±±1>?D0>&9 ëQŠ´½·âg€Ž²Ÿ€“— id삎· ˆ²“‰³’5 –_=% G—š··‚h€ˆµ°´°›8=}µ—Wsõ86 ›“†²³è4Œµ›îÿÐ0:%6 ‘õ98°°°¹¼ˆ ™€–µµ¹C4= ކ‹½Š· tµ‚Œ‹ê%'5`êFeJ82”µ…µ±¼T7mšƒµ’’‚l?5x^ß…†‹Ê035𱌃¾‰15v—‡4? $0 _á…âR5 œˆ°¶Š²µê6·š´·A n‰´Ÿ†´³ƒÐ —Àcú”\5?$1lzΖã5Ÿˆ‰‰°±Œ6 `…‚´š‚p 1Rÿ†„ðf”µ´›v27 b2<: Và‹äFž…ƒŒ´·Ž]Kf~Ÿš‚ˆ°¶Œ`d†‚¶·Ù7~Üëm6Oš„aà›„±š˜aváÜõ“d„ãà jWÁ–‚“èXê’ksd76 67m355hzµŒŒlm{’´³¶„p†„°Œëip…‚„´‡ã7\refu 1 [n•–“M“’žA†Þs`ÇÖ@‚“Ò{žènå·¶›RaÈž™a?0 H4çàƒŠ”Š‹‹å„‹›†[”‚‚ƒˆµ˜oéU·¾›b™EÛlfc=5™’fžëÎå…‰…q5æ˜d’•Y’0Â…H‡šŒ =†µ‡–e–õƒœƒð5’°ÀVá• o…dæûÒa445Œ°ø ò@j{iÎèÙ–ƒ…‰ä³º´Z†ã掗†a7:0]åI41366047阚ð—cЊ¼¤¤´·’mæçç’ëôdi3à‹€à   4 м¸¼‹²°µ‚鉿·¿‹›‘‘µŠ„C l}{ê•5%9>2b29;$;=< n  ¼ŽŠƒ·´³·²¶ŠZÓ•†ˆ‹båæør–´²°ƒ„Ç™„‡¶¹¸µ’ib^Õåâ±»°—ÈŸ‹´»¿Œe zzí„€ >7 ”älâ郆Ÿ 6áž{<=41 5†„Ãk`à„¶½K4 猴42 `[„˜À4>61Ž‚žo3^‚‰‹Š²ˆûYû”é„°µþ7Hò€˜›…5 céãm036 5Ì‚†k 3 7ŒŒð=7冼¼ŸaDš…€³»¿˜ `Ÿ†‡Žµ‚àgX•‰Š¾³µ˜oð“ƒäž‰†šÿcš¸¶àáoú€‡’´Ž¶€Ã‘v4킃ú733Cæ“akfgï’²½ˆ˜åŸá“‘ù 4=07Oåa5 7ì—ê’žçr 4’‘r@Úi<o°—bLyŸƒ…‹“ˆ‹Dûµ³‚s Õ’çja59 ù„4 å”ÚË4 y‰‰‘ð™œáç‡¸ŠèæV†þO„´±µ·ˆ†|Œ³¹@á•ãi@ï…ù䀂ê u‰·‰öú‡Œ–’Ýš›Ry‡±µâ3oš‡ ~÷ý âål°ƒsˆ‹Š„”…ê÷e’æzcã÷36÷{  65Ì4xû6 ùÙaZ^tob뇙q wž—|{îícžcÑšµ‹ò5bËœCb•Zl5`‡>u”ö çÿt·¶e{âÚᛇƒ”ae|diÙ´Œ„nlrçÐ˜Ž‚”dx†‘“ˆ²±’cwF“÷…ŒŽŠ}kâöõ‹‰ž`q“†ä€‡†÷_æž‘bˆ‹…á{ê_ý̇šá WxÉ{±°ˆí~“ššƒžwgz†Žl706kÅ“å5?> 4 ™×k235 ãšÏÕ 5XÖÛBɆëc Ø„‰ž Þu••Œ™ÿ44h„å—23EJñœ– > m™…žü45hð…‚Œ µŠ”iƒQ–µê ¢¾‡–%1©°<¬°! 1ˆ0醱£¶hµo1´¦µ"³¶ $! Ä5˜Ž°¸¿´“´³¦¢¥Œ†›=3  Hb3&'3މžÉÏú‚°²§¿» £¤‚ˆ´Œ¹±°ƒ52>==9%<;=<&,-!$6 ™µˆ´ººµÑ‹¸¥¾º»³€¶²±ƒš·‡K1&#$:39%:$$'''2186 :%6—‰‰ˆ‡‘”šŒƒ½¿¾¥¼Ž–ï‹·°¾³„FhÊŸÒ†µš44ïèñæôí1JàE5”µ¶ˆ†µŠˆ€¶¹»»¿»¸»±˜€Š¿¹¿±´—ý• 72%:9%6íî‘_eET€‡¶²²„mÌÛ÷“‘êHâ•߉ƒ¶¶˜Yb•—ží7>?;>%':8$&$''980 5 bà”›†³½²½±¶¥¼¿¼¼¸²dã–“ `62=7 6$3115<15 1?>90åqd\´·‹¶¿¸½µ´±¸ºŠ¹¥¥±Œ›¶°€úŽ´‚b™cû 5>'94 5—•Žˆ‹¸¿º§²µ´±¥»²Š”î 7?9666!#> y ekuÛ›€½…‹´±¾‰—ijº·eMŸ–fÆOi”ßs“‡Ãl掊½†ñ삊´”‡‚‰‹”uš†äæ 15 gdçm ±±ŠØë„‡‚»¿ˆ¶²³¶Š’‚Ö‰¼‹B7041100= 10<8 Þ›ì1˜‡ˆŽèŒ„ùopz ?%%?  4e‹¹¼‡ï¶½±‹ˆ°˜î爖 3%; 20 i€Šžiò´·Œ‰†±Š•7ÄW‡…ád49=kil1O¶»¸±·†±¹¤¤º¤¸‹›d™„”„’{4&:3 4`E=? ršŒ°¼³¶b‘䳺¹³¾ºµ‚õ†êRm2>%3bK’ 45ô†ˆ½Šœžef•´¿¶´Žâ2 Y•68'= 4É 3:'4adÍ 04ožœ‚°ùd ›Š¶··µ™ë5 ‡ý„µš“‘ 15A„—µ€ŠC6aR†…å›[tក‡Ö605”qáéži07b„²…‘ 톰·³µ‚€î޽²±±…b 톕û@ 5Ó·µŽZ`y˜…¿‹‰‰Ï±¤½ˆ‚ …“ j3='=ošà671u쀎›’èíf¶¶‹†‰ 5 €Œ‚5s6†@ú62 d i ]a‰¶Žšú“}†ƒ”„ƒšƒ†ï³±¾µˆ†Èœ·ì…êwž <0?ç²´°’‚Ššµ¹°°•4f1:~}š17;' %44뎂°–…‹µˆ„n1?864wƒbúŒž c€„¼¾€ˆ“t Üõl„Lš1 ç‰ícÖGže…‚ý–…ˆ¶µ‰¹¶†vÍøv‰‡‡`²´Ê}ct26160?9645Mú€´²°‹‰˜œ²½ž |z 6íæà{Ëà2RbådðnœÒiàx˜µš‘›·¼±”’µ·Š‹³„üyµ€•gá„Ç•‚ë4 d~mùdn 56ñ66·ƒäœ‰³µ…šš 1ŒÚ037`cd딚–He…°¶á5›m•†žäóíyˆº°€f \Uˆ•ƒˆ†ewušŒ½ƒh áã`Eš”“ôEš¶Š <<93 5 â„aá´¾²Ž{315Än íKc57 ’´³Å5iœ‹’Œ·Š5g‡±¶‹šm ™ŒÒ•€·˜ ´¾°‚âfµð‡µµ— =k‡°½„ø5 ø™fdp4%&;™…‘7 0 `†‹àÜ€Œ„22Œ¶€x 4þ„bØ—ƒµø5‡º¹³€uî…šš><Œ½ˆía ~·´›‡·¿°èÝŒ¾¿‚Ãó’ëâ—ôžœ<1k†† 3??9< 3 M’ê5=±³ŸCIÆY䔃ý <4¾°œP`ô„‚€›…·³0 û‹´Ÿ574ta看ƒz—¾¥¹–Œ„‘ŒŽ‡‘‰³„ ’Šé  431   7:'?o 3=46 `—f`Á€³´†åÓH€””“Ÿìâ´¼²†CTÏ|o•—bbsá;9°±š€ ?¿¤‹i½X– ›‡’Џ,ƒÉ·:´…j=6»Žž´ ïã½^‡Õçw 14·‡é180=@A6x6 µ²¼‹ƒø†BÙ°¿°‚а²´ŒŠ½ã4 …´›Ÿq’`o:>7™ñ =%'80 69>0<'##' lt…x~°¸§¤§¡¡¡§¥»¤§¦¦§§¥°µ¶½¾±‚˜êùçžÂáá6'=12039'!$8<1639$!&;1 75003128%:>%&'$%;8>9'","'%$$$$&&&'''> 1<315ié“êå蟑áä…‰¶²²¶ƒãö¶±³³³°´Š´µ‚Œ¶º¤½´Œˆ´³¿½±·¶°±‹µ°¸º¸¿´ƒ€·½¸°±±µ‰Œ€ŸúІµŽ’jgTR  3891 1=8%%3d܃¶·…óã蘛´…’‡‚€\m툶‰—reP‚‚…™™ƒ‡‘{d–·°‹’çêëû—‡…ìãí@ 7\ç@55456??65<;8??=3% ""--"#!%'&%?8'&%354<%:;%$<ÍZ‘Œ´ŒŒƒ†Ž³¼¹¹³¸»¼¶¶°¤¡¥¿³¼¾´‹°¹º¿±²¾²Š„‰±±¶‹„„‡š…ƒµ´ˆ†€€šö놉ss}U   7614  4456 77 5 vÚgm|ìž“õuü—ž…›ˆ½°€”†¶°¶´´¿º¿±±¿º¹¹¥ ¦¥¼³¿º¸½³·°¶´‡Ž‚ž˜‹µ€ñRú“„ùjoy b3?25 198?=8'';>$!$2<$#"$=2%&$:;$'%?28:1 0:'> 62 4g_„›zm‚··ŒƒŒŠµ¶°¾º¹¹¤§§º¼¿¤ ¡¤º¥§¥¸¾¥¤¥½²¥¦¸Ÿ´º¥¾Š‚µ´€„ŽŠŠ‚„‰Œèœ‹‰íÇ`g 03záj574  k61ÍœéImݘêzA–‡ã6茑 @ôgâÆ …´…wmkô•íèÙbj72 gãF 0326 6??7sz77=6  3%9kã  4däf[œ›“À]Œ²³·—€·±½³²º¥¹±Šµ³¹§¡§»²Š‰³¤§¿³¾¥¥³€‹¿»¹¼¶Ÿ÷ü±´˜Ÿµ‹šràŠ¶´îjþ™†ž“‡‡ëDš€‘== fy fü49> kráe?>6p  9%>  0%:7t191~ÆŸ–74@ÿoeïê16 kæëîô41CêR—ƒi ᇌŒ‡`Ÿ‰€ƒ„TnŸŽ‚ƒ–yuƒµƒ€Œƒè˜Š‹ƒ‚èû‡€†ˆµˆ˜…‚‚‰ƒ–~섆ƒ·‹…hƒž‘„ jæššŒŠa †ƒŒ†”rË‘’€¶µšÌœ†éÊè”sGÑÊ“„o 5à„î|p”ÿoI‘‡x 0iêÚ Yž’430ìç  Îá1;<nro  Õ€„•l63‹Žêbc5qˆšŸƒ†·â“´‰‡èUâáÂgòÊå‹´€gàœš“Þ›xퟛáÌh_ŽŽŒè|•µ…UŸ‘ŽŒ‡˜ç޹»¶dú¶³°‚‡ƒšˆƒšˆ³· xïá6   23%!#-!8 nFfçeo8$$4j —ƒ±µ´µ´‰¼¾¶…Œ°º»½æ€Œ·±Š‘ía 727àš¼¹·™€µ°µ„ƒ21Ò‡€–·°¹‹ûo465wf×asj`=:140%'>=63ö˜“Í™Œ™3 6 Ém`›ŒŽƒ°²º¹Œå~ƒ¶°ˆ€™âïꇀ„uTâö281”…„‚‹–á–ƒ€EWIu”ˆµˆ†rhXm ’îa—•h50=35462 dAd•ãþw5 ÍøcdÔ˜š—–µ³²³°¶Ž˜÷°¾·›—ž†Ÿîâ””ìb7ÿ‰†Ÿñ‘‚€Ÿì™âær•í冊³›bür lÙ]<894 7>9  i—‰ˆ46Èmäîøg–›†‡¼§¦½„[ë³¾½š‡‡“`tÙtãR20„Ž…åù…Ieâ™èjg‹†…µ‡—ý‘ãkG 3†36å5 09 776gµ‰z24™žÑlB‡z4 nrmø±¶‚綺²±´¾³Œ…‹°µ“¼º·5èŒ÷l÷—œóbv³ŠY õŒ‡Óš•pïkü‹??áb6x005 2=øc6%:4Ö ñj›Š“5=…Š’_‚Ž…¶Š€±§ ¸“в²±„Œít{_Z˜°Šû“Š„c|œéæÜoš²¶Òò˜‘foUåg  óå=>0404674’‡t ÕKeìÖ|i•´²‰—žŠ‹Š´±³°·Š†êš†‰´µ–hÝâaC„‡rgip€ˆoùjd™—ÝÊbJê’‘v i 4430 s v æšÖoz`k釞ÊA‡›ímëŽ·ŠŽŽ‡™Œ°²³´ˆŠ·Ž“p@´•çX}n€gd’„ë ð”þiaC ãèâà™— 5Ç 650@x>?  c –•ȃРx’ëâ‘Ï_„ˆ¶Œ—‚°¸½…ܱ¿´‚Š€íœµ´…zæµ²ƒÌ——Ï‘glàq —†Ÿ47Úñ{jew 5Ö‚™ ?= 5 4 Z„o á”þf_IDhm‡²»²7 ´½ºŸË›G„ì±w† †m»$'ˆ· ¶4êL±³‚’ ͵œ—‡‘”↷‘“ =`††™tùŽíõk‚¿²ˆ–l ‘‡„5=7'4 5:1=3%9893%%<f19;7—Cifõ⊊¼¤¥»´„´¥ ­¢¡£­¢£§¦ ¢­£¢ º±½»¡£¦¾¼°±´‹ˆŒ‰µ´’==7600?$:>1140:$3  14 nÙ‘”èk6ï‹„…†„TÿƒŠŒŒ¶±‰òϵ²²¶±¶Ž•Ö“‰´ˆ·¶´†U{˜ƒš–ãÆ åðf[ %'< 0013$"!$<;:92<$#/!:?3?2<8$!%1  0:<yz6<4oãPWù•c 1Þ–•–ùlÿ´ŽŠ´·‹–’·º¡¦¦  ¤¾¹¦­¢ £¯¯ ¤¥¦­­­¬¬£¦º¸¥§¡¦¤¤»³Œîœ‰·´ƒîá˜âÊáŸr414 08%>?00603?:$&:= 40=9:&&%23??=3%#!%=205 3:%2  c_ œµ´ŸÉÙù•ޱ´‹ˆ·Š’Â눶··´‹‘aS‡ˆŽ„ƒ‚ƒæTÿî鑉±·ddî’€ŽŒ‡’‘áYnt䟄‡ìfÿ”e~ú÷4  `Î39<4  A˜ŒŠŠ‡—瀶¼²°°¶ˆ†¶²µ³º¸‹åœµ°¶´±½µïš‹ŽŸê†‹b‚€†‡™éû…™Of“‡ë7zÕnoSM 6 fi3=7 <$:<40?9271;':0 7749? ÑúÁq ó–æç…ž}탌’’™‡šæzä…‚€„‚…d‘¶²·‚··ƒê‡¶½±´°½¶è}†°²¶Ž‰ê󙃊ƒƒƒ„•l€†‘\g 4|197nípeðc m‡ƒ“혆C„ˆŒƒ“û`D‚‚‘•’“f쇚éáâ5†èo|ëÑ •†“—Ÿ’×—‚ƒ“ê–î^f‘ŽŒ…êmo“ŠŽ˜”äÂç˜ïOùÙ43 kN13 g 604k 7?< g|4733 6<4æéàï äžž˜€áC`ýˆ²³‹âáæ‘·‹…‚û’µ¶Ž„ò㘚ÉÒ•ëLê·³ŠÔᎷ´‚‹µŽ†—ƒ±º¤¹·šÔ’´¿¹·ƒ‰¶´ƒèñì…·³°š5ò…V40 þ‰==1n—ók[ è´ï76a´µ”— Uák ˜Œ¸Û30”¡%· M€'çã´Œƒ9 6j´øçhvãdl>i´€f26%2ó6133zንµ²°¶‡‚„‰½°…™†¹½ŠsmšÄè ;;0<2 -":?&-/ ;5 …·íOž³¦¥¿‰´¸¦¢¯¯£¡¡ ­¯­¡¡¢£¡§»±¹¤¦§¥¾ŽøÆŒŽ… Is70 3<827>$8=3?%&$36331=;:=537c474j``11vàoxÉútú†µ²·‰˜•ž‰³²Ž…†ˆ‹†š”˜ŒˆŠ°·ïŸŒ„érb~bshï”ìümô˜™r 454604 0=27545 46  55754g73 kyø–“óÙÜꈴ·ƒ„‹½¿³±·²¸¸¿¼¸¸¹§¢ ¸¶½¤ £§º§§¥¥§¦º½½º¡§¹´ˆ±¾¤º³Œ‚·°·‰Œ’熋ƒÖ k“• 7==6 9%%<=3>$'!!&$'!##!$% &:<=:&&$%$$902::0 3%'<õ}425iJäëú‘élÇŒ¿¤¹´µ¶³¾¾¼°²¹¥»³€†±»§»²·‰µ°½·Š½¾‹÷b”г±€’•õhwž˜çûï‘“Ä‚µ‡fõòR}Ðx ‡€êÃ`Üš˜ç–´‡ÙjQ„³³ŠímÙ††ƒœ‡„Â…³³’[de´Žóäƒùô„Љ…44æÙÁøÂu 516Ç} 1<;$850<072$!'917448&'<1017 5<8><3] 637recç mš‰‰¶±îà‰²±ˆ¶¸º·ŽŠ½¤º¿³´†€ˆ³»¾°·¿¿ä‘‰±²²°·Žþ·±‚ëz|’€‹´´Žšønjò‚››‹Šó 4œˆ“œšõ5ûëð䙀ï=6âšèb14srôóu1<vœäóõ5 bem5 ñé”–›œ} EéÐÓ„‚†Å 2 â‘×nzFR=1AøI 93m„’{~dK‘’íÙ61Eš” 6f<; xin57 ”…” 4 Ï€ƒæ›™{k‘‡‡‹´Šed´‹Œ…šæÅ›††¶¸³˜ÖqZ…¶¶ˆŽ€™‡šŸž’Œ²¼´ù\„¶·Œ†‡Œ‡æî†ðè·½´œWŽ‹…Ÿ›’”ã}û—臊‚•íŽåfàZigmŸƒ˜44BäSóh i„Ã1=6 éè  1w…Ú637ø”hhÓ]Ë\ 1Šˆœ  w™“SäOkܳ‹45”’N–RÝÀÇ… aížYx{Ÿîʇ†‚èoš˜†–•†æ´´í˜ˆ¸¥´‘튂³½±…Z†ˆŽ„\•н³“aaä…„êïâãÇyωµ“ê‚žš´¼ŒÿË‘žtvÐÆc44ÞAfNw˜™X–?86121 6=5l704 <<7jA â÷Á“è474 0:%?k7mbs–ëT4aõ†’sÅ’‡šñ`—„넘ó ™‡˜ÿÄ…žõZÌ’„““šÇciç˜‹Š‚‡‹´‘˜ƒ°²±·µ‚‡Œ·¿»¿´·µ·±‰‚ˆµ´±µ—ðð†±²¶‡“”휓ㄚ—–õꈋ˜L}SŸ’‡Šƒ—’é`˜†m h`•ç|AŒQ7h[03664òY`4324÷4 †Œí??4 730414 Ê‹€ 4á“þù‘’çÎiè¶²ƒ7D–—⇀Æ fé°³‡k bš€‚€‚Êó䔇³¥´Æ莞ˆ¶·˜x~‰’Žº ¸d´°ˆ¶µžHÚûèäÖµ¤¹…6›Œ™•“†”mX“¿ºŒ”ƒ€´‰ŸjÝfä´±ž24zâLã„ð 1ff·ï5?06:>667 a†3%9 jñQ67 ⊃:? v74´¶7柜…‚ˆƒjK•ûà›°¸ƒqÃöÍãŽìùtpƒ··ƒgë‚›‡„…µ·šgs혙·³‰öjm‡Œø]ІØÎ”äç±½±–Eš…Ÿ„µžÓnby‘‹·ŠîHñ`pPž€ärÀ›Š‰vЖêÖ…™Ðj”“—aàTb Û„•ÄŸãjÑä45 ns 1<7`~5j65zoi65ÓœðÆäøþ›…@æ‹ÀžœåãßÂïf蜛 LJînÓ“_]¶´ëhý‹¶Œsµ½Œea…´°›S„ŒˆˆŽæㆷ±…|’¶¾³à|Žˆ‰ƒúÑžˆíaì·³ƒÿaƒ´gGíëö섈51 ú”šî7ä‘7‡Šš „€–4 tåm „‚Ô 00aä5647 AX420 eçâx o“…Œæ2$2…·²€’>0 ½µ¶…¦ï-º$Üa»$mú³€§¾{¼¼À)dŠ' 48nåÈŸ·¤§£¥»¥€ µ¶“51%'<47àÞ46›º¦¦¹¾¤¤»   ¬¡¾¤´Œ“•°¿ˆþY 6=!846<5<3>?=7Kdà|™‹²¾¥§¥»³‹¼¡ ¦»¥»4471%#&&8>9:;$&'':?9335 ’°¹¸¼±·ÿzn‚šä˜„€ò5|êµ·Š‰‚i òõæHVÔ0$80 6>$> qü˜’Eç¶¼º¥¥º³·µ¥¡£¡¤¡¥¿œ}€—œb<'$9 5 ä<<4ì˜ˆŽ´‡{”·¾¼´¿¿¼q½¹³²¾±—à‚´¹¥³½¥¹´eíš‚ˆù<&:26982=9!#$2`ZÑ–W›³¹º¤¦ ¤¶ƒ¼¹¾±°Žî76 42&"'3 23<9'&90 >:7c„‘žšÉY„ŽŠ³¼³²øg…в±¸¶µÎAüLjžü0'; 41 62;= hè÷Æ5m‚±±±°œ…³¿³º¹¾ŠÆžŒ°½¹µ‘“ž„‰Ž´„b4 55 338<4g_†ÜQi·Šµ¿¸¤°›ˆ¶´´¼³¶ht‘n凃´ïm“–‘ e •7:1521 71?3 àž°·uÏÙ·±‚½¿³½——“†Öi“ïw599=2<;=1%'$%>19öä jù@‚™¶¶Š“摵AJ‚·ŒÅ7ì{Í“ç5Z熌wlï…톉šñ‡æK`úú  fÄo–ƒœ €‰´‡á°¿¾Œ³·²±½²»´˜’ê´ŽãhÇb42 20t`K67æ’ƒ–’‹Š´±ƒ†¾½µ²Šž‡m7 4 7 „›”…N•ˆµŽ\˜Š‰… i3161 >:71<= gEÐüzx›…†wgaã7÷ 4 <345  c“±³ˆ·´¶²¤¤¾´³´€Öâéêän51?$;9140>>14 ÖŒ‹°Œƒ˜³±¥¦º¶½´´·‰…Ÿ¶·ä 6 ÒàPuÕ}{‰±¶ërç„†Š¼¥³Ÿ‡‡†…݇ƒŽˆù6 jîúÍ dcS‡‰‰cTž‡çOv yVqZ‰€• Àê5 á‡èh?1–ãõú„ k ñ…‹2<4eo@465 5–7>1íœnãsÇü}ž°¹±ùœµ³†·™oØ–Ìz’µ˜ ;$ 4oÙŽ¡¹ ‡¸¸¼´¶µŠƒ´•íµŽ¼¼X=1l`úÎ K07œo‚²³â74žµ½¼°“’†³°‰o•¤¡½û ÞŒ‡àñŸs ã•…„77ÙÖŒ·îçi‰š€à¶§´…ž›žì ?09>:;:06%'&%7êbœä‘Œ°µRIiŠŠ…ogì4x79=84ãí’‘gˆ†ieä´º·iníWs›À›”J™³‰™šö‡ŠƒŽ±¶±·\úŠÿYÒÙ’‘Žñyg—ƒ·ŽRˆ½Ë½»º³ˆâ†ˆçåÁè 5h‘‚„…‡„—cý—‚‹bî„ꔄƒ·€µái`´— ìÕ 1 žRevO 62 a1àÞu‡„}’‡ÿ4 af5=341 74i ~j âäÆÝ–e™µ} ëœóˆ~6 ݆”„…hÕÊéüø02zàU’ßtÄ“’—´°Á™†€µŒŽ‰çŒ·ïä·¹€a …‹”–‹´˜–Ëë„s´±‘ 6zæÁÁ›“Ã|véÜá‚¶½½™Ä‡ŠŠ„‡‚žaÁzŒµ“5ïGn—„”Ïwl“··b6 mu\cÐÎ Pšê ?4ß430701Êå4071j“瀂zbkmÓ„‹· i㎀íâü˜æm0W䆅úüg`ƵŒ7뛞’€à_ho´²±‰„àœƒ´·‚™ÐV›ëš¶¿³“€¶´‹„ÿl˜€…ˆö 3ൊ‘Ììi˜±µžìmËŒ³¶ƒäì“…—·±šù6•‹Šˆx u’„œ™›P =0p„ƒH090æ‘}<%7“™e42<7ʘ•–n 65…‰‚·‘ 34÷€Œ“•…I5 ÞŸ‰ƒó2% AvãZ`73ƒ‡ 10µ±ùdí˜}DZ³Š€ï4 ”·ˆíœ•wé›°¹±ô´¶ƒ‡”“÷a뎱²¾Š45܉²ˆ~z‡—jʼn½ˆ…ö42€·µ†xá“ Óš°½‚ â¶·›ãwÖço…°±¶ø4=™X_f…Šœ199 ™Ÿ 17逄384m‚~sc˜²µî37d…€‡‡ùa}hfkö°ž 67g†q hhû‚†‘34Só›ê`i]u±¾€5ႜ”™›Çîbô²ˆ7 æ¶·²³ ƒ¶€´ ш»¿•—€š€T Jïfà·¶z 1…’yK›ÇAf÷†„‰¶µj z€–Ÿ›ç”æžì±³±ý׆ƒŸšè 76d`l6394}mK ~†5 “‚ž…‰‚œœˆ„™¶´ƒé—êl 197 @c137  ”‚Ùëµ°¥¾Œ˜’ˆ··ƒrn 6745<3{…·±¼¾¹¸¥§¸³¶³¼¿·‘cmI`oyp„†œ×¶‰•`ÿþæoPùoh~•™”h󌵉ˆ‚š…üD—EøQküí”oÇŸî}Lg{nnûDi  1<8?2<9<=5 pKnjrûý 4 ZémŸ‚‚€›“‡ƒ…”ð’äåêŽcBvlöùR–Ü]…cÊ xúú‘°³†—〷µóABn7 5 E™ ÁŽ´Œ†ˆ²·Œž†µ´°·Òj‡·Œà‚‹›waî’`„³±ì tƒŸg~ânBaæµ°†C‹²˜…Œ‚\˜”„Š…594Jü•ù4`“f7$$0 7ô46z·±Ó0?ã•þf5u”±¹´c…±·‡–€ƒÐùç°¶f=5ð‚’È“‚ßûïcé·Šñ52Éãþ}áîf”úMê´¼‹6rêfe 05fо±ã`€´´‹Œ·±†ö{—‰†‘й¸‹eë±°Ž˜‹†`AðzH‚´B54 cítldÀÀlYÃúˆ²¶íØšƒ’”€…``Ôš’?3  =26477`Ñ 22 m e4o~þ‡îo–›ÎjÓ“–çFgtJœ‚˜rY’äÔfäþêäÇ–†·Š’Wû‡ˆ‚ꔞ„„–òf뙟„Ñit@ÿñWkou`eie”••›€€˜˜Š‚‡€ƒ€ˆ´·†åŒ±·‚円†˜’–æ„–v•—|deNûIgýzglú€œ–Œƒòu’‡„éçæFãì574  7233<1 59?16o 5ñ†]p˜›jÕ™ïúâùu̵ôc›ƒ‘‘€š_rF‘ƒˆ„˃‚›èÑ’‰¶·‘`BÕ“ˆµ†Ëojd™Ž†[i 4K’^51 m=4ð›å 蟇–dž‚õ•¶º¥¶èÑ—™µ¼²·š·”\炽¹°… 䋌Fš”$f¡mµº"Úµ8›«<82Aš%0 ƒ¸ž³¤2=‚;6¥=$<>3?Z¶¡§³Ÿvˆ¹°€œ 19%';59$!'6m5DŒœé‡±¤½¿¥Ð‹¿še 147à‰› 5?3›žYaꟆ…·¼¤»´øh€ˆž`Ùïq 7 j8 "&6 j6ჳµž²¡­¤¹¤¦¸¼·¼²Ž²¹¸½–ê¼»Š€€›éfàxË”‡œ5?5k‡á4 júŸŽZ 3 ù—@BTÔ_þXꀊŒã10J–Ï5=439$;0i3< …Æm dáâ57=6—žÇgë…‚Š‰á··‚Ÿ6062 ?'!%?3ngr’ƒ½³¸·´†s‰°¸¾µ·´‡ëdç‚Yýµ··•†±´´‡çƒ—‘ɒГ†™1=$2 43=>$':;9007Vîêe bœ²»³§¦¼½±º¡°°²¹¤´•ea >35 ù…‹™`k†³´½¶»¿´Œ·´ŒÌž±Šx Ài ÛDý„™··´Žc‚µµµ›‰¶Ÿ —171 &"':?%:<60?:0R|㈉Žb–±¶·ŽŠ·¹›ÁÇ€Åk '> 7>7F2âzøš·²Ž¶„ˆ»²µ‰Š°µœà”’Upob3?ef ‘}☃·°ë””µ‹ÈŸÏŒŸø 4;?;4h<0pÒùŸ‚±¼³··Œ±½°¸²´†³Ž›îö††“gh6 à‘j“äàyƒ³µ³¸µ‚€ƒ·¼¿³‰˜‚†sl‘v 2>:;66=734M‘†„sñ€šæn5< Ìg :?9=644儱œ——Eˆ¿¾€Ž…ê—ܒгW 1ÿì‘h ae ž·Œ—– â´„äñHgl销³´ü 7jhxZ45 àŽ76l€·àŠêûž¶±¶‹\4ω¶˜é’ÔÞ}ƒ¶¶†ï6i´±°â‹™‡^h—žŠ¾¥¿í ‘›µ±“f‡— „å7<::6ëdoœ;3ñ´µš¹‹a>‚¶½µïº:°36ˆº1';¶p Lý ‚…ƒ 2= †tÔd34645ƒŒ–—35Œ¤½Ÿ‰½€ÿ”ಥ¹†›·¦±µŽ±¹‡æ7'!!- :=44 16;9 19&' …°±¶¶Šº¡§¹¶·²»¹±¾  »¼°¼»¸¾°±¶Š´‰Ç 626vùð6>%$::?9%8??=7 3:%=408<µ¶ã5 e~`Êëw|äâÈ‘µ¥§½ŠµŽ„µ²±´·‘Ü‘´°°º§¡ ¡¥¾±´‰¶º¿±œ¹¤¿œþ¼¹°€†‚›‡“èþ~ st ?7Ìîþ51?$$?4 34>$8046 56=2ÞV 0 xn28256=3701và <6716’dx†±š„‚‰’d凴л§º²µ·º¦§»¥£¢¡¸¿¤¡¦§º»¤¥°¶¾§¤¿¼½°´{›·´™’‚‹T c“îygOef0::929$$<09 &??9:9=<: ,"$$:<44>%$1 0%< ?&$t×’âi–††±¹¹µ€±°´¶³¸»½‹´¼¾²±³²»»°‚ж°¿¥»³Š´²¼Ž˜±§§¹Šž¶±ŠŠ··…vj` wÐ17 3%95 604}08?7 16117 à”yü€µµŽ“Í””íT뇵³·æpì–‡±²·Žå•€åž·¼±‰ÿø¶¼°´Ž†•èœÖˆ104nyn 7124  1988? i633<>>>9273;';1Mw UÊŸŠµ}l挳²·µž’Ÿ€·½¼¼¿¹±‡“²¤ §¸¾¼±´³»¤¤¦§º½·„†Š¼¸¹¿ŽáehQ„†˜›× ҆‘Ÿ| 35xËn;81  7>' 8  5 543:>5o[o÷d134˜“ciõb n…ƒŸ•g7ꄉŒ†„‚…wåµ´²²¶á†°¶†„’á鄇€™ó4 mŸŽƒËÝçæcÆ‘Š´…Þ73äëH 4 XA†ý 015q„–Ô –š™Æ53ŸžûPshÄ…¶±‰˜èHþŒ½²´‰‰ƒˆ€›‰±½¶–CÛî…”s˜’`C„‘g5 òí26 lìË^“a y‚·ëyyœƒƒˆƒïÍ™‡’™˜ÿî·²€“Ž‹ž‘…—Öä†qAœ´wXï’…øxg ù•d 7íêaìAŸ†ýŽe rŸíøgatœæiÉ„ã}À™êMៜed‘“Õ›Û슛ø–ж‹“㉲½³´‹Œš‘Œ³·„lÄy 14ÌösiN…€í1$&!#"'$>4 ™žý5 6005õº¤¹°ƒ€„è웋½°ŸŸ”à³±Žˆ·°°Šƒ·½¼½ˆŽ‚†‘˜´°¶Œœ@ ]s ’’”åybš„”38!--!0m“—Õ `ïœçf535üêòà³¼±‡ÊdqNgLJ‚ƒ˜á Áƒµ¶†–„„…´°‹µ¶´…~厉œ[ mbbDëïÀŸ··’`×í47<$##$—›–Èfo}ÞÊüó5<>3 þš’à~䙚…´´ŠŠˆ‡ßl‡·±Ž—ÇnÇ‚Ž‹¼¿´‡”…ˆ²¿°‹™—æÑB`fꜟá à…•yeýì’„›I 36 53;'!!%1 ꉔÏæd70336t…‹Šµ›gš·¶Š€„•ÕØØ”™†µ´nG‚´±±µŽ›™‡ƒ·±¶B54 ׇœ›‘~fÃ噊±‰ç4†ˆ“…ü7790 1<= ÙƒŽ‚€î|ltÄ726k„ˆˆ’êê…›šµ½³Ž`å„€˜—“dà‘‡´²¥º³ÜzžŠ´‹„ñ {•†‚ž55ëžœ‘mg`À›™b6%!&%<116664ã‘€ŽƒK 3< iÍ™Œ±¼¾·…ñž·¼°·ŒVäéý@ã…ƒŽŽ‚’ú~ž·¹¸³´‚š‡„š€˜„‚•g t›†…ú~zh`€žš‡•ÙÓæ <;;%';275k_˜Ü 54jehs–´¶‹„€•‘‹°µ“‡˜Ê ž˜û{™•’ޱ³µ‚޵åió††öx{nÕ†‡ïퟂ€ø掄•”Î|G >0 1%$1unkÍ ”íYœ} 36öansZ±Š˜“ˆ³°›–‰‰œäõò€„fLŒ±±†ž‹´ŽšœâW†…s劊í7‚ƒ“„—hGˆê]†‚]08>5713<26z‘€ž0 K•äÁao5æ‘vkˆ°‚e™Šµ‹Šžÿ_’Œ˜gxœ´¶Q45c´€‡‚›ûLÓf€±µø4ä‘…ërí“â]}†±±† 넘•}71 0?7Ô„`3:3MpWãr ˆ´´%<7š¥³CÞ`g„V†ƒ˜¿·=6mwæ–ûáæ4‚¿¸a 5ù“üp–Iž‚€r~“·½ˆo1 㑚‡á z 6w±³²ž „†ˆ¼ˆîú‹›²”Љ¶Ž‡˜î²¹¾‡12;'"&%±²¶:&;> ‘·¶ƒµµ¼‚jy䘃´€¶µ‰‰€d„žçÀÿ´¸°·u :" !? ‡…487—–••í‘”†°¥²jOŸ³¥»¼šì †µ±†rÑ’˜ülg %&9Íœ€z 7•¼º²Œ˜õ47ð‰´°±´í5k‰·‡SI„±Š—43!";´Šê 17P“‚ŽŠˆ†—Þš‚€øI™†ˆ…ƒŽ…Öd‘´³áz‘z7667w2 ð›à{a‘Ž‹†ˆ‚á 5”²¤ºŒjoh噀œô`·• =88<1rùR~f挷€õ|‘–¶±€E v޵·±™ g’€’L}êÂj  =%2×™Èï€ê’„²¿µc7 g’¶½Š†\A…‚ü›´01|ì2>734„™77é„°´€îe…‰‚~δ‡hdƒ´ƒ‚‹‹‡’škŒ‹ê  0<5pã5œˆŽN‰·ˆ‚‡4˜·A¶Jä—áå™Þ 3 Þ†‡Òd5>2}ý06s´²…m³³„r”†”郴\u†¶¶gMœ‡_ Òækjêþ1 Û—h03m31 Oþcíd”¶¿±œyœ’æt•ƒ¶µ€ŒŒT å·Žç 4 }ádk;> ÿ^ }™‹ˆƒµ¼°‚â…F뀎€ERçß ?5}„˜ü 7<5`´µ…F–”ü…Žˆ†”‚²¼±^j—`71 X„‡æ 016 ÑÀhìžut‹¼¼²@ÅŒ½¶ƒ†Œ‚™D悵Šâ4=3 ò”g 22ç„’o532 T‹°á›ˆëð½¹²÷ˆ¶¶èÒÔEd71˜Š‡?;2ú…U 5 14‘µ°7’¶¿±„ê–˜ž†’÷ë´¥¥¶m5ažŽƒ÷  74ƒ‹:; d—— Dâeú°¥¾„ 4€±°·†æè˜‰á‚¿²”6:=ûž\40´1'>’€„ävvî‚m’¼¦·õù´´µ´ bøÿšC°ž0<…‚ëova Bˆd ⶉ„o=7õ–™€ø –â 1Ѷ±ái·‹Š†åT•³¶å”·»´=3 Yï6220 %3èO680akf10432ò—52<= `T•匼¿¥³±º¡¦³‰Miá·³¾¼¶Œ„ârf³§¥½½°³¹»¸ººŠ‹ˆ` áÖ 7l 714t0?aç|  4l0{mI 7ãî’17 i†·¼Šéõ‡Œ‡Žˆé…€´íƒ´ˆ›éI™ž†€œŒ²·µ‹ƒ‚µ´ŒžÍò c IŒ†5267 sQ6> {oh}oáüáayL h—„𛵋ïiûƒ†€‰·°ˆÝg‚g›´µ˜†µ˜–‹¶´‚âÀœåvé‘óGþVmZa53 74Qð • å315Z•õÇaË“fÀŽé34TìΈƒQl“‡š„‹°·ä~œ„ˆ¶ŽˆŠƒÏYž™“€Ž‚kh˜šŸ‹‰‡ìÚ”œm춉O nã 44 65›34ÿ~1= 5•‚ˆc7ᘞ”âf^ ”µ„Dú±¶ˆŽˆ„‘„œø—‚´³²›™„‹µ‡ž†ÑÝÛeš‹Œ†u T…„‡˜Æ67êf >?<|ÆgÕ 1< óÇ\2>5d‚µ™ž…lopŠw66äㆅžšŸ÷³¸³…qâ¶¿Ž‚¶¶„òoí‹´ŒŽ‡45„‹–zäîx›µ´˜a11AíØa 51=7A~ö}5=144ôxn 6Њ¶‡‚ÆA”†‘Ñ–÷3 B›‰‚Ÿ’ù˜½¸³¶œ—XÍ·»°´¶„~il™³°‡’Ã53ië‡îBýna@œŠ´1= ñèr=>[ñLÌh599=õì}JQ·¿·„à ᛉ‰îoM^Ù€³¿µøo…³½‡‹ˆ•žà™°»¹²‚4gž…µŠÁsü 4ˆ³„10Ÿƒ™Åco47 }‰´Ó2'95`Á 65 29¶¶™0<Œ‰ŠOœšH{Ïì´ºµd1äµµ„„ㆅNŸ¾¤¹™´³´Ú–š“ü ¹³ú??›ëqå4‹¾‚790 jíêo 3=„‡d 8%2ctèÔdpáúƒ§¿} }›µ‘ëvc±½· ?~š®·d<­ú:®‚$ °2%l´¥¦ ¿j´¾-¼!1:>8°±·„„³¤¦º¤¥½’èåA4<%3%!#!=>>3151>õ‡„»§§¤¥³° ¤º¿µ²áoõg47Õ•1= 5ÉzÓ߆±µ…‘†¸¸¼´‚‰¿¦º¼¿·Ž·Ž‹´ƒ˜C‡‹½ô3042%%# '$& ?020%$$93=$;4u„¶°¶Œ†¾¥·‰€…³²ŠU“š`¶´˜—Òà‹šd圇‡ËJrXGáQÒì ‘…ó„Š‹±»¾½¶°¸°´„„Œ±²¶ˆŸÜaeo76%::'&'!21?;388:< 065 ebŸŠ²±·˜‡˜‹¶¶¶¶Œˆ¼·„‰´¶¿°¶‚—Œ–‡Œ…žÎ\23066=9<5 í„€‹²³µ‹´¥¥§§¶‰ŒŠ°‹µ³ˆ‰€01=1 31<$92 573$!#$$>662?<7eÈ‹±¿¾Ž„똵¸¸¼ºŠ…ŽŽ³³¼´°¹¸µábÞí›±™“b30 X4†±µŸÌ cœ•Є€Œ zž´¾¶²ƒ“˜çµµ°„~×噘2'",-#%:&;04>:1Í’š‚ä˜Ä „ˆ·±º¾»°ƒ„ô‚¼¿¿µ—„–k†µŽ‰ˆ°µŒ” uµ‹°µŠ…횃‰æ…40&#%<064<%?6 zù…‰í€‚™†“º§¤º¾¸‹™……‡ 62%$! 93453%7 jà„ƒ‹·éàmƒ³¼¼·µ‚˜x’µˆ‚€µ´‡øfüŸÓ‡„Æ fi臺½¼¼±±„‚¶±œyf464<7 4 7323051YÈ阳³³½ƒ‘þvö  2=  45bï‡h–†™Ž¹³·°´´´…ˆ½²·—áïÅ fð5æynƒ³°ˆŒŽŸ³“⇛çéå€BûŽp4 ====4334 0 añJqš˜†”ç†yâ^ˆßNf ~ 55’ 䇎·µ¶³´¹¦ ¤¼½¾º¥ŒÝA…Žüdh 3 j~134U•gØLsË‹Š…mxŒˆT hh 728676%8 o < âøÐ€€”߃µ³²´‡‹¥¸´Ô†„žœ…—cœåxu„Ÿ„èææß\ˆ±†›†½§½‰„œ·Š´‹ƒò“l>4{_ö;?1 6 Xh7‰·ý;6LóÚb ægí´œo05ð‡——àSì‘ZÜ‚°±µD…±½²‰€Ÿ‹“…n¹²úzžµœÍíh@ô 浇W >蚉âÍça„êá“Û„½³ç1 @Pl”7=7<2wžò024l‚·ééf—Fü´»¾î‚‰´Œúü•j‘ô5>'!$? 52?014㓵¹»¤µHÊw‹¿³‹Œ…¶æ7ˆ¾¦§²†9bý–Ÿ„—‘R`´¿…ßoào1m†ˆ¼†ú6c÷°¹±–€xn5\ŠŽŽ5—53?14r‰‹âkøŸž îûš„ˆ‚“牃·½Ž‚”‚…š…“~32š 622&&;1åžÀbk‹´±Fƒˆ²¿¶an퉹¥˜Ÿa7 j324 2 ?Fw—‰²¶‚âû¾±…š´¹±Ÿ–‚‰‰âZ‰´‹3i qÝ51$&9w|kͰ°†í{ƒ€…šÄœ‡¼¤½eãà–™oÆ”³‚_4yïÊ4 ÿä 881574 jƒ¼º´òÅzŸ‚„ôQã·¸¿³ƒæí†în鄊Çîê76 SœÕÈ<< 023žµŽ–›Œ‹µ™m…±¾¿œ‰´‰ä’›˜æ a†€Ö 7èg5 <>>=G‰ƒÍƒ·´TdÞŠ¶¶µ€–‰´±¶Ð Qe΄ƒM1k’š5i025bOile²¾ˆúö’€˜™¶½°´Œ÷ ë“þ`çA|qò}ôùÕ70G•57551 ×‌Œ‚jOްµ‰‹’ƒ‰‚Ÿ57 ä„‚æj`fèÎðn 76 _|jjŸ€‚އ†ïxefš´¼²´‰‚Aœêb–‚œÐap6 i•êÁ436ᇅ—ob–‡‹¼°€™Óô…Œ¶Š€…È =4@…å•îh41†çWîç6>7äõÄåçµµ…éëoW¾¹½¾ˆ‘ÆŸïÙüç181o’íò‘2>7ærTî•61<µ™€š •¼¾²°°³šœ°°‹‡H6;< säÍ‘”6=6J–™ã792Ø‘’…š–00†³‹‡Š´—5„½¿¶²¾½—6…š†˜ý :>4ꓜ’ö=;3€„åÈ<:“„™Ÿˆ´ï6=€½±²²¶ú´´Ž´³Œy4:=—íAk292™åã…Ž‘1$={ƒ‚œl0> è…Ÿ°½‡7›°»¥¼´š ÿŽ„jmW…%>pÁ {°½ ‰íƒ°¶À4<½&¤ž€ýo#ê4‡˜±à± 3{ ’‰µ·žŽ4% '<9;<0>89%:<dzkfã˜î™Œ·¶¼°¶ŽŠ±±¹¦§¹¹¹¹¥§§§¦ ¢¤¸³´·¸§¥»¼Ž‚‰š·‰Œí¶XvyijeÄÚ79$$?61:$3455 4771=8%01;27<:<  066 29% b6 f0 ›½Šú÷†“K—áïùmš³¾ÿœŒ†…‚š…š˜ž3‰¾³‡ë—ƒú‘Ž€•ž†šõ0´¿„gZj ”ã>%<[6:9=%'?1215?$=ã  ÄíÜ€6 –°¶v•“è·¾¹³·²¥¿›ž¼§¤¾·‚‰°´Ž°¥º¾¸¹¼·ŽŠ¥§½Š´‹žúŸ‰¶³’‹³†‡°±î]íg72’ð5  <&:è512229:6==5?8?4À447>?4 5= ä“”˜Àf’Š’PŽ‚‘”³¸Š›ƒ–䂱°‚ò†±‹ä}›‰²¸±Ÿú™š„ˆ¶ˆ€‡„™–•‡•Â4hè–5ãj tà10ik 0 <>713 5ãYþÊåês鎋‡åˆ‰™±´€ˆ€¶¶…›äþ‹³Ž’„Ž´Ž‚š„tnòb\5DfcLÔþ–éᘠcg“ŸxeøÌèéP{äìõíšžhb‡†š„˜”õð—òõïðfQžNù‰ˆ˜á[Ç´Šnd‚ŠšfzœùGä·ôxæ› Y·4· µ1œ7´6v½â À—Ž÷d”5ì×l‘Gôo4  9F000475åéµø±±²¸¤§¹¹»¥¥¥¥¿¤³½ˆ±µ¶±—¾¶· 0:$&! !$'&-#! $$$& "#!8<5 47ÿŠ»§§¸½¶‹††µ‰³½»¿¹»²²¼¿¥§¿±´·°¼°±µŸ‡ðôö윆‡— 436 401=8''<0 53=6 1==0nãéFfŽ·¶ˆƒø΋¼±Š·´µµ°¹¡¡¦¦ §µç–´¶²²·µ‰´¶·°²³²³émm–‰†ÛnPqi—íù•“–f387y46?;?6 n–í7 #'?4>$''&#"&8%&'89$ # :76=?129>2751=66?$ $4dûCgb‚µ´¶³µ”K¿º¿½¿¼³±°»¤¥¥¡ §³™‚²¥¤¥¼²²´Š·²¹¥º¥¤¾´ì÷‹·ŽiaÑgeoMQ2>3  73?=36ô–r =342<2336÷É놗`˜ÈHi釷±³·†‘™€·¸¾·ƒš†é䃶°·‰‚ކôžµ³³‰’çMAÞ}ä 577 1310237 54134õ 6?:>5 6677732 aïàikbs†‚êwj@Ûjê´³³‰€·¶ˆ‹³¸¥¼¶²²³¶µ´²¹¸¸²¶°³¶³¾¹¿¶ŒŠ¶Œ”Eꎵž{Obü‚“bþÝ 5~’“moió™…t<86 =2 47rÇkgÇ 65  ãœÓa”ƒƒd挆ÄyûFnu–Œÿv›‹µ’“ƒ“gwPùîï‘` â•FnÖ“Öú³·ùz™‚je[êf à€Ä ÿ™…–efjlYo …›ó4œ…œ—Ñ[lü„ždc†´œ ð…–—dbâ˜Üa’‰€g CèôdojüðS•µµ˜Ó…€‚„àLkð•k“š536f÷áçfgØåÔšŒ‡5 à‡‡„šãç„€š–…±¾´€Ò|ì‘‹Š˜áÊîžælêˆû aXøL 7iî–m56 ø™ƒîâæ_•´‡ û—rú‹ë`àdê‹€ì Ò’šrV–“Љöcpwê…ãśݜ·´†æ‘‘â¶ŠÄo›Ž÷ fµ°Ÿffsä…„l_µ†à—´¹º³ëmbÒî4 2;!$†€˜´³†0:$0ê÷ 6œ†å 5á–˜€´²±ƒŠ‹õ4 ‘¼¸‡†— 674 SކZ–‰ô71éN `™Œ‡—ëd6 ƒ³·š‚•dR„µƒÜ艆0b¶³î4=38àŽ°‹ž`9=–Ÿoü„—j’Ÿka–e„²³Ÿ”‰Ê d”„™‡ƒ˜:<m j‰ˆö5eƒžgE|†´±…nb€‰ðoッ‰V{޶‚ää‚…ìËhq46=1jˆŠ”6ç•|´•\•··”4 i”ìÞŸ€´½´ø±µ‘V 4 ۜᇊ…~жƒÓËœ¶°† 5ìKhïµ´ïrúþîÞ4=?5jz S…5Àˆ±µ–œ³±–z@i à€²¼Ž~D„‚’H]åëã4 j 24•¶„÷‡‚‘A‘ŒƒŒ°½ƒ5 x’ó C€´‹õ炵€ŸíJ›€c c36yfœ16W±²‚옵‹Œ…’•â–ñ^76½·u…µŽ}k퀂–w÷L >7î‚ñ4 {ñ’†…”ní´¾³ŒÇ`d 4MJapù “²±™c`Úf 57>= Yï{bZƒ´³³·´ƒånýŒµù”‰µˆž䎴€”Ý kß@i60 Ô‚´ˆƒ‡…™µ½¼´ƒžàe 6•Ÿ“ê 䃇›’Ì506ÁEo6<80[l †±½¿¾²‡c„€žÄã^ 5 û‚´µâóƒƒÖj=3qqRí2;3eƒˆ†·´—‚´·±°´›55ŽŸÔõä^’‚ˆŠŠ‡3?5Cžñ2>6‰s÷¶¸¾±¶·‚ØÓžš‚Œ„M680mˆµ‘៟7JÏà„3%?ñ÷ 36ì·¸¸°—i„³¾Šü 7Pî톊ƒc22‚·˜Ýä1?6agášÐ8:1šå…˜e߀±¼¼¾½Žo „±Š‘á™þ2 f—à’‰‰ö6>7i‘•hgr18=7fò”[ 26oµ²¶‰·¶†›´±·±²¶[66€Žš™’h54{•›‡ƒ–0>4i•ìzk7>>4Þƒ·³¾Ž7<±¹§‚†ŽGš‚†ºê:À'Œ ± ²5'h”h´‰”\7 ƒ€jŸ”443… ãM7416 —€‚”‡ƒ‰Ž²§¡§¥¡¥¤¿¾»¼¥¡¦·– 7Ü5†‘œ 520?:09 #-&&;18 &&###&!>2?60081cƒ¿¤¥°˜„‘~cjà‰º»¾¿¤¦§¦ £§¥°±»¦§º¥¥¤¤¾…R‘‡‰´–âÄãu  1>:$962:#-#?3?<l5331=6c•y‘€ýoÌŒ†Ì jœ‹¶‹–’‹³¼¾¾½¹º¸·†›}Ÿ¿¤³‰±½¾½´´°³¶·°ˆ……‚´¹½†lž‡‡Áà 6 v7?2 09>>3758$90=:?134 =>1 6670;953$&>%' "&:; "#!%=?''?6 0;<6  1=j5‡…„牾»³µ´³»¤¸±²»¾»¦ ¥½±±¸¦¤·²¹¼²·ƒ¶³±°²Ž‘„·°°‰ìC€âlQ”ëS4ïa43 50>8<=?<43:8P64ý 26nOå2‘šaf”‰Œör°µ¶²¼¶Œšƒ¶¸½€Š²²Ž™›šŽˆ‚ˆ´îmµ„æÙš·芅õ•“…J73›Ê44g5=0 7 1%:9170%;7 ?%24387z555<7bà ã‚‘ëµ¼¶˜€½½ƒœ†¶¾º±³»·ü„°»¿¶‚Œ¼±”ä¶»½´¶³³·€±»¼´¶±Àôã†îzœ„j sçœ×G7684802!! $ '$:>$'$;1=:= –½¼¾§§¡¥½³º£¢£¢¬¢¢¬¢ ­££¢­¡¤¸¹¹¤¥¸¸½°·ŒDtÚZ””„†] 0 3?<<$## !##&:'"-!' #!&$8%%$'';1 5MÄ囄…žwÿù—„ޱ¾½µŠ°²»¦¦ ¡º¹¥º¸¤¦£­¢¡¦»±¶³»¤¸·µƒ›‚Œ·´Žµ‰‘j –ž›–502 <& #&? 0=8'! !$233446;# :4 4778:=5í2$;7Þ]}΄‚¶¼¹¾ˆe—´¹ ¦¹¾¾´¶¾¤»¾¤¡§²€‰º££¡§¥¥½‹²§¦¥§¦¡¤¶–š·¿º²Žœ÷Íofèãc %'6434<'$?332  ?!#:4 47<%$& %9;25 6:'8 qöl dèÀœƒœö Ù㑟’âulv—“†´½¾²‰ŒŠ·½±²¿¶µ±µ‚‹·±¼¿µ…•ê››™‡™„ŒãU‘ïqÀ”†±ˆkÇ—e–ê\ôÎ~‘‡2<hÌ74 ‘–â€ý뉴jFÉc†…tC“‹·µ›\Üœ›“æ’·±ˆ›—…ü–…‚‚à 5p‘žô41Lgxáþ 234Ìet”Q |{k 5?8Ì{xN„Ÿ“Ð{ë—Lkg“—Îoùj rè5ý—‘‡™‰Œž„‡„€›…µˆž÷ƒ¿¿ž™éøœ‘˜‚›˜šö敖⎽´›Çå›îï‚„…éçØÍ„‡É—š€–ôùãBêŒígqò‹±ƒ„…‹±ˆl•‘ü79=15Ñ— ig {Ãl 7bltîi 47635ÆãAkô’›ƒìiõ┆œùî„‘Ÿãéü€··‚—‰ˆ·¶±¿¾¶·½³°±›å†ˆµÔcÈtQm’„g ”f kE7|Z ×÷280 445=0Ä šð 6œƒ™è懃í\åâ†yd™Œµ‚ rŒ¶Šœæ‡‹‹Œ™ˆ³¶ˆ‚±¹´öcQš·ƒþïã5ZØh†b Wš’Ÿàš„aj““…ïp‡ŒŸ03oèn4  7 4}‘È5:<”…Popo{x×M펚b·µ„š„ƒŽ€ŒŒ‘†ˆ’›™²‚ öƒìÍÀxõq×ümOË››„B œ”{T@wq’Cš‚†ïr’…ùÈjc h\öõa4 Óé–áþÚàLtê‘›µ¿²¶Œ·‹¶³²¸¸½¾½±²½ük5 46 kç…ñ `”‘àŒ™äkåG÷vo 47665 40 437?6j57immXËyhnTš‡ÎËé…€Œ‹±½¶‹Šˆ·¼·‚¿¾½Œãn††bÞÞZi~Vëlò›‹õ…‡û7Ȉƒô’šâ6žƒê5éz6&:åà<E %%íƒú ”›6<…µï‘r 泿˜mŒ·‡P³¤¤±„Œ³²‚I‘³»º…ŒL6 ”ˆÜž\42„´…쇟jb…Št‘“Y 4׈ŠHá™3< Àh 520S•Ý =5ÎŽ‚`íésv…Ž…à’îˇ¿¿´ž‰·GB†¶ˆ·Ž’yï—ãé`l~ šŒƒìaa‚ŽŒ…îçd únk4701 | 00 PscÈæýdi懙˜‚µŽ”ž‚‚µ´›³²‹‚´²²ŠM“ƒ„ñÕgÂ]dPÂclЕ†’Å€´‰…™ãêîâðbÀêú 4 ׇ—    9> {ñ54t^{óñö“𓄇êë‹‚q팉†˜·´‰Œ„’ãÙaæ‹—4âÿã€n‘Èf³µðaŠ¿´‘ü‚³µR âå pŽŒ>3o›Þ 5e†È6?1 7Ð} 8?䓘¶ˆ|‡´Œ”‡±‹ùú˜´³µ’™´µš„’…ye‰“ ?7_š™ä÷à”Pz‡ƒŒµ³‹m7”‹ƒUz 21oþì8:1b 473?04ã”73“Ž‚‚•Âöš€‡‹°¼ˆ—ñsޱ°·µ‡þíï埂ˆµ´™Ö•à„ÑÚÚÄΘµ´ïäë’ž™’„Œìi”ã 7 23l 0322=77047 m•˜]uðåšµ¶Žš“±ŠœC—µ°³‰–—“놇…ƒƒŸ…ƒ›zž´‰êVëžæž‚‡€„šëzÆê‹½¶›쌅Xë•àh70iÂ09?5=<03:;=öãi = Ý’l–ˆ±†—f곤»as´¿·‘ì‚´°·Žžäî´¹³S4޶ê²´mòoµ¼¤?0º¥ž„5:®Ž!¡‚ ::±65 °µŽ1µº…-—k-$$æ;iÝŽ³ˆ±±¿º²á1277 ; % 5%'=–„×¹¢¦¤¼·¿­¦ž³¦½»¾»Šë‡œÁŠ’y90?930?::4 ^ç6 îc15èúhi  43735 >?=02  p˜œ†ëž·¼°°¿¸·±¸¹³¾»§¼°½´´µê†°²¶šžµ·´‚·°”••œÊtvhþ=0 66<30 <7h5Zs“”mà‚“éþ™†Ø†âlW 50> 5366474š˜h›€uú”€±Š™‡¶°’‰³²ˆ‚¶³ì†¸¤¿¾¼°¹¾ˆ…ⱉ„ž7?<64?;&%99%!97< 716 €‰ëž·´µ€šŒ¿³˜Y ü k64j~úþ 60h“3 Ÿ’·‹†è”Ÿ…°¤¹·¹º²¿Ž´¼¸º¹¤¼´ìþ…Ž€ƒâb %&2 655 =;&6m 74 602': æv1o·´ï‚…–{é倲»¼¸·…š‰¶±¸¾ˆ‚˜v44563 <;8$0ó•ÎN”w±¶°¤§¤´˜·µ°½¿¹²¾Žݘx›Ÿ›éê>ÌòÈ´€†„{ 20 7>'"## &;17?9:>6<6[½±pD„º¿³¤¤ ¬¥¼¾»¦°´²·±82 81 7$$ –ˆƒé™ë•¼±³¿§»‹Ÿ†‚à³¶µ‹â 5|`éo 3™g’µ¶åÛ0 ð7ø†38&3>8Ò ?$%903< †‡åž¾¿¥§§¾‹³¾¿·¾¾¤¾äLʘ:15 …ƒ†Ùˆ·˜±£ºŒ‹Žˆ³‹â‘»¥µ 2  ZF=:13€=; oc”S‘›X •œŽá<;54üd45xerµº½•ËŸš…³¹¼¿¸œO‚¼ðæ•¿°í4<dÕ”0{† ¸¾°·ê¥¿¿¹º¾‰ŒŸ‚Š„Éܶ·=9'8039'%'"!;'"%6 |ù5s}ú²‹™ãЋ‰”c°³„‘g5ê]y`‡Óê‘FÊw‹¥÷î›°¥°Œ¶½Š€¿½ŒŒ°·´š ရ W id Éûø™…d5 å€{˜3754À 120= aÙ o‹™‹…õŽûƒ³´ˆ”ˆ½ˆŠ€—xö·‰•òƒ€zúðžpèóüеüch¼¶Ÿj³ˆ‡š†‘ïÎŽŠæ”˜v  00$<463=9$83 œ—[–F”·¤¶@é·µ±™ë±òúth}Ä >2oåozìäoŽœ}µ¸¶ü䇱¸±±´·¼±‚€€ý‚´‡ìè 74%0 6 %$?’èÊ ~uý?;?_銖uœƒŸç•„´øÓ°¾½¤§¤¹½½¥§½¸¹¿¹¾²ßîµ´¾³ŠŒÌíH c”`ælx=><tdä€>5ñ€œ674>4Ø” 4;Ž·ì4䜼·„‡âç6g˜²½ëjꀾ°„ê½»ˆSå–Ÿ•Š¿²½¶Žµîm…½¾Œùö±å‘U=7ï†?250?ðø?8>–‡ 167”€‚„’Ïh óƒ°µzŸ·ƒ†‡S·½·‹Y`‡{–´ˆ¶œTY‰½¹·‡‡“é銅˜óê4“ˆö|o 5wnk<$7ä7 214Øäj47j€Ž„æQenæ’‚™–‘én÷—ƒ™…•òeá牉ƒŽ‚Žž—ƒ°Šƒ„X最·¶Œ‰´‡äs„’”d}5fé‘“ëîùü 6 cj50=7`735 h1 —‡ÿõš€öe}òšŸlטƒµˆµ¶†—ìûƒ·µ„ri„´‡’Œ‹µŸp•…–QŸˆ´Žl휛pô…––rjonsFæv43PadI 4Øò394myõezqž‚ƒ€_ P—ñcH’„ïbì–t‚°²ˆµç“‚°ŠœøžJ”¶²·žnÂŒ‡‘”±‹•âopŽˆá 5`sàý54>3gè57 âæa —„‚O’”~l†“ga ÞŽ€”öu™ŒáÇë›±¼ˆ…™ÐmÑæ€±µáóõ•˜kœŠ³¶›ÓüW´‹÷_SøQ‘‰† g_f 55ü†J 61 tõ ﵇õ‡è|™˜™„?=ƒ¥²¼˜ b–…ƒ˜òýmôrž‹ŒbLß–ŒŽ™d€€€Å󋃎„›ñVvQP€µž03 5 d2 䜎³„ßGŠ•Ÿ›åXz4<=0è´»¥¿½ƒ{@kìµ±€éá•g@Ÿ·‰‚™±»³°ˆ±³¼¶„åuhA…¶šz575 807“r 337 10d 607\>?6{qg4 †Ž‰‚–ÿcbö›ž÷‚»·† 415Aag˜·°‹{Ú€³€‡dUÅ„e v“„Ìh°§¼‡ãT„‚ƒ˜Ÿmp˜…7’…—461owka5ù‡\1%8A`{dp•…¶ês·´ˆ”ˆ´Œöñd1²³ŠEIé´µ‰œéç‘™™417”…ƒg•·³³ö…„‰˜e xæ™´€Ã65à50oa 7 á˜ýô]783 k B˜Œ±€–õ‰¶€pc‹µmc÷1ÿމkb„¶·ˆ›Ÿîžž’žþ1œ† ø°²°‡‚ƒ‚†’†i±Ý 5 æêb5 44 6µ‡ •‚™ 6 5z74ç°µ ˜°°›Þ…„…ÝšŽoÞ‰10†·‚E„›èƒµ˜Cäµ¶ž ?5èŸÉkŸùúB´‘ž¼¿µ‘žçNBp2>`0%>„…Yeš™aî”1—â<3„ÅÅž‘énç´‹•ŸŽ°‰’‡ïõöi Áˆ•м´ý]‡’†št5Æžû’‰æ…·Š‡„·ƒu⇞nã_ 9%6 5 04”œáU–„Õ6 s•vAS45 ÿ™éb”žUm†´·‹´Š…@„œÿsè˜_í·½±½²·–ÊŽ´€Õ–—h4Û‚ŽŠæ—·µ€è—• ßïýÃ?$%2n 47 ê„€›c 44 N‡‡ú`m  oœŒ´µƒÕЀ°½µ€à]å‚´Š‚õ~š³º¼Š…—÷eé‚·ˆ‡å…½²‰”}KjŸµ´†E406Íšd4?><98>5q–Ñ133 –´ŽÕ a¶‰•_‘²¾ŽvjöåvŒ¿½]x C·¥²™P⃘SI€¸¥¼ƒîzjŽ¿¼ƒzÚúxa‹½²q 7Ü·±•6 288Õm 119''6ðâ4340=‚´€klm4†¹¸…šKˆ¾¼šBHfñ´¸Š bœ…²º²Œú÷s‡²¥¾†f|Žâ{ˆ³³…•öÅ57²¥•˜^ !7¡k›ƒ7"…° ©7?59JŸ¼˜Ž¸ ‡·$%§9:#4„mš¸º½³‚´²ˆîœm=<06 103<34ß’Œ€ŸŸŠ»²²¡¦º¤¦µ½¢¸³²¿§±‡êc 2$16%''# &"!$'! !&%< å댊onÖ{™Š·¾¼±´´³µ°¶³¼‹ŽG  46?=<çåmc–´¿»º§¦£¡²µ±¸§·ƒš°ˆVà±¾µˆ±¿¶…Hš 6lj74 5>9%:; "#$=<<4õ˜„˜Àf€‚‚´³¶´‹±²²µ³¹²‡7ìA019: 6?0ä€Á0²µ‹¹¤¼€™€ˆëµœbè´³±³°³§¥´‚‡…èæŸþ30b<&!:$"/-#!"&0 ?0ô²¼dp‚½±‡·°¾¼°¾»¿€ûo•‹±†} k5o~Åö528 ` ×çhTŒŽ²‰™m_„±·…˜°¥¥¥€·º»½·²¶´ e÷ j0>%&&$'8?0?=22 Tcnè›ô•àŒƒ••‹Œ·‹Œ±Š´·¶‚Š´¿²´Ž‰V}c 43   d…—‰š‚·¶½‰µ¾¸¹³´‹“”nÁÉ…›`V‘J5 W  fû15=&!:>=1 1=5 °°¹½»»¼§¸½¤º§ ¤¥Š”ÿam657>7 7 …„… `êñò±±¼³ˆ„Ї齶™ ÷]A436770 …˜ˆn|–ìòðç…‚ ?2<:7Ì0<0ï–…³¾±°€‰·²¸´³¥§½´à•‚“™åwa„Ž 67 3×… 螀‡¿²Š½‚ÿ„“Ÿã€‹ 480346::%2 x•”œ`–‡~Œ„‘àD‚µ†˜4 •p xŸæî·¶Œlµ±°·ˆŠ³‰€Ž²°‹…}š‹Šu127Íñ 635yƒ í·¿¿¼„¶¾º°ˆ·°‡_s@ ;&!=4;# %35=:<z`쌛l¿¹²‹çܳ½€ùËŠ•”äj’€12›†síxž‚¶€‡°»·‘ꉿ¼¹¶„‹™†‘I˜p 047lnc| j™}itk –á䘖njšyäq5 dvü†ÿWe…µ‡·ã°‚€²™ž…†±Š“}KB–áƒØâvÑbÊ„€6<†¾™ú±µÈx´¶…„Ÿõd`793 0:?1p <65ƒ·áŠ‹½‚µŸ°=¢ü†¼Xäá ˜“…öj–ÍžeÆ 쌴i1 5ˆ°5 u†±–y…µ°ešµº§Œáƒ¼¾¦º¶±¸¹°å뜄cãöc730e40630'!%;<$&8 $,&7>'$”>%ê›s…ˆ‡áˆ»¥»¼°¹¥»¾ˆ„µ½º¹°´´Œáç’‡€šarp„„59<n =? < /! c4$&>49' ; 3>60%> J…€—ó›¶³Œ”±³±±¶¶±µ·¸º½°»¡¡»°±»¢¯¢¤¸¦­ ¼½§££§»º¥¦º„z‡¾¤¼µ‰µµœkû´‡ä—r 55 ÷5 48:24465 < /$8>31<%%95 17j7$':=46:$%907 00Q` 5 hꑘ†…ám×…ˆœ˜±¹¶Í”±¼¼¿½³³·µ‹±¸¾²¹¦§²‰Œ†…ƒ¶¾¹¶È Œ·„F·ƒË65hI388?0  3:;8;?<02?;$!&828&=a:%>  œw1=™lœ¶¶—n…Žƒ½º¾¶‰Š½º¥¾³¸¡¡»²¾º¸³±¹§¦§¾Œ€²¥¹°²¸§§¥³‰Œ·½³ŽŽ°½Š™ÿnòˆ›Õ熛cc_qôl534z  =0j:$%60?0 46 pckž› ž‹‘Ôƒ‡bÕáÍŸg Í…0ƒµ—Cž`4 aš“6õ€44™€çcøû67|0=5j 5 433 4<<2;5j×5 –˜…îòž‚“Ê‚²¾¶‡·¿±‡ƒ²»¸±¶²¥»·µ°¤¦¥¼²¾¸¹³²¹º¹½½¾º³‡›Š½¿°‚а±Ÿ‡·¼¶ƒŠ´‹„Èî–„€œ“øÓjd{i kdi731  406 3<<36736  ><1r B` 7YCïÉ 07òObÂe 6ùmäå1s—n è“ êïtjÅŸŒŸ`îžöÙq˜‰„ÏþóÖeY…މ–eÃâôÕoçîF465z`J ñᚇœt–‰´‰†ƒ´µ‚“𜈿¸²´Ž„æìƒ½¿¶€Œ¿¹ŠÊÏŽ³±Ž€ŸÇ „´‚o¿½ö67”½²‡“‡îì·´Ÿˆ¶0¶†vòƒ†7Œ²µv—Љ”žŒ”Îë…å4™Œã^i 1  02<7 07 <24  dEgA`pé—ânxÚ`œ‚œô€†ß„Їg”†L}޵ x€ƒ6…‹„ölñz˜€èsdN⌉œÔoo﵌€Ÿæ—ûa–´½¾·€ïûJú’Œ±²²¶‹‚–×Uè›èÿ’Ÿ1:83 Úõ´½¶ˆ‹´²¾¿³½°µ–Mý‘Ÿžæ÷ç“vŇб¶µ€›€™“„´‹‚š‘äcרââÑ 47636 51076=>=7 56 6=31>?44=3l61  3>6 ?%97 e} oÃlm73 híÝúê‘ß–…ƒ€„„ˆ¶³±˜snBþóøáí…„T~Ê™ŠµŒá x蔚µ¿¾²Ž™ž‹œ“·¹²ŽÿÇ”€´¾¥½Œà™‹¶´Ž¶¿¥ºˆof”óç臊ŒóÛ‚Pâ½§º´ìçµ½µ••³¤»mŽŒÈ¾¼ƒçý’’…·½¼tt‘Á|ä‹å 365[ÕC6<=1664 58$?66 y[6<2 2=–“q 71 01èü?= 031•„‘67瀄4 gäµ°Í✱²Ž”p÷„„Qsˆ¿¶03VW„€‘kjj‡¶¿½‰ënי𴵉šœÕhõ‡ˆê¹¤²Œe~žˆ·µ°±¶žqù…‚–Òj…·²ŒÒoøš–œ‡ˆ·„ÿ’ˆµ€î°¹½ŒçKÌz|–Œ—嘔nm•ޱˆf46žècvéàm ÂÒ ìÞ417 76 56€‚ó54 kbßMý àl }üG460 ç` Ð’“f 5ךëm åêÍ`nö›€Ÿø rìúÇßZTæà Ê€™ÛSh‡”™††œ’µ±‹œ‘Sþ›‰´Š††‰··‡…Œ´‹‹¶¶ŽçX芶ˆØb—†„Ìȇ…–ôèŽ¶Šøuㆷ´Œ“…´¶Œ„€Šˆ‡âC–‹²´ÇŸ™Á“|HëhnƒŒÇ1 äž4þ74`0>7d| =;54;2R4b02éœ|46?4zc z 3<5@€ã 76h’˜JÚïß FŒ€”‡W4kµ˜˜†‹ƒç ä‘™œ›Œ—ä31Ìã꜄™”p 4f˜‡…˜†‹ŽÍh…‹Š˜‰±°·ƒñf½¼¶Ž‰µ›˜€Š‹‚€±½·…JÀ‹ƒ›™†_kž†Ÿ–a‘ˆ²Ž‡Œ{ cë²¥‡ uoý”Zÿ€œ<20éù477~±Ÿ‚^45=14Ї™ÊÖæsçêoì´¿´i6<9Amí5;05 $3ø—ŸŒg93o 0?4`ñœÀã½·Œ‚„€±¶°³µƒ’”LlÒâ…‹Ž€¸¡¥¸¿Œ•Ëœ·¶¿¾°Œœ‚œ™„ŠŸë†ƒŽå $?65œ{4=  476%$<44^5  `…‹‰“Å =<> fâ›’T\’‚™ïŽƒ˜ˆ¶ˆ‰Ÿ”†…”c’ƒ·²¸¿¼·ŽŸÔA‰»º»´‘Ò|úóž‘€Ÿž`4=<0š‡‡‚Þ5>=57”áë ?<7ᘃ–ì Ód[íA‡ê a}–‚›Ÿfàîìqo’µŠ¿±ˆŽƒízU—µ‡ƒ…D|š‹¼µŽNS„޳¼³‚ÿÀ‚¶µéó 5oâ”oy÷W56Ÿ“Ç 2===?6kñjèÓi{i™‚„—5?;5i”„‡ÿlŸ·¶´oz…š±º¿Š†}7ɱ··½Ž‡€€³¶Ÿ ‡¶²º¸°à  –†›„„ŸêK 1= шˆìy 2?>5j1ä 35kg‹ƒ  çœ]xä‘ñO J¶½´‚胅avᛄ„†Š·èâ‚´µœxéž´¿¾¶•Yä•ꇷ‹„a³¶˜˜‡žê5Åã‘?=5jjMç›M5<6<6`f’d  …‚þ5ƒŒ”41215·±‹èÉŸ”tUƒ·µ±·Šƒ‹²¥¼æ52‘µ±±¼½·…Þqh²¹¶œ’‹²¾†’Q ‡¶±…ÿm604 atí‚G %'> qq`p =37560 è–k뀅ÿ =<3 ã€ë 16녕㟵±µ´‰ìÙ‡´¶µ¶±°€b}ôì럵±³ˆ‹µ´‹ujýÃ\·³·ƒâ燙oß„‡þ–…·€Ã51 Mœ’Ï55177 4nwŸ×h 3=0hg÷ØT 5 —ý–ÿèOûL刷‹„ýãs„‘“±³¹¶†gÒ™†‰µŒ›™—„—çãGE铇€···±†D䟕ÓQû›…czžß46   i 76 z™† 1 iåtýwcamjcúõœ„‚Š‹—Ã߀µ‰úú‡µ±µ÷ñc„½›ðéÀ´´²žoÛ†ÌççlŸ‰çdzh…n’“ÿj oú³·36íÞ·† 1z„ìfƒÍ…”œŒa BvSc5 4É= 575=êd5 ‡1>==Ù  =gz‘•Au—±‚€éêú†±±º³±“†Ž‡„ì’[·¼Šƒ¾¹¥¾»¹ˆƒ˜›š¶´²´‰Ìî䆿»¤¾´Œ²¿½¦²†65N…žâa’–á– ~lÑ‚°wŸ`a€•Œµ³ƒõ7êZÛ34〇?'; bw˜i47237 1íÜ <&&'<314 06?  2K—0$ ;3 úñ•glvÝÿ¾¿‰v414ÆÛá–¶š 4it•`‘ië°·Š4? ftŒ›·¼°ç”ò†ø“—…–Œ¼º½ŠëéI÷…µ°¶¾¤¥²€–š‰ˆž‹··½¹»±îí놀…³¥¥´‡ç“…•‡„ž‘€º¹·™ æ–“í•—œæzçÀ‡™‚€‡XÞ‹³·R eh „¶œ 614hc~Òï16 6307p470=40455|ÿ…m 02632 ž†r7054644Еœïažó4 h³´Ž÷ÞÊÙ‚²´™\bxàzgšƒòkciz€Ž‰†‡“–‡˜4•»¦¾ŠzR펴°Š˜Ÿ´½¾±ŠƒŽ‡€™â땈³½¶l}ç…™ãâšµŽ…ˆ†‹Š‚`†¼¸·Ý cû{k à–è`â`o”ޱƒÿgŒ•g–—“Éëëêv < À޳‘{4 MpÑ7 QuAX 8:;a’720 k0<11325’á65 OåO jE矚œz66¶´„Üš·´Ôkù“ž„„þNvý„‡e…œ„ŸächgÙŸˆµ¶‰ì Ї²³¶Ž™‡µ½¼µü‘‚´²²²³‘ìゆ‰œíÌfvŽŠ´š×Öà’„–ž€·°‚áÅâUu`ù‚Œ“ 4ošJ ù”œSx “ˆžignÉ—šŸÒWÊ•rÕmãà64öA|401äãn 76 íA 0165 Ö{2%2 y 47nýe7æâåccTsÓ˜Ÿ„ó\b{’•‡šƒ‹‚˜efú„€‰€oжˆœjgÞ„€‚†’Âhdÿ–‡š‘ðz…g´Ž½¶· ¢½³ºŽ0£Æ9®¶:7 ²D„‚Œ³GºŽ² “,½á-?9:à™‰²§¾§º¥¥µâ‘xm}<<232044 ”`}›²¿Ž±°°¹££¥¡¥‰¼Š´…d{206:%=3!!'#&:5 0=7nðçëÿ 04 “”“žÓq56<>8;':?'$%<9=>4 j´²ˆ…½§¹¶°³°²²¤´›™•€‹‹çnް°¸²µ„œ÷ÆØpaàv5 mÿ ‘¶±ˆŸé‡‹·‹´¸¡ §§¥¥¾»¤º§¿°‚™µ·²·‡œœqêœbÊ—a=<36 111ßD•`xhÇ•‘`lœ‚¶´·´ƒžå˜Œ·‚ə씲º¶ƒ˜…˜ç÷ Rcç;# '8$$&&%%6~ØäÅ–µ¾¤¸½²˜éµ±´’Cäo60<::&&'::2712&%$$38<><64 046141›´½½±·†™‹½¥¤±²ºº¡§´Š·Ž× ièõð64184 7pôñî‘v TúŠ»²°†‡¶ˆ±¾ŽŽ°²§»¤¡§¥¤¥²ƒq›‰·³º¾˜ih 29? Åj 3`Ë´³³±ø‡‰°°ÿáæ´°³´Œ±³µ·f74 g†³€––•ìëiuˆ›ùyâï9 !#&4 41964 ´·¾¾¹¦¤¦¡¼±˜ø‹Š¶°€„t73:!-,#"&&$%''013?!'?ø´–‹†€n Ó×x…€é{óòÝ69=4 ÷‚Ž‚‘Ž€š€jÒ™±³´ˆŽ±·P2> 4á72?2âø´Š·¶‰¾¥¾µêˆŽ¶¥¢£¦º¹¹„Ë TœGÕ 51<20aùƒ¶·²²Ž¶ˆ˜·±‰²º»¼¿·±Š„è2>5ìðq>04 œ±°Œˆ¿¶ƒŸám”ˆ‰½ŒŽ“bj4>=>0wbq` 5õ‰±Š°¿³Ž´—@bã—Šýö48'$ !8<0<01232 =%1Ó‡±·³½¶°µ“a[aš€ô=>'#"!8<217 5 䆷²´¿´¿¹°ˆ´’j‚³·Ÿ‡ì•ø 781om‘êZê€óë}é執¾¶°½º¾µ·æë𳉇…ƒü2 5x•…b’†‚劷´µŒŽ‹°³è\–˜‡ˆˆ´¶Š€Ÿ—45FBpxöåq6ƒÕœž€´”ЉüÃmeç—Œ•kp͆Ÿ—367V74Cúþƒ„ˆŸë cžšên 45 :=4 32:$97=4  š€ˆ‚Œ‡¶¶Žˆž„phŒƒµƒU s17‚´‚é Õ€„Žêâ≆bšêć’°ŽÒâfiœŒ‰ä†‡˜á삊ã–Œ³¼¤¿´‰•´°µµ±†ë¶µ²€óÔÿ52;'! #&??>%<m708>7 X1 …±Ž…µŒ weâÝð Ãüœ517 à‚‚°‹‡‚ˆ•Ì꘰¸¶–“½²¹¥½µ›…„ƒ½´ì‡ƒ–ƒ†Og±…–„¶å55rЇˆº‹†”ƒ“aVme373 =5897132  189:=ðˆ—EËåŒµŽ™ž½³‰˜ûp jvU€µéÇfYŒ´v544™±¿¶‹àŒë‘·ƒŒ–`”™µ¹½‡w|†¶³‚´IåçÐ é‡û6³ƒ2%?4`Û1765sõ12ó…à10}„ƒ‰ÿdgEÈ™‘bk5X€‹â6 K´²¶‰…·¶ŽŠ€îä@€ƒ‚çð‚‹¹³âè65iþ¶‰[ý„™lá쓞“ìØ˜Š´ó5Ÿ’˜Ïš‡˜Âz`ç5100Hç<:'241 ÿhgjî‹·†…Í™‚†Ç‘‘ž‘i@aã휌„޹¼°µàUꓞ’ð„úæöbËZ뇳³˜†…tô÷‚´¶ƒ€‚˜èœæöXQ“”íÿ 7<1 51970320??4eIVl4 Ѓ„㌋™b…†‡Ÿëähd³µ€†¶´„g‹²‹o—œŽ–Fœ±€™á›µÕfÓ›€Ž‰æ“âw—õë514…‰ó xk49>3äè 19< <::9@64A7o†¶´ƒúþô€µ‹çOÿ°¾´†ØF•‚‚èbc›¿¤»Žâ„°±Šâ}W´··ŒÔjç´·~m’‰Š†Ù}„·²°‡ôã”ãf47šŒ‚ñ 1<54<<5` 006?8;8š˜b727À| n·°Š‰éœïóûiæ…µ¶Š‹mÏŠ±Œ’K•нº½½±Ž„àZc^w´±´—Tžyq’б·˜çWidœŠ´·íñ“E ah==2=24Ðú1?3   =1 éã`lFšŠ‹‡éoä…µ†ìÒwñœ‰´³°ƒâÄ…‚·³³µ€î䟉±‹™Ó€¶±‰˜ej‘€†àÚkh–…•tlp`˜„€ø 00 ›ãa9<:‹·b7d4†”ˆ’\ ¿#¤m i„%ƒ4‘ÿ“4‚‘¶P™õþI…jUvš’ 07 Ñ jP ÷Œ„lŒê‰Œµ¤ºº¾¸¥¦¥¤§º¥º¥º»¿²¿Ÿ‚h>=%;=2>'& ?47 03 502335bmn𵳆“˜±¼ºº¾¼¿¤ ­¦½‹µ²²‡“…‰´†f =343$:;66>&&$90==% &;3?% ,#&8;' &$3 68 "&3 627lm475dœÜ~C¿º²‚ƒ°º¦¦¥¥º¥ ¢¡¹±³¤££¦»¿¤¢­ ¥±Œ‹²»º¿¶±½¿¹´›üä…·¶´ƒ’‰³¼¶—gêŸçdcv[11ý 4ë’â7<25 r=<04  5mFv6>3nð’š’èâcjÃ…ˆµˆ†²¾¹·™›Œ‹¶¶³¿¹»¥»½Š‹°½²¿¿¸º¥¥¾±‚‘霘‘ûå‘„ò 40=1757144>%%:;;:?16639;'! ':::$93169%$$$$'$';<6 568$%9674zððvIç’…·¼»²´„‡†Š±²¼¼¿¥¦¦¹¶·±²²·±²º¤§¤º¾¶ŽŒ¶¿¸¹¹»¦¡§¸³¶´€ˆŠ·½¹²eOðîþšžäf 5c—íh 706F…™á Ëž€†ŸÁ gô^X•‡Ž„šž• çê…µ·‹sìž’„…|4701çÛk 619;;?674   49$&'=173>;;;?26 h79;?5rŸŸìÁ„ƒƒ†Œ·±³ŠŒê鄎¼¤¥º¾¹¿¶‰†‰±¿¹¹»¸¼¼º¤¥²á•޽º¥»¾°µŠµˆ‡š†·¹»¼‹Œ¶¾²µ™ug޶¶Š’••[s•‡€—wLü˜œö3=7î—â51=0ò~ ëí18=5bððÝd 6 ï„I`yãœôH –‡€ïjNTég e——“Ýê„ä2=5QF 52<4éëo Åó121êžõ 566~4`W1997c à‚‘ÒŒ¶¶ˆ}jà‰²¼¶µ°±‹–÷í´°¶‹ŒŽ¶·Žåah퇈µ‹‰‚š…‡ƒŸóׇзЂа²´áêæ„´±´‚Œ´¶‚–@ä€‰ŽŠ‰Œ†š‡Žˆ˜o Ô„…žehOÿø {qríp565k}jgqlqacúGƒ›|e œ‡ jà1ùgˆ= —¹ =è$4æ šG” ßÚæÆxãš÷ < 47æ ?4 5991”gs4ƒ¶µ雘‰‚‘Ìƒš¶–…éíŶêýzŒw6#!'%>;%&#'=51?3= d—…‡³¡¥¤¿†¹¦¦¥§§¤ ­¯­¬¬¯­­¬¢¡¦¡£­¢¡³„…°¸¹‰èTô•”00  4;$? 2$""#'>:%'!# %16= †ñ47–´þ~€‰œõŸ´¾²µ™†‰½§º´âœ±¾¥ºˆ‘˜µŽŽ˜@s…´ˆð–‹ˆ^70åÖ7?61216 7%$>0410%!&< 7=$!'21?%$8?47:'3mj3>0cƒ‡Ù éýj隟‘w]…·¶ˆ„‘å„¿§¥²µ´±½¸¤»²¸¦¢¢¡§¸º¦¬¬¡»»¤¡£¢¢¤¼¥¦ ¦§º¹¤  º²±°´¶½°ƒÏlÚ›‚Œ•6  67 =;::?62$#!932?8& %008:9364 2:9=3=04798 22bxvÿ…╚„˜øaжƒóÔÕ‚›–€´´‰ŠŽ…â™ŒŠµ¶´‘ƒ±‰–{eý懀àh—ãØ\{h~32 47  44ËüLâþHH’è•™š†šð숂œšžîú…·´µ··ŠƒŠ†‚‰ˆ‹°¹°†µ¶·Š€–耿¿°Ž‚ƒŸƒƒé—ŒŠ€š††ží™œWùë651=3 52<5 <%8< dú5  âý[í”Ül—iU޼±æ膀ýgäµ³´€˜‡˜¶ŽÏã´´°ŽïgÚü”…žÆú†„žéîqÆŸ’44oŸµê0 sÒ 4 } 5438=zk ?<4 7Ûç[ÈÅb4œµ´ðfg‘ƒé{HæâÒ뜘‚›ü\MF†°³ŽŸö݇°·†òï…µ¶µ‚ް·˜Vdù™ˆ½±›ž‘ÿ—µ‹„â•Qï‚´µ€ƒžxk^Gã›bo˜{n•êuéR4miæånr”æ䂚]rxä„…Æ‘„ä c\]™ïetseð cö] =0QÖ  7 05m704”p hÅåꌓå¶µŒƒ‘“‰ƒê͆´ˆŽƒ˜Š±Œ˜›…”쇈·´‹€Øçˆ™gY†Žœçã‹›àgé…µ‰€ œ¶°‡S›œ‡˜Ûnbü\Ÿe b–…ädn~zn5îâózkçÎg]`E–…“Âáâ‡í|\…—Љ˜€Ž‡’UY’™x  10?22<33289136 0;2j†‚•÷^Ïž…JHÌ›„˜…†´°†‘Àœ‰±™‚…†“ãe׆›€‡„æigblM’ˆŽ„†µ‚·¾¿±µƒ›¶Šžñç–‡Ÿìc—ûo1 002?=5661665=>>145‡Œ‡óe쀂ébUöƒŠˆ‹‚‡žµ·Š‡{‡ŒŒ˜Ë•‡„êgnü‚€„™’Ôapoü—Ÿ‡žîˆ¼¿°´€•˜ŽŽ„‚‡’†ŸÙ‘—vB6?2 74 J12>=  4é˜ðê…„„‹ƒöƒ´Šƒƒ·½½´†êí“…š‚‚‡‚¶±ž4“‰€„…‘snfJlv•Œ¸¾´ŸÐ‡†šê÷›†Y 4h•þ0%&< 5715u 57  5’ï431eü–‡Š‚‡îÚ˜„ì’ƒŠ¾¤¾‚ça󇎊‚€¶ˆ™{rgg”„˜ƒ·Š„ÿjÂäîž‚‹·´´€“Ïûäš‚€ž‡µŽ‘k 5hxcÖó`56=<174=<7l÷êìÔk ꜇‹ˆ‚—Ô낈´±±µ¶±µ™an{ž€†ŠŒ“üÝ15è—ž…›„ƒ• bôœ‰ŽŒ‚Ÿgka…’‡†–“™”N< ß’j6;?154293ýêq<3 j534Œ‡u 5b—‹··€Bf‘ŠŠ†pù‰¿¤º³„ì…‡ŒŒ™äꈰ¿°—XŸ†œzМˆ±´—iñžãhbŸ‰µµŸpoAáž›sÔ…ˆ…f45 74à~ =<3505ÒíN316dÇ•…CbÎÂpC‘´›Ïðð—ízõ±¿¹¦²o ¶¿¥íðoç‚°²ã=v=§0Ûš= ¼3‚ò25†žèŒèŒA–…ñHísãœÕ Ð44uxãriP—†sÁ~‹€…‚±µ¶´žåiM˜ò] <4:;&=205'& $' -- #'>==326 5627ýwâîÁ„ˆ²³±¼º§¢­¡¦¡ §¤¤¤¤¤§¡ ¬¢¡§§§º°€°¹»º±°ŽŒ‹„—e囄•1993 jx ?82 6?:<6blržƒéaꊽ±‰äô•˜µŠ‰‡¶º¦»±·¼§§¹‰™‚´»¤¾ˆKc’±¿±‚•‹°³´š—–’œþ465úy9'%6 52:%%<108!&'>=$ ,"'17<'-,!>16:!!%11:$:<0=%'&'=4:&$6@ ðCkf•žêsiW¹¤º·›„‹¾¤¤¹¶¶°»¤º½´°¤  ¥¿½» ¯®¢¥°Š²¤ ¡º²³¼ºº¾³··´´¶Ž›ø™ˆ½²€`膆’àzk`z09= b3:';=4 1>9260=?26 45Äæg 30þœŸ›•ú•’…‡‡‚ˆ´Šƒ‡Œ°¼¶™˜¶½ºº¹²¶±°´‰Š´´Š…‡‚Ž‹„—õ—›˜æn 765 106 12:;8>=50?>==3164777  766 뙚ælbc`lØ‘†‡œ—“ƒ‡—ÀFô–‡´³³ìò’†š™”œ†ŽŠ‹€€†€Ž†àwd•ް³·‚—òäìžœäü𓃆„”’œƒ˜Íb’µ„ÞàémàÆCaMn57ä„€Oo윓O⌌€éœ‰’ò•‚µ°½¶‰‚Œ´°°Š„†‰·µ´¶·´´·¶·î¿±‚Ÿ†Œ…å\–™þhjgo65 631463;$%9375 0<<33?2k 51 ËägØÊ75ü‚ŠŽ•baé” 玱·‰‡˜…‡„áAо»±˜âµ½°ýq‚¼»³ˆŠ°°‚KöŠº§¥°Šº¥¼„‡½¥¸¶„ŽŠƒË7 ê·²Žï™2>7n†ˆ‡B{çc 32…ŠÊö˜76ƒ³·„\ø…˜ 5›·°^q¶10‘—Æ^Kq06’jÑ…ï2;2äŸT  <$:4mâ`17gS0%;7h“îl 775î“– xüh4>? ÙWmdh461‘…Ö‘›„ ižµ“°°„€Š†„´°³å¦3¦r”˜·»œ²½²°iŠì¶àŽŒ±µí½‡‰œ‘êb´sŠcäã7™‰€‚¾˜¶½¥¡¹¶²¥¤¤º¥¸§¦¦¼Ç—…ÉŒaBë>9016?>%2>%=8:$'>373—kn޵‹¾¸¤¤¿Ž»  §¼½±¼º³€Wc–—À od98>9062:':9<9;$"#$%8;' !%9% /,#'::&-#&<6<880Æ]—‹„@xœ°¼·„…†¶¸¥¾´µ»¦§§¥¸¾¤¡£¡¥ººº¦ ¦º¼¿º§¦¥³´¹»¾±‚€Š²¹½Œ—›‰²¾·˜Rj니éSðt65 6=?6c 171 m3<7 49'82042::0 664O\  a–ü”€ƒ…áhé·¼²°·Ž‰°¥¥¼±³½¼¤º¼±½ººº¤¥¼³¾§¤»½µ±²»¹·ƒŸ€†‚ŸWaáC4 53:%= 422=?<36=::;8<2=$!'$$!!#--!&'$%$'$88%%;=644776  623cÛþÕy‘—󑆎±²°°¿¹¾¼¼³Š¶¿¤¥¥§¤¤¤¤º½½¿¿¿¸§¦§¤¥¤¤¤¾¶´³»¥º»¹¹¹¼±‰…锋ޙž„†ƒ†B 4hif 40=?=611   166 |ÛGUŸ‘ÿj`Äáà“ž€Ž„õu‡Šƒšƒ°½·€„åwKúë蚌µ‹úmLÈú“øÛk6317566 7<8$$%9=??3='$<0?89>3 7<8$%=0?90q  cseÿƒ·‹àsš˜ž›°¹¸¼Žž·½²‰ƒ¶§  §¿°·°¾½¼²¿¸§¢£¹¶‹±²±¶·ˆˆ³¾¸§»Š•Ѷµƒš‡´¾¥±‡xo•›’ô}†¶·“ x44‘›à4?65抌q3Õ—þœ±¾µÜl›±´ë}°¥º³‚Ḇ¿·ž˜¶»¤º´”ë…²³‹„öú¸¥²OF—‹±ß‚²¹¾ƒM鎷Øš°¾µ–†ÿ·¶„k \”} m‡Œ…“ n„ójí‚·ã5Q”–Z ’‚™G5ð‘Îù‚ž` ï„€f噂ì ڛ㠑d44 Õs ˜‡`64€t zæI 5nÔ45 ` ÇBûÂÈçãýz“Žá㘃·´„Ÿ†€ƒ€‚‹ƒˆ½°‚›…Ÿµ°µˆŠ‹¶·Š¶‹™ƒ´‚Š—ÿa’•„ƒŒ‘h`[èÜilê—eçRÄþŸ“jCœágkî™Éjiâ–„›™ánd`bøÑcé€Óì–êF~n~뛀‘j`ãâbð‘Jl34 724 2?2644576 8&8 7=935  166 xäÂa 6 ~çéœg’ƒ†…Ál–‘æ÷œµ´µŸ p…‘aêµµ‡„í胘逎µ½¼³µžmô™‚·±µš‡Š´´¶´–—Œƒ‡ˆ‰‚³¤º·’C„´²³‹„‚°³±Š‡Åý‰‡úÊãPƒ½±†ü q‘ípsîÁ”çyLе‘e ?}›ôI^ë—`勊æm 34×kÁóúš›“ëqeÆKëdBޱ€’33 Ù  1242144Jð 225 di 6535 Zãåi0<1Ñ]~“‘ÑžågLc呚ŒŽñiŸ€˜få…î–âñ‚ˆ°¹¹´›œ›µ±·¶±ŽƒµŒ…€ùü€µ¿²‰ƒœDæïû±°·Ž—[šƒƒ”ß’…·Š›éåniá딓] m„úQFcid€‹‰ˆ…g톒íUomꘃ‡ÿW_ù5”€‡ƒpmêÐýž”Oß›€åüõz A\ï4542>0 77314 769$?g{76774 b0 191æicfije„…àƒîr}x‘†Š€Ëïîæ™Á‡µµµˆž_Ÿ‹·°³’‘´°¿²‰°¶´è‘Œ´²¼¾‹ü“޶±³…k™‹‰´±µ‚Š‹‰˜ebè·¿¿ˆkz’…Š´jkeœ¶‰ÃI“à~54d‘žïâk7ƒ€7é€Áæ‚”k`õ‰±’424äëxok 7àê–rx›÷54ÿœ‚pk7Ÿ‡ï @ÅiÍZ 1474ò53:?  505 1655 Ä„ù1> |æô6zweÒ ßúä™c5 f‡Œ”j|v󞚆ž‘웆íÁœŽ¶°†Jÿ†ƒ´¼¶‹ŠŒ’†¶·±¼³ˆ‚‚µ·„E‡··°µŒnŸ†£Žµá3g¯ò0«ñ%3 °01•J…²g¡˜°¾6,²-0>D3’qò“³»º§¸¤¥µ’¶´ç 6>?04121 {piƒ‹±±ºº»¤¡¥º ¥½º¼¥´ï 047=1%#%%$!$' $& !':'9650 ÂžŠŽµìàøìé„‚è”v{42<;>%$& &''&%'%3vø…´²¾¸¹¹³´·Š¿²‘œ‡˜‡„ˆ´‰¼¾±¿¹³‹±·´³ƒòˆ‡…™žÎsìå–JÛ‘›s`WŸ€ˆ´²¼¿»¥¦¤¹¹¸¤¤§§¦¦¡§¹¾½´€Å`f55<><;051Zjg{óýô™–˜è•“‘Œ´´··‰´¹·ìžÚÝöe 5 172<=2=?3?%%':9:;05χ‡ƒ…‚·´°½·±··ˆ‚e574392=44?2116<28>10326?=00==3 oRoX×”VÕ´ƒšµ·²‚†°·´°µŠ´Š‡…ŸqCg55 5 ãPÀäŸƒŠŒ½¼°°Ž±·µ³´€·Š½²‹°³¿º»¿¥½¹¥¸¹³¶Ž†µ€Ã 0<00520 êô€‡ž°‰ŠŠˆ²‹‹µŽŠ›—Êa”Ð`áÍm€ïÌS™”ÔžìámŸÃ   63572>23>;<=%<44•Z—›¹±¾¥¹¥¤½»´ˆë032<:'!#-#,!%$'<0 iëü›Ÿ‡™„âïj—zâÅŸz  xОDŸ{—…šµˆˆ´Š·ŠŒËip 41 cØŸ°µ³½²¦§§º¹§¾¼¿¹³²´°±‚‚þÊèôtêéezm ™ñ™Ž½·±½½±°¾²³·´·‚žñ   6M•‡í±ƒ´š˜@G†˜ƒ’w4==54 75 4 è‡êäèsã˜å€|77>:;::2010=<$:%65O‚…·Œˆµ†›†–Ãî| 019>>>675 4 4 6ý…Œ°ˆ¶›””ùµ‰€°°½´“„† mÂ쇟iךŒ¾³·½¤»²···†ˆ‰‰¶·¹·Žš‘ü‘œ„‰ŽëšøzEgÓž€¶½´‰´µ‚ƒ˜„‹šŠ±Šˆ°´¶ŠŸàmF’ŸyÑh ÷€ixƒàŒ„î fEdo›€”A~h4 43>8=5 4 }├úæÊ…œ”ã××ý 671447>3574<;:7 6<=5 nô–„„‹¶€ˆŠ³°¼´qèš¶Œd`1Ñûêê–˜’œ—–˜´µÿQœƒ˜„þÛƒæíë‡ì^˜“‘’d`÷æ“luòE™ç‘át†²¶·‰¸¥¤¥·¾±°º·³º¹¼°³±½µš–Ítƒžýë…å|…Ýa }vÊ ÔÑ`mG‘â‚€›±²³µ†â5 =00= = ==6=30|661hjè„ÊÂê`ÛL co<<8 !$'7 6 ?=7101;918$> R cg ´‹¶†€”åæzf4 låSiOj³°ƒ†òõŽ‚†Š´²‚Ž¥²‰´‰‡˜ÐG°ˆ‰„‹’‘‚ŽŠˆ·ˆ……€˜‰‚‹…y€´²´Š°°»º¼‰´Š°¿³°¸½‹Ÿ‘Uè…‡Žƒš™–’…ñ–…pûëˆ‰ŠšV|õ…†î’Z–lÒ„µ…ÇO 4 1z×i44n wWa5513<5tÖ–ò_—’åv”èš ?12'9>35 7?1 53754k÷‘úmïœÝúìë—žbpíf  eå™ô””ë…‹†”ꇅ„‹”Òé탘ꗀ„´¶‹Ž‚€ŒˆŠ‰‚‡ƒž„‰Žžà›Œèœ¶‡€šîŒŽˆ´†îƒ·¶šãšìž™”—•µ¶³°·Ž‚‹°´Š†œ‚›†€Ÿärh•øö Ckæðnh–Œí›™kÀâo 420 d{}o ~hvÚ 105263647lb 0706 6 ÕåûcXk bxþ“ôhSp ᇒþ–“Ú—Êꉚ랄šœd†±°·ŠµŽ´²‚‘RÄŒ°½¼¶µŠ‹‚úYê—霵³µ‹‹‘àÛe䔆‚†´³¶AzæS`W±¾¶‰ŒŠ›Sô†Œ‹³±½½±µ†–‘—rûŸ‰‹€„õ ZâÛàüi7 ~ÄÎð45fžŸë^küám—‘kk 4yoùk5 j 0=217554 5 Lj562>0kIbÐz ^œ’óïõj5337…ކŸ“Zò——€Ž‡‘€¶½¿½ŠœaÅ•|Y…ˆ½½±µ‹‚‚š˜‡··„€ŠŠ··gIà’€‚Ž´‹…žƒ‰†˜›…ƒ‹±°´Œ‚™õ]^Ê”ƒ¶Œ…‡Œ€ƒ…†Ÿ™›’‰µµŒŸëa47•ò]Ž€æ<3ÿŽœ¶f<Àaa 42354  Zn5=\i –5j“™|TNduú`IocM k 0671744000=?25 7=14<0 6;>56163  ô–뇵š™ç„µ½¶¶°Œ‹º¦¹´³±·Œ‚“ž´µŽ‰µ°¶‚Žƒä솕ô‰‚ˆŽ²¤§¼µˆ€ƒŠ‰˜‚·‹Ž·´µ·²±³¾³‚‹€ƒ‰‹ˆ‰„æE”Ÿ…’Êÿ˜…ódçHfBï“çŸ÷nt–ËbFéÇz }ÿmà  1=00376 j 75  6?<<=66074  0615 545=24 ïèkb惂ãïàð‚Š—ñÒê•–ee’„€‚Œµ‹Œ·¶µ³±€‡·‹ƒ”çæ–ö\뇌€’ž˜˜ˆµ…€´‰··‹„„ƒ‡˜—âÅ“€µ··Ž„ƒ‡Ž‰€‹¼½°²²¶°‹›êám嘂žVoxnVa”œšˆ‹žœóz45ÃûÇÜZfk”™“ž„ž†‚Ÿ  ì\cbÇúä–Hdè•a =83704 5sk 73 gSbÔÛj5?=00176 6?=55 iðn4=1417 dèüUo Àé…š˜‰³°··‰—àäP÷ž“熳¼³·›þ‘šƒŠµ°¿²´·µ…•ëf䃂‡•iKe샆†¶¹¹¿°‰ƒŒèµ°½¸¼‡•€€‰µ‚³»¿³°´ƒšùm„€ïbg—šœ†Fj 436IÙæ’òq MgК€ˆµŽ›™’ úë õæmPä”ëq 060>?6c437 ay}ë—áåk6>>6642<676DË43<<000nh~w€‹¶¶··°µ‹‹˜^]ៃ‚ˆ¶µ‡š’—‡ˆ‹‹³³‹µ·´ˆŒñramlò–XsÜaàŽ±°ˆ´½°±½°›ï›·±µŠµ¶±·‚›Ž´·²²°²¾·µ´‡‘KJnEzà•ýöÔ]—â  uï`w„†ë’‡›‡˜ç‘…m l sjÿìgjù{  1=5  42 kmœà 77 60  4 ib 50046rÀü}þý±²´…a‚¿¿±´†gm ² ¶¾7¤¡2´¯1“l½³4”ާ¤æ·² ˜»½ §3476ÿ ”Š˜¶¹£¤¥¤§¡¸™r•ü5 540765⌌Œ´±·²º§¿¥¤½·º ·´¸Œ·€ëa  112:511765ɔț‚µ›Š±½´Ž±¸»´‚…lo nh0=$&"/",#!'&;=&&$:;'$83a—|×å„H„ƒ…ß552911<<475 21 5 îëßa’çdpkwö†‚†µ²¿½½º¤¡§ £¢ ¥º¸¥¾½°±¿±€œ…ýÀ  507ÑqœŠ¹¾±³³¿½³±²¼¸¾¼¥§§¸±¿¥»½³‹³¤¸³¹¹°·‚´‹ŒêN––079%&!&&$&'<<2?%?d†µ²³¼»²±³±¹½¶µ´µ´‰úMe45 5k20''$=7<$?615>1 x•r·‚왓‘j|îÄ›5>>;>219412gÈ…PƒŒžD45 0> 372%$%05 n‡ñíÿÍÿ‡‰º¸¼¼º¾°‹˜‹’›žš†€}=>53xì¶€ê•˜Š€·¼¿¤¥°¾¼²êÒáLß‘‡•mkÄ4 }ï铈¾¹¼µ‹Ž²¥¾¾¥»»±¿ºŠŠcž‹‰ƒZŸè†if5û…ÜÑà’–íúÚÜ…€„´Ž„…Ji2 5455 54=9?:;85”Ø•‚™‘‰Ž±³³»¸³Š·¶šñ 51 1:' !!# $>=611c ãç’ê€Rn67477 6?44 mjâcc×K“t¶šˆµƒ–žó–è‘y†Šùjc™Ÿ™„†€…ˆŽ–뛆‹·‚ˆ‹¶‰š—ƒž†œŸ„·±Öœ—ï„èÛš›ƒƒ‡Žú·¹€´›·¼Œ¸¼²¾·³¶±±›Ÿ†‚޶‡€ž‡VÄF` _bjbÉmbákúÔkqû••†˜“Skì–ó i‡ìSå43513 4025542ù‰ƒb\žpˆ’—x—`ç±&½4å4“k$r? =Hò }e ÿw× 1010=2 1mícÚ´²µ¿³±¶¶¿½²´¶°Š±·¤¶¤º¼¿·¾ƒ†áÆw21=9309>>??2?8<< KÚw™…‡ŒŠ±µ¼»²½¼¾½°²²¼³´°°µ‰ƒëGføæ`ic  68;%%<006403=;;%821 3<98;$89:;>9%>654 m`A˜Ž·°¶°¸¼²²³¶°¼»¥¹¸¹¹½½½°³½¼¹¥¤¦¦¥º»§¡¡¡¦¦¥¥¦¤¥º¹±µ´°´Œ‹îà}7 5 10631<><%;%;:;%$$'%8?>?<35555=?<23<0320766144hõ–ò×…†“—‘瞀ƒµµ…“æëá…‚µ±½²°²·²º¤¥¥¥»¥§§§§¤»¸¤¡¡§§§§¥¾²µˆ‹Š€‚ž˜–ýSÁç 46=<>;93761666 52?>?8;89:;?<8%%$$>===07 4 lyßlÄyhrÄ“™ƒŠŒ´³¿²¶¶±³°³³°°¼¸»½¾¾¼²²½´Š‰Œ›”醟’’ëéö“…óAãá—ä“}i 45Ñ”ù 6 md_‘’œš‚´µˆ„Ž‹ƒ†‡œæë•ú~Gᔞ˜Ÿ”–ˆ¶¶‚›€€Œ€ž‘€Œ‚ƒ‰ƒœššïÙÿãYkh 76 5  51645398<012740 7 ûto—…ƒŠ‚„ŒŠáÓCõ”àÔÅ„‡ƒ€‡†„˜€‰Œ€ˆ‰Žµ‰µ¶µ‘™äqåvhök hN€·ˆ‹ƒŽŽŸÃ”îà×ô|óøeFüîid—…„…QOG   32661 57noÏÇ隘˜……š›”o”áÁòsÃÀ–’“…™ž™š…”îæ™„€‰‡‡‚›æ•ìÊ {dr|áögî“ƒŽŒ‰‚Œ†Ÿ€€æýëwïâ‘èZê™òzñîG 664 72>161 45MàüØšˆ‹·Œœ•”îô“’É““—Ÿ†„š†…ê›™‚Š˜Œ´‹‚„†µ·Œ„€œŸïkQêá㟇‰Šµ†ŒµŒŒ€†”öôicehyçílb‘Ÿíâos 5 01?20<>?<=07=90 u’Ÿèœ‡íÿ“’–óÝaÿ–Ýc˜šë’áà—ˆ‰žƒŽŒ·¶´Œ‰‰ƒµ´Š±‰…˜…ŸôkdQ{–ðõùO‘‰´ƒ‰ˆ´µ‰µŽ†–ŸàÕçWÔzrÜ“úQh` 5  550922>8<247<>6 6171 Ò畚‚†‡…ìꀖ”††â鞘š„àæ…—[œŠŽ‹€µŒš„ƒŒµŠ‘ž›‘•éQ~v`àÎpé”ꜛ‚€˜ƒ±µ•–äïypÂyuùfy54  7356><0711005515LvNó|€û’„Œ“‘‡˜è™š…â皊‡†‰Œ‚„†´‹…Žƒ„„ãð—ïsk`pXÆ}A—””ꇂ€Ž·‰›ƒžžîÉøëÊzQàþ76CûL 0 <ó66uÀé2ée5 4 gcY`ûTÑ”òÔliõïZšè낎—…Šˆ„šµŠš‘·ƒ´ýalHäîêï< 9;3:%%06|“ŠŒŸ‡ŸæL´¶»¦¸º¸°‹—J🊥°·°‹ƒ Õו‡ã2<;;$<%& &$?ï™áŠêëÿçõÒU€–·²¼¼¹ˆ·µ‚´ñúŸ‘°³·€€Ž›ÓióRèJ•7121 ?2=713 fž˜‡“æQ…ÉÆxž„³°¾±„ƒ‡hll…ˆ·Š›„š•à›ug 12 0?2614|”„çk“•”dè…–ŽŠ°·µ•åzgeC„н¶å†…ƒàlpsú”{Âb246446 4‘µíÈê’ÏJk‘„…†°±±ƒ˜Ejcg{Óµ†Ÿ—œï\hYÝÈ263 07  ðŽ•Á„•Üþ”„›‹´²‰…„މÚùWlfe†´ìㆈ“ÉÇRÓ 0 0 4 p†áUA…€yáãÓ„ŸŸ¿¾±€ŸŒ†íJl†ˆ´›•…]TeSá=6 53245DžŒám‚œseaŸë°¼¶‚î†ïûtihzR‡‹Ž™éŽ€šDkzú 05  55 „Œ•rìèëç”’šœç†µ¹¼‰›Ž‰ŸÕygeŒ‰‡ï뙓ìÙý4y 574 4777 Äš•oKc]åØ~˜†…µ½³±‹ˆŽšohfÜZfØ„…‡‡“–âŸÔrÝáu01 534 d’•|d]ÿ”œ‰¶±´‰†€„Ùyyügy›‚ž“÷•š†šlAæi 747545355î‚’}eé’ÁÓ‹„†¶½½Š††ƒðaã›ÙÀâ|ÙêjûP  16 4sëÙî„äÆšƒƒ‡†Œ´°´‰ƒŽžøîœBõš„œùñ–„çl}e  144  ë˜ð|ä•x܆ނ‡€·³²¶Ž†‡Ïú‡‡’Û}‘åvcå~ùå 01 AUokáéVû„ˆŽš†ƒ´·‚…ŽW‘‡˜QqK眜Î`ß–ïqÓ k 1 ]òF–æñ˜ˆŽš›€µ³·ˆ‹Â™‰…Ëñõ埄ãhkRRbøD k4 4ÊPГäv—‰†„…´´ƒ‹´žA囜îêðX—›úfsîãhm j5 Úùh™›x€ŸŸŸþfÁ”˜~Þ”{üËúiâöÛ“ŸQxv‡ƒç‡äò‡„ûxƒ‹œÊã“øï  714 33<|åx—dl`c Ö–³¾¥¦¤¹§¦½ƒ°´˜€²±Š¶½¿¹»¾±• 2š‚šÁâ™êƒ€óÏðRzP—àÝn ?<>'20743ûMb 3<238864<1×úc “–ûJeGkgnmx……µ·³½²°·³¹¿·Œ€µƒ‚„–…›€ƒˆ´†–‡àòûq’Žˆ›™àfÏ„™à”žžçreð}{ëÅ1  4OÄJú4443<47 dy霖ìñíÀhGüa|ij]mt臃·±³·ˆ½¸½µƒŽ¶·´…ý’™õw♇œà™‘v熑nIü–„ƒ‘þ‘•ÚuÉ÷éþüGyìb 575aK 7iÉðJ—bfž—Å~jcUJŒ€…š‰·ˆµ°²°´‰‰´¶²¶žƒšXfâ“[ÛîAá…äyÝ”úö€‰îC“–™šuÝâgkö_  o 5   e5 goŸ…Îî–åè~’ñcciYÐÁ”‚Ÿ€¶³¶±¶¶µŠ²¹½´ƒŒ‹ƒž—ìqæ“UÚžœMóx•‹€ìៜ€‰„pXåM 5kuck  4  kkàš•bdîêGä„ËË›BhqqFzí…æÅ„‹·¶±³µ¶½¼³Š‹µ·‰ƒ•’„G퀇äpqlw›†—s韕‡†ïïš`nz 205o4 577 üÈs–œtÇ…™Y–›zÿ”æå•ÇlodMlЙœš€´ˆ‡‰±¼µ™‰³°±·´µ‰†‘„›ˆ†˜“Èa—lz‘Ÿ•ž…í–Måvt~Xù 73455 1175lßCjfààÍ–ï÷r펃ýôŸ–”šÅgþþäœn…µ–ý˜¶¶„™…¶²²‹µŠ´·›‚Žˆ„†üùš†Óìþ燒xi’Ž–ý›úmlÜ 41144 514 56E52ipl 5olL—ýLë“䌀–{Ê„Š·‚VÁt S‚þËi…ˆ‚†`@…·½‚€´‹ˆ¿±Œ†lùµ±¼¹n4¡Œ”„$ ­”%¬†!03·9a˜´e ¥·ñŽ,²ð,:&%dNá’´¿½¶ƒ¾¾az 73<'$&$9$&:<64Å–ú—¿¿š±¹µ‚¥¤¶¦¤±¿¸¢§½¹²€ŒŠçu774:= b‘—‡½¹¹¥°³±Š”á—    644 >:''$&%!'$&&%<'$38<>åbü‰Š±±¿¥¤¹°†²¸¹¿Š‚Ž‹‹ðœ~e℟²—郴²˜—éì’RØagzJdÙxÛ䊌††·°¾¸¹¸¼¦¡§½½»´ƒ]ek 53<%$38&%$>2:;==2364liWøj}ƒ‚ˆž‹½¶‚±‹†½¿Ž´¹³†ƒ…Èž˜D4  710 4d1’€™€³°°»»¥¥¥ º¾³¼°¥¹±·°¾…íÎïa614?99%88>?>4?116  9=9<40aauÈa„`ôµ°´¥¾½º¸±¸·Š²ÎÎä > j>82 22=4Vk5i’•å‘ù€·‡Œ‡ž·‚‡™ñ°ŽŠ†´°±´µ‹Š³ŽŸ´´¤±²¥°ƒŠ…Ì638:$%$%&&':%%217?<5h–†·Ÿƒ‹žFA‹ˆõ킎—m”ˆŒä}…å×mžÃd~ zègv67 4üèfz‹Œ·°š²¾¤¤¹£¢¤¥¸¸§µ¼¹¶þ€q ?&$$=8!&>?<20Óç–ŠÆ„†‹Ÿš…–à‘ã45<97 l“‹Âà€´¥’€ŽˆèdëèŒ?71 d4œZ„‚´·‚„´¿¼º¾¼¥¸¤á·º¤¼‰Ž„ÇQ~÷5 b1 ? 5 ˜‚Aú˜øˆŠÛERŠ“Çw˜ç6576636?%=39 05Îhñƒ¶‡Ž¼‡´Žˆ„…ž‹š†IÉ|= ?3k`mÈh›³††¶¸½³´¿ºº·¾Šš‡€ˆ†f1 4Ê h_‡šˆ™ë—€Ž¶´±´µ´Œ€™‚Æ{l 4<0!!!;: %?2>;80q†ƒ¶‚Œ¶°¿µ†¸µ“…˜˜ƒx55175 昖‹‹³´´»¹·³¤¼¶²¶±‰¶Œ“„‡‡“Jr1 …‘ {g7Á‘7}ž†—l‡ìáâmg ãì<7n=4? 14 6Ùlœêpƒ—Œ™™°ô’€Òš’˜Xèûdíbi’™„•Ÿ…†“ˆ¶Œƒ„°ŽèˆüŠé`‡›ï—„胅\ŸµÜ·šŸ‰ AšÝx 4=6uc5Jkwì›…K·±äú”µ„Œ…™g4d›ša46042 3b \bÅðó—现‡´µŠ•ƒ‘‡‚Ÿ“˜€ 30  00  Hf蜌ˆâs›˜Í˜Ë±½…¾µ‡dÐÜtc†—•y’’ÌOÂ10 5Iõ>uñ`oëµ·`â섆jÉ…àèÿ—æaWã‚GmfÜìÑeOœIcwæpšœpî m…²— ×^…g ã[ajÎECÎc…†Á‡Šæéµ·„þ‰‡‡Ÿm„ïkÏyoýxk70le fI–ha“€ì`J÷äàŠ³€—œ€··Œ€š†âmÑÿbm 4 7 {WŸàm÷–€…ž…–†‡†ï‰€‚±¶‹€…ŽŽèéñgp    yjwÅ—™œ˜€›††‚ï„€šŠ˜Š‚ŽŠŒŒ‚†W`Zn   5 dlr‡‰„†’”ššîè†€šž‡‰‰µ´žŒ¶“ãìôd  77bèÃí˜ìœ…”ž‡™žêã‚›‘š·‹µ·´™š˜Yy7   \–‘—ù††˜…†˜é…€…ƒ†‹¶µ‰‰·¶‹‚š’ú`445  óônï”…œ˜ž›€ƒ€„ƒ‚ƒ„ƒ†‰‹´·ˆ‡€ëo51 5    g\ÝSË–„Ÿ•€€™‡™…„†š’‡Œ‚Ž´ˆ‰††…ìA    îfꛕøç”’‡‡‹Ÿ„›Žˆž‡¶‰Œ›„“fiù 5   rvYcÈ_Ÿ”‘–ꆑ…„‘ƒ„›‹€–œ‰oÇìönhbg|a^—ê}據͇™“曞Œ‡úƒŽ‰’fá²³€†±ÉÀ6Œ·…À–æC¾ ¥j x4³ Z‚†7žÔƒdMÝ âçîu“Ó—Åë…•„ŠŽ°–Š€µ¾µ’Œ³‘á”Ùöb‘òäæ–ä 51%06:&-"" " !#!$$%;:<6’„„‚µ²¶½¾²»¤£¢¢¬¬¯­­¬ ¦¦¤§¥º¤º¹¾º¹··²¼¿¼¼¾¼¹³³¶€èþSj52><13?8172<24137636 565 55 jtïŸ˜šŽŽŠ°³³°²²¼²½¾³³½¾»¥¤¤»¹¤ ¡§¦¡ §¤¤¤¥ºº½²¿¾¿³²°¶‰´¶¶š„›…•–ñyG 511230=8:::8><8$&%:$'&$'$'&&'?<%'%20?>989<3>>306 AáΗ€„èà–›ˆ·Š´³¼½¼»¸¼½»º¸¸¤¤¥ºº»¼¾º¹¶µ±²½°±¶´·½¿³±¼¿²³°°ŠŒŸÜüœ›– 16403161<21100455 74 604 4 16674 S–‘Žƒ„’Pm䃂ˆ±¼½¸º¶—txÛç±½½¶‰ˆŽ‡ïdO€ˆ¶ˆš„·Ž€³¿´•j fëÕ18>5601106765  8$9?8$9n7044305 ù†ž…³¾‹kÆ›žƒ·±°¶Š‚š€°»½µ´½²±¼ºº¥¥ ¢¤°ŽŽŠŒ²¥»²Œ€‰€‘‹Ž„†æî‡€›ë€²±“ 04Èï 2?1543<><<<27 Zh7' %=<92ô=;?32=2kRßÿ‘ŸaûÐ õ”²¿·„—‡‚‡~ò€ˆ€¶½²µ„“–‚±¶€ö”‚€ƒŽ·³°¹¥¾·ŠŠìdnã·±Ž˜…šäâ…d 76gzx =99>=657 2> 1;;0710 n…„àÞ{44ž†Ž·ŠƒŸ‚´š•„œ“Ÿ˜´´Ž‚´½½½µÝ“……޲²‹Œ´—}†€‡“ƒŒ€ü“‹³¿´Œçabo˜´’˜à1=4h}  aÕ æý>90723`mDr3%;25 CìÒî‡xqîÒ鉲»´Ð℘œ„·ë´Š¾5¥gа1û»2}‹ž¦ŒŽ0‘ä…j…}î“‚‡úï±™Ø40‡4”½· 5tSüd‘„‚µì•Š·€ ƒ·³óa271;? <%$><%%; <:52>Á| €¿±š´Š°°¶¸¦§¤¦¬¬­­­££¬£ ¤¹»§¦¥»¥§¤¼†ï‡œj5 42:<08!" ##!&$& " ## !$& ''%8=6  Âñf消˜–žî„´´½½¼½¼¿¾¤¦¦¤§¥¥¾¾¤¦§¸º¤¡ ¥¾²¼½ˆµ²¹¿±µ†ƒ‹ƒ··ƒ”ædi 42=>$8?65?%;8<9<16=$&%>8:<389>0 9'%$'%=7 541 üg ïWh›´·ˆ††‡ˆ½º¿½¾¾¿¸¤¡£ º¾¥¤¥§  §¤§ ¢¬ ¦¤½³¿¤¤º»¹¾½··¹¸¶„ò]ÇaóX5b19:$;32989%':?0<$&'%$ !%%&#!:>9??;'&:274304725n e›€z{šŒŠ±Š€•ꃰ°¶³¿¿·¶¸§¦¾³²»¥½¼º¦¤³³¸§»¥§¼Š‡‡†Š±ˆˆƒ]ìõKfÏtÛ^49$?3775 2360336501 4n•‘` óï’öÁN’‰‹†Ÿ„Œ‚ƒ‚ˆ·Šƒ´´°³±•ï”´±‹ˆµˆ·³´´Šš´‰„‹žÎEN…yj7314  711 02><162=01<><25 6=<<%%<4 65Ùöð˜éôø–íÕ‡€…†™ÀrP“‡´°·±µ±°±½±°°°º¸¸¹¿½²¿±°»º²µ±¶µµ±·¼¥¿·´¹³·¶€††€„Š‘ng^ 506  422 631  21 40451601 46 dk[”i h™ƒò|lqjÿh\—]üŸ‰‡ãŽ¿¶bJƒ†‚ŒŠ½³€òŸ´´‡š†…š˜Œ·ƒ˜‚ˆ–·‰ñ~òSCÚ……CH 0i qÓ64 nÂ} a 5765knri˜“ô Ü““žƒ„Ÿë‡…èÅõ‘[ö‚‰´Šˆ‡›ˆ±±Ž‡™‡’´·¶°°†µƒ…ƒ‡äwᄎšíâ÷IœØ74c   6603eCD hÿáÞL—Ïaéÿßã‘„‡„—yC€øuælŸ€œšŒž„åëš”p{€ˆ‡imš·ˆ€çe š·¼·š‘„Q–›…é •eí•ç6dÌü 0hç‘…”žƒc 5p–â ìy  oå´ƒŒ····…Ž·Š„Ÿ´¹¤ºŠ‡‹½Œv7<:%;2176l0:<636005á”ô›šì~ äú╊±·Š‹´Š“ýꌳµ…†·µìï†È59<35765 lÉq ßëÍnìeß¶‰âßÇ™‡‘ˆ·‚—€‡‚Š´Ž„††·¶ïxf–šå >5 4 5 0 Й–ò—–”ú•AmnK톎놳„‘‡ŸŸé޵ˆƒ·•ÜåÖ 1 71k  >3\çŒ·Š‰„â`g›öd’€œ°¿ˆŽ••‚¹°„™–xùj155031Å09 J™“–ãðÚõƒžžŽŒ‹‰°µ’€Û`ž”tƒ‡ˆ‰‚Ÿ  0417 hf’ k`aûÌôòçãeæ|f…™™âó‡éc—…Óá”–Âô„Òq—÷lhhc“€–•—a 4 476  5㓚Ÿ†„ùnY÷𷱉д…€ˆ‘bQh˜†à˜·ƒž…K @}Ö–bz 54=7 f€‹‹³µ€–Æ4ìŠ‹Š²¼°±³ƒeúhfƒˆ·…èâï{ põg45c슶Œ‹‰›ããDƒ¶²°³²Šƒí lÑéë„™þ×lf01225 MAØÀUŸ†Ÿ“V”„…•m°µŒœ›…pkZúž™“‚µŒ•Ç 6 žÄ’Å{àëâõñâÉÑ”œˆ¶ŽˆŒ‡˜™‡×vù‚á oÍòt 4570<<= Róíçç’ž“Âðïvi–š…‰‚µ±°·Ž‰žýó]lß™çPPkcÁdg12 `ɃˆƒEIZ⛞‡…޼°³½·‰„•äëîà”e—îdtbiñ Ü…›ˆ›•göþ”žç͇ˆ´±´¶ˆùfbze Fïišelçì ÷Þ„·‚ˆÈ䌉ð螉µŽ´·—ÆìT „‡Yægç iYVôöei åjg„‰™Ö›Š‡š†zð‚š‡‚жƒ‡ŸàèB7 jQ•îk–ì ñ“•LUœé ne™‚€‚„ŠŽ…w—›’—r–½´Ž‰°‚77h“6Ú{’µà>¾;Ì95´1‹Ì‡€?0õc›]™Ñ²Ÿ\‡ =JštÿŸúŸc„…¼³§ºº·°²°´ðø…’›µ´½³½Ž =3&?&!0>:$;! #,-/-%%$?=4576éâ玴¹½°¶³¼±¸º¤  ¦¥§¦£¢£§¹¥º¸¤¤¸±³¸¼¿º¤¥¥¿—Oç}Ò nÐm<$%$ !$& '%%$$92:&%:< 1655e{ 7flgfœN„ŠŽ°°±¹¤¹²¸¤¥¸¾¼³°²²¾»°ˆ½¸Ž‡±ŒâŽœÃ¼Žƒ¶…”—rkzæê›µ‰Ð›š 6 <2123Ëo72?%$%':9?<=611>:60::3 ÷ga 1049:047 þàÖ†ìÏ”áqޱ¶²»§¦££¥¹º°µ²·‚±¥§º¦¢§¤£ ¿¶½°·¶¼³°¸¤¥»¸¤¹½³‰žƒ´‰š€·ö\a 677?:>234 420779&!# "!%$;7 =82?:$'&#&><052:99$%84@‡˜æ€‚š•û’›‰šŠ½¼½³¼¾½¿±´´Œ´±³¼½¾§¥¸¹±ˆ¶¶€€ŒŒ‹¶»¤¤¤¤¦¡¸¾±Œ™•ÔR…‡žïÚl 7%:<>;=55i70337 zþnn041 gndçÊý…… nWÂjÿ—“‰··Šãè@·¿°µ±´éžg”휋ƒˆ…˜æagæêã‹„Ÿšƒ€343?=12827<1=%:89%%>14zžžÿd hL“ç\ähnXÆÚ…¶·¶¿¸º¿¼´†„†‹´‹´··µ´µ‡ŽŒ“›†„™³³¶Ž²º¤¥±°Šš†…‡ˆŠµŠ´‡ƒ‰Š—[þe~çdyÿ—ëh 0;:8<2761 7 198750 }hb„›HÅ4575   mã™ÜÜ›Žˆ‚€fdI’îábj”œåÅ|‡Ž€‚±¶±½½½¼¾¶††‹šš¶±°€Ž˜xkcsypËë5fn 4 7467  k`˜Äí˜dhñtþa`ÿRñ÷‘ØúìÊfùŒrƒˆŸqD–‘çöå”_Wc•‡íí´¶‡ã†½´‚´µ…ц¶³±†‰‡Š™ëémDk~œç ƒà k7ç˜xÆgb e}[ä“ùb•yn þãodîêz dçðNpb —ñl”µ‹ƒˆaâô›b}¥!¹†Œ¼à‘æ5Œá·´‡šlŽîJa†–Ùÿ†‘qí }·g…—•„‚‰”펶‹¾¼½½¼°¶±²‡ýù77666?=9?88%;9:><>$ #!!-"$ ë°º»¿§¡¦§¡¡¡­¦¥¦ ¡£¢­¬¬¡§¥¥¾½³±‚‚´µ´Œ™Ÿo4b 6 443?;&'$$& ;670=15=$8<%'%06=0644542 \㟱‡š…’œƒ‰Š„œƒ´•´½‚¼¿¿½½¦ §¼¤¡§¤¤¤§¤¸¿¹¸ˆ”‰°ˆ‡´·Œ†‡ƒ…e x=2 23 1>4 8!%9::$:>=>=5553  2:77 767>0 <:ko~{•à…ƒtdC†ˆ„†±²ˆ´¥£££¤¤£ ¤¤¡¡§¡£ ¡£¡¡§¹¸¤§»¸§º±´¶´¼°“Óë”  7538?>9643?217 540=%$$$%%923236508&&2>'$$:31774 4707 |ǓԵ‚Œ‚°º¸¿¥ ¡¹½º¥¸²¶¼¥¥¾¥§¥º¤¼°²²½¿°†‡¶·œŸ·±’{Äûé77kbvÜ uëRžžÂ>>7 o›Ÿ 3777 êâ̇hTe61 gü†Œ‡î…ˆ…’‘™Ž‰˜‘·¹½·¹º²±µ´‰Jc“‚Œ‹¶¶ŠŽ‹šQiG 05 f =32' '?17 i 75 b‘†á6215hꇒçÞgjgã“·‰Ÿ\á–킳»ºº¿¾¥¿¶Š½¹°±³½¥¦¦§§¤¶Žµ…„š±¿¿²´ƒœh 5571iI44503<9< t•áàûÓCzÈ›…èËùh51<2  gfzh3>836ak}ö{425h”†°°¶¶¶µ‚…rÒŒ´‰‚ˆ±³¿¹³°´‘têÇ㙟„€„šëþc 627 –’•›œ j𚃊´‚†›uwêÆkž‘›‘{ 1  07zc 5<2œƒ€†…klÀQYžƒ¶³´±½°´³´œÜa”‚Šƒ€·±±³³Š…äÃanói 3%%7zÕ•”›˜– ``qæè™‹±··´´·ƒ\퓆Œ€·r46vÇlg1=314 eqiàŸJwÐëÀ󀂃µ¾‹Ž‚žíà‘æ’†`q‹»±R}nq–loa–”àŒ 5KûÁ@4 ý‘‘“‹˜;!'0 0]t  bxe†7 „µ·»¾ŠŸ›µ‹Œ‡ú˜µ¶Œû —±ˆãžšœâÅç=?bš 7Xä6'1€Œ 6³z:%°·j ‚±¶›Æ·¿Žë’qûüŽ·‹¶¼µ5Œµ”6æi ?:=ï oyh?аš Œ½ž½¿€¼¹‡µ¥› ’°¶ûi‡²´À  é01 ëî4?C‰‡6„µŒ껦ˆ1Í´45b€¶³¶‡ß圄”ß¼³ 9“„V < …–20÷à |›nJ‰œi–a ¦³r|…’–‡³²ûþ°Œ Ú†“Çfmš’0;Œž:'‘66?6šë嵂lùƒ˜žŸ‡›óá|nœ¿‡7‰¿·óÛ°½CXûЊŒ 7ó•5%7êt “{5 ñŒ—û‰·‹¶·žtuн²´ŒŒÐÌ›ƒèyha`áÞozD›òA  1  6nmŒ‘™Š´–“䂊˜I“ûjS„…e∄—˜ÕÓ™67Ùy 4  b‘ä•€ˆ‹‰R‡¶´†¶¶ƒ†¶¶™‘àœýzù—ômjöxaÖæ†é]làïcÞè|oò„_û’’ÀWž~cö‡…ìlËxZàBþ‡öÅÀ 77Q†È 5oœ•47`Òí•‹ˆ˜„‚‰‹Œ…‡††Œµ·Š‹‡€•Mc ôz Íëe 6xxòÞbn÷õiøØáXúæigœáÿ„‚çz鉌”Ü_‘æ@zJnlmcA—æû’–šŒ…镇ƒ„™„ƒ†›äþ‚€˜…‘ä–†šéœœž”V„‘‘ìÜi`o   `ßãõZÝý÷ñçìaa oìuhO𚊀–šƒŽ€š…˜—rnadoòê„‚€„™€‹´¶¶‹´·ƒ€‰‘ž‘ïsäåUïA~u|EagôÜzË—þkÐTegøáÏp uòE‘õ—<5m¤Ù<þ¡9®d:± 6`ÀŠº|¤æŒ¼#¿!7>d5;âõ“‚½¤§¤²¥ ¹˜ƒ„O 46 faitúž…äµ±Œ¿µ‡§°Ÿ´¾ˆû`53!!!"''$%9;:><206o•°±¿±½²‹‹‰·°¼¤§¥¡§§¥¿¿Œˆ‚бµ¼¤¦°— 5::$'94`pb289 O»¦¦§¾±‹âk šƒŽ€´‹žo30܆‰··• 3'"#?1 c0&#,- $2 ’ƒ“ 50<=4°¸¸¥§»²™Ÿ‚·²¼¤§¡¤³…5ÿ›†ä5=%&% ž·‚œb–憴½¶‚Ììecã—‹‹Žµ°¾¸±ì”ýz‡†‹²°µîsÅb709;?>1?$# '!&%?<;;<^›°³¹¤¥§º³´‰¶¿½º§½œt 7aÍž“•î $%2<c‚¶˜û6=0 —Ž‹¼¿¤§°êä‚·»§§£¼±´…ïõ€ˆ·¶±½0$'&247òV6$&!%'>06î 3347R‘Ž´˜’obEŸÃ†±¿¤¼‹…•ý’—´¾»¥¿³ì 473 ã2;8&;24p”‡˜—è·ˆ¶¶²¦§£¡º²‚œÿoç–°‰˜‚álÑ蜇ê÷4ä}9!$'&:8;%< v43mâ´²½§²³¾´°²½¤±°³¾´Œ‡1$;<4 2=2?$<3qx€ˆ¹¶¹°‚“÷³»»¥³‚´‹•â…üÁcœ”’æk1‘´°€_“ì}Ðëb <>3=133=<<=1 7ö„†³±¶€·éÆ™µµˆ›‘šÂ„ê74167b 244äjDˆ²°¸±œˆˆ¸¸»¶ŒÎakï‹¶ƒF þ†Ñ 2„·¶°µƒሧ³µÚ4–´¿ä76E 9#'0bÌÍ98? r‚´ŒÞSHà™´´³µÓ30žh %'> 7<g‘›Žž´¾§§¸½ˆ€·²¸¸¥½±´†š‘…‡” =>N475kñB—•……´Ž±¿·¶€šƒ°‚†œm5Û 76 703 ==6z”´‰“àݘ•ŽŸ†œ›Ÿ  bÂ=?„è”0Ñ‘‚……la‚··ˆóÐb€³¾½·øïî…±·„²çin†”m~³Ž½ƒïeˆ‚›¾ˆŸk6E›KP30 žòÉ<;%141 12 “B43øˆ´´š|åñŸ‡ˆ´›`Y~›‚7 ý‡ëc 3—˜“agf…†è쉼½¸¾‡‘ƒ‚íüŠ•m 0 ?>ëŠénâ’‚—€‰õ{”µ‹·²·ŠJž36 65< 677ûŠ‚˜šv☓¶ìø´µ²¤»±Žf “`럴·¶¶¶Šèt—aœ†•í·§¦¥²²´¾²Š´“7<>'0ä•j3;14ù8$ &'8 235˜‡µì?3 O™ƒí{ñ÷µº¥„t<6d˜•]? mðŠæz• 5gá‚¶‹Ho’ô∌‰ˆ‹¿¶…Љ½±‡’ê—ˆ†aÁí„‹´´·µþ 06xX 1ニ··Øen7g`ä<$&>›—u015á—…6>?1»Šœ:0‰±²µknƒ¶‹ó 0€·¸¤¼…Þ gƒ·™l7?6˜¿‰0ɑ޵´µip„޽¼´ð\峺³°ÊêŽéo˜†6>7û’à gH475=$?è^ 5 Sê`öêñ”𱄗 œˆ¸Ïd=d776s±·ŽšÚ€½¿„h kŠƒˆäcм»¶ëa—·¶¼·ëÉŸ·±·†ý’³¼Y431 à ホm56I… 01•ìä‘G 36Ø…å5Hä˜ärx™Ÿ…ô_53Vt•1ü…€Îœ‚‘’“°¶·„QÜŸŠƒgü’ŽŠ”cC…´‚„†rB›ƒ‹‚Ÿlò“ú‰€ž’î”U˜`ìï41 3?7ãe lY04j膆vûwæ°˜kj÷n÷†±ì åHöàî¶µ’ôà›Œ€‚ÙÔœƒ·ƒâ`v‘猊Ɩ臷¿Œthü‡´³ˆèi  ž gš„•5=—†ì6 è€Z426à•T 3c†ˆp@ad‡†p 5Ž…M594Ó„ìf„¶¶Œèf޳²¶a±½°•lkK™‰´ƒ“0´½±êùž·³Ÿg‡ï07–·µt hÏŒŽf 0?û‘˜Ò 8?4 ï… 27˜Ž^Ÿˆ³‰46 NŒ‹“ ƒ´˜` 30å…¶±l ö°¾Œái¶¥¹´›5’µ°ŽÁ5޼¶š |ˆ¿·î4 ‡¿· 4™Š’=è°¼ŒM 55 sˆ„>;4̘û 9<4„™<=1ŸµŽù0ü´³g_’·³Ç44ê±\o „½¿„ i›²¿†êÊ •¼¹±14½†@5<4–¾¿ö2: ™²ˆŒù2%91Ñ·½Š6=1…³·44–lŒ”w|N’3:³¤´1µ½“'!%“‡ˆƒ'<`¿¤Ë?%1`²¥¾… b‘”šÐµ·´’‚°¹°ŒØgâ4Œ‰‡5è°¾º½´• ¸½ÿö”¾±¶¾Šަ§—82‘¼·ž〄sµ¥¥í4lr@‰´‚…ÿƒ³¶m<‚¹¶jmý60  a›Ò?<‘±Šâ %24– µ°•08‹‚6%°‰ ƒ²ŸూmŽ€Û‡¾¹ŠdCšûϰº·7aŒˆh=0’¹±À±±ú5=7s›‡“Oa„Š…î€€r¤ƒ17ãú 31ëu 1ù¶á üž¶î5 %8ô€7î´ ” 0k±µÜ4áQ‡¾¼—4%6€°°Šã7'4¶¡º·€‘··¥¦‡pq––U‰·„c6<<3†¥¸<¼¥³“߃´Ð˜Žžã<5Òjðh7a1 †·“ÚÏi™x=%3 Ûƒˆà1'<^ã 6š‹‰™5 t¶·Œ‡Îuñ}äóŠ»°œñçbr‹¤º„‡ßû²³àxÝŽšýœœ ?0Z‡˜ ‹·¼¤°•k_µ°ƒã”„== þ^1=4Ÿÿçþ|@k•ú`5:3g{61N’ñí53¼°´íiæáÅád Ð~µ¹¾´È‡ˆ±½³Ÿ”OŒš˜äÀ–hoŸ´‹• 4 Rž…„Ÿîž†Ž‹ç}÷‰¿„Ê4 562ƒˆ•fÅ 6•dfb r 31 }` hß—éÆÅ–††þ“™m 0 c‹˜lŸˆ†ƒƒµ²°Šƒ‚·½êè‘–e뙘µ·]jkzÃMÌôšƒ†ƒ„†“˜³µçm  ñfã•4ibé’ìÅ 601jè{ 0cc46h‚™–Ü•‡ƒ’ž†‚–ðÒžŒ¶²²±·ˆwc~ᙉ·è—•ø–jD—Éëƒ‹Ž›ŸImù†¶‚fpkk_ÌëïñÔ7 döÚaãV024 páŸå6<3皀‚‡”ohg{†‰µ±¶´ŸPZü޾¿±ƒž‡—bK•’쌋Œ·¶±Œø3䟴Œí}|†ht ²¦Š8ˆ€-´¥&±“>m5–•5´´4€¾²!M»!:; 0' ‡—‰»¦¾¥ƒàšëmdéËn5=;:&# '?–µ„fŸƒ˜´¤¦§§º¥¢¦°¿‹‰†Y†´ &!''$95ÍpiD774 ì·¼¾šÃ“ššŠ¹º¤»¿‚Œ˜0=$$%<&:>>æ ÊqÕ? µ¶§°„µ‰Œ··¼¸¼¹¾½±±¥¡¦»›ââ±æ›‡úž• 6%9 7%'!#,,//,,-,,,#$==?0Ž´¶³³¼º¥¤¥¤¤¡£££§§£­¢¦¡£­¢¡¥³±¿º¾Šíi}Ÿ…„†f7245 =;1 <>::=:;;;8243%!&'$%&';<13?<3 40à…€ž”Üsq‘„œçìž‚±¾¹·ƒˆ¿¹¿¿¼»§¡¦¼µ‡‚´°Ž’•š€€‡šJfš·½°´†Ž„aRÅœn 69=03161 1$$94?%:=xc<=1 S—’QeS|Hhì›’æo㜗ƒ²¥¥±€š´¹¦¡º·µ¼§  ¦¤³±°½º§  ¦¥¿¿º§¤§¤¿°Ž‚Œ‹¶Š€õ765 m{2>6ßô1=6~çñm38>31644<><5744=2:%%;6 6$& $?836 5>%%3 `e 21†´Š•jí„ŸŽ¶±´ÿ’ƒ··¶Š›ž‘™šŠ°¸²„Mㆌ·°³·Qç°½¸·ဲ±µøöx727Bgõ66 g”än535cå•ý{iiÙš€Š†E ä…ˆ›çjêƒéwû޳³´‡ó\昰¼¸°œ÷a”ˆ¶³²Œ”ìì‘€µŠµžsÉ쎀èqe퀓ôs‹v4 hï”È1=? 3=?1703<15`‚°°ƒêw膄‰±¼¸¼µ…´¿¹¹½°´²¼¾¥¦¤¿¶ˆŒ‚†·¿¿¶šä儞˜ïí÷óe鉳¶‘tyøäš’þ  d 722=9>6j79%>4 16764 ”ù 0?155 4464 e’’cmçãHÀг±µÿ瀷Œ´·³¿²Šš’„ôèî·´·™_b…‘õúéᘂ¶³¶„X‘–áaôé‡·ŠƒÉð—˜å 쟄’ 4 hLð 4c䚀‡íÂþÍn⑆ˆ·‰’gwêž„ ãµ²¶›äz\axèœå þŸ†žÿñJð”ÁfMØøž†ˆƒ“áîœëq±²înë›’‘egfd…óÓ„†•TMíÿfå–ãj7??4ï‘o 435ûÈø{ 75×ÿÎç™’–áÃËÄ晎·¶€bmÂ﵄—’ƒ‰…l R„‡‹´ƒrƒŽ‡’…€–gvY€½¸³€oEžƒµ±·Šµ‹´ŠŒž 44Cê‘j403317 Ì•ëãeOòïnj‘‚‚·»¤¿ž Ø“•š€œ“Éâ–•f 4 mtéµ²3064hƒ”ØÅéäË‘æî‡¶²Žä â¶¶Š·½¿½ˆ˜úòìX{dá”t715l„Їþjfáà_nexdcE`  2=1 7b i÷Ÿ“É~ðæY   BY{x霆•EÛ•‚´ŠˆŒ‡—„€¶³Š€™„޵µ‰€˜òꘅƒ™‡€µ‹†žŸ›‘ø•’‚†–àÓžžèÄPeꘆ™äåU÷ÉÿqfZfSì^n—“ì{q}Iõ”œè`uâ„ŒŠ‹Šˆ€´±±€–ì…€†ôàphjgc[âxb mlydzÐÕiö‘‡™ë•·µ„€‡˜˜˜œ”~l~cm cYNgæ|yØÁJZu♇›•Cìž•ñÁj7=4 5  crøäÅÐT~|ç’Ÿñoi10 5 gÝöu—œ–˜œ”…‚™˜ŽŒ†„—”Ÿ„ƒ›—˜•Æ•™žœž…‚†€™”‡„âà’‡„ðdf|àòfnc|^ûUaÁÁÜÝLïBxÿaNN`oúaÅ󞘜„ƒŽŽ‚†´¿²··´´°½³±¶¶Œá€šœ•ÂogséY X~ xlcuzNW]Ò’h_晚çhjcçúü–—úkpoc sfclKçœéHzëîéâLg`|aiEb dNmlûíòÔæãó^iû‘˜‘akj`n`sžƒ‚žüó”àëÃ郞𓑇‡’““eAœ„…‡ššìùû癆‚’€Ÿ~@ŒšïÕÁ÷Ÿ˜†’MalHãQfì“aÉàãõeÊÃid“žø{anèšìeâí—ãì„€…“‚µ´·‹‰„Ÿ˜‚µ´Š›”’˜“AæëŸœÏÔDnN onð]føuIùâ”áÚúSg•†Œ‡übü„žåØù—šþgçúËzlc`q\vmcnSžé h€ŠÌ{è  „¿ ëm“É57y›B 1kþ  üïI•íï ÿžwô– ž’ÐéûlbaE÷fj“‡ä‰‚Œ’†FÑ’V“ö‘iã7vãjëÆ²¾¼¹¶¥±¶±·±Š¶à4 44 dÞ‘•ðá’Ÿ•Š›“„†Ö ‘„hD„µŠ·¶à4 6?0 13117PgÏQElbol46 ÁÃ’ô„Ÿ„âm i’jeu–‡´¼’[†”ƒ„¶–cõdöœí”ejÁbãa³°³±Š„„†ŸˆŽ›ûl5@l Omùç–Âæ“î›BžYI‘m•’úŸÚwáxþ†™ïœÑE â550| j –›Úu zF0õ–ðŽ†Ú“fšjd`ó|uHℎ¶°•kLã†ìo4 çÏ’Ñi€fhíê°º§¸ƒ÷ߊ€æ6 yˆ„â ñeËÍæaˆ¼¹¹‘ 4jl11è¶‹Ÿ5 „á|]‘FÏ´¾±å2>054836àæ5  joˆ²¿¿—c W`5 e·½´í tg•‚ƒ¹»¸†2 Ì당¿³›diä^ò蛊¿§¦¸š} 47È†Ž··‰Ó5Lèñ𲤳‚b73 c…€áoPçEÛ‹°µì7;''154 f‘ˆ…7856]qäµµ¶€3= phj„¶· ^ÀGš…°´·°ˆc74쟟”ŽŠ·„äÞÔƒŠ¶¸¤¸°„ôÁöjð鷜⳾²… 5hi\5–·µë 06dbnÀ“ŸŽ˜736 âÙ 037jèd‚’í‘ìîê•èõ‘‚އíQá…·±ŒÍž›ûЄœ›òGdoUœ‘…‰‚•ó‹¿¼±šÌg…е†’ᆕkOÑfgcQ†Š€e4}†Š˜„wiwäæ 5 `Êôcöê—ë6<3 çŸÁ 4U’h T„€å57k–“„ïëá‘ñkaž‹Ž€ðèÀ†±²µeŸŠ´ž÷Є–àiî–‡”†„„€±•wtܵ¶²èCü“Aò 4™”`þÜ•‡ËøåCgC–´€˜ëäÆö 真ý do 4 l G~ÔïÆÙìñi͘„˜“ÙiŽ´›è”…‡“’šžšle’Ž˜•’}炽„ã…´µ‹„–‚1Úð„·™M`š‡Ÿ— Ô‚¼ŒÚÒd 5Úƒ{‡œòmáÞšŽéa A„‚Šçƒ} 327ÛKÇ15770244ó‡îœ–…fh5 š†äE4%:'%8>3=8>4b’”‰’{é±¶¾¤»³†ŽŒŠ“ákjÊ“¼·²°¶ŽµˆK÷–±¸¸¹¼²‹µ˜‰·ˆˆî‘ž„Œ½¥°‚€‹ïæ475ÿùæo5‡Š²ˆŽ‰´¿°‹TtŒ°€™äÓ—€´´‡æ”…‹¿²¶†›„·°†l165x 937S60>6”„ô}”‰€á64 u—‰´Š°ûu‘‡óèù‡Ž´–J 5 m•ê”ç`i  Ï”0%;>>35 y 9:%7ä”bmo’à59;87–Èfå…‰Ñ=>7d‚Šîìò„Ò::>5úCj†„’2:<i”ƒ€‡¶¶†áþ†‹°±·Š¿¥¹·ü ”‰µˆ´²·‰Ù‘„…‚€‡±¾¾¾¼·•T›‰¶¶´‚èïêáb 74ì’ãa 02 Ÿ°¥±™`ÜŠ¼³Žñp„·¼°“뎄sœŠexdaᕜnÿòm Î’ù60ú– 6™‹Žùç„@ŸŠ·´„ÑòPþ_ô䕆Œ‰…‘ÿ‘†Ž‚~ W…ˆ„èpØv535Èž“a4 <8? sp13>91 ÿ 4 Jl36 ”—‘ÈL1<>5flyma5675`ù“—à 16ì•æ~cnãåÜð¶»¼ŽæE„…€µ½°ˆ‘Ó’±‹”ð‹¼º¼ˆ|žŽœï‡°¸³™g”¶Œmh޲¼µi60îï 37„ŽD lŒ¿¾€@‚±²Ž”ž´²·‡y¿±å @ޱ0 A†„â6•‘52·À 퉅I rµ‰X†µ‚“jÓ¿°ÇB›´²ˆöîµ±Ž×•··ƒÖ 0³·‡†‰06ä‡E4ßÌ ?83dg 45=?6qõ14m ?=1@çŸ53 z723ý—I654926cíúyH 4ù„ïeöêœSNŸˆŒ…™íšŒ„ÎpkRŽ·µŠ€“•´šÁÀ^™´¼³Š…—†…™Ÿ“‹·ˆˆƒ’é…ƒ–jç‹´‰€Sj☗”Pãèx“µ´œkù•”à´‰–cgž›ç`|‘±¾¥k51 ¡ÿŸš$ì®9£'0E¿ < ‹¡¶šº7>º7 ¤7!1;ÿ0;`í°§»²²¿ ¦´n 4<> =$84莊S}Ž¥¢¡²¶Šº¬£¼º·´¶„ 304 ='&&&60;'&!%03>%%0711=04{‚·‡í´¹Žcí´´ã7<'96 h6?$;6=?&$ ‡´žÿ닽¼´€´¾º¤¥±±³¼¡£¹…½¤¡¸ˆ¶¼³·‘cKŒ½¼Bw3::;lø607 489–·´€š½¥¦§¼ŒW€¿­£¹µŠ¥¦ºï…¶ä;%6y>"'0ØÑ zèh 7 „±Žã Ÿ±¿‰›mz’±¼²¿‚†¹¦¼ƒr^‹³§¼k‘i3:<5?660 Í·³€½§¡¤³Œµ¿¹¸±†˜‚ëu5931 !&85 4& ::?3<:$;06?:&93i 4 „‚™‡‚œ˜Ì–·úí˜L=>6e3?$==9?0 4460‡–\·‹œˆ›‡…ꆉ³´¹¶µ†à³¼¥²¶‹¼¿¿¥½²ˆ†–îjy”z0?;36 4 4xã†Wáó·—Fæ¹½µŒ™Ž‚‰“þ‘–„Úꚉ—‚‚ˆ±¹±½³ž•‚´†m 142;<>>8%%$1Œ´´‹¸°¹¡¦§¤¼¹»¹¤±†z…†Ê 5421<2422 gb_v‡´‹‹bè‚°¿±µˆ‰‰´‰ƒ€èb™Ü ôž64ŸãF ÛÓœd 0 5 38::$72?:915 4Кµ³¤´à„—| ` 2338:;3&'%:ki12 cߟ€šŸ²°¶»·ƒ¶³²“Øå‡µŠ…46óÎy†ø–•“ƒ´Šµëƒ„¸¸¥³ŒpƒŽµbœ‡±€ÄmôœI1 ´ˆ•[a䗚嘂‚·´†“V˜–µè 0†’ï4 ä낇Æŷ¤²šèê±¾º¤¾·”žÊãvC641530;$$<îíuôçÇ”šž¶¿½¹·Ž¶½½¿±˜5µŽ˜šyu 465C“”’™±• aé”´¿‚…–5jÈì3<5476::!;<R127 ÷“Bò}L–ßæ˜ä ˜‘‡|g '?0 o7ž”48m™ç·‚³ïÞcwµ‚‚„œÐ…‰‡Ÿm ††„è ‚¶š“°±€äv‚²¸´²¿¦¾„”›ŠŒ†´ÿšƒ–  h‘Љ—60hp‹¶„^„º¾¶µìw€‘ƒ—´´ï:8164øÎdf `ë–}‘‚½³‹‡d“±¼€éý‹·±r üíƒõæ…Ž† 6%25Bš ë÷o %44‡“ƒ†™±·3;'% 68;$0b=%?6>=„°õb0±¼·š³¥³²Ž„‡»¼‹¶„…'!9ƒ°µ±Œˆ§¤¸·NlúŸ‡üá·µàr¼¤¹¹¶Ž¶¼½¶’JG·Ž„„†²¼Êh62žê –ìl3'89ìbŽ›621†Èg 4÷3 -!;6 •8?2@X’·½²ƒƒŸE•„´·û ‡–Áx ú€‡@26ÝŽ²²‰°µ°¼ˆ†Lû‘—Ž‹žš’Ž·´„RÑ’޽·¶µ˜Ž— tCï_ãÕ‘‰‚47Ï„ƒIðêëÅ òÌž‚…ý 0>5N70;=9165 1G‘‹‡s9=0Uçýã“Cresd•Y†¶´°‘Üf6`hi…–‰‚†Ýj~…ƒéúí·³¼°´žWÉêê—†û€…é’––‡·‹‡†ˆ±±³€Èfø’ÿ„mmq“ârI•œí 6ojЗn  lGƒ•z4>36 7oei 6364‘°”fq5y÷Z‘†êøH÷dO‘`Bæ“…‹³¶‡Ò_û𙵱°‡äd„´ê|ƒ·¾‰–ŸÛïíì‡žŽ¶Ž†”„ŸúD`×ɇހ…‡ßbÙ˜ÑÔà\1034}€ƒK6656Çzjfq013kìmbiU 47nì÷k`u•íøQ“ƒˆ˜SœŸœm鎆ÿyœµ²‰‘geꉱ·‚‡ƒ‚ŒœõoÌ“‰–í–…‹µ‹‰’›’ˆ··Ÿïã‚`댆íÀ€~ãs03ä77  6 éú 3<0`5 eúdL‡àyb뀔ÅémÿË~òÿ™…†ŒŽ‡Œ·µ‚“™”™µ‹‹˜‡‚޵·ŒìŸ´±†–™…ˆ´ŽÏVï™Æé~ZëäÙf‡œäá”Xf…‚€äjztTdwö}oäun ~wi3<=47 715 ` Ûš‡ØfÇãfœƒ•l5œ›Žƒ”bíòæš“…„‡„޲¼¿¶‡è}ù޹¥¿¶€ƒš˜–båžp儳¶Žn å“´Ž˜éCÿcwf[lP|—“…½¸æï35Ü´lœ·ø ‡‘y>5=†'¶'0±›óŽ: :L`œµGtÙz {Cã14ló…‚=8''y“1=1 552€„k€¼¤´— –³¾¶œ…™†·aúf膈H—‡ž2&&î‹…÷÷R0 †‘†º££ ¹²½¡¯¯¬§¹²¿¿±Ÿ´¿¹¿µƒ´»¡¡º Œ¶‰á752;$2 38>oø#ÊFæ±*T·Pªž¬«¡©¢’š¬¦Í¹žÐí«9+d1J¼ÄJ¶xBª¥«ž­O›«®¢»ì®¶Åž¤ÍˬĞ›¶¡ªHƱL·Ø*åæ0QÜRK°,/y )/#,I0*O.%9&(Ô'%Ñ-(?lj¬¼A°¥¯«¼¯š¡©”™­°¸¬¦£·Ö^04.7¬¾.¶°¸µ¼©¡¢¸­šŸ´ÎH±«Ó§¯|OI¹¨ž¤º¬¸»¿<·±%6åÊØ7FðÇÍEFU) D")) #4l_..çS>'=m,<7;H.(7MÀÀɳǿb¬ž¤¢ Äå²¹¯î>22+$5/ZDA·Öѽ§ª¦§¤­H]±Â¨¼F­Ò=p°§¦«ÝϹYÒ¼;Àf7·¿;=NÊÚ±t?9*$@5%;*D;0Óh/b&DÔ*Ø~#?JÔª4XÇMŸ¥œ”«£¢¬¦´§³_§X@N+,<«H]«pÝP¯ž²—¿¥ª¨§ª™¬±£ìõTê¬^¼­<ñÏYÛB­ÙÈ§ÐØn<¹YÈž0$")+P3(&'!,+_A%Îi*&;Ón²8#$-`0ÒË.µÂĪϮ¨¡ª°i¹GËŸ*0$9K=Ü?4,>è®§½ž¬ï›žÇ¡¥«ž¦¬Ê[^í½\«¬'Gº>Ú¬Z³»®¨~¿@¬·´³)Þ-0Ã+1/,*('#.+¿H,¼/*¹e®¸.Z-'0TØ>P5+Ö®¸ž¼¼¥¨˜£¾À`·¨«F,.+.ä<ÇÍ*-.5IÖ½{¶«± ¨²›®¤š£¢¦½[LOÖ²ì!66+­N3Àkß¿ëCCVKWE'1A!P* O1!'#"$D,)-@É.Ñ×:?<@05;U®]³?1M¯²ÚÉе¨¨ž¡­™Ÿ£šš›¢ª®Æ½±®Ï3Û^8¸|,pUK:UºJ=:.80LU+>!9.'&&%#6<%(º.*>/B3;ÓÛKÁÂ¬š—’‘––˜šžž˜•Ž™š’Ž˜•Ž••“ž¬«¬b¿®Ë3OÀ737N($ +>ί©Ke¬ 0  45,£¦Î™˜”’Ž˜‹˜–œ¦ªÌ¾¿1%%&8-,£º¬™”¡–ž•’š¡”š™Ä¶¢R6ÝM)?< M!)*,u6®1_LŬ³­TÄô2DK1*=7 .# !:t/°¯¨¥ÁŸ±—™œ•—§žš’𤖵¶ O&=%#+ $@B´°à¤¸Ÿž¡«™—¡›š­ ¨ £¼¦£+/Ã(.$(*Ä0-®P#«H.ÃÂ/4ÅÈÀ-*¹Ï4¼ê&$Åa,!8093ÁÎаܵ¼d¢ŸÆ§¯®—¦ªŸ¥¢ªd¸EÉW.>.)1%.?cÔ<µ®ÕQ«¤Z«œž³§«¢›––™˜›˜©¦£TÊÀ"%)L?=IDËžœ¿©›œÈŸ¢D¨¹,µ½%8+'Lñ*Mà¾%Á¬'W©<ÞDq¨¨ •œž’•˜›˜šÕ’–7«§è:Ü9<É0'4^).D-Ý7G/µA>¯¼Õ­À×úÐ?­¾-ß?2ILV$&--85Ö,9#E@&Ÿ¨µ¯ªž¹»¥¿¯£¯³¦'I«GF©¿Ö¯ÜÕ<¿L&¹¸(;¸.0Ê®³µ§¡²ž¤À©¬¥¬«·æ®ÆÔ³Ù­§¥ÞÍ«¾pØö0,Ý8# #"4(%-%*-49/,ή¦ª¤Ÿ«ž£Û©˜8j«0¯§$v0Dúê11/./+°U@½*Hµ½¨› ¿Õ—d²©š¡ÂÆ£½¨›»¯º±¬¿=5dº*3&* 3X 0¸È)(5_MWÇ Ç¬ x:<Ëݲ¼(&-ѽ3Ä.-:.,,(4_µ¡œ°Ÿ˜­¨Ú¸äF?p<=Sž‡…‰ŽŠ££²¸¥ÓÙÅ8믯*'/ **" ,,0£ ºË¨ªº¿jæ,(+$?G0¬¤<&-"D6!/7íK).&*-1_>+bÃÇ2µÜ6_95EÄQ¢»=ȼPLI×ÞØ­(0¿%R%¾§}ªÐÀ½6»½362$),-þ4¸˜£Ÿ¢­°£—¥£Ÿ¬©¥¼¤¬ÉŸš»®³.9/"17#(# 4(<¸7¾ŸJɪ",.00,-(U`'OµMϦ¾³¶]qmB¾Ô=yAFC)MÍ#-¨¾3h-4:(dÝTÅPE²1â±"RË0MÉ)+(9 §Üª ©­ÌŸ›§¤™š›§¤¦¶³Ÿ©üÒ/))0.)d<&2=VM,D­Î,Æá(%H#?2.À¼I5ǹƻØLªž,+¶Í:ÈÃXÅuF/>/&ß»$!Gl*&20ºµÅʰ­@Mõ:ñö&+Ç'N¹Â°«¦—£®¢—¨®˜£§£°î°ÚΪ·ÐÛz­D ^/Cu!HÏ#$!4ÁU*YÉR7%î×6Bp7Ñ8-¸Z,O³©«´³¨Ãæ¾CËÀ%$/& /4 9½µÞ+9®¨ÏÅ´·ä,2D3Eò2R¿Í¬µÛ¬­¨œ¥³¯á­¬7®›¨°Äª©ØÅ´Ê\½Æ=(&3.*D;>kTYs[ÄÈ,7ÕT@ 2$L?53C¯¾Jº§­­®°¥¹8J?8ßÂ8).[K;;W[.SÈâ-2:,4IÎ<#4õð¹]Næêº¶ÁUT?¶¨©¥ª¨§£š—™ª«¢ Ï0>Y=KÞCC41MξÉPIêé75/#%@* %+.3=ißlGϹãK:ḯȬªÀµÖ­­¸¼çØÑ]1/(*/-G34?3G¼ÝGÜ+1ÆO:j,$9GOWS¸µ½¦£§¦®½£›¢ ¨ÀÆ©¾¿¯¸ÂU¶´Â~JSßêºÎa/3v?@=//>@5?:0$&.:;15<:-2\ô^G¾§³¿´½¶ÉÎÀ°²]ë37T?8ènZWCÇT.8¿*ѱ]Ë 1ž«·Ÿ?DÜ}Ÿ°>ZðÁÀÄnu*"3DzCT©´Þ·Ù?@@µ¬{8Óç<@O;«­Kʪ·Ä³¸¿Í¥§«¶ñ@#GBe<3J>;ËÆKUD¼¦¡©½©Ö9'ù8c'2M?WÈ¿JÊ/4 %Лœ’ŒŽŒ‘”Ÿ¼:0-:-'>@K»ª¥›–˜š˜˜´G'/ 23í½¹Ë346!+'E¤¦›š–™ ª©µiM¸À-!)K½Â¶­Ÿ¦]0 #+Tµ¤š“–“Ž‘˜š•˜– µÅJ-2w·ÆKȶ¥£˜Ÿž¦²¢°Ó-*K*-0P¼ËÓ4&0_µ¯²­¥£¨­©«ÂÚ¿¬¬9-@.8/J´·D]¿­±ÌC?/ *)6ý·©¢¥˜› ›—•œ¢¥¨®¤ £ž¡¤®¯­ÂKl㯤¶®ÉÐÓѽâ×K5(! ':X¹®©­¬¨§ª±ãʺÅÛe//=RDa­¬®®§°½É8>Ár:O6-,*# !&(SÁߺ²®¨œ—–—•”—™›¡¥­½LAF:Lf±©««¤¤«°²w<&'&/Vh¸©¤°Ð]LècbÛðʶ°®®»ÁÒ»ÇE6,1*.41kóX¶¨¦¨ª¤°K2$ "3AÔ¹ª Ÿž ›Ÿ¤¢¢œŸ¤ Ÿ¤¨§¥žª­­¸½¼½ÚØh×Ö½¶ÆÚÓÁQH0 "*B½¿¶¬ªª©­¶Ä½}×Æ×¿aOOÅ¾ÏæB9,.9<4=8d·¾®¨«¹ÈëI;%#*2η¯¥¡¢ž ¡œžž¢¢Ÿž¢¦¢¥£©°±¯»Ã¹ÅÉæÇÈÀÂÝÉÆØ;BG+$*?>AåÕº¯Á´¬ÓÉȶ­®¸>=:':ÅCkZzWø½¶§¬¬¨«©œžž¤Ÿšœ™Ÿ¬¥¡¨©¨¯ÇÁ××·ÈJ239==0'"#*('$&-.-7?MF4=Ô¹êLFF×ÍLJNAKMeY9GCC0/<=9+/Jb>-1>ýST=ŽÅ/«—’# +½[ĝ𖕙‘–¨Hµç)(--*tªž˜Ž’ˆŒŠŽ‹• ¦§ÌF.   #F¥¤˜”œŸ¦²²¾¸¢¡ Ÿ ÁÃ642/+0+! &+-&*0(*CÚ¥™•Ž–—˜£ž™›˜˜””™’–”’—™›¡© ­ÒCHO'&86+*!%1L²¡ Ÿª£¦­£¢¡šžœœ©£­ÃÁ¾TÎC).#+&'&.2)D@Fß¶º¦¢¬Ÿ¢§¢¡ŸŸ™“™š•”—Œ•‘••—–™ ¥­ÖH?!)!   "'5i¿¥ › ž™š—’˜š˜››˜§Ã°Ñ7KR.5 $"#,1!1+$ " !%')-_D㵿ªŸžœ”’’“‹Œ”Œ‘—’’œœ›§´¬ØG -',&"!"+,32-0>4(BÌ2ÝoµÄAº®ÕÀº¾­Ä±³¾º¯º©°µ¢¦œŸ¤Æ°¶M.%!&*%k¼«œ«˜–——ŽŽ‘“’˜•œžŸ°¦¤Gè¼>\JAG,Xo49È4S»MVÁÐ4-.2  ( 30­¬»¨¬šž§˜™—–ŒŒ˜˜›žµ¹H7 $V:¿¨¥ž•œ•˜šœ‘˜žš“›®ª¸MÜ=/-;5E¾å>±l¯ºN¬ÒÃÍS_E-#*A.='*=N¹ž´¬›•–¢–—œ¢žœžžº±<®›¤Þ6ݾ/)4*?«–“˜•Ž—¦–”«©¢š¤®ß«š¨¬Ç¸Á& % ¸§©®¸¢ £ +HÞ9.ש=C¤¢¹6½-! ( $%­—¥°æ—–§¯ÊšžŸ¾¼š¥È*Тœ¯#@ªK3#:)*×XX.Ìž‘Ÿ°Œ™–œ—‘–›•Œ’¦­Á¬Ÿ©°MUB%  &0½âÊ>æ­î»]££¸ÝÌ,M½@È;Ä®L*Í#:@#'+Å;I½™Ÿ£¤ª›˜žµž•›¨Ë¯­žª­™•—­©®¶¦Ï0,Á1(!(.×w¾¡§³¹M¬·E@í¾5.+.+$¿ª°ª¨çÁß?);3":-Ë5La/=&4H/KJ¹Ó)4»¸š ²ž¦¡í*X6Ì­J²í±k$&/›ŸÄî˯;.*9ÇÉ£Áµ™jÉ(´Ž“·¦›šœZW¶›•ª¢¬DnGݬ©µ3LD X+6/")8a'ª«­"&ñ¯· ›«–»²—™Ž9ß«G%X3 )Ø5";$¼™§­/°¯.".¨¥¶(1'#`"%«¸²¹;2(,$ª¤¡™ªšššŸŸž‹‹Ž“š™œššœ•˜“›™­GÒ<¸Ì¦C,? &',&*'$*)366)" +·”ŒŽ–Ÿ¥˜˜˜¢ž¨«©£žŸž®a0'E:> ./"$ **&/oȨ¤¥«®¯¨œ™˜š’–žœ’ŽŒŠ‰‹ŽŒˆ‰ŒŒŒŽ˜œ™˜™‘Œ“ž¥­ š¬³¨¥§ÔQ¿®»»¥ ž¥­ÉWļôÕ®ª¼'# &&#")#Hà>4;U--33+»«É&&)0$-ZÏK%-;âÅ£—«à½Ä®®¢•”Ÿ´>Þ®«°²•’˜§ÅÅ´¢ž—‹˜¦¬žœ›‹“¡³ÃʱȾ­ž˜©...JÏE+ %  )6' "!     .+$8«˜¯¼NMPæ«••›«­§¦³°˜Œ‘–¥¨¢ —Ž‹‘œš—™š”ŒŽ™ žœœ¡š—¥§¢–››•“ž³¹¸ª¨®§¤¨L6/9½Ã¿Ìµº³/*?25\Ý; C°ª¾VÌKR0'2XÅÄ¿;o1 /ºª¦ÍÁ·Ç/$8±›¦®ÏSé,#8˲»5* :ËÀ½?90 (®œ™©OZ:5%)4¶§®Á,%&Í­Ä'0M- ßÖ8!$ô©°>"kÄF#+®¿@-,*"#6©••£¯³Á´«›’Œ—œ£ª´¶«™–œ¥Îõ¬“‹Šœ˜—›«¬¤•Ž”ž®\^Ç ”’˜§«´À--¿¥££¥Ä&&4¹œœ¤¶¿Z>) +Z¯¡©Ì9'&9¿­ºMÞP+'Yµ¯®­Õ.$5Ư­]1-*(!.Vµ©µS*(KhÙO. #,=]O3(;­¦³V7L8.3Ó¯«ª¥¬Í,!3>e²«°²F>+&*:ÚÕ¾¼À?*)ð¯¹ý¿s9//DWNK´¨§Ü#*Nô\=2*"%-"!'IL+@ZEr?*()DÉËÄÍ®¡¥Æ+'L«¥¨º¦£²r9È«§¬¬¡™¯K<º¢›š¤¥¤¨ª¸¸©§«©¢›œ·2*H©Ÿ¥¿º²´¿ZÜÁ«««®¤£º2F¬œ¢¥«§³Ä¶¥œ §¥›œŸ¶HƧ˜›ª®¨¢­@Aº ¢µà¾°¿1&Eн3)--()%:3!$+8+'?= 1$-ļ;)?ÉÇ0 %3ȧ¶F39B',¼©¹8.æ³Ù+#Ó®°0+>JC)-N¼ºµK05Há9,C«©ÓLGA?;xɬ¶ËP_²Æ?(ç©«w-$:?#/PG  &+($+̸¼=IÅ»¼Ëȹœ’˜¬´¤˜´® £¦¶½BRÌų³§Ê66=U*)g¤šš›¨–š£®Ž˜Ÿª¨¡¤  œ˜˜—Ÿ¤ ®«Ÿ”™¢ž¢¨±ç¾¤•£×?N¯O=MËǸ½8/(/-.3Ì+ !&! ;¾>:5%).Ùã`À®ªþ.)+/E[IP/71 $!'@5)"&.8'2[Õ-%8IôÇí¨ÎÁª›¬­ºÅC=6"$,Z-#"=lB-2490&(TE+$#=¿¶?$+nR3$:´­Ÿ¥½Àη®§™“•¨«œ•¾µ¨–™ÇÀ«©¶ë«–—­½º±¸1(7+.Ë£ K0AM.'ϯ®A !>³U,( ʪÅ'"./;ª ¹´Õ¾I%®¡¬^**"&$Ð¥¹QJL0@Æ»³Ì9'! 8®žŸ¥£¨Á8)2c®—•£¿=*'j¶Ê¹æ* Õ©´H!%)Cŵl'%.É­·Ç1#0QY/>£˜–ª¶Ãe]Ò¦ ™–™›Ÿ™¦½¹¡”š˜š¦t]JAf­œ¤®¾Á5!3ZÁ¸°¢§®763E¯¥žž˜—ªV3¼³µ£š£°ÊJ?H®®²¨ššº?5ÐÃÓ¯¥¤¬Û:OL®ž¬lK2+.N´Áôð?41C= /´¾/$9G9.8b[GL9,,É ¨o=Yû\ؾßQ»¬É44@;'#3a2'*#!"$#*2-%#!,8>--.-M¾Ë38¸ª·<.EßÒËÇJ7;ßD-+++/J9&.1-(%""8ØD$&=4@2*ÇÞ*!5ĸÏÕÖS·«ªµ»¸¼Ã­œž²º ™˜˜˜œžœ›£¦ žªÀ°¦§­°´·®¦¢¶òͳÁDUßÖÙ¿²ÃNÕ§Ÿ£¦ª¯±¡›¤²É²¨««§¯º­š›¬µ­¡ ¦¬ËI¸ŸŸÃ1Aк¯­°W9Ó²ÌVO8.>ÜL+&3ëF$)7/+,* &2# *&(+++4f7(*=NUVâ6+P®»77KÄÆUlV==ÇQ.6I7*(++!#7A)"*3;2* )ͶA%-HBQÎãqXô±¸OGØ|Ö»Ñ2)JÊU,'/2/6>,)+A9%,>='$-*(zÑ8'&1TÞÊl0?¯«YJѼ¹º®§°² žª´ª £ š›¨¶¤™§¨ž§¸±±Ÿ¡¤˜ (=m¸—˜öHL7¢­»¡Å(0¤§A%QÓ<82IÂÈ8?>µ½Ü=,C²?6?ÉÝÝë4ä¡F@©°c²¬µÍ§¤¶ß·«¦«²¹­»»´»æ¯Ç0FÉa>¿8:.'%":I;95fÆÓ1/¼=<,! 18v¬­Ÿ¨ªŸ—ž±­°Þ0ÕÁ8+9»¬¦ŸŸ–Œ•£¬š—™šžŸ”’–œž¨¢º¥¨®¡±«é-4  (.:̶Ee¨¦¾ëh\M,*((& #<±ÇP?IÐÚE%:+ %&*L.)&!0O2+5ϼ®®»´žœª¸¯²¸¯Ê53Ukæ|ɲª§¥›©¢››Ÿ¡¤ª¢–—¡¨©¥©§¸Ñ¶¬°¯ÍgÉU0'"!3BÖÌÖV¯£»Ì_ÎÜÂC&+3=. %(E=Fn>ÞÂÓ\d<#6+ $&%*. &/;BB54G9*9,+A_Ñýº¾º¦¥¬ºµ©¯µ¹t;ÊsJÓ»¿º¨¯§¢¤¢¡¨§¥ ›œ¦¯ ¢«¥¨¿±§¼áξÓÜ2%!%6;)3U˯Ç_¼¬ãTØ60ô?*#)3-11(1nE>ÞJ;*)!.8)Ê×BA.'.//#"5/./!*8,2JIJŸš™ž¥ž§»¼Ç8**6, ٶ̹·´¦‘—•’•›£¢¼=Uʾ³¤«¹­»\§— ¬¬z*".t±¼<óμ¢ª¤¥³(%$*-øÁ)$/3±§iÕºØ?#(*$%Ûn%';Ü£©m°¤©É/Þ²34}Ú®»ê©º>Ѽ©ž³§œ¨¯[9¦§?<¿¨Ÿ ˜•ž¬®¤Ž¡—˜šG -A.1A2NT"#-/¼³Õµµ½U%%815?=ÍR*:E-/)0¾½»i +-$$("40#!(3îÆ:æºOW:$8=7=讼ÁEN¯ª¢Ÿª«£§­S"+Jº¯S¼¥­£Ÿ¹½«œ”“—›ž›ŸÅNµ« §® £­±»»Ü7û·Ó^4&*+"'*¿®,,M÷¼á7À¾]äS¼Å %#óÇ($$)0-)A2-|8(/\¨¼óeL·í+[§¢Ÿ§Á¯¼D80Ke]­œ£ª¯ÛÆjB´£ œ¥¤¤Êù´¡ž­š’›ž§¥Ÿ¬¹¯¥›–§´º5,+)HL/.--@8@-"84M¼WÄÑ0 .½Þ6>+:ÅG7/&$+#-JQF.+'8'(6Ôq4427@Ôж¦Æ6-3¾ §ÊÓ½®³­±ËÅÎéP¯«´§¨ì;箟Ÿªº¼¤œ›Ÿ£¥¦¤·ª››š­G½ Ÿ«¿ÝBO´¼ßV,"(*/36&%(-6+(.(")/<.'2t¹µÃÁ7JÀÂÔ´««ªÃl³´½W">·¯ ¢¬ º*È·6ª—®­O>¶ÃṺ>IJ)$6Ç®ÄÃ|XVÒγž—””“›§¿pÌ×Å©®®ŸŸ¦Â×dÄÁ«œ›—–›®ÙK-'/BI[󮯮°ºÀ¸©£—Ž”œ¦Ä?,:Úκ«©¡šœ«­£ž˜‹Œ•›­ÄÛYeX¶³Á¹«¨­×/(,Ì¢šž¥Ë0 %%=´¡¤®B)&),;?@]ÌÍ?$!*s­œ¢È2,#&)5RÂÃ?-+9º£––šŸ­È2&#+\WA=M¯®¾K&+㨤·@!#2-8NÝæ4,0ß² ›££¶Ç0 $(.5MZ¿²ÕUJ1&2Í¢–šŸ¸^>1,*7|º´°¥¦©¡§µÅ稜•›¤ÃR0(+1@YÞYÙ­©§Ç67>â’‘•ž¸B7>K@Pʪª­ª¯¥¢µÉܧ—Ž“˜¤­±¿³ª£©®«¤žšªÂ¾¯§–”—¡í3+  &!%)'#ÎÉÅc¼¨žšÌ<0è§œ”ž½P940?1%%,>P8+À©ªF#(/9?>(#4¿³Ì3!2=½¨¢¬\MA̬¿N&+Z­£¯T:,*;µž£©ª£ °´¿PC-,:}§©Ép3*(9¾¯¦ž§«²­Ç>SEÝ»·­¤¢°O-1»­¡–•˜Ÿ¦¬´¯íGŸœ¨ÀK:Ï£•’’—Ÿ¯ïÅäª©ª¬<*&2_¬³¶; !#')60%-;¥›¨y( %*+3=dyÚÌ-+ͨ›ž³×.%&5Ò¼¸¸¼®¢œ²@,,»™’”Ÿ­®Æ½¶iÄþ>M¯ «E<¥ž¬Ë3$63)*½¯¾«B25- &'0¾=#0½¦ ¤¡•—±Ô®•–•›”’—¬f`¢’™™™’ŒŽš¾¯™•šš¡§ ¥³ !!%>8;P«¤¬«¨šŸê-*¯˜¢­Ç¦š›¯. J½J-0'(-$,(A+ %&10"?©¹°©œšž ¦»¯š’‹™ŽŽ••Ÿ°š‘–¤¡Ÿ¡h3.#+M-'#9Ï/,$4H+É?Å¢ Ž’•—œ•››˜–˜›˜žŸ•¥âÅͦ¥«¥°¨§²ÖÛ¬ª˜¥±¥”œ£¤©_+ÊËY-"4+')3*U«ž˜­·ª¥”ž¢ž¤’“§£±¬¨:1!.-" )&#!<¦Ê­´¦¤¹0,Ë™›¾°«µ¾Î+!5º«×.·¡ªU)FÙ©’™˜Ÿ›“¦¤¬±¥¨œµ«µ>/=9"#&"-° ¤62Ñýp0¾·®š™·)+C¨?(!!3×Õ "5ÇI(#X®¥Ò¾ž›’šº¬š¦ž¨¶­œÂ2 /òÞ2"00»Ü2¶­î9¼¦š ¹Â§‹™žŸœ“— °ª´••¢­W®®ªÕF)%µ´ªÇd/b°¼¹¼§™š­É¦”–§´¹·ž¦ 4T  0("5,¬§ÁÉ–“š³ä› d½¡•œE9Å')  7)*º¬Ö15¶¥”Ÿ§•Œ”³¥•™™ § ®§ª29]6 1M8(!-·´-;¸ŸÂ%%ú­°ºORЮ¨-+3Ò¶'"!+&.!+)"+$CGHwAMÖΦJO¯¢¥¯º§©»ŸŸºÖ²ª¦ÊÕî²¹)½;(Ek=HÚ0rJÃÈ̶µC ›¯¾Ÿœ¢™¯¯š—˜ª«¢¤ž˜¥f³ª™©M¹À°ýÍÇ-tÇÝAH°¡¹7a°Æ®Sî´Ü§±M<2´¿ü??¯°¿".7e> X-!2/3ê6*)%Y£J?/¼ž§§žª¡»LšŸ©CǤÈ0`æF;P8¯È;?U­¹1:›—©Á®§—˜¢`Øž ­>3/?(KÀ%"DO2KÁD<'D®¨ä7^ ‘Ž‹–¡žŒ‡‹”˜“Œ¦d.3I"  /¶çÙ«§Ë!Oè,<Ê«¬[#9²—’ž›—“Û'*.²Á2&1¬UQ3+@( !$#[œ©4=Ÿ—™œÂÏ›ŸT)=¶³û­’›¸Æ=¶›¹Ó»Â™œ¶Q.Pž¥¬Ÿ™  ç›˜°®à³­3*êÛx š™ß*+%>E #%# gÀ½¸ž“¬D-¶™™°,=È·¨,">C·©ª¼é;$M*) 'R­¯£š¢<%+O¾?ÂÀ¼¥®Á´¡š›—š¸>íÓ¢™¢žŸž®ù׿8T¾î­­j.'# %AÏB²ž¤©°?ö×YÂÆµ5* )I]Ì­££±¸¬´©Ê&.@±Ì^8#E3?Ï1tB=*,g8/')(LD=ÑD$>Ò¥œ—¯¸¬];--"0i'Ö´ÞÅ;7̺²© žºÙ²ÅÀÂÓ½“ž«¤¦¨­êOߨ©²§®K+#9°ª³®¶»Éb#"9FF1.[9&BH»«¬£¡¯»Õ<-=»Âi?Û²¾ð)#ãÊÏÁÀË®»Û&þÆ<9:¸Ÿ¬?"-MÚÏý:OºF=&-±¨NDÀ¯™˜o,IºžŸŸ¡¡˜šžžÅk´¤ž±Ò¶º žU +.%&.KöÌ@$!*ųZÉ@7°¤2%9ÅJ2þµ©ž­P3Û¦ª¦³5J®¦Á?".ÆÔGOR¿ºÓ:K6:.""=¬ª×'"4ű¼ºÖæ·©r,0,Z½¹/)䤩. 6¸¨Ÿ«°³¯Ÿ­¬Î·œ¦¼;ѧžœÍ FmV=,$*WØC81/âgé,(ô¥™½"&<îg5$6½¼Á@\@Pº¾¹"/Á¨Å9ððŰë0C`t:11'T§«E"$(T®ºt.:ï²Ð2KÎàÐ>52F½®ö?'+=«¬¼YÌ¥¦¬©Ÿ¥¡¢ºÃ¹¦žŸ®9+<ËÅÆI,&6O612üE7.(/<Ä«Ë:)-?®¥Ø+.:Ì{ÒÆ³­¹ï7N9O³¸¿m3?J±Ë'+-¾°´Í¸¡Á, *1>¿·ÅáO1.iÇ3)*4ä«Ê³Ì8E-?IûJÖ¹¿LPZÐ~;+&×¥ œž¤×äMØÄ¿ÈÓ¤£¨ÂK3+%!;tµ¡ ³$ 'B<+&è©«©ÀJB5+#9\¶ž››¬0$&˱F*2À«›Ÿý8.%"(H¬œ¨G +6'.6?\¨«ÅÈC(!)/Ñž˜Ÿ«H1JØI.@K³§¯·¾¹Y<(!D³¤ž¤`3×O9'.-¾¤¯®¹´IL&AOJ»šœ³0§˜ž =,«¨—ÈͲŽ%£Ÿ/–>A&©*·T°Rž¾8Àæ¶$7ÓP™Ÿ^Ò5#E?Q-&Â7**!,!$*2'% !$    #- (',*,!-6*(-!/Àº8*5Ť𖓑”™œœ”“•–›™˜—˜˜—’ŽŽ•Ÿ§£š’•œž›šœž™™œªË¿ÄjL8åÊÕ@ +<¯¶ÈF,W@Xùå­·À0 HoC$"<ÑÅ=0Ú¨Ÿ¸*1ê·½¼Ã;*!+[Ø].-/ý³­ª§¡›˜›¨ÏH»¡™–›šž ¬««ª©¾ÄÒ²«³¶° œ Á3',\º³­µÒA.52$$!"(:85&*ø´o8!(57((*3D_Ыžž¦¹èÒSe9GË¿¿EE\¿¾URCeJ;D²‘‘–•——¡ žœ–•ŽŒŒ’˜›•“—™œœžŸ˜•¨h7ʬ©®Ê±¬­Å=.)2-,6.("!7¿§«L'->LK>tÈÃG%#*."/[Z5(,Q60/Õ¬³B 8â»L<7-0+`·Ä;!?¾5.F«£Ï7)w°°©­¥¨¼½¦š”¡¸.+NÊ¥¨ª«®©¯µ>-6m¨¡§¸óVr8G<]6 "zÂZ;B°®Ï)%Fµ¥®¿Êº¿Ñù¼µâ-"Qa,&+@>*#%/EÀ´ÆF6Ú¶¯Ú>(15=LGbb:1)&(UêØ\ÒÉÁk͸­¹N\±œ–›Ÿ££®·¬¡›š˜š¥²Ï¹ª¸Ý,>ÅÆÃA^R<-!((,'(O¼¯·U356ß[¸kWOL®¨­Á]ÞûH.*C®ª²·½V2+2Nµf<2M©¥¬]7KܹnG=G»°ª¥º:&F¬¿æ/2ðÝt8++=ÄÄÝ>W¾¦¦Ÿ©<>MÓ̧®¥Ÿ:h­ö½-/ÓŸ3½8~3¸• ¼J+ Ž4­0JE5Ÿ#,45®0ÖÐ>¯­œ¯.+(ª&:7.&-ºDI¾5›©˜ ³×¤¤ž’Ž–¡©¨-(-"®$à,HÊÓ¨}·)"38= '=Å5=":¼›’ŽŒ‹ŒŽŠŒŒŒŒŒ›·9$?·¦¯è±ìã(#0,0Li¼¼´_+  #.7HÎH++ȯž˜›˜”‘±Ô­¡ž™–™•ŒŽ“’–ž¿dºŸ“ŠˆŒ–™¢ÎQÀª œ›››–Ž”œ§Æ;G¹¬§¨¡¥À5 %)( &7[ÉÑF/+ $10"*T¸ØÄµ£Ÿ£žœŸ»X;?謙“’••·¸³©£œ––—›–””Ž‹Ž˜œœ—˜‘Œ‰‡‡†•™””˜š——˜”˜››Ÿ¼*&2:Ú«¢¨¾ý**(.>Þ@4KM]5$  #$(&(O¶±O,&! )41/:WÒÜ¿§¦²ÇYF<7Pï›”¨Å»ªŸ¥¢ •ŽŽ•—–‘‘™Ÿ¦³¼¨¤Ÿ™–™­=2á¾¾µÎØÅ°¤¨¶±©¶Ú¿¸ÆK<ü®¦§Í"& %&a«¥±O*7´©»Z½©Ÿš™ ¯»«ªÃâÙ\/;±š•¡Â5/I¹¿95Ǩ¡¦ª¥«·´´¼¯¦«ÊS±˜—©X.&.SR,!)̲Ák?,*9G9$$#'c¯Í0 ''(("!/Ði.%%(' O©´*3IF6-4 ž¬ÝPׯ´¢ ©º¾°«ž—™¯ZÁª¦­³­«¤š—Ÿ­³²¾µ£œžºÍµŸ”˜¸Nºšª½¸§œ•—¨h9íÁ¿µ®·FFîµ´¾Ü+/J55ઞ¼DQM5*0PIç¹®¸×±¨²{A?-$1ǹÀ¹¨¬¼?& S@&&Þ´»¹ÅG13I) 0±ž£¢ ­S.-&":\MKÂÈZZR;'/:¹¥§¢¢Z$<Ю§§¿¹œ•Ÿ¿Ò¸e82=DÌ¡œ¦¹·¼/*/317=Úµ ¥µ36J¥žº³¨“š±f&=cʵEßµ§«¼+%%*.?nª¦ž¥­Î,#/ŽD\±¤ª¶k* %%*Cª¢Ÿž™·U*,൥¤¯®žŸ¨›±D3#/¼¦¨§žœ§À.$8¼©¡¨§¨­= C‘‘–š¯6+%';¾­©Ó*%!!5Ô´©«½5&!>º½­›Ž•žÁ7-u±©¤§£ž™Ù$'/2Ï®©¥™•¤°d("'+AG¹¨Ÿž¦p238,1YØMW;:Ò½Y+/=Ыœž®ÂÆX>*(1¿¥—˜¦Ü6,(:;¼ š›¥Ô'$"$/5EÞÔM:2 F²©ž–”Ž”¦½W.-Óª¥££ž¡©ú0*Zɶ¨ž›š£ó./',UöMܯ§¤ªÆ8( (:ÝÌÿâ¹¥ «¾e0/N¿ÕÁºiEÞb$#*,3Û¦››¡µn)")3^¯ª•™¸=/+*A>2@iR8:>)&sª˜“™£±8@¾©´Â´½®žšªû4, #+EÏ»®µÉH0!4K:>_Ç˯ª¼âû6-ηªŸ µN0Z¸¯›—µÊ<'/ZB/,/.>À³§¨µÓ8$+VÀ¡šž¯ÄD"$:Ví¢¤Ÿ—›Ÿ§ï# ;¾²¬¸bD0 %),,(V¼²´¤¢«Ã8+k¨œŸ¥´Z/5/(*6/&"/L@,&$6©š›¤¢¢©«¯ìι´¿±°°¯©¥Ÿ¥o"K½È̸É4(7>LÌZÏ­¥­³ª§¨°t)%(+H¥™™œ¨·«¢°ZWà¸Å40KÊÃÄÊ>%Nª¨­·úHX=5C=+.ÔµºÅζŸ®5'!),:B'%*+$ -èº×Dz¤™’•¢­Ê:g¨¡¤©´Ì¼ºV;<2-65,0<83䫨²]6²¨®ð-.EDG^H7MÂÈÍÅ®Ÿ—œ§¬Ì=/,/ð¾;%'.:>+&EM:;:@ó°««§¹0+?Ò®®å:[½º³¶w:3(&)'#%CǽÅEd]:@¸­·»¾º¤›ž¦«ª±µ¾ni·¥¤ ¢²ÏÑ?,21)#&&5ÍÍRH?=D?-(1EL¾ª©°©­¾º»A0DIß³¦¨¨°N5-/"#&-LÄÁHý·ÓN:' "!!>³¬­´×kßA-)>_é¼­¯«¦¯ÔÏ6 3U¶¦§ÈI6:À¶¯ª§¸ÐA$),2XQß´®®§¨F'"(=U­¡¥¬­·a@:>ù¯ª®¨ ¥Ÿž¬G.'(0忺½E&$*+(31$)¾¥ –—? #î£Ã%»À Å¨.C!“ ”¬½—›!#C&—^­¢¾©òL4U%=#$(  ,S³­Â>18;LÖ¶­©°Ã®ž¦ÂI@PȰ¥  §±¾}9),<À±¿j85KíÉÎ<)(.HÌÎfmXM9)(9T½¼¿ÃÉɰ¨¦§°k6@xÄÇSòßvj>(#,)5-  &)/, ""..9317RâËÄdMLÏ­§¬ºÒ[󵨧¨²¯®¢š”–›™˜”““••“’‘•••””•˜›˜——™š––™¢¬¼¼®ª ¡£µN=p¶Èt@:DT]O50+#(1/( "&+3.%*BgU@EaÏÊÐËhK>`¿º¹´¸©Ÿ¥®áB45IͰ´ÔpJNÞN<+3;82/?gÍ¿î?>,% '5H?09_äñMALeæ]ư©©®¨ žŸ¬¿Ö»³°¸Z_LMl`ûI;7-139GGÓo<2-3*-+'*#"&+'%&"(-...8IË¿Éa7?Ó·°Æ=.3EìļÀ·çcöʪ¨¢¢¤£¦§¦¦Ÿ™›¢©µ·¿¸ª§¤§««®³¸²¨Ÿ¡¬çñÕ¾¨ Ÿ¬~@84/29MÒÌlH>:</,<̰¶Ü5(!$49?7*&'8LÛÖÔîLFMÛ®™¬ÁòßU_Ų¨¡¡«´¿µ­©§©´ÍfI\º¦žž¬F( )/?@O³?*)/,ç.?½/%#2Y¦²¨¥$9¹˜ɘ*¼¦¼©í¨2³¼ÏTš¬µ®È²(:('W&H¯5&I0µÎ,.##'Ö¾V»®cÏ;¿À³¢š¥¬¬›’’”˜ž¨¤Ÿª°¦®=§PÂ(37*  .D¥§×Çø±Ñ¹¬²¸·—”˜šŽŒ“™£™™“‘“˜¡½0,/!!(").64<" 7HYºÇ73/&94&=¯¼2,8·¥§ºÂk6&)<[ÄÓ«¤š›—œ°3 $·œŸ­¤•˜ «°¼µ›’’Š‹Œ‹•¦Ÿ ­À°”•ŸµÕÃç.&7V½¸½,!   -8¼¾+6b/!'$%ÜÐV3/&)5;3 /Á¾À«¥£¡«ÀJ߬žžŽŠ‹‘”—“‘šŸ•ŒŽŽŽ”Ÿ™ŒŠŠ™—’•£­¯´º¬¦µ¶¬¥£À7*'$/L-"%39'%-%124I0"$#$ " !',)$#-,% 3¿§®NY¼½É¶¤©®’Ž“›œ›¡«ž——–‘”§¢­«®«ª© ›£©¬´Íäd8-+œš§¸ÑhûÂÁ3 4¸­µ©³A(1n- &%+ɺh092 -,/:I37:A79EO0'5Ê¥œ˜›«îB­¢£§£¡Ÿœ˜œ¯Æ¢›Ÿ©§®Ä¾žš¢µ®­ÁûêW>¼¡¦@ (017\>' "$")EÜ9,$#66$ !'-&,;20;++*&?³­|>'/ªªL/<]ßÀ±½»·´ÄAO˾¯žœ¢Ä2*/Cm¶ª²ÈÛ˼·©¡´YUº¹¸¤•’˜œ Ç2z¡š˜–˜£­ž–˜¡££¬¶®¬®±ž™£¹F-/N¿`<8:235136gN(1º²¾ÊÕ=#!%"'N¸S4UÖeBÉ·7(5?=9h¸¾´°[/:7.60?ÎËØKdÅq]7:λž™ž¼?Ľ[CF·´¯¡§¯¬žÒEʵa5êÁQѶ»B,)#@>2]T>NC4/*''ZÁ»ÍP5)+;Àæ++5QPW»«­«¬¾4@½»Â»¤©Éë®×Ò²ÇåmÞO6¿Ÿ¡°Å¶Åêäjvïµ§É1&6¿´ºA-#)),.?ºÀ{@7*#<Ë[-'65(9θ¾¸Å(/Fu«Ÿ±\Ú°¿;5;{D>.!,Â¥°K5//# %)9Ú©¤¶GAn{IMY3.?Ùjo©›Ÿ¹Ñ^+/¼Ÿ¥¬Ÿšœ œ²Ä®ªÎ7C»¨ž—œ¯ÉºÆ;+2¤žœŸ¦«¥©­ÏI}ÚKN±§¦£œš±6-88T¯¯¸«›¡¸\9B-),&ÚvM³T7'+>>é²ËזּÙ/-'#%1½ãÛÏf÷A!))#<Ч°RºÁdC-(C²©¦¬=;½²;(9;L»¤¢º:3íÕRâËØµÀ=:6@¸¡˜›‘”˜­8%.N«˜œ©¾®ª«²\'#,4þǹ¨”˜«R  *4<'"*)& !<¹¥š™­s0(g©¢°ÆÎHG?7%#*6ͨ¤š—¢¿:''=¼¦¡°¦§³ËgH0-06-X§™•—¦C*5º¬ž™£«µË~¹Àc1)(.Æ¡™™˜¨O4+&,ÔÀ±¡›Ÿ¢®²Áû­°©“Þ.($*Ù¸¶²¯ÍL;-()"!:©žŸ¯6(.1wÂ;(,(!&-?Ô¨œ›§e%$1SHÓ½j6=@'$)#$T°Ÿ‘Ž•¥¹J>ÚÀº¯¨¡ œŸ¬ºx89g5%>¾©˜‘›ºN)$/9YãÙC,*) *²¨¢ž¶0#.70J±¤£¦®ÅÏO4/6d¬œœ›«A-##+R¯Å?DOCHL8)*7Ó§ Ÿ£½:3.#*Z¯µ¸®ºMKÝ5*2Ó¬›–š §­­ÀJ@ßÁ¿§Ÿ¤žŸ¦Ÿž¹>½Ÿ˜‘Ž•™žžŸ©·ÕÆ¡™›«±¸ËÆÉ:'>ÖLúÄI044/.+#-;:-,-51/2&#-1ì°L##!,B:,#!(77)"(+9-8ͺ¸I/OÕ_KÉbvƺ¼¶°å;Á§­Å¿Â³¥§µ¯¯¸ÇK<å³Í59?2./,!'5');5')3;^@""'*)(/JÙ:*++(8ÖÉ¿®½ó£š ¬®¬²©¬ÊƯ­·º´­ªÇ++>6HÇ®´¬ªþk¸¸G;kJON/.Ê®¶Ö:75KC4ImÈ»¤©·²ÀPdzIY¸®¹¿°¯ª¢¥ÃK×ɯ¤§©¢§¨¡ª¼°ž¦¸»¼»¯ ¡£›œ³KRM÷µ²­§®G6?]M6$%AJ%(7OÁô57B >íÐÝOXÛD*,44/%(6X5*쫯J-"19'3²¯ÕI4=Ú¿I*-636;Y¶¤«¾Ì?*8ae¿­º`¸¥´ûKVfÈÊ,$,/F׺°ªÍ!",ÊÁßÞJ-$=A+'"#%41$8»¯½Y.1A6.>È´šš¼-9Ê÷´™¯±(F•‰¿Ÿ¯!– —‰0(–§$5™š0–!´˜•ÅŽ 52¤§˜’Œ‘’š¡–’¨º§ÀF.M2 )>ª›¥À'ß›ŽŒŠŒŠ‡…ŒŒŠ¦°Lǯ0'/HLä  "(4º§¥›š–Ÿ£ªÏ÷À¯Ÿ––”˜—š«Å(0'):[¸º¬Ÿ ž›¤ž´¥¤™––‘£œ’•’™£’•™–Ÿ¡Ò,  -o½œ¿¼ME½Ó¿¿®ž“š©¢®P*A,8O`#"9=08Oµ¾¥™£É±š™˜›˜¹¬­ª·ÏË[,./.!<ÌU'"8-øºÐBB­§˜®Î]1O/x/#$W678++½©a½£—Ÿ’ŽŽ™¢7-1¶­:M_ëm&壓œ˜•¢±á¯¬§›™š¥¨—•§³nØ»¬˜Ÿœ“™” ììÖÞÖÊ¿éM¤­ÉÖG½NCg}/=©¡›¹=>0$,9 '$2<$*, 2BÈ¿G©¤Ë¿0&),,)=0g*2! 3͵ÈJ' ')(0:½´°­BY¤¤º»Ì®ªŸ˜À½ž§R-J9?ÃÊÃlY¸­]BÁßUi°¿-G°µK7*80''$ÆÀ¯NH«¸±¨®Þ?#.S+.>.2kµ´86¹¢ž°¾·®Ÿ’—«¡—Ÿ© ¥¢­ ˜œ¡¡§¬œ¤­¯¡ª½®ž¤Í¶`:Ï®í*;¯¬ÉYºª¿žžÁFY°¢£¬·ÊHEÞ:%,+$'6=%!$!,&,=8%0& $(>G:2H¿]&*')8·µÞ)%X\8.!'>ªÜ-'⥱§¬×Jή§Ã¾¥¤¯µ®N6G°³>?Ì´°®¯ÄÁ´¬®0+AÎP7?:,#.+)-08;!%³¦³1)Q¿yÀ¼=U´¤½7879-F¶=2J²¯½Ï[[Fݾ9+F¾·S0H^<2/<.H¼°ÈÚ¦Ÿ¤¨¤²é»¥ž¥´´œœ©·Âª™Ÿ¢ž››”‘›¨¤œ¬­¬²ª¤¥×~¬´ÕC1IÏUÛ°¬«¢¦´>BÇÆaËÍÓFgª¦K! )(,ÏF!/Õ³}*4/ $#&3'!+;4/S0%-51#-kS4.dÔK¿q*%ííÀ°®¾³­Í?[²»Hí¬·Ê®¬»53hÓÆ^]OÒ«¦G,A¸¼Ú?HÛ¿µ¿9.Ø´M&$)-â³Y4283$+:*!?¼[6O¿Ð=0=*&Y¹>*I°¬É;-#)à´îEdµ¨­ÂÃÀÍ·³ÖAA¸£§ÎÃÏ8:ì¿e?¶©¯¹§¦Á´¥™¤¾²žœœŸ¤Á:›—¸´œ“ލI¬šŸ›–Ì´¤¬§·ºÄ½A5':?/ñö8B>03.(8äS¡¾Cô¼Ä)+j7+@·Ï¥– J$"#!=.0쨢³¬Î=½©­­£¤«¢¬±¥?90ý¬ž¨žž›žž›¢¸œ™—މ•˜ ¡œ˜¡”””””˜ž ©©¥•––™—œžž´?9¿7AÜþ¶©¨µ­·[3++(F>>Æ´Õ5 .(%!! !$$-"8@,H×>: "(5,á²¼²8+ *%3/AÒØ®´¦§²J=u7Øñm˨¨³³97401$+߯´ÀR³TÇ¿¸µ¥£¡˜ Ÿ¦¥«§®¨›¡¢£ž¥Ÿ¢®«Ÿšš•˜˜šžœ™˜©°¯¹¯ªÏJ»µÅÚil¾¨ª®©œ¡ª³K=Úk;-?04$#),B-%"$'3$%14.$&#70AgA]SE*9/*'AÀ¾«Ì1+60-(/-[º·¨¦ ­®µä°¾Q=¶­­¬¹B57"%,bÎU»¶à²Í|FðÞË­¾Æ²µ?-*(',) <»»¯¼ÂɺN/7:<¿ðN½¦§­©«¬¯µL9æÙ=<=7KÞC/;:040,<Ç·²£¨ÅçÏÆÄ¯¾DC]B8á¼½w?,0dK1Dà´ £¯®Ÿ¦ºÄ¿¯¦ ²Ô³¤¦­­µ¯ªµÍ¶£Ÿœš šž¥¤¤µµ§¬²®­¸·®Â:\µº·ÂÑ´žŸ¹Ë參I0oÎ8++-@?%&$!",/)*2,#/+'-/.-*%'0**%)D2#,XoðK1>¯¨t*/AѾL/6M2&*1[¯¼?LÅÀ·¨¨´±«¯ª£«ÛO\@8:.,-"(JFñ51©ó¿¡V?4в-¬0 :Ž‚/$>›°–Œ§­‰ ¯›’ #  )ò«¦š•’ŽŒ—¡• Ò<>+  "+/>:/W§”••Œ‰ŽŠ‘‡‘¢¥•¡°·­¯­\$)&1*$@Ç129EFDüÍz]EÚ[¶©¯¸³¥ ››œ—™˜ž£ªÝK%.  )")A:)!'=8þ³¬ºµ¹§£š›£›˜‘–§Ÿ¢¸¾ï04mû/C1'(-+! !&!"-ZåVYå½·žž›•’ŒŒ‹Œ“’Ÿ£§®´¯q?ò27# !,/!">)' #*0Ö¢¡®³¦§ž¥« Ÿ™—¥£«®›©½§Ÿ¨¡¢šŸ¥°º³kÇ_È1 !(19B¯«¥¦Ÿ“”‘”‹ŠŠŠŽ’–˜Ÿ¤¤¾Ú½½aò,!-#!"' ' '9%4=h¯¥¢¥Ÿ¤§º¿¶Äª¾þ¢¢ ®£¶®³Ì×¼ÎÝ3>,), "5((/858>><ÜA+@;()09E®«§¦¯¡Ÿ¨¨Ÿ —£© ¥¡±¼A"*,"%%# &&+%/+1N8ßN>¼Ä¼Í<©­´¥­™œš”—””––œ™™Ÿ›Ÿ¾©§ÝL-?:+WÉæ¸¥Î«©§£›¦Â´ª¬CR)!' %M:º œŽŠ‹†‰Š‡‹‹–‘˜¡®«·ÙÀS6#%%%""E+Gé[´Å°½²¶ª­ÍªªÁRK+#& )(óÒCú6©¨¥ž®¥©¬«½æ= -!&)+*EÓÀDºÔº¬u¹ÉÂÂͪÒ[á°Ë¹»È®J¼¼ß73+G-8C»Ÿ¦Ÿ‘“•Ž–•𛣍¾¯àMyK8(*+#.*+JOOÆ|«¬«»¬¬¦Ä¦«Áœ©©±§·§¬¶¦Ì©°ªºÑÀLG@6'*(&'ÍÕ;Y𸰤žš‘‘’•”˜š§¨l®:ìÄE/,,."$&*DY¯nàÔ´£Ë²žž«œ¤¥›˜šœŸ©® ¬¸ÌdU/$& "%)3,F(oî´.;-.F#-3#¯ç3pY¤¦Ä¼¡º¯«­³§¦²¸´©ŸºÅ7¶Ï[¹AÑ-Õ>R:  0@hÔÂ3.Ì¿è;¡©³™—©ž”˜•’“œ·±ÃGé¡™”ŽŒŠŒŽ›ŸŸ¥›–”•™˜—ž¤ÄG;+8·º)?V.  #6F>.($A骮£ ¡ž¨¦¬«›””˜™ŽŒŒ††‰‹‰ˆ‰Š‰‰‹‹‰ˆŒŒŠ‰ŒŒŽ™¥¶I%0Ó¼Âδ¯±°Ï-%&8ÍËM:GùÏ>4 $.'&  !#,)#;?6/A`Ø·÷ýüô»²³µ­¤¢œ—”š™ŽŒŽŽŒŽˆ‰ŽŽŒŒ‘•¢®¥–—Ÿ™——•’™¥¢™˜˜ž¡¦¨ ¨·×KÖÃÔCCGMMõÝ_5,/"    &) &3<:8;SJY½«±­¡œž¡š™œ˜šžš’Ž“šš–”•—··¡œ¦¥§¨¨¨Ÿ£´®«Ÿ™˜œ¢ Ÿ™œ¨«¦¡¥®© ¢¨¦§¥­­´S=Ûí??VG.0<5$ '% *.6@=.3C¿½IOз¹ÏeîbÅ´±³³§¡Ÿ¡Ÿ ¦¨ž›Ÿ£¢žŸ¢¤­³»­ªÅþÖºÀà`O>22HDCPÝä̹¿Ï]¿ÁÍ?3NÔØYJBE}½ÜYGßÍØØ`:*+0-## )*)1>34>ÕÇãN˳¾¹±º¼·ª£«§¢Ÿžž™›žœ•–™™——––™œš–—šœœ›žž §±À°°»¾¸¸¼«¬¼Ñ½®§¯Æ¿»³ª©·Æ»­¨¬²¬­³®©¯È༵¾\<76<>+! '/+ "/;8/2.0F?9-*0HLXÞNÙ³ª±ÛJö·ÆÃ¼¿±¬¾=9À·ÅÏÐßÍ»´¿J?Þ¼Ù@EGDÛ­ºK?U¼Èg×UàÁªªµ·®£ žž¨­¨››¦¤£žž¤§¿Ï»²²l8;KB8.& $&(&#-&)-4>;5.C@=,*.>SÖ»¼º»¬®·Ì½¸²®¬­³®«©·ÓÊÈÉÈ¿Âɵ«¨¼ayhHNmß\HâÇyCYjQJT405PÈÉÞT׿¹Ûظ¾¸·Æµ¾¿²¹ÇÍ´µÆ¶È]ëÀÃÀ·èøp¿ÒÍEJêûéOËÊjûgKöÌÐâ½ÊÞ¾Ô¼¹¹ÄÒ½ºµ³·ÌÄ¿¿Ðµ¿È¿ÅëIÏ×]ùP5*(%*;=.0=àľ­¶°®ÍËÞ]G0+!&/''0316L=J½Z@7,3-1;⯲Ê_?<."&6»®¨¢Ÿš™š˜•”—𢬮¥ª®§§¢¡§°­¦°Ða6*  %*-2LëÅâOßcKA302- $&*OOFWľ˼ÂÁ±¹ëHEE/.,/:9-0쾺±±Áµ¸äXÑÂZBHB×¼½»¿º¾VO8IL;''>CçºÄÀ®¨®®¥ŸŸ ¤¦¦­¶Ñ»«³®­¦£©­Å°®³¸e0)' %*/=HÜż¸²µÇl71=3$%%&%!-=7=VáÂŽ¼·­ÅB;>>bLA=O~M;,,+"#'DG=NPWǽսÏlD=A;893+1<<>Ëв¦ª±³³¸¾Ê?9ÛTK@åºÁ»¹¶ª·uEJÛ@ID?½¹Ú¹¯ªª£¤ª¤  ¤¨«®²¬¹¼¯®´¹·´®­°¼²À?0,"!.:-7GÓÎÀºÂ¼»Ý71.($%("-2AVÍhÒ¶½¿Æ¸ÇmÑT>U26?9=RÚBP«¥´·ª¦­¼W>»Þ:MÑÀ¿³®¼³¬ÃH0CO;0/RÀÎUÍÉ¿´±µ°Ÿ£­¯­­ºÍ~M׿E>WÄÒÛÙܶÇ3)++))2*$):B`ùmË´¿H>é[1&$-+$'>LðWHÏÆnj×ÝÀ·¿¿®¦­®¯³´»×UoÕXVûxÛÜ×oáÕ>265)&$")1*!#.=>G8N¼¸ÊLB=>5$ &#$##*7>4@Ôq\âɺµ¿WÝ¿ÔUED@W~ɱ¯¹­®®®¬¿áµ²Ï×ÕØ¯¸Ädº­µÀI@ݯ½BMÁ»É×TЬ§¬­¨¤¥§¨§§¬Ãί²»ÁÚ^à¯ÉÜàfCGC4Kw?+),))+,6?8,EÅy?+$-83# .-,("".J<4o³³½ÁÞÓ¯¬Àbudz·¼Î°¡­ÒÙÀ¬¨°Èº©¯¯ª­®®°Ï½¬°¹¾»ÏU[N44/!)''-<.1H.4iDÍ_550>-))$.'/-%,8VÈ^M?zÅ{µ´ÏÉÒYüÔ·åÆÁu¼µ²µ«©¸Ì²­­³½å¹¬±Í×¹µÏ-*<¢¨K½·%5.Ç–—Ù6Ï5ª¸·ŸW'I©¶,%>y9$*'/&(=h¯º4.31¤DKÊÞÇ/-4;°.5©Ÿ¾Í°Û;)4D;¾¦¯@=14+»C»Ä±·5³­›¥œ;zºÑŸ­œŸ–¤«á,-/.éF»Z1('NÒ¼Ný)<»¢–œ©-$#3A¶ ¡¥HKG¶¯Ÿ © §¯¼¯§­Ã¥Ã?$"G42-@§Ã,$G¹´¹Í48B« £ŸŸ»&)ÛIYµ£¥Á®·±°§¯à«¥¬¯®¹¼À±º¦Ç-0(*)OB¼£¹/0HG.Ç´Ã3,-1('/'µž¯´ÕÀ=»å}º ®Vâµ¢´ú´:K/&+:n.mÞ¶Ì.#'%",);»±²³J54,1ÊÌ¿°©¬²RY9Gº²¦¸²¾¦£ªeÙª«¾ÂºÏ»9´­Ú͸Ñ=R!*>ô¨¿..2/,"0?M»Y'08/FÐ_ʬª»>:,2/Ë Ëdz²¶H¶Åå\U«Ì¶­¯Ÿµ×%AÈÉ=,<<[E¿k(-%).+*õ±¨¯-.87JG@㪤½ÍLH02»¾À<³ª¡¡½ª«©³X<¿µ§«Ã¾Úp½È?63;8J¿O/*661+#)V´zu5=Ï,<78ÃÅÒ¿e40Rkª¼Ó½«£®°¿­À¬µV:D­¶ªU7/M¶¶H00BÝöM*?^G2<-;·Á+*/KKLP;«¼Å躭Bgò±È­Ÿ§¾º°¨½¾¯¼=@w²²¯Ð˾´³WiIe¿?J?p>' (- S¿SA?Fûì=K^ƶÝb;MÛÅ9AÏÌ­·À¾©«µ¶·¹üEVÁ͸Â]4k¶ÄcßÍ4<9-,7Ö1)698@9êÈ7Cx¹¾W,ç®ÆB@´¾L.@¿©¥¨­¨£Á¼® ¯]RYìp¾¸éÖ½û{ÝÃ{EC6<9HÙ'&,*&5õgC?7K?ÛÏ̯Í;BfÃR3HPνª§°¯«»»Õ½®¹ºÚÉܵéDÜ¿½RU¿­_,=зÍ0&)$*N³ÞYyMßÇÃdXÕLTîÆÏ9;ZiEç§°¸º«º¸¨£¨ÀÑG8ÍÆKBû¾Â»ÆNÞ¼Ñ-,Cl<' '3(!N¸K9><9c¸¹¼ÀÒNBE1.¶®9-Sª©§çÞ®¢ªí×±­ù:ůÝðÄ|ؾÀÙÒ³°=*(9¿<#,@;*0BLÍi;ë¶½O+Ò®Ë4<¬Ï=&)âÃÆÌ¸¯Àµ«ºº¯¹jhÊÃ}SQ츰´ÒÑÌÕ0&>Ü^-%./#!.벯Û6=åÐïZ¾¾TK;8AA5)0Gǯ¸¶¸²°´·­ªµH7Ú­³Ë»­¯Ç^6D°´q8XÓ]8.6-:>19Q¿¼Òg[bI]¹dG:51?RèINÈÀ¼ÁÏÏÌ®­¿¯³­Á?RsetÛèRǹãϸ¸¾;O>=65G@C;[Ø86>Ý[ÏÅY;DT1FÊQ,.ØöL¢µU¨¶ÙØÚ­®)GÇA°X\¢´+,²¦Ä*ÞÂ2<Ä»LB̯XLG/b¿º¯<"Z­®¹½&<Ų:*'-.),4^D3/)>Ÿ©ž™š˜¥º¹·µ¹¯£œ•’™©©º,*ÛtGé«©Ÿœ¡°W»Â;"&Hu^حƵ¡˜¡Ÿ±·¯I*,2Í­¥¦¤Â,&',$$&ZÏÁÌ}ü>:ÆÄ5'8ÖÆ®¯_K¿«·6(5P+#,*'÷7!0b.*=*":Á¸©®¯£·SÔ²·<{¹›™™—¢½áÀã×>-/a½´¦¤®µ¦°¾:RÕ-7=8)Z©£«¯¢ªÀµª×%$9A6;ÊÉO»ºn>@?>×@U̾ÆÍÎUL@CJ;1::+>VP1]°©²Î°Ï@<5#--#8 *@0!,5>ǹÉjµœªÄþ°·5Dª§¬¡—œ¶ô»¶¬¶¾Û_ܲ§¬Ôt«¨¡¨¼\o¿¾/.ÎÃBó;QΦºFj±½Í²µAA½¨ñ/:M?TÉG0ɨ­ÊVð¿/<ïI+#:j*(À¨ª²HQÇ´¾,&*' "E>/?®¼*?«¡º8̯²¾È¶®®®§Ÿ¬»¶¤¡¯ß»¨Ÿ¬P=í¶²¦¨³²®¾-)ßÜA.>L.9î»_UÅ÷×µ¥³?ÈŸ¡m0RØYhÄvGد¯Ïº¼¶¸¯·qF-'2-".VH6ßO>¿¯¼N55 '>ÌÄ.K¸±Ô7N»Ÿ£¨®¬¥¯Ã®¢Ÿ Ÿ¤­Ôâ°¦«À¸¬ª¯°¡¸[¯¤´DVÆòDO;*$/?2+3nºH訮RΠ¡¿´®CMª¦G%¾ž£¿A˰©¹Ù»¹Ð>9(,*6*/:_>-À­;&0B2 $)I?¦¹0í¼NF¸ž®»«¡Ÿž¥¬¥˜§¹»¬¥¦£«¶¼¬¤¤À»Ïº³YCMJfÅ´,$)±Ã!S¯kX¾ÌgGº®·­¶9Á¢£Þ4ªž³t­£¿÷© ­ÞIíC5/s7?a5WB".zN. "1e,',,.+Í.><*#9©®¸°ªŸ ¥¥¼°›’›¢£¢›ž²µ§³½§¬×N¶Pß¹VK9·Á0/'jÜ8OÎú88èÎAM^PF­£F0«Ÿ´5.£ ŸÙÏNµ£¥¥¨£¶Ï8G·`4Fܯ< ,EZ!&;+9/$*),$'(* Õ3K Ö+5 ©®£Ÿ§©œœ¥ Ÿ£›˜ª¯¬±²£«§¬¯À=±¸3#Ì>(¬½9*Þb0\GV2p_4Ë©«G/ʶç.¿©­£¡¬G?´º«®¯xH:$" )%3%- :-/(M³ª£±6ÂX?@×­/;86$ 6?!$'  IÏ7'¿»>·ž œž§¡›¾§Ž“›ž›¢¬¬Á­œ¼¿£”•yĘ›ÞB´¨²Î0ÛhN&jË\:Ƴ¼ô0=*å1Q8"19øií°­©¨¤©·›˜Ñ´§ºÒ»¡«|¼¸§\20   -üNÝ7›™«¥—››ž›š•§©£¦¾­¦¡›œ¥œªc±²©˜–™«º¾©¼.55  *"+06_05.7ÓÎKµ¡­«·žœ™Ñ¤—š’‘•›G;¿L·ËX8?¨À¬« §P$,AE»#$(7R:6¤œ– ÇÜVª¶Ú›¤´Ú2ÖNËŸ«¬­lK;/`;9PNd½¤¬µ™”©²±D,/)+µÝ­¯=,!-.,7¾©¯¥¼@\0sJ@¶ÎÕG,¸£Äº¾«¼È¬Ak­9¹è{ž¬¡“˜™©½®xT!.(25$!%!$%0<»½À²>AÇǰ³¿®¥œ¢“ ªŸ«œŸ§G@à4.2,7»yÇ¥ººÑM8) &;/D'9Ô.0'0-;¾ª©¢¤½»±µÒ®­¨®«­œŸ¿²À¼f[ºû704'+,,,䪾±®«Â¿Å7%!$,,*K6@¼ÝÏ/?ê*/?|µ¬°´Ê^9,¾ÆLËʬªª¯²ÐȹP·Þôº¹Ñ/@@æH̳±¨±®«ÉeM(-!'-9ý;Õ-8|)O,Å<>ÎGÊ\LG,èÃJ¾´©¡©®­¬®¸°Ã½±­®B?»ó?[ǵ§¬¨­×¼Ü-&+&"!7.(+%6=%*2*DÓkWØØ1-GÄ?.")+&').'))$(8;?]@?Ö·¼º´¯¿dNÍ ¡®Î½¦žµÀ£¨¨¶R¾ª¬µOÇ|iUBÊ@38-7Ý89+))3:/+.ÓI/"=ZßN**OÐâNcºæY?¶±ÃȺ«°´½¼£Ÿ®º¼´«¨ª«]ᨭÅËÃÊÔz@45>3+* '+%("2;6*-vÞ¾µØÂ¨­¹²¥¤©µ¬°¶«³®µ»LÑÊΫ¾B:¹®´`Ý´[IA<,>sj¯¶¿¶¨¦Ÿ¤¦¢¨Ÿžœ ©¶¨¥¯°¸Å×?N:Eb(-;:)$4.# &C:F55YQ?CJmYFCBîÈÖO@Ú¾÷<÷®±¼¾¹¿­¡«´·¨£ª°¨©·­µ²ª®³¼ÄÀj-),0+**53MÐ×ÉÚ·¤¥¯¬Ÿ ¡£¥¢ ©·Ä¸«­ôOÓÁË<5OÎÇÌaßµ²À½º·Î3885)(,)#+' (%-787ðÊõ­¤ŸŸ›™šŸ™œ§¯·­«±l:DKX,---=,*/0-))-,.6!ÕØ:Ñžë/-¢–Ä/~<<¢3M°Ñ ´$”¹4¥x•-§¥²š¯Ë¨®©9»P"Å@%NOï0?!RX),-(01=Aï7¯Eªµ¸­­®œ™°¡¡©¢šž£©—¥¥®˜­©µª»ºb@(: '!1"$$-()[Ø¥›˜žžš—‘“Ž“’“Œ‹‰ˆŠ‘’Ÿ§ºRJ+  %9TKð')  ':ÝÑ\»®¬µ¦¡››™–”›˜¤¦¯¢¥ª¤ž™š•ŽŽŽŽŽŒ‘‘Ž‹‹‹ŒŽ‘”›£±éòKILO³¼ÙÂÀ¾ÅÍÂIK<=(% #%1L9PMt73DJ9",,&&'"'5X.3f¼}?ËÀ³®Ÿ›œš’ŽŒŒ’’“—œš™šž™™š˜˜••˜˜—•š—™š•“Ž‹ŠŽŽŽ•›œ¦Í06,!"+=5*')' ###'*+9YZ805-))>??Q×Ç竬±® ©·°«ª¬¨Ÿš˜‹“§®¶öq²¦ Ÿ—””–—˜¢®¹èYþÒ`PæÌKF¸§´A8KJ/.CsâUKH65#"+)"CÈWFﯩ¬ÉE1;4#"/ÑÒJGÍÞ- ))"#/@˼º©£œœ˜‘Ž’œ¡¦«»Æ¯¬§¦§¨¬©¹ÔDWÚ5.9NA0?À·Á̪¡œ™Ÿ«¼ºÈ=*/H<& #!%!'0,% &=S-"+-))0.'##+( &@Î4*BÀí;61*"0NC6.:3*:3! <<-'&*)/49@÷±¸LJkß8-1769QÆX-('!$+/<ç:*1LwݰŸŸ¦¥ Ÿª°ÌUÁ­§Àß²¯Î3*,)4çàRXìO+$8]VÀ­­q7ó«©è:O`¾¹µ¼9/.&*CD>II,"1Ùèk¿µ¿Ô·¹F4[ºO4T´¨­¸W,*27*"&DÞ?Nº¹Å<'8­¯^##*7/'1+(++('<¼Ë3-LµØ1A¸´Ù¹©¯ÎØEC[©˜š­º¯ª®§™±äȽDN½[HBʸYM²Ÿ¦?22.Sº¨­¹«¨­µ»­¨«©ªµ?;¾èCA:EK¯µÊD-K4.Π0,I*Â>J¿£+V/¦0ÿ¯˜µ!¡¥PÒ")(3¢É¼5«@»Ú=Û?®L+º-(']¤.:()$7¿®Ýœ´¦˜«¦šŽ‹“œ˜‹”‰‹•¸¤D$.2   -:!(-·ÀÑÕ¶ªÃ¬œ›žž‘”Ž“•™¢ž¨ž”‘‘˜¡¹¹·­›œ–Ÿ§¯Ò¿»½Ë¬ ¶+ !'?L/,D[Íκ ™«ÞĹ.!7[­¬±¯²¸Ä°³®­´±ž¼¹£–›œ’Œ’’žªž”•žž¨ ¤²¶ª©°ÇÅÂòJEBÐÝä°®´ÜU7&-.4872&.,+*/&,* !#-)(ÜÍ6&-N?C9-'&06@- :o?%,M0*,9½ºº±ÇÏÒª¦© £­©š——‘‘“““™–™ £˜’˜““•’‘“•—š¤®ª£¢¬Ÿ’𳍢¸¹¯ZcÕ½y:ZËF '4  !$%",$ 4'#.)&/)&9^Ûж¨¼°žž¤¢ ³æª¤¥ž˜›¤¬£™¯®Ÿ£¤š™ž˜•𥣗›ž¨¹««¾¶¡›ž˜“›——£¯°¾ÝE.83( ).+8) ! -aÅdz¨·TÚ¼¸¹ËJ®®Ì̬§¾¹¬®ª®ºí+'%!$6ÒX=Õ·ÌÀ¬²Éç¼¶ÉV6{_(.Ol6/Å;*0**A}=KF3<.'/.$(1 5> %.,'%2,#58(H¨°´ Ÿ©±¬¬ÒLCc¸\1Ex-*k½:J«µ?LDz´Ì¯ ¦­¥š™¥›” Ÿ”•–›šš­®ÇÀ°iNÌY**Ù¿CÓ£¡º®¤¬²Æ­£²²¸´ªÍ´³5G³¦ÈF¹Ò:,+17ÙF>B)û.)@­Á.ÖÈAr>=I?¿Î35ºÌ6º®y9(-.!.*(?(%?=+%4N583$(+#.?B»­¼U@²½+^ÀÝÆsyu8B?$ -Ë.*X<78==?¾¥Ą̂ݹ6]µ²­­šœºžžÅ¹«°­³µÎ;V9=Ä]ÖŸ ¿¶·ÞM:`?S¨¯¬¥³¡¡ÝZ¿ª¯Æ»?*@8#&.*4/#" )) ,.3Æu[µº·ÍKÛÙ¼ÊMà×>RÚÖ¿µ¹¼dEÆ4*<,&%+>=VUV·Þ2;6=HñU*2Ñ<6YßW¾ÖD½¿ÿ¹µéO·§¸²¥§¨´fYiÅÎÏ­ìe®ÐMƦ§À®¯¼ª¥«ž ¯ ˜™›–²´Ä9;RB>-!'%)(3I$'6'$27=;7_Ë´±³©°;9QD71))/-J7=! KC;*4(̽;¾£¥¨¦¿×È58-,*+3ÉÕ>]ÖP?»L%#><>O®©FЮ¬ §©§BNò6@ã×hÊ¥«¤´°ÀHaI5Þ³¬¬Ÿ¶W¬ ¬ÓF-"-;ɸÀ¸­¥ªo/.% )Ñ®»§ž™››’›¯/ +1Q¹ÁU:G(-5;4/$  ߟŸ¡¤²[14*00QØ<>=G²¤œœ«¥¥©¬§¡¨¨™™œž»WL,?K3-EÜn¾µÞé½Å`Ïß+ 1ÖÏ­®®¦¤ ¸8<33("+*Fª› ¢š °®½IIÉÈØýÂb4a¬ª¿_Y<5ÂU>RIôE.dF,##"/5P¬ª«¬·ÍßÃ\6( &^£Ÿ¤ž ¦ž›¢­®º>4B4+5Ôµ°·µ»·®¨¥¯º¼f)&40)&-&+\L1%3F;Ú¶ÅZ:ßÊÔÏA98Ý« ª²®´½¾²¶®©³h_ON-0A0;_;CÒ®­©›­ÐH) "$:Âà<ɬ«®®³8.B15RD1/¾œ™—˜ž¥ªìA9Hë5}®¬¦šœž˜–”ž¬›Ÿ¯¹Âª¢œ””››–“‘™¦»¿ËøÌnÔ¦¨´ª°¦¢¬§´Bè_×E4/#" %5::-2J=+2$!(#.UëÕ?I,!(5$"+-+">j6<õJ.?óQ)%2Nß«¢¤¢š•ž¿³§¯¼³ÂÁ¯£˜™žž“””“˜“Ž’‘ŽŽ’•žŸœ™œž¡·óÆ@(&:51X©ŸªÚ¼·ÎÒ. *)$" *+##D-3¾²¤²ØÍÆ­¦ÆÒÜBº®¼Ä˾©±¶§©›••“—›”—”Ž”–”‘–•”š¥º¶Ã7$#dØUÒ­©¢žš›› ¯Ø¹®ÅÛDW5/=H7 !"U¿µ×QíGJ³µOBG}F)4HF8;9/'D«ª­´ºÄH쮲yLFÕü]¿¸ËÁ¯­¸HÀ©­»¸¾Ùø­›¤¦¡¡¡ª¹¦¦°¬ÊD,/7( '! '%#%(+#;½ºª­ÎIE:ÚËC>!')'&.鯶»Jî¿lË¶ÊØ;7[òɵ¥ž§§ ¨­¢£¬ÜAμ®©Ÿž¤¨§±§™—ž¬©ž›œ˜”“˜•˜š”“›¢Ÿ¥«Ÿœž®ÉÍE/K²Ò*'3-1=иDzÎ7h§£½:.IJF¿¯À<:d6'(4. )'%48" /kT<íc+5¹¤¨d=@ANÁÄ<=ÏË/.6':ϾÆâ¼oûª¢ ©«Ÿ¦®©š‘“““®­¥¯U-+'%Wç/+'+/&+ù¦£¹»·´²¼¨©¯§¨­dG« ª¯¼Ï/'>9 & -UG.Cn8#%I];98/'(¼®ÆÁ¿¯¹Ï°ÉGȱ©I+᪪L6;/(#.*!'#"K6(MÀè¾!ý¢ÖÏβ¤­ œÎªé›)‰¯¦$®8—¬®ø§8©D¡¿<®8F¨É¯<§°D¶4˧R8"®µ$Ð"!Ñ-'&NÖ@C9*Ý+©®ØÏŸ˜££—‘ŽŽŽŠŠŒ“œ•Ÿ>@    &&,8·¥«´¶›¤®°>¹­®PTíÕŸ˜’“Œ‹ŠŠ‹‰‰‹ŠŠ—ž¤¦´ªž³B+ $& (0<»©µÐæ8" 02-+1,3M>6=<:AF`´¬¯­›ŽŒŒŽŒˆ…‡‹’”—”™£¹¼©Ÿ¥¡˜–›Ÿ¬¥¡©¬¶Ó¥¨£«ú3=8A<# "$ !-Ê®¶Ê;/**@òTN*&93%&-6ÚõŸ‘ŒŒ‰Œ–œ™’Ž‘”‘•›Ÿ™’’‘““• §¢§ª¤œ¡¬g1,$ #$#" !"'#'(2~ÖW¼¤£¡¥¯«™‘””š›šŸ§œ¦¤Ÿž˜““—”“—™œ˜›Ÿª§““˜™“—œš›ž ´_ØÃàG,+0)%-,# #&??(#"%)-&%0%"58G<4LÔJ21IP:$"$)r~?DHNj>7@Ï«µ»®£››žœ˜’™Ÿ¯¬­t5>Ì»´ÂÇ®¨°¾Å¿ÉÇÕgǽÄ^¾ª¡ŸªÇºÍJd?>9[Æ81CC@-$ 191"&%&>½Á;6>KPU<=IùbGÖ²«¼73Pé:,+'0Þ´¯¨š›™š™™™š•’’””‘’’”˜šœž¦­ÀåÕÀ´¨žŸ¨¦žŸ¦­±º½ª«²©¡Ÿ¢«£œŸ¦®ÀJ371-;V}@/20,$ &)-'&*5I;4%!+*-53?dfHMQ7,+4A4(!%-5+&$*336@ü°§¬§œš£ª¦¥¨±Äѽ¼¾ÏX^Þ\56Tn?16=PäÞ¦©§Ÿ›ž©­¦ ¡­¹··±®Ë¼²¯¶{BUÑi2=VN_XÌÃÃÃh=XÇÜ:$#'&! )-,,(!*@B-,8;1$ 3@47ESdÙľ«£¨© œœŸ£¡£®ÍY__Í?,/9?53>çîN7:GàÀâŬ¦«±´°«¹àZXÍA*&'6>0.1599;RÖÜFGA¶«®«§·¬ÃN©ž«^¯*M®ÏÚ+2¸¾.*,-!=­¦°×gFÌHž¨+Ūª´+»¹±æÄR •)%¤ !3ª§ž¤£³:úžŽœ/Sœ—Ÿž;" +'2¼¶£´£›Ž¢¹°°Ï78:$XnJ>E?<  K°™›ž¨˜‘•¦²ŸŽ……™0«*5>Þ²¬úBN9ö¯V8¯­¢¥³½²µµ²D3½Ÿ¬O!Àt#JÌͳ¦ ¥$;š¸#.¿(§Ž›··‘ˆ;%¢žQIÀÜø,*Ù¨¨/#8À»­¯¹·ÁÀ®µ($¶¤µ1)¬œžªŸžH8½/5ͨœž¢¨¿!§š¬V"'µa5£™¯-³¥eÝ’¢!C°06¼–k..&(»šø-)!%·ž·1Ó ©­“œE%g¥©,ª’ +:Ÿ¢~"6ãÌróä.+:UK:·¦ºMµ•Ž£_²¡œ ¹!è³E"X´5'Ìzï¡«0-E$ ð&Hc^®£ží"5¤¨'+X)!-?7E«¦Þ&ª¨¿é@ ´¦Å½Å0O¥ªÅ¨›¬¹š¿9.:78zûaN6:lmĺ¿½´™›9w¤²3!휯ݺA:µ¨°š—U#&G¡À ­žÔG­²,)Y5&BÝ:5º©Y*&Ð¥¤ÈFȶÁ<9k»Ê=-36Ï·oD=B15RùE<á¿Ê5,[¶ÈXh­ª¼µ¥ªÒ± ¨­ž´VäÀÇÖÜb+&¸›¤ÍZÀ­¡®<<æO:ȯù)-?´«@ 9«³ùC6&7È9 ,ZæXB24Ûã<.'#&:-)2A-%;ÀÌ3<°¯ÒNè´½I?éG.Ùª¬ÂËö9[¹ûGL¹¨°««^S½§ªÉ@]°ÏW±¸­£§­£Ÿµ¿°ŸžÄÇ¥œ§¾°£¦Å7+BÃE-)$3[;[½Â?)F«©ÂK8X»²Ø8-# 3%c¹É2!"//) (9íÀõ·¯Ì8+'+".å־Ƹ¨¹P23÷ÊF]µª«¿Ø®  ï*)(/ʤœ›¡°Ã@:þ´ž—šžž”“ŸÆ/4?*!.J~¯ª°ºR*'*/,1V —œ§ÉJΫ®¾A$'3BWpC4.'')6\@<\OI6),:A.++-/*+.9JîÎÓ½Ä=-1Sµ§¢ž¥¼ÇßY¯¬¸»N7>úÂÀÌÝ`K7;89II˱–Žš¦³°£§®´ÐqÉů–š¯<-&!1Ë¿±¦¥ŸÉ0*%+Q·Ÿœ¤¹>+&<Áµ¾´¹ÅÒ¿W%$G¨¡«×>%"#4Lã©•”™¡±ÆJ.-1LGÆ®¨¡¦Æ>.*,,<É©¡ ¡¡š™¨²¶Ë¹³ ˜™œ¥ªŸ ­»|J;.;+.¯¢¥²¾"*»ž&¤¯˜¦š‹  ¨Ê0ªŒ– ÀµEœ (› + $¦¸¸¦••–›—œ¾U°A$   !!3Ϫ«¾.Õ ®¢ŒŒŠ†Œ‹‹˜Ž’ŽŒ•˜™›¯¶<)*  $/")22$7Á˜‘ŒŽ‘›¨´´äfVI9BW?+ $&,*8Kµž•Ž—­µ¦Ÿ–”‘•¥¢ªÆ¾·ªž£œ³¸¡Ÿ¤¡¤®¤£¢­Ÿž››¡­¹:-<3>6,6»¤­·¢•™ž­¯²®¬¸ ›™¢¶@&'  + 4µ¼¹«¯´¬›Ÿ£·¦µY§—•¬>0:9ÆŸ¡§Ÿ §š•’˜ Í-R¬«·1" .YD>*/(#ͦ¸¶H.³›ŽŠŽ•µ¿¸¡šš¡´Ì:),´³0 )n¶¾;% 5l1+##D©‘—£­°ºÃ œ–˜˜”™­¬A.ȳεÕ,'%4%" /Xž§ää»¶Ç¢——•Ÿ²¾Ù6ÏëÖo.LÏ;a­¨ž¬¯³±´Ÿ¡§ °¯ãEؾ¿]¾V,!  *£²¼®LÄऑ”Ž“Ÿ«Ÿ›— ë,96Uͳ»(I›—¬Ð_¸Èª——«)&)+JS$#(Ť¤ž¶=´¼ªœ“‰šœ²¦›Ž•™Ú);=- +. <Ø·57-F⟜˜Ÿ¦ÇÍ~¾žœ¥¯°/#1`½ª°ÃH4rf­œšÕÏW:Á_ª¢¬«½5/+ͺ=ÂÔ&&!((.ÊÛ:&.Öª±™“™–›Ÿªœ™“˜¨­¹ÌmÁP­¹ê=*  &4$?(6,(+*'&7JÇ®¦ –¡½´¢»¨ž¡¡œ²±²êÎ7*J@1S)'?J]=G=»XDþ]¯ š—™¦œ˜Ÿªªš›¶®æO5-Â>-#+" 8#*0~¶L76'8q¸¨¬m/2&Cªª™š¢·<6­©¦Ÿ40$.dz««,-+/=©Œ È¹&.¯—­ž§J.)Dz¨º=#!N¬™–£/$!Ñ£•˜«?4*Eǯžœ\8]ÜŸ™›§.,ïK²¥¹"+#9¯x)*⢾O!8»¾Õ+&%.Eª¬²¨Ie¾±œªš”—›²»ûǧհ·LEO*,-((2%,0"7§¦§ª>1,(Í¡•ŸÉÔ££¦« ™œœš ¼Ò©ž‘”¦x,)/R½¸?& >˜™œaÙã®ŽŽ’“°("ïÈ]8¬º.4«–Ž—Ÿ¯G«–Ž‹’—¯!#:¤–—˜ÒH¶“ŒŸÏ,.ËžŒœ¯?;ϸžœ¯à8-S¬—Œ‘É3'(>¬™±4:*;¸¹ÌÌT&@(4/œ¥·9%7¢¥]3( (Ñ7³ LT%#2GîµÐ1&*®Ÿ”“±À¥Ø´¤k73$/=µµ¯§­·®£”——­‘•——­S=ÂÄнÎ=É¿V­¼^;+0&!&)JÊH4"$"''% /ÿV¿dLoJà ›¬Í81¾@Ù±»ë- $&8^)+NÈÃ<=5̶¤™™šš®¶¢«¡¡«¿1½i:ç¼²Ö81IKk庣ÜÀ¸½°¨ ¤«T¿¼Í«®ž©P1'?T×˺¶­¸N¾¬¼¥ªua'9B.á8!!##'+ %!>AGH/L¹­­­¯¿ßQÓ½M7:DL{`?,*H=1-5a¸ÕϾ~©œ››¤´¹®¸ÂÃ=CìA/++8³»]54E3¿ªÀ¾«»º¬žš£¯¼¬¢ž›§ß/&>¾¼¬¨à/#,ù°¾0,&#8Td@&*0 %5Ø®G!8.'ÙÄŸ–˜ E/=°”š§±0#%Ò³<)#&¿¥Ÿ¤a+®™™›©Ï,5¾«£¤¯-"" ?©˜—£0"]”“ ª©q´›–”™­ô1D­—›¦B&e¨¯m?&)>³¡Ï,!A¾â:+ $^¼{)/»¬¹¸,"]±—œŸ¥<"5¤š¨Ö:µÂÅ;$*¯›——œÃ'+Ïž”•¬F(A¯ª¥­ÓV#/Ïš©=%$È‘”ž¯Ú³ž™™—›£j,À”™².#Q²¯É:%#6ðUV5 \®Ï.0J7**λ´×-"À’—Ÿ»=>?á­¥¯¹>&%5ÍÀU1 B¤›ž©°N0?ʪ¢Ÿ¥ºÞPÏ ™§¾M-*W© ››¥·_9N¬˜˜œ¬¶¬ž¢¥ß/9ë¿®Ÿ§½H&"=¿à;*'!#&(0(!1RD?, #25.#8C'-,68.<#.Ϻ ££¨¾ö28¿¾¸¿´Ä77@p¼Æ;6(/b°ª·¿ÏE5M´´¡›¢¥®Ã°¤§ª­»Ó¯¡™£¤¬ÐóW· ¤ž°Ðž½¸»hT=.ðƼÙìÍ*)SÜ?&'&,)%1ïÉÆA4"+ÏÁÛ1!!2O9J[7/1;À­«ì@h(4>g¹I­°.Ò²°«))>—±¬œ®¡Í¥›é3¥–©º8>«¦ž7%j¨ ™í).¥šFª©;»'ÛŸ* šž38¤”++²©©¬Æ"¿—L [®E2#&¡™ «¨­Ã-Kڣͼ°ï''A4± “˜Æ ¾£¤³Ÿœ˜”Ž‘¡º®£Ò2žŠˆŠ¯ %’™™Ÿ³³ÊB©¥»Ø1)½Þ,.š§Â; %&  .3-Ѩ»C¢Î-  *Ä0¼—”B!±¸/;§•–- )ššª'*¹¯®¬G½­¾5)¡š£ªNFl·’‹’¨58¼ª¤N;³§¿',£—ŸŸŸ ¦1)¹š˜˜½>'022žšN§–¡²Ÿ9 ï ¯ %—¬07ïâ=©¤"  7ž›+/Ÿ¢Ø°Q2Ȭ«¡7"˜Ž›# Ÿš^:¸Ä6㞎š®%$º—‘£®Ï,'>˜ˆ?)Gµ¢­ª™’¢%?Ž´.'0-¼•“¼MÍ-–]S6 0».+?¹—žÄ+"ºš8 KŸ¥> º»¸£Â+$"!+¥›½®¥H 7¥§½=9/<½®©¾1'#µŽ–»­—•¢3(­“‘»<5-b¤š–‹˜5!/<ÕÂ&X¢¬¯©»1Àsö°¿àÐÎQ3ÂY'#6Ð4)'%;*+1:.A÷/4-#!-,- %èËåB?O.$ä\:gàV5QÔAº§²=0ײ¬¢«b"Á¾jKN´£¥³®£ œš¡Ê>Ó§•¶»ž˜§éÀÈn­§YG´®¦©§´D^ÂR?7,L½­G%BG=>")Gù01=[F3AÃ:+&.B8,"".\B22+*'>E2Cù¾4%6'1?;?OFÜ¥ ¾A^º¤®È¼©§¥L*H±¾%.¿¤£¦¨·­¡¬Ì­›ž»³™šœ§¾¨¥ºGáÌ»›šm0<É]0#$`¾·È<+-gR2*.K³ª¬¯ÃT;/ %3@))B:/" W¨¦¾=&') (EÙwÈÎTVØ¿ë9PÀZc³š›°0+îÉGK¬¤¶¹©©¬±¯«´Â̽µœŒŒ— ¤£°³®¬ª¦ ¥ª¨ªÆOÚ¿Ø,$-::Å©³ýF. ),8î`.8ól<7:!5<%$Ì®w1()DZ0 &0.8\4*8²œœ­¹À:(5ãÀÁ±©µÉº¬´¸®À>-GÚ^Çž”—¨¼ËNѼ»¸©—“œªŸ›žŸ±Áʍ¦•–œª°G#"4PømY06h5-9&  C©›ž«Ä)-EHNà\3/ 25 Ǫ®ÁN$#=°§¸cõÍ몬<**0GÏ£“‘”š§[%%(6Ư¦¤Ñ]½°ž¬®¹Ö)'"B„˜Œ™ <—…n´âœ!GÑ©”I§)ª‰«‹½  ®œ ¥˜“›’˜™˜Û 1,)OªªC,  ,! &**'æ3Kº­˜‹Ž‰“©³P¬Ç|©¥®ÊM$)% )9¢“—™ ®—ŒŒŠŒ‘”’•ž¬¶®¬«›¥Á.. # +8'!&5j»ÂcÊÍÈ*$**" %SĹ ©ÉÝN.)23º¦©›¢«Ë+!4OZËA½½>/)Eµ™ŠŠ‰Š’••ŽŽŽ‹ŒŒ’™š¤¼KÖLF±5(&  &2.?M@:$-06DS©«±§º) 0]Ų¯¾¾©¬>Ç¥¾uø½¥¡¦ Ý(!"7&Õ¨¤¡š™ ¨¬¥˜•‹ŠŠˆŠ‰‹•™œœ¡§¥£°¢¡_(+"!*9"-#!" &.IÀ=:,)S_Ç´¢˜› §¨·¯ïÁ§³ôÊ«¸²«ŸÉ-)4#&0/㲟­3*+Û2Óžš¢ê¢¨¹¡¤¡˜££ žŽœŸ¡™”’‘± ª]083% #+(C­{º»¸®µ—™žž®©²«œŸ¦»#$*'(-7, CcD5Çø]F23P´|ç*! #"99*-4©š›Ž–Ž‘•ŠŠ‹Š™˜¤š°5#&,!&;-.-3<0:<ئ¦›Ÿ›¡¥lìʲ¦¹®©7'AO*/80%!!6Å×@OB$I-¿jx¾2åÅTÏ4,,!:)#!5¼]DÎS¤Ÿš¦¡«§—¥šŽ™¢«[­­±¹°¿Ô,9µ/ÔÜ$H-5-=œ™œž  Ï4¯©°™šª ¦©«ž£D=KÊ-! 1J+(ÏÃÉå¡›7W$"')[¡ ¤-)&$ )#&P¼:.'"2AL±—“Ÿ£ª´Ô¿Æ¤ž¤·¬™Á­£¦ À' +6Q¥žœ²ËX4P7©¦¦š˜—“‘—Œ—Ÿ«¡©®¢¤–”›²:!"'!$,iÈ¡˜®£ÏWë2+ºì4Ìǰ>.À5 %ì©Á)0,.3Îq­³½¬Ÿ ›˜šŸÎÕ¼»§¬—–œ¡¤@2o·k½¶½«¿®Ä¦œ¯¾Q-MBí§¤™šªÆLB>ÄÙr­¢ªªºÞ®¨¦MZ (9MÒº," 1ù4z>>¿aŸÇ>\ !eA¹¯VE+ ".-239+Ò]Jf-),0`¥«¿¿;¾NTÉͨ –•–‘˜¨¢ª¶¥•œ•—¯G8.6 *\~3®Å+?.XÏÊB\L ‘—§²ÅŸ”ª»·Ÿ&©ž¢¼9% <(+n*˪®Ý )GØ%! 7ÔÌ @%r% 0c7.#Ú=î:1 ,Û«³¥š’“ ­¥¤¦À/Øh ¬ºì   P²·\>´¨§¾¶¸µ¦£–’ˆ„„†‡‡†‡ŠŒ‹Š‡†††‰‹‹‹‰Œ•¥¨›—–’”˜¢¾ME5/@+,-*/+*$! &'+*.dXø®¤¥¤·òG498:-]®¦§§²­°¹Ÿš‘ŒŽÁ28¸š“œ¤ªª¨Ÿ™¡®¹Ê̳›™™¯½N8-2Ò« ¨],&)@OÑëA7+.%2ZÇ­Ï/!:01*! ))&$ "(-3;;.'5ÑØ*"+AZ7AV>FᥠºM,*0-2C»®¹ÙI-.0L¼´°»½Äª «¦¨µÊ^>8:¼£ž¨Ýp;:RôìÓÁ¼¹º­¬±¹¹G/0.8&')>Íß\"!$%""(+=8<*#)',BÄ«­½ÖÐÂÒ_¾¾¥ž £œš˜ª§¨¤¤¤–Œ’™ž›œ‘“’•ŽŒŠ‹—Ÿ¢ ž›š™™˜™ž ¨¯ÂÑfGô¨«ª¨¦­é3'*?LAN[¾°Î>13**)+BXÐʼp, $,0''"",=J8#)-,/,/&$&&&+Ü»°­µÃc2)%,@WSé¼ÍÉÐËP<5)()=ÔÚ¼¦¤©Ã0#%1DØ\=/EO׿5/%">¯¦¡­ÂdXT0()=Ƽá;?^EáM6. 'Uº­°¼¿. ';gÒ=5-DHBò=/%*-;¿« ¡«Ã8<41Q¯˜–¶PI¹¤¤ªÖCVU¯˜‘Ž“š¨Íj>ß©š—˜§ª¨£¡®²×Þ\ûи —’’˜ž§µÍiWª™‘›£·¬¡ ¡¾>8P»¤›”—š£µÃO:9E¸§¡­ÇºÏZ5-,,,(!&[£«°G.)1®¢ªñ/.:äK*!+MÁ°´jH,#'EÄ»Q:42.-&"%" 1½—¤Í?J5,"%3ɳÊCNÍ¿;&;ND^¨§«ÄLZ.%)B¾³¼¾O<0.6,%'.P­¥Ÿ±Äɹ¸N5#%2庹ÃXID8',94("-TÐE% %.+ %&&"! &'(-Dð_3 /¿©²ÓDþ»ÂÊßY?4.)/MÓ»«§©¯­§Ÿ µÐ¾£¡°¯©ž™š¡  ££ ŸœœŸ¤¦ª¢›™–ž¡›–”𛕗™£ ›—––•˜œ¢«®«©«¥©°È>b²§®Z/,/UH))-86HDôÁ¸¸¼ÃÍy7IÚÔA)(0믶Çûâ|.$+/4+(,.14( *<:1/4C\=+'!0-.5?¿ÛL3.?ãØåH;3$/\ÆA2+,)$(+9E+" /10.'%$$!%5A;JKD8++098,& )+&%)/,& $,7?AoSMußÑRS95>Rü95>MB?7?[C.$3f²·ÂÖv@2Lž»ÉÓɺ«£ž£¨­ÏÈÖº«¥«Ã»§§µÎÁ¸âÊ×Á¼ÉÎÍòú±°¿½{?]½¨¤«³¿½¯¥£§¦©¬¸¯¬¬¤¤¨ºººÅ⧦¢§¥¡¢¤¥Ÿš›œ¤«¤ž˜›œ¡¤ž££ŸŸ ª®ÁáméÀ¿Î:;=IËY88MYeìÊÒßåôÁ¾­´¹ÍöbbË´°ÌG58k¸µNC+-483?>/&"%-77++'%-ÓØC8.6/8]WI0$#,KûÖI.,%/\õC1)'.4>=3=9.*)%,,+'./.0'+.3;åD,)&->éH9$!'0?>.'%.Døm- !*EMý:-3/4>9./-/02A>:#%/4Bm;'+,D½¼­³ICJÚ³©¢¥ª®¸±ªª¥¤¥¨°¯¯°©ªª©¢¨«¬´°ª¤ œ£¦·¼¼¯¨¤ž®ÐOÀ«™›ž®¹º»­¡ž¥¯±®¨¨©¥«·»ÄË´¯¾²²§ žª¶·Í°¯¥¦¤¤­¬´¦¥Ÿž¨×=`ذªª³N?CF;57)2AKPB=9LivÑ{ÏaVBt·®¢´Ë3#8ͪ²±É=7+:Ô½ÈK0$$&;ögo0'!(6/.,7=JJ7-*'%8ÖtA,$$(;Hl60&")AE6%"*-*$"(1>-$-8>>96(&"$(;ïA6#"+LÁi?3,--]ÊÞRC[TËçd9CÜJ=0àÐÑ3*<9±ÊD3#(,U²¦µ?9:S¾³µÇº¾ÞØÒ±¦¬¹ÌTÈ®µ²·­´Ãµ³§¯¾Ä´©±°¿¶¬¹ºÂ¬£ªºúÐÍ©¡¥ªº¨³¸¸­¥®±º´¨£­±°±¤°°¤¤¬¾¬¤šŸ¥½È³§¤¨šŸ§±±©¦žŸŸ¬¯Ëܵ¡—£Á½¹¯¾´¹ÂÇe¾ùÄ·{G?ÊÕfxR<@ÄF4>¹žÍ8äË/20kž¨# "*Q(,µ!¹¢*!, %GJ7)-X,")$)1,:±Ú/;))½¼[DÓËTLÄ:/>á3%*qAÂ/!$*8&-:W=+H0N!)µ±ÞF¼3*"5±°¯¹÷.i¯aãJ°©¨££¿«žš¨ž¡ŸœŸ’‘–™‹‹œ¿Ç¦ž¢¨¾ì5(X¿¼Á1,ü¨Ä(5Á¢˜›™®±§«É*2vªª£°¦“”ž»º¸¬¯È»¹³Œ ²3±ª·¶=,B®œœÀ­¦žš¶A&%DNÁЮ‘”›|('¬à¹´[®®à". #«Ÿ¡Ð%̳M79Ö(!*(&Ã¥¥Î '' #:®¡¡¨¸¬±5)!*N¸ª©§—–¥³©°;='6a¬—”—“Ž‘š½a͸ž«±ç¤ŽŽ˜µIܼÙH)+Åœ”Ÿ·±ž™§@!H®·CÀœ˜¢?-&)7/#S©µ°ÃLÂÚÔ!&'3ºG[E#%3.H:ÌÄF0!*)2$!ÕìD>'0'FA2°¹=)>¹¨ŸU8:«–´l',«™–¦Î²“”¥H(¶±·w¾¾’“ ª›“™KD.¾ Ÿ›ß¯•›I52F¿¹>.¼ž–­Å¬³·PL0/ʪ²F·¤¨i/&,88i¤œº°:ÕV" #¼Ú4"7³>8$#Ë¡¯N2-,1( $[ÅË,-0Íß -A5&.®©¦¯®ÓL¾_E#/¶¢•™™Ÿ ¡¦«UÒ<ϱŸŸ’Ž™¨¥§«M𻽯ž“šžžžªU;2-5Xµ®©¨£¡®®¿×A/-)+7¬Ÿ©¯¬¡ÂK- ?\×è»§±´]M)"%">ĹËÈ1.- $,07Oc¹³¿( 8ª«¿H*@6/#8x«É­¢›¢60):+-âÄ©›Ž’š¡ â;.7Q¿ž™”˜¢¯Æ8=GÏ©ž’”¢²C,.67H¼«¦—™±-.0,)#*0­¢ªÈÁ£ª·0.ÛÝ5ÝŸ™œ¾Q$!!'¸®Ø1,BB- &.-2è°«­:5uH¼Ð@3.»%+åÈk§ž§ ¨=âB5C',Å–œ¨¥£¨¯íEM,G·½¦¡¡œ˜¦ª7"PZ?8ƺ¢•­¬¥ªé¬¦·^G§§¬°Ÿ˜›¥¦¿Á­À¹²®¥ š£®¥´¥­¯Â²¾?¾-°F·´¶I$-#*#Gøµ¤Â¨«­§¸°¶­ØçÇLÔ8Ô¥£¹=Q0"%" *ç.:/- !$(&0%B+'6 =9Ò¨¬¼õÊ;J>4°¤§Ø,+8/!.ZÌÏ*%$ 89) /^:JÍôã- -66((/6:ìhBL>zÖ4'"/R¶¿ÜÀuS_W/-<½«ê/0N±§ª¼É®¶®Áñ俜œ¡D/2]®¸¯Ï·ºÌµb¯¯ž¢Ø.+¸¥™¤¢§œ£¬¿Þ±¬š—™™œ•œ›™œ¬®Ïƾ¤˜˜–  ¦¨«féPµ¬«š›š¤¤ £«óI09Pz³©™˜•š¨ÆaÌK,'B´ª¥œ§Û+(.F>3¾ ™¦ÈD0(&"/Ю¡ª¨¦¦¼- :YHR°¨¡§¯á/,((!"#.̶ª°¬»6">ræ¿ÂO4,+%)7F®ž½,%" "T­¡­É84221 # $O»ý<# )?=)%-/.,$>ξÆÊÏG>-#-AH/<á­¹lÛ·±?+*7´¢ž®»Ì½¸ÉN&+5Ï¿½§µ¾É§ž¡©´R?>JƬ£¬®®ÄG=km+$'i²©¥¬¡š‘“ ¿Fغ­²ªšŽŽ™¤®­²¼Êm½¥˜ŽŽ’‘— »É¸¼¬¢š›—’–¤=&-屩§£¡–Ž’žH) *Y¨¢œžŸ°¸J*%Ȧ§¨¥—–™¥^#ù©¡›šŸ±0(嬫Ÿ™–šŸª2*?¬›˜œÀ) QÌ;8^©žª/ %@Z¶­®7" /Ê»¼°©¢°4 =̪¡Ÿ¬ð, "&*.J­§©_! >Ù¯¹Õ+ ,>ëÎÅ榦@-±¡ž ªÀ=- 'Fϳ£žŸš—›³7)&.;·¤š–•™§Ü)!&CbË«Ÿš˜“‘¤* áž’¡h²>Œ’3½&Œ”‹‹ ©­£!7B<Ÿž­ˆˆ¯•¥H¦'ÌŸ’–‘Ž–—Ÿš¢ž—›µ9( +2/6;Kªž±3$D§‘‘ŠŽž•Žž•˜›ªŸž¦¸DE)!-\Ûª§ š˜–£©x:Ŧ¥œ˜Ÿ£®¹8 ##0)&M¬·¦ž©®Û=<!*);*+?!4*5I.,$+;N^2*t­Ÿœšžž˜›™–’–¡Ìõ®ª¢¬©©¯¶éM<  -4eN,+)I=tk]Æ¨š˜“š˜šš–œ¢ ›—–’ŽŽŒ—ž–’’‘‘‘•ž§®Ï.& &'-ȯ¢ª¨¢™’‘™–‘’’’”¦¬¶Çñºâ»eÁÀ4/>L:0(& %(4=B@#LÚ«šš£Éøª¬žšž”¨¦ ­¯_«ß¾·¹7*% ,+3  #*6*+-7¿£¯XÔ*%**P?S²ªÅ¬÷g0%ZîÆÎz7Ô^©Ÿ¥¬E. &-<Á˸Ï4¸¾®Þ*E½F¸4(,65Æ´­žµ¸ê,!&!>:'@B-5?;òTT8Ê®¨¦š”˜¤±OÛ¾µN©«¼©>/>T<5)- ,::m6¿DÔnº¬.Ö£›¥—˜•’–˜•“‘š¥©žš§­ë6B-,"!6@Hz¬­¯²Ð¹››•« •‘ŠŒŽ‘žœŸª¹)L®«¾­ÐúÅ@>#ø8))=°¤˜š½À·¼@ÿ«š›˜’™«¢¬9*%Ý(&(&:ªTÝ '),ñÇ¢©à¾ôH.40¶Õ:æÏ¬¤®§¾B(),')-<*++#2(*¸·œ·k¯35&!7-K75ųv_àBT&% Cá=0%'C0ÄÖWiEZB5B4E÷ýOXŸž³©»2 !&&&*$*=i:0-(7.)+2BÓYþ¡¥™™›œ¢ÀŸ¤¡˜ž¢–›ž—¥›Ÿ¬¯®=3M7- ÁZßÅ­­K\UÞ_¶£ºEû£œ  ••¡Ÿ§«Çj¤¡ª¨œ©¯žŸ¦··J­Ä·Á꫽ž¬¨ž’Ÿ®ßH(بŸRŸ˜•”šž¼¡šÎ)6ÊJÂ=(!0()"!,'% 9{L!-ÃHL,>Ï!"+E,/"@(("À²¾CJ¥¬Î稬£¤ê´ž³©žŸ™¦À¹—˜’™ŠŒš¤=¼ ¡°AÕ¢¡žšºº­ªŸó,*KÀ¹¢šµ“š§E;Ã°š˜¯¾n±­="9*110T7/s®·k4?¾#!//4,/)s7' &/È^#*À>+7O&:9+J³ÆÐ "ßÅ®²•šœœ±Pئ–•¬Ã­²²¬¤Ï¯žŸœ°µÁQz¬¦¶±­ ²4-:À¯˜‘›¯­¦µ»®§£¢š­TEgª¹Ÿ˜¡ª«³Y94¯§®Í-3& 1L`%!(e¹È;<:& $+jÞ 2&7·K?(#]-*N#;+C$%.TÅz×//.&'Ȩ¬°¬D>ʤ¥¬ ¬<¾Ë½¯¨›“§¢··³¨¨£ž¬áڪʥ›ª­¶® Ÿª¤ŸŸ›Ÿ™®BJÍ×8ë°¯½³±e;Èž¤½Ê¼è^¾Ã´ªª—›¬­š”›Ÿœœ¤©¦¨òÊ žŸ¦Â`S¶¤¨<.:ËÕóßLáͬ·L.(]5+ &"*àÝB &+àN61!-ÞG,%+&%:+ =bC>.ü+**G7.8'"Y¹^.=F9MÊÈ7QµŸ¹6/9Ìܪ§¦¬§¸ÚO¸®¶Å°¬­˜ž­¨­³ËÞ°¸É¹¡¥œ”Ž”šŸªÄ³£¬½­œœŸ¦¡©Ä±ÊH?<ÌÕ3+OÇÆ¿±©Ô>07+$./),ʳæ02?-'+) 35'#!.9,'6%&.)>³U'*:$""&&%/^;/F¨¢Ó8.24K³±´¯£¡£µ«ž¿Ã´º|0ݳ¦ª¨©»§–’­M=^M:Äù¾ž™ ¥¢ª§¤²ÈG®žœž¨Ÿ™“žÂϨ¤»ÒÑ¿¶¦ž¦à>Ög( +6 H©§¬¯. & 2&5ó;5)+**#ÃÀ¸<3"ͱ¥“šž©¤§Ò$Í0.G­M$  ,5-(&/6-%91+ºŸ‘’”‹Ž‘–œš˜‹‡Š‹•œ¨¡ŸŸŸ ž™’“’œ¥´§©Î´:²¦™•¤» ¢­,09.)|ÊF" +ÀÉRϹ ­>!ÀŸ§Ë³¤•‹’Ÿ£ šž¬ÐK·ž•–”–‘“Ÿ÷."DÀÌÏt¹¦›™¤²¯ÀºC, "K啕t)     &<¼ÀR4202+,2<.6;96E;9媠™˜˜–—˜¥³?3^»œ•ŽŽ”¥¢ žœš–‹ˆ‡…ˆ……‡‰ŽŽ’Œˆ†‡‹™žª¹KP»¨Ÿ¥³²©¡œ¤·;& '0& )*"&#!-H̰©¬þ*$1éÀº¸±¦¡Ÿ§¦›”‘•¤ÉN¼¦£Ÿž–ŽŽ˜£§žš›Ÿ¬¨›’“”‘•Ÿ¤¥³Ïu­˜“¢»XoJ4"(L5'.?v=,**%(* ! &--(KÆS*&.2(%/Ʊ­³®ž–“™¢²¯¯®´Úœ§¹NbÃÈâ(&b©©´{¾¦ž¤³Í´­½`* +I]O.*,(( %+" 2RßC/K߸K)#'.7?.5=Þ¿à\;M:5+*BÜ´´¯¯®©¤¡¦«Ìê=;4-8ϰ«®¼ÝÀª£©ÊA½£–•›—ŽŒŒ‘˜™”’˜˜”•–”ŽŽ“ž¦¤š••™œ›˜–š¡¡Ÿ››¢³îÔµ°ÄeQ`mïGRÎÎ^NéZK8(!#+0. 1BF**$()&(+FçºÃºªžœž¦¹¸·©¢ ¢«¨¨  Ÿœ››œ¢µÂ¼© žžžšœªÐN2& !-** &+N¹¡œ––šœ¥ºç¾¦™˜—’‘”˜™™™––’–šœ¡š–ŽŠŠŒŽ˜ž¦¤››–“Ž’—™›Ÿœ›Ÿ­A.4TÀ¹¶ÄÜ7#    #%(+>˵¦ ¢¡Ÿ›šžžœŸŸ›—•“‘‘‘–™žŸžŸ›™Œ‹ŒŽŽ’—››˜–•—™œœœ¢®ÎÓËJ.+/ô¸¬²ÌßßG-(&(-6=MI9*$()% "%4¸¦¤«®©¦¡¤­²­Ÿ•Ž’•’‘“”™”ˆ‰‹ŒŽŽ—œŸ˜‘”›Ÿ¦¯°ÁÁ´¦ ¯Y:a¹²¤¬«¯²À[ì>1 &3E`H?)$$&&! )8߸·Î8$"'07=2(,>ѽ»íHMWP-!&-H˾»¹Ø:(" $8ÑÞC74G×ÁÍÓ¹ª¨´ßI5/UÚéÊ̺¹¹Q,+.& )&+)."#$&+:JÑ:!14242Qʽ·Àé¿®©®º~]·¬œš—“‘˜ž¦°¦’“——–“”–’‘˜šž œœšœŸ˜”˜£vDb°¨¢°Ô¹Á¶Éú´¬ª¨´ñ:*.L®­¯´«¤«º=/5ý¯¨¯»½ûÈ¿ÅçkŲª¯Á@5/;vóXXêÜ×=.! .KFU˾Û;)3lêkOI[<6) ,9ÖÏè;+-$,*,GhN,#!(.+4-7%$/:TÈÑ¿;- ),kÈÁ¾RO8))=ZÚNåK<;14#(÷Éc5Og=KÛ<)$$5¤®¶ï65>³ë<"#-'#)?<Ó¾i·«š®ÊÙ­ǯÌ^,?R,"P;¾±¶ÓO¢¢¢ROL@¸©–œš•—””– ª±·µ­–‘˜š›Ÿœ˜—›š—›¤ªŸ›§ª¬Î>8õ5-ÓI349,#7B?<3+"#3 #'F0%%"(ÞU<3+,!*Gô,!&À¸ººãE /'E2o«©¨¾¡©®ÀǰgëGºMH¹­Ÿ¦¢¥¯³µ9' *.t­œ¤›–— šš¢¥¥«º§””–””™› ¨C1HЩ®©®«µ<6JÏ;:0)'"NCJ/æ¸P?10-96*'$ ,MA!*+.4Ù®´¯º¬Y,-)^3-#>HDÊ̮͸¹µºº˜œ™ §¾¾ÃW$1BN¯±²¼§¶Ç»­½_455=:<0ÎÂ=$'-'-FÏ]>5/"'  )I°Àº¬¨¾=ÈØÆ*'»Ü=,./)0.) ,Q(#-'%+<-1ÍܪÞH'-9&",ٱܭ¯¶Íº®K6-> )>9µ½K*7ð,$'%Fγ³œ˜™ £ ¬¸eë6/:CwFÀ­¨»nÝ?5'($".¶ ¢œ—˜—“•Ÿª¤ž°È·¥ž˜Ž˜¦ ¡Þ7&(+˸®Î©¥©³È¶6@:Ò?&$ :.··ºA(0 !1X'7C¹ÍsÂWA)H=.+IºÆ°§ž±ì?1/?O8ØÐ>í®´š˜¹>>..%-5µªZY;ã=Ú³Å==´¾ÈÒ®¦Ÿš•™­«¥¡·ßA=Ö¬••›¥œœ ¢¤¡±±±¤Ìã¼­¨µ ª¯,+$7$,(JC2pH87DA*&5+/4Ô<;Ø®º-!�.,$<³ª®WäFíʦ·C6QÊ'-G¶Å¼ ¹pÈ·$:Ä« w§'­!“ÍŸ .–+1Ÿ*¤<ÃÝ'Øp&¯ô£ÁÁ³<¸ÂÚq.45Å¡;¯Ë"¾=Ç2''-Í0®Ÿ¡‘˜Ž‹‹ˆ‰‹‰‹‹“¦©ÍÆÕ4&,%#)) $9UL[K̾©¦¯« š•—›œ œ˜šž«®§Ÿ¢¡¢§¢¤©´Î343.'),170/)!'-Z÷Æ8-+/.:)(*6Ä¬š›˜–”‘•˜›™–”—“’Ї‡Š“”“•—œ›šŽ”•–’˜Ÿ¥£ª§´º·¬©­Ï* !,USÆÊUf0<2@I?E(.);=AÞbÂâ¼b`41Su«±¨¨žŸ¯¹8y»™¡¶LÀ¬œ™œžœ¡¥¨¡˜—––”Š‹›¤£˜Ž”¡¥ž˜––˜˜–—˜œŸ¢¦©§«¬©¢ ¨¼8+ +5V.!     (2!'"$%>¸®¶·Ç½Ð·Ú׳¬ž °°¥›–œ¤Ÿž™›¨¬²žœ—˜™“•“œ£¬©ž™”šŸ©§ž›˜™—˜™˜œ ¬³¸´­®¬¬¡Ÿ¤¬±¾ØX{S>:48kgIPTû쨤 œ™š ¦®¨§¥¨©££œš˜›ššžž£¡¤¤¤¡£¦ Ÿ ¡œŸ§²ÂG::3....5@O6.),/27)" #&+-DÜÉM) !%'5C;/*.;@;7N\N=65H­ ž¬ÀÜZýèÎRPZQLC@P̸¯¸Ñ_о¶µó;=MÃÀº»ÉÐÑë;?cgE/40LÓ®«±ª¡ž¤¢  œ›©¨•’“—ž¢ž˜—›¢ª¬©¥¦¬­¥œšª×Ý´¡£²mCeεÎ@.9çÌÊH>-/3)% .1JZâZCÎÀ²ÊÀÝH;.:.KbÓͯ²°Ï?(%++-(/>İ¿B&'5jÅ@"!&)9@/#&8G4($)UgÊI%*+Hĺª¯¸U>(!$&Cë´°ª¦¦ž¥¡¨§¨ºN%'+쫟££®¬÷1*^EYSô´µ¹BDIòÕ7$:âµ˯´´B'7&;Ôµ³£Í¬™¨¨ª¡Ÿ¨0>Ë0µº™b†/–¢0Ö)¦©ª´Ÿ´˜Õ–Ÿª—®ª§FÛ%ÇHI¡Å •­Ð+´,-,+¿À¹¾Ï÷8œ²Ðq<­®±§•“ŠŠ‹Œ‹Ž–š¡š™’”“žœ¸ž¬¤4!( &/9ª¾¾°©œ¯´À´ÂË«§ž•Ž””ŽŒ‘™¦·Áo¦¤§¡£©·¬±·ô:>'"* (#    )#!;¸×rÌ«¥¨œœ—œ ¤Ÿš›¦ —‘—œ ¢§¨¢•’—•‘’“““’“™›ž­¶©›˜š›¥¯ÃÍ9&.WÌJNÚÍ^hA<>ãþG;:7(VKI_PG5-!%#&#(" )(,-8"')2#,65L.i¹£ž—–˜›—™œ™–—‘ŒŽŒ’‘ŒŒŠ‰‹ŒŠˆŠŠŠˆ‡‰‡†Š”“’•—›£¬©¥Ÿ­ÑÎÅejÒ¿ÄX?ë¼Ãô7        %%.?mVÔ¸e;4{º·ÃVϺ¤§«©¨¦®ª¨ œšš–•‘“‘‘’–•–”™ž¤¤Ÿ£¬¦§¯Ê>LüÃÕTJeÇäÌ¿¸Ø^]îàYE+$!( "''37;ÎèÇæ¹°´°ÎÁ̹Ç@JÕ¬®­¿à¹®¥¸³µª¥§››žš—–”ž©Á¬§¯¾ÏºÉÃÅÆeLÝE3.;CBî¼±³º¯¬¢œœ¥«¦ª½À¬£¦±ÏOWgã/#'(,)/-->FÈoäÑu˾¬h:3I¸Äû*$*@<  ) *"@=@ìRÀߦª¯¯¢©¦·¹º§·ÎHÁËiP6àB»Å³®ª¨´Ÿ£Ÿ§Ÿ——–¤§º¯ ¡«²«²³H/-/24(0//++*&!/ÖÚH1/+<@$ #,0("$+%#$/:V:80GÐ=,'DI3̽¨¬Ç5-588,-5J@208>?˸»ÏÇÀ¬­¢ŸŸžš––˜ž¤ž£¸;8ѧŸŸ£¯ÁÍÀ¬©©ª¬¥¡¡©«ž›•˜›ž¡œŸ²1$%-5:???1/-2% !.8.8ÂɰÁ¹°žœž¨ÐÇ>:-(-ǧ§«·³ºÚE=]<Ú·­§¬¦¦“˜ œ›˜¡¯CLÙ«¡Ÿ››œ§¸ì,).@VzF6C¾ž¡¬µµ¯ÇF(#$/A´`~M,$#,Ïٷˬ¯ºJ,)0ØC-+;۵ʸB;*)*:1*1½®É9!*1&"*)2.[ÞFT::,.$>5BЭª³»AFX^5.4xÔ+-YMµ°·¹®J(;N%&Ä¥¬¶žª¯L¦žÝ=H¤¶À2ì7ñœ§§X»®³/"Y»¥º¬ÌB¥´ÍÏ­±¼±ÀA)6Ź»±©¯²®Ð/ i¶®®­Ÿ©—¡£«ž™¯©8>-*3 %(¸ÙK#$ ÍÅÁ¼¤˜’ž¥Ÿ¥ šš¢Í499&"?¹­™•™œ¤Ÿ–ž¼°¨«©ž£¬²§›Ÿ™š³ª¦Þ7Ñî* )K/$),/&!(F'#*/6-019-?N(&%+!)*I/$ %$JM.$ %8À¾ë-E´ÊP*#)*##9^06#%3ò+""<ûTÕ9.8Ä¿ÎB),5;9KNµ¦Ÿ »9ÜÅÀåÎZAÎȶ@/?É~@K2:<Á¹Ã»¦˜š•’˜¢¥Ÿº{íÅ´°®­®µ¥žŸ ©§¡Ÿ¦«¬³¥œ™––™™•Ÿ®³ÈƵ¦¬ÁÌ¿£ª«ªµþâ±¾ù96ËÔŪ¨«¥˜¦µ³¯ª žš¡™ž¤¬µÆ·À»u>=«¥Ÿ¡ ›¤¼¾Ít7Ú·§®É·G41sN=83;0Jó¿´¡¨«¥¥¬Û<(',eG-$'''!$%!57@EEMο=* )5?*%###!(/',*1@WnTÏ?=3Fî7739&"&'%#)-+$*"+,8A7JJ°×F:4Y7R.)%$+!!E[A&)*+,ù¼äÀ±¦­¹¹»À¼±·ÀÏT5..+)+;Ïí6,*,1HÔ»½ÕÇ«Ÿ¡©¨¤®¯ œ ®ºÎ>=Kް¦¨´¼¸Äº§œž­­ ›››¥®«šž¯ÞQ3,-3/#*5N6C08LðE4Ĺ³½·¾Ö³­®HJÔÆÒc\,(+A>%#)8PÙD'+IÌÊôGM¼¤Ÿ®âη£Ÿ¦ÎrĬ¤§­µ¸¬Ÿª³¥ž Ÿ¢¤¯Ÿ™šžŸ›šŸ¢¿}­¢¤Â½Ë»¸¶¸AU³¢¯ÀIA¾ª©ÆÌ¿¨£¥ªÒѺª°ð=8Ʊ¦¿>F½¥©§±¿¼¤˜¤¯¶ ššœ¢¡¢™š¬ÓZ°¦›Ÿ­M@¯¬³Â¶¿½²ÂÐfð¦«Ç>:Ê·Ø;/(%+54,.1.! .<'*/4-/>9.)I~A3+(" %+0U>*$:3*,@Y;--4)+7@]·/) (,¶´” "# +Ë®’® š¯÷ŸP¢š &42/ጋ””Ž–Õ»¶F=´¢«˜“—™ŽŽžŒ—¡•›°«£¦£ >&!4ɨ¬·°µ¨©Ÿª¨Ÿš—˜Ž–™›œ ¢›ž™™œ½ßK>#-"4Ä=̶Wº¯¢©¤™™”Œ‰‹Œ‹ŒŒ’•Ž•—•›œš•œ™£¥¨¹NTN3Yz7,+,#! ###%9:76Mɱ¡ª¦¶°±¼³»¸OÚÜ[l0&,$ "!,/+23>93-3*.:.;8EáKBõ¾¿Ÿ—¨¬¤­©¤¦¤µ®¬»@5" $&;Ç­ÙèÎ5.>8ZCQæ·®¤¹¶¦¯¦¥™™”›“—™——Ÿ›¦™§º½A+,l92.'3!!.%NÜi¨–—©ž”˜Œ”—˜˜——™›–žž¢®^,0-/8%)?@ÃK0VhFIÖ½µaŸd¯¤¬©¬ªÀ¨Ê¨Ô-+$%.2124>>MǨ®¨¡¦«­t(6@;(.(# $-'ÞÃW®žÊƪ¿¯¦¡™ž§©¨H?547$(')LAz¾ª¹ Ä¹±¹¶ ¢¬¡­§½,Kh3,1(-%.*-"21FºNV±ž¤ ›•—ž˜ž¢¤¦šŸ§®¯²A·¨ç.>89:-87¹¹Ä¬¥¦œžššŸ£›šš¥¡š§ŸŸ¡­®Åôr>:]®/ðØ'N¼¸½°;`Ì¿Ã̳¨»©—® ª¥›ã©¯ç©¸£žŸž¨¡œ¢˜¢§¬¥½¬ÉýÑï´¿@.*0% *:(J2Á¼.ÎѪ £¨¹µ´´¬²±?Ò¡¶9P%""#"##(*)5.4*#?Ç8î°¯£\.2*3F-MÀ6OTA¾;&/M(&#,%'Z/(()#%*6_Â˶©¬³ ¦Ÿ¦Ö­¼ÇL16¼«;5I) $!*.&!4#0$Ë×´»Å¡¯¾Á+)- >åI.o3½½Ú¬¦®ÞÄ;®›£¨¤œœ¤ž¬î²¼¤º¹›’“‘•‹Ž‘ž¾ÇǶ¸À­â£¦l¯V¯«º¹jºÑ66+2& D¾¼³À²¬\fÃDÔ//*/)7ÆÌ7('1+(þM4SÚ²®=0'_+-UÁ´¾Õ*.*%2)!+,'".,+;;­­¼Ã;é%1k>9Q˳²»L¾># .AF89;Öß--#/9(=àŵ¸¹´µÞÚ=EREÑY¢›­µÌXZ7(*1OU:¼x½£¤ £§ª©¼°¬ÏµÄ¥˜š¦¢Ÿ¿[EжRZ²®ž—™•œ“”“™œžÑ¸ªº§®œ¬­Q#2>;).>KÇÂÀ¢šœœ¢©ª¹¯ª«ž«¥˜šŸ£¤¢ž¸ß.1¹¦«¹§Ÿ¡¦œŸœ°©®ãÑàF­Ÿ¢°Æ½Í@R*",.*0?Rɱ¶²¼ÍH?þQ>/Dà?-IBÊÊ+$'(.**2DGLÈÔMK?57A.׳37-"1/(/kÍ=DùkÈI#/-+.$.+8)1:8$ !+/6+*A´¸âÊ8/-:F;>B5;×h72G+&%+-4:ùÀhìÔ·»ÚÖ4Øf$*2ÛÔI29=::2',65.,Jª¬§¥ž˜šœŸžž¥¨®¬š ­µ¥¤œ©´¯½·_5:Ѳª©¦§˜ž˜—™ ¬­¤ ¥®¬¦ž¬»»¶Íg>3231@è­­¯­­£§¤·µ§ §Â±­¢Ÿ§Ÿ ¤¨«¹°ª×z˱ŸŸµ³£¡ž¢ £¢¶¾Ë¯¨ÇÖí»ÎÎN?Ãn4! ,54/0=¼ÖÚ¿½¬Æ|YZä<)"/3htDV:-!$*&,0+2?¹È_N2Aq-!(+--'2kgE*#14),>0:;=330=ÔëD& " 1G. '! #$08ÐÝLβ­¸Å<ôÛD&+0- "*:K-%&(*Q2+:DE>ÚV¾«³È)(2=2/3IÈÉ@3OýÈ;0¶¨¥ϦЯ®-ÉÍÃI!#%#"")%*& +8$%,=.9D&2[4,Û097?GY)-Ú],6iB86Ô5,BÁf¾É¬¹-!"&&.)=N/&FL6  ./73-&!#'';R9ÃÄ*>=7v»±G@¼µM5PÕ³À°¼¤¥”“˜•”’•—›Ÿ¨¤¢ª­¥¯Ÿž£œ¡£ž›§¢ œ£«¬¯¬£ž› £™•˜š™œš—™ŸÀ­««­µÓ>Ê»ª¯¾¾ª£Ÿ£Ÿ«§•“™ž™•˜—›šž›œŸ¤Á­²«µª»Ð¬¨©ªµÀ¾ÂmX@5F±³ÎÜ¿«¯¾ÂÑNôí]3#$7öÙZD56íÆK1/)-+&# (++"(&&&,)&2Î`.+-<--$(,3/6519\Í*&%%$&.* //,$(30* %'4-!*-+-88-&)9(!,:>JY@9ê¹¼_EH1,.,,()9A'-6<7=L/-,JI>6AÍÒÂÍR97<˽a¶´¸­¨¤£Ÿ›™œ¨ª§­¨ ¥³¯©œž­¦£ª¯¦¬±´³£¥°¶­·½±¶ÈÓį©¼Ç¯¬¥œž¦§Ÿ¨¬§¨µ¶©³º·§Ÿ¦±­«³ª§¨±°¢œœ    ž›žª«¬¥©®««­·«®ÉõΝÅKnYj½¼ÄBå¾¹½Æ·Ä¿²©¸VÓ´®ÐǾôESÎB,.NÙ<.,($*:;0-54/))%#(01%',6..:43/IE-&.MJ=56,)3C?+%+)#%&(*6=."!+/.6;% *$(3-48&$(#!!%&% #,-,)).,25/++KÃÊ]dÕNPüÝ7%.=ÉÊ8#.GÉÕF;.4%/,' '/&",,$'3$0811.)*k·K("+2JëÈyBSR<+=ùÛW>3)1߯Â;0?óý|u?.6OL81JÀ¿ÍpIVÝ¿ÉE8R¸­¬²¼Ñ°Ÿœ¡¯­ª¨¬ª¨¦£œ˜žª¯¤Ÿ¤§«¯¦¡¨¾È¯¥¢¨«»Ù´£ªÇå¾²µ°«ª¾º®³h>¿©¥¬­¹Ì¯Ÿž©®©¢£¤¢¤¯ªœœ¥ªŸ˜ ÀR®Ÿ¦™¢9, ¶†µ=5 ¬‰ ‚,¦MP­™:2“5&®Ÿ—"  ½B+= ˜˜—š”žÌºY<,&#!$Nè[A7QÊ ¥«–‘——šœŒš¶Ã8Ë/   %+072Ö«¬®°©  Ÿª£ŸœŸ¦§ÍÁYY?$.2*# %-3Õ¯œœ’”••Ž”’”£££œ•šš˜š”˜žŸ¦žŸ±²³¢§©¹ùXdôvÝ,)00Þ<9,+<ÆÄJѾ¶®³¬¨›““”—–•Ž‘˜“’”’™žœš¥ «ÉÖhÙ5)&,2ÅH-+6¿À°¾Óݳ§¬°Î·°®¼¶¾Â¬¸³Çe×¼·¦¨Ê°Ÿ©¹ ®º¶®­ÉOaê;o3'#"&"'*3=PjƱ¤¡™ ˜š•¢¢°»´î=:7--!" XKQ>9ȱ®®¡­›Ÿ£–ŸŸ­¤«³ÂeóÇ=/% !$9#!$..,,,:ÑP6EUѬ¿¬°¹¢ž©£§£–›•˜›™’™•–™›™Ÿ¬ž©J0,35@."1X9TE<©¿ž©Ÿ¥•–ž—š–š—¥²®­¦¥Éʬ¹°¹­ ªš›Ÿ©¥Ÿ“›œš™¥§¯¬òÄ·3-" $!"$0*#K@¨­«°™‘–˜’••’©¤£¨¦Õ:+%#((41/:ظ­¨î¨·¥¦­°®¥£žÉì³Ç=2=&*+0;Y+"7,[î\º4½n@Û;3X¡Ÿ©ž©â­ª¤¬¬È¹ÌWK7(*OP9Y3-ðgι\¬¤Ÿ§ ¡šœ‘¤—ž˜—–ž›œžšµ«»ºµØæ-3>?.45**ÁÅ?8;깫¤¨¶ œœŸ™¥ž©¾É1¥¾JX96J½¯]8H:åâµ·¿ª¨˜±¨˜‘”‘—Ž—˜ž—–šž¼ÂU2*%&=Ðâ;μ¦¢¨œ¨›–šŸš­µ ¦§M/ÅÀ6*%'&1'#$50(&nZSÉJ?ɲÈ:C¸¬¿µL9@S­d"!(#(!*"-'+*$BÎO8-W½5GD4>¾ÎÎøúOM°)4@6."2T<'#8Ð13µ*=Ha·"?Áç«ÈÅW@¹LOJ;3è_d6"7CËJ;@)'Fî/2ø¬°¿¬­ÄŸœ–§¤¦Ÿ–œœ›˜“œšœ›¡Ÿ”®§«¾´«´A϶ËD""LN0*æK(ç¡´¯¹®µ™˜¡˜µž:Š!—°Ü«®œžEcÅ4¯(¡I$®3ÍôD¹8°N4ÃC®¨ÔÇ5©nHªëË«¼ÌW̪®±´™¢­¦ª“–¡¨›™”˜ŸŸŸ©­¯Ò¼??",     />AÀºª”‹Š‹’ŒŒŒŽŒ‹Œ“––—™šœ™——•’“–Ÿ ¤žš¢¤¥¥¢£ÆZRB3(#"&( "!"%+@H32548:ðMJÏ´±²«ªª¥«¨¦¨š›››š¤ª«¥ª«ÂÙ³­ÂRïÀ»Í^T×íA;;=8+.9LÕËàRL7-!#+)(" $50('%,4?9*&',,',+,7/)/7>@BGÇ´²ªŸ£«¯§Ÿ¤ª§¡ ¥¦¦¦šššœœšœž ŸœŸŸ˜˜›œ™•˜ ¥™–›žžž›ž ¡¡¤­ºÀÎÉÏuZC>8>F9/'!(.&'-("$!(*00-;D6>NpÚà]À²¶·Ä»¤¡¤ ›–’“’•“ŽŽ‘Ž“•“”™˜”–™¨¥žž£«³®´ÎyÚǺÅMQ;;=11+9:>)&-0.'$'-+#!"&#!  #!!")237@GßñNLÚÐÀÒa¾µ·¹Ì¿±³±¾³°³º¹®¤ž£¤¦¢Ÿ¡ œ› ¥¤ž›š›ž›œŸ¢¤¡Ÿ£««¤¢£¥ª¥ ¥£¨­«µÍwéÄÇK;0-,,)&*"  %-+"#').2@L:,&._½Ãåâɺ±®© œŸ›–•”•“’““”““–™˜—‘‘˜žŸœ›š˜—˜œžŸŸ˜•–››œœž››šŸ©­§¡¤©¯·²°³µµ³¹Ëܱ©­¾ûqÏÒvME=1%*.'"$$-187720JôÆX@9DLHGQ¼Ôi87ï»¶¹»º®³²¬«©¨§¢œœ¢¤¢Ÿ¡  ¦¤¬¾í͸­²À̳µ·²®©¬¸¯¢Ÿ£ Ÿ¤§¤£¤ §®³°«¸ÇXÌ»ÀÔmMNQ6.4NÝ]64/,*+,5*% &%#($%!%"#!'%#-7/.-9IHY\N-(+6533(,)""%0;5$",/+)'"%')(****.5F^F98GOLFÉvX×ÏÓqÓ¸»L?gÙdĺ»?Ç]8LÊÆM8Bè<<½Ì_g·Áã]ºª·¾³³Î¯£ž¤¬²¯®®¤£ª²¨¤¦§§žœŸšœŸ›œŸ¯·ª¯µ¹²ÍB^´¬ÉLG9,.D=-*'"./$    !$##8ÔR:8`ÌÁ²¹X,0;O>AgG5|·¯­¡ž®²­¨®ª¤ª¯§š”™œ¢ž—›¤¥¡Ÿ«¯«¬àHêpð³—š¡¨ª®®¥¦®³©¢  žž£«¥¤ª´®ª½Mí³­¯¬¬½Wú¹³Í`]K7JÏÛ930+!"-)&'))$+?C/$%)-35-#$,.,8:3)0A?@dé;,7OE3;;-)Lµ³»º«®·µ°ÂÿͽÆÓº©¨­ª¨¬­¥ž¡¯¾°«­®¬¾C<Ѷ»´¦ §­«±³±©¥°¼°¤¤£Ÿ£«®£ž§º¶«³´°¯ÄÖ¸¬ºTÔºÁüña=Dõ¹Ë0,300/-&!..#".0(##"/<("*.+3>B40@F5*iâD65T7%)4-+/.'-:)(.-),)$&&% !&** $.<*%.4:@E>,!7Ú÷CC\CL^ÛäLÄ®±¾¸±²´ªªÁkæ­»±ª­°§§¯Û¾§¥¬§¡¬²º²ºÈÁ±±¹¿¸¼¾«©µÞY¯®¶¿²¸½¹°®¹À¯¤®¹¯¹ÃïÅËjZÓ·ÅGMCRs½´R.8L=.;M74@?2#,FA;8M=:>P0'$,,! $,,$$0DIYÂØXE^8) '81,+,',>^A3jÀ¾äÍÃpÙ­Â]׸¹¼­¬·½±®µÊ¿¨¥ª©¬¹Á±¨®¿Ã¬¨¯¬¤¦©¦ŸŸ©¶ª¤«­©­º±«­ÅÖ´¨­²®¼b亴åKõÊI?íU??ùÚ<'*>8573,.26)%&6/)/+&#,40"!-'"%*$"*)&2.-5.+-8/'*7=3+9>.&',,+-4.)'% "-,$ &0%!$%,-&&450-<;..4<7?N>58bÎXMßW;Í©¨»Ê¸­¶¶¦ ª­£¥°¯§Ÿ¡©­©¬©Ÿ ©³¯¬­©ª¨°°§¡¨´«¥§®®¢¤©¦¢¨¾¸¨¤¦®ë=S½›²¨¸#.&É™£&/E)W,W¼1/T:#&0-&Z."( 62ëL$595YH.)7A5ç )SO9N1!"8W/"!0ÍÜk-A9¬¤¨³¹¶¦›¢¦ œ¯¡›§¨ –—ž¾ºIϧ­/(IÔF-0# #-)% :XèÁ ¤¦­Ô´›˜œš¤×䲪ӻŸ˜” ¥´˜–’œ¦¥ª¶;1Fª¢®=+Ì+05'  "),, m°¬®ÏI\ðnG- !4;1$#4@:6* 1q»ÆZɳ¬­°àÈ­¥¢¦Á3Iׯ¯»Æ­©¬£­°²§§ª½w³¥¢¯ë;Q¼½¯ÄD.798) +,($"#7OM6!'<À¹¼èм¾³±À³®¨«ªÒRÄ´³ÍÀ´¤ŸžŸ¬·´¥¡¡²¼«¦§±ÄȰ¶µ¶ÄP:ÍD+  '+,+("-;@("0ýËfæIݹ³´ÆÙÖ¬¤Ÿ°=>ΰ¸®±ª¨§¢¥­¶¦¤§³¾¶¨Ÿ¦³Sdʼ­¯Í8;91$%,/)$$9k='&0óÀ±²ÄÏ˹³¯°²§¡©ÕKÔ®ª­«¸¯§žž¤­ºª ž©¯·¦ž¦¯»º¾®­À?3JO*!&,/&".6(+:^ÚÍÁËÌØ±³ºËgۦ´jMZŵ©¤¦®§¤¨¸¹«¦ž¥®¹¨žŸ¤®®¶´«¨¿:5=:)"",.$#/LI.*/9Tµ¬¹r>n¸®¹··­¯Z9MÅÈ®¤¥­­¥ž¡¯´³§¢¥¯µ®±«¢Ÿ¦¿À¬­[1.78/! $+2!!1;74140вµÃɹ³©¸U[±¡­jLLÈ«Ÿž¥¦¤§§¯®¬¡ ¦µÌ¶«¨§Ÿ ®Ë¹°´å924=-(/$"464.-+C¸­¬Éãɬ¤¼ZL®ª¹ÁÉþ¾¢¦Ã´ª £°Äé§Ÿ¨´Ä¼§ž ««®¥«ÇdIrDP' *&.+*4P6*"6´®ÂO^¿¬¦²]>ǰ¸µ¼?0½Ÿ¡®À±¤Ÿ¨¾½­¥¤ª­µÁ£——¨ö¾¤¦ÊSDV10$$,-%3.3LA*,]±«·iT®®Í@F¿­©«ÄsÀ¤£ª¸¼¤žœ§°´±¦¢¤¤¯µ¨Ÿ¤±²§§¶Á×F2:E:%/2,# -%(5:.%>¿µ`4Ü¥¦ÀDk¼Â»¹ª±¾Z±¢©Áʨœ¬dÁ®§§««»® ž¬Ê¾«­º¢Ü01[9I!$:"28+,ʦ)#±¯V#<ÇNë?û¼ÄoÎ6Ï[*;ù¦«9Ý©ÅO=ýݧ:1Î?+Æž«,3¨›ªTCƤž§¨³¦Ÿ–•ž©£™™¬§¹ ¤¿¾f,"'$ (%4,%)0% &+"1®§º°Â¤¢¾Ë¯©¶¤Ÿ¬«›—™§¶³™¹%D½7+8ªÈVÀ¤ ©Ÿš’•›“ŒŽ—›­Ÿœšª¬·o±ªä?¹Ÿ¬a¼œŸ£˜›œ ›••”¦­¥™›©¹¼µiIÚ©°¶A,,8.(894"%!)-!!!  &Añ,ÌÄM<ä±Q3H¼­mÝGá½ÌCÆ«³Çʬ¨°6.BFP`ëº8"Cµ©¾¿´ª±»›• ¤´±¸ì³¤œ³Ï8²¢ÅoFÛº¤¿^¾©¦ï²¦›¥¬¤¦¬Ä­›˜£»¼Ä£¤¨Ê·óC5)NJ=.3*#,7;#*%)#'0>- 08,!"!#-./4%! )?»Ç@,\¹´¹Û»ÄÅÓϸÝàjɸd¹{¿ºÜ>:°ª¬zÜ?Fè°¥°´À¼µ¤¦¢¡©®Û³¬›·Øn°Åº¿à¹¸¢£¥ÔOÅ¿¢®®º°¨¦¯·žœ›¦­¯¶¶¼¦©«éõª³Hº²Ë°Äº¾ßº®ÌZG»´J˳©·¶¬;gMº¸IY9´«¬·±¥œ«£££Á¬›œŸà«©ª´á¾¦™¬gD¬¯¼Æ¸£Ü<8¯©²¾«¢º§©¨¤¬¦©ž¡®À]NHöñü#!6!4.": )$.$!#$/!(!,', &*H*"'N/+51?..@¯¶]]àÀ@P°¥»?KNßÅ»¼­«ÂÀ´ªYDNº­¼Ø·ž³ßÓ«ªªžž ª­´žŸž«¼¤©­®¢©§¨¥«º¹ª¡¼ß>Õ©¯»5¸¯Ëª¿©Ö»·«¢«§¯«¶u¶µ²®ÚÓ$!*IC+,&!))*#, *+2P3-%+.#'"B&!5;&,9HGß;a¼Óº~J?>Æ ›vG·›¬Îä½È2Üj¸öÄË_¯½Ü½ŸŸª¾½¦ ›››¤¤ž¤¡«­¬ž¨¬©ž¼ÌmÈ¿½©ã7IìÀ§ŸÃh®©¬¾»®¥¸¾Ð©«±´÷·^N9pW1'-3+-18"$%&%" ,'!",.&-,#&D-"),K1, +Ö9-#2Yæ0,ÀWL+³¬·ÃU±ÊRÏ¢Ÿ»ÛAº­ÝOÏž¬T-Ó¬«¹U®¦µ¾ ž¤®ªš¡¢›‘½¦ž™¨®¬«§°¼¹©¿ÌXä}I¿²¼/>¼Žž§¼Ë¹N¹­ÕG½¤·05Õ+äH°´Ì œš)§. ¨ §# *®Ò˜¸ž—nž¡í– ]>¾-½›—”œš¡ùLÃ#&!$$'4½¹S㑊‹ŒŒ‡ˆŽ‰‰˜•Ÿ–’¦_%%$7Þ)5=/%*.;¿ÕM﮾¬ª­ÝDª¤²ªË¯©¶®JD;5""!   )#+3È­¶­°ªœ¡«›–˜“ŸÔ²žš™¾¯©»Å»Ä¹£©Â³ª¼CÒžš¨GZ«ª69hf»U¾³¼¹VVþŸ¥Æ×§œ¨™’”–Ÿ›ž—””“–Ž•ª³¬§=2/0* $AÎ5+'(!&(NN0fÎÛ5O´¾¹¶¼*Aœ©OLº­°À¨§¹ÉN,50 "(&-=,X¯©¨§š–”ŽŠŒ‰ŽŒ‹Ž‘”“ §£¤²fß¿ÁI³¿$%=,#7%.(.C7+ 3;EÛ¬®ç¼µ¤­¶­³¥œ«Ÿœ ™Ÿ¼žŸ¨¸½µÁYO/HÚ.! !-%/@^Î=B¸õ´>B¾Bȧ®ª¦©—»º™—¤š•ª¬Ÿ™ ªO²§¹F):.".3 (8)#T¿H(JÍ™£©•ž”žœ“œ—˜Ÿ›ž¢˜¨¥»Ö ¶C¼¯¯¡ºÈb­ž³KH¦Y¼¬¼Ö±p("-  !*³lø®¢–œ ”˜œ™›˜˜£ ¯Ç±^M'&  !.À󾂥¬Ÿ³©˜™’™œ™•¡šœ££«£±¬ÐÔ¨§ÜI»©µÐ®ž® ­œŸ« ¤™žª¨´­­b©W=Z3)Í $:b$00ZÌ(ʬ¸©Ó¶¤«º¾›·Ä¨³FÇþ#'   'KÖIÑ@¨ s­˜Ÿ¬Ê®±©À5O?É9'/% (:Z?ée¬«FËžš«—œ •›š˜š›žž¡Ÿ™¸¥«ºZO¬/UèøÏÌ/.ÝMêͳªÈ¤œ§¢™š¶¡“ª¿»œ¡®¹S«?*5$',/"ÃݶÍI½­©´Ãœ¥]¿¼Üe./$)&%0;nÅ9°¬¢œ¶œ¤É«™¢¼¹®·g¹®HÁÁ½G+ÂÈm3£¯Ç¨¢Å£ª˜•›™œ¡•”˜§”œ®¥§ž³ª¡³Ë/ÛÌ*2J:·¿"q¹Î:@hªN:©¬¹Ë¾¤¶U?=-ç¾ ÎX3 $;#-%)22 <¹$$O®3µË<§D7U°ª+,¶¶.49ºÇ9$#b'!19.(Ù2+ê V"Å•Î\¯œ“¯¥ž›—Ÿ”•’¤¡Ž›§”šž·¹š¨>&¯£2 -´Û(%>;~<.Ô°7*Á›ºV«ª¥­Ò©¯ÌÅð¡ž8(ª9DP;(/2"$2- 0-V%$ãFF=tn7´Ì5É¿~/<¨Ñ+%9My¯ÄhWL8O¬R¥¯¨¬{Ó7¶µS¹ÇËoº®¢Î§™™” ¼Ë+X).9(& , 0$')ì1ü«ª“¨˜“Š‹‘œ¥°¢§›½c¡¾¿—Ÿµ^¨¡?²=>!8-4D!*%¸ÉEèš×'À°C¤²ÊE:M(3 * 5Å $=> !. Í:2â2,8|L!,Ыµ¼»¢£›¦® œ¬®Ÿ¨Ê»Çµ³6/ºÌž¶´Ù¬®PÄÎéì;E1'#& '!,5(1<0.*%7۸?LCÒT5l9eé;.)1%(-I<&wîCA¾8%-:@8$*9*$C­P:Sʤ¹·¨ œ¾Ä¢¨½Å¶ª7,F½¹¯h²« œ¦­£½¥ ¾½Dл9(!,/E33-!HDå)'+¾¿)+F³¯è5Òʰ²£˜¤À™¬¡š ©º££­5/K¬©K.6¬§UÔ±¿¨¨¦ª©ÌE9¸É.)'$÷-&.3/0"(7L7<5GÕD±EVÂȧ¦­ªß¦Ÿ¦²k¯œžÃÀÙ[¼»Êâ¼^ÙÚ¨£¦«¦œ¤¡¿®¦¢¨:&#& !!'* ,ÈS,;ÑC4M=ŶyTÐYÑ­›Ÿºê¼©¤²Ã¶²µî¯¬ÉÔº±ö%-AÈ|Ge¯¦ª¯¯ºÀ¸¨¨­×).'3,*.-"',-2:%'9Àe&,Þ­ºËÝØÎ¼¸¸¯¶Gµ¥´ÎK¸¦ ®??³©½Wí.C´µÄö¹²¥«°r¬ ¢¥ªÀÉÏZJ4)$0/ *.10-"(,351<ÞÔlHÛ¿»¬¥¿Ù×dz©ª¶DÚ§©ÊdêÁÅ´ÖwG½¹Gì¾µ®´¬ª®¸¸Ÿš¸8ض²8+,G;$/%&)%>9 !ü¿ÍGË¿¿°¨§§®n¸¯¾]Á¯¯³HMò¯À9:c<íÜÈÑÔ¿¿­²³Ö®¢¥²¹ÇY²»[<_ÔYK1'%0>1'!'5.-1KJH:WLÔ³­ÜCº·ÉO°°HNæ²ÂÆ08γs,)®«Ê²ŸÒÕ4^›‘­(¢6¤Î¯¨¯K;¼,š7R@8¯–!KE?°«+8ª7aFÁ©7®Éæ­(';_)$³,!.&"$)(.,¶n®¬ª– ›™’–“˜Ž–˜™›šœ›œœº˜¬§¥¾¯EÖ.+,+XH:! +-Õ³¼­°­¥¡—ž µ¾­¨™—¡¦«µ¿¬¤«©¤¥©¡¥¤Å®¯©³Ï6SZF, @3*%#&   !(.Cͯ­°»¿Î¼e½¬ª±¯¢Ÿšž¬§œ’’“ŒŒŒŽŒ‰ˆ‹‹ŠŒŽŽ“–ŸŸ¢§§©®´Æ¿¹Á:.91&%+'%%  !+,.+##%().'07/0'+<, '%"3ÔÀâÖ«œ›ŸŸ˜—–™›•”•™–’•’•‘•’ŽŒ‹‹ŒŠ‹Š‹ŒŒ‹ŒŒ‹Ž“”™š™Ÿ¢®¶²ÅN_J005.  " "&.//4HQ7:]èÊÙVKר?96InAFTYº²­¢ž˜™™•“‘’”š—••™™œš˜™žœ˜šœ›™—™œ™™Ÿ§¢¡ ¨©¨§¨·ÕúÆÉêH.-)("%& ! !%!"$!  " )8>.06Hë?»®¦«º­¡ž¦ŸœŸ Ÿ ›žžŸœŸŸ¬©ª·ÞX×79;<.*=LÔÛjfÔ¯¨¦ª£ž¢­µ´³³ÇÈJ52.9:*/+*+(/-(-/<*()*/!*040+-*$*0D/&)')'*/,!"""%,)%0AâeD̵´·±ª¬º»·§¯²µ`¹¹¹»­««®µª­ œ™šŸœœ™–—”“•˜••––—š˜˜ž¡§Ÿ¤·ÒȽj6+%#%(,)&6:ܽ¸¯¯ª¸±µ±¾ÏµÂ?(.L5,%&-0,%(.2)/63++/10.91Já8(7ÞÞÜRr168IH8^=?-()'/&$(,-,'D;JE;ļÆD=ËËMLGÖT;89?;5=@6-7IH.#++%!'*(+6?9¿¸³·Ýº®­¸ÍÄÁÅC?ÖÇÛ5AÎU<1;ÎÄJ@[¸×cÏδ°¯µ·Âµ®®¨¤¬®¬¬²·²§¬ÄLE9-/8LZ- 3>H2'y¼('MDA.LÂ?IQ-[ÁƵW´©¬Â¨¦Å¯­©°Þi¦³½×4·¿Y@¾³=RDñË:ç1¤_Э)ÏЯޠ!SL£7¡Þ’Ÿ™.!ž-»9¬(u«\©F<¦=«2(K+Ïוּ·µŸ¯¤ž¢™›žžÎÈN±È³°±—ŽŠˆŠ‹†‰ŠŒŒ‰“•˜”š§›š£§ªŸŸ¦£²16=")-%6..P*(-44 %% %& %$"!%?BT5º·§¡¥ ¨ Ÿ™¦®Ÿ—œ˜•™˜Ž–Œ”———•œ’‘—˜Œ‰‹‹‰Š‹‹—•š˜¡¢œ§°®½Ì¨¯îÚÇM˹4     !$,0*%@ÙVQÐÁ­ ššš‘Ž‘‘””’–œž˜•š››™™™•”›š˜™Ÿ¦¬¬¨¬§£¬«œ›žžœš§´²¬¯ºXíäbIKY+(-4,,,0/(,&"%$"(% (,2..+..<ØMBð˾Ðþǵ¾jt½µÌQâçMP×G35@p~üÈý?N¾¾DAÍÈJHɹ½²¥¡©¨¡œ¥§¨½tÍÏ:+1/077-'*0;6,)5.!+.$$%./09;, .@0'*FN64Nr<<Þl@>UËëôËãLܵÊ@?RA>IlÏE?¼©¶¾¨ŸŸ¨£ž ž›˜žœ™›œš˜¢›šž¬«¤´¾Ã½ÌHGØä@KÓÁeZàçJKËÙBL_/'2:.)-9,%-1*&(<;>Eßí:WÀ×[à»ÑMô»Õ?Û½ÅÌ»²ÓóÚÉä97G@.%.>53=ñ7/JÝ^YÆõOTɶéܰ­»¿«§¹Ù½¯ÇLR¾ËC>\OApå<-291,>I+&0a^8L¿Ý><ÿéHFYÚGSм¹´­¸Ì¹­¯ÏNM=-+6:5.:EAATp7#!)+*.(&3M:5gÄûHZ8F¼«°IXµ«·Ìº®Ù?P»´ºÉ²®¯¯¬µÃ¶µË7_¬«½Ì¹ÇÏÀ°±Á]ɹ¾ÆÎ]Á¯µÄɱ¬c--3pµ¡›™ °ÂÁÖ`ᥫ³Ð½Í:BóE90$,75/3KÞ8#),-?J?D-!3ȶŸ› «¦®¨£­«ªµÕ9'$"(6wEÖÇÀ ™™™­¾GI³²©ž¨¿ÊB".-('#!,*8?=¾¨²º¼ÒÊë0>û-&-3<¼¨«J75/;?ŲÁG>B>:^´«¶Â¼Ç¹£žžœ§¹Ä^Ld9Mð5%)$%*,)$*8âÐÄ«ž¤®¶·³¹Áùþ.$ *BYB^@>T˯©¦¡œ¦©«¯«ŸŸ©ªÀÙ¯¨¥¢ª½ë=9942:9*$&%27JOS?nÒéí_ç¿­ª¬¶¹¸É=7*#-<ÌÅ×FÀ©› ž¥¢£§žŸ ¦¸½äÏÁfLJNO=>C>S××PA<@AÎÁgXPLC87oNÝÙN=;:75*"'/87:89I?4+%('*%$$)-33@íÝ´¶ºáÓÈ×e]mNxÀÁ¿·µ¦Ÿ¢£¤©¨³µ¼Å×èÔÆÈkÒ¿³ÁOÞØT_KOKU@CG=;35Oa>,)*++%%++&+/C~dº­ª¿ÇÌ»´Õ^TXâÄÅÁ·¶¬£ £¨²²«¯ÃÇÓ¼ÁÓJë½µ°Ëá`K5iÞ`:/2:>6519O8.,/')-'&#+/÷E;KÌ«ª±«³Í®½½WGKܲæ¹Î¹¨¤¨¶®¯¨¡­±ú¡6¸Ãš/œ³£!ªÜ¬½¸4®Ñ+Lß©ÚÕ>.GK!1,e-2>I*-(;;&vЫܯŸ¶‘˜””›˜Ž–“Ž“ŽŽ“•—– ¸£¯ã-  " &# *0(7(CË.tV¶™–“ž˜–Ž’ŒŠŽŒŠ‹Œ––›“¥©PN*:- #-ï5*+,'"0(%'* %&,/7²p¤¼›°ŸŸ•””——ž“”Ž›™–”•—›˜£Ÿ¥˜——˜˜¡š©ž™ ž¸±­¤¬ÈÚT¯¶I?H/.&  $+.4!&!' %.,0(D@ËLdCK>íÝXÁ2ÆDäÜâ¹ÂÖ0ÊŨ§µ¬£œ›”›‘“‹ŠŠŒŒŠ‰‹Œ‹”•’’”œž™Ÿ—š™—ž£¤ªŸ³¿ÎÎâW=Ï9Q-&)(8 ' "!)#6-5}Ì«¥¤ž©«ž©šž§¬´¢°›± Ÿ§œ¤›œ•š›•š•ŽŽŒ•”—–”›Ÿ¤°¹a¹½ÀQ57Vξ¯ ¦¯«š›ž§¥ž›••–˜ŽŽŒ‹ŒŽŠ‰ˆˆ‰Œˆ‡ˆˆŠŒ“’‘—¡­¤ Ÿ¢¡­»­¥¡²»Ä°©¦¬ÀÍÌ®¦Ät?I[ý>'!,$     4ж­²­£›œ¨«§¡ž››¦¯ ˜›ž£ ›–™žŸ¡™’”‘ŒŽ•›—‘”˜œ¦š›©]zÍÀ8,*9>MÄs0*õÃ>9G8/cÉD-5÷½àJ/'!&'"!*4,#"&(-*#!,0<Í`.HÀ»ôK/'-_¼¾P79Ý«Ÿž¡››šŸµáuZ\/).;鯯»¸¹¬·ºl54QĽËa¾§¤¨®°L.-*'.702D½Ï/)%%"$"/EM-/4=(+1:´¡œ›Ÿ ¡ŸžŸ©½¸©¢¥ šžŸ›µ<<>6((,5]¯ž¤Ÿœš™›Ÿ³¬®¹¿­©¬¡šœ¥Ÿ¥¾ß:6#,2;½¨§¢¡©¼NÔc.&9;5f¶¸Ð¯­Æ@.$##?¹³¨¥¨µÎW8>.(&/L8¿ª²¹¦±u.$'!'LºÂRåm?,12% 37H±¢¥¡—˜ª­¶ÆS1346Ê®°­®¹ÊÆZ- !+(-Ͱ³¸¨¸FC-$$),9Ùͳ®¦­ØH>8-,,-5÷¨¡©¡œ´»æ,$*3$*D@ͬ¸ÍV]=-.+ %BhÒµ§¤ ›¢ÃÂÆ?0@XÐSѲ°®Â40-!01#-r¾¹¯±«­ªŸ³EÌÄ`̺H?ºª«¯­¾=U±?6K.[¸»É­¡œ¥®«¸±¢¨Äܵ¶Ÿ±°©¯²²:Gï,Ma*G>?¡ª0:¸¦³9JI*?¼ºE@Lë\ÀJ&8?)&*8ÇÎR:,Ä»ÌÏA4¾¸¸ð1É·­Ìí7.OZj$"*.,:3%/[²ÖíD3ØÇ¬¿ÀÍŸ©¤¦µ·¬©ÅÞ+)$*$$&6l½ª£¯«™š ¤¦Ÿ¨­¬´b°¤ «»ÝæÑÜÏTN8̱ÁÄǺµ®³ªÍ­ £³ÊO0-('-:z1-+>·¸§³½¥§«¼KOg/ !)!"')29)$6),+.,2((+/Kì4÷¹¬¡¡³[f=W-)&+U³²´º¼®·²J,-OÀʽ»£Ÿ›•™¦¨œ˜œ¨¶¸®­¹µÃᯩ±µ²·µ¥¦±­Ÿ™ž¥µÙ¿ª¨¹³¾Êº»k*&'. # #+þº»¾Å¬¦›ž¤œ˜–œ®«Ò1. #*;:8/3A61/-KR+,7186 ! "4>±¤§³kjäÚO@43È« Ÿ¤ž žœ±èmIÐF06>9Ø»´¯±¢œ™£ª¥žžž©¦¦¦¢¥¶³·¯¦ÀêåöʸË98>9.9/$'>Ú^.'2232/7<:ßÕ:FWΪ¤¼¿´¨¨­«¹o9-. &+8.%0]ÆÐ[éä9@A+#,.  !(2' "/.<¹š¡ª¬±³²ÇI::eÜLEÓ𳣫vGò;8:0-6Pâ³·®¤–™Ÿ™ª­¦¾Y­®ØYȰ¦­üA>e¿³¸¶¼­¬¯«¾^²§´6&&&(,+*++C×ÞZVÍ©¨¹Ôή£¤žŸ¨¤¦ªÀ>0.-B0 $()4<#,?(# 4H@>85('8(";ß;376?ÊÔWG+0560Bǵ²´­½ìÜTÛµ·½dðÜ6**!#*#"+TÔ¼¯¯°²­«¸ü^â{¾¶µ¯¦˜Ÿ¨¬ÂèW4'#$%%+%%-*".+;À­C/DØ,58!$ e9;¼IÒŸ£œ˜Ÿ——ŽŽ˜ŽŽ”’™›˜¶²·¹®Î?>=.0"$#'&DC(T<ÇÁ´²©Ÿ™˜¨š’–Ÿ¤©¢©Ì^±Ä`Ä®±²³µÞÃ>ͱ3Í7pR:âLcz0=L-[8CF% !#* #&)!:·Äª¯›•—Ž‘™—££š¥Ì{X:E2.#-!/+)?P´®¶œœªœ—¡£¥¬ ª²=Y5-%5/CÁ«Ÿ©©˜§’™š™–›˜—£™¯°·Ç]5n1;$35'9GÜ7:<0?êZ3?Þ¼×M½§°Ÿ²ÐȲNgÝ"= ..",=¨¶°ž˜ž–’’Ž‘””’”•“”š››š£ÈºÍ>3 $74@¯À°»Ä¤¨œŸ¦ ™§·ÀïÀ4%. /'$)½ÏÚØºª½§¶ž–™›”’–““˜ª ³°ØÊÄ/- 8.+ '+%20Ǭ­«¯Ð¿ÉC/6(""=5+HèNØ·I^Я[¿R4š¡©œ ¬¢¯žª¸>2¾º)¶¬g®Ç©À8¥ÁY66;ÄÀNÓ¬ª³£¯¦è5+)=4 !(/#ÔBµ¡ —•’–•›šœ ¬¹££Þµœ «½Ë=NL9-#+).C-;9>K=.A&(ÜeƪÁ¬®¢¤²¦¯¬ìû´9>»¼OÙÁ§C<µ®¹Ÿ˜¢­«©®¼/3*."MÉJRG=E[¦ÎHž§¢«±SMG.-$!;HѸ½ÈÖ˯ºÐÃØ¨Åµ£±£œ”ž ž™Ÿ¨¶½¯¢²Ë½ªÝ¯È#! 1FÐ뻣 N7' !*)4±®°¬½½9µž¯¿Â»³©¦¢­¿¦¥ž¿JÔIVJÏ<97Íw *(*("êȼ¯ªªº©ž«À®£žñ?2"2:-((&1+U®»½Ä ˜›™˜Ÿšš ¤¯º§¡µ>;E@ѱ¨É:ç·´¹¹½«´§§Æ¸´®¬½ÄÛ9ßQ^4$L7>-#%&%!7¥¿¸ž•œ°µ»ìaÒG+(D»e=ÚP>h¸Ñ»Ü,3·Ái¹0*15w×,2ÁÀØI&,0*;2(%HÝ5FbÛµ¥žž´Ø¤¤¨©«µ¿¾£©¯§¤Ÿª²ÎYõ¼¤±¶¸¹«¤Ÿ¤«£«­ªã4(*:A,3*,,*è5-˵\51'&9ÇD)%/(49!)94/+9XÉçjM/':ÁÏËff°«¶ÎÀaĵ±³ÔH;-:-)((+61$+BËÝHÛN7®© ¦¯¤¬¯¸¿U6FÁD-)$'"$(,)<÷ÆÚB½¬¦¢œ ²¥™–”™—•¡¤¬¬´®ª­×MFʵ¶¾ÔLR¯Ú1IõõÛ¿¼à4¶Æ¿K0./- #/- %)"'")=GNǽª´ÚYǰÆÚJlnAEO>.@SC;.$'(7P+ ,9LI¼´¾¼­±ÉÓͳ§ª²´¾]°è+3Â=8T5%(.Jü12øWѺ³°¶ª¢ª¸®¥™šŸ§ª¦˜›´«ŸŸ£«¢¢©œž¢¯»«ºãÂj-,8~2%-UL9?5'&2*$ $./7,-14þ:*#'176JG4?¾¾VBÿ½ÊCI>&5M1"&@7(.5! 0,)-4G¼Ð9h¸®±Ç¹®¨­©¬ÃÒ»§¥¾O½¼kÎ`=;5þÙ6-@~¹´·³OW¬¦ÇØ®£¦£œ ¬¬™—Ÿ¥¢¤¥ Ÿ¡®«›™ ¯ª¬«¬®¶e.0[C/(?G>H6& /:4!"#/1((&×Û9C/®§Æ3ÄŸ­¥«$ÑCRÄ98\`[b+211?`ÕN)-ÆHJ<0^;ÄÇx,K»»ÇËD)¾J/33>H16;37+"#'(,*-:1*/1(*2<7)(' '+0-6ZQKDͼ®®­ª©´º°Æ¶ÄÀÁ°¼I`VÉnj¼ÇïnºÞ`rɲ¨ª±ª©¤¢ ž£¦£©©§¶¨¢¥¤¨§¦žœžž£¦ª®µCâÐWVF@AFeOCJBKFX9íF0*"%%!&-))(.--9?7S/'!!)+/.6?U`g:@*!  ''+.0:QÇ]ÇÏNèδ¯®¬ª­®¬³»º¸r3;1-;UyàúÎÂÀ³·²« Ÿ¢¥£§©¨¤Ÿ¡¢¥«®°­¬¬ª¥¥¬¨˜›˜™ž ®ºÊþj^GÞÅÇÓÀ¹ÀÀâaJD-)'),!%&%&),+&-/.9MMÜØXN?1,-,$$%$&&*-,4þæ@92*%!$ %',9Rú¹Ë¿¸ç׿»ÄǼ²¹²³»ÂÊÆú440+,7AEÛ¼²«¥ žœœŸ¨¬§¨­¦¬³¯­«­©¢¨«¦§­ª¡žžŸ¤ª«­·ÛÑ¿z_ÊX_ƹ°³¼µ¼ûH:-*+&*'"*93/:27HeJ316:;:;/(*-$&+.38K/-,,0,+& $'*-1?õÐмÅÉÀ¹³¸³ÂÇÏÓþP?XËB=8* ).=??êÒ¸©§¤œ™™˜šœ Ÿž§¯§§°­®°«ªª¨®°¯´®¨ª©¯««³±´¯­»·ÁdӽŮ­»ÒßÜ×_4/, !!'/6-0=./BJZD67==BFH>3+$%&(.-)(%#,..+,3,0:6HAAtüÆÌ½°º¼ÇÁÂÎïJ7.,<>2.***/F:89?[ÍÅÍN/+,8=:-" ""&)-)*1C2(;QEPV\Ü͵¼ÄÃų¹¿Æ5-+-1++' &(-/;Öntƾéžž››—•™›œšŸ¥§©ª«©±½°¶¹ÐɿƱ¯¾ÃB=,¾š«¥¢¤;<*ņLXž. ª‹<€T­ >? —-Ê“)3§š–.½7ZË™”—˜ž™œ¿CÊ6( 46.!;Ô®É9´½=Ã¥ã͘§ Ÿ–”˜”’–—¡²¥Õ(H-$.&##5K³Ÿ•’•ŽŽŽŒŽŽŽŽŽ’‘”’˜Ÿ¨ÌÊ(  )&!&->;]Ĭ¢ª§§ª²¾ä´< -(" !79EÀ¶­£¬·¨ÈÙ=83.>4*% >Ù­œ“Œ‹ŠŠ‰ŠŠ‹‹ŽŽ‹Ž–—§©°>Q=.,!,-8F>,@826>Þ9Lf¯²®©¬«««¬²ÞÎGD0'(/0?E8BÀЪœ§¬žž¡¥¢®°²É?9.'  *>Æ¿LWµÕÁÕЭÑȵõ³ò°ÐʸÌÍ´ÄÁ¶æ²µÝÕÙ¾>6ÖO<,1(!1%@¯Ë¥¤™œ’•’“Ž’˜•›œ—§¨š¯²´®ªK½©¨¾­±¼£¨ª ™©­·§¼aÖ3+"#%/&,'.U-31Òоº›«¢•’™‘•”•–™¡ž¢®ºen) !$;:>¾Í±°µ¥®ž§®­¥®µ¸äe(&>,# ,#).6@E·?½¯¶À®§°º¿¦²É®Ä²}¿¬ÏË:¾;0Àà04Ò?R;ÐȾ©¸¹¬³¯«®ž¤¬ªž ¡Ÿ¦œŸ¥œ›¥Ÿž§ ¥Ÿ©›ªZŸÓô¾Ý3Y3'93;(/53R=.I.Ê*$ß:KA-l=ðZ4>E+3/&@(/('&9(',%64 (=)+/%Í89MBÑW¹²¯R³³¨ºu¬«®:?³L-<,54$J<'Ç'*2>Mrl-?¹°¬’‘=”œªššž˜¢ªžH”Ž-³ª9°¨F/+sϲ×1ªe¾»ÆØê£J®¨+¿£JÒ°œJ?ºÌ³BÏÂ+Ó¼J0ΣʽHÍ›ÒÁ¬´»¤¯ð¥ª®Ç9º®Ü6Ì/M0&!1(!   ;ÄH³¡š•ŽŠ‰‹ŒŒŒŽŒ‹‘ŽŽ’••–›š™™›–£¡žß08+(/'7F<á®ÀL»ï0?ëß8?T:"485iMÔ0hÁÍ­£Ÿ£ž®½²¿©º<§ ¢™’’’•“ŽŒ‡…Ї†‹Ž““–”’“ŒŠŽ—¦œ—™‘›™œ¸CFF#%)*5#,0   % ) " .;$*7ʨ°¬­?+2JVᯣ›£œ¬Å³ÊÓ¨›—‘ŽŽ’‘šž”•˜ŒˆˆˆŠ‹Œ”œ—˜œ“’š™–›©¼A=5#JÄ󫟬½¿J-&.=,NÃvóé- #$+S3DD'%)-$8µ°E3+ )'O¹»¦¢žž±µ´´Å«š˜Ž‹—ŸŸŸ¨­¥œœ—”‘‘™œ¤¢žžš“ž§£Á\EÌ®¨ª«¬ÆPÙ. $%+.H°§¿H9#&,52*48-!$,+*# #/1&#2K0Lµ°áG:*)&3.*CÂij½YJGKN]»¬¿­¥¸º¶ËÎSAIЪŸª®¥¨¼¿Àͽ¬¨¬ª¥š¦Ëºc.(*#,=SZ@?Ç:")%'5:[Û·­À0/2!$!.PËÊÊU?9&'0)0Ⱦµ¬§«Å>?DÊÓMÝl?K1!!%&$*,-!%# &&-) -(( *%(//*#$57 )0,!3aÑÚ6,;g4%(9˺æìûHàN'(>íZYŬ¦§¬¾àº½80Y°¡¡¦¤©¯¹¼W=͵¶¨¤¥ŸŸ£±É¾ÇBJ¼¬¡¥¯®·ÊHE³­¬¡£¤œ§ÎFmë2*Ö¬¤¡ªÄ½Û<:+)f½Ð¯ª¨¥¤µÉ½U^@:­™¢£««¯V9Ͻ¯¥«§ž¡¥Ÿ­ÇÅU7I¼¨¥«¦¯ýf;0^`lÕÀµ¥®»®¼C/'")-HÎl:O=*,&$)'(=>/Jãݼà2,#"=@6KX39L6/,'7=')65HÉÖäF/.*0&%016;+'* '-.B_Ú³\%"#,FÞ¹ÆUâ@('$!<Ñ\®žž›ž²Z4+2;K¬žœªèUDAHJ¿«¨›‘•žâ%9âÄ«œ™™¢Ç5/-&$.Ü¥£•–¬3"P®ž“”ž«X<ÖÆè¸©›“‘ŒŠ™¯B+t¥ ™–”’œ¹J)"%# 4² š˜œž©\0!-ݸ£›œ¦¯V6- (4<óÀëÛÅN14ÙÙLiA:8*#7ºÁÍÇwêa6 "*+8à@, !  *(0/% #,239/&" "{¬©ª²Ì*"1/?Iá¸ÜB8-6¶±¨¢­½7%.=±ª¦žž£ÀN;*7É® —’˜ Ö'$#?®¬¤›š˜œ¬¿@;Û¸£“™­ÖÞQÀ«§›—“ŽŽ–§ÂUQ½®Ÿ•’’– ©´çpaë± —‘•£¼4)16M·¨Ÿž¦ºY>22,/¾© š›ž­fJ741J°¥˜™«¼S820-4MÒ­«¿ËL)!#/÷«¤´l8'6æ5%,7Ì©°½K'&,M¶z))#6N-%+Óÿ++ %,(#0NE2"/&')/À¶ÈÛ-)1+-/&,¼d-%0*0/(J¦¢ÂW/-SÓ««ÓŪ¦©©Ä;JÎÏçS»œšŸ«B%@´©¤¨²­¦Ÿœ¬ð¼ºÖ±¦©•–›±FÆ®«—˜£¥›–šŸÀyak¨¡®Ÿ—™§¹Od¸Ÿœ¥¡œž™™®=>ͼ¶Á¶­­¬®9%+B³¥£ª®¤¡Á=IE]«¥¸¯ž—›²;/+-È«½·¶UC5, '-&-HLïP" DÏÔÖÕPFJ()=IE^="3D.*)2. ((K¸Ñ>.&! :Þ¾°¶ËÜß,%B_Ñ®³¯¬Ä;$%)+<ݪ§¸µJ)(" 6ʻɻ¥­F/&:ºª¤¡½9Uk,+:;j¬£¥«»P&"ϸ®¢§¯µÞNF7>C=l¢œŸ¨Æv8T²¦ž›˜žœ´ÀÍIØÉ¯˜–— ¸rÈÒÆ«¨˜™™ª±Â?FѶ®§¡Ÿ¦Ë:)!1NUº¡˜˜¦J:HHQZH®Ÿžœ› ¬Î&#AI¿¢ œžb#!(+,/ᆰn'%$3á®®«Á*',&'" O¨Ÿ­9#))@Ƽÿ+!$e±¼8! ,À§¦Ê1!(+$'+â«©µ>'',&>¬œ©K %4' '5Ò¤¤Ç?"+)&:Ï®˜—¬A)1¾¼:,,SŸ’œ»I%,F.>ͳž–š°J=Ø«¶UPÛ¢‘‘Ö1h¸¬³Æ¹¤’˜¥»¾±­ª·Ï¤“™­I<¾ª£¸e¬™””š­;T«ª«ÝߟœŸU /ÉÉ4.Q¬™˜šÃ%5u綪¼Ì­œ™§7.J?ãß1=¨˜žY "$KìÐM ÜR¯œ++.K¯9/DX+%|ÈÂ)*0(%'̯Ê>%":9J_+\£Â+-..,4ÜC66Ë༻/(DK4291& :""$=¸¸{ÅM¯V·«šž¤ž“”› 7¾—Ž“ £™• ª¹¾æ=4Σ˜–—š“‘œ¾½´¶â#$GË®°­v4ý¯¦»:,-&/)!7Jr.*C[D% )(0#%"#$%ÔÕ++,"060&4Z?%*GÆHJÆè²²ÍÔ³©œª©œ ž”””™¡¾®œ”˜¬±«®Èà7Õ°©»«Ÿ™•ž—“–±VM7ïá@& AJ/å§¢«ÏIS°®Å:!$,(!.=-%!4B6/34¸«4$*/D:-#-6@P;#&+?-'.=H;n.3åÍ1/>ZÕÖļ¨ª²c,J¿¶¤›› £Ÿ——˜ž¯iŸž¦®¨¨¶k3+/é§¥¢žŸ ˜š©>&+Bh¼V-;I'#.ßµ¯¿³µ½¸½;+) 1T5,;Æ:4#"úÏU1(5A@3&'QÎ?@;<Ý*(?¾X/8h¹ó?T'";¹©©¥¨®½ZVuÊž“›žž—””›¯q;ȹ¾©¦¯­«½7#'=¥œšœ¥’“ž¿. '9f=40qõÄÀ+!&V°¨¯>;Fzh<!+4?@ÎýH:! !-Q901/;_0 ---3()6L=-!')-àÜ?Q9I°½N± ›ž«¬¦°vP6..-0Ò¯¼>++=J62;;<3;îÃK()N=/6BM:!$+=KOÛfEñ°¯5>ÆË@.CH- &7º©§£©¬¯l#&`´¤™‘‘š ´Å»ÖLä¥›šœš”µ>&N±‘’𦫫î-*'<½®¬Ÿ‘›h&?À¬«Ê~J$!&3¾Ÿ›ž¹G1  )è·´¼¼ó:#'"#Ö« £¼ä?$#.16¾­­»8&(-3*.Ç š”™›«ÙaOQϨ˜•›¬±ª­º{768ƪŸ”“Ÿ¬¬È}>,,A۱®¬¼:$$+/.(=¿©¢±m@<) )7_j51++.)!6¹ª¦ªÜhP767' &1DÍ÷9-$&.+3, !=ƶ¬ºà»èdÇ]6;=z²¨®¬¦¡œ ¯±È¸Ÿš¡¡§¡Ÿª£§ñ55=¹¤«¿´«¥¢®È[,:ɏ𢶯´ÆµF!(*-?*pKǵ6+6J'&¾·»jf«¥çJi((3;Q°;&Ä«º@(.±3d¶CM¯¯»:2* '!+FA_+&.,'($7Ó®Ã]«Û©®5).=2.+¯Ö¶¸ž¤£¥Åɦ”•’•’’” ¸¯ÃDNˤ£´¯ž¡¸¼ºÞJ>/´§¤››£ªž¯\3Gß9)Ü´¢•¥µ ¨²¤ œš§©©ª­3 *$-)%83%*$=¼³¦«¹ç2,-"(-O(2>À9',Û±T-!+-$=L<@Zô,, -kXÒ®ªµ¾Q_®Û<ÞÊ©™š¡¢¤ª®´³©Ô+DÊ®¤¶Jܶ¹Õ3!J»ÉÓïέ¸ODFÊC8,Ȥ¦©­©š•™›Ÿ˜šž«ª£­Ü[¾¯¹ßK×t½®²ŸžŸž‘•š˜‘“š¡š˜›ž¬´¯ÈF:㲯³²Ÿ––›¯Í°­¯ÎÙ­¨£³¬¥·9$#1eQ6Ë´§ª¨¥¬Ê5.D»¶¾Ï´­¯?$+86^Äì+/G>-0B·¯ß:/+  !%7Þ5$.9IX/ (+$,>O½¬©²µý%!#!EèÈ6"!(%,Ç¥ž¦½KCÅK0Dê§š—£±æ/+698Ô­ŸŸ¡Ÿ®Î<.*%*<à«›«\fOPF+#&<²§œ—–𦍬»Á@>Ñ®™›¤§­®}N>'+3N¶¨™”–•˜œ¯Ð½Ç·«Ÿ’””’™œŸ¯+%C° œ’–šš§±¾: ,µ˜– ¡¬»µ3#?¨œ¤£¸:.&ܹ¤¤¹b@4(k£«Â®®»^.((]¬ŸÄ)/=P3 0;GÏC$%$!(9/9ÖÔ8.#0<ܵ¼­¦ªk$ ÜÖÚÆHͶ^# %62Ê·ª ³¼Ò7*9¦œŸœœ›˜©Ï@)++5Å¢˜›Ÿ¦¦§f,++\·»±©œœ¡©ºà%$=¶¨«§£š–¤Ï=PC/í¸¨œžž¢¢Ÿ¼5(-B#%$Q°  ±ª»5")1)3D»£¤>)$#&1AZÇê:/PÚËæA/*,½­·]/(!%"78D§ž¨É-'!$#-c·Í«§À^)$'(47b­•œž›¨»K*(*׫¥œ››¦±¨°]5*2é¬žš—˜›¬Vn|8)-ü°žšŸ¦¬¬È9?R×ÔÓ©Ÿ™— §µ·Ó,+5Ç®¶¦¤§£«¯·¹Kˬ¡˜œ™™ž­½ÅÄ*P ™˜¼#P‘¢+ª;„›‹› { !aÇ’¤3•®'Ë7°± /Of1.9Ë•™’˜”›NÍÚ*(%( I´ Ã¤£îQÔ œO¹Õ¯¾.#   *7]«µ£ªº©³¨¤£™’ŒŽŠŒŒ“•˜™¦¨¶¬°½\:%&$ *!&$;f­¡˜”•ŽŽŒŒ‘‘™—‘ž›› ¢º¬¢ŸšœŸš˜™›¨›¥¯­µ¤½¶©¬«»mOÝd1'+6=:)8-ïÅÀ¬¬›¡™›•˜•–˜Ÿ ­©°ÙÊÊ·¶164& '$B0.d?ÌØHÉáV¹M×ÛKÞ4;FJF/X@ܨEV¯×}>:ÜÚdG¼5L·4O*79'W5D-"1.+NJK¿¿²­Ÿž›™ž›œš“—Ž”•––™”™Ÿœ™¨ž©¸¼P±GZà-ìå-97?Ê9Z(:ê,kɱ´]ºe¶Ÿ®ªœ¡œž¡—žš™œ¢œš›ž›—ž› ˜¨¤§Ÿ£¥¹1y:    <%ZH/¢Æ­£¤•¤Ÿ™§ž¬®¬Q°Ï8Ä9':76++9&%4J:)[ 60-9-&!   !35þ⭥™ž™œ•™“¦Ÿ½È»2?5 %;ÒÆ¶Å¢©›«¦›•—šžœ³½§«®Øº]B¬LE=6+*E»¶¯Ÿ£±«©œ¤Ÿœ¡œš›œŸ¦Ç·¶ÖÂÚ,@H&;+(.)1-L®¼Íª²¨¥¥™–’“Œ”’–œš£™¡©¥³C9&- ,";),".1¹Â¥¼ºž®®©¦¸³¹ÏD´åÁd!' ''&6+ 95KjÊί­ñëÆ2©Õ®È×7.ÉAK $$"&!Júi0*`C[«ª ª ¬Â¯¾:>7!%(&$#)6:.¦dÊ¥¦¡š””–Œ‹’•”“ Ÿ˜ž°êéR2-$&&-0/+~ª¿´©ª§°——˜•š›‘žœšŸ™³M¯³°²¸øC/*?Ð5Çß8¾×£« Ÿ­Ÿ¯¾£žŸž§™ž¦™£¦È›º½©žšÈ«¨Z-6(,M-\MD:2N¯Ä㿦žŸ™žŸ£9\.*% .7"?A O*4B7ËI¯¼Ð»¿ÌP6D 4àÉB-Ë*cø6R!v«ÎCë.& $*'.+<Ë<©ÍÀŸµ¯c5X-+/?ú.LÜË~º¬Í/ºN.³¯±BJí9î;('%;>ÖÚ«²Ï¦—œš‘••‘™–™»°§ÞÃË6¯¯]êÁUÄgF%Áܦ@B°©Õ8@¶ñ*,\®ž§°Ÿ›©§§—•«¥¥š™šž³¯×^Åè>µÅ>-P¿ÍÒ$5H_ËEµœ›¸º·²±jf$469#=8Ä¥>D:0  "$;âÄ»»œ˜®¿O®°¶Á»ª¡› ›—š¬-rç))1,1/4(3Q@;>¼»H׿ı©­¦žœ§¦œœ ª¢¡¥§ª­§¤¯¶¼»¦µ¸ª¬©«ºRÍÙ3#9?J¯KN¾Ø°«Ç¸¾8@Ú:CF3K0+".++:,_8,JÒ»¯¥©©£››˜—•šš— žœ®¿èk::Nd>-4Bå¿¶¼ç¼¨¡­§¤¤¢ª¯®§­ºÊA11!! 3+.=(?]/A=¾¯¹[6j/)))+'/ÞRÎÖYî·¼µ®¡ž¹ÎÁ4-3("%+'&%,+).R¿Å²¥œ—••˜˜““”šœ™ž¡°¿ÈSÙþE377A¼¿¶°¶¬«¨§­¹·ª»Í³¸f¿P0)#1-''9-0`?=?K?@59Yk˹¾YA:(+#*$&57/31*.:Fø®®©¬F8M7-5+/*-/05>)<9&{̨8«*«² £¥;4f; 8Î+M¦—Þ,<¼ž1Þ 4IK¶©vœ··œò<86*'©5O«2ÊË-0%+.=S;ªÈ £ž‘™™—Ž‘Œ’•’—˜œœ›ª–­¨¬ÊJ'/&0%)*.HI>¹®¡¥£›š”–•’Ž‘šœš££¥«¯«³êýuJ2('/0; 2lµ¥—”–™–—šœžš–•—”–”‘“”•“‘ŽŽŽŽŽ‘ŽŽ’ŒŠŠŠ‰ŠŒŽ“•–™ššššœ›™›œ—•›Ÿž¨»ÇÔfcP7/*+$ '+)$ "#!)'%###&%#),-++*,;ß¹ª¤¦·ûǯ®°¿Å¼¬¦¢¥Ÿš˜›œšœšœžœš¡ šœ——›Ÿ¦£¡Ÿ¦°®¬­¯¸¸ÊÅæ>=OT?71/##%&#  &! #$%!"(1FE2+./:O;<}Ç®«©  ¨ª¨“ŽŽŽ“’ŒŠŒ“–˜•’•–”••“‹‹ŽŽŽŒŽ“”–™››¡©ËyØÄ¼8"!#$(*"$'07->Ô¾ÜH86>8/+,26)'1/($(,("*8üËÀµ´¹dt׿¬¬´±­¹ÁpIá¼Éi^.%!!"$!&*(!%>۾ǻ×I0-%%(#9´¥©²¾a- "-.3UßL52PÌ?/*(*41!,FêÑÞ¿Ñ;-*)().+?Å´¬¸·®¼ùåàFNj2(/>8*&,0.0(-8B½¬°½à0*6=4.ß­ª²»¹ÊÒ[76èÌO8T­¤¥¤™•—𢭮¦®±¥—”™›ž¢«¾eܯ±»³ªœž¦ž—”˜Ÿ­Á¹¹Êª—’™™›¢¯l.'9HVyɨž©³¨¥Ÿ¤¯ÙK@><7¼Ÿ¡ž¢¨º9%!&)/3?¯°À½¶¦¨½F-%%&>½Êº¹¹Ç7*iS==^¹ÃW6&'nZĬ¨ ±0)*-;g¹­, ²˜·' ¯`$1è¿—_¾)9+µ<¦v¶¡°­4)'$(*lB4¯ÊA 5º8¥˜›–˜š«±¯½²¥¢Ÿ“šŒ“›¶½+@F`BE(  /|§Ÿ¤À*) 6N¡Ÿ”ŠŠŠˆˆ‰ŠŠŒ‹Ž‹‹‰‰ŠŠŠŽ‘˜ ›œœœ™”‘‘˜Ÿá>"!%"0PôX    '0À¿0)#&$%7L¶¨˜¤±¹A?4<9/X¾¢š“‘©í68/BNÞ¬¢–’œ§ÆD>8Ho\Á¯£™˜¤Ð)*B[Íe&  )4B@*#"-=㸹j7%$1X¿®¯º^0+&%-/8ܳ¢™‘‘’“šŸ£¨£¢ž™”‹Šˆ‡Š‹“’’ŠŠŠŠˆ†‡ŠŒŽ“•——•‘Ž‹‰‰ŠŒŽ”𢍬¯¯«¥žŸ§«ÀL-!$+6;=,(!   ### 1HÚ´¶¯³ÃÉ?3.,9S°¨§£¥ žž¢¬®µ²«¢›š——˜˜Ÿ§¾xBD×·¦¤§«·²µ®­ÃßH315@iìÃÍÊÍØÔ=,%)8{vTA:@4OD1-#! ",6GíÜÉ×ǽQ>1/HF=42:2&#%(.6:99LXQE>4():Ǹ¹»ÝOC1*)5PL:2/.-.3;JwÏÂÍoB6>ίª«¬©¬²¶»´¨ŸŸ¨®°±µ® ¡žœŸ¢«¯® šš™™œ¤¬µ¼±¦Ÿ©®´ní¸±«§ª¯»ËÌh=W¶®¨Ÿ¢«Ê;8ů¯ÇG,$(2/+6G[Üp7/8,,"'EO4%,>56NäáÍk4!%&&1TU8H9+9HË:!;LJÍÇÎk>8)!':5CÖËMLæÜ½¼¾M2bʽºÆH,+/.-OtEV@KI§¨®ËP, (*1m¯žœŸ¤­Çʰ±¼±««´´®«§ Ÿ¶çÝH5/>Ai·¤¦­©³¶¬§¨«¦¦¥§žšŸ¬®¸Ä®ª³}]˱­±«¡ž˜–œ µ¬3¹—“’–ŸJ904u·ÄY<(+,!-;?6ξµÌ(+44Ê£©Ü#î­¯P2='%6°¡›³õ*3²ž¤¬=5./9Ä«£ž¯/(*g«²½G0062-%±Ÿ¤w.ß®žŸ©·3(9¿±·ß½¦œŽœ³ÍÎ¥£ ©±Ž‰Š•§A3;BÊÒ˽­œ™”¤·Ü9 #@±š“›±H7?¹¬ÁÅÌÐ,!*+* "E£Ÿ¯Y2%(/,)YàV*,`Ê´¹éK-))^¯˜ µ9%4µ›Ÿ¨½_FÁ£š™šž››£¶»¦•–¢»=*K­¤¬¬¹n>8¾ª»»º¸÷PA3HΦŸ²Uiìì«¢Ÿ §¼à=0B-'IS>0@µ¾."693.0)$(+",C1-L®¯I(%ܨ¯¹»«©§Ÿ£É+&)+`®¢¥¤›”—£¸Y÷«–”𢤗•™§?.7EÓ¸¸´©¢›©B)(W°¯ØH7[¬›¦´I/02Eľȹ®½ÎÚ/(;8*,!,ÈÂ8( $2J8,#2:'(.AÜY-<î>̰ª£¦¤¦©¹Î[Gµ  ª«© ¤®ÄZO½§¤§¤£žŸ¢¢¡±»¹¯©£Ÿ¡¥§¦©}+#1CwC<;@ß¾ÀÀ¯ªµzV¾§ ŸŸ©¶ÇÖ0%/:;5?/('6@99+%0<23H:)%"*,$$,/H3(,?¼¤œž¤­´¯´Àµ²®©¨­·Úß䵯«°ÑÌ´¨›ž¤«®µÄ¾·¨¤¤«ÍEGZ¸¿ÀB-,*;;JÁ¸ÌP+*0:éMHLý=&-Kl>"!&+I7:@;1+*H­™ž««ª§¡šœŸ¨ò?`²žŸ¥«³Ë9+"8¦œ™¤À¼·§ž¢±=+N³›¨Â1'N¹®½G>pɰ­¤¤·5.3½ž–›©¾;!(Oµ«×1))--;>¾¥š™£ÀP616MM\cÈ¥ž »M5%!&+8O» §Ë2 %;ÞI̼Ò- ,ýÓäB%!,7.Q°£˜“œž ¦­¹JßÓÀ»¸µ™šªÂµN¬’®¢¥«¤Ë¡M®@–;,G™¬ÏÓ¬p¦žÍž´ï°1Ï"<'¯Ÿ ž±»!'x. »Ï®œ¦¶»­RÂZ%Î?¡•”‘Œ’ž¨OÚÛJ*&;¼¡››ž±?.3CϽù¾¸·¶¬¥ŸŸ¤ÁKeŧ—Ž“Ÿ²ÇÇ¯š”‘’‘‘’“—¢È3,5¾¨¦¡ ¸6%!46=3($ ).2,  (5*   #*& ->@.":È´µÂG)'2X¬žžž›š“ŒŠ‹’˜œ™‘‹‡…„…‡‹‘’Œ‰ˆˆŠŒŒ‹ŠŠž¬È⸢œ™˜Ÿ®R'(3\\9$!(2eò-(=bÓM7#):50%%8ó; 0B;5)!:mR:(&.]®¥­½L'!1T´Ÿžž¡¶¼¹®œ““œ¤Ÿ˜™«ÆÁ´«ž™˜–˜¦½åCe°¦ ž§äMÛ³£ž§Ê. -KxVI6%&337I.",-('87$?°²i7+?ÍÄÐ^V?/+8Ê¥£¯ÅÅ©™“‘“ž»Ç¶¨š˜š——œ©³¬¨ ›™œž´Ó³¡–”žÈ<605?Jxt\<(#,CN7!*@¼À_/$5AC[ËÍÐG.8̺«¤²Ù=<þ¨˜š«L5//=LG½¯¶ÂÑaXWl³ ¤­ÓÀ¤–“™ž¥Âpζ­¡¤¢žž¥±´ªž›œ ¨´®¡›—–žÃ@bþ^ÔÙÌ̽ÅBN`G:?ÑÊÚ6'+=̳×.&$"*"&% !".4.'"(*)'(붬°ÉöY5;Ȩ¨¬½ÇÀʶ¯ê@<,"#--1E»²ÄË: 'RØÒ»Ç?1/@ËÆÒG( !;Ì®´³Á3+-7⪳Q=/8ÙÆ¾ãM. +SÀ¯±<'&8Ô¼³Î8%".M½¸].$-:ÑÓ/#/µÂ,&IÓÉP.&*.µšŸ¤¦Å@Úh’Ž˜©ÍæÌŸ§ž²ÒºÐ0 µ–•’œ 7œš‘–*¼0µ™ž—ž ¹#4!·8¥•œ¯FÀ-¤­ŸØ.03©›ªœRN#'¹²–ˆ†‰‹––—Œ“¨[¿˜œ” ¦º"  ) #) "  #! !Á¯›–˜­­œ‘ŒŠŽž¦œ–Œ‰‰—š¾&*6½¥›•™ž±G%2½¹PàÇl:   '/   3OÅ»åYå¶¢˜”¨Â}¶œ‹‹‹Ž”œ¥ š—Œ‰‰Š”Œ†„ˆ“š™Ž‰ˆ‰Œ”ž¥®°¯¤›•”—ž³¾º°¥¨Å/!3¶­¯³O)&&Gî¶»Ç8+(6ÿ¿ã&"C¼º·Ä5  )=¸Õ:&!,6<"'T½ÖE(#"*F­®Ë÷þÓ¶ª¥¤Ä54;Ê¥šš›ž¡²¸¢šŽ“––˜—’œ§¡¢œ””˜›°¿Ìheí²¨°|<'!*D3+(%      '3<)*+2RÜGA=' */.-+1HdRN5/WÁÑF.& ";àåÑÓJ.27/9BPRU{oE:_¯©·ñ,!%6pxß¼ËXND98GJN¸®ºó7?¿¨¦´M%%);XÙm670&"#$!+3(  *,  &'% 8[I(%.FrðàK1*();·§¡¢®·®¡™•–ž¯Á»ªœ’ŽŽŒŽ–œŸžš•Ž”•’Ž‹“ž®²¸­¡›•‘’š¥®mIƬ ž¥¶Ù¿¬  ªá'".v¸«¤¤®Á@+;¾Àµ«²»Á¿¹­¦«¼=*' /à±­¾I-(.<Ñ]+.8IÒÑ]7)%(;BÑÎJ8  .CO=>^4=ÎÉØ<+ ,Ù©¥±P2$$'+ZÐÙÆº¶°ªª¹ÊÎN-%5¯ ž¡·>&(8)#+E¸Ÿšœœ ¶A.O¶¥£¦¥Ÿš–“”™ ¸G;äɾ¤™•—œ«T7/*3ɰ¹Úô¦£±ß,'$/Ùdz·Þ,.+'&3k¶«´](&?篦¹ÀI#+;4/K4Xªž¡½$I½ª›»,) )×T"+جž ·4f"%<뫪¨§±+"89Y]Ê8Πœ®·7 #4°W](#&)$+2L·ž”–“­ÁÁ½Ù®®²Ÿ˜›Ÿ´U-*A¹V38Ñ­ž—–ŸÒ1/$ ($"L÷I!"$%3]˨¢—”Ž‰ŠŒ˜ ¯­¥¡™”™©ªº´¦º´jÁž’“˜ž¯>(&6Q»¾Á°Í0*,)(#!)*DR¶£Ÿ­= 3OÀ¹µK@1)-+)!"=µ§¤±ø3'*6ÉhÇ´¾LB*,+)'/JȬÞ$ &2;IÅì3.6(+* *×­¦¥Å3 'ð°ÇÊÎÝ=9# (%,ê ¥É&(X¾£ —˜¢¦¡±«¦»Ó¬²£™Ž‹¶@':¾Ÿ™šŸ¤ £·ª®¹È~H¬˜Ž“¦Ü-"9ʳ­«´Î½¾º¦£¤»¶¼«ž—Š‹’¦Q.I®›—šœ§¤±µ´°Á¹c7,<ʦ¤â4AݼM6+.+-;NRN'%IǪ¢ªQ&"9ÏÉËÅ[4)'7ÊÆûB& .N®šª»-9¹®ºZ-.+/*5/6 !2°©¬Ü@"-KY¿¾½M6*5X±Ü+ #-Õ­¬¬Z'!+?×î.  $+8*+¯¦§³:+(%0N»¢–˜ ­½[³¥˜—£½º¸¦–•’™«e9;­Ÿ›š•š¡¨²Î®¦ž«ÔH><ᘟª<)3Ç¥œ¶441K¦Ÿ¦ÌG:A³Ÿ“’–œ©S-,\°£›—œ§½Ì2Xª¥±ð/'+i¸¥§¶D+#-/Í¢²X(+=­¦·F<6Jú±ª«³ó3'!+:f« ¯ÏG!-Æ­±`.(=º¡¥³Ì8'&.3Χ«r2==6# )-Ë@'(2F=#46;KIaà=*-2ר¤˜š£Í.<­˜—¢«ž¥šœ£­­Îȶ´¬ ›“Ÿ¹óG¹±¨§¥²¨§»±§ÜèõA&/7X·ª©¡«²Ù0.Ë­ ¥±¼¡œ›«¼©¯Ùɵ»ª¡Ÿ¨À;1Ÿ»¸¾Â­²ÚÑÝ\C+-96Õ¾¹½¶ÖJ$*",Iî*+2/ !/>´µÚ5/)-#,5.®šŸ ºÌ²«½Sg¯¡ž“–šŸ¬¯ºK8ï´™“››–Ÿ«®±Èá__ƨ¥­ºŸŸ¯¸DN!—Ž®‘§¡ — ‘µ·¯Ü›µ¢¬°’™ ¢— +%DV‰‹Œ˜›“ž7>²ìX¾ªÍ7 !Û¤œ›©?Ì­­ç©šœŒŠ•‹´ ®¡²%*?* -B[ÏŸ•‘–¡®K367K¹¬£¤µ°¹m¨¨žž²«§¦œœ—ž›¬»£¥›””’™œ ¥¡§¢¢ªfFH6/;I,*%1.4C1Ó9«¢¬°«Ÿ¦œš—˜™–£Ì¾Í̬½¹²äO4:»[æ½z-:C,½¿¿ª= %.S½¡¨œ¦°¥»¢–™— ¡•¤¦¤ºª¼5(&&('<)5Y¬Ü©ÌæÒ<,/>U¯ÀìÚB%!-* $+5çËk¶F/Ýç ¥™‘˜–ž¦©£™­¢»6ÆI5´¯58+ $((2Ë¥¡½¨±¶£Ÿ”““™¥š™œ–”—™¯»@ÞÌÃN߯< O%1'(/&¯ž¡›š©Àž›¡”Œ‘’™ ¼´¹®«Õ9)%%v?Xß-" "9´¬«¦¦·Ð̹ ­ÐÂÛǯ™¥™§@-'#*5/)3$,.û­ ¢­ÆK./8Dµ«¥ÇÓ##) &('9/"/ÀV¢™¨¦§šš›¡£±Ãž¤¡žŸ¹)'L°¢“ ž¨Ã¾ÁµŸ”—’š›œÉ»¢®áº3$$/Ƭ¦£ž½k/'.׬¢•—œ››ž Ÿœ—¢»«¹§¦šš¢½m46)T°ð¹7A<6|+, ?NE´®42H:ëµ´¦©­ÉBÌî>$.78`¦Ÿ¦°;3*-:9%(" !,'#;§ž˜›¥Ÿµ0;R¬§ žšš˜®<²V!.°©¸È%,6:8ÁŸ¤­´¨Ãbò3",³½»×§‘œžµ.(!"4½ß`­ž¡°wD1Õo(?©žšœ› µM¿9.±­ž©™‹••šž¬«ž¡«ª—¡œ“’¯"()R94b¯™«±¼÷v:I´Uº¹Ÿ—Ÿ«ª¬<1*ü誫¬­­œ©*.)($+(4  (B3ñ5,'7YЩµSi4&@ºÊ¶©ôÓªw0   $ÔŸf"$$ÉÛß®¥©9ïKC»/M°§4-:".7(=­®¨£³'&N«¬M©šš”‘™£¢¤©ž½©¦’Ž”Ÿ§¨¾8;Z½©ªŸšš“”—§Ë°±?äά¦ž”ž¦Ø?0#ж®¢š—Ž’•¬®¤Î]rÎþŸ—š›°{("EI¼²Í®®¨¡¦®àÎB/'.W·š—™œ¤>+$&C=¸QL¯l·²ÈÔ×0'"¹¦¬£Ä@#J! '(I:E5*&!(Í蹩]  V-9<-74æ¬bDC7G°§Å3/1@d/#/=é»·Û6?°ª¯¾9)'Eº¶N3CMR·§¶º0&¾§­¡¢¸C&1.S«¥£ª­¶ä©š––¢É*(8¼§™–•™¬¼ñyϬžšš¢¦­²œ”“–ŸºA&+Ó¬¢¦ž¨ÕÊ'%Nºž­¨½>ªœœ’–£Á,9æ·§¤››§­Y/>D¾¢©Ÿ¨K9κ—·ì$!6=º¨«ª¾G4%;ögµ5&-,Þ§¬²Ã/#3=ªµ»³^(.NÓFC)"%:¯§×7-9M0# *7Nð.+Ù½£¤ä$(Nγ^TS9# >ØÃÎ'&;-Ó¤¥R'"%=XUL¾E*+%!(¿»¯¹Â9-b¥š¤¶L 8ÓÄß¶©¯ÉNQ/9g·©˜¨Âôªš–›§É.@Î𭜛¥¶¹­ËgÉË«›”˜£¤§žœ—•¤ÎE[Nª©©¬«±R+?cDµ¤›¡¬®¸¬ –Ÿ¾cáKT¹·­¨¦¹aØÄÎ7Ĩ§ £¨ºÇ¯Ÿ§«¬E)+Rä[êÖO.'#(6A=HØÄ¸N-;gëÆz=!#8.(>ã4. $ -3V~À`I@;@5DZN."#'1-$,(&,6>NC2,9Öd(%6,7ô@5/((9HKÍÌgt¾Ò`ÆÃ>,(,-*HÑÍ3.($,M³³ßd·¼½¨ªºØZ=>R«¥¬®»9)*,P­¡Ÿ­° ¥¬ Ÿ«³ÎR8S°£ŸŸœ«S*+5<¾¡—žž›£¡”‘—¡­¾_q¨ž™’’¹`A-)=³ žž©¥œ«­¬Æ*0¾±Ÿ—¢µ:&$(/¬¦£›Ÿš—7^ž 1@8A¿›˜Ã+%<HÏ·¸¸¬¦›—šž ¥°F.7ü½­®ª¨§¬µØOHD]¹¯´´±¬¢©²ÁûJ;;^±§žœ›œ¤¬»Í¼¯¦œšœŸœ˜˜¡¶ÀÃÅ»¶³§œ——ž©¹æKGtÄ·®¬¨­´°®®­Ê6&'6@Uɾ©©½3# #//::88PÛËÆ×K=.% +}­¥£«­±»G/1þ¼°µÉÒÎÏÆ¹Â\7%%,FÌÓT4-+,,%'>þÍKHϲ³¼S+##$-5.#!&)%&&"'%(Fvn;'%./7;ãÌ´®µ»¹ª©¶À¾®¦›™šžž«Í;/=øº¹¼ÀÖÁ¼Ì컸³¯®ÇíĦ›“”œµßaMn¿ª¢žŸ¤©°¯®¥Ÿž¡§¦¢£›”Žš·,)>ꧨ«¨­Í?@ç´¯®´ÔNîˬ š›­:J¼ºÂm4'#("&/fÌÙL<3Þ¡–˜²0+ö«ž¥¾M0*+7LìÆÅ¿k>Á¤ž¯48ήªçàN*!#(3V¾ÃÞHȤ›Ê2/·¦¥¹Ê."&%*660.2H¿·I  +6>7$!,1IÈ®²ä>2$ M©œ«å*v·Hâ¸_˼Â715>KH.#ಠ˜š¨¿«¬Ÿ›ª© ˜”•Ÿ¬˜››¡¹ •—‘§¼¹¸­«·Ó?0ÀîS5 -U¿¹Ÿ–ŒŒ•‘Ž“•“’—©l&"-*<+$""&8K<,!*3Õ, &.?JR@·²²š¡«´¿»Ê»¦–•™¿²76/¹´µ¸^9E@,0   #+/;0j±|8]:.Ö࢕‘’Ÿ¬â⦯›––š—™––›š¡¬ºÎ=([¬ ­ÇH$$$(DQɵϱ³À­]ž˜•ŒŒ‡Š“š™—š”šŸœ¡œš ž¡Åß=2Z1¸žš›œ¢Â¯¾Ï´©NA3<'+.# ),)'ê­«› •“œ‹Ž‹¡¢§¹¬©§³Ö'9:<>,&1<0©©™–›«¼¼µŸª¤›¦o05)SÊR=:$!*?¦ºÚ65Õ-±¸°ŸÄaJ'-.4ä) ! &å4ÏY1Á«  ›”¢®´©­œ—œ¬¨Ï:/GϾ;.>&&EAÈ>HP¼­Ä@ÏßþõØ>¸Ï¿FG@0¿+4:+!&$+#..,#$0¨E»ž©š˜šŽ—šž §ž©¤¤±±: "%#!'//ÎÒ¬¯¦ž¯¬ÎVÓ¯ýÇÆö¼4)S;!%,%"&+ -4+8ϸ¿ÁÑ´½q²Á¸Ò¼«¿½Ê²ä/ÛÌ(9)FJÝÊåÂ>UØÔ·¬¹¡ ª¦¡¤¥§³ž¡Ñ«§­ª¢¬ ®ºØ·¯g­É§­»ª±ð«°§©®¦ŸÅž“¤®¬³R ž›š£—›¼Ôºº¼§¹¬Ã|ÐnÙ.."#,4P¼?;Å>!.-¾N¼¯®s®›¶¿è&";·9¼›­Ä™ª+GÁ9?%(OÍ&"?:+/œ¡¬°¯>QŸ69¾ºžv“º,0/î7ÙãKCÈ"+;<ž>ò—¬R#)#¯%!ɺØ!&+ (ת˜œ¢±µ1Pjvª–•¢ŠŒ—››¾œ”™›´—¥¨I  ?·Ë ˜ ÈÙ´P@Ò¢—–™™‘ŽŽ•œ©Ÿ“••ŒŒ’žªÄ5*))(!EA8""(5   2¹—¡¶»áOж®ª¤±¶¢˜ž§™™ž¢š•ŒŠŒœ§­§ŒŒ‰‰‰ŒŽ—œ¤¤œžœ®:**16ý¸ªÀUO×/!)-,')û5  %* !=Â+ #À¨£¥C$.N?5.?,-©’œç4I4%.h®”‹Œ‘š§³ªžº¯œ—†„‰•œ¨±©™’”“ˆˆŠŽ‘Ž‘—˜ ®¨¦¡•“˜«_1*6HÌ©³7&.7)#"" 6 (!   '%$)% $/( 7q--Sºº®¬½´°½Tµ»·ª¥šœT-34I§•–Ÿš•“’–žŸ›’–«°§ ”¶»Ë@?´£°Ë­Ÿšœ©®¯¶±¥Ã.279SÎÕN(!5+$:ÝW=:F1+ܹ@,-88* (/'(Z["+**G¾²ÓþÒǹ§«©¤«¡©µÃ«¨²±£¦´·qmþw¿´¨¤¦¤«¼©œž¤¥¤½O>8OÎÉÞQ/'*&!(?g8?ÈÀèÀ¸¿¼¿å0&' #', %!##/.0/1/!),&.0."%(*+/4ʲ°¶£ ¨©­Ðº¹ÆÈ»¶¨£¨§ž «´®¨¨¦œŸŸ“”’Ž–›¢£Ÿžž ¢ž¤®ª©ÝE{RJ}®µ§¦¨§­­µHGJÊÞHóËÇÖ9,%%' *@>J´¯>/0*"%%*,:B9?ML9) 0!3fOʬ·¶¸æC.'('$,[º¹A6I6&.2'6^PЬ œ¦²­ºCKFۺǭ®¹³Ö7/*',''6ÍZ>ú]ÿÖ<+%%%/Ƨ¦·ÙÓ×B+2^5,oÁâ°¥±ûdÔì;'-:HVÁ¦©¾Ït8->D-8Ä®«­¼Ä¸Ñ=tÌF,5N]µŸ¦Ç\I."$(6?28µ¬ÁºÂ;5ɽ]G±¥®¤ž›ž¤ª»¿ZB}ÃË©ž¨¹Íø:.6P\>./8>\ÌÃB'%",7>:ãµ¼H30+'9ÚpûËÎJI¿®ÁH3-)0/[¿°©°OI>--¸¦§§²µ·¨žŸ «¾àpݺ Ÿ©¥¨²Æ?-+YŵÕkyïËÀ¹0"70+-P^Þµ«¬É-  /¾ª¹7A»ÊÕ®±;,+#'9ÒÂÙÌ©¢»;!&(,Ì­²]Âz믫«L2$8;.@Ä´¹®«­I%$4̪À:/?³³¸ÉÍ-'34;=¹¾­Ÿ›œË22Æ®¨§¤©²£ž ¤²0FNÄpí¿§››œžªL@BJT454ço8- +$+/>½¬¦¢¡¯Ô<$!(."7Ç·¿½Ï<~õÅÓ¼½OZæ±£›¦²¨©Ê7NG¼ž›¬´¿µ©¤§Åµ«¨©Ÿ™¨§¸D()-*JT¿­­¿¿¡¡ž™Ÿ¤£¯¿ìÊHL4#<¾°²ºx%$%# )),+8ÄG0((+½¯§§¥ºþ9,5+99înìÔ¿Ëꪷb1--?¹®¡¥¡¤®È?lGв³¾¿§¨ ¡¦±X/,YMÀ« £¦¦¿Uv:(498µ¨•••ž®\ð1&()3)P[ÞJMX6N4,$0-3ÓiO48 =®£¦ª³ª´ßIYE.Ǫ¥©£§»®¿J+%!4sa±­¢­¯®ÃÓBU?̽¿¸¯­°ž®üI9 #$1Y¹ª¨¢¤£ºv;JP78G4/Í®¯ª¶Ï7æÌ½µÅ¹©Ÿ®³»G+!+!&'.,1鶴Ò?8!)Bmi:Û¼¾jCIz²¾®£¦­¥¡ÂêW.#'A=b]˯¬®Ì¼Ü81Ng㮨¯¸œœ­ÌB-,#087;Ê«­¨¦®`µ¤¬®Ä³È´®¨Ÿ«ÛO8(':h8ן›Ÿž¢°²ÇØJ0%$,-Ó°µÏº·7'!##" )%1:A)-½ã=[¶«¤œ¡­ÄC66:9OJ/3XË>HNI4jI1)%(-Ì­¥£¼Z9Ç:E.+*/j3O/8NЭ·¬N@3ħ š—œ¥£º½[=2:DÞª³µ®žœ›–›¡ÂÅÀ_´«¥°®´ÌÈ.38623H0/0G0-&'!(0M«¯Ë»¾¾CÊR:]\ÆÚ¯®¥±>HQW6*4?,5¼0-73/*<>E-)K¹²Â´Æ`4F=*5Alø¹¼¾¿8H»ª½²°Ë¿¹¤®¯®´ÄUmR»¹º¤š›¥ŸÒ27azSÉC=;ÌiɺÐJIA.12(,׸H9&#+3;LMß­±»·­×K²²¾µš–›­T('#-*/BTý@gkPP»U96ÒÖ«£¤¬½>,#$'*ÝŰ¹¾°¹´®¬º×¯¢¤¥˜œ¦¨ªÉ6?216˺®­½¸ÇÊLkÄRk¼·^­£©°²³-)""#%,0.÷Îò²«Ÿ£¢©ª¼>=W¼Cé´°¿ÏÁ;,7ÅȾÃÔ¿f¿¨£¦³ÁG9-7,''-Y58*"&(;а¯­Ð³¢™›®´²·ÍäÏ=ê½®ÂÙD%F°¢§¤ªÀ¼ªž£¢­»½ä~]Í,%A×;/3*20B)"+@Ìâ(0BL2Z3!; ®³±3,KœŠ–CÛÕ=«¨Ÿ¢;-5ÈÛ7'&,,.() 1¼§©[½<Êž±­*0,,Iºž¬¯Ôa?7K=Ó²¨¥›œ£ª?( &DW¯¤——“”—¡§­«®²¼±ÅWC):XºUMk¹Ï±ÌSظË/L½À¼,$&3,!KÀÍÕ¼¬«£ÇÙ®¤°¾¶>°¢¦¦°Æn)!$Xa@:0»±¼ÅH,<+-3E<:IÇ¢“•šœ°J&$. :ZYÌ´¾º ™–ª¾¾µ¼Å®´§«öR+$# .FZ×M쯥®ñ½«ž£­¦¦¬.%/5Ë­¯·¥¥£³ÇõÆÓ>I¿ïÊ_&&#,>Ω¥š–”™Ÿ¥«¯ÒC&=À¦«›™¦¦=-"*,*4C묬9맦á* RºÚ=GN¹Ø.»´µ¼Ý¨£²¬µµ¹0'8¾¢©;,-.=©›˜£¾´©§¯¬¡¿9MFì±§¾È͸¸ï),2'*'6Ï>4+#+93#4--%&I±¾¿Ã££§Âkà̰ó5O¾¼Î=F³¬¼D»Èª­Â;:WL.)LX7)#(2ÈU¿¾¼°ª´ªž±·¬ªŸ§°ÕOJVJR½ÖÔöÁº¹V.CÕ»Á=-ZÓJ0*%"6/$4À¶¾Ôǯª»äÙº¨ªÒ乿;3@U¯³`=E½¶Ò]QþúÀ=-6-<ÈÜ4Aα­ª¯³¡¢ª¾¼½Srº®­¬ÏHô½Â»½YÖÁÉeÞã1!%1X\A+'&$#',EB)(I{5@O¹ª®Å9NÅ®ºÂƵ¬½9=²¾O1<¹©²KV<&&*-+&&7ÕT>¿³ÉH<^¾ª®J6Jµ®×XÉ®À7=ZKT]QJ½©Æ4,CÊï=5f¸´´°¿Â¹¶ßѧ¨µÏس§£¨­ª¯ÊÈucLøͻ´ä;3=EL>3BI/44+#"("+J@+%3GWÙôRÇèLLSÏÄÆëë­®ÅO_ÆÇ¾Ú1@»±·èÑáñO;k¹¿U6:M׿QDÝ··¿äëöȧò¥©¾©Â_¥­$JϹªIäå+%C£¥Î$;K.6Á»à:ѨÀ4:Dk³¹.&ßIȽ0%1R;+Ù®Ç++:»­»{4À±LGÇßÉJLWͶ0ePµ¦É27¬¯¢â»º¥«›¢¤·¸A»ž¶vö²Å:7 +=䲩Ê@U_/!6SÆ3! '#  %-¸—“—œ¢Å@..$gÑ[:´›ª³B-Í´¢šœžŸ »9¼¨ë9?Ǹº½ÜL»¨¢©¡žœ­]à_H#(j¬¬¬°¿²«£®±¼ÀSXÞ œ¦©¯°Éò/"%>B<5ɨ¨þ+XßH #ZéWD!'P<".-41*3*"&>º¤®VŨ Ñ*19H)%òÊ9å®Â­¶CIÅ¥¡·ÄŲ«êÁÐÇZ3FO鬰긭¨¹²¨›˜¦´»À.! ,Ob-&:[³¾ÊΡ©Ú¹¢¤ª®¸Ã®¸($N»M.f¬²>)5G=]Ì^âÂ40H0(&<=NËT`>0(3;*(N¶¸Åâ\áÆ167,1>.2249*$/(@ÀLWͰ¶À¾o-&18//N¿½G?¹Ó.-KB/ão8=É«²Ë¸­«µIU^LȰ®Â®¡Ã;ô©§²½­§¨­°®º®¨¨[-p=&%5T:63-9o´¤±°¤žµ±·G9YÆmBC0,@ƬµÚMVé08>- "..#+$ *-Oã@75\M[°·G=AÉñJ6(*6qÏC<9UD2â³Ð9,Jpɶn긫¢¸úÛʯËb³­¬»¸«¨ž£½¹¬¨ªÂGA®¯É¾¶ì0).':ô21=Ú±¶¸Î­£½¾«Ñh\Õ¾¯«Î;GWê\:6Jc32ÊÒ=&%&2R/ !#/<08f½s)7TîæFCɺµ?-8`»O+.;N539VF60.'Aļµ´°­¼È¼¯¨¯³ÃÉ´ÇG18ÊÂF33YsL;5>1+)(:>' ;_V[0/=?P70Þ̹U@½¼ÄO@gCJ;&,yÏÏiA5=G7?çÎP;Sh¶®®¯¶¶º»²Ä»®¿º¥¢«½¥¨¼ÁÖ¾»¸±ÓêTß¿IK¼·]%->;´³ÎÃÀ¯ë;Þ¿§­ERÌ¿ÀFÎż¶7)0Kn5*#/÷H,190%$(/YR3)2ÐÅÞSW¿Ì:8`ÍÁ»¼ûèÌB2AÆÀG*&'-LùÀ±w77;Ë´ÉÿЬ­¸·È°¤«¬·¬¢¾FSÀª¯Çú¹§®Ï6/µ®ÃmiÅð6(/¯¤¯I)GÉÞËO½­²ÊCU·°´HW¶H20,Tø'4²!”Ÿg«@‡¬ ‡£ ž(;W¯‘¨>¥&¦“9›± ,+ÓJÞ¥–‘˜‘–ü±D$&.GíW,Xºž”™‘““•Š‘•Š“™•¢ÀB-     +(,*6Ø·©°ž™›žœ˜˜”•–¥´­@; ,&#!)(6!$*1 )&]NI»ØÄ=>UÃÆº¨›••‘•—™Ÿ››¦«­ÚÒÏ®ž¼±ª¾²·l\¨¥¨ž¤ªÒJ6!&%$*)Ì£¢¥ª¡­««¬–š’””•žž§Ÿ©Ëi¾Ñ7I! ,55IÈñDZ¬¯©¢œžŸŸ¡µ­§·¾½¤ž¦ ž“•¡œ¥¯À¸¨µ¸µÝ{ÇYP·¬¸¥ºª­ÕºÄ\ÁXPÖl­¬­¦¥¯œ§ªžŸ¡Ÿ§¹·Õ/!! +)˜œœ˜™Ž”–“•–œž˜¦²Sµ¼8˺ݾµ¤§¾Ÿ °·¥±®¶^CÂS/),' *%BÐÅžŸžš›Œ“𑖔𥙍œ¦®ÐJID73=6d::ÅrT?'?DRA¾Îª¾¡ª•¡›Ÿ™¡˜¢œ® Æ¹Q,%!-%+yÒÌRµ§ª¦››œ™¯¤Ÿ¾¿4,^!?(=)ô§Á«š™¦™ššžžŸ¢ª¦«µ¼¶²<*>'!&$)%'(.I=]³É¤¯™ž’–š“š˜››¾°ªj%-&' !22QÚu§ÁY³›œ¦¥›˜«¥§®c©Ï7H9R$`5$"'2.>:5[<ý°ÍVËÊOÏo.J¸¬/7Ÿ»§« ™­Ÿšžš¥žœ­¢¬´¿P:ê64,!*%#+-;/+]º=¸FȪ̫¿®²¼±«Ÿ«½±ª¦¼¹©»}­ÜU@øE,=?T)!$" $ !+)2;9TÅꦲҫ©¡œªŸž£½·Ÿ© º1Ù½·}4*- *& !Ó8/$0Íá12»œ¼>7³œ¨©©®«® ¨°»¾¸¦ª¬­'-Ï2%/,/#83.&ßä3r­¿l§»X%!!Í­l¯Ì¹˜•œ›–¢¦¨«Ç&- $'%»•Šš˜“”–¹ßg=)(Ò¥˜­³ê¬›ÀÏ¥ ›»RÚ/7%L¬«¦²Ì[Ù>F¦ î;ÍN#0#<È_§¤ ¥»¦¥˜Ë¨—¢¬D,>Û# 䯣”¡§Ÿ¡™¬¼)µK!°Å!9ÁË&5̪¥½¬½ ›¥®ì+-0, $/X0L¡ §C&¾®¦£§¬¶ËÆÙð¸*&#,.H`³¾ÊÌÀß¹Ç<û]¸7(.44''>(린™ššŸ–¨µ¯¾?F,98J,/3)9L9<®@¹ªª®àµ­Î+=«¤¥­­¤ŸN #¿?*>-*?+H5Ó¸]¯§Ÿ¦®µ§žš«FN]ç;(Ü*&-@~A1éOÈ®«kß»É,(9)33, Uy'»°¬¦®Ó¯œž£­«ªÏDÍ7­& Öð?¶«¬ÇFĬQ;@ËAL#!52ï®Ú<²¬œŸ¨¢žÓL¾ ½54)¾M6/ß«¯©¨ªÊÕ¿Z^7,$'2 3$",Ëå80X©¢®¯›˜·t«¯ï;<«Í,3Я'B­À6H°ÚÛÁç}1=®Ä'8¬>1!)¹U]À(•v#žÄ¦.W¢—ã0.¶’ ”¼ÐÂK’-C?®´&®T»žGÁË®Ç-«¿µ§]²´ì8>®CO½=@â,_Ì4ÄAÄI±Ç¯¶´œÍµ©œ›Ÿ¤¥²´\B,{0,& ¼8  3¬>-I>-0XR?1+,/&8GÌ3¨£›’މ‹ŒŠ”Žš£—™¡›‘ŽŒ‘–‹ž8SÂS=µ±ì­±µ¢x0PP1!(*(    +8137%'.}ϧ¢ •‘™”“˜š“‘‘–““—˜“˜›—Œ‹ŒŽ•”“—¢Â¦®ìmD¿d°¬L­ª¾/.(%".'9:+%'%$$#$+!2224:Ó½¡¡Ÿž¨ž•“œŸ™“™™•›—™Ž‹ŒŒ‹Š‰Œ“—™Ž™š˜–™˜’¤­¬§µºtW[9qV>?nj+ 2ê6=$*     :lIUJÀ³¾¥°ª­®£¥£˜œ¢¬¥›››™’‘“˜™’ŽŽ•–—•ž¡¤¢—•–Ÿ¤ ¦¬¡µ>Y¥¤ºÖ­ž¯A*¼ž¾6>MË8)9%+ (,.1 %'.2.G-/4<@â­ÍÅ·º²¢£§¬¢›£¬¬¡š¤Æ¨¤¡ª›—ª¤¡ ª¢›”¡¾­ŸÆÔÕ³Ú=Û¸¹ÀÀººÊÈýOf4.,*?Y>3-2- $<)(+&$#')!$(-EFqHGØ«®Ö½µ¬¼¯ ™œ›¡¦Ÿœ“šžš˜–”–š˜™––š“‘“—™™–“™£§ž¥¦¦§µ¼¦£¥¨¨¨·ï2=Ó¸OGJ¼¦§¿J¼»¿ÎéåwJC¹µ¿Â×KE=27PJ93>/&)/0/.-,$$-?-.3-**+0 &%(*)<,(*379]ríOµ³ÙÒ˱¯¸§ œ¦±§¨¬ š ¨¢££§¡œ›¢«­¬¤¤«¹¯ª·Yà´ÐoÛÙÚ^oXç·ÙëÎáX×MA./R]jM$'úN+-6I?;95?êU;=6xì=;2WECC52;FKW91DRj4=sOØÜJw¼>4O°°À¿´«½¶§©¦±·®¯¤¹±ªÌ»¬­²´Å¬ª?®HV¬½Î¥«"ÊJ™‘ÄŸ ±&“×­$®,Ÿ"ZÛFŸ3OÆ?¬%fËÝZ$BÐ'K)_&È'$* #$+3#è3$Ãa¦»¹¨œžŸ™˜›–“’—— •œ›¡› »—¦£Ü¬M"5!  /,:Cb·¸—œž˜”• ˜™˜˜’‹‘‹Š’–Ÿ¯´À«®¥¦¬§­·ÌJ2;!&)$!    (1-)4³³¶©œœœœ¤¤¢œ¢™›š˜‘•ŽŽ’‘’ŽŽŒŽ‘”•–œŸ «©¥¤¦§£¬ËYÊ_4%$ "!#!%"(&(+5%2JN4-UåÌPUËSI;ÓÄÁ½¯«¨£œš šš——œž™š˜—•’‘ŽŒ‰Š‰‹ŒŽ”˜•“’‘••”——™œœ žœŸ›£¢ª±ÀÐXÙâ00%,3%  "#!/@**&-,*)%-+:-4Mâ~[mM.!"-#$( $"'(,)" &,"$(+EKHi¼Ò¼¨©¶Ö´¯¿H?JAD1AT=KNÏÝ« ž¦¢žŸ™›§·«®¸®®²º°¯¯³ºÃÐÒO^G~H>½Ÿ–›¡²´½u9,F/*%&.*)&+(++)$'$#n²9 ",.&#$/-'()4+0J¸«¿´ª¥¤«Á=9i¹8ËŽ‹•WL³£¼'-¡’Ÿ¥•”¯»©¥ ¨“Œ–›™˜Ÿ³À­›œ¦¥˜š©Â½¯µ­¼³¥§À¿`ÉW:3IZ0H`Õúb=,35/,>8//**+%",!#()"$,,%)->A)L§œ ±Â·ºD--9?i87v]OUÉ~éÏÙX\Ô:35^ÃÇÂ̺²Ú(%'0-›™®5>)#º¥½2O®½:&8ÓÀÆ:ç «|N?ÔmçÁ¡ ¼Ul¯½M.+Þ³¸i䲫µOIÅ­ÈH9½ ªÈ·±©¼=^º³YGê°µrHZ·Ãö0JÝ\F7L6Ma)+,C2!>íÐ049.<'&1ßËPiIJ¾>1P¾ÊU±œ›¬®ª¢­M® œ©±£Ÿ¼Ëº®ÉA¾¬§²ãdݹn05u_dUV5ãÊïºéøG/90I06L¶¬¾í(iEµ½©m%)ªÿ\³²à<Å9-É==2%+8CHK¸ÊG83*?µL4żR+@¼?$;¬½:3+PgJ'GÆCW¼°½Mº²¦£À«Ÿª§¢ª¤Ÿ¥ž—™ª3<¹·Á4Í©Í17W5(;83H´½»I'/&$??' #*#%'%-(;+5Mª±¡™‘Œ—˜™™’šŸ°æ¾ë¿®£›£¢ Ÿ¢¾È®Â®ª¬­½«±Å½Á¸>):<1'-lXrÓ¦ªÔ7C¶í02=ý2,»Áµ¸*"/*8Ë](<-:+%7,(#6ÈÏÏÆ¶¢£¨¬ ”–™œ­«=,+,N=²®¯«ÏÔÀ´³À«ž¦ºàƱ¿º·¯À-.64 .d½¯ŸžÆG?Ïá3?HíºY¼ÃÄÆ;bd>0!%$)IEú¸¯·4*-.#&# /ÁÖ­©§ ¡™››¢¡©ÝLBN.*F0FǾ¯³®«µ¥±¯µn²¨¨·\«°ë??\%'/;B;Bµ¥˜œ¨°>L5&;èÒÚTÀ\57)5$ .J($pëJ@6V?YN-( '47*¯žœ¡ž•©ÁZÁ=5o×¹ÉND.409!/2*46ƽ­™›Ÿ™—”ž­±½­ø1GAA-,-0NF£™ ¨³¯·éª£©­¬©´O@;KR'.<ïhOa]1,"7’™ª´¥­*/L,#µ·5=ı*))&+?\ÑÀËØ:3+#?3þ ›¨Ï¿¶ÂÁ«©«ª©§¿>6'*$$6¾µÓº¯±º¼ÀÀ±¶Ò·®¬¸>*?G6,5÷ÏÂ2-ZÄß¼µ»³©¯NP¾ÉkEPûK+1žµ:B<.$ô¯¨°Nq²ªÀd±£§«ºè:3=-µ®II0"#6Æ»Ç[MýÛ6%(-F©`,:-Á·5RÔD!066V®¸<@Ä»:"-[Ö¦Ÿ«¤ £ÑL¹ªÇÏ©¯¼ZÖ²·ËÑÃÞ_б³°­ŸŸ§§·¬«°­­¨­­º×¾Ä9-:9-3>@a~G.&+«¯76OQ")"(+'1cQ47ñT;Biëd=`Ry¥¸LOÏR%e·«¨£±Í¶¼33ùªž²sÎY/2ɰ­µÆ²ª¶Ö½»°®§®¹±­µ¶¦«¯±·?.>7+.),Q^/&(%! '+58992/9ÓïAÞÉôR»µÃÑ¿ÑÏ»·ÐìLpÝ|̪¯È̱¼E¾ËðS>ZkÄ´²¹XQÆÔÔ¹£³Â¬©¶»¯¬¬¢§­¹¿ÇÀ¹{HH9'*ó¹jRQEH1!%(%(!+>F,"5Tí929/6³±Ç®À1&’–1¬šD›ž´C–¯*Σ­Ã4­,.¦¡¼À$¨Ô AÈØö±éªìÏíL³>9¿Ö´$lº&·..È!-78XíÅ7ð¿8¯hª«å3訪žª¡š¦›š›ž•¤š©ª¢H¢8É27)#  .G_̼·("e©˜Š‡ˆ†…‹”“’’“‹‹‹ŒŽŽ‘”“š°É5!)"'93)<>@  (ì21ÃßND½¾>y¸¯¨¥²ž¡°¢¤£¬œ‘œ˜Œ‹‰ˆ–žš›¢Ÿ—–”“•””œ¦£ž¬¶­¤¬¬ž£¨¦¬©¸¿ç>. !%  9ML\æjQRæÊļÂ]¾·³¥ ¤Ÿ¢¥¡˜™š’—š–”˜šššš››››™—™ ž›˜›ž–— ¤›˜ŸŸ£¯°³®«®ª¸üºÖu·¶¾¼TBnÐ?'Gl1-2%"#2%)+)"2.#!&5 &-1:30*/9*3H>aá@Jļ¹¾®Á˭ɼ©¯¾½ÐÌò­±­¾Ëª®ª   œ£­¯¢ž¥¡¡²¼®¼¿¹¸©­Ã䪶¹¦ÂƬ·³­«©°¹±¾¾ÌÝÂ8"'.+.;8/&$72(%!*%',"%%!%(* '771/+58,CÐNQNµÂë±´´¾Á­¹n­¤¨ªµ²±·¬¦¨«¸¬¦¹¬¤©ª¥¨¾ª£­¬··³÷n»ÊxÇÎÉÞ¶«·¯°ÑÄŹª¬±»¾­ÎQÀ¹±ÀäÚúZtÈag@;;-<6.G533(8762(.*%+??6,*>1*.CT.#%%*5-'#$.(#/8H8+K>G¸ÅÍÇu°·V¯©°Ã®J¯­¡ºÂ²·ž/«Ï(¹´p‹)Æ3¥ž B¤Pµ«3£V¢¦6¸Ô¬Ã/©Ì®Y)µC@¿Dº2¸)Ç>>T ,@È?-)&.+$+"9(")"R* Ï:&RÈɧž«¼®®¹ªŸœ¡˜¢§¢¢‘˜¬•˜ ž¢œš–’——”““—ž™’›£™š•‡™¡‘™œž£®±›˜¬¤š¬½´½Cc½?$¥ì7Ó26+#+5059.  å&?(&-%#ÀÊ#k¼;4¿L3³¹ÏžַÇÏÞVÑÌ«¯¿§JXÎëû»¬®¡Ÿžª¿¼»±¿º ˜¡¦¬®§¦ÁÙª¦ª£±7»µ?,5¸®ÀÏØÔE3M'/A4.qºÔÛþ*/vÝe?±´.4=(//&"/8&/"Þ!'æ3;±O¹­1S»¸Ãàú©ž«§úß§»*Éš§¿ª?«œ¶ê ”œ®šžh¬¢®«§Ê® ¬´¶kKº²±¼°È+;ÈmC7G>?8%.OÕg"#GNA64.,0"5ÐT/5?bCN9K³W-CÓA7ÙB%3]=##4/.,$%¨¥æµ¼K.°¥O­›¤Ä¿¥¾Îª¿9¿©®­°Ç_;5Iδ¸£ºÌ´Üñ¿¬¨¿®›Å_©›I%D1¬´µ¸.9®°ÜìÁ|0$!)¯­»1-,<>#W+!Û­£¬!,Í&/Ω=4˜Ž¤NŸ“D$-+˽Ë¢Ÿ¸(I–“˜™¯¦«ª±½Â™¡žŸž¢d/ &RŽ«®Ÿ¡È)-!9¡¼ª—“˜¤(4«©A*¿¸»zÍ<([S#:’+ ®»4D@¿ ®()ãm6O+$3 /T+ "Rª”’œŸ¯%5§˜Ì1”‹žw¾’‹’E º“‘Kà >šŠ£² ¦¥¡·®ž µ1+H­°°µžžr¾›Ÿ=#È¡¯5 ߥ¦¸®ªÉ#ÇN8&%*!Í•™£,3%6Ÿ©2*#+ ¤•É3±ª´ÕD`¥ŽŽ›;)/0‘ˆË¯›žC 0«žš¼;º®=ÜŸ¬\?;§˜œU$œ—´7@£’›0(=®™”›½r½R0,:Ô°\#½˜­(Éžœñ0§º!=)n³*0°1-­C,¨g-©¡.(²+G«­É/.V.'ݯžžà/Ñ”– ¦½&%ª•©·¢á/C;<©Ž“É@§­""o¹§œ§½®±I=L,柲§ ¡›«ÀB(Íž:&'#)¨šŸ¡­$#*ì©6?Þ>"9¦¬/)$%3¹¶5Ét&)*2Ĭ{A®¼"2Ú¹¡¤ÆO­ÍK°µ›Œ£Ú®³À§Ÿžœª»À­­c<5+³–›°ËªX"Í¢³=¯‘—À>Ô½²žªº¸²ÈÜ¿×10?;´¡@*©®)+Kå¯>/) $":,$Ç-"6R*!7)7Ï-"!1i=(È V+=§Æ®Ÿ¸Ê¥š¤¾©ž¢¥´Ÿ– ™’žM­˜Ÿ¡¬´ÃShTÁ­Î@nǯ©¼µ¤ª­­Å¯ ¤­äE¸¨¨«Ã¼¬·?6±¹<3¹§Æ;,#*õ+N/!',A7A"[â*Î# §°")ÅQ!¯¬&;ž¯-0¤¤+É›£¸¡“œ6/­¡°²—™£¥œªN¯˜ @?­©P0=?-:©¡ÍÝ®¹ËÆR®žž §¡®Ë¼ô?² ì)¿¡:3¯­ÝͶábÊÃÑ*AZ%'Ï>H)*ü4& /# ;/ '+%#2>!.©¯><´V!¾¬ä¬¤°¼À®®´É¨¤½¶œ›°¿§¨µ¯®ª¨¨¨­µÈ¬¬º¡¡º2:¿ºPýµÐ7´ž®>Ù®K<µ¡£^H¾H6䨭37 ž;,¤¤/%Í¥l"=k*,9 Ô(ÃBÊ+7Ò¾7(3n0¬f<œª%0m4W›©5!³§AÑ ­0£”¯–Ñ:›™G5™“¶KžžÆ3­©;=˜;!³žÐ(±¤"ª¯2³•¯&]ª½.J«œø‰§¢Ê © Œ¥ žI-ž‘%³/™­Ÿ©  H 0¨­¹Çš”œ‘Ž›-:¸   (±²¤• ®œ™ŠŒŽŒŒŒ‹•›Œ‘”‘¤—¡©©ÁÐNF #'_[.H#O5,!@$ *3·œ˜¢¥˜ž­QI?. +84ʰŸ›‘œ•Š‹“Œš‹Œ––“¤œ“’§’ž^­ž°È¼­pÜÀÝ;,³µƸ,$(00'·¬Jjž“—¹¢•›©Ÿžœ©¯žÀ쿬¢Se¢¯+00¿,   p0[;(,=á+m«·¼²›š¬±™œ§¬˜Œ” Ÿ‘•˜Œ‘œ•˜˜›œ™G:Ù¼>)%<)í ¥®=髨›”™š‘‹‘ŽŒ’œÊ䛩èÿ.#.'% 9æ)/$%§¤­P4º§ª ”‘š‘’œ—˜¢‘¦®­¦›A:>"é.+T) %3̪"!((GÔ>ÀÇÓ­«®°¬š¾Å©¦ L6ŸŸ®¡¼¤§¤—›©¡«´©´–š¼;(;+$#  #>.­§O¬ù©ž³•™ž£Qª ¯¤Å³šÈÊœ¶¬²M ÂŸ¢©£ž¨½œ ˜¦¹¾/./ -s0#!-!$27¶¢­¡¬ª¯•Š“’–Žš–‹———žž),Ê1    **.05®¦­]__8ÈT«Ô3Ÿª-&:<6*+67Ô"$;/PÆÆ»Ÿ›Ÿ­›§œŸ›ž¾ß®NÈk.íÉ63W7%K»»­L𬤟¤œŽŽž­ ™”ž›š•£Ù.>ØÂ$3-)   ?/&$6SDµ›«0-¶ÊN7).«ÃC(?r&.D$, &+¡›?1꟞¬™ž‘”¡»¢¦ž˜¯šœ–”¨ãÎÃ7Ü%y­ðÂ/*-ÔÓ-Ï—–£Ù-®£¡™ «›²¨¡¼Ÿ¿ M¯®g&(1(!+->地(1®©›®´¦¬ª¼²¦¿Ç-'Û±Û,  #""+>©®Èº§ —ªš”“š””œ›œ©Æ¦œÝì-?:-´©-@a.xO±½Sa¬™¦ö²•¢®¢—©§ ¹­µ½Ä8\œ£*,,.6)#))Mþ-#@/ޯȷ#ï3&<,^«©¯3E'6#%^,/e!&]œ§Þ =¹ª»“š–˜Ø§–œ›££ š’³°¬á²LÀ©Ã*#B¬º8+#9Ƶ»PQ«3.­§”¨RY¬œ§Ë§Ÿ¨©Û¯Ê/R((¯·79,$=B#  +§H'° A/Q—¤Ÿ©¥ýºŸš©+HC«¦66¹µ8!3&/%%Û­¼  Ú«J+4<ª§¤­¤ž¦;Ý—Ž’N5Ÿ••êy¶š™­?Ϋ©³+¾¦§=&+_¥<-Ož¬/)@Ä0µ 2«OE>D(!AZ=2)Eª”ššŒ›™Š›–‘“™´¤˜”¢Nν¹¦.¹””«yž˜¤Uל´9(¾–™¯² ½Àº«—9.´œ¸;=+=¬, ÇO' 48*H= O<5# ¯ß&%MËÂ?C,1½9&!Ò°¾416&'7>%+:=଩¯?=ªœ’ž£“Ž—ž›–›Ê¯Ðÿ¡¯³¥›˜¡w0³ªµ§½AX)7k¼®Ü.=¶§¬ÍÅ@½Iñu'üÙ?-=ÆÅc--1Mm8%GB%-;*YÁ# **4)&*2*%,+Qk>"*ÜßμF:8^££ªË<¯ÄÛ£ µ·£™šž«ªŸ°™œ¥¾>22ÐX].>µ¼´Ã¤­°Ç©–›¤J¾ÙȤ³º¥Ÿž « ¼ùµÁ›Ï)"8#46 05"+#!&c¥Æ+tE!!%7.%6h,-+J§Ì-'ÐËE;FS°©IJ±»79¸¤©;*48J¼:,Õ©š§«Ÿ¥Éߦ””Ÿ¶0M±Ÿ¨»î²§§š ¡£Âô»˜—ñ"0Lª¥¼²ã»º>N­¾4»œ”š,"):=$')/2*!(O$)B™Æ!±I%+7Y0)*+6'?®/DU,#%mÉ5KÓ²¼18Öœ´=!&ÃÀö¼Ë¬Ÿ«šž¡¯À¢™™¾¶­ª¶iµ©¬°Ð¼§«ªÍ5 —¦Ê#0ÖÉD>ίª·É¸«¥°VÒ«›©Ê­¶¾Æ;* DW()2,#>¿/( )#$%:*+¹½(,1)4)!9? $´¶J-ñÎ.(źIvÁż«×Zï ¬Ð³š£°¸¦¨ºK鱜»Ð´œœ³Õ£¢¢Ý§ ¶}@¬¨È0/¦¨©7)ÌžÙ1@¦®z=ôªº.Gø9,Èì(5¹,0ÇA+@Y"7¨.2Ô2:=* &j³"1³¯*2°ªV<¸¨Y6Ȧš½É¥‘™Ë9 —ªÉþ¥«ª°=©˜”÷/kš§¶F¢œ­*.¢—¤'C«’À'Ä”žþ\¨œ»+1×°K¿¤=>¾¼+'üÌ!ñ¹Á')>#F(&+:+½¤.#.Í Ë7/¥œŸ»Ö¡œœÍ7£–š¤À¯¢®Å­¢œ²³¥§šûm󡙨¼«©­Ô°Á¾³¯ÉJÁË®$;;¥­(-Iª¤­9=±®k;°¡³Å&¾É±î1=4P8% %&%',&'.#"%&6©¬í3+ª–ЩèK±¸œ£¿0/½§š»ðN5-0>R¯ž–®¼DW-°´ Do«•®CE͞ɥ¯4•‰Œ»,¡Š)/¨ 9¯—¬(>½™“¦½£˜›Ç&&+ * %A/.#  1.,åž˜šŸ¥ššœ§­·¦¥——–¹!7š“œÀ¸š–M”•œ”›ž£©¨©¼½Ý¬©e9œ˜“kR²™”œTEš¯M+-&Ú›¿_U°ËÅ E " fÃ;£¼ B!<°°=%@žŸ"<Ãålį–— œ§½OEÁ©ŸÅ8¡™¡Ñº¦¯a?¢ŸÔ9³¿´ž£ªC½¡ ¥è#7ª»8œŒ•®@¸œ½”›4"©›F<ª•š;.§V&=%$ú@&#*ºK&»¬/°Ž–ä'a§¦É# /Æ¡˜–žÍ/ꢭÁ§œ¦T3¢’«&>§¤Ÿ¿"´œ¥kB®œ¸+7­¢¿©´&& œ1D’“ß+k¤¸²§›®'/¤žf.M·T8Ë>Õ¿9Á§œ­'C®³®À "ä2I¯Y/!:¥®·¨­«ÂNÎ0$C=1Ê›•uT–”K;ž—¯©×Ƶ³´™‘§&*4Aª@)ð6¹–“Â$󜙪›œ­Ÿ™¨9'6êέºÈ츬±Î©ž®P)$-PäÍígÐõ&%!7: ,$*;Y*S«þÆ  â[ѧ¾,Y¦³C$&·ª®YE¼×° ›¥»³Å£•›¦§˜š­×ÊËʨ¸''M@;-)NÀ¾ØØº¨¡ž¤¯–’Ÿðh·¦Ÿ®¯«ÀÆ3D´¡¯ÂÉ*õŸž¹>/) *,(',( )'*%)¹ž¯¼­¢£ž¯®´ïÇ09QV=(#GÃÀÝ+/£š¢¨©ž®¹¦’‹–´»¿«ž¤ŸJ%%-ãFø³0"2Á¯Æ¹ŸŸœž›™¤ª›—ž¡ÏOÏ𳡩¼;íwxL0N; (A>"+5+#$!9ÎîÚM¹ª¶¿­¶Îª­Y@Ô¬­¸<3Ó_W»¼¯×îϬ›¾º™˜Ÿ¨œœ¦­¬¬ö;$*A9M> %23,¸Ï3m©«ª® š˜œŸ¯·©š˜¥«¯©§¤ª\-0ëV18ú3*-<8,?2 "', ./&1  #:V¯Ó'*7ÃÈÏ亰Ét®¦›Ÿ·Æðº£¥Ÿ®½ ›ž­ºÉîÑÒ¬®¹Ïïl+.´¥¶R½F)!'F^/2°ª°­©ª½ª ØN©ž ªŸ˜¡º¤š˜¦S@ÆÓmßWÛq2T¯Ì,!4Q77'"&)&$"&0/."(&1"#&/,) !1M/,=IIØ£ž½NCþà 1Í669>RZI/1!,;6Ô¾ä4 0F*#>Lµ¦¨Ô²—•š› žŸ™ŽŒŠ™§¤  ©µÜ.+×k£¥ª¼-8)LÌ- <ÀÖ¬¤«Å¶Ÿ£¯½b,$0Ö»²¤¤ºöË®Á¯¬M )¯»5/;G,'/655 -H#&*Ä® š•‹‹‹…‹’››”’•œ›šž«¶Í±\%%),66+ÒŬºF/%0ÿÄÁ¼µÞÈ»»©›“’©¸³¤•™›˜°˜¤žš «¯Þ/% Ñ616*IK¾Ÿ®ŸB%#"ÔV¹œ­³R/¸•‘Œ•—š¨­ ‘Šˆ—¨©–•œ›£Y 6JÌSiµ¹·œœ›˜¢›œŸš˜–•’–𣮳L>h[8ÈWBE>ªÉL/"!=Ù?> W4!& $+".o­ŽŽ— ®š”ŠŽŽ–¤”–š“—ŽŒ‘ž»·-#*,8*º<"&(F,¶ž™’Ÿ™Œ’–›C*5(Ë«§Ðb J;?.M¬ªµ"*$Hب¢ÇW++/&53*- $FN·Ž—Ÿ®ê¦ž“‘“•— ù­­¨<_Ÿ“®<.?Ì.GÊ8¼+%,lEoµÉ¦›™¦S¤‘¦Á›¤Ÿµ2]Êž£µ˜œª>9.0/$+þ\+.+äA&A®œ’­ž+"KR¸­¨¯®-(#*Ö.6(7! }ÌÍØÃ£«ZÉ´Ÿ——ªº¨²´éÙŸò8:7{Þ90 °¢Ÿ¥¸œ˜¨á¬†‡™«ÐÁ£’ˆŽ™ÇIÎ"(BK»ÜÎ( %Ĭ¦-$$%”’œ—ÄÏɾŸ–j+CÍÞ.6+(UIÒ›©´¨ ›œ›—›¨©R¤—š/[¹[Ʊ=)©ÎL0*Ô@ Ÿ¥º--¿ —˜ž ªÝ®˜œ¬ô>¬¢¯ð=4_»¡°¥œXÛdMœ™Ä;Ö:]V@/>°ªAÀžER*6Å㚨) (* %6Q*& 6. 6®à-6½^P±Æž¡­Ä-ʨ¨¦¬–‘›Ì¾›«¤«ª™œÚ58ÈÓ/?è¬Ã(=53Mïµ³ {˜Û9™”žÈ¨¤®‘š%³ò´œ³"«Ð2"œ>%#Kš¸' ©ÉOW7ÎÚ§».I´(-¶§­&£ª½>)Û-)(*RÚ5î«ÌX˜§<h·©Á3N50 16 $=¸ E3ɯ•‹Œˆˆ‡†ˆŠŠŠ‡…†‰‘‹‰ŒŽŽ‘›–’“©¶ž›”ªXO=P»4*%:o', %# % $)3&&ÓU(,ùÄ$"%5S+µ½D?³›¶MRžž­)*ª ¹É¿³¦L©Ÿ´«¤®¯µ±”œ¨H4«¬ÙkúZõÀÆ>+8$)DvÇ0%1O("#)/+8!%.(*$((=#.>0!5­.<0(2.±i*¾˜¨­Ÿ›ª¬Ž¤Ÿ”—šŒŽ¡‘ˆ‹•˜Ž‹ˆ…—”ދЉŒŒ‰‰–š‘‘–“’’œ¤§™©·£ª¯«¾¸¸5&%Y>¸&1446=     &#!Á.(»¬]Ý+ÙªÀ)+Æ¡©Ÿ³œ“šÓ$À¡”–£ÆŸš™]È¥žœš¨•˜¡²'®œ˜›§j£¢±L#¶¤°¬´«¦±'+$°¹©I+G©·"ͼÛÛײ½C$:΢ªªØç§¬+4^®§¥r¸¥Õ.2˰•¢±§É¥®¸)»ž¤›®¢™™â9ÓΞ¦¾œž²¤ÂSÈŸ ª¬ª¨²$­®¯´¨ŸÛF*ÙY¦¸:¾O¾?<&$Q<=4¿?L&)''   ') : ,X++/L7µÈ±(çµ|«³–©ÅTժʡ§¸›˜–œŸ³¢”™”™Ž”¦­«–›—¤ªž”—­o·N¢¤« š£è1zž§´kÈ¥™™N9ªë©ª£™Ÿ—±ÁÙ«¢´1ª¥›¤#(7¾T×õµÙÐ&#(4å*-%ªRX,GN8½I¯G3)´19P'æ®75)Dz·¼¦®«¨DE¿§ž=,¿¬›ªAÇÁß½±Á­®«×H;W¥»!"õ¾¡S.W:-@.P1,T G9* ¬7&/;/,#*=0=#½/+!"B%?.3/·'*,0j-%HÐä¿M°¨ž—•«°¦¬¢š˜¦¦ÑDº¬’ ·¾Ø¼´¬4/s7ºÄ´5+ A³± *%B( .1> )D (  $4é©@!Ë@@&ÌíÂ)/¨šÉ1B¢ª·1Ò»³Ìœ–®¶78H­”š·^>ª\åÕª¼¬šŸª¬»ï¹¡‘¢Ò8ª”œFž¦»¥žŽ• ›œJ¸™ŽŽ¬7Bϧ±-ʼ:9¯¢£ÃÌq&@“–¬=¦ž´;Ô¯,0³«©ØáþNÔšš›µ%·™šŸ¢º³±µ˜œ¢ª·W¾½Ÿ–Ÿ´ÑoŸ _¯TT쨯¾A@I) 0¸ ],J"*%"! $W *)*)%*3¶Ñ*"'.$!6þ68'*=,o©žÍ<)h««§×K ªÃ¾Ì¬ºÞѽǚ¶BcXu½Ï«Û0¦¥¶µ­£ž¥»µ£–˜¹±£^µ¡¦¢´¥š£¯¤«œŸNÔ¢˜Ó4¸,[ÈñS¼°E¬>§²³§D9œœ©·9È»/À?*¦Z<ÓP³º?ÑDNž£¢¢®Ûʬ¦¦l™—¨»·§Ÿ¯S£¾¢¡Í¤«/A¼¼¶]º«4--G¯5&%µ25*8¹(96p#0& ;42'#=%I¼%AeMÞY+.)#¹´>·µÜ¹H§¡²@N?°•¡¬G³¸°˜§¡äÇ®¼š£/ç9­›¨¥µE4¨§¤ž©Ÿº-®¡¡œH8·±™™·¨S4±»£ª´«Á3½­£²3$´«µH34 *µÒ§§ÏÀ;KÔ­«ê%ÀŸœÐD9K5[Þ™¢³^¶¼ùž­¨.2ž‘–¢9À½ö¯®š—±T©±¬£µ»:,ªŸœÃ(&?Ï/µ³©L,H:;.W/-/¯K1(*&&=)¼.#65/5,".ά)-&-J­ž¸7Ý]>G7½¨/6¯š™Æ'Ç>I«¡“ªpë¸aIºŸT<®œ›·,³µ^­¤—¨­¯š²]¨¾¤G§Ÿ™½DÅè¾L˜Ÿ›°Ò©ZSV«¬É>Ç›Ÿ¼N&>n4ŸŸ®®YSH4û­õ?H®œ§à6)/Öª›ž«Î­Í®LÀ «Ç³—šžEÎMi¬¨—˜Ö¼Ÿ I)9©©Lª§Ÿ®+%9:9ưÆÚeÅ».`@#C7Ô%3%,% !"7#ÃÐ-gJ- 5ÇDF?3®»|ŸÆ¸ð8j(1ÀG¥ ®·99&&妠 +%¢›Ç.9)ѯ±˜ŸÁ8SÿY˦ž±½¤›™Ù=éÍè‘™”£Æ¢C7­£™XŸ–›ž§¢˜£‹•¡•Ÿ¢¹È¤££Y­ž°% ,3'&<¢œÎJßó&2I®¯$1G¢—ü@ÒZP ””Ÿ¬¨¿Á°œ´Þ:¨šþÁ>ÒPÏ “›E&¹¥@£›ššžŸ’˜¢º©½«—“š»Å©²06ª»h.&¶¬ Â7>>=*".¡—®')Ì956Ϫ!E¥’µ=33.¸—”Ÿá¬°ÚO¨Ø6 ´˜¡j/$?¼¨˜®³4.´Ñ½› š¨¨™’—µ¾ÁÇ¥œ™™®¼­|ÎýZ©9(:à²?,ù"$4,=ê<.*-U«¤¬5&0TÏÎ:½;.¬›ž?'7Ë¥©˜¥©¬y¢®Á9B@s³›»2&#©±»i¹§9Z㣜±Þ¦œ›žš—´¬V·Ÿ°­œ™´7A´¯** z=1C-5&'(!4/&<.QS+&Uwױģ¿*']žÙ**,ͺµ¹¸×I«¨¾Ô—¢Îè›—ª$Q®­4.ئ½,«¿`+>œ«:: ™§ýÕ™ÉJžŽ¡Ã㟮-°••N)ÌÀ7·$+¾4I.>5$G+8¨¹;NuÑU<¬É¶9­©2"Ê®;4³ž©·¯ž¿m£—“¥«£ Ç?á³,,¹¨­:«U'Øœ¨½#¨˜¦@©œ _+›–—¯±¬Ý:æš¡ð;¸£f=='«(($- 2:(4$ *α²°;*-m®¶Í¸V1?%¾°Ì-9ªž›§¬4ê«›–š¢ª¦Á½·¿ÇI+Á®©ŸÍ,$̞¬º¢Ÿ¯¹²¸ª­°œš¤ªÀíæ´­¸M¹±Âí92.#!!&*9$<9.Ø' A¤ª¯ß56/,Ñœ©À:+3,¯«ÂG)ÑŸ‘ž¹²¬µß£š’š·Õ³­Íư92V —¸.5Ð?)5¡’›Àή²ª»ªŸ¯¾¤™ž²¿­ÆB7¯ž¦+B4(4(Jé( 2´¾*)*5!(KŸ¡ÍF>/%?¯–¥,-¬¯äo­3IÁ˜’¨²ª±Ê¼§Œ˜µ?½§·²9¯O-Z£˜¼;fÛ**¶”·.߬›É·žª>Ôœ–ÕµË+:¨œ:AJ$ 3©Õ7°K)PF#- .Ê™¨:'T@)4«š­3)½¤«HNÅLÆ•“˜£É£©æ¯˜‘™¬6²­¶s¾ÁIକ 4:η?#£”šÓAªž«Äв°7¥›¶qɵ'E§¨/*+ -AõÏ&+&3-+.-,ª¹Oµº5:#+žž§¸;K½³Îi'º¬¾©®²-+RÑ—™®Ð)à¬GKʾ޺¢®¤¦9EKF»ššž9ɹӧ©ŸJâ ™ž ›­_¿¥–—›¡¨¯Ý«š§a¾±§ª9¯" .$ ) 0&%&& #6-D_*" 4Ü,35Ó´J¯¡ ·>¦¶À½«^­œŸ´F˧§ìÖ£ËÎÓ¥ ¶Ê¹°=H­™œ±Ë_¨˜¬²¤¥¥¨”•™”••›’Œ‘Ÿ³©’“¤¡žž¤¤•™£ª­¯¯¼žœ¡Þ0Ÿœ¶GCº®¤°¬¿;ß+lÎÀ«M%- ›ÍPO«žª«½äD7S¿¬›ªF-E©¦T >§²íøêJ7=ʬ¡Í= %/«º#<Ù0)*:-*5,!#7Ö26È>&?43,.5>ÞY-%/¯C+88­¸Ç¼.4%7§ §¸L).-¦£KE/1®²¾S@1&:Á§µÉ7"@¥Ÿ©M^̽¤œ®²À¢›Œ’™±±§”™¤¡Ÿ®›˜ µGÛ¶žœ›¡¨åS©˜«¿¥¡«Ã«Ÿ£p@o³¨ ¢¬O34½³NÉÁ¯cEª¦²>'GÃ¥Ÿ©½>3]¯ÓDĪZ%ãŸÀ0+Û¼© «=.K¼µ03©½(%8£J$(/>$P'0Z 9[0!%!-6&1æ+!O¹0/Ô¶B-%-K.'?»¸9+NºÊ%"N§¬µ,/¹¹;3£¡Ç$,ί4(-9´©º0*Bº»1Ú¥£Á&6§¡l(Á¢•˜¡ ž—•›½¦›Žœ©‘˜¸Kªš˜¸Ä¦š«D¨˜š¤»X©žªð3»–˜­T:¦ P'7°œ¬F0øË.%=¦Ÿ·AL½µ3%¤ù>¯ªÜ(©ž˜«>;º¿¹=;f¦œ³Ý-¾¸(â Îå5.+! -?**,(µ3!!&"(KÿÒ*&4( +½Í.57%+D¼[é{dÇ/$9ñ£¤»62Ë=*);²Ÿ©=ôç:#3Õ¾­µ¯¼@V065H¸¤š¦«ª®¼¹¹œ–”••‘”¦®°¨šš›•’•𩲹®¤–˜˜£ ¬>N¯£ªª©›¦®\&Zu®¯¯¸Aú>2L?·ÅV¼³ª¾.1:© ­¤¤©ØÞbØÃµù½¥£¤¬·I+ÅŸ¡¬ÂǵÀ=>Z¶9&>À©C-+&)G=% ($83!%3 !*2%(EY.)2-$+50$2>%"5[Ì5<+!Mc×I»­¹B%/º­3*Õª²°ñ6@K±ºÇ½<Ý©S?p­«Þá«£¤:_¬›£¥¶°©œžŸ¥«ž«¨¡•—Ÿ¶´™–¤¦ —˜¦¯œ¤·ç´¡©››˜N,»&©Gž­‹À ŠŸ ¨*<Ë®“º%“  ±¤i ¤  -иɱ¢’’‘œ˜™´°¨Õ+&/")/#.%86ß3# )dz;¿´ÀN¥ž½ F´lÎ?%   "%+5<Ó¸¥©­œ™—¤¤Ÿš—š—œœŸ˜™¤¤³«åÃÀá+,! '),BÞ4ਰ¢žšš›˜““Ž‹ŽŒ‰“Ž”•—’—ž—•œ›ž£¥¡¹W¹H>%)'!"( %&))3k8-/=ù¸Ð¿«§ž›—”™—•’•—š•”œ—ž§¦¦¬ªÉ=J#$ !! -#+,1U:-,8&# "*%)6EέŸ¢ž•‘”Ž™œ—–’’•¤¬¯ª±­·]F*2C=NN()I->&$581$*(1)$:EJ?.»®´Í·¯¢£šž»ž­¥ª§¸¨¥¬µn²¿Å8)=:¾&>G+1;G,É´¾»¹£ŸžŸ “”›•š˜¥š¬¢Ï¤F/hÖB/&"+*')-(#$*,¯ÈY·§¬Ÿœ¢ ™–—•——˜¡ Ÿ¢¸@86f1" ""(+/),ICx¥ª¥³ª›™¢Ÿ˜š¢—¥¨ª®­¿*EÍ*$($!$!1,.#B;2<>3,·Ü.%%=0 "'!'%$'U9?82°©«ÆÆ©¥±¶¡É¢œ ª¦§®«¹Â× ¼çK(ÒÆ;)72^áÂM>F®lB¥°¥¥ªŸÃš–²Ÿ¸ —œš¬­¢¡®¡°¯Ÿ·³Ò¼Â1H,/̼K(1JE./],ïØMÀr¼Z3âܨ¥ŸœÌ¬¥—¦Ù£¡¯¡ ³­¶ÊN°¬W»UÞ?6¹Ò=0Dð¾¼¹ÛðK®d·ªÂ­½¬Ÿ«Ö½ÔGЪ£TH)yÍ)(#!#0+\ /N)ÐÁÓ[-®©t:³?9&B¯8&!4-hNO>.0$±&(-.âá¬_¦¦ž´ž ­¢®?6C´Á±Z:Ÿ¶©—Œ‘”–™ŽŸ®“²Î¥©š]¥¦¥ÀF¿º˜Ù"$("*"%:/*%  '6:.FM/<'æUE&!'@K:qfO%¥›£Üª­›˜¥–œŸ «œ° ¨ê2ÒVB°;;ÛH~ŸÅ¦­S¦£¢µÎ°¦¦° —®¢š·›¬¤š¯Z=ÛÀP;5'.!&%)!"()»¹¸¾1彦°¡©¾BÓÞE¦¶ÂÆÀ¹©¡O=y«±¤k³±Ð®ËTâÝÁ³=E?KNG?¾­²± ¦›œœ“”™ Ÿž©®£²¤£AI`J.$.8 %("%91+9";h,ÏÛ¿à± °ËƸcݰig)45¾´L¹d_=ή±ÒͨÁ¯¥¯«KN¹£°¿ÁÎæI±¸±¾;ݱ߮¡® p©” œ©¦¶«œ³¦«É«QĪÃ0+;H=->&!%('G').1.)20"%79MKJÅÐLàÏÉÅ.wz848PÆ2H½ìÙž¦³'+=«œœ¢£µFD<-8ºž‘˜ª3&-e«š““–¥¥¯àª¼01¸›–žu#1¬ —££È9½ª±ÐÔ ”­!&έ›–Ÿ®:)#&3½+ %7¯¸¼*+8s¿&*๠¤®Â;)(1=?ì­œ¥³õ$+̹§œ•™œž¨ÁMȬ žŸ™¬LjÎÔ­¸¢ž™˜®Ã<&7˧ž¦£§ÁMdºª¥ ™–¦j7"(AÑ9& !(',=80-@=+!"(>ÃÆ·¹®É0%_§ª ®³µSpÙ¿°Ÿšžž™ ½-&Ù¤žœ£ ª¯ó±Ák«ªŸœš—©0»Ÿš“”­«*G­™Å7ž»™¯¡º.Ù–‘$·')¢¬D¤£+¸%í­œ·é«!(0]Ñ+:Ä©¤Ÿ¤·Ë1))4J౦§´ç8')a¾ÖN:&+.G²±Â>,&*Gª¨ª¼mt4!%4?XÏ«­{0&<¼¦§«¸RèCS³¤›˜™››§¶ËµŸš’Ž’—  ŸŸ—‘‹‰‹Ž’š¤ŽŒ‹‹–¡©¥›–˜“–¢«·L,,@»¯­¹N%!#! $     $<Êæ1( !.⦛Ÿ¯«±¸UM·¢—“’”–œ¬± —Œ‹ŽŽ’–˜œžž’Œ‹Œ–š¥­Ÿ•ŽŽ•–œ¢­¬«š‘’›¨ÀLQºžšž©ºÍ¿n""=¾¯«»:!,:NÂäK<6>%G²­ÜC5"2â½½¸¸¿c9/*(;¨ž¢³ÀÌJ+-è´©®«¬¬ù-,)5O½©®É651'$-ʾÉH7<-!!'8N\5&!/kD%"#,$((!))"%7.#%Kã2+6köB4(# H¯ ¤ÁÌÈì˪ž¢£›“–¥²¯ž˜‘’š™”—™“Ž‹›¥ž”Ž•›˜–™—––‘•šž¬»¿¦œ¥®¯ª®JM̹­±­¯ÀK1,1K:hÆP68B5' +ÑÒ-*=b2 "".76)%%=($E6)8-)& +7(%%%'/%3àO!&)":;3#-Øã8# $+ë®d&+åÎH3ظ=,Bµ®>)/Ý·¼ÃÐ7-K³´mM¾«ÀAI«¨{++³ª¯GJEQîI¿·Â±Ö3F¼®Z&-Á¡£ß/@b`Y쨢ÌCѨ£­ÆI¿§—“ŸÄ⯢¢¤•Žšº¾ž‘”§sº›“”‘ DKÇ¥ž¡ž¤aA¯š¯*Až˜ÎN'!1¾©«¯ÑºVOÈÛg$%Aœ–§=%),DW·¡ª[?¹þ>,0%&Ϫ˜«.)),3ºÕ= $(#*9U9 '$3E(#+V¿Ÿ•ËÎ,7<µ•˜Æª³˜™³§9™¢‹.®?°Eœ¯’š¸œØ?A6§Pœ šÔ-B3¥Á@ž>& %0»£¥±—ª>I9ŽŒˆ†‡Œ–˜ŽŒ‹‹ˆŒ‹”šÎÈÂÊž¢›SA! 57!!Úåó®ô«§ÂAb¥—’ˆ‡–›™œ””‘“˜©E(!-yϰß' "90*    ""'(1=nÒNÎó1'AŸ”›¨´µž“˜ž›–ŽŽ‘——‹‡‡Ž–‘Ž‰Š“š‘Œ‹ŒŽ“š¢¦œ”“ ²ªž››¨¾Ã¢ž£¥©¸¿Ëm×°¢½<9Ó¿M. '=,$( $) *!0/$#!"& '')+*!&>f@**>98:<@_½¯ª¦·Nó³¥ ›˜£­§¢¦§©°¬ šœœ¡­×©š—‘‘–™˜šš¤Ÿžžšš–œ£¾åÕ© ¦©Ù}QÓR$(*'.C-!(*" ' ''2%-ñI$*MçI=+!.´ª¬±Ï66ׯ¤›šžš•‘•›œ•ˆ‰Œ“”‹‹ŽŽŽŒŽ—ž¥—Ž™¨©¨¥˜—ž­¨žœšŸ·>KÆ®ŸŸµ7>Lã½ÅM.,Ó±ÔK#%;4+&%$(&.Ù9)!,+ # %jÖ. 8ÊÝE3GD3IÉÑpGlÆ«£Â5*/Kµ¨S,RíC/?\A/O¾º¬T!&HËÒ<%%.5.3.(+G×Ç÷8#(ÚµD54-.:I.;,"4º±=$"÷È76)&)+>:0-5K²¤¾(0ʨŸ¦«¤¬¬ž˜›–‘‹‹ª·Ÿ“Ž’™š•˜ž›™šž—‘Ž˜´V«š•šœž¤¤¢­³­¨¦¢””›±S5ÙŸª¯­»Ù½`.4LI¿©§¾$&JN;+*($,*, +99#$$"(-)'&"#)/}ÇR2!?P-6\eF=,',@[f«¤Ä?-2NZ·¯¿¹©¨³´þV©žš–š¸Ïµ«©¥¡¥¢Ÿ¢¯·¹ê¼ œ¡²êFõÝDU·´¿¹ÃI5/LÂ¥œ¦¬j`ؼ·ÄʼŸ­³ÅH;À­¡Ÿ¾:@æJCwJu­¬·I>+.¼®ª¬ª®I?ÀÌ@ʦž¡ÊïåÄ«——Ÿ©«½É¾W7_¯¥«¯Î/"+;¾¨ª{**,-"8ìB#DÜp-&) $9ºt,"$1¸¥²=*%6d-7ÐÀ¹A%9«©^((*??#!aÇÏ_8( #;· ¥[25´°ÍP8⨚¦··Ë2H¥”‘•«0ïΞ£¬Ç¸£ªžó9Uµ°«—œÀ,=µ«Á,$3§¡ªfP.1Z骛M&6Ħ¬>$P¹¨§ÅCB.>º˜‘Ÿ61»——­[W¢’Ž˜£« ¦­¨—žÝ -=<%'R'$#"#6±×"(6­¯Ÿ—¨²=GÆM%J+"5<(=Ì›Ž˜œž™”—¡©¢™• ¶¬ÊÀ¯¢˜˜¸I¼Ÿ˜ž¶¸¤•˜¨ÅåDzµ®ÊC;!2&/DN58&$%H´0#yÍ-,',&%,_¬ÔÙeD°§©½ÇðoB().^M( C­·@)&^ž—›Ÿ§¬©¦©¨¦­¥¡šœ±Ê.5À¦¬È¼ÞÙU;<¨ž£§°©¥¿D"3MWC!#%3==;Ä£¨Ñ-$/SOC$-4D5/A(+?F29.*6¼£¦±Ü.6¹Ÿ²JDȺ¯N 2Æ©­92ùͯ ¤žŸ›œ¨³®© ™œ¢­ÔÄ><Îŵ¬Èܲ¤£­A>©–•©Q)'&-#$(.=T>1,&/0´§µJ>º½`'&*()B®Æ;'Ö¯ª¯Ê¬±R¼é/5<¼¨±/)3.`¨Ÿ›ž¿¼¬­·«Ÿš—¶H9À˜¨»ÌÐ<3#(°™•¥L38?Õ°¥£¸>/&#/ÎÈ»º>("*¼®³k%2?A"*µž¦R&9µ¹ND0õïU(*<¸ž˜ž´2 +LÎ¥ N)#L¿ÃID­––¢Ý=¹Ÿ‘Ž›¢ ¨¦³s:Iµœ›Ë(-Þ­ ›®Â?nC*%?ˬÏ.<¼¹µA)&## 5·§Ý&&à®§Ã4($"%/N¨¢½5%d£›ŸªÞ.=9+,1N©š¦õ =£ŒŽ—ž¡ž¡¦¨ž˜Ž–¢l.±——¹>?í5*&1ã¿™§>-¹¡¤Ü3-/,Q´¯­Þ-0¯«¼Ge[)#,x³¥²6".´§µ=OÀP'墫©²Ã(+µ ¦®±²«¾NA¸‘“˜ ¶ÕL²š•ž¶¸·¹/;´¬¸ÝÚ67²§ÍN×n,"%Iµ­¬Ç+&Ý£ªN8Xo5D¤©¼®¹R+!v­¬«¼A@8#@© ¯]éN6 ]Ÿ¾>Ä­y8¬ššž¦©ÌO|ºž•™§¨°3'? –œ¹LL*+º­O.MÞ6<¶©¬ÀC**/û¿Q]Ù½>\ž·FJW+#)Ë«ÊP®£®4$¸£¢¬;,:9)'BẼ±¥¬-9™¦½_ÍÆXʺ¬²¬ž–•¦=2M«–‘¹ÅȸÄ98ØAd¾¶·) G±ºF2*0,.0>94j¶®j%:¤¶9/MygÕEéÌq覨½2»œž²O>ÎqMíJa9I<ÌCß'.§œp)!¾ š*;U:@Ξ®6”¼•¼›¸¾G¥Ûž¦#+ 5™žŸ0.éÔªçDÜ3Iñž¡*5SË¥Ç75Ù³ì¶Ê(·M›–¢½:=Ηœš¨Ü­¦™œœÙÌuž“ œG-.'69 )*" É ™¶YÈ¢˜”™¨Ù×ã¥™Žš˜Ž‡…†””ŽŽ‘»Sµ½ª¢®Ä´Ÿ›r ,0Å£¡¸T5[¾¸.40"5L;'I¬œ¦T"-\¥š©i22À­N02L¢š¡ºHÎŒ˜Ÿ§§§›Ÿ§µà£–—§Ø]®‘“š¡ª¨©¨ª¹;6˼Ð,(04)':)&$')." (+'%09má0(5ÏÕÎR8Nú¤£ £œ”œ¸ÍÍ粫œ’•š›˜’ŽŠŠŠŠˆ‰‹Ž“—”ŠŠ‹Ÿ§¥™“”•ŽŽ’’”——ŒŒ¡ºµ´¨ ­·Ã¹àC9(!(0ÎÙ5$%"     ) )4<^:)&.êY#:¬¡µ>!&2GRÛ=((A®Ì,$²™˜Ÿ×/Mß®žš¡¯IÅžœ«2%:ª™›¦µÖÖ§š•“ ¨¢–‘™¿J¢’—ªÉ?»µ¦™™¯@9¼Ÿ§Í!$Z£±/0WΨ²B)d: #D> $+ $!9]&;æHF&'Ͳ= 4¬Ÿ®ã,$/ʪ¤«±õDÊ© ¯67±›•ŸÁ]±ª¥ž˜— ¿À¢–š¨ÁÔ¡—”œ¿O[¹Ÿ¡¤½kJɰ®>!.Ƥ§S**9˲¢¡¹U=:²¨¸]9;»¡«K"(Nº¶Ç<++?Ss,*ZÍÖ0! /Ù±¶2!4fº»ä¾§Ÿ±Ð|ÙÏŸ¤§ºÔ®¡›§\/D¾¡Ÿ¦¹þ,/ÜͽÈ5.WGÁF)?·ºD.*,#0KÄV1-CÈo(@ƸH(!&(,,'#(&)8>(6/+,GZ2!7·­¸_80AÆó¾«¬ÓÈ»­®8)7°¦·WN=ZJ?µ°²Ç¸Ä¸¯µçCm¦™ž¸[Ä®¹¼Ã©£¦«®«¨°wN¿Ÿœ¡µF½³º¸«¤¥©¯Í¬¬µÍÝ´ ™¢×}±º¬°º¤œœª§°²ÑůŸš¢³{íÍ­Éɺ¯£©¿A776<Ϫ¡§<$5íQ)GÚª©¾F~P !C»²¢.5-')R.;æ’i-."l¤ ‹*_X@Ÿ0&¤žÞ­.@ÜÈ¡³)0Á¶!6ªœ *2K2'*,ÙWÞ“–§ËLß¡ž”™¦çJ±¹Ã(&CœV|.)MÛ     )ýÄ»Q!2çÍ~ªž“ŽŽŽ˜šž’‰‡†‡ˆˆ‰ŠŒŽŽŠ‹‘–’’Œ”—œž®¼Í·°RÒË,,@)  &6'&CY#(¶ž¢žŸÍKº¯¿­ª¤œ˜›¤¬Åë¹˜ŽŽ”›œ ©ª ž¡¨£–™£Á(9»¥œ™¢ÐJ2*&7,(18=ÊÍ"NÜ[(  ))"""#>M,$+6#87"**)"5C9çտƱH;6$)>©Ÿ½<Ù¸®ª¨¢š˜•’’š“Š‡†‹ŠŒ‹‹ŒŠ‰ˆŠ‰ˆ‰‹Œ†ˆ‹Ž’•’’›œ”—œž•—±QE±ž¤Ç9=6$!%$$       "2Dc71.%/<¶¬®¸®¤¬Âܰ³ª¨§£™½²¥›•”™•”œžž™—–šŸž¡¯öÊ ›¦±¤›ž°¼¯Ÿž¦¨³¾ÌÑ=GͶ½CSEK¼ß,*8Ä×b-*'$,+&"$&/?A:,1½­¡¥©®¥žœ ¥¤®¤™“›¥¬À¯š‘•œ ¬£™˜¢®¬³«£Ÿ«ßAÉ¥™²Ûϵª©ºU5/6FÝW( (=?)-33+%)4(#(+'"  '')"$>Ú½à8./-^¶ºL%Eêİç3\¾Ç¬¦©þH̲¥Ÿ¢¹²¨ž›––ª¦š˜–”™¥²¥›žœ¦¾±£™™ª³¸­œšœ¥»fÁª¦´Oàͱ¡Ÿ²áÂ辶®Ò+-&/Ó+""27(#&+*>¿Ñ6,..λg?8δ®»´ÈŬ¶¶¨ªÁUDápÂÉAHʲä7Qågoº¹¸Õ@,2u53ILCõF;..@d9AÞ_;( -5,$TâX4.1BÀÍ뽩¹Û>900îF+N¶É;-02ZJ?F°¼//3DLíKÕ±§£­Æéº²¨¨©¯¯¿80;@++>D8J.$+26+3:9+6( ,'".®­¬ÄÜeFM­PÈÍv®Ä·_+"P±«¬½+ÈUɦ¹8¿¬¥ªºY,,+ªª©ª´º½­·^É覚³='$>´¹¶ÆÅ?¾.G0/EÄXò5 (/ém:A&LÍÖ§£¥™’™ªhog¡žŸ™¤˜œ›—›•‘“˜•¯8@³¨¨°¬¬ª¸¯Æ¯«ßeÌÊc+#%$")5.,?±©þ.)))6'00#+% (PÚÄ<)!4°§ÎLj´Á´íÚd¶¡™•§¬¸Èµ±¿³ÝòPTY));¸¸°°Æ9@y°¨´¶³¹G3,#%*B«¨X4,*CíÐJ`766-&-̹±³½6WU°›¤ÄZ˼Þ88-;3Ö®¯å0+3`º°À.3Õ¬°WDNª¡žž¤°¾­›˜œš®¨¦ª©¡¡§¡Ÿ“‘™ ¢¥¤¥¦Ÿž¯KÜßÝÀÚ½¬³µ¬¶=,*`µb+$)&%$.25Ý0' )6PB3<@2,LÕ\+:ØÁÃ25GR+01B9)# "*,$&*Þ¾;$,=^Ç9äÁ5-Q­®®Ìµ©°Õ½´A9+_ºÞ+(/*5.Ó·Å_V¹°³ÀßûÁ³¶f/6I÷·^?:â@>CáB*--=>2,@iH@Iæ»°´·¶¿Ä±·ÉPGæ²dǿȴò4K³L9JL?YPHbK&.Ʊ§ªÃÚ=ת¡¢¬¯§™œ¤´¾²¡—Ž–Ÿ­£©¡Ÿž¢¬¨®ÎJ7T«¢Ÿ¥¶C,/2ñÏBJJ0,%Ì·Í9"",-7D83DE50-ö¸«o'-GË9&:EC,7µ¹ä*(29P74;Id.#1¨—ž¶Ú+.<Ò¤­LKÛF,#!8± š›»1&:µ©¦¦¡¯³¿ÑÀD6Ëœ–›ªD"$/¹¬ºÎO3-$)5ü©œ›£½2,EÓº¯¨ºµÅ>1<>ä› µP0(1CJlÅR:=)%,.<Ǭ¸»?/?Bɵ¬¬®®¹»¼¯™’•–”š¡¢­­¡££Ÿ¤µþ66J²ªž¦¾ûO10)&;92.$E¸«¸5)#$04-5ZëÎ8!(l§¤¨ÔC0+-OØFV>VL- /Z§¤ªµX.)0SM=K15$%.++åÅ¿¬\:EF+GGüa9( (#1nι²Ì¯®½UKø±°ÄÃI6;=>Ú®«¥¯ÈÎN:=8?À¼a.*3=϶«©¶ÀÝÍJO̽½¼M1*(r®¨ªª®¡¦°´¾t_¶®«º?!,Mƿ¸§š§ÁJ:O¢¤¯¯ß6½ŸŸ›š›™˜™ž›¡·È­ Ÿ¯ÏDKǾ¸¬«¼ª¶Ëà>+!"&(12-DJ^Ü\5*D-('$"))#:íJ9-C­£¯ÖCCÐ,+-)'/NÔ®Z2N㱟¡Î\:1JF$"(H6=.1(%T¨®Ç¾6;ŸT,¤7.ŒJ€¬,4š)+Ù–ÁÇŠù£1 ж @$D5J·Œ›’‰Ž¢£ µ1" !.ÚªžÜÑŸ’• œ™“’Œ†—ŽŽ‹šš•š¨¿/.,0&/=(!/LA9¸¸¸®¯ÓÏž›“Ž‘–“‘›™ÍdÃPÊ-   /4VÖÆ¬š’’šš¡°@Ã^,[®¹P,/D/ÚÌ,1*'*E%&+25 2=I(')"(! 'O®«ÏYà­œš˜™Ÿ—œ™™«¬­¢œ•—šš¨œ—–˜·Ê¶4# ;Ò±¹«°¸¨¬¼È¬«£ª®¯´§¥š˜Ž•—𢡔™“–•šœ›¡»3 .44)1ꪡœ–𙕕‘”“” ³K2,"7+$+&%(#'/U½#1JAQ12,Q¿­©¨­Ë¬ï»œŸ¾ª·»Ä>!&XQ4+>,);3.)%) )"81C¿»äOA*4ɸ®Ÿ¬>A+b:9´§£—˜›¬¢¨•‘’¦´«¯ª®¦ªÁ¥³ê.(!,.* ',F¨µ¦»š¡˜ŽŒ‰‘š¤Ÿš••š‘”—–«<Íǹ¦¦›×$+)(;ËB©¦°®¦8!,)D$ )WN*/)`™™—Ÿ©Ÿ²¨›Ÿ˜’”’”œ®Ë47Ѿ2  ''UÀ©:P$0G9<4ƱŸ®É½H#:c²Ê# $%"8î´—™—¤Y¢¬––𛦳àDÌD%S-[½>,1/3/'!$*ÊÔ¡™’™–•š“Ž——³­Á:¼ÍI/N[ó.* ! B¿I,(oj¾¹Ÿ•ž—ŒŽ£«•” YY@eÀR)!07öO(!JѾ(<çØ.©MÍ¢ ›ž·,×f• ­!#K=#=!'-)&Ò¯Ä/(%DÁ­Ÿ­Ù³«´¯¾Ã5Ë%Ú¶#)GóG­§Ö<­­›—›œ «°ŸœŸŸ¦§¨ËTÙ.1 !"(Añ.>ȶ£¨«ºÕžž—œ¹>ȪªžŸ£ÀK¤ž¹Í10>²Á0 -¬¦§åÀ¿£” ´­›™—œ·=Ì©™™¡žË½©™Ý­»G-Éæ<'#)5©µaD9¼ž¡£¾?W¼¦¸L'2/°¬D+NM­Ÿ°C/?(«ä/Ý2<0/:¹Ÿ0BÃ9ª»´>39¿³J@-Ö®­¨Ç<%26Ã)" )+,5Éð10+$"%/=Ó2*#>¬žœŸ«¬Â\/ÚÙ?Rö½N1$&<±¤¬ÄA#&)!!,38IPÙZ)H¸¤“”™o®­©Éª§™ÀÓ:ë­¬›°Ë8#á!0Ȭ¿>¢’“Ÿ¾W¨¢:5¬»¹¡”›º´µ8­•’œ¡«Q?°(O©¦P÷8?6º28›¥ÕL#rÏ;$´ £¸=¦žŒŽ–›¨ÅJ¤#Ä =¤)660; Í¥¥´Û°8(;MF´´I/-V*DU*,'& ,.@##.."A¼¹´,0©£ž–¢ÐŸ‘™A뮿­—¬PgҹКžP³®Ìfµ{<-`801&<.V®³¬?uƶœ§ºÄQµªÊžº:š‘š¬¯ý»Ÿ º»Ÿ¬ª£«2U¥¢¥ž©Q=1Ä·¬›¦ž–¤©¥¤¨— ˜ŸÊÅ~±­§¥³736% *Ä*,<´¨Íª¡¶+C&ƹ¬Ì»6'/ðH?Ƴι3/M1.LüOê¯G#!%>]M½°UNͯž¢ž¥ž«./! "!#]N<9îü##"0/P*SÞ)+k¶¶=/7D# 5;,'Vù9·¬«¥£«ãEŹ%!% RËd;^`mᬶ¹ È4qE+0+8Ÿ¤14_¨§¢žœ»»¹º½SK".ËÃ=ÔU):¬¦µ?1,K¹Õ',5Ç­ô䨾¤Ÿ£¯¥«¬›¥½0-[²°¦®§ž¨¹¥”‘œ¸¨Ÿ«)%;¸ ¤£ËÍ›¤¯¥¹¿º¯O4NÚ=.+*Æœ±ÃÅ¡«½±Â¼B3$v«ÔsÍ;Lè>'*,'<  3 -+Þ£Ä5ÎÏ÷ìÐE64(8Äðz´5@© E-?HB)+ &3&8ÛG_«´®¿žŸÓ=9zð¹A+$:ç:·¯«ªŸœ¶¯ ¼CSÄÉ¢Ï%¿·Ç®¦¥ž¯HÇOÙÙL®Ê+9Z-$$%ó¾µV;þ«²Ô§£Ü½ªµ>7/'14x´¹¾?@¢·T¼§°¡¸220:2ɼW²£Ÿ¶Í³« ²±³°è++p//ɸ­¯ºI6<¿½ÏT4-') C^¶Ÿ§Ç< œ©˜®:'549¿ž•£¬MJæË±£™¹6Û:((#1«¯š®(_Ä©ž éº¬:*0MF³ ž­Ÿ™¯§Ÿ››¢Ÿ«K³Û&£§¯Z¶¥§JÃ8)   +>K>#DN¸c>92.:¼¬¼."=p­¦ž«¶¿»ÇÂË>µ©š™¨7#N«¥½µj7%:<.ÇÀ¤ šž°.&hŸžÁ&05.Y-*ùž ×*-¾ªÎ\"NÉÎ">üµÃYH@&:cµ˜™—À\¿¤œ˜œ›œ—¦¢·ª”‹‹•™£›–•¡Ÿ¦¬ ¬§ÍM2µ™œ¬å.#3C@'&C9%(/È šš ¤³¡—œ©Ö-&*"  "3%(LÊŽÏlSº´­¾YW6(+=,:WðʵÊ<;Ø­ª°¹ÇÌÚÇ?4;5B¸¬¨««ÂÁ®¯©­±Ö½¿¯¸08+<ÓݿɻVHlèVD'>y5P0*" $=Ð:q\Ý_103B'5-9<&)5ÏÌÔÆ´±ZÊHÁ¬¶½®®¹¼AjÔ¾ª››¤¦¯§©ª›•š˜œ›¥¿¹«¢•“šš­^¶·Ãª¤¬¾Û4=+!Cå³\Æ_3½Ð@>0-H=./{Ø[-&1,4:=)D_wÜC*(DÀöS8V&¬+¼£œŠ”Κš»«@³‘*©•ž¢ –®§šš·® Ì( ,H, !1Í8(:®˜¢™Œ’‘’š¾³Ä£Ÿ¿¸¥ÃÚ̶ÚÒ!6Ò+$5:7iÛ¿NÍÉ®£¬©«¥´FÀ²W¹¬©­N-'$   "+)%&úÖî­ª›˜“ŽŽ“”••ž¤ŸªâH½²¾Ð§¯£œš——˜Ÿ œ¦¸fé1%%!!(?Lö2><¸­Â¶«”މ’šŽŒ‘‘—Ÿ¦HÐ'"(.7& '+Vc´/1á`©¡ž©ª·³Þ>:Ï© §¤©®·œ–ž™œ¢¬ìÕa¨˜§«ßÉY=. +?.A5G¿°Ÿž¢­£ž¡™ž®®¨šŸ«ñO¿Ç0F,'<M\";8/,$&51»š¡š ¤¡š’–™¤š–È·¨ž›•““ž¦ž¤ÈL> "*8-D:vÄ §»¬¯Þ¸G%'\µ™–œðº§¹©°¬MOÔG+!%/d»›“›¯GIOɬ¹E   %!4/"#n¶Ð¡Ç±¢Ê¯³®«a¯ š”˜–®¾®¯¥žÅäªÙ><:Ç-Y»¡£™œ©Å±«¡¿Û89  -(*ÄI¯ª« ¼šª˜“”ŽŽ˜šœ£©µ¯S.  &)%.;MH½©¬›¢]¯¶žª²«©œ•Ž›¥«¡¸¨·6+>5'%%*¾ Ã¬AШ§˜žŸ¦©¥Â­V9X$JÑ;,Nºõ¯·H+<ªß¥Ì*H, #*!%UÇ@~Þ-§®œžŸ¥G§­Kß=¦·¤ª¾±Ûê·›§¡Ñ¾¸+!%'" ØÆD+9ü;̨Ÿ¬¬7ÍØ4ºF´Ÿ ››ž¨©Ÿ•‘Ÿœ–³`Î),2C)9Úl<$>==:%(X&'(M/'¯œŸ0² ¤¤Ÿ¬¤1%œ›±ðW:»È+`¾gÖ(öÅÊÖ5­4`?&G¥¡â!S"$-A¯9 $ Fœ9Ü­©¬E+,A¬••™›¨M­–¡Ÿ—¢¥¹ž4&((E®¨).'1.,02*!,ßæ¯*-;19ÐáA¹ÿZ°¢­ —¤“‡‰ŒŽŽ™–™£¬¡›£È`ËJíùɹvÌ, 0-  0f3$÷È­£››š§­Åö«ž—••“‘š£Ÿ—‘‘––™¢¨ª¦ œŽ‘œ›œ¢™ŠˆŠŽ”™’”¤:4¾¥Ÿª½)'>r¿ÇQ-( $ &!!$;+#):1'!&V¿g0# ,lÓïéÑÒêMÈj?1;×<Ñ2"H¯½®¡¡ª–˜˜——”œ®«ž”‹Ž“Ž’˜š˜Ž’”•šžœ›š—–”š¢´onÃÄ7ZÁGpÊC$1ê̱»E8>N&&/ )+((-)+  >fÃA%8¶Â¸ÅnÈ¿­¿½¯Pc±Ä²©£«²­Ÿ“‘•Ÿ™–”žªÕ¶¤ž®»®¬©™—˜’’•Ž’¢²Ÿ¡¡©²Åºª£²®¦¤—™§ œ¤®×MHBD2()45**&#!!"6HÙ/*9¶Ã¹¹R4]ó1+-)+/m1GAc@9¯²­§¨¼´¨­»U6.-:M9."&"' +)+',/JWÛ-"(#!/6+./!.59KæÜ_Kõ½°¿õ¿§¦®©Í>¨¦¤¨¡œš“’—Ž—›—”—œœ œœ ª›–˜™”—˜›Ÿ¢£ ¤¹ÌXÛ>4,%9w=6( (-);8>*"$&$%>H>+,&'+%$)>-&")<>O,(&&* OÁ­«lÛALB3,$ý®ž¦¸MQßÚáÎ`êJG<*"-²Ÿ§©ÊMKľÑ9/ÿ77--j¢œ¦raέ¤§ªÈ®¦œ¢µe9 ”– ¥ž¨Ÿ¯J3-,.*%>³¯ß3!,."+$,[:A7#$!?Ë<5 03+=@M,*-.:12/2%%!/Ê¢š¡œ•“‹ŒŒŒ’™ÅcO×®›š›—¢¥§ ›ŸªÖ±Ä¶á1(&,/ĹËm×¼°¤³¬r7++.("%G»­¸µû¹FJJ164*')$+%(,MÚe¹»¼>9L@¿& "#!GC»­¹®¨«£˜˜žŸžœ–ž¨²QÖ» š›¦£¦§¨©ÉÈM;·Á];*/ÃÌÖ°­ñèÏ?±M7C;/'*%=*$Pº´Ã®ÂÈÅ(,5$#(&#1,+RKȶní«r4/)1.-.$/%+û3N°ÂGù¨£­²¢ŸŸš”˜“£­œ—Ÿž «§¥¥ž ÄFëÞ«ºÞ·¿3E¸¶¬Õ+"092M-(".Ú1+-%3Mμ¯_&-3MD. (.()-&&3:7nxa2+1ÑÊ+5$,.-3:!#();<ìúJ/j¸­§¦¿¨Ÿš•˜Ÿª³¦œ§œ«¼²­¢¦¢Ç×ǹ¢¥­ºì-BȾ«©î=I;Ägð)&-Q¯ÉÝ0*>Í´«¾uðLEL53'('.7,5&%е³¸x_NäSP@&($,+(+#&,PÈÅÉkHÍä ©­­ ˜‘—ž¨¥ž™š§«À°¬¬ªÎÊ@9<»©·²ÒGV_ëÇO.(-<Ý9%;ÙÈG:,3@>d4597.4:$.C=2,,7H5SZ|º¾¼,A5=ÈÏO1CYK8$+*WÚÇôÇ­»ªš•—““•–šŸ¢¢¬¨£¼©Ÿ ª¹®®£¸ºÐ±¢®Æ=m,;b?.9DIj601LD+0.G$1%7.'''h@/0+:/,)!#!3,#+-8+0Ô¾»È×ÞE>2.-#'*.-''.4-8Îb·¹¸¦©­¬§›œ¡ Ÿœ¤£®Ÿ š¨´º×µÍг¶·»»´¨¹ÙÄ{ØÑ?ØR?-,>-a@;ê+:äÆÉW/-Ã<9-)-)*(5<,;,/X47Ë24624Ü>3[1=BÖÝW1#ìMS3%!&,)PÅ9/0λ½Î\ǵþÌ>1 # 1*,a934×Ò¹YB¾bG(!#*4C@=O¸°ª®¬Ñë¸@;! !*$'.?V<º½­ª¨ª¦¨¶¿¸@Ãĸ¢©¨¦Ÿ›œ—Ÿ˜¦«ÅÁ>+)6½LÍü:ʬ¦¦¡°»®ÌÒ* )&''0-2:*U¤¬«ººÎV:*1 ,#7;®§ ™Ù!8W¢¡5&/-;JÁ½*=¨ž¥¶±¨M*$ 9=).A=­¶ž•­¬Ù¸¼*56é+µ¹;­ª›š¢œŸ ¡Ëá¿'$.;Ê~¾Ã¬ª¨°¯f%*+ܵŸä– ›‘š–œŸ¦œÛ·>5&$+!+¸³NW*04ç¶âo0B¬˜–™”—Œ‘–¯¯¾KÝTZ,ÂÍ›˜¦³ð5-% )*()G:¾µ»¸­Â»¢:"%[Õ¯ •˜¤¥ºÎ¨¼L<95KÈ/#!+7î©£¾M;¾­«Ñ*%! #(=«R¶;D(J¯©›«§±©«¶¼/G*7±¥¤ž¦ª›œ¦¬¼'&%+)-6¿¶Å«8Ö^¯³ÅÕ*?!(!C± š™“•–™§ÇX/_6L1+Ú=º@ÅÃ𬴪¿L-2Ù9k. &'.'<ΫÀÈC'$-^¬««èÚµ©¦³¸Û9µ©œ£¯U·¡¤£®n%$&;=*"+Ç­®½ý0*t¸¹Z$(%%%##)é ›£œœ–“™Ÿá8IÇÓR80´¯º¯ÖÒÀ¸ª»A*23?9+-,52',,QÂkB=*'&5¿­¸Êpµ¦£©£ÛdǦ ©½EÛ«¹¦½Ù+/8PÉ0((.JRмô,;@KGM%65/).0#+%F¯©ž§¢®¡››²Ä¶µ®Ãa>ÇqÌ·ÁãÞa[»ÇHJT@D=9J%(%$!$%$Ü/;.;=>øE·­«¯¶ÀrºËªºÎ¯¨¤¢³¿¬¬Ÿ¥ª»55#3.,#7;³Ì¸Ä_`XÌíF&&!!-.U¥œœ›¨ž šŸËL,2=à:Q³´¥¡ ¤¥°¬µs8'#(..7ë\Í}ư^I95LoÔ»®­–”™ž¢¤¥®L#-2JǺÒbø]­¦¦«ºä@O*/"*/8.53:jÖ³µº03JdGrA4ή¢ž§ª« Ÿ§§§¾n2M;Z94EMÚZßkéncËE7,1&0/*(HÛàV­¸®¶»ÝùŶ¶Ë¶«§¶ËÀ¥Ÿ ª´ÂÃH7æH>*+FLB+X91H^Ô7,#)=, 0?0,×»°º¯¹ªªÀ¥¤ª×Àª³µn°¬««² ©«NeºÜ=?CP1%*I?-//3<7NC;*=M,5\D_Ю¾»{Ëœ›£ÞÇÊQ¼­¢©¶Äµ§¯Æú·¬V9ÑA2#4G8,090(-jw:!*7K%6ÉM¸FȨÐ(§›¡­6Ê«4(í®P4d¢°S/p±¥À·¢±L#.Â8?gD5Ƚ֭µBÑ£µ¼½>D3--1ZY++×®·A>_Ò4gªL);<~Q¸»§¢¹œ–¯§™œÃ¦Ô¾Â¶3«¦©Ð»¨²£Ÿ™¬FEý. .K®´¥«3//(iµP/2'2!"ÍØC\ÍÃH»¤œž¬¬š˜®³¿HÃY¤œ¤«ž–”œ§©¾¹Y´³½æË¤¦Ÿ£¡¬Ÿ±·«¼n8Î[Ð·½É§µ©>+0-(),'+.Ý;46E/,/BÕ, *.##"(*10=A+F7-%?æ1>7M@3-C¾®­<®š” §«sɾ«½Ð|¾¨¤¯£™¡²¤Ÿ®Í<=PÔÅ:SNÂFƨ¬¾ª£»­¹²¯ËG6Æ¿­2,EþÍWDA[?@=.*"1)&;g/'Cm_@90,+ ("%,6¹ÍnÀÊ©¨¶LFÖ[6"?ÒÇÂι¬¢››¥§¨ž¦«>Ç·Ç󽱸´Íʬ©±EÊuw7AÖnEZYRË»­ ¦¾·žšœÃDZ½V9?#$%+3@=<ÙkF<8ºh$#.*6'! , &,($*3@?¸,*/4¾²c,Eº¾ºY·«³ý½±º¬³´¬§³¦¤¯¶ºž¤¤°¢¡°¨ÁĶ·,"I1>+>@î¹²°Æ¶µ­¦ªW¿¨£¬®¸È²×â¿GK13=½<,-'*,MÓ6.(67OF/,-&-?ÚF*6-Lö²Ê8ÃVÏÛ°¹`¿?º­¨¦Ãµ°©­¨«»Òµ¶¬¨£¦ª¢¥ §©µ)5,-&&7@QIÙʪ¸¨£Ÿ¦£Ÿ¼¸««ºØÊ?E»sظ³¬¼¶ÓA/+5!*) !..H<..(@-+ '[½Ä¼²¬©˜­Èç?HËÙ(3N;´¦œ¡¬¯¤š˜’¢¼»Á¸¯°7(&/IkM½¼Ì±¬±¯²*+F@àPU@Ý´£›¥›ž¤œ¯¬ªÎ9G73)*9u[2@¯Ç³³D*  #+6$#¿©±©a?LñÜj6-.,N®³È ¡¥™—šœ®9ÝÀó*,@Ľ§ž­¬©³§ª¶³ß=T0*2" SÖµ­µª›šš—œœµÉ»Ë75ê0=¯º­«ÃÄ¥ª§¼C\]%&/ -.:=-K1+&'+9.Û±¶©®Ÿœ§«¡­µ©°Åÿ9.?²ÈÇp¸žž¤—›¬³Ù5F?/*3156ÎÏ5+¾§¬¥¦Ä¿µTʦ­P89ÕŶ¥«¬¢›™œŸåu¯Â;:/40!*\@\7($.,/51%+;ÄE9«¢©¹ÉÅRÜËÞuØË²°¬Âí£œ§®«ª¨¬Ã¯´Í^,.589P¯Åºª§±ïML¿i]E:K9)P©ªÁÊýŸž¦£®¨¬£¦ºW1.*³½ž£ž,*ÊŒ¿2»% ‡*Н ¨#:ªž•i —-¹¯-¢Ô;®¹Ë®š’–“¢™¥>¯¸%#!%$ "Qé@3H¹œ˜—ŠŽ“Œ”‹‘—™‘“©¼E("   +>O¹¯³¢œ–•”•’Ž‘Œ”˜“›­}k°¼³·²<<$()(*2q¹ œ›––•“’Ž‘”˜ž˜¢ª¤¥žµ±›¦Ÿœž¤í\È$"(! 3(,1=󹮡›œ¤™––”“‘‘•™™®«¶²Ÿ°µ¨»ñ@7/0& !*@骶·©¥¤§›š­¨««®¦¦›™¢¢ž–”Ÿš¡¡±×D>J9  8Gİ®š¤£œ™”“‹—˜—š›°«¤£©®Ê6L.<Æ,!)(% ! '&:-0?YÊ¿³¬»²¿ ©§¤¦—”ž­™˜–ŒŸ“Ž‘˜  l¸Þ]:! ')0'u\NNAåȬrȾ¤ªÄo«Ù̦»¥™¡¡²ššžœ²ž©½­³ß½»;8¯T."!(, !,)%:'+®µ žÂžœ™™•œ–•žŸ·_·:?J+60& $'(\0O0Ä|»²¯­£·NF?'/($"%BF`Åϧ°§š›Ž“™”›’———¢šœŸ¯8P/4)*.) *$(4&n¾·¶·Ï¥£¬›š—›› ž¤®bqc:XA6Ê;=Q'8-Cì<Ö5L99-$×4).Ù'',&"(B6K /-(L)-%ä/87å¼>:´ª®¬´®¦”©¦§ž ¨™­«¹?BÀ\-á.0)M9Ò9õÑ×9&,¾°¨JL\¡˜£›£Ì«¡š­>¸ä]+8,3Ù¶c',U3¾±Ÿ–ŽŠ”’™–°0B!-,(96*5³îQ,'#FAÄYP׿W6$412»¦“œ™Š‹’ŽŸ£Ÿ¡% !H05.06%*7.7¿Ñº¥¼<ÝÇG½«±k9 ˜©œ¨“‘™ž¹³ž¸,/ )&qY)*ÕÔÕ,89ÓCK°/9,;ºòÉë½»®´Iº=?Ê¥›¤¤¨§«°¸±ê3) *5(Û7ÚI@²A:3(·@9O6MO/ïN5//-ÝN½¹¸Ÿ®µ·ÄÎT©¥¦¢®¬¥­­l©¼v+'/#.)úT4¿D9/./.JQ.6Û@7ññ?H%+AKP2²¥²¥²©Ô°³¦ ¤¨´¨¦ÁâÅ1/89)"8KGVEDV*#)0<7!S8.6ÝÕ1C,/Öô/]®³¤µ®¡¼Ô§¤§™µ°§µ¯¶£¬ÅJ6C?(U/IF)Ë=# .;:2,C,68ºNG4(HÒK>Õ©¨³¶Ÿ¥³¸£§¥¬»¬´ÍÏ«¢»ÂñA[K 4Ï26,2=' #4,./:4:/.©>64QçL,4ªÇ¯´²¦¬§©œ¤Ÿ­²§µ¿Í¡¯×Ìæ_M'QL1<).7 .1./*?*./Ì·->=VÇL/Á¦¯¨±£¢¢©¢¦¨«ªì½]»£¼Ëè|V7(*Z:,$(-)-&5?2K:4²½/>ÓÞÙ*-ª¤·»® œž¦š¡¥ª¿¸ÄH¬¬e;èÕI4(ί5(%./!(*(.. 0/è±jZøÈVJ*_§½b¯¥¢ž¨«œž¢Ÿ£©­ÌÇ·¯=9ÒG/+WµÇ)'7=f)6F%6&"-*a¿/=[F:'3­¦Èï±±£¯±ª©°ž¥´¨Ñ®¤®¾«ÆP9AË©Ø*.6E-,1=*,%,4Iß&>^5/ A¬¶PϦ¦¦ªÀ  º«©¢«³Êª§X¶¯rP>­²©,!;:i!%,(5!+.0é¶ó7;=)*5ΫÖ?¸¬ ±®²Ÿ­¨£¸K»±¬S¸k,7L½¬½*.ËÎA",)$+'%+/\±5Ñà659ÜÁ¨CÞ¨±¦Æ´©Ÿ³·Ÿ¡£ªÏº¤®ÎÁ0/?幺(%IJZ:!).,%+ DR?¢ .%ª—ù7¤)Æ¢³­'S+À– Ž °º³•Ê(¦®)ž"¸¡a®WÓDZº/²3Ù±·Æ>ª =":**()>'&$-X7è.³¡±¯®¤•œ——–ŽŒŽ‹Ž’Œœ©´--  /& $/.5<+)")2@mZp¹¥­Ç°²¦¤ž”ŽŽŽ‹Œ‘˜“‘––Ÿ©ÊéÔK=+*@2á*(+<8G4&*&#'$1<$!,7TÙ3/çÏ­§¡¦ž˜”•££œ›—œ žŸª¥¡¨£¨ž¡¢œ£³¤¥¬ªž•–œ›™šš¡™œ›ž©ÊÜÔ0@?($-C60"#)#$3/:úÁF=6*)#()5/85Û("*!-1" 586+"'.n7' *%$/,#/(+@705×nµ¬ §¯¢š–™˜™™‘މŒŽ’”•™š”“‘™œ˜‘‘–•”Œ‹Ž”•¥žŸ¦©§£­¡¦¨ÔKE,"    &$)/.+:Àö½®¢®©£±©«°Êǵ»¬¥ž©©Ÿšš’—“‹‰‰Ž’’‘’•𠤡µÄĽ¾ä³¬¯È¹~KïhHIÉIEù¾KpJ>*,##!)' /+"')<>jÆËǵµHbf.,5--NºÓJX¿··ª¤½¥š™™‘˜—œ žœš¥¢¥›™›¯À©±H>\.2;;\ȯ·>9BJ3?>'EÍYøÌ¾`l?.$% )*(A-;l]U*3.,52!1®Á,=JÉÅÃɺžžž’Œ‘‘Ž”™”–””–Ž—œ—‘—¥¥¤¬¨¨¯ž˜š««°®¥¨›«¶¥¯ž›§­Ø¹¥©Å68I? ()! 4+$/#",*&1%(!!T1,!3/% ($)$$273Ê­©¯¡ªRCª¨1ò°¤©ª§ã¡®A&B£Å4)æ@·À1JµÇ((>­­»±¬£¡¬Ê©¦¾µ§œ¹´»¶¨Èµ73(&%)À=ÇÖNJ̵7*+@:.\¿gK¬½½¾Ø:$#*,MÁø,6;;*,,/"À­´\©¦»·?æ3©ÞN°±Ð7­¨°FÕ®²3!/Ǭ^%ß·ÍDSÁ²­Ä¾Ñ¬›œ¨¯ ­¡Ày§¨À7?±¼Þ('5Ub9þ`$[C*27??%*,Q3×ÏËG½F6ÖØ¨½û>6]ɽ%N¶¬­»ª½¢¤Ÿ¤±¦±ñÄ­®´œ¤¾½íÇÃIKBâµ}++P4'G=1 4,:Ó´»³¼ÚOÇ­WWĽ¯È$CŸN3EN»,¿Á²Â$7®O'¦_PEž•£­E©;¢®=è®? "¶SN¡.Ê´G¦8°K$¼LäæCD©$-<.]&ά½ª¿©›.™–—š™”‘Ž—Œ—‹Œ£—”©6LK2   %:Í#=®Ô).¿È6>¯™›”І†ˆ‹‰ˆˆŠ‹”—–“Œ‰‹‹Ž“—¤ªø6.615G='!$ ,#"%,9&+4'"  '4A,,883?++64iɳ²§Ÿ«©£ž£š•™¥¡•™ž£¥œ˜¨©¯µÒ®øL«Ãµ.#.SH/6"%#&5.%'-7"&* ')"0**;.,É9-¹d;I®¼¹°£²0^Ã='L+)+>+5³±¦š¤Ÿ Ÿ™›•”•Œ““‘•™–•œ™ššž¤¥²ºµ­­Ã¿6ÀO+*-W)E1!B2G+\®¯º]ÆH_¾U14ï>U/.I>3V+-=0-"=Ó2;1ÌÌ,H͹A/={/# #8)gð39Ê¥z8£¢«©«£§²Ã©ŸªÊÍ««ïYϹÖD8Y«N./44.&#:+64,3?NØCµ´½·<Þ´½¼ÆÐű¹Åɳ°½Ñ¸¥ÓFÀ»é­©¾³®§¶¤ «¼±¦¿L?) =*-""$.><3-×Ô?CM»Ø·ª®³µ§§¬¬®¬¿ÄÂC¹£Î6YF:¸¿4,/ä.-'#)Nj+(9>.%P·¶µÌÊfFýνÇ}ê·³8À²ÑºMWdºÝ/4½°[HÞ½¹·«¬¬Û¹¨À<;è¬-(%?5<;½ë6×±°A¾©°·´  ®¡®¥ž¤¯™¦¯«µ¯±m.]ÂT:o<$('Z.'") ,'&-29+4'||3+4¦»@ê©´= R.)­¯Kî8(2µ¼ÇÂ3 Ô˜°-/ʲ8D»sZ<È´œ§Ê?ªP“—•‘—‘ ¡²^/%"! K,"0&£“˜“?"(¯“ž±«”¨žž•™¬©^·$4Eï=­(,ÂU&λ=ÞÍM+Ê”—«®§ŸÒP'.+"W²¨²­š¡šœª »ÆÑÇÙ6(5!*"1­æH4,ð3'*&ÂNò0 .º³¼¼šœŸ§¾»¨ËʲÚF-IBÓ¬È6! &./0¹L(>¿<3"߬« ­´·£­N¢ö:ɤÆ)¶«žžžÆ¬§°¬·¼ë<< $5½¨Ï'>-&w1IÁÎ7(|¬²\vɸ®¾°§¼¹âDVtG®¢ŸÁ¯£Ài½µËݾ,&IRÊ­¶0!5.(/0L|·?GäJÈWËÈÜË·¦µ¬à­®BSY=¬¡çP°¾È˱HÑæ$V1#%´ò. #D&,¶!.´L"'Nž¹&)À¨±µ˜™¬nˬÍ@8Ê©U½ªºÃÇç´ª°V54"=7ÎÅ.70$A.$(6/:Ý\%3/Ä­8.àÞº© ›§¥·¦žUIŤµÁU²²ÌÆÅÁ¾°K²V*:F¥O5"16E092+¾-/-Ò±Ç2$9« °šžÇØ«·N´ªáÀY«§µ>ªŸÐ&¯ÚPÏw­--F@?*æ;*;%(?8%$+;=ÐXjª£™©¢­2½¬¼^»fKDËId:5ÛE®Û+ÈP¾·75,*!(8-M90:K@)-%5; PŸªÌž›œ¦®¢¡›¬²®ÑW¦œXNºÈ²Õƶ³¬±¥ªï9/7;*&D4>.=:gÏ3,%+,.8ĺ­ ™¡°·¨£«Ô¨©ÎWGØŸ¼.?»M'(@bÎ4¯°=.*"(%!J/#"?ä: &(/¼­@Λ²¼®ŸÀ®ŸªÂ/뛧.f_.==\°©°­È³E%!-8*)=7/4/Ó[.6*' +Χп¬œ ½®Ÿ§¥£Ÿ±¾®­ ¦oºLÕ;4CÁª¾Ù¼¾à7'7Q/0;é5''WÄ6)(+;´Ö³ª­¢³×«¥±¾ª¥ºÙI®›§Ï8FW<+Aª¬µO[¼B":8.20>i*"F¯B,.+4÷Ò´¨¯¼§ª®¾Üž›¨Wu¢¯¢«®k*^ô6L¸¼£¨;=]?",*0<>/6V?CM¼<@87E®§QÕ´°±G§—©¸Þ¡£Â©¬­l 8µÛ¼O³ K-&Ç_1!·4(6K,ð,·Á.`+À¯¾1©®¸¾Ô›š°`©ž« ­¤¸=$:ºá ¯©¢:]2C9/,J®·&-1-u/:/+(6IÁ#$O§Ÿ˜L'"7²ž´/,È‹B¼¸Ÿ¬ŸZŸ;¿x%­õãP*0Ö̺š9*/?!¹:@¬E+$½V$#©À£˜¸”˜²•’’Žˆ›ž•˜œ•´Ÿ™’ É—­§P¶9 %    Ì+)È¡ž¥¢œ¡©àHι¬Ÿ¡Ÿ™Œ—˜š™—– ¡©©§¯«¸¯Ÿ™®»Ÿ™›œ¦ ¢žØ$*>Þ"  )"+&(*,T,("$:??Û˧¡C#>J+)5»Ÿ£ÈBË¥ž›”‘’•Œ“•˜“›¥™–œ·¬˜™››£œ›¨³«©¼Á¸µ¶¬Ÿ­Æ²®Zð¶Ê²©¸3.=G<(&  -" ('1+!-$#.!#&, "'&$$#ÿ5Ô°°ÙQ±Íˬ­´¯§»ôQ°Ÿ §§  –š£š•œž”••‘‹ŒŽŒ‹‰ŒŠ‡†‹”Ž˜šŸ¥¿Ü·´¼­£©­©t8:DÛѼWO:w@#)#!(&   *!$4-">6+>¯YáÌ­É^\Þ°«§OÖ¦£»B«¶¼¹«¯®¥¸ÃδEÙ¨þ*-­Ë9;<¾ÄO04kA7/12JÀÿü¸×KY=0D»Ó.(/¼¿.).#ZßoÄs-°§¹Ì4˜D65šR£ ‹3£% Å&Ÿ1¡QÁ_Ù›6­¥Z}Rº«»®+5»Ã¶áJ9-½!-Æ,17EÔ8I;ß-+£¾®`Ò©¢œ¦ž—˜¤š›–˜––™•–¡À·"  +   1I²š›Ž‘ŒŒ“˜ª­¬™ŒŽ“–”›¡¢£­±¡ž˜—–¡­ ÃA2"-,-#(,*+    "'9/,'Aº¶¦§¦šž¶¥®\8ÎÚ¦š ›“‘‘ŽŒŠŒŽ’’œžž ­ª§›”™—œ¥¤ªÆX@hįح­´ªfÍ4#J-$(5+.C-)#  %$,42 $!+.)¿½ß»¨£ž °  ¬¡¦  ³¬¨ª°ª¥—ŽŽŒ•’—–—‘‘”—ŒŒ‹Œ‹“Ÿ—–š–’’•“”–›™§ªVJB4>9+,!%'-! +%&%&B¾Ñ»©©Æà½±«ÆNÉ­®À¶œ™šš™™¥œ—””œŽ–”’’’•ŽŽžŸœªªª›° £·®¢žŸª©¨²¨°ìÅ»½=3;64,,Õæ8($'!"&R[8:.ÊO1""1&6=" *9=ĺ®ÀZÛ¼]>Í¿Æ/@[©¨½­¯·»V¹®Q?~Ëŧ¯Ì¸E+IÃ:%I>N6/¼Ê»¸ØøÂ·<>++ɪ¥¨ ¯Ì¨¯¡š›˜œ¢£°@3+ëµiÇ¿±­¬¯­›¹LÖ^- " $+6.&Ä·¼»®¦°=%!Ò³IÓ¹òC¼¨œŸµ·¹¬í2Ȫ»#Z§Ë217Ö³ÍÛºâ:-*)&'589릡¤¡º¸¬­£ªËº£½>eÊÝ1AΟ¥âÀ©ž ¤™™®<âE-A-%E½8)9ɬ·Ú««½¿¼KÖ·Y35MD8<Ȭ¨§§°¬¼P¹®%;¶þ<ߺÁ4(6ìC#&y­+%,$&+!*)tS­¢±§¥¾®½(3¤§¬Íß·+$,²¥°9ͤ¢¢º½Û+,ÙU1.+S?Cµ¾Ú?^½ŸG(WLᬿG·ÜI!$6^®¸£ŸœŸ«Ø+K¶¬_ÆË´¯²¶¯š®ÂÊÇv,;#(>G-%!'$%@À°¥®=B¬¥½Y¼¸ÁÀÄ­­Ò!AÑHç­®Ÿ—“•ž®²¹¾¦³®´¾& 5%.-C7A,?À½¦¡©µ»é>ê:,"×·ÛÂ=)HNž—£ž£ª«¨ ¥¬fïM2I&$J§”˜’‘šŸšœ©ºCJÒ.-*$A·R+,=$#ÚÝÕØ;L­º-.(;Ǿª¬®¿º»²­ß73! @R<+%² ¯«¸£¦££¢T08ÎN)9ÕÕ³ØL¥ ª¯§¼>=HÐz.1lL38;7À¡›’›¬­©¶WË-*&5Ķ?*9δS3<+"4-$,Ïг­´··ª©¨©¼¾FÃ/!#$BÈÜ4>°¡®º¸«¯¼Ò½h/)1NܸÞ:>M»¼µÒL¼¶µKGÕYL2L­› Ë¿«§±ß8L×ËÌ­ª¦¯Í¯ª›¦´É­Â¿5&3<0&# "%*Ú~ËÛ¶µ²ÙE»ºäEóÅÊÙéT³àOGD2>D»Í^Ç®§·Ã®©³Å+)Rp/*D:MN:DʯÞUÄÆ¾¶Ç8;_ÔPVF3çL0增¤«¢¤¤ŸÊWäÔK><3+*+(8iVÍ·¼¼·±²©µÎ¾´¬­«ªÑÌàh@I8+KI/5*%% !#$'*-)./1>Ìê;M4=±¯¼MXZ×n4-/-(&99-*&&+Ì´Ôc89½­²ª³Èº°©ª¬¸NÊªšš­´þ~«­²À:4`¨®¶»Âº²«¥œŸª©­œ¥®ºÍ·¹¸Ãg86^RÙ¿7&'$+"+))(,0XÏ9þN+1˰VD*(L=!3Eã?PÍW1*(4Ì86"&9[6ï­› ­£³®»¥™¡¸4*½­M6D»ª¡¦œ¤µ¼ª½Ê³^¿ÒÀ¯Ö¶´ž˜™ž£¨º_?ê,/3!%#1Æ\ʲÃ+--Í2#0:<6´§¹º®ÏV̽L#3(<Æ «˜Ÿ¤¨¥ÚI/&Hȶ·°ß驜’“• ¨Ÿ™¤¹Ô0+2K1ʽۨŸ›˜‘š›š«Þ%"6ËĽÉ+_,½Œ²Ê£¡Š*›£™’SK%Dâ ™ =$¥¡™—–Ž“¯µµ++ÄK&,6'!#)<Ƕ' **S±²š’ŽŽ‹‡…ˆŒŠ—¢«$5   7^U5T?]ž‘“›š£Ñ·W(7á¾°Ÿ‘—Ÿ¬£Ÿ”˜§»¾*'0:".EÆ™˜  œ–›¡§¾®˜•’ŽŠ’“‘—ŽŠ‘𮬧4$@]&EÙ)"#4?ÓM& )%(8Û«­­¼±§±FB17L£œ£ž˜–—”Ž—ªÚ±ÕN#!' #7DÄaÀz=*×ÉJ:-:m®¯­¥™šŸ’™œ˜£§¶B:ØLÔŸ Ç­¦¤§Ÿ™¨5-'  15 ,-2QÛ`6˹´­°™”—‘‹‡Œ¡£š›³M>/ÑÞQG=?Ð8(3;³«61'.4?4';Å=?³¥Ÿšª«¨ªž¥©°½ªœ£«ª§’ž¡£™—¢ªÊO8/+# &/$&*"''&)8Ò§ª¢¡›•»³¢£®ÌĪ©›™›š’‘‘–’”“•ž¹`àG.! +%$(*A,-1' ::*¶/ö¥´¨Þž’šœœ œœ ì@R% )/36*ºÁ½´·Ðª¬2@.190 '&&%& #&'5.Ε—•‹‰‘‰†Œ‰Š‹˜š˜·¥³=l¾1-.!*"*+.(Ûc6¼žK»½¡Ÿ©¨¹Ä«žÐ;·É )!4$%4$&'-*(¶S+7;¶J¦¤å¤³Å_6ÆS3×'/6$)&%2():hÀ±¦µ²½©¬³˜“œ™˜˜““—‘•ž ¬¾Ä´>4EJ$%.#2$42'942+@¬`7¬¥®¤žµ­Ùh&8É´4+!&!$) )dK˹µ>>5¿¦È¯ÿª£ªæ§¥Å¬À°½±°ÉÅØº+ä=&ðEjÜRs´§²¨››§™¤®–ž¢Ÿ”œºÉ-¶Î¿^(31$**)'¸D5®­.+§¡£§¥­¢¨¬¨§¨=ÌM!# $*$>4:ìź°©ªÄ—š™˜šš˜——¡¿¦žµŸ®:58&Ö;.ÂÃÌ¯š°¨›©>±B7:ûº¾¹®É°´Â-_>¤ ¢Ÿ6Ï-(A5&8*¾6°¦ž’“™ž£§§®­3·§¯–¨²À©ºa¯"'<Ë>7T*A++_jÑ_»4)2),#;=÷.+:(¹Þ¤8A><ãÙKDÎ?wÂ!82, #'(3-@Àʼ¦Æ¯ÏÏ®¨¦žœ›¯¬¤¹ÐªHÀ¨¯¹°µª¡¢Ÿ©¤®@LÃMW4«Ë¾Ä»AÉ-%K'(%»/»];öç«£ž°°ZE9/#2&)$%6(1=.Ã,k2ÚÝY]Fk>¾##536+:Kß©¡°§»±¯º»¥¦ž›œ­¾§Ó8¥Ï¯±?¬Ê'¶î»§Íξ¼¾W²¼¼¨¯­¡Ü.Ö1-7,421¨ÃÌ­?]¬¿·ª¹É¯,0>(,,(É4%ED.C*>8,9&)4+(/?˪NF¨¼6LÐ/$OÒÇæ²®Øæi18I-?WÁ¾]H¸¬«žš”˜—š™ª¦©­µµfFÞL®ñ­ ¥¬®§_Òj=LD604*(,J4#:V¾··­»¦²ºyäÉ=L+-:4'3Û,ÿε}78Ö0:2-'# %K@ ÍL­ªR# ±ÏF®Í'ÇÛ¬ ·´?L°±:" >'6(]¸ª¥IÁLqÏß'&#E:1²<»—©¿±©·*/®¶/&:6C±¥¦ª«¯»¯£  2Üž¯³›˜›“—•¡©§£;(OË#?E/;>7Ê?:<7 !$1ÂV?» ³¿À×_$-7)"K¤¤<.F7(,#!/#%3§Ë""-а·­«œ¤¬¤ŸžŸ—IG·µš˜”Ÿ”•’’ž–—£¾¶¼Ê%#?.Éi¯°½œ˜¹±195.,!2;,NÚì·²¡® ¸í*' 6>U՘§¿rÜ-,"C)%3M¾Æ½ËÞ»ÂȺªZT0.ÊØ <œ¶»¡¡™›‘ž¥¤°¯=¼­÷ФªPÅÐ/(dgGDDÚÎM,®¡;/Ó¯8nËÉÅBÑÙj/:/'",µ3)ä'/F5/8bJ¿G»®?&)A6ɾFã½^ÇÀ×ÜZN66#1TE3©¬·µ·¶9·¬°°ºª´È±žŸ°­—¦© ³¢²¶¼,/-&1:,±¨¦©Ÿ°¼±]l;=6(H]EÓ90°«SD;!+ *)&+<5A´Ðº¬¹U<1)D;;?FV::K}ÈÍôÔ«µÄ|Dz¶¶À´¾è(D»Áº¨¬››™¤©¬¢©ºÍpÝLÃÞô[<=:»¬¼IJú:[DÀÏ5+gÓ?84OÊʸ£«Ô×,9B+) 'M¶¬©¹®ªNE3.%(LHßâ÷¹¬ªŸŸ©ªÐ×à1*")Gw㱯º»¯œ™šž™œ«¥ª·Ï2Cµ²±¬¾½«»»¨ëkÐRSì:-+7I¾®ÁůȼÆFйʽÊC<7*(4*&" /)'*5ÓA-*)8,?J@À«Bª§R¼¿»©£¬¬B6¹9.Úé[¤¦F ªô»¬¡ž ¡ K͟ž¨·²šº¿¡ÔLO伿Fl>*ÆÌ02=3pÇ<¬©HäÖMDBJ<'=µSN@,JÌ-)H,!(53&5.,@W3@GNéϰ°Ê´Á1_¤¨ž£ Ÿ­¾ÉBPÜ矱º½ZΩ©šž™¥¨Ÿ¤Ï¶²¼ª¹²³5'iQI¸¸£©°§T((l­±Á@-A+,ܺ¾À®Ý-&'L]5!!KV+Ù±V)-OÜǼ?°ÙÂ¥X¯žŸ¦žÊ=µZµÀ¶¡¢¸´¢±­«¨œ ™¦2JËÊ®œŸ£©—ŸLáËc8L÷[ ¹Ù=FÍ5*.²¡b³§J8>)#72&/<(*$×¶5RÐ%:5.0$')+>ÔXÊÅY¾I,U(%<¯Æ«›š·›¶µ›¬µÀ­IG¯Ÿ¦Ÿ•œU £¹­•›ªž¤­+"1'.6ªªc]¢²*?U9"HÉ=,0,)3EØ:<ȱ/%,%i=-+/'µ±,^ÕL‘­œ¦ŽŽ <”Ƭ­Ï›£¸”—5¬´³ Ÿ” /²+?ØŸšŠŒ‹—š‘–³£–¬ã´¾0+(!&¹kJ9­¬¡™š?Cž¥H¡Ÿ8èç²@$"&/¾)  +Ŭ«š˜› ž¤¯›’’’Ž‹Œ‹ˆ‹Š—•Œ•¿XºH$,") 0À 84"R½\]¯©¯¤±58óÅ´F~¼:HU72!+æB9È<&%,ÄÁê0$#&6=46¯¦i¬ ¨ª™’ž­•”ž˜—‹ˆŠˆ›˜œZ.Lòè8-/3(%ÔÆ:µŸÉ8³Ë*ÏJ<Í£Ÿ˜ª” ¡šŸ¢©œ­¢¶¸Ô8µÄž³¬¨¬fD«8ͽ;&&8/-V§¬¾¦Ÿ²° ª·¤­óN>C*10=+ 9'&"'>7¹6C®«·§¨¡ª²©›°¬“–¯ŸŸ»_ã¿;4P$%&)#K%(­¼ß¢ªâ¨Ÿ™²•‹—žŒ“«ž“˜»ÐªÔ"S¾6À=??%"5Õ#?M*3¨,+«¤<´Ÿ¯Ä¯•«¿©@09Ê Æ,.6 ; *.%:Â*<¥·.Äš¢©¤¢¼GœžÉ¶£ÒPª«8@žÙ»®X63Ï]>E«ÇIÝÂÛ´­ª›³ž²²‘¯Î œWЮè¿ñ2ß¶Ù/0Ñ2L$?I;Q1*2J2'0œã,($Ѽ®:,³©¾?ܷ髼g¤«=CI©³ÖÚ-5÷³*9ª<-dÄônX¿²–”Ó;œ¡£ž™+™–™(™£,¬¨b ³!´-/8°E§)$Ÿ¬î.ɬ0­?<¡ª!?¤ A§966¸ïFÒ)J²)¥´OÕŸž¾Ì¤¥·¬¯G+ÀÅC­1&8+*&9-!!$ 6ú-Ÿ®Î “—š’ŒŽ¡™‘Ž˜ŒŠ—‰ŠŽ‘‘œŽ–™Ž•»Ÿ™«×ß7A)5G#F;*lS%T¼' ØÈ-"# !%ϳ¶´­«šŸ«šž©²« £»¬¢¨££¬™œ®¡Ÿœš¨¡ ª˜˜–•š˜•œ˜–Ÿ¯ÇàÏ$3'+, 6ë-)}49ì>')##+  &%" E(AÉF¯¥·³ž¤ÁL´±=±©ÔK¨§·‘‹•Ž‹ŠˆŽ˜ŒˆŒ•ŠŒ‰‡‰Œ‘™”˜“ˆŒ—”“˜¥¡§=Ξ³/Ì-CÀ1-.$'@.;++' ½*  "&(8©¸)+¿ÅIKV*4j+Û·ÜÚ¦š™—š ¢›­Í«ž¶±¢­¸¡œ®²°ªºÒ¨§¼äÍÆ§¦¥›“›Ÿ¨«¡™Ÿ¿H\³åϺaÆÇ¬¬½³ê+,+( (0"** #-=;4J7C/3>9,+%*\\8Óª¨œ §®¿Éw8¾ÂOJÀ¦Ÿš• ™“˜›ª ©²M:D¶¬±¯ŸŸ Ÿ§Ÿ¤ŸŸ´§¢¹R¹¬®­ ¨¥• ß+-I-$%/!E=+,#*&#!2<-3¤ ¦¢Ÿ£“žŸ›™žª²«Éˤ§£—–ž¦’œª¦°³®®å EÇ,]¨¡¨œ¤ã·´gqOB-#T«·¹´ÇK¦œÀÁºYtG&'3&,äÆC+C%'¼¼½³¬´>¸¦³³¶>(&1Óé© ªžš£­²Ù®§Å=H´ž¤§¡ž–’˜™–Ÿ©Ÿ¥fKѰ¦›ª§£©¯°­¼­°@'..ù¾¾±Ÿ®¾µ¶?:ËË1(<4IÌEF¬¬ÂÖN0.D/**/ÞÌ7HF<®»Y¾Å<37g·°­ž—§®«ÂR¹h4%!!:RLd³¸Cg<)8=!+(2=-;½Æq­¤ÊѶS#$:²Ýñ§«´»V½¯Ñ/0*,丸¬§­®¨¯»¹¿_.)K¾Ã®¹^µ  ¨©¯­­B.  !&>ÎÃhKh;,)C1(-.5I¿¨°¯µÂÏ«¸901fcµµ½ª¡œš•œ«™™­]/++]¯½Ðªž¡¥Ÿ¨²  sV9.$.NO7¿¤¥­ŸÈ±œ«MJ_ÚN¼½BË¢Ÿ®¢—¡©—ºÇc4&]©¾R¬¢¬¯¨ÍŸ¡T++K*)fM5Ä¡®H½­//H* .(»6 !3»?.®¥Ñe®S%OA .,*º£Ã?¯©<±¬9 ,?$%ÆX#0££³ž“ ž“œ²Ë°²ü¯µLn§¨^Æ£T0ê3++$Yµ?-ÎÀ;þ0&>,,3'&L®ÈÊŸš±¬°Aº¨°®ž¨›˜Ž—›”›³¹¥¬º ›œ ›œ»·¢±Ë­²)96&*% ?º}D¯«Èªž®Ü¶¬Ì¸²±¯­ Ÿ§Ÿ ««­0 +&1@MI׿ÙLå»óSÑÜ).,&,+EÌÊcC>ǺQ !<*$+"!&.+.%52/2%$A9<=:M·¾Ç¹=6àþEìn5=ßußMNIG°³Ô/1*1W?:5Iê[ÝÁº¾¯Ê"+..ÿ©·Ë¬¢¢ Ÿ®k´¡¼7+/$+9& 9$!7D67Ã0$+T¿''Aã8m¬Âʦ¤+"Na;´ªåf£ž³¡˜Ÿ²ž“¨©¬N¤”Ÿ¹¥—¢©›œŸ›¥g°¬Éº¬¶WNåMI¬¢à0ÄF/"-°ªXU¡ŸÅ³¢ºµš™øRµE9´ªÂY75-Ö¥¾Gµ¦<*G?(jÀ3*>°P9оPÁªK.+!:¿ÂA-+,7Èp'<¼8 ")Ã=(!$( )fE4vG*9L08ÌíìN4GƺÊSU¸X&'!ÚÍÝ{21-,/6-07+("".CEeO**IµÀº´§µq¬°¹ËÁ°¬¥¬½¸¯··°¿Í@/*{[=Ï9!6½oq¸­º.CÐ4Eν« ©áZ¶«°©¨ © žÚ®Ÿ¦© žªÁ£¬Ÿ—•§¸¥Æ½¥œžš®Ï®ª¸¹ÄÒ?Cº3&I?-;V+8'&-A/&?8<È´¶§ªØC¸²µ©¬óPAF(M¹Á¿§³26²¯à\y/.;Ñ+,68G±«\))=O@·ì?GM**WN>?K(2>G5a:'%% /,0-H5+,+i3:87½À`7O°ÅW1**.ËD10+[4>GA½·­´¬°¶ô¬§Ô¾Æ­Ç¹§B;®¨¬·ëH!/Ü(3?Î/#0-6]R$'N<(c©N3CO<=©¯.È §¸³¤È_š«Í§›¡Å¢žª™Ÿ«žš²Lœ§Ö£˜¤Á¢™µ¥• HL¯².áF(,¹¼+6¹C,À±8gÓ0Z»#Å­15«ß@£že+³¦-@Ó+1¸¬1B¦©Q¬§ÃKv¹Iç¬$8©m/äÃ(Ù©}2_À.8;!1È&%m¿,+ÁJ./&*+8 $µV)å5!T.#@¿Î@š˜K:º2R¡¼¤®Ô­Ó¿¾C74ÇWÜ»1A¦°7 .-,vÍIɯº/Ж°)ÞÝñÀ¼#"Ý©°·ÌÛ­®­Ú¿Ã.bSBöO@Õ¢—𛡬ޖª¯Ÿ¥A2'Gž¶uH«­­§ ¬¨Ÿ­¡¤¸>]<¿¨¯mEb§±?,#" '!f9!ñ¸Å'"L-,"3]WA6ÉQ¾³¬¢£È%*1,BO+*) BlÁ)B8(&8ΰ–”œžœ  ¤¤Ÿž­®¯Á­«™ž¦°S>s°²È=°§Ì1<\N­ž¯­œš£ª›¨;@Y+)97:»œÒÀPD57Ú% !'2°ÌTÑDyT¼¶HMP- ê·;Õ®ª´›Ÿ.0?'',ÜÂ9¹¸ßDÉ¿6%4/1½  ¤§Ÿ¬­­ªìVæ/*O0%NÛ´½2$$,/,"%+++>gØZÌ«ÆO´í.&"G©°´¾­Çub)5C* 9kÛÚ­ÅZ3]¬¶¨ªTTÈŸ¥>§œ¦²«›®›¬TÁÂ<#ˬ)C£¤¯ ¥·G¤µ<°ÄGÞ±½%m ¥«¯·²z±¯Ñ±/ "@µ+-9)#.>%9Ä)D5O1#¬¡Ò]°Û*,·)1F:¼D$6¾®ïWNS2Ä/%N6 3Ì)"R¶×­ž¦Çœ˜­¢¤jR¯£ÀÙ›«°·²¸®©è§¼'-¬¦ÒW°ž©¾Î½¥¯¾åV[º®­æKª©¹«ªæOrUQN-1.,MG-%$]b>.+#"/-8¾;2ëÆÜÍ?7+U²;!"G\; $²Ë5F8Ü´HC1L)7G˭Ϋ›œ¨¦›Ÿ–ž¸u¾¬¹ØÂP­¡¯Á¯«¶AµµÄÂ<4§«AG²ª¨ÀH¯¦©¶3;ô¶½Y¬¥ßùâiVº®:)Â5,..°¾5,DÍÑÜ)$A2())ØÅ8,L·ÆëGENÙ$!=>)º§¿ÉÀØ·Ÿªâ:±ó0TÅd½Ÿ°B»¦¶J¸­¦ ­?-ÁÃ5(x¤¤Í/2C>/&#-YC62031iº@=®´F%, &Å5 9»´ç)"EÁâ1NÕz/'531'P¦Í/6>Á®¹Oà§_G¬[Ù¢Ÿ ¤¦¦¨ª¥¥ £Ù,K¢¹>ãϦž6%¾ ž¦¹È°¼81AÊÅVئ¬³µc½¦©»´M-¿¹$*9Ô9:É2#5Ã1'/8¾CI­0(?¹¨»/060/6*.\»9#,>9G?-P©0 :y<3*,±¤9$×¥ ­¼º¸Ÿ¡Ä®¤³·«´Éª¤¬¥¤©¿;åøæN¹ª´Õ+-ªŸ³È°·Z®Ð8¸®PG¾±L1Ó±£½("fÕT4$Ht '2GÀ&D¢9#ÏQ`<,¹¸:6+-JõM°ËVCÇô9<¶ÀͽK3*+Á¤½?-.½§¬Yô;&ÿ\.=Óñ6*ÆíA*-[]Ë͹ÅÅ·j7>¬©ž¯¨©¦­Àœš ž«ž±¼®Ô«µÇ!*<á)(.2¼°©«·£œ§µ¬­Ò4:ÀºÀ͹¦ž«LÍ®¶³K=l¿OϤ §¹¨§©·±ÉÜ`Ì7%! #*,'_>"0MÎ5!+WHÌÀÓ´§®µ´ÀÌ¿^i¼Úc=%(A:. &' ,5@¸¡Ÿ¥ž§©³ÄE*".!8NJ_Û5W¶¸19ÇÖ]7?J.K»Ã¯¤ª¿¬ ª®¼W¸«²ª³ÖÞTÞQ_¸ÌE=º®Äª««•”—ŠŒŒŽ“—𠽩©´ãL¿µ¡œžŸ¤¡®®«µ^?Õ·®º¶À³¨ª»¿¸í9%/)#,7F寞¥¢šœšž«Å=?/&-+-0.KÀ±®±©§°³O/3#&*)-w÷RͰ¢¢§­§¼ß<+"$**&(,(,#.>Í³°¹±C+<.'*,*DUØÊ±  ¦²µZ5' %%=hXÄV;/*-,(7),cJ9¾®­¦«¹R@3)! *0.:EϪ¯­¡¥±Á´]F@,&2X½²«¨ª§¦µ«¯ìO.'(43;[½«¢›—–—™­°§£µ¦§ª¤™—œ™™¤¬¸A-09/?;[ͽ¸¬Ÿ¦£ª·¼A)*'&-/=½«­°«©›¢ª¹Y_R<\HCÀºº³§«®°³Ì;)-:665(+NCÀ½¿¬¬µ½¹]=G695ME:7<>/4P:.0$ "!"/)+I;>v`2-D5ZQ7nS¼­Âu¿¸«»Vè|U7=ÄÊ?içR¶ÛM<+-5=u¹_*CÍYlN+'*82()>=..,(0G1,%!#1D)'&%>J5-#.6ÇI%3?7A7-L[¾°`lK:?º­J@.!7:,.-6ðG29>>ÿ<&%+')&)#,.>*&)0Y/+0'/J<.4òÍ?3á¾¶¨¬ÍÁ²^è±½¶·Â¿¶·®¹¹¢¤®¸·Ç°©Í»¤«Ÿž³Â³°°ª¥¤§µ´«´££­ªŸž¬¯«¥¡ª½²¼²«³··ÎÁ·¼±¨´¸»Ð³Ò°1?­ž.É-%·¢ *¸MV¬•‘•™•™¬èµ/# $.=& E¥³¬£¯¥¥´•³N*9Æ  FÀ±¥›••‹ŠŽŒŒ””‘‘“—›œ£¨­³@!*"*&7;;6§¥© š“–™–™—–š–˜š”–¢Ÿœ¯Ï³­¬­¬µ¶£³®§ÄîAË>58G3.0 $"!+'%/  #-5߸¢™›—–ŒŽŒ‘‘“™ œœ¢¨¤³³¨Íd¾¾F¾n75*@'(H&1F=Q>åkëÏôÈDÜ¢Ÿ®£³¬žš˜¢Ÿ˜™ž™šœ• •‘—š’™›œž¬¤«Á@/>7:$'( "".#:B.,A^\Üf=W°¾WÀο«®£Ç»¥«®£­ ³­Ÿ¦¤ ¡£›ªž¦®¦¯²>,?6$ ;+H>Z¬Ê¬»Ä¨¦œŸ¥¥§¡£­­Í\µØ1A2+0.8#'684>>'ÀÊ\˯;!"4  95V¸ÉŸ›’˜“Ž‘•Ÿš§®±{0!$!#(+AÁ´º¸¢š­š œœ•’™š™–™”™¤©¢®ª¬ÇF¸?ÉTÕQͦԻ¿­™§œ§²žž¥ÂÁ¬¿¼³L\0&/6&"&'(! 1È[èÊ램¦ž¥žª–’Ÿ¤œš¢›¨ŸÉ2º½=*&"(!0!$71%36UíFºªMԨʱ´ß3:Zw7"(##'$875_ERùÌ«²}Ÿ=»§ª¶@=?¯CÆ+%=//&%  (":Z5*à¶Ö´¨©Ÿ¢š¦™ ”–ž¥›œœ›°¬ÀH««.&./O&-)%(NP3P[Ì[¬¹¶ªÆ¿¢š»Ö®™º«¹²»Ã¹04IÁU$OE( >2-'&;0ô<.GôÓÊ/>ðÑȲc<Ü1JL&69'3F*.+-)?8+"(&'[)0(6äÀ)Ϥ\­Ê¯¿*½»ºÄ8È:IÀ>18@7=(=!&('!$)  '- $-')I(]G>]ܳÜΫ§ž²§œ¥¯¢¡µ³£³­°«ÃzÛ¿Æ-3?J>39.S=Xo>é¼ò©¦­©¤——›žªŸž¢¤œžª¤¿ª«.6@.V<)À% I@A1³7حþÜI´¨›¤¸¨‘©¢¨¥«Ÿœ™ªÅeZ¸®Oº0Ïí;80B0]&$ D1/>g´ÏvåɤYA».¿ë+ $))<±CÀëØÏÐ1 '¸~¶®´š•‘ŒŽ™‘‘•—¢£œ®EQ"Ó]6±¹¥£¨§¤¢›µÜ¶ÒOÌ›±¦’–œœ§Ä$( (²šÃ¬¹þ¨)#.-$'-;_&Cº4 )bªœÆ:·¬{+8>0+-²6(;›±Cµ­38DÖÃÛ?{»Û¥Œ™­¯ª™«¿<µž¸¢¡ª ±•‘œ£¬¤¿ÐÑɸÄ*3­#!N¨²ã;ÈÅß/#=(@Bê<5Ȧ¢ÎkJÂ2*Êê<Ò·Ê<.ܳ¬;2 0-!$$9 $0Õ¤­´¡¨Ë(*¡­_I*³«œš—¨åªžöÙCö,#0 œšš“˜¥®»ž§mC5À,B¬¢¡––•ž®í½¶Î*S0!3®–˜¿¶œñ<Ü$@¼Å¯°=ÍZ9:%Å´°D,º`1<3(8,4ž¤¥¿ì*+-¯¨N¾¨­öw¼˜‘𤭢F&_½ü¸›ªÖU¶®¡œœ»<˼¤œ•œ¦¢Ës¥››žÍ+'/ )§³zJ; 1ÂàSoò").ðW64'2E6¾Ï?/ /D®Á"#0kR'1M2!A¬´?_.-0±À;ÔÒi)+64´˜“®µ§œ”¯«¡©¨´.*¿›¬c¢œ¯­¨¥©¦­^A¾¬Ÿš§¼œ¦¨^FüÚ0/%)?¸Ó+Ϲé\r+ %(!* '';-î×C*(#:=ÜÝ1" -,8"*D:ÌU;\---7E.+,+'=¹µ¾N#!$KÑN?,KQ¾IR±§£ÄJ:È®¦«°ž¤ž­®¡š• ²ª»It˲¡ ÍMÉ §¦Ÿ žœ¨L8´Ÿ°ºÇ·£©»­¢ ¢¦¬Û½>!'HÕ7/ *6+5mÙJ61++, öª¬>*(!&)3ÊI+<Æ£­N$6L[Þ[X.&»œÈÜ\RN°š˜¹GCϬ˜‹ŽžÈ)1±§£žœ°1"&º“œ¢¸+.<ö£˜›±â0%%L¨—•ª,&1¾ØÚÀC-¶¡¡È.""ożW$.¹±Z/'2Ð41#4__lÀÇ)"ù¶­¬)0 —±£˜¶¼+Ÿ¬ J¯<©¤Ž·'ŸÄ/š ¶­Âޘ͙™>$%±œ››ÔZr!6a¬™••(#É«ž—ª_!%Ã”Žœ¥¯*[ž‰Šž²Í*R²•–É 4!¼°®3 '/$   %#)t³¦©»5@¡•—›¢Ÿ”‹‰—œž›—š—‘Ÿ»FDǽ­±ÄÆÐ'%+-Û<=1%#(_´ÃÐPY/'ݲº[%%@9˸¥¡½-5¯ £¯²ÎN¿©•œ¤Æ¸¦—šž­§š’Œ“§ÀR«—ŽŒŽ•›£˜Š‰›ª§¤—œ¬78É —›§ß.&&<¨®5*41. -& ( &'  ./ !" (=·½Q' 7ãN>5:21*(0É¥¥¶À –• ©™“—Ÿ —Š”˜“Ž”™”Žšª£˜›¨®¡ž¥²sÒÎû2*%-Æ]A$0GX(/]2.Ñp-%C´¶X(N8(*+#%9W%!+.%))&(-ZÏàPA/##<ƾÜ8>`Û¿½¾®®´½M°–˜Ÿš“ŒŽ—››—’’˜”“–𔑔 ¤¬°½½¤ ¥³?ø®ž§½áCF,!,m¸Þ3'(MÐKF/, (%!$7N=&;2!$2.(,zB *7('GÁb:b¶¦¦ªª£¦®¾FÅ«©ª¦±Ä«§§©²¬µÏd96KÉgÚC6Rº¼2)/4<$91,%;¼B&&.IG0&%=ZC9_«§´Îݶ°ÎTD*&>ª›žØB®­ÝA7H.#+Íš•¡9#;¡—¡¹½¬°C>«‹“¯<®–’›¬¬¥­>'嚎—ç&6¬Ÿ§Ó¿¯Ö$+²›¢U"&<À·ÇtB9,*Ѥ¡¬A'*¢¡¦²¯ºÔÏ®š¤åϧ—”¢¶²¯¾RF¨™œ»((Ë«­`1?9.>º¯> <ùÀç5F}+"B§¢Ã:&0âÀ¼ÅÉa0+%<º¼²C%$,ZÄÂM.)"#-;ؾ2#:^=& :@($/,#$# ?ÊÍ(!(<®ÐĽÄT;+Bžš¿¬:µ¥m´­Í±O§,•©5¿>š—¢Î­7©*¡¢¥š;³²ö¡ºœ·F:%]ËN´+|æ'>5% .;¾µ›º®¢®ŽŽ‹ŽŒ‘’™¢ž¹œ®­+)x.7"I!(É8& /5.")+ $$ÖÍ^®¡ ŸªµŸŽ–ž“Žˆ‰‹ŽŒ‰Ž”‘œ«¶¼m6Lëµ×I*);6    1Q@#/Ä¥¤«²¦ Ÿ¨µ­š’“Ÿ¸ªŸ’–™˜™¡œ›‘–§¡›šœ˜”–žª­§–• Ãº¬¦©¬¥œž©Â¸¬œ”›±çÅ­©¨©´·JH=O¶²Å/%*/*,;Q33A) ..'Øx&-K@:-#:±¡£³¼Æ¼¹¸ ”’œ¬¼¨›“œ¥¶ ¡™’“š  –ŽŒŽ•žœš—Ž™—‘Œ•˜œŸ©¤›˜˜°C4Uª¢¾C+*-*%)AA)&+     +d?$#9áøO/+.+2µ¡ªË7<¾«¤¥¬²¨­Ü昔›²»§›“• ¡Ÿœž¦Ÿ”Ž‘˜¡Ÿ–“”—™Ž‹Ž˜£Ÿ—•—œ ž ®HV¨š›­B,0Ý»].,-,.û: "(*)$$* *Ô²¿7*9Å­­Õð®©Æ:N¤––§jÁ¥˜©¾µ­®XC¹¢œ¦ðXɨ£±Ðg×l3-@°§¼>/<¶«ÇØYÌÉ<#ß²¹;!*Äá- 3&3Q;,3$#' %&&$j2!&VdI<ů¥©T^¼¡œ¦¶´¤«¯¬§›–𥝧›•Ÿ­ª£¡£²°œ˜˜£²Â¥™¢·Wº©²¶Ë»§šž¬¸­š˜¢²«¤¢ž¥¤ ˜œ£¤¥™—ž°Å³³µÉÓ·«ªÆ7BΪ¸?+'045.+2>0"3<1$4:-,10567î´¾Y0-Cï²·¹®®ìØ·¨§Í>4A³£©tÁ·°¾Õȱ»H%#;Ô¿Z?CLÀÜàFEW:-"#0ur9=NßÛ]FwºÀE!$BÈÈ46EηÕN;¸¤¾*(Ò¯\*&6ÙE*$*@9  ,#"!*.)\Ø&$:»Í@6ݦ·;!:¨ž¨J2\¤§L𣤿8:·œŸÐ9Jµ¦¹B8جÑ'#>¬¯E''Ƥ©B*잟Ý(=£˜›¸Z³’ü’»Ö«•žØâ¦”—«Ã©›¤e/Мš­4)M¦¤b7@¯­-"¾ž¢:&¶›«96¼¤³3$Üœ– ;.µ™™·:Nª¤Ï00´œžÞ)ú¢›µ/*KÃj öª/¤” ( į'ɺ/G¥Ì' &(3¥É]ž“—ªÀž–žµÉ¼ÁA ÓÂý>'7¢‘˜š›Ÿ¤²9Õ¦™ž­Ô髞¬:5E9C% -,,@·Û'>¿2'?°N$$=Z>-"%N&$W­¶¼Ù,)@e)7\3.;&-_3\?åÂf0)Ñ¥——›§«š–©ª ¥¤›¬_¯Ÿ«¿¸¼Ã¬¬Ą̊ª§ ¨©š§¦ ª¬£§Ð¬©ÉÒ´¬?iµJ9½ÁÂÜ> #343C4$(>-BÎ;8Îï72=* )+%*-&!*&!0-:ÕL6L9+᩸Iý;;~º7&03*3Aù¸¨Ô2º­¨¤®®ž­Ù¶²¸ŸÂÇ©¦â¶¯¾¬¥ËB?®§Ÿ¦¸¼ ›žŸ¨º«¤Ë2qª§Ÿª9.¸­Ëǯ¬Ðj"M«®=#%&60)AÆ·= )µ¥/#(-( )QZ¼3% %>ÞMÕm"'A­¼/156´º~²°/"ꢖ—¢V]ª¨­ª›œ Ç¦’“žµ5±«¶¡˜ ²H6¹—”£©³¾ÏÈÆ¶¤ë-2C  º¾F+&Û½Á®O#B«»7 *)<Û68P<È®='5Î/(è­¨¯ï%1,7½­«K+M§¨¾­­ÖÏ´¬›”žÎM[Ò©œšµëÅŸ˜™š©·°¯½³™˜¥·N¯˜š ¢°D3`Ù«¥¬l.2+C«¨ºf!pp¶»/7²¼*(4/-O0+·º#%$#/i%7¹©¼$0ìíɳ½®³>8¾Ÿ¨°¯âp³³¨  ¢¦­«ž•™Ÿ¦ß𪢣£™œœŸ¹º™Ž“¢Nd®ž¡¸¯žµ5:¯•–¹)(PLn.+´ªJ6»Ÿ×!4"$%)070:8( #'%*  60.>ã3/% 9Í.-î±³^,#ÒŸ«;1Ĩ¡¹2|Ÿš¹>Ì¥—›¿?§—²óò›‘š»È£›œ§®§–’¤³¬°ž—©ÄÖ¯«­®»¹©¨N,F¹¢©H&ÅÇG8+æ½3A­®+4Ò$)1%¿Ñ#X4"-"^±@ @Ä¿L+/ÊS*/hº©§:>®Ÿ§»À¿µ¬Ê︢¢¢œ«©žšž¡ ¹´ Ÿ¶¬›š˜š£§šœ®ÇȽª£·Ò³Ÿ¤µ´´¬¬[!):NG=.D¯§X0ºÍ4"'E&$/,>0325#())&;E?,#+W6/CJZ¹«½N?//4SÔ´¢²Ã« ›žºÝ­ÇDZ žž¢ž•’𢍲À§¹«˜¬§¡˜”œ¯³Õ*'U̶—Ù.0µ˜Ÿ# M¸1ÖÖˆés)´ ÆH5«*¨3À )%³,þ> m6ÞÂ22+ (-.) -U*¦µÅ¹ž–Œ™œœŸ››˜•š¤™ž©œÔÛ%*)"#.%%. %)5þ¨¨£Ÿ——™‘‹‰‹ˆ††‡‡‡‹ŽŽŽŽ‘•œž¦¯¸½Ï̸µ½Ái>n>N% !,41,.*/01& /2.%%" #! !!(""%#!#%.*"#/S};2/2>>+%>ØC806CF@699A@hÜÑXͶ¦£¢¨¬ªŸœ¢ž¤Ÿœœ—“’’–””‘ŒŠˆ‹‹‹‰‡ˆ‹‰‰Š‘‘ŽŽ——™“—š™›œ› ¢¡¬¹Î¹¿ÐMY>?..))3*&    !" -/+01;R]ÂϼÅѳ¯±²·´¦¤§§£ ¥©¨¦žŸ¢ª²¬¤¢©¦¡ž¢§± žž¢µ´§§±¹³­³Ä=t¼¯´:9;GÅÈW^QH\Ø¿®§«µ®°¯©§§£­µ¸­ §¨¬«Ÿ ªªŸššŸ©§œ¢¤œ™œª¬¦žœ¢¬§©¤·Á¯­©ºüͲ«¬¼ü½°·¼¾Ä¾ºä;>XiS=,+*'/1)-" $("$&"#(1%($&!/@.#%$'4>,((0ÞÝL<=ÖÙÏ[Oº´·Øº®©¥º¼±®¸º¸Ã®¾¼»Æ¾µ¬Àµ°É¸º¬®º½ºº²¹¸ºª¨´Ú˵ľi^Ú¼E6.@aGW/@eÃA?irÀ\93]É]R;iiÛK;À½Zi-1-7&'?²Ÿ ¡š™™²NÝKOLѳ¯¢¡Ÿ™—“–—ŸµÅC¸º¶©œ™—˜™¨¤¸áJ70EÛ»\¹§ž™ž¥¦¦´@0/Eáyâ´©­žž§£š¥¬Ä(Ã2)+5¾¯Ý/ºž§™%¦¬<·*©(¡;¯­¼›DµÅ)A%/%,®$!#6Ÿ£©¹Ñ½M×.$ ?L¿¾šŽŸš¦œ“¤ÈW|®ª«°º­ œŸžÍ@/S   7ïg¤®¿ô/3D½²«ÉÁš‹ŒŒ‹Š‰••š•”˜—”“‹‹’’•šŸ´¹·WÌ·Ò±žš«ÛÎË_#"&(778?¾Ö" !! +:Ö¯£šš¦§£ž±SÉÐ^¸Ÿš›™Œ—žœ­³¡œ›œ™—‹‰‹‘šš—™¥¯±­¦¡š›ž¨À»¹Æ<(#-=VæÓñlÎNI-$*-.  "&)@Ì·ª«­¤¡¦£²R̰¨­¬›–—–““ŒŒ‹ŒŒ–š›š–š™™–‘—•’“–§¬©Ÿ¡¥¶Ç®³ÏÖµ©´RL7=@0)86%)'*) ! %2-,2-)+%()%/16-(,>ý?;Í»®¨¨¥ª¡ž¬ª§¡ž§§§£™–•”•ž›‘‘—™“šŸ›˜”—Ÿž›ž¢žŸ§¯©¢¢¢¥¨¡¤¬±·²¯°Ë?56M2&$ ## .7*''$%1*#,*,+%>Yeª¦¿Ò¼ÂÃ?üØÈ®¸å7Z­½81B¶¹¯¨±©¦ª¯ÃÁ¿ÃÁÛ´³LÂÎÀÊ:.9ZÇ¿¿º»­¶ØE:QC/,.8-0<)+,=J8>½­»10ɺ¾ÙS5J®±½ÌÍÂ÷>l±©©¢™›››žš““›«±£–“™­·§­­¤™—“•™•‘““™ž¨¬šž§§£¨®·««®£©«±©Ÿ¤ ¦§ÎÚÊ×ÒOlÄe3>-)8GYeO.NýÊZ57-*1&/ #1( "(-,(**,,,,)$'*E^=;@>\·¾E=IÆÌ96\β¯dêVZi>/)0E869+/L¿7'"3I68.!#*/) %"$+& %(2)%4&!(#*# /8AF,1ÄMI-:&)'9âM?µºÆµ/õ©I\­¦¦ Ÿ¤¶°]N»½@Íž©¨­µ¾]ÏÆZر¦žœ¢®Í'?K*5¸¸®±·¹©¯Eo½®¯š–ž–—«æ¬¯¯§ ž™–•§¤Ÿ¡–‘’˜Ž–¦¦­«ŸµçK§¢´»N3@0'ZÇÁ¯Ð<7*!&'%(/>[±î#-Ê/*^¾­¡¡ÃÓ94?.(-Ê.6FNH87I&,<*.³®;Ö4(2$%%&(&$&!")8(6)$&!,,.9;0'?-#',$/+P%%&'"5ÐN<1#3G`-)4(ASJÁ¦¬¿¾­¯¯ ¤¸®ž¬±¦¡¨ºÆFµ¬ª¬¬¥¢›¡°Ÿ™œ©¦¥¯® ¨«¥ªÅȨ¥¢¡©§£ ›¡ž ž¢¦ž˜œ•š¬œ›§ž•¡¬˜Ÿž¥¶µ®®Ú²®¼¬ª¯³§°qº®Æ[®ÁO»Ñ,)XRG\DÓººÚ67[:5L7DÂÙ_¼¿dÒA.H¬¬â´­Åö=2÷·´I/9zÌÉà/SC)&>o_È;'64.4).$!,E6)I(*&!#*(!4>+351! 4.3,-/¿»9/3("3,ï¹;8@E/1MJDDBS¼­¸¿½äéÈ8%!$Ϩ¯¯Ã*',:ØÀ/&-16A36ÅÖÊ3A<'(')>J 9KG¶`(LG,'>øClK 7±ª´Í8(*-1k­¼:@3>½í1 @·žœž°777:Ý«¨ÂÁËÊ«¬Ã/#.®ª›œ¤á<18À¯¾´¦ªµ«­:'#)°¨ ™› ®CC®©¦¥žœšª;UãC¶¢˜•Ž˜•—¢©ª©¨œ””—š¦x89D¸¥¬–šš™¥ÏF.1K¥–¦¥ªÏ30´µÇ¯¦ žÍ%(,,J˵©§Ã 9lª ¦¨¡«5 N­´·®î'#")#'Í®¨±©Ë"6°ÀZ0( :ª¬Ì*@@;+$D¨™¥ø)Ê˯¼4 *#))"(6¸£˜•±Ù'%9¼ž—©IKF1,J;):¿¶žŒŽš¬K' @ ˜”ŸÕHEJo;()D»º˜‹Ž™ªA"'Ø® —›£Ö¾®±Ä8.Ö©œ‘’¬>>°“•ž˜ž¥¨­Ø<¢–‘ŽŽO>-»šššŸž®×E6 $A>Ï œ™š¤7׿=19¾æº. 2аº—ã /˜ ‡+(« <*y; –" › , »675³­¯«­’««¬Ñ'  ;¹´16¬²¸j¦¬¬¨¸½3[*''. "&-DOS»ª˜ŽŽ’žŸŸŽŒŽ˜•³°© £¿°½Ìƪ-+#Ó®ŸÂ^_¬¥AI:O™”™‘ˆ‡‹Ž—˜“—ž«ø¨œ•œ¨ŸŸž¨=7Á°Ÿ©Þ( *?0"4.d£ «ËÑɯ ©¸ª˜žª·›œ¢´A¯¦ž£¸*  -(+ ")*9±R)*ÁX-(+¼›˜½¸»?Æß|a;LÍÉG#  $6¼¤§¡œ—Ž••ŽŒŽ’“œ™šš¢«³¬©¡©7-++>A))(o¹@=+*!5,(+V6EN8L®¦¡š¡ž–Ž›œ˜‹’‘‹‰š—”“˜›¢ §žªÊH+;;K/ 41-!:R!"(NìýN#&#/Oº»ÐöÓž¯aÚÐ°š¤¥¨›“›Ÿ©Å¦µ£›¢¨­«Åkc$!&.( !,ò6*,'×Oȧ´¨Å¶¦ª¨Y+%$2/"AÉ*'.-$FLC8®ÀÉ5 '-:$8q2 ()8¥¦¬”ˆŽ¡›•‹Ž‹Ž—žÒÍ6$"&*-325&2&ÓŸ£´²¼Ó­¹¤ —˜Æû¤š›Ÿ«§™˜›¬ÅßÑ«¯´¯–’œ¨¦·Ÿ›–›™”••³æN.>F**PI4@+Y4C¶H«ö8×E²®¡— ›—•ž¦Ü·¸Ý©¬¼--F2'.&5æÎi,¸¨¨Ÿ¬µ˜›¯½LmͶA- C«Í% !4p.-,!*(»¢¸¬!,´·Z!MÆ®R'' (-/!!!ÌŸº@Z¾¹±4I­—™©«1¹E(/),:W®µ·>.-,c¯‘•œ™œª«Ÿ¡–’”ŽŒ‹› ¼Óª±§ÆÆ§—¥p )."9°žŸU8=ºŸªž •Œ‹ˆ‘—£¨œŽ‘›™“‹˜ù,-3?R">·ž¹#-//̺«´0"KÐÐí¢œ–ž?.%ijN>U¤«²¼ &/7.(ÀÓªº8'( *=ù¨º¯ ¦Í,1·6Wг ž¾06:2*E+=²4+1%,913Ù'- !½2N­F: ;&.)2¸´>#&:--(00JÏ8*?'Ö,8°¤”¤©º¤±¯³ª¡˜“«¬›¥´L41¹¢¼ý0.,#$&.D¸¤­»PQ­³­×0«—™ž§Ÿ˜¨¶¼•‰–›ì:©«Ì=#@²»¶&È3,!2ÀŸš«/.®¥šª¶®¢“Œ•¦ª¢›¥ÉžŸš–œÄT©±x5.2NJAS5'H4.H-Å£Ÿ¤ÝΜšŸWJ¡š©¢­°ªO9¯šªÑ6)Î`«.?ó0=#,%8$ùÄ]1@: +EØ "  (Õ§J -JÀÆ3/Â—š¹­§Ÿ”¯xŽš£ÙÆ«žªÃF4¡˜Á÷85[7dC,¥™»M+l¨¨£gIžš¨§¤”™ Ÿ—›¥¹¡›“¥Ð¶¨›£Í¸¥¡¨Ô«›ž¡YÙ¦§¥Ä4O¡™œµ62+¶ª@9Nú¾Ì7!)&0(-ÌÝ5!(2Ý<+A̬¬¯¶Ëº±°Ì½¬¤›¦é2CÚ˾¸¿¯´¼®¦¶Aº4+=5LOîE$.&-,1?6I-*9:07#$ÌÙÀ:$%+3+,68*('4%#-#*"!*( %6"' <¿:$ ,cÇŸµFÚ®¤ŸRÀ³«Ÿž­¼¼¦ 8=ÅI›¤¾à&Ç«ª¯Dî㴮Êݲ¶ÂÕu°¥ ¤°ìÆ®š›£©›ž–—¨›Ÿšž«­ž™ž­¨­Ä¡ž››­­¢®³ØÎÔY¹Ë.lªªLEHD9¹ÅÜZNʼJ)'%MàF-8Ó¼o+.:YË5ʾɫ°«õ(%<úÈÆKÈË®R.[<¿ªØ³±°¢£ÕI+ư­~^£¯jE@¶ì¨Éµ­«ª»-=ÀÔ.*Ip(##0-,#0CÆ©.N1# &-D©¼3>_Ò6$)+/,9Ŭœ©0Äߢ¥¥Ÿ±ì*1Þ²¶7»§–žR-&:ðÖ¤’“ Õ4+ȵ¸óãÉš›Ž¡^&4Ú¹²Ž“ªnꦞŸºÏ³ž‹‘ È"7ȱ¯¥•Žž¼78¶Ô¿ò>=®—””°5/Bǯ¢˜>#)7Tç2),Äž™ŸÄ J7C»ªžE)02;5846Å—ŸÍ% 7ͽ®›¦¯8-ÎI5=9=º¡•›±1kr··°©ì/$%+)+#">¶§­i"*B78ñ;$$$P½Þ2 -(d;%#$$.Y¯§¯¬N$)ÆÃ²º©£®ê:(&;:¾È¯ ¦®^)#¾«Ê¸°š¡¸À'0Jn®¯œš˜¥§]*7¼žœ¬¢–”›²éÈ·¨£¡™•’”˜Ÿ´=>}—¥«›–›¤EJ¿¬¦¤ž¢—–›ž²5!2¼£®Ò£¨¥½)$-3>µÂ³®®¬¸Ù<±¸J8´¨È"$(?ÀÏÁƶ¨ªË2"/®¤à>¯©¸/-$*7>¿¼»¹Æ»»FoÊ>.=ªÕG* Àyd¨®¤¹!'Až9 ;K§Ä#&,3E½@.C_U&u9)9Ê[°H!ÄKѸ"=N9»ä(;Ý(;°¿7*$ $..a#Á5 " :5ª½®: //¯ Ë«¬§½žš¢¸¯¡°—“””Žž²ž—˜“–¡”›¥‘œ ¨°œ—™Œ–Ÿ§µ¸¦™¡Çª¬F¤Ÿ¾Æz<>^Ë=·ŸXL,+6_¿Â¬®µÇ6¥»F´""*3>áÔ­®ý.+'-8¼›““¦®Ê?+Ы­ £¾³œœŸÁ0-=º¨š•“Ÿ»@1ݯ«œž«£›•œŸ¶^O³§—Ž–•Ÿ¹@SS¥–š§ž’•œ©ÓS´²Ä£•“š§Ç5(%.©¨Ñµ³¤®I/ ÏÇ.L¨—”›Ô5,-%!È·è¾aËçI! $Æ©˜›É+)# 9¼¸ª©­³í$'#%&e­œžD&6..+5,&>ª f/$!&>î>8Ý> +®£Ä14¾@ZEF%!$-6E¤š¡­Ù5#'!,¸ž¡©Ÿ²¸Í)+._FÀž—œž¤o`^*.½£šš£ºÇ%*;Êõ¶™“•œ¥³¼2-¯ž—•œ¡À4É­§¡™š“™ž ´âAQ´ Ž™™§ù=^Õ·¤ŸŸž‘˜™¹A+?/Ñ›œŸ¾+"!#*´­¥§§¡­.0#&9À¤¤š¶-%Op;ÂâGº­­G+7t­ª@%15B<÷=ý´¿¿F!"Z¨N#.$/.;÷4+&Ø[+.3* #19½ª;%U×ÜC'"!>DBO/N¿ž¤ÉÝ//<̧¬­\[:/r¾Æ»³ºÑ©™›¢·B7Lº¥¤¸§ª¼>n¸ê¬§»·¢¤ž™š§¾È®—™¢¤¡¨ª¢¬§™›°´œœš•—”›¢«³Ÿš¡¨¯BTU©ª™Ž–®@ !‹ŠP˜—˜—Ž ¯F6¶ÎÔ¤’+Áœ¥,™ 7Ø®¨— ¬§•œµ¬K= 9;',+?-*,++@¬œ¹¾£´Âž˜«« **(5W   $8;W7?5@½«©­¹­§ž•™›œ¢¤¹ºÌ²¿õÍÏ:-%"9&++36),#NFBÞ»§¯¬›–•—˜‘—™™–œ•˜›”””“•—š˜˜—“¤¼¿Á]ÄèÏÄÓ7̨¨¢³=G3=\Ú§œ——¨¡¡œž•›•˜’“‘—𥢤ž­¤•š˜ ¬XL/! 9PPL8=@42<,úOHÁL¸ǫ­ÐÐ<{±£¬×¤¤´½/&  +V̰À¶žŸœ—£¨´¨§©©³±ßgB)!($%":!%"80951%*J7Ø­ª¦ª¢Ÿž™•›™“–Œ’ŽŽ™© «¤ œ¡©·ä:º¾¶°;8ÆY2A¿¨»Î3 M.8=ÈÉÂÀ·¬›¢¬¡˜žš¢”™•—’“Ÿž¬§™˜™“’–’šš™™¡¾GAJ×U]À. ##& ++C¿:gIÀ¤¿Ÿœ˜—¯Á\NÅ6Å£¸­µ>¬ÀU¿Ð×>5à-X¢¡±Ý¼'/"6E)  ^¹¦¢Ÿ’žŸ••Ž ²Åª¶®¹Kì  !)47Q=¦£“–š¶ÅFÝÄ¡¢ £È©·m·.'#,(Ò¡œ™¶µÒ(8´žž“šœ¢šž™¿[{7µ¨²¦š®?)oèé£žš™šž–›‘ŽŒ‡ˆŽ›¨º¨oË®Ÿ­¾2+ r05WОœÓf.(1/«––”›š˜ ¢¥Àø%*6r¾Æ¶- %.,ÂüI«³§¨N/8ÉÅ­ Ÿ¡¬Õ²¥©©¥¹Ä¥® ¤©´Ø$ 2*5Í'*%"/.G¿!/®8´Ô±¡;´Ì%H+η½®Zx=+%L<:F$($)(%% "3+.Å~ÉF=ÕӮƹ¯JÀÀI 2#+9$& "#I')¸D+¢Ã¯Ÿ– ”¶–J’™fŽ-“¾—·K©'ªIº->¦?³¨·É9§»¹¬®¡·¬¦¼Ï+»Æ$p=#c2::?¢¨ ·°¢¤™Œš—Ž——””© ¢•¯t¢H®µ¦«¥Îà!    !.KÇ·©›¡ ¨µ¨œ™••œ—•ŒŽ’”š§œ žœœ·±¼¦®ª¦¶©¾Ò¼{µ«À/'&#"ú^60$!=mL26,9X©£«±6!3U5CËË2)3Q¼­®`+-+?õ>*$/).eM4+-/(#".-(<9'BL65½Þ0Ì«¨±T3)"-C<¼¦Â/&?Ón°ª­ÀÀPɨ™œ¢¬»­­²¶ ŽŒ•œ¤§œ—™–“‘–‘‹Œ–—œ¡¡ª­®—•žª³Í=*=À¾¶´Ãm/¿³Ô=)$2?5" !# +08-!-# 11:D-3 .´¶§¬V)/D½²É³Ÿ™“—¡¯¡§­²§¡šŽ™¦ ¥¬¨™”š™‘˜˜–š¦¤œ ¿ºµ¬­˜¢¦Çö6.U¼ÆÎÛ®ª»W-++<;)(7¼¹¸»>L<'&5´ž¡»4+BÕá3#/O}¿¯Ÿ£É@19<=Gú¬˜”©Z+?Ô5*&'5;ÉÀ¹¡¡½>1Mk=õ©›™—Ÿµä±²µº¯¯³¢ž¡Ÿ¦¥·»µº¼Ð›’Ž–Ÿ®ã·­¿2Cº ¦³°¤Ÿª¾H+,.B;» š§Íu6,!)5Oxj­®Ø)+9)#&0ħ £ë3 ",4\uàÝ-$5*,E\j9&-D<+,6O' &5Eª˜š¹â:)&4Kȵ¥ Ÿ¢¥¥©·µ®µà¼¢””Œ˜ž­X:-m©œ¥­ª·¬©ª×025w»ª£¢™›§2 !-OOûä½Y°·oæ7="%23<ͬžŸ¾>##)9U0+78<)&!9è@¶È>#G×ÓHäQBêM3/*2>:D¼œ›¿:(5jȸª¡¥Ÿ¢œž¦®o.É©¤Ÿš™¡¨©P.>Û°¤¤©Ÿ©Ÿš£¬º©·H¾¬¤›˜‘•¥Ê;'0@¶¸Ä߸»5!,!"!)'-%@ÅZ¼ž¬¼ÐÚ?.V¿c²µ¹·µŸ¬­­ÝQÛ*,Ä«Ÿ Ÿ¦µ¯;&1@黺ݻ·±Ö®£µ`4;7³¨¥›””¤®»¼¥¦¯§™™™™—£®¬«°¶žžž¡Ä@:- ! *"%-/,»­Àµõiº¥¤©›–™›ž¡© ¨¤œœ¡˜••”š£¬Ÿ­Àªž—–•› Ÿ ¥««­§ž œ™”™¡Ÿ§®°²ÈáÆÂÄ®¦¤©Õ-(,>103*'()'+#&*#$&/íH2,%/>74' " ""!$).3Zà<,&&N4P;GmÚê3n»º £©¦£°§¡•–©«lu¸ª§ ™š˜Ÿ¤º¦ž¤¤žž¨ª¯¯¥œœÇJ.)LÔȳ© ¡§£Ï?ÍϹ½±½}ƽ«©½3$054ÎT7""%2/($*0+,$  ($5S?6($BG¾¯À»ÆßRÉ, &9¹²±ª›Ÿž§¿Ý®¤¢ž”–žœ——˜¢Ú(;įª¬®š•­³¼çË­ºª›œ Ÿ—•›©Y,*02¿°ª©¥±ÅÅi+#:YÓ­ÃÀ¹­Ì. .=*&-<#9ýØdæ9$$aJ±ÆÌÀ×=.7'#37Ý§š£¤ž˜°Ô4!2º§¨žœ¥œ ¥¯¬P+:¶© žœ˜³49(k[ª¢£¸¦ª»ÈÝ=̶¯§˜˜— I+'<µ§®°ºâoK&$,ȧŸÈÛ@!#:+DL90$ZȰ¦¡¤­º18Rº®­®È¸¼ÊZM>»ªœš•–¦T)5<<Å´¥¤¡¤¶°­_-1U´ª£ž—˜­Â;1L63¼£¥²®º­¹>/+6>Ý·§ž³;($.!&%5&&$!6æõ¹È&.@gÛ[;KÊ;"'+®¬œ›œÀ;0+Öͻͫž œ››œ®Û꿤œ˜”Ž–´0;Wc½Ã®¬¢®²¬­°ÇTÊü­£•Ž’¦J.0005TÑW^KvE4)&"!"$5h¿ÈH+! !$ "#3,% -ͱ©³×,&;,,1BûÇOÑÚÆÌSÔº´ž™”‘‘™¬¾³½³®¬¤£¢ £Ÿ §¬¯±³¦®Ÿ”’“™§½9K2ä­¥¥´Ï»·²ÇpȵÁÂeóÀ¤ §³É+!-:&!%##!,==,,0.)%%" %)=<7/%sãß÷Ëk\ÆE°ÄKâ½1.ÑSŸ–¼4¦à©¤i—¡ÿp¯š˜¤·µ-&#:ÑÄÂlJ/2Í®=­¬7ÊÏœ£Ä¥Û¯¨Lª°Ô¹£½Ó£Ô¯ýÌ...JÎAmN/3$/ª¤É”§¨ª­›’‘‘›‘”” •’“—š›Ç£°¨¼+?3  /)9=«·¿³š–œž•–Ÿ”™——ɨŸž¦¦³®R 8>&#),)&#!"-×!!+X°£¥™œ”–œ³¯¶žœž––—¡¶ª¨¶@ÞG¬¨µSÃT)#% '/!5N#.F8o³±²¤§¬¸¨®¡™Ÿš—¥§µ¼©ÃÓ©ª™žš¨ ¨©°2&"@"3/¾?.   )'1*ÏÂZ,,2.7;Iú›–•œ ¸43ÝÍ –››™¦žœ¡¨HTÇऻ°¥ë%"(, %. $%".:¶¢©½ul7ØÍ®Ÿ¦§ ¦ž™œž´É6寛’™«Å#.-94=<4E(7²¡­.'#@n¦”˜š¤¥£§¦¼²º¿­œ‘œ¹U-C¶É£ž­ºIB3-)4)&"!GÁÊ-1Y4-LTÚ¾®›œŸº¾JÖŸš‘—š§ÊIG²¿¢ª§¦ ž¦¢´Ï8N;+!O¨Æ $(,.E;"6NZc?@$*Xœ•–¥[=.V·¥œž©š™žž¤§¨£§²Ë;LÁ£².&  !#,,09 !*4¬¡«¾ÜÞ6϶§¤¢©ª§£¡œ   «ÒDF¸ ”Ž˜¢y &";,%73,Ú;.%'%#.Ä·¾ú7 +2ܤ™Ÿš› œ¥£ªÍ½E󬓌”ž¾GçH®´®¨ßÎÍc8aW6(+?0(&E57¿Àܰ¥§§À§¾¿¯Ÿ›•”›­¸À¿ļ«¢žŸ™¢œ¦Â÷#$&E:HËÊO-  ".83FQB+()(-L©¥œ•—¯°47úų¡›–œž ¬±²Ê·½¹§µ¼¯¯¯î@!!!!$## (8:W°®ª¦©­ÐֲȷŸ£ž¢žž»¡¬À²±ª¢¥ Ÿš”˜œ±)& #%KSGI6* !42Á].F&%#?µ¤œŸ›œ¦¤¹JZ¬¨«Ÿ›ŸŸ™œ›¬HJãµ¢¿¬µÅ·.$('#!.0,&%»µËÒÝÀ±º´§ªž¡±¹·›–™–•¤µ3|¸«˜ £œŸÇ9?4?G(.=@D=>6(&/6H.*5-/½¶®¦µ¥š’ ÁÃÞÆÂ¯››š¢«¹Ê©ÂŬŸ¦ÎêeÔªµ»Ãp>""'+ 38iŤ—ž¦Úà²Ô¿¥·Êš®½ÖT©±-,M¹Mì •¢®®µP>!,¯›°7>S¿µ+,63ØM2*¢›µ¦¡¼-(!!;>/19E,B+>0g© ªœ—œš¥E¨·ª¤šš¼¶•—•š—š•––œ˜—“—©»½XUÍǨ¨°¬¯°Ì&83&* $   Z59AZ?à:%\¿´¿f®ÆÀªµ¢ž¥·šŒŽ“™¢Ÿ¨ËoÉ›ªºµ§¦¦­Ë¸±ž ¬¡–“›““‹“ž²­¶§¥ª¢›¿82Ó§¹·¼ÌmÏ­¢š›«æ,17>""0XK*#%%<¾?"&+.FPI*%$*"61)>Ó¨Ÿ£³ÀÆÔغ®±¥­Ÿ›¢à3÷²¯·¯rȯ® ¦§§£¹Â»¢»¾š™¾Ã¶Ùº¤®õ¯¤œ§¯›•£aÑ̺¯°Ç3Ê»®¾Dw0%+6¹¬8.=ü¼ë4#*_,+3#&"P¾ê-&%,¿31]CCËE-%MJ᫨¤ž¡Ÿš à-X¼¬§­½§Ÿ£¶-*7Mº½¦˜ª¢˜•“œ¥S7¯Ÿ«°¥˜™¦©´·×:0Û¼§ž»¿£ž¡ºK5#%3iŸ¢®Ü?ÇL#PEM<:.&+P9.5<_ 1dæÝe¨²¼($ßì¥¦šš®°Æ;G+#8¯ ª¶³°—’ª7,3^µ¦”“”–š›ª^R4Dª›­Ö¥–›˜£±Ú/G_ª˜”𠦍J&"(L±¯¦¨ÆÙ¨­9"@L,Wù- $/=7B5Ê®.">C¹¬16¼®·¦š™¥œ¦ÆÃL25¿šœŸ¢¿¿Ï$Dº­šš’———š¨|H±ž—›—¢c<?ª«µªšŸ™™œ™¬þ?+9QµŸ¢¥£8%Mè?^ÖC>) 6¹JB  %A®L>*?.!'0Å©Ÿœ©°?)" ,ÑW=V§§ ¨¡¡¶Æ2寥——™˜Ÿ°6EÄз®§žŸš‘•›¤Áö©œœ¨¡•˜ž¨M. ((.æÉÀ³Æ«¥´éQØì-'$8À°¹;(! ..QíáI+3,,0%" +9ή§¢ §µÉ«¹¸Üƨž¦¶H04**.:¯ ­¢™•—™œžž£›——š—š ¢´F!&fª©·«ª¥œ™ ž¢³­Ê® ¨®µµË:$!#=K`àTîÏv&.3HA)*1>=9&.yJÕC-.-*/7·À¸@9=0#&*)-+-ݽ ©á±¥²ª­§ž››«¬Ÿ¤¾E߿̶¾§ ¦œ¤Ÿ––¥®¢šš›™ž›®ÔZa?6%7;½¶?¾¯½¸ü\ÚÌR3=³W*$-89O' ޹¦;¯ˆ $?Ϲ\?©œ ,˜¢– Ž )S$)ª¹§©–’’£¼¡ºDE#%&+ 4R¼¦¬«¢§Á±˜•ž‘ŒŒŠ†Œ…‘•¨›¥ºJ[$ '(9W:'G?.!-:.º³?3²l۷̿Υԫ©TI·×A=!  ..XR¹Ÿ¦Ÿ–’‹ŽŽ‘“Ž—Ž—¢›¡›—›š“•–“¤£¡—Ÿ ®GÞ5 !  $(P}AFƯÍW¹9Ê©·¨­¤¹É«¾Oµ©¾«¹C/ÒÃ): '"$/&@bº¡¦ž­¦›£­¥éÉ­› ˜–¤ž£¥ ŽŽ—“Ž“‘ŒŽŽ™§µÄI.,**2!&!;=<ÛO>MW7G®š˜˜’žš«¬£¢Ã°ê9,ÈZ5]$   "%+3xT4½ÞÂ+&-W¨¥¤™ŸžŸ¤šš•’ž‘ޑދ‹Ž‘˜¦Ã³5<羪ª´A.<;!-'!>/7.®²Íº²Ã,"?¼F¸¬>æ>7i]ÇQJy­­š£¤ž£Þ:7+;8Ü_ήØÈ+06/  E«·§Û¾œ¬ž¡˜š—˜”‹”•—§Â>.66Í¡£¤¤§¯´¨ž§«ž“‘˜§g6'/"$,&&! "*Ô¼¬™œ—ž¹¡°­¨ ˜“–Ž ¼§¸k/   !&+?ØìÕ̵­ž™‘’ŸŸž³?&:4LÞP´«O;G4dß1n¾¢¤¤‘¦¬Å²´¯Ÿ ‘¾¯®6D/'&8/@®°³¯>*H.1)ØŸŸ˜Ÿ–žª¼¤«¶Ã»­Â¥³*   "",!+")®ÓÀŸ¥®¥ª8&*-$9C®­«®;ÿ?<Ðʤ¡ §©¢¨¯G=@&]ÌG¶Æ3&'#3I°¹ËªÅE­¶¼¶›“”˜¨·¬ª¤¦¢šœš·ª´=?C&7¢°¦ª£¯Ë«9ËË3'¿®±¦ šÇµ­3C1=zrC]¼>('#((8- (6'+6ÝNÃY#Ç5!%$(E<»µ£½¤®9­TA-aΤ­·žÀªÒ?eO'´¹Ð¤ªŽ›¥©©±°Ÿ¢•–›’ž¢¤¿­áÁ:QºÅ°¬¿Ü¼G(,;3*¿`N¶$ZC8-03@°ÒÁ¹«¬«J,AM!.*(-0"#!9"$(&( '-*2( (#ÁÞ—œ—©³ªÐºŸš¥ž¢¡žš— ¯£š¡ªŸÑ7="!()(>Î$5-0,:-!C" Q+&#:)3ºT˰®Î¹¯°ª˜­©«K­Y¬ª©¢´©¡°«¶_:$»AѼÃÀ¿Ã«¯G*)7/,0%)(..:Òª§®«Ü𹺡ª ž§¯·¯¡š¥˜¥£˜™– ªª­Ù¿ü1(%..0,)"$ 34(]ÆÂÂ\¦Ä®Ÿž¥ŸŸ¥®Ì¶°¯½:¦°¡—©Ÿ œœ¨»ÀÊ8D-;,&$*I/-18=5*?9J:3À6X¼>O?ÊÂÂɳ©¿¯­ž àµÄ«©žž¤ Ÿš¢¥¬¼¾/:+"06*(8GPLMȵ6oJM3(2'1(#0($<&¼¹¼®¶§°·¨¨¦¦ÏÎÎ諼¼¿¥¦¹­©¨©¿±«=ÕË$4OS¯Je½÷81.&(+J8+5/Òµ»¬®¥ž° £¯ÇO.O-¿¾Â¢š”œ˜––®¬§¬¤¯¨}-O1%&$+.+#7-&)+&%4Ò,gÄ>¿2/ne9¾ZÇ ¬«ÅÖ¶°º¿¬žšž‘‘‘‘›£¶\F2$! 8?ML0;'#%$:QÙ/10%% +/ Q첞£Ÿœ¥­Â±¿¦Ÿªš—–®§«ª­¸{Sº¬ªÎJMc/)"%5633V»Ç/03,G³º\J<@ÂÈ®¦—“•§FN^63CB»Ñ®¡œ–•Ÿ¯¯«ÅAY9ú¼;óDa2 '('LåJ,5:Ó,'+QB}¸³¨ª»ÎCÖ³Ý.29·À¿§Ÿš¢®­®›Ÿ¤ž‘˜©¾8--#%#(4IÍB+*($ Iâ^9(4.("#3/HX®– ­´Ï¯¸´­¦Ÿžž›š›®ýé¯`EùÇOÐì6f=*'7(-;DU& )$" ,8@_º©¯ÏX³¥©µ×ª¦©­¬©¨¯¼JÇ¥«²³¥œ˜ °ÒÄ¿ßC7;¿<*('*"!'''/KF**è=:.9»ÌË·¿±®µD>Ñ®·½µªŸ¦«ŸšœŸ©ª¡ž¯¸¾´º<0,L)" $&'7-% +6n1**MN4/;ÎÕTcSÌ·°NÃdSN4A]ãM5=;=60.,# ()+)02>0*$!$$'$! $!$%(<0:MÓÒÌf8AF>SI?3673,4.4AÊ»²¦¢ž–•˜–’–””””‘””™œžŸž¡£¥¡••˜““—–’›žœ˜™˜–››œŸŸ¬´ÎjRp,00)5>;.-+')#$8()-%&#+(%"0,:ÝL7~Ké>C8)?<54%!#&(&! .5>¶²·´µ­¬§¡¬¦¬¯¥žž¤³ºÂíÂÞ6ë½²ª®¬ª§¤«««Ë¬«³§©ª¦¬Ÿ¥¶ÄlGðZO6B?937-8E-(+"/77>>4@4^@+' $-,1 +',2%8>GLCmí½²ÏÐwN8U»ÃÓ<,'&/("&$(.*<¿¶¤¶²²¸œ £¡¥œ™—œŸ¨½·®¬¹¹´µª¨­ª¥¥¬¹Ó±ª«ª®ª¶¾ª®º¶h88;7,,.-4&'(.$.),#&4+A303, !3:*,3,

E®¬·ÇÌ­¢ª²´²³¬©©¸­ÈA6SZ1,++<07L¶³ÐWLC±¦§»¹¥­¨ ¦ ©fMÃÀÊÔ§ÈÒ­À·®¦®­º+¯Á¦º=´¦U6»¾›)— Þ2Ü:ªž-,¦Ãª¾&b¤%>PÀ­.»>ØÌ'"'*5 Oê("%.-ñ'äėœ”¥˜’œ¨œ•Ÿ•”Š”–˜¥,F%  "&!!*5#5P0®®¬ÀÏ­¹Zή¢ŸVFGËp¶¯´Ÿ™‘•¡Â°Â=,d:)-$$/5!+166<>ßâ0),%   /'F֯Ѱ›ž¢¤±¶¨§¹½­¥« £¡›—–˜“ŽŽ’’‘‘‹‹ŒŒŒ‘’””™›œ¦íA7?CÕEÝÚndm´¸ÝL'"#&&")# $%! 4(0;?ZÔfÏ»ÊV4/8&-011RJ𼯩ª¥¢ ”–œššš—™‘”‘•’’‘ŽŽŽŽŽ–—ž¥¦œ˜š——˜”––“Ÿª®¶¹àÀÎ(91&;595/,*Tg=:ø1-)$!&  #"%':3($+89nF\°¯º±ª¦«¤ž«¤™Ÿ¤¡š——”˜›”œžž§±·¸Õä­¥²­¢¦ šš¡«¬¶Ä°Ë0=oðRß»\׿l¶¤§©¨®¿³²íR¼t+&2,3:,"#%$#6AE;ÌÄΰ±½¬ª±ÊÜS]Mï*>Í×MÍ»¾¯¨¾°¢¤Ÿ¢ Ÿ­¬¤¥¨¨£¦«ž®·±¯¸æI/&;1 ++((*'(eÅ>`ÅÍ/*&&( +(F92Z;4M+'##$!-$%)" ()&OGø»ºü¨Ÿ´© š¥¬®Rí¹¸©««¬²ÄÍœ£ªš—š™—›™““››˜›•”™™˜¡ž›Ÿ«¥­U¨«EJ9)*0?.Ö¦ËѲÀÞ»},%:/ 71:Q/(%!,àc]¯KG½¹D=<2IE8*JL%-/&)-))ã6!6(.˺Dñ¡£«­°¾¬¯+*_½lR<6ÏÉ,B²7KBײ®E¹›¨à¿É§¬=9½Ûù¾Õ\®¹(ÈÍ'$%Ç©H/3=]58É+9ÈRì9#,Ã).½«®¬`=­ªß·Ã¾®­¸Ï¦ÚO»T>Qã<9Âc&5;+'9,-°ÕúI6+0Ýj?Ad<-HX¸G-)Ý·LEîû¾·¨¬²ªµ±¤›Ÿ ›˜ ¤©J»­ÉÝ-%-,(KW.%ߨ¨¬7C-ÙÏéO¼™™Œ™±È«¦;Éd¶¬­©«Ÿ§Ã[ç>'#(!#-ɶI[.þÊÜʼ˜«ß¥¿TN®›–Ž‘¤¯¢ É¤¤½NA¾¬¡¨¥«¼æh# 4=7M+"5##+7YÖÖ:1E¤²M¸ÅoµÚUBÁ«³E¥¬]ú­²Ó¨©¬ôÚ¬K±½È²^$))'C;8O-,.&+- ,½©·8(;_êZÛ«Éש©×¬¯¼²{¤š—£½§ž¬®§¹²äÒÞt§ª½k¬È9%&60-¾F.(&GF7¿ÔZ*)Ư¸߻4´¸.Õ©ªJ럛œ¨¬¹Îj³Ò±®«±-´©²A,®Ï*&05s0/1âP5#,1+! (,¬Î7ÒÛ,ÕQ¼¯¥§í¶·ž¼´S±°b¾¶¤Ã·±ë¶´w)c·ÝJ>~/226 "7&/Õ5*$,.#&)®`:×˯ÓGÍP¿Êª¦ÃZÒŸ¯×¯¤ºÂÎÊ­œ•×¢¤G<­ž¬E),5-1!#E:8'*0%"2;DÚ7*?Þ[³ÊÊÝÃÆ<²º«Æ¬³Ã³¡°Z®¨¢Æ½´¤«½¥ªúº©¯ý[*=;-&"(,+>%2G,(9ÖM8**ËJO<ú¼­XPo¬³¼¨ ¨ž¢Ê[Á¨°±¨³ª´·¹§¡¤ªÊ´²l$$7.))'5%6L&$4L  T¼]0>ÊaÉ0'9¯«³Ê8«¦¥ñD²Íî9-Ä«­IÈ™—®¤žœ«Y"çQ#!9ÈX1+5'T¹·¸²AÏ»·¹¯®Æ¼ÊEw®¨¢¨®¶§ž¡±¹º¿ßæ[½Ÿ­¬§Ÿ©žŸ¨½®l3$&,'" .#''429Jf(\Å­L8zR3)1è½±«Å§£Ã_;äµÖ.9¹®ª+M£Ÿ¬ºž©KC5À\&1+'&*5H.D˽lÀÀ¯¤©ÉáÐ4H>½¬ £­­ªž½Ó6ÔÖ]×_ºÀ¼ž¤ÎŸ£ž¥Ã=+¯B C»5-)"À÷G×¹E8!"1,*''(LÙÐ5ñ®®£ªÊ¶©®à9Ì®¤­½µ¦¥u99ü¼9CMÂd/«¬¥¼Íµ»UË®c*7Úð#*/ÑÊOѽ·ªºy·›¡ª°°³¬ž¶»¯¯¬ÏY/.>^HJÆm0/9Lºª½ÃÏ ·O7>¶D8)'&)*$$'/>'4³©»®¥§œž­hºŸ»Í«¥ª¼¹º`,!MÂÊL0<±«¿EF°¼¨Ë."1·¾¹¶¤6 ?¨Ÿ,+Æ,Áè¿Ä,>’ •2±Yœ«!´F(œå.®ïŸ¨Ì8 ®>I|ß­½Ü6<¤5+J ºM(3eÝAÏ70³³¥ÃÕ¡Ï0< ®Ä/#%.[æŸššˆ””¤ž¤ŸÄ*' <Ãѹº»°®Ó>Úµ¼¡¥ ¿·Ö'")%4Ê®¨“‰‰‹Š‹Ž–‘ŒŽ“––’™ ±µRVúÈUk@m×_ê"$ $    &sÆSF˶¼o¶¤·¼¾®ž›´½©¤®®¤ŸŸ  ›”ŽŽŒ’Ž‘’‘’•—ž¥®ÐÃ@T©©ª²®¡§¢Ÿ¥¬©ª½C´«²ÅBÛZà)"",&!$("$!&!  ((9EI%-ËE7BA=Ý;WBº½.69EÍ¿¯·®²­Ÿ™˜—˜”“’‘•—•‘”›™’—™Ÿ¥£œ•”“˜Œ“•’“˜œ’—˜¦žš »»½ÐZRd9Ê;+9EJ.(+)(%  "! #(,&*1$#-4.#0MMд¯¦¦®Í®¢¢¢ž¢Ÿ›«§¢ª­ª­³¬œ £œ—œ˜˜’’“𢖖›–••—š——ž­±²¶¯ª¯ª¼hO·§¼ÅiåÊÀk4>#& ".iY<.);S>Rǹ>úkZ¾«¶]9@SεÐ{½Þ­¤¡¥¦œ¦Á¶¯«£¬ÈàÀ´ß´´8CJÐìÇÄÛ½©¬Ã­Ÿšœ§ÊnÂd·Í½Ê¶¡¬²¬ÄÉd.,*FÃ8A,&:3.!)/&+-("+!$&093^E)7+;Ù?ÍÏ´­¹¤¨¾Uêǵ®­°¨£££¤Ÿ š›¦žœ››¡¢µ½¥¨¤¢Ÿ©­¦ªŸŸ¡˜š›–Ž”˜œ¤®ªª¢£«¬Ÿ¡œ§³ËLßLÀ­ÂÅZ;F87K>M--^7@4+%# "#2èIY:),*-1;Kh6Æ]Å×2:12A;ÛMϺºÕsÔ½ÔÑìØÃÅÙ<0+%/34P=O?HOk>h\²¯«Ÿ™™ ¦Ä½¹³É®¬ª¸²«¦¶âic´Â¯µ¾TMVÀÏÉÉZϹÇ^75/+%'8D4)$"!,,83<^íÊY/,+33WÀÀÚ¿¼íD<:B5×Ôż¯¯­»Ç¼¶¹º¿²½¹¹ë7>-=19_gaëä×9CcmÖ®¦›Ÿœœ¥°²Ã­­¨­¼´¿¯³Ý><8/:]½<`p9C4K:DÖJK<ÅdM-/20//ClfJ;9%.$,<Õ²ºÁ®¬­µFJWÕ·¾¤°§¨¼ÆÔóÓï?VÇ·¸·±·ÃIR99¿ÍÚ?OJ/&!"(-&.|*-..40*-%%$!! %*!'0%%+,)*,J´ÊòÐÞ8/<>,e±ÜÇʯÎÎ˼¸µ¾f³³´¹ã̲¢«¯Ÿ ¢Ÿ›–“’”—˜š™¦Ÿœ—›¢Ÿœ£š˜•ž› ¸ÉÁ° ¾¶±¿x-=2=É>2/¾<$#'06#!)#*.%V/"&+*%7ß*!I;(*8Ü®¥Í6X´<15-K{@,TÄY%+F;ÉC(;øG'.ßÁR1X¾ãÜqp¯½ä#*¬³Í^ª—’žR,-ȶ³]P(#ïÞGÊsX$+ÈÈ>쯤¥±J-/8'ãA¿ž—‘Ž–¦®Ê~.=Ç¡–“ åɽÂK9=½œ¨²»¾©ª±/%9:JÁ°°ÅÅ]7G]$#)-¦™“¢7-!"*Äɤ•œ%,(+àPK7.¤˜œÑ(%,¥›Çø7?07P¸§¨¨)I¾|+%-#¨Œ’= ,›×6@Ä£å@6(!©Œ¥7¼šžž¦TЦŸ¥Ì£Ã®±¤°¶ê()¿œ©Á½´E K[© ¥­)=UL'ëÄ«w »=÷<9Ò §¹$+F»¯>q´À( *>¾™™ž¦›–ž¶=[Ÿ”›–˜ž«˜¡!4Ç¤š—”‘§#!š¦'5šŽ·+¶“Ÿ4+•ž/< ›²( 4H¬±AÙº³7&EŸ¨»;F«š« 19ì1FÜ¿¯ž¨e-2®¤Ì-$˧¹™–¢91Üœ¤­¶Ø."$Oŧ¡›«>ÄÀô_´”¨¿­¬h6¬¸E®¢¯5:¯n/GJ*(©­N+;ç«ÃEKP40½¼6"6¦¹) 0Í<ᬛ°'¨£§Ä%%:5%&­±f(<¬¥E#S®¼Ì½ËO-»«¡Ÿ­¢Í!,ÏÞÌž•”µ->¯›¥žž·Q>½—’Žœº´¯´»-4ôœ¯Z (¸ÙBK¿²ß+-'?»¦Ÿ¶0 #8ĺG.E4 % Éͪ§:%%Z£¬>+¸äv%+:%"4¸žœ®I5°¨©¨©¼ÂÈ?0]» ¿/4Ÿ–·)©œ©ß':­š¥>?¤˜œ®;À™@ %>Ì¥¡ž­(/µš˜§Ú& )É™™ŸÎD.,:γ`8($'%.)F~ʦž«q7.NȶÌ/I ¯,C¶­<)#0÷µ°A2¹«º7#O­›—®ÝNLKDB00DOÜ·w4'!1Æš”ž^"*¶§Ÿšž²ª³M-?®§ ©JN8/?û¯®³ü.({¹¼i57à¯<=^B' ,$*P¼º÷)7¯¥´Î©¦¿cļϮ½/0SÔ¤ª7+HÞ¯ž¦Ê+1ⶨžžŸ/(G»¨Í,0Ìêk0 ï­¾D¶‘ßB¸š’™› ¸B3AOù¦¤¬´±¨«¨0-赟°`EÛf8..=§ª&)?¾°,*À)¢>œ×¥8ƒ ¼)Ÿ?§˜ÆŽ— 3,¡T`ÆŽ‡Š£¨£«ªŸÖ,)ë) $2»°4'ÀÅ›’˜ž‰Š‰Œ Ÿ¬œºæÍ6$     &]ªš› ¬¨£˜–˜š•Ž‹‘¦§¥¼9%,2òµ¼¤·¤Ÿª1"*:8"  &'/­®¨œŒŽ“¥§›’˜¬­›–’š¡Ém ÄNȨ——º=×Ì­;&a¬¿3 $1,"ñ ”–˜“““›•••‘’Ÿ÷.%/%,' !-Oþë2#"#.Ú?:+.Ë£¦Ã02È™‘›œ›¦Ÿ–˜¡š˜œ““™½2à·¯¤±9'#"(7OJ@2*R¶˜‘™–™›—œ–œœž–—›¡ ³ûB&28ûí3&# +-/!5^ÒM£Ÿb:GºµO,F£™• ¶¦¾¡ŒŠ“Ÿžž¬¨ºF,"?ܼ2'5$).*9t;0-*1ϯ£¦V+`ìi2$/'2Á¬°¥±²7/½œ–˜žž”š—š²µ¤–¢ÈÏÇÐ) #,HÍ6ª«¤•¨¯©¥š®²ë+LÊ£Ÿ¯ªÂ8ìñÙž ¤¡¡›œ©E,Þ§ªš¨µ¼½6+/ÏÕ2?$>¼( 3%#./éSñ¬ÊÈÜ¯š¡—š¥š‘›ª¦³§©¬¦²a+!$%>ϟŵʹ²µ¬¦š–Ž«©¼7("("45%9²›¤©«£’—–™œšššœ£´w-+&Li/%+&#>L4/39×_*1&´ ž–ž«;d¿F»®ž­ž©¥©' $Î^>"#$K6zp©¥/ :ªžš›°·«Âåȼº¹³ “¬K*"5®»$! #*=Y¶«£¸Ø­œ†ŒŽœ¡Å ±´ ¥¢¸:¯´¥ñ>*!*!+È©¨­¡˜Ÿ`.-2²­ß.*"-$&.@:/ 2©ÊCC,=-º­´š—š˜­C½–™ŸJ),0fÏÙ¾/Eø. )(@ª ¦ššŒ’œ§ª˜‹‰Ž–¤¦û5Æ«Ä&-%Ì¿B ?¡©°47/5LM§©°µ¦¦¯Å:#'Ç®­FÑ(.i'NC40º±;)^Ÿ§²ÍAEHZL¶±¿±¢¥ªÝ$";£¦¹î4EÁîI[±.:¹IW- Ǧÿ&%<È%1Ÿ¨™—•˜•œ<¹©•Žšµô2..¿Á¸·T¦¥³%â¯Å81-+?-4%9·,3\»§ ¯ã\ØÂW£š­°–˜±H-&(Áª¥|'&# %)/J½@=4-4¡—œžÑ:[㥮Ÿ¨©£©˜¤/."&¿¦ÆD!"NL@J¹ÝF3.-ã­­©¨²7Ç££¢š¤¢šš—¦È9\ª¤²V+!(""?««²žž ª®œÆ¥˜šŽ•§Æ>·¯¸, .A¯¿?9 0+/::’•ˆŒ•š–Œ‘› ”š¡¨ëÛjÈW#¯žOR45¬¤«¬¸œ§¿4%# "#)ÉN)B3%+*!MãI[± F>°Ç³§â/;U¶­Snï)-$J^@ÁG+ܳN &$¶·6iç ¥Óº?2ÁMÅ­¸60µ/2¿¼­°ª³Ç»œ”Ÿ¯p5¢™©ÅÞ½¯¥·± XÆ¥˜“œµ6¯•”£H.#&.5).Øs×!/HÑÉà®Ë=Ó¢¡˜¦/8©›©/$-Åi·þgË,+-fÆ2-Ρ´/ g».*.:²¹5-§¢¡¯ÚºC¦›£ž¡£¦¢¯ÉÁ´™£¨Ì0"?»«f¸»è  ™¨ÈUÑ© ©326Y:0,/RD#+Aµ ŸW*Î`c­=JO_´½Æ1<Ä®£S(C¾½àÌÕ_äŵ3-ǯ ¿4) ANôÇYN51/-*',ΨŸ˜¥8(+Jžš¦¤ª£©¨œ½6Z¿§ž©3)¼žšš–¢© ¡§»Çx6ð°¶J($81$%!+&*>+64äHA.8>´©È¯®AY;.Â×NfL¶Õ.$,ίÁļ©Â@Õ4a¯½½µ¯¬)?F7+:--9,:­«Ý饤Ÿ¢>/ɦ–š™œ³ËG«Ÿ¤§iL­œ ²Å¨¥¢›¢£¯¼3'ö¡¶Y2 7M) '0(6\$,PÀ_'6ê¬ê-(/BǶªª«ï!J¿Â6#w[u2#.6×éΫû/&0¯¢œ³+<»ÎØ; *9Ê©¥º/+/Ù˜ªnâ·³Ÿ Ææ¹¬ ˜›©¾,&D§ž¥¢ª¥–“Ÿ®Úë·¢šœ¥¬8'A²¸I%6b)"+=EP#;Þº. bH;á46U³¾²¾'$̨°-%5ØÚü;'!3cµ—œº8+>­š®3$00à¬É<-(*µ¡¥Ê++,¦–¦¾­ºÏŸšœ ªä㣜¢Àÿ[°––š¦Ï· ›Ÿ¼*ì  ¨¼'*AÍT6&54: $LM-%0ÆI (GÜ®£¬-BÀ^''2L·¼8&»ž¨Å/+>§Ÿ¸M3(6©¢¼K/*;¯¬ÁX8ï§­¸\=9µ›››¿t³œ™œ©N.µ“’˜©±Ÿ›ž­pÑ´Ÿ™˜žÜ0((9Ô0;.86,HÄB#3;*/Éž­2,'!*ع\@ ,OÍ5! *20*0-">µ¦©á$ ?·®¶J0Ÿ¯©ž¤­()»–¥§)(N°˜ 1,®—“š,%$µ ¥¦´,A5+/Á¥Dù¦¦£%¿º–˜Ë¯A º‹…’À'J—¸¥¥Í.. ?š«-7/¸b­¹N$)-§›ŸÂ¸]¹³7“£³B$áµ¶´¦±ššžŸ¨É,5¯›Žš­L°“ަ½“‹Š—‰—•šª»4"!A.1=g½à) gËÈ» #·¬:' %Ã[Y¸«Ç2*+›½<(,5Ð*›¯?,¬¢Ð<œ”¢Ì#Dg´«¸EK¡™¢#½©ž—ž¥±±­»4ÚºžŽ”¤6<]NßÑ™›º¥™›«*+±«œšª´:Fš›®/%K['+X&.©ž &’™#)¶¯EZ›œ»9)! ººÏ¹¤œ­-Ë¡³Vಢ@£ŒŽ­&(°ž¯!ß™œR+$%C¹™–§£¡¯,.º«¹Q²Ž‰ž!*2÷žŸ««“°";¦Å-Ø©©¼¸; *ËN«’¥ %Ч?&X¨Ø }¬› ¸·J-~ú 6›‘¥º*A˜™É¹I"R°¶œš»´Ÿ¦*Fž™š™¨L.&.h³Ì·›Ž”*'¤“«œ•Ì -/~®ªŒ‹$¼–˜ñÖ§°!ÂÀ!-­­¸G*Xê"(5$#8[¿Á4(ån³¡²>\Q2%Ï«¼B*(0*b´³ª¥¦ÐLÁ­¶® ¤ÈI- 4ĺ¸ª¤œ§F;ʵÉKÉ«›žu'#9´³¦›œž¨ãRνA1Æ–‘–¡Ì4&;D¸«¾FÕ±D IÍK+.e×>3#;åàê',5.$ 15ZäI,$;Ù´¹Ü*%02//_Õ>OÑÛK__î303.#$5A>65?¾X0;J:&"&%,A»¯¸ÊC$)Iƨ¨·8-HI@@JÇ®ª§¸PdΦž—”˜¢²»ÞDHÆ´ª¤¬´C-'32M­œ˜žª|**9Ͷ¦ ÓK/^&­«2–›L5Œ‘Š–ª0½¡¢”§$¨QÁ•    *·ž¾«—ª¡£ –˜ª®Ñ(' %4¾¢Ÿ§­¤ž¬—’“Љ”‘°¬Ý¤£Á³±¿b= &41¼-  '·›”›œ¡ž¨®Ÿœ—Ÿ¥¤³Å¾ØFE599M-*Qö¾3! 0%&-À¿µ«ž—˜•˜šš’•–«º››“ŠŽ’’¨áÄ{KÏ®¯¯¥·¶ÈX6081E;/$;/*:C¸ÉÒ6,1r¯š“”•›““’‘Ž‘–«¸ºZÌ}>;g*$ ,~Æ»¯ð?.:C\>UÊBè<Ѳ­žœ›š•ž¨«±™–—”•“™žž´B:>1B-'#.=±—’—šž¢œž“’ŽŒ‘Ÿ¬¦¦œœ¦¤À2,   &.6' &*aO=TøÌÒ±§Ÿ¥ž¨£«_¡–š‘• ¡¨µÏ¶»¯\Â@-; %#(=.#30?=Ù°²´Ý?UE7̰¾¦ª¥«å¶ª¶¦Ÿ—Ÿ˜›££ ¤™™˜Ž’–˜›¤Û·¶c)'#  **-É9®°ÎÉ=ದ²°«±¬ÅɽQѲPõ°ÔE03Þ[­§£«¡§­´©§¡àͺÃ.$$)" 7/6±¼©œ§¥±œ•›’’˜ŽŽ‹’“•˜˜´¶®­÷<(%#"(%$#/@+ÄÉ¥±½Îij¢Ÿé᪹4'&%&)-m¯¿§¯³Ÿ°¡´½¤¨Ÿ¢°©½Ç¾=?G43:&$/"(-J5Y¬­¥ª¥”“”œ—‘œŸ®·Ã®­¤¥»ª«Ð6l>=+N®@½R"/#/+Lºy³ª¨¡ÉC¸³±ž¤­¦°g&%-)%-,/&$*!"".@¿Ã™ ¼£¯¤£œ¦˜œ›VÆBK?)).?(X,!#0;<°ÉMÉÅÂïý³¦–”ž ž¶§­®Ü·ÀF©@/)$,&;×ôùΩ¯¨«ª˜¤•–©©ª±¡¡  ¡Ÿ¢˜¤·b/00-6&   &;xª²§ÊȬ·¡­½¬™¡ž›Ÿž·¾¨­Ï·;"$,-#"$3yÃޱا —’™©¯¨œ§ÂÄ:VÛ°¤ÈÁƯç5­¦àö¬c¿ÇÇ@+QM½ª§£¦´ª¹Î¶¢¤ª±Å«È%#'83ûWÑ<923+** 2B(Ö°@¯N¬£®”«¬Ê¯×ƺHµäFÖð¯åÞ´º´@=- "!1¿º+)ÌÈ=Ë>°Ÿ ™«­´Æ³º¬¬°¡ Ÿ­§Ÿ¡—šš™— ²¼I8,.3'9.9ìG&,·Ò›½2ºHÆ·¥J£#©,œ-Ž(–*­ 2£ÓE9â(#¼P·.:³Ü¢Æ!2.s@.07 G4ËK²¥¼ 4Ƭ®¯Ÿ««œžœ §¹¥–““§­±¨šµ´*0.¼å'(    3¾œ›£ª±œ•‹Œ‹Œ‹‰‰‹ŽŒŠŠ‹‹‹‹ŒŒ‹ŒŠŠ‹”•™ž¢ª¤ÉàP2PQK3'   (-+( 8ÜÍè94,2>D*("!.8À´°¥¯ÚiG¯ ˜œ¤¡Ÿšž ¤ª¶µÔÉÆttF=>?í·ÇÌRa¿½Ø*%/θ½Ð0(('7]15&!"-3L<'$&$%*==''->51140,/Cidp[1#&=FS/(&)û²°Ôɳ¾¾Íʹ©¢¦¹Æ»«¤¨¨¨ª¥£šž•‹ŽŒŠ‰‰ŠŒ‘—‹‰†‹’—•”™ ŸšŸ¡­¾àa@81).1H/;V43%!"" %+%9.*!%-&*! )<:/,&7ˬ´í7/*ß«®ÃÉÀ{¼¿®²¬§¢§¨­³¦£œ£¤¡ž›¡©®£¦¥ª´¼ÚËOñѺ°·Ò9E0Kí­°ÆP=\¼³ÂØ)+,1(#%   #):/  /;+34A68e´µ¸¾»¼È©­ª«¬ª¨Ÿ¤«¯ª¥ Ÿ§«ª££ž¡žšš©§ª£ž˜š›Ÿª°¥›ž¨©«««¼»­¥´¿\ºÄÛS)2+;P0'$()-]Ô-# )-/,&+++" (7RG& !,-+'',-1-+./,,14,#-0.--KÅÛ.$&-ÝÏóGKпʴ­©£§¤«§ž ››—–––•Ž‘•“‘Ž“–“’—›œœ Ÿž ¥­­Ã»­­¨ºn97VjâACþO210,9?3'1& ("'-&#-)/*$*%%)0GhÍ¿;=7;C46?Ffå, (.<êÍQ1/.9H:^ÚPCØÄ¼´»¼¿º®¦¦¢§¨§¨Ÿ¢¡®¬¢ œ ¥·°¯ª§Ÿž  ª«±µ³±£ ¥£«­®«£«À®¨´±½µ²¸ÑCBMßa.26Q4/@/((+1CODâY/4*+J\<+#&--1><^P5R^¼²ÉkÑ´³¯··¶§¢ ®­¶¯§ ¥§©¬®¹lMÏ·±®¼ÍÒBL?Ïð?>7D5?<344(*/12,%&',5/!!-.* )-(#&&&659*#'48Cf_h¹À¼Ó?Pø»µÀÂÔ¿ËÞ¼ÉÁÀ¯ª¸N=AÑ·Í][Ò³¼¼ÇÎÏÍFM¿­®ÈçPLLü»ÙOÉ׺ÍY=QȪ¬ËK8Y̳®º­ª­¬¼·§¢Ÿžž©³©¥¥­¶²ªª©ÉU½¼¿`JáHÓÜNB=/0/#"!%$/K,''+.617îËÉÀ²£ ©¶Àª£§££¦ ¢ž¡¦¥£¨¢ ¨­ÏʹÁÙú47E/#%/9>;?z\¿²°®¥¤¦­·¯«£§©¦©¥§´ÕϹ´µÆÞJ:DKH\X.&$'3>0/VJOO>T|XD.6JP>00=@j=;U/5,-&" %&,&,-'.8Wá\HCOTë¹ðí¹²©§¶Ëo߸¼ºÔßÝé¿¿ÁÍmG485:*%"(**L:806æbÙÍ´¡ ž¦¶­¬¬¯²¯­²¶·ÃÇĸ«®£Ÿ©¬§ž£¨¢ ¢ž›š›­ÅĬž£ž§¬¨¨£ ¦£¨­¥¤§¯Á»©ž£§¦¬®¼vpʯ®Àç+*21608/.=ÌÆ]ÂǶ±ÂùFEÀƽ­³®»¿ÄóD46ö¿³ºVB9/)(7[Ü?$%"&,/6+4//OLj÷HHF*#&+/?:0%!"%+!+0* "+*--+/)+-;HضµÈÊÈqOʼäÑÉ´®½ú?y·¿ÝE0&+(+;H:'*%"#%)=K55;CŸ§¬¯Ào=.6@½µ«×F8*êFJ?/-/+*(+=4$)&//8M6-&.A?PN;-H³¼Û+.*,ßÍÞ99'%(>S1/&#$.AI.) /A.$&#.779OnMBÖÁ¹Í@3;ÛǽԷÂÐÚ<ð¹¥¥ºU<82fϲ¨ÜM.6?H×5007<ÕÏu|/0>Þ»h¿ÈTYIµµ¸»\JÅ«ž¦ÀÅgܰ¦™›§ºÎ²¦Ÿž£®®³­ œ›§¨ª±©®·Ì¾·´©©©¬·s½¤©¦º»²¾½¾µ¯«¨´Ï=ε®´­³K=;PÀº¼Q67<÷ÉÃÍÌÖHŸ§¼nI믩¯í8@Á⧬ÍI0/`¿·­Ð06$*?ÛH>49/+(!*/NÍr¼¿Q[MK?ÖzÄ¢˜žGù7Õ˵¡Åm9LëWìA>*-1M5")%æ½)n¾1,$0®J:-,2ÂÍ2)kT&B+&&$$-°3./*+%aH5ÃÃ<.?h~-#6³½¯¬5 )â×?+1*[ܽ>1¼ #'þ2ºŸªÓE»ÙžÃ8s-¿™›§£™“’™–¡¦p(*49"³¡”‰Œ“‘–– ·¼O/7ÄŸ‘—— Å>+(<6%#V-%:+¹˜–ž é?À5)  !+¡¯£˜«( ÜD$ $ E* )E¿³À¶Ÿš·I5T*)>À¬›¤ªº¡›“žœ±¬¢§§fW~ÉÆ|ÚIÈ?¿¹éĪ¢©µ© ¶¿›™ÊB>È¥¹ª¾65Ö¬N=ÀËúâG¼*怒Ö5­Ë «´AÍ ¡ºjé¸2$0+ 0,@䫞¥°Fî$;.#1£¯²£¢ª£¿D()- !-4ᘞ­ž¦¢¥Ð~a5~¶.#)ÓÏÆÐÅ®²–˜­µ © ÏG$&,&!.2¸´¦²§“’«£ž£§ÆF!,*"#W¹Í¯´ž˜˜•œ©¥¤½CF*&(@C17^¨¯º©©¨³ŸŸ¸72: /-$$&>ò®]̧«Ö! -0-$" ;#!).«º¿¼ÍEÇ©6$,¿Òß½¹A»£Ÿ £˜š £¦¯*01Y-)ñkVVDæ?½¦˜¤Ü×s­ÈéI.@Õ®ºS½¯©®²ª·¬µ£·6/8Ì*7*("\Ÿ«¾K¦œš’˜¢¦§³>0@>6&)&):Î_CS®ª¢ÊA. "&(+)0%;«®­²Ÿ¨µ·4!$*"$$,`Ÿ–™«¶ž¡£«¯È:YMäE[½²¹¹§¦Ÿ›œ¬½±¸I+J#'-S½$'Ƕ£”™¥¬œŸ®I»§Ä\N:3/;%# D¯±¬­²ì± ¤°@½²Æ=èªÝG2ɪ®¢œ©°Þ7.+IR*$,8("ÛÑ%(6B*,)*L8*+jã)'-@:˯Ä`)--$""4=6ÎÙ¿lZ×¾¯—™Ÿ¢Ÿ­8|®¦¼½±¾ÈÔã0%Õ¨ ¦¨¶9+*J,()CNT®·Î@D¶³®¤—“ŸµT8;,)<<>Êç9;;3>¹ –šžŸ§ºË°®æ¹¬«ìG%8LT-$R®¹¯ÈW-4ÚÃÍ3Ƕ´·®±Ò¨«¨¦£‘•Ÿ«²Äî¿ÛÖ{M°­P! &6Ìĺ³«·L7 1~ÔÄÆªµÚѵF/ʨ¡»ª º0)ìÛ@4Y¾Å¦¨¼FÀ£«­Ÿ™žŸ­M+J°·è¾­©Á,)*2ì·ºm.94$#!%'#(?7('IÓ7.(.#+($(Ùµ;&pKÜꪩ »K>ѵ­°«¯®¥¨»¼«¦ ¥¡¨³vq=ã>#,FIM¿7=Ï44³E¾¯¸¡Á.-ÒÍD*A¯¸ÀØ×Wû.ª²»¨¹­Ü8`r+/A3ÒËÍú§»;¼µ±º³µÆÉ¶ºi;R¾µ¦¦·çü¢¡µ¯¯±±¬­ÐÅ! 9!!2$'%.&=Nì³GJã7*)(T/#OÂV12<)QKC5f¯Ö¾òºh̬Ÿš“––•šš˜”––›™›™–¨Ÿ«”“›˜™ ­Ÿ›œŸœ ±¶§£«¬¤žžš¦©¬»±L­¾r`Ò¬A/(53.8I) '%'%"?=¸TFAJ4&'%áUL30E+:;ETMp(B¿\Z=?Mº¼ËÍñ­Ÿ¢¤¬¥Ÿ ª¢£Ÿžžž¤¤¦¦´G=;yNèPáË<@9³ÎШ¦ ´¹ÆA,LÕ2-.4LD-$/qF0sKÃ9!! ,+#'# "'''"1))#&&(3HB½¥Ÿ° ¡«¸¼¯Þ¸©ž–˜˜§±÷L85¹È¯«¨¬Í¾:Íá¾¢œ˜¡ª:-('-ÒBÖ¼¼¹4.#-Ṟ¦ª¿K%#5@Zà/¹»m4.Hj±ªŸ®ß6!*5S=ZS=,*ÐЪ¡œ¢K*!)¼®§©«¯ºÁU7^§›œ¤©p/ 7ꬰ®²KÓ7:M«œœ¦·7(5,;¿ÐK-##%B­Ï75*  +A-" "P®®e&&$G¯¯L@)$(/?¿¯í;-))"7·¯§Ãa.VÀ¯š–˜¨Çþ3&/Ö¨¥œ——›¨®¯Ÿ•Œ’œ­»Q/%,­©ªž–•ªÆÃ©›“–•™©Ø/'(Ü´ª›—ÊÛµ¬¦Ÿ™œŸªa+$(#/¿¦ž›£¬ÏAÇ­žž§¨¹_6+GÔ¼¹©¬7.8Ư¬«µÃ9%7¿³¿Ï:&N²°ÄÌG3 (F½Åê·½ØÅ¹’˜˜Ÿ½k88(+5ÚªŸ™ž¥£«©™–™°¤¸b,#&('4NÀ«±ÅMm»®¡§ÈNM<1%%J¶¬©§¸°Ï`׳±;1#)î¶å-40æl¸Ó."&)äÆè;@KY°ª©E "-HU;.>SÌ«¥¨¥›““– ®ðÀÊuÐÒ¾L¾°¡¢––––•˜–• ©ÇÊ@/)0½HP°¨¥£Ÿ¨Ÿœœ™™¡¿ç]I(%40`Ƭ¦ £ŸžŸžžžš¥¬2(.=¯µ­#2…¼›¦Êœ†‡ Ì#*®”Ë´‰½öœ˜Ž  N5<·œ“‘“Ž¥¿ ®1 2\Uɰ¼áÊ¡“˜”“™¡”Š‘•Š—™˜§˜Ÿ¡¦ª¬°Ô(   '@9Y1C]Æi5¾Ä²§£°¡ž¯©§™ž¯â^Ä3/"   $/+ .¾¨¦ —™•š•“–™—“•œ¢™ž«¨£¥¦ž¯¯¥¤žž­±ª¨°ÏUWÃ+&--ZOwK>?Í®° œ ¥——š˜œ–—˜› ›™”–”‘‘Ž‘’–—¦¡ ¯·0'(18AÂÈ«ª¢¡¤¤©´ÖäMäB4F\±ÄÑVÍ·¿ ¦µžœ¯ÀÁÆI16#!'4'6H<`烈›š–•Ž“Œ”˜˜”™ž¼·»ÚO0()1!$+%06<7=d0*?%+!$#0 -".Ù¾°º¬´©½®³½¥=ÖçµÁǩ󭯹@ÞÕÐQ(7$1#*&;66<(WÏ¿HÊI:M*º58±ªÅ»È­ž§˜œ—‘“”–•’—œ˜›§Ê´ÜØI42#& %)!!+4ÓuL¶Õº®Ì£¥£—Ÿš¤—›–£¡ º¥¦¼­š ®Ä´¨Y©°¦¨Ÿ©¦»±¬¥¾Ä¿Ô)-2&"-%*N?®§§˜‘˜ŒŒ¢ž§­¬3<$  !,8â³»ž ª —Ÿ¦·±«¢ŸíÃ¥µB-K*19/1;9*@0S58¶S½tIà0¼½½¹»½±»¬ºÐ­=3/(;* )5>-϶¥°°š¦£­Ÿ¤š ¦ŸXÂ/.+/  ' P2OMº©©¹˜š¬•¡ §¤·S&:/2$!#"-)#=G:¶À´­¨­¡«¤ª˜–µŸ¨ž¨£Ÿ¥—¨©­°ªË¼l¶]ä·bII7.[û1;8GXֹö¥Ÿ¢ªš¨£ œŸ«Äš©Û¾ØG.=,)%0/(V'E<«¼Ôš™•œ’—’Œ”Ž””›ž—§¢Å¾,.-+&,00KÍ·È­»¦ÑŸ½ËŸ¯±­¯[¸·Jg!m¸X:02+))2)#! +:.-1HÊM-å­¾¾¾¦ž­³­¹¬¾«¦Üù6@%+ËH(#.$)!'&#,-R:8Ç>>\»kÚ92L-2KV(3E;Ì754(!á$/kë!5$#>-Î::M1"ÐÐ:Æ>¥½Ä­2³È³«É¬­¸¿­8CÙãÃ3;'%++MG-":;.+8ßEEÂÃB¯¾Ÿ¤´ž¯¡ŸŸ•›–œ––š¹œ›«©¢ß¼®¬Ê2wHÂ727)1010D-068È¿Îü⢤žœ§Ÿ®¡¤¡£Ÿ¤Í­é>¾L&/84:j¬!),&&!C1F0)6.0ª OE«¢®®•¢£›ŸŸ³¥Ø¢ÍH(2g@ê2;(((,D*54,1(-m²ÖµÂbG<í9&c/®jLÂU<4-"9= (Fó¤ð´š–£—•’˜–™“™‘™ ¾274)ԶÛªŸœ§£©ž¡F.ºBÅ© œ°˜ª³?/ÌÂ<1>»½¹:¾§ž˜˜œ¬¼Î®Å±¤–’˜¤¸¼ÁÞ7&=Ò¼¸³ªª²½®¼=+LCö´¦§Éðý/*"!,)'2/?¬œ˜©¯­Ü]¥ Ÿœ›«]@V.#+3+H­¸ÂØÛÔF<:-*9UzH5 '4@=lÌ59Ä´´¹Æ¼F,))#3FÑ®®²³³¦¢©§¤š•™Ÿ¦¿4Û»ßPQ8Nº°¥¯°¤Ÿ¡«ªž¥Ÿœ©VH>;@@4*'.7;ëð´»²¹YÅÅ˳§«¨¬°]4>7;?=2lÔ°¸Ü¶³©²º¬®¢¦˜”©>=R-,5))$#"%",!));2^:2-!$!%-)(-<íÐaÉ»¼¶œ›¯­ËQ:.=JXJÊÁ»®«­·Ä½¥ª´šž –—¥³ZM=tÇ\IÓÕÊÆ:NJØI¾ª½ß²œ§¥ ž¸7P=Q*(³®öŸ3Æ )>§0 Çß %«%ªE`4¯£5Ù ['¤¬'2*"&6õ- !=-/#$N2®5•—Ÿ™˜‘“†ˆ‹ŒŽŽ—˜˜5Þ*Ù?>é   l»¡ÃƸ Œ‰ˆ‹‹‰‰ŠŒŽ”•Ÿ™——œªÕ̼¶¸ª¢§³ª°^CÃY¶@& +''+&+ðÁK("()$Nº¹¹·®³Ìó:»²ž ¥½@Ö´§§¨±³º¿ZË¥Ÿ—›ž²ó?aæ×ÙÑÍNT90)BÚIé210Æ£ž¡¶¸ÔÊ6))-ʾ®;(' .0* # 2*$$$##SÈÆ¸S8+&"&\®ªªê3.1,168GF±­—”“”š¢žš›‘ŽŽŒŽ‘”—š•˜’ŒŒŠˆˆˆ‹–˜š˜Ž‹‹’š™ ¢¥¯¯¢™œ—œ—˜Ÿ¤ÃY!'+05;¶Ðë<"!)868!    +*"%&;ç¾¾70&&$-gɨ›––’••˜™š£¦®Ÿš‘••š˜§©ÌþÁ©š““˜‘“‘˜ž¥¸¨¹°ª¦Ÿœ™­Ì#,/V:9/(#$#*&%() "1S9,79P+*""%=^°·Ö/"/ɯ°ªSWݲ¬ÆN4ò¼§¡š›™¢°8-.ÔŸ›š™–›™˜˜œ¥¤«¬»¨œ””›­¿6.+8˱¤˜Ÿ¬µ¦ ¤®MäLæÂÀª·¯»L!,SXì5'+)*(7&&$/@ã@= 7ÉJ0 !!%* %&6.4*(*C­¬ŸÏ;'+Y¬¢¬½É𬸥¬´¬¦¼1к¢ž¯ì%4?´ª¦ª¬À5òr´¬­³ÃÑ[·¢›œ¢¨¶L).|ž—•Ÿ±Ù0cP´°»¯Ã´DEǧ§õ7"()J½¶¤©²055V±¯§Ø¶ÕÀ ›“¡¯Êä(#-O¨©š¡¯»|ÑH¸«¥¨¨·J>k¥¡£ÀH()/ôa««¨¬íH,Kc³Ã·º5Óʬ¬°µè7)+%O¼¢¨²¼43*70FVÕÃQ8(ZÆ«­À8'-*Cu·¯­«¼D*5Ñ«¤Ÿ©±ª¬ ¨Ÿ¤²º930N°«´»JG#, )\Á»\<$14̵2#1(7VÅAG*)*¼(.º2[¸)9ÍRÅ  ª,m¬®£¸%$8-¬-§¹Õ¬7£¬Ã¼#Ï,--0ÕF94!= +%5&:TL=+±/1,¬«ž˜šœ›¨«¿¤¤žžœ–Ÿ•§–¼Ý;!)#8-3 $$&cçM*&.M£– ™™œ˜™šžš‹‰‰ˆ‡ˆ†…†‰Œ”———’‘œ³FK@нº³®£­¬»®¯¾/ !   0_Ü3'!%'»¨¢ —•‘Œ™©°Ÿ–‹ŒŒŽ‘—œ£šœ–’‘Ž“¬PNp½¤——œ¯G$ %+'!&'#    .2<~3#1}ÛêB&-»­ œ¦¶o/3.DÇ·¦£œ•ŒŽ“›ŸŸ“Œˆ‰ŠŒŒŽ‘”—‹‹Š‡……†‡‰Œ–œ“‹‹Œ›§ÀƯ®»¿»§¥¡£¤¤À;/NÎG5 !$+"  #$ +¯³¬ÎD"M°£¡£«®D=hC°··³¦™’—¢©ÀÈ­žœ—ŽŽ‘šžŸ©œ™™—–—Œ•¡´I1/̤œ—ª¸e3("'!#&$1`½].#%0/'/ (?@)#%̧ªÌÌ+%*-("&.S龩 šš£·ôNB^´ šš™Ÿª¸P55ç¹¾Üh³£™˜›¬Æ}60-Ò¶§¨®º97##'$! )*=FtĽe""Þû{Xéæ8'(9¹§§´nÜC02FA41>Åͯ­¦£¦³à¾Á±»Æ²«©µ®½;.*'&9LÜ;-Zº¯ÀWP?E)"<ï¾iH.*/-%#'0dº·ÊËI©±ÇÏШ¯«¬Ÿž©ÒßY±°£­®Ÿ¤š—šš¡£¦ £žœ™£­§´¬®ý>ۻ©¡¥¥¨®¤Ÿ¤¿º°ªŸ¥ª­ª¹Y71CÎM3:D³ª©³·±auÔǽ»üÂŰ¼T=27(!"1úºÂTæåÁÀÄÍD:Ö®±|YÙº¶ÍDH×7/I²­ÌXÎ*!N¨«VLrß[?>Ñ46(.2./Lû **.»",$;Ë1·TÄ6<.%IH¹.4/''-'-~À"-<§Ág»EZ6:2õp̰K<:74.)'-(08:>³ª®°©Ÿ¤ÃƯ¥£¦¥Àå´ªZN²ž ¨ž ™—• µSÓé0m¹°»®«i>8ÂÙ/E:O/ÈÏ«®¯¡œ˜šž­´T©¹Ë6aUBI$*$36,"/®·«±º9"  #-0À¹º­À§×,(96+A*+$.ýî= % +01èz¢©ÀÛ½¸Ê¯­¬±§ž©ºÛ¶¿e³®¸L¯œšž™“•›ž­»²®§EËF?¨±¯UÍGVÌÁª©›œ”«Á5¿`76³®®ž£•®àÁB;*0¡ ±¿;29$2>Ï:+#+.''>¡¬N$+)$-öqÞ;-94M+- 4|²½¢¢±ö*i=$+<1Uȶ¶½»«ËH°¶»°Ÿš‘“¼W9R6@­¥Ÿ¤£™žž®´H71mª¯ž“š­ÀK*09J9g¸õ;MÌÛH(,-)¼µª±Ÿ–½7/,#('/+8HÌUK_t="$+86M´³ë- !&,,/%NÊ8+KYÃÆž—Á3.4,)#";Í»ºTÌ?!/©«¥©“–žª®ª[Ü]íÔ¸¦¥©æÁª¶ZC:i¯ žœ”™ª¾®§­¬§¡ÎÇ­©¼©±«Û)++0=´©«£¢¬­°ª¹Á·Â²;þ\^ÏPd#%]v¬¦¤®ÁÂæ¹Ó@À¢¤ §£«´¥ ™£ºº¸«¡—””—  ¼¿ª¡£ž™˜¨¯®«»pÇ:9/LÖ7ß§ž¯·»L.4öÁ­¹¯¹711B[<&,K¿M:)./($#'(.% #Pn²ÀÄW)!Æ?¿ÈJ7Þ>R=çQ*)*1¹ª¢©×¿Ç¶LÆ»© ©Ÿ²¸¦ ¡½Þ]H#/?Ý«¦œ¸ÜZ¼®°š”“—œœ˜œ–’›¤º»³õSµ©§·Sä>DBnݼ¬°¹6ªÄÝ̹».5-"<ÀÍ\!G);+5.5½)8.;>-"4 5þ3+$O*1.Ié8I*K-ÊÆo_-?"1ñ\ç9Û2MCAJ·œªß9L²¬´¤°Ã´½»5?½¤§·¾LZ/çõž¯»8DߟŸ¢›Ÿ¯¨¬©–—Ÿ©£š ¯›¥¤·284±¯¢×cÅ<3F3;zÄÜ>Lêºà½`:(%0CS,+#% 7)/&4mð_aM-:*&*V]kTÃ.9.F-.<4Ã2±¯·EK°>E$!5]¶©Q¬µ»I@Ûd5G¬¯­¡¯d(º¬¦Ìg)ªÁ™¹»¾0Ñ ‘”%÷¹¾Ÿr©Z$,Ÿ:«—ªžÉ¿O!Ò6Þ¯0>´°Ÿª›KÁª'-,++!,H¹¾I- (.1',*#J»Ýßú`<6#*UR¿®§Ÿ™œ°Æ/6?>ÑÁ¢˜™ž©½À¹»³²® –ŽŽ”𢩭¨‘Œ‰ŒŒ‘˜”’‹‰ˆŠŠ‹—Ÿ¦«¯ª«¬ š «Á9$ /&(2Nò½A+      &"&,/&!,.¾Ä»½6-+5('&<Æ¢¤ž¥ §¯¾Ü༡œ˜—•™—§®«´§¦¢ ˜–“––›¨£»«²£¡›‘––¨­ºÜ=//&0-WßÐS8G-$.7;OB0#     /)'),C>S½gH,+.Ê£“–™œœœ«¤¥›››šœ”’Ž”•›¡•–ŒŒŒž¢¡¯ª¶¿Æ¯Ÿ¦œ¦ ²ÃCKºœž•–Ÿ¨Çj36+7LMÍM¾Õ²© ³ßè0³º¥ ›œ£õv(B=87(-)¿Þ½¾ÏÚ.E$&*¸¬£Ÿ¬À+/$(-+=0[.7ALºÑ¸0=#2¾¾žš¦¥¾O:+NJÆRÿBɬ·¯ÆÄO16>/ɬ ŸÆ3&##$'% "# "')   *>Eè:)+->1ZϽ«¾°Ò­·Èº½˜›–𙛥±·N¶°¢š¥ž¥šž¤ž£˜—˜“‘Ž‘“™ µ²ª¦§©§›œœ¢ ££Ÿ®ž­•—•žŸ¬¥µ041=÷¸RqIKLDÆßÚ1?cM·À±çËF&$$6/% $,#)@Rè@;,.))0W^ÖîF½»Ÿ©¯º©›“–”˜—™¡©Ó°´¦¤µ®©¡œ¬½¾´¦¯­´¢¥§¬¬³=N((+,%.é4>8N7"*!1E*4+K8>7+/,F9;8++3BD7! # "06C/%5àºÅO7E64'"&#=+.*,4,;J³ÉÆéF*1¯¼©Ö71"6,.+<;I´zéMÀ¨ª®¹¯È¨©¬³À±­Å=5$0FÀÈgDM¸Ê±²¦Ÿ«¥¸Ë±§¥ŸŸ³»Ì»ËF=;×¾««¬¶¯¢œœŸ«²¡©››¥¦±®¼?)*Aç»ÖEC>ȾºÀ¹®¬°é]\¼«§´C5-P9"+_;¾9-«··¶¤¢©ÚK™D¨¹˜.šÁžp-!ª+¬=±M©š¾š¹?¸º©É°·8O()* ;Ñ79!µ¾®­æ±Í¨Þ¢›´žË¡œ¢º¥“œ¡›œš œ¤œŸ–𳱝.ªÇF   " $!6üÍÔ¿·É¸±š˜™œœ¥ºÆÁŸ›¤¯½°ÂH·Ñ{2+*3ÚG²«¦¤ŸžÇ´ÌåÝ%)# !/-"$*%--*$&.AäIKÊÞÕvÄŸ™“’‹Ž”•“Ž—š“—‘ŽŽŽ‹‹‹‹‹Š‹Œ‘‘‘”œŸŸ©­²£ £¯ËªÅι± Ÿ¥ª¶²y2)%&#" !(',,     )5_29X:3$(-.7hÎÚÅP3<Æ»©ž”“‘‘Œ“•¢¤¦Ÿ™™‘’—šš™•—•’“ŽŽ‹•–¨«¨´¡œ›œ¢§ª±NÀ©›› žœœ Ÿ£¬<$)(')/.""&+%.ã¹¼ºòAJA:"#'%).[eÛ\<+.;/q»¦£¢ œ“—šª¹µ§ŸŸž—•°¬ªª­¯œœ•“™“—¯°¨¨®ËÆ5=aûX1/#!-+FH*GJu4Þ®¬¶CïH; 'F/1/&$1187`Ç×®·ª·±¯®¥¦¢­Ù?ÜÈ^ôØ¿ÅÞ?5À«¡«Ì­ª¦©©¨¡¬¯¶µ®´·Ä½5PLS°¬¯««¿­¦£¯Á¦œœš›¢­°«ª¼±°·ºª­¾©¦Ÿ®µË»°©§°¢©®µ¿D7.(*$$&-'0"&>vF.%#$$-$$%?Êt?=@BÝM»³ª¬µ¯|Ò6=S:89,3K.>:GPHHG]45@ҮŹs@')60*3&51196E(%)M1;ÏÇÕæ±Ís731'0+7*'*9ÕH>-2A]F0J½¦­±¶ÿ/-A=Q5.12C/=½µµYÍKTί¨µµ¥š´ËdáèFÙ<ÌøXìÛ®¬±¾®ªÊ¾ß¬¨žš¤¿À¨¯L§ßI7/®¯Õ¼Ÿ¡³Ü=ÅÈk´¡¨œª¨î¶:7*=ï¬\4¼¾®@ÒfJÑ<¸¯«³Ÿ©ÍÄÅKª-ITаˢ¹ À¬ª®¢·°–™•—•–šž¢¬¯¥ªŸ£³¤¨ž¤µ­LM):EâY>¼¾»-,(!,'//O)]@1=L³Õ«Nh>**$-YDg#@$8$!>lECÌMoOC4 "$¿×}¹]n7-&, $/@®Lƹ¾E&*'(9:O8#.2(!-QÓ÷íÄ./*64(áï=3ûF/.9G³¢©ž¢¥›¡¯á:6I1Mª´¦ž±ý²¸¯Xw¾ ž›™¡¡·®ß6!,dWµº¹½©¸¯¥ª«¨¨§•––˜Ÿ³ú¼/=pO±¤žž°¤°²ª¬rM­°Ÿ¤¬ªºÈÎØD'-ǰί«¡µÌ´®S/çꨦ©£š ¥¡ëW1bµ© ¥˜™™–§¯±©³·»°œš›žÎÏI12&)'ÎN©¬aZ39*,)$)gÉ68*B!'C.5¼¼i('"% )1 24c^C7# !%76-!  %)&:ÉÉ·Å}Ý60* +1<\?ÞÎO/).ö=ØÎ><ùYO.'-9^E9&#,*'(7D½§¹ÉOxGO>_/%.¸©©¶§¤¾OQÀã» ¥µ°³¬«·ÄÔºÂY¶»£¢¬§¹®ÛtÞ»h飤¦¨ª¼ÄɺÃ948± ¯¨© ¼»Ï@ÆÃ­Ã®±©¡ž©Ã¶ÉË´±ª¥¦§¤³Î?/-d?_¾´±«§½w<½Àùè=NÊ«¦±Y_Ï0('@4NÊÇ­G´°«É»«º¦¡Ÿ £¨£žž§Ïãèö°¨ÔM¼¿¨¬I@ßG¾ÀX;;¾°Ë><5++,G"".3>-M)0:2+37<@LQ;B>O0%&-RB?1QÑÄW9-'07×:2OHxÕç0,//,.4,--¶ñ.#)?C>310>/+)*.#.S))K»¶g7;Ö󩧸¸¬žª¦½´Ç¿«¼Â¶¨¾º¯°¹¸»¼Æ°¡­ªµµÐ®¥­®³Qb_Ѽγ¯¢¶9(u´´·²¸ª¿¯¬1¼±µ¿MN±¸ÇîºÄ˸Lǽ«¡¨«ÄÉÍ´­»ÓPÑW¯×ʵC7N¸ÃA<½«²Þ²©bT¿ÎÎôÐÀÌ<622Û¼Ëe¾­®¿´ž¢£ž¤­ª›¦º¥¯°¯¶Ê/ÐǸ£ªÃ17W¸¯ý©R9C,Y<>,0#*#$042W.-0#(/0)1)':6""#(+}D/"9­­³ÐÀì<1<ÃÇÚN±Û*$-* ;.OO̸®°²®ÚßãÙÕ<à·¸Û°Ú,&$7ãø?D>ù>¼<..%$(¹¬ÁÒ^É!5m¸¬´Ï®Oβ¯¤šžG<›‡ ³«Ž 9ƒ+Gž,±¬œ‘-­‹»™™œ — ^H˜¬¦•‹ŽŽ–”Š‹š«ŸÕ:&, H51."1*$    S³£ªŸ¢žž©©Òžœ›‘š¶TLÈ1!ÅSD¾»µ»¯©§K,05/>ÑB=:+,)/=&!($,Kp¹žœž³¼Äá²R¶¿¤š‘Ÿ££¡­{P#%$B400!(,:H¶ª¨Ÿ«ÁFȬ«­¥›šš›¥5S?üÌ´¦¤Ž›”•£¡Ÿ¨ªÌ¬­¨¤¬º43 #D(5& &*þ³º–”’šŸ•–‹‰‡’•®¸BK*0$!+-0)!B,¸ÏâÄ)+ +l¾ ™Ÿ™Ÿš—œŸ¨Ÿ”ŽŠ–žž©®×œ««¤¤¼hl+ &$'05,ÍÅūĮËBÆÑ...ú¬¬Ÿ¢¨ªŸ§±ªœ›“£¨Ê³Ã:',,=/ñ¶â¨¬f±® ÃMÇÒ©»«¾âH;2aÝ$¼¬­«»Ä`þ§ž±Õ¦¾¢¬¿³£¨¾ºN5;5.3 =$,V¥Ÿœž¢”—–Ž’ŽŽ‰‘—˜¦¢¡¹L, +G¬È­r±­›¨ ž –¢¤­¥•«£´¯Ê¥¸H«íÿÔb )8^:ð8,2*º½²®§ž®º®«¡•¨žÌ+O+=TV)*/.$;26¸¸³Ë¡›—’™”—Ž™”¡«žœ´ÊÈ$=-,!   ##&;6+ÚU@¸©» Ÿ¥Ïº>ä@;X."&2  ',+6Ý®j¨¨›´œ—¬¢®¢¨Íª¿¿¤:ÂLO(#- :1(#3(77(#)%BË´­5]Ê´´´;A±ª¼ª>°6<Ý$*:/,'# ,=2í* 9¥»§–›ž‘‘•““—”œ¢ŸšœŸ¡¼O((2 %-%<ËuE¶´œ¡µ£¡¢›“™œ›˜–¬¶ªK>L/82/Ó:)#74ZCS4Gª©˜¤®¥£©¬§ž­¥¯>ÉH»¢å*.*!!Âa)6IGÕm=&:?2ã´Á»­¶Ÿ®Ã¦ §¦±²™œœ””© ¦¼³ÎÊ=¯Ò:Ã&,4+&#10*_ñì+µ2 "~'.¿-.)'6-' $*%8=S¶.F)#.$,4.(B/*í7;\N /IìG3*)$ )5+ÙCµ§ÀºÉ±“š›”•œ¨«°º¶=·½`ô_3-*/!6LCe¸Ý¾¿²¬©¶º?=9¼ª¡¦ž¤·Ð¬¦´ž§«¯§À§²Ê»j '% .1>()$#.À27غ¹™—¨¸˜´²¨µŸ®°œœ§¦¬¸e­ÃD,KD,)#-&0,.)-k½¾¾ÃD½Ð®œ›š’‹“ŽŽœ™²»©ËªôÄ/0É/äX&)/-ÙL8F1, $HV&#B`'OµL*'$&H'"3!#$+.ì¼T®­g´±å4PÁ46=&åSÆ«t>iA¹¬¤™¬®®¢¢˜’¨®¦»2)'&1¿ÌÙÃ\Ì«ª–¦®¡®¤µ˜¢ ºGOÒÊ˯X=»¹¯·¼ÖJÈ`Db(3(Ñ7KÌ7´Ð§ž¤›®›–“›¦ ž¨Å·ÏMÂ,,,%(,.7+).)º»ìNë³·¸ª²[]TZÀº¶øF­¨¬ª¸›À»º¨¤®ª¦§¦»FïE¶ðAiÇÏd±C°ÂÍ·D§ÒËA*D3îÐA/+%->MËÜS§¢ž¦¤™¦™¡ª¢¬ž¤Å¨Ìh¬)7ÏI÷7à=<|ÂÉ@`Ü;-/U2$G>"$)?,).KIÚ;ª­Ý³ÕI@H`*:B( $'2+7YªÍûª«UÏ~DÉNÇ{993/!'6K04CW¹¨¤žœ¤³ªº­¸Ör1G2!9&IÆ5=á;Lº°›ž°¬Ö¶­Á­Öũϲ¦¡ž§¥£º´~T©³_LMÔ>>+*%&15?È®©Ö´©ž¨«£¸¬§··ž©·è*8c=?++0.ÃÚê§®høÂËθLͯV6=âËX8*)>VûUaϨ«®¥œ¬å{Öɯ¥°´¹±iêÌݲ^a¸©¥›©«¨´½ªN¸»CY<1A0*0##&1ÁªëÊz­§°¯¯±ËÁ«ž£¢§½#I¸ØAV@7Ùì;$#6I±a&)!##<7)¸À¦ ¯¯>䛦ž".9¢¸$' ,:+;2*bܯ°:×´´­J%WC®_>*!4-%^Ù8¾¤½W¹¬Ã²µ¸IFk2[)Ù9!)*2°ÌÉÁ¯¯¼´¯¥¸¤®®\°ÕÑA8>)Z[K-T)J®/0.3'!0*-/7Áa¿¨½°¯ÉÄÑC¯Ä\½µÌ²hÄ¥¬­Ê³¸¯Ë®Ä¶ÜsTA±¿Ížœš•‘™œŸ™˜™›ž§©©¼°³ÛRY>öôNÍXbI>vK>VIHhúmÀÉ605+."$<+6×à5¸²ùÇÅ?FÅ=­ÊK9*+6-1%"''-(0j1:Öº³¸¦Ü¾¥Ÿšž¦¦Â¸²é>'$-0'?w[ÐGJ·»G^i8:!,>!"!'(9S?KDM¹³¯Ã®«Ì¬¹«BC¾tß±£œ¨·§¨«Ô¬¡§Ÿ£¢¹§¿ûK10%/;ËD»¥µ¦¡­°»ª£œ ›™ªÅ»ãX1%*$$%=9]BLVÌH¬­¯§¦ž­œ¥¬ÕkH*! (56×Ô¼¢»¯¦ŸŸ›™š£¤¥¨ªªÏÞ¼±±¹¨¢¦°¦¢©¸¾½ººß¬µ¿e?U35MN/R=9×´®­¨^JÝ6IÙ°à^¹ÎJDBF+!*"&%N4"-O81-+2.ý»Ð¿¿ÌN@9R-#-*]',´Ï¼·­>eµ¾¨½Î¹ÒëM4$%*"!"'*'7D#%;̵ª©§¨ØUþîRD@>;@u+äÀ^<++/0B6_/;[> ,$&Q½Oê²·Þɪ³¯ ™œ­§ªÂ¶¸ÁÙøÃ¢£Àº¥¨ ¢¥­^Ü©®¦Á¢§´¹Ó9/8»¿ÄXÛ»º­£©­°¦žª³¥£¯¬ž¬®³¾w,*+67Cb53E<¶4'2 &6/8A:áÆA+45@8T@p÷ž¨ §© ª¯¨¨Ÿ–—˜ž©«ÜL9,MèÔC-t>êµÅC03Lµ­¨­¬£¤¬@4ëUÛD÷À¾«¨ºÞ4M¿×¶Ö?BÏ´M»4$0 '/HÆ=E16Ï\¸¦½]­º]L"/!(2#,DY/>¿\;¤žÂ´¥­¢¶Ÿ›ªº¥Ÿ«½°³FDßWØ¿§¡«¸°²¬»¶ªØÑžŸ¯¤«ÚÚ3D¹ÕS²«­¬®«¤«¬ŸµÝ¬µ§©«­Û¶;D%+7(%3. 0+,22+;.TÞMáQ¼G;N>®ÍÂÀp¨¦«§œ ¢©ª­©©¨¦´²µ¬´üÃ/8%-_alÙá¹Æ¾­±É²¼ÆQŬ¦¥§­½=:×ìn9Å´Ú¬ª»¿âÌ3?8-ÙhÚE9Y/-,"!%& 4@HFÉE¿<-¸Ã¿¡¨V,Žª´Ì Œ³… !¨ 4LÄ¿8–«&§œ'½Ô !.«o4Ý­”–—––˜›î°Ý' $.#È£˜¹ž››–” ‘™—«™œ×cÌ++) "+*1M\ºž™™‘“’—‘ŽŠ‹Ž’’Ÿ ¯Þ4  $50Ö¡«Ÿ›–Ž‘•‘–“š–”œ™ © ¸±¯Y¼¼½ÔUT1ÉÎß533,,/BÛÆ8¥©KËFkSvG6==Þ³»¼¯È©¶¯®¯³£—¤“š™ž«¸ªº¬·i7EQ*V $. ,..,@*ÄP1<81%%'&!'+ÈK6WÇO.«ªÏ¿ÃÜäĦŸ¬¦¶¼«¹ÄÈAÔ)/,$  (1GÇʹ¨—”–”˜••¤Ÿ›´­Ì©¾­¹Þ»@ȽզŸ—–™–’”ŒŽ““”—¤‘”Ÿž£®ÎìND! .,/#*G¸¥œ¥ ¡’˜¥–˜š™¢ŸŸ©›šš´ª«£¨¥¡¦¥°ß¸Ð{6)%:@¬§žž¶–’˜“–‘——˜¡¯­¬¤ºåG'7>'û30^S»D>¼Å²®ªÍñÛ¨H=18;'3 >D\Xó h·œžšž¥˜”Ÿ§®ºÅo¸B, /Vcp]ß:¢»¡¤µ¬ ¬l¹Þ®7'@@) <(163/*e->;\¨¨žœ©¨Ì ¦«¦²¢£Ã­µ¬ÆÅ­U@_2-¾Ì)@9R+-(/v88¬¶¤Ÿ¥›™”–•Ž‘–Š”’›¦K¹Ï,  /(>6ºžÀ»¢¶»œ©±œ¥¥ª©¢«»´¯½VCÆN¼°â¸JMÖÝFOoGI®­£Ìœ¤Î£Ç§©¢²™§ž¨¯ Ö¶.--2Qæ'(7<(,ÝÐ>ÈÒ¸¯Ÿ’š ££®¨¡´°¾¹,·30"'.$&-(e1('\ÊË«£¬¬£§Ÿšžœ™®° ¯¨«Ó<  +7ÆX¶¦žŸ”£žŸ¶Ÿšœ£«¯¶¯3>Ï*.3)"#($'/0@2%%.;Í»K6ÊK±« ¾®£¯ ¹›«´¸GÉ!8µC>.#1;=i7½NÔ«¬±¶¹©ž §¢¡¥¹®«¼¥˜Ÿ¯©Zئž¯°¢7²º6ß<.FO%& +"&&A ·!;*9k$ÅÀ7F)ÖÉ¿¯-cUB0K4¼_SÄ.*%MºT<ý·|·¬¥Æ@¦««£<³°KŸ¥®Ÿ¤¢¬¦¶š•š ±¥¯Ìž«ØØÍ.-?-2,'9&& O3LLa >$2§¯¡£±šQ5ËŸ«šÈ¥™š™$²/Ù½&I"'·Á@X K0˶7·8*4+½£¼Ù$5=Ý#)A3°à%¸+½¹GŦ¢©¾¼œ¢¥°ª£«ãª¢š£9¡¼®°l<ÉÇ?O! #$@­¤˜—š«—Ž•”—’’•ŒˆŒŠ‹‰†ˆ‰‰ŒŽ“Ÿ±À¯©Å¯ª´ÀD.ç®Î[>(''    *),&#%8=Kͬuʼµ¦¥©¼¿ž™™ŽŠ‹Ž‘Œ‹ŒŒŽ”“Ž °¸Ãl½Ë¶¯©ªŸ§ š ¤¬¶ž £©¨bE,'õPD3#+, ";7(# )"$ .4%"$#)0JÚí?½LŶ»õ.$0Tǯ®ÃQïË©œ•𦖓“•˜Ÿž–‰ŠŠŒ‹ŠŒ‹ˆ‹“Ž‘—›œ¤­o?G]L%#4+C*$%9+(+58OQF5r=,*.UºP=7;&,,4=EM@1Ç®¿³Ö¶ª¶Ìuª¸²³¨¨¬®¼ÝÍ«§¦¯¹¥®ÅK¶¯ú^UPÕ¿°ãO¹ÎÒDQÄÊe+C½YÏÄÞÔLÅ,-L36" $ %!&!"*,3&!'.-/*))*>*+'1),@42*%2(54.=>LþUºŸ ´­¤¡œ˜šš˜™˜šŸš¢³¬¨ œ£š˜˜——™Ž‘•”•Ž™’šž ¨¥£¥¸gÖI´¾¼¸Ó½ÐO¼­¥¼=;4Çì*3-&()2.""!-240+4(#,%'7*#&/WPì¼îÙNÌÊ͵Ë).É9?N8·h7OG¯º½U?§¦¯¢Ÿ±»¬©Ÿ¡®ÔÖ«ª£¤µ¤£­Å¹¨Ÿ¦³¶Î¦¥¥«¹ªßư³ž¦]I»µº±Ä¿´DÖ>B¶À°L-ëNéLGÑ,-/1Gl5# * &)0! /,-! )+)&qât¾·Ã`«£­®Ë±¥¬®§Ÿ¢³¨¦¦©§©½ª£¤§®ªª®´Ù«£½­¿m°±¥«Å¬¸¶¼´¥¦¬¾Íª¶±¦¬®º¼f=º¶£Çy³Tаº«½¹¸Ñ¶»¥Æ5M;XZ:b^}8/þãÆ¾2,)*,*GÓî;*).-.($'(%,45# /$##&(,$6($3F(0hæËÌÇŬ«±½¿Êªª¡¬¨À·±©¦¤¯à¾´°­ÝÁÆÍ¼¿Ø¹ÎÏÂβ¹¬¼^±]JÊð»ÜÌ´°¦µÁ­Åɯ°µ¯¢£«¨ª­¦¦§ž¬´©®¡¢³«_Hª×T9>O8YB\T%'&!&%&&'-$-*$'1?¨²®¸æHèQM¾]0Õ¬¨´¥£¬¬ ŸŸ¢©£¨¨ Ÿ–¡Ÿ–¡§®š—¢™›¡ Ÿœ¤²¹¯«®žš––¤—•©¨¤ÅòÉîy¯¦Ÿ´à²²°ÓNÁV;̯c<ÀB*+&",)D-%)D81)(,-"'4"'.?.$'03!$&!5#!$0:,Kç³°­®©¯­©¤¶Çp޿Ž©œ¦¨£ª»ªž¨ª¯«¨¿¬Ÿ¬µ¬§¢²®­­µ«¡°«¬¯·Â¿¹´ÐŸ°Y®É¾TéÀ@I>ËÀ9dNLJ0=h.,TM;NHpB;A6.850'"%5F7FE+ >Þ7;8^R#7<)).;."#!"","!9P9>36L8=»`9ÝÇ|:.ÊW?ÛWÉ@»¯²±ÛÝ»µÀ©²Ó°¬§´¬¨§­¯¨ÌÈɺª·¹Í¤¥»£¡±¦žŸ¡¦§´µÁ¹¼¾·®­ªÛȪ²ï»³18½·jOMTíÉB|IA6DW24PF@:Ú(%472%"))>1E>,*OD+).1""/-+("##"%%P¸VRÄÏ´½ËÉÙ¼ZyO-\´´ª×­å¯ª ¶¯»°¥¨ª¯­¬¢®¸´Ÿ¥­¯¼®§©¨¬«¨¢£ ¬°«§¤³¶¹þ¼öÌ0]¨ýÌo7¼¶µ¸½WûLîIE00+19?.38)*..ä.+2$+86("!**,>7$''*>'Aæ,*-*(HMP&!(,)1=,*-7ιǪèÛ½¸«­§²ÃMC«¤¢¨¨®µ¬²§¬¼¦žÁ®§¥¨ºÅ²¹²ª§¢««²®µ¬«ÈFʨ»¹¥®ª°¼´ÜNÑN;?h⯶õ¾¿JT©ÀÀ¿0[z×P÷<@F6B@âÃf2215EÕÝ>3$/-&B8""")*).)/*(')6D9$)**b+/*#+*).(O_ȶ¿²ØÀ¦¼Ä²=^½¯«½¨¦±¿®¯Ç½»»ª³¨¬¢¤±¡­»¥¦¨¹±³­¯§¹³¸¾­¹¶¦¬Ÿ­®¤§ßð¬¿ÄµØ»®¿Â¾Yõ¯ÃZÉ\ÍKϰPmº;FξѾXJüN,?Ö2+-/@(7*)+9.-?;1>$!4-'52.$-'+,%$'1($>56ÃI=J[ÎÎ×k¶QYÀؽ¸º««²£¬¹¦¤Â¬µ³¨£µ·ªÃ¿«­¬¶§­Àδ²¶¬ ¬¥­½ ¥­®°ÕÉËÕåmÅÎÄẲ·­®®§´Í­¥ÊÅ«Çê°¶¿Æq½³ÛW:]=AŸ¶(.EA%)>1(,NQ;6;3-;!.7¿Â;3RÚÂÅË@K=:º¼1>?È>2º­§¾Ã ¬¼¡¢žž¯ž­ ´¥»®£¤±XËB0,j.+-#$-#>µºÐ.bÉù¬Ÿª© Ÿ³«©š—›ž·±ªœ–¢¡à8K¶¯Ÿ™šŸ´_>_Ó¯¸¨ªÂM(/*,+50)# #=J¶¶½±9:N¼¥¦¡£®¾ª¨Ç±¨­³ª«¯¥¡¡¥Â±c˨­¢ ¢¬©¾AKÉEÙÁßÝ[@/&-?ßc.-$'# 0%"-5ÛÅGd2ýʹ®»¼­¬²¦×¿¤§©®¯ÏÍÁÅ«­ËÂX\ÀÓ¶¨Ÿ¢¦½?±÷íÞc]Kæ/6*07N:j4. )/) %$)&,EÈ­¶Ç5JSÅÜ«®ÛªÎ­ž¶¦Ÿ±²±¶ª½¢¡®½5´v³¼;Oн³¥½RÂ6;³]s»;O',9<>?;%"(<)(7Aؽ¼¹·¯Ä´³CÏÏ·«¬±Ó»­Ç¡ªKÅ`¦¡¨­·°·»¼Ú½°Ú®ÍOÆÑÍÂÌ.,>J÷o:8>0jÃM,)*2( & +IT²´éÕʸ° ¬^¼»°¦©«¬»¸²ÉÅ϶²±ÝH²´¾¸ÀdÊͺ¦¤½ÖÍNÊC;A.@>6*,@-F-!$0.2.%,.+30¿°Äʯ´®±ïȵ¸¬¤­º¥¥¥Ÿ·Á¶º¯«ªª´²JØuV»^®¦¸Äǰ¶¹j2XV;RÚ9730:'1.(#",).0d¯µ²ç°°¯µ¹³¼Êɽ¯¨²ª°ÀÔÕ¬»¨£ª°¼¸ÎÅÎFM²­Ç¾¿ÕF@D;@R7íͶ·¼±º¸Î²¦Ûª›·«¡ž£ª¹Ç¯«®Ÿ¨¥¿¹ÈL^ãd5¾¢Øf°ãXÌ;\B7þDI15@W>%$#-$,*"&)).ÇÙÈ»¦Ÿ¸ºÈkµ¾£¡¨¤¸«¢³¨®¯É²¥©££·¾ÎS1{ʳµ>ÿAìùBCH0%H1TÐY<88*(5/%5&&&!=""#]Ïϵ¬·¾·´¯¨¯½ž¢¤›ž§§¾²Þºª¦¼­»¿»Ñ¸F?|5ÄÍa¯²P<295Cà234-/ÙI/0$"*R&+;!"!%*2=0nȰ§ÆÄÈ>ʳ©›¨¨ž«¡£¨®®¯º«¨§£¢ª\Y2=¸ÝÇÖ4ÈLÌ¿L?/*5AN>L»^/<-%8&*)*92:'"#/IaÆÇÄ_ᵪO¬¦¶«¯¨¥¢¸¸¯©Ÿ¥¦­²³¸»É.\ü@ÖPWÉ>9A3)+/D\+.HYS>2' %09>JJ/,!%.#ñÌ3¿¥å½Ä9ýºK²¬²­WM¢«·-NÜ¿Gɸ®§´04-­£ÕÒæJ³[¸µž´&GÄЬ¨ ¿M¶Òu9ß§´)"»i@Ç62+%1+C:'/$'$$/."Ò*)F°£® ¤ž¡¯¯®¥¬¹Ã¹¤ªŸ§šš´°«™‘—š–•™‘•˜–š±º© }>«ª›¢¡¢£¨¯¸«™¦H6+?2+*GH=4('-)&'8?3-,)!"GÑ6&*$87*"OÒ<;)*ßÂ,) '.'+IF4.,ë×I¬Î·WM?½¥£¨ »Ç³Êßè®ïϹŸ™ž¬¦¤µ£Ÿ¡˜™¡ š–›žœžž©¦­º¶¸ü¾ù²£ªÏÇ¥œ¬ ¹¢´ÌDZÉÈBT?SÏD],H¼,*(\;<.*'-1k4/(%#:4!)*',&>+C½@@+?@>A4Ê<&7*+>:^' /-=%½©à~@̯´ûÈH<·¯Ã¼¦¤Óe×­À¼¨¼áiÑ¿­› Ÿ©V®Ÿª¬Ÿ ¥³¥™›©¢¨ª®ºõ±ÝJ3³³_MrÅØ´°·²µŸª¯;«¥ÁÒ6U=;Ã5>=0' 4\3/'/J$# *(#*"%.)$%-3  ?ÜRN.--@S:GÏñ,4.ȶ:8(,$C´KlØpK`»¨¬½YU·¯²µ¤°×ÆNÀª²ALÆ®²·¿´ÒÌ6Hª«¡¤V2ÜŹ·¢ŸÆÆH·£ž¡ºèŸ­¨°ž™·é³ ¥©§ ®¥£©­ßʲ¦§Â3IAUà5Zɺ`=¾©œ ¶R½Éÿ¹»®¼9942K4*((48(%$+!"-$#%&D75(())6&4;=**73­¸JK0MxÞ¿À½¬MHج³TÕ¾¶­²å²­ÚºX¶¥ž´º¾²¶°¥ª­ºÁ½¬›œ£«¹¤ŸÏ®©žžµ¨¢šš©¬¼´¸»»½Ô¹Æ,>½øÅÎJÚ»¾½²·l»EMÉ«£lM<È2*Ó>6F+%.=.1)&&/# "$$&%.1(6@/š› ŒÜ4×¾—Ž’‘‹˜®¢¹F/07#!&'%18AIÈ9*F­›¬Ÿ˜›«Ÿ¹£”ÊÃ$*B    )ÊDzžŸ›¤–••‹Š‰’“‘–›’š˜‘–’«¨´ÇËÄ8,ÎÊ·=:l60&53'7Ý~k§ŸŸ˜–ŽŽ“šœ¬ª§Ãʨ§»Î¡©HÀ¹`47 $+ëI*:²¾¤«­³¼²¨£Âºª­»oÎ64).-"%#4'3?ÅÈ]¹©¨»¯©¤¥ª¨³¡§˜Ÿ•——˜•’–Ÿ—›–••ŸÑ¯Á5""8#':C=Ô¨­² £™”—’’–’ž ª¾¨ºÉS(4""&L!&4?©¨¥©ªœ¨©œ˜˜—¤ŸŽ—Ÿ“™ž¥ ­Ë¶R;*817C"'<,8)D72=FË­´­¥²®·X°ª¦ÆŸš¬¥ •Ÿ¶Ÿª ¤šœª›š–¢©Ÿ§­žªÌ¸µ6&^G>&5. #-+.6<:3o¹»¶®Ÿ½IË¿ºKbÉ&-= ?í)3($)4¹ëΰ®S©³J¿¥ ÍÙjK:1#$-$+$0$>Ã·š¢›Œ‰ˆŒŠ‡‹Œ‰™–™¤£¶Ù4**$%+F{ÄXÇRËNN¸žŸ­¥«¬¯¡¦Ì ¡¬92V1¹;$ -%/kA(J*O/+Ë?BB&6,&#*(*)"#Fè?¼V¾£Ç£š•¢”––“–•—¥Þ¿¾Å+7D/(@ 20/1*°»«Ÿ›› ‘•š’‘˜“—˜œ–££®O³É94?Ä(1521A&3>8)ÎPâ5ç›®š¡ ¢¡³®©Ã¢.%#'5-.+&&6)"(>ÅBe²ÊƽJÃHÞP3=V, 0((&"($$,#LB94-¤µÒ™š›“”“Ž”™›—œ¥——–œ˜Å3T6/7"(!""HÍSUL®¬¥¦¡žž£¢›œ–˜›“𥬼¨L?6#;)"'"-9$<7>ûËÓ³H=ÅÛ3.¾®Ú¨¹©g+«ÄG6%`"%"-$& %+eL»¯«ÁAÍÊ­J½­º¥«¶¦«¹¡±³É«ª-«Í0<=;*)%Òź\¢°)®Ÿ¾›¬žÄ™ž¥žŸ–𤧝Ÿ žœî£Í4Í8`@ʰlH.#'&*/$$F1,@!·¨É«Ã²¨¨­®ª¿¹­ÆóA¥®;=ºõ$/ ""+5,K?3ðlÜ«¨™§¡–¬¸k· ¨ž«² >#!>¸GU;6+^IºP%#-ÁЩ­¨®žœ±¡›©JÍ¢”©¤™œË¯¿¬—ª£B;3/&?-$() +!,-a,/É·•˜™›–Ÿ¢M²®=J'<_嫤”¢³Ÿ©¥±¾°¦¬º ®¼ú"2%?²³“Š’9'(;%h\A¸$ ?!)3Fçd«´Èø7K')U»ÚMÚ»¨œ•› ˜”¯¦Ÿ¤›–Ÿ¬9-"9Y¬œ“œdË#"3"!, >J­ªÇ¯®¿ª­§­®¤ÎZ$6[(2.N¿¦œ¥žÅÕÎLâ/º­›¤®°»¿CÏ­¶©–¥´¬¾s(;('.)#.!*ýEúý*0êş¬¤›¨Ï)\Ò°­¦¹ ™˜–—žœ¨OFÝÄ¥¦»¶ÊNØ&"-%ôÅ<8):+., "-Ô.Óe$*0A¯©¤§U®¬¤ªœ Û¯?,»B¯Å½²»¬´š®¼¦o¶A9묡½¹ªÙ·«½®´ù¬°ÛÓ´¾U*1/+/C5>9¿?!(+FÓ@5)IÇಧ¶­í¸=+EJ§¨Î®®™¨¡™°®®ÑÅÍY¤­»¡¦Þ½¬«¸À¸Î½äeaD4$:1-*+%)/1&!M%ó_>Tw£›¤™©¿Þ|¾¾««®¾®«Ÿž¡¢Ç·œ®P/T¼·HÍW¯·,¾Fõ°oµÙBC+'2h*!,U¿+,70% 4:F<'C¶º½¼¦ž¶»»±ªÉ¦±¹ÆÔϲº£«¼¥¨ªj±·Ð·J®¿¯¬§±»³¢ ¶¨F*(%-/»<;¼:)%*3'"*5) *¿ºi]«¯»¯©¿¯¨ ¦°§®·­©¢ÇNµª¹ÑK½µ©¨o.üjåϺ¾Éª¡§V(12/1:&=^<'$%)2'>/ ,23((CÈæÁས³ÀÒ¬À¥¨§«É·´·©›·g®³¼Ñȶ ¢¿«ÀV°¾Æ¯Y¾¬µ§Ä=TE¾HU½3C/ "#!#('(&!&#0_>n®¤®¥»³¤±ª¥¯˜ž¤¦®¹¯²¬´ §©¬¾µµHUɼé³Qc¼ÊËU=@.(.?@öÝ¿A1#31,('$9@;'##D(sê§©³³­¬žž¦¶£›  ¯­®LŸ§ª¥«»´©¯ÌGÎþ^û-Ðѵ¬YN ,;1¾C,KÙN=-(,&+D 108%9Ö3#%:®µCLµ«º§¡¨—š©ªµ¾Áo¥¦¥©²¥¨¬¬Û­XHF?ULÁï¾¥ÂÁI.13HROÙ@W/#):?%,83 $'747ÕF>Ñ]íÍ¥³©§¥œ¡–žõ·Å®››ž­«¤±Ç³Ç³o0*0¾½m2-&%9n->\O³:!-936)'%+J)-¿P ¿–'¹m@¬& ¾ž.¹&“7‘ž"œ%Ÿ-¤8¾¨)¶§ÇªÍ¬@ªŸ:¼Ø'¯Í½á§œ')*Èï@¸É/#00=¾7O-´¨á9k®ŸŸËΫžžªºÀ«£É&, 6!$!-+#C?[¶¢¢ ¨±ž¦•—‘އ†ˆŠˆ„…ˆˆŠ‡…ˆ‰ŠŠˆŒŽ“œ™œß1*-2,(((%-/1/Ê(     #"$7=Ë¿³8R¶¬›¤­›»¸Ä­¬¶Î®µŸ˜•—’“ŽŽ“‘˜–“š•’’“•–™¢§¤É¥©»´=¼°µ¥¬­NGI@/AGê.;Ú'$ B)#"%.$#"&'$>?*.CɼÂ`5G¶ÑÊø¾Æ¦£¾¡’—ª™š‹“‘œš”™“œ¢œŸœž”‘—–’”Ž‹•¡Ÿ™–›ž¬¡Ÿž™¦¨³´ÁY2.->*'G(<ì×K !*(! !#0/&42@8=ÐKÛÉ×ÀAº­¤§«¶Nî·¦£°¶¶·ž¤Ÿœ ¢¬©¥¬®Ÿ•“œ —‘Ž˜¥§¶­­ÛYOÿ?ͯ¸±Â¬£¿SḨž¢RJܨ«ÝNDÚ­°âhĺ¾o#)2ti-%M¼¬ÒK/ð͸ºU+**_È)%Ì«¯>9L«¢¦3C×G-0:¾¸¸¯²¼§·¶¹ÁÓÅ»«µÅ¼©žŸ¨¿01@úÐL003G`ÏíL+"(4,(!,/#),GD""+/9Æï;çÒ£¡®¢°««³§°¡©§ À¿¢©¸±¾Êªª£¨ž–¢¡ž¡¸ÇÂËh󺥞¬º½æ¬ª§®,0Uɺ95;jø*/CL®è::2BAűº»>´¦ªÇóUC-3.&+L^"/,.#!#'"-8-!-3**-9Ǻ=.@pXó.,,;1'.äÆ¿Kʨ£´Æ³Ã¬®«œ“•š¡–˜šŸ¥¦£§Ÿ©«¨Ÿ °Å®¢¨± ¯¯¶¶½É°ÁèÀ·©ª^OìÆ·??ßú¾8<±¶Ü7/++68\»ÏD]f|KGXKN[5'@÷º0,8÷Ë=¸Ð«¼±¶¸©±rį§©°¾¸ª£™žœœŸ¦¨¶ª±ªšœ——–Ž“‘œ££°¬¶Uν¥¢¨§¶¶[ZG+' !'+;;LD,)889 !)/-)-0)*$% "'" /:?D.)# 1(),-/"&#'-9898.@8R¯³O:FÛÏÐYÂɸ¦¦¤›œ•—™™šŸš˜ ›˜’Ž‘”“š–’—œ›˜—˜›—šš—š¢¥ŸžœŸ¾¬³½¶²ÈÞ_ãdgC,""2'! &$"$#++'6<96/0;>[I2,K¾¸¯©ž˜Ÿ¨­­¥¡£¤™œ›˜‘šœœœŸ¢Ÿœ›œšŸªž™¦¬©¬¤´»ÞΨ«·»Ç±Éé@Í÷*/5J:@ICÆK1(%+."'-.! # ! $ /&0HõP(7ø¿^?H1í¿­ª¨ Ÿ§Ì®¦±£­«ª£šššš›Ÿ¢¥ª«³¦¦Ÿ¨°§¦«£©®°¥¥ª¬½³°¹«½¨³HSFL?;W+HA,,(1@3&!! &$!&.8fQ7;<>/B6/JááEZŶ¨¿Ý°«­ª§¡“”—’š––“’Ž’––’•›™—–˜›š£šž žŸ¡¬²Ô±ÁD¬ ª¨¶¥¨¬Ã5.Åþ:2%+4PH#@?8% #*-(+#)'..!  %(% '$$/10#$#+5.+7õ¼¾6PÁFO,,;,C5;^E»Þڽɰ­Îª¥®»©©«¦ž›——˜œ§¬¢§®²«©¦°¤ ¦®Ÿ©³¯±²±­§µÈ×µª¼¶»É­¹³¨¹¾±Ï3113?D1K<*+/<6,%)J6&) -EE.ßF &.-"-+(%&ÍÇMWk{JFNÛÉB]O0PÏR7Ò¿¸ÂÅ®¦½ÑC/8H6*-4RÇ77?KE38ù¾Óʯ¹¿º¬­Á°£§¤•𦫮¸¤©Ÿž,-Ÿ ­¬ª­°©¤®tZ­ÍZP[IuÅ´°¯·¥¨¨·ÂÖ.(,4>>ÙúEÖÚdò]Vo¶©²½9-V4\Â-1.$;X®µ¬CÒÛ²­´¹ËºÂž™œ—©ÐÇQÇ¡Ÿ£®À;*G'GÈ>GYíÈ·Xá/0+. Ù§›œ—™ž™žž˜ØÉÎæI=³¯§±±«ª¿é×J> "^·µÁS@Q½³­ª¹ºI*¯®ü '*D!'>ò¾8"P­šŽ–•¥¶,#С™– ™ ¥¨«¬( κ –ž¨ÂÄ*"+¯©¯®·ÀÑ=Gß++)=7¿ÎHÍAV+#+*=¸¯ž›˜¬Ã`*+)U¹ÇÉ·¤œžœ•š¢Â4%&9W컬  µG%!KÚZ­¬¨Ÿ¤‘•Ä+  &2ö®¦œ˜­¯É­±«¦ÂKÝ;=Ä¡˜œ¦¸50(>(+BØÂMg²´Í_2/>кÂÜ3&")Z¨¶¹¶Ë;27IÊEYT5J>įòHLsÅÊ¥°åËIÆ­®ž£Ÿ¦½,#I˱££ª£˜Ÿ¸<;+'(+3;婦¯Î "(Ý­žœš˜—Ÿd1('97S½ž“••ž¾Ö"#/ɳ§¦\°ª  ºÀB)"*GBRÛд¹ó¨¬·¿X5J?Þʯ²°Hh77?;ͬ¤°¿¶=1DH¼½BO%&#L©¯ž˜›µ­ºè>/"0˪Ÿ ž´g²¼jÿÖ²Î:6+8R¯¯DÑ3.4!%øH¯¦£œœ®¬°®¼H6(<5)ÆÌö¯¿ÌÀ@0#&5캶­õT)=¸·¶¨®°¼¸3&*ø¹KY02*!%.>[(L?½§”’šœ±ôïË^¾Ç¯d<3$)(.ÁÁž¦žš¥°¯êÔµ©º¾ ›ŸÇµ¶¡ªË?$&(1-!505¼«ÂÏ/& %.á´¡¨¼ÂÇ¡ ¥ ¶½J-&/)6ÐÌ®«¾B/K+%Aq¬ª­ ¯Ÿ­00(1Düf;?9!,'\k¼ÈÂö#&.6K@³©Í7))*C;0v/3¾Ç¥§ ­¸©«Ë®¾»ÆEƾ¢—›Ÿ±µ^Î=?º»K5/&#&3R©¡¬§µÇO&-'7­­¾«ëÁ¿O8$&$;+-" 0E½Ÿ˜™›¢²­ÁGËÍ›˜—¤­Ù@[±¸§®Z)'8亻´«£ª3((.TÄ´­¡¯¹?.7(N=7. +Þ·ª¥½M?4Ðɺ¤™‘‘››¨¤¥¥¤¢›¨º9$&(Æ««­ÀÒÕ8(!3¹¦œš› ².,-WãÅ­:6"/+<=.+&'"&''Ô¯š“•šŸ¥èÔ¹µž›œ¨»-2')²¦®³¼ÝÖ**8-¿¥­¤¦°ºâìV¯»­©âI "9i17ï@--!-å´±®¹ÌÅÌ­¤±»ž¦ÌÔ,å' “Ž‘Ë±·³3Å*¬¿ÀËG "V:µ«¡$¤8_º^ ÃµIÅ2LÅAª­®KTœ(13"" +)+©á®ÂVŸ°·©—’ŠŒŠˆ‰†‰˜”Ÿ–ͶÉÕ¢Ÿ˜´>$ '$6À@9*WÛ»]H01\0·Ÿ™’’ŒŒ‹Œ‹ŒŒ–š¡£Ä3424$%1?80;ºÚ;3!    !(.&..E}´§žš“œŸœ”“–ž¤³ª³£™”‘˜•‘Š”“ŒŠŠ‡ˆŠ‹ŒŒŠ‰Š›§¥®\Ó¯­­¬¥¢š– ¬Á¹¹¼¹²ª«à/=âTB.'% "7+*--!$  (#"9ɳ­µÊT·³±¨«©ÏH寞ž¤žž––’ŽŒ—Ž‹‹Ž‹‹Š†…‡Š‹Ž›™—–››š™–ŸºÒÞ³ª¬ÁÔÖ¾´´ žª«¶¸¼W)!4(    ,)(+5Ê¢²´«¯²¿DߺœŸ­¬§¢¦«Î´¬ª•–“‹‹ŽŠ‹Ž•šœ›—›Ÿž™‘•ž«±£¶Å®¿·³­«¢˜Ÿ½éþÇÎxÎÁ³Z,4I=,+%&*--2Y58>82&).P¨²]WQ½Ø5(0W<<ßj~@;0*@?1:L½;)"$iÍA\HÙÃ@, (?'(/Aª§¨Â'=9+*)95*.G«¦²F1*JzeRYO-(%;N3*%#!¾© §«Ÿ±Ù̧ ª·Ìͺ¸Yü§ ¦¢¢¥ª·°¢¢žŸ¡”’ ž›Ÿ Ÿ™š¦µ9-ELÍæ9G5,JL=FØÆ·¶»¸É\0Q­Ÿœµ@E*%-6-*!);G*'3DW¨¶8.(;»º°®¦¨¿7-43& /Ç´­ð?8(&+;Ùñ\º®¼\4ù»¯¯¸ÝÎ?)*9¸¥»Ä¿±¸K84NÊiWÓ«˜œœžž©µ«½>))<Ĭ²½±«­Þ(#$'Bà9G1.1-/9Óf+"$''*5Õ¿´Áݲý0,/I¶¬®Ü4/+$")9½¿F-"+50Dù¨«ªºDÓá̾˫£™›“”žª½¥£Ÿ¢¨ª¬»ÒS¾»¶`A¿¤¯Ä_;÷½¯²½©®¾No©¡¡ª¼¶Û/,;»­¬ÇC·¬ª¯ä_0,)/¹§¨»þ¾Ïæt3."   (1jjWCÃC,ö2;CÓº¤¡ž¦ªªŸžŸ§¡­ª¬¥™—–Ž“”––“•˜ Ÿ¸À©¤§¦¡žŸŸŸ¦¼»±éíÚgº½®¥©¯Ë««í¾ÂJ9)$!% -950!)3),  $$2<)35?E%%$<=Ä®²¼ªª¶;ÎÛ?31hή¤®£ªž•–š˜—™–“˜•‘ŒŽ‘«¦ž¦©››—™›¤¾Å½´³aNÓÁàW½ÈC¾¸=öI@7:;63) !(   !%$+-*GI?7D,$k¯µ©¨£¤¢Ÿ¤ª®¥ £²AD¸¦¤œ¨¼¯©±°¦­£ ¥ž¥¯­£—˜žš™—“žÛ@L@ðÓή§±¯³^M`ÌX?N÷;>â6'+DÂÐÅ61?%"+.(.;uƶ¶ÎêHî·¿nx¯© ±I͵¦°_M6,3Gƽ®¦ž¨ª­£«ª­×ìÂ¥ œžœœ¥¬®­¹B%*9À°¦¢µ³_r_++1Ö/(8K@FM¨¤žœ•‘™œ ž¡›žœšš¡¡Ÿ²«®´­àßÔ;/'0^M«Ÿ ¨lI¼OĶŸ™ž¤­ÏH<ÆqîÂÈM?AX7I/*",H=L-4 #())-#($!$+&"%,;/7fdSn¶¸¹Äéª{Ѩ¡¥§®¯µ½Æ¶±É¸´F]@¼§ž¡¦½CŽҬ§¥¬°µ¥ž¢Ÿ™œ¤¦¸ÄèVÍÕ08ʵŸ¢¡¦©¼kÃ44Ãý¬¨·Øs¿°¿Ï²½m>*5-'/[Ü9°±bäâϹ®µ¯°_â>VÎÌÂ=),,#':+&(#=")'9<>15æ¸p¶Û¼^#15'"ݨ«©®Ÿ®­¬©¡®BO°@6I-l{Ë£ÃÌÒ**"8MÀ®9³«í´ ²­¦§¢«­Ÿ§¨¬ª»\¨œ¥²¼@HY´±¯™­¢¢¨¦¡±³±·¸2¸«¤¨ž¤«°µ¶BF&  5¾ÆÈ¯B&& , "#5OÚ=ZBþs½ž •“”–™œ ªžŸÍ\ʶ¬°žžª©°¨­©œšž”’˜–•–™˜™œ¬¶Ý/67.,צ¢²Î?$$*/C¼Ÿ¢—• ¢³¶ÙÅÈýD,&"/V仿¨¹´p×®/$$$$***1$!%.)6,$6$5ËX.%#'R°°¬±Ø¹gâ»õsI+IK¿¢¢¡™œž £ºJj4+4M©Ÿ š“—›žš–”ŸŸ«DüȽµ¢¦®¤ª¨Å>E-0ù­ª°°«½?LD`M;4BGFÅ©¬œš›§¼A":µ››”“–³®¨=2'"-?@gYÏG #ü>:Æ:=++-1)"" -<˺´¤±ÆË=2*(-@±±™™›™Ÿ«ª¡§¬HG5*D¾¡›š—— Ÿ©g4"',h²Ÿ™œ¡©×[Ù¿ü07+?P®ª¢ž£«H&+(;®œ–”••›ž¦§Ê?8,&(9͹âÄ&.l®–™š™¢¦®¼lE9km;éϺ§¬«­µN=#"!%0É·²£¯¥¥½å?'+(%*5L=2áQ/3V¾¨²©µÈ¤°Ï_Q¿ÕÞ{Û®¢ž“•Ÿ©b6("<:1Þ²Ÿ–••›™¤§­¹®³´I:Ø6LA¸ž¢ž£Ñ:)½ª¯®­¼¼L)#"4@;g}²­šœ–˜¢¥©°B1 '?«—š‘––š¸T1(),í©®®ÀE+'$+4|LMÓ<$+2:¶¥•”³:.3GÈϲ­œ›š–ž¬§¡×ÎP<º¦®¸@GÊ¥–™œ¡ªÊSZEa@FÆžœ¥ ªÉ?!"0A*#/i¬ª»öS¬¦Ã¯UFÇŸ•’’””›®*#2Ƭ®È>4NС¦»X3)'8)03$"#0?`®«®ú5, -ºÆF.'0+-Dµ© £«¨¢›—š®â亿@/GÓ¬ž•š¯»Ù5pAä¶¿¯«šš›§»Õ?MpÎѸªË( /Éç6+(.JD2/#%$.­«¡ŸŸž¦c7_F/&#>»§ú/5'$?=5BH#!P¿¸¸¸´µ¯²mÂY6!*<(,+(23&Ô¬š–’’’އŒ˜’‘¢­¬¦®µ´¦®l?,  $0 #+,./åD0.Ī¢Ÿê®˜“’˜——¥«¤¢žš—Œ˜­ª¤´+*%+*!- =7"& !*"&$ (¿Ÿ™”Ž“œžµ±°®°§£˜—£•”’•¥ªª¢µM.%*?'/593%%+-*0:µ¼œžÕ¦ÎÎ,B.Lº@¶°§ž¬¬¦¢˜ z¯¬µ¸½£¥»£¢›—‘ °Ã̵·[=ñQk*E:6B$(ÙH¬¨ªœ —Ÿ§ž½>8+®§tÀÂÊÍ-1*),*$*×;|280»¹E½½œ™“’•˜©O´©¼B8{¾¦Ÿ¡žŸ°C*9ÍË»ÈM¾6R´»¦ºn,)91+")H(4¯®¨¡V.>.Y,#.B®µ£•›œ§¨ž§ ¸£”ž›˜Žš£¤Å³Ú"+#J:7ÀJs¢£ÈINÝ9½Ã¤§º[­0%Õ)-7-3/(,12*9F(OÙ289,=%'*.#$8M²ÄDn&F7=Äɬp-;ÍWCIpJ75i×Òº]®4O¥¤¨®±«ª£«Ÿœ–§Ì™–›˜›¯Á¬E 04,/ '(!+#&/¶×*Yµ´¨¢›š¤›³¯ž©£¬¯¨N®Ù^§L%'1zD78#0;\Y±<&7H·©·¹©¥¨¤¢¡¶È¸©®ÊêMÜ*"!$5%%  :+5=-×SÇA>ÄZÝ/Ø­ÊRKÀ·›—Ÿ•šš‘—Ÿ’‘¥–“¨¥º¯Ì[2 "HÓ¿Ì´¼Iµ«>¶¥ž—˜—™•œ’—©ÞV¤®¯¨¿ÈD?­¸À¾7C%"2$*%"-+$ B. %:è|(Ï<4a-+7'Ú²%9)!16>Ë,,U&')ýY¬;+Â9³¬Ç¡¬Â­¦¡¤—𣧣°šµ÷¿·¿²«ÕA.#$!È»¨¥®¥³«¢¥¬Ÿ²£ŸÙ°¨¤ ¤¦£¬©­¼å¶·692;Áº»·º·²ÖÏE8)6Z)4',05`=6gÛND1&,%&_4®E.9+(#$*.*%)&7&;3*L×JJÇÀ¹¨²¼Ë\×°¹¸ÀfÀ=¹¹¹¾« ¢¦µ¯¿­«Ê¢»ª žºÃ¾A42'',e³«¬­¦¡ª°°ª¯¡ÎÙ»Ú¹ž ¡º«¨»¥ž«¡­³­?´¿@ ­ÄÉãÊÎÕ;&1@UÀÀ8/C.,-+.'85, $@P2<59½ê5:ZÒnX7&) */#111÷beDí;2.0-0®ªåJ6ÓÞÕËP=Z±¯é´¡«¡š£©¦¨Ÿ¢¢¹º¥ºª±ÑD8À¶³È[¸½´ÀÀ±­©¬®«°¥¦Í¬ô'tÕÀ¤§¢ ¦¡¹ÙÆ:³¢¬º±¦¤³­¾_=Çü>};8.,?$!"SR(/ !-<)0:/+('23>m6`ó,íÁ:F;:1r58É<.7-î<à±*.=,má¿cÎ8;iÁﺽÐË­¼å¶©® ¥¡ž¢ž­Ëªçt¯«£Ÿž§ª¥·¸Hﺻˬ¡ª¨¼«ÀG­°¿º©®¼eºÊ²·® Ÿ¯®ÈBÜ<Âö,Ì`õWѾâyF !-.2/+'(();$!-#.<*-5*-FM)'D>882N1(67^ÅçY9*%-6%ER7)1FMèb8*(;3:L¬½±´®ª·Àí¿¬¤ž¡¡ ¢¨ž®¨¢ž¥·«§¥§§¢°Ï»°¾¨«ÉÎÍÁäô³ªªµ®§§·ó¿F1¾½ÓZ¸¶®¨¦ÀÂÕ:1G?Ë»ÃËÓ_;3uÔ;*0% ('&*!!0.=^/!'"#!$+>î`¿M6#3/+)Tõ)4QÞùzÚ)),0L×ßÅåBAÏ7C°²©«Ô?4OH^S3C7/0,sJ+ '&*-."+7)'/)45*>/-%-$1Î +,T;*ïr½»2µ<&¹šœK¢8#.4­¤¤­«­¦Ø:5*A6OÌ:Øž©®®ºE1Û¦Òµ¥ÑÁLÌ2B³»¬®Ä¾¢§Ý0Á»Îª©š¥ª Ù®¯¼­Ë¬ª¤¦ž–§”¤´¥°¼µ g¨:%" -;¼¡Ì?#0C'& (¼µ¦²Ñ+]ØÐ«Ë£ž©0*45L 2:79®š¬¬¡£’›«ËH 7·_œ”Š’•–—š˜‘Ž——’Ÿ¦¯Çõ½½¯ž«µ¤¸ÂL)*)ÍÅÙž’ŒŒ˜§·9$:5- 0_TªŸ£¬Ç¾·~ÝÞµ²ðkD+(%7+(Ĩ£œœŸŸª§œ¥¬ª»·¾­^#)<8iÝB¥˜›™‘’šš—¢±ù7;5BÈѺ°¥Ÿ¨®­¤·Âž¢Ÿ›¢©¿=.,1(-Súµª®­Ê5B5&':Y½§­è6%*" +#,+q/_º½¾a' )' %'SÆV7+5>IÈÏEKÌý¿§«©Ÿ¦­¤Ÿ¡£ ªÆâO´½¸½ÁÎ=F6'3¶®]YÍâßµÓ.+(+HMY¹§žš¢ºÛ²ª¨Ÿ¤­©ššŸž®<[9*E:ãɸ©º²ª®¨§«¬±»ö7' &'0QA¿<56-ÔË;–ž·_Œ¤ –Ó<‘Õ(µ®«‘M˜¬Xµ¦— û¹Ÿ½°–ŒŽŒ“Ž–ÀXË1,*- $Pа¡¢¡¥««›’š““›Ÿ¥‘’¦›¯™ •–˜˜™´;   "4೜—˜¢®·Ì¾Ö󫤠£™˜ž¬]¾6G8)!+ -G¯¦š‘’—ž¥ •Ž–Ÿ¤»ÖSL¹³{®¯¶¯­^õ²»µ¦¨›š–œ°ÊD-%*)67 )2#!""C­š–”Œ––˜œ£¦®¨§·©¾ñ,",6$2/,,(O¸ª¨ ²¨¬<9ACZ×N»ª¨™‘›˜–ž¨§˜•“•¤¬Û9.9  %+>ì®¤š™Ž‹ˆŒŒ“—œ›¦¯®›¥³Éæ²mäÄ-.ÙûC=G')/#7î[/"''&%*#>W³­êZ''$*GGœž–“”œœ®·´»Å¶µ¦Í%- "+?1M:$,.N¸¤œ›¡®¤¤¿×42¯ÃϦ¢¦š™—œ·««¥–’ž˜ —›­F;" cO3)4HPMk!8-- &fD8é)2@*±¾ª¤¯”˜Ž–™—••š¦œ›­»ä,!!!C.BZ@AN7!,N×,M+   &X÷°»Å ˜ž‘’’Ž—‘Ÿ›­¾¯N³¦¨¯»M2##,#/&!08ÉŸ¤–™œ Ÿ£›®¢–“ššž«­?+% "*X·¬¼®¨¹­¶²¹P£¬˜‘˜œ¦·¶KkÀ(:T->f''Y61,+&B½½Ä=®™Ÿ¥­°x§£š§¸®¶k-    (S°›™®¤–—Ž“—•”˜Ÿ¡Ê¿Hdò1$.A¸¨ñ,!+:.F-')˼Æ/­Î¼ž« Ÿ”•‹Ž—¤·Ÿœ–­:&"06*#!7Bw¤œŸ®¬ŸŸ˜—¥¨°©¾Î,9* 4-71)#!="O¬¬º£¢š’‘•“–šŸ¦º»P4/ '2:7,ÛEO°§¦ªŸ©žœž®±®ž®¡˜›šÀUâ' .Ï10س¯¢—–›Ÿ¦£§Ÿš–›¢¨¤¤Ïß-):¯¦¨œ]/5.++)61=ÑÆZ5"08N­›ªÊIA*AG?58/ýÍÁ, LçW¥µ?-(%5&YªQÇ$&2#¹¬¨Ÿ®©®´·NÚºØÔ®»©ÂÉ·6).¿ì¶¦´ÍD.$#;IůÁ­ÉÇȳ •Š•Š—š­ºªË♡;§–Ù×­1 &#él½ž8Ï ½¹¤<¯³J«Ÿ­¢BµÊ‹º§“,®_6E(Ͻ%=ó:7ϱ9¥©[+:#*-PH,Ì7'.YÓtVË.*(5°àĨ®¤¢Ðª¨±¦¦£¡‘‘—ǵ̤¹©¨%') 5/F¬«¡£ «¤›•Šˆ…‡Š‰‰‰‰ˆˆ‡‡‰Œ‹Œ‹–•˜žš“™™žªG2K»¢ÉÆÊ-)3&-))"(4,"  *3PT(!(1¾ª¶¼R3[íª©®­´Ë¨ššœŸÈNì½žšŸž¥·®œ–•”𠣩™”š˜™³:GÀ¯Ÿ«ÍU'+OKͼß.,+(4,"2(  #98(")&'5CÈÎ_;$(36Ei±»CÞ­®¶´ÁÝM¹¼¾¬¬¹<,6Ø»§ ¢¤¥¦«½¶²F35fî ¢¦¨À|½£—˜œ›š›™››œ¡£žš–Ÿ¨²B-8TÜ­ ¡¬®¬¦ÒØ¿Äg?>=Ze1$(8<@?,)"(, %,')%MLêv(*Nº§§¥©¯Ê¼¢¨°§¦¤¡¡ £­ÃG7E«£ ››œ¥¾É»½Â¯¶Ð±·ÁÊÝM51'?¾«ž§¹·É0)3A¶¸»³ÅÛà5&gÊpð,!(*'.]E,"*,% 27´œž¥Î72/8R­ª¯±Ùã°´¿0!8Πœ Ÿ±HS¿¯¢ª¨§½ËØÅ»O1 &⫚”•’œ¬¯¯¨›•—ž¡¤¨¬®®Í14;ÍŸ“”—š©ÃBC±›™¦º¾´¬ÀQ3) +°ž™–™¬?69ò«Ÿ›©2),3=2'R±¶0.@Jl(/Í­¡¡Ê( ;·¶®­J4=IHø9.L˵¤²4"(]°ª°B$$ /Á¥Ÿž«ä.-Ê«§Ø0+%#-.,,$0Fµ Ÿ¯Ê@.9Ö©› ÈF1'18-970;N¹ž—œŸ¥¢™™•• ®Ë<8_-*12c³­§¤«Íß ¢ž¦ÔN@-=<+,)-é­ž™ŸŸ£ªŸ—’’ ­º1/70/%(ÜŪŸ«­¬eAÙ«š˜œŸ¯='  !'<¶»­«¼ÃËȶ™”š¡®Åa-2=696/.Ë«­§ª²¯¸¯Ÿœ˜™Ÿ¯ßv=+&/Q@)*$$&,**,,,7ȼ½æ:0;A8622,#,2dqD2KQSv1( (0Á¥ž››•’™Ÿ¥ªª¢Ÿ¥¡  žŸ«ž¨¢£¤žš—šžŸŸ¦¦Ÿ›œž¡¦¢ °ÀºÖÊÄPʹ¶­£ œœžŸ›˜˜–——œ¡Ÿ§¬ªßM<2HË»® ž§©¨ª§§§ª¥£«¸ºÃK;9=G::;>fþÄ_tA*,2DË¿¹v]çX=7??;0=IÚõFÙÌÁµ¶ð^[:.10'%$(!& $%*4-/Hó@.2(!(-280.7L×FAç95:?1,7)' -+.CO[Î˺¼°¬²²¨ž¡²·G/," (IOĪŸ››š•–ž™›ª¬¾Ü«¥±¬ø95*+ÝN8c4-;ûè±»Òj,(4<(9:*3!#$88̾·¸³¶®«¬ž™›ž¤¦§³°´¹«¯¿«Ÿœ¢¢¤« §£¨ª¨¦¬«¡¥§¯º»½Åß¾®«­ª¥¥¢¢§¨›™š–›ž¤¦¨›œž¨²:Vʶ¨¦£­À:Ë´·Ÿ ©«¹rÏo»£²Ô>8*%+.21..$;ãQN.1:Ùºª´±¼>-6ˬ§½¾Ò1?ÜÇ®Äc-( ".(ÙÌÖ9"!!!!/:='$.J64..k@9+&'& \=0) )9¾UlÍJl.%;/É­¯¡¨½77ëÒ©»cÏ>'7KKο"&,fT, #2.mK/IJ>À¢©¡§°®¿»Â¨Ÿš’ž›©©©¢™—¤¥Ê­ª¥§¢§²b.HC³«¤Â­·Ï/,ÉÚð¼Ä¹»«§ž¡™’¬àQC>ÈŸ–žž­{Ξœ½¬­~ËÀ°˜™šž»*=¹Mª¦­Ä=--#0-*-S:,3:iÑjëj1*.C²Ÿ¯³D4-8¯Ã££±SL¾½¨¨¥¼K//-=ʹÍ>b$ #/,2#+ -,+Üg,0+.G/"&#*/./*(=VÓª½/0--%/m»´Í½Ï+&'%)­ªÖ×¹/-9¯’˜>(H!X±¨Ÿ0!9\,-«ªµIɹÏŲ¼ZGE_´Ï˜¦ÀC]¿(%^µ®£¦¿·¬°¸¯©£µqë´¼§°Ég§¹¨£¡¢£•›“’³®³ªJÎ9¸R©±º¢¡˜¢¤©Æ—¬´ºc(>& ( )µžœ¥¾  6®Å»°¦Ÿ™“—š¢µª¯´¨­á¼°7>?LÏ¿¬ŸŸ¥ ›’’“—¤²ž™›•š§M>5)'+4Ïÿ¾¸¬›“š–˜¬§ž®·­£º®?/($-ðÉÌÿ)0\dS¶·È/& &8[8G5ï⽜™žËG:O@5wM8-+/Ø­¬œ¦µ¾³³¢š•œ—š¶xN\Ϧ¨Æå034åaµÌÍÕàÖH´¦˜˜•ž£·Å­Â´¼¶d?0)N¿©ÊC.$()25.6481*C=)+#-LÁ¿OR.$>S^,'!M¸¾«¯Ç\r¢œš™¦´ÐBFܶÖ/  ,n¿Ì¨§ž¦¤´Ê±œ™ ¾E')@í;5,*,6˵»´§œœ¢¥¦§˜¬¥±½@i^GK2832.54g»¬ ¦ª©°·–“•ÝTÀ²¦½\YBKB8.71;|@77*'?]5?;&/& &,+'6:,8')7L.($,';b+->PÐÇ?=ù¹¤©Æí±ªŸ˜¨®Ì7Kwiʹi;ÉÔÙÎź¥®¬°®¤ £œœ¨ªÕݾÐ8;&*8T7B=0@¼¬›žª§«¥–—¥Ÿª¬¹A92%() #*7E@H+ %&.pñÝÞί¬¹¯ £¤—™š™¤iDY½·ë-0,(-.$$'1?H>V;?´¥¿Z/% "%$+Û-5ªlµ©Ÿ˜Ÿº<:ëF,=D&&!7Þ<7­ÌÀ¦Å·ºª™‘£“åXc$%5+!VE3¹E»ÈN®¥ ®¯Ÿ§›••¬¬ø+G@+*)<)<ú³@¯œ¯›œ–—–Ÿ›Ÿ«¥ªÈÏÖ½O´¶³ž±¡¤¸µ§º½ªd0$    -À´ÂL·-=­³¨µÉ%'# ".#((%*ºËÀ­MC,/  #(@>ÝǤ§–›’›ž¡£Ì¾²¶¿¨Ý¾O⨪¤¬Ÿ»¨£—’œ›¤¨EÛÍKº³µ½º]KHÙ¼ÌXÃã­¬¡¡Ÿ—¢®Ÿ ¬¬£¦£«© ›–žš›˜••Ÿ¡©ªÂ25&7,.%=:M¸§´ÂÅ>IÉ´¸æ\PV-9!!"*%2+9Ù=ϸ¢°ª¶° Ÿ˜£§­¥·¹¿:>$&*4EH:#?ÈÙÒËÜåǰ­µÉZ1 '.:YÌ.dÝı¹Ì=eKN;$ *-L_ÇF"/2DN!+/*6C)(+$ !'"%%!B;ü¹­¿Îm´Óö_»¹®§¾ÞÀݵ¯¸¨²X̲§œ™®´½©¨®À­¬Îµ©qÊÓ6=NÓ­®Ø¯¨¾§¡©«£¨©°­¦±µ¨£®·©½­ž£©­¯¡£˜“–žžœ™­¹Ó½³ÚÊÁF3Z@-9ÖHÀ>â¶ÃÁ̶[ºÙE[ĵ´¾5Ë?0bÉOÎQFͰ¨¤¬OwN]µ»¿sÃÛöÜ@K?2Ac:@>2Q±´¯¾ÆåOK9D'!'!5& /=~ÊR;D=^º6/.,/H/&''.&3*$#)::ÒÂi4.-)#(-+6%$"*3=*#53<1,ÞÍÙßËRáúº¿?:A<¯ª¾°¿¾¯¬´¨¨°ª¢»«¬êTÔ´¡ »´è?òÀ±ªÎ¶­º§§¹§œžœ§hE¬¡žœ®­¾jº­­ª£¼´ŸŸ¤¥³¯Ÿ¡—–¢ªºfç® ¨ÅÁªµ¶©´¨ ¯H9?Q´®«Ÿ®þI1Eµ¹¾ÛÒ¶¹á3KÈ¿¦«²«Ê7-2hÃÇSHE,*07Ĺ¿M.5JB3È®¹Å3"$1=B:9ÅÂ>("+4=5, )WG7:$!!%)95.((6%(?Ñ·ÀH("))2ÚK'*,!!%'0GÙT)-<Ý/!!*,9L;')-) &))æ½³¾M/*(G«¥«±³¯¬­¸Å̽®ÊLÜÙá´§¦¦³Ð84FÀ­°ª¤¥¤¨©¦§¥Ÿª²»ÖHÖÕÂU+*-+A¾®°U (—&²³ ž ¯„Ü4 /:«£#¯œ»« .Ž »E´,O·™¡–•¶4ë,#G¤±®¦¥´šŽ›“˜ œ˜¦»Z=  :)$Cϼ­¦¥¯¬¢™”‘‘—šš›—ŽŒ’Ž’“•ŒŽŽ™”•™£¤­Ó,* )>#!'@gE¾¡¦¥”މˆ”›£¤Ãè¸sæ»è¹óà³5.kM9Ì´IË­º½nº>.67MêX/*b/7ܨ¦¦œŸž¨¤§¼Ç¾ÖD\10%$"  (, #%$,+(-&*>»§Ÿ ¤›”ž ”˜ž™™›¢§£¬Á­½O."&*3Rpl¿¸ž”Š‹ŠŒ‹‹š›—¢š ©ªßÕÊ¿®›ž¨¨Ï-)<&==55-u_ë½°ÈÈÂÁ¾¿žž–ŽŽ˜¨²ºYj§¥Ÿ–¤™–“’•™¨¼¿­©ŸŸž¥N=*900>>>IVZ«¢¥¥ ·Ò?+<$*?(%8(Q:>ÁîQMJä¯±š––˜™¶D;%   &D<»ê·£½­àì^$.,.7(%&!#*"%Óõd¹´§u´ž¡¨£±8[0+:¬ÂUBA+&."&-%*,#CP2Û>NÀŧ¨–˜‘–ŽŽˆŠ‹Œ“—¦¥¦ª¼Û`4  ' 7Cήœš’—œ”–“‘’“”¡Ÿ«T03*/.)(5+%ïÙÍÍÑ¿J»æÎ «œ££˜™  ¯à,,=-<+FÎL1)") )!7¯·œž¢ž¡½§Ÿ°¤œ—œ›±¤ã&, ""'!$*&ϸ›–¦£œ¦¤Ÿ·¼É=/6.:ë:9<8%+82!_>õÆ©§©©—¨Ÿ¯ËÍ=vCZ5á.'N7LED#&-$[¹¾µ±¦›•’“œš­Õ¬¤²Æ©/@G,A+!''GBµ¨ –š˜¢ž”—‘ŒŽ‹Œ‹•—š¬©ª¤¯¾­®Úº¹cB)&L>H58D/­«Ÿ¦ ”˜•Ž’“§DA0#..$4):=N8Z>+21È̬⮟¡Ÿ•š ®¹=*ÆõÐN>Ê049L+#*'¼¼ÏÉ7)'%l¿nZª¨¸®º³Ä-50,7e+-OÉK¹¯,Ã(&)$(Í5$¨¥¤œ¦™§ÀN%0·úØÛ¤º«³ÕY&#&ÒF+G«¦¬§˜›¸f')ì«Æ±©«¢¡£¬±Æ¶Ð.± ËР¡š’–ž¸ðC 8µÂͱ¬®Ÿ·µ¸ó¾Ì/p­¯¨¯š‘—ŽŒœÏÇßUyÍ£¿²Ÿ­7&&*#0¿Ÿ¤¶X&(08¹¨£ž›¯¯´½¸DIG(øÕÉ.Ю¾±¢¼8#&6"!<95Í-  7,3ž Ÿ™©Ÿ¨æÎÎ50¢©Ì* '²™’—œžž•œ®žŸ˜›ž—›œš­Ç/¿¯D:<³«À˜—¸¿»¦¸¾»Ý¹¶°Ñ$À«ÇóÍè;F.!AÕN93çÀ§–‘ ž˜ªÑ1+5!+'.%!?2Ñ©_J02#%9°–±«õ$4@=OL¥¢Æ¾Ë«¤š““Ÿ¡Û*'jœœ¨·>;>Ù¯ò;H&(K½ž–•”ª§7*,èž”“ ¬Æ,"Û8 -¾¡™˜ž®¹.,*WJ°°®Ó.,+"#'!Àª™¦²>/ì±§¨È/3  2½Ÿ’ŒŽ”Åß±¼¶ŸŸ—š˜™¸äG# *h¥œ‘›©¯K0/;1Q¯­–—˜§5"-³¶¯¶Î>Ö¾¶7ú±«š™—®H  ;eêK'.3&1( #[®Ÿ§®> $&E°§ªŸ¡Ÿ¥£˜›Ÿž¡›’Ž­¾%(8?XØÆ¯·°œ©º¬­³ª¤——“›¯N8>D//;5×ÍÃÄOVpRIU*!$BÆ«§³»Ô5.,5.'1-+_,+*%0J/":ì­¾\;(1:9O*-?=EÔVXVÚÀ6+70'0ͦ¦žš¢§¥ ¦¦¨¸ÅNá­ºÔ[L;HÁ6(7;¾¤Ÿš›ª«§œ›¥¡±¹¾½¿±ª°êU×ÜË¿C-2H²·Ò>#9,,% $0EL0>Ð;:äÏò½Z[è³­»0%%%:[+#,J/()&8SHÍn5W¼ª¶ºC!#":¸¼¸À>ᨡ¡ž¦­ªŸœ ¢¨¯³¥™¦×-)MÞ¿îF4<Ñ®¦§°¶°«¤ ¬¬Ÿœ –•ž°0!';¿Ð)!144(# !+-,4Iܲ ©¼J&% #?A=.#6BÞ<,,+/+0.-NÇ­Ÿ£Ê/9GO<,$*5Ê®¿¾j?Rؼ­¦§ž›š“—©È>1i«­B(-9Ä©©k8<âX׿­¥š”’š ­>8¾°¨¨½Xz°§±ÇM!)-*07Eµ½¸I#..*!);ÆÁÆ5*0,*.BQ¿­¨Ÿž¨m/-4*0B¾´ÀL)").0,*Æ«£›œ›ªº4 6®¢®´ª ›žª¶Þ;./.É»º¤™•š¥¾?40C̱¡¤§¡ ›¥°¿[]G<믧¨¥©©Q ))6BC5*.F´¤œ º½;)E¹¯ÃQ»±­¸7&,̶¢£§µC "*>Ö½¥¬²¸¥¤Ï>´U<|1•Œ‹¾—¨Æ?:*X ½(Š$µ–%À« --¬H–Ìšœßžî&$<$¶¤º›Ÿ¬§Ë;( ,(V¡®©­·ÅA/"&j: ¡¡¨ ž³,2,2½£œš“’¢›¸)))ÉÅѺHF   -Æ™”“–“™››—‹ˆ‰†‡‡ˆ“žºÊçЬœ“‹Œ”˜ ¨¦œ—œ–™˜˜¥¿7)'Kk51( ))%7µ§ ž¦²®µ÷{¾®™’Œˆ†‡‰‰’šŸ¦¢ž”Œ‰Œ”šª²³Å¿¦˜ŒŽ“œ­ó0& ")>кÊ;# $2=, "'#  )?Z4$$I·ÂL) 9¼¢š™ °M.**)!!/È¥œ£±ÆfDMMý»¯Ÿ“ŒŽ‘˜›š›œœš”‰‡…†‰’”–—”ŽŒŽŽ•ŸªµÃÍG>I°™’•ª½D0+)&1HÛ®­Y'.5 #"%(.Ȭ´¹¯¿S@Z¾³³ªž™”–ž«¬­¯ÇKYÚ½¦˜“‘‘œ©©£¤§© ™˜•”—œ ªÅÌÏM+*TÆ»´Î77.$ ->H⸨©°Ñ9++-!#%)?T5-*-JóE=+"  (<̵»Ã¿ÜG:22IÙËÀ­¬¾Q./.,+" -QŲ¯®¬±k<2/\¼µ§š¥ª¦¦¨®¸Ã­§¤›–””–šž§·Óȶ© £¨¬·ÔD9GL<42@Ç«¬¶®®¿O' )/5==Q@+$ %.-#"!1UÐÃÒÔÂÀÄ×G>H[À©Ÿ›””—™™««¥š•““•••™œž ®¼Å¬ž››š›š— ¹ÉÆÃ³««©­³¼É¾Ë3%$.FF.--&%(96319FC<*!!-@C46@7, %+%&+.176:/- %06êн¶×JHJ.+)*OÉA.0V×?'! ":bIOANÆÉ<6G>Ec;1746$,A¯¬»´I0.*+IøÔ¡ª·œ´Ÿ©«¨Ÿ+#-²ªQ‹2ŒªŸ¶¾­šC¯¨ é˜¶§^¦W0,Ó¬˜¡š¯Õp*UG¤Ků³Ãü¼»ÍE5ày¶¤’ŽŽ•¦±¤œ’””™‘‘­³=-/;¦Ü«¿+"   9ß\°µÑVÖÙ7¾™•‘“ŽŽ˜š¡°«›™”‘”™ž°û02Ã¥£›ÁY8513 ))   $   8JM¾á@:+*)@½¥žœœ ¦›–˜˜™œ ™‘Ї†…‡‡‡‡”’‰†„†‹“‘“””ŸÁ¬•‘’”–£ÂW5-Y« ©Ç9)#'0+ '"! $,+-#+IÒ¶¬ºt7( -D¶­¼G.=yb5!-I°¤ª­­®·K)!)F«™˜›¡¯®§ž›¦ÂC<¾ ––—‘•–œ ¢§¢›”Œ‘››œž§¾G++/]½¯ª¨¸ÃH',?͹×>,.**+ "#"!    "#&'##!!4V²¥žœ¤¦¡™››¦© š“ŽŒ‘–œŸ£¡œ˜ŽŽŽ’—œŸœ˜“‘’’•—–¨±Ã¶¯¦¢£§ÂpIcºá,#$/X¼¹¶ÁþA0/.""'.WfÕ]E<:O668(')9;µ¯¸ËG:/.?>?P]ÆÉgßTL7.)!+/:SVË¿Ã×O2*&$(;_WfB;5.//)%" $7˾³¶¼¹ËgD50-/:fÁçG/&%#,BGN<.,(++'-0>Ò»À_=-%!"$")08;0*!%-CJuÛPE@:9*,8H¿°¥ ž™˜—–˜™Ÿ˜”Ž‹Œ’”—˜šœ£«£—••“––—›œžŸ¤¨—–”™¨²®½Éßp}>O×Ä··ÅH78)$'+97<ßVIG7/%$$#**566eØÁ¹Å\@735E˰§¶Ï|NÓQ7.%*-07CÝRA>8?;+##2?|R>/ !"& %).1;;))& # !&.ÏÂÓQJ7/6%%##'3651).-)(!#5TÅÆMF@HOWÒËÖ¼»¬¢œ—œ ª®¶¬¤¢œžžŸœ¤´´ÈÈÀ´¨¬¨¤¥¢¦Ÿ¥¿ÄG?HŨ©ª±]E;I{-+**18ϼ¹´ÎÌÚdÚ31GN¾°¥¢¬³kBJv·ÅSîÌ­¡œ˜œž¤±»Ë¹³»­¤¤¢ª¬¸kK2816D:=bð¼Ðê]3+ 2776(!'GY¿*,Óà@))O¤¨­½.4HNß&$+/M·¼½­F2l>03*E´¬¥ªÉ403,Iî5,(\¶©´ÀÊÖйX504¾·£žª}C]¶¬¬ç?bP¯Ÿ ™™˜ž¡¬°½m9ݰ¦¤­¹lp¾»µÎÆoB·Ÿ›—’ŒŒ™«Ï9à³ÈR4//  "6Óm2*!#'=Ê»°­§¢§¦¥Ÿœž¦°9 $+9;+(1L½ËnHt°°²ÉkMË­Ÿ¡¨ÁpÔª¬««ª¤³ÀÊMX[`dÌ®ª®¯¯™—™¦·ÈDz¦Ÿž•“«ÁÊÇV(!)$ .0I<+(.®¬§ª¹§¥¡£±çΦœ›³?:69/#Sµ¬®¨¨®ªª¹ºBOõ¼¤¡¤ÅíÚMïèI-*쾩¨­ÁµŸ›Ÿ¯¹°½¦—™¢ª©®¶¼ê>3ÖžšŸ™˜šž«ÄG.,&.&!(%"DÕ<>96?>$3½¥¥Ÿ›¨§Ÿ¨ºÆaO]л«¶Ç©¾=>0-%"0¾¢šŸÔÓo92)%($'.CLë·[Ë_., $C³©¢˜–—žª¶³Ê¹º¼²¦Ÿ¡£¦ª®¸À´ÈΫž’‘–¡ÌF/&$(+ >µ¿½Ý;,,RMD:<Û¬Ÿžž ¡ž°^X2G¼Ÿ˜œ§¼çT0A4)5Cçðí¯¢£¬¶ä-( %7¸¦­ÉM.'+>KÓyT¸£ž™™—•™§­·Òª›••œ¢±¼½Åι¯·®«·½¬®º_,'7( %-RæSÏÀW9*'9¸¥šš ¨·\OßöMWHRZع¦¬«­];C0+<£›Ÿ®º?9J-$! #-AðȽ¬¯Â¸M9É¢™“’•—šžžŸž¤¼³«¥¥œ›Ÿ ©¬®ÆßkÍ­ž¡·>+(00 (NÞ=82;SoØÇÏ17RÁŸ›¤²³²­µ[IKh«žªµÅHÎÙ?I[>2% ;àV%%2Eั°³ÆO/0Q×Ü·°ª¡œ•‘”Ÿ¾,,]ȱª©¢¤©¶?0((BõN<ʱž™§Ó0?lϼ;7+1*7FO¸¦—”®SPF¹«©˜œž¨ÏX6""%"*()̯>,%F¬ N,.Dk³‹L* ˜&§¯ «/¥-î#<'/ËÖœœ–šÁË*#&#³#åœk°¸FØ50).-,­Ø˜Œˆ–©¸¿e¾¾ÍžŸž›Ÿ¥©Ìª»šN¯­™ŽŒ™˜ã!!K°¬’”–¥pC1B¿§˜”ŽŽŽ•›œ  Ÿž—ŽŒŠ—£»0'+5â¹°k<4,    (<Ô©¢œ ©¾úGlÁª›–•š˜™š¢£¯ª¥ž™Š‰ˆˆ‹™œš”ŒŠŠ‹‰‹’š¢š‘ŽŒš§»½Á«ž›–™ž¯µ±µi-"!,1ܼ¸­ÀÂ6(  &*0813(#&?UÃÌK0167)!?Í­¢£ššŸ¥­ÄmÙÊ©˜”—™Ÿž›Ÿ¢«¬­¥—ŽŽ•ž¡£›’ŽŽŽŽ“™›Ÿ¤²Õa¹¨£Ÿ¢¡¡£¯É:'# -MW>/    ).*.,/)!&1QÆÄgâK:>;(+Hö¹¥Ÿ›š›˜˜žž£¡š–’—™š §¤žž”’”—š——™–“’”˜›¢¤¯³¸½ª žŸž¡§¯Æ[B0.%"%._ÅÑÑÌËóOE55:LKQï×f>C/,+,=\µ©¦«« ž¢¤£ª±¹Ç¿¬¤¡§ª¯ÆM955LUȵ­ª§­°¥¢¨¸½ÕÒÝ]߯´´Ñ/(% "/<;3/-=;,)*#!  $4mJB0! #%)2<ÑÁçDZ¬¬­­°¯¸ºÂÀ£›šœ¡ª¹Ê¶¥š™š–‘‘’‘‘•—™œœœ™™“Ž’›ª±¸¯¨©£™˜›œ™˜œ ¥§­®»·¤œ¤¦¸E9?K_ÊûÙÆ»·¿N>9+& #*.5- ,*2?FPÓÒ½¼YFL;:6*.NýÉÞ10*%&08AæêÀ¼Ã¸·¿·»ÇÔKCLÍɽ±²Ã>.->g½êÚ·°®¯¼Â·ÁËõðÊêD@^^?gÔ׿:CÖ?ø8<5ûª½ÆkãÇBÉ«§Ÿª·È·œ¥¸Åx¸ÅùÅÆ¨¤¤  •š¨ª¨™–™•™—•›¤¼¯±K827O&)&)B,(*'),O058./!6P6;@ÈÇ:1")?)/7:{14/3½Ë¹º°¥­´e¿MP×p²ÇÖËÁ¡¦³­½¨¡Ÿž¥™–˜˜œœ¥ÅÇj¾¨¹®½Ä®¶­½µ¨µ¦¡Ÿ”™˜—œ˜£¬½Õ±·³¶þ½g]ÁPiA364ǽ¼«º«±Í½<,++5;Z]2.!(6+=I,;E㿱 ­¹¼É¼AOl/LÔGF5:?-+)ILd¯Î¿¯ÃÂÖbÙ;1-9gCÐ1+>)1.-åDNǸ¤¤ž¤¹¸ôÐÐ6¿ß@ó04)#"9B3?"'&% !(((.`ʶ±`:$#E>n½¿²¼ÑÔRðI<:O¬¨¤šš˜—žž£¦¤°´´Ÿ›¢¤¦¯KìIN¶´¬¢—–™’˜¡¡½¼²¬œ ©¬´¬Î·´6>-F²©¡Ÿš£¶£¯«½=¿ù:Lº«¿5*Z#(%+r@º¬¸¦»J=1@Êu:9JâB>&Fa%&.°­Ç¿¥«°Ìð®oÝBb¬ªªÅf¿ÈÔÓDº´Ÿª‘’—ŸŸ«¬°ô¹Ëi.2'%#7Ýu³¡ŸŸëOÃB5."   % ! ,?ÚoÝ˾²¶¢––Ÿ›žž¥ª¨©²µ© Ÿ™™›•”˜¢Ÿ—“”•‘‘™Ÿ¢žŸ£¤žš–š“Ÿ¤¦¢œž£ž £ÑÖÂæR3.6Lù԰ªŸ«®¹ÙÖAa¼®©·ÙïÛ=  $"$,-2M1+-)(4X@âN9D,%$%"!3q­ ¥Ÿ¡ ¢¤¯­¬©¦›—•’œ¢¤­ÁÙE2GdKF¿Æ©µE;8,,1+>WpWK0DC+?Ò­¨¯¯·µ¸:$(,7K:93-$ !-.7,#$#%*&#+0&,$#&,<@\¼GøX`ç´¤¤¬®ª¢¬À»Õúc~îÅ©¦¤¥ª¤¢¬¥ ¦¤¢ž¡›šž © ¢©¯ŸŸ Ÿ¡–™œ©­§©­¨¢¡ª½ÓÊÊ<5+':XLFðpxû?D̾^I:ß¿³¯°ª²ÊI,+*%,/EDK>3QU1.).8=41GrpÇÜìÉL3*-S»®­¥¢§£¦ª¨­°¸¼®Ÿ ¢Ÿ§­®ÇrN>5;o˶¶IÚãB:?J8-.,NÌ»³@8j?0(1>lÈȹºÍ²·L[ÐV,*466)/>/*%*#&'-,* $$"%,69>85VÕ¿¸¼ÇÊ­¦¢¡®®ª­³®®¹³ª®­­¯¥Ÿ›˜—›Ÿš˜•‘•—••’’”˜š™›œ¢¥­º½±¢žŸ£«±ÅÆÁÂ]C@?Mçºð=34)!"-4<BVP?aÍÞÕ´ß2#(+5F7+9OÈÉ=PgM˳®ª ¢µÍW78/<Äи§¡¥£§Çª§¢ªµ¬°´°©½bB'&),.(6>9=WäIW=4À®°©ÑÔÇôD81#+%720-.;-,.HmÅ»A/D@H*""''(,>ÐÏO`2%+2?.8G:4--+NºÅ»»®¦ª«œ¡¤£¨¦¢¢½È°¬œ¤¯°Àº«¦ ›”—›œ™”˜›™Ÿž˜š›ž¢¨°¶¼±ÃáÄ˸­¶ÐF={ø8=J8:B5&,..1'6+$.>ï¹ÇSD=9?9À·ÛÎÎöÃÔ@-/<]Y>ÍË9ktN×õF4GƺÅk·®¼¿Û`¶¹ÄÜÕ¯¨­¸¯«ÌF/'ô±ºÇÁ¬ºJ5GÖÈé89À¬ÊC+1]=./19304»ª½ËqɵN8LrʶÛ:Oâ/)"%1%%:?̸{% '.Ⱦ¯»BÂ#8< ¦–Å…!­Ÿ OBŸ›.ŸŽ%\Ÿž  VJ¢¾ª›•“— ™›Ãt°j'" (>G½«¤ œ£™Ž‰‹Œ‹ŒŽŒŠ““‰š™­È°(6.'-FƵ¶¸HD.+3Rꡞ›™¦£•“’‰‰Œ‰Œ’›«æ-#"/KHPú±«¦›¢›§ ¸­²¼Ïä«®½§¦«žžž¡ ¯ÒÏ+  "=GĽÏʾÆâZ÷l½ÚWÍOi6..EH8\9öó2(;)!3"))/7').%)-#&.+2=JÎGÃÆ¶³¬¡™˜•Ž‘ŽŒŠŠŒŒŒ—“Ž”–˜–”™› ¸¹È-.%*   *)/E¸ª–ЉЅ‡ŠŠ“”›¥Ÿ¹KG;# ""!&72&*#B0)D94/2.7?Ï}ܭƧ¯¯¯¸¯ªÃ໬¦Ô®¬²þ¯¢³¦£ª²®íD%"&&#$"#:?,.\W842 &$$2)O<8ÉMµ­½®¡¦—žšœŸ¡¢¤»¸ÑV;/J³¶Ÿ®©™©¡›—ž”–š™›˜™£œ Ÿ™¥ ›ŸŸš£››ŸŸš—’› Ÿ›©ÇZ]5 +" %LPC1`+)+ 5.((9533.-CK)ÚìÈÒU´²­¶º¢¯«§¢¦ ¦¨¥Ç°»G(-" )!*2P3,»¾t­©¿²¹µÃ®­«¿YÊÁüDäP9ã:/Wì:r?»¨¦«žš§›” —”•“š—›žš¯£§ª§µ·÷±IÛä,<<=+EI:ÅÉí;:`W3ܶ¹¾®ZÅ®¯VOZ$Î.%406'$* !+_?KÁÀ›¤©žœœššœ—™ ¢²¬Ð;AMÃJ18L08)$&")"$6.$%&(+=/&ÀÙ¯µ¿±›®Ä¯²«à;A(:C7=õ®³Ÿ¨¥œ «¥£®°®­X4Ì<:.,ÓA46éË5м>/¸F2%)*&$#&ER.0LÌÅË|²£àÉ»üä¾:]oÎ4/AAz)8XÄ«¨ÈŸœž œ™³¶ŸÙ¥©¢ŸZœ£¥˜–˜” ™‘˜£Ÿ©¥­ÇÄ6g)'&##'L½=3¾°v­Ðͱøc+-76I53F7ɳ«·¦™ ªžŸ®®ª´É´Ô8+*4!%&X¤¬©Ä³œ›ŽŒ•’Œ”•–•š”ŒŽ’˜‘‘œ™”œ—§«³X ¨ç@(!,5HT¦´«¡È¿¹6bV=6C»,"/È¿é´/)¼ž¢¥—•¡žœ®™˜¯¯³7¾èL»]F&/.,-&<º ¬µžÚy¸I¹¡­¬se«Ï··¼D$ "*@O¾IáN´—ë¼J>ª¶­ÂE6$$  <,92FÊIÈáåÐlNGI²»°º6Y*-(#.(F¾Ÿ¡¬¬³\Æ´I?>1.ÄãQW+% *3(-)/T=`xÊï=ÖÍsÕÁ¸©¡Ÿž™›—ž›––ŽŠŠŽŽ“š™™œ©«´­œ¯ª«ÒT/ENO7=:.³²®ª¥²Î·µ©´­ÇÏËAÏÖ&%)(]µÛž¤¥¥¦·¶Ð¨ç³ªÀ¾SI<.D>9GE9Ȳ¯¶ªÖx²¸ÅU|Ã:.[[LIF,,-[[5¼²ÂN>K/$'&<+?»G\QÇ´pÚÖH7E¸µW½?5.'>-"HSN×ÍÍçLÀ^5B0;-74.3.3--(/ -IÜ®¸Ó»Fx«A<Á%,5N·?T@5Z:F=/DÛ1¼½Ç§¯ÃËÃÓÎ@Zιֿ««¥¦¤ª­¥œœž‘’‘‘‘’”™¥™£žž™­Ä¦¾¿÷5.ZU¶­®¤­¦¹¿¬¿µs6ÀKUVJK3<.'$*)-0AÀµ§¦œ ¥®§Ÿ¤ª¨µÁè¾?;L..@+NºYÀŵ³¯¹°ÞJ452*Z;85-.(+'% !'+.><2)* !%!%$-)**MӿȰ¾®¥¤®£ª÷ØBHD2*&#)))'+H4)0[?47530E:37/;#!.+22(*>MÜÌÀ³¹³¿º·¾¿n:EUþM4/<<2/]QÑþCËȰ®µÀ̸µÉû±²²½½¯­¢ ¦œ—˜—’”’‘“•™¢¦£¬ª³¨¯»ÞÏÛ´¥¹¹²³¹·¹ÊNÓE.31KB0ibOÛUdTíníË×µ´»¹¾·©µ¬¯±µÇ¿ÁíÆÔ¼ÐEº´Ã^ðiKàNÔàÔÑÛJáÙBI7,/7-*.0..#&71"$"").+;/6140.3((2=ξbÊdưÃÀ±¾]QÀÇ¿ÏF;2/0(!(#"*.,)04+>=,3.<7<6;?/<>NK}ÞÆäêºÆ²»ÌGHÖñjÖÚS5,?2@598(MOOÊC*I·Í¥œ¥ŸÞ¸”›¡œÉί­˜œª©¢™ µ§½½±©¨Î¼¢°¶Ì=WÏmª¯´Ë¨©­¹ÁÚ¬®®©¡®£™–¨¾¨Ÿ®³Àº·ŸŸž»¶¦©·¬¬¼¶³»«Ÿ¬ºª¼²¹²¾¡¦›¥Ä¯§²H6)&"#%>C/;5)0:5*5.:ã:>Yè8µ© ¦©¡¢¢ ªÚ¼²º>*"  /&+IF½¹ÎÌÉßâN<*1N/(-:f@?XiðȬݼÉõcëF@3<,-+-OL:KØÕè¾ÎèVJ:F06D6EZWR8RS[É^]UÇÏJ@?NpE@9/5BêSQaHgÑÆ¸èÄ¿´®­¯­®¢ žœš–––š›˜””–—™›™›¡ ¥¤­º½ËÅ·µ¹¼¸Ä¯®³Èýc»²¸µÊÛ¼³¯º¸»Â»ËÊÆÊ·ÆàøIJXHE;16=Q@RR@GÌøR6BLêÖ¾qT฽×G9HO\Î=44Ù12K<*'*)+2/2./*-*K@:5Kh¬¬ºÍÄ­°¸ÏÁinÀÇYDVRlNi]7.8?@EQ@MG@.*,/')'./>,)(7;C0$*% .87"*'*)* (# ,.21638@9:^ßLqÜO\D>6GBGGE]Ñù˵±¨°Ìàଫ´¾ª®­ª¯´©©  ž¢›˜“œœœ›œ¡¤¦¤žŸž´®°¶¹µÜ±»¾³«¯±¥§¶¦¸µ²±¯¨·½­«­¶Æe̽¿¶ÜÛ¸µÂ¿â9E90:-&.0/64"#(.5?.>yÛ¹¿JáÎÈRÎRäîLPu8ML=4?/3.GJi:4T@44',=Ó÷d6A`ÛSMF/RÖ¹±­½-(8¬¹©§C)Š›)¤à H Œ¡ ,"ž02]›¬-— /¯šÏ­¯  *qÁË´¡š—œ—žî¹¬A" !$!)3¸¥Ü¢›¨¦ŽŽ Žœ•˜”—šš£¥¢®Åµ,(;)%,LÚJÅ«›œŽ‹ŒŠŠ‰‡‰ŒŠ‹Œ‘“™ŸáÝ)"  !(\Ȱ¨˜”•–“›ª «¤¸ì¯ÆwÕ49.".'&2./&.,%5"))6J7CO`JG2P>+**4--*:/W>37SÔáȵ¯£¢ ž   ¤¥¥«²³Ú¹²×Þ·t@Ä0&  %$'$)4;8?ÊKù®£©¡œž›¤®žš­§›£©©¨¨¶®«Ïþ¾N>+(' $234.;°ÅË« Ÿœš–’ŽŽ‹‹ŽŠŽŽŽ’–¡¡«¾ÃÓÏÅRÍÝuSÂqItÖ¾7Ó¦Pu5:H,6/&"#+.%8+Xº¿º¾®Ÿ¡š“¡Ÿ”—™œ˜ Ÿ¯ÕÑUC;'-"  !&38?3n­º¸ª§­ ²§¶Ã¡ ¬¢§¤§¹¥§ª§¢´¤¥ª¬·´¸µS27-%%,*)4$ÞD:Ê?¶¶Ã»cÅÇŶÜÀ·pÁ°7ö¬¿ô`¹­?î´¾V¯¾½³¿ùXû*MC6%-.,-%@ùÀ ¢–’•‹†‹‰‰ŠŠŒ‘’“š˜²¶ÊL)9>ò¿¬¥ž›¥—œ’“–—–™›³²¤©ÅSN29'!%(( //=;<»UÄ­²­ž¢¹¦©©¬³¬Ä?À-*#L>G¼Ç«£›œŸ“šœ—œœ¥¥ ÎµÈ='&+((!"8*02:ÊÓw¦¦¿¢¨¾«³½Î¶eQM," )5/3Éе浢¾›ª¤§ª»¯©¶¥Í¸ÆÃÇ:6#3(, +.(!/--@ÅÕмªŸ«œ—••“™›˜˜ž¥›®œ¡Ú¬µÎP3K:4O-M=KÚ:nF¡¬É¦ž§¢™ ˜•˜–——𙙢 Ÿ§ÈçÖ/2)!/*<Ça¼²­¥¿› ›š¢šŸ­¤³£­JÍÝ5(7& (!%&,%"u23@áÉz¾ª«Ì¶±mºÍ·µK4LÄ!,=%,.#:%7%-A;GT8"5%G# !&"#)"(C, ®Ic«S¢ÖȣƳ³¶ž©ª¾Õ´½qæNvÀ6mn:&=& #".&    Kd+4áVç=tDY¬^çÈ§š˜ ¶›“•Žˆ‡‰‰‡Šˆ‡‹Ž–•‹ˆ‰•–”™œ¡»½ù$,#.'   "(%)=N-O¸]KÐÀDÛ­¦Õx«Ÿ›š””“””Œ’Œ‘‘‹Ž”–—›–›˜—››˜–žš•›¯´­¯¨²±§®»¾Í×D\À3.<$  &! (/(',6-)N±Kæ°ª«£›™žœª®­Ÿ˜œŽ‘•ŽŠŽŒŽŽŒŽŒŒŠ‡ˆŒŽ“–“š¢Ÿž›ª¯¨°?(<5 $&!!/-)--1.$   "-% /:Aj²´Ò·µKEJگž§››¢™—™•™œœ•—œš™™•’Ž””‹‹’•‘“›š™–œžœ¥Á²±JÛTX]ǯ´¹®¯¿¸»·¿ð1&#*)2)#'# "$&*47@?ôË·¡®¹´¾BDá»Ö]Q=þ¼Ê¬ª«ª©°½¹¦±V¹·¹«­¨¤£Ÿ§§ ˜˜¡¤¤«·¬¥¸¸ÎP½½îÕ614)/(5ç/*68NB;?264"'"'.' '%-" ! "%$(2+,ØT.ßÉ­¡¦¦©®­¹º¥±«¯¼®£ŸŸœžžŸ§šŸ¨¢©¤Ÿž—¢¡–ž˜•”—’™”—›˜ ©¤¸È²­¢¿JÁCSÉÍÁºÄØíжº¬²Ò»½S_ѼÀ?I<,?3*1'#'&#!+S00G42_CH<1M/):;éC)7;,GDíM?Ù20w[Ǽcº®¯ª«ž›¦›¥£›œŸž®¤©¡œ¬½¯½Æµª¡µ¬¤¹¶¥¤Ÿ©±§©«¥§—Ÿ¯¢³Âµ´ÀI4R,%* 1)$ ,"$%=(*Y=BI¯´4ؾ@[ÖàµîGa6B/8Ö7,M/*;I¹NJÃR¿¶´¦¦¯¨±¬«¨œ¡²¢®²¥²¤£¶µ¼Â°À¬§¼«®Æ´À§¥³«®¼ §¢™¦ ¦ª¢¨£Ÿ¯®¬Î¿¾Ö¾pV=-L:4Õ.&8'$&*9&'"$""#!'9(**",+@*#9(!1*2;%*+%-)ì¹>ëÌdºÇ«¥´ª¹³¯±ª¦ÀÕµ¯¬Â¯ª½¸º½Ô¹¶Çî®·jÁ±ÁØÍÏÖŶ½±¨¦®µ­¤¦²«¢¢¢¤¥¤¦¡©¹³Î¼Ð[>Í¿O*>.$ (,/.<õcQ29<$ I«Ÿ˜””˜¥°RYU9Ȩ–Œ•£¿çbP9@q¼ ›–“’›¤­´®­°¡–Ž”•š¯Âߨ=48F\ØÏKYß]7.++7$!(1+(,& /LéÀxHÞO)%%#!(% '*+'$"-Þ¿³ £¥ž¤ªÅç]×âF¿¡¤¦ œ£©®½1=DG,,/0&'*",((?ãfGdXL-%-+-*7*#5N.)-,)#!%##+Pد¥¡©© ¥´¸¬µ¶¸ª¢žŸ¢ž¡®°±ÙgÙµÆð²§¤§Ÿš¤µ«©¶¯£¥­ ›«¥¦¸ÊóËdJ77HC4@C10L=)+=*&*/38,$&'! *&#OlG@VÙF=&(.)+,,#7TE'.4$& (+)HÕ¶«§¯¯¢­Â¹©³´°¨ žœ¤¦«¬®ÃØTµÞ鳸½´ª¬«§¯±«¨Ÿ££Ÿ›™Ÿ¥§¤±ÈÁÝ`ØØ6EMçH:3DÙB<=ØP;9AO=Ú5#'**(.#&=D4t}gXÕÐ0:Dß2&/7;/'&*& ")>,.츷¼®©§«¬««¥¯§¨¥§¡§½«®¶Ü]>éÊZRüÍ`Ï·µ¶±«»Á­¦²¸ªª¢§°¬°Î\ÆM8V[3,7E:.?A7@CX8L8DO?kÎ;*51)#'# 1/69NPö»ÇÉÍÃâý·ÃRRü3KA24/'*&!/T3+U»ÍÏ««º© ¢§¡¨¥¡©©¤©Ò½«ÌUÜÂ@͵»VVËé³µ»´­·ê»°¸µ©¹¼­¬¬¹¸Å»¾ïÿÁÉ.6>>-<9%,Lk:35BvM>,P7=7<9<9+-(&,( '1'"1+"**4EZÏäR¯¦¯´¦ªŸšŸ° £ª°¦§¾¿È³¬¸TÚµôPº¬·©¡¬°«ž¢¦®·¨¦©¯®­¹¸­º<þÞÕDoÓK;0\ðF/64-?5.,02,$#+(*$'&*'-.5L94L÷5GGJC9?/FH<50,+50-72,=]ÖJ¿ÆÕ˸­¨£®œ¬ù¬ž  ¤š¥/áðÈ’“M/à>¯`.¢£,᥿*;y.-;>.GR±]-,̲D!Àø,KÈëÝÜÑ-äZ¿ž¼+覫,?®¬±¿ÈP>ËQ1#:°64b),$$3+;2<Ìœ—–œž“’Ÿ·ž¦¦¶È2>»¬´±¡•¨©”Ž’–®¬±¿õÄÏ9#É­#'Z¬17P0)! /K'0,Sn*#.7.# !"Dò¥Ÿ­Ÿ›¥®ª”¢žžž¬>I¿¢­·ÊÜ­£±«žš¦¥ “™œ©ª¸ÃØÜP­¼M,1g1RgÙ¶¯Â54P- -%DÛÏìYjBJ,"!(5)%').#"(]ÓµºÐ®¤¨®À´¨¥©ª®»ÇÖ²¾Î³Ð«ª¦¥©²¦£›¦¨œš ª¨¬­¯ÉÐÞæ9!/=¸ÄG:b²¹J:DÍ=!K1(+Ô¦«ß;4A66&%,*!&'-$((.BFÌк³¼±®Ä®¢«ª¦º±ß:KðÄÔʱ°¨¥ºµ¦¢¤ª®±©¡ž¥·ñØTÿÐ, ._ÕXI0.ѹ·î?+%( #-%%á´ÇÌk=ÜÖÑE-(#)+51$(&)jJÑ»¹±¿ÃÇ®­­¦¨½Ì³§®ã½<8Ý´«Â³Á¯°¬¤œ©¬²Ð¬¥œ¤¯§£«K5IõZH.0-)3>Kê³¹3-.OF#%.6Kï¹°¿Lc.).0/ !(&$#/;5;Öª³i˯ž ª°Å¬¥§«¸¯±ÎÅàÉçέª ¤º®£™™¨®«Ÿ¥¬®­¤œ­:&F«n'/KÞ+',YI4,64@KWÇ¿;7JVM=-#"-50(# 285+).6}ÌÒ`ÄÈÁoή¨«ÊƸ¨¦§¼?lµ²·¨ª½µª«²¬§ŸŸ®­©­«ªª±½¬¹8/Z»B<9+(M==;#.F,BÎ6+,+˹<:±FVGå«-/¬¯·.%YÀ¼ÓP7LL¼aP¯ßC<-?¿ÎÙK<¿Þ17ÌÁß°¯C07>>BºÏS.ô¢³«¬ ÁÝ©££˜ž«¦©£¤¦¹;¯é*#"8&<0#Òð- 30',ÍeåÇ©¡ª]L9,   )±§›•™µ§¡­K9ÊŸ›§Õ½yª¸µ¯ª¢£ßÎ¥¬°ý´©Ÿ§¤¤§š›••–˜¤œ”—ª¤˜“™¬Ôª¨²g[ȹ=$(E80+ܧÀÜD8/BB%))e:>%".C¦¾°ÆLmC"*/ )3ß3. 1Ç­·µ¬¥¢ÀLT»ª­¼UĽ»²¯ÓHZÂÝÎ>J`ײ¶¯°®¬ £©£¥­¦¤Ÿ¤ž¨¬ª¨­¤™§½x]«µ;#*=+'0:S;.>Ó±ÀÍß-]°6&)>74G(02ÁOLH/-AÝ-00&oM,/),..+&0( "1.LɹÁ±½¹³­¿§›¢¾0>¹­¼9q¯E2Þ²²@AH^¦§¹¶ š¬¨©¡¥ª¨­´Ä¾­¬¥¡±Ê­¢«³¶=))+.Rg9/44M¼Åð<ºÑ8<>Ü^V353/.754Îï$"00;4&$'1=?2)),#/ÆF.=>(*HM(2Å·æÓ¸Á­¨¸¶«¹l»Í½§§ÉDt½¼ÈÎH0^·®©´¶¯ ¤¥ ¥¤£ ´Ê¦¡­º¨¥°À¿¾»¶¯©Á/';5,8S0,>XÈÎ}.;9XÁV38Èu.Ó©¥i1J¹ÂMá¯ÂæÃ§²¸¦¼·ª¥¢¦©º¹¢›ž¤´È¿·º¾Ã1*((."&æ6"!%ëknþÎÙ/=¶©µU )8+DI.#>1LK2/11**-¹°/$*?G»e6HWEðͳ°¬µY»¤ª­¦±_À¢Ÿ®©Ï`³º¸³¹¿¾ÛÙÜ«¬ôL¹ª²Êhv¾Ÿ¨Ò³¾¶£ž§¯ž£Ìî¹µ³Ë=2V¾W0()")!&XÚ:#+@ï±Õ:/(4<<5>ºa) 1ðÞ5)#1VOL"+F[<6.-]¯¶+¦Ÿ™£¾Ð(¢ˆÄš¼. •†Z…5 ¥¼¼š—¿¥Ž-Í™š ŠS+¨í¯“’ŽŽ“Ž•©³Ÿ³G%0#<ë'!Ôœ½¯£¨¥Ž¡¥Ÿ–šª¦K//. =<+.4¼Ê¶Ÿ¥›œ•”¤š“—¤žžš››¤™•˜•”Žž¦n)+,3¼}®7>=% !$(@韠¦››—‘œ—™­ÎZOH" (+CH׿7s¾È2!% (!&O·¾·¤›–›š˜‘”•ŽŽŽ•–¦Ÿ¢³±M0 '#!,åÅË÷Ã§šŽŒŒŒ‡‰‰™›š­=Á¨žÉ /-%! C.-./#!':2?Ç®ªª¾¯¡®Ÿ®iW±£µÖ«œ§ª¤ìœš©È¨ž¥–“Ÿ°¬½¾;) à[-&4?ºN1HÖ9·]"1!/ȵ£™ž˜›“Ž•—“•š’˜™  ¢ž®åM*)./­ž™¤Ÿ‘•˜–œœ¤´®¬¡¡ÊH&([R72",É¿£®½¦¦¬×­¼¨×4/Ð9#3'- #Ï/6ž¯nÚ«“©¾š“ŒŠ“ŒŒˆ–¨œ›œºH'##%6`Ò¯º¢›ž—’‘•™””š—š±±´V,/())%&$$'9Å;ÂB½¨¥”ŸŸ®¾¥ª¯¹4I:"#$!*#*ÏÔ1EÀÍ©¥®?¶¬› ÊÐ¥¢µ·Ô¦¨©·É·½V3CH<½ö9"*Y,+4)$3Q<-$&//"xÀ$1+AÕÃǼ©£³¡œ®ª–𢛦·Î6^MF,&" $+lƹ¦¾©¤¨œ—¤ªÐœ•›¬©œŸ¨¯QªÏHhÇ*#&') 8S+$'Á¼BãJ²©¾¦¦˜ ½²©²®¦¦¶;©Ÿg.4½ÞÒ-&.'(ÓKÜÁ§¨£¸3?#.& à¯œŽ‹Œ’’’›¹·EC/69 ,-º›™š¯ÈN)%9î ¢œ“››Â·§B-'>_(>'-Q̨™Ã¶›ŸËB5É÷EA 'F?&Jž£¢‹‡˜£¤©™¯¬±/-Ó4!6. *&¿Å­£4"LáÉ/16ÉàD›œ›ž½¦¨¬»CÔ:,3Û%GD4(.õ»¶°œž—¢³ç;×>)´ªÒ1.:;/Ã+:É6´Ÿ™›˜žÁĬ­«¤T%//.!>Ù000&9Ã¥üm°Ï¾±®C+M®§¤¦¶›šÖ_­ÈÈÁ6F¹)&+P0("7<.8Ù§§™Ÿ©¤Ÿª6EaFãÙ@¨§N>6>%.Õ-ߟ«œ™˜œ®ÒB¤¯6Ø%#8=Ò/»¿Rù(2d¯»ÊÈ@±¤¥<Ô£Ý8¯µ¾X4N0Úþ*F8+í"!=*>'#c/-6-5ß¿£ªŸ•£¦±ÊÆÁê>f´DMÓ?>.N/2Ë­­¨¡žš£¦ž§´·­Ú)--#8>MMOYMHJ.êß5Ä­³ÇÄÍîµ¥­ª®Ë72.,"(>cR9:?ÕCK.,>2:*.ÜÝÀ¸¿¯¤§©««Ñ`¶Íú¹V`ôFQ.(]u"u§Æ§¦³¥©› ¢ ¸¶Ï*-L%*;(*:^Î]*5?oþå8Eº«Ê½­§¬Í·ÑÕ¾_7*),= %2.)`aM>øV$70Bº¶\À§©©§›­¦Ÿ¦µ´¤§LÈÀ<ÀÆB5D¼AA3$ /F6CO4/<92Sn,-6H¿²¶ù;°µ¶¤©¬­­¤ž ¦¯üLcͱ´Îä^\²ºØ×ËdSIml-"44!$*285)/1KFMY<龯UÊ­¤¯³¬ÃìÀVFÉÐ30//10*9dC/+&4S2&/MS8bå^ÅÓIJ¥¤­¦¢ ž¢£¥¥¥¥§£¶Ìº¾¼ª¨ânZVPV\/8I2)%$)**$"6-)0/;ÙU<+=ÙÌÁĵ½¹æf´¤µËîGIYt7G@>]966G:)/C3*8-.9A-)pVÞ¶»ì³¤¥§ ›ž¡Ÿ©£š «¦¢¢¬¹½¯¾ô{ôR2)&23%!'! 33#9Û-LªªÅ§¼9/,ž—–-ª+A³Äœ·Î¸"Œn¢%°Ÿ¦¿%¸)ž!¶f.ž¾GÚÌ®'¯Ê>¤Ï*BLB Ý-¹8&F/uT8iF²¼¢«¬™ “¢«¤—Ÿ¡Ô­ÃÙ]¿®¶±jªºž«à¿DQ    ':H¥ª¢ž£¯T½³®§À®®Å¬©˜Ž‹Šˆ‰‹‹ŠŠ‹‰Š‹Œ‹‹ŠŒŽ“”˜ª¯¿ªª¾œšŸ³ÆÖ,    "!&+*,><26K|Ì®·©¨¤ŸŸ¢¯µ®´¿§¦¡ªž™•ދޕ›ššŸ¤¡«°­«ª¨£ž¤©¬©ª¦«ª ¤¤¤ž¨«©³pUP93'(*676LP:,+%,%16;0160:DáC6гf׫¨£¥¥¯¶©§¥¬³®©´ñ¿®­°Ã¼ñÖ¯¾¯¯´µ§¨¯¦Ÿœž›Ÿª œŸ©¦¤£¥°©¨»¶³ÉOÑ»eLLS08ßXG-2GC?GZ:,/OB19=F13C1:-',%).%$*.'#$'/*-#!-+&#.J9+0281j¸L<Í­·U÷¹½»®¯ÄºTÈ Áæ¡d·Ì¯©¥:Ú¸žµW“(ºø³­8·±É²-žÆ«¤1·ÏµªF®Z¼¾M¸¼éM>¦(>³'GM:I4YB:*6ª2­ÕL§¹Í½¤È¹«©£ ¥´¥©««ØðK,"&++çC)  6¯¨”—‰Œˆ‹ŒŠ‰…ˆ‰‡ˆˆŠˆˆ‰‡ˆˆ‰Œ‘–™—¡«ª®ª¨¤£¬®¾?8 &   .ØÓϵ­¦ž¤¤§´¬Ÿ£©¦›››—›•š™˜–”’‹Š‰Šˆ…‡†‰Š‹‹ŠŽ“•“––›œš›ž¥£ª½UIO@TH1--C0'%%"%&$# !$#$%#&-&  !!)9?FÍ»Òϲ©®¶»¶­­­¯ª©©¨©¦¢œ£ª¡–•—•’ŽŽŒŽ”™™˜•œŸ¤¨­«´ººÅÐÔ]Ú¾_8=òW>@-,0L<((/3-.071'(/7-,$%$,+ "!#(+)!&-%!& #*-/427E;D=;9Ýt=:A^F}ÄËÊYñÈ©ª­¥¥Ÿž—›ž™™›™›œ  ¨¥¤¦®ÊºÂÅÁZ\Óï:mi;9E99ùF=H@=>ÝfIHKOݾÙHEÐ^¿µI8;UHX9/3;<.:B50-(&+'!! " #=8,*;8E\88\ãQÔºÅÚÒÍÍ®­Ã»³±±Ÿž¥£Ÿœ•—™œ˜™˜™žŸ ›¡¢¦¸·°¶æÓÎN=94?î;(#85,2/3*1,0F95353`×o=GHLàå\@Gï@LN^]dSMÃg<8][=;--1>1'32,+..;=7,9^îÊÐI=åÓPÀº¿ÜåÍͱ¾ÊůºÂ¸®¬®£ª¥œ¢®°œœ›™™°¨ÅIŸ›žÈ÷*e´»¿KS90>ɺ3+++?P3*F'1ÅÅ;0,427OJa=%3¿»1&'4¿ÄÜ4-97Yhï68/FVÛb0)+5¹«¼*-9@ĿǵÇMž¡¨®¨“Ž”–˜•—Ÿ¸Ê¸³¿ì6*!;/$##28&**ʵÌ50-+>Ⱦ<&!/M9/./++$<@A[<./:JÍè:0ì´±»¼½®¤™˜›—”‘––œŸ˜”œ©ïЪž«²µØ10CxS%)3#!64(3]z:63é¹µ´¼Ú,K°ªºÔ_<7:1=Ë5-'8QI*!788Á©ŸžŸ¥µ ™˜˜› ®Ÿ››œ´h¸£­µ¬¢½\Í·¼J0!%3()(/»ÊA=*,˽ϸ®¾>Q´­·;/s°ºBMz-+38<]\*,IlÀF)&BÄj$# '3LÅ2$Ï ¡µÍ²ž•œ˜˜¢®¤›œŸ²üµ¥¨´²d=¼§¦¬»8/480/$ /2' %1lB@ǽ\;U·¯°Ì?HlbÛO0,,82-+(%(JßÀ¼TCË­³9),&'+%I¯µÇȹ¦Ÿš§¬š  ­®³¹µ´³º>1y«¦ÖG?º¨ºÖT+'$ *vÄm86¿£ž«¹Õ;>v̼»n1T¨¨¶·­²Ò2`ÌcEQ¸h*")-1>7%#9ÃÖV7H»ª  ›¨ª˜±¸¶´«¨¥«ÝFͯ°º²¿VVÀ³¿f9;E9,%%'+1(")2*)58:>\>8C¿ÊJ¿¶º³­¯Á¥¥¯¯­¶ÎÌG6RK4-+#).°§š˜—”“¥©­©ªÖ,.MZÕÒÚ¸¢ž¬»C+)*)'.( #*Rʲ¬©¨ª®©¤ ¦¯³®¬ÀG6=IN鸦¢¤ª·Á·¿;&)+& &*)-QǬ£¡Ÿ—“˜Ÿ ©²·Ã³¤œ §®Ì6"+%)<[ìĺ´¯©°ÊK:G>8*074, ).8LWðéê̸¹ÀÄ®¨­ÍgÙÖ_RPrǾÄQ½­§¬­°­ª®¹½ÕUI>84GIJOÞóNSI@GIJA=?öÒÑÄ»«­¯¹ÁÑdFEEãÀËÒMûƾÑѰ±çLVk;/%#'& '0,+.ÝÍ-,ʰ¡žž=;Mž˜Ž•®¬É®¹›¼¯'*$K© –ZòIž º9Æ[+ªD¥žl­¼¤³>©º©²5S.1*.: )*-%+Dï1;¯^£§š¬§š–›”•˜¡§¬·D?-.0³$mSB('É1â2(6*76¼½¿¦¬ËÀ¸Ð*#.F¤“‘’–™š’‰‡ˆˆ‰ŠŠŒŽŒ” ªÈ:*#  >éAGDD6&     &0ÓÅN?øÒë­œ˜–›š–”Š‹ŽŽšž™› §ž™š—˜™˜ž¤¢¡ŸŸœ£¬–—™—™¦³²¨Ÿ˜’”—š§®Å@{¹¾=17,"&" -''(9105&!(8H@% &-@ϯª½â[_ݵ š˜š›œ¨ªªª®¹«¢ š––—’’••—›”’–™› ž™–‘ŽŽ”•–ª¥¡£§©©¶>/&#%*. "#&  "((.<69ϸÏ̲©¦°´§©Á¾¬­µ½µåر œœž¥½½® ¡¤›œ¤¤£Ÿ¡š“’“’ŽŒ‹ŠŽœ«´µ´¥«º¿@.&-6@JpÂÌC=J4/3@@/5P?H\ë7&./&0%,2CÕ\("'(3?;Cº¢Ÿ Ÿ¤³¸µ©§ª¥Ÿ±ÊÔx?Jl][½²§®ºµÈÞbе·»³ºE3زµ°®¹Å»«¡¨®­©­ÚÀ±Éñ»¯å5($$"$&!)ZÈB!(#")#"#.;&('%6VêznÙO.:B6O¸¬°®¯±©  ™š—“—Ÿª²Y;ö¹­¤¢¡›—˜ž¢¬¤›˜˜š¡¦©¡˜—› œ•˜©è;JLس§¥ª¯«¦´GRáJDî^,&3JQtØçL5ïÀL& ")#'6-'*1B2! +1',@,(+2,-tÈ;*)&*#$)($#/<5V°½¿ÍÜ>3J¾°¾í?;,1é¼µ¨¥´Ä·¼±®¸áD5g¶½oðç+!.63:2&&.55ïÔ3NÁÛ]Æ¿WSMAKÄ··ÅC.ùÓ}îÅM329:d½­´°ª«±º±³ÅHFYÔäï½ÇDEMGà¿ËÜS9=I<4æ°´»¯ÆsÄÃË`ZJ=I=̪¼cäÄÆcĿŹºÛ>1lcPËÎT:SÒ¾ÔË¿½ÔKCd¹¢Ÿ¤­¸¬¨ªªÍR6/7QíA.362.0./PX5#%+,ÁÁ;6Óú®^WÌ-(,«·³)¼¨%Ác—Œ«¦º•ª>­v’'¬7¯.´º²¦*ËfD§Õ,V?r"NC39F&O'3\´°=¾&5ª°›˜ž¨‘Š“‹‘Ž‘—®²­¸«®NM<°,     $µ­±§£§ªª¯JZ@Ä¡ž”އ‡ˆˆ‹ˆŠŠŽ’‘‘‘’˜Ÿ¢ž—žœ¦Ê& (53&%3$"0,[*)!! !3c-07J;ѾHkCk:¶Ð¹£¤¨¿¾GJ¼«ªº®»«§˜•‘‘ŽŒŠŠ—–—–Ÿžž—”Ž•™«ÀÊ¥¼Ò³¦©ÐÞ-)&.)5.&%$  (56+&. .ûH/X/)"( *$$!-,.)(+*#/'/;ÒLY¾+(2¯½½§¯¨ª£·§žš”ŽŒŽ‰Œ‘˜‰‡ŠŠŠ‹ˆ†ˆ‰‹’˜ž°µ­¯°¯¤«²Òâi}Õ<^81,'%-'!' "!((!,'-%1/-6ë§ šœ™›ŸŸ›¤žœ™›š—›šš‘‘ŒŠŒŒ’–’’”ž°ÊUåÅè³Ë¯°© ª¯FNJ>&+.&/4v=Þ½³­½¾ED($3L=.G-.23+&&.-6;J@/8/-"4@,% #(+3GÄκHUI5#3,9T´«¡™Ÿž——™¡´¯¾¾Ë­®½¯¯¨­§«®¯«ŸŸ¡œž¢®ÚÚ,9?<, 044+   !,-8GÎÛDMCÄB.,*($),(,)&+08'/+DI>ÈýF@I$("!$NÉN>-@-7>7\Ì¡œ™•’“šžš””—ž§È`V1Lß¶±¼ÀOK$!&(HhÀ³¥¬§­Øí¼­·¾,/9UÇ×í=>+'-M¼£šŸœ”™™Ÿœš—¥Â+ '*23ÅÒ>71,!  =ØmÈͧ¨¹]Þ¹>GnI!.çüÅÊÀµ^@?3+IÌŸœ§™š›¶œ»´™žÞ#$:»89N`QA1b¹t,#ÊJ³²&¼Ÿ®¨¬2¾­©pàÔ œ‹ŽáÅžá ü±¢š— T×žŽŽ˜2!;´ªo½dƬ ž¢6 Ì ¶«œ’Œ“¡O©¥Ú`¹£˜š³ÞÖò# ,0¶®¿1̦¢ž¢›šŒ‡Ÿ * /9§’œ­–‹‹Ž“ž£¤ž˜Ÿ½10¸¢§Ä*Ý9""?¯¢š¶3Å‘©Ò»ª¨0 Ñ!0¥©% °–£Ç)M˜œ§ÁÍ™ŒŒ¦7Ó©ÞÇÊ5\¿«¯Ì/&ÕÎ,Ì›¿°¦Ú,7Ö²ý&%4$'! §‘˜ž¥ì¶™˜°Ÿ’”­5¶˜“0!F $!βI#ª›¶9%*-4x¦7'*ÆÈN$>±Ä-04¤žL>¤Ä³’˜·3}›™¦Ãʬ¨žœŸ¤¹ïÚo7#.æ>Èû<´¬g#!J­T+"»K¶¬²š™¹:Í«RÄ•’¸*ȱuIĨÙ! µ¢p%;Æf<)#7ÕH9[:-N¬º²Á"6C'@-1Nd\¶ž´S­›¦½@DF:K˨¬ÒOÊÔì¾ÔTïž“§[ž˜³%'º˜®3C+Z©I#5!,ÄRA¾@h¡œ±7Z ˜›’” §¡®0'=»­¿>>K8-lÁÍC@h­¡§¹ENDWêJ.55''@%$*âZ")h{2M®²À§ ¨ª¢ž¦·®´A /¨­P>O²œŸÆN²­¼§ž¬LƬ­¹3(¼É-$(-%-ÿa7(*1íÈæ]¬–—¢¯¤™—Ÿµ¬§´/&-'+;żᾬ¯rTµ§¥­¦¯æ¾¥—ž­¨¨­¶«¯:&!=¸®®½Ç¯©°H*4?YÂÀ¿:(%0ÀÁE;,40+%(3Vº¨œšž¤¥›©ª©¬¥¯Á8B¼¼¾ÞËËX0 )2*;æµµºÈ.(?¸®û9:<9%'9FC6?014/DC<̤ ­­µZí«·ª¨ÅÇ·¡––œ¯¯«ºÚ0,êÐqÅÉÆ¶XAg_<<>))1')?´©¦£²±¬é/6?TÆ®®¨¡¢¥¡®Äź_?Õ.'MÆh>Àº½¯´ÉD''.6FLJª º43Û7-/-+# '*:IðÒÜ¿»M'$'23FXꮟ™›¥µÆ¶´´©²>(x±­¥—žè2­3%˜––†®»0;ž¢(š’/‘™^˜  2¬ÁŸ“Š‹–Ž®Ú¾M'(>.% ! )-9'毧º«§£¨’Žž”—‰ŠŒ—ž¦=  %-Aj¢Ÿš˜“ŽŽž¶O8GO/¿ž•ŽŒˆ‰ŠŒŒŽ¦ªÄ/  -3被¨œ•““›£–¤µ£¥¹î>&:ÂЦ›°Û½¯ùGPF"(&,+7-'(7)%7=Æ£™™”ŽŽ‹ŒŒŽ‘š › ŸŸŸ£ßJj.!,,-!## (+''*'?¼ÆÄ±«¹®ª¥¯°¬LHÑf»²¦™’˜“—•¬Éȶ4%*"%#3;0057P@ªŸ—ŒŽ‘‘•žš•ŸÃ¬¨®¶©©Ÿ¢ÞN7 D.J8ûL01*%Aʨ¢·©¥¯ûá¶³ºª›•š”–™ œ²£©Ä6òàÏg¶Ç40   RæAPiÀËíh=¾¹C騬–¤£¸§¡±¬³³¯©žžœ˜¤Ÿœ ™¦£¦®¨Òb¶±\3' 0.@÷?#  )3'Ϭ¦—œ–‘‘”ž˜›œ›˜™š™¤ŸØÁÁJ)/3%&.966-Ø6Bí·Ÿ¤¯œ˜¥š£š §¤­µT!*/?N[\41' **9$+5G;Ýî¾YµžÂ µ®Ór4·¡°š­¢®¿D&'%,) :ĺÎ̧߯—‘’š›ª¯¾²Á-Ý)!%!!98/*$*.$ $=£­¤–”–œž––”’’™ ššž  ©ER- "$'  5/6K5óK´¦§šœœ™ª®Î_Ç9F®¹Yr1.'#'5Âɦ¤¥ª£Âʳ›Ÿ˜ž¦Ÿ¢ÇH-|((:-)/X2ä8ÚØ7=0-1^³ž­²¦ž¡¤¢¶©¿Ü´µæÃÅï·´ªõ§ÓT¼%,'%(d21G\W;Lã:P37UD·9F¬¿¬©­Ÿ­«ÛPÌÞ=hIP@ÍÌc1e3XÚ?°«­¤Â¬­¤³¼ž›–žOÿ¸É\K.H($#UµQ&%ɺú½­›Ÿ«¡œ §Âµ¥°ž¿4>-2/k$8Ú¾6%&'&D¾«ØÇ®« ª°¢¦«¦½Ò.ËŸéµÜ>¡§¿ß®ÓÙ¶¹Ÿ¡›D.%*8Z'+Ò8#!-#6Yh/ÇÇ3, !ê’’˜ž£˜ ¤œQZ9%%$0 (0ÈØ°ÃÖ¨¦› ¾§ž¡« ’µ2.JC¨¨=·¦– œ˜¯§˜£­ž¡ŸH@¼×Ï82»¹^A !?ÍF¡™©£½ÑÂ%@®¢˜­®ª¨¢ª»|ÅÝ,0C2Cë×)G¢ž›£·§©œªª¡9. '18Á¡´ÔÑD·ç5@þÞfIÍÅQ½½Ÿ¦žš®¨³¼BLÆË®žš“›žž¢¸ÕÅ51:Qþ¯ýR²»³hÝm%%+"$&LfE·c]NX>/Q3>Þΰ¦­®®ºV()2ÝͲ³£¢© :?$ (%'',ð9d¬VÆ1C!*%4/¿¬ ¥¦š«»Å8"%¸­µž›•”› A6.TÈ1++7&DÛÒ¯¬¤¯ÃO4G!""!,+MͺȽRHÑ4=<̰°®¡—˜–¦¯·¹>)*5=ʱ¨·©Ÿž¡®½Êı¦¨¢¤Ÿ›œ›Ÿ©g8??,#!/=¹´»Î³®ºÔ9=41=Þ³ª«­®³¬Ç2,"*624?( &1!%8;Oˬ¨­TFØHë--&$08?KZ»³®§®Ç//À»Á¯© œ˜ª¾¿ÆÈmÂÛ70A½¨¥©¨¡šœœ§ÁÈÌ»¼ª£œ£ª®´ª»ÜC/AL/).=ÏLRºªªßk;M8M:(:`®Â_@()#&& ##3ÞÄdT*)35@Y97%"Ê›©1>¥—¦.I%01ÏÇ›²DÊVÛˬ%6¤° .²¾§ºŸ ¢Œ¦5‘Í&½œ¥«£&#½”Š“¼×›Œ—£B½­ÍÎ&&Qµº·¡ª?"!$> (/J+3#$.FÅ4 6ÍG'!µ½UŸ‹”2£ž»´ª«›«Ÿœµ­°µŸ©/ ¸˜—”•£Ÿ•‹Œ˜¬™Åo?2ü™’¥_¿?4I±®œ®'M“‘ÍH°¦›š<Lž»-ž›7)ÛS -.%N¬`=¾çC47E.FÀ.(`½AC¸B.Þw&%U¤žª»­¬µª¬½ÚF'´–– ¸4A§Ÿ¶¨‘•£Ae¡—˜Æ$/ž¼ÈžžE"2¤‘«LQÉtBŸœg')b¬©ò6¸Ÿ«<"$"!V¨_¹£Ø!¥¥!(ÜH,ÛÐÄÈ8#'=) 769•¡M°¡«1(NšŸ:3žŸ,%»£¯µœ«0w¡¾P˜ˆÊ·Ÿ«­©¤.Fª[!ï·²öQ¼¹À š™ª;-©””™¸¶š°1Ü.(//2³P.·Ñ*/9,'/=--)%'0*:¨@\¦ò®¶&2)(\]©˜ 4,ÃEêŸ_#?¨²6»¥¸!"¯¦¯›—šž›™¦ÇN¤ž¤½åÃQ5.2FÂÌE6:î«£®¬«°¶©¬°×´¤£»?i°³NLÔ±k+IØ/,.-%1Ñ. .=42*5+$½«;%$P´(#- L9$=K-'·ªÇLÙCÞ¦¡~%&2̨©¿ëQÚ¾ÎÞÆÄ㛦¹£™™˜¥žœ«¸°·ã814ÊÖF\ô(E£œ¼yË»±­³µ­««¯ª¸Î°»¼Âr6_­¾ßamH8--QC&&,.(-AD]ì.&>ºO 11-!'#*/=«·úåÝ붯¦­7$A¢¨ç(,[ŸŸ^4D«¯±§¤«³¯ž“˜¤´¬ ›¡µÉ÷ÍÉËØ¾k6K]?T¾¬Ø[¯©¬¼ÐÊDU¥œ§D4Ʋ¾IDWɱ²pR¾µK*4?b>(-+.HB7(*;¿Õ("'$.#&!:?E4/ñÊ¿°®¾êÙWK·¯ë=ÚºÑðɱ¹¼®´¬¤¡¤¨ªŸœ¡£žšž®²­§¦´ÍQÚÆÃXRia\G4Iéõ¯³ÖM¼¯®§°¾¹¶ºµ¿àèÂÀÈɽÏçÃÝ=F/*(7K047%(@?55-8'#$&"#$)5.-7AÑI._¼·À½¹×¹¶ÓáÈ¿îÙä¿®¯³´«¥Ÿž¥­¥ ž£©«¢£¦®©¤¬ª§¯Âã>-AθÌ_SN³³¾ÂÐ\ŶÀÃÌ¿Õs®¦¶ÂŶ½Ú_NG*&?ÜL/+&!'0.&&$(Œ ¯g/Žb‚¾/;˜"ÅÏ ­Y“Ä5¦’3 ‘Ð (5$¸¾¬Ÿ–’–Œ•¬Ÿ¨¿/.($% "31+@fÇÜÿ¹¥—“ž“‘Œ”š‹•¦ªÈªÐ/6.!.    4Ô© žœ©¤®¦­¢žš“ŽŽ”–›œ­ž£˜˜š˜˜œ¤°XU-/-'4/1ÆÆmÈYÚ,2==Xʳ›–””’–•£ ¨»Á¹°¨µœ™££­¶Ð7(5" !"%.Zý¨Ÿš‘’’—“™›Ÿ¦¨º²­¶°¬Ì¿Ã7- !!8Ð0=CÅÞÝÑ»­º§¨­«¤ž¡¯«¥®­²³±²®¨®ª¡ŸŸ”–›–šŸ¢§§·¹¶¼÷Î/3 #  *=Í´²ª­°©´®¯¯ ¢²À´ºk½áÖÆ:075%3, ' (;("&%:+7HýÌË·Ö̸§¸®°²žœž—”˜š—–™“œ£˜˜˜Ÿ˜›žœ ¯µ·dF,6*-+-# )%(,"# !09*JÞI¼N¸»Êª°ÄºgcM)7;;Bße§¯±¥ª¡§¥®HÞÌ=$" 241½´¡›¤“’‘”•””™˜›™š¤ ¦´¬·:À¿IÏÌ©¹Ò¬¯º¸¤¹§©¾»¨ÂHUH8$."( (,»¿®¢¡™•Ž“’——ž®¶IE1#! +.KIìØ¤·¤¤ž˜›™š–—˜œ—˜Ÿ©¦±µ­Âv»°Bí_ÊÄì¦ÀǸߟ§ Ÿ®Ÿ§©¥³¯»HÓ58S%",(  !$&&6'7H.ËÊÃǽŸ­¬§Ÿ¡ª´³4G>( 'c*Sʬ£µ¬™¥š §ž¤£¨¢¨Ÿ¯Â¬«¬¹¾ÍR»àIÅÛ¸U·°§¯§­¤¹œ¤·œ«ž¦¤²£¥ Õ²uæ73563E.+-,$$7+#.8G54PWEʾäÕÜ9E9?'Q4'5 ' #..s¿=°£ª²šŸ—–”“”š˜žž¥¬«ÌBl=Ka.0-*.(.610,C:Щ§¨¢¥š¦›Ÿ™Ÿ¤ ž¥œ ¥¨Ë­¨E*=*+#&):Y*9>A*8.,R1',ÐìSWÀ®ÒÎf½ÂÅW6;¯2:·ÊF¾ó>.0&!)*1#14K=6Åâ+59Cåè¢É“¦š´¨‘–ž’> 8ˆHœ;–-¯žª. §(½l4¶6Z¦Ãz3ª­°Ñ#ϧ¹;.™š1ª5¡Ÿ.FxX¬ µÃ=ÅŸ¹ª¢´²©9ºœ¨×@·Â0O *".?"!      "(_Å«Ÿ©«¬¨£©·°šŽŽ‘ЉЉŒ‹ŒŒŠŠ‹‹ŽŽ’Ÿ¨©¨»M.ί¸@D´É´®¦£ŸŸ–—›¨³à+)"& #*:\^ϲ¥¥ÁÌÀð,!3s4(+à¯Æ_ÃÆ±­®¦ —’”’‘—™ž¦–•Ÿ§ “–›˜•–˜š“Ž‘“˜«°Z0.*;H&*9Ó8 &=5+ëÙ5#      )(!**$)$#! (,E¯«£«¢™›¤š“““‘‘šš–•›™˜”‘Ž‹‹Ž‹Š‹”ŒŒŠ‹ŒŒŽ’›˜˜˜‘”žš˜•¡³¥¦©«±°í20--/!)4<3  $!# % *,)%-5-.9ű˰¨°®²¬©»¬¡¥ŸžœžŸ¬µ®­ª«º¯¥ª«¯ª§»©¤¨¬°²ª¾»¬·»@=j˺M\j̬´¶¿?45;[1))" "% !#"#&29C7$*)6ÊgT<6JC78+%8ñµæXÍÁ¿Öµ­¸:6W¹«¿Ô¿²­ª¯®¬²¥£Ÿ›š›˜“••—–œ¡—’™›šŸŸ ¦Ÿœ£¢ž¢Ÿ¥¦¥¥¤³¶¯Â?@O]T5(()&$)+  ()'++' !.+!!!%"$,95<7+",+ &7ø5(,<\÷RK<9í^¼ª²»ÑÉØ³¨ª¶Ô´¬¦´Ò³­Ÿž©¡ž£Ÿœ¢¯ÇÕsƲª¡«ÅÖ¶²ÁGHÉÊ`E?EwíSžã8/+)-:T5.;Òª³¼Ú¼D<>×¼r=N[>7))9@?/,,* 5,%*8R5*+40=>\¸µ¦Ÿ¥°«ž˜™¤¯´¨¡¥©š–˜ ¨¢¢¥¬¯­­ª§¨­®¨žžµV»¯´ÁæPGcR)=µ¯±ÉvHäe|ZOǰ¦º2;´«¶·ª¢­áZðç¾ÌE7U¼­­Ä>.=." .- &$#5+!,1*&/.#,;+#057=GfW4+èÀÔî<,!.9,,Bº­ã68{[I=?Üò[èýÁ©½S88+4P51]¹³Á½«žŸ½cf±²¹½¶¬«·à@*/HòeÓÎÑÀÔÔ×±®ÑRϤ¡¨´«§­½ÆÌ¹§›™œ™—–œ™˜˜˜ž£¡›™¥³±®¼Ö803GÍ´°Æ´¬®ÇëÃR32D¶·Ð;()'$""+9Ò¶¿ÃÅȸÃÌ»±N\Å­°G,#31!,09Ò¾¹×éTQ>AJLBEṴM'''!/\»Î¶«µÆËÏÅêÛµÍK<>ÝZ))/#)5ÕM?W[Î=0,4;:?-"#+$)9º©¬¹ºª®Âʺµ¼»<( &з­©¦ž˜˜™™–“”–šŸ£œ¡¨ÅÏ­›–”‰‘“–•’”Ÿ°eZÌRI9>¶¦ ¡¤¨¢±ÃÎͲ¾Y?îËp30#"0ê»®ª¥Ÿ­±¶²­¶º×Pì6+#GVO;:>@=:Fº¯¿äI^ÒS8$$*+)3]·¦®zFp:.&(CN80#%)#)F½·Ú727;::ݹ²ÃK2/) $3NÀ¯ª¥¢²Ì¹­°º©Ÿ §¯ÑH2&:Ïô¶¿Æ<0F¿³¹¨š–›¨±®³µÕSÿµ•“”–š› Ÿ›”•˜”˜ ²¹¯ê33i¶£›™—š¡ª´Ô¿²©Ÿ ¨¦ ®2$(*&/س§›­ÆÀßðôËÎôWÌ®¨§«¦¤¬²ª˜ŽŽ—¨Ïص³ÇÚº©¦±º¸±­¥’‘˜œŸ ¯¼ËN, %,!(9+->LKЮ  ±¾Ç¯¹="!./(#)9-(.7GX¾«µ\T[˸£š¡ª¦œ§í+ &*)'5G//-.:?@Æ­³«½C+*5"'/',;7NZ^ºª¢œœž¤¨«½8 $+!3$&5-=Q|ÊØG3+-/%"."!8ÏX.3¼¦¨®£ŸªµÐR<+-*-,4àÃô,@ư­¯©¥Ÿ¦¨ºÁI)!#&#,4'"?¾Z:T¤–˜š¡›™Ÿ¤£Ÿ®ÆÁ´®¨ž ®«ž”—›˜›œ¦ÉÔÏå~WG̹Ƿ¶fX»³¾ÂÀ¯À-+/$0..-(*6Ò³«©­¨¢¡­]éÏa:+-./0.1./-2Nɱµn>,P¼ju0%¼¾ 24@¦³M៦».+7,'+7& *"+nš¦7gµµ¬Ý@>O)*7/!ÈÑ/,ÙyFÊ ›˜Ê?%.E+")&0λ¿Y¹›Ÿ—Œ‰Œ‹•Ž—©Æ»¿X¿,2$%+#/Qª••›”¤Ð$'.&Y·±¥hC;$%ÔÙ;2#<$,A߯¯§Ÿ©øØ;& 5¼£›˜ŒŽŒš˜’–œž£©¡¨{+%2»ª™˜Ÿ³¸nÈéȹªÄ¾º¬Ä?'"!"(h³ž¡¥£¨ÐÒd--#& ! 0LJ[®¯¾H$*( 1á·®Í4-()/@ÉÅ5)9>¾œ””“’—¢¦¢¥®Âº¥¬  ¬¶3(7Cà°¨™›²ºÞD\.0Ŷ®Áç»LEK.2$=α§¢šžnA-&-,8=)&$.X⼿¾Þ3G15[pÄÍ~% ++>ÚO½½=l2<:-rº®£¤š›œŸ¡®ªžœ”“œ›©V=9E00ß±±°ÁÖB457Ϧ¦¦¡½¹Ê=M6# 02@³­ª·G656@LLÖ8.0!")7Ùü=N476#)9~®­½Æ4+*-r×S[QE3&Jº¡™ž›žž¡§¦²¿½°¡›—“›¦´ÃÀÒ_À¯§¦®¹G*&$(0.E¾©§°­¤º^E8¼²¾Äس¹E)'.gaB-"-367>ãL+/>>-'=Ê®µÅQ7OHLÕ½¼ë<<6'"&4\ÒÔ¿¤œž—˜››••”—𛍷µÐB(#Cµ§ªäÍÁ0'"+Ư°¸_ð?+H¹¤¡¯·¥¥¤¤ª¨µÆ×¨žš”—šš¡ §»¬©§¤½Nî5*$(EEùRù­®¹³±»·Å¸¸=F9k½U,!5^é9-<=2CFI8##'%%#&$)DJbº¾¶~6VÆÃÄÂÊÀ<,()% *=ÙÄ·©žžŸ›š”˜œ›ž¡¤¥£©Å7.31Ä­¥¡¯Ç¼·¸©¬§®X[féÕ[]:+(##+8½®¿±®»ú5.@@@3&$ %1-MÊÞÄ¿ÁðE95éÅë4,& !*7>_ÀîûÌÔ®¡©­¸¹²¶µ»«Ÿ¡®ÑÔ®¬¯¢Ÿš–›¡©¥¥©´½ÀÆF@NÅÅOB5.?Í·®´·¨¹TU03/;ÜùO(-!#;-@1;Ø.¿«2J51I':æC0|å?-.·¨¬¿¬´¬¼X×TIç? &J8iN0T¬4.dåήŸÇîá8/&4Z1EF¾»É±¶¼¤¡¢˜—“’œ›ž¬Åò¬À¬º¡°VIß2B¼í«¥Ÿ¢««°ÏÞ86>&/e.Wºµµ;4TÓ¼´¬œš®_;#  *#-*=]'  2LH°¹µ«Ø7-LØÁh^Ü,@»Ÿ–˜ž©´»Ý5M?.09·°¨¤¬¼¸Ø»»»¯›šš¦©;+!)4?À­ª™•›œ©¢«ª ••”•˜›ªÄ½¸¢—”Ž”™ž¤œš”‘“—žž¤½Ó?;ÅÙ¯œ››©¸ËÌ©ž››› ÎJ/$$*:À¯«­·?(9J¾­¾¸J:) 1È¿«¹8454RÙ÷ËYÌZ2. /o·¾_+ #;Ķä:$  !7EÑ`5FF6=À¾¼_>'!5ìԿغ»´¯¦«¨¦ª¨ÍM-"/V®»¬­¹º»«œœ›œ¨ªW4;/-%%8×§¥žž¦Ÿœ—š˜‘’“˜¡«|MÍÖ»o=Ì»¨—’˜œ›—”““–™¥¾I,!#+5@HWϳ¬ŸŸ¥œ—–”™«ÃN.&%):BLFDuXÙ«¦¶¯®ºÇ@0&('!$AC=?1:ݾ¨¡±·¹ºb+?\6'!*JÀ¨£´¼Ý@9  6MQm<>U¼¦¡®Ö." -$(36ܳ¨¡«ª¦¡›š¦«Ã2+" !(+7Ä{:_`³© ™ žš›¢ ®ÅÆ`ÏÎHJ~ºª¯¸®¡––“—šžž˜™œ «°½Ü¶»XßÅ­§¦«½½¨žœ•š¡­´«£¦³¹OBCÜÔèÏC^À¸³³¯§£ ›£¬È=CM[áA2! +5N5=ñTÓà]E6(*&%93/$$(&$.B=@9>ÝHÉW2.(&%+**%'%! ,OÜ:6.:8O¾dv/+,+..5-%&6=:'(/>JGA@eÍÈÙd=/0+1KÒÊ<)*@ezJPÏÓ®²¬Çͺ½«ª¨ÈïApÊ»¢°À¿¸¤žœ¢¦«œ›©Ÿ ž©¯¼Ë»µ½¹­»º¸¨Ÿœ››˜šŸ¬«Á¼³¬¥°»T]èIYÁ»J^㬠žœžš™ž©¯¹¬­µ«¼i-&6/7\@0&)J¼¿¬­­¤Ìp<..%*-*(% *T½¯®©£¯Æ_`>,0-,% ""(HâÁ¬¤¥¾A194001/!#'-('X_ÐßAã··®¾\ÈBCF4="*+;1&+8ÞÜGL»«¨¬´«ÉAògüP5¿« šŸ¶ Ä@–ŠªŽš¿$‰†¢„µ·%° ’š3‹Hª˜’6‰1,²0´F殕‘‘Š¡¢»/!ûM1 *ÛÃ0%+*,.Û«´»¨”¤š”š¥™™š· ž¦¨K7/*#* #$#8.P󻲬ž§¬¨­¨——šŸ—¡¨Î´¯¾à=)    %)++l­ª¡žœ™œ¬«Á¤«3VI~­¯«±»—Ÿ˜—•’–ŽŽ”¦®­¸¼Q.(1-34%7<Ï×HPƸ¼§«Ÿ˜“–š›–š ¡Ÿ–•’“““˜•”™——›£žÀ>/*+**<`<:9úØèFHIjÜ]<(4-$&-:B9]¨«Ñ®¢®º¡«­££ž¯®«ÅEB   /qÛ±ª¤¨±¨¡¢œ •“”™«®¶jJ:3+.' " !"*$)3J/@>3gCǸ¿²§ž•‘ˆ‹‹‰ŒŒŽ‹’“’”™¢¥¯]-=)"&ÛN1Dy®Ú×Õ¦¦¡“™Ÿ–›¥œž¥²©´¯B$!.8&A7=2Ç˿Ч§l²>@.E&7;28&%:ç62*C%("$"' "'# %->.F¶ªžšªª±­Í×n*´j7L'-*)&G韟œ—•‹Š‹”•œŸž™¥±¿¿¶®Ô¿I/2*-&-CPI-/24=It«¬ ¦µžž–—–•Œ•–—Ÿœ¨°¤©ÏÞ=#""##$/::5éEÌÂßÞŹÀ¼Ä³¸8>-Ac<Ô8(,HM'øµY,ÌT41'/&W43-"'=&!;@5[DɯU¶®¶êÌ:]EA9(;% )1@4]ñ'/¶,èãÏ«6ÂË5M+6F.î9,/Ý3&45+-1Å1*>ºÜ°¸Ãž­ ¡œ”˜˜“‘Ž•“’“›¥š¬£¬Àµ­ÍBƺÓöbª¤»·ãͼ±¼­ª­ºaØÈ+*4)C1!%   $H½§§Ö£šŽˆ–”ž¨§±ÃŸ¢œ¡Ç²D¨®¿ÜYPÙ«­™Ÿ£Ÿ›Žš·ª»ž™¥¢<-5Ä–™™®·ž¨Ÿ£HòHèD .75)%»µB'.Xz/F*#*±™¼?Ç¿›‘šš“¤¼¨øº¾Ñ©±âêH.C9).·¦¿œ–¤—šŽˆŒ‘™Ÿ–—˜R-!!ÎÀ0;c±¨¼¸±¥²·¸ÌóC¾Î@%&$)'C N;>)I¿Î?#+MG+,$1'/N¶¬Ÿœ¢œ•—œ—¦µ¢«­¿b΢·LÀ¡¨Ÿ›¤›©²¶Ÿœª¹«J.)$$",)"&6­íº¤ Ÿ°î¸¦¨¡¨¶9N--*% &#.4$9! ++1+1å&$%')1,#*B¿½²¨¦ž«ºŸ›—ž¢‘˜œ›«­ÇE®ÄLg"?ÅR¹³ž´®¸©ž¬¬Ÿ ©»º±s0f×4"0>'Eº¾ÁgX¯½´¤¤ž¦½²­È&&0&!$27eÈ:=[ÕP$-:#'30)8º·®§§Ÿž›”’š›œŸ°×¯O*++-/-3kµ´»£Ÿ˜¢Ÿ•¥Ÿžª¡¢Éµ»<1%(! ,DÝf­±Çµ²¬ ªà¯¬««Ë37&&##$/'/?"(/Gµt*=')("(65.O®§Ï½»¯ŸŸœ¡¨¬§¤™ ­ª¯µjjËÎ279ËÅ·Æ´¨¡¦¥©¸©ž›œ¡œ—¨´ÇÒ¯ÍË{WÄK>:8)# !,, ",=3/?266$ #4,.8B45ZF²£¯ª»¡˜¢œŸ¬®Mªš¢²1>bÛ©À¿¼#ˆ˜T¤1•™À8Q°M-´KE[<¼0£¢¢˜§³®·Û6±9É0#61ã&J;R«°—¤ª·«Ã¨¡Â§Æ72>.$#,6("(!!!'+!%4Qᦩ¤¦š’“’•”ŽŽŒ‹ŒŒŒŒŽŽŽ‘’’œ›£¨«l¶É½¿Ç¿Fð0óðîà5*+* '.?>6/9C=,*&'&'&#-));Ú¼¨¨§¢¡š”‘ŽŽ‘œžžž¢©¤³¸´bHäÏØÕKWJ÷¹º­®»¼Ö."$( " !*-4AtO@(&&),(2I>+.0))*.-5:×Á³¨¦œž¥¤¦ Ÿœ™“”“‘‘ŽŽŒ‹‰†‡†‡Š‹ŒŒŒ‰ŠŒŒ’—“‘Ž“ž«±ÇFOjÚÙ@/*(&$##*-1,+#  $#$'>üUoÀ¶³ºókRDbÁ®°­ª§¨µ¯«¨¨©§žšœ›œ›œ£¥©¶»Áº¥¥¨¢¡¡®¼®¬¬²³£¡¤¤¦§¦µ°²æ@0T]ξ¼¹Ñ5(4.*)*>@=89D:->]9+&*>>óÊ·´ZWKsîTá½¼¶­«§¯³¯¤ª¼Ò͵§Ÿ›š ¬«¡¤¢¦Ÿ›™™š˜ŸŸœ¨ÂÏÁüªŸ ¦¯À¾½Þ̾¯¬©¯¿½éâbi,&)$!.-*)"#$#!  #+*% &=«­ÂA:QràNά­³®µ½®­¦¨«¼¿Áл£•˜˜›œ›œšžŸœ–™™œž››—žŸ®¸½´¤š—𥍬­¶Àµ¬¬¸ÌOì¾·µ³µI-+*H磫¯»ËöD77J[;753@@PE?-" 3Ǻ¸ÓlPGB37Ln×Ccßжµ­®¯W,*8ߪž  ©­¶ÃÁ¾°±³ÖÙÉÊÃÅ­­·[& +bÆ·¶ñò;224CJMaTX:6Õ³®«È2#+>α¯¼Ë?..*'%%$$ #+0C9&-4/1## +3J<.+[¿³³·ÝDNݽɷ±¸¶¼¸­¤Ÿœ«SDɳ¦¡š››Ÿ§¥¥¤§­³¬«³»²¤žš›©Ë,.JÒ¶¡œ¤®§ª¨¹É˹½ºùo°£š¤¬È1)*=Ī¢ ¨«¥£µÄ½°°Â¿Ö±¯žž§¬l:*<ϰ¥¢ ¤¢ª¨¶LaßÃL++1YÀ²³Ò. .CB\WÇkÍG/!"/&9Þʸ7$"0'*¿ž?­`+ßw¢[Þ•B—þÆH_KH·¥½Ã·'(((úÚ-?(D´8©PaÎß¿»¬ª›ŽŠŠ”–©§­®Ÿ“®—Ÿ¿D(#   !*1Jæ1.6,.¿¯ŸšŒˆ‹††ˆŠ‹‡‰‡ˆˆ‰ˆ†…‡Œ–”•“•‘Ž’› ¾\1-?<<,2$$)   "-*% &--%*_ǰ¡ž®MS+9ïÀªž™š”“‘– ¨·¬Ÿ˜—–”’‘™¬áO8>Ô³¸­««¡šœªU3*+554ö¾³®¼9"'0-9Ô¾´ý-)$,09Õ¹¹=#&%(7BÙÚ;& )4ѯ¨¯Y,!-Þ©Ÿ£ž–”›™•—•“‘ŽŠ‡ˆ‰Œ•—˜’ŽŒ‹ˆ†…‡‰Ž‘—š›ž™•³æ0*/UyâGн·¬Ôj91# 9=C-      '"$%,& 7Õª¡ §»D-+1Y¿© ›”•”•—–šŸ££œ™“ŒŠŠ–œ¢§Ÿ›˜–’Ž’™¦¹´¯¦Ÿ™‘‘—§Ú0("(7M¹¶´ÃYø[d;% #0k´¯Â9, (@öĹ·´´·ÏH5=DQÆ¡™“•œ¤Ü?82J¾¸¬¨«¨ª¥¦³¹ÈLMB5Ë¥š› ºK'"*:=ܹ³µ²¸¾ÒÕe-$&/Õ­ª«»C%!.<5Ú¹¨¥ªÕ94$'+)/Iëï>-*)((#"&9Û¼ØA40+#(',=ßáÁÚÊáQV2+'2γ½ÞV]L&&)/0177<6E5)#(@À¼mâ˾ß9,)-127úåË·´²¹¹ÂU30D¿ª¶Äº¹½=/1)+),-5>GJO_È»»éKSÉǼ¾°¨ ¡ª¬¶U;8A½Ç¼­«¡£¢£³Òʺ°©ª¥£ª®²±¸J<0.8P77×¼¤¥§¬¹»´¸Á»°¥¢§§£¦´V+;Pãjͽ®ž›Ÿ¦§¨¨©­¹­£¡®¯ª³­Ø434F/+);ɧ§½Äiîâ>,3=lëFHXà3!##"(*$&4ØÆÌE8O?2+)351($+,./!$-Cí0#)>241=+; ¶©¬çP%Y¼hÏA*+ײ³ªÌ¬©ÉA7(.¹¶¨¸^AÉá©Â8QI@7ÕÝį§§¿(&7½¤¨ªª¼Ñ<,(9)$*9<, "d²³®8(#$*5D(,Cᦜ— ¾FI¾­¥¬°ª»¯º:BɲÎ'.×­Ÿ›œž«¬«©™œš—žŸŸ¥¥Ÿ¤«»0**4FÈ®  ÆE)0BÀÉÜÏȵ§«LsæF0 ,+/:)'&#+4E×D;EIÖÃÏM(+º¨œž¬´³ª«©º¹Ê¿¥£ ©©¦«>/ϵ«ŸŸœ˜ž¥¡¡Ÿ¯µ¢™’”›¨Ì4(&&(.b¼¶^3OENJ>6**0Ò°²¯­ÉR "%*64>:-G;' &L´Ÿ£®½.8IÊ»Ù袟Ÿ§¼\;t¾¨œššœ­5,5GÍͯœ›—˜šŸµKÅ¥–‘”–œ¥µh'%#0x`F.I[¹«®Ö÷-':6\®Ÿ£¡Í2*)(ENúPÌ>.·£­©»ÊÀD5;7H¬œž¤ª»ú<૟ŸžŸ¢®>$DNâÀµ©ž›™–ŸµÁ¸«ž¤¤››—š©G(&))(/.:N̶æ0'&,JBDä¾®£Ì,"->·Ç5*/:6./£°ã-#))OFº§¥šž«¦¡¥¨·»®¦žœš›ªp;+&",=K¸«˜™¤ž™˜ ­®Ÿ¤›•—Ÿ®I0"%$$$+GÎÉ60:GZ[,$(,LÊç>I8&-?2*)-EéA %&7fÔ·¿Î6.&#8ËÒ´³Äƶ¯œ½Æ¹µ¬§§¡¥´»ËH*'-c¹½« ª®¬¢››ž›š¢¤œ˜™œŸ´?9.-L:Fô9&94@ÈØÀÎG6B\mkTN=)$#+(&$%/@8eI5HöRÇn>P0*%(#&'6Ýf>???±°¨£§¬¦Ÿ©¨¬²°¹ºÒì45eܶ­ÍNÕË«Ÿ¦Ÿœœ˜•™œŸ¥£¥®·Ëâ@eWÊå2$():N0>ÏÀϧ¸:?.)3.$#%'*"!))1Xbͪ»ÉR<,6B)41*.27=P0293Af¿¯¦¥™˜£¥¯µº¸ÊúÍÇåîyÞµÑË@VÀ¬¯ª ¥•’“—– ª§¯·²­Ä²ÆâÐB?0><<84Yά§ª¿Í559'$"#&%"&--5̪ á³5R9­'çB+µž—Å­(¦°.Ÿ¢ª‘W¯µ@ÏHwW9É0EB'FSÈ2%×1L(®œ£¨íÉüÚTΣ›Ÿ–‘˜ŽŒ‹ˆ‹ŒŽˆŠ‰”ž¦ÄÇ2!     .'4/,<Äœ‘ŽŒŒŽ”›››£©¿½Â¹ÀJG./ʬ©¸ÅML1 *7»¿·Î»à2!#+>ÏßBÖ»±ª®±¾·§™“ŽŽ”šžŸ›’ŒŒŽŽ’“•Œˆˆˆ†ˆ‰Œ“–žœ˜”“‘”šœšž ¯®ª«§œž©·e2,8SK.-%"    #-9+ !#')6g²¦›””œ¨§ÕQ>Mº¦ œ¡¤§£¢¤ ¥ž–“މ‡‹Ž—Ÿ²ÞÞÁ¯¨ Ÿ¬®¿Ê¾wÈÌ¿¯¨›—™ ×'( %.2*&',ØÃ±û6(*## .[®¡Ÿ¦·A, &+'9º¥¥Ÿ£¥ ©«¡Ÿž™‘ŽŠˆ‰ž¥£©¥ž—’Ž”—œ¡Ÿ¢Ÿ¥Ÿ–”‘“˜¨é) "1Nu[n76/$%&))"+A½ª°¶E  =渴\8!)/=72/% !&.#0Ì£œ—›Ÿ®`0)$#-:»³¹¾ºÏT>GïÆ¸¯•ŽŽ”ž®Ø[J_¿­Ÿ¨¨©³ÐÝ]ÍÈɾ¬˜””›¢½2"# '.7;;*-( (-.>ë²®¨©´K$ (.wqßÑÆbDI\¼°µª ˜˜“—š¢¸ÉEÌ_Ͱ¨¡ž›œ£¦¨¦Ÿš˜™•““•¨½[7=?_°­¶¾»ÀI^Vâ­°¯©£¢­ª¨ÅJ'%*(%&(.,52543/!% !(4'+..-1-&*-+*&#%,×È´¾»µ¯­¬©½i=Ù×gTḦ§¬«­µÀª ——š™›˜—š¨«¯À­³´À°ª©«­³·ÇÄ«¡™š›Ÿ¡¦©¼¼²¬°Â˺°¨£© ¸sʯž›¢§¢§µ¸ÞQ8G@;2,.:;4BG.)-:̸»ÒÓÒ¾è7.%)$-)&#$&1>9:/++4À°±´Ó»¼Z:91''#,%$+,$&&5ßëGEK2/(',#)..$$0;F88/(5Ô¬¨»únþj7N;666BD;*4]ÙݺÈþMR­¢ ¥¬±¼Ê¼ïÉåOXÎ_<6)@À¸Ó¾½Æá´¥¨œ©³²ÅÍ¿¶·ÅÇÙ`ÝO.F´±­ÍÊ¥°Ù§•——ËL ¬PÜŸ¦·8ª 7.¢(Š£œL®Ä*›C@¨L©'Ÿ´:¨BkÙ*J(·E^¨]ù´­§¸­,Ä)0Jв@ÜTØKÇNÀŸ©““•‘‹Ž›Ÿ›¡¨­»©¾ë`      %4.×¶¦ ¦«­¡›—”Œ‹Œ“˜š‘‘“‘‘‘™ª¯­©§¨¥Ÿ©¦¼ºGK6â¶ÍÅÉÂÀ×*":Krº¤ž›ž¯ÂÜÃຮ£ž•—šœœœ¥ª”ŽŽŠ‰‰Ž“”ŒŒŒŒ’•—™Ÿ±°¤š˜ž™™œ ¯w2&$)2=qN.$$!!   !!&!77XÏË^Fð8:CÌ­œ›žž¡šŸ¤¢©©Ÿ—‘ŒŽŒ–“—–˜‹‰ˆ‹ŒŽŒŽŽ““•‹‹‹‹Ž—¡ ®·ÀB®¢£¬P59/$$ !/JÇÊF73"*''8<+-++/=l>;?B+"!&*/B¼¥Ÿ§¢¨±·ßÊÑsÚ®ž™Ÿ¥¨¨©¸½¶¯ª—•’•šŸžž©´Û19H¸©ªÆgX_9**-6L¨£¤ª»RL?4) #)9Éd:,&!'/3>(.%##3?NìN6(!!0OÉ¿´­§¾LPÈH7;>¸¨¦œžœ §£ª¼Ã¢š“••’””œžœ¥ÅG\½¨£¢ ¡¦¾Ì4# &ý§Ÿ«£ªªÃX¶Q=&2Ò̼»¹´[;:%5Ü·»·´»Î-?I+ %=Ú¿µ¿A.+%w¿À¶¤®»4;M3+ (:_M±«¬²ÈÖ:&"?º« ¢›˜ª²±Þ>'5DÁ»©ž¤¤Ír/ &C®­¬šž¤Á61.#"ìм·>4+/VL5$3ræºj-FÝ9¹g&&-jO¸žœ Ë;äɹ¶ëC:¼Å;?0*<'$.8/N*'%)-/-;:A4ÓE}½6C-"**.ÇT½¸=()*ÐÁŵ3'DÖȧ“’‘’–𦍫¡¦¤¯š¡ ™Ÿ·¿0-96,¾¤¤©ÊÎe7Hì­š‘‘”•—¦¦¬²¨žŸš™–˜¯®°]8O´Ÿ˜ž¨®ÀNJB=1;LïºÀ¹­N2#LẾÀÈ8#'**# #+().%%9@5GW.3 C貫£±ÇG=;.&;ë½­®¥Ÿ®ïã)%#8ʧ¤ŸŸ½Õï9D+"X¾Á¦¯¶¿ß*'$,Õ§›”Ž“—›£ªdÉÀ¦›™˜¨³R/07:Ë­§™–£§¾µF(".LÁ¾°¥¦Q6(!/=»žž˜’’™Ÿ¯K3Fµ¦¦¤¢žžÒK5-"$4À®¨ž¢ž§«¥¸/4aµ³«­¶;/' 3dƧ¯§¦·|2# ,M?nA!7@͸·Á9%'7;^L&*:ã³¥œœ­<4%*-0ò³®§ž¿Z/'-,.'ü¹È°Ÿ—‘žé8!".|ê«À>+'(#&4\Ÿš”ŽŠŽ™ž¯Ü°Ù©›•‘•™§ÂÌÍQ;;L®«›š”Ž—¤À2'+)Z­¥¨ªõ3)&!!*âϪ›”Ž”¦æb?H?æË¨œ–§ýU.,**0Ñǽ¤–™¥i4% -Õ¾§£¢¸<<&""$e϶§œ•°G+!.ÀèÇÇN&(5:\¯¤ª´/8ÛØÅ;*#8f³©ªµ- "󯦧ÖJN/%%!"CÓ®Ÿ›š Ç&$">騾Þ9.(·§ª™–•¼ÚÛÅ˺¦›—”—›¤¤o>TM©š”’–—£­ÉÚË+*[´ž›Ÿ¬°ÓN&%)$?µª™™™·ÁÎþ_@mµœš˜š§¤¯<2B-Ç®«—•’›¦­ÑeÔ9:L?­£¦¦«Éç)/?»ªŸ ­ÎE1'-&*;G88-%'-RÙUF+%,-2*)' ,.<ýü98(''")"2DÑÄxÜPA(1-FΫœ¦µÕOH×[6ª¢ œ+ a!j©›Ÿ¦®´˜ž»Ç¾c& + H´®¢™œž˜’¶ž’­¨Ë¨X("06) ((!ê0&,/ʶ¥žž—’”š’Ž‘‘—›’Œ‹ŒŽŽŽ”•š•Ÿ™®½-!%F&&A*.9Ï©¢¦“Žš›”˜“œžŸÉ¬¥¨ž¢  Ì®©­Ÿ£¨«¨¦t\'(# & !".KSñD?Kέª›ª¬¾3E4çæßÙT2.# )OÅųÍ[A³¬­¤«¯³tÅ­¢ŸªÀÎ¿í°›ž™”ž£›˜™¥Ÿ²J25¿^:#$+ÙUÁö=[±Ã¢ž•‹“ŽŒ‰‰“’‘’•’’’“¢²ËºôGÁ·º®þ*)(<%"5+0PáÙ8)(('+r¼§Ÿ¥­¯­ªª¡ ¬£¢¡”–•“œ™­àËÜ¿±¯_*  +öGI?#++!.)'\¶[¯±¶­nLh^V¥£—šª¬»Çä¿1'+! &4.$*,*Ë*|e禩Ÿ¢–——œ¢˜§¯¨« –žŸ ®°±¤¨Ä±£ «¡žœ“™›•®µº«½¾°\44 ,#""97𡤙™‘Ž‹‡†ŠŠ‘‹••˜¨°hóS.#& 0+-,?}IJ§Y¯Ë¢ ®®´£ ˜¨°¤¥SOý%'"$)"ÌJ«¸WµËÀã//-!0   ,K($aĶºAǶ«Á©˜ž ¥¦¾´NĶ,9BÕDJ4,!<%),o.'/K½ÊÝ£¥Ÿ’“š”—’˜™©«»Ú¯³¬²´Í<è<*;FBºé¡›œŸ—•™˜›µ˜ œ–”ž¢°¡>»ÉÞÉ<ÌǨ9ǰ¿´¾G%1/<¿£¤´¼·­v¬¬­¯Ÿ¨Ÿžš·¥î-,%$3m,*!*0§¾Ã•›“•œšŸ«¶«žž¦¨X6  (-&0/).!<)@˾½ªÆà§¹­Ø/6.% !"/KK³{½¡¨ Ÿ˜ ­Æ¸ªµ£¥±µn¸f,--3'س\#NÓ¶­º­;I>C­¤¦©²¨¨®­ª´¡›”—¤š”•™—Ÿ®¹®œº° =DÖG;M!5»®³Z»ž©ª”¡¡¯ç¨¾¥œÂ§¾Ï­Ú²;.Þ¯³«íÛ¬³¥®¯À?I*-_Ï2--B.(5I8QÇ£o½®¨œ¢œ ¡°4½·©Þ6N-)%)"!" !.";³¨²¬Y^œšš ¢¡¢£ÒY35 *%(5LN 3?«˜ ©¼"DϨ¨1IÊCõ66Þ)?¸Ø¤ã>/]À»½£®Ô¸*,.:Dì.=JFœ»Üº°žŸ›£œœ““•“–—šžš¨¯(A>#+#64P*L­£»›˜š¤ÇÚ`:ËP7O¹ºÄЩ“š–žŸŽŒ‹‘𛍤™Ô38"!"".-+-'+@* /4$'*66,ÜA4æ*2   *0µ©Kš–´Í«8@\4D=@³*3Rw×Î>.½¬«ö¯¬´žž¦§Þ)/7º¯9ÅCÁ¡™š­Í¢ž˜Œ•‰’“—œ Á7DN]¼(*?M¸ÕJ:Þª¡Ÿ›–™œ‘œš¦èD1Ï}a\Ó彬×̻ĥ›œ›˜›–›žž­î,'74"')-G42+>ÛÁ®­¬® š›˜šµ6M]\]%+EËí5­¾ÂÎ-"% !!$,,#++!'/>Vµµ­©¦¢¤«::ZF>>DL¹Í5ËÅPCÐyǨ¥š£œž¬ùÛÊ;L׸¯·>º³ÍÆ_¶>¢¨©˜š›™™ž¡ª«°¼>Xý´¬ÂV:?àÌ]WPǹ®¥ŸŸ¤ ª±µ¾õ;C3[MïmJäTCCâWg±³¬Ÿ˜™¦Ÿž¥­¸ûIׯãÑáPHTÓÛÁFÜüÌ¡¢©ž²±·©»C(,/7G.%'(,/)) !)><_ÎZDA.,&%(;E9À:78<&)&(&"+&#-6?<7H[d­¬¬¦¤©«²fBxÊñp\àDïÂ9µ®±¨Á¦¨›Ÿœ›¡œ¦ÇØmŶvRFüº»<ſ諵¶¢¤§¤ž¤Ÿ­¹ïY®µÃ1b`ǰ;>ḛ̈¸®µ´¤¤©¨ ¢¬±úÓò¸:0>È^]N7½ÃÖ¬£¤£¬¨ œ¢ÔQ¸²­¾=BлjJÂïíϰ¦©«¨«ªª¨¯S=<ÆÙ>+$7/ *(*+-()Zî?m03;F<#"! %')%#)9(&!")+ 9$x·É·®‘˜œ›[­¨­œ®Ë{½Ð¾Æ?JB*BÏk_Ëœ¤ž£°©¬ªšž[9ÉY±È^>°f8ÆÏ@P¤¢¢ª¢žŸ£¦ž´¨»¯×Ö²èk¼Á»f9ÏDĨ­—Ÿ¡¥™›žšª¹­«±®§¹F´BJ­Û^¸­™™£›’—™™š˜ °³¨¬Ê¼º½«ÎÁ´Éµª«³²­¿MBc/-0"& (PL,EÖA\àG79+)*-A*.%* -&#<9ÌÒª­®®¦®¥¥«°¹­·¥¥§¸âIÜÇNÀÎË«¤¦ž Ÿœ›™žŸ©·³¤Ÿ®²Ï5=T*SAH¼¯«¨¥¥¬«©§®º¸³]®¦¯­ ¶S¶Ïƪ²¢¬žœœ¢¢¤¡¬Á·¾·ª«ÉÑýsH548࿯¨¡¨¬©¦©¬ÉÃSÞ¿¼®´¿ß¾aH_\Ƶ籥¬®ÛìÆA3+-*%+/<7'#!$37!&$%% ((0)"6IAM¾µ«µÂÇnB.@n±²¸¬«¯º®ïÊÕF·¬­­Ÿ ž¢««­Ôà·¨£ª® ª£¢Ék;ê`®¸·¬¬§«¸¾ý9/>e´¬«½®¨«¢¯¯»½¬«¤¢› ©¦©®¾ÔU¿©¥¤¾«®¥¦³ÂT·°¹»±½¯¯µÐ^B./86ÝҾʿա¹ÀµÀ¾®¯Á¬°¾¹áPè<*( 4=<99+D:-2$'&#""#$ )+,,0.5.%/1+/,+.-$-" (&07ykä[AH9;ÑeòùV^ÒÇ2;1(0-*1JÓÆ²º¾·ÎƸK»­®¬¤°¯®«ßÐñOÆÓ¯®£¡šžžš¬©¦¤§¨ž©¤­¨¼ÃI**59=Q˰¸¤¦§©¼´·¦©ª›™ §¶«½}ßUà幡›¢£¤£¦¨§¯®¬°Ÿ—Ÿ¨¼ÐÞõ98_81X·«¦«ÎµÀپٷÝmµª­ÅO4)#$#)@)"RÓÁ¿DX5LGdëMC+õM9' !%%"(,./;<>=)!(+)41N5.:,b><ÙÝ:Nå=L:&%((553?H˵æZÔj»·­¹°¬ÇµÀ»Ð^>2BGÀ·¹°»¨£¨¦¨¤¡šœšœŸŸ©¡¨¬<ããÔ¾µ¿È®½µª±º¸¯¥Ÿ«§¥¨¤©©¼±äP¶¹´®«¦ª©©¦¨©Ÿ œ›Ÿ ¡©³¬¸³N3Nƒ¦¶‘£ ˆ-L€,=µž&­¸›Žª¥‹½À‘Œ!†- (Õ' «®¯¢Œ“”‹•¼¦ÅÚHáN/!''#!'ECÍ´¹öª˜Ž•ŒŽŒ‹Œ’‹ˆ“–Ÿ±\H3""  #-/),*8&+)",9¤®«¦±¥§§­º·o·>+(!    #!)J=7;:ÒÔ³§£®¦ª›¥œž¬¬«¤¥´«¡¹¨¡©¹¶¾O¶Ì:.>H3MN½^G6êÆAÈ9ïWi?HG+ÑdÁ°¬¡ŸŸž“’Ž‘Œ‹Ž”™”—ž­±¸kÁI8/'%%)$"$5,=6Ǽ¼¹º°Â³½ÊÙO˹¦»¶­­¦§£Ÿ Ÿœ›¢•—¦ž™­ÀÊÒÞ17+*"! %"BK5=b¯§­Ÿ§›šž™Ÿµ´¤¬°¾a-+$  '*&+,# 0'.5/:޻̯©›™›žš•œ’”“”ž˜œŸ¶ÈJ7+*$+ .Û/%$,ZCØK²Äͪª£·°±y¬²BL¬¼£¨¢±œ› š˜–’œ—Ž”‘–ž”𦥧¤­»°B4+,#(* .."/8)/)%Ì7­¨N«®ž¤œš ¡¯£Ÿ£©ä½¯HIÃ,1%+/-.' -(5­31-P/M5)   /-Vuè«¡•™›’“““™“ž ¥Îå' )--iñ­¦¥Ÿ²¥²Ÿ¯­ª¨©¯¯Å¥œ©Åä³Å·Ç·½«¹Î©ª§ðº©Å¦¾ª¦È¥žž™¤¦ž›­§ž¹¯¶Ó¾°B)0)/$'&$+ÙI¯«²šžš““‘ŽŽ”’Ÿ˜¨²¬^(!**"##!.%%!ȹU¸¼«¥Îªœ¸»¥Ã³°L_ÎmBY*22'4$*#%) $&'.*)7.¿*UÑBBHDm®P½2T³«´°©§¦¶aÀ°¿2Ý!3+  #/+/-JÞbÇ/µ¯±››©¢”š˜–œ•—˜™•–››ž¶­¯L22%, $!$:/&>¶¬¡›– ’”‘™Ÿ’’œž¡›ªtµÂB2:&8,OEJع¿Ì­®§·¥§¦ ª¥ ›­¶¦¡©R«´¶³Â¨ÈKJ»É&>u6$,,%(+!%$:,7È08G»É{zqªE½O[?_-+;5" *"*%"'$$+*6. *ç&&+>`29-J&Zú8H6:e[/´Á¹<-B57):$"+%*,/N,/[ÉAÃ?·¤¡™«ªª¡›£ž ¡ŸŸŸ³£›µ³£«¹¿­åIº®£ãÒRôA*%D¸¿Þn³=9M¦ž ¯®¥œª™Ž¢’«0‰ ¨ž,¿S¢²H-=E¾º:È#>½¼›Y½®èÎ5NNÍH·è*Ê=#ß@?µìÌÜô2¤¸¸ž[¢®ÄB²øÎ6-69<#97»0**,0Þ'H*¹.,mí¢µ½±9Þ¯˜”ŽŠ‰‰‰ˆ‰‹ˆŠˆŒŠ‹‹Œ’“ž¢œ™“•Ÿ«À÷Aò1.)   !3+!"#=IíÒÓ͹²®ª­¦Ÿ­«žœ•“–“šžš’ŠŠ‹‹Œ‘ŠŒ’‘ŽŽŽ•››’—¢¤©­¥¢¦³ÍÇÎÛM,(&!( ($""!$($+-Z.%GUuQU_Þß2/EFÎʹª¤¤¡«ªœš’–š–‘Ž–•‘Ž“‘”–“ŽŽŽŽŽ‘˜˜œ˜˜™›œž›œ¦´Ò»¾¼º¸Ö]93%!)&;.%*0^M2%)0((! )DiB4þʺÂÒNɸ½®Åâ´°£§­³±«¬§¤  §¨¢œ ŸŸ¤žžª¢¯¶¥¤Ÿ¦«­ª®¾Áµ¡¡¨¢«žš¢¨¥£¡¬¸¹²°¹R55,.1>»äÐÉÕ®¸¼¾IJ:3/ )-("'&",itÝÆì´¹¶½kLRÕÆÁac¶µÀ9FÝØ?<1bÇ×ÍRÄÊÁººO?XÔb3(7JÝI2^ËBBFÈÅÀɵ¨§¬¹¯¶µ·®ª]mÛµ·6&.<,+ )?@:þÄÇÍÎÃÂ>5ZëOP:AnÇlúÀ»ÆÅ¸ôïø½¹EW6G@6* &#'  !"!'0MB=K\¿Õ¬¹ËͲª®´»¶æ´øoÃÉl4hÉÖÓÏÊQ¬¬¥¬©­·¦²±ë°¯Á¸Ë¯Ä®´Ä«¨§§ª¦¨¥¢¤¤©ž¢ž©¦¨¦´Æ¸\U9=;33&*).%'!":B1<>KÃǹÜÏ­«¶©·¾°³Ã±¶¸ÇËÖ¸³¹°ÊÓ®¯¬µ´¿¾¹ÊþnºÖÌá¾½·ÁÏtÁª°±¬¼¸±§®»¶®©¨²¶¶µ³½Ì¯¹NOGIrJJ>;H^Ï=9,->1%',.,(.30.02AÅÆºÉ嬪º½Â²¬½ØÙ7ñRíàJ?.72S/49/JAÊE55-JK:+.BUËÌüðÁ»¶É°»¦¯©ª¿¨¬®­·ÆÏ³À´ÂMÁ¹ÁÜTibÃqFP<×ʶ¯ÌN=pM:¼=ÙÑFßÅé9Cqù¶<:9IQÁÃSÂEH[?D=¿«¤¢ ¬ÃM@PNe¼Î@+)"*%*-Jd::Ä­¤žš–˜œŸ¬ºÀÅ×¹N4=bª°£Ÿž¬½ÖëÊRB=ß:6/;CƸ¼\4'"%9?ÁØ©¸ÁT;¿È­°³²]¿¾¹®µ¯²Á75Ϫ³¶©°­]KëͶƽV=-,1'-/8V<0o´© žœ˜œ®°²µ®ËÖJT9[Íĸ¨¡¢¬naË=E75øV/(?^¾Ä¿KG(%&.7L̽«¦±e¹Ã§«¬ª²»È¼·¯©®°½ÒY³±±®¶²¬´×Ǻ¬³½½Éw41#)//64.#EÍ´´«¤¤©³Ü»¸¿VH?J.A=[Ç´¯«±ÂMÍT;5?>>'+HjÇæiI4* -*GPÈ´¯ºÏ¿¬ª­¯©²ÊèÔʼ¯¸Â¼zѼ°°\ž·ØÙ¼ë©ª¸¶Í]3/;0C7Þ=:éôº¬¥Ÿžž¦¦ª¬¥µ¾ÉSL8E5겫¤·®»½¸Áú>ÏK>J6=ñµ¯ÊF,$"'5I¾Ó޼¯©¬ª­Î»Á>Û®­¬É;À°­·»½¼½À°BC¯²±ÄH/7-(J)E.&/K?=µ­­Ÿ®¯ª«±¬ºÞm@.b*$Lv¿µµ>ÌÅ`´Ñ~b<.ÍH,ÅØtÄA(** #!".3`¶¶û½®µ¬œ¦Ÿ­º²«¼Á«´£¦¾´«ª³¨¸®´Ä¾ªÈÅ´¹¦¯[0=E4ÏSâ=:.ÐÅEÕεŸ«³¥¬È®¯®Ð:+^2+2O¿´ö6غ>ðlCó>:kT12JK×<'#%" ,p½4ìÃLê½®¹L¹¹ÁÚ¿«¥¥Y¹¯Í¾ÄʍØÌ®MÀȸ±¶_;ê@sÅȼ¹ð?¾ÛSȹªž¥«¥´«­¯¸®Ì>ÏbJä½´¬µNÚwÀ½ÕļµOÃU7GKHXG#-(' "#"'*;^-3MUWkÐã¶àȯ¹³ª©§¹Ò¸¹Ìǽ¶§ÉÞ^dJ\À|¼V?ýÕÁX»Ó·æ<¼[Ü¿¾©¥¦¶³µ³»º½²¹ÄÁz\Ú®µ·ÎGÚÔ»Çڿܼۼ8PTDæ:R:02(+%3%(*,1,+/:CKðd̾®ÉȴŪ«¯¬¼º­²¿¬»É¸¹O=ý[ùñÜbZQÛj{¼YAÌÆÉÍ·Ô®¥§²¯±º´´°»»«®¹K»Ö¿¼Ç¸¿¿½¾ÄµºÎËɹ/'(7¶±jËY 4¤³!!1îKÕžÌ "ý2($82&4,L3)2+6QW9}.@ ÞÐY͹))64°èa²Ä[E«¦±=íÀ¹·¿ª¥¯¨ª¨ »¼4ÀÄ4;/D&'('V1¾® ÿ™  ¿ÄÇa»Ùª7«L´« ÐšŸ°*,^NÙJšš¯L^47> )I_©ÌD>ÝY®£vа¼d¬¬ÉŸ­é=GL¬ $<>BÚ¢µhGsἬN¤µçÎez­ñB±¬®½¬®—žÎ©¼V+¾LÕ¯>§¨ÀE??8S#!*7ÃNÌÃÀ;ËFÄÆ4Ú¶ÉZÖç@W0²©¼¶®©Ÿ£¬¹>mjÕ»ÛúODk,>µ¹½ºº¤ ®©Á²YUäÀÂ4_¾Äaöí.B'%"'S)b¼²²Ê[@ÇùM¼¹Ô³Îд32´É°³®ª ¯³­©¯Ê¼;»ß7ºº¼E×:¿/&+$)"008!I®«¾³>Tg<ͪʵÙçÃRL묽ب®¦ž¿¼³®Î´gM½(LÓ¾ÕÛM,l*1'-#0"+õÍðáJ9»@Éëªsº·ÃÝYEi°ª¬¢¯Ÿ¯¿ª£¸¼¸@å\[òÏÎEu8ÀH-')'#28'!/^±ËY94ß_·ª­³À̹³ÈP°µ«¨¤œ¤®¼¹§«¯OA<9.8°^Kq7Ü/?.&&!1& ,SâEG¹ºÕEƳ¨¯¾¹®¤­ §©Ÿ¸½05ZNÀ=9*+.!*2Î&E 1%.98o+ݺ>I¾mÈgºœ¸&(?­›Ä¸T.èDËÃÊJ«ÃH¿1OÒp¤¿èíÈâ/ÓÏØ¨¯L´Û(½©¨Å(6MÞÓéJ,,É_.).-Hºò;8_Z-Ã1Ũ¼s$*,+ÊLè¾¢Ÿ›ŽŒŠŒŽŽ“𢛦ßÞ®;8'&%%21; #.&%JC¾«¼# $²ªž±e<  #$"(,3º°Rc)>?5Ï*-Äèεô¼?>;5é=¯©¨³££w1/µžœ ˜˜•˜–——”—™¡Â«Ÿ¡Ÿ§ª°º®»ÌKN-,-)&J%+=*ôµ­¹ÍB8% #Úʨ®GÕ6(,HkÅ('â6)D»»h..76+&?7<77U½Ø¯o?=&&#1»®¶0I7k6À²=@@0;0@ÎÉKL)/E=0ú<):10 *JPéVºº¨ª›©.>13(0<ßÈ»¬°ººM··¡¬¡—œ³Ç÷¤žœ¡´¿¤®­¦ž¦·æË00) '"0=9O,7ëÚb;4*(+5Ø»ÌeM5+>¯¤ÆDâÍK=:+BH=ýÊÉ&)1O9.+)"8;Ê5=:}ħŸ²®hOÍ>9CÀ˶Á½¸PL¾±±§ž¥§ÊY´ž›¢¶¦›Ÿ¥©©«§ºI¿c3'+3A/$>F8J;Ì»M:2<)*I­ªË-.:l¼ËK¢¯ÄÂvP-2?pú:dI60% *6,$ ).3*2Yh6A¸­Âß;µ\?G̰½±¹6D潪¥¼¯¯MN´¦œ¤©«š™ £ ©¬ÍÅF6E9ÒbAK[+)({ÑÇ3%KÈú2=Z¾²B43U»i­­°½¸º8VP9oJGSZ* )/:.%*,K$*B&æÝ¯ÆB4@¦pÚÄ»¤®¸téÆOὦÅÏS/,ª¤º©Ã£•¥³œŸ¨ÈŸ¶`\JN°½6E+)E<¿ã!)ÃÇ5'oÀ­>#Fµ¼/´«©Ô :3FS¸¹Î(UÖ%958!"'")/+<>ÈÍHH(>P:29V¸I(E¸¸¼Í´ ™¦Ã×Ç:Ϻ¼Ä(>P)$(/'%'+('G,'** !(^23=ÊIi¾Ê´Ú»>5êÁ¢š£¹¬·ß³Ü·¸P@,%)2.8/(, BçG-9.)'"6DåÒ?M4A.Ú:S¹ª¯7>5ÞjÁi¥žŸ¢©š™™¨´Äò_0).=)=#8%8Z=.Bq=GApȵ«¡¦³ª°¨˜š›¢•˜™¡¥¢–˜Æ·¡·§¤ž¡µ½}ÚK:9729"# .=¸bôÁIÖÊªšœ¦š”‘—š–™¾a5*+W/+## <´X.@>&,&?,!!-/[Â.Dz¯§£™š™•—š˜—¡••©š¢®œš¨žÞOB¶ÁL-lK5L+2/<3'*+-,55<$ 78.&8A¦Áêè/¬¦PÙGcµH´´ºRÆ¿ŸŸ–“£Ì¾§«H.,%PáÃÏÒž®›¢®œ›§ž¨£¤Ç;dN°²+Û¡¥á8­¤Ú±¢¥™™¶²¢·×¦«¸9   '5$éÃn§¹©£›‹Ž‹‹‹‹Ž”’“•›À®²6+=ÆO¥Å«Ê¡Á¨ §—œ«®Å¤¬îªÅ<5Õ:9ËJ¿SÚ'5Bº¦´Ÿ¥Ç¬Ð®¬§œ¥¦æ:Y6Lc(ü=,"$%*=È´—™•˜“‘Ž‘”—¥žà=BO-82$)4< X$5=*Î9HY°¬ÇŸ§À¢¹±¿¦µ½¯±µ¸ú1.@GB-CÂJF'/Ü_Ý>ÄÁË6=/¢^ž°¶¯Ê%;5BÅ:ð+&$2@"γ¾Ä¹©¤žŸ›ž–— ª£¯¬®œ¼ÄD!¯¯Ü¸8.42)$ 7+:"%=Ë3T®¤­œ¡™˜“™›™“’¡¦ ¶OM */!"1)C8/°ÆÉB>ÆÙfÜ«WÏJ¼Î5OÊÁ6رTDÚ¿=@5H]°§²¯Ò°Ÿž£—˜šªž›¦ŸÒ£¡³Ì>:,Ç.--*»wÈë)Êѯ¬«ª®¨³¼©¬¢´²©ÚHV­ÊżBG=%î.("1:!(«KØð¯–ó­›©§ž¦—̺ĿÏÏ·º»*Ý59Q?¾p/=GPPGÀ=@§²?63¼É¬Å.ïï±£¶¨³›¤Ÿºèªí¬®­X»Z<ÖNW(").-/#<@-&6"/.é7»¯É[:WŸ›™®5?Ê­¶ª¸Äª´Î5%)458'A;&4K¬¼5`ç±£¦ÊÊן›£›¦¡¨ÖµÊ»Ÿš¢´N.7)í*5 $%.  !)A4.Ʀ¢ š³¬¾­›¥“‘˜ŽŸ/ö+,Q׿¨˜©É8!YMC5! +¹—˜—ž£°¤¼¼©¡•–Ž™œ§·œ44K³´KÁI8Ð.3¾¯D"("/5)G/!' ©š“· ¥Ô6®žµ¦ž­¤ž§¼»TA6pEº¬YÄ^77+1³¨J+[ÅE·1/H<()(±š™ž­¬èXÙ§¼ª½¿C[ÀBº®ùD#;­«HϲÁ·B˨¤›§ÖiÜʪ|/0^!v´ž:IR *"̺´­ºQ<é°¢ª<@YZ]沬¢¡·ž²ñ«¥ ¾B(6,4Ä/?+""'*íJ»Ì7-*û¯ªžÒ;R¿©¬ªiÀ©úµ³®°©ŸÇÒ®¶?Û¥ª°æ19(1J#*.&8k?"6Ýΰ,/»¤£²¤±§¼¶»¢¬zî0B§®¨¿Û¬ª±«5˪­ 0&)*,4P,)#') ,1*57`Õi;¾§¦¯­©®·«¨«œ¸]\°ºÈ¿³¢¸­Ÿ¼ðNñØÚÃH+%$.2&G*-&#DÖ&*Ô=/:Á­ž£®­¼©³®©ž¨AƹËÛ½¥ °³®uMÆë¼ÁC@(D'&&/*&&"-8$0,2˪ɽI®­«¦¹¤®²½Í°¬P®±´¹¾37/S¬°¾:7Qè- '.-6.3=#/PNB:6:]3¿»Â®^ȯ¥½¸²ª´¬§¨­Â®±³­»CR²pð·»<ðÉB5"''L* K=40*7I+%5@żwÄ»Í]ª¬ÂǬ«§£®°¤®§­¾ÀÀï6´·Ù59KN4/#'&%!!:2(;.5#K.6<)Àµ­¼Æ¿·VÈMJP'C)+2(/+?&.1+3*C?6/:ÇÔÆÎÏ´ÊÍݺ«°°­¦ ¬°»®­»º¾Ü×[®ÊÔGMHNG...2=)*'./1:0FL3,-5Å©­ÌøÚ»¯Wkh¶ªŸ¨²¼Q³¬³²¼»Â½VdÈlܿòE)*2=-!"$ÜÆðOÄ) ª£¬( ÔÇÛÈ¢°MÒ Š ¶Ä#¼:š¢52Ø0® ©±ðœ·Í¸Kµ/ÙÍ<¶HTÄ­º,¬1"Ø">-2."..0F,9°ÕŸ¾¹Ø˜“•ª•šœ›–œ— —©•±³ŸÃ§ÀÇ,3+.@'&!)%,%.0M¬©£–™”–žœž˜™–•™•››œ¬Ü¸ÉItXÄ¥¨ªª¨­ß2L,<;9ÃÛ¸LM8-&   %,8)+#!.MàŸ«À´«ª°Þ¯ª¥¨©±®œ¡›¥¤¢šž¨¥«—–‘ŽŽ’š™›–—’”•˜¡ ©Z=Ù´k³çª£ªÄƪ¶¯L751S>C:»ÔÙe)&++&$#(* &!@3*%#%16µE7.0)%%*"+$%$IØÍ·ª£©¶M»·®žžž¤œªµÓzÊ¥ž›š’•”ŽŽŒ‘“’–ŽŽŒ‰ŠŽ”Ž•›žœ––›Ÿ›œ¡®Æá[LÑÅU¹Ñ;*::+RöÈ)&;  "$+,%à¿ìس·¨£¬¤­°¡ž˜“•””˜–Ž—™œ•”—”–œœ››”•—•–𦝣™–˜—”•ž¤¤¶Äï¸,&/,D8,&!-#"*13'!(%#!%(--0.UPÌÂÅb½Q@o´¬§ž­ §¤Ÿ¯¬¯¡¢ž¬¦¨­´¬¾¸¯¯«´¸¤ª¯¬³¶¨£¢¤™œœ¢ž§²µS¿Ð*(';4:0& #&$,0A5-9:L:-F¾²¬£­©©ª¨Ÿ¨£››—™¤œžž›¯ž¨ ›™››•–™’•ŽŽŽŒ’˜“›ž£«µ©­Ñ§½[4# %2$/.>ù?N:F<84&<'00'(2(!!)%2"%#%8#,Ä48.,19>DýèÏÐ1>=/BH*%-04ÒKMË˯ÁÂÒ«¦ªšž››œœ¢šžž²¹¨É¼¸ç[°Í/,!"18,<7OðTc½ï_»^;ÉfjÊÆL»®z[54IA1X¿=N61{ÐáF5&6=/Eo3[ÆOÆâ..ÑmÞ¹Pë>+-FI<.3 ,64<ÏÞǶY½¬­¯œ™—𣠙•›¦®¡¦³¹ÂÒ°·/=*).-2648=.*FíIì.&:ÚF/0?Ù½L?-/3W4GY:K2+=ÇÏ>13ÆåÞ?È]°«¯¯»Êµ £³ §ªÇÖȬ¶Éö:9?F5kÐk½ÀôÞÆN²³¬¡¤œ®¶¶¢œ£­¹È¼±>GFB].''+" $2"'+"K<=(9*Z½+»´Å®dḇ­U”# |”™.œ#ž"­- N¿ª6ªT)³Ã§±ÞÂ:Í=.­Tj!-8O42861#0F^:¥™¶“˜’‰‰ˆŽ”›š ¢ÃXV))"O%_    #'ί®Ÿ¦¥–ŽŠŠˆŠ‰ŽŽ’“’••”“ŽŠ™—•”—™‘–’˜¥œŸžŸžœ¤¹."     +Y39)/91=MsÇ¿ÜPËÄ»¤¤¡žž¥¦¡ ’“’‘”ŽŽŽŒŠŒŒ—•—œ› ž¦Ÿ £—˜  ¬ªŸ ŸŸ ¥²´®¬«ž¶º¿.(# (-!"&-dÕ¶ºÎ¹§ Ÿž¢ž¥¬©¦¤žŸ›“š™™‘ŽŽŽŽŒ‹‡‡‡ˆŠ‰Šˆˆ‰ˆ‹‰Œ—𠡦§Ë12ZS/.1)+#!$&&)-$!   $!%, 7>Q77o±«© ©¦® ™”™š–•“Œ‹Ž—œ› ¨Ÿ¬½UXº¥¢¨žŸ¢«¶¬¥ºÜº±­¶ÆÎ­¥«¨¶ÌB/5>>'756-%#&%)#%)510.&%%!,;C4/*$ %'//+-Ø»ÅÐEÉ̽ºª§¢Ÿœ¤žš”‘“••”–œ¬]3-+J½¶º¥›œ™¡¥«¹»×±­ §®¢­¦ ›œ¡¬¾³¾ïA4lÏÜź½CWÍïµV@Li±§ ¹D%-(+/i¾Å¾Mo_&"(+):äÈÀW()/5*+;ԹΧ¢ª³ÒÈ»·7*1("$,RL5060*'%*/!(%(,ü­ª¤§¿;&%)_>2HÝáÒο¿ÏBF=5bb¸ ³½¾¬·ºÁu¯®­­«¥ª©«¤©üHA6=8DþÊçÈÚ¹¹Ê®ÂÙFۼѮ½ ›™ž³O-.7¶¸?/6N»®þ5#  *$('0:;*&!0X?7+Pà´³º¼P?4LD<.,_¯¯±µÉ·®›¥À)$%\º¥ §®Û®³³´}leÃ̾ÄÛ:(6?ÏH=Pb½¯°­·íúʼ¾î̱¨·¯­ œœ¢¢Ã9Me½Qï}ÅoMO690/3;3%6Iêc=,.$)1OØU<7íÍEE9,""(:V5?4OËÔWEB(8¿«¨»ÐëÀÁÓ¶=¾4±•Ÿ­·4TD4Ö490º­¾Ê.8-'Ë»;.6?·¸UCöÙ¬¬¬À+ -6-/ò¯¤®8=5eaTé¸É秪ÌÃäÅÁ+.V㶪¦®½iѨ°xAΰŸª»ª¡™› ¦¾EF¹¶Ï=+L¯¼ã-6h®£¢¯U²£ ©8Üž©«ž ª¦¢¡Ã0+Ö²ù/ !E°ÁµÈY<.5ͪ¦¤ž£©¬›“‘™¹&p­®ªœ™›¸ë:XÄñT))'D® ®N41./,?ooU;..(%+î¿« œ¤ÜOK²¥¥¯2&$j®¨¯¢™™ ¾@,-4+'#)C>,76=( "-W¿±Õ¾n68󪯡™˜™¦È@INÍQ?7)/DäJÜǤŸ¥§¿°á`3(,.g³¨½kj@4 "1Ю¾íB* /ÕÆª£›œž¦¼²»°­À¸0;Ë®³ME8Ã?JJß»ÏD%)*.TǹO//Õ® ªË±waâ¤À­Ê««¦¸½®¯¦­©Ê#'5=:î\¶¦«½±©¬Â0)  (!5?/+-ØKÐ1VJ""4¼¹©«¯ ¡¦²¨¥¤¤Ÿ§h*/&#(G¤£«ÅµNB".5:ð7u96X­ŸŸ ®®:!+7º§ž–”Ÿ¹´»®­¨ªI)&>ͪ©®·¯§¨°¸ª®±Ô¾¼¿°«ž§ÀV>447üª¡·û7A-#/5MGQM4'+*"&<ÍØØÔ£šŸ§²§žŸ Ÿ©°´¤žœš––¦§°¶T/(í>C7I=&"'"(.*""&!9³²Â¹ž¤­ÆÝÆÞFA¸·µ¼½§¬¬ªœ¡¨·æX;(#öÏMNâ±ß,/7--,FroH¨œ¡©µ­ª¬¸¤›œ›žœž¨Ï²¦´·ÛoJ6':¹J<4{ÌM*%6&  +,Fª»ÂQB0&#Ⱥ¨¨£Ÿ¤°Øž Ÿ¡£ž¯¡¬®·¸´°¼X¶É:+&$ &"[»fM7@2:!8ļ¥˜–š§£¢ÌLVÀ³«¾®ž©¶ÝêßÄLΧÀËI;+&+(--://.!#+-0,&Õ¾­¢žš› £˜œ®ª®ª¤¥¨š— §­Q: 9Z<:?3* $%-9H47':å%-(7D×u¿¤·Á¾çÌRý®Ÿ§°§¯ª§Ë°žŸ¡¤§ÓN0:¸ëº½ÂßF-!++')64(.,7×H[§¢¡Ÿš¨¬­¨“–ššžŸ«¿1Ø®S_A¸¾þIN¸(-« ¡/*=&.¶*®$´&žž ¡: Á(›$¬>!"Ÿ6°¢ÀÃÔXC¶.¨É*µH±åAÀ!Ù=+=Ác-KNi:Ï¥ºœ»ªªM86ú´¢¸§›Æµ{Òày)' ¹"þ8)" g+*&+̰MM¶F¿ØÎ2Þ¶Uœ¢ž¤Ç¯²Ÿ’‡‡‹‡‰‰ˆŒŒ‹ˆ†……‡‡ˆŠ‹Ž™›¬¼Ðº½¶ç"&&  ")"*$)'0禠–žžžž ¥¬±Ÿ£™–˜”””™•——••–”ŽŒŠŽ“—’”˜™—œœœ£¤­½[Îȳ»=N7.+&%+=)-" !$( (*ÚTk, )*<.^;,55jå²¾¼¹ËÙIλ  ¥ ¦¯¯¨¥››”’““””“’‘Ž‘“—“—”•“•”“”›¢²ÁÆ9åǼpPGñ¿Î×KUÍSD51''26./.,+"-+*# !$#$"!&&&)<=7Ä\ÅÀ·»·®Á¾­¢œ¥¨µÂÊ·ÁÞ¼¶Å¨ª¥¥¥¦º½½««²°»ª˜šœžœ™œŸ«®­»·Ð¿gXÖü¿°¸°°¡£œŸ¤¦¹®¯´²»®´¬ÇȺ×7##(oEKJ-3+=*,>J¹÷¹¸¼³¸²¶¨²uÖ<0##!#&3=ODgSpÉ>>=Îe;=,x>wÛê­¬£ªº^'* $*HíÅ^`ÜQL:0ɰ°®«ª­¡¦  žšŸž®²Ù3,+'#(#)%%0Ekbd0+-((<˹¶Å½ÂÍ-#.(*%) (6OENSÎÆp5*˧¤«©Âµ°ÏA+,3{Ç­®º­ÏÛÛª ¢¢›˜™¢¦¨š‘’ŽŽŽ˜ ¥¦¢ª¦ªž› ²A⯪¸½ï`¸ùmÖº­¦ ŸŸ¤¦µô05=,-(4ÐÁ:###/&)/.) !(--1XB,#'*/'')5=çL¨Ÿ£¸¿ÚÙ]9S㿹­«© ¦£¤¥­¡œ¢­Óµ«­««¬¥ž¦¤›ž­¸·È¿¼Ë}åĦ Ÿ§¶ª™›¥®¯¼´Ç¾¶­ºËÎÐÌh.+!"&6#$/>5'(+:O:3+9)#02MæÙ»§¨·¨¡˜—¡¢­¨œœž œ™œ©®èN1*:°²mØÒͯ¸Àμ¿§¡¤«Æ³ŸŸ¦žŸ¥¡¦­©±0("()'""%,+$('3MÉ=>F/1'2ʱÀ¼®°®µ2$!&%##+K*9>;^Rʾ«¾C»¸£ž¢¥¥­¬¦·S=*/>7-;9.(-+á«Ú»³¡­¡:¥æ§–ŸŸ¾ žc«Ç¦“¨@L/ž­5L¼7«)¨Ml¥X¶Ú­˜·šÄR¶($:K4"-&.)@-&±Lί«—¡ŸŒ‹ˆ”š¨™£ÒQ.Ü9¸\¿ X³A²M+#!3!-$)+*Q=>-  5=¹ÀÓ¨­³®¢  Ÿ˜š—”š«¹¿09ÂB5+4JÞľ³ª¦ Ÿ¬°Ä Ÿ«°ÍN,&&   +)PÖÙÒDF=/+½¥ž¡¤£°ª¯ª¬ §¬®´¯µ¥ž¬»Â²®®¤¤š’—š›—™žž Ÿ¢¢­±®Ÿš•–¦¬¸]jd½û3++4FÓêÉ«¥Ÿ¥ž±<@7>>,*  $.I1 -7>m?¿a<,! 1;ì>' )0,,+53@8/3/1-$1!5JÈÆÅ\k»«™‘Œ“˜›˜›•”›–’‘‘••’“”މ‹‹‘˜”˜’“–™¤««»·¶¾ÏvÌðæK2;TüE)$ #'   @»¥¯ÃtMöMI+/1]¹ª¦ŸŸ¡œœ’Š‹ŒŒ‹‹ŒŒ‘”œ˜œž¡ŸŸž¥¨²±Ÿ”‘’ Ÿ¢¡£ ¤¤´­­»°Î½M>'%)',67 !#($0×XO;"4' ',83@984T±®±OÌ©œ‘’™¬§¡¢Ÿ™›œ§©´È<6ôǰâ{º¬š’“•ª°«­µÇÎ^ÑVDD6( ))5! ".46/4" -*, #,0=:&(,-*-(Em5/+,3mƺí$&5ªš””–“œž™›™™™’“’““’“—¨¯£Ÿ–”“˜ž œ˜—˜›“™Ÿ¬°É¿¼®¯_dz§¡§²²à*#"8EJÅ?& /-9X+#!$1)# ".Ì4=î̻ܲ¨›šžšž¯ÅVÅ·Þ>SÅIH7J¬»´º©±Æ­¨—š™˜– ©³¦£¶«®í3+T­§¹]ÎB303¿ÇK:Zá1;-Õ»CO@W) !+ÐE=7." +J¿V*6/-(!'' !."%(@ÁÓM?ÜoükKª¬¬§©¯`>M¿­k?>997X®ž¥¬¡¦¥ªªœ›™›œ¦­Ì«œ¢ª¯·72<§½C:S»ÙàÞ°¾OëÀ<,#,>@($'6)$L|G5MãK?/ËÕHDh;*)4뽹𹯯³»¤ž §Ÿ¤¯¥©ž›œ§­£§ª­¤ «³¹¯qÍÙµŸ›«º»ÉH4F¾·Á^û6=P̯«ä;\TF.1PcX*=>;:2+fÂ9$,9Pº^'+L-=;*,"Þ²JÄ·¾C¾×14Æ?A{»È±§£ ¥žž¢§šžšššš©²”£œ®N3T@X»?Ë??9Å1.#)  &"#&*$.Ú7)ÚÁ£ŒŠŽ—˜š ©Û̾Ÿ¥¥Ÿš—œžŸ•œ—ž–Ÿ™—Ÿ§™’•ž§ªÜ*'*+&$^­°¥³¨ÌIÊ7#$!851FÎ4/(,2+C&(,Û¿:n2/(+':%/>¿¶ÞܼÌJ·¤©³¿Ä°Ê]®£©ª¦­¡¡à³Çұǭ¦¢©¤“š—·»ÁºáG®Ù­¼Ò´øCÖ§ª¼T"07+;_°°¯°£«?(%$'&/!*'!62ÞH«Ù.(An-Â^IP771!!/.7,.0YI¤žš£ž »¬ª­¥§¢ž ÂÆ´»¯¿­·¹G±ŸŸ¨ÁÛ¬Ÿžž”Ÿª±®ÇO?°´cR#*+'2E(%*.5"(3/H8=4'()'*%-(1'Nñ,$!*)/(,.:Î60Þ¶­´×HMÎm¨›œ¬±¸¾¬ÎºµÈÓϲ¥¨¿>À»«˜œ£ª¯Ÿ›¦¨»º´°°œ¨¹ËÜÏÐÛOO]55$1.:5µ©²¾Þ5)%AXÇ<,%)% %95H7/ë>L;XÜ?OKÑ<8/;Låà¹W¾ª¬³¼Ü6=Þ··±É¶¯·«ðkÃK+(' %,"&&(-8.Z3*5V5=s믨µ¹Õ<5#)0(&!;*9ØkÁplFµ³½¼I­­©ŸŸªµ£¢Ÿž´?315T½¯ºèX­¼·¨¯©§¤¬¦©ÊºÌ©¦ª¨©µ4?;,3 /7>:24-6×M.:;HoÊ5?a/8>ÏÑ<-'$ +-)/K7.MOÌÒ칲ϻ®¨¥ °®£¬·¿Ó=28ô´?=FZ²ªÀЯ±É¯¥¢¢¦¥ ¢¡žŸ£¢ºÒ´=%#/6=94{8+*6ͺÊ.GJ>Ò¹ÁàñÀ¦«ÔE.-, '*-29P.87.23_ýP4¾·Mù¦¬Ð%-Õ@,D6·)/–ŽH›¯“”† #"š¸WÁ¬•¢š9³ª* %á:­j­ž‹‰“‹Œ™¤Ÿ·$ # !"(8)?¸¦¨œ”“’‘§“㬱±¤®ªª¢ª»G* &"'3KQÕ¸¯›¦§Â¥ž“ŽŠ‹ŽŽ””‘—š”˜–¥ŸÅ.  !#")"M³¤œ ž¥¯±ONY3FD0Ma°¬*IË=Y©žš•™žž¬ÅN:ÔP,4.'.#$&n°®µ´àÈ©›–ŽŒŒŽ“Ÿ¨ž«³¼´¶¶]Y7!C44(! 9N0A-(+7º«œŽ“‘‘•Œ‘””‘š©ªŸœ¢Ô2(&1,(I$)"'3+!<ÜY)&+$ $,'<ë¼¶qH¨¼é¾¿·KÐ#/Í".*!#97¿Å9%! =?_¬¹¹üSá­»½36Y/:O)&%÷©Ç6-;¶ª§=9OÌ¡­¦§Y¼I2?èK`4*gÄ›®ª®Ü›—˜ªÁý¿­®¢œ¤Ä®¼Î¸³°Ï¢ª­¯ÉJE(pж5¸»Ú±ÖÌ*ê4=- /# &3:¹O.+(è4)6>+$+×´À¿´Àª­»­¹¡˜¦£´®µ¿³/F§áûH9,Ü+GÙ5¬© ®¯³°ž´¯¬¢­º®á«´º¤°¤š¨§ž½\Û8*#1UÃ3å;¾HEK%¹R:4(-75;'-.-77G6@®>4:&3(,,¼¾Í±·¼¯¬Ò½¡ª¨¤·»¬ûÝN/ÁÂ)?Ä++=:8¶Ãu­Íˬ²¼®§µš«žŸÂ§©Ë¯žª–§ ž¥­É6+ÃU8}Ì9Y2A;,<55*-' .!"$".,>:BíRÊO<3+,) 2RO×°»§¹Ï«D²¥µ¦µ±²ºR¾C?Ý·¿W0%:*6MSAÊÄX­´ÆwĽôƱ<77E¼Í7-6:;-8=7>C¸¬WP¸Ê¬±¨Ÿ©¢¥žŸ¡ªÆ¥§¦™–›—¦›Ÿ­²À³Í¸¹µÌ.&59== *.%%&!)8'9[4B3¾µQ74F@GÆÈƬ»EÊpÞÔhʽ»®¸Ç1=ÑѯÁáÍ´ËD·³ÊÙ¯±¹ÕTP?Ç»ÝM5&&?^M/ÍÃÀúeu¾¼µ²»©ª·©¼«»¯«ÃËÁ¨¦ž›¤ ¢ª¸¥¡©ª¨¥ª±½ÈÔ¶¹{A*'!&!('=7C;8LGP=]1+8RHßÀ¿ÉÊX/á¼ÞÉØ®º¶Ñ@<ͼ¿l:*$(:,;Úu[_NOYÏi˱¥ ¬°¤£¤£ ­ª®±­­Ÿ—œ£«¿³¤«Ä¼±´´ÈXsë¹ÂSG9,*"5;(-.>LÉ,©¾¶©%*0öºy6|¹º¾ÍQY;0.ÍÀQKÃ1,àÊ¿ÂA¯D/#½Õí,,§O~ÄÉ4­¥£¿;ßµ»±¯³ÛÈfZͱª™È¬¡®›®Ÿ®•£—”¯¹7­Ñô&  ,­J¸¸3*! 0ÞɶW>hª­˜¦»·¸±î¿MÅh{+"&Ý^91Ù8Î­š•’“•’’³¼>,3Ï<=²£”Š’Œ—™¨žŸªÂXŸ¦œ ¨ª®³¼»P*,  ¯ÍÐM˹µZ%0 #(0?ɯ4ç.)-6¯¨ÂÖã­]ÎÓT®N+)>/<:=¶ÌXµä43J´«ª³¦›Ÿž©ª­º.6è?ÍÌÆ—•™˜™™ª¢¦¡´s]±¨¼®»§¨CMÈI9,-$-2)-äd¾uCG7&2$)CònADDÌËÅÉX?TÄ=ö»t©î06,,9Ô½¥¯¦¯¶±ºÊk¹Å«¤°œ§¤§¼lDE¶Hʲ«¾Dy,B2?ÊÓ´ºÈ<25(ƮЯ»¬¡¬¦¦¥É¼ÛÓ·Yú·¢­§¦ÊÉiÖ©¦¤› Ÿ›Ÿ­Ÿ›´®Õƽ®ª»©¯«ÃÏs'$)Q+',&%,+D-(! "&0IG9+  #&1èRÓz¬¯¹¸<<;838ýQX8=91:»´µ­¯¯ ž ™œ¢°¾¿ÊX>̶¬¦µÙ[úÕ¬©§££¦ž£¥ £¤¦¸Ã«£¬£§£¨­¿_B(0').$#52/'!&,-MF>(!$!,55r>ư¹±p<15,5J0>7@-M@NÉ뮫«°¢ ž—œž£¯Ï´îÎÁ³©­ÇÍÓÙѶ¸§¤§Ÿ¤ª¤¦¦¬À·²³³§¬¯©»µ½|,03(/# %(.nþ1-"""5:?D:,#(,02aEJÌÎÁÙðgODHE/./.4H"*LXTÏÀ²Ÿ œ—›¡©¯§±¬Ÿ¥§¢¬µÇH8»®¯®´³­¸Ï¶¶µ½µ¹¨¯´®¸­ª£Ÿ Ì?Ìbh/2*032E7(!!/23920-$-&.,-4(GÞ¾ÜUCLD/50-11åÑO*,.:íV¼« ¥ š¤ª¯¯¦§¡Ÿ¡Ÿ§ª¹Á7ⱸ¯´µ±¯·Á©«¨¨Mµ¸Ñ̶·©£Ÿ¡ÄG;:804-E@=ÁE*!$)+(%&%-)/-#.*4/'& !+HEnM\àE@ùNIA:ðÝ=)#B2-9Ñ¥·­¤¤¨¬®³ª¬¨©ž ¤¢©§°®§«ª²´Äº®¾±®Â«µ«²DlHÖ¾»£¥¨²DWYOhDZ­½<.2+.(!#/POé0;F8ÖGS?GG4*,)4G+&$Ö­73Hö "J†«Ä卿Š)(€'6I˜&®¸›Œ´±Œ?4 š *R/°S ¡°¶¬œ’–›§§š¨¾¤««¶¼¸E' +%?B//O¥º¶÷6ÚŸ®V—§¾¢À©Ã/B(#+,%9^9ÌNª œ˜ž¤–‘‘›˜—–œž—‹’Ž–—Ÿ—ª·³Â¢¦¦¹ÞzÃ5   "+ÌŸ§ÅÞH9+/45=9'+95âÚõ§«åOÌÁ44)%$>::?6YƸ>-GBÛJH7a®²¯µ¦£ì&!,¼Ð©˜˜£«¯Ÿµ¯¢™‘ŽŠˆ‰‹Ž”™ž ±»·¯Æ/0))!+"#2U,6´ª§­½¬ŸŸœ¢¨–¥¬ ¯»¶­Kܾ¾Æ®«®ÃÓ¬ÈÏV !1')#),F>jY6?EȾ̴»®¯¼¿±¹°¦ª› ¢˜››˜œ˜›£™œ ©£§›¤®¨­¾rN$. 8'«ž£œ –•—–›ž¹Å»*&$3À<¶˜˜•—˜’˜˜¢®Z¦ª½±tJʥŻƽUÅa%#,-)6/­¬žšœ“”™Œ—’ž£žu³¯AB':A<    #6¨›¨”˜“’–¡®ÐP!*#C@°£ª©ª§²¦ºÄp¬–œ›Ÿ—© ¹HÂêʾQæÈà­ßZª³Ú¸Î,mJC7D88Mm9)h\»½c­³®Ád§±ÖÀ¯¶ ¥¯©åÂì&  "+)ÇÞ¼¡ž«®œ¦^ÁØ1¼VóB»­¢§Ðìì¶ÃαŢ©¶»Û5P'%3;Ù°®¥¶¥”©´°¨žŸ˜›’œ™–™žµ¯ø5#!,aɶµ­®Á¼ÌJ04##$*7<µ+SO!(& ''/-!,#'c@.¶­¦ •š”“•ŽŒ‹‘—›ª®±[-( '#%"&F¯¯®©°¨¥°¡¨•œ˜›¤—•¢›ž«KM_.,- #H7ã뿯«¶°­µ ¦£™˜œ›™ž›Ÿ¥MÁH'¿(#[ÆN¼ù>³¯ª²¤œ¶œ£ÌÊ,è!@!1 $'"'!0ÁËó0½«Ë/#: ')),®+8¶˜¤Ö¯Ÿ•ª½Nª¤ÁμÌ2è«§«5:®§EA­–¦K&'>j%*"#A¶ž(µ¯H ›˜›“š’0Š)‘Ÿ#4£á'!·¿0'é.¶­± Ñ¨­Ã$/(ç4$)7M­ÌŸ¯¨¢I¨¾s>I<¬¥ž¢²¹Å¯®¹¯±ž³­ûº¡³Å!   !5..^­Ÿ¦Ã]]«¥°¸Ï¢›™•™žŸ¨šŠ‰Œ‘ކ‰Œ‘š™›—˜“‘”’”Œ–Ÿ›˜Ž–›°½È?0&))>;$")/>M',%%*8-).&.67Ú²¢™¡¥ ”Œ‰Œ‘–—–›§ÉG;J?(/8*(9I;7+.Nòö󸥦Í6)+A8$)/_1(# 7DÌÕç_éÈ?) #'*$1LI?&$!(#(ܪ®¹³­¡š””‘‘“šŸŸžŸšš˜ž•Š‹‰ŠŠŠˆ‡‡‰ŽŽŽ‘’’–© ˜”™š˜“‘˜š‹ˆ‹–˜˜ ¹\60.&'*-) ).OÐÃ>0*3/!  %C»¶©°\9CzÛÊ\=<Ò­¦ÊE½´«¹Æ¨›–”–š›žŸŸ§¨®øKµ«®§¡¡¢žŸ ›—’“˜—–”°¼¼²¿`ïÍÒYlàJ831Ú«¾ô;;ÊÜ/( '(*>:QI@X¹³«´Í³®Q/-G¹±¾LÒ·®¢§¢›š˜™œ ¨ª¹¼Æ?BÔïhAGOÔzÇ·£˜š¤±¬­¯©ª­«»¾ÄMdÐØÙ¹¯·È±©™–¬ÌÒºá71(& #' #!",7PÈËRa@4$!'.F+ #&+&'/8<86;6+$#))((!(2CV;-:ðò¿ª ›Ÿ«ª£¥ª°»¸ÿNÛ­©­¯l\ÈÛÍ­¨ž–™¦°µ§¦¸®®¼Â½É´¶á¼º­¶»¯¡˜ ¬³¯²²¾®º]=0,,ADF5*%'-<ÍXB,)''#$%!"'$!)<ϳ»ÛtO::<=Hξ°µÊÏüÏK50䬬«ª©£ª¹Xe<6ÙÜêP;6×ÊåÓN<5Û¿¬£œ™š›¨µ¾¬¯·±ª£¡›œš¡´½¸¨ª œ—˜š ´ÁìÛWJRɯª¯»áIÇqNÔ¾»·»ÇÆ[8/0-)$$"'&"+%!" &&"$ "/4177/*"!)ZÕnü;.&  !19>zC;(&'0@¸­­«³Õ]ÛI625;IÓ·ª©ª­®ª««¥ž››œ¢žŸ«ÅcÓa[º®©œšž¢¬µÄÔª¤¢¤¦¸·½/.+)2CFÜ«¨²ÏAJK<×Ñêͺ:+2;=,)!%(.Xðª¯ÊÌDz®¶ÀÔñËPQbÖÊI8*,5ûĵ±­­®«·²ª¨­±¦±V8@GC:-+7Ú¿¾ÎÚÕ@Qï¹­§¨©®ÊD/157B:5>¸¤­´©¢¨ª¥Ÿ™™š¡¬ª©ª³¾½fE-9²­¿¼ÂjB0+!*9(  &(*,5a¾¶§¡Ÿ£¦¨¨œ¤À:JÁ»®¤¢ªÃÙÁº¯¢¡¬Æ½¯¿REO6/%1XÖ¯¯¤££¡žžš™¥¸ÁT4<;i:.[ͽ¸ÀÖhli;,7A6&&#+EÉ;#$ *=º·¬®«¿Ï¼¿à34@?MÛÊ©³ÂÅ­««¦¨Ÿ §±§Ÿ¬¹¾©®´§¥³­ Ÿž¨®«¤¦«¨«¼Y<--.7&!,.19´žŸ¥£Ÿ£¨ ¥´ü>7&(*-+$#*17Ò±¬­¦£””—¡¡ŸªÏ8KL)(%""%&(:½­­£›™šœš›ž¥°°¸¹ÁxÞ¹»òN®­²º©¤©ªª¶Ï68I8?ÞnIJÁº³©¡ž¤ª¦¦ œ ¤´³²½ä.:5'!#($-ykR^ußXFO.((($" 3ÎËR@>6/-=G)#5󽯩¨¬¨«¢¬¸±µßDS/&$17452IÅ»°ª§ª¨¢©¹®ª°¹¾t:-2wOBJK¶­¬²ÈUº«µÎÈÂÅÑ=AïYjǽĶª£¤ ™œ¦§Ÿž¢¥°¯«¶^;7JºµjAǧ¡Ÿ›™˜”“œž¥¯«½¶ð-#8.,*5UÝϱ°¢š—š¦ª©§«¶·ÌXßÍa94/2BÓØN6L±©»YX÷Þ?@-#%/8+-*19F×Á¾¾¬Ÿ¡ž£¦¯ÎÎ]-+4,/ ."!+Õ·Á`:?BF0+9CHºª¶E8ÜL+ !!-汯ʱž›šµîð³Í:-2)&>9,6?Á¨««›š˜¢°­­°¯K3'$47)%->âÒ½­  ›š£¬¤™œ¬a6=1E@:4,>ò··§¤¡˜••œŸŸŸ ¹f?--DK02MÀ·¶·¦ž¢š•–›˜š£«²Ò@7($'9H>8JÁ¹¦›¦œ’’—œ¡¯Ó80*(,(/6;¸°µ¹¬¡›šž©¸Ø1D1 !#$$-35[»²ÄÀ œ—ž³¿½¾Ô823(=»°¦»ê<5;0 '),7JÁ¹«ªµ»ÍÁ;'''+8DÅ›žW¥ ™Ž“¾bN$1,|²(&½½2_­´ª¤˜˜œŸµ­Æ;*"(c=,(468<Ô¶­¬˜–˜—œ©îº´Ñ41;=3hÞÉGÀ±¯Ÿ“”•’“”ª™›°Îb·Õû+<2ξ­©ž’““™›©¨»b9 ' "/.00-!& #!*OúÏ·¹«ËÆ7WÉ;>- +IJoìÃÆÂ½«ÁF¿Â ”‘‘Ž‘š¡ž›©©¤ÔDù®ª¨ ¥ž›™£žŸ ©¶Þ1Q½¹¸®¶Ý¸êâ·¨¬±Çï.35A~aJ)-8*$#!,"&.3( '-7J,',=ëkZUP*,qb=4.-:\`¸¾àÚ¸½¬¨Õ>̯¨¢Ÿ™˜•—ž“’–žŸ¶¹¹ØÃ¹µÊ·­ šš¢©¬±ËÓ·Ô¯®«v¨¨«ÍƵ¸Ï?;7DHGL80)&%+"!'%&0.Kp?-!-==5GG÷V)9ÏÂK,'.ȯ¦¹ÐÛ¾Wh¯©§¬ÆÒ¹³£Ÿ¦ž›¡¬¡–‘‘ž¿PβÉd×´­¯©¬©¥­Ïéýή©£ ¯Å»«Ÿœ§»n˸°Åß³Ãa2/,:A*$ #%'(+"!%+19;PºÌ>6f·¶Ê»Ò?2./772/9=³¸K中®®±©§¢¬Ùϯ­«¡¨´®«¦™–ž§ÈÚ»«µÜʼ½Ê¶¥ž˜ µÝUÉOе¯­®°¡œž¤­«§ ¡°Ñź@&!%,9-'*)! 2U@!'+!!-OB7p´®­²¬»ì×ÞHßu?949?;3}·¯¹»¼¯  ²¿­žž›¡¨¥¢©§ªºÌÈ»µËJE̿ı¬¦œž®ÇŬª©£­Á»À]©´½³¨«³¶²ÏN35q»o& %'(( (-;C>.".9+03S¿¨¨F6"#-)#%)Ï·F$& #0iÔĶ©¢§µ\0I®ž——›§V,.OdeÎ^즡¨®°¸íWÆ­š’”ž­ÆN7NKIT>Q®¥³Àm48_¿°¡™œ©Ö.0üÅÎbÞ¬¡››™›®ëã¶±¯¦­º¸Q!>N5!*:6*"CX¯ËO®©Áª¨ž ¤ž¹/+6=ç>[A4Pµ¢Ÿ³¾§¤¯É¨µ¯­L&6]:L@=0´¾°ž¨Ã©¤Ÿ³¸¤ª«NSB/|ϵ>D禥¦ª§ŸŸ˜¦œ•›žŸŸª¨™«­¤˜”•š¡›®¯¯Û0%$ ")'&.GGÔ¹­¬½]$  +YØ·¦³§¢¡ž¢¦«¨¢¤¨¼¾²§ž–ŽŒŽ’•œŸžœ ž®´Àï¾mm@-L©››š˜š›±¤¢ž¦¬ùfÚ=ÂÉVE×EÇ´¢Ÿ™¦ä@<¼®©¤›œ¢®ÆJåe/80½«¬¥¦¼F1>·¦žœ ²Þ,!%.0& ,DJ>0%".BùÎÏx6- %H?7À¬¶`0&1/" 0¨®Ä/!A¶ž›™ž£§¨­À· ”’–°M#.À©¥ž›š¥´±¯»Úîæª—™¥»B.!"1Ì©¢Ÿ£Ÿ£°@,5ETÁ¯ª¢§Æ8/-*6Ó§—˜›žž¡©³­¥¡¢¥¥§¬¿,!-\Ì<$"$,-&&(&(-1;,$!6»£Ÿ¨Æ~ZÇ´¬¨Ÿ¢°Ïù´ÊóÍÅÁ§—•œ¨°§›Ÿ««º»¼ÕIRZ9*'-Ū©žŸ§ §¡¢±¹êE;>S@F7+'++/G¯¨ª¨§ž—‘”œ­»³²°¹ÌHDôØTOSOéų´¯¥£¯Í3'% %" $/rÇ»¨¤rtpengine-mr12.5.1.22/include/000077500000000000000000000000001474347554000160145ustar00rootroot00000000000000rtpengine-mr12.5.1.22/include/.ycm_extra_conf.py000066400000000000000000000072261474347554000214530ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' # These are the compilation flags that will be used in case there's no # compilation database set. flags = [ '-g', '-Wall', '-Wstrict-prototypes', '-pthread', '-fno-strict-aliasing', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/json-glib-1.0', '-pthread', '-I../kernel-module/', '-I../lib/', '-I../include/', '-I../daemon/', '-D_GNU_SOURCE', '-D__DEBUG=1', '-D__YCM=1', '-DPCRE2_CODE_UNIT_WIDTH=8', '-DRTPENGINE_VERSION="dummy"', '-DRE_PLUGIN_DIR="/usr/lib/rtpengine"', '-DWITH_IPTABLES_OPTION', '-DWITH_TRANSCODING', '-DHAVE_BCG729', '-DHAVE_LIBURING', '-O2', '-fstack-protector', '--param=ssp-buffer-size=4', '-Wformat', '-Werror=format-security', '-D_FORTIFY_SOURCE=2', # THIS IS IMPORTANT! Without a "-std=" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/include/audio_player.h000066400000000000000000000024111474347554000206400ustar00rootroot00000000000000#ifndef _AUDIO_PLAYER_H_ #define _AUDIO_PLAYER_H_ #ifdef WITH_TRANSCODING #include #include #include #include "types.h" /* * Similar to the existing media_player, but instead of simply producing * its own standalone output media stream, the audio_player takes over the * entire media stream flowing to the receiver, including media forwarded * from the opposite side of the call, as well as media produced by the * media_player. */ struct audio_player; struct call_media; bool audio_player_setup(struct call_media *, const rtp_payload_type *, unsigned int size_ms, unsigned int delay_ms); void audio_player_activate(struct call_media *); void audio_player_free(struct call_media *); void audio_player_start(struct call_media *); void audio_player_stop(struct call_media *); bool audio_player_is_active(struct call_media *); bool audio_player_pt_match(struct call_media *, const rtp_payload_type *); void audio_player_add_frame(struct audio_player *, uint32_t ssrc, AVFrame *); #else INLINE void audio_player_start(struct call_media *m) { } INLINE void audio_player_free(struct call_media *m) { } INLINE void audio_player_stop(struct call_media *m) { } INLINE void audio_player_activate(struct call_media *m) { } #endif #endif rtpengine-mr12.5.1.22/include/bencode.h000066400000000000000000000636031474347554000175740ustar00rootroot00000000000000#ifndef _BENCODE_H_ #define _BENCODE_H_ #include #include #include #include "compat.h" struct bencode_buffer; enum bencode_type; struct bencode_item; struct __bencode_buffer_piece; struct __bencode_free_list; typedef enum bencode_type bencode_type_t; typedef struct bencode_buffer bencode_buffer_t; typedef struct bencode_item bencode_item_t; typedef void (*free_func_t)(void *); enum bencode_type { BENCODE_INVALID = 0, BENCODE_STRING, /* byte string */ BENCODE_INTEGER, /* long long int */ BENCODE_LIST, /* flat list of other objects */ BENCODE_DICTIONARY, /* dictionary of key/values pairs. keys are always strings */ BENCODE_END_MARKER, /* used internally only */ }; struct bencode_item { bencode_type_t type; struct iovec iov[2]; /* when decoding, iov[1] contains the contents of a string object */ unsigned int iov_cnt; size_t str_len; /* length of the whole ENCODED object. NOT the length of a byte string */ long long int value; /* when decoding an integer, contains the value; otherwise used internally */ bencode_item_t *parent, *child, *last_child, *sibling; bencode_buffer_t *buffer; char __buf[0]; }; struct bencode_buffer { struct __bencode_buffer_piece *pieces; struct __bencode_free_list *free_list; unsigned int error:1; /* set to !0 if allocation failed at any point */ }; /* to embed BENCODE_STRING objects into printf-like functions */ #define BENCODE_FORMAT "%.*s" #define BENCODE_FMT(b) (int) (b)->iov[1].iov_len, (char *) (b)->iov[1].iov_base /*** INIT & DESTROY ***/ /* Initializes a bencode_buffer_t object. This object is used to group together all memory allocations * made when encoding or decoding. Its memory usage is always growing, until it is freed, at which point * all objects created through it become invalid. The actual object must be allocated separately, for * example by being put on the stack. * Returns 0 on success or -1 on failure (if no memory could be allocated). */ int bencode_buffer_init(bencode_buffer_t *buf); /* Allocate a piece of memory from the given buffer object */ void *bencode_buffer_alloc(bencode_buffer_t *, unsigned int); /* Destroys a previously initialized bencode_buffer_t object. All memory used by the object is freed * and all objects created through it become invalid. */ void bencode_buffer_free(bencode_buffer_t *buf); /* Creates a new empty dictionary object. Memory will be allocated from the bencode_buffer_t object. * Returns NULL if no memory could be allocated. */ bencode_item_t *bencode_dictionary(bencode_buffer_t *buf); /* Creates a new empty list object. Memory will be allocated from the bencode_buffer_t object. * Returns NULL if no memory could be allocated. */ bencode_item_t *bencode_list(bencode_buffer_t *buf); /* Adds a pointer to the bencode_buffer_t object's internal free list. When the bencode_buffer_t * object is destroyed, the specified function will be called on this pointer. */ void bencode_buffer_destroy_add(bencode_buffer_t *buf, free_func_t, void *); /* Returns the buffer associated with an item, or NULL if pointer given is NULL */ INLINE bencode_buffer_t *bencode_item_buffer(bencode_item_t *); /* like strdup() but uses the bencode buffer to store the string */ INLINE char *bencode_strdup(bencode_buffer_t *, const char *); /* ditto but inits a str object */ INLINE void bencode_strdup_str(bencode_buffer_t *, str *, const char *); /*** DICTIONARY BUILDING ***/ /* Adds a new key/value pair to a dictionary. Memory will be allocated from the same bencode_buffer_t * object as the dictionary was allocated from. Returns NULL if no memory could be allocated, otherwise * returns "val". * The function does not check whether the key being added is already present in the dictionary. * Also, the function does not reorder keys into lexicographical order; keys will be encoded in * the same order as they've been added. The key must a null-terminated string. * The value to be added must not have been previously linked into any other dictionary or list. */ INLINE bencode_item_t *bencode_dictionary_add(bencode_item_t *dict, const char *key, bencode_item_t *val); INLINE bencode_item_t *bencode_dictionary_str_add(bencode_item_t *dict, const str *key, bencode_item_t *val); /* Identical to bencode_dictionary_add() but doesn't require the key string to be null-terminated */ bencode_item_t *bencode_dictionary_add_len(bencode_item_t *dict, const char *key, size_t keylen, bencode_item_t *val); /* Convenience function to add a string value to a dictionary, possibly duplicated into the * bencode_buffer_t object. */ INLINE bencode_item_t *bencode_dictionary_add_string(bencode_item_t *dict, const char *key, const char *val); INLINE bencode_item_t *bencode_dictionary_add_string_dup(bencode_item_t *dict, const char *key, const char *val); INLINE bencode_item_t *bencode_dictionary_add_string_len(bencode_item_t *dict, const char *key, const char *val, size_t len); /* Ditto, but for a "str" object */ INLINE bencode_item_t *bencode_dictionary_add_str(bencode_item_t *dict, const char *key, const str *val); INLINE bencode_item_t *bencode_dictionary_str_add_str(bencode_item_t *dict, const str *key, const str *val); INLINE bencode_item_t *bencode_dictionary_add_str_dup(bencode_item_t *dict, const char *key, const str *val); /* Convenience functions to add the respective (newly created) objects to a dictionary */ INLINE bencode_item_t *bencode_dictionary_add_integer(bencode_item_t *dict, const char *key, long long int val); INLINE bencode_item_t *bencode_dictionary_add_dictionary(bencode_item_t *dict, const char *key); INLINE bencode_item_t *bencode_dictionary_add_list(bencode_item_t *dict, const char *key); /*** LIST BUILDING ***/ /* Adds a new item to a list. Returns "item". * The item to be added must not have been previously linked into any other dictionary or list. */ bencode_item_t *bencode_list_add(bencode_item_t *list, bencode_item_t *item); /* Convenience function to add the respective (newly created) objects to a list */ INLINE bencode_item_t *bencode_list_add_string(bencode_item_t *list, const char *s); INLINE bencode_item_t *bencode_list_add_string_dup(bencode_item_t *list, const char *s); INLINE bencode_item_t *bencode_list_add_str(bencode_item_t *list, const str *s); INLINE bencode_item_t *bencode_list_add_str_dup(bencode_item_t *list, const str *s); INLINE bencode_item_t *bencode_list_add_list(bencode_item_t *list); INLINE bencode_item_t *bencode_list_add_dictionary(bencode_item_t *list); /*** STRING BUILDING & HANDLING ***/ /* Creates a new byte-string object. The given string does not have to be null-terminated, instead * the length of the string is specified by the "len" parameter. Returns NULL if no memory could * be allocated. * Strings are not copied or duplicated, so the string pointed to by "s" must remain valid until * the complete document is finally encoded or sent out. */ bencode_item_t *bencode_string_len(bencode_buffer_t *buf, const char *s, size_t len); /* Creates a new byte-string object. The given string must be null-terminated. Otherwise identical * to bencode_string_len(). */ INLINE bencode_item_t *bencode_string(bencode_buffer_t *buf, const char *s); /* Creates a new byte-string object from a "str" object. The string does not have to be null- * terminated. */ INLINE bencode_item_t *bencode_str(bencode_buffer_t *buf, const str *s); /* Identical to the above three functions, but copies the string into the bencode_buffer_t object. * Thus, the given string doesn't have to remain valid and accessible afterwards. */ bencode_item_t *bencode_string_len_dup(bencode_buffer_t *buf, const char *s, size_t len); INLINE bencode_item_t *bencode_string_dup(bencode_buffer_t *buf, const char *s); INLINE bencode_item_t *bencode_str_dup(bencode_buffer_t *buf, const str *s); /* Convenience function to compare a string object to a regular C string. Returns 2 if object * isn't a string object, otherwise returns according to strcmp(). */ INLINE int bencode_strcmp(bencode_item_t *a, const char *b); /* Converts the string object "in" into a str object "out". Returns "out" on success, or NULL on * error ("in" was NULL or not a string object). */ INLINE str *bencode_get_str(bencode_item_t *in, str *out); /*** INTEGER BUILDING ***/ /* Creates a new integer object. Returns NULL if no memory could be allocated. */ bencode_item_t *bencode_integer(bencode_buffer_t *buf, long long int i); // Return integer, possibly converted from string INLINE long long bencode_get_integer_str(bencode_item_t *item, long long int defval); /*** COLLAPSING & ENCODING ***/ /* Collapses and encodes the complete document structure under the "root" element (which normally * is either a dictionary or a list) into an array of "iovec" structures. This array can then be * passed to functions ala writev() or sendmsg() to output the encoded document as a whole. Memory * is allocated from the same bencode_buffer_t object as the "root" object was allocated from. * The "head" and "tail" parameters specify additional "iovec" structures that should be included * in the allocated array before or after (respectively) the iovec structures used by the encoded * document. Both parameters can be zero if no additional elements in the array are required. * Returns a pointer to the allocated array or NULL if no memory could be allocated. The number of * array elements is returned in "cnt" which must be a valid pointer to an int. This number does * not include any additional elements allocated through the "head" or "tail" parameters. * * Therefore, the contents of the returned array are: * [0 .. (head - 1)] = unused and uninitialized iovec structures * [(head) .. (head + cnt - 1)] = the encoded document * [(head + cnt) .. (head + cnt + tail - 1)] = unused and uninitialized iovec structures * * The returned array will be freed when the corresponding bencode_buffer_t object is destroyed. */ struct iovec *bencode_iovec(bencode_item_t *root, int *cnt, unsigned int head, unsigned int tail); /* Similar to bencode_iovec(), but instead returns the encoded document as a null-terminated string. * Memory for the string is allocated from the same bencode_buffer_t object as the "root" object * was allocated from. If "len" is a non-NULL pointer, the length of the generated string is returned * in *len. This is important if the encoded document contains binary data, in which case null * termination cannot be trusted. The returned string is freed when the corresponding * bencode_buffer_t object is destroyed. */ char *bencode_collapse(bencode_item_t *root, size_t *len); /* Identical to bencode_collapse() but fills in a "str" object. Returns "out". */ INLINE str *bencode_collapse_str(bencode_item_t *root, str *out); /* Identical to bencode_collapse(), but the memory for the returned string is not allocated from * a bencode_buffer_t object, but instead using the function defined as BENCODE_MALLOC (normally * malloc() or pkg_malloc()), similar to strdup(). Using this function, the bencode_buffer_t * object can be destroyed, but the returned string remains valid and usable. */ char *bencode_collapse_dup(bencode_item_t *root, size_t *len); // Collapse into a JSON document. Otherwise identical to bencode_collapse_str. str *bencode_collapse_str_json(bencode_item_t *root, str *out); /*** DECODING ***/ /* Decodes an encoded document from a string into a tree of bencode_item_t objects. The string does * not need to be null-terminated, instead the length of the string is given through the "len" * parameter. Memory is allocated from the bencode_buffer_t object. Returns NULL if no memory could * be allocated or if the document could not be successfully decoded. * * The returned element is the "root" of the document tree and normally is either a list object or * a dictionary object, but can also be a single string or integer object with no other objects * underneath or besides it (no childred and no siblings). The type of the object can be determined * by its ->type property. * * The number of bytes that could successfully be decoded into an object tree can be accessed through * the root element's ->str_len property. Normally, this number should be equal to the "len" parameter * passed, in which case the full string could be decoded. If ->str_len is less than "len", then there * was additional stray byte data after the end of the encoded document. * * The document tree can be traversed through the ->child and ->sibling pointers in each object. The * ->child pointer will be NULL for string and integer objects, as they don't contain other objects. * For lists and dictionaries, ->child will be a pointer to the first contained object. This first * contained object's ->sibling pointer will point to the next (second) contained object of the list * or the dictionary, and so on. The last contained element of a list of dictionary will have a * NULL ->sibling pointer. * * Dictionaries are like lists with ordered key/value pairs. When traversing dictionaries like * lists, the following applies: The first element in the list (where ->child points to) will be the * key of the first key/value pair (guaranteed to be a string and guaranteed to be present). The * next element (following one ->sibling) will be the value of the first key/value pair. Following * another ->sibling will point to the key of the next (second) key/value pair, and so on. * * However, to access children objects of dictionaries, the special functions following the naming * scheme bencode_dictionary_get_* below should be used. They perform key lookup through a simple * hash built into the dictionary object and so perform the lookup much faster. Only dictionaries * created through a decoding process (i.e. not ones created from bencode_dictionary()) have this * property. The hash is efficient only up to a certain number of elements (BENCODE_HASH_BUCKETS * in bencode.c) contained in the dictionary. If the number of children object exceeds this number, * key lookup will be slower than simply linearly traversing the list. * * The decoding function for dictionary object does not check whether keys are unique within the * dictionary. It also does not care about lexicographical order of the keys. * * Decoded string objects will contain the raw decoded byte string in ->iov[1] (including the correct * length). Strings are NOT null-terminated. Decoded integer objects will contain the decoded value * in ->value. * * All memory is freed when the bencode_buffer_t object is destroyed. */ bencode_item_t *bencode_decode(bencode_buffer_t *buf, const char *s, size_t len); /* Identical to bencode_decode(), but returns successfully only if the type of the decoded object match * "expect". */ INLINE bencode_item_t *bencode_decode_expect(bencode_buffer_t *buf, const char *s, size_t len, bencode_type_t expect); /* Identical to bencode_decode_expect() but takes a "str" argument. */ INLINE bencode_item_t *bencode_decode_expect_str(bencode_buffer_t *buf, const str *s, bencode_type_t expect); /* Returns the number of bytes that could successfully be decoded from 's', -1 if more bytes are needed or -2 on error */ ssize_t bencode_valid(const char *s, size_t len); // Convert a GLib JSON document to bencode bencode_item_t *bencode_convert_json(bencode_buffer_t *buf, JsonParser *json); /*** DICTIONARY LOOKUP & EXTRACTION ***/ /* Searches the given dictionary object for the given key and returns the respective value. Returns * NULL if the given object isn't a dictionary or if the key doesn't exist. The key must be a * null-terminated string. */ INLINE bencode_item_t *bencode_dictionary_get(bencode_item_t *dict, const char *key); /* Identical to bencode_dictionary_get() but doesn't require the key to be null-terminated. */ bencode_item_t *bencode_dictionary_get_len(bencode_item_t *dict, const char *key, size_t key_len); /* Identical to bencode_dictionary_get() but returns the value only if its type is a string, and * returns it as a pointer to the string itself. Returns NULL if the value is of some other type. The * returned string is NOT null-terminated. Length of the string is returned in *len, which must be a * valid pointer. The returned string will be valid until dict's bencode_buffer_t object is destroyed. */ INLINE char *bencode_dictionary_get_string(bencode_item_t *dict, const char *key, size_t *len); /* Identical to bencode_dictionary_get_string() but fills in a "str" struct. Returns str->s, which * may be NULL. */ INLINE char *bencode_dictionary_get_str(bencode_item_t *dict, const char *key, str *str); /* Looks up the given key in the dictionary and compares the corresponding value to the given * null-terminated string. Returns 2 if the key isn't found or if the value isn't a string, otherwise * returns according to strcmp(). */ INLINE int bencode_dictionary_get_strcmp(bencode_item_t *dict, const char *key, const char *str); /* Identical to bencode_dictionary_get() but returns the string in a newly allocated buffer (using the * BENCODE_MALLOC function), which remains valid even after bencode_buffer_t is destroyed. */ INLINE char *bencode_dictionary_get_string_dup(bencode_item_t *dict, const char *key, size_t *len); /* Combines bencode_dictionary_get_str() and bencode_dictionary_get_string_dup(). Fills in a "str" * struct, but copies the string into a newly allocated buffer. Returns str->s. */ INLINE char *bencode_dictionary_get_str_dup(bencode_item_t *dict, const char *key, str *str); /* Identical to bencode_dictionary_get_string() but expects an integer object. The parameter "defval" * specified which value should be returned if the key is not found or if the value is not an integer. */ INLINE long long int bencode_dictionary_get_integer(bencode_item_t *dict, const char *key, long long int defval); /* Identical to bencode_dictionary_get_integer() but allows for the item to be a string. */ INLINE long long int bencode_dictionary_get_int_str(bencode_item_t *dict, const char *key, long long int defval); /* Identical to bencode_dictionary_get(), but returns the object only if its type matches "expect". */ INLINE bencode_item_t *bencode_dictionary_get_expect(bencode_item_t *dict, const char *key, bencode_type_t expect); /**************************/ INLINE bencode_buffer_t *bencode_item_buffer(bencode_item_t *i) { if (!i) return NULL; return i->buffer; } INLINE bencode_item_t *bencode_string(bencode_buffer_t *buf, const char *s) { return bencode_string_len(buf, s, strlen(s)); } INLINE bencode_item_t *bencode_string_dup(bencode_buffer_t *buf, const char *s) { return bencode_string_len_dup(buf, s, strlen(s)); } INLINE bencode_item_t *bencode_str(bencode_buffer_t *buf, const str *s) { return bencode_string_len(buf, s->s, s->len); } INLINE bencode_item_t *bencode_str_dup(bencode_buffer_t *buf, const str *s) { return bencode_string_len_dup(buf, s->s, s->len); } INLINE char *bencode_strdup(bencode_buffer_t *buf, const char *s) { char *ret = bencode_buffer_alloc(buf, strlen(s) + 1); strcpy(ret, s); return ret; } INLINE void bencode_strdup_str(bencode_buffer_t *buf, str *o, const char *s) { o->len = strlen(s); o->s = bencode_buffer_alloc(buf, o->len); memcpy(o->s, s, o->len); } INLINE bencode_item_t *bencode_dictionary_add(bencode_item_t *dict, const char *key, bencode_item_t *val) { if (!key) return NULL; return bencode_dictionary_add_len(dict, key, strlen(key), val); } INLINE bencode_item_t *bencode_dictionary_str_add(bencode_item_t *dict, const str *key, bencode_item_t *val) { if (!key) return NULL; return bencode_dictionary_add_len(dict, key->s, key->len, val); } INLINE bencode_item_t *bencode_dictionary_add_string(bencode_item_t *dict, const char *key, const char *val) { if (!val) return NULL; return bencode_dictionary_add(dict, key, bencode_string(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_add_string_len(bencode_item_t *dict, const char *key, const char *val, size_t len) { if (!val) return NULL; return bencode_dictionary_add(dict, key, bencode_string_len(bencode_item_buffer(dict), val, len)); } INLINE bencode_item_t *bencode_dictionary_add_string_dup(bencode_item_t *dict, const char *key, const char *val) { if (!val) return NULL; return bencode_dictionary_add(dict, key, bencode_string_dup(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_add_str(bencode_item_t *dict, const char *key, const str *val) { if (!val) return NULL; return bencode_dictionary_add(dict, key, bencode_str(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_str_add_str(bencode_item_t *dict, const str *key, const str *val) { if (!val) return NULL; return bencode_dictionary_str_add(dict, key, bencode_str(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_add_str_dup(bencode_item_t *dict, const char *key, const str *val) { if (!val) return NULL; return bencode_dictionary_add(dict, key, bencode_str_dup(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_add_integer(bencode_item_t *dict, const char *key, long long int val) { return bencode_dictionary_add(dict, key, bencode_integer(bencode_item_buffer(dict), val)); } INLINE bencode_item_t *bencode_dictionary_add_dictionary(bencode_item_t *dict, const char *key) { return bencode_dictionary_add(dict, key, bencode_dictionary(bencode_item_buffer(dict))); } INLINE bencode_item_t *bencode_dictionary_add_list(bencode_item_t *dict, const char *key) { return bencode_dictionary_add(dict, key, bencode_list(bencode_item_buffer(dict))); } INLINE bencode_item_t *bencode_list_add_string(bencode_item_t *list, const char *s) { return bencode_list_add(list, bencode_string(bencode_item_buffer(list), s)); } INLINE bencode_item_t *bencode_list_add_string_dup(bencode_item_t *list, const char *s) { if (!s) return NULL; return bencode_list_add(list, bencode_string_dup(bencode_item_buffer(list), s)); } INLINE bencode_item_t *bencode_list_add_str(bencode_item_t *list, const str *s) { return bencode_list_add(list, bencode_str(bencode_item_buffer(list), s)); } INLINE bencode_item_t *bencode_list_add_str_dup(bencode_item_t *list, const str *s) { if (!s) return NULL; return bencode_list_add(list, bencode_str_dup(bencode_item_buffer(list), s)); } INLINE bencode_item_t *bencode_list_add_list(bencode_item_t *list) { return bencode_list_add(list, bencode_list(bencode_item_buffer(list))); } INLINE bencode_item_t *bencode_list_add_dictionary(bencode_item_t *list) { return bencode_list_add(list, bencode_dictionary(bencode_item_buffer(list))); } INLINE bencode_item_t *bencode_dictionary_get(bencode_item_t *dict, const char *key) { if (!key) return NULL; return bencode_dictionary_get_len(dict, key, strlen(key)); } INLINE char *bencode_dictionary_get_string(bencode_item_t *dict, const char *key, size_t *len) { bencode_item_t *val; val = bencode_dictionary_get(dict, key); if (!val || val->type != BENCODE_STRING) return NULL; *len = val->iov[1].iov_len; return val->iov[1].iov_base; } INLINE char *bencode_dictionary_get_str(bencode_item_t *dict, const char *key, str *s) { s->s = bencode_dictionary_get_string(dict, key, &s->len); if (!s->s) s->len = 0; return s->s; } INLINE char *bencode_dictionary_get_string_dup(bencode_item_t *dict, const char *key, size_t *len) { const char *s; char *ret; s = bencode_dictionary_get_string(dict, key, len); if (!s) return NULL; ret = BENCODE_MALLOC(*len); if (!ret) return NULL; memcpy(ret, s, *len); return ret; } INLINE char *bencode_dictionary_get_str_dup(bencode_item_t *dict, const char *key, str *s) { s->s = bencode_dictionary_get_string_dup(dict, key, &s->len); return s->s; } INLINE long long int bencode_dictionary_get_integer(bencode_item_t *dict, const char *key, long long int defval) { bencode_item_t *val; val = bencode_dictionary_get(dict, key); if (!val || val->type != BENCODE_INTEGER) return defval; return val->value; } INLINE long long bencode_get_integer_str(bencode_item_t *val, long long int defval) { if (!val) return defval; if (val->type == BENCODE_INTEGER) return val->value; if (val->type != BENCODE_STRING) return defval; if (val->iov[1].iov_len == 0) return defval; // uh oh... char *s = val->iov[1].iov_base; char old = s[val->iov[1].iov_len]; s[val->iov[1].iov_len] = 0; char *errp; long long int ret = strtoll(val->iov[1].iov_base, &errp, 10); s[val->iov[1].iov_len] = old; if (errp != val->iov[1].iov_base + val->iov[1].iov_len) return defval; return ret; } INLINE long long int bencode_dictionary_get_int_str(bencode_item_t *dict, const char *key, long long int defval) { bencode_item_t *val; val = bencode_dictionary_get(dict, key); return bencode_get_integer_str(val, defval); } INLINE bencode_item_t *bencode_decode_expect(bencode_buffer_t *buf, const char *s, size_t len, bencode_type_t expect) { bencode_item_t *ret; ret = bencode_decode(buf, s, len); if (!ret || ret->type != expect) return NULL; return ret; } INLINE bencode_item_t *bencode_decode_expect_str(bencode_buffer_t *buf, const str *s, bencode_type_t expect) { return bencode_decode_expect(buf, s->s, s->len, expect); } INLINE bencode_item_t *bencode_dictionary_get_expect(bencode_item_t *dict, const char *key, bencode_type_t expect) { bencode_item_t *ret; ret = bencode_dictionary_get(dict, key); if (!ret || ret->type != expect) return NULL; return ret; } INLINE str *bencode_collapse_str(bencode_item_t *root, str *out) { out->s = bencode_collapse(root, &out->len); return out; } INLINE int bencode_strcmp(bencode_item_t *a, const char *b) { int len; if (a->type != BENCODE_STRING) return 2; len = strlen(b); if (a->iov[1].iov_len < len) return -1; if (a->iov[1].iov_len > len) return 1; return memcmp(a->iov[1].iov_base, b, len); } INLINE int bencode_dictionary_get_strcmp(bencode_item_t *dict, const char *key, const char *s) { bencode_item_t *i; i = bencode_dictionary_get(dict, key); if (!i) return 2; return bencode_strcmp(i, s); } INLINE str *bencode_get_str(bencode_item_t *in, str *out) { if (!in || in->type != BENCODE_STRING) return NULL; out->s = in->iov[1].iov_base; out->len = in->iov[1].iov_len; return out; } #endif rtpengine-mr12.5.1.22/include/call.h000066400000000000000000000773401474347554000171130ustar00rootroot00000000000000#ifndef __CALL_H__ #define __CALL_H__ /* XXX split everything into call_signalling.[ch] and call_packets.[ch] or w/e */ #include #include #include #include #include #include #include #include #define MAX_RTP_PACKET_SIZE 8192 #define RTP_BUFFER_HEAD_ROOM 128 #define RTP_BUFFER_TAIL_ROOM 512 #define RTP_BUFFER_SIZE (MAX_RTP_PACKET_SIZE + RTP_BUFFER_HEAD_ROOM + RTP_BUFFER_TAIL_ROOM) #include "compat.h" #include "socket.h" #include "media_socket.h" #include "recording.h" #include "statistics.h" #include "codeclib.h" #include "t38.h" #include "types.h" #include "xt_RTPENGINE.h" #define UNDEFINED ((unsigned int) -1) enum termination_reason { UNKNOWN=0, REGULAR=1, FORCED=2, TIMEOUT=3, SILENT_TIMEOUT=4, FINAL_TIMEOUT=5, OFFER_TIMEOUT=6, }; enum tag_type { UNKNOWN_TAG=0, FROM_TAG=1, TO_TAG=2 }; enum stream_address_format { SAF_TCP, SAF_UDP, SAF_NG, SAF_ICE, }; enum message_type { SIP_OTHER = 0, SIP_REQUEST, SIP_REPLY, }; enum call_opmode { OP_OFFER = 0, OP_ANSWER = 1, OP_REQUEST, OP_REQ_ANSWER, OP_PUBLISH, OP_DELETE, OP_QUERY, OP_LIST, OP_PING, OP_STATISTICS, OP_PLAY_DTMF, OP_BLOCK_DTMF, OP_UNBLOCK_DTMF, OP_BLOCK_MEDIA, OP_UNBLOCK_MEDIA, OP_SILENCE_MEDIA, OP_UNSILENCE_MEDIA, OP_BLOCK_SILENCE_MEDIA, OP_UNBLOCK_SILENCE_MEDIA, OP_PLAY_MEDIA, OP_STOP_MEDIA, OP_START_FORWARDING, OP_STOP_FORWARDING, OP_SUBSCRIBER_REQ, OP_SUBSCRIBER_ANS, OP_UNSUBSCRIBE, OP_START_RECORDING, OP_STOP_RECORDING, OP_PAUSE_RECORDING, OP_OTHER, }; #define IS_OP_OTHER(opmode) \ ((opmode == OP_DELETE || opmode == OP_QUERY) \ || (opmode == OP_LIST || opmode == OP_PING) \ || (opmode == OP_STATISTICS || opmode == OP_PLAY_DTMF) \ || (opmode == OP_BLOCK_DTMF || opmode == OP_UNBLOCK_DTMF) \ || (opmode == OP_BLOCK_MEDIA || opmode == OP_UNBLOCK_MEDIA) \ || (opmode == OP_SILENCE_MEDIA || opmode == OP_UNSILENCE_MEDIA) \ || (opmode == OP_BLOCK_SILENCE_MEDIA || opmode == OP_UNBLOCK_SILENCE_MEDIA) \ || (opmode == OP_PLAY_MEDIA || opmode == OP_STOP_MEDIA) \ || (opmode == OP_START_FORWARDING || opmode == OP_STOP_FORWARDING) \ || (opmode == OP_SUBSCRIBER_REQ || opmode == OP_SUBSCRIBER_ANS) \ || (opmode == OP_UNSUBSCRIBE || opmode == OP_START_RECORDING) \ || (opmode == OP_STOP_RECORDING || opmode == OP_PAUSE_RECORDING) \ || (opmode == OP_OTHER)) #define IS_OP_DIRECTIONAL(opmode) \ ((opmode == OP_BLOCK_DTMF || opmode == OP_BLOCK_MEDIA) \ || (opmode == OP_UNBLOCK_DTMF || opmode == OP_UNBLOCK_MEDIA) \ || (opmode == OP_START_FORWARDING || opmode == OP_STOP_FORWARDING)) enum call_media_counted { CMC_INCREMENT = 0, CMC_DECREMENT, }; enum call_stream_state { CSS_UNKNOWN = 0, CSS_SHUTDOWN, CSS_ICE, CSS_DTLS, CSS_PIERCE_NAT, CSS_RUNNING, }; enum { CALL_ITERATOR_MAIN = 0, CALL_ITERATOR_TIMER, CALL_ITERATOR_GRAPHITE, CALL_ITERATOR_MQTT, NUM_CALL_ITERATORS }; #define ERROR_NO_FREE_PORTS -100 #define ERROR_NO_FREE_LOGS -101 #ifndef RTP_LOOP_PROTECT #define RTP_LOOP_PROTECT 28 /* number of bytes */ #define RTP_LOOP_PACKETS 2 /* number of packets */ #define RTP_LOOP_MAX_COUNT 30 /* number of consecutively detected dupes to trigger protection */ #endif #define IS_FOREIGN_CALL(c) CALL_ISSET(c, FOREIGN) #define IS_OWN_CALL(c) !IS_FOREIGN_CALL(c) /* flags shared by several of the structs below */ #define SHARED_FLAG_IMPLICIT_RTCP 0x00000001 #define SHARED_FLAG_ASYMMETRIC 0x00000002 #define SHARED_FLAG_SEND 0x00000004 #define SHARED_FLAG_RECV 0x00000008 #define SHARED_FLAG_RTCP_MUX 0x00000010 #define SHARED_FLAG_SETUP_ACTIVE 0x00000020 #define SHARED_FLAG_SETUP_PASSIVE 0x00000040 #define SHARED_FLAG_ICE 0x00000080 #define SHARED_FLAG_STRICT_SOURCE 0x00000100 #define SHARED_FLAG_MEDIA_HANDOVER 0x00000200 #define SHARED_FLAG_TRICKLE_ICE 0x00000400 #define SHARED_FLAG_ICE_LITE_PEER 0x00000800 #define SHARED_FLAG_UNIDIRECTIONAL 0x00001000 #define SHARED_FLAG_RTCP_FB 0x00002000 #define SHARED_FLAG_LEGACY_OSRTP 0x00004000 #define SHARED_FLAG_LEGACY_OSRTP_REV 0x00008000 /* struct stream_params */ #define SP_FLAG_NO_RTCP 0x00010000 #define SP_FLAG_IMPLICIT_RTCP SHARED_FLAG_IMPLICIT_RTCP #define SP_FLAG_RTCP_MUX SHARED_FLAG_RTCP_MUX #define SP_FLAG_SEND SHARED_FLAG_SEND #define SP_FLAG_RECV SHARED_FLAG_RECV #define SP_FLAG_ASYMMETRIC SHARED_FLAG_ASYMMETRIC #define SP_FLAG_UNIDIRECTIONAL SHARED_FLAG_UNIDIRECTIONAL #define SP_FLAG_SETUP_ACTIVE SHARED_FLAG_SETUP_ACTIVE #define SP_FLAG_SETUP_PASSIVE SHARED_FLAG_SETUP_PASSIVE #define SP_FLAG_ICE SHARED_FLAG_ICE #define SP_FLAG_STRICT_SOURCE SHARED_FLAG_STRICT_SOURCE #define SP_FLAG_MEDIA_HANDOVER SHARED_FLAG_MEDIA_HANDOVER #define SP_FLAG_TRICKLE_ICE SHARED_FLAG_TRICKLE_ICE #define SP_FLAG_ICE_LITE_PEER SHARED_FLAG_ICE_LITE_PEER #define SP_FLAG_RTCP_FB SHARED_FLAG_RTCP_FB #define SP_FLAG_LEGACY_OSRTP SHARED_FLAG_LEGACY_OSRTP #define SP_FLAG_LEGACY_OSRTP_REV SHARED_FLAG_LEGACY_OSRTP_REV /* struct packet_stream */ #define PS_FLAG_RTP 0x00010000 #define PS_FLAG_RTCP 0x00020000 #define PS_FLAG_IMPLICIT_RTCP SHARED_FLAG_IMPLICIT_RTCP #define PS_FLAG_FALLBACK_RTCP 0x00040000 #define PS_FLAG_RECEIVED 0x00080000 #define PS_FLAG_FILLED 0x00100000 #define PS_FLAG_CONFIRMED 0x00200000 #define PS_FLAG_KERNELIZED 0x00400000 #define PS_FLAG_NO_KERNEL_SUPPORT 0x00800000 #define PS_FLAG_UNUSED 0x01000000 #define PS_FLAG_FINGERPRINT_VERIFIED 0x02000000 #define PS_FLAG_STRICT_SOURCE SHARED_FLAG_STRICT_SOURCE #define PS_FLAG_MEDIA_HANDOVER SHARED_FLAG_MEDIA_HANDOVER #define PS_FLAG_ICE SHARED_FLAG_ICE #define PS_FLAG_ZERO_ADDR 0x04000000 #define PS_FLAG_PIERCE_NAT 0x08000000 #define PS_FLAG_NAT_WAIT 0x10000000 /* struct call_media */ #define MEDIA_FLAG_INITIALIZED 0x00010000 #define MEDIA_FLAG_ASYMMETRIC SHARED_FLAG_ASYMMETRIC #define MEDIA_FLAG_UNIDIRECTIONAL SHARED_FLAG_UNIDIRECTIONAL #define MEDIA_FLAG_SEND SHARED_FLAG_SEND #define MEDIA_FLAG_RECV SHARED_FLAG_RECV #define MEDIA_FLAG_RTCP_MUX SHARED_FLAG_RTCP_MUX #define MEDIA_FLAG_RTCP_MUX_OVERRIDE 0x00020000 #define MEDIA_FLAG_DTLS 0x00040000 #define MEDIA_FLAG_SDES 0x00080000 #define MEDIA_FLAG_SETUP_ACTIVE SHARED_FLAG_SETUP_ACTIVE #define MEDIA_FLAG_SETUP_PASSIVE SHARED_FLAG_SETUP_PASSIVE #define MEDIA_FLAG_PASSTHRU 0x00100000 #define MEDIA_FLAG_ICE SHARED_FLAG_ICE #define MEDIA_FLAG_TRICKLE_ICE SHARED_FLAG_TRICKLE_ICE #define MEDIA_FLAG_ICE_LITE_PEER SHARED_FLAG_ICE_LITE_PEER #define MEDIA_FLAG_ICE_CONTROLLING 0x00200000 #define MEDIA_FLAG_LOOP_CHECK 0x00400000 #define MEDIA_FLAG_PTIME_OVERRIDE 0x01000000 #define MEDIA_FLAG_RTCP_FB SHARED_FLAG_RTCP_FB #define MEDIA_FLAG_GENERATOR 0x02000000 #define MEDIA_FLAG_ICE_LITE_SELF 0x04000000 #define MEDIA_FLAG_RTCP_GEN 0x08000000 #define MEDIA_FLAG_ECHO 0x10000000 #define MEDIA_FLAG_BLACKHOLE 0x20000000 #define MEDIA_FLAG_REORDER_FORCED 0x40000000 #define MEDIA_FLAG_AUDIO_PLAYER 0x80000000 #define MEDIA_FLAG_LEGACY_OSRTP SHARED_FLAG_LEGACY_OSRTP #define MEDIA_FLAG_LEGACY_OSRTP_REV SHARED_FLAG_LEGACY_OSRTP_REV #define MEDIA_FLAG_TRANSCODING 0x100000000LL #define MEDIA_FLAG_BLOCK_EGRESS 0x200000000LL /* struct call_monologue */ #define ML_FLAG_REC_FORWARDING 0x00010000 #define ML_FLAG_INJECT_DTMF 0x00020000 #define ML_FLAG_DTMF_INJECTION_ACTIVE 0x00040000 #define ML_FLAG_DETECT_DTMF 0x00080000 #define ML_FLAG_NO_RECORDING 0x00100000 /* unused 0x00200000 */ #define ML_FLAG_BLOCK_SHORT 0x00400000 #define ML_FLAG_BLOCK_MEDIA 0x00800000 #define ML_FLAG_SILENCE_MEDIA 0x01000000 /* call_t */ #define CALL_FLAG_IPV4_OFFER 0x00010000 #define CALL_FLAG_IPV6_OFFER 0x00020000 #define CALL_FLAG_IPV4_ANSWER 0x00040000 #define CALL_FLAG_IPV6_ANSWER 0x00080000 #define CALL_FLAG_MEDIA_COUNTED 0x00100000 #define CALL_FLAG_RECORDING_ON 0x00200000 #define CALL_FLAG_REC_FORWARDING 0x00400000 #define CALL_FLAG_DROP_TRAFFIC 0x00800000 #define CALL_FLAG_FOREIGN 0x01000000 // created_via_redis_notify call #define CALL_FLAG_FOREIGN_MEDIA 0x02000000 // for calls taken over, tracks whether we have media #define CALL_FLAG_DISABLE_JB 0x04000000 #define CALL_FLAG_DEBUG 0x08000000 #define CALL_FLAG_BLOCK_MEDIA 0x10000000 #define CALL_FLAG_SILENCE_MEDIA 0x20000000 #define CALL_FLAG_NO_REC_DB 0x40000000 /* access macros */ #define SP_ISSET(p, f) bf_isset(&(p)->sp_flags, SP_FLAG_ ## f) #define SP_SET(p, f) bf_set(&(p)->sp_flags, SP_FLAG_ ## f) #define SP_CLEAR(p, f) bf_clear(&(p)->sp_flags, SP_FLAG_ ## f) #define PS_ISSET(p, f) bf_isset(&(p)->ps_flags, PS_FLAG_ ## f) #define PS_ISSET2(p, f, g) bf_isset(&(p)->ps_flags, PS_FLAG_ ## f | PS_FLAG_ ## g) #define PS_ARESET2(p, f, g) bf_areset(&(p)->ps_flags, PS_FLAG_ ## f | PS_FLAG_ ## g) #define PS_SET(p, f) bf_set(&(p)->ps_flags, PS_FLAG_ ## f) #define PS_CLEAR(p, f) bf_clear(&(p)->ps_flags, PS_FLAG_ ## f) #define MEDIA_ISSET(p, f) bf_isset(&(p)->media_flags, MEDIA_FLAG_ ## f) #define MEDIA_ISSET2(p, f, g) bf_isset(&(p)->media_flags, MEDIA_FLAG_ ## f | MEDIA_FLAG_ ## g) #define MEDIA_ARESET2(p, f, g) bf_areset(&(p)->media_flags, MEDIA_FLAG_ ## f | MEDIA_FLAG_ ## g) #define MEDIA_SET(p, f) bf_set(&(p)->media_flags, MEDIA_FLAG_ ## f) #define MEDIA_CLEAR(p, f) bf_clear(&(p)->media_flags, MEDIA_FLAG_ ## f) #define ML_ISSET(p, f) bf_isset(&(p)->ml_flags, ML_FLAG_ ## f) #define ML_ISSET2(p, f, g) bf_isset(&(p)->ml_flags, ML_FLAG_ ## f | ML_FLAG_ ## g) #define ML_ARESET2(p, f, g) bf_areset(&(p)->ml_flags, ML_FLAG_ ## f | ML_FLAG_ ## g) #define ML_SET(p, f) bf_set(&(p)->ml_flags, ML_FLAG_ ## f) #define ML_CLEAR(p, f) bf_clear(&(p)->ml_flags, ML_FLAG_ ## f) #define CALL_ISSET(p, f) bf_isset(&(p)->call_flags, CALL_FLAG_ ## f) #define CALL_ISSET2(p, f, g) bf_isset(&(p)->call_flags, CALL_FLAG_ ## f | CALL_FLAG_ ## g) #define CALL_ARESET2(p, f, g) bf_areset(&(p)->call_flags, CALL_FLAG_ ## f | CALL_FLAG_ ## g) #define CALL_SET(p, f) bf_set(&(p)->call_flags, CALL_FLAG_ ## f) #define CALL_CLEAR(p, f) bf_clear(&(p)->call_flags, CALL_FLAG_ ## f) enum block_dtmf_mode { BLOCK_DTMF_OFF = 0, BLOCK_DTMF_DROP = 1, BLOCK_DTMF___REPLACE_START = 2, BLOCK_DTMF___PCM_REPLACE_START = 2, // block modes that replace any DTMF with PCM BLOCK_DTMF_SILENCE = 2, BLOCK_DTMF_TONE = 3, BLOCK_DTMF_RANDOM = 4, BLOCK_DTMF___PCM_REPLACE_END = 4, // block modes that replace DTMF events with other DTMF events if possible BLOCK_DTMF_ZERO = 5, BLOCK_DTMF_DTMF = 6, BLOCK_DTMF___REPLACE_END = 6, }; #include "obj.h" #include "bencode.h" #include "crypto.h" #include "dtls.h" #include "dtmf.h" struct control_stream; struct redis; struct crypto_suite; struct rtpengine_srtp; struct local_interface; struct call_monologue; struct ice_agent; struct ssrc_hash; struct codec_handler; struct media_player; struct send_timer; struct transport_protocol; struct jitter_buffer; struct codec_tracker; struct rtcp_timer; struct mqtt_timer; struct janus_session; struct audio_player; struct media_subscription; typedef bencode_buffer_t call_buffer_t; #define call_buffer_alloc bencode_buffer_alloc #define call_buffer_init bencode_buffer_init #define call_buffer_free bencode_buffer_free TYPED_GHASHTABLE(codecs_ht, void, rtp_payload_type, g_direct_hash, g_direct_equal, NULL, NULL) TYPED_GHASHTABLE(codec_names_ht, str, GQueue, str_case_hash, str_case_equal, str_free, g_queue_free) TYPED_GHASHTABLE_LOOKUP_INSERT(codec_names_ht, str_free, g_queue_new) TYPED_GQUEUE(subscription, struct media_subscription) TYPED_DIRECT_FUNCS(media_direct_hash, media_direct_eq, struct call_media) TYPED_GHASHTABLE(subscription_ht, struct call_media, subscription_list, media_direct_hash, media_direct_eq, NULL, NULL) struct codec_store { codecs_ht codecs; // int payload type -> rtp_payload_type codec_names_ht codec_names; // codec name -> GQueue of int payload types; storage container rtp_pt_q codec_prefs; // preference by order in SDP; storage container rtp_pt_list *supp_link; // tracks location for codec_store_add_end struct codec_tracker *tracker; struct call_media *media; unsigned int strip_all:1, // set by codec_store_strip strip_full:1; // set by codec_store_strip }; TYPED_GQUEUE(endpoint_map, struct endpoint_map) struct stream_params { unsigned int index; /* starting with 1 */ str type; enum media_type type_id; struct endpoint rtp_endpoint; struct endpoint rtcp_endpoint; unsigned int consecutive_ports; unsigned int num_ports; str protocol_str; const struct transport_protocol *protocol; str format_str; sdes_q sdes_params; // slice-alloc'd sdp_attr_q attributes; /* just some other attributes */ str direction[2]; sockfamily_t *desired_family; struct dtls_fingerprint fingerprint; atomic64 sp_flags; struct codec_store codecs; candidate_q ice_candidates; /* slice-alloc'd */ str ice_ufrag; str ice_pwd; int ptime; str media_id; struct t38_options t38_options; str tls_id; int media_sdp_id; int media_session_as, media_session_rr, media_session_rs; }; struct endpoint_map { unsigned int unique_id; struct endpoint endpoint; unsigned int num_ports; const struct logical_intf *logical_intf; sfd_intf_list_q intf_sfds; /* list of struct sfd_intf_list - contains stream_fd list */ unsigned int wildcard:1; }; struct loop_protector { unsigned int len; unsigned char buf[RTP_LOOP_PROTECT]; }; /** * The packet_stream itself can be marked as: * - SRTP endpoint * - ICE endpoint * - send/receive-only * * This is done through the various bit flags. */ struct packet_stream { /* Both locks valid only with call->master_lock held in R. * Preempted by call->master_lock held in W. * If both in/out are to be locked, in_lock must be locked first. * * The in_lock protects fields relevant to packet reception on that stream, * meanwhile the out_lock protects fields relevant to packet egress. * * This allows packet handling on multiple ports and streams belonging * to the same call to happen at the same time. */ mutex_t in_lock, out_lock; struct call_media *media; /* RO */ call_t *call; /* RO */ unsigned int component; /* RO, starts with 1 */ unsigned int unique_id; /* RO */ struct recording_stream recording; /* LOCK: call->master_lock */ stream_fd_q sfds; /* LOCK: call->master_lock */ stream_fd * selected_sfd; endpoint_t last_local_endpoint; struct dtls_connection ice_dtls; /* LOCK: in_lock */ sink_handler_q rtp_sinks; /* LOCK: call->master_lock, in_lock for streamhandler */ sink_handler_q rtcp_sinks; /* LOCK: call->master_lock, in_lock for streamhandler */ struct packet_stream *rtcp_sibling; /* LOCK: call->master_lock */ sink_handler_q rtp_mirrors; /* LOCK: call->master_lock, in_lock for streamhandler */ struct endpoint endpoint; /* LOCK: out_lock */ struct endpoint detected_endpoints[4]; /* LOCK: out_lock */ struct timeval ep_detect_signal; /* LOCK: out_lock */ struct endpoint advertised_endpoint; /* RO */ struct endpoint learned_endpoint; /* LOCK: out_lock */ struct crypto_context crypto; /* OUT direction, LOCK: out_lock */ struct ssrc_ctx *ssrc_in[RTPE_NUM_SSRC_TRACKING], /* LOCK: in_lock */ *ssrc_out[RTPE_NUM_SSRC_TRACKING]; /* LOCK: out_lock */ unsigned int ssrc_in_idx, /* LOCK: in_lock */ ssrc_out_idx; /* LOCK: out_lock */ struct send_timer *send_timer; /* RO */ struct jitter_buffer *jb; /* RO */ time_t kernel_time; struct stream_stats *stats_in; struct stream_stats *stats_out; atomic64 last_packet; // userspace only GHashTable *rtp_stats; /* LOCK: call->master_lock */ struct rtp_stats *rtp_stats_cache; enum endpoint_learning el_flags; #if RTP_LOOP_PROTECT /* LOCK: in_lock: */ unsigned int lp_idx; struct loop_protector lp_buf[RTP_LOOP_PACKETS]; unsigned int lp_count; #endif X509 *dtls_cert; /* LOCK: in_lock */ /* in_lock must be held for SETTING these: */ atomic64 ps_flags; }; INLINE uint64_t packet_stream_last_packet(const struct packet_stream *ps) { uint64_t lp1 = atomic64_get_na(&ps->last_packet); uint64_t lp2 = atomic64_get_na(&ps->stats_in->last_packet); return MAX(lp1, lp2); } /** * Protected by call->master_lock, except the RO elements. * * call_media is not reference-counted and is completely owned by the call object. * Therefore call_media is released when the call is destroyed. */ struct call_media { struct call_monologue *monologue; /* RO */ call_t *call; /* RO */ unsigned int index; /* RO */ unsigned int unique_id; /* RO */ str type; enum media_type type_id; str protocol_str; const struct transport_protocol *protocol; str format_str; sockfamily_t *desired_family; const struct logical_intf *logical_intf; struct ice_agent *ice_agent; str media_id; str label; sdes_q sdes_in, sdes_out; struct dtls_fingerprint fingerprint; /* as received */ const struct dtls_hash_func *fp_hash_func; /* outgoing */ str tls_id; packet_stream_q streams; /* normally RTP + RTCP */ endpoint_map_q endpoint_maps; struct codec_store codecs; sdp_attr_q sdp_attributes; /* sdp_attr_new() */ sdp_attr_print_f *sdp_attr_print; codec_handlers_ht codec_handlers; /* int payload type -> struct codec_handler XXX combine this with 'codecs' hash table? */ codec_handlers_q codec_handlers_store; /* storage for struct codec_handler */ struct codec_handler *codec_handler_cache; struct rtcp_handler *rtcp_handler; struct rtcp_timer *rtcp_timer; /* master lock for scheduling purposes */ struct mqtt_timer *mqtt_timer; /* master lock for scheduling purposes */ //struct codec_handler *dtmf_injector; struct t38_gateway *t38_gateway; struct audio_player *audio_player; struct codec_handler *t38_handler; unsigned int buffer_delay; /* media subsriptions handling */ subscription_ht media_subscriptions_ht; /* for quick lookup of our subsriptions */ subscription_ht media_subscribers_ht; /* for quick lookup of medias subscribed to us */ subscription_q media_subscribers; /* who is subscribed to this media (sinks) */ subscription_q media_subscriptions; /* who am I subscribed to (sources) */ mutex_t dtmf_lock; unsigned long dtmf_ts; /* TS of last processed end event */ unsigned int dtmf_count; // lists are append-only dtmf_event_q dtmf_recv; dtmf_event_q dtmf_send; int media_sdp_id; /* bandwidth */ int bandwidth_as, bandwidth_rr, bandwidth_rs; #ifdef WITH_TRANSCODING encoder_callback_t encoder_callback; #endif int ptime; /* either from SDP or overridden */ atomic64 media_flags; }; TYPED_GPTRARRAY(medias_arr, struct call_media) TYPED_GQUEUE(medias, struct call_media) struct media_subscription { struct call_media * media; /* media itself */ struct call_monologue * monologue; /* whom media belongs to */ struct sink_attrs attrs; /* attributes to passed to a sink */ subscription_list * link; /* TODO: is this still really needed? */ }; /** * Half a dialogue. * Protected by call->master_lock, except the RO elements. * * call_monologue (call participant) contains a list of subscribers * and subscriptions, which are other call_monologue's. * * These lists are mutual. * A regular A/B call has two call_monologue objects with each subscribed to the other. */ struct call_monologue { call_t *call; /* RO */ unsigned int unique_id; /* RO */ str tag; str viabranch; enum tag_type tagtype; str label; time_t created; /* RO */ time_t deleted; struct timeval started; /* for CDR */ struct timeval terminated; /* for CDR */ enum termination_reason term_reason; sockfamily_t *desired_family; const struct logical_intf *logical_intf; GHashTable *associated_tags; GHashTable *subscribers_ht; /* for quick lookup */ medias_arr *medias; GHashTable *media_ids; struct media_player *player; struct media_player *rec_player; int sdp_session_rr, sdp_session_rs; str last_in_sdp; sdp_sessions_q last_in_sdp_parsed; /* last parsed `sdp_session` */ sdp_streams_q last_in_sdp_streams; /* last parsed `stream_params` */ GString *last_out_sdp; sdp_origin * session_sdp_orig; /* actual origin belonging to this monologue */ sdp_origin * session_last_sdp_orig; /* previously used origin by other other side */ char *sdp_session_name; char *sdp_session_timing; struct ssrc_hash *ssrc_hash; str metadata; struct janus_session *janus_session; // DTMF triggers, MUST be set via dtmf_trigger_set() only struct dtmf_trigger_state dtmf_trigger_state[__NUM_DTMF_TRIGGERS]; uint8_t dtmf_trigger_index[__NUM_DTMF_TRIGGERS]; unsigned int num_dtmf_triggers; unsigned int dtmf_delay; // DTMF blocking/replacement stuff: enum block_dtmf_mode block_dtmf; // current block mode GArray *tone_freqs; unsigned int tone_vol; char dtmf_digit; // replacement digit enum block_dtmf_mode block_dtmf_trigger; // to enable when trigger detected int dtmf_trigger_digits; // unblock after this many digits enum block_dtmf_mode block_dtmf_trigger_end; // to enable when trigger detected unsigned int block_dtmf_trigger_end_ms; // unblock after this many ms /* carry `sdp_session` attributes into resulting call monologue SDP */ sdp_attr_q sdp_attributes; sdp_attr_print_f *sdp_attr_print; atomic64 ml_flags; }; TYPED_GQUEUE(monologues, struct call_monologue) G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(monologues_q, monologues_q_clear) TYPED_GHASHTABLE(tags_ht, str, struct call_monologue, str_hash, str_equal, NULL, NULL) struct call_iterator_list { call_list *first; mutex_t lock; // protects .first and every entry's .data }; struct call_iterator_entry { call_list link; // .data is protected by the list's main lock mutex_t next_lock; // held while the link is in use, protects link.data and link.next mutex_t prev_lock; // held while the link is in use, protects link.prev }; #define ITERATE_CALL_LIST_START(which, varname) \ do { \ int __which = (which); \ mutex_lock(&rtpe_call_iterators[__which].lock); \ \ __auto_type __l = rtpe_call_iterators[__which].first; \ bool __has_lock = true; \ call_t *next_ ## varname = NULL; \ while (__l) { \ call_t *varname = NULL; \ if (next_ ## varname) \ varname = next_ ## varname; \ else { \ varname = __l->data; \ obj_hold(varname); \ mutex_lock(&varname->iterator[__which].next_lock); \ } \ if (__has_lock) \ mutex_unlock(&rtpe_call_iterators[__which].lock); \ __has_lock = false #define ITERATE_CALL_LIST_NEXT_END(varname) \ __auto_type __next = varname->iterator[__which].link.next; \ if (__next) { \ next_ ## varname = __next->data; \ obj_hold(next_ ## varname); \ mutex_lock(&next_ ## varname->iterator[__which].next_lock); \ } \ else \ next_ ## varname = NULL; \ mutex_unlock(&varname->iterator[__which].next_lock); \ __l = __next; \ obj_put(varname); \ } \ if (__has_lock) \ mutex_unlock(&rtpe_call_iterators[__which].lock); \ } while (0) TYPED_GHASHTABLE(labels_ht, str, struct call_monologue, str_hash, str_equal, NULL, NULL) /** * call_t is the main parent structure of all call-related objects. * * The logical object hierarchy under the 'struct call': * call > call_monologue > call_media > packet_stream > stream_fd * * call_t usually has multiple call_monologue objects. * Meanwhile each sub-object of call, as a parent of own sub-objects, * can also contain multiple child objects. * * Furthermore, each child object contains a back ptr to its parent object. * * The parent call object contains one list (as GQueue) for each kind of child object. * These lists are what is used to free and release the child objects * during a call teardown. * Every child object owned by the call is added to its respective list exactly once. * * Call object is reference-counted through the struct obj. */ struct call { /* struct obj member must always be the first member in a struct. * * obj is created with a cleanup handler, see obj_alloc(), * and this handler is executed whenever the reference count drops to zero. * * References are acquired and released through obj_get() and obj_put() * (plus some other wrapper functions). */ struct obj obj; mutex_t buffer_lock; call_buffer_t buffer; // use a single poller for all sockets within the call struct poller *poller; /* master_lock protects the entire call and all the contained objects. * * All the fields and any nested sub-object must: * - only be accessed with the master_lock held as a read lock * - only be modified with the master_lock held as a write lock * * Therefore, during signalling events acquire a write-lock, * and during RTP packets handling acquire a read-lock. */ rwlock_t master_lock; /* everything below is protected by the master_lock */ monologues_q monologues; /* call_monologue */ medias_q medias; /* call_media */ tags_ht tags; tags_ht viabranches; labels_ht labels; packet_stream_q streams; stream_fd_q stream_fds; /* stream_fd */ endpoint_map_q endpoint_maps; struct dtls_cert *dtls_cert; /* for outgoing */ struct mqtt_timer *mqtt_timer; str callid; struct timeval created; struct timeval destroyed; time_t last_signal; time_t deleted; time_t ml_deleted; unsigned char tos; char *created_from; sockaddr_t created_from_addr; sockaddr_t xmlrpc_callback; endpoint_t dtmf_log_dest; unsigned int redis_hosted_db; atomic64 last_redis_update; struct recording *recording; str metadata; str recording_meta_prefix; str recording_file; str recording_random_tag; str recording_path; str recording_pattern; struct call_iterator_entry iterator[NUM_CALL_ITERATORS]; int cpu_affinity; enum block_dtmf_mode block_dtmf; atomic64 call_flags; }; /** * The main entry point into call objects for signalling events is the call-ID: * Therefore the main entry point is the global hash table rtpe_callhash (protected by rtpe_callhash_lock), * which uses call-IDs as keys and call objects as values, * while holding a reference to each contained call. */ TYPED_GHASHTABLE(rtpe_calls_ht, str, struct call, str_hash, str_equal, NULL, NULL) extern rwlock_t rtpe_callhash_lock; extern rtpe_calls_ht rtpe_callhash; extern struct call_iterator_list rtpe_call_iterators[NUM_CALL_ITERATORS]; int call_init(void); void call_free(void); struct call_monologue *__monologue_create(call_t *call); void __monologue_free(struct call_monologue *m); void __monologue_tag(struct call_monologue *ml, const str *tag); void __monologue_viabranch(struct call_monologue *ml, const str *viabranch); struct packet_stream *__packet_stream_new(call_t *call); void __add_media_subscription(struct call_media * which, struct call_media * to, const struct sink_attrs *attrs); struct media_subscription *call_get_top_media_subscription(struct call_monologue *ml); struct media_subscription *call_get_media_subscription(subscription_ht ht, struct call_media * cm); struct call_monologue * ml_medias_subscribed_to_single_ml(struct call_monologue *ml); void free_sink_handler(struct sink_handler *); void __add_sink_handler(sink_handler_q *, struct packet_stream *, const struct sink_attrs *); void media_subscription_free(struct media_subscription *); void media_subscriptions_clear(subscription_q *q); G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(subscription_q, media_subscriptions_clear) call_t *call_get_or_create(const str *callid, bool exclusive); call_t *call_get_opmode(const str *callid, enum call_opmode opmode); void call_make_own_foreign(call_t *c, bool foreign); int call_get_mono_dialogue(struct call_monologue *monologues[2], call_t *call, const str *fromtag, const str *totag, const str *viabranch); struct call_monologue *call_get_monologue(call_t *call, const str *fromtag); struct call_monologue *call_get_or_create_monologue(call_t *call, const str *fromtag); call_t *call_get(const str *callid); __attribute__((nonnull(2, 3))) int monologue_offer_answer(struct call_monologue *monologues[2], sdp_streams_q *streams, sdp_ng_flags *flags); __attribute__((nonnull(1, 2, 3, 4))) void codecs_offer_answer(struct call_media *media, struct call_media *other_media, struct stream_params *sp, sdp_ng_flags *flags); int monologue_publish(struct call_monologue *ml, sdp_streams_q *streams, sdp_ng_flags *flags); int monologue_subscribe_request(const subscription_q *srms, struct call_monologue *dst, sdp_ng_flags *flags); int monologue_subscribe_answer(struct call_monologue *dst, sdp_ng_flags *flags, sdp_streams_q *streams); int monologue_unsubscribe(struct call_monologue *dst, sdp_ng_flags *); void monologue_destroy(struct call_monologue *ml); int call_delete_branch_by_id(const str *callid, const str *branch, const str *fromtag, const str *totag, bencode_item_t *output, int delete_delay); int call_delete_branch(call_t *, const str *branch, const str *fromtag, const str *totag, bencode_item_t *output, int delete_delay); void call_destroy(call_t *); struct call_media *call_media_new(call_t *call); void call_media_free(struct call_media **mdp); enum call_stream_state call_stream_state_machine(struct packet_stream *); void call_media_state_machine(struct call_media *m); void call_media_unkernelize(struct call_media *media, const char *reason); void dialogue_unconfirm(struct call_monologue *ml, const char *); void __monologue_unconfirm(struct call_monologue *monologue, const char *); void __media_unconfirm(struct call_media *media, const char *); void update_init_subscribers(struct call_monologue *ml, enum call_opmode opmode); int call_stream_address46(char *o, struct packet_stream *ps, enum stream_address_format format, int *len, const struct local_intf *ifa, bool keep_unspec); void add_total_calls_duration_in_interval(struct timeval *interval_tv); enum thread_looper_action call_timer(void); void __rtp_stats_update(GHashTable *dst, struct codec_store *); int __init_stream(struct packet_stream *ps); void call_stream_crypto_reset(struct packet_stream *ps); const rtp_payload_type *__rtp_stats_codec(struct call_media *m); #include "str.h" #include "rtp.h" INLINE void *call_malloc(call_t *c, size_t l) { void *ret; mutex_lock(&c->buffer_lock); ret = call_buffer_alloc(&c->buffer, l); mutex_unlock(&c->buffer_lock); return ret; } INLINE char *call_strdup_len(call_t *c, const char *s, unsigned int len) { char *r; if (!s) return NULL; r = call_malloc(c, len + 1); memcpy(r, s, len); r[len] = 0; return r; } INLINE char *call_strdup(call_t *c, const char *s) { if (!s) return NULL; return call_strdup_len(c, s, strlen(s)); } INLINE str *call_str_cpy_len(call_t *c, str *out, const char *in, int len) { if (!in) { *out = STR_NULL; return out; } out->s = call_strdup_len(c, in, len); out->len = len; return out; } INLINE str *call_str_cpy(call_t *c, str *out, const str *in) { return call_str_cpy_len(c, out, in ? in->s : NULL, in ? in->len : 0); } INLINE str *call_str_cpy_c(call_t *c, str *out, const char *in) { return call_str_cpy_len(c, out, in, in ? strlen(in) : 0); } INLINE str *call_str_dup(call_t *c, const str *in) { str *out; out = call_malloc(c, sizeof(*out)); call_str_cpy_len(c, out, in->s, in->len); return out; } INLINE str *call_str_init_dup(call_t *c, char *s) { str t; str_init(&t, s); return call_str_dup(c, &t); } INLINE void __call_unkernelize(call_t *call, const char *reason) { for (__auto_type l = call->monologues.head; l; l = l->next) { struct call_monologue *ml = l->data; __monologue_unconfirm(ml, reason); } } INLINE endpoint_t *packet_stream_local_addr(struct packet_stream *ps) { if (ps->selected_sfd) return &ps->selected_sfd->socket.local; if (ps->last_local_endpoint.port) return &ps->last_local_endpoint; static endpoint_t dummy = { .address = { .ipv4.s_addr = 0, }, .port = 0, }; // one-time init if (!dummy.address.family) dummy.address.family = get_socket_family_enum(SF_IP4); return &dummy; } #endif rtpengine-mr12.5.1.22/include/call_interfaces.h000066400000000000000000000243251474347554000213110ustar00rootroot00000000000000#ifndef _CALL_INTERFACES_H_ #define _CALL_INTERFACES_H_ #include #include "str.h" #include "bencode.h" #include "socket.h" #include "call.h" #include "sdp.h" #include "types.h" struct call_stats; struct streambuf_stream; struct sockaddr_in6; typedef union { const struct sdp_attr_helper *attr_helper; str_q *q; str_case_ht *sct; str_case_value_ht *svt; void **generic; } helper_arg __attribute__ ((__transparent_union__)); struct sdp_ng_flags { enum call_opmode opmode; enum message_type message_type; str call_id; str from_tag; str_q from_tags; str to_tag; str via_branch; str sdp; str received_from_family; str received_from_address; str media_address; str address_family_str; const struct transport_protocol *transport_protocol; sockaddr_t parsed_received_from; sockaddr_t parsed_media_address; str direction[2]; str interface; sockfamily_t *address_family; int tos; str record_call_str; str recording_file; str recording_path; str recording_pattern; str metadata; str label; str set_label; str to_label; str address; sockaddr_t xmlrpc_callback; endpoint_t dtmf_log_dest; str_q codec_strip; str_case_ht codec_except; str_q codec_offer; str_q codec_transcode; str_q codec_mask; str_q codec_accept; str_q codec_consume; str_case_value_ht codec_set; int ptime, rev_ptime; str_case_ht sdes_no; /* individual crypto suites which are excluded */ str_case_ht sdes_only; /* individual crypto suites which are only accepted */ str_q sdes_order; /* the order, in which crypto suites are being added to the SDP */ str_q sdes_offerer_pref; /* preferred crypto suites to be selected for the offerer */ str dtls_fingerprint; /* keep session level attributes for internal proper parsing */ sdp_attr_q session_attributes; // top-level (not part of an m= section) SDP session attributes sdp_origin session_sdp_orig; str session_sdp_name; str session_timing; /* t= line */ int session_rr, session_rs; /* b= bandwidth per session level */ /* commands to manipulate attr lines in SDP */ struct sdp_manipulations * sdp_manipulations[__MT_MAX]; enum { ICE_DEFAULT = 0, ICE_REMOVE, ICE_FORCE, ICE_FORCE_RELAY, ICE_OPTIONAL, } ice_option:3; enum { ICE_LITE_DEFAULT = 0, ICE_LITE_OFF, ICE_LITE_FWD, ICE_LITE_BKW, ICE_LITE_BOTH, } ice_lite_option:3; enum { MEO_DEFAULT = 0, MEO_BLACKHOLE, MEO_FWD, MEO_BKW, MEO_BOTH, } media_echo:3; enum { ALL_NONE = 0, ALL_ALL, ALL_OFFER_ANSWER, ALL_NON_OFFER_ANSWER, ALL_FLOWS, } all:3; enum { AP_DEFAULT = 0, AP_OFF, AP_TRANSCODING, AP_FORCE, } audio_player:2; enum endpoint_learning el_option; enum block_dtmf_mode block_dtmf_mode; int delay_buffer; GArray *frequencies; int volume; char digit; str trigger; enum block_dtmf_mode block_dtmf_mode_trigger; str trigger_end; enum block_dtmf_mode block_dtmf_mode_trigger_end; int trigger_end_digits; int trigger_end_ms; int dtmf_delay; int repeat_times; int delete_delay; str file; str blob; long long db_id; long long duration; long long pause; long long start_pos; str vsc_start_rec; str vsc_stop_rec; str vsc_start_stop_rec; str vsc_pause_rec; str vsc_pause_resume_rec; str vsc_start_pause_resume_rec; unsigned int asymmetric:1, protocol_accept:1, no_redis_update:1, unidirectional:1, trust_address:1, port_latching:1, no_port_latching:1, replace_origin:1, replace_origin_full:1, replace_sdp_version:1, force_inc_sdp_ver:1, replace_username:1, replace_sess_name:1, replace_zero_address:1, rtcp_mux_offer:1, rtcp_mux_require:1, rtcp_mux_demux:1, rtcp_mux_accept:1, rtcp_mux_reject:1, ice_reject:1, rtcp_mirror:1, trickle_ice:1, no_rtcp_attr:1, full_rtcp_attr:1, generate_rtcp:1, generate_rtcp_off:1, generate_mid:1, strip_extmap:1, strict_source:1, media_handover:1, dtls_passive:1, dtls_reverse_passive:1, osrtp_accept_legacy:1, osrtp_accept_rfc:1, osrtp_offer:1, osrtp_offer_legacy:1, reset:1, egress:1, siprec:1, fragment:1, record_call:1, discard_recording:1, exclude_recording:1, skip_recording_db:1, recording_vsc:1, recording_announcement:1, debug:1, inactive:1, loop_protect:1, original_sendrecv:1, single_codec:1, reuse_codec:1, static_codecs:1, allow_transcoding:1, allow_asymmetric_codecs:1, early_media:1, accept_any:1, inject_dtmf:1, detect_dtmf:1, block_dtmf:1, block_egress:1, t38_decode:1, t38_force:1, t38_stop:1, t38_no_ecm:1, t38_no_v17:1, t38_no_v27ter:1, t38_no_v29:1, t38_no_v34:1, t38_no_iaf:1, t38_fec:1, supports_load_limit:1, dtls_off:1, sdes_off:1, sdes_unencrypted_srtp:1, sdes_unencrypted_srtcp:1, sdes_unauthenticated_srtp:1, sdes_encrypted_srtp:1, sdes_encrypted_srtcp:1, sdes_authenticated_srtp:1, sdes_lifetime:1, sdes_pad:1, sdes_static:1, sdes_nonew:1, sdes_prefer:1, drop_traffic_start:1, drop_traffic_stop:1, passthrough_on:1, passthrough_off:1, block_short:1, disable_jb:1, nat_wait:1, pierce_nat:1, directional:1, fatal:1, /* to_tag is used especially by delete handling */ to_tag_flag:1; }; extern bool trust_address_def; extern bool dtls_passive_def; str *call_request_tcp(char **); str *call_lookup_tcp(char **); void call_delete_tcp(char **); void calls_status_tcp(struct streambuf_stream *); str *call_update_udp(char **, const char*, const endpoint_t *); str *call_lookup_udp(char **); str *call_delete_udp(char **); str *call_query_udp(char **); const char *call_offer_ng(ng_buffer *, bencode_item_t *, bencode_item_t *, const char*, const endpoint_t *); const char *call_answer_ng(ng_buffer *, bencode_item_t *, bencode_item_t *); const char *call_delete_ng(bencode_item_t *, bencode_item_t *); const char *call_query_ng(bencode_item_t *, bencode_item_t *); const char *call_list_ng(bencode_item_t *, bencode_item_t *); const char *call_start_recording_ng(bencode_item_t *, bencode_item_t *); const char *call_stop_recording_ng(bencode_item_t *, bencode_item_t *); const char *call_pause_recording_ng(bencode_item_t *, bencode_item_t *); const char *call_start_forwarding_ng(bencode_item_t *, bencode_item_t *); const char *call_stop_forwarding_ng(bencode_item_t *, bencode_item_t *); const char *call_block_dtmf_ng(bencode_item_t *, bencode_item_t *); const char *call_unblock_dtmf_ng(bencode_item_t *, bencode_item_t *); const char *call_block_media_ng(bencode_item_t *, bencode_item_t *); const char *call_unblock_media_ng(bencode_item_t *, bencode_item_t *); const char *call_silence_media_ng(bencode_item_t *, bencode_item_t *); const char *call_unsilence_media_ng(bencode_item_t *, bencode_item_t *); const char *call_play_media_ng(bencode_item_t *, bencode_item_t *); const char *call_stop_media_ng(bencode_item_t *, bencode_item_t *); const char *call_play_dtmf_ng(bencode_item_t *, bencode_item_t *); void ng_call_stats(call_t *call, const str *fromtag, const str *totag, bencode_item_t *output, struct call_stats *totals); const char *call_publish_ng(ng_buffer *, bencode_item_t *, bencode_item_t *, const char *, const endpoint_t *); const char *call_subscribe_request_ng(bencode_item_t *, bencode_item_t *); const char *call_subscribe_answer_ng(ng_buffer *, bencode_item_t *, bencode_item_t *); const char *call_unsubscribe_ng(bencode_item_t *, bencode_item_t *); void add_media_to_sub_list(subscription_q *q, struct call_media *media, struct call_monologue *ml); void save_last_sdp(struct call_monologue *ml, str *sdp, sdp_sessions_q *parsed, sdp_streams_q *streams); void call_ng_flags_init(sdp_ng_flags *out, enum call_opmode opmode); void call_ng_free_flags(sdp_ng_flags *flags); void call_unlock_release(call_t *c); G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(sdp_ng_flags, call_ng_free_flags) G_DEFINE_AUTOPTR_CLEANUP_FUNC(call_t, call_unlock_release) int call_interfaces_init(void); void call_interfaces_free(void); void call_interfaces_timer(void); void call_ng_flags_flags(sdp_ng_flags *out, str *s, helper_arg dummy); void call_ng_main_flags(sdp_ng_flags *out, str *key, bencode_item_t *value, enum call_opmode opmode); void call_ng_codec_flags(sdp_ng_flags *out, str *key, bencode_item_t *value, enum call_opmode opmode); void call_ng_direction_flag(sdp_ng_flags *out, bencode_item_t *value); INLINE struct sdp_manipulations *sdp_manipulations_get_by_id(const sdp_ng_flags *f, enum media_type id) { if (id < 0 || id >= G_N_ELEMENTS(f->sdp_manipulations)) return NULL; return f->sdp_manipulations[id]; } INLINE struct sdp_manipulations *sdp_manipulations_get_create_by_id(sdp_ng_flags *f, enum media_type id) { if (id < 0 || id >= G_N_ELEMENTS(f->sdp_manipulations)) return NULL; if (!f->sdp_manipulations[id]) f->sdp_manipulations[id] = g_slice_alloc0(sizeof(*f->sdp_manipulations[id])); return f->sdp_manipulations[id]; } INLINE struct sdp_manipulations *sdp_manipulations_get_by_name(sdp_ng_flags *f, const str *s) { if (!str_cmp(s, "none") || !str_cmp(s, "global")) return sdp_manipulations_get_create_by_id(f, MT_UNKNOWN); enum media_type id = codec_get_type(s); if (id == MT_OTHER) return NULL; return sdp_manipulations_get_create_by_id(f, id); } // set all WebRTC-specific attributes INLINE void ng_flags_webrtc(sdp_ng_flags *f) { f->transport_protocol = &transport_protocols[PROTO_UDP_TLS_RTP_SAVPF]; f->ice_option = ICE_FORCE; f->trickle_ice = 1; f->rtcp_mux_offer = 1; f->rtcp_mux_require = 1; f->no_rtcp_attr = 1; f->sdes_off = 1; f->generate_mid = 1; } #endif rtpengine-mr12.5.1.22/include/cdr.h000066400000000000000000000004011474347554000167300ustar00rootroot00000000000000#ifndef CDR_H_ #define CDR_H_ #include "helpers.h" #include "types.h" enum tag_type; enum call_opmode; const char *get_tag_type_text(enum tag_type t); const char *get_opmode_text(enum call_opmode); void cdr_update_entry(call_t * c); #endif /* CDR_H_ */ rtpengine-mr12.5.1.22/include/cli.h000066400000000000000000000010361474347554000167340ustar00rootroot00000000000000#ifndef CLI_UDP_H_ #define CLI_UDP_H_ #include "socket.h" #include "obj.h" #include "tcp_listener.h" #include "types.h" struct cli { struct obj obj; struct streambuf_listener listener; }; struct cli_writer; struct call_monologue; struct cli_writer { void (*cw_printf)(struct cli_writer *, const char *, ...) __attribute__ ((format (printf, 2, 3))); void *ptr; call_t *call; struct call_monologue *ml; }; struct cli *cli_new(const endpoint_t *); void cli_handle(str *instr, struct cli_writer *); #endif /* CLI_UDP_H_ */ rtpengine-mr12.5.1.22/include/codec.h000066400000000000000000000214761474347554000172540ustar00rootroot00000000000000#ifndef __CODEC_H__ #define __CODEC_H__ #include #include #include #include "str.h" #include "codeclib.h" #include "helpers.h" #include "rtplib.h" #include "timerthread.h" #include "types.h" struct call_media; struct codec_handler; struct media_packet; struct ssrc_hash; struct codec_ssrc_handler; struct rtp_header; struct stream_params; struct supp_codec_tracker; struct rtcp_timer; struct mqtt_timer; struct codec_store; struct call_monologue; struct delay_buffer; struct sink_handler; typedef int codec_handler_func(struct codec_handler *, struct media_packet *); struct codec_handler { rtp_payload_type source_pt; // source_pt.payload_type = hashtable index rtp_payload_type dest_pt; int dtmf_payload_type; int real_dtmf_payload_type; int cn_payload_type; codec_handler_func *handler_func; unsigned int passthrough:1; unsigned int kernelize:1; unsigned int transcoder:1; unsigned int pcm_dtmf_detect:1; size_t payload_len; // for short-packet blocking struct ssrc_hash *ssrc_hash; struct codec_handler *input_handler; // == main handler for supp codecs struct codec_handler *output_handler; // == self, or other PT handler struct call_media *media; struct call_media *sink; #ifdef WITH_TRANSCODING int (*packet_encoded)(encoder_t *enc, void *u1, void *u2); int (*packet_decoded)(decoder_t *, AVFrame *, void *, void *); #endif // for media playback struct codec_ssrc_handler *ssrc_handler; // for DTMF injection struct codec_handler *dtmf_injector; struct delay_buffer *delay_buffer; // stats entry char *stats_chain; struct codec_stats *stats_entry; }; struct codec_packet { struct timerthread_queue_entry ttq_entry; str s; str plain; struct rtp_header *rtp; unsigned long ts; unsigned int clockrate; struct ssrc_ctx *ssrc_out; void (*free_func)(void *); void (*plain_free_func)(void *); }; struct codec_scheduler { unsigned long first_ts; // for output TS scaling unsigned long last_ts; // to detect input lag and handle lost packets struct timeval first_send; unsigned long first_send_ts; long output_skew; }; typedef union { struct call_monologue *ml; } codec_timer_callback_arg_t __attribute__ ((__transparent_union__)); void codecs_init(void); void codecs_cleanup(void); void codec_timers_launch(void); void rtcp_timer_stop(struct rtcp_timer **); void codec_timer_callback(call_t *, void (*)(call_t *, codec_timer_callback_arg_t), codec_timer_callback_arg_t, uint64_t delay); void mqtt_timer_stop(struct mqtt_timer **); void mqtt_timer_start(struct mqtt_timer **mqtp, call_t *call, struct call_media *media); struct codec_handler *codec_handler_get(struct call_media *, int payload_type, struct call_media *sink, struct sink_handler *); void codec_handlers_free(struct call_media *); struct codec_handler *codec_handler_make_playback(const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt, unsigned long ts, struct call_media *, uint32_t ssrc); struct codec_handler *codec_handler_make_media_player(const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt, unsigned long ts, struct call_media *, uint32_t ssrc); struct codec_handler *codec_handler_make_dummy(const rtp_payload_type *dst_pt, struct call_media *media); void codec_calc_jitter(struct ssrc_ctx *, unsigned long ts, unsigned int clockrate, const struct timeval *); void codec_update_all_handlers(struct call_monologue *ml); void codec_update_all_source_handlers(struct call_monologue *ml, const sdp_ng_flags *flags); struct codec_store_args { str_case_value_ht codec_set; bool answer_only; bool allow_asymmetric; struct codec_store *merge_cs; }; __attribute__((nonnull(1))) void codec_store_cleanup(struct codec_store *cs); __attribute__((nonnull(1))) void codec_store_init(struct codec_store *cs, struct call_media *); __attribute__((nonnull(1, 2))) void __codec_store_populate(struct codec_store *dst, struct codec_store *src, struct codec_store_args); #define codec_store_populate(dst, src, ...) \ __codec_store_populate(dst, src, (struct codec_store_args) {__VA_ARGS__}) __attribute__((nonnull(1, 2))) void __codec_store_populate_reuse(struct codec_store *, struct codec_store *, struct codec_store_args); #define codec_store_populate_reuse(dst, src, ...) \ __codec_store_populate_reuse(dst, src, (struct codec_store_args) {__VA_ARGS__}) __attribute__((nonnull(1, 2))) void codec_store_add_raw(struct codec_store *cs, rtp_payload_type *pt); __attribute__((nonnull(1, 2))) void codec_store_strip(struct codec_store *, str_q *strip, str_case_ht except); __attribute__((nonnull(1, 2, 3))) void codec_store_offer(struct codec_store *, str_q *, struct codec_store *); __attribute__((nonnull(1, 2))) void codec_store_check_empty(struct codec_store *, struct codec_store *); __attribute__((nonnull(1, 2))) void codec_store_accept(struct codec_store *, str_q *, struct codec_store *); __attribute__((nonnull(1, 2))) int codec_store_accept_one(struct codec_store *, str_q *, bool accept_any); __attribute__((nonnull(1, 2))) void codec_store_track(struct codec_store *, str_q *); __attribute__((nonnull(1, 2, 3))) void codec_store_transcode(struct codec_store *, str_q *, struct codec_store *); __attribute__((nonnull(1, 2, 3))) void __codec_store_answer(struct codec_store *dst, struct codec_store *src, sdp_ng_flags *flags, struct codec_store_args); #define codec_store_answer(dst, src, flags, ...) \ __codec_store_answer(dst, src, flags, (struct codec_store_args) {__VA_ARGS__}) __attribute__((nonnull(1, 2))) void codec_store_synthesise(struct codec_store *dst, struct codec_store *opposite); __attribute__((nonnull(1, 2))) bool codec_store_is_full_answer(const struct codec_store *src, const struct codec_store *dst); void codec_add_raw_packet(struct media_packet *mp, unsigned int clockrate); void codec_packet_free(void *); struct codec_packet *codec_packet_dup(struct codec_packet *p); bool codec_packet_copy(struct codec_packet *p); void payload_type_free(rtp_payload_type *p); rtp_payload_type *rtp_payload_type_dup(const rtp_payload_type *pt); G_DEFINE_AUTOPTR_CLEANUP_FUNC(rtp_payload_type, payload_type_free) // special return value `(void *) 0x1` to signal type mismatch rtp_payload_type *codec_make_payload_type(const str *codec_str, enum media_type); // handle string allocation void codec_init_payload_type(rtp_payload_type *, enum media_type); void payload_type_clear(rtp_payload_type *p); struct chu_args { const sdp_ng_flags *flags; const struct stream_params *sp; bool allow_asymmetric; bool reset_transcoding; }; #define codec_handlers_update(r, s, ...) \ __codec_handlers_update(r, s, (struct chu_args) {__VA_ARGS__}) #ifdef WITH_TRANSCODING void ensure_codec_def(rtp_payload_type *pt, struct call_media *media); void codec_handler_free(struct codec_handler **handler); __attribute__((nonnull(1, 2))) void __codec_handlers_update(struct call_media *receiver, struct call_media *sink, struct chu_args); void codec_add_dtmf_event(struct codec_ssrc_handler *ch, int code, int level, uint64_t ts, bool injected); uint64_t codec_last_dtmf_event(struct codec_ssrc_handler *ch); uint64_t codec_encoder_pts(struct codec_ssrc_handler *ch, struct ssrc_ctx *); void codec_decoder_skip_pts(struct codec_ssrc_handler *ch, uint64_t); uint64_t codec_decoder_unskip_pts(struct codec_ssrc_handler *ch); void codec_tracker_update(struct codec_store *, struct codec_store *); void codec_handlers_stop(codec_handlers_q *, struct call_media *sink); void packet_encoded_packetize(AVPacket *pkt, struct codec_ssrc_handler *ch, struct media_packet *mp, packetizer_f pkt_f, void *pkt_f_data, const struct fraction *cr_fact, void (*tx_f)(AVPacket *, struct codec_ssrc_handler *, struct media_packet *, str *, char *, unsigned int, const struct fraction *cr_fact)); void codec_output_rtp(struct media_packet *mp, struct codec_scheduler *, struct codec_handler *handler, // normally == ch->handler except for DTMF char *buf, // malloc'd, room for rtp_header + filled-in payload unsigned int payload_len, unsigned long payload_ts, int marker, int seq, int seq_inc, int payload_type, unsigned long ts_delay); INLINE struct codec_handler __codec_handler_lookup_struct(int pt, struct call_media *sink) { struct codec_handler lookup = { .source_pt = { .payload_type = pt, }, .sink = sink, }; return lookup; } INLINE struct codec_handler *codec_handler_lookup(codec_handlers_ht ht, int pt, struct call_media *sink) { struct codec_handler lookup = __codec_handler_lookup_struct(pt, sink); return t_hash_table_lookup(ht, &lookup); } #else INLINE void __codec_handlers_update(struct call_media *receiver, struct call_media *sink, struct chu_args a) { } INLINE void codec_handler_free(struct codec_handler **handler) { } INLINE void codec_tracker_update(struct codec_store *cs, struct codec_store *ocs) { } INLINE void codec_handlers_stop(codec_handlers_q *q, struct call_media *sink) { } INLINE void ensure_codec_def(rtp_payload_type *pt, struct call_media *media) { } #endif #endif rtpengine-mr12.5.1.22/include/control_ng.h000066400000000000000000000044411474347554000203340ustar00rootroot00000000000000#ifndef _CONTROL_NG_H_ #define _CONTROL_NG_H_ enum ng_command { NGC_PING = 0, NGC_OFFER, NGC_ANSWER, NGC_DELETE, NGC_QUERY, NGC_LIST, NGC_START_RECORDING, NGC_STOP_RECORDING, NGC_PAUSE_RECORDING, NGC_START_FORWARDING, NGC_STOP_FORWARDING, NGC_BLOCK_DTMF, NGC_UNBLOCK_DTMF, NGC_BLOCK_MEDIA, NGC_UNBLOCK_MEDIA, NGC_PLAY_MEDIA, NGC_STOP_MEDIA, NGC_PLAY_DTMF, NGC_STATISTICS, NGC_SILENCE_MEDIA, NGC_UNSILENCE_MEDIA, NGC_PUBLISH, NGC_SUBSCRIBE_REQ, NGC_SUBSCRIBE_ANS, NGC_UNSUBSCRIBE, NGC_COUNT // last, number of elements }; #include "obj.h" #include "udp_listener.h" #include "socket.h" #include "str.h" #include "tcp_listener.h" #include "bencode.h" #include "types.h" struct ng_command_stats { mutex_t lock; unsigned int count; struct timeval time; }; struct control_ng_stats { sockaddr_t proxy; struct ng_command_stats cmd[NGC_COUNT]; int errors; }; struct control_ng { struct obj obj; socket_t udp_listener; struct streambuf_listener tcp_listener; }; struct ng_buffer { struct obj obj; bencode_buffer_t buffer; struct obj *ref; }; extern const char *ng_command_strings[NGC_COUNT]; extern const char *ng_command_strings_esc[NGC_COUNT]; extern const char *ng_command_strings_short[NGC_COUNT]; struct control_ng *control_ng_new(const endpoint_t *); struct control_ng *control_ng_tcp_new(const endpoint_t *); void notify_ng_tcp_clients(str *); void control_ng_init(void); void control_ng_cleanup(void); int control_ng_process(str *buf, const endpoint_t *sin, char *addr, const sockaddr_t *local, void (*cb)(str *, str *, const endpoint_t *, const sockaddr_t *, void *), void *p1, struct obj *); int control_ng_process_plain(str *buf, const endpoint_t *sin, char *addr, const sockaddr_t *local, void (*cb)(str *, str *, const endpoint_t *, const sockaddr_t *, void *), void *p1, struct obj *); void init_ng_tracing(void); ng_buffer *ng_buffer_new(struct obj *ref); INLINE void ng_buffer_release(ng_buffer *ngbuf) { obj_put(ngbuf); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(ng_buffer, ng_buffer_release) extern mutex_t rtpe_cngs_lock; extern GHashTable *rtpe_cngs_hash; enum load_limit_reasons { LOAD_LIMIT_NONE = -1, LOAD_LIMIT_MAX_SESSIONS = 0, LOAD_LIMIT_CPU, LOAD_LIMIT_LOAD, LOAD_LIMIT_BW, __LOAD_LIMIT_MAX }; extern const char magic_load_limit_strings[__LOAD_LIMIT_MAX][64]; #endif rtpengine-mr12.5.1.22/include/control_ng_flags_parser.h000066400000000000000000000006741474347554000230700ustar00rootroot00000000000000#ifndef _CONTROL_NG_FLAGS_PARSER_H_ #define _CONTROL_NG_FLAGS_PARSER_H_ #include #include "bencode.h" #include "obj.h" #include "str.h" #include "call.h" #include "call_interfaces.h" /** * Parse flags in raw format and return bencode. * Syntax: * rtpp_flags: flag1=, flag2- ... */ void parse_rtpp_flags(const str * rtpp_flags, bencode_buffer_t * buf, enum call_opmode opmode, sdp_ng_flags * out); #endifrtpengine-mr12.5.1.22/include/control_tcp.h000066400000000000000000000013141474347554000205120ustar00rootroot00000000000000#ifndef __CONTROL_H__ #define __CONTROL_H__ #include #include #include #include #include #include "obj.h" #include "helpers.h" #include "socket.h" #define RE_TCP_RL_CMD 1 #define RE_TCP_RL_CALLID 2 #define RE_TCP_RL_STREAMS 3 #define RE_TCP_RL_IP 4 #define RE_TCP_RL_FROMDOM 5 #define RE_TCP_RL_FROMTYPE 6 #define RE_TCP_RL_TODOM 7 #define RE_TCP_RL_TOTYPE 8 #define RE_TCP_RL_AGENT 9 #define RE_TCP_RL_INFO 10 #define RE_TCP_D_CMD 11 #define RE_TCP_D_CALLID 12 #define RE_TCP_D_INFO 13 #define RE_TCP_DIV_CMD 14 struct control_tcp; struct streambuf_stream; struct control_tcp *control_tcp_new(const endpoint_t *); #endif rtpengine-mr12.5.1.22/include/control_udp.h000066400000000000000000000020061474347554000205130ustar00rootroot00000000000000#ifndef __CONTROL_UDP_H__ #define __CONTROL_UDP_H__ #include #include #include #include #include "obj.h" #include "helpers.h" #include "cookie_cache.h" #include "udp_listener.h" #include "socket.h" #define RE_UDP_COOKIE 1 #define RE_UDP_UL_CMD 2 #define RE_UDP_UL_FLAGS 3 #define RE_UDP_UL_CALLID 4 #define RE_UDP_UL_VIABRANCH 5 #define RE_UDP_UL_ADDR4 6 #define RE_UDP_UL_ADDR6 7 #define RE_UDP_UL_PORT 8 #define RE_UDP_UL_FROMTAG 9 #define RE_UDP_UL_NUM 10 #define RE_UDP_UL_TOTAG 11 #define RE_UDP_DQ_CMD 12 #define RE_UDP_DQ_FLAGS 13 #define RE_UDP_DQ_CALLID 14 #define RE_UDP_DQ_VIABRANCH 15 #define RE_UDP_DQ_FROMTAG 16 #define RE_UDP_DQ_TOTAG 17 #define RE_UDP_V_CMD 18 #define RE_UDP_V_FLAGS 19 #define RE_UDP_V_PARMS 20 struct control_udp { struct obj obj; struct cookie_cache cookie_cache; socket_t udp_listener; pcre2_code *parse_re; pcre2_code *fallback_re; }; struct control_udp *control_udp_new(const endpoint_t *); #endif rtpengine-mr12.5.1.22/include/cookie_cache.h000066400000000000000000000020761474347554000205660ustar00rootroot00000000000000#ifndef _COOKIE_CACHE_H_ #define _COOKIE_CACHE_H_ #include #include #include "helpers.h" #include "str.h" struct cookie_cache_state { GHashTable *in_use; GHashTable *cookies; }; typedef struct cache_entry { str *reply; str *callid; int command; } cache_entry; INLINE cache_entry *cache_entry_dup(const cache_entry *s) { if (!s) return NULL; cache_entry *r; r = malloc(sizeof(*r)); r->reply = str_dup(s->reply); r->command = s->command; r->callid = str_dup(s->callid); return r; } INLINE void cache_entry_free(void *p) { cache_entry *s = p; if (!s) return; free(s->reply); free(s->callid); free(s); } struct cookie_cache { mutex_t lock; cond_t cond; struct cookie_cache_state current, old; time_t swap_time; }; void cookie_cache_init(struct cookie_cache *); cache_entry *cookie_cache_lookup(struct cookie_cache *, const str *); void cookie_cache_insert(struct cookie_cache *, const str *, const struct cache_entry *); void cookie_cache_remove(struct cookie_cache *, const str *); void cookie_cache_cleanup(struct cookie_cache *); #endif rtpengine-mr12.5.1.22/include/counter_stats_fields.inc000066400000000000000000000007211474347554000227320ustar00rootroot00000000000000#include "common_counter_stats_fields.inc" F(packets_user) F(bytes_user) F(errors_user) FA(ng_commands, NGC_COUNT) F(timeout_sess) F(managed_sess) F(foreign_sess) F(rejected_sess) F(silent_timeout_sess) F(offer_timeout_sess) F(final_timeout_sess) F(regular_term_sess) F(forced_term_sess) F(nopacket_relayed_sess) F(oneway_stream_sess) F(call_duration) F(call_duration2) F(total_calls_duration_intv) F(rtp_duplicates) F(rtp_skips) F(rtp_seq_resets) F(rtp_reordered) rtpengine-mr12.5.1.22/include/crypto.h000066400000000000000000000207161474347554000175130ustar00rootroot00000000000000#ifndef _CRYPTO_H_ #define _CRYPTO_H_ #include #include #include "compat.h" #include "str.h" #include "helpers.h" #include "containers.h" #define SRTP_MAX_MASTER_KEY_LEN 32 #define SRTP_MAX_MASTER_SALT_LEN 14 #define SRTP_MAX_SESSION_KEY_LEN 32 #define SRTP_MAX_SESSION_SALT_LEN 14 #define SRTP_MAX_SESSION_AUTH_LEN 20 struct crypto_context; struct rtp_header; struct rtcp_packet; typedef int (*crypto_func_rtp)(struct crypto_context *, struct rtp_header *, str *, uint32_t); typedef int (*crypto_func_rtcp)(struct crypto_context *, struct rtcp_packet *, str *, uint32_t); typedef int (*hash_func_rtp)(struct crypto_context *, char *out, str *in, uint32_t); typedef int (*hash_func_rtcp)(struct crypto_context *, char *out, str *in); typedef int (*session_key_init_func)(struct crypto_context *); typedef int (*session_key_cleanup_func)(struct crypto_context *); struct crypto_suite { const char *name; const char *dtls_name; unsigned int master_key_len, master_salt_len, session_key_len, /* n_e */ session_salt_len, /* n_s */ srtp_auth_tag, /* n_a */ srtcp_auth_tag, srtp_auth_key_len, /* n_a */ srtcp_auth_key_len; unsigned long long int srtp_lifetime, srtcp_lifetime; int kernel_cipher; int kernel_hmac; crypto_func_rtp encrypt_rtp, decrypt_rtp; crypto_func_rtcp encrypt_rtcp, decrypt_rtcp; hash_func_rtp hash_rtp; hash_func_rtcp hash_rtcp; session_key_init_func session_key_init; session_key_cleanup_func session_key_cleanup; //const char *dtls_profile_code; // unused const EVP_CIPHER *aes_evp; unsigned int idx; // filled in during crypto_init_main() str name_str; // same as `name` const EVP_CIPHER *(*aead_evp)(void); }; struct crypto_session_params { unsigned int unencrypted_srtcp:1, unencrypted_srtp:1, unauthenticated_srtp:1; }; struct crypto_params { const struct crypto_suite *crypto_suite; /* we only support one master key for now */ unsigned char master_key[SRTP_MAX_MASTER_KEY_LEN]; unsigned char master_salt[SRTP_MAX_MASTER_SALT_LEN]; unsigned char *mki; unsigned int mki_len; struct crypto_session_params session_params; }; struct crypto_params_sdes { struct crypto_params params; unsigned int tag; }; TYPED_GQUEUE(sdes, struct crypto_params_sdes) struct crypto_context { struct crypto_params params; char session_key[SRTP_MAX_SESSION_KEY_LEN]; /* k_e */ char session_salt[SRTP_MAX_SESSION_SALT_LEN]; /* k_s */ char session_auth_key[SRTP_MAX_SESSION_AUTH_LEN]; /* XXX replay list */ /* ? */ void *session_key_ctx[2]; unsigned int have_session_key:1; }; extern const struct crypto_suite *crypto_suites; extern const unsigned int num_crypto_suites; extern __thread GString *crypto_debug_string; void crypto_init_main(void); const struct crypto_suite *crypto_find_suite(const str *); int crypto_gen_session_key(struct crypto_context *, str *, unsigned char, unsigned int); void crypto_dump_keys(struct crypto_context *in, struct crypto_context *out); char *crypto_params_sdes_dump(const struct crypto_params_sdes *, char **); /** * A function which compares two crypto suite names in str format. * Recommended to be used in combination with: * g_queue_find_custom() or g_list_find_custom() */ INLINE int crypto_params_sdes_cmp(const struct crypto_params_sdes *cs, gconstpointer b) { return str_cmp_str(&cs->params.crypto_suite->name_str, (str *) b); } INLINE int crypto_encrypt_rtp(struct crypto_context *c, struct rtp_header *rtp, str *payload, uint32_t index) { return c->params.crypto_suite->encrypt_rtp(c, rtp, payload, index); } INLINE int crypto_decrypt_rtp(struct crypto_context *c, struct rtp_header *rtp, str *payload, uint32_t index) { return c->params.crypto_suite->decrypt_rtp(c, rtp, payload, index); } INLINE int crypto_encrypt_rtcp(struct crypto_context *c, struct rtcp_packet *rtcp, str *payload, uint32_t index) { return c->params.crypto_suite->encrypt_rtcp(c, rtcp, payload, index); } INLINE int crypto_decrypt_rtcp(struct crypto_context *c, struct rtcp_packet *rtcp, str *payload, uint32_t index) { return c->params.crypto_suite->decrypt_rtcp(c, rtcp, payload, index); } INLINE int crypto_init_session_key(struct crypto_context *c) { return c->params.crypto_suite->session_key_init(c); } INLINE int crypto_cleanup_session_key(struct crypto_context *c) { if (c->params.crypto_suite->session_key_cleanup) return c->params.crypto_suite->session_key_cleanup(c); return 0; } INLINE void crypto_params_cleanup(struct crypto_params *p) { if (p->mki) free(p->mki); p->mki = NULL; } INLINE void crypto_cleanup(struct crypto_context *c) { crypto_params_cleanup(&c->params); if (!c->params.crypto_suite) return; crypto_cleanup_session_key(c); c->have_session_key = 0; c->params.crypto_suite = NULL; } INLINE void crypto_reset(struct crypto_context *c) { crypto_cleanup(c); } INLINE void crypto_params_copy(struct crypto_params *o, const struct crypto_params *i, int copy_sp) { struct crypto_session_params sp; crypto_params_cleanup(o); if (!copy_sp) sp = o->session_params; *o = *i; if (!copy_sp) o->session_params = sp; if (o->mki_len > 255) o->mki_len = 0; if (o->mki_len) { o->mki = malloc(i->mki_len); memcpy(o->mki, i->mki, i->mki_len); } } INLINE void crypto_init(struct crypto_context *c, const struct crypto_params *p) { crypto_cleanup(c); if (p) crypto_params_copy(&c->params, p, 1); } INLINE int crypto_params_cmp(const struct crypto_params *a, const struct crypto_params *b) { if (a->crypto_suite != b->crypto_suite) return 1; if (!a->crypto_suite) return 0; if (memcmp(a->master_key, b->master_key, a->crypto_suite->master_key_len)) return 1; if (memcmp(a->master_salt, b->master_salt, a->crypto_suite->master_salt_len)) return 1; if (a->mki_len != b->mki_len) return 1; if (a->mki_len && memcmp(a->mki, b->mki, a->mki_len)) return 1; if (memcmp(&a->session_params, &b->session_params, sizeof(a->session_params))) return 1; return 0; } INLINE void crypto_params_sdes_free(struct crypto_params_sdes *cps) { crypto_params_cleanup(&cps->params); g_slice_free1(sizeof(*cps), cps); } INLINE void crypto_params_sdes_queue_clear(sdes_q *q) { t_queue_clear_full(q, crypto_params_sdes_free); } INLINE void crypto_params_sdes_queue_copy(sdes_q *dst, const sdes_q *src) { for (auto_iter(l, src->head); l; l = l->next) { struct crypto_params_sdes *cps = l->data; struct crypto_params_sdes *cpy = g_slice_alloc(sizeof(*cpy)); *cpy = *cps; cpy->params.mki = NULL; crypto_params_copy(&cpy->params, &cps->params, 1); t_queue_push_tail(dst, cpy); } } /** * Checks whether to apply policies according to: sdes_no / sdes_only * returns: 1 - to not apply / 0 - to apply */ INLINE int crypto_params_sdes_check_limitations(str_case_ht sdes_only, str_case_ht sdes_no, const struct crypto_suite *cps) { /* if 'SDES-only-' flag(s) present, then * accept only those SDES suites mentioned in the 'SDES-only-', * all the rest will be dropped / not added. * This takes precedence over 'SDES-no-'. * * We mustn't check the 'flags->sdes_no' at all, if 'flags->sdes_only' is set. */ if (t_hash_table_is_set(sdes_only)) { if (!t_hash_table_lookup(sdes_only, &cps->name_str)) return 1; } /* if 'SDES-no-' flag(s) present, then * remove SDES-no suites from offered ones */ else if (t_hash_table_is_set(sdes_no) && t_hash_table_lookup(sdes_no, &cps->name_str)) { return 1; } return 0; } #include "main.h" #include "log.h" #include INLINE void crypto_debug_init(int flag) { if (rtpe_config.common.log_levels[log_level_index_srtp] < LOG_DEBUG) return; if (crypto_debug_string) g_string_free(crypto_debug_string, TRUE); crypto_debug_string = NULL; if (!flag) return; crypto_debug_string = g_string_new(""); } void __crypto_debug_printf(const char *fmt, ...) __attribute__((format(printf,1,2))); #define crypto_debug_printf(f, ...) \ if (crypto_debug_string) \ __crypto_debug_printf(f, ##__VA_ARGS__) INLINE void crypto_debug_dump_raw(const char *b, int len) { for (int i = 0; i < len; i++) crypto_debug_printf("%02" PRIx8, (unsigned char) b[i]); } INLINE void crypto_debug_dump(const str *s) { crypto_debug_dump_raw(s->s, s->len); } INLINE void crypto_debug_finish(void) { if (!crypto_debug_string) return; ilogs(srtp, LOG_NOTICE, "Crypto debug: %.*s", (int) crypto_debug_string->len, crypto_debug_string->str); g_string_free(crypto_debug_string, TRUE); crypto_debug_string = NULL; } #endif rtpengine-mr12.5.1.22/include/dtls.h000066400000000000000000000046301474347554000171360ustar00rootroot00000000000000#ifndef _DTLS_H_ #define _DTLS_H_ #include #include #include #include #include "compat.h" #include "str.h" #include "obj.h" #include "socket.h" #include "types.h" #define DTLS_MAX_DIGEST_LEN 64 #define DTLS_MTU_OVERHEAD 48 // 40 bytes IPv6 + 8 bytes UDP struct packet_stream; struct sockaddr_in6; struct dtls_hash_func { const char *name; unsigned int num_bytes; unsigned int (*__func)(unsigned char *, X509 *); }; struct dtls_fingerprint { unsigned char digest[DTLS_MAX_DIGEST_LEN]; unsigned int digest_len; const struct dtls_hash_func *hash_func; }; struct dtls_cert { struct obj obj; GQueue fingerprints; EVP_PKEY *pkey; X509 *x509; time_t expires; }; struct dtls_connection { SSL_CTX *ssl_ctx; SSL *ssl; BIO *r_bio, *w_bio; void *ptr; unsigned char tls_id[16]; unsigned int init:1, active:1, connected:1; }; int dtls_init(void); void dtls_timer(void); int dtls_verify_cert(struct packet_stream *ps); const struct dtls_hash_func *dtls_find_hash_func(const str *); struct dtls_cert *dtls_cert(void); void dtls_cert_free(void); int dtls_connection_init(struct dtls_connection *, struct packet_stream *, int active, struct dtls_cert *cert); int dtls(stream_fd *, const str *s, const endpoint_t *sin); void dtls_connection_cleanup(struct dtls_connection *); void dtls_shutdown(struct packet_stream *ps); INLINE void __dtls_hash(const struct dtls_hash_func *hash_func, X509 *cert, unsigned char *out, unsigned int bufsize) { unsigned int n; assert(bufsize >= hash_func->num_bytes); memset(out, 0, bufsize); n = hash_func->__func(out, cert); assert(n == hash_func->num_bytes); (void) n; } #define dtls_hash(hash_func, cert, outbuf) __dtls_hash(hash_func, cert, outbuf, sizeof(outbuf)) INLINE void dtls_fingerprint_hash(struct dtls_fingerprint *fp, X509 *cert) { __dtls_hash(fp->hash_func, cert, fp->digest, sizeof(fp->digest)); fp->digest_len = fp->hash_func->num_bytes; } INLINE int is_dtls(const str *s) { const unsigned char *b = (const void *) s->s; if (s->len < 1) return 0; /* RFC 5764, 5.1.2 */ if (b[0] >= 20 && b[0] <= 63) return 1; return 0; } // -1: not initialized, unknown or invalid // 0 or 1: passive or active INLINE int dtls_is_active(const struct dtls_connection *d) { if (!d || !d->init) return -1; return d->active ? 1 : 0; } struct dtls_connection *dtls_ptr(stream_fd *sfd); #endif rtpengine-mr12.5.1.22/include/dtmf.h000066400000000000000000000047631474347554000171310ustar00rootroot00000000000000#ifndef _DTMF_H_ #define _DTMF_H_ #include #include #include #include #include "str.h" #include "socket.h" struct call_media; struct call_monologue; enum dtmf_trigger_type { DTMF_TRIGGER_BLOCK = 0, DTMF_TRIGGER_UNBLOCK, DTMF_TRIGGER_START_REC, DTMF_TRIGGER_STOP_REC, DTMF_TRIGGER_START_STOP_REC, DTMF_TRIGGER_PAUSE_REC, DTMF_TRIGGER_PAUSE_RESUME_REC, DTMF_TRIGGER_START_PAUSE_RESUME_REC, __NUM_DTMF_TRIGGERS, }; extern const char *dtmf_trigger_types[__NUM_DTMF_TRIGGERS]; struct dtmf_trigger_state { enum dtmf_trigger_type type; // points to matching action str trigger; // string to look for unsigned int matched; // how many digits matched so far bool inactive; // ignore even if set }; struct dtmf_trigger_action { void (*matched)(struct call_media *, struct call_monologue *); // run when the trigger is found bool repeatable; // reset after a match or not void (*digit)(struct call_media *, struct call_monologue *); // run when any digit is found }; #include "call.h" struct media_packet; struct call_media; struct call_monologue; struct dtmf_event { int code; // char for start, zero for end int volume; uint64_t ts; int rand_code; // state for random replace mode unsigned int index; // running counter of events enum block_dtmf_mode block_dtmf; // block mode at the time of the event }; bool dtmf_init(void); int dtmf_event_packet(struct media_packet *, str *, int, uint64_t ts); // 0 = ok, 1 = end event, -1 = error int dtmf_event_payload(str *, uint64_t *, uint64_t, struct dtmf_event *, dtmf_event_q *); void dtmf_event_free(struct dtmf_event *); int dtmf_code_from_char(char); char dtmf_code_to_char(int code); const char *dtmf_inject(struct call_media *media, int code, int volume, int duration, int pause, struct call_media *sink); bool dtmf_do_logging(const call_t *, bool injected); void dtmf_dsp_event(const struct dtmf_event *new_event, struct dtmf_event *cur_event, struct call_media *media, int clockrate, uint64_t ts, bool injected); enum block_dtmf_mode dtmf_get_block_mode(call_t *call, struct call_monologue *ml); bool is_pcm_dtmf_block_mode(enum block_dtmf_mode mode); bool is_dtmf_replace_mode(enum block_dtmf_mode mode); struct dtmf_event *is_in_dtmf_event(dtmf_event_q *, uint32_t ts, int clockrate, unsigned int head, unsigned int trail); void dtmf_trigger_set(struct call_monologue *ml, enum dtmf_trigger_type, const str *s, bool inactive); extern struct dtmf_trigger_action dtmf_trigger_actions[__NUM_DTMF_TRIGGERS]; #endif rtpengine-mr12.5.1.22/include/gauge_stats_fields.inc000066400000000000000000000002611474347554000223420ustar00rootroot00000000000000F(total_sessions) F(foreign_sessions) F(transcoded_media) F(ipv4_sessions) F(ipv6_sessions) F(mixed_sessions) F(userspace_streams) F(kernel_only_streams) F(kernel_user_streams) rtpengine-mr12.5.1.22/include/graphite.h000066400000000000000000000026121474347554000177710ustar00rootroot00000000000000#ifndef GRAPHITE_H_ #define GRAPHITE_H_ #include "call.h" enum connection_state { STATE_DISCONNECTED = 0, STATE_IN_PROGRESS, STATE_CONNECTED, }; extern struct timeval rtpe_latest_graphite_interval_start; extern struct global_stats_counter rtpe_stats_graphite_diff; // per-interval increases extern struct global_rate_min_max rtpe_rate_graphite_min_max; // running min/max, reset when graphite runs extern struct global_rate_min_max_avg rtpe_rate_graphite_min_max_avg_sampled; // updated once per graphite run extern struct global_gauge_min_max rtpe_gauge_graphite_min_max; // running min/max, reset when graphite runs extern struct global_gauge_min_max rtpe_gauge_graphite_min_max_sampled; // updated once per graphite run extern struct global_sampled_min_max rtpe_sampled_graphite_min_max; // running min/max, reset when graphite runs extern struct global_sampled_min_max rtpe_sampled_graphite_min_max_sampled; // updated once per graphite run extern struct global_sampled_avg rtpe_sampled_graphite_avg; // updated once per graphite run void set_prefix(char* prefix); void free_prefix(void); void graphite_loop(void *d); void set_latest_graphite_interval_start(struct timeval *tv); void set_graphite_interval_tv(struct timeval *tv); GString *print_graphite_data(void); INLINE bool graphite_is_enabled(void) { return !is_addr_unspecified(&rtpe_config.graphite_ep.address); } #endif /* GRAPHITE_H_ */ rtpengine-mr12.5.1.22/include/helpers.h000066400000000000000000000163171474347554000176370ustar00rootroot00000000000000#ifndef __HELPERS_H__ #define __HELPERS_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "auxlib.h" #if 0 && defined(__DEBUG) #define __THREAD_DEBUG 1 #endif /*** PROTOTYPES ***/ typedef bool (*parse_func)(char **, void **, void *); int pcre2_multi_match(pcre2_code *, const char *, unsigned int, parse_func, void *, GQueue *); INLINE void strmove(char **, char **); INLINE void strdupfree(char **, const char *); #if PCRE2_MAJOR > 10 || (PCRE2_MAJOR == 10 && PCRE2_MINOR >= 43) #define SUBSTRING_FREE_ARG PCRE2_UCHAR ** #else #define SUBSTRING_FREE_ARG PCRE2_SPTR * #endif /*** GLIB HELPERS ***/ #if !GLIB_CHECK_VERSION(2,62,0) // from https://github.com/GNOME/glib/blob/master/glib/glist.c INLINE GList * g_list_insert_before_link (GList *list, GList *sibling, GList *link_) { g_return_val_if_fail (link_ != NULL, list); g_return_val_if_fail (link_->prev == NULL, list); g_return_val_if_fail (link_->next == NULL, list); if (list == NULL) { g_return_val_if_fail (sibling == NULL, list); return link_; } else if (sibling != NULL) { link_->prev = sibling->prev; link_->next = sibling; sibling->prev = link_; if (link_->prev != NULL) { link_->prev->next = link_; return list; } else { g_return_val_if_fail (sibling == list, link_); return link_; } } else { GList *last; for (last = list; last->next != NULL; last = last->next) {} last->next = link_; last->next->prev = last; last->next->next = NULL; return list; } } #endif /* GLIB-JSON */ // frees 'builder', returns g_malloc'd string INLINE char *glib_json_print(JsonBuilder *builder) { JsonGenerator *gen = json_generator_new(); JsonNode *root = json_builder_get_root(builder); json_generator_set_root(gen, root); char *result = json_generator_to_data(gen, NULL); json_node_free(root); g_object_unref(gen); g_object_unref(builder); return result; } /* GQUEUE */ INLINE void g_queue_append(GQueue *dst, const GQueue *src) { GList *l; if (!src || !dst) return; for (l = src->head; l; l = l->next) g_queue_push_tail(dst, l->data); } /* GHASHTABLE */ INLINE GQueue *g_hash_table_lookup_queue_new(GHashTable *ht, void *key, GDestroyNotify free_func) { GQueue *ret = g_hash_table_lookup(ht, key); if (ret) { if (free_func) free_func(key); return ret; } ret = g_queue_new(); g_hash_table_insert(ht, key, ret); return ret; } /*** STRING HELPERS ***/ INLINE void strmove(char **d, char **s) { if (*d) free(*d); *d = *s; *s = strdup(""); } INLINE void strdupfree(char **d, const char *s) { if (*d) free(*d); *d = strdup(s); } INLINE int strmemcmp(const void *mem, int len, const char *s) { int l = strlen(s); if (l < len) return -1; if (l > len) return 1; return memcmp(mem, s, len); } INLINE const char *__get_enum_array_text(const char * const *array, unsigned int idx, unsigned int len, const char *deflt) { const char *ret; if (idx >= len) return deflt; ret = array[idx]; return ret ? : deflt; } #define get_enum_array_text(array, idx, deflt) \ __get_enum_array_text(array, idx, G_N_ELEMENTS(array), deflt) /*** GENERIC HELPERS ***/ INLINE char chrtoupper(char x) { return x & 0xdf; } INLINE void swap_ptrs(void *a, void *b) { void *t, **aa, **bb; aa = a; bb = b; t = *aa; *aa = *bb; *bb = t; } /*** INET ADDRESS HELPERS ***/ #define IPF "%u.%u.%u.%u" #define IPP(x) ((unsigned char *) (&(x)))[0], ((unsigned char *) (&(x)))[1], ((unsigned char *) (&(x)))[2], ((unsigned char *) (&(x)))[3] #define IP6F "%x:%x:%x:%x:%x:%x:%x:%x" #define IP6P(x) ntohs(((uint16_t *) (x))[0]), \ ntohs(((uint16_t *) (x))[1]), \ ntohs(((uint16_t *) (x))[2]), \ ntohs(((uint16_t *) (x))[3]), \ ntohs(((uint16_t *) (x))[4]), \ ntohs(((uint16_t *) (x))[5]), \ ntohs(((uint16_t *) (x))[6]), \ ntohs(((uint16_t *) (x))[7]) #define D6F "["IP6F"]:%u" #define D6P(x) IP6P((x).sin6_addr.s6_addr), ntohs((x).sin6_port) #define DF IPF ":%u" #define DP(x) IPP((x).sin_addr.s_addr), ntohs((x).sin_port) /*** THREAD HELPERS ***/ struct thread_waker { void (*func)(struct thread_waker *); mutex_t *lock; cond_t *cond; void *arg; }; enum thread_looper_action { TLA_CONTINUE, TLA_BREAK, }; void thread_waker_add(struct thread_waker *); void thread_waker_add_generic(struct thread_waker *); void thread_waker_del(struct thread_waker *); void threads_join_all(bool cancel); void thread_create_detach_prio(void (*)(void *), void *, const char *, int, const char *); void thread_create_looper(enum thread_looper_action (*f)(void), const char *scheduler, int priority, const char *name, long long); INLINE void thread_create_detach(void (*f)(void *), void *a, const char *name) { thread_create_detach_prio(f, a, NULL, 0, name); } /*** STATS HELPERS ***/ #define STAT_MIN_MAX_RESET_ZERO(x, mm, loc) \ atomic64_set(&loc->min.x, atomic64_get_set(&mm->min.x, 0)); \ atomic64_set(&loc->max.x, atomic64_get_set(&mm->max.x, 0)); #define STAT_MIN_MAX(x, loc, mm, cur) \ atomic64_set(&loc->min.x, atomic64_get_set(&mm->min.x, atomic64_get(&cur->x))); \ atomic64_set(&loc->max.x, atomic64_get_set(&mm->max.x, atomic64_get(&cur->x))); #define STAT_MIN_MAX_AVG(x, mm, loc, run_diff_us, counter_diff) \ atomic64_set(&loc->min.x, atomic64_get_set(&mm->min.x, 0)); \ atomic64_set(&loc->max.x, atomic64_get_set(&mm->max.x, 0)); \ atomic64_set(&loc->avg.x, run_diff_us ? atomic64_get(&counter_diff->x) * 1000000LL / run_diff_us : 0); #define STAT_SAMPLED_CALC_DIFF(x, stats, intv, diff) \ atomic64_calc_diff(&stats->sums.x, &intv->sums.x, &diff->sums.x); \ atomic64_calc_diff(&stats->sums_squared.x, &intv->sums_squared.x, &diff->sums_squared.x); \ atomic64_calc_diff(&stats->counts.x, &intv->counts.x, &diff->counts.x); #define STAT_SAMPLED_AVG_STDDEV(x, loc, diff) { \ double __mean = atomic64_div(&diff->sums.x, &diff->counts.x); \ atomic64_set(&loc->avg.x, __mean); \ atomic64_set(&loc->stddev.x, sqrt(fabs(atomic64_div(&diff->sums_squared.x, &diff->counts.x) \ - __mean * __mean))); \ } /*** ALLOC WITH UNIQUE ID HELPERS ***/ #define uid_slice_alloc(ptr, q) __uid_slice_alloc(sizeof(*(ptr)), q, \ G_STRUCT_OFFSET(__typeof__(*(ptr)), unique_id)) #define uid_slice_alloc0(ptr, q) __uid_slice_alloc0(sizeof(*(ptr)), q, \ G_STRUCT_OFFSET(__typeof__(*(ptr)), unique_id)) INLINE void __uid_slice_alloc_fill(void *ptr, GQueue *q, unsigned int offset) { unsigned int *id; id = G_STRUCT_MEMBER_P(ptr, offset); *id = g_queue_get_length(q); g_queue_push_tail(q, ptr); } INLINE void *__uid_slice_alloc(unsigned int size, GQueue *q, unsigned int offset) { void *ret; ret = g_slice_alloc(size); __uid_slice_alloc_fill(ret, q, offset); return ret; } INLINE void *__uid_slice_alloc0(unsigned int size, GQueue *q, unsigned int offset) { void *ret; ret = g_slice_alloc0(size); __uid_slice_alloc_fill(ret, q, offset); return ret; } #endif rtpengine-mr12.5.1.22/include/homer.h000066400000000000000000000004421474347554000172770ustar00rootroot00000000000000#ifndef __HOMER_H__ #define __HOMER_H__ #include "socket.h" #define PROTO_RTCP_JSON 0x05 void homer_sender_init(const endpoint_t *, int, int); int homer_send(GString *, const str *, const endpoint_t *, const endpoint_t *, const struct timeval *, int); int has_homer(void); #endif rtpengine-mr12.5.1.22/include/ice.h000066400000000000000000000165641474347554000167410ustar00rootroot00000000000000#ifndef __ICE_H__ #define __ICE_H__ #include #include #include #include #include #include "str.h" #include "obj.h" #include "helpers.h" #include "media_socket.h" #include "socket.h" #include "timerthread.h" #include "types.h" #define MAX_COMPONENTS 2 #define TIMER_RUN_INTERVAL 20 /* ms */ #define STUN_RETRANSMIT_INTERVAL 100 /* ms, with exponential backoff */ #define STUN_MAX_RETRANSMITS 7 #define MAX_ICE_CANDIDATES 100 #define ICE_FOUNDATION_LENGTH 16 #define ICE_AGENT_COMPLETED 0x0002 #define ICE_AGENT_CONTROLLING 0x0004 #define ICE_AGENT_NOMINATING 0x0008 #define ICE_AGENT_USABLE 0x0010 #define ICE_AGENT_LITE_SELF 0x0020 #define ICE_PAIR_FROZEN 0x0001 #define ICE_PAIR_IN_PROGRESS 0x0002 #define ICE_PAIR_FAILED 0x0004 #define ICE_PAIR_SUCCEEDED 0x0008 #define ICE_PAIR_NOMINATED 0x0010 #define ICE_PAIR_LEARNED 0x0020 #define ICE_PAIR_VALID 0x0040 #define ICE_PAIR_TO_USE 0x0080 #define ICE_PAIR_TRIGGERED 0x0100 #define PAIR_ISSET(p, f) bf_isset(&(p)->pair_flags, ICE_PAIR_ ## f) #define PAIR_SET(p, f) bf_set(&(p)->pair_flags, ICE_PAIR_ ## f) #define PAIR_SET2(p, f, g) bf_set(&(p)->pair_flags, ICE_PAIR_ ## f | ICE_PAIR_ ## g) #define PAIR_CLEAR(p, f) bf_clear(&(p)->pair_flags, ICE_PAIR_ ## f) #define PAIR_CLEAR2(p, f, g) bf_clear(&(p)->pair_flags, ICE_PAIR_ ## f | ICE_PAIR_ ## g) #define AGENT_ISSET(p, f) bf_isset(&(p)->agent_flags, ICE_AGENT_ ## f) #define AGENT_ISSET2(p, f, g) bf_isset(&(p)->agent_flags, ICE_AGENT_ ## f | ICE_AGENT_ ## g) #define AGENT_SET(p, f) bf_set(&(p)->agent_flags, ICE_AGENT_ ## f) #define AGENT_SET2(p, f, g) bf_set(&(p)->agent_flags, ICE_AGENT_ ## f | ICE_AGENT_ ## g) #define AGENT_CLEAR(p, f) bf_clear(&(p)->agent_flags, ICE_AGENT_ ## f) #define AGENT_CLEAR3(p, f, g, h) \ bf_clear(&(p)->agent_flags, ICE_AGENT_ ## f | ICE_AGENT_ ## g | ICE_AGENT_ ## h) struct logical_intf; struct local_intf; struct packet_stream; struct call_media; struct stream_params; struct stun_attrs; struct call_monologue; enum ice_candidate_type { ICT_UNKNOWN = 0, ICT_HOST, ICT_SRFLX, ICT_PRFLX, ICT_RELAY, __ICT_LAST, }; struct ice_candidate { str foundation; unsigned long component_id; socktype_t *transport; unsigned long priority; endpoint_t endpoint; enum ice_candidate_type type; endpoint_t related; str ufrag; }; struct ice_candidate_pair { struct ice_candidate *remote_candidate; const struct local_intf *local_intf; stream_fd *sfd; atomic64 pair_flags; uint32_t stun_transaction[3]; /* belongs to transaction_hash, thus agent->lock */ unsigned int retransmit_ms; struct timeval retransmit; unsigned int retransmits; struct ice_agent *agent; uint64_t pair_priority; unsigned int was_controlling:1, was_nominated:1; }; TYPED_GHASHTABLE_PROTO(candidate_ht, struct ice_candidate, struct ice_candidate) TYPED_GHASHTABLE_PROTO(candidate_pair_ht, struct ice_candidate_pair, struct ice_candidate_pair) TYPED_GHASHTABLE_PROTO(foundation_ht, struct ice_candidate, struct ice_candidate) TYPED_GHASHTABLE_PROTO(priority_ht, void, struct ice_candidate) TYPED_GHASHTABLE_PROTO(transaction_ht, uint32_t, struct ice_candidate_pair) /* these are protected by the call's master_lock */ struct ice_agent { struct timerthread_obj tt_obj; call_t *call; /* main reference */ struct call_media *media; const struct logical_intf *logical_intf; sockfamily_t *desired_family; atomic64 last_activity; mutex_t lock; /* for elements below. and call must be locked in R */ /* lock order: in_lock first, then agent->lock */ candidate_q remote_candidates; candidate_pair_q candidate_pairs; /* for storage */ candidate_pair_q triggered; candidate_ht candidate_hash; priority_ht cand_prio_hash; candidate_pair_ht pair_hash; transaction_ht transaction_hash; foundation_ht foundation_hash; GTree *all_pairs; candidate_pair_q all_pairs_list; /* sorted through gtree */ GTree *nominated_pairs; /* nominated by peer */ GTree *succeeded_pairs; /* checked by us */ GTree *valid_pairs; /* succeeded and nominated */ unsigned int active_components; struct timeval start_nominating; str ufrag[2]; /* 0 = remote, 1 = local */ str pwd[2]; /* ditto */ atomic64 agent_flags; }; extern const unsigned int ice_type_preferences[]; extern const char * const ice_type_strings[]; void ice_init(void); void ice_free(void); enum ice_candidate_type ice_candidate_type(const str *s); bool ice_has_related(enum ice_candidate_type); void ice_foundation(str *); bool ice_peer_address_known(struct ice_agent *, const endpoint_t *, struct packet_stream *, const struct local_intf *ifa); void ice_agent_init(struct ice_agent **agp, struct call_media *media); void ice_update(struct ice_agent *, struct stream_params *, bool allow_restart); void ice_shutdown(struct ice_agent **); void ice_restart(struct ice_agent *); void ice_candidates_free(candidate_q *); void ice_remote_candidates(candidate_q *, struct ice_agent *); void ice_thread_launch(void); int ice_request(stream_fd *, const endpoint_t *, struct stun_attrs *); int ice_response(stream_fd *, const endpoint_t *src, struct stun_attrs *attrs, void *transaction); void dequeue_sdp_fragments(struct call_monologue *); bool trickle_ice_update(ng_buffer *ngbuf, call_t *call, sdp_ng_flags *flags, sdp_streams_q *streams); enum thread_looper_action ice_slow_timer(void); #include "call.h" /* returns 0 if ICE still has work to do, 1 otherwise */ INLINE bool ice_has_finished(struct call_media *media) { if (!media) return true; if (!MEDIA_ISSET(media, ICE)) return true; if (!media->ice_agent) return true; if (AGENT_ISSET(media->ice_agent, COMPLETED)) return true; return false; } /* returns 1 if media has connectivity */ INLINE bool ice_is_usable(struct call_media *media) { if (!media) return true; if (!MEDIA_ISSET(media, ICE)) return true; if (!media->ice_agent) return true; if (AGENT_ISSET(media->ice_agent, USABLE)) return true; return false; } INLINE bool ice_is_restart(struct ice_agent *ag, struct stream_params *sp) { if (!ag || !sp) return false; struct call_media *media = ag->media; if (ag->ufrag[0].s && sp->ice_ufrag.s && str_cmp_str(&ag->ufrag[0], &sp->ice_ufrag)) return true; else if (ag->pwd[0].s && sp->ice_pwd.s && str_cmp_str(&ag->pwd[0], &sp->ice_pwd)) return true; else if (ag->logical_intf != media->logical_intf) return true; return false; } INLINE unsigned int ice_type_preference(enum ice_candidate_type type) { if (type >= __ICT_LAST) return 0; return ice_type_preferences[type]; } /* local_pref starts with 0 */ INLINE uint32_t ice_priority_pref(unsigned int type_pref, unsigned int local_pref, unsigned int component) { return type_pref << 24 | (65535 - local_pref) << 8 | (256 - component); } INLINE uint32_t ice_priority(enum ice_candidate_type type, unsigned int local_pref, unsigned int component) { return ice_priority_pref(ice_type_preference(type), local_pref, component); } INLINE unsigned int ice_type_pref_from_prio(uint32_t prio) { return (prio & 0xff000000) >> 24; } INLINE unsigned int ice_local_pref_from_prio(uint32_t prio) { return 65535 - ((prio & 0xffff00) >> 8); } INLINE const char *ice_candidate_type_str(enum ice_candidate_type type) { if (type >= __ICT_LAST) return 0; return ice_type_strings[type]; } INLINE int ice_ufrag_cmp(struct ice_agent *ag, const str *s) { if (!ag->ufrag[0].len) // fragment unknown return 0; return str_cmp_str0(&ag->ufrag[0], s); } #endif rtpengine-mr12.5.1.22/include/iptables.h000066400000000000000000000004011474347554000177630ustar00rootroot00000000000000#ifndef _IPTABLES_H_ #define _IPTABLES_H_ #include "socket.h" #include "str.h" void iptables_init(void); extern int (*iptables_add_rule)(const socket_t *local_sock, const str *comment); extern int (*iptables_del_rule)(const socket_t *local_sock); #endif rtpengine-mr12.5.1.22/include/janus.h000066400000000000000000000011021474347554000172770ustar00rootroot00000000000000#ifndef __JANUS_H__ #define __JANUS_H__ struct websocket_conn; struct websocket_message; struct janus_session; struct call_monologue; struct call_media; void janus_init(void); void janus_free(void); const char *websocket_janus_process(struct websocket_message *wm); const char *websocket_janus_get(struct websocket_message *wm); const char *websocket_janus_post(struct websocket_message *wm); void janus_detach_websocket(struct janus_session *session, struct websocket_conn *wc); void janus_rtc_up(struct call_monologue *); void janus_media_up(struct call_media *); #endif rtpengine-mr12.5.1.22/include/jitter_buffer.h000066400000000000000000000026631474347554000210260ustar00rootroot00000000000000#ifndef _JITTER_BUFFER_H_ #define _JITTER_BUFFER_H_ #include "auxlib.h" #include "socket.h" #include "timerthread.h" #include "media_socket.h" struct jb_packet; struct media_packet; struct jb_packet { struct timerthread_queue_entry ttq_entry; char *buf; struct media_packet mp; }; struct jitter_buffer { struct timerthread_queue ttq; mutex_t lock; unsigned long first_send_ts; struct timeval first_send; struct timeval prev_seq_ts; unsigned int first_seq; unsigned int prev_seq; unsigned int rtptime_delta; unsigned int next_exp_seq; unsigned int cont_frames; unsigned int cont_miss; unsigned int clock_rate; unsigned int payload_type; unsigned int num_resets; unsigned int initial_pkts; unsigned int ssrc; unsigned int dtmf_mult_factor; int buffer_len; int clock_drift_val; call_t *call; int disabled; }; void jitter_buffer_init(void); void jitter_buffer_init_free(void); struct jitter_buffer *jitter_buffer_new(call_t *); void jitter_buffer_free(struct jitter_buffer **); int buffer_packet(struct media_packet *mp, const str *s); void jb_packet_free(struct jb_packet **jbp); void jitter_buffer_launch(void); INLINE void jb_put(struct jitter_buffer **jb) { if (!*jb) return; obj_put(&(*jb)->ttq.tt_obj); *jb = NULL; } #endif rtpengine-mr12.5.1.22/include/kernel.h000066400000000000000000000024721474347554000174520ustar00rootroot00000000000000#ifndef __KERNEL_H__ #define __KERNEL_H__ #include #include #include #include "containers.h" #include "auxlib.h" #include "xt_RTPENGINE.h" #define UNINIT_IDX ((unsigned int) -1) struct rtpengine_target_info; struct rtpengine_destination_info; struct re_address; struct rtpengine_ssrc_stats; struct kernel_interface { unsigned int table; int fd; bool is_open; bool is_wanted; bool use_player; }; extern struct kernel_interface kernel; bool kernel_setup_table(unsigned int); bool kernel_init_table(void); void kernel_shutdown_table(void); void kernel_add_stream(struct rtpengine_target_info *); void kernel_add_destination(struct rtpengine_destination_info *); bool kernel_del_stream(struct rtpengine_command_del_target *); unsigned int kernel_add_call(const char *id); void kernel_del_call(unsigned int); unsigned int kernel_add_intercept_stream(unsigned int call_idx, const char *id); bool kernel_init_player(int num_media, int num_sessions); unsigned int kernel_get_packet_stream(void); bool kernel_add_stream_packet(unsigned int, const char *, size_t, unsigned long ms, uint32_t ts, uint32_t dur); unsigned int kernel_start_stream_player(struct rtpengine_play_stream_info *); bool kernel_stop_stream_player(unsigned int idx); bool kernel_free_packet_stream(unsigned int); #endif rtpengine-mr12.5.1.22/include/load.h000066400000000000000000000002421474347554000171020ustar00rootroot00000000000000#ifndef _LOAD_H_ #define _LOAD_H_ extern int load_average; // times 100 extern int cpu_usage; // times 100 enum thread_looper_action load_thread(void); #endif rtpengine-mr12.5.1.22/include/main.h000066400000000000000000000117521474347554000171170ustar00rootroot00000000000000#ifndef _MAIN_H_ #define _MAIN_H_ #include #include "helpers.h" #include "socket.h" #include "auxlib.h" #include "types.h" enum xmlrpc_format { XF_SEMS = 0, XF_CALLID, XF_KAMAILIO, }; enum log_format { LF_DEFAULT = 0, LF_PARSABLE, __LF_LAST }; enum endpoint_learning { EL_DELAYED = 0, EL_IMMEDIATE = 1, EL_OFF = 2, EL_HEURISTIC = 3, __EL_LAST }; #ifndef MAX_RECV_ITERS #define MAX_RECV_ITERS 50 #endif struct rtpengine_config { rwlock_t keyspaces_lock; struct rtpengine_common_config common; int kernel_table; int max_sessions; int timeout; int silent_timeout; int final_timeout; int offer_timeout; int delete_delay; GQueue redis_subscribed_keyspaces; int redis_expires_secs; char *b2b_url; int default_tos; int control_tos; enum { PMTU_DISC_DEFAULT = 0, PMTU_DISC_WANT, PMTU_DISC_DONT, } control_pmtu; enum xmlrpc_format fmt; enum log_format log_format; endpoint_t graphite_ep; int graphite_interval; int graphite_timeout; int redis_num_threads; intf_config_q interfaces; GQueue tcp_listen_ep; GQueue udp_listen_ep; GQueue ng_listen_ep; GQueue ng_tcp_listen_ep; GQueue cli_listen_ep; endpoint_t redis_ep; endpoint_t redis_write_ep; endpoint_t homer_ep; int homer_protocol; int homer_id; int homer_ng_capt_proto; gboolean homer_rtcp_off; gboolean homer_ng_on; gboolean no_fallback; gboolean reject_invalid_sdp; gboolean save_interface_ports; int port_min; int port_max; int redis_db; int redis_write_db; gboolean no_redis_required; int redis_allowed_errors; int redis_disable_time; int redis_cmd_timeout; int redis_connect_timeout; int redis_delete_async; int redis_delete_async_interval; char *redis_auth; char *redis_write_auth; gboolean active_switchover; int num_threads; int media_num_threads; int codec_num_threads; char *spooldir; char *rec_method; char *rec_format; gboolean rec_egress; char *iptables_chain; char *nftables_chain; char *nftables_base_chain; gboolean nftables_append; int nftables_family; int load_limit; int cpu_limit; uint64_t bw_limit; char *scheduling; int priority; char *idle_scheduling; int idle_priority; gboolean log_keys; char *mysql_host; int mysql_port; char *mysql_user; char *mysql_pass; char *mysql_query; endpoint_t dtmf_udp_ep; gboolean dtmf_via_ng; gboolean dtmf_no_suppress; int dtmf_digit_delay; gboolean dtmf_no_log_injects; enum endpoint_learning endpoint_learning; int jb_length; gboolean jb_clock_drift; enum { DCC_EC_PRIME256v1 = 0, DCC_RSA, } dtls_cert_cipher; int dtls_rsa_key_size; int dtls_mtu; char *dtls_ciphers; enum { DSIG_SHA256 = 0, DSIG_SHA1, } dtls_signature; char **http_ifs; char **https_ifs; char *https_cert; char *https_key; int http_threads; int dtx_delay; int max_dtx; int dtx_buffer; int dtx_lag; int dtx_shift; str dtx_cn_params; int amr_cn_dtx; double silence_detect_double; uint32_t silence_detect_int; str cn_payload; gboolean player_cache; int kernel_player; int kernel_player_media; int audio_buffer_length; int audio_buffer_delay; enum { UAP_ON_DEMAND = 0, UAP_PLAY_MEDIA, UAP_TRANSCODING, UAP_ALWAYS, } use_audio_player; char *software_id; gboolean poller_per_thread; char *mqtt_host; int mqtt_port; char *mqtt_tls_alpn; char *mqtt_id; int mqtt_keepalive; char *mqtt_user; char *mqtt_pass; char *mqtt_cafile; char *mqtt_capath; char *mqtt_certfile; char *mqtt_keyfile; int mqtt_publish_qos; char *mqtt_publish_topic; int mqtt_publish_interval; enum { MPS_NONE = -1, MPS_GLOBAL = 0, MPS_CALL, MPS_MEDIA, MPS_SUMMARY, } mqtt_publish_scope; enum { MOS_CQ = 0, MOS_LQ, } mos; gboolean measure_rtp; int rtcp_interval; int cpu_affinity; char *janus_secret; int max_recv_iters; str vsc_start_rec; str vsc_stop_rec; str vsc_start_stop_rec; str vsc_pause_rec; str vsc_pause_resume_rec; str vsc_start_pause_resume_rec; }; struct poller; /** * Main global poller instance. * This object is responsible for maintaining and holding the entry-point references. * * TODO: convert to struct instead of pointer? */ extern struct poller **rtpe_pollers; // at least one poller, in an array extern struct poller *rtpe_control_poller; // poller for control sockets (maybe rtpe_pollers[0]) extern unsigned int num_media_pollers; // for media sockets, >= 1 extern unsigned int rtpe_poller_rr_iter; // round-robin assignment of pollers to each thread INLINE struct poller *rtpe_get_poller(void) { // XXX optimise this for num_media_pollers == 1 ? return rtpe_pollers[g_atomic_int_add(&rtpe_poller_rr_iter, 1) % num_media_pollers]; } extern struct rtpengine_config rtpe_config; extern struct rtpengine_config initial_rtpe_config; extern GQueue rtpe_control_ng; extern GQueue rtpe_control_ng_tcp; extern struct bufferpool *shm_bufferpool; #endif rtpengine-mr12.5.1.22/include/media_player.h000066400000000000000000000074461474347554000206330ustar00rootroot00000000000000#ifndef _MEDIA_PLAYER_H_ #define _MEDIA_PLAYER_H_ #include #include "auxlib.h" #include "timerthread.h" #include "str.h" #include "types.h" struct call_media; struct call_monologue; struct codec_handler; struct ssrc_ctx; struct packet_stream; struct codec_packet; struct media_player; typedef struct { long long start_pos; int repeat; unsigned int block_egress:1; } media_player_opts_t; #ifdef WITH_TRANSCODING #include #include struct media_player_cache_entry; struct media_player_content_index { enum { MP_OTHER = 0, MP_FILE = 1, MP_DB, MP_BLOB } type; long long db_id; str file; // file name or binary blob }; // returns true to indicate that playback is finished and codec handlers should be reset typedef bool (*media_player_run_func)(struct media_player *); struct media_player_coder { AVFormatContext *fmtctx; AVStream *avstream; unsigned long duration; // in milliseconds AVPacket *pkt; AVIOContext *avioctx; str *blob; str read_pos; struct codec_handler *handler; }; struct media_player { struct timerthread_obj tt_obj; mutex_t lock; media_player_run_func run_func; call_t *call; struct call_monologue *ml; struct call_media *media; struct packet_stream *sink; const struct streamhandler *crypt_handler; struct timeval next_run; media_player_opts_t opts; struct media_player_coder coder; struct media_player_content_index cache_index; struct media_player_cache_entry *cache_entry; unsigned int cache_read_idx; unsigned int kernel_idx; struct ssrc_ctx *ssrc_out; unsigned long seq; unsigned long buffer_ts; unsigned long sync_ts; struct timeval sync_ts_tv; long long last_frame_ts; }; INLINE void media_player_put(struct media_player **mp) { if (!*mp) return; obj_put(&(*mp)->tt_obj); *mp = NULL; } INLINE struct media_player *media_player_get(struct media_player *mp) { if (!mp) return NULL; obj_hold(&mp->tt_obj); return mp; } #else INLINE void media_player_put(struct media_player **mp) { } INLINE struct media_player *media_player_get(struct media_player *mp) { return NULL; } #endif struct send_timer { struct timerthread_queue ttq; call_t *call; // main reference that keeps this alive struct packet_stream *sink; }; #define MPO(...) (media_player_opts_t){__VA_ARGS__} void media_player_new(struct media_player **, struct call_monologue *); bool media_player_play_file(struct media_player *, const str *, media_player_opts_t); bool media_player_play_blob(struct media_player *, const str *, media_player_opts_t); bool media_player_play_db(struct media_player *, long long, media_player_opts_t); bool media_player_init_file(struct media_player *, const str *, media_player_opts_t); bool media_player_init_blob(struct media_player *, const str *, media_player_opts_t); bool media_player_init_db(struct media_player *, long long, media_player_opts_t); bool media_player_start(struct media_player *); long long media_player_stop(struct media_player *); bool media_player_is_active(struct call_monologue *); int media_player_setup(struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt); void media_player_set_media(struct media_player *mp, struct call_media *media); bool media_player_pt_match(const struct media_player *mp, const rtp_payload_type *src_pt, const rtp_payload_type *dst_pt); void media_player_add_packet(struct media_player *mp, char *buf, size_t len, long long us_dur, unsigned long long pts); void media_player_init(void); void media_player_free(void); void media_player_launch(void); struct send_timer *send_timer_new(struct packet_stream *); void send_timer_push(struct send_timer *, struct codec_packet *); void send_timer_launch(void); INLINE void send_timer_put(struct send_timer **st) { if (!*st) return; obj_put(&(*st)->ttq.tt_obj); *st = NULL; } #endif rtpengine-mr12.5.1.22/include/media_socket.h000066400000000000000000000260151474347554000206200ustar00rootroot00000000000000#ifndef _MEDIA_SOCKET_H_ #define _MEDIA_SOCKET_H_ #include #include #include #include "str.h" #include "obj.h" #include "helpers.h" #include "dtls.h" #include "crypto.h" #include "socket.h" #include "containers.h" #include "types.h" #include "xt_RTPENGINE.h" #include "common_stats.h" struct media_packet; struct transport_protocol; struct ssrc_ctx; struct rtpengine_srtp; struct jb_packet; struct poller; struct media_player_cache_entry; TYPED_GQUEUE(stream_fd, stream_fd) typedef int rtcp_filter_func(struct media_packet *, GQueue *); typedef int (*rewrite_func)(str *, struct packet_stream *, struct ssrc_ctx *); enum transport_protocol_index { PROTO_RTP_AVP = 0, PROTO_RTP_SAVP, PROTO_RTP_AVPF, PROTO_RTP_SAVPF, PROTO_UDP_TLS_RTP_SAVP, PROTO_UDP_TLS_RTP_SAVPF, PROTO_UDPTL, PROTO_RTP_SAVP_OSRTP, PROTO_RTP_SAVPF_OSRTP, PROTO_UNKNOWN, __PROTO_LAST, }; struct transport_protocol { enum transport_protocol_index index; const char *name; enum transport_protocol_index avpf_proto; enum transport_protocol_index osrtp_proto; enum transport_protocol_index rtp_proto; unsigned int rtp:1; /* also set to 1 for SRTP */ unsigned int srtp:1; unsigned int osrtp:1; unsigned int avpf:1; unsigned int tcp:1; }; extern const struct transport_protocol transport_protocols[]; struct streamhandler_io { rewrite_func rtp_crypt; rewrite_func rtcp_crypt; rtcp_filter_func *rtcp_filter; int (*kernel)(struct rtpengine_srtp *, struct packet_stream *); }; struct streamhandler { const struct streamhandler_io *in; const struct streamhandler_io *out; }; struct logical_intf { str name; sockfamily_t *preferred_family; GQueue list; /* struct local_intf */ GHashTable *rr_specs; str name_base; // if name is "foo:bar", this is "foo" }; struct port_pool { unsigned int min, max; mutex_t free_list_lock; GQueue free_ports_q; /* for getting the next free port */ GHashTable * free_ports_ht; /* for a lookup, if the port is used */ }; struct intf_address { socktype_t *type; sockaddr_t addr; }; struct intf_config { str name; // full name (before the '/' separator in config) str name_base; // if name is "foo:bar", this is "foo" str name_rr_spec; // if name is "foo:bar", this is "bar" str alias; // if interface is "foo=bar", this is "bar" struct intf_address local_address; struct intf_address advertised_address; unsigned int port_min, port_max; }; struct intf_spec { struct intf_address local_address; struct port_pool port_pool; }; struct interface_sampled_rate_stats { GHashTable *ht; struct interface_stats_block intv; }; INLINE void interface_sampled_calc_diff(const struct interface_sampled_stats *stats, struct interface_sampled_stats *intv, struct interface_sampled_stats *diff) { #define F(x) STAT_SAMPLED_CALC_DIFF(x, stats, intv, diff) #include "interface_sampled_stats_fields.inc" #undef F } INLINE void interface_sampled_avg(struct interface_sampled_stats_avg *loc, const struct interface_sampled_stats *diff) { #define F(x) STAT_SAMPLED_AVG_STDDEV(x, loc, diff) #include "interface_sampled_stats_fields.inc" #undef F } INLINE void interface_counter_calc_diff(const struct interface_counter_stats *stats, struct interface_counter_stats *intv, struct interface_counter_stats *diff) { #define F(x) atomic64_calc_diff(&stats->x, &intv->x, &diff->x); #include "interface_counter_stats_fields.inc" #undef F } INLINE void interface_counter_calc_diff_dir(const struct interface_counter_stats_dir *stats, struct interface_counter_stats_dir *intv, struct interface_counter_stats_dir *diff) { #define F(x) atomic64_calc_diff(&stats->x, &intv->x, &diff->x); #include "interface_counter_stats_fields_dir.inc" #undef F } INLINE void interface_counter_calc_rate_from_diff(long long run_diff_us, struct interface_counter_stats *diff, struct interface_counter_stats *rate) { #define F(x) atomic64_calc_rate_from_diff(run_diff_us, atomic64_get(&diff->x), &rate->x); #include "interface_counter_stats_fields.inc" #undef F } INLINE void interface_counter_calc_rate_from_diff_dir(long long run_diff_us, struct interface_counter_stats_dir *diff, struct interface_counter_stats_dir *rate) { #define F(x) atomic64_calc_rate_from_diff(run_diff_us, atomic64_get(&diff->x), &rate->x); #include "interface_counter_stats_fields_dir.inc" #undef F } void interface_sampled_rate_stats_init(struct interface_sampled_rate_stats *); void interface_sampled_rate_stats_destroy(struct interface_sampled_rate_stats *); struct interface_stats_block *interface_sampled_rate_stats_get(struct interface_sampled_rate_stats *s, struct local_intf *lif, long long *time_diff_us); struct local_intf { struct intf_spec *spec; struct intf_address advertised_address; unsigned int unique_id; /* starting with 0 - serves as preference */ const struct logical_intf *logical; str ice_foundation; struct interface_stats_block *stats; }; struct socket_intf_list { struct local_intf *local_intf; socket_q list; }; struct sfd_intf_list { struct local_intf *local_intf; stream_fd_q list; }; TYPED_GQUEUE(socket_intf_list, struct socket_intf_list) TYPED_GQUEUE(sfd_intf_list, struct sfd_intf_list) /** * stream_fd is an entry-point object for RTP packets handling, * because of that it's also reference-counted. * * stream_fd object us only released, when it is removed from the poller * and also removed from the call object. * * Contains an information required for media processing, such as media ports. */ struct stream_fd { /* struct obj member must always be the first member in a struct. * * obj is created with a cleanup handler, see obj_alloc(), * and this handler is executed whenever the reference count drops to zero. * * References are acquired and released through obj_get() and obj_put() * (plus some other wrapper functions). */ struct obj obj; unsigned int unique_id; /* RO */ socket_t socket; /* RO */ struct local_intf *local_intf; /* RO */ /* stream_fd object holds a reference to the call it belongs to. * Which in turn holds references to all stream_fd objects it contains, * what makes these references circular. * * The call is only released when it has been dissociated from all stream_fd objects, * which happens during call teardown. */ call_t *call; /* RO */ struct packet_stream *stream; /* LOCK: call->master_lock */ struct crypto_context crypto; /* IN direction, LOCK: stream->in_lock */ struct dtls_connection dtls; /* LOCK: stream->in_lock */ int error_strikes; int active_read_events; struct poller *poller; }; struct sink_attrs { bool block_media; bool silence_media; unsigned int offer_answer:1; // bidirectional, exclusive unsigned int rtcp_only:1; unsigned int transcoding:1; unsigned int egress:1; }; /** * During actual packet handling and forwarding, * only the sink_handler objects (and the packet_stream objects they are related to) are used. */ struct sink_handler { struct packet_stream *sink; const struct streamhandler *handler; int kernel_output_idx; struct sink_attrs attrs; }; struct media_packet { str raw; endpoint_t fsin; // source address of received packet struct timeval tv; // timestamp when packet was received stream_fd *sfd; // fd which received the packet call_t *call; // sfd->call struct packet_stream *stream; // sfd->stream struct call_media *media; // stream->media struct call_media *media_out; // output media struct sink_handler sink; struct media_player_cache_entry *cache_entry; struct rtp_header *rtp; struct rtcp_packet *rtcp; struct ssrc_ctx *ssrc_in, *ssrc_out; // SSRC contexts from in_srtp and out_srtp str payload; codec_packet_q packets_out; int ptime; // returned from decoding }; extern GQueue all_local_interfaces; // read-only during runtime extern __thread struct bufferpool *media_bufferpool; void interfaces_init(intf_config_q *interfaces); void interfaces_free(void); struct logical_intf *get_logical_interface(const str *name, sockfamily_t *fam, int num_ports); struct local_intf *get_interface_address(const struct logical_intf *lif, sockfamily_t *fam); struct local_intf *get_any_interface_address(const struct logical_intf *lif, sockfamily_t *fam); void interfaces_exclude_port(unsigned int port); int is_local_endpoint(const struct intf_address *addr, unsigned int port); //int get_port(socket_t *r, unsigned int port, const struct local_intf *lif, const call_t *c); //void release_port(socket_t *r, const struct local_intf *); int __get_consecutive_ports(socket_q *out, unsigned int num_ports, unsigned int wanted_start_port, struct intf_spec *spec, const str *); int get_consecutive_ports(socket_intf_list_q *out, unsigned int num_ports, unsigned int num_intfs, struct call_media *media); stream_fd *stream_fd_new(socket_t *fd, call_t *call, struct local_intf *lif); stream_fd *stream_fd_lookup(const endpoint_t *); void stream_fd_release(stream_fd *); enum thread_looper_action release_closed_sockets(void); void append_thread_lpr_to_glob_lpr(void); void free_sfd_intf_list(struct sfd_intf_list *il); void free_release_sfd_intf_list(struct sfd_intf_list *il); void free_socket_intf_list(struct socket_intf_list *il); INLINE int open_intf_socket(socket_t *r, unsigned int port, const struct local_intf *lif) { return open_socket(r, SOCK_DGRAM, port, &lif->spec->local_address.addr); } void kernelize(struct packet_stream *); void __unkernelize(struct packet_stream *, const char *); void unkernelize(struct packet_stream *, const char *); void __stream_unconfirm(struct packet_stream *, const char *); void __reset_sink_handlers(struct packet_stream *); int __hunt_ssrc_ctx_idx(uint32_t ssrc, struct ssrc_ctx *list[RTPE_NUM_SSRC_TRACKING], unsigned int start_idx); struct ssrc_ctx *__hunt_ssrc_ctx(uint32_t ssrc, struct ssrc_ctx *list[RTPE_NUM_SSRC_TRACKING], unsigned int start_idx); void media_packet_copy(struct media_packet *, const struct media_packet *); void media_packet_release(struct media_packet *); int media_socket_dequeue(struct media_packet *mp, struct packet_stream *sink); const struct streamhandler *determine_handler(const struct transport_protocol *in_proto, struct call_media *out_media, bool must_recrypt); int media_packet_encrypt(rewrite_func encrypt_func, struct packet_stream *out, struct media_packet *mp); const struct transport_protocol *transport_protocol(const str *s); //void play_buffered(struct packet_stream *sink, struct codec_packet *cp, int buffered); void play_buffered(struct jb_packet *cp); INLINE int proto_is_rtp(const struct transport_protocol *protocol) { // known to be RTP? therefore unknown is not RTP if (!protocol) return 0; return protocol->rtp ? 1 : 0; } INLINE int proto_is_not_rtp(const struct transport_protocol *protocol) { // known not to be RTP? therefore unknown might be RTP if (!protocol) return 0; return protocol->rtp ? 0 : 1; } INLINE int proto_is(const struct transport_protocol *protocol, enum transport_protocol_index idx) { if (!protocol) return 0; return (protocol->index == idx) ? 1 : 0; } INLINE void stream_fd_put(stream_fd *sp) { if (!sp) return; obj_put(sp); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(stream_fd, stream_fd_put) #endif rtpengine-mr12.5.1.22/include/mqtt.h000066400000000000000000000014231474347554000171520ustar00rootroot00000000000000#ifndef _MQTT_H_ #define _MQTT_H_ #include #include "main.h" #include "types.h" struct call_media; #ifdef HAVE_MQTT int mqtt_init(void); void mqtt_loop(void *); int mqtt_publish_scope(void); void mqtt_publish(char *); void mqtt_timer_run_media(call_t *, struct call_media *); void mqtt_timer_run_call(call_t *); void mqtt_timer_run_global(void); void mqtt_timer_run_summary(void); #else #include "compat.h" INLINE int mqtt_init(void) { return 0; } INLINE void mqtt_publish(char *s) { } INLINE int mqtt_publish_scope(void) { return MPS_NONE; }; INLINE void mqtt_timer_run_media(call_t *c, struct call_media *m) { } INLINE void mqtt_timer_run_call(call_t *c) { } INLINE void mqtt_timer_run_global(void) { } INLINE void mqtt_timer_run_summary(void) { } #endif #endif rtpengine-mr12.5.1.22/include/nftables.h000066400000000000000000000006201474347554000177610ustar00rootroot00000000000000#ifndef _NFTABLES_H_ #define _NFTABLES_H_ #include typedef struct { int table; bool append; int family; } nftables_args; const char *nftables_setup(const char *chain, const char *base_chain, nftables_args); const char *nftables_shutdown(const char *chain, const char *base_chain, nftables_args); int nftables_check(const char *chain, const char *base_chain, nftables_args); #endif rtpengine-mr12.5.1.22/include/recording.h000066400000000000000000000076461474347554000201560ustar00rootroot00000000000000/** * recording.h * * Handles call recording to PCAP files and recording metadata. * Mostly filesystem operations */ #ifndef __RECORDING_H__ #define __RECORDING_H__ #include #include #include #include #include "str.h" #include "helpers.h" #include "bencode.h" #include "types.h" struct packet_stream; struct media_packet; enum call_opmode; struct rtpengine_target_info; struct call_monologue; struct call_media; struct recording_pcap { char *meta_filepath; // full file path FILE *meta_fp; pcap_t *recording_pd; pcap_dumper_t *recording_pdumper; uint64_t packet_num; char *recording_path; mutex_t recording_lock; }; struct recording_proc { unsigned int call_idx; char *meta_filepath; // full file path }; struct recording_stream_proc { unsigned int stream_idx; }; struct recording { struct recording_pcap pcap; struct recording_proc proc; }; struct recording_stream { union { struct recording_stream_proc proc; }; }; struct recording_method { const char *name; int kernel_support; int (*create_spool_dir)(const char *); void (*init_struct)(call_t *); void (*sdp_before)(struct recording *, const str *, struct call_monologue *, enum call_opmode); void (*sdp_after)(struct recording *, GString *, struct call_monologue *, enum call_opmode); void (*meta_chunk)(struct recording *, const char *, const str *); void (*update_flags)(call_t *call, bool streams); void (*dump_packet)(struct media_packet *, const str *s); void (*finish)(call_t *, bool discard); void (*response)(struct recording *, bencode_item_t *); void (*init_stream_struct)(struct packet_stream *); void (*setup_stream)(struct packet_stream *); void (*setup_media)(struct call_media *); void (*setup_monologue)(struct call_monologue *); void (*stream_kernel_info)(struct packet_stream *, struct rtpengine_target_info *); }; extern const struct recording_method *selected_recording_method; #define _rm_ret(method, args...) selected_recording_method->method(args) #define _rm(method, args...) do { \ if (selected_recording_method && selected_recording_method->method) \ selected_recording_method->method(args); \ } while (0) /** * Initialize RTP Engine filesystem settings and structure. * Check for or create the RTP Engine spool directory. */ void recording_fs_init(const char *spooldir, const char *method, const char *format); void recording_fs_free(void); /** * * Controls the setting of recording variables on a `call_t *`. * Sets the `record_call` value on the `struct call`, initializing the * recording struct if necessary. * If we do not yet have a PCAP file associated with the call, create it * and write its file URL to the metadata file. * * Returns a boolean for whether or not the call is being recorded. */ void detect_setup_recording(call_t *call, const sdp_ng_flags *flags); void update_metadata_call(call_t *call, const sdp_ng_flags *flags); void update_metadata_monologue(struct call_monologue *ml, const sdp_ng_flags *flags); void recording_start(call_t *call); void recording_start_daemon(call_t *call); void recording_pause(call_t *call); void recording_stop(call_t *call); void recording_stop_daemon(call_t *call); void recording_discard(call_t *call); #define meta_write_sdp_before(args...) _rm(sdp_before, args) #define meta_write_sdp_after(args...) _rm(sdp_after, args) void recording_finish(call_t *, bool discard); #define recording_setup_stream(args...) _rm(setup_stream, args) #define recording_setup_media(args...) _rm(setup_media, args) #define recording_setup_monologue(args...) _rm(setup_monologue, args) #define recording_init_stream(args...) _rm(init_stream_struct, args) #define recording_stream_kernel_info(args...) _rm(stream_kernel_info, args) #define recording_meta_chunk(args...) _rm(meta_chunk, args) #define recording_response(args...) _rm(response, args) #define dump_packet(args...) _rm(dump_packet, args) #endif rtpengine-mr12.5.1.22/include/redis.h000066400000000000000000000061621474347554000173000ustar00rootroot00000000000000#ifndef __REDIS_MOD_H__ #define __REDIS_MOD_H__ #include #include #include #include #include "compat.h" #include "socket.h" #include "helpers.h" #include "call.h" #include "str.h" #define REDIS_RESTORE_NUM_THREADS 4 enum redis_role { MASTER_REDIS_ROLE = 0, SLAVE_REDIS_ROLE = 1, ANY_REDIS_ROLE = 2, }; enum redis_state { REDIS_STATE_DISCONNECTED = 0, REDIS_STATE_CONNECTED, }; enum event_base_action { EVENT_BASE_ALLOC = 0, EVENT_BASE_FREE, EVENT_BASE_LOOPBREAK, }; enum subscribe_action { SUBSCRIBE_KEYSPACE = 0, UNSUBSCRIBE_KEYSPACE, UNSUBSCRIBE_ALL, }; struct redis { endpoint_t endpoint; char host[64]; enum redis_role role; redisContext *ctx; int db; const char *auth; mutex_t lock; unsigned int pipeline; int state; int no_redis_required; int consecutive_errors; time_t restore_tick; int current_db; struct event_base *async_ev; struct redisAsyncContext *async_ctx; mutex_t async_lock; GQueue async_queue; int async_last; }; struct redis_hash { GHashTable *ht; }; struct redis_list { unsigned int len; struct redis_hash *rh; void **ptrs; }; extern struct redis *rtpe_redis; extern struct redis *rtpe_redis_write; extern struct redis *rtpe_redis_write_disabled; extern struct redis *rtpe_redis_notify; #define rlog(l, x...) ilog(l | LOG_FLAG_RESTORE, x) void redis_notify_loop(void *d); void redis_delete_async_loop(void *d); struct redis *redis_new(const endpoint_t *, int, const char *, enum redis_role, int); struct redis *redis_dup(const struct redis *r, int db); void redis_close(struct redis *r); int redis_restore(struct redis *, bool foreign, int db); void redis_update_onekey(call_t *c, struct redis *r); void redis_delete(call_t *, struct redis *); void redis_wipe(struct redis *); int redis_async_event_base_action(struct redis *r, enum event_base_action); int redis_notify_subscribe_action(struct redis *r, enum subscribe_action action, int keyspace); int redis_set_timeout(struct redis* r, int timeout); int redis_reconnect(struct redis* r); #define define_get_type_format(name, type) \ static int redis_hash_get_ ## name ## _v(type *out, const struct redis_hash *h, const char *f, \ va_list ap) \ { \ char key[64]; \ \ vsnprintf(key, sizeof(key), f, ap); \ return redis_hash_get_ ## name(out, h, key); \ } \ static int redis_hash_get_ ## name ## _f(type *out, const struct redis_hash *h, const char *f, ...) { \ va_list ap; \ int ret; \ \ va_start(ap, f); \ ret = redis_hash_get_ ## name ## _v(out, h, f, ap); \ va_end(ap); \ return ret; \ } #define define_get_int_type(name, type, func) \ static int redis_hash_get_ ## name(type *out, const struct redis_hash *h, const char *k) { \ str* s; \ \ s = g_hash_table_lookup(h->ht, k); \ if (!s) \ return -1; \ *out = func(s->s, NULL, 10); \ return 0; \ } #endif rtpengine-mr12.5.1.22/include/rtcp.h000066400000000000000000000016761474347554000171470ustar00rootroot00000000000000#ifndef _RTCP_H_ #define _RTCP_H_ #include #include "str.h" #include "call.h" #include "media_socket.h" struct crypto_context; struct rtcp_packet; struct ssrc_ctx; struct rtcp_handler; struct call_monologue; struct rtcp_parse_ctx { call_t *call; struct call_media *media; const struct timeval *received; }; extern struct rtcp_handler *rtcp_transcode_handler; extern struct rtcp_handler *rtcp_sink_handler; int rtcp_avp2savp(str *, struct crypto_context *, struct ssrc_ctx *); int rtcp_savp2avp(str *, struct crypto_context *, struct ssrc_ctx *); int rtcp_payload(struct rtcp_packet **out, str *p, const str *s); int rtcp_parse(GQueue *q, struct media_packet *); void rtcp_list_free(GQueue *q); rtcp_filter_func rtcp_avpf2avp_filter; void rtcp_init(void); void rtcp_receiver_reports(GQueue *out, struct ssrc_hash *hash, struct call_monologue *ml); void rtcp_send_report(struct call_media *media, struct ssrc_ctx *ssrc_out); #endif rtpengine-mr12.5.1.22/include/rtp.h000066400000000000000000000011701474347554000167710ustar00rootroot00000000000000#ifndef _RTP_H_ #define _RTP_H_ #include #include "str.h" #include "types.h" struct crypto_context; struct rtp_header; struct ssrc_hash; enum ssrc_dir; struct ssrc_ctx; struct codec_store; const rtp_payload_type *get_rtp_payload_type(unsigned int, struct codec_store *); int rtp_avp2savp(str *, struct crypto_context *, struct ssrc_ctx *); int rtp_savp2avp(str *, struct crypto_context *, struct ssrc_ctx *); void rtp_append_mki(str *s, struct crypto_context *c); int srtp_payloads(str *to_auth, str *to_decrypt, str *auth_tag, str *mki, int auth_len, int mki_len, const str *packet, const str *payload); #endif rtpengine-mr12.5.1.22/include/sampled_stats_fields.inc000066400000000000000000000001511474347554000226750ustar00rootroot00000000000000FA(ng_command_times, NGC_COUNT) F(mos) F(jitter) F(rtt_e2e) F(rtt_dsct) F(packetloss) F(jitter_measured) rtpengine-mr12.5.1.22/include/sdp.h000066400000000000000000000047771474347554000167720ustar00rootroot00000000000000#ifndef _SDP_H_ #define _SDP_H_ #include #include "str.h" #include "call.h" #include "media_socket.h" #include "types.h" /* A structure for SDP arbitrary manipulations on all levels of SDP: * session (global), media (audio/video). Works only on `a=` lines. */ struct sdp_manipulations { str_q add_commands; str_case_ht rem_commands; str_case_value_ht subst_commands; }; struct ice_candidate; struct sdp_chopper { str *input; size_t position; GString *output; ssize_t offset; // for post-processing using chopper_replace }; struct sdp_attribute_strs { /* example: a=rtpmap:8 PCMA/8000 */ str line_value; /* without a= and without \r\n */ str name; /* just "rtpmap" */ str value; /* just "8 PCMA/8000" */ str key; /* "rtpmap:8" */ }; enum sdp_attr_type { SDP_ATTR_TYPE_UNKNOWN = 0, SDP_ATTR_TYPE_EXTMAP, }; struct sdp_attr { struct sdp_attribute_strs strs; enum sdp_attr_type type; }; extern const str rtpe_instance_id; void sdp_init(void); sdp_attr_print_f sdp_insert_media_attributes; sdp_attr_print_f sdp_insert_monologue_attributes; void sdp_append_str_attr(GString *s, const sdp_ng_flags *flags, enum media_type media_type, const str *name, const char *fmt, ...) __attribute__ ((format (printf, 5, 6))); #define sdp_append_attr(s, g, t, n, f, ...) sdp_append_str_attr(s, g, t, &STR_INIT(n), f, ##__VA_ARGS__) void sdp_attr_free(struct sdp_attr *); sdp_origin *sdp_orig_dup(const sdp_origin *orig); void sdp_orig_free(sdp_origin *o); int sdp_parse(str *body, sdp_sessions_q *sessions, const sdp_ng_flags *); int sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_flags *); void sdp_streams_clear(sdp_streams_q *); void sdp_sessions_clear(sdp_sessions_q *sessions); int sdp_replace(struct sdp_chopper *, sdp_sessions_q *, struct call_monologue *, sdp_ng_flags *); int sdp_is_duplicate(sdp_sessions_q *sessions); int sdp_create(str *out, struct call_monologue *, sdp_ng_flags *flags); const char *sdp_get_sendrecv(struct call_media *media); int sdp_parse_candidate(struct ice_candidate *cand, const str *s); // returns -1, 0, 1 struct sdp_chopper *sdp_chopper_new(str *input); void sdp_chopper_destroy(struct sdp_chopper *chop); void sdp_chopper_destroy_ret(struct sdp_chopper *chop, str *ret); G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(sdp_streams_q, sdp_streams_clear) G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(sdp_sessions_q, sdp_sessions_clear) INLINE int is_trickle_ice_address(const struct endpoint *ep) { if (is_addr_unspecified(&ep->address) && ep->port == 9) return 1; return 0; } #endif rtpengine-mr12.5.1.22/include/ssrc.h000066400000000000000000000145501474347554000171440ustar00rootroot00000000000000#ifndef _SSRC_H_ #define _SSRC_H_ #include #include #include "compat.h" #include "helpers.h" #include "obj.h" #include "codeclib.h" #include "types.h" struct call_media; struct timeval; struct ssrc_entry; struct ssrc_entry_call; enum ssrc_dir; typedef struct ssrc_entry *(*ssrc_create_func_t)(void *uptr); struct ssrc_hash { GHashTable *ht; GQueue q; rwlock_t lock; ssrc_create_func_t create_func; void *uptr; struct ssrc_entry *cache; // last used entry struct ssrc_entry *precreat; // next used entry }; struct payload_tracker { mutex_t lock; unsigned char last[32]; // must be <= 255 unsigned int last_idx; // rolling index into pt_last unsigned char count[128]; // how many of each pt unsigned char idx[128]; // each pt's index into most[] unsigned char most[128]; // sorted list of pts unsigned int most_len; // idx for new entries }; struct ssrc_ctx { struct ssrc_entry_call *parent; struct payload_tracker tracker; void *ref; // points to the call_monologue but is opaque // XXX move entire crypto context in here? // for transcoding uint32_t ssrc_map_out; uint16_t seq_out; // RTCP stats struct ssrc_stats *stats; // for per-second stats: atomic64 last_sample, sample_packets, sample_octets, sample_packets_lost, sample_duplicates; struct timeval next_rtcp; // for self-generated RTCP reports }; INLINE uint64_t ssrc_timeval_to_ts(const struct timeval *tv) { return (tv->tv_sec << 20) | tv->tv_usec; } INLINE struct timeval ssrc_ts_to_timeval(uint64_t ts) { return (struct timeval) { .tv_sec = ts >> 20, .tv_usec = ts & 0xfffff }; } struct ssrc_stats_block { struct timeval reported; uint64_t jitter; // ms uint64_t rtt; // us - combined from both sides uint32_t rtt_leg; // RTT only for the leg receiving the RTCP report uint64_t packetloss; // percent uint64_t mos; // nominal range of 10 - 50 for MOS values 1.0 to 5.0 }; struct ssrc_entry { struct obj obj; mutex_t lock; uint32_t ssrc; time_t last_used; }; struct ssrc_entry_call { struct ssrc_entry h; // must be first struct ssrc_ctx input_ctx, output_ctx; GQueue sender_reports; // as received via RTCP GQueue rr_time_reports; // as received via RTCP GQueue stats_blocks; // calculated struct ssrc_stats_block *lowest_mos, *highest_mos, average_mos; // contains a running tally of all stats blocks uint16_t no_mos_count; // how many time we where not able to compute MOS due to missing RTT unsigned int last_rtt; // last calculated raw rtt without rtt from opposide side unsigned int last_rtt_xr; // last rtt for both legs retrieved from RTCP-XR BT-7 // input only - tracking for passthrough handling uint32_t last_seq_tracked; uint32_t lost_bits; // sliding bitfield, [0] = ext_seq uint32_t packets_lost; // RTCP cumulative number of packets lost uint32_t duplicates; // for transcoding // input only GHashTable *sequencers; uint32_t jitter, transit; // output only uint16_t seq_diff; }; enum ssrc_dir { // these values must not be used externally SSRC_DIR_INPUT = G_STRUCT_OFFSET(struct ssrc_entry_call, input_ctx), SSRC_DIR_OUTPUT = G_STRUCT_OFFSET(struct ssrc_entry_call, output_ctx), }; struct ssrc_time_item { struct timeval received; uint32_t ntp_middle_bits; // to match up with lsr/dlrr double ntp_ts; // XXX convert to int? }; struct ssrc_sender_report { uint32_t ssrc; uint32_t ntp_msw; uint32_t ntp_lsw; uint32_t timestamp; uint32_t packet_count; uint32_t octet_count; }; struct ssrc_sender_report_item { struct ssrc_time_item time_item; // must be first; struct ssrc_sender_report report; }; struct ssrc_receiver_report { uint32_t from; uint32_t ssrc; unsigned char fraction_lost; uint32_t packets_lost; uint32_t high_seq_received; uint32_t jitter; uint32_t lsr; uint32_t dlsr; }; //struct ssrc_receiver_report_item { // struct timeval received; // struct ssrc_receiver_report report; //}; struct ssrc_xr_rr_time { uint32_t ssrc; uint32_t ntp_msw; uint32_t ntp_lsw; }; struct ssrc_rr_time_item { struct ssrc_time_item time_item; // must be first; }; struct ssrc_xr_dlrr { uint32_t from; uint32_t ssrc; uint32_t lrr; uint32_t dlrr; }; struct ssrc_xr_voip_metrics { uint32_t from; uint32_t ssrc; uint8_t loss_rate; uint8_t discard_rate; uint8_t burst_den; uint8_t gap_den; uint16_t burst_dur; uint16_t gap_dur; uint16_t rnd_trip_delay; uint16_t end_sys_delay; uint8_t signal_lvl; uint8_t noise_lvl; uint8_t rerl; uint8_t gmin; uint8_t r_factor; uint8_t ext_r_factor; uint8_t mos_lq; uint8_t mos_cq; uint8_t rx_config; uint16_t jb_nom; uint16_t jb_max; uint16_t jb_abs_max; }; struct crtt_args { struct ssrc_hash *ht; const struct timeval *tv; int * pt_p; uint32_t ssrc; uint32_t ntp_middle_bits; uint32_t delay; size_t reports_queue_offset; }; void free_ssrc_hash(struct ssrc_hash **); void ssrc_hash_foreach(struct ssrc_hash *, void (*)(void *, void *), void *); struct ssrc_hash *create_ssrc_hash_full(ssrc_create_func_t, void *uptr); // pre-creates one object struct ssrc_hash *create_ssrc_hash_full_fast(ssrc_create_func_t, void *uptr); // doesn't pre-create object struct ssrc_hash *create_ssrc_hash_call(void); void *get_ssrc_full(uint32_t, struct ssrc_hash *, bool *created); // creates new entry if not found INLINE void *get_ssrc(uint32_t ssrc, struct ssrc_hash *ht) { return get_ssrc_full(ssrc, ht, NULL); } struct ssrc_ctx *get_ssrc_ctx(uint32_t, struct ssrc_hash *, enum ssrc_dir, void *ref); // creates new entry if not found void ssrc_sender_report(struct call_media *, const struct ssrc_sender_report *, const struct timeval *); void ssrc_receiver_report(struct call_media *, stream_fd *, const struct ssrc_receiver_report *, const struct timeval *); void ssrc_receiver_rr_time(struct call_media *m, const struct ssrc_xr_rr_time *rr, const struct timeval *); void ssrc_receiver_dlrr(struct call_media *m, const struct ssrc_xr_dlrr *dlrr, const struct timeval *); void ssrc_voip_metrics(struct call_media *m, const struct ssrc_xr_voip_metrics *vm, const struct timeval *); void ssrc_collect_metrics(struct call_media *); void payload_tracker_init(struct payload_tracker *t); void payload_tracker_add(struct payload_tracker *, int); #define ssrc_ctx_put(c) \ do { \ struct ssrc_ctx **__cc = (c); \ if ((__cc) && *(__cc)) { \ obj_put(&(*__cc)->parent->h); \ *(__cc) = NULL; \ } \ } while (0) #define ssrc_ctx_hold(c) \ do { \ if (c) \ obj_hold(&(c)->parent->h); \ } while (0) #endif rtpengine-mr12.5.1.22/include/statistics.h000066400000000000000000000205111474347554000203560ustar00rootroot00000000000000#ifndef STATISTICS_H_ #define STATISTICS_H_ #include "helpers.h" #include "bencode.h" #include "control_ng.h" #include "graphite.h" // "gauge" style stats struct global_stats_gauge { #define F(x) atomic64 x; #include "gauge_stats_fields.inc" #undef F }; // high/low water marks struct global_gauge_min_max { struct global_stats_gauge min; struct global_stats_gauge max; }; // "sampled" style stats struct global_stats_sampled_fields { #define F(x) atomic64 x; #define FA(x, n) atomic64 x[n]; #include "sampled_stats_fields.inc" #undef F #undef FA }; struct global_stats_sampled { struct global_stats_sampled_fields sums; struct global_stats_sampled_fields sums_squared; struct global_stats_sampled_fields counts; }; struct global_sampled_min_max { struct global_stats_sampled_fields min; struct global_stats_sampled_fields max; }; struct global_sampled_avg { struct global_stats_sampled_fields avg; struct global_stats_sampled_fields stddev; }; // "counter" style stats that are incremental and are kept cumulative or per-interval struct global_stats_counter { #define F(x) atomic64 x; #define FA(x, n) atomic64 x[n]; #include "counter_stats_fields.inc" #undef F #undef FA }; struct global_rate_min_max { struct global_stats_counter min; struct global_stats_counter max; }; struct global_rate_min_max_avg { struct global_stats_counter min; struct global_stats_counter max; struct global_stats_counter avg; }; struct codec_stats { char *chain; char *chain_brief; int num_transcoders; // 3 entries: [0] and [1] for per-second stats, [2] for total count // last_tv_sec keeps track of rollovers int last_tv_sec[2]; atomic64 packets_input[3]; atomic64 bytes_input[3]; atomic64 pcm_samples[3]; }; struct stats_metric { char *label; char *descr; char *value_short; char *value_long; char *value_raw; int64_t int_value; double double_value; int is_bracket; int is_close_bracket; int is_brace; int is_follow_up; int is_int; int is_double; const char *prom_name; const char *prom_type; char *prom_label; }; TYPED_GQUEUE(stats_metric, stats_metric) struct call_stats { time_t last_packet; struct stream_stats totals[4]; /* rtp in, rtcp in, rtp out, rtcp out */ }; extern struct timeval rtpe_started; extern mutex_t rtpe_codec_stats_lock; extern codec_stats_ht rtpe_codec_stats; extern struct global_stats_gauge rtpe_stats_gauge; // master values extern struct global_gauge_min_max rtpe_gauge_min_max; // master lifetime min/max #define RTPE_GAUGE_SET_MIN_MAX(field, min_max_struct, val) \ do { \ atomic64_min(&min_max_struct.min.field, val); \ atomic64_max(&min_max_struct.max.field, val); \ } while (0) #define RTPE_GAUGE_SET(field, num) \ do { \ atomic64_set_na(&rtpe_stats_gauge.field, num); \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_gauge_min_max, num); \ if (graphite_is_enabled()) \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_gauge_graphite_min_max, num); \ } while (0) #define RTPE_GAUGE_ADD(field, num) \ do { \ uint64_t __old = atomic64_add_na(&rtpe_stats_gauge.field, num); \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_gauge_min_max, __old + num); \ if (graphite_is_enabled()) \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_gauge_graphite_min_max, __old + num); \ } while (0) #define RTPE_GAUGE_INC(field) RTPE_GAUGE_ADD(field, 1) #define RTPE_GAUGE_DEC(field) RTPE_GAUGE_ADD(field, -1) extern struct global_stats_sampled rtpe_stats_sampled; // master cumulative values extern struct global_sampled_min_max rtpe_sampled_min_max; // master lifetime min/max #define RTPE_STATS_SAMPLE(field, num) \ do { \ atomic64_add_na(&rtpe_stats_sampled.sums.field, num); \ atomic64_add_na(&rtpe_stats_sampled.sums_squared.field, num * num); \ atomic64_inc_na(&rtpe_stats_sampled.counts.field); \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_sampled_min_max, num); \ RTPE_GAUGE_SET_MIN_MAX(field, rtpe_sampled_graphite_min_max, num); \ } while (0) // TODO: ^ skip doing this for graphite if it's not actually enabled #define RTPE_SAMPLE_SFD(field, num, sfd) \ do { \ RTPE_STATS_SAMPLE(field, num); \ if (sfd) { \ struct local_intf *__intf = sfd->local_intf; \ atomic64_add_na(&__intf->stats->sampled.sums.field, num); \ atomic64_add_na(&__intf->stats->sampled.sums_squared.field, num * num); \ atomic64_inc_na(&__intf->stats->sampled.counts.field); \ } \ } while (0) extern struct global_stats_counter *rtpe_stats; // total, cumulative, master extern struct global_stats_counter rtpe_stats_rate; // per-second, calculated once per timer run extern struct global_stats_counter rtpe_stats_intv; // per-second, calculated once per timer run #define RTPE_STATS_ADD(field, num) atomic64_add_na(&rtpe_stats->field, num) #define RTPE_STATS_INC(field) RTPE_STATS_ADD(field, 1) void statistics_update_oneway(call_t *); void statistics_update_ip46_inc_dec(call_t *, int op); void statistics_update_foreignown_dec(call_t *); void statistics_update_foreignown_inc(call_t * c); stats_metric_q *statistics_gather_metrics(struct interface_sampled_rate_stats *); void statistics_free_metrics(stats_metric_q *); G_DEFINE_AUTOPTR_CLEANUP_FUNC(stats_metric_q, statistics_free_metrics) const char *statistics_ng(bencode_item_t *input, bencode_item_t *output); enum thread_looper_action call_rate_stats_updater(void); /** * Calculation of the call rate counters. * If used with the `stats_rate_min_max()` must only be called in advance, so before that. */ INLINE void stats_counters_calc_rate(const struct global_stats_counter *stats, long long run_diff_us, struct global_stats_counter *intv, struct global_stats_counter *rate) { #define F(x) atomic64_calc_rate(&stats->x, run_diff_us, &intv->x, &rate->x); #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "counter_stats_fields.inc" #undef F #undef FA } INLINE void stats_counters_calc_diff(const struct global_stats_counter *stats, struct global_stats_counter *intv, struct global_stats_counter *diff) { #define F(x) atomic64_calc_diff(&stats->x, &intv->x, &diff->x); #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "counter_stats_fields.inc" #undef F #undef FA } /** * Update the running min/max counter `mm` with the newly calculated per-sec rate values `inp`. * If used with the `stats_counters_calc_rate()`, it must be called only after that. */ INLINE void stats_rate_min_max(struct global_rate_min_max *mm, struct global_stats_counter *inp) { #define F(x) \ atomic64_mina(&mm->min.x, &inp->x); \ atomic64_maxa(&mm->max.x, &inp->x); #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "counter_stats_fields.inc" #undef F #undef FA } // sample running min/max from `mm` into `loc` and reset `mm` to zero. // calculate average values in `loc` from `counter_diff` and `time_diff_us` INLINE void stats_rate_min_max_avg_sample(struct global_rate_min_max *mm, struct global_rate_min_max_avg *loc, long long run_diff_us, const struct global_stats_counter *counter_diff) { #define F(x) STAT_MIN_MAX_AVG(x, mm, loc, run_diff_us, counter_diff) #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "counter_stats_fields.inc" #undef F #undef FA } INLINE void stats_sampled_calc_diff(const struct global_stats_sampled *stats, struct global_stats_sampled *intv, struct global_stats_sampled *diff) { #define F(x) STAT_SAMPLED_CALC_DIFF(x, stats, intv, diff) #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "sampled_stats_fields.inc" #undef F #undef FA } // sample running min/max from `mm` into `loc` and reset `mm` to zero. INLINE void stats_sampled_min_max_sample(struct global_sampled_min_max *mm, struct global_sampled_min_max *loc) { #define F(x) STAT_MIN_MAX_RESET_ZERO(x, mm, loc) #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "sampled_stats_fields.inc" #undef F #undef FA } INLINE void stats_sampled_avg(struct global_sampled_avg *loc, const struct global_stats_sampled *diff) { #define F(x) STAT_SAMPLED_AVG_STDDEV(x, loc, diff) #define FA(x, n) for (int i = 0; i < n; i++) { F(x[i]) } #include "sampled_stats_fields.inc" #undef F #undef FA } // sample running min/max from `in_reset` into `out` and reset `in_reset` to the current value. INLINE void stats_gauge_min_max_sample(struct global_gauge_min_max *out, struct global_gauge_min_max *in_reset, const struct global_stats_gauge *cur) { #define F(x) STAT_MIN_MAX(x, out, in_reset, cur) #include "gauge_stats_fields.inc" #undef F } void statistics_init(void); void statistics_free(void); #endif /* STATISTICS_H_ */ rtpengine-mr12.5.1.22/include/stun.h000066400000000000000000000020341474347554000171550ustar00rootroot00000000000000#ifndef _STUN_H_ #define _STUN_H_ #include #include #include #include "compat.h" #include "call.h" #include "str.h" #include "socket.h" #define STUN_COOKIE 0x2112A442UL struct stun_attrs { str username; char *msg_integrity_attr; str msg_integrity; uint32_t priority; char *fingerprint_attr; uint32_t fingerprint; uint64_t tiebreaker; endpoint_t mapped; unsigned int error_code; unsigned int use:1, controlled:1, controlling:1; }; INLINE int is_stun(const str *s) { const unsigned char *b = (const void *) s->s; const uint32_t *u; if (s->len < 20) return 0; if ((b[0] & 0xc0) != 0x00) return 0; if ((b[3] & 0x3) != 0x0) return 0; u = (const void *) &b[4]; if (*u != htonl(STUN_COOKIE)) return 0; return 1; } int stun(const str *, stream_fd *, const endpoint_t *); int stun_binding_request(const endpoint_t *dst, uint32_t transaction[3], str *pwd, str ufrags[2], int controlling, uint64_t tiebreaker, uint32_t priority, socket_t *, int); #endif rtpengine-mr12.5.1.22/include/t38.h000066400000000000000000000041521474347554000166050ustar00rootroot00000000000000#ifndef _T38_H_ #define _T38_H_ struct t38_gateway; struct t38_options { int version; int fec_span; // 1 means no FEC int min_ec_entries; // currently ignored int max_ec_entries; int max_ifp; int max_datagram; unsigned int local_tcf:1; unsigned int fill_bit_removal:1; unsigned int transcoding_mmr:1; unsigned int transcoding_jbig:1; unsigned int no_ecm:1; unsigned int no_v17:1; unsigned int no_v27ter:1; unsigned int no_v29:1; unsigned int no_v34:1; unsigned int no_iaf:1; }; #ifdef WITH_TRANSCODING #include #include #include #include #include #include #include #include "rtplib.h" #include "helpers.h" #include "obj.h" #include "codeclib.h" #include "types.h" struct call_media; struct media_packet; struct media_player; struct t38_gateway { struct obj obj; // use refcount as this struct is shared between two medias mutex_t lock; struct call_media *t38_media; struct call_media *pcm_media; rtp_payload_type pcm_pt; // PCM input for spandsp t38_gateway_state_t *gw; struct t38_options options; // udptl outgoing stuff uint16_t seqnum; GQueue udptl_ec_out; // seq, seq-1, seq-2, ... // udptl incoming stuff packet_sequencer_t sequencer; GHashTable *udptl_fec; // player for PCM data struct media_player *pcm_player; unsigned long long pts; }; void t38_init(void); int t38_gateway_pair(struct call_media *t38_media, struct call_media *pcm_media, const struct t38_options *); void t38_gateway_start(struct t38_gateway *); int t38_gateway_input_samples(struct t38_gateway *, int16_t amp[], int len); int t38_gateway_input_udptl(struct t38_gateway *, const str *); void t38_gateway_stop(struct t38_gateway *); INLINE void t38_gateway_put(struct t38_gateway **tp) { if (!tp || !*tp) return; obj_put(*tp); *tp = NULL; } #else #include "compat.h" // stubs INLINE void t38_init(void) { } INLINE void t38_gateway_start(struct t38_gateway *tg) { } INLINE void t38_gateway_stop(struct t38_gateway *tg) { } INLINE void t38_gateway_put(struct t38_gateway **tp) { } #endif #endif rtpengine-mr12.5.1.22/include/tcp_listener.h000066400000000000000000000022031474347554000206550ustar00rootroot00000000000000#ifndef _TCP_LISTENER_H_ #define _TCP_LISTENER_H_ #include "socket.h" #include "obj.h" #include "helpers.h" #include "containers.h" struct obj; struct streambuf_callback; struct streambuf_stream; TYPED_GHASHTABLE_PROTO(tcp_streams_ht, struct streambuf_stream, struct streambuf_stream) typedef void (*tcp_listener_callback_t)(struct obj *p, socket_t *sock, char *addr, socket_t *); typedef void (*streambuf_callback_t)(struct streambuf_stream *); struct streambuf_listener { socket_t listener; mutex_t lock; tcp_streams_ht streams; }; struct streambuf_stream { struct obj obj; socket_t sock; struct streambuf_listener *listener; struct streambuf_callback *cb; struct obj *parent; char *addr; struct streambuf *inbuf, *outbuf; }; int streambuf_listener_init(struct streambuf_listener *listener, const endpoint_t *ep, streambuf_callback_t newconn_func, streambuf_callback_t newdata_func, streambuf_callback_t closed_func, struct obj *obj); void streambuf_listener_shutdown(struct streambuf_listener *); void streambuf_stream_close(struct streambuf_stream *); void streambuf_stream_shutdown(struct streambuf_stream *); #endif rtpengine-mr12.5.1.22/include/timerthread.h000066400000000000000000000055251474347554000205040ustar00rootroot00000000000000#ifndef _TIMERTHREAD_H_ #define _TIMERTHREAD_H_ #include #include #include "auxlib.h" #include "obj.h" struct timerthread; struct timerthread_thread { struct timerthread *parent; GTree *tree; // XXX investigate other structures mutex_t lock; cond_t cond; struct timeval next_wake; struct timerthread_obj *obj; }; struct timerthread { unsigned int num_threads; struct timerthread_thread *threads; unsigned int thread_idx; void (*func)(void *); }; struct timerthread_obj { struct obj obj; struct timerthread *tt; struct timerthread_thread *thread; // set once and then static struct timeval next_check; /* protected by ->lock */ struct timeval last_run; /* ditto */ }; struct timerthread_queue { struct timerthread_obj tt_obj; const char *type; mutex_t lock; GTree *entries; void (*run_now_func)(struct timerthread_queue *, void *); void (*run_later_func)(struct timerthread_queue *, void *); void (*free_func)(void *); void (*entry_free_func)(void *); }; struct timerthread_queue_entry { struct timeval when; unsigned int idx; // for equal timestamps void *source; // opaque char __rest[0]; }; void timerthread_init(struct timerthread *, unsigned int, void (*)(void *)); void timerthread_free(struct timerthread *); void timerthread_launch(struct timerthread *, const char *scheduler, int prio, const char *name); void timerthread_obj_schedule_abs_nl(struct timerthread_obj *, const struct timeval *); void timerthread_obj_deschedule(struct timerthread_obj *); // run_now_func = called if newly inserted object can be processed immediately by timerthread_queue_push within its calling context // run_later_func = called from the separate timer thread void *timerthread_queue_new(const char *type, size_t size, struct timerthread *tt, void (*run_now_func)(struct timerthread_queue *, void *), void (*run_later_func)(struct timerthread_queue *, void *), // optional void (*free_func)(void *), void (*entry_free_func)(void *)); void timerthread_queue_run(void *ptr); void timerthread_queue_flush_data(void *ptr); void timerthread_queue_push(struct timerthread_queue *, struct timerthread_queue_entry *); unsigned int timerthread_queue_flush(struct timerthread_queue *, void *); INLINE struct timerthread_thread *timerthread_get_next(struct timerthread *tt) { unsigned int idx = g_atomic_int_add(&tt->thread_idx, 1); idx = idx % tt->num_threads; // XXX check perf without % return &tt->threads[idx]; } INLINE void timerthread_obj_schedule_abs(struct timerthread_obj *tt_obj, const struct timeval *tv) { if (!tt_obj) return; struct timerthread_thread *tt = tt_obj->thread; if (!tt) { tt = timerthread_get_next(tt_obj->tt); g_atomic_pointer_compare_and_exchange(&tt_obj->thread, NULL, tt); } tt = tt_obj->thread; mutex_lock(&tt->lock); timerthread_obj_schedule_abs_nl(tt_obj, tv); mutex_unlock(&tt->lock); } #endif rtpengine-mr12.5.1.22/include/types.h000066400000000000000000000036611474347554000173370ustar00rootroot00000000000000#ifndef __TYPES__H__ #define __TYPES__H__ #include #include "socket.h" typedef struct sdp_ng_flags sdp_ng_flags; typedef struct stats_metric stats_metric; typedef struct ng_buffer ng_buffer; typedef struct call call_t; typedef struct stream_fd stream_fd; typedef struct rtp_payload_type rtp_payload_type; typedef struct sdp_origin sdp_origin; struct network_address { str network_type; str address_type; str address; sockaddr_t parsed; }; struct sdp_origin { str username; str session_id; str version_str; struct network_address address; unsigned long long version_num; size_t version_output_pos; unsigned int parsed:1; }; typedef struct sdp_origin sdp_origin; union sdp_attr_print_arg { struct call_media *cm; struct call_monologue *ml; } __attribute__ ((__transparent_union__)); typedef void sdp_attr_print_f(GString *, union sdp_attr_print_arg, const sdp_ng_flags *flags); #include "containers.h" struct sdp_session; TYPED_GQUEUE(sdp_sessions, struct sdp_session) struct stream_params; TYPED_GQUEUE(sdp_streams, struct stream_params) struct ice_candidate; TYPED_GQUEUE(candidate, struct ice_candidate) G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(candidate_q, candidate_q_clear) struct ice_candidate_pair; TYPED_GQUEUE(candidate_pair, struct ice_candidate_pair) struct codec_handler; TYPED_GHASHTABLE_PROTO(codec_handlers_ht, struct codec_handler, struct codec_handler) TYPED_GQUEUE(codec_handlers, struct codec_handler) struct codec_packet; TYPED_GQUEUE(codec_packet, struct codec_packet) struct packet_stream; TYPED_GQUEUE(packet_stream, struct packet_stream) struct sink_handler; TYPED_GQUEUE(sink_handler, struct sink_handler) struct dtmf_event; TYPED_GQUEUE(dtmf_event, struct dtmf_event) struct codec_stats; TYPED_GHASHTABLE_PROTO(codec_stats_ht, char, struct codec_stats) TYPED_GQUEUE(call, call_t) struct sdp_attr; TYPED_GQUEUE(sdp_attr, struct sdp_attr) struct intf_config; TYPED_GQUEUE(intf_config, struct intf_config) #endif rtpengine-mr12.5.1.22/include/udp_listener.h000066400000000000000000000011121474347554000206550ustar00rootroot00000000000000#ifndef _UDP_LISTENER_H_ #define _UDP_LISTENER_H_ #include #include "poller.h" #include "str.h" #include "socket.h" #include "obj.h" #include "call.h" #define MAX_UDP_LENGTH 0xffff struct udp_buffer { struct obj obj; char buf[MAX_UDP_LENGTH + RTP_BUFFER_TAIL_ROOM + RTP_BUFFER_HEAD_ROOM + 1]; str str; endpoint_t sin; sockaddr_t local_addr; char addr[64]; socket_t *listener; }; typedef void (*udp_listener_callback_t)(struct obj *p, struct udp_buffer *); int udp_listener_init(socket_t *, const endpoint_t *, udp_listener_callback_t, struct obj *); #endif rtpengine-mr12.5.1.22/include/websocket.h000066400000000000000000000034221474347554000201540ustar00rootroot00000000000000#ifndef __WEBSOCKET_H__ #define __WEBSOCKET_H__ #include #include "str.h" struct websocket_conn; struct websocket_message; enum lws_write_protocol; struct janus_session; typedef const char *(*websocket_message_func_t)(struct websocket_message *); struct websocket_message { struct websocket_conn *wc; char *uri; enum { M_UNKNOWN = 0, M_WEBSOCKET, M_GET, M_POST, M_OPTIONS, } method; enum { CT_UNKNOWN = 0, CT_JSON, CT_NG, } content_type; GString *body; websocket_message_func_t func; }; int websocket_init(void); void websocket_start(void); void websocket_stop(void); // appends to output buffer without triggering a response void websocket_queue_raw(struct websocket_conn *wc, const char *msg, size_t len); // adds data to output buffer (can be null) and optionally triggers specified response void websocket_write_raw(struct websocket_conn *wc, const char *msg, size_t len, enum lws_write_protocol protocol, bool done); // adds data to output buffer (can be null) and triggers specified response: http or binary websocket void websocket_write_http_len(struct websocket_conn *wc, const char *msg, size_t len, bool done); void websocket_write_http(struct websocket_conn *wc, const char *msg, bool done); void websocket_write_text(struct websocket_conn *wc, const char *msg, bool done); void websocket_write_binary(struct websocket_conn *wc, const char *msg, size_t len, bool done); // num bytes in output buffer size_t websocket_queue_len(struct websocket_conn *wc); // write HTTP response headers void websocket_http_response(struct websocket_conn *wc, int status, const char *content_type, ssize_t content_length); // mark a janus session as owned by this transport void websocket_conn_add_session(struct websocket_conn *, struct janus_session *); #endif rtpengine-mr12.5.1.22/kernel-module/000077500000000000000000000000001474347554000171345ustar00rootroot00000000000000rtpengine-mr12.5.1.22/kernel-module/.gitignore000066400000000000000000000001241474347554000211210ustar00rootroot00000000000000.tmp_versions *.o *.ko *.mod.c modules.order Module.symvers .*.cmd xt_RTPENGINE.mod rtpengine-mr12.5.1.22/kernel-module/Makefile000066400000000000000000000024331474347554000205760ustar00rootroot00000000000000PWD := $(shell pwd) KSRC ?= /lib/modules/$(shell uname -r)/build KBUILD := $(KSRC) M ?= $(PWD) ifeq ($(RTPENGINE_VERSION),) DPKG_PRSCHNGLG= $(shell which dpkg-parsechangelog 2>/dev/null) DEB_CHANGELOG=$(shell test -f $(M)/../debian/changelog && echo $(M)/../debian/changelog || echo $(M)/debian/changelog) ifneq ($(DPKG_PRSCHNGLG),) DPKG_PRSCHNGLG=$(shell dpkg-parsechangelog -l$(DEB_CHANGELOG) | awk '/^Version: / {print $$2}') endif GIT_BR_COMMIT=git-$(shell cd $(M) && git rev-parse --abbrev-ref --symbolic-full-name HEAD 2> /dev/null)-$(shell cd $(M) && git rev-parse --short HEAD 2> /dev/null) ifneq ($(DPKG_PRSCHNGLG),) RTPENGINE_VERSION+=$(DPKG_PRSCHNGLG) endif ifneq ($(GIT_BR_COMMIT),git--) RTPENGINE_VERSION+=$(GIT_BR_COMMIT) endif ifeq ($(RTPENGINE_VERSION),) RTPENGINE_VERSION+=undefined endif endif EXTRA_CFLAGS+= -DRTPENGINE_VERSION="\"$(RTPENGINE_VERSION)\"" obj-m += xt_RTPENGINE.o .PHONY: modules clean patch install modules: $(MAKE) -C $(KBUILD) M=$(PWD) O=$(KBUILD) modules clean: $(MAKE) -C $(KBUILD) M=$(PWD) clean || true patch: ../utils/patch-kernel magic "$(PWD)" "$(KERNEL)" "$(RTPENGINE_VERSION)" install: install -D xt_RTPENGINE.ko $(DESTDIR)/lib/modules/$(shell uname -r)/updates/xt_RTPENGINE.ko depmod -a rtpengine-mr12.5.1.22/kernel-module/common_counter_stats_fields.inc000066400000000000000000000001031474347554000254140ustar00rootroot00000000000000F(packets_kernel) F(bytes_kernel) F(errors_kernel) F(packets_lost) rtpengine-mr12.5.1.22/kernel-module/common_stats.h000066400000000000000000000032661474347554000220220ustar00rootroot00000000000000#ifndef _RTPE_COMMON_STATS_H_ #define _RTPE_COMMON_STATS_H_ #ifdef __KERNEL__ typedef atomic64_t atomic64; static_assert(sizeof(atomic64_t) == sizeof(int64_t), "atomic64_t != int64_t"); static_assert(sizeof(atomic_t) == sizeof(int), "atomic_t != int"); #else typedef int atomic_t; #endif struct interface_counter_stats_dir { #define F(n) atomic64 n; #include "interface_counter_stats_fields_dir.inc" #undef F }; struct interface_counter_stats { #define F(n) atomic64 n; #include "interface_counter_stats_fields.inc" #undef F }; struct interface_sampled_stats_fields { #define F(n) atomic64 n; #include "interface_sampled_stats_fields.inc" #undef F }; struct interface_sampled_stats { struct interface_sampled_stats_fields sums; struct interface_sampled_stats_fields sums_squared; struct interface_sampled_stats_fields counts; }; struct interface_sampled_stats_avg { struct interface_sampled_stats_fields avg; struct interface_sampled_stats_fields stddev; }; struct interface_stats_block { struct interface_counter_stats_dir in, out; struct interface_counter_stats s; struct interface_sampled_stats sampled; }; struct stream_stats { atomic64 packets; atomic64 bytes; atomic64 errors; atomic64 last_packet; atomic_t tos; }; struct rtp_stats { unsigned int payload_type; uint32_t clock_rate; atomic64 packets; atomic64 bytes; atomic64 kernel_packets; atomic64 kernel_bytes; }; struct ssrc_stats { atomic64 packets; atomic64 bytes; atomic_t timestamp; atomic_t ext_seq; atomic_t rtcp_seq; uint32_t lost_bits; // sliding bitfield, [0] = ext_seq atomic_t total_lost; atomic_t transit; atomic_t jitter; atomic64 last_packet; atomic_t last_pt; }; #endif rtpengine-mr12.5.1.22/kernel-module/interface_counter_stats_fields.inc000066400000000000000000000000361474347554000260710ustar00rootroot00000000000000F(packets_lost) F(duplicates) rtpengine-mr12.5.1.22/kernel-module/interface_counter_stats_fields_dir.inc000066400000000000000000000000361474347554000267270ustar00rootroot00000000000000F(packets) F(bytes) F(errors) rtpengine-mr12.5.1.22/kernel-module/interface_sampled_stats_fields.inc000066400000000000000000000001111474347554000260310ustar00rootroot00000000000000F(mos) F(jitter) F(rtt_e2e) F(rtt_dsct) F(packetloss) F(jitter_measured) rtpengine-mr12.5.1.22/kernel-module/kernel_counter_stats_fields.inc000066400000000000000000000000531474347554000254100ustar00rootroot00000000000000#include "common_counter_stats_fields.inc" rtpengine-mr12.5.1.22/kernel-module/other_counter_stats_fields.inc000066400000000000000000000000001474347554000252410ustar00rootroot00000000000000rtpengine-mr12.5.1.22/kernel-module/xt_RTPENGINE.c000066400000000000000000005137151474347554000213620ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef CONFIG_BTREE #include #define KERNEL_PLAYER #else #warning "Kernel without CONFIG_BTREE - kernel media player unavailable" #endif #include "xt_RTPENGINE.h" MODULE_LICENSE("GPL"); #if LINUX_VERSION_CODE >= KERNEL_VERSION(6,13,0) MODULE_IMPORT_NS("CRYPTO_INTERNAL"); #elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) MODULE_IMPORT_NS(CRYPTO_INTERNAL); #endif MODULE_ALIAS("ipt_RTPENGINE"); MODULE_ALIAS("ip6t_RTPENGINE"); // fix for older compilers #ifndef RHEL_RELEASE_VERSION #define RHEL_RELEASE_VERSION(x,y) 0 #endif #define MAX_ID 64 /* - 1 */ #define MAX_SKB_TAIL_ROOM (sizeof(((struct rtpengine_srtp *) 0)->mki) + 20 + 16) #define MIPF "%i:%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x:%u" #define MIPP(x) (x).family, \ (x).u.u8[0], \ (x).u.u8[1], \ (x).u.u8[2], \ (x).u.u8[3], \ (x).u.u8[4], \ (x).u.u8[5], \ (x).u.u8[6], \ (x).u.u8[7], \ (x).u.u8[8], \ (x).u.u8[9], \ (x).u.u8[10], \ (x).u.u8[11], \ (x).u.u8[12], \ (x).u.u8[13], \ (x).u.u8[14], \ (x).u.u8[15], \ (x).port // RFC 3711 non-complience (4 vs 6, see rtcp.c) #define SRTCP_R_LENGTH 6 #if 0 #define DBG(fmt, ...) printk(KERN_DEBUG "[PID %i line %i] " fmt, current ? current->pid : -1, \ __LINE__, ##__VA_ARGS__) #else #define DBG(x...) ((void)0) #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) #define PAR_STATE_NET(p) (p)->state->net #else /* minimum 4.4.x */ #define PAR_STATE_NET(p) (p)->net #endif #if 0 #define _s_lock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] acquiring lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ spin_lock_irqsave(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has acquired lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #define _s_unlock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] is unlocking %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ spin_unlock_irqrestore(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has released lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #define _r_lock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] acquiring read lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ read_lock_irqsave(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has acquired read lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #define _r_unlock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] is read unlocking %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ read_unlock_irqrestore(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has released read lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #define _w_lock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] acquiring write lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ write_lock_irqsave(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has acquired write lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #define _w_unlock(l, f) do { \ printk(KERN_DEBUG "[PID %i %s:%i] is write unlocking %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ write_unlock_irqrestore(l, f); \ printk(KERN_DEBUG "[PID %i %s:%i] has released write lock %s\n", \ current ? current->pid : -1, \ __FUNCTION__, __LINE__, #l); \ } while (0) #else #define _s_lock(l, f) spin_lock_irqsave(l, f) #define _s_unlock(l, f) spin_unlock_irqrestore(l, f) #define _r_lock(l, f) read_lock_irqsave(l, f) #define _r_unlock(l, f) read_unlock_irqrestore(l, f) #define _w_lock(l, f) write_lock_irqsave(l, f) #define _w_unlock(l, f) write_unlock_irqrestore(l, f) #endif #if defined(RHEL_RELEASE_CODE) && LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0) && \ RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9,1) #define PDE_DATA(i) pde_data(i) #elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) #define PDE_DATA(i) pde_data(i) #endif struct re_hmac; struct re_cipher; struct rtp_parsed; struct re_crypto_context; struct re_auto_array; struct re_call; struct re_stream; struct rtpengine_table; struct crypto_aead; struct rtpengine_output; static kuid_t proc_kuid; static uint proc_uid = 0; module_param(proc_uid, uint, 0444); MODULE_PARM_DESC(proc_uid, "rtpengine procfs tree user id"); static kgid_t proc_kgid; static uint proc_gid = 0; module_param(proc_gid, uint, 0444); MODULE_PARM_DESC(proc_gid, "rtpengine procfs tree group id"); static int proc_mask; #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0) module_param(proc_mask, hexint, 0444); #else module_param(proc_mask, uint, 0444); #endif MODULE_PARM_DESC(proc_mask, "rtpengine procfs tree mode mask"); static uint stream_packets_list_limit = 10; module_param(stream_packets_list_limit, uint, 0444); MODULE_PARM_DESC(stream_packets_list_limit, "maximum number of packets to retain for intercept streams"); static bool log_errors = 0; module_param(log_errors, bool, 0644); MODULE_PARM_DESC(log_errors, "generate kernel log lines from forwarding errors"); #define log_err(fmt, ...) do { if (log_errors) printk(KERN_NOTICE "rtpengine[%s:%i]: " fmt, \ __FUNCTION__, __LINE__, ##__VA_ARGS__); } while (0) static ssize_t proc_control_read(struct file *, char __user *, size_t, loff_t *); static ssize_t proc_control_write(struct file *, const char __user *, size_t, loff_t *); static int proc_control_open(struct inode *, struct file *); static int proc_control_close(struct inode *, struct file *); static int proc_control_mmap(struct file *, struct vm_area_struct *); static ssize_t proc_status(struct file *, char __user *, size_t, loff_t *); static ssize_t proc_main_control_write(struct file *, const char __user *, size_t, loff_t *); static int proc_generic_open_modref(struct inode *, struct file *); static int proc_generic_open_stream_modref(struct inode *inode, struct file *file); static int proc_generic_close_modref(struct inode *, struct file *); static int proc_generic_seqrelease_modref(struct inode *inode, struct file *file); static int proc_list_open(struct inode *, struct file *); static void *proc_list_start(struct seq_file *, loff_t *); static void proc_list_stop(struct seq_file *, void *); static void *proc_list_next(struct seq_file *, void *, loff_t *); static int proc_list_show(struct seq_file *, void *); static int proc_main_list_open(struct inode *, struct file *); static void *proc_main_list_start(struct seq_file *, loff_t *); static void proc_main_list_stop(struct seq_file *, void *); static void *proc_main_list_next(struct seq_file *, void *, loff_t *); static int proc_main_list_show(struct seq_file *, void *); static int proc_stream_open(struct inode *i, struct file *f); static int proc_stream_close(struct inode *i, struct file *f); static ssize_t proc_stream_read(struct file *f, char __user *b, size_t l, loff_t *o); static unsigned int proc_stream_poll(struct file *f, struct poll_table_struct *p); static void table_put(struct rtpengine_table *); static struct rtpengine_target *get_target(struct rtpengine_table *, const struct re_address *); static int is_valid_address(const struct re_address *rea); static int aes_f8_session_key_init(struct re_crypto_context *, const struct rtpengine_srtp *); static int srtp_encrypt_aes_cm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtcp_encrypt_aes_cm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtp_encrypt_aes_f8(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtcp_encrypt_aes_f8(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtp_encrypt_aes_gcm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtcp_encrypt_aes_gcm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtp_decrypt_aes_gcm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int srtcp_decrypt_aes_gcm(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); static int send_proxy_packet_output(struct sk_buff *skb, struct rtpengine_target *g, int rtp_pt_idx, struct rtpengine_output *o, struct rtp_parsed *rtp, int ssrc_idx, const struct xt_action_param *par); static int send_proxy_packet(struct sk_buff *skb, struct re_address *src, struct re_address *dst, unsigned char tos, const struct xt_action_param *par); static uint32_t proxy_packet_srtp_encrypt(struct sk_buff *skb, struct re_crypto_context *ctx, struct rtpengine_srtp *srtp, struct rtp_parsed *rtp, int ssrc_idx, struct ssrc_stats **ssrc_stats); static void call_put(struct re_call *call); static void del_stream(struct re_stream *stream, struct rtpengine_table *); static void del_call(struct re_call *call, struct rtpengine_table *); static inline int bitfield_set(unsigned long *bf, unsigned int i); static inline int bitfield_clear(unsigned long *bf, unsigned int i); // mirror global_stats_counter from userspace struct global_stats_counter { #define F(x) atomic64_t x; #include "kernel_counter_stats_fields.inc" #undef F }; struct re_crypto_context { spinlock_t lock; /* protects roc and last_*_index */ unsigned char session_key[32]; unsigned char session_salt[14]; unsigned char session_auth_key[20]; struct crypto_cipher *tfm[2]; struct crypto_shash *shash; struct crypto_aead *aead; const struct re_cipher *cipher; const struct re_hmac *hmac; }; struct rtpengine_output { struct rtpengine_output_info output; struct re_crypto_context encrypt_rtp; struct re_crypto_context encrypt_rtcp; }; struct rtpengine_target { atomic_t refcnt; uint32_t table; struct rtpengine_target_info target; unsigned int last_pt; // index into pt_input[] and pt_output[] spinlock_t ssrc_stats_lock; struct re_crypto_context decrypt_rtp; struct re_crypto_context decrypt_rtcp; rwlock_t outputs_lock; struct rtpengine_output *outputs; unsigned int num_rtp_destinations; unsigned int outputs_unfilled; // only ever decreases }; struct re_bitfield { unsigned long b[256 / (sizeof(unsigned long) * 8)]; unsigned int used; }; struct re_bucket { struct re_bitfield ports_lo_bf; struct rtpengine_target *ports_lo[256]; }; struct re_dest_addr { struct re_address destination; struct re_bitfield ports_hi_bf; struct re_bucket *ports_hi[256]; }; struct re_dest_addr_hash { struct re_bitfield addrs_bf; struct re_dest_addr *addrs[256]; }; struct re_auto_array_free_list { struct list_head list_entry; unsigned int index; }; struct re_auto_array { rwlock_t lock; void **array; unsigned int array_len; unsigned long *used_bitfield; struct list_head free_list; }; struct re_call { atomic_t refcnt; struct rtpengine_call_info info; unsigned int table_id; u32 hash_bucket; int deleted; /* protected by calls.lock */ struct proc_dir_entry *root; struct list_head table_entry; /* protected by calls.lock */ struct hlist_node calls_hash_entry; struct list_head streams; /* protected by streams.lock */ }; struct re_stream_packet { struct list_head list_entry; unsigned int buflen; struct sk_buff *skbuf; unsigned char buf[]; }; struct re_stream { atomic_t refcnt; struct rtpengine_stream_info info; u32 hash_bucket; struct proc_dir_entry *file; struct re_call *call; /* holds a reference */ struct list_head call_entry; /* protected by streams.lock */ struct hlist_node streams_hash_entry; spinlock_t packet_list_lock; struct list_head packet_list; unsigned int list_count; wait_queue_head_t read_wq; wait_queue_head_t close_wq; int eof; /* protected by packet_list_lock */ }; #define RE_HASH_BITS 8 /* make configurable? */ struct rtpengine_table { atomic_t refcnt; rwlock_t target_lock; pid_t pid; unsigned int id; struct proc_dir_entry *proc_root; struct proc_dir_entry *proc_status; struct proc_dir_entry *proc_control; struct proc_dir_entry *proc_list; struct proc_dir_entry *proc_calls; struct re_dest_addr_hash dest_addr_hash; unsigned int num_targets; struct list_head calls; /* protected by calls.lock */ spinlock_t calls_hash_lock[1 << RE_HASH_BITS]; struct hlist_head calls_hash[1 << RE_HASH_BITS]; spinlock_t streams_hash_lock[1 << RE_HASH_BITS]; struct hlist_head streams_hash[1 << RE_HASH_BITS]; spinlock_t shm_lock; struct list_head shm_list; struct global_stats_counter *rtpe_stats; spinlock_t player_lock; struct list_head play_streams; unsigned int num_play_streams; struct list_head packet_streams; unsigned int num_packet_streams; }; struct re_cipher { enum rtpengine_cipher id; const char *name; const char *tfm_name; const char *aead_name; int (*decrypt_rtp)(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); int (*encrypt_rtp)(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); int (*decrypt_rtcp)(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); int (*encrypt_rtcp)(struct re_crypto_context *, struct rtpengine_srtp *, struct rtp_parsed *, uint32_t *); int (*session_key_init)(struct re_crypto_context *, const struct rtpengine_srtp *); }; struct re_hmac { enum rtpengine_hmac id; const char *name; const char *tfm_name; }; struct re_shm { void *head; size_t size; unsigned int order; struct list_head list_entry; }; /* XXX shared */ struct rtp_header { unsigned char v_p_x_cc; unsigned char m_pt; uint16_t seq_num; uint32_t timestamp; uint32_t ssrc; uint32_t csrc[]; } __attribute__ ((packed)); struct rtcp_header { unsigned char v_p_x_cc; unsigned char pt; uint16_t length; uint32_t ssrc; } __attribute__ ((packed)); struct rtp_extension { uint16_t undefined; uint16_t length; } __attribute__ ((packed)); struct rtp_parsed { union { struct rtp_header *rtp_header; struct rtcp_header *rtcp_header; }; unsigned int header_len; unsigned char *payload; unsigned int payload_len; int ok; int rtcp; }; #ifdef KERNEL_PLAYER struct play_stream_packet { struct list_head list; ktime_t delay; uint32_t ts; uint32_t duration_ts; uint16_t seq; //struct sk_buff *skb; char *data; size_t len; }; struct play_stream_packets { atomic_t refcnt; rwlock_t lock; struct list_head packets; unsigned int len; unsigned int table_id; struct list_head table_entry; unsigned int idx; }; struct play_stream { spinlock_t lock; atomic_t refcnt; unsigned int idx; struct rtpengine_play_stream_info info; struct re_crypto_context encrypt; struct play_stream_packets *packets; ktime_t start_time; struct play_stream_packet *position; struct timer_thread *timer_thread; uint64_t tree_index; unsigned int table_id; struct list_head table_entry; }; struct timer_thread { struct list_head list; unsigned int idx; struct task_struct *task; wait_queue_head_t queue; atomic_t shutdown; spinlock_t tree_lock; // XXX use mutex? struct btree_head64 tree; // timer entries // XXX use rbtree? bool tree_added; struct play_stream *scheduled; ktime_t scheduled_at; }; static void free_packet_stream(struct play_stream_packets *stream); static void free_play_stream_packet(struct play_stream_packet *p); static void free_play_stream(struct play_stream *s); static void do_stop_stream(struct play_stream *stream); #endif static struct proc_dir_entry *my_proc_root; static struct proc_dir_entry *proc_list; static struct proc_dir_entry *proc_control; static struct rtpengine_table *table[MAX_ID]; static rwlock_t table_lock; static struct re_auto_array calls; static struct re_auto_array streams; #ifdef KERNEL_PLAYER static rwlock_t media_player_lock; static struct play_stream_packets **stream_packets; static unsigned int num_stream_packets; static atomic_t last_stream_packets_idx; static struct play_stream **play_streams; static unsigned int num_play_streams; static atomic_t last_play_stream_idx; static struct timer_thread **timer_threads; static unsigned int num_timer_threads; static atomic_t last_timer_thread_idx; #endif #if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) # define PROC_OP_STRUCT file_operations # define PROC_OWNER \ .owner = THIS_MODULE, # define PROC_READ read # define PROC_WRITE write # define PROC_OPEN open # define PROC_RELEASE release # define PROC_LSEEK llseek # define PROC_POLL poll # define PROC_MMAP mmap #else # define PROC_OP_STRUCT proc_ops # define PROC_OWNER # define PROC_READ proc_read # define PROC_WRITE proc_write # define PROC_OPEN proc_open # define PROC_RELEASE proc_release # define PROC_LSEEK proc_lseek # define PROC_POLL proc_poll # define PROC_MMAP proc_mmap #endif static const struct PROC_OP_STRUCT proc_control_ops = { PROC_OWNER .PROC_READ = proc_control_read, .PROC_WRITE = proc_control_write, .PROC_OPEN = proc_control_open, .PROC_RELEASE = proc_control_close, .PROC_MMAP = proc_control_mmap, }; static const struct PROC_OP_STRUCT proc_main_control_ops = { PROC_OWNER .PROC_WRITE = proc_main_control_write, .PROC_OPEN = proc_generic_open_stream_modref, .PROC_RELEASE = proc_generic_close_modref, }; static const struct PROC_OP_STRUCT proc_status_ops = { PROC_OWNER .PROC_READ = proc_status, .PROC_OPEN = proc_generic_open_modref, .PROC_RELEASE = proc_generic_close_modref, }; static const struct PROC_OP_STRUCT proc_list_ops = { PROC_OWNER .PROC_OPEN = proc_list_open, .PROC_READ = seq_read, .PROC_LSEEK = seq_lseek, .PROC_RELEASE = proc_generic_seqrelease_modref, }; static const struct seq_operations proc_list_seq_ops = { .start = proc_list_start, .next = proc_list_next, .stop = proc_list_stop, .show = proc_list_show, }; static const struct PROC_OP_STRUCT proc_main_list_ops = { PROC_OWNER .PROC_OPEN = proc_main_list_open, .PROC_READ = seq_read, .PROC_LSEEK = seq_lseek, .PROC_RELEASE = proc_generic_seqrelease_modref, }; static const struct seq_operations proc_main_list_seq_ops = { .start = proc_main_list_start, .next = proc_main_list_next, .stop = proc_main_list_stop, .show = proc_main_list_show, }; static const struct PROC_OP_STRUCT proc_stream_ops = { PROC_OWNER .PROC_READ = proc_stream_read, .PROC_POLL = proc_stream_poll, .PROC_OPEN = proc_stream_open, .PROC_RELEASE = proc_stream_close, }; static const struct re_cipher re_ciphers[] = { [REC_INVALID] = { .id = REC_INVALID, .name = NULL, }, [REC_NULL] = { .id = REC_NULL, .name = "NULL", }, [REC_AES_CM_128] = { .id = REC_AES_CM_128, .name = "AES-CM-128", .tfm_name = "aes", .decrypt_rtp = srtp_encrypt_aes_cm, .encrypt_rtp = srtp_encrypt_aes_cm, .decrypt_rtcp = srtcp_encrypt_aes_cm, .encrypt_rtcp = srtcp_encrypt_aes_cm, }, [REC_AES_F8] = { .id = REC_AES_F8, .name = "AES-F8", .tfm_name = "aes", .decrypt_rtp = srtp_encrypt_aes_f8, .encrypt_rtp = srtp_encrypt_aes_f8, .decrypt_rtcp = srtcp_encrypt_aes_f8, .encrypt_rtcp = srtcp_encrypt_aes_f8, .session_key_init = aes_f8_session_key_init, }, [REC_AES_CM_192] = { .id = REC_AES_CM_192, .name = "AES-CM-192", .tfm_name = "aes", .decrypt_rtp = srtp_encrypt_aes_cm, .encrypt_rtp = srtp_encrypt_aes_cm, .decrypt_rtcp = srtcp_encrypt_aes_cm, .encrypt_rtcp = srtcp_encrypt_aes_cm, }, [REC_AES_CM_256] = { .id = REC_AES_CM_256, .name = "AES-CM-256", .tfm_name = "aes", .decrypt_rtp = srtp_encrypt_aes_cm, .encrypt_rtp = srtp_encrypt_aes_cm, .decrypt_rtcp = srtcp_encrypt_aes_cm, .encrypt_rtcp = srtcp_encrypt_aes_cm, }, [REC_AEAD_AES_GCM_128] = { .id = REC_AEAD_AES_GCM_128, .name = "AEAD-AES-GCM-128", .aead_name = "gcm(aes)", .decrypt_rtp = srtp_decrypt_aes_gcm, .encrypt_rtp = srtp_encrypt_aes_gcm, .decrypt_rtcp = srtcp_decrypt_aes_gcm, .encrypt_rtcp = srtcp_encrypt_aes_gcm, }, [REC_AEAD_AES_GCM_256] = { .id = REC_AEAD_AES_GCM_256, .name = "AEAD-AES-GCM-256", .aead_name = "gcm(aes)", .decrypt_rtp = srtp_decrypt_aes_gcm, .encrypt_rtp = srtp_encrypt_aes_gcm, .decrypt_rtcp = srtcp_decrypt_aes_gcm, .encrypt_rtcp = srtcp_encrypt_aes_gcm, }, }; static const struct re_hmac re_hmacs[] = { [REH_INVALID] = { .id = REH_INVALID, .name = NULL, }, [REH_NULL] = { .id = REH_NULL, .name = "NULL", }, [REH_HMAC_SHA1] = { .id = REH_HMAC_SHA1, .name = "HMAC-SHA1", .tfm_name = "hmac(sha1)", }, }; static const char *re_msm_strings[] = { [MSM_IGNORE] = "", [MSM_DROP] = "drop", [MSM_PROPAGATE] = "propagate", }; /* must already be initialized to zero */ static void auto_array_init(struct re_auto_array *a) { rwlock_init(&a->lock); INIT_LIST_HEAD(&a->free_list); } /* lock must be held */ static void set_auto_array_index(struct re_auto_array *a, unsigned int idx, void *ptr) { a->array[idx] = ptr; bitfield_set(a->used_bitfield, idx); } /* lock must be held */ static void auto_array_clear_index(struct re_auto_array *a, unsigned int idx) { struct re_auto_array_free_list *fl; bitfield_clear(a->used_bitfield, idx); a->array[idx] = NULL; fl = kmalloc(sizeof(*fl), GFP_ATOMIC); if (!fl) return; DBG("adding %u to free list\n", idx); fl->index = idx; list_add(&fl->list_entry, &a->free_list); } /* lock must be held */ static unsigned int pop_free_list_entry(struct re_auto_array *a) { unsigned int ret; struct re_auto_array_free_list *fl; fl = list_first_entry(&a->free_list, struct re_auto_array_free_list, list_entry); ret = fl->index; list_del(&fl->list_entry); kfree(fl); DBG("popped %u from free list\n", ret); return ret; } static void auto_array_free(struct re_auto_array *a) { if (a->array) kfree(a->array); if (a->used_bitfield) kfree(a->used_bitfield); while (!list_empty(&a->free_list)) pop_free_list_entry(a); } static struct rtpengine_table *new_table(void) { struct rtpengine_table *t; unsigned int i; DBG("Creating new table\n"); if (!try_module_get(THIS_MODULE)) return NULL; t = kzalloc(sizeof(*t), GFP_KERNEL); if (!t) { module_put(THIS_MODULE); return NULL; } atomic_set(&t->refcnt, 1); rwlock_init(&t->target_lock); INIT_LIST_HEAD(&t->calls); INIT_LIST_HEAD(&t->shm_list); spin_lock_init(&t->shm_lock); INIT_LIST_HEAD(&t->packet_streams); INIT_LIST_HEAD(&t->play_streams); t->id = -1; spin_lock_init(&t->player_lock); for (i = 0; i < ARRAY_SIZE(t->calls_hash); i++) { INIT_HLIST_HEAD(&t->calls_hash[i]); spin_lock_init(&t->calls_hash_lock[i]); } for (i = 0; i < ARRAY_SIZE(t->streams_hash); i++) { INIT_HLIST_HEAD(&t->streams_hash[i]); spin_lock_init(&t->streams_hash_lock[i]); } return t; } static inline void __ref_get(void *p, atomic_t *refcnt) { DBG("ref_get(%p) - refcnt is %u\n", p, atomic_read(refcnt)); atomic_inc(refcnt); } #define ref_get(o) __ref_get(o, &(o)->refcnt) static inline struct proc_dir_entry *proc_mkdir_user(const char *name, umode_t mode, struct proc_dir_entry *parent) { struct proc_dir_entry *ret; ret = proc_mkdir_mode(name, mode, parent); if (!ret) return NULL; proc_set_user(ret, proc_kuid, proc_kgid); return ret; } static inline struct proc_dir_entry *proc_create_user(const char *name, umode_t mode, struct proc_dir_entry *parent, const struct PROC_OP_STRUCT *ops, void *ptr) { struct proc_dir_entry *ret; ret = proc_create_data(name, mode, parent, ops, ptr); if (!ret) return NULL; proc_set_user(ret, proc_kuid, proc_kgid); return ret; } static int table_create_proc(struct rtpengine_table *t, uint32_t id) { char num[10]; sprintf(num, "%u", id); t->proc_root = proc_mkdir_user(num, 0555 & ~proc_mask, my_proc_root); if (!t->proc_root) return -1; t->proc_status = proc_create_user("status", S_IFREG | 0444, t->proc_root, &proc_status_ops, (void *) (unsigned long) id); if (!t->proc_status) return -1; t->proc_control = proc_create_user("control", S_IFREG | 0660, t->proc_root, &proc_control_ops, (void *) (unsigned long) id); if (!t->proc_control) return -1; t->proc_list = proc_create_user("list", S_IFREG | 0444, t->proc_root, &proc_list_ops, (void *) (unsigned long) id); if (!t->proc_list) return -1; t->proc_calls = proc_mkdir_user("calls", 0555, t->proc_root); if (!t->proc_calls) return -1; return 0; } static struct rtpengine_table *new_table_link(uint32_t id) { struct rtpengine_table *t; unsigned long flags; if (id >= MAX_ID) return NULL; t = new_table(); if (!t) { printk(KERN_WARNING "xt_RTPENGINE out of memory\n"); return NULL; } write_lock_irqsave(&table_lock, flags); if (table[id]) { write_unlock_irqrestore(&table_lock, flags); table_put(t); printk(KERN_WARNING "xt_RTPENGINE duplicate ID %u\n", id); return NULL; } ref_get(t); table[id] = t; t->id = id; write_unlock_irqrestore(&table_lock, flags); if (table_create_proc(t, id)) printk(KERN_WARNING "xt_RTPENGINE failed to create /proc entry for ID %u\n", id); return t; } static void free_crypto_context(struct re_crypto_context *c) { int i; for (i = 0; i < ARRAY_SIZE(c->tfm); i++) { if (c->tfm[i]) crypto_free_cipher(c->tfm[i]); } if (c->shash) crypto_free_shash(c->shash); if (c->aead) crypto_free_aead(c->aead); } static void target_put(struct rtpengine_target *t) { unsigned int i; if (!t) return; if (!atomic_dec_and_test(&t->refcnt)) return; DBG("Freeing target\n"); free_crypto_context(&t->decrypt_rtp); free_crypto_context(&t->decrypt_rtcp); if (t->outputs) { for (i = 0; i < t->target.num_destinations; i++) { free_crypto_context(&t->outputs[i].encrypt_rtp); free_crypto_context(&t->outputs[i].encrypt_rtcp); } kfree(t->outputs); } kfree(t); } static void target_get(struct rtpengine_target *t) { atomic_inc(&t->refcnt); } static void clear_proc(struct proc_dir_entry **e) { struct proc_dir_entry *pde; if (!e || !(pde = *e)) return; proc_remove(pde); *e = NULL; } #ifdef KERNEL_PLAYER static void __unref_play_stream(struct play_stream *s); static void __unref_packet_stream(struct play_stream_packets *stream); static void end_of_stream(struct play_stream *stream); #define unref_play_stream(s) do { \ /* printk(KERN_WARNING "unref play stream %p (%i--) @ %s:%i\n", s, atomic_read(&(s)->refcnt), __FILE__, __LINE__); */ \ __unref_play_stream(s); \ } while (0) #define ref_play_stream(s) do { \ /* printk(KERN_WARNING "ref play stream %p (%i++) @ %s:%i\n", s, atomic_read(&(s)->refcnt), __FILE__, __LINE__); */ \ atomic_inc(&(s)->refcnt); \ } while (0) #define ref_packet_stream(s) do { \ /* printk(KERN_WARNING "ref packet stream %p (%i++) @ %s:%i\n", s, atomic_read(&(s)->refcnt), __FILE__, __LINE__); */ \ atomic_inc(&(s)->refcnt); \ } while (0) #define unref_packet_stream(s) do { \ /* printk(KERN_WARNING "unref packet stream %p (%i--) @ %s:%i\n", s, atomic_read(&(s)->refcnt), __FILE__, __LINE__); */ \ __unref_packet_stream(s); \ } while (0) #endif static void clear_table_proc_files(struct rtpengine_table *t) { clear_proc(&t->proc_status); clear_proc(&t->proc_control); clear_proc(&t->proc_list); clear_proc(&t->proc_calls); clear_proc(&t->proc_root); } #ifdef KERNEL_PLAYER static void clear_table_player(struct rtpengine_table *t) { struct play_stream *stream, *ts; struct play_stream_packets *packets, *tp; unsigned int idx; list_for_each_entry_safe(stream, ts, &t->play_streams, table_entry) { spin_lock(&stream->lock); stream->table_id = -1; idx = stream->idx; spin_unlock(&stream->lock); write_lock(&media_player_lock); if (play_streams[idx] == stream) { play_streams[idx] = NULL; unref_play_stream(stream); } write_unlock(&media_player_lock); do_stop_stream(stream); unref_play_stream(stream); } list_for_each_entry_safe(packets, tp, &t->packet_streams, table_entry) { write_lock(&packets->lock); packets->table_id = -1; idx = packets->idx; write_unlock(&packets->lock); write_lock(&media_player_lock); if (stream_packets[idx] == packets) { stream_packets[idx] = NULL; unref_packet_stream(packets); } write_unlock(&media_player_lock); unref_packet_stream(packets); } } #endif static void table_put(struct rtpengine_table *t) { int i, j, k; struct re_dest_addr *rda; struct re_bucket *b; struct re_shm *shm; if (!t) return; if (!atomic_dec_and_test(&t->refcnt)) return; DBG("Freeing table\n"); for (k = 0; k < 256; k++) { rda = t->dest_addr_hash.addrs[k]; if (!rda) continue; for (i = 0; i < 256; i++) { b = rda->ports_hi[i]; if (!b) continue; for (j = 0; j < 256; j++) { if (!b->ports_lo[j]) continue; b->ports_lo[j]->table = -1; target_put(b->ports_lo[j]); b->ports_lo[j] = NULL; } kfree(b); rda->ports_hi[i] = NULL; } kfree(rda); t->dest_addr_hash.addrs[k] = NULL; } while (!list_empty(&t->shm_list)) { shm = list_first_entry(&t->shm_list, struct re_shm, list_entry); list_del_init(&shm->list_entry); free_pages((unsigned long) shm->head, shm->order); kfree(shm); } clear_table_proc_files(t); #ifdef KERNEL_PLAYER clear_table_player(t); #endif kfree(t); module_put(THIS_MODULE); } /* must be called lock-free */ static inline void free_packet(struct re_stream_packet *packet) { if (packet->skbuf) kfree_skb(packet->skbuf); kfree(packet); } /* must be called lock-free */ static void clear_stream_packets(struct re_stream *stream) { struct re_stream_packet *packet; unsigned long flags; LIST_HEAD(delete_list); spin_lock_irqsave(&stream->packet_list_lock, flags); while (!list_empty(&stream->packet_list)) { DBG("clearing packet from queue\n"); packet = list_first_entry(&stream->packet_list, struct re_stream_packet, list_entry); list_del(&packet->list_entry); list_add(&packet->list_entry, &delete_list); } spin_unlock_irqrestore(&stream->packet_list_lock, flags); while (!list_empty(&delete_list)) { packet = list_first_entry(&delete_list, struct re_stream_packet, list_entry); list_del(&packet->list_entry); free_packet(packet); } } static void stream_put(struct re_stream *stream) { DBG("stream_put(%p) - refcnt is %u\n", stream, stream ? atomic_read(&stream->refcnt) : (unsigned) -1); if (!stream) return; if (!atomic_dec_and_test(&stream->refcnt)) { /* if this is an open file being closed and there's a del_stream() * waiting for us, we need to wake up the sleeping del_stream() */ wake_up_interruptible(&stream->close_wq); return; } DBG("Freeing stream object\n"); clear_stream_packets(stream); clear_proc(&stream->file); if (stream->call) call_put(stream->call); kfree(stream); } static void call_put(struct re_call *call) { DBG("call_put(%p) - refcnt is %u\n", call, call ? atomic_read(&call->refcnt) : (unsigned) -1); if (!call) return; if (!atomic_dec_and_test(&call->refcnt)) return; DBG("Freeing call object\n"); if (!list_empty(&call->streams)) panic("BUG! streams list not empty in call"); DBG("clearing call proc files\n"); clear_proc(&call->root); kfree(call); } static int unlink_table(struct rtpengine_table *t) { unsigned long flags; struct re_call *call; if (t->id >= MAX_ID) return -EINVAL; DBG("Unlinking table %u\n", t->id); write_lock_irqsave(&table_lock, flags); if (t->id >= MAX_ID || table[t->id] != t) { write_unlock_irqrestore(&table_lock, flags); return -EINVAL; } if (t->pid) { write_unlock_irqrestore(&table_lock, flags); return -EBUSY; } table[t->id] = NULL; t->id = -1; write_unlock_irqrestore(&table_lock, flags); _w_lock(&calls.lock, flags); while (!list_empty(&t->calls)) { call = list_first_entry(&t->calls, struct re_call, table_entry); _w_unlock(&calls.lock, flags); del_call(call, t); /* removes it from this list */ _w_lock(&calls.lock, flags); } _w_unlock(&calls.lock, flags); clear_table_proc_files(t); table_put(t); return 0; } static struct rtpengine_table *get_table(unsigned int id) { struct rtpengine_table *t; unsigned long flags; if (id >= MAX_ID) return NULL; read_lock_irqsave(&table_lock, flags); t = table[id]; if (t) ref_get(t); read_unlock_irqrestore(&table_lock, flags); return t; } static ssize_t proc_status(struct file *f, char __user *b, size_t l, loff_t *o) { struct inode *inode; char buf[256]; struct rtpengine_table *t; int len = 0; unsigned long flags; uint32_t id; if (*o > 0) return 0; if (*o < 0) return -EINVAL; if (l < sizeof(buf)) return -EINVAL; inode = f->f_path.dentry->d_inode; id = (uint32_t) (unsigned long) PDE_DATA(inode); t = get_table(id); if (!t) return -ENOENT; read_lock_irqsave(&t->target_lock, flags); len += sprintf(buf + len, "Refcount: %u\n", atomic_read(&t->refcnt) - 1); len += sprintf(buf + len, "Control PID: %u\n", t->pid); len += sprintf(buf + len, "Targets: %u\n", t->num_targets); read_unlock_irqrestore(&t->target_lock, flags); // unlocked/unsafe read len += sprintf(buf + len, "Players: %u\n", t->num_play_streams); len += sprintf(buf + len, "PStreams: %u\n", t->num_packet_streams); table_put(t); if (copy_to_user(b, buf, len)) return -EFAULT; *o += len; return len; } static int proc_main_list_open(struct inode *i, struct file *f) { int err; if ((err = proc_generic_open_modref(i, f))) return err; return seq_open(f, &proc_main_list_seq_ops); } static void *proc_main_list_start(struct seq_file *f, loff_t *o) { if (!try_module_get(THIS_MODULE)) return NULL; return proc_main_list_next(f, NULL, o); } static void proc_main_list_stop(struct seq_file *f, void *v) { module_put(THIS_MODULE); } static void *proc_main_list_next(struct seq_file *f, void *v, loff_t *o) { /* v is invalid */ struct rtpengine_table *t = NULL; uint32_t id; if (*o < 0) return NULL; id = *o; while (id < MAX_ID) { t = get_table(id++); if (!t) continue; break; } *o = id; return t; /* might be NULL */ } static int proc_main_list_show(struct seq_file *f, void *v) { struct rtpengine_table *g = v; seq_printf(f, "%u\n", g->id); table_put(g); return 0; } static inline unsigned char bitfield_next_slot(unsigned int slot) { unsigned char c; c = slot * (sizeof(unsigned long) * 8); c += sizeof(unsigned long) * 8; return c; } static inline unsigned int bitfield_slot(unsigned int i) { return i / (sizeof(unsigned long) * 8); } static inline unsigned int bitfield_bit(unsigned int i) { return i % (sizeof(unsigned long) * 8); } static inline int bitfield_set(unsigned long *bf, unsigned int i) { unsigned int b, m; unsigned long k; b = bitfield_slot(i); m = bitfield_bit(i); k = 1UL << m; if ((bf[b] & k)) return 0; bf[b] |= k; return 1; } static inline int bitfield_clear(unsigned long *bf, unsigned int i) { unsigned int b, m; unsigned long k; b = bitfield_slot(i); m = bitfield_bit(i); k = 1UL << m; if (!(bf[b] & k)) return 0; bf[b] &= ~k; return 1; } static inline void re_bitfield_set(struct re_bitfield *bf, unsigned char i) { if (bitfield_set(bf->b, i)) bf->used++; } static inline void re_bitfield_clear(struct re_bitfield *bf, unsigned char i) { if (bitfield_clear(bf->b, i)) bf->used--; } static inline struct rtpengine_target *find_next_target(struct rtpengine_table *t, int *addr_bucket, int *port) { unsigned long flags; struct re_dest_addr *rda; struct re_bucket *b; unsigned char hi, lo, ab; unsigned int rda_b, hi_b, lo_b; struct rtpengine_target *g; if (*port < 0) return NULL; if (*port > 0xffff) { *port = 0; (*addr_bucket)++; } if (*addr_bucket < 0 || *addr_bucket > 255) return NULL; hi = (*port & 0xff00) >> 8; lo = *port & 0xff; ab = *addr_bucket; read_lock_irqsave(&t->target_lock, flags); for (;;) { rda_b = bitfield_slot(ab); if (!t->dest_addr_hash.addrs_bf.b[rda_b]) { ab = bitfield_next_slot(rda_b); hi = 0; lo = 0; goto next_rda; } rda = t->dest_addr_hash.addrs[ab]; if (!rda) { ab++; hi = 0; lo = 0; goto next_rda; } hi_b = bitfield_slot(hi); if (!rda->ports_hi_bf.b[hi_b]) { hi = bitfield_next_slot(hi_b); lo = 0; goto next_hi; } b = rda->ports_hi[hi]; if (!b) { hi++; lo = 0; goto next_hi; } lo_b = bitfield_slot(lo); if (!b->ports_lo_bf.b[lo_b]) { lo = bitfield_next_slot(lo_b); goto next_lo; } g = b->ports_lo[lo]; if (!g) { lo++; goto next_lo; } target_get(g); break; next_lo: if (!lo) hi++; next_hi: if (!hi && !lo) ab++; next_rda: if (!ab && !hi && !lo) break; } read_unlock_irqrestore(&t->target_lock, flags); *addr_bucket = ab; *port = (hi << 8) | lo; return g; } static int proc_list_open(struct inode *i, struct file *f) { int err; struct seq_file *p; uint32_t id; struct rtpengine_table *t; if ((err = proc_generic_open_modref(i, f))) return err; id = (uint32_t) (unsigned long) PDE_DATA(i); t = get_table(id); if (!t) return -ENOENT; table_put(t); err = seq_open(f, &proc_list_seq_ops); if (err) return err; p = f->private_data; p->private = (void *) (unsigned long) id; return 0; } static void *proc_list_start(struct seq_file *f, loff_t *o) { return proc_list_next(f, NULL, o); } static void proc_list_stop(struct seq_file *f, void *v) { } static void *proc_list_next(struct seq_file *f, void *v, loff_t *o) { uint32_t id = (uint32_t) (unsigned long) f->private; struct rtpengine_table *t; struct rtpengine_target *g; int port, addr_bucket; addr_bucket = ((int) *o) >> 17; port = ((int) *o) & 0x1ffff; t = get_table(id); if (!t) return NULL; if (v) // this is a `next` call port++; g = find_next_target(t, &addr_bucket, &port); *o = (addr_bucket << 17) | port; table_put(t); if (!g) // EOF *o = 256 << 17; return g; } static void seq_addr_print(struct seq_file *f, const struct re_address *a) { if (!a->family) return; switch (a->family) { case AF_INET: seq_printf(f, "inet4 %u.%u.%u.%u:%u", a->u.u8[0], a->u.u8[1], a->u.u8[2], a->u.u8[3], a->port); break; case AF_INET6: seq_printf(f, "inet6 [%x:%x:%x:%x:%x:%x:%x:%x]:%u", htons(a->u.u16[0]), htons(a->u.u16[1]), htons(a->u.u16[2]), htons(a->u.u16[3]), htons(a->u.u16[4]), htons(a->u.u16[5]), htons(a->u.u16[6]), htons(a->u.u16[7]), a->port); break; default: seq_printf(f, "\n"); break; } } static void proc_list_addr_print(struct seq_file *f, const char *s, const struct re_address *a) { if (!a->family) return; seq_printf(f, " %6s ", s); seq_addr_print(f, a); seq_printf(f, "\n"); } static void proc_list_crypto_print(struct seq_file *f, struct re_crypto_context *c, struct rtpengine_srtp *s, const char *label) { int hdr = 0; int i; if (c->cipher && c->cipher->id != REC_NULL) { if (!hdr++) seq_printf(f, " SRTP %s parameters:\n", label); seq_printf(f, " cipher: %s\n", c->cipher->name ? : ""); seq_printf(f, " master key: "); for (i = 0; i < s->master_key_len; i++) seq_printf(f, "%02x", s->master_key[i]); seq_printf(f, "\n"); seq_printf(f, " master salt: "); for (i = 0; i < sizeof(s->master_salt); i++) seq_printf(f, "%02x", s->master_salt[i]); seq_printf(f, "\n"); seq_printf(f, " session key: "); for (i = 0; i < s->session_key_len; i++) seq_printf(f, "%02x", c->session_key[i]); seq_printf(f, "\n"); seq_printf(f, " session salt: "); for (i = 0; i < sizeof(c->session_salt); i++) seq_printf(f, "%02x", c->session_salt[i]); seq_printf(f, "\n"); seq_printf(f, " session auth: "); for (i = 0; i < sizeof(c->session_auth_key); i++) seq_printf(f, "%02x", c->session_auth_key[i]); seq_printf(f, "\n"); if (s->mki_len) seq_printf(f, " MKI: length %u, %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x...\n", s->mki_len, s->mki[0], s->mki[1], s->mki[2], s->mki[3], s->mki[4], s->mki[5], s->mki[6], s->mki[7]); } if (c->hmac && c->hmac->id != REH_NULL) { if (!hdr++) seq_printf(f, " SRTP %s parameters:\n", label); seq_printf(f, " HMAC: %s\n", c->hmac->name ? : ""); seq_printf(f, " auth tag length: %u\n", s->rtp_auth_tag_len); } } static int proc_list_show(struct seq_file *f, void *v) { struct rtpengine_target *g = v; unsigned int i, j; unsigned long flags; seq_printf(f, "local "); seq_addr_print(f, &g->target.local); seq_printf(f, "\n"); // all outputs filled? _r_lock(&g->outputs_lock, flags); if (g->outputs_unfilled) { unsigned int uf = g->outputs_unfilled; _r_unlock(&g->outputs_lock, flags); seq_printf(f, " outputs not fully filled (%u missing)\n", uf); goto out; } _r_unlock(&g->outputs_lock, flags); proc_list_addr_print(f, "expect", &g->target.expected_src); if (g->target.src_mismatch > 0 && g->target.src_mismatch <= ARRAY_SIZE(re_msm_strings)) seq_printf(f, " src mismatch action: %s\n", re_msm_strings[g->target.src_mismatch]); seq_printf(f, " stats: %20llu bytes, %20llu packets, %20llu errors\n", (unsigned long long) atomic64_read(&g->target.stats->bytes), (unsigned long long) atomic64_read(&g->target.stats->packets), (unsigned long long) atomic64_read(&g->target.stats->errors)); for (i = 0; i < g->target.num_payload_types; i++) { seq_printf(f, " RTP payload type %3u: %20llu bytes, %20llu packets\n", g->target.pt_stats[i]->payload_type, (unsigned long long) atomic64_read(&g->target.pt_stats[i]->bytes), (unsigned long long) atomic64_read(&g->target.pt_stats[i]->packets)); } seq_printf(f, " last packet: %lli", (long long) atomic64_read(&g->target.stats->last_packet)); seq_printf(f, " SSRC in:"); for (i = 0; i < ARRAY_SIZE(g->target.ssrc); i++) { if (!g->target.ssrc[i] || !g->target.ssrc_stats[i]) break; seq_printf(f, "%s %lx [seq %u/%u]", (i == 0) ? "" : ",", (unsigned long) ntohl(g->target.ssrc[i]), atomic_read(&g->target.ssrc_stats[i]->ext_seq), atomic_read(&g->target.ssrc_stats[i]->rtcp_seq)); } seq_printf(f, "\n"); proc_list_crypto_print(f, &g->decrypt_rtp, &g->target.decrypt, "decryption"); seq_printf(f, " options:"); if (g->target.rtp) seq_printf(f, " RTP"); if (g->target.pt_filter) seq_printf(f, " PT-filter"); if (g->target.rtp_only) seq_printf(f, " RTP-only"); if (g->target.rtcp) seq_printf(f, " RTCP"); if (g->target.rtcp_mux) seq_printf(f, " RTCP-mux"); if (g->target.dtls) seq_printf(f, " DTLS"); if (g->target.stun) seq_printf(f, " STUN"); if (g->target.non_forwarding) seq_printf(f, " non-forwarding"); if (g->target.blackhole) seq_printf(f, " blackhole"); if (g->target.rtp_stats) seq_printf(f, " RTP-stats"); if (g->target.track_ssrc) seq_printf(f, " SSRC-tracking"); if (g->target.do_intercept) seq_printf(f, " intercept"); if (g->target.rtcp_fw) seq_printf(f, " forward-RTCP"); if (g->target.rtcp_fb_fw) seq_printf(f, " forward-RTCP-FB"); seq_printf(f, "\n"); for (i = 0; i < g->target.num_destinations; i++) { struct rtpengine_output *o = &g->outputs[i]; if (i < g->num_rtp_destinations) seq_printf(f, " output #%u\n", i); else seq_printf(f, " output #%u (RTCP)\n", i); proc_list_addr_print(f, "src", &o->output.src_addr); proc_list_addr_print(f, "dst", &o->output.dst_addr); seq_printf(f, " stats: %20llu bytes, %20llu packets, %20llu errors\n", (unsigned long long) atomic64_read(&o->output.stats->bytes), (unsigned long long) atomic64_read(&o->output.stats->packets), (unsigned long long) atomic64_read(&o->output.stats->errors)); seq_printf(f, " SSRC out:"); for (j = 0; j < ARRAY_SIZE(o->output.ssrc_out); j++) { if (!o->output.ssrc_stats[j]) break; seq_printf(f, "%s %lx [seq %u+%u/%u]", (j == 0) ? "" : ",", (unsigned long) ntohl(o->output.ssrc_out[j]), atomic_read(&o->output.ssrc_stats[j]->ext_seq), (unsigned int) o->output.seq_offset[j], atomic_read(&o->output.ssrc_stats[j]->rtcp_seq)); } seq_printf(f, "\n"); for (j = 0; j < g->target.num_payload_types; j++) { if (o->output.pt_output[j].replace_pattern_len || o->output.pt_output[j].min_payload_len) seq_printf(f, " RTP payload type %3u: " "%u bytes replacement payload, min payload len %u\n", g->target.pt_stats[j]->payload_type, o->output.pt_output[j].replace_pattern_len, o->output.pt_output[j].min_payload_len); } proc_list_crypto_print(f, &o->encrypt_rtp, &o->output.encrypt, "encryption"); } out: target_put(g); return 0; } static unsigned int re_address_hash(const struct re_address *a) { uint32_t ret = 0; if (!a) goto out; ret += a->family; switch (a->family) { case AF_INET: ret += a->u.ipv4; break; case AF_INET6: ret += a->u.u32[0]; ret += a->u.u32[1]; ret += a->u.u32[2]; ret += a->u.u32[3]; break; default: goto out; } ret = (ret & 0xffff) ^ ((ret & 0xffff0000) >> 16); ret = (ret & 0xff) ^ ((ret & 0xff00) >> 8); out: return ret; } static int re_address_match(const struct re_address *a, const struct re_address *b) { if (!a || !b) return 0; if (a->family != b->family) return 0; switch (a->family) { case AF_INET: if (a->u.ipv4 == b->u.ipv4) return 1; break; case AF_INET6: if (!memcmp(a->u.ipv6, b->u.ipv6, sizeof(a->u.ipv6))) return 1; break; default: return 0; } return 0; } static struct re_dest_addr *find_dest_addr(const struct re_dest_addr_hash *h, const struct re_address *local) { unsigned int rda_hash, i; struct re_dest_addr *rda; i = rda_hash = re_address_hash(local); while (1) { rda = h->addrs[i]; if (!rda) return NULL; if (re_address_match(local, &rda->destination)) return rda; i++; if (i >= 256) i = 0; if (i == rda_hash) return NULL; } } // removes a target from the table and returns it static struct rtpengine_target *table_steal_target(struct rtpengine_table *t, const struct re_address *local) { unsigned char hi, lo; struct re_dest_addr *rda; struct re_bucket *b; struct rtpengine_target *g = NULL; unsigned long flags; if (!local || !is_valid_address(local)) return ERR_PTR(-EINVAL); hi = (local->port & 0xff00) >> 8; lo = local->port & 0xff; write_lock_irqsave(&t->target_lock, flags); rda = find_dest_addr(&t->dest_addr_hash, local); if (!rda) goto out; b = rda->ports_hi[hi]; if (!b) goto out; g = b->ports_lo[lo]; if (!g) goto out; b->ports_lo[lo] = NULL; re_bitfield_clear(&b->ports_lo_bf, lo); t->num_targets--; if (!b->ports_lo_bf.used) { rda->ports_hi[hi] = NULL; re_bitfield_clear(&rda->ports_hi_bf, hi); } else b = NULL; /* not freeing or NULLing the re_dest_addr due to hash collision logic */ out: write_unlock_irqrestore(&t->target_lock, flags); if (!g) return ERR_PTR(-ENOENT); if (b) kfree(b); return g; } // removes target from table and returns the stats before releasing the target static int table_del_target(struct rtpengine_table *t, const struct re_address *local) { struct rtpengine_target *g = table_steal_target(t, local); if (IS_ERR(g)) return PTR_ERR(g); target_put(g); return 0; } static int is_valid_address(const struct re_address *rea) { switch (rea->family) { case AF_INET: if (!rea->u.ipv4) return 0; break; case AF_INET6: if (!rea->u.u32[0] && !rea->u.u32[1] && !rea->u.u32[2] && !rea->u.u32[3]) return 0; break; default: return 0; } if (!rea->port) return 0; return 1; } static void vm_mmap_close(struct vm_area_struct *vma) { } static const struct vm_operations_struct vm_mmap_ops = { .close = vm_mmap_close, }; static void *shm_map_resolve(void *p, size_t size) { struct vm_area_struct *vma; // XXX is there a better way to map this to the kernel address? #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0) vma = vma_lookup(current->mm, (unsigned long) p); #else vma = find_vma(current->mm, (unsigned long) p); if (vma && (unsigned long) p < vma->vm_start) vma = NULL; #endif if (!vma) return NULL; if (!vma->vm_private_data) return NULL; if ((unsigned long) p + size > vma->vm_end || (unsigned long) p + size < vma->vm_start) return NULL; if (vma->vm_ops != &vm_mmap_ops) return NULL; return vma->vm_private_data + ((unsigned long) p - (unsigned long) vma->vm_start); } static int validate_srtp(const struct rtpengine_srtp *s) { if (s->cipher <= REC_INVALID) return -1; if (s->cipher >= __REC_LAST) return -1; if (s->hmac <= REH_INVALID) return -1; if (s->hmac >= __REH_LAST) return -1; if (s->rtp_auth_tag_len > 20) return -1; if (s->mki_len > sizeof(s->mki)) return -1; return 0; } /* XXX shared code */ static void aes_ctr(unsigned char *out, const unsigned char *in, size_t in_len, struct crypto_cipher *tfm, const unsigned char *iv) { unsigned char ivx[16]; unsigned char key_block[16]; unsigned char *p, *q; size_t left; int i; uint64_t *pi, *qi, *ki; if (!tfm) return; memcpy(ivx, iv, 16); pi = (void *) in; qi = (void *) out; ki = (void *) key_block; left = in_len; while (left) { crypto_cipher_encrypt_one(tfm, key_block, ivx); if (unlikely(left < 16)) { p = (void *) pi; q = (void *) qi; for (i = 0; i < 16; i++) { *q++ = *p++ ^ key_block[i]; left--; if (!left) goto done; } panic("BUG!"); } *qi++ = *pi++ ^ ki[0]; *qi++ = *pi++ ^ ki[1]; left -= 16; for (i = 15; i >= 0; i--) { ivx[i]++; if (likely(ivx[i])) break; } } done: ; } static void aes_f8(unsigned char *in_out, size_t in_len, struct crypto_cipher *tfm, struct crypto_cipher *iv_tfm, const unsigned char *iv) { unsigned char key_block[16], last_key_block[16], /* S(j), S(j-1) */ ivx[16], /* IV' */ x[16]; size_t i, left; uint32_t j; unsigned char *p; uint64_t *pi, *ki, *lki, *xi; uint32_t *xu; crypto_cipher_encrypt_one(iv_tfm, ivx, iv); pi = (void *) in_out; ki = (void *) key_block; lki = (void *) last_key_block; xi = (void *) x; xu = (void *) x; left = in_len; j = 0; memset(last_key_block, 0, sizeof(last_key_block)); while (left) { /* S(j) = E(k_e, IV' XOR j XOR S(j-1)) */ memcpy(x, ivx, 16); xu[3] ^= htonl(j); xi[0] ^= lki[0]; xi[1] ^= lki[1]; crypto_cipher_encrypt_one(tfm, key_block, x); if (unlikely(left < 16)) { p = (void *) pi; for (i = 0; i < 16; i++) { *p++ ^= key_block[i]; left--; if (!left) goto done; } panic("BUG!"); } *pi++ ^= ki[0]; *pi++ ^= ki[1]; left -= 16; if (!left) break; j++; memcpy(last_key_block, key_block, 16); } done: ; } static int aes_ctr_128_no_ctx(unsigned char *out, const char *in, int in_len, const unsigned char *key, unsigned int key_len, const unsigned char *iv) { struct crypto_cipher *tfm; tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) return PTR_ERR(tfm); crypto_cipher_setkey(tfm, key, key_len); aes_ctr(out, in, in_len, tfm, iv); crypto_free_cipher(tfm); return 0; } static int prf_n(unsigned char *out, int len, const unsigned char *key, unsigned int key_len, const unsigned char *x) { unsigned char iv[16]; unsigned char o[32]; unsigned char in[32]; int in_len, ret; memcpy(iv, x, 14); iv[14] = iv[15] = 0; in_len = len > 16 ? 32 : 16; memset(in, 0, in_len); ret = aes_ctr_128_no_ctx(o, in, in_len, key, key_len, iv); if (ret) return ret; memcpy(out, o, len); return 0; } static int gen_session_key(unsigned char *out, int len, const struct rtpengine_srtp *s, unsigned char label, unsigned int index_len) { unsigned char key_id[7]; unsigned char x[14]; int i, ret; memset(key_id, 0, sizeof(key_id)); key_id[0] = label; memcpy(x, s->master_salt, s->master_salt_len); // AEAD uses 12 bytes master salt; pad on the right to get 14 // Errata: https://www.rfc-editor.org/errata_search.php?rfc=7714 if (s->master_salt_len == 12) x[12] = x[13] = '\x00'; for (i = 13 - index_len; i < 14; i++) x[i] = key_id[i - (13 - index_len)] ^ x[i]; ret = prf_n(out, len, s->master_key, s->master_key_len, x); if (ret) return ret; return 0; } static int aes_f8_session_key_init(struct re_crypto_context *c, const struct rtpengine_srtp *s) { unsigned char m[16]; int i, ret; /* m = k_s || 0x555..5 */ memcpy(m, c->session_salt, 14); m[14] = m[15] = 0x55; /* IV' = E(k_e XOR m, IV) */ for (i = 0; i < 16; i++) m[i] ^= c->session_key[i]; c->tfm[1] = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(c->tfm[1])) { ret = PTR_ERR(c->tfm[1]); c->tfm[1] = NULL; goto error; } crypto_cipher_setkey(c->tfm[1], m, 16); return 0; error: return ret; } static int gen_session_keys(struct re_crypto_context *c, const struct rtpengine_srtp *s, unsigned int label_offset, unsigned int index_len) { int ret; const char *err; if (s->cipher == REC_NULL && s->hmac == REH_NULL) return 0; err = "failed to generate session key"; ret = gen_session_key(c->session_key, s->session_key_len, s, 0x00 + label_offset, index_len); if (ret) goto error; ret = gen_session_key(c->session_auth_key, 20, s, 0x01 + label_offset, index_len); // XXX fixed length auth key if (ret) goto error; ret = gen_session_key(c->session_salt, s->session_salt_len, s, 0x02 + label_offset, index_len); if (ret) goto error; if (c->cipher->tfm_name) { err = "failed to load cipher"; c->tfm[0] = crypto_alloc_cipher(c->cipher->tfm_name, 0, CRYPTO_ALG_ASYNC); if (IS_ERR(c->tfm[0])) { ret = PTR_ERR(c->tfm[0]); c->tfm[0] = NULL; goto error; } ret = crypto_cipher_setkey(c->tfm[0], c->session_key, s->session_key_len); if (ret) goto error; } if (c->cipher->aead_name) { err = "failed to load AEAD"; c->aead = crypto_alloc_aead(c->cipher->aead_name, 0, CRYPTO_ALG_ASYNC); if (IS_ERR(c->aead)) { ret = PTR_ERR(c->aead); c->aead = NULL; goto error; } ret = -EINVAL; if (crypto_aead_ivsize(c->aead) != 12) goto error; ret = crypto_aead_setkey(c->aead, c->session_key, s->session_key_len); if (ret) goto error; ret = crypto_aead_setauthsize(c->aead, 16); if (ret) goto error; } if (c->cipher->session_key_init) { ret = c->cipher->session_key_init(c, s); if (ret) goto error; } if (c->hmac->tfm_name) { err = "failed to load HMAC"; c->shash = crypto_alloc_shash(c->hmac->tfm_name, 0, CRYPTO_ALG_ASYNC); if (IS_ERR(c->shash)) { ret = PTR_ERR(c->shash); c->shash = NULL; goto error; } ret = crypto_shash_setkey(c->shash, c->session_auth_key, 20); if (ret) goto error; } switch(s->master_key_len) { case 16: DBG("master key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", s->master_key[0], s->master_key[1], s->master_key[2], s->master_key[3], s->master_key[4], s->master_key[5], s->master_key[6], s->master_key[7], s->master_key[8], s->master_key[9], s->master_key[10], s->master_key[11], s->master_key[12], s->master_key[13], s->master_key[14], s->master_key[15]); break; case 24: DBG("master key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", s->master_key[0], s->master_key[1], s->master_key[2], s->master_key[3], s->master_key[4], s->master_key[5], s->master_key[6], s->master_key[7], s->master_key[8], s->master_key[9], s->master_key[10], s->master_key[11], s->master_key[12], s->master_key[13], s->master_key[14], s->master_key[15], s->master_key[16], s->master_key[17], s->master_key[18], s->master_key[19], s->master_key[20], s->master_key[21], s->master_key[22], s->master_key[23]); break; case 32: DBG("master key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", s->master_key[0], s->master_key[1], s->master_key[2], s->master_key[3], s->master_key[4], s->master_key[5], s->master_key[6], s->master_key[7], s->master_key[8], s->master_key[9], s->master_key[10], s->master_key[11], s->master_key[12], s->master_key[13], s->master_key[14], s->master_key[15], s->master_key[16], s->master_key[17], s->master_key[18], s->master_key[19], s->master_key[20], s->master_key[21], s->master_key[22], s->master_key[23], s->master_key[24], s->master_key[25], s->master_key[26], s->master_key[27], s->master_key[28], s->master_key[29], s->master_key[30], s->master_key[31]); break; } DBG("master salt %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", s->master_salt[0], s->master_salt[1], s->master_salt[2], s->master_salt[3], s->master_salt[4], s->master_salt[5], s->master_salt[6], s->master_salt[7], s->master_salt[8], s->master_salt[9], s->master_salt[10], s->master_salt[11], s->master_salt[12], s->master_salt[13]); switch(s->session_key_len) { case 16: DBG("session key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", c->session_key[0], c->session_key[1], c->session_key[2], c->session_key[3], c->session_key[4], c->session_key[5], c->session_key[6], c->session_key[7], c->session_key[8], c->session_key[9], c->session_key[10], c->session_key[11], c->session_key[12], c->session_key[13], c->session_key[14], c->session_key[15]); break; case 24: DBG("session key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", c->session_key[0], c->session_key[1], c->session_key[2], c->session_key[3], c->session_key[4], c->session_key[5], c->session_key[6], c->session_key[7], c->session_key[8], c->session_key[9], c->session_key[10], c->session_key[11], c->session_key[12], c->session_key[13], c->session_key[14], c->session_key[15], c->session_key[16], c->session_key[17], c->session_key[18], c->session_key[19], c->session_key[20], c->session_key[21], c->session_key[22], c->session_key[23]); break; case 32: DBG("session key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", c->session_key[0], c->session_key[1], c->session_key[2], c->session_key[3], c->session_key[4], c->session_key[5], c->session_key[6], c->session_key[7], c->session_key[8], c->session_key[9], c->session_key[10], c->session_key[11], c->session_key[12], c->session_key[13], c->session_key[14], c->session_key[15], c->session_key[16], c->session_key[17], c->session_key[18], c->session_key[19], c->session_key[20], c->session_key[21], c->session_key[22], c->session_key[23], c->session_key[24], c->session_key[25], c->session_key[26], c->session_key[27], c->session_key[28], c->session_key[29], c->session_key[30], c->session_key[31]); break; } DBG("session salt %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", c->session_salt[0], c->session_salt[1], c->session_salt[2], c->session_salt[3], c->session_salt[4], c->session_salt[5], c->session_salt[6], c->session_salt[7], c->session_salt[8], c->session_salt[9], c->session_salt[10], c->session_salt[11], c->session_salt[12], c->session_salt[13]); DBG("session auth key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", c->session_auth_key[0], c->session_auth_key[1], c->session_auth_key[2], c->session_auth_key[3], c->session_auth_key[4], c->session_auth_key[5], c->session_auth_key[6], c->session_auth_key[7], c->session_auth_key[8], c->session_auth_key[9], c->session_auth_key[10], c->session_auth_key[11], c->session_auth_key[12], c->session_auth_key[13], c->session_auth_key[14], c->session_auth_key[15], c->session_auth_key[16], c->session_auth_key[17], c->session_auth_key[18], c->session_auth_key[19]); return 0; error: free_crypto_context(c); printk(KERN_ERR "Failed to generate session keys: %s\n", err); return ret; } static int gen_rtp_session_keys(struct re_crypto_context *c, const struct rtpengine_srtp *s) { return gen_session_keys(c, s, 0, 6); } static int gen_rtcp_session_keys(struct re_crypto_context *c, const struct rtpengine_srtp *s) { return gen_session_keys(c, s, 3, SRTCP_R_LENGTH); } static void crypto_context_init(struct re_crypto_context *c, const struct rtpengine_srtp *s) { c->cipher = &re_ciphers[s->cipher]; c->hmac = &re_hmacs[s->hmac]; } static int table_new_target(struct rtpengine_table *t, struct rtpengine_target_info *i) { unsigned char hi, lo; unsigned int rda_hash, rh_it; struct rtpengine_target *g; struct re_dest_addr *rda; struct re_bucket *b, *ba = NULL; struct rtpengine_target *og = NULL; int err; unsigned long flags; unsigned int u; struct interface_stats_block *iface_stats; struct stream_stats *stats; struct rtp_stats *pt_stats[RTPE_NUM_PAYLOAD_TYPES]; struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING]; /* validation */ if (!t->rtpe_stats) return -EIO; if (!is_valid_address(&i->local)) return -EINVAL; if (i->num_destinations > RTPE_MAX_FORWARD_DESTINATIONS) return -EINVAL; if (i->num_rtcp_destinations > i->num_destinations) return -EINVAL; if (i->num_payload_types > RTPE_NUM_PAYLOAD_TYPES) return -EINVAL; if (!i->non_forwarding) { if (!i->num_destinations) return -EINVAL; } else { if (i->num_destinations) return -EINVAL; } if (validate_srtp(&i->decrypt)) return -EINVAL; iface_stats = shm_map_resolve(i->iface_stats, sizeof(*iface_stats)); if (!iface_stats) return -EFAULT; stats = shm_map_resolve(i->stats, sizeof(*stats)); if (!stats) return -EFAULT; for (u = 0; u < i->num_payload_types; u++) { pt_stats[u] = shm_map_resolve(i->pt_stats[u], sizeof(*pt_stats[u])); if (!pt_stats[u]) return -EFAULT; } for (u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) { if (!i->ssrc[u]) break; if (!i->ssrc_stats[u]) return -EFAULT; ssrc_stats[u] = shm_map_resolve(i->ssrc_stats[u], sizeof(*ssrc_stats[u])); if (!ssrc_stats[u]) return -EFAULT; } DBG("Creating new target\n"); /* initializing */ err = -ENOMEM; g = kzalloc(sizeof(*g), GFP_KERNEL); if (!g) goto fail1; g->table = t->id; atomic_set(&g->refcnt, 1); spin_lock_init(&g->decrypt_rtp.lock); spin_lock_init(&g->decrypt_rtcp.lock); memcpy(&g->target, i, sizeof(*i)); crypto_context_init(&g->decrypt_rtp, &g->target.decrypt); crypto_context_init(&g->decrypt_rtcp, &g->target.decrypt); spin_lock_init(&g->ssrc_stats_lock); for (u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) g->target.ssrc_stats[u] = ssrc_stats[u]; rwlock_init(&g->outputs_lock); g->target.iface_stats = iface_stats; g->target.stats = stats; for (u = 0; u < i->num_payload_types; u++) g->target.pt_stats[u] = pt_stats[u]; if (i->num_destinations) { err = -ENOMEM; g->outputs = kzalloc(sizeof(*g->outputs) * i->num_destinations, GFP_KERNEL); if (!g->outputs) goto fail2; g->outputs_unfilled = i->num_destinations; g->num_rtp_destinations = i->num_destinations - i->num_rtcp_destinations; } err = gen_rtp_session_keys(&g->decrypt_rtp, &g->target.decrypt); if (err) goto fail2; err = gen_rtcp_session_keys(&g->decrypt_rtcp, &g->target.decrypt); if (err) goto fail2; /* find or allocate re_dest_addr */ rda_hash = re_address_hash(&i->local); hi = (i->local.port & 0xff00) >> 8; lo = i->local.port & 0xff; retry: rh_it = rda_hash; write_lock_irqsave(&t->target_lock, flags); rda = t->dest_addr_hash.addrs[rh_it]; while (rda) { if (re_address_match(&rda->destination, &i->local)) goto got_rda; rh_it++; if (rh_it >= 256) rh_it = 0; err = -ENXIO; if (rh_it == rda_hash) goto fail4; rda = t->dest_addr_hash.addrs[rh_it]; } write_unlock_irqrestore(&t->target_lock, flags); rda = kzalloc(sizeof(*rda), GFP_KERNEL); err = -ENOMEM; if (!rda) goto fail2; memcpy(&rda->destination, &i->local, sizeof(rda->destination)); write_lock_irqsave(&t->target_lock, flags); if (t->dest_addr_hash.addrs[rh_it]) { write_unlock_irqrestore(&t->target_lock, flags); kfree(rda); goto retry; } t->dest_addr_hash.addrs[rh_it] = rda; re_bitfield_set(&t->dest_addr_hash.addrs_bf, rh_it); got_rda: /* find or allocate re_bucket */ if ((b = rda->ports_hi[hi])) goto got_bucket; write_unlock_irqrestore(&t->target_lock, flags); b = kzalloc(sizeof(*b), GFP_KERNEL); err = -ENOMEM; if (!b) goto fail2; write_lock_irqsave(&t->target_lock, flags); if (!rda->ports_hi[hi]) { rda->ports_hi[hi] = b; re_bitfield_set(&rda->ports_hi_bf, hi); } else { ba = b; b = rda->ports_hi[hi]; } got_bucket: err = -EEXIST; if (b->ports_lo[lo]) goto fail4; re_bitfield_set(&b->ports_lo_bf, lo); t->num_targets++; b->ports_lo[lo] = g; g = NULL; write_unlock_irqrestore(&t->target_lock, flags); if (ba) kfree(ba); if (og) target_put(og); return 0; fail4: write_unlock_irqrestore(&t->target_lock, flags); if (ba) kfree(ba); fail2: if (g->outputs) kfree(g->outputs); kfree(g); fail1: return err; } static int table_add_destination(struct rtpengine_table *t, struct rtpengine_destination_info *i) { unsigned long flags; int err; struct rtpengine_target *g; struct interface_stats_block *iface_stats; struct stream_stats *stats; struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING] = {0}; unsigned int u; // validate input if (!is_valid_address(&i->output.src_addr)) return -EINVAL; if (!is_valid_address(&i->output.dst_addr)) return -EINVAL; if (i->output.src_addr.family != i->output.dst_addr.family) return -EINVAL; if (validate_srtp(&i->output.encrypt)) return -EINVAL; iface_stats = shm_map_resolve(i->output.iface_stats, sizeof(*iface_stats)); if (!iface_stats) return -EFAULT; stats = shm_map_resolve(i->output.stats, sizeof(*stats)); if (!stats) return -EFAULT; for (u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) { // XXX order expected to be the same as input target // XXX validate if target->ssrc[u] is set? if (!i->output.ssrc_stats[u]) break; ssrc_stats[u] = shm_map_resolve(i->output.ssrc_stats[u], sizeof(*ssrc_stats[u])); if (!ssrc_stats[u]) return -EFAULT; } g = get_target(t, &i->local); if (!g) return -ENOENT; // ready to fill in _w_lock(&g->outputs_lock, flags); err = -EBUSY; if (!g->outputs_unfilled) goto out; // out of range entry? err = -ERANGE; if (i->num >= g->target.num_destinations) goto out; // already filled? err = -EEXIST; if (g->outputs[i->num].output.src_addr.family) goto out; g->outputs[i->num].output = i->output; g->outputs[i->num].output.iface_stats = iface_stats; g->outputs[i->num].output.stats = stats; for (u = 0; u < RTPE_NUM_SSRC_TRACKING; u++) g->outputs[i->num].output.ssrc_stats[u] = ssrc_stats[u]; // init crypto stuff lock free: the "output" is already filled so we // know it's there, but outputs_unfilled hasn't been decreased yet, so // this won't be used until we do, which makes it safe to do it lock // free _w_unlock(&g->outputs_lock, flags); spin_lock_init(&g->outputs[i->num].encrypt_rtp.lock); spin_lock_init(&g->outputs[i->num].encrypt_rtcp.lock); crypto_context_init(&g->outputs[i->num].encrypt_rtp, &i->output.encrypt); crypto_context_init(&g->outputs[i->num].encrypt_rtcp, &i->output.encrypt); err = gen_rtp_session_keys(&g->outputs[i->num].encrypt_rtp, &i->output.encrypt); if (!err) err = gen_rtcp_session_keys(&g->outputs[i->num].encrypt_rtcp, &i->output.encrypt); // re-acquire lock and finish up: decreasing outputs_unfillled to zero // makes this usable _w_lock(&g->outputs_lock, flags); if (err) goto out; g->outputs_unfilled--; err = 0; out: _w_unlock(&g->outputs_lock, flags); target_put(g); return err; } static struct rtpengine_target *get_target(struct rtpengine_table *t, const struct re_address *local) { unsigned char hi, lo; struct re_dest_addr *rda; struct rtpengine_target *r; unsigned long flags; if (!t) return NULL; if (!local) return NULL; hi = (local->port & 0xff00) >> 8; lo = local->port & 0xff; read_lock_irqsave(&t->target_lock, flags); rda = find_dest_addr(&t->dest_addr_hash, local); r = rda ? (rda->ports_hi[hi] ? rda->ports_hi[hi]->ports_lo[lo] : NULL) : NULL; if (r) target_get(r); read_unlock_irqrestore(&t->target_lock, flags); return r; } static int proc_generic_open_modref(struct inode *inode, struct file *file) { if (!try_module_get(THIS_MODULE)) return -ENXIO; return 0; } static int proc_generic_open_stream_modref(struct inode *inode, struct file *file) { if (!try_module_get(THIS_MODULE)) return -ENXIO; #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) return stream_open(inode, file); #else return 0; #endif } static int proc_generic_close_modref(struct inode *inode, struct file *file) { module_put(THIS_MODULE); return 0; } static int proc_generic_seqrelease_modref(struct inode *inode, struct file *file) { proc_generic_close_modref(inode, file); return seq_release(inode, file); } static ssize_t proc_main_control_write(struct file *file, const char __user *buf, size_t buflen, loff_t *off) { char b[30]; unsigned long id; char *endp; struct rtpengine_table *t; int err; if (buflen < 6 || buflen > 20) return -EINVAL; if (copy_from_user(&b, buf, buflen)) return -EFAULT; if (!strncmp(b, "add ", 4)) { id = simple_strtoul(b + 4, &endp, 10); if (endp == b + 4) return -EINVAL; if (id >= MAX_ID) return -EINVAL; t = new_table_link((uint32_t) id); if (!t) return -EEXIST; table_put(t); t = NULL; } else if (!strncmp(b, "del ", 4)) { id = simple_strtoul(b + 4, &endp, 10); if (endp == b + 4) return -EINVAL; if (id >= MAX_ID) return -EINVAL; t = get_table((uint32_t) id); if (!t) return -ENOENT; err = unlink_table(t); table_put(t); t = NULL; if (err) return err; } else return -EINVAL; return buflen; } static int proc_control_mmap(struct file *file, struct vm_area_struct *vma) { size_t size, order; unsigned long pfn; struct page *page; void *pages; uint32_t id; struct rtpengine_table *t; int ret; struct re_shm *shm; struct inode *inode; // verify arguments if ((vma->vm_flags & VM_EXEC)) return -EPERM; if (vma->vm_pgoff) return -EINVAL; // verify size size = vma->vm_end - vma->vm_start; if (size == 0) return -EINVAL; // determine and verify order (1< order = 8 if (1 << order != size) return -ENXIO; // adjust order to page size if (order < PAGE_SHIFT) return -E2BIG; order -= PAGE_SHIFT; // ok, allocate pages page = alloc_pages(GFP_KERNEL_ACCOUNT, order); if (!page) return -ENOMEM; pages = page_address(page); shm = kzalloc(sizeof(*shm), GFP_KERNEL); if (!shm) { free_pages((unsigned long) pages, order); return -ENOMEM; } shm->head = pages; shm->size = size; shm->order = order; // get our table inode = file->f_path.dentry->d_inode; id = (uint32_t) (unsigned long) PDE_DATA(inode); t = get_table(id); if (!t) { free_pages((unsigned long) pages, order); kfree(shm); return -ENOENT; } pfn = virt_to_phys(pages) >> PAGE_SHIFT; vma->vm_private_data = pages; // remember kernel-space address vma->vm_ops = &vm_mmap_ops; ret = remap_pfn_range(vma, vma->vm_start, pfn, size, vma->vm_page_prot); if (ret == 0) { spin_lock(&t->shm_lock); list_add(&shm->list_entry, &t->shm_list); spin_unlock(&t->shm_lock); } table_put(t); return ret; } static int proc_control_open(struct inode *inode, struct file *file) { uint32_t id; struct rtpengine_table *t; unsigned long flags; int err; if ((err = proc_generic_open_modref(inode, file))) return err; id = (uint32_t) (unsigned long) PDE_DATA(inode); t = get_table(id); if (!t) return -ENOENT; write_lock_irqsave(&table_lock, flags); if (t->pid) { write_unlock_irqrestore(&table_lock, flags); table_put(t); return -EBUSY; } t->pid = current->tgid; write_unlock_irqrestore(&table_lock, flags); table_put(t); #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0) return stream_open(inode, file); #else return 0; #endif } static int proc_control_close(struct inode *inode, struct file *file) { uint32_t id; struct rtpengine_table *t; unsigned long flags; id = (uint32_t) (unsigned long) PDE_DATA(inode); t = get_table(id); if (!t) return 0; write_lock_irqsave(&table_lock, flags); t->pid = 0; write_unlock_irqrestore(&table_lock, flags); table_put(t); proc_generic_close_modref(inode, file); return 0; } /* array must be locked */ static int auto_array_find_free_index(struct re_auto_array *a) { void *ptr; unsigned int u, idx; DBG("auto_array_find_free_index()\n"); if (!list_empty(&a->free_list)) { DBG("returning from free list\n"); return pop_free_list_entry(a); } for (idx = 0; idx < a->array_len / (sizeof(unsigned long) * 8); idx++) { if (~a->used_bitfield[idx]) goto found; } /* nothing free found - extend array */ DBG("no free slot found, extending array\n"); u = a->array_len * 2; if (unlikely(!u)) u = 256; /* XXX make configurable? */ DBG("extending array from %u to %u\n", a->array_len, u); ptr = krealloc(a->array, sizeof(*a->array) * u, GFP_ATOMIC); if (!ptr) return -ENOMEM; a->array = ptr; DBG("zeroing main array starting at idx %u for %lu bytes\n", a->array_len, (u - a->array_len) * sizeof(*a->array)); memset(&a->array[a->array_len], 0, (u - a->array_len) * sizeof(*a->array)); ptr = krealloc(a->used_bitfield, u / 8, GFP_ATOMIC); if (!ptr) return -ENOMEM; a->used_bitfield = ptr; DBG("zeroing bitfield array starting at idx %lu for %u bytes\n", a->array_len / (sizeof(unsigned long) * 8), (u - a->array_len) / 8); memset(&a->used_bitfield[a->array_len / (sizeof(unsigned long) * 8)], 0, (u - a->array_len) / 8); idx = a->array_len / (sizeof(unsigned long) * 8); a->array_len = u; found: /* got our bitfield index, now look for the slot */ DBG("found unused slot at index %u\n", idx); idx = idx * sizeof(unsigned long) * 8; for (u = 0; u < sizeof(unsigned long) * 8; u++) { if (!a->array[idx + u]) goto found2; } panic("BUG while looking for unused index"); found2: idx += u; DBG("unused idx is %u\n", idx); return idx; } /* lock must be held */ static struct re_call *get_call(struct rtpengine_table *table, unsigned int idx) { struct re_call *ret; if (idx >= calls.array_len) return NULL; ret = calls.array[idx]; if (!ret) return NULL; if (table && ret->table_id != table->id) return NULL; if (ret->deleted) return NULL; return ret; } /* handles the locking (read) and reffing */ static struct re_call *get_call_lock(struct rtpengine_table *table, unsigned int idx) { struct re_call *ret; unsigned long flags; DBG("entering get_call_lock()\n"); _r_lock(&calls.lock, flags); DBG("calls.lock acquired\n"); ret = get_call(table, idx); if (ret) ref_get(ret); else DBG("call not found\n"); _r_unlock(&calls.lock, flags); DBG("calls.lock unlocked\n"); return ret; } /* lock must be held */ static struct re_stream *get_stream(struct re_call *call, unsigned int idx) { struct re_stream *ret; if (idx >= streams.array_len) return NULL; ret = streams.array[idx]; if (!ret) return NULL; if (call && ret->info.idx.call_idx != call->info.call_idx) return NULL; return ret; } /* handles the locking (read) and reffing */ static struct re_stream *get_stream_lock(struct re_call *call, unsigned int idx) { struct re_stream *ret; unsigned long flags; DBG("entering get_stream_lock()\n"); _r_lock(&streams.lock, flags); DBG("streams.lock acquired\n"); ret = get_stream(call, idx); if (ret) ref_get(ret); else DBG("stream not found\n"); _r_unlock(&streams.lock, flags); DBG("streams.lock unlocked\n"); return ret; } static int table_new_call(struct rtpengine_table *table, struct rtpengine_call_info *info) { int err; struct re_call *call, *hash_entry; unsigned int idx; unsigned long flags; /* validation */ if (info->call_id[0] == '\0') return -EINVAL; if (!memchr(info->call_id, '\0', sizeof(info->call_id))) return -EINVAL; DBG("Creating new call object\n"); /* allocate and initialize */ call = kzalloc(sizeof(*call), GFP_KERNEL); if (!call) return -ENOMEM; atomic_set(&call->refcnt, 1); call->table_id = table->id; INIT_LIST_HEAD(&call->streams); INIT_LIST_HEAD(&call->table_entry); /* check for name collisions */ call->hash_bucket = crc32_le(0x52342, info->call_id, strlen(info->call_id)); call->hash_bucket = call->hash_bucket & ((1 << RE_HASH_BITS) - 1); spin_lock_irqsave(&table->calls_hash_lock[call->hash_bucket], flags); hlist_for_each_entry(hash_entry, &table->calls_hash[call->hash_bucket], calls_hash_entry) { if (!strcmp(hash_entry->info.call_id, info->call_id)) goto found; } goto not_found; found: spin_unlock_irqrestore(&table->calls_hash_lock[call->hash_bucket], flags); printk(KERN_ERR "Call name collision: %s\n", info->call_id); err = -EEXIST; goto fail2; not_found: hlist_add_head(&call->calls_hash_entry, &table->calls_hash[call->hash_bucket]); ref_get(call); spin_unlock_irqrestore(&table->calls_hash_lock[call->hash_bucket], flags); /* create proc */ call->root = proc_mkdir_user(info->call_id, 0555, table->proc_calls); err = -ENOMEM; if (!call->root) goto fail4; _w_lock(&calls.lock, flags); idx = err = auto_array_find_free_index(&calls); if (err < 0) goto fail3; set_auto_array_index(&calls, idx, call); /* handing over ref */ info->call_idx = idx; memcpy(&call->info, info, sizeof(call->info)); list_add(&call->table_entry, &table->calls); /* new ref here */ ref_get(call); _w_unlock(&calls.lock, flags); return 0; fail3: _w_unlock(&calls.lock, flags); fail4: spin_lock_irqsave(&table->calls_hash_lock[call->hash_bucket], flags); hlist_del(&call->calls_hash_entry); spin_unlock_irqrestore(&table->calls_hash_lock[call->hash_bucket], flags); call_put(call); fail2: call_put(call); return err; } static int table_del_call(struct rtpengine_table *table, unsigned int idx) { int err; struct re_call *call = NULL; call = get_call_lock(table, idx); err = -ENOENT; if (!call) goto out; del_call(call, table); err = 0; out: if (call) call_put(call); return err; } /* must be called lock-free */ static void del_call(struct re_call *call, struct rtpengine_table *table) { struct re_stream *stream; unsigned long flags; DBG("del_call()\n"); /* the only references left might be the ones in the lists, so get one until we're done */ ref_get(call); _w_lock(&calls.lock, flags); if (call->deleted) { /* already doing this */ _w_unlock(&calls.lock, flags); call_put(call); return; } call->deleted = 1; _w_unlock(&calls.lock, flags); DBG("locking streams.lock\n"); _w_lock(&streams.lock, flags); while (!list_empty(&call->streams)) { stream = list_first_entry(&call->streams, struct re_stream, call_entry); ref_get(stream); _w_unlock(&streams.lock, flags); del_stream(stream, table); /* removes it from this list */ DBG("re-locking streams.lock\n"); _w_lock(&streams.lock, flags); } _w_unlock(&streams.lock, flags); DBG("locking table's call hash\n"); spin_lock_irqsave(&table->calls_hash_lock[call->hash_bucket], flags); if (!hlist_unhashed(&call->calls_hash_entry)) { hlist_del_init(&call->calls_hash_entry); call_put(call); } spin_unlock_irqrestore(&table->calls_hash_lock[call->hash_bucket], flags); _w_lock(&calls.lock, flags); if (!list_empty(&call->table_entry)) { list_del_init(&call->table_entry); call_put(call); } if (calls.array[call->info.call_idx] == call) { auto_array_clear_index(&calls, call->info.call_idx); call_put(call); } _w_unlock(&calls.lock, flags); DBG("del_call() done, releasing ref\n"); call_put(call); /* might be the last ref */ } static int table_new_stream(struct rtpengine_table *table, struct rtpengine_stream_info *info) { int err; struct re_call *call; struct re_stream *stream, *hash_entry; unsigned long flags; unsigned int idx; struct proc_dir_entry *pde; /* validation */ if (info->stream_name[0] == '\0') return -EINVAL; if (!memchr(info->stream_name, '\0', sizeof(info->stream_name))) return -EINVAL; /* get call object */ call = get_call_lock(table, info->idx.call_idx); if (!call) return -ENOENT; DBG("Creating new stream object\n"); /* allocate and initialize */ err = -ENOMEM; stream = kzalloc(sizeof(*stream), GFP_KERNEL); if (!stream) goto fail2; atomic_set(&stream->refcnt, 1); INIT_LIST_HEAD(&stream->packet_list); INIT_LIST_HEAD(&stream->call_entry); spin_lock_init(&stream->packet_list_lock); init_waitqueue_head(&stream->read_wq); init_waitqueue_head(&stream->close_wq); /* check for name collisions */ stream->hash_bucket = crc32_le(0x52342 ^ info->idx.call_idx, info->stream_name, strlen(info->stream_name)); stream->hash_bucket = stream->hash_bucket & ((1 << RE_HASH_BITS) - 1); spin_lock_irqsave(&table->streams_hash_lock[stream->hash_bucket], flags); hlist_for_each_entry(hash_entry, &table->streams_hash[stream->hash_bucket], streams_hash_entry) { if (hash_entry->info.idx.call_idx == info->idx.call_idx && !strcmp(hash_entry->info.stream_name, info->stream_name)) goto found; } goto not_found; found: spin_unlock_irqrestore(&table->streams_hash_lock[stream->hash_bucket], flags); printk(KERN_ERR "Stream name collision: %s\n", info->stream_name); err = -EEXIST; goto fail3; not_found: hlist_add_head(&stream->streams_hash_entry, &table->streams_hash[stream->hash_bucket]); ref_get(stream); spin_unlock_irqrestore(&table->streams_hash_lock[stream->hash_bucket], flags); /* add into array */ _w_lock(&streams.lock, flags); idx = err = auto_array_find_free_index(&streams); if (err < 0) goto fail4; set_auto_array_index(&streams, idx, stream); /* handing over ref */ /* copy info */ info->idx.stream_idx = idx; memcpy(&stream->info, info, sizeof(call->info)); if (!stream->info.max_packets) stream->info.max_packets = stream_packets_list_limit; list_add(&stream->call_entry, &call->streams); /* new ref here */ ref_get(stream); stream->call = call; ref_get(call); _w_unlock(&streams.lock, flags); /* proc_ functions may sleep, so this must be done outside of the lock */ pde = stream->file = proc_create_user(info->stream_name, S_IFREG | 0440, call->root, &proc_stream_ops, (void *) (unsigned long) info->idx.stream_idx); err = -ENOMEM; if (!pde) goto fail5; call_put(call); return 0; fail5: _w_lock(&streams.lock, flags); auto_array_clear_index(&streams, idx); fail4: _w_unlock(&streams.lock, flags); spin_lock_irqsave(&table->streams_hash_lock[stream->hash_bucket], flags); hlist_del(&stream->streams_hash_entry); spin_unlock_irqrestore(&table->streams_hash_lock[stream->hash_bucket], flags); stream_put(stream); fail3: stream_put(stream); fail2: call_put(call); return err; } /* must be called lock-free and with one reference held, which will be released */ static void del_stream(struct re_stream *stream, struct rtpengine_table *table) { unsigned long flags; DBG("del_stream()\n"); DBG("locking stream's packet list lock\n"); spin_lock_irqsave(&stream->packet_list_lock, flags); if (stream->eof) { /* already done this */ spin_unlock_irqrestore(&stream->packet_list_lock, flags); DBG("stream is EOF\n"); stream_put(stream); return; } stream->eof = 1; spin_unlock_irqrestore(&stream->packet_list_lock, flags); clear_stream_packets(stream); DBG("stream is finished (EOF), waking up threads\n"); wake_up_interruptible(&stream->read_wq); /* sleeping readers will now close files */ DBG("clearing stream from streams_hash\n"); spin_lock_irqsave(&table->streams_hash_lock[stream->hash_bucket], flags); if (!hlist_unhashed(&stream->streams_hash_entry)) { hlist_del_init(&stream->streams_hash_entry); stream_put(stream); } spin_unlock_irqrestore(&table->streams_hash_lock[stream->hash_bucket], flags); _w_lock(&streams.lock, flags); if (!list_empty(&stream->call_entry)) { DBG("clearing stream's call_entry\n"); list_del_init(&stream->call_entry); stream_put(stream); } _w_unlock(&streams.lock, flags); /* At this point, there should only be 2 references left: ours, and the entry in * the "streams" array. Any other references are open files and we must wait until * they're closed. There can be no new open file references as the stream is set * to eof. */ DBG("del_stream() waiting for other refs\n"); while (atomic_read(&stream->refcnt) != 2) { if (wait_event_interruptible_timeout(stream->close_wq, atomic_read(&stream->refcnt) == 2, HZ / 10) == 0) break; } DBG("clearing stream's stream_idx entry\n"); _w_lock(&streams.lock, flags); if (streams.array[stream->info.idx.stream_idx] == stream) { auto_array_clear_index(&streams, stream->info.idx.stream_idx); stream_put(stream); /* down to 1 ref */ } else printk(KERN_WARNING "BUG in del_stream with streams.array\n"); _w_unlock(&streams.lock, flags); DBG("del_stream() releasing last ref\n"); stream_put(stream); } static int table_del_stream(struct rtpengine_table *table, const struct rtpengine_stream_idx_info *info) { int err; struct re_call *call; struct re_stream *stream; DBG("table_del_stream()\n"); call = get_call_lock(table, info->call_idx); err = -ENOENT; if (!call) return -ENOENT; stream = get_stream_lock(call, info->stream_idx); err = -ENOENT; if (!stream) goto out; del_stream(stream, table); err = 0; out: call_put(call); return err; } static ssize_t proc_stream_read(struct file *f, char __user *b, size_t l, loff_t *o) { unsigned int stream_idx = (unsigned int) (unsigned long) PDE_DATA(f->f_path.dentry->d_inode); struct re_stream *stream; unsigned long flags; struct re_stream_packet *packet; ssize_t ret; const char *to_copy; struct udphdr *uh; struct iphdr *ih; struct ipv6hdr *ih6; unsigned int udplen, version; DBG("entering proc_stream_read()\n"); stream = get_stream_lock(NULL, stream_idx); if (!stream) return -EINVAL; DBG("locking stream's packet list lock\n"); spin_lock_irqsave(&stream->packet_list_lock, flags); while (list_empty(&stream->packet_list) && !stream->eof) { spin_unlock_irqrestore(&stream->packet_list_lock, flags); DBG("list is empty\n"); ret = -EAGAIN; if ((f->f_flags & O_NONBLOCK)) goto out; DBG("going to sleep\n"); ret = -ERESTARTSYS; if (wait_event_interruptible_timeout(stream->read_wq, !list_empty(&stream->packet_list) || stream->eof, HZ / 10)) goto out; DBG("awakened\n"); spin_lock_irqsave(&stream->packet_list_lock, flags); } ret = 0; if (stream->eof) { DBG("eof\n"); spin_unlock_irqrestore(&stream->packet_list_lock, flags); goto out; } DBG("removing packet from queue, reading %i bytes\n", (int) l); packet = list_first_entry(&stream->packet_list, struct re_stream_packet, list_entry); list_del(&packet->list_entry); stream->list_count--; spin_unlock_irqrestore(&stream->packet_list_lock, flags); if (packet->buflen) { ret = packet->buflen; to_copy = packet->buf; DBG("packet is from userspace, %i bytes\n", (int) ret); } else if (packet->skbuf) { ret = packet->skbuf->len; to_copy = packet->skbuf->data; DBG("packet is from kernel, %i bytes\n", (int) ret); } else { printk(KERN_WARNING "BUG in packet stream list buffer\n"); ret = -ENXIO; goto err; } if (ret > l) ret = l; version = ((to_copy[0] & 0xF0) >> 4); if (version == 4) { ih = (struct iphdr *)to_copy; ih->check = 0; ih->check = ip_fast_csum((u8 *)ih, ih->ihl); if (ih->check == 0){ ih->check = CSUM_MANGLED_0; } uh = (struct udphdr *)(to_copy + sizeof(struct iphdr)); udplen = ntohs(uh->len); uh->check = 0; uh->check = csum_tcpudp_magic(ih->saddr, ih->daddr, udplen, IPPROTO_UDP, csum_partial(uh, udplen, 0)); if (uh->check == 0){ uh->check = CSUM_MANGLED_0; } } else if (version == 6) { ih6 = (struct ipv6hdr *)to_copy; uh = (struct udphdr *)(to_copy + sizeof(struct ipv6hdr)); udplen = ntohs(uh->len); uh->check = 0; uh->check = csum_ipv6_magic(&ih6->saddr, &ih6->daddr, udplen, IPPROTO_UDP, csum_partial(uh, udplen, 0)); if (uh->check == 0){ uh->check = CSUM_MANGLED_0; } } if (copy_to_user(b, to_copy, ret)) ret = -EFAULT; err: free_packet(packet); out: stream_put(stream); return ret; } static unsigned int proc_stream_poll(struct file *f, struct poll_table_struct *p) { unsigned int stream_idx = (unsigned int) (unsigned long) PDE_DATA(f->f_path.dentry->d_inode); struct re_stream *stream; unsigned long flags; unsigned int ret = 0; DBG("entering proc_stream_poll()\n"); stream = get_stream_lock(NULL, stream_idx); if (!stream) return POLLERR; poll_wait(f, &stream->read_wq, p); DBG("locking stream's packet list lock\n"); spin_lock_irqsave(&stream->packet_list_lock, flags); if (!list_empty(&stream->packet_list)) ret |= POLLIN | POLLRDNORM; if (stream->eof) ret |= POLLIN | POLLRDNORM | POLLHUP | POLLRDHUP; DBG("returning from proc_stream_poll()\n"); spin_unlock_irqrestore(&stream->packet_list_lock, flags); stream_put(stream); return ret; } static int proc_stream_open(struct inode *i, struct file *f) { int err; unsigned int stream_idx = (unsigned int) (unsigned long) PDE_DATA(f->f_path.dentry->d_inode); struct re_stream *stream; unsigned long flags; DBG("entering proc_stream_open()\n"); if ((err = proc_generic_open_modref(i, f))) return err; stream = get_stream_lock(NULL, stream_idx); if (!stream) return -EIO; spin_lock_irqsave(&stream->packet_list_lock, flags); if (stream->eof) { spin_unlock_irqrestore(&stream->packet_list_lock, flags); stream_put(stream); return -ETXTBSY; } spin_unlock_irqrestore(&stream->packet_list_lock, flags); return 0; } static int proc_stream_close(struct inode *i, struct file *f) { unsigned int stream_idx = (unsigned int) (unsigned long) PDE_DATA(f->f_path.dentry->d_inode); struct re_stream *stream; DBG("entering proc_stream_close()\n"); stream = get_stream_lock(NULL, stream_idx); if (!stream) return -EIO; /* release our own ref and the ref from _open */ stream_put(stream); stream_put(stream); proc_generic_close_modref(i, f); return 0; } static void add_stream_packet(struct re_stream *stream, struct re_stream_packet *packet) { int err; unsigned long flags; LIST_HEAD(delete_list); /* append */ DBG("entering add_stream_packet()\n"); DBG("locking stream's packet list lock\n"); spin_lock_irqsave(&stream->packet_list_lock, flags); err = 0; if (stream->eof) goto err; /* we accept, but ignore/discard */ DBG("adding packet to queue\n"); list_add_tail(&packet->list_entry, &stream->packet_list); stream->list_count++; DBG("%u packets now in queue\n", stream->list_count); /* discard older packets */ while (stream->list_count > stream->info.max_packets) { log_err("Queue is full, discarding old packet from queue"); packet = list_first_entry(&stream->packet_list, struct re_stream_packet, list_entry); list_del(&packet->list_entry); list_add(&packet->list_entry, &delete_list); stream->list_count--; } spin_unlock_irqrestore(&stream->packet_list_lock, flags); DBG("stream's packet list lock is unlocked, now awakening processes\n"); wake_up_interruptible(&stream->read_wq); while (!list_empty(&delete_list)) { packet = list_first_entry(&delete_list, struct re_stream_packet, list_entry); list_del(&packet->list_entry); free_packet(packet); } return; err: DBG("error adding packet to stream\n"); spin_unlock_irqrestore(&stream->packet_list_lock, flags); free_packet(packet); return; } static int stream_packet(struct rtpengine_table *t, const struct rtpengine_packet_info *info, size_t len) { struct re_stream *stream; int err; struct re_stream_packet *packet; const char *data = info->data; if (!len) /* can't have empty packets */ return -EINVAL; DBG("received %zu bytes of data from userspace\n", len); err = -ENOENT; stream = get_stream_lock(NULL, info->stream_idx); if (!stream) goto out; DBG("data for stream %s\n", stream->info.stream_name); /* alloc and copy */ err = -ENOMEM; packet = kmalloc(sizeof(*packet) + len, GFP_KERNEL); if (!packet) goto out2; memset(packet, 0, sizeof(*packet)); memcpy(packet->buf, data, len); packet->buflen = len; /* append */ add_stream_packet(stream, packet); err = 0; goto out2; out2: stream_put(stream); out: return err; } // returns: -1 = no SSRCs were given, -2 = SSRCs were given but SSRC not found static int target_find_ssrc(struct rtpengine_target *g, uint32_t ssrc) { int ssrc_idx; if (unlikely(!g->target.ssrc[0])) return -1; for (ssrc_idx = 0; ssrc_idx < RTPE_NUM_SSRC_TRACKING; ssrc_idx++) { if (!g->target.ssrc[ssrc_idx]) break; if (g->target.ssrc[ssrc_idx] == ssrc) return ssrc_idx; } return -2; } static void parse_rtcp(struct rtp_parsed *rtp, struct sk_buff *skb) { rtp->ok = 0; rtp->rtcp = 0; if (skb->len < sizeof(struct rtcp_header)) return; rtp->rtcp_header = (void *) skb->data; rtp->header_len = sizeof(struct rtcp_header); rtp->payload = skb->data + sizeof(struct rtcp_header); rtp->payload_len = skb->len - sizeof(struct rtcp_header); rtp->rtcp = 1; } #ifdef KERNEL_PLAYER static void shut_threads(struct timer_thread **thr, unsigned int nt) { unsigned int i; if (!thr) return; for (i = 0; i < nt; i++) { struct timer_thread *tt = thr[i]; if (!tt) continue; //printk(KERN_WARNING "stopping %u\n", i); atomic_set(&tt->shutdown, 1); wake_up_interruptible(&tt->queue); // thread frees itself } kfree(thr); } static void shut_all_threads(void) { LIST_HEAD(list); unsigned int nt; struct timer_thread **thr; write_lock(&media_player_lock); thr = timer_threads; nt = num_timer_threads; timer_threads = NULL; num_timer_threads = 0; write_unlock(&media_player_lock); shut_threads(thr, nt); } static void free_packet_stream(struct play_stream_packets *stream) { struct play_stream_packet *packet, *tp; struct rtpengine_table *t; //printk(KERN_WARNING "freeing packet stream %p\n", stream); list_for_each_entry_safe(packet, tp, &stream->packets, list) free_play_stream_packet(packet); if (stream->table_id != -1 && !list_empty(&stream->table_entry)) { t = get_table(stream->table_id); if (t) { spin_lock(&t->player_lock); list_del_init(&stream->table_entry); t->num_packet_streams--; spin_unlock(&t->player_lock); table_put(t); } } kfree(stream); } static void __unref_packet_stream(struct play_stream_packets *stream) { if (atomic_dec_and_test(&stream->refcnt)) free_packet_stream(stream); } // stream must be locked and started static ktime_t play_stream_packet_time(struct play_stream *stream, struct play_stream_packet *packet) { return ktime_add(stream->start_time, packet->delay); } // stream must be locked, started, and non-empty static void play_stream_next_packet(struct play_stream *stream) { struct play_stream_packet *packet = stream->position; struct play_stream_packets *packets = stream->packets; read_lock(&packets->lock); stream->position = list_is_last(&packet->list, &packets->packets) ? NULL : list_next_entry(packet, list); if (!stream->position) { if (stream->info.repeat > 1) { stream->info.repeat--; stream->position = list_first_entry(&packets->packets, struct play_stream_packet, list); stream->start_time = play_stream_packet_time(stream, packet); stream->info.ts += packet->ts + packet->duration_ts; stream->info.seq += packet->seq + 1; } } read_unlock(&packets->lock); } // stream must be locked, started, and non-empty // tt->tree_lock must be locked static void play_stream_insert_packet_to_tree(struct play_stream *stream, struct timer_thread *tt, ktime_t scheduled) { int64_t offset; // make sure key is unique // negative as we only have btree_last(), no btree_first() for (offset = 0; btree_lookup64(&tt->tree, -1 * ktime_to_ns(scheduled) + offset) != NULL; offset++) { } stream->tree_index = -1 * ktime_to_ns(scheduled) + offset; btree_insert64(&tt->tree, stream->tree_index, stream, GFP_ATOMIC); } // stream must be locked, started, and non-empty // tree must not be locked static void play_stream_schedule_packet_to_thread(struct play_stream *stream, struct timer_thread *tt, bool reschedule) { ktime_t scheduled; struct play_stream_packet *packet; packet = stream->position; scheduled = play_stream_packet_time(stream, packet); //if (sleeper) //printk(KERN_WARNING "scheduling packet %u on thread %u\n", packet->seq, tt->idx); //printk(KERN_WARNING "scheduling stream %p on thread %p (sleeper %i)\n", stream, tt, sleeper); spin_lock(&tt->tree_lock); if (reschedule && !tt->scheduled && !tt->tree_added) { // we know we are next. remember this tt->scheduled = stream; ref_play_stream(stream); tt->scheduled_at = scheduled; } else { // all other cases: add to tree, or put as next if (tt->scheduled && ktime_before(scheduled, tt->scheduled_at)) { // we are next. return previous entry to tree and put us as next play_stream_insert_packet_to_tree(tt->scheduled, tt, tt->scheduled_at); tt->scheduled = stream; ref_play_stream(stream); tt->scheduled_at = scheduled; } else { // insert into tree play_stream_insert_packet_to_tree(stream, tt, scheduled); ref_play_stream(stream); } tt->tree_added = true; } stream->timer_thread = tt; spin_unlock(&tt->tree_lock); } // stream must be locked, started, and non-empty // threads->tree_lock must be unlocked (one will be locked) // lock order: stream lock first, thread->tree_lock second // num_timer_threads must be >0 static void play_stream_schedule_packet(struct play_stream *stream) { struct timer_thread *tt; unsigned int idx; // XXX check if already scheduled read_lock(&media_player_lock); idx = atomic_fetch_add(1, &last_timer_thread_idx) % num_timer_threads; tt = timer_threads[idx]; read_unlock(&media_player_lock); play_stream_schedule_packet_to_thread(stream, tt, false); wake_up_interruptible(&tt->queue); // XXX need to refcount tt? for shutdown/free race? } static void play_stream_send_packet(struct play_stream *stream, struct play_stream_packet *packet) { struct sk_buff *skb; struct rtp_parsed rtp; skb = alloc_skb(packet->len + MAX_HEADER + MAX_SKB_TAIL_ROOM, GFP_KERNEL); if (!skb) return; // XXX log/count error? // reserve head room (L2/L3 header) and copy data in skb_reserve(skb, MAX_HEADER); // RTP header rtp.header_len = sizeof(*rtp.rtp_header); rtp.rtp_header = skb_put(skb, sizeof(*rtp.rtp_header)); *rtp.rtp_header = (struct rtp_header) { .v_p_x_cc = 0x80, .m_pt = stream->info.pt, .seq_num = htons(stream->info.seq + packet->seq), .timestamp = htonl(stream->info.ts + packet->ts), .ssrc = stream->info.ssrc, }; // payload rtp.payload = skb_put(skb, packet->len); memcpy(rtp.payload, packet->data, packet->len); rtp.payload_len = packet->len; rtp.ok = 1; rtp.rtcp = 0; // XXX add TOS proxy_packet_srtp_encrypt(skb, &stream->encrypt, &stream->info.encrypt, &rtp, 0, &stream->info.ssrc_stats); send_proxy_packet(skb, &stream->info.src_addr, &stream->info.dst_addr, 0, NULL); atomic64_inc(&stream->info.stats->packets); atomic64_add(packet->len, &stream->info.stats->bytes); atomic64_inc(&stream->info.iface_stats->out.packets); atomic64_add(packet->len, &stream->info.iface_stats->out.bytes); } static void free_play_stream(struct play_stream *s) { //printk(KERN_WARNING "freeing play stream %p\n", s); free_crypto_context(&s->encrypt); if (s->packets) unref_packet_stream(s->packets); kfree(s); } static void __unref_play_stream(struct play_stream *s) { if (atomic_dec_and_test(&s->refcnt)) free_play_stream(s); } static int timer_worker(void *p) { struct timer_thread *tt = p; //printk(KERN_WARNING "cpu %u running\n", smp_processor_id()); while (!atomic_read(&tt->shutdown)) { int64_t timer_scheduled; struct play_stream *stream; ktime_t now, packet_scheduled; int64_t sleeptime_ns; struct play_stream_packet *packet; struct play_stream_packets *packets; //printk(KERN_WARNING "cpu %u (%p) loop enter\n", smp_processor_id(), tt); spin_lock(&tt->tree_lock); // grab and remove next scheduled stream, either from predetermined entry or from tree stream = tt->scheduled; if (!stream) { // XXX combine lookup and removal into one operation stream = btree_last64(&tt->tree, &timer_scheduled); if (stream) btree_remove64(&tt->tree, timer_scheduled); } else { tt->scheduled = NULL; tt->scheduled_at = 0; } tt->tree_added = false; // we're up to date before unlock spin_unlock(&tt->tree_lock); sleeptime_ns = 500000000LL; // 0.5 seconds if (stream) { //printk(KERN_WARNING "cpu %u got stream\n", smp_processor_id()); now = ktime_get(); spin_lock(&stream->lock); if (stream->table_id == -1) { // we've been descheduled spin_unlock(&stream->lock); unref_play_stream(stream); continue; } stream->timer_thread = NULL; packet = stream->position; packet_scheduled = play_stream_packet_time(stream, packet); //printk(KERN_WARNING "next packet %p at %li, time now %li\n", packet, //(long int) ktime_to_ns(packet_scheduled), //(long int) ktime_to_ns(now)); if (ktime_after(now, packet_scheduled)) { //printk(KERN_WARNING "cpu %u sending packet %p from stream %p now\n", //smp_processor_id(), packet, stream); spin_unlock(&stream->lock); //printk(KERN_WARNING "cpu %u sending packet %u now\n", tt->idx, packet->seq); play_stream_send_packet(stream, packet); spin_lock(&stream->lock); if (stream->table_id != -1) play_stream_next_packet(stream); else stream->position = NULL; packets = NULL; if (stream->position) { play_stream_schedule_packet_to_thread(stream, tt, false); sleeptime_ns = 0; // loop and get next packet from tree spin_unlock(&stream->lock); unref_play_stream(stream); stream = NULL; } else { // end of stream if (!stream->info.remove_at_end) spin_unlock(&stream->lock); else { // remove it end_of_stream(stream); spin_unlock(&stream->lock); write_lock(&media_player_lock); if (play_streams[stream->idx] == stream) { play_streams[stream->idx] = NULL; unref_play_stream(stream); } // else log error? write_unlock(&media_player_lock); } unref_play_stream(stream); stream = NULL; } } else { // figure out sleep time int64_t ns_diff = ktime_to_ns(ktime_sub(packet_scheduled, now)); //printk(KERN_WARNING "stream time diff %li ns\n", (long int) ns_diff); //if (diff == 0 && ns_diff > 0) //printk(KERN_WARNING "stream time diff %li ns %li jiffies\n", //(long int) ns_diff, (long int) diff); //if (ns_diff > 0) //printk(KERN_WARNING "sleep time %li ms for packet %u on cpu %u\n", //(long int) (ns_diff / 1000000LL), packet->seq, //tt->idx); // return packet to tree play_stream_schedule_packet_to_thread(stream, tt, true); spin_unlock(&stream->lock); sleeptime_ns = min(sleeptime_ns, ns_diff); unref_play_stream(stream); stream = NULL; } } if (sleeptime_ns > 0) { ktime_t a, b, c; int64_t c_ns; //printk(KERN_WARNING "cpu %u sleep %li ms, slack %li ns\n", tt->idx, //(long int) (sleeptime_ns / 1000000LL), //(long int) (current->timer_slack_ns / 1000000LL)); a = ktime_get(); wait_event_interruptible_hrtimeout(tt->queue, atomic_read(&tt->shutdown) || tt->tree_added, ktime_set(0, sleeptime_ns)); b = ktime_get(); c = ktime_sub(b, a); c_ns = ktime_to_ns(c); //printk(KERN_WARNING "cpu %u wanted sleep %li ms, actual sleep %li ms\n", tt->idx, //(long int) (sleeptime_ns / 1000000LL), (long int) (c_ns / 1000000LL)); } //printk(KERN_WARNING "cpu %u awoken\n", smp_processor_id()); } //printk(KERN_WARNING "cpu %u exiting\n", smp_processor_id()); btree_destroy64(&tt->tree); kfree(tt); return 0; } static struct timer_thread *launch_thread(unsigned int cpu) { struct timer_thread *tt; int ret; //printk(KERN_WARNING "try to launch %u\n", cpu); tt = kzalloc(sizeof(*tt), GFP_KERNEL); if (!tt) return ERR_PTR(-ENOMEM); init_waitqueue_head(&tt->queue); atomic_set(&tt->shutdown, 0); ret = btree_init64(&tt->tree); if (ret) { btree_destroy64(&tt->tree); kfree(tt); return ERR_PTR(ret); } spin_lock_init(&tt->tree_lock); tt->idx = cpu; tt->task = kthread_create_on_node(timer_worker, tt, cpu_to_node(cpu), "rtpengine_%u", cpu); if (IS_ERR(tt->task)) { int ret = PTR_ERR(tt->task); btree_destroy64(&tt->tree); kfree(tt); return ERR_PTR(ret); } kthread_bind(tt->task, cpu); wake_up_process(tt->task); //printk(KERN_WARNING "cpu %u ok\n", cpu); return tt; } static int init_play_streams(unsigned int n_play_streams, unsigned int n_stream_packets) { int ret = 0; struct timer_thread **threads_new = NULL; unsigned int new_num_threads = 0; bool need_threads; struct play_stream **new_play_streams, **old_play_streams = NULL; struct play_stream_packets **new_stream_packets, **old_stream_packets = NULL; unsigned int cpu; write_lock(&media_player_lock); if (num_play_streams >= n_play_streams && num_stream_packets >= n_stream_packets) goto out; need_threads = timer_threads == NULL; write_unlock(&media_player_lock); //printk(KERN_WARNING "allocating for %u/%u -> %u/%u streams\n", //num_play_streams, n_play_streams, //num_stream_packets, n_stream_packets); ret = -ENOMEM; new_play_streams = kzalloc(sizeof(*new_play_streams) * n_play_streams, GFP_KERNEL); if (!new_play_streams) goto err; new_stream_packets = kzalloc(sizeof(*new_stream_packets) * n_stream_packets, GFP_KERNEL); if (!new_stream_packets) goto err; if (need_threads) { ret = -ENXIO; new_num_threads = num_online_cpus(); if (new_num_threads == 0) goto err; threads_new = kzalloc(sizeof(*threads_new) * new_num_threads, GFP_KERNEL); if (!threads_new) goto err; for (cpu = 0; cpu < num_online_cpus(); cpu++) { threads_new[cpu] = launch_thread(cpu); if (IS_ERR(threads_new[cpu])) { ret = PTR_ERR(threads_new[cpu]); threads_new[cpu] = NULL; goto err; } } } write_lock(&media_player_lock); // check again ret = 0; if (num_play_streams >= n_play_streams && num_stream_packets >= n_stream_packets) goto out; memcpy(new_play_streams, play_streams, sizeof(*play_streams) * num_play_streams); num_play_streams = n_play_streams; old_play_streams = play_streams; play_streams = new_play_streams; memcpy(new_stream_packets, stream_packets, sizeof(*stream_packets) * num_stream_packets); num_stream_packets = n_stream_packets; old_stream_packets = stream_packets; stream_packets = new_stream_packets; if (!timer_threads) { timer_threads = threads_new; num_timer_threads = new_num_threads; new_num_threads = 0; threads_new = NULL; } out: write_unlock(&media_player_lock); err: shut_threads(threads_new, new_num_threads); kfree(old_play_streams); kfree(old_stream_packets); return ret; } static int get_packet_stream(struct rtpengine_table *t, unsigned int *num) { struct play_stream_packets *new_stream; unsigned int idx = -1; unsigned int i; new_stream = kzalloc(sizeof(*new_stream), GFP_KERNEL); if (!new_stream) return -ENOMEM; INIT_LIST_HEAD(&new_stream->packets); INIT_LIST_HEAD(&new_stream->table_entry); rwlock_init(&new_stream->lock); new_stream->table_id = t->id; atomic_set(&new_stream->refcnt, 1); for (i = 0; i < num_stream_packets; i++) { write_lock(&media_player_lock); idx = atomic_fetch_add(1, &last_stream_packets_idx) % num_stream_packets; if (stream_packets[idx]) { idx = -1; write_unlock(&media_player_lock); continue; } stream_packets[idx] = new_stream; new_stream->idx = idx; ref_packet_stream(new_stream); write_unlock(&media_player_lock); break; } if (idx == -1) { kfree(new_stream); return -EBUSY; } spin_lock(&t->player_lock); list_add(&new_stream->table_entry, &t->packet_streams); // hand over ref new_stream = NULL; t->num_packet_streams++; // XXX race between adding to list and stop/free? spin_unlock(&t->player_lock); *num = idx; return 0; } static void free_play_stream_packet(struct play_stream_packet *p) { //printk(KERN_WARNING "freeing stream packet %u\n", p->seq); kfree(p->data); kfree(p); } static int play_stream_packet(const struct rtpengine_play_stream_packet_info *info, size_t len) { const char *data = info->data; struct play_stream_packets *stream; int ret = 0; struct play_stream_packet *packet = NULL, *last; //printk(KERN_WARNING "size %zu\n", len); packet = kzalloc(sizeof(*packet), GFP_KERNEL); if (!packet) return -ENOMEM; packet->len = len; packet->data = kmalloc(len, GFP_KERNEL); if (!packet) goto out; memcpy(packet->data, data, len); packet->delay = ms_to_ktime(info->delay_ms); packet->ts = info->delay_ts; packet->duration_ts = info->duration_ts; //printk(KERN_WARNING "new packet %p, delay %ld us\n", packet, (long int) ktime_to_us(packet->delay)); // XXX alloc skb read_lock(&media_player_lock); ret = -ERANGE; if (info->packet_stream_idx >= num_stream_packets) goto out; stream = stream_packets[info->packet_stream_idx]; ret = -ENOENT; if (!stream) goto out; write_lock(&stream->lock); if (!list_empty(&stream->packets)) { last = list_last_entry(&stream->packets, struct play_stream_packet, list); if (ktime_after(last->delay, packet->delay)) { write_unlock(&stream->lock); ret = -ELOOP; goto out; } } list_add_tail(&packet->list, &stream->packets); packet->seq = stream->len; stream->len++; write_unlock(&stream->lock); packet = NULL; ret = 0; out: read_unlock(&media_player_lock); if (packet) free_play_stream_packet(packet); return ret; } static int play_stream(struct rtpengine_table *t, const struct rtpengine_play_stream_info *info, unsigned int *num) { struct play_stream *play_stream; struct play_stream_packets *packets = NULL; int ret; unsigned int idx = -1; unsigned int i; struct interface_stats_block *iface_stats; struct stream_stats *stats; struct ssrc_stats *ssrc_stats; if (!is_valid_address(&info->src_addr)) return -EINVAL; if (!is_valid_address(&info->dst_addr)) return -EINVAL; if (info->dst_addr.family != info->src_addr.family) return -EINVAL; if (validate_srtp(&info->encrypt)) return -EINVAL; iface_stats = shm_map_resolve(info->iface_stats, sizeof(*iface_stats)); if (!iface_stats) return -EFAULT; stats = shm_map_resolve(info->stats, sizeof(*stats)); if (!stats) return -EFAULT; ssrc_stats = shm_map_resolve(info->ssrc_stats, sizeof(*ssrc_stats)); if (!ssrc_stats) return -EFAULT; ret = -ENOMEM; play_stream = kzalloc(sizeof(*play_stream), GFP_KERNEL); if (!play_stream) goto out; INIT_LIST_HEAD(&play_stream->table_entry); play_stream->info = *info; play_stream->table_id = t->id; atomic_set(&play_stream->refcnt, 1); spin_lock_init(&play_stream->lock); play_stream->info.stats = stats; play_stream->info.iface_stats = iface_stats; play_stream->info.ssrc_stats = ssrc_stats; ret = 0; read_lock(&media_player_lock); if (info->packet_stream_idx >= num_stream_packets) ret = -ERANGE; else { packets = stream_packets[info->packet_stream_idx]; if (!packets) ret = -ENOENT; else ref_packet_stream(packets); } read_unlock(&media_player_lock); if (ret) goto out; read_lock(&packets->lock); ret = -ENXIO; if (list_empty(&packets->packets)) { read_unlock(&packets->lock); goto out; } play_stream->packets = packets; play_stream->position = list_first_entry(&packets->packets, struct play_stream_packet, list); read_unlock(&packets->lock); packets = NULL; // ref handed over for (i = 0; i < num_play_streams; i++) { write_lock(&media_player_lock); idx = atomic_fetch_add(1, &last_play_stream_idx) % num_play_streams; if (play_streams[idx]) { write_unlock(&media_player_lock); idx = -1; continue; } play_streams[idx] = play_stream; ref_play_stream(play_stream); play_stream->idx = idx; write_unlock(&media_player_lock); break; } ret = -EBUSY; if (idx == -1) goto out; spin_lock(&t->player_lock); list_add(&play_stream->table_entry, &t->play_streams); ref_play_stream(play_stream); t->num_play_streams++; // XXX race between adding to list and stop/free? spin_unlock(&t->player_lock); spin_lock(&play_stream->lock); play_stream->start_time = ktime_get(); crypto_context_init(&play_stream->encrypt, &info->encrypt); ret = gen_rtp_session_keys(&play_stream->encrypt, &info->encrypt); if (ret) { spin_unlock(&play_stream->lock); goto out; } //printk(KERN_WARNING "start time %ld us\n", (long int) ktime_to_us(play_stream->start_time)); play_stream_schedule_packet(play_stream); spin_unlock(&play_stream->lock); *num = idx; ret = 0; out: if (play_stream) unref_play_stream(play_stream); if (packets) unref_packet_stream(packets); return ret; } // stream must be locked, reference must be held static void end_of_stream(struct play_stream *stream) { struct rtpengine_table *t; if (stream->table_id != -1 && !list_empty(&stream->table_entry)) { t = get_table(stream->table_id); if (t) { //printk(KERN_WARNING "removing stream %p from table\n", stream); spin_lock(&t->player_lock); list_del_init(&stream->table_entry); t->num_play_streams--; spin_unlock(&t->player_lock); table_put(t); unref_play_stream(stream); } } stream->table_id = -1; } // stream lock is not held, reference must be held static void do_stop_stream(struct play_stream *stream) { struct timer_thread *tt; struct play_stream *old_stream; //printk(KERN_WARNING "stop stream %p\n", stream); spin_lock(&stream->lock); end_of_stream(stream); tt = stream->timer_thread; stream->timer_thread = NULL; if (tt) { spin_lock(&tt->tree_lock); if (tt->scheduled == stream) { //printk(KERN_WARNING "stream %p was scheduled\n", stream); tt->scheduled = NULL; unref_play_stream(stream); } else { old_stream = btree_lookup64(&tt->tree, stream->tree_index); if (old_stream == stream) { //printk(KERN_WARNING "stream %p was in tree\n", stream); btree_remove64(&tt->tree, stream->tree_index); unref_play_stream(stream); } else { //printk(KERN_ERR "stream %p not scheduled!\n", stream); } } spin_unlock(&tt->tree_lock); } spin_unlock(&stream->lock); } static int stop_stream(struct rtpengine_table *t, unsigned int num) { struct play_stream *stream; int ret; ret = 0; write_lock(&media_player_lock); if (num >= num_play_streams) ret = -ERANGE; else { stream = play_streams[num]; if (!stream) ret = -ENOENT; else play_streams[num] = NULL;; } write_unlock(&media_player_lock); if (ret) return ret; do_stop_stream(stream); // check if stream was released, wait if it wasn't spin_lock(&stream->lock); while (stream->timer_thread) { spin_unlock(&stream->lock); cpu_relax(); schedule(); spin_lock(&stream->lock); } spin_unlock(&stream->lock); unref_play_stream(stream); return 0; } static int cmd_free_packet_stream(struct rtpengine_table *t, unsigned int idx) { struct play_stream_packets *stream = NULL; int ret; write_lock(&media_player_lock); ret = -ERANGE; if (idx >= num_stream_packets) goto out; stream = stream_packets[idx]; ret = -ENOENT; if (!stream) goto out; // steal reference stream_packets[idx] = NULL; ret = 0; out: write_unlock(&media_player_lock); if (!stream) return ret; write_lock(&stream->lock); idx = stream->idx; stream->table_id = -1; write_unlock(&stream->lock); if (idx != -1) { write_lock(&media_player_lock); if (stream_packets[idx] == stream) { stream_packets[idx] = NULL; unref_packet_stream(stream); } write_unlock(&media_player_lock); } if (!list_empty(&stream->table_entry)) { spin_lock(&t->player_lock); list_del_init(&stream->table_entry); t->num_packet_streams--; spin_unlock(&t->player_lock); unref_packet_stream(stream); } unref_packet_stream(stream); return 0; } #endif static const size_t min_req_sizes[__REMG_LAST] = { [REMG_INIT] = sizeof(struct rtpengine_command_init), [REMG_ADD_TARGET] = sizeof(struct rtpengine_command_add_target), [REMG_DEL_TARGET] = sizeof(struct rtpengine_command_del_target), [REMG_ADD_DESTINATION] = sizeof(struct rtpengine_command_destination), [REMG_ADD_CALL] = sizeof(struct rtpengine_command_add_call), [REMG_DEL_CALL] = sizeof(struct rtpengine_command_del_call), [REMG_ADD_STREAM] = sizeof(struct rtpengine_command_add_stream), [REMG_DEL_STREAM] = sizeof(struct rtpengine_command_del_stream), [REMG_PACKET] = sizeof(struct rtpengine_command_packet), [REMG_INIT_PLAY_STREAMS]= sizeof(struct rtpengine_command_init_play_streams), [REMG_GET_PACKET_STREAM]= sizeof(struct rtpengine_command_get_packet_stream), [REMG_PLAY_STREAM_PACKET]= sizeof(struct rtpengine_command_play_stream_packet), [REMG_PLAY_STREAM] = sizeof(struct rtpengine_command_play_stream), [REMG_STOP_STREAM] = sizeof(struct rtpengine_command_stop_stream), [REMG_FREE_PACKET_STREAM]= sizeof(struct rtpengine_command_free_packet_stream), }; static const size_t max_req_sizes[__REMG_LAST] = { [REMG_INIT] = sizeof(struct rtpengine_command_init), [REMG_ADD_TARGET] = sizeof(struct rtpengine_command_add_target), [REMG_DEL_TARGET] = sizeof(struct rtpengine_command_del_target), [REMG_ADD_DESTINATION] = sizeof(struct rtpengine_command_destination), [REMG_ADD_CALL] = sizeof(struct rtpengine_command_add_call), [REMG_DEL_CALL] = sizeof(struct rtpengine_command_del_call), [REMG_ADD_STREAM] = sizeof(struct rtpengine_command_add_stream), [REMG_DEL_STREAM] = sizeof(struct rtpengine_command_del_stream), [REMG_PACKET] = sizeof(struct rtpengine_command_packet) + 65535, [REMG_INIT_PLAY_STREAMS]= sizeof(struct rtpengine_command_init_play_streams), [REMG_GET_PACKET_STREAM]= sizeof(struct rtpengine_command_get_packet_stream), [REMG_PLAY_STREAM_PACKET]= sizeof(struct rtpengine_command_play_stream_packet) + 65535, [REMG_PLAY_STREAM] = sizeof(struct rtpengine_command_play_stream), [REMG_STOP_STREAM] = sizeof(struct rtpengine_command_stop_stream), [REMG_FREE_PACKET_STREAM]= sizeof(struct rtpengine_command_free_packet_stream), }; static int rtpengine_init_table(struct rtpengine_table *t, struct rtpengine_init_info *init) { int i; if (t->rtpe_stats) return -EBUSY; t->rtpe_stats = shm_map_resolve(init->rtpe_stats, sizeof(*t->rtpe_stats)); if (!t->rtpe_stats) return -EFAULT; if (init->last_cmd != __REMG_LAST) return -ERANGE; for (i = 0; i < __REMG_LAST; i++) if (init->msg_size[i] != min_req_sizes[i]) return -EMSGSIZE; return 0; } static inline ssize_t proc_control_read_write(struct file *file, char __user *ubuf, size_t buflen, int writeable) { struct inode *inode; uint32_t id; struct rtpengine_table *t; int err; enum rtpengine_command cmd; char scratchbuf[512]; union { struct rtpengine_command_init *init; struct rtpengine_command_add_target *add_target; struct rtpengine_command_del_target *del_target; struct rtpengine_command_destination *destination; struct rtpengine_command_add_call *add_call; struct rtpengine_command_del_call *del_call; struct rtpengine_command_add_stream *add_stream; struct rtpengine_command_del_stream *del_stream; struct rtpengine_command_packet *packet; #ifdef KERNEL_PLAYER struct rtpengine_command_init_play_streams *init_play_streams; struct rtpengine_command_get_packet_stream *get_packet_stream; struct rtpengine_command_play_stream_packet *play_stream_packet; struct rtpengine_command_play_stream *play_stream; struct rtpengine_command_stop_stream *stop_stream; struct rtpengine_command_free_packet_stream *free_packet_stream; #endif char *storage; } msg; // verify absolute minimum size if (buflen < sizeof(cmd)) return -EIO; // copy request header if (copy_from_user(&cmd, ubuf, sizeof(cmd))) return -EFAULT; // verify request if (cmd < 1 || cmd >= __REMG_LAST) { printk(KERN_WARNING "xt_RTPENGINE unimplemented op %u\n", cmd); return -EINVAL; } // verify request size if (buflen < min_req_sizes[cmd]) return -EMSGSIZE; if (buflen > max_req_sizes[cmd]) return -ERANGE; // do we need an extra large storage buffer? if (buflen > sizeof(scratchbuf)) { msg.storage = kmalloc(buflen, GFP_KERNEL); if (!msg.storage) return -ENOMEM; } else msg.storage = scratchbuf; // get our table inode = file->f_path.dentry->d_inode; id = (uint32_t) (unsigned long) PDE_DATA(inode); t = get_table(id); err = -ENOENT; if (!t) goto err_free; // copy in the entire request err = -EFAULT; if (copy_from_user(msg.storage, ubuf, buflen)) goto err_table_free; // execute command err = 0; switch (cmd) { case REMG_INIT: err = rtpengine_init_table(t, &msg.init->init); break; case REMG_ADD_TARGET: err = table_new_target(t, &msg.add_target->target); break; case REMG_DEL_TARGET: err = table_del_target(t, &msg.del_target->local); break; case REMG_ADD_DESTINATION: err = table_add_destination(t, &msg.destination->destination); break; case REMG_ADD_CALL: err = -EINVAL; if (writeable) err = table_new_call(t, &msg.add_call->call); break; case REMG_DEL_CALL: err = table_del_call(t, msg.del_call->call_idx); break; case REMG_ADD_STREAM: err = -EINVAL; if (writeable) err = table_new_stream(t, &msg.add_stream->stream); break; case REMG_DEL_STREAM: err = table_del_stream(t, &msg.del_stream->stream); break; case REMG_PACKET: err = stream_packet(t, &msg.packet->packet, buflen - sizeof(*msg.packet)); break; #ifdef KERNEL_PLAYER case REMG_INIT_PLAY_STREAMS: err = init_play_streams(msg.init_play_streams->num_play_streams, msg.init_play_streams->num_packet_streams); break; case REMG_GET_PACKET_STREAM: err = -EINVAL; if (writeable) err = get_packet_stream(t, &msg.get_packet_stream->packet_stream_idx); break; case REMG_PLAY_STREAM_PACKET: err = play_stream_packet(&msg.play_stream_packet->play_stream_packet, buflen - sizeof(*msg.play_stream_packet)); break; case REMG_PLAY_STREAM: err = -EINVAL; if (writeable) err = play_stream(t, &msg.play_stream->info, &msg.play_stream->play_idx); break; case REMG_STOP_STREAM: err = stop_stream(t, msg.stop_stream->play_idx); break; case REMG_FREE_PACKET_STREAM: err = cmd_free_packet_stream(t, msg.free_packet_stream->packet_stream_idx); break; #endif default: printk(KERN_WARNING "xt_RTPENGINE unimplemented op %u\n", cmd); err = -EINVAL; break; } table_put(t); if (err) goto err_free; if (writeable) { err = -EFAULT; if (copy_to_user(ubuf, msg.storage, buflen)) goto err_free; } if (msg.storage != scratchbuf) kfree(msg.storage); return buflen; err_table_free: table_put(t); err_free: if (msg.storage != scratchbuf) kfree(msg.storage); return err; } static ssize_t proc_control_write(struct file *file, const char __user *ubuf, size_t buflen, loff_t *off) { return proc_control_read_write(file, (char __user *) ubuf, buflen, 0); } static ssize_t proc_control_read(struct file *file, char __user *ubuf, size_t buflen, loff_t *off) { return proc_control_read_write(file, ubuf, buflen, 1); } // par can be NULL static int send_proxy_packet4(struct sk_buff *skb, struct re_address *src, struct re_address *dst, unsigned char tos, const struct xt_action_param *par) { struct iphdr *ih; struct udphdr *uh; unsigned int datalen; struct net *net; struct rtable *rt; datalen = skb->len; uh = (void *) skb_push(skb, sizeof(*uh)); skb_reset_transport_header(skb); ih = (void *) skb_push(skb, sizeof(*ih)); skb_reset_network_header(skb); DBG("datalen=%u network_header=%p transport_header=%p\n", datalen, skb_network_header(skb), skb_transport_header(skb)); datalen += sizeof(*uh); *uh = (struct udphdr) { .source = htons(src->port), .dest = htons(dst->port), .len = htons(datalen), }; *ih = (struct iphdr) { .version = 4, .ihl = 5, .tos = tos, .tot_len = htons(sizeof(*ih) + datalen), .ttl = 64, .protocol = IPPROTO_UDP, .saddr = src->u.ipv4, .daddr = dst->u.ipv4, }; skb->protocol = htons(ETH_P_IP); net = NULL; if (par) net = PAR_STATE_NET(par); if (!net && current && current->nsproxy) net = current->nsproxy->net_ns; if (!net) goto drop; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,10,0)) || \ (defined(RHEL_RELEASE_CODE) && LINUX_VERSION_CODE >= KERNEL_VERSION(5,14,0) && \ RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9,6)) rt = ip_route_output(net, dst->u.ipv4, src->u.ipv4, tos, 0, 0); #else rt = ip_route_output(net, dst->u.ipv4, src->u.ipv4, tos, 0); #endif if (IS_ERR(rt)) goto drop; skb_dst_drop(skb); skb_dst_set(skb, &rt->dst); if (skb_dst(skb)->error) goto drop; skb->dev = skb_dst(skb)->dev; if (skb->dev->features & (NETIF_F_HW_CSUM | NETIF_F_IP_CSUM)) { skb->ip_summed = CHECKSUM_PARTIAL; skb->csum = 0; udp4_hwcsum(skb, ih->saddr, ih->daddr); } else { __wsum csum = skb_checksum(skb, skb_transport_offset(skb), datalen, 0); uh->check = csum_tcpudp_magic(src->u.ipv4, dst->u.ipv4, datalen, IPPROTO_UDP, csum); if (uh->check == 0) uh->check = CSUM_MANGLED_0; skb->ip_summed = CHECKSUM_COMPLETE; } ip_select_ident(net, skb, NULL); ip_local_out(net, skb->sk, skb); return 0; drop: log_err("IPv4 routing failed"); kfree_skb(skb); return -1; } // par can be NULL static int send_proxy_packet6(struct sk_buff *skb, struct re_address *src, struct re_address *dst, unsigned char tos, const struct xt_action_param *par) { struct ipv6hdr *ih; struct udphdr *uh; unsigned int datalen; struct net *net; struct dst_entry *dst_entry; struct flowi6 fl6; datalen = skb->len; uh = (void *) skb_push(skb, sizeof(*uh)); skb_reset_transport_header(skb); ih = (void *) skb_push(skb, sizeof(*ih)); skb_reset_network_header(skb); DBG("datalen=%u network_header=%p transport_header=%p\n", datalen, skb_network_header(skb), skb_transport_header(skb)); datalen += sizeof(*uh); *uh = (struct udphdr) { .source = htons(src->port), .dest = htons(dst->port), .len = htons(datalen), }; *ih = (struct ipv6hdr) { .version = 6, .priority = (tos & 0xf0) >> 4, .flow_lbl = {(tos & 0xf) << 4, 0, 0}, .payload_len = htons(datalen), .nexthdr = IPPROTO_UDP, .hop_limit = 64, }; memcpy(&ih->saddr, src->u.ipv6, sizeof(ih->saddr)); memcpy(&ih->daddr, dst->u.ipv6, sizeof(ih->daddr)); skb->protocol = htons(ETH_P_IPV6); net = NULL; if (par) net = PAR_STATE_NET(par); if (!net && current && current->nsproxy) net = current->nsproxy->net_ns; if (!net) goto drop; memset(&fl6, 0, sizeof(fl6)); memcpy(&fl6.saddr, src->u.ipv6, sizeof(fl6.saddr)); memcpy(&fl6.daddr, dst->u.ipv6, sizeof(fl6.daddr)); fl6.flowi6_mark = skb->mark; dst_entry = ip6_route_output(net, NULL, &fl6); if (!dst_entry) goto drop; if (dst_entry->error) { dst_release(dst_entry); goto drop; } skb_dst_drop(skb); skb_dst_set(skb, dst_entry); skb->dev = skb_dst(skb)->dev; skb->csum_start = skb_transport_header(skb) - skb->head; skb->csum_offset = offsetof(struct udphdr, check); if (skb->dev->features & (NETIF_F_HW_CSUM | NETIF_F_IPV6_CSUM)) { skb->ip_summed = CHECKSUM_PARTIAL; uh->check = ~csum_ipv6_magic(&ih->saddr, &ih->daddr, datalen, IPPROTO_UDP, 0); } else { __wsum csum = skb_checksum(skb, skb_transport_offset(skb), datalen, 0); uh->check = csum_ipv6_magic(&ih->saddr, &ih->daddr, datalen, IPPROTO_UDP, csum); if (uh->check == 0) uh->check = CSUM_MANGLED_0; skb->ip_summed = CHECKSUM_COMPLETE; } ip6_local_out(net, skb->sk, skb); return 0; drop: log_err("IPv6 routing failed"); kfree_skb(skb); return -1; } static int send_proxy_packet(struct sk_buff *skb, struct re_address *src, struct re_address *dst, unsigned char tos, const struct xt_action_param *par) { if (src->family != dst->family) { log_err("address family mismatch"); goto drop; } switch (src->family) { case AF_INET: return send_proxy_packet4(skb, src, dst, tos, par); break; case AF_INET6: return send_proxy_packet6(skb, src, dst, tos, par); break; default: log_err("unsupported address family"); goto drop; } drop: kfree_skb(skb); return -1; } /* XXX shared code */ static void parse_rtp(struct rtp_parsed *rtp, struct sk_buff *skb) { struct rtp_extension *ext; int ext_len; if (skb->len < sizeof(*rtp->rtp_header)) goto error; rtp->rtp_header = (void *) skb->data; if ((rtp->rtp_header->v_p_x_cc & 0xc0) != 0x80) /* version 2 */ goto error; rtp->header_len = sizeof(*rtp->rtp_header); /* csrc list */ rtp->header_len += (rtp->rtp_header->v_p_x_cc & 0xf) * 4; if (skb->len < rtp->header_len) goto error; rtp->payload = skb->data + rtp->header_len; rtp->payload_len = skb->len - rtp->header_len; if ((rtp->rtp_header->v_p_x_cc & 0x10)) { /* extension */ if (rtp->payload_len < sizeof(*ext)) goto error; ext = (void *) rtp->payload; ext_len = 4 + ntohs(ext->length) * 4; if (rtp->payload_len < ext_len) goto error; rtp->payload += ext_len; rtp->payload_len -= ext_len; rtp->header_len += ext_len; } DBG("rtp header parsed, payload length is %u\n", rtp->payload_len); rtp->ok = 1; return; error: rtp->ok = 0; } /* XXX shared code */ static uint32_t rtp_packet_index(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_header *rtp, int ssrc_idx, struct ssrc_stats **ssrc_stats) { uint16_t seq; uint32_t index; unsigned long flags; uint16_t s_l; uint32_t roc; uint32_t v; if (ssrc_idx < 0) ssrc_idx = 0; seq = ntohs(rtp->seq_num); spin_lock_irqsave(&c->lock, flags); /* rfc 3711 section 3.3.1 */ if (ssrc_stats[ssrc_idx]) { index = atomic_read(&ssrc_stats[ssrc_idx]->ext_seq); if (unlikely(!index)) index = seq; } else index = seq; /* rfc 3711 appendix A, modified, and sections 3.3 and 3.3.1 */ s_l = (index & 0x0000ffffULL); roc = (index & 0xffff0000ULL) >> 16; v = 0; if (s_l < 0x8000) { if (((seq - s_l) > 0x8000) && roc > 0) v = (roc - 1) % 0x10000; else v = roc; } else { if ((s_l - 0x8000) > seq) v = (roc + 1) % 0x10000; else v = roc; } index = (v << 16) | seq; if (ssrc_stats[ssrc_idx]) atomic_set(&ssrc_stats[ssrc_idx]->ext_seq, index); spin_unlock_irqrestore(&c->lock, flags); return index; } static void update_packet_index(struct re_crypto_context *c, struct rtpengine_srtp *s, uint32_t idx, int ssrc_idx, struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING]) { if (ssrc_idx < 0) ssrc_idx = 0; if (ssrc_stats[ssrc_idx]) atomic_set(&ssrc_stats[ssrc_idx]->ext_seq, idx); } static int srtp_hash(unsigned char *hmac, struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { uint32_t roc; struct shash_desc *dsc; size_t alloc_size; if (!s->rtp_auth_tag_len) return 0; roc = htonl((pkt_idx & 0xffff0000ULL) >> 16); alloc_size = sizeof(*dsc) + crypto_shash_descsize(c->shash); dsc = kmalloc(alloc_size, GFP_ATOMIC); if (!dsc) return -1; memset(dsc, 0, alloc_size); dsc->tfm = c->shash; if (crypto_shash_init(dsc)) goto error; crypto_shash_update(dsc, (void *) r->rtp_header, r->header_len + r->payload_len); crypto_shash_update(dsc, (void *) &roc, sizeof(roc)); crypto_shash_final(dsc, hmac); kfree(dsc); DBG("calculated HMAC %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", hmac[0], hmac[1], hmac[2], hmac[3], hmac[4], hmac[5], hmac[6], hmac[7], hmac[8], hmac[9], hmac[10], hmac[11], hmac[12], hmac[13], hmac[14], hmac[15], hmac[16], hmac[17], hmac[18], hmac[19]); return 0; error: kfree(dsc); return -1; } static int srtcp_hash(unsigned char *hmac, struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { struct shash_desc *dsc; size_t alloc_size; if (!s->rtcp_auth_tag_len) return 0; alloc_size = sizeof(*dsc) + crypto_shash_descsize(c->shash); dsc = kmalloc(alloc_size, GFP_ATOMIC); if (!dsc) return -1; memset(dsc, 0, alloc_size); dsc->tfm = c->shash; if (crypto_shash_init(dsc)) goto error; crypto_shash_update(dsc, (void *) r->rtcp_header, r->header_len + r->payload_len); crypto_shash_final(dsc, hmac); kfree(dsc); DBG("calculated RTCP HMAC %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", hmac[0], hmac[1], hmac[2], hmac[3], hmac[4], hmac[5], hmac[6], hmac[7], hmac[8], hmac[9], hmac[10], hmac[11], hmac[12], hmac[13], hmac[14], hmac[15], hmac[16], hmac[17], hmac[18], hmac[19]); return 0; error: kfree(dsc); return -1; } /* XXX shared code */ static void rtp_append_mki(struct rtp_parsed *r, struct rtpengine_srtp *c) { unsigned char *p; if (!c->mki_len) return; p = r->payload + r->payload_len; memcpy(p, c->mki, c->mki_len); r->payload_len += c->mki_len; } static int srtp_authenticate(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { unsigned char hmac[20]; if (!r->rtp_header) return 0; if (s->hmac == REH_NULL) { rtp_append_mki(r, s); return 0; } if (!c->hmac) return 0; if (!c->shash) return -1; if (srtp_hash(hmac, c, s, r, pkt_idx)) return -1; rtp_append_mki(r, s); memcpy(r->payload + r->payload_len, hmac, s->rtp_auth_tag_len); r->payload_len += s->rtp_auth_tag_len; return 0; } static int srtcp_authenticate(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { unsigned char hmac[20]; if (!r->rtcp_header) return 0; if (s->hmac == REH_NULL) { rtp_append_mki(r, s); return 0; } if (!c->hmac) return 0; if (!c->shash) return -1; if (srtcp_hash(hmac, c, s, r, pkt_idx)) return -1; rtp_append_mki(r, s); memcpy(r->payload + r->payload_len, hmac, s->rtcp_auth_tag_len); r->payload_len += s->rtp_auth_tag_len; return 0; } static int srtp_auth_validate(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx_p, int ssrc_idx, struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING]) { unsigned char *auth_tag; unsigned char hmac[20]; uint32_t pkt_idx = *pkt_idx_p; if (s->hmac == REH_NULL) return 0; if (!c->hmac) return 0; if (!c->shash) return -1; if (r->payload_len < s->rtp_auth_tag_len) return -1; r->payload_len -= s->rtp_auth_tag_len; auth_tag = r->payload + r->payload_len; if (r->payload_len < s->mki_len) return -1; r->payload_len -= s->mki_len; if (!s->rtp_auth_tag_len) return 0; DBG("packet auth tag %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", auth_tag[0], auth_tag[1], auth_tag[2], auth_tag[3], auth_tag[4], auth_tag[5], auth_tag[6], auth_tag[7], auth_tag[8], auth_tag[9]); if (srtp_hash(hmac, c, s, r, pkt_idx)) return -1; if (!memcmp(auth_tag, hmac, s->rtp_auth_tag_len)) goto ok; /* possible ROC mismatch, attempt to guess */ /* first, let's see if we missed a rollover */ pkt_idx += 0x10000; if (srtp_hash(hmac, c, s, r, pkt_idx)) return -1; if (!memcmp(auth_tag, hmac, s->rtp_auth_tag_len)) goto ok_update; /* or maybe we did a rollover too many */ if (pkt_idx >= 0x20000) { pkt_idx -= 0x20000; if (srtp_hash(hmac, c, s, r, pkt_idx)) return -1; if (!memcmp(auth_tag, hmac, s->rtp_auth_tag_len)) goto ok_update; } /* last guess: reset ROC to zero */ pkt_idx &= 0xffff; if (srtp_hash(hmac, c, s, r, pkt_idx)) return -1; if (!memcmp(auth_tag, hmac, s->rtp_auth_tag_len)) goto ok_update; return -1; ok_update: *pkt_idx_p = pkt_idx; update_packet_index(c, s, pkt_idx, ssrc_idx, ssrc_stats); ok: return 0; } static int srtcp_auth_validate(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx_p) { uint32_t idx; unsigned char *auth_tag = NULL; unsigned char hmac[20]; if (!c->cipher->decrypt_rtcp) return 0; if (s->rtcp_auth_tag_len) { // we have an auth tag to verify if (s->hmac == REH_NULL) return -1; if (!c->hmac) return -1; if (!c->shash) return -1; // extract auth tag if (r->payload_len < s->rtcp_auth_tag_len) return -1; auth_tag = r->payload + r->payload_len - s->rtcp_auth_tag_len; r->payload_len -= s->rtcp_auth_tag_len; } // skip MKI if (r->payload_len < s->mki_len) return -1; r->payload_len -= s->mki_len; // extract index if (r->payload_len < sizeof(idx)) return -1; memcpy(&idx, r->payload + r->payload_len - sizeof(idx), sizeof(idx)); idx = ntohl(idx); if (auth_tag) { if (srtcp_hash(hmac, c, s, r, idx)) return -1; if (memcmp(auth_tag, hmac, s->rtcp_auth_tag_len)) return -1; } r->payload_len -= sizeof(idx); if ((idx & 0x80000000ULL)) { *pkt_idx_p = idx & ~0x80000000ULL; return 1; // decrypt } *pkt_idx_p = idx; return 0; } /* XXX shared code */ static int srtXp_encrypt_aes_cm(struct re_crypto_context *c, struct rtpengine_srtp *s, uint32_t ssrc, char *out, const char *in, size_t len, uint32_t *pkt_idxp) { uint32_t pkt_idx = *pkt_idxp; unsigned char iv[16]; uint32_t *ivi; uint32_t idxh, idxl; memcpy(iv, c->session_salt, 14); iv[14] = iv[15] = '\0'; ivi = (void *) iv; idxh = htonl((pkt_idx & 0xffff0000ULL) >> 16); idxl = htonl((pkt_idx & 0x0000ffffULL) << 16); ivi[1] ^= ssrc; ivi[2] ^= idxh; ivi[3] ^= idxl; aes_ctr(out, in, len, c->tfm[0], iv); return 0; } static int srtp_encrypt_aes_cm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { return srtXp_encrypt_aes_cm(c, s, r->rtp_header->ssrc, r->payload, r->payload, r->payload_len, pkt_idx); } static int srtcp_encrypt_aes_cm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { return srtXp_encrypt_aes_cm(c, s, r->rtcp_header->ssrc, r->payload, r->payload, r->payload_len, pkt_idx); } static int srtp_encrypt_aes_f8(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idxp) { uint64_t pkt_idx = *pkt_idxp; unsigned char iv[16]; uint32_t roc; iv[0] = 0; memcpy(&iv[1], &r->rtp_header->m_pt, 11); roc = htonl((pkt_idx & 0xffff0000ULL) >> 16); memcpy(&iv[12], &roc, sizeof(roc)); aes_f8(r->payload, r->payload_len, c->tfm[0], c->tfm[1], iv); return 0; } static int srtcp_encrypt_aes_f8(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { unsigned char iv[16]; uint32_t i; memset(iv, 0, 4); i = htonl(0x80000000ULL | *pkt_idx); memcpy(&iv[4], &i, 4); memcpy(&iv[8], r->rtcp_header, 8); /* v, p, rc, pt, length, ssrc */ aes_f8(r->payload, r->payload_len, c->tfm[0], c->tfm[1], iv); return 0; } union aes_gcm_rtp_iv { unsigned char bytes[12]; struct { uint16_t zeros; uint32_t ssrc; uint32_t roq; uint16_t seq; } __attribute__((__packed__)); } __attribute__((__packed__)); static int srtp_encrypt_aes_gcm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idxp) { uint32_t pkt_idx = *pkt_idxp; union aes_gcm_rtp_iv iv; struct aead_request *req; struct scatterlist sg[2]; int ret; if (s->session_salt_len != 12) return -EINVAL; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->rtp_header->ssrc; iv.roq ^= htonl((pkt_idx & 0xffff0000ULL) >> 16); iv.seq ^= htons( pkt_idx & 0x0000ffffULL); req = aead_request_alloc(c->aead, GFP_ATOMIC); if (!req) return -ENOMEM; if (IS_ERR(req)) return PTR_ERR(req); sg_init_table(sg, ARRAY_SIZE(sg)); sg_set_buf(&sg[0], r->rtp_header, r->header_len); sg_set_buf(&sg[1], r->payload, r->payload_len + 16); // guaranteed to have space after skb_copy_expand aead_request_set_callback(req, 0, NULL, NULL); aead_request_set_ad(req, r->header_len); aead_request_set_crypt(req, sg, sg, r->payload_len, iv.bytes); ret = crypto_aead_encrypt(req); aead_request_free(req); if (ret == 0) r->payload_len += 16; return ret; } union aes_gcm_rtcp_iv { unsigned char bytes[12]; struct { uint16_t zeros_a; uint32_t ssrc; uint16_t zeros_b; uint32_t srtcp; } __attribute__((__packed__)); } __attribute__((__packed__)); static int srtcp_encrypt_aes_gcm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { union aes_gcm_rtcp_iv iv; struct aead_request *req; struct scatterlist sg[3]; int ret; uint32_t e_idx; if (s->session_salt_len != 12) return -EINVAL; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->rtcp_header->ssrc; iv.srtcp ^= htonl(*pkt_idx & 0x007fffffffULL); e_idx = htonl((*pkt_idx & 0x007fffffffULL) | 0x80000000ULL); req = aead_request_alloc(c->aead, GFP_ATOMIC); if (!req) return -ENOMEM; if (IS_ERR(req)) return PTR_ERR(req); sg_init_table(sg, ARRAY_SIZE(sg)); sg_set_buf(&sg[0], r->rtcp_header, r->header_len); sg_set_buf(&sg[1], &e_idx, sizeof(e_idx)); sg_set_buf(&sg[2], r->payload, r->payload_len + 16); // guaranteed to have space after skb_copy_expand aead_request_set_callback(req, 0, NULL, NULL); aead_request_set_ad(req, r->header_len + sizeof(e_idx)); aead_request_set_crypt(req, sg, sg, r->payload_len, iv.bytes); ret = crypto_aead_encrypt(req); aead_request_free(req); if (ret == 0) r->payload_len += 16; return ret; } static int srtp_decrypt_aes_gcm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idxp) { uint32_t pkt_idx = *pkt_idxp; union aes_gcm_rtp_iv iv; struct aead_request *req; struct scatterlist sg[2]; int ret; int guess = 0; char *copy = NULL; if (s->session_salt_len != 12) return -EINVAL; if (r->payload_len < 16) return -EINVAL; do { memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->rtp_header->ssrc; iv.roq ^= htonl((pkt_idx & 0x00ffffffff0000ULL) >> 16); iv.seq ^= htons(pkt_idx & 0x00ffffULL); req = aead_request_alloc(c->aead, GFP_ATOMIC); if (!req) { if (copy) kfree(copy); return -ENOMEM; } if (IS_ERR(req)) { if (copy) kfree(copy); return PTR_ERR(req); } sg_init_table(sg, ARRAY_SIZE(sg)); sg_set_buf(&sg[0], r->rtp_header, r->header_len); sg_set_buf(&sg[1], r->payload, r->payload_len); // make copy of payload in case the decyption clobbers it if (!copy) copy = kmalloc(r->payload_len, GFP_ATOMIC); if (copy) memcpy(copy, r->payload, r->payload_len); aead_request_set_callback(req, 0, NULL, NULL); aead_request_set_ad(req, r->header_len); aead_request_set_crypt(req, sg, sg, r->payload_len, iv.bytes); ret = crypto_aead_decrypt(req); aead_request_free(req); if (ret == 0) { r->payload_len -= 16; break; } if (ret != -EBADMSG) break; // authentication failed: restore payload and do some ROC guessing if (!copy) break; memcpy(r->payload, copy, r->payload_len); if (guess == 0) pkt_idx += 0x10000; else if (guess == 1) pkt_idx -= 0x20000; else if (guess == 2) pkt_idx &= 0xffff; else break; guess++; } while (1); if (copy) kfree(copy); if (ret == 0 && guess != 0) { *pkt_idxp = pkt_idx; ret = 1; } return ret; } static int srtcp_decrypt_aes_gcm(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { union aes_gcm_rtcp_iv iv; struct aead_request *req; struct scatterlist sg[3]; int ret; uint32_t e_idx; if (s->session_salt_len != 12) return -EINVAL; if (r->payload_len < 16) return -EINVAL; memcpy(iv.bytes, c->session_salt, 12); iv.ssrc ^= r->rtcp_header->ssrc; iv.srtcp ^= htonl(*pkt_idx & 0x007fffffffULL); e_idx = htonl((*pkt_idx & 0x007fffffffULL) | 0x80000000ULL); req = aead_request_alloc(c->aead, GFP_ATOMIC); if (!req) return -ENOMEM; if (IS_ERR(req)) return PTR_ERR(req); sg_init_table(sg, ARRAY_SIZE(sg)); sg_set_buf(&sg[0], r->rtcp_header, r->header_len); sg_set_buf(&sg[1], &e_idx, sizeof(e_idx)); sg_set_buf(&sg[2], r->payload, r->payload_len); aead_request_set_callback(req, 0, NULL, NULL); aead_request_set_ad(req, r->header_len + sizeof(e_idx)); aead_request_set_crypt(req, sg, sg, r->payload_len, iv.bytes); ret = crypto_aead_decrypt(req); aead_request_free(req); if (ret == 0) r->payload_len -= 16; return ret; } static inline int srtp_encrypt(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { if (!r->rtp_header) return 0; if (!c->cipher->encrypt_rtp) return 0; return c->cipher->encrypt_rtp(c, s, r, &pkt_idx); } static inline int srtcp_encrypt(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idxp) { int ret; uint32_t idx; if (!r->rtcp_header) return 0; if (!c->cipher->encrypt_rtcp) return 0; ret = c->cipher->encrypt_rtcp(c, s, r, pkt_idxp); if (ret) return ret; idx = htonl(0x80000000ULL | *pkt_idxp); memcpy(r->payload + r->payload_len, &idx, sizeof(idx)); r->payload_len += sizeof(idx); (*pkt_idxp)++; return 0; } static inline int srtp_decrypt(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t *pkt_idx) { if (!c->cipher->decrypt_rtp) return 0; return c->cipher->decrypt_rtp(c, s, r, pkt_idx); } static inline int srtcp_decrypt(struct re_crypto_context *c, struct rtpengine_srtp *s, struct rtp_parsed *r, uint32_t pkt_idx) { if (!c->cipher->decrypt_rtcp) return 0; return c->cipher->decrypt_rtcp(c, s, r, &pkt_idx); } static inline int is_muxed_rtcp(struct sk_buff *skb) { // XXX shared code unsigned char m_pt; if (skb->len < 8) // minimum RTCP size return 0; m_pt = skb->data[1]; if (m_pt < 194) return 0; if (m_pt > 223) return 0; return 1; } static inline int is_rtcp_fb_packet(struct sk_buff *skb) { unsigned char m_pt; size_t left = skb->len; size_t offset = 0; unsigned int packets = 0; uint16_t len; while (1) { if (left < 8) // minimum RTCP size return 0; m_pt = skb->data[offset + 1]; // only RTPFB and PSFB if (m_pt != 205 && m_pt != 206) return 0; // length check len = (((unsigned char) skb->data[offset + 2]) << 8) | ((unsigned char) skb->data[offset + 3]); len++; len <<= 2; if (len > left) // invalid return 0; left -= len; offset += len; if (packets++ >= 8) // limit number of compound packets return 0; } return 1; } static inline int is_stun(struct rtpengine_target *g, unsigned int datalen, unsigned char *skb_data) { uint32_t *u32; if (!g->target.stun) return 0; if (datalen < 28) return 0; if ((datalen & 0x3)) return 0; u32 = (void *) skb_data; if (u32[1] != htonl(0x2112A442UL)) /* magic cookie */ return 0; if ((u32[0] & htonl(0xc0000003UL))) /* zero bits required by rfc */ return 0; u32 = (void *) &skb_data[datalen - 8]; if (u32[0] != htonl(0x80280004UL)) /* required fingerprint attribute */ return 0; return 1; // probably STUN } static inline int is_dtls(struct sk_buff *skb) { if (skb->len < 1) return 0; if (skb->data[0] < 20) return 0; if (skb->data[0] > 63) return 0; return 1; } static int rtp_payload_match(const void *a, const void *bp) { const struct rtp_stats *const *b = bp; const struct rtp_stats *A = a, *B = *b; if (A->payload_type < B->payload_type) return -1; if (A->payload_type > B->payload_type) return 1; return 0; } static inline int rtp_payload_type(const struct rtp_header *hdr, const struct rtpengine_target_info *tg, int *last_pt) { struct rtp_stats pt; struct rtp_stats *const *pmatch; pt.payload_type = hdr->m_pt & 0x7f; if (*last_pt < tg->num_payload_types) { pmatch = &tg->pt_stats[*last_pt]; if (rtp_payload_match(&pt, pmatch) == 0) goto found; } pmatch = bsearch(&pt, tg->pt_stats, tg->num_payload_types, sizeof(*pmatch), rtp_payload_match); if (!pmatch) return -1; found: *last_pt = pmatch - tg->pt_stats; return *last_pt; } static struct sk_buff *intercept_skb_copy(struct sk_buff *oskb, const struct re_address *src) { struct sk_buff *ret; struct udphdr *uh; struct iphdr *ih; struct ipv6hdr *ih6; ret = skb_copy_expand(oskb, MAX_HEADER, MAX_SKB_TAIL_ROOM, GFP_ATOMIC); if (!ret) return NULL; skb_gso_reset(ret); // restore original header. it's still present in the copied skb, so we just need // to push back our head room. the payload lengths might be wrong and must be fixed. // checksums might also be wrong, but can be ignored. // restore transport header skb_push(ret, ret->data - skb_transport_header(ret)); uh = (void *) skb_transport_header(ret); uh->len = htons(ret->len); // restore network header skb_push(ret, ret->data - skb_network_header(ret)); // restore network length field switch (src->family) { case AF_INET: ih = (void *) skb_network_header(ret); ih->tot_len = htons(ret->len); break; case AF_INET6: ih6 = (void *) skb_network_header(ret); ih6->payload_len = htons(ret->len - sizeof(*ih6)); break; default: kfree_skb(ret); return NULL; } return ret; } static void proxy_packet_output_rtcp(struct sk_buff *skb, struct rtpengine_output *o, struct rtp_parsed *rtp, int ssrc_idx) { unsigned int pllen; uint32_t pkt_idx, tmp_idx; unsigned long flags; if (!rtp->rtcp) return; // SRTCP if (unlikely(ssrc_idx < 0)) ssrc_idx = 0; if (!o->output.ssrc_stats[ssrc_idx]) // for dummy outputs, could be a problem with SRTP? return; spin_lock_irqsave(&o->encrypt_rtcp.lock, flags); tmp_idx = pkt_idx = atomic_read(&o->output.ssrc_stats[ssrc_idx]->rtcp_seq); spin_unlock_irqrestore(&o->encrypt_rtcp.lock, flags); pllen = rtp->payload_len; srtcp_encrypt(&o->encrypt_rtcp, &o->output.encrypt, rtp, &tmp_idx); srtcp_authenticate(&o->encrypt_rtcp, &o->output.encrypt, rtp, pkt_idx); skb_put(skb, rtp->payload_len - pllen); atomic_set(&o->output.ssrc_stats[ssrc_idx]->rtcp_seq, tmp_idx); } static uint32_t proxy_packet_srtp_encrypt(struct sk_buff *skb, struct re_crypto_context *ctx, struct rtpengine_srtp *srtp, struct rtp_parsed *rtp, int ssrc_idx, struct ssrc_stats **ssrc_stats) { uint32_t pkt_idx; unsigned int pllen; pkt_idx = rtp_packet_index(ctx, srtp, rtp->rtp_header, ssrc_idx, ssrc_stats); pllen = rtp->payload_len; srtp_encrypt(ctx, srtp, rtp, pkt_idx); srtp_authenticate(ctx, srtp, rtp, pkt_idx); skb_put(skb, rtp->payload_len - pllen); return pkt_idx; } static bool proxy_packet_output_rtXp(struct sk_buff *skb, struct rtpengine_output *o, int rtp_pt_idx, struct rtp_parsed *rtp, int ssrc_idx) { int i; uint32_t pkt_idx; if (!rtp->ok) { proxy_packet_output_rtcp(skb, o, rtp, ssrc_idx); return true; } // pattern rewriting if (rtp_pt_idx >= 0) { if (o->output.pt_output[rtp_pt_idx].min_payload_len && rtp->payload_len < o->output.pt_output[rtp_pt_idx].min_payload_len) return false; if (o->output.pt_output[rtp_pt_idx].replace_pattern_len) { if (o->output.pt_output[rtp_pt_idx].replace_pattern_len == 1) memset(rtp->payload, o->output.pt_output[rtp_pt_idx].replace_pattern[0], rtp->payload_len); else { for (i = 0; i < rtp->payload_len; i += o->output.pt_output[rtp_pt_idx].replace_pattern_len) memcpy(&rtp->payload[i], o->output.pt_output[rtp_pt_idx].replace_pattern, o->output.pt_output[rtp_pt_idx].replace_pattern_len); } } } // SSRC substitution and seq manipulation if (likely(ssrc_idx >= 0)) { rtp->rtp_header->seq_num = htons(ntohs(rtp->rtp_header->seq_num) + o->output.seq_offset[ssrc_idx]); if (o->output.ssrc_subst && likely(o->output.ssrc_out[ssrc_idx])) rtp->rtp_header->ssrc = o->output.ssrc_out[ssrc_idx]; } pkt_idx = proxy_packet_srtp_encrypt(skb, &o->encrypt_rtp, &o->output.encrypt, rtp, ssrc_idx, o->output.ssrc_stats); if (ssrc_idx >= 0 && o->output.ssrc_stats[ssrc_idx]) { atomic64_inc(&o->output.ssrc_stats[ssrc_idx]->packets); atomic64_add(rtp->payload_len, &o->output.ssrc_stats[ssrc_idx]->bytes); atomic_set(&o->output.ssrc_stats[ssrc_idx]->ext_seq, pkt_idx); atomic_set(&o->output.ssrc_stats[ssrc_idx]->timestamp, ntohl(rtp->rtp_header->timestamp)); } return true; } static int send_proxy_packet_output(struct sk_buff *skb, struct rtpengine_target *g, int rtp_pt_idx, struct rtpengine_output *o, struct rtp_parsed *rtp, int ssrc_idx, const struct xt_action_param *par) { bool send_or_not = proxy_packet_output_rtXp(skb, o, rtp_pt_idx, rtp, ssrc_idx); if (!send_or_not) { kfree_skb(skb); return 0; } return send_proxy_packet(skb, &o->output.src_addr, &o->output.dst_addr, o->output.tos, par); } static void rtp_stats(struct rtpengine_target *g, struct rtp_parsed *rtp, s64 arrival_time, int pt_idx, int ssrc_idx, struct global_stats_counter *rtpe_stats) { unsigned long flags; struct ssrc_stats *s = g->target.ssrc_stats[ssrc_idx]; uint16_t old_seq_trunc; uint32_t last_seq; uint16_t seq_diff; uint32_t clockrate; uint32_t transit; int32_t d; uint32_t new_seq; uint16_t seq; uint32_t ts; if (!s) return; seq = ntohs(rtp->rtp_header->seq_num); ts = ntohl(rtp->rtp_header->timestamp); atomic64_inc(&s->packets); atomic64_add(rtp->payload_len, &s->bytes); atomic_set(&s->timestamp, ts); spin_lock_irqsave(&g->ssrc_stats_lock, flags); // track sequence numbers and lost frames last_seq = atomic_read(&s->ext_seq); new_seq = last_seq; // old seq or seq reset? old_seq_trunc = last_seq & 0xffff; seq_diff = seq - old_seq_trunc; if (seq_diff == 0 || seq_diff >= 0xfeff) // old/dup seq - ignore ; else if (seq_diff > 0x100) { // reset seq and loss tracker new_seq = seq; atomic_set(&s->ext_seq, seq); s->lost_bits = -1; } else { // seq wrap? new_seq = (last_seq & 0xffff0000) | seq; while (new_seq < last_seq) { new_seq += 0x10000; if ((new_seq & 0xffff0000) == 0) // ext seq wrapped break; } seq_diff = new_seq - last_seq; atomic_set(&s->ext_seq, new_seq); // shift loss tracker bit field and count losses if (seq_diff >= (sizeof(s->lost_bits) * 8)) { // complete loss atomic_add(sizeof(s->lost_bits) * 8, &s->total_lost); atomic64_add(sizeof(s->lost_bits) * 8, &g->target.iface_stats->s.packets_lost); atomic64_add(sizeof(s->lost_bits) * 8, &rtpe_stats->packets_lost); s->lost_bits = -1; } else { while (seq_diff) { // shift out one bit and see if we lost it if ((s->lost_bits & 0x80000000) == 0) { atomic_inc(&s->total_lost); atomic64_inc(&g->target.iface_stats->s.packets_lost); atomic64_inc(&rtpe_stats->packets_lost); } s->lost_bits <<= 1; seq_diff--; } } } // track this frame as being seen seq_diff = (new_seq & 0xffff) - seq; if (seq_diff < (sizeof(s->lost_bits) * 8)) s->lost_bits |= (1 << seq_diff); // jitter // RFC 3550 A.8 clockrate = g->target.pt_stats[pt_idx]->clock_rate; transit = ((uint32_t) (div64_s64(arrival_time, 1000) * clockrate) / 1000) - ts; d = atomic_read(&s->transit); if (d) d = transit - d; atomic_set(&s->transit, transit); if (d < 0) d = -d; // ignore implausibly large values if (d < 100000) atomic_add(d - ((atomic_read(&s->jitter) + 8) >> 4), &s->jitter); spin_unlock_irqrestore(&g->ssrc_stats_lock, flags); } static unsigned int rtpengine46(struct sk_buff *skb, struct sk_buff *oskb, struct rtpengine_table *t, struct re_address *src, struct re_address *dst, uint8_t in_tos, const struct xt_action_param *par) { struct udphdr *uh; struct rtpengine_target *g; struct sk_buff *skb2; int err; int error_nf_action = XT_CONTINUE; int nf_action = NF_DROP; int rtp_pt_idx = -2; int ssrc_idx = -1; unsigned int datalen, datalen_out; struct rtp_parsed rtp, rtp2; ssize_t offset; uint32_t pkt_idx; struct re_stream *stream; struct re_stream_packet *packet; const char *errstr = NULL; unsigned long flags; unsigned int i; unsigned int start_idx, end_idx; enum {NOT_RTCP = 0, RTCP, RTCP_FORWARD} is_rtcp; ktime_t packet_ts; skb_reset_transport_header(skb); uh = udp_hdr(skb); skb_pull(skb, sizeof(*uh)); datalen = ntohs(uh->len); if (datalen < sizeof(*uh)) goto out_no_target; datalen -= sizeof(*uh); DBG("udp payload = %u\n", datalen); skb_trim(skb, datalen); src->port = ntohs(uh->source); dst->port = ntohs(uh->dest); g = get_target(t, dst); if (!g) goto out_no_target; // all our outputs filled? _r_lock(&g->outputs_lock, flags); if (g->outputs_unfilled) { // pass to application _r_unlock(&g->outputs_lock, flags); goto out; } _r_unlock(&g->outputs_lock, flags); DBG("target found, local " MIPF "\n", MIPP(g->target.local)); DBG("target decrypt RTP hmac and cipher are %s and %s", g->decrypt_rtp.hmac->name, g->decrypt_rtp.cipher->name); if (is_stun(g, datalen, skb->data)) goto out; // source checks; if (g->target.src_mismatch == MSM_IGNORE) ; // source ignored else if (!memcmp(&g->target.expected_src, src, sizeof(*src))) ; // source matched else if (g->target.src_mismatch == MSM_PROPAGATE) goto out; // source mismatched, pass to userspace else { /* MSM_DROP */ error_nf_action = NF_DROP; errstr = "source address mismatch"; goto out_error; } packet_ts = ktime_divns(skb->tstamp, 1000000000LL); if (g->target.dtls && is_dtls(skb)) goto out; if (g->target.non_forwarding && !g->target.do_intercept) { if (g->target.blackhole) goto do_stats; // and drop goto out; // pass to userspace } // RTP processing rtp.ok = 0; rtp.rtcp = 0; is_rtcp = NOT_RTCP; if (g->target.rtp) { if (g->target.rtcp) { if (g->target.rtcp_mux) { if (is_muxed_rtcp(skb)) is_rtcp = RTCP; } else is_rtcp = RTCP; } if (is_rtcp == NOT_RTCP) { parse_rtp(&rtp, skb); if (!rtp.ok && g->target.rtp_only) goto out; // pass to userspace } else { if (g->target.rtcp_fb_fw && is_rtcp_fb_packet(skb)) ; // forward and then drop else if (g->target.rtcp_fw) is_rtcp = RTCP_FORWARD; // forward, mark, and pass to userspace else goto out; // just pass to userspace parse_rtcp(&rtp, skb); if (!rtp.rtcp) goto out; } } if (rtp.ok) { // RTP ok rtp_pt_idx = rtp_payload_type(rtp.rtp_header, &g->target, &g->last_pt); // Pass to userspace if SSRC has changed. // Look for matching SSRC index if any SSRC were given ssrc_idx = target_find_ssrc(g, rtp.rtp_header->ssrc); errstr = "SSRC mismatch"; if (ssrc_idx == -2 || (ssrc_idx == -1 && g->target.ssrc_req)) goto out_error; pkt_idx = rtp_packet_index(&g->decrypt_rtp, &g->target.decrypt, rtp.rtp_header, ssrc_idx, g->target.ssrc_stats); errstr = "SRTP authentication tag mismatch"; if (srtp_auth_validate(&g->decrypt_rtp, &g->target.decrypt, &rtp, &pkt_idx, ssrc_idx, g->target.ssrc_stats)) goto out_error; // if RTP, only forward packets of known/passthrough payload types if (rtp_pt_idx < 0) { if (g->target.pt_filter) goto out; } else if (ssrc_idx >= 0 && g->target.ssrc_stats[ssrc_idx]) { atomic_set(&g->target.ssrc_stats[ssrc_idx]->last_pt, g->target.pt_stats[rtp_pt_idx]->payload_type); atomic64_set(&g->target.ssrc_stats[ssrc_idx]->last_packet, packet_ts); } errstr = "SRTP decryption failed"; err = srtp_decrypt(&g->decrypt_rtp, &g->target.decrypt, &rtp, &pkt_idx); if (err < 0) goto out_error; if (err == 1) update_packet_index(&g->decrypt_rtp, &g->target.decrypt, pkt_idx, ssrc_idx, g->target.ssrc_stats); skb_trim(skb, rtp.header_len + rtp.payload_len); if (g->target.rtp_stats && ssrc_idx != -1 && rtp_pt_idx >= 0) rtp_stats(g, &rtp, ktime_to_us(skb->tstamp), rtp_pt_idx, ssrc_idx, t->rtpe_stats); DBG("packet payload decrypted as %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x...\n", rtp.payload[0], rtp.payload[1], rtp.payload[2], rtp.payload[3], rtp.payload[4], rtp.payload[5], rtp.payload[6], rtp.payload[7], rtp.payload[8], rtp.payload[9], rtp.payload[10], rtp.payload[11], rtp.payload[12], rtp.payload[13], rtp.payload[14], rtp.payload[15], rtp.payload[16], rtp.payload[17], rtp.payload[18], rtp.payload[19]); } else if (is_rtcp != NOT_RTCP && rtp.rtcp) { pkt_idx = 0; err = srtcp_auth_validate(&g->decrypt_rtcp, &g->target.decrypt, &rtp, &pkt_idx); errstr = "SRTCP authentication tag mismatch"; if (err == -1) goto out_error; if (err == 1) { // decrypt errstr = "SRTCP decryption failed"; if (srtcp_decrypt(&g->decrypt_rtcp, &g->target.decrypt, &rtp, pkt_idx)) goto out_error; } skb_trim(skb, rtp.header_len + rtp.payload_len); if (is_rtcp == RTCP_FORWARD) { // mark packet as "handled" with negative timestamp oskb->tstamp = (ktime_t) {-ktime_to_ns(oskb->tstamp)}; nf_action = XT_CONTINUE; } } if (g->target.do_intercept) { DBG("do_intercept is set\n"); stream = get_stream_lock(NULL, g->target.intercept_stream_idx); if (stream) { packet = kzalloc(sizeof(*packet), GFP_ATOMIC); if (packet) { packet->skbuf = intercept_skb_copy(skb, src); if (packet->skbuf) add_stream_packet(stream, packet); else free_packet(packet); } stream_put(stream); } } // output start_idx = (is_rtcp != NOT_RTCP) ? g->num_rtp_destinations : 0; end_idx = (is_rtcp != NOT_RTCP) ? g->target.num_destinations : g->num_rtp_destinations; if (start_idx == end_idx) goto out; // pass to userspace for (i = start_idx; i < end_idx; i++) { struct rtpengine_output *o = &g->outputs[i]; DBG("output src " MIPF " -> dst " MIPF "\n", MIPP(o->output.src_addr), MIPP(o->output.dst_addr)); // do we need a copy? if (i == (end_idx - 1)) { skb2 = skb; // last iteration - use original skb = NULL; offset = 0; } else { // make copy skb2 = skb_copy_expand(skb, MAX_HEADER, MAX_SKB_TAIL_ROOM, GFP_ATOMIC); if (!skb2) { log_err("out of memory while creating skb copy"); atomic64_inc(&g->target.stats->errors); atomic64_inc(&g->target.iface_stats->in.errors); atomic64_inc(&t->rtpe_stats->errors_kernel); continue; } skb_gso_reset(skb2); offset = skb2->data - skb->data; } // adjust RTP pointers rtp2 = rtp; if (rtp.rtp_header) rtp2.rtp_header = (void *) (((char *) rtp2.rtp_header) + offset); rtp2.payload = (void *) (((char *) rtp2.payload) + offset); datalen_out = skb2->len; err = send_proxy_packet_output(skb2, g, rtp_pt_idx, o, &rtp2, ssrc_idx, par); if (err) { atomic64_inc(&g->target.stats->errors); atomic64_inc(&g->target.iface_stats->in.errors); atomic64_inc(&o->output.stats->errors); atomic64_inc(&o->output.iface_stats->out.errors); atomic64_inc(&t->rtpe_stats->errors_kernel); } else { atomic64_inc(&o->output.stats->packets); atomic64_add(datalen_out, &o->output.stats->bytes); atomic64_inc(&o->output.iface_stats->out.packets); atomic64_add(datalen_out, &o->output.iface_stats->out.bytes); } } do_stats: atomic_set(&g->target.stats->tos, in_tos); atomic64_set(&g->target.stats->last_packet, packet_ts); atomic64_inc(&g->target.stats->packets); atomic64_add(datalen, &g->target.stats->bytes); atomic64_inc(&g->target.iface_stats->in.packets); atomic64_add(datalen, &g->target.iface_stats->in.bytes); atomic64_inc(&t->rtpe_stats->packets_kernel); atomic64_add(datalen, &t->rtpe_stats->bytes_kernel); if (rtp_pt_idx >= 0) { atomic64_inc(&g->target.pt_stats[rtp_pt_idx]->packets); atomic64_add(datalen, &g->target.pt_stats[rtp_pt_idx]->bytes); } else if (rtp_pt_idx == -2) /* not RTP */ ; else if (rtp_pt_idx == -1) { atomic64_inc(&g->target.stats->errors); atomic64_inc(&g->target.iface_stats->in.errors); } target_put(g); table_put(t); if (skb) kfree_skb(skb); return nf_action; out_error: log_err("x_tables action failed: %s", errstr); atomic64_inc(&g->target.stats->errors); atomic64_inc(&g->target.iface_stats->in.errors); atomic64_inc(&t->rtpe_stats->errors_kernel); out: target_put(g); out_no_target: kfree_skb(skb); table_put(t); return error_nf_action; } static unsigned int rtpengine4(struct sk_buff *oskb, const struct xt_action_param *par) { const struct xt_rtpengine_info *pinfo = par->targinfo; struct sk_buff *skb; struct iphdr *ih; struct rtpengine_table *t; struct re_address src, dst; t = get_table(pinfo->id); if (!t) goto skip; skb = skb_copy_expand(oskb, MAX_HEADER, MAX_SKB_TAIL_ROOM, GFP_ATOMIC); if (!skb) goto skip3; skb_gso_reset(skb); skb_reset_network_header(skb); ih = ip_hdr(skb); skb_pull(skb, (ih->ihl << 2)); if (ih->protocol != IPPROTO_UDP) goto skip2; memset(&src, 0, sizeof(src)); memset(&dst, 0, sizeof(dst)); src.family = AF_INET; src.u.ipv4 = ih->saddr; dst.family = AF_INET; dst.u.ipv4 = ih->daddr; return rtpengine46(skb, oskb, t, &src, &dst, (uint8_t)ih->tos, par); skip2: kfree_skb(skb); skip3: table_put(t); skip: return XT_CONTINUE; } static unsigned int rtpengine6(struct sk_buff *oskb, const struct xt_action_param *par) { const struct xt_rtpengine_info *pinfo = par->targinfo; struct sk_buff *skb; struct ipv6hdr *ih; struct rtpengine_table *t; struct re_address src, dst; t = get_table(pinfo->id); if (!t) goto skip; skb = skb_copy_expand(oskb, MAX_HEADER, MAX_SKB_TAIL_ROOM, GFP_ATOMIC); if (!skb) goto skip3; skb_gso_reset(skb); skb_reset_network_header(skb); ih = ipv6_hdr(skb); skb_pull(skb, sizeof(*ih)); if (ih->nexthdr != IPPROTO_UDP) goto skip2; memset(&src, 0, sizeof(src)); memset(&dst, 0, sizeof(dst)); src.family = AF_INET6; memcpy(&src.u.ipv6, &ih->saddr, sizeof(src.u.ipv6)); dst.family = AF_INET6; memcpy(&dst.u.ipv6, &ih->daddr, sizeof(dst.u.ipv6)); return rtpengine46(skb, oskb, t, &src, &dst, ipv6_get_dsfield(ih), par); skip2: kfree_skb(skb); skip3: table_put(t); skip: return XT_CONTINUE; } static int check(const struct xt_tgchk_param *par) { const struct xt_rtpengine_info *pinfo = par->targinfo; if (!my_proc_root) { printk(KERN_WARNING "xt_RTPENGINE check() without proc_root\n"); return -EINVAL; } if (pinfo->id >= MAX_ID) { printk(KERN_WARNING "xt_RTPENGINE ID too high (%u >= %u)\n", pinfo->id, MAX_ID); return -EINVAL; } return 0; } static struct xt_target xt_rtpengine_regs[] = { { .name = "RTPENGINE", .family = NFPROTO_IPV4, .target = rtpengine4, .targetsize = sizeof(struct xt_rtpengine_info), .table = "filter", .hooks = (1 << NF_INET_LOCAL_IN), .checkentry = check, .me = THIS_MODULE, }, { .name = "RTPENGINE", .family = NFPROTO_IPV6, .target = rtpengine6, .targetsize = sizeof(struct xt_rtpengine_info), .table = "filter", .hooks = (1 << NF_INET_LOCAL_IN), .checkentry = check, .me = THIS_MODULE, }, }; static int __init init(void) { int ret; const char *err; err = "stream_packets_list_limit parameter must be larger than 0"; ret = -EINVAL; if (stream_packets_list_limit <= 0) goto fail; printk(KERN_NOTICE "Registering xt_RTPENGINE module - version %s\n", RTPENGINE_VERSION); DBG("using uid %u, gid %d\n", proc_uid, proc_gid); proc_kuid = KUIDT_INIT(proc_uid); proc_kgid = KGIDT_INIT(proc_gid); rwlock_init(&table_lock); auto_array_init(&calls); auto_array_init(&streams); ret = -ENOMEM; err = "could not register /proc/ entries"; my_proc_root = proc_mkdir_user("rtpengine", 0555, NULL); if (!my_proc_root) goto fail; /* my_proc_root->owner = THIS_MODULE; */ proc_control = proc_create_user("control", S_IFREG | 0220, my_proc_root, &proc_main_control_ops, NULL); if (!proc_control) goto fail; proc_list = proc_create_user("list", S_IFREG | 0444, my_proc_root, &proc_main_list_ops, NULL); if (!proc_list) goto fail; err = "could not register xtables target"; ret = xt_register_targets(xt_rtpengine_regs, ARRAY_SIZE(xt_rtpengine_regs)); if (ret) goto fail; #ifdef KERNEL_PLAYER rwlock_init(&media_player_lock); #endif return 0; fail: #ifdef KERNEL_PLAYER shut_all_threads(); #endif clear_proc(&proc_control); clear_proc(&proc_list); clear_proc(&my_proc_root); printk(KERN_ERR "Failed to load xt_RTPENGINE module: %s\n", err); return ret; } static void __exit fini(void) { printk(KERN_NOTICE "Unregistering xt_RTPENGINE module\n"); xt_unregister_targets(xt_rtpengine_regs, ARRAY_SIZE(xt_rtpengine_regs)); #ifdef KERNEL_PLAYER shut_all_threads(); #endif clear_proc(&proc_control); clear_proc(&proc_list); clear_proc(&my_proc_root); auto_array_free(&streams); auto_array_free(&calls); #ifdef KERNEL_PLAYER // these should be empty kfree(play_streams); kfree(stream_packets); #endif } module_init(init); module_exit(fini); rtpengine-mr12.5.1.22/kernel-module/xt_RTPENGINE.h000066400000000000000000000146331474347554000213620ustar00rootroot00000000000000#ifndef XT_RTPPROXY_H #define XT_RTPPROXY_H #include "common_stats.h" #define RTPE_NUM_PAYLOAD_TYPES 32 #define RTPE_MAX_FORWARD_DESTINATIONS 32 #define RTPE_NUM_SSRC_TRACKING 4 struct global_stats_counter; struct xt_rtpengine_info { unsigned int id; }; struct re_address { int family; union { unsigned char ipv6[16]; uint32_t ipv4; unsigned char u8[16]; uint16_t u16[8]; uint32_t u32[4]; } u; uint16_t port; }; enum rtpengine_cipher { REC_INVALID = 0, REC_NULL, REC_AES_CM_128, REC_AES_F8, REC_AES_CM_192, REC_AES_CM_256, REC_AEAD_AES_GCM_128, REC_AEAD_AES_GCM_256, __REC_LAST }; enum rtpengine_hmac { REH_INVALID = 0, REH_NULL, REH_HMAC_SHA1, __REH_LAST }; struct rtpengine_srtp { enum rtpengine_cipher cipher; enum rtpengine_hmac hmac; unsigned char master_key[32]; unsigned int master_key_len; unsigned char master_salt[14]; unsigned int master_salt_len; unsigned int session_key_len; unsigned int session_salt_len; unsigned char mki[256]; /* XXX uses too much memory? */ unsigned int rtp_auth_tag_len; /* in bytes */ unsigned int rtcp_auth_tag_len; /* in bytes */ unsigned int mki_len; }; enum rtpengine_src_mismatch { MSM_IGNORE = 0, /* process packet as normal */ MSM_DROP, /* drop packet */ MSM_PROPAGATE, /* propagate to userspace daemon */ }; struct rtpengine_pt_output { unsigned int min_payload_len; char replace_pattern[16]; unsigned char replace_pattern_len; }; struct rtpengine_target_info { struct re_address local; struct re_address expected_src; /* for incoming packets */ enum rtpengine_src_mismatch src_mismatch; unsigned int num_destinations; // total unsigned int num_rtcp_destinations; unsigned int intercept_stream_idx; struct rtpengine_srtp decrypt; uint32_t ssrc[RTPE_NUM_SSRC_TRACKING]; // Expose the SSRC to userspace when we resync. struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING]; struct rtp_stats *pt_stats[RTPE_NUM_PAYLOAD_TYPES]; // must be sorted by PT unsigned int num_payload_types; struct interface_stats_block *iface_stats; // for ingress stats struct stream_stats *stats; // for ingress stats unsigned int rtcp_mux:1, dtls:1, stun:1, rtp:1, ssrc_req:1, rtp_only:1, track_ssrc:1, rtcp:1, rtcp_fw:1, rtcp_fb_fw:1, do_intercept:1, pt_filter:1, non_forwarding:1, // empty src/dst addr blackhole:1, rtp_stats:1; // requires SSRC and clock_rates to be set }; struct rtpengine_output_info { struct re_address src_addr; /* for outgoing packets */ struct re_address dst_addr; struct rtpengine_srtp encrypt; uint32_t ssrc_out[RTPE_NUM_SSRC_TRACKING]; // Rewrite SSRC uint32_t seq_offset[RTPE_NUM_SSRC_TRACKING]; // Rewrite output seq struct rtpengine_pt_output pt_output[RTPE_NUM_PAYLOAD_TYPES]; // same indexes as pt_input struct interface_stats_block *iface_stats; // for egress stats struct stream_stats *stats; // for egress stats struct ssrc_stats *ssrc_stats[RTPE_NUM_SSRC_TRACKING]; unsigned char tos; unsigned int ssrc_subst:1; }; struct rtpengine_destination_info { struct re_address local; unsigned int num; struct rtpengine_output_info output; }; struct rtpengine_call_info { unsigned int call_idx; char call_id[256]; }; struct rtpengine_stream_idx_info { unsigned int call_idx; unsigned int stream_idx; }; struct rtpengine_stream_info { struct rtpengine_stream_idx_info idx; unsigned int max_packets; char stream_name[256]; }; struct rtpengine_packet_info { unsigned int call_idx; unsigned int stream_idx; unsigned char data[]; }; enum rtpengine_command { REMG_INIT = 1, REMG_ADD_TARGET, REMG_ADD_DESTINATION, REMG_ADD_CALL, REMG_DEL_CALL, REMG_ADD_STREAM, REMG_DEL_STREAM, REMG_PACKET, REMG_DEL_TARGET, REMG_INIT_PLAY_STREAMS, REMG_GET_PACKET_STREAM, REMG_PLAY_STREAM_PACKET, REMG_PLAY_STREAM, REMG_STOP_STREAM, REMG_FREE_PACKET_STREAM, __REMG_LAST }; struct rtpengine_init_info { int last_cmd; size_t msg_size[__REMG_LAST]; struct global_stats_counter *rtpe_stats; }; struct rtpengine_command_init { enum rtpengine_command cmd; struct rtpengine_init_info init; }; struct rtpengine_play_stream_info { struct re_address src_addr; struct re_address dst_addr; unsigned char pt; uint32_t ssrc; uint32_t ts; // start TS uint16_t seq; // start seq struct rtpengine_srtp encrypt; unsigned int packet_stream_idx; struct interface_stats_block *iface_stats; // for egress stats struct stream_stats *stats; // for egress stats struct ssrc_stats *ssrc_stats; int repeat; int remove_at_end; }; struct rtpengine_play_stream_packet_info { unsigned int packet_stream_idx; unsigned long delay_ms; // first packet = 0 uint32_t delay_ts; // first packet = 0 uint32_t duration_ts; unsigned char data[]; }; struct rtpengine_command_add_target { enum rtpengine_command cmd; struct rtpengine_target_info target; }; struct rtpengine_command_del_target { enum rtpengine_command cmd; struct re_address local; }; struct rtpengine_command_destination { enum rtpengine_command cmd; struct rtpengine_destination_info destination; }; struct rtpengine_command_add_call { enum rtpengine_command cmd; struct rtpengine_call_info call; }; struct rtpengine_command_del_call { enum rtpengine_command cmd; unsigned int call_idx; }; struct rtpengine_command_add_stream { enum rtpengine_command cmd; struct rtpengine_stream_info stream; }; struct rtpengine_command_del_stream { enum rtpengine_command cmd; struct rtpengine_stream_idx_info stream; }; struct rtpengine_command_packet { enum rtpengine_command cmd; struct rtpengine_packet_info packet; }; struct rtpengine_command_init_play_streams { enum rtpengine_command cmd; unsigned int num_packet_streams; unsigned int num_play_streams; }; struct rtpengine_command_get_packet_stream { enum rtpengine_command cmd; unsigned int packet_stream_idx; // output }; struct rtpengine_command_play_stream_packet { enum rtpengine_command cmd; struct rtpengine_play_stream_packet_info play_stream_packet; }; struct rtpengine_command_play_stream { enum rtpengine_command cmd; struct rtpengine_play_stream_info info; // input unsigned int play_idx; // output }; struct rtpengine_command_stop_stream { enum rtpengine_command cmd; unsigned int play_idx; }; struct rtpengine_command_free_packet_stream { enum rtpengine_command cmd; unsigned int packet_stream_idx; }; #endif rtpengine-mr12.5.1.22/kernel-module/xt_RTPENGINE.modules.load.d000066400000000000000000000000701474347554000237310ustar00rootroot00000000000000# Load xt_RTPENGINE kernel module at boot. xt_RTPENGINE rtpengine-mr12.5.1.22/lib/000077500000000000000000000000001474347554000151375ustar00rootroot00000000000000rtpengine-mr12.5.1.22/lib/.gitignore000066400000000000000000000000041474347554000171210ustar00rootroot00000000000000*.o rtpengine-mr12.5.1.22/lib/.ycm_extra_conf.py000066400000000000000000000100451474347554000205670ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' repl_tmpl = '((x)[a]?(((x)[a]<" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if 'CODEC_CHAIN_HOME' in os.environ: flags.append('-I' + os.environ['CODEC_CHAIN_HOME'] + '/usr/include') if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/lib/auxlib.c000066400000000000000000000374231474347554000166000ustar00rootroot00000000000000#include "auxlib.h" #include #include #include #include #include #include #include #include #ifdef HAVE_LIBSYSTEMD #include #endif #include #include #include #include #include "log.h" #include "loglib.h" struct thread_buf { char buf[THREAD_BUF_SIZE]; }; struct rtpengine_common_config *rtpe_common_config_ptr; __thread struct timeval rtpe_now; volatile bool rtpe_shutdown; static __thread struct thread_buf t_bufs[NUM_THREAD_BUFS]; static __thread int t_buf_idx; void daemonize(void) { if (rtpe_common_config_ptr->foreground) return; if (fork()) _exit(0); write_log = (write_log_t *) syslog; #ifdef __GLIBC__ stdin = freopen("/dev/null", "r", stdin); stdout = freopen("/dev/null", "w", stdout); stderr = freopen("/dev/null", "w", stderr); #else freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); #endif setpgrp(); } void wpidfile(void) { FILE *fp; if (!rtpe_common_config_ptr->pidfile) return; fp = fopen(rtpe_common_config_ptr->pidfile, "w"); if (!fp) { ilog(LOG_CRIT, "Failed to create PID file (%s), aborting startup", strerror(errno)); exit(-1); } fprintf(fp, "%u\n", getpid()); fclose(fp); } void service_notify(const char *message) { #ifdef HAVE_LIBSYSTEMD sd_notify(0, message); #endif } int thread_create(void *(*func)(void *), void *arg, bool joinable, pthread_t *handle, const char *name) { pthread_attr_t att; pthread_t thr; int ret; if (pthread_attr_init(&att)) abort(); if (pthread_attr_setdetachstate(&att, joinable ? PTHREAD_CREATE_JOINABLE : PTHREAD_CREATE_DETACHED)) abort(); if (rtpe_common_config_ptr->thread_stack > 0) { if (pthread_attr_setstacksize(&att, rtpe_common_config_ptr->thread_stack * 1024)) { ilog(LOG_ERR, "Failed to set thread stack size to %llu", (unsigned long long) rtpe_common_config_ptr->thread_stack * 1024); abort(); } } ret = pthread_create(&thr, &att, func, arg); pthread_attr_destroy(&att); if (ret) return ret; if (handle) *handle = thr; #ifdef __GLIBC__ if (name) pthread_setname_np(thr, name); #endif return 0; } void resources(void) { struct rlimit rl; int tryv; rlim(RLIMIT_CORE, RLIM_INFINITY); if (getrlimit(RLIMIT_NOFILE, &rl)) rl.rlim_cur = 0; for (tryv = ((1<<20) - 1); tryv && tryv > rl.rlim_cur && rlim(RLIMIT_NOFILE, tryv) == -1; tryv >>= 1) ; rlim(RLIMIT_DATA, RLIM_INFINITY); rlim(RLIMIT_RSS, RLIM_INFINITY); rlim(RLIMIT_AS, RLIM_INFINITY); } static unsigned int options_length(const GOptionEntry *arr) { unsigned int len = 0; for (const GOptionEntry *p = arr; p->long_name; p++) len++; return len; } #define CONF_OPTION_GLUE(get_func, data_type, ...) \ { \ data_type *varptr = e->arg_data; \ data_type var = g_key_file_get_ ## get_func(kf, use_section, e->long_name, \ ##__VA_ARGS__, &er); \ if (er && g_error_matches(er, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) { \ g_error_free(er); \ er = NULL; \ break; \ } \ if (er) \ goto err; \ *varptr = var; \ } void config_load_free(struct rtpengine_common_config *cconfig) { // free common config options g_free(cconfig->config_file); g_free(cconfig->config_section); g_free(cconfig->log_facility); g_free(cconfig->log_name); g_free(cconfig->log_mark_prefix); g_free(cconfig->log_mark_suffix); g_free(cconfig->pidfile); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionEntry, free) typedef char *char_p_shallow; G_DEFINE_AUTOPTR_CLEANUP_FUNC(char_p_shallow, g_free) void config_load(int *argc, char ***argv, GOptionEntry *app_entries, const char *description, char *default_config, char *default_section, struct rtpengine_common_config *cconfig) { g_autoptr(GOptionContext) c = NULL; g_autoptr(GError) er = NULL; g_autoptr(char) use_section = NULL; const char *use_config; int fatal = 0; g_autoptr(char_p) saved_argv_arr = g_strdupv(*argv); g_autoptr(char_p_shallow) saved_argv = __g_memdup(saved_argv_arr, sizeof(char *) * (*argc + 1)); int saved_argc = *argc; gboolean version = false; rtpe_common_config_ptr = cconfig; // defaults #ifndef __DEBUG rtpe_common_config_ptr->default_log_level = LOG_INFO; #else rtpe_common_config_ptr->default_log_level = LOG_DEBUG; #endif rtpe_common_config_ptr->codec_chain_opus_complexity = -1; g_autoptr(GKeyFile) kf = g_key_file_new(); #define ll(system, descr) \ { "log-level-" #system, 0, 0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->log_levels[log_level_index_ ## system],"Log level for: " descr,"INT" }, GOptionEntry shared_options[] = { { "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Print build time and exit", NULL }, { "config-file", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->config_file, "Load config from this file", "FILE" }, { "config-section", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->config_section,"Config file section to use", "STRING" }, { "log-facility", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->log_facility, "Syslog facility to use for logging", "daemon|local0|...|local7"}, { "log-level", 'L', 0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->default_log_level,"Default log level", "INT" }, #include "loglevels.h" { "log-stderr", 'E', 0, G_OPTION_ARG_NONE, &rtpe_common_config_ptr->log_stderr, "Log on stderr instead of syslog", NULL }, { "split-logs", 0, 0, G_OPTION_ARG_NONE, &rtpe_common_config_ptr->split_logs, "Split multi-line log messages", NULL }, { "max-log-line-length",0, 0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->max_log_line_length, "Break log lines at this length","INT" }, { "no-log-timestamps", 0, 0, G_OPTION_ARG_NONE, &rtpe_common_config_ptr->no_log_timestamps,"Drop timestamps from log lines to stderr",NULL }, { "log-name", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->log_name, "Set the id to be printed in syslog", NULL }, { "log-mark-prefix", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->log_mark_prefix,"Prefix for sensitive log info", NULL }, { "log-mark-suffix", 0, 0, G_OPTION_ARG_STRING, &rtpe_common_config_ptr->log_mark_suffix,"Suffix for sensitive log info", NULL }, { "pidfile", 'p', 0, G_OPTION_ARG_FILENAME, &rtpe_common_config_ptr->pidfile, "Write PID to file", "FILE" }, { "foreground", 'f', 0, G_OPTION_ARG_NONE, &rtpe_common_config_ptr->foreground, "Don't fork to background", NULL }, { "thread-stack", 0,0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->thread_stack, "Thread stack size in kB", "INT" }, { "poller-size", 0,0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->poller_size, "Max poller items per iteration", "INT" }, #ifdef HAVE_LIBURING { "io-uring", 0,0, G_OPTION_ARG_NONE, &rtpe_common_config_ptr->io_uring, "Use io_uring", NULL }, { "io-uring-buffers", 0,0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->io_uring_buffers,"Number of io_uring entries per thread","INT" }, #endif { "evs-lib-path", 0,0, G_OPTION_ARG_FILENAME, &rtpe_common_config_ptr->evs_lib_path, "Location of .so for 3GPP EVS codec", "FILE" }, #ifdef HAVE_CODEC_CHAIN { "codec-chain-lib-path",0,0, G_OPTION_ARG_FILENAME, &rtpe_common_config_ptr->codec_chain_lib_path,"Location of libcodec-chain.so", "FILE" }, { "codec-chain-runners",0,0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->codec_chain_runners,"Number of chain runners per codec","INT" }, { "codec-chain-concurrency",0,0,G_OPTION_ARG_INT, &rtpe_common_config_ptr->codec_chain_concurrency,"Max concurrent codec jobs per runner","INT" }, { "codec-chain-async",0,0, G_OPTION_ARG_INT, &rtpe_common_config_ptr->codec_chain_async,"Number of background callback threads","INT" }, { "codec-chain-opus-complexity",0,0,G_OPTION_ARG_INT, &rtpe_common_config_ptr->codec_chain_opus_complexity,"Opus encoding complexity (0..10)","INT" }, #endif { NULL, } }; #undef ll // prepend shared CLI options unsigned int shared_len = options_length(shared_options); unsigned int app_len = options_length(app_entries); size_t entries_size = sizeof(GOptionEntry) * (shared_len + app_len + 1); g_autoptr(GOptionEntry) entries = malloc(entries_size); memcpy(entries, shared_options, sizeof(*entries) * shared_len); memcpy(&entries[shared_len], app_entries, sizeof(*entries) * (app_len + 1)); g_autoptr(GOptionEntry) entries_copy = malloc(entries_size); memcpy(entries_copy, entries, entries_size); c = g_option_context_new(description); g_option_context_add_main_entries(c, entries, NULL); if (!g_option_context_parse(c, argc, argv, &er)) goto err; if (rtpe_common_config_ptr->config_section) { use_section = g_strdup(rtpe_common_config_ptr->config_section); } else { use_section = g_strdup(default_section); } // is there a config file to load? use_config = default_config; if (rtpe_common_config_ptr->config_file) { use_config = rtpe_common_config_ptr->config_file; if (!strcmp(use_config, "none")) goto out; fatal = 1; } if (!g_key_file_load_from_file(kf, use_config, G_KEY_FILE_NONE, &er)) { if (!fatal && (g_error_matches(er, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_NOT_FOUND) || g_error_matches(er, G_FILE_ERROR, G_FILE_ERROR_NOENT))) goto out; goto err; } // destroy the option context to reset - we'll do it again later g_option_context_free(c); c = NULL; // iterate the options list and see if the config file defines any. // free any strings we come across, as we'll load argv back in. // also keep track of any returned strings so we can free them if // they were overwritten. we abuse the description field for this. for (GOptionEntry *e = entries_copy; e->long_name; e++) { switch (e->arg) { case G_OPTION_ARG_NONE: CONF_OPTION_GLUE(boolean, int); break; case G_OPTION_ARG_INT: CONF_OPTION_GLUE(integer, int); break; case G_OPTION_ARG_INT64: CONF_OPTION_GLUE(uint64, uint64_t); break; case G_OPTION_ARG_DOUBLE: CONF_OPTION_GLUE(double, double); break; case G_OPTION_ARG_STRING: case G_OPTION_ARG_FILENAME: { char **s = e->arg_data; g_free(*s); *s = NULL; e->description = NULL; CONF_OPTION_GLUE(string, char *); e->description = (void *) *s; *s = NULL; break; } case G_OPTION_ARG_STRING_ARRAY: { char ***s = e->arg_data; g_strfreev(*s); *s = NULL; e->description = NULL; CONF_OPTION_GLUE(string_list, char **, NULL); e->description = (void *) *s; *s = NULL; break; } default: config_load_free(rtpe_common_config_ptr); abort(); } } // process CLI arguments again so they override options from the config file c = g_option_context_new(description); g_option_context_add_main_entries(c, entries, NULL); g_option_context_parse(c, &saved_argc, &saved_argv, &er); // finally go through our list again to look for strings that were // overwritten, and free the old values. // this is also a good opportunity to trim off stray spaces. for (GOptionEntry *e = entries_copy; e->long_name; e++) { switch (e->arg) { case G_OPTION_ARG_STRING: case G_OPTION_ARG_FILENAME: { char **s = e->arg_data; if (!*s && e->description) *s = (char *) e->description; else if (*s != e->description) g_free((void *) e->description); if (*s) { size_t len = strlen(*s); while (len && (*s)[len-1] == ' ') (*s)[--len] = '\0'; } break; } case G_OPTION_ARG_STRING_ARRAY: { char ***s = e->arg_data; if (!*s && e->description) *s = (char **) e->description; else if (*s != (void *) e->description) g_strfreev((void *) e->description); if (*s) { for (int i = 0; (*s)[i]; i++) { char *ss = (*s)[i]; size_t len = strlen(ss); while (len && ss[len-1] == ' ') ss[--len] = '\0'; } } break; } default: break; } } out: // default common values, if not configured if (rtpe_common_config_ptr->log_name == NULL) rtpe_common_config_ptr->log_name = g_strdup("rtpengine"); if (rtpe_common_config_ptr->log_mark_prefix == NULL) rtpe_common_config_ptr->log_mark_prefix = g_strdup(""); if (rtpe_common_config_ptr->log_mark_suffix == NULL) rtpe_common_config_ptr->log_mark_suffix = g_strdup(""); if (version) { fprintf(stderr, "Version: %s\n", RTPENGINE_VERSION); exit(0); } if (rtpe_common_config_ptr->log_facility) { if (!parse_log_facility(rtpe_common_config_ptr->log_facility, &ilog_facility)) { print_available_log_facilities(); die ("Invalid log facility '%s' (--log-facility)", rtpe_common_config_ptr->log_facility); } } for (unsigned int i = 0; i < num_log_levels; i++) { if (!rtpe_common_config_ptr->log_levels[i]) rtpe_common_config_ptr->log_levels[i] = rtpe_common_config_ptr->default_log_level; } if (rtpe_common_config_ptr->log_stderr) write_log = log_to_stderr; else if (rtpe_common_config_ptr->max_log_line_length == 0) rtpe_common_config_ptr->max_log_line_length = 500; if (rtpe_common_config_ptr->max_log_line_length < 0) rtpe_common_config_ptr->max_log_line_length = 0; if (rtpe_common_config_ptr->thread_stack == 0) rtpe_common_config_ptr->thread_stack = 2048; if (rtpe_common_config_ptr->poller_size <= 0) rtpe_common_config_ptr->poller_size = 128; #ifdef HAVE_CODEC_CHAIN if (rtpe_common_config_ptr->codec_chain_runners <= 0) rtpe_common_config_ptr->codec_chain_runners = 4; if (rtpe_common_config_ptr->codec_chain_concurrency <= 0) rtpe_common_config_ptr->codec_chain_concurrency = 256; if (rtpe_common_config_ptr->codec_chain_async < 0) rtpe_common_config_ptr->codec_chain_async = 0; if (rtpe_common_config_ptr->codec_chain_opus_complexity == -1) rtpe_common_config_ptr->codec_chain_opus_complexity = 10; if (rtpe_common_config_ptr->codec_chain_opus_complexity < 0 || rtpe_common_config_ptr->codec_chain_opus_complexity > 10) die("Invalid value for --codec-chain-opus-complexity"); #endif #if HAVE_LIBURING if (rtpe_common_config_ptr->io_uring_buffers == 0) rtpe_common_config_ptr->io_uring_buffers = 16384; else if (rtpe_common_config_ptr->io_uring_buffers < 0) die("Invalid value for --io-uring-buffers"); #endif return; err: config_load_free(rtpe_common_config_ptr); die("Bad command line: %s", er->message); } char *get_thread_buf(void) { char *ret; ret = t_bufs[t_buf_idx].buf; t_buf_idx++; if (t_buf_idx >= G_N_ELEMENTS(t_bufs)) t_buf_idx = 0; return ret; } unsigned int in6_addr_hash(const void *p) { const struct in6_addr *a = p; return a->s6_addr32[0] ^ a->s6_addr32[3]; } int in6_addr_eq(const void *a, const void *b) { const struct in6_addr *A = a, *B = b; return !memcmp(A, B, sizeof(*A)); } unsigned int uint32_hash(const void *p) { const uint32_t *a = p; return *a; } int uint32_eq(const void *a, const void *b) { const uint32_t *A = a, *B = b; return (*A == *B) ? TRUE : FALSE; } int timeval_cmp_zero(const void *a, const void *b) { const struct timeval *A = a, *B = b; /* zero timevals go last */ if (A->tv_sec == 0 && B->tv_sec != 0) return 1; if (B->tv_sec == 0 && A->tv_sec == 0) return -1; if (A->tv_sec == 0 && B->tv_sec == 0) return 0; /* earlier timevals go first */ return timeval_cmp(A, B); } int timeval_cmp_ptr(const void *a, const void *b) { const struct timeval *A = a, *B = b; int ret; ret = timeval_cmp_zero(A, B); if (ret) return ret; /* equal timeval, so use pointer as tie breaker */ if (A < B) return -1; if (A > B) return 1; return 0; } int rtpe_tree_find_first_cmp(void *k, void *v, void *d) { struct rtpe_g_tree_find_helper *h = d; if (!h->func || h->func(v, h->data)) { h->out_p = v; return TRUE; } return FALSE; } int rtpe_tree_find_all_cmp(void *k, void *v, void *d) { struct rtpe_g_tree_find_helper *h = d; if (!h->func || h->func(v, h->data)) g_queue_push_tail(h->out_q, v); return FALSE; } int num_cpu_cores(int minval) { #ifdef _SC_NPROCESSORS_ONLN int ret = sysconf(_SC_NPROCESSORS_ONLN); if (ret >= 1 && ret >= minval) return ret; #endif return minval; } rtpengine-mr12.5.1.22/lib/auxlib.h000066400000000000000000000470471474347554000166100ustar00rootroot00000000000000#ifndef _AUXLIB_H_ #define _AUXLIB_H_ #include #include #include "compat.h" #include #include #include #include #include #include #include #define THREAD_BUF_SIZE 64 #define NUM_THREAD_BUFS 8 #define MAX_LOG_LEVELS 32 struct rtpengine_common_config { char *config_file; char *config_section; char *log_facility; int default_log_level; int log_levels[MAX_LOG_LEVELS]; gboolean log_stderr; gboolean split_logs; gboolean no_log_timestamps; char *log_name; char *log_mark_prefix; char *log_mark_suffix; char *pidfile; gboolean foreground; int thread_stack; int poller_size; gboolean io_uring; int io_uring_buffers; int max_log_line_length; char *evs_lib_path; char *codec_chain_lib_path; int codec_chain_runners; int codec_chain_concurrency; int codec_chain_async; int codec_chain_opus_complexity; }; extern struct rtpengine_common_config *rtpe_common_config_ptr; /*** GLOBALS ***/ extern __thread struct timeval rtpe_now; extern volatile bool rtpe_shutdown; /*** PROTOTYPES ***/ void daemonize(void); void resources(void); void wpidfile(void); void service_notify(const char *message); void config_load_free(struct rtpengine_common_config *); void config_load(int *argc, char ***argv, GOptionEntry *entries, const char *description, char *default_config, char *default_section, struct rtpengine_common_config *); char *get_thread_buf(void); int thread_create(void *(*func)(void *), void *arg, bool joinable, pthread_t *handle, const char *name); unsigned int in6_addr_hash(const void *p); int in6_addr_eq(const void *a, const void *b); unsigned int uint32_hash(const void *p); int uint32_eq(const void *a, const void *b); int num_cpu_cores(int); /*** HELPER MACROS ***/ #define ZERO(x) memset(&(x), 0, sizeof(x)) #define UINT64F "%" G_GUINT64_FORMAT G_DEFINE_AUTOPTR_CLEANUP_FUNC(char, g_free) typedef char *char_p; G_DEFINE_AUTOPTR_CLEANUP_FUNC(char_p, g_strfreev) #define auto_iter(v, l) __typeof__ ( ({ __typeof__ (*l) __t; &__t; }) ) v = (l) /* for gcc <12 */ /*** STRING HELPERS ***/ INLINE void random_string(unsigned char *buf, int len) { int ret = RAND_bytes(buf, len); assert(ret == 1); (void) ret; } INLINE unsigned int c_str_hash(const char *s) { return g_str_hash(s); } INLINE gboolean c_str_equal(const char *a, const char *b) { return g_str_equal(a, b); } /*** MUTEX ABSTRACTION ***/ typedef pthread_mutex_t mutex_t; typedef pthread_rwlock_t rwlock_t; typedef pthread_cond_t cond_t; #define mutex_init(m) __debug_mutex_init(m, __FILE__, __LINE__) #define mutex_destroy(m) __debug_mutex_destroy(m, __FILE__, __LINE__) #define mutex_lock(m) __debug_mutex_lock(m, __FILE__, __LINE__) #define mutex_trylock(m) __debug_mutex_trylock(m, __FILE__, __LINE__) #define mutex_unlock(m) __debug_mutex_unlock(m, __FILE__, __LINE__) #define MUTEX_STATIC_INIT PTHREAD_MUTEX_INITIALIZER #define rwlock_init(l) __debug_rwlock_init(l, __FILE__, __LINE__) #define rwlock_destroy(l) __debug_rwlock_destroy(l, __FILE__, __LINE__) #define rwlock_lock_r(l) __debug_rwlock_lock_r(l, __FILE__, __LINE__) #define rwlock_unlock_r(l) __debug_rwlock_unlock_r(l, __FILE__, __LINE__) #define rwlock_lock_w(l) __debug_rwlock_lock_w(l, __FILE__, __LINE__) #define rwlock_unlock_w(l) __debug_rwlock_unlock_w(l, __FILE__, __LINE__) #define cond_init(c) __debug_cond_init(c, __FILE__, __LINE__) #define cond_wait(c,m) __debug_cond_wait(c,m, __FILE__, __LINE__) #define cond_timedwait(c,m,t) __debug_cond_timedwait(c,m,t, __FILE__, __LINE__) #define cond_signal(c) __debug_cond_signal(c, __FILE__, __LINE__) #define cond_broadcast(c) __debug_cond_broadcast(c, __FILE__, __LINE__) #define COND_STATIC_INIT PTHREAD_COND_INITIALIZER INLINE int __cond_timedwait_tv(cond_t *c, mutex_t *m, const struct timeval *tv) { struct timespec ts; ts.tv_sec = tv->tv_sec; ts.tv_nsec = tv->tv_usec * 1000; return pthread_cond_timedwait(c, m, &ts); } #ifndef ASAN_BUILD #define thread_cancel_enable() pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) #define thread_cancel_disable() pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL) #define thread_sleep_time 10000 /* ms */ #define thread_cleanup_push pthread_cleanup_push #define thread_cleanup_pop pthread_cleanup_pop #else #define thread_cancel_enable() ((void)0) #define thread_cancel_disable() ((void)0) #define thread_sleep_time 100 /* ms */ #define thread_cleanup_push(f,a) void (*_cfn)(void *) = f; void *_cfa = a #define thread_cleanup_pop(exe) assert(exe != false); _cfn(_cfa) #endif #ifndef __THREAD_DEBUG #define __debug_mutex_init(m, F, L) pthread_mutex_init(m, NULL) #define __debug_mutex_destroy(m, F, L) pthread_mutex_destroy(m) #define __debug_mutex_lock(m, F, L) pthread_mutex_lock(m) #define __debug_mutex_trylock(m, F, L) pthread_mutex_trylock(m) #define __debug_mutex_unlock(m, F, L) pthread_mutex_unlock(m) #define __debug_rwlock_init(l, F, L) pthread_rwlock_init(l, NULL) #define __debug_rwlock_destroy(l, F, L) pthread_rwlock_destroy(l) #define __debug_rwlock_lock_r(l, F, L) pthread_rwlock_rdlock(l) #define __debug_rwlock_unlock_r(l, F, L) pthread_rwlock_unlock(l) #define __debug_rwlock_lock_w(l, F, L) pthread_rwlock_wrlock(l) #define __debug_rwlock_unlock_w(l, F, L) pthread_rwlock_unlock(l) #define __debug_cond_init(c, F, L) pthread_cond_init(c, NULL) #define __debug_cond_wait(c, m, F, L) pthread_cond_wait(c,m) #define __debug_cond_timedwait(c, m, t, F, L) __cond_timedwait_tv(c,m,t) #define __debug_cond_signal(c, F, L) pthread_cond_signal(c) #define __debug_cond_broadcast(c, F, L) pthread_cond_broadcast(c) #else #include "log.h" INLINE int __debug_mutex_init(mutex_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "mutex_init(%p) at %s:%u", m, file, line); return pthread_mutex_init(m, NULL); } INLINE int __debug_mutex_destroy(mutex_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "mutex_destroy(%p) at %s:%u", m, file, line); return pthread_mutex_destroy(m); } INLINE int __debug_mutex_lock(mutex_t *m, const char *file, unsigned int line) { int ret; write_log(LOG_DEBUG, "mutex_lock(%p) at %s:%u ...", m, file, line); ret = pthread_mutex_lock(m); write_log(LOG_DEBUG, "mutex_lock(%p) at %s:%u returning %i", m, file, line, ret); return ret; } INLINE int __debug_mutex_trylock(mutex_t *m, const char *file, unsigned int line) { int ret; write_log(LOG_DEBUG, "mutex_trylock(%p) at %s:%u ...", m, file, line); ret = pthread_mutex_trylock(m); write_log(LOG_DEBUG, "mutex_trylock(%p) at %s:%u returning %i", m, file, line, ret); return ret; } INLINE int __debug_mutex_unlock(mutex_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "mutex_unlock(%p) at %s:%u", m, file, line); return pthread_mutex_unlock(m); } INLINE int __debug_rwlock_init(rwlock_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "rwlock_init(%p) at %s:%u", m, file, line); return pthread_rwlock_init(m, NULL); } INLINE int __debug_rwlock_destroy(rwlock_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "rwlock_destroy(%p) at %s:%u", m, file, line); return pthread_rwlock_destroy(m); } INLINE int __debug_rwlock_lock_r(rwlock_t *m, const char *file, unsigned int line) { int ret; write_log(LOG_DEBUG, "rwlock_lock_r(%p) at %s:%u ...", m, file, line); ret = pthread_rwlock_rdlock(m); write_log(LOG_DEBUG, "rwlock_lock_r(%p) at %s:%u returning %i", m, file, line, ret); return ret; } INLINE int __debug_rwlock_lock_w(rwlock_t *m, const char *file, unsigned int line) { int ret; write_log(LOG_DEBUG, "rwlock_lock_w(%p) at %s:%u ...", m, file, line); ret = pthread_rwlock_wrlock(m); write_log(LOG_DEBUG, "rwlock_lock_w(%p) at %s:%u returning %i", m, file, line, ret); return ret; } INLINE int __debug_rwlock_unlock_r(rwlock_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "rwlock_unlock_r(%p) at %s:%u", m, file, line); return pthread_rwlock_unlock(m); } INLINE int __debug_rwlock_unlock_w(rwlock_t *m, const char *file, unsigned int line) { write_log(LOG_DEBUG, "rwlock_unlock_w(%p) at %s:%u", m, file, line); return pthread_rwlock_unlock(m); } #define __debug_cond_init(c, F, L) pthread_cond_init(c, NULL) #define __debug_cond_wait(c, m, F, L) pthread_cond_wait(c,m) #define __debug_cond_timedwait(c, m, t, F, L) __cond_timedwait_tv(c,m,t) #define __debug_cond_signal(c, F, L) pthread_cond_signal(c) #define __debug_cond_broadcast(c, F, L) pthread_cond_broadcast(c) #endif typedef mutex_t mutex_lock_t; typedef rwlock_t rwlock_w_lock_t; typedef rwlock_t rwlock_r_lock_t; INLINE void mutex_ptr_unlock(mutex_lock_t *m) { mutex_unlock(m); } INLINE mutex_lock_t *mutex_auto_lock(mutex_t *m) { mutex_lock(m); return m; } INLINE void rwlock_ptr_unlock_r(rwlock_r_lock_t *m) { rwlock_unlock_r(m); } INLINE rwlock_r_lock_t *rwlock_auto_lock_r(rwlock_t *m) { rwlock_lock_r(m); return m; } INLINE void rwlock_ptr_unlock_w(rwlock_w_lock_t *m) { rwlock_unlock_w(m); } INLINE rwlock_w_lock_t *rwlock_auto_lock_w(rwlock_t *m) { rwlock_lock_w(m); return m; } G_DEFINE_AUTOPTR_CLEANUP_FUNC(mutex_lock_t, mutex_ptr_unlock) G_DEFINE_AUTOPTR_CLEANUP_FUNC(rwlock_r_lock_t, rwlock_ptr_unlock_w) G_DEFINE_AUTOPTR_CLEANUP_FUNC(rwlock_w_lock_t, rwlock_ptr_unlock_r) #define CONCAT2(a, b) a ## b #define CONCAT(a, b) CONCAT2(a, b) #define LOCK(m) g_autoptr(mutex_lock_t) CONCAT(__auto_lock_, __COUNTER__) \ __attribute__((unused)) = mutex_auto_lock(m) #define RWLOCK_R(m) g_autoptr(rwlock_r_lock_t) CONCAT(__auto_lock_, __COUNTER__) \ __attribute__((unused)) = rwlock_auto_lock_r(m) #define RWLOCK_W(m) g_autoptr(rwlock_w_lock_t) CONCAT(__auto_lock_, __COUNTER__) \ __attribute__((unused)) = rwlock_auto_lock_w(m) /*** TIMEVAL FUNCTIONS ***/ INLINE long long timeval_us(const struct timeval *t) { return (long long) ((long long) t->tv_sec * 1000000LL) + t->tv_usec; } INLINE void timeval_from_us(struct timeval *t, long long ms) { t->tv_sec = ms/1000000LL; t->tv_usec = ms%1000000LL; } INLINE long long timeval_diff(const struct timeval *a, const struct timeval *b) { return timeval_us(a) - timeval_us(b); } INLINE void timeval_subtract(struct timeval *result, const struct timeval *a, const struct timeval *b) { timeval_from_us(result, timeval_diff(a, b)); } INLINE void timeval_multiply(struct timeval *result, const struct timeval *a, const long multiplier) { timeval_from_us(result, timeval_us(a) * multiplier); } INLINE void timeval_divide(struct timeval *result, const struct timeval *a, const long divisor) { if (divisor == 0) { result->tv_sec = 0; result->tv_usec = 0; return ; } timeval_from_us(result, timeval_us(a) / divisor); } INLINE void timeval_add(struct timeval *result, const struct timeval *a, const struct timeval *b) { timeval_from_us(result, timeval_us(a) + timeval_us(b)); } INLINE void timeval_add_usec(struct timeval *tv, long usec) { timeval_from_us(tv, timeval_us(tv) + usec); } INLINE int long_cmp(long long a, long long b) { if (a == b) return 0; if (a < b) return -1; return 1; } INLINE int timeval_cmp(const struct timeval *a, const struct timeval *b) { int r = long_cmp(a->tv_sec, b->tv_sec); if (r != 0) return r; return long_cmp(a->tv_usec, b->tv_usec); } // as a GCompareFunc int timeval_cmp_zero(const void *a, const void *b); int timeval_cmp_ptr(const void *a, const void *b); INLINE void timeval_lowest(struct timeval *l, const struct timeval *n) { if (!n->tv_sec) return; if (!l->tv_sec || timeval_cmp(l, n) == 1) *l = *n; } INLINE double ntp_ts_to_double(uint32_t whole, uint32_t frac) { return (double) whole + (double) frac / 4294967296.0; } /*** GLIB HELPERS ***/ INLINE int g_tree_clear_cb(void *k, void *v, void *p) { GQueue *q = p; g_queue_push_tail(q, k); return 0; } INLINE void g_tree_clear(GTree *t) { GQueue q = G_QUEUE_INIT; g_tree_foreach(t, g_tree_clear_cb, &q); while (q.length) { void *k = g_queue_pop_head(&q); g_tree_remove(t, k); } } int rtpe_tree_find_first_cmp(void *, void *, void *); int rtpe_tree_find_all_cmp(void *, void *, void *); struct rtpe_g_tree_find_helper { GEqualFunc func; void *data; union { GQueue *out_q; void *out_p; }; }; INLINE void *g_tree_find_first(GTree *t, GEqualFunc f, void *data) { struct rtpe_g_tree_find_helper h = { .func = f, .data = data, }; g_tree_foreach(t, rtpe_tree_find_first_cmp, &h); return h.out_p; } INLINE void g_tree_find_all(GQueue *out, GTree *t, GEqualFunc f, void *data) { struct rtpe_g_tree_find_helper h = { .func = f, .data = data, .out_q = out, }; g_tree_foreach(t, rtpe_tree_find_all_cmp, &h); } INLINE void g_tree_get_values(GQueue *out, GTree *t) { g_tree_find_all(out, t, NULL, NULL); } INLINE void g_tree_find_remove_all(GQueue *out, GTree *t) { GList *l; g_queue_init(out); g_tree_find_all(out, t, NULL, NULL); for (l = out->head; l; l = l->next) g_tree_remove(t, l->data); } INLINE void g_tree_insert_coll(GTree *t, gpointer key, gpointer val, void (*cb)(gpointer, gpointer)) { gpointer old = g_tree_lookup(t, key); if (old) cb(old, val); g_tree_insert(t, key, val); } INLINE void g_tree_add_all(GTree *t, GQueue *q, void (*cb)(gpointer, gpointer)) { GList *l; for (l = q->head; l; l = l->next) g_tree_insert_coll(t, l->data, l->data, cb); g_queue_clear(q); } #if !GLIB_CHECK_VERSION(2,68,0) # define __g_memdup(a,b) g_memdup(a,b) #else # define __g_memdup(a,b) g_memdup2(a,b) #endif #if !GLIB_CHECK_VERSION(2,58,0) INLINE gboolean g_hash_table_steal_extended(GHashTable *ht, gconstpointer lookup, gpointer *ret_key, gpointer *ret_val) { gboolean found = g_hash_table_lookup_extended(ht, lookup, ret_key, ret_val); if (!found) return false; g_hash_table_steal(ht, lookup); return true; } #endif #if !(GLIB_CHECK_VERSION(2,60,0)) INLINE void g_queue_clear_full(GQueue *q, GDestroyNotify free_func) { void *p; while ((p = g_queue_pop_head(q))) free_func(p); } #endif /*** MISC ***/ INLINE long unsigned int ssl_random(void) { long unsigned int ret; random_string((void *) &ret, sizeof(ret)); return ret; } INLINE int rlim(int res, rlim_t val) { struct rlimit rlim; ZERO(rlim); rlim.rlim_cur = rlim.rlim_max = val; return setrlimit(res, &rlim); } #if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 30)) INLINE pid_t gettid(void) { return syscall(SYS_gettid); } #endif INLINE unsigned int int64_hash(const uint64_t *s) { return g_int64_hash(s); } INLINE gboolean int64_eq(const uint64_t *a, const uint64_t *b) { return *a == *b; } /*** TAINT FUNCTIONS ***/ #if HAS_ATTR(__error__) /* This is not supported in clang, and on gcc it might become inert if the * symbol gets remapped to a builtin or stack protected function, but it * otherwise gives better diagnostics. */ #define taint_func(symbol, reason) \ __typeof__(symbol) symbol __attribute__((__error__(reason))) #else #define taint_pragma(str) _Pragma(#str) #define taint_pragma_expand(str) taint_pragma(str) #define taint_func(symbol, reason) taint_pragma_expand(GCC poison symbol) #endif taint_func(rand, "use ssl_random() instead"); taint_func(random, "use ssl_random() instead"); taint_func(srandom, "use rtpe_ssl_init() instead"); /*** ATOMIC64 ***/ typedef struct { uint64_t a; } atomic64; INLINE uint64_t atomic64_get(const atomic64 *u) { return __atomic_load_n(&u->a, __ATOMIC_SEQ_CST); } INLINE uint64_t atomic64_get_na(const atomic64 *u) { return __atomic_load_n(&u->a, __ATOMIC_RELAXED); } INLINE void atomic64_set(atomic64 *u, uint64_t a) { __atomic_store_n(&u->a, a, __ATOMIC_SEQ_CST); } INLINE gboolean atomic64_set_if(atomic64 *u, uint64_t a, uint64_t i) { return __atomic_compare_exchange_n(&u->a, &i, a, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } INLINE void atomic64_set_na(atomic64 *u, uint64_t a) { __atomic_store_n(&u->a, a, __ATOMIC_RELAXED); } INLINE uint64_t atomic64_add(atomic64 *u, uint64_t a) { return __atomic_fetch_add(&u->a, a, __ATOMIC_SEQ_CST); } INLINE uint64_t atomic64_add_na(atomic64 *u, uint64_t a) { return __atomic_fetch_add(&u->a, a, __ATOMIC_RELAXED); } INLINE uint64_t atomic64_get_set(atomic64 *u, uint64_t a) { uint64_t old; do { old = atomic64_get(u); if (__atomic_compare_exchange_n(&u->a, &old, a, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) return old; } while (1); } INLINE uint64_t atomic64_or(atomic64 *u, uint64_t a) { return __atomic_fetch_or(&u->a, a, __ATOMIC_SEQ_CST); } INLINE uint64_t atomic64_and(atomic64 *u, uint64_t a) { return __atomic_fetch_and(&u->a, a, __ATOMIC_SEQ_CST); } INLINE uint64_t atomic64_inc(atomic64 *u) { return atomic64_add(u, 1); } INLINE uint64_t atomic64_inc_na(atomic64 *u) { return atomic64_add_na(u, 1); } INLINE uint64_t atomic64_dec(atomic64 *u) { return atomic64_add(u, -1); } INLINE void atomic64_local_copy_zero(atomic64 *dst, atomic64 *src) { atomic64_set_na(dst, atomic64_get_set(src, 0)); } #define atomic64_local_copy_zero_struct(d, s, member) \ atomic64_local_copy_zero(&((d)->member), &((s)->member)) INLINE void atomic64_min(atomic64 *min, uint64_t val) { do { uint64_t old = atomic64_get_na(min); if (old && old <= val) break; if (atomic64_set_if(min, val, old)) break; } while (1); } INLINE void atomic64_max(atomic64 *max, uint64_t val) { do { uint64_t old = atomic64_get_na(max); if (old && old >= val) break; if (atomic64_set_if(max, val, old)) break; } while (1); } INLINE void atomic64_calc_rate_from_diff(long long run_diff_us, uint64_t diff, atomic64 *rate_var) { atomic64_set_na(rate_var, run_diff_us ? diff * 1000000LL / run_diff_us : 0); } INLINE void atomic64_calc_rate(const atomic64 *ax_var, long long run_diff_us, atomic64 *intv_var, atomic64 *rate_var) { uint64_t ax = atomic64_get_na(ax_var); uint64_t old_intv = atomic64_get_na(intv_var); atomic64_set_na(intv_var, ax); atomic64_calc_rate_from_diff(run_diff_us, ax - old_intv, rate_var); } INLINE void atomic64_calc_diff(const atomic64 *ax_var, atomic64 *intv_var, atomic64 *diff_var) { uint64_t ax = atomic64_get_na(ax_var); uint64_t old_intv = atomic64_get_na(intv_var); atomic64_set_na(intv_var, ax); atomic64_set_na(diff_var, ax - old_intv); } INLINE void atomic64_mina(atomic64 *min, atomic64 *inp) { atomic64_min(min, atomic64_get_na(inp)); } INLINE void atomic64_maxa(atomic64 *max, atomic64 *inp) { atomic64_max(max, atomic64_get_na(inp)); } INLINE double atomic64_div(const atomic64 *n, const atomic64 *d) { int64_t dd = atomic64_get_na(d); if (!dd) return 0.; return (double) atomic64_get_na(n) / (double) dd; } #define atomic_get_na(x) __atomic_load_n(x, __ATOMIC_RELAXED) #define atomic_set_na(x,y) __atomic_store_n(x, y, __ATOMIC_RELAXED) #define atomic_inc_na(x) __atomic_fetch_add(x, 1, __ATOMIC_RELAXED); /*** ATOMIC BITFIELD OPERATIONS ***/ /* checks if at least one of the flags is set */ INLINE bool bf_isset(const atomic64 *u, const uint64_t f) { if ((atomic64_get(u) & f)) return true; return false; } /* checks if all of the flags are set */ INLINE bool bf_areset(const atomic64 *u, const uint64_t f) { if ((atomic64_get(u) & f) == f) return true; return false; } /* returns true if at least one of the flags was set already */ INLINE bool bf_set(atomic64 *u, const uint64_t f) { return (atomic64_or(u, f) & f) ? true : false; } /* returns true if at least one of the flags was set */ INLINE bool bf_clear(atomic64 *u, const uint64_t f) { return (atomic64_and(u, ~f) & f) ? true : false; } INLINE void bf_set_clear(atomic64 *u, const uint64_t f, bool cond) { if (cond) bf_set(u, f); else bf_clear(u, f); } /* works only for single flags */ INLINE void bf_copy(atomic64 *u, const uint64_t f, const atomic64 *s, const uint64_t g) { bf_set_clear(u, f, bf_isset(s, g)); } /* works for multiple flags */ INLINE void bf_copy_same(atomic64 *u, const atomic64 *s, const uint64_t g) { unsigned int old, set, clear; old = atomic64_get(s); set = old & g; clear = ~old & g; bf_set(u, set); bf_clear(u, clear); } #endif rtpengine-mr12.5.1.22/lib/bitstr.h000066400000000000000000000034511474347554000166220ustar00rootroot00000000000000#ifndef _BITSTR_H_ #define _BITSTR_H_ #include "str.h" #include struct bitstr_s { str s; unsigned int bit_offset; // leading consumed bits }; typedef struct bitstr_s bitstr; INLINE void bitstr_init(bitstr *b, const str *s) { b->s = *s; b->bit_offset = 0; } INLINE int bitstr_shift_ret(bitstr *b, unsigned int bits, str *ret) { if (!bits) return 0; // check if we have enough if (bits > b->s.len * 8 - b->bit_offset) return -1; unsigned int to_copy = (bits + b->bit_offset + 7) / 8; if (ret) { assert(ret->len >= to_copy); ret->len = to_copy; memcpy(ret->s, b->s.s, to_copy); unsigned char *ret_s = (unsigned char *) ret->s; // avoid bitshifts on signed chars // we have to bit-shift the entire string if there was a leading offset if (b->bit_offset) { unsigned int left = bits; unsigned int c = 0; while (b->bit_offset + left > 8) { // enough to fill one output byte from two consecutive input bytes ret_s[c] <<= b->bit_offset; ret_s[c] |= ret_s[c + 1] >> (8 - b->bit_offset); if (left <= 8) { // final trailing bits overlapping bytes: truncate ret_s[c] &= 0xff << (8 - left); left = 0; ret->len--; } else left -= 8; c++; } if (left) { // last byte has the remainder ret_s[c] <<= b->bit_offset; ret_s[c] &= 0xff << (8 - left); } } else { // truncate last byte if needed unsigned int bits_left = bits % 8; if (bits_left) ret_s[to_copy - 1] &= 0xff << (8 - bits_left); } } b->bit_offset += bits; unsigned int int_bytes = b->bit_offset / 8; int shift_ret = str_shift(&b->s, int_bytes); assert(shift_ret == 0); (void) shift_ret; b->bit_offset -= int_bytes * 8; return 0; } INLINE int bitstr_shift(bitstr *b, unsigned int bits) { return bitstr_shift_ret(b, bits, NULL); } #endif rtpengine-mr12.5.1.22/lib/bufferpool.c000066400000000000000000000167011474347554000174530ustar00rootroot00000000000000#include "bufferpool.h" #include #include #include "obj.h" #define ALIGN 8 // bytes struct bufferpool { void *(*alloc)(size_t); void (*dealloc)(void *); void (*dealloc2)(void *, size_t); size_t shard_size; mutex_t lock; GQueue empty_shards; GQueue full_shards; bool destroy; }; struct bpool_shard { struct bufferpool *bp; unsigned int refs; void *buf; void *end; size_t size; void *head; bool full; unsigned int (*recycle)(void *); void *arg; }; // sorted list of all shards for quick bsearch static rwlock_t bpool_shards_lock; static GPtrArray *bpool_shards; static struct bufferpool *bufferpool_new_common(void *(*alloc)(size_t), size_t shard_size) { struct bufferpool *ret = g_new0(__typeof(*ret), 1); ret->alloc = alloc; ret->shard_size = shard_size; mutex_init(&ret->lock); g_queue_init(&ret->empty_shards); g_queue_init(&ret->full_shards); return ret; } struct bufferpool *bufferpool_new(void *(*alloc)(size_t), void (*dealloc)(void *), size_t shard_size) { struct bufferpool *ret = bufferpool_new_common(alloc, shard_size); ret->dealloc = dealloc; return ret; } struct bufferpool *bufferpool_new2(void *(*alloc)(size_t), void (*dealloc)(void *, size_t), size_t shard_size) { struct bufferpool *ret = bufferpool_new_common(alloc, shard_size); ret->dealloc2 = dealloc; return ret; } // bufferpool is locked and shard is in "full" list but with zero refs static void bufferpool_recycle(struct bpool_shard *shard) { struct bufferpool *bp = shard->bp; shard->head = shard->buf; if (shard->recycle) shard->refs += shard->recycle(shard->arg); if (shard->refs == 0) { shard->full = false; GList *link = g_queue_find(&bp->full_shards, shard); // XXX avoid this g_queue_delete_link(&bp->full_shards, link); g_queue_push_tail(&bp->empty_shards, shard); } } static void bufferpool_dealloc(struct bpool_shard *shard) { struct bufferpool *bp = shard->bp; void *p = shard->buf; size_t len = shard->size; if (bp->dealloc) bp->dealloc(p); else bp->dealloc2(p, len); } // bufferpool is locked static void shard_check_full(struct bpool_shard *shard) { if (shard->refs != 0 || !shard->full) return; bufferpool_recycle(shard); } static int bpool_shards_sort(const void *A, const void *B) { const struct bpool_shard * const * const Ap = A, * const * const Bp = B; if ((*Ap)->buf < (*Bp)->buf) return -1; if ((*Ap)->buf > (*Bp)->buf) return 1; return 0; } static struct bpool_shard *bufferpool_new_shard(struct bufferpool *bp) { void *buf = bp->alloc(bp->shard_size); if (!buf) return NULL; struct bpool_shard *ret = g_new0(__typeof(*ret), 1); ret->bp = bp; ret->buf = buf; ret->size = bp->shard_size; ret->head = buf; ret->end = buf + bp->shard_size; RWLOCK_W(&bpool_shards_lock); g_ptr_array_add(bpool_shards, ret); g_ptr_array_sort(bpool_shards, bpool_shards_sort); return ret; } void *bufferpool_alloc(struct bufferpool *bp, size_t len) { if (len > bp->shard_size) return NULL; LOCK(&bp->lock); // check existing shards if one has enough room. if not, create a new one struct bpool_shard *shard; while (true) { if (!bp->empty_shards.length) { shard = bufferpool_new_shard(bp); g_queue_push_tail(&bp->empty_shards, shard); break; } shard = bp->empty_shards.head->data; if (shard->head + len <= shard->end) break; g_queue_pop_head(&bp->empty_shards); g_queue_push_tail(&bp->full_shards, shard); shard->full = true; shard_check_full(shard); } // allocate buffer from shard void *ret = shard->head; shard->refs++; shard->head += ((len + ALIGN - 1) / ALIGN) * ALIGN; return ret; } void *bufferpool_reserve(struct bufferpool *bp, unsigned int refs, unsigned int (*recycle)(void *), void *arg) { LOCK(&bp->lock); // get a completely empty shard. create one if needed struct bpool_shard *shard = g_queue_peek_head(&bp->empty_shards); if (shard && shard->head == shard->buf && shard->refs == 0) g_queue_pop_head(&bp->empty_shards); else shard = bufferpool_new_shard(bp); // set references, set recycle callback, move to full list shard->refs = refs; shard->full = true; g_queue_push_tail(&bp->full_shards, shard); shard->recycle = recycle; shard->arg = arg; return shard->buf; } static int bpool_shard_cmp(const void *buf, const void *ptr) { struct bpool_shard *const *sptr = ptr; struct bpool_shard *shard = *sptr; if (buf < shard->buf) return -1; if (buf >= shard->end) return 1; return 0; } // bpool_shards_lock must be held static struct bpool_shard **bpool_find_shard_ptr(void *p) { return bsearch(p, bpool_shards->pdata, bpool_shards->len, sizeof(*bpool_shards->pdata), bpool_shard_cmp); } // bpool_shards_lock must be held static struct bpool_shard *bpool_find_shard(void *p) { struct bpool_shard **sp = bpool_find_shard_ptr(p); return sp ? *sp : NULL; } static void bpool_shard_destroy(struct bpool_shard *shard) { RWLOCK_W(&bpool_shards_lock); struct bpool_shard **ele = bpool_find_shard_ptr(shard->buf); size_t idx = (void **) ele - bpool_shards->pdata; g_ptr_array_remove_index(bpool_shards, idx); bufferpool_dealloc(shard); g_free(shard); } static void bpool_shard_delayed_destroy(struct bufferpool *bp, struct bpool_shard *shard) { if (shard->full) { GList *link = g_queue_find(&bp->full_shards, shard); g_queue_delete_link(&bp->full_shards, link); } else { GList *link = g_queue_find(&bp->empty_shards, shard); g_queue_delete_link(&bp->empty_shards, link); } bpool_shard_destroy(shard); } void bufferpool_unref(void *p) { if (!p) return; struct bpool_shard *shard; struct bufferpool *bpool; { RWLOCK_R(&bpool_shards_lock); shard = bpool_find_shard(p); if (!shard) // should only happen during shutdown return; bpool = shard->bp; } { LOCK(&bpool->lock); assert(shard->refs != 0); shard->refs--; // handle delayed destruction if (!bpool->destroy) { shard_check_full(shard); return; } // wait for refs to drop to zero, then remove/free shard, and destroy pool if no shards left if (shard->refs > 0) return; bpool_shard_delayed_destroy(bpool, shard); if (bpool->full_shards.length || bpool->empty_shards.length) return; // still some left } // no shards left, can destroy now bufferpool_destroy(bpool); } void bufferpool_release(void *p) { if (!p) return; struct bpool_shard *shard; struct bufferpool *bpool; { RWLOCK_R(&bpool_shards_lock); shard = bpool_find_shard(p); bpool = shard->bp; } LOCK(&bpool->lock); assert(shard->refs != 0); shard->refs = 0; } void *bufferpool_ref(void *p) { if (!p) return NULL; struct bpool_shard *shard; struct bufferpool *bpool; { RWLOCK_R(&bpool_shards_lock); shard = bpool_find_shard(p); bpool = shard->bp; } LOCK(&bpool->lock); assert(shard->refs != 0); shard->refs++; return p; } static void bpool_destroy_shards(GQueue *q) { GList *l = q->head; while (l) { GList *n = l->next; struct bpool_shard *shard = l->data; if (shard->refs == 0) { bpool_shard_destroy(shard); g_queue_delete_link(q, l); } l = n; } } void bufferpool_destroy(struct bufferpool *bp) { { LOCK(&bp->lock); bpool_destroy_shards(&bp->full_shards); bpool_destroy_shards(&bp->empty_shards); if (bp->full_shards.length || bp->empty_shards.length) { // deferred destruction bp->destroy = true; return; } } g_free(bp); } void bufferpool_init(void) { rwlock_init(&bpool_shards_lock); bpool_shards = g_ptr_array_new(); } void bufferpool_cleanup(void) { rwlock_destroy(&bpool_shards_lock); assert(bpool_shards->len == 0); g_ptr_array_free(bpool_shards, true); } rtpengine-mr12.5.1.22/lib/bufferpool.h000066400000000000000000000020351474347554000174530ustar00rootroot00000000000000#ifndef _BUFFERPOOL_H_ #define _BUFFERPOOL_H_ #include "obj.h" struct bufferpool; struct bpool_shard; void bufferpool_init(void); void bufferpool_cleanup(void); struct bufferpool *bufferpool_new(void *(*alloc)(size_t), void (*dealloc)(void *), size_t shard_size); struct bufferpool *bufferpool_new2(void *(*alloc)(size_t), void (*dealloc)(void *, size_t), size_t shard_size); void bufferpool_destroy(struct bufferpool *); void *bufferpool_alloc(struct bufferpool *bp, size_t len); void *bufferpool_reserve(struct bufferpool *bp, unsigned int refs, unsigned int (*recycle)(void *), void *arg); void *bufferpool_ref(void *); void bufferpool_unref(void *); void bufferpool_release(void *); // remove all refs INLINE void *bufferpool_alloc0(struct bufferpool *bp, size_t len) { void *ret = bufferpool_alloc(bp, len); if (!ret) return NULL; memset(ret, 0, len); return ret; } typedef char bp_char; G_DEFINE_AUTOPTR_CLEANUP_FUNC(bp_char, bufferpool_unref); typedef char bp_void; G_DEFINE_AUTOPTR_CLEANUP_FUNC(bp_void, bufferpool_unref); #endif rtpengine-mr12.5.1.22/lib/codec-chain.Makefile000066400000000000000000000004641474347554000207370ustar00rootroot00000000000000ifneq (,$(filter pkg.ngcp-rtpengine.codec-chain,${DEB_BUILD_PROFILES})) ifneq (,$(wildcard $(CODEC_CHAIN_HOME)/usr/include/codec-chain/client.h)) CFLAGS+= -DHAVE_CODEC_CHAIN -I$(CODEC_CHAIN_HOME)/usr/include else ifneq (,$(wildcard /usr/include/codec-chain/client.h)) CFLAGS+= -DHAVE_CODEC_CHAIN endif endif rtpengine-mr12.5.1.22/lib/codeclib.c000066400000000000000000004675571474347554000170770ustar00rootroot00000000000000#include "codeclib.h" #include #include #include #include #include #include #include #ifdef HAVE_BCG729 #include #include #endif #include #ifdef HAVE_CODEC_CHAIN #include #include #endif #include "str.h" #include "log.h" #include "loglib.h" #include "resample.h" #include "rtplib.h" #include "bitstr.h" #include "dtmflib.h" #include "fix_frame_channel_layout.h" #define PACKET_SEQ_DUPE_THRES 100 #define PACKET_TS_RESET_THRES 5000 // milliseconds #define cdbg(x...) ilogs(internals, LOG_DEBUG, x) static packetizer_f packetizer_samplestream; // flat stream of samples static packetizer_f packetizer_amr; static void codeclib_key_value_parse(const str *instr, bool need_value, void (*cb)(str *key, str *value, void *data), void *data); static const char *libopus_decoder_init(decoder_t *, const str *); static int libopus_decoder_input(decoder_t *dec, const str *data, GQueue *out); static void libopus_decoder_close(decoder_t *); static const char *libopus_encoder_init(encoder_t *enc, const str *); static int libopus_encoder_input(encoder_t *enc, AVFrame **frame); static void libopus_encoder_close(encoder_t *enc); static format_init_f opus_init; static select_encoder_format_f opus_select_encoder_format; static select_decoder_format_f opus_select_decoder_format; static format_parse_f opus_format_parse; static format_print_f opus_format_print; static format_answer_f opus_format_answer; static format_parse_f ilbc_format_parse; static set_enc_options_f ilbc_set_enc_options; static set_dec_options_f ilbc_set_dec_options; static format_parse_f amr_format_parse; static set_enc_options_f amr_set_enc_options; static set_dec_options_f amr_set_dec_options; static format_cmp_f amr_format_cmp; static void avc_def_init(struct codec_def_s *); static const char *avc_decoder_init(decoder_t *, const str *); static int avc_decoder_input(decoder_t *dec, const str *data, GQueue *out); static void avc_decoder_close(decoder_t *); static const char *avc_encoder_init(encoder_t *enc, const str *); static int avc_encoder_input(encoder_t *enc, AVFrame **frame); static void avc_encoder_close(encoder_t *enc); static int amr_decoder_input(decoder_t *dec, const str *data, GQueue *out); static void amr_encoder_got_packet(encoder_t *enc); static int ilbc_decoder_input(decoder_t *dec, const str *data, GQueue *out); static const char *dtmf_decoder_init(decoder_t *, const str *); static int dtmf_decoder_input(decoder_t *dec, const str *data, GQueue *out); static const char *cn_decoder_init(decoder_t *, const str *); static int cn_decoder_input(decoder_t *dec, const str *data, GQueue *out); static int format_cmp_ignore(const struct rtp_payload_type *, const struct rtp_payload_type *); static int generic_silence_dtx(decoder_t *, GQueue *, int); static int amr_dtx(decoder_t *, GQueue *, int); static int evs_dtx(decoder_t *, GQueue *, int); static int generic_cn_dtx_init(decoder_t *); static void generic_cn_dtx_cleanup(decoder_t *); static int generic_cn_dtx(decoder_t *, GQueue *, int); #if defined(__x86_64__) // mvr2s_x64_avx2.S void mvr2s_avx2(float *in, const uint16_t len, int16_t *out); // mvr2s_x64_avx512.S void mvr2s_avx512(float *in, const uint16_t len, int16_t *out); #endif static void *evs_lib_handle; static unsigned int evs_decoder_size; static unsigned int evs_encoder_size; static unsigned int evs_encoder_ind_list_size; static void (*evs_init_decoder)(void *); static void (*evs_init_encoder)(void *); static void (*evs_destroy_decoder)(void *); static void (*evs_destroy_encoder)(void *); static void (*evs_set_encoder_opts)(void *, unsigned long, void *); static void (*evs_set_encoder_brate)(void *, unsigned long br, unsigned int bwidth, unsigned int mode, unsigned int amr); static void (*evs_set_decoder_Fs)(void *, unsigned long); static void (*evs_enc_in)(void *, const uint16_t *s, const uint16_t n); static void (*evs_amr_enc_in)(void *, const uint16_t *s, const uint16_t n); static void (*evs_enc_out)(void *, unsigned char *buf, uint16_t *len); static void (*evs_dec_in)(void *, char *in, uint16_t len, uint16_t amr_mode, uint16_t core_mode, uint16_t q_bit, uint16_t partial_frame, uint16_t next_type); static void (*evs_dec_out)(void *, void *, int frame_mode); // frame_mode=1: missing static void (*evs_dec_inc_frame)(void *); static void (*evs_amr_dec_out)(void *, void *); static void (*evs_syn_output)(float *in, const uint16_t len, int16_t *out); static void (*evs_reset_enc_ind)(void *); static void evs_def_init(struct codec_def_s *); static const char *evs_decoder_init(decoder_t *, const str *); static int evs_decoder_input(decoder_t *dec, const str *data, GQueue *out); static void evs_decoder_close(decoder_t *); static const char *evs_encoder_init(encoder_t *enc, const str *); static int evs_encoder_input(encoder_t *enc, AVFrame **frame); static void evs_encoder_close(encoder_t *); static format_parse_f evs_format_parse; static format_cmp_f evs_format_cmp; static format_print_f evs_format_print; static format_answer_f evs_format_answer; static select_encoder_format_f evs_select_encoder_format; static void *cc_lib_handle; #ifdef HAVE_CODEC_CHAIN static __typeof__(codec_chain_client_connect) *cc_client_connect; static __typeof__(codec_chain_set_thread_funcs) *cc_set_thread_funcs; static __typeof__(codec_chain_client_pcma2opus_runner_new) *cc_client_pcma2opus_runner_new; static __typeof__(codec_chain_client_pcmu2opus_runner_new) *cc_client_pcmu2opus_runner_new; static __typeof__(codec_chain_client_opus2pcma_runner_new) *cc_client_opus2pcma_runner_new; static __typeof__(codec_chain_client_opus2pcmu_runner_new) *cc_client_opus2pcmu_runner_new; static __typeof__(codec_chain_client_pcma2opus_runner_free) *cc_client_pcma2opus_runner_free; static __typeof__(codec_chain_client_pcmu2opus_runner_free) *cc_client_pcmu2opus_runner_free; static __typeof__(codec_chain_client_opus2pcma_runner_free) *cc_client_opus2pcma_runner_free; static __typeof__(codec_chain_client_opus2pcmu_runner_free) *cc_client_opus2pcmu_runner_free; static __typeof__(codec_chain_client_pcma2opus_async_runner_new) *cc_client_pcma2opus_async_runner_new; static __typeof__(codec_chain_client_pcmu2opus_async_runner_new) *cc_client_pcmu2opus_async_runner_new; static __typeof__(codec_chain_client_opus2pcma_async_runner_new) *cc_client_opus2pcma_async_runner_new; static __typeof__(codec_chain_client_opus2pcmu_async_runner_new) *cc_client_opus2pcmu_async_runner_new; static __typeof__(codec_chain_client_pcma2opus_async_runner_free) *cc_client_pcma2opus_async_runner_free; static __typeof__(codec_chain_client_pcmu2opus_async_runner_free) *cc_client_pcmu2opus_async_runner_free; static __typeof__(codec_chain_client_opus2pcma_async_runner_free) *cc_client_opus2pcma_async_runner_free; static __typeof__(codec_chain_client_opus2pcmu_async_runner_free) *cc_client_opus2pcmu_async_runner_free; static __typeof__(codec_chain_pcma2opus_runner_do) *cc_pcma2opus_runner_do; static __typeof__(codec_chain_pcmu2opus_runner_do) *cc_pcmu2opus_runner_do; static __typeof__(codec_chain_opus2pcma_runner_do) *cc_opus2pcma_runner_do; static __typeof__(codec_chain_opus2pcmu_runner_do) *cc_opus2pcmu_runner_do; static __typeof__(codec_chain_pcma2opus_runner_async_do_nonblock) *cc_pcma2opus_runner_async_do_nonblock; static __typeof__(codec_chain_pcmu2opus_runner_async_do_nonblock) *cc_pcmu2opus_runner_async_do_nonblock; static __typeof__(codec_chain_opus2pcma_runner_async_do_nonblock) *cc_opus2pcma_runner_async_do_nonblock; static __typeof__(codec_chain_opus2pcmu_runner_async_do_nonblock) *cc_opus2pcmu_runner_async_do_nonblock; static __typeof__(codec_chain_client_float2opus_new_ext) *cc_client_float2opus_new_ext; static __typeof__(codec_chain_client_opus2float_new) *cc_client_opus2float_new; static __typeof__(codec_chain_client_float2opus_free) *cc_client_float2opus_free; static __typeof__(codec_chain_client_opus2float_free) *cc_client_opus2float_free; static codec_chain_client *cc_client; static codec_chain_pcma2opus_runner *pcma2opus_runner; static codec_chain_pcmu2opus_runner *pcmu2opus_runner; static codec_chain_opus2pcmu_runner *opus2pcmu_runner; static codec_chain_opus2pcma_runner *opus2pcma_runner; static codec_chain_pcma2opus_async_runner *pcma2opus_async_runner; static codec_chain_pcmu2opus_async_runner *pcmu2opus_async_runner; static codec_chain_opus2pcmu_async_runner *opus2pcmu_async_runner; static codec_chain_opus2pcma_async_runner *opus2pcma_async_runner; typedef enum { CCC_OK, CCC_ASYNC, CCC_ERR, } codec_cc_state; struct async_job { str data; unsigned long ts; void *async_cb_obj; }; TYPED_GQUEUE(async_job, struct async_job); struct codec_cc_s { union { struct { codec_chain_pcmu2opus_runner *runner; codec_chain_float2opus *enc; } pcmu2opus; struct { codec_chain_pcma2opus_runner *runner; codec_chain_float2opus *enc; } pcma2opus; struct { codec_chain_opus2pcmu_runner *runner; codec_chain_opus2float *dec; } opus2pcmu; struct { codec_chain_opus2pcma_runner *runner; codec_chain_opus2float *dec; } opus2pcma; struct { codec_chain_pcmu2opus_async_runner *runner; codec_chain_float2opus *enc; } pcmu2opus_async; struct { codec_chain_pcma2opus_async_runner *runner; codec_chain_float2opus *enc; } pcma2opus_async; struct { codec_chain_opus2pcmu_async_runner *runner; codec_chain_opus2float *dec; } opus2pcmu_async; struct { codec_chain_opus2pcma_async_runner *runner; codec_chain_opus2float *dec; } opus2pcma_async; }; AVPacket *avpkt; codec_cc_state (*run)(codec_cc_t *c, const str *data, unsigned long ts, void *); void (*clear)(void *); void *clear_arg; mutex_t async_lock; AVPacket *avpkt_async; size_t data_len; bool async_busy; // currently processing a packet bool async_blocked; // couldn't find context bool async_shutdown; // shutdown/free happened while busy async_job_q async_jobs; unsigned long ts; void *(*async_init)(void *, void *, void *); void (*async_callback)(AVPacket *, void *); void *async_cb_obj; }; static codec_cc_t *codec_cc_new_sync(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)); static codec_cc_t *codec_cc_new_async(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)); static bool __cc_pcmu2opus_run_async(codec_cc_t *, const str *, unsigned long, void *); static bool __cc_pcma2opus_run_async(codec_cc_t *, const str *, unsigned long, void *); static bool __cc_opus2pcma_run_async(codec_cc_t *, const str *, unsigned long, void *); static bool __cc_opus2pcmu_run_async(codec_cc_t *, const str *, unsigned long, void *); codec_cc_t *(*codec_cc_new)(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)); #endif static const codec_type_t codec_type_avcodec = { .def_init = avc_def_init, .decoder_init = avc_decoder_init, .decoder_input = avc_decoder_input, .decoder_close = avc_decoder_close, .encoder_init = avc_encoder_init, .encoder_input = avc_encoder_input, .encoder_close = avc_encoder_close, }; static const codec_type_t codec_type_libopus = { .decoder_init = libopus_decoder_init, .decoder_input = libopus_decoder_input, .decoder_close = libopus_decoder_close, .encoder_init = libopus_encoder_init, .encoder_input = libopus_encoder_input, .encoder_close = libopus_encoder_close, }; static const codec_type_t codec_type_ilbc = { .def_init = avc_def_init, .decoder_init = avc_decoder_init, .decoder_input = ilbc_decoder_input, .decoder_close = avc_decoder_close, .encoder_init = avc_encoder_init, .encoder_input = avc_encoder_input, .encoder_close = avc_encoder_close, }; static const codec_type_t codec_type_amr = { .def_init = avc_def_init, .decoder_init = avc_decoder_init, .decoder_input = amr_decoder_input, .decoder_close = avc_decoder_close, .encoder_init = avc_encoder_init, .encoder_input = avc_encoder_input, .encoder_got_packet = amr_encoder_got_packet, .encoder_close = avc_encoder_close, }; static const codec_type_t codec_type_evs = { .def_init = evs_def_init, .decoder_init = evs_decoder_init, .decoder_input = evs_decoder_input, .decoder_close = evs_decoder_close, .encoder_init = evs_encoder_init, .encoder_input = evs_encoder_input, // .encoder_got_packet = amr_encoder_got_packet, .encoder_close = evs_encoder_close, }; static const codec_type_t codec_type_dtmf = { .decoder_init = dtmf_decoder_init, .decoder_input = dtmf_decoder_input, }; static const codec_type_t codec_type_cn = { .def_init = avc_def_init, .decoder_init = cn_decoder_init, .decoder_input = cn_decoder_input, .decoder_close = avc_decoder_close, }; static const dtx_method_t dtx_method_silence = { .method_id = DTX_SILENCE, .do_dtx = generic_silence_dtx, }; static const dtx_method_t dtx_method_cn = { .method_id = DTX_CN, .do_dtx = generic_cn_dtx, .init = generic_cn_dtx_init, .cleanup = generic_cn_dtx_cleanup, }; static const dtx_method_t dtx_method_amr = { .method_id = DTX_NATIVE, .do_dtx = amr_dtx, }; static const dtx_method_t dtx_method_evs = { .method_id = DTX_NATIVE, .do_dtx = evs_dtx, }; #ifdef HAVE_BCG729 static packetizer_f packetizer_g729; // aggregate some frames into packets static format_cmp_f format_cmp_g729; static void bcg729_def_init(struct codec_def_s *); static const char *bcg729_decoder_init(decoder_t *, const str *); static int bcg729_decoder_input(decoder_t *dec, const str *data, GQueue *out); static void bcg729_decoder_close(decoder_t *); static const char *bcg729_encoder_init(encoder_t *enc, const str *); static int bcg729_encoder_input(encoder_t *enc, AVFrame **frame); static void bcg729_encoder_close(encoder_t *enc); static const codec_type_t codec_type_bcg729 = { .def_init = bcg729_def_init, .decoder_init = bcg729_decoder_init, .decoder_input = bcg729_decoder_input, .decoder_close = bcg729_decoder_close, .encoder_init = bcg729_encoder_init, .encoder_input = bcg729_encoder_input, .encoder_close = bcg729_encoder_close, }; #endif static struct codec_def_s __codec_defs[] = { { .rtpname = "PCMA", .avcodec_id = AV_CODEC_ID_PCM_ALAW, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .packetizer = packetizer_samplestream, .bits_per_sample = 8, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .silence_pattern = STR_CONST_INIT("\xd5"), .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "PCMU", .avcodec_id = AV_CODEC_ID_PCM_MULAW, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .packetizer = packetizer_samplestream, .bits_per_sample = 8, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .silence_pattern = STR_CONST_INIT("\xff"), .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "G723", .avcodec_id = AV_CODEC_ID_G723_1, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 30, .minimum_ptime = 30, .default_bitrate = 6300, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "G722", .avcodec_id = AV_CODEC_ID_ADPCM_G722, .default_clockrate_fact = {2,1}, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .format_cmp = format_cmp_ignore, .packetizer = packetizer_samplestream, .bits_per_sample = 4, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .silence_pattern = STR_CONST_INIT("\xfa"), .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "QCELP", .avcodec_id = AV_CODEC_ID_QCELP, .default_ptime = 20, .minimum_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, #ifndef HAVE_BCG729 { .rtpname = "G729", .avcodec_id = AV_CODEC_ID_G729, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .minimum_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "G729a", .avcodec_id = AV_CODEC_ID_G729, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .minimum_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, #else { .rtpname = "G729", .avcodec_id = -1, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .minimum_ptime = 20, .default_fmtp = "annexb=no", .format_cmp = format_cmp_g729, .packetizer = packetizer_g729, .bits_per_sample = 1, // 10 ms frame has 80 samples and encodes as (max) 10 bytes = 80 bits .media_type = MT_AUDIO, .codec_type = &codec_type_bcg729, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, { .rtpname = "G729a", .avcodec_id = -1, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .minimum_ptime = 20, .format_cmp = format_cmp_g729, .packetizer = packetizer_g729, .bits_per_sample = 1, // 10 ms frame has 80 samples and encodes as (max) 10 bytes = 80 bits .media_type = MT_AUDIO, .codec_type = &codec_type_bcg729, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .fixed_sizes = 1, }, #endif { .rtpname = "speex", .avcodec_id = AV_CODEC_ID_SPEEX, .default_clockrate = 16000, .default_channels = 1, .default_bitrate = 11000, .default_ptime = 20, .minimum_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "GSM", .avcodec_id = AV_CODEC_ID_GSM, .default_clockrate = 8000, .default_channels = 1, //.default_bitrate = 13200, .default_ptime = 20, .minimum_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "iLBC", .avcodec_id = AV_CODEC_ID_ILBC, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 30, .default_fmtp = "mode=30", .format_parse = ilbc_format_parse, //.default_bitrate = 15200, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_ilbc, .set_enc_options = ilbc_set_enc_options, .set_dec_options = ilbc_set_dec_options, }, { .rtpname = "opus", .avcodec_id = -1, .default_clockrate = 48000, .default_channels = 2, .default_bitrate = 32000, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_libopus, .init = opus_init, .default_fmtp = "useinbandfec=1", .format_parse = opus_format_parse, .format_print = opus_format_print, .format_cmp = format_cmp_ignore, .format_answer = opus_format_answer, .select_encoder_format = opus_select_encoder_format, .select_decoder_format = opus_select_decoder_format, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, .support_encoding = 1, .support_decoding = 1, }, { .rtpname = "EVS", .avcodec_id = -1, .default_clockrate_fact = {3,1}, .default_clockrate = 16000, .default_channels = 1, .default_ptime = 20, .default_bitrate = 16400, .default_fmtp = "dtx=0;dtx-recv=0", .format_parse = evs_format_parse, .format_cmp = evs_format_cmp, .format_print = evs_format_print, .format_answer = evs_format_answer, .select_encoder_format = evs_select_encoder_format, .packetizer = packetizer_passthrough, .bits_per_sample = 1, .media_type = MT_AUDIO, .codec_type = &codec_type_evs, .dtx_methods = { [DTX_NATIVE] = &dtx_method_evs, [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "vorbis", .avcodec_id = AV_CODEC_ID_VORBIS, .avcodec_name_enc = "libvorbis", .avcodec_name_dec = "libvorbis", .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "ac3", .avcodec_id = AV_CODEC_ID_AC3, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "eac3", .avcodec_id = AV_CODEC_ID_EAC3, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "ATRAC3", .avcodec_id = AV_CODEC_ID_ATRAC3, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "ATRAC-X", .avcodec_id = AV_CODEC_ID_ATRAC3P, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 0, 0) { .rtpname = "EVRC", .avcodec_id = AV_CODEC_ID_EVRC, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "EVRC0", .avcodec_id = AV_CODEC_ID_EVRC, .default_clockrate = 8000, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "EVRC1", .avcodec_id = AV_CODEC_ID_EVRC, .default_clockrate = 8000, .default_ptime = 20, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, .dtx_methods = { [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, #endif { .rtpname = "AMR", .avcodec_id = AV_CODEC_ID_AMR_NB, .avcodec_name_enc = "libopencore_amrnb", .avcodec_name_dec = "libopencore_amrnb", .default_clockrate = 8000, .default_channels = 1, .default_bitrate = 6700, .default_ptime = 20, .minimum_ptime = 20, .format_parse = amr_format_parse, .format_cmp = amr_format_cmp, .default_fmtp = "octet-align=1;mode-change-capability=2", .packetizer = packetizer_amr, .bits_per_sample = 2, // max is 12200 / 8000 = 1.525 bits per sample, rounded up .media_type = MT_AUDIO, .codec_type = &codec_type_amr, .set_enc_options = amr_set_enc_options, .set_dec_options = amr_set_dec_options, .amr = 1, .dtx_methods = { [DTX_NATIVE] = &dtx_method_amr, [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "AMR-WB", .avcodec_id = AV_CODEC_ID_AMR_WB, .avcodec_name_enc = "libvo_amrwbenc", .avcodec_name_dec = "libopencore_amrwb", .default_clockrate = 16000, .default_channels = 1, .default_bitrate = 14250, .default_ptime = 20, .minimum_ptime = 20, .format_parse = amr_format_parse, .format_cmp = amr_format_cmp, .default_fmtp = "octet-align=1;mode-change-capability=2", .packetizer = packetizer_amr, .bits_per_sample = 2, // max is 23850 / 16000 = 1.490625 bits per sample, rounded up .media_type = MT_AUDIO, .codec_type = &codec_type_amr, .set_enc_options = amr_set_enc_options, .set_dec_options = amr_set_dec_options, .amr = 1, .dtx_methods = { [DTX_NATIVE] = &dtx_method_amr, [DTX_SILENCE] = &dtx_method_silence, [DTX_CN] = &dtx_method_cn, }, }, { .rtpname = "telephone-event", .avcodec_id = -1, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .supplemental = 1, .dtmf = 1, .default_clockrate = 8000, .default_channels = 1, .default_fmtp = "0-15", .format_cmp = format_cmp_ignore, .codec_type = &codec_type_dtmf, .support_encoding = 1, .support_decoding = 1, }, { .rtpname = "CN", .avcodec_id = AV_CODEC_ID_COMFORT_NOISE, .avcodec_name_enc = "comfortnoise", .avcodec_name_dec = "comfortnoise", .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .supplemental = 1, .default_clockrate = 8000, .default_channels = 1, .default_ptime = 20, .format_cmp = format_cmp_ignore, .codec_type = &codec_type_cn, }, // for file reading and writing { .rtpname = "PCM-S16LE", .avcodec_id = AV_CODEC_ID_PCM_S16LE, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, }, { .rtpname = "PCM-U8", .avcodec_id = AV_CODEC_ID_PCM_U8, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, }, { .rtpname = "MP3", .avcodec_id = AV_CODEC_ID_MP3, .packetizer = packetizer_passthrough, .media_type = MT_AUDIO, .codec_type = &codec_type_avcodec, }, }; static GQueue __supplemental_codecs = G_QUEUE_INIT; const GQueue * const codec_supplemental_codecs = &__supplemental_codecs; static codec_def_t *codec_def_cn; void (*codeclib_thread_init)(void); void (*codeclib_thread_cleanup)(void); void (*codeclib_thread_loop)(void); static GHashTable *codecs_ht; static GHashTable *codecs_ht_by_av; codec_def_t *codec_find(const str *name, enum media_type type) { codec_def_t *ret = g_hash_table_lookup(codecs_ht, name); if (!ret) return NULL; if (type && type != ret->media_type) return NULL; return ret; } codec_def_t *codec_find_by_av(enum AVCodecID id) { return g_hash_table_lookup(codecs_ht_by_av, GINT_TO_POINTER(id)); } static const char *avc_decoder_init(decoder_t *dec, const str *extra_opts) { const AVCodec *codec = dec->def->decoder; if (!codec) return "codec not supported"; dec->avc.avpkt = av_packet_alloc(); dec->avc.avcctx = avcodec_alloc_context3(codec); if (!dec->avc.avcctx) return "failed to alloc codec context"; SET_CHANNELS(dec->avc.avcctx, dec->in_format.channels); DEF_CH_LAYOUT(&dec->avc.avcctx->CH_LAYOUT, dec->in_format.channels); dec->avc.avcctx->sample_rate = dec->in_format.clockrate; if (dec->def->set_dec_options) dec->def->set_dec_options(dec, extra_opts); int i = avcodec_open2(dec->avc.avcctx, codec, NULL); if (i) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error returned from libav: %s", av_error(i)); return "failed to open codec context"; } #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 19, 0) avcodec_get_supported_config(dec->avc.avcctx, codec, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, (const void **) &dec->avc.sample_fmts, NULL); #else dec->avc.sample_fmts = codec->sample_fmts; #endif for (const enum AVSampleFormat *sfmt = dec->avc.sample_fmts; sfmt && *sfmt != -1; sfmt++) cdbg("supported sample format for input codec %s: %s", codec->name, av_get_sample_fmt_name(*sfmt)); return NULL; } decoder_t *decoder_new_fmt(codec_def_t *def, int clockrate, int channels, int ptime, const format_t *resample_fmt) { return decoder_new_fmtp(def, clockrate, channels, ptime, resample_fmt, NULL, NULL, NULL); } int codec_parse_fmtp(codec_def_t *def, struct rtp_codec_format *fmtp, const str *fmtp_string, union codec_format_options *copy) { struct rtp_codec_format fmtp_store; if (copy) ZERO(*copy); if (!def) return -1; if (!def->format_parse) return 0; if (!fmtp_string) return 0; if (!fmtp) { ZERO(fmtp_store); fmtp = &fmtp_store; } if (fmtp->fmtp_parsed) { if (copy) *copy = fmtp->parsed; return 0; } int ret = def->format_parse(fmtp, fmtp_string); if (!ret) { fmtp->fmtp_parsed = 1; if (copy) *copy = fmtp->parsed; } return ret; } decoder_t *decoder_new_fmtp(codec_def_t *def, int clockrate, int channels, int ptime, const format_t *resample_fmt, struct rtp_codec_format *fmtp, const str *fmtp_string, const str *extra_opts) { const char *err; decoder_t *ret = NULL; err = "codec not supported"; if (!def->codec_type) goto err; ret = g_slice_alloc0(sizeof(*ret)); ret->def = def; ret->clockrate_fact = def->default_clockrate_fact; format_init(&ret->in_format); ret->in_format.channels = channels; ret->in_format.clockrate = clockrate; // output defaults to same as input ret->dest_format = ret->in_format; if (resample_fmt) ret->dest_format = *resample_fmt; err = "failed to parse \"fmtp\""; if (codec_parse_fmtp(def, fmtp, fmtp_string, &ret->format_options)) goto err; if (def->select_decoder_format) def->select_decoder_format(ret, fmtp); ret->in_format.clockrate = fraction_mult(ret->in_format.clockrate, &ret->clockrate_fact); ret->dec_out_format = ret->in_format; if (ptime > 0) ret->ptime = ptime; else ret->ptime = def->default_ptime; // init with first supported DTX method enum dtx_method dm = -1; for (int i = 0; i < NUM_DTX_METHODS; i++) { if (def->dtx_methods[i]) { dm = i; break; } } err = def->codec_type->decoder_init(ret, extra_opts); if (err) goto err; ret->pts = (uint64_t) -1LL; ret->rtp_ts = (unsigned long) -1L; decoder_switch_dtx(ret, dm); return ret; err: if (ret) decoder_close(ret); if (err) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error creating media decoder for codec %s: %s", def->rtpname, err); return NULL; } int decoder_switch_dtx(decoder_t *dec, enum dtx_method dm) { if (dec->dtx.cleanup) dec->dtx.cleanup(dec); ZERO(dec->dtx); unsigned int i = dm; if (i >= NUM_DTX_METHODS) return -1; const dtx_method_t *dmp = dec->def->dtx_methods[i]; if (!dmp) return -1; dec->dtx = *dmp; if (dmp->init) { if (dmp->init(dec)) { ilog(LOG_ERR, "Failed to initialise DTX (%u)", i); decoder_switch_dtx(dec, -1); return -1; } } return 0; } int decoder_set_cn_dtx(decoder_t *dec, const str *cn_pl) { if (decoder_switch_dtx(dec, DTX_CN)) return -1; dec->dtx.cn.cn_payload = cn_pl; return 0; } gboolean decoder_has_dtx(decoder_t *dec) { return dec->dtx.do_dtx == NULL ? FALSE : TRUE; } static void avc_decoder_close(decoder_t *dec) { #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(56, 1, 0) avcodec_free_context(&dec->avc.avcctx); #else avcodec_close(dec->avc.avcctx); av_free(dec->avc.avcctx); #endif av_packet_free(&dec->avc.avpkt); } void decoder_close(decoder_t *dec) { if (!dec) return; /// XXX drain inputs and outputs if (dec->def && dec->def->codec_type && dec->def->codec_type->decoder_close) dec->def->codec_type->decoder_close(dec); decoder_switch_dtx(dec, -1); resample_shutdown(&dec->resampler); g_slice_free1(sizeof(*dec), dec); } static int avc_decoder_input(decoder_t *dec, const str *data, GQueue *out) { if (!dec->avc.avpkt) return -1; // decoder shut down const char *err; int av_ret = 0; dec->avc.avpkt->data = (unsigned char *) data->s; dec->avc.avpkt->size = data->len; dec->avc.avpkt->pts = dec->pts; AVFrame *frame = NULL; // loop until all input is consumed and all available output has been processed int keep_going; do { keep_going = 0; int got_frame = 0; err = "failed to alloc av frame"; frame = av_frame_alloc(); if (!frame) goto err; #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 36, 0) if (dec->avc.avpkt->size) { av_ret = avcodec_send_packet(dec->avc.avcctx, dec->avc.avpkt); cdbg("send packet ret %i", av_ret); err = "failed to send packet to avcodec"; if (av_ret == 0) { // consumed the packet dec->avc.avpkt->size = 0; keep_going = 1; } else { if (av_ret == AVERROR(EAGAIN)) ; // try again after reading output else goto err; } } av_ret = avcodec_receive_frame(dec->avc.avcctx, frame); cdbg("receive frame ret %i", av_ret); err = "failed to receive frame from avcodec"; if (av_ret == 0) { // got a frame keep_going = 1; got_frame = 1; } else { if (av_ret == AVERROR(EAGAIN)) ; // maybe needs more input now else goto err; } #else // only do this if we have any input left if (dec->avc.avpkt->size == 0) break; av_ret = avcodec_decode_audio4(dec->avc.avcctx, frame, &got_frame, dec->avc.avpkt); cdbg("decode frame ret %i, got frame %i", av_ret, got_frame); err = "failed to decode audio packet"; if (av_ret < 0) goto err; if (av_ret > 0) { // consumed some input err = "invalid return value"; if (av_ret > dec->avc.avpkt->size) goto err; dec->avc.avpkt->size -= av_ret; dec->avc.avpkt->data += av_ret; keep_going = 1; } if (got_frame) keep_going = 1; #endif if (got_frame) { cdbg("raw frame from decoder pts %llu samples %u", (unsigned long long) frame->pts, frame->nb_samples); #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 36, 0) frame->pts = frame->pkt_pts; #endif if (G_UNLIKELY(frame->pts == AV_NOPTS_VALUE)) frame->pts = dec->avc.avpkt->pts; dec->avc.avpkt->pts += frame->nb_samples; g_queue_push_tail(out, frame); frame = NULL; } } while (keep_going); av_frame_free(&frame); return 0; err: ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error decoding media packet: %s", err); if (av_ret) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error returned from libav: %s", av_error(av_ret)); av_frame_free(&frame); return -1; } static int __decoder_input_data(decoder_t *dec, const str *data, unsigned long ts, int *ptime, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2) { GQueue frames = G_QUEUE_INIT; if (G_UNLIKELY(!dec)) return -1; if (!data && (!dec->dtx.do_dtx || !ptime)) return 0; ts = fraction_mult(ts, &dec->clockrate_fact); cdbg("%p dec pts %llu rtp_ts %llu incoming ts %lu", dec, (unsigned long long) dec->pts, (unsigned long long) dec->rtp_ts, (unsigned long) ts); if (G_UNLIKELY(dec->rtp_ts == (unsigned long) -1L)) { // initialize pts dec->pts = 0; } else { // shift pts according to rtp ts shift uint64_t shift_ts = ts - dec->rtp_ts; if ((shift_ts * 1000) / dec->in_format.clockrate > PACKET_TS_RESET_THRES) { ilog(LOG_DEBUG, "Timestamp discontinuity detected, resetting timestamp from " "%lu to %lu", dec->rtp_ts, ts); // XXX handle lost packets here if timestamps don't line up? } else dec->pts += shift_ts; } dec->rtp_ts = ts; if (data) dec->def->codec_type->decoder_input(dec, data, &frames); else dec->dtx.do_dtx(dec, &frames, *ptime); AVFrame *frame; int ret = 0; unsigned long samples = 0; while ((frame = g_queue_pop_head(&frames))) { samples += frame->nb_samples; dec->dec_out_format.format = frame->format; AVFrame *rsmp_frame = resample_frame(&dec->resampler, frame, &dec->dest_format); if (!rsmp_frame) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Resampling failed"); ret = -1; } else { if (callback(dec, rsmp_frame, u1, u2)) ret = -1; } av_frame_free(&frame); } if (ptime) *ptime = samples * 1000L / dec->in_format.clockrate; return ret; } int decoder_input_data(decoder_t *dec, const str *data, unsigned long ts, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2) { if (!data || !data->s || !data->len) return 0; return __decoder_input_data(dec, data, ts, NULL, callback, u1, u2); } int decoder_input_data_ptime(decoder_t *dec, const str *data, unsigned long ts, int *ptime, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2) { if (!data || !data->s || !data->len) return 0; return __decoder_input_data(dec, data, ts, ptime, callback, u1, u2); } int decoder_dtx(decoder_t *dec, unsigned long ts, int ptime, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2) { return __decoder_input_data(dec, NULL, ts, &ptime, callback, u1, u2); } static void avlog_ilog(void *ptr, int loglevel, const char *fmt, va_list ap) { char *msg; if (vasprintf(&msg, fmt, ap) <= 0) ilogs(ffmpeg, LOG_ERR | LOG_FLAG_LIMIT, "av_log message dropped"); else { #ifdef AV_LOG_PANIC // translate AV_LOG_ constants to LOG_ levels if (loglevel >= AV_LOG_VERBOSE) loglevel = LOG_DEBUG; else if (loglevel >= AV_LOG_INFO) loglevel = LOG_NOTICE; else if (loglevel >= AV_LOG_WARNING) loglevel = LOG_WARNING; else if (loglevel >= AV_LOG_ERROR) loglevel = LOG_ERROR; else if (loglevel >= AV_LOG_FATAL) loglevel = LOG_CRIT; else loglevel = LOG_ALERT; #else // defuse avlog log levels to be either DEBUG or ERR if (loglevel <= LOG_ERR) loglevel = LOG_ERR; else loglevel = LOG_DEBUG; #endif ilogs(ffmpeg, loglevel | LOG_FLAG_LIMIT, "av_log: %s", msg); free(msg); } } static void avc_def_init(struct codec_def_s *def) { // look up AVCodec structs if (def->avcodec_name_enc) def->encoder = avcodec_find_encoder_by_name(def->avcodec_name_enc); if (def->avcodec_name_dec) def->decoder = avcodec_find_decoder_by_name(def->avcodec_name_dec); if (def->avcodec_id >= 0) { if (!def->encoder) def->encoder = avcodec_find_encoder(def->avcodec_id); if (!def->decoder) def->decoder = avcodec_find_decoder(def->avcodec_id); } // check if we have support if we are supposed to if (def->avcodec_name_enc || def->avcodec_id >= 0) { if (def->encoder) def->support_encoding = 1; } if (def->avcodec_name_dec || def->avcodec_id >= 0) { if (def->decoder) def->support_decoding = 1; } } static void cc_cleanup(void); void codeclib_free(void) { g_hash_table_destroy(codecs_ht); g_hash_table_destroy(codecs_ht_by_av); avformat_network_deinit(); cc_cleanup(); if (evs_lib_handle) dlclose(evs_lib_handle); if (cc_lib_handle) dlclose(cc_lib_handle); } bool rtpe_has_cpu_flag(enum rtpe_cpu_flag flag) { static bool done = false; static bool cpu_flags[__NUM_RTPE_CPU_FLAGS] = {false,}; if (!done) { #if defined(__x86_64__) int32_t ebx_7h0h, edx_1h; __asm ( "mov $1, %%eax" "\n\t" "cpuid" "\n\t" "mov %%edx, %1" "\n\t" "mov $7, %%eax" "\n\t" "xor %%ecx, %%ecx" "\n\t" "cpuid" "\n\t" "mov %%ebx, %0" "\n\t" : "=rm" (ebx_7h0h), "=rm" (edx_1h) : : "eax", "ebx", "ecx", "edx" ); cpu_flags[RTPE_CPU_FLAG_SSE2] = !!(edx_1h & (1L << 26)); cpu_flags[RTPE_CPU_FLAG_AVX2] = !!(ebx_7h0h & (1L << 5)); cpu_flags[RTPE_CPU_FLAG_AVX512BW] = !!(ebx_7h0h & (1L << 30)); cpu_flags[RTPE_CPU_FLAG_AVX512F] = !!(ebx_7h0h & (1L << 16)); #endif done = true; } if (flag < 0 || flag >= __NUM_RTPE_CPU_FLAGS) abort(); return cpu_flags[flag]; } static void *dlsym_assert(void *handle, const char *sym, const char *fn) { void *ret = dlsym(handle, sym); if (!ret) die("Failed to resolve symbol '%s' from '%s': %s", sym, fn, dlerror()); return ret; } #ifdef HAVE_CODEC_CHAIN static void cc_dlsym_resolve(const char *fn) { cc_client_connect = dlsym_assert(cc_lib_handle, "codec_chain_client_connect", fn); cc_set_thread_funcs = dlsym_assert(cc_lib_handle, "codec_chain_set_thread_funcs", fn); cc_client_pcma2opus_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_pcma2opus_runner_new", fn); cc_client_pcmu2opus_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_pcmu2opus_runner_new", fn); cc_client_opus2pcma_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcma_runner_new", fn); cc_client_opus2pcmu_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcmu_runner_new", fn); cc_client_pcma2opus_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_pcma2opus_runner_free", fn); cc_client_pcmu2opus_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_pcmu2opus_runner_free", fn); cc_client_opus2pcma_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcma_runner_free", fn); cc_client_opus2pcmu_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcmu_runner_free", fn); cc_client_pcma2opus_async_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_pcma2opus_async_runner_new", fn); cc_client_pcmu2opus_async_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_pcmu2opus_async_runner_new", fn); cc_client_opus2pcma_async_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcma_async_runner_new", fn); cc_client_opus2pcmu_async_runner_new = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcmu_async_runner_new", fn); cc_client_pcma2opus_async_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_pcma2opus_async_runner_free", fn); cc_client_pcmu2opus_async_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_pcmu2opus_async_runner_free", fn); cc_client_opus2pcma_async_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcma_async_runner_free", fn); cc_client_opus2pcmu_async_runner_free = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2pcmu_async_runner_free", fn); cc_pcma2opus_runner_do = dlsym_assert(cc_lib_handle, "codec_chain_pcma2opus_runner_do", fn); cc_pcmu2opus_runner_do = dlsym_assert(cc_lib_handle, "codec_chain_pcmu2opus_runner_do", fn); cc_opus2pcma_runner_do = dlsym_assert(cc_lib_handle, "codec_chain_opus2pcma_runner_do", fn); cc_opus2pcmu_runner_do = dlsym_assert(cc_lib_handle, "codec_chain_opus2pcmu_runner_do", fn); cc_pcma2opus_runner_async_do_nonblock = dlsym_assert(cc_lib_handle, "codec_chain_pcma2opus_runner_async_do_nonblock", fn); cc_pcmu2opus_runner_async_do_nonblock = dlsym_assert(cc_lib_handle, "codec_chain_pcmu2opus_runner_async_do_nonblock", fn); cc_opus2pcma_runner_async_do_nonblock = dlsym_assert(cc_lib_handle, "codec_chain_opus2pcma_runner_async_do_nonblock", fn); cc_opus2pcmu_runner_async_do_nonblock = dlsym_assert(cc_lib_handle, "codec_chain_opus2pcmu_runner_async_do_nonblock", fn); cc_client_float2opus_new_ext = dlsym_assert(cc_lib_handle, "codec_chain_client_float2opus_new_ext", fn); cc_client_opus2float_new = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2float_new", fn); cc_client_float2opus_free = dlsym_assert(cc_lib_handle, "codec_chain_client_float2opus_free", fn); cc_client_opus2float_free = dlsym_assert(cc_lib_handle, "codec_chain_client_opus2float_free", fn); } static void cc_create_runners(void) { pcma2opus_runner = cc_client_pcma2opus_runner_new(cc_client, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!pcma2opus_runner) die("Failed to initialise GPU pcma2opus"); pcmu2opus_runner = cc_client_pcmu2opus_runner_new(cc_client, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!pcmu2opus_runner) die("Failed to initialise GPU pcmu2opus"); opus2pcmu_runner = cc_client_opus2pcmu_runner_new(cc_client, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!opus2pcmu_runner) die("Failed to initialise GPU opus2pcmu"); opus2pcma_runner = cc_client_opus2pcma_runner_new(cc_client, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!opus2pcma_runner) die("Failed to initialise GPU opus2pcma"); } static void cc_create_async_runners(void) { pcma2opus_async_runner = cc_client_pcma2opus_async_runner_new(cc_client, rtpe_common_config_ptr->codec_chain_async, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!pcma2opus_async_runner) die("Failed to initialise GPU pcma2opus"); pcmu2opus_async_runner = cc_client_pcmu2opus_async_runner_new(cc_client, rtpe_common_config_ptr->codec_chain_async, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!pcmu2opus_async_runner) die("Failed to initialise GPU pcmu2opus"); opus2pcmu_async_runner = cc_client_opus2pcmu_async_runner_new(cc_client, rtpe_common_config_ptr->codec_chain_async, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!opus2pcmu_async_runner) die("Failed to initialise GPU opus2pcmu"); opus2pcma_async_runner = cc_client_opus2pcma_async_runner_new(cc_client, rtpe_common_config_ptr->codec_chain_async, 10000, rtpe_common_config_ptr->codec_chain_runners, rtpe_common_config_ptr->codec_chain_concurrency, 160); if (!opus2pcma_async_runner) die("Failed to initialise GPU opus2pcma"); } static codec_cc_t *codec_cc_new_dummy(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)) { return NULL; } static void cc_init(void) { codec_cc_new = codec_cc_new_dummy; if (!rtpe_common_config_ptr->codec_chain_lib_path) return; cc_lib_handle = dlopen(rtpe_common_config_ptr->codec_chain_lib_path, RTLD_NOW | RTLD_LOCAL); if (!cc_lib_handle) die("Failed to load libcodec-chain.so '%s': %s", rtpe_common_config_ptr->codec_chain_lib_path, dlerror()); cc_dlsym_resolve(rtpe_common_config_ptr->codec_chain_lib_path); cc_set_thread_funcs(codeclib_thread_init, codeclib_thread_cleanup, codeclib_thread_loop); cc_client = cc_client_connect(4); if (!cc_client) die("Failed to connect to cudecsd"); if (!rtpe_common_config_ptr->codec_chain_async) { cc_create_runners(); codec_cc_new = codec_cc_new_sync; } else { cc_create_async_runners(); codec_cc_new = codec_cc_new_async; } ilog(LOG_DEBUG, "CUDA codecs initialised"); } static void cc_cleanup(void) { if (!cc_lib_handle) return; cc_client_opus2pcma_runner_free(cc_client, &opus2pcma_runner); cc_client_opus2pcmu_runner_free(cc_client, &opus2pcmu_runner); cc_client_pcma2opus_runner_free(cc_client, &pcma2opus_runner); cc_client_pcmu2opus_runner_free(cc_client, &pcmu2opus_runner); cc_client_opus2pcma_async_runner_free(cc_client, &opus2pcma_async_runner); cc_client_opus2pcmu_async_runner_free(cc_client, &opus2pcmu_async_runner); cc_client_pcma2opus_async_runner_free(cc_client, &pcma2opus_async_runner); cc_client_pcmu2opus_async_runner_free(cc_client, &pcmu2opus_async_runner); } #else static void cc_init(void) { } static void cc_cleanup(void) { } #endif void codeclib_init(int print) { #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58, 9, 100) av_register_all(); avcodec_register_all(); avfilter_register_all(); #endif avformat_network_init(); av_log_set_callback(avlog_ilog); codecs_ht = g_hash_table_new((GHashFunc) str_case_hash, (GEqualFunc) str_case_equal); codecs_ht_by_av = g_hash_table_new(g_direct_hash, g_direct_equal); cc_init(); for (int i = 0; i < G_N_ELEMENTS(__codec_defs); i++) { // add to hash table struct codec_def_s *def = &__codec_defs[i]; str_init(&def->rtpname_str, (char *) def->rtpname); assert(g_hash_table_lookup(codecs_ht, &def->rtpname_str) == NULL); g_hash_table_insert(codecs_ht, &def->rtpname_str, def); if (def->avcodec_id >= 0) { if (g_hash_table_lookup(codecs_ht_by_av, GINT_TO_POINTER(def->avcodec_id)) == NULL) g_hash_table_insert(codecs_ht_by_av, GINT_TO_POINTER(def->avcodec_id), def); } // init undefined member vars if (!def->default_clockrate_fact.mult) def->default_clockrate_fact.mult = 1; if (!def->default_clockrate_fact.div) def->default_clockrate_fact.div = 1; if (!def->default_ptime) def->default_ptime = -1; if (!def->default_clockrate) def->default_clockrate = -1; if (!def->default_channels) def->default_channels = -1; // init RFC-related info const struct rtp_payload_type *pt = rtp_get_rfc_codec(&def->rtpname_str); if (pt) def->rfc_payload_type = pt->payload_type; else def->rfc_payload_type = -1; if (def->codec_type && def->codec_type->def_init) def->codec_type->def_init(def); if (!strcmp(def->rtpname, "CN")) codec_def_cn = def; if (print) { if (def->support_encoding && def->support_decoding) { if (def->default_channels > 0 && def->default_clockrate >= 0) printf("%20s: fully supported\n", def->rtpname); else printf("%20s: codec supported but lacks RTP definition\n", def->rtpname); } else if (def->support_decoding) printf("%20s: supported for decoding only\n", def->rtpname); else if (def->support_encoding) printf("%20s: supported for encoding only\n", def->rtpname); else printf("%20s: not supported\n", def->rtpname); } else { if (!def->support_encoding && !def->support_decoding) ilog(LOG_DEBUG, "Codec %s is not supported by codec library", def->rtpname); else if (!def->support_encoding) { ilog(LOG_DEBUG, "Codec %s is only supported for decoding " "by codec library", def->rtpname); } else if (!def->support_decoding) ilog(LOG_DEBUG, "Codec %s is only supported for encoding " "by codec library", def->rtpname); } if (def->supplemental) g_queue_push_tail(&__supplemental_codecs, def); } } static int ptr_cmp(const void *a, const void *b, void *dummy) { if (a < b) return -1; if (a > b) return 1; return 0; } void __packet_sequencer_init(packet_sequencer_t *ps, GDestroyNotify ffunc) { ps->packets = g_tree_new_full(ptr_cmp, NULL, NULL, ffunc); ps->seq = -1; } void packet_sequencer_destroy(packet_sequencer_t *ps) { if (ps->packets) g_tree_destroy(ps->packets); ps->packets = NULL; } struct tree_searcher { int find_seq, found_seq; }; static int packet_tree_search(const void *testseq_p, const void *ts_p) { struct tree_searcher *ts = (void *) ts_p; int testseq = GPOINTER_TO_INT(testseq_p); // called as a binary search test function. we're looking for the lowest // seq number that is higher than find_seq. if our test number is too low, // we proceed with higher numbers. if it's too high, we proceed to the lower // numbers, but remember the lowest we've seen along that path. if (G_UNLIKELY(testseq == ts->find_seq)) { // we've struck gold ts->found_seq = testseq; return 0; } if (testseq < ts->find_seq) return 1; // testseq > ts->find_seq if (ts->found_seq == -1 || testseq < ts->found_seq) ts->found_seq = testseq; return -1; } // caller must take care of locking static void *__packet_sequencer_next_packet(packet_sequencer_t *ps, int num_wait) { // see if we have a packet with the correct seq nr in the queue seq_packet_t *packet = g_tree_lookup(ps->packets, GINT_TO_POINTER(ps->seq)); if (G_LIKELY(packet != NULL)) { cdbg("returning in-sequence packet (seq %i)", ps->seq); goto out; } // why not? do we have anything? (we should) int nnodes = g_tree_nnodes(ps->packets); if (G_UNLIKELY(nnodes == 0)) { cdbg("packet queue empty"); return NULL; } if (G_LIKELY(nnodes < num_wait)) { cdbg("only %i packets in queue - waiting for more", nnodes); return NULL; // need to wait for more } // packet was probably lost. search for the next highest seq struct tree_searcher ts = { .find_seq = ps->seq + 1, .found_seq = -1 }; packet = g_tree_search(ps->packets, packet_tree_search, &ts); if (packet) { // bullseye cdbg("lost packet - returning packet with next seq %i", packet->seq); goto out; } if (G_UNLIKELY(ts.found_seq == -1)) { // didn't find anything. seq must have wrapped around. retry // starting from zero ts.find_seq = 0; packet = g_tree_search(ps->packets, packet_tree_search, &ts); if (packet) { cdbg("lost packet - returning packet with next seq %i (after wrap)", packet->seq); goto out; } if (G_UNLIKELY(ts.found_seq == -1)) abort(); } // pull out the packet we found packet = g_tree_lookup(ps->packets, GINT_TO_POINTER(ts.found_seq)); if (G_UNLIKELY(packet == NULL)) abort(); cdbg("lost multiple packets - returning packet with next highest seq %i", packet->seq); out: ; uint16_t l = packet->seq - ps->seq; ps->lost_count += l; g_tree_steal(ps->packets, GINT_TO_POINTER(packet->seq)); ps->seq = (packet->seq + 1) & 0xffff; unsigned int ext_seq = ps->roc << 16 | packet->seq; while (ext_seq < ps->ext_seq) { ps->roc++; ext_seq += 0x10000; } ps->ext_seq = ext_seq; return packet; } void *packet_sequencer_next_packet(packet_sequencer_t *ps) { return __packet_sequencer_next_packet(ps, 10); // arbitrary value } void *packet_sequencer_force_next_packet(packet_sequencer_t *ps) { return __packet_sequencer_next_packet(ps, 0); } int packet_sequencer_next_ok(packet_sequencer_t *ps) { if (g_tree_lookup(ps->packets, GINT_TO_POINTER(ps->seq))) return 1; return 0; } int packet_sequencer_insert(packet_sequencer_t *ps, seq_packet_t *p) { int ret = 0; // check seq for dupes if (G_UNLIKELY(ps->seq == -1)) { // first packet we see ps->seq = p->seq; goto seq_ok; } int diff = p->seq - ps->seq; // early packet: p->seq = 200, ps->seq = 150, diff = 50 if (G_LIKELY(diff >= 0 && diff < PACKET_SEQ_DUPE_THRES)) goto seq_ok; // early packet with wrap-around: p->seq = 20, ps->seq = 65530, diff = -65510 if (diff < (-0xffff + PACKET_SEQ_DUPE_THRES)) goto seq_ok; // recent duplicate: p->seq = 1000, ps->seq = 1080, diff = -80 if (diff < 0 && diff > -PACKET_SEQ_DUPE_THRES) return -1; // recent duplicate after wrap-around: p->seq = 65530, ps->seq = 30, diff = 65500 if (diff > (0xffff - PACKET_SEQ_DUPE_THRES)) return -1; // everything else we consider a seq reset ilog(LOG_DEBUG, "Seq reset detected: expected seq %i, received seq %i", ps->seq, p->seq); ps->seq = p->seq; ret = 1; // seq ok - fall through g_tree_clear(ps->packets); seq_ok: if (g_tree_lookup(ps->packets, GINT_TO_POINTER(p->seq))) return -1; ret = g_tree_nnodes(ps->packets) == 0 ? ret : 2; // indicates an out-of-order packet g_tree_insert(ps->packets, GINT_TO_POINTER(p->seq), p); return ret; } encoder_t *encoder_new(void) { encoder_t *ret = g_slice_alloc0(sizeof(*ret)); format_init(&ret->requested_format); format_init(&ret->actual_format); ret->avpkt = av_packet_alloc(); return ret; } static const char *avc_encoder_init(encoder_t *enc, const str *extra_opts) { enc->avc.codec = enc->def->encoder; if (!enc->avc.codec) return "output codec not found"; enc->avc.avcctx = avcodec_alloc_context3(enc->avc.codec); if (!enc->avc.avcctx) return "failed to alloc codec context"; enc->actual_format = enc->requested_format; #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 19, 0) avcodec_get_supported_config(enc->avc.avcctx, enc->avc.codec, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, (const void **) &enc->avc.sample_fmts, NULL); #else enc->avc.sample_fmts = enc->avc.codec->sample_fmts; #endif enc->actual_format.format = -1; for (const enum AVSampleFormat *sfmt = enc->avc.sample_fmts; sfmt && *sfmt != -1; sfmt++) { cdbg("supported sample format for output codec %s: %s", enc->avc.codec->name, av_get_sample_fmt_name(*sfmt)); if (*sfmt == enc->requested_format.format) enc->actual_format.format = *sfmt; } if (enc->actual_format.format == -1 && enc->avc.sample_fmts) enc->actual_format.format = enc->avc.sample_fmts[0]; cdbg("using output sample format %s for codec %s", av_get_sample_fmt_name(enc->actual_format.format), enc->avc.codec->name); SET_CHANNELS(enc->avc.avcctx, enc->actual_format.channels); DEF_CH_LAYOUT(&enc->avc.avcctx->CH_LAYOUT, enc->actual_format.channels); enc->avc.avcctx->sample_rate = enc->actual_format.clockrate; enc->avc.avcctx->sample_fmt = enc->actual_format.format; enc->avc.avcctx->time_base = (AVRational){1,enc->actual_format.clockrate}; enc->avc.avcctx->bit_rate = enc->bitrate; enc->samples_per_frame = enc->actual_format.clockrate * enc->ptime / 1000; if (enc->avc.avcctx->frame_size) enc->samples_per_frame = enc->avc.avcctx->frame_size; enc->samples_per_packet = enc->samples_per_frame; if (enc->def->set_enc_options) enc->def->set_enc_options(enc, extra_opts); int i = avcodec_open2(enc->avc.avcctx, enc->avc.codec, NULL); if (i) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error returned from libav: %s", av_error(i)); return "failed to open output context"; } return NULL; } int encoder_config(encoder_t *enc, codec_def_t *def, int bitrate, int ptime, const format_t *requested_format, format_t *actual_format) { return encoder_config_fmtp(enc, def, bitrate, ptime, NULL, requested_format, actual_format, NULL, NULL, NULL); } int encoder_config_fmtp(encoder_t *enc, codec_def_t *def, int bitrate, int ptime, const format_t *input_format, const format_t *requested_format_p, format_t *actual_format, struct rtp_codec_format *fmtp, const str *fmtp_string, const str *extra_opts) { const char *err; err = "codec not supported"; if (!def->codec_type) goto err; err = "failed to parse \"fmtp\""; if (codec_parse_fmtp(def, fmtp, fmtp_string, &enc->format_options)) goto err; // select encoder format format_t requested_format = *requested_format_p; enc->clockrate_fact = def->default_clockrate_fact; if (def->select_encoder_format) def->select_encoder_format(enc, &requested_format, input_format, fmtp); requested_format.clockrate = fraction_mult(requested_format.clockrate, &enc->clockrate_fact); // anything to do? if (G_LIKELY(format_eq(&requested_format, &enc->requested_format))) { if (!input_format) goto done; if (G_LIKELY(format_eq(input_format, &enc->input_format))) goto done; } encoder_close(enc); if (ptime <= 0) ptime = 20; if (def->minimum_ptime && ptime < def->minimum_ptime) ptime = def->minimum_ptime; enc->requested_format = requested_format; if (input_format) enc->input_format = *input_format; else format_init(&enc->input_format); enc->def = def; enc->ptime = ptime; enc->bitrate = bitrate; err = def->codec_type->encoder_init ? def->codec_type->encoder_init(enc, extra_opts) : 0; if (err) goto err; // output frame and fifo enc->frame = av_frame_alloc(); if (enc->actual_format.format != -1 && enc->actual_format.clockrate > 0) { enc->frame->nb_samples = enc->samples_per_frame ? : 256; enc->frame->format = enc->actual_format.format; enc->frame->sample_rate = enc->actual_format.clockrate; DEF_CH_LAYOUT(&enc->frame->CH_LAYOUT, enc->actual_format.channels); if (av_frame_get_buffer(enc->frame, 0) < 0) abort(); enc->fifo = av_audio_fifo_alloc(enc->frame->format, enc->actual_format.channels, enc->frame->nb_samples); ilog(LOG_DEBUG, "Initialized encoder with frame size %u samples", enc->frame->nb_samples); } else ilog(LOG_DEBUG, "Initialized encoder without frame buffer"); done: if (actual_format) *actual_format = enc->actual_format; return 0; err: encoder_close(enc); ilog(LOG_ERR, "Error configuring media output for codec %s: %s", def->rtpname, err); return -1; } static void avc_encoder_close(encoder_t *enc) { if (enc->avc.avcctx) { #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(61, 0, 0) avcodec_close(enc->avc.avcctx); #endif avcodec_free_context(&enc->avc.avcctx); } enc->avc.avcctx = NULL; enc->avc.codec = NULL; } void encoder_close(encoder_t *enc) { if (!enc) return; if (enc->def && enc->def->codec_type && enc->def->codec_type->encoder_close) enc->def->codec_type->encoder_close(enc); format_init(&enc->requested_format); format_init(&enc->actual_format); av_audio_fifo_free(enc->fifo); av_frame_free(&enc->frame); enc->mux_dts = 0; enc->fifo = NULL; enc->fifo_pts = 0; } void encoder_free(encoder_t *enc) { encoder_close(enc); av_packet_free(&enc->avpkt); g_slice_free1(sizeof(*enc), enc); } static int avc_encoder_input(encoder_t *enc, AVFrame **frame) { int keep_going = 0; int got_packet = 0; int av_ret = 0; if (!enc->avc.avcctx) return -1; #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 36, 0) if (*frame) { av_ret = avcodec_send_frame(enc->avc.avcctx, *frame); cdbg("send frame ret %i", av_ret); if (av_ret == 0) { // consumed *frame = NULL; keep_going = 1; } else { if (av_ret == AVERROR(EAGAIN)) ; // check output and maybe try again else goto err; } } av_ret = avcodec_receive_packet(enc->avc.avcctx, enc->avpkt); cdbg("receive packet ret %i", av_ret); if (av_ret == 0) { // got some data keep_going = 1; got_packet = 1; } else { if (av_ret == AVERROR(EAGAIN)) ; // try again if there's still more input else goto err; } #else if (!*frame) return 0; av_ret = avcodec_encode_audio2(enc->avc.avcctx, enc->avpkt, *frame, &got_packet); cdbg("encode frame ret %i, got packet %i", av_ret, got_packet); if (av_ret == 0) *frame = NULL; // consumed else goto err; if (got_packet) keep_going = 1; #endif if (!got_packet) return keep_going; cdbg("output avpkt size is %i", (int) enc->avpkt->size); cdbg("output pkt pts/dts is %li/%li", (long) enc->avpkt->pts, (long) enc->avpkt->dts); // the encoder may return frames with the same dts multiple consecutive times. // the muxer may not like this, so ensure monotonically increasing dts. if (enc->mux_dts > enc->avpkt->dts) enc->avpkt->dts = enc->mux_dts; if (enc->avpkt->pts < enc->avpkt->dts) enc->avpkt->pts = enc->avpkt->dts; return keep_going; err: if (av_ret) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error returned from libav: %s", av_error(av_ret)); return -1; } int encoder_input_data(encoder_t *enc, AVFrame *frame, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2) { enc->avpkt->size = 0; while (1) { if (!enc->def || !enc->def->codec_type) break; if (!enc->def->codec_type->encoder_input) break; int ret = enc->def->codec_type->encoder_input(enc, &frame); if (ret < 0) return -1; if (enc->avpkt->size) { // don't rely on the encoder producing steady timestamps, // instead keep track of them ourselves based on the returned // frame duration enc->avpkt->pts = enc->next_pts; if (enc->def->codec_type->encoder_got_packet) enc->def->codec_type->encoder_got_packet(enc); callback(enc, u1, u2); enc->next_pts += enc->avpkt->duration; enc->mux_dts = enc->avpkt->dts + 1; // min next expected dts av_packet_unref(enc->avpkt); enc->avpkt->size = 0; } if (ret == 0) break; } return 0; } static int encoder_fifo_flush(encoder_t *enc, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2) { while (av_audio_fifo_size(enc->fifo) >= enc->frame->nb_samples) { if (av_audio_fifo_read(enc->fifo, (void **) enc->frame->data, enc->frame->nb_samples) <= 0) abort(); cdbg("output fifo pts %lu",(unsigned long) enc->fifo_pts); enc->frame->pts = enc->fifo_pts; encoder_input_data(enc, enc->frame, callback, u1, u2); enc->fifo_pts += enc->frame->nb_samples; } return 0; } int encoder_input_fifo(encoder_t *enc, AVFrame *frame, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2) { if (av_audio_fifo_write(enc->fifo, (void **) frame->extended_data, frame->nb_samples) < 0) return -1; return encoder_fifo_flush(enc, callback, u1, u2); } int packetizer_passthrough(AVPacket *pkt, GString *buf, str *output, encoder_t *enc) { if (!pkt) return -1; if (output->len < pkt->size) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Output packet size too small (%zu < %i)", output->len, pkt->size); return -1; } output->len = pkt->size; memcpy(output->s, pkt->data, pkt->size); return 0; } // returns: -1 = not enough data, nothing returned; 0 = returned a packet; // 1 = returned a packet and there's more static int packetizer_samplestream(AVPacket *pkt, GString *buf, str *input_output, encoder_t *enc) { // avoid moving buffers around if possible: // most common case: new input packet has just enough (or more) data as what we need if (G_LIKELY(pkt && buf->len == 0 && pkt->size >= input_output->len)) { memcpy(input_output->s, pkt->data, input_output->len); // any leftovers? if (pkt->size > input_output->len) { g_string_append_len(buf, (char *) pkt->data + input_output->len, pkt->size - input_output->len); enc->packet_pts = pkt->pts + input_output->len * (fraction_mult(enc->def->bits_per_sample, &enc->clockrate_fact) / 8); } return buf->len >= input_output->len ? 1 : 0; } // we have to move data around. append input packet to buffer if we have one if (pkt) g_string_append_len(buf, (char *) pkt->data, pkt->size); // do we have enough? if (buf->len < input_output->len) return -1; // copy requested data into provided output buffer and remove from interim buffer memcpy(input_output->s, buf->str, input_output->len); g_string_erase(buf, 0, input_output->len); // adjust output pts enc->avpkt->pts = enc->packet_pts; enc->packet_pts += input_output->len * fraction_mult(enc->def->bits_per_sample, &enc->clockrate_fact) / 8; return buf->len >= input_output->len ? 1 : 0; } static int codeclib_set_av_opt_int(encoder_t *enc, const char *opt, int64_t val) { ilog(LOG_DEBUG, "Setting ffmpeg '%s' option for '%s' to %" PRId64, opt, enc->def->rtpname, val); int ret = av_opt_set_int(enc->avc.avcctx, opt, val, AV_OPT_SEARCH_CHILDREN); if (!ret) return 0; ilog(LOG_WARN, "Failed to set ffmpeg '%s' option for codec '%s' to %" PRId64 ": %s", opt, enc->def->rtpname, val, av_error(ret)); return -1; } static int codeclib_set_av_opt_intstr(encoder_t *enc, const char *opt, str *val) { int i = val ? str_to_i(val, -1) : -1; if (i == -1) { ilog(LOG_WARN, "Failed to parse '" STR_FORMAT "' as integer value for ffmpeg option '%s'", STR_FMT0(val), opt); return -1; } return codeclib_set_av_opt_int(enc, opt, i); } static void opus_init(struct rtp_payload_type *pt) { if (pt->clock_rate != 48000) { ilog(LOG_WARN, "Opus is only supported with a clock rate of 48 kHz"); pt->clock_rate = 48000; } switch (pt->ptime) { case 5: case 10: case 20: case 40: case 60: break; default: ; int np; if (pt->ptime < 10) np = 5; else if (pt->ptime < 20) np = 10; else if (pt->ptime < 40) np = 20; else if (pt->ptime < 60) np = 40; else np = 60; ilog(LOG_INFO, "Opus doesn't support a ptime of %i ms; using %i ms instead", pt->ptime, np); pt->ptime = np; break; } if (pt->bitrate) { if (pt->bitrate < 6000) { ilog(LOG_DEBUG, "Opus bitrate %i bps too small, assuming %i kbit/s", pt->bitrate, pt->bitrate); pt->bitrate *= 1000; } return; } if (pt->channels == 1) pt->bitrate = 24000; else if (pt->channels == 2) pt->bitrate = 32000; else pt->bitrate = 64000; ilog(LOG_DEBUG, "Using default bitrate of %i bps for %i-channel Opus", pt->bitrate, pt->channels); } static const char *libopus_decoder_init(decoder_t *dec, const str *extra_opts) { if (dec->in_format.channels != 1 && dec->in_format.channels != 2) return "invalid number of channels"; switch (dec->in_format.clockrate) { case 48000: case 24000: case 16000: case 12000: case 8000: break; default: return "invalid clock rate"; } int err = 0; dec->opus = opus_decoder_create(dec->in_format.clockrate, dec->in_format.channels, &err); if (!dec->opus) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error from libopus: %s", opus_strerror(err)); return "failed to alloc codec context"; } return NULL; } static void libopus_decoder_close(decoder_t *dec) { opus_decoder_destroy(dec->opus); } static int libopus_decoder_input(decoder_t *dec, const str *data, GQueue *out) { // get frame with buffer large enough for the max AVFrame *frame = av_frame_alloc(); frame->nb_samples = 960; frame->format = AV_SAMPLE_FMT_S16; frame->sample_rate = dec->in_format.clockrate; DEF_CH_LAYOUT(&frame->CH_LAYOUT, dec->in_format.channels); frame->pts = dec->pts; if (av_frame_get_buffer(frame, 0) < 0) abort(); int ret = opus_decode(dec->opus, (unsigned char *) data->s, data->len, (int16_t *) frame->extended_data[0], frame->nb_samples, 0); if (ret < 0) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error decoding Opus packet: %s", opus_strerror(ret)); av_frame_free(&frame); return -1; } frame->nb_samples = ret; g_queue_push_tail(out, frame); return 0; } struct libopus_encoder_options { int complexity; int vbr; int vbr_constraint; int pl; int application; }; static void libopus_set_enc_opts(str *key, str *val, void *p) { struct libopus_encoder_options *opts = p; switch (__csh_lookup(key)) { case CSH_LOOKUP("complexity"): case CSH_LOOKUP("compression_level"): opts->complexity = str_to_i(val, -1); break; case CSH_LOOKUP("application"): switch (__csh_lookup(val)) { case CSH_LOOKUP("VOIP"): case CSH_LOOKUP("VoIP"): case CSH_LOOKUP("voip"): opts->application = OPUS_APPLICATION_VOIP; break; case CSH_LOOKUP("audio"): opts->application = OPUS_APPLICATION_AUDIO; break; case CSH_LOOKUP("low-delay"): case CSH_LOOKUP("low delay"): case CSH_LOOKUP("lowdelay"): opts->application = OPUS_APPLICATION_RESTRICTED_LOWDELAY; break; default: ilog(LOG_WARN | LOG_FLAG_LIMIT, "Unknown Opus application: '" STR_FORMAT "'", STR_FMT(val)); }; break; case CSH_LOOKUP("vbr"): case CSH_LOOKUP("VBR"): // aligned with ffmpeg vbr=0/1/2 option opts->vbr = str_to_i(val, -1); if (opts->vbr == 2) { opts->vbr = 1; opts->vbr_constraint = 1; } break; case CSH_LOOKUP("packet_loss"): case CSH_LOOKUP("packet loss"): opts->pl = str_to_i(val, -1); break; default: ilog(LOG_WARN | LOG_FLAG_LIMIT, "Unknown Opus encoder option encountered: '" STR_FORMAT "'", STR_FMT(key)); } } static const char *libopus_encoder_init(encoder_t *enc, const str *extra_opts) { if (enc->requested_format.channels != 1 && enc->requested_format.channels != 2) return "invalid number of channels"; if (enc->requested_format.format == -1) enc->requested_format.format = AV_SAMPLE_FMT_S16; else if (enc->requested_format.format != AV_SAMPLE_FMT_S16) return "invalid sample format"; switch (enc->requested_format.clockrate) { case 48000: case 24000: case 16000: case 12000: case 8000: break; default: return "invalid clock rate"; } struct libopus_encoder_options opts = { .vbr = 1, .complexity = 10, .application = OPUS_APPLICATION_VOIP }; codeclib_key_value_parse(extra_opts, true, libopus_set_enc_opts, &opts); int err; enc->opus = opus_encoder_create(enc->requested_format.clockrate, enc->requested_format.channels, opts.application, &err); if (!enc->opus) { ilog(LOG_ERR, "Error from libopus: %s", opus_strerror(err)); return "failed to alloc codec context"; } enc->actual_format = enc->requested_format; enc->samples_per_frame = enc->actual_format.clockrate * enc->ptime / 1000; enc->samples_per_packet = enc->samples_per_frame; err = opus_encoder_ctl(enc->opus, OPUS_SET_BITRATE(enc->bitrate)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus bitrate to %i: %s", enc->bitrate, opus_strerror(err)); err = opus_encoder_ctl(enc->opus, OPUS_SET_COMPLEXITY(opts.complexity)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus complexity to %i': %s", opts.complexity, opus_strerror(err)); err = opus_encoder_ctl(enc->opus, OPUS_SET_VBR(opts.vbr)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus VBR to %i': %s", opts.vbr, opus_strerror(err)); err = opus_encoder_ctl(enc->opus, OPUS_SET_VBR_CONSTRAINT(opts.vbr_constraint)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus VBR constraint to %i': %s", opts.vbr_constraint, opus_strerror(err)); err = opus_encoder_ctl(enc->opus, OPUS_SET_PACKET_LOSS_PERC(opts.pl)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus PL%% to %i': %s", opts.pl, opus_strerror(err)); err = opus_encoder_ctl(enc->opus, OPUS_SET_INBAND_FEC(enc->format_options.opus.fec_send >= 0)); if (err != OPUS_OK) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Failed to set Opus FEC to %i': %s", enc->format_options.opus.fec_send >= 0, opus_strerror(err)); return NULL; } static void libopus_encoder_close(encoder_t *enc) { opus_encoder_destroy(enc->opus); } #define MAX_OPUS_FRAME_SIZE 1275 /* 20 ms at 510 kbps */ #define MAX_OPUS_FRAMES_PER_PACKET 6 /* 120 ms = 6 * 20 ms */ #define MAX_OPUS_HEADER_SIZE 7 static int libopus_encoder_input(encoder_t *enc, AVFrame **frame) { if (!*frame) return 0; // max length of Opus packet: av_new_packet(enc->avpkt, MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE); int ret = opus_encode(enc->opus, (int16_t *) (*frame)->extended_data[0], (*frame)->nb_samples, enc->avpkt->data, enc->avpkt->size); if (ret < 0) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error encoding Opus packet: %s", opus_strerror(ret)); av_packet_unref(enc->avpkt); return -1; } enc->avpkt->size = ret; enc->avpkt->pts = (*frame)->pts; enc->avpkt->duration = (*frame)->nb_samples; return 0; } // opus RTP always runs at 48 kHz static void opus_select_encoder_format(encoder_t *enc, format_t *req_format, const format_t *f, const struct rtp_codec_format *fmtp) { if (req_format->clockrate != 48000) return; // bail - encoder will fail to initialise // check against natively supported rates first switch (f->clockrate) { case 48000: case 24000: case 16000: case 12000: case 8000: enc->clockrate_fact = (struct fraction) {1, 48000 / f->clockrate}; break; default: // resample to next best rate if (f->clockrate > 24000) enc->clockrate_fact = (struct fraction) {1,1}; else if (f->clockrate > 16000) enc->clockrate_fact = (struct fraction) {1,2}; else if (f->clockrate > 12000) enc->clockrate_fact = (struct fraction) {1,3}; else if (f->clockrate > 8000) enc->clockrate_fact = (struct fraction) {1,4}; else enc->clockrate_fact = (struct fraction) {1,6}; break; } // honour remote stereo=0/1 flag if given, // otherwise go with the input format if (fmtp && fmtp->parsed.opus.stereo_send == -1) req_format->channels = 1; else if (fmtp && fmtp->parsed.opus.stereo_send == 1) req_format->channels = 2; else if (req_format->channels == 2 && f->channels == 1) req_format->channels = 1; } static void opus_select_decoder_format(decoder_t *dec, const struct rtp_codec_format *fmtp) { if (dec->in_format.clockrate != 48000) return; // check against natively supported rates first switch (dec->dest_format.clockrate) { case 48000: case 24000: case 16000: case 12000: case 8000: dec->clockrate_fact = (struct fraction) {1, 48000 / dec->dest_format.clockrate}; break; default: // resample to next best rate if (dec->dest_format.clockrate > 24000) dec->clockrate_fact = (struct fraction) {1,1}; else if (dec->dest_format.clockrate > 16000) dec->clockrate_fact = (struct fraction) {1,2}; else if (dec->dest_format.clockrate > 12000) dec->clockrate_fact = (struct fraction) {1,3}; else if (dec->dest_format.clockrate > 8000) dec->clockrate_fact = (struct fraction) {1,4}; else dec->clockrate_fact = (struct fraction) {1,6}; break; } // switch to mono decoding if possible if (dec->in_format.channels == 2 && dec->dest_format.channels == 1) dec->in_format.channels = 1; } static void opus_parse_format_cb(str *key, str *token, void *data) { union codec_format_options *opts = data; __auto_type o = &opts->opus; switch (__csh_lookup(key)) { #define YNFLAG(flag, varname) \ case flag: \ if (token->len == 1 && token->s[0] == '1') \ o->varname = 1; \ else if (token->len == 1 && token->s[0] == '0') \ o->varname = -1; \ break; YNFLAG(CSH_LOOKUP("stereo"), stereo_recv) YNFLAG(CSH_LOOKUP("sprop-stereo"), stereo_send) YNFLAG(CSH_LOOKUP("useinbandfec"), fec_recv) YNFLAG(CSH_LOOKUP("cbr"), cbr) YNFLAG(CSH_LOOKUP("usedtx"), fec_recv) #undef YNFLAG case CSH_LOOKUP("maxplaybackrate"): opts->opus.maxplaybackrate = str_to_i(token, 0); break; case CSH_LOOKUP("sprop-maxcapturerate"): opts->opus.sprop_maxcapturerate = str_to_i(token, 0); break; case CSH_LOOKUP("maxaveragebitrate"): opts->opus.maxaveragebitrate = str_to_i(token, 0); break; case CSH_LOOKUP("minptime"): opts->opus.minptime = str_to_i(token, 0); break; } } static int opus_format_parse(struct rtp_codec_format *f, const str *fmtp) { codeclib_key_value_parse(fmtp, true, opus_parse_format_cb, &f->parsed); return 0; } static GString *opus_format_print(const struct rtp_payload_type *p) { if (!p->format.fmtp_parsed) return NULL; GString *s = g_string_new(""); __auto_type f = &p->format.parsed.opus; if (f->stereo_recv) g_string_append_printf(s, "stereo=%i; ", f->stereo_recv == -1 ? 0 : 1); if (f->stereo_send) g_string_append_printf(s, "sprop-stereo=%i; ", f->stereo_send == -1 ? 0 : 1); if (f->fec_recv) g_string_append_printf(s, "useinbandfec=%i; ", f->fec_recv == -1 ? 0 : 1); if (f->usedtx) g_string_append_printf(s, "usedtx=%i; ", f->usedtx == -1 ? 0 : 1); if (f->cbr) g_string_append_printf(s, "cbr=%i; ", f->cbr == -1 ? 0 : 1); if (f->maxplaybackrate) g_string_append_printf(s, "maxplaybackrate=%i; ", f->maxplaybackrate); if (f->maxaveragebitrate) g_string_append_printf(s, "maxaveragebitrate=%i; ", f->maxaveragebitrate); if (f->sprop_maxcapturerate) g_string_append_printf(s, "sprop-maxcapturerate=%i; ", f->sprop_maxcapturerate); if (f->minptime) g_string_append_printf(s, "minptime=%i; ", f->minptime); if (s->len != 0) g_string_truncate(s, s->len - 2); return s; } static void opus_format_answer(struct rtp_payload_type *p, const struct rtp_payload_type *src) { if (!p->format.fmtp_parsed) return; __auto_type f = &p->format.parsed.opus; // swap send/recv int t = f->stereo_send; f->stereo_send = f->stereo_recv; f->stereo_recv = t; t = f->fec_send; f->fec_send = f->fec_recv; f->fec_recv = t; // if stereo recv is unset, base it on input format if (f->stereo_recv == 0) f->stereo_recv = src->channels == 1 ? -1 : 1; // we can always use FEC, unless we've been told that we should lie if (f->fec_recv == 0) f->fec_recv = 1; // set everything unsupported to 0 f->usedtx = 0; f->cbr = 0; f->maxplaybackrate = 0; f->sprop_maxcapturerate = 0; f->maxaveragebitrate = 0; f->minptime = 0; } static int ilbc_format_parse(struct rtp_codec_format *f, const str *fmtp) { switch (__csh_lookup(fmtp)) { case CSH_LOOKUP("mode=20"): f->parsed.ilbc.mode = 20; break; case CSH_LOOKUP("mode=30"): f->parsed.ilbc.mode = 30; break; default: return -1; } f->fmtp_parsed = 1; return 0; } static int ilbc_mode(int ptime, const union codec_format_options *fmtp, const char *direction) { int mode = 0; if (fmtp) mode = fmtp->ilbc.mode; if (!mode) { switch (ptime) { case 20: case 40: case 60: case 80: case 100: case 120: mode = 20; ilog(LOG_DEBUG, "Setting iLBC %s mode to 20 ms based on ptime %i", direction, ptime); break; case 30: case 90: mode = 30; ilog(LOG_DEBUG, "Setting iLBC %s mode to 30 ms based on ptime %i", direction, ptime); break; } } if (!mode) { mode = 20; ilog(LOG_WARNING, "No iLBC %s mode specified, setting to 20 ms", direction); } return mode; } static void ilbc_set_enc_options(encoder_t *enc, const str *codec_opts) { int mode = ilbc_mode(enc->ptime, &enc->format_options, "encoder"); codeclib_set_av_opt_int(enc, "mode", mode); } static void ilbc_set_dec_options(decoder_t *dec, const str *codec_opts) { int mode = ilbc_mode(dec->ptime, &dec->format_options, "decoder"); if (mode == 20) dec->avc.avcctx->block_align = 38; else if (mode == 30) dec->avc.avcctx->block_align = 50; else ilog(LOG_WARN, "Unsupported iLBC mode %i", mode); } static int ilbc_decoder_input(decoder_t *dec, const str *data, GQueue *out) { int mode = 0, block_align = 0; static const union codec_format_options mode_20 = { .ilbc = { 20 } }; static const union codec_format_options mode_30 = { .ilbc = { 30 } }; const union codec_format_options *fmtp; if (data->len % 50 == 0) { mode = 30; block_align = 50; fmtp = &mode_30; } else if (data->len % 38 == 0) { mode = 20; block_align = 38; fmtp = &mode_20; } else ilog(LOG_WARNING | LOG_FLAG_LIMIT, "iLBC received %i bytes packet, does not match " "one of the block sizes", (int) data->len); if (block_align && dec->avc.avcctx->block_align != block_align) { ilog(LOG_INFO | LOG_FLAG_LIMIT, "iLBC decoder set to %i bytes blocks, but received packet " "of %i bytes, therefore resetting decoder and switching to %i bytes " "block mode (%i ms mode)", (int) dec->avc.avcctx->block_align, (int) data->len, block_align, mode); avc_decoder_close(dec); dec->format_options = *fmtp; avc_decoder_init(dec, NULL); } return avc_decoder_input(dec, data, out); } static void codeclib_key_value_parse(const str *instr, bool need_value, void (*cb)(str *key, str *value, void *data), void *data) { if (!instr || !instr->s) return; // semicolon-separated key=value str s = *instr; str key, value; while (str_token_sep(&value, &s, ';')) { if (!str_token(&key, &value, '=')) { if (need_value) continue; value = STR_NULL; } // truncate whitespace while (key.len && key.s[0] == ' ') str_shift(&key, 1); while (key.len && key.s[key.len - 1] == ' ') key.len--; while (value.len && value.s[0] == ' ') str_shift(&value, 1); while (value.len && value.s[value.len - 1] == ' ') value.len--; if (key.len == 0) continue; cb(&key, &value, data); } } static const unsigned int amr_bitrates[AMR_FT_TYPES] = { 4750, // 0 5150, // 1 5900, // 2 6700, // 3 7400, // 4 7950, // 5 10200, // 6 12200, // 7 0, // comfort noise // 8 0, // comfort noise // 9 0, // comfort noise // 10 0, // comfort noise // 11 0, // invalid // 12 0, // invalid // 13 }; static const unsigned int amr_bits_per_frame[AMR_FT_TYPES] = { 95, // 4.75 kbit/s // 0 103, // 5.15 kbit/s // 1 118, // 5.90 kbit/s // 2 134, // 6.70 kbit/s // 3 148, // 7.40 kbit/s // 4 159, // 7.95 kbit/s // 5 204, // 10.2 kbit/s // 6 244, // 12.2 kbit/s // 7 40, // comfort noise // 8 40, // comfort noise // 9 40, // comfort noise // 10 40, // comfort noise // 11 0, // invalid // 12 0, // invalid // 13 }; static const unsigned int amr_wb_bitrates[AMR_FT_TYPES] = { 6600, // 0 8850, // 1 12650, // 2 14250, // 3 15850, // 4 18250, // 5 19850, // 6 23050, // 7 23850, // 8 0, // comfort noise // 9 0, // invalid // 10 0, // invalid // 11 0, // invalid // 12 0, // invalid // 13 }; static const unsigned int amr_wb_bits_per_frame[AMR_FT_TYPES] = { 132, // 6.60 kbit/s // 0 177, // 8.85 kbit/s // 1 253, // 12.65 kbit/s // 2 285, // 14.25 kbit/s // 3 317, // 15.85 kbit/s // 4 365, // 18.25 kbit/s // 5 397, // 19.85 kbit/s // 6 461, // 23.05 kbit/s // 7 477, // 23.85 kbit/s // 8 40, // comfort noise // 9 0, // invalid // 10 0, // invalid // 11 0, // invalid // 12 0, // invalid // 13 }; static void amr_parse_format_cb(str *key, str *token, void *data) { union codec_format_options *opts = data; switch (__csh_lookup(key)) { case CSH_LOOKUP("octet-align"): if (token->len == 1 && token->s[0] == '1') opts->amr.octet_aligned = 1; break; case CSH_LOOKUP("crc"): if (token->len == 1 && token->s[0] == '1') { opts->amr.octet_aligned = 1; opts->amr.crc = 1; } break; case CSH_LOOKUP("robust-sorting"): if (token->len == 1 && token->s[0] == '1') { opts->amr.octet_aligned = 1; opts->amr.robust_sorting = 1; } break; case CSH_LOOKUP("interleaving"): opts->amr.octet_aligned = 1; opts->amr.interleaving = str_to_i(token, 0); break; case CSH_LOOKUP("mode-set"):; str mode; while (str_token_sep(&mode, token, ',')) { int m = str_to_i(&mode, -1); if (m < 0 || m >= AMR_FT_TYPES) continue; opts->amr.mode_set |= (1 << m); } break; case CSH_LOOKUP("mode-change-period"): opts->amr.mode_change_period = str_to_i(token, 0); break; case CSH_LOOKUP("mode-change-neighbor"): if (token->len == 1 && token->s[0] == '1') opts->amr.mode_change_neighbor = 1; break; } } static int amr_format_parse(struct rtp_codec_format *f, const str *fmtp) { codeclib_key_value_parse(fmtp, true, amr_parse_format_cb, f); return 0; } static void amr_set_encdec_options(codec_options_t *opts, codec_def_t *def) { if (!strcmp(def->rtpname, "AMR")) { opts->amr.bits_per_frame = amr_bits_per_frame; opts->amr.bitrates = amr_bitrates; } else { opts->amr.bits_per_frame = amr_wb_bits_per_frame; opts->amr.bitrates = amr_wb_bitrates; } } static void amr_set_dec_codec_options(str *key, str *value, void *data) { decoder_t *dec = data; if (!str_cmp(key, "CMR-interval")) dec->codec_options.amr.cmr_interval = str_to_i(value, 0); else if (!str_cmp(key, "mode-change-interval")) dec->codec_options.amr.mode_change_interval = str_to_i(value, 0); } static void amr_set_enc_codec_options(str *key, str *value, void *data) { encoder_t *enc = data; if (!str_cmp(key, "CMR-interval")) ; // not an encoder option else if (!str_cmp(key, "mode-change-interval")) ; // not an encoder option else { // our string might not be null terminated char *s = g_strdup_printf(STR_FORMAT, STR_FMT(key)); codeclib_set_av_opt_intstr(enc, s, value); g_free(s); } } static void amr_set_enc_options(encoder_t *enc, const str *codec_opts) { amr_set_encdec_options(&enc->codec_options, enc->def); codeclib_key_value_parse(codec_opts, true, amr_set_enc_codec_options, enc); // if a mode-set was given, pick the highest supported bitrate if (enc->format_options.amr.mode_set) { int max_bitrate = enc->avc.avcctx->bit_rate; int use_bitrate = 0; for (int i = 0; i < AMR_FT_TYPES; i++) { if (!(enc->format_options.amr.mode_set & (1 << i))) continue; unsigned int br = enc->codec_options.amr.bitrates[i]; // we depend on the list being in ascending order, with // invalid modes at the end if (!br) // end of list break; if (br > max_bitrate && use_bitrate) // done break; use_bitrate = br; } if (!use_bitrate) ilog(LOG_WARN, "Unable to determine a valid bitrate from %s mode-set, using default", enc->def->rtpname); else { ilog(LOG_DEBUG, "Using %i as initial %s bitrate based on mode-set", use_bitrate, enc->def->rtpname); enc->avc.avcctx->bit_rate = use_bitrate; } } } static void amr_set_dec_options(decoder_t *dec, const str *codec_opts) { amr_set_encdec_options(&dec->codec_options, dec->def); codeclib_key_value_parse(codec_opts, true, amr_set_dec_codec_options, dec); } static int amr_mode_set_cmp(unsigned int a, unsigned int b) { if (a && b) { // `a` must be broader than `b`: // `b` must not have any bits set that `a` has set if (a == b) return 0; else if ((b & ~a) == 0) return 1; else return -1; } else if (!a && b) // `a` is broader (allow anything) than `b` (restricted) return 1; else if (a && !b) return -1; return 0; } static int amr_format_cmp(const struct rtp_payload_type *A, const struct rtp_payload_type *B) { // params must have been parsed successfully if (!A->format.fmtp_parsed || !B->format.fmtp_parsed) return -1; __auto_type a = &A->format.parsed.amr; __auto_type b = &B->format.parsed.amr; // reject anything that is outright incompatible (RFC 4867, 8.3.1) if (a->octet_aligned != b->octet_aligned) return -1; if (a->crc != b->crc) return -1; if (a->interleaving != b->interleaving) return -1; if (a->robust_sorting != b->robust_sorting) return -1; // determine whether codecs are compatible int compat = 0; if (a->mode_change_neighbor != b->mode_change_neighbor) compat++; if (a->mode_change_period != b->mode_change_period) compat++; int match = amr_mode_set_cmp(a->mode_set, b->mode_set); if (match == 1) compat++; else if (match == -1) return -1; return (compat == 0) ? 0 : 1; } static void amr_bitrate_tracker(decoder_t *dec, unsigned int ft) { if (dec->codec_options.amr.cmr_interval <= 0) return; if (dec->avc.amr.tracker_end.tv_sec && timeval_cmp(&dec->avc.amr.tracker_end, &rtpe_now) >= 0) { // analyse the data we gathered int next_highest = -1; int lowest_used = -1; for (int i = 0; i < AMR_FT_TYPES; i++) { unsigned int br = dec->codec_options.amr.bitrates[i]; if (!br) break; // end of list // ignore restricted modes if (dec->format_options.amr.mode_set) { if (!(dec->format_options.amr.mode_set & (1 << i))) continue; } // would this be a "next step up" mode? if (next_highest == -1) next_highest = i; // did we see any frames? if (!dec->avc.amr.bitrate_tracker[i]) continue; next_highest = -1; lowest_used = i; } if (lowest_used != -1 && next_highest != -1) { // we can request a switch up ilog(LOG_DEBUG, "Sending %s CMR to request upping bitrate to %u", dec->def->rtpname, dec->codec_options.amr.bitrates[next_highest]); decoder_event(dec, CE_AMR_SEND_CMR, GINT_TO_POINTER(next_highest)); } // and reset tracker ZERO(dec->avc.amr.tracker_end); } if (!dec->avc.amr.tracker_end.tv_sec) { // init ZERO(dec->avc.amr.bitrate_tracker); dec->avc.amr.tracker_end = rtpe_now; timeval_add_usec(&dec->avc.amr.tracker_end, dec->codec_options.amr.cmr_interval * 1000); } dec->avc.amr.bitrate_tracker[ft]++; } static int amr_decoder_input(decoder_t *dec, const str *data, GQueue *out) { const char *err = NULL; g_auto(GQueue) toc = G_QUEUE_INIT; if (!data || !data->s) goto err; bitstr d; bitstr_init(&d, data); unsigned int ill = 0, ilp = 0; unsigned char cmr_chr[2]; str cmr = STR_CONST_INIT_BUF(cmr_chr); err = "no CMR"; if (bitstr_shift_ret(&d, 4, &cmr)) goto err; unsigned int cmr_int = cmr_chr[0] >> 4; if (cmr_int != 15) { decoder_event(dec, CE_AMR_CMR_RECV, GUINT_TO_POINTER(cmr_int)); dec->avc.amr.last_cmr = rtpe_now; } else if (dec->codec_options.amr.mode_change_interval) { // no CMR, check if we're due to do our own mode change if (!dec->avc.amr.last_cmr.tv_sec) // start tracking now dec->avc.amr.last_cmr = rtpe_now; else if (timeval_diff(&rtpe_now, &dec->avc.amr.last_cmr) >= (long long) dec->codec_options.amr.mode_change_interval * 1000) { // switch up if we can decoder_event(dec, CE_AMR_CMR_RECV, GUINT_TO_POINTER(0xffff)); dec->avc.amr.last_cmr = rtpe_now; } } if (dec->format_options.amr.octet_aligned) { if (bitstr_shift(&d, 4)) goto err; if (dec->format_options.amr.interleaving) { unsigned char ill_ilp_chr[2]; str ill_ilp = STR_CONST_INIT_BUF(ill_ilp_chr); err = "no ILL/ILP"; if (bitstr_shift_ret(&d, 8, &ill_ilp)) goto err; ill = ill_ilp_chr[0] >> 4; ilp = ill_ilp_chr[0] & 0xf; } } err = "ILP > ILL"; if (ilp > ill) goto err; err = "interleaving unimplemented"; if (ill) goto err; // TOC int num_crcs = 0; while (1) { unsigned char toc_byte[2]; str toc_entry = STR_CONST_INIT_BUF(toc_byte); err = "missing TOC entry"; if (bitstr_shift_ret(&d, 6, &toc_entry)) goto err; if (dec->format_options.amr.octet_aligned) if (bitstr_shift(&d, 2)) goto err; unsigned char ft = (toc_byte[0] >> 3) & 0xf; if (ft != 14 && ft != 15) { num_crcs++; err = "invalid frame type"; if (ft >= AMR_FT_TYPES) goto err; if (dec->codec_options.amr.bits_per_frame[ft] == 0) goto err; } g_queue_push_tail(&toc, GUINT_TO_POINTER(toc_byte[0])); // no F bit = last TOC entry if (!(toc_byte[0] & 0x80)) break; } if (dec->format_options.amr.crc) { // CRCs is one byte per frame err = "missing CRC entry"; if (bitstr_shift(&d, num_crcs * 8)) goto err; // XXX use/check CRCs } while (toc.length) { unsigned char toc_byte = GPOINTER_TO_UINT(g_queue_pop_head(&toc)); unsigned char ft = (toc_byte >> 3) & 0xf; if (ft >= AMR_FT_TYPES) // invalid continue; unsigned int bits = dec->codec_options.amr.bits_per_frame[ft]; // AMR decoder expects an octet aligned TOC byte plus the payload unsigned char frame_buf[(bits + 7) / 8 + 1 + 1]; str frame = STR_CONST_INIT_BUF(frame_buf); str_shift(&frame, 1); err = "short frame"; if (bitstr_shift_ret(&d, bits, &frame)) goto err; // add TOC byte str_unshift(&frame, 1); frame.s[0] = toc_byte & 0x7c; // strip F bit, keep FT and Q, zero padding (01111100) if (dec->format_options.amr.octet_aligned && (bits % 8) != 0) { unsigned int padding_bits = 8 - (bits % 8); if (bitstr_shift(&d, padding_bits)) goto err; } err = "failed to decode AMR data"; if (bits == 40) { // SID if (dec->dtx.method_id == DTX_NATIVE) { if (avc_decoder_input(dec, &frame, out)) goto err; } else { // use the DTX generator to replace SID if (dec->dtx.do_dtx(dec, out, 20)) goto err; } } else { if (avc_decoder_input(dec, &frame, out)) goto err; } amr_bitrate_tracker(dec, ft); } return 0; err: if (err) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Error unpacking AMR packet: %s", err); return -1; } static unsigned int amr_encoder_find_next_mode(encoder_t *enc) { int mode = -1; for (int i = 0; i < AMR_FT_TYPES; i++) { int br = enc->codec_options.amr.bitrates[i]; if (!br) // end of list break; if (br == enc->avc.avcctx->bit_rate) { mode = i; break; } } if (mode == -1) return -1; int next_mode = mode + 1; // if modes are restricted, find the next one up if (enc->format_options.amr.mode_set) { // is there anything? if ((1 << next_mode) > enc->format_options.amr.mode_set) return -1; int next_up = -1; for (; next_mode < AMR_FT_TYPES; next_mode++) { if (!(enc->format_options.amr.mode_set & (1 << next_mode))) continue; next_up = next_mode; break; } if (next_up == -1) return -1; next_mode = next_up; } // valid mode? if (next_mode >= AMR_FT_TYPES || enc->codec_options.amr.bitrates[next_mode] == 0) return -1; return next_mode; } static void amr_encoder_mode_change(encoder_t *enc) { if (!memcmp(&enc->callback.amr.cmr_in_ts, &enc->avc.amr.cmr_in_ts, sizeof(struct timeval))) return; // mode change requested: check if this is allowed right now if (enc->format_options.amr.mode_change_period == 2 && (enc->avc.amr.pkt_seq & 1) != 0) return; unsigned int cmr = enc->callback.amr.cmr_in; if (cmr == 0xffff) cmr = amr_encoder_find_next_mode(enc); if (cmr >= AMR_FT_TYPES) return; // ignore CMR for invalid modes if (enc->format_options.amr.mode_set && !(enc->format_options.amr.mode_set & (1 << cmr))) return; int req_br = enc->codec_options.amr.bitrates[cmr]; if (!req_br) return; int cmr_done = 1; if (enc->format_options.amr.mode_change_neighbor) { // handle non-neighbour mode changes int cur_br = enc->avc.avcctx->bit_rate; // step up or down from the requested bitrate towards the current one int cmr_diff = (req_br > cur_br) ? -1 : 1; int neigh_br = req_br; int cmr_br = req_br; while (1) { // step up or down towards the current bitrate cmr += cmr_diff; // still in bounds? if (cmr >= AMR_FT_TYPES) break; cmr_br = enc->codec_options.amr.bitrates[cmr]; if (cmr_br == cur_br) break; // allowed by mode set? if (enc->format_options.amr.mode_set) { if (!(enc->format_options.amr.mode_set & (1 << cmr))) continue; // go to next mode } // valid bitrate - continue stepping neigh_br = cmr_br; } // did we finish stepping or is there more to go? if (neigh_br != req_br) cmr_done = 0; req_br = neigh_br; // set to this } enc->avc.avcctx->bit_rate = req_br; if (cmr_done) enc->avc.amr.cmr_in_ts = enc->callback.amr.cmr_in_ts; } static void amr_encoder_got_packet(encoder_t *enc) { amr_encoder_mode_change(enc); enc->avc.amr.pkt_seq++; } static int packetizer_amr(AVPacket *pkt, GString *buf, str *output, encoder_t *enc) { assert(pkt->size >= 1); // CMR + TOC byte (already included) + optional ILL/ILP + optional CRC + payload if (output->len < pkt->size + 3) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Output AMR packet size too small (%zu < %i + 3)", output->len, pkt->size); return -1; } unsigned char toc = pkt->data[0]; unsigned char ft = (toc >> 3) & 0xf; if (ft > 15) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Received bogus AMR FT %u from encoder", ft); return -1; } if (ft >= 14) { // NO_DATA or SPEECH_LOST return -1; } assert(ft < AMR_FT_TYPES); // internal bug unsigned int bits = enc->codec_options.amr.bits_per_frame[ft]; if (bits == 0) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Received bogus AMR FT %u from encoder", ft); return -1; } unsigned char *s = (unsigned char *) output->s; // for safe bit shifting s[0] = '\xf0'; // no CMR req (4 bits) // or do we have a CMR? if (!enc->avc.amr.cmr_out_seq) { if (memcmp(&enc->avc.amr.cmr_out_ts, &enc->callback.amr.cmr_out_ts, sizeof(struct timeval))) { enc->avc.amr.cmr_out_seq += 3; // make this configurable? enc->avc.amr.cmr_out_ts = enc->callback.amr.cmr_out_ts; } } if (enc->avc.amr.cmr_out_seq) { enc->avc.amr.cmr_out_seq--; unsigned int cmr = enc->callback.amr.cmr_out; if (cmr < AMR_FT_TYPES && enc->codec_options.amr.bitrates[cmr]) s[0] = cmr << 4; } if (enc->format_options.amr.octet_aligned) { unsigned int offset = 1; // CMR byte if (enc->format_options.amr.interleaving) s[offset++] = 0; // no interleaving if (enc->format_options.amr.crc) s[offset++] = 0; // not implemented memcpy(s + offset, pkt->data, pkt->size); output->len = pkt->size + offset; return 0; } // bit shift TOC byte in (6 bits) s[0] |= pkt->data[0] >> 4; s[1] = (pkt->data[0] & 0x0c) << 4; // bit shift payload in (shifted by 4+6 = 10 bits = 1 byte + 2 bits for (int i = 1; i < pkt->size; i++) { s[i] |= pkt->data[i] >> 2; s[i+1] = pkt->data[i] << 6; } // is the last byte just padding? bits += 4 + 6; // CMR and TOC unsigned int bytes = (bits + 7) / 8; output->len = bytes; return 0; } static int amr_dtx(decoder_t *dec, GQueue *out, int ptime) { // ignore ptime, must be 20 ilog(LOG_DEBUG, "pushing empty/lost frame to AMR decoder"); unsigned char frame_buf[1]; frame_buf[0] = 0xf << 3; // no data str frame = STR_CONST_INIT_BUF(frame_buf); if (avc_decoder_input(dec, &frame, out)) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Error while writing 'no data' frame to AMR decoder"); return 0; } static int generic_silence_dtx(decoder_t *dec, GQueue *out, int ptime) { if (dec->dec_out_format.format == -1) return -1; if (!dec->avc.avpkt) return -1; if (ptime <= 0) ptime = 20; int num_samples = ptime * dec->in_format.clockrate / 1000; ilog(LOG_DEBUG, "pushing %i silence samples into %s decoder", num_samples, dec->def->rtpname); // create dummy frame, fill with silence, pretend it was returned from the decoder AVFrame *frame = av_frame_alloc(); frame->nb_samples = num_samples; frame->format = dec->dec_out_format.format; frame->sample_rate = dec->dec_out_format.clockrate; DEF_CH_LAYOUT(&frame->CH_LAYOUT, dec->dec_out_format.channels); if (av_frame_get_buffer(frame, 0) < 0) { av_frame_free(&frame); return -1; } memset(frame->extended_data[0], 0, frame->linesize[0]); // advance PTS frame->pts = dec->avc.avpkt->pts; dec->avc.avpkt->pts += frame->nb_samples; g_queue_push_tail(out, frame); return 0; } static int cn_append_frame(decoder_t *dec, AVFrame *f, void *u1, void *u2) { GQueue *out = u1; g_queue_push_tail(out, f); return 0; } static int generic_cn_dtx(decoder_t *dec, GQueue *out, int ptime) { dec->dtx.cn.cn_dec->ptime = ptime; return decoder_input_data(dec->dtx.cn.cn_dec, dec->dtx.cn.cn_payload, dec->rtp_ts, cn_append_frame, out, NULL); } static int generic_cn_dtx_init(decoder_t *dec) { // upsample CN output to same params as output of parent codec format_t cn_format = dec->dest_format; cn_format.channels = dec->in_format.channels; cn_format.clockrate = dec->in_format.clockrate; dec->dtx.cn.cn_dec = decoder_new_fmt(codec_def_cn, 8000, 1, dec->ptime, &cn_format); return 0; } static void generic_cn_dtx_cleanup(decoder_t *dec) { decoder_close(dec->dtx.cn.cn_dec); } #ifdef HAVE_BCG729 static void bcg729_def_init(struct codec_def_s *def) { // test init bcg729EncoderChannelContextStruct *e = initBcg729EncoderChannel(0); bcg729DecoderChannelContextStruct *d = initBcg729DecoderChannel(); if (e) { def->support_encoding = 1; closeBcg729EncoderChannel(e); } if (d) { def->support_decoding = 1; closeBcg729DecoderChannel(d); } } static const char *bcg729_decoder_init(decoder_t *dec, const str *extra_opts) { dec->bcg729 = initBcg729DecoderChannel(); if (!dec->bcg729) return "failed to initialize bcg729"; return NULL; } static int bcg729_decoder_input(decoder_t *dec, const str *data, GQueue *out) { str input = *data; uint64_t pts = dec->pts; while (input.len >= 2) { int frame_len = input.len >= 10 ? 10 : 2; str inp_frame = input; inp_frame.len = frame_len; str_shift(&input, frame_len); AVFrame *frame = av_frame_alloc(); frame->nb_samples = 80; frame->format = AV_SAMPLE_FMT_S16; frame->sample_rate = dec->in_format.clockrate; // 8000 DEF_CH_LAYOUT(&frame->CH_LAYOUT, dec->in_format.channels); frame->pts = pts; if (av_frame_get_buffer(frame, 0) < 0) abort(); pts += frame->nb_samples; // XXX handle lost packets and comfort noise bcg729Decoder(dec->bcg729, (void *) inp_frame.s, inp_frame.len, 0, 0, 0, (void *) frame->extended_data[0]); g_queue_push_tail(out, frame); } return 0; } static void bcg729_decoder_close(decoder_t *dec) { if (dec->bcg729) closeBcg729DecoderChannel(dec->bcg729); dec->bcg729 = NULL; } static const char *bcg729_encoder_init(encoder_t *enc, const str *extra_opts) { enc->bcg729 = initBcg729EncoderChannel(0); // no VAD if (!enc->bcg729) return "failed to initialize bcg729"; enc->actual_format.format = AV_SAMPLE_FMT_S16; enc->actual_format.channels = 1; enc->actual_format.clockrate = 8000; enc->samples_per_frame = 80; enc->samples_per_packet = enc->actual_format.clockrate * enc->ptime / 1000; return NULL; } static int bcg729_encoder_input(encoder_t *enc, AVFrame **frame) { if (!*frame) return 0; if ((*frame)->nb_samples != 80) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "bcg729: input %u samples instead of 80", (*frame)->nb_samples); return -1; } av_new_packet(enc->avpkt, 10); unsigned char len = 0; bcg729Encoder(enc->bcg729, (void *) (*frame)->extended_data[0], enc->avpkt->data, &len); if (!len) { av_packet_unref(enc->avpkt); return 0; } enc->avpkt->size = len; enc->avpkt->pts = (*frame)->pts; enc->avpkt->duration = len * 8; // Duration is used by encoder_input_data for pts calculation return 0; } static void bcg729_encoder_close(encoder_t *enc) { if (enc->bcg729) closeBcg729EncoderChannel(enc->bcg729); enc->bcg729 = NULL; } static int packetizer_g729(AVPacket *pkt, GString *buf, str *input_output, encoder_t *enc) { // how many frames do we want? int want_frames = input_output->len / 10; // easiest case: we only want one frame. return what we got if (want_frames == 1 && pkt) return packetizer_passthrough(pkt, buf, input_output, enc); // any other case, we go through our buffer str output = *input_output; // remaining output buffer if (pkt) g_string_append_len(buf, (char *) pkt->data, pkt->size); // how many frames do we have? int have_audio_frames = buf->len / 10; int have_noise_frames = (buf->len % 10) / 2; // we have enough? // special case: 4 noise frames (8 bytes) must be returned now, as otherwise // (5 noise frames) they might become indistinguishable from an audio frame if (have_audio_frames + have_noise_frames < want_frames && have_noise_frames != 4) return -1; // return non-silence/noise frames while we can while (buf->len >= 10 && want_frames && output.len >= 10) { memcpy(output.s, buf->str, 10); g_string_erase(buf, 0, 10); want_frames--; str_shift(&output, 10); } // append silence/noise frames if we can while (buf->len >= 2 && want_frames && output.len >= 2) { memcpy(output.s, buf->str, 2); g_string_erase(buf, 0, 2); want_frames--; str_shift(&output, 2); } if (output.len == input_output->len) return -1; // got nothing input_output->len = output.s - input_output->s; return buf->len >= 2 ? 1 : 0; } static int format_cmp_g729(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { // shortcut the most common case: if (!str_cmp_str(&a->format_parameters, &b->format_parameters)) return 0; // incompatible is if one side uses annex B but the other one doesn't if (str_str(&a->format_parameters, "annexb=yes") != -1 && str_str(&b->format_parameters, "annexb=yes") == -1) return -1; if (str_str(&a->format_parameters, "annexb=yes") == -1 && str_str(&b->format_parameters, "annexb=yes") != -1) return -1; // everything else is compatible return 0; } #endif static const char *dtmf_decoder_init(decoder_t *dec, const str *extra_opts) { dec->dtmf.event = -1; return NULL; } static AVFrame *dtmf_frame_int16_t_mono(unsigned long frame_ts, unsigned long num_samples, unsigned int event, unsigned int volume, unsigned int sample_rate) { // synthesise PCM // first get our frame and figure out how many samples we need, and the start offset AVFrame *frame = av_frame_alloc(); frame->nb_samples = num_samples; frame->format = AV_SAMPLE_FMT_S16; frame->sample_rate = sample_rate; frame->CH_LAYOUT = (CH_LAYOUT_T) MONO_LAYOUT; frame->pts = frame_ts; if (av_frame_get_buffer(frame, 0) < 0) abort(); // fill samples dtmf_samples_int16_t_mono(frame->extended_data[0], frame_ts, frame->nb_samples, event, volume, sample_rate); return frame; } static int dtmf_decoder_input(decoder_t *dec, const str *data, GQueue *out) { struct telephone_event_payload *dtmf; if (data->len < sizeof(*dtmf)) { ilog(LOG_WARN | LOG_FLAG_LIMIT, "Short DTMF event packet (len %zu)", data->len); return -1; } dtmf = (void *) data->s; // init if we need to if (dtmf->event != dec->dtmf.event || dec->rtp_ts != dec->dtmf.start_ts) { ZERO(dec->dtmf); dec->dtmf.event = dtmf->event; dec->dtmf.start_ts = dec->rtp_ts; ilog(LOG_DEBUG, "New DTMF event starting: %u at TS %lu", dtmf->event, dec->rtp_ts); } unsigned long duration = ntohs(dtmf->duration); unsigned long frame_ts = dec->rtp_ts - dec->dtmf.start_ts + dec->dtmf.duration; long num_samples = duration - dec->dtmf.duration; ilog(LOG_DEBUG, "Generate DTMF samples for event %u, start TS %lu, TS now %lu, frame TS %lu, " "duration %lu, " "old duration %lu, num samples %li", dtmf->event, dec->dtmf.start_ts, dec->rtp_ts, frame_ts, duration, dec->dtmf.duration, num_samples); if (num_samples <= 0) return 0; if (num_samples > dec->in_format.clockrate) { ilog(LOG_ERR, "Cannot generate %li DTMF samples (clock rate %u)", num_samples, dec->in_format.clockrate); return -1; } AVFrame *frame = dtmf_frame_int16_t_mono(frame_ts, num_samples, dtmf->event, dtmf->volume, dec->in_format.clockrate); frame->pts += dec->dtmf.start_ts; g_queue_push_tail(out, frame); dec->dtmf.duration = duration; return 0; } static int format_cmp_ignore(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { return 0; } static const char *cn_decoder_init(decoder_t *dec, const str *opts) { // the ffmpeg cngdec always runs at 8000 dec->in_format.clockrate = 8000; dec->in_format.channels = 1; dec->resampler.no_filter = true; return avc_decoder_init(dec, opts); } static int cn_decoder_input(decoder_t *dec, const str *data, GQueue *out) { // generate one set of ptime worth of samples int ptime = dec->ptime; if (ptime <= 0) ptime = 20; // ? int samples = dec->in_format.clockrate * ptime / 1000; dec->avc.avcctx->frame_size = samples; int ret = avc_decoder_input(dec, data, out); if (ret) return ret; if (!out->length) return -1; return 0; } void frame_fill_tone_samples(enum AVSampleFormat fmt, void *samples, unsigned int offset, unsigned int num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels) { switch (fmt) { case AV_SAMPLE_FMT_S16: tone_samples_int16_t(samples, offset, num, freq, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_S32: tone_samples_int32_t(samples, offset, num, freq, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_DBL: tone_samples_double(samples, offset, num, freq, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_FLT: tone_samples_float(samples, offset, num, freq, volume, sample_rate, channels); break; default: ilog(LOG_ERR | LOG_FLAG_LIMIT, "Unsupported sample format %u", fmt); break; } } void frame_fill_dtmf_samples(enum AVSampleFormat fmt, void *samples, unsigned int offset, unsigned int num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels) { switch (fmt) { case AV_SAMPLE_FMT_S16: dtmf_samples_int16_t(samples, offset, num, event, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_S32: dtmf_samples_int32_t(samples, offset, num, event, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_DBL: dtmf_samples_double(samples, offset, num, event, volume, sample_rate, channels); break; case AV_SAMPLE_FMT_FLT: dtmf_samples_float(samples, offset, num, event, volume, sample_rate, channels); break; default: ilog(LOG_ERR | LOG_FLAG_LIMIT, "Unsupported sample format %u", fmt); break; } } // lamely parse out decimal numbers without using floating point static unsigned int str_to_i_k(str *s) { str intg; str frac = *s; if (str_token(&intg, &frac, '.')) { unsigned int ret = str_to_i(s, 0) * 1000; if (frac.len > 1) // at most one decimal digit frac.len = 1; return ret + str_to_i(&frac, 0) * 100; } return str_to_i(s, 0) * 1000; } static const char *evs_bw_strings[__EVS_BW_MAX] = { "nb", "wb", "swb", "fb" }; static void evs_parse_bw(enum evs_bw *minp, enum evs_bw *maxp, const str *token) { switch (__csh_lookup(token)) { case CSH_LOOKUP("nb"): *maxp = EVS_BW_NB; break; case CSH_LOOKUP("wb"): *maxp = EVS_BW_WB; break; case CSH_LOOKUP("swb"): *maxp = EVS_BW_SWB; break; case CSH_LOOKUP("fb"): *maxp = EVS_BW_FB; break; case CSH_LOOKUP("nb-wb"): *minp = EVS_BW_NB; *maxp = EVS_BW_WB; break; case CSH_LOOKUP("nb-swb"): *minp = EVS_BW_NB; *maxp = EVS_BW_SWB; break; case CSH_LOOKUP("nb-fb"): *minp = EVS_BW_NB; *maxp = EVS_BW_FB; break; // the ones below are not mentioned in the spec - lower bound ignored case CSH_LOOKUP("wb-swb"): *minp = EVS_BW_WB; *maxp = EVS_BW_SWB; break; case CSH_LOOKUP("wb-fb"): *minp = EVS_BW_WB; *maxp = EVS_BW_FB; break; case CSH_LOOKUP("swb-fb"): *minp = EVS_BW_SWB; *maxp = EVS_BW_FB; break; default: ilog(LOG_WARN, "EVS: bandwidth selection '" STR_FORMAT "' not understood", STR_FMT(token)); } } static void evs_parse_br(unsigned int *minp, unsigned int *maxp, str *token) { str min; str max = *token; if (str_token(&min, &max, '-')) { *minp = str_to_i_k(&min); *maxp = str_to_i_k(&max); } else *minp = *maxp = str_to_i_k(token); if (*minp > *maxp) { ilog(LOG_WARN, "EVS: min bitrate %u is larger than max bitrate %u", *minp, *maxp); *maxp = *minp; } } // lamely print fractional number static void evs_print_frac_num(GString *s, unsigned int num) { unsigned int frac = (num / 100 % 10); unsigned int intg = num / 1000; if (frac) g_string_append_printf(s, "%u.%u", intg, frac); else g_string_append_printf(s, "%u", intg); } static void evs_format_print_br(GString *s, const char *k, unsigned int min, unsigned int max) { if (!max) return; g_string_append(s, k); g_string_append_c(s, '='); if (min != max) { evs_print_frac_num(s, min); g_string_append_c(s, '-'); } evs_print_frac_num(s, max); g_string_append(s, "; "); } static void evs_format_print_bw(GString *s, const char *k, enum evs_bw min, enum evs_bw max) { if (max == EVS_BW_UNSPEC) return; g_string_append(s, k); g_string_append_c(s, '='); if (min != EVS_BW_UNSPEC) { g_string_append(s, evs_bw_strings[min]); g_string_append_c(s, '-'); } g_string_append(s, evs_bw_strings[max]); g_string_append(s, "; "); } static GString *evs_format_print(const struct rtp_payload_type *p) { if (!p->format.fmtp_parsed) return false; GString *s = g_string_new(""); __auto_type f = &p->format.parsed.evs; if (f->hf_only) g_string_append(s, "hf-only=1; "); if (f->no_dtx) g_string_append(s, "dtx=0; "); if (f->no_dtx_recv) g_string_append(s, "dtx-recv=0; "); if (f->cmr) g_string_append_printf(s, "cmr=%i; ", f->cmr); if (f->amr_io) { // AMR g_string_append(s, "evs-mode-switch=1; "); if (f->mode_set) { g_string_append(s, "mode-set="); for (unsigned int i = 0; i < 8; i++) { if ((f->mode_set & (1 << i))) g_string_append_printf(s, "%u,", i); } g_string_truncate(s, s->len - 1); // remove trailing "," g_string_append(s, "; "); } if (f->mode_change_neighbor) g_string_append(s, "mode-change-neighbor=1; "); if (f->mode_change_period) g_string_append_printf(s, "mode-change-period=%i; ", f->mode_change_period); } else { // EVS evs_format_print_br(s, "br", f->min_br, f->max_br); evs_format_print_br(s, "br-send", f->min_br_send, f->max_br_send); evs_format_print_br(s, "br-recv", f->min_br_recv, f->max_br_recv); evs_format_print_bw(s, "bw", f->min_bw, f->max_bw); evs_format_print_bw(s, "bw-send", f->min_bw_send, f->max_bw_send); evs_format_print_bw(s, "bw-recv", f->min_bw_recv, f->max_bw_recv); } if (s->len != 0) g_string_truncate(s, s->len - 2); // remove trailing "; " if anything was printed return s; } static void evs_parse_format_cb(str *key, str *token, void *data) { union codec_format_options *opts = data; __auto_type o = &opts->evs; switch (__csh_lookup(key)) { case CSH_LOOKUP("hf-only"): if (token->len == 1 && token->s[0] == '1') o->hf_only = 1; break; case CSH_LOOKUP("evs-mode-switch"): if (token->len == 1 && token->s[0] == '1') o->amr_io = 1; break; case CSH_LOOKUP("dtx"): if (token->len == 1 && token->s[0] == '0') o->no_dtx = 1; break; case CSH_LOOKUP("dtx-recv"): if (token->len == 1 && token->s[0] == '0') o->no_dtx_recv = 1; break; case CSH_LOOKUP("cmr"): if (token->len == 1 && token->s[0] == '1') o->cmr = 1; else if (token->len == 2 && token->s[0] == '-' && token->s[1] == '1') o->cmr = -1; break; case CSH_LOOKUP("br"): evs_parse_br(&o->min_br, &o->max_br, token); break; case CSH_LOOKUP("br-send"): evs_parse_br(&o->min_br_send, &o->max_br_send, token); break; case CSH_LOOKUP("br-recv"): evs_parse_br(&o->min_br_recv, &o->max_br_recv, token); break; case CSH_LOOKUP("bw"): evs_parse_bw(&o->min_bw, &o->max_bw, token); break; case CSH_LOOKUP("bw-send"): evs_parse_bw(&o->min_bw_send, &o->max_bw_send, token); break; case CSH_LOOKUP("bw-recv"): evs_parse_bw(&o->min_bw_recv, &o->max_bw_recv, token); break; case CSH_LOOKUP("mode-set"):; str mode; while (str_token_sep(&mode, token, ',')) { int m = str_to_i(&mode, -1); if (m < 0 || m > 8) continue; o->mode_set |= (1 << m); } break; case CSH_LOOKUP("mode-change-period"): o->mode_change_period = str_to_i(token, 0); break; case CSH_LOOKUP("mode-change-neighbor"): if (token->len == 1 && token->s[0] == '1') o->mode_change_neighbor = 1; break; } } static int evs_format_parse(struct rtp_codec_format *f, const str *fmtp) { // initialise f->parsed.evs.max_bw = EVS_BW_UNSPEC; f->parsed.evs.min_bw = EVS_BW_UNSPEC; f->parsed.evs.max_bw_send = EVS_BW_UNSPEC; f->parsed.evs.min_bw_send = EVS_BW_UNSPEC; f->parsed.evs.max_bw_recv = EVS_BW_UNSPEC; f->parsed.evs.min_bw_recv = EVS_BW_UNSPEC; codeclib_key_value_parse(fmtp, true, evs_parse_format_cb, &f->parsed); return 0; } static void evs_format_answer(struct rtp_payload_type *p, const struct rtp_payload_type *src) { if (!p->format.fmtp_parsed) return; __auto_type f = &p->format.parsed.evs; // swap send/recv __auto_type t1 = f->max_br_recv; f->max_br_recv = f->max_br_send; f->max_br_send = t1; t1 = f->min_br_recv; f->min_br_recv = f->min_br_send; f->min_br_send = t1; __auto_type t2 = f->max_bw_recv; f->max_bw_recv = f->max_bw_send; f->max_bw_send = t2; t2 = f->min_bw_recv; f->min_bw_recv = f->min_bw_send; f->min_bw_send = t2; } static int evs_format_cmp(const struct rtp_payload_type *A, const struct rtp_payload_type *B) { // params must have been parsed successfully if (!A->format.fmtp_parsed || !B->format.fmtp_parsed) return -1; __auto_type a = &A->format.parsed.evs; __auto_type b = &B->format.parsed.evs; // reject what is incompatible if (a->amr_io != b->amr_io) return -1; if (a->hf_only != b->hf_only) return -1; // determine whether we are compatible int compat = 0; #define FEATURE_CMP(field, compat_op, undefined_val) \ if (a->field != undefined_val && b->field != undefined_val) { \ if (a->field == b->field) \ ; \ else if (a->field compat_op b->field) \ compat++; \ else \ return -1; \ } \ else if (a->field == undefined_val && b->field != undefined_val) /* `a` is broader than `b` */ \ compat++; \ else if (a->field != undefined_val && b->field == undefined_val) \ return -1; if (!a->amr_io) { // EVS FEATURE_CMP(max_br, >, 0) FEATURE_CMP(min_br, <, 0) FEATURE_CMP(max_br_recv, >, 0) FEATURE_CMP(min_br_recv, <, 0) FEATURE_CMP(max_br_send, >, 0) FEATURE_CMP(min_br_send, <, 0) FEATURE_CMP(max_bw, >, EVS_BW_UNSPEC) FEATURE_CMP(min_bw, <, EVS_BW_UNSPEC) FEATURE_CMP(max_bw_recv, >, EVS_BW_UNSPEC) FEATURE_CMP(min_bw_recv, <, EVS_BW_UNSPEC) FEATURE_CMP(max_bw_send, >, EVS_BW_UNSPEC) FEATURE_CMP(min_bw_send, <, EVS_BW_UNSPEC) } else { // AMR int match = amr_mode_set_cmp(a->mode_set, b->mode_set); if (match == 1) compat++; else if (match == -1) return -1; } #undef FEATURE_CMP return (compat == 0) ? 0 : 1; } // EVS RTP always runs at 16 kHz static void evs_select_encoder_format(encoder_t *enc, format_t *req_format, const format_t *f, const struct rtp_codec_format *fmtp) { if (req_format->clockrate != 16000) return; // bail - encoder will fail to initialise // check against natively supported rates first switch (f->clockrate) { case 48000: case 32000: case 16000: enc->clockrate_fact = (struct fraction) {48000 / f->clockrate, 1}; break; case 8000: enc->clockrate_fact = (struct fraction) {1, 16000 / f->clockrate}; break; default: // resample to next best rate if (f->clockrate > 32000) enc->clockrate_fact = (struct fraction) {3,1}; else if (f->clockrate > 16000) enc->clockrate_fact = (struct fraction) {2,1}; else if (f->clockrate > 8000) enc->clockrate_fact = (struct fraction) {1,1}; else enc->clockrate_fact = (struct fraction) {1,2}; break; } } static const char *evs_decoder_init(decoder_t *dec, const str *extra_opts) { dec->evs = g_slice_alloc0(evs_decoder_size); if (dec->in_format.clockrate != 48000) ilog(LOG_WARN, "EVS: invalid decoder clock rate (%i) requested", fraction_div(dec->in_format.clockrate, &dec->clockrate_fact)); if (dec->in_format.channels != 1) ilog(LOG_WARN, "EVS: %i-channel EVS is not supported", dec->in_format.channels); dec->in_format.clockrate = 48000; evs_set_decoder_Fs(dec->evs, dec->in_format.clockrate); evs_init_decoder(dec->evs); return NULL; } static void evs_decoder_close(decoder_t *dec) { evs_destroy_decoder(dec->evs); g_slice_free1(evs_decoder_size, dec->evs); } // upper 16 bits: 0 = EVS, 1 = AMR // lower 8 bits: mode num // 0x000000AA = mode num // 0x00AAAA00 = actual number of bits // 0xAA000000 = 0=EVS, 1=AMR // -1 == invalid static int32_t evs_mode_from_bytes(int bytes) { switch (bytes) { // EVS case 7: // 2.8 return 0 | (56 << 8); case 18: // 7.2 return 1 | (144 << 8); case 20: // 8.0 return 2 | (160 << 8); case 24: // 9.6 return 3 | (192 << 8); case 33: // 13.2 return 4 | (264 << 8); case 41: // 16.4 return 5 | (328 << 8); case 61: // 24.4 return 6 | (488 << 8); case 80: // 32.0 return 7 | (640 << 8); case 120: // 48.8 return 8 | (960 << 8); case 160: // 64.0 return 9 | (1280 << 8); case 240: // 96.0 return 10 | (1920 << 8); case 320: // 128.0 return 11 | (2560 << 8); case 6: // sid return 12 | (48 << 8); // AMR case 17: // (16.5) 6.60 kbit/s // 0 return 0 | 0x01000000 | (132 << 8); case 23: // (22.125) 8.85 kbit/s // 1 return 1 | 0x01000000 | (177 << 8); case 32: // (31.625) 12.65 kbit/s // 2 return 2 | 0x01000000 | (253 << 8); case 36: // (35.625) 14.25 kbit/s // 3 return 3 | 0x01000000 | (285 << 8); case 40: // (39.625) 15.85 kbit/s // 4 return 4 | 0x01000000 | (317 << 8); case 46: // (45.625) 18.25 kbit/s // 5 return 5 | 0x01000000 | (365 << 8); case 50: // (49.625) 19.85 kbit/s // 6 return 6 | 0x01000000 | (397 << 8); case 58: // (57.625) 23.05 kbit/s // 7 return 7 | 0x01000000 | (461 << 8); case 60: // (59.625) 23.85 kbit/s // 8 return 8 | 0x01000000 | (477 << 8); case 5: // sid return 9 | 0x01000000 | (40 << 8); } return -1; } static int32_t evs_mode_from_bitrate(int bitrate) { int bytes_per_frame = ((bitrate / 50) + 7) / 8; if (bytes_per_frame >= 7) return evs_mode_from_bytes(bytes_per_frame); return -1; } static int evs_bitrate_mode(int bitrate) { switch (bitrate) { // EVS case 2800: case 5900: case 7200: case 8000: case 13200: case 32000: case 64000: // AMR case 6600: case 8850: case 12650: case 14250: case 15850: case 18250: case 19850: case 23050: case 23850: return 1; // EVS case 9600: case 16400: case 24400: case 48000: case 96000: case 128000: return 2; } return 0; } static const int evs_mode_bits[2][16] = { // EVS { 56, // 0 144, // 1 160, // 2 192, // 3 264, // 4 328, // 5 488, // 6 640, // 7 960, // 8 1280, // 9 1920, // 10 2560, // 11 48, // 12 0, // 13 invalid 0, // 14 invalid 0, // 15 invalid }, // AMR { 132, // 6.60 kbit/s // 0 177, // 8.85 kbit/s // 1 253, // 12.65 kbit/s // 2 285, // 14.25 kbit/s // 3 317, // 15.85 kbit/s // 4 365, // 18.25 kbit/s // 5 397, // 19.85 kbit/s // 6 461, // 23.05 kbit/s // 7 477, // 23.85 kbit/s // 8 40, // comfort noise // 9 0, // invalid // 10 0, // invalid // 11 0, // invalid // 12 0, // invalid // 13 0, // invalid // 14 0, // invalid // 15 }, }; static const int evs_mode_bitrates[2][16] = { // EVS { 5900, // 0 (VBR) 7200, // 1 8000, // 2 9600, // 3 13200, // 4 16400, // 5 24400, // 6 32000, // 7 48800, // 8 64000, // 9 96000, // 10 128000, // 11 0, // 12 SID 0, // 13 invalid 0, // 14 invalid 0, // 15 invalid }, // AMR { 6600, // 0 8850, // 1 12650, // 2 14250, // 3 15850, // 4 18250, // 5 19850, // 6 23050, // 7 23850, // 8 0, // comfort noise // 9 0, // invalid // 10 0, // invalid // 11 0, // invalid // 12 0, // invalid // 13 0, // invalid // 14 0, // invalid // 15 }, }; static const uint8_t evs_min_max_modes_by_bw[__EVS_BW_MAX][2] = { { 0, 6 }, // NB { 0, 11 }, // WB { 3, 11 }, // SWB { 5, 11 }, // FB }; static uint8_t evs_clamp_mode_by_bw(const uint8_t mode, const enum evs_bw bw) { if (mode < evs_min_max_modes_by_bw[bw][0]) return evs_min_max_modes_by_bw[bw][0]; else if (mode > evs_min_max_modes_by_bw[bw][1]) return evs_min_max_modes_by_bw[bw][1]; return mode; } static int evs_match_bitrate(int orig_br, unsigned int amr) { // is it already a valid bitrate? int32_t mode = evs_mode_from_bitrate(orig_br); if (mode >= 0) { int bits = (mode >> 8) & 0xffff; if (mode > 0 && (mode >> 24) == amr && bits * 50 == orig_br) return orig_br; } // find closest match int max_mode = amr ? 8 : 11; int test_mode = max_mode / 2; int mode_off = (max_mode + 1) / 2; bool last = false; while (1) { int new_br = evs_mode_bitrates[amr][test_mode]; int new_off = (mode_off + 1) / 2; if (new_br > orig_br) { if (test_mode == 0 || last) return new_br; test_mode -= new_off; } else { // new_br < orig_br if (test_mode == max_mode) return new_br; test_mode += new_off; } if (mode_off == 1) last = true; mode_off = new_off; } } static const char *evs_encoder_init(encoder_t *enc, const str *extra_opts) { enc->evs.ctx = g_slice_alloc0(evs_encoder_size); enc->evs.ind_list = g_slice_alloc(evs_encoder_ind_list_size); if (enc->requested_format.channels != 1) ilog(LOG_WARN, "EVS: %i-channel EVS is not supported", enc->requested_format.channels); enc->actual_format = enc->requested_format; enc->actual_format.format = AV_SAMPLE_FMT_S16; enc->samples_per_frame = enc->actual_format.clockrate * 20 / 1000; __auto_type o = &enc->format_options.evs; // determine max BW if (o->max_bw_send != EVS_BW_UNSPEC) enc->codec_options.evs.max_bw = o->max_bw_send; else if (o->max_bw != EVS_BW_UNSPEC) enc->codec_options.evs.max_bw = o->max_bw; else enc->codec_options.evs.max_bw = EVS_BW_WB; assert(enc->codec_options.evs.max_bw >= 0 && enc->codec_options.evs.max_bw < __EVS_BW_MAX); switch (enc->requested_format.clockrate) { case 48000: case 32000: if (enc->codec_options.evs.max_bw > EVS_BW_SWB) enc->codec_options.evs.max_bw = EVS_BW_SWB; break; case 16000: if (enc->codec_options.evs.max_bw > EVS_BW_WB) enc->codec_options.evs.max_bw = EVS_BW_WB; break; case 8000: enc->codec_options.evs.max_bw = EVS_BW_NB; break; default: ilog(LOG_WARN, "EVS: invalid encoder clock rate (%i) requested", fraction_div(enc->requested_format.clockrate, &enc->clockrate_fact)); } evs_set_encoder_opts(enc->evs.ctx, enc->actual_format.clockrate, enc->evs.ind_list); // limit bitrate to given range if (!o->amr_io) { // EVS if (o->max_br && enc->bitrate > o->max_br) enc->bitrate = o->max_br; if (o->min_br && enc->bitrate < o->max_br) enc->bitrate = o->min_br; // verify bitrate int bitrate = evs_match_bitrate(enc->bitrate, 0); if (bitrate != enc->bitrate) { ilog(LOG_INFO, "EVS: Using bitrate %i instead of %i", bitrate, enc->bitrate); enc->bitrate = bitrate; } // limit max bitrate to one supported by the selected BW int32_t mode = evs_mode_from_bitrate(enc->bitrate); if (mode == -1) ilog(LOG_WARN, "EVS: ended up with unknown bitrate %i", enc->bitrate); else { mode &= 0xff; mode = evs_clamp_mode_by_bw(mode, enc->codec_options.evs.max_bw); bitrate = evs_mode_bitrates[0][mode]; ilog(LOG_INFO, "EVS: using bitrate %i instead of %i as restricted by BW %i", bitrate, enc->bitrate, enc->codec_options.evs.max_bw); enc->bitrate = bitrate; } } else { // AMR int32_t mode = evs_mode_from_bitrate(enc->bitrate); if (mode != -1) { if (mode >> 24 != 1) mode = -1; // EVS bitrate else if (o->mode_set) { if ((o->mode_set & (1 << (mode & 0xff))) == 0) mode = -1; // not part of the mode-set } } if (mode == -1) { // find closest match bitrate int bitrate = evs_match_bitrate(enc->bitrate, 1); mode = evs_mode_from_bitrate(bitrate); if (mode == -1 || (mode >> 24 != 1)) ilog(LOG_WARN, "EVS: ended up with unknown bitrate %i", bitrate); else { mode &= 0xff; // restrict by mode-set if there is one if (o->mode_set) { if ((o->mode_set & (1 << (mode & 0xff))) == 0) { // pick next higher mode if possible, otherwise go lower: // clear lower unwanted modes from mode-set unsigned int mode_set = o->mode_set & (0xfe << mode); if (mode_set) { // got a higher mode: which one? mode = __builtin_ffs(mode_set) - 1; } else { // no higher mode, get next lower one mode = sizeof(int) * 8 - __builtin_clz(o->mode_set) - 1; } } } bitrate = evs_mode_bitrates[1][mode]; ilog(LOG_INFO, "EVS: using bitrate %i instead of %i as restricted by mode-set", bitrate, enc->bitrate); enc->bitrate = bitrate; } } } evs_set_encoder_brate(enc->evs.ctx, enc->bitrate, enc->codec_options.evs.max_bw, evs_bitrate_mode(enc->bitrate), o->amr_io); evs_init_encoder(enc->evs.ctx); return NULL; } static void evs_encoder_close(encoder_t *enc) { evs_destroy_encoder(enc->evs.ctx); g_slice_free1(evs_encoder_size, enc->evs.ctx); g_slice_free1(evs_encoder_ind_list_size, enc->evs.ind_list); } static void evs_handle_cmr(encoder_t *enc) { if ((enc->callback.evs.cmr_in & 0x80) == 0) return; if (!memcmp(&enc->callback.evs.cmr_in_ts, &enc->evs.cmr_in_ts, sizeof(struct timeval))) return; enc->evs.cmr_in_ts = enc->callback.evs.cmr_in_ts; // XXX should use a queue or something instead __auto_type f = &enc->format_options.evs; __auto_type o = &enc->codec_options.evs; unsigned char type = (enc->callback.evs.cmr_in >> 4) & 0x7; unsigned char req = enc->callback.evs.cmr_in & 0xf; int bitrate; if (type == 1) { // AMR if (!f->amr_io) goto err; if (req > 8) goto err; bitrate = evs_mode_bitrates[1][req]; } else if (type <= 4) { // EVS modes if (f->amr_io) goto err; if (req > 11) goto err; int bw = type; if (bw >= 2) bw--; // 0..3 // ignore min BW // instead of ignoring invalid request, clamp them to what is allowed by BW if (o->max_bw != EVS_BW_UNSPEC && o->max_bw < bw) bw = o->max_bw; req = evs_clamp_mode_by_bw(req, bw); bitrate = evs_mode_bitrates[0][req]; } else goto err; enc->bitrate = bitrate; evs_set_encoder_brate(enc->evs.ctx, bitrate, o->max_bw, evs_bitrate_mode(bitrate), f->amr_io); return; err: if (f->amr_io) ilog(LOG_WARN | LOG_FLAG_LIMIT, "EVS: received invalid CMR (type %u, " "request %u) in AMR mode", type, req); else ilog(LOG_WARN | LOG_FLAG_LIMIT, "EVS: received invalid CMR (type %u, " "request %u) with BW <= %i", type, req, o->max_bw); } static int evs_encoder_input(encoder_t *enc, AVFrame **frame) { if (!*frame) return 0; if ((*frame)->nb_samples != enc->actual_format.clockrate * 20 / 1000) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "EVS: input %u samples instead of %i", (*frame)->nb_samples, enc->actual_format.clockrate * 20 / 1000); return -1; } evs_handle_cmr(enc); if (!enc->format_options.evs.amr_io) evs_enc_in(enc->evs.ctx, (void *) (*frame)->extended_data[0], (*frame)->nb_samples); else evs_amr_enc_in(enc->evs.ctx, (void *) (*frame)->extended_data[0], (*frame)->nb_samples); // max output: 320 bytes, plus some overhead av_new_packet(enc->avpkt, 340); unsigned char *out = enc->avpkt->data; unsigned char *cmr = NULL; if (!enc->format_options.evs.amr_io) { // EVS if (enc->format_options.evs.cmr == 1) { cmr = out; *cmr = 0xff; // no CMR out++; } } else { // AMR IO if (!enc->format_options.evs.hf_only) { // compact cmr = out; *cmr = 0xe0; // no CMR out++; // to be shuffled below } else { // header-full if (enc->format_options.evs.cmr == 1) { cmr = out; *cmr = 0xff; // no CMR out++; } } } // TOC byte unsigned char *toc = NULL; if (enc->format_options.evs.hf_only) { // header-full always has TOC toc = out; out++; } else { // compact if (cmr && !enc->format_options.evs.amr_io) { // EVS with CMR is also header-full with TOC toc = out; out++; } } uint16_t bits = 0; evs_enc_out(enc->evs.ctx, out, &bits); uint16_t bytes = (bits + 7) / 8; int32_t mode = evs_mode_from_bytes(bytes); if (mode < 0) { ilog(LOG_ERR | LOG_FLAG_LIMIT, "EVS: invalid encoding received from codec " "(%i bits per frame)", bits); av_packet_unref(enc->avpkt); return -1; } evs_reset_enc_ind(enc->evs.ctx); if (toc) { *toc = (mode & 0xff); if (enc->format_options.evs.amr_io) *toc |= 0x30; } if (enc->format_options.evs.amr_io && !enc->format_options.evs.hf_only) { // how many output bytes (frame minus CMR bits) total? bytes = (bits - 5 + 7) / 8; // bit-shuffle payload unsigned char first = out[0]; *cmr |= (first >> 2) & 0x1f; // XXX accelerate with larger word sizes for (int i = 0; i < bytes; i++) { out[i] <<= 6; out[i] |= out[i+1] >> 2; } // restore first bit, clear out tail end padding bits unsigned int first_bit_shift = (bits + 2) % 8; out[bytes-1] &= (0xff << (8 - first_bit_shift)); // clear leftovers out[bytes-1] |= ((first & 0x80) >> first_bit_shift); // last/first bit } bytes += (out - enc->avpkt->data); assert(bytes <= enc->avpkt->size); if (toc && !enc->format_options.evs.amr_io && !enc->format_options.evs.hf_only) { // hf-only=0 but HF packet, check for size collisions and zero-pad if needed while (evs_mode_from_bytes(bytes) != -1) { enc->avpkt->data[bytes] = '\0'; bytes++; } } enc->avpkt->size = bytes; enc->avpkt->pts = (*frame)->pts; enc->avpkt->duration = (*frame)->nb_samples; return 0; } // 3GPP TS 26.445 A.2.1.2.1 -> A.2.2.1.1 static const char evs_amr_io_compact_cmr[8] = { 0x90 | 0, // 6.6 0x90 | 1, // 8.85 0x90 | 2, // 12.65 0x90 | 4, // 15.85 0x90 | 5, // 18.25 0x90 | 7, // 23.05 0x90 | 8, // 23.85 0xff // no req }; #if defined(__x86_64__) && !defined(ASAN_BUILD) && HAS_ATTR(ifunc) && defined(__GLIBC__) static void mvr2s_dynlib_wrapper(float *in, const uint16_t len, int16_t *out) { evs_syn_output(in, len, out); } static void (*resolve_float2int16_array(void))(float *, const uint16_t, int16_t *) { #if defined(__x86_64__) if (rtpe_has_cpu_flag(RTPE_CPU_FLAG_AVX512BW) && rtpe_has_cpu_flag(RTPE_CPU_FLAG_AVX512F)) return mvr2s_avx512; if (rtpe_has_cpu_flag(RTPE_CPU_FLAG_AVX2)) return mvr2s_avx2; #endif return mvr2s_dynlib_wrapper; } static void float2int16_array(float *in, const uint16_t len, int16_t *out) __attribute__ ((ifunc ("resolve_float2int16_array"))); #else #define float2int16_array evs_syn_output #endif static int evs_decoder_input(decoder_t *dec, const str *data, GQueue *out) { str input = *data; uint64_t pts = dec->pts; const char *err = NULL; if (input.len == 0) return 0; unsigned int n_samples = dec->in_format.clockrate * 20 / 1000; str frame_data = STR_NULL; const unsigned char *toc = NULL, *toc_end = NULL; unsigned char cmr = 0xff; // check for single frame in compact format int32_t mode = evs_mode_from_bytes(input.len); int is_amr, bits, q_bit; if ((mode & 0xff0000ff) == 0) { // special case, clause A.2.1.3 if ((input.s[0] & 0x80)) { // AMR in HF format with CMR mode = -1; } } if (mode != -1) { // single compact frame: consume all frame_data = input; input.len = 0; // extract mode information bits = (mode >> 8) & 0xffff; is_amr = mode >> 24; q_bit = 1; mode = mode & 0xff; if (is_amr) { // save and clear CMR unsigned char *shifter = (unsigned char *) frame_data.s; // use unsigned cmr = shifter[0] & 0xe0; shifter[0] &= 0x1f; // convert CMR to full byte format cmr >>= 5; // now guaranteed to be 0..7 cmr = evs_amr_io_compact_cmr[cmr]; // bit shift payload // XXX use larger word sizes for (size_t i = 0; i < frame_data.len; i++) { shifter[i] <<= 2; shifter[i] |= shifter[i+1] >> 6; } // restore first bit size_t first_bit_octet = bits / 8; size_t first_bit_bit = bits % 8; shifter[0] |= (shifter[first_bit_octet] << first_bit_bit) & 0x80; } } else { // header-full toc = (unsigned char *) input.s; str_shift(&input, 1); // is this TOC or CMR? if ((*toc & 0x80)) { cmr = *toc; toc = (unsigned char *) input.s; err = "short packet (no TOC after CMR)"; if (str_shift(&input, 1)) goto err; err = "invalid TOC byte"; if ((*toc & 0x80)) goto err; } // skip over all TOC entries unsigned char toc_ent = *toc; while ((toc_ent & 0x40)) { toc_ent = *((unsigned char *) input.s); err = "short packet (no repeating TOC)"; if (str_shift(&input, 1)) goto err; } // `toc` is now the first TOC entry and `input` points to the first speech frame toc_end = (void *) input.s; } while (1) { // process frame if we have one; we don't have one if // this is the first iteration and this is not a compact frame if (mode != -1) { AVFrame *frame = av_frame_alloc(); frame->nb_samples = n_samples; frame->format = AV_SAMPLE_FMT_S16; frame->sample_rate = dec->in_format.clockrate; // 48000 DEF_CH_LAYOUT(&frame->CH_LAYOUT, dec->in_format.channels); frame->pts = pts; if (av_frame_get_buffer(frame, 0) < 0) abort(); evs_dec_in(dec->evs, frame_data.s, bits, is_amr, mode, q_bit, 0, 0); // check for floating point implementation if (evs_syn_output) { // temp float buffer float tmp[n_samples * 3]; if (!is_amr) evs_dec_out(dec->evs, tmp, 0); else evs_amr_dec_out(dec->evs, tmp); float2int16_array(tmp, n_samples, (void *) frame->extended_data[0]); } else { if (!is_amr) evs_dec_out(dec->evs, frame->extended_data[0], 0); else evs_amr_dec_out(dec->evs, frame->extended_data[0]); } evs_dec_inc_frame(dec->evs); pts += n_samples; g_queue_push_tail(out, frame); } // anything left? we break here in compact mode if (!input.len) break; // if we're here, we're in HF mode: look at the next TOC and extract speech frame if (toc >= toc_end) // leftover data/padding at the end break; mode = *toc & 0xf; is_amr = (*toc >> 5) & 0x1; if (is_amr) q_bit = (*toc >> 4) & 0x1; else q_bit = 1; bits = evs_mode_bits[is_amr][mode]; // guaranteed to be 0..1 and 0..15 // consume and shift toc++; int bytes = (bits + 7) / 8; frame_data.s = input.s; frame_data.len = bytes; err = "speech frame truncated"; if (str_shift(&input, bytes)) goto err; } if (cmr != 0xff) decoder_event(dec, CE_EVS_CMR_RECV, GUINT_TO_POINTER(cmr)); return 0; err: if (err) ilog(LOG_WARN | LOG_FLAG_LIMIT, "Error unpacking EVS packet: %s", err); return -1; } static void evs_load_so(const char *path) { if (!path) return; evs_lib_handle = dlopen(path, RTLD_NOW | RTLD_LOCAL); if (!evs_lib_handle) die("Failed to open EVS codec .so '%s': %s", path, dlerror()); static unsigned int (*get_evs_decoder_size)(void); static unsigned int (*get_evs_encoder_size)(void); static unsigned int (*get_evs_encoder_ind_list_size)(void); // flp codec? evs_init_decoder = dlsym(evs_lib_handle, "init_decoder"); if (!evs_init_decoder) { // fx codec? evs_init_decoder = dlsym_assert(evs_lib_handle, "init_decoder_fx", path); evs_init_encoder = dlsym_assert(evs_lib_handle, "init_encoder_fx", path); evs_destroy_encoder = dlsym_assert(evs_lib_handle, "destroy_encoder_fx", path); evs_enc_in = dlsym_assert(evs_lib_handle, "evs_enc_fx", path); evs_amr_enc_in = dlsym_assert(evs_lib_handle, "amr_wb_enc_fx", path); evs_reset_enc_ind = dlsym_assert(evs_lib_handle, "reset_indices_enc_fx", path); evs_dec_in = dlsym_assert(evs_lib_handle, "read_indices_from_djb_fx", path); evs_dec_out = dlsym_assert(evs_lib_handle, "evs_dec_fx", path); evs_amr_dec_out = dlsym_assert(evs_lib_handle, "amr_wb_dec_fx", path); } else { // flp codec evs_init_encoder = dlsym_assert(evs_lib_handle, "init_encoder", path); evs_destroy_encoder = dlsym_assert(evs_lib_handle, "destroy_encoder", path); evs_enc_in = dlsym_assert(evs_lib_handle, "evs_enc", path); evs_amr_enc_in = dlsym_assert(evs_lib_handle, "amr_wb_enc", path); evs_reset_enc_ind = dlsym_assert(evs_lib_handle, "reset_indices_enc", path); evs_dec_in = dlsym_assert(evs_lib_handle, "read_indices_from_djb", path); evs_dec_out = dlsym_assert(evs_lib_handle, "evs_dec", path); evs_syn_output = dlsym_assert(evs_lib_handle, "syn_output", path); evs_amr_dec_out = dlsym_assert(evs_lib_handle, "amr_wb_dec", path); } // common get_evs_decoder_size = dlsym_assert(evs_lib_handle, "decoder_size", path); get_evs_encoder_size = dlsym_assert(evs_lib_handle, "encoder_size", path); get_evs_encoder_ind_list_size = dlsym_assert(evs_lib_handle, "encoder_ind_list_size", path); evs_destroy_decoder = dlsym_assert(evs_lib_handle, "destroy_decoder", path); evs_enc_out = dlsym_assert(evs_lib_handle, "indices_to_serial", path); evs_set_encoder_opts = dlsym_assert(evs_lib_handle, "encoder_set_opts", path); evs_set_encoder_brate = dlsym_assert(evs_lib_handle, "encoder_set_brate", path); evs_set_decoder_Fs = dlsym_assert(evs_lib_handle, "decoder_set_Fs", path); evs_dec_inc_frame = dlsym_assert(evs_lib_handle, "decoder_inc_ini_frame", path); // all ok evs_decoder_size = get_evs_decoder_size(); evs_encoder_size = get_evs_encoder_size(); evs_encoder_ind_list_size = get_evs_encoder_ind_list_size(); return; } static void evs_def_init(struct codec_def_s *def) { evs_load_so(rtpe_common_config_ptr->evs_lib_path); if (evs_lib_handle) { def->support_decoding = 1; def->support_encoding = 1; } } static int evs_dtx(decoder_t *dec, GQueue *out, int ptime) { return 0; } #ifdef HAVE_CODEC_CHAIN codec_cc_state cc_pcmu2opus_run(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt; ssize_t ret = cc_pcmu2opus_runner_do(c->pcmu2opus.runner, c->pcmu2opus.enc, (unsigned char *) data->s, data->len, pkt->data, pkt->size); assert(ret > 0); // XXX handle errors XXX handle input frame sizes != 160 pkt->size = ret; pkt->duration = data->len * 6L; pkt->pts = ts * 6L; return CCC_OK; } codec_cc_state cc_pcma2opus_run(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt; ssize_t ret = cc_pcma2opus_runner_do(c->pcma2opus.runner, c->pcma2opus.enc, (unsigned char *) data->s, data->len, pkt->data, pkt->size); assert(ret > 0); // XXX handle errors XXX handle input frame sizes != 160 pkt->size = ret; pkt->duration = data->len * 6L; pkt->pts = ts * 6L; return CCC_OK; } codec_cc_state cc_opus2pcmu_run(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt; ssize_t ret = cc_opus2pcmu_runner_do(c->opus2pcmu.runner, c->opus2pcmu.dec, (unsigned char *) data->s, data->len, pkt->data, pkt->size); assert(ret > 0); // XXX handle errors pkt->size = ret; pkt->duration = ret; pkt->pts = ts / 6L; return CCC_OK; } codec_cc_state cc_opus2pcma_run(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt; ssize_t ret = cc_opus2pcma_runner_do(c->opus2pcma.runner, c->opus2pcma.dec, (unsigned char *) data->s, data->len, pkt->data, pkt->size); assert(ret > 0); // XXX handle errors pkt->size = ret; pkt->duration = ret; pkt->pts = ts / 6L; return CCC_OK; } static void __cc_async_job_free(struct async_job *j) { g_free(j->data.s); g_free(j); } static void __codec_cc_free(codec_cc_t *c) { c->clear(c->clear_arg); while (c->async_jobs.length) { __auto_type j = t_queue_pop_head(&c->async_jobs); c->async_callback(NULL, j->async_cb_obj); __cc_async_job_free(j); } av_packet_free(&c->avpkt); av_packet_free(&c->avpkt_async); g_slice_free1(sizeof(*c), c); } // lock must be held // append job to queue static void __cc_async_do_add_queue(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { struct async_job *j = g_new0(__typeof__(*j), 1); str_init_dup_str(&j->data, data); j->async_cb_obj = async_cb_obj; j->ts = ts; t_queue_push_tail(&c->async_jobs, j); } // check busy flag and append to queue if set // if not busy, sets busy flag // also check blocked flag if busy: if set, try running first job static bool __cc_async_check_busy_blocked_queue(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj, __typeof__(__cc_pcmu2opus_run_async) run_async) { struct async_job *j = NULL; { LOCK(&c->async_lock); if (!c->async_busy) { // we can try running c->async_busy = true; return false; } // codec is busy (either currently running or was blocked) // append to queue __cc_async_do_add_queue(c, data, ts, async_cb_obj); // if we were blocked (not currently running), try running now if (c->async_blocked) j = t_queue_pop_head(&c->async_jobs); } if (j) { if (!run_async(c, &j->data, j->ts, j->async_cb_obj)) { // still blocked. return to queue LOCK(&c->async_lock); t_queue_push_head(&c->async_jobs, j); } else { // unblocked, running now __cc_async_job_free(j); LOCK(&c->async_lock); c->async_blocked = false; } } return true; } // runner failed, needed to block (no available context) // set blocked flag and append to queue // queue is guaranteed to be empty static void __cc_async_blocked_queue(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { LOCK(&c->async_lock); __cc_async_do_add_queue(c, data, ts, async_cb_obj); c->async_blocked = true; // busy == true } static codec_cc_state cc_X_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj, __typeof__(__cc_pcmu2opus_run_async) run_async) { if (__cc_async_check_busy_blocked_queue(c, data, ts, async_cb_obj, run_async)) return CCC_ASYNC; if (!run_async(c, data, ts, async_cb_obj)) __cc_async_blocked_queue(c, data, ts, async_cb_obj); return CCC_ASYNC; } static void cc_X_pkt_callback(codec_cc_t *c, int size, __typeof__(__cc_pcmu2opus_run_async) run_async) { AVPacket *pkt = c->avpkt_async; void *async_cb_obj = c->async_cb_obj; c->async_cb_obj = NULL; c->async_callback(pkt, async_cb_obj); pkt->size = 0; struct async_job *j = NULL; bool shutdown = false; { LOCK(&c->async_lock); j = t_queue_pop_head(&c->async_jobs); if (!j) { if (c->async_shutdown) shutdown = true; else c->async_busy = false; } } if (shutdown) { __codec_cc_free(c); return; } if (j) { if (!run_async(c, &j->data, j->ts, j->async_cb_obj)) { LOCK(&c->async_lock); t_queue_push_head(&c->async_jobs, j); c->async_blocked = true; } else { g_free(j->data.s); g_free(j); LOCK(&c->async_lock); c->async_blocked = false; } } } static void cc_pcmX2opus_run_callback(void *p, int size, __typeof__(__cc_pcmu2opus_run_async) run_async) { codec_cc_t *c = p; assert(size > 0); // XXX handle errors XXX handle input frame sizes != 160 AVPacket *pkt = c->avpkt_async; pkt->size = size; pkt->duration = c->data_len * 6L; pkt->pts = c->ts * 6L; cc_X_pkt_callback(c, size, run_async); } static void cc_pcmu2opus_run_callback(void *p, int size) { cc_pcmX2opus_run_callback(p, size, __cc_pcmu2opus_run_async); } static bool __cc_pcmu2opus_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt_async; pkt->size = MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE; c->data_len = data->len; c->ts = ts; c->async_cb_obj = async_cb_obj; return cc_pcmu2opus_runner_async_do_nonblock(c->pcmu2opus_async.runner, c->pcmu2opus.enc, (unsigned char *) data->s, data->len, pkt->data, pkt->size, cc_pcmu2opus_run_callback, c); } codec_cc_state cc_pcmu2opus_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { return cc_X_run_async(c, data, ts, async_cb_obj, __cc_pcmu2opus_run_async); } static void cc_pcma2opus_run_callback(void *p, int size) { cc_pcmX2opus_run_callback(p, size, __cc_pcma2opus_run_async); } static bool __cc_pcma2opus_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt_async; pkt->size = MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE; c->data_len = data->len; c->ts = ts; c->async_cb_obj = async_cb_obj; return cc_pcma2opus_runner_async_do_nonblock(c->pcma2opus_async.runner, c->pcma2opus.enc, (unsigned char *) data->s, data->len, pkt->data, pkt->size, cc_pcma2opus_run_callback, c); } codec_cc_state cc_pcma2opus_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { return cc_X_run_async(c, data, ts, async_cb_obj, __cc_pcma2opus_run_async); } static void cc_opus2pcmX_run_callback(void *p, int size, __typeof__(__cc_opus2pcma_run_async) run_async) { codec_cc_t *c = p; assert(size > 0); // XXX handle errors AVPacket *pkt = c->avpkt_async; pkt->size = size; pkt->duration = size; pkt->pts = c->ts / 6L; cc_X_pkt_callback(c, size, run_async); } static void cc_opus2pcmu_run_callback(void *p, int size) { cc_opus2pcmX_run_callback(p, size, __cc_opus2pcmu_run_async); } static bool __cc_opus2pcmu_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt_async; pkt->size = 960; c->data_len = data->len; c->ts = ts; c->async_cb_obj = async_cb_obj; return cc_opus2pcmu_runner_async_do_nonblock(c->opus2pcmu_async.runner, c->opus2pcmu.dec, (unsigned char *) data->s, data->len, pkt->data, pkt->size, cc_opus2pcmu_run_callback, c); } codec_cc_state cc_opus2pcmu_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { return cc_X_run_async(c, data, ts, async_cb_obj, __cc_opus2pcmu_run_async); } static void cc_opus2pcma_run_callback(void *p, int size) { return cc_opus2pcmX_run_callback(p, size, __cc_opus2pcma_run_async); } static bool __cc_opus2pcma_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { AVPacket *pkt = c->avpkt_async; pkt->size = 960; c->data_len = data->len; c->ts = ts; c->async_cb_obj = async_cb_obj; return cc_opus2pcma_runner_async_do_nonblock(c->opus2pcma_async.runner, c->opus2pcma.dec, (unsigned char *) data->s, data->len, pkt->data, pkt->size, cc_opus2pcma_run_callback, c); } codec_cc_state cc_opus2pcma_run_async(codec_cc_t *c, const str *data, unsigned long ts, void *async_cb_obj) { return cc_X_run_async(c, data, ts, async_cb_obj, __cc_opus2pcma_run_async); } static void cc_float2opus_clear(void *a) { codec_chain_float2opus *enc = a; cc_client_float2opus_free(cc_client, enc); } static void cc_opus2float_clear(void *a) { codec_chain_opus2float *dec = a; cc_client_opus2float_free(cc_client, dec); } static codec_cc_t *codec_cc_new_sync(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)) { if (!strcmp(dst->rtpname, "opus") && !strcmp(src->rtpname, "PCMA")) { if (src_format->clockrate != 8000) return NULL; if (src_format->channels != 1) return NULL; if (dst_format->channels != 2) return NULL; if (dst_format->clockrate != 48000) return NULL; if (!pcma2opus_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->pcma2opus.enc = cc_client_float2opus_new_ext(cc_client, (codec_chain_opus_arguments) { .bitrate = bitrate, .complexity = rtpe_common_config_ptr->codec_chain_opus_complexity, }); ret->clear = cc_float2opus_clear; ret->clear_arg = ret->pcma2opus.enc; ret->pcma2opus.runner = pcma2opus_runner; ret->avpkt = av_packet_alloc(); ret->run = cc_pcma2opus_run; return ret; } else if (!strcmp(dst->rtpname, "opus") && !strcmp(src->rtpname, "PCMU")) { if (src_format->clockrate != 8000) return NULL; if (src_format->channels != 1) return NULL; if (dst_format->channels != 2) return NULL; if (dst_format->clockrate != 48000) return NULL; if (!pcmu2opus_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->pcmu2opus.enc = cc_client_float2opus_new_ext(cc_client, (codec_chain_opus_arguments) { .bitrate = bitrate, .complexity = rtpe_common_config_ptr->codec_chain_opus_complexity, }); ret->clear = cc_float2opus_clear; ret->clear_arg = ret->pcmu2opus.enc; ret->pcmu2opus.runner = pcmu2opus_runner; ret->avpkt = av_packet_alloc(); ret->run = cc_pcmu2opus_run; return ret; } else if (!strcmp(dst->rtpname, "PCMU") && !strcmp(src->rtpname, "opus")) { if (dst_format->clockrate != 8000) return NULL; if (dst_format->channels != 1) return NULL; if (src_format->channels != 2) return NULL; if (src_format->clockrate != 48000) return NULL; if (!opus2pcmu_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->opus2pcmu.dec = cc_client_opus2float_new(cc_client); ret->clear = cc_opus2float_clear; ret->clear_arg = ret->opus2pcmu.dec; ret->opus2pcmu.runner = opus2pcmu_runner; ret->avpkt = av_packet_alloc(); ret->run = cc_opus2pcmu_run; return ret; } else if (!strcmp(dst->rtpname, "PCMA") && !strcmp(src->rtpname, "opus")) { if (dst_format->clockrate != 8000) return NULL; if (dst_format->channels != 1) return NULL; if (src_format->channels != 2) return NULL; if (src_format->clockrate != 48000) return NULL; if (!opus2pcma_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->opus2pcma.dec = cc_client_opus2float_new(cc_client); ret->clear = cc_opus2float_clear; ret->clear_arg = ret->opus2pcma.dec; ret->opus2pcma.runner = opus2pcma_runner; ret->avpkt = av_packet_alloc(); ret->run = cc_opus2pcma_run; return ret; } return NULL; } static codec_cc_t *codec_cc_new_async(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*async_init)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)) { // XXX check ptime, adjust avpkt sizes if (!strcmp(dst->rtpname, "opus") && !strcmp(src->rtpname, "PCMA")) { if (src_format->clockrate != 8000) return NULL; if (src_format->channels != 1) return NULL; if (dst_format->channels != 2) return NULL; if (dst_format->clockrate != 48000) return NULL; if (!pcma2opus_async_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->pcma2opus.enc = cc_client_float2opus_new_ext(cc_client, (codec_chain_opus_arguments) { .bitrate = bitrate, .complexity = rtpe_common_config_ptr->codec_chain_opus_complexity, }); ret->clear = cc_float2opus_clear; ret->clear_arg = ret->pcma2opus.enc; ret->pcma2opus_async.runner = pcma2opus_async_runner; ret->run = cc_pcma2opus_run_async; ret->avpkt_async = av_packet_alloc(); av_new_packet(ret->avpkt_async, MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE); mutex_init(&ret->async_lock); t_queue_init(&ret->async_jobs); ret->async_init = async_init; ret->async_callback = async_callback; return ret; } else if (!strcmp(dst->rtpname, "opus") && !strcmp(src->rtpname, "PCMU")) { if (src_format->clockrate != 8000) return NULL; if (src_format->channels != 1) return NULL; if (dst_format->channels != 2) return NULL; if (dst_format->clockrate != 48000) return NULL; if (!pcmu2opus_async_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->pcmu2opus.enc = cc_client_float2opus_new_ext(cc_client, (codec_chain_opus_arguments) { .bitrate = bitrate, .complexity = rtpe_common_config_ptr->codec_chain_opus_complexity, }); ret->clear = cc_float2opus_clear; ret->clear_arg = ret->pcmu2opus.enc; ret->pcmu2opus_async.runner = pcmu2opus_async_runner; ret->run = cc_pcmu2opus_run_async; ret->avpkt_async = av_packet_alloc(); av_new_packet(ret->avpkt_async, MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE); mutex_init(&ret->async_lock); t_queue_init(&ret->async_jobs); ret->async_init = async_init; ret->async_callback = async_callback; return ret; } else if (!strcmp(dst->rtpname, "PCMU") && !strcmp(src->rtpname, "opus")) { if (dst_format->clockrate != 8000) return NULL; if (dst_format->channels != 1) return NULL; if (src_format->channels != 2) return NULL; if (src_format->clockrate != 48000) return NULL; if (!opus2pcmu_async_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->opus2pcmu.dec = cc_client_opus2float_new(cc_client); ret->clear = cc_opus2float_clear; ret->clear_arg = ret->opus2pcmu.dec; ret->opus2pcmu_async.runner = opus2pcmu_async_runner; ret->run = cc_opus2pcmu_run_async; ret->avpkt_async = av_packet_alloc(); av_new_packet(ret->avpkt_async, 960); mutex_init(&ret->async_lock); t_queue_init(&ret->async_jobs); ret->async_init = async_init; ret->async_callback = async_callback; return ret; } else if (!strcmp(dst->rtpname, "PCMA") && !strcmp(src->rtpname, "opus")) { if (dst_format->clockrate != 8000) return NULL; if (dst_format->channels != 1) return NULL; if (src_format->channels != 2) return NULL; if (src_format->clockrate != 48000) return NULL; if (!opus2pcma_async_runner) return NULL; codec_cc_t *ret = g_slice_alloc0(sizeof(*ret)); ret->opus2pcma.dec = cc_client_opus2float_new(cc_client); ret->clear = cc_opus2float_clear; ret->clear_arg = ret->opus2pcma.dec; ret->opus2pcma_async.runner = opus2pcma_async_runner; ret->run = cc_opus2pcma_run_async; ret->avpkt_async = av_packet_alloc(); av_new_packet(ret->avpkt_async, 960); mutex_init(&ret->async_lock); t_queue_init(&ret->async_jobs); ret->async_init = async_init; ret->async_callback = async_callback; return ret; } return NULL; } void codec_cc_stop(codec_cc_t *c) { if (!c) return; // steal and fire all callbacks to release any references async_job_q q; { LOCK(&c->async_lock); q = c->async_jobs; t_queue_init(&c->async_jobs); } while (q.length) { __auto_type j = t_queue_pop_head(&q); c->async_callback(NULL, j->async_cb_obj); __cc_async_job_free(j); } } void codec_cc_free(codec_cc_t **ccp) { codec_cc_t *c = *ccp; if (!c) return; *ccp = NULL; { LOCK(&c->async_lock); if (c->async_busy && !c->async_blocked) { c->async_shutdown = true; return; // wait for callback } } __codec_cc_free(c); } #endif AVPacket *codec_cc_input_data(codec_cc_t *c, const str *data, unsigned long ts, void *x, void *y, void *z) { #ifdef HAVE_CODEC_CHAIN if (c->avpkt) av_new_packet(c->avpkt, MAX_OPUS_FRAME_SIZE * MAX_OPUS_FRAMES_PER_PACKET + MAX_OPUS_HEADER_SIZE); void *async_cb_obj = NULL; if (c->async_init) async_cb_obj = c->async_init(x, y, z); codec_cc_state ret = c->run(c, data, ts, async_cb_obj); assert(ret != CCC_ERR); if (ret == CCC_OK) return c->avpkt; // CCC_ASYNC return NULL; #else return NULL; #endif } rtpengine-mr12.5.1.22/lib/codeclib.h000066400000000000000000000321761474347554000170650ustar00rootroot00000000000000#ifndef __CODECLIB_H__ #define __CODECLIB_H__ struct codec_def_s; struct packet_sequencer_s; typedef const struct codec_def_s codec_def_t; typedef struct packet_sequencer_s packet_sequencer_t; struct rtp_payload_type; enum media_type { MT_UNKNOWN = 0, MT_AUDIO, MT_VIDEO, MT_IMAGE, MT_MESSAGE, MT_OTHER, __MT_MAX }; #include "str.h" #include "rtplib.h" INLINE enum media_type codec_get_type(const str *type) { if (!type || !type->len) return MT_UNKNOWN; if (!str_cmp(type, "audio")) return MT_AUDIO; if (!str_cmp(type, "video")) return MT_VIDEO; if (!str_cmp(type, "image")) return MT_IMAGE; if (!str_cmp(type, "message")) return MT_MESSAGE; return MT_OTHER; } // 0: exact match // 1: a is compatible with b (not necessarily the other way around) // -1: a is not compatible with b typedef int format_cmp_f(const struct rtp_payload_type *a, const struct rtp_payload_type *b); typedef GString *format_print_f(const struct rtp_payload_type *); #ifndef WITHOUT_CODECLIB #include #include #include #include #ifdef HAVE_BCG729 #include #include #endif #include #define AMR_FT_TYPES 14 enum rtpe_cpu_flag { RTPE_CPU_FLAG_AVX2 = 0, RTPE_CPU_FLAG_AVX512BW, RTPE_CPU_FLAG_AVX512F, RTPE_CPU_FLAG_SSE2, __NUM_RTPE_CPU_FLAGS }; struct codec_type_s; struct decoder_s; struct encoder_s; struct format_s; struct resample_s; struct seq_packet_s; struct rtp_payload_type; union codec_options_u; struct encoder_callback_s; struct dtx_method_s; struct fraction; typedef struct codec_type_s codec_type_t; typedef struct decoder_s decoder_t; typedef struct encoder_s encoder_t; typedef struct format_s format_t; typedef struct resample_s resample_t; typedef struct seq_packet_s seq_packet_t; typedef union codec_options_u codec_options_t; typedef struct encoder_callback_s encoder_callback_t; typedef struct dtx_method_s dtx_method_t; typedef struct codec_cc_s codec_cc_t; typedef int packetizer_f(AVPacket *, GString *, str *, encoder_t *); typedef void format_init_f(struct rtp_payload_type *); typedef void set_enc_options_f(encoder_t *, const str *); typedef void set_dec_options_f(decoder_t *, const str *); typedef void select_encoder_format_f(encoder_t *, format_t *requested_format, const format_t *input_format, const struct rtp_codec_format *fmtp); typedef void select_decoder_format_f(decoder_t *, const struct rtp_codec_format *fmtp); typedef int format_parse_f(struct rtp_codec_format *, const str *fmtp); typedef void format_answer_f(struct rtp_payload_type *, const struct rtp_payload_type *); struct codec_type_s { void (*def_init)(struct codec_def_s *); const char *(*decoder_init)(decoder_t *, const str *); int (*decoder_input)(decoder_t *, const str *data, GQueue *); void (*decoder_close)(decoder_t *); const char *(*encoder_init)(encoder_t *, const str *); int (*encoder_input)(encoder_t *, AVFrame **); void (*encoder_got_packet)(encoder_t *); void (*encoder_close)(encoder_t *); }; struct encoder_callback_s { struct { struct timeval cmr_in_ts; unsigned int cmr_in; struct timeval cmr_out_ts; unsigned int cmr_out; } amr; struct { struct timeval cmr_in_ts; unsigned int cmr_in; } evs; }; union codec_options_u { struct { const unsigned int *bits_per_frame; const unsigned int *bitrates; int mode_change_interval; int cmr_interval; } amr; struct { enum evs_bw max_bw; } evs; }; enum dtx_method { DTX_NATIVE = 0, DTX_SILENCE, DTX_CN, NUM_DTX_METHODS }; struct fraction { int mult; int div; }; INLINE int fraction_mult(int a, const struct fraction *f) { return a * f->mult / f->div; } INLINE int fraction_div(int a, const struct fraction *f) { return a * f->div / f->mult; } INLINE long fraction_multl(long a, const struct fraction *f) { return a * f->mult / f->div; } INLINE long fraction_divl(long a, const struct fraction *f) { return a * f->div / f->mult; } struct codec_def_s { const char * const rtpname; struct fraction default_clockrate_fact; const int avcodec_id; const char * const avcodec_name_enc; const char * const avcodec_name_dec; int default_clockrate; int default_channels; const int default_bitrate; int default_ptime; int minimum_ptime; const char *default_fmtp; format_parse_f * const format_parse; format_cmp_f * const format_cmp; format_print_f * const format_print; format_answer_f * const format_answer; packetizer_f * const packetizer; select_encoder_format_f * const select_encoder_format; select_decoder_format_f * const select_decoder_format; const int bits_per_sample; const enum media_type media_type; const str silence_pattern; // codec-specific callbacks format_init_f *init; set_enc_options_f *set_enc_options; set_dec_options_f *set_dec_options; const dtx_method_t * const dtx_methods[NUM_DTX_METHODS]; // filled in by codeclib_init() str rtpname_str; int rfc_payload_type; unsigned int support_encoding:1, support_decoding:1; // flags unsigned int supplemental:1, dtmf:1, // special case fixed_sizes:1, // hint for `block-short` feature amr:1; const codec_type_t *codec_type; // libavcodec const AVCodec *encoder; const AVCodec *decoder; }; struct format_s { int clockrate; int channels; int format; // enum AVSampleFormat }; struct resample_s { SwrContext *swresample; bool no_filter; }; enum codec_event { CE_AMR_CMR_RECV, CE_AMR_SEND_CMR, CE_EVS_CMR_RECV, }; struct dtx_method_s { enum dtx_method method_id; int (*init)(decoder_t *); void (*cleanup)(decoder_t *); int (*do_dtx)(decoder_t *, GQueue *, int); union { struct { decoder_t *cn_dec; const str *cn_payload; } cn; }; }; struct decoder_s { codec_def_t *def; struct fraction clockrate_fact; codec_options_t codec_options; union codec_format_options format_options; dtx_method_t dtx; format_t in_format, dec_out_format, dest_format; resample_t resampler; union { struct { AVCodecContext *avcctx; AVPacket *avpkt; const enum AVSampleFormat *sample_fmts; union { struct { uint16_t bitrate_tracker[AMR_FT_TYPES]; struct timeval tracker_end; struct timeval last_cmr; } amr; }; } avc; #ifdef HAVE_BCG729 bcg729DecoderChannelContextStruct *bcg729; #endif struct { unsigned long start_ts; unsigned int event; unsigned long duration; } dtmf; void *evs; OpusDecoder *opus; }; unsigned long rtp_ts; uint64_t pts; int ptime; int (*event_func)(enum codec_event event, void *ptr, void *event_data); void *event_data; }; struct encoder_s { format_t requested_format, input_format, actual_format; codec_def_t *def; struct fraction clockrate_fact; codec_options_t codec_options; encoder_callback_t callback; union codec_format_options format_options; union { struct { const AVCodec *codec; AVCodecContext *avcctx; const enum AVSampleFormat *sample_fmts; union { struct { struct timeval cmr_in_ts; struct timeval cmr_out_ts; unsigned int cmr_out_seq; uint64_t pkt_seq; } amr; }; } avc; #ifdef HAVE_BCG729 bcg729EncoderChannelContextStruct *bcg729; #endif struct { void *ctx; void *ind_list; struct timeval cmr_in_ts; } evs; OpusEncoder *opus; }; AVPacket *avpkt; AVAudioFifo *fifo; int64_t fifo_pts; // pts of first data in fifo int64_t packet_pts; // first pts of data in packetizer buffer int64_t next_pts; // next pts expected from the encoder int ptime; int bitrate; int samples_per_frame; // for encoding int samples_per_packet; // for frame packetizer AVFrame *frame; // to pull samples from the fifo int64_t mux_dts; // last dts passed to muxer }; struct seq_packet_s { int seq; }; struct packet_sequencer_s { GTree *packets; unsigned int lost_count; int seq; // next expected unsigned int ext_seq; // last received int roc; // rollover counter XXX duplicate with SRTP encryption context }; extern const GQueue * const codec_supplemental_codecs; // must be set before calling codeclib_init extern void (*codeclib_thread_init)(void); extern void (*codeclib_thread_cleanup)(void); extern void (*codeclib_thread_loop)(void); void codeclib_init(int); void codeclib_free(void); bool rtpe_has_cpu_flag(enum rtpe_cpu_flag flag); codec_def_t *codec_find(const str *name, enum media_type); codec_def_t *codec_find_by_av(enum AVCodecID); int codec_parse_fmtp(codec_def_t *def, struct rtp_codec_format *fmtp, const str *fmtp_string, union codec_format_options *copy); decoder_t *decoder_new_fmt(codec_def_t *def, int clockrate, int channels, int ptime, const format_t *resample_fmt); decoder_t *decoder_new_fmtp(codec_def_t *def, int clockrate, int channels, int ptime, const format_t *resample_fmt, struct rtp_codec_format *fmtp, const str *fmtp_string, const str *codec_opts); void decoder_close(decoder_t *dec); int decoder_input_data(decoder_t *dec, const str *data, unsigned long ts, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2); int decoder_input_data_ptime(decoder_t *dec, const str *data, unsigned long ts, int *ptime, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2); gboolean decoder_has_dtx(decoder_t *); int decoder_switch_dtx(decoder_t *dec, enum dtx_method); int decoder_set_cn_dtx(decoder_t *dec, const str *); int decoder_dtx(decoder_t *dec, unsigned long ts, int ptime, int (*callback)(decoder_t *, AVFrame *, void *u1, void *u2), void *u1, void *u2); encoder_t *encoder_new(void); int encoder_config(encoder_t *enc, codec_def_t *def, int bitrate, int ptime, const format_t *requested_format, format_t *actual_format); int encoder_config_fmtp(encoder_t *enc, codec_def_t *def, int bitrate, int ptime, const format_t *input_format, const format_t *requested_format, format_t *actual_format, struct rtp_codec_format *fmtp, const str *fmtp_string, const str *codec_opts); void encoder_close(encoder_t *); void encoder_free(encoder_t *); int encoder_input_data(encoder_t *enc, AVFrame *frame, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2); int encoder_input_fifo(encoder_t *enc, AVFrame *frame, int (*callback)(encoder_t *, void *u1, void *u2), void *u1, void *u2); void __packet_sequencer_init(packet_sequencer_t *ps, GDestroyNotify); INLINE void packet_sequencer_init(packet_sequencer_t *ps, GDestroyNotify); void packet_sequencer_destroy(packet_sequencer_t *ps); void *packet_sequencer_next_packet(packet_sequencer_t *ps); int packet_sequencer_next_ok(packet_sequencer_t *ps); void *packet_sequencer_force_next_packet(packet_sequencer_t *ps); int packet_sequencer_insert(packet_sequencer_t *ps, seq_packet_t *); packetizer_f packetizer_passthrough; // pass frames as they arrive in AVPackets void frame_fill_tone_samples(enum AVSampleFormat fmt, void *samples, unsigned int offset, unsigned int num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels); void frame_fill_dtmf_samples(enum AVSampleFormat fmt, void *samples, unsigned int offset, unsigned int num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels); #ifdef HAVE_CODEC_CHAIN extern codec_cc_t *(*codec_cc_new)(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*init_async)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)); void codec_cc_stop(codec_cc_t *); void codec_cc_free(codec_cc_t **); #else INLINE codec_cc_t *codec_cc_new(codec_def_t *src, format_t *src_format, codec_def_t *dst, format_t *dst_format, int bitrate, int ptime, void *(*init_async)(void *, void *, void *), void (*async_callback)(AVPacket *, void *)) { return NULL; } INLINE void codec_cc_stop(codec_cc_t *c) { } INLINE void codec_cc_free(codec_cc_t **c) { } #endif AVPacket *codec_cc_input_data(codec_cc_t *c, const str *data, unsigned long ts, void *, void *, void *); #include "auxlib.h" // `ps` must be zero allocated INLINE void packet_sequencer_init(packet_sequencer_t *ps, GDestroyNotify n) { if (ps->packets) return; __packet_sequencer_init(ps, n); } INLINE int format_eq(const format_t *a, const format_t *b) { if (G_UNLIKELY(a->clockrate != b->clockrate)) return 0; if (G_UNLIKELY(a->channels != b->channels)) return 0; if (G_UNLIKELY(a->format != b->format)) return 0; return 1; } INLINE void format_init(format_t *f) { f->clockrate = -1; f->channels = -1; f->format = -1; } INLINE char *av_error(int no) { char *buf = get_thread_buf(); av_strerror(no, buf, THREAD_BUF_SIZE); return buf; } INLINE int decoder_event(decoder_t *dec, enum codec_event event, void *ptr) { if (!dec) return 0; if (!dec->event_func) return 0; return dec->event_func(event, ptr, dec->event_data); } #else // stubs struct codec_def_s { int dtmf; int supplemental; int fixed_sizes; format_cmp_f * const format_cmp; format_print_f * const format_print; const str silence_pattern; }; struct packet_sequencer_s { }; INLINE void codeclib_init(int print) { if (print) printf("No codecs supported.\n"); } INLINE void codeclib_free(void) { ; } INLINE codec_def_t *codec_find(const str *name, enum media_type type) { return NULL; } INLINE void packet_sequencer_destroy(packet_sequencer_t *p) { return; } #endif #endif rtpengine-mr12.5.1.22/lib/common.Makefile000066400000000000000000000032651474347554000200740ustar00rootroot00000000000000include ../lib/lib.Makefile CFLAGS += -fPIE LDFLAGS += -pie LDLIBS += -latomic all: $(MAKE) $(TARGET) $(MANS) $(TARGET): $(OBJS) Makefile $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJS) $(LDLIBS) debug: $(MAKE) DBG=yes all BUILD_TEST_ALTS = fix_frame_channel_layout.h dtmf_rx_fillin.h spandsp_logging.h clean: rm -f $(OBJS) $(TARGET) $(LIBSRCS) $(LIBASM) $(DAEMONSRCS) $(MANS) $(ADD_CLEAN) core core.* rm -f $(BUILD_TEST_ALTS) $(BUILD_TEST_ALTS:.h=-test.c) $(BUILD_TEST_ALTS:.h=-test) *.strhash.c $(HASHSRCS) install: $(OBJS): Makefile ../include/* ../lib/*.h ../kernel-module/*.h $(LIBSRCS): $(patsubst %,../lib/%,$(LIBSRCS)) ( echo '/******** GENERATED FILE ********/' && \ echo '#line 1' && \ cat ../lib/"$@" ) > "$@" $(LIBASM): $(patsubst %,../lib/%,$(LIBASM)) ( echo '/******** GENERATED FILE ********/' && \ echo '#line 1' && \ cat ../lib/"$@" ) > "$@" $(DAEMONSRCS) $(HASHSRCS): $(patsubst %,../daemon/%,$(DAEMONSRCS)) $(patsubst %,../daemon/%,$(HASHSRCS)) ( echo '/******** GENERATED FILE ********/' && \ echo '#line 1' && \ cat ../daemon/"$@" ) > "$@" %.8: ../docs/%.md cat "$<" | sed '/^# /d; s/^##/#/' | \ pandoc -s -t man \ -M "footer:$(RTPENGINE_VERSION)" \ -M "date:$(BUILD_DATE)" \ -o "$@" resample.c codeclib.strhash.c mix.c packet.c: fix_frame_channel_layout.h ifeq ($(with_transcoding),yes) codec.c: dtmf_rx_fillin.h media_player.c codec.c test-resample.c: fix_frame_channel_layout.h endif t38.c: spandsp_logging.h %.strhash.c: %.c ../utils/const_str_hash ../utils/const_str_hash "$<" < "$<" > "$@" $(BUILD_TEST_ALTS): $(wildcard ../lib/$(subst .h,-*,$(BUILD_TEST_ALTS))) ../utils/build_test_wrapper "$@" 2> /dev/null .PHONY: all debug clean install rtpengine-mr12.5.1.22/lib/compat.h000066400000000000000000000007541474347554000166010ustar00rootroot00000000000000#ifndef __COMPAT_H__ #define __COMPAT_H__ #if __DEBUG # define INLINE static inline #else # define INLINE static inline __attribute__((always_inline)) #endif #if defined __has_attribute # define HAS_ATTR(x) __has_attribute(x) #else # define HAS_ATTR(x) 0 #endif #if HAS_ATTR(access) # define ACCESS(...) __attribute__((access(__VA_ARGS__))) #else # define ACCESS(...) #endif #ifndef BENCODE_MALLOC #define BENCODE_MALLOC malloc #define BENCODE_FREE free #endif #include "str.h" #endif rtpengine-mr12.5.1.22/lib/containers.h000066400000000000000000000303671474347554000174660ustar00rootroot00000000000000#ifndef __CONTAINERS_H__ #define __CONTAINERS_H__ #include #include #include #define TYPED_GHASHTABLE_PROTO(type_name, key_type, value_type) \ typedef union { \ GHashTable *ht; \ /* unused members to store the contained types */ \ key_type *__key; \ const key_type *__ckey; \ value_type *__value; \ } type_name; \ typedef union { \ GHashTableIter it; \ /* unused members to store the contained types */ \ type_name __ht; \ } type_name##_iter; \ static inline type_name type_name##_null(void) { \ return (type_name) { NULL }; \ } \ static inline void type_name##_destroy_ptr(type_name *h) { \ if (h->ht) \ g_hash_table_destroy(h->ht); \ h->ht = NULL; \ } #define t_hash_table_is_set(h) ({ \ bool __ret = (h).ht != NULL; \ __ret; \ }) #define t_hash_table_insert(h, k, v) ({ \ __typeof__((h).__key) __k = k; \ __typeof__((h).__value) __v = v; \ g_hash_table_insert((h).ht, __k, __v); \ }) #define t_hash_table_replace(h, k, v) ({ \ __typeof__((h).__key) __k = k; \ __typeof__((h).__value) __v = v; \ g_hash_table_replace((h).ht, __k, __v); \ }) #define t_hash_table_lookup(h, k) ({ \ __typeof__((h).__ckey) __k = k; \ __typeof__((h).__value) __r = g_hash_table_lookup((h).ht, __k); \ __r; \ }) #define t_hash_table_remove(h, k) ({ \ __typeof__((h).__key) __k = k; \ bool __r = g_hash_table_remove((h).ht, __k); \ __r; \ }) #define t_hash_table_remove_all(h) ({ \ g_hash_table_remove_all((h).ht); \ }) #define t_hash_table_steal_extended(h, k, kp, vp) ({ \ __typeof__((h).__key) __k = k; \ __typeof__(&(h).__key) __kp = kp; \ __typeof__(&(h).__value) __vp = vp; \ bool __r = g_hash_table_steal_extended((h).ht, __k, (void **) __kp, (void **) __vp); \ __r; \ }) #define t_hash_table_destroy(h) ({ \ g_hash_table_destroy((h).ht); \ }) #define t_hash_table_destroy_ptr(h) ({ \ if ((h)->ht) \ g_hash_table_destroy((h)->ht); \ (h)->ht = NULL; \ }) #define t_hash_table_size(h) ({ \ unsigned int __ret = g_hash_table_size((h).ht); \ __ret; \ }) #define t_hash_table_foreach_remove(h, f, p) ({ \ gboolean (*__f)(__typeof__((h).__key), __typeof__((h).__value), void *) = f; \ bool __ret = g_hash_table_foreach_remove((h).ht, (GHRFunc) __f, p); \ __ret; \ }) #define t_hash_table_iter_init(i, h) ({ \ __typeof__((i)->__ht) *__h = &(h); \ g_hash_table_iter_init(&(i)->it, __h->ht); \ }) #define t_hash_table_iter_next(i, kp, vp) ({ \ __typeof__(&((i)->__ht).__key) __kp = kp; \ __typeof__(&((i)->__ht).__value) __vp = vp; \ bool __ret = g_hash_table_iter_next(&(i)->it, (void **) __kp, (void **) __vp); \ __ret; \ }) #define TYPED_GHASHTABLE_IMPL(type_name, hash_func, eq_func, key_free_func, value_free_func) \ static inline type_name type_name##_new(void) { \ unsigned int (*__hash_func)(__typeof__(((type_name *)0)->__ckey)) = hash_func; \ gboolean (*__eq_func)(__typeof__(((type_name *)0)->__ckey), __typeof__(((type_name *)0)->__ckey)) = eq_func; \ GHashTable *ht = g_hash_table_new_full((GHashFunc) __hash_func, (GEqualFunc) __eq_func, \ (GDestroyNotify) key_free_func, \ (GDestroyNotify) value_free_func); \ return (type_name) { ht }; \ } \ #define TYPED_GHASHTABLE(type_name, key_type, value_type, hash_func, eq_func, key_free_func, value_free_func) \ TYPED_GHASHTABLE_PROTO(type_name, key_type, value_type) \ TYPED_GHASHTABLE_IMPL(type_name, hash_func, eq_func, key_free_func, value_free_func) \ G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(type_name, type_name##_destroy_ptr) #define TYPED_GHASHTABLE_LOOKUP_INSERT(type_name, key_free_func, value_new_func) \ static inline __typeof__(((type_name *)0)->__value) type_name##_lookup_insert(type_name h, \ __typeof__(((type_name *)0)->__key) k) { \ __typeof__((h).__value) r = t_hash_table_lookup(h, k); \ if (r) { \ void (*free_func)(__typeof__((h).__key)) = key_free_func; \ if (free_func) \ free_func(k); \ return r; \ } \ r = value_new_func(); \ t_hash_table_insert(h, k, r); \ return r; \ } #define TYPED_DIRECT_FUNCS(hash_name, eq_name, type) \ static inline unsigned int hash_name(const type *a) { \ return g_direct_hash(a); \ } \ static inline gboolean eq_name(const type *a, const type *b) { \ return a == b; \ } #define TYPED_GQUEUE(type_name, contained_type) \ typedef union type_name##_slist type_name##_slist; \ union type_name##_slist { \ GSList l; \ struct { \ contained_type *data; \ type_name##_slist *next; \ }; \ }; \ /* ensure that our union overlaps the original struct perfectly */ \ static_assert(sizeof(GSList) == sizeof(type_name##_slist), "sizeof slist type mismatch"); \ static_assert(G_STRUCT_OFFSET(GSList, data) == G_STRUCT_OFFSET(type_name##_slist, data), \ "data offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GSList, next) == G_STRUCT_OFFSET(type_name##_slist, next), \ "next offset mismatch"); \ typedef union type_name##_list type_name##_list; \ union type_name##_list { \ GList l; \ struct { \ union { \ contained_type *data; \ const contained_type *__ct; \ }; \ type_name##_list *next; \ type_name##_list *prev; \ }; \ }; \ /* ensure that our union overlaps the original struct perfectly */ \ static_assert(sizeof(GList) == sizeof(type_name##_list), "sizeof list type mismatch"); \ static_assert(G_STRUCT_OFFSET(GList, data) == G_STRUCT_OFFSET(type_name##_list, data), \ "data offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GList, next) == G_STRUCT_OFFSET(type_name##_list, next), \ "next offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GList, prev) == G_STRUCT_OFFSET(type_name##_list, prev), \ "prev offset mismatch"); \ typedef union { \ GQueue q; \ struct { \ type_name##_list *head; \ type_name##_list *tail; \ unsigned int length; \ }; \ /* unused members to store the contained types */ \ contained_type *__t; \ const contained_type *__ct; \ } type_name##_q; \ /* ensure that our union overlaps the original struct perfectly */ \ static_assert(sizeof(GQueue) == sizeof(type_name##_q), "sizeof queue type mismatch"); \ static_assert(G_STRUCT_OFFSET(GQueue, head) == G_STRUCT_OFFSET(type_name##_q, head), \ "head offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GQueue, tail) == G_STRUCT_OFFSET(type_name##_q, tail), \ "tail offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GQueue, length) == G_STRUCT_OFFSET(type_name##_q, length), \ "length offset mismatch"); \ static inline type_name##_q *type_name##_q_new(void) { \ GQueue *q = g_queue_new(); \ return (type_name##_q *) q; \ } \ static inline void type_name##_q_clear(type_name##_q *q) { \ g_queue_clear(&q->q); \ } #define TYPED_GQUEUE_INIT { .q = G_QUEUE_INIT } #define t_queue_init(Q) ({ \ (Q)->q = (GQueue) G_QUEUE_INIT; \ }) #define t_queue_pop_head(Q) ({ \ __typeof__((Q)->__t) __ret = g_queue_pop_head(&(Q)->q); \ __ret; \ }) #define t_queue_pop_tail(Q) ({ \ __typeof__((Q)->__t) __ret = g_queue_pop_tail(&(Q)->q); \ __ret; \ }) #define t_queue_peek_head(Q) ({ \ __typeof__((Q)->__t) __ret = g_queue_peek_head(&(Q)->q); \ __ret; \ }) #define t_queue_peek_tail(Q) ({ \ __typeof__((Q)->__t) __ret = g_queue_peek_tail(&(Q)->q); \ __ret; \ }) #define t_queue_peek_nth(Q, n) ({ \ __typeof__((Q)->__t) __ret = g_queue_peek_nth(&(Q)->q, n); \ __ret; \ }) #define t_queue_push_head(Q, e) ({ \ __typeof__((Q)->__t) __e = e; \ g_queue_push_head(&(Q)->q, __e); \ }) #define t_queue_push_tail(Q, e) ({ \ __typeof__((Q)->__t) __e = e; \ g_queue_push_tail(&(Q)->q, __e); \ }) #define t_queue_insert_before(Q, l, e) ({ \ __typeof__((Q)->__t) __e = e; \ __typeof__((Q)->head) __l = l; \ g_queue_insert_before(&(Q)->q, (GList *) __l, __e); \ }) #define t_queue_sort(Q, f, d) ({ \ int (*__f)(__typeof__((Q)->__ct), __typeof__((Q)->__ct), void *) = f; \ g_queue_sort(&(Q)->q, (GCompareDataFunc) __f, d); \ }) #define t_queue_insert_sorted(Q, e, f, d) ({ \ __typeof__((Q)->__t) __e = e; \ int (*__f)(__typeof__((Q)->__ct), __typeof__((Q)->__ct), void *) = f; \ g_queue_insert_sorted(&(Q)->q, __e, (GCompareDataFunc) __f, d); \ }) #define t_queue_truncate(Q, n) ({ \ unsigned int __n = n; \ while ((Q)->length > __n) \ t_queue_pop_tail(Q); \ }) #define t_queue_find(Q, e) ({ \ __typeof__((Q)->__t) __e = e; \ GList *__l = g_queue_find(&(Q)->q, __e); \ __typeof__((Q)->head) __ret = (__typeof__((Q)->head)) __l; \ __ret; \ }) #define t_queue_remove(Q, e) ({ \ __typeof__((Q)->__t) __e = e; \ bool __ret = g_queue_remove(&(Q)->q, __e); \ __ret; \ }) #define t_queue_delete_link(Q, L) ({ \ __typeof__((Q)->head) __l = L; \ g_queue_delete_link(&(Q)->q, &(__l)->l); \ }) #define t_queue_find_custom(Q, e, f) ({ \ int (*__f)(__typeof__((Q)->__ct), const void *) = f; \ GList *__l = g_queue_find_custom(&(Q)->q, e, (GCompareFunc) __f); \ __typeof__((Q)->head) __ret = (__typeof__((Q)->head)) __l; \ __ret; \ }) #define t_list_find_custom(L, e, f) ({ \ int (*__f)(__typeof__((L)->__ct), const void *) = f; \ GList *__l = g_list_find_custom(&(L)->l, e, (GCompareFunc) __f); \ __typeof__(L) __ret = (__typeof__(L)) __l; \ __ret; \ }) #define t_queue_clear(Q) ({ \ g_queue_clear(&(Q)->q); \ }) #define t_queue_clear_full(Q, f) ({ \ void (*__f)(__typeof__((Q)->__t)) = f; \ g_queue_clear_full(&(Q)->q, (GDestroyNotify) __f); \ }) #define t_queue_free(Q) ({ \ g_queue_free(&(Q)->q); \ }) #define t_queue_free_full(Q, f) ({ \ void (*__f)(__typeof__((Q)->__t)) = f; \ g_queue_free_full(&(Q)->q, (GDestroyNotify) __f); \ }) #define t_queue_move(dst, src) ({ \ __typeof__(dst) __dst = dst; \ __typeof__(src) __src = src; \ if (!__src->length) \ ; \ else if (!__dst->length) { \ *__dst = *__src; \ t_queue_init(__src); \ } \ else { \ __dst->tail->next = __src->head; \ __src->head->prev = __dst->tail; \ __dst->tail = __src->tail; \ __dst->length += __src->length; \ t_queue_init(__src); \ } \ }) #define t_queue_append(dst, src) ({ \ __typeof__(dst) __dst = dst; \ __typeof__(src) __src = src; \ if (__dst && __src) \ for (__auto_type __l = __src->head; __l; __l = __l->next) \ t_queue_push_tail(__dst, __l->data); \ }) #define t_queue_get_length(Q) ((Q)->length) #define t_list_prepend(L, e) ({ \ __typeof__((L)->data) __e = e; \ GList *__r = g_list_prepend(&(L)->l, __e); \ __typeof__(L) __ret = (__typeof__(L)) __r; \ __ret; \ }) #define t_list_insert_before_link(a, b, c) ({ \ GList *__r = g_list_insert_before_link(&(a)->l, &(b)->l, &(c)->l); \ __typeof__(a) __ret = (__typeof__(a)) __r; \ __ret; \ }) #define t_slist_prepend(L, e) ({ \ __typeof__((L)->data) __e = e; \ GSList *__r = g_slist_prepend(&(L)->l, __e); \ __typeof__(L) __ret = (__typeof__(L)) __r; \ __ret; \ }) #define t_list_delete_link(L, k) ({ \ GList *__r = g_list_delete_link(&(L)->l, &(k)->l); \ __typeof__(L) __ret = (__typeof__(L)) __r; \ __ret; \ }) #define t_list_remove_link(L, k) ({ \ GList *__r = g_list_remove_link(&(L)->l, &(k)->l); \ __typeof__(L) __ret = (__typeof__(L)) __r; \ __ret; \ }) #define t_slist_delete_link(L, k) ({ \ GSList *__r = g_slist_delete_link(&(L)->l, &(k)->l); \ __typeof__(L) __ret = (__typeof__(L)) __r; \ __ret; \ }) #define TYPED_GPTRARRAY_FULL(type_name, contained_type, free_func) \ typedef union { \ GPtrArray a; \ struct { \ contained_type **pdata; \ unsigned int len; \ }; \ } type_name; \ static_assert(sizeof(GPtrArray) == sizeof(type_name), "sizeof ptrarray type mismatch"); \ static_assert(G_STRUCT_OFFSET(GPtrArray, pdata) == G_STRUCT_OFFSET(type_name, pdata), \ "pdata offset mismatch"); \ static_assert(G_STRUCT_OFFSET(GPtrArray, len) == G_STRUCT_OFFSET(type_name, len), \ "len offset mismatch"); \ static inline type_name *type_name##_new_sized(unsigned int len) { \ void (*func)(contained_type *) = free_func; \ return (type_name *) g_ptr_array_new_full(len, (GDestroyNotify) func); \ } \ static inline type_name *type_name##_new(void) { \ return type_name##_new_sized(0); \ } #define TYPED_GPTRARRAY(type_name, contained_type) \ TYPED_GPTRARRAY_FULL(type_name, contained_type, NULL) #define t_ptr_array_set_size(A, l) ({ \ g_ptr_array_set_size(&(A)->a, l); \ }) #define t_ptr_array_free(A, fd) ({ \ g_ptr_array_free(&(A)->a, fd); \ }) #define t_ptr_array_add(A, e) ({ \ __typeof__(*(A)->pdata) __e = e; \ g_ptr_array_add(&(A)->a, __e); \ }) #endif rtpengine-mr12.5.1.22/lib/dtmf_rx_fillin-01.h000066400000000000000000000003161474347554000205260ustar00rootroot00000000000000#include #include #include #include #include #include #include #include rtpengine-mr12.5.1.22/lib/dtmf_rx_fillin-02.h000066400000000000000000000004501474347554000205260ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include "compat.h" INLINE void dtmf_rx_fillin(dtmf_rx_state_t *dsp, int n) { // stub } rtpengine-mr12.5.1.22/lib/dtmf_rx_fillin-test.c000066400000000000000000000001611474347554000212560ustar00rootroot00000000000000#include "dtmf_rx_fillin.h" int main(void) { dtmf_rx_state_t *dsp = NULL; dtmf_rx_fillin(dsp, 0); return 0; } rtpengine-mr12.5.1.22/lib/dtmflib.c000066400000000000000000000134671474347554000167370ustar00rootroot00000000000000#include "dtmflib.h" #include #include "compat.h" #include "log.h" struct dtmf_freq { unsigned int prim, sec; }; static const struct dtmf_freq dtmf_freqs[] = { { 941, 1336 }, /* 0 */ { 697, 1209 }, /* 1 */ { 697, 1336 }, /* 2 */ { 697, 1477 }, /* 3 */ { 770, 1209 }, /* 4 */ { 770, 1336 }, /* 5 */ { 770, 1477 }, /* 6 */ { 852, 1209 }, /* 7 */ { 852, 1336 }, /* 8 */ { 852, 1477 }, /* 9 */ { 941, 1209 }, /* 10 = * */ { 941, 1477 }, /* 11 = # */ { 697, 1633 }, /* 12 = A */ { 770, 1633 }, /* 13 = B */ { 852, 1633 }, /* 14 = C */ { 941, 1633 }, /* 15 = D */ }; INLINE double freq2iter(unsigned int hz, unsigned int sample_rate) { double ret = hz; ret *= 2 * M_PI; ret /= sample_rate; return ret; } // pow(1.122018, x) static const double vol_table[] = { 1.0, 1.122018, 1.2589243923239999, 1.4125358288265897, 1.5848906255883524, 1.778275809941392, 1.9952574677188206, 2.238714793414936, 2.5118782950778393, 2.818372660886647, 3.1622648562227136, 3.5481180894492965, 3.9810523624877208, 4.466812409653747, 5.011843926254878, 5.623379098448646, 6.309532569283152, 7.079409114321943, 7.9432244556332785, 8.91244081726074, 9.99991902090126, 11.22008913999359, 12.589141976677327, 14.12524390238754, 15.848777912869062, 17.78261409624152, 19.952413103036715, 22.38696664504305, 25.118579541137912, 28.183498379588475, 31.6223924848691, 35.480893571087854, 39.810201242844855, 44.667762378094295, 50.1180334079446, 56.23333560831519, 63.094814752570585, 70.79351785904974, 79.43160132117526, 89.12368645118244, 99.9983804245828, 112.19998280722955, 125.89040030940208, 141.25129517435468, 158.4864957089391, 177.82470094235242, 199.52251530193638, 223.86785357404804, 251.18376133144622, 281.8327015215866, 316.22136409584755, 354.8060625000947, 398.0987886342312, 446.6740066258028, 501.17627556627, 562.3288023583151, 630.943038164472, 707.9294457952245, 794.3095809122663, 891.2296473560191, 999.9757064671057, 1121.9907422188091, 1258.8938086028636, 1412.501513340968, 1584.852122995806, 1778.2326093395081, 1995.2089958658962, 2238.660407123461, 2511.8172726798516, 2818.3041926577016, 3162.188033637409, 3548.031893125778, 3980.955648661199, 4466.703894999541, 5011.722170859594, 5623.242486703541, 6309.379288446133, 7079.237130463753, 7943.031486648679, 8912.224302586577, 9999.676087539585, 11219.81656438899, 12588.836141942606, 14124.900750310158, 15848.392890061503, 17782.182093721025, 19951.928388432676, 22386.422786532454, 25117.969322099572, 28182.813702843516, 31621.624265237075, 35480.03161483277, 39809.23411241143, 44666.67724033965, 50116.815863851414, 56231.96950192683, 63093.28195661294, 70791.79803439493, 79429.67164695573, 89121.52132197398, 99995.95111063859, 112197.2570732565, 125887.34198682109, 141247.86368136902, 158482.6455120423, 177820.38095213068, 199517.66819514774, 223862.4150329833, 251177.65919047783, 281825.85480958153, 316213.68196173705, 354797.44300734426, 398089.11740821437, 446663.1553361299, 501164.10022393375, 562315.1414050576, 630927.7103290199, 707912.2476879463, 794290.2843263341, 891207.9962392647, 999951.4135243873, 1121963.485099806, 1258863.225624714, 1412467.1986889902, 1584813.6213386236, 1778189.4097871196, 1995160.5251905243, 2238606.0221532215, }; // only packed audio supported #define freq_samples_x(type, mult) \ INLINE void freq_samples_ ## type(type *samples, unsigned long offset, unsigned long num, unsigned int prim_freq, \ unsigned int sec_freq, unsigned int volume, unsigned int sample_rate, unsigned int channels) \ { \ if (!channels) \ channels = 1; \ \ double vol; \ if (volume < G_N_ELEMENTS(vol_table)) \ vol = vol_table[volume]; \ else \ vol = pow(1.122018, volume); \ \ if (sec_freq) /* halve volume of we have two tones */ \ vol *= 2.0; \ \ double prim_iter = freq2iter(prim_freq, sample_rate); \ double sec_iter = sec_freq ? freq2iter(sec_freq, sample_rate) : 0; \ \ num += offset; /* end here */ \ while (offset < num) { \ double prim = sin(prim_iter * offset) / vol; \ type sample; \ if (!sec_freq) \ sample = prim * mult; \ else { \ double sec = sin(sec_iter * offset) / vol; \ sample = prim * mult + sec * mult; \ } \ for (unsigned int ch = 0; ch < channels; ch++) \ *samples++ = sample; \ offset++; \ } \ } freq_samples_x(int16_t, 32767.0) freq_samples_x(int32_t, 2147483647.0) freq_samples_x(double, 1.0) freq_samples_x(float, 1.0) #define tone_samples_x(type) \ void tone_samples_ ## type(type *samples, unsigned long offset, unsigned long num, unsigned int freq, \ unsigned int volume, unsigned int sample_rate, unsigned int channels) \ { \ freq_samples_ ## type(samples, offset, num, freq, 0, volume, sample_rate, channels); \ } tone_samples_x(int16_t) tone_samples_x(int32_t) tone_samples_x(double) tone_samples_x(float) #define dtmf_samples_x(type) \ void dtmf_samples_ ## type(type *samples, unsigned long offset, unsigned long num, unsigned int event, \ unsigned int volume, unsigned int sample_rate, unsigned int channels) \ { \ const struct dtmf_freq *df; \ \ if (event == 0xff) { \ /* pause - silence samples */ \ memset(samples, 0, num * sizeof(type)); \ return; \ } \ \ if (event >= G_N_ELEMENTS(dtmf_freqs)) { \ ilog(LOG_WARN | LOG_FLAG_LIMIT, "Unsupported DTMF event %u", event); \ memset(samples, 0, num * sizeof(type)); \ return; \ } \ df = &dtmf_freqs[event]; \ \ freq_samples_ ## type(samples, offset, num, df->prim, df->sec, volume, sample_rate, channels); \ } \ dtmf_samples_x(int16_t) dtmf_samples_x(int32_t) dtmf_samples_x(double) dtmf_samples_x(float) void dtmf_samples_int16_t_mono(void *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate) { dtmf_samples_int16_t(buf, offset, num, event, volume, sample_rate, 1); } rtpengine-mr12.5.1.22/lib/dtmflib.h000066400000000000000000000036231474347554000167350ustar00rootroot00000000000000#ifndef _DTMFLIB_H_ #define _DTMFLIB_H_ #include #include struct telephone_event_payload { uint8_t event; #if G_BYTE_ORDER == G_LITTLE_ENDIAN unsigned volume:6; unsigned r:1; unsigned end:1; #elif G_BYTE_ORDER == G_BIG_ENDIAN unsigned end:1; unsigned r:1; unsigned volume:6; #else #error "byte order unknown" #endif uint16_t duration; } __attribute__ ((packed)); void dtmf_samples_int16_t_mono(void *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate); void tone_samples_int16_t(int16_t *buf, unsigned long offset, unsigned long num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels); void tone_samples_int32_t(int32_t *buf, unsigned long offset, unsigned long num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels); void tone_samples_double(double *buf, unsigned long offset, unsigned long num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels); void tone_samples_float(float *buf, unsigned long offset, unsigned long num, unsigned int freq, unsigned int volume, unsigned int sample_rate, unsigned int channels); void dtmf_samples_int16_t(int16_t *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels); void dtmf_samples_int32_t(int32_t *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels); void dtmf_samples_double(double *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels); void dtmf_samples_float(float *buf, unsigned long offset, unsigned long num, unsigned int event, unsigned int volume, unsigned int sample_rate, unsigned int channels); #endif rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-01.h000066400000000000000000000037461474347554000225650ustar00rootroot00000000000000#include #include #include "compat.h" #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100) // both `channel_layout` and `channels` are deprecated in favour of `ch_layout` #define CH_LAYOUT ch_layout #define CH_LAYOUT_T AVChannelLayout #define DEF_CH_LAYOUT(d,n) av_channel_layout_default(d,n) #define CH_LAYOUT_EQ(a,b) (av_channel_layout_compare(&(a),&(b)) == 0) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) swr_alloc_set_opts2(a,&(b),c,d,&(e),f,g,h,i) #define SET_CHANNELS(a,b) ((void)0) #define MONO_LAYOUT AV_CHANNEL_LAYOUT_MONO #define GET_CHANNELS(x) (x)->ch_layout.nb_channels #define CH_LAYOUT_EXTRACT_MASK(a,b) (1ULL << av_channel_layout_channel_from_index(&(a),b)) #define CH_LAYOUT_MASK(a) (a)->u.mask #define CH_LAYOUT_FROM_MASK(a,b) av_channel_layout_from_mask(a,b) #define CH_LAYOUT_PRINT(a,b) av_channel_layout_describe(&(a),b,sizeof(b)) #else #define CH_LAYOUT channel_layout #define CH_LAYOUT_T uint64_t #define DEF_CH_LAYOUT(d,n) *(d) = av_get_default_channel_layout(n) #define CH_LAYOUT_EQ(a,b) ((a) == (b)) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) *(a) = swr_alloc_set_opts(NULL,b,c,d,e,f,g,h,i) #define SET_CHANNELS(a,b) (a)->channels = (b) #define MONO_LAYOUT AV_CH_LAYOUT_MONO #define GET_CHANNELS(x) (x)->channels #define CH_LAYOUT_EXTRACT_MASK(a,b) av_channel_layout_extract_channel(a,b) #define CH_LAYOUT_MASK(a) (a) #define CH_LAYOUT_FROM_MASK(a,b) *(a) = (b) #define CH_LAYOUT_PRINT(a,b) snprintf(b, sizeof(b), "0x%" PRIx64, a) #endif INLINE void fix_frame_channel_layout(AVFrame *frame) { #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 28, 100) return; #else if (frame->channel_layout) { #if LIBAVUTIL_VERSION_MAJOR < 56 if (!frame->channels) frame->channels = av_frame_get_channels(frame); #endif return; } #if LIBAVUTIL_VERSION_MAJOR < 56 frame->channel_layout = av_get_default_channel_layout(av_frame_get_channels(frame)); #else frame->channel_layout = av_get_default_channel_layout(frame->channels); #endif #endif } rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-02.h000066400000000000000000000021271474347554000225560ustar00rootroot00000000000000#include #include #include "compat.h" #define CH_LAYOUT channel_layout #define CH_LAYOUT_T uint64_t #define DEF_CH_LAYOUT(d,n) *(d) = av_get_default_channel_layout(n) #define CH_LAYOUT_EQ(a,b) ((a) == (b)) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) *(a) = swr_alloc_set_opts(NULL,b,c,d,e,f,g,h,i) #define SET_CHANNELS(a,b) (a)->channels = (b) #define MONO_LAYOUT AV_CH_LAYOUT_MONO #define GET_CHANNELS(x) (x)->channels #define CH_LAYOUT_EXTRACT_MASK(a,b) av_channel_layout_extract_channel(a,b) #define CH_LAYOUT_MASK(a) (a) #define CH_LAYOUT_FROM_MASK(a,b) *(a) = (b) #define CH_LAYOUT_PRINT(a,b) snprintf(b, sizeof(b), "0x%" PRIx64, a) INLINE void fix_frame_channel_layout(AVFrame *frame) { if (frame->channel_layout) { #if LIBAVUTIL_VERSION_MAJOR < 56 if (!frame->channels) frame->channels = av_frame_get_channels(frame); #endif return; } #if LIBAVUTIL_VERSION_MAJOR < 56 frame->channel_layout = av_get_default_channel_layout(av_frame_get_channels(frame)); #else frame->channel_layout = av_get_default_channel_layout(frame->channels); #endif } rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-03.h000066400000000000000000000016531474347554000225620ustar00rootroot00000000000000#include #include #include "compat.h" #define CH_LAYOUT channel_layout #define CH_LAYOUT_T uint64_t #define DEF_CH_LAYOUT(d,n) *(d) = av_get_default_channel_layout(n) #define CH_LAYOUT_EQ(a,b) ((a) == (b)) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) *(a) = swr_alloc_set_opts(NULL,b,c,d,e,f,g,h,i) #define SET_CHANNELS(a,b) (a)->channels = (b) #define MONO_LAYOUT AV_CH_LAYOUT_MONO #define GET_CHANNELS(x) (x)->channels #define CH_LAYOUT_EXTRACT_MASK(a,b) av_channel_layout_extract_channel(a,b) #define CH_LAYOUT_MASK(a) (a) #define CH_LAYOUT_FROM_MASK(a,b) *(a) = (b) #define CH_LAYOUT_PRINT(a,b) snprintf(b, sizeof(b), "0x%" PRIx64, a) INLINE void fix_frame_channel_layout(AVFrame *frame) { if (frame->channel_layout) { if (!frame->channels) frame->channels = av_frame_get_channels(frame); return; } frame->channel_layout = av_get_default_channel_layout(frame->channels); } rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-04.h000066400000000000000000000015501474347554000225570ustar00rootroot00000000000000#include #include #include "compat.h" #define CH_LAYOUT channel_layout #define CH_LAYOUT_T uint64_t #define DEF_CH_LAYOUT(d,n) *(d) = av_get_default_channel_layout(n) #define CH_LAYOUT_EQ(a,b) ((a) == (b)) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) *(a) = swr_alloc_set_opts(NULL,b,c,d,e,f,g,h,i) #define SET_CHANNELS(a,b) (a)->channels = (b) #define MONO_LAYOUT AV_CH_LAYOUT_MONO #define GET_CHANNELS(x) (x)->channels #define CH_LAYOUT_EXTRACT_MASK(a,b) av_channel_layout_extract_channel(a,b) #define CH_LAYOUT_MASK(a) (a) #define CH_LAYOUT_FROM_MASK(a,b) *(a) = (b) #define CH_LAYOUT_PRINT(a,b) snprintf(b, sizeof(b), "0x%" PRIx64, a) INLINE void fix_frame_channel_layout(AVFrame *frame) { if (frame->channel_layout) return; frame->channel_layout = av_get_default_channel_layout(av_frame_get_channels(frame)); } rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-05.h000066400000000000000000000015331474347554000225610ustar00rootroot00000000000000#include #include #include "compat.h" #define CH_LAYOUT channel_layout #define CH_LAYOUT_T uint64_t #define DEF_CH_LAYOUT(d,n) *(d) = av_get_default_channel_layout(n) #define CH_LAYOUT_EQ(a,b) ((a) == (b)) #define SWR_ALLOC_SET_OPTS(a,b,c,d,e,f,g,h,i) *(a) = swr_alloc_set_opts(NULL,b,c,d,e,f,g,h,i) #define SET_CHANNELS(a,b) (a)->channels = (b) #define MONO_LAYOUT AV_CH_LAYOUT_MONO #define GET_CHANNELS(x) (x)->channels #define CH_LAYOUT_EXTRACT_MASK(a,b) av_channel_layout_extract_channel(a,b) #define CH_LAYOUT_MASK(a) (a) #define CH_LAYOUT_FROM_MASK(a,b) *(a) = (b) #define CH_LAYOUT_PRINT(a,b) snprintf(b, sizeof(b), "0x%" PRIx64, a) INLINE void fix_frame_channel_layout(AVFrame *frame) { if (frame->channel_layout) return; frame->channel_layout = av_get_default_channel_layout(frame->channels); } rtpengine-mr12.5.1.22/lib/fix_frame_channel_layout-test.c000066400000000000000000000001661474347554000233100ustar00rootroot00000000000000#include "fix_frame_channel_layout.h" int main(void) { AVFrame *f = NULL; fix_frame_channel_layout(f); return 0; } rtpengine-mr12.5.1.22/lib/g729.Makefile000066400000000000000000000027771474347554000173030ustar00rootroot00000000000000ifeq (,$(filter pkg.ngcp-rtpengine.nobcg729,${DEB_BUILD_PROFILES})) # look for bcg729 # system pkg-config ifeq ($(shell pkg-config --exists libbcg729 && echo yes),yes) have_bcg729 := yes bcg729_inc := $(shell pkg-config --cflags libbcg729) bcg729_lib := $(shell pkg-config --libs libbcg729) else # system generic ifneq (,$(wildcard /usr/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_lib := -lbcg729 else # /usr/src ifneq (,$(wildcard /usr/src/bcg729/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_inc := -I/usr/src/bcg729/include/ bcg729_lib := -L/usr/src/bcg729/src/ -lbcg729 else # rfuchs dev ifneq (,$(wildcard $(HOME)/src/bcg729/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_inc := -I$(HOME)/src/bcg729/include/ bcg729_lib := -L$(HOME)/src/bcg729/src/ -lbcg729 else # home directory ifneq (,$(wildcard $(HOME)/bcg729/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_inc := -I$(HOME)/bcg729/include/ bcg729_lib := -L$(HOME)/bcg729/src/ -lbcg729 else # included toplevel ifneq (,$(wildcard ../bcg729/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_inc := -I../bcg729/include/ bcg729_lib := -L../bcg729/src/ -lbcg729 else # /usr/local/include when installing from git ifneq (,$(wildcard /usr/local/include/bcg729/decoder.h)) have_bcg729 := yes bcg729_inc := -I/usr/local/include/ bcg729_lib := -L/usr/local/lib64/ -lbcg729 endif endif endif endif endif endif endif endif ifeq ($(have_bcg729),yes) CFLAGS+= -DHAVE_BCG729 CFLAGS+= $(bcg729_inc) endif ifeq ($(have_bcg729),yes) LDLIBS+= $(bcg729_lib) endif rtpengine-mr12.5.1.22/lib/lib.Makefile000066400000000000000000000050231474347554000173440ustar00rootroot00000000000000CC ?= gcc ifeq ($(RTPENGINE_ROOT_DIR),) RTPENGINE_ROOT_DIR=.. endif HAVE_DPKG_PARSECHANGELOG?=$(shell which dpkg-parsechangelog 2>/dev/null) ifeq ($(RELEASE_DATE),) ifneq ($(HAVE_DPKG_PARSECHANGELOG),) RELEASE_DATE=$(shell date -u -d "@$$(dpkg-parsechangelog -l$(RTPENGINE_ROOT_DIR)/debian/changelog -STimestamp)" '+%F') endif ifeq ($(RELEASE_DATE),) RELEASE_DATE=undefined endif endif ifeq ($(RTPENGINE_VERSION),) ifneq ($(HAVE_DPKG_PARSECHANGELOG),) DPKG_PRSCHNGLG=$(shell dpkg-parsechangelog -l$(RTPENGINE_ROOT_DIR)/debian/changelog | awk '/^Version: / {print $$2}') endif GIT_BR_COMMIT=git-$(shell git rev-parse --abbrev-ref --symbolic-full-name HEAD 2> /dev/null)-$(shell git rev-parse --short HEAD 2> /dev/null) ifneq ($(DPKG_PRSCHNGLG),) RTPENGINE_VERSION+=$(DPKG_PRSCHNGLG) endif ifneq ($(GIT_BR_COMMIT),git--) RTPENGINE_VERSION+=$(GIT_BR_COMMIT) endif ifeq ($(RTPENGINE_VERSION),) RTPENGINE_VERSION+=undefined endif endif CFLAGS+= -DRTPENGINE_VERSION="\"$(RTPENGINE_VERSION)\"" # look for libsystemd ifeq ($(shell pkg-config --exists libsystemd && echo yes),yes) have_libsystemd := yes endif ifeq ($(have_libsystemd),yes) CFLAGS+= $(shell pkg-config --cflags libsystemd) CFLAGS+= -DHAVE_LIBSYSTEMD LDLIBS+= $(shell pkg-config --libs libsystemd) endif # look for liburing ifeq (,$(filter pkg.ngcp-rtpengine.nouring,${DEB_BUILD_PROFILES})) ifeq ($(shell pkg-config --atleast-version=2.3 liburing && echo yes),yes) have_liburing := yes endif ifeq ($(have_liburing),yes) CFLAGS+= $(shell pkg-config --cflags liburing) CFLAGS+= -DHAVE_LIBURING LDLIBS+= $(shell pkg-config --libs liburing) endif endif ifeq ($(DBG),yes) CFLAGS+= -D__DEBUG=1 endif # keep debugging symbols for backtrace_symbols() LDFLAGS += -rdynamic ifneq ($(DBG),yes) ifeq (,$(filter $(CFLAGS),-O0)) DPKG_BLDFLGS= $(shell which dpkg-buildflags 2>/dev/null) ifneq ($(DPKG_BLDFLGS),) # support http://wiki.debian.org/Hardening for >=wheezy CFLAGS+= $(shell dpkg-buildflags --get CFLAGS) CPPFLAGS+= $(shell dpkg-buildflags --get CPPFLAGS) LDFLAGS+= $(shell dpkg-buildflags --get LDFLAGS) LDLIBS+= $(shell dpkg-buildflags --get LDLIBS) endif CFLAGS+=-O3 -flto=auto -ffat-lto-objects LDFLAGS+=-flto=auto endif endif DATE_FMT = +%Y-%m-%d ifdef SOURCE_DATE_EPOCH BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u "$(DATE_FMT)") else BUILD_DATE ?= $(shell date "$(DATE_FMT)") endif rtpengine-mr12.5.1.22/lib/loglib.c000066400000000000000000000136551474347554000165650ustar00rootroot00000000000000#include "loglib.h" #include #include #include #include #include #include #include #include #include #include #include "auxlib.h" struct log_limiter_entry { char *prefix; char *msg; }; typedef struct _fac_code { char *c_name; int c_val; } _fac_code_t; static write_log_t log_both; unsigned int max_log_line_length = 500; write_log_t *write_log = (write_log_t *) log_both; #define ll(system, descr) #system, const char * const log_level_names[] = { #include "loglevels.h" NULL }; #undef ll #define ll(system, descr) descr, const char * const log_level_descriptions[] = { #include "loglevels.h" NULL }; #undef ll static const _fac_code_t _facilitynames[] = { { "auth", LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FTP }, { "kern", LOG_KERN }, { "lpr", LOG_LPR }, { "mail", LOG_MAIL }, { "news", LOG_NEWS }, { "syslog", LOG_SYSLOG }, { "user", LOG_USER }, { "uucp", LOG_UUCP }, { "local0", LOG_LOCAL0 }, { "local1", LOG_LOCAL1 }, { "local2", LOG_LOCAL2 }, { "local3", LOG_LOCAL3 }, { "local4", LOG_LOCAL4 }, { "local5", LOG_LOCAL5 }, { "local6", LOG_LOCAL6 }, { "local7", LOG_LOCAL7 }, { NULL, -1 } }; static const char* const prio_str[] = { "EMERG", "ALERT", "CRIT", "ERR", "WARNING", "NOTICE", "INFO", "DEBUG" }; int ilog_facility = LOG_DAEMON; static GHashTable *__log_limiter; static pthread_mutex_t __log_limiter_lock; static unsigned int __log_limiter_count; static void vlog_to_stderr(int facility_priority, const char *format, va_list ap) { char *msg; int ret; struct timeval tv_now; ret = vasprintf(&msg, format, ap); if (ret < 0) { fprintf(stderr,"ERR: Failed to print log message - message dropped\n"); return; } if (rtpe_common_config_ptr->no_log_timestamps) fprintf(stderr, "%s\n", msg); else { gettimeofday(&tv_now, NULL); fprintf(stderr, "[%lu.%06lu] %s\n", (unsigned long) tv_now.tv_sec, (unsigned long) tv_now.tv_usec, msg); } free(msg); } void log_to_stderr(int facility_priority, const char *format, ...) { va_list ap; va_start(ap, format); vlog_to_stderr(facility_priority, format, ap); va_end(ap); } static void log_both(int facility_priority, const char *format, ...) { va_list ap; va_start(ap, format); vsyslog(facility_priority, format, ap); va_end(ap); if (LOG_LEVEL_MASK(facility_priority) <= LOG_WARN) { va_start(ap, format); vlog_to_stderr(facility_priority, format, ap); va_end(ap); } } void __vpilog(int prio, const char *prefix, const char *fmt, va_list ap) { g_autoptr(char) msg = NULL; char *piece; const char *infix = ""; int len, xprio; const char *prio_prefix; xprio = LOG_LEVEL_MASK(prio); prio_prefix = prio_str[prio & LOG_PRIMASK]; if (!prefix) prefix = ""; len = g_vasprintf(&msg, fmt, ap); while (len > 0 && msg[len-1] == '\n') len--; if ((prio & LOG_FLAG_LIMIT)) { time_t when; struct log_limiter_entry lle, *llep; lle.prefix = (char *) prefix; lle.msg = msg; pthread_mutex_lock(&__log_limiter_lock); if (__log_limiter_count > 10000) { g_hash_table_remove_all(__log_limiter); __log_limiter_count = 0; } time_t now = time(NULL); when = (time_t) GPOINTER_TO_UINT(g_hash_table_lookup(__log_limiter, &lle)); if (!when || (now - when) >= 15) { llep = g_slice_alloc0(sizeof(*llep)); llep->prefix = strdup(prefix); llep->msg = strdup(msg); g_hash_table_insert(__log_limiter, llep, GUINT_TO_POINTER(now)); __log_limiter_count++; when = 0; } pthread_mutex_unlock(&__log_limiter_lock); if (when) return; } piece = msg; while (1) { unsigned int max_line_len = rtpe_common_config_ptr->max_log_line_length; unsigned int skip_len = max_line_len; if (rtpe_common_config_ptr->split_logs) { char *newline = strchr(piece, '\n'); if (newline) { unsigned int nl_pos = newline - piece; if (!max_line_len || nl_pos < max_line_len) { max_line_len = nl_pos; skip_len = nl_pos + 1; if (nl_pos >= 1 && piece[nl_pos-1] == '\r') max_line_len--; } } } if (!max_line_len) break; if (len <= max_line_len) break; write_log(xprio, "%s: %s%s%.*s ...", prio_prefix, prefix, infix, max_line_len, piece); len -= skip_len; piece += skip_len; infix = "... "; } write_log(xprio, "%s: %s%s%.*s", prio_prefix, prefix, infix, len, piece); } void __ilog_np(int prio, const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vpilog(prio, NULL, fmt, ap); va_end(ap); } static unsigned int log_limiter_entry_hash(const void *p) { const struct log_limiter_entry *lle = p; return g_str_hash(lle->msg) ^ g_str_hash(lle->prefix); } static int log_limiter_entry_equal(const void *a, const void *b) { const struct log_limiter_entry *A = a, *B = b; if (!g_str_equal(A->msg, B->msg)) return 0; if (!g_str_equal(A->prefix, B->prefix)) return 0; return 1; } static void log_limiter_entry_free(void *p) { struct log_limiter_entry *lle = p; free(lle->prefix); free(lle->msg); g_slice_free1(sizeof(*lle), lle); } void log_init(const char *handle) { pthread_mutex_init(&__log_limiter_lock, NULL); __log_limiter = g_hash_table_new_full(log_limiter_entry_hash, log_limiter_entry_equal, log_limiter_entry_free, NULL); if (!rtpe_common_config_ptr->log_stderr) openlog(handle, LOG_PID | LOG_NDELAY, ilog_facility); } void log_free(void) { g_hash_table_destroy(__log_limiter); pthread_mutex_destroy(&__log_limiter_lock); } int parse_log_facility(const char *name, int *dst) { int i; for (i = 0 ; _facilitynames[i].c_name; i++) { if (strcmp(_facilitynames[i].c_name, name) == 0) { *dst = _facilitynames[i].c_val; return 1; } } return 0; } void print_available_log_facilities(void) { int i; fprintf(stderr, "available facilities:"); for (i = 0 ; _facilitynames[i].c_name; i++) { fprintf(stderr, " %s", _facilitynames[i].c_name); } fprintf(stderr, "\n"); } rtpengine-mr12.5.1.22/lib/loglib.h000066400000000000000000000062471474347554000165710ustar00rootroot00000000000000#ifndef _LOGLIB_H_ #define _LOGLIB_H_ #include /* __USE_TIME_BITS64 */ #include #include #include #include "compat.h" #include "auxlib.h" #ifndef TIME_T_INT_FMT #ifdef __USE_TIME_BITS64 #define TIME_T_INT_FMT PRId64 #else #define TIME_T_INT_FMT "ld" #endif #endif extern int ilog_facility; extern int get_local_log_level(unsigned int); typedef void write_log_t(int facility_priority, const char *format, ...) __attribute__ ((format (printf, 2, 3))); extern write_log_t *write_log; int parse_log_facility(const char *name, int *dst); void print_available_log_facilities (void); void log_to_stderr(int facility_priority, const char *format, ...) __attribute__ ((format (printf, 2, 3))); void log_init(const char *); void log_free(void); void __vpilog(int prio, const char *prefix, const char *fmt, va_list); void __ilog_np(int prio, const char *format, ...) __attribute__ ((format (printf, 2, 3))); #define ll(system, descr) log_level_index_ ## system, enum __loglevels { #include "loglevels.h" ll(LAST, NULL) }; #undef ll #define num_log_levels log_level_index_LAST extern const char * const log_level_names[]; extern const char * const log_level_descriptions[]; #ifndef __DEBUG #define ilogsn(system, prio, fmt, ...) \ do { \ int __loglevel = __get_log_level(system); \ if (LOG_LEVEL_MASK((prio)) > LOG_LEVEL_MASK(__loglevel)) \ break; \ if ((__loglevel & LOG_FLAG_RESTORE) && !((prio) & LOG_FLAG_RESTORE)) \ break; \ __ilog(prio, "[%s] " fmt, log_level_names[system], ##__VA_ARGS__); \ } while (0) #else #define ilogsn(system, prio, fmt, ...) __ilog(prio, "[%s] " fmt, log_level_names[system], ##__VA_ARGS__) #endif #define ilog(prio, fmt, ...) ilogs(core, prio, fmt, ##__VA_ARGS__) #define ilogs(system, prio, fmt, ...) ilogsn(log_level_index_ ## system, prio, fmt, ##__VA_ARGS__) #define LOG_LEVEL_MASK(v) ((v) & 0x0f) #define LOG_FLAG_RESTORE 0x10 #define LOG_FLAG_LIMIT 0x20 #define LOG_FLAG_MAX 0x40 #define LOG_FLAG_MIN 0x80 INLINE int __get_log_level(unsigned int idx) { if (!rtpe_common_config_ptr) return 8; if (idx >= MAX_LOG_LEVELS) return 8; int local_log_level = get_local_log_level(idx); if (local_log_level >= 0) { if ((local_log_level & LOG_FLAG_MAX)) { int level = g_atomic_int_get(&rtpe_common_config_ptr->log_levels[idx]); local_log_level = LOG_LEVEL_MASK(local_log_level); return MIN(level, local_log_level); } if ((local_log_level & LOG_FLAG_MIN)) { int level = g_atomic_int_get(&rtpe_common_config_ptr->log_levels[idx]); local_log_level = LOG_LEVEL_MASK(local_log_level); return MAX(level, local_log_level); } return local_log_level; } return g_atomic_int_get(&rtpe_common_config_ptr->log_levels[idx]); } #define get_log_level(system) __get_log_level(log_level_index_ ## system) #define die(fmt, ...) do { \ char *__msg = g_strdup_printf(fmt, ##__VA_ARGS__); \ fprintf(stderr, "Fatal error: %s\n", __msg); \ ilog(LOG_CRIT, "Fatal error: %s", __msg); \ g_free(__msg); \ exit(-1); \ } while (0) #define die_errno(msg, ...) die(msg ": %s", ##__VA_ARGS__, strerror(errno)) #define LOG_ERROR LOG_ERR #define LOG_WARN LOG_WARNING #endif rtpengine-mr12.5.1.22/lib/mix_buffer.c000066400000000000000000000235371474347554000174430ustar00rootroot00000000000000#ifdef WITH_TRANSCODING #include "mix_buffer.h" #include #include #include #include #include "ssrc.h" typedef void mix_in_fn_t(void *restrict dst, const void *restrict src, unsigned int num); struct mix_buffer_impl { unsigned int sample_size; mix_in_fn_t *mix_in; }; typedef struct { struct ssrc_entry h; // must be first unsigned int write_pos; unsigned int loops; } mix_buffer_ssrc_source; #if defined(__x86_64__) // mix_in_x64_sse2.S mix_in_fn_t s16_mix_in_sse2; // mix_in_x64_avx2.S mix_in_fn_t s16_mix_in_avx2; // mix_in_x64_avx512.S mix_in_fn_t s16_mix_in_avx512; #endif static void s16_mix_in_c(void *restrict dst, const void *restrict src, unsigned int samples) { int16_t *d = dst; const int16_t *s = src; for (unsigned int i = 0; i < samples; i++) { int16_t orig = d[i]; d[i] += s[i]; // saturate/clamp if (d[i] < orig && s[i] > 0) d[i] = 32767; else if (d[i] > orig && s[i] < 0) d[i] = -32768; } } #if defined(__x86_64__) && !defined(ASAN_BUILD) && HAS_ATTR(ifunc) && defined(__GLIBC__) static mix_in_fn_t *resolve_s16_mix_in(void) { if (rtpe_has_cpu_flag(RTPE_CPU_FLAG_AVX512BW)) return s16_mix_in_avx512; if (rtpe_has_cpu_flag(RTPE_CPU_FLAG_AVX2)) return s16_mix_in_avx2; if (rtpe_has_cpu_flag(RTPE_CPU_FLAG_SSE2)) return s16_mix_in_sse2; return s16_mix_in_c; } static mix_in_fn_t s16_mix_in __attribute__ ((ifunc ("resolve_s16_mix_in"))); #else #define s16_mix_in s16_mix_in_c #endif const struct mix_buffer_impl impl_s16_c = { .sample_size = sizeof(int16_t), .mix_in = s16_mix_in, }; // must be locked already static void fill_up_to(struct mix_buffer *mb, unsigned int up_to) { if (mb->fill >= up_to) return; unsigned int needed = up_to - mb->fill; assert(up_to <= mb->size); // tail end unsigned int tail_room = mb->size - mb->head_write_pos; tail_room = MIN(tail_room, needed); memset(mb->buf.c + mb->head_write_pos * mb->sample_size_channels, 0, tail_room * mb->sample_size_channels); needed -= tail_room; mb->head_write_pos += tail_room; mb->fill += tail_room; if (needed) { // ran against the end of the buffer. fill up from beginning memset(mb->buf.c, 0, needed * mb->sample_size_channels); mb->head_write_pos = needed; mb->fill += needed; mb->loops++; } } void *mix_buffer_read_fast(struct mix_buffer *mb, unsigned int samples, unsigned int *size) { LOCK(&mb->lock); if (samples > mb->size || !mb->active) { *size = 0; // error or inactive return NULL; } fill_up_to(mb, samples); *size = samples * mb->sample_size_channels; // shortcut extraction possible? int end_read_pos = mb->read_pos + samples; if (end_read_pos > mb->size) return NULL; // nope, must use temporary buffer void *ret = mb->buf.c + mb->read_pos * mb->sample_size_channels; mb->read_pos = end_read_pos == mb->size ? 0 : end_read_pos; mb->fill -= samples; return ret; } // must be called after mix_buffer_read_fast returned NULL, with a buffer the size of *size bytes void mix_buffer_read_slow(struct mix_buffer *mb, void *outbuf, unsigned int samples) { LOCK(&mb->lock); unsigned int tail_part = mb->size - mb->read_pos; memcpy(outbuf, mb->buf.c + mb->read_pos * mb->sample_size_channels, tail_part * mb->sample_size_channels); mb->fill -= samples; samples -= tail_part; memcpy(outbuf + tail_part * mb->sample_size_channels, mb->buf.c, samples * mb->sample_size_channels); mb->read_pos = samples; } static void mix_ssrc_put(mix_buffer_ssrc_source *s) { obj_put(&s->h); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(mix_buffer_ssrc_source, mix_ssrc_put) // write at the write-head, direct copy without mixing // must be locked already static bool mix_buffer_write_fast(struct mix_buffer *mb, mix_buffer_ssrc_source *src, const void *buf, unsigned int samples) { // check for buffer overflow if (mb->fill + samples > mb->size) return false; // will there be a buffer wrap-around? if (mb->head_write_pos + samples >= mb->size) { // copy in to end of buffer unsigned int tail_part = mb->size - mb->head_write_pos; memcpy(mb->buf.c + mb->head_write_pos * mb->sample_size_channels, buf, tail_part * mb->sample_size_channels); mb->fill += tail_part; samples -= tail_part; buf = ((const char *) buf) + tail_part * mb->sample_size_channels; mb->head_write_pos = 0; // src->write_pos is updated below mb->loops++; src->loops = mb->loops; } // copy in remainder, if any memcpy(mb->buf.c + mb->head_write_pos * mb->sample_size_channels, buf, samples * mb->sample_size_channels); mb->head_write_pos += samples; src->write_pos = mb->head_write_pos; mb->fill += samples; return true; } // write before the write-head with mixing-in // must be locked already static bool mix_buffer_write_slow(struct mix_buffer *mb, mix_buffer_ssrc_source *src, const void *buf, unsigned int samples) { // mix-in up to the current write-head, or end of buffer in case of wrap-around if (mb->head_write_pos < src->write_pos) { // wrap-arund: mix-in to end of buffer unsigned int tail_part = mb->size - src->write_pos; if (tail_part > samples) tail_part = samples; mb->impl->mix_in(mb->buf.c + src->write_pos * mb->sample_size_channels, buf, tail_part * mb->channels); samples -= tail_part; buf = ((const char *) buf) + tail_part * mb->sample_size_channels; src->write_pos += tail_part; if (src->write_pos == mb->size) { src->write_pos = 0; src->loops++; } if (samples == 0) return true; } // mix-in to current write-head unsigned int mix_part = mb->head_write_pos - src->write_pos; if (mix_part > samples) mix_part = samples; mb->impl->mix_in(mb->buf.c + src->write_pos * mb->sample_size_channels, buf, mix_part * mb->channels); samples -= mix_part; src->write_pos += mix_part; buf = ((const char *) buf) + mix_part * mb->sample_size_channels; // anything that's left, just copy-in return mix_buffer_write_fast(mb, src, buf, samples); } static void mix_buffer_src_add_delay(struct mix_buffer *mb, mix_buffer_ssrc_source *src, unsigned int samples) { if (!samples) return; // shift new write pos into the future src->write_pos += samples; if (src->write_pos >= mb->size) { src->write_pos -= mb->size; src->loops++; } // fill up buffer if needed if (src->loops == mb->loops && src->write_pos > mb->head_write_pos) fill_up_to(mb, mb->fill + src->write_pos - mb->head_write_pos); else if (src->loops == mb->loops + 1 && src->write_pos < mb->head_write_pos) fill_up_to(mb, mb->fill + src->write_pos + mb->size - mb->head_write_pos); } static void mix_buffer_src_init_pos(struct mix_buffer *mb, mix_buffer_ssrc_source *src) { src->write_pos = mb->read_pos; src->loops = mb->loops; if (mb->head_write_pos < src->write_pos) src->loops--; mix_buffer_src_add_delay(mb, src, mb->delay); } static void mix_buff_src_shift_delay(struct mix_buffer *mb, mix_buffer_ssrc_source *src, const struct timeval *last, const struct timeval *now) { if (!last || !now) return; long long diff_us = timeval_diff(now, last); if (diff_us <= 0) return; unsigned int samples = mb->clockrate * diff_us / 1000000; mix_buffer_src_add_delay(mb, src, samples); } // takes the difference between two time stamps into account, scaled to the given clock rate, // to add an additional write-delay for a newly created source bool mix_buffer_write_delay(struct mix_buffer *mb, uint32_t ssrc, const void *buf, unsigned int samples, const struct timeval *last, const struct timeval *now) { LOCK(&mb->lock); bool created; g_autoptr(mix_buffer_ssrc_source) src = get_ssrc_full(ssrc, mb->ssrc_hash, &created); if (!src) return false; if (created) mix_buff_src_shift_delay(mb, src, last, now); mb->active = true; // loop twice at the most to re-run logic after a reset while (true) { // shortcut if we're at the write head if (src->write_pos == mb->head_write_pos && src->loops == mb->loops) return mix_buffer_write_fast(mb, src, buf, samples); // not at the write head... did we fall behind what has been read already? if (mb->head_write_pos >= mb->read_pos) { // |--------------|###################|------------| // R W // ^- slow mix-in if (src->write_pos >= mb->read_pos && src->write_pos < mb->head_write_pos && src->loops == mb->loops) return mix_buffer_write_slow(mb, src, buf, samples); } else { // |#########|-----------------------------|#######| // W R // ^--- slow mix-in ------^ if ((src->write_pos < mb->head_write_pos && src->loops == mb->loops) || (src->write_pos >= mb->read_pos && src->loops + 1 == mb->loops)) return mix_buffer_write_slow(mb, src, buf, samples); } // we fell behind. reset write position to current read pos and try again mix_buffer_src_init_pos(mb, src); } } static struct ssrc_entry *mix_buffer_ssrc_new(void *p) { struct mix_buffer *mb = p; mix_buffer_ssrc_source *src = obj_alloc0("mix_buffer_ssrc", sizeof(*src), NULL); mix_buffer_src_init_pos(mb, src); return &src->h; } // struct must be zeroed already bool mix_buffer_init_active(struct mix_buffer *mb, enum AVSampleFormat fmt, unsigned int clockrate, unsigned int channels, unsigned int size_ms, unsigned int delay_ms, bool active) { switch (fmt) { case AV_SAMPLE_FMT_S16: mb->impl = &impl_s16_c; break; default: return false; } unsigned int size = clockrate * size_ms / 1000; // in samples unsigned int delay = clockrate * delay_ms / 1000; // in samples mutex_init(&mb->lock); mb->sample_size_channels = channels * mb->impl->sample_size; mb->buf.v = g_malloc(mb->sample_size_channels * size); mb->size = size; mb->clockrate = clockrate; mb->channels = channels; mb->delay = delay; mb->active = active; mb->ssrc_hash = create_ssrc_hash_full_fast(mix_buffer_ssrc_new, mb); return true; } void mix_buffer_destroy(struct mix_buffer *mb) { g_free(mb->buf.v); free_ssrc_hash(&mb->ssrc_hash); mutex_destroy(&mb->lock); } #endif rtpengine-mr12.5.1.22/lib/mix_buffer.h000066400000000000000000000052201474347554000174350ustar00rootroot00000000000000#ifndef _MIX_BUFFER_H_ #define _MIX_BUFFER_H_ #include #include #include "helpers.h" enum AVSampleFormat; struct mix_buffer_impl; struct ssrc_hash; /* * A simple circular audio buffer that allows mixing multiple sources of * audio. Sources are tracked by SSRC and all sources are expected to * provide audio in the same format (same clock rate, channels, sample * format). * Only one consumer per buffer is supported, which is expected to retrieve * buffered audio at regular intervals (ptime) and so continuously empty * the buffer. * The first audio source to write into the buffer at the leading edge of * the circular buffer has its audio simply copied into the buffer, with * the leading edge advanced, while other later sources writing into the * buffer mixed into the existing buffered audio at their respective write * positions. */ struct mix_buffer { mutex_t lock; union { // generic pointers void *v; char *c; // implementation-specific pointers int16_t *s16; } buf; unsigned int channels; unsigned int clockrate; // all sizes and positions in samples unsigned int size; // total size unsigned int read_pos; // current read (output) position unsigned int head_write_pos; // furthest ahead write (input) position unsigned int fill; // difference between read and write position unsigned int delay; // initial write delay for new inputs/sources unsigned int loops; // how many times the write pos has circled around bool active; // to optionally suppress early media // implementation details const struct mix_buffer_impl *impl; unsigned int sample_size_channels; // = sample_size * channels struct ssrc_hash *ssrc_hash; }; bool mix_buffer_init_active(struct mix_buffer *, enum AVSampleFormat, unsigned int clockrate, unsigned int channels, unsigned int size_ms, unsigned int delay_ms, bool active); #define mix_buffer_init(mb, fmt, clockrate, channels, size_ms, delay_ms) \ mix_buffer_init_active(mb, fmt, clockrate, channels, size_ms, delay_ms, true) INLINE void mix_buffer_activate(struct mix_buffer *mb) { LOCK(&mb->lock); mb->active = true; } void mix_buffer_destroy(struct mix_buffer *); void *mix_buffer_read_fast(struct mix_buffer *, unsigned int samples, unsigned int *size); void mix_buffer_read_slow(struct mix_buffer *, void *outbuf, unsigned int samples); bool mix_buffer_write_delay(struct mix_buffer *, uint32_t ssrc, const void *buf, unsigned int samples, const struct timeval *, const struct timeval *); INLINE bool mix_buffer_write(struct mix_buffer *mb, uint32_t ssrc, const void *buf, unsigned int samples) { return mix_buffer_write_delay(mb, ssrc, buf, samples, NULL, NULL); } #endif rtpengine-mr12.5.1.22/lib/mix_in_x64_avx2.S000066400000000000000000000014311474347554000202060ustar00rootroot00000000000000#if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif #if defined(__x86_64__) .global s16_mix_in_avx2 .text # 16 bits in 256 bits = 16 samples at a time s16_mix_in_avx2: mov %rdx, %rax and $-16, %al # 16 samples at a time xor %rcx, %rcx loop: cmp %rax, %rcx jge remainder vmovdqu (%rdi,%rcx,2), %ymm0 # 16-bit size vpaddsw (%rsi,%rcx,2), %ymm0, %ymm1 vmovdqu %ymm1, (%rdi,%rcx,2) # 16-bit size add $16, %rcx # 16 samples at a time jmp loop remainder: xor %r8, %r8 xor %r9, %r9 cmp %rdx, %rcx jge done mov (%rsi,%rcx,2), %r8w # 16-bit size mov (%rdi,%rcx,2), %r9w # 16-bit size movd %r8, %xmm0 movd %r9, %xmm1 paddsw %xmm0, %xmm1 movd %xmm1, %r8 mov %r8w, (%rdi,%rcx,2) # 16-bit size inc %rcx jmp remainder done: ret #endif rtpengine-mr12.5.1.22/lib/mix_in_x64_avx512bw.S000066400000000000000000000014411474347554000207060ustar00rootroot00000000000000#if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif #if defined(__x86_64__) .global s16_mix_in_avx512 .text # 16 bits in 512 bits = 32 samples at a time s16_mix_in_avx512: mov %rdx, %rax and $-32, %al # 32 samples at a time xor %rcx, %rcx loop: cmp %rax, %rcx jge remainder vmovdqu16 (%rdi,%rcx,2), %zmm0 # 16-bit size vpaddsw (%rsi,%rcx,2), %zmm0, %zmm1 vmovdqu16 %zmm1, (%rdi,%rcx,2) # 16-bit size add $32, %rcx # 32 samples at a time jmp loop remainder: xor %r8, %r8 xor %r9, %r9 cmp %rdx, %rcx jge done mov (%rsi,%rcx,2), %r8w # 16-bit size mov (%rdi,%rcx,2), %r9w # 16-bit size movd %r8, %xmm0 movd %r9, %xmm1 paddsw %xmm0, %xmm1 movd %xmm1, %r8 mov %r8w, (%rdi,%rcx,2) # 16-bit size inc %rcx jmp remainder done: ret #endif rtpengine-mr12.5.1.22/lib/mix_in_x64_sse2.S000066400000000000000000000014551474347554000202100ustar00rootroot00000000000000#if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif #if defined(__x86_64__) .global s16_mix_in_sse2 .text # 16 bits in 128 bits = 8 samples at a time s16_mix_in_sse2: mov %rdx, %rax and $-8, %al # 8 samples at a time xor %rcx, %rcx loop: cmp %rax, %rcx jge remainder movdqu (%rdi,%rcx,2), %xmm0 # 16-bit size movdqu (%rsi,%rcx,2), %xmm1 # 16-bit size paddsw %xmm0, %xmm1 movdqu %xmm1, (%rdi,%rcx,2) # 16-bit size add $8, %rcx # 8 samples at a time jmp loop remainder: xor %r8, %r8 xor %r9, %r9 cmp %rdx, %rcx jge done mov (%rsi,%rcx,2), %r8w # 16-bit size mov (%rdi,%rcx,2), %r9w # 16-bit size movd %r8, %xmm0 movd %r9, %xmm1 paddsw %xmm0, %xmm1 movd %xmm1, %r8 mov %r8w, (%rdi,%rcx,2) # 16-bit size inc %rcx jmp remainder done: ret #endif rtpengine-mr12.5.1.22/lib/mqtt.Makefile000066400000000000000000000004761474347554000175720ustar00rootroot00000000000000ifeq ($(shell pkg-config --exists libmosquitto && echo yes),yes) have_mqtt := yes mqtt_inc := $(shell pkg-config --cflags libmosquitto) mqtt_lib := $(shell pkg-config --libs libmosquitto) endif ifeq ($(have_mqtt),yes) CFLAGS+= -DHAVE_MQTT CFLAGS+= $(mqtt_inc) endif ifeq ($(have_mqtt),yes) LDLIBS+= $(mqtt_lib) endif rtpengine-mr12.5.1.22/lib/mvr2s_x64_avx2.S000066400000000000000000000033511474347554000177770ustar00rootroot00000000000000#if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif #if defined(__x86_64__) .global mvr2s_avx2 .text # void mvr2s_avx2(float *in, const uint16_t len, int16_t *out); # convert float array to int16 array with rounding and int16 saturation mvr2s_avx2: vmovups mask(%rip), %ymm3 # mask for vpermd ldmxcsr csr(%rip) # set "round to nearest" mov %rsi, %rax and $-8, %al # 8 samples at a time xor %rcx, %rcx loop: cmp %rax, %rcx jge remainder vmovups (%rdi,%rcx,4), %ymm0 # load, 32-bit size # v8_float = {-4, -3.20000005, -1.70000005, -0.5, 0, 38000, -38000, 0}, # -> # v8_int32 = {-4, -3, -2, 0, 0, 38000, -38000, 0}, vcvtps2dq %ymm0, %ymm1 # v8_int32 = {-4, -3, -2, 0, 0, 38000, -38000, 0}, # -> # v16_int16 = {-4, -3, -2, 0, -4, -3, -2, 0, 0, 32767, -32768, 0, 0, 32767, -32768, 0}, vpackssdw %ymm1, %ymm1, %ymm0 # v16_int16 = {-4, -3, -2, 0, -4, -3, -2, 0, 0, 32767, -32768, 0, 0, 32767, -32768, 0}, # -> # v16_int16 = {-4, -3, -2, 0, 0, 32767, -32768, 0, -4, -3, -4, -3, -4, -3, -4, -3}, vpermd %ymm0, %ymm3, %ymm1 # v8_int16 = {-4, -3, -2, 0, 0, 32767, -32768, 0}, vmovdqu %xmm1, (%rdx,%rcx,2) # store, 16-bit size add $8, %rcx # 8 samples at a time jmp loop remainder: cmp %rsi, %rcx jge done movss (%rdi,%rcx,4), %xmm0 vcvtps2dq %xmm0, %xmm1 vpackssdw %xmm1, %xmm1, %xmm0 movq %xmm0, %rax mov %ax, (%rdx,%rcx,2) inc %rcx jmp remainder done: ret .data mask: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 csr: .byte 0x80, 0x1f, 0x00, 0x00 # [ IM DM ZM OM UM PM ] #endif rtpengine-mr12.5.1.22/lib/mvr2s_x64_avx512.S000066400000000000000000000025541474347554000201510ustar00rootroot00000000000000#if defined(__linux__) && defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif #if defined(__x86_64__) .global mvr2s_avx512 .text # void mvr2s_avx512(float *in, const uint16_t len, int16_t *out); # convert float array to int16 array with rounding and int16 saturation mvr2s_avx512: ldmxcsr csr(%rip) # set "round to nearest" mov %rsi, %rax and $-16, %al # 16 samples at a time xor %rcx, %rcx loop: cmp %rax, %rcx jge remainder vmovups (%rdi,%rcx,4), %zmm0 # load, 32-bit size # v16_float = {-2, -2.20000005, -1.70000005, -1.5, 0, 0, 2, 2.20000005, 1.70000005, 1.5, -19187.207, 15405.2158, -4437.91748, -18747.3066, -3701.35034, -19959.6738}, # -> # v16_int32 = {-2, -2, -2, -2, 0, 0, 2, 2, 2, 2, -19187, 15405, -4438, -18747, -3701, -19960}, vcvtps2dq %zmm0, %zmm1 # v16_int32 = {-2, -2, -2, -2, 0, 0, 2, 2, 2, 2, -19187, 15405, -4438, -18747, -3701, -19960}, # -> # v16_int16 = {-2, -2, -2, -2, 0, 0, 2, 2, 2, 2, -19187, 15405, -4438, -18747, -3701, -19960}, vpmovsdw %zmm1, %ymm0 vmovdqu %ymm0, (%rdx,%rcx,2) # store, 16-bit size add $16, %rcx # 16 samples at a time jmp loop remainder: cmp %rsi, %rcx jge done vmovss (%rdi,%rcx,4), %xmm0 vcvtps2dq %ymm0, %ymm1 vpmovsdw %ymm1, %xmm0 vpextrw $0, %xmm0, (%rdx,%rcx,2) inc %rcx jmp remainder done: ret .data csr: .byte 0x80, 0x1f, 0x00, 0x00 # [ IM DM ZM OM UM PM ] #endif rtpengine-mr12.5.1.22/lib/obj.h000066400000000000000000000127601474347554000160700ustar00rootroot00000000000000#ifndef _OBJ_H_ #define _OBJ_H_ #include #include #include #include #include #include #include "compat.h" #if 0 && defined(__DEBUG) #define OBJ_DEBUG 1 #else #define OBJ_DEBUG 0 #endif #if OBJ_DEBUG #define OBJ_BACKTRACE 1 #else #define OBJ_BACKTRACE 0 #endif #if OBJ_BACKTRACE #include #endif struct obj { #if OBJ_DEBUG uint32_t magic; char *type; #endif volatile gint ref; void (*free_func)(void *); size_t size; }; #if OBJ_DEBUG #define OBJ_MAGIC 0xf1eef1ee #define obj_alloc(t,a,b) __obj_alloc(a,b,t,__FILE__,__func__,__LINE__) #define obj_alloc0(t,a,b) __obj_alloc0(a,b,t,__FILE__,__func__,__LINE__) #define obj_init(t,a,b) __obj_init(a,-1,b,t,__FILE__,__func__,__LINE__) #define obj_hold(a) __obj_hold(&(a)->obj,__FILE__,__func__,__LINE__) #define obj_get(a) __obj_get(&(a)->obj,__FILE__,__func__,__LINE__) #define obj_put(a) __obj_put(&(a)->obj,__FILE__,__func__,__LINE__) #define obj_hold_o(a) __obj_hold(a,__FILE__,__func__,__LINE__) #define obj_get_o(a) __obj_get(a,__FILE__,__func__,__LINE__) #define obj_put_o(a) __obj_put(a,__FILE__,__func__,__LINE__) INLINE void __obj_init(struct obj *o, size_t size, void (*free_func)(void *), const char *type, const char *file, const char *func, unsigned int line); INLINE void *__obj_alloc(size_t size, void (*free_func)(void *), const char *type, const char *file, const char *func, unsigned int line); INLINE void *__obj_alloc0(size_t size, void (*free_func)(void *), const char *type, const char *file, const char *func, unsigned int line); INLINE struct obj *__obj_hold(struct obj *o, const char *file, const char *func, unsigned int line); INLINE void *__obj_get(struct obj *o, const char *file, const char *func, unsigned int line); INLINE void __obj_put(struct obj *o, const char *file, const char *func, unsigned int line); #else #define obj_alloc(t,a,b) __obj_alloc(a,b) #define obj_alloc0(t,a,b) __obj_alloc0(a,b) #define obj_init(t,a,b) __obj_init(a,-1,b) #define obj_hold(a) __obj_hold(&(a)->obj) #define obj_get(a) __obj_get(&(a)->obj) #define obj_put(a) __obj_put(&(a)->obj) #define obj_hold_o(a) __obj_hold(a) #define obj_get_o(a) __obj_get(a) #define obj_put_o(a) __obj_put(a) INLINE void __obj_init(struct obj *o, size_t size, void (*free_func)(void *)); INLINE void *__obj_alloc(size_t size, void (*free_func)(void *)); INLINE void *__obj_alloc0(size_t size, void (*free_func)(void *)); INLINE struct obj *__obj_hold(struct obj *o); INLINE void *__obj_get(struct obj *o); INLINE void __obj_put(struct obj *o); #endif #define obj_release(op) do { if (op) obj_put_o((struct obj *) op); op = NULL; } while (0) #include "log.h" INLINE void __obj_init(struct obj *o, size_t size, void (*free_func)(void *) #if OBJ_DEBUG , const char *type, const char *file, const char *func, unsigned int line #endif ) { #if OBJ_DEBUG o->magic = OBJ_MAGIC; o->type = strdup(type); write_log(LOG_DEBUG, "obj_allocX(\"%s\") -> %p [%s:%s:%u]", type, o, file, func, line); #if OBJ_BACKTRACE void *bt[4]; int addrs = backtrace(bt, 4); char **syms = backtrace_symbols(bt, addrs); if (syms) { for (int i = 0; i < addrs; i++) write_log(LOG_DEBUG, " obj_allocX caller %i: %s", i, syms[i]); } free(syms); #endif #endif o->ref = 1; o->free_func = free_func; o->size = size; } INLINE void *__obj_alloc(size_t size, void (*free_func)(void *) #if OBJ_DEBUG , const char *type, const char *file, const char *func, unsigned int line #endif ) { struct obj *r; r = g_slice_alloc(size); __obj_init(r, size, free_func #if OBJ_DEBUG , type, file, func, line #endif ); return r; } INLINE void *__obj_alloc0(size_t size, void (*free_func)(void *) #if OBJ_DEBUG , const char *type, const char *file, const char *func, unsigned int line #endif ) { struct obj *r; r = g_slice_alloc0(size); __obj_init(r, size, free_func #if OBJ_DEBUG , type, file, func, line #endif ); return r; } INLINE struct obj *__obj_hold(struct obj *o #if OBJ_DEBUG , const char *file, const char *func, unsigned int line #endif ) { #if OBJ_DEBUG assert(o->magic == OBJ_MAGIC); write_log(LOG_DEBUG, "obj_hold(%p, \"%s\"), refcnt inc %u -> %u [%s:%s:%u]", o, o->type, g_atomic_int_get(&o->ref), g_atomic_int_get(&o->ref) + 1, file, func, line); #if OBJ_BACKTRACE void *bt[4]; int addrs = backtrace(bt, 4); char **syms = backtrace_symbols(bt, addrs); if (syms) { for (int i = 0; i < addrs; i++) write_log(LOG_DEBUG, " obj_hold caller %i: %s", i, syms[i]); } free(syms); #endif #endif g_atomic_int_inc(&o->ref); return o; } INLINE void *__obj_get(struct obj *o #if OBJ_DEBUG , const char *file, const char *func, unsigned int line #endif ) { return __obj_hold(o #if OBJ_DEBUG , file, func, line #endif ); } INLINE void __obj_put(struct obj *o #if OBJ_DEBUG , const char *file, const char *func, unsigned int line #endif ) { #if OBJ_DEBUG assert(o->magic == OBJ_MAGIC); write_log(LOG_DEBUG, "obj_put(%p, \"%s\"), refcnt dec %u -> %u [%s:%s:%u]", o, o->type, g_atomic_int_get(&o->ref), g_atomic_int_get(&o->ref) - 1, file, func, line); #if OBJ_BACKTRACE void *bt[4]; int addrs = backtrace(bt, 4); char **syms = backtrace_symbols(bt, addrs); if (syms) { for (int i = 0; i < addrs; i++) write_log(LOG_DEBUG, " obj_put caller %i: %s", i, syms[i]); } free(syms); #endif #endif if (!g_atomic_int_dec_and_test(&o->ref)) return; if (o->free_func) o->free_func(o); #if OBJ_DEBUG o->magic = 0; if (o->type) free(o->type); #endif if (o->size != -1) g_slice_free1(o->size, o); } #endif rtpengine-mr12.5.1.22/lib/poller.c000066400000000000000000000151221474347554000166010ustar00rootroot00000000000000#include "poller.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "obj.h" #include "log_funcs.h" #include "auxlib.h" #include "uring.h" struct poller_item_int { struct obj obj; struct poller_item item; unsigned int blocked:1; unsigned int error:1; }; struct poller { int fd; mutex_t lock; GPtrArray *items; }; bool (*rtpe_poller_add_item)(struct poller *, struct poller_item *) = poller_add_item; bool (*rtpe_poller_del_item)(struct poller *, int) = poller_del_item; bool (*rtpe_poller_del_item_callback)(struct poller *, int, void (*)(void *), void *) = poller_del_item_callback; void (*rtpe_poller_blocked)(struct poller *, void *) = poller_blocked; bool (*rtpe_poller_isblocked)(struct poller *, void *) = poller_isblocked; void (*rtpe_poller_error)(struct poller *, void *) = poller_error; static void poller_free_item(struct poller_item_int *ele) { if (ele) obj_put(ele); } struct poller *poller_new(void) { struct poller *p; p = g_slice_alloc0(sizeof(*p)); mutex_init(&p->lock); p->fd = epoll_create1(0); if (p->fd == -1) goto err; p->items = g_ptr_array_new_full(1024, (GDestroyNotify) poller_free_item); return p; err: poller_free(&p); return NULL; } void poller_free(struct poller **pp) { struct poller *p = *pp; // prevent recursion into poller_del_item from item's free functions GPtrArray *arr = p->items; p->items = NULL; g_ptr_array_free(arr, TRUE); // calls the clear function to release references if (p->fd != -1) close(p->fd); p->fd = -1; g_slice_free1(sizeof(*p), p); *pp = NULL; } static int epoll_events(struct poller_item *it, struct poller_item_int *ii) { if (!it) it = &ii->item; return EPOLLHUP | EPOLLERR | EPOLLET | ((it->writeable && ii && ii->blocked) ? EPOLLOUT : 0) | (it->readable ? EPOLLIN : 0); } static void poller_item_free(void *p) { struct poller_item_int *i = p; obj_put_o(i->item.obj); } bool poller_add_item(struct poller *p, struct poller_item *i) { struct poller_item_int *ip; struct epoll_event e; if (!p) return false; if (!i) return false; if (i->fd < 0) return false; if (!i->readable && !i->writeable) return false; if (!i->closed) return false; { LOCK(&p->lock); if (i->fd < p->items->len && p->items->pdata[i->fd]) return false; ZERO(e); e.events = epoll_events(i, NULL); e.data.fd = i->fd; if (epoll_ctl(p->fd, EPOLL_CTL_ADD, i->fd, &e)) return false; if (i->fd >= p->items->len) g_ptr_array_set_size(p->items, i->fd + 1); ip = obj_alloc0("poller_item_int", sizeof(*ip), poller_item_free); memcpy(&ip->item, i, sizeof(*i)); obj_hold_o(ip->item.obj); /* new ref in *ip */ p->items->pdata[i->fd] = obj_get(ip); } // unlock obj_put(ip); return true; } bool poller_del_item_callback(struct poller *p, int fd, void (*callback)(void *), void *arg) { struct poller_item_int *it; if (!p || fd < 0) return false; { LOCK(&p->lock); if (!p->items) // can happen during shutdown/free only return false; if (fd >= p->items->len) return false; if (!(it = p->items->pdata[fd])) return false; if (epoll_ctl(p->fd, EPOLL_CTL_DEL, fd, NULL)) return false; p->items->pdata[fd] = NULL; /* stealing the ref */ } // unlock obj_put(it); if (callback) callback(arg); else close(fd); return true; } bool poller_del_item(struct poller *p, int fd) { return poller_del_item_callback(p, fd, NULL, NULL); } static int poller_poll(struct poller *p, int timeout, struct epoll_event *evs, int poller_size) { int ret, i; struct poller_item_int *it; struct epoll_event *ev, e; if (!p) return -1; errno = 0; thread_cancel_enable(); ret = epoll_wait(p->fd, evs, poller_size, timeout); thread_cancel_disable(); mutex_lock(&p->lock); if (errno == EINTR) ret = 0; if (ret == 0) ret = 0; if (ret <= 0) goto out; gettimeofday(&rtpe_now, NULL); for (i = 0; i < ret; i++) { ev = &evs[i]; if (ev->data.fd < 0) continue; it = (ev->data.fd < p->items->len) ? p->items->pdata[ev->data.fd] : NULL; if (!it) continue; obj_hold(it); mutex_unlock(&p->lock); if (it->error) { it->item.closed(it->item.fd, it->item.obj); goto next; } if ((ev->events & (POLLERR | POLLHUP))) it->item.closed(it->item.fd, it->item.obj); else if ((ev->events & POLLOUT)) { mutex_lock(&p->lock); it->blocked = 0; ZERO(e); e.events = epoll_events(NULL, it); e.data.fd = it->item.fd; int eret = epoll_ctl(p->fd, EPOLL_CTL_MOD, it->item.fd, &e); mutex_unlock(&p->lock); if (eret == 0 && it->item.writeable) it->item.writeable(it->item.fd, it->item.obj); } else if ((ev->events & POLLIN)) it->item.readable(it->item.fd, it->item.obj); else if (!ev->events) goto next; else goto next; next: obj_put(it); log_info_reset(); mutex_lock(&p->lock); } out: mutex_unlock(&p->lock); return ret; } void poller_blocked(struct poller *p, void *fdp) { int fd = GPOINTER_TO_INT(fdp); struct epoll_event e; if (!p || fd < 0) return; LOCK(&p->lock); if (fd >= p->items->len) return; struct poller_item_int *it; if (!(it = p->items->pdata[fd])) return; if (!it->item.writeable) return; it->blocked = 1; ZERO(e); e.events = epoll_events(NULL, it); e.data.fd = fd; epoll_ctl(p->fd, EPOLL_CTL_MOD, fd, &e); } void poller_error(struct poller *p, void *fdp) { int fd = GPOINTER_TO_INT(fdp); if (!p || fd < 0) return; LOCK(&p->lock); if (fd >= p->items->len) return; struct poller_item_int *it; if (!(it = p->items->pdata[fd])) return; if (!it->item.writeable) return; it->error = 1; it->blocked = 1; } #ifdef HAVE_LIBURING static unsigned int __uring_thread_loop_dummy(void) { return 0; } __thread unsigned int (*uring_thread_loop)(void) = __uring_thread_loop_dummy; #endif bool poller_isblocked(struct poller *p, void *fdp) { int fd = GPOINTER_TO_INT(fdp); int ret; if (!p || fd < 0) return false; LOCK(&p->lock); ret = -1; if (fd >= p->items->len) goto out; struct poller_item_int *it; if (!(it = p->items->pdata[fd])) goto out; if (!it->item.writeable) goto out; ret = !!it->blocked; out: return ret; } void poller_loop(void *d) { struct poller *p = d; int poller_size = rtpe_common_config_ptr->poller_size; struct epoll_event *evs; evs = g_malloc(sizeof(*evs) * poller_size); thread_cleanup_push(g_free, evs); while (!rtpe_shutdown) { int ret = poller_poll(p, thread_sleep_time, evs, poller_size); if (ret < 0) usleep(20 * 1000); uring_thread_loop(); } thread_cleanup_pop(true); } rtpengine-mr12.5.1.22/lib/poller.h000066400000000000000000000027151474347554000166120ustar00rootroot00000000000000#ifndef __POLLER_H__ #define __POLLER_H__ #include #include #include #include #include #include "compat.h" struct obj; struct sockaddr; typedef void (*poller_func_t)(int, void *); struct poller_item { int fd; struct obj *obj; poller_func_t readable; void (*recv)(struct obj *, char *b, size_t len, struct sockaddr *, struct timeval *); poller_func_t writeable; poller_func_t closed; }; struct poller; struct poller *poller_new(void); void poller_free(struct poller **); bool poller_add_item(struct poller *, struct poller_item *); bool poller_del_item(struct poller *, int); bool poller_del_item_callback(struct poller *, int, void (*)(void *), void *); void poller_blocked(struct poller *, void *); bool poller_isblocked(struct poller *, void *); void poller_error(struct poller *, void *); void poller_loop(void *); extern bool (*rtpe_poller_add_item)(struct poller *, struct poller_item *); extern bool (*rtpe_poller_del_item)(struct poller *, int); extern bool (*rtpe_poller_del_item_callback)(struct poller *, int, void (*)(void *), void *); extern void (*rtpe_poller_blocked)(struct poller *, void *); extern bool (*rtpe_poller_isblocked)(struct poller *, void *); extern void (*rtpe_poller_error)(struct poller *, void *); #ifdef HAVE_LIBURING extern __thread unsigned int (*uring_thread_loop)(void); #else INLINE unsigned int uring_thread_loop(void) { return 0; } #endif #endif rtpengine-mr12.5.1.22/lib/resample.c000066400000000000000000000056061474347554000171220ustar00rootroot00000000000000#include "resample.h" #include #include #include #include #include #include #include #include #include #include #include "log.h" #include "codeclib.h" #include "fix_frame_channel_layout.h" AVFrame *resample_frame(resample_t *resample, AVFrame *frame, const format_t *to_format) { const char *err; int errcode = 0; CH_LAYOUT_T to_channel_layout; DEF_CH_LAYOUT(&to_channel_layout, to_format->channels); fix_frame_channel_layout(frame); if (frame->format != to_format->format) goto resample; if (frame->sample_rate != to_format->clockrate) goto resample; if (!CH_LAYOUT_EQ(frame->CH_LAYOUT, to_channel_layout)) goto resample; return av_frame_clone(frame); resample: if (G_UNLIKELY(!resample->swresample)) { SWR_ALLOC_SET_OPTS(&resample->swresample, to_channel_layout, to_format->format, to_format->clockrate, frame->CH_LAYOUT, frame->format, frame->sample_rate, 0, NULL); err = "failed to alloc resample context"; if (!resample->swresample) goto err; if (resample->no_filter) av_opt_set_int(resample->swresample, "filter_size", 0, AV_OPT_SEARCH_CHILDREN); err = "failed to init resample context"; if ((errcode = swr_init(resample->swresample)) < 0) goto err; } // get a large enough buffer for resampled audio - this should be enough so we don't // have to loop int dst_samples = av_rescale_rnd(swr_get_delay(resample->swresample, to_format->clockrate) + frame->nb_samples, to_format->clockrate, frame->sample_rate, AV_ROUND_UP); AVFrame *swr_frame = av_frame_alloc(); err = "failed to alloc resampling frame"; if (!swr_frame) goto err; av_frame_copy_props(swr_frame, frame); swr_frame->format = to_format->format; swr_frame->CH_LAYOUT = to_channel_layout; swr_frame->nb_samples = dst_samples; swr_frame->sample_rate = to_format->clockrate; err = "failed to get resample buffers"; if ((errcode = av_frame_get_buffer(swr_frame, 0)) < 0) goto err; int ret_samples = swr_convert(resample->swresample, swr_frame->extended_data, dst_samples, (const uint8_t **) frame->extended_data, frame->nb_samples); err = "failed to resample audio"; if ((errcode = ret_samples) < 0) goto err; swr_frame->nb_samples = ret_samples; swr_frame->pts = av_rescale(frame->pts, to_format->clockrate, frame->sample_rate); swr_frame->linesize[0] = av_get_bytes_per_sample(swr_frame->format) * ret_samples; return swr_frame; err: if (errcode) ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error resampling: %s (%s)", err, av_error(errcode)); else ilog(LOG_ERR | LOG_FLAG_LIMIT, "Error resampling: %s", err); resample_shutdown(resample); return NULL; } void resample_shutdown(resample_t *resample) { swr_free(&resample->swresample); } rtpengine-mr12.5.1.22/lib/resample.h000066400000000000000000000003621474347554000171210ustar00rootroot00000000000000#ifndef _RESAMPLE_H_ #define _RESAMPLE_H_ #include "codeclib.h" #include AVFrame *resample_frame(resample_t *resample, AVFrame *frame, const format_t *to_format); void resample_shutdown(resample_t *resample); #endif rtpengine-mr12.5.1.22/lib/rtcplib.h000066400000000000000000000017241474347554000167530ustar00rootroot00000000000000#ifndef _RTCPLIB_H_ #define _RTCPLIB_H_ #include #include "str.h" #include "compat.h" struct rtcp_header { #if G_BYTE_ORDER == G_BIG_ENDIAN unsigned version:2; /**< packet type */ unsigned p:1; /**< padding flag */ unsigned count:5; /**< varies by payload type */ #elif G_BYTE_ORDER == G_LITTLE_ENDIAN unsigned count:5; /**< varies by payload type */ unsigned p:1; /**< padding flag */ unsigned version:2; /**< packet type */ #else #error "byte order unknown" #endif unsigned char pt; uint16_t length; } __attribute__ ((packed)); struct rtcp_packet { struct rtcp_header header; uint32_t ssrc; } __attribute__ ((packed)); /* RFC 5761 section 4 */ INLINE int rtcp_demux_is_rtcp(const str *s) { struct rtcp_packet *rtcp; if (s->len < sizeof(*rtcp)) return 0; rtcp = (void *) s->s; if (rtcp->header.pt < 194) return 0; if (rtcp->header.pt > 223) return 0; return 1; } #endif rtpengine-mr12.5.1.22/lib/rtplib.c000066400000000000000000000122071474347554000166010ustar00rootroot00000000000000#include "rtplib.h" #include #include "str.h" #include "log.h" #include "codeclib.h" struct rtp_extension { uint16_t undefined; uint16_t length; } __attribute__ ((packed)); #define RFC_TYPE_FULL(type, name, c_rate, chans, pt) \ [type] = { \ .payload_type = type, \ .encoding = STR_CONST_INIT(#name), \ .encoding_with_params = STR_CONST_INIT(#name "/" #c_rate), \ .clock_rate = c_rate, \ .channels = chans, \ .ptime = pt, \ } #define RFC_TYPE(type, name, c_rate) RFC_TYPE_FULL(type, name, c_rate, 1, 20) const struct rtp_payload_type rfc_rtp_payload_types[] = { RFC_TYPE(0, PCMU, 8000), RFC_TYPE(3, GSM, 8000), RFC_TYPE_FULL(4, G723, 8000, 1, 30), RFC_TYPE(5, DVI4, 8000), RFC_TYPE(6, DVI4, 16000), RFC_TYPE(7, LPC, 8000), RFC_TYPE(8, PCMA, 8000), RFC_TYPE(9, G722, 8000), RFC_TYPE(10, L16, 44100), RFC_TYPE_FULL(11, L16, 44100, 2, 20), RFC_TYPE(12, QCELP, 8000), RFC_TYPE(13, CN, 8000), RFC_TYPE(14, MPA, 90000), RFC_TYPE(15, G728, 8000), RFC_TYPE(16, DVI4, 11025), RFC_TYPE(17, DVI4, 22050), RFC_TYPE(18, G729, 8000), RFC_TYPE(25, CelB, 90000), RFC_TYPE(26, JPEG, 90000), RFC_TYPE(28, nv, 90000), RFC_TYPE(31, H261, 90000), RFC_TYPE(32, MPV, 90000), RFC_TYPE(33, MP2T, 90000), RFC_TYPE(34, H263, 90000), }; const int num_rfc_rtp_payload_types = G_N_ELEMENTS(rfc_rtp_payload_types); int rtp_payload(struct rtp_header **out, str *p, const str *s) { struct rtp_header *rtp; struct rtp_extension *ext; const char *err; err = "short packet (header)"; if (s->len < sizeof(*rtp)) goto error; rtp = (void *) s->s; err = "invalid header version"; if ((rtp->v_p_x_cc & 0xc0) != 0x80) /* version 2 */ goto error; if (!p) goto done; *p = *s; /* fixed header */ str_shift(p, sizeof(*rtp)); /* csrc list */ err = "short packet (CSRC list)"; if (str_shift(p, (rtp->v_p_x_cc & 0xf) * 4)) goto error; if ((rtp->v_p_x_cc & 0x10)) { /* extension */ err = "short packet (extension header)"; if (p->len < sizeof(*ext)) goto error; ext = (void *) p->s; err = "short packet (header extensions)"; if (str_shift(p, 4 + ntohs(ext->length) * 4)) goto error; } done: *out = rtp; return 0; error: ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Error parsing RTP header: %s", err); return -1; } int rtp_padding(const struct rtp_header *header, str *payload) { if (!header || !payload->s) return 0; if (!(header->v_p_x_cc & 0x20)) return 0; // no padding if (payload->len == 0) return -1; unsigned int padding = (unsigned char) payload->s[payload->len - 1]; if (payload->len < padding) return -1; payload->len -= padding; return 0; } const struct rtp_payload_type *rtp_get_rfc_payload_type(unsigned int type) { const struct rtp_payload_type *rtp_pt; if (type >= num_rfc_rtp_payload_types) return NULL; rtp_pt = &rfc_rtp_payload_types[type]; if (!rtp_pt->encoding.s) return NULL; return rtp_pt; } // for one-time init only - better use rtp_get_rfc_payload_type(codec_def->rfc_payload_type) const struct rtp_payload_type *rtp_get_rfc_codec(const str *codec) { for (int i = 0; i < num_rfc_rtp_payload_types; i++) { if (!rfc_rtp_payload_types[i].encoding.s) continue; if (str_cmp_str(codec, &rfc_rtp_payload_types[i].encoding)) continue; return &rfc_rtp_payload_types[i]; } return NULL; } // helper function: matches only basic params, without matching payload type number bool rtp_payload_type_fmt_eq_nf(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { if (a->clock_rate != b->clock_rate) return false; if (a->channels != b->channels) return false; if (str_casecmp_str(&a->encoding, &b->encoding)) return false; return true; } // matches basic params and format params, but not payload type number // returns matching val as per format_cmp_f int rtp_payload_type_fmt_cmp(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { if (!rtp_payload_type_fmt_eq_nf(a, b)) return -1; if (a->codec_def && a->codec_def == b->codec_def) { if (a->codec_def->format_cmp) return a->codec_def->format_cmp(a, b); } if (!a->codec_def) // ignore format of codecs we don't know return 0; if (str_cmp_str(&a->format_parameters, &b->format_parameters)) return -1; return 0; } bool rtp_payload_type_fmt_eq_exact(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { return rtp_payload_type_fmt_cmp(a, b) == 0; } bool rtp_payload_type_fmt_eq_compat(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { return rtp_payload_type_fmt_cmp(a, b) >= 0; } bool rtp_payload_type_eq_exact(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { if (a->payload_type != b->payload_type) return false; return rtp_payload_type_fmt_cmp(a, b) == 0; } bool rtp_payload_type_eq_compat(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { if (a->payload_type != b->payload_type) return false; return rtp_payload_type_fmt_cmp(a, b) >= 0; } // same as rtp_payload_type_fmt_eq_nf plus matching payload type number bool rtp_payload_type_eq_nf(const struct rtp_payload_type *a, const struct rtp_payload_type *b) { if (a->payload_type != b->payload_type) return false; return rtp_payload_type_fmt_eq_nf(a, b); } rtpengine-mr12.5.1.22/lib/rtplib.h000066400000000000000000000100201474347554000165750ustar00rootroot00000000000000#ifndef _RTPLIB_H_ #define _RTPLIB_H_ #include #include #include "str.h" #include "containers.h" typedef const struct codec_def_s codec_def_t; struct rtp_header { unsigned char v_p_x_cc; unsigned char m_pt; uint16_t seq_num; uint32_t timestamp; uint32_t ssrc; uint32_t csrc[]; } __attribute__ ((packed)); enum evs_bw { EVS_BW_NB = 0, EVS_BW_WB = 1, EVS_BW_SWB = 2, EVS_BW_FB = 3, __EVS_BW_MAX, EVS_BW_UNSPEC = -1, }; union codec_format_options { struct { int interleaving; unsigned int mode_set; // bitfield int mode_change_period; unsigned int octet_aligned:1; unsigned int crc:1; unsigned int robust_sorting:1; unsigned int mode_change_neighbor:1; } amr; struct { int mode; } ilbc; struct { // EVS options unsigned int min_br, max_br; unsigned int min_br_send, max_br_send; unsigned int min_br_recv, max_br_recv; enum evs_bw min_bw, max_bw; enum evs_bw min_bw_send, max_bw_send; enum evs_bw min_bw_recv, max_bw_recv; // AMR options unsigned int mode_set; // bitfield int mode_change_period; // bit field options unsigned int hf_only:1; unsigned int amr_io:1; unsigned int no_dtx:1; unsigned int no_dtx_recv:1; int cmr:2; // -1, 0, 1 // AMR bit options unsigned int mode_change_neighbor:1; } evs; struct { // 0 = default, 1 = set, -1 = not set (0) int stereo_recv:2; int stereo_send:2; int fec_recv:2; int fec_send:2; // these are parsed out but ignored int cbr:2; int usedtx:2; int maxplaybackrate; int sprop_maxcapturerate; int maxaveragebitrate; int minptime; // obsolete } opus; }; struct rtp_codec_format { union codec_format_options parsed; unsigned int fmtp_parsed:1; // set if fmtp string was successfully parsed }; struct rtp_payload_type; TYPED_GQUEUE(rtp_pt, struct rtp_payload_type) G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(rtp_pt_q, rtp_pt_q_clear) struct rtp_payload_type { int payload_type; int reverse_payload_type; str encoding_with_params; // "opus/48000/2" str encoding_with_full_params; // "opus/48000/1" str encoding; // "opus" unsigned int clock_rate; // 48000 str encoding_parameters; // "2" int channels; // 2 str format_parameters; // value of a=fmtp str codec_opts; // extra codec-specific options GQueue rtcp_fb; // a=rtcp-fb:... int ptime; // default from RFC int bitrate; codec_def_t *codec_def; rtp_pt_list *prefs_link; // link in `codec_prefs` list struct rtp_codec_format format; // parsed out fmtp unsigned int for_transcoding:1; unsigned int accepted:1; }; extern const struct rtp_payload_type rfc_rtp_payload_types[]; extern const int num_rfc_rtp_payload_types; int rtp_payload(struct rtp_header **out, str *p, const str *s); int rtp_padding(const struct rtp_header *header, str *payload); const struct rtp_payload_type *rtp_get_rfc_payload_type(unsigned int type); const struct rtp_payload_type *rtp_get_rfc_codec(const str *codec); // if not `exact` then also returns true if `a` is compatible with `b` // matches all params __attribute__((nonnull(1, 2))) bool rtp_payload_type_eq_exact(const struct rtp_payload_type *a, const struct rtp_payload_type *b); __attribute__((nonnull(1, 2))) bool rtp_payload_type_eq_compat(const struct rtp_payload_type *a, const struct rtp_payload_type *b); // matches only basic params but not payload type number __attribute__((nonnull(1, 2))) bool rtp_payload_type_fmt_eq_nf(const struct rtp_payload_type *a, const struct rtp_payload_type *b); // matches only basic params and payload type number __attribute__((nonnull(1, 2))) bool rtp_payload_type_eq_nf(const struct rtp_payload_type *, const struct rtp_payload_type *); // matches all params except payload type number __attribute__((nonnull(1, 2))) int rtp_payload_type_fmt_cmp(const struct rtp_payload_type *a, const struct rtp_payload_type *b); __attribute__((nonnull(1, 2))) bool rtp_payload_type_fmt_eq_exact(const struct rtp_payload_type *a, const struct rtp_payload_type *b); __attribute__((nonnull(1, 2))) bool rtp_payload_type_fmt_eq_compat(const struct rtp_payload_type *a, const struct rtp_payload_type *b); #endif rtpengine-mr12.5.1.22/lib/socket.c000066400000000000000000000607721474347554000166070ustar00rootroot00000000000000#include "socket.h" #include #include #include #include #include #include #include #include #include "str.h" #include "auxlib.h" #include "xt_RTPENGINE.h" #include "log.h" static int __ip4_addr_parse(sockaddr_t *dst, const char *src); static int __ip6_addr_parse(sockaddr_t *dst, const char *src); static int __ip4_addr_print(const sockaddr_t *a, char *buf, size_t len); static int __ip6_addr_print(const sockaddr_t *a, char *buf, size_t len); static int __ip6_addr_print_p(const sockaddr_t *a, char *buf, size_t len); static unsigned int __ip4_hash(const sockaddr_t *a); static unsigned int __ip6_hash(const sockaddr_t *a); static int __ip4_eq(const sockaddr_t *a, const sockaddr_t *b); static int __ip6_eq(const sockaddr_t *a, const sockaddr_t *b); static int __ip4_is_specified(const sockaddr_t *a); static int __ip6_is_specified(const sockaddr_t *a); static int __ip_bind(socket_t *s, unsigned int, const sockaddr_t *); static int __ip_connect(socket_t *s, const endpoint_t *); static int __ip_listen(socket_t *s, int backlog); static int __ip_accept(socket_t *s, socket_t *new_sock); static int __ip_timestamping(socket_t *s); static int __ip4_pktinfo(socket_t *s); static int __ip6_pktinfo(socket_t *s); static int __ip4_sockaddr2endpoint(endpoint_t *, const void *); static int __ip6_sockaddr2endpoint(endpoint_t *, const void *); static int __ip4_endpoint2sockaddr(void *, const endpoint_t *); static int __ip6_endpoint2sockaddr(void *, const endpoint_t *); static int __ip4_addrport2sockaddr(void *, const sockaddr_t *, unsigned int); static int __ip6_addrport2sockaddr(void *, const sockaddr_t *, unsigned int); static ssize_t __ip_recvfrom(socket_t *s, void *buf, size_t len, endpoint_t *ep); static ssize_t __ip_recvfrom_ts(socket_t *s, void *buf, size_t len, endpoint_t *ep, struct timeval *); static ssize_t __ip4_recvfrom_to(socket_t *s, void *buf, size_t len, endpoint_t *ep, sockaddr_t *to); static ssize_t __ip6_recvfrom_to(socket_t *s, void *buf, size_t len, endpoint_t *ep, sockaddr_t *to); static ssize_t __ip_sendmsg(socket_t *s, struct msghdr *mh, const endpoint_t *ep); static ssize_t __ip_sendto(socket_t *s, const void *buf, size_t len, const endpoint_t *ep); static int __ip4_tos(socket_t *, unsigned int); static int __ip6_tos(socket_t *, unsigned int); static int __ip_error(socket_t *s); static void __ip4_pmtu_disc(socket_t *, int); static void __ip4_endpoint2kernel(struct re_address *, const endpoint_t *); static void __ip6_endpoint2kernel(struct re_address *, const endpoint_t *); static void __ip4_kernel2endpoint(endpoint_t *ep, const struct re_address *ra); static void __ip6_kernel2endpoint(endpoint_t *ep, const struct re_address *ra); static unsigned int __ip4_packet_header(unsigned char *, const endpoint_t *, const endpoint_t *, unsigned int); static unsigned int __ip6_packet_header(unsigned char *, const endpoint_t *, const endpoint_t *, unsigned int); static void __ip4_cmsg_pktinfo(struct cmsghdr *, const sockaddr_t *); static void __ip6_cmsg_pktinfo(struct cmsghdr *, const sockaddr_t *); static socktype_t __socket_types[] = { { .name = "udp", .name_uc = "UDP", }, }; static struct socket_family __socket_families[__SF_LAST] = { [SF_IP4] = { .af = AF_INET, .ethertype = 0x0800, .sockaddr_size = sizeof(struct sockaddr_in), .name = "IPv4", .rfc_name = "IP4", .unspec_string = "0.0.0.0", .hash = __ip4_hash, .eq = __ip4_eq, .addr_parse = __ip4_addr_parse, .addr_print = __ip4_addr_print, .addr_print_p = __ip4_addr_print, .is_specified = __ip4_is_specified, .sockaddr2endpoint = __ip4_sockaddr2endpoint, .endpoint2sockaddr = __ip4_endpoint2sockaddr, .addrport2sockaddr = __ip4_addrport2sockaddr, .bind = __ip_bind, .connect = __ip_connect, .listen = __ip_listen, .accept = __ip_accept, .timestamping = __ip_timestamping, .pktinfo = __ip4_pktinfo, .recvfrom = __ip_recvfrom, .recvfrom_ts = __ip_recvfrom_ts, .recvfrom_to = __ip4_recvfrom_to, .sendmsg = __ip_sendmsg, .sendto = __ip_sendto, .tos = __ip4_tos, .error = __ip_error, .pmtu_disc = __ip4_pmtu_disc, .endpoint2kernel = __ip4_endpoint2kernel, .kernel2endpoint = __ip4_kernel2endpoint, .packet_header = __ip4_packet_header, .cmsg_pktinfo = __ip4_cmsg_pktinfo, }, [SF_IP6] = { .af = AF_INET6, .ethertype = 0x86dd, .sockaddr_size = sizeof(struct sockaddr_in6), .name = "IPv6", .rfc_name = "IP6", .unspec_string = "::", .hash = __ip6_hash, .eq = __ip6_eq, .addr_parse = __ip6_addr_parse, .addr_print = __ip6_addr_print, .addr_print_p = __ip6_addr_print_p, .is_specified = __ip6_is_specified, .sockaddr2endpoint = __ip6_sockaddr2endpoint, .endpoint2sockaddr = __ip6_endpoint2sockaddr, .addrport2sockaddr = __ip6_addrport2sockaddr, .bind = __ip_bind, .connect = __ip_connect, .listen = __ip_listen, .accept = __ip_accept, .timestamping = __ip_timestamping, .pktinfo = __ip6_pktinfo, .recvfrom = __ip_recvfrom, .recvfrom_ts = __ip_recvfrom_ts, .recvfrom_to = __ip6_recvfrom_to, .sendmsg = __ip_sendmsg, .sendto = __ip_sendto, .tos = __ip6_tos, .error = __ip_error, .endpoint2kernel = __ip6_endpoint2kernel, .kernel2endpoint = __ip6_kernel2endpoint, .packet_header = __ip6_packet_header, .cmsg_pktinfo = __ip6_cmsg_pktinfo, }, }; socktype_t *socktype_udp; static int __ip4_addr_parse(sockaddr_t *dst, const char *src) { if (inet_pton(AF_INET, src, &dst->ipv4) == 1) return 0; return -1; } static int __ip6_addr_parse(sockaddr_t *dst, const char *src) { if (src[0] != '[') { if (inet_pton(AF_INET6, src, &dst->ipv6) == 1) return 0; return -1; } const char *ep; ep = strchr(src, ']'); if (!ep) return -1; unsigned int len = ep - src - 1; char buf[64]; memcpy(buf, src+1, len); buf[len] = '\0'; if (inet_pton(AF_INET6, buf, &dst->ipv6) == 1) return 0; return -1; } static int __ip4_addr_print(const sockaddr_t *a, char *buf, size_t len) { buf[0] = '\0'; if (!inet_ntop(AF_INET, &a->ipv4, buf, len)) return -1; return 0; } static int __ip6_addr_print(const sockaddr_t *a, char *buf, size_t len) { buf[0] = '\0'; if (!inet_ntop(AF_INET6, &a->ipv6, buf, len)) return -1; return 0; } static int __ip6_addr_print_p(const sockaddr_t *a, char *buf, size_t len) { buf[0] = '\0'; if (!inet_ntop(AF_INET6, &a->ipv6, buf+1, len-2)) return -1; buf[0] = '['; strcpy(buf + strlen(buf), "]"); return 0; } static unsigned int __ip4_hash(const sockaddr_t *a) { return a->ipv4.s_addr; } static unsigned int __ip6_hash(const sockaddr_t *a) { return in6_addr_hash(&a->ipv6); } static int __ip4_eq(const sockaddr_t *a, const sockaddr_t *b) { return !memcmp(&a->ipv4, &b->ipv4, sizeof(a->ipv4)); } static int __ip6_eq(const sockaddr_t *a, const sockaddr_t *b) { return !memcmp(&a->ipv6, &b->ipv6, sizeof(a->ipv6)); } static int __ip4_is_specified(const sockaddr_t *a) { return a->ipv4.s_addr != 0; } static int __ip6_is_specified(const sockaddr_t *a) { return a->ipv6.s6_addr32[0] != 0 || a->ipv6.s6_addr32[1] != 0 || a->ipv6.s6_addr32[2] != 0 || a->ipv6.s6_addr32[3] != 0; } static int __ip4_sockaddr2endpoint(endpoint_t *ep, const void *p) { const struct sockaddr_in *sin = p; if (sin->sin_family != AF_INET) return -1; ZERO(*ep); ep->address.family = &__socket_families[SF_IP4]; ep->address.ipv4 = sin->sin_addr; ep->port = ntohs(sin->sin_port); return 0; } static int __ip6_sockaddr2endpoint(endpoint_t *ep, const void *p) { const struct sockaddr_in6 *sin = p; if (sin->sin6_family != AF_INET6) return -1; ZERO(*ep); ep->address.family = &__socket_families[SF_IP6]; ep->address.ipv6 = sin->sin6_addr; ep->port = ntohs(sin->sin6_port); return 0; } void endpoint_parse_sockaddr_storage(endpoint_t *ep, struct sockaddr_storage *sa) { if (sa->ss_family == AF_INET) __ip4_sockaddr2endpoint(ep, sa); else if (sa->ss_family == AF_INET6) __ip6_sockaddr2endpoint(ep, sa); else abort(); } static int __ip4_endpoint2sockaddr(void *p, const endpoint_t *ep) { return __ip4_addrport2sockaddr(p, &ep->address, ep->port); } static int __ip6_endpoint2sockaddr(void *p, const endpoint_t *ep) { return __ip6_addrport2sockaddr(p, &ep->address, ep->port); } static int __ip4_addrport2sockaddr(void *p, const sockaddr_t *sa, unsigned int port) { struct sockaddr_in *sin = p; ZERO(*sin); sin->sin_family = AF_INET; sin->sin_port = htons(port); if (sa) sin->sin_addr = sa->ipv4; return 0; } static int __ip6_addrport2sockaddr(void *p, const sockaddr_t *sa, unsigned int port) { struct sockaddr_in6 *sin = p; ZERO(*sin); sin->sin6_family = AF_INET6; sin->sin6_port = htons(port); if (sa) sin->sin6_addr = sa->ipv6; return 0; } static int __ip_bind(socket_t *s, unsigned int port, const sockaddr_t *a) { struct sockaddr_storage sin; s->family->addrport2sockaddr(&sin, a, port); if (bind(s->fd, (struct sockaddr *) &sin, s->family->sockaddr_size)) { __C_DBG("bind fail, fd=%d, port=%d", s->fd, s->local.port); return -1; } else { __C_DBG("bind success, fd=%d, port=%d", s->fd, s->local.port); } return 0; } static int __ip_connect(socket_t *s, const endpoint_t *ep) { struct sockaddr_storage sin; s->family->endpoint2sockaddr(&sin, ep); if (connect(s->fd, (struct sockaddr *) &sin, s->family->sockaddr_size)) { __C_DBG("connect fail, fd=%d, port=%d", s->fd, s->local.port); return -1; } else { __C_DBG("connect success, fd=%d, port=%d", s->fd, s->local.port); } return 0; } static int __ip_listen(socket_t *s, int backlog) { return listen(s->fd, backlog); } static int __ip_accept(socket_t *s, socket_t *newsock) { int nfd; struct sockaddr_storage sin; socklen_t sinlen; ZERO(*newsock); sinlen = sizeof(sin); nfd = accept(s->fd, (struct sockaddr *) &sin, &sinlen); if (nfd == -1) { __C_DBG("accept fail, fd=%d, port=%d", s->fd, s->local.port); return -1; } newsock->fd = nfd; newsock->family = s->family; newsock->local = s->local; s->family->sockaddr2endpoint(&newsock->remote, &sin); return 0; } INLINE ssize_t __ip_recvfrom_options(socket_t *s, void *buf, size_t len, endpoint_t *ep, struct timeval *tv, sockaddr_t *to, bool (*parse)(struct cmsghdr *, sockaddr_t *)) { ssize_t ret; struct sockaddr_storage sin; struct msghdr msg; struct iovec iov; char ctrl[64]; ZERO(msg); msg.msg_name = &sin; msg.msg_namelen = s->family->sockaddr_size; msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = ctrl; msg.msg_controllen = sizeof(ctrl); ZERO(iov); iov.iov_base = buf; iov.iov_len = len; ret = recvmsg(s->fd, &msg, 0); if (ret < 0) return ret; s->family->sockaddr2endpoint(ep, &sin); socket_recvfrom_parse_cmsg(&tv, &to, parse, &msg, CMSG_FIRSTHDR(&msg), CMSG_NXTHDR(&msg, cm)); return ret; } static ssize_t __ip_recvfrom_ts(socket_t *s, void *buf, size_t len, endpoint_t *ep, struct timeval *tv) { return __ip_recvfrom_options(s, buf, len, ep, tv, NULL, NULL); } static ssize_t __ip_recvfrom(socket_t *s, void *buf, size_t len, endpoint_t *ep) { return __ip_recvfrom_options(s, buf, len, ep, NULL, NULL, NULL); } INLINE bool __ip4_pktinfo_parse(struct cmsghdr *cm, sockaddr_t *to) { if (cm->cmsg_level != IPPROTO_IP || cm->cmsg_type != IP_PKTINFO) return false; struct in_pktinfo *pi = (void *) CMSG_DATA(cm); to->ipv4 = pi->ipi_addr; to->family = __get_socket_family_enum(SF_IP4); return true; } INLINE bool __ip6_pktinfo_parse(struct cmsghdr *cm, sockaddr_t *to) { if (cm->cmsg_level != IPPROTO_IPV6 || cm->cmsg_type != IPV6_PKTINFO) return false; struct in6_pktinfo *pi = (void *) CMSG_DATA(cm); to->ipv6 = pi->ipi6_addr; to->family = __get_socket_family_enum(SF_IP6); return true; } static ssize_t __ip4_recvfrom_to(socket_t *s, void *buf, size_t len, endpoint_t *ep, sockaddr_t *to) { return __ip_recvfrom_options(s, buf, len, ep, NULL, to, __ip4_pktinfo_parse); } static ssize_t __ip6_recvfrom_to(socket_t *s, void *buf, size_t len, endpoint_t *ep, sockaddr_t *to) { return __ip_recvfrom_options(s, buf, len, ep, NULL, to, __ip6_pktinfo_parse); } static ssize_t __ip_sendmsg(socket_t *s, struct msghdr *mh, const endpoint_t *ep) { struct sockaddr_storage sin; s->family->endpoint2sockaddr(&sin, ep); mh->msg_name = &sin; mh->msg_namelen = s->family->sockaddr_size; return sendmsg(s->fd, mh, 0); } static ssize_t __ip_sendto(socket_t *s, const void *buf, size_t len, const endpoint_t *ep) { struct sockaddr_storage sin; if (!ep->address.family) return -1; ep->address.family->endpoint2sockaddr(&sin, ep); return sendto(s->fd, buf, len, 0, (void *) &sin, ep->address.family->sockaddr_size); } static int __ip4_tos(socket_t *s, unsigned int tos) { unsigned char ctos; ctos = tos; if (setsockopt(s->fd, IPPROTO_IP, IP_TOS, &ctos, sizeof(ctos))) ilog(LOG_ERR, "Failed to set TOS on IPv4 socket: %s", strerror(errno)); return 0; } static int __ip6_tos(socket_t *s, unsigned int tos) { if (setsockopt(s->fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof(tos))) ilog(LOG_ERR, "Failed to set TOS on IPv6 socket: %s", strerror(errno)); return 0; } static int __ip_error(socket_t *s) { int optval; socklen_t optlen = sizeof(optval); if (getsockopt(s->fd, SOL_SOCKET, SO_ERROR, &optval, &optlen)) return -1; return optval; } static void __ip4_pmtu_disc(socket_t *s, int opt) { if (setsockopt(s->fd, IPPROTO_IP, IP_MTU_DISCOVER, &opt, sizeof(opt))) ilog(LOG_ERR, "Failed to set PMTU discovery option on IPv4 socket: %s", strerror(errno)); } static int __ip_timestamping(socket_t *s) { int one = 1; if (setsockopt(s->fd, SOL_SOCKET, SO_TIMESTAMP, &one, sizeof(one))) return -1; return 0; } static int __ip4_pktinfo(socket_t *s) { int one = 1; if (setsockopt(s->fd, IPPROTO_IP, IP_PKTINFO, &one, sizeof(one))) return -1; return 0; } static void __ip4_cmsg_pktinfo(struct cmsghdr *cm, const sockaddr_t *addr) { cm->cmsg_level = IPPROTO_IP; cm->cmsg_type = IP_PKTINFO; struct in_pktinfo *pi = (void *) CMSG_DATA(cm); ZERO(*pi); pi->ipi_spec_dst = addr->ipv4; cm->cmsg_len = CMSG_LEN(sizeof(*pi)); } static int __ip6_pktinfo(socket_t *s) { int one = 1; if (setsockopt(s->fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &one, sizeof(one))) return -1; return 0; } static void __ip6_cmsg_pktinfo(struct cmsghdr *cm, const sockaddr_t *addr) { cm->cmsg_level = IPPROTO_IPV6; cm->cmsg_type = IPV6_PKTINFO; struct in6_pktinfo *pi = (void *) CMSG_DATA(cm); ZERO(*pi); pi->ipi6_addr = addr->ipv6; cm->cmsg_len = CMSG_LEN(sizeof(*pi)); } static void __ip4_endpoint2kernel(struct re_address *ra, const endpoint_t *ep) { ZERO(*ra); ra->family = AF_INET; ra->u.ipv4 = ep->address.ipv4.s_addr; ra->port = ep->port; } static void __ip6_endpoint2kernel(struct re_address *ra, const endpoint_t *ep) { ZERO(*ra); ra->family = AF_INET6; memcpy(ra->u.ipv6, &ep->address.ipv6, sizeof(ra->u.ipv6)); ra->port = ep->port; } void kernel2endpoint(endpoint_t *ep, const struct re_address *ra) { ZERO(*ep); if (ra->family == AF_INET) ep->address.family = __get_socket_family_enum(SF_IP4); else if (ra->family == AF_INET6) ep->address.family = __get_socket_family_enum(SF_IP6); else abort(); ep->port = ra->port; ep->address.family->kernel2endpoint(ep, ra); } static void __ip4_kernel2endpoint(endpoint_t *ep, const struct re_address *ra) { ep->address.ipv4.s_addr = ra->u.ipv4; } static void __ip6_kernel2endpoint(endpoint_t *ep, const struct re_address *ra) { memcpy(&ep->address.ipv6, ra->u.ipv6, sizeof(ep->address.ipv6)); } static unsigned int __udp_packet_header(unsigned char *out, unsigned int src, unsigned int dst, unsigned int payload_len) { struct udphdr *udp = (void *) out; ZERO(*udp); udp->source = htons(src); udp->dest = htons(dst); udp->len = htons(sizeof(*udp) + payload_len); return sizeof(*udp); } static unsigned int __ip4_packet_header(unsigned char *out, const endpoint_t *src, const endpoint_t *dst, unsigned int payload_len) { struct iphdr *iph = (void *) out; unsigned char *nxt = (void *) out + sizeof(*iph); unsigned int udp_len = __udp_packet_header(nxt, src->port, dst->port, payload_len); ZERO(*iph); iph->ihl = sizeof(*iph) >> 2; // normally 5 ~ 20 bytes iph->version = 4; iph->tot_len = htons(sizeof(*iph) + udp_len + payload_len); iph->ttl = 64; iph->protocol = 17; // UDP iph->saddr = src->address.ipv4.s_addr; iph->daddr = dst->address.ipv4.s_addr; return sizeof(*iph) + udp_len; } static unsigned int __ip6_packet_header(unsigned char *out, const endpoint_t *src, const endpoint_t *dst, unsigned int payload_len) { struct ip6_hdr *iph = (void *) out; unsigned char *nxt = (void *) out + sizeof(*iph); unsigned int udp_len = __udp_packet_header(nxt, src->port, dst->port, payload_len); ZERO(*iph); iph->ip6_vfc = 0x60; // version 6; //iph->ip6_flow = htonl(0x60000000); // version 6 iph->ip6_plen = htons(udp_len + payload_len); iph->ip6_nxt = 17; // UDP iph->ip6_hlim = 64; iph->ip6_src = src->address.ipv6; iph->ip6_dst = dst->address.ipv6; return sizeof(*iph) + udp_len; } unsigned int sockaddr_hash(const sockaddr_t *a) { return a->family->hash(a) ^ g_direct_hash(a->family); } bool sockaddr_eq(const sockaddr_t *a, const sockaddr_t *b) { return a->family == b->family && a->family->eq(a, b); } guint sockaddr_t_hash(gconstpointer a) { return sockaddr_hash(a); } gint sockaddr_t_eq(gconstpointer a, gconstpointer b) { return sockaddr_eq(a, b); } unsigned int endpoint_hash(const endpoint_t *a) { return sockaddr_hash(&a->address) ^ a->port; } gboolean endpoint_eq(const endpoint_t *a, const endpoint_t *b) { return sockaddr_eq(&a->address, &b->address) && a->port == b->port; } int sockaddr_parse_any(sockaddr_t *dst, const char *src) { int i; sockfamily_t *fam; for (i = 0; i < __SF_LAST; i++) { fam = &__socket_families[i]; if (!fam->addr_parse(dst, src)) { dst->family = fam; return 0; } } return -1; } int sockaddr_parse_any_str(sockaddr_t *dst, const str *src) { char buf[64]; if (!src || !src->s) return -1; if (src->len >= sizeof(buf)) return -1; sprintf(buf, STR_FORMAT, STR_FMT(src)); return sockaddr_parse_any(dst, buf); } int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src) { char buf[64]; if (src->len >= sizeof(buf)) return -1; if (!fam) return -1; sprintf(buf, STR_FORMAT, STR_FMT(src)); dst->family = fam; return fam->addr_parse(dst, buf); } sockfamily_t *get_socket_family_rfc(const str *s) { int i; sockfamily_t *fam; for (i = 0; i < __SF_LAST; i++) { fam = &__socket_families[i]; if (!str_cmp(s, fam->rfc_name)) return fam; } return NULL; } sockfamily_t *__get_socket_family_enum(enum socket_families i) { return &__socket_families[i]; } int endpoint_parse_any(endpoint_t *d, const char *s) { int i; sockfamily_t *fam; unsigned int len; const char *ep; char buf[64]; ep = strrchr(s, ':'); if (!ep) { if (strchr(s, '.')) return -1; /* just a port number */ d->port = atoi(s); ZERO(d->address); d->address.family = __get_socket_family_enum(SF_IP4); return 0; } len = ep - s; if (len >= sizeof(buf)) return -1; d->port = atoi(ep+1); if (d->port > 0xffff) return -1; sprintf(buf, "%.*s", len, s); for (i = 0; i < __SF_LAST; i++) { fam = &__socket_families[i]; if (!fam->addr_parse(&d->address, buf)) { d->address.family = fam; return 0; } } return -1; } static int socket_addrinfo_convert(sockaddr_t *a, struct addrinfo *res) { if (res->ai_family == AF_INET) { // IPv4 struct sockaddr_in *ipv4 = (struct sockaddr_in *) res->ai_addr; a->ipv4 = ipv4->sin_addr; a->family = &__socket_families[SF_IP4]; } else if (res->ai_family == AF_INET6) { struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *) res->ai_addr; a->ipv6 = ipv6->sin6_addr; a->family = &__socket_families[SF_IP6]; } else return -1; return 0; } int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s) { struct addrinfo hints, *res; int status; int ret; memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_protocol = IPPROTO_UDP; hints.ai_socktype = SOCK_DGRAM; if ((status = getaddrinfo(s, NULL, &hints, &res)) != 0) { __C_DBG("getaddrinfo failed for %s, status is \"%s\"\n", s, gai_strerror(status)); return -1; } ret = socket_addrinfo_convert(a, res); if (a2) { if (ret == 0 && res->ai_next) { struct addrinfo *next = res->ai_next; ret = socket_addrinfo_convert(a2, next); } else ZERO(*a2); } freeaddrinfo(res); return ret; } int endpoint_parse_any_getaddrinfo_alt(endpoint_t *d, endpoint_t *d2, const char *s) { unsigned int len; const char *ep; char buf[64]; ep = strrchr(s, ':'); if (!ep) { if (strchr(s, '.')) return -1; /* just a port number */ d->port = atoi(s); ZERO(d->address); d->address.family = __get_socket_family_enum(SF_IP4); if (d2) { ZERO(*d2); *d2 = *d; ipv46_any_convert(d2); } return 0; } len = ep - s; if (len >= sizeof(buf)) return -1; d->port = atoi(ep+1); if (d->port > 0xffff) return -1; /* original s was [IPv6]:port */ if ((len > 2) && (s[0] == '[') && (s[len - 1] == ']')) { sprintf(buf, "%.*s", len - 2, s + 1); } else { sprintf(buf, "%.*s", len, s); } if (sockaddr_getaddrinfo_alt(&d->address, d2 ? &d2->address : NULL, buf)) return -1; if (d2) { if (d2->address.family) d2->port = d->port; else ZERO(*d2); } return 0; } static int __socket(socket_t *r, int type, sockfamily_t *fam) { ZERO(*r); r->family = fam; r->fd = socket(fam->af, type, 0); if (r->fd == -1) { __C_DBG("socket() syscall fail, fd=%d", r->fd); return -1; } else { __C_DBG("socket() syscall success, fd=%d", r->fd); } return 0; } int open_socket(socket_t *r, int type, unsigned int port, const sockaddr_t *sa) { sockfamily_t *fam; fam = sa->family; if (__socket(r, type, fam)) { __C_DBG("open socket fail, fd=%d", r->fd); return -1; } nonblock(r->fd); reuseaddr(r->fd); if (r->family->af == AF_INET6) ipv6only(r->fd, 1); if (port > 0xffff) { __C_DBG("open socket fail, port=%d > 0xfffffd", port); goto fail; } if (fam->bind(r, port, sa)) { __C_DBG("open socket fail, fd=%d, port=%d", r->fd, port); goto fail; } r->local.port = port; r->local.address = *sa; __C_DBG("open socket success, fd=%d, port=%d", r->fd, port); return 0; fail: close_socket(r); return -1; } int open_v46_socket(socket_t *r, int type) { int ret = __socket(r, type, &__socket_families[SF_IP6]); if (ret) { if (errno == EAFNOSUPPORT) ret = __socket(r, type, &__socket_families[SF_IP4]); if (ret) { __C_DBG("open socket fail"); return -1; } } else ipv6only(r->fd, 0); nonblock(r->fd); return 0; } void dummy_socket(socket_t *r, const sockaddr_t *sa) { ZERO(*r); r->fd = -1; r->family = sa->family; r->local.address = *sa; r->remote.address.family = sa->family; } int connect_socket(socket_t *r, int type, const endpoint_t *ep) { sockfamily_t *fam; fam = ep->address.family; if (__socket(r, type, fam)) return -1; if (fam->connect(r, ep)) goto fail; r->remote = *ep; return 0; fail: close_socket(r); return -1; } int connect_socket_retry(socket_t *r) { int ret = 0; if (r->family->connect(r, &r->remote)) { if (errno != EINPROGRESS && errno != EALREADY && errno != EISCONN) goto fail; if (errno != EISCONN) ret = 1; } return ret; fail: close_socket(r); return -1; } int connect_socket_nb(socket_t *r, int type, const endpoint_t *ep) { sockfamily_t *fam; fam = ep->address.family; if (__socket(r, type, fam)) return -1; nonblock(r->fd); r->remote = *ep; return connect_socket_retry(r); } int reset_socket(socket_t *r) { if (!r) return -1; r->fd = -1; ZERO(r->local); ZERO(r->remote); return 0; } int close_socket(socket_t *r) { if (!r) { __C_DBG("close() syscall not called, no socket"); return -1; } if (r->fd == -1) { __C_DBG("close() syscall not called, fd=%d", r->fd); return -1; } if (close(r->fd) != 0) { __C_DBG("close() syscall fail, fd=%d", r->fd); return -1; } __C_DBG("close() syscall success, fd=%d", r->fd); reset_socket(r); return 0; } // moves the contents of the socket object: // dst must be initialised // src will be reset and cleared, as if it was closed // does not actually close the socket void move_socket(socket_t *dst, socket_t *src) { *dst = *src; reset_socket(src); } socktype_t *get_socket_type(const str *s) { int i; socktype_t *tp; for (i = 0; i < G_N_ELEMENTS(__socket_types); i++) { tp = &__socket_types[i]; if (!str_cmp(s, tp->name)) return tp; if (!str_cmp(s, tp->name_uc)) return tp; } return NULL; } socktype_t *get_socket_type_c(const char *s) { int i; socktype_t *tp; for (i = 0; i < G_N_ELEMENTS(__socket_types); i++) { tp = &__socket_types[i]; if (!strcmp(s, tp->name)) return tp; if (!strcmp(s, tp->name_uc)) return tp; } return NULL; } void socket_init(void) { int i; for (i = 0; i < __SF_LAST; i++) __socket_families[i].idx = i; socktype_udp = get_socket_type_c("udp"); } rtpengine-mr12.5.1.22/lib/socket.h000066400000000000000000000254301474347554000166040ustar00rootroot00000000000000#ifndef _SOCKET_H_ #define _SOCKET_H_ #include #include #include #include #include #include #include #include "containers.h" enum socket_families { SF_IP4 = 0, SF_IP6, __SF_LAST }; struct socket_address; struct socket_type; struct socket_family; struct endpoint; struct socket; struct re_address; typedef struct socket_address sockaddr_t; typedef struct endpoint endpoint_t; typedef struct socket socket_t; typedef const struct socket_type socktype_t; typedef const struct socket_family sockfamily_t; TYPED_GQUEUE(socket, socket_t) #include "str.h" #define MAX_PACKET_HEADER_LEN 48 // 40 bytes IPv6 + 8 bytes UDP struct local_intf; struct socket_type { const char *name; /* lower case */ const char *name_uc; /* upper case */ }; struct socket_family { int idx; int af; unsigned int ethertype; size_t sockaddr_size; const char *name; /* "IPv4" */ const char *rfc_name; /* "IP4" */ const char *unspec_string; /* 0.0.0.0 or :: */ unsigned int (*hash)(const sockaddr_t *); int (*eq)(const sockaddr_t *, const sockaddr_t *); int (*addr_parse)(sockaddr_t *, const char *); int (*addr_print)(const sockaddr_t *, char *, size_t); int (*addr_print_p)(const sockaddr_t *, char *, size_t); int (*is_specified)(const sockaddr_t *); int (*sockaddr2endpoint)(endpoint_t *, const void *); int (*endpoint2sockaddr)(void *, const endpoint_t *); int (*addrport2sockaddr)(void *, const sockaddr_t *, unsigned int); int (*bind)(socket_t *, unsigned int, const sockaddr_t *); int (*connect)(socket_t *, const endpoint_t *); int (*listen)(socket_t *, int); int (*accept)(socket_t *, socket_t *); int (*timestamping)(socket_t *); int (*pktinfo)(socket_t *); ssize_t (*recvfrom)(socket_t *, void *, size_t, endpoint_t *); ssize_t (*recvfrom_ts)(socket_t *, void *, size_t, endpoint_t *, struct timeval *); ssize_t (*recvfrom_to)(socket_t *, void *, size_t, endpoint_t *, sockaddr_t *); ssize_t (*sendmsg)(socket_t *, struct msghdr *, const endpoint_t *); ssize_t (*sendto)(socket_t *, const void *, size_t, const endpoint_t *); int (*tos)(socket_t *, unsigned int); void (*pmtu_disc)(socket_t *, int); int (*error)(socket_t *); void (*endpoint2kernel)(struct re_address *, const endpoint_t *); void (*kernel2endpoint)(endpoint_t *, const struct re_address *); unsigned int (*packet_header)(unsigned char *, const endpoint_t *, const endpoint_t *, unsigned int); void (*cmsg_pktinfo)(struct cmsghdr *, const sockaddr_t *); }; struct socket_address { sockfamily_t *family; union { struct in_addr ipv4; struct in6_addr ipv6; }; }; struct endpoint { sockaddr_t address; unsigned int port; }; struct socket { int fd; sockfamily_t *family; endpoint_t local; endpoint_t remote; }; extern socktype_t *socktype_udp; #include "auxlib.h" INLINE int sockaddr_print(const sockaddr_t *a, char *buf, size_t len) { if (!a->family) { buf[0] = '\0'; return 0; } return a->family->addr_print(a, buf, len); } INLINE char *sockaddr_print_buf(const sockaddr_t *a) { char *buf = get_thread_buf(); if (!a->family) { buf[0] = '\0'; return buf; } sockaddr_print(a, buf, THREAD_BUF_SIZE); return buf; } INLINE int sockaddr_print_p(const sockaddr_t *a, char *buf, size_t len) { if (!a->family) { buf[0] = '\0'; return 0; } return a->family->addr_print_p(a, buf, len); } INLINE char *sockaddr_print_p_buf(const sockaddr_t *a) { char *buf = get_thread_buf(); sockaddr_print_p(a, buf, THREAD_BUF_SIZE); return buf; } INLINE int sockaddr_print_port(const sockaddr_t *a, unsigned int port, char *buf, size_t len) { if (!a->family) { buf[0] = '\0'; return 0; } if (a->family->addr_print_p(a, buf, len-6)) return -1; sprintf(buf + strlen(buf), ":%u", port); return 0; } INLINE char *sockaddr_print_port_buf(const sockaddr_t *a, unsigned int port) { char *buf = get_thread_buf(); sockaddr_print_port(a, port, buf, THREAD_BUF_SIZE); return buf; } INLINE int endpoint_print(const endpoint_t *ep, char *buf, size_t len) { return sockaddr_print_port(&ep->address, ep->port, buf, len); } INLINE char *endpoint_print_buf(const endpoint_t *ep) { return sockaddr_print_port_buf(&ep->address, ep->port); } INLINE int is_addr_unspecified(const sockaddr_t *a) { if (!a || !a->family) return 1; return !a->family->is_specified(a); } #define socket_recvfrom(s,a...) (s)->family->recvfrom((s), a) #define socket_recvfrom_ts(s,a...) (s)->family->recvfrom_ts((s), a) #define socket_recvfrom_to(s,a...) (s)->family->recvfrom_to((s), a) #define socket_sendmsg(s,a...) (s)->family->sendmsg((s), a) #define socket_sendto(s,a...) (s)->family->sendto((s), a) #define socket_error(s) (s)->family->error((s)) #define socket_timestamping(s) (s)->family->timestamping((s)) #define socket_pktinfo(s) (s)->family->pktinfo((s)) INLINE ssize_t socket_sendiov(socket_t *s, const struct iovec *v, unsigned int len, const endpoint_t *dst, const sockaddr_t *src) { struct msghdr mh = {0}; char ctrl[64] = {0}; mh.msg_iov = (void *) v; mh.msg_iovlen = len; if (src && src->family) { mh.msg_control = ctrl; mh.msg_controllen = sizeof(ctrl); struct cmsghdr *cm = CMSG_FIRSTHDR(&mh); s->family->cmsg_pktinfo(cm, src); cm = CMSG_NXTHDR(&mh, cm); assert(cm != NULL); mh.msg_controllen = (char *) cm - ctrl; } return socket_sendmsg(s, &mh, dst); } INLINE ssize_t socket_sendto_from(socket_t *s, const void *b, size_t l, const endpoint_t *dst, sockaddr_t *src) { return socket_sendiov(s, &(struct iovec) { .iov_base = (void *) b, .iov_len = l }, l, dst, src); } #define socket_recvfrom_parse_cmsg(tv, to, parse_to, msgh, firsthdr, nexthdr) do { \ if ((*tv) || (*to)) { \ struct cmsghdr *cm; \ for (cm = firsthdr; cm; cm = nexthdr) { \ if (cm->cmsg_level == SOL_SOCKET && cm->cmsg_type == SO_TIMESTAMP && (*tv)) { \ *(*tv) = *((struct timeval *) CMSG_DATA(cm)); \ (*tv) = NULL; \ } \ if (parse && (*to) && parse_to(cm, (*to))) \ (*to) = NULL; \ } \ if (G_UNLIKELY((*tv))) { \ ilog(LOG_WARNING, "No receive timestamp received from kernel"); \ ZERO(*(*tv)); \ } \ if (G_UNLIKELY((*to))) { \ ilog(LOG_WARNING, "No local address received from kernel"); \ ZERO(*(*to)); \ } \ } \ if (G_UNLIKELY(((msgh)->msg_flags & MSG_TRUNC))) \ ilog(LOG_WARNING, "Kernel indicates that data was truncated"); \ if (G_UNLIKELY(((msgh)->msg_flags & MSG_CTRUNC))) \ ilog(LOG_WARNING, "Kernel indicates that ancillary data was truncated"); \ } while (0) /* XXX obsolete these? */ INLINE void usertimeout(int fd, unsigned int val) { // coverity[check_return : FALSE] setsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &val, sizeof(val)); } INLINE void nonblock(int fd) { // coverity[check_return : FALSE] fcntl(fd, F_SETFL, O_NONBLOCK); } INLINE void reuseaddr(int fd) { int one = 1; // coverity[check_return : FALSE] setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)); } INLINE void ipv6only(int fd, int yn) { // coverity[check_return : FALSE] setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &yn, sizeof(yn)); } INLINE int socket_cpu_affinity(socket_t *s, int cpu) { #ifndef SO_INCOMING_CPU errno = ENOTSUP; return -1; #else return setsockopt(s->fd, SOL_SOCKET, SO_INCOMING_CPU, &cpu, sizeof(cpu)); #endif } void socket_init(void); int open_socket(socket_t *r, int type, unsigned int port, const sockaddr_t *); int open_v46_socket(socket_t *r, int type); int connect_socket(socket_t *r, int type, const endpoint_t *ep); int connect_socket_nb(socket_t *r, int type, const endpoint_t *ep); // 1 == in progress int connect_socket_retry(socket_t *r); // retries connect() while in progress int close_socket(socket_t *r); int reset_socket(socket_t *r); void move_socket(socket_t *dst, socket_t *src); void dummy_socket(socket_t *r, const sockaddr_t *); sockfamily_t *get_socket_family_rfc(const str *s); sockfamily_t *__get_socket_family_enum(enum socket_families); int sockaddr_parse_any(sockaddr_t *dst, const char *src); int sockaddr_parse_any_str(sockaddr_t *dst, const str *src); int sockaddr_parse_str(sockaddr_t *dst, sockfamily_t *fam, const str *src); int endpoint_parse_any(endpoint_t *, const char *); // address (ip) optional int sockaddr_getaddrinfo_alt(sockaddr_t *a, sockaddr_t *a2, const char *s); int endpoint_parse_any_getaddrinfo_alt(endpoint_t *d, endpoint_t *d2, const char *s); // address (ip or hostname) optional INLINE int endpoint_parse_any_getaddrinfo(endpoint_t *d, const char *s); void endpoint_parse_sockaddr_storage(endpoint_t *, struct sockaddr_storage *); void kernel2endpoint(endpoint_t *ep, const struct re_address *ra); unsigned int sockaddr_hash(const sockaddr_t *); bool sockaddr_eq(const sockaddr_t *, const sockaddr_t *); guint sockaddr_t_hash(gconstpointer); // for glib gint sockaddr_t_eq(gconstpointer, gconstpointer); // true/false, for glib unsigned int endpoint_hash(const endpoint_t *); gboolean endpoint_eq(const endpoint_t *, const endpoint_t *); /* true/false */ INLINE sockfamily_t *get_socket_family_enum(enum socket_families i) { if (i >= __SF_LAST) return NULL; return __get_socket_family_enum(i); } INLINE int endpoint_parse_port_any(endpoint_t *e, const char *p, unsigned int port) { if (port > 0xffff) return -1; e->port = port; return sockaddr_parse_any(&e->address, p); } // address (ip) required INLINE int endpoint_parse_any_full(endpoint_t *d, const char *s) { int ret; ret = endpoint_parse_any(d, s); if (ret) return ret; if (is_addr_unspecified(&d->address)) return -1; return 0; } // address (ip or hostname) required INLINE int endpoint_parse_any_getaddrinfo_full(endpoint_t *d, const char *s) { int ret; ret = endpoint_parse_any_getaddrinfo(d, s); if (ret) return ret; if (is_addr_unspecified(&d->address)) return -1; return 0; } INLINE int sockaddr_getaddrinfo(sockaddr_t *a, const char *s) { return sockaddr_getaddrinfo_alt(a, NULL, s); } INLINE int endpoint_parse_any_getaddrinfo(endpoint_t *d, const char *s) { return endpoint_parse_any_getaddrinfo_alt(d, NULL, s); } INLINE int ipv46_any_convert(endpoint_t *ep) { if (ep->address.family->af != AF_INET) return 0; if (!is_addr_unspecified(&ep->address)) return 0; ep->address.family = __get_socket_family_enum(SF_IP6); ZERO(ep->address.ipv6); return 1; } // needs a writeable str INLINE int endpoint_parse_any_str(endpoint_t *d, str *s) { char tmp = s->s[s->len]; s->s[s->len] = '\0'; int ret = endpoint_parse_any(d, s->s); s->s[s->len] = tmp; return ret; } #define endpoint_packet_header(o, src, dst, len) (dst)->address.family->packet_header(o, src, dst, len) INLINE void set_tos(socket_t *s, unsigned int tos) { s->family->tos(s, tos); } INLINE void set_pmtu_disc(socket_t *s, int opt) { if (s->family->pmtu_disc) s->family->pmtu_disc(s, opt); } socktype_t *get_socket_type(const str *s); socktype_t *get_socket_type_c(const char *s); #endif rtpengine-mr12.5.1.22/lib/spandsp_logging-01.h000066400000000000000000000005031474347554000207020ustar00rootroot00000000000000#define SPAN_LOG_ARGS int level, const char *text #define PHASE_E_HANDLER_ARGS t30_state_t *s, void *user_data, int result INLINE void my_span_set_log(logging_state_t *ls, message_handler_func_t h) { span_log_set_message_handler(ls, h); } INLINE void my_span_mh(message_handler_func_t h) { span_set_message_handler(h); } rtpengine-mr12.5.1.22/lib/spandsp_logging-02.h000066400000000000000000000005201474347554000207020ustar00rootroot00000000000000#define SPAN_LOG_ARGS void *user_data, int level, const char *text #define PHASE_E_HANDLER_ARGS void *user_data, int result INLINE void my_span_set_log(logging_state_t *ls, message_handler_func_t h) { span_log_set_message_handler(ls, h, NULL); } INLINE void my_span_mh(message_handler_func_t h) { span_set_message_handler(h, NULL); } rtpengine-mr12.5.1.22/lib/spandsp_logging-test.c000066400000000000000000000006511474347554000214400ustar00rootroot00000000000000#ifdef WITH_TRANSCODING #include #include #include #include #include #include #include "compat.h" #include "spandsp_logging.h" void logfunc(SPAN_LOG_ARGS) { return; } int main(void) { return 0; logging_state_t *ls = NULL; my_span_set_log(ls, logfunc); my_span_mh(NULL); return 0; } #else int main(void) { return 0; } #endif rtpengine-mr12.5.1.22/lib/ssllib.c000066400000000000000000000030501474347554000165710ustar00rootroot00000000000000#include "ssllib.h" #include #include #include "auxlib.h" #if OPENSSL_VERSION_NUMBER >= 0x30000000L EVP_MAC_CTX *rtpe_hmac_sha1_base; #endif #if OPENSSL_VERSION_NUMBER < 0x10100000L static mutex_t *openssl_locks; static void cb_openssl_threadid(CRYPTO_THREADID *tid) { pthread_t me; me = pthread_self(); if (sizeof(me) == sizeof(void *)) CRYPTO_THREADID_set_pointer(tid, (void *) me); else CRYPTO_THREADID_set_numeric(tid, (unsigned long) me); } static void cb_openssl_lock(int mode, int type, const char *file, int line) { if ((mode & CRYPTO_LOCK)) mutex_lock(&openssl_locks[type]); else mutex_unlock(&openssl_locks[type]); } static void make_OpenSSL_thread_safe(void) { int i; openssl_locks = malloc(sizeof(*openssl_locks) * CRYPTO_num_locks()); for (i = 0; i < CRYPTO_num_locks(); i++) mutex_init(&openssl_locks[i]); CRYPTO_THREADID_set_callback(cb_openssl_threadid); CRYPTO_set_locking_callback(cb_openssl_lock); } #endif void rtpe_ssl_init(void) { #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) SSL_library_init(); SSL_load_error_strings(); make_OpenSSL_thread_safe(); #endif #if OPENSSL_VERSION_NUMBER >= 0x30000000L EVP_MAC *rtpe_evp_hmac = EVP_MAC_fetch(NULL, "hmac", NULL); assert(rtpe_evp_hmac != NULL); rtpe_hmac_sha1_base = EVP_MAC_CTX_new(rtpe_evp_hmac); assert(rtpe_hmac_sha1_base != NULL); static const OSSL_PARAM params[2] = { OSSL_PARAM_utf8_string("digest", "sha-1", 5), OSSL_PARAM_END, }; EVP_MAC_CTX_set_params(rtpe_hmac_sha1_base, params); #endif } rtpengine-mr12.5.1.22/lib/ssllib.h000066400000000000000000000003101474347554000165720ustar00rootroot00000000000000#ifndef __SSLLIB_H__ #define __SSLLIB_H__ #include #if OPENSSL_VERSION_NUMBER >= 0x30000000L extern EVP_MAC_CTX *rtpe_hmac_sha1_base; #endif void rtpe_ssl_init(void); #endif rtpengine-mr12.5.1.22/lib/str.c000066400000000000000000000043731474347554000161220ustar00rootroot00000000000000#include "str.h" #include "auxlib.h" #include #include /* adapted from g_str_hash() from glib */ guint str_hash(const str *ss) { const str *s = ss; guint ret = 5381; str it = *s; while (it.len > 0) { ret = (ret << 5) + ret + *it.s; it.s++; it.len--; } return ret; } gboolean str_equal(const str *a, const str *b) { return str_cmp_str((str *) a, (str *) b) == 0; } guint str_case_hash(const str *ss) { const str *s = ss; guint ret = 5381; str it = *s; while (it.len > 0) { ret = (ret << 5) + ret + (*it.s & 0xdf); it.s++; it.len--; } return ret; } gboolean str_case_equal(const str *a, const str *b) { return str_casecmp_str((str *) a, (str *) b) == 0; } str *__str_sprintf(const char *fmt, ...) { str *ret; va_list ap; va_start(ap, fmt); ret = __str_vsprintf(fmt, ap); va_end(ap); return ret; } void str_slice_free(void *p) { g_slice_free1(sizeof(str), p); } /** * Generates a random hexadecimal string representing n random bytes. * rand_str length must be 2*num_bytes + 1. */ char *rand_hex_str(char *rand_str, int num_bytes) { unsigned char rand_tmp[num_bytes]; random_string(rand_tmp, num_bytes); for (int i = 0; i < num_bytes; i++) { sprintf(&rand_str[i * 2], "%02x", rand_tmp[i]); } return rand_str; } static const char *hex_chars = "0123456789abcdef"; size_t str_uri_encode_len(char *out, const char *in, size_t len) { const char *end = in + len; char *ori_out = out; while (in < end) { if (*in < ' ' || *in > '~' || *in == '%' || *in == '\\' || *in == '\'' || *in == '"') { *(out++) = '%'; *(out++) = hex_chars[(*((unsigned char *) in)) >> 4]; *(out++) = hex_chars[(*((unsigned char *) in)) & 0xf]; in++; continue; } *(out++) = *(in++); } *out = 0; return out - ori_out; } str *str_uri_decode_len(const char *in, size_t in_len) { const char *end = in + in_len; str *ret = str_alloc(in_len); char *outp = ret->s; while (in < end) { if (*in != '%') { *(outp++) = (*in++); continue; } if (end - in < 3 || !g_ascii_isxdigit(in[1]) || !g_ascii_isxdigit(in[2])) { free(ret); return NULL; } unsigned char c = g_ascii_xdigit_value(in[1]) << 4 | g_ascii_xdigit_value(in[2]); *(outp++) = c; in += 3; } *outp = 0; ret->len = outp - ret->s; return ret; } rtpengine-mr12.5.1.22/lib/str.h000066400000000000000000000330261474347554000161240ustar00rootroot00000000000000#ifndef _STR_H_ #define _STR_H_ #include #include #include #include #include #include #include "compat.h" #include "containers.h" struct _str { char *s; size_t len; }; typedef struct _str str; TYPED_GQUEUE(str, str) #define STR_FORMAT "%.*s" #define STR_FORMAT_M "%s%.*s%s" #define STR_FMT(str) (int) (str)->len, (str)->s #define STR_FMT_M(str) FMT_M(STR_FMT(str)) #define STR_FMT0(str) ((str) ? (int) (str)->len : 6), ((str) ? (str)->s : "(NULL)") #define STR_FMT0_M(str) FMT_M(STR_FMT0(str)) #define G_STR_FMT(gstr) (int) (gstr)->len, (gstr)->str // for glib GString #define FMT_M(x...) rtpe_common_config_ptr->log_mark_prefix, x, \ rtpe_common_config_ptr->log_mark_suffix #define STR_NULL ((str) { NULL, 0 }) #define STR_EMPTY ((str) { "", 0 }) #define STR_CONST_INIT(s) ((str) { s, sizeof(s)-1 }) #define STR_INIT(s) ((str) { (char *) (s), (s) ? strlen(s) : 0 }) #define STR_INIT_GS(s) ((str) { (s)->str, (s)->len }) #define STR_INIT_LEN(s, len) ((str) { (char *) (s), len }) #define STR_INIT_DUP(s) ((str) { g_strdup(s), strlen(s) }) #define STR_CONST_INIT_BUF(buf) ((str) { (char *) &buf, sizeof(buf) }) /* returns pointer to end of str (s->s + s->len) */ __attribute__((nonnull(1))) ACCESS(read_only, 1) INLINE char *str_end(const str *s); /* returns pointer to first occurrence of "c" in s */ __attribute__((nonnull(1))) ACCESS(read_only, 1) INLINE char *str_chr(const str *s, int c); /* sets "out" to point to first occurrence of c in s. adjusts len also */ __attribute__((nonnull(1, 2))) ACCESS(write_only, 1) ACCESS(read_only, 2) INLINE char *str_chr_str(str *out, const str *s, int c); /* compares a str to a regular string */ __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_cmp(const str *a, const char *b); /* compares a str to a non-null-terminated string */ __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_cmp_len(const str *a, const char *b, size_t len); /* compares two str objects */ __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_cmp_str(const str *a, const str *b); __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_casecmp_str(const str *a, const str *b); /* compares two str objects, allows either to be NULL */ ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_cmp_str0(const str *a, const str *b); /* inits a str object from a regular string. returns out */ __attribute__((nonnull(1))) ACCESS(write_only, 1) INLINE str *str_init(str *out, char *s); /* inits a str object from any binary string. returns out */ __attribute__((nonnull(1, 2))) ACCESS(write_only, 1) INLINE str *str_init_len(str *out, char *s, size_t len); __attribute__((nonnull(1, 2))) INLINE str *str_init_len_assert_len(str *out, char *s, size_t buflen, size_t len); #define str_init_len_assert(out, s, len) str_init_len_assert_len(out, s, sizeof(s), len) /* inits a str object from a regular string and duplicates the contents. returns out */ __attribute__((nonnull(1))) ACCESS(write_only, 1) ACCESS(read_only, 2) INLINE str *str_init_dup(str *out, const char *s); __attribute__((nonnull(1))) ACCESS(write_only, 1) ACCESS(read_only, 2) INLINE str *str_init_dup_str(str *out, const str *s); INLINE void str_free_dup(str *out); /* returns new str object with uninitialized buffer large enough to hold `len` characters (+1 for null byte) */ INLINE str *str_alloc(size_t len); /* returns new str object allocated with malloc, including buffer */ __attribute__((nonnull(1))) ACCESS(read_only, 1) INLINE str *str_dup(const str *s); /* free function corresponding to str_dup() */ __attribute__((nonnull(1))) ACCESS(read_write, 1) INLINE void str_free(str *s); /* shifts pointer by len chars and decrements len. returns -1 if buffer too short, 0 otherwise */ ACCESS(read_write, 1) INLINE int str_shift(str *s, size_t len); /* to revert a previously successful str_shift(). no error checking */ __attribute__((nonnull(1))) ACCESS(read_write, 1) INLINE void str_unshift(str *s, size_t len); /* eats the supplied string from the beginning of s. returns -1 if string head doesn't match */ __attribute__((nonnull(1, 2))) ACCESS(read_write, 1) ACCESS(read_only, 2) INLINE int str_shift_cmp(str *s, const char *); /* shifts the string by given length and returns the shifted part. returns -1 if string is too short */ __attribute__((nonnull(1))) ACCESS(read_write, 1) ACCESS(write_only, 3) INLINE int str_shift_ret(str *s, size_t len, str *ret); /* binary compares str object with memory chunk of equal size */ __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE int str_memcmp(const str *s, const void *m); /* locate a substring within a string, returns character index or -1 */ __attribute__((nonnull(1, 2))) ACCESS(read_only, 1) ACCESS(read_only, 2) INLINE ssize_t str_str(const str *s, const char *sub); /* swaps the contents of two str objects */ __attribute__((nonnull(1, 2))) ACCESS(read_write, 1) ACCESS(read_write, 2) INLINE void str_swap(str *a, str *b); /* parses a string into an int, returns default if conversion fails */ __attribute__((nonnull(1))) ACCESS(read_only, 1) INLINE long long str_to_i(const str *s, long long def); /* parses a string into an uint, returns default if conversion fails */ __attribute__((nonnull(1))) ACCESS(read_only, 1) INLINE unsigned long long str_to_ui(const str *s, unsigned long long def); /* extracts the first/next token into "new_token" and modifies "ori_and_remaidner" in place */ __attribute__((nonnull(1, 2))) ACCESS(write_only, 1) ACCESS(read_write, 2) INLINE bool str_token(str *new_token, str *ori_and_remainder, int sep); /* same as str_token but allows for a trailing non-empty token (e.g. "foo,bar" -> "foo", "bar" ) */ __attribute__((nonnull(1, 2))) ACCESS(write_only, 1) ACCESS(read_write, 2) INLINE bool str_token_sep(str *new_token, str *ori_and_remainder, int sep); /* copy a string to a regular C string buffer, limiting the max size */ __attribute__((nonnull(1, 3))) ACCESS(write_only, 1, 2) ACCESS(read_only, 3) INLINE char *str_ncpy(char *dst, size_t bufsize, const str *src); /* asprintf() analogs */ #define str_sprintf(fmt, ...) __str_sprintf(STR_MALLOC_PADDING fmt, ##__VA_ARGS__) #define str_vsprintf(fmt, a) __str_vsprintf(STR_MALLOC_PADDING fmt, a) /* creates a new empty GString that has mem allocated for a new str object */ INLINE GString *g_string_new_str(void); /* frees the GString object and returns the new str object */ INLINE str *g_string_free_str(GString *gs); /* for GHashTables */ guint str_hash(const str *s); gboolean str_equal(const str *a, const str *b); guint str_case_hash(const str *s); gboolean str_case_equal(const str *a, const str *b); TYPED_GHASHTABLE(str_case_ht, str, str, str_case_hash, str_case_equal, free, NULL) TYPED_GHASHTABLE(str_case_value_ht, str, str, str_case_hash, str_case_equal, free, free) /* returns a new str object, duplicates the pointers but doesn't duplicate the contents */ INLINE str *str_slice_dup(const str *); /* destroy function, frees a slice-alloc'd str */ void str_slice_free(void *); /* saves "in" into "out" pseudo-URI encoded. "out" point to a buffer with sufficient length. returns length */ size_t str_uri_encode_len(char *out, const char *in, size_t in_len); INLINE size_t str_uri_encode(char *out, const str *in); /* reverse of the above. returns newly allocated str + buffer as per str_alloc (must be free'd) */ str *str_uri_decode_len(const char *in, size_t in_len); G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(str, str_free_dup); INLINE char *str_end(const str *s) { return s->s + s->len; } INLINE int str_shift(str *s, size_t len) { return str_shift_ret(s, len, NULL); } INLINE int str_shift_ret(str *s, size_t len, str *ret) { if (s->len < len) return -1; if (ret) str_init_len(ret, s->s, len); s->s += len; s->len -= len; return 0; } INLINE void str_unshift(str *s, size_t len) { s->s -= len; s->len += len; } INLINE int str_shift_cmp(str *s, const char *t) { size_t len = strlen(t); if (s->len < len) return -1; if (memcmp(s->s, t, len)) return -1; s->s += len; s->len -= len; return 0; } INLINE char *str_chr(const str *s, int c) { if (!s->len) return NULL; return memchr(s->s, c, s->len); } INLINE char *str_chr_str(str *out, const str *s, int c) { char *p; p = str_chr(s, c); if (!p) { *out = STR_NULL; return NULL; } *out = *s; str_shift(out, p - out->s); return out->s; } INLINE int str_cmp_len(const str *a, const char *b, size_t l) { if (a->len < l) return -1; if (a->len > l) return 1; if (a->len == 0 && l == 0) return 0; return memcmp(a->s, b, l); } INLINE int str_cmp(const str *a, const char *b) { return str_cmp_len(a, b, strlen(b)); } INLINE int str_cmp_str(const str *a, const str *b) { if (a->len < b->len) return -1; if (a->len > b->len) return 1; if (a->len == 0 && b->len == 0) return 0; return memcmp(a->s, b->s, a->len); } INLINE int str_casecmp_str(const str *a, const str *b) { if (a->len < b->len) return -1; if (a->len > b->len) return 1; if (a->len == 0 && b->len == 0) return 0; // fail if any strings contains a null byte if (memchr(a->s, '\0', a->len)) return -1; if (memchr(b->s, '\0', a->len)) return 1; return strncasecmp(a->s, b->s, a->len); } INLINE int str_cmp_str0(const str *a, const str *b) { if (!a) { if (!b) return 0; if (b->len == 0) return 0; return -1; } if (!b) { if (a->len == 0) return 0; return 1; } return str_cmp_str(a, b); } INLINE str *str_init(str *out, char *s) { out->s = s; out->len = s ? strlen(s) : 0; return out; } INLINE str *str_init_len(str *out, char *s, size_t len) { out->s = s; out->len = len; return out; } INLINE str *str_init_len_assert_len(str *out, char *s, size_t buflen, size_t len) { assert(buflen >= len); return str_init_len(out, s, len); } INLINE str *str_init_dup(str *out, const char *s) { out->s = s ? g_strdup(s) : NULL; out->len = s ? strlen(s) : 0; return out; } INLINE str *str_init_dup_str(str *out, const str *s) { if (!s) { *out = STR_NULL; return out; } char *buf = g_malloc(s->len + 1); if (s->s && s->len) memcpy(buf, s->s, s->len); buf[s->len] = '\0'; out->len = s->len; out->s = buf; return out; } INLINE void str_free_dup(str *out) { if (!out) return; if (out->s) g_free(out->s); out->s = NULL; out->len = 0; } INLINE str *str_alloc(size_t len) { str *r; r = malloc(sizeof(*r) + len + 1); r->s = ((char *) r) + sizeof(*r); r->len = 0; return r; } INLINE str *str_dup(const str *s) { str *r; r = str_alloc(s->len); r->len = s->len; if (s->len) memcpy(r->s, s->s, s->len); r->s[s->len] = '\0'; return r; } INLINE void str_free(str *s) { free(s); } INLINE str *str_slice_dup(const str *s) { str *r; r = g_slice_alloc(sizeof(*r)); *r = *s; return r; } #define STR_MALLOC_PADDING "xxxxxxxxxxxxxxxx" INLINE str *__str_vsprintf(const char *fmt, va_list ap) { char *r; int l; size_t pl; str *ret; l = vasprintf(&r, fmt, ap); if (l < 0) abort(); pl = strlen(STR_MALLOC_PADDING); assert(pl >= sizeof(*ret)); ret = (void *) r; ret->s = r + pl; ret->len = l - pl; return ret; } str *__str_sprintf(const char *fmt, ...) __attribute__((format(printf,1,2))); INLINE GString *g_string_new_str(void) { size_t pl; GString *ret; ret = g_string_new(""); pl = strlen(STR_MALLOC_PADDING); assert(pl >= sizeof(str)); g_string_append_len(ret, STR_MALLOC_PADDING, pl); return ret; } INLINE str *g_string_free_str(GString *gs) { str *ret; size_t pl; pl = strlen(STR_MALLOC_PADDING); assert(gs->len >= pl); assert(memcmp(gs->str, STR_MALLOC_PADDING, pl) == 0); ret = (void *) gs->str; ret->len = gs->len - pl; ret->s = g_string_free(gs, FALSE) + pl; return ret; } INLINE int str_memcmp(const str *s, const void *m) { return memcmp(s->s, m, s->len); } INLINE ssize_t str_str(const str *s, const char *sub) { void *p = memmem(s->s, s->len, sub, strlen(sub)); if (!p) return -1; return p - (void *) s->s; } INLINE void str_swap(str *a, str *b) { str t; t = *a; *a = *b; *b = t; } INLINE long long str_to_i(const str *s, long long def) { char c, *ep; long long ret; if (s->len <= 0) return def; c = s->s[s->len]; s->s[s->len] = '\0'; ret = strtoll(s->s, &ep, 10); s->s[s->len] = c; if (ep == s->s) return def; if (ret > INT_MAX) return def; if (ret < INT_MIN) return def; return ret; } INLINE unsigned long long str_to_ui(const str *s, unsigned long long def) { char c, *ep; unsigned long long ret; if (s->len <= 0) return def; c = s->s[s->len]; s->s[s->len] = '\0'; ret = strtoull(s->s, &ep, 10); s->s[s->len] = c; if (ep == s->s) return def; return ret; } INLINE bool str_token(str *new_token, str *ori_and_remainder, int sep) { *new_token = *ori_and_remainder; if (!str_chr_str(ori_and_remainder, ori_and_remainder, sep)) return false; new_token->len = ori_and_remainder->s - new_token->s; if (str_shift(ori_and_remainder, 1)) return false; return true; } INLINE bool str_token_sep(str *new_token, str *ori_and_remainder, int sep) { str ori = *ori_and_remainder; if (str_token(new_token, ori_and_remainder, sep)) return true; // separator not found, use remainder as final token if not empty if (!ori.len) return false; *new_token = ori; return true; } INLINE size_t str_uri_encode(char *out, const str *in) { return str_uri_encode_len(out, in->s, in->len); } INLINE char *str_ncpy(char *dst, size_t bufsize, const str *src) { size_t to_copy = src->len; if (to_copy >= bufsize) to_copy = bufsize - 1; memcpy(dst, src->s, to_copy); dst[to_copy] = 0; return dst; } /* Generates a hex string representing n random bytes. len(rand_str) = 2*num_bytes + 1 */ char *rand_hex_str(char *rand_str, int num_bytes); #endif rtpengine-mr12.5.1.22/lib/streambuf.c000066400000000000000000000103501474347554000172720ustar00rootroot00000000000000#include "streambuf.h" #include #include #include #include #include #include #include #include "poller.h" #include "auxlib.h" static ssize_t __fd_write(void *, const void *, size_t); static ssize_t __fd_read(void *, void *, size_t); static const struct streambuf_funcs __fd_funcs = { .write = __fd_write, .read = __fd_read, }; static ssize_t __fd_write(void *fd, const void *b, size_t s) { return write(GPOINTER_TO_INT(fd), b, s); } static ssize_t __fd_read(void *fd, void *b, size_t s) { return read(GPOINTER_TO_INT(fd), b, s); } struct streambuf *streambuf_new_ptr(struct poller *p, void *fd_ptr, const struct streambuf_funcs *funcs) { struct streambuf *b; b = g_slice_alloc0(sizeof(*b)); mutex_init(&b->lock); b->buf = g_string_new(""); b->fd_ptr = fd_ptr; b->poller = p; b->active = rtpe_now.tv_sec; b->funcs = funcs; return b; } struct streambuf *streambuf_new(struct poller *p, int fd) { return streambuf_new_ptr(p, GINT_TO_POINTER(fd), &__fd_funcs); } void streambuf_destroy(struct streambuf *b) { g_string_free(b->buf, TRUE); g_slice_free1(sizeof(*b), b); } int streambuf_writeable(struct streambuf *b) { int ret; unsigned int out; mutex_lock(&b->lock); for (;;) { if (!b->buf->len) break; out = (b->buf->len > 1024) ? 1024 : b->buf->len; ret = b->funcs->write(b->fd_ptr, b->buf->str, out); if (ret < 0) { if (errno == EINTR) continue; if (errno != EAGAIN && errno != EWOULDBLOCK) { mutex_unlock(&b->lock); return -1; } ret = 0; } if (ret > 0) { g_string_erase(b->buf, 0, ret); b->active = rtpe_now.tv_sec; } if (ret != out) { rtpe_poller_blocked(b->poller, b->fd_ptr); break; } } mutex_unlock(&b->lock); return 0; } int streambuf_readable(struct streambuf *b) { int ret; char buf[1024]; mutex_lock(&b->lock); for (;;) { ret = b->funcs->read(b->fd_ptr, buf, 1024); if (ret == 0) { // don't discard already read data in the buffer b->eof = 1; ret = b->buf->len ? -2 : -1; mutex_unlock(&b->lock); return ret; } if (ret < 0) { if (errno == EINTR) continue; if (errno == EAGAIN || errno == EWOULDBLOCK) break; mutex_unlock(&b->lock); return -1; } g_string_append_len(b->buf, buf, ret); b->active = rtpe_now.tv_sec; } mutex_unlock(&b->lock); return 0; } char *streambuf_getline(struct streambuf *b) { char *p; int len, to_del; char *s = NULL; mutex_lock(&b->lock); for (;;) { if (s) { free(s); s = NULL; } p = memchr(b->buf->str, '\n', b->buf->len); if (!p) { if (b->eof) { // use entire string len = b->buf->len; to_del = len; } else break; } else { len = p - b->buf->str; to_del = len + 1; if (len == 0) { // blank line, skip it g_string_erase(b->buf, 0, 1); continue; } } s = malloc(len + 1); memcpy(s, b->buf->str, len); s[len] = '\0'; g_string_erase(b->buf, 0, to_del); if (s[--len] == '\r') { if (len == 0) continue; s[len] = '\0'; } break; } mutex_unlock(&b->lock); return s; } unsigned int streambuf_bufsize(struct streambuf *b) { return b->buf->len; } void streambuf_vprintf(struct streambuf *b, const char *f, va_list va) { GString *gs; gs = g_string_new(""); g_string_vprintf(gs, f, va); streambuf_write(b, gs->str, gs->len); g_string_free(gs, TRUE); } void streambuf_printf(struct streambuf *b, const char *f, ...) { va_list va; va_start(va, f); streambuf_vprintf(b, f, va); va_end(va); } void streambuf_write(struct streambuf *b, const char *s, unsigned int len) { unsigned int out; int ret; if (!b) return; mutex_lock(&b->lock); while (len && !rtpe_poller_isblocked(b->poller, b->fd_ptr)) { out = (len > 1024) ? 1024 : len; ret = b->funcs->write(b->fd_ptr, s, out); if (ret < 0) { if (errno == EINTR) continue; if (errno != EAGAIN && errno != EWOULDBLOCK) { rtpe_poller_error(b->poller, b->fd_ptr); break; } rtpe_poller_blocked(b->poller, b->fd_ptr); break; } if (ret == 0) break; s += ret; len -= ret; b->active = rtpe_now.tv_sec; } if (b->buf->len > 5242880) rtpe_poller_error(b->poller, b->fd_ptr); else if (len) g_string_append_len(b->buf, s, len); mutex_unlock(&b->lock); } rtpengine-mr12.5.1.22/lib/streambuf.h000066400000000000000000000022771474347554000173100ustar00rootroot00000000000000#ifndef __BUFFER_H__ #define __BUFFER_H__ #include #include #include #include #include "compat.h" #include "str.h" #include "auxlib.h" struct poller; struct streambuf_funcs { ssize_t (*write)(void *, const void *, size_t); ssize_t (*read)(void *, void *, size_t); }; struct streambuf { mutex_t lock; GString *buf; void *fd_ptr; struct poller *poller; time_t active; int eof; const struct streambuf_funcs *funcs; }; struct streambuf *streambuf_new(struct poller *, int); struct streambuf *streambuf_new_ptr(struct poller *, void *, const struct streambuf_funcs *); void streambuf_destroy(struct streambuf *); int streambuf_writeable(struct streambuf *); int streambuf_readable(struct streambuf *); char *streambuf_getline(struct streambuf *); unsigned int streambuf_bufsize(struct streambuf *); void streambuf_printf(struct streambuf *, const char *, ...) __attribute__ ((format (printf, 2, 3))); void streambuf_vprintf(struct streambuf *, const char *, va_list); void streambuf_write(struct streambuf *, const char *, unsigned int); INLINE void streambuf_write_str(struct streambuf *b, str *s) { streambuf_write(b, s->s, s->len); } #endif rtpengine-mr12.5.1.22/lib/uring.c000066400000000000000000000367501474347554000164420ustar00rootroot00000000000000#include "uring.h" #include #include #include #include "log.h" #include "loglib.h" #include "socket.h" #include "poller.h" #include "bufferpool.h" #include "call.h" #define BUFFER_SIZE RTP_BUFFER_SIZE // size of individual buffer #define BUFFERS_COUNT 1024 // number of buffers allocated in one pool, should be 2^n #define BUFFER_POOLS 8 // number of pools to keep alive static_assert(BUFFERS_COUNT * BUFFER_POOLS < (1<<16), "too many buffers (>= 2^16)"); struct uring_buffer { void *buf; struct poller *poller; unsigned int num; }; struct poller { mutex_t lock; GQueue reqs; int waker_fds[2]; GPtrArray *evs; // holds uring_poll_event by fd struct bufferpool *bufferpool; struct uring_buffer *buffers[BUFFER_POOLS]; GArray *blocked; }; struct poller_req { enum { ADD, BLOCKED, ERROR, DEL, BUFFERS, RECV } type; union { struct poller_item it; struct { int fd; void (*callback)(void *); void *arg; }; struct { void *buf; unsigned int num; }; }; }; static ssize_t __socket_sendmsg(socket_t *s, struct msghdr *m, const endpoint_t *e, struct sockaddr_storage *ss, struct uring_req *r) { ssize_t ret = socket_sendmsg(s, m, e); r->handler(r, 0, 0); return ret; } __thread __typeof(__socket_sendmsg) (*uring_sendmsg) = __socket_sendmsg; #ifdef HAVE_LIBURING #include static __thread struct io_uring rtpe_uring; static ssize_t __uring_sendmsg(socket_t *s, struct msghdr *m, const endpoint_t *e, struct sockaddr_storage *ss, struct uring_req *r) { struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); assert(sqe != NULL); s->family->endpoint2sockaddr(ss, e); m->msg_name = ss; m->msg_namelen = s->family->sockaddr_size; io_uring_sqe_set_data(sqe, r); io_uring_prep_sendmsg(sqe, s->fd, m, 0); return 0; } static unsigned int __uring_thread_loop(void) { io_uring_submit_and_get_events(&rtpe_uring); struct io_uring_cqe *cqe; unsigned int head, num = 0; io_uring_for_each_cqe(&rtpe_uring, head, cqe) { struct uring_req *req = io_uring_cqe_get_data(cqe); req->handler(req, cqe->res, cqe->flags); num++; } io_uring_cq_advance(&rtpe_uring, num); return num; } void uring_thread_init(void) { struct io_uring_params params = {0}; int ret = io_uring_queue_init_params(rtpe_common_config_ptr->io_uring_buffers, &rtpe_uring, ¶ms); if (ret) die("io_uring init failed (%s)", strerror(errno)); uring_sendmsg = __uring_sendmsg; uring_thread_loop = __uring_thread_loop; } void uring_thread_cleanup(void) { io_uring_queue_exit(&rtpe_uring); } static void uring_submit_buffer(struct poller *p, void *b, unsigned int num) { struct poller_req *req = g_new0(__typeof(*req), 1); req->type = BUFFERS; req->buf = b; LOCK(&p->lock); g_queue_push_tail(&p->reqs, req); uring_poller_wake(p); req->num = num; } static unsigned int uring_buffer_recycle(void *p) { //ilog(LOG_INFO, "uring buffer recycle"); struct uring_buffer *b = p; struct poller *poller = b->poller; uring_submit_buffer(poller, b->buf, b->num); return BUFFERS_COUNT; } struct poller *uring_poller_new(void) { struct poller *ret = g_new0(__typeof(*ret), 1); mutex_init(&ret->lock); g_queue_init(&ret->reqs); int ok = socketpair(AF_UNIX, SOCK_STREAM, 0, ret->waker_fds); if (ok != 0) return false; nonblock(ret->waker_fds[0]); nonblock(ret->waker_fds[1]); ret->evs = g_ptr_array_new(); ret->blocked = g_array_new(false, true, sizeof(char)); ret->bufferpool = bufferpool_new(g_malloc, g_free, BUFFER_SIZE * BUFFERS_COUNT); for (int i = 0; i < BUFFER_POOLS; i++) { ret->buffers[i] = g_new0(__typeof(*ret->buffers[i]), 1); ret->buffers[i]->buf = bufferpool_reserve(ret->bufferpool, BUFFERS_COUNT, uring_buffer_recycle, ret->buffers[i]); ret->buffers[i]->buf += RTP_BUFFER_HEAD_ROOM; ret->buffers[i]->num = i; ret->buffers[i]->poller = ret; uring_submit_buffer(ret, ret->buffers[i]->buf, i); } return ret; } void uring_poller_free(struct poller **pp) { // XXX cleanup of reqs close((*pp)->waker_fds[0]); close((*pp)->waker_fds[1]); g_ptr_array_free((*pp)->evs, true); g_array_free((*pp)->blocked, true); for (int i = 0; i < BUFFER_POOLS; i++) { bufferpool_release((*pp)->buffers[i]->buf); g_free((*pp)->buffers[i]); } bufferpool_destroy((*pp)->bufferpool); g_free(*pp); *pp = NULL; } void uring_poller_wake(struct poller *p) { ssize_t ret = write(p->waker_fds[0], "", 1); (void)ret; // ignore return value } bool uring_poller_add_item(struct poller *p, struct poller_item *i) { if (!p) return false; if (!i) return false; if (i->fd < 0) return false; if (!i->readable) return false; if (!i->closed) return false; struct poller_req *req = g_new0(__typeof(*req), 1); if (i->recv) req->type = RECV; else req->type = ADD; req->it = *i; if (req->it.obj) obj_hold_o(req->it.obj); LOCK(&p->lock); g_queue_push_tail(&p->reqs, req); uring_poller_wake(p); return true; } void uring_poller_blocked(struct poller *p, void *fdp) { struct poller_req *req = g_new0(__typeof(*req), 1); req->type = BLOCKED; req->fd = GPOINTER_TO_INT(fdp); LOCK(&p->lock); if (p->blocked->len <= req->fd) g_array_set_size(p->blocked, req->fd + 1); g_array_index(p->blocked, char, req->fd) = 1; g_queue_push_tail(&p->reqs, req); uring_poller_wake(p); } bool uring_poller_isblocked(struct poller *p, void *fdp) { int fd = GPOINTER_TO_INT(fdp); if (fd < 0) return false; LOCK(&p->lock); if (p->blocked->len <= fd) return false; return !!g_array_index(p->blocked, char, fd); } void uring_poller_error(struct poller *p, void *fdp) { struct poller_req *req = g_new0(__typeof(*req), 1); req->type = ERROR; req->fd = GPOINTER_TO_INT(fdp); LOCK(&p->lock); g_queue_push_tail(&p->reqs, req); uring_poller_wake(p); } bool uring_poller_del_item_callback(struct poller *p, int fd, void (*callback)(void *), void *arg) { if (rtpe_shutdown) return true; struct poller_req *req = g_new0(__typeof(*req), 1); req->type = DEL; req->fd = fd; req->callback = callback; req->arg = arg; LOCK(&p->lock); g_queue_push_tail(&p->reqs, req); uring_poller_wake(p); return true; } bool uring_poller_del_item(struct poller *p, int fd) { return uring_poller_del_item_callback(p, fd, NULL, NULL); } struct uring_poll_event { struct uring_req req; // must be first struct poller_item it; struct poller *poller; bool closed:1; }; static void uring_poll_event(struct uring_req *req, int32_t res, uint32_t flags) { struct uring_poll_event *ereq = (__typeof(ereq)) req; bool closed = false; //ilog(LOG_INFO, "uring poll event %i %i %i", ereq->it.fd, res, flags); if (res < 0) { if (res != -ECANCELED) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "io_uring poll error on fd %i: %s", ereq->it.fd, strerror(-res)); closed = true; } else if ((res & (POLLERR | POLLHUP))) { //ilog(LOG_INFO, "uring poll fd error %i %i", ereq->it.fd, res); closed = true; } else if ((res & POLLIN)) ereq->it.readable(ereq->it.fd, ereq->it.obj); else { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "unhandled io_uring poll event mask on fd %i: %i", ereq->it.fd, res); closed = true; } if (closed) { if (!ereq->closed) ereq->it.closed(ereq->it.fd, ereq->it.obj); ereq->closed = true; } if (!(flags & IORING_CQE_F_MORE)) { if (ereq->it.obj) obj_put_o(ereq->it.obj); struct poller *p = ereq->poller; { LOCK(&p->lock); if (p->evs->len > ereq->it.fd && p->evs->pdata[ereq->it.fd] == ereq) p->evs->pdata[ereq->it.fd] = NULL; } uring_req_free(&ereq->req); } } struct uring_poll_removed { struct uring_req req; // must be first int fd; void (*callback)(void *); void *arg; struct poller *poller; }; static void uring_poll_removed(struct uring_req *req, int32_t res, uint32_t flags) { struct uring_poll_removed *rreq = (__typeof(rreq)) req; //ilog(LOG_INFO, "poll removed fd %i with cb %p/%p", rreq->fd, rreq->callback, rreq->arg); if (rreq->callback) rreq->callback(rreq->arg); else close(rreq->fd); uring_req_free(req); } struct uring_poll_unblocked { struct uring_req req; // must be first struct poller_item it; struct poller *poller; }; static void uring_poll_unblocked(struct uring_req *req, int32_t res, uint32_t flags) { struct uring_poll_unblocked *ureq = (__typeof(ureq)) req; bool closed = false; if (res < 0) { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "io_uring poll write error on fd %i: %s", ureq->it.fd, strerror(-res)); closed = true; } else if (!(res & (POLLOUT))) { ilog(LOG_WARNING | LOG_FLAG_LIMIT, "unhandled io_uring poll event write mask on fd %i: %i", ureq->it.fd, res); closed = true; } else { struct poller *p = ureq->poller; if (p->blocked->len > ureq->it.fd) g_array_index(p->blocked, char, ureq->it.fd) = 0; ureq->it.writeable(ureq->it.fd, ureq->it.obj); } assert((flags & IORING_CQE_F_MORE) == 0); if (closed) ureq->it.closed(ureq->it.fd, ureq->it.obj); if (ureq->it.obj) obj_put_o(ureq->it.obj); uring_req_free(req); } struct uring_poll_recv { struct uring_req req; // must be first struct poller_item it; struct msghdr msg; struct iovec iov; struct poller *poller; bool closed:1; }; INLINE void uring_recvmsg_parse_cmsg(struct timeval *tv, sockaddr_t *to, bool (*parse)(struct cmsghdr *, sockaddr_t *), struct io_uring_recvmsg_out *out, struct msghdr *mh) { socket_recvfrom_parse_cmsg(&tv, &to, parse, mh, io_uring_recvmsg_cmsg_firsthdr(out, mh), io_uring_recvmsg_cmsg_nexthdr(out, mh, cm)); } static void uring_poll_recv(struct uring_req *req, int32_t res, uint32_t flags) { struct uring_poll_recv *rreq = (__typeof(rreq)) req; struct poller *p = rreq->poller; bool closed = false; //ilog(LOG_INFO, "uring recvmsg event %i %i %i", rreq->it.fd, res, flags); if (res < 0) { if (res != -ECANCELED) ilog(LOG_WARNING | LOG_FLAG_LIMIT, "io_uring recvmsg error on fd %i: %s", rreq->it.fd, strerror(-res)); closed = true; } else { assert((flags & IORING_CQE_F_BUFFER) != 0); unsigned int buffer_id = flags >> IORING_CQE_BUFFER_SHIFT; unsigned int pool_id = buffer_id / BUFFERS_COUNT; unsigned int pool_offset = buffer_id % BUFFERS_COUNT; //ilog(LOG_INFO, "pool id %u buf id %u", pool_id, pool_offset); assert(pool_id < BUFFER_POOLS); struct uring_buffer *ubuf = p->buffers[pool_id]; void *buf = ubuf->buf + BUFFER_SIZE * pool_offset; struct io_uring_recvmsg_out *out = io_uring_recvmsg_validate(buf, BUFFER_SIZE, &rreq->msg); assert(out != NULL); void *payload = io_uring_recvmsg_payload(out, &rreq->msg); struct sockaddr *sa = io_uring_recvmsg_name(out); struct timeval tv = {0}; uring_recvmsg_parse_cmsg(&tv, NULL, NULL, out, &rreq->msg); rreq->it.recv(rreq->it.obj, payload, out->payloadlen, sa, &tv); } if (!(flags & IORING_CQE_F_MORE)) closed = true; if (closed) { if (!rreq->closed) rreq->it.closed(rreq->it.fd, rreq->it.obj); rreq->closed = true; } if (!(flags & IORING_CQE_F_MORE)) { //ilog(LOG_INFO, "last uring recv event for fd %i for %p (%i)", rreq->it.fd, rreq->it.obj, rreq->it.obj->ref); if (rreq->it.obj) obj_put_o(rreq->it.obj); uring_req_free(&rreq->req); } } static void uring_poller_do_add(struct poller *p, struct poller_req *preq) { // don't allow duplicates if (p->evs->len > preq->it.fd && p->evs->pdata[preq->it.fd]) abort(); // XXX handle gracefully? struct uring_poll_event *ereq = uring_alloc_req(sizeof(*ereq), uring_poll_event); ereq->it = preq->it; ereq->poller = p; struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); io_uring_prep_poll_multishot(sqe, ereq->it.fd, POLLHUP | POLLERR | POLLIN); io_uring_sqe_set_data(sqe, ereq); // save ereq for write blocks. no extra obj reference if (p->evs->len <= ereq->it.fd) g_ptr_array_set_size(p->evs, ereq->it.fd + 1); p->evs->pdata[ereq->it.fd] = ereq; } static void uring_poller_do_blocked(struct poller *p, struct poller_req *preq) { // valid fd? if (p->evs->len <= preq->fd || !p->evs->pdata[preq->fd]) abort(); // XXX handle gracefully? struct uring_poll_event *ereq = p->evs->pdata[preq->fd]; struct uring_poll_unblocked *ureq = uring_alloc_req(sizeof(*ureq), uring_poll_unblocked); ureq->it = ereq->it; ureq->poller = p; if (ureq->it.obj) obj_hold_o(ureq->it.obj); struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); io_uring_prep_poll_add(sqe, ureq->it.fd, POLLOUT); io_uring_sqe_set_data(sqe, ureq); } static void uring_poller_do_error(struct poller *p, struct poller_req *preq) { // do nothing? } static void uring_poller_do_del(struct poller *p, struct poller_req *preq) { //ilog(LOG_INFO, "del fd %i on %p", preq->fd, p); struct uring_poll_removed *rreq = uring_alloc_req(sizeof(*rreq), uring_poll_removed); rreq->fd = preq->fd; rreq->poller = p; rreq->callback = preq->callback; rreq->arg = preq->arg; struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); io_uring_prep_cancel_fd(sqe, rreq->fd, IORING_ASYNC_CANCEL_ALL); io_uring_sqe_set_data(sqe, rreq); } static void uring_poller_do_buffers(struct poller *p, struct poller_req *preq) { //ilog(LOG_INFO, "XXXXXXXXX adding buffers %p %u", p, preq->num); struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); io_uring_prep_provide_buffers(sqe, preq->buf, BUFFER_SIZE, BUFFERS_COUNT, 0, preq->num * BUFFERS_COUNT); struct uring_req *breq = uring_alloc_buffer_req(sizeof(*breq)); io_uring_sqe_set_data(sqe, breq); // XXX no content? not needed? } static void uring_poller_do_recv(struct poller *p, struct poller_req *preq) { //ilog(LOG_INFO, "adding recv fd %i on %p for %p", preq->it.fd, p, preq->it.obj); struct uring_poll_recv *rreq = uring_alloc_req(sizeof(*rreq), uring_poll_recv); rreq->it = preq->it; rreq->poller = p; struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); rreq->iov = (__typeof(rreq->iov)) { .iov_len = MAX_RTP_PACKET_SIZE, }; rreq->msg = (__typeof(rreq->msg)) { .msg_iov = &rreq->iov, .msg_iovlen = 1, .msg_namelen = sizeof(struct sockaddr_storage), .msg_controllen = 64, }; io_uring_prep_recvmsg_multishot(sqe, rreq->it.fd, &rreq->msg, 0); sqe->ioprio |= IORING_RECVSEND_POLL_FIRST; io_uring_sqe_set_flags(sqe, IOSQE_BUFFER_SELECT); sqe->buf_group = 0; io_uring_sqe_set_data(sqe, rreq); } static void uring_poller_do_reqs(struct poller *p) { LOCK(&p->lock); while (p->reqs.length) { struct poller_req *preq = g_queue_pop_head(&p->reqs); switch (preq->type) { case ADD: uring_poller_do_add(p, preq); break; case BLOCKED: uring_poller_do_blocked(p, preq); break; case ERROR: uring_poller_do_error(p, preq); break; case DEL: uring_poller_do_del(p, preq); break; case BUFFERS: uring_poller_do_buffers(p, preq); break; case RECV: uring_poller_do_recv(p, preq); break; default: abort(); } g_free(preq); } } void uring_poller_waker_read(int fd, void *p) { char buf[32]; while (read(fd, buf, sizeof(buf)) > 0) { } } void uring_poller_waker_closed(int fd, void *p) { if (!rtpe_shutdown) abort(); } void uring_poller_add_waker(struct poller *p) { uring_poller_add_item(p, &(struct poller_item) { .readable = uring_poller_waker_read, .closed = uring_poller_waker_closed, .fd = p->waker_fds[1], }); } void uring_poller_poll(struct poller *p) { uring_poller_do_reqs(p); unsigned int events = __uring_thread_loop(); if (events == 0) { struct io_uring_cqe *cqe; // ignored thread_cancel_enable(); io_uring_wait_cqe(&rtpe_uring, &cqe); // maybe not a cancellation point thread_cancel_disable(); } } void uring_poller_clear(struct poller *p) { struct uring_req *req = uring_alloc_buffer_req(sizeof(*req)); struct io_uring_sqe *sqe = io_uring_get_sqe(&rtpe_uring); io_uring_prep_cancel(sqe, 0, IORING_ASYNC_CANCEL_ANY); io_uring_sqe_set_data(sqe, req); while (__uring_thread_loop() != 0) { } } #endif rtpengine-mr12.5.1.22/lib/uring.h000066400000000000000000000030411474347554000164320ustar00rootroot00000000000000#ifndef _URING_H_ #define _URING_H_ #include "socket.h" struct uring_req; typedef void uring_req_handler_fn(struct uring_req *, int32_t res, uint32_t flags); struct uring_req { uring_req_handler_fn *handler; }; extern __thread ssize_t (*uring_sendmsg)(socket_t *, struct msghdr *, const endpoint_t *, struct sockaddr_storage *, struct uring_req *); INLINE void uring_req_buffer_free(struct uring_req *r, int32_t res, uint32_t flags) { g_free(r); } INLINE void uring_req_free(struct uring_req *r) { g_free(r); } INLINE void *uring_alloc_req(size_t len, uring_req_handler_fn *fn) { struct uring_req *ret = g_malloc0(len); ret->handler = fn; return ret; } INLINE void *uring_alloc_buffer_req(size_t len) { return uring_alloc_req(len, uring_req_buffer_free); } #ifdef HAVE_LIBURING #include "bufferpool.h" void uring_thread_init(void); void uring_thread_cleanup(void); struct poller_item; struct poller *uring_poller_new(void); void uring_poller_free(struct poller **pp); void uring_poller_add_waker(struct poller *p); void uring_poller_wake(struct poller *p); void uring_poller_poll(struct poller *); void uring_poller_clear(struct poller *); bool uring_poller_add_item(struct poller *p, struct poller_item *i); bool uring_poller_del_item(struct poller *p, int fd); void uring_poller_blocked(struct poller *p, void *fdp); bool uring_poller_isblocked(struct poller *p, void *fdp); void uring_poller_error(struct poller *p, void *fdp); bool uring_poller_del_item_callback(struct poller *p, int fd, void (*callback)(void *), void *arg); #endif #endif rtpengine-mr12.5.1.22/perf-tester/000077500000000000000000000000001474347554000166315ustar00rootroot00000000000000rtpengine-mr12.5.1.22/perf-tester/.gitignore000066400000000000000000000003421474347554000206200ustar00rootroot00000000000000*.8 *.o rtpengine-perftest core core.* .ycm_extra_conf.pyc auxlib.c loglib.c rtplib.c codeclib.c resample.c str.c fix_frame_channel_layout.h mvr2s_x64_avx512.S mvr2s_x64_avx2.S dtmflib.c poller.c ssllib.c bufferpool.c uring.c rtpengine-mr12.5.1.22/perf-tester/.ycm_extra_conf.py000066400000000000000000000066541474347554000222740ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' # These are the compilation flags that will be used in case there's no # compilation database set. flags = [ '-g', '-Wall', '-Wstrict-prototypes', '-Wshadow', '-pthread', '-fno-strict-aliasing', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/mysql', '-I.', '-I../lib/', '-pthread', '-D_GNU_SOURCE', '-D__DEBUG=1', '-D__YCM=1', '-DFIXTURES_PATH="."', '-O2', '-fstack-protector', '--param=ssp-buffer-size=4', '-Wformat', '-Werror=format-security', '-D_FORTIFY_SOURCE=2', # THIS IS IMPORTANT! Without a "-std=" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/perf-tester/Makefile000066400000000000000000000035371474347554000203010ustar00rootroot00000000000000TARGET = rtpengine-perftest FIXTURES_PATH ?= ../fixtures CFLAGS ?= -g -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes -Werror=return-type \ -Wshadow CFLAGS += -pthread CFLAGS += -std=c11 CFLAGS += -I. -I../kernel-module/ -I../lib/ CFLAGS += -DFIXTURES_PATH="\"$(FIXTURES_PATH)\"" CFLAGS += $(shell pkg-config --cflags glib-2.0) CFLAGS += $(shell pkg-config --cflags gthread-2.0) CFLAGS += -D_GNU_SOURCE CFLAGS += $(shell pkg-config --cflags libavcodec) CFLAGS += $(shell pkg-config --cflags libavformat) CFLAGS += $(shell pkg-config --cflags libavutil) CFLAGS += $(shell pkg-config --cflags libswresample) CFLAGS += $(shell pkg-config --cflags libavfilter) CFLAGS += $(shell pkg-config --cflags spandsp) CFLAGS += $(shell pkg-config --cflags opus) CFLAGS += $(shell pkg-config --cflags ncursesw) CFLAGS += -DWITH_TRANSCODING CFLAGS += $(shell pkg-config --cflags openssl) LDLIBS = -lm -ldl LDLIBS += $(shell pkg-config --libs glib-2.0) LDLIBS += $(shell pkg-config --libs gthread-2.0) LDLIBS += $(shell pkg-config --libs libavcodec) LDLIBS += $(shell pkg-config --libs libavformat) LDLIBS += $(shell pkg-config --libs libavutil) LDLIBS += $(shell pkg-config --libs libswresample) LDLIBS += $(shell pkg-config --libs libavfilter) LDLIBS += $(shell pkg-config --libs spandsp) LDLIBS += $(shell pkg-config --libs opus) LDLIBS += $(shell pkg-config --libs ncursesw) LDLIBS += $(shell pkg-config --libs openssl) include ../lib/g729.Makefile include ../lib/codec-chain.Makefile SRCS = main.c log.c LIBSRCS = codeclib.strhash.c loglib.c auxlib.c resample.c str.c dtmflib.c rtplib.c poller.c ssllib.c bufferpool.c LIBASM = mvr2s_x64_avx2.S mvr2s_x64_avx512.S OBJS = $(SRCS:.c=.o) $(LIBSRCS:.c=.o) $(LIBASM:.S=.o) include ../lib/common.Makefile main.o: fix_frame_channel_layout.h install: $(TARGET) install -m 0755 -D $(TARGET) $(DESTDIR)/usr/bin/$(TARGET) rtpengine-mr12.5.1.22/perf-tester/log.c000066400000000000000000000020151474347554000175540ustar00rootroot00000000000000#include "log.h" #include #include #include #include "loglib.h" static const uint max_log_lines = 10000; mutex_t log_lock = MUTEX_STATIC_INIT; static GQueue log_buffer = G_QUEUE_INIT; void __ilog(int prio, const char *fmt, ...) { va_list ap; GSList *to_free = NULL; va_start(ap, fmt); char *line = g_strdup_vprintf(fmt, ap); { LOCK(&log_lock); g_queue_push_tail(&log_buffer, line); while (log_buffer.length > max_log_lines) to_free = g_slist_prepend(to_free, g_queue_pop_head(&log_buffer)); } va_end(ap); g_slist_free_full(to_free, g_free); } GQueue *get_log_lines(uint num, uint end) { GQueue *ret = g_queue_new(); LOCK(&log_lock); GList *l = log_buffer.tail; while (l && end--) l = l->prev; for (; l && num; num--, l = l->prev) g_queue_push_head(ret, g_strdup(l->data)); return ret; } void log_clear(void) { LOCK(&log_lock); g_queue_clear_full(&log_buffer, g_free); } int get_local_log_level(unsigned int subsystem_idx) { return -1; } rtpengine-mr12.5.1.22/perf-tester/log.h000066400000000000000000000003321474347554000175610ustar00rootroot00000000000000#ifndef __LOG_H__ #define __LOG_H__ #include "loglib.h" void __ilog(int prio, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); GQueue *get_log_lines(uint num, uint end); void log_clear(void); #endif rtpengine-mr12.5.1.22/perf-tester/log_funcs.h000066400000000000000000000001631474347554000207610ustar00rootroot00000000000000#ifndef __LOG_FUNCS_H__ #define __LOG_FUNCS_H__ #include "compat.h" INLINE void log_info_reset(void) { } #endif rtpengine-mr12.5.1.22/perf-tester/loglevels.h000066400000000000000000000005011474347554000207720ustar00rootroot00000000000000ll(core, "Everything that isn't part of another subsystem") ll(spandsp, "Log messages generated by SpanDSP directly") ll(ffmpeg, "Log messages generated by ffmpeg directly") ll(transcoding, "Media and RTP transcoding") ll(codec, "Codec negotiation") ll(internals, "Noisy low-level internals") ll(dtx, "DTX timer/buffer") rtpengine-mr12.5.1.22/perf-tester/main.c000066400000000000000000001242651474347554000177330ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include "auxlib.h" #include "codeclib.h" #include "poller.h" #include "ssllib.h" #include "obj.h" #include "fix_frame_channel_layout.h" #define COMM_SIZE 25 // including null byte #define COMM_SIZE_SCAN "24" // COMM_SIZE without null byte as string struct testparams { const char *name; const char *file; GPtrArray *fixture; // not a reference void (*read_fn)(GPtrArray *, struct testparams *); int clock_rate; int channels; enum AVCodecID codec_id; }; struct stream { struct obj obj; int timer_fd; int output_fd; char *type; mutex_t lock; unsigned long long input_ts; unsigned long long output_ts; decoder_t *decoder; encoder_t *encoder; codec_cc_t *chain; struct testparams in_params; struct testparams out_params; uint fixture_idx; long long encoding_start; uint dump_count; AVFormatContext *fmtctx; AVStream *avst; }; struct stats { long long iv; // last interval, or sum of all intervals long long ucpu; // CPU time, or sum of all user CPU times long long scpu; // CPU time, or sum of all system CPU times long long comput; // compute real time, or sum of all compute times bool blocked; // copied from worker->blocked }; struct stats_sample { long long ts; // last time stats were sampled struct stats stats; // last sampled stats }; struct worker { pthread_t thr; pid_t pid; bool blocked; // not locked, not critical. set by worker, cleared by output struct stats_sample sample; // owned by output thread mutex_t comput_lock; long long comput; // sum of time spent computing in us, reset to 0 at reading }; struct other_thread { char comm[COMM_SIZE]; struct stats_sample sample; // owned by output thread struct stats stats; // temp storage, owned by output thread }; struct freq_stats { long min; long max; long sum; long samples; }; struct thread_freq_stats { mutex_t lock; struct freq_stats stats; }; struct delay_stats { long long max_actual; long long max_allowed; uint slots; uint *counts; }; typedef void render_fn(const struct stats *stats, int line, int x, int breadth, int width, int color, const char *titlefmt, ...); typedef void delay_fn(const struct delay_stats *stats, int line, int x, int breadth, int width); static struct rtpengine_common_config rtpe_common_config = { .log_levels = { [log_level_index_ffmpeg] = 6, [log_level_index_internals] = 6, [log_level_index_core] = 6, }, }; static void fixture_read_avio(GPtrArray *, struct testparams *); static void fixture_read_raw(GPtrArray *, struct testparams *); static const struct testparams testparams[] = { { .name = "PCMA", .file = "pcma.1.8k.raw", .read_fn = fixture_read_raw, .clock_rate = 8000, .channels = 1, .codec_id = AV_CODEC_ID_PCM_ALAW, }, { .name = "PCMU", .file = "pcmu.1.8k.raw", .read_fn = fixture_read_raw, .clock_rate = 8000, .channels = 1, .codec_id = AV_CODEC_ID_PCM_MULAW, }, { .name = "opus", .file = "opus.1.8k.11k.speech.ogg", .read_fn = fixture_read_avio, .clock_rate = 48000, .channels = 2, .codec_id = AV_CODEC_ID_OPUS, }, }; // settings static char *source_codec = "PCMA"; static char *dest_codec = "opus"; static int init_threads = 0; static gboolean bidirectional = false; static int max_cpu = 0; static gboolean system_cpu; static int break_in = 200; static int measure_time = 500; static int repeats = 1; static gboolean cpu_freq; static int freq_granularity = 50; #define BLOCKED_COLOR 1 #define SUMMARY_COLOR 2 #define CPU_COLOR 3 #define THREAD_COLOR 4 static long ticks_per_sec; static uint num_cpus; static struct stats_sample *cpu_stats; static struct poller *rtpe_poller; static codec_def_t *decoder_def; static codec_def_t *encoder_def; static struct testparams in_params; static struct testparams out_params; static mutex_t workers_lock = MUTEX_STATIC_INIT; static GQueue workers = G_QUEUE_INIT; static __thread struct worker *worker_self; static mutex_t streams_lock = MUTEX_STATIC_INIT; static GPtrArray *streams; static GHashTable *stream_types; static mutex_t other_threads_lock = MUTEX_STATIC_INIT; static GHashTable *other_threads; static GHashTable *worker_threads; static mutex_t curses_lock = MUTEX_STATIC_INIT; static WINDOW *popup; static long long ptime = 20000; // us TODO: support different ptimes static mutex_t delay_stats_lock = MUTEX_STATIC_INIT; static struct delay_stats delay_stats; static render_fn usage_bar; static render_fn time_bar; static render_fn no_bar; static delay_fn delay_bar; static delay_fn no_delay; static render_fn *output_fn = usage_bar; // startup default static delay_fn *delay_out_fn = no_delay; // startup default static bool do_cpu_stats = false; static bool do_thread_stats = false; G_DEFINE_AUTOPTR_CLEANUP_FUNC(FILE, fclose) G_DEFINE_AUTOPTR_CLEANUP_FUNC(DIR, closedir) static pthread_t thread_new(const char *name, void *(*fn)(void *), void *p) { pthread_t ret; int s = pthread_create(&ret, NULL, fn, p); if (s != 0) abort(); #ifdef __GLIBC__ if (name) pthread_setname_np(ret, name); #endif return ret; } static inline long long us_ticks_scale(long long val) { return val * ticks_per_sec / 1000000; } static inline long long now_us(void) { struct timeval now; gettimeofday(&now, NULL); return timeval_us(&now); } // stream is locked static void dump_close(struct stream *s) { if (!s->fmtctx) return; av_write_trailer(s->fmtctx); avio_closep(&s->fmtctx->pb); avformat_free_context(s->fmtctx); s->fmtctx = NULL; } // stream is locked static int got_packet_pkt(struct stream *s, AVPacket *pkt) { pkt->pts = pkt->dts = s->output_ts; s->output_ts += pkt->duration; ssize_t ret = write(s->output_fd, pkt->data, pkt->size); (void)ret; long long now = now_us(); long long diff = now - s->encoding_start; { LOCK(&delay_stats_lock); if (delay_stats.max_actual < diff) delay_stats.max_actual = diff; if (delay_stats.max_allowed && diff < delay_stats.max_allowed) { uint slot = diff * delay_stats.slots / delay_stats.max_allowed; delay_stats.counts[slot]++; } } if (s->fmtctx) { // mkv uses millisecond timestamps pkt->pts = pkt->dts = av_rescale(pkt->pts, 1000, out_params.clock_rate); av_write_frame(s->fmtctx, pkt); avio_flush(s->fmtctx->pb); s->dump_count++; if (s->dump_count >= s->in_params.fixture->len) { // not technically correct as input frames may not match output frames dump_close(s); } } av_packet_unref(pkt); return 0; } // stream is locked static int got_packet(encoder_t *encoder, void *p1, void *p2) { AVPacket *pkt = encoder->avpkt; return got_packet_pkt(p1, pkt); } static int got_frame(decoder_t *decoder, AVFrame *frame, void *p1, void *b) { struct stream *s = p1; encoder_input_fifo(s->encoder, frame, got_packet, s, NULL); av_frame_free(&frame); return 0; } static void *worker(void *p) { thread_cancel_disable(); worker_self = p; worker_self->pid = gettid(); { LOCK(&other_threads_lock); g_hash_table_insert(worker_threads, GINT_TO_POINTER(worker_self->pid), NULL); } poller_loop(rtpe_poller); return NULL; } static void readable(int fd, void *o) { struct stream *s = o; obj_hold(s); long long start = now_us(); static const uint64_t max_iters = 10; // hard upper limit for iterations uint64_t total_iters = 0; while (true) { uint64_t exp; ssize_t ret = read(fd, &exp, sizeof(exp)); if (ret != sizeof(exp)) { if (ret == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) break; abort(); } // workers falling behind timer? if (exp >= 2) { worker_self->blocked = true; if (exp > max_iters) exp = max_iters; } if (total_iters++ > max_iters) break; // bail while (exp) { LOCK(&s->lock); s->encoding_start = start; AVPacket *data = s->in_params.fixture->pdata[s->fixture_idx++]; if (s->fixture_idx >= s->in_params.fixture->len) s->fixture_idx = 0; str frame; str_init_len(&frame, (char *) data->data, data->size); if (!s->chain) decoder_input_data(s->decoder, &frame, s->input_ts, got_frame, s, NULL); else { AVPacket *pkt = codec_cc_input_data(s->chain, &frame, s->input_ts, s, NULL, NULL); if (pkt) got_packet_pkt(s, pkt); else mutex_lock(&s->lock); // was unlocked by async_init } s->input_ts += data->duration; exp--; } } obj_put(s); long long end = now_us(); LOCK(&worker_self->comput_lock); worker_self->comput += end - start; } static void closed(int fd, void *o) { abort(); } static void new_threads(uint num) { while (num--) { struct worker *w = g_slice_alloc0(sizeof(*w)); mutex_init(&w->comput_lock); w->thr = thread_new("worker", worker, w); LOCK(&workers_lock); g_queue_push_tail(&workers, w); } } static void kill_threads(uint num) { GQueue to_join = G_QUEUE_INIT; struct worker *w; while (num--) { { LOCK(&workers_lock); w = g_queue_pop_tail(&workers); if (!w) break; } pthread_cancel(w->thr); g_queue_push_tail(&to_join, w); } while ((w = g_queue_pop_head(&to_join))) { pthread_join(w->thr, NULL); g_slice_free1(sizeof(*w), w); } } static void stream_free(void *p) { struct stream *s = p; close(s->output_fd); dump_close(s); if (s->encoder) encoder_free(s->encoder); if (s->decoder) decoder_close(s->decoder); g_free(s->type); } static void *async_init(void *x, void *y, void *z) { struct stream *s = x; // unlock in case the chain is busy and this blocks, so that whoever keeps the chain // busy can lock the stream once the result is in mutex_unlock(&s->lock); return obj_hold(s); } static void async_finish(AVPacket *pkt, void *async_cb_obj) { struct stream *s = async_cb_obj; { LOCK(&s->lock); got_packet_pkt(s, pkt); } obj_put(s); av_packet_free(&pkt); } static void new_stream_params( const codec_def_t *in_def, const struct testparams *inprm, const codec_def_t *out_def, const struct testparams *outprm ) { struct stream *s = obj_alloc0("stream", sizeof(*s), stream_free); // create timerfd s->timer_fd = timerfd_create(CLOCK_REALTIME, TFD_NONBLOCK); if (s->timer_fd == -1) abort(); // create dummy output fd s->output_fd = open("/dev/null", O_WRONLY); if (s->output_fd == -1) abort(); // init contents s->in_params = *inprm; s->out_params = *outprm; s->fixture_idx = ssl_random() % s->in_params.fixture->len; mutex_init(&s->lock); s->type = g_strdup_printf("%s -> %s", inprm->name, outprm->name); // create decoder and encoder format_t dec_format = { .clockrate = inprm->clock_rate, .channels = inprm->channels, .format = -1, }; format_t enc_format = { .clockrate = outprm->clock_rate, .channels = outprm->channels, .format = -1, }; int bitrate = encoder_def->default_bitrate; format_t actual_enc_format; s->chain = codec_cc_new(in_def, &dec_format, out_def, &enc_format, bitrate, 20, async_init, async_finish); if (!s->chain) { s->encoder = encoder_new(); int res = encoder_config_fmtp(s->encoder, out_def, bitrate, 20, &dec_format, &enc_format, &actual_enc_format, NULL, NULL, NULL); assert(res == 0); // TODO: handle failures gracefully s->decoder = decoder_new_fmtp(in_def, dec_format.clockrate, dec_format.channels, 20, &actual_enc_format, NULL, NULL, NULL); // TODO: support different options (fmtp etc) assert(s->decoder != NULL); // TODO: handle failures gracefully } // arm timer struct itimerspec timer = { .it_interval = { .tv_sec = 0, .tv_nsec = ptime * 1000, }, .it_value = { .tv_sec = 0, (ssl_random() % ptime) * 1000, }, }; int res = timerfd_settime(s->timer_fd, 0, &timer, NULL); if (res != 0) abort(); struct poller_item pi = { .fd = s->timer_fd, .obj = &s->obj, .readable = readable, .closed = closed, }; bool ok = poller_add_item(rtpe_poller, &pi); assert(ok == true); LOCK(&streams_lock); g_ptr_array_add(streams, s); uint *count = g_hash_table_lookup(stream_types, s->type); if (!count) { count = g_malloc0(sizeof(*count)); g_hash_table_insert(stream_types, g_strdup(s->type), count); } (*count)++; } static void new_stream(void) { new_stream_params(decoder_def, &in_params, encoder_def, &out_params); if (bidirectional) new_stream_params(encoder_def, &out_params, decoder_def, &in_params); } static void new_streams(uint num) { while (num--) new_stream(); } static void del_stream(void) { struct stream *s = NULL; { LOCK(&streams_lock); if (streams->len) { s = streams->pdata[streams->len - 1]; g_ptr_array_set_size(streams, streams->len - 1); uint *count = g_hash_table_lookup(stream_types, s->type); if (count) { (*count)--; if (!*count) g_hash_table_remove(stream_types, s->type); } } } if (!s) return; poller_del_item(rtpe_poller, s->timer_fd); s->timer_fd = -1; obj_put(s); } static void del_streams_raw(uint num) { while (num--) del_stream(); } static void del_streams(uint num) { if (bidirectional) num *= 2; del_streams_raw(num); } static void set_streams(uint num) { if (bidirectional) num *= 2; while (true) { uint cur; { LOCK(&streams_lock); cur = streams->len; } if (cur == num) break; if (cur < num) new_stream(); else del_stream(); } } // curses_lock must be held static void kill_popup(void) { if (!popup) return; delwin(popup); popup = NULL; } // curses_lock must be held static void refresh_all(void) { wnoutrefresh(stdscr); if (popup) { touchwin(popup); wnoutrefresh(popup); } doupdate(); } __attribute__((format(printf,1,2))) static void show_popup(const char *fmt, ...) { va_list va; va_start(va, fmt); char *s = g_strdup_vprintf(fmt, va); va_end(va); // split into lines and get max line length GQueue lines = G_QUEUE_INIT; str st = STR_INIT(s); str token; uint llen = 0; while (str_token_sep(&token, &st, '\n')) { g_queue_push_tail(&lines, str_dup(&token)); llen = MAX(token.len, llen); } // render window { LOCK(&curses_lock); kill_popup(); int maxx, maxy; getmaxyx(stdscr, maxy, maxx); int w = llen + 4, h = lines.length + 2; popup = newwin(h, w, (maxy - h) / 2, (maxx - w) / 2); box(popup, 0, 0); int linenum = 1; while (lines.length) { str *line = g_queue_pop_head(&lines); mvwprintw(popup, linenum++, 2, "%s", line->s); g_free(line); } refresh_all(); } // wait for key and then kill it getch(); { LOCK(&curses_lock); kill_popup(); refresh_all(); } } // streams_lock must be held // returns g_malloc'd string static char *start_dump_stream(struct stream *s, const char *suffix) { char *msg = NULL; const char *err = NULL; { LOCK(&s->lock); err = "Stream is already dumping"; if (s->fmtctx) goto out; s->dump_count = 0; err = "Failed to allocate AVFormat"; s->fmtctx = avformat_alloc_context(); if (!s->fmtctx) goto out; g_autoptr(char) fn = g_strdup_printf("stream-dump-%llu%s.mkv", (long long unsigned) time(NULL), suffix ?: ""); s->fmtctx->oformat = av_guess_format(NULL, fn, NULL); err = "Output format unknown to ffmpeg"; if (!s->fmtctx->oformat) goto out; err = "Failed to add output audio stream"; s->avst = avformat_new_stream(s->fmtctx, avcodec_find_encoder(s->out_params.codec_id)); if (!s->avst) goto out; s->avst->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; s->avst->codecpar->codec_id = s->out_params.codec_id; DEF_CH_LAYOUT(&s->avst->codecpar->CH_LAYOUT, s->out_params.channels); s->avst->codecpar->sample_rate = s->out_params.clock_rate; s->avst->time_base = (AVRational) {1, s->out_params.clock_rate}; // TODO: is this the correct time base? err = NULL; int ret = avio_open(&s->fmtctx->pb, fn, AVIO_FLAG_WRITE); if (ret < 0) { msg = g_strdup_printf("Failed to open output file '%s'", fn); goto out; } err = "Failed to write file header"; ret = avformat_write_header(s->fmtctx, NULL); if (ret < 0) goto out; msg = g_strdup_printf("Started dumping to file '%s'", fn); err = NULL; } out: if (err) { g_free(msg); return g_strdup(err); } return msg; } static void start_dump(void) { char *msg1 = NULL, *msg2 = NULL; const char *err = NULL; uint idx; { LOCK(&streams_lock); err = "No active streams to dump"; if (!streams->len) goto out; uint len = streams->len; if (bidirectional) { assert((len % 2) == 0); // must be an even number len /= 2; } err = NULL; idx = ssl_random() % len; if (!bidirectional) msg1 = start_dump_stream(streams->pdata[idx], NULL); else { msg1 = start_dump_stream(streams->pdata[idx], "-fwd"); msg2 = start_dump_stream(streams->pdata[idx + 1], "-rev"); } } out: if (err) show_popup("%s", err); else { assert(msg1 != NULL); if (msg2) show_popup("Stream %u: %s\nStream %u: %s", idx, msg1, idx + 1, msg2); else show_popup("Stream %u: %s", idx, msg1); } g_free(msg1); g_free(msg2); } static void show_help(void) { show_popup( "ESC exit 1 CPU usage\n" "[ ] -/+ 1 thread 2 realtime\n" "{ } -/+ 10 threads c CPU stats\n" "q w e +1/10/100 streams t other threads\n" "a s d -1/10/100 streams o start dump\n" " l show log" ); } static void show_log(void) { int h, w; { LOCK(&curses_lock); kill_popup(); int maxx, maxy; getmaxyx(stdscr, maxy, maxx); w = maxx - 4; h = maxy - 4; popup = newwin(h, w, (maxy - h) / 2, (maxx - w) / 2); box(popup, 0, 0); GQueue *log = get_log_lines(h - 2, 0); char *line; int y = 1; while ((line = g_queue_pop_head(log))) { mvwprintw(popup, y++, 2, "%.*s", w - 2, line); g_free(line); } refresh_all(); } getch(); { LOCK(&curses_lock); kill_popup(); refresh_all(); } } static void *do_input(void *p) { while (true) { thread_cancel_enable(); int ch = getch(); thread_cancel_disable(); switch (ch) { case 27: // escape return NULL; case ']': new_threads(1); break; case '[': kill_threads(1); break; case '}': new_threads(10); break; case '{': kill_threads(10); break; case 'q': new_streams(1); break; case 'w': new_streams(10); break; case 'e': new_streams(100); break; case 'a': del_streams(1); break; case 's': del_streams(10); break; case 'd': del_streams(100); break; case '1': output_fn = usage_bar; delay_out_fn = no_delay; break; case '2': output_fn = time_bar; delay_out_fn = no_delay; break; case '3': output_fn = no_bar; delay_out_fn = delay_bar; break; case 'o': start_dump(); break; case 'c': do_cpu_stats = !do_cpu_stats; break; case 't': do_thread_stats = !do_thread_stats; break; case KEY_F(1): case 'h': case 'H': case '?': show_help(); break; case 'l': show_log(); break; } } return NULL; } static void head_tail_bar(int x, int line, int *width, int head, int tail, int *col0, int *colt) { *col0 = x + head; *width -= tail; *colt = x + *width; *width -= head; } static void usage_bar(const struct stats *stats, int line, int x, int breadth, int width, int color, const char *titlefmt, ...) { static const int head = 13; static const int tail = 15; int col0, colt; head_tail_bar(x, line, &width, head, tail, &col0, &colt); int uw = stats->iv ? stats->ucpu * width / stats->iv : 0; int sw = stats->iv ? stats->scpu * width / stats->iv : 0; int iw = MAX(width - uw - sw, 0); int up = stats->iv ? stats->ucpu * 100 / stats->iv : 0; int sp = stats->iv ? stats->scpu * 100 / stats->iv : 0; int ip = MAX(100 - up - sp, 0); va_list vp; va_start(vp, titlefmt); move(line, x); vw_printw(stdscr, titlefmt, vp); va_end(vp); int extra_bits = 0; if (stats->blocked) extra_bits |= COLOR_PAIR(BLOCKED_COLOR); else if (color) extra_bits |= COLOR_PAIR(color); for (int br = 0; br < breadth; br++) { move(line + br, col0); attron(A_BOLD | extra_bits); for (int i = 0; i < uw; i++) addstr("â–“"); attroff(A_BOLD | extra_bits); attron(A_DIM | extra_bits); for (int i = 0; i < sw; i++) addstr("â–‘"); attroff(A_DIM | extra_bits); attron(A_DIM | extra_bits); for (int i = 0; i < iw; i++) addstr("·"); attroff(A_DIM | extra_bits); } mvprintw(line, colt, "%3u%%/%3u%%/%3u%%", up, sp, ip); } static void time_bar(const struct stats *stats, int line, int x, int breadth, int width, int color, const char *titlefmt, ...) { static const int head = 13; static const int tail = 10; int col0, colt; head_tail_bar(x, line, &width, head, tail, &col0, &colt); long long comput = us_ticks_scale(stats->comput); int uw = stats->iv ? comput * width / stats->iv : 0; int iw = MAX(width - uw, 0); int up = stats->iv ? comput * 100 / stats->iv : 0; int ip = MAX(100 - up, 0); va_list vp; va_start(vp, titlefmt); move(line, x); vw_printw(stdscr, titlefmt, vp); va_end(vp); int extra_bits = 0; if (stats->blocked) extra_bits |= COLOR_PAIR(BLOCKED_COLOR); else if (color) extra_bits |= COLOR_PAIR(color); for (int br = 0; br < breadth; br++) { move(line + br, col0); attron(A_BOLD | extra_bits); for (int i = 0; i < uw; i++) addstr("â–“"); attroff(A_BOLD | extra_bits); attron(A_DIM | extra_bits); for (int i = 0; i < iw; i++) addstr("·"); attroff(A_DIM | extra_bits); } mvprintw(line, colt, "%3u%%/%3u%%", up, ip); } static void no_bar(const struct stats *stats, int line, int x, int breadth, int width, int color, const char *titlefmt, ...) { } static bool thread_collect(pid_t pid, struct stats *outp, struct stats_sample *sample, char comm_out[COMM_SIZE]) { if (!pid) return false; g_autoptr(char) fn = g_strdup_printf("/proc/%i/task/%i/stat", (int) pid, (int) pid); g_autoptr(FILE) fp = fopen(fn, "r"); if (!fp) return false; long long now = now_us(); long long utime, stime; char comm[COMM_SIZE]; int rets = fscanf(fp, "%*d (%" COMM_SIZE_SCAN "[^)]) %*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u %lld %lld ", comm, &utime, &stime); if (rets != 3) return false; if (sample->ts) { outp->iv = us_ticks_scale(now - sample->ts); outp->ucpu = utime - sample->stats.ucpu; outp->scpu = stime - sample->stats.scpu; } sample->ts = now; sample->stats.ucpu = utime; sample->stats.scpu = stime; if (comm_out) strcpy(comm_out, comm); return true; } // worker_lock is held static void worker_collect(struct worker *w, struct stats *outp) { if (!thread_collect(w->pid, outp, &w->sample, NULL)) return; outp->blocked = w->blocked; w->blocked = false; LOCK(&w->comput_lock); outp->comput = w->comput; w->comput = 0; } static void bar_grid(uint num, int maxx, int *height, int *width) { if (maxx < 104) { *height = num; *width = maxx; return; } *height = (num + 1) / 2; *width = maxx / 2 - 1; } static void grid_line(int *y, int *x, int starty, int height, int maxx) { if (*y > height + starty - 1) { *y = starty; *x = (maxx + 1) / 2 + 1; } (*y)++; } static void workers_totals(const struct stats *stats, struct stats *totals) { if (!totals) return; totals->iv += stats->iv; totals->ucpu += stats->ucpu; totals->scpu += stats->scpu; totals->comput += stats->comput; } // worker_lock is held static void worker_stats(struct worker *w, int idx, int starty, int height, int width, int breadth, int *y, int *x, int maxy, int maxx, struct stats *totals) { struct stats stats = {0}; worker_collect(w, &stats); workers_totals(&stats, totals); grid_line(y, x, starty, height, maxx); if (*y < maxy) output_fn(&stats, *y, *x, breadth, width, 0, "Thread %2u:", idx); } TYPED_GQUEUE(stats, struct stats) static void stats_queue_free(stats_q *q) { struct stats *sp; while ((sp = t_queue_pop_head(q))) g_slice_free1(sizeof(*sp), sp); t_queue_free(q); } G_DEFINE_AUTOPTR_CLEANUP_FUNC(stats_q, stats_queue_free) static bool cpu_collect(stats_q *outp, struct stats *totals) { g_autoptr(FILE) fp = fopen("/proc/stat", "r"); if (!fp) return false; while (!feof(fp)) { long long now = now_us(); char cpu[7]; long long utime, nice, stime; int rets = fscanf(fp, "%6s %lld %lld %lld ", cpu, &utime, &nice, &stime); if (rets != 4) continue; utime += nice; uint idx; rets = sscanf(cpu, "cpu%u", &idx); if (rets != 1) continue; if (idx >= num_cpus) break; struct stats stats = {0}; if (cpu_stats[idx].ts) { stats.iv = us_ticks_scale(now - cpu_stats[idx].ts); stats.ucpu = utime - cpu_stats[idx].stats.ucpu; stats.scpu = stime - cpu_stats[idx].stats.scpu; } cpu_stats[idx].ts = now; cpu_stats[idx].stats.ucpu = utime; cpu_stats[idx].stats.scpu = stime; if (totals) { totals->iv += stats.iv; totals->ucpu += stats.ucpu; totals->scpu += stats.scpu; } if (outp) { struct stats *sp = g_slice_alloc(sizeof(*sp)); *sp = stats; t_queue_push_tail(outp, sp); } } return true; } static int cpu_collect_stats(const bool do_output, int starty, int maxy, int maxx, struct stats *totals) { g_autoptr(stats_q) stats = do_output ? stats_q_new() : NULL; if (!cpu_collect(stats, totals)) return starty; if (!do_output) return starty; int height, width; bar_grid(num_cpus, maxx, &height, &width); int y = starty; int x = 0; uint idx = 0; for (__auto_type l = stats->head; l; l = l->next) { struct stats *sp = l->data; grid_line(&y, &x, starty, height, maxx); if (y < maxy) usage_bar(sp, y, x, 1, width, CPU_COLOR, "CPU %2u:", idx); idx++; } return starty + height; } static void delay_stats_collect(struct delay_stats *local, uint slots, long long max_allowed) { { // copy out and reset to zero LOCK(&delay_stats_lock); *local = delay_stats; delay_stats = (struct delay_stats) {0}; delay_stats.slots = slots; delay_stats.counts = g_new0(__typeof__(*delay_stats.counts), delay_stats.slots); delay_stats.max_allowed = max_allowed; } } static void delay_stats_free(struct delay_stats *local) { g_free(local->counts); } static void no_delay(const struct delay_stats *stats, int line, int x, int breadth, int width) { } static void delay_bar(const struct delay_stats *stats, int line, int x, int breadth, int width) { if (!stats->slots) return; uint per_slot = stats->max_allowed / stats->slots; for (uint i = 0; i < stats->slots; i++) { move(line, x); uint start = i * stats->max_allowed / stats->slots; printw("%3.1f ms - %3.1f ms: %u", start / 1000., (start + per_slot) / 1000., stats->counts[i]); line++; } } static void other_thread_free(struct other_thread *thr) { g_slice_free1(sizeof(*thr), thr); } static int pid_compare(const void *a, const void *b) { pid_t A = GPOINTER_TO_INT(a); pid_t B = GPOINTER_TO_INT(b); if (A < B) return -1; if (B < A) return 1; return 0; } static int other_threads_collect(const bool do_output, int starty, int maxy, int maxx, struct stats *totals) { g_autoptr(char) dn = g_strdup_printf("/proc/%u/task", getpid()); g_autoptr(DIR) dp = opendir(dn); if (!dp) return starty; int y = starty; LOCK(&other_threads_lock); // track which threads we should delete GHashTable *tracker = g_hash_table_new(g_direct_hash, g_direct_equal); // and a sorted list for output GTree *tree = g_tree_new(pid_compare); GHashTableIter iter; g_hash_table_iter_init(&iter, other_threads); void *p; while (g_hash_table_iter_next(&iter, &p, NULL)) g_hash_table_insert(tracker, p, NULL); struct dirent *ent; while ((ent = readdir(dp))) { if (ent->d_name[0] == '.') continue; pid_t pid = strtol(ent->d_name, NULL, 10); if (!pid) continue; // skip excluded threads (workers) if (g_hash_table_contains(worker_threads, GINT_TO_POINTER(pid))) continue; // skip PIDs already seen. (shouldn't happen) if (g_tree_lookup_extended(tree, GINT_TO_POINTER(pid), NULL, NULL)) continue; // object already exists? struct other_thread *thr = g_hash_table_lookup(other_threads, GINT_TO_POINTER(pid)); if (!thr) { thr = g_slice_alloc0(sizeof(*thr)); g_hash_table_insert(other_threads, GINT_TO_POINTER(pid), thr); } // collect stats if (!thread_collect(pid, &thr->stats, &thr->sample, thr->comm)) continue; // track as active thread g_hash_table_remove(tracker, GINT_TO_POINTER(pid)); g_tree_insert(tree, GINT_TO_POINTER(pid), thr); } // finally delete leftovers g_hash_table_iter_init(&iter, tracker); while (g_hash_table_iter_next(&iter, &p, NULL)) g_hash_table_remove(other_threads, p); int height = 0; if (do_output) { // output based on sorted list GQueue threads = G_QUEUE_INIT; g_tree_get_values(&threads, tree); int width; bar_grid(threads.length, maxx, &height, &width); int x = 0; struct other_thread *thr; while ((thr = g_queue_pop_head(&threads))) { grid_line(&y, &x, starty, height, maxx); if (y < maxy) usage_bar(&thr->stats, y, x, 1, width, THREAD_COLOR, "%s:", thr->comm); } } g_hash_table_destroy(tracker); g_tree_destroy(tree); return starty + height; } static void *do_stats(void *p) { thread_cancel_disable(); while (true) { { // init LOCK(&curses_lock); erase(); int maxx, maxy; getmaxyx(stdscr, maxy, maxx); // top line summary mvprintw(0, 0, "Threads: %u | ", workers.length); { LOCK(&streams_lock); addstr("Streams: "); if (streams->len == 0) addstr("0"); else { GHashTableIter iter; g_hash_table_iter_init(&iter, stream_types); char *t; uint *n; while (g_hash_table_iter_next(&iter, (gpointer *) &t, (gpointer *) &n)) printw("%s: %u | ", t, *n); if (g_hash_table_size(stream_types) > 1) { if (bidirectional) printw("Total: %u streams (%u bidirectional calls)", streams->len, streams->len / 2); else printw("Total: %u unidirectional streams", streams->len); } else { int y, x; getyx(stdscr, y, x); mvaddstr(y, x - 2, " "); } } } // CPU stats, collect and display if enabled int line = 2; int totals_line = line; struct stats cpu_totals = {0}; line = cpu_collect_stats(do_cpu_stats, line, maxy, maxx, &cpu_totals); if (do_cpu_stats) { output_fn(&cpu_totals, totals_line, 0, 1, maxx, SUMMARY_COLOR, "CPUs:"); line += 2; } // other threads stats, collect and display if enabled totals_line = line; struct stats thread_totals = {0}; line = other_threads_collect(do_thread_stats, line, maxy, maxx, &thread_totals); if (do_thread_stats) { output_fn(&thread_totals, totals_line, 0, 1, maxx, SUMMARY_COLOR, "Threads:"); line += 2; } // collect delay stats struct delay_stats delay_stats_local; delay_stats_collect(&delay_stats_local, maxy - 3, 20000); // worker thread stats totals_line = line; struct stats worker_totals = {0}; int breadth = 1; int double_thresh = (maxy - line) / 3; { LOCK(&workers_lock); uint idx = 0; int height = maxy - line; int width = maxx; int inc = 0; if (workers.length < double_thresh) { inc = 2; breadth = 2; line += 2; } else if (workers.length < height) inc = 0; else bar_grid(workers.length, maxx, &height, &width); int y = line; int x = 0; for (GList *l = workers.head; l; l = l->next) { struct worker *w = l->data; worker_stats(w, idx, line, height, width, breadth, &y, &x, maxy, maxx, &worker_totals); idx++; y += inc; } } output_fn(&worker_totals, totals_line, 0, breadth, maxx, SUMMARY_COLOR, "Threads:"); delay_out_fn(&delay_stats_local, totals_line, 0, breadth, maxx); refresh_all(); delay_stats_free(&delay_stats_local); } thread_cancel_enable(); usleep(500000); thread_cancel_disable(); } return NULL; } static char *fixture_path_file(const char *base_fn) { if (base_fn[0] == '/') return g_strdup(base_fn); return g_strdup_printf("%s/%s", FIXTURES_PATH, base_fn); } static void fixture_read_avio(GPtrArray *fixture, struct testparams *prm) { AVFormatContext *fctx = NULL; g_autoptr(char) fn = fixture_path_file(prm->file); int ret = avformat_open_input(&fctx, fn, NULL, NULL); if (ret < 0) die("Failed to open input fixture"); avformat_find_stream_info(fctx, NULL); AVStream *avst = fctx->streams[0]; if (!avst) die("No streams found in input fixture"); while (true) { AVPacket *pkt = av_packet_alloc(); if (!pkt) die("Failed to allocate AVPacket"); ret = av_read_frame(fctx, pkt); if (ret < 0) { if (ret == AVERROR_EOF) break; die("Read error while reading input fixture"); } g_ptr_array_add(fixture, pkt); } avformat_close_input(&fctx); } static void fixture_read_raw(GPtrArray *fixture, struct testparams *prm) { g_autoptr(char) fn = fixture_path_file(prm->file); FILE *fp = fopen(fn, "r"); if (!fp) die("Failed to open input fixture"); while (true) { AVPacket *pkt = av_packet_alloc(); if (!pkt) die("Failed to allocate AVPacket"); void *buf = av_malloc(160); // TODO: adapt for different ptimes/sample rates if (!buf) die("Out of memory"); size_t ret = fread(buf, 160, 1, fp); // TODO: adapt for different ptimes/sample rates if (ret != 1) { if (feof(fp)) break; die("Read error while reading input fixture"); } pkt->duration = 160; // TODO: adapt for different ptimes/sample rates av_packet_from_data(pkt, buf, 160); // TODO: adapt for different ptimes/sample rates g_ptr_array_add(fixture, pkt); } fclose(fp); } static void load_fixture(struct testparams *prm) { prm->fixture = g_ptr_array_new(); prm->read_fn(prm->fixture, prm); } static void free_fixture(GPtrArray *fixture) { if (!fixture) return; for (uint idx = 0; idx < fixture->len; idx++) av_packet_free((AVPacket **) &fixture->pdata[idx]); g_ptr_array_free(fixture, TRUE); } static void options(int *argc, char ***argv) { GOptionEntry e[] = { { .long_name = "source", .short_name = 's', .arg = G_OPTION_ARG_STRING, .arg_data = &source_codec, .description = "Source (input) codec", .arg_description = "PCMA|opus", }, { .long_name = "dest", .short_name = 'd', .arg = G_OPTION_ARG_STRING, .arg_data = &dest_codec, .description = "Destination (output) codec", .arg_description = "opus|PCMA", }, { .long_name = "threads", .short_name = 't', .arg = G_OPTION_ARG_INT, .arg_data = &init_threads, .description = "initial number of worker threads", .arg_description = "INT", }, { .long_name = "bidirectional", .short_name = 'b', .arg = G_OPTION_ARG_NONE, .arg_data = &bidirectional, .description = "Create transcoding streams both ways", }, { .long_name = "max-cpu", .short_name = 'm', .arg = G_OPTION_ARG_INT, .arg_data = &max_cpu, .description = "Automated test up to x% CPU", .arg_description = "INT", }, { .long_name = "system-cpu", .short_name = 's', .arg = G_OPTION_ARG_NONE, .arg_data = &system_cpu, .description = "Consider system CPU usage for automated tests", }, { .long_name = "break-in", .arg = G_OPTION_ARG_INT, .arg_data = &break_in, .description = "Break-in time in ms before measuring for automated tests", .arg_description = "INT", }, { .long_name = "measure-time", .arg = G_OPTION_ARG_INT, .arg_data = &measure_time, .description = "Duration of automated tests in ms", .arg_description = "INT", }, { .long_name = "repeats", .arg = G_OPTION_ARG_INT, .arg_data = &repeats, .description = "Number of times to repeat automated test", .arg_description = "INT", }, { .long_name = "cpu-freq", .arg = G_OPTION_ARG_NONE, .arg_data = &cpu_freq, .description = "Monitor CPU frequencies during automated test", }, { .long_name = "freq-granularity", .arg = G_OPTION_ARG_INT, .arg_data = &freq_granularity, .description = "Granularity in ms for measuring CPU frequencies", .arg_description = "INT", }, { NULL, } }; config_load(argc, argv, e, " - rtpengine performance tester", "/etc/rtpengine/rtpengine-perftest.conf", "rtpengine-perftest", &rtpe_common_config); if (init_threads <= 0) init_threads = num_cpus; if (init_threads <= 0) init_threads = 1; if (max_cpu > 100 || max_cpu < 0) die("Invalid `max-cpu` number given"); if (freq_granularity <= 0) die("Invalid `freq-granularity` number given"); } static bool find_params(struct testparams *prm, const char *name) { const struct testparams *p; for (int i = 0; i < G_N_ELEMENTS(testparams); i++) { p = &testparams[i]; if (strcmp(p->name, name)) continue; *prm = *p; return true; } return false; } static void interactive(void) { initscr(); start_color(); cbreak(); noecho(); keypad(stdscr, TRUE); curs_set(0); set_escdelay(25); init_pair(BLOCKED_COLOR, COLOR_RED, COLOR_BLACK); init_pair(SUMMARY_COLOR, COLOR_GREEN, COLOR_BLACK); init_pair(CPU_COLOR, COLOR_BLUE, COLOR_BLACK); init_pair(THREAD_COLOR, COLOR_CYAN, COLOR_BLACK); refresh(); new_threads(init_threads); pthread_t input_thread = thread_new("term input", do_input, NULL); pthread_t stats_thread = thread_new("stats", do_stats, NULL); // input handler is in control, wait for shutdown pthread_join(input_thread, NULL); pthread_cancel(stats_thread); pthread_join(stats_thread, NULL); } static void delay_measure_workers(uint milliseconds, struct stats *totals) { usleep(milliseconds * 1000); LOCK(&workers_lock); for (GList *l = workers.head; l; l = l->next) { struct worker *w = l->data; struct stats stats = {0}; worker_collect(w, &stats); workers_totals(&stats, totals); } } static void *cpu_freq_monitor(void *p) { struct thread_freq_stats *freq_stats = p; while (true) { struct freq_stats iter_stats = {0}; { g_autoptr(DIR) dp = opendir("/sys/devices/system/cpu/cpufreq"); if (!dp) break; // bail out struct dirent *ent; while ((ent = readdir(dp))) { if (strncmp(ent->d_name, "policy", 6) != 0) continue; // skip g_autoptr(char) fn = g_strdup_printf("/sys/devices/system/cpu/cpufreq/%s/scaling_cur_freq", ent->d_name); g_autoptr(FILE) fp = fopen(fn, "r"); if (!fp) continue; // ignore long long freq; int rets = fscanf(fp, "%lld", &freq); if (rets != 1) continue; // ignore iter_stats.max = iter_stats.max ? MAX(iter_stats.max, freq) : freq; iter_stats.min = iter_stats.min ? MIN(iter_stats.min, freq) : freq; iter_stats.sum += freq; iter_stats.samples++; } } // done collecting, add to shared struct { LOCK(&freq_stats->lock); freq_stats->stats.max = freq_stats->stats.max ? MAX(freq_stats->stats.max, iter_stats.max) : iter_stats.max; freq_stats->stats.min = freq_stats->stats.min ? MIN(freq_stats->stats.min, iter_stats.min) : iter_stats.min; freq_stats->stats.sum += iter_stats.sum; freq_stats->stats.samples += iter_stats.samples; } thread_cancel_enable(); usleep(freq_granularity * 1000); thread_cancel_disable(); } return NULL; } static void max_cpu_test(void) { int max_cpu_scaled = max_cpu * 100000; new_threads(init_threads); uint test_num = 1; set_streams(test_num); pthread_t cpu_thread = 0; struct thread_freq_stats freq_stats = {.lock = MUTEX_STATIC_INIT}; if (cpu_freq) cpu_thread = thread_new("CPU freq", cpu_freq_monitor, &freq_stats); int count = repeats; while (count > 0) { // initial break-in delay_measure_workers(break_in, NULL); cpu_collect(NULL, NULL); // measure struct stats totals = {0}; if (!system_cpu) delay_measure_workers(measure_time, &totals); else { delay_measure_workers(measure_time, NULL); cpu_collect(NULL, &totals); } // CPU% x 100000 int cpu = (totals.scpu + totals.ucpu) * 100 * 100000 / totals.iv; // CPU load per stream (% x 100000) int cps = cpu / test_num; if (cps == 0) { // not enough to have a useful value - double it test_num *= 2; } else { // predicted # streams for target CPU usage int target = max_cpu_scaled / cps; // how close are we to the target? int acc = test_num * 100 / target; if (acc >= 99 && acc <= 101) { printf("%.1f%% CPU usage doing %s %s %s with %u %s on %u threads\n", (float) cpu / 100000.0, in_params.name, bidirectional ? "<>" : "->", out_params.name, test_num, bidirectional ? "bidirectional calls" : "unidirectional streams", workers.length); if (cpu_freq) { // retrieve stats and reset struct freq_stats stats; { LOCK(&freq_stats.lock); stats = freq_stats.stats; freq_stats.stats = (__typeof__(freq_stats.stats)) {0}; } if (!stats.samples) printf(" (no CPU frequency stats collected)\n"); else { printf(" CPU frequencies: " "%.2f <> %.2f GHz, avg %.2f GHz\n", (float) stats.min / 1000000., (float) stats.max / 1000000., (float) stats.sum / (float) stats.samples / 1000000.); } } count--; } // scale to 50..100 int factor = 50 + acc / 2; test_num = target * factor / 100; } set_streams(test_num); } if (cpu_thread) { pthread_cancel(cpu_thread); pthread_join(cpu_thread, NULL); } } int main(int argc, char **argv) { setlocale(LC_ALL, ""); ticks_per_sec = sysconf(_SC_CLK_TCK); num_cpus = num_cpu_cores(1); cpu_stats = g_malloc0(sizeof(*cpu_stats) * num_cpus); other_threads = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) other_thread_free); worker_threads = g_hash_table_new(g_direct_hash, g_direct_equal); options(&argc, &argv); codeclib_init(0); rtpe_ssl_init(); resources(); streams = g_ptr_array_new(); stream_types = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); rtpe_poller = poller_new(); if (!rtpe_poller) die("Failed to create poller"); decoder_def = codec_find(&STR_INIT(source_codec), MT_AUDIO); if (!decoder_def) die("Codec definition for source codec not found"); encoder_def = codec_find(&STR_INIT(dest_codec), MT_AUDIO); if (!encoder_def) die("Codec definition for destination codec not found"); if (!find_params(&in_params, source_codec)) die("Definition for input fixture not found"); if (!find_params(&out_params, dest_codec)) die("Definition for output fixture not found"); load_fixture(&in_params); if (bidirectional) load_fixture(&out_params); if (max_cpu) max_cpu_test(); else interactive(); kill_threads(workers.length); del_streams_raw(streams->len); g_ptr_array_free(streams, TRUE); g_hash_table_destroy(stream_types); g_hash_table_destroy(other_threads); g_hash_table_destroy(worker_threads); free_fixture(in_params.fixture); free_fixture(out_params.fixture); log_clear(); endwin(); return 0; } rtpengine-mr12.5.1.22/perl/000077500000000000000000000000001474347554000153335ustar00rootroot00000000000000rtpengine-mr12.5.1.22/perl/NGCP/000077500000000000000000000000001474347554000160625ustar00rootroot00000000000000rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/000077500000000000000000000000001474347554000200265ustar00rootroot00000000000000rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/DTLS.pm000066400000000000000000000162531474347554000211410ustar00rootroot00000000000000package NGCP::Rtpclient::DTLS; use strict; use warnings; use NGCP::Rtpclient::SRTP; use File::Temp; use Crypt::OpenSSL::RSA; use IO::Socket::INET; use IPC::Open3; use IO::Multiplex; use Time::HiRes qw(sleep time); sub new { my ($class, $mux, $local_sockets, $output_func, $tag, $cert) = @_; my $self = {}; bless $self, $class; $self->{_output_func} = $output_func; $self->{_mux} = $mux; $self->{_tag} = $tag; $self->{_local_sockets} = $local_sockets; if ($cert) { $self->set_cert($cert); } else { $self->new_cert(); } return $self; } sub new_cert { my ($self) = @_; my $rsa_key = Crypt::OpenSSL::RSA->generate_key(1024); my $priv_key = $rsa_key->get_private_key_string(); my $key_file = File::Temp->new(); print $key_file $priv_key; close($key_file); my $cert_file = File::Temp->new(); system(qw(openssl req -key), $key_file->filename(), '-out', $cert_file->filename(), qw(-new -x509 -days 30 -subj /CN=tester -batch)); my $cert; read($cert_file, $cert, 10000); close($cert_file); my $cert_key_file = File::Temp->new(); print $cert_key_file $cert; print $cert_key_file $priv_key; close($cert_key_file); $self->set_cert($cert_key_file); return $cert_key_file; } sub get_cert { my ($self) = @_; return $self->{_cert_key_file}; } sub set_cert { my ($self, $file) = @_; $self->{_cert_key_file} = $file; } # XXX unify these two sub connect { ## no critic: Subroutines::ProhibitBuiltinHomonyms my ($self) = @_; $self->{_connected} and return; $self->_kill_openssl_child(); my $near = $self->{_near}; $near or ($near = $self->{_near} = IO::Socket::INET->new(Type => SOCK_DGRAM, LocalAddr => 'localhost', Proto => 'udp')); my $near_port = $near->sockport(); my ($openssl_in, $openssl_out); $self->{_openssl_pid} = open3($openssl_in, $openssl_out, undef, qw(openssl s_client -connect), "localhost:$near_port", '-cert', $self->{_cert_key_file}->filename(), qw(-dtls1 -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport EXTRACTOR-dtls_srtp -keymatexportlen 60)); $self->{_openssl_out} = $openssl_out; $self->{_openssl_in} = $openssl_in; $self->{_openssl_buf} = ''; $self->{_mux}->add($near); $self->{_mux}->add($openssl_out); } sub accept { ## no critic: Subroutines::ProhibitBuiltinHomonyms my ($self) = @_; $self->{_connected} and return; $self->_kill_openssl_child(); my ($near_port, $near_peer); my $near = $self->{_near}; if ($near) { $near_port = $near->peerport(); $near_peer = $near->peeraddr(); } else { my $tmp = IO::Socket::INET->new(Type => SOCK_DGRAM, LocalAddr => 'localhost', Proto => 'udp'); $near_port = $tmp->sockport(); undef($tmp); $near = $self->{_near} = IO::Socket::INET->new(Type => SOCK_DGRAM, LocalAddr => 'localhost', Proto => 'udp'); $near_peer = pack_sockaddr_in($near_port, inet_aton("localhost")); # $near gets connected below } my ($openssl_in, $openssl_out); $self->{_openssl_pid} = open3($openssl_in, $openssl_out, undef, qw(openssl s_server -accept), $near_port, '-cert', $self->{_cert_key_file}->filename(), qw(-dtls1 -use_srtp SRTP_AES128_CM_SHA1_80:SRTP_AES128_CM_SHA1_32 -keymatexport EXTRACTOR-dtls_srtp -keymatexportlen 60)); # XXX dtls 1.2 ? sleep(0.2); # given openssl a short while to start up $self->_near_peer($near_peer); $self->{_openssl_out} = $openssl_out; $self->{_openssl_in} = $openssl_in; $self->{_openssl_buf} = ''; $self->{_mux}->add($near); $self->{_mux}->add($openssl_out); } sub _kill_openssl_child { my ($self) = @_; if ($self->{_openssl_pid}) { kill(9, $self->{_openssl_pid}); waitpid($self->{_openssl_pid}, 0); } delete($self->{_openssl_pid}); delete($self->{_openssl_in}); delete($self->{_openssl_out}); } sub DESTROY { my ($self) = @_; $self->_kill_openssl_child(); } sub _openssl_input { my ($self, $fh, $s_r, $peer) = @_; if ($self->{_openssl_done}) { $$s_r = ''; return; } $self->{_openssl_buf} .= $$s_r; $$s_r = ''; if ($self->{_openssl_buf} =~ /Server certificate\n(-----BEGIN CERTIFICATE-----\n.*?\n-----END CERTIFICATE-----\n).*SRTP Extension negotiated, profile=(\S+).*Keying material: ([0-9a-fA-F]{120})/s) { $self->{_peer_cert} = $1; $self->{_profile} = $2; $self->{_keys} = pack('H*', $3); $self->{_connected} = 1; $self->{_openssl_done} = 1; } if ($self->{_openssl_buf} =~ /\nDONE\n/s) { $self->{_openssl_done} = 1; } } sub _near_peer { my ($self, $peer) = @_; $self->{_near_peer} and return; $self->{_near_peer} = $peer; CORE::connect($self->{_near}, $self->{_near_peer}); } sub _near_input { my ($self, $fh, $s_r, $peer) = @_; my $func = $self->{_output_func}; if (ref($func) eq 'CODE') { $func->($self->{_tag}, $$s_r); } else { # object $func->dtls_send($self->{_tag}, $$s_r); } $self->_near_peer($peer); $$s_r = ''; } sub input { my ($self, $fh, $s_r, $peer) = @_; $$s_r eq '' and return; if ($fh == $self->{_openssl_out}) { # openssl's stdout return $self->_openssl_input($fh, $s_r, $peer); } elsif ($fh == $self->{_near}) { # UDP input from openssl - forward to peer return $self->_near_input($fh, $s_r, $peer); } # UDP input from peer - demux and forward to openssl is_dtls($$s_r) or return; $self->{_near_peer} or return; # nowhere to forward it to grep {$fh == $_} @{$self->{_local_sockets}} or return; # not one of ours send($self->{_near}, $$s_r, 0); $$s_r = ''; } sub peer_cert { my ($self) = @_; $self->{_peer_cert_file} and return $self->{_peer_cert_file}; $self->{_peer_cert} or return; my $cert_file = File::Temp->new(); print $cert_file $self->{_peer_cert}; close($cert_file); return ($self->{_peer_cert_file} = $cert_file); } sub cert_fingerprint { my ($cert_file) = @_; my $fd; open($fd, '-|', qw(openssl x509 -in), $cert_file->filename(), qw(-fingerprint -noout)); my $fp = <$fd>; close($fd); $fp =~ /SHA1 Fingerprint=([0-9a-f:]+)/i or return; return $1; } sub fingerprint { my ($self) = @_; return cert_fingerprint($self->{_cert_key_file}); } sub get_keys { my ($self) = @_; $self->{_keys} =~ /^(.{16})(.{16})(.{14})(.{14})$/s or return; return ($self->{_profile}, $1, $2, $3, $4); } sub is_dtls { my ($s) = @_; length($s) < 1 and return 0; my $c = ord(substr($s, 0, 1)); $c < 20 and return 0; $c > 63 and return 0; return 1; } sub encode { my ($self) = @_; my @ret; push(@ret, 'a=setup:actpass'); push(@ret, 'a=fingerprint:sha-1 ' . $self->fingerprint()); return @ret; } package NGCP::Rtpclient::DTLS::Group; sub new { my ($class, $mux, $output_func, $socket_components, $cert) = @_; my $self = []; bless $self, $class; my $max_component = $#{$socket_components}; for my $idx (0 .. $max_component) { my $local_sockets = $socket_components->[$idx]; my $cl = NGCP::Rtpclient::DTLS->new($mux, $local_sockets, $output_func, $idx, $cert); push(@$self, $cl); $cert = $cl->get_cert(); } return $self; } sub encode { my ($self, @rest) = @_; return $self->[0]->encode(@rest); } sub connect { ## no critic: Subroutines::ProhibitBuiltinHomonyms my ($self, @rest) = @_; for my $cl (@$self) { $cl->accept(@rest); } } sub accept { ## no critic: Subroutines::ProhibitBuiltinHomonyms my ($self, @rest) = @_; for my $cl (@$self) { $cl->accept(@rest); } } sub input { my ($self, @rest) = @_; for my $cl (@$self) { $cl->input(@rest); } } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/ICE.pm000066400000000000000000000622241474347554000207720ustar00rootroot00000000000000package NGCP::Rtpclient::ICE; use strict; use warnings; use Socket; use Socket6; use IO::Socket; use IO::Multiplex; use Math::BigInt; use Digest::HMAC_SHA1 qw(hmac_sha1); use Digest::CRC qw(crc32); use Time::HiRes qw(time); my @ice_chars = ('A' .. 'Z', 'a' .. 'z', '0' .. '9'); my %type_preferences = ( host => 126, srflx => 100, prflx => 110, relay => 0, ); my %protocols = ( 17 => 'UDP' ); sub random_string { my ($len) = @_; return join('', (map {$ice_chars[rand(@ice_chars)]} (1 .. $len))); } sub new { my ($class, $components, $controlling) = @_; my $self = {}; bless $self, $class; $self->{my_ufrag} = random_string(8); $self->{my_pwd} = random_string(26); $self->{controlling} = $controlling; $self->{components} = $components; $self->{tie_breaker} = i64from32(rand(2**32), rand(2**32)); $self->{candidates} = {}; # foundation -> candidate $self->{remote_candidates} = {}; # foundation -> candidate $self->{candidate_pairs} = {}; # foundation pairs -> pair $self->{remote_peers} = {}; # peer_hash_key -> component $self->{changed_foundations} = {}; # old -> new $self->{triggered_checks} = []; $self->{last_timer} = 0; $self->{start_nominating} = 0; $self->{completed} = 0; $self->{keepalives} = 0; $self->debug("created, control" . ($controlling ? "ing" : "ed") . ", tie breaker " . $self->{tie_breaker}->bstr() . "\n"); return $self; } sub i64from32 { my ($hi, $lo) = @_; my $i = Math::BigInt->new(int($hi)); $i->blsft(32); $i->badd(int($lo)); return $i; } sub calc_priority { my ($type, $local_pref, $component) = @_; defined($type_preferences{$type}) or die; return (2 ** 24) * $type_preferences{$type} + (2 ** 8) * $local_pref + (256 - $component); } sub add_candidate { my ($self, $local_pref, $type, @components) = @_; # highest local pref = 65535, lowest = 0 @components == $self->{components} or die; defined($type_preferences{$type}) or die; my $foundation = random_string(16); my $cands = $self->{candidates}; $cands->{$foundation} and die; my $comps = []; my $comp_id = 1; for my $c (@components) { my $comp = bless { socket => $c, component => $comp_id, priority => calc_priority($type, $local_pref, $comp_id), foundation => $foundation, protocol => 'UDP', af => $c->sockdomain(), address => $c->sockhost(), port => $c->sockport(), agent => $self }, 'NGCP::Rtpclient::ICE::Component'; push(@$comps, $comp); $comp->debug("is $comp->{address}/$comp->{port}\n"); $comp_id++; } $cands->{$foundation} = bless { foundation => $foundation, preference => $local_pref, base_priority => calc_priority($type, $local_pref, 0), type => $type, components => $comps, protocol => 'UDP', af => $comps->[0]->{af}, address => $comps->[0]->{address}, agent => $self }, 'NGCP::Rtpclient::ICE::Candidate'; $self->pair_candidates(); } sub encode { my ($self) = @_; my @ret; push(@ret, "a=ice-ufrag:$self->{my_ufrag}"); push(@ret, "a=ice-pwd:$self->{my_pwd}"); for my $cand (values(%{$self->{candidates}})) { for my $comp (@{$cand->{components}}) { my $prot = $comp->{socket}->protocol(); my $sa = $comp->{socket}->sockhost(); my $sp = $comp->{socket}->sockport(); push(@ret, "a=candidate:$cand->{foundation} $comp->{component} $protocols{$prot} $comp->{priority} $sa $sp typ $cand->{type}"); } } return @ret; } sub remote_foundation_change { my ($self, $old, $new, $type) = @_; if ($self->{changed_foundations}->{$old}) { $self->{changed_foundations}->{$old} eq $new or die; return; } $self->debug("changing remote candidate foundation from $old to $new\n"); my $old_cand = $self->{remote_candidates}->{$old} or die; $old_cand->{type} = $type; $old_cand->{foundation} = $new; for my $comp (@{$old_cand->{components}}) { $comp->{foundation} = $new; } for my $foundation_pair (keys(%{$self->{candidate_pairs}})) { my $pair = $self->{candidate_pairs}->{$foundation_pair}; $pair->{remote} == $old_cand or next; my $new_foundation = $pair->{local}->{foundation} . $new; delete($self->{candidate_pairs}->{$foundation_pair}); $self->{candidate_pairs}->{$new_foundation} = $pair; $pair->{foundation} = $new_foundation; for my $comp (@{$pair->{components}}) { $comp->{foundation} = $new_foundation; } } $self->{remote_candidates}->{$new} = $old_cand; delete($self->{remote_candidates}->{$old}); $self->{changed_foundations}->{$old} = $new; } sub new_remote_candidate { my ($self, $cand_str) = @_; $self->_new_remote_candidates_start(); my $ret = $self->_new_remote_candidate($cand_str); $self->_got_new_candidates(); return $ret; } sub _new_remote_candidates_start { my ($self) = @_; $self->{new_candidates} = {}; } sub _new_remote_candidate { my ($self, $c) = @_; $self->debug("adding remote candidate $c\n"); my ($foundation, $component, $protocol, $priority, $address, $port, $type) = $c =~ /^(\w+) (\d) (\w+) (\d+) ([0-9a-fA-F:.]+) (\d+) typ (\w+)/ or die $c; $protocol = uc($protocol); my $phk = "$protocol/$address/$port"; if (my $old = $self->{remote_peers}->{$phk}) { # must be a previously learned prflx candidate $old = $old->{candidate}; $old->{type} eq 'prflx' or die; # replace the learned prflx candidate with the new one $self->remote_foundation_change($old->{foundation}, $foundation, $type); return; } my $f = ($self->{new_candidates}->{$foundation} // ( $self->{new_candidates}->{$foundation} = { foundation => $foundation, type => $type, protocol => $protocol, components => [], })); $f->{type} eq $type or die; $f->{protocol} eq $protocol or die; $f->{components}->[$component - 1] and die; my $comp = $f->{components}->[$component - 1] = { candidate => $f, foundation => $foundation, component => $component, priority => $priority, address => $address, port => $port, peer_hash_key => $phk, }; if ($address =~ /^\d+\.\d+\.\d+\.\d+$/) { $f->{af} = $comp->{af} = &AF_INET; $comp->{packed_peer} = pack_sockaddr_in($port, inet_pton(&AF_INET, $address)); } elsif ($address =~ /^[0-9a-fA-F:]+$/) { $f->{af} = $comp->{af} = &AF_INET6; $comp->{packed_peer} = pack_sockaddr_in6($port, inet_pton(&AF_INET6, $address)); } else { die; } $self->{remote_peers}->{$phk} = $comp; return $comp; } sub _got_new_candidates { my ($self) = @_; # validate received info and eliminate duplicates my $r_cand = $self->{remote_candidates}; my $r_peers = $self->{remote_peers}; for my $c (values(%{$self->{new_candidates}})) { # @{$c->{components}} == $self->{components} or die; if (my $exist = $r_cand->{$c->{foundation}}) { # duplicate. OK if this is a learned prflx if ($exist->{type} eq 'prflx' && $c->{type} eq 'prflx') { # merge components for my $idx (0 .. $#{$c->{components}}) { defined($c->{components}->[$idx]) or next; defined($exist->{components}->[$idx]) and die; $exist->{components}->[$idx] = $c->{components}->[$idx]; } next; } warn; next; } $r_cand->{$c->{foundation}} = $c; } delete($self->{new_candidates}); $self->pair_candidates(); }; sub decode { my ($self, $h) = @_; # $h is output of SDP::Media->decode_ice() $self->{other_ufrag} = $h->{ufrag} or die; $self->{other_pwd} = $h->{pwd} or die; my $cands = $h->{candidates} or die; $self->_new_remote_candidates_start(); for my $c (@$cands) { $self->_new_remote_candidate($c); } $self->_got_new_candidates(); } sub pair_candidates { my ($self) = @_; my $pairs = $self->{candidate_pairs}; for my $rem (values(%{$self->{remote_candidates}})) { for my $loc (values(%{$self->{candidates}})) { $loc->{protocol} eq $rem->{protocol} or next; $loc->{af} == $rem->{af} or next; @{$loc->{components}} == $self->{components} or die; my $foundation = $loc->{foundation} . $rem->{foundation}; my $pair = $pairs->{$foundation} || ($pairs->{$foundation} = bless { foundation => $foundation, local => $loc, remote => $rem, components => [], agent => $self}, 'NGCP::Rtpclient::ICE::Candidate::Pair' ); my $comps = $pair->{components}; for my $idx (0 .. ($self->{components} - 1)) { defined($loc->{components}->[$idx]) or next; defined($rem->{components}->[$idx]) or next; my $c = $comps->[$idx] || ($comps->[$idx] = bless { foundation => $foundation, local => $loc->{components}->[$idx], remote => $rem->{components}->[$idx], agent => $self}, 'NGCP::Rtpclient::ICE::Component::Pair'); $c->{state} = $c->{state} || ($idx == 0 ? 'waiting' : 'frozen'); } } } } sub get_pair { my ($self, $local, $remote, $component) = @_; my $found = "$local$remote"; my $pair = $self->{candidate_pairs}->{$found} or return; $component or return $pair; return $pair->{components}->[$component - 1]; } sub is_ice { my ($s) = @_; length($s) < 20 and return 0; my $c = ord(substr($s, 0, 1)); ($c & 0xb0) != 0 and return 0; $c = ord(substr($s, 3, 1)); ($c & 0x03) != 0 and return 0; $c = substr($s, 4, 4); $c ne "\x21\x12\xA4\x42" and return 0; return 1; } sub input { my ($self, $fh, $s_r, $peer) = @_; $$s_r eq '' and return; is_ice($$s_r) or return; for my $cands (values(%{$self->{candidates}})) { for my $comp (@{$cands->{components}}) { $fh == $comp->{socket} or next; $self->do_input($comp, $$s_r, $peer); $$s_r = ''; return; } } } my %attr_handlers = ( 0x0006 => \&stun_handler_USERNAME, 0x0008 => \&stun_handler_MESSAGE_INTEGRITY, 0x0009 => \&stun_handler_ERROR_CODE, 0x000a => \&stun_handler_UNKNOWN_ATTRIBUTES, 0x0020 => \&stun_handler_XOR_MAPPED_ADDRESS, 0x0024 => \&stun_handler_PRIORITY, 0x0025 => \&stun_handler_USE_CANDIDATE, 0x8022 => \&stun_handler_SOFTWARE, 0x8028 => \&stun_handler_FINGERPRINT, 0x8029 => \&stun_handler_ICE_CONTROLLED, 0x802a => \&stun_handler_ICE_CONTROLLING, ); my %type_handlers = ( 1 => \&stun_handler_binding_request, 17 => \&stun_handler_binding_indication, 257 => \&stun_handler_binding_success, 273 => \&stun_handler_binding_error, ); sub do_input { my ($self, $comp, $s, $peer) = @_; my $hdr = substr($s, 0, 20, ''); my ($mtype, $mlen, $cookie, $tid) = unpack('nnNa12', $hdr); $cookie == 0x2112A442 or return; my (@stack, %hash); while (my ($type, $len) = unpack('nn', $s)) { my $padding = 4 - ($len % 4); $padding == 4 and $padding = 0; my $raw = substr($s, 0, 4 + $len + $padding); substr($s, 0, 4) = ''; my $data = substr($s, 0, $len, ''); substr($s, 0, $padding) = ''; my $handler = $attr_handlers{$type}; if (!$handler) { warn("unknown STUN attribute $type data $data"); next; } my $parsed = $handler->($data, $tid) or die; $parsed->{raw} = $raw; push(@stack, $parsed); $hash{$parsed->{name}} = $parsed; } $stack[$#stack]->{name} eq 'fingerprint' or die; $stack[$#stack - 1]->{name} eq 'integrity' or die; my $pwd_check = $mtype == 1 ? $self->{my_pwd} : $self->{other_pwd}; # XXX unify these with sub integrity/fingerprint ? my $int_check = join('', (map {$_->{raw}} @stack[0 .. ($#stack - 2)])); $int_check = pack('nnNa12', $mtype, length($int_check) + 24, $cookie, $tid) . $int_check; my $digest = hmac_sha1($int_check, $pwd_check); $digest eq $hash{integrity}->{digest} or die; my $fp_check = join('', (map {$_->{raw}} @stack[0 .. ($#stack - 1)])); $fp_check = pack('nnNa12', $mtype, length($fp_check) + 8, $cookie, $tid) . $fp_check; my $crc = crc32($fp_check); ($crc ^ 0x5354554e) == $hash{fingerprint}->{crc} or die; # decode peer address my $domain = $comp->{af}; my (@peer, $address); if ($domain == &AF_INET) { @peer = unpack_sockaddr_in($peer); } elsif ($domain == &AF_INET6) { @peer = unpack_sockaddr_in6($peer); } else { die; } $address = inet_ntop($domain, $peer[1]); # process it my $handler = $type_handlers{$mtype} or die; my $response = $handler->($self, $comp, \@stack, \%hash, $tid, $peer, $peer[1], $address, $peer[0]); if ($response) { # construct and send response packet integrity($response->{attrs}, $response->{mtype}, $tid, $self->{my_pwd}); fingerprint($response->{attrs}, $response->{mtype}, $tid); # XXX unify my $packet = join('', @{$response->{attrs}}); $packet = pack('nnNa12', $response->{mtype}, length($packet), 0x2112A442, $tid) . $packet; $comp->{socket}->send($packet, 0, $peer); } } sub stun_reply { my ($self, $attrs, $mtype) = @_; unshift(@$attrs, attr(0x8022, 'perl:ICE.pm')); my $response = { mtype => $mtype, attrs => $attrs }; } sub stun_success { my ($self, $attrs) = @_; return $self->stun_reply($attrs, 257); } sub stun_error { my ($self, $code, $msg) = @_; return $self->stun_reply([ attr(0x0009, pack('Na*', ((($code / 100) << 8) | ($code % 100)), $msg)) ], 273); } sub debug { my ($self, @rest) = @_; print("ICE agent", ' ', $self->{my_ufrag}, ' - ', @rest); } sub dummy_foundation { my ($protocol, $address) = @_; return $protocol . unpack('H*', $address); } sub stun_handler_binding_request { my ($self, $comp, $stack, $hash, $tid, $packed_peer, $packed_host, $address, $port) = @_; $hash->{username}->{my_ufrag} eq $self->{my_ufrag} or die; # check role if ($self->{controlling} && $hash->{controlling}) { if ($self->{tie_breaker}->bcmp($hash->{controlling}->{tie_breaker}) >= 0) { $self->debug("returning 487 role conflict\n"); return $self->stun_error(487, "Role conflict"); } $self->debug("role conflict, switching to controlled\n"); $self->{controlling} = 0; } elsif (!$self->{controlling} && $hash->{controlled}) { if ($self->{tie_breaker}->bcmp($hash->{controlled}->{tie_breaker}) < 0) { $self->debug("returning 487 role conflict\n"); return $self->stun_error(487, "Role conflict"); } $self->debug("role conflict, switching to controlling\n"); $self->{controlling} = 1; } $self->debug("binding request from $address/$port\n"); # check if peer is known - learn prflx candidates my $cand = $self->{remote_peers}->{"UDP/$address/$port"}; if (!$cand) { $cand = $self->new_remote_candidate(dummy_foundation('UDP', $packed_host) . " $comp->{component} UDP " . "$hash->{priority}->{priority} $address $port typ prflx"); # this also pairs up the new candidate, which goes against 7.2.1.3 } # get candidate pair and trigger check my $pair = $self->get_pair($comp->{foundation}, $cand->{foundation}, $comp->{component}); $pair or die; $pair->trigger_check(); # set and check nominations if ($hash->{use}) { $pair->{nominated} = 1; $self->debug("$pair->{foundation} - got nominated\n"); $self->check_nominations(); } # construct response my $attrs = []; if ($comp->{af} == &AF_INET) { push(@$attrs, attr(0x0020, pack('nna4', 1, $port ^ 0x2112, $packed_host ^ "\x21\x12\xa4\x42"))); } elsif ($comp->{af} == &AF_INET6) { push(@$attrs, attr(0x0020, pack('nna16', 2, $port ^ 0x2112, $packed_host ^ ("\x21\x12\xa4\x42" . $tid)))); } return $self->stun_success($attrs); } sub check_nominations { my ($self) = @_; $self->{controlling} and return; my @nominated; for my $pair (values(%{$self->{candidate_pairs}})) { my @comps = @{$pair->{components}}; my @nominated_comps = grep {$_->{nominated}} @comps; @nominated_comps < $self->{components} and next; $self->debug("got fully nominated pair $pair->{foundation}\n"); push(@nominated, $pair); } if (!@nominated) { $self->debug("no fully nominated pairs yet\n"); return; } @nominated = sort_pairs(\@nominated); my $pair = $nominated[0]; $self->debug("highest priority nominated pair is $pair->{foundation}\n"); $self->{nominated_pair} = $pair; $self->{completed} ||= time(); } sub stun_handler_binding_success { my ($self, $comp, $stack, $hash, $tid, $packed_peer, $packed_host, $address, $port) = @_; $self->debug("binding success from $address/$port\n"); # check xor address $comp->{address} eq $hash->{address}->{address} or die("$comp->{address} $hash->{address}->{address}"); $comp->{port} == $hash->{address}->{port} or die; # we must have remote candidate and a pair my $cand = $self->{remote_peers}->{"UDP/$address/$port"}; $cand or die; my $pair = $self->get_pair($comp->{foundation}, $cand->{foundation}, $comp->{component}); $pair or die; $tid eq $pair->{transaction} or die; $self->debug("$pair->{foundation} succeeded\n"); $pair->{state} = 'succeeded'; # unfreeze other components my $parent_pair = $self->{candidate_pairs}->{$pair->{foundation}}; my $components = $parent_pair->{components}; my @frozen_pairs = grep {$_->{state} eq 'frozen'} @$components; for my $p (@frozen_pairs) { $self->debug("unfreezing $p->{local}->{port}\n"); $p->{state} = 'waiting'; } $self->check_to_nominate(); return; } sub check_to_nominate { my ($self) = @_; return unless $self->{controlling}; return if $self->{start_nominating} && time() < $self->{start_nominating}; return if $self->{nominate}; return if @{$self->{triggered_checks}}; my @succeeded; for my $pair (values(%{$self->{candidate_pairs}})) { my @comps = @{$pair->{components}}; my @succeeded_comps = grep {$_->{state} eq 'succeeded'} @comps; next if @succeeded_comps < $self->{components}; $self->debug("got fully succeeded pair $pair->{foundation}\n"); push(@succeeded, $pair); } if (!@succeeded) { $self->debug("no fully succeeded pairs yet\n"); return; } @succeeded = sort_pairs(\@succeeded); my $pair = $succeeded[0]; $self->debug("highest priority succeeded pair is $pair->{foundation}\n"); if (!$self->{start_nominating}) { $self->{start_nominating} = time() + 0.1; return; } $pair->{nominate} and return; $self->{nominate} = 1; $pair->{nominate} = 1; $self->{start_nominating} = 0; $self->{nominated_pair} = $pair; $self->{completed} ||= time(); $pair->debug("nominating\n"); $pair->nominate(); } sub integrity { my ($attrs, $mtype, $tid, $pwd) = @_; my $int_check = join('', @$attrs); $int_check = pack('nnNa12', $mtype, length($int_check) + 24, 0x2112A442, $tid) . $int_check; my $digest = hmac_sha1($int_check, $pwd); push(@$attrs, attr(0x0008, $digest)); } sub fingerprint { my ($attrs, $mtype, $tid) = @_; my $fp_check = join('', @$attrs); $fp_check = pack('nnNa12', $mtype, length($fp_check) + 8, 0x2112A442, $tid) . $fp_check; my $crc = crc32($fp_check); push(@$attrs, attr(0x8028, pack('N', ($crc ^ 0x5354554e)))); } sub attr { my ($id, $data) = @_; my $len = length($data); my $padding = 4 - ($len % 4); $padding == 4 and $padding = 0; return pack('nn a*a*', $id, $len, $data, "\0" x $padding); } sub stun_handler_SOFTWARE { my ($data, $out) = @_; return { name => 'software', data => $data }; } sub stun_handler_USE_CANDIDATE { my ($data, $out) = @_; return { name => 'use' }; } sub stun_handler_ICE_CONTROLLED { my ($data) = @_; my $out = { name => 'controlled' }; $out->{controlled} = 1; ($out->{tie_breaker_hi}, $out->{tie_breaker_lo}) = unpack('NN', $data); $out->{tie_breaker} = i64from32($out->{tie_breaker_hi}, $out->{tie_breaker_lo}); return $out; } sub stun_handler_ICE_CONTROLLING { my ($data) = @_; my $out = { name => 'controlling' }; $out->{controlling} = 1; ($out->{tie_breaker_hi}, $out->{tie_breaker_lo}) = unpack('NN', $data); $out->{tie_breaker} = i64from32($out->{tie_breaker_hi}, $out->{tie_breaker_lo}); return $out; } sub stun_handler_USERNAME { my ($data) = @_; my $out = { name => 'username' }; $data =~ /^(.*):(.*)$/ or die; $out->{my_ufrag} = $1; $out->{other_ufrag} = $2; return $out; } sub stun_handler_PRIORITY { my ($data) = @_; my $out = { name => 'priority' }; ($out->{priority}) = unpack('N', $data); return $out; } sub stun_handler_MESSAGE_INTEGRITY { my ($data) = @_; my $out = { name => 'integrity' }; $out->{digest} = $data; return $out; } sub stun_handler_FINGERPRINT { my ($data) = @_; my $out = { name => 'fingerprint' }; ($out->{crc}) = unpack('N', $data); return $out; } sub stun_handler_ERROR_CODE { my ($data) = @_; my $out = { name => 'error' }; my ($code, $msg) = unpack('Na*', $data); $out->{msg} = $msg; $out->{code} = (($code & 0x700) >> 8) * 100 + ($code & 0x0ff); return $out; } sub stun_handler_XOR_MAPPED_ADDRESS { my ($data, $tid) = @_; my $out = { name => 'address' }; if (length($data) == 8) { my ($fam, $port, $addr) = unpack('nna4', $data); $fam == 1 or die; $out->{af} = &AF_INET; $out->{port} = $port ^ 0x2112; $out->{address} = $addr ^ "\x21\x12\xa4\x42"; } elsif (length($data) == 20) { my ($fam, $port, $addr) = unpack('nna16', $data); $fam == 2 or die; $out->{af} = &AF_INET6; $out->{port} = $port ^ 0x2112; $out->{address} = $addr ^ ("\x21\x12\xa4\x42" . $tid); } else { die; } $out->{address} = inet_ntop($out->{af}, $out->{address}); return $out; } sub timer { my ($self) = @_; my $now = time(); $now - $self->{last_timer} < 0.02 and return; $self->{last_timer} = $now; # run checks # not enough info return if !defined($self->{other_ufrag}) || !defined($self->{other_pwd}); if (my $pair = shift(@{$self->{triggered_checks}})) { $pair->debug("running triggered check\n"); $pair->run_check(); return; } # get all component pairs, sort by their priority and run check for the highest waiting one my @candidate_pairs = values(%{$self->{candidate_pairs}}); my @component_pairs = map {@{$_->{components}}} @candidate_pairs; my @sorted_pairs = sort_pairs(\@component_pairs); my @waiting_pairs = grep {$_->{state} eq 'waiting'} @sorted_pairs; if (my $pair = shift(@waiting_pairs)) { $pair->debug("running scheduled check (waiting state)\n"); $pair->run_check(); return; } $self->check_to_nominate(); if ($self->{completed}) { $self->{keepalives} ||= time() + 2; if (time() >= $self->{keepalives}) { $self->keepalives(); $self->{keepalives} += 2; } } } sub keepalives { my ($self) = @_; $self->debug("sending keepalives"); my $pair = $self->{nominated_pair} or return; $pair->nominate(); } sub sort_pairs { my ($pair_list) = @_; my @sorted_list = sort { $a->priority() <=> $b->priority() } @{$pair_list}; return @sorted_list; } sub get_send_component { my ($self, $component) = @_; my $pair = $self->{nominated_pair}; if (!$pair) { my @pairs = values(%{$self->{candidate_pairs}}); @pairs = sort_pairs(\@pairs); $pair = $pairs[0]; } return ($pair->{components}->[$component]->{local}->{socket}, $pair->{components}->[$component]->{remote}->{packed_peer}); } package NGCP::Rtpclient::ICE::Candidate; sub debug { my ($self, @rest) = @_; $self->{agent}->debug("candidate", $self->{foundation}, ' - ', @rest); } package NGCP::Rtpclient::ICE::Component; sub debug { my ($self, @rest) = @_; $self->{agent}->debug("component $self->{foundation}/$self->{component}", ' - ', @rest); } package NGCP::Rtpclient::ICE::Candidate::Pair; sub priority { my ($self) = @_; my $firstcomp = $self->{components}->[0]; return $firstcomp->priority(); } sub debug { my ($self, @rest) = @_; $self->{agent}->debug("candidate pair $self->{foundation}", ' - ', @rest); } sub nominate { my ($self) = @_; for my $comp (@{$self->{components}}) { $comp->cancel_check(); $comp->{nominate} = 1; $comp->trigger_check(); } } package NGCP::Rtpclient::ICE::Component::Pair; sub debug { my ($self, @rest) = @_; $self->{agent}->debug("component pair $self->{foundation}", ' - ', @rest); } sub priority { my ($self) = @_; my $agent = $self->{agent}; my $gk = $agent->{controlling} ? 'local' : 'remote'; my $dk = $agent->{controlling} ? 'remote' : 'local'; my $gc = $self->{$gk}; my $dc = $self->{$dk}; my $g = $gc->{priority}; my $d = $dc->{priority}; return (($g < $d ? $g : $d) << 32) + (($g > $d ? $g : $d) * 2) + ($g > $d ? 1 : 0); } sub trigger_check { my ($self) = @_; $self->debug("trigger check\n"); if ($self->{state} eq 'succeeded') { $self->debug("already succeeded\n"); return; } if ($self->{state} eq 'in progress') { $self->cancel_check(); } push(@{$self->{agent}->{triggered_checks}}, $self); } sub run_check { my ($self) = @_; $self->{state} eq 'in progress' and return; $self->debug("running check\n"); $self->{state} = 'in progress'; $self->{transaction} = NGCP::Rtpclient::ICE::random_string(12); $self->send_check(); # XXX handle retransmits } sub cancel_check { my ($self) = @_; $self->{transaction} or return; $self->debug("canceling existing check $self->{transaction}\n"); $self->{previous_transactions}->{$self->{transaction}} = 1; delete $self->{transaction}; $self->{state} = 'waiting'; } sub send_check { my ($self) = @_; $self->debug("sending check $self->{transaction}\n"); $self->{last_transmit} = time(); my $local_comp = $self->{local}; my $remote_comp = $self->{remote}; my $local_cand = $self->{agent}->{candidates}->{$local_comp->{foundation}}; my $attrs = []; unshift(@$attrs, NGCP::Rtpclient::ICE::attr(0x8022, 'perl:ICE.pm')); my $hexbrk = $self->{agent}->{tie_breaker}->as_hex(); $hexbrk =~ s/^0x// or die; $hexbrk = ('0' x (16 - length($hexbrk))) . $hexbrk; unshift(@$attrs, NGCP::Rtpclient::ICE::attr($self->{agent}->{controlling} ? 0x802a : 0x8029, pack('H*', $hexbrk))); unshift(@$attrs, NGCP::Rtpclient::ICE::attr(0x0024, pack('N', NGCP::Rtpclient::ICE::calc_priority('prflx', $local_cand->{preference}, $local_comp->{component})))); unshift(@$attrs, NGCP::Rtpclient::ICE::attr(0x0006, "$self->{agent}->{other_ufrag}:$self->{agent}->{my_ufrag}")); $self->{nominate} and unshift(@$attrs, NGCP::Rtpclient::ICE::attr(0x0025, '')); integrity($attrs, 1, $self->{transaction}, $self->{agent}->{other_pwd}); fingerprint($attrs, 1, $self->{transaction}); my $packet = join('', @$attrs); $packet = pack('nnNa12', 1, length($packet), 0x2112A442, $self->{transaction}) . $packet; $local_comp->{socket}->send($packet, 0, $remote_comp->{packed_peer}); } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/RTCP.pm000066400000000000000000000047661474347554000211510ustar00rootroot00000000000000package NGCP::Rtpclient::RTCP; use strict; use warnings; use Time::HiRes qw(time); use Math::BigFloat; sub new { my ($class, $cb_obj, $rtp_obj) = @_; $rtp_obj or return; my $self = {}; bless $self, $class; $self->{cb_obj} = $cb_obj; $self->{rtp_obj} = $rtp_obj; $self->{interval} = 2; # seconds $self->{next_send} = time() + $self->{interval}; return $self; } sub timer { my ($self) = @_; time() < $self->{next_send} and return; my $pack = $self->_sr(); $self->{cb_obj}->rtcp_send($pack); $self->{next_send} = $self->{next_send} + $self->{interval}; } sub input { my ($self, $packet) = @_; my ($vprc, $pt, $len, $rest) = unpack('CCn a*', $packet); ($vprc & 0xe0) == 0x80 or die; my $rc = ($vprc & 0x1f); $rc > 1 and die; $len++; $len <<= 2; $len == length($packet) or die; if ($pt == 200) { my ($ssrc, @sr) = unpack('NNNNNN', $rest); $self->{last_sr}->{$ssrc} = { received_time => time(), packet => \@sr }; } } sub _sr { my ($self) = @_; # receiver reports my $rrs = ''; my $num_rrs = 0; my $others = $self->{rtp_obj}->{other_ssrcs}; my @other_ssrcs = keys(%$others); scalar(@other_ssrcs) <= 1 or die; if (my $oss = $other_ssrcs[0]) { my $ss = $others->{$oss}; my ($lsr, $dlsr) = (0,0); my $last_sr = $self->{last_sr}->{$ss->{ssrc}}; if ($last_sr) { # ntp timestamp fraction $lsr = ($last_sr->{packet}->[0] << 16) | ($last_sr->{packet}->[1] >> 16); $dlsr = (time() - $last_sr->{received_time}) * 65536; } # packets lost number my $lost = $ss->{packets_lost} & 0x7ff; my $lost_frac = $ss->{lost_last} / ($ss->{received_last} + $ss->{lost_last}); $lost_frac *= 256; $lost_frac = int($lost_frac); $lost_frac < 0 and $lost_frac = 0; $lost_frac > 255 and $lost_frac = 255; $lost = $lost | ($lost_frac << 24); $rrs .= pack('NNNNNN', $ss->{ssrc}, $lost, $ss->{seq}, $ss->{jitter}, $lsr, $dlsr); $num_rrs++; $ss->{received_last} = 0; $ss->{lost_last} = 0; } # actual sr my $now = Math::BigFloat->new(time()); $now->badd(2208988800); my @parts = $now->dparts(); my $ints = $parts[0]; my $frac = $parts[1]; $frac->bmul(Math::BigFloat->new('0x100000000')); my $pl = pack("NNNNN", $ints, $frac, $self->{rtp_obj}->{timestamp}->bstr(), $self->{rtp_obj}->{packet_count}, $self->{rtp_obj}->{octet_count}); $pl .= $rrs; my $pack = $self->_header(200, $num_rrs, length($pl)) . $pl; return $pack; } sub _header { my ($self, $type, $rc, $length) = @_; return pack("CCnN", 0x80 | $rc, $type, (($length + 8) >> 2) - 1, $self->{rtp_obj}->{ssrc}); } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/RTP.pm000066400000000000000000000102071474347554000210310ustar00rootroot00000000000000package NGCP::Rtpclient::RTP; use strict; use warnings; use Time::HiRes qw(time); use Math::BigInt; use Math::BigFloat; sub new { my ($class, $cb_obj, %args) = @_; my $self = {}; bless $self, $class; $self->{cb_obj} = $cb_obj; $self->{ssrc} = int(rand(2**32)); $self->{next_send} = time(); $self->{ptime} = 20; $self->{clockrate} = 8000; $self->{timestamp} = Math::BigInt->new(int(rand(2**32))); $self->{seq} = rand(2**16); $self->{payload} = $args{send_codec}{frame_len} // 100; $self->{packet_count} = 0; $self->{octet_count} = 0; $self->{other_ssrcs} = {}; $self->{args} = \%args; $self->{send_codec} = $args{send_codec} // { payload_type => 0 }; return $self; } sub timer { my ($self) = @_; time() < $self->{next_send} and return; my $hdr = pack("CCnNN", 0x80, $self->{send_codec}{payload_type}, $self->{seq}, $self->{timestamp}->bstr(), $self->{ssrc}); my $payload = chr(rand(256)) x $self->{payload}; # XXX adapt to codec my $lost = 0; if (($self->{args}->{packetloss} // 0) > 0) { my $r = rand(100); ($r < $self->{args}->{packetloss}) and $lost = 1; } $lost or $self->{cb_obj}->rtp_send($hdr . $payload); $self->{seq}++; $self->{seq} > 0xffff and $self->{seq} -= 0x10000; $self->{next_send} = $self->{next_send} + $self->{ptime} / 1000; $self->{timestamp} += $self->{clockrate} / (1.0 / ($self->{ptime} / 1000)); # XXX might be fractional $self->{timestamp} > 0xffffffff and $self->{timestamp} -= Math::BigInt->new('0x100000000'); $self->{packet_count}++; $self->{octet_count} += length($payload); } sub input { my ($self, $packet) = @_; my $now = time(); my ($vpxcc, $pt, $seq, $ts, $ssrc, $payload) = unpack("CCnNN a*", $packet); $vpxcc == 0x80 or die; #$pt == 0 or die; my $remote = ($self->{other_ssrcs}->{$ssrc} //= { ssrc => $ssrc, packets_received => 0, packets_lost => 0, octets_received => 0, roc => 0, seq => $seq, # highest seen jitter => 0, queue_seq => $seq, # next expected seq -- to detect lost packets queue => {}, lost_last => 0, # since last SR/RR received_last => 0, # since last SR/RR dupes => 0, }); $remote->{packets_received}++; $remote->{received_last}++; $remote->{octets_received} += length($payload); # normalize seq using roc my $extseq = ($remote->{roc} << 16) | $seq; my $diff = $extseq - $remote->{seq}; if ($diff < -0x8000) { $extseq += 0x10000; } elsif ($diff >= 0x8000) { $extseq -= 0x10000; } # update seq/roc if necessary -- highest seq seen if ($extseq > $remote->{seq}) { $remote->{seq} = $extseq; $remote->{roc} = $extseq >> 16; } # check dupes and packet loss if ($extseq == $remote->{queue_seq}) { # in sequence and expected $remote->{queue_seq}++; # see if we can pull packets out of the queue while (exists($remote->{queue}->{$remote->{queue_seq}})) { delete($remote->{queue}->{$remote->{queue_seq}}); $remote->{queue_seq}++; } } elsif ($extseq < $remote->{queue_seq}) { $remote->{dupes}++; } else { # ahead of sequence -- queue it up if not a dupe if (exists($remote->{queue}->{$extseq})) { $remote->{dupes}++; } else { $remote->{queue}->{$extseq} = $packet; # see if our "jitter buffer" is full and account for packet loss my @seqs = keys(%{$remote->{queue}}); if (@seqs >= 20) { @seqs = sort {$a <=> $b} (@seqs); # seek up to the lowest seq in buffer and count each missing # seq as a lost packet my $min = $seqs[0]; $remote->{lost_last} += $min - $remote->{queue_seq}; $remote->{packets_lost} += $min - $remote->{queue_seq}; # now unqueue what we have as much as we can $remote->{queue_seq} = $min; while (my $qseq = shift(@seqs)) { $qseq != $remote->{queue_seq} and last; delete($remote->{queue}->{$qseq}); $remote->{queue_seq}++; } } } } # calc jitter if ($remote->{last_ts} && $remote->{last_seq}) { my $lt = Math::BigFloat->new($remote->{last_ts}); $lt->bsub(Math::BigFloat->new($now)); $lt->bmul($self->{clockrate}); my $diff = $lt->bstr() - ($remote->{last_seq} - $extseq); $remote->{jitter} = $remote->{jitter} + (abs($diff) - $remote->{jitter}) / 16; } $remote->{last_ts} = $now; $remote->{last_seq} = $extseq; } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/SDES.pm000066400000000000000000000046621474347554000211320ustar00rootroot00000000000000package NGCP::Rtpclient::SDES; use strict; use warnings; use NGCP::Rtpclient::SRTP; use MIME::Base64; sub new { my ($class, %args) = @_; my $self = {}; bless $self, $class; # our list of crypto suites if (!$args{suites} || !@{$args{suites}}) { $self->{suites} = [@NGCP::Rtpclient::SRTP::crypto_suites]; } else { $self->{suites} = []; for my $s (@{$args{suites}}) { my $o = $NGCP::Rtpclient::SRTP::crypto_suites{$s}; $o or die; push(@{$self->{suites}}, $o); } } # duplicate content and generate random keys my $id = 1; for my $s (@{$self->{suites}}) { $s = {%$s}; $s->{id} = $id++; $s->{master_key} = join('', map {chr(rand(256))} (1 .. $s->{key_length})); $s->{master_salt} = join('', map {chr(rand(256))} (1 .. $s->{salt_length})); } return $self } sub encode { my ($self) = @_; my @ret; for my $s (@{$self->{suites}}) { push(@ret, "a=crypto:$s->{id} $s->{str} inline:" . encode_base64($s->{master_key} . $s->{master_salt}, '')); } return @ret; } sub decode { my ($self, $sdp_media) = @_; $self->{remote_suites} = []; my $suites = $sdp_media->get_attrs('crypto'); for my $line (@{$suites}) { my ($id, $s, $b64) = $line =~ /^(\S+) (\S+) inline:(\S+)$/ or next; $s = $NGCP::Rtpclient::SRTP::crypto_suites{$s}; $s or next; # crypto suite not supported by perl mod $s = {%$s}; $s->{id} = $id; ($s->{master_key}, $s->{master_salt}) = NGCP::Rtpclient::SRTP::decode_inline_base64($b64, $s); push(@{$self->{remote_suites}}, $s); } return; } # construct ->suites to match suites from ->remote_suites after an offer sub offered { my ($self) = @_; my @out; for my $r (@{$self->{remote_suites}}) { for my $s (@{$self->{suites}}) { if ($r->{str} eq $s->{str}) { my $dup = {%$s}; $dup->{remote} = $r; $dup->{id} = $r->{id}; push(@out, $dup); } } } @{$self->{suites}} = @out; $self->{suite} = $out[0]; return; } # prunes ->suites to contain only matching suites from ->remote_suites after an answer sub answered { my ($self) = @_; my @out; for my $s (@{$self->{suites}}) { for my $r (@{$self->{remote_suites}}) { if ($r->{id} eq $s->{id} && $r->{str} eq $s->{str}) { $s->{remote} = $r; push(@out, $s); } } } @{$self->{suites}} = @out; $self->{suite} = $out[0]; return; } # after an offer, trims the list of suites to just the one shared/supported one sub trim { my ($self) = @_; splice(@{$self->{suites}}, 1); splice(@{$self->{remote_suites}}, 1); } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/SDP.pm000066400000000000000000000170741474347554000210230ustar00rootroot00000000000000package NGCP::Rtpclient::SDP; use strict; use warnings; use IO::Socket; use Time::HiRes qw(gettimeofday); use Socket; use Socket6; sub new { my ($class, $origin, $connection) = @_; my $self = {}; bless $self, $class; $self->{version} = 1; $self->{medias} = []; $self->{origin} = $origin; $self->{connection} = $connection; return $self; } sub decode { my ($class, $body) = @_; my $self = {}; bless $self, $class; my $medias = $self->{medias} = []; my @lines = split(/\r\n/, $body); my ($media, $attr_store); for my $line (@lines) { $attr_store = $media ? $media : $self; if ($line =~ /^[ost]=/) { # ignore next; } if ($line =~ /^m=(\S+) (\d+) (\S+) (\d+(?: \d+)*)$/s) { $media = $self->add_media(NGCP::Rtpclient::SDP::Media->new_remote($1, $2, $3, $4)); next; } if ($line =~ /^c=(.*)$/) { $attr_store->{connection} = decode_address($1); next; } if ($line =~ /^a=(([\w-]+)(?::(.*))?)$/) { my $full = $1; my $name = $2; my $cont = $3; push(@{$attr_store->{attributes_list}}, $full); push(@{$attr_store->{attributes_hash}->{$name}}, $cont); if ($cont && $cont =~ /^(\w+) (.*)$/) { my $sub = $1; $cont = $2; push(@{$attr_store->{attributes_hash}->{"$name:$sub"}}, $cont); } } } for my $m (@$medias) { $m->decode(); } return $self; } sub add_media { my ($self, $media) = @_; push(@{$self->{medias}}, $media); $media->{parent} = $self; return $media; } sub encode { my ($self) = @_; my ($secs, $msecs) = gettimeofday(); my @out; push(@out, 'v=0'); push(@out, 'o=- ' . ($secs ^ $msecs) . ' ' . ($self->{version}++) . ' ' . encode_address($self->{origin})); push(@out, 's=tester'); $self->{connection} and push(@out, 'c=' . encode_address($self->{connection})); push(@out, 't=0 0'); for my $m (@{$self->{medias}}) { push(@out, $m->encode($self->{connection})); } return join("\r\n", @out) . "\r\n"; } sub encode_address { my ($sock) = @_; my $domain = $sock->sockdomain(); my $addr = $sock->sockhost(); $domain == &AF_INET and return "IN IP4 $addr"; $domain == &AF_INET6 and return "IN IP6 $addr"; die "$domain $addr"; } sub decode_address { my ($s) = @_; if ($s =~ /^IN IP4 (\d+\.\d+\.\d+\.\d+)$/s) { return { address => $1, family => &AF_INET }; } if ($s =~ /^IN IP6 ([0-9a-fA-F:]+)$/s) { return { address => $1, family => &AF_INET6 }; } die $s; } sub codec_negotiate { my ($self, $remote) = @_; my $idx = 0; while (1) { my $local = $self->{medias}->[$idx]; my $remote = $remote->{medias}->[$idx]; ($local && $remote) or last; my @codecs_send; for my $c (@{$remote->{codec_list}}) { if (!$local->{codec_hash}{$c->{name}}) { next; } push(@codecs_send, $c); } $local->{codecs_send} = \@codecs_send; $idx++; } } package NGCP::Rtpclient::SDP::Media; use Socket; use Socket6; use IO::Socket; # XXX move these to a separate module? my %codec_map = ( PCMA => { payload_type => 8, frame_len => 160 }, PCMU => { payload_type => 0, frame_len => 160 }, G729 => { payload_type => 18 }, G723 => { payload_type => 4 }, G722 => { payload_type => 9 }, ); my %payload_type_map = map {$codec_map{$_}{payload_type} => $_} keys(%codec_map); sub new { my ($class, $rtp, $rtcp, %args) = @_; my $self = {}; bless $self, $class; $self->{rtp} = $rtp; # main transport $self->{rtcp} = $rtcp; # optional $self->{protocol} = $args{protocol} // 'RTP/AVP'; $self->{type} = $args{type} // 'audio'; my $codecs = $args{codecs} // [qw(PCMU)]; my (@codec_list, %dyn_pt); for my $c (@$codecs) { my ($codec, $clockrate, $channels) = $c =~ /^(\w+)(?:\/(\d+)(?:\/(\d+))?)?$/; $clockrate //= 8000; # make codec-dependent $channels //= 1; my $pt = { name => $codec, clockrate => $clockrate, channels => $channels }; my $ptdef = $codec_map{$c}; my $ptnum; if ($ptdef) { $ptnum = $ptdef->{payload_type}; } else { $ptnum = 96; while ($dyn_pt{$ptnum}) { $ptnum++; } $dyn_pt{$ptnum} = 1; } $pt->{payload_type} = $ptnum; push(@codec_list, $pt); } $self->{codec_list} = \@codec_list; $self->codecs_parse(); $self->{additional_attributes} = []; return $self; }; sub new_remote { my ($class, $protocol, $port, $type, $payload_types) = @_; my $self = {}; bless $self, $class; $self->{protocol} = $protocol; $self->{port} = $port; $self->{type} = $type; $self->{payload_types} = [split(/ /, $payload_types)]; # to be converted in decode() return $self; }; sub add_attrs { my ($self, @list) = @_; push(@{$self->{additional_attributes}}, @list); } sub encode { my ($self, $parent_connection) = @_; my $pconn = $parent_connection ? NGCP::Rtpclient::SDP::encode_address($parent_connection) : ''; my @out; my @payload_types = map {$_->{payload_type}} @{$self->{codec_list}}; push(@out, "m=$self->{type} " . $self->{rtp}->sockport() . ' ' . $self->{protocol} . ' ' . join(' ', @payload_types)); my $rtpconn = NGCP::Rtpclient::SDP::encode_address($self->{rtp}); $rtpconn eq $pconn or push(@out, "c=$rtpconn"); push(@out, 'a=sendrecv'); # add rtpmap attributes if ($self->{rtcp}) { my $rtcpconn = NGCP::Rtpclient::SDP::encode_address($self->{rtcp}); push(@out, 'a=rtcp:' . $self->{rtcp}->sockport() . ($rtcpconn eq $rtpconn ? '' : (' ' . NGCP::Rtpclient::SDP::encode_address($self->{rtcp})))); } push(@out, @{$self->{additional_attributes}}); return @out; } sub decode { my ($self) = @_; my $attrs = $self->{attributes_hash}; if ($attrs->{rtcp}) { my $a = $attrs->{rtcp}->[0]; $a =~ /^(\d+)(?: (IN .*))?$/ or die $a; $self->{rtcp_port} = $1; $2 and $self->{rtcp_connection} = decode_address($2); } my @codec_list; for my $pt (@{$self->{payload_types}}) { my $def_fmt = $payload_type_map{$pt}; my $rtpmap = $attrs->{"rtpmap:$pt"}->[0]; $rtpmap //= "$def_fmt/8000"; my ($codec, $clockrate, $channels) = $rtpmap =~ /^(\w+)\/(\d+)(?:\/(\d+))?$/; $channels //= 1; my $ent = { name => $codec, clockrate => $clockrate, channels => $channels, payload_type => $pt }; push(@codec_list, $ent); } $self->{codec_list} = \@codec_list; $self->codecs_parse(); } sub codecs_parse { my ($self) = @_; $self->{payload_types} = { map {$_->{payload_type} => $_} @{$self->{codec_list}} }; $self->{codec_hash} = { map {$_->{name} => $_} @{$self->{codec_list}} }; } sub send_codec { my ($self) = @_; return $self->{codecs_send}->[0]; } sub connection { my ($self) = @_; $self->{connection} and return $self->{connection}; return $self->{parent}->{connection}; } sub rtcp_port { my ($self) = @_; $self->{rtcp_port} and return $self->{rtcp_port}; return $self->{port} + 1; } sub rtcp_connection { my ($self) = @_; $self->{rtcp_connection} and return $self->{rtcp_connection}; return $self->connection(); } sub decode_ice { my ($self) = @_; my $ret = {}; $ret->{ufrag} = $self->{attributes_hash}->{'ice-ufrag'}->[0]; $ret->{pwd} = $self->{attributes_hash}->{'ice-pwd'}->[0]; $ret->{candidates} = $self->{attributes_hash}->{'candidate'}; return $ret; } sub endpoint { my ($self) = @_; my $conn = $self->connection(); my $port = $self->{port}; $conn->{family} == &AF_INET and return pack_sockaddr_in($port, inet_aton($conn->{address})); $conn->{family} == &AF_INET6 and return pack_sockaddr_in6($port, inet_pton(&AF_INET6, $conn->{address})); die; } sub rtcp_endpoint { my ($self) = @_; my $conn = $self->rtcp_connection(); my $port = $self->rtcp_port(); $conn->{family} == &AF_INET and return pack_sockaddr_in($port, inet_aton($conn->{address})); $conn->{family} == &AF_INET6 and return pack_sockaddr_in6($port, inet_pton(&AF_INET6, $conn->{address})); die; } sub get_attrs { my ($self, $name) = @_; return $self->{attributes_hash}->{$name} // []; } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpclient/SRTP.pm000066400000000000000000000257501474347554000211650ustar00rootroot00000000000000package NGCP::Rtpclient::SRTP; use strict; use warnings; use Crypt::Rijndael; use Digest::SHA qw(hmac_sha1); use MIME::Base64; our $SRTP_DEBUG = 0; our @crypto_suites = ( { str => 'AES_CM_128_HMAC_SHA1_80', dtls_name => 'SRTP_AES128_CM_SHA1_80', auth_tag => 10, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 16, salt_length => 14, }, { str => 'AES_CM_128_HMAC_SHA1_32', dtls_name => 'SRTP_AES128_CM_SHA1_32', auth_tag => 4, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 16, salt_length => 14, }, { str => 'F8_128_HMAC_SHA1_80', auth_tag => 10, enc_func => \&aes_f8, iv_rtp => \&aes_f8_iv_rtp, iv_rtcp => \&aes_f8_iv_rtcp, key_length => 16, salt_length => 14, }, { str => 'AES_192_CM_HMAC_SHA1_80', #dtls_name => 'SRTP_AES128_CM_SHA1_80', auth_tag => 10, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 24, salt_length => 14, }, { str => 'AES_256_CM_HMAC_SHA1_80', #dtls_name => 'SRTP_AES128_CM_SHA1_80', auth_tag => 10, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 32, salt_length => 14, }, { str => 'AES_192_CM_HMAC_SHA1_32', #dtls_name => 'SRTP_AES128_CM_SHA1_80', auth_tag => 4, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 24, salt_length => 14, }, { str => 'AES_256_CM_HMAC_SHA1_32', #dtls_name => 'SRTP_AES128_CM_SHA1_80', auth_tag => 4, enc_func => \&aes_cm, iv_rtp => \&aes_cm_iv_rtp, iv_rtcp => \&aes_cm_iv_rtcp, key_length => 32, salt_length => 14, }, ); our %crypto_suites = map {$$_{str} => $_} @crypto_suites; sub aes_cm { my ($data, $key, $iv) = @_; my $c = Crypt::Rijndael->new($key) or die; length($iv) == 16 or die; my @iv = unpack("C16", $iv); my $out = ''; while ($data ne '') { $iv = pack("C16", @iv); my $key_segment = $c->encrypt($iv); length($key_segment) == 16 or die; my @ks = unpack("C16", $key_segment); my @ds = unpack("C16", $data); for my $i (0 .. $#ds) { my $ss = $ds[$i]; my $kk = $ks[$i]; $out .= chr($ss ^ $kk); } substr($data, 0, 16, ''); $data eq '' and last; for my $i (reverse(0 .. 15)) { $iv[$i]++; if ($iv[$i] == 256) { $iv[$i] = 0; } else { last; } } } return $out; } sub aes_f8 { my ($data, $key, $iv, $salt) = @_; my $m = $salt . "\x55\x55"; my $c = Crypt::Rijndael->new(xor_128($key, $m)) or die; my $ivx = $c->encrypt($iv); undef($c); $c = Crypt::Rijndael->new($key) or die; my $p_s = "\0" x 16; my $j = 0; my $out = ''; while ($data ne '') { my $jx = ("\0" x 12) . pack("N", $j); my $key_segment = $c->encrypt(xor_128($ivx, $jx, $p_s)); length($key_segment) == 16 or die; my @ks = unpack("C16", $key_segment); my @ds = unpack("C16", $data); for my $i (0 .. $#ds) { my $ss = $ds[$i]; my $kk = $ks[$i]; $out .= chr($ss ^ $kk); } substr($data, 0, 16, ''); $data eq '' and last; $p_s = $key_segment; $j++; } return $out; } sub prf_n { my ($n, $key, $x) = @_; my $d = "\0" x ($n / 8); my $ks = aes_cm($d, $key, $x . "\0\0"); return substr($ks, 0, $n / 8); } sub xor_n { my ($n, @l) = @_; $n /= 8; my @o = (0) x $n; for my $e (@l) { my @e = unpack("C$n", $e); if (@e < $n) { unshift(@e, ((0) x ($n - @e))); } for my $i (0 .. $#o) { $o[$i] ^= $e[$i]; } } return pack("C$n", @o); } sub xor_112 { return xor_n(112, @_); } sub xor_128 { return xor_n(128, @_); } sub gen_rtp_session_keys { my ($master_key, $master_salt) = @_; # this assumes session key length identical to master key length my $session_key = prf_n(length($master_key) * 8, $master_key, xor_112($master_salt, "\0\0\0\0\0\0\0")); my $auth_key = prf_n(160, $master_key, xor_112($master_salt, "\1\0\0\0\0\0\0")); my $session_salt = prf_n(112, $master_key, xor_112($master_salt, "\2\0\0\0\0\0\0")); if ($SRTP_DEBUG) { print("RTP keys generated for master key " . unpack("H8", $master_key) . "... and salt " . unpack("H8", $master_salt) . "... are: " . unpack("H8", $session_key) . "..., " . unpack("H*", $auth_key) . ", " . unpack("H8", $session_salt) . "...\n"); } return ($session_key, $auth_key, $session_salt); } sub gen_rtcp_session_keys { my ($master_key, $master_salt) = @_; # this assumes session key length identical to master key length my $session_key = prf_n(length($master_key) * 8, $master_key, xor_112($master_salt, "\3\0\0\0\0\0\0")); my $auth_key = prf_n(160, $master_key, xor_112($master_salt, "\4\0\0\0\0\0\0")); my $session_salt = prf_n(112, $master_key, xor_112($master_salt, "\5\0\0\0\0\0\0")); if ($SRTP_DEBUG) { print("RTCP keys generated for master key " . unpack("H8", $master_key) . "... and salt " . unpack("H8", $master_salt) . "... are: " . unpack("H8", $session_key) . "..., " . unpack("H*", $auth_key) . ", " . unpack("H8", $session_salt) . "...\n"); } return ($session_key, $auth_key, $session_salt); } sub aes_cm_iv_rtp { my ($r, $ssalt, $roc) = @_; my ($hdr, $seq, $ts, $ssrc) = unpack('a2na4a4', $r); my $iv = xor_128($ssalt . "\0\0", $ssrc . "\0\0\0\0\0\0\0\0", pack("Nnn", $roc, $seq, 0)); return $iv; } sub aes_cm_iv_rtcp { my ($r, $ssalt, $idx) = @_; $idx ||= 0; my ($hdr, $ssrc) = unpack('a4a4', $r); my $iv = xor_128($ssalt . "\0\0", $ssrc . "\0\0\0\0\0\0\0\0", pack("Nn", $idx, 0)); return $iv; } sub aes_f8_iv_rtp { my ($r, $ssalt, $roc) = @_; my ($hdr, $fields) = unpack('a1a11', $r); my $iv = pack('Ca*N', 0, $fields, $roc); return $iv; } sub aes_f8_iv_rtcp { my ($r, $ssalt, $idx) = @_; my ($fields) = unpack('a8', $r); my $iv = pack('a*Na*', "\0\0\0\0", (($idx || 0) | 0x80000000), $fields); return $iv; } sub decode_inline_base64 { my ($b64, $cs) = @_; # append possibly missing trailing == $b64 .= '=' x (4 - (length($b64) % 4)) if ((length($b64) % 4) != 0); my $ks = decode_base64($b64); length($ks) == ($cs->{key_length} + $cs->{salt_length}) or die; my @ret = unpack("a$cs->{key_length}a$cs->{salt_length}", $ks); return @ret; } sub encrypt_rtp { my ($suite, $skey, $ssalt, $sauth, $roc, $mki, $mki_len, $unenc_srtp, $unauth_srtp, $packet) = @_; my ($hdr, $seq, $h2, $to_enc) = unpack('a2na8a*', $packet); $roc = $roc || 0; $seq == 0 and $roc++; my $iv = $$suite{iv_rtp}->($packet, $ssalt, $roc); my $enc = $unenc_srtp ? $to_enc : $$suite{enc_func}->($to_enc, $skey, $iv, $ssalt); my $pkt = pack('a*na*a*', $hdr, $seq, $h2, $enc); my $hmac = hmac_sha1($pkt . pack("N", $roc), $sauth); # print("HMAC for packet " . unpack("H*", $pkt) . " ROC $roc is " . unpack("H*", $hmac) . "\n"); append_mki(\$pkt, $mki_len, $mki); #$pkt .= pack("N", 1); # mki $pkt .= substr($hmac, 0, $unauth_srtp ? 0 : $$suite{auth_tag}); return ($pkt, $roc); } sub decrypt_rtp { my ($suite, $skey, $ssalt, $sauth, $roc, $packet) = @_; # XXX MKI, session parameters my $plen = length($packet); my $auth_tag = substr($packet, $plen - $$suite{auth_tag}, $$suite{auth_tag}); $packet = substr($packet, 0, $plen - $$suite{auth_tag}); my ($hdr, $seq, $h2, $to_enc) = unpack('a2na8a*', $packet); $roc = $roc || 0; $seq == 0 and $roc++; my $iv = $$suite{iv_rtp}->($packet, $ssalt, $roc); my $enc = $$suite{enc_func}->($to_enc, $skey, $iv, $ssalt); my $pkt = pack('a*na*a*', $hdr, $seq, $h2, $enc); my $hmac = hmac_sha1($packet . pack("N", $roc), $sauth); # print("HMAC for packet " . unpack("H*", $pkt) . " ROC $roc is " . unpack("H*", $hmac) . "\n"); #$pkt .= pack("N", 1); # mki return ($pkt, $roc, $auth_tag, $hmac); } sub encrypt_rtcp { my ($suite, $skey, $ssalt, $sauth, $idx, $mki, $mki_len, $unenc_srtcp, $packet) = @_; my $iv = $suite->{iv_rtcp}->($packet, $ssalt, $idx); my ($hdr, $to_enc) = unpack('a8a*', $packet); my $enc = $unenc_srtcp ? $to_enc : $suite->{enc_func}->($to_enc, $skey, $iv, $ssalt); my $pkt = $hdr . $enc; $pkt .= pack("N", (($idx || 0) | ($unenc_srtcp ? 0 : 0x80000000))); my $hmac = hmac_sha1($pkt, $sauth); append_mki(\$pkt, $mki_len, $mki); #$pkt .= pack("N", 1); # mki $pkt .= substr($hmac, 0, 10); $idx++; return ($pkt, $idx); } sub decrypt_rtcp { my ($suite, $skey, $ssalt, $sauth, $packet) = @_; # XXX MKI, session parameters my $plen = length($packet); my $auth_tag = substr($packet, $plen - 10, 10); my $idx_raw = substr($packet, $plen - 4 - 10, 4); my ($idx) = unpack('N', $idx_raw); $idx &= 0x7fffffff; my $auth_packet = substr($packet, 0, $plen - 10); $packet = substr($packet, 0, $plen - 10 - 4); my $iv = $suite->{iv_rtcp}->($packet, $ssalt, $idx); my ($hdr, $to_enc) = unpack('a8a*', $packet); my $enc = $suite->{enc_func}->($to_enc, $skey, $iv, $ssalt); my $pkt = $hdr . $enc; my $hmac = hmac_sha1($auth_packet, $sauth); return ($pkt, $idx, $auth_tag, $hmac); } sub append_mki { my ($pack_r, $mki_len, $mki) = @_; $mki_len or return; $mki = pack('N', $mki); while (length($mki) < $mki_len) { $mki = "\x00" . $mki; } if (length($mki) > $mki_len) { $mki = substr($mki, -$mki_len); } $$pack_r .= $mki; } package NGCP::Rtpclient::SRTP::Context; sub new { my ($class, $suite) = @_; my $self = {}; bless $self, $class; $self->{suite} = $suite; # includes all parameters my $remote = $self->{remote} = $suite->{remote}; # shortcut $self->{roc} = 0; $self->{remote_roc} = 0; @$self{qw(session_key auth_key session_salt)} = NGCP::Rtpclient::SRTP::gen_rtp_session_keys($suite->{master_key}, $suite->{master_salt}); @$self{qw(rtcp_session_key rtcp_auth_key rtcp_session_salt)} = NGCP::Rtpclient::SRTP::gen_rtcp_session_keys($suite->{master_key}, $suite->{master_salt}); @$self{qw(remote_session_key remote_auth_key remote_session_salt)} = NGCP::Rtpclient::SRTP::gen_rtp_session_keys($remote->{master_key}, $remote->{master_salt}); @$self{qw(remote_rtcp_session_key remote_rtcp_auth_key remote_rtcp_session_salt)} = NGCP::Rtpclient::SRTP::gen_rtcp_session_keys($remote->{master_key}, $remote->{master_salt}); return $self; }; sub encrypt { my ($self, $component, $pack) = @_; if ($component == 0) { # XXX MKI, SRTP/SDES session options my ($p, $roc) = NGCP::Rtpclient::SRTP::encrypt_rtp(@$self{qw(suite session_key session_salt auth_key roc)}, '', 0, 0, 0, $pack); $self->{roc} = $roc; return $p; } else { # RTCP my ($p, $idx) = NGCP::Rtpclient::SRTP::encrypt_rtcp(@$self{qw(suite rtcp_session_key rtcp_session_salt rtcp_auth_key rtcp_index)}, '', 0, 0, $pack); $self->{rtcp_index} = $idx; return $p; } } sub decrypt { my ($self, $component, $pack) = @_; if ($component == 0) { # XXX MKI, SRTP/SDES session options my ($p, $roc) = NGCP::Rtpclient::SRTP::decrypt_rtp(@$self{qw(remote remote_session_key remote_session_salt remote_auth_key remote_roc)}, $pack); $self->{remote_roc} = $roc; # XXX verify hmac/auth return $p; } else { # RTCP my ($p, $idx) = NGCP::Rtpclient::SRTP::decrypt_rtcp(@$self{qw(remote remote_rtcp_session_key remote_rtcp_session_salt remote_rtcp_auth_key)}, $pack); $self->{remote_rtcp_index} = $idx; # XXX verify hmac/auth return $p; } } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpengine.pm000066400000000000000000000022611474347554000203540ustar00rootroot00000000000000package NGCP::Rtpengine; use strict; use warnings; use Socket; use Socket6; use IO::Socket; use IO::Socket::IP; use Bencode; use Data::Dumper; use JSON; our $req_cb; sub new { my ($class, $addr, $port) = @_; my $self = {}; bless $self, $class; if (ref($addr)) { $self->{socket} = $addr; } else { $self->{socket} = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', PeerHost => $addr, PeerPort => $port); } return $self; } sub req { my ($self, $packet) = @_; my $cookie = rand() . ' '; my $p = $cookie . ($self->{json} ? encode_json($packet) : Bencode::bencode($packet)); $self->{socket}->send($p, 0) or die $!; if ($req_cb) { $req_cb->(); } my $ret; $self->{socket}->recv($ret, 65535) or die $!; $ret =~ s/^\Q$cookie\E//s or die $ret; my $resp = $self->{json} ? decode_json($ret) : Bencode::bdecode($ret, 1); $resp->{result} or die Dumper $resp; if ($resp->{result} eq 'error') { die "Error reason: \"$resp->{'error-reason'}\""; } return $resp; } sub offer { my ($self, $packet) = @_; return $self->req( { command => 'offer', %$packet } ); } sub answer { my ($self, $packet) = @_; return $self->req( { command => 'answer', %$packet } ); } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpengine/000077500000000000000000000000001474347554000200155ustar00rootroot00000000000000rtpengine-mr12.5.1.22/perl/NGCP/Rtpengine/AutoTest.pm000066400000000000000000000221261474347554000221260ustar00rootroot00000000000000package NGCP::Rtpengine::AutoTest; use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use Test::More; use File::Temp; use IPC::Open3; use Time::HiRes; use POSIX ":sys_wait_h"; use IO::Socket; use Exporter; our @ISA; our @EXPORT; our $launch_cb; BEGIN { require Exporter; @ISA = qw(Exporter); our @EXPORT = qw(autotest_start new_call offer answer ft tt cid snd srtp_snd rtp rcv srtp_rcv rcv_no srtp_dec escape rtpm rtpmre reverse_tags new_ft new_tt crlf sdp_split rtpe_req offer_answer autotest_init subscribe_request subscribe_answer publish use_json); }; my $rtpe_stdout; my $rtpe_stderr; my $rtpe_pid; my $c; my ($cid, $ft, $tt, @sockets, $tag_iter, $tag_suffix); sub autotest_start { my (@cmdline) = @_; like $ENV{LD_PRELOAD}, qr/tests-preload/, 'LD_PRELOAD present'; is $ENV{RTPE_PRELOAD_TEST_ACTIVE}, '1', 'preload library is active'; SKIP: { skip 'daemon is running externally', 1 if $ENV{RTPE_TEST_NO_LAUNCH}; ok -x $ENV{RTPE_BIN}, 'RTPE_BIN points to executable'; } $rtpe_stdout = File::Temp->new( TEMPLATE => 'rtpe-out.XXXXXXXXXX', TMPDIR => 1, ) or die; $rtpe_stderr = File::Temp->new( TEMPLATE => 'rtpe-err.XXXXXXXXXX', TMPDIR => 1, ) or die; SKIP: { skip 'daemon is running externally', 1 if $ENV{RTPE_TEST_NO_LAUNCH}; local $ENV{GLIB_SLICE} = 'debug-blocks'; $rtpe_pid = open3(undef, '>&'.fileno($rtpe_stdout), '>&'.fileno($rtpe_stderr), $ENV{RTPE_BIN}, @cmdline); ok $rtpe_pid, 'daemon launched in background'; } return autotest_init(); } sub autotest_init { # keep trying to connect to the control socket while daemon is starting up for (1 .. 300) { $c = NGCP::Rtpengine->new($ENV{RTPENGINE_HOST} // '127.0.0.1', $ENV{RTPENGINE_PORT} // 2223); last if $c->{socket}; Time::HiRes::usleep(100000); # 100 ms x 300 = 30 sec } 1; $c->{socket} or die; $tag_iter = 0; $tag_suffix = '-' . rand(); if ($launch_cb) { $launch_cb->(); } my $r = $c->req({command => 'ping'}); ok $r->{result} eq 'pong', 'ping works, daemon operational'; return 1; } sub new_call { my @ports = @_; for my $s (@sockets) { $s->close(); } @sockets = (); $cid = $tag_iter++ . "-test-callID" . $tag_suffix; $ft = $tag_iter++ . "-test-fromtag" . $tag_suffix; $tt = $tag_iter++ . "-test-totag" . $tag_suffix; print("new call $cid\n"); for my $p (@ports) { my ($addr, $port) = @{$p}; my $s = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', LocalHost => $addr, LocalPort => $port) or die; push(@sockets, $s); } return @sockets; } sub crlf { my ($s) = @_; $s =~ s/\r\n/\n/gs; return $s; } sub sdp_split { my ($s) = @_; return split(/--------*\n/, $s); } sub rtpe_req { my ($cmd, $name, $req) = @_; $req->{command} = $cmd; $req->{'call-id'} = $cid; my $resp; eval { alarm(3); $resp = $c->req($req); alarm(0); }; terminate("'$cmd' request failed ($@)") if $@; is $resp->{result}, 'ok', "$name - '$cmd' status"; return $resp; } sub sdp_match { my ($cmd, $name, $sdp, $exp) = @_; my $regexp = "^\Q$exp\E\$"; $regexp =~ s/\\\?/./gs; $regexp =~ s/PORT/(\\d{1,5})/gs; $regexp =~ s/ICEBASE/([0-9a-zA-Z]{16})/gs; $regexp =~ s/ICEUFRAG/([0-9a-zA-Z]{8})/gs; $regexp =~ s/ICEPWD/([0-9a-zA-Z]{26})/gs; $regexp =~ s/CRYPTO128S/([0-9a-zA-Z\/+]{38})/gs; $regexp =~ s/CRYPTO128/([0-9a-zA-Z\/+]{40})/gs; $regexp =~ s/CRYPTO192/([0-9a-zA-Z\/+]{51})/gs; $regexp =~ s/CRYPTO256S/([0-9a-zA-Z\/+]{59})/gs; $regexp =~ s/CRYPTO256/([0-9a-zA-Z\/+]{62})/gs; $regexp =~ s/LOOPER/([0-9a-f]{12})/gs; $regexp =~ s/FINGERPRINT256/([0-9a-fA-F:]{95})/gs; $regexp =~ s/FINGERPRINT/([0-9a-fA-F:]{59})/gs; $regexp =~ s/SDP_VERSION/\\d+ \\d+/gs; $regexp =~ s/RTPE_VERSION/rtpengine-\\S+/gs; $regexp =~ s/TLS_ID/([0-9a-f]{32})/gs; my $crlf = crlf($sdp); like $crlf, qr/$regexp/s, "$name - output '$cmd' SDP"; my @matches = $crlf =~ qr/$regexp/s; return @matches; } sub offer_answer { my ($cmd, $name, $req, $sdps) = @_; my ($sdp_in, $exp_sdp_out) = sdp_split($sdps); $req->{'from-tag'} //= $ft; $req->{sdp} = $sdp_in; my $resp = rtpe_req($cmd, $name, $req); return sdp_match($cmd, $name, $resp->{sdp}, $exp_sdp_out); } sub offer { return offer_answer('offer', @_); } sub answer { my ($name, $req, $sdps) = @_; $req->{'to-tag'} //= $tt; return offer_answer('answer', $name, $req, $sdps); } sub subscribe_request { my ($name, $req, $sdp_exp) = @_; my $resp = rtpe_req('subscribe request', $name, $req); my @matches = sdp_match('subscribe request', $name, $resp->{sdp}, $sdp_exp); return ($resp->{'from-tag'}, $resp->{'to-tag'}, $resp->{'from-tags'}, $resp->{'tag-medias'}, $resp->{'media-labels'}, @matches); } sub subscribe_answer { my ($name, $req, $sdp) = @_; $req->{sdp} = $sdp; my $resp = rtpe_req('subscribe answer', $name, $req); } sub publish { return offer_answer('publish', @_); } sub snd { my ($sock, $dest, $packet, $addr) = @_; $sock->send($packet, 0, pack_sockaddr_in($dest, inet_aton($addr // '203.0.113.1'))) or die; } sub srtp_snd { my ($sock, $dest, $packet, $srtp_ctx, $addr) = @_; if (!$srtp_ctx->{skey}) { my ($key, $salt) = NGCP::Rtpclient::SRTP::decode_inline_base64($srtp_ctx->{key}, $srtp_ctx->{cs}); @$srtp_ctx{qw(skey sauth ssalt)} = NGCP::Rtpclient::SRTP::gen_rtp_session_keys($key, $salt); } my ($enc, $out_roc) = NGCP::Rtpclient::SRTP::encrypt_rtp(@$srtp_ctx{qw(cs skey ssalt sauth roc)}, '', 0, 0, 0, $packet); $srtp_ctx->{roc} = $out_roc; $sock->send($enc, 0, pack_sockaddr_in($dest, inet_aton($addr // '203.0.113.1'))) or die; } sub rtp { my ($pt, $seq, $ts, $ssrc, $payload) = @_; print("rtp in $pt $seq $ts $ssrc\n"); return pack('CCnNN a*', 0x80, $pt, $seq, $ts, $ssrc, $payload); } sub rcv { my ($sock, $port, $match, $cb, $cb_arg) = @_; my $p = ''; local $SIG{ALRM} = sub { exit(-10) }; alarm(1); my $addr = $sock->recv($p, 65535, 0) or die; alarm(0); my ($hdr_mark, $pt, $seq, $ts, $ssrc, $payload) = unpack('CCnNN a*', $p); if ($payload) { # print("rtp recv $pt $seq $ts $ssrc " . unpack('H*', $payload) . "\n"); } if ($cb) { $p = $cb->($hdr_mark, $pt, $seq, $ts, $ssrc, $payload, $p, $cb_arg); } if ($p !~ $match) { print("rtp recv $pt $seq $ts $ssrc " . unpack('H*', $payload) . "\n"); print(unpack('H*', $p) . "\n"); } like $p, $match, 'received packet matches'; my @matches = $p =~ $match; for my $m (@matches) { if (defined($m) && length($m) == 2) { ($m) = unpack('n', $m); } elsif (defined($m) && length($m) == 4) { ($m) = unpack('N', $m); } } if ($port == -1 && @matches) { # this is actually wrong and uses the fake Unix domain socket address. # translation should really be handled by the preloaded .so back to # fake v4/v6 address. $addr =~ /\]:(\d+)/s or die; unshift(@matches, $1); } return @matches; } sub rcv_no { my ($sock) = @_; Time::HiRes::sleep(0.1); my $p = ''; my $addr = $sock->recv($p, 65535, &MSG_DONTWAIT); ok(! defined $addr, "no packet received"); } sub srtp_rcv { my ($sock, $port, $match, $srtp_ctx) = @_; return rcv($sock, $port, $match, \&srtp_dec, $srtp_ctx); } sub srtp_dec { my ($hdr_mark, $pt, $seq, $ts, $ssrc, $payload, $pack, $srtp_ctx) = @_; if (!$srtp_ctx->{skey}) { my ($key, $salt) = NGCP::Rtpclient::SRTP::decode_inline_base64($srtp_ctx->{key}, $srtp_ctx->{cs}); @$srtp_ctx{qw(skey sauth ssalt)} = NGCP::Rtpclient::SRTP::gen_rtp_session_keys($key, $salt); } my ($dec, $out_roc, $tag, $hmac) = NGCP::Rtpclient::SRTP::decrypt_rtp(@$srtp_ctx{qw(cs skey ssalt sauth roc)}, $pack); $srtp_ctx->{roc} = $out_roc; is $tag, substr($hmac, 0, length($tag)), 'SRTP auth tag matches'; return $dec; } sub escape { return "\Q$_[0]\E"; } sub rtpmre { my ($pt, $seq, $ts, $ssrc, $xre) = @_; #print("rtp matcher $pt $seq $ts $ssrc $xre\n"); my $re = ''; $re .= escape(pack('C', 0x80)); $re .= escape(pack('C', $pt)); $re .= $seq >= 0 ? escape(pack('n', $seq)) : '(..)'; $re .= $ts >= 0 ? escape(pack('N', $ts)) : '(....)'; $re .= $ssrc >= 0 ? escape(pack('N', $ssrc)) : '(....)'; $re .= $xre; return qr/^$re$/s; } sub rtpm { my ($pt, $seq, $ts, $ssrc, $payload, $alt_payload) = @_; if (!$alt_payload) { return rtpmre($pt, $seq, $ts, $ssrc, escape($payload)); } return rtpmre($pt, $seq, $ts, $ssrc, '(' . escape($payload) . '|' . escape($alt_payload) . ')'); } sub ft { return $ft; } sub tt { return $tt; } sub cid { return $cid; } sub reverse_tags { ($tt, $ft) = ($ft, $tt); } sub new_ft { $ft = $tag_iter++ . "-test-fromtag" . $tag_suffix; } sub new_tt { $tt = $tag_iter++ . "-test-totag" . $tag_suffix; } sub terminate { my $msg = shift; $rtpe_stdout->unlink_on_destroy(0); $rtpe_stderr->unlink_on_destroy(0); print "hint: rtpe stdout output is at $rtpe_stdout\n"; print "hint: rtpe stderr output is at $rtpe_stderr\n"; die "error: $msg\n"; } sub use_json { my $bool = shift; $c->{json} = $bool; } END { if ($rtpe_pid) { kill('INT', $rtpe_pid) or terminate("cannot interrupt rtpe"); # wait for daemon to terminate my $status = -1; for (1 .. 50) { $status = waitpid($rtpe_pid, WNOHANG); last if $status != 0; Time::HiRes::usleep(100000); # 100 ms x 50 = 5 sec } kill('KILL', $rtpe_pid) if $status == 0; $status == $rtpe_pid or terminate("cannot wait for process $rtpe_pid: $status: $!"); $? == 0 or terminate("process exited with $?"); } } 1; rtpengine-mr12.5.1.22/perl/NGCP/Rtpengine/Test.pm000066400000000000000000000300111474347554000212650ustar00rootroot00000000000000package NGCP::Rtpengine::Test; use strict; use warnings; use Socket; use Socket6; use IO::Socket; use IO::Socket::IP; use Bencode; use Data::Dumper; use Net::Interface; use List::Util; use IO::Multiplex; use Time::HiRes qw(time); use NGCP::Rtpclient::SDP; use NGCP::Rtpclient::ICE; use NGCP::Rtpclient::SDES; use NGCP::Rtpclient::DTLS; use NGCP::Rtpclient::RTP; use NGCP::Rtpclient::RTCP; use NGCP::Rtpengine; sub new { my ($class, %args) = @_; my $self = {}; bless $self, $class; srand(1234) if $ENV{RTPE_TEST_PSEUDO_RAND}; # detect local interfaces my (@v4, @v6); my @intfs = Net::Interface->interfaces(); if ($ENV{RTPE_TEST_V4_ADDRS}) { @v4 = split(/ /, $ENV{RTPE_TEST_V4_ADDRS}); } else { @v4 = map {$_->address(&AF_INET)} @intfs; @v4 = map {Socket6::inet_ntop(&AF_INET, $_)} @v4; @v4 = grep {$_ !~ /^127\./} @v4; } @v4 = map { { address => $_, sockdomain => &AF_INET } } @v4; @v4 or die("no IPv4 addresses found"); if ($ENV{RTPE_TEST_V6_ADDRS}) { @v6 = split(/ /, $ENV{RTPE_TEST_V6_ADDRS}); } else { @v6 = map {$_->address(&AF_INET6)} @intfs; @v6 = map {Socket6::inet_ntop(&AF_INET6, $_)} @v6; @v6 = grep {$_ !~ /^::|^fe80:/} @v6; } @v6 = map { { address => $_, sockdomain => &AF_INET6 } } @v6; @v6 or die("no IPv6 addresses found"); $self->{v4_addresses} = \@v4; $self->{v6_addresses} = \@v6; $self->{all_addresses} = [ @v4, @v6 ]; # supporting objects $self->{mux} = IO::Multiplex->new(); $self->{mux}->set_callback_object($self); $self->{media_port} = $args{media_port} // $ENV{RTPE_TEST_MEDIA_PORT} // 2000; $self->{timers} = []; $self->{clients} = []; $self->{control} = NGCP::Rtpengine->new($args{host} // $ENV{RTPENGINE_HOST} // 'localhost', $args{port} // $ENV{RTPENGINE_PORT} // 2223); $self->{callid} = rand(); return $self; }; sub client { my ($self, %args) = @_; my $cl = NGCP::Rtpengine::Test::Client->_new($self, %args); push(@{$self->{clients}}, $cl); return $cl; } sub client_pair { my ($self, $args_A, $args_B) = @_; my $a = $self->client(%$args_A); my $b = $self->client(%$args_B); $a->media_receiver($b); $b->media_receiver($a); return ($a, $b); } sub run { my ($self) = @_; $self->{mux}->loop(); } sub stop { my ($self) = @_; $self->{mux}->endloop(); for my $cl (@{$self->{clients}}) { $cl->stop(); } } sub timer_once { my ($self, $delay, $sub) = @_; push(@{$self->{timers}}, { sub => $sub, when => time() + $delay }); @{$self->{timers}} = sort {$a->{when} <=> $b->{when}} @{$self->{timers}}; } sub mux_input { my ($self, $mux, $fh, $input) = @_; my $peer = $mux->udp_peer($fh); for my $cl (@{$self->{clients}}) { $$input eq '' and last; $cl->_input($fh, $input, $peer); } $$input ne '' and die; } sub mux_timeout { my ($self, $mux, $fh) = @_; $mux->set_timeout($fh, 0.01); my $now = time(); while (@{$self->{timers}} && $self->{timers}->[0]->{when} <= $now) { my $t = shift(@{$self->{timers}}); $t->{sub}->(); } for my $cl (@{$self->{clients}}) { $cl->_timer(); } } package NGCP::Rtpengine::Test::Client; use Socket; use Data::Dumper; sub _new { my ($class, $parent, %args) = @_; my $self = {}; bless $self, $class; $self->{parent} = $parent; $self->{tag} = rand(); $self->{codecs} = $args{codecs} // [qw(PCMU)]; # create media sockets my @addresses = @{$parent->{all_addresses}}; @addresses = List::Util::shuffle @addresses; my (@sockets, @rtp, @rtcp); # XXX support rtcp-mux and rtcp-less media for my $address (@addresses) { ($args{sockdomain} && $args{sockdomain} != $address->{sockdomain}) and next; my $rtp = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', LocalHost => $address->{address}, LocalPort => $parent->{media_port}) or die("$address->{address}:$parent->{media_port}"); $parent->{media_port}++; my $rtcp = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', LocalHost => $address->{address}, LocalPort => $parent->{media_port}) or die("$address->{address}:$parent->{media_port}"); $parent->{media_port}++; push(@sockets, [$rtp, $rtcp]); # component 0 and 1 push(@rtp, $rtp); push(@rtcp, $rtcp); $parent->{mux}->add($rtp); $parent->{mux}->add($rtcp); $parent->{mux}->set_timeout($rtp, 0.01); # XXX overkill, only need this on one } @sockets or die; $self->{sockets} = \@sockets; $self->{rtp_sockets} = \@rtp; $self->{rtcp_sockets} = \@rtcp; $self->{main_sockets} = $sockets[0]; # for m= and o= $self->{local_sdp} = NGCP::Rtpclient::SDP->new($self->{main_sockets}->[0]); # no global c= $self->{component_peers} = []; # keep track of peer source addresses # default protocol my $proto = 'RTP/AVP'; $args{sdes} and $proto = 'RTP/SAVP'; $args{dtls} and $proto = 'UDP/TLS/RTP/SAVP'; $args{protocol} and $proto = $args{protocol}; $self->{local_media} = $self->{local_sdp}->add_media(NGCP::Rtpclient::SDP::Media->new( $self->{main_sockets}->[0], $self->{main_sockets}->[1], # main rtp and rtcp protocol => $proto, codecs => $self->{codecs}, )); # XXX support multiple medias if ($args{sdes}) { $self->{sdes} = NGCP::Rtpclient::SDES->new(%{$args{sdes_args}}); } if ($args{dtls}) { $self->{dtls} = NGCP::Rtpclient::DTLS::Group->new($parent->{mux}, $self, [ \@rtp, \@rtcp ]); $self->{local_media}->add_attrs($self->{dtls}->encode()); $self->{dtls}->accept(); # XXX support other modes } if ($args{ice}) { $self->{ice} = NGCP::Rtpclient::ICE->new(2, 1); # 2 components, controlling XXX my $pref = 65535; for my $s (@sockets) { $self->{ice}->add_candidate($pref--, 'host', @$s); # 2 components } $self->{local_media}->add_attrs($self->{ice}->encode()); } $self->{media_receive_queues} = [[],[]]; # for each component $self->{media_packets_sent} = [0,0]; $self->{media_packets_received} = [0,0]; $self->{client_components} = [undef,undef]; $self->{args} = \%args; # copy args for the RTP client $self->{rtp_args} = {}; for my $k (qw(packetloss)) { exists($args{$k}) or next; $self->{rtp_args}->{$k} = $args{$k}; } return $self; } sub media_receiver { my ($self, $other) = @_; $self->{media_receiver} = $other; } sub media_to_receive { my ($self, $component, $s) = @_; push(@{$self->{media_receive_queues}->[$component]}, $s); } sub _packet_send { my ($self, $component, $s) = @_; my $local_socket = $self->{main_sockets}->[$component]; my $dest; if (!$self->{ice}) { if ($self->{remote_media}) { $dest = $component == 0 ? $self->{remote_media}->endpoint() : $self->{remote_media}->rtcp_endpoint(); } else { $dest = $self->{component_peers}->[$component] } } else { ($local_socket, $dest) = $self->{ice}->get_send_component($component); } if ($self->{srtp}) { $s = $self->{srtp}->encrypt($component, $s); } $local_socket->send($s, 0, $dest); } sub _media_send { my ($self, $component, $s) = @_; $self->_packet_send($component, $s); $self->{media_packets_sent}->[$component]++; $self->{media_receiver} and $self->{media_receiver}->media_to_receive($component, $s); } sub dtls_send { my ($self, $component, $s) = @_; $self->_packet_send($component, $s); } sub rtp_send { my ($self, $s) = @_; $self->_media_send(0, $s); } sub rtcp_send { my ($self, $s) = @_; $self->_media_send(1, $s); } sub _default_req_args { my ($self, $cmd, %args) = @_; my $req = { command => $cmd, 'call-id' => $self->{parent}->{callid} }; for my $cp (qw(sdp from-tag to-tag ICE transport-protocol address-family label direction codec)) { $args{$cp} and $req->{$cp} = $args{$cp}; } for my $cp (@{$args{flags}}) { push(@{$req->{flags}}, $cp); } return $req; } sub offer { my ($self, $other, %args) = @_; $self->{sdes} and $self->{local_media}->add_attrs($self->{sdes}->encode()); my $sdp_body = $self->{local_sdp}->encode(); # XXX validate SDP my $req = $self->_default_req_args('offer', 'from-tag' => $self->{tag}, sdp => $sdp_body, %args); my $out = $self->{parent}->{control}->req($req); $other->_offered($out); } sub _offered { my ($self, $req) = @_; my $sdp_body = $req->{sdp} or die; $self->{remote_sdp_raw} = $sdp_body; $self->{remote_sdp} = NGCP::Rtpclient::SDP->decode($sdp_body); # XXX validate SDP @{$self->{remote_sdp}->{medias}} == 1 or die; $self->{remote_media} = $self->{remote_sdp}->{medias}->[0]; $self->{local_sdp}->codec_negotiate($self->{remote_sdp}); if ($self->{sdes}) { $self->{sdes}->decode($self->{remote_media}); $self->{sdes}->offered(); $self->{srtp} = NGCP::Rtpclient::SRTP::Context->new($self->{sdes}->{suite}); } $self->{ice} and $self->{ice}->decode($self->{remote_media}->decode_ice()); } sub answer { my ($self, $other, %args) = @_; $self->{sdes} and $self->{local_media}->add_attrs($self->{sdes}->encode()); my $sdp_body = $self->{local_sdp}->encode(); # XXX validate SDP my $req = $self->_default_req_args('answer', 'from-tag' => $other->{tag}, 'to-tag' => $self->{tag}, sdp => $sdp_body, %args); my $out = $self->{parent}->{control}->req($req); $other->_answered($out); } sub _answered { my ($self, $req) = @_; my $sdp_body = $req->{sdp} or die; $self->{remote_sdp_raw} = $sdp_body; $self->{remote_sdp} = NGCP::Rtpclient::SDP->decode($sdp_body); # XXX validate SDP @{$self->{remote_sdp}->{medias}} == 1 or die; $self->{remote_media} = $self->{remote_sdp}->{medias}->[0]; $self->{local_sdp}->codec_negotiate($self->{remote_sdp}); if ($self->{sdes}) { $self->{sdes}->decode($self->{remote_media}); $self->{sdes}->answered(); $self->{srtp} = NGCP::Rtpclient::SRTP::Context->new($self->{sdes}->{suite}); } $self->{ice} and $self->{ice}->decode($self->{remote_media}->decode_ice()); } sub teardown { my ($self, %args) = @_; my $req = $self->_default_req_args('delete', 'from-tag' => $self->{tag}, %args); my $out = $self->{parent}->{control}->req($req); if ($args{dump}) { my $dumper = Data::Dumper->new([$out]); $dumper->Sortkeys(1); print($dumper->Dump); } return $out; } sub _input { my ($self, $fh, $input, $peer) = @_; my $component = $self->_peer_addr_check($fh, $peer); $self->{dtls} and $self->{dtls}->input($fh, $input, $peer); $self->{ice} and $self->{ice}->input($fh, $input, $peer); $$input eq '' and return; defined($component) or return; # not one of ours # must be RTP or RTCP input if (!$self->{args}->{no_data_check}) { if ($self->{srtp}) { $$input = $self->{srtp}->decrypt($component, $$input); } my $exp = shift(@{$self->{media_receive_queues}->[$component]}) or die; $$input eq $exp or die unpack('H*', $$input) . ' ne ' . unpack('H*', $exp); } else { @{$self->{media_receive_queues}->[$component]} = (); } $self->{media_packets_received}->[$component]++; $self->{client_components}->[$component] and $self->{client_components}->[$component]->input($$input); $$input = ''; } sub _timer { my ($self) = @_; $self->{ice} and $self->{ice}->timer(); $self->{rtp} and $self->{rtp}->timer(); $self->{rtcp} and $self->{rtcp}->timer(); } sub _peer_addr_check { my ($self, $fh, $peer) = @_; for my $sockets (@{$self->{sockets}}) { for my $component (0, 1) { if ($fh == $sockets->[$component]) { $self->{component_peers}->[$component] = $peer; return $component; } } } return; } sub start_rtp { my ($self) = @_; $self->{rtp} and die; my %args = %{$self->{rtp_args}}; my $send_codec = $self->{local_media}->send_codec(); $args{send_codec} = $send_codec; $self->{rtp} = NGCP::Rtpclient::RTP->new($self, %args) or die; $self->{client_components}->[0] = $self->{rtp}; } sub start_rtcp { my ($self) = @_; $self->{rtcp} and die; $self->{rtcp} = NGCP::Rtpclient::RTCP->new($self, $self->{rtp}) or die; $self->{client_components}->[1] = $self->{rtcp}; } sub stop { my ($self) = @_; print("media packets sent: @{$self->{media_packets_sent}}\n"); print("media packets received: @{$self->{media_packets_received}}\n"); my @queues = map {scalar(@$_)} @{$self->{media_receive_queues}}; print("media packets outstanding: @queues\n"); } sub remote_codecs { my ($self) = @_; my $list = $self->{remote_media}->{codec_list}; return join(',', map {"$_->{name}/$_->{clockrate}/$_->{channels}"} @$list); } sub send_codecs { my ($self) = @_; my $list = $self->{local_media}->{codecs_send}; return join(',', map {"$_->{name}/$_->{clockrate}/$_->{channels}"} @$list); } 1; rtpengine-mr12.5.1.22/pkg/000077500000000000000000000000001474347554000151525ustar00rootroot00000000000000rtpengine-mr12.5.1.22/pkg/deb/000077500000000000000000000000001474347554000157045ustar00rootroot00000000000000rtpengine-mr12.5.1.22/pkg/deb/backports/000077500000000000000000000000001474347554000176745ustar00rootroot00000000000000rtpengine-mr12.5.1.22/pkg/deb/backports/bookworm000077500000000000000000000006411474347554000214620ustar00rootroot00000000000000#!/bin/bash # # Target dist: Debian Bookworm DIST=bookworm if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/bullseye000077500000000000000000000041461474347554000214530ustar00rootroot00000000000000#!/bin/bash # # Target dist: Debian Bullseye DIST=bullseye if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} # No liburing-dev package (too old) sed -i -e '/liburing-dev/d' ${DIST}/control # dkms stuff (see MT#56627) cp old-dkms/rtpengine-kernel-dkms.postinst "${DIST}"/ cp old-dkms/rtpengine-kernel-dkms.prerm "${DIST}"/ cp old-dkms/dkms.conf.in "${DIST}"/ rm -f "${DIST}"/rtpengine-kernel-dkms.install "${DIST}"/rtpengine-kernel-dkms.dkms sed -i '/ngcp-rtpengine source:/d' "${DIST}"/source/lintian-overrides sed -i '1n;/^Package: rtpengine-kernel-dkms/,/^Depends:/{ s/Depends:/Depends:\n dkms (>= 1.95),/;}' "${DIST}"/control sed -i '/^ dh-sequence-dkms,/d' "${DIST}"/control sed -i '/^Testsuite: autopkgtest-pkg-dkms/d' "${DIST}"/control sed -i '/^override_dh_dkms/d' "${DIST}"/rules sed -i '/dh_dkms /d' "${DIST}"/rules sed -i '/^export DEB_VERSION_UPSTREAM/d' "${DIST}"/rules sed -i '/^export DEB_SOURCE/d' "${DIST}"/rules sed -i 's;^include /usr/share/dpkg/pkg-info.mk;include /usr/share/dpkg/pkg-info.mk\ ## kernel package specific stuff\ # Name of the dkms package\ pdkms:=rtpengine-kernel-dkms\ # short upstream name, used for module source directory\ sname:=rtpengine\ # Source version\ sversion:=$(DEB_VERSION_UPSTREAM)\ ## end of kernel package specific stuff\ ;' "${DIST}"/rules sed -i 's;^execute_before_dh_auto_install-indep:;execute_before_dh_auto_install-indep:\ \t# Create the directories to install the source into\ \tdh_installdirs -p$(pdkms) usr/src/$(sname)-$(sversion)\ \t# Copy only the driver source to the proper locations\ \tcd kernel-module \&\& cp Makefile *.c *.h *.inc ../debian/$(pdkms)/usr/src/$(sname)-$(sversion)\ \t# Prepare dkms.conf from the dkms.conf.in template\ \tsed "s/__VERSION__/$(sversion)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(sname)-$(sversion)/dkms.conf\ ;' "${DIST}"/rules if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/buster000077500000000000000000000060321474347554000211270ustar00rootroot00000000000000#!/bin/bash # # Target dist: Debian Buster DIST=buster if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} # No libbcg729-dev package sed -i -e '/libbcg729-dev/d' ${DIST}/control # No liburing-dev package sed -i -e '/liburing-dev/d' ${DIST}/control # Update for buster debhelper sed -i -e 's/debhelper-compat.*/debhelper-compat (= 12),/' ${DIST}/control # Replace execute_* hooks with old-style overrides sed -i -e 's/^execute_before_dh_auto_configure:/override_dh_auto_configure:/' ${DIST}/rules sed -i -e 's/^execute_after_dh_installsystemd:/override_dh_installsystemd:\n\tdh_installsystemd/' ${DIST}/rules sed -i -e 's/^execute_before_dh_auto_install-indep:/override_dh_auto_install-indep:/' ${DIST}/rules sed -i -e '/^\tgzip -9 < README.md/a\\n\tdh_auto_install' ${DIST}/rules # fix links sed -i -e 's#${env:deb_systemdsystemunitdir}#/lib/systemd/system/#g' \ ${DIST}/rtpengine-recording-daemon.links sed -i -e 's#${env:deb_systemdsystemunitdir}#/lib/systemd/system/#g' \ ${DIST}/rtpengine-daemon.links # Add dwz override cat >> ${DIST}/rules <<'EOF' override_dh_dwz: # Disable, as dwz cannot cope with some of the plugins generated. EOF # dkms stuff (see MT#56627) cp old-dkms/rtpengine-kernel-dkms.postinst "${DIST}"/ cp old-dkms/rtpengine-kernel-dkms.prerm "${DIST}"/ cp old-dkms/dkms.conf.in "${DIST}"/ rm -f "${DIST}"/rtpengine-kernel-dkms.install "${DIST}"/rtpengine-kernel-dkms.dkms sed -i '/ngcp-rtpengine source:/d' "${DIST}"/source/lintian-overrides sed -i '1n;/^Package: rtpengine-kernel-dkms/,/^Depends:/{ s/Depends:/Depends:\n dkms (>= 1.95),/;}' "${DIST}"/control sed -i '/^ dh-sequence-dkms,/d' "${DIST}"/control sed -i '/^Testsuite: autopkgtest-pkg-dkms/d' "${DIST}"/control sed -i '/^override_dh_dkms/d' "${DIST}"/rules sed -i '/dh_dkms /d' "${DIST}"/rules sed -i '/^export DEB_VERSION_UPSTREAM/d' "${DIST}"/rules sed -i '/^export DEB_SOURCE/d' "${DIST}"/rules sed -i 's;^include /usr/share/dpkg/pkg-info.mk;include /usr/share/dpkg/pkg-info.mk\ ## kernel package specific stuff\ # Name of the dkms package\ pdkms:=rtpengine-kernel-dkms\ # short upstream name, used for module source directory\ sname:=rtpengine\ # Source version\ sversion:=$(DEB_VERSION_UPSTREAM)\ ## end of kernel package specific stuff\ ;' "${DIST}"/rules sed -i 's;^override_dh_auto_install-indep:;override_dh_auto_install-indep:\ \t# Create the directories to install the source into\ \tdh_installdirs -p$(pdkms) usr/src/$(sname)-$(sversion)\ \t# Copy only the driver source to the proper locations\ \tcd kernel-module \&\& cp Makefile *.c *.h *.inc ../debian/$(pdkms)/usr/src/$(sname)-$(sversion)\ \t# Prepare dkms.conf from the dkms.conf.in template\ \tsed "s/__VERSION__/$(sversion)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(sname)-$(sversion)/dkms.conf\ ;' "${DIST}"/rules if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/focal000077500000000000000000000056731474347554000207210ustar00rootroot00000000000000#!/bin/bash # # Target dist: Ubuntu Focal DIST=focal if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} # No libbcg729-dev package sed -i -e '/libbcg729-dev/d' ${DIST}/control # No liburing-dev package sed -i -e '/liburing-dev/d' ${DIST}/control # Update for focal debhelper sed -i -e 's/debhelper-compat.*/debhelper-compat (= 12),/' ${DIST}/control # Replace execute_* hooks with old-style overrides sed -i -e 's/^execute_after_dh_installsystemd:/override_dh_installsystemd:\n\tdh_installsystemd/' ${DIST}/rules sed -i -e 's/^execute_before_dh_auto_install-indep:/override_dh_auto_install-indep:/' ${DIST}/rules sed -i -e '/^\tgzip -9 < README.md/a\\n\tdh_auto_install' ${DIST}/rules # fix links sed -i -e 's#${env:deb_systemdsystemunitdir}#/lib/systemd/system/#g' \ ${DIST}/rtpengine-recording-daemon.links sed -i -e 's#${env:deb_systemdsystemunitdir}#/lib/systemd/system/#g' \ ${DIST}/rtpengine-daemon.links # Add dwz override cat >> ${DIST}/rules <<'EOF' override_dh_dwz: # Disable, as dwz cannot cope with some of the plugins generated. EOF # dkms stuff (see MT#56627) cp old-dkms/rtpengine-kernel-dkms.postinst "${DIST}"/ cp old-dkms/rtpengine-kernel-dkms.prerm "${DIST}"/ cp old-dkms/dkms.conf.in "${DIST}"/ rm -f "${DIST}"/rtpengine-kernel-dkms.install "${DIST}"/rtpengine-kernel-dkms.dkms sed -i '/ngcp-rtpengine source:/d' "${DIST}"/source/lintian-overrides sed -i '1n;/^Package: rtpengine-kernel-dkms/,/^Depends:/{ s/Depends:/Depends:\n dkms (>= 1.95),/;}' "${DIST}"/control sed -i '/^ dh-sequence-dkms,/d' "${DIST}"/control sed -i '/^Testsuite: autopkgtest-pkg-dkms/d' "${DIST}"/control sed -i '/^override_dh_dkms/d' "${DIST}"/rules sed -i '/dh_dkms /d' "${DIST}"/rules sed -i '/^export DEB_VERSION_UPSTREAM/d' "${DIST}"/rules sed -i '/^export DEB_SOURCE/d' "${DIST}"/rules sed -i 's;^include /usr/share/dpkg/pkg-info.mk;include /usr/share/dpkg/pkg-info.mk\ ## kernel package specific stuff\ # Name of the dkms package\ pdkms:=rtpengine-kernel-dkms\ # short upstream name, used for module source directory\ sname:=rtpengine\ # Source version\ sversion:=$(DEB_VERSION_UPSTREAM)\ ## end of kernel package specific stuff\ ;' "${DIST}"/rules sed -i 's;^override_dh_auto_install-indep:;override_dh_auto_install-indep:\ \t# Create the directories to install the source into\ \tdh_installdirs -p$(pdkms) usr/src/$(sname)-$(sversion)\ \t# Copy only the driver source to the proper locations\ \tcd kernel-module \&\& cp Makefile *.c *.h *.inc ../debian/$(pdkms)/usr/src/$(sname)-$(sversion)\ \t# Prepare dkms.conf from the dkms.conf.in template\ \tsed "s/__VERSION__/$(sversion)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(sname)-$(sversion)/dkms.conf\ ;' "${DIST}"/rules if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/jammy000077500000000000000000000041351474347554000207420ustar00rootroot00000000000000#!/bin/bash # # Target dist: Ubuntu Jammy DIST=jammy if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} # No liburing-dev >= 2.3 package sed -i -e '/liburing-dev/d' ${DIST}/control # dkms stuff (see MT#56627) cp old-dkms/rtpengine-kernel-dkms.postinst "${DIST}"/ cp old-dkms/rtpengine-kernel-dkms.prerm "${DIST}"/ cp old-dkms/dkms.conf.in "${DIST}"/ rm -f "${DIST}"/rtpengine-kernel-dkms.install "${DIST}"/rtpengine-kernel-dkms.dkms sed -i '/ngcp-rtpengine source:/d' "${DIST}"/source/lintian-overrides sed -i '1n;/^Package: rtpengine-kernel-dkms/,/^Depends:/{ s/Depends:/Depends:\n dkms (>= 1.95),/;}' "${DIST}"/control sed -i '/^ dh-sequence-dkms,/d' "${DIST}"/control sed -i '/^Testsuite: autopkgtest-pkg-dkms/d' "${DIST}"/control sed -i '/^override_dh_dkms/d' "${DIST}"/rules sed -i '/dh_dkms /d' "${DIST}"/rules sed -i '/^export DEB_VERSION_UPSTREAM/d' "${DIST}"/rules sed -i '/^export DEB_SOURCE/d' "${DIST}"/rules sed -i 's;^include /usr/share/dpkg/pkg-info.mk;include /usr/share/dpkg/pkg-info.mk\ ## kernel package specific stuff\ # Name of the dkms package\ pdkms:=rtpengine-kernel-dkms\ # short upstream name, used for module source directory\ sname:=rtpengine\ # Source version\ sversion:=$(DEB_VERSION_UPSTREAM)\ ## end of kernel package specific stuff\ ;' "${DIST}"/rules sed -i 's;^execute_before_dh_auto_install-indep:;execute_before_dh_auto_install-indep:\ \t# Create the directories to install the source into\ \tdh_installdirs -p$(pdkms) usr/src/$(sname)-$(sversion)\ \t# Copy only the driver source to the proper locations\ \tcd kernel-module \&\& cp Makefile *.c *.h *.inc ../debian/$(pdkms)/usr/src/$(sname)-$(sversion)\ \t# Prepare dkms.conf from the dkms.conf.in template\ \tsed "s/__VERSION__/$(sversion)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(sname)-$(sversion)/dkms.conf\ ;' "${DIST}"/rules if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/noble000077500000000000000000000006331474347554000207230ustar00rootroot00000000000000#!/bin/bash # # Target dist: Ubuntu Noble DIST=noble if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/sid000077500000000000000000000006271474347554000204060ustar00rootroot00000000000000#!/bin/bash # # Target dist: Debian Sid DIST=sid if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/backports/trixie000077500000000000000000000006371474347554000211340ustar00rootroot00000000000000#!/bin/bash # # Target dist: Debian Bookworm DIST=trixie if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf ${DIST} cp -r debian ${DIST} if command -v wrap-and-sort &>/dev/null ; then wrap-and-sort -sat -d ${DIST} else echo "WARN: wrap-and-sort (Debian package devscripts) not available." fi # clean backports scripts rm -rf ${DIST}/backports exit 0 rtpengine-mr12.5.1.22/pkg/deb/generator.sh000077500000000000000000000035131474347554000202330ustar00rootroot00000000000000#!/bin/bash # produces non-NGCP pkg/deb/debian from debian if [ ! -d ../../pkg/deb ] ; then echo "script needs to be executed at pkg/deb dir" >&2 exit 1 fi rm -rf debian echo "- Copying origin debian dir" cp -ra ../../debian . echo "- Copying backports scripts" cp -ra backports debian # rules echo "- Remove ngcp- prefix" find debian -maxdepth 2 -type f -exec \ sed -i -e 's/ngcp-rtpengine/rtpengine/g' \ -e 's/ngcp\\-rtpengine/rtpengine/g' {} \; ## remove same file on links while read -r file; do file_new=$(echo "${file}" | sed -e 's/ngcp-//g') while read -r line; do sed -i -e "s#${line}\$#HH#g" "${file}" done < <(awk '{print $1}' "${file}") grep -v HH "${file}" > "${file_new}" rm "${file}" done < <(find debian -name '*links') echo "- Remove NGCP packages from control" sed -i -e '/ngcp-system-tools/d' debian/control sed -i -e '/ngcp-libcodec-chain/d' debian/control echo "- Set package-specific homepage" sed -i -e 's,^Homepage:.*,Homepage: https://rtpengine.com/,' debian/control echo "- Add Conflicts with NGCP packages" # "Package: rtpengine-daemon" already has a Conflicts field. Handle it here # separately, and exclude it from the batch rewrite below. sed -i '/^Conflicts/ a \ ngcp-rtpengine-daemon,' debian/control while read -r line ; do sed -i "/${line}$/ a Conflicts: ngcp-${line#Package: }" debian/control done < <(grep '^Package:' debian/control | grep -v ' rtpengine-daemon$') echo "- Rename files" while read -r file; do file_new=$(echo "${file}" | sed -e 's/ngcp-//g') mv "${file}" "${file_new}" done < <(find debian -maxdepth 1 -type f -name 'ngcp-rtpengine*') if ! command -v wrap-and-sort &>/dev/null ; then echo "WARN: wrap-and-sort (Debian package devscripts) not available." else echo "- Remove empty Suggests" wrap-and-sort sed -i -e '/Suggests:$/d' debian/control wrap-and-sort -sat fi rtpengine-mr12.5.1.22/pkg/deb/old-dkms/000077500000000000000000000000001474347554000174165ustar00rootroot00000000000000rtpengine-mr12.5.1.22/pkg/deb/old-dkms/dkms.conf.in000066400000000000000000000005561474347554000216360ustar00rootroot00000000000000PACKAGE_NAME="rtpengine" PACKAGE_VERSION="__VERSION__" MAKE[0]="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build RTPENGINE_VERSION=\"__VERSION__\"" CLEAN="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean" AUTOINSTALL=yes BUILT_MODULE_NAME[0]="xt_RTPENGINE" DEST_MODULE_LOCATION[0]=/extra rtpengine-mr12.5.1.22/pkg/deb/old-dkms/rtpengine-kernel-dkms.postinst000077500000000000000000000021711474347554000254340ustar00rootroot00000000000000#!/bin/sh set -e package=rtpengine-kernel-dkms name=rtpengine version=$(dpkg-query -W -f="\${Version}" "$package" \ |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n") if [ -x "$(which ngcp-virt-identify)" ]; then if ngcp-virt-identify --type container; then VIRT="yes" fi fi if [ "$VIRT" = "yes" ]; then echo "Container environment detected. Skip dkms" else isadded=$(dkms status -m "$name" -v "$version") if [ -z "${isadded}" ] ; then dkms add -m "$name" -v "$version" fi if [ "$1" = 'configure' ] ; then KERNELS=$(ls /lib/modules/ 2>/dev/null || true) for kernel in $KERNELS; do if [ ! -r "/lib/modules/$kernel/build" ]; then # cannot build modules for this kernel continue fi ( dkms build -m "$name" -v "$version" -k "$kernel" && dkms install -m "$name" -v "$version" -k "$kernel" ) || true done # try to start the daemon if [ -x /etc/init.d/rtpengine-daemon ] ; then invoke-rc.d rtpengine-daemon restart || true fi fi fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/pkg/deb/old-dkms/rtpengine-kernel-dkms.prerm000077500000000000000000000011661474347554000247010ustar00rootroot00000000000000#!/bin/sh set -e package=rtpengine-kernel-dkms name=rtpengine modname=xt_RTPENGINE version=$(dpkg-query -W -f="\${Version}" "$package" \ |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n") if [ -x "$(which ngcp-virt-identify)" ]; then if ngcp-virt-identify --type container; then VIRT="yes" fi fi # make sure it's not running if [ -x /etc/init.d/rtpengine-daemon ] ; then invoke-rc.d rtpengine-daemon stop || true rmmod "$modname" 2>/dev/null || true fi if [ "$VIRT" = "yes" ]; then echo "Container environment detected. Skip dkms" else dkms remove -m "$name" -v "$version" --all || true fi #DEBHELPER# exit 0 rtpengine-mr12.5.1.22/recording-daemon/000077500000000000000000000000001474347554000176065ustar00rootroot00000000000000rtpengine-mr12.5.1.22/recording-daemon/.gitignore000066400000000000000000000005011474347554000215720ustar00rootroot00000000000000.depend *.o core core.* .ycm_extra_conf.pyc rtpengine-recording auxlib.c loglib.c rtplib.c codeclib.c resample.c str.c fix_frame_channel_layout.h socket.c streambuf.c ssllib.c dtmflib.c *-test *-test.c *.8 mvr2s_x64_avx512.S mvr2s_x64_avx2.S mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S bufferpool.c uring.c rtpengine-mr12.5.1.22/recording-daemon/.ycm_extra_conf.py000066400000000000000000000066211474347554000232430ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' # These are the compilation flags that will be used in case there's no # compilation database set. flags = [ '-g', '-Wall', '-Wstrict-prototypes', '-Wshadow', '-pthread', '-fno-strict-aliasing', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/mysql', '-I.', '-I../lib/', '-pthread', '-D_GNU_SOURCE', '-D__DEBUG=1', '-D__YCM=1', '-O2', '-fstack-protector', '--param=ssp-buffer-size=4', '-Wformat', '-Werror=format-security', '-D_FORTIFY_SOURCE=2', # THIS IS IMPORTANT! Without a "-std=" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/recording-daemon/Makefile000066400000000000000000000040071474347554000212470ustar00rootroot00000000000000TARGET= rtpengine-recording CFLAGS?= -g -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes -Werror=return-type \ -Wshadow CFLAGS+= -pthread -I. -I../lib/ -I../kernel-module/ CFLAGS+= -std=c11 -fno-strict-aliasing CFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE CFLAGS+= $(shell pkg-config --cflags glib-2.0) CFLAGS+= $(shell pkg-config --cflags gthread-2.0) CFLAGS+= $(shell pkg-config --cflags libavcodec) CFLAGS+= $(shell pkg-config --cflags libavformat) CFLAGS+= $(shell pkg-config --cflags libavutil) CFLAGS+= $(shell pkg-config --cflags libswresample) CFLAGS+= $(shell pkg-config --cflags libavfilter) CFLAGS+= $(shell pkg-config --cflags opus) CFLAGS+= $(shell mysql_config --cflags) CFLAGS+= $(shell pkg-config --cflags openssl) CFLAGS+= $(shell pkg-config --cflags libcurl) LDLIBS= -lm -ldl LDLIBS+= $(shell pkg-config --libs glib-2.0) LDLIBS+= $(shell pkg-config --libs gthread-2.0) LDLIBS+= $(shell pkg-config --libs libavcodec) LDLIBS+= $(shell pkg-config --libs libavformat) LDLIBS+= $(shell pkg-config --libs libavutil) LDLIBS+= $(shell pkg-config --libs libswresample) LDLIBS+= $(shell pkg-config --libs libavfilter) LDLIBS+= $(shell pkg-config --libs opus) LDLIBS+= $(shell mysql_config --libs) LDLIBS+= $(shell pkg-config --libs openssl) LDLIBS+= $(shell pkg-config --libs libcurl) include ../lib/g729.Makefile SRCS= epoll.c garbage.c inotify.c main.c metafile.c stream.c recaux.c packet.c \ decoder.c output.c mix.c db.c log.c forward.c tag.c poller.c notify.c LIBSRCS= loglib.c auxlib.c rtplib.c codeclib.strhash.c resample.c str.c socket.c streambuf.c ssllib.c \ dtmflib.c bufferpool.c LIBASM= mvr2s_x64_avx2.S mvr2s_x64_avx512.S mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S OBJS= $(SRCS:.c=.o) $(LIBSRCS:.c=.o) $(LIBASM:.S=.o) MDS= rtpengine-recording.ronn MANS= $(MDS:.ronn=.8) include ../lib/common.Makefile install: $(TARGET) $(MANS) install -m 0755 -D $(TARGET) $(DESTDIR)/usr/bin/$(TARGET) install -m 0644 -D $(TARGET).8 $(DESTDIR)/usr/share/man/man8/$(TARGET).8 rtpengine-mr12.5.1.22/recording-daemon/db.c000066400000000000000000000251461474347554000203470ustar00rootroot00000000000000#include "db.h" #include #include #include #include #include #include "types.h" #include "main.h" #include "log.h" #include "tag.h" #include "recaux.h" /* CREATE TABLE `recording_calls` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `call_id` varchar(250) NOT NULL, `start_timestamp` decimal(13,3) DEFAULT NULL, `end_timestamp` decimal(13,3) DEFAULT NULL, `status` enum('recording','completed','confirmed') DEFAULT 'recording', PRIMARY KEY (`id`), KEY `call_id` (`call_id`) ); CREATE TABLE `recording_streams` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `call` int(10) unsigned NOT NULL, `local_filename` varchar(250) NOT NULL, `full_filename` varchar(250) NOT NULL, `file_format` varchar(10) NOT NULL, `stream` mediumblob, `output_type` enum('mixed','single') NOT NULL, `stream_id` int(10) unsigned NOT NULL, `sample_rate` int(10) unsigned NOT NULL DEFAULT '0', `channels` int(10) unsigned NOT NULL DEFAULT '0', `ssrc` int(10) unsigned NOT NULL, `start_timestamp` decimal(13,3) DEFAULT NULL, `end_timestamp` decimal(13,3) DEFAULT NULL, `tag_label` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `call` (`call`), CONSTRAINT `fk_call_id` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE `recording_metakeys` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `call` int(10) unsigned NOT NULL, `key` char(255) NOT NULL, `value` char(255) NOT NULL, PRIMARY KEY (`id`), KEY `prim_lookup` (`value`,`key`), KEY `fk_call_idx` (`call`), CONSTRAINT `fk_call_idx` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ); */ static __thread MYSQL *mysql_conn; static __thread MYSQL_STMT *stm_insert_call, *stm_close_call, *stm_delete_call, *stm_insert_stream, *stm_close_stream, *stm_delete_stream, *stm_config_stream, *stm_insert_metadata; static void my_stmt_close(MYSQL_STMT **st) { if (!*st) return; mysql_stmt_close(*st); *st = NULL; } static void reset_conn(void) { my_stmt_close(&stm_insert_call); my_stmt_close(&stm_close_call); my_stmt_close(&stm_delete_call); my_stmt_close(&stm_insert_stream); my_stmt_close(&stm_close_stream); my_stmt_close(&stm_delete_stream); my_stmt_close(&stm_config_stream); my_stmt_close(&stm_insert_metadata); mysql_close(mysql_conn); mysql_conn = NULL; } INLINE int prep(MYSQL_STMT **st, const char *s) { *st = mysql_stmt_init(mysql_conn); if (!*st) return -1; if (mysql_stmt_prepare(*st, s, strlen(s))) { ilog(LOG_ERR, "Failed to prepare statement '%s': %s", s, mysql_stmt_error(*st)); return -1; } return 0; } static int check_conn(void) { if (mysql_conn) return 0; if (!c_mysql_host || !c_mysql_db) return -1; dbg("connecting to MySQL"); mysql_conn = mysql_init(NULL); if (!mysql_conn) goto err; if (!mysql_real_connect(mysql_conn, c_mysql_host, c_mysql_user, c_mysql_pass, c_mysql_db, c_mysql_port, NULL, CLIENT_IGNORE_SIGPIPE)) goto err; if (mysql_select_db(mysql_conn, c_mysql_db)) goto err; if (mysql_autocommit(mysql_conn, 0)) goto err; if (prep(&stm_insert_call, "insert into recording_calls (call_id, start_timestamp, " \ "`status`) " \ "values " \ "(?,?,'recording')")) goto err; if (prep(&stm_insert_stream, "insert into recording_streams (`call`, local_filename, full_filename, " \ "file_format, " \ "output_type, " \ "stream_id, ssrc, " \ "tag_label, " \ "start_timestamp) values " \ "(?,concat(?,'.',?),concat(?,'.',?),?,?,?,?,?,?)")) goto err; if (prep(&stm_close_call, "update recording_calls set " \ "end_timestamp = ?, status = 'completed' where id = ? " \ "and status != 'completed'")) goto err; if (prep(&stm_delete_call, "delete from recording_calls where id = ?")) goto err; if ((output_storage & OUTPUT_STORAGE_DB)) { if (prep(&stm_close_stream, "update recording_streams set " \ "end_timestamp = ?, stream = ? where id = ?")) goto err; } else { if (prep(&stm_close_stream, "update recording_streams set " \ "end_timestamp = ? where id = ?")) goto err; } if (prep(&stm_delete_stream, "delete from recording_streams where id = ?")) goto err; if (prep(&stm_config_stream, "update recording_streams set channels = ?, sample_rate = ? where id = ?")) goto err; if (prep(&stm_insert_metadata, "insert into recording_metakeys (`call`, `key`, `value`) values " \ "(?,?,?)")) goto err; dbg("Connection to MySQL established"); return 0; err: if (mysql_conn) { ilog(LOG_ERR, "Failed to connect to MySQL: %s", mysql_error(mysql_conn)); reset_conn(); } else ilog(LOG_ERR, "Failed to connect to MySQL: out of memory"); return -1; } INLINE void my_str_len(MYSQL_BIND *b, const char *s, unsigned int len) { *b = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_STRING, .buffer = (void *) s, .buffer_length = len, .length = &b->buffer_length, }; } INLINE void my_str(MYSQL_BIND *b, const str *s) { my_str_len(b, s->s, s->len); } INLINE void my_cstr(MYSQL_BIND *b, const char *s) { my_str_len(b, s, strlen(s)); } INLINE void my_ull(MYSQL_BIND *b, const unsigned long long *ull) { *b = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_LONGLONG, .buffer = (void *) ull, .buffer_length = sizeof(*ull), .is_unsigned = 1, }; } INLINE void my_i(MYSQL_BIND *b, const int *i) { *b = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_LONG, .buffer = (void *) i, .buffer_length = sizeof(*i), .is_unsigned = 0, }; } INLINE void my_d(MYSQL_BIND *b, const double *d) { *b = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_DOUBLE, .buffer = (void *) d, .buffer_length = sizeof(*d), .is_unsigned = 0, }; } static void execute_wrap(MYSQL_STMT **stmt, MYSQL_BIND *binds, unsigned long long *auto_id) { int retr = 0; while (1) { if (check_conn()) goto err; if (mysql_stmt_bind_param(*stmt, binds)) goto err; if (mysql_stmt_execute(*stmt)) goto err; if (auto_id) { *auto_id = mysql_insert_id(mysql_conn); if (*auto_id == 0) goto err; } if (mysql_commit(mysql_conn)) goto err; return; err: if (retr > 5) { // fatal ilog(LOG_ERR, "Failed to bind or execute prepared statement: %s", mysql_stmt_error(*stmt)); reset_conn(); return; } if (retr > 2) { reset_conn(); if (check_conn()) return; } retr++; } } static void db_do_call_id(metafile_t *mf) { if (mf->db_id > 0) return; if (!mf->call_id) return; if (mf->skip_db) return; MYSQL_BIND b[2]; my_cstr(&b[0], mf->call_id); my_d(&b[1], &mf->start_time); execute_wrap(&stm_insert_call, b, &mf->db_id); } static void db_do_call_metadata(metafile_t *mf) { if (mf->db_metadata_done) return; if (mf->db_id == 0) return; if (mf->skip_db) return; MYSQL_BIND b[3]; my_ull(&b[0], &mf->db_id); // stays persistent metadata_ht_iter iter; t_hash_table_iter_init(&iter, mf->metadata_parsed); str *key; str_q *vals; while (t_hash_table_iter_next(&iter, &key, &vals)) { for (__auto_type l = vals->head; l; l = l->next) { my_str(&b[1], key); my_str(&b[2], l->data); execute_wrap(&stm_insert_metadata, b, NULL); } } mf->db_metadata_done = 1; } void db_do_call(metafile_t *mf) { if (check_conn()) return; db_do_call_id(mf); db_do_call_metadata(mf); } // mf is locked void db_do_stream(metafile_t *mf, output_t *op, stream_t *stream, unsigned long ssrc) { if (check_conn()) return; if (mf->db_id == 0) return; if (op->db_id > 0) return; if (mf->skip_db) return; unsigned long id = stream ? stream->id : 0; MYSQL_BIND b[11]; my_ull(&b[0], &mf->db_id); my_cstr(&b[1], op->file_name); my_cstr(&b[2], op->file_format); my_cstr(&b[3], op->full_filename); my_cstr(&b[4], op->file_format); my_cstr(&b[5], op->file_format); my_cstr(&b[6], op->kind); b[7] = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_LONG, .buffer = &id, .buffer_length = sizeof(id), .is_unsigned = 1, }; b[8] = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_LONG, .buffer = &ssrc, .buffer_length = sizeof(ssrc), .is_unsigned = 1, }; if (stream && stream->tag != (unsigned long) -1) { tag_t *tag = tag_get(mf, stream->tag); my_cstr(&b[9], tag->label ? : ""); } else my_cstr(&b[9], ""); my_d(&b[10], &op->start_time); execute_wrap(&stm_insert_stream, b, &op->db_id); if (op->db_id > 0) mf->db_streams++; } void db_close_call(metafile_t *mf) { if (check_conn()) return; if (mf->db_id == 0) return; double now = now_double(); MYSQL_BIND b[2]; if (mf->db_streams > 0) { my_d(&b[0], &now); my_ull(&b[1], &mf->db_id); execute_wrap(&stm_close_call, b, NULL); } else { my_ull(&b[0], &mf->db_id); execute_wrap(&stm_delete_call, b, NULL); mf->db_id = 0; } } void db_close_stream(output_t *op) { if (check_conn()) return; if (op->db_id == 0) return; double now = now_double(); str stream; MYSQL_BIND b[3]; stream.s = 0; stream.len = 0; if ((output_storage & OUTPUT_STORAGE_DB)) { FILE *f = fopen(op->filename, "rb"); if (!f) { ilog(LOG_ERR, "Failed to open file: %s%s%s", FMT_M(op->filename)); if ((output_storage & OUTPUT_STORAGE_FILE)) goto file; return; } fseek(f, 0, SEEK_END); long pos = ftell(f); if (pos < 0) { ilog(LOG_ERR, "Failed to get file position: %s", strerror(errno)); fclose(f); if ((output_storage & OUTPUT_STORAGE_FILE)) goto file; return; } stream.len = pos; fseek(f, 0, SEEK_SET); stream.s = malloc(stream.len); if (stream.s) { size_t count = fread(stream.s, 1, stream.len, f); if (count != stream.len) { stream.len = 0; ilog(LOG_ERR, "Failed to read from stream"); fclose(f); if ((output_storage & OUTPUT_STORAGE_FILE)) goto file; free(stream.s); return; } } fclose(f); } file:; int par_idx = 0; my_d(&b[par_idx++], &now); if ((output_storage & OUTPUT_STORAGE_DB)) my_str(&b[par_idx++], &stream); my_ull(&b[par_idx++], &op->db_id); execute_wrap(&stm_close_stream, b, NULL); if (stream.s) free(stream.s); if (!(output_storage & OUTPUT_STORAGE_FILE)) if (unlink(op->filename)) ilog(LOG_ERR, "Failed to delete file '%s': %s", op->filename, strerror(errno)); } void db_delete_stream(metafile_t *mf, output_t *op) { if (check_conn()) return; if (op->db_id == 0) return; MYSQL_BIND b[1]; my_ull(&b[0], &op->db_id); execute_wrap(&stm_delete_stream, b, NULL); mf->db_streams--; } void db_config_stream(output_t *op) { if (check_conn()) return; if (op->db_id == 0) return; MYSQL_BIND b[3]; my_i(&b[0], &op->encoder->actual_format.channels); my_i(&b[1], &op->encoder->actual_format.clockrate); my_ull(&b[2], &op->db_id); execute_wrap(&stm_config_stream, b, NULL); } void db_thread_end(void) { reset_conn(); } rtpengine-mr12.5.1.22/recording-daemon/db.h000066400000000000000000000005451474347554000203500ustar00rootroot00000000000000#ifndef _DB_H_ #define _DB_H_ #include "types.h" void db_do_call(metafile_t *); void db_close_call(metafile_t *); void db_do_stream(metafile_t *mf, output_t *op, stream_t *, unsigned long ssrc); void db_close_stream(output_t *op); void db_delete_stream(metafile_t *, output_t *op); void db_config_stream(output_t *op); void db_thread_end(void); #endif rtpengine-mr12.5.1.22/recording-daemon/decoder.c000066400000000000000000000143041474347554000213610ustar00rootroot00000000000000#include "decoder.h" #include #include #include #include #include #include #include #include #include #include "types.h" #include "log.h" #include "str.h" #include "output.h" #include "mix.h" #include "resample.h" #include "codeclib.h" #include "streambuf.h" #include "main.h" #include "packet.h" #include "tag.h" int resample_audio; decode_t *decoder_new(const char *payload_str, const char *format, int ptime, output_t *outp) { char *slash = strchr(payload_str, '/'); if (!slash) { ilog(LOG_WARN, "Invalid payload format: %s", payload_str); return NULL; } str name = STR_INIT_LEN(payload_str, slash - payload_str); int clockrate = atoi(slash + 1); if (clockrate <= 0) { ilog(LOG_ERR, "Invalid clock rate %i (parsed from '%.20s'/'%.20s')", clockrate, slash + 1, payload_str); return NULL; } int channels = 1; slash = strchr(slash + 1, '/'); if (slash) { channels = atoi(slash + 1); if (!channels) channels = 1; } codec_def_t *def = codec_find(&name, MT_AUDIO); if (!def) { ilog(LOG_WARN, "No decoder for payload %s", payload_str); return NULL; } if (def->supplemental || !def->support_decoding || def->media_type != MT_AUDIO) { // not a real audio codec ilog(LOG_DEBUG, "Not decoding codec %s", payload_str); return NULL; } // decoder_new_fmt already handles the clockrate_mult scaling int rtp_clockrate = clockrate; clockrate = fraction_mult(clockrate, &def->default_clockrate_fact); // we can now config our output, which determines the sample format we convert to format_t out_format = { .clockrate = clockrate, .channels = channels, .format = -1, }; if (resample_audio) out_format.clockrate = resample_audio; // mono/stereo mixing goes here: out_format.channels = ... if (outp) { // if this output has been configured already, re-use the same format if (outp->requested_format.format != -1) out_format = outp->requested_format; output_config(outp, &out_format, &out_format); } else out_format.format = AV_SAMPLE_FMT_S16; // needed for TLS-only scenarios str fmtp = STR_INIT(format); decoder_t *dec = decoder_new_fmtp(def, rtp_clockrate, channels, ptime, &out_format, NULL, &fmtp, NULL); if (!dec) return NULL; decode_t *deco = g_slice_alloc0(sizeof(decode_t)); deco->dec = dec; deco->mixer_idx = (unsigned int) -1; return deco; } static int decoder_got_frame(decoder_t *dec, AVFrame *frame, void *sp, void *dp) { ssrc_t *ssrc = sp; metafile_t *metafile = ssrc->metafile; output_t *output = ssrc->output; stream_t *stream = ssrc->stream; decode_t *deco = dp; dbg("got frame pts %llu samples %u contents %02x%02x%02x%02x...", (unsigned long long) frame->pts, frame->nb_samples, (unsigned int) frame->extended_data[0][0], (unsigned int) frame->extended_data[0][1], (unsigned int) frame->extended_data[0][2], (unsigned int) frame->extended_data[0][3]); if (!metafile->recording_on) goto no_recording; // handle mix output pthread_mutex_lock(&metafile->mix_lock); if (metafile->mix_out) { dbg("adding packet from stream #%lu to mix output", stream->id); if (G_UNLIKELY(deco->mixer_idx == (unsigned int) -1)) deco->mixer_idx = mix_get_index(metafile->mix, ssrc, stream->media_sdp_id); format_t actual_format; if (output_config(metafile->mix_out, &dec->dest_format, &actual_format)) goto no_mix_out; mix_config(metafile->mix, &actual_format); // XXX might be a second resampling to same format AVFrame *dec_frame = resample_frame(&deco->mix_resampler, frame, &actual_format); if (!dec_frame) { pthread_mutex_unlock(&metafile->mix_lock); goto err; } if (mix_add(metafile->mix, dec_frame, deco->mixer_idx, ssrc, metafile->mix_out)) ilog(LOG_ERR, "Failed to add decoded packet to mixed output"); } no_mix_out: pthread_mutex_unlock(&metafile->mix_lock); if (output) { dbg("SSRC %lx of stream #%lu has single output", ssrc->ssrc, stream->id); if (output_config(output, &dec->dest_format, NULL)) goto err; if (output_add(output, frame)) ilog(LOG_ERR, "Failed to add decoded packet to individual output"); } no_recording: if (ssrc->tls_fwd_stream) { // XXX might be a second resampling to same format dbg("SSRC %lx of stream #%lu has TLS forwarding stream", ssrc->ssrc, stream->id); ssrc_tls_state(ssrc); // if we're in the middle of a disconnect then ssrc_tls_state may have destroyed the streambuf // so we need to skip the below to ensure we only send metadata for the new connection // once we've got a new streambuf if (!ssrc->tls_fwd_stream) goto err; AVFrame *dec_frame = resample_frame(&ssrc->tls_fwd_resampler, frame, &ssrc->tls_fwd_format); if (!ssrc->sent_intro) { tag_t *tag = NULL; if (ssrc->stream) tag = tag_get(metafile, ssrc->stream->tag); if (tag && tag->metadata) { dbg("Writing tag metadata header to TLS"); streambuf_write(ssrc->tls_fwd_stream, tag->metadata, strlen(tag->metadata) + 1); } else if (metafile->metadata) { dbg("Writing call metadata header to TLS"); streambuf_write(ssrc->tls_fwd_stream, metafile->metadata, strlen(metafile->metadata) + 1); } else { ilog(LOG_WARN, "No metadata present for forwarding connection"); streambuf_write(ssrc->tls_fwd_stream, "\0", 1); } ssrc->sent_intro = 1; } ssrc_tls_fwd_silence_frames_upto(ssrc, dec_frame, dec_frame->pts); uint64_t next_pts = dec_frame->pts + dec_frame->nb_samples; if (next_pts > ssrc->tls_in_pts) ssrc->tls_in_pts = next_pts; int linesize = av_get_bytes_per_sample(dec_frame->format) * dec_frame->nb_samples; dbg("Writing %u bytes PCM to TLS", linesize); streambuf_write(ssrc->tls_fwd_stream, (char *) dec_frame->extended_data[0], linesize); av_frame_free(&dec_frame); } av_frame_free(&frame); return 0; err: av_frame_free(&frame); return -1; } int decoder_input(decode_t *deco, const str *data, unsigned long ts, ssrc_t *ssrc) { return decoder_input_data(deco->dec, data, ts, decoder_got_frame, ssrc, deco); } void decoder_free(decode_t *deco) { if (!deco) return; decoder_close(deco->dec); resample_shutdown(&deco->mix_resampler); g_slice_free1(sizeof(*deco), deco); } rtpengine-mr12.5.1.22/recording-daemon/decoder.h000066400000000000000000000004671474347554000213730ustar00rootroot00000000000000#ifndef _DECODER_H_ #define _DECODER_H_ #include "types.h" #include "str.h" extern int resample_audio; decode_t *decoder_new(const char *payload_str, const char *format, int ptime, output_t *); int decoder_input(decode_t *, const str *, unsigned long ts, ssrc_t *); void decoder_free(decode_t *); #endif rtpengine-mr12.5.1.22/recording-daemon/epoll.c000066400000000000000000000027721474347554000210750ustar00rootroot00000000000000#include "epoll.h" #include #include #include #include #include #include "log.h" #include "main.h" #include "garbage.h" #include "db.h" static int epoll_fd = -1; void epoll_setup(void) { epoll_fd = epoll_create1(0); if (epoll_fd == -1) die_errno("epoll_create1 failed"); } int epoll_add(int fd, uint32_t events, handler_t *handler) { struct epoll_event epev = { .events = events | EPOLLET, .data = { .ptr = handler } }; int ret = epoll_ctl(epoll_fd, EPOLL_CTL_ADD, fd, &epev); return ret; } void epoll_del(int fd) { epoll_ctl(epoll_fd, EPOLL_CTL_DEL, fd, NULL); } static void poller_thread_end(void *ptr) { mysql_thread_end(); db_thread_end(); } void *poller_thread(void *ptr) { struct epoll_event epev; unsigned int me_num = GPOINTER_TO_UINT(ptr); dbg("poller thread %u running", me_num); mysql_thread_init(); thread_cleanup_push(poller_thread_end, NULL); while (!shutdown_flag) { pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); int ret = epoll_wait(epoll_fd, &epev, 1, 10000); pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); if (ret == -1) { if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) continue; die_errno("epoll_wait failed"); } if (ret > 0) { dbg("thread %u handling event", me_num); handler_t *handler = epev.data.ptr; handler->func(handler); } garbage_collect(me_num); } thread_cleanup_pop(true); return NULL; } void epoll_cleanup(void) { close(epoll_fd); } rtpengine-mr12.5.1.22/recording-daemon/epoll.h000066400000000000000000000004561474347554000210770ustar00rootroot00000000000000#ifndef _EPOLL_H_ #define _EPOLL_H_ #include #include #include #include "types.h" void epoll_setup(void); void epoll_cleanup(void); int epoll_add(int fd, uint32_t events, handler_t *handler); void epoll_del(int fd); void *poller_thread(void *ptr); #endif rtpengine-mr12.5.1.22/recording-daemon/forward.c000066400000000000000000000032251474347554000214200ustar00rootroot00000000000000#include "forward.h" #include #include #include #include #include "main.h" #include "log.h" void start_forwarding_capture(metafile_t *mf, char *meta_info) { int sock; struct sockaddr_un addr; if (mf->forward_fd >= 0) { ilog(LOG_INFO, "Connection already established"); return; } #ifdef SOCK_SEQPACKET if ((sock = socket(AF_UNIX, SOCK_SEQPACKET, 0)) == -1) { #else if ((sock = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1) { #endif ilog(LOG_ERR, "Error creating socket: %s", strerror(errno)); return; } memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; strncpy(addr.sun_path, forward_to, sizeof(addr.sun_path) - 1); if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) { ilog(LOG_ERR, "Error setting socket non-blocking: %s", strerror(errno)); goto err; } if (connect(sock, (struct sockaddr*) &addr, sizeof(addr)) == -1) { ilog(LOG_ERR, "Error connecting to socket %s : %s", addr.sun_path, strerror(errno)); goto err; } if (send(sock, meta_info, strlen(meta_info), 0) == -1) { ilog(LOG_ERR, "Error sending meta info: %s. Call will not be forwarded", strerror(errno)); goto err; } mf->forward_fd = sock; return; err: close(sock); } int forward_packet(metafile_t *mf, unsigned char *buf, unsigned len) { if (mf->forward_fd == -1) { ilog(LOG_ERR, "Trying to send packets, but connection not initialized!"); goto err; } if (send(mf->forward_fd, buf, len, 0) == -1) { if (errno == EAGAIN || errno == EWOULDBLOCK) ilog(LOG_DEBUG, "Dropping packet since call would block"); else ilog(LOG_ERR, "Error sending: %s", strerror(errno)); goto err; } return 0; err: return -1; } rtpengine-mr12.5.1.22/recording-daemon/forward.h000066400000000000000000000003131474347554000214200ustar00rootroot00000000000000#ifndef _FORWARD_H_ #define _FORWARD_H_ #include "types.h" void start_forwarding_capture(metafile_t *mf, char *meta_info); int forward_packet(metafile_t *mf, unsigned char *buf, unsigned len); #endif rtpengine-mr12.5.1.22/recording-daemon/garbage.c000066400000000000000000000046601474347554000213500ustar00rootroot00000000000000#include "garbage.h" #include #include #include "log.h" typedef struct { void *ptr; void (*free_func)(void *); int *wait_threads; unsigned int array_len; unsigned int threads_left; } garbage_t; static pthread_mutex_t garbage_lock = PTHREAD_MUTEX_INITIALIZER; static GQueue garbage = G_QUEUE_INIT; static volatile int garbage_thread_num; unsigned int garbage_new_thread_num(void) { return g_atomic_int_add(&garbage_thread_num, 1); } void garbage_add(void *ptr, free_func_t *free_func) { // Each running poller thread has a unique number associated with it, starting // with 0. A garbage entry uses an array of boolean flags, one for each running // thread, to keep track of which threads have seen this entry. Once a garbage // entry has been seen by all threads, the free function is finally called. // This is to make sure that all poller threads have left epoll_wait() after // an fd has been removed from the watch list. garbage_t *garb = g_slice_alloc(sizeof(*garb)); garb->ptr = ptr; garb->free_func = free_func; pthread_mutex_lock(&garbage_lock); garb->array_len = g_atomic_int_get(&garbage_thread_num); garb->threads_left = garb->array_len; garb->wait_threads = malloc(sizeof(int) * garb->array_len); memset(garb->wait_threads, 0, sizeof(int) * garb->array_len); g_queue_push_tail(&garbage, garb); pthread_mutex_unlock(&garbage_lock); } static void garbage_collect1(garbage_t *garb) { garb->free_func(garb->ptr); free(garb->wait_threads); g_slice_free1(sizeof(*garb), garb); } void garbage_collect(unsigned int num) { dbg("running garbage collection thread %u", num); restart: pthread_mutex_lock(&garbage_lock); for (GList *l = garbage.head; l; l = l->next) { garbage_t *garb = l->data; // has this been created before we were running? if (garb->array_len <= num) continue; // have we processed this already? if (garb->wait_threads[num]) continue; dbg("marking garbage entry %p as seen by %u with %u threads left", garb, num, garb->threads_left); garb->wait_threads[num] = 1; garb->threads_left--; // anything left? if (!garb->threads_left) { // remove from list and process g_queue_delete_link(&garbage, l); pthread_mutex_unlock(&garbage_lock); garbage_collect1(garb); goto restart; } } pthread_mutex_unlock(&garbage_lock); } void garbage_collect_all(void) { garbage_t *garb; while ((garb = g_queue_pop_head(&garbage))) garbage_collect1(garb); } rtpengine-mr12.5.1.22/recording-daemon/garbage.h000066400000000000000000000003741474347554000213530ustar00rootroot00000000000000#ifndef _GARBAGE_H_ #define _GARBAGE_H_ typedef void free_func_t(void *); unsigned int garbage_new_thread_num(void); void garbage_add(void *ptr, free_func_t *free_func); void garbage_collect(unsigned int num); void garbage_collect_all(void); #endif rtpengine-mr12.5.1.22/recording-daemon/inotify.c000066400000000000000000000033271474347554000214400ustar00rootroot00000000000000#include "inotify.h" #include #include #include #include #include #include "log.h" #include "main.h" #include "epoll.h" #include "metafile.h" static int inotify_fd = -1; static handler_func inotify_handler_func; static handler_t inotify_handler = { .func = inotify_handler_func, }; static void inotify_close_write(struct inotify_event *inev) { dbg("inotify close_write(%s%s%s)", FMT_M(inev->name)); metafile_change(inev->name); } static void inotify_delete(struct inotify_event *inev) { dbg("inotify delete(%s%s%s)", FMT_M(inev->name)); metafile_delete(inev->name); } static void inotify_handler_func(handler_t *handler) { char buf[4 * (sizeof(struct inotify_event) + NAME_MAX + 1)]; while (1) { int ret = read(inotify_fd, buf, sizeof(buf)); if (ret == -1) { if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN) break; die_errno("read on inotify fd failed"); } if (ret == 0) die("EOF on inotify fd"); char *bufend = buf + ret; char *bufhead = buf; while (bufhead < bufend) { struct inotify_event *inev = (void *) bufhead; if ((inev->mask & IN_DELETE)) inotify_delete(inev); if ((inev->mask & IN_CLOSE_WRITE)) inotify_close_write(inev); bufhead += sizeof(*inev) + inev->len; } } } void inotify_setup(void) { inotify_fd = inotify_init1(IN_NONBLOCK); if (inotify_fd == -1) die_errno("inotify_init1 failed"); int ret = inotify_add_watch(inotify_fd, spool_dir, IN_CLOSE_WRITE | IN_DELETE); if (ret == -1) die_errno("inotify_add_watch failed"); if (epoll_add(inotify_fd, EPOLLIN, &inotify_handler)) die_errno("failed to add inotify_fd to epoll"); } void inotify_cleanup(void) { close(inotify_fd); } rtpengine-mr12.5.1.22/recording-daemon/inotify.h000066400000000000000000000001471474347554000214420ustar00rootroot00000000000000#ifndef _INOTIFY_H_ #define _INOTIFY_H_ void inotify_setup(void); void inotify_cleanup(void); #endif rtpengine-mr12.5.1.22/recording-daemon/log.c000066400000000000000000000014111474347554000205300ustar00rootroot00000000000000#include "log.h" #include #include #include #include "loglib.h" __thread const char *log_info_call, *log_info_stream; __thread unsigned long log_info_ssrc; void __ilog(int prio, const char *fmt, ...) { va_list ap; char prefix[300] = ""; char *pp = prefix; char *endp = prefix + sizeof(prefix); if (log_info_call) pp += snprintf(pp, endp - pp, "[C %s%s%s] ", FMT_M(log_info_call)); if (log_info_stream) pp += snprintf(pp, endp - pp, "[S %s%s%s] ", FMT_M(log_info_stream)); if (log_info_ssrc) pp += snprintf(pp, endp - pp, "[%s0x%lx%s] ", FMT_M(log_info_ssrc)); va_start(ap, fmt); __vpilog(prio, prefix, fmt, ap); va_end(ap); } int get_local_log_level(unsigned int subsystem_idx) { return -1; } rtpengine-mr12.5.1.22/recording-daemon/log.h000066400000000000000000000007431474347554000205440ustar00rootroot00000000000000#ifndef _LOG_H_ #define _LOG_H_ #include "loglib.h" #include #include #include #include #include #define dbg(fmt, ...) ilog(LOG_DEBUG, "[%s:%i] " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define __C_DBG(x...) ilog(LOG_DEBUG, x) void __ilog(int prio, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); extern __thread const char *log_info_call, *log_info_stream; extern __thread unsigned long log_info_ssrc; #endif rtpengine-mr12.5.1.22/recording-daemon/loglevels.h000066400000000000000000000002371474347554000217550ustar00rootroot00000000000000ll(core, "Everything that isn't part of another subsystem") ll(ffmpeg, "Log messages generated by ffmpeg directly") ll(internals, "Noisy low-level internals") rtpengine-mr12.5.1.22/recording-daemon/main.c000066400000000000000000000272341474347554000207060ustar00rootroot00000000000000#include "main.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "log.h" #include "epoll.h" #include "inotify.h" #include "metafile.h" #include "mix.h" #include "garbage.h" #include "auxlib.h" #include "decoder.h" #include "output.h" #include "forward.h" #include "codeclib.h" #include "socket.h" #include "ssllib.h" #include "notify.h" int ktable = 0; int num_threads; enum output_storage_enum output_storage = OUTPUT_STORAGE_FILE; char *spool_dir = NULL; char *output_dir = NULL; static char *output_format = NULL; gboolean output_mixed; enum mix_method mix_method; int mix_num_inputs = MIX_MAX_INPUTS; gboolean output_single; gboolean output_enabled = 1; mode_t output_chmod; mode_t output_chmod_dir; uid_t output_chown = -1; gid_t output_chgrp = -1; char *output_pattern = NULL; gboolean decoding_enabled; char *c_mysql_host, *c_mysql_user, *c_mysql_pass, *c_mysql_db; int c_mysql_port; char *forward_to = NULL; static char *tls_send_to = NULL; endpoint_t tls_send_to_ep; int tls_resample = 8000; bool tls_disable = false; char *notify_uri; gboolean notify_post; gboolean notify_nverify; int notify_threads = 5; int notify_retries = 10; gboolean notify_record; gboolean notify_purge; gboolean mix_output_per_media = 0; static GQueue threads = G_QUEUE_INIT; // only accessed from main thread volatile int shutdown_flag; struct rtpengine_common_config rtpe_common_config = { .log_levels = { [log_level_index_internals] = -1, }, }; static void signals(void) { sigset_t ss; sigfillset(&ss); sigdelset(&ss, SIGABRT); sigdelset(&ss, SIGSEGV); sigdelset(&ss, SIGQUIT); sigprocmask(SIG_SETMASK, &ss, NULL); pthread_sigmask(SIG_SETMASK, &ss, NULL); } static void setup(void) { log_init("rtpengine-recording"); rtpe_ssl_init(); socket_init(); if (decoding_enabled) codeclib_init(0); if (output_enabled) output_init(output_format); mysql_library_init(0, NULL, NULL); signals(); metafile_setup(); epoll_setup(); inotify_setup(); } static void start_poller_thread(void) { pthread_attr_t att; if (pthread_attr_init(&att)) abort(); if (rtpe_common_config.thread_stack > 0) { if (pthread_attr_setstacksize(&att, rtpe_common_config.thread_stack * 1024)) { ilog(LOG_ERR, "Failed to set thread stack size to %llu", (unsigned long long) rtpe_common_config.thread_stack * 1024); abort(); } } pthread_t *thr = g_slice_alloc(sizeof(*thr)); int ret = pthread_create(thr, NULL, poller_thread, GUINT_TO_POINTER(garbage_new_thread_num())); if (ret) die_errno("pthread_create failed"); g_queue_push_tail(&threads, thr); } static void wait_threads_finish(void) { pthread_t *thr; while ((thr = g_queue_pop_head(&threads))) { pthread_cancel(*thr); pthread_join(*thr, NULL); g_slice_free1(sizeof(*thr), thr); } } static void wait_for_signal(void) { sigset_t ss; int ret, sig; sigemptyset(&ss); sigaddset(&ss, SIGINT); sigaddset(&ss, SIGTERM); while (1) { ret = sigwait(&ss, &sig); if (ret == -1) { if (errno == EAGAIN || errno == EINTR) continue; abort(); } shutdown_flag = 1; break; } } static void cleanup(void) { notify_cleanup(); garbage_collect_all(); metafile_cleanup(); inotify_cleanup(); epoll_cleanup(); mysql_library_end(); } static mode_t chmod_parse(const char *s) { if (!s || !*s) return 0; char *errp; unsigned long m = strtoul(s, &errp, 8); if (*errp || m > 077777) die("Invalid mode value '%s'", s); return m; } static void options(int *argc, char ***argv) { g_autoptr(char) os_str = NULL; g_autoptr(char) chmod_mode = NULL; g_autoptr(char) chmod_dir_mode = NULL; g_autoptr(char) user_uid = NULL; g_autoptr(char) group_gid = NULL; g_autoptr(char) mix_method_str = NULL; g_autoptr(char) tcp_send_to = NULL; GOptionEntry e[] = { { "table", 't', 0, G_OPTION_ARG_INT, &ktable, "Kernel table rtpengine uses", "INT" }, { "spool-dir", 0, 0, G_OPTION_ARG_STRING, &spool_dir, "Directory containing rtpengine metadata files", "PATH" }, { "num-threads", 0, 0, G_OPTION_ARG_INT, &num_threads, "Number of worker threads", "INT" }, { "output-storage", 0, 0, G_OPTION_ARG_STRING, &os_str, "Where to store audio streams", "file|db|both" }, { "output-dir", 0, 0, G_OPTION_ARG_STRING, &output_dir, "Where to write media files to", "PATH" }, { "output-pattern", 0, 0, G_OPTION_ARG_STRING, &output_pattern,"File name pattern for recordings", "STRING" }, { "output-format", 0, 0, G_OPTION_ARG_STRING, &output_format, "Write audio files of this type", "wav|mp3|none" }, { "resample-to", 0, 0, G_OPTION_ARG_INT, &resample_audio,"Resample all output audio", "INT" }, { "mp3-bitrate", 0, 0, G_OPTION_ARG_INT, &mp3_bitrate, "Bits per second for MP3 encoding", "INT" }, { "output-mixed", 0, 0, G_OPTION_ARG_NONE, &output_mixed, "Mix participating sources into a single output",NULL }, { "mix-method", 0, 0, G_OPTION_ARG_STRING, &mix_method_str,"How to mix multiple sources", "direct|channels"}, { "mix-num-inputs", 0, 0, G_OPTION_ARG_INT, &mix_num_inputs, "Number of channels for recordings", "INT" }, { "output-single", 0, 0, G_OPTION_ARG_NONE, &output_single, "Create one output file for each source",NULL }, { "output-chmod", 0, 0, G_OPTION_ARG_STRING, &chmod_mode, "File mode for recordings", "OCTAL" }, { "output-chmod-dir", 0, 0, G_OPTION_ARG_STRING, &chmod_dir_mode,"Directory mode for recordings", "OCTAL" }, { "output-chown", 0, 0, G_OPTION_ARG_STRING, &user_uid, "File owner for recordings", "USER|UID" }, { "output-chgrp", 0, 0, G_OPTION_ARG_STRING, &group_gid, "File group for recordings", "GROUP|GID" }, { "mysql-host", 0, 0, G_OPTION_ARG_STRING, &c_mysql_host, "MySQL host for storage of call metadata","HOST|IP" }, { "mysql-port", 0, 0, G_OPTION_ARG_INT, &c_mysql_port, "MySQL port" ,"INT" }, { "mysql-user", 0, 0, G_OPTION_ARG_STRING, &c_mysql_user, "MySQL connection credentials", "USERNAME" }, { "mysql-pass", 0, 0, G_OPTION_ARG_STRING, &c_mysql_pass, "MySQL connection credentials", "PASSWORD" }, { "mysql-db", 0, 0, G_OPTION_ARG_STRING, &c_mysql_db, "MySQL database name", "STRING" }, { "forward-to", 0, 0, G_OPTION_ARG_STRING, &forward_to, "Where to forward to (unix socket)", "PATH" }, { "tcp-send-to", 0, 0, G_OPTION_ARG_STRING, &tcp_send_to, "Where to send to (TCP destination)", "IP:PORT" }, { "tls-send-to", 0, 0, G_OPTION_ARG_STRING, &tls_send_to, "Where to send to (TLS destination)", "IP:PORT" }, { "tcp-resample", 0, 0, G_OPTION_ARG_INT, &tls_resample, "Sampling rate for TCP/TLS PCM output", "INT" }, { "tls-resample", 0, 0, G_OPTION_ARG_INT, &tls_resample, "Sampling rate for TCP/TLS PCM output", "INT" }, { "notify-uri", 0, 0, G_OPTION_ARG_STRING, ¬ify_uri, "Notify destination for finished outputs","URI" }, { "notify-post", 0, 0, G_OPTION_ARG_NONE, ¬ify_post, "Use POST instead of GET", NULL }, { "notify-no-verify", 0, 0, G_OPTION_ARG_NONE, ¬ify_nverify,"Don't verify HTTPS peer certificate", NULL }, { "notify-concurrency", 0, 0, G_OPTION_ARG_INT, ¬ify_threads,"How many simultaneous requests", "INT" }, { "notify-retries", 0, 0, G_OPTION_ARG_INT, ¬ify_retries,"How many times to retry failed requesets","INT" }, { "output-mixed-per-media",0,0, G_OPTION_ARG_NONE, &mix_output_per_media,"Mix participating sources into a single output", NULL }, #if CURL_AT_LEAST_VERSION(7,56,0) { "notify-record", 0, 0, G_OPTION_ARG_NONE, ¬ify_record, "Also attach recorded file to request", NULL }, { "notify-purge", 0, 0, G_OPTION_ARG_NONE, ¬ify_purge, "Remove the local file if notify success", NULL }, #endif { NULL, } }; config_load(argc, argv, e, " - rtpengine recording daemon", "/etc/rtpengine/rtpengine-recording.conf", "rtpengine-recording", &rtpe_common_config); // default config, if not configured if (spool_dir == NULL) spool_dir = g_strdup("/var/spool/rtpengine"); if (output_dir == NULL) output_dir = g_strdup("/var/lib/rtpengine-recording"); if (output_format == NULL) output_format = g_strdup("wav"); if (tcp_send_to) { if (tls_send_to) die("Cannot have both 'tcp-send-to' and 'tls-send-to' active at the same time"); tls_send_to = tcp_send_to; tls_disable = true; } if (tls_send_to) { if (endpoint_parse_any_getaddrinfo_full(&tls_send_to_ep, tls_send_to)) die("Failed to parse 'tcp-send-to' or 'tls-send-to' option"); } if (!strcmp(output_format, "none")) { output_enabled = 0; if (output_mixed || output_single) die("Output is disabled, but output-mixed or output-single is set"); if (!forward_to && !tls_send_to_ep.port) { //the daemon has no function die("Both output and forwarding are disabled"); } g_free(output_format); output_format = NULL; } else if (!output_mixed && !output_single) output_mixed = output_single = true; if (output_enabled || tls_send_to_ep.port) decoding_enabled = true; if (!os_str || !strcmp(os_str, "file")) output_storage = OUTPUT_STORAGE_FILE; else if (!strcmp(os_str, "db")) output_storage = OUTPUT_STORAGE_DB; else if (!strcmp(os_str, "both")) output_storage = OUTPUT_STORAGE_BOTH; else die("Invalid 'output-storage' option"); if (!mix_method_str || !mix_method_str[0] || !strcmp(mix_method_str, "direct")) mix_method = MM_DIRECT; else if (!strcmp(mix_method_str, "channels")) mix_method = MM_CHANNELS; else die("Invalid 'mix-method' option"); if (mix_num_inputs <= 0 || mix_num_inputs > MIX_MAX_INPUTS) die("Invalid mix_num_inputs value, it must be between 1 and %d", MIX_MAX_INPUTS); if ((output_storage & OUTPUT_STORAGE_FILE) && !strcmp(output_dir, spool_dir)) die("The spool-dir cannot be the same as the output-dir"); // no threads here, so safe to use the non-_r versions of these lookups if (user_uid && *user_uid) { char *errp; long uid = strtol(user_uid, &errp, 0); if (*user_uid && !*errp) output_chown = uid; else { struct passwd *pw = getpwnam(user_uid); if (!pw) die("Unknown user name '%s'", user_uid); output_chown = pw->pw_uid; } } if (group_gid && *group_gid) { char *errp; long gid = strtol(group_gid, &errp, 0); if (*group_gid && !*errp) output_chgrp = gid; else { struct group *gr = getgrnam(group_gid); if (!gr) die("Unknown group name '%s'", group_gid); output_chgrp = gr->gr_gid; } } output_chmod = chmod_parse(chmod_mode); output_chmod_dir = chmod_parse(chmod_dir_mode); if (num_threads <= 0) num_threads = num_cpu_cores(8); if (!output_pattern) output_pattern = g_strdup("%c-%r-%t"); if (!strstr(output_pattern, "%c")) die("Invalid output pattern '%s' (no '%%c' format present)", output_pattern); if (!strstr(output_pattern, "%t")) die("Invalid output pattern '%s' (no '%%t' format present)", output_pattern); } static void options_free(void) { // free config options g_free(spool_dir); g_free(output_dir); g_free(output_format); g_free(c_mysql_host); g_free(c_mysql_user); g_free(c_mysql_pass); g_free(c_mysql_db); g_free(forward_to); g_free(tls_send_to); g_free(output_pattern); // free common config options config_load_free(&rtpe_common_config); } int main(int argc, char **argv) { options(&argc, &argv); setup(); daemonize(); wpidfile(); notify_setup(); service_notify("READY=1\n"); for (int i = 0; i < num_threads; i++) start_poller_thread(); wait_for_signal(); service_notify("STOPPING=1\n"); dbg("shutting down"); wait_threads_finish(); if (decoding_enabled) codeclib_free(); cleanup(); log_free(); options_free(); } rtpengine-mr12.5.1.22/recording-daemon/main.h000066400000000000000000000024261474347554000207070ustar00rootroot00000000000000#ifndef _MAIN_H_ #define _MAIN_H_ #include "auxlib.h" #include "socket.h" #include enum output_storage_enum { OUTPUT_STORAGE_FILE = 0x1, OUTPUT_STORAGE_DB = 0x2, OUTPUT_STORAGE_BOTH = 0x3, }; enum mix_method { MM_DIRECT = 0, MM_CHANNELS, }; extern int ktable; extern int num_threads; extern enum output_storage_enum output_storage; extern char *spool_dir; extern char *output_dir; extern gboolean output_mixed; extern enum mix_method mix_method; extern int mix_num_inputs; extern gboolean output_single; extern gboolean output_enabled; extern mode_t output_chmod; extern mode_t output_chmod_dir; extern uid_t output_chown; extern gid_t output_chgrp; extern char *output_pattern; extern gboolean decoding_enabled; extern char *c_mysql_host, *c_mysql_user, *c_mysql_pass, *c_mysql_db; extern int c_mysql_port; extern char *forward_to; extern endpoint_t tls_send_to_ep; extern int tls_resample; extern bool tls_disable; extern char *notify_uri; extern gboolean notify_post; extern gboolean notify_nverify; extern int notify_threads; extern int notify_retries; extern gboolean notify_record; extern gboolean notify_purge; extern gboolean mix_output_per_media; extern volatile int shutdown_flag; extern struct rtpengine_common_config rtpe_common_config; #endif rtpengine-mr12.5.1.22/recording-daemon/metafile.c000066400000000000000000000307141474347554000215450ustar00rootroot00000000000000#include "metafile.h" #include #include #include #include #include #include #include #include "log.h" #include "stream.h" #include "garbage.h" #include "main.h" #include "recaux.h" #include "packet.h" #include "output.h" #include "mix.h" #include "db.h" #include "forward.h" #include "tag.h" static pthread_mutex_t metafiles_lock = PTHREAD_MUTEX_INITIALIZER; static GHashTable *metafiles; static void meta_free(void *ptr) { metafile_t *mf = ptr; dbg("freeing metafile info for %s%s%s", FMT_M(mf->name)); output_close(mf, mf->mix_out, NULL, mf->discard); mix_destroy(mf->mix); db_close_call(mf); g_string_chunk_free(mf->gsc); // SSRCs first as they have linked outputs which need to be closed first g_clear_pointer(&mf->ssrc_hash, g_hash_table_destroy); for (int i = 0; i < mf->streams->len; i++) { stream_t *stream = g_ptr_array_index(mf->streams, i); if (!stream) continue; stream_close(stream); // should be closed already stream_free(stream); } for (int i = 0; i < mf->tags->len; i++) { tag_t *tag = g_ptr_array_index(mf->tags, i); tag_free(tag); } t_hash_table_destroy(mf->metadata_parsed); g_ptr_array_free(mf->tags, TRUE); g_ptr_array_free(mf->streams, TRUE); g_slice_free1(sizeof(*mf), mf); } static void meta_close_ssrcs(gpointer key, gpointer value, gpointer user_data) { ssrc_t *s = value; pthread_mutex_lock(&s->lock); ssrc_close(s); pthread_mutex_unlock(&s->lock); } // mf is locked static void meta_destroy(metafile_t *mf) { // close all streams for (int i = 0; i < mf->streams->len; i++) { stream_t *stream = g_ptr_array_index(mf->streams, i); if (!stream) continue; pthread_mutex_lock(&stream->lock); stream_close(stream); pthread_mutex_unlock(&stream->lock); } //close forward socket if (mf->forward_fd >= 0) { dbg("call [%s%s%s] forwarded %d packets. %d failed sends.", FMT_M(mf->call_id), (int )g_atomic_int_get(&mf->forward_count), (int )g_atomic_int_get(&mf->forward_failed)); close(mf->forward_fd); mf->forward_fd = -1; } // shut down SSRCs, which closes TLS connections if (mf->ssrc_hash) { g_hash_table_foreach(mf->ssrc_hash, meta_close_ssrcs, NULL); g_hash_table_destroy(mf->ssrc_hash); mf->ssrc_hash = NULL; } db_close_call(mf); } // mf is locked static void meta_stream_interface(metafile_t *mf, unsigned long snum, char *content) { db_do_call(mf); if (output_enabled && output_mixed && mf->recording_on) { pthread_mutex_lock(&mf->mix_lock); if (!mf->mix) { mf->mix_out = output_new_ext(mf, "mix", "mixed", "mix"); if (mix_method == MM_CHANNELS) mf->mix_out->channel_mult = mix_num_inputs; mf->mix = mix_new(); db_do_stream(mf, mf->mix_out, NULL, 0); } pthread_mutex_unlock(&mf->mix_lock); } dbg("stream %lu interface %s%s%s", snum, FMT_M(content)); stream_open(mf, snum, content); } // mf is locked static void meta_stream_details(metafile_t *mf, unsigned long snum, char *content) { dbg("stream %lu details %s", snum, content); unsigned int tag, media, tm, cmp, media_sdp_id; uint64_t flags; if (sscanf_match(content, "TAG %u MEDIA %u TAG-MEDIA %u COMPONENT %u FLAGS %" PRIu64 " MEDIA-SDP-ID %i", &tag, &media, &tm, &cmp, &flags, &media_sdp_id) != 6) return; stream_details(mf, snum, tag, media_sdp_id); } // mf is locked static void meta_rtp_payload_type(metafile_t *mf, unsigned long mnum, unsigned int payload_num, char *payload_type) { dbg("payload type in media %lu num %u is %s", mnum, payload_num, payload_type); int ptime = 0; mnum--; if (mnum < G_N_ELEMENTS(mf->media_ptimes)) ptime = mf->media_ptimes[mnum]; if (payload_num >= 128) { ilog(LOG_ERR, "Payload type number %u is invalid", payload_num); return; } if (decoding_enabled) { pthread_mutex_lock(&mf->payloads_lock); mf->payload_types[payload_num] = g_string_chunk_insert(mf->gsc, payload_type); mf->payload_ptimes[payload_num] = ptime; pthread_mutex_unlock(&mf->payloads_lock); } } // mf is locked static void meta_rtp_fmtp(metafile_t *mf, unsigned long mnum, unsigned int payload_num, char *format) { if (payload_num >= 128) { ilog(LOG_ERR, "Payload type number %u is invalid", payload_num); return; } if (decoding_enabled) { pthread_mutex_lock(&mf->payloads_lock); mf->payload_formats[payload_num] = g_string_chunk_insert(mf->gsc, format); pthread_mutex_unlock(&mf->payloads_lock); } } // mf is locked static void meta_ptime(metafile_t *mf, unsigned long mnum, int ptime) { mnum--; if (mnum >= G_N_ELEMENTS(mf->media_ptimes)) return; mf->media_ptimes[mnum] = ptime; } // mf is locked // updates the contents, does not remove previously set entries static void meta_metadata_parse(metafile_t *mf) { // XXX offload this parsing to proxy module -> bencode list/dictionary t_hash_table_remove_all(mf->metadata_parsed); str all_meta = STR_INIT(mf->metadata); while (all_meta.len > 1) { str token; if (!str_token_sep(&token, &all_meta, '|')) break; str key; if (!str_token(&key, &token, ':')) { // key:value separator not found, skip continue; } str_q *q = t_hash_table_lookup(mf->metadata_parsed, &key); if (!q) { q = str_q_new(); t_hash_table_replace(mf->metadata_parsed, str_dup(&key), q); } t_queue_push_tail(q, str_dup(&token)); } } // mf is locked static void meta_metadata(metafile_t *mf, char *content) { mf->metadata = g_string_chunk_insert(mf->gsc, content); meta_metadata_parse(mf); db_do_call(mf); if (forward_to) start_forwarding_capture(mf, content); } // mf is locked static void meta_section(metafile_t *mf, char *section, char *content, unsigned long len) { unsigned long lu; unsigned int u; int i; if (!strcmp(section, "CALL-ID")) mf->call_id = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "PARENT")) mf->parent = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "RANDOM_TAG")) mf->random_tag = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "METADATA")) if (mf->forward_fd >= 0) { ilog(LOG_INFO, "Connection already established, sending mid-call metadata %.*s", (int)len, content); if (send(mf->forward_fd, content, len, 0) == -1) { ilog(LOG_ERR, "Error sending mid-call metadata: %s.", strerror(errno)); } } else { meta_metadata(mf, content); } else if (sscanf_match(section, "STREAM %lu interface", &lu) == 1) meta_stream_interface(mf, lu, content); else if (sscanf_match(section, "STREAM %lu details", &lu) == 1) meta_stream_details(mf, lu, content); else if (sscanf_match(section, "MEDIA %lu PAYLOAD TYPE %u", &lu, &u) == 2) meta_rtp_payload_type(mf, lu, u, content); else if (sscanf_match(section, "MEDIA %lu FMTP %u", &lu, &u) == 2) meta_rtp_fmtp(mf, lu, u, content); else if (sscanf_match(section, "MEDIA %lu PTIME %i", &lu, &i) == 2) meta_ptime(mf, lu, i); else if (sscanf_match(section, "TAG %lu", &lu) == 1) tag_name(mf, lu, content); else if (sscanf_match(section, "METADATA-TAG %lu", &lu) == 1) tag_metadata(mf, lu, content); else if (sscanf_match(section, "LABEL %lu", &lu) == 1) tag_label(mf, lu, content); else if (sscanf_match(section, "RECORDING %u", &u) == 1) mf->recording_on = u ? 1 : 0; else if (sscanf_match(section, "FORWARDING %u", &u) == 1) mf->forwarding_on = u ? 1 : 0; else if (sscanf_match(section, "STREAM %lu FORWARDING %u", &lu, &u) == 2) stream_forwarding_on(mf, lu, u); else if (!strcmp(section, "RECORDING_FILE")) mf->output_dest = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "RECORDING_PATH")) mf->output_path = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "RECORDING_PATTERN")) mf->output_pattern = g_string_chunk_insert(mf->gsc, content); else if (!strcmp(section, "SKIP_DATABASE")) mf->skip_db = 1; } // returns mf locked static metafile_t *metafile_get(char *name) { // get or create metafile metadata pthread_mutex_lock(&metafiles_lock); metafile_t *mf = g_hash_table_lookup(metafiles, name); if (mf) goto out; ilog(LOG_INFO, "New call for recording: '%s%s%s'", FMT_M(name)); mf = g_slice_alloc0(sizeof(*mf)); mf->gsc = g_string_chunk_new(0); mf->name = g_string_chunk_insert(mf->gsc, name); pthread_mutex_init(&mf->lock, NULL); mf->streams = g_ptr_array_new(); mf->tags = g_ptr_array_new(); mf->forward_fd = -1; mf->forward_count = 0; mf->forward_failed = 0; mf->recording_on = 1; mf->start_time = now_double(); mf->metadata_parsed = metadata_ht_new(); if (decoding_enabled) { pthread_mutex_init(&mf->payloads_lock, NULL); pthread_mutex_init(&mf->mix_lock, NULL); mf->ssrc_hash = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, ssrc_free); } g_hash_table_insert(metafiles, mf->name, mf); out: // switch locks pthread_mutex_lock(&mf->lock); pthread_mutex_unlock(&metafiles_lock); return mf; } void metafile_change(char *name) { metafile_t *mf = metafile_get(name); char fnbuf[PATH_MAX]; snprintf(fnbuf, sizeof(fnbuf), "%s/%s", spool_dir, name); // open file and seek to last known position int fd = open(fnbuf, O_RDONLY); if (fd == -1) { ilog(LOG_ERR, "Failed to open %s%s%s: %s", FMT_M(fnbuf), strerror(errno)); goto out; } if (lseek(fd, mf->pos, SEEK_SET) == (off_t) -1) { ilog(LOG_ERR, "Failed to seek to end of file %s%s%s: %s", FMT_M(fnbuf), strerror(errno)); close(fd); goto out; } // read the entire file GString *s = g_string_new(NULL); char buf[1024]; while (1) { int ret = read(fd, buf, sizeof(buf)); if (ret == 0) break; if (ret == -1) die_errno("read on metadata file failed"); g_string_append_len(s, buf, ret); } // save read position and close file mf->pos = lseek(fd, 0, SEEK_CUR); close(fd); // process contents of metadata file // XXX use "str" type? char *head = s->str; char *endp = s->str + s->len; while (head < endp) { // section header char *nl = memchr(head, '\n', endp - head); if (!nl || nl == head) { ilog(LOG_WARN, "Missing section header in %s%s%s", FMT_M(name)); break; } if (memchr(head, '\0', nl - head)) { ilog(LOG_WARN, "NUL character in section header in %s%s%s", FMT_M(name)); break; } *(nl++) = '\0'; char *section = head; dbg("section %s", section); head = nl; // content length nl = memchr(head, ':', endp - head); if (!nl || nl == head) { ilog(LOG_WARN, "Content length for section %s missing in %s%s%s", section, FMT_M(name)); break; } *(nl++) = '\0'; if (*(nl++) != '\n') { ilog(LOG_WARN, "Unterminated content length for section %s in %s%s%s", section, FMT_M(name)); break; } char *errp; unsigned long slen = strtoul(head, &errp, 10); if (*errp != '\0') { ilog(LOG_WARN, "Invalid content length for section %s in %s%s%s", section, FMT_M(name)); break; } dbg("content length %lu", slen); head = nl; // content if (endp - head < slen) { ilog(LOG_WARN, "Content truncated in section %s in %s%s%s", section, FMT_M(name)); break; } char *content = head; if (memchr(content, '\0', slen)) { ilog(LOG_WARN, "NUL character in content in section %s in %s%s%s", section, FMT_M(name)); break; } // double newline separator head += slen; if (*head != '\n' || *(head + 1) != '\n') { ilog(LOG_WARN, "Separator missing after section %s in %s%s%s", section, FMT_M(name)); break; } *head = '\0'; head += 2; meta_section(mf, section, content, slen); } g_string_free(s, TRUE); out: pthread_mutex_unlock(&mf->lock); } void metafile_delete(char *name) { // get metafile metadata pthread_mutex_lock(&metafiles_lock); metafile_t *mf = g_hash_table_lookup(metafiles, name); if (!mf) { // has it been renamed? size_t len = strlen(name); char *suffix = name + len - strlen(".DISCARD"); if (suffix > name && strcmp(suffix, ".DISCARD") == 0) { *suffix = '\0'; mf = g_hash_table_lookup(metafiles, name); if (mf) mf->discard = 1; *suffix = '.'; } if (!mf) { // nothing to do pthread_mutex_unlock(&metafiles_lock); return; } } // switch locks and remove entry pthread_mutex_lock(&mf->lock); g_hash_table_remove(metafiles, mf->name); pthread_mutex_unlock(&metafiles_lock); ilog(LOG_INFO, "Recording for call '%s%s%s' finished", FMT_M(mf->name)); meta_destroy(mf); // add to garbage garbage_add(mf, meta_free); pthread_mutex_unlock(&mf->lock); } void metafile_setup(void) { metafiles = g_hash_table_new(g_str_hash, g_str_equal); } void metafile_cleanup(void) { GList *mflist = g_hash_table_get_values(metafiles); for (GList *l = mflist; l; l = l->next) { metafile_t *mf = l->data; meta_destroy(mf); meta_free(mf); } g_list_free(mflist); g_hash_table_destroy(metafiles); } rtpengine-mr12.5.1.22/recording-daemon/metafile.h000066400000000000000000000003041474347554000215420ustar00rootroot00000000000000#ifndef _METAFILE_H_ #define _METAFILE_H_ #include "types.h" void metafile_setup(void); void metafile_cleanup(void); void metafile_change(char *name); void metafile_delete(char *name); #endif rtpengine-mr12.5.1.22/recording-daemon/mix.c000066400000000000000000000235631474347554000205600ustar00rootroot00000000000000#include "mix.h" #include #include #include #include #include #include #include #include #include #include "types.h" #include "log.h" #include "output.h" #include "resample.h" #include "main.h" #include "fix_frame_channel_layout.h" struct mix_s { format_t in_format, out_format; // TODO: use mix_buffer AVFilterGraph *graph; AVFilterContext *src_ctxs[MIX_MAX_INPUTS]; uint64_t pts_offs[MIX_MAX_INPUTS]; // initialized at first input seen uint64_t in_pts[MIX_MAX_INPUTS]; // running counter of next expected adjusted pts struct timeval last_use[MIX_MAX_INPUTS]; // to recycle old mix inputs void *input_ref[MIX_MAX_INPUTS]; // to avoid collisions in case of idx re-use CH_LAYOUT_T channel_layout[MIX_MAX_INPUTS]; AVFilterContext *amix_ctx; AVFilterContext *sink_ctx; unsigned int next_idx; AVFrame *sink_frame; resample_t resample; uint64_t out_pts; // starting at zero AVFrame *silence_frame; }; static void mix_shutdown(mix_t *mix) { if (mix->amix_ctx) avfilter_free(mix->amix_ctx); mix->amix_ctx = NULL; if (mix->sink_ctx) avfilter_free(mix->sink_ctx); mix->sink_ctx = NULL; for (unsigned int i = 0; i < mix_num_inputs; i++) { if (mix->src_ctxs[i]) avfilter_free(mix->src_ctxs[i]); mix->src_ctxs[i] = NULL; } resample_shutdown(&mix->resample); avfilter_graph_free(&mix->graph); format_init(&mix->in_format); format_init(&mix->out_format); } void mix_destroy(mix_t *mix) { if (!mix) return; mix_shutdown(mix); av_frame_free(&mix->sink_frame); av_frame_free(&mix->silence_frame); g_slice_free1(sizeof(*mix), mix); } static void mix_input_reset(mix_t *mix, unsigned int idx) { mix->pts_offs[idx] = (uint64_t) -1LL; ZERO(mix->last_use[idx]); mix->input_ref[idx] = NULL; mix->in_pts[idx] = 0; } unsigned int mix_get_index(mix_t *mix, void *ptr, unsigned int media_sdp_id) { unsigned int next = mix->next_idx++; if (mix_output_per_media) { next = media_sdp_id; if (next >= mix_num_inputs) { ilog(LOG_WARNING, "Error with mix_output_per_media sdp_label next %i is bigger than mix_num_inputs %i", next, mix_num_inputs ); } } if (next < mix_num_inputs) { // must be unused mix->input_ref[next] = ptr; return next; } // too many inputs - find one to re-use struct timeval earliest = {0,}; next = 0; for (unsigned int i = 0; i < mix_num_inputs; i++) { if (earliest.tv_sec == 0 || timeval_cmp(&earliest, &mix->last_use[i]) > 0) { next = i; earliest = mix->last_use[i]; } } ilog(LOG_DEBUG, "Re-using mix input index #%u", next); mix_input_reset(mix, next); mix->input_ref[next] = ptr; return next; } int mix_config(mix_t *mix, const format_t *format) { const char *err; char args[512]; if (format_eq(format, &mix->in_format)) return 0; mix_shutdown(mix); mix->in_format = *format; // filter graph err = "failed to alloc filter graph"; mix->graph = avfilter_graph_alloc(); if (!mix->graph) goto err; mix->graph->nb_threads = 1; mix->graph->thread_type = 0; // amix err = "no amix/amerge filter available"; const AVFilter *flt = NULL; if (mix_method == MM_DIRECT) flt = avfilter_get_by_name("amix"); else if (mix_method == MM_CHANNELS) flt = avfilter_get_by_name("amerge"); if (!flt) goto err; snprintf(args, sizeof(args), "inputs=%lu", (unsigned long) mix_num_inputs); err = "failed to create amix/amerge filter context"; if (avfilter_graph_create_filter(&mix->amix_ctx, flt, NULL, args, NULL, mix->graph)) goto err; // inputs err = "no abuffer filter available"; flt = avfilter_get_by_name("abuffer"); if (!flt) goto err; CH_LAYOUT_T channel_layout, ext_layout; DEF_CH_LAYOUT(&channel_layout, mix->in_format.channels); DEF_CH_LAYOUT(&ext_layout, mix->in_format.channels * mix_num_inputs); for (unsigned int i = 0; i < mix_num_inputs; i++) { dbg("init input ctx %i", i); CH_LAYOUT_T ch_layout = channel_layout; if (mix_method == MM_CHANNELS) { uint64_t mask = 0; for (int ch = 0; ch < mix->in_format.channels; ch++) { mask |= CH_LAYOUT_EXTRACT_MASK(ext_layout, i * mix->in_format.channels + ch); } CH_LAYOUT_FROM_MASK(&ch_layout, mask); } char chlayoutbuf[64]; CH_LAYOUT_PRINT(ch_layout, chlayoutbuf); snprintf(args, sizeof(args), "time_base=%d/%d:sample_rate=%d:sample_fmt=%s:" "channel_layout=%s", 1, mix->in_format.clockrate, mix->in_format.clockrate, av_get_sample_fmt_name(mix->in_format.format), chlayoutbuf); mix->channel_layout[i] = ch_layout; err = "failed to create abuffer filter context"; if (avfilter_graph_create_filter(&mix->src_ctxs[i], flt, NULL, args, NULL, mix->graph)) goto err; err = "failed to link abuffer to amix"; if (avfilter_link(mix->src_ctxs[i], 0, mix->amix_ctx, i)) goto err; } // sink err = "no abuffersink filter available"; flt = avfilter_get_by_name("abuffersink"); if (!flt) goto err; err = "failed to create abuffersink filter context"; if (avfilter_graph_create_filter(&mix->sink_ctx, flt, NULL, NULL, NULL, mix->graph)) goto err; err = "failed to link amix to abuffersink"; if (avfilter_link(mix->amix_ctx, 0, mix->sink_ctx, 0)) goto err; // finish up err = "failed to configure filter chain"; if (avfilter_graph_config(mix->graph, NULL)) goto err; mix->out_format = mix->in_format; if (mix_method == MM_CHANNELS) mix->out_format.channels *= mix_num_inputs; return 0; err: mix_shutdown(mix); ilog(LOG_ERR, "Failed to initialize mixer: %s", err); return -1; } mix_t *mix_new(void) { mix_t *mix = g_slice_alloc0(sizeof(*mix)); format_init(&mix->in_format); format_init(&mix->out_format); mix->sink_frame = av_frame_alloc(); for (unsigned int i = 0; i < mix_num_inputs; i++) mix->pts_offs[i] = (uint64_t) -1LL; return mix; } static void mix_silence_fill_idx_upto(mix_t *mix, unsigned int idx, uint64_t upto) { unsigned int silence_samples = mix->in_format.clockrate / 100; while (mix->in_pts[idx] < upto) { if (G_UNLIKELY(upto - mix->in_pts[idx] > mix->in_format.clockrate * 30)) { ilog(LOG_WARN, "More than 30 seconds of silence needed to fill mix buffer, resetting"); mix->in_pts[idx] = upto; break; } if (G_UNLIKELY(!mix->silence_frame)) { mix->silence_frame = av_frame_alloc(); mix->silence_frame->format = mix->in_format.format; DEF_CH_LAYOUT(&mix->silence_frame->CH_LAYOUT, mix->in_format.channels); mix->silence_frame->nb_samples = silence_samples; mix->silence_frame->sample_rate = mix->in_format.clockrate; if (av_frame_get_buffer(mix->silence_frame, 0) < 0) { ilog(LOG_ERR, "Failed to get silence frame buffers"); return; } int planes = av_sample_fmt_is_planar(mix->silence_frame->format) ? mix->in_format.channels : 1; for (int i = 0; i < planes; i++) memset(mix->silence_frame->extended_data[i], 0, mix->silence_frame->linesize[0]); } dbg("pushing silence frame into stream %i (%lli < %llu)", idx, (long long unsigned) mix->in_pts[idx], (long long unsigned) upto); mix->silence_frame->pts = mix->in_pts[idx]; mix->silence_frame->nb_samples = MIN(silence_samples, upto - mix->in_pts[idx]); mix->in_pts[idx] += mix->silence_frame->nb_samples; mix->silence_frame->CH_LAYOUT = mix->channel_layout[idx]; if (av_buffersrc_write_frame(mix->src_ctxs[idx], mix->silence_frame)) ilog(LOG_WARN, "Failed to write silence frame to buffer"); } } static void mix_silence_fill(mix_t *mix) { if (mix->out_pts < mix->in_format.clockrate) return; for (unsigned int i = 0; i < mix_num_inputs; i++) { // check the pts of each input and give them max 0.5 second of delay. // if they fall behind too much, fill input with silence. otherwise // output stalls and won't produce media mix_silence_fill_idx_upto(mix, i, mix->out_pts - mix->in_format.clockrate / 2); } } int mix_add(mix_t *mix, AVFrame *frame, unsigned int idx, void *ptr, output_t *output) { const char *err; err = "index out of range"; if (idx >= mix_num_inputs) goto err; err = "mixer not initialized"; if (!mix->src_ctxs[idx]) goto err; err = "received samples for old re-used input channel"; if (ptr != mix->input_ref[idx]) goto err; gettimeofday(&mix->last_use[idx], NULL); dbg("stream %i pts_off %llu in pts %llu in frame pts %llu samples %u mix out pts %llu", idx, (unsigned long long) mix->pts_offs[idx], (unsigned long long) mix->in_pts[idx], (unsigned long long) frame->pts, frame->nb_samples, (unsigned long long) mix->out_pts); // adjust for media started late if (G_UNLIKELY(mix->pts_offs[idx] == (uint64_t) -1LL)) mix->pts_offs[idx] = mix->out_pts - frame->pts; frame->pts += mix->pts_offs[idx]; // fill missing time mix_silence_fill_idx_upto(mix, idx, frame->pts); // check for pts gap. this is the opposite of silence fill-in. if the frame // pts is behind the expected input pts, there was a gap and we reset our // pts adjustment if (G_UNLIKELY(frame->pts < mix->in_pts[idx])) mix->pts_offs[idx] += mix->in_pts[idx] - frame->pts; uint64_t next_pts = frame->pts + frame->nb_samples; frame->CH_LAYOUT = mix->channel_layout[idx]; err = "failed to add frame to mixer"; if (av_buffersrc_add_frame(mix->src_ctxs[idx], frame)) goto err; // update running counters if (next_pts > mix->out_pts) mix->out_pts = next_pts; if (next_pts > mix->in_pts[idx]) mix->in_pts[idx] = next_pts; av_frame_free(&frame); mix_silence_fill(mix); while (1) { int ret = av_buffersink_get_frame(mix->sink_ctx, mix->sink_frame); err = "failed to get frame from mixer"; if (ret < 0) { if (ret == AVERROR(EAGAIN)) break; else goto err; } frame = resample_frame(&mix->resample, mix->sink_frame, &mix->out_format); ret = output_add(output, frame); av_frame_unref(mix->sink_frame); av_frame_free(&frame); if (ret) return -1; } return 0; err: ilog(LOG_ERR, "Failed to add frame to mixer: %s", err); av_frame_free(&frame); return -1; } rtpengine-mr12.5.1.22/recording-daemon/mix.h000066400000000000000000000005511474347554000205550ustar00rootroot00000000000000#ifndef _MIX_H_ #define _MIX_H_ #include "types.h" #include #define MIX_MAX_INPUTS 4 mix_t *mix_new(void); void mix_destroy(mix_t *mix); int mix_config(mix_t *, const format_t *format); int mix_add(mix_t *mix, AVFrame *frame, unsigned int idx, void *, output_t *output); unsigned int mix_get_index(mix_t *, void *, unsigned int); #endif rtpengine-mr12.5.1.22/recording-daemon/notify.c000066400000000000000000000214611474347554000212660ustar00rootroot00000000000000#include "notify.h" #include #include #include "main.h" #include "log.h" #include "recaux.h" struct notif_req { char *name; // just for logging struct curl_slist *headers; char *full_filename_path; time_t retry_time; unsigned int retries; unsigned int falloff; }; static GThreadPool *notify_threadpool; static pthread_mutex_t timer_lock = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t timer_cond = PTHREAD_COND_INITIALIZER; static pthread_t notify_waiter; static GTree *notify_timers; static size_t dummy_write(char *ptr, size_t size, size_t nmemb, void *userdata) { return size * nmemb; } static size_t dummy_read(char *ptr, size_t size, size_t nmemb, void *userdata) { return 0; } static void do_notify(void *p, void *u) { struct notif_req *req = p; const char *err = NULL; CURLcode ret; ilog(LOG_DEBUG, "Launching HTTP notification for '%s%s%s'", FMT_M(req->name)); /* set up the CURL request */ #if CURL_AT_LEAST_VERSION(7,56,0) curl_mime *mime = NULL; #endif CURL *c = curl_easy_init(); if (!c) goto fail; err = "setting CURLOPT_URL"; if ((ret = curl_easy_setopt(c, CURLOPT_URL, notify_uri)) != CURLE_OK) goto fail; /* no output */ err = "setting CURLOPT_WRITEFUNCTION"; if ((ret = curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, dummy_write)) != CURLE_OK) goto fail; /* no input */ err = "setting CURLOPT_READFUNCTION"; if ((ret = curl_easy_setopt(c, CURLOPT_READFUNCTION, dummy_read)) != CURLE_OK) goto fail; /* allow redirects */ err = "setting CURLOPT_FOLLOWLOCATION"; if ((ret = curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1)) != CURLE_OK) goto fail; /* max 5 redirects */ err = "setting CURLOPT_MAXREDIRS"; if ((ret = curl_easy_setopt(c, CURLOPT_MAXREDIRS, 5)) != CURLE_OK) goto fail; /* add headers */ err = "setting CURLOPT_HTTPHEADER"; if ((ret = curl_easy_setopt(c, CURLOPT_HTTPHEADER, req->headers)) != CURLE_OK) goto fail; /* POST vs GET */ if (notify_post) { err = "setting CURLOPT_POST"; if ((ret = curl_easy_setopt(c, CURLOPT_POST, 1)) != CURLE_OK) goto fail; } /* cert verify (enabled by default) */ if (notify_nverify) { err = "setting CURLOPT_SSL_VERIFYPEER"; if ((ret = curl_easy_setopt(c, CURLOPT_SSL_VERIFYPEER, 0)) != CURLE_OK) goto fail; } #if CURL_AT_LEAST_VERSION(7,56,0) if (notify_record) { err = "initializing curl mime&part"; curl_mimepart *part; mime = curl_mime_init(c); part = curl_mime_addpart(mime); if ((ret = curl_mime_name(part, "ngfile")) != CURLE_OK) goto fail; if ((ret = curl_mime_filedata(part, req->full_filename_path)) != CURLE_OK) goto fail; if ((ret = curl_easy_setopt(c, CURLOPT_MIMEPOST, mime)) != CURLE_OK) goto fail; } #endif err = "performing request"; if ((ret = curl_easy_perform(c)) != CURLE_OK) goto fail; long code; err = "getting CURLINFO_RESPONSE_CODE"; if ((ret = curl_easy_getinfo(c, CURLINFO_RESPONSE_CODE, &code)) != CURLE_OK) goto fail; err = "checking response code (not 2xx)"; if (code < 200 || code >= 300) goto fail; /* success */ ilog(LOG_NOTICE, "HTTP notification for '%s%s%s' was successful", FMT_M(req->name)); if (notify_record && notify_purge) { if (unlink(req->full_filename_path) == 0) ilog(LOG_NOTICE, "File '%s%s%s' deleted successfully.", FMT_M(req->full_filename_path)); else ilog(LOG_ERR, "File '%s%s%s' could not be deleted.", FMT_M(req->full_filename_path)); } goto cleanup; fail: if (c) curl_easy_cleanup(c); if (notify_retries >= 0 && req->retries < notify_retries) { /* schedule retry */ req->retries++; if (c) ilog(LOG_DEBUG, "Failed to perform HTTP notification for '%s%s%s': " "Error while %s: %s. Will retry in %u seconds (#%u)", FMT_M(req->name), err, curl_easy_strerror(ret), req->falloff, req->retries); else ilog(LOG_DEBUG, "Failed to perform HTTP notification for '%s%s%s': " "Failed to create CURL object. Will retry in %u seconds (#%u)", FMT_M(req->name), req->falloff, req->retries); req->retry_time = time(NULL) + req->falloff; req->falloff *= 2; pthread_mutex_lock(&timer_lock); g_tree_insert(notify_timers, req, req); pthread_cond_signal(&timer_cond); pthread_mutex_unlock(&timer_lock); return; } if (c) ilog(LOG_ERR, "Failed to perform HTTP notification for '%s%s%s' after %u retries: " "Error while %s: %s", FMT_M(req->name), req->retries, err, curl_easy_strerror(ret)); else ilog(LOG_ERR, "Failed to perform HTTP notification for '%s%s%s' after %u retries: " "Failed to create CURL object", FMT_M(req->name), req->retries); c = NULL; goto cleanup; cleanup: if (c) curl_easy_cleanup(c); #if CURL_AT_LEAST_VERSION(7,56,0) if (mime) curl_mime_free(mime); #endif curl_slist_free_all(req->headers); g_free(req->name); g_free(req->full_filename_path); g_slice_free1(sizeof(*req), req); } static void *notify_timer(void *p) { pthread_mutex_lock(&timer_lock); // notify_timers being NULL acts as our shutdown flag while (notify_timers) { ilog(LOG_DEBUG, "HTTP notification timer thread looping"); // grab first entry in list, check retry time, sleep if it's in the future struct notif_req *first = g_tree_find_first(notify_timers, NULL, NULL); if (!first) { ilog(LOG_DEBUG, "No scheduled HTTP notification retries, sleeping"); pthread_cond_wait(&timer_cond, &timer_lock); continue; } struct timeval now; gettimeofday(&now, NULL); if (now.tv_sec < first->retry_time) { ilog(LOG_DEBUG, "Sleeping until next scheduled HTTP notification retry in %lu seconds", (unsigned long) first->retry_time - now.tv_sec); struct timespec ts = {.tv_sec = first->retry_time, .tv_nsec = 0}; pthread_cond_timedwait(&timer_cond, &timer_lock, &ts); continue; } // first entry is ready to run g_tree_remove(notify_timers, first); ilog(LOG_DEBUG, "HTTP notification retry for '%s%s%s' is scheduled now", FMT_M(first->name)); g_thread_pool_push(notify_threadpool, first, NULL); } // clean up pthread_mutex_unlock(&timer_lock); pthread_mutex_destroy(&timer_lock); pthread_cond_destroy(&timer_cond); return NULL; } static int notify_req_cmp(const void *A, const void *B) { const struct notif_req *a = A, *b = B; if (a->retry_time < b->retry_time) return -1; if (a->retry_time > b->retry_time) return 1; if (a < b) return -1; if (a > b) return 1; return 0; } void notify_setup(void) { if (!notify_uri || notify_threads <= 0) return; notify_threadpool = g_thread_pool_new(do_notify, NULL, notify_threads, false, NULL); notify_timers = g_tree_new(notify_req_cmp); pthread_create(¬ify_waiter, NULL, notify_timer, NULL); } void notify_cleanup(void) { if (notify_threadpool) g_thread_pool_free(notify_threadpool, true, false); if (notify_waiter && notify_timers) { // get lock, free GTree, signal thread to shut down pthread_mutex_lock(&timer_lock); g_tree_destroy(notify_timers); notify_timers = NULL; pthread_cond_signal(&timer_cond); pthread_mutex_unlock(&timer_lock); } } __attribute__ ((format (printf, 2, 3))) static void notify_add_header(struct notif_req *req, const char *fmt, ...) { va_list ap; va_start(ap, fmt); char *s = g_strdup_vprintf(fmt, ap); req->headers = curl_slist_append(req->headers, s); g_free(s); va_end(ap); } void notify_push_output(output_t *o, metafile_t *mf, tag_t *tag) { if (!notify_threadpool) return; struct notif_req *req = g_slice_alloc0(sizeof(*req)); req->name = g_strdup(o->file_name); req->full_filename_path = g_strdup_printf("%s.%s", o->full_filename, o->file_format); double now = now_double(); notify_add_header(req, "X-Recording-Call-ID: %s", mf->call_id); notify_add_header(req, "X-Recording-File-Name: %s.%s", o->file_name, o->file_format); notify_add_header(req, "X-Recording-Full-File-Name: %s.%s", o->full_filename, o->file_format); notify_add_header(req, "X-Recording-File-Format: %s", o->file_format); notify_add_header(req, "X-Recording-Kind: %s", o->kind); notify_add_header(req, "X-Recording-Call-Start-Time: %.06f", mf->start_time); notify_add_header(req, "X-Recording-Stream-Start-Time: %.06f", o->start_time); notify_add_header(req, "X-Recording-Call-End-Time: %.06f", now); notify_add_header(req, "X-Recording-Stream-End-Time: %.06f", now); if (mf->db_id) notify_add_header(req, "X-Recording-Call-DB-ID: %llu", mf->db_id); if (o->db_id) notify_add_header(req, "X-Recording-Stream-DB-ID: %llu", o->db_id); if (mf->metadata) notify_add_header(req, "X-Recording-Call-Metadata: %s", mf->metadata); if (mf->metadata) notify_add_header(req, "X-Recording-DB-Metadata: %s", mf->metadata); if (tag) { notify_add_header(req, "X-Recording-Tag: %s", tag->name); if (tag->label) notify_add_header(req, "X-Recording-Label: %s", tag->label); if (tag->metadata) notify_add_header(req, "X-Recording-Tag-Metadata: %s", tag->metadata); } req->falloff = 5; // initial retry time g_thread_pool_push(notify_threadpool, req, NULL); } rtpengine-mr12.5.1.22/recording-daemon/notify.h000066400000000000000000000003531474347554000212700ustar00rootroot00000000000000#ifndef _NOTIFY_H_ #define _NOTIFY_H_ #include #include "types.h" void notify_setup(void); void notify_cleanup(void); void notify_push_output(output_t *, metafile_t *, tag_t *); void notify_push_call(metafile_t *); #endif rtpengine-mr12.5.1.22/recording-daemon/output.c000066400000000000000000000271621474347554000213220ustar00rootroot00000000000000#include "output.h" #include #include #include #include #include #include #include #include #include "log.h" #include "db.h" #include "main.h" #include "recaux.h" #include "notify.h" //static int output_codec_id; static codec_def_t *output_codec; static const char *output_file_format; int mp3_bitrate; static bool output_shutdown(output_t *output); static int output_got_packet(encoder_t *enc, void *u1, void *u2) { output_t *output = u1; dbg("{%s%s%s} output avpkt size is %i", FMT_M(output->file_name), (int) enc->avpkt->size); dbg("{%s%s%s} output pkt pts/dts is %li/%li", FMT_M(output->file_name), (long) enc->avpkt->pts, (long) enc->avpkt->dts); dbg("{%s%s%s} output dts %li", FMT_M(output->file_name), (long) output->encoder->mux_dts); av_write_frame(output->fmtctx, enc->avpkt); return 0; } int output_add(output_t *output, AVFrame *frame) { if (!output) return -1; if (!output->encoder) // not ready - not configured return -1; if (!output->fmtctx) // output not open return -1; return encoder_input_fifo(output->encoder, frame, output_got_packet, output, NULL); } static void create_parent_dirs(char *dir) { char *p = dir; // skip root if (*p == G_DIR_SEPARATOR) p++; while (1) { // find next dir separator p = strchr(p, G_DIR_SEPARATOR); if (!p) break; // check/create dir *p = '\0'; // create with 0700 first, then chmod if (mkdir(dir, 0700)) { int existed = errno == EEXIST; if (!existed) ilog(LOG_WARN, "Failed to create directory '%s': %s", dir, strerror(errno)); *p++ = G_DIR_SEPARATOR; if (!existed) // no point in continuing break; continue; } if (output_chmod_dir && chmod(dir, output_chmod_dir)) ilog(LOG_WARN, "Failed to change mode of '%s': %s", dir, strerror(errno)); if (output_chown != -1 || output_chgrp != -1) if (chown(dir, output_chown, output_chgrp)) ilog(LOG_WARN, "Failed to change owner/group of '%s': %s", dir, strerror(errno)); *p++ = G_DIR_SEPARATOR; } } static output_t *output_alloc(const char *path, const char *name) { output_t *ret = g_slice_alloc0(sizeof(*ret)); ret->file_path = g_strdup(path); ret->file_name = g_strdup(name); ret->full_filename = g_strdup_printf("%s/%s", path, name); ret->file_format = output_file_format; ret->encoder = encoder_new(); ret->channel_mult = 1; ret->requested_format.format = -1; ret->actual_format.format = -1; ret->start_time = now_double(); return ret; } static void output_append_str_from_ht(GString *f, metadata_ht ht, const str *s) { str_q *q = t_hash_table_lookup(ht, s); if (!q || q->length == 0) { ilog(LOG_WARN, "Key '{" STR_FORMAT "}' used in file name pattern not present in metadata", STR_FMT(s)); return; } if (q->length > 1) ilog(LOG_WARN, "Key '{" STR_FORMAT "}' used in file name pattern present in metadata %u times, " "only using first occurrence", STR_FMT(s), q->length); g_autoptr(char) esc = g_uri_escape_string(q->head->data->s, NULL, false); g_string_append(f, esc); } static output_t *output_new(const char *path, const metafile_t *mf, const char *type, const char *kind, const char *label) { // construct output file name struct timeval now; struct tm tm; g_autoptr(char) escaped_callid = g_uri_escape_string(mf->call_id, NULL, false); const char *ax = escaped_callid; gettimeofday(&now, NULL); localtime_r(&now.tv_sec, &tm); g_autoptr(GString) f = g_string_new(""); const char *pattern = mf->output_pattern ?: output_pattern; for (const char *p = pattern; *p; p++) { if (*p != '%') { g_string_append_c(f, *p); continue; } p++; switch (*p) { case '\0': ilog(LOG_ERR, "Invalid output pattern (trailing %%)"); goto done; case '%': g_string_append_c(f, '%'); break; case 'c': g_string_append(f, escaped_callid); break; case 'r': g_string_append(f, mf->random_tag); break; case 't': g_string_append(f, type); break; case 'l': g_string_append(f, label); break; case 'Y': g_string_append_printf(f, "%04i", tm.tm_year + 1900); break; case 'm': g_string_append_printf(f, "%02i", tm.tm_mon + 1); break; case 'd': g_string_append_printf(f, "%02i", tm.tm_mday); break; case 'H': g_string_append_printf(f, "%02i", tm.tm_hour); break; case 'M': g_string_append_printf(f, "%02i", tm.tm_min); break; case 'S': g_string_append_printf(f, "%02i", tm.tm_sec); break; case 'u': g_string_append_printf(f, "%06li", (long) now.tv_usec); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':; char *end; long len = strtol(p, &end, 10); if (len <= 0 || len == LONG_MAX || end == p) { ilog(LOG_ERR, "Invalid output pattern (invalid number at '%%%s')", p); break; } while (*ax && len--) g_string_append_c(f, *ax++); p = end - 1; // will be advanced +1 in the next loop break; case '{': // find matching end '}' p++; end = strchr(p, '}'); if (!end) { ilog(LOG_ERR, "Missing ending brace '}' in file name pattern"); break; } str fmt = STR_INIT_LEN((char *) p, end - p); p = end; // skip over {...} output_append_str_from_ht(f, mf->metadata_parsed, &fmt); break; default: ilog(LOG_ERR, "Invalid output pattern (unknown format character '%c')", *p); break; } } done:; output_t *ret = output_alloc(path, f->str); create_parent_dirs(ret->full_filename); ret->kind = kind; return ret; } static output_t *output_new_from_full_path(const char *path, char *name, const char *kind) { output_t *ret = output_alloc(path, name); create_parent_dirs(ret->full_filename); ret->kind = kind; return ret; } output_t *output_new_ext(metafile_t *mf, const char *type, const char *kind, const char *label) { const char *output_path = mf->output_path ?: output_dir; output_t *ret; dbg("Metadata %s, output destination %s", mf->metadata, mf->output_dest); if (mf->output_dest) { char *path = g_strdup(mf->output_dest); char *sep = strrchr(path, '/'); if (sep) { char *filename = sep + 1; *sep = 0; ret = output_new_from_full_path(path, filename, kind); ret->skip_filename_extension = TRUE; } else ret = output_new_from_full_path(output_path, path, kind); g_free(path); } else ret = output_new(output_path, mf, type, kind, label); return ret; } int output_config(output_t *output, const format_t *requested_format, format_t *actual_format) { const char *err; int av_ret = 0; format_t req_fmt = *requested_format; // if we've already done this and don't care about the sample format, // restore the already determined sample format if (req_fmt.format == -1 && output->requested_format.format != -1) req_fmt.format = output->requested_format.format; // anything to do? if (G_LIKELY(format_eq(&req_fmt, &output->requested_format))) goto done; output_shutdown(output); err = "failed to alloc format context"; output->fmtctx = avformat_alloc_context(); if (!output->fmtctx) goto err; output->fmtctx->oformat = av_guess_format(output->file_format, NULL, NULL); err = "failed to determine output format"; if (!output->fmtctx->oformat) goto err; // mask the channel multiplier from external view output->requested_format = *requested_format; req_fmt.channels *= output->channel_mult; if (encoder_config(output->encoder, output_codec, mp3_bitrate, 0, &req_fmt, &output->actual_format)) goto err; if (output->actual_format.channels == req_fmt.channels) output->actual_format.channels /= output->channel_mult; // save the sample format if (requested_format->format == -1) output->requested_format.format = output->actual_format.format; err = "failed to alloc output stream"; output->avst = avformat_new_stream(output->fmtctx, output->encoder->avc.codec); if (!output->avst) goto err; output->avst->time_base = output->encoder->avc.avcctx->time_base; #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 0, 0) // move the avcctx to avst as we already have an initialized avcctx if (output->avst->codec) { avcodec_close(output->avst->codec); avcodec_free_context(&output->avst->codec); } output->avst->codec = output->encoder->avc.avcctx; #endif #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 26, 0) // exact version? present in 57.56 avcodec_parameters_from_context(output->avst->codecpar, output->encoder->avc.avcctx); #endif char *full_fn = NULL; char suff[16] = ""; for (int i = 1; i < 20; i++) { if (!output->skip_filename_extension) { full_fn = g_strdup_printf("%s%s.%s", output->full_filename, suff, output->file_format); } else { full_fn = g_strdup_printf("%s%s", output->full_filename, suff); } if (!g_file_test(full_fn, G_FILE_TEST_EXISTS)) goto got_fn; ilog(LOG_INFO, "Storing record in %s", full_fn); snprintf(suff, sizeof(suff), "-%i", i); g_free(full_fn); } err = "failed to find unused output file number"; goto err; got_fn: output->filename = full_fn; err = "failed to open avio"; av_ret = avio_open(&output->fmtctx->pb, full_fn, AVIO_FLAG_WRITE); if (av_ret < 0) goto err; err = "failed to write header"; av_ret = avformat_write_header(output->fmtctx, NULL); if (av_ret) goto err; db_config_stream(output); ilog(LOG_INFO, "Opened output media file '%s' for writing", full_fn); done: if (actual_format) *actual_format = output->actual_format; return 0; err: output_shutdown(output); ilog(LOG_ERR, "Error configuring media output: %s", err); if (av_ret) ilog(LOG_ERR, "Error returned from libav: %s", av_error(av_ret)); return -1; } static bool output_shutdown(output_t *output) { if (!output) return false; if (!output->fmtctx) return false; ilog(LOG_INFO, "Closing output media file '%s'", output->filename); bool ret = false; if (output->fmtctx->pb) { av_write_trailer(output->fmtctx); avio_closep(&output->fmtctx->pb); ret = true; if (output_chmod) if (chmod(output->filename, output_chmod)) ilog(LOG_WARN, "Failed to change file mode of '%s%s%s': %s", FMT_M(output->filename), strerror(errno)); if (output_chown != -1 || output_chgrp != -1) if (chown(output->filename, output_chown, output_chgrp)) ilog(LOG_WARN, "Failed to change file owner/group of '%s%s%s': %s", FMT_M(output->filename), strerror(errno)); } avformat_free_context(output->fmtctx); #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57, 0, 0) // avoid double free - avcctx already freed output->encoder->avc.avcctx = NULL; #endif encoder_close(output->encoder); output->fmtctx = NULL; output->avst = NULL; return ret; } void output_close(metafile_t *mf, output_t *output, tag_t *tag, bool discard) { if (!output) return; if (!discard) { if (output_shutdown(output)) { db_close_stream(output); notify_push_output(output, mf, tag); } else db_delete_stream(mf, output); } else { output_shutdown(output); if (unlink(output->filename)) ilog(LOG_WARN, "Failed to unlink '%s%s%s': %s", FMT_M(output->filename), strerror(errno)); db_delete_stream(mf, output); } encoder_free(output->encoder); g_clear_pointer(&output->full_filename, g_free); g_clear_pointer(&output->file_path, g_free); g_clear_pointer(&output->file_name, g_free); g_clear_pointer(&output->filename, g_free); g_slice_free1(sizeof(*output), output); } void output_init(const char *format) { str codec; if (!strcmp(format, "wav")) { str_init(&codec, "PCM-S16LE"); output_file_format = "wav"; } else if (!strcmp(format, "mp3")) { str_init(&codec, "MP3"); output_file_format = "mp3"; } else die("Unknown output format '%s'", format); output_codec = codec_find(&codec, MT_AUDIO); assert(output_codec != NULL); } rtpengine-mr12.5.1.22/recording-daemon/output.h000066400000000000000000000007311474347554000213200ustar00rootroot00000000000000#ifndef _OUTPUT_H_ #define _OUTPUT_H_ #include "types.h" #include extern int mp3_bitrate; void output_init(const char *format); output_t *output_new_ext(metafile_t *, const char *type, const char *kind, const char *label); void output_close(metafile_t *, output_t *, tag_t *, bool discard); int output_config(output_t *output, const format_t *requested_format, format_t *actual_format); int output_add(output_t *output, AVFrame *frame); #endif rtpengine-mr12.5.1.22/recording-daemon/packet.c000066400000000000000000000304641474347554000212300ustar00rootroot00000000000000#include "packet.h" #include #include #include #include #include #include #include "types.h" #include "log.h" #include "rtplib.h" #include "str.h" #include "decoder.h" #include "rtcplib.h" #include "main.h" #include "output.h" #include "db.h" #include "streambuf.h" #include "resample.h" #include "tag.h" #include "fix_frame_channel_layout.h" static ssize_t ssrc_tls_write(void *, const void *, size_t); static ssize_t ssrc_tls_read(void *, void *, size_t); static struct streambuf_funcs ssrc_tls_funcs = { .write = ssrc_tls_write, .read = ssrc_tls_read, }; static void ssrc_tls_log_errors(void) { int i; char err[160]; while ((i = ERR_get_error())) { ERR_error_string(i, err); dbg("TLS error: %s", err); } } static int ssrc_tls_check_blocked(SSL *ssl, int ret) { if (!ssl) return 0; int err = SSL_get_error(ssl, ret); dbg("TLS error code: %i -> %i", ret, err); switch (err) { case SSL_ERROR_ZERO_RETURN: return 0; // eof case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: case SSL_ERROR_WANT_CONNECT: case SSL_ERROR_WANT_ACCEPT: errno = EAGAIN; return -1; case SSL_ERROR_SYSCALL: return -1; } errno = EFAULT; return -1; } static ssize_t ssrc_tls_write(void *fd, const void *b, size_t s) { SSL *ssl = fd; ssrc_tls_log_errors(); int ret = SSL_write(ssl, b, s); if (ret > 0) return ret; return ssrc_tls_check_blocked(ssl, ret); } static ssize_t ssrc_tls_read(void *fd, void *b, size_t s) { SSL *ssl = fd; ssrc_tls_log_errors(); int ret = SSL_read(ssl, b, s); if (ret > 0) return ret; return ssrc_tls_check_blocked(ssl, ret); } static void packet_free(void *p) { packet_t *packet = p; if (!packet) return; free(packet->buffer); g_slice_free1(sizeof(*packet), packet); } static void ssrc_tls_shutdown(ssrc_t *ssrc) { if (!ssrc->tls_fwd_stream) return; streambuf_destroy(ssrc->tls_fwd_stream); ssrc->tls_fwd_stream = NULL; resample_shutdown(&ssrc->tls_fwd_resampler); if (ssrc->ssl) { SSL_free(ssrc->ssl); ssrc->ssl = NULL; } if (ssrc->ssl_ctx) { SSL_CTX_free(ssrc->ssl_ctx); ssrc->ssl_ctx = NULL; } close_socket(&ssrc->tls_fwd_sock); ssrc->sent_intro = 0; } void ssrc_tls_state(ssrc_t *ssrc) { int ret; ssrc_tls_log_errors(); if (ssrc->tls_fwd_poller.state == PS_CONNECTING) { int status = connect_socket_retry(&ssrc->tls_fwd_sock); if (status == 0) { if (tls_disable) { ssrc->tls_fwd_poller.state = PS_OPEN; streambuf_writeable(ssrc->tls_fwd_stream); } else { dbg("TLS connection to %s doing handshake", endpoint_print_buf(&tls_send_to_ep)); ssrc->tls_fwd_poller.state = PS_HANDSHAKE; if ((ret = SSL_connect(ssrc->ssl)) == 1) { dbg("TLS connection to %s established", endpoint_print_buf(&tls_send_to_ep)); ssrc->tls_fwd_poller.state = PS_OPEN; streambuf_writeable(ssrc->tls_fwd_stream); } else ssrc_tls_check_blocked(ssrc->ssl, ret); } } else if (status < 0) { ilog(LOG_ERR, "Failed to connect TLS/TCP socket: %s", strerror(errno)); ssrc_tls_shutdown(ssrc); } } else if (ssrc->tls_fwd_poller.state == PS_HANDSHAKE) { if (!tls_disable) { if ((ret = SSL_connect(ssrc->ssl)) == 1) { dbg("TLS connection to %s established", endpoint_print_buf(&tls_send_to_ep)); ssrc->tls_fwd_poller.state = PS_OPEN; streambuf_writeable(ssrc->tls_fwd_stream); } else ssrc_tls_check_blocked(ssrc->ssl, ret); } } else if (ssrc->tls_fwd_poller.state == PS_WRITE_BLOCKED) { ssrc->tls_fwd_poller.state = PS_OPEN; streambuf_writeable(ssrc->tls_fwd_stream); } else if (ssrc->tls_fwd_poller.state == PS_ERROR) ssrc_tls_shutdown(ssrc); ssrc_tls_log_errors(); } void ssrc_tls_fwd_silence_frames_upto(ssrc_t *ssrc, AVFrame *frame, int64_t upto) { unsigned int silence_samples = ssrc->tls_fwd_format.clockrate / 100; while (ssrc->tls_in_pts < upto) { if (G_UNLIKELY(upto - ssrc->tls_in_pts > ssrc->tls_fwd_format.clockrate * 30)) { ilog(LOG_WARN, "More than 30 seconds of silence needed to fill mix buffer, resetting"); ssrc->tls_in_pts = upto; break; } if (G_UNLIKELY(!ssrc->tls_silence_frame)) { ssrc->tls_silence_frame = av_frame_alloc(); ssrc->tls_silence_frame->format = ssrc->tls_fwd_format.format; DEF_CH_LAYOUT(&ssrc->tls_silence_frame->CH_LAYOUT, ssrc->tls_fwd_format.channels); ssrc->tls_silence_frame->nb_samples = silence_samples; ssrc->tls_silence_frame->sample_rate = ssrc->tls_fwd_format.clockrate; if (av_frame_get_buffer(ssrc->tls_silence_frame, 0) < 0) { ilog(LOG_ERR, "Failed to get silence frame buffers"); return; } int planes = av_sample_fmt_is_planar(ssrc->tls_silence_frame->format) ? ssrc->tls_fwd_format.channels : 1; for (int i = 0; i < planes; i++) memset(ssrc->tls_silence_frame->extended_data[i], 0, ssrc->tls_silence_frame->linesize[0]); } dbg("pushing silence frame into TLS-formward stream (%lli < %llu)", (long long unsigned) ssrc->tls_in_pts, (long long unsigned) upto); ssrc->tls_silence_frame->pts = ssrc->tls_in_pts; ssrc->tls_silence_frame->nb_samples = MIN(silence_samples, upto - ssrc->tls_in_pts); ssrc->tls_in_pts += ssrc->tls_silence_frame->nb_samples; CH_LAYOUT_T channel_layout; DEF_CH_LAYOUT(&channel_layout, ssrc->tls_fwd_format.channels); ssrc->tls_silence_frame->CH_LAYOUT = channel_layout; int linesize = av_get_bytes_per_sample(frame->format) * ssrc->tls_silence_frame->nb_samples; dbg("Writing %u bytes PCM to TLS", linesize); streambuf_write(ssrc->tls_fwd_stream, (char *) ssrc->tls_silence_frame->extended_data[0], linesize); } } // appropriate lock must be held (ssrc or metafile) void ssrc_close(ssrc_t *s) { output_close(s->metafile, s->output, tag_get(s->metafile, s->stream->tag), s->metafile->discard); s->output = NULL; for (int i = 0; i < G_N_ELEMENTS(s->decoders); i++) { decoder_free(s->decoders[i]); s->decoders[i] = NULL; } ssrc_tls_shutdown(s); } void ssrc_free(void *p) { ssrc_t *s = p; av_frame_free(&s->tls_silence_frame); packet_sequencer_destroy(&s->sequencer); ssrc_close(s); g_slice_free1(sizeof(*s), s); } // mf must be unlocked; returns ssrc locked static ssrc_t *ssrc_get(stream_t *stream, unsigned long ssrc) { metafile_t *mf = stream->metafile; pthread_mutex_lock(&mf->lock); if (!mf->ssrc_hash) { pthread_mutex_unlock(&mf->lock); return NULL; } ssrc_t *ret = g_hash_table_lookup(mf->ssrc_hash, GUINT_TO_POINTER(ssrc)); if (ret) goto out; ret = g_slice_alloc0(sizeof(*ret)); pthread_mutex_init(&ret->lock, NULL); ret->metafile = mf; ret->stream = stream; ret->ssrc = ssrc; packet_sequencer_init(&ret->sequencer, packet_free); g_hash_table_insert(mf->ssrc_hash, GUINT_TO_POINTER(ssrc), ret); out: pthread_mutex_lock(&ret->lock); pthread_mutex_unlock(&mf->lock); dbg("Init for SSRC %s%lx%s of stream #%lu", FMT_M(ret->ssrc), stream->id); if (mf->recording_on && !ret->output && output_single) { char buf[16]; snprintf(buf, sizeof(buf), "%08lx", ssrc); tag_t *tag = tag_get(mf, stream->tag); ret->output = output_new_ext(mf, buf, "single", tag->label); db_do_stream(mf, ret->output, stream, ssrc); } if ((stream->forwarding_on || mf->forwarding_on) && !ret->tls_fwd_stream && tls_send_to_ep.port) { // initialise the connection ZERO(ret->tls_fwd_poller); if (!tls_disable) { dbg("Starting TLS connection to %s", endpoint_print_buf(&tls_send_to_ep)); #if OPENSSL_VERSION_NUMBER >= 0x10100000L ret->ssl_ctx = SSL_CTX_new(TLS_client_method()); #else ret->ssl_ctx = SSL_CTX_new(SSLv23_client_method()); #endif if (!ret->ssl_ctx) { ilog(LOG_ERR, "Failed to create TLS context"); ssrc_tls_shutdown(ret); goto tls_out; } ret->ssl = SSL_new(ret->ssl_ctx); if (!ret->ssl) { ilog(LOG_ERR, "Failed to create TLS connection"); ssrc_tls_shutdown(ret); goto tls_out; } } else { dbg("Starting TCP connection to %s", endpoint_print_buf(&tls_send_to_ep)); } int status = connect_socket_nb(&ret->tls_fwd_sock, SOCK_STREAM, &tls_send_to_ep); if (status < 0) { ilog(LOG_ERR, "Failed to open/connect TLS/TCP socket to %s: %s", endpoint_print_buf(&tls_send_to_ep), strerror(errno)); ssrc_tls_shutdown(ret); goto tls_out; } ret->tls_fwd_poller.state = PS_CONNECTING; if (!tls_disable) { if (SSL_set_fd(ret->ssl, ret->tls_fwd_sock.fd) != 1) { ilog(LOG_ERR, "Failed to set TLS fd"); ssrc_tls_shutdown(ret); goto tls_out; } ret->tls_fwd_stream = streambuf_new_ptr(&ret->tls_fwd_poller, ret->ssl, &ssrc_tls_funcs); } else { ret->tls_fwd_stream = streambuf_new(&ret->tls_fwd_poller, ret->tls_fwd_sock.fd); } ssrc_tls_state(ret); ret->tls_fwd_format = (format_t) { .clockrate = tls_resample, .channels = 1, .format = AV_SAMPLE_FMT_S16, }; tls_out: ; } else if (!(stream->forwarding_on || mf->forwarding_on) && ret->tls_fwd_stream) ssrc_tls_shutdown(ret); return ret; } // ssrc is locked static void packet_decode(ssrc_t *ssrc, packet_t *packet) { // determine payload type and run decoder unsigned int payload_type = packet->rtp->m_pt & 0x7f; // check if we have a decoder for this payload type yet if (G_UNLIKELY(!ssrc->decoders[payload_type])) { metafile_t *mf = ssrc->metafile; pthread_mutex_lock(&mf->payloads_lock); char *payload_str = mf->payload_types[payload_type]; char *format = mf->payload_formats[payload_type]; int ptime = mf->payload_ptimes[payload_type]; pthread_mutex_unlock(&mf->payloads_lock); if (!payload_str) { const struct rtp_payload_type *rpt = rtp_get_rfc_payload_type(payload_type); if (!rpt) { ilog(LOG_WARN, "Unknown RTP payload type %u", payload_type); return; } payload_str = rpt->encoding_with_params.s; } dbg("payload type for %u is %s", payload_type, payload_str); pthread_mutex_lock(&mf->mix_lock); output_t *outp = NULL; if (mf->mix_out) outp = mf->mix_out; else if (ssrc->output) outp = ssrc->output; ssrc->decoders[payload_type] = decoder_new(payload_str, format, ptime, outp); pthread_mutex_unlock(&mf->mix_lock); if (!ssrc->decoders[payload_type]) { ilog(LOG_WARN, "Cannot decode RTP payload type %u (%s)", payload_type, payload_str); return; } } if (decoder_input(ssrc->decoders[payload_type], &packet->payload, ntohl(packet->rtp->timestamp), ssrc)) ilog(LOG_ERR, "Failed to decode media packet"); } // ssrc is locked and must be unlocked when returning static void ssrc_run(ssrc_t *ssrc) { while (1) { // see if we have a packet with the correct seq nr in the queue packet_t *packet = packet_sequencer_next_packet(&ssrc->sequencer); if (G_UNLIKELY(packet == NULL)) break; dbg("processing packet seq %i", packet->p.seq); packet_decode(ssrc, packet); packet_free(packet); dbg("packets left in queue: %i", g_tree_nnodes(ssrc->sequencer.packets)); } pthread_mutex_unlock(&ssrc->lock); } // stream is unlocked, buf is malloc'd void packet_process(stream_t *stream, unsigned char *buf, unsigned len) { packet_t *packet = g_slice_alloc0(sizeof(*packet)); packet->buffer = buf; // handing it over // XXX more checking here str bufstr = STR_INIT_LEN(packet->buffer, len); packet->ip = (void *) bufstr.s; // XXX kernel already does this - add metadata? if (packet->ip->version == 4) { if (str_shift(&bufstr, packet->ip->ihl << 2)) goto err; } else { packet->ip = NULL; packet->ip6 = (void *) bufstr.s; if (str_shift(&bufstr, sizeof(*packet->ip6))) goto err; } packet->udp = (void *) bufstr.s; str_shift(&bufstr, sizeof(*packet->udp)); if (rtcp_demux_is_rtcp(&bufstr)) goto ignore; // for now if (rtp_payload(&packet->rtp, &packet->payload, &bufstr)) goto err; if (rtp_padding(packet->rtp, &packet->payload)) goto err; packet->p.seq = ntohs(packet->rtp->seq_num); unsigned long ssrc_num = ntohl(packet->rtp->ssrc); log_info_ssrc = ssrc_num; dbg("packet parsed successfully, seq %u", packet->p.seq); // insert into ssrc queue ssrc_t *ssrc = ssrc_get(stream, ssrc_num); if (!ssrc) // stream shutdown goto out; if (packet_sequencer_insert(&ssrc->sequencer, &packet->p) < 0) { dbg("skipping dupe packet (new seq %i prev seq %i)", packet->p.seq, ssrc->sequencer.seq); goto skip; } // got a new packet, run the decoder ssrc_run(ssrc); log_info_ssrc = 0; return; skip: pthread_mutex_unlock(&ssrc->lock); out: packet_free(packet); log_info_ssrc = 0; return; err: ilog(LOG_WARN, "Failed to parse packet headers"); ignore: packet_free(packet); log_info_ssrc = 0; } rtpengine-mr12.5.1.22/recording-daemon/packet.h000066400000000000000000000005151474347554000212270ustar00rootroot00000000000000#ifndef _PACKET_H_ #define _PACKET_H_ #include "types.h" #include void ssrc_close(ssrc_t *s); void ssrc_free(void *p); void packet_process(stream_t *, unsigned char *, unsigned len); void ssrc_tls_state(ssrc_t *ssrc); void ssrc_tls_fwd_silence_frames_upto(ssrc_t *ssrc, AVFrame *frame, int64_t upto); #endif rtpengine-mr12.5.1.22/recording-daemon/poller.c000066400000000000000000000004051474347554000212460ustar00rootroot00000000000000#include "poller.h" void poller_blocked(struct poller *p, void *fdp) { p->state = PS_WRITE_BLOCKED; } bool poller_isblocked(struct poller *p, void *fdp) { return p->state != PS_OPEN; } void poller_error(struct poller *p, void *fdp) { p->state = PS_ERROR; } rtpengine-mr12.5.1.22/recording-daemon/poller.h000066400000000000000000000007501474347554000212560ustar00rootroot00000000000000#ifndef __POLLER_H__ #define __POLLER_H__ #include // dummy poller struct poller { enum { PS_CLOSED = 0, PS_CONNECTING, PS_HANDSHAKE, PS_OPEN, PS_WRITE_BLOCKED, PS_ERROR, } state; }; void poller_blocked(struct poller *, void *); void poller_error(struct poller *, void *); bool poller_isblocked(struct poller *, void *); #define rtpe_poller_isblocked poller_isblocked #define rtpe_poller_blocked poller_blocked #define rtpe_poller_error poller_error #endif rtpengine-mr12.5.1.22/recording-daemon/recaux.c000066400000000000000000000005611474347554000212430ustar00rootroot00000000000000#include "recaux.h" #include #include __thread int __sscanf_hack_var; int __sscanf_match(const char *s, const char *fmt, ...) { va_list ap; __sscanf_hack_var = 0; // to make sure that sscanf consumes the entire string va_start(ap, fmt); int ret = vsscanf(s, fmt, ap); va_end(ap); if (__sscanf_hack_var == 0) return 0; return ret; } rtpengine-mr12.5.1.22/recording-daemon/recaux.h000066400000000000000000000007511474347554000212510ustar00rootroot00000000000000#ifndef _RECAUX_H_ #define _RECAUX_H_ extern __thread int __sscanf_hack_var; #define sscanf_match(str, format, ...) __sscanf_match(str, format "%n", ##__VA_ARGS__, &__sscanf_hack_var) int __sscanf_match(const char *str, const char *fmt, ...) __attribute__ ((__format__ (__scanf__, 2, 3))); #include #include #include "compat.h" INLINE double now_double(void) { struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + tv.tv_usec / 1000000.0; } #endif rtpengine-mr12.5.1.22/recording-daemon/stream.c000066400000000000000000000070201474347554000212440ustar00rootroot00000000000000#include "stream.h" #include #include #include #include #include #include #include "metafile.h" #include "epoll.h" #include "log.h" #include "main.h" #include "packet.h" #include "forward.h" #include "recaux.h" #define MAXBUFLEN 65535 #ifndef AV_INPUT_BUFFER_PADDING_SIZE #define AV_INPUT_BUFFER_PADDING_SIZE 0 #endif #ifndef FF_INPUT_BUFFER_PADDING_SIZE #define FF_INPUT_BUFFER_PADDING_SIZE 0 #endif #define ALLOCLEN (MAXBUFLEN + AV_INPUT_BUFFER_PADDING_SIZE + FF_INPUT_BUFFER_PADDING_SIZE) // stream is locked void stream_close(stream_t *stream) { if (stream->fd == -1) return; epoll_del(stream->fd); close(stream->fd); stream->fd = -1; } void stream_free(stream_t *stream) { g_slice_free1(sizeof(*stream), stream); } static void stream_handler(handler_t *handler) { stream_t *stream = handler->ptr; unsigned char *buf = NULL; log_info_call = stream->metafile->name; log_info_stream = stream->name; //dbg("poll event for %s", stream->name); while (true) { pthread_mutex_lock(&stream->lock); if (stream->fd == -1) break; buf = malloc(ALLOCLEN); int ret = read(stream->fd, buf, MAXBUFLEN); if (ret == 0) { ilog(LOG_INFO, "EOF on stream %s", stream->name); stream_close(stream); break; } else if (ret < 0) { if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) break; ilog(LOG_INFO, "Read error on stream %s: %s", stream->name, strerror(errno)); stream_close(stream); break; } // got a packet pthread_mutex_unlock(&stream->lock); if (forward_to){ if (forward_packet(stream->metafile,buf,ret)) // leaves buf intact g_atomic_int_inc(&stream->metafile->forward_failed); else g_atomic_int_inc(&stream->metafile->forward_count); } if (decoding_enabled) packet_process(stream, buf, ret); // consumes buf else free(buf); buf = NULL; } pthread_mutex_unlock(&stream->lock); if (buf) free(buf); log_info_call = NULL; log_info_stream = NULL; } // mf is locked static stream_t *stream_get(metafile_t *mf, unsigned long id) { if (mf->streams->len <= id) g_ptr_array_set_size(mf->streams, id + 1); stream_t *ret = g_ptr_array_index(mf->streams, id); if (ret) goto out; ret = g_slice_alloc0(sizeof(*ret)); g_ptr_array_index(mf->streams, id) = ret; pthread_mutex_init(&ret->lock, NULL); ret->fd = -1; ret->id = id; ret->metafile = mf; ret->tag = (unsigned long) -1; ret->start_time = now_double(); out: return ret; } // mf is locked void stream_open(metafile_t *mf, unsigned long id, char *name) { dbg("opening stream %lu/%s", id, name); stream_t *stream = stream_get(mf, id); stream->name = g_string_chunk_insert(mf->gsc, name); char fnbuf[PATH_MAX]; snprintf(fnbuf, sizeof(fnbuf), "/proc/rtpengine/%u/calls/%s/%s", ktable, mf->parent, name); stream->fd = open(fnbuf, O_RDONLY | O_NONBLOCK); if (stream->fd == -1) { ilog(LOG_ERR, "Failed to open kernel stream %s: %s", fnbuf, strerror(errno)); return; } // add to epoll stream->handler.ptr = stream; stream->handler.func = stream_handler; epoll_add(stream->fd, EPOLLIN, &stream->handler); } void stream_details(metafile_t *mf, unsigned long id, unsigned int tag, unsigned int media_sdp_id) { stream_t *stream = stream_get(mf, id); stream->tag = tag; stream->media_sdp_id = media_sdp_id; } void stream_forwarding_on(metafile_t *mf, unsigned long id, unsigned int on) { stream_t *stream = stream_get(mf, id); dbg("Setting forwarding flag to %u for stream #%lu", on, stream->id); stream->forwarding_on = on ? 1 : 0; } rtpengine-mr12.5.1.22/recording-daemon/stream.h000066400000000000000000000007151474347554000212550ustar00rootroot00000000000000#ifndef _STREAM_H_ #define _STREAM_H_ #include "types.h" void stream_open(metafile_t *mf, unsigned long id, char *name); void stream_details(metafile_t *mf, unsigned long id, unsigned int tag, unsigned int media_sdp_id); void stream_forwarding_on(metafile_t *mf, unsigned long id, unsigned int on); void stream_sdp_label(metafile_t *mf, unsigned long id, unsigned long *label); void stream_close(stream_t *stream); void stream_free(stream_t *stream); #endif rtpengine-mr12.5.1.22/recording-daemon/tag.c000066400000000000000000000015461474347554000205330ustar00rootroot00000000000000#include "tag.h" // XXX copied from stream.c - unify? tag_t *tag_get(metafile_t *mf, unsigned long id) { if (mf->tags->len <= id) g_ptr_array_set_size(mf->tags, id + 1); tag_t *ret = g_ptr_array_index(mf->tags, id); if (ret) goto out; ret = g_slice_alloc0(sizeof(*ret)); g_ptr_array_index(mf->tags, id) = ret; ret->id = id; out: return ret; } void tag_name(metafile_t *mf, unsigned long t, const char *s) { tag_t *tag = tag_get(mf, t); tag->name = g_string_chunk_insert(mf->gsc, s); } void tag_label(metafile_t *mf, unsigned long t, const char *s) { tag_t *tag = tag_get(mf, t); tag->label = g_string_chunk_insert(mf->gsc, s); } void tag_metadata(metafile_t *mf, unsigned long t, const char *s) { tag_t *tag = tag_get(mf, t); tag->metadata = g_string_chunk_insert(mf->gsc, s); } void tag_free(tag_t *tag) { g_slice_free1(sizeof(*tag), tag); } rtpengine-mr12.5.1.22/recording-daemon/tag.h000066400000000000000000000005061474347554000205330ustar00rootroot00000000000000#ifndef _TAG_H_ #define _TAG_H_ #include "types.h" tag_t *tag_get(metafile_t *mf, unsigned long id); void tag_name(metafile_t *mf, unsigned long t, const char *); void tag_label(metafile_t *mf, unsigned long t, const char *); void tag_metadata(metafile_t *mf, unsigned long t, const char *); void tag_free(tag_t *); #endif rtpengine-mr12.5.1.22/recording-daemon/types.h000066400000000000000000000067111474347554000211300ustar00rootroot00000000000000#ifndef _TYPES_H_ #define _TYPES_H_ #include #include #include #include #include #include #include #include #include #include #include "str.h" #include "codeclib.h" #include "poller.h" #include "socket.h" #include "containers.h" struct iphdr; struct ip6_hdr; struct udphdr; struct rtp_header; struct streambuf; struct handler_s; typedef struct handler_s handler_t; struct metafile_s; typedef struct metafile_s metafile_t; struct output_s; typedef struct output_s output_t; struct mix_s; typedef struct mix_s mix_t; struct decode_s; typedef struct decode_s decode_t; typedef void handler_func(handler_t *); struct handler_s { handler_func *func; void *ptr; }; struct stream_s { pthread_mutex_t lock; char *name; metafile_t *metafile; unsigned long id; unsigned long tag; int fd; handler_t handler; unsigned int forwarding_on:1; double start_time; unsigned int media_sdp_id; }; typedef struct stream_s stream_t; struct packet_s { seq_packet_t p; // must be first void *buffer; // pointers into buffer struct iphdr *ip; struct ip6_hdr *ip6; struct udphdr *udp; struct rtp_header *rtp; str payload; }; typedef struct packet_s packet_t; struct ssrc_s { pthread_mutex_t lock; stream_t *stream; metafile_t *metafile; unsigned long ssrc; packet_sequencer_t sequencer; decode_t *decoders[128]; output_t *output; // TLS output format_t tls_fwd_format; resample_t tls_fwd_resampler; socket_t tls_fwd_sock; uint64_t tls_in_pts; AVFrame *tls_silence_frame; //BIO *bio; SSL_CTX *ssl_ctx; SSL *ssl; struct streambuf *tls_fwd_stream; struct poller tls_fwd_poller; unsigned int sent_intro:1; }; typedef struct ssrc_s ssrc_t; struct tag_s { unsigned long id; char *name; char *label; char *metadata; }; typedef struct tag_s tag_t; INLINE void str_q_free(str_q *q) { t_queue_clear_full(q, str_free); t_queue_free(q); } TYPED_GHASHTABLE(metadata_ht, str, str_q, str_hash, str_equal, str_free, str_q_free) struct metafile_s { pthread_mutex_t lock; char *name; char *parent; char *call_id; char *random_tag; char *metadata; metadata_ht metadata_parsed; char *output_dest; char *output_path; char *output_pattern; off_t pos; unsigned long long db_id; unsigned int db_streams; double start_time; GStringChunk *gsc; // XXX limit max size GPtrArray *streams; GPtrArray *tags; GHashTable *ssrc_hash; // contains ssrc_t objects pthread_mutex_t mix_lock; mix_t *mix; output_t *mix_out; int forward_fd; volatile gint forward_count; volatile gint forward_failed; pthread_mutex_t payloads_lock; char *payload_types[128]; char *payload_formats[128]; int payload_ptimes[128]; int media_ptimes[4]; unsigned int recording_on:1; unsigned int forwarding_on:1; unsigned int discard:1; unsigned int db_metadata_done:1; unsigned int skip_db:1; }; struct output_s { char *full_filename, // path + filename *file_path, *file_name, *filename; // path + filename + suffix const char *file_format; const char *kind; // "mixed" or "single" unsigned long long db_id; gboolean skip_filename_extension; unsigned int channel_mult; double start_time; AVFormatContext *fmtctx; AVStream *avst; encoder_t *encoder; format_t requested_format, actual_format; }; struct decode_s { decoder_t *dec; resample_t mix_resampler; unsigned int mixer_idx; }; #endif rtpengine-mr12.5.1.22/t/000077500000000000000000000000001474347554000146345ustar00rootroot00000000000000rtpengine-mr12.5.1.22/t/.gitignore000066400000000000000000000022071474347554000166250ustar00rootroot00000000000000*.o bitstr-test amr-encode-test amr-decode-test core .depend auxlib.c codeclib.c fix_frame_channel_layout.h loglib.c resample.c rtplib.c str.c crypto.c aes-crypt bencode.c call.c call_interfaces.c cdr.c codec.c control_ng.c control_ng_flags_parser.c cookie_cache.c dtls.c graphite.c helpers.c homer.c ice.c iptables.c kernel.c load.c media_socket.c poller.c recording.c redis.c rtcp.c rtp.c sdp.c socket.c ssrc.c statistics.c streambuf.c stun.c transcode-test udp_listener.c payload-tracker-test dtmf.c const_str_hash-test.strhash tests-preload.so timerthread.c media_player.c dtmflib.c test-dtmf-detect test-bitstr test-const_str_hash.strhash test-payload-tracker test-transcode dtmf_rx_fillin.h *-test.c jitter_buffer.c t38.c spandsp_recv_fax_pcm spandsp_recv_fax_t38 spandsp_send_fax_pcm spandsp_send_fax_t38 spandsp_logging.h aead-aes-crypt tcp_listener.c test-kernel-module test-resample mqtt.c cli.c janus.c websocket.c test-stats ssllib.c time-fudge-preload.so mvr2s_x64_avx2.S mvr2s_x64_avx512.S test-mix-buffer mix_buffer.c audio_player.c mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S test-amr-decode test-amr-encode bufferpool.c uring.c rtpengine-mr12.5.1.22/t/.ycm_extra_conf.py000066400000000000000000000071771474347554000203000ustar00rootroot00000000000000import os import ycm_core from clang_helpers import PrepareClangFlags # Set this to the absolute path to the folder (NOT the file!) containing the # compile_commands.json file to use that instead of 'flags'. See here for # more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html # Most projects will NOT need to set this to anything; you can just change the # 'flags' list of compilation flags. Notice that YCM itself uses that approach. compilation_database_folder = '' # These are the compilation flags that will be used in case there's no # compilation database set. flags = [ '-g', '-Wall', '-Wstrict-prototypes', '-pthread', '-fno-strict-aliasing', '-I/usr/include/glib-2.0', '-I/usr/lib/x86_64-linux-gnu/glib-2.0/include', '-I/usr/include/json-glib-1.0', '-pthread', '-I../kernel-module/', '-I../lib/', '-I../daemon/', '-I../include/', '-D_GNU_SOURCE', '-D__DEBUG=1', '-D__YCM=1', '-DPCRE2_CODE_UNIT_WIDTH=8', '-DRTPENGINE_VERSION="dummy"', '-DRE_PLUGIN_DIR="/usr/lib/rtpengine"', '-DWITH_IPTABLES_OPTION', '-DWITH_TRANSCODING', '-DHAVE_BCG729', '-O2', '-fstack-protector', '--param=ssp-buffer-size=4', '-Wformat', '-Werror=format-security', '-D_FORTIFY_SOURCE=2', # THIS IS IMPORTANT! Without a "-std=" flag, clang won't # know which language to use when compiling headers. So it will guess. # Badly. So C++ headers will be compiled as C headers. # You don't want that so ALWAYS specify # a "-std=". # For a C project, you would set this to something like 'c99' instead of # 'c++11'. '-std=c11', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c', ] if compilation_database_folder: database = ycm_core.CompilationDatabase(compilation_database_folder) else: database = None def DirectoryOfThisScript(): return os.path.dirname(os.path.abspath(__file__)) def MakeRelativePathsInFlagsAbsolute(flags, working_directory): if not working_directory: return flags new_flags = [] make_next_absolute = False path_flags = ['-isystem', '-I', '-iquote', '--sysroot='] for flag in flags: new_flag = flag if make_next_absolute: make_next_absolute = False if not flag.startswith('/'): new_flag = os.path.join(working_directory, flag) for path_flag in path_flags: if flag == path_flag: make_next_absolute = True break if flag.startswith(path_flag): path = flag[len(path_flag):] new_flag = path_flag + os.path.join(working_directory, path) break if new_flag: new_flags.append(new_flag) return new_flags def FlagsForFile(filename): if database: # Bear in mind that compilation_info.compiler_flags_ does NOT return a # python list, but a "list-like" StringVec object compilation_info = database.GetCompilationInfoForFile(filename) final_flags = PrepareClangFlags( MakeRelativePathsInFlagsAbsolute( compilation_info.compiler_flags_, compilation_info.compiler_working_dir_), filename) else: relative_to = DirectoryOfThisScript() final_flags = MakeRelativePathsInFlagsAbsolute(flags, relative_to) return { 'flags': final_flags, 'do_cache': True } rtpengine-mr12.5.1.22/t/Makefile000066400000000000000000000251561474347554000163050ustar00rootroot00000000000000TARGET= all-tests with_transcoding ?= yes CFLAGS?= -g -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wstrict-prototypes -Werror=return-type \ -Wshadow PRELOAD_CFLAGS := $(CFLAGS) CFLAGS+= -pthread -fno-strict-aliasing CFLAGS+= -std=c11 CFLAGS+= $(shell pkg-config --cflags glib-2.0) CFLAGS+= $(shell pkg-config --cflags gthread-2.0) CFLAGS+= $(shell pkg-config --cflags openssl) CFLAGS+= -I. -I../lib/ -I../kernel-module/ -I../include/ CFLAGS+= -D_GNU_SOURCE CFLAGS+= -DPCRE2_CODE_UNIT_WIDTH=8 CFLAGS+= $(shell pkg-config --cflags libpcre2-8) CFLAGS+= $(shell pkg-config --cflags json-glib-1.0) ifeq ($(with_transcoding),yes) CFLAGS+= $(shell pkg-config --cflags libavcodec) CFLAGS+= $(shell pkg-config --cflags libavformat) CFLAGS+= $(shell pkg-config --cflags libavutil) CFLAGS+= $(shell pkg-config --cflags libswresample) CFLAGS+= $(shell pkg-config --cflags libavfilter) CFLAGS+= $(shell pkg-config --cflags spandsp) CFLAGS+= $(shell pkg-config --cflags opus) CFLAGS+= -DWITH_TRANSCODING CFLAGS+= $(shell pkg-config --cflags zlib) CFLAGS+= $(shell pkg-config --cflags libwebsockets) CFLAGS+= $(shell pkg-config --cflags libevent_pthreads) CFLAGS+= $(shell pkg-config xmlrpc_client --cflags 2> /dev/null || xmlrpc-c-config client --cflags) CFLAGS+= $(shell pkg-config xmlrpc --cflags 2> /dev/null) CFLAGS+= $(shell pkg-config xmlrpc_util --cflags 2> /dev/null) ifeq ($(RTPENGINE_EXTENDED_TESTS),1) CFLAGS+= -DWITH_AMR_TESTS endif CFLAGS+= $(shell mysql_config --cflags) else CFLAGS+= -DWITHOUT_CODECLIB endif LDLIBS= -lm -ldl LDLIBS+= $(shell pkg-config --libs glib-2.0) LDLIBS+= $(shell pkg-config --libs gthread-2.0) LDLIBS+= $(shell pkg-config --libs libcrypto) LDLIBS+= $(shell pkg-config --libs openssl) LDLIBS+= $(shell pkg-config --libs libpcre2-8) LDLIBS+= $(shell pkg-config --libs json-glib-1.0) ifeq ($(with_transcoding),yes) LDLIBS+= $(shell pkg-config --libs libavcodec) LDLIBS+= $(shell pkg-config --libs libavformat) LDLIBS+= $(shell pkg-config --libs libavutil) LDLIBS+= $(shell pkg-config --libs libswresample) LDLIBS+= $(shell pkg-config --libs libavfilter) LDLIBS+= $(shell pkg-config --libs spandsp) LDLIBS+= $(shell pkg-config --libs opus) LDLIBS+= $(shell pkg-config --libs zlib) LDLIBS+= $(shell pkg-config --libs libwebsockets) LDLIBS+= -lpcap LDLIBS+= $(shell pkg-config --libs libevent_pthreads) LDLIBS+= $(shell pkg-config xmlrpc_client --libs 2> /dev/null || xmlrpc-c-config client --libs) LDLIBS+= $(shell pkg-config xmlrpc --libs 2> /dev/null) LDLIBS+= $(shell pkg-config xmlrpc_util --libs 2> /dev/null) LDLIBS+= -lhiredis LDLIBS+= $(shell mysql_config --libs) endif include ../lib/codec-chain.Makefile SRCS= test-bitstr.c aes-crypt.c aead-aes-crypt.c test-const_str_hash.strhash.c LIBSRCS= loglib.c auxlib.c str.c rtplib.c ssllib.c mix_buffer.c bufferpool.c DAEMONSRCS= crypto.c ssrc.c helpers.c rtp.c HASHSRCS= ifeq ($(with_transcoding),yes) SRCS+= test-transcode.c test-dtmf-detect.c test-payload-tracker.c test-resample.c test-stats.c SRCS+= spandsp_recv_fax_pcm.c spandsp_recv_fax_t38.c spandsp_send_fax_pcm.c \ spandsp_send_fax_t38.c test-mix-buffer.c ifeq ($(RTPENGINE_EXTENDED_TESTS),1) SRCS+= test-amr-decode.c test-amr-encode.c endif LIBSRCS+= codeclib.strhash.c resample.c socket.c streambuf.c dtmflib.c poller.c bufferpool.c DAEMONSRCS+= control_ng_flags_parser.c codec.c call.c ice.c kernel.c media_socket.c stun.c bencode.c \ dtls.c recording.c statistics.c rtcp.c redis.c iptables.c graphite.c \ cookie_cache.c udp_listener.c homer.c load.c cdr.c dtmf.c timerthread.c \ media_player.c jitter_buffer.c t38.c tcp_listener.c mqtt.c websocket.c cli.c \ audio_player.c HASHSRCS+= call_interfaces.c control_ng.c sdp.c janus.c LIBASM= mvr2s_x64_avx2.S mvr2s_x64_avx512.S mix_in_x64_avx2.S mix_in_x64_avx512bw.S mix_in_x64_sse2.S endif ifneq ($(have_liburing),yes) LIBSRCS+= uring.c endif OBJS= $(SRCS:.c=.o) $(LIBSRCS:.c=.o) $(DAEMONSRCS:.c=.o) $(HASHSRCS:.c=.strhash.o) $(LIBASM:.S=.o) COMMONOBJS= str.o auxlib.o rtplib.o loglib.o ssllib.o include ../lib/common.Makefile .PHONY: all-tests unit-tests daemon-tests daemon-tests \ daemon-tests-main daemon-tests-jb daemon-tests-dtx daemon-tests-dtx-cn daemon-tests-pubsub \ daemon-tests-intfs daemon-tests-stats daemon-tests-delay-buffer daemon-tests-delay-timing \ daemon-tests-evs daemon-tests-player-cache daemon-tests-redis TESTS= test-bitstr aes-crypt aead-aes-crypt test-const_str_hash.strhash ifeq ($(with_transcoding),yes) TESTS+= test-transcode test-dtmf-detect test-payload-tracker test-resample test-stats test-mix-buffer ifeq ($(RTPENGINE_EXTENDED_TESTS),1) TESTS+= test-amr-decode test-amr-encode endif endif ADD_CLEAN= tests-preload.so time-fudge-preload.so $(TESTS) ifeq ($(with_transcoding),yes) all-tests: unit-tests daemon-tests else all-tests: unit-tests endif true # override linking recipe from common.Makefile unit-tests: $(TESTS) failed="" ; \ for x in $(TESTS); do \ echo `date +"%Y-%m-%d %H:%M:%S"` testing: $$x ; \ G_DEBUG=fatal-warnings ./$$x ; \ if [ $$? -eq 0 ] ; \ then echo `date +"%Y-%m-%d %H:%M:%S"` test $$x: succeeded ; \ else echo `date +"%Y-%m-%d %H:%M:%S"` test $$x: failed ; failed="$$failed $$x" ; \ fi ; \ done ; \ if [ -n "$$failed" ] ; then \ echo "Tests failed: $$failed" ; \ exit 1 ; \ fi daemon-tests: daemon-tests-main daemon-tests-jb daemon-tests-pubsub daemon-tests-websocket \ daemon-tests-evs daemon-tests-async-tc \ daemon-tests-audio-player daemon-tests-audio-player-play-media \ daemon-tests-intfs daemon-tests-stats daemon-tests-player-cache daemon-tests-redis \ daemon-tests-rtpp-flags daemon-test-deps: tests-preload.so $(MAKE) -C ../daemon daemon-tests-main: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests.pl daemon-tests-jb: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-jb.pl daemon-tests-dtx: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtx.pl daemon-tests-dtx-cn: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-dtx-cn.pl daemon-tests-pubsub: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-pubsub.pl daemon-tests-stats: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-stats.pl daemon-tests-websocket: daemon-test-deps ./auto-test-helper "$@" python3 auto-daemon-tests-websocket.py daemon-tests-intfs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-intfs.pl daemon-tests-delay-buffer: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-delay-buffer.pl daemon-tests-delay-timing: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-delay-timing.pl daemon-tests-evs: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-evs.pl daemon-tests-player-cache: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-player-cache.pl daemon-tests-redis: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-redis.pl daemon-tests-audio-player: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-audio-player.pl daemon-tests-audio-player-play-media: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-audio-player-play-media.pl daemon-tests-rtpp-flags: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-rtpp-flags.pl daemon-tests-async-tc: daemon-test-deps ./auto-test-helper "$@" perl -I../perl auto-daemon-tests-async-tc.pl test-bitstr: test-bitstr.o test-mix-buffer: test-mix-buffer.o $(COMMONOBJS) mix_buffer.o ssrc.o rtp.o crypto.o helpers.o \ mix_in_x64_avx2.o mix_in_x64_sse2.o mix_in_x64_avx512bw.o codeclib.strhash.o dtmflib.o \ mvr2s_x64_avx2.o mvr2s_x64_avx512.o resample.o bufferpool.o uring.o poller.o spandsp_send_fax_pcm: spandsp_send_fax_pcm.o spandsp_recv_fax_pcm: spandsp_recv_fax_pcm.o spandsp_send_fax_t38: spandsp_send_fax_t38.o spandsp_recv_fax_t38: spandsp_recv_fax_t38.o spandsp_raw_fax_tests: spandsp_send_fax_pcm spandsp_recv_fax_pcm spandsp_send_fax_t38 spandsp_recv_fax_t38 test-amr-decode: test-amr-decode.o $(COMMONOBJS) codeclib.strhash.o resample.o dtmflib.o resample.o \ mvr2s_x64_avx2.o mvr2s_x64_avx512.o test-amr-encode: test-amr-encode.o $(COMMONOBJS) codeclib.strhash.o resample.o dtmflib.o \ mvr2s_x64_avx2.o mvr2s_x64_avx512.o test-dtmf-detect: test-dtmf-detect.o aes-crypt: aes-crypt.o $(COMMONOBJS) crypto.o aead-aes-crypt: aead-aes-crypt.o $(COMMONOBJS) crypto.o test-stats: test-stats.o $(COMMONOBJS) codeclib.strhash.o resample.o codec.o ssrc.o call.o ice.o helpers.o \ kernel.o media_socket.o stun.o bencode.o socket.o poller.o dtls.o recording.o statistics.o \ rtcp.o redis.o iptables.o graphite.o call_interfaces.strhash.o sdp.strhash.o rtp.o crypto.o \ control_ng_flags_parser.o control_ng.strhash.o graphite.o \ streambuf.o cookie_cache.o udp_listener.o homer.o load.o cdr.o dtmf.o timerthread.o \ media_player.o jitter_buffer.o dtmflib.o t38.o tcp_listener.o mqtt.o janus.strhash.o \ websocket.o cli.o mvr2s_x64_avx2.o mvr2s_x64_avx512.o audio_player.o mix_buffer.o \ mix_in_x64_avx2.o mix_in_x64_sse2.o mix_in_x64_avx512bw.o bufferpool.o uring.o test-transcode: test-transcode.o $(COMMONOBJS) codeclib.strhash.o resample.o codec.o ssrc.o call.o ice.o helpers.o \ kernel.o media_socket.o stun.o bencode.o socket.o poller.o dtls.o recording.o statistics.o \ rtcp.o redis.o iptables.o graphite.o call_interfaces.strhash.o sdp.strhash.o rtp.o crypto.o \ control_ng_flags_parser.o control_ng.strhash.o \ streambuf.o cookie_cache.o udp_listener.o homer.o load.o cdr.o dtmf.o timerthread.o \ media_player.o jitter_buffer.o dtmflib.o t38.o tcp_listener.o mqtt.o janus.strhash.o websocket.o \ cli.o mvr2s_x64_avx2.o mvr2s_x64_avx512.o audio_player.o mix_buffer.o \ mix_in_x64_avx2.o mix_in_x64_sse2.o mix_in_x64_avx512bw.o bufferpool.o uring.o test-resample: test-resample.o $(COMMONOBJS) codeclib.strhash.o resample.o dtmflib.o mvr2s_x64_avx2.o \ mvr2s_x64_avx512.o test-payload-tracker: test-payload-tracker.o $(COMMONOBJS) ssrc.o helpers.o auxlib.o rtp.o crypto.o codeclib.strhash.o \ resample.o dtmflib.o mvr2s_x64_avx2.o mvr2s_x64_avx512.o bufferpool.o uring.o poller.o test-kernel-module: test-kernel-module.o $(COMMONOBJS) kernel.o test-const_str_hash.strhash: test-const_str_hash.strhash.o $(COMMONOBJS) PRELOAD_CFLAGS += -D_GNU_SOURCE -std=c11 PRELOAD_LIBS += -ldl tests-preload.so: tests-preload.c $(CC) $(PRELOAD_CFLAGS) -o $@ -shared -fPIC $< $(PRELOAD_LIBS) time-fudge-preload.so: time-fudge-preload.c $(CC) $(PRELOAD_CFLAGS) -o $@ -shared -fPIC $< $(PRELOAD_LIBS) spandsp_send_fax_pcm.c: spandsp_logging.h spandsp_send_fax_t38.c: spandsp_logging.h spandsp_recv_fax_t38.c: spandsp_logging.h spandsp_recv_fax_pcm.c: spandsp_logging.h rtpengine-mr12.5.1.22/t/aead-aes-crypt.c000066400000000000000000000152341474347554000176040ustar00rootroot00000000000000#include #include #include "crypto.h" #include "rtplib.h" #include "log.h" #include "main.h" #include // rfc 7714 section 16 // contains 16/32 bytes of key, 12 bytes of salt [32:44] uint8_t test_key[44] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x51, 0x75, 0x69, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x20, 0x71, 0x75, 0x6f }; // rfc 7714 section 16 uint8_t srtp_pt[66] = { 0x80, 0x40, 0xf1, 0x7b, 0x80, 0x41, 0xf8, 0xd3, 0x55, 0x01, 0xa0, 0xb2, 0x47, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x20, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x6d, 0x6e, 0x69, 0x73, 0x20, 0x64, 0x69, 0x76, 0x69, 0x73, 0x61, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x72, 0x74, 0x65, 0x73, 0x20, 0x74, 0x72, 0x65, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; uint8_t answer128[66] = { 0x80, 0x40, 0xf1, 0x7b, 0x80, 0x41, 0xf8, 0xd3, 0x55, 0x01, 0xa0, 0xb2, 0xf2, 0x4d, 0xe3, 0xa3, 0xfb, 0x34, 0xde, 0x6c, 0xac, 0xba, 0x86, 0x1c, 0x9d, 0x7e, 0x4b, 0xca, 0xbe, 0x63, 0x3b, 0xd5, 0x0d, 0x29, 0x4e, 0x6f, 0x42, 0xa5, 0xf4, 0x7a, 0x51, 0xc7, 0xd1, 0x9b, 0x36, 0xde, 0x3a, 0xdf, 0x88, 0x33, 0x89, 0x9d, 0x7f, 0x27, 0xbe, 0xb1, 0x6a, 0x91, 0x52, 0xcf, 0x76, 0x5e, 0xe4, 0x39, 0x0c, 0xce }; uint8_t answer256[66] = { 0x80, 0x40, 0xf1, 0x7b, 0x80, 0x41, 0xf8, 0xd3, 0x55, 0x01, 0xa0, 0xb2, 0x32, 0xb1, 0xde, 0x78, 0xa8, 0x22, 0xfe, 0x12, 0xef, 0x9f, 0x78, 0xfa, 0x33, 0x2e, 0x33, 0xaa, 0xb1, 0x80, 0x12, 0x38, 0x9a, 0x58, 0xe2, 0xf3, 0xb5, 0x0b, 0x2a, 0x02, 0x76, 0xff, 0xae, 0x0f, 0x1b, 0xa6, 0x37, 0x99, 0xb8, 0x7b, 0x7a, 0xa3, 0xdb, 0x36, 0xdf, 0xff, 0xd6, 0xb0, 0xf9, 0xbb, 0x78, 0x78, 0xd7, 0xa7, 0x6c, 0x13 }; // rfc 7714 section 17.1 - this is NOT the same // as the putative test vector in section 17 // typo perhaps? uint8_t srtcp_pt[68] = { 0x81, 0xc8, 0x00, 0x0d, 0x4d, 0x61, 0x72, 0x73, 0x4e, 0x54, 0x50, 0x31, 0x4e, 0x54, 0x50, 0x32, 0x52, 0x54, 0x50, 0x20, 0x00, 0x00, 0x04, 0x2a, 0x00, 0x00, 0xe9, 0x30, 0x4c, 0x75, 0x6e, 0x61, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; uint8_t answer128_srtcp[72] = { 0x81, 0xc8, 0x00, 0x0d, 0x4d, 0x61, 0x72, 0x73, 0x63, 0xe9, 0x48, 0x85, 0xdc, 0xda, 0xb6, 0x7c, 0xa7, 0x27, 0xd7, 0x66, 0x2f, 0x6b, 0x7e, 0x99, 0x7f, 0xf5, 0xc0, 0xf7, 0x6c, 0x06, 0xf3, 0x2d, 0xc6, 0x76, 0xa5, 0xf1, 0x73, 0x0d, 0x6f, 0xda, 0x4c, 0xe0, 0x9b, 0x46, 0x86, 0x30, 0x3d, 0xed, 0x0b, 0xb9, 0x27, 0x5b, 0xc8, 0x4a, 0xa4, 0x58, 0x96, 0xcf, 0x4d, 0x2f, 0xc5, 0xab, 0xf8, 0x72, 0x45, 0xd9, 0xea, 0xde, 0x80, 0x00, 0x05, 0xd4 }; uint8_t answer256_srtcp[72] = { 0x81, 0xc8, 0x00, 0x0d, 0x4d, 0x61, 0x72, 0x73, 0xd5, 0x0a, 0xe4, 0xd1, 0xf5, 0xce, 0x5d, 0x30, 0x4b, 0xa2, 0x97, 0xe4, 0x7d, 0x47, 0x0c, 0x28, 0x2c, 0x3e, 0xce, 0x5d, 0xbf, 0xfe, 0x0a, 0x50, 0xa2, 0xea, 0xa5, 0xc1, 0x11, 0x05, 0x55, 0xbe, 0x84, 0x15, 0xf6, 0x58, 0xc6, 0x1d, 0xe0, 0x47, 0x6f, 0x1b, 0x6f, 0xad, 0x1d, 0x1e, 0xb3, 0x0c, 0x44, 0x46, 0x83, 0x9f, 0x57, 0xff, 0x6f, 0x6c, 0xb2, 0x6a, 0xc3, 0xbe, 0x80, 0x00, 0x05, 0xd4 }; struct rtpengine_config rtpe_config = { }; int main(void) { str suite, payload; const struct crypto_suite *c; struct crypto_context ctx; int rc; uint8_t working[100]; crypto_init_main(); str_init(&suite, "AEAD_AES_128_GCM"); c = crypto_find_suite(&suite); assert(c); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; ctx.session_key_ctx[0] = EVP_CIPHER_CTX_new(); memcpy(ctx.session_key, test_key, 16); memcpy(ctx.session_salt, (uint8_t *)test_key + 32, 12); memcpy(working, srtp_pt, 50); payload.len = 38; payload.s = (char *) working + 12; rc = crypto_encrypt_rtp(&ctx, (struct rtp_header *)working, &payload, 0x00000000f17bULL); assert(rc == 0 && payload.len == 54); assert(memcmp(working, answer128, 66) == 0); printf("RTP/AEAD-AES-128-GCM Encrypt - PASS\n"); payload.len = 54; payload.s = (char *) working + 12; rc = crypto_decrypt_rtp(&ctx, (struct rtp_header *)working, &payload, 0x00000000f17bULL); assert(rc == 0 && payload.len == 38); assert(memcmp(working, srtp_pt, 50) == 0); printf("RTP/AEAD-AES-128-GCM Decrypt - PASS\n"); // RTCP memcpy(working, srtcp_pt, 52); payload.len = 44; payload.s = (char *) working + 8; rc = crypto_encrypt_rtcp(&ctx, (struct rtcp_packet *)working, &payload, 0x0000000005d4ULL); assert(rc == 0 && payload.len == 60); assert(memcmp(working, answer128_srtcp, 68) == 0); printf("RTCP/AEAD-AES-128-GCM Encrypt - PASS\n"); payload.len = 60; payload.s = (char *) working + 8; rc = crypto_decrypt_rtcp(&ctx, (struct rtcp_packet *)working, &payload, 0x000000005d4ULL); assert(rc == 0 && payload.len == 44); assert(memcmp(working, srtcp_pt, 52) == 0); printf("RTCP/AEAD-AES-128-GCM Decrypt - PASS\n"); crypto_cleanup_session_key(&ctx); // AES 256 str_init(&suite, "AEAD_AES_256_GCM"); c = crypto_find_suite(&suite); assert(c); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; ctx.session_key_ctx[0] = EVP_CIPHER_CTX_new(); memcpy(ctx.session_key, test_key, 32); memcpy(ctx.session_salt, (uint8_t *)test_key + 32, 12); memcpy(working, srtp_pt, 50); payload.len = 38; payload.s = (char *) working + 12; rc = crypto_encrypt_rtp(&ctx, (struct rtp_header *)working, &payload, 0x00000000f17bULL); assert(rc == 0 && payload.len == 54); assert(memcmp(working, answer256, 66) == 0); printf("RTP/AEAD-AES-256-GCM Encrypt - PASS\n"); payload.len = 54; payload.s = (char *) working + 12; rc = crypto_decrypt_rtp(&ctx, (struct rtp_header *)working, &payload, 0x00000000f17bULL); assert(rc == 0 && payload.len == 38); assert(memcmp(working, srtp_pt, 50) == 0); printf("RTP/AEAD-AES-256-GCM Decrypt - PASS\n"); // RTCP memcpy(working, srtcp_pt, 52); payload.len = 44; payload.s = (char *) working + 8; rc = crypto_encrypt_rtcp(&ctx, (struct rtcp_packet *)working, &payload, 0x0000000005d4ULL); assert(rc == 0 && payload.len == 60); assert(memcmp(working, answer256_srtcp, 68) == 0); printf("RTCP/AEAD-AES-256-GCM Encrypt - PASS\n"); payload.len = 60; payload.s = (char *) working + 8; rc = crypto_decrypt_rtcp(&ctx, (struct rtcp_packet *)working, &payload, 0x000000005d4ULL); assert(rc == 0 && payload.len == 44); assert(memcmp(working, srtcp_pt, 52) == 0); printf("RTCP/AEAD-AES-256-GCM Decrypt - PASS\n"); crypto_cleanup_session_key(&ctx); } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/aes-crypt.c000066400000000000000000000230621474347554000167120ustar00rootroot00000000000000#include #include #include "crypto.h" #include "rtplib.h" #include "log.h" #include "main.h" #include "ssllib.h" struct rtpengine_config rtpe_config; uint8_t test_key[46] = { 0xe1, 0xf9, 0x7a, 0x0d, 0x3e, 0x01, 0x8b, 0xe0, 0xd6, 0x4f, 0xa3, 0x2c, 0x06, 0xde, 0x41, 0x39, 0x0e, 0xc6, 0x75, 0xad, 0x49, 0x8a, 0xfe, 0xeb, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6, 0xc1, 0x73, 0xc3, 0x17, 0xf2, 0xda, 0xbe, 0x35, 0x77, 0x93, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6 }; uint8_t rtp_plaintext_ref[28] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab }; uint8_t rtcp_plaintext_ref[24] = { 0x81, 0xc8, 0x00, 0x0b, 0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, }; // SRTP Test Vectors // ROC = 0, SSRC = 0xcafebabe, SEQ_NUM = 0x1234 uint8_t srtp_ciphertext_128[38] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0x4e, 0x55, 0xdc, 0x4c, 0xe7, 0x99, 0x78, 0xd8, 0x8c, 0xa4, 0xd2, 0x15, 0x94, 0x9d, 0x24, 0x02, 0xb7, 0x8d, 0x6a, 0xcc, 0x99, 0xea, 0x17, 0x9b, 0x8d, 0xbb }; uint8_t srtp_ciphertext_192[38] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0x01, 0x57, 0x81, 0x89, 0x44, 0x62, 0x52, 0x9d, 0x91, 0xcf, 0x36, 0x59, 0xd2, 0x46, 0x2d, 0xb3, 0x08, 0xd9, 0xa0, 0x44, 0xc5, 0xd7, 0xd6, 0x8b, 0x26, 0xba }; uint8_t srtp_ciphertext_256[38] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0x00, 0x98, 0x21, 0x9f, 0x7e, 0xbd, 0xba, 0x1c, 0x3d, 0x22, 0xf4, 0x93, 0x6f, 0x1e, 0xac, 0x99, 0x06, 0xf6, 0xb2, 0x27, 0xc8, 0x49, 0x61, 0xa7, 0xb4, 0x28 }; // SRTCP Test Vectors // SSRC = 0xcafebabe uint8_t srtcp_ciphertext_128[38] = { 0x81, 0xc8, 0x00, 0x0b, 0xca, 0xfe, 0xba, 0xbe, 0x71, 0x28, 0x03, 0x5b, 0xe4, 0x87, 0xb9, 0xbd, 0xbe, 0xf8, 0x90, 0x41, 0xf9, 0x77, 0xa5, 0xa8, 0x80, 0x00, 0x00, 0x01, 0x99, 0x3e, 0x08, 0xcd, 0x54, 0xd6, 0xc1, 0x23, 0x07, 0x98 }; uint8_t srtcp_ciphertext_192[38] = { 0x81, 0xc8, 0x00, 0x0b, 0xca, 0xfe, 0xba, 0xbe, 0x96, 0x6d, 0x60, 0x3e, 0x71, 0xf9, 0xaf, 0x33, 0x5c, 0xf9, 0x09, 0x1a, 0x50, 0xca, 0x4d, 0x3a, 0x80, 0x00, 0x00, 0x01, 0xd4, 0x2b, 0x40, 0x21, 0x8d, 0xde, 0x49, 0x90, 0xbd, 0xef }; uint8_t srtcp_ciphertext_256[38] = { 0x81, 0xc8, 0x00, 0x0b, 0xca, 0xfe, 0xba, 0xbe, 0x0a, 0x86, 0x5d, 0x33, 0x9e, 0x31, 0x26, 0x93, 0x59, 0x23, 0x87, 0xd4, 0x5b, 0x99, 0xa5, 0x57, 0x80, 0x00, 0x00, 0x01, 0x84, 0xf3, 0xb4, 0xf2, 0xb5, 0x95, 0x61, 0x5a, 0xf9, 0xb5 }; // Another set of AES-256 test vectors from libsrtp uint8_t aes_256_test_key[46] = { 0xf0, 0xf0, 0x49, 0x14, 0xb5, 0x13, 0xf2, 0x76, 0x3a, 0x1b, 0x1f, 0xa1, 0x30, 0xf1, 0x0e, 0x29, 0x98, 0xf6, 0xf6, 0xe4, 0x3e, 0x43, 0x09, 0xd1, 0xe6, 0x22, 0xa0, 0xe3, 0x32, 0xb9, 0xf1, 0xb6, 0x3b, 0x04, 0x80, 0x3d, 0xe5, 0x1e, 0xe7, 0xc9, 0x64, 0x23, 0xab, 0x5b, 0x78, 0xd2 }; uint8_t aes_256_rtp_plaintext_ref[28] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab }; uint8_t aes_256_srtp_ciphertext[38] = { 0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad, 0xca, 0xfe, 0xba, 0xbe, 0xf1, 0xd9, 0xde, 0x17, 0xff, 0x25, 0x1f, 0xf1, 0xaa, 0x00, 0x77, 0x74, 0xb0, 0xb4, 0xb4, 0x0d, 0xa0, 0x8d, 0x9d, 0x9a, 0x5b, 0x3a, 0x55, 0xd8, 0x87, 0x3b }; #define RTP_HEADER_LEN 12 #define RTCP_HEADER_LEN 8 // Test: AES-128 CM void srtp_validate (struct crypto_context *c, struct crypto_context *c2, char* message, uint8_t *plaintext, uint8_t *ciphertext, uint8_t *rtcp_plaintext, uint8_t *rtcp_ciphertext) { str payload, hash; char o_hash[10]; char srtp_plaintext[38]; char srtp_ciphertext[38]; char srtcp_plaintext[38]; char srtcp_ciphertext[38]; memcpy(srtp_plaintext, plaintext, 28); memcpy(srtp_ciphertext, ciphertext, 38); // in-place crypto so we must encrypt first payload.len = 16; payload.s = srtp_plaintext+RTP_HEADER_LEN; crypto_encrypt_rtp(c, (struct rtp_header *)srtp_plaintext, &payload, ntohs(((struct rtp_header *)srtp_plaintext)->seq_num)); hash.len = 28; hash.s = srtp_plaintext; c->params.crypto_suite->hash_rtp(c, srtp_plaintext+28, &hash, ntohs(((struct rtp_header *)srtp_plaintext)->seq_num)); assert( memcmp(payload.s, srtp_ciphertext+RTP_HEADER_LEN, 26) == 0 ); printf("%s RTP encrypt: PASS\n", message); hash.s = srtp_ciphertext; c->params.crypto_suite->hash_rtp(c, o_hash, &hash, ntohs(((struct rtp_header *)srtp_plaintext)->seq_num)); payload.len = 16; payload.s = srtp_ciphertext+RTP_HEADER_LEN; crypto_decrypt_rtp(c, (struct rtp_header *)srtp_ciphertext, &payload, ntohs(((struct rtp_header *)srtp_ciphertext)->seq_num)); assert( memcmp(payload.s, rtp_plaintext_ref+RTP_HEADER_LEN, 16) == 0 ); assert( memcmp(o_hash, srtp_ciphertext+RTP_HEADER_LEN+16, 10) == 0 ); printf("%s RTP decrypt: PASS\n", message); // in-place crypto so we must encrypt first if (!c2) return; memcpy(srtcp_plaintext, rtcp_plaintext, 24); memcpy(srtcp_ciphertext, rtcp_ciphertext, 38); memcpy(srtcp_plaintext+24, srtcp_ciphertext+24, 4); payload.len = 16; payload.s = srtcp_plaintext+RTCP_HEADER_LEN; crypto_encrypt_rtcp(c2, (struct rtcp_packet *)srtcp_plaintext, &payload, 1); hash.len = 28; hash.s = srtcp_plaintext; c->params.crypto_suite->hash_rtcp(c2, srtcp_plaintext+28, &hash); assert( memcmp(payload.s, srtcp_ciphertext+RTCP_HEADER_LEN, 30) == 0 ); printf("%s RTCP encrypt: PASS\n", message); hash.s = srtcp_ciphertext; c->params.crypto_suite->hash_rtcp(c2, o_hash, &hash); payload.len = 16; payload.s = srtcp_ciphertext+RTCP_HEADER_LEN; crypto_decrypt_rtcp(c2, (struct rtcp_packet *)srtcp_ciphertext, &payload, 1); assert( memcmp(payload.s, rtcp_plaintext_ref+RTCP_HEADER_LEN, 16) == 0 ); assert( memcmp(o_hash, srtcp_ciphertext+RTCP_HEADER_LEN+16+4, 10) == 0 ); printf("%s RTCP decrypt: PASS\n", message); } extern void crypto_init_main(void); void check_session_keys(struct crypto_context *c, int i) { str s; str_init_len_assert(&s, c->session_key, c->params.crypto_suite->session_key_len); if (crypto_gen_session_key(c, &s, i++, 6)) goto error; str_init_len_assert(&s, c->session_auth_key, c->params.crypto_suite->srtp_auth_key_len); if (crypto_gen_session_key(c, &s, i++, 6)) goto error; str_init_len_assert(&s, c->session_salt, c->params.crypto_suite->session_salt_len); if (crypto_gen_session_key(c, &s, i, 6)) goto error; c->have_session_key = 1; crypto_init_session_key(c); error: return; } int main(int argc, char** argv) { str suite; const struct crypto_suite *c; struct crypto_context ctx, ctx2; crypto_init_main(); rtpe_ssl_init(); str_init(&suite, "AES_CM_128_HMAC_SHA1_80"); c = crypto_find_suite(&suite); assert(c); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; memcpy(ctx.params.master_key, test_key, 16); memcpy(ctx.params.master_salt, (uint8_t*)test_key+16, 14); ctx.params.mki_len = 0; check_session_keys(&ctx, 0); memset(&ctx2, 0, sizeof(ctx2)); ctx2.params.crypto_suite = c; memcpy(ctx2.params.master_key, test_key, 16); memcpy(ctx2.params.master_salt, (uint8_t*)test_key+16, 14); ctx2.params.mki_len = 0; check_session_keys(&ctx2, 3); srtp_validate(&ctx, &ctx2, "SRTP AES-CM-128", rtp_plaintext_ref, srtp_ciphertext_128, rtcp_plaintext_ref, srtcp_ciphertext_128); str_init(&suite, "AES_192_CM_HMAC_SHA1_80"); c = crypto_find_suite(&suite); assert(c); crypto_cleanup_session_key(&ctx); crypto_cleanup_session_key(&ctx2); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; memcpy(ctx.params.master_key, test_key, 24); memcpy(ctx.params.master_salt, (uint8_t*)test_key+24, 14); ctx.params.mki_len = 0; check_session_keys(&ctx, 0); memset(&ctx2, 0, sizeof(ctx2)); ctx2.params.crypto_suite = c; memcpy(ctx2.params.master_key, test_key, 24); memcpy(ctx2.params.master_salt, (uint8_t*)test_key+24, 14); ctx2.params.mki_len = 0; check_session_keys(&ctx2, 3); srtp_validate(&ctx, &ctx2, "SRTP AES-CM-192", rtp_plaintext_ref, srtp_ciphertext_192, rtcp_plaintext_ref, srtcp_ciphertext_192); str_init(&suite, "AES_256_CM_HMAC_SHA1_80"); c = crypto_find_suite(&suite); assert(c); crypto_cleanup_session_key(&ctx); crypto_cleanup_session_key(&ctx2); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; memcpy(ctx.params.master_key, test_key, 32); memcpy(ctx.params.master_salt, (uint8_t*)test_key+32, 14); ctx.params.mki_len = 0; check_session_keys(&ctx, 0); memset(&ctx2, 0, sizeof(ctx2)); ctx2.params.crypto_suite = c; memcpy(ctx2.params.master_key, test_key, 32); memcpy(ctx2.params.master_salt, (uint8_t*)test_key+32, 14); ctx2.params.mki_len = 0; check_session_keys(&ctx2, 3); srtp_validate(&ctx, &ctx2, "SRTP AES-CM-256", rtp_plaintext_ref, srtp_ciphertext_256, rtcp_plaintext_ref, srtcp_ciphertext_256); crypto_cleanup_session_key(&ctx); crypto_cleanup_session_key(&ctx2); memset(&ctx, 0, sizeof(ctx)); ctx.params.crypto_suite = c; memcpy(ctx.params.master_key, aes_256_test_key, 32); memcpy(ctx.params.master_salt, (uint8_t*)aes_256_test_key+32, 14); ctx.params.mki_len = 0; check_session_keys(&ctx, 0); srtp_validate(&ctx, NULL, "extra AES-CM-256", aes_256_rtp_plaintext_ref, aes_256_srtp_ciphertext, NULL, NULL); crypto_cleanup_session_key(&ctx); } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/auto-daemon-tests-async-tc.pl000077500000000000000000000371401474347554000222710ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use NGCP::Rtpclient::ICE; use POSIX; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 --codec-num-threads=2 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 --log-level-internals=7)) or die; my $extended_tests = $ENV{RTPENGINE_EXTENDED_TESTS}; # 100 ms sine wave my $pcma_1 = "\xd5\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\x55\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c"; my $pcma_2 = "\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\xd5\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\xd5\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09"; my $pcma_3 = "\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\x55\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0"; my $pcma_4 = "\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\x55\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\x55\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1"; my $pcma_5 = "\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\xd5\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34"; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq, $has_recv); if ($extended_tests) { ($sock_a, $sock_b) = new_call([qw(198.51.100.43 6060)], [qw(198.51.100.43 6062)]); ($port_a) = offer('opus fmtp options, full offer list', { codec => { transcode => ['opus/48000/2///maxaveragebitrate--40000;maxplaybackrate--32000;sprop-stereo--0;stereo--0;cbr--0;useinbandfec--0;usedtx--0;sprop-maxcapturerate--16000', 'PCMU'], mask => ['all'] } }, < { transcode => ['PCMA'], mask => ['opus'] } }, < { transcode => ['opus'] } }, < { transcode => ['opus/48000/2///useinbandfec=1;stereo=1;sprop-stereo=1'] } }, < { transcode => ['opus/48000/2///useinbandfec=1;stereo=0;sprop-stereo=0'] } }, < { transcode => ['opus/48000/2///stereo=1;sprop-stereo=0'] } }, < { transcode => ['opus/48000/2///stereo=0;sprop-stereo=1'] } }, < { transcode => ['PCMA'], mask => ['opus'] } }, < 'force' }, < 'force' }, < 'force', flags => ['early media'] }, < 'force', flags => ['early media'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; rcv_no($sock_b); ($seq_a, $ts_a, $ssrc_a) = rcv($sock_a, $port_b, rtpm(8 | 0x80, -1, -1, -1, ("\xd5" x 40) . substr($pcma_1, 0, 120))); rcv($sock_a, $port_b, rtpm(8, $seq_a + 1, $ts_a + 160 * 1, $ssrc_a, substr($pcma_1, 120, 40) . substr($pcma_2, 0, 120))); # XXX TODO: pending "player end" event implementation #rcv($sock_a, $port_b, rtpm(8, $seq_a + 2, $ts_a + 160 * 2, $ssrc_a, substr($pcma_2, 120, 40) . substr($pcma_3, 0, 120))); #rcv($sock_a, $port_b, rtpm(8, $seq_a + 3, $ts_a + 160 * 3, $ssrc_a, substr($pcma_3, 120, 40) . substr($pcma_4, 0, 120))); #rcv($sock_a, $port_b, rtpm(8, $seq_a + 4, $ts_a + 160 * 4, $ssrc_a, substr($pcma_4, 120, 40) . substr($pcma_5, 0, 120))); #rcv_no($sock_a); #rcv_no($sock_b); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-audio-player.pl000077500000000000000000000127411474347554000231430ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use NGCP::Rtpclient::ICE; use POSIX; $ENV{RTPENGINE_EXTENDED_TESTS} or exit(); # timing sensitive tests autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --audio-buffer-length=500 --audio-buffer-delay=5 --audio-player=on-demand)) or die; my ($sock_a, $sock_b, $port_a, $port_b, $ssrc_a, $ssrc_b, $seq_a, $seq_b, $ts_a, $ts_b); ($sock_a, $sock_b) = new_call([qw(198.51.100.14 6008)], [qw(198.51.100.14 6010)]); ($port_a) = offer('control', { }, < 'force' }, < 'force' }, < 'force', flags => ['early media'] }, < 'force', flags => ['early media'] }, < ft(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'silence', 'delay-buffer' => 1, 'DTMF-delay' => 60 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\xe0")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; $rseq = $seq; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x02\x80")); rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; # end snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x03\xc0")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; # back to PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x02\x80")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x03\x20")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x03\xc0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x04\x60")); rcv($sock_b, $port_a, rtpm(101, 1001 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x04\x60")); rcv($sock_b, $port_a, rtpm(101, 1002 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x04\x60")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4004)], [qw(198.51.100.1 5004)]); ($port_a) = offer('DTMF delay - PCM', { }, < ft(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'silence', 'delay-buffer' => 1, 'DTMF-delay' => 60 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by silence rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xc0\xe9\xfe\xcc\xc6\x66\x35\x2d\x3b\xbe\xa9\xac\xce\x36\x2e\x3b\xe4\xc8\xda\x68\xd7\xbb\xb7\xd6\x35\x29\x31\xd2\xac\xab\xbf\x43\x37\x41\x6e\xfb\x4d\x48\xdb\xb4\xad\xbf\x3b\x29\x2c\x5a\xb3\xae\xbd\x5b\x46\x59\xec\x54\x3b\x38\x63\xb3\xaa\xb4\x4a\x2b\x2c\x44\xbf\xb6\xc2\xf8\x75\xce\xcb\x54\x33\x2e\x44\xb8\xa9\xae\xf0\x31\x2e\x3e\xd4\xc4\xd8\x70\xd2\xbb\xba\x7c\x31\x2a\x37\xc3\xab\xac\xca\x3c\x35\x43\xfa\xef\x4f\x4e\xce\xb2\xaf\xca\x35\x28\x2f\xe3\xaf\xae\xc1\x4e\x43\x57\xf6\x50\x3b\x3c\xe1\xaf\xaa\xba\x3e\x2a\x2d\x50\xba\xb4\xc4\x6e\x6b\xd1\xd1\x4b\x32\x30\x52\xb2\xa8\xb1\x53\x2e\x2e\x45\xca\xc1\xd6\x7a\xcf\xbc\xbe\x56\x2f\x2b\x3d\xba")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xa9\xae\xdb\x38\x34\x46\xe7\xe7\x54\x56\xc8\xb2\xb2\xdf\x30\x28\x33\xca\xad\xae\xc9\x47\x40\x55\xfe\x4f\x3c\x40\xce\xae\xac\xc1\x37\x29\x2f\x70\xb6\xb4\xc8\x5f\x62\xd6\xdb\x46\x32\x34\xfd\xae\xa9\xb6\x44\x2c\x2f\x4d\xc3\xbf\xd6\xfe\xce\xbd\xc3\x49\x2d\x2c\x48\xb4\xa9\xb0\x65\x34\x34\x4a\xdb\xdf\x59\x60\xc3\xb2\xb6\x5e\x2d\x29\x39\xbe\xac\xaf\xd5\x40\x3e\x56\x7d\x4e\x3d\x47\xc4\xad\xad\xd0\x31\x28\x32\xd6\xb2\xb4\xcd\x57\x5c\xdb\xe9\x41\x32\x38\xd2\xad\xaa\xbd\x3b\x2b\x30\x5e\xbe\xbe\xd7\xfe\xce\xbe\xcb\x40\x2d\x2e\x5d\xaf\xa9\xb5\x4c\x30\x34\x4f\xd2\xda\x5e\x74\xc0\xb3\xbb\x4a\x2c\x2a\x41\xb8\xab\xb2\xf2\x3c\x3d\x58\xfe\x4e\x3f\x4f")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4008)], [qw(198.51.100.1 5008)]); ($port_a) = offer('DTMF trigger', { }, < ft(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'tone', 'delay-buffer' => 1, 'DTMF-delay' => 100 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\xe0")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x02\x80")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x03\x20")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; $rseq = $seq; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x03\xc0")); rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x04\x60")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; # end snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x05\x00")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; # back to PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x02\x80")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x03\x20")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x03\xc0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x04\x60")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x0a\x05\x00")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x05\xa0")); rcv($sock_b, $port_a, rtpm(101, 1001 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x05\xa0")); rcv($sock_b, $port_a, rtpm(101, 1002 + $seq, 3000 + 160 * $rseq, 0x1234, "\x05\x8a\x05\xa0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # trigger $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x8a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x0a\x00\xa0")); # trigger matched, now tone rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x8a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x01\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x01\x8a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x02\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x02\x8a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # end trigger $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x0a\x00\xa0")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x0b\x8a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2000)], [qw(198.51.100.1 3000)]); ($port_a) = offer('PCM DTMF block', { }, < ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by tone rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'PCM DTMF block', { 'from-tag' => ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # start DTMF, interleaved with receiving older audio snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; # still buffered silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; # now replaced by tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; # back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2002)], [qw(198.51.100.1 3002)]); ($port_a) = offer('PCM DTMF block w transcoding', { codec => { transcode => ['PCMA'] } }, < ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9b\x87\x97\x64\x10\x6b\x41\xdc\x73\x66\xd1\x91\x9a\x97\x6d\x07\x04\x67\x91\x9a\x96\x5c\x60\x7d\xd3\x4d\x6b\x11\x7c\x91\x87\x9e\x4f\x1a\x04\x15\xe0\x93\xe8\xda\x59\xf1\xe4\x44\x10\x1b\x6b\xeb\x87\x85\xfc\x12\x1a\x17\xc3\xe2\xfc\x51\xc9\xeb\x96\xcb\x13\x07\x1c\xff\x85\x84\xee\x6f\x12\x68\x5c\xc5\x76\x7b\xc9\x93\x98\xef\x14\x06\x1a\x4f\x9c\x9a\x95\x77\x6c\x7f\xd7\x75\x6b\x14\x59\x9d\x87\x93\x66\x04\x04\x63\xeb\x9d\xe9\xd7\x41\xf4\xff\x71\x12\x19\x61\x91\x86\x9b\xd5\x1e\x1a\x68\xfc\xee\xff\x55\xf4\xeb\x95\x53\x1c\x04\x11\xec\x87\x85\xe5\x14\x1d\x6f\xd1\xcd\x4b\x73\xfc\x92\x9f\xfb\x12\x06\x19\xcd\x98\x9a\xef\x65\x69\x7e\x55\x77\x68")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x68\xc2\x9e\x84\x94\x6b\x07\x1a\x72\x96\x9c\xec\x59\x49\xcf\xf7\x7b\x12\x1c\x76\x9c\x86\x9f\x7c\x1a\x1a\x63\xe6\xeb\xfe\xd5\xf6\xe9\xef\x71\x19\x05\x68\x97\x86\x9b\xc2\x10\x1c\x62\xc1\xf5\x43\x49\xe4\x92\x92\xda\x1e\x06\x12\xe7\x85\x9b\xe7\x62\x6b\x7e\x55\x76\x69\x62\xf9\x98\x85\xe2\x10\x06\x18\x54\x92\x9c\xe0\x49\x76\xc7\xc3\x66\x12\x13\xd3\x98\x86\x91\x6c\x05\x1b\x79\xef\x95\xff\x54\xf6\xef\xe1\x67\x1b\x1a\x64\x9d\x86\x9e\x43\x1c\x1c\x67\xf6\xf0\x5a\x5a\xe0\x92\x91\x49\x1b\x07\x17\xeb\x84\x98\xf6\x68\x15\x7c\xd7\x76\x6c\x64\xe0\x9b\x9b\xf0\x1f\x06\x1c\xf3\x9e\x9c\xe5\x72\x72\xde\xdd\x63\x12\x17\xfd\x9a\x87\xe8\x17\x04\x1e\x41\x95")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by tone rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w transcoding', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'PCM DTMF block w transcoding', { 'from-tag' => ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # start DTMF, interleaved with receiving older audio snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; # still buffered silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; # now replaced by tone rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; # back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w transcoding', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2004)], [qw(198.51.100.1 3004)]); ($port_a) = offer('PCM DTMF block w event PT', { }, < ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); # replaced by tone rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w event PT', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'PCM DTMF block w event PT', { 'from-tag' => ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # send interleaved with received old PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # send some non-silence to make sure we drop it snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # start DTMF $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; # tone output immediately rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; # input some non-silence to make sure it's also dropped snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; # switch back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35\xff\xb5\xa7\x9f\x9c\x9b\x9c\x9f\xa7\xb5\xff\x35\x27\x1f\x1c\x1b\x1c\x1f\x27\x35")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w event PT', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2006)], [qw(198.51.100.1 3006)]); ($port_a) = offer('PCM DTMF block w transcoding w event PT', { codec => { transcode => ['PCMA'] } }, < ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); # replaced by tone rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w transcoding w event PT', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'PCM DTMF block w transcoding w event PT', { 'from-tag' => ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # send interleaved with received old PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # send some non-silence to make sure we drop it snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # start DTMF $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; # tone output immediately rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; # input some non-silence to make sure it's also dropped snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; # switch back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c\xd5\x9c\x82\xb5\xb6\xb1\xb6\xb5\x82\x9c\xd5\x1c\x02\x35\x36\x31\x36\x35\x02\x1c")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block w transcoding w event PT', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2008)], [qw(198.51.100.1 3008)]); ($port_a) = offer('zero DTMF block w event PT', { }, < ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); # replaced by zero rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x00\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x00\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x00\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w event PT', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'zero DTMF block w event PT', { 'from-tag' => ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # send interleaved with received old PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # send some non-silence to make sure we drop it snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # start DTMF $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; # buffered PCM now replaced by silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; # input some non-silence to make sure it's also dropped snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # still silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # now the adjusted DTMF is getting through $sseq = $rseq; rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, "\x00\x0a\x00\xa0")); $rseq++; # continue non-silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(101, 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, "\x00\x0a\x01\x40")); $rseq++; # switch back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # old DTMF end event now coming through rcv($sock_b, $port_a, rtpm(101, 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, "\x00\x8a\x01\xe0")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # audio still replaced by silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xff" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w event PT', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2010)], [qw(198.51.100.1 3010)]); ($port_a) = offer('zero DTMF block w transcoding w event PT', { codec => { transcode => ['PCMA'] } }, < ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); # replaced by zero rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, $ssrc, "\x00\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $sseq, $ssrc, "\x00\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); rcv($sock_b, $port_a, rtpm(101, 1000 + $seq, 3000 + 160 * $sseq, $ssrc, "\x00\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w transcoding w event PT', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'zero DTMF block w transcoding w event PT', { 'from-tag' => ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # send interleaved with received old PCM snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # send some non-silence to make sure we drop it snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x11" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # start DTMF $sseq = $seq; snd($sock_a, $port_b, rtp(101 | 0x80, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x00\xa0")); Time::HiRes::usleep(18000); $seq++; # buffered PCM now replaced by silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x0a\x01\x40")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(101, 1000 + $seq, 3000 + 160 * $sseq, 0x1234, "\x05\x8a\x01\xe0")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; # input some non-silence to make sure it's also dropped snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # still silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; # now the adjusted DTMF is getting through $sseq = $rseq; rcv($sock_b, $port_a, rtpm(101 | 0x80, 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, "\x00\x0a\x00\xa0")); $rseq++; # continue non-silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x22" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(101, 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, "\x00\x0a\x01\x40")); $rseq++; # switch back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # old DTMF end event now coming through rcv($sock_b, $port_a, rtpm(101, 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, "\x00\x8a\x01\xe0")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xd5" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w transcoding w event PT', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2016)], [qw(198.51.100.1 3016)]); ($port_a) = offer('zero DTMF block', { }, < ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by DTMF zero rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xb8\x2b\x1c\x22\xcc\x9f\x9d\xb6\x2f\x24\x2f\xe2\xbd\xcd\x6b\xcd\xb2\xb1\x60\x27\x1f\x32\xad\x9b\xa0\x62\x20\x1e\x34\xb5\xa8\xb3\x7b\x4b\xf0\xd4\x47\x2d\x2c\x71\xa6\x9e\xad\x2f\x1c\x1f\x60\xa4\x9f\xb3\x3c\x2d\x39\x70\xea\x49\x47\xc4\xa9\xa8\xd5\x25\x1c\x2a\xb3\x9c\x9f\xcd\x27\x21\x33\xc3\xb2\xbf\xf3\xd8\xbb\xbd\x44\x26\x24\x48\xa6\x9c\xa8\x38\x1d\x1f\x44\xab\xa4\xb4\x4d\x3b\x4e\xf2\x49\x32\x36\xc7\xa4\xa1\xbe\x27\x1b\x25\xbe\x9e\x9f\xbe\x2e\x28\x37\xda\xc9\x73\x5d\xc0\xad\xaf\x4b\x23\x1e\x38\xa9\x9b\xa3\x49\x20\x20\x3c\xb4\xac\xbb\x6a\x67\xca\xce\x3d\x29\x2b\xd6\xa2\x9d\xb2\x2b\x1b\x22\xd9\xa3\xa2\xbb\x3b\x31\x42\xfc\x55\x3c\x44\xbb")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); # still DTMF zero rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xa5\xa7\x70\x22\x1c\x2e\xad\x9c\xa1\xf3\x27\x25\x3b\xc2\xba\xd0\x7d\xc5\xb3\xbc\x3b\x22\x24\x5a\xa2\x9b\xab\x31\x1d\x21\x56\xab\xa8\xbc\x4d\x47\xf6\xec\x3d\x2d\x35\xbc\xa0\xa0\xc9\x23\x1b\x29\xb7\x9e\xa2\xcb\x2e\x2c\x3f\xdb\xe4\x4c\x5b\xb8\xa9\xaf\x3e\x1f\x1e\x3f\xa5\x9b\xa7\x3d\x20\x24\x46\xb5\xb0\xc6\x6e\xd3\xbd\xce\x35\x25\x2b\xc4\x9f\x9d\xb9\x28\x1c\x26\xc7\xa4\xa6\xc4\x3c\x39\x53\x77\x42\x34\x44\xb3\xa2\xa7\x4d\x1f\x1c\x33\xaa\x9c\xa5\x54\x28\x29\x43\xc5\xc6\x79\xf1\xba\xad\xbc\x33\x1f\x24\xdf\x9f\x9c\xaf\x2d\x1d\x25\xef\xac\xac\xc6\x51\x62\xce\xfd\x34\x29\x36\xb4\x9e\xa1\xe4\x20\x1b\x2d\xb1\x9f\xa6\xe1\x30\x31\x4b\xe6\x52\x3f")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'zero DTMF block', { 'from-tag' => ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # start DTMF, interleaved with receiving older audio snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; # still buffered silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; # now replaced by DTMF zero rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x74\xb7\xbc\xdf\xe5\xbd\xb6\xea\x2c\x21\x2f\xb2\x9c\x9f\xd7\x22\x1d\x2d\xb7\xa5\xac\xe0\x3e\x4a\xed\x57\x35\x2f\x55\xaa\x9f\xab\x36\x1c\x1e\x48\xa5\x9d\xad\x3e\x29\x2f\x5b\xcc\xf5\x50\xd1\xaf\xaa\xc9\x2a\x1d\x28\xbb\x9d\x9d\xbe\x28\x1e\x2d\xc7\xad\xb5\xdc\x64\xcc\xc3\x51\x2b\x26\x3f\xaa\x9c\xa5\x40\x1e\x1d\x3a\xab\xa0\xad\x51\x33\x3c\x66\x5f\x3d\x3a\xd6\xa9\xa3\xb9\x2b\x1c\x22\xcc\x9f\x9d\xb6\x2f\x24\x2f\xe0\xbc\xca\x71\xcf\xb4\xb2\x60\x27\x1f\x32\xad\x9c\xa0\x60\x20\x1e\x34\xb4\xa8\xb2\x7a\x48\x72\xd7\x49\x2e\x2d\x74\xa6\x9e\xae\x2f\x1c\x1f\x61\xa3\x9f\xb2\x3b\x2c\x37\x6f\xe0\x4c\x49\xc5\xaa\xa9\xd6\x26\x1d\x2b\xb3\x9c\x9f\xcd\x27")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x20\x32\xc2\xb1\xbe\xf0\xdc\xbd\xbe\x45\x27\x25\x48\xa6\x9c\xa8\x38\x1d\x1f\x44\xaa\xa3\xb4\x4c\x3a\x4b\xf8\x4b\x34\x37\xc7\xa5\xa1\xbe\x27\x1b\x25\xbe\x9e\x9f\xbe\x2e\x27\x36\xd9\xc6\xf1\x5f\xc2\xad\xb0\x4c\x23\x1f\x38\xa9\x9b\xa3\x48\x20\x20\x3c\xb3\xab\xba\x68\x5d\xce\xcf\x3d\x29\x2c\xd5\xa2\x9d\xb2\x2b\x1b\x22\xd8\xa3\xa1\xba\x3a\x30\x40\xfa\x5a\x3d\x45\xbc\xa6\xa8\x6e\x22\x1c\x2e\xad\x9c\xa1\xf6\x26\x24\x3a\xc1\xb8\xcd\x7e\xc7\xb4\xbc\x3b\x23\x24\x5b\xa2\x9b\xab\x31\x1d\x21\x56\xaa\xa7\xbb\x4b\x44\x70\xee\x3e\x2d\x36\xbc\xa1\xa1\xca\x23\x1b\x29\xb7\x9e\xa2\xcb\x2e\x2b\x3e\xd9\xdc\x4f\x5d\xb9\xa9\xaf\x3e\x1f\x1f\x3f\xa5\x9b\xa7")); $rseq++; # back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x3d\x20\x23\x46\xb4\xaf\xc4\x6b\xd9\xbf\xcf\x36\x25\x2b\xc4\x9f\x9d\xb9\x27\x1b\x26\xc6\xa3\xa5\xc3\x3b\x38\x4f\x7a\x45\x36\x46\xb4\xa2\xa8\x4d\x1f\x1c\x33\xaa\x9c\xa5\x53\x27\x28\x42\xc3\xc2\xf0\xf3\xbb\xae\xbd\x34\x20\x24\xde\x9f\x9c\xaf\x2d\x1d\x25\xee\xab\xab\xc5\x4f\x5a\xd2\xfe\x35\x2a\x37\xb4\x9e\xa1\xe6\x20\x1b\x2d\xb1\x9f\xa6\xe1\x2f\x2f\x4a\xe0\x58\x41\x65\xb1\xa6\xb0\x37\x1e\x1f\x4d\xa2\x9c\xab\x37\x21\x27\x55\xb6\xb8\xd4\xf6\xc3\xb8\xd5\x2f\x22\x2c\xba\x9d\x9e\xc2\x25\x1c\x2a\xbd\xa5\xaa\xcf\x3e\x42\x71\x62\x39\x2f\x49\xae\x9f\xa9\x3e\x1d\x1d\x3b\xa7\x9d\xa9\x47\x29\x2c\x4e\xc9\xd9\x56\xde\xb2\xab\xbf\x2d\x1e\x25\xc7\x9e")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x9c\xb6\x2a\x1e\x29\xd2\xad\xb0\xd1\x5b\xd8\xc5\x61\x2e\x27\x39\xae\x9d\xa2\x54\x1f\x1c\x32\xae\xa0\xaa\x66\x32\x38\x5a\x73\x42\x3a\xf1\xac\xa3\xb3\x2f\x1c\x20\xff\xa0\x9c\xaf\x33\x23\x2c\x70\xba\xc2\xf3\xda\xb8\xb2\xe6\x2a\x20\x2e\xb2\x9c\x9f\xd4\x22\x1d\x2e\xb9\xa7\xae\xe1\x45\x58\xdb\x50\x30\x2d\x52\xa9\x9e\xaa\x36\x1c\x1e\x47\xa5\x9e\xad\x3f\x2b\x32\x5e\xd6\x59\x49\xce\xac\xa9\xc7\x29\x1d\x27\xbb\x9d\x9d\xbe\x29\x1f\x2e\xc9\xaf\xb9\xe2\xf1\xc2\xbe\x4f\x2a\x25\x3d\xaa\x9c\xa5\x42\x1e\x1d\x3a\xac\xa2\xaf\x55\x38\x43\x76\x54\x38\x36\xd5\xa7\xa1\xb7\x2b\x1c\x22\xcd\x9f\x9e\xb7\x30\x26\x31\xe5\xc1\xd9\x60\xca\xaf\xaf\x61\x26\x1f\x31")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xad\x9b\xa0\x65\x21\x1e\x34\xb7\xaa\xb5\x7d\x52\xda\xcf\x45\x2b\x2b\x6d\xa5\x9d\xad\x2f\x1c\x1f\x5e\xa4\xa0\xb4\x3d\x2e\x3b\x72\x70\x42\x43\xc3\xa8\xa7\xd3\x25\x1c\x2a\xb3\x9c\x9f\xcd\x28\x22\x34\xc6\xb6\xc5\xfb\xcf\xb8\xbb\x43\x25\x23\x46\xa6\x9b\xa7\x39\x1d\x1f\x44\xab\xa5\xb6\x4f\x3f\x59\xeb\x44\x2f\x34\xc6\xa3\xa0\xbd\x27\x1b\x25\xbf\x9f\x9f\xbe\x2f\x29\x39\xdd\xcf\x5b\x59\xbe\xab\xae\x4b\x22\x1e\x37\xa9\x9b\xa3\x4a\x21\x21\x3c\xb6\xad\xbe\x6e\xf0\xc4\xcc\x3b\x27\x2a\xd6\xa1\x9d\xb1\x2b\x1b\x22\xdb\xa4\xa3\xbb\x3c\x34\x47\xfe\x4d\x38\x41\xba\xa4\xa6\x76\x21\x1c\x2d\xae\x9c\xa2\xef\x28\x26\x3c\xc5\xbd\xdb\x7a\xc0\xb0\xba\x3a\x21")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x23\x58\xa2\x9b\xab\x32\x1d\x22\x55\xac\xa9\xbe\x4f\x4d\xdd\xe8\x3a\x2b\x33\xbc\xa0\xa0\xc8\x23\x1b\x29\xb8\x9f\xa3\xcc\x30\x2d\x42\xdf\x71\x46\x59\xb6\xa7\xae\x3e\x1f\x1e\x3e\xa5\x9b\xa7\x3e\x21\x25\x47\xb7\xb4\xcb\x77\xcb\xba\xcc\x33\x23\x2a\xc4\x9f\x9d\xb8\x28\x1c\x26\xc8\xa5\xa7\xc5\x3e\x3d\x5c\x70\x3e\x31\x42\xb2\xa0\xa7\x4d\x1f\x1c\x33\xab\x9d\xa6\x56\x29\x2a\x45\xc9\xcd\x60\xf0\xb7\xac\xbb\x32\x1f\x23\xe1\x9f\x9c\xaf\x2e\x1e\x26\xf4\xad\xae\xc9\x57\xf3\xc9\xfa\x32\x28\x34\xb4\x9e\xa0\xe0\x20\x1c\x2d\xb2\x9f\xa7\xe0\x32\x34\x4f\xf1\x4a\x3c\x60\xaf\xa4\xaf\x36\x1d\x1f\x4c\xa3\x9c\xab\x39\x23\x29\x56\xba\xbd\xdf\xe7\xbc\xb3\xd1")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x2d\x20\x2b\xba\x9d\x9e\xc1\x25\x1c\x2a\xbf\xa6\xab\xd1\x43\x4c\xe4\x5c\x35\x2d\x47\xad\x9e\xa8\x3e\x1d\x1d\x3b\xa8\x9d\xaa\x49\x2a\x2f\x51\xd0\x74\x4c\xdb\xaf\xa9\xbe\x2d\x1d\x25\xc8\x9e\x9c\xb6\x2b\x1f\x2a\xd6\xaf\xb5\xd7\x6c\xca\xbe\x5f\x2c\x25\x37\xad\x9d\xa2\x57\x1f\x1c\x32\xaf\xa1\xac\x6a\x36\x3d\x64\x5f\x3c\x36\xf4\xaa\xa1\xb1\x2f\x1c\x20\x74\xa0\x9d\xaf\x34\x25\x2d\x6f\xbe\xcc\x69\xd2\xb3\xaf\xe1\x29\x1f\x2d\xb2\x9c\x9f\xd2\x23\x1e\x2e\xbb\xa9\xb0\xe3\x4c\xf7\xd0\x4d\x2e\x2b\x4f\xa8\x9d\xaa\x36\x1c\x1e\x46\xa6\x9f\xae\x42\x2d\x37\x62\xe9\x4a\x43\xcc\xaa\xa7\xc4\x28\x1c\x27\xbc\x9d\x9e\xbe\x2a\x21\x2f\xcc\xb3\xbe\xec\xdb\xbb")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xba\x4e\x28\x23\x3c\xa9\x9c\xa4\x43\x1e\x1e\x3a\xad\xa4\xb0\x59\x3c\x4c\xee\x4c\x33\x33\xd4\xa6\xa0\xb6\x2b\x1b\x22\xcf\x9f\x9e\xb7\x32\x28\x34\xea\xc9\x7a\x58\xc5\xad\xad\x63\x25\x1e\x30\xad\x9b\xa0\x6b\x22\x1f\x35\xb9\xac\xb9\xfe\x65\xcb\xca\x41\x29\x29\x69\xa4\x9d\xac\x2f\x1c\x1f\x5c\xa5\xa1\xb5\x3f\x31\x3f\x77\x58\x3c\x3f\xc0\xa6\xa5\xd0\x24\x1c\x2a\xb4\x9d\x9f\xcc\x29\x24\x36\xc9\xba\xce\x77\xc8\xb3\xb8\x41\x24\x22\x44\xa5\x9b\xa7\x3a\x1e\x20\x44\xad\xa8\xb8\x54\x47\xfd\xe1\x3f\x2d\x31\xc5\xa2\x9f\xbc\x27\x1b\x25\xc0\x9f\xa0\xbf\x31\x2b\x3c\xe3\xe2\x4c\x52\xbb\xa9\xac\x4b\x21\x1e\x36\xa9\x9b\xa4\x4c\x22\x22\x3d\xb8\xb0\xc3\x75")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xd6\xbd\xc8\x39\x25\x29\xd8\xa0\x9c\xb0\x2b\x1c\x23\xde\xa6\xa5\xbd\x3f\x39\x4f\x7d\x45\x34\x3e\xb9\xa2\xa5\xff\x21\x1c\x2d\xae\x9d\xa3\xeb\x29\x28\x3e\xca\xc5\xff\x75\xbc\xad\xb8\x39\x20\x22\x55\xa2\x9b\xab\x33\x1e\x23\x55\xad\xac\xc0\x56\x5f\xce\xe2\x37\x29\x31\xbb\x9f\x9f\xc7\x23\x1b\x29\xb9\x9f\xa4\xcc\x33\x30\x47\xea\x55\x3e\x54\xb4\xa5\xad\x3e\x1e\x1e\x3d\xa6\x9b\xa7\x3f\x23\x26\x48\xba\xb9\xd3\xf6\xc2\xb5\xc9\x31\x22\x29\xc5\x9e\x9d\xb7\x28\x1c\x27\xca\xa6\xa9\xc7\x42\x44\x7d\x6b\x3a\x2e\x3f\xb0\x9f\xa5\x4e\x1f\x1c\x32\xab\x9d\xa7\x5a\x2a\x2c\x49\xce\xde\x50\xee\xb3\xaa\xb9\x31\x1e\x22\xe6\x9f\x9c\xaf\x2e\x1e\x27\xfc\xaf\xb0")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xcd\x61\xd4\xc0\xf5\x2f\x26\x32\xb3\x9d\xa0\xdd\x21\x1c\x2d\xb4\xa1\xa9\xdf\x36\x39\x58\x6f\x40\x38\x5d\xad\xa2\xae\x36\x1d\x1e\x4b\xa3\x9c\xab\x3a\x24\x2b\x57\xbd\xc4\xfc\xdd\xb8\xaf\xce\x2c\x1f\x2a\xba\x9d\x9d\xc0\x26\x1d\x2b\xc1\xa8\xad\xd4\x49\x5d\xd5\x58\x31\x2b\x44\xac\x9e\xa7\x3f\x1d\x1d\x3a\xa9\x9e\xab\x4b\x2c\x32\x56\xdc\x54\x45\xd9\xad\xa7\xbc\x2c\x1d\x24\xc9\x9e\x9d\xb6\x2c\x20\x2c\xd9\xb2\xb9\xde\xec\xc0\xbb\x5f\x2b\x23\x36\xad\x9c\xa1\x59\x1f\x1d\x32\xb0\xa3\xad\x6e\x3a\x44\x7b\x56\x37\x33\xf9\xa9\xa0\xb0\x2f\x1c\x1f\x6c\xa1\x9d\xb0\x36\x27\x2f\x6e\xc5\xdd\x5a\xcd\xaf\xad\xdd\x28\x1e\x2c\xb2\x9c\x9e\xd0\x24\x1e\x2f\xbd")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\xab\xb4\xe6\x58\xd5\xca\x4a\x2c\x29\x4d\xa8\x9d\xa9\x37\x1c\x1e\x45\xa7\xa0\xaf\x45\x2f\x3b\x68\x6a\x40\x3e\xca\xa9\xa5\xc2\x28\x1c\x26\xbc\x9d\x9e\xbe\x2b\x22\x30\xcf\xb8\xc5\xfc\xcf\xb6\xb7\x4d\x26\x21\x3b\xa9\x9b\xa4\x45\x1e\x1e\x3a\xae\xa6\xb3\x5c\x42\x5d\xe1\x47\x2f\x30\xd4\xa5\x9f\xb5\x2b\x1b\x22\xd1\xa0\x9f\xb8\x34\x2a\x37\xee\xd5\x56\x50\xc1\xab\xab\x66\x24\x1d\x2f\xad\x9b\xa0\x71\x23\x20\x37\xbb\xae\xbd\xfd\xe9\xc0\xc5\x3f\x27\x28\x64\xa3\x9c\xac\x2f\x1c\x20\x5a\xa7\xa3\xb7\x42\x36\x47\x7e\x4c\x37\x3c\xbf\xa4\xa4\xce\x24\x1b\x29\xb5\x9d\xa0\xcc\x2a\x26\x38\xcc\xbf\xde\x6c\xc1\xaf\xb5\x40\x22\x20\x42\xa5\x9b\xa7\x3b\x1e\x20")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x44\xae\xaa\xbb\x59\x51\xd8\xdb\x3c\x2a\x2f\xc5\xa1\x9e\xbb\x27\x1b\x25\xc2\xa0\xa2\xc0\x34\x2e\x3f\xea\x68\x42\x4e\xb9\xa7\xab\x4c\x20\x1d\x35\xa9\x9b\xa4\x4d\x23\x24\x3e\xbb\xb5\xca\x7d\xca\xb8\xc4\x37\x23\x27\xd9\xa0\x9c\xb0\x2c\x1c\x23\xe2\xa7\xa7\xbe\x43\x3e\x5f\x7d\x3e\x2f\x3c\xb7\xa1\xa4\xf5\x20\x1b\x2d\xaf\x9d\xa3\xe7\x2b\x2a\x40\xce\xd0\x5a\x6f\xb8\xab\xb5\x38\x1f\x20\x52\xa2\x9b\xab\x34\x1e\x24\x54\xaf\xae\xc5\x5e\xe8\xc5\xde\x34\x27\x2f\xbb\x9e\x9f\xc5\x24\x1b\x29\xba\xa1\xa6\xcd\x36\x35\x4d\xfa\x49\x39\x4f\xb1\xa3\xab\x3e\x1e\x1d\x3c\xa6\x9c\xa8\x41\x24\x28\x4a\xbd\xbe\xe1\xeb\xbc\xb1\xc6\x30\x20\x28\xc5\x9e\x9d\xb7\x29")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2018)], [qw(198.51.100.1 3018)]); ($port_a) = offer('zero DTMF block w transcoding', { codec => { transcode => ['PCMA'] } }, < ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 1 }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\xd5\x9b\x87\x97\x64\x10\x6b\x41\xdc\x73\x66\xd1\x91\x9a\x97\x6d\x07\x04\x67\x91\x9a\x96\x5c\x60\x7d\xd3\x4d\x6b\x11\x7c\x91\x87\x9e\x4f\x1a\x04\x15\xe0\x93\xe8\xda\x59\xf1\xe4\x44\x10\x1b\x6b\xeb\x87\x85\xfc\x12\x1a\x17\xc3\xe2\xfc\x51\xc9\xeb\x96\xcb\x13\x07\x1c\xff\x85\x84\xee\x6f\x12\x68\x5c\xc5\x76\x7b\xc9\x93\x98\xef\x14\x06\x1a\x4f\x9c\x9a\x95\x77\x6c\x7f\xd7\x75\x6b\x14\x59\x9d\x87\x93\x66\x04\x04\x63\xeb\x9d\xe9\xd7\x41\xf4\xff\x71\x12\x19\x61\x91\x86\x9b\xd5\x1e\x1a\x68\xfc\xee\xff\x55\xf4\xeb\x95\x53\x1c\x04\x11\xec\x87\x85\xe5\x14\x1d\x6f\xd1\xcd\x4b\x73\xfc\x92\x9f\xfb\x12\x06\x19\xcd\x98\x9a\xef\x65\x69\x7e\x55\x77\x68")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x68\xc2\x9e\x84\x94\x6b\x07\x1a\x72\x96\x9c\xec\x59\x49\xcf\xf7\x7b\x12\x1c\x76\x9c\x86\x9f\x7c\x1a\x1a\x63\xe6\xeb\xfe\xd5\xf6\xe9\xef\x71\x19\x05\x68\x97\x86\x9b\xc2\x10\x1c\x62\xc1\xf5\x43\x49\xe4\x92\x92\xda\x1e\x06\x12\xe7\x85\x9b\xe7\x62\x6b\x7e\x55\x76\x69\x62\xf9\x98\x85\xe2\x10\x06\x18\x54\x92\x9c\xe0\x49\x76\xc7\xc3\x66\x12\x13\xd3\x98\x86\x91\x6c\x05\x1b\x79\xef\x95\xff\x54\xf6\xef\xe1\x67\x1b\x1a\x64\x9d\x86\x9e\x43\x1c\x1c\x67\xf6\xf0\x5a\x5a\xe0\x92\x91\x49\x1b\x07\x17\xeb\x84\x98\xf6\x68\x15\x7c\xd7\x76\x6c\x64\xe0\x9b\x9b\xf0\x1f\x06\x1c\xf3\x9e\x9c\xe5\x72\x72\xde\xdd\x63\x12\x17\xfd\x9a\x87\xe8\x17\x04\x1e\x41\x95")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by DTMF zero rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x93\x06\x36\x09\xe5\xb5\xb4\x9d\x1a\x0f\x1a\xc0\x94\xfa\x59\xe5\x99\x98\x42\x0d\x35\x19\x87\xb6\x8b\x40\x0b\x34\x1f\x9c\x83\x9e\x54\x67\xd2\xf2\x63\x07\x07\x53\x8c\xb4\x84\x05\x36\x0a\x42\x8e\xb5\x9e\x17\x07\x10\x52\xd8\x61\x63\xed\x80\x83\xf0\x0c\x37\x01\x9e\xb6\xb5\xe5\x0d\x0b\x1e\xef\x9e\xeb\xd0\xf6\x96\x94\x6c\x0d\x0f\x60\x8c\xb6\x82\x13\x37\x35\x6c\x81\x8f\x9f\x65\x16\x7b\xd3\x61\x19\x1d\xe3\x8f\x8b\x95\x02\x31\x0c\x95\xb5\xb5\x95\x05\x02\x12\xf4\xe1\x53\x48\xe8\x87\x9a\x64\x09\x35\x13\x83\xb1\x8e\x61\x0a\x0a\x17\x9f\x86\x96\x58\x45\xe6\xfb\x14\x03\x06\xf0\x88\xb7\x99\x01\x36\x09\xf7\x8e\x88\x96\x16\x18\x6e\xd4\x73\x17\x6c\x96")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x8c\x82\x52\x08\x36\x04\x84\xb6\x88\xd0\x0d\x0f\x16\xee\x91\xfe\x54\xed\x9e\x97\x16\x09\x0e\x74\x89\xb6\x81\x18\x37\x08\x70\x81\x82\x97\x65\x63\xd1\xde\x14\x07\x1c\x97\x8b\x8b\xe6\x0e\x31\x03\x92\xb5\x89\xe4\x05\x06\x6a\xf5\xc7\x64\x4a\x93\x83\x85\x6a\x0a\x35\x6a\x8c\xb1\x8d\x14\x0b\x0e\x62\x9c\x9b\xe3\x5c\xfd\x94\xfb\x1c\x0f\x06\xec\xb5\xb7\x90\x02\x36\x0c\xe3\x8e\x8c\xec\x17\x10\x7d\x51\x6e\x1f\x6c\x9e\x88\x82\x65\x35\x37\x1e\x81\xb7\x8c\x72\x02\x03\x6f\xed\xe2\x57\xd3\x91\x84\x97\x1e\x0a\x0e\xcc\x8a\xb6\x85\x04\x34\x0c\xdd\x86\x87\xe2\x7f\x40\xfb\xd4\x1f\x00\x1d\x9f\xb4\x8b\xc6\x0b\x36\x07\x98\xb5\x8d\xc3\x1b\x18\x67\xc4\x7c\x6a")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w transcoding', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'zero DTMF block w transcoding', { 'from-tag' => ft(), 'DTMF-security' => 'zero', 'delay-buffer' => 100 }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # start DTMF, interleaved with receiving older audio snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; # still buffered silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; # now replaced by DTMF zero rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x50\x92\x97\xcd\xc7\x94\x9d\xd8\x06\x08\x05\x99\xb7\xb5\xf1\x08\x37\x04\x92\x8f\x87\xc2\x6a\x66\xdf\x71\x1c\x05\x70\x81\xb5\x86\x1d\x37\x34\x60\x8f\xb4\x87\x15\x03\x1a\x75\xe4\xd0\x7e\xff\x85\x81\xe1\x00\x34\x03\x96\xb7\xb4\xea\x02\x35\x07\xe3\x84\x9c\xc8\x47\xe4\xef\x7f\x06\x0d\x6a\x81\xb7\x8c\x69\x34\x37\x11\x86\x8b\x84\x7f\x1e\x17\x45\x4d\x14\x11\xf0\x83\x89\x90\x06\x36\x09\xe4\xb5\xb4\x9d\x05\x0e\x05\xc3\x97\xe6\x52\xf8\x9f\x99\x42\x02\x0a\x19\x87\xb6\x8b\x42\x0b\x34\x1f\x9c\x82\x99\x57\x61\x53\xf1\x61\x04\x07\x50\x8d\xb4\x84\x05\x36\x0a\x43\x8e\xb5\x99\x16\x06\x12\x5d\xc2\x65\x61\xed\x81\x83\xf1\x0c\x37\x01\x9e\xb6\xb5\xfa\x0d")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x0b\x19\xee\x98\x95\xd2\xc8\x94\x95\x6d\x02\x0f\x60\x8d\xb6\x82\x13\x37\x35\x6c\x81\x8e\x9f\x64\x11\x67\xd6\x67\x1f\x12\xe3\x8f\x88\x95\x02\x31\x0c\x95\xb4\xb5\x95\x04\x02\x1d\xf7\xe2\xd2\x4c\xee\x84\x9a\x64\x0e\x35\x13\x83\xb1\x8e\x60\x0a\x0a\x17\x9e\x86\x91\x5b\x49\xfa\xf9\x15\x00\x06\xf0\x89\xb4\x99\x01\x36\x08\xf6\x89\x88\x91\x11\x1a\x68\xd7\x75\x14\x6d\x97\x8c\x82\x5d\x08\x36\x04\x84\xb6\x88\xd1\x0d\x0f\x11\xe9\x93\xe5\x55\xe3\x9f\x94\x16\x0e\x0f\x75\x89\xb6\x86\x18\x37\x08\x71\x81\x82\x96\x64\x6c\x52\xdc\x15\x04\x1d\x97\x8b\x8b\xe6\x0e\x31\x03\x92\xb4\x88\xe7\x04\x01\x15\xf7\xca\x78\x49\x90\x80\x9a\x6a\x0a\x35\x6a\x8c\xb1\x8d")); $rseq++; # back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x14\x0a\x0e\x62\x9f\x9a\xec\x59\xf7\xea\xf9\x1d\x0c\x06\xec\xb5\xb4\x90\x02\x36\x0c\xe2\x8e\x8c\xef\x16\x13\x78\x57\x6d\x1d\x62\x9f\x89\x82\x65\x35\x37\x1e\x81\xb6\x8c\x7d\x0d\x03\x6f\xef\xee\xd2\xd3\x96\x85\x94\x1f\x0a\x0f\xcf\x8a\xb6\x85\x04\x37\x0c\xdc\x81\x86\xed\x78\x74\xfc\xd5\x1c\x00\x12\x9c\xb5\x88\xc4\x0b\x36\x07\x98\xb5\x8c\xc0\x1a\x1a\x66\xc3\x77\x69\x44\x98\x8c\x9b\x12\x34\x35\x7a\x89\xb6\x81\x12\x0b\x02\x73\x9d\x93\xf2\xd1\xef\x93\xf3\x05\x09\x07\x91\xb4\xb4\xee\x0f\x36\x00\x94\x8f\x80\xf8\x15\x6e\x52\x40\x10\x1a\x61\x84\x8a\x83\x15\x34\x37\x16\x82\xb7\x80\x63\x03\x07\x7b\xe6\xf7\x70\xce\x99\x81\xeb\x04\x34\x0c\xe3\xb4")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xb7\x9d\x01\x34\x00\xfc\x87\x9b\xff\x75\xf7\xed\x43\x05\x0d\x10\x84\xb7\x89\x72\x35\x36\x19\x84\x8a\x81\x44\x19\x13\x74\x53\x6e\x11\xd2\x86\x89\x9e\x1a\x37\x0a\xd5\x8a\xb7\x9a\x1e\x09\x06\x52\x91\xee\xd0\xf4\x93\x99\xc4\x01\x0a\x04\x99\xb6\xb5\xf2\x09\x37\x04\x90\x8d\x85\xc3\x6d\x76\xf5\x7f\x1b\x07\x7c\x80\xb4\x81\x1d\x37\x34\x63\x8c\xb4\x84\x6b\x01\x19\x4e\xf0\x77\x61\xfb\x87\x83\xe3\x00\x37\x02\x96\xb7\xb4\x95\x03\x0a\x04\xe6\x9a\x90\xc0\xd3\xee\x95\x78\x00\x0f\x14\x80\xb6\x8f\x6e\x34\x34\x11\x87\x89\x85\x73\x13\x6f\x51\x72\x13\x1d\xf3\x82\x8b\x92\x01\x36\x09\xfa\xb5\xb4\x92\x1b\x0c\x18\xc4\xe9\xf7\x43\xe6\x9a\x9a\x43\x0c\x35\x18")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x87\xb6\x8b\x44\x08\x35\x1f\x92\x80\x9c\x55\x7c\xf4\xf8\x6d\x06\x01\x5c\x8c\xb7\x84\x05\x36\x0a\x4f\x8f\x8a\x9f\x14\x05\x16\x53\x52\x6e\x6f\xef\x83\x8d\xfd\x0c\x36\x01\x9e\xb7\xb5\xe5\x02\x09\x1f\xe2\x9d\xed\xd7\xf8\x93\x96\x6f\x0c\x0e\x62\x8c\xb6\x82\x10\x34\x35\x6c\x86\x8c\x9d\x79\x6a\x77\xd9\x6c\x1a\x1f\xe2\x8e\x8a\x94\x0d\x31\x0c\xea\xb5\x8a\xea\x1a\x00\x10\xc9\xf9\x4a\x77\x95\x81\x84\x67\x08\x34\x12\x83\xb1\x8e\x66\x0b\x0b\x17\x9d\x84\x95\x5c\xd2\xec\xe4\x16\x02\x01\xf1\x88\xb7\x98\x06\x36\x09\xf5\x8f\x8e\x96\x17\x1f\x63\xd5\x65\x13\x69\x91\x8f\x8d\x51\x08\x36\x04\x84\xb6\x88\xdd\x02\x0c\x17\xed\x94\xf5\x57\xe8\x9a\x91\x11\x08")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x09\x76\x88\xb6\x81\x19\x34\x09\x73\x86\x80\x95\x79\x7a\xce\xdb\x11\x06\x1e\x97\x8a\x8a\xe0\x0e\x31\x03\x93\xb5\x8e\xe4\x1a\x04\x6e\xcc\x52\x62\x77\x9d\x82\x84\x15\x35\x34\x15\x8c\xb1\x82\x15\x08\x0f\x63\x92\x9f\xe7\x56\xe7\x91\xe4\x1f\x0e\x01\xec\xb5\xb7\x93\x02\x36\x0d\xe0\x8f\x82\xed\x15\x14\x4b\x52\x15\x18\x6e\x99\x8b\x8d\x7a\x35\x36\x1e\x81\xb7\x8c\x71\x03\x01\x6d\xe1\xe5\x42\xd2\x92\x86\x96\x19\x35\x0e\xc3\x8a\xb6\x85\x04\x34\x0d\xd0\x87\x84\xe1\x71\xd3\xe1\xd7\x19\x02\x1f\x9f\xb4\x8b\xc2\x0b\x36\x07\x99\x8a\x82\xc2\x19\x1f\x78\xd3\x66\x17\x42\x85\x8e\x85\x1d\x34\x35\x64\x89\xb6\x86\x10\x09\x03\x70\x91\x94\xcd\xc5\x97\x9e\xff")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x04\x0b\x06\x91\xb7\xb4\xe9\x0c\x37\x01\xea\x8d\x86\xff\x6f\x64\xc7\x4b\x1c\x04\x63\x87\xb5\x82\x6a\x34\x37\x16\x83\xb4\x80\x61\x01\x05\x7f\xfe\x50\x64\xca\x9a\x83\x95\x07\x34\x0f\xe0\xb4\xb7\x9d\x06\x35\x01\xf0\x85\x9c\xf1\x5f\xe6\xea\x4d\x07\x0f\x12\x84\xb7\x88\x71\x35\x37\x19\x85\x88\x86\x58\x1d\x14\x47\x4c\x17\x12\xd0\x81\x88\x98\x05\x36\x0a\x50\x8b\xb7\x9a\x1c\x0f\x04\x5d\xea\xe4\x58\xfc\x9e\x9a\xc3\x03\x35\x07\x99\xb6\xb5\xfc\x0e\x34\x05\x96\x83\x9b\xc1\x64\xd6\xfe\x65\x04\x01\x78\x83\xb4\x80\x1d\x37\x34\x62\x8d\xb5\x85\x6e\x04\x12\x40\xdb\x66\x6f\xe4\x81\x8d\xec\x03\x37\x0d\x97\xb7\xb4\x95\x00\x0b\x05\xe4\x9e\x95\xde\xca\x96")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x91\x7a\x02\x09\x17\x80\xb6\x8f\x6f\x34\x34\x11\x84\x8f\x9b\x77\x17\x65\xdd\x64\x1e\x1e\xf3\x8c\x8a\x9d\x01\x36\x08\xf8\x8a\xb4\x92\x19\x02\x1f\xd8\xe1\x57\x76\xed\x87\x84\x41\x0f\x34\x1b\x87\xb6\x8b\x59\x09\x35\x1d\x90\x87\x90\xd5\x44\xe7\xe6\x69\x00\x00\x5b\x8f\xb7\x87\x1a\x36\x0a\x4a\x8c\x88\x9c\x6a\x18\x6b\x56\x76\x17\x6a\xe8\x8d\x8c\xfe\x0f\x36\x00\x9f\xb7\x8a\xe4\x00\x0e\x1d\xe1\x91\xfa\x51\xe0\x9e\x93\x69\x0e\x08\x6c\x8c\xb1\x82\x11\x34\x0a\x6c\x87\x82\x93\x72\x63\xd4\xc3\x6a\x07\x18\xed\x88\xb5\x97\x0d\x31\x0c\xe8\xb5\x8b\xea\x18\x06\x17\xc1\xc0\x64\x7c\x96\x83\x87\x67\x0b\x34\x1d\x83\xb1\x8e\x64\x08\x09\x14\x90\x9b\xef\x51")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xf0\x94\xe0\x10\x0c\x03\xf6\x8b\xb7\x9b\x06\x36\x09\xcf\x8c\x8f\x94\x6a\x10\x79\x55\x6d\x1f\x15\x90\x89\x8f\xd5\x0b\x36\x04\x85\xb7\x89\xd9\x00\x02\x15\xe6\xed\xd5\x50\x97\x84\x93\x10\x0a\x08\x73\x88\xb1\x81\x1e\x34\x0e\x73\x84\x86\xe8\x71\x4d\xfa\xc1\x12\x03\x18\x96\xb5\xb5\xe3\x0e\x31\x03\x90\x8a\x8f\xe4\x1e\x1b\x63\xd8\x73\x15\x72\x9f\x8c\x87\x15\x35\x34\x14\x8c\xb6\x82\x6b\x09\x0d\x60\x91\x90\xfd\xd1\xee\x9c\xe1\x18\x08\x03\xed\xb5\xb7\x93\x03\x36\x0d\xe6\x8d\x83\xe3\x6e\x6c\x54\x59\x11\x04\x6b\x98\x8a\x8c\x7b\x35\x36\x19\x86\xb7\x8d\x74\x01\x07\x61\xfb\xcf\x7e\xdd\x9e\x80\x90\x18\x34\x09\xc4\x8a\xb6\x85\x05\x35\x02\xd4\x85\x9b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\xe5\x43\xf2\xe8\xd1\x1a\x0c\x19\x9e\xb4\x8a\xc9\x0b\x36\x07\x9f\x8b\x83\xcd\x1d\x10\x76\x5d\x68\x13\x49\x84\x88\x84\x1d\x37\x35\x67\x8e\xb6\x86\x11\x0f\x01\x71\x94\xec\xd4\xc9\x93\x9a\xfb\x07\x35\x01\x91\xb7\xb4\xeb\x0c\x37\x01\xe9\x83\x84\xf2\x61\x49\xf3\x77\x18\x06\x6c\x86\xb4\x8d\x6a\x34\x37\x11\x83\xb4\x81\x67\x07\x19\x70\xcb\x72\x6d\xf7\x84\x8d\x97\x07\x37\x0e\xe1\xb4\xb7\x9d\x07\x0a\x06\xf7\x99\x91\xce\xde\xeb\x96\x4d\x01\x09\x1d\x84\xb6\x88\x77\x35\x37\x19\x9b\x89\x87\x5c\x11\x6c\x54\x70\x12\x1e\xd7\x83\x8a\x9a\x05\x36\x0a\x5f\x88\xb4\x9b\x1d\x0d\x1a\x5c\xed\xc9\x74\xe5\x9a\x87\xce\x02\x34\x07\x99\xb6\xb5\xfe\x0f\x34\x1a\x94")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x81\x9f\xc4\x76\xf3\xe6\x66\x06\x03\x65\x82\xb7\x80\x12\x37\x34\x6d\x82\x8a\x9a\x6d\x1a\x16\x5b\x58\x6b\x15\xe6\x83\x8f\xee\x02\x36\x0d\x97\xb4\xb4\x95\x01\x09\x1b\xf8\x93\xe2\xd4\xf9\x9d\x92\x65\x0d\x08\x16\x83\xb6\x8e\x6d\x35\x34\x11\x85\x8d\x9e\x48\x6e\x49\xc3\x63\x05\x1a\xf2\x8f\xb5\x9c\x01\x31\x08\xff\x8b\xb5\x93\x1f\x01\x12\xdc\xf3\x70\x79\xe9\x81\x86\x44\x0e\x34\x1a\x87\xb6\x8b\x52\x0e\x0b\x12\x96\x85\x94\xd4\xdb\xe8\xed\x6a\x02\x02\x46\x8e\xb6\x86\x1a\x36\x0a\x74\x8d\x89\x92\x6e\x1d\x63\x55\x64\x12\x17\xea\x8f\x8e\xfb\x0e\x36\x00\x9c\xb7\x8a\xe4\x01\x0c\x13\xe5\xeb\xce\x5f\xe9\x85\x9c\x68\x09\x0b\x6e\x8c\xb1\x8d\x16\x34\x0b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x6c\x85\x80\x96\x74\x7c\xf6\xca\x17\x01\x05\xed\x8b\xb5\x96\x0d\x31\x0c\xee\x8a\x88\xeb\x1f\x04\x6b\xd8\x5a\x6e\x7a\x90\x8d\x81\x64\x0a\x37\x1c\x80\xb6\x8e\x7a\x0e\x0e\x15\x96\x9c\xe6\x55\xe6\x93\xec\x12\x0e\x02\xf4\x8a\xb6\x9a\x06\x36\x0e\xc0\x82\x8d\x95\x6f\x15\x4c\x54\x15\x1a\x17\x92\x8b\x8e\xd0\x0b\x36\x07\x85\xb7\x8e\xc5\x01\x01\x68\xfb\xf9\x74\x5d\x93\x81\x9c\x13\x35\x0b\x7c\x88\xb1\x81\x1f\x35\x0f\x72\x9a\x84\xed\x4e\xda\xed\xce\x1f\x0d\x1a\x96\xb5\xb5\xed\x0e\x36\x03\x91\x8b\x8c\xe5\x1d\x1c\x65\xd7\x61\x10\x79\x98\x8e\x86\x15\x34\x34\x17\x8d\xb6\x82\x69\x0f\x03\x66\x94\x95\xc3\xd9\x97\x98\xe2\x1a\x0a\x02\xed\xb4\xb7\x92\x03")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'zero DTMF block w transcoding', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(8, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x2a" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000 + $seq, 3000 + 160 * $seq, $ssrc, "\x2a" x 160)); Time::HiRes::usleep(18000); $seq++; new_call; offer('RFC PT after block', { }, < tt(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'silence', 'delay-buffer' => 1, 'DTMF-delay' => 2000 }); answer('RFC PT after block', { }, < ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 1, frequencies => [250,350,450] }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); # replaced by tone rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); Time::HiRes::usleep(18000); $seq++; # gap snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block', { 'from-tag' => ft() }); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # enable blocking rtpe_req('block DTMF', 'PCM DTMF block', { 'from-tag' => ft(), 'DTMF-security' => 'tone', 'delay-buffer' => 100, frequencies => [250,350,450] }); # pre-send 100 ms worth of audio $rseq = $seq; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # start receiving rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # start DTMF, interleaved with receiving older audio snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xff\xb0\xac\xbc\x4c\x39\x3f\x63\xee\x55\x4a\xf6\xba\xaf\xbc\x45\x2c\x2d\x4b\xba\xaf\xbb\x6e\x48\x53\xf3\x5f\x3f\x3a\x52\xba\xac\xb3\x5e\x2f\x2d\x3e\xc8\xb8\xc0\xe8\x6b\xd7\xcc\x66\x39\x30\x3f\xbf\xac\xae\xd2\x37\x2f\x3c\xe1\xc6\xd2\x77\xdd\xbf\xbb\xdc\x38\x2c\x35\xd1\xae\xad\xc2\x43\x37\x40\x6e\xe7\x58\x4e\xdd\xb8\xb1\xc3\x3d\x2b\x2f\x5e\xb5\xaf\xbe\x59\x44\x51\xfb\x5b\x3f\x3d\x6b\xb6\xac\xb8\x4a\x2d\x2d\x47\xbf\xb6\xc1\xfa\x63\xda\xd1\x57\x37\x32\x49\xba\xab\xb0\xfe\x33\x2f\x40\xd2\xc2\xd1\x7e\xda\xbf\xbe\x73\x35\x2d\x3a\xc4\xac\xae\xcd\x3d\x36\x43\xf6\xdf\x5c\x55\xd2\xb7\xb4\xce\x37\x2b\x32\xdf\xb1\xaf\xc3\x4d\x41\x50\x7e\x59\x40")); Time::HiRes::usleep(18000); $seq++; # still buffered silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x40\xe0\xb3\xad\xbd\x3f\x2c\x2f\x54\xbb\xb5\xc4\x6b\x5d\xde\xd9\x4e\x37\x35\x58\xb5\xab\xb4\x52\x2f\x2f\x47\xca\xbf\xd0\xfe\xd8\xc1\xc3\x57\x32\x2e\x40\xbc\xab\xb0\xe0\x39\x35\x46\xe3\xdb\x61\x5d\xcc\xb7\xb7\xe8\x33\x2b\x37\xcb\xae\xb0\xcb\x46\x3f\x50\x7e\x58\x41\x46\xcf\xb1\xae\xc6\x39\x2b\x31\x7d\xb7\xb5\xc8\x5d\x58\xe5\xe1\x4a\x37\x38\xf2\xb1\xab\xba\x44\x2e\x30\x4f\xc3\xbe\xd1\x7d\xd8\xc3\xc9\x4b\x30\x2f\x4c\xb6\xab\xb3\x61\x35\x35\x4b\xd8\xd6\x68\x68\xc8\xb7\xba\x5d\x30\x2c\x3c\xbf\xad\xb1\xd8\x40\x3e\x52\xfb\x58\x44\x4c\xc8\xb0\xb0\xd6\x34\x2b\x35\xd5\xb3\xb5\xcd\x54\x54\xec\xef\x47\x37\x3c\xd3\xaf\xac\xc0\x3c\x2d\x33\x63\xbe")); Time::HiRes::usleep(18000); $seq++; # now replaced by tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\xbd\xd3\x77\xd9\xc5\xd0\x44\x30\x32\x65\xb2\xab\xb8\x4c\x32\x35\x50\xcf\xd2\x70\x7a\xc6\xb8\xbe\x4c\x2e\x2d\x45\xb9\xac\xb4\xfd\x3c\x3d\x55\xf2\x5a\x47\x56\xc1\xb0\xb4\x71\x30\x2b\x3a\xc7\xb0\xb6\xd7\x4d\x50\xf6\x78\x45\x38\x41\xc7\xae\xae\xcc\x37\x2c\x36\xe5\xbb\xbd\xd7\x6d\xdb\xc9\xdd\x3f\x30\x36\xdc\xae\xab\xbd\x41\x2f\x37\x5d\xcb\xcf\x7b\xef\xc4\xb9\xc6\x42\x2d\x2e\x55\xb4\xac\xb8\x58\x39\x3d\x59\xea\x5c\x4a\x66\xbd\xb0\xb8\x50\x2e\x2c\x40\xbd\xaf\xb8\xe8\x48\x4e\x7d\x6b\x43\x3a\x4a\xbf\xad\xaf\xe4\x32\x2c\x3a\xcf\xb8\xbd\xdc\x66\xde\xcc\xf5\x3c\x30\x3b\xca\xad\xac\xc6\x3b\x2e\x39\x7c\xc6\xcd\xfa\xe7\xc3\xbb\xce\x3c\x2d\x31\xf2")); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; # back to silence snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # still tone rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b\x1b\x1b\x1d\x1e\x22\x28\x30\x3f\xff\xbf\xb0\xa8\xa2\x9e\x9d\x9b\x9b\x9b\x9d\x9e\xa2\xa8\xb0\xbf\xff\x3f\x30\x28\x22\x1e\x1d\x1b")); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; # finally back to silence rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # disable blocking rtpe_req('unblock DTMF', 'PCM DTMF block', { 'from-tag' => ft(), 'delay-buffer' => 0 }); # buffer flushing rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # sync forwarding snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); Time::HiRes::usleep(18000); $seq++; done_testing(); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; rtpengine-mr12.5.1.22/t/auto-daemon-tests-delay-timing.pl000077500000000000000000000235121474347554000231310ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use POSIX; use Time::HiRes qw(usleep gettimeofday time sleep); $ENV{RTPENGINE_EXTENDED_TESTS} or exit(); # timing sensitive tests autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -n 2223 -c 12345 -f -L 7 -E -u 2222)) or die; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq, $rseq, $sseq, $send_start, $diff); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4008)], [qw(198.51.100.1 5008)]); ($port_a) = offer('DTMF trigger', { }, < ft(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'silence', 'delay-buffer' => 2000 }); $seq = 0; $rseq = $seq; # first packet out determines start TS $send_start = time(); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; # 100 packets = 2000 ms for (1 .. 99) { $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > 0.015, 'diff > 0.015'); ok($diff < 0.020, 'diff < 0.020'); sleep($diff); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # final 20 ms sleep replaced by waiting for the first packet out of the buffer. switch to receiver driven mode: for (1 .. 100) { rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; # reception timestamp should line up with what is expected $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # send 10 DTMF packets while still receiving PCM $sseq = $seq; for my $iter (1 .. 10) { rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); my $vol = 10; if ($iter != 10) { my $dtmf = pack("CCn", 5, $vol, 160 * ($seq - $sseq + 1)); snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } else { # send end x3 $vol |= 0x80; my $dtmf = pack("CCn", 5, $vol, 160 * ($seq - $sseq + 1)); snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $seq++; snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $seq++; snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } $seq++; } # 90 more PCM packets for (1 .. 90) { rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, 0x1234, "\x00" x 160)); $rseq++; $diff = ($send_start + 0.02 * ($seq - 2)) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # now DTMF $sseq = $rseq; for my $iter (1 .. 10) { my $vol = 10; if ($iter != 10) { my $dtmf = pack("CCn", 5, $vol, 160 * ($rseq - $sseq + 1)); rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } else { # recv x3 $vol |= 0x80; my $dtmf = pack("CCn", 5, $vol, 160 * ($rseq - $sseq + 1)); rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $rseq++; rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $rseq++; rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } $rseq++; $diff = ($send_start + 0.02 * ($seq - 2)) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4012)], [qw(198.51.100.1 5012)]); ($port_a) = offer('DTMF trigger w inject-DTMF', { flags => ['inject DTMF'] }, < ['inject DTMF'] }, < ft(), 'trigger' => '##', 'trigger-end' => '#', 'DTMF-security-trigger' => 'silence', 'delay-buffer' => 2000 }); $seq = 0; $rseq = $seq; # first packet out determines start TS $send_start = time(); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; # 100 packets = 2000 ms for (1 .. 99) { $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > 0.015, 'diff > 0.015'); ok($diff < 0.020, 'diff < 0.020'); sleep($diff); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # final 20 ms sleep replaced by waiting for the first packet out of the buffer. switch to receiver driven mode: for (1 .. 100) { ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, -1, "\x00" x 160)); $rseq++; # reception timestamp should line up with what is expected $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # send 10 DTMF packets while still receiving PCM $sseq = $seq; for my $iter (1 .. 10) { rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x00" x 160)); $rseq++; $diff = ($send_start + 0.02 * $seq) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); my $vol = 10; if ($iter != 10) { my $dtmf = pack("CCn", 5, $vol, 160 * ($seq - $sseq + 1)); snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } else { # send end x3 $vol |= 0x80; my $dtmf = pack("CCn", 5, $vol, 160 * ($seq - $sseq + 1)); snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $seq++; snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); $seq++; snd($sock_a, $port_b, rtp(101 | ($seq == $sseq ? 0x80 : 0), 1000 + $seq, 3000 + 160 * $sseq, 0x1234, $dtmf)); } $seq++; } # 90 more PCM packets for (1 .. 90) { rcv($sock_b, $port_a, rtpm(0, 1000 + $rseq, 3000 + 160 * $rseq, $ssrc, "\x00" x 160)); $rseq++; $diff = ($send_start + 0.02 * ($seq - 2)) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } # now DTMF $sseq = $rseq; for my $iter (1 .. 10) { my $vol = 10; if ($iter != 10) { my $dtmf = pack("CCn", 5, $vol, 160 * ($rseq - $sseq + 1)); rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, $dtmf)); } else { # recv x3 $vol |= 0x80; my $dtmf = pack("CCn", 5, $vol, 160 * ($rseq - $sseq + 1)); rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, $dtmf)); $rseq++; rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, $dtmf)); $rseq++; rcv($sock_b, $port_a, rtpm(101 | ($rseq == $sseq ? 0x80 : 0), 1000 + $rseq, 3000 + 160 * $sseq, $ssrc, $dtmf)); } $rseq++; $diff = ($send_start + 0.02 * ($seq - 2)) - time(); print("send diff $diff\n"); ok($diff > -0.01, 'diff > -0.01'); ok($diff < +0.01, 'diff < +0.01'); snd($sock_a, $port_b, rtp(0, 1000 + $seq, 3000 + 160 * $seq, 0x1234, "\x00" x 160)); $seq++; } done_testing(); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; rtpengine-mr12.5.1.22/t/auto-daemon-tests-dtx-cn.pl000077500000000000000000000600361474347554000217450ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use POSIX; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 --dtx-delay=10 --dtx-cn-params=10)) or die; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5000)], [qw(198.51.100.10 5002)]); ($port_a) = offer('G.711 DTX', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < CN rcv($sock_b, $port_a, rtpm(8, 2002, 4320, $ssrc, "\x8c\x68\x02\x87\x94\x8e\x17\xc5\x19\x34\x6e\x08\x1c\x7e\x9f\x86\xf4\x09\x12\x8c\x81\x0c\x06\x05\x84\x18\x0e\x03\x16\x9f\x0a\x4c\x35\x4f\x05\x9c\x8e\x1d\x18\xf2\x9e\x8a\x99\xb4\x05\x11\x0e\x59\x02\xc8\x6b\x99\x1a\x03\x8c\x13\x67\x96\x35\x1e\x86\x9e\x80\x82\x99\x10\x86\x1f\x9b\x0a\x8f\x35\x04\x8c\x04\xd5\x63\x69\x0f\x09\x9a\x84\x01\x92\x71\x84\x1b\x8f\x03\xea\x73\x00\x0a\x13\x62\x9b\x00\xe4\x04\x87\x86\xd5\xea\x04\x04\x0d\x89\x8a\x91\xea\x97\x1f\x83\x96\x87\xb5\x85\x0d\x04\x63\xfc\x13\xe7\x46\x83\x14\x97\xd2\x0e\x69\x6d\x17\x0a\x85\x9a\x35\xe3\x8d\x64\x67\x46\x66\x0c\xe9\x02\x80\x87\xcf\x0d\x81\x10\x99\x92\x90\x03\x0c\xfd\x10\xb4\x1b")); rcv($sock_b, $port_a, rtpm(8, 2003, 4480, $ssrc, "\x9a\x87\x6a\x08\x09\x0b\x7b\x61\x81\xe7\x85\x05\x19\x0a\x87\x04\x34\x06\x93\x8a\x88\xb5\x5c\x6b\x0f\x02\x84\x0f\x82\x81\x40\x34\x91\x34\x03\x85\x9a\x03\x14\x6f\x80\xb5\x03\x0e\x98\x12\x00\x0a\x86\x10\x8e\x92\x03\x87\x87\x85\x6f\x6a\x04\x82\x81\x94\x80\x01\x14\x9b\x65\x6c\x84\x09\x65\x0b\xb4\x34\x8d\xe2\x02\x05\x0d\x8c\xe1\x0c\x14\x92\xe1\x0e\x80\x8d\x15\x8e\x03\x0c\x8b\x4b\x8d\x8f\xb5\x00\xb5\x18\x59\x72\x01\x97\x88\x35\x35\x8d\x13\x8f\xf3\x04\x87\x0d\x35\x88\xe4\x1a\x0a\x04\x9e\x94\x17\x0a\xec\x89\x1a\x94\x88\x8e\x94\x34\xe8\x35\x69\x82\x89\xc6\x9c\x52\x9d\x08\x89\x94\xe2\x80\xd3\xb5\x0b\x84\x0d\xee\x0e\x8d\x88\x5d\x0b\x07\x35\x84")); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4640, 0x5678, "\x40" x 160)); rcv($sock_b, $port_a, rtpm(8, 2004, 4640, $ssrc, "\x68" x 160)); rtpe_req('delete', 'G.711 DTX', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5004)], [qw(198.51.100.10 5006)]); ($port_a) = offer('G.711 DTX ptime=30', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < CN rcv($sock_b, $port_a, rtpm(8, 2002, 4480, $ssrc, "\x8c\x68\x02\x87\x94\x8e\x17\xc5\x19\x34\x6e\x08\x1c\x7e\x9f\x86\xf4\x09\x12\x8c\x81\x0c\x06\x05\x84\x18\x0e\x03\x16\x9f\x0a\x4c\x35\x4f\x05\x9c\x8e\x1d\x18\xf2\x9e\x8a\x99\xb4\x05\x11\x0e\x59\x02\xc8\x6b\x99\x1a\x03\x8c\x13\x67\x96\x35\x1e\x86\x9e\x80\x82\x99\x10\x86\x1f\x9b\x0a\x8f\x35\x04\x8c\x04\xd5\x63\x69\x0f\x09\x9a\x84\x01\x92\x71\x84\x1b\x8f\x03\xea\x73\x00\x0a\x13\x62\x9b\x00\xe4\x04\x87\x86\xd5\xea\x04\x04\x0d\x89\x8a\x91\xea\x97\x1f\x83\x96\x87\xb5\x85\x0d\x04\x63\xfc\x13\xe7\x46\x83\x14\x97\xd2\x0e\x69\x6d\x17\x0a\x85\x9a\x35\xe3\x8d\x64\x67\x46\x66\x0c\xe9\x02\x80\x87\xcf\x0d\x81\x10\x99\x92\x90\x03\x0c\xfd\x10\xb4\x1b\x9a\x87\x6a\x08\x09\x0b\x7b\x61\x81\xe7\x85\x05\x19\x0a\x87\x04\x34\x06\x93\x8a\x88\xb5\x5c\x6b\x0f\x02\x84\x0f\x82\x81\x40\x34\x91\x34\x03\x85\x9a\x03\x14\x6f\x80\xb5\x03\x0e\x98\x12\x00\x0a\x86\x10\x8e\x92\x03\x87\x87\x85\x6f\x6a\x04\x82\x81\x94\x80\x01\x14\x9b\x65\x6c\x84\x09\x65\x0b\xb4\x34\x8d\xe2\x02\x05\x0d\x8c")); rcv($sock_b, $port_a, rtpm(8, 2003, 4720, $ssrc, "\xe1\x0c\x14\x92\xe1\x0e\x80\x8d\x15\x8e\x03\x0c\x8b\x4b\x8d\x8f\xb5\x00\xb5\x18\x59\x72\x01\x97\x88\x35\x35\x8d\x13\x8f\xf3\x04\x87\x0d\x35\x88\xe4\x1a\x0a\x04\x9e\x94\x17\x0a\xec\x89\x1a\x94\x88\x8e\x94\x34\xe8\x35\x69\x82\x89\xc6\x9c\x52\x9d\x08\x89\x94\xe2\x80\xd3\xb5\x0b\x84\x0d\xee\x0e\x8d\x88\x5d\x0b\x07\x35\x84\x8a\xfa\xc8\x82\xfd\x95\x0d\x69\x9a\x83\x61\xfd\x12\x81\x69\x18\x85\x06\xb5\x08\xb5\xda\x93\x9d\x82\x03\xf5\x65\xe6\x35\xb5\x1e\x04\xdd\x88\x06\x62\x99\x35\x8f\xf9\x9a\x8a\x0d\x98\x92\x04\x81\x9d\x09\x35\xd0\x80\x0a\x85\x04\x80\x35\x87\x87\x35\x8c\x60\xe9\x14\x0d\x5b\x43\xdf\x0b\xfc\xf4\x8e\x0a\x0e\x77\x1c\x98\x6c\x08\xb5\xe4\x00\x1d\x0a\x82\x85\x8d\x8f\x08\x99\x8e\x01\x09\x63\x08\x95\xb4\x04\x03\xb5\xb5\x00\x87\x08\xe2\x99\x0c\x0e\xe1\xb5\x90\x88\x82\x71\x8b\x0b\xc4\x35\x72\x87\x5a\x9a\x9f\x0a\xd8\x9a\x90\x0c\x9f\x03\x7c\x83\xb5\x0b\x96\x43\x35\x81\xb4\x89\x04\x8f\x13\x82\x00\x94\x8e\x0c\x8b\x80\x05\x0c\x8b\x11\x64\x81\x03\x83\x9b")); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4960, 0x5678, "\x40" x 240)); rcv($sock_b, $port_a, rtpm(8, 2004, 4960, $ssrc, "\x68" x 240)); rtpe_req('delete', 'G.711 DTX ptime=30', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5008)], [qw(198.51.100.10 5010)]); ($port_a) = offer('G.711 DTX ptime change', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < CN rcv($sock_b, $port_a, rtpm(8, 2003, 4480, $ssrc, "\x8c\x68\x02\x87\x94\x8e\x17\xc5\x19\x34\x6e\x08\x1c\x7e\x9f\x86\xf4\x09\x12\x8c\x81\x0c\x06\x05\x84\x18\x0e\x03\x16\x9f\x0a\x4c\x35\x4f\x05\x9c\x8e\x1d\x18\xf2\x9e\x8a\x99\xb4\x05\x11\x0e\x59\x02\xc8\x6b\x99\x1a\x03\x8c\x13\x67\x96\x35\x1e\x86\x9e\x80\x82\x99\x10\x86\x1f\x9b\x0a\x8f\x35\x04\x8c\x04\xd5\x63\x69\x0f\x09\x9a\x84\x01\x92\x71\x84\x1b\x8f\x03\xea\x73\x00\x0a\x13\x62\x9b\x00\xe4\x04\x87\x86\xd5\xea\x04\x04\x0d\x89\x8a\x91\xea\x97\x1f\x83\x96\x87\xb5\x85\x0d\x04\x63\xfc\x13\xe7\x46\x83\x14\x97\xd2\x0e\x69\x6d\x17\x0a\x85\x9a\x35\xe3\x8d\x64\x67\x46\x66\x0c\xe9\x02\x80\x87\xcf\x0d\x81\x10\x99\x92\x90\x03\x0c\xfd\x10\xb4\x1b")); rcv($sock_b, $port_a, rtpm(8, 2004, 4640, $ssrc, "\x9a\x87\x6a\x08\x09\x0b\x7b\x61\x81\xe7\x85\x05\x19\x0a\x87\x04\x34\x06\x93\x8a\x88\xb5\x5c\x6b\x0f\x02\x84\x0f\x82\x81\x40\x34\x91\x34\x03\x85\x9a\x03\x14\x6f\x80\xb5\x03\x0e\x98\x12\x00\x0a\x86\x10\x8e\x92\x03\x87\x87\x85\x6f\x6a\x04\x82\x81\x94\x80\x01\x14\x9b\x65\x6c\x84\x09\x65\x0b\xb4\x34\x8d\xe2\x02\x05\x0d\x8c\xe1\x0c\x14\x92\xe1\x0e\x80\x8d\x15\x8e\x03\x0c\x8b\x4b\x8d\x8f\xb5\x00\xb5\x18\x59\x72\x01\x97\x88\x35\x35\x8d\x13\x8f\xf3\x04\x87\x0d\x35\x88\xe4\x1a\x0a\x04\x9e\x94\x17\x0a\xec\x89\x1a\x94\x88\x8e\x94\x34\xe8\x35\x69\x82\x89\xc6\x9c\x52\x9d\x08\x89\x94\xe2\x80\xd3\xb5\x0b\x84\x0d\xee\x0e\x8d\x88\x5d\x0b\x07\x35\x84")); rcv($sock_b, $port_a, rtpm(8, 2005, 4800, $ssrc, "\x8a\xfa\xc8\x82\xfd\x95\x0d\x69\x9a\x83\x61\xfd\x12\x81\x69\x18\x85\x06\xb5\x08\xb5\xda\x93\x9d\x82\x03\xf5\x65\xe6\x35\xb5\x1e\x04\xdd\x88\x06\x62\x99\x35\x8f\xf9\x9a\x8a\x0d\x98\x92\x04\x81\x9d\x09\x35\xd0\x80\x0a\x85\x04\x80\x35\x87\x87\x35\x8c\x60\xe9\x14\x0d\x5b\x43\xdf\x0b\xfc\xf4\x8e\x0a\x0e\x77\x1c\x98\x6c\x08\xb5\xe4\x00\x1d\x0a\x82\x85\x8d\x8f\x08\x99\x8e\x01\x09\x63\x08\x95\xb4\x04\x03\xb5\xb5\x00\x87\x08\xe2\x99\x0c\x0e\xe1\xb5\x90\x88\x82\x71\x8b\x0b\xc4\x35\x72\x87\x5a\x9a\x9f\x0a\xd8\x9a\x90\x0c\x9f\x03\x7c\x83\xb5\x0b\x96\x43\x35\x81\xb4\x89\x04\x8f\x13\x82\x00\x94\x8e\x0c\x8b\x80\x05\x0c\x8b\x11\x64\x81\x03\x83\x9b")); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4960, 0x5678, "\x40" x 240)); rcv($sock_b, $port_a, rtpm(8, 2006, 4960, $ssrc, "\x68" x 160)); rtpe_req('delete', 'G.711 DTX ptime change', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5012)], [qw(198.51.100.10 5014)]); ($port_a) = offer('G.722 DTX', { replace => ['origin'], codec => { transcode => ['G722'], } }, < ['origin'] }, < CN rcv($sock_b, $port_a, rtpm(9, 2002, 4320, $ssrc, "\xd8\xd6\xff\xd9\xd8\xda\xfa\xd8\xd6\xfc\xda\xda\xdc\xdb\xfb\xd3\xfc\xdc\xd5\xdd\xdd\xde\xd8\xda\xfe\xd5\xda\xfd\xdb\xdd\xd8\xdb\xdd\xd8\xda\xfe\xd8\xd8\xd9\xdc\xda\xdd\xde\xdc\xd6\xdc\xd9\xda\xdf\xff\xd7\xde\xd9\xd7\xfe\xd9\xde\xdc\xd8\xd6\xdb\xfc\xda\xdd\xdc\xd7\xdd\xd5\xde\xdf\xfe\xd7\xdc\xd6\xdd\xd9\xde\xfb\xd4\xd7\xff\xd7\xfe\xd9\xfc\xd9\xd5\xdc\xd8\xdc\xdc\xdc\xd9\xd7\xff\xd5\xdb\xf9\xdb\xdd\xd5\xdc\xd8\xd7\xf5\xdb\xde\xd8\xd7\xff\xd6\xf8\xde\xdc\xd5\xd8\xdc\xd7\xf5\xdd\xd9\xd7\xde\xdc\xd5\xfa\xfe\xd6\xdc\xd6\xff\xd6\xf9\xdf\xdc\xd6\xdb\xfe\xd5\xfe\xde\xde\xd8\xd4\x9b\x2c\x84\x22\x86\x20\x12\x90\x25\x15\x3c\x93\xaa\x98\x8d\xa6")); rcv($sock_b, $port_a, rtpm(9, 2003, 4480, $ssrc, "\x94\x9a\x3f\x2f\x17\x53\xb2\xb2\x37\x14\x91\xb1\x5a\x2e\xd9\xbd\xf8\x58\x36\x8b\x66\x94\x37\x9a\x36\x7b\x8a\x73\x6d\x7a\x7c\xd9\x37\x87\xea\xf2\x2e\x96\x33\x92\x11\x9c\x76\x24\xbe\x56\x3a\x89\xd7\x27\xf0\x78\x7b\xd6\x88\x3f\xb8\x26\x98\x2a\x90\xca\x2f\xd7\xf3\x6f\xf3\xd2\x8f\x2f\x79\x90\x2c\xf0\x7b\x8c\x35\x95\x5d\x71\xf6\x9c\x7c\x7d\x37\x8d\x77\xfc\x71\x30\xd7\xfd\xd2\xda\xbe\x27\x30\xd7\xd9\x5d\x90\x36\xef\x76\x78\x5f\x8e\xd6\x76\x71\xfb\x72\xfe\x3e\xcf\xde\x74\x97\xf2\x71\xfa\x90\x38\x2f\x8c\xde\x2a\xdd\xd6\xfc\x74\x92\x35\xbd\x71\x34\xdc\x8f\x73\xdf\x7c\x73\x77\x95\x8f\x70\xff\x2e\xdc\x7f\x34\xd3\x92\xdf\xbb\x70\x74\x2d\xdc\x5c")); # start audio again snd($sock_a, $port_b, rtp(0, 2003, 4800, 0x5678, "\x40" x 160)); rcv($sock_b, $port_a, rtpm(9, 2004, 4640, $ssrc, "\xd0\xd7\x97\x2b\xfa\x94\xfc\x72\x33\x5d\x36\xd6\xd5\xd9\x99\x29\xd8\x72\x34\xda\x8d\x74\xdc\x98\x6e\x71\xd5\xda\xfe\x76\x30\xd5\x94\x70\xdb\xdc\x95\x2c\xdd\x74\x32\x8f\x74\x36\x79\xdb\xdf\x99\x32\x72\x5d\x32\xd3\xd8\x34\xfd\xda\x2d\x93\x78\x91\x2a\xd5\x79\x70\x92\xdd\x96\x6f\x75\x95\xfe\x78\x78\x92\x74\x2c\xd7\x31\xdb\x90\x30\xfd\x73\x75\x2e\xd0\x37\xd9\xd9\x7b\xd9\x79\x2c\xd8\x8e\x70\xdf\x34\x76\x97\x74\xda\x8f\x72\x73\xde\x94\x99\x74\x79\xfe\x94\xfc\x2c\xd9\x7f\x2e\x31\x37\xcd\x7a\xd2\xd9\x73\x2b\x7a\x37\x5c\x38\xce\x37\x75\x7c\x31\x7e\x2c\xd0\x79\xd4\x7a\x94\x75\x2b\x76\x91\xd7\x93\x79\xfd\xde\xff\xfe\xdc\xd9\xda\xdb\x5b\x5c\xdd")); rtpe_req('delete', 'G.722 DTX', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5016)], [qw(198.51.100.10 5018)]); ($port_a) = offer('G.722 reverse DTX', { replace => ['origin'], codec => { transcode => ['PCMU'], } }, < ['origin'] }, < CN rcv($sock_b, $port_a, rtpm(0, 2002, 4320, $ssrc, "\x0f\x10\x10\x11\x11\x12\x13\x14\x17\x19\x22\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x02\x02\x03\x03\x04\x04\x05\x05\x06\xa5\x40\x28\xad\xbd\xa4\x3c\xe6\x32\x1e\x42\x21\x35\x50\xb4\xac")); rcv($sock_b, $port_a, rtpm(0, 2003, 4480, $ssrc, "\xda\x22\x37\xa6\xaa\x26\x2b\x2e\xad\x31\x24\x29\x3b\xb4\x20\x5e\x1f\x5e\x2e\xb5\xa4\x36\x31\xd4\xb3\xa0\xb2\x9e\x2f\x3a\x23\x6b\x27\xdc\x3f\xb2\x30\x29\xa5\x38\x4a\xbb\x1f\x33\xac\xb3\xa9\xa7\xb2\x39\xab\x34\xb0\x1f\xa5\x1e\x2d\xa6\x2e\xff\x47\x41\x25\x23\xb0\xad\x2b\xb7\x57\xae\x30\xa4\x29\xbf\x55\x2a\x1f\x37\x46\xb0\x2a\xcc\x2e\xac\xac\xfd\xbf\x2e\x2d\x26\xa2\xa0\xba\xbf\xbc\x34\xa8\xbb\xac\x9f\xaf\x26\x2e\x47\xd2\x38\xcb\x64\xa9\x3d\xbc\xf0\x23\x41\x44\x3c\x1f\xae\xaf\x1f\xc7\xa7\x4c\x4b\x64\x4a\x25\xc1\x27\xaa\xac\xde\x27\xab\x39\xb2\xb7\xb9\x28\x26\xd3\x39\x9e\x30\xaf\xad\x3e\x21\x23\x20\x4e\x49\xaa\xcb\xae\x2e\x32\x1f\xac\x2d")); rcv($sock_b, $port_a, rtpm(0, 2004, 4640, $ssrc, "\x1e\x2b\xb8\x9f\xa2\x9e\x6e\x3f\x25\x28\xad\x24\xa8\xab\x61\x1e\xba\x1e\x28\xae\xaf\x29\x3d\x43\xa9\x9e\x29\x24\xb1\x37\x2a\x20\xac\x39\xa3\xb7\x28\xac\xad\xaf\x43\x3f\x2e\xa7\xab\xbd\xaa\x2a\x3d\xb0\x4d\x44\xad\x23\x4d\x21\x9e\x1e\xa6\xc6\x27\x2e\x27\xa6\xc9\x26\x3d\xb7\xc9\x24\xa9\xa6\x3d\xa4\x29\x25\xa0\x5c\xa7\xa5\x9f\x29\x9f\x31\x6b\x53\x2b\xbc\xa1\x1f\x1f\xa7\x38\xa5\xd5\x2e\xac\x26\x1e\xa1\xcc\x2f\x20\x2d\xb3\xbc\x3c\x1f\xc4\xa3\x2f\xbd\xa1\xa4\xbd\x1e\xc0\x1f\x41\xa8\xa2\xe3\xb5\x71\xb6\x22\xa3\xbd\xc6\xa9\xf1\x9e\x20\xae\x26\xc2\x24\xa7\xa2\x6f\x20\x2d\x1f\xae\xa0\xcd\xdd\xa7\xd3\xbe\x27\x40\xaf\xa8\x49\xd2\x37\xaa\x41\x31")); # start audio again snd($sock_a, $port_b, rtp(9, 2003, 4960, 0x5678, "\x3a\x96\x24\x86\x21\x84\x04\x8c\x4d\xd0\xd1\xd2\x94\xd5\xd5\xd6\xd7\xd8\x98\xd8\xd8\xd8\xd8\xd8\xd8\xd8\xd9\xd9\xda\xda\xda\xdb\xdc\x9a\xda\xdb\x9c\xda\xda\x9c\xda\xda\xdb\xdc\xda\xdb\xdd\xdb\xdb\xdc\xda\xdb\xdb\xdd\xda\xdb\xdc\xda\xda\xda\xdc\xd9\xd9\xdb\xdc\xd8\xd8\xda\xdb\xdc\xd8\xd9\xda\xdb\xdb\xdb\xde\xda\xdb\xdb\xdb\xdb\xdb\xde\xda\xda\xdb\xdb\xdb\xdb\xde\xda\xdb\xdb\xdb\xdb\xdb\xde\xda\xdb\xdc\xd6\xdc\xd7\xff\xd8\xd8\xda\xda\xdb\xd9\xdc\xd9\xdb\xdc\xd6\xdd\xd8\xd9\xdc\xd7\xfc\xd7\xdd\xd9\xd9\xdb\xdc\xd9\xd9\xdb\xde\xd9\xd8\xdb\xdf\xda\xda\xdd\xd9\xd9\xda\xde\xda\xdb\xdf\xdc\xd5\xdb\xff\xd6\xde\xdc\xd9\xd9\xd8\xdd\xd9\xda\xfe")); rcv($sock_b, $port_a, rtpm(0, 2005, 4800, $ssrc, "\xae\x2b\x9f\x22\x9f\xe8\xb8\xb6\xa8\x29\xdb\x4d\xca\x1e\x9e\x33\x2d\xef\xa1\x2b\x46\xb2\x1f\xa5\xcf\xb0\xa0\x26\xb1\xb7\x2e\xab\xb6\x23\x1e\xf4\xaa\x20\xaf\x2e\xaa\x1f\xad\xad\x1f\xa6\x48\xc1\x3d\x26\x68\x61\xed\x20\xd2\xda\xa3\x20\x23\x59\x35\xb1\x44\x22\x9e\xcc\x2a\x36\x20\xa7\xaf\xa7\xa4\x21\xb2\xa3\x2b\x22\x47\x22\xbe\x9e\x2d\x28\x9e\x9f\x2a\xad\x22\xc6\xb2\x25\x24\xc8\x9e\xb9\xa2\xa8\x56\xa1\x21\xe5\x1f\x54\xac\x68\xaf\xb4\x1f\xea\xaf\xb9\x26\xb4\x28\x52\xa9\x9e\x21\xbb\x60\x1f\xab\x9e\xa2\x2d\xa5\x38\xa7\x29\xbd\xa3\x26\xa1\xa9\x2f\x26\xa0\x3a\x4c\xab\x29\xa8\xb0\x07\x07\x08\x08\x08\x09\x09\x0a\x0a\x0a\x0b\x0b\x0b\x0c\x0c\x0c")); snd($sock_a, $port_b, rtp(9, 2004, 5120, 0x5678, "\x3a\x96\x24\x86\x21\x84\x04\x8c\x4d\xd0\xd1\xd2\x94\xd5\xd5\xd6\xd7\xd8\x98\xd8\xd8\xd8\xd8\xd8\xd8\xd8\xd9\xd9\xda\xda\xda\xdb\xdc\x9a\xda\xdb\x9c\xda\xda\x9c\xda\xda\xdb\xdc\xda\xdb\xdd\xdb\xdb\xdc\xda\xdb\xdb\xdd\xda\xdb\xdc\xda\xda\xda\xdc\xd9\xd9\xdb\xdc\xd8\xd8\xda\xdb\xdc\xd8\xd9\xda\xdb\xdb\xdb\xde\xda\xdb\xdb\xdb\xdb\xdb\xde\xda\xda\xdb\xdb\xdb\xdb\xde\xda\xdb\xdb\xdb\xdb\xdb\xde\xda\xdb\xdc\xd6\xdc\xd7\xff\xd8\xd8\xda\xda\xdb\xd9\xdc\xd9\xdb\xdc\xd6\xdd\xd8\xd9\xdc\xd7\xfc\xd7\xdd\xd9\xd9\xdb\xdc\xd9\xd9\xdb\xde\xd9\xd8\xdb\xdf\xda\xda\xdd\xd9\xd9\xda\xde\xda\xdb\xdf\xdc\xd5\xdb\xff\xd6\xde\xdc\xd9\xd9\xd8\xdd\xd9\xda\xfe")); rcv($sock_b, $port_a, rtpm(0, 2006, 4960, $ssrc, "\x0d\x0d\x0d\x0e\x0e\x0e\x0f\x10\x13\x15\x1e\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x02\x02\x03\x04\x04\x05\x05\x06\x07\x07\x07\x08\x08\x09\x09\x0a\x0a\x0a\x0b\x0b")); rtpe_req('delete', 'G.722 reverse DTX', { 'from-tag' => ft() }); done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-dtx.pl000077500000000000000000001633241474347554000213530ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use POSIX; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 --dtx-delay=10)) or die; #my $amr_tests = $ENV{RTPENGINE_EXTENDED_TESTS}; my $amr_tests = 0; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq); if ($amr_tests) { ($sock_a, $sock_b) = new_call([qw(198.51.100.10 4024)], [qw(198.51.100.10 4026)]); ($port_a) = offer('AMR SID', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < 'remove', replace => ['origin'] }, < ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 4026)], [qw(198.51.100.10 4028)]); ($port_a) = offer('AMR SID TS gap', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < 'remove', replace => ['origin'] }, < ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 4034)], [qw(198.51.100.10 4036)]); ($port_a) = offer('AMR w DTMF', { codec => { mask => ['all'], transcode => [ 'G722', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2', 'AMR', 'PCMA', 'telephone-event' ], } }, < ['single codec'] }, < ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 4042)], [qw(198.51.100.10 4044)]); ($port_a) = offer('AMR w reverse DTMF', { codec => { mask => ['all'], transcode => [ 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'PCMA', 'telephone-event' ], } }, < [] }, < ft() }); } ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5000)], [qw(198.51.100.10 5002)]); ($port_a) = offer('G.711 DTX', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < silence rcv($sock_b, $port_a, rtpm(8, 2002, 4320, $ssrc, "\xd5" x 160)); rcv($sock_b, $port_a, rtpm(8, 2003, 4480, $ssrc, "\xd5" x 160)); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4640, 0x5678, "\x40" x 160)); rcv($sock_b, $port_a, rtpm(8, 2004, 4640, $ssrc, "\x68" x 160)); rtpe_req('delete', 'G.711 DTX', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5004)], [qw(198.51.100.10 5006)]); ($port_a) = offer('G.711 DTX ptime=30', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < silence rcv($sock_b, $port_a, rtpm(8, 2002, 4480, $ssrc, "\xd5" x 240)); rcv($sock_b, $port_a, rtpm(8, 2003, 4720, $ssrc, "\xd5" x 240)); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4960, 0x5678, "\x40" x 240)); rcv($sock_b, $port_a, rtpm(8, 2004, 4960, $ssrc, "\x68" x 240)); rtpe_req('delete', 'G.711 DTX ptime=30', { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.10 5008)], [qw(198.51.100.10 5010)]); ($port_a) = offer('G.711 DTX ptime change', { replace => ['origin'], codec => { transcode => ['PCMA'], } }, < ['origin'] }, < silence rcv($sock_b, $port_a, rtpm(8, 2003, 4480, $ssrc, "\xd5" x 160)); rcv($sock_b, $port_a, rtpm(8, 2004, 4640, $ssrc, "\xd5" x 160)); rcv($sock_b, $port_a, rtpm(8, 2005, 4800, $ssrc, "\xd5" x 160)); # start audio again snd($sock_a, $port_b, rtp(0, 2002, 4960, 0x5678, "\x40" x 240)); rcv($sock_b, $port_a, rtpm(8, 2006, 4960, $ssrc, "\x68" x 160)); rtpe_req('delete', 'G.711 DTX ptime change', { 'from-tag' => ft() }); done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-evs.pl000077500000000000000000002271011474347554000213430ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use IPC::Open3; $ENV{RTPENGINE_EXTENDED_TESTS} or exit(); $ENV{RTPENGINE_3GPP_EVS_LIB} or exit(); autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -f -L 7 -E), "--evs-lib-path=$ENV{RTPENGINE_3GPP_EVS_LIB}") or die; my $wav_file = "\x52\x49\x46\x46\x64\x06\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x01\x00\x01\x00\x40\x1f\x00\x00\x80\x3e\x00\x00\x02\x00\x10\x00\x64\x61\x74\x61\x40\x06\x00\x00\x00\x00\xb0\x22\x45\x41\x25\x58\x95\x64\x24\x65\xbd\x59\xb6\x43\xb4\x25\x35\x03\x5e\xe0\x3b\xc1\x8c\xa9\x0f\x9c\x6a\x9a\xc2\xa4\xe7\xb9\x55\xd7\x92\xf9\x92\x1c\x30\x3c\xb2\x54\x2e\x63\xf3\x65\xa7\x5c\x68\x48\x9b\x2b\xa1\x09\x8a\xe6\x71\xc6\x28\xad\xab\x9d\xcc\x99\x06\xa2\x5c\xb5\x81\xd1\x2d\xf3\x53\x16\xe1\x36\xe8\x50\x64\x61\x59\x66\x36\x5f\xcf\x4c\x56\x31\x04\x10\xd0\xec\xe0\xcb\x19\xb1\xa9\x9f\x98\x99\xa8\x9f\x1a\xb1\xdf\xcb\xd1\xec\x04\x10\x54\x31\xd2\x4c\x33\x5f\x5c\x66\x61\x61\xeb\x50\xde\x36\x56\x16\x2b\xf3\x83\xd1\x59\xb5\x08\xa2\xcb\x99\xac\x9d\x28\xad\x70\xc6\x8a\xe6\xa3\x09\x98\x2b\x6a\x48\xa6\x5c\xf4\x65\x2d\x63\xb3\x54\x2e\x3c\x93\x1c\x93\xf9\x53\xd7\xe9\xb9\xc1\xa4\x69\x9a\x11\x9c\x8b\xa9\x3b\xc1\x5e\xe0\x36\x03\xb2\x25\xba\x43\xb7\x59\x2a\x65\x90\x64\x29\x58\x42\x41\xb2\x22\xff\xff\x50\xdd\xbb\xbe\xdb\xa7\x6b\x9b\xdd\x9a\x42\xa6\x4b\xbc\x4b\xda\xca\xfc\xa5\x1f\xc2\x3e\x77\x56\xed\x63\x9a\x65\x3b\x5b\x1b\x46\xa9\x28\x70\x06\x6c\xe3\xd2\xc3\x4d\xab\xd1\x9c\x10\x9a\x56\xa3\x99\xb7\x67\xd4\x5b\xf6\x79\x19\x8e\x39\xd7\x52\x58\x62\x30\x66\xfd\x5d\xa2\x4a\x81\x2e\xd1\x0c\xae\xe9\x1f\xc9\x17\xaf\x9e\x9e\xa4\x99\xce\xa0\x2c\xb3\xaf\xce\xf8\xef\x33\x13\x1e\x34\xe8\x4e\x57\x60\x68\x66\x57\x60\xe9\x4e\x1c\x34\x35\x13\xf6\xef\xb0\xce\x2d\xb3\xcc\xa0\xa6\x99\x9c\x9e\x17\xaf\x22\xc9\xa9\xe9\xd6\x0c\x7c\x2e\xa7\x4a\xf8\x5d\x36\x66\x52\x62\xdb\x52\x8c\x39\x79\x19\x5c\xf6\x67\xd4\x97\xb7\x59\xa3\x0e\x9a\xd1\x9c\x4e\xab\xd0\xc3\x6e\xe3\x6e\x06\xac\x28\x18\x46\x3d\x5b\x98\x65\xef\x63\x76\x56\xc3\x3e\xa4\x1f\xc9\xfc\x4e\xda\x49\xbc\x43\xa6\xdd\x9a\x69\x9b\xdd\xa7\xbb\xbe\x4f\xdd\x01\x00\xaf\x22\x47\x41\x23\x58\x96\x64\x24\x65\xbb\x59\xba\x43\xb0\x25\x39\x03\x59\xe0\x40\xc1\x87\xa9\x15\x9c\x65\x9a\xc4\xa4\xe7\xb9\x56\xd7\x90\xf9\x94\x1c\x2e\x3c\xb3\x54\x2f\x63\xf1\x65\xa8\x5c\x68\x48\x9a\x2b\xa2\x09\x8a\xe6\x71\xc6\x27\xad\xac\x9d\xcb\x99\x08\xa2\x59\xb5\x84\xd1\x2a\xf3\x56\x16\xe0\x36\xe7\x50\x65\x61\x59\x66\x35\x5f\xd1\x4c\x54\x31\x04\x10\xd2\xec\xdd\xcb\x1c\xb1\xa5\x9f\x9b\x99\xa8\x9f\x18\xb1\xe2\xcb\xcd\xec\x07\x10\x54\x31\xd1\x4c\x33\x5f\x5d\x66\x60\x61\xec\x50\xdd\x36\x57\x16\x29\xf3\x86\xd1\x57\xb5\x09\xa2\xcb\x99\xab\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9a\x2b\x69\x48\xa7\x5c\xf2\x65\x2e\x63\xb2\x54\x31\x3c\x91\x1c\x93\xf9\x53\xd7\xe9\xb9\xc1\xa4\x6a\x9a\x10\x9c\x8a\xa9\x3f\xc1\x59\xe0\x3a\x03\xb0\x25\xb8\x43\xbd\x59\x24\x65\x95\x64\x24\x58\x46\x41\xaf\x22\x02\x00\x4e\xdd\xbb\xbe\xdd\xa7\x68\x9b\xdf\x9a\x42\xa6\x48\xbc\x50\xda\xc6\xfc\xa7\x1f\xc2\x3e\x75\x56\xef\x63\x99\x65\x3c\x5b\x1a\x46\xaa\x28\x6e\x06\x6e\xe3\xd1\xc3\x4e\xab\xd1\x9c\x0e\x9a\x57\xa3\x9a\xb7\x64\xd4\x60\xf6\x75\x19\x90\x39\xd7\x52\x55\x62\x34\x66\xf9\x5d\xa8\x4a\x7a\x2e\xd8\x0c\xa7\xe9\x23\xc9\x16\xaf\x9d\x9e\xa6\x99\xcb\xa0\x2f\xb3\xad\xce\xfa\xef\x30\x13\x21\x34\xe6\x4e\x59\x60\x66\x66\x5a\x60\xe4\x4e\x23\x34\x2e\x13\xfc\xef\xab\xce\x30\xb3\xcb\xa0\xa5\x99\x9f\x9e\x14\xaf\x24\xc9\xa7\xe9\xd8\x0c\x7b\x2e\xa8\x4a\xf7\x5d\x36\x66\x53\x62\xda\x52\x8d\x39\x78\x19\x5d\xf6\x67\xd4\x97\xb7\x59\xa3\x0d\x9a\xd2\x9c\x4e\xab\xd1\xc3\x6d\xe3\x6f\x06\xaa\x28\x19\x46\x3f\x5b\x95\x65\xf2\x63\x74\x56\xc2\x3e\xa8\x1f\xc4\xfc\x52\xda\x45\xbc\x46\xa6\xdc\x9a\x6a\x9b\xdc\xa7\xba\xbe\x51\xdd\xff\xff\xb1\x22\x45\x41\x24\x58\x97\x64\x22\x65\xbd\x59\xb7\x43\xb3\x25\x37\x03\x5b\xe0\x3e\xc1\x89\xa9\x11\x9c\x6a\x9a\xc0\xa4\xeb\xb9\x51\xd7\x94\xf9\x91\x1c\x31\x3c\xb1\x54\x2f\x63\xf3\x65\xa5\x5c\x6c\x48\x95\x2b\xa7\x09\x86\xe6\x73\xc6\x28\xad\xa9\x9d\xcf\x99\x04\xa2\x5b\xb5\x84\xd1\x29\xf3\x57\x16\xde\x36\xe9\x50\x65\x61\x57\x66\x38\x5f\xcd\x4c\x57\x31\x04\x10\xd0\xec\xe1\xcb\x17\xb1\xaa\x9f\x97\x99\xaa\x9f\x18\xb1\xe1\xcb\xce\xec\x07\x10\x53\x31\xd0\x4c\x38\x5f\x55\x66\x68\x61\xe6\x50\xe0\x36\x56\x16\x2b\xf3\x81\xd1\x5d\xb5\x04\xa2\xce\x99\xaa\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9b\x2b\x67\x48\xa9\x5c\xf1\x65\x2e\x63\xb4\x54\x2e\x3c\x93\x1c\x92\xf9\x54\xd7\xe8\xb9\xc2\xa4\x69\x9a\x10\x9c\x8c\xa9\x3c\xc1\x5c\xe0\x37\x03\xb2\x25\xb8\x43\xbc\x59\x24\x65\x95\x64\x26\x58\x43\x41\xb2\x22\xff\xff\x50\xdd\xba\xbe\xde\xa7\x68\x9b\xdd\x9a\x45\xa6\x45\xbc\x52\xda\xc5\xfc\xa8\x1f\xbf\x3e\x79\x56\xec\x63\x9b\x65\x3b\x5b\x1a\x46\xaa\x28\x6f\x06\x6e\xe3\xd0\xc3\x4f\xab\xd0\x9c\x0f\x9a\x58\xa3\x97\xb7\x68\xd4\x5c\xf6\x78\x19\x8f\x39\xd6\x52\x57\x62\x32\x66\xfb\x5d\xa6\x4a\x7b\x2e\xd8\x0c\xa6\xe9\x25\xc9\x15\xaf\x9c\x9e\xa9\x99\xc7\xa0\x33\xb3\xa9\xce\xfd\xef\x2f\x13\x21\x34\xe6\x4e\x58\x60\x67\x66\x59\x60\xe5\x4e\x23\x34\x2c\x13\x00\xf0\xa6\xce\x35\xb3\xc7\xa0\xa8\x99\x9d\x9e\x15\xaf\x24\xc9\xa8\xe9\xd5\x0c\x7e\x2e\xa5\x4a\xfa\x5d\x35\x66\x52\x62\xdb\x52\x8d\x39\x77\x19\x5e\xf6\x66\xd4\x98\xb7\x59\xa3\x0c\x9a\xd3\x9c\x4d\xab\xd1\xc3\x6e\xe3\x6e\x06\xaa\x28\x1b\x46\x3b\x5b\x9a\x65\xed\x63\x76\x56\xc4\x3e\xa3\x1f\xcb\xfc\x4b\xda\x4a\xbc\x43\xa6\xdd\x9a\x6a\x9b\xdc\xa7\xba\xbe\x51\xdd\xff\xff\xb1\x22\x44\x41\x25\x58\x96\x64\x23\x65\xbd\x59\xb6\x43\xb4\x25\x36\x03\x5c\xe0\x3d\xc1\x8a\xa9\x12\x9c\x67\x9a\xc4\xa4\xe6\xb9\x55\xd7\x93\xf9\x91\x1c\x31\x3c\xb0\x54\x31\x63\xef\x65\xab\x5c\x66\x48\x9a\x2b\xa4\x09\x87\xe6\x73\xc6\x26\xad\xad\x9d\xcb\x99\x07\xa2\x5b\xb5\x81\xd1\x2c\xf3\x56\x16\xde\x36\xeb\x50\x62\x61\x59\x66\x38\x5f\xcc\x4c\x59\x31\x01\x10\xd3\xec\xdd\xcb\x1b\xb1\xa8\x9f\x98\x99\xa9\x9f\x18\xb1\xe0\xcb\xd1\xec\x03\x10\x57\x31\xce\x4c\x37\x5f\x58\x66\x63\x61\xec\x50\xdb\x36\x5a\x16\x27\xf3\x85\xd1\x5a\xb5\x05\xa2\xce\x99\xaa\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9a\x2b\x69\x48\xa6\x5c\xf4\x65\x2e\x63\xb1\x54\x32\x3c\x8e\x1c\x96\xf9\x52\xd7\xea\xb9\xc1\xa4\x67\x9a\x13\x9c\x8a\xa9\x3c\xc1\x5e\xe0\x33\x03\xb7\x25\xb4\x43\xbf\x59\x21\x65\x99\x64\x21\x58\x48\x41\xad\x22\x03\x00\x4f\xdd\xbb\xbe\xdb\xa7\x6a\x9b\xdd\x9a\x43\xa6\x4b\xbc\x4a\xda\xcb\xfc\xa4\x1f\xc3\x3e\x76\x56\xef\x63\x96\x65\x40\x5b\x17\x46\xac\x28\x6e\x06\x6d\xe3\xd2\xc3\x4d\xab\xd2\x9c\x0d\x9a\x59\xa3\x97\xb7\x68\xd4\x5c\xf6\x77\x19\x8f\x39\xd8\x52\x55\x62\x33\x66\xfb\x5d\xa4\x4a\x7f\x2e\xd4\x0c\xab\xe9\x20\xc9\x17\xaf\x9d\x9e\xa7\x99\xc9\xa0\x32\xb3\xa9\xce\xfd\xef\x2f\x13\x20\x34\xe8\x4e\x56\x60\x6a\x66\x55\x60\xe9\x4e\x1f\x34\x31\x13\xfa\xef\xad\xce\x2e\xb3\xcc\xa0\xa7\x99\x9b\x9e\x18\xaf\x20\xc9\xac\xe9\xd2\x0c\x81\x2e\xa1\x4a\xff\x5d\x30\x66\x56\x62\xd7\x52\x90\x39\x77\x19\x5d\xf6\x67\xd4\x96\xb7\x5a\xa3\x0e\x9a\xd0\x9c\x50\xab\xcf\xc3\x6e\xe3\x6f\x06\xaa\x28\x1a\x46\x3d\x5b\x98\x65\xee\x63\x77\x56\xc1\x3e\xa7\x1f\xc8\xfc\x4c\xda\x4b\xbc\x41\xa6\xdf\x9a\x68\x9b\xdd\xa7\xba\xbe\x51\xdd"; my ($sock_a, $sock_b, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $srtp_ctx_a, $srtp_ctx_b, @ret1, @ret2); my ($seq, $ts); new_call; offer('EVS codec accept basic', { codec => { accept => ['EVS'] } }, < { accept => ['EVS'] } }, < { accept => ['EVS/16000/1///evs-mode-switch=1;hf-only=1'] } }, < { accept => ['EVS/16000/1///hf-only=1'] } }, < { accept => ['EVS/16000/1///hf-only=1'] } }, < { accept => ['EVS/16000/1///hf-only=1'] } }, < { accept => ['EVS/16000/1///hf-only=1;br=8-32'] } }, < { accept => ['EVS/16000/1///hf-only=1;br=6-50'] } }, < { accept => ['EVS/16000/1///evs-mode-switch=1;mode-set=3,4,5,6'] } }, < { transcode => ['PCMA'] } }, < { transcode => ['PCMA'] } }, < { transcode => ['EVS'] } }, < { transcode => ['PCMA', 'PCMU'] } }, < { transcode => ['EVS/16000/1///hf-only=1'] } }, < { transcode => ['EVS/16000/1///evs-mode-switch=1'] } }, < { transcode => ['PCMA','PCMU'] } }, < { transcode => ['EVS/16000/1///evs-mode-switch=1;hf-only=1'] } }, < { transcode => ['EVS/16000/1/96000//hf-only=1'] } }, < { transcode => ['EVS/16000/1///hf-only=1;br=96'] } }, < { transcode => ['EVS/16000/1///hf-only=1;br=24.4-96'] } }, < mode 6 ($port_a) = offer('EVS forward bw=nb', { codec => { transcode => ['EVS/16000/1/48800//hf-only=1;bw=nb'] } }, < { transcode => ['EVS/16000/1///cmr=1'] } }, < { transcode => ['EVS/16000/1///evs-mode-switch=1;mode-set=2'] } }, < { transcode => ['EVS/16000/1///evs-mode-switch=1;mode-set=7'] } }, < { transcode => ['EVS'] } }, < { transcode => ['EVS/16000/1///hf-only=1;br=5.9'] } }, < 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(126 | 0x80, -1, -1, -1, "\x01\xe2\xaa\xbf\x4b\xc3\xdc\x7d\x28\xb7\xbf\xdb\xf9\xb9\x8a\x33\xb3\x72\x32")); rcv($sock_a, -1, rtpm(126, $seq + 1, $ts + 320 * 1, $ssrc, "\x01\xe1\xd9\xfe\x9e\x40\x00\x44\x38\x49\x41\xa5\x65\x15\xa2\x89\xa0\x5d\xc3")); rcv($sock_a, -1, rtpm(126, $seq + 2, $ts + 320 * 2, $ssrc, "\x01\xe1\x52\x19\x12\x54\x2a\xfb\x5a\x0f\x44\x8d\x72\xc8\xc6\x36\x13\x59\xc2")); rcv($sock_a, -1, rtpm(126, $seq + 3, $ts + 320 * 3, $ssrc, "\x01\xe1\x56\x91\xa2\x55\x55\x5b\xcf\x07\x36\x37\x26\xdd\x12\xb4\x7f\xc3\xc2")); rcv($sock_a, -1, rtpm(126, $seq + 4, $ts + 320 * 4, $ssrc, "\x01\xe1\x52\x90\xd1\x2a\xaa\xbe\xcb\x83\x4d\x34\xc6\x09\xe6\xa6\x77\x5f\x00")); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2024)], [qw(198.51.100.3 2026)]); offer('media playback, compact with zero padding', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(126 | 0x80, -1, -1, -1, "\xff\x01\xe2\xaa\xbf\x4b\xc3\xdc\x7d\x28\xb7\xbf\xdb\xf9\xb9\x8a\x33\xb3\x72\x32\x00")); rcv($sock_a, -1, rtpm(126, $seq + 1, $ts + 320 * 1, $ssrc, "\xff\x01\xe1\xd9\xfe\x9e\x40\x00\x44\x38\x49\x41\xa5\x65\x15\xa2\x89\xa0\x5d\xc3\x00")); rcv($sock_a, -1, rtpm(126, $seq + 2, $ts + 320 * 2, $ssrc, "\xff\x01\xe1\x52\x19\x12\x54\x2a\xfb\x5a\x0f\x44\x8d\x72\xc8\xc6\x36\x13\x59\xc2\x00")); rcv($sock_a, -1, rtpm(126, $seq + 3, $ts + 320 * 3, $ssrc, "\xff\x01\xe1\x56\x91\xa2\x55\x55\x5b\xcf\x07\x36\x37\x26\xdd\x12\xb4\x7f\xc3\xc2\x00")); rcv($sock_a, -1, rtpm(126, $seq + 4, $ts + 320 * 4, $ssrc, "\xff\x01\xe1\x52\x90\xd1\x2a\xaa\xbe\xcb\x83\x4d\x34\xc6\x09\xe6\xa6\x77\x5f\x00\x00")); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-intfs.pl000066400000000000000000000103411474347554000216620ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use POSIX; autotest_start(qw(--config-file=none -t -1 -i foo/203.0.113.1 -i foo/2001:db8:4321::1 -i bar/203.0.113.2 -i bar/2001:db8:4321::2 -i blah=foo -i baz=bar -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1)) or die; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq); new_call; offer('intfs selection', { direction => [qw(foo bar)] }, < 'foo', 'to-interface' => 'bar' }, < [qw(blah baz)] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2020)], [qw(198.51.100.3 2022)]); offer('media playback, side A', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2100)], [qw(198.51.100.3 2102)]); offer('media playback, side A, repeat', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file, 'repeat-times' => 2 }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); rcv($sock_a, -1, rtpm(8 | 0x80, $seq + 5, $ts + 160 * 5, $ssrc, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 6, $ts + 160 * 6, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 7, $ts + 160 * 7, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 8, $ts + 160 * 8, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 9, $ts + 160 * 9, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2030)], [qw(198.51.100.3 2032)]); offer('media playback, side B', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); $resp = rtpe_req('play media', 'restart media playback', { 'from-tag' => tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; $ts += 160 * 5; my $old_ts = $ts; (undef, $ts) = rcv($sock_b, -1, rtpm(8 | 0x80, $seq + 5, -1, $ssrc, $pcma_1)); print("ts $ts old $old_ts\n"); SKIP: { skip 'random timestamp too close to margin', 2 if $old_ts < 500 or $old_ts > 4294966795; cmp_ok($ts, '<', $old_ts + 500, 'ts within < range'); cmp_ok($ts, '>', $old_ts - 500, 'ts within > range'); } rcv($sock_b, -1, rtpm(8, $seq + 6, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 7, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 8, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 9, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.9 2020)], [qw(198.51.100.9 2022)]); offer('media playback, side A, select by label', { ICE => 'remove', replace => ['origin'], label => 'foobar' }, < ['origin'], label => 'blah' }, < 'foobar', blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.9 2030)], [qw(198.51.100.9 2032)]); offer('media playback, side B, select by label', { ICE => 'remove', replace => ['origin'], label => 'quux' }, < ['origin'], label => 'meh' }, < 'meh', blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2050)], [qw(198.51.100.3 2052)]); offer('media playback, SRTP', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; my $srtp_ctx = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'DVM+BTeYX2UI1LaA9bgXrcBEDBxoItA9/39fSoRF', }; (undef, $seq, $ts, $ssrc) = srtp_rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5), $srtp_ctx); # media playback after a delete ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3020)], [qw(198.51.100.3 3022)]); offer('media playback after delete', { ICE => 'remove', replace => ['origin'], 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx', flags => ['strict-source', 'record-call'], 'transport-protocol' => 'RTP/AVP' }, < ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < ft() }); # new to-tag new_tt(); offer('media playback after delete', { ICE => 'remove', replace => ['origin'], 'transport-protocol' => 'transparent', flags => ['strict-source', 'record-call'], 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < tt(), 'to-tag' => tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); #done_testing;NGCP::Rtpengine::AutoTest::terminate('f00');exit; done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-pubsub.pl000077500000000000000000002561021474347554000220510ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use POSIX; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --log-level-internals=7)) or die; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $port_c, $ssrc_a, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $port_d, $sock_e, $port_e, $sock_cx, $port_cx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq, $tag_medias, $media_labels, $ftr, $ttr, $fts, $ttr2); use_json(1); ($sock_a, $sock_b, $sock_c, $sock_d) = new_call([qw(198.51.100.14 6150)], [qw(198.51.100.14 6152)], [qw(198.51.100.14 6154)]); ($port_a) = offer('SIPREC pause/resume', { }, < ft(), flags => ['SIPREC', 'replace-origin'] }, < $ttr }, < ft(), 'to-tag' => $ttr, flags => ['SIPREC'] }, < $ttr }, < ft(), 'to-tag' => $ttr, flags => ['SIPREC'] }, < $ttr }, < ft(), 'to-tag' => $ttr, flags => ['SIPREC', 'inactive'] }, < $ttr }, < ft(), 'to-tag' => $ttr, flags => ['SIPREC'] }, < $ttr }, < ft(), flags => ['egress'] }, < $ttr }, < {transcode => ['PCMA']} }, < ft(), flags => ['egress'] }, < $ttr }, < ft() }, < $ttr }, < ft(), 'to-tag' => $ttr }); snd($sock_b, $port_a, rtp(0, 2002, 4320, 0x3456, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 2002, 4320, 0x3456, "\x00" x 160)); rcv_no($sock_b); rcv_no($sock_c); snd($sock_a, $port_b, rtp(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv_no($sock_c); rcv_no($sock_a); snd($sock_c, $port_c, rtp(0, 5001, 8160, 0x9876, "\x00" x 160)); rcv_no($sock_a); rcv_no($sock_b); rcv_no($sock_c); snd($sock_bx, $port_ax, "\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00"); rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00$/); rcv_no($sock_bx); rcv_no($sock_cx); snd($sock_ax, $port_bx, "\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x34\x56\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x65\x43\x01\x0cqwertyuiopqw\x00\x00"); rcv($sock_bx, $port_ax, qr/^\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x34\x56\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x65\x43\x01\x0cqwertyuiopqw\x00\x00$/); rcv_no($sock_cx); rcv_no($sock_ax); snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); rcv_no($sock_ax); rcv_no($sock_bx); rcv_no($sock_cx); ($sock_a, $sock_ax, $sock_b, $sock_bx, $sock_c, $sock_cx) = new_call( [qw(198.51.100.17 6006)], [qw(198.51.100.17 6007)], [qw(198.51.100.17 6008)], [qw(198.51.100.17 6009)], [qw(198.51.100.17 6010)], [qw(198.51.100.17 6011)], ); ($port_a, $port_ax) = offer('simple sub, RTCP mirror', { }, < ft(), flags => ['mirror RTCP'] }, < $ttr }, < ft(), 'to-tag' => $ttr }); snd($sock_b, $port_a, rtp(0, 2002, 4320, 0x3456, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 2002, 4320, 0x3456, "\x00" x 160)); rcv_no($sock_b); rcv_no($sock_c); snd($sock_a, $port_b, rtp(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4002, 7320, 0x6543, "\x00" x 160)); rcv_no($sock_c); rcv_no($sock_a); snd($sock_c, $port_c, rtp(0, 5001, 8320, 0x9876, "\x00" x 160)); rcv_no($sock_a); rcv_no($sock_b); rcv_no($sock_c); snd($sock_bx, $port_ax, "\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00"); rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x34\x56xxxxyyyy\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x001234qwer\x81\xca\x00\x05\x00\x00\x34\x56\x01\x0cabcdefghijkl\x00\x00$/); rcv_no($sock_bx); rcv_no($sock_cx); snd($sock_ax, $port_bx, "\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x34\x56\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x65\x43\x01\x0cqwertyuiopqw\x00\x00"); rcv($sock_bx, $port_ax, qr/^\x81\xc8\x00\x0c\x00\x00\x65\x43aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x34\x56\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x65\x43\x01\x0cqwertyuiopqw\x00\x00$/); rcv_no($sock_cx); rcv_no($sock_ax); snd($sock_cx, $port_cx, "\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00"); rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c\x00\x00\x98\x76aaaabbbb\x00\x00\x22\xd8\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x65\x43\x06\x00\x00\x01\x00\x00\x07\xf5\x00\x00\x00\x00poiuytre\x81\xca\x00\x05\x00\x00\x98\x76\x01\x0cqwertyuiopqw\x00\x00$/); rcv_no($sock_bx); rcv_no($sock_cx); new_call; ($port_a) = offer('SIPREC sub', { }, < ['all', 'SIPREC', 'replace-origin'] }, < tt(), medias => [ { index => 1, type => 'audio', label => '0', mode => 'sendrecv', }, ], }, { tag => ft(), medias => [ { index => 1, type => 'audio', label => '1', mode => 'sendrecv', }, ], }, ], 'tag-medias match'; is_deeply $media_labels, { '1' => { index => 1, type => 'audio', tag => ft(), mode => 'sendrecv', }, '0' => { index => 1, type => 'audio', tag => tt(), mode => 'sendrecv', }, }, 'media-labels match'; new_call; ($port_a) = offer('SIPREC sub w label', { label => 'caller' }, < 'called' }, < ['all', 'SIPREC'] }, < tt(), label => 'called', medias => [ { index => 1, type => 'audio', label => '0', mode => 'sendrecv', }, ], }, { tag => ft(), label => 'caller', medias => [ { index => 1, type => 'audio', label => '1', mode => 'sendrecv', }, ], }, ], 'tag-medias match'; is_deeply $media_labels, { '1' => { index => 1, type => 'audio', tag => ft(), label => 'caller', mode => 'sendrecv', }, '0' => { index => 1, type => 'audio', tag => tt(), label => 'called', mode => 'sendrecv', }, }, 'media-labels match'; ($sock_a, $sock_b, $sock_c, $sock_d) = new_call([qw(198.51.100.14 6080)], [qw(198.51.100.14 6082)], [qw(198.51.100.14 6084)], [qw(198.51.100.14 6086)]); ($port_a) = offer('"all" sub', { }, < ['all'] }, < $ttr, flags => ['allow transcoding'] }, < [ft(), tt()] }, < $ttr, flags => ['allow transcoding'] }, < ['from-tags-' . ft(), 'from-tags-' . tt()] }, < $ttr, flags => ['allow transcoding'] }, < [tt(), ft()] }, < $ttr, flags => ['allow transcoding'] }, < ft() }, < $ttr }, < tt(), 'to-tag' => ft() }, < tt(), 'to-tag' => ft() }, < ft(), 'to-tag' => $ttr }, < $ttr }, < tt(), 'to-tag' => ft() }, < tt(), 'to-tag' => ft() }, < ft(), 'to-tag' => $ttr }, < $ttr }, < ['all', 'SIPREC'] }, < $ttr }, < tt(), 'to-tag' => ft() }, < tt(), 'to-tag' => ft() }, < ['all', 'SIPREC'], 'to-tag' => $ttr }, < tt(), medias => [ { index => 1, type => 'audio', label => '0', mode => 'recvonly', }, ], }, { tag => ft(), medias => [ { index => 1, type => 'audio', label => '1', mode => 'sendonly', }, ], }, ], 'SIPREC sub pause/resume - tag-medias match'; is_deeply $media_labels, { '1' => { index => 1, type => 'audio', tag => ft(), mode => 'sendonly', }, '0' => { index => 1, type => 'audio', tag => tt(), mode => 'recvonly', }, }, 'SIPREC sub pause/resume - media-labels match'; subscribe_answer('SIPREC sub pause/resume', { 'to-tag' => $ttr }, < tt(), 'to-tag' => ft() }, < tt(), 'to-tag' => ft() }, < ['all', 'SIPREC'], 'to-tag' => $ttr }, < tt(), medias => [ { index => 1, type => 'audio', label => '0', mode => 'sendrecv', }, ], }, { tag => ft(), medias => [ { index => 1, type => 'audio', label => '1', mode => 'sendrecv', }, ], }, ], 'SIPREC sub pause/resume - tag-medias match'; is_deeply $media_labels, { '1' => { index => 1, type => 'audio', tag => ft(), mode => 'sendrecv', }, '0' => { index => 1, type => 'audio', tag => tt(), mode => 'sendrecv', }, }, 'SIPREC sub pause/resume - media-labels match'; subscribe_answer('SIPREC sub pause/resume', { 'to-tag' => $ttr }, < ft(), 'to-tag' => tt() }, < ft(), 'to-tag' => tt() }, < ['all', 'SIPREC'], 'to-tag' => $ttr }, < tt(), medias => [ { index => 1, type => 'audio', label => '0', mode => 'sendonly', }, ], }, { tag => ft(), medias => [ { index => 1, type => 'audio', label => '1', mode => 'recvonly', }, ], }, ], 'tag-medias match'; is_deeply $media_labels, { '1' => { index => 1, type => 'audio', tag => ft(), mode => 'recvonly', }, '0' => { index => 1, type => 'audio', tag => tt(), mode => 'sendonly', }, }, 'media-labels match'; subscribe_answer('SIPREC sub pause/resume', { 'to-tag' => $ttr }, < ft() }, < $ttr, flags => ['allow transcoding'] }, < ft(), codec => { transcode => ['PCMA'] } }, < ft(), 'to-tag' => $ttr, flags => ['allow transcoding'] }, < ft(), codec => { transcode => ['PCMA'] } }, < $ttr }, < ft(), codec => {transcode => ['PCMA', 'G722', 'G723'] } }, < $ttr }, < ft(), codec => {transcode => ['PCMA', 'G722', 'G723'] } }, < $ttr, flags => ['allow transcoding'] }, < ft(), codec => {transcode => ['PCMA', 'G722', 'G723'] } }, < $ttr, flags => ['allow transcoding'] }, < ft() }, < $ttr }, < 'foo' }, < 'bar' }, < 'foo' }, < $ttr }, < 'foo' }, < 'bar' }, < 'bar' }, < $ttr }, < ft(), 'transport-protocol' => 'RTP/SAVP', SDES => ['no-AEAD_AES_256_GCM', 'no-AEAD_AES_128_GCM'] }, < $ttr }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_256_CM_HMAC_SHA1_80}, key => $srtp_key_a, }; snd($sock_b, $port_a, rtp(0, 2001, 4160, 0x3456, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 2001, 4160, $ssrc_a, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 4001, 7160, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4001, 7160, $ssrc_b, "\x00" x 160)); srtp_rcv($sock_c, $port_c, rtpm(0, 4001, 7160, $ssrc_b, "\x00" x 160), $srtp_ctx_a); ($sock_a, $sock_b, $sock_c) = new_call([qw(198.51.100.14 6012)], [qw(198.51.100.14 6014)], [qw(198.51.100.14 6016)]); ($port_a) = offer('SRTP sub', { }, < ft(), 'transport-protocol' => 'RTP/SAVP', SDES => ['no-AEAD_AES_256_GCM', 'no-AEAD_AES_128_GCM'] }, < $ttr }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_a, }; snd($sock_b, $port_a, rtp(0, 2001, 4160, 0x3456, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 2001, 4160, $ssrc_a, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 4001, 7160, 0x6543, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 4001, 7160, $ssrc_b, "\x00" x 160)); srtp_rcv($sock_c, $port_c, rtpm(0, 4001, 7160, $ssrc_b, "\x00" x 160), $srtp_ctx_a); ($sock_a, $sock_b, $sock_c) = new_call([qw(198.51.100.14 6018)], [qw(198.51.100.14 6020)], [qw(198.51.100.14 6022)]); ($port_a) = offer('SRTP call RTP sub', { }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'DVM+BTeYX2UI1LaA9bgXrcBEDBxoItA9/39fSoRF', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'eMlRvW8mWU4WodT9JOvAM+pn6I0/EXOhT9n0KeKk', }; srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); ($ssrc_a) = srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, -1, "\x00" x 160), $srtp_ctx_b); srtp_snd($sock_a, $port_b, rtp(0, 4000, 7000, 0x6543, "\x00" x 160), $srtp_ctx_a); ($ssrc_b) = srtp_rcv($sock_b, $port_a, rtpm(0, 4000, 7000, -1, "\x00" x 160), $srtp_ctx_a); ($ftr, $ttr, undef, undef, undef, $port_c) = subscribe_request('SRTP call RTP sub', { 'from-tag' => ft(), 'transport-protocol' => 'RTP/AVP', }, < $ttr }, < ft(), ICE => 'force' }, < $ttr }, < ft() }, < $ttr }, < ft() }, < $ttr }, < { accept => ['PCMA'] } }, < ft() }, < $ttr }, < ft() }, < $ttr }, < ft() }, < $ttr }, < ft(), codec => { strip => ['PCMA'], transcode => ['PCMU'] } }, < $ttr, flags => ['allow transcoding'] }, < [ $ftr, $fts ] }, < [ '1' ], 'associated_tags-1' => [ '0' ], 'json' => { 'block_dtmf' => '0', 'call_flags' => 65536, 'created' => qr/^\d+$/, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr/^\d+$/, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '198.51.100.1:3000', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-1' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2228236', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65548', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'medias-0' => [ '1' ], 'medias-1' => [ '0' ], 'payload_types-0' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [ '1' ], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [ '0' ], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '65536', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.1:3000', 'component' => '1', 'endpoint' => '198.51.100.1:3000', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '68222976', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.1:3001', 'component' => '2', 'endpoint' => '198.51.100.1:3001', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [ '1/1/0/0' ], 'media-subscriptions-1' => [ '0/1/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'desired_family' => 'IP4', 'deleted' => '0', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'desired_family' => 'IP4', 'deleted' => '0', 'logical_intf' => 'foo', 'ml_flags' => 0, } }; offer('simple call', { }, < [ '1' ], 'associated_tags-1' => [ '0' ], 'json' => { 'block_dtmf' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr/^\d+$/, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '198.51.100.1:3000', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-1' => { 'endpoint' => '198.51.100.4:3000', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2293772', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65548', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'medias-0' => [ '1' ], 'medias-1' => [ '0' ], 'payload_types-0' => [ '8/PCMA/8000///0/20' ], 'payload_types-1' => [ '8/PCMA/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [ '1' ], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [ '0' ], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.4:3000', 'component' => '1', 'endpoint' => '198.51.100.4:3000', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.4:3001', 'component' => '2', 'endpoint' => '198.51.100.4:3001', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.1:3000', 'component' => '1', 'endpoint' => '198.51.100.1:3000', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '1114112', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.1:3001', 'component' => '2', 'endpoint' => '198.51.100.1:3001', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [ '1/1/0/0' ], 'media-subscriptions-1' => [ '0/1/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => tt() } }; answer('simple call', { }, < [ '1' ], 'associated_tags-1' => [ '0' ], 'json' => { 'block_dtmf' => '0', 'call_flags' => 65536, 'created' => qr/^\d+$/, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr/^\d+$/, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '198.51.100.14:6088', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-1' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2228236', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65548', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'medias-0' => [ '1' ], 'medias-1' => [ '0' ], 'payload_types-0' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [ '1' ], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [ '0' ], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '65536', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.14:6088', 'component' => '1', 'endpoint' => '198.51.100.14:6088', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '68222976', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.14:6089', 'component' => '2', 'endpoint' => '198.51.100.14:6089', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [ '1/1/0/0' ], 'media-subscriptions-1' => [ '0/1/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, } }; offer('sub to multiple tags', { }, < [ '1' ], 'associated_tags-1' => [ '0' ], 'json' => { 'block_dtmf' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr/^\d+$/, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '198.51.100.14:6088', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-1' => { 'endpoint' => '198.51.100.14:6090', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2293772', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65548', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'medias-0' => [ '1' ], 'medias-1' => [ '0' ], 'payload_types-0' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [ '1' ], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [ '0' ], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6090', 'component' => '1', 'endpoint' => '198.51.100.14:6090', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6091', 'component' => '2', 'endpoint' => '198.51.100.14:6091', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.14:6088', 'component' => '1', 'endpoint' => '198.51.100.14:6088', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '1114112', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.14:6089', 'component' => '2', 'endpoint' => '198.51.100.14:6089', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [ '1/1/0/0' ], 'media-subscriptions-1' => [ '0/1/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => tt() } }; answer('sub to multiple tags', { }, < [ '1' ], 'associated_tags-1' => [ '0' ], 'associated_tags-2' => [], 'json' => { 'block_dtmf' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr/^\d+$/, 'ml_deleted' => '0', 'num_maps' => '4', 'num_medias' => '4', 'num_sfds' => '8', 'num_streams' => '8', 'num_tags' => '3', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '198.51.100.14:6088', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-1' => { 'endpoint' => '198.51.100.14:6090', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '0' }, 'map-2' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map-3' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'map_sfds-2' => [ 'loc-0', '4', '5' ], 'map_sfds-3' => [ 'loc-0', '6', '7' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'maps-2' => [ '2' ], 'maps-3' => [ '3' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2293772', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65548', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'media-2' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2097156', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '2', 'type' => 'audio' }, 'media-3' => { 'desired_family' => 'IP4', 'format_str' => '0 8', 'index' => '2', 'logical_intf' => 'foo', 'media_flags' => '2097156', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '2', 'type' => 'audio' }, 'medias-0' => [ '1' ], 'medias-1' => [ '0' ], 'medias-2' => [ '2', '3' ], 'payload_types-0' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-2' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'payload_types-3' => [ '0/PCMU/8000///0/20', '8/PCMA/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3', '7' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [ '1', '5' ], 'rtcp_sinks-4' => [], 'rtcp_sinks-5' => [], 'rtcp_sinks-6' => [], 'rtcp_sinks-7' => [], 'rtp_sinks-0' => [ '2', '6' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [ '0', '4' ], 'rtp_sinks-3' => [], 'rtp_sinks-4' => [], 'rtp_sinks-5' => [], 'rtp_sinks-6' => [], 'rtp_sinks-7' => [], 'sfd-0' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'sfd-4' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '4' }, 'sfd-5' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '5' }, 'sfd-6' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '6' }, 'sfd-7' => { 'fd' => qr/^\d+$/, 'local_intf_uid' => '0', 'localport' => qr/^\d+$/, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '7' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'ssrc_table-2' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6090', 'component' => '1', 'endpoint' => '198.51.100.14:6090', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6091', 'component' => '2', 'endpoint' => '198.51.100.14:6091', 'last_packet' => qr/^\d+$/, 'media' => '0', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.14:6088', 'component' => '1', 'endpoint' => '198.51.100.14:6088', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '1114112', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.14:6089', 'component' => '2', 'endpoint' => '198.51.100.14:6089', 'last_packet' => qr/^\d+$/, 'media' => '1', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-4' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '2', 'ps_flags' => '65536', 'rtcp_sibling' => '5', 'sfd' => '4', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-5' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '2', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '5', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-6' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '3', 'ps_flags' => '65536', 'rtcp_sibling' => '7', 'sfd' => '6', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-7' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr/^\d+$/, 'media' => '3', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '7', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'stream_sfds-4' => [ '4' ], 'stream_sfds-5' => [ '5' ], 'stream_sfds-6' => [ '6' ], 'stream_sfds-7' => [ '7' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'streams-2' => [ '4', '5' ], 'streams-3' => [ '6', '7' ], 'media-subscriptions-0' => [ '1/1/0/0' ], 'media-subscriptions-1' => [ '0/1/0/0' ], 'media-subscriptions-2' => [ '1/0/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => tt() }, 'tag-2' => { 'block_dtmf' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => qr// } }; my ($ftr, $ttr, $fts) = subscribe_request('sub to multiple tags', { 'from-tags' => [ft(), tt()] }, <{'media-0'}{media_flags} = '2293772'; $json_exp->{'media-1'}{media_flags} = '65548'; $json_exp->{'media-2'}{format_str} = '8'; $json_exp->{'media-2'}{media_flags} = '2162692'; $json_exp->{'media-3'}{format_str} = '8'; $json_exp->{'media-3'}{media_flags} = '2162692'; $json_exp->{'payload_types-2'}[0] = '8/PCMA/8000///0/20'; $#{$json_exp->{'payload_types-2'}} = 0; $json_exp->{'payload_types-3'}[0] = '8/PCMA/8000///0/20'; $#{$json_exp->{'payload_types-3'}} = 0; $json_exp->{'stream-1'}{ps_flags} = '1179649'; $json_exp->{'stream-3'}{ps_flags} = '1179649'; $json_exp->{'stream-4'}{advertised_endpoint} = '198.51.100.14:6092'; $json_exp->{'stream-4'}{endpoint} = '198.51.100.14:6092'; $json_exp->{'stream-4'}{ps_flags} = '1114112'; $json_exp->{'stream-5'}{advertised_endpoint} = '198.51.100.14:6093'; $json_exp->{'stream-5'}{endpoint} = '198.51.100.14:6093'; $json_exp->{'stream-5'}{ps_flags} = '1179649'; $json_exp->{'stream-6'}{advertised_endpoint} = '198.51.100.14:6094'; $json_exp->{'stream-6'}{endpoint} = '198.51.100.14:6094'; $json_exp->{'stream-6'}{ps_flags} = '1114112'; $json_exp->{'stream-7'}{advertised_endpoint} = '198.51.100.14:6095'; $json_exp->{'stream-7'}{endpoint} = '198.51.100.14:6095'; $json_exp->{'stream-7'}{ps_flags} = '1179649'; subscribe_answer('sub to multiple tags', { 'to-tag' => $ttr, flags => ['allow transcoding'] }, < [], 'json' => { 'block_dtmf' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr//, 'ml_deleted' => '0', 'num_maps' => '1', 'num_medias' => '1', 'num_sfds' => '2', 'num_streams' => '2', 'num_tags' => '1', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'maps-0' => [ '0' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65544', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'medias-0' => [ '0' ], 'payload_types-0' => [ '0/PCMU/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [], 'rtp_sinks-0' => [], 'rtp_sinks-1' => [], 'sfd-0' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'ssrc_table-0' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6042', 'component' => '1', 'endpoint' => '198.51.100.14:6042', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6043', 'component' => '2', 'endpoint' => '198.51.100.14:6043', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'streams-0' => [ '0', '1' ], 'media-subscriptions-0' => [], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() } }; publish('publish/subscribe', { }, < [], 'associated_tags-1' => [], 'json' => { 'block_dtmf' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr//, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map-1' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65544', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2097156', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'medias-0' => [ '0' ], 'medias-1' => [ '1' ], 'payload_types-0' => [ '0/PCMU/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6042', 'component' => '1', 'endpoint' => '198.51.100.14:6042', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6043', 'component' => '2', 'endpoint' => '198.51.100.14:6043', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '65536', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [], 'media-subscriptions-1' => [ '0/0/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => qr//, } }; ($ftr, $ttr, undef) = subscribe_request('publish/subscribe', { 'from-tag' => ft() }, < [], 'associated_tags-1' => [], 'json' => { 'block_dtmf' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr//, 'ml_deleted' => '0', 'num_maps' => '2', 'num_medias' => '2', 'num_sfds' => '4', 'num_streams' => '4', 'num_tags' => '2', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map-1' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65544', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2162692', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'medias-0' => [ '0' ], 'medias-1' => [ '1' ], 'payload_types-0' => [ '0/PCMU/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [], 'rtp_sinks-0' => [ '2' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [], 'rtp_sinks-3' => [], 'sfd-0' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6042', 'component' => '1', 'endpoint' => '198.51.100.14:6042', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6043', 'component' => '2', 'endpoint' => '198.51.100.14:6043', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.14:6044', 'component' => '1', 'endpoint' => '198.51.100.14:6044', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '1114112', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.14:6045', 'component' => '2', 'endpoint' => '198.51.100.14:6045', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'media-subscriptions-0' => [], 'media-subscriptions-1' => [ '0/0/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => qr//, } }; subscribe_answer('publish/subscribe', { 'to-tag' => $ttr }, < [], 'associated_tags-1' => [], 'associated_tags-2' => [], 'json' => { 'block_dtmf' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, 'created_from_addr' => qr//, 'deleted' => '0', 'destroyed' => '0', 'last_signal' => qr//, 'ml_deleted' => '0', 'num_maps' => '3', 'num_medias' => '3', 'num_sfds' => '6', 'num_streams' => '6', 'num_tags' => '3', 'recording_metadata' => '', 'redis_hosted_db' => '2', 'tos' => '0' }, 'map-0' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map-1' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map-2' => { 'endpoint' => '', 'intf_preferred_family' => 'IP4', 'logical_intf' => 'foo', 'num_ports' => '2', 'wildcard' => '1' }, 'map_sfds-0' => [ 'loc-0', '0', '1' ], 'map_sfds-1' => [ 'loc-0', '2', '3' ], 'map_sfds-2' => [ 'loc-0', '4', '5' ], 'maps-0' => [ '0' ], 'maps-1' => [ '1' ], 'maps-2' => [ '2' ], 'media-0' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '65544', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '0', 'type' => 'audio' }, 'media-1' => { 'desired_family' => 'IP4', 'format_str' => '0', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2162692', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '1', 'type' => 'audio' }, 'media-2' => { 'desired_family' => 'IP4', 'format_str' => '0 8 9', 'index' => '1', 'logical_intf' => 'foo', 'media_flags' => '2097156', 'protocol' => 'RTP/AVP', 'ptime' => '0', 'tag' => '2', 'type' => 'audio' }, 'medias-0' => [ '0' ], 'medias-1' => [ '1' ], 'medias-2' => [ '2' ], 'payload_types-0' => [ '0/PCMU/8000///0/20' ], 'payload_types-1' => [ '0/PCMU/8000///0/20' ], 'payload_types-2' => [ '0/PCMU/8000///0/20' ], 'rtcp_sinks-0' => [], 'rtcp_sinks-1' => [ '3', '5' ], 'rtcp_sinks-2' => [], 'rtcp_sinks-3' => [], 'rtcp_sinks-4' => [], 'rtcp_sinks-5' => [], 'rtp_sinks-0' => [ '2', '4' ], 'rtp_sinks-1' => [], 'rtp_sinks-2' => [], 'rtp_sinks-3' => [], 'rtp_sinks-4' => [], 'rtp_sinks-5' => [], 'sfd-0' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '0' }, 'sfd-1' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '1' }, 'sfd-2' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '2' }, 'sfd-3' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '3' }, 'sfd-4' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '4' }, 'sfd-5' => { 'fd' => qr//, 'local_intf_uid' => '0', 'localport' => qr//, 'logical_intf' => 'foo', 'pref_family' => 'IP4', 'stream' => '5' }, 'ssrc_table-0' => [], 'ssrc_table-1' => [], 'ssrc_table-2' => [], 'stream-0' => { 'advertised_endpoint' => '198.51.100.14:6042', 'component' => '1', 'endpoint' => '198.51.100.14:6042', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '1114112', 'rtcp_sibling' => '1', 'sfd' => '0', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-1' => { 'advertised_endpoint' => '198.51.100.14:6043', 'component' => '2', 'endpoint' => '198.51.100.14:6043', 'last_packet' => qr//, 'media' => '0', 'ps_flags' => '68288513', 'rtcp_sibling' => '4294967295', 'sfd' => '1', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-2' => { 'advertised_endpoint' => '198.51.100.14:6044', 'component' => '1', 'endpoint' => '198.51.100.14:6044', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '1114112', 'rtcp_sibling' => '3', 'sfd' => '2', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-3' => { 'advertised_endpoint' => '198.51.100.14:6045', 'component' => '2', 'endpoint' => '198.51.100.14:6045', 'last_packet' => qr//, 'media' => '1', 'ps_flags' => '1179649', 'rtcp_sibling' => '4294967295', 'sfd' => '3', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-4' => { 'advertised_endpoint' => '', 'component' => '1', 'endpoint' => '', 'last_packet' => qr//, 'media' => '2', 'ps_flags' => '65536', 'rtcp_sibling' => '5', 'sfd' => '4', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream-5' => { 'advertised_endpoint' => '', 'component' => '2', 'endpoint' => '', 'last_packet' => qr//, 'media' => '2', 'ps_flags' => '131072', 'rtcp_sibling' => '4294967295', 'sfd' => '5', 'stats-bytes' => '0', 'stats-errors' => '0', 'stats-packets' => '0' }, 'stream_sfds-0' => [ '0' ], 'stream_sfds-1' => [ '1' ], 'stream_sfds-2' => [ '2' ], 'stream_sfds-3' => [ '3' ], 'stream_sfds-4' => [ '4' ], 'stream_sfds-5' => [ '5' ], 'streams-0' => [ '0', '1' ], 'streams-1' => [ '2', '3' ], 'streams-2' => [ '4', '5' ], 'media-subscriptions-0' => [], 'media-subscriptions-1' => [ '0/0/0/0' ], 'media-subscriptions-2' => [ '0/0/0/0' ], 'tag-0' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => ft() }, 'tag-1' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => qr//, }, 'tag-2' => { 'block_dtmf' => '0', 'created' => qr//, 'deleted' => '0', 'desired_family' => 'IP4', 'logical_intf' => 'foo', 'ml_flags' => 0, 'tag' => qr//, } }; ($ftr, $ttr, undef) = subscribe_request('publish/subscribe', { 'from-tag' => ft() }, <{'media-2'}{format_str} = '0'; $json_exp->{'media-2'}{media_flags} = '2162692'; $json_exp->{'stream-1'}{ps_flags} = '1179649'; $json_exp->{'stream-4'}{advertised_endpoint} = '198.51.100.14:6046'; $json_exp->{'stream-4'}{endpoint} = '198.51.100.14:6046'; $json_exp->{'stream-4'}{ps_flags} = '1114112'; $json_exp->{'stream-5'}{advertised_endpoint} = '198.51.100.14:6047'; $json_exp->{'stream-5'}{endpoint} = '198.51.100.14:6047'; $json_exp->{'stream-5'}{ps_flags} = '1179649'; subscribe_answer('publish/subscribe', { 'to-tag' => $ttr }, < 'replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'ICE=remove replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'replace-zero-address strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'replace-zero-address strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'codec-accept=PCMU replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'replace-origin strict-source label=callee OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'rtcp-mux-demux replace-origin strict-source label=caller OSRTP-accept address-family=IP4 transport-protocol=RTP/AVP' }, < 'SDES-only-AES_CM_128_HMAC_SHA1_80 ICE=remove DTLS=off replace-origin strict-source label=caller address-family=IP4 transport-protocol=RTP/SAVP' }, < 'ICE=remove replace-origin strict-source label=callee address-family=IP4 transport-protocol=RTP/SAVP' }, < 'T.38-decode ICE=remove DTLS=off replace-origin strict-source label=caller address-family=IP4 transport-protocol=RTP/AVP' }, < 'remove', replace => ['origin'], flags => ['generate RTCP'] }, < 'remove', replace => ['origin'] }, < ft() }); ($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( [qw(198.51.100.1 2014)], [qw(198.51.100.1 2015)], [qw(198.51.100.3 2016)], [qw(198.51.100.3 2017)], ); ($port_a, $port_ax) = offer('packet loss control', { ICE => 'remove', replace => ['origin'], flags => ['generate RTCP'] }, < 'remove', replace => ['origin'] }, < ft() }); ($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( [qw(198.51.100.1 2022)], [qw(198.51.100.1 2023)], [qw(198.51.100.3 2024)], [qw(198.51.100.3 2025)], ); ($port_a, $port_ax) = offer('SRTCP', { ICE => 'remove', replace => ['origin'], flags => ['generate RTCP'], DTLS => 'off' }, < 'remove', replace => ['origin'] }, < ft() }); done_testing(); #NGCP::Rtpengine::AutoTest::terminate('foo'); rtpengine-mr12.5.1.22/t/auto-daemon-tests-t38.pl000077500000000000000000000367601474347554000211750ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use IPC::Open3; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --jitter-buffer=10)) or die; my ($sock_a, $sock_b, $port_a, $port_b, $ssrc, $resp, $srtp_ctx_a, $srtp_ctx_b, @ret1, @ret2); sub fec { my ($seq_out, $num_ec, $span, $packets) = @_; my $ec_ents = 0; my $ec_list = ''; for my $ec_pack (0 .. ($num_ec-1)) { my $ec_seq = $seq_out - $num_ec * $span + $ec_pack; last if $ec_seq < 0 || !exists($packets->[$ec_seq]); my $xor = ''; for my $fec_iter ((0 .. ($span-1))) { my $fec_seq = $ec_seq + $fec_iter * $num_ec; my $ecpkt = $packets->[$fec_seq]; ok (defined $ecpkt, "FEC packet $fec_seq exists"); ok (length($ecpkt) < 0x80, 'FEC packet short enough'); $xor ^= $ecpkt; } $ec_list .= pack('Ca*', length($xor), $xor); $ec_ents++; } return ($ec_ents, $ec_list); } sub t38_gw_test { my ($testname, $pcm_cmd, $t38_cmd, %opts) = @_; my ($pcm_pid, $pcm_src, $pcm_sink); ok($pcm_pid = open3($pcm_sink, $pcm_src, '>&STDERR', $pcm_cmd), "$testname - spandsp_send_fax_pcm"); unlink('out.tif'); ok (! -e 'out.tif', 'output file does not exists'); my ($t38_pid, $t38_src, $t38_sink); ok($t38_pid = open3($t38_sink, $t38_src, '>&STDERR', $t38_cmd), "$testname - spandsp_recv_fax_t38"); my ($buf, $rin); my $seq = -1; my $t38_pkt = ''; my $udptl_seq = 0; my @udptl_ec_in; my @udptl_ec_out; my $done = 0; my $sqo = 1000; my $tso = 3000; my $ts = -1; my $rev = $opts{reverse} // 0; my $pcm_sock = $rev ? $sock_a : $sock_b; my $pcm_port = $rev ? $port_b : $port_a; my $t38_sock = $rev ? $sock_b : $sock_a; my $t38_port = $rev ? $port_a : $port_b; my $num_ec = $opts{num_ec} // 3; my $span = $opts{span} // 1; my $fec = $span > 1; # speed is controlled by the PCM generator while (!$done && sysread($pcm_src, $buf = '', 160) == 160) { # send generated PCM to rtpengine snd($pcm_sock, $pcm_port, rtp(8, $sqo += 1, $tso += 160, 0x1234, $buf)); # it will also have generated a block of PCM if ($seq == -1) { ($seq, $ts, $ssrc, $buf) = rcv($pcm_sock, $pcm_port, rtpmre(8 | 0x80, -1, -1, -1, '(' . ("." x 160) . ')')); } else { ($buf) = rcv($pcm_sock, $pcm_port, rtpmre(8, $seq += 1, $ts += 160, $ssrc, '(' . ("." x 160) . ')')); } # write it back to our PCM endpoint is length($buf), 160, 'buf length ok'; ok (syswrite($pcm_sink, $buf), 'PCM writeback'); # read from our local T.38 producer? $rin = ''; vec($rin, fileno($t38_src), 1) = 1; while (select(my $rout = $rin, undef, undef, 0) == 1) { my $ret = sysread($t38_src, $buf = '', 1); ok (defined($ret), 'T.38 read ok'); if ($ret == 0) { # EOF $done = 1; ok (waitpid($t38_pid, 0), 'T.38 spandsp finished'); undef($t38_pid); last; } $t38_pkt .= $buf; # complete packet? my ($seq_out, $len, $pkt) = unpack('SSa*', $t38_pkt); next unless defined($pkt); # nope next if length($pkt) < $len; # nope # extract... substr($t38_pkt, 0, $len + 4) = ''; substr($pkt, $len) = ''; ok ($len > 0 && $len < 0x80, "local packet $seq_out short enough"); # save for EC $udptl_ec_out[$seq_out] = $pkt; # redundancy: my $ec_method = 0x00; my $ec_span = ''; my $ec_ents = 0; my $ec_list = ''; if (!$fec) { for my $ec_seq (reverse(($seq_out - $num_ec) .. ($seq_out - 1))) { last if $ec_seq < 0 || !exists($udptl_ec_out[$ec_seq]); my $ecpkt = $udptl_ec_out[$ec_seq]; ok (length($ecpkt) < 0x80, 'EC packet short enough'); $ec_list .= pack('Ca*', length($ecpkt), $ecpkt); $ec_ents++; } } else { $ec_method = 0x80; $ec_span = pack('CC', 1, $span); ($ec_ents, $ec_list) = fec($seq_out, $num_ec, $span, \@udptl_ec_out); } # pack into UDPTL with redundancy my $udptl = pack('nCa*Ca*Ca*', $seq_out, length($pkt), $pkt, $ec_method, $ec_span, $ec_ents, $ec_list); # send snd($t38_sock, $t38_port, $udptl); } # read from our UDPTL source? $rin = ''; vec($rin, fileno($t38_sock), 1) = 1; while (select(my $rout = $rin, undef, undef, 0) == 1) { my ($enc_seq, $len, $pkt) = rcv($t38_sock, $t38_port, qr/^(..)(.)(.*)$/s); # allow for duplicates, as they're generated in some cases ok ($enc_seq == $udptl_seq || $enc_seq == $udptl_seq + 1, "UDPTL seq $enc_seq"); $udptl_seq = $enc_seq; $len = ord($len); ok ($len > 0 && $len < 0x80, 'remote packet short enough'); # extract... my $ifp = substr($pkt, 0, $len, ''); ok (length($ifp) == $len, 'length matches'); $udptl_ec_in[$udptl_seq] = $ifp; my $red = substr($pkt, 0, 1, ''); ok ($red eq ($fec ? "\x80" : "\x00"), 'redundacy method'); if (!$fec) { my $nec = substr($pkt, 0, 1, ''); ok ($nec eq chr($udptl_seq > 3 ? 3 : $udptl_seq), "num EC packets " . ord($nec)); $nec = ord($nec); # check EC packets for my $ec_seq (reverse(($udptl_seq - $nec) .. ($udptl_seq - 1))) { my $len = substr($pkt, 0, 1, ''); $len = ord($len); ok ($len > 0 && $len < 0x80, 'EC packet short enough'); my $ec = substr($pkt, 0, $len, ''); if ($ec_seq == 0 && !exists($udptl_ec_in[$ec_seq])) { # this happens on T.38=force before the answer # was seen. seq 0 is generated but not sent as # we don't have an endpoint yet. # XXX can this be fixed? queue packet? ; } else { ok ($ec eq $udptl_ec_in[$ec_seq], 'EC packet matches'); } } } else { ok (substr($pkt, 0, 1, '') eq "\x01", 'FEC span header'); my $nspan = substr($pkt, 0, 1, ''); $nspan = ord($nspan); ok ($nspan >= 1, 'FEC span min'); my $expspan = $span; my $expent = $num_ec; while ($udptl_seq < $expspan * $expent) { if ($expspan > 1) { $expspan--; next; } $expent--; } ok ($expspan == $nspan, "FEC span $expspan == $nspan"); my $nec = ord(substr($pkt, 0, 1, '')); ok ($expent == $nec, "FEC num entries $expent == $nec"); # extract all entries and compare with self-generated list my ($fec_entries, $fec_blob) = fec($udptl_seq, $nec, $nspan, \@udptl_ec_in); my $recv_blob = ''; for (1 .. $nec) { my $len = substr($pkt, 0, 1, ''); $len = ord($len); ok ($len > 0 && $len < 0x80, 'FEC packet short enough'); my $ec = substr($pkt, 0, $len, ''); $recv_blob .= pack('Ca*', $len, $ec); } ok ($fec_entries == $nec, "num actual FEC entries $fec_entries == $nec"); ok ($recv_blob eq $fec_blob, 'FEC blob matches'); } # everything passed, write to T.38 end ok (syswrite($t38_sink, pack('SSa*', $udptl_seq, length($ifp), $ifp)), 'T.38 writeback'); } } # delete to stop PCM player rtpe_req('delete', "$testname delete", { 'from-tag' => ft() }); undef($t38_src); undef($t38_sink); undef($pcm_src); undef($pcm_sink); if ($t38_pid) { ok (waitpid($t38_pid, 0), 'T.38 spandsp finished'); undef($t38_pid); } if ($pcm_pid) { ok (waitpid($pcm_pid, 0), 'PCM spandsp finished'); undef($pcm_pid); } ok (-f 'out.tif', 'output file exists'); ok (-s 'out.tif' > 10000, 'output file large enough'); unlink('out.tif'); } ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4020)], [qw(198.51.100.3 4022)]); ($port_a) = offer('T.38 after re-invite', { ICE => 'remove', }, < 'remove' }, < [ 'force' ], ICE => 'remove', }, < 'remove' }, < 1); done_testing(); exit; ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4016)], [qw(198.51.100.3 4018)]); ($port_a) = offer('plain T.38, reverse invite', { 'T.38' => [ 'force' ], ICE => 'remove', }, < 'remove' }, < 1); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4000)], [qw(198.51.100.3 4002)]); ($port_a) = offer('plain T.38, forward invite', { 'T.38' => [ 'decode' ], ICE => 'remove', 'codec' => { 'transcode' => ['PCMA'] } }, < 'remove' }, < [ 'decode' ], ICE => 'remove', 'codec' => { 'transcode' => ['PCMA'] } }, < 'remove' }, < [ 'decode' ], ICE => 'remove', 'codec' => { 'transcode' => ['PCMA'] } }, < 'remove' }, < 3); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 4012)], [qw(198.51.100.3 4014)]); ($port_a) = offer('FEC span 5', { 'T.38' => [ 'decode' ], ICE => 'remove', 'codec' => { 'transcode' => ['PCMA'] } }, < 'remove' }, < 5); # XXX packet loss tests # XXX tests of different SDP options done_testing(); rtpengine-mr12.5.1.22/t/auto-daemon-tests-websocket.py000066400000000000000000003710761474347554000225610ustar00rootroot00000000000000import asyncio import json import os import re import socket import ssl import subprocess import sys import tempfile import traceback import unittest import uuid from websockets import connect eventloop = None async def make_ws(cls, proto): from platform import python_version from websockets import __version__ if sys.version_info >= (3, 10) and float(__version__) <= 9.1: python_v = python_version() msg = "python3-websocket {} unsupported in {}".format(__version__, python_v) raise unittest.SkipTest(msg) for _ in range(1, 300): try: conn = await connect("ws://127.0.0.1:9191/", subprotocols=[proto]) return conn except FileNotFoundError: await asyncio.sleep(0.1) async def get_ws(cls, proto, num=1): cls._ws = [] for _ in range(num): conn = await make_ws(cls, proto) cls._ws.append(conn) async def get_more_ws(cls, proto, num=1): for _ in range(num): conn = await make_ws(cls, proto) cls._ws.append(conn) async def close_ws(cls): for conn in cls._ws: await conn.close() cls._ws.clear() async def testIO(self, msg, conn_num=0): await self._ws[conn_num].send(msg) self._res = await asyncio.wait_for(self._ws[conn_num].recv(), timeout=10) async def testIOJson(self, msg, conn_num=0): await self._ws[conn_num].send(json.dumps(msg)) self._res = await asyncio.wait_for(self._ws[conn_num].recv(), timeout=10) self._res = json.loads(self._res) async def testIJson(self, conn_num=0): self._res = await asyncio.wait_for(self._ws[conn_num].recv(), timeout=10) self._res = json.loads(self._res) async def testIJanus(self, conn_num=0): self._res = await asyncio.wait_for(self._ws[conn_num].recv(), timeout=10) self._res = json.loads(self._res) self.assertEqual(self._res["transaction"], self._trans) del self._res["transaction"] async def testIOJanus(self, msg, conn_num=0): trans = str(uuid.uuid4()) msg["transaction"] = trans self._trans = trans await self._ws[conn_num].send(json.dumps(msg)) await testIJanus(self, conn_num) async def testOJanus(self, msg, conn_num=0): trans = str(uuid.uuid4()) msg["transaction"] = trans self._trans = trans await self._ws[conn_num].send(json.dumps(msg)) class TestWSEcho(unittest.TestCase): @classmethod def setUpClass(cls): eventloop.run_until_complete(get_ws(cls, "echo.rtpengine.com")) @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def testEcho(self): eventloop.run_until_complete(testIO(self, b"foobar")) self.assertEqual(self._res, b"foobar") def testEchoText(self): eventloop.run_until_complete(testIO(self, "foobar")) self.assertEqual(self._res, b"foobar") class TestWSCli(unittest.TestCase): @classmethod def setUpClass(cls): eventloop.run_until_complete(get_ws(cls, "cli.rtpengine.com")) @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def testListNumsessions(self): # race condition here if this runs at the same as the janus test (creates call) eventloop.run_until_complete(testIO(self, "list numsessions")) self.assertEqual( self._res, b"Current sessions own: 0\n" + b"Current sessions foreign: 0\n" + b"Current sessions total: 0\n" + b"Current transcoded media: 0\n" + b"Current sessions ipv4 only media: 0\n" + b"Current sessions ipv6 only media: 0\n" + b"Current sessions ip mixed media: 0\n", ) class TestNGPlain(unittest.TestCase): @classmethod def setUpClass(cls): eventloop.run_until_complete(get_ws(cls, "ng-plain.rtpengine.com")) @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def testPing(self): eventloop.run_until_complete(testIO(self, "d7:command4:pinge")) self.assertEqual( self._res, b"d6:result4:ponge", ) class TestNGPlainJSON(unittest.TestCase): @classmethod def setUpClass(cls): eventloop.run_until_complete(get_ws(cls, "ng-plain.rtpengine.com")) @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def testPing(self): eventloop.run_until_complete(testIOJson(self, {"command": "ping"})) self.assertEqual( self._res, {"result": "pong"}, ) class TestWSJanus(unittest.TestCase): @classmethod def setUpClass(cls): eventloop.run_until_complete(get_ws(cls, "janus-protocol")) @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def testPing(self): eventloop.run_until_complete( testIOJson(self, {"janus": "ping", "transaction": "test123"}) ) self.assertEqual(self._res, {"janus": "pong", "transaction": "test123"}) def testPingNoTS(self): eventloop.run_until_complete(testIOJson(self, {"janus": "ping"})) self.assertEqual( self._res, { "janus": "error", "error": { "code": 456, "reason": "JSON object does not contain 'transaction' key", }, }, ) def testInfo(self): eventloop.run_until_complete( testIOJson(self, {"janus": "info", "transaction": "foobar"}) ) # ignore version string self.assertTrue("version_string" in self._res) del self._res["version_string"] self.assertEqual( self._res, { "janus": "server_info", "name": "rtpengine Janus interface", "plugins": { "janus.plugin.videoroom": {"name": "rtpengine Janus videoroom"} }, "transaction": "foobar", }, ) class TestVideoroom(unittest.TestCase): @classmethod def setUpClass(cls): cls.maxDiff = None cls._ws = [] @classmethod def tearDownClass(cls): eventloop.run_until_complete(close_ws(cls)) def startSession(self, conn_num=0): # make sure we have a matching connection if conn_num >= len(self._ws): eventloop.run_until_complete( get_more_ws(self, "janus-protocol", conn_num - len(self._ws) + 1) ) token = str(uuid.uuid4()) eventloop.run_until_complete( testIOJanus( self, { "janus": "add_token", "token": token, "admin_secret": "dfgdfgdvgLyATjHPvckg", }, conn_num, ) ) self.assertEqual( self._res, {"janus": "success", "data": {"plugins": ["janus.plugin.videoroom"]}}, ) # create session eventloop.run_until_complete( testIOJanus( self, { "janus": "create", "token": token, "admin_secret": "dfgdfgdvgLyATjHPvckg", }, conn_num, ) ) session = self._res["data"]["id"] self.assertIsInstance(session, int) self.assertEqual(self._res, {"janus": "success", "data": {"id": session}}) return (token, session) def startVideoroom(self): # start fresh self.closeConns() (token, session) = self.startSession() handle = self.createHandle(token, session) # create room eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "create", "publishers": 16}, "handle_id": handle, "session_id": session, "token": token, }, ) ) room = self._res["plugindata"]["data"]["room"] self.assertIsInstance(room, int) self.assertNotEqual(room, handle) self.assertNotEqual(room, session) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "created", "room": room, "permanent": False, }, }, }, ) return (token, session, handle, room) def destroyVideoroom(self, token, session, handle, room): eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "destroy", "room": room}, "handle_id": handle, "session_id": session, "token": token, }, ) ) self.assertNotEqual(room, handle) self.assertNotEqual(room, session) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "destroyed", "room": room, "permanent": False, }, }, }, ) def destroySession(self, token, session): eventloop.run_until_complete( testIOJanus( self, { "janus": "destroy", "session_id": session, "token": token, }, ) ) self.assertEqual( self._res, { "janus": "success", "session_id": session, }, ) def closeConns(self): eventloop.run_until_complete(close_ws(self)) def createHandle(self, token, session, conn_num=0): eventloop.run_until_complete( testIOJanus( self, { "janus": "attach", "plugin": "janus.plugin.videoroom", "session_id": session, "token": token, "opaque_id": None, }, conn_num, ) ) handle = self._res["data"]["id"] self.assertIsInstance(handle, int) self.assertNotEqual(handle, session) self.assertEqual( self._res, {"janus": "success", "session_id": session, "data": {"id": handle}}, ) return handle def createPublisher( self, token, session, room, handle, pubs=[], conn_num=0, feed_id=0 ): body = {"request": "join", "ptype": "publisher", "room": room} if feed_id: body["id"] = feed_id eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": body, "handle_id": handle, "session_id": session, "token": token, }, conn_num, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the joined event eventloop.run_until_complete(testIJanus(self, conn_num)) feed = self._res["plugindata"]["data"]["id"] self.assertIsInstance(feed, int) self.assertNotEqual(feed, session) self.assertNotEqual(feed, room) self.assertNotEqual(feed, handle) if feed_id: self.assertEqual(feed_id, feed) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "joined", "room": room, "id": feed, "publishers": pubs, }, }, }, ) return feed def testKeepalive(self): (token, session) = self.startSession() eventloop.run_until_complete( testIOJanus( self, {"janus": "keepalive", "token": token, "session_id": session} ) ) self.assertEqual(self._res, {"janus": "ack", "session_id": session}) def testVideoroomWebRTC(self): (token, session, control_handle, room) = self.startVideoroom() # timeout test eventloop.run_until_complete(asyncio.sleep(3)) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "exists", "room": room, }, "handle_id": control_handle, "session_id": session, "token": token, }, ) ) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": control_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "success", "room": room, "exists": True, }, }, }, ) pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) # publish as plain RTP eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.3\r\n" "c=IN IP4 203.0.113.2\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 8000 RTP/AVP 8 0\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ RTP/AVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": None, "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) sub_handle = self.createHandle(token, session) self.assertNotEqual(sub_handle, pub_handle) self.assertNotEqual(sub_handle, control_handle) # subscriber expects full WebRTC attributes eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "room": room, "feed": feed, }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual(feed, self._res["plugindata"]["data"]["id"]) self.assertNotEqual(feed, control_handle) self.assertNotEqual(feed, session) self.assertNotEqual(feed, room) self.assertNotEqual(feed, pub_handle) self.assertNotEqual(feed, sub_handle) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "id": feed, }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) # subscriber #1 answer eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "start", "room": room, "feed": feed}, "jsep": { "type": "answer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 0.0.0.0\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 9 RTP/AVP 8\r\n" "a=mid:audio\r\n" "a=ice-ufrag:abcd\r\n" "a=ice-pwd:WD1pLsdgsdfsdWuEBb0vjyZr\r\n" "a=ice-options:trickle\r\n" "a=rtcp-mux\r\n" "a=recvonly\r\n" ), }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "started": "ok", "room": room, }, }, }, ) self.destroyVideoroom(token, session, control_handle, room) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "exists", "room": room, }, "handle_id": control_handle, "session_id": session, "token": token, }, ) ) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": control_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "success", "room": room, "exists": False, }, }, }, ) self.destroySession(token, session) def testVideoroomWebRTCAlt(self): # alternative usage: publisher == controller, no extra feed_id, no room specified (token, session, control_handle, room) = self.startVideoroom() # timeout test eventloop.run_until_complete(asyncio.sleep(3)) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "exists", "room": room, }, "handle_id": control_handle, "session_id": session, "token": token, }, ) ) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": control_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "success", "room": room, "exists": True, }, }, }, ) pub_handle = control_handle feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) # publish as plain RTP eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.3\r\n" "c=IN IP4 203.0.113.2\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 8000 RTP/AVP 8 0\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ RTP/AVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": None, "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) sub_handle = self.createHandle(token, session) self.assertNotEqual(sub_handle, pub_handle) self.assertNotEqual(sub_handle, control_handle) # subscriber expects full WebRTC attributes eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "room": room, "streams": [ {"feed": feed}, ], }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual(len(self._res["plugindata"]["data"]["streams"]), 1) self.assertEqual(feed, self._res["plugindata"]["data"]["streams"][0]["feed_id"]) self.assertNotEqual(feed, control_handle) self.assertNotEqual(feed, session) self.assertNotEqual(feed, room) self.assertNotEqual(feed, pub_handle) self.assertNotEqual(feed, sub_handle) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "streams": [ { "mindex": 0, "feed_id": feed, }, ], }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) # subscriber #1 answer eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "start", "room": room, "feed": feed}, "jsep": { "type": "answer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 0.0.0.0\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 9 RTP/AVP 8\r\n" "a=mid:audio\r\n" "a=ice-ufrag:abcd\r\n" "a=ice-pwd:WD1pLsdgsdfsdWuEBb0vjyZr\r\n" "a=ice-options:trickle\r\n" "a=rtcp-mux\r\n" "a=recvonly\r\n" ), }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "started": "ok", "room": room, }, }, }, ) self.destroyVideoroom(token, session, control_handle, room) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "exists", "room": room, }, "handle_id": control_handle, "session_id": session, "token": token, }, ) ) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": control_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "success", "room": room, "exists": False, }, }, }, ) self.destroySession(token, session) def testVideoroomSDESDTLS(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.5\r\n" "c=IN IP4 203.0.113.4\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 30000 RTP/SAVP 8 0 96\r\n" "a=rtpmap:96 opus/48000\r\n" "a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:cJOJ7kxQjhFBp2fP6AYjs3vKw7CeBdWZCj0isbJv\r\n" "a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:VAzLKvoE3jG9cdH/AZsl/ZqWNXrUzyM4Gw6chrFr\r\n" "a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:8AbZePWwsKhLGX3GlXA+yHYPQ3cgraer/9DkFJYCOPZZy3o9wC0NIbIFYZfyHw==\r\n" "a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:2GLk3p/csdno4KlGO1TxCVaEt+bifmDlQ5NjnCb5cJYPURiGRSTBEtEq37db8g==\r\n" "a=fingerprint:sha-256 1A:20:98:16:CA:26:8C:33:62:0B:70:94:73:A0:9B:30:00:1A:EA:26:FC:7D:84:8B:F1:F9:52:2D:A7:92:C5:3D\r\n" "a=setup:actpass\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ RTP/SAVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=setup:active\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": None, "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) def testVideoroomSDES(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.5\r\n" "c=IN IP4 203.0.113.4\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 30000 RTP/SAVP 8 0 96\r\n" "a=rtpmap:96 opus/48000\r\n" "a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:cJOJ7kxQjhFBp2fP6AYjs3vKw7CeBdWZCj0isbJv\r\n" "a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:VAzLKvoE3jG9cdH/AZsl/ZqWNXrUzyM4Gw6chrFr\r\n" "a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:8AbZePWwsKhLGX3GlXA+yHYPQ3cgraer/9DkFJYCOPZZy3o9wC0NIbIFYZfyHw==\r\n" "a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:2GLk3p/csdno4KlGO1TxCVaEt+bifmDlQ5NjnCb5cJYPURiGRSTBEtEq37db8g==\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ RTP/SAVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:.{40}\r\n", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": None, "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) def testVideoroomDTLS(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.5\r\n" "c=IN IP4 203.0.113.4\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 30000 UDP/TLS/RTP/SAVPF 8 0 96\r\n" "a=mid:audio\r\n" "a=rtpmap:96 opus/48000\r\n" "a=fingerprint:sha-256 1A:20:98:16:CA:26:8C:33:62:0B:70:94:73:A0:9B:30:00:1A:EA:26:FC:7D:84:8B:F1:F9:52:2D:A7:92:C5:3D\r\n" "a=setup:actpass\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:audio\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=setup:active\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": "audio", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) def testVideoroomWebrtcup(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.4\r\n" "c=IN IP4 203.0.113.4\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 30000 RTP/AVP 8 0 96\r\n" "a=mid:audio\r\n" "a=rtpmap:96 opus/48000\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) match_re = re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio (\\d+) RTP/AVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:audio\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ) self.assertRegex(sdp, match_re) matches = match_re.search(sdp) port = int(matches.group(1)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": "audio", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) pub_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock.settimeout(1) pub_sock.bind(("203.0.113.4", 30000)) pub_sock.connect(("203.0.113.1", port)) # send fake RTP to trigger event m = pub_sock.send( b"\x80\x08\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) # wait for webrtcup event eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, {"janus": "webrtcup", "session_id": session, "sender": pub_handle}, ) # wait for media event eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "media", "session_id": session, "sender": pub_handle, "type": "audio", "mid": "audio", "receiving": True, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) pub_sock.close() def testVideoroomWebRTCVideo(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=- 3959345330719813235 2 IN IP4 127.0.0.1\r\n" "s=-\r\n" "t=0 0\r\n" "a=group:BUNDLE 0 1\r\n" "a=extmap-allow-mixed\r\n" "a=msid-semantic: WMS hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ice-options:trickle\r\n" "m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\n" "c=IN IP4 0.0.0.0\r\n" "a=rtcp:9 IN IP4 0.0.0.0\r\n" "a=ice-ufrag:+JrN\r\n" "a=ice-pwd:TMWORlSHr9fd+0bUNXnlBs5D\r\n" "a=fingerprint:sha-256 FD:56:1A:DB:3E:7B:8E:0B:75:4E:2E:49:1A:91:52:E4:69:9E:66:91:FF:34:A2:50:58:72:C0:8E:C2:87:CA:1F\r\n" "a=setup:actpass\r\n" "a=mid:0\r\n" "a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" "a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n" "a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n" "a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n" "a=sendonly\r\n" "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=rtcp-mux\r\n" "a=rtpmap:111 opus/48000/2\r\n" "a=rtcp-fb:111 transport-cc\r\n" "a=fmtp:111 minptime=10;useinbandfec=1\r\n" "a=rtpmap:103 ISAC/16000\r\n" "a=rtpmap:104 ISAC/32000\r\n" "a=rtpmap:9 G722/8000\r\n" "a=rtpmap:0 PCMU/8000\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=rtpmap:106 CN/32000\r\n" "a=rtpmap:105 CN/16000\r\n" "a=rtpmap:13 CN/8000\r\n" "a=rtpmap:110 telephone-event/48000\r\n" "a=rtpmap:112 telephone-event/32000\r\n" "a=rtpmap:113 telephone-event/16000\r\n" "a=rtpmap:126 telephone-event/8000\r\n" "a=ssrc:677770262 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:677770262 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=ssrc:677770262 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:677770262 label:2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 121 127 120 125 107 108 109 35 36 124 119 123\r\n" "c=IN IP4 0.0.0.0\r\n" "a=rtcp:9 IN IP4 0.0.0.0\r\n" "a=ice-ufrag:+JrN\r\n" "a=ice-pwd:TMWORlSHr9fd+0bUNXnlBs5D\r\n" "a=fingerprint:sha-256 FD:56:1A:DB:3E:7B:8E:0B:75:4E:2E:49:1A:91:52:E4:69:9E:66:91:FF:34:A2:50:58:72:C0:8E:C2:87:CA:1F\r\n" "a=setup:actpass\r\n" "a=mid:1\r\n" "a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:13 urn:3gpp:video-orientation\r\n" "a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" "a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\n" "a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\n" "a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\n" "a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\n" "a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n" "a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n" "a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n" "a=sendonly\r\n" "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=rtcp-mux\r\n" "a=rtcp-rsize\r\n" "a=rtpmap:96 VP8/90000\r\n" "a=rtcp-fb:96 goog-remb\r\n" "a=rtcp-fb:96 transport-cc\r\n" "a=rtcp-fb:96 ccm fir\r\n" "a=rtcp-fb:96 nack\r\n" "a=rtcp-fb:96 nack pli\r\n" "a=rtpmap:97 rtx/90000\r\n" "a=fmtp:97 apt=96\r\n" "a=rtpmap:98 VP9/90000\r\n" "a=rtcp-fb:98 goog-remb\r\n" "a=rtcp-fb:98 transport-cc\r\n" "a=rtcp-fb:98 ccm fir\r\n" "a=rtcp-fb:98 nack\r\n" "a=rtcp-fb:98 nack pli\r\n" "a=fmtp:98 profile-id=0\r\n" "a=rtpmap:99 rtx/90000\r\n" "a=fmtp:99 apt=98\r\n" "a=rtpmap:100 VP9/90000\r\n" "a=rtcp-fb:100 goog-remb\r\n" "a=rtcp-fb:100 transport-cc\r\n" "a=rtcp-fb:100 ccm fir\r\n" "a=rtcp-fb:100 nack\r\n" "a=rtcp-fb:100 nack pli\r\n" "a=fmtp:100 profile-id=2\r\n" "a=rtpmap:101 rtx/90000\r\n" "a=fmtp:101 apt=100\r\n" "a=rtpmap:102 H264/90000\r\n" "a=rtcp-fb:102 goog-remb\r\n" "a=rtcp-fb:102 transport-cc\r\n" "a=rtcp-fb:102 ccm fir\r\n" "a=rtcp-fb:102 nack\r\n" "a=rtcp-fb:102 nack pli\r\n" "a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\n" "a=rtpmap:121 rtx/90000\r\n" "a=fmtp:121 apt=102\r\n" "a=rtpmap:127 H264/90000\r\n" "a=rtcp-fb:127 goog-remb\r\n" "a=rtcp-fb:127 transport-cc\r\n" "a=rtcp-fb:127 ccm fir\r\n" "a=rtcp-fb:127 nack\r\n" "a=rtcp-fb:127 nack pli\r\n" "a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\n" "a=rtpmap:120 rtx/90000\r\n" "a=fmtp:120 apt=127\r\n" "a=rtpmap:125 H264/90000\r\n" "a=rtcp-fb:125 goog-remb\r\n" "a=rtcp-fb:125 transport-cc\r\n" "a=rtcp-fb:125 ccm fir\r\n" "a=rtcp-fb:125 nack\r\n" "a=rtcp-fb:125 nack pli\r\n" "a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n" "a=rtpmap:107 rtx/90000\r\n" "a=fmtp:107 apt=125\r\n" "a=rtpmap:108 H264/90000\r\n" "a=rtcp-fb:108 goog-remb\r\n" "a=rtcp-fb:108 transport-cc\r\n" "a=rtcp-fb:108 ccm fir\r\n" "a=rtcp-fb:108 nack\r\n" "a=rtcp-fb:108 nack pli\r\n" "a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\n" "a=rtpmap:109 rtx/90000\r\n" "a=fmtp:109 apt=108\r\n" "a=rtpmap:35 AV1X/90000\r\n" "a=rtcp-fb:35 goog-remb\r\n" "a=rtcp-fb:35 transport-cc\r\n" "a=rtcp-fb:35 ccm fir\r\n" "a=rtcp-fb:35 nack\r\n" "a=rtcp-fb:35 nack pli\r\n" "a=rtpmap:36 rtx/90000\r\n" "a=fmtp:36 apt=35\r\n" "a=rtpmap:124 red/90000\r\n" "a=rtpmap:119 rtx/90000\r\n" "a=fmtp:119 apt=124\r\n" "a=rtpmap:123 ulpfec/90000\r\n" "a=ssrc-group:FID 3005569364 2001490794\r\n" "a=ssrc:3005569364 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:3005569364 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:3005569364 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:3005569364 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:2001490794 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:2001490794 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:2001490794 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:2001490794 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=- \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 111\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:0\r\n" "a=rtpmap:111 opus/48000/2\r\n" "a=fmtp:111 useinbandfec=1; minptime=10\r\n" "a=rtcp-fb:111 transport-cc\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=rtcp-mux\r\n" "a=setup:active\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n" "m=video \\d+ UDP/TLS/RTP/SAVPF 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:1\r\n" "a=rtpmap:96 VP8/90000\r\n" "a=rtcp-fb:96 goog-remb\r\n" "a=rtcp-fb:96 transport-cc\r\n" "a=rtcp-fb:96 ccm fir\r\n" "a=rtcp-fb:96 nack\r\n" "a=rtcp-fb:96 nack pli\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=rtcp-mux\r\n" "a=setup:active\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "video_codec": "VP8", "streams": [ { "codec": "opus", "mid": "0", "mindex": 0, "type": "audio", }, { "codec": "VP8", "mid": "1", "mindex": 1, "type": "video", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) # subscriber sub_handle = self.createHandle(token, session) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "room": room, "feed": feed, }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) self.assertEqual(self._res, {"janus": "ack", "session_id": session}) eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=- \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=-\r\n" "t=0 0\r\n" "a=extmap-allow-mixed\r\n" "a=msid-semantic: WMS hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 111\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:0\r\n" "a=rtpmap:111 opus/48000/2\r\n" "a=fmtp:111 useinbandfec=1; minptime=10\r\n" "a=rtcp-fb:111 transport-cc\r\n" "a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" "a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n" "a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n" "a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n" "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=ssrc:677770262 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:677770262 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=ssrc:677770262 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:677770262 label:2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n" "m=video \\d+ UDP/TLS/RTP/SAVPF 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:1\r\n" "a=rtpmap:96 VP8/90000\r\n" "a=rtcp-fb:96 goog-remb\r\n" "a=rtcp-fb:96 transport-cc\r\n" "a=rtcp-fb:96 ccm fir\r\n" "a=rtcp-fb:96 nack\r\n" "a=rtcp-fb:96 nack pli\r\n" "a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:13 urn:3gpp:video-orientation\r\n" "a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" "a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\n" "a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\n" "a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\n" "a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\n" "a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n" "a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n" "a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n" "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=rtcp-rsize\r\n" "a=ssrc-group:FID 3005569364 2001490794\r\n" "a=ssrc:3005569364 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:3005569364 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:3005569364 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:3005569364 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:2001490794 cname:NMNDwVd66x2SfiO0\r\n" "a=ssrc:2001490794 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=ssrc:2001490794 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" "a=ssrc:2001490794 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "id": feed, }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) def testVideoroomICE(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle = self.createHandle(token, session) self.assertNotEqual(pub_handle, control_handle) feed = self.createPublisher(token, session, room, pub_handle, feed_id=123) self.assertNotEqual(feed, control_handle) eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 0.0.0.0\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 9 RTP/AVP 8 0 96\r\n" "a=mid:audio\r\n" "a=rtpmap:96 opus/48000\r\n" "a=ice-ufrag:62lL\r\n" "a=ice-pwd:WD1pLdamJOWH2WuEBb0vjyZr\r\n" "a=ice-options:trickle\r\n" "a=rtcp-mux\r\n" "a=sendonly\r\n" ), }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio \\d+ RTP/AVP 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:audio\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "a=rtcp-mux\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": "audio", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) pub_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock.settimeout(1) pub_sock.bind(("203.0.113.2", 30000)) # trickle update eventloop.run_until_complete( testIOJanus( self, { "janus": "trickle", "candidate": { "candidate": "candidate:3279615273 1 udp 2113937151 203.0.113.2 30000 typ host generation 0 ufrag 62lL network-cost 999", "sdpMid": "audio", }, "handle_id": pub_handle, "session_id": session, "token": token, }, ) ) self.assertEqual(self._res, {"janus": "ack", "session_id": session}) m = pub_sock.recv(1000) self.assertRegex( m, re.compile( b"^\x00\x01\x00.\x21\x12\xa4\x42(............)\x80\x22\x00.rtpengine.*?\x00\x06\x00\x0d62lL:(........)\x00\x00\x00\x80\\\x29\x00\x08........\x00\\\x24\x00\x04\x6e\xff\xff\xff\x00\x08\x00\x14....................\x80\\\x28\x00\x04....$", re.DOTALL, ), ) sub_handle = self.createHandle(token, session) self.assertNotEqual(sub_handle, pub_handle) self.assertNotEqual(sub_handle, control_handle) # subscriber #1 joins publisher #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "room": room, "feed": feed, }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual(feed, self._res["plugindata"]["data"]["id"]) self.assertNotEqual(feed, control_handle) self.assertNotEqual(feed, session) self.assertNotEqual(feed, room) self.assertNotEqual(feed, pub_handle) self.assertNotEqual(feed, sub_handle) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) self.assertRegex( sdp, re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio \\d+ UDP/TLS/RTP/SAVPF 8\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:audio\r\n" "a=rtpmap:8 PCMA/8000\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" "a=fingerprint:sha-256 .{95}\r\n" "a=tls-id:[0-9a-f]{32}\r\n" "a=ice-ufrag:.{8}\r\n" "a=ice-pwd:.{26}\r\n" "a=ice-options:trickle\r\n" "a=candidate:.{16} 1 UDP 2130706431 203.0.113.1 \\d+ typ host\r\n" "a=end-of-candidates\r\n$", re.DOTALL, ), ) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "id": feed, }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) # subscriber #1 answer eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "start", "room": room, "feed": feed}, "jsep": { "type": "answer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 0.0.0.0\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 9 RTP/AVP 8\r\n" "a=mid:audio\r\n" "a=ice-ufrag:abcd\r\n" "a=ice-pwd:WD1pLsdgsdfsdWuEBb0vjyZr\r\n" "a=ice-options:trickle\r\n" "a=rtcp-mux\r\n" "a=recvonly\r\n" ), }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "started": "ok", "room": room, }, }, }, ) sub_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sub_sock.settimeout(1) sub_sock.bind(("203.0.113.2", 30002)) # trickle update eventloop.run_until_complete( testIOJanus( self, { "janus": "trickle", "candidate": { "candidate": "candidate:3fgsdfs273 1 udp 2113937151 203.0.113.2 30002 typ host generation 0", "sdpMid": "audio", "usernameFragment": "abcd", }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) self.assertEqual(self._res, {"janus": "ack", "session_id": session}) m = sub_sock.recv(1000) self.assertRegex( m, re.compile( b"^\x00\x01\x00.\x21\x12\xa4\x42(............)\x80\x22\x00.rtpengine.*?\x00\x06\x00\x0dabcd:(........)\x00\x00\x00\x80\\\x2a\x00\x08........\x00\\\x24\x00\x04\x6e\xff\xff\xff\x00\x08\x00\x14....................\x80\\\x28\x00\x04....$", re.DOTALL, ), ) # TCP trickle test eventloop.run_until_complete( testIOJanus( self, { "janus": "trickle", "candidate": { "candidate": "candidate:6 2 TCP 2105393406 2607:fea8:ab00:33::9f4 9 typ host tcptype active", "sdpMid": "audio", "usernameFragment": "abcd", }, "handle_id": sub_handle, "session_id": session, "token": token, }, ) ) self.assertEqual(self._res, {"janus": "ack", "session_id": session}) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) pub_sock.close() sub_sock.close() def testVideoroomPubSub(self): (token, session, control_handle, room) = self.startVideoroom() # XXX add tests for requests for invalid IDs/handles handle_p_1 = self.createHandle(token, session) self.assertNotEqual(handle_p_1, control_handle) # create feed for publisher #1 feed_1 = self.createPublisher(token, session, room, handle_p_1) self.assertNotEqual(feed_1, control_handle) # configure publisher feed #1 w broken SDP eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": "blah", }, "handle_id": handle_p_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "error", "session_id": session, "sender": handle_p_1, "error": {"code": 512, "reason": "Failed to parse SDP"}, "plugindata": {"plugin": "janus.plugin.videoroom", "data": {}}, }, ) # configure publisher feed #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 203.0.113.2\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 6000 RTP/AVP 96 8 0\r\n" "a=rtpmap:96 opus/48000\r\n" "a=sendonly\r\n" ), }, "handle_id": handle_p_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) # XXX check SDP self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_p_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "streams": [ { "codec": "opus", "mid": None, "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) # attach subscriber handle #1 handle_s_1 = self.createHandle(token, session) self.assertNotEqual(handle_s_1, control_handle) # subscriber #1 joins publisher #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "room": room, "feed": feed_1, }, "handle_id": handle_s_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual(feed_1, self._res["plugindata"]["data"]["id"]) self.assertNotEqual(feed_1, control_handle) self.assertNotEqual(feed_1, session) self.assertNotEqual(feed_1, room) self.assertNotEqual(feed_1, handle_p_1) self.assertNotEqual(feed_1, handle_s_1) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) # XXX check SDP self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_s_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "id": feed_1, }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) # subscriber #1 answer eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "start", "room": room, "feed": feed_1}, "jsep": { "type": "answer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 203.0.113.2\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 7000 RTP/AVP 96\r\n" "a=rtpmap:96 opus/48000\r\n" "a=recvonly\r\n" ), }, "handle_id": handle_s_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_s_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "started": "ok", "room": room, }, }, }, ) handle_p_2 = self.createHandle(token, session) self.assertNotEqual(handle_p_2, control_handle) feed_2 = self.createPublisher( token, session, room, handle_p_2, [ { "id": feed_1, "audio_codec": "opus", "streams": [ { "codec": "opus", "mid": None, "mindex": 0, "type": "audio", }, ], }, ], ) # configure publisher feed #2 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_2, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 0.0.0.0\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 9 RTP/AVP 8 0\r\n" "a=mid:audio\r\n" "a=rtpmap:96 opus/48000\r\n" "a=sendonly\r\n" ), }, "handle_id": handle_p_2, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the notification for publisher #1 eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_p_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "publishers": [ { "id": feed_2, "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": "audio", "mindex": 0, "type": "audio", } ], }, ], }, }, }, ) # followed by the "ok" event for publisher #2 eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) # XXX check SDP self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_p_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "PCMA", "streams": [ { "codec": "PCMA", "mid": "audio", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) # detach publisher #1 eventloop.run_until_complete( testOJanus( self, { "janus": "detach", "handle_id": handle_p_1, "session_id": session, "token": token, }, ) ) # unpublished event is received first eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_p_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "unpublished": feed_1, }, }, }, ) # followed by leaving event is received first eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": handle_p_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "leaving": feed_1, }, }, }, ) # and finally the success eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "success", "session_id": session, "sender": handle_p_1, }, ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) def testVideoroomMultiConn(self): (token, session_1, control_handle, room) = self.startVideoroom() # publisher #1 with its own connection and session (token, session_2) = self.startSession(1) self.assertNotEqual(session_1, session_2) pub_handle_1 = self.createHandle(token, session_2, 1) self.assertNotEqual(pub_handle_1, control_handle) # create feed for publisher #1 feed_1 = self.createPublisher(token, session_2, room, pub_handle_1, [], 1) pub_sock_1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock_1.settimeout(0.1) pub_sock_1.bind(("203.0.113.6", 31000)) # configure publisher feed #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": True, "video": False, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.6\r\n" "c=IN IP4 203.0.113.6\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 31000 RTP/AVP 96 8 0\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=sendonly\r\n" "a=mid:a\r\n" ), }, "handle_id": pub_handle_1, "session_id": session_2, "token": token, }, 1, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session_2}) # followed by the event notification eventloop.run_until_complete(testIJanus(self, 1)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) match_re = re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio (\\d+) RTP/AVP 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:a\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ) self.assertRegex(sdp, match_re) matches = match_re.search(sdp) pub_port_1 = int(matches.group(1)) self.assertEqual( self._res, { "janus": "event", "session_id": session_2, "sender": pub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) pub_sock_1.connect(("203.0.113.1", pub_port_1)) # publisher #2 with its own connection and session (token, session_3) = self.startSession(2) self.assertNotEqual(session_1, session_3) self.assertNotEqual(session_2, session_3) pub_handle_2 = self.createHandle(token, session_3, 2) self.assertNotEqual(pub_handle_2, pub_handle_1) self.assertNotEqual(pub_handle_2, control_handle) # create feed for publisher #2 feed_2 = self.createPublisher( token, session_3, room, pub_handle_2, [ { "id": feed_1, "audio_codec": "opus", "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", }, ], }, ], 2, ) pub_sock_2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock_2.settimeout(0.1) pub_sock_2.bind(("203.0.113.6", 32000)) # configure publisher feed #2 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_2, "data": False, "audio": True, "video": False, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.6\r\n" "c=IN IP4 203.0.113.6\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 32000 RTP/AVP 96 8 0\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=sendonly\r\n" "a=mid:a\r\n" ), }, "handle_id": pub_handle_2, "session_id": session_3, "token": token, }, 2, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session_3}) # followed by the event notification eventloop.run_until_complete(testIJanus(self, 2)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) match_re = re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio (\\d+) RTP/AVP 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:a\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ) self.assertRegex(sdp, match_re) matches = match_re.search(sdp) pub_port_2 = int(matches.group(1)) self.assertEqual( self._res, { "janus": "event", "session_id": session_3, "sender": pub_handle_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) pub_sock_2.connect(("203.0.113.1", pub_port_2)) # publisher #1 receives notification eventloop.run_until_complete(testIJson(self, 1)) self.assertEqual( self._res, { "janus": "event", "plugindata": { "data": { "publishers": [ { "audio_codec": "opus", "id": feed_2, "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", } ], } ], "room": room, "videoroom": "event", }, "plugin": "janus.plugin.videoroom", }, "sender": pub_handle_1, "session_id": session_2, }, ) # unpublish eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "unpublish", }, "handle_id": pub_handle_1, "session_id": session_2, "token": token, }, 1, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session_2}) # followed by the event notification eventloop.run_until_complete(testIJanus(self, 1)) self.assertEqual( self._res, { "janus": "event", "session_id": session_2, "sender": pub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "unpublished": "ok", }, }, }, ) # followed by event in the other session eventloop.run_until_complete(testIJson(self, 2)) self.assertEqual( self._res, { "janus": "event", "session_id": session_3, "sender": pub_handle_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "unpublished": feed_1, }, }, }, ) # destroy session #2 self.destroySession(token, session_2) # success is received first self.assertEqual(self._res, {"janus": "success", "session_id": session_2}) # followed by events in the other session eventloop.run_until_complete(testIJson(self, 2)) self.assertEqual( self._res, { "janus": "event", "session_id": session_3, "sender": pub_handle_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "unpublished": feed_1, }, }, }, ) eventloop.run_until_complete(testIJson(self, 2)) self.assertEqual( self._res, { "janus": "event", "session_id": session_3, "sender": pub_handle_2, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "leaving": feed_1, }, }, }, ) pub_sock_1.close() pub_sock_2.close() self.destroyVideoroom(token, session_1, control_handle, room) self.destroySession(token, session_1) self.destroySession(token, session_3) def testVideoroomMute(self): (token, session, control_handle, room) = self.startVideoroom() pub_handle_1 = self.createHandle(token, session) self.assertNotEqual(pub_handle_1, control_handle) # create feed for publisher #1 feed_1 = self.createPublisher(token, session, room, pub_handle_1) self.assertNotEqual(feed_1, control_handle) pub_sock_audio = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock_audio.settimeout(0.1) pub_sock_audio.bind(("203.0.113.2", 31000)) pub_sock_video = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) pub_sock_video.settimeout(0.1) pub_sock_video.bind(("203.0.113.2", 31100)) # configure publisher feed #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": True, "video": True, }, "jsep": { "type": "offer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 203.0.113.2\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 31000 RTP/AVP 96 8 0\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=sendonly\r\n" "a=mid:a\r\n" "m=video 31100 RTP/AVP 97\r\n" "a=rtpmap:97 VP9/90000\r\n" "a=sendonly\r\n" "a=mid:v\r\n" ), }, "handle_id": pub_handle_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) match_re = re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=rtpengine.*?\r\n" "t=0 0\r\n" "m=audio (\\d+) RTP/AVP 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:a\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n" "m=video (\\d+) RTP/AVP 97\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:v\r\n" "a=rtpmap:97 VP9/90000\r\n" "a=recvonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ) self.assertRegex(sdp, match_re) matches = match_re.search(sdp) pub_port_audio = int(matches.group(1)) pub_port_video = int(matches.group(2)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "video_codec": "VP9", "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", }, { "codec": "VP9", "mid": "v", "mindex": 1, "type": "video", }, ], }, }, "jsep": {"type": "answer", "sdp": sdp}, }, ) pub_sock_audio.connect(("203.0.113.1", pub_port_audio)) pub_sock_video.connect(("203.0.113.1", pub_port_video)) # send fake RTP to trigger event m = pub_sock_audio.send( b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) # wait for webrtcup event eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, {"janus": "webrtcup", "session_id": session, "sender": pub_handle_1}, ) # wait for audio media eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "media", "session_id": session, "sender": pub_handle_1, "type": "audio", "mid": "a", "receiving": True, }, ) # repeat for video m = pub_sock_video.send( b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) eventloop.run_until_complete(testIJson(self)) self.assertEqual( self._res, { "janus": "media", "session_id": session, "sender": pub_handle_1, "type": "video", "mid": "v", "receiving": True, }, ) sub_sock_audio = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sub_sock_audio.settimeout(0.1) sub_sock_audio.bind(("203.0.113.3", 31010)) sub_sock_video = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sub_sock_video.settimeout(0.1) sub_sock_video.bind(("203.0.113.3", 31110)) sub_handle_1 = self.createHandle(token, session) self.assertNotEqual(sub_handle_1, pub_handle_1) self.assertNotEqual(sub_handle_1, control_handle) # subscriber #1 joins publisher #1 eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "join", "ptype": "subscriber", "plain": True, "room": room, "feed": feed_1, }, "handle_id": sub_handle_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual(feed_1, self._res["plugindata"]["data"]["id"]) self.assertNotEqual(feed_1, control_handle) self.assertNotEqual(feed_1, session) self.assertNotEqual(feed_1, room) self.assertNotEqual(feed_1, pub_handle_1) self.assertNotEqual(feed_1, sub_handle_1) sdp = self._res["jsep"]["sdp"] self.assertIsInstance(sdp, str) match_re = re.compile( "^v=0\r\n" "o=x \\d+ \\d+ IN IP4 203.0.113.1\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio (\\d+) RTP/AVP 96\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:a\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=sendonly\r\n" "a=rtcp:\\d+\r\n" "m=video (\\d+) RTP/AVP 97\r\n" "c=IN IP4 203.0.113.1\r\n" "a=mid:v\r\n" "a=rtpmap:97 VP9/90000\r\n" "a=sendonly\r\n" "a=rtcp:\\d+\r\n$", re.DOTALL, ) self.assertRegex(sdp, match_re) matches = match_re.search(sdp) sub_port_audio = int(matches.group(1)) sub_port_video = int(matches.group(2)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "attached", "room": room, "id": feed_1, }, }, "jsep": {"type": "offer", "sdp": sdp}, }, ) # subscriber #1 answer eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": {"request": "start", "room": room, "feed": feed_1}, "jsep": { "type": "answer", "sdp": ( "v=0\r\n" "o=x 123 123 IN IP4 203.0.113.2\r\n" "c=IN IP4 203.0.113.3\r\n" "s=foobar\r\n" "t=0 0\r\n" "m=audio 31010 RTP/AVP 96\r\n" "a=rtpmap:96 opus/48000/2\r\n" "a=mid:a\r\n" "a=recvonly\r\n" "m=video 31110 RTP/AVP 97\r\n" "a=rtpmap:97 VP9/90000\r\n" "a=mid:v\r\n" "a=recvonly\r\n" ), }, "handle_id": sub_handle_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the attached event eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": sub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "started": "ok", "room": room, }, }, }, ) sub_sock_audio.connect(("203.0.113.1", sub_port_audio)) sub_sock_video.connect(("203.0.113.1", sub_port_video)) # check forwarding m = pub_sock_audio.send( b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = pub_sock_video.send( b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = sub_sock_audio.recv(1000) self.assertEqual( m, b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", ) m = sub_sock_video.recv(1000) self.assertEqual( m, b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", ) # mute audio eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": False, "video": True, }, "handle_id": pub_handle_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "video_codec": "VP9", "streams": [ { "disabled": True, "mid": "a", "mindex": 0, "type": "audio", }, { "codec": "VP9", "mid": "v", "mindex": 1, "type": "video", }, ], }, }, }, ) # check forwarding m = pub_sock_audio.send( b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = pub_sock_video.send( b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = None try: m = sub_sock_audio.recv(1000) except (TimeoutError, socket.timeout): pass self.assertIsNone(m) m = sub_sock_video.recv(1000) self.assertEqual( m, b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", ) # unmute audio eventloop.run_until_complete( testIOJanus( self, { "janus": "message", "body": { "request": "configure", "room": room, "feed": feed_1, "data": False, "audio": True, "video": True, }, "handle_id": pub_handle_1, "session_id": session, "token": token, }, ) ) # ack is received first self.assertEqual(self._res, {"janus": "ack", "session_id": session}) # followed by the event notification eventloop.run_until_complete(testIJanus(self)) self.assertEqual( self._res, { "janus": "event", "session_id": session, "sender": pub_handle_1, "plugindata": { "plugin": "janus.plugin.videoroom", "data": { "videoroom": "event", "room": room, "configured": "ok", "audio_codec": "opus", "video_codec": "VP9", "streams": [ { "codec": "opus", "mid": "a", "mindex": 0, "type": "audio", }, { "codec": "VP9", "mid": "v", "mindex": 1, "type": "video", }, ], }, }, }, ) # check forwarding m = pub_sock_audio.send( b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = pub_sock_video.send( b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ) m = sub_sock_audio.recv(1000) self.assertEqual( m, b"\x80\x60\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", ) m = sub_sock_video.recv(1000) self.assertEqual( m, b"\x80\x61\x12\x34\x43\x32\x12\x45\x65\x45\x34\x23\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", ) self.destroyVideoroom(token, session, control_handle, room) self.destroySession(token, session) pub_sock_audio.close() pub_sock_video.close() sub_sock_audio.close() sub_sock_video.close() if __name__ == "__main__": eventloop = asyncio.new_event_loop() so = None se = None proc = None if not os.environ.get("RTPE_TEST_NO_LAUNCH"): so = tempfile.NamedTemporaryFile(mode="wb", delete=False) se = tempfile.NamedTemporaryFile(mode="wb", delete=False) os.environ["GLIB_SLICE"] = "debug-blocks" proc = subprocess.Popen( [ os.environ.get("RTPE_BIN"), "--config-file=none", "-t", "-1", "-i", "203.0.113.1", "-f", "-L", "7", "-E", "--listen-http=127.0.0.1:9191", "--janus-secret=dfgdfgdvgLyATjHPvckg", "--delete-delay=0", ], stdout=so, stderr=se, ) code = 255 try: unittest.main() code = 0 except SystemExit as e: if e.code == 0: code = 0 else: code = e.code traceback.print_exc() except: traceback.print_exc() if proc: proc.terminate() proc.wait() so.close() se.close() eventloop.close() if proc: if code == 0 and not os.environ.get("RETAIN_LOGS"): os.unlink(so.name) os.unlink(se.name) else: print("HINT: Stdout and stderr are {} and {}".format(so.name, se.name)) sys.exit(code) rtpengine-mr12.5.1.22/t/auto-daemon-tests.pl000077500000000000000000025735541474347554000205720ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use NGCP::Rtpclient::SRTP; use NGCP::Rtpengine::AutoTest; use Test::More; use NGCP::Rtpclient::ICE; use POSIX; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 -n 2223 -c 12345 -f -L 7 -E -u 2222 --silence-detect=1 --log-level-internals=7)) or die; my $extended_tests = $ENV{RTPENGINE_EXTENDED_TESTS}; # 100 ms sine wave my $wav_file = "\x52\x49\x46\x46\x64\x06\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x01\x00\x01\x00\x40\x1f\x00\x00\x80\x3e\x00\x00\x02\x00\x10\x00\x64\x61\x74\x61\x40\x06\x00\x00\x00\x00\xb0\x22\x45\x41\x25\x58\x95\x64\x24\x65\xbd\x59\xb6\x43\xb4\x25\x35\x03\x5e\xe0\x3b\xc1\x8c\xa9\x0f\x9c\x6a\x9a\xc2\xa4\xe7\xb9\x55\xd7\x92\xf9\x92\x1c\x30\x3c\xb2\x54\x2e\x63\xf3\x65\xa7\x5c\x68\x48\x9b\x2b\xa1\x09\x8a\xe6\x71\xc6\x28\xad\xab\x9d\xcc\x99\x06\xa2\x5c\xb5\x81\xd1\x2d\xf3\x53\x16\xe1\x36\xe8\x50\x64\x61\x59\x66\x36\x5f\xcf\x4c\x56\x31\x04\x10\xd0\xec\xe0\xcb\x19\xb1\xa9\x9f\x98\x99\xa8\x9f\x1a\xb1\xdf\xcb\xd1\xec\x04\x10\x54\x31\xd2\x4c\x33\x5f\x5c\x66\x61\x61\xeb\x50\xde\x36\x56\x16\x2b\xf3\x83\xd1\x59\xb5\x08\xa2\xcb\x99\xac\x9d\x28\xad\x70\xc6\x8a\xe6\xa3\x09\x98\x2b\x6a\x48\xa6\x5c\xf4\x65\x2d\x63\xb3\x54\x2e\x3c\x93\x1c\x93\xf9\x53\xd7\xe9\xb9\xc1\xa4\x69\x9a\x11\x9c\x8b\xa9\x3b\xc1\x5e\xe0\x36\x03\xb2\x25\xba\x43\xb7\x59\x2a\x65\x90\x64\x29\x58\x42\x41\xb2\x22\xff\xff\x50\xdd\xbb\xbe\xdb\xa7\x6b\x9b\xdd\x9a\x42\xa6\x4b\xbc\x4b\xda\xca\xfc\xa5\x1f\xc2\x3e\x77\x56\xed\x63\x9a\x65\x3b\x5b\x1b\x46\xa9\x28\x70\x06\x6c\xe3\xd2\xc3\x4d\xab\xd1\x9c\x10\x9a\x56\xa3\x99\xb7\x67\xd4\x5b\xf6\x79\x19\x8e\x39\xd7\x52\x58\x62\x30\x66\xfd\x5d\xa2\x4a\x81\x2e\xd1\x0c\xae\xe9\x1f\xc9\x17\xaf\x9e\x9e\xa4\x99\xce\xa0\x2c\xb3\xaf\xce\xf8\xef\x33\x13\x1e\x34\xe8\x4e\x57\x60\x68\x66\x57\x60\xe9\x4e\x1c\x34\x35\x13\xf6\xef\xb0\xce\x2d\xb3\xcc\xa0\xa6\x99\x9c\x9e\x17\xaf\x22\xc9\xa9\xe9\xd6\x0c\x7c\x2e\xa7\x4a\xf8\x5d\x36\x66\x52\x62\xdb\x52\x8c\x39\x79\x19\x5c\xf6\x67\xd4\x97\xb7\x59\xa3\x0e\x9a\xd1\x9c\x4e\xab\xd0\xc3\x6e\xe3\x6e\x06\xac\x28\x18\x46\x3d\x5b\x98\x65\xef\x63\x76\x56\xc3\x3e\xa4\x1f\xc9\xfc\x4e\xda\x49\xbc\x43\xa6\xdd\x9a\x69\x9b\xdd\xa7\xbb\xbe\x4f\xdd\x01\x00\xaf\x22\x47\x41\x23\x58\x96\x64\x24\x65\xbb\x59\xba\x43\xb0\x25\x39\x03\x59\xe0\x40\xc1\x87\xa9\x15\x9c\x65\x9a\xc4\xa4\xe7\xb9\x56\xd7\x90\xf9\x94\x1c\x2e\x3c\xb3\x54\x2f\x63\xf1\x65\xa8\x5c\x68\x48\x9a\x2b\xa2\x09\x8a\xe6\x71\xc6\x27\xad\xac\x9d\xcb\x99\x08\xa2\x59\xb5\x84\xd1\x2a\xf3\x56\x16\xe0\x36\xe7\x50\x65\x61\x59\x66\x35\x5f\xd1\x4c\x54\x31\x04\x10\xd2\xec\xdd\xcb\x1c\xb1\xa5\x9f\x9b\x99\xa8\x9f\x18\xb1\xe2\xcb\xcd\xec\x07\x10\x54\x31\xd1\x4c\x33\x5f\x5d\x66\x60\x61\xec\x50\xdd\x36\x57\x16\x29\xf3\x86\xd1\x57\xb5\x09\xa2\xcb\x99\xab\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9a\x2b\x69\x48\xa7\x5c\xf2\x65\x2e\x63\xb2\x54\x31\x3c\x91\x1c\x93\xf9\x53\xd7\xe9\xb9\xc1\xa4\x6a\x9a\x10\x9c\x8a\xa9\x3f\xc1\x59\xe0\x3a\x03\xb0\x25\xb8\x43\xbd\x59\x24\x65\x95\x64\x24\x58\x46\x41\xaf\x22\x02\x00\x4e\xdd\xbb\xbe\xdd\xa7\x68\x9b\xdf\x9a\x42\xa6\x48\xbc\x50\xda\xc6\xfc\xa7\x1f\xc2\x3e\x75\x56\xef\x63\x99\x65\x3c\x5b\x1a\x46\xaa\x28\x6e\x06\x6e\xe3\xd1\xc3\x4e\xab\xd1\x9c\x0e\x9a\x57\xa3\x9a\xb7\x64\xd4\x60\xf6\x75\x19\x90\x39\xd7\x52\x55\x62\x34\x66\xf9\x5d\xa8\x4a\x7a\x2e\xd8\x0c\xa7\xe9\x23\xc9\x16\xaf\x9d\x9e\xa6\x99\xcb\xa0\x2f\xb3\xad\xce\xfa\xef\x30\x13\x21\x34\xe6\x4e\x59\x60\x66\x66\x5a\x60\xe4\x4e\x23\x34\x2e\x13\xfc\xef\xab\xce\x30\xb3\xcb\xa0\xa5\x99\x9f\x9e\x14\xaf\x24\xc9\xa7\xe9\xd8\x0c\x7b\x2e\xa8\x4a\xf7\x5d\x36\x66\x53\x62\xda\x52\x8d\x39\x78\x19\x5d\xf6\x67\xd4\x97\xb7\x59\xa3\x0d\x9a\xd2\x9c\x4e\xab\xd1\xc3\x6d\xe3\x6f\x06\xaa\x28\x19\x46\x3f\x5b\x95\x65\xf2\x63\x74\x56\xc2\x3e\xa8\x1f\xc4\xfc\x52\xda\x45\xbc\x46\xa6\xdc\x9a\x6a\x9b\xdc\xa7\xba\xbe\x51\xdd\xff\xff\xb1\x22\x45\x41\x24\x58\x97\x64\x22\x65\xbd\x59\xb7\x43\xb3\x25\x37\x03\x5b\xe0\x3e\xc1\x89\xa9\x11\x9c\x6a\x9a\xc0\xa4\xeb\xb9\x51\xd7\x94\xf9\x91\x1c\x31\x3c\xb1\x54\x2f\x63\xf3\x65\xa5\x5c\x6c\x48\x95\x2b\xa7\x09\x86\xe6\x73\xc6\x28\xad\xa9\x9d\xcf\x99\x04\xa2\x5b\xb5\x84\xd1\x29\xf3\x57\x16\xde\x36\xe9\x50\x65\x61\x57\x66\x38\x5f\xcd\x4c\x57\x31\x04\x10\xd0\xec\xe1\xcb\x17\xb1\xaa\x9f\x97\x99\xaa\x9f\x18\xb1\xe1\xcb\xce\xec\x07\x10\x53\x31\xd0\x4c\x38\x5f\x55\x66\x68\x61\xe6\x50\xe0\x36\x56\x16\x2b\xf3\x81\xd1\x5d\xb5\x04\xa2\xce\x99\xaa\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9b\x2b\x67\x48\xa9\x5c\xf1\x65\x2e\x63\xb4\x54\x2e\x3c\x93\x1c\x92\xf9\x54\xd7\xe8\xb9\xc2\xa4\x69\x9a\x10\x9c\x8c\xa9\x3c\xc1\x5c\xe0\x37\x03\xb2\x25\xb8\x43\xbc\x59\x24\x65\x95\x64\x26\x58\x43\x41\xb2\x22\xff\xff\x50\xdd\xba\xbe\xde\xa7\x68\x9b\xdd\x9a\x45\xa6\x45\xbc\x52\xda\xc5\xfc\xa8\x1f\xbf\x3e\x79\x56\xec\x63\x9b\x65\x3b\x5b\x1a\x46\xaa\x28\x6f\x06\x6e\xe3\xd0\xc3\x4f\xab\xd0\x9c\x0f\x9a\x58\xa3\x97\xb7\x68\xd4\x5c\xf6\x78\x19\x8f\x39\xd6\x52\x57\x62\x32\x66\xfb\x5d\xa6\x4a\x7b\x2e\xd8\x0c\xa6\xe9\x25\xc9\x15\xaf\x9c\x9e\xa9\x99\xc7\xa0\x33\xb3\xa9\xce\xfd\xef\x2f\x13\x21\x34\xe6\x4e\x58\x60\x67\x66\x59\x60\xe5\x4e\x23\x34\x2c\x13\x00\xf0\xa6\xce\x35\xb3\xc7\xa0\xa8\x99\x9d\x9e\x15\xaf\x24\xc9\xa8\xe9\xd5\x0c\x7e\x2e\xa5\x4a\xfa\x5d\x35\x66\x52\x62\xdb\x52\x8d\x39\x77\x19\x5e\xf6\x66\xd4\x98\xb7\x59\xa3\x0c\x9a\xd3\x9c\x4d\xab\xd1\xc3\x6e\xe3\x6e\x06\xaa\x28\x1b\x46\x3b\x5b\x9a\x65\xed\x63\x76\x56\xc4\x3e\xa3\x1f\xcb\xfc\x4b\xda\x4a\xbc\x43\xa6\xdd\x9a\x6a\x9b\xdc\xa7\xba\xbe\x51\xdd\xff\xff\xb1\x22\x44\x41\x25\x58\x96\x64\x23\x65\xbd\x59\xb6\x43\xb4\x25\x36\x03\x5c\xe0\x3d\xc1\x8a\xa9\x12\x9c\x67\x9a\xc4\xa4\xe6\xb9\x55\xd7\x93\xf9\x91\x1c\x31\x3c\xb0\x54\x31\x63\xef\x65\xab\x5c\x66\x48\x9a\x2b\xa4\x09\x87\xe6\x73\xc6\x26\xad\xad\x9d\xcb\x99\x07\xa2\x5b\xb5\x81\xd1\x2c\xf3\x56\x16\xde\x36\xeb\x50\x62\x61\x59\x66\x38\x5f\xcc\x4c\x59\x31\x01\x10\xd3\xec\xdd\xcb\x1b\xb1\xa8\x9f\x98\x99\xa9\x9f\x18\xb1\xe0\xcb\xd1\xec\x03\x10\x57\x31\xce\x4c\x37\x5f\x58\x66\x63\x61\xec\x50\xdb\x36\x5a\x16\x27\xf3\x85\xd1\x5a\xb5\x05\xa2\xce\x99\xaa\x9d\x29\xad\x70\xc6\x8a\xe6\xa2\x09\x9a\x2b\x69\x48\xa6\x5c\xf4\x65\x2e\x63\xb1\x54\x32\x3c\x8e\x1c\x96\xf9\x52\xd7\xea\xb9\xc1\xa4\x67\x9a\x13\x9c\x8a\xa9\x3c\xc1\x5e\xe0\x33\x03\xb7\x25\xb4\x43\xbf\x59\x21\x65\x99\x64\x21\x58\x48\x41\xad\x22\x03\x00\x4f\xdd\xbb\xbe\xdb\xa7\x6a\x9b\xdd\x9a\x43\xa6\x4b\xbc\x4a\xda\xcb\xfc\xa4\x1f\xc3\x3e\x76\x56\xef\x63\x96\x65\x40\x5b\x17\x46\xac\x28\x6e\x06\x6d\xe3\xd2\xc3\x4d\xab\xd2\x9c\x0d\x9a\x59\xa3\x97\xb7\x68\xd4\x5c\xf6\x77\x19\x8f\x39\xd8\x52\x55\x62\x33\x66\xfb\x5d\xa4\x4a\x7f\x2e\xd4\x0c\xab\xe9\x20\xc9\x17\xaf\x9d\x9e\xa7\x99\xc9\xa0\x32\xb3\xa9\xce\xfd\xef\x2f\x13\x20\x34\xe8\x4e\x56\x60\x6a\x66\x55\x60\xe9\x4e\x1f\x34\x31\x13\xfa\xef\xad\xce\x2e\xb3\xcc\xa0\xa7\x99\x9b\x9e\x18\xaf\x20\xc9\xac\xe9\xd2\x0c\x81\x2e\xa1\x4a\xff\x5d\x30\x66\x56\x62\xd7\x52\x90\x39\x77\x19\x5d\xf6\x67\xd4\x96\xb7\x5a\xa3\x0e\x9a\xd0\x9c\x50\xab\xcf\xc3\x6e\xe3\x6f\x06\xaa\x28\x1a\x46\x3d\x5b\x98\x65\xee\x63\x77\x56\xc1\x3e\xa7\x1f\xc8\xfc\x4c\xda\x4b\xbc\x41\xa6\xdf\x9a\x68\x9b\xdd\xa7\xba\xbe\x51\xdd"; is length($wav_file), 1644, 'embedded binary wav file'; my $pcma_1 = "\xd5\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\x55\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c"; my $pcma_2 = "\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\xd5\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\xd5\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09"; my $pcma_3 = "\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\x55\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0"; my $pcma_4 = "\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\x55\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34\x55\xb4\xa5\xa3\xac\xac\xa3\xa5\xb7\xfc\x0a\x3a\x20\x2d\x2c\x23\x24\x31\x6c\x89\xbb\xa0\xad\xac\xa2\xa7\xb0\x96\x0c\x39\x21\x2d\x2c\x22\x27\x32\x1c\x83\xbe\xa1"; my $pcma_5 = "\xad\xac\xa2\xa6\xbd\x9a\x06\x3f\x26\x2d\x2c\x2d\x26\x3f\x06\x9a\xbd\xa6\xa2\xac\xad\xa1\xbe\x83\x1c\x32\x27\x22\x2c\x2d\x21\x39\x0c\x96\xb0\xa7\xa2\xac\xad\xa0\xbb\x89\x6c\x31\x24\x23\x2c\x2d\x20\x3a\x0a\xfc\xb7\xa5\xa3\xac\xac\xa3\xa5\xb4\xd5\x34\x25\x23\x2c\x2c\x23\x25\x37\x7c\x8a\xba\xa0\xad\xac\xa3\xa4\xb1\xec\x09\x3b\x20\x2d\x2c\x22\x27\x30\x16\x8c\xb9\xa1\xad\xac\xa2\xa7\xb2\x9c\x03\x3e\x21\x2d\x2c\x22\x26\x3d\x1a\x86\xbf\xa6\xad\xac\xad\xa6\xbf\x86\x1a\x3d\x26\x22\x2c\x2d\x21\x3e\x03\x9c\xb2\xa7\xa2\xac\xad\xa1\xb9\x8c\x16\x30\x27\x22\x2c\x2d\x20\x3b\x09\xec\xb1\xa4\xa3\xac\xad\xa0\xba\x8a\x7c\x37\x25\x23\x2c\x2c\x23\x25\x34"; my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, $sock_ax, $sock_bx, $port_ax, $port_bx, $srtp_ctx_a, $srtp_ctx_b, $srtp_ctx_a_rev, $srtp_ctx_b_rev, $ufrag_a, $ufrag_b, @ret1, @ret2, @ret3, @ret4, $srtp_key_a, $srtp_key_b, $ts, $seq, $has_recv); sub stun_req { my ($controlling, $pref, $comp, $my_ufrag, $other_ufrag, $other_pwd) = @_; my $tid = NGCP::Rtpclient::ICE::random_string(12); my @attrs; unshift(@attrs, NGCP::Rtpclient::ICE::attr(0x8022, 'perltester')); unshift(@attrs, NGCP::Rtpclient::ICE::attr($controlling ? 0x802a : 0x8029, NGCP::Rtpclient::ICE::random_string(8))); unshift(@attrs, NGCP::Rtpclient::ICE::attr(0x0024, pack('N', NGCP::Rtpclient::ICE::calc_priority('prflx', $pref, $comp)))); unshift(@attrs, NGCP::Rtpclient::ICE::attr(0x0006, "$other_ufrag:$my_ufrag")); # nominate NGCP::Rtpclient::ICE::integrity(\@attrs, 1, $tid, $other_pwd); NGCP::Rtpclient::ICE::fingerprint(\@attrs, 1, $tid); my $packet = join('', @attrs); $packet = pack('nnNa12', 1, length($packet), 0x2112A442, $tid) . $packet; return ($packet, $tid); } sub stun_succ { my ($port, $tid, $my_pwd) = @_; my $sw = NGCP::Rtpclient::ICE::attr(0x8022, 'perltester'); my $xor_addr = NGCP::Rtpclient::ICE::attr(0x0020, pack('nna4', 1, $port ^ 0x2112, pack('CCCC', 203,0,113,1) ^ "\x21\x12\xa4\x42")); my $attrs = [$sw, $xor_addr]; NGCP::Rtpclient::ICE::integrity($attrs, 257, $tid, $my_pwd); NGCP::Rtpclient::ICE::fingerprint($attrs, 257, $tid); my $pack = join('', @{$attrs}); my $packet = pack('nnNa12', 257, length($pack), 0x2112A442, $tid) . $pack; #print(unpack('H*', $packet)."\n"); return $packet; }; new_call; offer('mismatched G.729 annexb', { }, < ['original sendrecv'] }, < ['original sendrecv'] }, < 'IP6' }, < ['allow asymmetric codecs'] }, < {transcode => ['telephone-event'] } }, < {transcode => ['telephone-event'] } }, < ['allow asymmetric codecs'] }, < {accept => ['telephone-event'] } }, < {accept => ['telephone-event'] } }, < ['allow asymmetric codecs'] }, < { strip => ['all'], except => [qw/opus G722 PCMA telephone-event/], transcode => ['telephone-event'], } }, < ['allow asymmetric codecs'] }, < [qw(codec-strip-all codec-transcode-PCMA codec-transcode-telephone-event)], ICE => 'remove' }, < [qw(codec-strip-all codec-transcode-PCMA codec-transcode-telephone-event)], ICE => 'remove' }, < [qw(codec-strip-all codec-transcode-PCMA codec-transcode-telephone-event)], ICE => 'remove' }, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }}, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }}, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }, flags => ['no codec renegotiation'] }, < ['no codec renegotiation'] }, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }, flags => ['no codec renegotiation'] }, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }, flags => ['static codecs'] }, < ['static codecs'] }, < { transcode => ['opus/48000/2///useinbandfec--1;stereo--0;sprop-stereo--0'], }, flags => ['static codecs'] }, < 20, 'ptime-reverse' => 20, ICE => 'force', flags => [qw( generate-mid generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-opus codec-strip-G729 codec-strip-G729a codec-strip-speex codec-strip-G723 codec-strip-GSM codec-strip-iLBC codec-mask-G722 codec-mask-PCMA codec-mask-PCMU transcode-opus codec-offer-telephone-event)], replace => ['origin'], 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['require']}, < 'remove', flags => [qw(port-latching always-transcode SDES-off no-rtcp-attribute strip-extmap)], 'transport-protocol' => 'RTP/AVP', replace => ['origin'], 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw( generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 codec-offer-telephone-event always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw( generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 codec-offer-telephone-event always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'force', flags => [qw( generate-mid generate-rtcp port-latching SDES-off codec-strip-opus codec-strip-G729 codec-strip-G729a codec-strip-speex codec-strip-G723 codec-strip-GSM codec-strip-iLBC codec-mask-G722 codec-mask-PCMA codec-mask-PCMU transcode-opus)], replace => ['origin'], 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['require']}, < 'remove', flags => [qw(port-latching always-transcode SDES-off no-rtcp-attribute strip-extmap)], 'transport-protocol' => 'RTP/AVP', replace => ['origin'], 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw( generate-rtcp port-latching SDES-off codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw( generate-rtcp port-latching SDES-off codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'force', flags => [qw(no-codec-renegotiation generate-mid generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-opus codec-strip-G729 codec-strip-G729a codec-strip-speex codec-strip-G723 codec-strip-GSM codec-strip-iLBC codec-mask-G722 codec-mask-PCMA codec-mask-PCMU transcode-opus codec-offer-telephone-event)], replace => ['origin'], 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['require']}, < 'remove', flags => [qw(port-latching always-transcode SDES-off no-rtcp-attribute strip-extmap)], 'transport-protocol' => 'RTP/AVP', replace => ['origin'], 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw(no-codec-renegotiation generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 codec-offer-telephone-event always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw(no-codec-renegotiation generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-G722 codec-strip-PCMU codec-strip-PCMA codec-strip-CN codec-strip-red codec-mask-opus transcode-PCMU transcode-PCMA transcode-G722 codec-offer-telephone-event always-transcode no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'force', flags => [qw(no-codec-renegotiation generate-mid generate-rtcp port-latching SDES-off codec-strip-telephone-event codec-strip-opus codec-strip-G729 codec-strip-G729a codec-strip-speex codec-strip-G723 codec-strip-GSM codec-strip-iLBC codec-mask-G722 codec-mask-PCMA codec-mask-PCMU transcode-opus codec-offer-telephone-event)], replace => ['origin'], 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['require']}, < 'remove', flags => [qw(port-latching SDES-off no-rtcp-attribute strip-extmap)], 'transport-protocol' => 'RTP/AVP', replace => ['origin'], 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw(no-codec-renegotiation generate-rtcp port-latching SDES-off transcode-PCMU transcode-PCMA transcode-G722 codec-mask-opus no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < 20, 'ptime-reverse' => 20, ICE => 'remove', flags => [qw(no-codec-renegotiation generate-rtcp port-latching SDES-off transcode-PCMU transcode-PCMA transcode-G722 codec-mask-opus no-rtcp-attribute strip-extmap)], replace => ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux']}, < ['allow asymmetric codecs']}, < [qw/SIPREC all/]}, < [qw(inject-DTMF)] }, < [qw(inject-DTMF)] }, < ft(), code => '0', volume => 10, duration => 100 }); snd($sock_a, $port_b, rtp(8, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101 | 0x80, 1003, 3480, 0x1234, "\x00\x0a\x00\xa0")); snd($sock_a, $port_b, rtp(8, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1004, 3480, 0x1234, "\x00\x0a\x01\x40")); snd($sock_a, $port_b, rtp(8, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1005, 3480, 0x1234, "\x00\x0a\x01\xe0")); snd($sock_a, $port_b, rtp(8, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1006, 3480, 0x1234, "\x00\x0a\x02\x80")); snd($sock_a, $port_b, rtp(8, 1007, 4120, 0x1234, "\x00" x 160)); # end event rcv($sock_b, $port_a, rtpm(101, 1007, 3480, 0x1234, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1008, 3480, 0x1234, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1009, 3480, 0x1234, "\x00\x8a\x03\x20")); snd($sock_a, $port_b, rtp(8, 1008, 4280, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1010, 4280, 0x1234, "\x00" x 160)); # inject DTMF to SRTP with passthrough ($sock_a, $sock_b) = new_call([qw(198.51.100.50 3056)], [qw(198.51.100.50 3058)]); ($port_a) = offer('inject passthrough', { flags => [qw(inject-DTMF)], DTLS => 'off' }, < [qw(inject-DTMF)] }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'QjnnaukLn7iwASAs0YLzPUplJkjOhTZK2dvOwo6c', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Opr7g+J9VgQnRkCFNmL/0LP/dcF1Exu43qwiE0So', }; srtp_snd($sock_a, $port_b, rtp(8, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(8, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1001, 3160, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(8, 1001, 3160, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1002, 3320, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(8, 1002, 3320, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_b, $port_a, rtp(8, 5000, 7000, 0x5432, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(8, 5000, 7000, 0x5432, "\x00" x 160), $srtp_ctx_b); srtp_snd($sock_b, $port_a, rtp(8, 5001, 7160, 0x5432, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(8, 5001, 7160, 0x5432, "\x00" x 160), $srtp_ctx_b); srtp_snd($sock_b, $port_a, rtp(8, 5002, 7320, 0x5432, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(8, 5002, 7320, 0x5432, "\x00" x 160), $srtp_ctx_b); $resp = rtpe_req('play DTMF', 'inject DTMF towards B', { 'from-tag' => ft(), code => '0', volume => 10, duration => 100 }); srtp_snd($sock_a, $port_b, rtp(8, 1003, 3480, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101 | 0x80, 1003, 3480, 0x1234, "\x00\x0a\x00\xa0"), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1004, 3640, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101, 1004, 3480, 0x1234, "\x00\x0a\x01\x40"), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1005, 3800, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101, 1005, 3480, 0x1234, "\x00\x0a\x01\xe0"), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1006, 3960, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101, 1006, 3480, 0x1234, "\x00\x0a\x02\x80"), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1007, 4120, 0x1234, "\x00" x 160), $srtp_ctx_a); # end event srtp_rcv($sock_b, $port_a, rtpm(101, 1007, 3480, 0x1234, "\x00\x8a\x03\x20"), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101, 1008, 3480, 0x1234, "\x00\x8a\x03\x20"), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(101, 1009, 3480, 0x1234, "\x00\x8a\x03\x20"), $srtp_ctx_a); srtp_snd($sock_a, $port_b, rtp(8, 1008, 4280, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(8, 1010, 4280, 0x1234, "\x00" x 160), $srtp_ctx_a); # inject DTMF with passthrough and blocking ($sock_a, $sock_b) = new_call([qw(198.51.100.50 3002)], [qw(198.51.100.50 3004)]); ($port_a) = offer('inject passthrough', { flags => [qw(inject-DTMF)] }, < [qw(inject-DTMF)] }, < ft() }); snd($sock_a, $port_b, rtp(8, 1000, 3000, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1000, 3000, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(8, 1001, 3160, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1001, 3160, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(8, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1002, 3320, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(101 | 0x80, 1003, 3480, 0x1234, "\x02\x14\x00\xa0")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1004, 3480, 0x1234, "\x02\x14\x01\x40")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1005, 3480, 0x1234, "\x02\x14\x01\xe0")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1006, 3480, 0x1234, "\x02\x14\x02\x80")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1007, 3480, 0x1234, "\x02\x14\x03\x20")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1008, 3480, 0x1234, "\x02\x94\x03\xc0")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1009, 3480, 0x1234, "\x02\x94\x03\xc0")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1010, 3480, 0x1234, "\x02\x94\x03\xc0")); rcv_no($sock_b); snd($sock_b, $port_a, rtp(8, 5000, 7000, 0x5432, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(8, 5000, 7000, 0x5432, "\x00" x 160)); snd($sock_b, $port_a, rtp(8, 5001, 7160, 0x5432, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(8, 5001, 7160, 0x5432, "\x00" x 160)); snd($sock_b, $port_a, rtp(8, 5002, 7320, 0x5432, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(8, 5002, 7320, 0x5432, "\x00" x 160)); snd($sock_a, $port_b, rtp(8, 1011, 4440, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1011, 4440, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(8, 1012, 4600, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1012, 4600, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(8, 1013, 4760, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1013, 4760, 0x1234, "\x00" x 160)); $resp = rtpe_req('play DTMF', 'inject DTMF towards B', { 'from-tag' => ft(), code => '0', volume => 10, duration => 100 }); snd($sock_a, $port_b, rtp(8, 1014, 4920, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101 | 0x80, 1014, 4920, 0x1234, "\x00\x0a\x00\xa0")); snd($sock_a, $port_b, rtp(8, 1015, 5080, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1015, 4920, 0x1234, "\x00\x0a\x01\x40")); snd($sock_a, $port_b, rtp(8, 1016, 5240, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1016, 4920, 0x1234, "\x00\x0a\x01\xe0")); snd($sock_a, $port_b, rtp(8, 1017, 5400, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1017, 4920, 0x1234, "\x00\x0a\x02\x80")); snd($sock_a, $port_b, rtp(8, 1018, 5560, 0x1234, "\x00" x 160)); # end event rcv($sock_b, $port_a, rtpm(101, 1018, 4920, 0x1234, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1019, 4920, 0x1234, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1020, 4920, 0x1234, "\x00\x8a\x03\x20")); snd($sock_a, $port_b, rtp(8, 1019, 5720, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1021, 5720, 0x1234, "\x00" x 160)); snd($sock_a, $port_b, rtp(101 | 0x80, 1021, 6040, 0x1234, "\x03\x26\x00\xa0")); rcv_no($sock_b); $resp = rtpe_req('play DTMF', 'inject DTMF towards B over received DTMF', { 'from-tag' => ft(), code => '1', volume => 12, duration => 100 }); snd($sock_a, $port_b, rtp(101, 1022, 6040, 0x1234, "\x03\x26\x01\x40")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1023, 6040, 0x1234, "\x03\x26\x01\xe0")); rcv_no($sock_b); snd($sock_a, $port_b, rtp(101, 1024, 6040, 0x1234, "\x03\x26\x02\x80")); rcv($sock_b, $port_a, rtpm(101 | 0x80, 1026, 6520, 0x1234, "\x01\x0c\x00\xa0")); snd($sock_a, $port_b, rtp(101, 1025, 6040, 0x1234, "\x03\x26\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1027, 6520, 0x1234, "\x01\x0c\x01\x40")); # send end event snd($sock_a, $port_b, rtp(101, 1026, 6040, 0x1234, "\x03\xa6\x03\xc0")); snd($sock_a, $port_b, rtp(101, 1027, 6040, 0x1234, "\x03\xa6\x03\xc0")); snd($sock_a, $port_b, rtp(101, 1028, 6040, 0x1234, "\x03\xa6\x03\xc0")); rcv($sock_b, $port_a, rtpm(101, 1028, 6520, 0x1234, "\x01\x0c\x01\xe0")); rcv_no($sock_b); # send audio, receive end event snd($sock_a, $port_b, rtp(8, 1029, 7000, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1029, 6520, 0x1234, "\x01\x0c\x02\x80")); snd($sock_a, $port_b, rtp(8, 1030, 7160, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(101, 1030, 6520, 0x1234, "\x01\x8c\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1031, 6520, 0x1234, "\x01\x8c\x03\x20")); rcv($sock_b, $port_a, rtpm(101, 1032, 6520, 0x1234, "\x01\x8c\x03\x20")); snd($sock_a, $port_b, rtp(8, 1031, 7320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1033, 7320, 0x1234, "\x00" x 160)); if ($extended_tests) { ($sock_a, $sock_b) = new_call([qw(198.51.100.43 6060)], [qw(198.51.100.43 6062)]); ($port_a) = offer('opus fmtp options, full offer list', { codec => { transcode => ['opus/48000/2///maxaveragebitrate--40000;maxplaybackrate--32000;sprop-stereo--0;stereo--0;cbr--0;useinbandfec--0;usedtx--0;sprop-maxcapturerate--16000', 'PCMU'], mask => ['all'] } }, < { transcode => ['PCMA'], mask => ['opus'] } }, < { transcode => ['opus'] } }, < { transcode => ['opus/48000/2///useinbandfec=1;stereo=1;sprop-stereo=1'] } }, < { transcode => ['opus/48000/2///useinbandfec=1;stereo=0;sprop-stereo=0'] } }, < { transcode => ['opus/48000/2///stereo=1;sprop-stereo=0'] } }, < { transcode => ['opus/48000/2///stereo=0;sprop-stereo=1'] } }, < { transcode => ['PCMA'], mask => ['opus'] } }, < [ ] }, < [ 'OSRTP-accept' ], 'transport-protocol' => 'RTP/AVP' }, < [ 'OSRTP-accept' ] }, < 'nonew' }, < [ 'OSRTP-accept' ] }, < [ 'OSRTP-accept' ], 'transport-protocol' => 'RTP/AVP' }, < [ 'OSRTP-accept' ] }, < 'nonew' }, < [ 'OSRTP-accept' ] }, < [ 'OSRTP-offer-legacy' ], 'transport-protocol' => 'RTP/SAVP' }, < [ 'OSRTP-accept-legacy' ] }, < [ 'OSRTP-offer-legacy' ], 'transport-protocol' => 'RTP/SAVP' }, < [ 'OSRTP-accept-legacy' ] }, < { transcode => ['AMR/8000/1///octet-align=1;mode-change-capability=2'] } }, < { transcode => ['AMR'] } }, < { transcode => ['AMR'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-change-capability=2'] } }, < { transcode => ['AMR/8000/1///octet-align=1'] } }, < { transcode => ['AMR/8000/1///octet-align=0'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-set=1,2,3'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-set=1,2,3'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-set=1,2,3'] } }, < { transcode => ['AMR/8000/1///octet-align=1'] } }, < { transcode => ['AMR/8000/1///octet-align=0'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-set=1,2,3,4,5'] } }, < { transcode => ['AMR/8000/1///octet-align=1;mode-set=1,2,3'] } }, < { accept => ['AMR-WB'] } }, < { accept => ['AMR-WB'] } }, < { accept => ['AMR-WB'] } }, < { accept => ['AMR-WB/16000/1///octet-align=0'] } }, < { accept => ['AMR-WB/16000/1///octet-align=1'] } }, < { accept => ['AMR-WB/16000/1///octet-align=1'] } }, < { accept => ['AMR-WB/16000/1///octet-align=1'] } }, < { accept => ['AMR-WB/16000/1///octet-align=1;mode-set=2,3,4'] } }, < { accept => ['AMR-WB/16000/1///octet-align=1;mode-set=3,4,5,6'] } }, < { accept => ['AMR-WB/16000/1///mode-set=3,4,5,6'] } }, < 'remove', 'ICE-lite' => 'backward', 'rtcp-mux' => ['demux'] }, < 'force' }, < 'remove', 'ICE-lite' => 'backward', 'rtcp-mux' => ['demux'] }, < 'force' }, < 'remove', 'ICE-lite' => 'backward', 'rtcp-mux' => ['demux'] }, < ['zero address'], ICE => 'force' }, < 'forward', ICE => 'force', 'to-tag' => tt(), 'rtcp-mux' => ['offer'] }, < { transcode => ['opus/48000/2'] } }, < { transcode => ['opus/48000/2////application=audio'] } }, < { transcode => ['opus/48000/2/16000'] } }, < { transcode => ['opus/48000/2////compression_level=2'] } }, < { transcode => ['opus/48000/2/16000///compression_level=2'] } }, < { transcode => ['PCMA'] } }, < { transcode => ['PCMA'], set => ['opus/48000/2////application=audio'] } }, < { transcode => ['PCMA'], set => ['opus/48000/2/16000'] } }, < { transcode => ['PCMA'], set => ['opus/48000/2////compression_level=2'] } }, < { transcode => ['PCMA'], set => ['opus/48000/2/16000///compression_level=2'] } }, < { transcode => ['PCMA', 'PCMU'] } }, < 'remove' }, < 'force' }, < 'RTP/AVP' }, < 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_a, }; # consume DTLS rcv($sock_a, -1, qr/^\x16\xfe\xff\x00\x00\x00\x00\x00\x00\x00/); snd($sock_b, $port_a, rtp(0, 65534, 4000, 0x6543, "\x00" x 160)); srtp_rcv($sock_a, $port_b, rtpm(0, 65534, 4000, -1, "\x00" x 160), $srtp_ctx_a); is($srtp_ctx_a->{roc}, 0, "initial zero ROC"); snd($sock_b, $port_a, rtp(0, 65535, 4160, 0x6543, "\x00" x 160)); srtp_rcv($sock_a, $port_b, rtpm(0, 65535, 4160, -1, "\x00" x 160), $srtp_ctx_a); is($srtp_ctx_a->{roc}, 0, "initial zero ROC"); snd($sock_b, $port_a, rtp(0, 0, 4320, 0x6543, "\x00" x 160)); srtp_rcv($sock_a, $port_b, rtpm(0, 0, 4320, -1, "\x00" x 160), $srtp_ctx_a); is($srtp_ctx_a->{roc}, 1, "ROC increase"); ($port_ax) = offer('ROC reset after re-invite', { 'transport-protocol' => 'RTP/AVP' }, < 'off' }, <{roc}, 1, "ROC unchanged"); new_call; offer('ICE restart', { ICE => 'remove' }, < { transcode => [qw(PCMA G722 PCMU)] } }, < { transcode => [qw(PCMA G722 PCMU)] } }, < { strip => ['all'] } }, < { strip => ['all'] } }, < 'foo' }, < 'bar' }, < 'bar' }, < $ft1 }); # reverse re-invite to new from-tag ft3 new_ft; my $ft3 = ft(); reverse_tags; # tt is the new tag ft3 now ($port_b) = offer('re-invite re-tag w/ via-branch', { 'via-branch' => 'blah', 'to-tag' => tt() }, < 'baz', 'to-tag' => $ft2 }, < { transcode => ['opus','PCMA'] } }, < 'fw' }, < 'bk' }, < 'off' }, < 'off' }, < 'off' }, < 'off' }, < ['static'] }, < 'force', }, < 'force', }, < 'force', }, < 'force', 'rtcp-mux' => ['require'] }, < 'force', 'rtcp-mux' => ['require'] }, < 'force', flags => ['no port latching']}, < 'force', flags => ['no port latching']}, < 'force', flags => ['no port latching']}, < ['zero address'] }, < ['zero address'] }, < ['zero address'] }, < ['zero address'] }, < 'IP6' }, < 'IP6' }, < 'IP6' }, < 'IP6' }, < 'IP4' }, < 'IP4' }, < 'IP4' }, < 'IP4' }, < 'remove' }, < 'remove' }, < { accept => ['PCMU'] } }, < { consume => ['PCMU'] } }, < { mask => ['PCMA'] } }, < { mask => ['PCMU'] } }, < { mask => ['PCMA'] } }, < { mask => ['PCMU'] } }, < { mask => ['PCMA'] } }, < { mask => ['PCMU'] } }, < { mask => ['telephone-event'] } }, < { mask => ['telephone-event'] } }, < { strip => ['all'], consume => ['CN'], offer => ['PCMA', 'PCMU', 'telephone-event'], } }, < ['origin'], codec => { transcode => ['opus/48000/1', 'opus/48000/2'] } }, < ['origin'], codec => { transcode => ['opus/48000', 'opus/48000/2'] } }, < ['origin'], codec => { transcode => ['opus', 'opus/48000/2'] } }, < 'remove', replace => ['origin'], codec => { transcode => ['CN'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], flags => ['always transcode'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { strip => ['all'], consume => ['CN'], offer => ['PCMA','PCMU','telephone-event'], } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['CN'] } }, < 'remove', replace => ['origin'], codec => { transcode => ['G722'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['CN'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['CN'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMU', 'CN'] } }, < 'remove', replace => ['origin'] }, < { mask => ['all'], transcode => ['G722', 'opus/48000/1//test=1', 'speex', 'PCMA', 'telephone-event'], } }, < { transcode => ['AMR','PCMA'] } }, < 'remove', replace => ['origin'], codec => { mask => ['all'], transcode => [ 'PCMA', 'AMR', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'telephone-event', ], } }, < 'remove', replace => ['origin'], flags => [] }, < 'remove', replace => ['origin'], codec => { mask => ['all'], transcode => [ 'PCMA', 'AMR', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'telephone-event', ], } }, < 'remove', replace => ['origin'], flags => ['reorder-codecs'] }, < { mask => ['all'], transcode => ['G722', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'AMR', 'PCMA', 'telephone-event'], } }, < ['single-codec'], }, < { mask => ['all'], transcode => ['G722', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'AMR', 'PCMA', 'telephone-event'], } }, < { strip => ['all'], offer => ['PCMA'], } }, < { mask => ['all'], transcode => ['G722', 'AMR-WB/16000/1///mode-set--0,1,2;mode-change-period--2;mode-change-capability--2/dtx--1', 'AMR', 'PCMA', 'telephone-event'], } }, < { strip => ['all'], offer => ['PCMA', 'telephone-event'], } }, < 'remove', replace => ['origin'], flags => [qw(inject-DTMF)] }, < 'remove', replace => ['origin'], flags => [qw(inject-DTMF)] }, < AMR-WB default', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['AMR-WB'] } }, < AMR-WB default', { ICE => 'remove', replace => ['origin'] }, < AMR-WB force bitrate', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['AMR-WB/16000/1/23850'] } }, < AMR-WB force bitrate', { ICE => 'remove', replace => ['origin'] }, < AMR-WB answer mode-set', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['AMR-WB/16000/1/23850'] } }, < AMR-WB answer mode-set', { ICE => 'remove', replace => ['origin'] }, < AMR-WB offer mode-set', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['AMR-WB/16000/1/23850//mode-set=0,1,2,3,4,5'] } }, < AMR-WB offer mode-set', { ICE => 'remove', replace => ['origin'] }, < AMR-WB offer mode-set, restrict answer', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['AMR-WB/16000/1/23850//mode-set=0,1,2,3,4,5'] } }, < AMR-WB offer mode-set, restrict answer', { ICE => 'remove', replace => ['origin'] }, < PCM default', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'] } }, < PCM default', { ICE => 'remove', replace => ['origin'] }, < PCM force bitrate', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < PCM force bitrate', { ICE => 'remove', replace => ['origin'] }, < PCM offer mode-set', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < PCM offer mode-set', { ICE => 'remove', replace => ['origin'] }, < PCM CMR', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < PCM CMR', { ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/6600'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1////CMR-interval=200'] } }, < 'remove', replace => ['origin'] }, < PCM CMR w/ mode-change-interval', { ICE => 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850///mode-change-interval=200'] } }, < PCM CMR w/ mode-change-interval', { ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'], 'set' => ['AMR-WB/16000/1/23850///mode-change-interval=200'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { 'transcode' => ['AMR-WB/16000/1/23850//octet-align=1/mode-change-interval=200'] } }, < 'remove', replace => ['origin'] }, < 'remove', flags => ['inject-DTMF'], codec => {transcode => ['G722']}, }, < 'remove', flags => ['inject-DTMF'], }, < 'remove', flags => [], codec => {transcode => ['G722']}, }, < 'remove', flags => [], }, < { mask => ['all'], transcode => ['G722', 'opus/48000/1', 'PCMA', 'telephone-event'] }, }, < 'remove', flags => [], codec => {transcode => ['G722']}, }, < 'remove', flags => [], }, < 'remove', flags => [], codec => {transcode => ['G722']}, }, < 'remove', flags => [], }, < 'remove', flags => [], codec => {transcode => ['G722']}, }, < 'remove', flags => ['single codec'], }, < 'remove', flags => [], }, < 'remove', flags => [], }, < 'remove', flags => [], }, < 'remove', flags => ['single codec'], }, < 'remove', flags => [], }, < 'remove', flags => ['single codec'], }, < 'remove', flags => [], codec => {transcode => ['opus']}, }, < 'remove', flags => ['single codec'], }, < 'remove', flags => [], codec => {mask => ['all'], transcode => ['opus/48000/1', 'PCMA', 'telephone-event']}, }, < 'remove', flags => ['single codec'], }, < 'remove', flags => [], codec => {transcode => ['PCMA']}, }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', SDES => ['off'], }, < [], }, < [], }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', SDES => ['off'], 'DTLS-fingerprint' => 'SHA-1', }, < [], }, < [], }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', SDES => ['off'], 'DTLS-fingerprint' => 'sha-256', }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', }, < ft() }); offer('GH 1086', { ICE => 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', DTLS => 'off', }, < 'remove', flags => [], DTLS => 'off', }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', DTLS => 'off', }, < 'remove', flags => [], DTLS => 'off', 'transport-protocol' => 'accept', }, < 'remove', flags => [], 'transport-protocol' => 'RTP/SAVP', DTLS => 'off', }, < 'remove', flags => [], DTLS => 'off', 'transport-protocol' => 'RTP/AVPF', }, < 'remove', flags => ["codec-mask-all", "codec-strip-telephone-event", "codec-transcode-PCMU", "codec-transcode-G722", "codec-transcode-t38", "codec-offer-telephone-event", "port-latching"], 'to-tag' => tt(), }, < 'remove', flags => ["trust-address", "symmetric-codecs"], }, < 'remove', flags => ["codec-mask-all", "codec-strip-telephone-event", "codec-transcode-PCMU", "codec-transcode-G722", "codec-transcode-t38", "codec-offer-telephone-event", "port-latching"], 'to-tag' => tt(), }, < 'remove', 'transport-protocol' => 'RTP/AVP', }, < 'remove', }, < 'remove', 'transport-protocol' => 'RTP/AVP', 'DTLS-reverse' => 'passive', }, < 'remove', }, < 'remove', 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], }, < 'remove', SDES => 'off', 'via-branch' => 'foo.0', 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['offer'], }, < 'remove', SDES => 'off', 'via-branch' => 'foo.1', 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], }, < ft(), 'via-branch' => 'foo.1' }); answer('rtcp-mux branched w delete-delay', { ICE => 'remove', SDES => 'off', 'via-branch' => 'foo.0', 'transport-protocol' => 'RTP/AVPF', 'rtcp-mux' => ['demux'], }, < 'remove', SDES => 'off', 'via-branch' => 'foo.0', 'transport-protocol' => 'RTP/SAVPF', 'rtcp-mux' => ['offer'], }, < 'remove', SDES => 'off', 'via-branch' => 'foo.1', 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], }, < ft(), 'via-branch' => 'foo.1', 'delete-delay' => 0, }); answer('rtcp-mux branched delete-delay=0', { ICE => 'remove', SDES => 'off', 'via-branch' => 'foo.0', 'transport-protocol' => 'RTP/AVPF', 'rtcp-mux' => ['demux'], }, < "RTP/SAVP", "ICE" => "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin" ], "via-branch" => "z9hG4bK0ae8.cc3c994fa8d0c0f1f2536bba541306fb.0", }, < "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin" ], "via-branch" => "z9hG4bK0ae8.cc3c994fa8d0c0f1f2536bba541306fb.0", }, < "RTP/SAVP", "ICE" => "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin" ], "via-branch" => "z9hG4bK0ae8.cc3c994fa8d0c0f1f2536bba541306fb.0", 'to-tag' => tt(), }, < "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin" ], "via-branch" => "z9hG4bK0ae8.cc3c994fa8d0c0f1f2536bba541306fb.0", }, < "RTP/SAVP", "ICE" => "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin" ], "via-branch" => "z9hG4bK0ae8.cc3c994fa8d0c0f1f2536bba541306fb.0", 'to-tag' => tt(), }, < 'remove', replace => ['origin'], DTLS => 'off', 'transport-protocol' => 'RTP/SAVP', flags => ['inject-DTMF'], 'rtcp-mux' => ['demux'] }, < 'remove', replace => ['origin'], DTLS => 'off', ICE => 'remove', flags => ['inject-DTMF'], 'rtcp-mux' => ['demux'] }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'QjnnaukLn7iwASAs0YLzPUplJkjOhTZK2dvOwo6c', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'cdDuBSOp/rX/7ikmU1Tnuu337gXUUMFAhkARhB/j', }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x6543, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, -1, "\x00" x 160), $srtp_ctx_b); # RTCP ($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( [qw(198.51.100.1 7400)], [qw(198.51.100.1 7401)], [qw(198.51.100.3 7402)], [qw(198.51.100.3 7403)], ); ($port_a, $port_ax) = offer('RTCP player', { ICE => 'remove', }, < 'remove', }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; ($seq, $ts, $ssrc) = rcv($sock_a, $port_b, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); # SR LEN SSRC NTP1 NTP2 RTP PACKETS OCTETS SSRC LOST SEQ JITTER LAST SR DLSR CNAME @ret1 = rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c(.{4})(.{4})(.{4})(.{4})\x00\x00\x00\x01\x00\x00\x00\xac\x00\x00\x12\x34\x00\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05(.{4})\x01\x0c([0-9a-f]{12})\x00\x00$/s); is $ret1[0], $ssrc, 'SSRC matches'; is $ret1[3], $ts, 'TS matches'; is $ret1[4], $ssrc, 'SSRC matches'; rtpe_req('delete', "delete", { 'from-tag' => ft() }); ($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( [qw(198.51.100.1 7400)], [qw(198.51.100.1 7401)], [qw(198.51.100.3 7402)], [qw(198.51.100.3 7403)], ); ($port_a, $port_ax) = offer('RTCP player w/ previous SR', { ICE => 'remove', }, < 'remove', }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; ($seq, $ts, $ssrc) = rcv($sock_a, $port_b, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); # SR LEN SSRC NTP1 NTP2 RTP PACKETS OCTETS SSRC LOST SEQ JITTER LAST SR DLSR CNAME @ret1 = rcv($sock_ax, $port_bx, qr/^\x81\xc8\x00\x0c(.{4})(.{4})(.{4})(.{4})\x00\x00\x00\x01\x00\x00\x00\xac\x00\x00\x12\x34\x00\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x00\x00\x56\x78\x9a\xbc(.{4})\x81\xca\x00\x05(.{4})\x01\x0c([0-9a-f]{12})\x00\x00$/s); is $ret1[0], $ssrc, 'SSRC matches'; is $ret1[3], $ts, 'TS matches'; cmp_ok $ret1[4], '<', 6553, 'DSLR ok'; is $ret1[5], $ssrc, 'SSRC matches'; rtpe_req('delete', "delete", { 'from-tag' => ft() }); # SRTP control - accept diff suite from offer ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3328)], [qw(198.51.100.3 3330)]); ($port_a, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('reg SRTP offer, accept, diff suite', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_32}, key => 'Kl3GFJ5Gqz5x07xYkoyHODkVkSpiplZnXsQIw+Q7', }; $srtp_ctx_a_rev = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_32}, key => $srtp_key_a, }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; $srtp_ctx_b_rev = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_b, }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a_rev); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b_rev); # OSRTP ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3316)], [qw(198.51.100.3 3318)]); ($port_a) = offer('OSRTP offer, accept, same suite', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Kl3GFJ5Gqz5x07xYkoyHODkVkSpiplZnXsQIw+Q7', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3320)], [qw(198.51.100.3 3322)]); ($port_a, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('OSRTP offer, accept, diff suite', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_32}, key => 'Kl3GFJ5Gqz5x07xYkoyHODkVkSpiplZnXsQIw+Q7', }; $srtp_ctx_a_rev = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_32}, key => $srtp_key_a, }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; $srtp_ctx_b_rev = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_b, }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a_rev); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b_rev); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3324)], [qw(198.51.100.3 3326)]); ($port_a) = offer('OSRTP offer, reject', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['accept'] }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_a, }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_b); rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160)); snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160)); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_a); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3336)], [qw(198.51.100.3 3338)]); ($port_a, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('non-OSRTP offer with offer flag, accept', { ICE => 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['offer'] }, < 'remove', replace => ['origin'], DTLS => 'off', }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Kl3GFJ5Gqz5x07xYkoyHODkVkSpiplZnXsQIw+Q7', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_a, }; snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160)); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_b); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_a); rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3356)], [qw(198.51.100.3 3358)]); ($port_a, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('non-OSRTP offer with offer flag and protocol, accept', { ICE => 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['offer'], 'transport protocol' => 'RTP/AVP'}, < 'remove', replace => ['origin'], DTLS => 'off', }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Kl3GFJ5Gqz5x07xYkoyHODkVkSpiplZnXsQIw+Q7', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => $srtp_key_a, }; snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160)); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_b); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_a); rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3340)], [qw(198.51.100.3 3342)]); ($port_a, undef, $srtp_key_a) = offer('non-OSRTP offer with offer flag, reject', { ICE => 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['offer'] }, < 'remove', replace => ['origin'], DTLS => 'off', }, < 'remove', }, < 'remove', 'transport-protocol' => 'RTP/SAVP', SDES => ['lifetime'], DTLS => 'off' }, < 'remove', codec => { mask => ['full'], transcode => ['PCMA','telephone-event'] } }, < 'remove', }, < 'remove', codec => { mask => ['all'], transcode => ['PCMA','telephone-event'] } }, < 'remove', }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', flags => ['symmetric codecs'] }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', flags => ['symmetric codecs'] }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', }, < 'remove', codec => { transcode => ['G722'] } }, < 'remove', flags => ['symmetric codecs'] }, < [ 'decode' ], ICE => 'remove', }, < ft() }); new_call(); offer('T.38 forward re-invite', { ICE => 'remove', }, < 'remove', }, < 'remove', 'T.38' => [ 'force' ], }, < 'remove', }, < ft() }); new_call(); offer('T.38 reverse re-invite', { ICE => 'remove', }, < 'remove', }, < 'remove', 'T.38' => [ 'decode' ], }, < 'remove' }, < ft() }); new_call(); offer('T.38 forward re-invite w/ unsupported codec', { ICE => 'remove', }, < 'remove', }, < 'remove', 'T.38' => [ 'force' ], }, < 'remove', }, < ft() }); new_call(); offer('T.38 reverse re-invite w/ unsupported codec', { ICE => 'remove', }, < 'remove', }, < 'remove', 'T.38' => [ 'decode' ], }, < 'remove' }, < ft() }); new_call; offer('T.38 FEC invite', { ICE => 'remove', 'T.38' => [ 'force', 'FEC' ], }, < ft() }); # github issue 850 new_call; @ret1 = offer('gh 850', { ICE => 'force-relay', flags => [qw(SDES-off)], 'transport-protocol' => 'UDP/TLS/RTP/SAVPF', 'rtcp-mux' => [qw(accept offer)], 'via-branch' => 'z9hG4bK9463.af303705.113', }, < 'force-relay', flags => [qw(SDES-off)], 'transport-protocol' => 'UDP/TLS/RTP/SAVPF', 'rtcp-mux' => [qw(accept offer)], 'via-branch' => 'z9hG4bK9463.af303705.113', }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'] } }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], flags => ['pad crypto'], DTLS => 'off' }, < 'remove', replace => ['origin'], flags => ['pad crypto'], DTLS => 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'IDdiM2QzOWYzMjA2YzkwZWIxY2NmOWVhOTc4MjE1', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 7310)], [qw(198.51.100.3 7312)]); ($port_a) = offer('gh829', { ICE => 'remove', replace => ['origin'], flags => ['pad crypto'], DTLS => 'off' }, < 'remove', replace => ['origin'], flags => ['pad crypto'], DTLS => 'off' }, < $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'IDdiM2QzOWYzMjA2YzkwZWIxY2NmOWVhOTc4MjE1', }; $srtp_ctx_b = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'Qk0TvVeyfqfjFd/YebnyyklqSEhJntpVKV1KAhHa', }; srtp_snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_rcv($sock_b, $port_a, rtpm(0, 1000, 3000, 0x1234, "\x00" x 160), $srtp_ctx_a); srtp_snd($sock_b, $port_a, rtp(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); srtp_rcv($sock_a, $port_b, rtpm(0, 2000, 4000, 0x3456, "\x00" x 160), $srtp_ctx_b); # DTMF injection # # no transcoding, RFC payload type present ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6010)], [qw(198.51.100.3 6012)]); ($port_a) = offer('no transcoding, RFC payload type present', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => '0', volume => 10, duration => 100 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96 | 0x80, 1002, 3320, $ssrc, "\x00\x0a\x00\xa0")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1003, 3320, $ssrc, "\x00\x0a\x01\x40")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1004, 3320, $ssrc, "\x00\x0a\x01\xe0")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1005, 3320, $ssrc, "\x00\x0a\x02\x80")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1006, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1007, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1008, 3320, $ssrc, "\x00\x8a\x03\x20")); snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1009, 4120, $ssrc, "\x00" x 160)); snd($sock_b, $port_a, rtp(0, 4000, 8000, 0x6543, "\x00" x 160)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 8000, -1, "\x00" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 8160, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4001, 8160, $ssrc, "\x00" x 160)); $resp = rtpe_req('play DTMF', 'inject DTMF towards A', { 'from-tag' => tt(), code => '*', volume => 10, duration => 100 }); snd($sock_b, $port_a, rtp(0, 4002, 8320, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(96 | 0x80, 4002, 8320, $ssrc, "\x0a\x0a\x00\xa0")); snd($sock_b, $port_a, rtp(0, 4003, 8480, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(96, 4003, 8320, $ssrc, "\x0a\x0a\x01\x40")); snd($sock_b, $port_a, rtp(0, 4004, 8640, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(96, 4004, 8320, $ssrc, "\x0a\x0a\x01\xe0")); snd($sock_b, $port_a, rtp(0, 4005, 8800, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(96, 4005, 8320, $ssrc, "\x0a\x0a\x02\x80")); snd($sock_b, $port_a, rtp(0, 4006, 8960, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(96, 4006, 8320, $ssrc, "\x0a\x8a\x03\x20")); rcv($sock_a, $port_b, rtpm(96, 4007, 8320, $ssrc, "\x0a\x8a\x03\x20")); rcv($sock_a, $port_b, rtpm(96, 4008, 8320, $ssrc, "\x0a\x8a\x03\x20")); snd($sock_b, $port_a, rtp(0, 4007, 9120, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4009, 9120, $ssrc, "\x00" x 160)); # transcoding, RFC payload type present on both sides ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6110)], [qw(198.51.100.3 6112)]); ($port_a) = offer('transcoding, RFC payload type present on both sides', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'], codec => { transcode => ['PCMA'] }}, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => '0', volume => 10, duration => 100 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96 | 0x80, 1002, 3320, $ssrc, "\x00\x0a\x00\xa0")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1003, 3320, $ssrc, "\x00\x0a\x01\x40")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1004, 3320, $ssrc, "\x00\x0a\x01\xe0")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1005, 3320, $ssrc, "\x00\x0a\x02\x80")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1006, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1007, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1008, 3320, $ssrc, "\x00\x8a\x03\x20")); snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1009, 4120, $ssrc, "\x2a" x 160)); snd($sock_b, $port_a, rtp(8, 4000, 8000, 0x6543, "\x2a" x 160)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 8000, -1, "\x00" x 160)); snd($sock_b, $port_a, rtp(8, 4001, 8160, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4001, 8160, $ssrc, "\x00" x 160)); $resp = rtpe_req('play DTMF', 'inject DTMF towards A', { 'from-tag' => tt(), code => '#', volume => -10, duration => 100 }); snd($sock_b, $port_a, rtp(8, 4002, 8320, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(96 | 0x80, 4002, 8320, $ssrc, "\x0b\x0a\x00\xa0")); snd($sock_b, $port_a, rtp(8, 4003, 8480, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(96, 4003, 8320, $ssrc, "\x0b\x0a\x01\x40")); snd($sock_b, $port_a, rtp(8, 4004, 8640, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(96, 4004, 8320, $ssrc, "\x0b\x0a\x01\xe0")); snd($sock_b, $port_a, rtp(8, 4005, 8800, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(96, 4005, 8320, $ssrc, "\x0b\x0a\x02\x80")); snd($sock_b, $port_a, rtp(8, 4006, 8960, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(96, 4006, 8320, $ssrc, "\x0b\x8a\x03\x20")); rcv($sock_a, $port_b, rtpm(96, 4007, 8320, $ssrc, "\x0b\x8a\x03\x20")); rcv($sock_a, $port_b, rtpm(96, 4008, 8320, $ssrc, "\x0b\x8a\x03\x20")); snd($sock_b, $port_a, rtp(8, 4007, 9120, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4009, 9120, $ssrc, "\x00" x 160)); # no transcoding, no RFC payload type present ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6014)], [qw(198.51.100.3 6016)]); ($port_a) = offer('no transcoding, no RFC payload type present', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => 'C', volume => 5, duration => 120, pause => 110 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002, 3320, $ssrc, "\xff\x93\x94\xbc\x2e\x56\xbf\x2b\x13\x1b\xa7\x8e\x98\x47\x25\x41\xe2\x24\x16\x2b\x99\x8e\x9f\x28\x1e\x3d\x5b\x23\x1c\xdf\x92\x8f\xb6\x1c\x1c\x40\x5d\x26\x25\xaa\x8f\x95\x3b\x15\x1d\x5e\xde\x2c\x38\x9d\x8f\x9e\x1f\x11\x20\xc0\xc1\x37\xdd\x99\x92\xb7\x15\x10\x2c\xac\xb5\x49\xb8\x97\x99\x37\x0f\x13\x58\xa0\xae\x67\xae\x99\xa4\x1f\x0d\x1a\xae\x9b\xad\x7b\xad\x9d\xbf\x16\x0e\x27\x9d\x98\xb0\x55\xb1\xa6\x3a\x11\x11\x63\x95\x98\xbf\x3e\xbb\xb4\x26\x10\x1a\xa9\x90\x9a\x4e\x30\xce\xd4\x1e\x12\x29\x99\x8e\xa1\x2d\x29\x6d\x4b\x1c\x18\xef\x91\x8f\xb6\x1f\x24\x57\x3e\x1d\x20\xa9\x8e\x95\x3e\x19\x23\x67\x3e\x21\x31\x9c\x8e\x9e\x22\x14\x26\xcd\x4a")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3480, $ssrc, "\x2a\xdf\x96\x90\xb5\x17\x13\x2f\xb6\xf5\x36\xb1\x93\x96\x39\x10\x15\x55\xaa\xc8\x4c\xa7\x95\xa0\x1f\x0e\x1b\xb4\xa1\xbd\xed\xa4\x99\xbb\x15\x0e\x27\xa0\x9d\xbd\xda\xa4\x9f\x39\x10\x11\x58\x98\x9c\xc8\xf9\xa9\xac\x23\x0e\x19\xab\x92\x9e\x59\x4c\xb0\xca\x1b\x10\x27\x9a\x90\xa5\x35\x3a\xbe\x43\x18\x15\x6c\x92\x91\xb7\x26\x30\xd6\x32\x18\x1d\xa9\x8e\x96\x44\x1d\x2d\xfc\x2e\x1b\x2d\x9a\x8d\x9e\x25\x19\x2d\xe7\x2f\x20\xea\x94\x8f\xb3\x19\x17\x36\xc8\x36\x2c\xae\x90\x95\x3b\x12\x18\x55\xb7\x43\x3e\xa1\x91\x9e\x1f\x0f\x1d\xba\xac\x64\xe8\x9d\x95\xb7\x15\x0e\x29\xa6\xa6\xda\xc3\x9d\x9b\x39\x0f\x11\x51\x9c\xa2\xd8\xbe\x9f\xa7\x21\x0e\x18\xad")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1004, 3640, $ssrc, "\x96\xa3\x68\xc4\xa5\xc2\x19\x0e\x26\x9c\x93\xa9\x3f\xdb\xae\x3e\x14\x12\x5b\x93\x93\xb9\x2e\x51\xbe\x2c\x14\x1b\xa9\x8f\x97\x4c\x25\x3f\xde\x25\x16\x2a\x9a\x8e\x9e\x29\x1e\x3b\x5e\x24\x1b\x7b\x92\x8f\xb2\x1c\x1c\x3e\x61\x27\x25\xac\x8f\x94\x3e\x15\x1c\x59\xdb\x2d\x37\x9e\x8f\x9d\x20\x11\x1f\xc2\xbf\x38\xea\x99\x92\xb4\x16\x10\x2b\xad\xb4\x49\xba\x98\x98\x3a\x0f\x12\x4e\xa1\xad\x68\xaf\x99\xa3\x20\x0d\x19\xb0\x9b\xac\x7b\xae\x9d\xbc\x17\x0e\x25\x9e\x98\xaf\x55\xb2\xa6\x3d\x12\x11\x52\x96\x97\xbd\x3e\xbc\xb3\x28\x10\x19\xab\x90\x9a\x54\x2f\xd0\xcf\x1f\x12\x27\x9a\x8e\xa0\x2e\x28\x66\x4e\x1d\x18\x62\x92\x8f\xb2\x20\x23\x53\x3f\x1d\x1f")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1005, 3800, $ssrc, "\xab\x8e\x94\x44\x19\x22\x61\x40\x21\x2f\x9c\x8e\x9d\x23\x14\x25\xce\x4d\x2a\xf7\x96\x8f\xb1\x18\x13\x2e\xb7\xe8\x36\xb3\x94\x96\x3c\x10\x15\x4d\xaa\xc5\x4b\xa8\x95\x9f\x20\x0e\x1a\xb6\xa0\xbc\xf5\xa4\x99\xb8\x16\x0e\x26\xa1\x9d\xbb\xdd\xa5\x9f\x3c\x10\x10\x4c\x99\x9b\xc5\x78\xaa\xac\x24\x0f\x18\xac\x93\x9d\x5f\x4a\xb1\xc7\x1c\x0f\x25\x9b\x90\xa3\x36\x39\xbf\x47\x18\x14\x56\x92\x90\xb4\x27\x2f\xd7\x34\x18\x1c\xab\x8e\x95\x4b\x1d\x2c\xfe\x2f\x1b\x2c\x9b\x8d\x9d\x27\x19\x2c\xe7\x30\x20\x6d\x94\x8f\xaf\x1a\x17\x34\xc8\x37\x2b\xaf\x91\x94\x3f\x12\x18\x4e\xb6\x45\x3d\xa3\x91\x9e\x20\x0f\x1c\xbc\xab\x6c\xf5\x9e\x95\xb3\x16\x0e\x27\xa7\xa5")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1006, 3960, $ssrc, "\xd6\xc6\x9d\x9b\x3d\x0f\x11\x49\x9c\xa1\xd4\xbf\x9f\xa6\x22\x0e\x18\xaf\x96\xa2\x6e\xc6\xa5\xbe\x19\x0e\x24\x9d\x93\xa8\x40\xe1\xae\x42\x15\x12\x4e\x94\x93\xb7\x2e\x4e\xbe\x2d\x14\x1a\xab\x8f\x97\x52\x25\x3e\xdc\x26\x16\x28\x9b\x8e\x9e\x2b\x1e\x3a\x61\x25\x1b\x5d\x93\x8f\xaf\x1d\x1c\x3d\x67\x27\x24\xad\x8f\x93\x45\x15\x1c\x53\xd7\x2d\x35\x9f\x8f\x9c\x22\x11\x1f\xc5\xbe\x38\x7a\x9a\x91\xb0\x17\x10\x29\xad\xb3\x4a\xbc\x98\x98\x3e\x10\x12\x48\xa1\xad\x6a\xb1\x9a\xa1\x21\x0e\x18\xb3\x9b\xab\x7d\xaf\x9d\xb9\x18\x0e\x23\x9f\x97\xae\x55\xb4\xa5\x40\x12\x10\x49\x96\x97\xbb\x3d\xbd\xb2\x29\x10\x18\xac\x90\x99\x5d\x2f\xd4\xcd\x1f\x12\x25\x9b")); snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1007, 4120, $ssrc, "\x8e\x9f\x2f\x28\x5f\x51\x1d\x17\x52\x92\x8f\xaf\x20\x22\x50\x42\x1e\x1f\xad\x8e\x93\x4b\x19\x21\x5d\x42\x22\x2e\x9d\x8e\x9c\x25\x14\x24\xd0\x4f\x2a\x68\x97\x8f\xae\x18\x12\x2c\xb7\xdf\x36\xb6\x94\x95\x41\x11\x14\x48\xaa\xc3\x4a\xaa\x95\x9e\x21\x0e\x19\xb8\xa0\xba\xfe\xa5\x99\xb4\x17\x0e\x24\xa2\x9c\xba\xe0\xa6\x9e\x40\x10\x10\x45\x99\x9b\xc2\x6d\xaa\xab\x26\x0f\x17\xae\x93\x9c\x6a\x48\xb2\xc3\x1c\x0f\x23\x9c\x90\xa2\x37\x38\xbf\x4b\x19\x14\x4b\x93\x90\xb1\x27\x2e\xd8\x36\x19\x1c\xad\x8e\x94\x52\x1d\x2b\x7d\x30\x1b\x2a\x9c\x8d\x9c\x28\x19\x2b\xe7\x31\x20\x5a\x95\x8f\xad\x1a\x16\x32\xc8\x39\x2b\xb2\x91\x94\x46\x13\x17\x4a\xb6\x48\x3c")); # pause snd($sock_a, $port_b, rtp(0, 1008, 4280, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1008, 4280, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1009, 4440, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1009, 4440, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1010, 4600, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1010, 4600, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1011, 4760, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1011, 4760, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1012, 4920, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1012, 4920, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1013, 5080, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1013, 5080, $ssrc, "\xff" x 80 . "\x00" x 80)); snd($sock_b, $port_a, rtp(0, 4000, 8000, 0x6543, "\x00" x 160)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 8000, -1, "\x00" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 8160, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4001, 8160, $ssrc, "\x00" x 160)); $resp = rtpe_req('play DTMF', 'inject DTMF towards A', { 'from-tag' => tt(), code => '4', volume => 3, duration => 150, pause => 100 }); snd($sock_b, $port_a, rtp(0, 4002, 8320, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 8320, $ssrc, "\xff\x90\x8a\x93\xd9\x1b\x18\x27\x65\xe5\x33\x29\x4c\x9e\x8f\x91\xb8\x15\x09\x0d\x32\x98\x8e\x96\xbb\x2c\x2b\x4c\xd8\x34\x1c\x18\x2e\x9d\x8c\x8c\xa5\x1a\x0b\x0d\x27\xa3\x97\x9e\xbd\x4f\xc4\xaa\xb2\x2c\x12\x0e\x1e\xa1\x8b\x8a\x9c\x25\x0e\x10\x25\xb7\xa7\xb7\x5e\xcb\xa2\x98\x9f\x30\x0f\x0a\x16\xae\x8d\x8a\x98\x3a\x18\x19\x2c\xdd\xfd\x30\x2b\xce\x99\x8e\x95\x4c\x0f\x09\x10\xdf\x93\x8e\x9a\xec\x28\x2c\x56\xee\x2d\x1a\x1a\x48\x97\x8b\x8e\xba\x14\x0a\x0f\x39\x9d\x96\xa1\xcd\x4e\xbe\xab\xbe\x23\x10\x10\x2b\x99\x8a\x8c\xa7\x1b\x0d\x12\x2f\xad\xa7\xbc\x5e\xbd\x9f\x99\xa8\x23\x0d\x0b\x1d\x9f\x8b\x8c\x9f\x29\x16\x1b\x34\xcd\x60\x2f\x2f\xb6\x96")); snd($sock_b, $port_a, rtp(0, 4003, 8480, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4003, 8480, $ssrc, "\x8e\x9b\x2b\x0c\x09\x17\xae\x8f\x8e\x9e\x3f\x25\x2e\x65\x5c\x28\x1a\x1e\xc2\x92\x8a\x92\x44\x0f\x0a\x14\xd6\x99\x97\xa6\x7c\x4e\xba\xad\xe5\x1d\x0f\x13\x49\x92\x89\x8e\xbe\x15\x0d\x16\x43\xa8\xa7\xc1\x66\xb5\x9d\x9a\xb6\x1b\x0c\x0d\x2b\x98\x8a\x8d\xab\x1f\x15\x1d\x3f\xc7\x52\x2e\x39\xaa\x93\x8f\xa3\x1e\x0b\x0b\x1e\x9f\x8d\x8f\xa7\x30\x23\x31\x7c\x4a\x24\x1a\x24\xac\x8e\x8b\x99\x28\x0c\x0a\x1a\xb0\x96\x98\xac\x4f\x53\xb7\xaf\x44\x19\x0f\x18\xba\x8e\x89\x93\x3f\x10\x0d\x1a\xd5\xa3\xa8\xca\xf9\xae\x9c\x9d\xec\x16\x0b\x10\x4e\x91\x89\x90\xc6\x1a\x14\x20\x55\xc3\x4a\x2f\x49\xa2\x91\x92\xb2\x17\x09\x0c\x2d\x99\x8d\x92\xb3\x29\x23\x36\xf2")); snd($sock_b, $port_a, rtp(0, 4004, 8640, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4004, 8640, $ssrc, "\x3e\x20\x1b\x2d\xa0\x8d\x8c\xa1\x1c\x0a\x0c\x22\xa3\x94\x9a\xb5\x44\x5c\xb5\xb6\x32\x16\x0f\x1e\xa6\x8c\x8a\x99\x28\x0e\x0e\x20\xb7\xa1\xab\xd4\xdb\xaa\x9c\xa1\x38\x11\x0b\x15\xb5\x8d\x8a\x96\x3f\x16\x15\x26\xdd\xc2\x43\x31\xdf\x9d\x90\x96\x6d\x11\x09\x0f\x5a\x93\x8c\x97\xd2\x23\x23\x3b\xf6\x37\x1f\x1d\x40\x9a\x8c\x8e\xb2\x15\x09\x0e\x31\x9c\x93\x9c\xc2\x3e\x74\xb4\xbf\x29\x14\x11\x29\x9b\x8a\x8b\xa3\x1c\x0d\x0f\x2a\xab\x9f\xad\xe0\xcc\xa6\x9c\xa9\x28\x0e\x0c\x1c\xa2\x8b\x8b\x9c\x2a\x14\x17\x2c\xc6\xc4\x3e\x36\xbd\x99\x90\x9b\x30\x0d\x09\x15\xb3\x8f\x8d\x9b\x42\x1f\x25\x42\x70\x30\x1e\x1f\xcf\x95\x8b\x92\x58\x0f\x09\x12\x6f\x98\x93")); snd($sock_b, $port_a, rtp(0, 4005, 8800, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 8800, $ssrc, "\x9f\xe5\x3b\xe2\xb5\xd9\x21\x12\x14\x3e\x95\x89\x8d\xb6\x16\x0c\x13\x3a\xa4\x9f\xb1\xf1\xc0\xa3\x9d\xb4\x1e\x0d\x0d\x27\x99\x8a\x8c\xa7\x1f\x12\x19\x37\xbc\xc8\x3c\x3c\xaf\x97\x91\xa2\x21\x0b\x0a\x1c\xa2\x8d\x8e\xa2\x2f\x1e\x28\x4c\x5d\x2c\x1e\x25\xb0\x90\x8c\x98\x2c\x0c\x0a\x18\xb4\x94\x94\xa6\x4d\x3a\xd4\xb8\x4f\x1d\x11\x18\xc5\x8f\x89\x91\x4d\x10\x0c\x17\xec\x9f\xa0\xb8\xff\xba\xa1\x9f\xd3\x19\x0c\x0f\x3f\x92\x89\x8f\xbb\x19\x11\x1c\x48\xb8\xce\x3b\x4a\xa8\x95\x93\xaf\x19\x0a\x0c\x29\x99\x8c\x8f\xad\x27\x1d\x2b\x59\x4f\x29\x1e\x2d\xa5\x8e\x8d\x9f\x1e\x0b\x0b\x1e\xa4\x91\x96\xad\x3e\x3b\xcc\xbc\x3a\x1a\x12\x1e\xaa\x8d\x8a\x98\x2b")); snd($sock_b, $port_a, rtp(0, 4006, 8960, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4006, 8960, $ssrc, "\x0e\x0c\x1d\xb8\x9d\xa2\xbe\xf9\xb4\xa0\xa3\x3f\x14\x0c\x14\xbd\x8e\x89\x93\x49\x15\x12\x1f\xe7\xb5\xd9\x3c\x7c\xa1\x93\x97\xd5\x13\x09\x0e\x45\x93\x8b\x93\xc4\x20\x1d\x2e\x6b\x46\x26\x1f\x3d\x9d\x8d\x8e\xae\x17\x09\x0d\x2c\x9c\x90\x98\xba\x36\x3d\xc7\xc4\x2e\x17\x13\x27\x9e\x8b\x8b\x9f\x1e\x0c\x0e\x25\xaa\x9c\xa5\xc8\xe8\xae\xa0\xaa\x2d\x10\x0c\x1b\xa6\x8c\x8a\x9a\x2c\x12\x13\x27\xc3\xb3\xed\x3e\xc8\x9d\x93\x9b\x38\x0f\x09\x13\xba\x8f\x8b\x98\x4a\x1d\x1e\x34\xf9\x3e\x24\x23\xea\x98\x8c\x92\xdf\x10\x09\x0f\x4d\x97\x90\x9c\xd2\x31\x3f\xc5\xd6\x28\x16\x16\x39\x97\x8a\x8d\xaf\x17\x0b\x10\x32\xa2\x9b\xa8\xd6\xd9\xac\xa1\xb3\x22\x0e\x0e")); snd($sock_b, $port_a, rtp(0, 4007, 9120, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4007, 9120, $ssrc, "\x24\x9b\x8a\x8b\xa2\x1f\x10\x15\x2f\xb8\xb4\x68\x43\xb8\x9a\x94\xa1\x25\x0c\x0a\x1a\xa5\x8d\x8c\x9e\x30\x1b\x1f\x3c\xee\x38\x23\x28\xb8\x93\x8d\x97\x31\x0d\x09\x15\xb9\x93\x90\xa0\x4f\x2f\x46\xc4\x5e\x21\x15\x19\xd7\x91\x89\x90\x7b\x10\x0b\x14\x5b\x9d\x9c\xad\xed\xcd\xa9\xa3\xca\x1c\x0d\x10\x38\x94\x89\x8e\xb3\x19\x0f\x18\x3e\xb0\xb5\x59\x4d\xae\x98\x95\xad\x1c\x0b\x0c\x25\x9b\x8b\x8e\xa9\x26\x1a\x22\x46\xf5\x33\x23\x2e\xaa\x90\x8d\x9e\x21\x0b\x0a\x1c\xa6\x90\x92\xa8\x3b\x2e\x4d\xc7\x43\x1e\x15\x1e\xaf\x8e\x8a\x96\x2e\x0e\x0b\x1a\xbb\x9b\x9d\xb2\x68\xc5\xa8\xa7\x4c\x17\x0d\x14\xcb\x8f\x89\x91\x5e\x14\x0f\x1c\x6e\xad\xb8\x52\x68\xa8")); snd($sock_b, $port_a, rtp(0, 4008, 9280, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4008, 9280, $ssrc, "\x97\x98\xc7\x16\x0a\x0e\x3a\x94\x8a\x90\xbb\x1e\x1a\x27\x56\x6f\x2f\x25\x3b\xa0\x8e\x8f\xaa\x19\x09\x0c\x28\x9c\x8f\x95\xb2\x31\x2e\x59\xcc\x37\x1b\x16\x26\xa1\x8c\x8b\x9d\x1f\x0c\x0c\x20\xab\x99\x9e\xbb\x5d\xbe\xa7\xac\x32\x13\x0d\x1a\xab\x8c\x89\x97\x2e\x10\x10\x21\xc3\xab\xbc\x4f\xd4\xa2\x96\x9c\x3f\x10\x0a\x12\xc4\x8f\x8a\x95\x57\x1b\x1a\x2b\xfd\x5d\x2d\x27\x62\x9b\x8e\x92\xc9\x12\x09\x0e\x3f\x97\x8e\x98\xc6\x2c\x2f\x6b\xd9\x2e\x1a\x18\x34\x9a\x8b\x8d\xab\x18\x0a\x0e\x2d\xa1\x98\xa1\xc7\x5b\xb9\xa7\xb4\x27\x10\x0e\x22\x9d\x8a\x8b\x9f\x20\x0e\x12\x2a\xb4\xaa\xc0\x50\xc0\x9e\x97\xa1\x2a\x0e\x0a\x19\xa8\x8c\x8b\x9b\x31\x18\x1b\x31")); snd($sock_b, $port_a, rtp(0, 4009, 9440, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4009, 9440, $ssrc, "\xda\x50\x2c\x2b\xc0\x97\x8e\x97\x39\x0e\x09\x13\xbf\x92\x8e\x9c\x57\x29\x31\xef\x72\x28\x19\x1b\x6d\x94\x8a\x8f\xce\x11\x0a\x11\x48\x9c\x98\xa5\xdc\x5e\xb5\xa9\xc6\x1f\x0f\x10\x31\x96\x89\x8d\xad\x19\x0e\x15\x37\xac\xaa\xc8\x57\xb7\x9c\x98\xac\x1e\x0c\x0c\x21\x9c\x8b\x8d\xa4\x25\x17\x1d\x3b\xcf\x48\x2b\x30\xae\x93\x8e" . "\xff" x 80)); # pause snd($sock_b, $port_a, rtp(0, 4010, 9600, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4010, 9600, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(0, 4011, 9760, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4011, 9760, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(0, 4012, 9920, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4012, 9920, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(0, 4013, 10080, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4013, 10080, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(0, 4014, 10240, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4014, 10240, $ssrc, "\xff" x 80 . "\x00" x 80)); # transcoding, no RFC payload type present ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6018)], [qw(198.51.100.3 6020)]); ($port_a) = offer('transcoding, no RFC payload type present', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'], codec => { transcode => ['PCMA'] } }, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => 'C', volume => 5, duration => 120 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1002, 3320, $ssrc, "\xd5\xb9\xbe\x97\x05\x70\xea\x01\x3e\x31\x82\xa5\xb2\x63\x0f\x69\xc1\x0f\x3d\x06\xb3\xa4\x8a\x03\x35\x14\x75\x0e\x36\xcc\xb8\xa5\x9d\x36\x36\x68\x49\x0d\x0c\x81\xa5\xbf\x16\x3f\x37\x4f\xcf\x07\x13\xb4\xa5\xb4\x0a\x3b\x0b\xeb\xe9\x12\xc9\xb3\xb8\x92\x3c\x3a\x07\x87\x9c\x61\x93\xb2\xb3\x12\x25\x39\x76\x8b\x85\x5a\x85\xb3\x8e\x35\x24\x30\x85\xb1\x87\x57\x84\xb7\xeb\x3c\x24\x0d\xb4\xb2\x9b\x70\x98\x8c\x11\x3b\x38\x41\xbf\xb2\xeb\x15\x96\x9f\x0d\x3a\x30\x83\xba\xb1\x7b\x1b\xfa\xf2\x34\x39\x03\xb0\xa5\x88\x04\x03\x5f\x67\x37\x32\xdd\xb8\xba\x9d\x35\x0e\x71\x15\x37\x0a\x80\xa4\xbf\x15\x33\x09\x45\x15\x0b\x18\xb6\xa4\xb4\x08\x3f\x0d\xe5\x66")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1003, 3480, $ssrc, "\x00\xcd\xbc\xba\x9c\x3d\x39\x1a\x9d\xd1\x1d\x98\xbe\xbd\x10\x3a\x3f\x73\x80\xe0\x64\x82\xbf\x8b\x35\x24\x31\x9f\x8b\x94\xdf\x8e\xb3\x96\x3c\x24\x02\x8b\xb7\x94\xf4\x8f\xb5\x10\x3a\x3b\x76\xb2\xb6\xe0\xd6\x80\x87\x09\x25\x33\x81\xb9\xb4\x74\x64\x9b\xe6\x31\x3a\x0d\xb1\xba\x8f\x1c\x11\x95\x6f\x32\x3f\x5e\xb8\xbb\x92\x0d\x1a\xf0\x19\x32\x37\x83\xa4\xbc\x6d\x37\x07\xd4\x04\x31\x07\xb1\xa4\xb4\x0c\x33\x04\xc5\x05\x0b\xd8\xbe\xa5\x9e\x30\x3d\x1d\xe0\x1d\x06\x84\xbb\xbf\x16\x38\x33\x73\x92\x6f\x15\x88\xbb\xb5\x35\x25\x37\x91\x86\x46\xda\xb7\xbf\x92\x3c\x25\x03\x8d\x8c\xf4\xef\xb7\xb6\x10\x25\x3b\x7f\xb6\x89\xf6\x95\xb5\x82\x0b\x24\x33\x84")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1004, 3640, $ssrc, "\xbd\x8e\x5a\xec\x8c\xee\x33\x24\x0c\xb6\xbe\x80\x6b\xf5\x85\x6a\x3f\x39\x4a\xbe\xbe\x90\x05\x7f\x95\x06\x3e\x31\x80\xa5\xbd\x64\x0f\x6b\xcc\x0c\x3d\x00\xb0\xa4\xb5\x00\x34\x16\x4e\x0e\x36\x57\xb9\xa5\x99\x36\x36\x6a\x43\x0d\x0f\x86\xa5\xbe\x15\x3f\x36\x77\xf5\x07\x12\xb4\xa5\xb4\x0b\x3b\x0a\xee\xeb\x13\xd8\xb0\xb8\x9f\x3c\x3a\x01\x87\x9f\x66\x91\xb2\xb3\x11\x25\x39\x7a\x8b\x84\x5b\x9a\xb0\x89\x0a\x24\x33\x9b\xb1\x87\x54\x85\xb7\x97\x3d\x24\x0c\xb4\xb2\x9a\x73\x99\x8c\x14\x38\x3b\x7c\xbc\xbd\x94\x15\x97\x9e\x02\x3a\x33\x81\xba\xb0\x73\x1a\xfe\xf9\x35\x39\x02\xb1\xa4\x8a\x05\x03\x44\x7a\x37\x32\x40\xb8\xa5\x99\x0a\x0e\x72\x6b\x34\x35")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1005, 3800, $ssrc, "\x81\xa4\xbe\x6c\x33\x08\x43\x68\x08\x1a\xb7\xa4\xb7\x0e\x3f\x0c\xfb\x65\x00\xd1\xbd\xba\x98\x32\x39\x04\x92\xdb\x1d\x9e\xbe\xbc\x17\x3a\x3f\x65\x80\xed\x67\x83\xbf\xb5\x0a\x24\x30\x9d\x8b\x97\xd0\x8f\xb3\x93\x3c\x24\x0c\x88\xb7\x96\xc9\x8c\xb5\x17\x3a\x3a\x64\xb3\xb6\xed\x56\x80\x86\x0f\x25\x32\x87\xb9\xb7\x4d\x66\x98\xe3\x36\x3a\x0c\xb1\xba\x8e\x1d\x10\xea\x63\x33\x3f\x70\xb9\xbb\x9f\x0d\x05\xf1\x1f\x33\x36\x81\xa4\xbf\x67\x34\x06\xd5\x05\x31\x06\xb6\xa4\xb7\x0d\x33\x07\xc5\x1a\x0a\x5f\xbe\xa5\x9a\x30\x3d\x1f\xe0\x12\x06\x9a\xbb\xbf\x6b\x39\x32\x7b\x9d\x62\x14\x89\xbb\xb4\x0b\x25\x36\x97\x86\x5e\xd1\xb4\xbf\x9e\x3c\x24\x0d\x82\x8c")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1006, 3960, $ssrc, "\xf0\xe2\xb7\xb1\x14\x3a\x3b\x61\xb6\x88\xf3\xeb\xb5\x8d\x09\x24\x32\x85\xbd\x89\x5c\xe2\x8c\x95\x30\x24\x0e\xb7\xb9\x83\x68\xc3\x85\x6e\x3f\x38\x7a\xbe\xb9\x92\x05\x7a\x95\x07\x3e\x30\x86\xa5\xbd\x7c\x0f\x15\xcb\x0d\x3d\x03\xb1\xa4\xb4\x01\x34\x11\x40\x0f\x36\x48\xb9\xa5\x85\x37\x36\x14\x45\x02\x0f\x84\xa5\xbe\x6d\x3c\x36\x7d\xf1\x04\x1c\xb5\xa5\xb7\x09\x3b\x35\xed\xea\x13\x57\xb0\xb8\x9b\x3d\x3a\x00\x84\x9e\x66\x97\xb2\xb2\x15\x3a\x38\x60\x8b\x87\x58\x98\xb0\x88\x08\x24\x32\x9e\xb1\x86\x54\x9a\xb7\x90\x32\x24\x0e\xb5\xb2\x84\x73\x9f\x8c\x68\x38\x3b\x61\xbc\xbd\x96\x14\x94\x99\x03\x3b\x32\x87\xba\xb3\x48\x1a\xf2\xe5\x0a\x39\x0c\xb1")); snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1007, 4120, $ssrc, "\xa4\xb5\x1a\x02\x4c\x7f\x37\x32\x7c\xb9\xa5\x9a\x0a\x09\x7e\x6e\x34\x35\x87\xa5\xbe\x67\x33\x0b\x48\x6e\x08\x05\xb7\xa4\xb6\x0f\x3f\x0e\xfe\x79\x00\x5a\xbd\xa5\x85\x32\x39\x07\x92\xcd\x1d\x9d\xbe\xbc\x69\x3b\x3e\x60\x80\xef\x66\x80\xbf\xb5\x08\x24\x30\x90\x8b\x91\xd5\x8c\xb3\x9f\x3d\x24\x0e\x89\xb7\x91\xc2\x8c\xb5\x68\x3b\x3a\x6d\xb3\xb1\xee\x5c\x81\x81\x0c\x25\x3d\x85\xb9\xb7\x58\x60\x99\xef\x37\x3a\x0e\xb6\xba\x89\x12\x13\xeb\x67\x33\x3e\x67\xb9\xba\x98\x02\x05\xf7\x1d\x33\x36\x87\xa4\xbe\x7c\x34\x01\x54\x1a\x31\x01\xb6\xa4\xb6\x03\x33\x06\xda\x18\x0a\x75\xbf\xa5\x84\x31\x3d\x19\xe0\x10\x01\x99\xbb\xbe\x62\x39\x3d\x66\x9d\x60\x17")); # pause snd($sock_a, $port_b, rtp(0, 1008, 4280, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1008, 4280, $ssrc, "\xd5" x 160)); snd($sock_a, $port_b, rtp(0, 1009, 4440, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1009, 4440, $ssrc, "\xd5" x 160)); snd($sock_a, $port_b, rtp(0, 1010, 4600, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1010, 4600, $ssrc, "\xd5" x 160)); snd($sock_a, $port_b, rtp(0, 1011, 4760, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1011, 4760, $ssrc, "\xd5" x 160)); snd($sock_a, $port_b, rtp(0, 1012, 4920, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1012, 4920, $ssrc, "\xd5" x 160)); snd($sock_a, $port_b, rtp(0, 1013, 5080, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(8, 1013, 5080, $ssrc, "\x2a" x 160)); snd($sock_b, $port_a, rtp(8, 4000, 8000, 0x6543, "\x2a" x 160)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 8000, -1, "\x00" x 160)); snd($sock_b, $port_a, rtp(8, 4001, 8160, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4001, 8160, $ssrc, "\x00" x 160)); $resp = rtpe_req('play DTMF', 'inject DTMF towards A', { 'from-tag' => tt(), code => '4', volume => 3, duration => 150 }); snd($sock_b, $port_a, rtp(8, 4002, 8320, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 8320, $ssrc, "\xff\x90\x8a\x93\xd9\x1b\x18\x27\x65\xe5\x33\x29\x4c\x9e\x8f\x91\xb8\x15\x09\x0d\x32\x98\x8e\x96\xbb\x2c\x2b\x4c\xd8\x34\x1c\x18\x2e\x9d\x8c\x8c\xa5\x1a\x0b\x0d\x27\xa3\x97\x9e\xbd\x4f\xc4\xaa\xb2\x2c\x12\x0e\x1e\xa1\x8b\x8a\x9c\x25\x0e\x10\x25\xb7\xa7\xb7\x5e\xcb\xa2\x98\x9f\x30\x0f\x0a\x16\xae\x8d\x8a\x98\x3a\x18\x19\x2c\xdd\xfd\x30\x2b\xce\x99\x8e\x95\x4c\x0f\x09\x10\xdf\x93\x8e\x9a\xec\x28\x2c\x56\xee\x2d\x1a\x1a\x48\x97\x8b\x8e\xba\x14\x0a\x0f\x39\x9d\x96\xa1\xcd\x4e\xbe\xab\xbe\x23\x10\x10\x2b\x99\x8a\x8c\xa7\x1b\x0d\x12\x2f\xad\xa7\xbc\x5e\xbd\x9f\x99\xa8\x23\x0d\x0b\x1d\x9f\x8b\x8c\x9f\x29\x16\x1b\x34\xcd\x60\x2f\x2f\xb6\x96")); snd($sock_b, $port_a, rtp(8, 4003, 8480, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4003, 8480, $ssrc, "\x8e\x9b\x2b\x0c\x09\x17\xae\x8f\x8e\x9e\x3f\x25\x2e\x65\x5c\x28\x1a\x1e\xc2\x92\x8a\x92\x44\x0f\x0a\x14\xd6\x99\x97\xa6\x7c\x4e\xba\xad\xe5\x1d\x0f\x13\x49\x92\x89\x8e\xbe\x15\x0d\x16\x43\xa8\xa7\xc1\x66\xb5\x9d\x9a\xb6\x1b\x0c\x0d\x2b\x98\x8a\x8d\xab\x1f\x15\x1d\x3f\xc7\x52\x2e\x39\xaa\x93\x8f\xa3\x1e\x0b\x0b\x1e\x9f\x8d\x8f\xa7\x30\x23\x31\x7c\x4a\x24\x1a\x24\xac\x8e\x8b\x99\x28\x0c\x0a\x1a\xb0\x96\x98\xac\x4f\x53\xb7\xaf\x44\x19\x0f\x18\xba\x8e\x89\x93\x3f\x10\x0d\x1a\xd5\xa3\xa8\xca\xf9\xae\x9c\x9d\xec\x16\x0b\x10\x4e\x91\x89\x90\xc6\x1a\x14\x20\x55\xc3\x4a\x2f\x49\xa2\x91\x92\xb2\x17\x09\x0c\x2d\x99\x8d\x92\xb3\x29\x23\x36\xf2")); snd($sock_b, $port_a, rtp(8, 4004, 8640, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4004, 8640, $ssrc, "\x3e\x20\x1b\x2d\xa0\x8d\x8c\xa1\x1c\x0a\x0c\x22\xa3\x94\x9a\xb5\x44\x5c\xb5\xb6\x32\x16\x0f\x1e\xa6\x8c\x8a\x99\x28\x0e\x0e\x20\xb7\xa1\xab\xd4\xdb\xaa\x9c\xa1\x38\x11\x0b\x15\xb5\x8d\x8a\x96\x3f\x16\x15\x26\xdd\xc2\x43\x31\xdf\x9d\x90\x96\x6d\x11\x09\x0f\x5a\x93\x8c\x97\xd2\x23\x23\x3b\xf6\x37\x1f\x1d\x40\x9a\x8c\x8e\xb2\x15\x09\x0e\x31\x9c\x93\x9c\xc2\x3e\x74\xb4\xbf\x29\x14\x11\x29\x9b\x8a\x8b\xa3\x1c\x0d\x0f\x2a\xab\x9f\xad\xe0\xcc\xa6\x9c\xa9\x28\x0e\x0c\x1c\xa2\x8b\x8b\x9c\x2a\x14\x17\x2c\xc6\xc4\x3e\x36\xbd\x99\x90\x9b\x30\x0d\x09\x15\xb3\x8f\x8d\x9b\x42\x1f\x25\x42\x70\x30\x1e\x1f\xcf\x95\x8b\x92\x58\x0f\x09\x12\x6f\x98\x93")); snd($sock_b, $port_a, rtp(8, 4005, 8800, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 8800, $ssrc, "\x9f\xe5\x3b\xe2\xb5\xd9\x21\x12\x14\x3e\x95\x89\x8d\xb6\x16\x0c\x13\x3a\xa4\x9f\xb1\xf1\xc0\xa3\x9d\xb4\x1e\x0d\x0d\x27\x99\x8a\x8c\xa7\x1f\x12\x19\x37\xbc\xc8\x3c\x3c\xaf\x97\x91\xa2\x21\x0b\x0a\x1c\xa2\x8d\x8e\xa2\x2f\x1e\x28\x4c\x5d\x2c\x1e\x25\xb0\x90\x8c\x98\x2c\x0c\x0a\x18\xb4\x94\x94\xa6\x4d\x3a\xd4\xb8\x4f\x1d\x11\x18\xc5\x8f\x89\x91\x4d\x10\x0c\x17\xec\x9f\xa0\xb8\xff\xba\xa1\x9f\xd3\x19\x0c\x0f\x3f\x92\x89\x8f\xbb\x19\x11\x1c\x48\xb8\xce\x3b\x4a\xa8\x95\x93\xaf\x19\x0a\x0c\x29\x99\x8c\x8f\xad\x27\x1d\x2b\x59\x4f\x29\x1e\x2d\xa5\x8e\x8d\x9f\x1e\x0b\x0b\x1e\xa4\x91\x96\xad\x3e\x3b\xcc\xbc\x3a\x1a\x12\x1e\xaa\x8d\x8a\x98\x2b")); snd($sock_b, $port_a, rtp(8, 4006, 8960, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4006, 8960, $ssrc, "\x0e\x0c\x1d\xb8\x9d\xa2\xbe\xf9\xb4\xa0\xa3\x3f\x14\x0c\x14\xbd\x8e\x89\x93\x49\x15\x12\x1f\xe7\xb5\xd9\x3c\x7c\xa1\x93\x97\xd5\x13\x09\x0e\x45\x93\x8b\x93\xc4\x20\x1d\x2e\x6b\x46\x26\x1f\x3d\x9d\x8d\x8e\xae\x17\x09\x0d\x2c\x9c\x90\x98\xba\x36\x3d\xc7\xc4\x2e\x17\x13\x27\x9e\x8b\x8b\x9f\x1e\x0c\x0e\x25\xaa\x9c\xa5\xc8\xe8\xae\xa0\xaa\x2d\x10\x0c\x1b\xa6\x8c\x8a\x9a\x2c\x12\x13\x27\xc3\xb3\xed\x3e\xc8\x9d\x93\x9b\x38\x0f\x09\x13\xba\x8f\x8b\x98\x4a\x1d\x1e\x34\xf9\x3e\x24\x23\xea\x98\x8c\x92\xdf\x10\x09\x0f\x4d\x97\x90\x9c\xd2\x31\x3f\xc5\xd6\x28\x16\x16\x39\x97\x8a\x8d\xaf\x17\x0b\x10\x32\xa2\x9b\xa8\xd6\xd9\xac\xa1\xb3\x22\x0e\x0e")); snd($sock_b, $port_a, rtp(8, 4007, 9120, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4007, 9120, $ssrc, "\x24\x9b\x8a\x8b\xa2\x1f\x10\x15\x2f\xb8\xb4\x68\x43\xb8\x9a\x94\xa1\x25\x0c\x0a\x1a\xa5\x8d\x8c\x9e\x30\x1b\x1f\x3c\xee\x38\x23\x28\xb8\x93\x8d\x97\x31\x0d\x09\x15\xb9\x93\x90\xa0\x4f\x2f\x46\xc4\x5e\x21\x15\x19\xd7\x91\x89\x90\x7b\x10\x0b\x14\x5b\x9d\x9c\xad\xed\xcd\xa9\xa3\xca\x1c\x0d\x10\x38\x94\x89\x8e\xb3\x19\x0f\x18\x3e\xb0\xb5\x59\x4d\xae\x98\x95\xad\x1c\x0b\x0c\x25\x9b\x8b\x8e\xa9\x26\x1a\x22\x46\xf5\x33\x23\x2e\xaa\x90\x8d\x9e\x21\x0b\x0a\x1c\xa6\x90\x92\xa8\x3b\x2e\x4d\xc7\x43\x1e\x15\x1e\xaf\x8e\x8a\x96\x2e\x0e\x0b\x1a\xbb\x9b\x9d\xb2\x68\xc5\xa8\xa7\x4c\x17\x0d\x14\xcb\x8f\x89\x91\x5e\x14\x0f\x1c\x6e\xad\xb8\x52\x68\xa8")); snd($sock_b, $port_a, rtp(8, 4008, 9280, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4008, 9280, $ssrc, "\x97\x98\xc7\x16\x0a\x0e\x3a\x94\x8a\x90\xbb\x1e\x1a\x27\x56\x6f\x2f\x25\x3b\xa0\x8e\x8f\xaa\x19\x09\x0c\x28\x9c\x8f\x95\xb2\x31\x2e\x59\xcc\x37\x1b\x16\x26\xa1\x8c\x8b\x9d\x1f\x0c\x0c\x20\xab\x99\x9e\xbb\x5d\xbe\xa7\xac\x32\x13\x0d\x1a\xab\x8c\x89\x97\x2e\x10\x10\x21\xc3\xab\xbc\x4f\xd4\xa2\x96\x9c\x3f\x10\x0a\x12\xc4\x8f\x8a\x95\x57\x1b\x1a\x2b\xfd\x5d\x2d\x27\x62\x9b\x8e\x92\xc9\x12\x09\x0e\x3f\x97\x8e\x98\xc6\x2c\x2f\x6b\xd9\x2e\x1a\x18\x34\x9a\x8b\x8d\xab\x18\x0a\x0e\x2d\xa1\x98\xa1\xc7\x5b\xb9\xa7\xb4\x27\x10\x0e\x22\x9d\x8a\x8b\x9f\x20\x0e\x12\x2a\xb4\xaa\xc0\x50\xc0\x9e\x97\xa1\x2a\x0e\x0a\x19\xa8\x8c\x8b\x9b\x31\x18\x1b\x31")); snd($sock_b, $port_a, rtp(8, 4009, 9440, 0x6543, "\x2a" x 160)); rcv($sock_a, $port_b, rtpm(0, 4009, 9440, $ssrc, "\xda\x50\x2c\x2b\xc0\x97\x8e\x97\x39\x0e\x09\x13\xbf\x92\x8e\x9c\x57\x29\x31\xef\x72\x28\x19\x1b\x6d\x94\x8a\x8f\xce\x11\x0a\x11\x48\x9c\x98\xa5\xdc\x5e\xb5\xa9\xc6\x1f\x0f\x10\x31\x96\x89\x8d\xad\x19\x0e\x15\x37\xac\xaa\xc8\x57\xb7\x9c\x98\xac\x1e\x0c\x0c\x21\x9c\x8b\x8d\xa4\x25\x17\x1d\x3b\xcf\x48\x2b\x30\xae\x93\x8e" . "\xff" x 80)); # pause snd($sock_b, $port_a, rtp(8, 4010, 9600, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4010, 9600, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(8, 4011, 9760, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4011, 9760, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(8, 4012, 9920, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4012, 9920, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(8, 4013, 10080, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4013, 10080, $ssrc, "\xff" x 160)); snd($sock_b, $port_a, rtp(8, 4014, 10240, 0x6543, "\x00" x 160)); rcv($sock_a, $port_b, rtpm(0, 4014, 10240, $ssrc, "\xff" x 80 . "\x29" x 80)); # multiple consecutive DTMF events ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6024)], [qw(198.51.100.3 6026)]); ($port_a) = offer('multiple consecutive DTMF events', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => 'C', volume => 5, duration => 100 }); $resp = rtpe_req('play DTMF', 'inject DTMF towards B', { 'from-tag' => ft(), code => '4', volume => 5, duration => 100 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002, 3320, $ssrc, "\xff\x93\x94\xbc\x2e\x56\xbf\x2b\x13\x1b\xa7\x8e\x98\x47\x25\x41\xe2\x24\x16\x2b\x99\x8e\x9f\x28\x1e\x3d\x5b\x23\x1c\xdf\x92\x8f\xb6\x1c\x1c\x40\x5d\x26\x25\xaa\x8f\x95\x3b\x15\x1d\x5e\xde\x2c\x38\x9d\x8f\x9e\x1f\x11\x20\xc0\xc1\x37\xdd\x99\x92\xb7\x15\x10\x2c\xac\xb5\x49\xb8\x97\x99\x37\x0f\x13\x58\xa0\xae\x67\xae\x99\xa4\x1f\x0d\x1a\xae\x9b\xad\x7b\xad\x9d\xbf\x16\x0e\x27\x9d\x98\xb0\x55\xb1\xa6\x3a\x11\x11\x63\x95\x98\xbf\x3e\xbb\xb4\x26\x10\x1a\xa9\x90\x9a\x4e\x30\xce\xd4\x1e\x12\x29\x99\x8e\xa1\x2d\x29\x6d\x4b\x1c\x18\xef\x91\x8f\xb6\x1f\x24\x57\x3e\x1d\x20\xa9\x8e\x95\x3e\x19\x23\x67\x3e\x21\x31\x9c\x8e\x9e\x22\x14\x26\xcd\x4a")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3480, $ssrc, "\x2a\xdf\x96\x90\xb5\x17\x13\x2f\xb6\xf5\x36\xb1\x93\x96\x39\x10\x15\x55\xaa\xc8\x4c\xa7\x95\xa0\x1f\x0e\x1b\xb4\xa1\xbd\xed\xa4\x99\xbb\x15\x0e\x27\xa0\x9d\xbd\xda\xa4\x9f\x39\x10\x11\x58\x98\x9c\xc8\xf9\xa9\xac\x23\x0e\x19\xab\x92\x9e\x59\x4c\xb0\xca\x1b\x10\x27\x9a\x90\xa5\x35\x3a\xbe\x43\x18\x15\x6c\x92\x91\xb7\x26\x30\xd6\x32\x18\x1d\xa9\x8e\x96\x44\x1d\x2d\xfc\x2e\x1b\x2d\x9a\x8d\x9e\x25\x19\x2d\xe7\x2f\x20\xea\x94\x8f\xb3\x19\x17\x36\xc8\x36\x2c\xae\x90\x95\x3b\x12\x18\x55\xb7\x43\x3e\xa1\x91\x9e\x1f\x0f\x1d\xba\xac\x64\xe8\x9d\x95\xb7\x15\x0e\x29\xa6\xa6\xda\xc3\x9d\x9b\x39\x0f\x11\x51\x9c\xa2\xd8\xbe\x9f\xa7\x21\x0e\x18\xad")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1004, 3640, $ssrc, "\x96\xa3\x68\xc4\xa5\xc2\x19\x0e\x26\x9c\x93\xa9\x3f\xdb\xae\x3e\x14\x12\x5b\x93\x93\xb9\x2e\x51\xbe\x2c\x14\x1b\xa9\x8f\x97\x4c\x25\x3f\xde\x25\x16\x2a\x9a\x8e\x9e\x29\x1e\x3b\x5e\x24\x1b\x7b\x92\x8f\xb2\x1c\x1c\x3e\x61\x27\x25\xac\x8f\x94\x3e\x15\x1c\x59\xdb\x2d\x37\x9e\x8f\x9d\x20\x11\x1f\xc2\xbf\x38\xea\x99\x92\xb4\x16\x10\x2b\xad\xb4\x49\xba\x98\x98\x3a\x0f\x12\x4e\xa1\xad\x68\xaf\x99\xa3\x20\x0d\x19\xb0\x9b\xac\x7b\xae\x9d\xbc\x17\x0e\x25\x9e\x98\xaf\x55\xb2\xa6\x3d\x12\x11\x52\x96\x97\xbd\x3e\xbc\xb3\x28\x10\x19\xab\x90\x9a\x54\x2f\xd0\xcf\x1f\x12\x27\x9a\x8e\xa0\x2e\x28\x66\x4e\x1d\x18\x62\x92\x8f\xb2\x20\x23\x53\x3f\x1d\x1f")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1005, 3800, $ssrc, "\xab\x8e\x94\x44\x19\x22\x61\x40\x21\x2f\x9c\x8e\x9d\x23\x14\x25\xce\x4d\x2a\xf7\x96\x8f\xb1\x18\x13\x2e\xb7\xe8\x36\xb3\x94\x96\x3c\x10\x15\x4d\xaa\xc5\x4b\xa8\x95\x9f\x20\x0e\x1a\xb6\xa0\xbc\xf5\xa4\x99\xb8\x16\x0e\x26\xa1\x9d\xbb\xdd\xa5\x9f\x3c\x10\x10\x4c\x99\x9b\xc5\x78\xaa\xac\x24\x0f\x18\xac\x93\x9d\x5f\x4a\xb1\xc7\x1c\x0f\x25\x9b\x90\xa3\x36\x39\xbf\x47\x18\x14\x56\x92\x90\xb4\x27\x2f\xd7\x34\x18\x1c\xab\x8e\x95\x4b\x1d\x2c\xfe\x2f\x1b\x2c\x9b\x8d\x9d\x27\x19\x2c\xe7\x30\x20\x6d\x94\x8f\xaf\x1a\x17\x34\xc8\x37\x2b\xaf\x91\x94\x3f\x12\x18\x4e\xb6\x45\x3d\xa3\x91\x9e\x20\x0f\x1c\xbc\xab\x6c\xf5\x9e\x95\xb3\x16\x0e\x27\xa7\xa5")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1006, 3960, $ssrc, "\xd6\xc6\x9d\x9b\x3d\x0f\x11\x49\x9c\xa1\xd4\xbf\x9f\xa6\x22\x0e\x18\xaf\x96\xa2\x6e\xc6\xa5\xbe\x19\x0e\x24\x9d\x93\xa8\x40\xe1\xae\x42\x15\x12\x4e\x94\x93\xb7\x2e\x4e\xbe\x2d\x14\x1a\xab\x8f\x97\x52\x25\x3e\xdc\x26\x16\x28\x9b\x8e\x9e\x2b\x1e\x3a\x61\x25\x1b\x5d\x93\x8f\xaf\x1d\x1c\x3d\x67\x27\x24\xad\x8f\x93\x45\x15\x1c\x53\xd7\x2d\x35\x9f\x8f\x9c\x22\x11\x1f\xc5\xbe\x38\x7a\x9a\x91\xb0\x17\x10\x29\xad\xb3\x4a\xbc\x98\x98\x3e\x10\x12\x48\xa1\xad\x6a\xb1\x9a\xa1\x21\x0e\x18\xb3\x9b\xab\x7d\xaf\x9d\xb9\x18\x0e\x23\x9f\x97\xae\x55\xb4\xa5\x40\x12\x10\x49\x96\x97\xbb\x3d\xbd\xb2\x29\x10\x18\xac\x90\x99\x5d\x2f\xd4\xcd\x1f\x12\x25\x9b")); # pause snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1007, 4120, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1008, 4280, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1008, 4280, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1009, 4440, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1009, 4440, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1010, 4600, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1010, 4600, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1011, 4760, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1011, 4760, $ssrc, "\xff" x 160)); # next event snd($sock_a, $port_b, rtp(0, 1012, 4920, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1012, 4920, $ssrc, "\xff\x96\x8e\x99\xdd\x1f\x1d\x2c\x69\xe9\x39\x2d\x50\xa3\x95\x97\xbd\x1a\x0e\x12\x38\x9d\x93\x9b\xbf\x30\x2f\x4f\xdc\x39\x20\x1d\x33\xa2\x90\x91\xaa\x1f\x0f\x12\x2c\xa9\x9c\xa3\xc2\x55\xc9\xaf\xb8\x30\x18\x14\x24\xa7\x8f\x8e\xa0\x2a\x14\x16\x2a\xbc\xac\xbc\x61\xcf\xa8\x9d\xa6\x36\x15\x0f\x1b\xb4\x92\x8f\x9d\x3e\x1d\x1e\x31\xe0\xfe\x36\x30\xd3\x9e\x94\x9b\x50\x15\x0d\x17\xe3\x99\x93\x9e\xee\x2c\x30\x5b\xf0\x32\x1f\x1f\x4c\x9c\x8f\x94\xbe\x19\x0e\x15\x3d\xa2\x9b\xa7\xd2\x52\xc3\xaf\xc4\x29\x16\x16\x2f\x9e\x8e\x90\xac\x20\x13\x18\x34\xb2\xac\xc0\x61\xc2\xa5\x9d\xad\x29\x12\x10\x23\xa5\x8f\x90\xa5\x2d\x1b\x1f\x39\xd1\x65\x34\x36\xbb\x9b")); snd($sock_a, $port_b, rtp(0, 1013, 5080, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1013, 5080, $ssrc, "\x94\x9f\x2f\x11\x0e\x1c\xb3\x95\x94\xa4\x45\x2a\x33\x69\x60\x2d\x1e\x23\xc7\x98\x8f\x98\x49\x15\x0e\x1a\xda\x9d\x9c\xab\x7d\x53\xbe\xb1\xe8\x22\x15\x19\x4d\x98\x8d\x94\xc3\x1b\x12\x1b\x48\xac\xac\xc7\x69\xba\xa2\x9f\xbb\x1f\x10\x12\x2f\x9c\x8e\x93\xb0\x25\x1a\x22\x44\xcb\x57\x34\x3d\xae\x99\x96\xa9\x23\x0f\x0f\x24\xa6\x93\x96\xac\x36\x29\x37\x7c\x4e\x29\x1e\x29\xb0\x94\x8f\x9e\x2d\x11\x0f\x1f\xb6\x9b\x9d\xb0\x55\x58\xbc\xb5\x49\x1e\x15\x1d\xbe\x94\x8e\x99\x45\x17\x12\x1f\xd9\xa9\xad\xce\xfa\xb3\xa0\xa2\xef\x1b\x0f\x16\x52\x97\x8e\x96\xcb\x1e\x1a\x26\x59\xc8\x4e\x35\x4d\xa8\x97\x98\xb8\x1c\x0e\x11\x31\x9d\x91\x98\xb9\x2d\x29\x3b\xf5")); snd($sock_a, $port_b, rtp(0, 1014, 5240, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1014, 5240, $ssrc, "\x43\x27\x1f\x32\xa6\x92\x91\xa7\x21\x0f\x10\x28\xa9\x99\x9e\xba\x49\x60\xba\xbb\x38\x1b\x16\x23\xab\x90\x8e\x9e\x2d\x14\x13\x26\xbc\xa7\xaf\xd8\xde\xae\xa0\xa7\x3d\x17\x0f\x1a\xba\x93\x8e\x9b\x44\x1b\x1b\x2b\xe0\xc8\x48\x37\xe4\xa2\x96\x9b\x6f\x17\x0e\x15\x5d\x99\x91\x9c\xd7\x29\x29\x3f\xf8\x3c\x24\x21\x46\x9e\x90\x94\xb8\x1a\x0e\x14\x37\xa1\x99\xa1\xc8\x43\x76\xba\xc5\x2d\x19\x17\x2d\xa0\x8f\x8f\xa8\x21\x11\x16\x2e\xaf\xa6\xb2\xe5\xcf\xab\xa0\xad\x2d\x14\x10\x20\xa8\x90\x8f\xa1\x2e\x19\x1c\x31\xcb\xc9\x44\x3b\xc2\x9e\x96\x9f\x36\x13\x0e\x1a\xb8\x95\x92\xa0\x48\x26\x2a\x48\x73\x36\x23\x25\xd4\x9a\x90\x98\x5c\x15\x0e\x18\x72\x9c\x99")); snd($sock_a, $port_b, rtp(0, 1015, 5400, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1015, 5400, $ssrc, "\xa6\xe8\x3f\xe7\xba\xdd\x27\x18\x1a\x43\x9a\x8e\x93\xbb\x1b\x10\x19\x3e\xaa\xa5\xb7\xf4\xc6\xa9\xa2\xba\x23\x12\x12\x2c\x9e\x8e\x91\xac\x25\x18\x1e\x3c\xc1\xcd\x41\x40\xb5\x9c\x97\xa8\x27\x10\x0f\x21\xa8\x92\x93\xa8\x35\x24\x2c\x50\x61\x30\x23\x2b\xb7\x97\x90\x9d\x31\x11\x0e\x1c\xb9\x9a\x9a\xab\x52\x3f\xd9\xbc\x54\x22\x18\x1d\xca\x96\x8e\x97\x52\x17\x10\x1c\xef\xa5\xa6\xbc\xff\xbe\xa7\xa5\xd8\x1d\x10\x16\x45\x98\x8e\x95\xbf\x1e\x17\x20\x4d\xbc\xd2\x3f\x4e\xad\x9a\x99\xb4\x1e\x0e\x10\x2d\x9e\x90\x96\xb2\x2c\x22\x2f\x5c\x54\x2d\x24\x32\xaa\x94\x91\xa5\x24\x0f\x0f\x24\xaa\x98\x9b\xb2\x43\x3f\xcf\xc0\x3e\x1e\x18\x23\xaf\x92\x8e\x9c\x2f")); snd($sock_a, $port_b, rtp(0, 1016, 5560, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1016, 5560, $ssrc, "\x13\x11\x21\xbd\xa2\xa8\xc3\xfa\xb9\xa6\xa9\x45\x19\x10\x1a\xc2\x94\x8e\x99\x4e\x1a\x18\x26\xeb\xba\xdd\x40\x7d\xa7\x99\x9c\xda\x19\x0e\x14\x4a\x99\x90\x99\xc9\x26\x23\x34\x6d\x4b\x2b\x25\x41\xa1\x92\x94\xb3\x1c\x0e\x12\x30\xa0\x96\x9d\xbe\x3b\x41\xcc\xc9\x34\x1c\x19\x2c\xa3\x8f\x8f\xa5\x23\x10\x13\x2a\xaf\xa0\xaa\xcd\xeb\xb4\xa6\xae\x31\x16\x11\x1f\xab\x90\x8e\x9e\x30\x18\x19\x2c\xc8\xb9\xf0\x43\xcc\xa2\x99\x9f\x3c\x14\x0e\x19\xbe\x95\x90\x9d\x4e\x22\x24\x3a\xfa\x43\x2a\x28\xec\x9d\x91\x98\xe4\x16\x0d\x16\x51\x9c\x96\xa0\xd7\x37\x45\xca\xda\x2c\x1b\x1b\x3d\x9c\x8e\x92\xb4\x1c\x0f\x16\x38\xa8\xa0\xad\xda\xdd\xb0\xa7\xb9\x28\x14\x13")); # pause snd($sock_a, $port_b, rtp(0, 1017, 5720, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1017, 5720, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1018, 5880, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1018, 5880, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1019, 6040, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1019, 6040, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1020, 6200, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1020, 6200, $ssrc, "\xff" x 160)); snd($sock_a, $port_b, rtp(0, 1021, 6360, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1021, 6360, $ssrc, "\xff" x 160)); # resume snd($sock_a, $port_b, rtp(0, 1022, 6520, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1022, 6520, $ssrc, "\x00" x 160)); # RFC payload type present ($sock_a, $sock_b) = new_call([qw(198.51.100.1 6210)], [qw(198.51.100.3 6212)]); ($port_a) = offer('multi- no transcoding, RFC payload type present', { ICE => 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < 'remove', replace => ['origin'], flags => ['inject DTMF'] }, < ft(), code => '0', volume => 10, duration => 100 }); $resp = rtpe_req('play DTMF', 'inject DTMF towards B', { 'from-tag' => ft(), code => '1', volume => 6, duration => 100 }); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96 | 0x80, 1002, 3320, $ssrc, "\x00\x0a\x00\xa0")); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1003, 3320, $ssrc, "\x00\x0a\x01\x40")); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1004, 3320, $ssrc, "\x00\x0a\x01\xe0")); snd($sock_a, $port_b, rtp(0, 1005, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1005, 3320, $ssrc, "\x00\x0a\x02\x80")); snd($sock_a, $port_b, rtp(0, 1006, 3960, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1006, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1007, 3320, $ssrc, "\x00\x8a\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1008, 3320, $ssrc, "\x00\x8a\x03\x20")); snd($sock_a, $port_b, rtp(0, 1007, 4120, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1009, 4120, $ssrc, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 1008, 4280, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1010, 4280, $ssrc, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 1009, 4440, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1011, 4440, $ssrc, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 1010, 4600, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1012, 4600, $ssrc, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 1011, 4760, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1013, 4760, $ssrc, "\x00" x 160)); snd($sock_a, $port_b, rtp(0, 1012, 4920, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96 | 0x80, 1014, 4920, $ssrc, "\x01\x06\x00\xa0")); snd($sock_a, $port_b, rtp(0, 1013, 5080, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1015, 4920, $ssrc, "\x01\x06\x01\x40")); snd($sock_a, $port_b, rtp(0, 1014, 5240, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1016, 4920, $ssrc, "\x01\x06\x01\xe0")); snd($sock_a, $port_b, rtp(0, 1015, 5400, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1017, 4920, $ssrc, "\x01\x06\x02\x80")); snd($sock_a, $port_b, rtp(0, 1016, 5560, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(96, 1018, 4920, $ssrc, "\x01\x86\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1019, 4920, $ssrc, "\x01\x86\x03\x20")); rcv($sock_b, $port_a, rtpm(96, 1020, 4920, $ssrc, "\x01\x86\x03\x20")); snd($sock_a, $port_b, rtp(0, 1017, 5720, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1021, 5720, $ssrc, "\x00" x 160)); # extmap stripping new_call; offer('strip extmap control', { }, < ['strip extmap'] }, < 'remove' }, < 'remove' }, < 'default' }, < 'default' }, < 'optional' }, < 'remove' }, < 'remove' }, < 'optional' }, < '3.4.5.6', flags => ['full-rtcp-attribute'], ICE => 'optional', }, < 'optional' }, < 'optional' }, < 'force', flags => ['trickle ICE'] }, < 'force' }, < 'optional' }, < 'force' }, < 'optional' }, < 'force' }, < 'force' }, < 'default' }, < 'default' }, < 'default' }, < 'force' }, < 'force' }, < 'remove' }, < 'remove', DTLS => 'off' }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'no-F8_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'no-AES_CM_128_HMAC_SHA1_32' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'no-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/AVP' }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/AVP', SDES => [ 'no-AES_CM_128_HMAC_SHA1_32' ] }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/AVP', SDES => [ 'no-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/SAVP' }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/SAVP', SDES => [ 'no-F8_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', 'transport protocol' => 'RTP/SAVP', SDES => [ 'no-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_CM_128_HMAC_SHA1_80', 'no-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_CM_128_HMAC_SHA1_80', 'no-AES_CM_128_HMAC_SHA1_32' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew', 'only-AES_CM_128_HMAC_SHA1_80', 'no-AES_CM_128_HMAC_SHA1_32' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_32;AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_32;AES_CM_128_HMAC_SHA1_80;F8_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_32;AES_CM_128_HMAC_SHA1_80;F8_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew', 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_32;AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'no-AES_CM_128_HMAC_SHA1_32', 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_256_CM_HMAC_SHA1_32', 'order:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80;AES_CM_128_HMAC_SHA1_32;AES_CM_128_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ] }, < 'remove' }, < RTP', { ICE => 'remove', SDES => [ 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ], 'transport-protocol' => 'RTP/AVP' }, < RTP', { ICE => 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'offerer_pref:AES_256_CM_HMAC_SHA1_32' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew', 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'only-AES_256_CM_HMAC_SHA1_80', 'offerer_pref:AES_256_CM_HMAC_SHA1_32;AES_256_CM_HMAC_SHA1_80' ] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { remove => ['test'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { none => { remove => ['test'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { remove => ['test2'] }, none => { remove => ['test1'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { add => ['test1'] }, none => { add => ['test2'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { add => ['test1', 'test2'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { add => ['test1'], remove => ['test2'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { none => { remove => ['test1', 'test2'] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => { substitute => [['test1', 'test2']] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { none => { substitute => [['test1', 'test2']] } }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], 'sdp-attr' => { audio => [ substitute => [['test1', 'test2'] , ['test5', 'test6']] ] }}, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-test'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-none-test'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-test2', 'sdp-attr-remove-none-test1'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-add-audio-test1', 'sdp-attr-add-none-test2'], }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-add-audio-test1', 'sdp-attr-add-audio-test2'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-add-audio-test1', 'sdp-attr-remove-audio-test2'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-none-test1', 'sdp-attr-remove-none-test2'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-substitute-audio-test1>test2'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-substitute-none-test1>test2'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-substitute-audio-test1>test2', 'sdp-attr-substitute-audio-test5>test6'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-substitute-audio-fmtp:101..0-16>fmtp:101..0-15,32,36'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-substitute-audio-fmtp:101>fmtp:101..0-15,32,36'] }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-fmtp:101..0-16'] }, < 'remove' }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-fmtp:101'] }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-fmtp', 'sdp-attr-remove-audio-rtpmap'] }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-audio-sendrecv', 'sdp-attr-remove-audio-rtcp', 'sdp-attr-remove-audio-ptime'] }, < 'remove', DTLS => 'off', SDES => [ 'nonew' ], flags => ['sdp-attr-remove-global-something', 'sdp-attr-remove-global-rather', 'sdp-attr-remove-global-or'] }, < 'remove', replace => [qw(origin)], flags => [qw(codec-mask-opus codec-mask-G722 codec-strip-G7221)] }, < 'remove', replace => [qw(origin)] }, < 'remove', replace => [qw(origin)], flags => [qw(codec-mask-opus codec-mask-G722 codec-strip-G7221 always-transcode)] }, < 'remove', replace => [qw(origin)] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'] }}, < ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA'] }}, < ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['pcma'] }}, < ['origin'] }, < 'remove', replace => ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2020)], [qw(198.51.100.3 2022)]); offer('media playback, side A', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2100)], [qw(198.51.100.3 2102)]); offer('media playback, side A, repeat', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < ft(), blob => $wav_file, 'repeat-times' => 2 }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); rcv($sock_a, -1, rtpm(8, $seq + 5, $ts + 160 * 5, $ssrc, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 6, $ts + 160 * 6, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 7, $ts + 160 * 7, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 8, $ts + 160 * 8, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 9, $ts + 160 * 9, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2030)], [qw(198.51.100.3 2032)]); offer('media playback, side B', { ICE => 'remove', replace => ['origin'] }, < ['origin'] }, < tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); $resp = rtpe_req('play media', 'restart media playback', { 'from-tag' => tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; $ts += 160 * 5; my $old_ts = $ts; (undef, $ts) = rcv($sock_b, -1, rtpm(8 | 0x80, $seq + 5, -1, $ssrc, $pcma_1)); print("ts $ts old $old_ts\n"); SKIP: { skip 'random timestamp too close to margin', 2 if $old_ts < 500 or $old_ts > 4294966795; cmp_ok($ts, '<', $old_ts + 500, 'ts within < range'); cmp_ok($ts, '>', $old_ts - 500, 'ts within > range'); } rcv($sock_b, -1, rtpm(8, $seq + 6, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 7, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 8, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 9, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.9 2020)], [qw(198.51.100.9 2022)]); offer('media playback, side A, select by label', { ICE => 'remove', replace => ['origin'], label => 'foobar' }, < ['origin'], label => 'blah' }, < 'foobar', blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.9 2030)], [qw(198.51.100.9 2032)]); offer('media playback, side B, select by label', { ICE => 'remove', replace => ['origin'], label => 'quux' }, < ['origin'], label => 'meh' }, < 'meh', blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 2050)], [qw(198.51.100.3 2052)]); offer('media playback, SRTP', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < ['origin'] }, < ft(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; my $srtp_ctx = { cs => $NGCP::Rtpclient::SRTP::crypto_suites{AES_CM_128_HMAC_SHA1_80}, key => 'DVM+BTeYX2UI1LaA9bgXrcBEDBxoItA9/39fSoRF', }; (undef, $seq, $ts, $ssrc) = srtp_rcv($sock_a, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4), $srtp_ctx); srtp_rcv($sock_a, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5), $srtp_ctx); # ptime tests ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3000)], [qw(198.51.100.3 3002)]); ($port_a) = offer('default ptime in/out', { ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], ptime => 30 }, < 'remove', replace => ['origin'] }, <B: 5x 20 ms packets -> 3x 30 ms snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160)); Time::HiRes::usleep(20000); # 20 ms, needed to ensure that packet 1000 is received first snd($sock_a, $port_b, rtp(0, 1001, 3160, 0x1234, "\x00" x 160)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1002, 3320, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1003, 3480, 0x1234, "\x00" x 160)); Time::HiRes::usleep(1000); snd($sock_a, $port_b, rtp(0, 1004, 3640, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: 60 ms packet -> 2x 30 ms # also perform TS and seq reset snd($sock_a, $port_b, rtp(0, 8000, 500000, 0x1234, "\x00" x 480)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1004, 3960, $ssrc, "\x00" x 240)); # B->A: 2x 60 ms packet -> 6x 20 ms snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 480)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4001, 5160, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 5320, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 5480, 0x4567, "\x88" x 480)); rcv($sock_a, $port_b, rtpm(0, 4003, 5480, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4004, 5640, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 5800, $ssrc, "\x88" x 160)); # B->A: 4x 10 ms packet -> 2x 20 ms snd($sock_b, $port_a, rtp(0, 4002, 5960, 0x4567, "\x88" x 80)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4003, 6040, 0x4567, "\x88" x 80)); rcv($sock_a, $port_b, rtpm(0, 4006, 5960, $ssrc, "\x88" x 160)); # out of order packet input snd($sock_b, $port_a, rtp(0, 4005, 6200, 0x4567, "\x88" x 80)); Time::HiRes::usleep(10000); snd($sock_b, $port_a, rtp(0, 4004, 6120, 0x4567, "\x88" x 80)); rcv($sock_a, $port_b, rtpm(0, 4007, 6120, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4006, 6280, 0x4567, "\x88" x 80)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4007, 6360, 0x4567, "\x88" x 80)); rcv($sock_a, $port_b, rtpm(0, 4008, 6280, $ssrc, "\x88" x 160)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3008)], [qw(198.51.100.3 3010)]); ($port_a) = offer('default ptime in, no change, ptime=30 response', { ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, <B: 20 ms unchanged snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 160)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 160)); # A->B: 30 ms unchanged snd($sock_a, $port_b, rtp(0, 1001, 3160, 0x1234, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1001, 3160, $ssrc, "\x00" x 240)); # B->A: 20 ms unchanged snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 160)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 160)); # B->A: 30 ms unchanged snd($sock_b, $port_a, rtp(0, 4001, 5160, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5160, $ssrc, "\x88" x 240)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3012)], [qw(198.51.100.3 3014)]); ($port_a) = offer('ptime=50 in, change to 30, default response', { ICE => 'remove', replace => ['origin'], ptime => 30 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 2x 50 ms (plus 20 ms left) snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); Time::HiRes::usleep(20000); # 20 ms, needed to ensure that packet 1000 is received first snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 400)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5400, $ssrc, "\x88" x 400)); # B->A: add another 30 ms for another full 50 ms snd($sock_b, $port_a, rtp(0, 4004, 5960, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4002, 5800, $ssrc, "\x88" x 400)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3016)], [qw(198.51.100.3 3018)]); ($port_a) = offer('ptime=50 in, change to 30, reverse to 50, response 30', { ICE => 'remove', replace => ['origin'], ptime => 30, 'ptime-reverse' => 50 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 2x 50 ms (plus 20 ms left) snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); Time::HiRes::usleep(20000); # 20 ms, needed to ensure that packet 1000 is received first snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 400)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5400, $ssrc, "\x88" x 400)); # B->A: add another 30 ms for another full 50 ms snd($sock_b, $port_a, rtp(0, 4004, 5960, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4002, 5800, $ssrc, "\x88" x 400)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3012)], [qw(198.51.100.3 3014)]); ($port_a) = offer('ptime=50 in, change to 30, response 30', { ICE => 'remove', replace => ['origin'], ptime => 30 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 2x 50 ms (plus 20 ms left) snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); Time::HiRes::usleep(20000); # 20 ms, needed to ensure that packet 1000 is received first snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 400)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5400, $ssrc, "\x88" x 400)); # B->A: add another 30 ms for another full 50 ms snd($sock_b, $port_a, rtp(0, 4004, 5960, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4002, 5800, $ssrc, "\x88" x 400)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3016)], [qw(198.51.100.3 3018)]); ($port_a) = offer('ptime=50 in, change to 30, reverse to 50, default response', { ICE => 'remove', replace => ['origin'], ptime => 30, 'ptime-reverse' => 50 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 2x 50 ms (plus 20 ms left) snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); Time::HiRes::usleep(20000); # 20 ms, needed to ensure that packet 1000 is received first snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 400)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); Time::HiRes::usleep(1000); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5400, $ssrc, "\x88" x 400)); # B->A: add another 30 ms for another full 50 ms snd($sock_b, $port_a, rtp(0, 4004, 5960, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4002, 5800, $ssrc, "\x88" x 400)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3016)], [qw(198.51.100.3 3018)]); ($port_a) = offer('ptime=50 in, change to 30, reverse to 20, default response', { ICE => 'remove', replace => ['origin'], ptime => 30, 'ptime-reverse' => 20 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 6x 20 ms snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5160, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 5320, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4003, 5480, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4004, 5640, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 5800, $ssrc, "\x88" x 160)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3016)], [qw(198.51.100.3 3018)]); ($port_a) = offer('ptime=50 in, change to 30, reverse to 20, response 40', { ICE => 'remove', replace => ['origin'], ptime => 30, 'ptime-reverse' => 20 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 6x 20 ms snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5160, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 5320, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4003, 5480, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4004, 5640, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 5800, $ssrc, "\x88" x 160)); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3016)], [qw(198.51.100.3 3018)]); ($port_a) = offer('ptime=30 in, no change, reverse to 20, response 40', { ICE => 'remove', replace => ['origin'], 'ptime-reverse' => 20 }, < 'remove', replace => ['origin'] }, <B: 2x 50 ms -> 3x 30 ms (plus 10 ms left) snd($sock_a, $port_b, rtp(0, 1000, 3000, 0x1234, "\x00" x 400)); ($ssrc) = rcv($sock_b, $port_a, rtpm(0, 1000, 3000, -1, "\x00" x 240)); snd($sock_a, $port_b, rtp(0, 1001, 3400, 0x1234, "\x00" x 400)); rcv($sock_b, $port_a, rtpm(0, 1001, 3240, $ssrc, "\x00" x 240)); rcv($sock_b, $port_a, rtpm(0, 1002, 3480, $ssrc, "\x00" x 240)); # A->B: add another 20 ms for another full 30 ms snd($sock_a, $port_b, rtp(0, 1002, 3800, 0x1234, "\x00" x 160)); rcv($sock_b, $port_a, rtpm(0, 1003, 3720, $ssrc, "\x00" x 240)); # B->A: 4x 30 ms -> 6x 20 ms snd($sock_b, $port_a, rtp(0, 4000, 5000, 0x4567, "\x88" x 240)); ($ssrc) = rcv($sock_a, $port_b, rtpm(0, 4000, 5000, -1, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4001, 5240, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4001, 5160, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4002, 5320, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4002, 5480, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4003, 5480, $ssrc, "\x88" x 160)); snd($sock_b, $port_a, rtp(0, 4003, 5720, 0x4567, "\x88" x 240)); rcv($sock_a, $port_b, rtpm(0, 4004, 5640, $ssrc, "\x88" x 160)); rcv($sock_a, $port_b, rtpm(0, 4005, 5800, $ssrc, "\x88" x 160)); # gh #730 ($sock_a, $sock_b) = new_call([qw(198.51.100.1 7300)], [qw(198.51.100.3 7302)]); ($port_a) = offer('gh 730', { ICE => 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'] }, < 'remove', replace => ['origin'], flags => [ "loop-protect", "asymmetric" ] }, < 'remove', replace => ['origin'], flags => [ "loop-protect", "asymmetric" ] }, < tt(), ICE => 'remove', replace => ['origin'], flags => [ "loop-protect", "asymmetric" ] }, < 'remove', replace => ['origin'], flags => [ "loop-protect", "asymmetric" ] }, < 'remove', replace => ['origin'], codec => { transcode => ['telephone-event'] }}, < ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA', 'telephone-event'] }}, < ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['telephone-event'] } }, < 'remove', replace => ['origin'], codec => { transcode => ['opus'] } }, < 'remove', replace => ['origin'], codec => { strip => ['PCMA'] } }, < 'remove', replace => ['origin'], codec => { transcode => ['opus'], mask => ['PCMA'] } }, < 'remove', replace => ['origin'], codec => { strip => [qw/PCMU RED CN G729/]} }, < 'remove', replace => ['origin'], flags => ['always transcode'] }, < ['origin'] }, < 'remove', replace => ['origin'], flags => ['always transcode'] }, < ['origin'] }, < 'remove', replace => ['origin'], codec => { transcode => ['PCMA', 'telephone-event/8000'] }, flags => ['always transcode'] }, < ['origin'] }, < 'remove', replace => ['origin'], flags => ['strict-source'], ptime => 20, 'ptime-reverse' => 60, 'rtcp-mux' => ['demux'], }, < 'remove', 'via-branch' => 'x123', 'rtcp-mux' => ['demux'] }, < 'remove', 'via-branch' => 'x456', 'rtcp-mux' => ['offer'] }, < 'remove', 'via-branch' => 'x123' }, < 'remove', 'via-branch' => 'x123', 'rtcp-mux' => ['demux'] }, < 'remove', 'via-branch' => 'x456', 'rtcp-mux' => ['offer'] }, < 'remove', 'via-branch' => 'x456' }, < 'remove', replace => ['origin'], 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx', flags => ['strict-source', 'record-call'], 'transport-protocol' => 'RTP/AVP' }, < ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < ft() }); # new to-tag new_tt(); offer('media playback after delete', { ICE => 'remove', replace => ['origin'], 'transport-protocol' => 'transparent', flags => ['strict-source', 'record-call'], 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < ['origin'], 'transport-protocol' => 'RTP/AVP', 'rtcp-mux' => ['demux'], 'via-branch' => 'xxxx' }, < tt(), 'to-tag' => tt(), blob => $wav_file }); is $resp->{duration}, 100, 'media duration'; (undef, $seq, $ts, $ssrc) = rcv($sock_b, -1, rtpm(8 | 0x80, -1, -1, -1, $pcma_1)); rcv($sock_b, -1, rtpm(8, $seq + 1, $ts + 160 * 1, $ssrc, $pcma_2)); rcv($sock_b, -1, rtpm(8, $seq + 2, $ts + 160 * 2, $ssrc, $pcma_3)); rcv($sock_b, -1, rtpm(8, $seq + 3, $ts + 160 * 3, $ssrc, $pcma_4)); rcv($sock_b, -1, rtpm(8, $seq + 4, $ts + 160 * 4, $ssrc, $pcma_5)); # GH 1042 $resp = rtpe_req('statistics', 'statistics'); # SDP version tests new_call; offer('SDP version simple increments', { replace => ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['SDP version'] }, < ['username'] }, < 'remove' }, < ['username'] }, < 'remove' }, < ['username'] }, < 'remove' }, < ['SDP version', 'origin', 'username', 'session-name'] }, < ['SDP version', 'origin', 'username', 'session-name'] }, < ['SDP version', 'origin', 'username', 'session-name'] }, < ['origin-full'] }, < ['origin-full'] }, < ['origin-full'] }, <last_out_sdp', but the version still gets increased offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, <last_out_sdp' and it's equal to the newly given SDP, # but the version still gets increased offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, <last_out_sdp' and it's not equal to the newly given SDP, # and the version gets increased, as if that would be increased with 'sdp-version'. offer('SDP version force increase', { replace => ['force-increment-sdp-ver'] }, < 'off' }, < 'off' }, < 'remove', "transport-protocol" => "RTP/AVP"}, < { strip => ['PCMA'] } }, < 'RTP/AVP' }, < 'RTP/AVP' }, < 'RTP/AVP' }, < ['WebRTC'] }, <len > 0) g_string_append(dtmf_logs, "\n"); g_string_append_len(dtmf_logs, s->str, s->len); } #endif rtpengine-mr12.5.1.22/t/log_funcs.h000066400000000000000000000010571474347554000167670ustar00rootroot00000000000000#ifndef _LOG_FUNCS_H_ #define _LOG_FUNCS_H_ #include "helpers.h" #include "str.h" #include "types.h" struct ice_agent; struct call_media; INLINE void log_info_reset(void) { } INLINE void log_info_pop(void) { } INLINE void log_info_pop_until(void *p) { } INLINE void log_info_call(call_t *c) { } INLINE void log_info_stream_fd(stream_fd *sfd) { } INLINE void log_info_str(const str *s) { } INLINE void log_info_c_string(const char *s) { } INLINE void log_info_ice_agent(struct ice_agent *ag) { } INLINE void log_info_media(struct call_media *m) { } #endif rtpengine-mr12.5.1.22/t/loglevels.h000066400000000000000000000011001474347554000167710ustar00rootroot00000000000000ll(core, "Everything that isn't part of another subsystem") ll(spandsp, "Log messages generated by SpanDSP directly") ll(ffmpeg, "Log messages generated by ffmpeg directly") ll(transcoding, "Media and RTP transcoding") ll(codec, "Codec negotiation") ll(rtcp, "RTCP handling") ll(ice, "ICE negotiation") ll(crypto, "Negotiation of SRTP, crypto suites, DTLS, SDES") ll(srtp, "SRTP encryption and decryption") ll(internals, "Noisy low-level internals") ll(http, "HTTP, HTTPS, Websockets") ll(control, "Control protocols including SDP exchanges, CLI") ll(dtx, "DTX timer/buffer") rtpengine-mr12.5.1.22/t/pcm_rtp_test.pl000077500000000000000000000026351474347554000177050ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IPC::Open3; use IO::Socket; use IO::Socket::IP; my $laddr = shift or die; my $lport = shift or die; my $raddr = shift or die; my $rport = shift or die; my $sock = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', LocalHost => $laddr, LocalPort => $lport, PeerHost => $raddr, PeerPort => $rport, ) or die; my ($src, $sink); my $pid = open3($sink, $src, '>&STDERR', @ARGV) or die; my ($playsrc, $playsink); open($playsrc, '|-', qw(play -q -c 1 -e a-law -r 8000 -t raw -)) or die; open($playsink, '|-', qw(play -q -c 1 -e a-law -r 8000 -t raw -)) or die; my $lseq = rand(65536); my $lssrc = rand(65536); my $lts = rand(2*32); my $lpt = 8; # PCMA my $lmark = 0x80; my $rseq = -1; my $rts = -1; while (1) { my $buf; last unless sysread($src, $buf = '', 160); syswrite($playsrc, $buf); my $rtp = pack('CCnNN a*', 0x80, $lpt | $lmark, $lseq, $lts, $lssrc, $buf); last unless $sock->syswrite($rtp) or last; $lseq++; $lts += 160; $lmark = 0x00; last unless $sock->sysread($buf = '', 0xffff); my ($ver, $rpt, $seq, $ts, $rssrc, $payload) = unpack('CCnNN a*', $buf); die unless length($payload) == 160; die unless ($rpt & 0x7f) == $lpt; die unless ($rseq == -1 || (($rseq + 1) & 0xffff) == $seq); die unless ($rts == -1 || (($rts + 160) & 0xffffffff) == $ts); syswrite($playsink, $payload); $rseq = $seq; $rts = $ts; last unless syswrite($sink, $payload); } rtpengine-mr12.5.1.22/t/spandsp_fax_pcm_test.pl000077500000000000000000000012261474347554000214010ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IPC::Open2; use POSIX ":sys_wait_h"; my ($send_src, $send_sink); my $send_pid = open2($send_src, $send_sink, './spandsp_send_fax_pcm test.tif') or die; unlink('out.tif'); my ($recv_src, $recv_sink); my $recv_pid = open2($recv_src, $recv_sink, './spandsp_recv_fax_pcm out.tif') or die; while ($send_pid && $recv_pid) { my $buf; if (sysread($send_src, $buf = '', 160)) { syswrite($recv_sink, $buf) or die; } if (sysread($recv_src, $buf = '', 160)) { syswrite($send_sink, $buf) or die; } undef($send_pid) if waitpid($send_pid, WNOHANG); undef($recv_pid) if waitpid($recv_pid, WNOHANG); } sleep(5); rtpengine-mr12.5.1.22/t/spandsp_fax_t38_test.pl000077500000000000000000000015601474347554000212410ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IPC::Open2; use POSIX ":sys_wait_h"; my ($send_src, $send_sink); my $send_pid = open2($send_src, $send_sink, './spandsp_send_fax_t38 test.tif') or die; unlink('out.tif'); my ($recv_src, $recv_sink); my $recv_pid = open2($recv_src, $recv_sink, './spandsp_recv_fax_t38 out.tif') or die; while ($send_pid && $recv_pid) { my ($buf, $rin); $rin = ''; vec($rin, fileno($send_src), 1) = 1; while (select(my $rout = $rin, undef, undef, 0.02) == 1) { sysread($send_src, $buf = '', 1); syswrite($recv_sink, $buf) or last; } $rin = ''; vec($rin, fileno($recv_src), 1) = 1; while (select(my $rout = $rin, undef, undef, 0.02) == 1) { sysread($recv_src, $buf = '', 1); syswrite($send_sink, $buf) or last; } undef($send_pid) if waitpid($send_pid, WNOHANG); undef($recv_pid) if waitpid($recv_pid, WNOHANG); } sleep(5); rtpengine-mr12.5.1.22/t/spandsp_recv_fax_pcm.c000066400000000000000000000101151474347554000211620ustar00rootroot00000000000000#undef NDEBUG #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "spandsp_logging.h" #define SAMPLES_PER_CHUNK 160 #define MICROSECONDS_PER_CHUNK 20000 #ifndef FALSE # define FALSE false #endif // from ITU G.191 void alaw_compress (size_t lseg, int16_t *linbuf, uint8_t *logbuf) { short ix, iexp; long n; for (n = 0; n < lseg; n++) { ix = linbuf[n] < 0 /* 0 <= ix < 2048 */ ? (~linbuf[n]) >> 4 /* 1's complement for negative values */ : (linbuf[n]) >> 4; /* Do more, if exponent > 0 */ if (ix > 15) { /* exponent=0 for ix <= 15 */ iexp = 1; /* first step: */ while (ix > 16 + 15) { /* find mantissa and exponent */ ix >>= 1; iexp++; } ix -= 16; /* second step: remove leading '1' */ ix += iexp << 4; /* now compute encoded value */ } if (linbuf[n] >= 0) ix |= (0x0080); /* add sign bit */ logbuf[n] = ix ^ (0x0055); /* toggle even bits */ } } void alaw_expand (size_t lseg, uint8_t *logbuf, int16_t *linbuf) { short ix, mant, iexp; long n; for (n = 0; n < lseg; n++) { ix = logbuf[n] ^ (0x0055); /* re-toggle toggled bits */ ix &= (0x007F); /* remove sign bit */ iexp = ix >> 4; /* extract exponent */ mant = ix & (0x000F); /* now get mantissa */ if (iexp > 0) mant = mant + 16; /* add leading '1', if exponent > 0 */ mant = (mant << 4) + (0x0008); /* now mantissa left justified and */ /* 1/2 quantization step added */ if (iexp > 1) /* now left shift according exponent */ mant = mant << (iexp - 1); linbuf[n] = logbuf[n] > 127 /* invert, if negative sample */ ? mant : -mant; } } int done = 0; static void phase_e_handler(PHASE_E_HANDLER_ARGS) { fprintf(stderr, "recv: phase E result %i\n", result); assert(result == T30_ERR_OK); done = 1; } int main(int argc, char **argv) { assert(argc == 2); const char *output_file_name = argv[1]; fax_state_t *fax = fax_init(NULL, FALSE); assert(fax != NULL); int use_transmit_on_idle = 1; int use_tep = 0; int supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17; int use_ecm = 0; // taken from t38_gateway_tests.c t30_state_t *t30 = fax_get_t30_state(fax); fax_set_transmit_on_idle(fax, use_transmit_on_idle); fax_set_tep_mode(fax, use_tep); t30_set_supported_modems(t30, supported_modems); t30_set_tx_ident(t30, "11111111"); t30_set_tx_nsf(t30, (const uint8_t *) "\x50\x00\x00\x00Spandsp\x00", 12); t30_set_rx_file(t30, output_file_name, -1); t30_set_phase_e_handler(t30, phase_e_handler, NULL); t30_set_ecm_capability(t30, use_ecm); // if (use_ecm) // t30_set_supported_compressions(t30, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION); t30_set_minimum_scan_line_time(t30, 40); struct timeval now, next; setbuf(stdout, NULL); gettimeofday(&now, NULL); while (!done) { next = now; next.tv_usec += MICROSECONDS_PER_CHUNK; while (next.tv_usec >= 1000000) { next.tv_usec -= 1000000; next.tv_sec++; } int16_t samples[SAMPLES_PER_CHUNK]; int ret = fax_tx(fax, samples, SAMPLES_PER_CHUNK); assert(ret == SAMPLES_PER_CHUNK); uint8_t alaw[SAMPLES_PER_CHUNK]; alaw_compress(SAMPLES_PER_CHUNK, samples, alaw); ret = fwrite(alaw, SAMPLES_PER_CHUNK, 1, stdout); assert(ret == 1); ret = fread(alaw, SAMPLES_PER_CHUNK, 1, stdin); assert(ret == 1); alaw_expand(SAMPLES_PER_CHUNK, alaw, samples); ret = fax_rx(fax, samples, SAMPLES_PER_CHUNK); assert(ret == 0); while (1) { gettimeofday(&now, NULL); long long diff = ((long long) next.tv_sec - now.tv_sec) * 1000000 + ((long long) next.tv_usec - now.tv_usec); if (diff <= 0) break; usleep(diff); } } return 0; } rtpengine-mr12.5.1.22/t/spandsp_recv_fax_t38.c000066400000000000000000000055611474347554000210320ustar00rootroot00000000000000#undef NDEBUG #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "spandsp_logging.h" #define SAMPLES_PER_CHUNK 160 #ifndef FALSE # define FALSE false #endif static int packet_handler(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count) { static uint16_t seq = 0; fprintf(stderr, "recv: writing %i bytes %i times\n", len, count); for (int i = 0; i < count; i++) { uint16_t hdr[2] = {seq, len}; int ret = write(1, hdr, sizeof(hdr)); assert(ret == sizeof(hdr)); ret = write(1, buf, len); assert(ret == len); } seq++; return 0; } static void phase_e_handler(PHASE_E_HANDLER_ARGS) { fprintf(stderr, "phase E result %i\n", result); assert(result == T30_ERR_OK); } static size_t nb_read(int fd, void *b, size_t len) { size_t left = len; while (left) { ssize_t ret = read(fd, b + len - left, left); if (ret > 0) { left -= ret; continue; } if (ret == 0) return 0; if (errno == EAGAIN && left != len) { usleep(10000); continue; } return -1; } return len; } int main(int argc, char **argv) { assert(argc == 2); const char *output_file_name = argv[1]; t38_terminal_state_t *fax = t38_terminal_init(NULL, FALSE, packet_handler, NULL); assert(fax != NULL); int use_tep = 0; int supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17; int use_ecm = 0; int t38_version = 0; int options = 0; // taken from t38_terminal_tests.c t30_state_t *t30 = t38_terminal_get_t30_state(fax); t38_core_state_t *t38 = t38_terminal_get_t38_core_state(fax); t38_set_t38_version(t38, t38_version); t38_terminal_set_config(fax, options); t38_terminal_set_tep_mode(fax, use_tep); t30_set_supported_modems(t30, supported_modems); t30_set_tx_ident(t30, "22222222"); t30_set_tx_nsf(t30, (const uint8_t *) "\x50\x00\x00\x00Spandsp\x00", 12); t30_set_rx_file(t30, output_file_name, -1); t30_set_ecm_capability(t30, use_ecm); t30_set_phase_e_handler(t30, phase_e_handler, NULL); fcntl(0, F_SETFL, O_NONBLOCK); while (1) { int done = t38_terminal_send_timeout(fax, SAMPLES_PER_CHUNK); if (done) break; uint16_t hdr[2]; int ret = nb_read(0, hdr, sizeof(hdr)); if (ret < 0 && errno == EAGAIN) { usleep(20000); continue; } assert(ret == sizeof(hdr)); uint8_t buf[512]; assert(hdr[1] <= sizeof(buf)); do ret = nb_read(0, buf, hdr[1]); while (ret < 0 && errno == EAGAIN); assert(ret == hdr[1]); fprintf(stderr, "recv: processing %u bytes, seq %u\n", hdr[1], hdr[0]); t38_core_rx_ifp_packet(t38, buf, hdr[1], hdr[0]); } return 0; } rtpengine-mr12.5.1.22/t/spandsp_send_fax_pcm.c000066400000000000000000000102011474347554000211500ustar00rootroot00000000000000#undef NDEBUG #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "spandsp_logging.h" #define SAMPLES_PER_CHUNK 160 #define MICROSECONDS_PER_CHUNK 20000 #ifndef TRUE # define TRUE true #endif // from ITU G.191 void alaw_compress (size_t lseg, int16_t *linbuf, uint8_t *logbuf) { short ix, iexp; long n; for (n = 0; n < lseg; n++) { ix = linbuf[n] < 0 /* 0 <= ix < 2048 */ ? (~linbuf[n]) >> 4 /* 1's complement for negative values */ : (linbuf[n]) >> 4; /* Do more, if exponent > 0 */ if (ix > 15) { /* exponent=0 for ix <= 15 */ iexp = 1; /* first step: */ while (ix > 16 + 15) { /* find mantissa and exponent */ ix >>= 1; iexp++; } ix -= 16; /* second step: remove leading '1' */ ix += iexp << 4; /* now compute encoded value */ } if (linbuf[n] >= 0) ix |= (0x0080); /* add sign bit */ logbuf[n] = ix ^ (0x0055); /* toggle even bits */ } } void alaw_expand (size_t lseg, uint8_t *logbuf, int16_t *linbuf) { short ix, mant, iexp; long n; for (n = 0; n < lseg; n++) { ix = logbuf[n] ^ (0x0055); /* re-toggle toggled bits */ ix &= (0x007F); /* remove sign bit */ iexp = ix >> 4; /* extract exponent */ mant = ix & (0x000F); /* now get mantissa */ if (iexp > 0) mant = mant + 16; /* add leading '1', if exponent > 0 */ mant = (mant << 4) + (0x0008); /* now mantissa left justified and */ /* 1/2 quantization step added */ if (iexp > 1) /* now left shift according exponent */ mant = mant << (iexp - 1); linbuf[n] = logbuf[n] > 127 /* invert, if negative sample */ ? mant : -mant; } } int done = 0; static void phase_e_handler(PHASE_E_HANDLER_ARGS) { fprintf(stderr, "send: phase E result %i\n", result); assert(result == T30_ERR_OK); done = 1; } int main(int argc, char **argv) { assert(argc == 2); const char *input_file_name = argv[1]; fax_state_t *fax = fax_init(NULL, TRUE); assert(fax != NULL); int use_transmit_on_idle = 1; int use_tep = 0; int supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17; int use_ecm = 0; // taken from t38_gateway_tests.c t30_state_t *t30 = fax_get_t30_state(fax); fax_set_transmit_on_idle(fax, use_transmit_on_idle); fax_set_tep_mode(fax, use_tep); t30_set_supported_modems(t30, supported_modems); t30_set_tx_ident(t30, "11111111"); t30_set_tx_nsf(t30, (const uint8_t *) "\x50\x00\x00\x00Spandsp\x00", 12); t30_set_tx_file(t30, input_file_name, -1, -1); t30_set_phase_e_handler(t30, phase_e_handler, NULL); t30_set_ecm_capability(t30, use_ecm); // if (use_ecm) // t30_set_supported_compressions(t30, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION); t30_set_minimum_scan_line_time(t30, 40); struct timeval now, next; setbuf(stdout, NULL); gettimeofday(&now, NULL); while (!done) { next = now; next.tv_usec += MICROSECONDS_PER_CHUNK; while (next.tv_usec >= 1000000) { next.tv_usec -= 1000000; next.tv_sec++; } int16_t samples[SAMPLES_PER_CHUNK]; int ret = fax_tx(fax, samples, SAMPLES_PER_CHUNK); assert(ret == SAMPLES_PER_CHUNK); uint8_t alaw[SAMPLES_PER_CHUNK]; alaw_compress(SAMPLES_PER_CHUNK, samples, alaw); ret = fwrite(alaw, SAMPLES_PER_CHUNK, 1, stdout); if (ret < 1) break; ret = fread(alaw, SAMPLES_PER_CHUNK, 1, stdin); if (ret == 0) break; assert(ret == 1); alaw_expand(SAMPLES_PER_CHUNK, alaw, samples); ret = fax_rx(fax, samples, SAMPLES_PER_CHUNK); assert(ret == 0); while (1) { gettimeofday(&now, NULL); long long diff = ((long long) next.tv_sec - now.tv_sec) * 1000000 + ((long long) next.tv_usec - now.tv_usec); if (diff <= 0) break; usleep(diff); } } // assert(done == 1); return 0; } rtpengine-mr12.5.1.22/t/spandsp_send_fax_t38.c000066400000000000000000000057151474347554000210250ustar00rootroot00000000000000#undef NDEBUG #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" #include "spandsp_logging.h" #define SAMPLES_PER_CHUNK 160 #ifndef TRUE # define TRUE true #endif static int packet_handler(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count) { static uint16_t seq = 0; fprintf(stderr, "send: writing %i bytes %i times, seq %u\n", len, count, seq); for (int i = 0; i < count; i++) { uint16_t hdr[2] = {seq, len}; int ret = write(1, hdr, sizeof(hdr)); assert(ret == sizeof(hdr)); ret = write(1, buf, len); assert(ret == len); } seq++; return 0; } int g_done = 0; static void phase_e_handler(PHASE_E_HANDLER_ARGS) { fprintf(stderr, "phase E result %i\n", result); assert(result == T30_ERR_OK); g_done = 1; } static size_t nb_read(int fd, void *b, size_t len) { size_t left = len; while (left) { ssize_t ret = read(fd, b + len - left, left); if (ret > 0) { left -= ret; continue; } if (ret == 0) return 0; if (errno == EAGAIN && left != len) { usleep(10000); continue; } return -1; } return len; } int main(int argc, char **argv) { assert(argc == 2); const char *input_file_name = argv[1]; t38_terminal_state_t *fax = t38_terminal_init(NULL, TRUE, packet_handler, NULL); assert(fax != NULL); int use_tep = 0; int supported_modems = T30_SUPPORT_V27TER | T30_SUPPORT_V29 | T30_SUPPORT_V17; int use_ecm = 0; int t38_version = 0; int options = 0; // taken from t38_terminal_tests.c t30_state_t *t30 = t38_terminal_get_t30_state(fax); t38_core_state_t *t38 = t38_terminal_get_t38_core_state(fax); t38_set_t38_version(t38, t38_version); t38_terminal_set_config(fax, options); t38_terminal_set_tep_mode(fax, use_tep); t30_set_supported_modems(t30, supported_modems); t30_set_tx_ident(t30, "11111111"); t30_set_tx_nsf(t30, (const uint8_t *) "\x50\x00\x00\x00Spandsp\x00", 12); t30_set_tx_file(t30, input_file_name, -1, -1); t30_set_ecm_capability(t30, use_ecm); t30_set_phase_e_handler(t30, phase_e_handler, NULL); fcntl(0, F_SETFL, O_NONBLOCK); while (1) { int done = t38_terminal_send_timeout(fax, SAMPLES_PER_CHUNK); if (done) break; uint16_t hdr[2]; int ret = nb_read(0, hdr, sizeof(hdr)); if (ret < 0 && errno == EAGAIN) { usleep(20000); continue; } if (ret == 0) break; assert(ret == sizeof(hdr)); uint8_t buf[512]; assert(hdr[1] <= sizeof(buf)); do ret = nb_read(0, buf, hdr[1]); while (ret < 0 && errno == EAGAIN); assert(ret == hdr[1]); fprintf(stderr, "send: processing %u bytes, seq %u\n", hdr[1], hdr[0]); t38_core_rx_ifp_packet(t38, buf, hdr[1], hdr[0]); } //assert(g_done == 1); return 0; } rtpengine-mr12.5.1.22/t/t38_udptl_test.pl000077500000000000000000000026151474347554000200650ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IPC::Open3; use IO::Socket; use IO::Socket::IP; my $laddr = shift or die; my $lport = shift or die; my $raddr = shift or die; my $rport = shift or die; my $sock = IO::Socket::IP->new(Type => &SOCK_DGRAM, Proto => 'udp', LocalHost => $laddr, LocalPort => $lport, PeerHost => $raddr, PeerPort => $rport, ) or die; my $devnull; die unless open($devnull, '>', '/dev/null'); my ($src, $sink); my $pid = open3($sink, $src, ">&".fileno($devnull), @ARGV) or die; my $lseq = 0; my $rseq = 0; my $srcbuf = ''; local $| = 1; while (1) { my $rin = ''; vec($rin, fileno($src), 1) = 1; while (select(my $rout = $rin, undef, undef, 0.01) == 1) { my $ret = sysread($src, my $buf, 1); last unless $ret; $srcbuf .= $buf; my ($seq_out, $len, $pkt) = unpack('SSa*', $srcbuf); next unless defined($pkt); next if length($pkt) < $len; substr($srcbuf, 0, $len + 4) = ''; substr($pkt, $len) = ''; my $udptl = pack('nCa*Ca*Ca*', $seq_out, length($pkt), $pkt, 0x00, '', 0, ''); print('!'); last unless $sock->syswrite($udptl); } $rin = ''; vec($rin, fileno($sock), 1) = 1; while (select(my $rout = $rin, undef, undef, 0.01) == 1) { my $ret = $sock->sysread(my $buf, 0xffff); my ($seq, $len, $pkt) = unpack('nCa*', $buf); my $t38 = substr($pkt, 0, $len); print('.'); last unless syswrite($sink, pack('SSa*', $seq, length($t38), $t38)); } } rtpengine-mr12.5.1.22/t/test-amr-decode.c000066400000000000000000000534171474347554000177670ustar00rootroot00000000000000#include "codeclib.h" #include "str.h" #include "main.h" #include struct rtpengine_config rtpe_config; struct rtpengine_config initial_rtpe_config; static void hexdump(const unsigned char *buf, size_t len) { for (size_t i = 0; i < len; i++) printf("%02x", buf[i]); printf("\n"); } struct cb_args { const unsigned char *expect_s; size_t expect_len; const unsigned char *expect2_s; size_t expect2_len; bool done; }; static int frame_cb(decoder_t *dec, AVFrame *frame, void *u1, void *u2) { struct cb_args *args = u1; assert(args); assert(args->expect_s); assert(args->expect_len); if (args->expect_len != frame->linesize[0] || memcmp(frame->data[0], args->expect_s, args->expect_len)) { if (!args->expect2_s || args->expect2_len != frame->linesize[0] || memcmp(frame->data[0], args->expect2_s, args->expect2_len)) { printf( "packet content mismatch\n" "expected %zu bytes, received %i bytes\n" "expected:\n", args->expect_len, frame->linesize[0]); hexdump(args->expect_s, args->expect_len); printf("received:\n"); hexdump((unsigned char *) frame->data[0], frame->linesize[0]); exit(1); } } args->done = true; av_frame_free(&frame); return 0; } static void do_test_amr_xx(const char *file, int line, char *fmtp_s, char *data_s, int data_len, struct cb_args args, char *codec, int clockrate) { printf("running test %s:%i\n", file, line); str codec_name = STR_INIT(codec); codec_def_t *def = codec_find(&codec_name, MT_AUDIO); assert(def); if (!def->support_encoding || !def->support_decoding) { printf("AMR not fully supported - skipping test\n"); exit(0); } const format_t fmt = { .clockrate = clockrate, .channels = 1, .format = AV_SAMPLE_FMT_S16}; str fmtp_str, *fmtp = NULL; if (fmtp_s) { str_init(&fmtp_str, fmtp_s); fmtp = &fmtp_str; } decoder_t *d = decoder_new_fmtp(def, clockrate, 1, 0, &fmt, NULL, NULL, fmtp); assert(d); const str data = { data_s, data_len }; int ret = decoder_input_data(d, &data, 1, frame_cb, &args, NULL); assert(!ret); assert(args.done == true); decoder_close(d); printf("test ok: %s:%i\n", file, line); } static void do_test_amr_wb(const char *file, int line, char *fmtp_s, char *data_s, size_t data_len, struct cb_args args) { do_test_amr_xx(file, line, fmtp_s, data_s, data_len, args, "AMR-WB", 16000); } static void do_test_amr_nb(const char *file, int line, char *fmtp_s, char *data_s, int data_len, struct cb_args args) { do_test_amr_xx(file, line, fmtp_s, data_s, data_len, args, "AMR", 8000); } #define do_test_wb(in, out, out2, fmt) \ do_test_amr_wb(__FILE__, __LINE__, fmt, in, sizeof(in)-1, \ (struct cb_args) { \ .expect_s = (const unsigned char *) out, .expect_len = sizeof(out)-1, \ .expect2_s = (const unsigned char *) out2, .expect2_len = sizeof(out2)-1, \ } ) #define do_test_nb(in, out, out2, fmt) \ do_test_amr_nb(__FILE__, __LINE__, fmt, in, sizeof(in)-1, \ (struct cb_args) { \ .expect_s = (const unsigned char *) out, .expect_len = sizeof(out)-1, \ .expect2_s = (const unsigned char *) out2, .expect2_len = sizeof(out2)-1, \ } ) int main(void) { rtpe_common_config_ptr = &rtpe_config.common; codeclib_init(0); do_test_wb( "\xf0\x44\xf1\x46\x18\x1d\xd1\x57\x23\x13\x42\xf0\x00\x0c\x50\x33\xdd\xff\x0b\x99\x89\x2c\x68\x52\xf8\xf8\xd9\x59\x16\xd7\x45\xe7\x01\xec\x1f\xfe\x5b\xc6\xf9\x01\xa4\xb5\xe0\x6c\x91\x41\xfe\x52\x2c\xce\x44\xbb\x5a\xdf\x76\x29\xf8\xdb\xca\x18\xd6\x50", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xff\xff\x02\x00\xff\xff\xff\xff\x02\x00\xfd\xff\x03\x00\x00\x00\xfd\xff\x04\x00\xfc\xff\x02\x00\x01\x00\xfd\xff\x03\x00\xfe\xff\x01\x00\x01\x00\xff\xff\x01\x00\xff\xff\x01\x00\xff\xff\x00\x00\x01\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x01\x00\xfe\xff\x02\x00\xff\xff\xff\xff\x03\x00\xfd\xff\x03\x00\xff\xff\xff\xff\x03\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x04\x00\xfe\xff\xfd\xff\x00\x00\x02\x00\xfe\xff\xf8\xff\x01\x00\x04\x00\xff\xff\xff\xff\xfc\xff\x06\x00\x00\x00\xf8\xff\x11\x00\x09\x00\x06\x00\x3f\x00\x37\x00\xf9\xff\x11\x00\x4e\x00\x34\x00\xf4\xff\x17\x00\x5d\x00\x31\x00\xe0\xff\x0b\x00\x71\x00\x42\x00\xd3\xff\x09\x00\x74\x00\x3c\x00\xc8\xff\x03\x00\x78\x00\x35\x00\xbc\xff\xff\xff\x7a\x00\x2e\x00\xb0\xff\x00\x00\x77\x00\x26\x00\xaa\xff\xfc\xff\x78\x00\x1c\x00\xa3\xff\xfe\xff\x72\x00\x14\x00\xa0\xff\xfc\xff\x6f\x00\x09\x00\x8e\xff\xfc\xff\x72\x00\xff\xff\x89\xff\xff\xff\x7e\x00\xfe\xff\x7b\xff\x19\x00\xa9\x00\xfa\xff\x62\xff\x14\x00\xae\x00\xf5\xff\x54\xff\x16\x00\xb6\x00\xe8\xff\x3f\xff\x0b\x00\xb9\x00\xee\xff\x34\xff\xfd\xff\xb8\x00\xe9\xff\x2d\xff\x00\x00\xb8\x00\xe4\xff\x2c\xff\xff\xff\xb9\x00\xdf\xff\x25\xff\xff\xff\xb2\x00\xda\xff\x28\xff\xfc\xff\xae\x00\xd6\xff\x2a\xff\xff\xff\xa5\x00\xd8\xff\x30\xff\xfc\xff\xa1\x00\xd5\xff\x35\xff\xf9\xff\x97\x00\xd4\xff\x37\xff\xfa\xff\x92\x00\xcd\xff\x38\xff\xfe\xff\x8e\x00\xcb\xff\x3e\xff\xfe\xff\x88\x00\xcc\xff\x40\xff\xfa\xff\x89\x00\xcf\xff\x41\xff\xfa\xff\x87\x00\xd0\xff\x44\xff\xfa\xff\x89\x00\xd6\xff\x48\xff\xf9\xff\x88\x00\xdd\xff\x4d\xff\xf2\xff\x81\x00\xde\xff\x54\xff\xf4\xff\x7b\x00\xde\xff\x5c\xff\xf6\xff\x73\x00\xe0\xff\x65\xff\xf6\xff\x6d\x00\xe0\xff\x6f\xff\xf7\xff\x63\x00\xe0\xff\x78\xff\xf7\xff\x5d\x00\xde\xff\x76\xff\xf9\xff\x60\x00\xdf\xff\x7f\xff\xfb\xff\x5c\x00\xe8\xff\x85\xff\xfb\xff\x60\x00\xea\xff\x87\xff\xfe\xff\x63\x00\xee\xff\x8b\xff\x00\x00\x64\x00\xf3\xff\x8d\xff\xfe\xff\x66\x00\xf7\xff\x8f\xff\xfd\xff\x68\x00\xf9\xff\x8c\xff\xfd\xff\x6d\x00\xfc\xff\x8c\xff\xfd\xff\x71\x00\xff\xff\x89\xff\xfe\xff\x75\x00\x02\x00\x88\xff\xfc\xff\x78\x00\x03\x00\x87\xff\xfd\xff\x7b\x00\x03\x00\x86\xff\x00\x00\x7e\x00\x03\x00\x84\xff\xfe\xff\x81\x00\x07\x00\x82\xff\x01\x00\x84\x00\x03\x00\x82\xff\x05\x00\x88\x00\x05\x00\x81\xff\x04\x00\x88\x00\x05\x00\x80\xff\x05\x00\x8a\x00\x05\x00", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x04\x00\xfc\xff\x00\x00\x04\x00\xf0\xff\x14\x00\x64\x00\x48\x00\xa0\xff\x84\xff\x14\x00\x58\x00\x18\x00\xa8\xff\x0c\x00\xc4\x00\x38\x00\x34\xff\x7c\xff\x78\x00\x78\x00\xb8\xff\x80\xff\x40\x00\xa4\x00\xc4\xff\x44\xff\x10\x00\xa8\x00\x0c\x00\x60\xff\xcc\xff\x98\x00\x54\x00\x64\xff\x84\xff\x70\x00\x88\x00\xb0\xff\x6c\xff\x30\x00\x88\x00\xf8\xff\x5c\xff\xec\xff\x9c\x00\x1c\x00\x84\xff\xac\xff\x70\x00\x60\x00\x98\xff\x90\xff\x38\x00\x80\x00\xd8\xff\x78\xff\x08\x00\x78\x00\x14\x00\x84\xff\xd0\xff\x6c\x00\x3c\x00\xa0\xff\xa8\xff\x44\x00\x64\x00\xc8\xff\x94\xff\x14\x00\x6c\x00\x00\x00\x8c\xff\xf0\xff\x58\x00\x2c\x00\xa4\xff\xc0\xff\x4c\x00\x44\x00\xc4\xff\xb0\xff\x28\x00\x38\x00\xfc\xff\xb0\xff\x18\x00\xdc\x00\xfc\x00\x20\x00\x98\xfe\x10\xff\xbc\x00\xe8\x00\xe8\xff\x2c\xff\xf4\xff\xe4\x00\x1c\x00\x14\xff\xa8\xff\xf4\x00\x80\x00\xec\xfe\x90\xff\xdc\x00\x9c\x00\x4c\xff\xd0\xfe\xa4\x00\x60\x01\xa4\xff\xcc\xfe\x1c\x00\xd8\x00\xf8\xff\x44\xff\xc0\xff\x40\x01\x60\x01\xbc\xff\x94\xfe\x48\xff\xbc\x00\xa0\x00\x98\xff\x88\xff\x58\x00\x98\x00\xac\xff\x40\xff\x1c\x00\x94\x00\x00\x00\x2c\xff\xf4\xff\xf8\x00\x20\x00\x24\xff\x50\xff\xa8\x00\xdc\x00\x64\xff\x38\xff\x54\x00\xb8\x00\xd0\xff\x34\xff\xf8\xff\xa4\x00\x44\x00\x40\xff\x9c\xff\xac\x00\x30\x00\xac\xff\x88\xff\x0c\x00\x94\x00\xf0\xff\xac\xff\x08\x00\x04\x00\xf4\xff\x0c\x00\xc8\xff\xe0\xff\xa4\x00\xd0\x00\xe4\xff\x20\xff\x78\xff\x7c\x00\x78\x00\x64\xff\x98\xff\xc8\x00\x24\x01\x2c\x00\x48\xff\x8c\xff\xe8\xff\x0c\x00\xf0\xff\xf8\xff\x4c\x00\x40\x00\xc0\xff\xc8\xff\x0c\x00\xe0\xff\xe8\xff\xec\xff\x2c\x00\x44\x00\xe8\xff\xb8\xff\xc4\xff\xf8\xff\x20\x00\x40\x00\xf4\xff\xa4\xff\xec\xff\x38\x00\x1c\x00\xfc\xff\xa0\xff\x80\x00\xcc\x01\x98\x00\xb4\xfe\x74\xfe\x24\x00\x20\x01\x28\x00\x08\xff\xe0\xff\x30\x01\xf4\xff\xf0\xfe\xbc\xff\xcc\x00\x68\x00\xd4\xfe\x38\xff\x00\x01\x58\x01\x78\xff\x28\xfe\xe4\xff\x3c\x01\x5c\x00\x2c\xff\x94\xff\xcc\x00\x34\x00\x0c\xff\x58\xff\xd8\x00\xe0\x00\x5c\xff\xf8\xfe\x1c\x00\x18\x01\xf0\xff\xe0\xfe\x00\x00\x04\x01\xf4\xff\xe0\xfe\xb8\xff\xf4\x00\xa0\x00\x14\xff\x44\xff\x54\x01\x48\x01\xe4\xfe\x7c\xfe\x6c\x00\x0c\x01\xe8\xff\x30\xff\x08\x00\x08\x01\x40\x00\xac\xff\x90\x00\xa4\x00\x1c\xff\x74\xfe\x3c\x00\x5c\x01\x74\x00\x08\xff\x40\xff\xbc\x00\x88\x00\x64\xff\x78\xff\x68\x00\x6c\x00\x78\xff\x6c\xff\x8c\x00\xc4\x00\x78\xff\x20\xff\xbc\x00\x40\x01\x94\xff\x9c\xfe\xa4\xff\x14\x01\x5c\x00\x3c\xff\x94\x00\xb4\x01\x6c\x00\x48\xfe\x70\xfe\xc8\x00\x7c\x01\x7c\xff", "octet-align=1"); do_test_wb( "\xf4\x7c\x51\x86\x07\x74\x55\xc8\xc4\xd0\xbc\x00\x03\x14\x0c\xf7\x7f\xc2\xe6\x62\x4b\x1a\x14\xbe\x3e\x36\x56\x45\xb5\xd1\x79\xc0\x7b\x07\xff\x96\xf1\xbe\x40\x69\x2d\x78\x1b\x24\x50\x7f\x94\x8b\x33\x91\x2e\xd6\xb7\xdd\x8a\x7e\x36\xf2\x86\x35\x94", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xff\xff\x02\x00\xff\xff\xff\xff\x02\x00\xfd\xff\x03\x00\x00\x00\xfd\xff\x04\x00\xfc\xff\x02\x00\x01\x00\xfd\xff\x03\x00\xfe\xff\x01\x00\x01\x00\xff\xff\x01\x00\xff\xff\x01\x00\xff\xff\x00\x00\x01\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x01\x00\xfe\xff\x02\x00\xff\xff\xff\xff\x03\x00\xfd\xff\x03\x00\xff\xff\xff\xff\x03\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x04\x00\xfe\xff\xfd\xff\x00\x00\x02\x00\xfe\xff\xf8\xff\x01\x00\x04\x00\xff\xff\xff\xff\xfc\xff\x06\x00\x00\x00\xf8\xff\x11\x00\x09\x00\x06\x00\x3f\x00\x37\x00\xf9\xff\x11\x00\x4e\x00\x34\x00\xf4\xff\x17\x00\x5d\x00\x31\x00\xe0\xff\x0b\x00\x71\x00\x42\x00\xd3\xff\x09\x00\x74\x00\x3c\x00\xc8\xff\x03\x00\x78\x00\x35\x00\xbc\xff\xff\xff\x7a\x00\x2e\x00\xb0\xff\x00\x00\x77\x00\x26\x00\xaa\xff\xfc\xff\x78\x00\x1c\x00\xa3\xff\xfe\xff\x72\x00\x14\x00\xa0\xff\xfc\xff\x6f\x00\x09\x00\x8e\xff\xfc\xff\x72\x00\xff\xff\x89\xff\xff\xff\x7e\x00\xfe\xff\x7b\xff\x19\x00\xa9\x00\xfa\xff\x62\xff\x14\x00\xae\x00\xf5\xff\x54\xff\x16\x00\xb6\x00\xe8\xff\x3f\xff\x0b\x00\xb9\x00\xee\xff\x34\xff\xfd\xff\xb8\x00\xe9\xff\x2d\xff\x00\x00\xb8\x00\xe4\xff\x2c\xff\xff\xff\xb9\x00\xdf\xff\x25\xff\xff\xff\xb2\x00\xda\xff\x28\xff\xfc\xff\xae\x00\xd6\xff\x2a\xff\xff\xff\xa5\x00\xd8\xff\x30\xff\xfc\xff\xa1\x00\xd5\xff\x35\xff\xf9\xff\x97\x00\xd4\xff\x37\xff\xfa\xff\x92\x00\xcd\xff\x38\xff\xfe\xff\x8e\x00\xcb\xff\x3e\xff\xfe\xff\x88\x00\xcc\xff\x40\xff\xfa\xff\x89\x00\xcf\xff\x41\xff\xfa\xff\x87\x00\xd0\xff\x44\xff\xfa\xff\x89\x00\xd6\xff\x48\xff\xf9\xff\x88\x00\xdd\xff\x4d\xff\xf2\xff\x81\x00\xde\xff\x54\xff\xf4\xff\x7b\x00\xde\xff\x5c\xff\xf6\xff\x73\x00\xe0\xff\x65\xff\xf6\xff\x6d\x00\xe0\xff\x6f\xff\xf7\xff\x63\x00\xe0\xff\x78\xff\xf7\xff\x5d\x00\xde\xff\x76\xff\xf9\xff\x60\x00\xdf\xff\x7f\xff\xfb\xff\x5c\x00\xe8\xff\x85\xff\xfb\xff\x60\x00\xea\xff\x87\xff\xfe\xff\x63\x00\xee\xff\x8b\xff\x00\x00\x64\x00\xf3\xff\x8d\xff\xfe\xff\x66\x00\xf7\xff\x8f\xff\xfd\xff\x68\x00\xf9\xff\x8c\xff\xfd\xff\x6d\x00\xfc\xff\x8c\xff\xfd\xff\x71\x00\xff\xff\x89\xff\xfe\xff\x75\x00\x02\x00\x88\xff\xfc\xff\x78\x00\x03\x00\x87\xff\xfd\xff\x7b\x00\x03\x00\x86\xff\x00\x00\x7e\x00\x03\x00\x84\xff\xfe\xff\x81\x00\x07\x00\x82\xff\x01\x00\x84\x00\x03\x00\x82\xff\x05\x00\x88\x00\x05\x00\x81\xff\x04\x00\x88\x00\x05\x00\x80\xff\x05\x00\x8a\x00\x05\x00", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xf8\xff\x00\x00\x04\x00\xfc\xff\xf8\xff\x00\x00\x04\x00\x00\x00\xfc\xff\xfc\xff\x04\x00\x00\x00\xf8\xff\x10\x00\x08\x00\x04\x00\x40\x00\x34\x00\xf8\xff\x10\x00\x4c\x00\x34\x00\xf4\xff\x14\x00\x5c\x00\x30\x00\xdc\xff\x0c\x00\x70\x00\x40\x00\xd4\xff\x04\x00\x74\x00\x38\x00\xc4\xff\x00\x00\x74\x00\x34\x00\xb8\xff\xfc\xff\x78\x00\x2c\x00\xb0\xff\xfc\xff\x78\x00\x24\x00\xa4\xff\xfc\xff\x74\x00\x18\x00\xa4\xff\xf8\xff\x70\x00\x10\x00\x9c\xff\xfc\xff\x6c\x00\x08\x00\x8c\xff\xf8\xff\x70\x00\x00\x00\x88\xff\xfc\xff\x7c\x00\xfc\xff\x78\xff\x18\x00\xa4\x00\xfc\xff\x60\xff\x10\x00\xac\x00\xf4\xff\x54\xff\x14\x00\xb4\x00\xe8\xff\x40\xff\x08\x00\xb4\x00\xf0\xff\x34\xff\xfc\xff\xb8\x00\xe8\xff\x30\xff\xfc\xff\xb8\x00\xe4\xff\x28\xff\x00\x00\xb4\x00\xe0\xff\x24\xff\xfc\xff\xb4\x00\xd8\xff\x28\xff\xf8\xff\xac\x00\xd8\xff\x24\xff\xfc\xff\xa4\x00\xd8\xff\x30\xff\xf8\xff\xa0\x00\xd4\xff\x30\xff\xf8\xff\x94\x00\xd4\xff\x38\xff\xf8\xff\x94\x00\xcc\xff\x34\xff\xfc\xff\x8c\x00\xcc\xff\x3c\xff\xfc\xff\x88\x00\xcc\xff\x40\xff\xf8\xff\x8c\x00\xd0\xff\x40\xff\xf8\xff\x88\x00\xd0\xff\x40\xff\xf8\xff\x88\x00\xd8\xff\x48\xff\xf8\xff\x88\x00\xe0\xff\x4c\xff\xf0\xff\x84\x00\xe0\xff\x50\xff\xf0\xff\x7c\x00\xe0\xff\x58\xff\xf4\xff\x74\x00\xe0\xff\x64\xff\xf4\xff\x6c\x00\xe4\xff\x6c\xff\xf4\xff\x64\x00\xe0\xff\x74\xff\xf4\xff\x60\x00\xe0\xff\x74\xff\xf8\xff\x64\x00\xe0\xff\x7c\xff\xf8\xff\x5c\x00\xe8\xff\x80\xff\xf8\xff\x64\x00\xec\xff\x84\xff\xf8\xff\x64\x00\xec\xff\x88\xff\xfc\xff\x68\x00\xf4\xff\x88\xff\xfc\xff\x68\x00\xf8\xff\x88\xff\xf8\xff\x6c\x00\xfc\xff\x88\xff\xf8\xff\x74\x00\xfc\xff\x84\xff\xfc\xff\x74\x00\x00\x00\x84\xff\xf8\xff\x78\x00\x04\x00\x80\xff\xf8\xff\x7c\x00\x04\x00\x80\xff\xf8\xff\x80\x00\x04\x00\x7c\xff\xfc\xff\x84\x00\x04\x00\x7c\xff\xf8\xff\x88\x00\x08\x00\x7c\xff\x00\x00\x88\x00\x04\x00\x78\xff\x04\x00\x8c\x00\x04\x00\x78\xff\x04\x00\x90\x00\x04\x00\x78\xff\x00\x00\x90\x00\x04\x00", NULL); do_test_wb( "\xf4\x7c\x51\x86\x07\x74\x55\xc8\xc4\xd0\xbc\x00\x03\x14\x0c\xf7\x7f\xc2\xe6\x62\x4b\x1a\x14\xbe\x3e\x36\x56\x45\xb5\xd1\x79\xc0\x7b\x07\xff\x96\xf1\xbe\x40\x69\x2d\x78\x1b\x24\x50\x7f\x94\x8b\x33\x91\x2e\xd6\xb7\xdd\x8a\x7e\x36\xf2\x86\x35\x94", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xff\xff\x02\x00\xff\xff\xff\xff\x02\x00\xfd\xff\x03\x00\x00\x00\xfd\xff\x04\x00\xfc\xff\x02\x00\x01\x00\xfd\xff\x03\x00\xfe\xff\x01\x00\x01\x00\xff\xff\x01\x00\xff\xff\x01\x00\xff\xff\x00\x00\x01\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x01\x00\xfe\xff\x02\x00\xff\xff\xff\xff\x03\x00\xfd\xff\x03\x00\xff\xff\xff\xff\x03\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x02\x00\xfe\xff\x01\x00\x00\x00\xff\xff\x04\x00\xfe\xff\xfd\xff\x00\x00\x02\x00\xfe\xff\xf8\xff\x01\x00\x04\x00\xff\xff\xff\xff\xfc\xff\x06\x00\x00\x00\xf8\xff\x11\x00\x09\x00\x06\x00\x3f\x00\x37\x00\xf9\xff\x11\x00\x4e\x00\x34\x00\xf4\xff\x17\x00\x5d\x00\x31\x00\xe0\xff\x0b\x00\x71\x00\x42\x00\xd3\xff\x09\x00\x74\x00\x3c\x00\xc8\xff\x03\x00\x78\x00\x35\x00\xbc\xff\xff\xff\x7a\x00\x2e\x00\xb0\xff\x00\x00\x77\x00\x26\x00\xaa\xff\xfc\xff\x78\x00\x1c\x00\xa3\xff\xfe\xff\x72\x00\x14\x00\xa0\xff\xfc\xff\x6f\x00\x09\x00\x8e\xff\xfc\xff\x72\x00\xff\xff\x89\xff\xff\xff\x7e\x00\xfe\xff\x7b\xff\x19\x00\xa9\x00\xfa\xff\x62\xff\x14\x00\xae\x00\xf5\xff\x54\xff\x16\x00\xb6\x00\xe8\xff\x3f\xff\x0b\x00\xb9\x00\xee\xff\x34\xff\xfd\xff\xb8\x00\xe9\xff\x2d\xff\x00\x00\xb8\x00\xe4\xff\x2c\xff\xff\xff\xb9\x00\xdf\xff\x25\xff\xff\xff\xb2\x00\xda\xff\x28\xff\xfc\xff\xae\x00\xd6\xff\x2a\xff\xff\xff\xa5\x00\xd8\xff\x30\xff\xfc\xff\xa1\x00\xd5\xff\x35\xff\xf9\xff\x97\x00\xd4\xff\x37\xff\xfa\xff\x92\x00\xcd\xff\x38\xff\xfe\xff\x8e\x00\xcb\xff\x3e\xff\xfe\xff\x88\x00\xcc\xff\x40\xff\xfa\xff\x89\x00\xcf\xff\x41\xff\xfa\xff\x87\x00\xd0\xff\x44\xff\xfa\xff\x89\x00\xd6\xff\x48\xff\xf9\xff\x88\x00\xdd\xff\x4d\xff\xf2\xff\x81\x00\xde\xff\x54\xff\xf4\xff\x7b\x00\xde\xff\x5c\xff\xf6\xff\x73\x00\xe0\xff\x65\xff\xf6\xff\x6d\x00\xe0\xff\x6f\xff\xf7\xff\x63\x00\xe0\xff\x78\xff\xf7\xff\x5d\x00\xde\xff\x76\xff\xf9\xff\x60\x00\xdf\xff\x7f\xff\xfb\xff\x5c\x00\xe8\xff\x85\xff\xfb\xff\x60\x00\xea\xff\x87\xff\xfe\xff\x63\x00\xee\xff\x8b\xff\x00\x00\x64\x00\xf3\xff\x8d\xff\xfe\xff\x66\x00\xf7\xff\x8f\xff\xfd\xff\x68\x00\xf9\xff\x8c\xff\xfd\xff\x6d\x00\xfc\xff\x8c\xff\xfd\xff\x71\x00\xff\xff\x89\xff\xfe\xff\x75\x00\x02\x00\x88\xff\xfc\xff\x78\x00\x03\x00\x87\xff\xfd\xff\x7b\x00\x03\x00\x86\xff\x00\x00\x7e\x00\x03\x00\x84\xff\xfe\xff\x81\x00\x07\x00\x82\xff\x01\x00\x84\x00\x03\x00\x82\xff\x05\x00\x88\x00\x05\x00\x81\xff\x04\x00\x88\x00\x05\x00\x80\xff\x05\x00\x8a\x00\x05\x00", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xfc\xff\x00\x00\xf8\xff\x00\x00\x04\x00\xfc\xff\xf8\xff\x00\x00\x04\x00\x00\x00\xfc\xff\xfc\xff\x04\x00\x00\x00\xf8\xff\x10\x00\x08\x00\x04\x00\x40\x00\x34\x00\xf8\xff\x10\x00\x4c\x00\x34\x00\xf4\xff\x14\x00\x5c\x00\x30\x00\xdc\xff\x0c\x00\x70\x00\x40\x00\xd4\xff\x04\x00\x74\x00\x38\x00\xc4\xff\x00\x00\x74\x00\x34\x00\xb8\xff\xfc\xff\x78\x00\x2c\x00\xb0\xff\xfc\xff\x78\x00\x24\x00\xa4\xff\xfc\xff\x74\x00\x18\x00\xa4\xff\xf8\xff\x70\x00\x10\x00\x9c\xff\xfc\xff\x6c\x00\x08\x00\x8c\xff\xf8\xff\x70\x00\x00\x00\x88\xff\xfc\xff\x7c\x00\xfc\xff\x78\xff\x18\x00\xa4\x00\xfc\xff\x60\xff\x10\x00\xac\x00\xf4\xff\x54\xff\x14\x00\xb4\x00\xe8\xff\x40\xff\x08\x00\xb4\x00\xf0\xff\x34\xff\xfc\xff\xb8\x00\xe8\xff\x30\xff\xfc\xff\xb8\x00\xe4\xff\x28\xff\x00\x00\xb4\x00\xe0\xff\x24\xff\xfc\xff\xb4\x00\xd8\xff\x28\xff\xf8\xff\xac\x00\xd8\xff\x24\xff\xfc\xff\xa4\x00\xd8\xff\x30\xff\xf8\xff\xa0\x00\xd4\xff\x30\xff\xf8\xff\x94\x00\xd4\xff\x38\xff\xf8\xff\x94\x00\xcc\xff\x34\xff\xfc\xff\x8c\x00\xcc\xff\x3c\xff\xfc\xff\x88\x00\xcc\xff\x40\xff\xf8\xff\x8c\x00\xd0\xff\x40\xff\xf8\xff\x88\x00\xd0\xff\x40\xff\xf8\xff\x88\x00\xd8\xff\x48\xff\xf8\xff\x88\x00\xe0\xff\x4c\xff\xf0\xff\x84\x00\xe0\xff\x50\xff\xf0\xff\x7c\x00\xe0\xff\x58\xff\xf4\xff\x74\x00\xe0\xff\x64\xff\xf4\xff\x6c\x00\xe4\xff\x6c\xff\xf4\xff\x64\x00\xe0\xff\x74\xff\xf4\xff\x60\x00\xe0\xff\x74\xff\xf8\xff\x64\x00\xe0\xff\x7c\xff\xf8\xff\x5c\x00\xe8\xff\x80\xff\xf8\xff\x64\x00\xec\xff\x84\xff\xf8\xff\x64\x00\xec\xff\x88\xff\xfc\xff\x68\x00\xf4\xff\x88\xff\xfc\xff\x68\x00\xf8\xff\x88\xff\xf8\xff\x6c\x00\xfc\xff\x88\xff\xf8\xff\x74\x00\xfc\xff\x84\xff\xfc\xff\x74\x00\x00\x00\x84\xff\xf8\xff\x78\x00\x04\x00\x80\xff\xf8\xff\x7c\x00\x04\x00\x80\xff\xf8\xff\x80\x00\x04\x00\x7c\xff\xfc\xff\x84\x00\x04\x00\x7c\xff\xf8\xff\x88\x00\x08\x00\x7c\xff\x00\x00\x88\x00\x04\x00\x78\xff\x04\x00\x8c\x00\x04\x00\x78\xff\x04\x00\x90\x00\x04\x00\x78\xff\x00\x00\x90\x00\x04\x00", ""); do_test_nb( "\xf0\x3c\x53\xff\x3a\xe8\x30\x41\xa5\xa8\xa4\x1d\x2f\xf2\x03\x60\x35\xc0\x00\x07\xc5\x53\xf4\xbc\x98\x00\x01\x14\x2f\xf0\x00\x0f\x70", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\xf8\xff\x10\x00\x00\x00\xe8\xff\xf8\xff\x28\x00\x00\x00\xc8\xff\x00\x00\x38\x00\xf8\xff\xb0\xff\x08\x00\x48\x00\xf0\xff\xa8\xff\x08\x00\x60\x00\xf8\xff\x98\xff\x08\x00\x88\x00\xf0\xff\x88\xff\x10\x00\x88\x00\xe8\xff\x70\xff\x18\x00\x80\x00\xd8\xff\x70\xff\x08\x00\x78\x00\xd8\xff\x88\xff\x08\x00\x78\x00\xe8\xff\x90\xff\x10\x00\x70\x00\xe0\xff\x90\xff\x08\x00\x68\x00\xf8\xff\x88\xff\x00\x00\x80\x00\xf8\xff\x88\xff\x00\x00\x80\x00\xf8\xff\x78\xff\x08\x00\x80\x00\xe8\xff\x78\xff\x08\x00\x78\x00\xe0\xff\x88\xff\x10\x00\x70\x00\xe8\xff\x90\xff\x10\x00\x68\x00\xe0\xff\x98\xff\x08\x00\x70\x00\xe8\xff\xa8\xff\xf8\xff\x70\x00\xf0\xff\x98\xff\xf8\xff\x68\x00\x00\x00\x80\xff\xf8\xff\x68\x00\xf8\xff\x90\xff\x00\x00\x70\x00\xf8\xff\x90\xff\x00\x00\x78\x00\xf0\xff\x88\xff\x00\x00\x80\x00\xf8\xff\x80\xff\x00\x00\x88\x00\xf8\xff\x80\xff\xf8\xff\x88\x00\xf8\xff\x70\xff\x00\x00\x80\x00\xf0\xff\x80\xff\xf8\xff\x80\x00\xe8\xff\x80\xff\xf0\xff\x88\x00", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\xe8\xff\xe8\xff\x00\x00\xf8\xff\xf0\xff\x08\x00\x10\x00\x08\x00\x00\x00\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\xb8\xff\xf8\xff\x18\x00\x20\x00\x10\x00\xf8\xff\xc8\xff\xc8\xff\x08\x00\x30\x00\x28\x00\x10\x00\xf0\xff\xf8\xff\x08\x00\x10\x00\x10\x00\x08\x00\xf8\xff\xf8\xff\xf8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\xf8\xff\x60\x00\x98\x00\x48\x00\xf8\xff\xc8\xff\xd0\xff\x10\x00\x18\x00\xe8\xff\xc8\xff\xa8\xff\xb8\xff\xd0\xff\xe0\xff\xe8\xff\xe8\xff\xe8\xff\xe8\xff\xf8\xff\x00\x00\x10\x00\x18\x00\x10\x00\x08\x00\x00\x00\x00\x00\x08\x00\x08\x00\x60\x00\x90\x00\x38\x00\xe8\xff\xb8\xff\xc0\xff\x00\x00\x08\x00\xe0\xff\xc0\xff\xa8\xff\xa8\xff\xc0\xff\xc8\xff\xd0\xff\x10\xff\x78\xfe\xc8\xfe\x40\xff\xd8\xff\x00\x00\x98\xff\x68\xff\x98\xff\xf8\xff\x80\x00\xc0\x00\xc8\x00\xc0\x00\xc0\x00\xd0\x00\xf0\x00\x08\x01\x18\x01\x00\x01\xd0\x00\xa0\x00\x58\x00\x30\x00\x28\x00\x00\x00\xd0\xff\xa0\xff\x70\xff\x58\xff\x58\xff\x48\xff\x10\x00\xa8\x00\x68\x00\x10\x00", "octet-align=1"); return 0; } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/test-amr-encode.c000066400000000000000000000207601474347554000177740ustar00rootroot00000000000000#include "codeclib.h" #include "str.h" #include "fix_frame_channel_layout.h" #include "main.h" #include struct rtpengine_config rtpe_config; struct rtpengine_config initial_rtpe_config; static void hexdump(const unsigned char *buf, int len) { for (int i = 0; i < len; i++) printf("%02x", buf[i]); printf("\n"); } static int dec_cb(encoder_t *e, void *u1, void *u2) { char **expect = u1; int *expect_len = u2; assert(expect); assert(expect_len); assert(*expect); GString *buf = g_string_new(""); int plen = 256; char payload[plen]; str inout = { payload, plen }; e->def->packetizer(e->avpkt, buf, &inout, e); if (inout.len != *expect_len || memcmp(inout.s, *expect, *expect_len)) { printf( "packet content mismatch\n" "expected %i bytes, received %zu bytes\n" "expected:\n", *expect_len, inout.len); hexdump((unsigned char *) *expect, *expect_len); printf("received:\n"); hexdump((unsigned char *) inout.s, inout.len); exit(1); } *expect = NULL; *expect_len = 0; g_string_free(buf, TRUE); return 0; } static void do_test_amr_xx(const char *file, int line, char *fmtp_s, char *data_s, int data_len, char *expect_s, int expect_len, int bitrate, char *codec, int clockrate) { printf("running test %s:%i\n", file, line); str codec_name = STR_INIT(codec); codec_def_t *def = codec_find(&codec_name, MT_AUDIO); assert(def); if (!def->support_encoding || !def->support_decoding) { printf("AMR not fully supported - skipping test\n"); exit(0); } const format_t fmt = { .clockrate = clockrate, .channels = 1, .format = 0 }; str fmtp_str, *fmtp = NULL; char *fmtp_buf = NULL; if (fmtp_s) { fmtp_buf = strdup(fmtp_s); str_init(&fmtp_str, fmtp_buf); fmtp = &fmtp_str; } encoder_t *e = encoder_new(); assert(e); format_t actual_fmt; int ret = encoder_config_fmtp(e, def, bitrate, 20, &fmt, &fmt, &actual_fmt, NULL, fmtp, NULL); assert(actual_fmt.clockrate == clockrate); assert(actual_fmt.channels == 1); assert(actual_fmt.format == AV_SAMPLE_FMT_S16); AVFrame *frame = av_frame_alloc(); assert(frame); frame->nb_samples = 20 * clockrate / 1000; frame->format = actual_fmt.format; frame->sample_rate = actual_fmt.clockrate; DEF_CH_LAYOUT(&frame->CH_LAYOUT, actual_fmt.channels); ret = av_frame_get_buffer(frame, 0); assert(ret >= 0); assert(data_len == frame->nb_samples * 2); memcpy(frame->data[0], data_s, data_len); ret = encoder_input_data(e, frame, dec_cb, &expect_s, &expect_len); assert(!ret); assert(expect_s == NULL); encoder_free(e); free(fmtp_buf); av_frame_free(&frame); printf("test ok: %s:%i\n", file, line); } static void do_test_amr_wb(const char *file, int line, char *fmtp_s, char *data_s, int data_len, char *expect_s, int expect_len, int bitrate) { do_test_amr_xx(file, line, fmtp_s, data_s, data_len, expect_s, expect_len, bitrate, "AMR-WB", 16000); } static void do_test_amr_nb(const char *file, int line, char *fmtp_s, char *data_s, int data_len, char *expect_s, int expect_len, int bitrate) { do_test_amr_xx(file, line, fmtp_s, data_s, data_len, expect_s, expect_len, bitrate, "AMR", 8000); } #define do_test_wb(in, out, fmt, bitrate) \ do_test_amr_wb(__FILE__, __LINE__, fmt, in, sizeof(in)-1, out, sizeof(out)-1, bitrate) #define do_test_nb(in, out, fmt, bitrate) \ do_test_amr_nb(__FILE__, __LINE__, fmt, in, sizeof(in)-1, out, sizeof(out)-1, bitrate) #define test_320_samples_16_bits \ "\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01" #define test_160_samples_16_bits \ "\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01\x00\x00\x01\x00\x01\x00\x01\x01" int main(void) { rtpe_common_config_ptr = &rtpe_config.common; codeclib_init(0); do_test_wb( test_320_samples_16_bits, "\xf0\x44\xf1\x46\x18\x1d\xd1\x57\x23\x13\x42\xf0\x00\x0c\x50\x33\xdd\xff\x0b\x99\x89\x2c\x68\x52\xf8\xf8\xd9\x59\x16\xd7\x45\xe7\x01\xec\x1f\xfe\x5b\xc6\xf9\x01\xa4\xb5\xe0\x6c\x91\x41\xfe\x52\x2c\xce\x44\xbb\x5a\xdf\x76\x29\xf8\xdb\xca\x18\xd6\x50", "octet-align=1", 23850); do_test_wb( test_320_samples_16_bits, "\xf0\x00\x44\xf1\x46\x18\x1d\xd1\x57\x23\x13\x42\xf0\x00\x0c\x50\x33\xdd\xff\x0b\x99\x89\x2c\x68\x52\xf8\xf8\xd9\x59\x16\xd7\x45\xe7\x01\xec\x1f\xfe\x5b\xc6\xf9\x01\xa4\xb5\xe0\x6c\x91\x41\xfe\x52\x2c\xce\x44\xbb\x5a\xdf\x76\x29\xf8\xdb\xca\x18\xd6\x50", "octet-align=1;interleaving=4", 23850); do_test_wb( test_320_samples_16_bits, "\xf4\x7c\x51\x86\x07\x74\x55\xc8\xc4\xd0\xbc\x00\x03\x14\x0c\xf7\x7f\xc2\xe6\x62\x4b\x1a\x14\xbe\x3e\x36\x56\x45\xb5\xd1\x79\xc0\x7b\x07\xff\x96\xf1\xbe\x40\x69\x2d\x78\x1b\x24\x50\x7f\x94\x8b\x33\x91\x2e\xd6\xb7\xdd\x8a\x7e\x36\xf2\x86\x35\x94", NULL, 23850); do_test_nb( test_160_samples_16_bits, "\xf0\x3c\x53\xff\x3a\xe8\x30\x41\xa5\xa8\xa4\x1d\x2f\xf2\x03\x60\x35\xc0\x00\x07\xc5\x53\xf4\xbc\x98\x00\x01\x14\x2f\xf0\x00\x0f\x70", "octet-align=1", 12200); return 0; } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/test-basic-ipv4-6.pl000077500000000000000000000010411474347554000202510ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET}, {sockdomain => &Socket::AF_INET6} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', label => "callee"); $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', label => "caller", 'address-family' => 'IP6'); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-basic-ipv4.pl000077500000000000000000000010051474347554000201060ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET}, {sockdomain => &Socket::AF_INET} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', label => "callee"); $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', label => "caller"); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-basic-ipv6-4.pl000077500000000000000000000010411474347554000202510ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET6}, {sockdomain => &Socket::AF_INET} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', label => "callee"); $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', label => "caller", 'address-family' => 'IP4'); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-basic-ipv6.pl000077500000000000000000000010071474347554000201120ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET6}, {sockdomain => &Socket::AF_INET6} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', label => "callee"); $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', label => "caller"); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-bitstr.c000066400000000000000000000166061474347554000172750ustar00rootroot00000000000000#include #include #include #include #include "bitstr.h" #include "str.h" #define do_test_ret(retval, args...) do { \ int r = do_test(args); \ if (r != retval) \ err("didn't run all tests!\n"); \ } while (0) #define test1(input, shift_len, output, result) \ do_test_ret(1, input, sizeof(input)-1, __FILE__, __LINE__, shift_len, output, sizeof(output)-1, \ result, 0) #define test2(input, shift_len1, output1, result1, shift_len2, output2, result2) \ do_test_ret(2, input, sizeof(input)-1, __FILE__, __LINE__, \ shift_len1, output1, sizeof(output1)-1, result1, \ shift_len2, output2, sizeof(output2)-1, result2, \ 0) #define test3(input, \ shift_len1, output1, result1, \ shift_len2, output2, result2, \ shift_len3, output3, result3) \ do_test_ret(3, input, sizeof(input)-1, __FILE__, __LINE__, \ shift_len1, output1, sizeof(output1)-1, result1, \ shift_len2, output2, sizeof(output2)-1, result2, \ shift_len3, output3, sizeof(output3)-1, result3, \ 0) #define err(fmt...) do { \ fprintf(stderr, fmt); \ exit(1); \ } while (0) int do_test(const char *input, unsigned int input_len, const char *file, unsigned int line, ...) { char in_buf[input_len]; memcpy(in_buf, input, input_len); str inp = STR_INIT_LEN(in_buf, input_len); bitstr inp_bs; bitstr_init(&inp_bs, &inp); va_list ap; va_start(ap, line); int argc = 0; while (1) { unsigned int shift_len = va_arg(ap, unsigned int); if (!shift_len) break; const char *output = va_arg(ap, const char *); unsigned int output_len = va_arg(ap, unsigned int); int result = va_arg(ap, int); char out_buf[output_len+1]; str outp = STR_CONST_INIT_BUF(out_buf); int ret; if (output) ret = bitstr_shift_ret(&inp_bs, shift_len, &outp); else ret = bitstr_shift(&inp_bs, shift_len); if (ret != result) err("ERROR return %i instead of %i (%s:%i arg %i)\n", ret, result, file, line, argc); if (ret == 0 && output) { if (outp.len != output_len) err("ERROR output len %zu instead of %u (%s:%i arg %i)\n", outp.len, output_len, file, line, argc); if (memcmp(outp.s, output, output_len)) err("ERROR output string mismatch (%s:%i arg %i)\n", file, line, argc); } // if (inp.len != remainder_len) // err("ERROR remainder len %i instead of %i (%s:%i arg %i)\n", // inp.len, remainder_len, file, line, argc); printf("test ok: %s:%i arg %i\n", file, line, argc); argc++; } return argc; } int main(void) { test1("\x81", 8, "\x81", 0); test2("\x81", 8, "\x81", 0, 1, "", -1); test2("\x81", 8, "\x81", 0, 1, NULL, -1); test1("\x81", 7, "\x80", 0); test2("\x81", 7, "\x80", 0, 1, "\x80", 0); test3("\x81", 7, "\x80", 0, 1, "\x80", 0, 1, "", -1); test3("\x81", 7, "\x80", 0, 1, NULL, 0, 1, "", -1); test3("\x81", 7, "\x80", 0, 1, "\x80", 0, 1, NULL, -1); test3("\x81", 7, "\x80", 0, 1, NULL, 0, 1, NULL, -1); test2("\x81", 7, "\x80", 0, 2, "", -1); test2("\x81", 7, "\x80", 0, 2, NULL, -1); test1("\x82", 7, "\x82", 0); test2("\x82", 7, "\x82", 0, 1, "\x00", 0); test2("\x82", 7, NULL, 0, 1, "\x00", 0); test3("\x82", 7, "\x82", 0, 1, "\x00", 0, 1, "", -1); test3("\x82", 7, "\x82", 0, 1, NULL, 0, 1, "", -1); test3("\x82", 7, "\x82", 0, 1, "\x00", 0, 1, NULL, -1); test3("\x82", 7, "\x82", 0, 1, NULL, 0, 1, NULL, -1); test2("\x82", 7, "\x82", 0, 2, "", -1); test2("\x82", 7, "\x82", 0, 2, NULL, -1); test1("\x83", 7, "\x82", 0); test2("\x83", 7, "\x82", 0, 1, "\x80", 0); test2("\x83", 7, NULL, 0, 1, "\x80", 0); test3("\x83", 7, "\x82", 0, 1, "\x80", 0, 1, "", -1); test3("\x83", 7, "\x82", 0, 1, NULL, 0, 1, "", -1); test2("\x83", 7, "\x82", 0, 2, "", -1); test1("\x81", 1, "\x80", 0); test2("\x81", 1, "\x80", 0, 7, "\x02", 0); test3("\x81", 1, "\x80", 0, 7, "\x02", 0, 1, "", -1); test3("\x81", 1, NULL, 0, 7, "\x02", 0, 1, "", -1); test3("\x81", 1, "\x80", 0, 7, NULL, 0, 1, "", -1); test3("\x81", 1, NULL, 0, 7, NULL, 0, 1, "", -1); test1("\xff", 1, "\x80", 0); test2("\xff", 1, "\x80", 0, 5, "\xf8", 0); test3("\xff", 1, "\x80", 0, 5, "\xf8", 0, 2, "\xc0", 0); test3("\xff", 1, NULL, 0, 5, "\xf8", 0, 2, "\xc0", 0); test3("\xff", 1, "\x80", 0, 5, NULL, 0, 2, "\xc0", 0); test3("\xff", 1, NULL, 0, 5, NULL, 0, 2, "\xc0", 0); test3("\xff", 1, "\x80", 0, 5, "\xf8", 0, 3, "", -1); test2("\xff", 1, "\x80", 0, 7, "\xfe", 0); test3("\xff", 1, "\x80", 0, 7, "\xfe", 0, 1, "", -1); test3("\xff", 1, NULL, 0, 7, "\xfe", 0, 1, "", -1); test3("\xff", 1, "\x80", 0, 7, NULL, 0, 1, "", -1); test3("\xff", 1, NULL, 0, 7, NULL, 0, 1, "", -1); test1("J76x", 8, "J", 0); test2("J76x", 8, "J", 0, 8, "7", 0); test3("J76x", 8, "J", 0, 8, "7", 0, 7, "6", 0); test3("J76x", 8, "J", 0, 8, "7", 0, 14, "6x", 0); test3("J76x", 8, "J", 0, 8, "7", 0, 16, "6x", 0); test3("J76x", 8, "J", 0, 8, "7", 0, 17, "", -1); test2("J76x", 8, "J", 0, 12, "70", 0); test3("J76x", 8, "J", 0, 12, "70", 0, 3, "`", 0); test3("J76x", 8, "J", 0, 12, "70", 0, 6, "d", 0); test3("J76x", 8, "J", 0, 12, "70", 0, 8, "g", 0); test3("J76x", 8, "J", 0, 12, "70", 0, 12, "g\x80", 0); test3("J76x", 8, NULL, 0, 12, "70", 0, 12, "g\x80", 0); test3("J76x", 8, "J", 0, 12, NULL, 0, 12, "g\x80", 0); test3("J76x", 8, NULL, 0, 12, NULL, 0, 12, "g\x80", 0); test3("J76x", 8, "J", 0, 12, "70", 0, 13, "", -1); test2("J76x", 8, "J", 0, 14, "74", 0); test3("J76x", 8, "J", 0, 14, "74", 0, 5, "\x98", 0); test3("J76x", 8, NULL, 0, 14, "74", 0, 5, "\x98", 0); test3("J76x", 8, "J", 0, 14, NULL, 0, 5, "\x98", 0); test3("J76x", 8, NULL, 0, 14, NULL, 0, 5, "\x98", 0); test3("J76x", 8, "J", 0, 14, "74", 0, 8, "\x9e", 0); test3("J76x", 8, NULL, 0, 14, "74", 0, 8, "\x9e", 0); test3("J76x", 8, "J", 0, 14, NULL, 0, 8, "\x9e", 0); test3("J76x", 8, NULL, 0, 14, NULL, 0, 8, "\x9e", 0); test1("J76x", 12, "J0", 0); test2("J76x", 12, "J0", 0, 3, "`", 0); test3("J76x", 12, "J0", 0, 3, "`", 0, 3, "\x80", 0); test3("J76x", 12, "J0", 0, 3, "`", 0, 6, "\x98", 0); test2("J76x", 12, "J0", 0, 4, "p", 0); test2("J76x", 12, "J0", 0, 4, "p", 0); test3("J76x", 12, "J0", 0, 4, "p", 0, 3, "\x20", 0); test3("J76x", 12, "J0", 0, 4, "p", 0, 6, "\x34", 0); test2("J76x", 12, "J0", 0, 6, "p", 0); test2("J76x", 12, "J0", 0, 6, "p", 0); test3("J76x", 12, "J0", 0, 6, "p", 0, 3, "\xc0", 0); test3("J76x", 12, "J0", 0, 6, "p", 0, 6, "\xd8", 0); test2("J76x", 12, "J0", 0, 8, "s", 0); test2("J76x", 12, "J0", 0, 8, "s", 0); test3("J76x", 12, "J0", 0, 8, "s", 0, 3, "\x60", 0); test3("J76x", 12, "J0", 0, 8, "s", 0, 6, "\x64", 0); test2("J76x", 12, "J0", 0, 11, "s`", 0); test2("J76x", 12, "J0", 0, 11, "s`", 0); test3("J76x", 12, "J0", 0, 11, "s`", 0, 3, "\x20", 0); test3("J76x", 12, "J0", 0, 11, "s`", 0, 6, "\x3c", 0); test2("J76x", 12, "J0", 0, 18, "sg\x80", 0); test2("J76x", 12, "J0", 0, 18, "sg\x80", 0); test3("J76x", 12, "J0", 0, 18, "sg\x80", 0, 2, "\x00", 0); test3("J76x", 12, "J0", 0, 18, NULL, 0, 2, "\x00", 0); test3("J76x", 12, NULL, 0, 18, "sg\x80", 0, 2, "\x00", 0); test3("J76x", 12, NULL, 0, 18, NULL, 0, 2, "\x00", 0); test3("J76x", 12, "J0", 0, 18, "sg\x80", 0, 3, NULL, -1); // non octet aligned AMR test3("\xf0\xde\xc0\x81\xc0\x08\xa9\xbc\x06\x33\x53\x14\x69\xdd\x3d\x2e\xa9\x8f\x81\xee\x2e\x09\x08\x80\xca\x05\x1e\x91\x00\x10\x00\x00\xca\x05\x20\x91\x00\x10\x00\x00\xca\x05\x22\x91\x00\x10\x00\x00\xca\x05\x24\x91\x00\x10\x00\x00\xca\x05\x26\x91\x00\x10", 4, "\xf0", 0, 6, "\x0c", 0, 177, "\x7b\x02\x07\x00\x22\xa6\xf0\x18\xcd\x4c\x51\xa7\x74\xf4\xba\xa6\x3e\x07\xb8\xb8\x24\x22\x00", 0); } rtpengine-mr12.5.1.22/t/test-const_str_hash.c000066400000000000000000000012731474347554000210010ustar00rootroot00000000000000#include #include #include "str.h" static int test_hash(char *p) { str s; str_init(&s, p); switch (__csh_lookup(&s)) { case CSH_LOOKUP("one"): return 1; case CSH_LOOKUP("two"): return 2; case CSH_LOOKUP("dashed-string"): return 3; default: return 0; } // STR_LOOKUP("one") // catch duplicate } static void test(char *p, int exp) { int h = test_hash(p); if (h != exp) { printf("%s:%i test failed: %u != %u (string '%s')\n", __FILE__, __LINE__, h, exp, p); abort(); } } int main(void) { test("one", 1); test("two", 2); test("dashed-string", 3); test("doesn't exist", 0); return 0; } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/test-dtls.pl000077500000000000000000000004151474347554000171170ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; my $r = NGCP::Rtpengine::Test->new(); my $a = $r->client(dtls => 1); my $b = $r->client(); $r->timer_once(3, sub { $b->answer($a) }); $a->offer($b, 'transport-protocol' => 'RTP/AVP'); $r->run(); rtpengine-mr12.5.1.22/t/test-dtmf-detect.c000066400000000000000000001274221474347554000201650ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include static unsigned char samples[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x01, 0x66, 0x04, 0x40, 0x03, 0xf7, 0xfd, 0xa1, 0xf9, 0x90, 0xfa, 0xf2, 0xfe, 0x89, 0x00, 0x02, 0xfd, 0x43, 0xfa, 0x57, 0x00, 0x8b, 0x0e, 0x13, 0x18, 0x3d, 0x0f, 0x18, 0xf5, 0xa7, 0xdc, 0xc3, 0xdb, 0x0f, 0xf6, 0x88, 0x17, 0xc4, 0x25, 0xff, 0x17, 0x93, 0xfe, 0x68, 0xf1, 0x83, 0xf7, 0x29, 0x01, 0x26, 0xfb, 0x55, 0xe7, 0x2d, 0xde, 0x57, 0xf5, 0x22, 0x24, 0xa1, 0x44, 0xdf, 0x34, 0xdc, 0xf9, 0xfe, 0xc2, 0x3c, 0xba, 0xb5, 0xe1, 0xa0, 0x14, 0xcc, 0x2a, 0x6c, 0x1c, 0x94, 0x03, 0x15, 0xfd, 0xda, 0x09, 0x75, 0x10, 0x02, 0xfc, 0x5a, 0xd7, 0x48, 0xc6, 0x20, 0xe2, 0xb2, 0x1c, 0xb3, 0x48, 0x49, 0x41, 0xec, 0x0b, 0xc7, 0xd3, 0xcf, 0xc2, 0xee, 0xdd, 0x48, 0x05, 0x28, 0x16, 0xe6, 0x0b, 0x16, 0xff, 0xec, 0x06, 0x4a, 0x1d, 0x45, 0x24, 0x59, 0x07, 0xc5, 0xd5, 0x59, 0xb9, 0xad, 0xcf, 0x42, 0x0c, 0x7f, 0x40, 0x8c, 0x44, 0xbe, 0x19, 0x03, 0xe7, 0x7d, 0xd3, 0x58, 0xe4, 0xdd, 0xfd, 0xc4, 0x03, 0xfd, 0xf6, 0x81, 0xf1, 0xd1, 0x06, 0x36, 0x2a, 0xd2, 0x37, 0xc6, 0x18, 0x1c, 0xde, 0xc6, 0xb5, 0x15, 0xc2, 0xf0, 0xf9, 0x92, 0x30, 0x91, 0x3d, 0x43, 0x1f, 0x73, 0xf7, 0x0d, 0xe8, 0xa6, 0xf3, 0x74, 0x00, 0x4d, 0xf8, 0xe0, 0xe2, 0x4b, 0xde, 0x08, 0xfd, 0x90, 0x2d, 0x0a, 0x46, 0x71, 0x2b, 0xbe, 0xed, 0x67, 0xbc, 0x28, 0xbd, 0x04, 0xeb, 0x48, 0x1d, 0xf8, 0x2d, 0xa0, 0x1a, 0x94, 0x00, 0x4b, 0xfb, 0x1f, 0x08, 0x8c, 0x0c, 0x83, 0xf6, 0x92, 0xd4, 0x66, 0xca, 0x72, 0xec, 0xce, 0x26, 0x4a, 0x4b, 0x22, 0x3a, 0x22, 0x00, 0x59, 0xcb, 0x7a, 0xc2, 0xd1, 0xe3, 0xe5, 0x0b, 0xa1, 0x19, 0xb2, 0x0c, 0xdd, 0xff, 0x55, 0x08, 0xb9, 0x1c, 0x02, 0x1f, 0xaa, 0xfe, 0x72, 0xcf, 0x0d, 0xbb, 0xaa, 0xd9, 0x2d, 0x18, 0x3d, 0x46, 0xb5, 0x40, 0x01, 0x10, 0x8c, 0xde, 0xdd, 0xd0, 0xa6, 0xe6, 0x20, 0x01, 0xb3, 0x05, 0xcf, 0xf8, 0x61, 0xf5, 0xfb, 0x0b, 0x54, 0x2c, 0x0e, 0x33, 0x4b, 0x0e, 0x88, 0xd4, 0x31, 0xb4, 0xff, 0xc9, 0xdf, 0x05, 0x63, 0x38, 0x19, 0x3d, 0xd0, 0x18, 0xc0, 0xf0, 0xcc, 0xe4, 0x1d, 0xf3, 0xee, 0xff, 0x38, 0xf7, 0xde, 0xe3, 0xd5, 0xe3, 0x87, 0x05, 0x2e, 0x33, 0x6c, 0x43, 0xff, 0x20, 0x17, 0xe2, 0x8f, 0xb7, 0xe2, 0xc1, 0x23, 0xf5, 0x7c, 0x25, 0x03, 0x30, 0xd2, 0x17, 0x10, 0xfd, 0x3f, 0xf9, 0x42, 0x06, 0xba, 0x08, 0xba, 0xf1, 0x1a, 0xd3, 0xc7, 0xcf, 0x03, 0xf7, 0xc6, 0x2f, 0xe2, 0x4b, 0x78, 0x31, 0x2e, 0xf4, 0x2d, 0xc4, 0xc5, 0xc3, 0xc8, 0xea, 0xa4, 0x12, 0x9d, 0x1c, 0xf5, 0x0c, 0x1e, 0x00, 0x16, 0x09, 0x58, 0x1b, 0x3e, 0x19, 0x66, 0xf6, 0x97, 0xca, 0x84, 0xbe, 0x8c, 0xe4, 0x6d, 0x23, 0x32, 0x4a, 0x15, 0x3b, 0x9a, 0x05, 0xa7, 0xd6, 0x6e, 0xcf, 0xf4, 0xe9, 0xdd, 0x04, 0xd4, 0x07, 0xb1, 0xfa, 0x1a, 0xf9, 0x5c, 0x10, 0x29, 0x2d, 0x1a, 0x2d, 0xb8, 0x03, 0x3b, 0xcc, 0x95, 0xb4, 0x5b, 0xd3, 0xc1, 0x11, 0xe0, 0x3e, 0xf7, 0x3a, 0x5f, 0x11, 0x09, 0xea, 0x13, 0xe2, 0x30, 0xf3, 0xee, 0xff, 0xcb, 0xf6, 0x9a, 0xe5, 0xc8, 0xe9, 0x7d, 0x0d, 0x46, 0x37, 0x1f, 0x3f, 0xc7, 0x15, 0x48, 0xd7, 0x8d, 0xb4, 0x57, 0xc8, 0xcb, 0xff, 0xfa, 0x2c, 0xd0, 0x30, 0x0c, 0x14, 0x17, 0xf9, 0x1d, 0xf7, 0x5a, 0x04, 0x2a, 0x05, 0xc1, 0xed, 0xea, 0xd2, 0x3c, 0xd6, 0x87, 0x01, 0x5f, 0x37, 0x7d, 0x4a, 0x81, 0x27, 0x6b, 0xe8, 0x72, 0xbe, 0xbb, 0xc6, 0xa8, 0xf2, 0x49, 0x19, 0x03, 0x1f, 0x8c, 0x0c, 0xdd, 0xff, 0x2f, 0x09, 0x4d, 0x19, 0x26, 0x13, 0xcd, 0xee, 0x43, 0xc7, 0xa3, 0xc3, 0xff, 0xef, 0xc0, 0x2d, 0x33, 0x4c, 0xda, 0x33, 0xc2, 0xfa, 0x9e, 0xcf, 0x49, 0xcf, 0x32, 0xee, 0x01, 0x09, 0xfc, 0x09, 0x8a, 0xfc, 0x81, 0xfc, 0xe7, 0x13, 0xb6, 0x2c, 0x36, 0x26, 0x50, 0xf9, 0x69, 0xc5, 0xf2, 0xb6, 0xe0, 0xdd, 0x4c, 0x1d, 0xd1, 0x43, 0x2c, 0x37, 0x21, 0x09, 0x7c, 0xe3, 0x14, 0xe0, 0xe6, 0xf3, 0x7e, 0x00, 0xf2, 0xf6, 0xfb, 0xe7, 0xea, 0xef, 0xb9, 0x14, 0xc8, 0x39, 0x45, 0x39, 0x21, 0x0a, 0x90, 0xcd, 0x82, 0xb3, 0x5b, 0xd0, 0xb4, 0x0a, 0x87, 0x33, 0x47, 0x30, 0x59, 0x0f, 0xd3, 0xf4, 0xf7, 0xf4, 0x96, 0x02, 0xf6, 0x01, 0xa8, 0xea, 0xf9, 0xd3, 0x82, 0xdd, 0xc0, 0x0b, 0x60, 0x3d, 0x2f, 0x47, 0x7e, 0x1c, 0x2c, 0xdd, 0x59, 0xba, 0x51, 0xcb, 0x40, 0xfb, 0xa1, 0x1f, 0xa5, 0x20, 0x74, 0x0b, 0x10, 0xff, 0xbd, 0x08, 0xab, 0x16, 0xfc, 0x0c, 0x02, 0xe8, 0x8f, 0xc5, 0x30, 0xca, 0xc1, 0xfb, 0xcd, 0x36, 0x44, 0x4c, 0x1c, 0x2b, 0xd9, 0xef, 0x9d, 0xc9, 0x84, 0xd0, 0x51, 0xf3, 0x62, 0x0d, 0x0e, 0x0c, 0x37, 0xfe, 0x7a, 0xff, 0x8c, 0x16, 0x12, 0x2b, 0x9a, 0x1e, 0x5b, 0xef, 0x40, 0xc0, 0x2c, 0xbb, 0x4c, 0xe9, 0x2c, 0x28, 0x09, 0x47, 0xcf, 0x31, 0x41, 0x00, 0x61, 0xdd, 0xde, 0xde, 0x59, 0xf5, 0x8c, 0x01, 0xa8, 0xf7, 0xd2, 0xea, 0x12, 0xf6, 0x04, 0x1b, 0xb7, 0x3a, 0x08, 0x32, 0x64, 0xfe, 0x2f, 0xc5, 0x7a, 0xb4, 0xb9, 0xd9, 0x92, 0x15, 0xea, 0x38, 0x5b, 0x2e, 0xd2, 0x09, 0x65, 0xf0, 0xfa, 0xf2, 0x0b, 0x01, 0x3d, 0xff, 0x77, 0xe8, 0x2b, 0xd6, 0x66, 0xe5, 0x5d, 0x15, 0xae, 0x41, 0x0e, 0x42, 0xbd, 0x10, 0xc2, 0xd2, 0x02, 0xb8, 0x77, 0xd1, 0x50, 0x04, 0x7b, 0x25, 0x5e, 0x21, 0xaf, 0x09, 0xb8, 0xfd, 0xd7, 0x07, 0x9c, 0x13, 0xed, 0x06, 0x36, 0xe2, 0x6e, 0xc5, 0x03, 0xd2, 0x6e, 0x07, 0x6e, 0x3e, 0x48, 0x4a, 0x2f, 0x21, 0x12, 0xe5, 0xec, 0xc4, 0x1c, 0xd3, 0x39, 0xf9, 0xd5, 0x11, 0xec, 0x0d, 0x98, 0xff, 0xf0, 0x01, 0x44, 0x18, 0x5d, 0x28, 0x7f, 0x16, 0x24, 0xe6, 0xd5, 0xbc, 0x25, 0xc1, 0x52, 0xf5, 0x0b, 0x32, 0x79, 0x48, 0xed, 0x2a, 0x0a, 0xf7, 0xdd, 0xd7, 0x9d, 0xde, 0x80, 0xf7, 0x17, 0x03, 0xca, 0xf8, 0x02, 0xee, 0x05, 0xfc, 0x45, 0x20, 0x0e, 0x3a, 0xad, 0x29, 0xd9, 0xf2, 0x65, 0xbe, 0x69, 0xb7, 0x34, 0xe4, 0x1d, 0x20, 0xed, 0x3c, 0x0d, 0x2b, 0x99, 0x03, 0xf2, 0xeb, 0x49, 0xf1, 0xda, 0xff, 0x0a, 0xfd, 0x3b, 0xe7, 0x55, 0xd9, 0xad, 0xed, 0x1d, 0x1e, 0x34, 0x44, 0x41, 0x3b, 0x93, 0x04, 0x72, 0xc9, 0x8c, 0xb7, 0x01, 0xd9, 0xa3, 0x0d, 0x99, 0x2a, 0x21, 0x21, 0x2d, 0x07, 0xf8, 0xfb, 0x87, 0x06, 0x4f, 0x10, 0x26, 0x01, 0x85, 0xdd, 0xd9, 0xc6, 0xd9, 0xda, 0xbf, 0x12, 0x5c, 0x44, 0x65, 0x46, 0x3a, 0x16, 0xd6, 0xda, 0xa1, 0xc1, 0x1d, 0xd7, 0xbb, 0xff, 0x38, 0x16, 0x6d, 0x0f, 0x94, 0x00, 0xd7, 0x03, 0x10, 0x19, 0xbc, 0x24, 0x27, 0x0e, 0xe0, 0xdd, 0x3c, 0xbb, 0xb4, 0xc8, 0x92, 0x01, 0xb6, 0x3a, 0xf8, 0x47, 0xbf, 0x22, 0xb2, 0xed, 0x2c, 0xd3, 0x64, 0xdf, 0x53, 0xfa, 0x0e, 0x05, 0x3b, 0xfa, 0x63, 0xf1, 0x97, 0x01, 0x60, 0x24, 0xe4, 0x37, 0x73, 0x20, 0xd1, 0xe7, 0x59, 0xb9, 0x42, 0xbc, 0x86, 0xef, 0x04, 0x2a, 0x6c, 0x3f, 0x64, 0x26, 0xd4, 0xfc, 0xac, 0xe7, 0x00, 0xf0, 0x18, 0xff, 0x73, 0xfb, 0xda, 0xe6, 0x64, 0xdd, 0x05, 0xf6, 0xd6, 0x25, 0xe1, 0x44, 0x00, 0x33, 0x4d, 0xf8, 0x87, 0xc1, 0xf7, 0xb8, 0xcd, 0xe1, 0xee, 0x16, 0xcd, 0x2e, 0xd9, 0x1f, 0xff, 0x03, 0xda, 0xf9, 0xf4, 0x04, 0xe9, 0x0c, 0xd3, 0xfb, 0x02, 0xda, 0xbc, 0xc9, 0x66, 0xe4, 0x6b, 0x1d, 0x7a, 0x48, 0xa4, 0x40, 0x99, 0x0a, 0x5c, 0xd1, 0xf1, 0xbf, 0x6a, 0xdc, 0xb6, 0x06, 0x58, 0x1a, 0x74, 0x10, 0x19, 0x01, 0x20, 0x05, 0x02, 0x19, 0x57, 0x20, 0xd1, 0x05, 0xc7, 0xd6, 0x73, 0xbb, 0x9f, 0xd1, 0xc0, 0x0d, 0xdf, 0x41, 0x94, 0x45, 0x6f, 0x19, 0x7f, 0xe4, 0x81, 0xcf, 0x32, 0xe1, 0xd6, 0xfd, 0x4a, 0x07, 0xea, 0xfb, 0xc2, 0xf4, 0xa8, 0x06, 0x41, 0x27, 0x59, 0x34, 0x9b, 0x16, 0x9a, 0xdd, 0x2f, 0xb6, 0xde, 0xc2, 0x64, 0xfb, 0xfe, 0x32, 0x47, 0x40, 0x7a, 0x20, 0xb0, 0xf5, 0xbb, 0xe3, 0x44, 0xef, 0xd0, 0xfe, 0x7e, 0xfa, 0x4c, 0xe7, 0x1b, 0xe2, 0x42, 0xfe, 0x4b, 0x2c, 0xc5, 0x43, 0x7f, 0x29, 0x4b, 0xec, 0x2b, 0xbb, 0x51, 0xbc, 0x96, 0xeb, 0xf5, 0x1f, 0xe7, 0x31, 0x7f, 0x1d, 0x31, 0x00, 0x83, 0xf7, 0x37, 0x03, 0x95, 0x09, 0x12, 0xf7, 0xbe, 0xd7, 0xed, 0xcd, 0x6e, 0xee, 0x22, 0x27, 0xad, 0x4a, 0x33, 0x39, 0x96, 0xfe, 0xf1, 0xc8, 0xee, 0xbf, 0xee, 0xe2, 0xf3, 0x0d, 0x0d, 0x1e, 0xe4, 0x10, 0x19, 0x01, 0xca, 0x05, 0x2d, 0x18, 0x5a, 0x1b, 0xbd, 0xfd, 0xff, 0xd0, 0x71, 0xbd, 0xa2, 0xdb, 0x86, 0x19, 0x57, 0x47, 0x56, 0x41, 0x34, 0x0f, 0xbb, 0xdb, 0x00, 0xcd, 0x15, 0xe4, 0xe8, 0x01, 0xba, 0x09, 0xa8, 0xfd, 0x07, 0xf8, 0x0b, 0x0b, 0xeb, 0x28, 0x8e, 0x2f, 0x75, 0x0c, 0x74, 0xd4, 0xf4, 0xb4, 0x17, 0xcb, 0x7a, 0x07, 0xc6, 0x3a, 0x73, 0x3f, 0x63, 0x19, 0x67, 0xee, 0x51, 0xe0, 0x21, 0xef, 0x1c, 0xff, 0x1a, 0xfa, 0x81, 0xe8, 0x4d, 0xe7, 0x22, 0x06, 0x60, 0x31, 0xe7, 0x40, 0x0f, 0x1f, 0xd2, 0xe0, 0x9f, 0xb6, 0x76, 0xc1, 0x2a, 0xf6, 0x67, 0x28, 0xcb, 0x33, 0x0c, 0x1a, 0xe8, 0xfb, 0x02, 0xf5, 0x7f, 0x01, 0x6b, 0x06, 0x09, 0xf3, 0xb8, 0xd6, 0x3e, 0xd3, 0xa8, 0xf8, 0xa5, 0x2f, 0xea, 0x4a, 0x47, 0x30, 0x81, 0xf2, 0xd7, 0xc1, 0xa3, 0xc1, 0x84, 0xea, 0x3e, 0x15, 0x28, 0x21, 0xa9, 0x10, 0x8c, 0x00, 0xde, 0x05, 0xa8, 0x16, 0xfa, 0x15, 0x23, 0xf6, 0xa1, 0xcc, 0x25, 0xc1, 0x71, 0xe6, 0x95, 0x24, 0xfa, 0x4a, 0x4a, 0x3b, 0x5f, 0x04, 0xa2, 0xd3, 0xcb, 0xcb, 0x0b, 0xe8, 0x69, 0x06, 0x3f, 0x0c, 0x53, 0xff, 0x0d, 0xfb, 0xb1, 0x0e, 0x59, 0x29, 0xb9, 0x29, 0x43, 0x02, 0x9c, 0xcc, 0xb3, 0xb5, 0xab, 0xd4, 0x77, 0x13, 0x24, 0x41, 0xe0, 0x3c, 0x55, 0x11, 0x2b, 0xe7, 0x8f, 0xdd, 0xbd, 0xef, 0xed, 0xff, 0x4e, 0xfa, 0x52, 0xea, 0xcb, 0xec, 0x71, 0x0d, 0xf7, 0x34, 0x70, 0x3c, 0xed, 0x13, 0x43, 0xd6, 0xef, 0xb3, 0x5a, 0xc8, 0x30, 0x01, 0x18, 0x30, 0x46, 0x34, 0x9e, 0x15, 0x32, 0xf7, 0x86, 0xf2, 0xe3, 0xff, 0x97, 0x03, 0xc6, 0xef, 0xe2, 0xd6, 0x87, 0xd9, 0xc1, 0x02, 0xc4, 0x36, 0x34, 0x49, 0x1a, 0x26, 0xb0, 0xe6, 0x48, 0xbc, 0x0a, 0xc5, 0x03, 0xf3, 0x5b, 0x1c, 0x83, 0x23, 0xb2, 0x0f, 0x70, 0xff, 0x6b, 0x05, 0x91, 0x14, 0x6b, 0x10, 0x2f, 0xef, 0xcc, 0xc9, 0x60, 0xc6, 0xc5, 0xf1, 0xa1, 0x2e, 0xa5, 0x4c, 0xa4, 0x33, 0x2e, 0xf9, 0x79, 0xcc, 0xfd, 0xcb, 0xfd, 0xec, 0x3f, 0x0b, 0xad, 0x0e, 0xd5, 0x00, 0xae, 0xfd, 0x89, 0x11, 0x9f, 0x28, 0x08, 0x23, 0x54, 0xf8, 0x41, 0xc6, 0x5e, 0xb8, 0x5d, 0xdf, 0x07, 0x1f, 0xdd, 0x45, 0xa2, 0x38, 0x78, 0x08, 0x39, 0xe0, 0xa4, 0xdb, 0x13, 0xf1, 0x50, 0x01, 0xfe, 0xfa, 0xa2, 0xec, 0x64, 0xf2, 0xfa, 0x13, 0x0e, 0x37, 0x79, 0x36, 0x7c, 0x08, 0xce, 0xcc, 0x49, 0xb3, 0xb7, 0xd0, 0x79, 0x0c, 0xa9, 0x36, 0x64, 0x33, 0x2f, 0x10, 0x45, 0xf2, 0x2d, 0xf0, 0x87, 0xfe, 0x29, 0x01, 0x5f, 0xed, 0x25, 0xd8, 0x91, 0xe0, 0x75, 0x0c, 0x52, 0x3c, 0x9b, 0x45, 0xf4, 0x1a, 0x79, 0xdb, 0x67, 0xb8, 0x22, 0xca, 0x2b, 0xfc, 0x15, 0x23, 0xf8, 0x24, 0xf5, 0x0d, 0xd1, 0xfd, 0x7e, 0x04, 0x14, 0x12, 0xd2, 0x0a, 0x18, 0xe9, 0x7b, 0xc8, 0xfc, 0xcc, 0x4c, 0xfd, 0x60, 0x37, 0x54, 0x4c, 0x8d, 0x2a, 0xf2, 0xed, 0x7e, 0xc6, 0xa0, 0xcd, 0xd4, 0xf2, 0x42, 0x10, 0xe3, 0x10, 0x08, 0x02, 0xdf, 0xff, 0x82, 0x13, 0xd6, 0x26, 0xb8, 0x1b, 0xe9, 0xee, 0x88, 0xc1, 0xdf, 0xbc, 0xdf, 0xea, 0xda, 0x29, 0xd1, 0x48, 0xc2, 0x32, 0x0d, 0xff, 0xca, 0xd9, 0xab, 0xda, 0x35, 0xf3, 0x2d, 0x03, 0x1a, 0xfc, 0x4e, 0xef, 0xe4, 0xf7, 0x9e, 0x19, 0x99, 0x37, 0x43, 0x2f, 0xfb, 0xfc, 0xc8, 0xc4, 0x98, 0xb4, 0x75, 0xda, 0x97, 0x17, 0x01, 0x3c, 0xff, 0x30, 0xf4, 0x09, 0x3d, 0xed, 0x1f, 0xee, 0x87, 0xfd, 0x39, 0xff, 0xd1, 0xeb, 0x6d, 0xda, 0x1a, 0xe8, 0x86, 0x15, 0x31, 0x40, 0x3b, 0x40, 0x26, 0x0f, 0x23, 0xd1, 0x63, 0xb6, 0xc3, 0xd0, 0xca, 0x05, 0x28, 0x29, 0x72, 0x25, 0x6b, 0x0b, 0xc1, 0xfb, 0x31, 0x03, 0x4c, 0x0f, 0x6d, 0x05, 0xf5, 0xe3, 0xb2, 0xc8, 0xbe, 0xd4, 0xb2, 0x08, 0x9f, 0x3e, 0x06, 0x4a, 0x40, 0x20, 0xfe, 0xe2, 0xdf, 0xc1, 0xba, 0xd0, 0x73, 0xf9, 0x3e, 0x15, 0xc1, 0x12, 0xd4, 0x02, 0x85, 0x01, 0xa9, 0x14, 0x16, 0x24, 0x04, 0x14, 0x45, 0xe6, 0x85, 0xbe, 0x13, 0xc3, 0xe7, 0xf6, 0x98, 0x33, 0xed, 0x49, 0x5e, 0x2b, 0x56, 0xf5, 0x15, 0xd4, 0xc0, 0xda, 0x19, 0xf6, 0x7a, 0x05, 0x84, 0xfd, 0x2f, 0xf2, 0x21, 0xfd, 0x3c, 0x1e, 0xa3, 0x36, 0x07, 0x27, 0xbf, 0xf1, 0x5f, 0xbe, 0xe0, 0xb7, 0x42, 0xe5, 0x4a, 0x22, 0xe1, 0x3f, 0x2b, 0x2d, 0x06, 0x03, 0x4d, 0xe8, 0x81, 0xec, 0xf2, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x01, 0x66, 0x04, 0x40, 0x03, 0xf7, 0xfd, 0xa1, 0xf9, 0x90, 0xfa, 0xf2, 0xfe, 0x89, 0x00, 0x02, 0xfd, 0x43, 0xfa, 0x57, 0x00, 0x8b, 0x0e, 0x13, 0x18, 0x3d, 0x0f, 0x18, 0xf5, 0xa7, 0xdc, 0xc3, 0xdb, 0x0f, 0xf6, 0x88, 0x17, 0xc4, 0x25, 0xff, 0x17, 0x93, 0xfe, 0x68, 0xf1, 0x83, 0xf7, 0x29, 0x01, 0x26, 0xfb, 0x55, 0xe7, 0x2d, 0xde, 0x57, 0xf5, 0x22, 0x24, 0xa1, 0x44, 0xdf, 0x34, 0xdc, 0xf9, 0xfe, 0xc2, 0x3c, 0xba, 0xb5, 0xe1, 0xa0, 0x14, 0xcc, 0x2a, 0x6c, 0x1c, 0x94, 0x03, 0x15, 0xfd, 0xda, 0x09, 0x75, 0x10, 0x02, 0xfc, 0x5a, 0xd7, 0x48, 0xc6, 0x20, 0xe2, 0xb2, 0x1c, 0xb3, 0x48, 0x49, 0x41, 0xec, 0x0b, 0xc7, 0xd3, 0xcf, 0xc2, 0xee, 0xdd, 0x48, 0x05, 0x28, 0x16, 0xe6, 0x0b, 0x16, 0xff, 0xec, 0x06, 0x4a, 0x1d, 0x45, 0x24, 0x59, 0x07, 0xc5, 0xd5, 0x59, 0xb9, 0xad, 0xcf, 0x42, 0x0c, 0x7f, 0x40, 0x8c, 0x44, 0xbe, 0x19, 0x03, 0xe7, 0x7d, 0xd3, 0x58, 0xe4, 0xdd, 0xfd, 0xc4, 0x03, 0xfd, 0xf6, 0x81, 0xf1, 0xd1, 0x06, 0x36, 0x2a, 0xd2, 0x37, 0xc6, 0x18, 0x1c, 0xde, 0xc6, 0xb5, 0x15, 0xc2, 0xf0, 0xf9, 0x92, 0x30, 0x91, 0x3d, 0x43, 0x1f, 0x73, 0xf7, 0x0d, 0xe8, 0xa6, 0xf3, 0x74, 0x00, 0x4d, 0xf8, 0xe0, 0xe2, 0x4b, 0xde, 0x08, 0xfd, 0x90, 0x2d, 0x0a, 0x46, 0x71, 0x2b, 0xbe, 0xed, 0x67, 0xbc, 0x28, 0xbd, 0x04, 0xeb, 0x48, 0x1d, 0xf8, 0x2d, 0xa0, 0x1a, 0x94, 0x00, 0x4b, 0xfb, 0x1f, 0x08, 0x8c, 0x0c, 0x83, 0xf6, 0x92, 0xd4, 0x66, 0xca, 0x72, 0xec, 0xce, 0x26, 0x4a, 0x4b, 0x22, 0x3a, 0x22, 0x00, 0x59, 0xcb, 0x7a, 0xc2, 0xd1, 0xe3, 0xe5, 0x0b, 0xa1, 0x19, 0xb2, 0x0c, 0xdd, 0xff, 0x55, 0x08, 0xb9, 0x1c, 0x02, 0x1f, 0xaa, 0xfe, 0x72, 0xcf, 0x0d, 0xbb, 0xaa, 0xd9, 0x2d, 0x18, 0x3d, 0x46, 0xb5, 0x40, 0x01, 0x10, 0x8c, 0xde, 0xdd, 0xd0, 0xa6, 0xe6, 0x20, 0x01, 0xb3, 0x05, 0xcf, 0xf8, 0x61, 0xf5, 0xfb, 0x0b, 0x54, 0x2c, 0x0e, 0x33, 0x4b, 0x0e, 0x88, 0xd4, 0x31, 0xb4, 0xff, 0xc9, 0xdf, 0x05, 0x63, 0x38, 0x19, 0x3d, 0xd0, 0x18, 0xc0, 0xf0, 0xcc, 0xe4, 0x1d, 0xf3, 0xee, 0xff, 0x38, 0xf7, 0xde, 0xe3, 0xd5, 0xe3, 0x87, 0x05, 0x2e, 0x33, 0x6c, 0x43, 0xff, 0x20, 0x17, 0xe2, 0x8f, 0xb7, 0xe2, 0xc1, 0x23, 0xf5, 0x7c, 0x25, 0x03, 0x30, 0xd2, 0x17, 0x10, 0xfd, 0x3f, 0xf9, 0x42, 0x06, 0xba, 0x08, 0xba, 0xf1, 0x1a, 0xd3, 0xc7, 0xcf, 0x03, 0xf7, 0xc6, 0x2f, 0xe2, 0x4b, 0x78, 0x31, 0x2e, 0xf4, 0x2d, 0xc4, 0xc5, 0xc3, 0xc8, 0xea, 0xa4, 0x12, 0x9d, 0x1c, 0xf5, 0x0c, 0x1e, 0x00, 0x16, 0x09, 0x58, 0x1b, 0x3e, 0x19, 0x66, 0xf6, 0x97, 0xca, 0x84, 0xbe, 0x8c, 0xe4, 0x6d, 0x23, 0x32, 0x4a, 0x15, 0x3b, 0x9a, 0x05, 0xa7, 0xd6, 0x6e, 0xcf, 0xf4, 0xe9, 0xdd, 0x04, 0xd4, 0x07, 0xb1, 0xfa, 0x1a, 0xf9, 0x5c, 0x10, 0x29, 0x2d, 0x1a, 0x2d, 0xb8, 0x03, 0x3b, 0xcc, 0x95, 0xb4, 0x5b, 0xd3, 0xc1, 0x11, 0xe0, 0x3e, 0xf7, 0x3a, 0x5f, 0x11, 0x09, 0xea, 0x13, 0xe2, 0x30, 0xf3, 0xee, 0xff, 0xcb, 0xf6, 0x9a, 0xe5, 0xc8, 0xe9, 0x7d, 0x0d, 0x46, 0x37, 0x1f, 0x3f, 0xc7, 0x15, 0x48, 0xd7, 0x8d, 0xb4, 0x57, 0xc8, 0xcb, 0xff, 0xfa, 0x2c, 0xd0, 0x30, 0x0c, 0x14, 0x17, 0xf9, 0x1d, 0xf7, 0x5a, 0x04, 0x2a, 0x05, 0xc1, 0xed, 0xea, 0xd2, 0x3c, 0xd6, 0x87, 0x01, 0x5f, 0x37, 0x7d, 0x4a, 0x81, 0x27, 0x6b, 0xe8, 0x72, 0xbe, 0xbb, 0xc6, 0xa8, 0xf2, 0x49, 0x19, 0x03, 0x1f, 0x8c, 0x0c, 0xdd, 0xff, 0x2f, 0x09, 0x4d, 0x19, 0x26, 0x13, 0xcd, 0xee, 0x43, 0xc7, 0xa3, 0xc3, 0xff, 0xef, 0xc0, 0x2d, 0x33, 0x4c, 0xda, 0x33, 0xc2, 0xfa, 0x9e, 0xcf, 0x49, 0xcf, 0x32, 0xee, 0x01, 0x09, 0xfc, 0x09, 0x8a, 0xfc, 0x81, 0xfc, 0xe7, 0x13, 0xb6, 0x2c, 0x36, 0x26, 0x50, 0xf9, 0x69, 0xc5, 0xf2, 0xb6, 0xe0, 0xdd, 0x4c, 0x1d, 0xd1, 0x43, 0x2c, 0x37, 0x21, 0x09, 0x7c, 0xe3, 0x14, 0xe0, 0xe6, 0xf3, 0x7e, 0x00, 0xf2, 0xf6, 0xfb, 0xe7, 0xea, 0xef, 0xb9, 0x14, 0xc8, 0x39, 0x45, 0x39, 0x21, 0x0a, 0x90, 0xcd, 0x82, 0xb3, 0x5b, 0xd0, 0xb4, 0x0a, 0x87, 0x33, 0x47, 0x30, 0x59, 0x0f, 0xd3, 0xf4, 0xf7, 0xf4, 0x96, 0x02, 0xf6, 0x01, 0xa8, 0xea, 0xf9, 0xd3, 0x82, 0xdd, 0xc0, 0x0b, 0x60, 0x3d, 0x2f, 0x47, 0x7e, 0x1c, 0x2c, 0xdd, 0x59, 0xba, 0x51, 0xcb, 0x40, 0xfb, 0xa1, 0x1f, 0xa5, 0x20, 0x74, 0x0b, 0x10, 0xff, 0xbd, 0x08, 0xab, 0x16, 0xfc, 0x0c, 0x02, 0xe8, 0x8f, 0xc5, 0x30, 0xca, 0xc1, 0xfb, 0xcd, 0x36, 0x44, 0x4c, 0x1c, 0x2b, 0xd9, 0xef, 0x9d, 0xc9, 0x84, 0xd0, 0x51, 0xf3, 0x62, 0x0d, 0x0e, 0x0c, 0x37, 0xfe, 0x7a, 0xff, 0x8c, 0x16, 0x12, 0x2b, 0x9a, 0x1e, 0x5b, 0xef, 0x40, 0xc0, 0x2c, 0xbb, 0x4c, 0xe9, 0x2c, 0x28, 0x09, 0x47, 0xcf, 0x31, 0x41, 0x00, 0x61, 0xdd, 0xde, 0xde, 0x59, 0xf5, 0x8c, 0x01, 0xa8, 0xf7, 0xd2, 0xea, 0x12, 0xf6, 0x04, 0x1b, 0xb7, 0x3a, 0x08, 0x32, 0x64, 0xfe, 0x2f, 0xc5, 0x7a, 0xb4, 0xb9, 0xd9, 0x92, 0x15, 0xea, 0x38, 0x5b, 0x2e, 0xd2, 0x09, 0x65, 0xf0, 0xfa, 0xf2, 0x0b, 0x01, 0x3d, 0xff, 0x77, 0xe8, 0x2b, 0xd6, 0x66, 0xe5, 0x5d, 0x15, 0xae, 0x41, 0x0e, 0x42, 0xbd, 0x10, 0xc2, 0xd2, 0x02, 0xb8, 0x77, 0xd1, 0x50, 0x04, 0x7b, 0x25, 0x5e, 0x21, 0xaf, 0x09, 0xb8, 0xfd, 0xd7, 0x07, 0x9c, 0x13, 0xed, 0x06, 0x36, 0xe2, 0x6e, 0xc5, 0x03, 0xd2, 0x6e, 0x07, 0x6e, 0x3e, 0x48, 0x4a, 0x2f, 0x21, 0x12, 0xe5, 0xec, 0xc4, 0x1c, 0xd3, 0x39, 0xf9, 0xd5, 0x11, 0xec, 0x0d, 0x98, 0xff, 0xf0, 0x01, 0x44, 0x18, 0x5d, 0x28, 0x7f, 0x16, 0x24, 0xe6, 0xd5, 0xbc, 0x25, 0xc1, 0x52, 0xf5, 0x0b, 0x32, 0x79, 0x48, 0xed, 0x2a, 0x0a, 0xf7, 0xdd, 0xd7, 0x9d, 0xde, 0x80, 0xf7, 0x17, 0x03, 0xca, 0xf8, 0x02, 0xee, 0x05, 0xfc, 0x45, 0x20, 0x0e, 0x3a, 0xad, 0x29, 0xd9, 0xf2, 0x65, 0xbe, 0x69, 0xb7, 0x34, 0xe4, 0x1d, 0x20, 0xed, 0x3c, 0x0d, 0x2b, 0x99, 0x03, 0xf2, 0xeb, 0x49, 0xf1, 0xda, 0xff, 0x0a, 0xfd, 0x3b, 0xe7, 0x55, 0xd9, 0xad, 0xed, 0x1d, 0x1e, 0x34, 0x44, 0x41, 0x3b, 0x93, 0x04, 0x72, 0xc9, 0x8c, 0xb7, 0x01, 0xd9, 0xa3, 0x0d, 0x99, 0x2a, 0x21, 0x21, 0x2d, 0x07, 0xf8, 0xfb, 0x87, 0x06, 0x4f, 0x10, 0x26, 0x01, 0x85, 0xdd, 0xd9, 0xc6, 0xd9, 0xda, 0xbf, 0x12, 0x5c, 0x44, 0x65, 0x46, 0x3a, 0x16, 0xd6, 0xda, 0xa1, 0xc1, 0x1d, 0xd7, 0xbb, 0xff, 0x38, 0x16, 0x6d, 0x0f, 0x94, 0x00, 0xd7, 0x03, 0x10, 0x19, 0xbc, 0x24, 0x27, 0x0e, 0xe0, 0xdd, 0x3c, 0xbb, 0xb4, 0xc8, 0x92, 0x01, 0xb6, 0x3a, 0xf8, 0x47, 0xbf, 0x22, 0xb2, 0xed, 0x2c, 0xd3, 0x64, 0xdf, 0x53, 0xfa, 0x0e, 0x05, 0x3b, 0xfa, 0x63, 0xf1, 0x97, 0x01, 0x60, 0x24, 0xe4, 0x37, 0x73, 0x20, 0xd1, 0xe7, 0x59, 0xb9, 0x42, 0xbc, 0x86, 0xef, 0x04, 0x2a, 0x6c, 0x3f, 0x64, 0x26, 0xd4, 0xfc, 0xac, 0xe7, 0x00, 0xf0, 0x18, 0xff, 0x73, 0xfb, 0xda, 0xe6, 0x64, 0xdd, 0x05, 0xf6, 0xd6, 0x25, 0xe1, 0x44, 0x00, 0x33, 0x4d, 0xf8, 0x87, 0xc1, 0xf7, 0xb8, 0xcd, 0xe1, 0xee, 0x16, 0xcd, 0x2e, 0xd9, 0x1f, 0xff, 0x03, 0xda, 0xf9, 0xf4, 0x04, 0xe9, 0x0c, 0xd3, 0xfb, 0x02, 0xda, 0xbc, 0xc9, 0x66, 0xe4, 0x6b, 0x1d, 0x7a, 0x48, 0xa4, 0x40, 0x99, 0x0a, 0x5c, 0xd1, 0xf1, 0xbf, 0x6a, 0xdc, 0xb6, 0x06, 0x58, 0x1a, 0x74, 0x10, 0x19, 0x01, 0x20, 0x05, 0x02, 0x19, 0x57, 0x20, 0xd1, 0x05, 0xc7, 0xd6, 0x73, 0xbb, 0x9f, 0xd1, 0xc0, 0x0d, 0xdf, 0x41, 0x94, 0x45, 0x6f, 0x19, 0x7f, 0xe4, 0x81, 0xcf, 0x32, 0xe1, 0xd6, 0xfd, 0x4a, 0x07, 0xea, 0xfb, 0xc2, 0xf4, 0xa8, 0x06, 0x41, 0x27, 0x59, 0x34, 0x9b, 0x16, 0x9a, 0xdd, 0x2f, 0xb6, 0xde, 0xc2, 0x64, 0xfb, 0xfe, 0x32, 0x47, 0x40, 0x7a, 0x20, 0xb0, 0xf5, 0xbb, 0xe3, 0x44, 0xef, 0xd0, 0xfe, 0x7e, 0xfa, 0x4c, 0xe7, 0x1b, 0xe2, 0x42, 0xfe, 0x4b, 0x2c, 0xc5, 0x43, 0x7f, 0x29, 0x4b, 0xec, 0x2b, 0xbb, 0x51, 0xbc, 0x96, 0xeb, 0xf5, 0x1f, 0xe7, 0x31, 0x7f, 0x1d, 0x31, 0x00, 0x83, 0xf7, 0x37, 0x03, 0x95, 0x09, 0x12, 0xf7, 0xbe, 0xd7, 0xed, 0xcd, 0x6e, 0xee, 0x22, 0x27, 0xad, 0x4a, 0x33, 0x39, 0x96, 0xfe, 0xf1, 0xc8, 0xee, 0xbf, 0xee, 0xe2, 0xf3, 0x0d, 0x0d, 0x1e, 0xe4, 0x10, 0x19, 0x01, 0xca, 0x05, 0x2d, 0x18, 0x5a, 0x1b, 0xbd, 0xfd, 0xff, 0xd0, 0x71, 0xbd, 0xa2, 0xdb, 0x86, 0x19, 0x57, 0x47, 0x56, 0x41, 0x34, 0x0f, 0xbb, 0xdb, 0x00, 0xcd, 0x15, 0xe4, 0xe8, 0x01, 0xba, 0x09, 0xa8, 0xfd, 0x07, 0xf8, 0x0b, 0x0b, 0xeb, 0x28, 0x8e, 0x2f, 0x75, 0x0c, 0x74, 0xd4, 0xf4, 0xb4, 0x17, 0xcb, 0x7a, 0x07, 0xc6, 0x3a, 0x73, 0x3f, 0x63, 0x19, 0x67, 0xee, 0x51, 0xe0, 0x21, 0xef, 0x1c, 0xff, 0x1a, 0xfa, 0x81, 0xe8, 0x4d, 0xe7, 0x22, 0x06, 0x60, 0x31, 0xe7, 0x40, 0x0f, 0x1f, 0xd2, 0xe0, 0x9f, 0xb6, 0x76, 0xc1, 0x2a, 0xf6, 0x67, 0x28, 0xcb, 0x33, 0x0c, 0x1a, 0xe8, 0xfb, 0x02, 0xf5, 0x7f, 0x01, 0x6b, 0x06, 0x09, 0xf3, 0xb8, 0xd6, 0x3e, 0xd3, 0xa8, 0xf8, 0xa5, 0x2f, 0xea, 0x4a, 0x47, 0x30, 0x81, 0xf2, 0xd7, 0xc1, 0xa3, 0xc1, 0x84, 0xea, 0x3e, 0x15, 0x28, 0x21, 0xa9, 0x10, 0x8c, 0x00, 0xde, 0x05, 0xa8, 0x16, 0xfa, 0x15, 0x23, 0xf6, 0xa1, 0xcc, 0x25, 0xc1, 0x71, 0xe6, 0x95, 0x24, 0xfa, 0x4a, 0x4a, 0x3b, 0x5f, 0x04, 0xa2, 0xd3, 0xcb, 0xcb, 0x0b, 0xe8, 0x69, 0x06, 0x3f, 0x0c, 0x53, 0xff, 0x0d, 0xfb, 0xb1, 0x0e, 0x59, 0x29, 0xb9, 0x29, 0x43, 0x02, 0x9c, 0xcc, 0xb3, 0xb5, 0xab, 0xd4, 0x77, 0x13, 0x24, 0x41, 0xe0, 0x3c, 0x55, 0x11, 0x2b, 0xe7, 0x8f, 0xdd, 0xbd, 0xef, 0xed, 0xff, 0x4e, 0xfa, 0x52, 0xea, 0xcb, 0xec, 0x71, 0x0d, 0xf7, 0x34, 0x70, 0x3c, 0xed, 0x13, 0x43, 0xd6, 0xef, 0xb3, 0x5a, 0xc8, 0x30, 0x01, 0x18, 0x30, 0x46, 0x34, 0x9e, 0x15, 0x32, 0xf7, 0x86, 0xf2, 0xe3, 0xff, 0x97, 0x03, 0xc6, 0xef, 0xe2, 0xd6, 0x87, 0xd9, 0xc1, 0x02, 0xc4, 0x36, 0x34, 0x49, 0x1a, 0x26, 0xb0, 0xe6, 0x48, 0xbc, 0x0a, 0xc5, 0x03, 0xf3, 0x5b, 0x1c, 0x83, 0x23, 0xb2, 0x0f, 0x70, 0xff, 0x6b, 0x05, 0x91, 0x14, 0x6b, 0x10, 0x2f, 0xef, 0xcc, 0xc9, 0x60, 0xc6, 0xc5, 0xf1, 0xa1, 0x2e, 0xa5, 0x4c, 0xa4, 0x33, 0x2e, 0xf9, 0x79, 0xcc, 0xfd, 0xcb, 0xfd, 0xec, 0x3f, 0x0b, 0xad, 0x0e, 0xd5, 0x00, 0xae, 0xfd, 0x89, 0x11, 0x9f, 0x28, 0x08, 0x23, 0x54, 0xf8, 0x41, 0xc6, 0x5e, 0xb8, 0x5d, 0xdf, 0x07, 0x1f, 0xdd, 0x45, 0xa2, 0x38, 0x78, 0x08, 0x39, 0xe0, 0xa4, 0xdb, 0x13, 0xf1, 0x50, 0x01, 0xfe, 0xfa, 0xa2, 0xec, 0x64, 0xf2, 0xfa, 0x13, 0x0e, 0x37, 0x79, 0x36, 0x7c, 0x08, 0xce, 0xcc, 0x49, 0xb3, 0xb7, 0xd0, 0x79, 0x0c, 0xa9, 0x36, 0x64, 0x33, 0x2f, 0x10, 0x45, 0xf2, 0x2d, 0xf0, 0x87, 0xfe, 0x29, 0x01, 0x5f, 0xed, 0x25, 0xd8, 0x91, 0xe0, 0x75, 0x0c, 0x52, 0x3c, 0x9b, 0x45, 0xf4, 0x1a, 0x79, 0xdb, 0x67, 0xb8, 0x22, 0xca, 0x2b, 0xfc, 0x15, 0x23, 0xf8, 0x24, 0xf5, 0x0d, 0xd1, 0xfd, 0x7e, 0x04, 0x14, 0x12, 0xd2, 0x0a, 0x18, 0xe9, 0x7b, 0xc8, 0xfc, 0xcc, 0x4c, 0xfd, 0x60, 0x37, 0x54, 0x4c, 0x8d, 0x2a, 0xf2, 0xed, 0x7e, 0xc6, 0xa0, 0xcd, 0xd4, 0xf2, 0x42, 0x10, 0xe3, 0x10, 0x08, 0x02, 0xdf, 0xff, 0x82, 0x13, 0xd6, 0x26, 0xb8, 0x1b, 0xe9, 0xee, 0x88, 0xc1, 0xdf, 0xbc, 0xdf, 0xea, 0xda, 0x29, 0xd1, 0x48, 0xc2, 0x32, 0x0d, 0xff, 0xca, 0xd9, 0xab, 0xda, 0x35, 0xf3, 0x2d, 0x03, 0x1a, 0xfc, 0x4e, 0xef, 0xe4, 0xf7, 0x9e, 0x19, 0x99, 0x37, 0x43, 0x2f, 0xfb, 0xfc, 0xc8, 0xc4, 0x98, 0xb4, 0x75, 0xda, 0x97, 0x17, 0x01, 0x3c, 0xff, 0x30, 0xf4, 0x09, 0x3d, 0xed, 0x1f, 0xee, 0x87, 0xfd, 0x39, 0xff, 0xd1, 0xeb, 0x6d, 0xda, 0x1a, 0xe8, 0x86, 0x15, 0x31, 0x40, 0x3b, 0x40, 0x26, 0x0f, 0x23, 0xd1, 0x63, 0xb6, 0xc3, 0xd0, 0xca, 0x05, 0x28, 0x29, 0x72, 0x25, 0x6b, 0x0b, 0xc1, 0xfb, 0x31, 0x03, 0x4c, 0x0f, 0x6d, 0x05, 0xf5, 0xe3, 0xb2, 0xc8, 0xbe, 0xd4, 0xb2, 0x08, 0x9f, 0x3e, 0x06, 0x4a, 0x40, 0x20, 0xfe, 0xe2, 0xdf, 0xc1, 0xba, 0xd0, 0x73, 0xf9, 0x3e, 0x15, 0xc1, 0x12, 0xd4, 0x02, 0x85, 0x01, 0xa9, 0x14, 0x16, 0x24, 0x04, 0x14, 0x45, 0xe6, 0x85, 0xbe, 0x13, 0xc3, 0xe7, 0xf6, 0x98, 0x33, 0xed, 0x49, 0x5e, 0x2b, 0x56, 0xf5, 0x15, 0xd4, 0xc0, 0xda, 0x19, 0xf6, 0x7a, 0x05, 0x84, 0xfd, 0x2f, 0xf2, 0x21, 0xfd, 0x3c, 0x1e, 0xa3, 0x36, 0x07, 0x27, 0xbf, 0xf1, 0x5f, 0xbe, 0xe0, 0xb7, 0x42, 0xe5, 0x4a, 0x22, 0xe1, 0x3f, 0x2b, 0x2d, 0x06, 0x03, 0x4d, 0xe8, 0x81, 0xec, 0xf2, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; static void report_func(void *ptr, int code, int level, int delay) { GString *output = ptr; printf("code %i level %i delay %i\n", code, level, delay); g_string_append_printf(output, "code %i level %i delay %i, ", code, level, delay); } int main(int argc, char **argv) { if (htole16(0x1234) != 0x1234) { printf("Wrong native byte order - skipping test\n"); return 0; } GString *output = g_string_new(""); dtmf_rx_state_t *dtmf_dsp; dtmf_dsp = dtmf_rx_init(NULL, NULL, NULL); dtmf_rx_set_realtime_callback(dtmf_dsp, report_func, output); unsigned char *reader = samples; unsigned char *end = samples + sizeof(samples); int packetise = 160; int iter = 0; while (1) { unsigned char *packet_end = reader + packetise * 2; if (packet_end > end) break; int ret = dtmf_rx(dtmf_dsp, (void *) reader, packetise); printf("ret %i\n", ret); if (ret != 0) abort(); int digit = dtmf_rx_status(dtmf_dsp); printf("status %i %c\n", digit, digit); reader += packetise * 2; iter++; } printf("result: %s\n", output->str); if (strcmp(output->str, "code 56 level -4 delay 1020, " "code 0 level -99 delay 918, " "code 56 level -4 delay 510, " "code 0 level -99 delay 816, ")) abort(); g_string_free(output, TRUE); dtmf_rx_free(dtmf_dsp); return 0; } rtpengine-mr12.5.1.22/t/test-ice.pl000077500000000000000000000005611474347554000167130ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; my $r = NGCP::Rtpengine::Test->new(); my $a = $r->client(ice => 1); my $b = $r->client(sockdomain => &Socket::AF_INET); $r->timer_once(3, sub { $b->answer($a) }); $r->timer_once(5, sub { $a->start_rtp(); $b->start_rtp(); }); $a->offer($b, ICE => 'remove', 'address-family' => 'IP4'); $r->run(); rtpengine-mr12.5.1.22/t/test-interfaces.pl000077500000000000000000000025661474347554000203050ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $iterations = 10; my @interfaces = qw(int ext); my @domains = (&Socket::AF_INET); my $r = NGCP::Rtpengine::Test->new(media_port => 50000); for my $a_domain (@domains) { for my $b_domain (@domains) { if (!@interfaces) { for (1 .. $iterations) { run_test([], $a_domain, $b_domain); } } else { for my $a_interface (@interfaces) { for my $b_interface (@interfaces) { for (1 .. $iterations) { run_test([$a_interface, $b_interface], $a_domain, $b_domain); } } } } } } sub run_test { my ($directions, $a_domain, $b_domain) = @_; print("Testing directions @{$directions} between $a_domain and $b_domain\n"); my ($a, $b) = $r->client_pair( {sockdomain => $a_domain}, {sockdomain => $b_domain} ); print("Offering with address: " . $a->{sockets}->[0]->[0]->sockhost . "\n"); my %dir_arg = (); $dir_arg{direction} = $directions if @{$directions}; $a->offer($b, ICE => 'remove', label => "caller", %dir_arg); print("Offer out with address: " . $b->{remote_media}->connection->{address} . "\n"); print("Answering with address: " . $b->{sockets}->[0]->[0]->sockhost . "\n"); $b->answer($a, ICE => 'remove', label => "callee"); print("Answer out with address: " . $a->{remote_media}->connection->{address} . "\n"); $a->teardown(); print("\n"); } rtpengine-mr12.5.1.22/t/test-kernel-module.c000066400000000000000000000055461474347554000205320ustar00rootroot00000000000000#include #include "kernel.h" #include "../kernel-module/xt_RTPENGINE.h" int main(void) { int ret; ret = kernel_setup_table(0); assert(ret == 0); struct rtpengine_target_info reti; struct rtpengine_destination_info redi; reti = (struct rtpengine_target_info) { .local = { .family = AF_INET, .u.ipv4 = htonl(0x7f000001), .port = 4444, }, .expected_src = { .family = AF_INET, .u.ipv4 = htonl(0x7f000001), .port = 5555, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .decrypt = { .cipher = REC_AEAD_AES_GCM_256, .hmac = REH_NULL, .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .master_key = { 0xb8, 0x9a, 0x55, 0xee, 0xd9, 0xb6, 0x6f, 0xca, 0x76, 0xd3, 0x2a, 0x7e, 0x49, 0xfb, 0x8e, 0xa7, 0xff, 0xa7, 0xa9, 0xcd, 0x46, 0x42, 0x93, 0xf2, 0xd6, 0x23, 0x2c, 0x65, 0x77, 0x06, 0xdc, 0x71 }, .master_salt = { 0xc5, 0xd5, 0x69, 0x14, 0x90, 0x6a, 0x15, 0xfc, 0x52, 0x7b, 0x0a, 0xdb }, }, .rtp = 1, .rtcp_mux = 1, .dtls = 1, .stun = 1, .ssrc = { 0x12345678, 0, }, .num_payload_types = 8, .pt_input = { { 97, 90000, }, { 98, 90000, }, { 120, 90000, }, { 121, 90000, }, { 124, 90000, }, { 125, 90000, }, { 126, 90000, }, { 127, 90000, }, { 0, }, }, }; redi = (struct rtpengine_destination_info) { .local = { .family = AF_INET, .u.ipv4 = htonl(0x7f000001), .port = 4444, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u.ipv4 = htonl(0x7f000001), .port = 6666, }, .dst_addr = { .family = AF_INET, .u.ipv4 = htonl(0x7f000001), .port = 7777, }, .encrypt = { .cipher = REC_AEAD_AES_GCM_256, .hmac = REH_NULL, .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .master_key = { 0xb8, 0x9a, 0x55, 0xee, 0xd9, 0xb6, 0x6f, 0xca, 0x76, 0xd3, 0x2a, 0x7e, 0x49, 0xfb, 0x8e, 0xa7, 0xff, 0xa7, 0xa9, 0xcd, 0x46, 0x42, 0x93, 0xf2, 0xd6, 0x23, 0x2c, 0x65, 0x77, 0x06, 0xdc, 0x71 }, .master_salt = { 0xc5, 0xd5, 0x69, 0x14, 0x90, 0x6a, 0x15, 0xfc, 0x52, 0x7b, 0x0a, 0xdb }, }, .ssrc_out = { 0x54321, 0, }, }, }; ret = kernel_add_stream(&reti); assert(ret == 0); ret = kernel_add_destination(&redi); assert(ret == 0); reti.local.port = 4446; redi.local.port = 4446; ret = kernel_add_stream(&reti); assert(ret == 0); ret = kernel_add_destination(&redi); assert(ret == 0); reti.local.port = 4448; redi.local.port = 4448; ret = kernel_add_stream(&reti); assert(ret == 0); ret = kernel_add_destination(&redi); assert(ret == 0); reti.local.port = 4450; redi.local.port = 4450; ret = kernel_add_stream(&reti); assert(ret == 0); ret = kernel_add_destination(&redi); assert(ret == 0); return 0; } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/test-mix-buffer.c000066400000000000000000000447451474347554000200370ustar00rootroot00000000000000#include "mix_buffer.h" #include #include #include #include "statistics.h" struct rtpengine_config rtpe_config; struct global_stats_gauge rtpe_stats_gauge; struct global_gauge_min_max rtpe_gauge_min_max; struct global_stats_counter *rtpe_stats; struct global_stats_counter rtpe_stats_rate; struct global_stats_counter rtpe_stats_intv; struct global_stats_sampled rtpe_stats_sampled; struct global_sampled_min_max rtpe_sampled_min_max; struct global_sampled_min_max rtpe_sampled_graphite_min_max; struct global_sampled_min_max rtpe_sampled_graphite_min_max_sampled; __thread struct bufferpool *media_bufferpool; void append_thread_lpr_to_glob_lpr(void) {} struct bufferpool *shm_bufferpool; int get_local_log_level(unsigned int u) { return -1; } int main(void) { struct mix_buffer mb; memset(&mb, 0, sizeof(mb)); bool ret = mix_buffer_init(&mb, AV_SAMPLE_FMT_S16, 500, 1, 100, 0); assert(ret == true); // pre-fill with zeroes unsigned int size = 0; void *p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); p = mix_buffer_read_fast(&mb, 25, &size); assert(p != NULL); assert(size == 50); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // slow-path read around boundary p = mix_buffer_read_fast(&mb, 20, &size); assert(p == NULL); assert(size == 40); char buf[size]; mix_buffer_read_slow(&mb, buf, 20); assert(memcmp(buf, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // write-in and read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 10); assert(memcmp(p, (int16_t[]){11,22,33,44,55}, size) == 0); // subsequent read with pre-fill p = mix_buffer_read_fast(&mb, 25, &size); assert(p != NULL); assert(size == 50); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // write-in around boundary ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64}, 15); assert(ret == true); // read-out around boundary past end with pre-fill p = mix_buffer_read_fast(&mb, 20, &size); assert(p == NULL); assert(size == 40); mix_buffer_read_slow(&mb, buf, 20); assert(memcmp(buf, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,0,0,0,0,0}, size) == 0); // write-in and partial read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64}, 15); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 10); assert(memcmp(p, (int16_t[]){50,51,52,53,54}, size) == 0); // read-pos = 20, write-pos = 30 // another write-in and partial read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){65,66,67,68,69,70,71,72,73,74,75,76,77,78,79}, 15); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 10); assert(memcmp(p, (int16_t[]){55,56,57,58,59}, size) == 0); // read-pos = 25, write-pos = 45 // write-in around boundary ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){80,81,82,83,84,85,86,87,88,89}, 10); assert(ret == true); // read-pos = 25, write-pos = 5 // partial read-out p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79}, size) == 0); // read-pos = 45, write-pos = 5 // read-out across boundary plus pre-fill p = mix_buffer_read_fast(&mb, 15, &size); assert(p == NULL); assert(size == 30); mix_buffer_read_slow(&mb, buf, 15); assert(memcmp(buf, (int16_t[]){80,81,82,83,84,85,86,87,88,89,0,0,0,0,0}, size) == 0); // read-pos = 10, write-pos = 10 // write and read to end of buffer ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69}, 40); assert(ret == true); p = mix_buffer_read_fast(&mb, 40, &size); assert(p != NULL); assert(size == 80); assert(memcmp(p, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69}, size) == 0); // read-pos = 0, write-pos = 0 // mix-in // write from source 1 ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){31,31,31,31,31,31,31,31,31,31}, 10); assert(ret == true); // write from source 2 ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){11,11,11,11,11,11,11,11,11,11}, 10); assert(ret == true); // read mixed output p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){42,42,42,42,42,42,42,42,42,42}, size) == 0); // read-pos = 10, write-pos = 10 // write with only partial mix-in ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){50,51,52,53,54,55,56,57,58,59}, 10); assert(ret == true); // read partially mixed output p = mix_buffer_read_fast(&mb, 15, &size); assert(p != NULL); assert(size == 30); assert(memcmp(p, (int16_t[]){80,82,84,86,88,90,92,94,96,98,40,41,42,43,44}, size) == 0); // read-pos = 25, write-pos = 25 // partial write followed by larger mix-in ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){50,51,52,53,54,55,56,57,58,59}, 10); assert(ret == true); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}, 15); assert(ret == true); // read partially mixed output plus fill-in p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){80,82,84,86,88,90,92,94,96,98,40,41,42,43,44,0,0,0,0,0}, size) == 0); // read-pos = 45, write-pos = 45 // mix-in across boundary with overflows ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32110,32111,32112,32113,32114}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){660,661,662,663,664,665,666,667,668,669,670,671,672,673,674}, 15); assert(ret == true); // read-pos = 45, write-pos = 10 // continue mix-in with overflows before reading ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){-32035,-32036,-32037,-32038,-32039,-32040,-32041,-32042,-32043,-32044,-32045,-32046,-32047,-32048,-32049}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734}, 15); assert(ret == true); // read-pos = 45, write-pos = 25 // read some mixed data, slow path across boundary p = mix_buffer_read_fast(&mb, 10, &size); assert(p == NULL); assert(size == 20); mix_buffer_read_slow(&mb, buf, 10); assert(memcmp(buf, (int16_t[]){32760,32762,32764,32766,32767,32767,32767,32767,32767,32767}, size) == 0); // read-pos = 5, write-pos = 25 // read some more, fast path p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){32767,32767,32767,32767,32767,-32755,-32757,-32759,-32761,-32763}, size) == 0); // read-pos = 15, write-pos = 25 // read remainder p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){-32765,-32767,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768}, size) == 0); // read-pos = 25, write-pos = 25 // write across boundary ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20}, 30); assert(ret == true); // read-pos = 25, write-pos = 5 // mix-in small piece ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){30,30,30,30,30,30,30,30,30,30}, 10); assert(ret == true); // read partially mixed p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){50,50,50,50,50,50,50,50,50,50,20,20,20,20,20,20,20,20,20,20}, size) == 0); // read-pos = 15, write-pos = 25 mix_buffer_destroy(&mb); // 2-channel memset(&mb, 0, sizeof(mb)); ret = mix_buffer_init(&mb, AV_SAMPLE_FMT_S16, 500, 2, 100, 0); assert(ret == true); // pre-fill with zeroes p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 80); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); p = mix_buffer_read_fast(&mb, 25, &size); assert(p != NULL); assert(size == 100); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // slow-path read around boundary p = mix_buffer_read_fast(&mb, 20, &size); assert(p == NULL); assert(size == 80); char sbuf[size]; mix_buffer_read_slow(&mb, sbuf, 20); assert(memcmp(sbuf, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // write-in and read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55,11,22,33,44,55}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){11,22,33,44,55,11,22,33,44,55}, size) == 0); // subsequent read with pre-fill p = mix_buffer_read_fast(&mb, 25, &size); assert(p != NULL); assert(size == 100); assert(memcmp(p, (int16_t[]){0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, size) == 0); // write-in around boundary ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64}, 15); assert(ret == true); // read-out around boundary past end with pre-fill p = mix_buffer_read_fast(&mb, 20, &size); assert(p == NULL); assert(size == 80); mix_buffer_read_slow(&mb, sbuf, 20); assert(memcmp(sbuf, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,0,0,0,0,0,0,0,0,0,0}, size) == 0); // write-in and partial read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64}, 15); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){50,51,52,53,54,55,56,57,58,59}, size) == 0); // read-pos = 20, write-pos = 30 // another write-in and partial read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79}, 15); assert(ret == true); p = mix_buffer_read_fast(&mb, 5, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){60,61,62,63,64,50,51,52,53,54}, size) == 0); // read-pos = 25, write-pos = 45 // write-in around boundary ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){80,81,82,83,84,85,86,87,88,89,80,81,82,83,84,85,86,87,88,89}, 10); assert(ret == true); // read-pos = 25, write-pos = 5 // partial read-out p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 80); assert(memcmp(p, (int16_t[]){55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79}, size) == 0); // read-pos = 45, write-pos = 5 // read-out across boundary plus pre-fill p = mix_buffer_read_fast(&mb, 15, &size); assert(p == NULL); assert(size == 60); mix_buffer_read_slow(&mb, sbuf, 15); assert(memcmp(sbuf, (int16_t[]){80,81,82,83,84,85,86,87,88,89,80,81,82,83,84,85,86,87,88,89,0,0,0,0,0,0,0,0,0,0}, size) == 0); // read-pos = 10, write-pos = 10 // write and read to end of buffer ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69}, 40); assert(ret == true); p = mix_buffer_read_fast(&mb, 40, &size); assert(p != NULL); assert(size == 160); assert(memcmp(p, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69}, size) == 0); // read-pos = 0, write-pos = 0 // mix-in // write from source 1 ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31}, 10); assert(ret == true); // write from source 2 ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11}, 10); assert(ret == true); // read mixed output p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42}, size) == 0); // read-pos = 10, write-pos = 10 // write with only partial mix-in ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){50,51,52,53,54,55,56,57,58,59,50,51,52,53,54,55,56,57,58,59}, 10); assert(ret == true); // read partially mixed output p = mix_buffer_read_fast(&mb, 15, &size); assert(p != NULL); assert(size == 60); assert(memcmp(p, (int16_t[]){80,82,84,86,88,90,92,94,96,98,90,92,94,96,98,85,87,89,91,93,35,36,37,38,39,40,41,42,43,44}, size) == 0); // read-pos = 25, write-pos = 25 // partial write followed by larger mix-in ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){50,51,52,53,54,55,56,57,58,59,50,51,52,53,54,55,56,57,58,59}, 10); assert(ret == true); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}, 15); assert(ret == true); // read partially mixed output plus fill-in p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 80); assert(memcmp(p, (int16_t[]){80,82,84,86,88,90,92,94,96,98,90,92,94,96,98,85,87,89,91,93,35,36,37,38,39,40,41,42,43,44,0,0,0,0,0,0,0,0,0,0}, size) == 0); // read-pos = 45, write-pos = 45 // mix-in across boundary with overflows ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32110,32111,32112,32113,32114,32100,32101,32102,32103,32104,32105,32106,32107,32108,32109,32110,32111,32112,32113,32114}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674}, 15); assert(ret == true); // read-pos = 45, write-pos = 10 // continue mix-in with overflows before reading ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){-32035,-32036,-32037,-32038,-32039,-32040,-32041,-32042,-32043,-32044,-32045,-32046,-32047,-32048,-32049, -32035,-32036,-32037,-32038,-32039,-32040,-32041,-32042,-32043,-32044,-32045,-32046,-32047,-32048,-32049}, 15); assert(ret == true); ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734, -720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734}, 15); assert(ret == true); // read-pos = 45, write-pos = 25 // read some mixed data, slow path across boundary p = mix_buffer_read_fast(&mb, 10, &size); assert(p == NULL); assert(size == 40); mix_buffer_read_slow(&mb, sbuf, 10); assert(memcmp(sbuf, (int16_t[]){32760,32762,32764,32766,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,32760,32762,32764,32766,32767}, size) == 0); // read-pos = 5, write-pos = 25 // read some more, fast path p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,-32755,-32757,-32759,-32761,-32763,-32765,-32767,-32768,-32768,-32768}, size) == 0); // read-pos = 15, write-pos = 25 mix_buffer_destroy(&mb); // initial delay memset(&mb, 0, sizeof(mb)); ret = mix_buffer_init(&mb, AV_SAMPLE_FMT_S16, 500, 1, 100, 10); // 5 samples delay assert(ret == true); // write-in and read-out ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 15, &size); assert(p != NULL); assert(size == 30); assert(memcmp(p, (int16_t[]){0,0,0,0,0,11,22,33,44,55,0,0,0,0,0}, size) == 0); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){0,0,0,0,0,11,22,33,44,55}, size) == 0); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){11,22,33,44,55,0,0,0,0,0}, size) == 0); // src now fallen behind, catch up with reader ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){80,81,82,83,84}, 5); assert(ret == true); p = mix_buffer_read_fast(&mb, 10, &size); assert(p != NULL); assert(size == 20); assert(memcmp(p, (int16_t[]){0,0,0,0,0,80,81,82,83,84}, size) == 0); // mix two sources ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){11,22,33,44,55}, 5); assert(ret == true); // add new source ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){60,61,62,63,64}, 5); assert(ret == true); ret = mix_buffer_write(&mb, 0x1234, (int16_t[]){65,66,67,68,69}, 5); assert(ret == true); // output partially mixed, new source delayed p = mix_buffer_read_fast(&mb, 10, &size); assert(p == NULL); assert(size == 20); mix_buffer_read_slow(&mb, buf, 10); assert(memcmp(buf, (int16_t[]){11,22,33,44,55,125,127,129,131,133}, size) == 0); // caught up now. add new source with extra delay: // 10 ms constant, 15 ms extra = 25 ms total = 12.5 sampes (12) struct timeval last = { 100, 200 }; struct timeval now = { 100, 15200 }; ret = mix_buffer_write_delay(&mb, 0x3333, (int16_t[]){11,22,33,44,55}, 5, &last, &now); assert(ret == true); // mix-in previous source ret = mix_buffer_write(&mb, 0x6543, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49}, 20); assert(ret == true); // read mixed output p = mix_buffer_read_fast(&mb, 20, &size); assert(p != NULL); assert(size == 40); assert(memcmp(p, (int16_t[]){30,31,32,33,34,35,36,37,38,39,40,41,53,65,77,89,101,47,48,49}, size) == 0); mix_buffer_destroy(&mb); return 0; } rtpengine-mr12.5.1.22/t/test-packetloss.pl000077500000000000000000000010221474347554000203140ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( { sockdomain => &Socket::AF_INET, packetloss => 5, }, { sockdomain => &Socket::AF_INET, packetloss => 10, } ); $r->timer_once(1, sub { $b->answer($a, ICE => 'remove'); $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(60, sub { $r->stop(); }); $a->offer($b, ICE => 'remove'); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-payload-tracker.c000066400000000000000000000051111474347554000210350ustar00rootroot00000000000000#include #include #include #include "ssrc.h" #include "main.h" #include "statistics.h" struct rtpengine_config rtpe_config; struct global_stats_gauge rtpe_stats_gauge; struct global_gauge_min_max rtpe_gauge_min_max; struct global_stats_counter *rtpe_stats; struct global_stats_counter rtpe_stats_rate; struct global_stats_counter rtpe_stats_intv; struct global_stats_sampled rtpe_stats_sampled; struct global_sampled_min_max rtpe_sampled_min_max; struct global_sampled_min_max rtpe_sampled_graphite_min_max; struct global_sampled_min_max rtpe_sampled_graphite_min_max_sampled; __thread struct bufferpool *media_bufferpool; void append_thread_lpr_to_glob_lpr(void) {} struct bufferpool *shm_bufferpool; static void most_cmp(struct payload_tracker *t, const char *cmp, const char *file, int line) { char buf[1024] = ""; int len = 0; for (int i = 0; i < t->most_len; i++) { if (i > 0) len += sprintf(buf+len, ","); len += sprintf(buf+len, "%u", t->most[i]); } if (strcmp(buf, cmp)) { printf("test nok: %s:%i\n", file, line); printf("expected: %s\n", cmp); printf("got: %s\n", buf); abort(); } printf("test ok: %s:%i\n", file, line); } #define cmp(s) most_cmp(&t, s, __FILE__, __LINE__) #define add(p) payload_tracker_add(&t, p) int main(void) { struct payload_tracker t; payload_tracker_init(&t); cmp(""); add(0); cmp("0"); add(0); add(0); cmp("0"); add(5); cmp("0,5"); add(5); add(5); cmp("0,5"); add(5); cmp("5,0"); add(0); cmp("5,0"); add(0); cmp("0,5"); add(120); cmp("0,5,120"); add(120); add(120); add(120); add(120); cmp("0,120,5"); add(120); cmp("120,0,5"); add(120); add(120); add(120); cmp("120,0,5"); add(5); add(5); cmp("120,5,0"); // saturation fill test for (int i = 0; i < 32; i++) add(10); cmp("10,5,120,0"); // bubble up all the way for (int i = 0; i < 32; i++) add(0); cmp("0,10,5,120"); // filled with 0s, so a single 1 goes in second place add(1); cmp("0,1,10,5,120"); payload_tracker_init(&t); for (int i = 0; i < 32; i++) add(8); cmp("8"); add(96); add(96); add(96); cmp("8,96"); add(96); add(96); add(96); add(96); add(96); add(96); add(96); cmp("8,96"); for (int i = 0; i < 32; i++) add(8); cmp("8,96"); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); cmp("8,100,96"); add(100); add(100); add(100); add(100); add(100); add(100); add(100); add(100); cmp("100,8,96"); return 0; } int get_local_log_level(unsigned int u) { return -1; } rtpengine-mr12.5.1.22/t/test-plain-sdes-full.pl000077500000000000000000000012431474347554000211500ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {}, {sdes => 1} ); @{$b->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', 'transport-protocol' => 'RTP/SAVP'); @{$b->{sdes}->{remote_suites}} >= 7 or die; # all that we support $b->answer($a, ICE => 'remove'); @{$b->{sdes}->{remote_suites}} >= 7 or die; # still the full list @{$b->{sdes}->{suites}} >= 7 or die; # still the full list $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-plain-sdes.pl000077500000000000000000000014571474347554000202170ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {}, {sdes => 1} ); @{$b->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', 'transport-protocol' => 'RTP/SAVP'); @{$b->{sdes}->{remote_suites}} >= 7 or die; # all that we support $b->{sdes}->trim(); @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 for answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 for answer $b->answer($a, ICE => 'remove'); @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 after negotiation $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-resample.c000066400000000000000000000034531474347554000175720ustar00rootroot00000000000000#include #include #include #include "resample.h" #include "codeclib.h" #include "fix_frame_channel_layout.h" #include "main.h" struct rtpengine_config rtpe_config; struct rtpengine_config initial_rtpe_config; void test_1(int in_samples, int in_format, int in_rate, int in_channels, bool no_filter, int out_format, int out_rate, int out_channels, int out_exp_samples) { printf("testing %i %i %i %i %i %i %i %i\n", in_samples, in_format, in_rate, in_channels, out_format, out_rate, out_channels, out_exp_samples); AVFrame *in_f = av_frame_alloc(); in_f->nb_samples = in_samples; in_f->format = in_format; in_f->sample_rate = in_rate; DEF_CH_LAYOUT(&in_f->CH_LAYOUT, in_channels); int ret = av_frame_get_buffer(in_f, 0); assert(ret == 0); memset(in_f->extended_data[0], 0, in_f->nb_samples * av_get_bytes_per_sample(in_f->format)); resample_t resampler; ZERO(resampler); resampler.no_filter = no_filter; format_t out_fmt = { .channels = out_channels, .clockrate = out_rate, .format = out_format, }; AVFrame *out_f = resample_frame(&resampler, in_f, &out_fmt); assert(out_f != NULL); printf("received samples %i\n", out_f->nb_samples); assert(out_f->nb_samples == out_exp_samples); av_frame_free(&in_f); av_frame_free(&out_f); resample_shutdown(&resampler); } int main(void) { rtpe_common_config_ptr = &rtpe_config.common; codeclib_init(0); test_1(320, AV_SAMPLE_FMT_S16, 16000, 1, false, AV_SAMPLE_FMT_S16, 8000, 1, 144); test_1(160, AV_SAMPLE_FMT_S16, 8000, 1, false, AV_SAMPLE_FMT_S16, 16000, 1, 288); test_1(320, AV_SAMPLE_FMT_S16, 16000, 1, true, AV_SAMPLE_FMT_S16, 8000, 1, 160); test_1(160, AV_SAMPLE_FMT_S16, 8000, 1, true, AV_SAMPLE_FMT_S16, 16000, 1, 320); return 0; } int get_local_log_level(unsigned int u) { return 7; } rtpengine-mr12.5.1.22/t/test-sdes-plain.pl000077500000000000000000000012321474347554000202060ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sdes => 1}, {} ); @{$a->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', 'transport-protocol' => 'RTP/AVP'); @{$a->{sdes}->{suites}} >= 7 or die; # all that we support $b->answer($a, ICE => 'remove'); @{$a->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$a->{sdes}->{suites}} == 1 or die; # just 1 after negotiation $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-sdes-sdes-select-offer-restrict.pl000077500000000000000000000024201474347554000242520ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sdes => 1, sdes_args => {suites => [qw( AES_256_CM_HMAC_SHA1_80 AES_256_CM_HMAC_SHA1_32 AES_CM_128_HMAC_SHA1_80 AES_CM_128_HMAC_SHA1_32 )]}}, {sdes => 1} ); @{$a->{sdes}->{suites}} == 4 or die; # the ones we selected @{$b->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', flags => [qw(SDES-no-AES_256_CM_HMAC_SHA1_80 SDES-no-AES_256_CM_HMAC_SHA1_32)]); @{$a->{sdes}->{suites}} == 4 or die; # the ones we selected @{$b->{sdes}->{remote_suites}} >= 5 or die; # all that we support (our selected + added by rtpengine - restrict) $b->{sdes}->trim(); @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 for answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 for answer $b->answer($a, ICE => 'remove'); @{$a->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$a->{sdes}->{suites}} == 1 or die; # just 1 after negotiation @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 after negotiation $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-sdes-sdes-select-offer.pl000077500000000000000000000022651474347554000224240ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sdes => 1, sdes_args => {suites => [qw( AES_256_CM_HMAC_SHA1_80 AES_256_CM_HMAC_SHA1_32 AES_CM_128_HMAC_SHA1_80 AES_CM_128_HMAC_SHA1_32 )]}}, {sdes => 1} ); @{$a->{sdes}->{suites}} == 4 or die; # the ones we selected @{$b->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove'); @{$a->{sdes}->{suites}} == 4 or die; # the ones we selected @{$b->{sdes}->{remote_suites}} >= 7 or die; # all that we support (our selected + added by rtpengine) $b->{sdes}->trim(); @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 for answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 for answer $b->answer($a, ICE => 'remove'); @{$a->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$a->{sdes}->{suites}} == 1 or die; # just 1 after negotiation @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 after negotiation $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-sdes-sdes.pl000077500000000000000000000020101474347554000200340ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sdes => 1}, {sdes => 1} ); @{$a->{sdes}->{suites}} >= 7 or die; # all that we support @{$b->{sdes}->{suites}} >= 7 or die; # all that we support $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove'); @{$a->{sdes}->{suites}} >= 7 or die; # all that we support @{$b->{sdes}->{remote_suites}} >= 7 or die; # all that we support $b->{sdes}->trim(); @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 for answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 for answer $b->answer($a, ICE => 'remove'); @{$a->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$a->{sdes}->{suites}} == 1 or die; # just 1 after negotiation @{$b->{sdes}->{remote_suites}} == 1 or die; # just 1 answer @{$b->{sdes}->{suites}} == 1 or die; # just 1 after negotiation $a->start_rtp(); $a->start_rtcp(); $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test-stats.c000066400000000000000000005712541474347554000171310ustar00rootroot00000000000000#include #include #include "graphite.h" #include "statistics.h" #include "poller.h" #include "control_ng.h" #include "call_interfaces.h" #include "ssllib.h" #include "ice.h" #include "bufferpool.h" int _log_facility_rtcp; int _log_facility_cdr; int _log_facility_dtmf; struct rtpengine_config rtpe_config = { .dtls_rsa_key_size = 2048, }; struct rtpengine_config initial_rtpe_config; struct poller **rtpe_pollers = (struct poller *[]) {NULL}; struct poller *rtpe_control_poller; struct poller *uring_poller; unsigned int num_media_pollers = 1; unsigned int rtpe_poller_rr_iter; GString *dtmf_logs; GQueue rtpe_control_ng = G_QUEUE_INIT; struct bufferpool *shm_bufferpool; static void __assert_g_string_eq(GString *a, const char *b, unsigned int line) { if (strcmp(a->str, b) == 0) { g_string_free(a, TRUE); return; } printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX test failed at line %u\n", line); printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX received >>>>> <%s>\n", a->str); printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX doesn't match expected <<<<< <%s>\n", b); const char *A = a->str; while (*A == *b) { A++; b++; } printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX difference in received at: ... <%s>\n", A); printf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX difference in expected at: ... <%s>\n", b); abort(); } #define assert_g_string_eq(a, b) __assert_g_string_eq(a, b, __LINE__) static void __assert_metrics_eq(stats_metric_q *q, const char *b, unsigned int line) { GString *a = g_string_new(""); for (__auto_type l = q->head; l; l = l->next) { struct stats_metric *m = l->data; #define APP_S(x) if (m->x) do { g_string_append(a, m->x); g_string_append_c(a, '\n'); } while (0) APP_S(descr); APP_S(label); APP_S(value_long); APP_S(value_short); APP_S(prom_label); } __assert_g_string_eq(a, b, line); statistics_free_metrics(q); } #define assert_metrics_eq(a, b) __assert_metrics_eq(a, b, __LINE__) int main(void) { rtpe_common_config_ptr = &rtpe_config.common; bufferpool_init(); shm_bufferpool = bufferpool_new(g_malloc, g_free, 4096); endpoint_parse_any(&rtpe_config.graphite_ep, "1.2.3.4:4567"); rtpe_ssl_init(); call_init(); statistics_init(); call_interfaces_init(); ice_init(); control_ng_init(); dtls_init(); // fake current time rtpe_now = (struct timeval) {150,0}; rtpe_started = (struct timeval) {80,0}; // test cmd_time_min/max/avg GString *graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 150\n" "ping_time_max 0.000000 150\n" "ping_time_avg 0.000000 150\n" "pings_ps_min 0 150\n" "pings_ps_max 0 150\n" "pings_ps_avg 0 150\n" "ping_count 0 150\n" "offer_time_min 0.000000 150\n" "offer_time_max 0.000000 150\n" "offer_time_avg 0.000000 150\n" "offers_ps_min 0 150\n" "offers_ps_max 0 150\n" "offers_ps_avg 0 150\n" "offer_count 0 150\n" "answer_time_min 0.000000 150\n" "answer_time_max 0.000000 150\n" "answer_time_avg 0.000000 150\n" "answers_ps_min 0 150\n" "answers_ps_max 0 150\n" "answers_ps_avg 0 150\n" "answer_count 0 150\n" "delete_time_min 0.000000 150\n" "delete_time_max 0.000000 150\n" "delete_time_avg 0.000000 150\n" "deletes_ps_min 0 150\n" "deletes_ps_max 0 150\n" "deletes_ps_avg 0 150\n" "delete_count 0 150\n" "query_time_min 0.000000 150\n" "query_time_max 0.000000 150\n" "query_time_avg 0.000000 150\n" "querys_ps_min 0 150\n" "querys_ps_max 0 150\n" "querys_ps_avg 0 150\n" "query_count 0 150\n" "list_time_min 0.000000 150\n" "list_time_max 0.000000 150\n" "list_time_avg 0.000000 150\n" "lists_ps_min 0 150\n" "lists_ps_max 0 150\n" "lists_ps_avg 0 150\n" "list_count 0 150\n" "start_recording_time_min 0.000000 150\n" "start_recording_time_max 0.000000 150\n" "start_recording_time_avg 0.000000 150\n" "start_recordings_ps_min 0 150\n" "start_recordings_ps_max 0 150\n" "start_recordings_ps_avg 0 150\n" "start_recording_count 0 150\n" "stop_recording_time_min 0.000000 150\n" "stop_recording_time_max 0.000000 150\n" "stop_recording_time_avg 0.000000 150\n" "stop_recordings_ps_min 0 150\n" "stop_recordings_ps_max 0 150\n" "stop_recordings_ps_avg 0 150\n" "stop_recording_count 0 150\n" "pause_recording_time_min 0.000000 150\n" "pause_recording_time_max 0.000000 150\n" "pause_recording_time_avg 0.000000 150\n" "pause_recordings_ps_min 0 150\n" "pause_recordings_ps_max 0 150\n" "pause_recordings_ps_avg 0 150\n" "pause_recording_count 0 150\n" "start_forwarding_time_min 0.000000 150\n" "start_forwarding_time_max 0.000000 150\n" "start_forwarding_time_avg 0.000000 150\n" "start_forwardings_ps_min 0 150\n" "start_forwardings_ps_max 0 150\n" "start_forwardings_ps_avg 0 150\n" "start_forwarding_count 0 150\n" "stop_forwarding_time_min 0.000000 150\n" "stop_forwarding_time_max 0.000000 150\n" "stop_forwarding_time_avg 0.000000 150\n" "stop_forwardings_ps_min 0 150\n" "stop_forwardings_ps_max 0 150\n" "stop_forwardings_ps_avg 0 150\n" "stop_forwarding_count 0 150\n" "block_DTMF_time_min 0.000000 150\n" "block_DTMF_time_max 0.000000 150\n" "block_DTMF_time_avg 0.000000 150\n" "block_DTMFs_ps_min 0 150\n" "block_DTMFs_ps_max 0 150\n" "block_DTMFs_ps_avg 0 150\n" "block_DTMF_count 0 150\n" "unblock_DTMF_time_min 0.000000 150\n" "unblock_DTMF_time_max 0.000000 150\n" "unblock_DTMF_time_avg 0.000000 150\n" "unblock_DTMFs_ps_min 0 150\n" "unblock_DTMFs_ps_max 0 150\n" "unblock_DTMFs_ps_avg 0 150\n" "unblock_DTMF_count 0 150\n" "block_media_time_min 0.000000 150\n" "block_media_time_max 0.000000 150\n" "block_media_time_avg 0.000000 150\n" "block_medias_ps_min 0 150\n" "block_medias_ps_max 0 150\n" "block_medias_ps_avg 0 150\n" "block_media_count 0 150\n" "unblock_media_time_min 0.000000 150\n" "unblock_media_time_max 0.000000 150\n" "unblock_media_time_avg 0.000000 150\n" "unblock_medias_ps_min 0 150\n" "unblock_medias_ps_max 0 150\n" "unblock_medias_ps_avg 0 150\n" "unblock_media_count 0 150\n" "play_media_time_min 0.000000 150\n" "play_media_time_max 0.000000 150\n" "play_media_time_avg 0.000000 150\n" "play_medias_ps_min 0 150\n" "play_medias_ps_max 0 150\n" "play_medias_ps_avg 0 150\n" "play_media_count 0 150\n" "stop_media_time_min 0.000000 150\n" "stop_media_time_max 0.000000 150\n" "stop_media_time_avg 0.000000 150\n" "stop_medias_ps_min 0 150\n" "stop_medias_ps_max 0 150\n" "stop_medias_ps_avg 0 150\n" "stop_media_count 0 150\n" "play_DTMF_time_min 0.000000 150\n" "play_DTMF_time_max 0.000000 150\n" "play_DTMF_time_avg 0.000000 150\n" "play_DTMFs_ps_min 0 150\n" "play_DTMFs_ps_max 0 150\n" "play_DTMFs_ps_avg 0 150\n" "play_DTMF_count 0 150\n" "statistics_time_min 0.000000 150\n" "statistics_time_max 0.000000 150\n" "statistics_time_avg 0.000000 150\n" "statisticss_ps_min 0 150\n" "statisticss_ps_max 0 150\n" "statisticss_ps_avg 0 150\n" "statistics_count 0 150\n" "silence_media_time_min 0.000000 150\n" "silence_media_time_max 0.000000 150\n" "silence_media_time_avg 0.000000 150\n" "silence_medias_ps_min 0 150\n" "silence_medias_ps_max 0 150\n" "silence_medias_ps_avg 0 150\n" "silence_media_count 0 150\n" "unsilence_media_time_min 0.000000 150\n" "unsilence_media_time_max 0.000000 150\n" "unsilence_media_time_avg 0.000000 150\n" "unsilence_medias_ps_min 0 150\n" "unsilence_medias_ps_max 0 150\n" "unsilence_medias_ps_avg 0 150\n" "unsilence_media_count 0 150\n" "publish_time_min 0.000000 150\n" "publish_time_max 0.000000 150\n" "publish_time_avg 0.000000 150\n" "publishs_ps_min 0 150\n" "publishs_ps_max 0 150\n" "publishs_ps_avg 0 150\n" "publish_count 0 150\n" "subscribe_request_time_min 0.000000 150\n" "subscribe_request_time_max 0.000000 150\n" "subscribe_request_time_avg 0.000000 150\n" "subscribe_requests_ps_min 0 150\n" "subscribe_requests_ps_max 0 150\n" "subscribe_requests_ps_avg 0 150\n" "subscribe_request_count 0 150\n" "subscribe_answer_time_min 0.000000 150\n" "subscribe_answer_time_max 0.000000 150\n" "subscribe_answer_time_avg 0.000000 150\n" "subscribe_answers_ps_min 0 150\n" "subscribe_answers_ps_max 0 150\n" "subscribe_answers_ps_avg 0 150\n" "subscribe_answer_count 0 150\n" "unsubscribe_time_min 0.000000 150\n" "unsubscribe_time_max 0.000000 150\n" "unsubscribe_time_avg 0.000000 150\n" "unsubscribes_ps_min 0 150\n" "unsubscribes_ps_max 0 150\n" "unsubscribes_ps_avg 0 150\n" "unsubscribe_count 0 150\n" "call_dur 0.000000 150\n" "average_call_dur 0.000000 150\n" "forced_term_sess 0 150\n" "managed_sess 0 150\n" "managed_sess_min 0 150\n" "managed_sess_max 0 150\n" "current_sessions_total 0 150\n" "current_sessions_own 0 150\n" "current_sessions_foreign 0 150\n" "current_transcoded_media 0 150\n" "current_sessions_ipv4 0 150\n" "current_sessions_ipv6 0 150\n" "current_sessions_mixed 0 150\n" "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" "relayed_errors_user 0 150\n" "relayed_packets_user 0 150\n" "relayed_bytes_user 0 150\n" "relayed_errors_kernel 0 150\n" "relayed_packets_kernel 0 150\n" "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" "timeout_sess 0 150\n" "reject_sess 0 150\n"); stats_metric_q *stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "0\n" "0\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "0\n" "0\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "70 seconds\n" "70\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "0\n" "0\n" "Max managed sessions\n" "maxmanagedsessions\n" "0\n" "0\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); RTPE_STATS_INC(ng_commands[NGC_OFFER]); RTPE_STATS_SAMPLE(ng_command_times[NGC_OFFER], 2500000LL); RTPE_STATS_INC(ng_commands[NGC_OFFER]); RTPE_STATS_SAMPLE(ng_command_times[NGC_OFFER], 3200000LL); graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 150\n" "ping_time_max 0.000000 150\n" "ping_time_avg 0.000000 150\n" "pings_ps_min 0 150\n" "pings_ps_max 0 150\n" "pings_ps_avg 0 150\n" "ping_count 0 150\n" "offer_time_min 2.500000 150\n" "offer_time_max 3.200000 150\n" "offer_time_avg 2.850000 150\n" "offers_ps_min 0 150\n" "offers_ps_max 0 150\n" "offers_ps_avg 0 150\n" "offer_count 2 150\n" "answer_time_min 0.000000 150\n" "answer_time_max 0.000000 150\n" "answer_time_avg 0.000000 150\n" "answers_ps_min 0 150\n" "answers_ps_max 0 150\n" "answers_ps_avg 0 150\n" "answer_count 0 150\n" "delete_time_min 0.000000 150\n" "delete_time_max 0.000000 150\n" "delete_time_avg 0.000000 150\n" "deletes_ps_min 0 150\n" "deletes_ps_max 0 150\n" "deletes_ps_avg 0 150\n" "delete_count 0 150\n" "query_time_min 0.000000 150\n" "query_time_max 0.000000 150\n" "query_time_avg 0.000000 150\n" "querys_ps_min 0 150\n" "querys_ps_max 0 150\n" "querys_ps_avg 0 150\n" "query_count 0 150\n" "list_time_min 0.000000 150\n" "list_time_max 0.000000 150\n" "list_time_avg 0.000000 150\n" "lists_ps_min 0 150\n" "lists_ps_max 0 150\n" "lists_ps_avg 0 150\n" "list_count 0 150\n" "start_recording_time_min 0.000000 150\n" "start_recording_time_max 0.000000 150\n" "start_recording_time_avg 0.000000 150\n" "start_recordings_ps_min 0 150\n" "start_recordings_ps_max 0 150\n" "start_recordings_ps_avg 0 150\n" "start_recording_count 0 150\n" "stop_recording_time_min 0.000000 150\n" "stop_recording_time_max 0.000000 150\n" "stop_recording_time_avg 0.000000 150\n" "stop_recordings_ps_min 0 150\n" "stop_recordings_ps_max 0 150\n" "stop_recordings_ps_avg 0 150\n" "stop_recording_count 0 150\n" "pause_recording_time_min 0.000000 150\n" "pause_recording_time_max 0.000000 150\n" "pause_recording_time_avg 0.000000 150\n" "pause_recordings_ps_min 0 150\n" "pause_recordings_ps_max 0 150\n" "pause_recordings_ps_avg 0 150\n" "pause_recording_count 0 150\n" "start_forwarding_time_min 0.000000 150\n" "start_forwarding_time_max 0.000000 150\n" "start_forwarding_time_avg 0.000000 150\n" "start_forwardings_ps_min 0 150\n" "start_forwardings_ps_max 0 150\n" "start_forwardings_ps_avg 0 150\n" "start_forwarding_count 0 150\n" "stop_forwarding_time_min 0.000000 150\n" "stop_forwarding_time_max 0.000000 150\n" "stop_forwarding_time_avg 0.000000 150\n" "stop_forwardings_ps_min 0 150\n" "stop_forwardings_ps_max 0 150\n" "stop_forwardings_ps_avg 0 150\n" "stop_forwarding_count 0 150\n" "block_DTMF_time_min 0.000000 150\n" "block_DTMF_time_max 0.000000 150\n" "block_DTMF_time_avg 0.000000 150\n" "block_DTMFs_ps_min 0 150\n" "block_DTMFs_ps_max 0 150\n" "block_DTMFs_ps_avg 0 150\n" "block_DTMF_count 0 150\n" "unblock_DTMF_time_min 0.000000 150\n" "unblock_DTMF_time_max 0.000000 150\n" "unblock_DTMF_time_avg 0.000000 150\n" "unblock_DTMFs_ps_min 0 150\n" "unblock_DTMFs_ps_max 0 150\n" "unblock_DTMFs_ps_avg 0 150\n" "unblock_DTMF_count 0 150\n" "block_media_time_min 0.000000 150\n" "block_media_time_max 0.000000 150\n" "block_media_time_avg 0.000000 150\n" "block_medias_ps_min 0 150\n" "block_medias_ps_max 0 150\n" "block_medias_ps_avg 0 150\n" "block_media_count 0 150\n" "unblock_media_time_min 0.000000 150\n" "unblock_media_time_max 0.000000 150\n" "unblock_media_time_avg 0.000000 150\n" "unblock_medias_ps_min 0 150\n" "unblock_medias_ps_max 0 150\n" "unblock_medias_ps_avg 0 150\n" "unblock_media_count 0 150\n" "play_media_time_min 0.000000 150\n" "play_media_time_max 0.000000 150\n" "play_media_time_avg 0.000000 150\n" "play_medias_ps_min 0 150\n" "play_medias_ps_max 0 150\n" "play_medias_ps_avg 0 150\n" "play_media_count 0 150\n" "stop_media_time_min 0.000000 150\n" "stop_media_time_max 0.000000 150\n" "stop_media_time_avg 0.000000 150\n" "stop_medias_ps_min 0 150\n" "stop_medias_ps_max 0 150\n" "stop_medias_ps_avg 0 150\n" "stop_media_count 0 150\n" "play_DTMF_time_min 0.000000 150\n" "play_DTMF_time_max 0.000000 150\n" "play_DTMF_time_avg 0.000000 150\n" "play_DTMFs_ps_min 0 150\n" "play_DTMFs_ps_max 0 150\n" "play_DTMFs_ps_avg 0 150\n" "play_DTMF_count 0 150\n" "statistics_time_min 0.000000 150\n" "statistics_time_max 0.000000 150\n" "statistics_time_avg 0.000000 150\n" "statisticss_ps_min 0 150\n" "statisticss_ps_max 0 150\n" "statisticss_ps_avg 0 150\n" "statistics_count 0 150\n" "silence_media_time_min 0.000000 150\n" "silence_media_time_max 0.000000 150\n" "silence_media_time_avg 0.000000 150\n" "silence_medias_ps_min 0 150\n" "silence_medias_ps_max 0 150\n" "silence_medias_ps_avg 0 150\n" "silence_media_count 0 150\n" "unsilence_media_time_min 0.000000 150\n" "unsilence_media_time_max 0.000000 150\n" "unsilence_media_time_avg 0.000000 150\n" "unsilence_medias_ps_min 0 150\n" "unsilence_medias_ps_max 0 150\n" "unsilence_medias_ps_avg 0 150\n" "unsilence_media_count 0 150\n" "publish_time_min 0.000000 150\n" "publish_time_max 0.000000 150\n" "publish_time_avg 0.000000 150\n" "publishs_ps_min 0 150\n" "publishs_ps_max 0 150\n" "publishs_ps_avg 0 150\n" "publish_count 0 150\n" "subscribe_request_time_min 0.000000 150\n" "subscribe_request_time_max 0.000000 150\n" "subscribe_request_time_avg 0.000000 150\n" "subscribe_requests_ps_min 0 150\n" "subscribe_requests_ps_max 0 150\n" "subscribe_requests_ps_avg 0 150\n" "subscribe_request_count 0 150\n" "subscribe_answer_time_min 0.000000 150\n" "subscribe_answer_time_max 0.000000 150\n" "subscribe_answer_time_avg 0.000000 150\n" "subscribe_answers_ps_min 0 150\n" "subscribe_answers_ps_max 0 150\n" "subscribe_answers_ps_avg 0 150\n" "subscribe_answer_count 0 150\n" "unsubscribe_time_min 0.000000 150\n" "unsubscribe_time_max 0.000000 150\n" "unsubscribe_time_avg 0.000000 150\n" "unsubscribes_ps_min 0 150\n" "unsubscribes_ps_max 0 150\n" "unsubscribes_ps_avg 0 150\n" "unsubscribe_count 0 150\n" "call_dur 0.000000 150\n" "average_call_dur 0.000000 150\n" "forced_term_sess 0 150\n" "managed_sess 0 150\n" "managed_sess_min 0 150\n" "managed_sess_max 0 150\n" "current_sessions_total 0 150\n" "current_sessions_own 0 150\n" "current_sessions_foreign 0 150\n" "current_transcoded_media 0 150\n" "current_sessions_ipv4 0 150\n" "current_sessions_ipv6 0 150\n" "current_sessions_mixed 0 150\n" "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" "relayed_errors_user 0 150\n" "relayed_packets_user 0 150\n" "relayed_bytes_user 0 150\n" "relayed_errors_kernel 0 150\n" "relayed_packets_kernel 0 150\n" "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" "timeout_sess 0 150\n" "reject_sess 0 150\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "0\n" "0\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "0\n" "0\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "70 seconds\n" "70\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "0\n" "0\n" "Max managed sessions\n" "maxmanagedsessions\n" "0\n" "0\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "2.500000/3.200000/2.850000 sec\n" "minofferdelay\n" "2.500000\n" "maxofferdelay\n" "3.200000\n" "avgofferdelay\n" "2.850000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); RTPE_STATS_INC(ng_commands[NGC_ANSWER]); RTPE_STATS_SAMPLE(ng_command_times[NGC_ANSWER], 3200000LL); graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 150\n" "ping_time_max 0.000000 150\n" "ping_time_avg 0.000000 150\n" "pings_ps_min 0 150\n" "pings_ps_max 0 150\n" "pings_ps_avg 0 150\n" "ping_count 0 150\n" "offer_time_min 0.000000 150\n" "offer_time_max 0.000000 150\n" "offer_time_avg 0.000000 150\n" "offers_ps_min 0 150\n" "offers_ps_max 0 150\n" "offers_ps_avg 0 150\n" "offer_count 2 150\n" "answer_time_min 3.200000 150\n" "answer_time_max 3.200000 150\n" "answer_time_avg 3.200000 150\n" "answers_ps_min 0 150\n" "answers_ps_max 0 150\n" "answers_ps_avg 0 150\n" "answer_count 1 150\n" "delete_time_min 0.000000 150\n" "delete_time_max 0.000000 150\n" "delete_time_avg 0.000000 150\n" "deletes_ps_min 0 150\n" "deletes_ps_max 0 150\n" "deletes_ps_avg 0 150\n" "delete_count 0 150\n" "query_time_min 0.000000 150\n" "query_time_max 0.000000 150\n" "query_time_avg 0.000000 150\n" "querys_ps_min 0 150\n" "querys_ps_max 0 150\n" "querys_ps_avg 0 150\n" "query_count 0 150\n" "list_time_min 0.000000 150\n" "list_time_max 0.000000 150\n" "list_time_avg 0.000000 150\n" "lists_ps_min 0 150\n" "lists_ps_max 0 150\n" "lists_ps_avg 0 150\n" "list_count 0 150\n" "start_recording_time_min 0.000000 150\n" "start_recording_time_max 0.000000 150\n" "start_recording_time_avg 0.000000 150\n" "start_recordings_ps_min 0 150\n" "start_recordings_ps_max 0 150\n" "start_recordings_ps_avg 0 150\n" "start_recording_count 0 150\n" "stop_recording_time_min 0.000000 150\n" "stop_recording_time_max 0.000000 150\n" "stop_recording_time_avg 0.000000 150\n" "stop_recordings_ps_min 0 150\n" "stop_recordings_ps_max 0 150\n" "stop_recordings_ps_avg 0 150\n" "stop_recording_count 0 150\n" "pause_recording_time_min 0.000000 150\n" "pause_recording_time_max 0.000000 150\n" "pause_recording_time_avg 0.000000 150\n" "pause_recordings_ps_min 0 150\n" "pause_recordings_ps_max 0 150\n" "pause_recordings_ps_avg 0 150\n" "pause_recording_count 0 150\n" "start_forwarding_time_min 0.000000 150\n" "start_forwarding_time_max 0.000000 150\n" "start_forwarding_time_avg 0.000000 150\n" "start_forwardings_ps_min 0 150\n" "start_forwardings_ps_max 0 150\n" "start_forwardings_ps_avg 0 150\n" "start_forwarding_count 0 150\n" "stop_forwarding_time_min 0.000000 150\n" "stop_forwarding_time_max 0.000000 150\n" "stop_forwarding_time_avg 0.000000 150\n" "stop_forwardings_ps_min 0 150\n" "stop_forwardings_ps_max 0 150\n" "stop_forwardings_ps_avg 0 150\n" "stop_forwarding_count 0 150\n" "block_DTMF_time_min 0.000000 150\n" "block_DTMF_time_max 0.000000 150\n" "block_DTMF_time_avg 0.000000 150\n" "block_DTMFs_ps_min 0 150\n" "block_DTMFs_ps_max 0 150\n" "block_DTMFs_ps_avg 0 150\n" "block_DTMF_count 0 150\n" "unblock_DTMF_time_min 0.000000 150\n" "unblock_DTMF_time_max 0.000000 150\n" "unblock_DTMF_time_avg 0.000000 150\n" "unblock_DTMFs_ps_min 0 150\n" "unblock_DTMFs_ps_max 0 150\n" "unblock_DTMFs_ps_avg 0 150\n" "unblock_DTMF_count 0 150\n" "block_media_time_min 0.000000 150\n" "block_media_time_max 0.000000 150\n" "block_media_time_avg 0.000000 150\n" "block_medias_ps_min 0 150\n" "block_medias_ps_max 0 150\n" "block_medias_ps_avg 0 150\n" "block_media_count 0 150\n" "unblock_media_time_min 0.000000 150\n" "unblock_media_time_max 0.000000 150\n" "unblock_media_time_avg 0.000000 150\n" "unblock_medias_ps_min 0 150\n" "unblock_medias_ps_max 0 150\n" "unblock_medias_ps_avg 0 150\n" "unblock_media_count 0 150\n" "play_media_time_min 0.000000 150\n" "play_media_time_max 0.000000 150\n" "play_media_time_avg 0.000000 150\n" "play_medias_ps_min 0 150\n" "play_medias_ps_max 0 150\n" "play_medias_ps_avg 0 150\n" "play_media_count 0 150\n" "stop_media_time_min 0.000000 150\n" "stop_media_time_max 0.000000 150\n" "stop_media_time_avg 0.000000 150\n" "stop_medias_ps_min 0 150\n" "stop_medias_ps_max 0 150\n" "stop_medias_ps_avg 0 150\n" "stop_media_count 0 150\n" "play_DTMF_time_min 0.000000 150\n" "play_DTMF_time_max 0.000000 150\n" "play_DTMF_time_avg 0.000000 150\n" "play_DTMFs_ps_min 0 150\n" "play_DTMFs_ps_max 0 150\n" "play_DTMFs_ps_avg 0 150\n" "play_DTMF_count 0 150\n" "statistics_time_min 0.000000 150\n" "statistics_time_max 0.000000 150\n" "statistics_time_avg 0.000000 150\n" "statisticss_ps_min 0 150\n" "statisticss_ps_max 0 150\n" "statisticss_ps_avg 0 150\n" "statistics_count 0 150\n" "silence_media_time_min 0.000000 150\n" "silence_media_time_max 0.000000 150\n" "silence_media_time_avg 0.000000 150\n" "silence_medias_ps_min 0 150\n" "silence_medias_ps_max 0 150\n" "silence_medias_ps_avg 0 150\n" "silence_media_count 0 150\n" "unsilence_media_time_min 0.000000 150\n" "unsilence_media_time_max 0.000000 150\n" "unsilence_media_time_avg 0.000000 150\n" "unsilence_medias_ps_min 0 150\n" "unsilence_medias_ps_max 0 150\n" "unsilence_medias_ps_avg 0 150\n" "unsilence_media_count 0 150\n" "publish_time_min 0.000000 150\n" "publish_time_max 0.000000 150\n" "publish_time_avg 0.000000 150\n" "publishs_ps_min 0 150\n" "publishs_ps_max 0 150\n" "publishs_ps_avg 0 150\n" "publish_count 0 150\n" "subscribe_request_time_min 0.000000 150\n" "subscribe_request_time_max 0.000000 150\n" "subscribe_request_time_avg 0.000000 150\n" "subscribe_requests_ps_min 0 150\n" "subscribe_requests_ps_max 0 150\n" "subscribe_requests_ps_avg 0 150\n" "subscribe_request_count 0 150\n" "subscribe_answer_time_min 0.000000 150\n" "subscribe_answer_time_max 0.000000 150\n" "subscribe_answer_time_avg 0.000000 150\n" "subscribe_answers_ps_min 0 150\n" "subscribe_answers_ps_max 0 150\n" "subscribe_answers_ps_avg 0 150\n" "subscribe_answer_count 0 150\n" "unsubscribe_time_min 0.000000 150\n" "unsubscribe_time_max 0.000000 150\n" "unsubscribe_time_avg 0.000000 150\n" "unsubscribes_ps_min 0 150\n" "unsubscribes_ps_max 0 150\n" "unsubscribes_ps_avg 0 150\n" "unsubscribe_count 0 150\n" "call_dur 0.000000 150\n" "average_call_dur 0.000000 150\n" "forced_term_sess 0 150\n" "managed_sess 0 150\n" "managed_sess_min 0 150\n" "managed_sess_max 0 150\n" "current_sessions_total 0 150\n" "current_sessions_own 0 150\n" "current_sessions_foreign 0 150\n" "current_transcoded_media 0 150\n" "current_sessions_ipv4 0 150\n" "current_sessions_ipv6 0 150\n" "current_sessions_mixed 0 150\n" "nopacket_relayed_sess 0 150\n" "oneway_stream_sess 0 150\n" "regular_term_sess 0 150\n" "relayed_errors_user 0 150\n" "relayed_packets_user 0 150\n" "relayed_bytes_user 0 150\n" "relayed_errors_kernel 0 150\n" "relayed_packets_kernel 0 150\n" "relayed_bytes_kernel 0 150\n" "relayed_errors 0 150\n" "relayed_packets 0 150\n" "relayed_bytes 0 150\n" "silent_timeout_sess 0 150\n" "final_timeout_sess 0 150\n" "offer_timeout_sess 0 150\n" "timeout_sess 0 150\n" "reject_sess 0 150\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "0\n" "0\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "0\n" "0\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "70 seconds\n" "70\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "0\n" "0\n" "Max managed sessions\n" "maxmanagedsessions\n" "0\n" "0\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "3.200000/3.200000/3.200000 sec\n" "minanswerdelay\n" "3.200000\n" "maxanswerdelay\n" "3.200000\n" "avganswerdelay\n" "3.200000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); // test cmd_ps_min/max/avg call_timer(); stats_counters_calc_rate(rtpe_stats, 150000000, &rtpe_stats_intv, &rtpe_stats_rate); stats_rate_min_max(&rtpe_rate_graphite_min_max, &rtpe_stats_rate); ice_slow_timer(); RTPE_STATS_ADD(ng_commands[NGC_OFFER], 100); rtpe_now.tv_sec += 2; RTPE_STATS_ADD(ng_commands[NGC_OFFER], 20); call_timer(); stats_counters_calc_rate(rtpe_stats, 2000000, &rtpe_stats_intv, &rtpe_stats_rate); stats_rate_min_max(&rtpe_rate_graphite_min_max, &rtpe_stats_rate); ice_slow_timer(); // timer run time interval increased rtpe_now.tv_sec += 5; RTPE_STATS_ADD(ng_commands[NGC_OFFER], 200); call_timer(); stats_counters_calc_rate(rtpe_stats, 5000000, &rtpe_stats_intv, &rtpe_stats_rate); stats_rate_min_max(&rtpe_rate_graphite_min_max, &rtpe_stats_rate); ice_slow_timer(); graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 157\n" "ping_time_max 0.000000 157\n" "ping_time_avg 0.000000 157\n" "pings_ps_min 0 157\n" "pings_ps_max 0 157\n" "pings_ps_avg 0 157\n" "ping_count 0 157\n" "offer_time_min 0.000000 157\n" "offer_time_max 0.000000 157\n" "offer_time_avg 0.000000 157\n" "offers_ps_min 40 157\n" "offers_ps_max 60 157\n" "offers_ps_avg 45 157\n" "offer_count 322 157\n" "answer_time_min 0.000000 157\n" "answer_time_max 0.000000 157\n" "answer_time_avg 0.000000 157\n" "answers_ps_min 0 157\n" "answers_ps_max 0 157\n" "answers_ps_avg 0 157\n" "answer_count 1 157\n" "delete_time_min 0.000000 157\n" "delete_time_max 0.000000 157\n" "delete_time_avg 0.000000 157\n" "deletes_ps_min 0 157\n" "deletes_ps_max 0 157\n" "deletes_ps_avg 0 157\n" "delete_count 0 157\n" "query_time_min 0.000000 157\n" "query_time_max 0.000000 157\n" "query_time_avg 0.000000 157\n" "querys_ps_min 0 157\n" "querys_ps_max 0 157\n" "querys_ps_avg 0 157\n" "query_count 0 157\n" "list_time_min 0.000000 157\n" "list_time_max 0.000000 157\n" "list_time_avg 0.000000 157\n" "lists_ps_min 0 157\n" "lists_ps_max 0 157\n" "lists_ps_avg 0 157\n" "list_count 0 157\n" "start_recording_time_min 0.000000 157\n" "start_recording_time_max 0.000000 157\n" "start_recording_time_avg 0.000000 157\n" "start_recordings_ps_min 0 157\n" "start_recordings_ps_max 0 157\n" "start_recordings_ps_avg 0 157\n" "start_recording_count 0 157\n" "stop_recording_time_min 0.000000 157\n" "stop_recording_time_max 0.000000 157\n" "stop_recording_time_avg 0.000000 157\n" "stop_recordings_ps_min 0 157\n" "stop_recordings_ps_max 0 157\n" "stop_recordings_ps_avg 0 157\n" "stop_recording_count 0 157\n" "pause_recording_time_min 0.000000 157\n" "pause_recording_time_max 0.000000 157\n" "pause_recording_time_avg 0.000000 157\n" "pause_recordings_ps_min 0 157\n" "pause_recordings_ps_max 0 157\n" "pause_recordings_ps_avg 0 157\n" "pause_recording_count 0 157\n" "start_forwarding_time_min 0.000000 157\n" "start_forwarding_time_max 0.000000 157\n" "start_forwarding_time_avg 0.000000 157\n" "start_forwardings_ps_min 0 157\n" "start_forwardings_ps_max 0 157\n" "start_forwardings_ps_avg 0 157\n" "start_forwarding_count 0 157\n" "stop_forwarding_time_min 0.000000 157\n" "stop_forwarding_time_max 0.000000 157\n" "stop_forwarding_time_avg 0.000000 157\n" "stop_forwardings_ps_min 0 157\n" "stop_forwardings_ps_max 0 157\n" "stop_forwardings_ps_avg 0 157\n" "stop_forwarding_count 0 157\n" "block_DTMF_time_min 0.000000 157\n" "block_DTMF_time_max 0.000000 157\n" "block_DTMF_time_avg 0.000000 157\n" "block_DTMFs_ps_min 0 157\n" "block_DTMFs_ps_max 0 157\n" "block_DTMFs_ps_avg 0 157\n" "block_DTMF_count 0 157\n" "unblock_DTMF_time_min 0.000000 157\n" "unblock_DTMF_time_max 0.000000 157\n" "unblock_DTMF_time_avg 0.000000 157\n" "unblock_DTMFs_ps_min 0 157\n" "unblock_DTMFs_ps_max 0 157\n" "unblock_DTMFs_ps_avg 0 157\n" "unblock_DTMF_count 0 157\n" "block_media_time_min 0.000000 157\n" "block_media_time_max 0.000000 157\n" "block_media_time_avg 0.000000 157\n" "block_medias_ps_min 0 157\n" "block_medias_ps_max 0 157\n" "block_medias_ps_avg 0 157\n" "block_media_count 0 157\n" "unblock_media_time_min 0.000000 157\n" "unblock_media_time_max 0.000000 157\n" "unblock_media_time_avg 0.000000 157\n" "unblock_medias_ps_min 0 157\n" "unblock_medias_ps_max 0 157\n" "unblock_medias_ps_avg 0 157\n" "unblock_media_count 0 157\n" "play_media_time_min 0.000000 157\n" "play_media_time_max 0.000000 157\n" "play_media_time_avg 0.000000 157\n" "play_medias_ps_min 0 157\n" "play_medias_ps_max 0 157\n" "play_medias_ps_avg 0 157\n" "play_media_count 0 157\n" "stop_media_time_min 0.000000 157\n" "stop_media_time_max 0.000000 157\n" "stop_media_time_avg 0.000000 157\n" "stop_medias_ps_min 0 157\n" "stop_medias_ps_max 0 157\n" "stop_medias_ps_avg 0 157\n" "stop_media_count 0 157\n" "play_DTMF_time_min 0.000000 157\n" "play_DTMF_time_max 0.000000 157\n" "play_DTMF_time_avg 0.000000 157\n" "play_DTMFs_ps_min 0 157\n" "play_DTMFs_ps_max 0 157\n" "play_DTMFs_ps_avg 0 157\n" "play_DTMF_count 0 157\n" "statistics_time_min 0.000000 157\n" "statistics_time_max 0.000000 157\n" "statistics_time_avg 0.000000 157\n" "statisticss_ps_min 0 157\n" "statisticss_ps_max 0 157\n" "statisticss_ps_avg 0 157\n" "statistics_count 0 157\n" "silence_media_time_min 0.000000 157\n" "silence_media_time_max 0.000000 157\n" "silence_media_time_avg 0.000000 157\n" "silence_medias_ps_min 0 157\n" "silence_medias_ps_max 0 157\n" "silence_medias_ps_avg 0 157\n" "silence_media_count 0 157\n" "unsilence_media_time_min 0.000000 157\n" "unsilence_media_time_max 0.000000 157\n" "unsilence_media_time_avg 0.000000 157\n" "unsilence_medias_ps_min 0 157\n" "unsilence_medias_ps_max 0 157\n" "unsilence_medias_ps_avg 0 157\n" "unsilence_media_count 0 157\n" "publish_time_min 0.000000 157\n" "publish_time_max 0.000000 157\n" "publish_time_avg 0.000000 157\n" "publishs_ps_min 0 157\n" "publishs_ps_max 0 157\n" "publishs_ps_avg 0 157\n" "publish_count 0 157\n" "subscribe_request_time_min 0.000000 157\n" "subscribe_request_time_max 0.000000 157\n" "subscribe_request_time_avg 0.000000 157\n" "subscribe_requests_ps_min 0 157\n" "subscribe_requests_ps_max 0 157\n" "subscribe_requests_ps_avg 0 157\n" "subscribe_request_count 0 157\n" "subscribe_answer_time_min 0.000000 157\n" "subscribe_answer_time_max 0.000000 157\n" "subscribe_answer_time_avg 0.000000 157\n" "subscribe_answers_ps_min 0 157\n" "subscribe_answers_ps_max 0 157\n" "subscribe_answers_ps_avg 0 157\n" "subscribe_answer_count 0 157\n" "unsubscribe_time_min 0.000000 157\n" "unsubscribe_time_max 0.000000 157\n" "unsubscribe_time_avg 0.000000 157\n" "unsubscribes_ps_min 0 157\n" "unsubscribes_ps_max 0 157\n" "unsubscribes_ps_avg 0 157\n" "unsubscribe_count 0 157\n" "call_dur 0.000000 157\n" "average_call_dur 0.000000 157\n" "forced_term_sess 0 157\n" "managed_sess 0 157\n" "managed_sess_min 0 157\n" "managed_sess_max 0 157\n" "current_sessions_total 0 157\n" "current_sessions_own 0 157\n" "current_sessions_foreign 0 157\n" "current_transcoded_media 0 157\n" "current_sessions_ipv4 0 157\n" "current_sessions_ipv6 0 157\n" "current_sessions_mixed 0 157\n" "nopacket_relayed_sess 0 157\n" "oneway_stream_sess 0 157\n" "regular_term_sess 0 157\n" "relayed_errors_user 0 157\n" "relayed_packets_user 0 157\n" "relayed_bytes_user 0 157\n" "relayed_errors_kernel 0 157\n" "relayed_packets_kernel 0 157\n" "relayed_bytes_kernel 0 157\n" "relayed_errors 0 157\n" "relayed_packets 0 157\n" "relayed_bytes 0 157\n" "silent_timeout_sess 0 157\n" "final_timeout_sess 0 157\n" "offer_timeout_sess 0 157\n" "timeout_sess 0 157\n" "reject_sess 0 157\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "0\n" "0\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "0\n" "0\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "77 seconds\n" "77\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "0\n" "0\n" "Max managed sessions\n" "maxmanagedsessions\n" "0\n" "0\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "40/60/45 per sec\n" "minofferrequestrate\n" "40\n" "maxofferrequestrate\n" "60\n" "avgofferrequestrate\n" "45\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); // test average call duration const str callid1 = STR_CONST_INIT("test1"); const str callid2 = STR_CONST_INIT("test2"); call_t *call1 = call_get_or_create(&callid1, true); struct call_monologue *ml1 = call_get_or_create_monologue(call1, &callid1); call_t *call2 = call_get_or_create(&callid2, true); struct call_monologue *ml2 = call_get_or_create_monologue(call2, &callid2); call1->created = ml1->started = (struct timeval) {157,0}; call2->created = ml2->started = (struct timeval) {57,0}; graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 157\n" "ping_time_max 0.000000 157\n" "ping_time_avg 0.000000 157\n" "pings_ps_min 0 157\n" "pings_ps_max 0 157\n" "pings_ps_avg 0 157\n" "ping_count 0 157\n" "offer_time_min 0.000000 157\n" "offer_time_max 0.000000 157\n" "offer_time_avg 0.000000 157\n" "offers_ps_min 0 157\n" "offers_ps_max 0 157\n" "offers_ps_avg 0 157\n" "offer_count 322 157\n" "answer_time_min 0.000000 157\n" "answer_time_max 0.000000 157\n" "answer_time_avg 0.000000 157\n" "answers_ps_min 0 157\n" "answers_ps_max 0 157\n" "answers_ps_avg 0 157\n" "answer_count 1 157\n" "delete_time_min 0.000000 157\n" "delete_time_max 0.000000 157\n" "delete_time_avg 0.000000 157\n" "deletes_ps_min 0 157\n" "deletes_ps_max 0 157\n" "deletes_ps_avg 0 157\n" "delete_count 0 157\n" "query_time_min 0.000000 157\n" "query_time_max 0.000000 157\n" "query_time_avg 0.000000 157\n" "querys_ps_min 0 157\n" "querys_ps_max 0 157\n" "querys_ps_avg 0 157\n" "query_count 0 157\n" "list_time_min 0.000000 157\n" "list_time_max 0.000000 157\n" "list_time_avg 0.000000 157\n" "lists_ps_min 0 157\n" "lists_ps_max 0 157\n" "lists_ps_avg 0 157\n" "list_count 0 157\n" "start_recording_time_min 0.000000 157\n" "start_recording_time_max 0.000000 157\n" "start_recording_time_avg 0.000000 157\n" "start_recordings_ps_min 0 157\n" "start_recordings_ps_max 0 157\n" "start_recordings_ps_avg 0 157\n" "start_recording_count 0 157\n" "stop_recording_time_min 0.000000 157\n" "stop_recording_time_max 0.000000 157\n" "stop_recording_time_avg 0.000000 157\n" "stop_recordings_ps_min 0 157\n" "stop_recordings_ps_max 0 157\n" "stop_recordings_ps_avg 0 157\n" "stop_recording_count 0 157\n" "pause_recording_time_min 0.000000 157\n" "pause_recording_time_max 0.000000 157\n" "pause_recording_time_avg 0.000000 157\n" "pause_recordings_ps_min 0 157\n" "pause_recordings_ps_max 0 157\n" "pause_recordings_ps_avg 0 157\n" "pause_recording_count 0 157\n" "start_forwarding_time_min 0.000000 157\n" "start_forwarding_time_max 0.000000 157\n" "start_forwarding_time_avg 0.000000 157\n" "start_forwardings_ps_min 0 157\n" "start_forwardings_ps_max 0 157\n" "start_forwardings_ps_avg 0 157\n" "start_forwarding_count 0 157\n" "stop_forwarding_time_min 0.000000 157\n" "stop_forwarding_time_max 0.000000 157\n" "stop_forwarding_time_avg 0.000000 157\n" "stop_forwardings_ps_min 0 157\n" "stop_forwardings_ps_max 0 157\n" "stop_forwardings_ps_avg 0 157\n" "stop_forwarding_count 0 157\n" "block_DTMF_time_min 0.000000 157\n" "block_DTMF_time_max 0.000000 157\n" "block_DTMF_time_avg 0.000000 157\n" "block_DTMFs_ps_min 0 157\n" "block_DTMFs_ps_max 0 157\n" "block_DTMFs_ps_avg 0 157\n" "block_DTMF_count 0 157\n" "unblock_DTMF_time_min 0.000000 157\n" "unblock_DTMF_time_max 0.000000 157\n" "unblock_DTMF_time_avg 0.000000 157\n" "unblock_DTMFs_ps_min 0 157\n" "unblock_DTMFs_ps_max 0 157\n" "unblock_DTMFs_ps_avg 0 157\n" "unblock_DTMF_count 0 157\n" "block_media_time_min 0.000000 157\n" "block_media_time_max 0.000000 157\n" "block_media_time_avg 0.000000 157\n" "block_medias_ps_min 0 157\n" "block_medias_ps_max 0 157\n" "block_medias_ps_avg 0 157\n" "block_media_count 0 157\n" "unblock_media_time_min 0.000000 157\n" "unblock_media_time_max 0.000000 157\n" "unblock_media_time_avg 0.000000 157\n" "unblock_medias_ps_min 0 157\n" "unblock_medias_ps_max 0 157\n" "unblock_medias_ps_avg 0 157\n" "unblock_media_count 0 157\n" "play_media_time_min 0.000000 157\n" "play_media_time_max 0.000000 157\n" "play_media_time_avg 0.000000 157\n" "play_medias_ps_min 0 157\n" "play_medias_ps_max 0 157\n" "play_medias_ps_avg 0 157\n" "play_media_count 0 157\n" "stop_media_time_min 0.000000 157\n" "stop_media_time_max 0.000000 157\n" "stop_media_time_avg 0.000000 157\n" "stop_medias_ps_min 0 157\n" "stop_medias_ps_max 0 157\n" "stop_medias_ps_avg 0 157\n" "stop_media_count 0 157\n" "play_DTMF_time_min 0.000000 157\n" "play_DTMF_time_max 0.000000 157\n" "play_DTMF_time_avg 0.000000 157\n" "play_DTMFs_ps_min 0 157\n" "play_DTMFs_ps_max 0 157\n" "play_DTMFs_ps_avg 0 157\n" "play_DTMF_count 0 157\n" "statistics_time_min 0.000000 157\n" "statistics_time_max 0.000000 157\n" "statistics_time_avg 0.000000 157\n" "statisticss_ps_min 0 157\n" "statisticss_ps_max 0 157\n" "statisticss_ps_avg 0 157\n" "statistics_count 0 157\n" "silence_media_time_min 0.000000 157\n" "silence_media_time_max 0.000000 157\n" "silence_media_time_avg 0.000000 157\n" "silence_medias_ps_min 0 157\n" "silence_medias_ps_max 0 157\n" "silence_medias_ps_avg 0 157\n" "silence_media_count 0 157\n" "unsilence_media_time_min 0.000000 157\n" "unsilence_media_time_max 0.000000 157\n" "unsilence_media_time_avg 0.000000 157\n" "unsilence_medias_ps_min 0 157\n" "unsilence_medias_ps_max 0 157\n" "unsilence_medias_ps_avg 0 157\n" "unsilence_media_count 0 157\n" "publish_time_min 0.000000 157\n" "publish_time_max 0.000000 157\n" "publish_time_avg 0.000000 157\n" "publishs_ps_min 0 157\n" "publishs_ps_max 0 157\n" "publishs_ps_avg 0 157\n" "publish_count 0 157\n" "subscribe_request_time_min 0.000000 157\n" "subscribe_request_time_max 0.000000 157\n" "subscribe_request_time_avg 0.000000 157\n" "subscribe_requests_ps_min 0 157\n" "subscribe_requests_ps_max 0 157\n" "subscribe_requests_ps_avg 0 157\n" "subscribe_request_count 0 157\n" "subscribe_answer_time_min 0.000000 157\n" "subscribe_answer_time_max 0.000000 157\n" "subscribe_answer_time_avg 0.000000 157\n" "subscribe_answers_ps_min 0 157\n" "subscribe_answers_ps_max 0 157\n" "subscribe_answers_ps_avg 0 157\n" "subscribe_answer_count 0 157\n" "unsubscribe_time_min 0.000000 157\n" "unsubscribe_time_max 0.000000 157\n" "unsubscribe_time_avg 0.000000 157\n" "unsubscribes_ps_min 0 157\n" "unsubscribes_ps_max 0 157\n" "unsubscribes_ps_avg 0 157\n" "unsubscribe_count 0 157\n" "call_dur 0.000000 157\n" "average_call_dur 0.000000 157\n" "forced_term_sess 0 157\n" "managed_sess 0 157\n" "managed_sess_min 1 157\n" "managed_sess_max 2 157\n" "current_sessions_total 2 157\n" "current_sessions_own 2 157\n" "current_sessions_foreign 0 157\n" "current_transcoded_media 0 157\n" "current_sessions_ipv4 0 157\n" "current_sessions_ipv6 0 157\n" "current_sessions_mixed 0 157\n" "nopacket_relayed_sess 0 157\n" "oneway_stream_sess 0 157\n" "regular_term_sess 0 157\n" "relayed_errors_user 0 157\n" "relayed_packets_user 0 157\n" "relayed_bytes_user 0 157\n" "relayed_errors_kernel 0 157\n" "relayed_packets_kernel 0 157\n" "relayed_bytes_kernel 0 157\n" "relayed_errors 0 157\n" "relayed_packets 0 157\n" "relayed_bytes 0 157\n" "silent_timeout_sess 0 157\n" "final_timeout_sess 0 157\n" "offer_timeout_sess 0 157\n" "timeout_sess 0 157\n" "reject_sess 0 157\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "2\n" "2\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "2\n" "2\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "77 seconds\n" "77\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "1\n" "1\n" "Max managed sessions\n" "maxmanagedsessions\n" "2\n" "2\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); struct timeval graphite_interval_tv = {100,0}; rtpe_now = (struct timeval) {200,0}; add_total_calls_duration_in_interval(&graphite_interval_tv); graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 200\n" "ping_time_max 0.000000 200\n" "ping_time_avg 0.000000 200\n" "pings_ps_min 0 200\n" "pings_ps_max 0 200\n" "pings_ps_avg 0 200\n" "ping_count 0 200\n" "offer_time_min 0.000000 200\n" "offer_time_max 0.000000 200\n" "offer_time_avg 0.000000 200\n" "offers_ps_min 0 200\n" "offers_ps_max 0 200\n" "offers_ps_avg 0 200\n" "offer_count 322 200\n" "answer_time_min 0.000000 200\n" "answer_time_max 0.000000 200\n" "answer_time_avg 0.000000 200\n" "answers_ps_min 0 200\n" "answers_ps_max 0 200\n" "answers_ps_avg 0 200\n" "answer_count 1 200\n" "delete_time_min 0.000000 200\n" "delete_time_max 0.000000 200\n" "delete_time_avg 0.000000 200\n" "deletes_ps_min 0 200\n" "deletes_ps_max 0 200\n" "deletes_ps_avg 0 200\n" "delete_count 0 200\n" "query_time_min 0.000000 200\n" "query_time_max 0.000000 200\n" "query_time_avg 0.000000 200\n" "querys_ps_min 0 200\n" "querys_ps_max 0 200\n" "querys_ps_avg 0 200\n" "query_count 0 200\n" "list_time_min 0.000000 200\n" "list_time_max 0.000000 200\n" "list_time_avg 0.000000 200\n" "lists_ps_min 0 200\n" "lists_ps_max 0 200\n" "lists_ps_avg 0 200\n" "list_count 0 200\n" "start_recording_time_min 0.000000 200\n" "start_recording_time_max 0.000000 200\n" "start_recording_time_avg 0.000000 200\n" "start_recordings_ps_min 0 200\n" "start_recordings_ps_max 0 200\n" "start_recordings_ps_avg 0 200\n" "start_recording_count 0 200\n" "stop_recording_time_min 0.000000 200\n" "stop_recording_time_max 0.000000 200\n" "stop_recording_time_avg 0.000000 200\n" "stop_recordings_ps_min 0 200\n" "stop_recordings_ps_max 0 200\n" "stop_recordings_ps_avg 0 200\n" "stop_recording_count 0 200\n" "pause_recording_time_min 0.000000 200\n" "pause_recording_time_max 0.000000 200\n" "pause_recording_time_avg 0.000000 200\n" "pause_recordings_ps_min 0 200\n" "pause_recordings_ps_max 0 200\n" "pause_recordings_ps_avg 0 200\n" "pause_recording_count 0 200\n" "start_forwarding_time_min 0.000000 200\n" "start_forwarding_time_max 0.000000 200\n" "start_forwarding_time_avg 0.000000 200\n" "start_forwardings_ps_min 0 200\n" "start_forwardings_ps_max 0 200\n" "start_forwardings_ps_avg 0 200\n" "start_forwarding_count 0 200\n" "stop_forwarding_time_min 0.000000 200\n" "stop_forwarding_time_max 0.000000 200\n" "stop_forwarding_time_avg 0.000000 200\n" "stop_forwardings_ps_min 0 200\n" "stop_forwardings_ps_max 0 200\n" "stop_forwardings_ps_avg 0 200\n" "stop_forwarding_count 0 200\n" "block_DTMF_time_min 0.000000 200\n" "block_DTMF_time_max 0.000000 200\n" "block_DTMF_time_avg 0.000000 200\n" "block_DTMFs_ps_min 0 200\n" "block_DTMFs_ps_max 0 200\n" "block_DTMFs_ps_avg 0 200\n" "block_DTMF_count 0 200\n" "unblock_DTMF_time_min 0.000000 200\n" "unblock_DTMF_time_max 0.000000 200\n" "unblock_DTMF_time_avg 0.000000 200\n" "unblock_DTMFs_ps_min 0 200\n" "unblock_DTMFs_ps_max 0 200\n" "unblock_DTMFs_ps_avg 0 200\n" "unblock_DTMF_count 0 200\n" "block_media_time_min 0.000000 200\n" "block_media_time_max 0.000000 200\n" "block_media_time_avg 0.000000 200\n" "block_medias_ps_min 0 200\n" "block_medias_ps_max 0 200\n" "block_medias_ps_avg 0 200\n" "block_media_count 0 200\n" "unblock_media_time_min 0.000000 200\n" "unblock_media_time_max 0.000000 200\n" "unblock_media_time_avg 0.000000 200\n" "unblock_medias_ps_min 0 200\n" "unblock_medias_ps_max 0 200\n" "unblock_medias_ps_avg 0 200\n" "unblock_media_count 0 200\n" "play_media_time_min 0.000000 200\n" "play_media_time_max 0.000000 200\n" "play_media_time_avg 0.000000 200\n" "play_medias_ps_min 0 200\n" "play_medias_ps_max 0 200\n" "play_medias_ps_avg 0 200\n" "play_media_count 0 200\n" "stop_media_time_min 0.000000 200\n" "stop_media_time_max 0.000000 200\n" "stop_media_time_avg 0.000000 200\n" "stop_medias_ps_min 0 200\n" "stop_medias_ps_max 0 200\n" "stop_medias_ps_avg 0 200\n" "stop_media_count 0 200\n" "play_DTMF_time_min 0.000000 200\n" "play_DTMF_time_max 0.000000 200\n" "play_DTMF_time_avg 0.000000 200\n" "play_DTMFs_ps_min 0 200\n" "play_DTMFs_ps_max 0 200\n" "play_DTMFs_ps_avg 0 200\n" "play_DTMF_count 0 200\n" "statistics_time_min 0.000000 200\n" "statistics_time_max 0.000000 200\n" "statistics_time_avg 0.000000 200\n" "statisticss_ps_min 0 200\n" "statisticss_ps_max 0 200\n" "statisticss_ps_avg 0 200\n" "statistics_count 0 200\n" "silence_media_time_min 0.000000 200\n" "silence_media_time_max 0.000000 200\n" "silence_media_time_avg 0.000000 200\n" "silence_medias_ps_min 0 200\n" "silence_medias_ps_max 0 200\n" "silence_medias_ps_avg 0 200\n" "silence_media_count 0 200\n" "unsilence_media_time_min 0.000000 200\n" "unsilence_media_time_max 0.000000 200\n" "unsilence_media_time_avg 0.000000 200\n" "unsilence_medias_ps_min 0 200\n" "unsilence_medias_ps_max 0 200\n" "unsilence_medias_ps_avg 0 200\n" "unsilence_media_count 0 200\n" "publish_time_min 0.000000 200\n" "publish_time_max 0.000000 200\n" "publish_time_avg 0.000000 200\n" "publishs_ps_min 0 200\n" "publishs_ps_max 0 200\n" "publishs_ps_avg 0 200\n" "publish_count 0 200\n" "subscribe_request_time_min 0.000000 200\n" "subscribe_request_time_max 0.000000 200\n" "subscribe_request_time_avg 0.000000 200\n" "subscribe_requests_ps_min 0 200\n" "subscribe_requests_ps_max 0 200\n" "subscribe_requests_ps_avg 0 200\n" "subscribe_request_count 0 200\n" "subscribe_answer_time_min 0.000000 200\n" "subscribe_answer_time_max 0.000000 200\n" "subscribe_answer_time_avg 0.000000 200\n" "subscribe_answers_ps_min 0 200\n" "subscribe_answers_ps_max 0 200\n" "subscribe_answers_ps_avg 0 200\n" "subscribe_answer_count 0 200\n" "unsubscribe_time_min 0.000000 200\n" "unsubscribe_time_max 0.000000 200\n" "unsubscribe_time_avg 0.000000 200\n" "unsubscribes_ps_min 0 200\n" "unsubscribes_ps_max 0 200\n" "unsubscribes_ps_avg 0 200\n" "unsubscribe_count 0 200\n" "call_dur 143.000000 200\n" "average_call_dur 0.000000 200\n" "forced_term_sess 0 200\n" "managed_sess 0 200\n" "managed_sess_min 2 200\n" "managed_sess_max 2 200\n" "current_sessions_total 2 200\n" "current_sessions_own 2 200\n" "current_sessions_foreign 0 200\n" "current_transcoded_media 0 200\n" "current_sessions_ipv4 0 200\n" "current_sessions_ipv6 0 200\n" "current_sessions_mixed 0 200\n" "nopacket_relayed_sess 0 200\n" "oneway_stream_sess 0 200\n" "regular_term_sess 0 200\n" "relayed_errors_user 0 200\n" "relayed_packets_user 0 200\n" "relayed_bytes_user 0 200\n" "relayed_errors_kernel 0 200\n" "relayed_packets_kernel 0 200\n" "relayed_bytes_kernel 0 200\n" "relayed_errors 0 200\n" "relayed_packets 0 200\n" "relayed_bytes 0 200\n" "silent_timeout_sess 0 200\n" "final_timeout_sess 0 200\n" "offer_timeout_sess 0 200\n" "timeout_sess 0 200\n" "reject_sess 0 200\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "2\n" "2\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "2\n" "2\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "120 seconds\n" "120\n" "Total managed sessions\n" "managedsessions\n" "0\n" "0\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "0.000000 seconds squared\n" "0.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "0.000000 seconds\n" "0.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "143.000000 seconds\n" "143.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "2\n" "2\n" "Max managed sessions\n" "maxmanagedsessions\n" "2\n" "2\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); call_destroy(call1); call_destroy(call2); obj_put(call1); obj_put(call2); // test average call duration graph_str = print_graphite_data(); assert_g_string_eq(graph_str, "ping_time_min 0.000000 200\n" "ping_time_max 0.000000 200\n" "ping_time_avg 0.000000 200\n" "pings_ps_min 0 200\n" "pings_ps_max 0 200\n" "pings_ps_avg 0 200\n" "ping_count 0 200\n" "offer_time_min 0.000000 200\n" "offer_time_max 0.000000 200\n" "offer_time_avg 0.000000 200\n" "offers_ps_min 0 200\n" "offers_ps_max 0 200\n" "offers_ps_avg 0 200\n" "offer_count 322 200\n" "answer_time_min 0.000000 200\n" "answer_time_max 0.000000 200\n" "answer_time_avg 0.000000 200\n" "answers_ps_min 0 200\n" "answers_ps_max 0 200\n" "answers_ps_avg 0 200\n" "answer_count 1 200\n" "delete_time_min 0.000000 200\n" "delete_time_max 0.000000 200\n" "delete_time_avg 0.000000 200\n" "deletes_ps_min 0 200\n" "deletes_ps_max 0 200\n" "deletes_ps_avg 0 200\n" "delete_count 0 200\n" "query_time_min 0.000000 200\n" "query_time_max 0.000000 200\n" "query_time_avg 0.000000 200\n" "querys_ps_min 0 200\n" "querys_ps_max 0 200\n" "querys_ps_avg 0 200\n" "query_count 0 200\n" "list_time_min 0.000000 200\n" "list_time_max 0.000000 200\n" "list_time_avg 0.000000 200\n" "lists_ps_min 0 200\n" "lists_ps_max 0 200\n" "lists_ps_avg 0 200\n" "list_count 0 200\n" "start_recording_time_min 0.000000 200\n" "start_recording_time_max 0.000000 200\n" "start_recording_time_avg 0.000000 200\n" "start_recordings_ps_min 0 200\n" "start_recordings_ps_max 0 200\n" "start_recordings_ps_avg 0 200\n" "start_recording_count 0 200\n" "stop_recording_time_min 0.000000 200\n" "stop_recording_time_max 0.000000 200\n" "stop_recording_time_avg 0.000000 200\n" "stop_recordings_ps_min 0 200\n" "stop_recordings_ps_max 0 200\n" "stop_recordings_ps_avg 0 200\n" "stop_recording_count 0 200\n" "pause_recording_time_min 0.000000 200\n" "pause_recording_time_max 0.000000 200\n" "pause_recording_time_avg 0.000000 200\n" "pause_recordings_ps_min 0 200\n" "pause_recordings_ps_max 0 200\n" "pause_recordings_ps_avg 0 200\n" "pause_recording_count 0 200\n" "start_forwarding_time_min 0.000000 200\n" "start_forwarding_time_max 0.000000 200\n" "start_forwarding_time_avg 0.000000 200\n" "start_forwardings_ps_min 0 200\n" "start_forwardings_ps_max 0 200\n" "start_forwardings_ps_avg 0 200\n" "start_forwarding_count 0 200\n" "stop_forwarding_time_min 0.000000 200\n" "stop_forwarding_time_max 0.000000 200\n" "stop_forwarding_time_avg 0.000000 200\n" "stop_forwardings_ps_min 0 200\n" "stop_forwardings_ps_max 0 200\n" "stop_forwardings_ps_avg 0 200\n" "stop_forwarding_count 0 200\n" "block_DTMF_time_min 0.000000 200\n" "block_DTMF_time_max 0.000000 200\n" "block_DTMF_time_avg 0.000000 200\n" "block_DTMFs_ps_min 0 200\n" "block_DTMFs_ps_max 0 200\n" "block_DTMFs_ps_avg 0 200\n" "block_DTMF_count 0 200\n" "unblock_DTMF_time_min 0.000000 200\n" "unblock_DTMF_time_max 0.000000 200\n" "unblock_DTMF_time_avg 0.000000 200\n" "unblock_DTMFs_ps_min 0 200\n" "unblock_DTMFs_ps_max 0 200\n" "unblock_DTMFs_ps_avg 0 200\n" "unblock_DTMF_count 0 200\n" "block_media_time_min 0.000000 200\n" "block_media_time_max 0.000000 200\n" "block_media_time_avg 0.000000 200\n" "block_medias_ps_min 0 200\n" "block_medias_ps_max 0 200\n" "block_medias_ps_avg 0 200\n" "block_media_count 0 200\n" "unblock_media_time_min 0.000000 200\n" "unblock_media_time_max 0.000000 200\n" "unblock_media_time_avg 0.000000 200\n" "unblock_medias_ps_min 0 200\n" "unblock_medias_ps_max 0 200\n" "unblock_medias_ps_avg 0 200\n" "unblock_media_count 0 200\n" "play_media_time_min 0.000000 200\n" "play_media_time_max 0.000000 200\n" "play_media_time_avg 0.000000 200\n" "play_medias_ps_min 0 200\n" "play_medias_ps_max 0 200\n" "play_medias_ps_avg 0 200\n" "play_media_count 0 200\n" "stop_media_time_min 0.000000 200\n" "stop_media_time_max 0.000000 200\n" "stop_media_time_avg 0.000000 200\n" "stop_medias_ps_min 0 200\n" "stop_medias_ps_max 0 200\n" "stop_medias_ps_avg 0 200\n" "stop_media_count 0 200\n" "play_DTMF_time_min 0.000000 200\n" "play_DTMF_time_max 0.000000 200\n" "play_DTMF_time_avg 0.000000 200\n" "play_DTMFs_ps_min 0 200\n" "play_DTMFs_ps_max 0 200\n" "play_DTMFs_ps_avg 0 200\n" "play_DTMF_count 0 200\n" "statistics_time_min 0.000000 200\n" "statistics_time_max 0.000000 200\n" "statistics_time_avg 0.000000 200\n" "statisticss_ps_min 0 200\n" "statisticss_ps_max 0 200\n" "statisticss_ps_avg 0 200\n" "statistics_count 0 200\n" "silence_media_time_min 0.000000 200\n" "silence_media_time_max 0.000000 200\n" "silence_media_time_avg 0.000000 200\n" "silence_medias_ps_min 0 200\n" "silence_medias_ps_max 0 200\n" "silence_medias_ps_avg 0 200\n" "silence_media_count 0 200\n" "unsilence_media_time_min 0.000000 200\n" "unsilence_media_time_max 0.000000 200\n" "unsilence_media_time_avg 0.000000 200\n" "unsilence_medias_ps_min 0 200\n" "unsilence_medias_ps_max 0 200\n" "unsilence_medias_ps_avg 0 200\n" "unsilence_media_count 0 200\n" "publish_time_min 0.000000 200\n" "publish_time_max 0.000000 200\n" "publish_time_avg 0.000000 200\n" "publishs_ps_min 0 200\n" "publishs_ps_max 0 200\n" "publishs_ps_avg 0 200\n" "publish_count 0 200\n" "subscribe_request_time_min 0.000000 200\n" "subscribe_request_time_max 0.000000 200\n" "subscribe_request_time_avg 0.000000 200\n" "subscribe_requests_ps_min 0 200\n" "subscribe_requests_ps_max 0 200\n" "subscribe_requests_ps_avg 0 200\n" "subscribe_request_count 0 200\n" "subscribe_answer_time_min 0.000000 200\n" "subscribe_answer_time_max 0.000000 200\n" "subscribe_answer_time_avg 0.000000 200\n" "subscribe_answers_ps_min 0 200\n" "subscribe_answers_ps_max 0 200\n" "subscribe_answers_ps_avg 0 200\n" "subscribe_answer_count 0 200\n" "unsubscribe_time_min 0.000000 200\n" "unsubscribe_time_max 0.000000 200\n" "unsubscribe_time_avg 0.000000 200\n" "unsubscribes_ps_min 0 200\n" "unsubscribes_ps_max 0 200\n" "unsubscribes_ps_avg 0 200\n" "unsubscribe_count 0 200\n" "call_dur 0.000000 200\n" "average_call_dur 93.000000 200\n" "forced_term_sess 0 200\n" "managed_sess 2 200\n" "managed_sess_min 0 200\n" "managed_sess_max 2 200\n" "current_sessions_total 0 200\n" "current_sessions_own 0 200\n" "current_sessions_foreign 0 200\n" "current_transcoded_media 0 200\n" "current_sessions_ipv4 0 200\n" "current_sessions_ipv6 0 200\n" "current_sessions_mixed 0 200\n" "nopacket_relayed_sess 0 200\n" "oneway_stream_sess 0 200\n" "regular_term_sess 0 200\n" "relayed_errors_user 0 200\n" "relayed_packets_user 0 200\n" "relayed_bytes_user 0 200\n" "relayed_errors_kernel 0 200\n" "relayed_packets_kernel 0 200\n" "relayed_bytes_kernel 0 200\n" "relayed_errors 0 200\n" "relayed_packets 0 200\n" "relayed_bytes 0 200\n" "silent_timeout_sess 0 200\n" "final_timeout_sess 0 200\n" "offer_timeout_sess 0 200\n" "timeout_sess 0 200\n" "reject_sess 0 200\n"); stats = statistics_gather_metrics(NULL); assert_metrics_eq(stats, "\n" "{\n" "Statistics over currently running sessions:\n" "currentstatistics\n" "\n" "{\n" "Owned sessions\n" "sessionsown\n" "0\n" "0\n" "type=\"own\"\n" "Foreign sessions\n" "sessionsforeign\n" "0\n" "0\n" "type=\"foreign\"\n" "Total sessions\n" "sessionstotal\n" "0\n" "0\n" "Transcoded media\n" "transcodedmedia\n" "0\n" "0\n" "Packets per second (userspace)\n" "packetrate_user\n" "0\n" "0\n" "Bytes per second (userspace)\n" "byterate_user\n" "0\n" "0\n" "Errors per second (userspace)\n" "errorrate_user\n" "0\n" "0\n" "Packets per second (kernel)\n" "packetrate_kernel\n" "0\n" "0\n" "Bytes per second (kernel)\n" "byterate_kernel\n" "0\n" "0\n" "Errors per second (kernel)\n" "errorrate_kernel\n" "0\n" "0\n" "Packets per second (total)\n" "packetrate\n" "0\n" "0\n" "Bytes per second (total)\n" "byterate\n" "0\n" "0\n" "Errors per second (total)\n" "errorrate\n" "0\n" "0\n" "Userspace-only media streams\n" "media_userspace\n" "0\n" "0\n" "type=\"userspace\"\n" "Kernel-only media streams\n" "media_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Mixed kernel/userspace media streams\n" "media_mixed\n" "0\n" "0\n" "type=\"mixed\"\n" "\n" "}\n" "Total statistics (does not include current running sessions):\n" "totalstatistics\n" "\n" "{\n" "Uptime of rtpengine\n" "uptime\n" "120 seconds\n" "120\n" "Total managed sessions\n" "managedsessions\n" "2\n" "2\n" "Total rejected sessions\n" "rejectedsessions\n" "0\n" "0\n" "reason=\"rejected\"\n" "Total timed-out sessions via TIMEOUT\n" "timeoutsessions\n" "0\n" "0\n" "reason=\"timeout\"\n" "Total timed-out sessions via SILENT_TIMEOUT\n" "silenttimeoutsessions\n" "0\n" "0\n" "reason=\"silent_timeout\"\n" "Total timed-out sessions via FINAL_TIMEOUT\n" "finaltimeoutsessions\n" "0\n" "0\n" "reason=\"final_timeout\"\n" "Total timed-out sessions via OFFER_TIMEOUT\n" "offertimeoutsessions\n" "0\n" "0\n" "reason=\"offer_timeout\"\n" "Total regular terminated sessions\n" "regularterminatedsessions\n" "0\n" "0\n" "reason=\"terminated\"\n" "Total forced terminated sessions\n" "forcedterminatedsessions\n" "0\n" "0\n" "reason=\"force_terminated\"\n" "Total relayed packets (userspace)\n" "relayedpackets_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packet errors (userspace)\n" "relayedpacketerrors_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed bytes (userspace)\n" "relayedbytes_user\n" "0\n" "0\n" "type=\"userspace\"\n" "Total relayed packets (kernel)\n" "relayedpackets_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packet errors (kernel)\n" "relayedpacketerrors_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed bytes (kernel)\n" "relayedbytes_kernel\n" "0\n" "0\n" "type=\"kernel\"\n" "Total relayed packets\n" "relayedpackets\n" "0\n" "0\n" "Total relayed packet errors\n" "relayedpacketerrors\n" "0\n" "0\n" "Total relayed bytes\n" "relayedbytes\n" "0\n" "0\n" "Total number of streams with no relayed packets\n" "zerowaystreams\n" "0\n" "0\n" "Total number of 1-way streams\n" "onewaystreams\n" "0\n" "0\n" "Average call duration\n" "avgcallduration\n" "93.000000 seconds\n" "93.000000\n" "Total calls duration\n" "totalcallsduration\n" "186.000000 seconds\n" "186.000000\n" "Total calls duration squared\n" "totalcallsduration2\n" "22298.000000 seconds squared\n" "22298.000000\n" "Total calls duration standard deviation\n" "totalcallsduration_stddev\n" "50.000000 seconds\n" "50.000000\n" "\n" "\n" "}\n" "Graphite interval statistics (last reported values to graphite):\n" "intervalstatistics\n" "{\n" "Total calls duration\n" "totalcallsduration\n" "0.000000 seconds\n" "0.000000\n" "\n" "Min managed sessions\n" "minmanagedsessions\n" "0\n" "0\n" "Max managed sessions\n" "maxmanagedsessions\n" "2\n" "2\n" "Min/Max/Avg ping processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpingdelay\n" "0.000000\n" "maxpingdelay\n" "0.000000\n" "avgpingdelay\n" "0.000000\n" "Min/Max/Avg offer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minofferdelay\n" "0.000000\n" "maxofferdelay\n" "0.000000\n" "avgofferdelay\n" "0.000000\n" "Min/Max/Avg answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minanswerdelay\n" "0.000000\n" "maxanswerdelay\n" "0.000000\n" "avganswerdelay\n" "0.000000\n" "Min/Max/Avg delete processing delay\n" "0.000000/0.000000/0.000000 sec\n" "mindeletedelay\n" "0.000000\n" "maxdeletedelay\n" "0.000000\n" "avgdeletedelay\n" "0.000000\n" "Min/Max/Avg query processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minquerydelay\n" "0.000000\n" "maxquerydelay\n" "0.000000\n" "avgquerydelay\n" "0.000000\n" "Min/Max/Avg list processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minlistdelay\n" "0.000000\n" "maxlistdelay\n" "0.000000\n" "avglistdelay\n" "0.000000\n" "Min/Max/Avg start recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart recordingdelay\n" "0.000000\n" "maxstart recordingdelay\n" "0.000000\n" "avgstart recordingdelay\n" "0.000000\n" "Min/Max/Avg stop recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop recordingdelay\n" "0.000000\n" "maxstop recordingdelay\n" "0.000000\n" "avgstop recordingdelay\n" "0.000000\n" "Min/Max/Avg pause recording processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpause recordingdelay\n" "0.000000\n" "maxpause recordingdelay\n" "0.000000\n" "avgpause recordingdelay\n" "0.000000\n" "Min/Max/Avg start forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstart forwardingdelay\n" "0.000000\n" "maxstart forwardingdelay\n" "0.000000\n" "avgstart forwardingdelay\n" "0.000000\n" "Min/Max/Avg stop forwarding processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop forwardingdelay\n" "0.000000\n" "maxstop forwardingdelay\n" "0.000000\n" "avgstop forwardingdelay\n" "0.000000\n" "Min/Max/Avg block DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock DTMFdelay\n" "0.000000\n" "maxblock DTMFdelay\n" "0.000000\n" "avgblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg unblock DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock DTMFdelay\n" "0.000000\n" "maxunblock DTMFdelay\n" "0.000000\n" "avgunblock DTMFdelay\n" "0.000000\n" "Min/Max/Avg block media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minblock mediadelay\n" "0.000000\n" "maxblock mediadelay\n" "0.000000\n" "avgblock mediadelay\n" "0.000000\n" "Min/Max/Avg unblock media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunblock mediadelay\n" "0.000000\n" "maxunblock mediadelay\n" "0.000000\n" "avgunblock mediadelay\n" "0.000000\n" "Min/Max/Avg play media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay mediadelay\n" "0.000000\n" "maxplay mediadelay\n" "0.000000\n" "avgplay mediadelay\n" "0.000000\n" "Min/Max/Avg stop media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstop mediadelay\n" "0.000000\n" "maxstop mediadelay\n" "0.000000\n" "avgstop mediadelay\n" "0.000000\n" "Min/Max/Avg play DTMF processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minplay DTMFdelay\n" "0.000000\n" "maxplay DTMFdelay\n" "0.000000\n" "avgplay DTMFdelay\n" "0.000000\n" "Min/Max/Avg statistics processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minstatisticsdelay\n" "0.000000\n" "maxstatisticsdelay\n" "0.000000\n" "avgstatisticsdelay\n" "0.000000\n" "Min/Max/Avg silence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsilence mediadelay\n" "0.000000\n" "maxsilence mediadelay\n" "0.000000\n" "avgsilence mediadelay\n" "0.000000\n" "Min/Max/Avg unsilence media processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsilence mediadelay\n" "0.000000\n" "maxunsilence mediadelay\n" "0.000000\n" "avgunsilence mediadelay\n" "0.000000\n" "Min/Max/Avg publish processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minpublishdelay\n" "0.000000\n" "maxpublishdelay\n" "0.000000\n" "avgpublishdelay\n" "0.000000\n" "Min/Max/Avg subscribe request processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe requestdelay\n" "0.000000\n" "maxsubscribe requestdelay\n" "0.000000\n" "avgsubscribe requestdelay\n" "0.000000\n" "Min/Max/Avg subscribe answer processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minsubscribe answerdelay\n" "0.000000\n" "maxsubscribe answerdelay\n" "0.000000\n" "avgsubscribe answerdelay\n" "0.000000\n" "Min/Max/Avg unsubscribe processing delay\n" "0.000000/0.000000/0.000000 sec\n" "minunsubscribedelay\n" "0.000000\n" "maxunsubscribedelay\n" "0.000000\n" "avgunsubscribedelay\n" "0.000000\n" "Min/Max/Avg ping requests per second\n" "0/0/0 per sec\n" "minpingrequestrate\n" "0\n" "maxpingrequestrate\n" "0\n" "avgpingrequestrate\n" "0\n" "Min/Max/Avg offer requests per second\n" "0/0/0 per sec\n" "minofferrequestrate\n" "0\n" "maxofferrequestrate\n" "0\n" "avgofferrequestrate\n" "0\n" "Min/Max/Avg answer requests per second\n" "0/0/0 per sec\n" "minanswerrequestrate\n" "0\n" "maxanswerrequestrate\n" "0\n" "avganswerrequestrate\n" "0\n" "Min/Max/Avg delete requests per second\n" "0/0/0 per sec\n" "mindeleterequestrate\n" "0\n" "maxdeleterequestrate\n" "0\n" "avgdeleterequestrate\n" "0\n" "Min/Max/Avg query requests per second\n" "0/0/0 per sec\n" "minqueryrequestrate\n" "0\n" "maxqueryrequestrate\n" "0\n" "avgqueryrequestrate\n" "0\n" "Min/Max/Avg list requests per second\n" "0/0/0 per sec\n" "minlistrequestrate\n" "0\n" "maxlistrequestrate\n" "0\n" "avglistrequestrate\n" "0\n" "Min/Max/Avg start recording requests per second\n" "0/0/0 per sec\n" "minstart recordingrequestrate\n" "0\n" "maxstart recordingrequestrate\n" "0\n" "avgstart recordingrequestrate\n" "0\n" "Min/Max/Avg stop recording requests per second\n" "0/0/0 per sec\n" "minstop recordingrequestrate\n" "0\n" "maxstop recordingrequestrate\n" "0\n" "avgstop recordingrequestrate\n" "0\n" "Min/Max/Avg pause recording requests per second\n" "0/0/0 per sec\n" "minpause recordingrequestrate\n" "0\n" "maxpause recordingrequestrate\n" "0\n" "avgpause recordingrequestrate\n" "0\n" "Min/Max/Avg start forwarding requests per second\n" "0/0/0 per sec\n" "minstart forwardingrequestrate\n" "0\n" "maxstart forwardingrequestrate\n" "0\n" "avgstart forwardingrequestrate\n" "0\n" "Min/Max/Avg stop forwarding requests per second\n" "0/0/0 per sec\n" "minstop forwardingrequestrate\n" "0\n" "maxstop forwardingrequestrate\n" "0\n" "avgstop forwardingrequestrate\n" "0\n" "Min/Max/Avg block DTMF requests per second\n" "0/0/0 per sec\n" "minblock DTMFrequestrate\n" "0\n" "maxblock DTMFrequestrate\n" "0\n" "avgblock DTMFrequestrate\n" "0\n" "Min/Max/Avg unblock DTMF requests per second\n" "0/0/0 per sec\n" "minunblock DTMFrequestrate\n" "0\n" "maxunblock DTMFrequestrate\n" "0\n" "avgunblock DTMFrequestrate\n" "0\n" "Min/Max/Avg block media requests per second\n" "0/0/0 per sec\n" "minblock mediarequestrate\n" "0\n" "maxblock mediarequestrate\n" "0\n" "avgblock mediarequestrate\n" "0\n" "Min/Max/Avg unblock media requests per second\n" "0/0/0 per sec\n" "minunblock mediarequestrate\n" "0\n" "maxunblock mediarequestrate\n" "0\n" "avgunblock mediarequestrate\n" "0\n" "Min/Max/Avg play media requests per second\n" "0/0/0 per sec\n" "minplay mediarequestrate\n" "0\n" "maxplay mediarequestrate\n" "0\n" "avgplay mediarequestrate\n" "0\n" "Min/Max/Avg stop media requests per second\n" "0/0/0 per sec\n" "minstop mediarequestrate\n" "0\n" "maxstop mediarequestrate\n" "0\n" "avgstop mediarequestrate\n" "0\n" "Min/Max/Avg play DTMF requests per second\n" "0/0/0 per sec\n" "minplay DTMFrequestrate\n" "0\n" "maxplay DTMFrequestrate\n" "0\n" "avgplay DTMFrequestrate\n" "0\n" "Min/Max/Avg statistics requests per second\n" "0/0/0 per sec\n" "minstatisticsrequestrate\n" "0\n" "maxstatisticsrequestrate\n" "0\n" "avgstatisticsrequestrate\n" "0\n" "Min/Max/Avg silence media requests per second\n" "0/0/0 per sec\n" "minsilence mediarequestrate\n" "0\n" "maxsilence mediarequestrate\n" "0\n" "avgsilence mediarequestrate\n" "0\n" "Min/Max/Avg unsilence media requests per second\n" "0/0/0 per sec\n" "minunsilence mediarequestrate\n" "0\n" "maxunsilence mediarequestrate\n" "0\n" "avgunsilence mediarequestrate\n" "0\n" "Min/Max/Avg publish requests per second\n" "0/0/0 per sec\n" "minpublishrequestrate\n" "0\n" "maxpublishrequestrate\n" "0\n" "avgpublishrequestrate\n" "0\n" "Min/Max/Avg subscribe request requests per second\n" "0/0/0 per sec\n" "minsubscribe requestrequestrate\n" "0\n" "maxsubscribe requestrequestrate\n" "0\n" "avgsubscribe requestrequestrate\n" "0\n" "Min/Max/Avg subscribe answer requests per second\n" "0/0/0 per sec\n" "minsubscribe answerrequestrate\n" "0\n" "maxsubscribe answerrequestrate\n" "0\n" "avgsubscribe answerrequestrate\n" "0\n" "Min/Max/Avg unsubscribe requests per second\n" "0/0/0 per sec\n" "minunsubscriberequestrate\n" "0\n" "maxunsubscriberequestrate\n" "0\n" "avgunsubscriberequestrate\n" "0\n" "\n" "\n" "}\n" "MOS statistics:\n" "mos\n" "\n" "{\n" "Sum of all MOS values sampled\n" "mos_total\n" "0.000000\n" "0.000000\n" "Sum of all MOS square values sampled\n" "mos2_total\n" "0.000000\n" "0.000000\n" "Total number of MOS samples\n" "mos_samples_total\n" "0\n" "0\n" "Average MOS\n" "mos_average\n" "0.000000\n" "0.000000\n" "MOS standard deviation\n" "mos_stddev\n" "0.000000\n" "0.000000\n" "\n" "\n" "}\n" "VoIP metrics:\n" "voip_metrics\n" "\n" "{\n" "Sum of all jitter (reported) values sampled\n" "jitter_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (reported) square values sampled\n" "jitter2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (reported) samples\n" "jitter_samples_total\n" "0\n" "0\n" "Average jitter (reported)\n" "jitter_average\n" "0.000000\n" "0.000000\n" "jitter (reported) standard deviation\n" "jitter_stddev\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time values sampled\n" "rtt_e2e_total\n" "0.000000\n" "0.000000\n" "Sum of all end-to-end round-trip time square values sampled\n" "rtt_e2e2_total\n" "0.000000\n" "0.000000\n" "Total number of end-to-end round-trip time samples\n" "rtt_e2e_samples_total\n" "0\n" "0\n" "Average end-to-end round-trip time\n" "rtt_e2e_average\n" "0.000000\n" "0.000000\n" "end-to-end round-trip time standard deviation\n" "rtt_e2e_stddev\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time values sampled\n" "rtt_dsct_total\n" "0.000000\n" "0.000000\n" "Sum of all discrete round-trip time square values sampled\n" "rtt_dsct2_total\n" "0.000000\n" "0.000000\n" "Total number of discrete round-trip time samples\n" "rtt_dsct_samples_total\n" "0\n" "0\n" "Average discrete round-trip time\n" "rtt_dsct_average\n" "0.000000\n" "0.000000\n" "discrete round-trip time standard deviation\n" "rtt_dsct_stddev\n" "0.000000\n" "0.000000\n" "Sum of all packet loss values sampled\n" "packetloss_total\n" "0.000000\n" "0.000000\n" "Sum of all packet loss square values sampled\n" "packetloss2_total\n" "0.000000\n" "0.000000\n" "Total number of packet loss samples\n" "packetloss_samples_total\n" "0\n" "0\n" "Average packet loss\n" "packetloss_average\n" "0.000000\n" "0.000000\n" "packet loss standard deviation\n" "packetloss_stddev\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) values sampled\n" "jitter_measured_total\n" "0.000000\n" "0.000000\n" "Sum of all jitter (measured) square values sampled\n" "jitter_measured2_total\n" "0.000000\n" "0.000000\n" "Total number of jitter (measured) samples\n" "jitter_measured_samples_total\n" "0\n" "0\n" "Average jitter (measured)\n" "jitter_measured_average\n" "0.000000\n" "0.000000\n" "jitter (measured) standard deviation\n" "jitter_measured_stddev\n" "0.000000\n" "0.000000\n" "Packets lost\n" "packets_lost\n" "0\n" "0\n" "Duplicate RTP packets\n" "rtp_duplicates\n" "0\n" "0\n" "RTP sequence skips\n" "rtp_skips\n" "0\n" "0\n" "RTP sequence resets\n" "rtp_seq_resets\n" "0\n" "0\n" "Out-of-order RTP packets\n" "rtp_reordered\n" "0\n" "0\n" "\n" "\n" "}\n" "Control statistics:\n" "controlstatistics\n" "\n" "{\n" "proxies\n" "[\n" " Proxy | Ping | Offer | Answer | Delete | Query | List | StartRec | StopRec | PauseRec | StartFwd | StopFwd | BlkDTMF | UnblkDTMF | BlkMedia | UnblkMedia | PlayMedia | StopMedia | PlayDTMF | Stats | SlnMedia | UnslnMedia | Pub | SubReq | SubAns | Unsub \n" "\n" "]\n" "totalpingcount\n" "0\n" "totaloffercount\n" "0\n" "totalanswercount\n" "0\n" "totaldeletecount\n" "0\n" "totalquerycount\n" "0\n" "totallistcount\n" "0\n" "totalstartreccount\n" "0\n" "totalstopreccount\n" "0\n" "totalpausereccount\n" "0\n" "totalstartfwdcount\n" "0\n" "totalstopfwdcount\n" "0\n" "totalblkdtmfcount\n" "0\n" "totalunblkdtmfcount\n" "0\n" "totalblkmediacount\n" "0\n" "totalunblkmediacount\n" "0\n" "totalplaymediacount\n" "0\n" "totalstopmediacount\n" "0\n" "totalplaydtmfcount\n" "0\n" "totalstatscount\n" "0\n" "totalslnmediacount\n" "0\n" "totalunslnmediacount\n" "0\n" "totalpubcount\n" "0\n" "totalsubreqcount\n" "0\n" "totalsubanscount\n" "0\n" "totalunsubcount\n" "0\n" "\n" "}\n" "interfaces\n" "[\n" "]\n" "transcoders\n" "\n" "[\n" "\n" "]\n" "}\n"); // cleanup statistics_free(); call_free(); call_interfaces_free(); control_ng_cleanup(); dtls_cert_free(); ice_free(); bufferpool_destroy(shm_bufferpool); bufferpool_cleanup(); return 0; } int get_local_log_level(unsigned int u) { return 7; } rtpengine-mr12.5.1.22/t/test-transcode.c000066400000000000000000002017171474347554000177470ustar00rootroot00000000000000#include "codec.h" #include "call.h" #include "call_interfaces.h" #include "log.h" #include "main.h" #include "ssrc.h" #include "helpers.h" #include "bufferpool.h" int _log_facility_rtcp; int _log_facility_cdr; int _log_facility_dtmf; struct rtpengine_config rtpe_config; struct rtpengine_config initial_rtpe_config; struct poller **rtpe_pollers; struct poller *rtpe_control_poller; struct poller *uring_poller; unsigned int num_media_pollers; unsigned int rtpe_poller_rr_iter; GString *dtmf_logs; GQueue rtpe_control_ng = G_QUEUE_INIT; struct bufferpool *shm_bufferpool; static str *sdup(char *s) { str r = STR_INIT(s); return str_dup(&r); } static void queue_dump(GString *s, rtp_pt_q *q) { for (__auto_type l = q->head; l; l = l->next) { if (s->len) g_string_append(s, " "); rtp_payload_type *pt = l->data; g_string_append_printf(s, "%i/%s", pt->payload_type, pt->encoding_with_params.s); if (pt->format_parameters.len) g_string_append_printf(s, "/%s", pt->format_parameters.s); } } // global variables used by tests static GHashTable *rtp_ts_ht; static GHashTable *rtp_seq_ht; static uint32_t ssrc_A; static uint32_t ssrc_B; static call_t call; static sdp_ng_flags flags; static struct call_media *media_A; static struct call_media *media_B; struct call_monologue *ml_A; struct call_monologue *ml_B; struct stream_params rtp_types_sp; #define start() __start(__FILE__, __LINE__) static void __cleanup(void) { str_case_ht_destroy_ptr(&flags.codec_except); str_case_value_ht_destroy_ptr(&flags.codec_set); str_case_ht_destroy_ptr(&flags.sdes_no); t_queue_clear_full(&flags.codec_offer, str_free); t_queue_clear_full(&flags.codec_transcode, str_free); t_queue_clear_full(&flags.codec_strip, str_free); t_queue_clear_full(&flags.codec_accept, str_free); t_queue_clear_full(&flags.codec_consume, str_free); t_queue_clear_full(&flags.codec_mask, str_free); t_queue_clear(&call.monologues); codec_store_cleanup(&rtp_types_sp.codecs); memset(&flags, 0, sizeof(flags)); } static void __init(void) { __cleanup(); codec_store_init(&rtp_types_sp.codecs, NULL); rtp_types_sp.rtp_endpoint.port = 9; flags.codec_except = str_case_ht_new(); flags.codec_set = str_case_value_ht_new(); } static struct packet_stream *ps_new(call_t *c) { struct packet_stream *ps = malloc(sizeof(*ps)); assert(ps != NULL); memset(ps, 0, sizeof(*ps)); ps->endpoint.port = 12345; return ps; } static void __start(const char *file, int line) { printf("running test %s:%i\n", file, line); rtp_ts_ht = g_hash_table_new(g_direct_hash, g_direct_equal); rtp_seq_ht = g_hash_table_new(g_direct_hash, g_direct_equal); ssrc_A = 1234; ssrc_B = 2345; ZERO(call); obj_hold(&call); call.tags = tags_ht_new(); str_init(&call.callid, "test-call"); bencode_buffer_init(&call.buffer); ml_A = __monologue_create(&call); ml_B = __monologue_create(&call); media_A = call_media_new(&call); // originator media_B = call_media_new(&call); // output destination t_queue_push_tail(&media_A->streams, ps_new(&call)); t_queue_push_tail(&media_B->streams, ps_new(&call)); str_init(&ml_A->tag, "tag_A"); str_init(&ml_A->label, "label_A"); media_A->monologue = ml_A; media_A->protocol = &transport_protocols[PROTO_RTP_AVP]; str_init(&ml_B->tag, "tag_B"); str_init(&ml_B->label, "label_B"); media_B->monologue = ml_B; media_B->protocol = &transport_protocols[PROTO_RTP_AVP]; __init(); } #define transcode(codec) t_queue_push_tail(&flags.codec_transcode, sdup(#codec)) #define c_accept(codec) t_queue_push_tail(&flags.codec_accept, sdup(#codec)) #define c_consume(codec) t_queue_push_tail(&flags.codec_consume, sdup(#codec)) #define c_mask(codec) t_queue_push_tail(&flags.codec_mask, sdup(#codec)) #ifdef WITH_AMR_TESTS static void codec_set(char *c) { // from call_ng_flags_str_ht_split c = strdup(c); str s = STR_INIT(c); str splitter = s; while (1) { t_hash_table_replace(flags.codec_set, str_dup(&splitter), str_dup(&s)); char *cp = memrchr(splitter.s, '/', splitter.len); if (!cp) break; splitter.len = cp - splitter.s; } free(c); } #endif //static void __ht_set(GHashTable *h, char *x) { // str *d = sdup(x); // g_hash_table_insert(h, d, d); //} //#define ht_set(ht, s) __ht_set(flags.ht, #s) #define sdp_pt_fmt_ch(num, codec, clockrate, channels, fmt) \ __sdp_pt_fmt(num, (str) STR_CONST_INIT(#codec), clockrate, channels, (str) STR_CONST_INIT(#codec "/" #clockrate), \ (str) STR_CONST_INIT(#codec "/" #clockrate "/" #channels), (str) STR_CONST_INIT(fmt)) #define sdp_pt_fmt(num, codec, clockrate, fmt) sdp_pt_fmt_ch(num, codec, clockrate, 1, fmt) #define sdp_pt_fmt_s(num, codec, clockrate, fmt) sdp_pt_fmt_ch(num, codec, clockrate, 2, fmt) static void __sdp_pt_fmt(int num, str codec, int clockrate, int channels, str full_codec, str full_full, str fmt) { str *fmtdup = str_dup(&fmt); rtp_payload_type pt = (rtp_payload_type) { .payload_type = num, .encoding_with_params = full_codec, .encoding_with_full_params = full_full, .encoding = codec, .clock_rate = clockrate, .encoding_parameters = STR_CONST_INIT(""), .channels = channels, .format_parameters = *fmtdup, .codec_opts = STR_NULL, .rtcp_fb = G_QUEUE_INIT, .ptime = 0, .bitrate = 0, .codec_def = NULL, }; codec_store_add_raw(&rtp_types_sp.codecs, rtp_payload_type_dup(&pt)); free(fmtdup); } #define sdp_pt(num, codec, clockrate) sdp_pt_fmt(num, codec, clockrate, "") #define sdp_pt_s(num, codec, clockrate) sdp_pt_fmt_s(num, codec, clockrate, "") static void offer(void) { printf("offer\n"); flags.opmode = OP_OFFER; codecs_offer_answer(media_B, media_A, &rtp_types_sp, &flags); __init(); } static void answer(void) { printf("answer\n"); flags.opmode = OP_ANSWER; codecs_offer_answer(media_A, media_B, &rtp_types_sp, &flags); __init(); } #define expect(side, exp_str) \ __expect(__FILE__, __LINE__, &media_ ## side->codecs.codec_prefs, exp_str) static void __expect(const char *file, int line, rtp_pt_q *dumper, const char *codecs) { printf("running test %s:%i\n", file, line); GString *s = g_string_new(""); queue_dump(s, dumper); if (strcmp(s->str, codecs) != 0) { printf("test failed: %s:%i\n", file, line); printf("expected: %s\n", codecs); printf("received: %s\n", s->str); abort(); } printf("test ok: %s:%i\n\n", file, line); g_string_free(s, TRUE); } #ifdef WITH_AMR_TESTS #define check_encoder(side, otherside, in_pt, out_pt, out_bitrate) \ __check_encoder(__FILE__, __LINE__, media_ ## side, media_ ## otherside, in_pt, out_pt, out_bitrate) static void __check_encoder(const char *file, int line, struct call_media *m, struct call_media *out_m, int in_pt, int out_pt, int out_bitrate) { struct codec_handler *ch = codec_handler_lookup(m->codec_handlers, in_pt, out_m); printf("running test %s:%i\n", file, line); assert(ch); assert(ch->source_pt.payload_type == in_pt); if (ch->dest_pt.payload_type != out_pt || ch->dest_pt.bitrate != out_bitrate) { printf("test failed: %s:%i\n", file, line); printf("expected: %i/%i\n", out_pt, out_bitrate); printf("received: %i/%i\n", ch->dest_pt.payload_type, ch->dest_pt.bitrate); abort(); } printf("test ok: %s:%i\n", file, line); } #endif #define packet_seq_ts(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp, ts_exp, fatal) \ __packet_seq_ts( __FILE__, __LINE__, media_ ## side, pt_in, (str) STR_CONST_INIT(pload), \ (str) STR_CONST_INIT(pload_exp), ssrc_ ## side, rtp_ts, rtp_seq, pt_out, \ ts_exp, 1, fatal) #define packet_seq_exp(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp, ts_diff_exp) \ __packet_seq_ts( __FILE__, __LINE__, media_ ## side, pt_in, (str) STR_CONST_INIT(pload), \ (str) STR_CONST_INIT(pload_exp), ssrc_ ## side, rtp_ts, rtp_seq, pt_out, \ -1, ts_diff_exp, 1) static void __packet_seq_ts(const char *file, int line, struct call_media *media, long long pt_in, str pload, str pload_exp, uint32_t ssrc, long long rtp_ts, long long rtp_seq, long long pt_out, long long ts_exp, int seq_diff_exp, int fatal) { printf("running test %s:%i\n", file, line); struct call_media *other_media; if (media == media_A) other_media = media_B; else if (media == media_B) other_media = media_A; else abort(); struct codec_handler *h = codec_handler_get(media, pt_in & 0x7f, other_media, NULL); str pl = pload; str pl_exp = pload_exp; // from media_packet_rtp() struct interface_stats_block sblock; struct local_intf lif = { .stats = &sblock }; stream_fd sfd = { .local_intf = &lif, }; struct media_packet mp = { .call = &call, .media = media, .media_out = other_media, .ssrc_in = get_ssrc_ctx(ssrc, media->monologue->ssrc_hash, SSRC_DIR_INPUT, NULL), .sfd = &sfd, }; // from __stream_ssrc() if (!MEDIA_ISSET(media, TRANSCODING)) mp.ssrc_in->ssrc_map_out = ntohl(ssrc); mp.ssrc_out = get_ssrc_ctx(mp.ssrc_in->ssrc_map_out, other_media->monologue->ssrc_hash, SSRC_DIR_OUTPUT, NULL); payload_tracker_add(&mp.ssrc_in->tracker, pt_in & 0x7f); int packet_len = sizeof(struct rtp_header) + pl.len; char *packet = malloc(packet_len); struct rtp_header *rtp = (void *) packet; *rtp = (struct rtp_header) { .m_pt = pt_in, .ssrc = ssrc, .seq_num = htons(rtp_seq), .timestamp = htonl(rtp_ts), }; mp.rtp = rtp; mp.payload = pl; mp.payload.s = (packet + sizeof(struct rtp_header)); memcpy(mp.payload.s, pl.s, pl.len); mp.raw.s = packet; mp.raw.len = packet_len; printf("send RTP SSRC %x seq %u TS %u PT %u\n", (unsigned int) ssrc, (unsigned int) rtp_seq, (unsigned int) rtp_ts, (unsigned int) pt_in); printf("send packet contents: "); for (int i = sizeof(struct rtp_header); i < mp.raw.len; i++) { unsigned char cc = mp.raw.s[i]; printf("\\x%02x", cc); } printf("\n"); h->handler_func(h, &mp); if (pt_out == -1) { if (mp.packets_out.length != 0) { printf("test failed: %s:%i\n", file, line); printf("unexpected packet\n"); abort(); } } else { if (mp.packets_out.length != 1) { printf("test failed: %s:%i\n", file, line); printf("no packet\n"); abort(); } struct codec_packet *cp = t_queue_pop_head(&mp.packets_out); str cp_s = cp->s; rtp = (void *) cp_s.s; if (rtp->m_pt != (unsigned char) pt_out) { printf("test failed: %s:%i\n", file, line); printf("expected: %lli\n", pt_out); printf("received: %i\n", rtp->m_pt); abort(); } printf("recv packet contents: "); for (int i = sizeof(struct rtp_header); i < cp_s.len; i++) { unsigned char cc = cp_s.s[i]; printf("\\x%02x", cc); } printf("\n"); uint32_t ts = ntohl(rtp->timestamp); uint16_t seq = ntohs(rtp->seq_num); uint32_t rtp_ssrc = ntohl(rtp->ssrc); uint32_t ssrc_pt = rtp_ssrc; printf("recv RTP SSRC %x seq %u TS %u PT %u\n", (unsigned int) rtp_ssrc, (unsigned int) seq, (unsigned int) ts, (unsigned int) rtp->m_pt); if (g_hash_table_contains(rtp_ts_ht, GUINT_TO_POINTER(ssrc_pt))) { uint32_t old_ts = GPOINTER_TO_UINT(g_hash_table_lookup(rtp_ts_ht, GUINT_TO_POINTER(ssrc_pt))); uint32_t diff = ts - old_ts; printf("recv RTP TS diff: %u\n", (unsigned int) diff); if (ts_exp != -1) assert(ts_exp == diff); } g_hash_table_insert(rtp_ts_ht, GUINT_TO_POINTER(ssrc_pt), GUINT_TO_POINTER(ts)); if (g_hash_table_contains(rtp_seq_ht, GUINT_TO_POINTER(ssrc_pt))) { uint32_t old_seq = GPOINTER_TO_UINT(g_hash_table_lookup(rtp_seq_ht, GUINT_TO_POINTER(ssrc_pt))); uint16_t diff = seq - old_seq; printf("recv RTP seq diff: %u (exp %u)\n", (unsigned int) diff, (unsigned int) seq_diff_exp); assert(diff == seq_diff_exp); } g_hash_table_insert(rtp_seq_ht, GUINT_TO_POINTER(ssrc_pt), GUINT_TO_POINTER(seq)); if (str_shift(&cp_s, sizeof(struct rtp_header))) abort(); if (pl_exp.len != cp_s.len) abort(); if (fatal && memcmp(pl_exp.s, cp_s.s, pl_exp.len)) abort(); codec_packet_free(cp); } printf("test ok: %s:%i\n\n", file, line); free(packet); ssrc_ctx_put(&mp.ssrc_in); ssrc_ctx_put(&mp.ssrc_out); } #define packet(side, pt_in, pload, pt_out, pload_exp) \ packet_seq(side, pt_in, pload, 0, 0, pt_out, pload_exp) #define packet_seq(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp) \ packet_seq_ts(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp, -1, 1) #define packet_seq_nf(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp) \ packet_seq_ts(side, pt_in, pload, rtp_ts, rtp_seq, pt_out, pload_exp, -1, 0) static void end(void) { g_hash_table_destroy(rtp_ts_ht); g_hash_table_destroy(rtp_seq_ht); t_queue_clear_full(&media_A->streams, (void (*)(struct packet_stream *)) free); t_queue_clear_full(&media_B->streams, (void (*)(struct packet_stream *)) free); call_media_free(&media_A); call_media_free(&media_B); bencode_buffer_free(&call.buffer); t_hash_table_destroy(call.tags); t_queue_clear(&call.medias); if (ml_A) __monologue_free(ml_A); if (ml_B) __monologue_free(ml_B); __cleanup(); printf("\n"); } static void dtmf(const char *s) { if (!dtmf_logs) { if (strlen(s) != 0) abort(); return; } if (strlen(s) != dtmf_logs->len) { printf("DTMF mismatch: \"%s\" != \"%s\"\n", s, dtmf_logs->str); abort(); } if (memcmp(s, dtmf_logs->str, dtmf_logs->len) != 0) { printf("DTMF mismatch: \"%s\" != \"%s\"\n", s, dtmf_logs->str); abort(); } printf("DTMF log ok; contents: \"%s\"\n", dtmf_logs->str); g_string_assign(dtmf_logs, ""); } #define PCMU_payload "\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00" #define PCMA_payload "\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a\x2b\x2a" #define PCMA_silence "\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5\xd5" #define PCMU_silence "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" #define G722_payload "\x23\x84\x20\x84\x20\x84\x04\x84\x04\x04\x84\x04\x84\x04\x84\x05\x85\x46\x87\x48\xc8\x48\x88\x48\xc8\x49\x8a\x4b\xcc\x4c\x8c\x4c\xcc\x4c\x8c\x4d\xce\x50\xcf\x51\x90\x50\xcf\x12\xd1\x52\xd2\x54\x91\x52\xd2\x54\x92\x54\xd3\x56\x93\xd6\x94\xd4\x93\xd7\xd5\x55\x94\x55\xd5\x55\xd4\x56\xd5\x17\xd7\x5a\x95\xd7\x97\xd9\xd4\x16\x58\x57\x98\xd5\xd7\x5b\x96\xda\xd6\x1b\x57\x5a\xd6\x1a\x57\x5b\x98\xd6\xd8\x56\x98\xd7\xd9\x5a\x95\xdb\xd6\x1c\x52\x5e\xd7\x5c\x93\xdf\x99\xd5\xd7\x5f\xd9\x14\x56\x7f\x92\xda\xd9\x5c\x92\xdd\xd7\x5d\x92\xff\xd6\x5a\x96\xdc\xd5\x18\x56\x7e\xd2\x5e\x96\xde\x94\xd8\xd8\x58\xd3\x79\x93\xfb\x90\xdc\xd6\x5b\xdd\x58\x96\xff" #define AMR_WB_payload "\xf0\x1c\xf3\x06\x08\x10\x77\x32\x23\x20\xd3\x50\x62\x12\xc7\x7c\xe2\xea\x84\x0e\x6e\xf4\x4d\xe4\x7f\xc9\x4c\xcc\x58\x5d\xed\xcc\x5d\x7c\x6c\x14\x7d\xc0" // octet aligned #define AMR_WB_payload_noe "\xf1\xfc\xc1\x82\x04\x1d\xcc\x88\xc8\x34\xd4\x18\x84\xb1\xdf\x38\xba\xa1\x03\x9b\xbd\x13\x79\x1f\xf2\x53\x33\x16\x17\x7b\x73\x17\x5f\x1b\x05\x1f\x70" // bandwidth efficient int main(void) { rtpe_common_config_ptr = &rtpe_config.common; bufferpool_init(); media_bufferpool = bufferpool_new(g_malloc, g_free, 4096); shm_bufferpool = bufferpool_new(g_malloc, g_free, 4096); unsigned long random_seed = 0; codeclib_init(0); RAND_seed(&random_seed, sizeof(random_seed)); statistics_init(); codecs_init(); // plain start(); sdp_pt(0, PCMU, 8000); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000"); packet(A, 0, PCMU_payload, 0, PCMU_payload); packet(B, 0, PCMU_payload, 0, PCMU_payload); end(); // plain with two offered and two answered start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "0/PCMU/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); packet_seq(A, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); end(); // plain with two offered and one answered start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "8/PCMA/8000"); expect(B, "8/PCMA/8000"); packet(A, 8, PCMA_payload, 8, PCMA_payload); packet(B, 8, PCMA_payload, 8, PCMA_payload); end(); // plain with two offered and two answered + always-transcode one way start(); c_accept(all); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); packet_seq(A, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 0, PCMU_payload); end(); // plain with two offered and two answered + always-transcode both ways start(); c_accept(all); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); c_accept(all); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); packet_seq(A, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 0, PCMU_payload); end(); // add one codec to transcode start(); sdp_pt(0, PCMU, 8000); transcode(PCMA); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); packet(A, 0, PCMU_payload, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 0, PCMU_payload); end(); // add one codec to transcode, don't accept original offered codec start(); sdp_pt(0, PCMU, 8000); transcode(PCMA); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "8/PCMA/8000"); packet(A, 0, PCMU_payload, 8, PCMA_payload); packet(B, 8, PCMA_payload, 0, PCMU_payload); end(); #ifdef WITH_AMR_TESTS { str codec_name = STR_CONST_INIT("AMR-WB"); codec_def_t *def = codec_find(&codec_name, MT_AUDIO); assert(def); if (def->support_encoding && def->support_decoding) { // forward AMR-WB start(); sdp_pt(0, PCMU, 8000); transcode(AMR-WB); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 96/AMR-WB/16000/octet-align=1;mode-change-capability=2"); sdp_pt_fmt(96, AMR-WB, 16000, "octet-align=1"); answer(); expect(A, "0/PCMU/8000"); expect(B, "96/AMR-WB/16000/octet-align=1"); packet_seq(A, 0, PCMU_payload, 0, 0, -1, ""); // nothing due to resampling buffer packet_seq_nf(A, 0, PCMU_payload, 160, 1, 96, AMR_WB_payload); packet_seq(B, 96, AMR_WB_payload, 0, 0, -1, ""); // nothing due to resampling/decoding buffer packet_seq_nf(B, 96, AMR_WB_payload, 320, 1, 0, PCMU_payload); end(); // reverse AMR-WB (octet aligned) start(); sdp_pt_fmt(96, AMR-WB, 16000, "octet-align=1"); transcode(PCMU); offer(); expect(A, "96/AMR-WB/16000/octet-align=1"); expect(B, "96/AMR-WB/16000/octet-align=1 0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "96/AMR-WB/16000/octet-align=1"); expect(B, "0/PCMU/8000"); packet_seq(B, 0, PCMU_payload, 0, 0, -1, ""); // nothing due to resampling buffer packet_seq_nf(B, 0, PCMU_payload, 160, 1, 96, AMR_WB_payload); packet_seq(A, 96, AMR_WB_payload, 0, 0, -1, ""); // nothing due to resampling/decoding buffer packet_seq_nf(A, 96, AMR_WB_payload, 320, 1, 0, PCMU_payload); end(); // reverse AMR-WB (bandwidth efficient) start(); sdp_pt(96, AMR-WB, 16000); transcode(PCMU); offer(); expect(A, "96/AMR-WB/16000"); expect(B, "96/AMR-WB/16000 0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "96/AMR-WB/16000"); expect(B, "0/PCMU/8000"); packet_seq(B, 0, PCMU_payload, 0, 0, -1, ""); // nothing due to resampling buffer packet_seq_nf(B, 0, PCMU_payload, 160, 1, 96, AMR_WB_payload_noe); packet_seq(A, 96, AMR_WB_payload_noe, 0, 0, -1, ""); // nothing due to resampling/decoding buffer packet_seq_nf(A, 96, AMR_WB_payload_noe, 320, 1, 0, PCMU_payload); end(); } } { str codec_name = STR_CONST_INIT("AMR"); codec_def_t *def = codec_find(&codec_name, MT_AUDIO); assert(def); if (def->support_encoding && def->support_decoding) { // default bitrate start(); sdp_pt(0, PCMU, 8000); transcode(AMR); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 96/AMR/8000/octet-align=1;mode-change-capability=2"); sdp_pt_fmt(96, AMR, 8000, "octet-align=1"); answer(); expect(A, "0/PCMU/8000"); expect(B, "96/AMR/8000/octet-align=1"); check_encoder(A, B, 0, 96, 0); // uses codec default check_encoder(B, A, 96, 0, 0); end(); // default bitrate reverse start(); sdp_pt(96, AMR, 8000); transcode(PCMU); offer(); expect(A, "96/AMR/8000"); expect(B, "96/AMR/8000 0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "96/AMR/8000"); expect(B, "0/PCMU/8000"); check_encoder(A, B, 96, 0, 0); check_encoder(B, A, 0, 96, 0); // uses codec default end(); // specify forward bitrate start(); sdp_pt(0, PCMU, 8000); transcode(AMR/8000/1/6700); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 96/AMR/8000/octet-align=1;mode-change-capability=2"); sdp_pt_fmt(96, AMR, 8000, "octet-align=1"); answer(); expect(A, "0/PCMU/8000"); expect(B, "96/AMR/8000/octet-align=1"); check_encoder(A, B, 0, 96, 6700); check_encoder(B, A, 96, 0, 0); end(); // specify non-default forward bitrate start(); sdp_pt(0, PCMU, 8000); transcode(AMR/8000/1/7400); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 96/AMR/8000/octet-align=1;mode-change-capability=2"); sdp_pt_fmt(96, AMR, 8000, "octet-align=1"); answer(); expect(A, "0/PCMU/8000"); expect(B, "96/AMR/8000/octet-align=1"); check_encoder(A, B, 0, 96, 7400); check_encoder(B, A, 96, 0, 0); end(); // specify reverse bitrate start(); sdp_pt(96, AMR, 8000); transcode(PCMU); codec_set("AMR/8000/1/6700"); offer(); expect(A, "96/AMR/8000"); expect(B, "96/AMR/8000 0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "96/AMR/8000"); expect(B, "0/PCMU/8000"); check_encoder(A, B, 96, 0, 0); check_encoder(B, A, 0, 96, 6700); end(); // specify non-default reverse bitrate start(); sdp_pt(96, AMR, 8000); transcode(PCMU); codec_set("AMR/8000/1/7400"); offer(); expect(A, "96/AMR/8000"); expect(B, "96/AMR/8000 0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "96/AMR/8000"); expect(B, "0/PCMU/8000"); check_encoder(A, B, 96, 0, 0); check_encoder(B, A, 0, 96, 7400); end(); } } #endif // G.722 <> PCMA start(); sdp_pt(8, PCMA, 8000); transcode(G722); offer(); expect(A, "8/PCMA/8000"); expect(B, "8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); answer(); expect(A, "8/PCMA/8000"); expect(B, "9/G722/8000"); packet_seq(A, 8, PCMA_payload, 0, 0, -1, ""); // nothing due to resampling packet_seq_nf(A, 8, PCMA_payload, 160, 1, 9, G722_payload); packet_seq_ts(A, 8, PCMA_payload, 320, 2, 9, G722_payload, 160, 0); packet_seq(B, 9, G722_payload, 0, 0, -1, ""); // nothing due to resampling packet_seq_nf(B, 9, G722_payload, 160, 1, 8, PCMA_payload); packet_seq_ts(B, 9, G722_payload, 320, 2, 8, PCMA_payload, 160, 0); end(); // A includes unsupported codec by B - no transcoding (GH#562 control case) start(); sdp_pt(97, opus, 48000); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); offer(); expect(A, "97/opus/48000 9/G722/8000 8/PCMA/8000"); expect(B, "97/opus/48000 9/G722/8000 8/PCMA/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "9/G722/8000 8/PCMA/8000"); expect(B, "9/G722/8000 8/PCMA/8000"); end(); // A includes unsupported codec by B - transcoded codec accepted (GH#562 control case) start(); sdp_pt(97, opus, 48000); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); transcode(PCMU); // standin for G729 offer(); expect(A, "97/opus/48000 9/G722/8000 8/PCMA/8000"); expect(B, "97/opus/48000 9/G722/8000 8/PCMA/8000 0/PCMU/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); answer(); expect(A, "9/G722/8000 8/PCMA/8000 97/opus/48000"); expect(B, "9/G722/8000 8/PCMA/8000 0/PCMU/8000"); end(); // A includes unsupported codec by B - transcoded codec rejected (GH#562) start(); sdp_pt(97, opus, 48000); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); transcode(PCMU); // standin for G729 offer(); expect(A, "97/opus/48000 9/G722/8000 8/PCMA/8000"); expect(B, "97/opus/48000 9/G722/8000 8/PCMA/8000 0/PCMU/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(A, "9/G722/8000 8/PCMA/8000"); expect(B, "9/G722/8000 8/PCMA/8000"); end(); _log_facility_dtmf = 1; // dummy enabler // plain DTMF passthrough w/o transcoding start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); packet_seq(A, 8, PCMA_payload, 1000000, 200, 8, PCMA_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 8, PCMA_payload, 1000960, 206, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1001120, 207, 8, PCMA_payload); // start with marker packet_seq(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, 101 | 0x80, "\x05\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, 101, "\x05\x0a\x01\x40"); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, 101, "\x05\x0a\x01\xe0"); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); dtmf(""); // final audio RTP test packet_seq(A, 8, PCMA_payload, 1000960, 212, 8, PCMA_payload); end(); // DTMF passthrough w/ transcoding start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); transcode(PCMU); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 0/PCMU/8000 101/telephone-event/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "0/PCMU/8000 101/telephone-event/8000"); packet_seq(A, 8, PCMA_payload, 1000000, 200, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 8, PCMA_payload, 1000960, 206, 0, PCMU_payload); packet_seq(A, 8, PCMA_payload, 1001120, 207, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, 101 | 0x80, "\x05\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, 101, "\x05\x0a\x01\x40"); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, 101, "\x05\x0a\x01\xe0"); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); dtmf(""); // final audio RTP test packet_seq(A, 8, PCMA_payload, 1000960, 212, 0, PCMU_payload); end(); // plain DTMF passthrough w/o transcoding w/ implicit primary payload type start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); packet_seq(A, 0, PCMU_payload, 1000000, 200, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 0, PCMU_payload, 1000960, 206, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1001120, 207, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, 101 | 0x80, "\x05\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, 101, "\x05\x0a\x01\x40"); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, 101, "\x05\x0a\x01\xe0"); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, 101, "\x05\x8a\x02\x80", 0); dtmf(""); // final audio RTP test packet_seq(A, 0, PCMU_payload, 1000960, 212, 0, PCMU_payload); end(); // plain DTMF passthrough w/o transcoding - blocking start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); packet_seq(A, 8, PCMA_payload, 1000000, 200, 8, PCMA_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 8, PCMA_payload, 1000960, 206, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1001120, 207, 8, PCMA_payload); // enable blocking call.block_dtmf = BLOCK_DTMF_DROP; // start with marker packet_seq_exp(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, -1, "", 0); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, -1, ""); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, -1, ""); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, ""); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); dtmf(""); // final audio RTP test packet_seq_exp(A, 8, PCMA_payload, 1000960, 212, 8, PCMA_payload, 5); // DTMF packets appear lost packet_seq(A, 8, PCMA_payload, 1001120, 213, 8, PCMA_payload); // media blocking ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001440, 215, -1, "", 0); ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001600, 216, 8, PCMA_payload, 3); // media packets appear lost CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001760, 217, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001920, 218, -1, "", 0); CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002080, 219, 8, PCMA_payload, 3); // media packets appear lost ML_SET(ml_B, BLOCK_MEDIA); packet_seq(A, 8, PCMA_payload, 1002240, 220, 8, PCMA_payload); end(); // DTMF passthrough w/ transcoding - blocking start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); transcode(PCMU); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 0/PCMU/8000 101/telephone-event/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "0/PCMU/8000 101/telephone-event/8000"); packet_seq(A, 8, PCMA_payload, 1000000, 200, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 8, PCMA_payload, 1000960, 206, 0, PCMU_payload); packet_seq(A, 8, PCMA_payload, 1001120, 207, 0, PCMU_payload); // enable blocking call.block_dtmf = BLOCK_DTMF_DROP; // start with marker packet_seq_exp(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, -1, "", 0); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, -1, ""); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, -1, ""); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, ""); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); dtmf(""); // final audio RTP test packet_seq_exp(A, 8, PCMA_payload, 1000960, 212, 0, PCMU_payload, 5); // DTMF packets appear lost packet_seq(A, 8, PCMA_payload, 1001120, 213, 0, PCMU_payload); // media blocking ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001440, 215, -1, "", 0); ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001600, 214, 0, PCMU_payload, 1); // cheat with the seq here - 216 would get held by the jitter buffer CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001760, 215, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001920, 216, -1, "", 0); CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002080, 215, 0, PCMU_payload, 1); ML_SET(ml_B, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002240, 216, 0, PCMU_payload, 1); end(); // plain DTMF passthrough w/o transcoding w/ implicit primary payload type - blocking start(); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); offer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); packet_seq(A, 0, PCMU_payload, 1000000, 200, 0, PCMU_payload); // start with marker packet_seq(A, 101 | 0x80, "\x08\x0a\x00\xa0", 1000160, 201, 101 | 0x80, "\x08\x0a\x00\xa0"); dtmf(""); // continuous event with increasing length // XXX check output ts, seq, ssrc packet_seq(A, 101, "\x08\x0a\x01\x40", 1000160, 202, 101, "\x08\x0a\x01\x40"); packet_seq(A, 101, "\x08\x0a\x01\xe0", 1000160, 203, 101, "\x08\x0a\x01\xe0"); packet_seq(A, 101, "\x08\x0a\x02\x80", 1000160, 204, 101, "\x08\x0a\x02\x80"); dtmf(""); // end packet_seq(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20"); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":8,\"duration\":100,\"volume\":10}"); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); packet_seq_exp(A, 101, "\x08\x8a\x03\x20", 1000160, 205, 101, "\x08\x8a\x03\x20", 0); dtmf(""); // send some more audio packet_seq(A, 0, PCMU_payload, 1000960, 206, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1001120, 207, 0, PCMU_payload); // enable blocking call.block_dtmf = BLOCK_DTMF_DROP; // start with marker packet_seq_exp(A, 101 | 0x80, "\x05\x0a\x00\xa0", 1001280, 208, -1, "", 0); dtmf(""); // continuous event with increasing length packet_seq(A, 101, "\x05\x0a\x01\x40", 1001280, 209, -1, ""); packet_seq(A, 101, "\x05\x0a\x01\xe0", 1001280, 210, -1, ""); dtmf(""); // end packet_seq(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, ""); dtmf("{\"callid\":\"test-call\",\"source_tag\":\"tag_A\",\"source_label\":\"label_A\",\"tags\":[],\"type\":\"DTMF\",\"timestamp\":0,\"source_ip\":\"\",\"event\":5,\"duration\":80,\"volume\":10}"); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); packet_seq_exp(A, 101, "\x05\x8a\x02\x80", 1001280, 211, -1, "", 0); dtmf(""); // final audio RTP test packet_seq_exp(A, 0, PCMU_payload, 1000960, 212, 0, PCMU_payload, 5); // DTMF packets appear lost packet_seq(A, 0, PCMU_payload, 1001120, 213, 0, PCMU_payload); // media blocking ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 0, PCMU_payload, 1001440, 215, -1, "", 0); ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001600, 216, 0, PCMU_payload, 3); // media packets appear lost CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001760, 217, -1, "", 0); packet_seq_exp(A, 0, PCMU_payload, 1001920, 218, -1, "", 0); CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1002080, 219, 0, PCMU_payload, 3); // media packets appear lost ML_SET(ml_B, BLOCK_MEDIA); packet_seq(A, 0, PCMU_payload, 1002240, 220, 0, PCMU_payload); end(); // codec-mask/accept/consume tests // control - plain in/out start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-mask only start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_mask(PCMU); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "104/SILK/16000 9/G722/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-mask + transcode + reject transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_mask(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-mask + transcode + accept transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_mask(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(3, GSM, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "8/PCMA/8000 9/G722/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 3/GSM/8000 101/telephone-event/8000"); // G.722 > PCMA packet_seq(A, 9, G722_payload, 0, 0, -1, ""); // nothing due to resampling packet_seq_nf(A, 9, G722_payload, 160, 1, 8, PCMA_payload); packet_seq_ts(A, 9, G722_payload, 320, 2, 8, PCMA_payload, 160, 0); // asymmetric codec packet(B, 8, PCMA_payload, 8, PCMA_payload); // nothing due to resampling end(); // codec-consume only start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_consume(PCMU); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-consume + transcode + reject transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_consume(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-consume + transcode + accept transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_consume(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(3, GSM, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 3/GSM/8000 101/telephone-event/8000"); end(); // codec-accept only start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_accept(PCMU); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-accept + transcode + reject transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_accept(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 0/PCMU/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // codec-accept + transcode + accept transcoded codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_accept(PCMU); transcode(GSM); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 0/PCMU/8000 8/PCMA/8000 3/GSM/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(3, GSM, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "0/PCMU/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 3/GSM/8000 101/telephone-event/8000"); end(); // codec-accept first codec start(); sdp_pt(104, SILK, 16000); sdp_pt(9, G722, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); sdp_pt(13, CN, 8000); sdp_pt(118, CN, 16000); c_accept(G722); offer(); expect(A, "104/SILK/16000 9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000 118/CN/16000"); expect(B, "9/G722/8000 0/PCMU/8000 8/PCMA/8000 101/telephone-event/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "9/G722/8000 101/telephone-event/8000"); expect(B, "8/PCMA/8000 101/telephone-event/8000"); end(); // gh 664 codec masking a/t start(); sdp_pt(120, opus, 48000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(101, telephone-event, 8000); c_mask(opus); c_mask(G722); c_mask(G7221); c_accept(all); offer(); expect(B, "8/PCMA/8000 0/PCMU/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "120/opus/48000"); end(); // gh 664 codec masking accept=all start(); sdp_pt(120, opus, 48000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(101, telephone-event, 8000); c_mask(opus); c_mask(G722); c_mask(G7221); c_accept(all); offer(); expect(B, "8/PCMA/8000 0/PCMU/8000 101/telephone-event/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); answer(); expect(A, "120/opus/48000"); end(); // CN transcoding rtpe_config.silence_detect_int = 10 << 16; str_init_len(&rtpe_config.cn_payload, "\x40", 1); // CN transcoding - forward start(); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); transcode(CN); offer(); expect(B, "8/PCMA/8000 0/PCMU/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(13, CN, 8000); answer(); expect(A, "8/PCMA/8000 0/PCMU/8000"); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 13, "\x20", 320, 2, 8, "\xf5\x5c\x4b\xc2\xde\xf4\x5e\xd4\x47\x70\x5d\x77\x45\x51\xc5\xcd\xd7\x77\x5a\xf5\xcf\x4a\x4c\x40\xc3\x47\x74\x49\x59\xc4\x76\x57\x71\x57\x40\xc5\xf4\x5a\x47\xd6\xc4\xf6\xc7\xf3\x40\x58\x74\x54\x4b\xd7\x5c\xc7\x41\x49\xf5\x5b\x53\xd9\x70\x44\xcd\xc4\xce\xcb\xc7\x58\xcd\x45\xc6\x71\xf5\x70\x43\xca\x43\xd5\x52\x5c\x75\x74\xc6\xc3\x4f\xda\x56\xc3\x46\xf5\x49\xdf\x56\x4f\x71\x5b\x52\xc6\x4e\xd0\x43\xc2\xcd\xd5\xdf\x40\x43\x4a\xf7\xf6\xd9\xdf\xde\x45\xc9\xd9\xc2\xf0\xc1\x4a\x40\x52\xd1\x5b\xd0\x54\xc9\x5e\xde\xd5\x74\x5c\x5d\x59\x71\xc1\xc1\x71\xd2\xcb\x50\x50\x54\x53\x75\xdc\x4b\xcf\xc2\xd7\x4a\xcc\x58\xc7\xdb\xd8\x48\x4a\xd6\x58\xf0\x46"); packet_seq(A, 8, PCMA_silence, 320, 2, 13, "\x40"); end(); // CN transcoding - reverse 1 start(); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(13, CN, 8000); c_consume(CN); offer(); expect(B, "8/PCMA/8000 0/PCMU/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); answer(); expect(A, "8/PCMA/8000 0/PCMU/8000 13/CN/8000"); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(A, 13, "\x20", 320, 2, 8, "\xf5\x5c\x4b\xc2\xde\xf4\x5e\xd4\x47\x70\x5d\x77\x45\x51\xc5\xcd\xd7\x77\x5a\xf5\xcf\x4a\x4c\x40\xc3\x47\x74\x49\x59\xc4\x76\x57\x71\x57\x40\xc5\xf4\x5a\x47\xd6\xc4\xf6\xc7\xf3\x40\x58\x74\x54\x4b\xd7\x5c\xc7\x41\x49\xf5\x5b\x53\xd9\x70\x44\xcd\xc4\xce\xcb\xc7\x58\xcd\x45\xc6\x71\xf5\x70\x43\xca\x43\xd5\x52\x5c\x75\x74\xc6\xc3\x4f\xda\x56\xc3\x46\xf5\x49\xdf\x56\x4f\x71\x5b\x52\xc6\x4e\xd0\x43\xc2\xcd\xd5\xdf\x40\x43\x4a\xf7\xf6\xd9\xdf\xde\x45\xc9\xd9\xc2\xf0\xc1\x4a\x40\x52\xd1\x5b\xd0\x54\xc9\x5e\xde\xd5\x74\x5c\x5d\x59\x71\xc1\xc1\x71\xd2\xcb\x50\x50\x54\x53\x75\xdc\x4b\xcf\xc2\xd7\x4a\xcc\x58\xc7\xdb\xd8\x48\x4a\xd6\x58\xf0\x46"); packet_seq(B, 8, PCMA_silence, 320, 2, 13, "\x40"); end(); // CN transcoding - reverse 2 start(); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(13, CN, 8000); c_accept(CN); offer(); expect(B, "8/PCMA/8000 0/PCMU/8000 13/CN/8000"); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); answer(); expect(A, "8/PCMA/8000 0/PCMU/8000 13/CN/8000"); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(A, 13, "\x20", 320, 2, 8, "\xf5\x5c\x4b\xc2\xde\xf4\x5e\xd4\x47\x70\x5d\x77\x45\x51\xc5\xcd\xd7\x77\x5a\xf5\xcf\x4a\x4c\x40\xc3\x47\x74\x49\x59\xc4\x76\x57\x71\x57\x40\xc5\xf4\x5a\x47\xd6\xc4\xf6\xc7\xf3\x40\x58\x74\x54\x4b\xd7\x5c\xc7\x41\x49\xf5\x5b\x53\xd9\x70\x44\xcd\xc4\xce\xcb\xc7\x58\xcd\x45\xc6\x71\xf5\x70\x43\xca\x43\xd5\x52\x5c\x75\x74\xc6\xc3\x4f\xda\x56\xc3\x46\xf5\x49\xdf\x56\x4f\x71\x5b\x52\xc6\x4e\xd0\x43\xc2\xcd\xd5\xdf\x40\x43\x4a\xf7\xf6\xd9\xdf\xde\x45\xc9\xd9\xc2\xf0\xc1\x4a\x40\x52\xd1\x5b\xd0\x54\xc9\x5e\xde\xd5\x74\x5c\x5d\x59\x71\xc1\xc1\x71\xd2\xcb\x50\x50\x54\x53\x75\xdc\x4b\xcf\xc2\xd7\x4a\xcc\x58\xc7\xdb\xd8\x48\x4a\xd6\x58\xf0\x46"); packet_seq(B, 8, PCMA_silence, 320, 2, 13, "\x40"); end(); // DTMF PT TC start(); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(101, telephone-event, 8000); c_mask(all); transcode(opus/48000/1); transcode(PCMA); transcode(telephone-event); offer(); expect(B, "96/opus/48000/useinbandfec=1 8/PCMA/8000 97/telephone-event/48000/0-15 101/telephone-event/8000"); sdp_pt(96, opus, 48000); sdp_pt(97, telephone-event, 48000); flags.single_codec = 1; answer(); expect(A, "9/G722/8000 101/telephone-event/8000"); packet_seq(A, 101, "\x05\x07\x01\x40", 4000, 10, 97, "\x05\x07\x07\x80"); packet_seq(B, 97, "\x05\x07\x07\x80", 4000, 10, 101, "\x05\x07\x01\x40"); end(); // DTMF PT TC w eq PT start(); sdp_pt(96, opus, 48000); sdp_pt(8, PCMA, 8000); sdp_pt(102, telephone-event, 48000); sdp_pt(101, telephone-event, 8000); c_mask(all); transcode(opus); transcode(PCMA); transcode(PCMU); transcode(telephone-event); offer(); expect(B, "96/opus/48000 8/PCMA/8000 0/PCMU/8000 101/telephone-event/8000 102/telephone-event/48000"); sdp_pt(0, PCMU, 8000); sdp_pt(101, telephone-event, 8000); flags.single_codec = 1; answer(); expect(A, "96/opus/48000 102/telephone-event/48000"); packet_seq(A, 102, "\x05\x07\x01\x40", 4000, 10, 101, "\x05\x07\x00\x35"); packet_seq(B, 101, "\x05\x07\x07\x80", 4000, 10, 102, "\x05\x07\x2d\x00"); end(); //reusing_codecs test start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/PCMA/8000"); sdp_pt(7, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(B, "0/PCMU/8000 8/PCMA/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, PCMA, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/PCMA/8000"); sdp_pt(7, PCMA, 8000); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); answer(); expect(B, "0/PCMU/8000 8/PCMA/8000"); end(); start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); answer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); offer(); expect(A, "9/G722/8000 8/PCMA/8000 0/PCMU/8000"); expect(B, "9/G722/8000 8/PCMA/8000 0/PCMU/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); answer(); expect(A, "9/G722/8000 8/PCMA/8000 0/PCMU/8000"); expect(B, "9/G722/8000 8/PCMA/8000 0/PCMU/8000"); end(); start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); flags.reuse_codec = 1; offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); flags.reuse_codec = 1; answer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); flags.reuse_codec = 1; offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); flags.reuse_codec = 1; answer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); end(); start(); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); flags.reuse_codec = 1; flags.single_codec = 1; offer(); expect(A, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(0, PCMU, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(9, G722, 8000); flags.reuse_codec = 1; flags.single_codec = 1; answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); flags.reuse_codec = 1; flags.single_codec = 1; offer(); expect(A, "0/PCMU/8000 9/G722/8000 8/PCMA/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); sdp_pt(9, G722, 8000); sdp_pt(8, PCMA, 8000); sdp_pt(0, PCMU, 8000); flags.reuse_codec = 1; flags.single_codec = 1; answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000 8/PCMA/8000 9/G722/8000"); end(); // media silencing PCMA start(); sdp_pt(8, PCMA, 8000); offer(); expect(A, "8/PCMA/8000"); expect(B, "8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "8/PCMA/8000"); expect(B, "8/PCMA/8000"); packet_seq(A, 8, PCMA_payload, 0, 0, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 0, 0, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); CALL_SET(&call, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 320, 2, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 320, 2, 8, PCMA_silence); packet_seq(A, 8, PCMA_payload, 480, 3, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 480, 3, 8, PCMA_silence); CALL_CLEAR(&call, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 640, 4, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 640, 4, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 800, 5, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 800, 5, 8, PCMA_payload); ML_SET(ml_A, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 960, 6, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 960, 6, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1120, 7, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 1120, 7, 8, PCMA_payload); ML_CLEAR(ml_A, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1280, 8, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1280, 8, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1440, 9, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1440, 9, 8, PCMA_payload); ML_SET(ml_B, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1600, 10, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1600, 10, 8, PCMA_silence); packet_seq(A, 8, PCMA_payload, 1760, 11, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1760, 11, 8, PCMA_silence); ML_CLEAR(ml_B, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1920, 12, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1920, 12, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 2080, 13, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 2080, 13, 8, PCMA_payload); end(); // media silencing PCMU start(); sdp_pt(0, PCMU, 8000); offer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000"); sdp_pt(0, PCMU, 8000); answer(); expect(A, "0/PCMU/8000"); expect(B, "0/PCMU/8000"); packet_seq(A, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 160, 1, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 160, 1, 0, PCMU_payload); CALL_SET(&call, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 320, 2, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 320, 2, 0, PCMU_silence); packet_seq(A, 0, PCMU_payload, 480, 3, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 480, 3, 0, PCMU_silence); CALL_CLEAR(&call, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 640, 4, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 640, 4, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 800, 5, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 800, 5, 0, PCMU_payload); ML_SET(ml_A, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 960, 6, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 960, 6, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1120, 7, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 1120, 7, 0, PCMU_payload); ML_CLEAR(ml_A, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1280, 8, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1280, 8, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1440, 9, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1440, 9, 0, PCMU_payload); ML_SET(ml_B, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1600, 10, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1600, 10, 0, PCMU_silence); packet_seq(A, 0, PCMU_payload, 1760, 11, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1760, 11, 0, PCMU_silence); ML_CLEAR(ml_B, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1920, 12, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1920, 12, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 2080, 13, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 2080, 13, 0, PCMU_payload); end(); start(); sdp_pt_s(96, opus, 48000); sdp_pt(8, PCMA, 8000); c_accept(opus/48000/2); offer(); expect(A, "96/opus/48000/2 8/PCMA/8000"); expect(B, "96/opus/48000/2 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "96/opus/48000/2"); expect(B, "8/PCMA/8000"); end(); start(); sdp_pt(96, opus, 48000); sdp_pt(8, PCMA, 8000); c_accept(opus/48000); offer(); expect(A, "96/opus/48000 8/PCMA/8000"); expect(B, "96/opus/48000 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "96/opus/48000"); expect(B, "8/PCMA/8000"); end(); start(); sdp_pt(96, opus, 48000); sdp_pt(8, PCMA, 8000); c_accept(opus); offer(); expect(A, "96/opus/48000 8/PCMA/8000"); expect(B, "96/opus/48000 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "96/opus/48000"); expect(B, "8/PCMA/8000"); end(); start(); sdp_pt_s(96, opus, 48000); sdp_pt(8, PCMA, 8000); c_accept(opus); offer(); expect(A, "96/opus/48000/2 8/PCMA/8000"); expect(B, "96/opus/48000/2 8/PCMA/8000"); sdp_pt(8, PCMA, 8000); answer(); expect(A, "96/opus/48000/2"); expect(B, "8/PCMA/8000"); end(); statistics_free(); bufferpool_destroy(media_bufferpool); bufferpool_destroy(shm_bufferpool); bufferpool_cleanup(); return 0; } int get_local_log_level(unsigned int u) { return 7; } rtpengine-mr12.5.1.22/t/test-transcode.pl000077500000000000000000000015301474347554000201320ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET, codecs => [qw(PCMU)], no_data_check => 1}, {sockdomain => &Socket::AF_INET, codecs => [qw(G722)], no_data_check => 1} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', label => "callee"); $a->remote_codecs() eq 'PCMU/8000/1' or die; $a->send_codecs() eq 'PCMU/8000/1' or die; $a->start_rtp(); $a->start_rtcp(); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', label => "caller", codec => { transcode => ['G722']}, flags => [qw(record-call)]); $b->remote_codecs() eq 'PCMU/8000/1,G722/8000/1' or die; $b->send_codecs() eq 'G722/8000/1' or die; $b->start_rtp(); $b->start_rtcp(); $r->run(); $a->teardown(dump => 1); rtpengine-mr12.5.1.22/t/test-unidirectional.pl000077500000000000000000000007531474347554000211670ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use NGCP::Rtpengine::Test; use IO::Socket; my $r = NGCP::Rtpengine::Test->new(host => '192.168.1.128'); my ($a, $b) = $r->client_pair( {sockdomain => &Socket::AF_INET}, {sockdomain => &Socket::AF_INET} ); $r->timer_once(3, sub { $b->answer($a, ICE => 'remove', flags => ['unidirectional']); }); $r->timer_once(10, sub { $r->stop(); }); $a->offer($b, ICE => 'remove', flags => ['unidirectional']); $b->start_rtp(); $r->run(); $a->teardown(); rtpengine-mr12.5.1.22/t/test.tif000066400000000000000000017525521474347554000163400ustar00rootroot00000000000000II*ÈÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿø?ÿ€ÿøø€øÿÿÿÿÿÀ?ÿüþÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿàAàÿÿÿüãü?àðàÿÿÿÿþ àüþÿÿüÿü@ÿÿþø€ÿþ€ààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀ?ÿÿÿøþàp€€ÿÿÿÿü?À~þþÿü?ÿþ@€ÿÿþøÿ`àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀ?ÿÿÿà€þàø~ð€ðÿÿÿÿð?ÀÿƒÿÀüÀÀÿü?ÿ€ÿÃà?àÿÿþÿðþ€ààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøàÀ?ÿÿÿàþðÿÿàüððÿà€ðÿÐÿÿÿÿÿà?à?ÿÿàüààÿüÿðãüøÿÿÿÿàÿÿ€àþ?à€p€~þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð<Àüÿ?ð?ÿÿÿÃÿðÿÿàþàðþð€áÿðÿÿÿÿÿÀð~ÿÀÿÀüààÿøÿðÇþñÿÿÿÿàÿÿ€?àþ?àðà~ÿÀþÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø>Àþÿ€?ø?ÿÿÿÃÿðÿÿàÿðøÿøÀãÿðÿƒÿÿÿÿÀø<ÿÀàüàðÿøÿð?ãþ?ñÿÿÿÿàÿÿ€?àþ?àƒðð~ÿàþÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð??Àüÿ?ü?ÿÿÿƒÿÃðÿÿàÿàðþøÀÇÿðÿÇÿÿÿÿÿøxÿÀ?Àøàðÿðÿð?Çÿ?ãÿÿÿÿàÿÿ€?àü?à‡ðð~ÿðþÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø??ƒÀþÿ€?üÿÿÿƒÿáøÿÿàÿ‡ðøÿüà‡ÿðÿÃÿÿÿÿÿü8ÿÀ?äøàðÿðÿñãÿãÿÿÿÿàÿÿ€?àü?à‡ðø~ÿðþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?‡Àüÿ?þ?ÿÿÿÿãðÿÿàÿàðþüàÿðÿÃÿÿÿþÿüpÿÀÄñàðÿðÿñ€Çÿ€Çÿÿÿÿàÿÿ€?àø€?àðø~ÿøþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÃÀþÿ€?¾ÿÿÿ€ÿñøÿÿàçÇðøÿ<ðÿðñãÿÿÿþÿþpÿàæñàðÿðÿñÀãÿÀÇÿÿÿÿàÿÿ€âø?àðü~ÿøþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿ?ÇÀüÿ??ÿÿÿ?ÿðÿÿàÃÿàðþ~?ÿðÿðáÿÿÿÿüÿÿàÿÀÆñàðÿàÿñÀÇÿÀÿÿÿÿàÿÿ€?âø€?àðü~ü}þÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ?ÇÀþÿ€ÿÿÿÿ€ÿðÿÿàÃÿððÿ~?ÿø?ÿðáÿÿÿÿüÿÿàÿàæñàðÿàÿñàãÿàÿÿÿÿàÿÿ€?ãx€?àðþ~üþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ?çÀüÿ>ÿÿÿÿ€?ðÿÿàÃÿàðþ|?ÿüÿðáÿÿÿÿüÿÿàÿÀæcàðÿÀÿñðçÿàÿÿÿÿàÿÿ€?ãq€?àÿðÿþüþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€ÿÿÿÿ€øÿÿàƒÿðàÿ|?ÿü?ÿðÁÿÿÿÿüÿÿàÿàçcàðÿÀÿñðãÿðÿÿÿÿàÿÿ€ãq€?àÿðÿþüþÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€<ÿÿÿÿ€ðÿÿàÿð?þp?ÿþ?ÿðÿÿÿÿøÿÿàÿÀçcààÿÌÿñøçÿð?ÿÿÿÿàÿÿ€?ã1€?àÿðÿþøþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€ÿÿÿÿÀøÿÿàÿðÿÿ?ÿÿÿðÿÿÿÿøÿÿàÿàç#àÀÿŒÿñücÿø?ÿÿÿÿàÿÿ€ã€1€?àÿðÿþàþÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀÿ€ÿÿÿÿÀðÿÿàÿðÿ?ÿÿÿðÿÿÿÿøÿÿàÿàç€àÿŒÿñü#ÿøÿÿÿÿàÿÿ€?ã€#€?àÿðÿþþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀ€ÿÿÿÿàøÿÿàÿð€?ÿ?ÿÿ€ÿøÿÿÿÿüÿÿàÿàç€àÿÿžÿðþÿüÿÿÿÿàÿÿ€ã€€?àÿðÿþþÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀ€ÿÿÿÿððÿÿàÿðÀÿ`?ÿÿ€ÿðÿÿÿÿüÿÿàÿàç€àÿÿÿÿðÿÿþÿÿÿÿÿàÿÿ€?ãÀ€?àÿðÿþþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀ€ÿÿÿÿøøÿÿàƒÿðÀÿx?ÿÿ€ÿøÁÿÿÿÿüÿÿàÿàç€àÿÿÿøÿÿþÿÿÿÿÿàÿÿ€ãÀ€?àÿðÿþàþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€ÿÿÿÿþpÿÿàÃÿðàÿ|?ÿÿÿøáÿÿÿÿüÿÿàÿàçÀàÿÿÿ?øÿ€ÿþÿÿÿÿÿàÿÿ€?ãÀ€?àÿðÿþøþÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€ÿÿÿÿÿðxÿÿàÃ÷ðàÿ~?ÿþÿøáûÿÿÿüÿÿðÿàçÀàÿÿþ?øÿÀÿþÿÿÿÿÿàÿÿ€ãà€?àÿðÿþüþÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€ÿÿÿÿþpÿáàÃãðàÿ~>?ü0ÿðññÿÿÿþÿÿðÿÀçÀàÿÿþ??ñÿàÿþÿÿÿÿÿàÿÇ€ãà€?àÿðÿþü~~ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€ÿÿÿÿÿ€pÿáàãÃðàÿ~>?øxÿðñáÿÿÿþÿþ0ÿÀçààÿÿü?ñÿàÿþÿÿÿÿÿàÿ‡€ãà€?àÿðÿþü|>ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€ŸÿÿÿÿÀpÿáà÷Ãðàÿþ?øxÿðÿáÿÿÿþÿþ8ÿÀçààÿÿü?ñÿðÿþÿÿÿÿÿàÿ‡€?ãà€?àÿðÿþþ|>ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€þÿÿÿÿàðÿÃàÿƒðàÿü?ðüðÿáÿÿÿÿÿü8ÿÀ?çààÿÿü€ñÿøÿþÿÿÿÿÿàÿ‡€?ãð€?àÿðÿþÿü>ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€þÿÿÿÿàøÿƒàÿƒðàÿü?áüøÿÁÿÿÿÿ€ÿü<ÿÀ?çð?àÿÿøÿÀñÿøÿþÿÿÿÿÿàÿ€ãð€?àÿðÿþÿø~ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿ€?üÿÿÿÿàðÿƒàÿðàÿø?Ãþ?ðÿÿÿÿÿ€ÿø>ÿÀÇð?àÿÿøÿÀñÿüÿþÿÿÿÿÿàÿ€?ãð€?àÿðÿþÿø~ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€øÿÿÿÿàøÿàþððÿð?ÃÿðÿÿÿÿÿÀø?ÿ€ÿçð?àÿÿøÿàñÿþÿþÿÿÿÿÿàþ€?ãø€?àÿðÿþÿð~ÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€?øÿÿÿÿÁðþàüððÿà?‡ÿðþÿÿÿÿàð?ÿÿçðàÿÿñÿàñÿþÿþÿÿÿÿÿàü€?ãø€?àÿðÿþÿà~ÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþ€àÿÿÿÿÃøüàð°ø?€?ÿ€ðøÿÿÿÿð?À?ÀÿÿÃøàÿÿñÿàðÿÿÿþÿÿÿÿÿàø€?áø?€?àÿðÿþÿÀ~ÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÀþÿÿÿÿÿ€800ø€ÿÿÿÿø?àüxpÿáÿàÿ‡ÿþÿÿÿÿÿ€Áø?€?`ÿðÿþÿ~þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðþàÿÿÿ> 0ø€ÿÿÿÿþ?øü8ðÿÿÃÿàÿÿÿþx?À`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðüÀÿÿÿàpø€ÿÿÿÿÿþÿü}ðÿÿÇÿÀÿÿÿü!ðÿÿÿÿþøÿÿÿÿÿÿàüƒ€üðÿÁÿÿÿÿÿ€àÿƒþÿðÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀàüÿàÿø?ü~8ðxÿÿÿÿþðAþÿÿüÿáüÿƒÿðøÿƒÿÿÿÿÿÁàüÿþÿàþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀàÿƒü|ÿüü>ð|ÿÿÿÿÿÁø`ÿÿÏÿøÿàüƒ†Ïàp|ÿÁÿÿÿÿÿ‡ààþÿÿÿáƒÿŸÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àÿƒø0<ðŸÿÿþÀðAþÿûÿðÿáø0àðÿ¿ƒÿÿ€ÿÿààüþÿÿÃÃþÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁ€àÿøƒÿü€|ðÿ€ÿÿÁð`þÇñÿüÿàø8?‡‡ðpÁÿÿ€ÿ‡àðþü?ÿÿáãÿñÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÁàÿð88‡ÿø?ˆü?ð~ÿ€ÿþƒàà|‡áÿÿÿÿáðx>ƒàðþÃÿÿ€ÿÿÁàüøžÿÁÃþãƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÁàÿàp8ÿü|ðÿÀÿþ€Àð>ÿÿÿÿÀ| À@àÿÿÿÿÿà|ðÿàÃÿÁÃàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ààÿðpÀÀÿÿÿøÀøxÿÿÿÿ€ü<À@Àÿÿÿü€0à?ÿàøà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ðð€ÿð8àÀÿÿÿøðþøÿÿÿÿ€ÿ~ðxÀÿÿÿü€0ð€ÿðøp?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€€?üðÃà?ÿð?ÿÜÿÿÿÿÿÿÿÿÿÿþ?ÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿü?üþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ>ü<ÿáøŸÿÿ€?ü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿãøÿ€?Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüxø8ÿƒðÿÿ€>ð~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøxø8ÿà‡ÿÿ€8à|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿàþ~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÁð8þàƒÿÿ8ÁøÿÿÿÿÿÿÿÿÿÿÿÿÿþÀü|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ð||ÿþüÁàÿÿÿððáà8ÿÿó‡ÁÿÿüÃü>ÿÿÿÿ„™øAÁÃÿÿã8|ø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ88ÿüpÀ<?ÿáááàxÿÃÿÁÿÿþ‡þ|?ÿÿÿÿðÿÿƒï‡ðø?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð€€þ0 >ÿáðàÀ8ÿÁÿàÿÿþ€ü?ÿÿÿÿø€ƒÿÿÃÿ‡ðøð¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?€ Á0`ÿþ!‚0þÿÃàá€xÿÃüàÿÿ~>øÿÿÿÿˆpƒø0Áÿÿƒÿáðàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñƒˆ?ƒŒ0CÁ 8xÿÿ ÀÿÃðà„8ÿÁüðÿÿ€>øÿÿÿÿ0È<Ãü<àÿÿÃÿÀñ`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö‡?‡pCÃpcÿþÀ<ÿ?ÿƒð|ÿÃøàÿÿ€>øÿÿÿÿðøsƒøqàÿÿƒþ€ã@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?€0AÁ8ÿÿà?ÿÃøáÿÁüðÿÿüøÿÿÿÿðøÃüð?ÿÿÃþÀcø!Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€8€ÀpÿþCÀ<ÿÿƒøáÿÃÿðÿÿþ>ðÿÿàÿÿðøƒøø?ÿÿƒü?ð@üCÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?€À„@8ÿÿà?ÿÃÿðÿÁÿÃðÿþðÿÿÀ?ÿðøÃüøÿÿÁø?üþ!áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‡8?‡Ãà `psÿþ À<ÿÿÃÿÂáÿÃÿÃðÿÿþ>áÿÿÀÿðøsƒøqðÿÿƒðÿüüãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ˆ>ƒŒ?ÃÁp8|ÿÿ Ày?ÿÃÿƒø?ñÿÁÿÃðÿÿþáÿÿàÿðø<Ãì<àÿÿÁðóü ü!ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ‡ˆ8‡ˆ?ƒÃ p0xÿþ Â0ñÿÃþøqãÿÃÇáÿþ>ÁÿÿÿÿÿðøxƒˆxÃÿÿÃàx 8aÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÁÁ€ 8þ0ÿáüø0ÿ€Àáÿþ<€áÿÿÿÿÿàx€ƒÿÿÀpCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀÿüp`ÿáð?øpþÀáÿþø€xÁÿÿÿÿÿÀ0ÿþ€ÿ ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü€€à8ÿþx€àÿñøü8ÿàãÿÿøàüáÿÿÿÿÿà0€ÿÿÀÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?þÿ„ÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÀÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðüü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿüoÿÿüÿÿÿÿÿÿÿÃÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿ?ÿüÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàøø>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿàÿÿÿÿøàøÿø?ÿÿÀðÿƒû‡þ?üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿüÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàðáü>8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿàÿÿÿÀÿÿÿÿààðÿø0ÀÀÿÃþøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇþÇÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþððÿü|ü?ãÿÃñøáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÃüàøÿÿÿÿþáøðÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüƒÿÿƒÿÿðx?þ?ÿÿÿÿÿƒÀ?Ãðÿàü<ø>çþÃøÁþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿ>ÿÿÿÇøÀø< >ÿÿÿÿþáðÿñÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁ‡€ÿÿø8<üÿÿÿÿÿƒàÁøàü>ü>ÿþÃøƒÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿ€?‡ÿÿÿÿÃøxàxxÀïÿÿÿÿþððÿñÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø€ÿÿðx|?ÿÿÿÿþàƒðáüÿüÀð‡Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿ?ÿÿÿÿÇøððø|>>ÃÿÿÿÿÿþðÿáÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀ€ÿÿøx>?ÿÿÿÿüðÃøáüü>ÿüÀðÃÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃþ ‡ÿÿÿÿÇÿàøü~?àÃÿ†ÿÿÿÿþüÿáÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?‚àÿÿððx?‡ÿÿÿÿÿüÿƒøÃüø<ÿü?ÀáƒÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇü>ÿÿÿÿÇüðø|>?Çÿ†?ÿÿÿÿþ?þÿÃÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁƒð?ÿÿøð`ƒÿÿÿÿÿþÿÁÃøÃüü>ÿü?ÀàÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇþ?‡ÿÿÿßÃøøü~?ÃÿÂ?ÿÿÿÿþÿðÿÃÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøƒƒàÿÿðà?‡ÿÿÿÿÿÿÿÁƒðƒüÿø>ÿøÃÀÁþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇüÿÿÿÇàpðø|>?ÇÿÀÿÿÿÿþÿñÿ‡ÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁƒÃðÿÿø p?ƒÿÿÿÿÿÿÁÿáÁøƒüüü>ãøÙààü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃþ?‡ÿÿÿ‡Ãñøøü~>Ãÿàøÿÿþÿáÿ‡ÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüƒƒàÿÿÿð``‡ÿãÿÿÿÿÁÿÁÃðü?ðø>ÃðÃñÃààüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇü?ÿÿÿ‡‡áðøø~><Çÿðÿàÿÿþ?ÿÃÿü?€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþƒƒÃðÿÿø00ÿƒÿÀÿÿÿÿàÿÁÁðüø|?ÃðÃøÃððx?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃþ€‡ÿÿ€ðÀ8x~€?ðÿðÿÿøÿÿüÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþƒàÿÿðp0?‡ÿ€ÿÿÿÿÁÿƒÁàÿü?ð0ƒðÿÃñà0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü>€ÿÿÀð0?ñÿà?ÿÿðøþø?Áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþƒðÿÿðÿ€ÿÿÿÁÿà@ÿøø?€ðÿ€Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?€?Àÿÿðø0€€?ñÿðÿÿðøÿü?áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àÿÿà?€ÿÿÿ€€àþðøÀàÿÀ8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿñÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿãÿü?ÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€Àÿÿà Àÿÿ€€ðþðüÿààÿÁðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÀÀÿÿà|?Áÿÿÿ€€øüðÿÇÿüÿÁÿ£çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿààÿÿÿÿÿƒÿÿóÿÿÿàà?þüÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿãÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿàÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿøÿÿÿÿðÿÿÿÿÿà?ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿàÿðÿÿÿÿàÿÿÿÿÿàÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿøÿÿÿÿàÿÿÿÿÿø?ÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿøÿÿÿÿÁàÿÿÿÿÿøÿÿÁÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿü<ÿþ‡ÿÿÿÿÁðÿÿÿÿÿø?àÿáÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁÃÿÿÿÿø<ÿüÿÿÿÿƒñÿÿãÿ€ÁÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁàÿÿÿÿü<ÿþ‡ÿÿÿÿƒùÀàÀþ>?áÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàÿÿÿÿø<ÿüÿÿÿÿ‡ÿ€À€ø|?ÁÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁðÿÿÿÿü8ÿþ‡ÿÿÿÿƒÿÀà@x>?áÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒà€ÿÿÿÿø?ÿþ‡ÿÿÿÿÿÀààððx~>€?€øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀüÿÿðÿÁüÏðÿÿÿÿþ|ÿÿÏÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿþÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþðxÿÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüàxÿÿþÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀxÿÿþÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿáÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀ|?ÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÁÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿƒƒÿÿÿÿÿÿÿÿàpÿÿÿ‡ÿÀÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿøÿÿÿÁÿÿÿÃÿÿÁÀà|À`<ÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?Ààðÿ€ÿÿÀ€`À <ÿÿ‡ÿ€àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?àÀ~ÿÿþ€€@ À`8ÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀðà>ÿÿ€>€€à @ðpx8ÿÿ‡ÿÁÿÀÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ðà|ÿÿ€àÀðÁàðpøÿÿÿÿÃÿƒÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÀþð8<ÿÿÀƒÃð?ðpÀx0øÿÿÿ‡ÿÁÿƒáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ø?ÁÁþðx<ÿÿàÃàðàÀø!øÿÿÿÿÃÿ‡Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ø?Áàÿø|> ÿÿþƒÁðø`Àüþÿÿ‡ãÁÿ‡ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaø?Ãáþðx|?ÿÿŸƒÃðÿðAÀüøÿÿÃÃÿÃþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ `ø?Áàþø|>?ÿÿÁƒÁðøÀÿþøx?ÿÿ‡ãÁÿƒÁüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáø?Ááþðx~ÿÿƒ‡ƒðÿøÀýþðpÿÿƒÁÏÃüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàøÁáþøx>ÿÿƒƒðüàø?ÿþÀÀüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀ@ÀÀðð0ÿÿ€ÀüàøÿüÀÀüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€À@0pÿÿ€ÀÀþðüÿÿþàðþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€@€@``ÿÿ€àÀÿøþüÿÿÿÿÿøüÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀ`À@pp ÿÿÀðàÿŸÿ?þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?‡ÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÀ?ÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿøÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿàÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿøÿÿ€ÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿðÿÿÿÿÿÿÿüÿÿÁÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿþÿÿÿÿÿÿÿþÿÿÁÁÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáü?þøðÿÇøþÿÿÁÁøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáðþà ~ðÀÿÿÁÁàøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒáÀþÀ8pÿÿÁÀðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁÀþà80ÿÿÀ€ððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€þà0<ÿÿÀƒðàðpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€þøpx< ÿÿÀÁðÀàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àþøàü <ÿÿÀàøàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àþøàü8>ÿÿÀáàáðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒáàþøàüx>ÿÿÁƒàààðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁáþø?àüx>ÿÿÃáÀàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒááþøà|€xÿÿÁÁáÁààpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁÁþø?àx?€øÿÿÁÀÀ€`~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€øðð?Àüÿÿ€`À0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðàðÁüÿÿ`Àp>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ðpüÿÁÿÿÿ€p ð|?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€`ðàüÿƒÿÿÿÁýðø3þ ÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁàþüü_ÿÿÿƒÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿàÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÁÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÁü?ÿÿð|ÿøÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÁàøþxø?€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÀðøxð€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀàðxðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀð`ð~ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀƒÁðààpƒøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀøàðƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀðàðƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁàÀðƒüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÀÀðƒü€øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÀ`àðƒü€?àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀáÁÀàpü€?à?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@À <<àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`À08àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`@à088àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€øðð|<8 ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿþ~Áð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÃà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁƒþññàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁƒðÀ@`ÀüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÀ€`€xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€À`€xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀ`€ð`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀø`ð8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀøàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀø?àøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÀø?àøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁàø?àøÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÀÿø?àð€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÀóø?àðp?€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðà@0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àÀ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àÀ 0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàðà08ÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ø?øøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿøÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿþÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁø?þðpÿþÀ€ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÀàðà?ÿþ€?àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàÀðàÿþÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒà€ààÿþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒà€à@ð?ÿþ €ÿƒƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàðÀüÿþÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàðüÿÿþ<ÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒààüÿÿþüÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÀàüÿÿþüÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁÀüÿÿþü?Áÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿ€ÁüÿÿþüÿÁÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁ€€|ÿÿþüÀ€øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€€pÿÿøþÀ€øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀÀ0ÿÿøÿÀÀøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀÀpÿÿøÿààüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÿððøÿÿþÿÀðø?þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿðÿÿÿÿÿÿø?ÿÿþÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿð?ÿÿþüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿüÿÿÿÿþüÿÿÿÿÿÿÿÿÿÿþÿÿÿ€?ÿÿÿÿÿÿðÿÿþøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿøÿÿÿÿÿøÿÃÿÿÿÿÿÿÿÿÿþÿÿÿŒ?ÿÿÿÿÿÿüÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿüÿçÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿü?ÿÿÿÿÿñÿÿÿÿÿÿÿÿÇÿÿÿÇÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿþ?üÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿþüÿÿÿÿÿñÿÿÿÿÿÿÿÿ‡ÿÿÿ‡ÿÿÿÿÿÿÿüÿÿÿÿùÿÿÿð?ðÿÿÿø?ÿ‡ÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ ÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿü?ÿÿÿÿÿðÿÿÿÿÿÿÇþÿ‚<ÿÿøðÿÿüÀ?àÀ€€àÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿçÿÿð?ø?ÿÿÿÿÿÁÿÿÿÁø?ÿÿðÿ÷þ|àÿÿÿþþÿÿà0Àÿÿÿÿÿàüÿÿü|`ÿÀÿÿÿÀøþðÿ‡üþ ÿÿààÿÿø?€?€€ÿ`ÿ‡üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÀ?€àðÿÿð€ÿÿ€àÿÿðàü<ÀàƒÁüüÿÿð?‡ÿÿÀðÿÿø|€?ÿÿÀðüðÿÇþÿÿÿàðÿÿüÿ‡ø€>ÿ‡üÀàÿÿà?ÿÿÀÿÿàÀø8€ððÿÿà8ÿÿÀàÿÿø|~?ÿÿ€àððÿ‡ÿÿ>ÿÿÃÃüÿÿÿþ>øÿà ~ÿ‡ø|?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ`ðÿÿàÿÿ€€ÿÿðà||€ƒÁð ðpÿÿü<>ƒÿÿðÿáàÿÿþü>ÿÿðÿáãððÿÿÇÿÃÿ‡ÿÿÿÇáþ?ÿÿÿÿßøãŽ?ÿ‡ø|?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ `ðÿÿà ÿÿÿƒÿÿþà0~ÿƒÃáááøÿÿü<|>‡ÿÿáÿÃñÿÿþ?ü|<>ÿÿñÿãÃáñÿÿ‡ÿÇÿÿÿÿáüÿÿÿÿø>??øÿÇ~ÿ‡ð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ À<ø?ÿÿða„ÿÿÁÿ‡Áÿÿþø|>ÿƒþƒ‡ÃááøáÀÿþ|?‡ÃÿÿðÿÃøÿÿþü>>ÿÿðÿÿƒáùÿÿÇÿÃÿ‡ÿ‡ÿÿ‡ñþ?ÿÿÿÿ€?ÿ€øãŽ?ÿ‡ø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ<Àÿ|øÿÿðaÿÿÃÿÁÿÿþðø~ÿü†Ãããÿàÿÿþø‡ÿÿñÿ‡ðÿÿþ?ü~<ÿÿñÿðãÿÿÿ‡ÿÇÿÿ†?ÿÿñüÿÿÿþÿ‡þ‡Ãááÿàÿÿü?‡‡ÃÿÿðÿÃøÿÿþü><ÿÿðÿàáÿÿÿÇÿÃÿ‡ÿâ?ÿÿ‡ñü?ÿÿÿü>?ÿœøãŽ?ÿ‡øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþøÁÿ|øÿÿðaÿÿÁÿáÿÿþðø~ÿü†ÃãÁÿàÿÿÿø?Çÿÿáÿ‡ðÿÿþ?ü~?ÿøÿÇ~ÿ‡øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüàÿ‚<ø?ÿÿøa€?ÿÿÁÿáÿÿþø|>ÿ‡þ‡Ãááÿàÿÿÿÿ€ü?‡ÃÿÿðÿÃøÿÿþü>>ÿøãŽ>ÿ‡ü>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüÿÁÿ†|øÿÿða€ÿÿÿÁÿÁÿÿþðx~ÿþ†Ããáÿàÿÿÿÿü‡ÇÿÿðÿÁñÿÿþ?ü~?‡ÿáÁðxp?ÿÿÁþƒƒÿÿðàáÿÿþ<>ÿÿàðxxþ~Àøÿÿÿàðÿÿü~€Àü>?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüü€?‚`øÿðaÿÿÀ€ÿÿððÀðpÿÿÃþ?€ÿÿðàÿÿþ8ÿÿ€Àððü|Àñÿÿÿààÿÿø~€€Àüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøþ€€øÿðÿÿàÀÿÿðp?€€àxxÿÿÃÿ?Àÿÿøøÿÿÿ< €ÿÿ€àüøü>àñÿÿÿüøÃÿÿÿÿÿÿÿðýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøþ€üÿðÿÿààÿÿðð€~Ààðþþÿÿÿ‡ÿÁÿàÿÿüÿÿÿÿÿÿ?ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ€€€þÿÿð€ÿÿðøÿÿüø<Áÿÿÿùÿü?ÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿãÿÿÿÿÿßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàOñáÿ‡ÿÇÿÿÿÿÿàøðþÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€üàþxÿ€àÀøàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€xÀü0ÿ€ÀÀðÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€p€ø0ÿ€ÀàÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀpÀx0Àÿƒüà``ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿðð`À`xxÃÀÿ‡üÁðppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿðøàðxü0ÁàÿÀüÁø0x?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿððàðxø0ÃÀÿ€üÃðpøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿð?ðàð|<0Aàÿ€àüÁø0x?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿðÀàð|<0ÃÀÿÀüÁðpøƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿð?À ððx@<Aàÿ †üÀøpx?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿðÁààðpx80ÃÀþ‡ƒøÀàððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿààÀ p8<A€ààðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀ 0x€ÀààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàààxÀàøðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀð` <ø€?Ààüð0?Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøðþ<ð|ÿÏþ<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÇÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿà?àÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿüþÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿà€ÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿøüÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÁÿÿÿðÀ?ÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿüþÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÃÿÿÿðÿÀ?ÿÿÿÿÿÿÿÿÿÿüÿÿÿñÿÿÿÿÿÿÿÿƒÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿøÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøÿÿÿÿüÿÿÿÀÿÿÿø?ÿ¿ÿÿÿø~þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿþÿÿÿñÿÿÿÿÿÿÿÿÃÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿøÿÿÿÿÿÿÿÿÿÿŸñÿþùãÿÿÿÿÿàÿÿþøððþø8?ÿÿ€?ð?ðÆÿÿüà€~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿøÿÿÿÿÿ‡ÿÿÿÿÿûÿø?þÿÿÿãÿÿÿãüÿðÿáŸü?ÿÿÿÿƒÿÃÿÿÿ€ÿðÿÿÿÿÿÿÿ€àyÿ‡ÿÿðüÿÿðÿ€þ€à€ÀÿÿÿüÀÀàøð?ÿþ?ÀÀÿÿøà0>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðø?ÿÿðþÿþþþG€ÿø?øÿÿÿÿÿøþ?ÀÀðþþÿÃÿÃÿÿÿàÿÿþüø>?À=ðÿÿàøÿÿð~€à€€?ÿþ?ÿþÀÀàøðÿþ ?€Áÿÿððp<?Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð|ÿÿÀðüüüøÿø?àÿÿüÿÿð~€€àøøÿƒÿÃÿÿÿÿÀÿÿøøð8?Àÿÿàðÿÿð~>€ƒà€?ÿþ?ÿÿ€‡‡‡ðÿáñþÿþ>?LJÃÃÿÿáðx|<>Áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðxÿÿàðøø|øø?àÿÿüÿð>ÀÀøøÿÃÿÃÿÿÿ€Çÿÿøøp<?€ÿÿðààÿÿüx<>?ÀGñÿ‡Ãøá†ÿþ?ÿÿÁÿLJ‡Çøÿáøþÿÿþ?LJÃáÿÿáø|<<>Áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðxÿÿààðø~ð€ÿø?ÁÁÿÿø0ÿø8áÿƒÁààðøÃÿÃÿÿÿðÿ‡Ïÿÿððøxx<>>ÿÿðÿÃðÿÿü|8~?ÁÿáÿãðãŽ?ÿÿü?ÿÿƒÿÿ€ÿðÿáþÿÿþþÿøÇãÿÿãü|‡áÿ‡áàððøÃÿÃÿÿÿðÿïÿÿðøüx|>þÇÿÿøÿãøÿü~<ÃÿñÿáøÿáÇÿÿà?ÿÿÃÿøÀøÿàþÿÿÿÿàÃáÿÿáü>xÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿø?ðÁàððÿÃü0Ãðÿø?€ÿÿþàÿü>‡áÿ‡ááñàÃÿÃÿÿÿðÿÀÿÿáÿþ|>þÿÿðÿÃøÿü~8Ãÿñÿáðÿã?ÿþ?ÿÿ‡ÿ€àðÿÀþÿÿÿ€>ÿ€Çãÿÿáü~øÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿø?øàøøÿÁüaðü?€ÿÿþÿü>Ãáÿ‡ðáÿàÃÿÁÿÿÿðÿÀÿÿðÿü|>>ÇÿÿøÿÃøÿü~8ÃÿñÿñøÿáÇÿþ?ÿÿÃÿ€ðøÿáÿÿÿÿÿàÿƒ‡Ãáÿÿáüø?ÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿø?ààÿøÃü8Ãðÿø?€ÿÿøÿü>ÃáÿááÿàÃÿÃÿÿÿðÿðÿÿáÿð|>€>ÿÿðÿÃøÿü~8ÿÃÿáÿãøÿãŽ?ÿü>?ÿÿÇÿÇðÿáÿþÿÿþ>ÿ‡Ããÿÿáøü?ÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿø?ààÿüÁüaðü?€ÿÿðÿü>Ãáÿ‡ðáÿà?ÿÃÿãÿÿÿðÿÈÿÿðÿð8|>xÿÇÿÿøÿÃøÿü~8?ÿÃÿñÿ‡ãøÿáÇÿü~?ÿÿÇÿ‡Ãøÿàÿÿÿÿþ>ÿ‡ÃáÿÿðøÿüÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿø?ÀàÿøÃüCðÿø?ƒÿÿÿð8ÿü<‡áÿ‡ááÿàÿÿÃÿÃÿÿÿðÿÃÿÿðÿàø|>~ÿÿÿðÿáøÿÿüxLJÿÿø}àðÿÿü|ÃÿÀ?Á‡ðá†ÿüÿÿ?€øð|ÿÿþ?€€€ÀÿøÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð~ÿÿøÁ€`|pp?€<CÀøÀÿÿðÿü>àÀð0p???ÿÿ€€ÿÿø0?€ÿÿøðÿÿüþ€ÀàÀ‚ÿüÿÿ?€ÀøøøÿÿþàÀ€Àÿþÿãÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿàÀ00~ àÀÿÿðÿü<àÀðx>ÿÿ€€ÿÿø0?€Àÿÿøøÿÿüÿ?€ðàÀ‚ÿÿÿÿ?àÇà?þþüÿÿÿáÿø?ûïãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀ88| Ààÿÿøÿüü€ðàø|~ÿÿ€Àÿÿþü?ÿÀ?àÿÿüüÿÿüÿÃÿ€ÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿàà8xþ€àðÿÿü?ÿüþà?øøþÿÿ??ÿÿÿÿüÿÿÿ‡ÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿàøþüÿ|aØ?øÿ?ÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿø?ÿÿÿÿÿÿÿþÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿ?ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿø?ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿø?ÿÿÿÿÿÿÿð?ÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿðÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿÿÿÿüÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿãÿ‡ÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿðÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿü?ÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿãÿ‡ÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿøÿüÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿþ?ÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿáÿÇÿþÿÿÿü?ÁÿõÿÿÿØóøóøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿƒÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÏýÿÿÿøÿÿÿü?ÁÿüÿàÀð€Àÿÿÿþàÿÿÿ€€ðÿÿÿ~ÿ€?Žà€ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿƒÿÿŸÿÿÿÁÿÿüÿÿÿÿÿÿüÿÿÿÿÿàÿ˜ÿÿÿÿÿÿñÈyÿàÿÿÿ‡óþà`øÿà?ÿðÎøÿÿþþÿü?ÀæðÿÿÿÀ?€~À€à€Àÿþø?ÿÿ€€ðÿÿþ~?€à€ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€øÿÿþœÿà?ðøðÿÿÿÿ€<<ÿÿÿÿÿÿó‡˜ÿ€?ÿþ€ðÀpÿ|>ÿÀàÿÿøøÿø?€àÿÿþ>8€€àÁÿÿøp?ÿÿ€Áƒÿÿüx8> ÃÇ€Áøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€øÿÿü<?Ààððÿÿ?ÿÿÿÿÿÿÿÃø?ÿþ€`Àxþ>ÿ€àÿÿø|ÿü€À€ðÿÿþ>‡üøáñÿÿø|8ÿÿãÿÇÃÃãÿÿø ÿÿÿÿÿÿÿ‡ø>ÿÿàÃàþþ>ÿáÿ‡ÃÇÿÿððÿÿþÀ'øÃøÿÿü<<>>Ÿøðÿáãÿÿðü|>?ÿÿÇÿLJãÿÿðüxþ<>‡Ž8‡ãñøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€àÿÿø< à€àøÿÿüƒƒÿÿÿÿÿÿÿÃø>ÿÿÃáááø ÿþÿáÿÃÃÃÁãÿÿðü?‡ÿÿÿàÿüãñüÿÿü>>ÿÿãÿ‡ÃÀÿÿøü8þ?ÿÇŽ8áðü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€Ààÿÿø8| üÁÁáø?ÿÿø<<ƒÿÿÿÿÿÿÿƒø|<ÿÿÃÃóÃø?ÿÿ?ÿÿÇÿ‡Ç€ÿÿðüpþ?ÿ‡8€ãñüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÁÀÿø~ü€Áàø?ÿÿø><ƒÁÿÿÿÿÿÿÿÃø<ÿÿáÃøø?ÿÿÀÿáÿãÇãàÿÿáü?ÿÿÿ‡áÿüãñüÿÿø~<ÀüøüGÿÿðþ?ÿÿãÿÇÀÿÿøü8ÿ?ÿÇŽ8ƒÿáðüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿƒÁÀÿø| üÁóø?ÿÿøø?‡Áÿÿÿÿÿÿÿƒø|<ÿÿá‡àøÿþ?ÿáþÇÃðÿÿáüÿÿþãÿøÃáøÿÿøü8þàøðÿüÿÿðþ<>?ÿÿÃÿLJÿÿÿðøpþü€Áÿø?ÿÿø?ü?‡ƒàÿÿÿÿÿÿÿÃø<<ÿÿà‡Àø?ÿ‡ü?ÿáÿãÇãøÿÿáü?ÿÿÿáÿüãñüÿÿø~?ÿÿÃÿÇÃÃÿÿÿø|x~ÿ‡ÇŽ<Ãÿñðü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿƒÁÀÿÿü< üÁÿø?ÿÿø?ø?‡àü?ÿÿÿÿÿƒø|<ÿÿÿðÃøÿø?ÿÿÃÿÇÃùÿÿøxx<>ƒŽ8ÀáàüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÁÀÿÿøü€ÿÁÿø?ÿÿø?üðøÿÿÿÿÿÃø<>ÿÿÿðƒãø?ÿø>?ÿàÿÃÃÃÃáÿÿðøÿÿÿáÿü?ãñüÿÿü<ðøÿÿÿø>ÿÿààÿÿü€`À`<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿƒÁÀ|ÿÿøx> üñÀøø?ÿÿøð?øÿÿÿÿÿø|>ÿÿøƒ€ø?üø0€ƒÃÀÿÿð üÿÿþÀ?ÀÁàøÿÿü€øÿÿÿüø ÿÿààÿÿüÿÀ`À`~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀàÿøü€à|ÿüø?øÿÿÿÿþ8ÿÿøÀpø<€€€Àÿÿøü?ÿÿ?€ÀÀ@|ÿþ€Àüÿÿÿþüÿÿðøÿÿÿ?ÿÀà‚|ððÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€àÿø>üÀà|ÿüøøÿÿÿÿü0ÿÿü?Ààð|€À€€Àÿÿüüÿþÿ€ÀÀÀ|ÿÿÿÀþðÿÿÿþþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€€pÿø?üàð|ÿþ??øüÿÿÿÿþ8Àÿÿþ?ððøÀ?€ðÁÀðÿÿÿ‡ÿÿÿÿÿÀ?ÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð€€øÿÿüÿ€üðøþÿÿÿ€Àÿÿðü?ÿÿÿÿÿÿýÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀàþÿÿþÿÀ€ÿüøÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿðÿÿÿÿÿþÿðÿÿÿÿÿÿÿÿüÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿ€ÿÿÿÿþÿàÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿ€ÿÿÿÿþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿ€ÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿüÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçüÿÿÿÿÿÿÿàÿÿÿÏÿÿÿÿÿÿÿðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿüÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿüÿÿÿÿÿÿààþÿÃÿÀÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿðÿÿÿ‡ÿÿÿÿÿÿÿÿÿ‡ÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿü?þ|~ÿÿÿø?øÿÿÿáñðÿüÿÀÿÿÀÀ?ø@þãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿðÿÿÿ‡ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÃÿÿÿÿÿÿÿÿÿÿÿñÿÿÿüøÿÿþ?ÿÿÿÿÿÿÿàøðþðð08ÿÀÀøÿÿÿ€À`ÿÿ?ÿÿ€À?ø@þãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿþÿÿÿÿ€?øÿÿàðÿ€ÿà?üøÿÿ‡ÿÿþÀÿÿðøñþø€?àÿÿüÂÿÿÿ€x@Àøàøøøx>ÿÿ€øàøðð<ÿ€€øÿÿÿ€àpü~>ÿÿ‡ü?ðð`p~?áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððáðøþÿÿÿàÿÿÀðÿ~€ððþÿÿÿü?ÿÿàðÀüð?Àÿÿð€ÿÿþ0?€øÀððàp<ÿÿøÀððð<ÿ‚ðÿÿÿðþø|<>ÿÿüñððøþ>>Ïøáãáãøx|<ÿÿþü€ãùüþÿ‡þ?ÿðøÿÿÿðñÿðüxÿÿÀü?ðáðø~?ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒáÁÀðp0ð<ÿÿƒÿ‡ÿÿàðpxx>üƒÃƒÁþÿÿÿÿü?ÿÿ‡Ã€áðà~ÿø?‡þÿÿÿáñÿÿÿà<>ðøÿãããÃøx||ÿÿþøÃÿøþ?ÿ‡ü?ÿ€ðÿÿÿðãþðøø8ÿÿÀüøñøøãÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁðàðpøÿÿƒÿƒ€ÿÿðø8x8?‡þƒƒã€ÿÿ‡ÿÿÿü?‡ÿÿÃÀñðð?ÿÃÿÿÿøáðÿÿÿ>?€øááÃÃüx|>ÿþü€ÃÿøþÿÇþ?ÿøÿÿÿøcþðüx?üÿÿŸü?üøøx|?áÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçààðpðÿÿƒÿ‡ÿÿàðpxp~üƒ‡ÿ€þÿÿÿÿø?ÿÿÀ€áðàþ?‡þÿÿàáðÿÿü<>øÿãàÃøø|ÿüøÿÃÿøþ?ÿ‡ü?þðÿÿÿøGþðøxøÿÿüøðøøüãÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÀàðxpÿÿƒÿƒ€ÿÿðø8x8?‡þÃÿ€ÿÿ‡ÿÿÿü?‡ÿÿà€'ðøðÿüÃÿÿÿÿàññðÿÿü>?øáøáøx|<ü?ÿþÿü‡ÿáÿøþÿ‡þþøÿÿÿüþø|x?üÿÿüøAðøx0áÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àðppÿÿƒÿ‡ÿÿàðpxp~ü‡‡ÿƒÿþÿÿÿÿü?ÿÿàƒÿáðàÿþø>øÿÃðÁðø|xüÿþÿøÿ‡ÿÁÿøþ?ÿ‡þÞðÿÿÿüüø8x?ÿÿÀðà0€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÁàppÀxÿÿÿƒÿƒƒÿÿÿðppx8>‡þƒÿÁÿÿÿ‡ÿÿÿþÿÿàÁùðøðø>ÃÿóÿÿÃáñðÿÿø<>?øƒÃðÿàðü<88?ÿÿø?Ààp|üü?Àÿÿþðü?ÿÿ€Àð`Áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóàà`àxÿÿ€‡ÿÿàðxxá€þÿÿÿÿÿÿÀÀàðð>ø€ÿÿÀ`àÿÿø À€ààøÿÿÿÀÀðøøø?€ÿÿþàüÿÿÿ€Àà`0~ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€pxÿÿÀÀÿÿðð€ÀÀøüÿÿ€ÿÿààà 8<|À€ÿÿà` ?ÿüÀàðxþ ÿÿÿ€Àðøþøü?ÀÀ‡Àÿÿÿøÿ?Ãÿóÿÿÿÿÿÿÿáþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€püÿÿ€Àÿÿàà?€Ààðøÿÿ€?ÿÿÀàÀ 8xüÀÀÿÿàÀ`?ÿþ €Àà?à|þ<ÿÿÿàÿÀøÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀxþÿÿÀàÿÿððÀÀðøøü?ÿÿÀ?ÀÿÿÀøà0?þÿ‡?ð?ðÿÿþð|ÿÿÿÿÿÿÿÿÿÿÿÿãüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðàø8ÿÿÿÿàðÿÿàÿøxãÿàñÿüþÿŸÿÿÿÿÿÿÿÿÿÿ‡ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿßÿÿÿÿÿüÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÏÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿÿßÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿø?ÿàÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿƒÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿüÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿð?ÿàÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿðÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿø?ÿñÿÿÿÿÿÿÿ¿ÿÿÿÿÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÃÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÿÿÿÿÿÿðÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÃÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÃÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿ‡?øÿÿÃÿÿøÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿ‡ÿÿÿÿÿÿÿÿÿÿðÿÿÿÁÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿýÿÿÿ‡ÿÿÿüÿÿÿÿ€‡øþøòxü?à?üÿÿàüÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿþ?ÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÃÿðÃÿøÿÿÿÿ‡ÿÿÿÏÿÀþ‡Àÿü?àáÿÿÿÿàx ÿð€ÿÿðüÿÿþÀàÀ8ü>€àÿÿàøÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @øþÿÿÿ€?ÿøÿþÿÿÿþÿ€?ÿÿÿÿðüÿø?ÿþ?à?ÿÿ€aøÿþÿÿÃÿÀ?àÿÿüÿÿÿÿ|€ðÀ€ÿÿÿÿÀ8?ÿà€ÿÿðøÿÿþÀàÀü~?‚àÿÿððpÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ @àøÿÿÿÿàøÿÿÿüÿÿÿƒàøþÿü€ÿþàøðp?Ãÿ?Àÿÿøÿÿþ~<€àÀÿÿÿÿà|?€ÿÀÿÿþøpÿÿÿÿÀ‡ƒÃãÀ‚ÿÿ‡ÿÃÃÿÿøáøÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÀððÿÿþàðÿÿÿüþÿÿàðü?ÿþÿþ`ðàp?Ãÿ€ÿÿðÿÿü~>ðÁÃàÿÿÿÿáÿðÿ‡‡ƒÇÿÿÿøøÿÿÿÿÀÿÇÇÃããñÇÿÿ‡ÿ‡ƒÃÿÿøÿáüÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀððÿÿþÿÀðÿÿÿþþÿÿÁÃà`øÿþþÿÿAÁàðx?Ãÿ‡ÿ‡ÿÿðñÿÿøx~ñÿ‡‡Çÿÿÿø}ÿÿÿÿÁÿÿÇãà?ñÇÿÿ‡þ‡Ãÿÿøÿáüÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀøðpÿÿþ àÿÀð`ÿÿÿÿÁüÿÿƒÁÁãàðð0ÿÿþ‡ÿÿ†Cààáø|?ÃÿÇÿ‡ÿÿøñÿÿø|~ñÿχÃÿÿÿøÿÿÿÿÃÿðÇãàñÇþÿþ‡Ãÿÿøÿáüÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁÀþðÿÿþàÿÃÁÁÁøàÿÿÿÿÁþ?ÿÿÃáÀàpxÿÿþƒÿÿ†ðÁñø|?ÃÿàÇÿÿÿÿÿÿðþÿ€?‡ÿÃÿø€øÿÿÿÿðÂ>>ñÿÿ‡ÃÿÿþøÿÿÿÿÃÿ€ÇãðñÇþÿþÃÿÿøÿáüÿü ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀþðÿÿþ?àÿƒƒÃÁøÿÿÿÿÁþÿÿƒÁÀÀðøÿÿü‡ÿÿ†ðÃñø|?Ãÿ€‡þÿÿøÿÿðÿþ‡ÿÃÿøÿ€øÿÿÿÿð‚>>ñÿÿ‡ÇÿÿþþÿÿÿÿÃÿÇÃüñÇþÿþÿÇÿÿøÿáüÿü>?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁàþðÿÿþàÿÀÁáðÿÿÿÿÁÿÿÿƒáàÀðøÿÿü‡ÿÿ†ðÃñø|?Ãþ‡þÿÿàÿÿðÿü‡ÿÃÿø€?øÿÿÿÿø‚>?ðÿÿ‡ÇÿÿþùðÿÿÿÃÿÇãÇãñÇþÿþÿ‡Ãÿÿøÿàøÿø|?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀþøÿÿÿàÿÀÁÁàÿÿÿÿÁÿÿÿƒÁðÀàøÿÿü‡ÿÿ†ðÃáø|?Ãü?‡þÿÿÿàaÿÿðÿø<‡ÿÃÿøÿ‡ÿøÿÿÿø~>ñÿÿ‡ÇÿÿþñøÿÿÿÿÃÿÇÃÇãñÇþÿ‡ÿçƒÇÿÿøððÿÿø8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁàþðÿþàÿàÁáÀÿÿÿÿÁþ ÿÿÃáÆÁÿðxÿÿþ‡ÿÿ†ðÁñø|?Ãü>‡ÿÿÿÿÃáÿÿøø|‡ÿÃÿøÿƒÿøþÿÿø~>ðÿ÷‡ÃÿÿþðøÿÿÿŸÃÿÇÃÁÃáÇ?€ÀÿÿøðÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÁþà€ÿü8àÿàÁÁÁàÿÿÿÿÁü<ÿÿƒÁƒÁÀÿðxÿÿþÿÿ†áÁáø|?Ãø<‡ÿçÿÿÃáÿÿøðx‡ÿÃÿðÿƒóøþÿÿø|>€ƒÃƒƒÿÿððÿÿÿ€?Àà‚?€€ÀÿÿøøÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀüà`ÿüÀÀÁÀÀÀ?ÿÿÿ| ÿÿÁ€Áàp?ÿÿÿÿ†@àx8<€ÿÿÀ?ÿø8€?€Ààþÿÿüü Àÿÿðpÿÿÿ€€€€ààÀÀðÿÿüþÿÿÿ‡?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€€ààÿÿüÀ€€@8ÿüÿÿÀàpÿÿÿÿàx<€€ÿÿàÿü8?€ààþÿÿü0ø ÀÿÿðøÿÿÿÀ?Áø?àÆÿÿÁÿãÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€`pÿÿüÀ€ 8?ÿü ÿÿà@ð|ÿÿ€€ÿÿð~ÀÀÿÿðÿÿ~€?ÀGðàÿƒÿÿþyþÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€€``ÿÿü?€€`8ÿüÿÿàÀøüÿÿ€?Àÿÿ8üþ>??à?ðÿÿü{ÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀÀpøÿÿÿ€€@Àxüÿÿÿÿÿøü?ÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿÿÿÿŸÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿà?þÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàþÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿà?ÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÿÿÿÿÿþÿÿÿÿþ?ÿƒÿÿÿÿÿãÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿ¿ÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿü?ÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàþ?þüüÿ€ÿpÀÿÿþ?ððø`?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿüÿÿÿÿÿþÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÿÿÿÿÿÿ}ÿóÿþáÿüÿÿÿ?þxÿÿÿÿÿø~ÿøü?ÿÿÿÿýŽ<Ïÿ˜Àüüø|ÿ<Àÿÿþðàü`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒøàÿþ?Àÿÿý‡ððøøü@À?€ðâÿÿÿðÀÿÿøÿÿà ?€>ÿàÿÿøàÿÿ€€ÿøðÿÿüüàÀððøüþ8†ÿÿþ?üàxpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀ>ü€?ÿÿààððxð?€€ðÀÿÿþp €ÿÿðÿÿð>?ÿÀÿÿðà?ÿÿ?€?øàÿÿüø`èððaüÿÃü‡ÿÿþÿð8|`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþà€|ÿÿ€Ààðøð?€À€ÿÿü0ÿÿàÿÿð<>?ÿ€ÿÿàðÿþøÃÇÿÿøpðxpA0Ƈøãáðñþ?ÿÇü~ŸÿÿþÿøüxCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€<ÿÿ€Ààðüð€ÀÀÀÿÿø€ÿÿàáÿÿþ><àÿ‡ƒÿÿÃáüÿþøÃãÿÿðøðü8aŒpLJLJü?ãñùñþ?ÿÃü€ÿÿÿþÿø|<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€Á€0>üÿÿƒÁÀáø?ÿø Ãÿøƒààðÿÿø|àÿÿñáÿÿþþ<<>?áÿÃÿÿÇðüÿÿü>Ÿø‡Ãÿÿñøñü8ãŒqÇLJüÃÿþþ?ÿÇø€ÿÿþÿøü|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀxüÿÿƒƒÁàüÿƒüÃÿøƒðàðÿÿø~àÿÿÿûÁÿÿþÿð<>ðÿÃÿÿÇðüÿÿü??ðø€ÿÿñÿñþ8ó„xÇÇüÃÿøþ?ÿÃøÀÿÿþÿø|<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€á‚üüÿÿ‡€àü?ÿ‡ü>€Ãÿø‡ðàðÿÿð~ <áÿÿÿðÿÿþþ8~ðÿÃÿÿ‡ðü?ÿÿü?ÿ€ø€ÿÿñÿáþ8ãŒyLJÇüÃÿàþ?ÿÇøðÿÿþÿø||ÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿ€à‚|üÿÿƒ€ðü?ÿƒüÃÿø?ƒð`ðÿð~ <ðÿÿÿàÿÿþü8~ðÿãÿÿ‡ðü?ÿÿü?ÿø€ÿÿñÿðþ8áŒxLJÇü?Ãÿàñþ?ÿÃøŸ‡ÿÿþÿø||`ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿ€à‚üøÿþƒðø?ÿƒü>Ãÿøƒðàðÿÿð~<àÿÿÿÀÿÿþø 8~ðÿÃÿÿ‡ðü?ÿÿü?þø‡ÿÿÿðÿðü8ãŒyLJÇüÃÿãñþ?ÿÃü?‡ÿÿþÿø||pÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿ€à‚|üÿÿƒàü?ÿƒüÃÿø?ƒðàðÿÿð~€<ÿàÿÿÿÁáÿÿþø|<>ðÿÃÿÿÃðü?ÿÿü?þøƒÿÿÿðÿðüxãŒyLJLJü?áýáàþÿƒüÿÿþøø|88Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿà†|üÿÿÿƒƒÿÁÀø?ÿƒü>ƒÿø?ààðÿÿø<€~ïàÿÿÿÃÁÿÿþøx<àÿÇÿÿÃáü?ÿÿüÞøÁáÿÿð~x8xãŒ1ǃƒÀàà><>ÿÿððp ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿ€ðà‚8<ÿÿ€aÁÀüü ÀàÀàðÿø?À~àÿÿÿÀÿþø €ÿÿàøÿÿþàÀÿÿø8ø!€ÀÀðà><|€ÿÿðððáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀÀ> ÿÿ€Àü88À€Àà ?ÿü?Àÿ€ÿÿÀÿøø€ÿÿàðÿÿÿ?Ààÿÿü|ðàÀøøÿþ?ÁþàÿÿÿøÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÿÿ€ÀÀü8À€àà ÿüàÿ€ÿÿàÿøüàÿÿøðÿÿÿ€Àðÿÿþÿø!€Áð'ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àÀÿÿÿÀààþx8àÀøà ?ÿÿÿáÿÀÀÿÿøqÿÿøÿ?€ÿÿÿÿþýÏÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðÀÿ€€?ÿÿàððþü| ƒŸð?àÿþ?ðøÿÿÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀþðÇÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÃÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿüÿÿÿÿÿüÿÿÿÿÿÿÿàÿÿþÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿøÿÿÿÿÿüÿÿÿÿÿÿÿÀÿüÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÏÿÿÿÿÿùÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿøÿÿÿÿÿüÿÿÿÿÿÿÿàÿÿþÿÿÿ÷ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿðÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÃÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÃÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿðÿÇÿÿÿÿÿÿÿÿÿÿø?üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÃÿÿÿðÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÃÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?øÿüðÿÿÿÿÿÀ?ÿÿàÆüÿÿðÿðàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÁÿÿÿðáÿÿÿÿÿþ?ùÿÿÿüÿðÿÿÿþÿóÿÏÿÿðÿÿÿƒÿ‡ÿÿÿÿÿÿø?ÿÿÿÿøÿÿÃÿàÀÀÿøÿÿÿø0?ÿÀÀ?àààx|€~€ÿÿÀÀøÿÿðÿÀÀàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÀÀüÿÿøÀ~‡àÀøÿÿü€þ‡€Æüÿ‡ÿÿÿÿÿààAðÿü?Ãÿ€?€ÿàÿÿð >ÿ?€Àààpp?>?ÿÿÀÀðÿÿðÿ€ƒ‡Ãƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÀàøÿÿø<ÀÀðÿÿø?<À?€øÿ‡ÿÿÿÿÿ€Àðüx8ãÿ€Àÿÿø Çððpx> ÿÿÿñÿÁãáðÿÿþ?áÿLJáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>ÿÿ€Àðÿÿø€Ààÿÿø~<Àðÿ‡ÿÿÿÿÿ€àøð8?Ãþ ðÿƒƒÿÿþ8x~>‡Çðÿüð||?áþLJáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„ÿÿÀàðÿü €àààÿÿüü€ü?€aøxÿ‡ÿÿÿÿþ‡‡†Aàðxx<ÃÿÃÿø‡ÁÃáÿÿþø|>‡‡Ãïøÿüø~<>ÿÿÿÿñÿÃããàÿÿþ?áþ‡ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ?ÿÿÿàÿÀ@àðÿÿ !ƒàÿÁàÿÿüü>þaøÁáøðÿ‡ÿÿÿÿþ‡Ž8Çðððü>?Ãÿ>ÇÿðÿÃÇãÿÿþðü<>ãÿàÃÿøáÃñÿÿÿðãþÃÿøáãñÿÿþðü?þ‡ÇÏøÿü?ø~ÿÿñÿÃááÿÿÿÿ€ÿáþ‡ÿƒáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüƒÿÿÿàÿÁàÀÿÿÿø`Áàÿ€ÿÿüøƒþaøÃáàÿ‡ÿÿÿÿü?ÿŽ8‡ðáøü~?Ãü?‡ÿðÿãÃãÿÿþðÿü?ü?Çñÿüø||?ÿþ?ÿÿáÿÇãÁÿÿÿÿ€ÿáþãƒÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüƒÿÿÿàÿàààÿÿÿüÿ 0ÁðÿÁÿÿÿþüÿÃÿ 0ü?áñàðÿ‡ÿƒÿÿþÿ†Cððø|>ãü>Ãÿø‡ããáÿÿÿø?þþ‡Ãðÿü?ü<>‡žÿÿðÃáà ÿÿÀÿ€ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøƒÿÿÿàÿÁàÀÿÿÿÿüþ`ƒàÿÁýÿÿüøŸƒþaø?ãááàÿ‡ÿÿÿþçŽ8ÁáðpüƒðøøÿÿðÀàÿÿÿÁþÀàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø€ÿÿàÀà`?ÿÿü 0ðàÿþ<€ÿ 0àààà?ÿÿÿ€‚`ø>ÀÀÀÀàÿüü?Àøðþ€?ÿÿø€ÀøÿÿÿáÿÀðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð€ÿÿà€@ ?ÿü~ààÿÿþ>>€@`<?ÿÿÿÀ ø>>À€à€Àÿøþÿ€€~Àøðþ€À€ÿÿÿøã÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀÿÿðÀ8?ÿþ?ððÿÿÿ?@À@8<?€ÿÿÿ€à8þ?àÀø?Ààÿüÿƒÿàûÿ‡Ïÿÿÿ?ÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÿÿðÀ@xÿÿþ€>`øøÿÿÿ€ÿÿ~ àÀáþ=þÁÿÿÿÿÿøÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿ÿàÿÿüàpÿÿÿÿàÿ9ÿÿþÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿþÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿð?ÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿ€ÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿƒÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿð?ÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøCÿÿÿÿÿÿÿçÿÿÿçÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÃÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿþÿÿÿÿÿÿÿÿþÿÿð?ÿÿÿðÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÇÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿüÿÿãÿÿÿÿÿÿÿÿÿÿü?ÿÿ€ÿÿÿñÿÿÿÿÿÿüÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿøÿÿÿÿþÿÿÃÿÿãÿÀ`?ÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿáÿÿÿÿÿÿÿÿÿÿü?ÿÿðÿÿÿðÿÿÿÿÿþüÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿü8~ÿùÿÂÿÿÀààþÿèÿà?à?øÿÿàÀ`?ÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÁÿÿŸÿÿü?ÿÿÿýÿøÿÿÿÿÿÿÿÿÿþÿÿáÿÿÿÿÿÿÿÿÿÿü?ÿÿðÿÿðÿÿÿÿþü{ÿñÿÿÿÿ‡ü?ÿüøþp ÿÿàÀÿÿÀðøÿÿÀøþ|<ÀÀàÿÿàÀp?ÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàà?þûÿ€àÿÿÿÿþÀ@ðÿ€üÿÿÿÿàÿÿÿÿüÿÿòÿÿ€ðÿÿÀþÿÀ?ŸÏðÿðÀøÿÿø|ÿ€ÿÿðð€øøü0ÿÿÀÀÿÿÀðø?ÿÿÀpàüx<‡Àÿÿàðøÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀø@þàÿÿÿÿü€@ðÿ|?ÿÿÿÀÿÿàðxþ€ÿÿàÿÿ€|ÿ>ðÿà€ðÿÿø|?ÿÿàà€ðøüxÿÿ€ÀÿÿÀ@øƒøƒÿÿÿÃøáðøx<‡ÃÇÿÿááøpÿÿþÿÿÿÿÿ€0x<>ðÿÃÇáÿááÿÿþø<>ÿÿ‡‡‡Ãáááñÿþþ?ÿÿÃøÿÿÿñøþÿÃþ>ÇÿÿÿÇãøãøpø~?žÇÿÿãðü1ÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ‡üð`|?àÿÿÿÿÿðààÿø8<ÿÿð‡‡ÿÿàøpxø|<ÿÿÃÿ‡áÿÿãŽ0ü8ÇÿÿÿÇáøÃøqø|??þÇÿÿãðþÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€üàððx~?àÿÿÿÿÿÁàÿø~<>ÿÿð€ÿÿðøxø>ÿÿÃÿ‡ðÿÿ㎠ü8|?‡ðÿàáÿÀÿÿþü~<ÿÿ€ãñøÿþÿ„ÿÿãøÿÿÿñø~ÿÃþ?ÇÿÿÿÇáøÃøpø|?þÿÇÿÿáðþÿÿø|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€üà@àð|?àÿÿÿÿÿÁàþðü<ÿÿðÿ€ÿÿðøxð8>ÿÿÃÿáÿÿÃŽ!ü0|?ðÿÀáÿÀÿÿþ?ø|<ÿÿ€ãáüÿþÿ€ÿÿþÃøÿÿÿñøþÿÇþ>ÇÿÿÿÇãøÃøðø|>þÿ‡Çÿÿááÿÿÿø|?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀüððxx?àÿÿÿÿÿ€áàÿðü>ÿÿðÿÀÿÿðø|p|>ÿÿÃÿáÿÿ㎠ü8|?‡ðÿ€ÃáÿÁÿÿÿþü~ÿÿÃÿáÿÿÃŽ ü0|>àÿ‡áÿÃÿÿÿþ?ø|?ÃÿÿÿÀøàñð0>€ÿÿàÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüøðxp8?àÿàÿÿ€ààÿø?ü<ÿÿðƒÿÿðxpøx?üÿÿÁÿƒáÿÿãŽ0|8ÿÿƒ‡Áááñáàüþ?áÿÿÿ€Àÿÿðüþ<ÀÿÿÀàðø€€ÀÿÿàÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððàðppÀÿÀ?ÿÿ€Áàøø8<ÿÿ€ÿÿðp `ø ÿÿÀÿÿà 0 x?€àÀÿÿþ88ÿÿ€ÀÀÀ`ø~?ãÿÿÿ€€ÿÿðøü8 ÀÿÿÀàøü?€Ààÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàð`À?ÿÿÀÀ@0|ÿÿÿÿøüÿÿàÀÿÿÀ|€€€ððÿÿþ8ÿÿÀàÀ@pø?ãÿÿÿà?Àÿÿð?üþ<ðÿÿÃÿðÿŸÿÿÁŸøÿùÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀðÀ?ÿÿÁ€@`|ÿÿÿÿøü>ÿÿàÀÿÿ€þ€Àððÿÿþx€ÿÿààÀÀpøÿÿÇÿÿÿøÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿô?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àààÿÿá‡À`08 ÿÿ€€ÿÿü8ÿÿ€ÿÿðøÿÿà†ÿ€àGÀùÿü?ÿÿÿÿÇÿÿÿóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àÀ0<€à?ÿÿãÀðøÿ€ü>ÿÿÝÿðÿÿÿþÿßÿïÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàüÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀðÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÀÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÁÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿøÿÿÀÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÁÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÀÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿðÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿãÿøÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿàÿÿçÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€øüü?Æðàþùüÿ?À?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÃÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûãÿÇþþÿÃÿÿÿàþüóƒÿÿÿx ðÀð@|àüÿ?€àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿóÿÿÿÿþÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿáƒÿÿçÿðÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿùÿü?ÿÿþÿÿÿàÿüÿþÀÿÿüÿÿøüàÿÿÿàÿÿüøøüÿÿ€ðð€ÿÿüx àÀàpà~þ?Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀÀðýÁþ?ÿø?øÿÿÿÀþà8ÿðð?ÿÿÿÿÿÿñÀþÿÀÿÿþüàð8ÿàÀÿÿÿ€ðÿÿüÿ€ÿ€< >€ÿ„øÿÿøðÿÿÀÿÿ€øðø~~ÿÿ€àðÀÿÿü| ÀÀÃøpðp8Ãþ‡ÁÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€`à|<üàÿÿøøà ÿ€ÀÿÿÿÿÿÿñÃüÿÿÿðð€`ÿ€??ÿÿàÿÿøþ~8€ÿðÿøð?ÿÿ€ÿÿÀðaðáüüàðàÿÿ‡ð?ÿÿƒ‡ÿÿððñðñþ?ü~?ÀïÿÿÃÃñáñøÿÿü>?‡‡ÇÃãü?áüx|?Ãþÿ‡Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€`À<>üÀÿÿàð`8ÿÿÿÿÿÿÿÿÃðÁþÿÿÀÁÁàøþ ÿÿðÿÃÇÿÿðñü<><øÿÃÃááÿÿÿ‡ü>?ÿÿÇÿÿðÿùñð{þ?ø~?ÃÿÿÿÿÇçÿáñøÿÿüÿ?‡ÿÃãü?áüx|Ãÿ>ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀxà>Àü€ÿÿÀðp8<ÁþÿÿÿÿÿÿÿÃøxÁþÿÿÃÃáðøþ>ÿÿðÃçÿÿðùø|?>‡øÃãáñÿÿÿ‡ü>ÿÿÿ‡ÿÿðÿÿðþ?øÃÿÿÿ€Çÿøñøÿÿþÿ„?‡‡ÿÃãü?áüx|?Ãÿ€>‡ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁðþðx>ÿÁþƒÁÿÿÁàà@8?ÁþÿÿÿÿÿÿÿÃðxÁþÿÿÿ‡ÃÃðpÿü?ÿÿðÿÀ?ÿÿðø~ð>øÿÃãááÿÿÿ‡ü>ÿÿàÿÿðÿøðþ?ø?ÃÿÿÿÀ‡ÿàñøÿÿÿ„‡ÿÃãü?áüx|Ãÿpÿ‡ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁð?þðx>ÿÁÿƒƒƒÿÿÁàà<?ÁþÿÿÿÿÿÿÿÃøx?Áÿ?ÿÿ‡Ã€øpÿü?¼ÿÿøàÿÿøøÿ>‡øÃãðáÿÿÿ‡ü>ÿÿ€ÿÿðÿðüþ?øÃÿÿÿð‡ÿàañøÿÿÿà?À‡‡ÿÃãü?áüx|Ãþ>ÿ‡ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁðþðx>ÿÁÿ‡Áÿÿƒàà<ÁþþÿÿÿÿÿÿÿÃøx?Áÿ€ÿÿ‡Ã€øqÿü?øÿÿøàÿÿüøþ>øÿÃãðÿÿÿ‡ü>?ÿÿÿÿðÿàñóÀþ?øÿÃÿÿÿ‡ÿÃãñøÿÿü|?àÿ‡‡ÿÃãü?àøx|Ãþ>ǃÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁðþðx>ÿÁÿ‡Àÿÿƒàà~ÁþþÿÿÿÿÿÿÿÃøx?ÁÿÀÿÿ‡Ã€ü!ÿü?øÿÿøøÿÿûøü>øÿÃãøÿÿÿ‡ü>?ÿÿÿÿðÿãññðþ?øÿÃÿÿÿ‡ÃÿÃãñøÿÿü|?àÿ‡ƒóÃãü?ðpø|~€ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÁðþðx>ÿÁÿ‡àÿÿáà/þÁþþÿüÿÿÿÿÿÃøxÁþ8ÿÿ‡Ãƒÿüÿü?ü?ÿÿÿðÿÇÃÿÿñðøü~>øÿÃãøÿÿÿ‡ü>?ÿÿÿÿðÿÃááðþ|ÃÿÿÿÁñÁ€pðÿÿüñÿƒÀ€Àðøð?€àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒð?þðx>ÿÁÿ‡àÿÿÁáàþÿÁþþÿøÿÿÿÿÿÃðxÁþÿÿƒÃÁýþÿüüßÿÿðÇÃÿÿñðø?ü<>øÃãðÿÿþü>?ÿÿÿÿà?à`þ<?ÿÿàÀ`0?ÿüñþà€ÀðüðÀðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðøðx>€ÀÿÿÀð?ÿ>‡øÿÿÿÿÿpx?>ÿÿ€Àþü~ ÿÿÀÃÿÿð@üƒ€€Àðÿÿø8 ÿÿÿÿÀàpþ>??ÿÿ€ðàà ?ÿüÿãÿðÁÀðþø=ÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àðp0ÀÿÿÀp?üøÿÿÿÿü00ÿÿÀàÿø>ÿÿ€Àÿÿðü €€€ðÿø8 ÿÿ€ÿÿÀððÿÿ?ÿÿÀøøsðxÿÿÿÃÿãÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àà`Àÿÿàx?ü€€øÿÿÿÿü0ÿÿàðÿø?ÿÿ€Àÿÿðÿ>À€ÀàÿþüÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àà`€ÿÿð|Ãü€Àøÿÿÿÿþp0?ÿÿðøÿø€?€ÿÿÿÀàÿÿÿÿÿÏÿŸÿÿÿÿÿÿãüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿàðð€?€ÿüÿÿçÿÿÿà?ðþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿøÿÿÿüÿÿãÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿàÿÿÿø?ü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÀÿÿÿðà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿûÿÿÿÿÿÿÿÿïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿàÿÿÿøÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿàÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿãÿÿÿøÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÀÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿ€ÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÀÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþÀÿÿÿÏüÿÿÿøÿÿÿÿÿÿŸÿÿÿçüÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþüþ?ÿÏÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÃÿãÿÿÿÀþ?üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ü?àÿÿÿÿüÿÿÿðÿÿÿÿÿþÿÿÿ‡üÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿøüÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþOÿÿÿ‡þÿÿÿÿÿüÿÿàþÿÿ~þ‡€ÿü?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüðÿÿÿ‡þÿÿÿðÿÿÿÿþÿÿÿƒþÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿøü?ÿÿÿÿÿÿÿÿÿáÿÿÿÿûÿÿÿïÿÿÿüøÿÿÿÿÿÿÿÿÿÿÿÿà?ÿÿøøÿÿÿ‡þ?ÿÿÿÿàÿÿàüþ~>þ€þ?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüà?øðÿÿÿ>üàÿÿÿüÿÿø?ÿÿøð0€ÿðÿÀ?‘çÀðøøüÁÿÀÿÿÿÀøÀÀàxü@ÿÀ?ðÿÿÿÿÿÿÿþ!üÿÿÿ?ÿþàààð‡üÿÿÿÿÀÿÿàðü|8üðÿüááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø@ðpÿÿþðÀÿÿþx?ÿþàÿÿðà?x?€À?àðøð€ÿÿ€ðÀ@8ð?€ðÿÿÿÿÿÿÿþ1øÿÿÿÿÿààÃàp?‡þÿÿÿÿÇÿÿüøpü<>áþ 0øþ?áñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø@àðÿüÀÀÿÿüx?ÿþÀÿÿàà<p?À?ààøà?ÿÿ€ÀÀ€<ð?ðÿÿÿÿÿÿÿü1øpÿÿÿÿÿÀgÃÃÃãàð‡þÿÿÿÿÿÇÿÿøøñøx|>ÿãÿqøÿü?Ãáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø`ðpÿþàÀÿÿü<?ÿÿÀÿÿðð0à?ððüð?ÿÿÀÿÁÃøÀ‡ø ‡ðÿÿÿÿÿÿÿþ8øxÿÿÿÿÿàÿÃááóø|?‡ÿÿÿÿÿÿï‡ÿÿüÿðø||ÿáÿ8øþ?ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀðððÿþ>Áƒà?ÿÿø8|ÿÿÿƒþƒƒÿÿø?ü<<8øøøÿø<>ÿÿãÿ‡Ãø?ᆇü>?ðÿÿÿÿÿÿÿüpðÿÿÿþÿÿáÿ€àøü‡þÿÿÿÿÿðÿÿüüðÿþÿáÿqøü?ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþAüø?ð8?ÿÿþáÁðÿÿü8>ÿÿÿƒþ‡Áÿÿø?þþ<<Ÿ8ü?øü?ÿ‡ü>ÿÿáÿ‡ø?áLJü>øðÿÿÿÿÿÿÿüxÿÿÿÀÿÿáÿ€ðø|?‡ÿÿÿÿÿÿÀÿÿüøøÿÿ?áÿ8øþ?ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþAüø?ðxÿÿþððÿÿÿþ~ÿÿÿ‡þÿÿøüÿ<>? 0ø?øøÿü~>ÿÿáÿ€øã†‡ü>?€ðÿÿÿÿÿÿÿø|ÿÿÿÿÿãÿ€ðøü‡þÿÿÿÿÿÿÿüàqðÿüà?áÿqøü?Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüø?ðx?ÿÿÿàðÿÿü>ÿÿÿƒþÿÿø?þþ<€Ž8ü?øü?ÿ‡ü>ÿÿáÿ€øáLJü>ðÿÿÿÿÿÿÿø~ÿþÿÿáÿƒÿþø|‡ÿÿÿÿÿÿ‡ÿÿüáðøü|?áÿ9øü?Áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþüø?ðx?ÿÿþ€ðÿÿÿð~ÿÿÿ‡þÿÿøüø<>À 0ü?ðøÿ‡ü>?€?ÿÿãÿƒÿøá†‡ü>>ðÿüÿÿÿÿðüyðÿÿü>ÿÿãÿ‡ÿÇáø|‡þÿÀÿÿÿÿÿüááøü|?áÿqð?ü?ààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüø?ðx?ÿÿÿ€ðÿÿð~ÿÿÿƒþÿÿø?þø< Žü?øø?ÿ‡ü>€?ÿÿáÿƒÿøáLJü>ðÿø?ÿÿÿÿðþ8øÿþ?ÿÿáÿÃÿãáø|‡ÿÿÀÿÿ‡ÿÿüàÀ8?0Àðàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüø?ðxÿÿþðÿÿðp~ÿÿÿƒþÿÿÿøüðx< 0ø?ðøÿ‡ü>?ƒÿÿÿáÿƒÿøáƇü>>ðÿð?ÿÿÿÿàü0ðÿÿüÿÿÁÿÀÀø0Àÿÿÿÿàð<~àðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüøðx?ÿÿžƒð1ÿÿðp>?ÿÿŽãÿÿøþøx†8øøüÿü>ƒ?ÿÿà#Ààø?áÆ<>à?øÿÿÿÿà8ÿÿþÿÿ€ààü ?Àÿÿ€ÿÿàð><@ðüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€àø`0ÿÿ€pÿÿðÿÿ€€ÿÿøxø @øüx8 ÿÿàÀàà€8 €øÿÿÿÿÀ8ÿÿÿÿÿ€ðàþ€àÿÿàïÿÿÿÿþÿÿÇÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àø ÿÿ€pÿÿðÿÿ€Àÿÿüxøøüx8ÿÿðààà8€€ø?ÿÿÿÿà<<ÿÿÿÿÿÀüüÿ~ÿãÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àü`ÿÿ€ÀøÿÿøÿÿÀ Àÿÿüxü ?üþü8 ÿÿðøðàÂgü?ÃÿÀüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃàþpÿÿÀàøÿÿü€?ÿÿàðÿÿþüÿ<€ÿ‚ó?ÿÿÿÿþþÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿàÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÁÿÿÿÿÿÿÿÿÿþÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿøÿøÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿøÿüÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿøÿü?ÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà‡ÿÿøÁÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿðÿÁÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿüÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþñàp?ÿÿðÿÀÿÿÿðÁßÿÿÿÿ€ÿþÿÿüÿßþÿÿÿÿøÿþÿÿÿÿÿÿÿÿÿÿÿÿ€ÿðÿÿàð0ÿü?ÿÿð?ðÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÀ€?ÿÿ€?ÿÿÀÀüÿÿþ~ÿððüøÿÿÿàÀ?àçó€Aüñü?ÿÿÿÀÿÿ€à|ÿ|ÀÀøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿààÀÀ ÿÿÿÿÀàøÿÿþ<ààøøÿÿ€àÀxà|?ÿÿÿÀÿÿ€ð<~<€ÀðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀ€À ?ÿþÿÿÀÀðÿÿü< àÀððÿÿþ€€pÀ|ÿÿ€ÿ‡ÿÿÁüpx||‡‡ÀƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀ`0?ÿþ€ÿÿààð0ÿü>ðÁáðpüÿÿþƒ‡À€0ðp8?ÿÿÿðÿ‡Çÿÿáðþðü<>?ÃÁáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÀààp0ÿüÁÿÿÿàÿÁààðÿø~þƒÁàðü?ÿÿü‡Ãá†aððø~ÿÿÿðÿƒÿÿÿãðü?ñü8|~‡ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáƒà`p8ÿüáÿÿÿðáàà?ÿü†þ€àøüÿÿü ‡Çáðà x|?ÿÿÿðÿÀÿÿáðþðþ8~?ÿÇáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãààðxÿÿø?ÁÿÿÿàÿÁààÿü~þ€áÿü?ÿÿü>?ÿÃá‡@ðø~ÿÿÿðÿÀÿÿãðü?áü0ü~ÿ‡ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿƒð`p<ÿÿüƒáÿÿÿðáðàÿþ?†‡þ€áÿüÿÿü ‡ÿáàà ø|?ÿÿÿðÿðÿÿáðþðþ8~?ÿÿÇáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿààð|ÿÿøÁÿÿÿàÿÁààÿÿü>þ€ÿáÿü?ÿÿü>?ÿÃá‡aÿøü~ÿÿÿðÿÿÿááü?ðü8|~ÿÿ‡ãüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà`p~ÿÿüàÿÿÿðáààÿÿü8†þƒÿàÿüÿÿü ‡ÿáðà ÿø|?ÿÿÿðÿƒÿÿáàþð|8>?ÿ‡ûÁáüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ñÀà~ÿÿüÁÿÿÿàqÁàà8ÿø8>þ€áà|üÿÿüçÁá‡`xxx~ ?ÿÿàÿÿàüð0x?‡€ÀüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀàÿÿþÿÿðÀ`p?ÿüþÀð>?ÿþ€àÀC 0xÿÿ€€ÿÿàøü|€€ÀàüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀàÿÿÿþÿÿð€@8?ÿø?þÀð~?ÿÿ€àpÿÿ€ÿÿàðþþ€ÀÀðþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàààÿÿÿÿÿÿøÀ@<?ÿü?€þðø~?ÿÿ€€?àðð€?ÿÿ€Àÿÿáÿøÿƒÿ‚Àðð?üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððàþÿÿÿ€ÿÿøÀà~ÿÿþÿÀþøþÿÿÿÿá¿óÿðüÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþàüÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿýÿÿÿÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ÿÿÿÿÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿÿÿÿÿÿÿÿÿþÿïÿƒÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿðÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÁÿÿƒÿÿÿÿÿüÿÿÿÿþüÿƒÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÀþÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÀÿÿƒÿÿÿÿÿøÿÿÿÿþøÿƒÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿþÿÿÿÀüÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÁÿÿ‡ÿÿÿÿÿðÿÿÿÿÿøÿÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÀüÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿþðÿÿÏÿÿÿÿÿñÿÿÿÿÿÿÿÿ‡ÿÿÿÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿàÿüÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿüñÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ááþÿÿáþÿÀðÀà?üðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÁÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿü?ðÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿ‡ÿÿÿ‡ÿÿÿðÿŸÿÿà`?ÿÿþÿÿðÀ€üþø~ÿ€àÀàøàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿ‡ðÿƒø>ÿþüÿÿÿÿðÿÿñÿÿÿùÿÿÿÿÿüÿÿÿÿÿÀð?ƒƒÿÿøðƒüÿ€ÿÿÀøþðÿ‡üþ8 ÿÿÀ?€ÿÿÀ`>üÿÿÀ€ø|ð~ÿÀÀð?ð`àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒðÀüðÿÁðÿüðûÿÿÿðÿ€|à?ÿÿóùøüþÿÿÀÿÿððøÿÿÿ€àøðÿ‡üþ ÿÿÀ?€ÿÿàp<|ÿÿÀÀøð<8p?áÿãÃðÿþ?áðð8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚àÀøðÿƒðÿüàÁàÿÿðþ8€ÿÿÀðøüÿÿ€ÿÿððøþ?ÿÿ€Àððÿ‡üþ>ÿÿø?€ÿÿøøxx<ÀOÿÿ‡Ãøððüx|>?áÿãÇñÿþ?ãøxüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀððÿÁðÿüÀ€Àÿÿð~ÿÿÀàðøÿÿ€€ÿÿððþü?ÿÿÀ/Á‡àþÿ‡ÿÇÿÿÿÿü?ááÿÿøxøü>Áÿÿÿãø?ñðüx|>?áÿÿÿÇñÿþãøxüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀððÃøÿÿ‡€ÀÀÿÿð~ ÿÿÁàááðøxxÿÿãÿ‡àsÿÿøðøÿ‡ü>?ÿÿñÿÃÇááÿÿ‡ÿÇÿÿÿÿüãñÿÿøpðþ>Ãÿÿÿãøÿñðÿ€|~?áÿðñÿþ?ãøxüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Àðpð?Áüÿÿƒ‡ƒÁÀàÿÿðx~‡ÿÿáðàñðøx<ÿÿÿãþÃàÿÿÿøðø‡üÿÿñÿçÇãáÿÿ‡ÿÇÿÿ†?ÿÿüãñÿÿü1ðþÃÿÿÿáøÿðñü|~?áÿ€àñÿþãüxüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀáÁÁø@ðx?ƒþ ?ÿÿƒàáðÿÿðx8ÿÿáðààxÿÿÿãþÃáÿÿÿøðø‡þÿÿÿñÿøÃÿþÿ‡ÿÇÿÿ†?ÿÿü?ãñÿÿþ1ðþÃÿÿÿáøøøü~?áÿà€ñÿþãøxüÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿàÁàüðx?Ãþ?ÿÿ‚àáðÿÿðxÿÿáððà|ÿÿÿãþÃáÿÿÿøðø‡þÿÿñÿàÃÿþÿ‡ÿÇÿÿÀ?ÿÿü?ãñÿÿþðþ>Ãÿÿÿãøüðxü~?áÿ>‡ÇñÿþáøxüÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿàÁàððx?Ãÿ?ÿÿÀàáðÿÿðx|ÿÿáððàþÿÿãþÃáÿÿÿøðø‡ÿ€?ÿÿñÿ€Ãÿþÿ‡ÿÇÿÿÀÿÿü?ãñÿÿÿðþ?Ãÿÿÿãøüðøü~?áþÇñÿþ?àðøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿàÁààðx?ƒÿÿÿÀàáðÿÿðx|?„>ÿÿáððàù€ÿÿÃþÃáÿÿÿøðø‡þà?ÿÿñÿ‡‡Ãÿþÿ‡ÿÇÿÿàÿÿü?ãñÿÿÿð~>Ãÿÿÿ‡Ãøøðøü~?áþ‡ð#ðð@øx?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿàÁàÀ`ðx?Ãÿ€ÿÿàááðÿÿðxx?€>ÿÿÿáðãáàÿøøÿÿÃþ‡áÿÿÿøðøÿ‡ü~?ÿÿñÿ‡Ãÿÿÿ‡ÿÇÿÿàÿÿÿü?ãñÿÿÿ‡ø8?ÿÿÿðøð€ðàððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÁÁÁàðp?ƒÿ€ÿÿÿà?ƒÁàðÿÿðøxïÿÿáàÁáàüpxÿÿÃÿ‡áÿÿÿø<ðøÿ‡ü|?ÿÿáÿ‡Áýþÿ‡þ?€ðÿÿÿÀÀàÿÿ‡ü?ÿÿÀàøp ?ÀøàüðÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÀ€ÀÀ0Àÿÿÿð?€àà?ÿð88Àÿÿà`ð8ÿÿÀÿÿü`0<<?ÿÿ€€àðü|€ñÿÿÿÀÀ@ÿÿþÿ€?ÿÿààð<x ?Àÿðÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿ€€À0~?Áÿÿÿð€à?ÿà0Àÿÿà ðxÿÿþ€€ÿÿü` 8<ÿÿ€€ððü|?€ñÿÿÿÀÀ`ÿÿÿÿÀÿÿüðñü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÀÀà0þÁÿÿÿðàð?ÿààÿ€ÿÿð`üøÿÿÿà?€ÿÿþðp<~ÿÿÿ€àgüø9üÿÿÿàÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÀÀðpþ?ƒÿÿÿðÿàðÿà0>áÿÀ?ÿÿøðþþÿÿÿ€ÿÿÇÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿáü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ø?àþ}øÿ€ƒÿÿÿàÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿð ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÃüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇüÿÿðàþÿÿÿ€ÿþþøà`ÿÃðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá‡ðñðà|ÿÿÿ>þøðà<ÿÃø ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÁÀÀxÿÿþ>üàààxÿÃü>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÁƒÀàðxxÿÿþ>?áþàáááüx|ãþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?Ãáðøðùÿÿü>áÿÃãÇáüðüÃþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?áðøüøÿÿþÿáÿÇÃñÃüð?ãÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüãáðüøÿÿþáÿ‡Çÿ€ü?àÃÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?áðøü?üÿÿÿ?áÿÇÃÿÀþ?ðãÿ„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüãáðüÿÿÿÿÀ?áÿÇÿƒÿü?ðÿÿÃÿ€ÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?áñøü?ùðÿþ|ñÿÇÃÿÃÿþ?ðÿÿãÿÀÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÃáðüñøÿÿü~?áÿÃÿÃÿü?ð~?ÃÿÁÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ƒÃððü?ðøÿüà‡àøàpüø?Àÿáÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà€ð0ðÿÿü~ààðø>?ãÿà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀø0øÿÿþðððþ~ãÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðð?üpþÿÿÿÃÿÿÿüüÿÿÿÿÿÿÿÇÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà?þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀþÿÿÿÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ?øÿÿÿÿÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþàøÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøàðÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøðððÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà@ÿà?àÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿààÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿà?€ÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿà?€ÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÀÿÿÿÿÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÀ?ÿÿÿÿÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿ€~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿþüÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿüüÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿøø?ÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàüÿàð?ÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀð€ðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀà?ðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Ààÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€À?àÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ€ÿÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀÿ€ÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÀÿ€ÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?àÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðý‡ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿãÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿþÿÿÁÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿþÿÿÀÿÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ?ÿÿ€ÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿü?ÿÿ€ÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿüÿÿÀÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿøÿÿÿáÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿøÿÿÿóÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿøÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿðÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿðÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿÿàÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿàÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÀÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿ€ÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿ€?ÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøà0ÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø0ÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðàÿÿÿÿüÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðàÿÿÿÿüÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÀÿÿÿÿøðÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÀÿÿÿÿøÀÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿ€?ÿÿÿÿàÿÿÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿ€?ÿÿÿÿàÿÿ?ÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿ€ÿüÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿüÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿðÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿðÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿüÿàÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿüÿÀÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿøÿ€þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿ€þÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿàÿÿüþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÀÿþøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿ€þü?ðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿþø?ððÿü?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿüþðà à?ÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€?ÿÿÿø?üðÀÀ?ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿÿÿðüàÿ€€ÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿüÀÿ<ÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿü€þ~ÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿüüþÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿø8ÿøðþÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿðxÿøàÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿþøÿüÿ€ÿÿð?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿüüÿüÿÀÿÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿüÿÿÿüÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿüÿÿÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿþÿÿÿÿ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿþÿÿÿÿÿÁÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿ‡ÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿà?ð?üÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀàøüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿ€àðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿ‡‡‡‡ÃàáðpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÿÿÿÃÿÿÿÿþ‡ÃÃááðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãñÿÿÿáÿÿÿÿþLJÇááññøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃáÿÿÿÃÿÿÿÿü?φáÃñáùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãñÿÿÿáÿÿÿÿþÿ‡‡ááÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÿÿÿÃÿÿÿÿü?ÿ„áàðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáƒÿÿÿáÿÿÿÿþÿ€ñðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÿÿÿÃÿÿÿÿü?ÿ€~áðøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿáÿÿÿÿüÿ€?ñþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿÿÿÿÃÿÿÿÿü?ÿŒãÿÁÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿÿÿçáÿÿÿÿþç‡áÿðÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿþ?‡ÃÿÿÿþÇÃçðãøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿüÃáÿÿÿþLJ‡ÃãðñøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÿøÃþÿÿÿ‡‡‡‡ÃááðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿøÀÿÿÿÿ€ÁÀààðpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøàÿÿÿÿ€ÁàÀàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?üðÿÿÿÿààð?àðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿþ?ÿÿÿÿÿÿÿÿÿÿÿÿþÿßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒÿÿÿàÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿààÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿ€ÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿñÿ€ÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÀÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿßÿÿÿÿÿøÿÿÿÿøxÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿáðÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿø|ÿÿÿÿÿÿÿÿÿÿÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃáÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿáùÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÿÿÿø|Çÿÿàÿð?ƒüàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ñÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿñÿÿÿÿÿÿÿÿÿÿÿãùÿÿÿÿüþçÿÿøøÿÿø|~þ€Àðàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ñÁÁþÿÿøÿÿÿ‡ÿðøÿñþü8ÿÿÿÿÿÿáøüüøøÿøàÿÿøx|ü€ààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ€øðø`ÿÿÿ‡ÿÀ?àüøð ?ÿÿÿÿÿÿãàøøøðÿøÀÿÿø`ü|8~‡àáÃàáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðàp ÿÿ‡ÿ€àøøðÿøÿÿààðøpÿ‡øáÿøÃÃÿÿüø|||~àÃãáðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀàÀàpp0ÿÿ‡ÿÇàðáø?ÿðÿÿàáÃàáðøÿü0Çáÿøÿ‡ãÿÿøðüx>ü?ßáÿÇãáñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð?áðx|<|?ÿÿ‡ÿ‡ãÃàñáøþÿÿøÿÿàããáñø=ÿ‡ü8ãñÿøƒÿÿøAð<üàáÿÇÿáðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÃðxüx|?ÿÿ‡þ‡çÇÁñãðþÿÿøÿÿãÿƒãñðÿüqÇáÿøÿ€ÿÿøað|ü€áÿ‡ÿãñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ðÿãøx|<~?ÿÿ‡ÿøÃñàþÿÿÿÿÿÿÿáÏðãÿüÿ‡þ8ãñÿø€ÿÿüpð|áÿÇÿáðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÃøpüx|?ÿÿ‡öÀÃáÀþ?ÿÿÿÿÿÿÿãßàÃÿüÿüqÇáÿøÿÿÿÿøpðÿýÀ|?þáÿ‡ÿáñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÃøx|<~?ÿÿ‡âÀÃðàþÿÿÿÿÿÿÿáÿÀãáÿùà‡þ8ãðÿø‡ÿÿÿøxpø|>þñÿÃÿáðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãðÿÃøøøx|?ÿÿâÿ‡ÇÃáÃÿþ?ÿÿÿÿÿÿÿãÿ‡ÃÃÿñðÿüqÇáÿøÿ‡ÿÿÿøxpxø~žáÿÁñááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒáøÿáøx|<âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÏÿÿÿÿøüÿÿøäÿÿñÿÿÿÿÿÿÿÿÿþÿÿÿŽ!ÇŽ<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿþÿýçÿøæ@Âyø|cüÇÿÿÿÿÿÿÿÿxÃÆ>?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÿÿÿÿ‡ÿÿÿÿùøpÿø@1à8ðƒÿÿÿÿÿÃÿÿøÇŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃàxàpàø0ÿøà9Ààƒÿÿÿÿÿ!€ÿÿüdÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ€pÀ À?üp!ÿøáÆqÆ8ãÇÿÿÿÿþ0Ÿÿ1ø|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ„!ƒc‡‚0†ü|qÿøçñÇñà8ãÿÿÿÿÿÿ8<ÿØ8üg†?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀ!€LŽ?üxaÿðþqÆñÀ8Çÿÿÿÿÿþ8<ÿàñøÇÄ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ€0Ä€|þ|qÿøþqÆñÇ8ã‡Çÿÿÿÿÿ>>?ÿ‡ØøGÆ~?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ ˆ€8üŽ?üxáÿðpa†ñÄ 0ã‡ÿÿÿÿü>ÿ€`0ÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿð?ƒÿÿþÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏÿÿÿÿø?ÿðððïÿÿÿÿÿÿÿÿÿÆ8ÿÁðñÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿð>ÿÿþÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÿÿÿÿøÿàà`Cÿÿÿÿÿÿÿÿÿpÿñùùÿÿÿÿÿÿÿÿÿü?ÿÿÿÿÿÿþÿÿÿ‡ÿÿŽGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿø?ÿÁƒÄ@Gÿÿÿÿÿÿÿÿÿ1ðÿñóáø~àÿÿÿüÿÿÿÿÿÿþ?‡€xÿÿŒF€ð8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÁÿÿÿŸÿùùßÿþÿƒáâBgÿÿÿÿÿÿÿÿÿˆøøóàð@?ÿÿÿüø>?ÿÿþ€8ÿÿ€fà?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃàpà`à?ÿ‡á‡Àøÿÿÿÿÿ1øÿøãñà„F?ÿÿÿüàøÿþ?! ÿÿ€|cÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÀ0À0Àÿ‡ð€‡Àp‡ÿÿÿÿÿøøcøãÃÄFÿÿÿüápÿþ?xâ#‡ÿÿ€|Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà†C‡†D1„ÿñÃÁÇ„a‡ÿÿÿÿÿøÿüGñLJÀ?ÿÿÿü¡pÿþ? #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef struct { int used_domain, wanted_domain, type, used_protocol, wanted_protocol; char unix_path[256]; struct sockaddr_storage sockname, peername; unsigned int open:1, bound:1, connected:1; } socket_t; typedef struct { struct sockaddr_un path; struct sockaddr_storage address; socklen_t addrlen; } peer_t; #define MAX_SOCKETS 4096 static socket_t real_sockets[MAX_SOCKETS]; static unsigned int anon_sock_inc; static peer_t remote_peers[MAX_SOCKETS]; static unsigned int anon_peer_inc; static pthread_mutex_t remote_peers_lock = PTHREAD_MUTEX_INITIALIZER; static void do_init(void) __attribute__((constructor)); static void do_exit(void) __attribute__((destructor)); static socklen_t anon_addr(int domain, struct sockaddr_storage *sst, unsigned int id, unsigned int id2); static void do_init(void) { setenv("RTPE_PRELOAD_TEST_ACTIVE", "1", 1); } static void do_exit(void) { for (int i = 0; i < MAX_SOCKETS; i++) { socket_t *s = &real_sockets[i]; if (!s->open) continue; if (s->used_domain != AF_UNIX) continue; if (s->wanted_domain == AF_UNIX) continue; unlink(s->unix_path); } } static const char *path_prefix(void) { char *ret = getenv("TEST_SOCKET_PATH"); if (ret) return ret; return "/tmp"; } int socket(int domain, int type, int protocol) { int use_domain = domain; int use_protocol = protocol; if (domain == AF_INET || domain == AF_INET6) { use_domain = AF_UNIX; use_protocol = 0; } int (*real_socket)(int, int, int) = dlsym(RTLD_NEXT, "socket"); int fd = real_socket(use_domain, type, use_protocol); if (fd < 0 || fd >= MAX_SOCKETS) { fprintf(stderr, "preload socket(): fd out of bounds (fd %i)\n", fd); return fd; } real_sockets[fd] = (socket_t) { .used_domain = use_domain, .wanted_domain = domain, .type = type, .used_protocol = use_protocol, .wanted_protocol = protocol, .open = 1, }; return fd; } static const char *addr_translate(struct sockaddr_un *sun, const struct sockaddr *addr, socklen_t addrlen, int allow_anon) { const char *err; char sockname[64]; const char *any_name; unsigned int port; switch (addr->sa_family) { case AF_INET:; struct sockaddr_in *sin = (void *) addr; err = "addrlen too short"; if (addrlen < sizeof(*sin)) goto err; err = "failed to print network address"; if (!inet_ntop(addr->sa_family, &sin->sin_addr, sockname, sizeof(sockname))) goto err; any_name = "0.0.0.0"; port = ntohs(sin->sin_port); break; case AF_INET6:; struct sockaddr_in6 *sin6 = (void *) addr; err = "addrlen too short"; if (addrlen < sizeof(*sin6)) goto err; err = "failed to print network address"; if (!inet_ntop(addr->sa_family, &sin6->sin6_addr, sockname, sizeof(sockname))) goto err; any_name = "::"; port = ntohs(sin6->sin6_port); break; default: goto skip; } int do_specific = 1; if (allow_anon) { err = "Unix socket path truncated"; if (snprintf(sun->sun_path, sizeof(sun->sun_path), "%s/[%s]:%u", path_prefix(), any_name, port) >= sizeof(sun->sun_path)) goto err; struct stat sb; int ret = stat(sun->sun_path, &sb); if (ret == 0 && sb.st_mode & S_IFSOCK) do_specific = 0; } if (do_specific) { err = "Unix socket path truncated"; if (snprintf(sun->sun_path, sizeof(sun->sun_path), "%s/[%s]:%u", path_prefix(), sockname, port) >= sizeof(sun->sun_path)) goto err; } sun->sun_family = AF_UNIX; return NULL; skip: return ""; // special return value err: return err; } void addr_translate_reverse(struct sockaddr_storage *sst, socklen_t *socklen, int wanted_domain, const struct sockaddr_un *sun) { assert(sun->sun_family == AF_UNIX); const char *path = sun->sun_path; assert(strlen(path) > 0); const char *pref = path_prefix(); if (strncmp(path, pref, strlen(pref))) { fprintf(stderr, "preload addr_translate_reverse(): received from unknown peer '%s'\n", path); return; } path += strlen(pref); if (path[0] != '/') { fprintf(stderr, "preload addr_translate_reverse(): received from unknown peer '%s'\n", path); return; } path++; struct sockaddr_in sin = {0,}; struct sockaddr_in6 sin6 = {0,}; socklen_t addrlen; struct sockaddr *sa = NULL; if (!strncmp(path, "ANON.", 5)) { pthread_mutex_lock(&remote_peers_lock); peer_t *p = NULL; for (unsigned int i = 0; i < anon_peer_inc; i++) { p = &remote_peers[i]; if (!strcmp(p->path.sun_path, path)) goto got_peer; } assert(anon_peer_inc < MAX_SOCKETS); // generate new fake remote response address p = &remote_peers[anon_peer_inc++]; p->path = *sun; p->addrlen = anon_addr(wanted_domain, &p->address, anon_peer_inc, getpid()); got_peer: pthread_mutex_unlock(&remote_peers_lock); addrlen = p->addrlen; sa = (struct sockaddr *) &p->address; } else if (path[0] == '[') { path++; char *end = strchr(path, ']'); assert(end != NULL); char addr[64]; if (snprintf(addr, sizeof(addr), "%.*s", (int) (end - path), path) >= sizeof(addr)) abort(); end++; assert(*end == ':'); end++; int port = atoi(end); assert(port != 0); if (inet_pton(AF_INET, addr, &sin.sin_addr)) { sin.sin_family = AF_INET; sin.sin_port = htons(port); sa = (struct sockaddr *) &sin; addrlen = sizeof(sin); } else if (inet_pton(AF_INET6, addr, &sin6.sin6_addr)) { sin6.sin6_family = AF_INET6; sin6.sin6_port = htons(port); sa = (struct sockaddr *) &sin6; addrlen = sizeof(sin6); } else abort(); } else abort(); assert(addrlen <= sizeof(*sst)); memset(sst, 0, sizeof(*sst)); memcpy(sst, sa, addrlen); *socklen = addrlen; } int bind(int fd, const struct sockaddr *addr, socklen_t addrlen) { const char *err; int (*real_bind)(int, const struct sockaddr *, socklen_t) = dlsym(RTLD_NEXT, "bind"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_bind_warn; socket_t *s = &real_sockets[fd]; err = "fd not open"; if (!s->open) goto do_bind_warn; if (s->used_domain != AF_UNIX) goto do_bind; assert(s->wanted_domain == addr->sa_family); struct sockaddr_un sun; err = addr_translate(&sun, addr, addrlen, 0); if (err) { if (!err[0]) goto do_bind; goto do_bind_warn; } struct sockaddr_storage sst = {0,}; if (addrlen > sizeof(sst)) goto do_bind_warn; memcpy(&sst, addr, addrlen); addr = (void *) &sun; addrlen = sizeof(sun); if (s->unix_path[0]) unlink(s->unix_path); assert(sizeof(s->unix_path) >= strlen(sun.sun_path)); strcpy(s->unix_path, sun.sun_path); s->sockname = sst; s->bound = 1; goto do_bind; do_bind_warn: fprintf(stderr, "preload bind(): %s (fd %i)\n", err, fd); do_bind: return real_bind(fd, addr, addrlen); } static socklen_t anon_addr(int domain, struct sockaddr_storage *sst, unsigned int id, unsigned int id2) { memset(sst, 0, sizeof(*sst)); socklen_t ret = -1; switch (domain) { case AF_INET:; struct sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons(id); sin.sin_addr.s_addr = id2; memcpy(sst, &sin, sizeof(sin)); ret = sizeof(sin); break; case AF_INET6:; struct sockaddr_in6 sin6; sin6.sin6_family = AF_INET6; sin6.sin6_port = htons(id); memset(&sin6.sin6_addr, -1, sizeof(sin6.sin6_addr)); sin6.sin6_addr.s6_addr16[4] = id2; memcpy(sst, &sin6, sizeof(sin6)); ret = sizeof(sin6); break; } return ret; } static void check_bind(int fd) { // to make inspecting the peer address on the receiving end possible, we must bind // to some unix path name if (fd < 0 || fd >= MAX_SOCKETS) return; socket_t *s = &real_sockets[fd]; if (!s->open) return; if (s->bound) return; if (s->wanted_domain == AF_UNIX || s->used_domain != AF_UNIX) return; struct sockaddr_storage sst; unsigned int auto_inc = __sync_fetch_and_add(&anon_sock_inc, 1); anon_addr(s->wanted_domain, &sst, auto_inc, getpid()); struct sockaddr_un sun; sun.sun_family = AF_UNIX; if (snprintf(sun.sun_path, sizeof(sun.sun_path), "%s/ANON.%u.%u", path_prefix(), getpid(), auto_inc) >= sizeof(sun.sun_path)) fprintf(stderr, "preload socket(): failed to print anon (fd %i)\n", fd); assert(sizeof(real_sockets[fd].unix_path) >= strlen(sun.sun_path)); strcpy(real_sockets[fd].unix_path, sun.sun_path); int (*real_bind)(int, const struct sockaddr *, socklen_t) = dlsym(RTLD_NEXT, "bind"); if (real_bind(fd, (struct sockaddr *) &sun, sizeof(sun))) fprintf(stderr, "preload socket(): failed to bind to anon (fd %i): %s\n", fd, strerror(errno)); s->bound = 1; } int close(int fd) { const char *err; int (*real_close)(int) = dlsym(RTLD_NEXT, "close"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_close_warn; socket_t *s = &real_sockets[fd]; if (!s->open) goto do_close; s->open = 0; s->connected = 0; if (s->used_domain == AF_UNIX && s->wanted_domain != AF_UNIX && s->unix_path[0]) unlink(s->unix_path); goto do_close; do_close_warn: fprintf(stderr, "preload close(): %s (fd %i)\n", err, fd); do_close: return real_close(fd); } int getsockname(int fd, struct sockaddr *addr, socklen_t *addrlen) { check_bind(fd); const char *err; int (*real_getsockname)(int, struct sockaddr *, socklen_t *) = dlsym(RTLD_NEXT, "getsockname"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_getsockname_warn; socket_t *s = &real_sockets[fd]; if (!s->open) goto do_getsockname; if (s->used_domain != AF_UNIX || s->wanted_domain == AF_UNIX || !s->bound) goto do_getsockname; switch (s->wanted_domain) { case AF_INET: if (*addrlen < sizeof(struct sockaddr_in)) memcpy(addr, &s->sockname, *addrlen); else memcpy(addr, &s->sockname, sizeof(struct sockaddr_in)); *addrlen = sizeof(struct sockaddr_in); break; case AF_INET6: if (*addrlen < sizeof(struct sockaddr_in6)) memcpy(addr, &s->sockname, *addrlen); else memcpy(addr, &s->sockname, sizeof(struct sockaddr_in6)); *addrlen = sizeof(struct sockaddr_in6); break; default: goto do_getsockname; } return 0; do_getsockname_warn: fprintf(stderr, "preload getsockname(): %s (fd %i)\n", err, fd); do_getsockname: return real_getsockname(fd, addr, addrlen); } int getpeername(int fd, struct sockaddr *addr, socklen_t *addrlen) { check_bind(fd); const char *err; int (*real_getpeername)(int, struct sockaddr *, socklen_t *) = dlsym(RTLD_NEXT, "getpeername"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_getpeername_warn; socket_t *s = &real_sockets[fd]; if (!s->open) goto do_getpeername; if (s->used_domain != AF_UNIX || s->wanted_domain == AF_UNIX || !s->bound) goto do_getpeername; if (!s->connected) goto do_getpeername; switch (s->wanted_domain) { case AF_INET: if (*addrlen < sizeof(struct sockaddr_in)) memcpy(addr, &s->peername, *addrlen); else memcpy(addr, &s->peername, sizeof(struct sockaddr_in)); *addrlen = sizeof(struct sockaddr_in); break; case AF_INET6: if (*addrlen < sizeof(struct sockaddr_in6)) memcpy(addr, &s->peername, *addrlen); else memcpy(addr, &s->peername, sizeof(struct sockaddr_in6)); *addrlen = sizeof(struct sockaddr_in6); break; default: goto do_getpeername; } return 0; do_getpeername_warn: fprintf(stderr, "preload getpeername(): %s (fd %i)\n", err, fd); do_getpeername: return real_getpeername(fd, addr, addrlen); } int connect(int fd, const struct sockaddr *addr, socklen_t addrlen) { check_bind(fd); socket_t *s = NULL; const char *err; int (*real_connect)(int, const struct sockaddr *, socklen_t) = dlsym(RTLD_NEXT, "connect"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_connect_warn; s = &real_sockets[fd]; err = "fd not open"; if (!s->open) goto do_connect_warn; assert(s->used_domain == AF_UNIX); assert(s->wanted_domain == addr->sa_family); struct sockaddr_un sun; err = addr_translate(&sun, addr, addrlen, 1); if (err) { if (!err[0]) goto do_connect; goto do_connect_warn; } struct sockaddr_storage sst = {0,}; if (addrlen > sizeof(sst)) goto do_connect_warn; memcpy(&sst, addr, addrlen); s->peername = sst; addr = (void *) &sun; addrlen = sizeof(sun); goto do_connect; do_connect_warn: fprintf(stderr, "preload connect(): %s (fd %i)\n", err, fd); do_connect:; int ret = real_connect(fd, addr, addrlen); if (ret == 0 && s) s->connected = 1; return ret; } int accept(int fd, struct sockaddr *addr, socklen_t *addrlen) { const char *err; int (*real_accept)(int, struct sockaddr *, socklen_t *) = dlsym(RTLD_NEXT, "accept"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_accept_warn; socket_t *s = &real_sockets[fd]; err = "fd not open"; if (!s->open) goto do_accept_warn; assert(s->used_domain == AF_UNIX); goto do_accept; do_accept_warn: fprintf(stderr, "preload accept(): %s (fd %i)\n", err, fd); do_accept:; struct sockaddr_un sun; socklen_t sun_len = sizeof(sun); int new_fd = real_accept(fd, (struct sockaddr *) &sun, &sun_len); if (new_fd == -1) return -1; if (new_fd < 0 || new_fd >= MAX_SOCKETS || real_sockets[new_fd].open) { fprintf(stderr, "preload accept(): new_fd out of bounds (%i/%i)\n", fd, new_fd); return -1; } assert(sun.sun_family == AF_UNIX); socket_t *new_s = &real_sockets[new_fd]; *new_s = *s; assert(sun_len < sizeof(new_s->sockname)); assert(sizeof(new_s->unix_path) >= strlen(sun.sun_path)); strcpy(new_s->unix_path, sun.sun_path); memset(&new_s->sockname, 0, sizeof(new_s->sockname)); new_s->open = 1; new_s->connected = 1; struct sockaddr_storage sst; socklen_t socklen; addr_translate_reverse(&sst, &socklen, new_s->wanted_domain, &sun); assert(socklen <= *addrlen); memset(addr, 0, *addrlen); memcpy(addr, &sst, socklen); *addrlen = socklen; assert(s->wanted_domain == addr->sa_family); new_s->peername = sst; return new_fd; } int dup(int fd) { int (*real_dup)(int) = dlsym(RTLD_NEXT, "dup"); int ret = real_dup(fd); if (fd < 0 || fd >= MAX_SOCKETS || ret < 0 || ret >= MAX_SOCKETS) { fprintf(stderr, "preload dup(): fd out of bounds (%i/%i)\n", fd, ret); return ret; } real_sockets[ret] = real_sockets[fd]; return ret; } int dup2(int oldfd, int newfd) { int (*real_dup2)(int, int) = dlsym(RTLD_NEXT, "dup2"); int ret = real_dup2(oldfd, newfd); if (ret != newfd || oldfd < 0 || oldfd >= MAX_SOCKETS || newfd < 0 || newfd >= MAX_SOCKETS) { fprintf(stderr, "preload dup(): fd out of bounds (%i/%i/%i)\n", oldfd, newfd, ret); return ret; } if (real_sockets[newfd].open) { if (real_sockets[newfd].used_domain == AF_UNIX && real_sockets[newfd].unix_path[0]) unlink(real_sockets[newfd].unix_path); } real_sockets[newfd] = real_sockets[oldfd]; return ret; } ssize_t recvmsg(int fd, struct msghdr *msg, int flags) { const char *err; ssize_t (*real_recvmsg)(int, struct msghdr *, int) = dlsym(RTLD_NEXT, "recvmsg"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_recvmsg_warn; socket_t *s = &real_sockets[fd]; err = "fd not open"; if (!s->open) goto do_recvmsg_warn; if (s->used_domain != AF_UNIX || s->wanted_domain == AF_UNIX) goto do_recvmsg; struct sockaddr_un sun; struct sockaddr *sa_orig = NULL; socklen_t sa_len; if (msg->msg_name) { sa_orig = msg->msg_name; sa_len = msg->msg_namelen; msg->msg_name = &sun; msg->msg_namelen = sizeof(sun); } ssize_t ret = real_recvmsg(fd, msg, flags); if (ret <= 0) goto out; if (sa_orig && msg->msg_name) { struct sockaddr_storage sst; socklen_t addrlen; addr_translate_reverse(&sst, &addrlen, s->wanted_domain, &sun); assert(addrlen <= sa_len); memcpy(sa_orig, &sst, addrlen); msg->msg_name = sa_orig; msg->msg_namelen = sa_len; } goto out; out: return ret; do_recvmsg_warn: fprintf(stderr, "preload recvmsg(): %s (fd %i)\n", err, fd); do_recvmsg: return real_recvmsg(fd, msg, flags); } ssize_t send(int fd, const void *buf, size_t len, int flags) { check_bind(fd); ssize_t (*real_send)(int, const void *, size_t, int) = dlsym(RTLD_NEXT, "send"); return real_send(fd, buf, len, flags); } static const struct sockaddr *addr_find(const struct sockaddr *addr, socklen_t *addrlen) { pthread_mutex_lock(&remote_peers_lock); for (unsigned int i = 0; i < anon_peer_inc; i++) { peer_t *p = &remote_peers[i]; if (p->address.ss_family != addr->sa_family) continue; switch (p->address.ss_family) { case AF_INET:{ struct sockaddr_in *a = (struct sockaddr_in *) addr, *b = (struct sockaddr_in *) &p->address; if (a->sin_port != b->sin_port) continue; if (a->sin_addr.s_addr != b->sin_addr.s_addr) continue; break; } case AF_INET6:{ struct sockaddr_in6 *a = (struct sockaddr_in6 *) addr, *b = (struct sockaddr_in6 *) &p->address; if (a->sin6_port != b->sin6_port) continue; if (memcmp(&a->sin6_addr, &b->sin6_addr, sizeof(a->sin6_addr))) continue; break; } default: continue; } // match *addrlen = sizeof(p->path); pthread_mutex_unlock(&remote_peers_lock); return (struct sockaddr *) &p->path; } pthread_mutex_unlock(&remote_peers_lock); return NULL; } static const struct sockaddr *addr_send_translate(const struct sockaddr *addr, socklen_t *addrlen) { const struct sockaddr *ret = addr_find(addr, addrlen); if (ret) return ret; static __thread struct sockaddr_un sun; const char *err = addr_translate(&sun, addr, *addrlen, 0); if (!err) { *addrlen = sizeof(sun); return (void *) &sun; } if (err[0]) fprintf(stderr, "preload addr_send_translate(): %s\n", err); return addr; } ssize_t sendto(int fd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t addrlen) { check_bind(fd); ssize_t (*real_sendto)(int, const void *, size_t, int, const struct sockaddr *, socklen_t) = dlsym(RTLD_NEXT, "sendto"); addr = addr_send_translate(addr, &addrlen); return real_sendto(fd, buf, len, flags, addr, addrlen); } ssize_t sendmsg(int fd, const struct msghdr *msg, int flags) { check_bind(fd); ssize_t (*real_sendmsg)(int, const struct msghdr *, int) = dlsym(RTLD_NEXT, "sendmsg"); struct msghdr msg2 = *msg; if (msg2.msg_name) msg2.msg_name = (void *) addr_send_translate(msg2.msg_name, &msg2.msg_namelen); return real_sendmsg(fd, &msg2, flags); } int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen) { const char *err; int (*real_setsockopt)(int, int, int, const void *, socklen_t) = dlsym(RTLD_NEXT, "setsockopt"); err = "fd out of bounds"; if (fd < 0 || fd >= MAX_SOCKETS) goto do_set_warn; socket_t *s = &real_sockets[fd]; err = "fd not open"; if (!s->open) goto do_set_warn; assert(s->used_domain == AF_UNIX); switch (s->wanted_domain) { case AF_INET: if (level == SOL_IP && optname == IP_TOS) return 0; if (level == IPPROTO_TCP && optname == TCP_NODELAY) return 0; break; case AF_INET6: if (level == SOL_IPV6 && optname == IPV6_V6ONLY) return 0; if (level == SOL_IPV6 && optname == IPV6_TCLASS) return 0; if (level == IPPROTO_TCP && optname == TCP_NODELAY) return 0; break; } goto do_set; do_set_warn: fprintf(stderr, "preload setsockopt(): %s (fd %i)\n", err, fd); do_set: return real_setsockopt(fd, level, optname, optval, optlen); } rtpengine-mr12.5.1.22/t/time-fudge-preload.c000066400000000000000000000030171474347554000204530ustar00rootroot00000000000000#include #include #include #include #include static inline long long timeval_us(const struct timeval *t) { return (long long) ((long long) t->tv_sec * 1000000LL) + t->tv_usec; } static inline void timeval_from_us(struct timeval *t, long long us) { t->tv_sec = us/1000000LL; t->tv_usec = us%1000000LL; } static inline long long timespec_ns(const struct timespec *t) { return (long long) ((long long) t->tv_sec * 1000000000LL) + t->tv_nsec; } static inline void timespec_from_ns(struct timespec *t, long long ns) { t->tv_sec = ns/1000000000LL; t->tv_nsec = ns%1000000000LL; } static long long offset = 0; int gettimeofday(struct timeval *restrict tv, void *restrict tz) { __typeof__ (gettimeofday) *fn = dlsym(RTLD_NEXT, "gettimeofday"); int ret = fn(tv, tz); if (ret) return ret; long r = random(); if (r < ((1L<<31) / 100)) { // 1% chance long long add = random() & 0xffff; offset += add; fprintf(stderr, "moving clock forward by %lli us\n", add); } long long tvs = timeval_us(tv); tvs += offset; timeval_from_us(tv, tvs); return ret; } int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime) { __typeof__ (pthread_cond_timedwait) *fn = dlsym(RTLD_NEXT, "pthread_cond_timedwait"); if (!abstime) return fn(cond, mutex, abstime); struct timespec tn; long long ns = timespec_ns(abstime); ns -= offset * 1000LL; timespec_from_ns(&tn, ns); return fn(cond, mutex, &tn); } rtpengine-mr12.5.1.22/tests/000077500000000000000000000000001474347554000155335ustar00rootroot00000000000000rtpengine-mr12.5.1.22/tests/.gitignore000066400000000000000000000000421474347554000175170ustar00rootroot00000000000000sdp-parse-test kernel-module-test rtpengine-mr12.5.1.22/tests/kernel-module-test.c000066400000000000000000001203551474347554000214250ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include #include "xt_RTPENGINE.h" #define NUM_SOCKETS 41 #define PORT_BASE 36000 #define LOCALHOST htonl(0x7f000001) #define LEN(x) (sizeof(x)-1) #define MSGLEN(op, buf, len, args...) \ printf("exec %s:%i\n", __FILE__, __LINE__); \ rm = malloc(sizeof(*rm) + len); \ *rm = (struct rtpengine_message) { .cmd = op, .u = { args } }; \ if (len) \ memcpy(&rm->data, buf, len); \ ret = write(fd, rm, sizeof(*rm) + len); \ printf("ret = %i\n", ret); \ if (ret == -1) \ printf("errno = %s\n", strerror(errno)); \ assert(ret == sizeof(*rm) + len); \ free(rm); #define MSG(op, args...) MSGLEN(op, NULL, 0, args) #define MSGBUF(op, buf, args...) MSGLEN(op, buf, LEN(buf), args) #define SND(sock, port, data) \ printf("exec %s:%i\n", __FILE__, __LINE__); \ { \ struct sockaddr_in sin = { \ .sin_family = AF_INET, \ .sin_port = htons(PORT_BASE + port), \ .sin_addr = { LOCALHOST }, \ }; \ ssize_t ret = sendto(fds[sock], data, LEN(data), 0, (struct sockaddr *) &sin, sizeof(sin)); \ printf("ret = %zi\n", ret); \ assert(ret == LEN(data)); \ } #define EXP(sock, data) \ printf("exec %s:%i\n", __FILE__, __LINE__); \ { \ char buf[65535]; \ alarm(1); \ ssize_t ret = recv(fds[sock], buf, sizeof(buf), 0); \ alarm(0); \ printf("ret = %zi, expect = %zi\n", ret, LEN(data)); \ assert(ret == LEN(data)); \ buf[ret] = '\0'; \ printf("data ="); \ for (int __i = 0; __i < ret; __i++) \ printf(" %02x", (unsigned char) buf[__i]); \ printf("\n"); \ assert(memcmp(data, buf, LEN(data)) == 0); \ } #define EXPF(sock, data, port) \ printf("exec %s:%i\n", __FILE__, __LINE__); \ { \ struct sockaddr_in sin = { 0, }; \ socklen_t sinlen = sizeof(sin); \ char buf[65535]; \ alarm(1); \ ssize_t ret = recvfrom(fds[sock], buf, sizeof(buf), 0, (struct sockaddr *) &sin, &sinlen); \ alarm(0); \ printf("ret = %zi, expect = %zi\n", ret, LEN(data)); \ assert(ret == LEN(data)); \ buf[ret] = '\0'; \ printf("data ="); \ for (int __i = 0; __i < ret; __i++) \ printf(" %02x", (unsigned char) buf[__i]); \ printf("\n"); \ assert(memcmp(data, buf, LEN(data)) == 0); \ assert(sin.sin_family == AF_INET); \ assert(sin.sin_addr.s_addr == LOCALHOST); \ assert(sin.sin_port == htons(PORT_BASE + port)); \ } int main(void) { int fd = open("/proc/rtpengine/0/control", O_RDWR); assert(fd != -1); struct rtpengine_message *rm; int ret; MSG(REMG_NOOP, .noop = { .size = sizeof(*rm), .last_cmd = __REMG_LAST, }, ); // open a bunch of sockets int fds[NUM_SOCKETS]; for (int i = 0; i < NUM_SOCKETS; i++) { fds[i] = socket(AF_INET, SOCK_DGRAM, 0); assert(fds[i] != -1); struct sockaddr_in sin = { .sin_family = AF_INET, .sin_port = htons(PORT_BASE + i), .sin_addr = { LOCALHOST }, }; int ret = bind(fds[i], (struct sockaddr *) &sin, sizeof(sin)); assert(ret == 0); } // non-forwarding MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 0, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 8888, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 0, .non_forwarding = 1, }, ); SND(40, 0, "one"); EXP(0, "one"); // forwarding, incomplete MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 1, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 9999, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, }, ); SND(40, 1, "two"); EXP(1, "two"); // forwarding MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 2, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 2, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 3, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 4, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); SND(40, 2, "three"); EXPF(4, "three", 3); // RTCP output MSGBUF(REMG_SEND_RTCP, "foo", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 2, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 3, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 4, }, }, ); EXPF(4, "foo", 3); // multi forwarding, incomplete MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 5, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 2, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 5, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 6, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 7, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); SND(40, 5, "four"); EXP(5, "four"); // multi forwarding MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 2, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 9, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 10, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .num = 1, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 11, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 12, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); SND(40, 8, "five"); EXPF(10, "five", 9); EXPF(12, "five", 11); // RTCP output MSGLEN(REMG_SEND_RTCP, "foo", 3, .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 9, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 10, }, }, ); EXPF(10, "foo", 9); MSGLEN(REMG_SEND_RTCP, "foo", 3, .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .destination_idx = 1, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 11, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 12, }, }, ); EXPF(12, "foo", 11); // RTCP output MSGBUF(REMG_SEND_RTCP, "foo", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 9, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 10, }, }, ); EXPF(10, "foo", 9); MSGBUF(REMG_SEND_RTCP, "foo", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 8, }, .destination_idx = 1, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 11, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 12, }, }, ); EXPF(12, "foo", 11); // multi forwarding RTP/SRTP MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 4, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0xf, .clock_rate = 8000, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 14, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 15, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .num = 1, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 16, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 17, }, .encrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .rtcp_auth_tag_len = 10, .master_key = {0xe1, 0xf9, 0x7a, 0x0d, 0x3e, 0x01, 0x8b, 0xe0, 0xd6, 0x4f, 0xa3, 0x2c, 0x06, 0xde, 0x41, 0x39}, .master_salt = {0x0e, 0xc6, 0x75, 0xad, 0x49, 0x8a, 0xfe, 0xeb, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6}, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .num = 2, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 18, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 19, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .num = 3, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 20, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 21, }, .encrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .rtcp_auth_tag_len = 10, .master_key = {0xe1, 0xf9, 0x7a, 0x0d, 0x3e, 0x01, 0x8b, 0xe0, 0xd6, 0x4f, 0xa3, 0x2c, 0x06, 0xde, 0x41, 0x39}, .master_salt = {0x0e, 0xc6, 0x75, 0xad, 0x49, 0x8a, 0xfe, 0xeb, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6}, }, }, }, ); SND(40, 13, "\x80\x0f\x12\x34\xde\xca\xfb\xad\xca\xfe\xba\xbe\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab"); EXPF(15, "\x80\x0f\x12\x34\xde\xca\xfb\xad\xca\xfe\xba\xbe\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab", 14); EXPF(17, "\x80\x0f\x12\x34\xde\xca\xfb\xad\xca\xfe\xba\xbe\x4e\x55\xdc\x4c\xe7\x99\x78\xd8\x8c\xa4\xd2\x15\x94\x9d\x24\x02\xb7\x8d\x6a\xcc\x99\xea\x17\x9b\x8d\xbb", 16); EXPF(19, "\x80\x0f\x12\x34\xde\xca\xfb\xad\xca\xfe\xba\xbe\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab\xab", 18); EXPF(21, "\x80\x0f\x12\x34\xde\xca\xfb\xad\xca\xfe\xba\xbe\x4e\x55\xdc\x4c\xe7\x99\x78\xd8\x8c\xa4\xd2\x15\x94\x9d\x24\x02\xb7\x8d\x6a\xcc\x99\xea\x17\x9b\x8d\xbb", 20); // RTCP/SRTCP output MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 14, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 15, }, }, ); EXPF(15, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", 14); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .destination_idx = 1, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 16, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 17, }, }, ); EXPF(17, "\x81\xc8\x00\x0c\x00\x00\x16\x1c\x1c\xbb\xae\x0a\x56\x45\x3d\x64\x42\xe8\x47\x9d\xad\x5e\xad\xe1\x86\x48\x31\x43\xe3\x96\x93\x53\xa9\x4e\xed\x80\xd8\x50\xd3\x6b\xe6\x5e\xaf\x53\x19\xd1\xcb\x72\x2b\xcf\x8c\x10\x67\x8f\x12\x76\x74\xf1\x1d\x09\x30\x55\xb5\xb7\x9f\xef\xb4\x8b\xde\x32\x30\x5b\x80\x9f\x79\xed\x80\x00\x00\x00\x8d\x1f\x12\x4d\x03\x9e\x47\x7e\x76\xbc", 16); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .destination_idx = 3, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 20, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 21, }, }, ); EXPF(21, "\x81\xc8\x00\x0c\x00\x00\x16\x1c\x1c\xbb\xae\x0a\x56\x45\x3d\x64\x42\xe8\x47\x9d\xad\x5e\xad\xe1\x86\x48\x31\x43\xe3\x96\x93\x53\xa9\x4e\xed\x80\xd8\x50\xd3\x6b\xe6\x5e\xaf\x53\x19\xd1\xcb\x72\x2b\xcf\x8c\x10\x67\x8f\x12\x76\x74\xf1\x1d\x09\x30\x55\xb5\xb7\x9f\xef\xb4\x8b\xde\x32\x30\x5b\x80\x9f\x79\xed\x80\x00\x00\x00\x8d\x1f\x12\x4d\x03\x9e\x47\x7e\x76\xbc", 20); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 13, }, .destination_idx = 3, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 20, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 21, }, }, ); EXPF(21, "\x81\xc8\x00\x0c\x00\x00\x16\x1c\xd0\x93\x46\xcf\xb7\xce\x6d\x5a\x3f\xcb\xbc\x2c\xf6\x6b\xa0\xc7\x8a\x24\x17\xa1\x00\x6f\x60\x03\xd0\xec\xa9\x54\x89\x55\x08\xb2\x36\xf0\xd4\xef\x18\xd9\xcb\x8e\x73\xf8\x24\xce\x15\x30\xb3\x59\xc6\xe3\xd0\xce\x60\x2f\xb3\xed\xea\xe7\x23\x93\x80\x10\x60\x7f\x39\x86\xf0\x6c\x80\x00\x00\x01\xfe\x43\x8f\x15\x0a\x7c\xfd\x6b\xfa\xe0", 20); // SRTP suites // AES CM 128 // encrypt MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 22, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0x8, .clock_rate = 8000, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 22, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 23, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 24, }, .encrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .master_key = {0x86, 0x70, 0x84, 0x51, 0x5a, 0xa4, 0xf7, 0x73, 0xd0, 0xcd, 0x56, 0xd0, 0x32, 0x34, 0x5b, 0x0b}, .master_salt = {0xc1, 0xe3, 0xb1, 0x54, 0x17, 0x3d, 0xf1, 0x3f, 0xb6, 0xa3, 0x86, 0x41, 0xc4, 0x0b}, }, }, }, ); // decrypt MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 23, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .master_key = {0x86, 0x70, 0x84, 0x51, 0x5a, 0xa4, 0xf7, 0x73, 0xd0, 0xcd, 0x56, 0xd0, 0x32, 0x34, 0x5b, 0x0b}, .master_salt = {0xc1, 0xe3, 0xb1, 0x54, 0x17, 0x3d, 0xf1, 0x3f, 0xb6, 0xa3, 0x86, 0x41, 0xc4, 0x0b}, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0x8, .clock_rate = 8000, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 23, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 22, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 25, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); SND(40, 22, "\x80\x08\x2d\x69\xad\x59\xbd\x9f\x7f\x19\x4c\xcb\x51\x57\xd5\xd4\xd4\xd5\x54\x56\x56\x57\x56\x51\x57\xd5\xd7\xd7\xd7\xd5\xd5\xd7\xd7\xd7\xd7\xd4\xd7\xd5\xd5\xd4\xd4\xd7\xd7\xd7\xd7\xd4\xd4\x54\x50\x52\x53\x53\x51\x50\x51\x57\x54\xd5\xd6\xd0\xd3\xd0\xd6\xd6\xd7\xd7\xd7\xd5\xd4\xd6\xd0\xd2\xd0\xd1\xd6\x55\x54\x57\x50\x51\x54\xd5\xd5\x54\x54\xd4\xd7\xd1\xd7\xd5\xd4\xd4\xd5\x54\x54\x55\x57\x56\x54\x54\x55\xd6\xd1\xd7\xd5\x54\x55\x57\x51\x51\x51\x51\x55\xd7\xd6\xd1\xd0\xd0\xd7\xd6\xd1\xd4\x54\xd5\xd4\xd5\xd5\xd6\xd6\xd4\xd4\xd6\xd7\x54\x53\x52\x52\x52\x52\x53\x5d\x52\x56\xd7\xd7\xd5\xd5\xd5\x55\x54\x54\x51\x50\x56\xd4\xd6\xd6\xd7\xd0\xd2\xd3\xd0\xd6\x54\x51\x53\x53\x50\x56\x57\x56\x54"); EXPF(24, "\x80\x08\x2d\x69\xad\x59\xbd\x9f\x7f\x19\x4c\xcb\xe1\x2e\x4f\x7b\x81\x89\xf4\xce\xc0\x62\x3a\x38\x06\xa3\x39\x4b\xaa\x3d\x0f\xd5\xaf\x41\xa8\xc9\x34\xfe\x37\x49\x1b\x29\x08\xd5\x01\x6c\x54\x59\x9a\x16\xcf\xdf\xcb\x23\xc2\x87\xa2\x5d\x06\x1e\x30\xef\x5a\x48\xc3\x8c\x48\x30\xae\x5e\x91\x41\x3a\xa3\x81\x08\xdc\xa4\x50\xd9\x78\xac\xb3\xe2\x78\x84\xb2\xb7\xe7\xe3\xd4\x77\xb9\x11\x72\x18\x85\xee\xf2\xfc\x4c\xf8\x73\xb3\x3a\x04\x95\x26\x26\x4d\x71\xcc\x6e\x24\x3b\xfc\x7b\x4e\x4d\x87\x4f\x3b\xf9\x96\x13\x61\x15\x1e\xbe\xd3\xed\x3a\xa0\x5e\x57\x17\x26\x8f\x58\x0b\xf4\xb9\x6f\xe9\xd4\x4c\x15\x2e\xa9\x3b\xee\xf7\xfe\x39\x48\x33\xe5\x03\x35\xa6\x9d\xb1\x84\x9b\x25\x25\x06\x18\x1d\x34\xea\x26\x8a\x9e\x47\x54\xe3\xc1\x78\x15\x9c\x5e", 23); SND(40, 23, "\x80\x08\x2d\x69\xad\x59\xbd\x9f\x7f\x19\x4c\xcb\xe1\x2e\x4f\x7b\x81\x89\xf4\xce\xc0\x62\x3a\x38\x06\xa3\x39\x4b\xaa\x3d\x0f\xd5\xaf\x41\xa8\xc9\x34\xfe\x37\x49\x1b\x29\x08\xd5\x01\x6c\x54\x59\x9a\x16\xcf\xdf\xcb\x23\xc2\x87\xa2\x5d\x06\x1e\x30\xef\x5a\x48\xc3\x8c\x48\x30\xae\x5e\x91\x41\x3a\xa3\x81\x08\xdc\xa4\x50\xd9\x78\xac\xb3\xe2\x78\x84\xb2\xb7\xe7\xe3\xd4\x77\xb9\x11\x72\x18\x85\xee\xf2\xfc\x4c\xf8\x73\xb3\x3a\x04\x95\x26\x26\x4d\x71\xcc\x6e\x24\x3b\xfc\x7b\x4e\x4d\x87\x4f\x3b\xf9\x96\x13\x61\x15\x1e\xbe\xd3\xed\x3a\xa0\x5e\x57\x17\x26\x8f\x58\x0b\xf4\xb9\x6f\xe9\xd4\x4c\x15\x2e\xa9\x3b\xee\xf7\xfe\x39\x48\x33\xe5\x03\x35\xa6\x9d\xb1\x84\x9b\x25\x25\x06\x18\x1d\x34\xea\x26\x8a\x9e\x47\x54\xe3\xc1\x78\x15\x9c\x5e"); EXPF(25, "\x80\x08\x2d\x69\xad\x59\xbd\x9f\x7f\x19\x4c\xcb\x51\x57\xd5\xd4\xd4\xd5\x54\x56\x56\x57\x56\x51\x57\xd5\xd7\xd7\xd7\xd5\xd5\xd7\xd7\xd7\xd7\xd4\xd7\xd5\xd5\xd4\xd4\xd7\xd7\xd7\xd7\xd4\xd4\x54\x50\x52\x53\x53\x51\x50\x51\x57\x54\xd5\xd6\xd0\xd3\xd0\xd6\xd6\xd7\xd7\xd7\xd5\xd4\xd6\xd0\xd2\xd0\xd1\xd6\x55\x54\x57\x50\x51\x54\xd5\xd5\x54\x54\xd4\xd7\xd1\xd7\xd5\xd4\xd4\xd5\x54\x54\x55\x57\x56\x54\x54\x55\xd6\xd1\xd7\xd5\x54\x55\x57\x51\x51\x51\x51\x55\xd7\xd6\xd1\xd0\xd0\xd7\xd6\xd1\xd4\x54\xd5\xd4\xd5\xd5\xd6\xd6\xd4\xd4\xd6\xd7\x54\x53\x52\x52\x52\x52\x53\x5d\x52\x56\xd7\xd7\xd5\xd5\xd5\x55\x54\x54\x51\x50\x56\xd4\xd6\xd6\xd7\xd0\xd2\xd3\xd0\xd6\x54\x51\x53\x53\x50\x56\x57\x56\x54", 22); // AEAD AES GCM 256 // encrypt MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 26, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0x8, .clock_rate = 8000, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 26, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 27, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 28, }, .encrypt = { .cipher = REC_AEAD_AES_GCM_256, .hmac = REH_NULL, .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .rtp_auth_tag_len = 0, .master_key = {0x81, 0xa4, 0xe5, 0x86, 0x21, 0x62, 0x6c, 0x57, 0x9c, 0x5b, 0x8b, 0x2f, 0x1e, 0x27, 0x6a, 0x69, 0x3c, 0xf2, 0xd5, 0xf6, 0xd0, 0xbc, 0x9a, 0x53, 0x7c, 0x71, 0xdf, 0x22, 0x95, 0x38, 0x4c, 0xb2}, .master_salt = {0x33, 0xaa, 0xf1, 0x5f, 0x42, 0x81, 0x10, 0x58, 0xb0, 0x03, 0x8c, 0x0c}, }, }, }, ); // decrypt MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 27, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_AEAD_AES_GCM_256, .hmac = REH_NULL, .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .rtp_auth_tag_len = 0, .master_key = {0x81, 0xa4, 0xe5, 0x86, 0x21, 0x62, 0x6c, 0x57, 0x9c, 0x5b, 0x8b, 0x2f, 0x1e, 0x27, 0x6a, 0x69, 0x3c, 0xf2, 0xd5, 0xf6, 0xd0, 0xbc, 0x9a, 0x53, 0x7c, 0x71, 0xdf, 0x22, 0x95, 0x38, 0x4c, 0xb2}, .master_salt = {0x33, 0xaa, 0xf1, 0x5f, 0x42, 0x81, 0x10, 0x58, 0xb0, 0x03, 0x8c, 0x0c}, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0x8, .clock_rate = 8000, }, }, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 27, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 26, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 29, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, }, ); SND(40, 26, "\x80\x08\x44\x0d\xc2\x3e\xd8\xc0\x21\x9f\x0b\x2e\x57\x55\x55\xd5\xd6\xd1\xd1\xd1\xd4\x55\x57\x56\x54\xd5\xd6\xd4\x55\xd5\xd4\xd1\xd0\xd7\xd4\x54\x54\x55\x55\x57\x51\x56\x56\x55\xd7\xd1\xd6\xd7\xd7\xd7\xd0\xd1\xd1\xd7\x55\x56\x51\x50\x51\x56\x50\x50\x52\x53\xd5\xdc\xdc\xd1\x55\x56\xd5\xdd\xdc\xd3\x57\x53\x53\x54\x57\x54\x54\x54\x54\xd5\x55\xd4\xd6\xd7\x54\x57\x56\x54\x55\x57\x5d\x5c\x53\x56\xd7\xd6\xd4\xd5\xd4\xd6\xd1\xd6\xd7\xd4\x55\x55\xd5\x55\x55\xd1\xd3\xd0\xd3\xdd\xd1\xd0\xd0\xd1\xd6\xd6\xd5\x55\x55\x56\x50\x53\x5f\x5e\x5f\x5d\x50\x56\x50\x56\x54\xd4\xd7\xd6\x55\x53\x5d\x56\xd6\xd0\xd6\x56\x5d\x5f\x51\xd0\xd3\xd4\x54\x54\xd4\xd1\xd6\xd6\xd1\xd1\xd6\xd4\xd5\x55\xd6\xd7\x55\x57"); EXPF(28, "\x80\x08\x44\x0d\xc2\x3e\xd8\xc0\x21\x9f\x0b\x2e\xd0\x42\xf4\x50\xbb\x7d\x73\xab\xb9\x4e\xd8\x65\xe8\xbf\xeb\xfb\xdc\xdf\xf3\xa6\x63\x58\x84\x37\x49\xc9\xc9\x61\xd9\x43\x51\xde\xfa\x1f\xe5\x34\x9d\x05\x30\x0f\x06\x4f\xb1\x81\x13\x8c\x84\xb2\x26\x93\x0c\x8f\xf1\x6a\x97\x7b\x8c\xe0\xc8\x0a\x66\xe3\xdc\xe4\xd3\xec\x4e\xa5\x8d\x58\x55\x71\x2a\x19\x7c\xad\x55\x46\xe9\xcb\xb4\x79\xde\x8c\x2f\x33\xea\x70\x1b\x08\x4f\xf4\xf4\x2f\x2c\xe6\xb8\x5e\x2a\x65\xab\x06\x74\xbf\xc4\xb1\xc8\x27\x54\x53\xaf\xe8\xca\x1f\x75\xfa\x23\xe9\x6b\x2b\x3e\xed\x4d\x67\x4c\x71\x4c\x53\x74\x4b\x1e\xa7\x5b\x75\x49\x6b\xb3\x64\x6b\x0e\xa5\x12\x8f\x46\x2b\x7d\x17\x54\x2a\x75\xd1\x42\x6b\x7a\xbf\x0e\xd7\x19\x4a\x96\xea\xd9\xd1\xc8\x12\x30\xc3\x33\x4f\xc6\xa6\x0e\x36\xe0\x1f\x0c", 27); SND(40, 27, "\x80\x08\x44\x0d\xc2\x3e\xd8\xc0\x21\x9f\x0b\x2e\xd0\x42\xf4\x50\xbb\x7d\x73\xab\xb9\x4e\xd8\x65\xe8\xbf\xeb\xfb\xdc\xdf\xf3\xa6\x63\x58\x84\x37\x49\xc9\xc9\x61\xd9\x43\x51\xde\xfa\x1f\xe5\x34\x9d\x05\x30\x0f\x06\x4f\xb1\x81\x13\x8c\x84\xb2\x26\x93\x0c\x8f\xf1\x6a\x97\x7b\x8c\xe0\xc8\x0a\x66\xe3\xdc\xe4\xd3\xec\x4e\xa5\x8d\x58\x55\x71\x2a\x19\x7c\xad\x55\x46\xe9\xcb\xb4\x79\xde\x8c\x2f\x33\xea\x70\x1b\x08\x4f\xf4\xf4\x2f\x2c\xe6\xb8\x5e\x2a\x65\xab\x06\x74\xbf\xc4\xb1\xc8\x27\x54\x53\xaf\xe8\xca\x1f\x75\xfa\x23\xe9\x6b\x2b\x3e\xed\x4d\x67\x4c\x71\x4c\x53\x74\x4b\x1e\xa7\x5b\x75\x49\x6b\xb3\x64\x6b\x0e\xa5\x12\x8f\x46\x2b\x7d\x17\x54\x2a\x75\xd1\x42\x6b\x7a\xbf\x0e\xd7\x19\x4a\x96\xea\xd9\xd1\xc8\x12\x30\xc3\x33\x4f\xc6\xa6\x0e\x36\xe0\x1f\x0c"); EXPF(29, "\x80\x08\x44\x0d\xc2\x3e\xd8\xc0\x21\x9f\x0b\x2e\x57\x55\x55\xd5\xd6\xd1\xd1\xd1\xd4\x55\x57\x56\x54\xd5\xd6\xd4\x55\xd5\xd4\xd1\xd0\xd7\xd4\x54\x54\x55\x55\x57\x51\x56\x56\x55\xd7\xd1\xd6\xd7\xd7\xd7\xd0\xd1\xd1\xd7\x55\x56\x51\x50\x51\x56\x50\x50\x52\x53\xd5\xdc\xdc\xd1\x55\x56\xd5\xdd\xdc\xd3\x57\x53\x53\x54\x57\x54\x54\x54\x54\xd5\x55\xd4\xd6\xd7\x54\x57\x56\x54\x55\x57\x5d\x5c\x53\x56\xd7\xd6\xd4\xd5\xd4\xd6\xd1\xd6\xd7\xd4\x55\x55\xd5\x55\x55\xd1\xd3\xd0\xd3\xdd\xd1\xd0\xd0\xd1\xd6\xd6\xd5\x55\x55\x56\x50\x53\x5f\x5e\x5f\x5d\x50\x56\x50\x56\x54\xd4\xd7\xd6\x55\x53\x5d\x56\xd6\xd0\xd6\x56\x5d\x5f\x51\xd0\xd3\xd4\x54\x54\xd4\xd1\xd6\xd6\xd1\xd1\xd6\xd4\xd5\x55\xd6\xd7\x55\x57", 26); // RTCP/SRTCP output MSGBUF(REMG_SEND_RTCP, send_packet, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 26, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 27, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 28, }, ); EXPF(28, "\x81\xc8\x00\x0c\x00\x00\x16\x1c\x96\xe5\xb7\xf4\x34\x2e\xed\xfa\x59\xed\x4d\x77\x30\x96\x2a\xb3\x62\x5b\xe9\x4d\x06\xfe\x70\xb2\x9a\x4b\xb9\x27\x14\x78\x64\x15\x0c\xe6\xe6\x0d\xcc\x2f\x7f\x5f\x21\xf3\xfa\x03\x6f\xd2\xc1\xb5\x9c\x12\x76\x1b\x68\xe8\x12\xc8\xa7\x6d\x79\xce\x13\x14\xce\x33\x36\x58\x98\x6f\xe7\x95\xb5\x35\x0c\x25\x92\xbe\x2e\xb3\xb6\x2d\x51\x38\xfb\x09\x80\x00\x00\x00", 27); // SRTCP SSRC index tracking MSG(REMG_ADD_TARGET, .target = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0xf, .clock_rate = 8000, }, }, .ssrc = {htonl(0x12345678), htonl(0x87654321), 0, 0,}, }, ); MSG(REMG_ADD_DESTINATION, .destination = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 31, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 32, }, .encrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .rtcp_auth_tag_len = 10, .master_key = {0xe1, 0xf9, 0x7a, 0x0d, 0x3e, 0x01, 0x8b, 0xe0, 0xd6, 0x4f, 0xa3, 0x2c, 0x06, 0xde, 0x41, 0x39}, .master_salt = {0x0e, 0xc6, 0x75, 0xad, 0x49, 0x8a, 0xfe, 0xeb, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6}, }, }, }, ); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x12\x34\x56\x78xxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 31, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 32, }, }, ); EXPF(32, "\x81\xc8\x00\x0c\x12\x34\x56\x78\x09\x11\x4b\x0c\x97\xba\x5c\x20\x2c\x0c\x52\x0c\xea\x0c\xe6\x5b\x8f\x66\xad\x0d\x0b\x84\xb7\x9e\x0c\x6b\x80\xbc\xb1\x94\xb3\x1a\x0a\x1a\x30\x18\x06\xc7\x14\x91\x5a\xb1\xae\xd1\xee\x23\x64\x54\x82\x65\x27\x9c\x3e\xcd\xdc\x87\xff\x68\x84\x7c\x17\x6d\xd7\xc8\xae\xb6\x4b\x73\x80\x00\x00\x00\x00\x0b\x24\x46\x81\xdd\x28\x6b\xe8\xac", 31); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x12\x34\x56\x78xxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 31, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 32, }, }, ); EXPF(32, "\x81\xc8\x00\x0c\x12\x34\x56\x78\x04\xf8\xc2\xb5\x4e\x74\xc8\xa2\x35\x9d\x2f\x11\x67\x2f\xb9\xee\x89\xf9\xd8\xd7\x27\x80\xf6\xe5\x06\xff\xae\x5f\x7b\x3e\xd1\x7b\xa9\x35\xac\x48\x21\xf6\x52\xfc\x8e\xab\x1e\xa1\x62\x36\x45\x2f\x4d\xb0\x75\x36\xdf\x63\x48\xdc\xae\x7d\x4c\x56\x2b\x0d\x21\xc9\x0b\xbb\x81\x55\x80\x00\x00\x01\x3b\xb6\x51\x08\x1d\xb6\x0b\xc2\x62\x4b", 31); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x87\x65\x43\x21xxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 31, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 32, }, }, ); EXPF(32, "\x81\xc8\x00\x0c\x87\x65\x43\x21\xe0\x5d\x5d\x6e\x68\xc4\xcc\x58\xd8\xed\xfb\x58\x9f\xdc\xac\x39\x11\x36\x63\x69\xa1\xf9\x12\x22\x0d\x85\xec\x55\x93\xf7\xf3\x8d\xfd\x39\xe9\x55\xee\x70\x73\x0c\x55\xf4\x41\x6e\x68\xe7\xa9\x1c\x25\x50\x3f\x3c\x3a\xa7\x49\x3a\x38\xee\xf3\x95\x4b\x78\x9f\x6e\x07\x16\x78\x2f\x80\x00\x00\x00\x74\x3b\xc2\xd6\x6a\x20\xa5\x20\xd6\x9a", 31); MSGBUF(REMG_SEND_RTCP, "\x81\xc8\x00\x0c\x87\x65\x43\x21xxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", .send_packet = { .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 30, }, .destination_idx = 0, .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 31, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 32, }, }, ); EXPF(32, "\x81\xc8\x00\x0c\x87\x65\x43\x21\xa8\xf0\x49\x6a\x19\x93\x12\xb7\x15\x08\xaf\xea\x9f\xb8\x07\x51\x0b\x21\xfc\xd2\xcd\x34\x80\x9b\x17\x3d\xfe\xf6\x34\x74\x09\x33\xdb\x77\xb8\xfc\x24\x27\x52\xdf\x47\xe0\xe2\x42\x51\x8b\x99\x56\x3f\x86\x3b\x4f\xe1\x1a\x2e\xc1\xaa\x19\x3f\xae\xae\x0e\xd8\x6d\x0d\xd1\x72\xa4\x80\x00\x00\x01\x86\xe0\x95\x0b\x40\x1f\xa0\x75\x18\x71", 31); // SRTCP decryption, AES-CM-128 MSG(REMG_ADD_TARGET, target, .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 33, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_AES_CM_128, .hmac = REH_HMAC_SHA1, .master_key_len = 16, .master_salt_len = 14, .session_key_len = 16, .session_salt_len = 14, .rtp_auth_tag_len = 10, .rtcp_auth_tag_len = 10, .master_key = {0xe1, 0xf9, 0x7a, 0x0d, 0x3e, 0x01, 0x8b, 0xe0, 0xd6, 0x4f, 0xa3, 0x2c, 0x06, 0xde, 0x41, 0x39}, .master_salt = {0x0e, 0xc6, 0x75, 0xad, 0x49, 0x8a, 0xfe, 0xeb, 0xb6, 0x96, 0x0b, 0x3a, 0xab, 0xe6}, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .rtcp = 1, .rtcp_fw = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0xf, .clock_rate = 8000, }, }, ); MSG(REMG_ADD_DESTINATION, destination, .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 33, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 34, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 35, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, ); SND(40, 33, "\x81\xc8\x00\x0c\x12\x34\x56\x78\x09\x11\x4b\x0c\x97\xba\x5c\x20\x2c\x0c\x52\x0c\xea\x0c\xe6\x5b\x8f\x66\xad\x0d\x0b\x84\xb7\x9e\x0c\x6b\x80\xbc\xb1\x94\xb3\x1a\x0a\x1a\x30\x18\x06\xc7\x14\x91\x5a\xb1\xae\xd1\xee\x23\x64\x54\x82\x65\x27\x9c\x3e\xcd\xdc\x87\xff\x68\x84\x7c\x17\x6d\xd7\xc8\xae\xb6\x4b\x73\x80\x00\x00\x00\x00\x0b\x24\x46\x81\xdd\x28\x6b\xe8\xac"); EXPF(35, "\x81\xc8\x00\x0c\x12\x34\x56\x78xxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", 34); // SRTCP decryption, AES-GCM MSG(REMG_ADD_TARGET, target, .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 36, }, .expected_src = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = 5555, }, .decrypt = { .cipher = REC_AEAD_AES_GCM_256, .hmac = REH_NULL, .master_key_len = 32, .master_salt_len = 12, .session_key_len = 32, .session_salt_len = 12, .rtp_auth_tag_len = 0, .master_key = {0x81, 0xa4, 0xe5, 0x86, 0x21, 0x62, 0x6c, 0x57, 0x9c, 0x5b, 0x8b, 0x2f, 0x1e, 0x27, 0x6a, 0x69, 0x3c, 0xf2, 0xd5, 0xf6, 0xd0, 0xbc, 0x9a, 0x53, 0x7c, 0x71, 0xdf, 0x22, 0x95, 0x38, 0x4c, 0xb2}, .master_salt = {0x33, 0xaa, 0xf1, 0x5f, 0x42, 0x81, 0x10, 0x58, 0xb0, 0x03, 0x8c, 0x0c}, }, .src_mismatch = MSM_IGNORE, .num_destinations = 1, .rtp = 1, .rtcp = 1, .rtcp_fw = 1, .num_payload_types = 1, .payload_types = { { .pt_num = 0xf, .clock_rate = 8000, }, }, ); MSG(REMG_ADD_DESTINATION, destination, .local = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 36, }, .num = 0, .output = { .src_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 37, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = LOCALHOST, }, .port = PORT_BASE + 38, }, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, }, ); SND(40, 36, "\x81\xc8\x00\x0c\x00\x00\x16\x1c\x96\xe5\xb7\xf4\x34\x2e\xed\xfa\x59\xed\x4d\x77\x30\x96\x2a\xb3\x62\x5b\xe9\x4d\x06\xfe\x70\xb2\x9a\x4b\xb9\x27\x14\x78\x64\x15\x0c\xe6\xe6\x0d\xcc\x2f\x7f\x5f\x21\xf3\xfa\x03\x6f\xd2\xc1\xb5\x9c\x12\x76\x1b\x68\xe8\x12\xc8\xa7\x6d\x79\xce\x13\x14\xce\x33\x36\x58\x98\x6f\xe7\x95\xb5\x35\x0c\x25\x92\xbe\x2e\xb3\xb6\x2d\x51\x38\xfb\x09\x80\x00\x00\x00"); EXPF(38, "\x81\xc8\x00\x0c\x00\x00\x16\x1cxxxxxxxx\x00\x00\x26\xc0\x00\x00\x00\x25\x00\x00\x18\xdc\x00\x00\x12\x34\x06\x00\x00\x01\x00\x00\x04\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\xca\x00\x05\x00\x00\x16\x1c\x01\x0cqwertyuiopas\x00\x00", 37); return 0; } rtpengine-mr12.5.1.22/tests/simulator-ng.pl000077500000000000000000000553221474347554000205230ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use Socket; use UUID; use BSD::Resource; use Getopt::Long; use Socket6; use Bencode qw( bencode bdecode ); use Time::HiRes; use Crypt::Rijndael; use Digest::SHA qw(hmac_sha1); use MIME::Base64; use Data::Dumper; use NGCP::Rtpclient::SRTP; my ($NUM, $RUNTIME, $STREAMS, $PAYLOAD, $INTERVAL, $RTCP_INTERVAL, $STATS_INTERVAL) = (1000, 30, 1, 160, 20, 5, 5); my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $PROTOS, $DEST, $SUITES, $NOENC, $RTCPMUX, $BUNDLE, $LAZY, $CHANGE_SSRC, $PORT_LATCHING, $RECORD, $DTMF); GetOptions( 'no-delete' => \$NODEL, 'num-calls=i' => \$NUM, 'local-ip=s' => \$IP, 'local-ipv6=s' => \$IPV6, 'runtime=i' => \$RUNTIME, 'keep-going' => \$KEEPGOING, # don't stop sending rtp if a packet doesn't go through 'reinvites' => \$REINVITES, 'max-streams=i' => \$STREAMS, 'protocols=s' => \$PROTOS, # "RTP/AVP,RTP/SAVP" 'destination=s' => \$DEST, 'payload-size=i'=> \$PAYLOAD, 'rtp-interval=i'=> \$INTERVAL, # in ms 'rtcp-interval=i'=>\$RTCP_INTERVAL, # in seconds 'stats-interval=i'=>\$STATS_INTERVAL, 'suites=s' => \$SUITES, 'no-encrypt' => \$NOENC, 'rtcp-mux' => \$RTCPMUX, 'bundle' => \$BUNDLE, 'lazy-params' => \$LAZY, 'change-ssrc' => \$CHANGE_SSRC, 'port-latching' => \$PORT_LATCHING, 'record' => \$RECORD, 'dtmf' => \$DTMF, ) or die; ($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given"); local $SIG{ALRM} = sub { print "alarm!\n"; }; setrlimit(RLIMIT_NOFILE, 8000, 8000); $PROTOS and $PROTOS = [split(/\s*[,;:]+\s*/, $PROTOS)]; $$PROTOS[1] = $$PROTOS[0] if $PROTOS && @$PROTOS == 1; $DEST and $DEST = [$DEST =~ /^(?:([a-z.-]+)(?::(\d+))?|([\d.]+)(?::(\d+))?|([\da-f:]+)|\[([\da-f:]+)\]:(\d+))$/si]; my $dest_host = $$DEST[0] || $$DEST[2] || $$DEST[4] || $$DEST[5] || 'localhost'; my $dest_port = $$DEST[1] || $$DEST[3] || $$DEST[6] || 2223; $SUITES and $SUITES = [split(/\s*[,;:]+\s*/, $SUITES)]; my @chrs = ('a' .. 'z', 'A' .. 'Z', '0' .. '9'); sub rand_str { my ($len) = @_; return join('', (map {$chrs[rand(@chrs)]} (1 .. $len))); } my $fd; sub msg { my ($d) = @_; my $l = bencode($d); my $cookie = $$ . '_' . rand_str(10); my $r; while (1) { send($fd, "$cookie $l", 0) or die $!; my $err = ''; alarm(1); recv($fd, $r, 0xffff, 0) or $err = "$!"; alarm(0); $err =~ /interrupt/i and next; $err and die $err; last; } $r =~ s/^\Q$cookie\E +//s or die $r; $r =~ s/[\r\n]+$//s; return $r ? bdecode($r, 1) : undef; } my @dests = getaddrinfo($dest_host, $dest_port, AF_UNSPEC, SOCK_DGRAM); while (@dests >= 5) { my ($fam, $type, $prot, $addr, $canon, @dests) = @dests; if (!socket($fd, $fam, $type, $prot)) { undef($fd); next; } if (!connect($fd, $addr)) { undef($fd); next; } last; } $fd or die($!); msg({command => 'ping'})->{result} eq 'pong' or die; my (@calls, %calls); my %NOENC; sub send_receive { my ($send_fd, $receive_fd, $payload, $destination) = @_; send($send_fd, $payload, 0, $destination) or die $!; my $x; my $err = ''; alarm(1); recv($receive_fd, $x, 0xffff, 0) or $err = "$!"; alarm(0); die $err if $err && $err !~ /interrupt/i; return $x; } sub rtcp_encrypt { my ($r, $ctx, $dir) = @_; my $dctx = $$ctx{$dir}; if (!$$dctx{rtcp_session_key}) { ($$dctx{rtcp_session_key}, $$dctx{rtcp_session_auth_key}, $$dctx{rtcp_session_salt}) = NGCP::Rtpclient::SRTP::gen_rtcp_session_keys($$dctx{rtp_master_key}, $$dctx{rtp_master_salt}); } ($NOENC && $NOENC{rtcp_packet}) and return $NOENC{rtcp_packet}; my ($pkt, $idx) = NGCP::Rtpclient::SRTP::encrypt_rtcp(@$dctx{qw(crypto_suite rtcp_session_key rtcp_session_salt rtcp_session_auth_key rtcp_index rtp_mki rtp_mki_len unenc_srtcp)}, $r); $$dctx{rtcp_index} = $idx; $NOENC{rtcp_packet} = $pkt; return $pkt; } sub rtp_encrypt { my ($r, $ctx, $dir) = @_; my $dctx = $$ctx{$dir}; if (!$$dctx{rtp_session_key}) { ($$dctx{rtp_session_key}, $$dctx{rtp_session_auth_key}, $$dctx{rtp_session_salt}) = NGCP::Rtpclient::SRTP::gen_rtp_session_keys($$dctx{rtp_master_key}, $$dctx{rtp_master_salt}); } ($NOENC && $NOENC{rtp_packet}) and return $NOENC{rtp_packet}; my ($pkt, $roc) = NGCP::Rtpclient::SRTP::encrypt_rtp(@$dctx{qw(crypto_suite rtp_session_key rtp_session_salt rtp_session_auth_key rtp_roc rtp_mki rtp_mki_len unenc_srtp unauth_srtp)}, $r); $roc == ($$dctx{rtp_roc} // 0) or print("ROC is now $roc\n"); $$dctx{rtp_roc} = $roc; $NOENC{rtp_packet} = $pkt; return $pkt; } $SUITES and @NGCP::Rtpclient::SRTP::crypto_suites = grep {my $x = $$_{str}; grep {$x eq $_} @$SUITES} @NGCP::Rtpclient::SRTP::crypto_suites; sub savp_sdp { my ($ctx, $ctx_o) = @_; if (!$$ctx{out}{crypto_suite}) { if ($$ctx{in}{crypto_suite}) { $$ctx{out}{crypto_suite} = $$ctx{in}{crypto_suite}; $$ctx{out}{crypto_tag} = $$ctx{in}{crypto_tag}; $$ctx{out}{unenc_srtp} = $$ctx{in}{unenc_srtp}; $$ctx{out}{unenc_srtcp} = $$ctx{in}{unenc_srtcp}; $$ctx{out}{unauth_srtp} = $$ctx{in}{unauth_srtp}; } else { $$ctx{out}{crypto_suite} = $NGCP::Rtpclient::SRTP::crypto_suites[rand(@NGCP::Rtpclient::SRTP::crypto_suites)]; print("using crypto suite $$ctx{out}{crypto_suite}{str}\n"); $$ctx{out}{crypto_tag} = int(rand(100)); $$ctx{out}{unenc_srtp} = rand() < .5 ? 0 : 1; $$ctx{out}{unenc_srtcp} = rand() < .5 ? 0 : 1; $$ctx{out}{unauth_srtp} = rand() < .5 ? 0 : 1; } $$ctx{out}{rtp_mki_len} = 0; if (rand() > .5) { $$ctx{out}{rtp_mki_len} = int(rand(120)) + 1; $$ctx{out}{rtp_mki} = int(rand(2**30)) | 1; if ($$ctx{out}{rtp_mki_len} < 32) { $$ctx{out}{rtp_mki} &= (0xffffffff >> (32 - ($$ctx{out}{rtp_mki_len}))); } } } if (!$$ctx{out}{rtp_master_key} || rand() < .2) { $$ctx{out}{rtp_master_key} and print("new key\n"); $$ctx{out}{rtp_master_key} = rand_str($$ctx{out}{crypto_suite}{key_length}); $$ctx{out}{rtp_master_salt} = rand_str($$ctx{out}{crypto_suite}{salt_length}); undef($$ctx{out}{rtp_session_key}); undef($$ctx{out}{rtcp_session_key}); if ($NOENC && $NOENC{rtp_master_key}) { $$ctx{out}{rtp_master_key} = $NOENC{rtp_master_key}; $$ctx{out}{rtp_master_salt} = $NOENC{rtp_master_salt}; } $NOENC{rtp_master_key} = $$ctx{out}{rtp_master_key}; $NOENC{rtp_master_salt} = $$ctx{out}{rtp_master_salt}; } my $ret = "a=crypto:$$ctx{out}{crypto_tag} $$ctx{out}{crypto_suite}{str} inline:" . encode_base64($$ctx{out}{rtp_master_key} . $$ctx{out}{rtp_master_salt}, ''); $$ctx{out}{rtp_mki_len} and $ret .= "|$$ctx{out}{rtp_mki}:$$ctx{out}{rtp_mki_len}"; $$ctx{out}{unenc_srtp} and $ret .= " UNENCRYPTED_SRTP"; $$ctx{out}{unenc_srtcp} and $ret .= " UNENCRYPTED_SRTCP"; $$ctx{out}{unauth_srtp} and $ret .= " UNAUTHENTICATED_SRTP"; $ret .= "\n"; return $ret; } sub rtcp_sr { my ($ssrc) = @_; my @now = Time::HiRes::gettimeofday(); my $secs = $now[0] + 2208988800; my $frac = $now[1] / 1000000 * 2**32; my $sr = pack('CCnN NNN NN', (2 << 6) | 1, 200, 12, $ssrc, $secs, $frac, 12345, rand(12345), rand(4321)); $sr .= pack('N CCCC NNNN', rand(2**32), rand(256), rand(256), rand(256), rand(256), rand(2**32), rand(2**32), rand(2**32), rand(2**32)); # sdes $sr .= pack('CCn N CC a* CC a* CC a* C C N CC a* CC a* C CCC N CC a* C', (2 << 6) | 3, 202, 16, rand(2 ** 32), # csrc 1, 7, 'blah123', # cname 2, 6, 'foobar', # name 3, 7, 'foo@bar', # email, 0, # eol 0, # padding rand(2 ** 32), # csrc 4, 5, '54321', # phone 5, 3, 'foo', # loc 0, # eol 0,0,0, # padding rand(2 ** 32), # csrc 6, 5, 'fubar', # tool 0, # eol ); return $sr; } sub rtcp_rtpfb { return pack('CCn NN', (2 << 6) | 1, 205, 2, rand() * 2**32, rand() * 2**32); } sub rtcp_avp { my ($recv, $ctx, $ctx_o) = @_; my $ssrc = $$ctx{ssrc} // ($$ctx{ssrc} = rand(2**32)); my $sr = rtcp_sr($ssrc); my $exp = $sr; $$recv{srtp} and $exp = rtcp_encrypt($exp, $ctx_o, 'in'); return ($sr, $exp); } sub rtcp_savp { my ($recv, $ctx, $ctx_o) = @_; my $ssrc = $$ctx{ssrc} // ($$ctx{ssrc} = rand(2**32)); my $sr = rtcp_sr($ssrc); my $enc = rtcp_encrypt($sr, $ctx, 'out'); my $exp = $sr; $$recv{srtp} and $exp = rtcp_encrypt($exp, $ctx_o, 'in'); return ($enc, $exp); } sub rtcp_avpf { my ($recv, $ctx, $ctx_o) = @_; my $ssrc = $$ctx{ssrc} // ($$ctx{ssrc} = rand(2**32)); my $sr = rtcp_sr($ssrc); my $fb = rtcp_rtpfb(); my $exp = $sr; $$recv{avpf} and $exp .= $fb; $$recv{srtp} and $exp = rtcp_encrypt($exp, $ctx_o, 'in'); return ($sr . $fb, $exp); } sub rtcp_savpf { my ($recv, $ctx, $ctx_o) = @_; my $ssrc = $$ctx{ssrc} // ($$ctx{ssrc} = rand(2**32)); my $sr = rtcp_sr($ssrc); my $fb = rtcp_rtpfb(); my $enc = rtcp_encrypt($sr . $fb, $ctx, 'out'); my $exp = $sr; $$recv{avpf} and $exp .= $fb; $$recv{srtp} and $exp = rtcp_encrypt($exp, $ctx_o, 'in'); return ($enc, $exp); } sub rtp { my ($ctx) = @_; my $ssrc = $$ctx{ssrc} // ($$ctx{ssrc} = rand(2**32)); my $seq = $$ctx{rtp_seqnum}; defined($seq) or $seq = int(rand(0xfffe)) + 1; my ($hdr, $payload); # don't do DTMF as first packet XXX should work if ($$ctx{out_count} && ($$ctx{is_dtmf} || ($DTMF && rand() < 0.1))) { # DTMF in progress or start it if (!$$ctx{is_dtmf}) { # start DTMF $$ctx{is_dtmf} = 1; } # else: DTMF in progress $hdr = pack("CCnNN", 0x80, 96, $seq, rand(2**32), $ssrc); if (rand() < 0.2) { # end DTMF $$ctx{is_dtmf} = 0; $payload = pack("CCN", rand(10), 0x80 | rand(50)+10, rand(2**16)); # XXX triple-send end packet } else { $payload = pack("CCN", rand(10), rand(50)+10, rand(2**16)); } } else { # random PCM $hdr = pack("CCnNN", 0x80, 0, $seq, rand(2**32), $ssrc); $payload = rand_str($PAYLOAD); } my $pack = $hdr . $payload; $$ctx{rtp_seqnum} = (++$seq & 0xffff); $$ctx{out_count}++; return $pack; } sub rtp_avp { my ($recv, $ctx, $ctx_o) = @_; my $pack = rtp($ctx); my $exp = $pack; $$recv{srtp} and $exp = rtp_encrypt($exp, $ctx_o, 'in'); return ($pack, $exp); } sub rtp_savp { my ($recv, $ctx, $ctx_o) = @_; my $pack = rtp($ctx); my $enc = rtp_encrypt($pack, $ctx, 'out'); my $exp = $pack; $$recv{srtp} and $exp = rtp_encrypt($pack, $ctx_o, 'in'); return ($enc, $exp); } sub savp_crypto { my ($sdp, $ctx, $ctx_o) = @_; my @aa = $sdp =~ /[\r\n](?:a=crypto:(\d+) (\w+) inline:([\w\/+=]{40,})(?:\|(?:2\^(\d+)|(\d+)))?(?:\|(\d+):(\d+))?(?: (.*?))?|(m)=.*?)[\r\n]/sig; @aa or die; my $i = -1; my @done; while (@aa >= 9) { if (defined($aa[8]) && $aa[8] eq 'm') { $i++; next; } $i >= 0 or die; $done[$i] and next; $$ctx[$i]{in}{crypto_suite} = $NGCP::Rtpclient::SRTP::crypto_suites{$aa[1]} or next; $$ctx[$i]{in}{crypto_tag} = $aa[0]; ($$ctx[$i]{in}{rtp_master_key}, $$ctx[$i]{in}{rtp_master_salt}) = NGCP::Rtpclient::SRTP::decode_inline_base64($aa[2], $$ctx[$i]{in}{crypto_suite}); $$ctx[$i]{in}{rtp_mki} = $aa[5]; $$ctx[$i]{in}{rtp_mki_len} = $aa[6]; undef($$ctx[$i]{in}{rtp_session_key}); undef($$ctx[$i]{in}{rtcp_session_key}); ($aa[7] || '') =~ /UNENCRYPTED_SRTP/ and $$ctx[$i]{in}{unenc_srtp} = 1; ($aa[7] || '') =~ /UNENCRYPTED_SRTCP/ and $$ctx[$i]{in}{unenc_srtcp} = 1; ($aa[7] || '') =~ /UNAUTHENTICATED_SRTP/ and $$ctx[$i]{in}{unauth_srtp} = 1; $done[$i] = 1; } continue { @aa = @aa[9 .. $#aa]; } } sub hexdump { my $o = ''; for my $a (@_) { $o .= "<< " . unpack("H*", $a) . " >> "; } return $o; } my $RTP_COUNT = 0; sub do_rtp { my ($rtcp) = @_; for my $c (@calls) { $c or next; for my $i ([0,1],[1,0]) { my ($a, $b) = @$i; my $A = $$c{sides}[$a]; my $B = $$c{sides}[$b]; my $rtp_fds = $$A{rtp_fds}; my $rtcp_fds = $$A{rtcp_fds}; my $rtp_fds_o = $$B{rtp_fds}; my $rtcp_fds_o = $$B{rtcp_fds}; my $pr = $$A{proto};; my $trans = $$A{transport}; my $trans_o = $$B{transport}; my $tcx = $$A{trans_contexts}; my $tcx_o = $$B{trans_contexts}; my $outputs = $$A{outputs}; for my $j (0 .. ($$A{streams_active} - 1)) { my ($bj_a, $bj_b) = ($j, $j); $$A{bundle} and $bj_a = 0; $$B{bundle} and $bj_b = 0; my $addr = inet_pton($$pr{family}, $$outputs[$j][1]); my ($payload, $expect) = $$trans{rtp_func}($trans_o, $$tcx[$j], $$tcx_o[$j]); my $dst = $$pr{sockaddr}($$outputs[$j][0], $addr); my $repl = send_receive($$rtp_fds[$bj_a], $$rtp_fds_o[$bj_b], $payload, $dst); $RTP_COUNT++; if ($repl eq '') { warn("no rtp reply received, port $$outputs[$j][0]"); $KEEPGOING or undef($c); } $NOENC and $repl = $expect; next if !$repl && $KEEPGOING; $repl eq $expect or die hexdump($repl, $expect) . " $$trans{name} > $$trans_o{name}, $$c{callid}, RTP port $$outputs[$j][0]"; $rtcp or next; ($payload, $expect) = $$trans{rtcp_func}($trans_o, $$tcx[$j], $$tcx_o[$j]); my $dstport = $$outputs[$j][0] + 1; my $sendfd = $$rtcp_fds[$bj_a]; my $expfd = $$rtcp_fds_o[$bj_b]; if ($$A{rtcpmux}) { $dstport--; $sendfd = $$rtp_fds[$bj_a]; } if ($$B{rtcpmux}) { $expfd = $$rtp_fds_o[$bj_b]; } $dst = $$pr{sockaddr}($dstport, $addr); $repl = send_receive($sendfd, $expfd, $payload, $dst); $NOENC and $repl = $expect; next if !$repl && $KEEPGOING; $repl eq $expect or die hexdump($repl, $expect) . " $$trans{name} > $$trans_o{name}, $$c{callid}, RTCP"; } } } } my %proto_defs = ( ipv4 => { code => 'I', family => AF_INET, reply => '4', address => $IP, sockaddr => \&sockaddr_in, family_str => 'IP4', direction => 'internal', }, ipv6 => { code => 'E', family => AF_INET6, reply => '6', address => $IPV6, sockaddr => \&sockaddr_in6, family_str => 'IP6', direction => 'external', }, ); my @protos_avail; $IP and push(@protos_avail, $proto_defs{ipv4}); $IPV6 and push(@protos_avail, $proto_defs{ipv6}); my @sides = qw(A B); my @transports = ( { name => 'RTP/AVP', rtp_func => \&rtp_avp, rtcp_func => \&rtcp_avp, srtp => 0, avpf => 0, }, { name => 'RTP/AVPF', rtp_func => \&rtp_avp, rtcp_func => \&rtcp_avpf, srtp => 0, avpf => 1, }, { name => 'RTP/SAVP', sdp_media_params => \&savp_sdp, sdp_parse_func => \&savp_crypto, rtp_func => \&rtp_savp, rtcp_func => \&rtcp_savp, srtp => 1, avpf => 0, }, { name => 'RTP/SAVPF', sdp_media_params => \&savp_sdp, sdp_parse_func => \&savp_crypto, rtp_func => \&rtp_savp, rtcp_func => \&rtcp_savpf, srtp => 1, avpf => 1, }, { name => 'UDP/TLS/RTP/SAVP', sdp_media_params => \&savp_sdp, sdp_parse_func => \&savp_crypto, rtp_func => \&rtp_savp, rtcp_func => \&rtcp_savp, srtp => 1, avpf => 0, }, { name => 'UDP/TLS/RTP/SAVPF', sdp_media_params => \&savp_sdp, sdp_parse_func => \&savp_crypto, rtp_func => \&rtp_savp, rtcp_func => \&rtcp_savpf, srtp => 1, avpf => 1, }, ); my %transports = map {$$_{name} => $_} @transports; sub callid { my $i = rand_str(50); return $i; } my $NUM_STREAMS = 0; sub port_setup { my ($r, $j) = @_; my $pr = $$r{proto}; my $rtp_fds = $$r{rtp_fds}; my $rtcp_fds = $$r{rtcp_fds}; my $ports = $$r{ports}; my $ips = $$r{ips}; my $tcx = $$r{trans_contexts}; $$tcx[$j] or $$tcx[$j] = {}; while (1) { socket(my $rtp, $$pr{family}, SOCK_DGRAM, 0) or die $!; socket(my $rtcp, $$pr{family}, SOCK_DGRAM, 0) or die $!; my $port = (rand(0x7000) << 1) + 1024; bind($rtp, $$pr{sockaddr}($port, inet_pton($$pr{family}, $$pr{address}))) or next; bind($rtcp, $$pr{sockaddr}($port + 1, inet_pton($$pr{family}, $$pr{address}))) or next; $$rtp_fds[$j] = $rtp; $$rtcp_fds[$j] = $rtcp; my $addr = getsockname($rtp); my $ip; ($$ports[$j], $ip) = $$pr{sockaddr}($addr); $$ips[$j] = inet_ntop($$pr{family}, $ip); last; } } sub side_setup { my ($i) = @_; my $r = {}; my $pr = $$r{proto} = $protos_avail[rand(@protos_avail)]; $$r{transport} = ($PROTOS && $$PROTOS[$i] && $transports{$$PROTOS[$i]}) ? $transports{$$PROTOS[$i]} : $transports[rand(@transports)]; $$r{trans_contexts} = []; $$r{outputs} = []; $$r{num_streams} = int(rand($STREAMS)); $$r{streams_seen} = 0; $$r{streams_active} = 0; $$r{rtp_fds} = []; $$r{rtcp_fds} = []; $$r{ports} = []; $$r{ips} = []; for my $j (0 .. $$r{num_streams}) { port_setup($r, $j); } $$r{tag} = rand_str(15); $RTCPMUX and $$r{want_rtcpmux} = rand() >= .3; $BUNDLE and $$r{want_bundle} = rand() >= .3; $$r{want_bundle} and $$r{want_rtcpmux} = 1; return $r; } sub call_setup { my ($c) = @_; $$c{setup} = 1; $$c{callid} = callid(); $$c{sides}[0] = side_setup(0); $$c{sides}[1] = side_setup(1); } sub offer_answer { my ($c, $a, $b, $op) = @_; $$c{setup} or call_setup($c); my $callid = $$c{callid} || ($$c{callid} = callid()); my $A = $$c{sides}[$a]; my $B = $$c{sides}[$b]; my $pr = $$A{proto}; my $pr_o = $$B{proto}; my $ips_t = $$A{ips}; my $ports_t = $$A{ports}; my $tr = $$A{transport}; my $tr_o = $$B{transport}; my $tcx = $$A{trans_contexts}; my $tcx_o = $$B{trans_contexts}; my $sdp = <<"SDP"; v=0 o=blah 123 123 IN $$pr{family_str} $$ips_t[0] s=session c=IN $$pr{family_str} $$ips_t[0] t=0 0 SDP my $ul = $$A{num_streams}; $ul = $$A{streams_seen} if $op eq 'answer' && $$A{streams_seen} < $$A{num_streams}; if ($$A{want_bundle} && $op eq 'offer') { $$A{bundle} = 1; $sdp .= "a=group:BUNDLE " . join(' ', (0 .. $ul)) . "\n"; } for my $i (0 .. $ul) { my $bi = $i; $$A{bundle} and $bi = 0; my $p = $$ports_t[$bi]; my $cp = $p + 1; $cp = $p if $$A{bundle} && $$A{want_rtcpmux} && $op eq 'offer'; $sdp .= "m=audio $p $$tr{name} 0 8 111"; $DTMF and $sdp .= ' 96'; $sdp .= "\n"; $sdp .= <<"SDP"; a=rtpmap:8 PCMA/8000 a=rtpmap:111 opus/48000/2 SDP $DTMF and $sdp .= "a=rtpmap:96 telephone-event/8000\n"; if ($$A{want_rtcpmux} && $op eq 'offer') { $sdp .= "a=rtcp-mux\n"; $sdp .= "a=rtcp:$cp\n"; $$A{rtcpmux} = 1; } else { rand() >= .5 and $sdp .= "a=rtcp:$cp\n"; } $$tr{sdp_media_params} and $sdp .= $$tr{sdp_media_params}($$tcx[$i], $$tcx_o[$i]); $$A{bundle} and $sdp .= "a=mid:$i\n"; } for my $x (($ul + 1) .. $$A{streams_seen}) { $sdp .= "m=audio 0 $$tr{name} 0\n"; } $op eq 'offer' and print("transport is $$tr{name} -> $$tr_o{name}\n"); #print(Dumper($op, $A, $B, $sdp) . "\n\n\n\n"); #print("sdp $op in:\n$sdp\n\n"); my @flags = ('trust address'); my $dict = {sdp => $sdp, command => $op, 'call-id' => $$c{callid}, flags => \@flags, replace => [ 'origin', 'session connection' ], #direction => [ $$pr{direction}, $$pr_o{direction} ], 'received from' => [ qw(IP4 127.0.0.1) ], 'rtcp-mux' => ['demux'], label => rand(), }; $PORT_LATCHING and push(@flags, 'port latching'); $RECORD and push(@flags, 'record call'); #$viabranch and $dict->{'via-branch'} = $viabranch; if ($op eq 'offer') { $dict->{'from-tag'} = $$A{tag}; rand() > .5 and $$dict{'to-tag'} = $$B{tag}; } elsif ($op eq 'answer') { $dict->{'from-tag'} = $$B{tag}; $dict->{'to-tag'} = $$A{tag}; } if (!$LAZY || ($op eq 'offer' && !$$c{established}) || (rand() > .5)) { $$dict{'address family'} = $$pr_o{family_str}; $$dict{'transport protocol'} = $$tr_o{name}; if ($$tr_o{srtp} && $op eq 'offer') { my (@opts, @opt); rand() < .5 and push(@opts, (qw(unencrypted_srtp encrypted_srtp))[rand(2)]); rand() < .5 and push(@opts, (qw(unencrypted_srtcp encrypted_srtcp))[rand(2)]); rand() < .5 and push(@opts, (qw(unauthenticated_srtp authenticated_srtp))[rand(2)]); $$dict{SDES} = \@opts; } } #print(Dumper($dict) . "\n\n"); my $o = msg($dict); $$o{result} eq 'ok' or die; #print("sdp $op out:\n$$o{sdp}\n\n\n\n"); my ($rp_af, $rp_add) = $$o{sdp} =~ /c=IN IP([46]) (\S+)/s or die; $$B{rtcpmux} and ($$o{sdp} =~ /a=rtcp-mux/s or die); my @rp_ports = $$o{sdp} =~ /m=audio (\d+) \Q$$tr_o{name}\E /gs or die; $$B{streams_seen} = $#rp_ports; $rp_af ne $$pr_o{reply} and die "incorrect address family reply code"; $NUM_STREAMS -= $$B{streams_active}; $$B{streams_active} = 0; my $old_outputs = $$B{outputs}; my $rpl_t = $$B{outputs} = []; for my $i (0 .. $#rp_ports) { my $rpl = $rp_ports[$i]; if ($rpl == 0) { $op eq 'offer' and $$B{streams_seen}--; if ($$A{rtp_fds}[$i]) { undef($$A{rtp_fds}[$i]); } next; } $$B{ports}[$i] or next; $$B{streams_active}++; $NUM_STREAMS++; push(@$rpl_t, [$rpl,$rp_add]); my $oa = shift(@$old_outputs); if (defined($oa) && $$oa[0] != $rpl) { print("port change: $$oa[0] -> $rpl\n"); #print(Dumper($i, $c) . "\n"); undef($$tcx_o[$i]{out}{rtcp_index}); undef($$tcx_o[$i]{out}{rtp_roc}); } } $$tr_o{sdp_parse_func} and $$tr_o{sdp_parse_func}($$o{sdp}, $tcx_o, $tcx); #print(Dumper($op, $A, $B) . "\n\n\n\n"); $op eq 'answer' and $$c{established} = 1; } sub offer { my ($c, $a, $b) = @_; return offer_answer($c, $a, $b, 'offer'); } sub answer { my ($c, $a, $b) = @_; return offer_answer($c, $a, $b, 'answer'); } for my $iter (1 .. $NUM) { if ($iter % 10 == 0) { print("$iter calls established\n"); do_rtp(); } my $c = {}; offer($c, 0, 1); answer($c, 1, 0); push(@calls, $c); $calls{$$c{callid}} = $c; } print("all calls established\n"); #print(Dumper(\@calls) . "\n"); my $end = time() + $RUNTIME; my $rtptime = Time::HiRes::gettimeofday(); my $rtcptime = $rtptime; my $countstart = $rtptime; my $countstop = $countstart + $STATS_INTERVAL; my $last_reinv = $rtptime; while (time() < $end) { my $now = Time::HiRes::gettimeofday(); $now <= $rtptime and Time::HiRes::sleep($rtptime - $now); $rtptime += $INTERVAL / 1000.0; my $rtcp = 0; if ($now >= $rtcptime) { $rtcp = 1; $rtcptime += $RTCP_INTERVAL; } if ($now >= $countstop) { my $span = $now - $countstart; printf("[%05d] %d RTP packets sent in %.1f seconds = %.1f packets per stream per second\n", $$, $RTP_COUNT, $span, $RTP_COUNT / $span / $NUM_STREAMS); $RTP_COUNT = 0; $countstart = $now; $countstop = $countstart + $STATS_INTERVAL; } do_rtp($rtcp); @calls = sort { rand() < .5 } grep { defined } @calls; if ($REINVITES && $now >= $last_reinv + 15) { $last_reinv = $now; my $c = $calls[rand(@calls)]; print("simulating re-invite on $$c{callid}\n"); for my $i (0,1) { my $s = $$c{sides}[$i]; for my $j (0 .. $$s{num_streams}) { if (rand() < .5) { print("\tside $sides[$i] stream #$j: new port\n"); port_setup($s, $j); #print("\n" . Dumper($i, $c) . "\n"); undef($$s{trans_contexts}[$j]{in}{rtcp_index}); undef($$s{trans_contexts}[$j]{in}{rtp_roc}); } else { print("\tside $sides[$i] stream #$j: same port\n"); } } } offer($c, 0, 1); answer($c, 1, 0); } if ($CHANGE_SSRC && rand() < .001) { my $c = $calls[rand(@calls)]; my $s = $$c{sides}[rand(2)]; my $st = rand($$s{num_streams}); my $d = (qw(in out))[rand(2)]; my $stc = $$s{trans_contexts}[$st]; my $ct = $$stc{$d}; if (defined($$ct{rtp_roc}) && $$stc{ssrc}) { my $nssrc = rand(2 ** 32); print("change SSRC from $$stc{ssrc} to $nssrc\n"); $$stc{ssrc} = $nssrc; $$ct{roc} = 0; } } } if (!$NODEL) { print("deleting\n"); for my $c (@calls) { $c or next; my $callid = $$c{callid}; my $fromtag = $$c{sides}[0]{tag}; my $totag = $$c{sides}[1]{tag}; my $dict = { command => 'delete', 'call-id' => $callid, 'from-tag' => $fromtag, 'to-tag' => $totag, }; msg($dict); } } print("done\n"); rtpengine-mr12.5.1.22/tests/simulator-tcp.sh000077500000000000000000000027351474347554000207040ustar00rootroot00000000000000#!/bin/bash # # ulimit -n 100000 # # G_SLICE=always-malloc valgrind --leak-check=full --track-origins=yes --show-possibly-lost=yes ./rtpengine -t 0 -i $IP -l 25060 -f pipe_o() { nc localhost 25060 } pipe() { pipe_o > /dev/null } ip() { echo $((RANDOM % 254 + 1)).$((RANDOM % 254 + 1)).$((RANDOM % 254 + 1)).$((RANDOM % 254 + 1)) } port() { echo $((RANDOM % 64000 + 1024)) } ids="" ports="" for (( i = 0 ; i < 1000 ; i++ )); do callid=$(uuid) test -z "$callid" && exit 1 src=$(ip):$(port) dst=$(ip):$(port) gw=$(ip) fromtag=$(uuid) totag=$(uuid) src_rel=$(echo "request $callid $src:audio $gw voip.inode.at local unknown unknown unknown-agent info=domain:voip.sipwise.local,from:number@voip.inode.at,totag:,to:othernumber@voip.inode.at,fromtag:$fromtag" | pipe_o) dst_rel=$(echo "lookup $callid $dst:audio $gw voip.inode.at local unknown unknown unknown-agent info=domain:voip.sipwise.local,from:number@voip.inode.at,totag:$totag,to:othernumber@voip.inode.at,fromtag:$fromtag" | pipe_o) echo "lookup $callid $dst:audio $gw voip.inode.at local unknown unknown unknown-agent info=domain:voip.sipwise.local,from:number@voip.inode.at,totag:$totag,to:othernumber@voip.inode.at,fromtag:$fromtag" | pipe echo version | pipe (echo status | pipe) & src_path=${src_rel/ //} dst_path=${dst_rel/ //} ports="$ports $src_path $dst_path" for port in $ports; do echo foobar > "/dev/udp/$port" done ids="$ids $callid" done sleep 10 for id in $ids; do echo "delete $id info=" | pipe done rtpengine-mr12.5.1.22/tests/simulator-udp.pl000077500000000000000000000112521474347554000207010ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use Socket; use UUID; use BSD::Resource; use Getopt::Long; use Socket6; my ($NUM, $RUNTIME) = (1000, 30); my ($NODEL, $IP, $IPV6, $KEEPGOING, $REINVITES, $BRANCHES); GetOptions( 'no-delete' => \$NODEL, 'num-calls=i' => \$NUM, 'local-ip=s' => \$IP, 'local-ipv6=s' => \$IPV6, 'runtime=i' => \$RUNTIME, 'keep-going' => \$KEEPGOING, # don't stop sending rtp if a packet doesn't go through 'reinvites' => \$REINVITES, 'branches' => \$BRANCHES, ) or die; ($IP || $IPV6) or die("at least one of --local-ip or --local-ipv6 must be given"); local $SIG{ALRM} = sub { print "alarm!\n"; }; setrlimit(RLIMIT_NOFILE, 8000, 8000); my @chrs = ('a' .. 'z', 'A' .. 'Z', '0' .. '9'); sub rand_str { my ($len) = @_; return join('', (map {$chrs[rand(@chrs)]} (1 .. $len))); } my $fd; sub msg { my ($l) = @_; my $cookie = $$ . '_' . rand_str(10); my $r; while (1) { send($fd, "$cookie $l", 0) or die $!; my $err = ''; alarm(1); recv($fd, $r, 0xffff, 0) or $err = "$!"; alarm(0); $err =~ /interrupt/i and next; $err and die $err; last; } $r =~ s/^\Q$cookie\E +//s or die $r; $r =~ s/[\r\n]+$//s; return $r; } socket($fd, AF_INET, SOCK_DGRAM, 0) or die $!; connect($fd, sockaddr_in(2222, inet_aton("127.0.0.1"))) or die $!; msg('V') eq '20040107' or die; my (@calls, %branches); sub do_rtp { print("sending rtp\n"); for my $c (@calls) { $c or next; my ($fds,$outputs,$protos) = @$c[0,4,6]; for my $i ([0,1],[1,0]) { my ($a, $b) = @$i; my $pr = $$protos[$a]; my $payload = rand_str(100); send($$fds[$a], $payload, 0, $$pr{sockaddr}($$outputs[$b][0], inet_pton($$pr{family}, $$outputs[$b][1]))) or die $!; my $x; my $err = ''; alarm(1); recv($$fds[$b], $x, 0xffff, 0) or $err = "$!"; alarm(0); die $err if $err && $err !~ /interrupt/i; if (($x || '') ne $payload) { warn("no rtp reply received, ports $$outputs[$b][0] and $$outputs[$a][0]"); $KEEPGOING or undef($c); } } } } my %proto_defs = ( ipv4 => { code => 'I', family => AF_INET, reply => '4', address => $IP, sockaddr => \&sockaddr_in, }, ipv6 => { code => 'E', family => AF_INET6, reply => '6', address => $IPV6, sockaddr => \&sockaddr_in6, }, ); my @protos_avail; $IP and push(@protos_avail, $proto_defs{ipv4}); $IPV6 and push(@protos_avail, $proto_defs{ipv6}); my @sides = qw(A B); sub callid { my $i = rand_str(50); $BRANCHES or return $i; rand() < .5 and return $i; if (rand() < .5) { my @k = keys(%branches); @k and $i = $k[rand(@k)]; } my $b = rand_str(20); push(@{$branches{$i}}, $b); return "$i;$b"; } sub update_lookup { my ($c, $i) = @_; my $j = $i ^ 1; my $callid = $$c[5] || ($$c[5] = callid()); my $protos = $$c[6] || ($$c[6] = []); my $fds = $$c[0] || ($$c[0] = []); for my $x (0,1) { $$protos[$x] and next; $$protos[$x] = $protos_avail[rand(@protos_avail)]; undef($$fds[$x]); } my ($pr, $pr_o) = @$protos[$i, $j]; my @prefixes = qw(US LS); $prefixes[0] .= join('', (map {$_->{code}} @$protos)); my $ports = $$c[1] || ($$c[1] = []); my $ips = $$c[2] || ($$c[2] = []); if (!$$fds[$i]) { socket($$fds[$i], $$pr{family}, SOCK_DGRAM, 0) or die $!; while (1) { my $port = rand(0x7000) << 1 + 1024; bind($$fds[$i], $$pr{sockaddr}($port, inet_pton($$pr{family}, $$pr{address}))) and last; } my $addr = getsockname($$fds[$i]); my $ip; ($$ports[$i], $ip) = $$pr{sockaddr}($addr); $$ips[$i] = inet_ntop($$pr{family}, $ip); } my $tags = $$c[3] || ($$c[3] = []); $$tags[$i] or $$tags[$i] = rand_str(15); my $tagstr = ($i == 1 ? "$$tags[0];1 " : '') . "$$tags[$i];1"; my $o = msg("$prefixes[$i] $callid $$ips[$i] $$ports[$i] $tagstr"); $o =~ /^(\d+) ([\d.a-f:]+) ([46])[\r\n]*$/is or die $o; $1 == 0 and die "rtpengine ran out of ports"; $3 ne $$pr_o{reply} and die "incorrect address family reply code"; $$c[4][$i] = [$1,$2]; } for my $iter (1 .. $NUM) { if ($iter % 10 == 0) { print("$iter\n"); do_rtp(); } my $c = []; update_lookup($c, 0); update_lookup($c, 1); push(@calls, $c); } my $end = time() + $RUNTIME; while (time() < $end) { sleep(1); do_rtp(); @calls = sort { rand() < .5 } grep { defined } @calls; if ($REINVITES) { my $c = $calls[rand(@calls)]; print("simulating re-invite on $$c[5]"); for my $i (0,1) { if (rand() < .5) { print(", side $sides[$i]: new port"); undef($$c[0][$i]); } else { print(", side $sides[$i]: same port"); } } print("\n"); update_lookup($c, 0); update_lookup($c, 1); } } if (!$NODEL) { print("deleting\n"); for my $c (@calls) { $c or next; my ($tags, $callid) = @$c[3,5]; $callid =~ s/;.*// if $BRANCHES && rand() < .3; msg("D $callid $$tags[0] $$tags[1]"); } } print("done\n"); rtpengine-mr12.5.1.22/tests/stun-client000077500000000000000000000043131474347554000177270ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use Socket; use Socket6; use Digest::SHA qw(hmac_sha1); use Digest::CRC qw(crc32); my ($prio, $ip, $port, $username, $pwd) = @ARGV; my $fd; my @dests = getaddrinfo($ip, $port, AF_UNSPEC, SOCK_DGRAM); while (@dests >= 5) { my ($fam, $type, $prot, $addr, $canon, @dests) = @dests; if (!socket($fd, $fam, $type, $prot)) { undef($fd); next; } if (!connect($fd, $addr)) { undef($fd); next; } last; } $fd or die($!); my @rand = ('A' .. 'Z', 'a' .. 'z'); my $ufrag = join('', (map {$rand[rand($#rand)]} (1 .. 10))); my $tract = join('', (map {$rand[rand($#rand)]} (1 .. 12))); my $control = rand() < .5; my $tbreak = int(rand(0xffffffff)) * int(rand(0xffffffff)); print("transaction: $tract\n"); print("my username fragment: $ufrag\n"); print(($control?'controlling':'controlled')."\n"); print("tie breaker: $tbreak\n"); my $packet = ''; $packet .= attr(6, "$username:$ufrag"); $packet .= attr($control ? 0x802a : 0x8029, pack('Q', $tbreak)); $packet .= attr(0x24, pack('N', $prio)); $packet .= integrity(); $packet .= fingerprint(); $packet = header() . $packet; send($fd, $packet, 0) or die $!; my $buf; recv($fd, $buf, 200, 0) or die; my ($code, $length, $cookie, $tract2, $attrs) = unpack('nnN a12 a*', $buf); if ($cookie == 0x2112A442 || $tract2 ne $tract) { printf("code: \%x\n", $code); while ($attrs ne '') { my ($type, $len, $cont); ($type, $len, $attrs) = unpack('nn a*', $attrs); my $pad = 0; while ((($len + $pad) % 4) != 0) { $pad++; } ($cont, $pad, $attrs) = unpack("a$len a$pad a*", $attrs); printf(" attr type: \%x\n", $type); print(" content: $cont\n"); } } else { print("not stun: ".unpack('H*', $buf)."\n"); } exit; sub attr { my ($type, $data) = @_; my $len = length($data); while ((length($data) % 4) != 0) { $data .= "\0"; } return pack('nn a*', $type, $len, $data); } sub header { my ($add_length) = @_; $add_length ||= 0; return pack('nnN a12', 1, length($packet) + $add_length, 0x2112A442, $tract); } sub integrity { my $h = header(24); my $hmac = hmac_sha1($h.$packet, $pwd); return attr(8, $hmac); } sub fingerprint { my $h = header(8); my $crc = crc32($h.$packet); return attr(0x8028, pack('N', ($crc ^ 0x5354554e))); } rtpengine-mr12.5.1.22/tests/stun-server000077500000000000000000000116451474347554000177650ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use Socket; use Socket6; use Digest::SHA qw(hmac_sha1); use Digest::CRC qw(crc32); my ($controlling, $port, $username, $pwd, @addresses) = @ARGV; my %attrs = ( 6 => \&attr_un, 8 => \&attr_mi, 0x8028 => \&attr_fp, 0x25 => \&attr_use, 0x8029 => \&attr_controlled, 0x802a => \&attr_controlling, ); my (@sockets, $packet, $tract, $code); for my $addr (@addresses) { my ($fam, $pka, $sin, $meth) = addrparse($addr, $port); socket(my $fd, $fam, SOCK_DGRAM, 0) or die $!; bind($fd, $sin) or die $!; push(@sockets, {fd => $fd, fam => $fam, addr => $pka, sin => $sin, xormethod => $meth}); } while (1) { my $rin = ''; for my $s (@sockets) { vec($rin, fileno($$s{fd}), 1) = 1; } select($rin, undef, undef, 1); for my $s (@sockets) { vec($rin, fileno($$s{fd}), 1) or next; my $src = recv($$s{fd}, my $buf, 200, 0) or die $!; print("\npacket from " . addrdeparse($$s{fam}, $src) . " on ". addrdeparse($$s{fam}, $$s{sin}) . "\n"); my ($cmd, $len, $cookie, $attrs); ($cmd, $len, $cookie, $tract, $attrs) = unpack('nnN a12 a*', $buf); if ($cookie != 0x2112A442) { if ($buf =~ /^[\x14-\x3f]/s) { print("DTLS\n"); } else { print("not stun: " . unpack("H*", $buf)."\n"); } next; } if ($cmd != 1) { print("not stun request\n") next; } if (length($attrs) != $len) { print("length mismatch\n") next; } my ($list, $hash) = unpack_attrs($attrs); if ($$list[$#$list]{name} ne 'fingerprint') { print("last attr not fingerprint\n"); next; } if ($$list[$#$list-1]{name} ne 'message-integrity') { print("last but one attr not MI\n") next; } unless ($$hash{username}) { print("no username\n") next; } $$hash{controlling} and print("is controlling\n"); $$hash{controlled} and print("is controlled\n"); $$hash{'use-candidate'} and print("nominated\n"); print("local username is $$hash{username}{split}[0], remote is $$hash{username}{split}[1]\n"); if ($$hash{controlling} && $controlling || $$hash{controlled} && !$controlling) { print("role conflict, replying with 487"); $code = 0x0111; # binding error $packet = attr(0x9, pack('CCCC a16', 0, 0, 4, 87, 'Role conflict')); $packet .= integrity(); $packet .= fingerprint(); } else { $code = 0x101; # binding success my $xorattr = $$s{xormethod}($src); $packet = attr(0x20, $xorattr); $packet .= integrity(); $packet .= fingerprint(); } $packet = header() . $packet; print("sending reply\n"); send($$s{fd}, $packet, 0, $src); } } exit; sub xor4 { my ($src) = @_; my @a = unpack_sockaddr_in($src); return pack('nna4', 1, $a[0] ^ 0x2112, $a[1] ^ "\x21\x12\xa4\x42"); } sub xor6 { my ($src) = @_; my @a = unpack_sockaddr_in6($src); return pack('nna16', 2, $a[0] ^ 0x2112, $a[1] ^ ("\x21\x12\xa4\x42" . $tract)); } sub addrparse { my ($addr, $port) = @_; my $r = inet_pton(AF_INET, $addr); $r and return (AF_INET, $r, pack_sockaddr_in($port, $r), \&xor4); $r = inet_pton(AF_INET6, $addr); $r and return (AF_INET6, $r, pack_sockaddr_in6($port, $r), \&xor6); die; } sub addrdeparse { my ($fam, $sin) = @_; if ($fam == AF_INET) { my @up = unpack_sockaddr_in($sin); return inet_ntop(AF_INET, $up[1]) . ":$up[0]"; } if ($fam == AF_INET6) { my @up = unpack_sockaddr_in6($sin); return '['.inet_ntop(AF_INET6, $up[1]) . "]:$up[0]"; } die; } sub attr_un { my ($cont) = @_; return {name => 'username', split => [$cont =~ /(.*):(.*)/]}; } sub attr_mi { return {name => 'message-integrity'}; } sub attr_fp { my ($cont) = @_; return {name => 'fingerprint', value => unpack('N', $cont)}; } sub attr_use { return {name => 'use-candidate'}; } sub attr_controlling { my ($cont) = @_; return {name => 'controlling', tiebreaker => unpack('Q', $cont)}; } sub attr_controlled { my ($cont) = @_; return {name => 'controlled', tiebreaker => unpack('Q', $cont)}; } sub unpack_attrs { my ($s) = @_; my (@out, %out); while ($s ne '') { my ($type, $len, $cont); ($type, $len, $s) = unpack('nn a*', $s); my $pad = 0; while ((($len + $pad) % 4) != 0) { $pad++; } ($cont, $pad, $s) = unpack("a$len a$pad a*", $s); my $ins = {type => $type, len => $len, content => $cont, raw => pack('nna*a*', $type, $len, $cont, $pad)}; push(@out, $ins); $out{$type} = $ins; my $pars = $attrs{$type}; $pars or next; my $ai = $pars->($cont); %$ins = (%$ins, %$ai); $out{$$ins{name}} = $ins; } return (\@out, \%out); } sub attr { my ($type, $data) = @_; my $len = length($data); while ((length($data) % 4) != 0) { $data .= "\0"; } return pack('nn a*', $type, $len, $data); } sub header { my ($add_length) = @_; $add_length ||= 0; return pack('nnN a12', $code, length($packet) + $add_length, 0x2112A442, $tract); } sub integrity { my $h = header(24); my $hmac = hmac_sha1($h.$packet, $pwd); return attr(8, $hmac); } sub fingerprint { my $h = header(8); my $crc = crc32($h.$packet); return attr(0x8028, pack('N', ($crc ^ 0x5354554e))); } rtpengine-mr12.5.1.22/utils/000077500000000000000000000000001474347554000155315ustar00rootroot00000000000000rtpengine-mr12.5.1.22/utils/.gitignore000066400000000000000000000000131474347554000175130ustar00rootroot00000000000000kplay-test rtpengine-mr12.5.1.22/utils/build_test_wrapper000077500000000000000000000007511474347554000213600ustar00rootroot00000000000000#!/bin/sh TARGET=$1 ROOT=$(echo "$TARGET" | sed 's/\.h$//') if test "x$MAKE" = x; then MAKE=make fi echo "Looking for usable alternative for $TARGET" rm -f "$ROOT"-test "$ROOT"-test.c ln -s ../lib/"$ROOT"-test.c for x in ../lib/"$ROOT"*.h; do echo "Trying build with $x" rm -f "$TARGET" (echo '/******** GENERATED FILE ********/'; cat "$x") > "$TARGET" $MAKE "$ROOT"-test && break echo "Failed build with $x" rm -f "$TARGET" done rm -f "$ROOT"-test "$ROOT"-test.c test -f "$TARGET" rtpengine-mr12.5.1.22/utils/const_str_hash000077500000000000000000000033511474347554000205020ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IPC::Open2; use IPC::Cmd qw[can_run]; can_run('gperf') or die 'No gperf binary found, make sure to have gperf installed!'; print("/******** GENERATED FILE ********/\n"); my $rewritten_input = ''; my $iter = 0; my $keys = ''; my %key_vals; # collect keywords and rewrite input file with in lookup keys while (my $line = ) { if (!($line =~ s/CSH_LOOKUP\("(.*?)"\)/{}/)) { $rewritten_input .= $line; next; } my $key = $1; if (exists($key_vals{$key})) { $line =~ s/{}/$key_vals{$key}/; } else { $line =~ s/{}/$iter/; $keys .= "$key,$iter\n"; $key_vals{$key} = $iter; $iter++; } $rewritten_input .= $line; } # pass collected output to gperf my ($rd, $wr); my $pid = open2($rd, $wr, qw(gperf -t -E -l -c -t -I -H __csh_hash -N __csh_lookup_raw)); # gperf header and keys print { $wr } "struct __csh_hash_lookup { char *name; int num; };\n%%\n"; print { $wr } $keys; # read gperf output close($wr); my $hash_func_code; { local $/ = undef; $hash_func_code = <$rd>; } close($rd); waitpid($pid, 0); exit(1) if $?; # convert lookup function to static $hash_func_code =~ s/(^|\s)struct\s+__csh_hash_lookup\s*\*/\nstatic$&/s; # print combined output print "#pragma GCC diagnostic push\n"; print "#pragma GCC diagnostic ignored \"-Wmissing-field-initializers\"\n"; print $hash_func_code; print "#pragma GCC diagnostic pop\n"; # add convenience function print <s) return -1; struct __csh_hash_lookup *h = __csh_lookup_raw(s->s, s->len); if (!h) return -1; return h->num; } END # adjust diagnostic line numbers and originating file print $ARGV[0] ? "#line 1 \"$ARGV[0]\"\n" : "#line 1\n"; print $rewritten_input; rtpengine-mr12.5.1.22/utils/kernel-intercept-dump.pl000077500000000000000000000130131474347554000223050ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use Linux::Inotify2; use AnyEvent::Loop; use AnyEvent; use Fcntl; use Errno qw(EINTR EIO EAGAIN EWOULDBLOCK :POSIX); use Net::Pcap; use Time::HiRes; my $COMBINE = 1; # possible values: # 0: don't combine any streams. each stream gets written to its own pcap file # 1: combine all streams of one call into one pcap file my $i = new Linux::Inotify2 or die; $i->blocking(0); $i->watch('/var/spool/rtpengine', IN_CLOSE_WRITE | IN_DELETE, \&handle_inotify) or die; my $i_w = AnyEvent->io(fh => $i->fileno, poll => 'r', cb => sub { $i->poll }); setup(); AnyEvent::Loop::run(); exit; my %metafiles; my %callbacks; sub handle_inotify { my ($e) = @_; my $fn = $e->{w}->{name} . '/' . $e->{name}; my $mf = ($metafiles{$fn} //= { name => $fn }); if ($e->IN_DELETE) { handle_delete($e, $fn, $mf); } elsif ($e->IN_CLOSE_WRITE) { handle_change($e, $fn, $mf); } else { print("unhandled inotify event on $fn\n"); } } sub handle_change { my ($e, $fn, $mf) = @_; print("handling change on $fn\n"); my $fd; open($fd, '<', $fn) or return; # resume from where we left of my $pos = $mf->{pos} // 0; seek($fd, $pos, 0); # read as much as we can my $buf; read($fd, $buf, 100000) or return; $mf->{pos} = tell($fd); close($fd); # read contents section by section while ($buf =~ s/^(.*?)\n//s) { my $key = $1; $buf =~ s/^(\d+):\n//s or die $buf; my $len = $1; my $val = substr($buf, 0, $len, ''); $buf =~ s/^\n\n//s or die; if ($key =~ /^(CALL-ID|PARENT)$/) { $mf->{$key} = $val; } elsif ($key =~ /^STREAM (\d+) interface$/) { open_stream($mf, $val, $1); } elsif ($key =~ /^STREAM (\d+) details$/) { stream_details($mf, $val, $1); } } cb('call_setup', $mf); } sub handle_delete { my ($e, $fn, $mf) = @_; print("handling delete on $fn\n"); cb('call_close', $mf); for my $sn (keys(%{$mf->{streams}})) { my $ref = $mf->{streams}->{$sn}; close_stream($ref); } delete($mf->{streams}); delete($mf->{streams_id}); delete($metafiles{$fn}); } sub get_stream_by_id { my ($mf, $id) = @_; my $ref = ($mf->{streams_id}->[$id] //= { metafile => $mf, id => $id }); return $ref; } sub open_stream { my ($mf, $stream, $id) = @_; print("opening $stream for $mf->{'CALL-ID'}\n"); my $fd; sysopen($fd, '/proc/rtpengine/0/calls/' . $mf->{PARENT} . '/' . $stream, O_RDONLY | O_NONBLOCK) or return; my $ref = get_stream_by_id($mf, $id); $ref->{name} = $stream; $ref->{fh} = $fd; $ref->{watcher} = AnyEvent->io(fh => $fd, poll => 'r', cb => sub { stream_read($mf, $ref) }); cb('stream_setup', $ref, $mf); $mf->{streams}->{$stream} = $ref; $mf->{streams_id}->[$id] = $ref; print("opened for reading $stream for $mf->{'CALL-ID'}\n"); } sub stream_details { my ($mf, $val, $id) = @_; my $ref = get_stream_by_id($mf, $id); my @details = $val =~ /(\w+) (\d+)/g; while (@details) { my $k = shift(@details); my $v = shift(@details); $ref->{$k} = $v; } } sub close_stream { my ($ref) = @_; # this needs to be done explicitly, otherwise the closure would keep # the object from being freed delete($ref->{watcher}); my $mf = $ref->{metafile}; delete($mf->{streams}->{$ref->{name}}); cb('stream_close', $ref); print("closed $ref->{name}\n"); } sub stream_read { my ($mf, $ref) = @_; #print("handling read event for $mf->{name} / $ref->{name}\n"); while (1) { my $buf; my $ret = sysread($ref->{fh}, $buf, 65535); if (!defined($ret)) { if ($!{EAGAIN} || $!{EWOULDBLOCK}) { return; } print("read error on $ref->{name} for $mf->{'CALL-ID'}: $!\n"); # fall through } elsif ($ret == 0) { print("eof on $ref->{name} for $mf->{'CALL-ID'}\n"); # fall through } else { # $ret > 0 #print("$ret bytes read from $ref->{name} for $mf->{'CALL-ID'}\n"); cb('packet', $ref, $mf, $buf, $ret); next; } # some kind of error close_stream($ref); return; } } sub tvsec_now { my ($h) = @_; my @now = Time::HiRes::gettimeofday(); $h->{tv_sec} = $now[0]; $h->{tv_usec} = $now[1]; } sub setup { if ($COMBINE == 0) { $callbacks{stream_setup} = \&stream_pcap; $callbacks{stream_close} = \&stream_pcap_close; $callbacks{packet} = \&stream_packet; } elsif ($COMBINE == 1) { $callbacks{call_setup} = \&call_pcap; $callbacks{call_close} = \&call_pcap_close; $callbacks{packet} = \&call_packet; } } sub cb { my ($name, @args) = @_; my $fn = $callbacks{$name}; $fn or return; return $fn->(@args); } sub dump_open { my ($hash, $name) = @_; $hash->{pcap} = pcap_open_dead(DLT_RAW, 65535); $hash->{dumper} = pcap_dump_open($hash->{pcap}, $name); } sub dump_close { my ($hash) = @_; pcap_dump_close($hash->{dumper}); pcap_close($hash->{pcap}); delete($hash->{dumper}); delete($hash->{pcap}); } sub dump_packet { my ($hash, $buf, $len) = @_; if (!$hash->{dumper}) { print("discarding packet (dumper not open) - $hash->{name}\n"); return; } my $hdr = { len => $len, caplen => $len }; tvsec_now($hdr); pcap_dump($hash->{dumper}, $hdr, $buf); } # COMBINE 0 functions sub stream_pcap { my ($ref, $mf) = @_; dump_open($ref, $mf->{PARENT} . '-' . $ref->{name} . '.pcap'); } sub stream_pcap_close { my ($ref) = @_; dump_close($ref); } sub stream_packet { my ($ref, $mf, $buf, $ret) = @_; dump_packet($ref, $buf, $ret); } # COMBINE 1 functions sub call_pcap { my ($mf) = @_; $mf->{pcap} and return; $mf->{PARENT} or return; print("opening pcap for $mf->{PARENT}\n"); dump_open($mf, $mf->{PARENT} . '.pcap'); } sub call_pcap_close { my ($mf) = @_; dump_close($mf); } sub call_packet { my ($ref, $mf, $buf, $ret) = @_; dump_packet($mf, $buf, $ret); } rtpengine-mr12.5.1.22/utils/kernel-intercept-pcap-replay.pl000077500000000000000000000102451474347554000235610ustar00rootroot00000000000000#!/usr/bin/perl # Usage: $0 [payload type num] [payload type str] # Ex: $0 foo.pcap # Ex: $0 foo.pcap 97 opus/48000 use strict; use warnings; use Net::Pcap; use Data::Dumper; use Time::HiRes qw(usleep); my $spool_dir = '/var/spool/rtpengine'; my $table = 0; my $kfd; open($kfd, '+>', "/proc/rtpengine/$table/control") or die $!; my $err; my $p = pcap_open_offline($ARGV[0], \$err) or die $err; my $linktype = pcap_datalink($p); my @packets; my %src_ips; my $tags = 0; my $streams = 0; print("reading pcap\n"); my $ret = pcap_loop($p, -1, \&loop_cb, ''); $ret == 0 or die $ret; my $meta_file = "$spool_dir/" . rand() . '.meta'; my $parent = rand(); print("adding kernel call\n"); my (undef, $cid) = msg_ret(5, '', 'I I', 'I a256', 0, $parent); print("kernel cid $cid\n"); print("starting metafile\n"); put_meta('CALL-ID', rand()); put_meta('PARENT', $parent); print("creating kernel streams\n"); my @sids; my @tag_keys = keys(%src_ips); for my $key (@tag_keys) { my $tag = $src_ips{$key}; my $tag_id = $tag->{id}; put_meta("TAG $tag_id", rand()); my @port_keys = keys(%{$tag->{ports}}); for my $port (@port_keys) { my $stream = $tag->{ports}->{$port}; my $sname = "tag-$tag_id-media-$stream->{media_id}-". "component-$stream->{component}-xxx-id-$stream->{stream_id}"; put_meta("STREAM $stream->{stream_id} details", "TAG $tag_id MEDIA $stream->{media_id} COMPONENT $stream->{component} ". "FLAGS 0"); if ($ARGV[2]) { if ($ARGV[3]) { put_meta("MEDIA $stream->{media_id} PTIME $ARGV[3]", ''); } put_meta("MEDIA $stream->{media_id} PAYLOAD TYPE $ARGV[1]", $ARGV[2]); } my @ret = msg_ret(7, '', 'I I I I', 'I I I a256', $cid, 0, 0, $sname); my $sid = $ret[3]; $stream->{sid} = $sid; print("kernel sid $sid\n"); put_meta("STREAM $stream->{stream_id} interface", $sname); push(@sids, $sid); } } print("sending packets\n"); foreach my $pack (@packets) { msg_ret(9, $pack->{eth}->{rest}, '', 'I I', $cid, $pack->{media}->{sid}); usleep(5000); } print("deleting call and metafile\n"); msg_ret(6, '', '', 'I', $cid); unlink($meta_file); print("done\n"); exit; sub loop_cb { my ($user_data, $header, $packet) = @_; my %eth; if ($linktype == DLT_EN10MB) { @eth{qw(src dst type rest)} = unpack('a6 a6 n a*', $packet); } elsif ($linktype == DLT_LINUX_SLL) { @eth{qw(direction arphdr addrlen addr type rest)} = unpack('nnn a8 n a*', $packet); } else { die($linktype); } if ($eth{type} == 0x0800) { my $ip = ip($eth{rest}); my $rtp = rtp($ip->{udp}->{payload}); my %pkt = ( eth => \%eth, ip => $ip, rtp => $rtp ); my $src_ip = $ip->{src}; my $tag = ($src_ips{$src_ip} //= { id => $tags++, ports => { }, medias => 0, }); $pkt{tag} = $tag; my $component = $ip->{udp}->{src} & 1; my $base_port = $ip->{udp}->{src} - $component; my $base_media = ($tag->{ports}->{$base_port} //= { media_id => $tag->{medias}++, component => 0, stream_id => $streams++, }); my $media = ($tag->{ports}->{$ip->{udp}->{src}} //= { media_id => $base_media->{media_id}, component => $component, stream_id => $streams++, }); $pkt{media} = $media; push(@packets, \%pkt); } else { die($eth{type}); } } sub ip { my ($p) = @_; my %ret; @ret{qw(hv diffserv totlen id flags_foff ttl proto csum src dst rest)} = unpack('C C n n n C C n N N a*', $p); if ($ret{proto} == 17) { $ret{udp} = udp($ret{rest}); } else { die $ret{proto}; } return \%ret; } sub udp { my ($p) = @_; my %ret; @ret{qw(src dst len csum payload)} = unpack('nnnn a*', $p); return \%ret; } sub rtp { my ($p) = @_; my %ret; @ret{qw(vpx pt seq ts ssrc payload)} = unpack('CC n N N', $p); return \%ret; } sub put_meta { my ($label, $content) = @_; my $fd; open($fd, '>>', $meta_file) or die $!; print $fd "$label\n" . length($content) . ":\n$content\n\n"; close($fd); } sub msg_ret { my ($cmd, $extra, $unpacker, $packer, @rest) = @_; my $msg = pack('II' . $packer, $cmd, 0, @rest); # for 32-bit: # my $msg = pack('I' . $packer, $cmd, @rest); $msg .= ("\0" x (840 - length($msg))); # packet length also needs adjusting for 32-bit $msg .= ($extra // ''); sysread($kfd, $msg, length($msg)) or die $!; return unpack($unpacker, $msg); } rtpengine-mr12.5.1.22/utils/kplay-test.c000066400000000000000000000166011474347554000177760ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #define atomic64 uint64_t #include "../kernel-module/xt_RTPENGINE.h" int main() { int fd = open("/proc/rtpengine/control", O_WRONLY); assert(fd >= 0); ssize_t ret = write(fd, "add 0\n", 6); assert(ret == 6 || (ret == -1 && errno == EEXIST)); close(fd); fd = open("/proc/rtpengine/0/control", O_RDWR); assert(fd >= 0); struct rtpengine_command_init init = { .cmd = REMG_INIT }; init.init = (struct rtpengine_init_info) { .last_cmd = __REMG_LAST, .msg_size = { [REMG_INIT] = sizeof(struct rtpengine_command_init), [REMG_ADD_TARGET] = sizeof(struct rtpengine_command_add_target), [REMG_ADD_DESTINATION] = sizeof(struct rtpengine_command_destination), [REMG_ADD_CALL] = sizeof(struct rtpengine_command_add_call), [REMG_DEL_CALL] = sizeof(struct rtpengine_command_del_call), [REMG_ADD_STREAM] = sizeof(struct rtpengine_command_add_stream), [REMG_DEL_STREAM] = sizeof(struct rtpengine_command_del_stream), [REMG_PACKET] = sizeof(struct rtpengine_command_packet), [REMG_INIT_PLAY_STREAMS] = sizeof(struct rtpengine_command_init_play_streams), [REMG_GET_PACKET_STREAM] = sizeof(struct rtpengine_command_get_packet_stream), [REMG_PLAY_STREAM_PACKET] = sizeof(struct rtpengine_command_play_stream_packet), [REMG_PLAY_STREAM] = sizeof(struct rtpengine_command_play_stream), [REMG_STOP_STREAM] = sizeof(struct rtpengine_command_stop_stream), [REMG_FREE_PACKET_STREAM] = sizeof(struct rtpengine_command_free_packet_stream), }, }; ret = write(fd, &init, sizeof(init)); assert(ret == sizeof(init)); struct rtpengine_command_init_play_streams ips = { .cmd = REMG_INIT_PLAY_STREAMS, .num_packet_streams = 100, .num_play_streams = 1000, }; ret = write(fd, &ips, sizeof(ips)); assert(ret == sizeof(ips)); struct rtpengine_command_get_packet_stream gps = { .cmd = REMG_GET_PACKET_STREAM }; ret = read(fd, &gps, sizeof(gps)); assert(ret == sizeof(gps)); printf("packet stream idx %u\n", gps.packet_stream_idx); struct { struct rtpengine_command_play_stream_packet psp; char buf[160]; } psp = { .psp = { .cmd = REMG_PLAY_STREAM_PACKET, .play_stream_packet = { .packet_stream_idx = gps.packet_stream_idx, }, }, }; for (unsigned int i = 0; i < 256; i++) { psp.psp.play_stream_packet.delay_ms = i * 20; psp.psp.play_stream_packet.delay_ts = i * 160; memset(psp.psp.play_stream_packet.data, i, sizeof(psp.buf)); ret = write(fd, &psp, sizeof(psp)); assert(ret == sizeof(psp)); } printf("packets ok\n"); struct rtpengine_command_play_stream ps = { .cmd = REMG_PLAY_STREAM, .info = { .src_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.102"), }, .port = 6666, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.66"), }, .port = 9999, }, .pt = 8, .ssrc = 0x12345678, .ts = 76543210, .seq = 5432, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .packet_stream_idx = 999999, }, }; ret = read(fd, &ps, sizeof(ps)); assert(ret == -1 && errno == ERANGE); ps = (__typeof(ps)) { .cmd = REMG_PLAY_STREAM, .info = { .src_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.102"), }, .port = 6666, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.66"), }, .port = 9999, }, .pt = 8, .ssrc = 0x12345678, .ts = 76543210, .seq = 5432, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .packet_stream_idx = gps.packet_stream_idx + 1, }, }; ret = read(fd, &ps, sizeof(ps)); assert(ret == -1 && errno == ENOENT); ps = (__typeof(ps)) { .cmd = REMG_PLAY_STREAM, .info = { .src_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.102"), }, .port = 6666, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.66"), }, .port = 9999, }, .pt = 8, .ssrc = 0x12345678, .ts = 76543210, .seq = 5432, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .packet_stream_idx = gps.packet_stream_idx, .repeat = 3, .remove_at_end = true, }, }; ret = read(fd, &ps, sizeof(ps)); assert(ret == sizeof(ps)); printf("play stream idx %u\n", ps.play_idx); struct rtpengine_command_free_packet_stream fps = { .cmd = REMG_FREE_PACKET_STREAM, .packet_stream_idx = 9999999, }; ret = write(fd, &fps, sizeof(fps)); assert(ret == -1 && errno == ERANGE); printf("ok\n"); fps = (__typeof(fps)) { .cmd = REMG_FREE_PACKET_STREAM, .packet_stream_idx = gps.packet_stream_idx + 1, }; ret = write(fd, &fps, sizeof(fps)); assert(ret == -1 && errno == ENOENT); printf("ok\n"); // test: remove while in use // fps = (__typeof(fps)) { // .cmd = REMG_FREE_PACKET_STREAM, // .packet_stream_idx = gps.packet_stream_idx, // }; // ret = write(fd, &fps, sizeof(fps)); // assert(ret == sizeof(fps)); // printf("ok\n"); printf("sleep\n"); sleep(20); struct rtpengine_command_stop_stream ss = { .cmd = REMG_STOP_STREAM, .play_idx = ps.play_idx, }; ret = read(fd, &ss, sizeof(ss)); assert(ret == -1 && errno == ENOENT); ps = (__typeof(ps)) { .cmd = REMG_PLAY_STREAM, .info = { .src_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.102"), }, .port = 6666, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.66"), }, .port = 9999, }, .pt = 8, .ssrc = 0x12345678, .ts = 76543210, .seq = 5432, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .packet_stream_idx = gps.packet_stream_idx, }, }; ret = read(fd, &ps, sizeof(ps)); assert(ret == sizeof(ps)); printf("play stream idx %u\n", ps.play_idx); printf("sleep\n"); sleep(2); // test: remove while in use // fps = (__typeof(fps)) { // .cmd = REMG_FREE_PACKET_STREAM, // .packet_stream_idx = gps.packet_stream_idx, // }; // ret = write(fd, &fps, sizeof(fps)); // assert(ret == -1 && errno == EBUSY); ss = (__typeof(ss)) { .cmd = REMG_STOP_STREAM, .play_idx = 999999, }; ret = read(fd, &ss, sizeof(ss)); assert(ret == -1 && errno == ERANGE); ss = (__typeof(ss)) { .cmd = REMG_STOP_STREAM, .play_idx = ps.play_idx + 1, }; ret = read(fd, &ss, sizeof(ss)); assert(ret == -1 && errno == ENOENT); ss = (__typeof(ss)) { .cmd = REMG_STOP_STREAM, .play_idx = ps.play_idx, }; ret = read(fd, &ss, sizeof(ss)); assert(ret == sizeof(ss)); printf("stop ok\n"); ss = (__typeof(ss)) { .cmd = REMG_STOP_STREAM, .play_idx = ps.play_idx, }; ret = read(fd, &ss, sizeof(ss)); assert(ret == -1 && errno == ENOENT); fps = (__typeof(fps)) { .cmd = REMG_FREE_PACKET_STREAM, .packet_stream_idx = gps.packet_stream_idx, }; ret = write(fd, &fps, sizeof(fps)); printf("%zi %s\n", ret, strerror(errno)); assert(ret == sizeof(fps)); printf("free ok\n"); sleep(3); fps = (__typeof(fps)) { .cmd = REMG_FREE_PACKET_STREAM, .packet_stream_idx = gps.packet_stream_idx, }; ret = write(fd, &fps, sizeof(fps)); assert(ret == -1 && errno == ENOENT); sleep(3); printf("closing fd\n"); close(fd); sleep(3); fd = open("/proc/rtpengine/control", O_WRONLY); assert(fd >= 0); ret = write(fd, "del 0\n", 6); assert(ret == 6); close(fd); return 0; } rtpengine-mr12.5.1.22/utils/kplay-test2.c000066400000000000000000000113021474347554000200510ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #define atomic64 uint64_t #include "../kernel-module/xt_RTPENGINE.h" #define PAGE_SIZE 4096 int main() { int fd = open("/proc/rtpengine/control", O_WRONLY); assert(fd >= 0); ssize_t ret = write(fd, "add 0\n", 6); assert(ret == 6 || (ret == -1 && errno == EEXIST)); close(fd); fd = open("/proc/rtpengine/0/control", O_RDWR); assert(fd >= 0); struct global_stats_counter *rtpe_stats = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); assert(rtpe_stats != NULL && rtpe_stats != MAP_FAILED); struct rtpengine_command_init init = { .cmd = REMG_INIT }; init.init = (struct rtpengine_init_info) { .last_cmd = __REMG_LAST, .msg_size = { [REMG_INIT] = sizeof(struct rtpengine_command_init), [REMG_ADD_TARGET] = sizeof(struct rtpengine_command_add_target), [REMG_DEL_TARGET] = sizeof(struct rtpengine_command_del_target), [REMG_ADD_DESTINATION] = sizeof(struct rtpengine_command_destination), [REMG_ADD_CALL] = sizeof(struct rtpengine_command_add_call), [REMG_DEL_CALL] = sizeof(struct rtpengine_command_del_call), [REMG_ADD_STREAM] = sizeof(struct rtpengine_command_add_stream), [REMG_DEL_STREAM] = sizeof(struct rtpengine_command_del_stream), [REMG_PACKET] = sizeof(struct rtpengine_command_packet), [REMG_INIT_PLAY_STREAMS] = sizeof(struct rtpengine_command_init_play_streams), [REMG_GET_PACKET_STREAM] = sizeof(struct rtpengine_command_get_packet_stream), [REMG_PLAY_STREAM_PACKET] = sizeof(struct rtpengine_command_play_stream_packet), [REMG_PLAY_STREAM] = sizeof(struct rtpengine_command_play_stream), [REMG_STOP_STREAM] = sizeof(struct rtpengine_command_stop_stream), [REMG_FREE_PACKET_STREAM] = sizeof(struct rtpengine_command_free_packet_stream), }, .rtpe_stats = rtpe_stats, }; ret = write(fd, &init, sizeof(init)); assert(ret == sizeof(init)); struct rtpengine_command_init_play_streams ips = { .cmd = REMG_INIT_PLAY_STREAMS, .num_packet_streams = 100, .num_play_streams = 40960, }; ret = write(fd, &ips, sizeof(ips)); assert(ret == sizeof(ips)); struct rtpengine_command_get_packet_stream gps = { .cmd = REMG_GET_PACKET_STREAM }; ret = read(fd, &gps, sizeof(gps)); assert(ret == sizeof(gps)); printf("packet stream idx %u\n", gps.packet_stream_idx); struct { struct rtpengine_command_play_stream_packet psp; char buf[160]; } psp = { .psp = { .cmd = REMG_PLAY_STREAM_PACKET, .play_stream_packet = { .packet_stream_idx = gps.packet_stream_idx, }, }, }; for (unsigned int i = 0; i < 256; i++) { psp.psp.play_stream_packet.delay_ms = i * 20; psp.psp.play_stream_packet.delay_ts = i * 160; memset(psp.psp.play_stream_packet.data, i, sizeof(psp.buf)); ret = write(fd, &psp, sizeof(psp)); assert(ret == sizeof(psp)); } printf("packets ok\n"); unsigned play_idx[4096]; const unsigned int num_plays = sizeof(play_idx)/sizeof(*play_idx); struct { struct interface_stats_block iface_stats[num_plays]; struct stream_stats stream_stats[num_plays]; struct ssrc_stats ssrc_stats[num_plays]; } *all_stats; const unsigned int map_size = PAGE_SIZE * 512; assert(sizeof(*all_stats) <= map_size); all_stats = mmap(NULL, map_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); assert(all_stats != NULL && all_stats != MAP_FAILED); for (unsigned int i = 0; i < num_plays; i++) { struct rtpengine_command_play_stream ps = { .cmd = REMG_PLAY_STREAM, .info = { .src_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.102"), }, .port = 6666 + i, }, .dst_addr = { .family = AF_INET, .u = { .ipv4 = inet_addr("192.168.1.66"), }, .port = 9999, }, .pt = 8, .ssrc = 0x12345678 + i, .ts = 76543210 + i, .seq = 5432 + i, .encrypt = { .cipher = REC_NULL, .hmac = REH_NULL, }, .packet_stream_idx = gps.packet_stream_idx, .repeat = 50, .remove_at_end = false, .iface_stats = &all_stats->iface_stats[i], .stats = &all_stats->stream_stats[i], .ssrc_stats = &all_stats->ssrc_stats[i], }, }; ret = read(fd, &ps, sizeof(ps)); assert(ret == sizeof(ps)); printf("play stream idx %u\n", ps.play_idx); play_idx[i] = ps.play_idx; usleep(50000); } printf("sleep\n"); sleep(350); printf("close fd, sleep\n"); sleep(10); close(fd); munmap(rtpe_stats, PAGE_SIZE); munmap(all_stats, map_size); printf("del table\n"); fd = open("/proc/rtpengine/control", O_WRONLY); assert(fd >= 0); ret = write(fd, "del 0\n", 6); assert(ret == 6); close(fd); return 0; } rtpengine-mr12.5.1.22/utils/patch-kernel000077500000000000000000000024331474347554000200360ustar00rootroot00000000000000#!/bin/sh if test "$1" != magic; then echo echo "Don't run this script manually, instead run:" echo " make patch KERNEL=/path/to/kernel/sources" echo exit 1 fi if test -z "$3"; then echo echo "Usage:" echo " make patch KERNEL=/path/to/kernel/sources" echo exit 1 fi KERN=$3 for x in . include/linux/netfilter/ net/netfilter/Kconfig net/netfilter/Makefile; do if ! test -e "$KERN"/"$x"; then echo "I don't recognize $KERN as a kernel source tree" exit 1 fi done set -e cp -v xt_RTPENGINE.h "$KERN"/include/linux/netfilter/ cp -v xt_RTPENGINE.c "$KERN"/net/netfilter/ if ! grep -q CONFIG_NETFILTER_XT_TARGET_RTPENGINE "$KERN"/net/netfilter/Makefile; then ( echo echo "EXTRA_CFLAGS += -DRTPENGINE_VERSION=\"\\\"$4\\\"\"" echo "obj-\$(CONFIG_NETFILTER_XT_TARGET_RTPENGINE) += xt_RTPENGINE.o" ) >> "$KERN"/net/netfilter/Makefile fi if ! grep -q Kconfig\\.rtpengine "$KERN"/net/netfilter/Kconfig; then cat >> "$KERN"/net/netfilter/Kconfig.rtpengine << \__EOF config NETFILTER_XT_TARGET_RTPENGINE tristate "Sipwise NGCP RTPENGINE target support" depends on IP_NF_FILTER help Sipwise NGCP rtpengine kernel support To compile it as a module, choose M here. If unsure, say N. __EOF echo 'source "net/netfilter/Kconfig.rtpengine"' >> "$KERN"/net/netfilter/Kconfig fi rtpengine-mr12.5.1.22/utils/rtpengine-ctl000077500000000000000000000174301474347554000202370ustar00rootroot00000000000000#!/usr/bin/perl use strict; use warnings; use IO::Socket::INET; use Getopt::Long; use Config::Tiny; my $ip; my $port; my $conffile = '/etc/rtpengine/rtpengine.conf'; my $listen; Getopt::Long::Configure('require_order'); my $optret = GetOptions( 'help|h' => sub { showusage(); exit 0; }, 'ip=s' => \$ip, 'port=i' => \$port, 'config-file=s' => \$conffile, ); if (-f $conffile) { my $config = Config::Tiny->read($conffile); $config or die "Failed to read config file: " . Config::Tiny->errstr; $listen = $config->{rtpengine}{'listen-cli'} if $config->{rtpengine}; if ($listen =~ /^\d+$/) { $port //= $listen; } else { $ip //= $listen; } } if ($ip && $ip =~ s/:(\d+)$// && !$port) { $port = $1; } my $argumentstring = "@ARGV"; $argumentstring = trim($argumentstring); $ip //= '127.0.0.1'; $port //= 9900; if (!$argumentstring || !$optret || $port <= 0 || $port > 65535) { showusage(); exit 1; } # create a connecting socket my $socket = new IO::Socket::INET ( PeerHost => $ip, PeerPort => $port, Proto => 'tcp', ); die "Cannot connect to rtpengine $!\n" unless $socket; $socket->autoflush(1); #set send/recv timeout so script doesn't hang when rtpengine doesn't interact setsockopt($socket, SOL_SOCKET, SO_SNDTIMEO, pack('L!L!', 3, 0) ) or die $!; setsockopt($socket, SOL_SOCKET, SO_RCVTIMEO, pack('L!L!', 3, 0) ) or die $!; my $size = $socket->send("$argumentstring\n"); # receive a response of up to 10MB my $response = ""; do { $response = ""; $socket->recv($response, 1024*1024*10); print $response; } while ( not $response eq ""); $socket->close(); sub showusage { print "\n"; print " rtpengine-ctl [ -ip [:] -port ] \n"; print "\n"; print " Supported commands are:\n"; print "\n"; print " help : generated complete list of commands\n"; print "\n"; print " list